sig   type failure_reason   type progress = [ `Changed_state | `No_change ]   type 'a transition_callback =       ?log:string ->       '-> Ketrew_pure.Target.t * Ketrew_pure.Target.Automaton.progress   type severity = [ `Fatal | `Try_again ]   type bookkeeping = { plugin_name : string; run_parameters : string; }   type long_running_failure =       Ketrew_pure.Target.Automaton.severity * string *       Ketrew_pure.Target.Automaton.bookkeeping   type long_running_action =       (Ketrew_pure.Target.Automaton.bookkeeping,        Ketrew_pure.Target.Automaton.long_running_failure)       Pvem.Result.t   type process_check =       [ `Still_running of Ketrew_pure.Target.Automaton.bookkeeping       | `Successful of Ketrew_pure.Target.Automaton.bookkeeping ]   type process_status_check =       (Ketrew_pure.Target.Automaton.process_check,        Ketrew_pure.Target.Automaton.long_running_failure)       Pvem.Result.t   type condition_evaluation =       (bool, Ketrew_pure.Target.Automaton.severity * string) Pvem.Result.t   type dependencies_status =       [ `All_succeeded       | `At_least_one_failed of Ketrew_pure.Target.id list       | `Still_processing ]   type transition =       [ `Activate of           Ketrew_pure.Target.id list *           unit Ketrew_pure.Target.Automaton.transition_callback       | `Check_and_activate_dependencies of           Ketrew_pure.Target.Automaton.dependencies_status           Ketrew_pure.Target.Automaton.transition_callback       | `Check_process of           Ketrew_pure.Target.Automaton.bookkeeping *           Ketrew_pure.Target.Automaton.process_status_check           Ketrew_pure.Target.Automaton.transition_callback       | `Do_nothing of unit Ketrew_pure.Target.Automaton.transition_callback       | `Eval_condition of           Ketrew_pure.Target.Condition.t *           Ketrew_pure.Target.Automaton.condition_evaluation           Ketrew_pure.Target.Automaton.transition_callback       | `Kill of           Ketrew_pure.Target.Automaton.bookkeeping *           Ketrew_pure.Target.Automaton.long_running_action           Ketrew_pure.Target.Automaton.transition_callback       | `Start_running of           Ketrew_pure.Target.Automaton.bookkeeping *           Ketrew_pure.Target.Automaton.long_running_action           Ketrew_pure.Target.Automaton.transition_callback ]   val transition :     Ketrew_pure.Target.t -> Ketrew_pure.Target.Automaton.transition end