sig   type t   val with_engine :     configuration:Ketrew.Configuration.engine ->     (engine:Ketrew.Engine.t ->      (unit,       [> `Database of Trakeva.Error.t        | `Database_unavailable of Ketrew_pure.Target.id        | `Dyn_plugin of            [> `Dynlink_error of Dynlink.error | `Findlib of exn ]        | `Failure of string        | `Fetching_node of Persistent_data.Error.fetching_node        | `Target of [> `Deserilization 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 Trakeva.Error.t       | `Database_unavailable of string       | `Dyn_plugin of [> `Dynlink_error of Dynlink.error | `Findlib of exn ]       | `Failure of string       | `Fetching_node of Persistent_data.Error.fetching_node       | `Target of [> `Deserilization of string ] ])     Unix_io.Deferred_result.t   val unload :     Ketrew.Engine.t ->     (unit,      [> `Database of Trakeva.Error.t       | `Database_unavailable of Ketrew_pure.Target.id ])     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 Trakeva.Error.t       | `Database_unavailable of Ketrew_pure.Target.id       | `Fetching_node of Persistent_data.Error.fetching_node       | `Target of [> `Deserilization of string ] ])     Unix_io.Deferred_result.t   val get_target :     Ketrew.Engine.t ->     Ketrew_pure.Internal_pervasives.Unique_id.t ->     (Ketrew_pure.Target.t,      [> `Database of Trakeva.Error.t       | `Database_unavailable of string       | `Fetching_node of Persistent_data.Error.fetching_node       | `Target of [> `Deserilization of string ] ])     Unix_io.Deferred_result.t   val all_visible_targets :     Ketrew.Engine.t ->     (Ketrew_pure.Target.t list,      [> `Database of Trakeva.Error.t       | `Database_unavailable of string       | `Fetching_node of Persistent_data.Error.fetching_node       | `IO of           [> `Read_file_exn of string * exn | `Write_file_exn of string * exn ]       | `System of [> `File_info of string ] * [> `Exn of exn ]       | `Target of [> `Deserilization of string ] ])     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 Trakeva.Error.t       | `Database_unavailable of string       | `Fetching_node of Persistent_data.Error.fetching_node       | `Target of [> `Deserilization of string ] ])     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 Trakeva.Error.t           | `Database_unavailable of string           | `Fetching_node of Persistent_data.Error.fetching_node           | `List of Ketrew.Engine.Run_automaton.step_allowed_errors list           | `Target of [ `Deserilization of string ] ]       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               [> `Act of Trakeva.Action.t | `Load of string ] * string           | `Database_unavailable of string           | `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 Trakeva.Error.t       | `Database_unavailable of string       | `Fetching_node of Persistent_data.Error.fetching_node       | `IO of           [> `Read_file_exn of string * exn | `Write_file_exn of string * exn ]       | `System of [> `File_info of string ] * [> `Exn of exn ]       | `Target of [> `Deserilization of string ] ])     Unix_io.Deferred_result.t   val kill :     Ketrew.Engine.t ->     id:Ketrew_pure.Internal_pervasives.Unique_id.t ->     (unit,      [> `Database of [> `Act of Trakeva.Action.t | `Load of string ] * string       | `Database_unavailable of string ])     Unix_io.Deferred_result.t   val restart_target :     Ketrew.Engine.t ->     Ketrew_pure.Target.id ->     (Ketrew_pure.Target.id,      [> `Database of Trakeva.Error.t       | `Database_unavailable of Ketrew_pure.Target.id       | `Fetching_node of Persistent_data.Error.fetching_node       | `Target of [> `Deserilization of string ] ])     Unix_io.Deferred_result.t   val host_io : Ketrew.Engine.t -> Host_io.t end