class [['a, 'b]] fmap_engine : 'a #engine -> ('a final_state -> 'b final_state) -> ['b] engine
[['a, 'b]]
'a #engine -> ('a final_state -> 'b final_state) ->
['b]
engine