sig
type t
type 'a check = 'a -> Validate.t
val pass : Validate.t
val fail : string -> Validate.t
val fails : string -> 'a -> ('a -> Sexplib.Sexp.t) -> Validate.t
val failf : ('a, unit, string, Validate.t) Pervasives.format4 -> 'a
val of_list : Validate.t list -> Validate.t
val name : string -> Validate.t -> Validate.t
val name_list : string -> Validate.t list -> Validate.t
val fail_fn : string -> 'a Validate.check
val pass_bool : bool Validate.check
val pass_unit : unit Validate.check
val protect : 'a Validate.check -> 'a Validate.check
val result : Validate.t -> unit Or_error.t
val errors : Validate.t -> string list
val maybe_raise : Validate.t -> unit
val valid_or_error : 'a -> 'a Validate.check -> 'a Or_error.t
val field :
'record ->
('record, 'a) Fieldslib.Field.t -> 'a Validate.check -> Validate.t
val field_folder :
'record ->
'a Validate.check ->
Validate.t list -> ('record, 'a) Fieldslib.Field.t -> Validate.t list
val all : 'a Validate.check list -> 'a Validate.check
val of_result : ('a -> (unit, string) Result.t) -> 'a Validate.check
val of_error : ('a -> unit Or_error.t) -> 'a Validate.check
val booltest : ('a -> bool) -> if_false:string -> 'a Validate.check
val pair :
fst:'a Validate.check ->
snd:'b Validate.check -> ('a * 'b) Validate.check
val list_indexed : 'a Validate.check -> 'a list Validate.check
val list :
name:('a -> string) -> 'a Validate.check -> 'a list Validate.check
val first_failure : Validate.t -> Validate.t -> Validate.t
val of_error_opt : string option -> Validate.t
val alist :
name:('a -> string) -> 'b Validate.check -> ('a * 'b) list Validate.check
end