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