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