sig
type t =
Null
| True
| False
| String of string
| Number of string
| Int of int
| Float of float
| Array of Json.t list
| Assoc of (string * Json.t) list
val equal : Json.t -> Json.t -> bool
val compare : Json.t -> Json.t -> int
val pp : Format.formatter -> Json.t -> unit
val pp_dump : Format.formatter -> Json.t -> unit
exception Error of string * int * string
val of_bool : bool -> Json.t
val of_int : int -> Json.t
val of_string : string -> Json.t
val of_float : float -> Json.t
val of_list : Json.t list -> Json.t
val of_array : Json.t array -> Json.t
val of_fields : (string * Json.t) list -> Json.t
val load_lexbuf : Lexing.lexbuf -> Json.t
val load_channel : ?file:string -> Pervasives.in_channel -> Json.t
val load_string : string -> Json.t
val load_file : string -> Json.t
val save_string : ?pretty:bool -> Json.t -> string
val save_buffer : ?pretty:bool -> Buffer.t -> Json.t -> unit
val save_channel : ?pretty:bool -> Pervasives.out_channel -> Json.t -> unit
val save_formatter : ?pretty:bool -> Format.formatter -> Json.t -> unit
val save_file : ?pretty:bool -> string -> Json.t -> unit
val bool : Json.t -> bool
val int : Json.t -> int
val string : Json.t -> string
val float : Json.t -> float
val array : Json.t -> Json.t array
val list : Json.t -> Json.t list
val fold : (string -> Json.t -> 'a -> 'a) -> Json.t -> 'a -> 'a
val field : string -> Json.t -> Json.t
end