sig   type t   val with_engine :     configuration:Ketrew.Configuration.engine ->     (engine:Ketrew.Engine.t ->      (unit,       [> `Database of Persistent_data.Error.database        | `Dyn_plugin of            [> `Dynlink_error of Dynlink.error | `Findlib of exn ]        | `Failure of string ]       as 'merge_error)      Unix_io.Deferred_result.t) ->     (unit, 'merge_error) Unix_io.Deferred_result.t   val load :     configuration:Ketrew.Configuration.engine ->     (Ketrew.Engine.t,      [> `Database of Persistent_data.Error.database       | `Dyn_plugin of [> `Dynlink_error of Dynlink.error | `Findlib of exn ]       | `Failure of string ])     Unix_io.Deferred_result.t   val unload :     Ketrew.Engine.t ->     (unit, [> `Database of Persistent_data.Error.database ])     Unix_io.Deferred_result.t   val configuration : Ketrew.Engine.t -> Ketrew.Configuration.engine   val add_targets :     Ketrew.Engine.t ->     Ketrew_pure.Target.t list ->     (unit, [> `Database of Persistent_data.Error.database ])     Unix_io.Deferred_result.t   val get_target :     Ketrew.Engine.t ->     Ketrew_pure.Internal_pervasives.Unique_id.t ->     (Ketrew_pure.Target.t, [> `Database of Persistent_data.Error.database ])     Unix_io.Deferred_result.t   val get_list_of_target_ids :     Ketrew.Engine.t ->     Ketrew_pure.Protocol.Up_message.target_query ->     (Ketrew_pure.Target.id list,      [> `Database of Persistent_data.Error.database ])     Unix_io.Deferred_result.t   val next_changes :     Ketrew.Engine.t ->     (Persistent_data.Change.t list, 'a) Unix_io.Deferred_result.t   module Run_automaton :     sig       type step_allowed_errors =           [ `Database of Persistent_data.Error.database           | `List of Ketrew.Engine.Run_automaton.step_allowed_errors list ]       val step :         Ketrew.Engine.t ->         (bool, Ketrew.Engine.Run_automaton.step_allowed_errors)         Unix_io.Deferred_result.t       val fix_point :         Ketrew.Engine.t ->         ([ `Steps of int ], Ketrew.Engine.Run_automaton.step_allowed_errors)         Unix_io.Deferred_result.t       val try_to_fix_step_error :         Ketrew.Engine.t ->         info:string ->         Ketrew.Engine.Run_automaton.step_allowed_errors ->         (unit,          [> `Database of Persistent_data.Error.database           | `Not_fixable of Ketrew.Engine.Run_automaton.step_allowed_errors ])         Unix_io.Deferred_result.t     end   val get_status :     Ketrew.Engine.t ->     Ketrew_pure.Target.id ->     (Ketrew_pure.Target.State.t,      [> `Database of Persistent_data.Error.database       | `IO of           [> `Read_file_exn of string * exn | `Write_file_exn of string * exn ]       | `System of [> `File_info of string ] * [> `Exn of exn ] ])     Unix_io.Deferred_result.t   val kill :     Ketrew.Engine.t ->     id:Ketrew_pure.Internal_pervasives.Unique_id.t ->     (unit, [> `Database of Persistent_data.Error.database ])     Unix_io.Deferred_result.t   val restart_target :     Ketrew.Engine.t ->     Ketrew_pure.Target.id ->     (Ketrew_pure.Target.id, [> `Database of Persistent_data.Error.database ])     Unix_io.Deferred_result.t   val host_io : Ketrew.Engine.t -> Host_io.t end