val names : string list
val type_ : ('a t, 'a Ecaml__.Import0.Value.Type.t) Fieldslib.Field.t
val symbol : ('a t, Symbol.t) Fieldslib.Field.t
val fold : init:'acc__0 -> symbol:('acc__0 -> ('a t, Symbol.t) Fieldslib.Field.t -> 'acc__1) -> type_:('acc__1 -> ('a t, 'a Ecaml__.Import0.Value.Type.t) Fieldslib.Field.t -> 'acc__2) -> 'acc__2
val make_creator : symbol:(('a t, Symbol.t) Fieldslib.Field.t -> 'acc__0 -> ('input__ -> Symbol.t) * 'acc__1) -> type_:(('a t, 'a Ecaml__.Import0.Value.Type.t) Fieldslib.Field.t -> 'acc__1 -> ('input__ -> 'a Ecaml__.Import0.Value.Type.t) * 'acc__2) -> 'acc__0 -> ('input__ -> 'a t) * 'acc__2
val create : symbol:Symbol.t -> type_:'a Ecaml__.Import0.Value.Type.t -> 'a t
val map : symbol:(('a t, Symbol.t) Fieldslib.Field.t -> Symbol.t) -> type_:(('a t, 'a Ecaml__.Import0.Value.Type.t) Fieldslib.Field.t -> 'a Ecaml__.Import0.Value.Type.t) -> 'a t
val iter : symbol:(('a t, Symbol.t) Fieldslib.Field.t -> unit) -> type_:(('a t, 'a Ecaml__.Import0.Value.Type.t) Fieldslib.Field.t -> unit) -> unit
val for_all : symbol:(('a t, Symbol.t) Fieldslib.Field.t -> bool) -> type_:(('a t, 'a Ecaml__.Import0.Value.Type.t) Fieldslib.Field.t -> bool) -> bool
val exists : symbol:(('a t, Symbol.t) Fieldslib.Field.t -> bool) -> type_:(('a t, 'a Ecaml__.Import0.Value.Type.t) Fieldslib.Field.t -> bool) -> bool
val to_list : symbol:(('a t, Symbol.t) Fieldslib.Field.t -> 'elem__) -> type_:(('a t, 'a Ecaml__.Import0.Value.Type.t) Fieldslib.Field.t -> 'elem__) -> 'elem__ list
val map_poly : ([< `Read | `Set_and_create ], 'a t, 'x0) Fieldslib.Field.user -> 'x0 list