Module Bonsai__.Leaf

type Bonsai__.Import.Component.unpacked += C : {
apply_action : inject:('action -> 'event) -> schedule_event:('event -> unit) -> 'input -> 'model -> 'action -> 'model;
compute : inject:('action -> 'event) -> 'input -> 'model -> 'result;
name : string;
} -> ('input'model'action'result'incr'event) Bonsai__.Import.Component.unpacked
val leaf : (module Bonsai__.Import.Component.Model with type t = 'model) -> (module Bonsai__.Import.Component.Action with type t = 'action) -> name:string -> default_model:'model -> apply_action:(inject:('action -> 'event) -> schedule_event:('event -> unit) -> 'input -> 'model -> 'action -> 'model) -> compute:(inject:('action -> 'event) -> 'input -> 'model -> 'result) -> ('input'result'incr'event) Bonsai__.Import.Component.Packed.t
val state_machine : (module Bonsai__.Import.Component.Model with type t = 'model) -> (module Bonsai__.Import.Component.Action with type t = 'action) -> Core_kernel.Source_code_position.t -> default_model:'model -> apply_action:(inject:('action -> 'event) -> schedule_event:('event -> unit) -> 'input -> 'model -> 'action -> 'model) -> ('input'model * ('action -> 'event)'incr'event) Bonsai__.Import.Component.Packed.t