map_done:('a -> 'b Uq_engines_compat.engine_state) ->
?map_error:(exn -> 'b Uq_engines_compat.engine_state) ->
?map_aborted:(unit -> 'b Uq_engines_compat.engine_state) ->
?propagate_working:bool ->
'a #Uq_engines_compat.engine -> ['b] Uq_engines_compat.engine