type ('o, 'a) field = ('o, 'a) Sch_dsl.field = {name : string;doc : string;codec : 'a t;default : 'a option;get : 'o -> 'a;omit : 'a -> bool;
}and 'a union_case = 'a Sch_dsl.union_case = | Case : {tag : string;doc : string;codec : 'b t;inject : 'b -> 'a;project : 'a -> 'b option;
} -> 'a union_case
and 'a t = 'a Sch_dsl.t = | Str : string base_map -> string t| Password : string base_map -> string t| Int : int base_map -> int t| Int32 : int32 base_map -> int32 t| Int64 : int64 base_map -> int64 t| Bool : {doc : string;
} -> bool t| Float : float base_map -> float t| Double : float base_map -> float t| File : File.t t| Option : 'a t -> 'a option t| List : {doc : string;item : 'a t;constraint_ : 'a list Constraint.t option;
} -> 'a list t| Map : {doc : string;item : 'a t;constraint_ : (string * 'a) list Constraint.t option;
} -> (string * 'a) list t| Object : {kind : string;doc : string;unknown : unknown_handling;members : ('o fieldk, 'o) Free.t;
} -> 'o t| Union : {doc : string;discriminator : string;cases : 'a union_case list;
} -> 'a t| Rec : 'a t Stdlib.Lazy.t -> 'a t| Iso : {fwd : 'b -> ('a, string list) Stdlib.result;bwd : 'a -> 'b;repr : 'b t;
} -> 'a t
val type_name : 'a t -> stringval is_object_codec : 'a t -> boolval with_ :
?constraint_:'a Constraint.t ->
?doc:string ->
?discriminator:string ->
'a t ->
'a tval option : 'a t -> 'a option tval rec' : 'a t Stdlib.Lazy.t -> 'a tval custom :
enc:('a -> 'b) ->
dec:('b -> ('a, string list) Stdlib.result) ->
'b t ->
'a tval list :
?doc:string ->
?constraint_:'a list Constraint.t ->
'a t ->
'a list tval map :
?doc:string ->
?constraint_:(string * 'a) list Constraint.t ->
'a t ->
(string * 'a) list tmodule Union : sig ... endmodule Json : sig ... end