sig
type json =
[ `Assoc of (string * Json.json) list
| `Bool of bool
| `Float of float
| `Int of int
| `List of Json.json list
| `Null
| `String of string ]
type t = Json.json
val equal : Json.t -> Json.t -> bool
val compare : Json.t -> Json.t -> int
val pp : Stdlib.Format.formatter -> Json.t -> unit
val pp_dump : Stdlib.Format.formatter -> Json.t -> unit
exception Error of Filepath.Normalized.t * 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 : Stdlib.Lexing.lexbuf -> Json.t
val load_channel : ?file:string -> Stdlib.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 -> Stdlib.Buffer.t -> Json.t -> unit
val save_channel : ?pretty:bool -> Stdlib.out_channel -> Json.t -> unit
val save_formatter :
?pretty:bool -> Stdlib.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 assoc : Json.t -> (string * Json.t) list
val fold : (string -> Json.t -> 'a -> 'a) -> Json.t -> 'a -> 'a
val field : string -> Json.t -> Json.t
exception CannotMerge of string
val merge_object : Filepath.Normalized.t -> Json.t -> unit
val merge_array : Filepath.Normalized.t -> Json.t -> unit
val from_file : Filepath.Normalized.t -> Json.t
val flush_cache : unit -> Filepath.Normalized.t list
end