'a #Uq_engines.engine ->
('a Uq_engines.final_state -> 'b Uq_engines.final_state) ->
['b] Uq_engines.engine