Module Bonsai_private_base.Action

type 'a leaf = private
  1. | Leaf
type ('from, 'into) sub = private
  1. | Sub
type 'a model_resetter = private
  1. | Model_resetter
type ('inner, 'outer) wrap = private
  1. | Wrap
type 'inner wrap_static = private
  1. | Wrap_static
type ('inner, 'outer) wrap_dynamic = private
  1. | Wrap_dynamic
type switch = private
  1. | Switch
type lazy_ = private
  1. | Lazy
type ('key, 'inner) assoc = private
  1. | Assoc
type ('io_key, 'model_key, 'inner) assoc_on = private
  1. | Assoc_on
type 'a id
type 'a t = private
  1. | Leaf_static : 'static -> 'static leaf t
  2. | Leaf_dynamic : 'dynamic -> 'dynamic leaf t
  3. | Sub_from : 'a t -> ('a, _) sub t
  4. | Sub_into : 'a t -> (_, 'a) sub t
  5. | Wrap_inner : 'a t -> ('a, _) wrap t
  6. | Wrap_outer : 'outer -> (_, 'outer) wrap t
  7. | Model_reset_inner : 'a t -> 'a model_resetter t
  8. | Model_reset_outer : _ model_resetter t
  9. | Switch : {
    1. branch : int;
    2. action : 'a t;
    3. type_id : 'a id;
    } -> switch t
  10. | Lazy : {
    1. action : 'a t;
    2. type_id : 'a id;
    } -> lazy_ t
  11. | Assoc : {
    1. key : 'key;
    2. action : 'a t;
    3. id : 'key Core.Type_equal.Id.t;
    4. compare : 'key -> 'key -> int;
    } -> ('key, 'a) assoc t
  12. | Assoc_on : {
    1. io_key : 'io_key;
    2. model_key : 'model_key;
    3. action : 'a t;
    4. io_id : 'io_key Core.Type_equal.Id.t;
    5. io_compare : 'io_key -> 'io_key -> int;
    } -> ('io_key, 'model_key, 'a) assoc_on t
module Type_id : sig ... end
val static_leaf : 'static -> 'static leaf t
val dynamic_leaf : 'dynamic -> 'dynamic leaf t
val sub_from : 'a t -> ('a, _) sub t
val sub_into : 'a t -> (_, 'a) sub t
val wrap_inner : 'a t -> ('a, _) wrap t
val wrap_outer : 'outer -> (_, 'outer) wrap t
val model_reset_inner : 'a t -> 'a model_resetter t
val model_reset_outer : _ model_resetter t
val switch : branch:int -> type_id:'a id -> 'a t -> switch t
val lazy_ : type_id:'a id -> 'a t -> lazy_ t
val assoc : key:'key -> id:'key Core.Type_equal.Id.t -> compare:('key -> 'key -> int) -> 'a t -> ('key, 'a) assoc t
val assoc_on : io_key:'io_key -> io_id:'io_key Core.Type_equal.Id.t -> io_compare:('io_key -> 'io_key -> int) -> model_key:'model_key -> 'a t -> ('io_key, 'model_key, 'a) assoc_on t