`sig
type json_type =
Object of (string * Json_type.json_type) list
| Array of Json_type.json_type list
| String of string
| Int of int
| Float of float
| Bool of bool
| Null
type t = Json_type.json_type
exception Json_error of string
module Browse :
sig
val make_table :
(string * Json_type.t) list -> (string, Json_type.t) Hashtbl.t
val field : (string, Json_type.t) Hashtbl.t -> string -> Json_type.t
val fieldx : (string, Json_type.t) Hashtbl.t -> string -> Json_type.t
val optfield :
(string, Json_type.t) Hashtbl.t -> string -> Json_type.t option
val optfieldx :
(string, Json_type.t) Hashtbl.t -> string -> Json_type.t option
val describe : Json_type.t -> string
val type_mismatch : string -> Json_type.t -> 'a
val is_null : Json_type.t -> bool
val is_defined : Json_type.t -> bool
val null : Json_type.t -> unit
val string : Json_type.t -> string
val bool : Json_type.t -> bool
val number : Json_type.t -> float
val int : Json_type.t -> int
val float : Json_type.t -> float
val array : Json_type.t -> Json_type.t list
val objekt : Json_type.t -> (string * Json_type.t) list
val list : (Json_type.t -> 'a) -> Json_type.t -> 'a list
val option : Json_type.t -> Json_type.t option
val optional : (Json_type.t -> 'a) -> Json_type.t -> 'a option
val assert_object_or_array : Json_type.t -> unit
end
module Build :
sig
val null : Json_type.t
val bool : bool -> Json_type.t
val int : int -> Json_type.t
val float : float -> Json_type.t
val string : string -> Json_type.t
val objekt : (string * Json_type.t) list -> Json_type.t
val array : Json_type.t list -> Json_type.t
val list : ('a -> Json_type.t) -> 'a list -> Json_type.t
val option : Json_type.t option -> Json_type.t
val optional : ('a -> Json_type.t) -> 'a option -> Json_type.t
end
val string_of_loc : Lexing.position * Lexing.position -> string
val json_error : string -> 'a
end`