Module Computation.T

type ('input, 'action, 'model) apply_action = inject:('action Action.t -> unit Ui_effect.t) -> schedule_event:(unit Ui_effect.t -> unit) -> 'input option -> 'model -> 'action Action.t -> 'model
type ('model, 'action, 'input, 'result, 'extra) eval_fun = environment:Environment.t -> fix_envs:Environment.Recursive.t -> path:Path.t -> model:'model Ui_incr.t -> inject:('action Action.t -> unit Ui_effect.t) -> (('model, 'input, 'result) Snapshot.t * 'extra) Trampoline.t
type ('action, 'model) reset = inject:('action Action.t -> unit Ui_effect.t) -> schedule_event:(unit Ui_effect.t -> unit) -> 'model -> 'model
type ('model, 'action, 'input, 'result, 'extra) info = {
  1. model : 'model Meta.Model.t;
  2. input : 'input Meta.Input.t;
  3. action : 'action Action.id;
  4. apply_action : ('input, 'action, 'model) apply_action;
  5. run : ('model, 'action, 'input, 'result, 'extra) eval_fun;
  6. reset : ('action, 'model) reset;
  7. may_contain : May_contain.Unresolved.t;
}
type ('result, 'extra) packed_info =
  1. | T : (_, _, _, 'result, 'extra) info -> ('result, 'extra) packed_info