sig
type 'a parsed_json = 'a
constraint 'a =
[< `A of 'a list
| `Bool of bool
| `Float of float
| `Null
| `O of (string * 'a) list
| `String of string ]
type 'a o =
[ `Opt of string * 'a Kwvalid.Json.descriptor
| `Req of string * 'a Kwvalid.Json.descriptor ] list
and 'a descriptor =
[ `A of ('a list -> bool) * 'a Kwvalid.Json.descriptor
| `Bool of Kwvalid.t
| `Float of Kwvalid.t
| `Null
| `O of 'a Kwvalid.Json.o
| `String of Kwvalid.t ]
val string_of_o :
([< `Opt of
string *
([< `A of 'c * 'b
| `Bool of Kwvalid.t
| `Float of Kwvalid.t
| `Null
| `O of 'a
| `String of Kwvalid.t ]
as 'b)
| `Req of string * 'b ]
list as 'a) ->
string
val string_of_descriptor :
([< `A of 'b * 'a
| `Bool of Kwvalid.t
| `Float of Kwvalid.t
| `Null
| `O of [< `Opt of string * 'a | `Req of string * 'a ] list
| `String of Kwvalid.t ]
as 'a) ->
string
module Size :
sig
val exactly : int -> 'a list -> bool
val any : 'a -> bool
val min : int -> 'a list -> bool
val max : int -> 'a list -> bool
end
module Num :
sig
val any : t
val whilst : (float -> bool) -> string -> bool
val eq : float -> t
val gt : float -> t
val gte : float -> t
val lt : float -> t
val lte : float -> t
end
val make :
(string ->
([< `A of 'a list
| `Bool of bool
| `Float of float
| `Null
| `O of ('b * 'a) list
| `String of string ]
as 'a)) ->
([ `A of ('a list -> bool) * 'c
| `Bool of Kwvalid.t
| `Float of Kwvalid.t
| `Null
| `O of
[< `Opt of string * 'c & 'b * 'c | `Req of string * 'c & 'b * 'c ]
list
| `String of Kwvalid.t ] as 'c) ->
Kwvalid.t
end