sig   type json =       [ `Assoc of (string * Yojson.Raw.json) list       | `Bool of bool       | `Floatlit of string       | `Intlit of string       | `List of Yojson.Raw.json list       | `Null       | `Stringlit of string       | `Tuple of Yojson.Raw.json list       | `Variant of string * Yojson.Raw.json option ]   val to_string :     ?buf:Bi_outbuf.t -> ?len:int -> ?std:bool -> Yojson.Raw.json -> string   val to_channel :     ?buf:Bi_outbuf.t ->     ?len:int ->     ?std:bool -> Pervasives.out_channel -> Yojson.Raw.json -> unit   val to_output :     ?buf:Bi_outbuf.t ->     ?len:int ->     ?std:bool ->     < output : string -> int -> int -> int; .. > -> Yojson.Raw.json -> unit   val to_file : ?len:int -> ?std:bool -> string -> Yojson.Raw.json -> unit   val to_outbuf : ?std:bool -> Bi_outbuf.t -> Yojson.Raw.json -> unit   val stream_to_string :     ?buf:Bi_outbuf.t ->     ?len:int -> ?std:bool -> Yojson.Raw.json Stream.t -> string   val stream_to_channel :     ?buf:Bi_outbuf.t ->     ?len:int ->     ?std:bool -> Pervasives.out_channel -> Yojson.Raw.json Stream.t -> unit   val stream_to_file :     ?len:int -> ?std:bool -> string -> Yojson.Raw.json Stream.t -> unit   val stream_to_outbuf :     ?std:bool -> Bi_outbuf.t -> Yojson.Raw.json Stream.t -> unit   val sort : Yojson.Raw.json -> Yojson.Raw.json   val write_null : Bi_outbuf.t -> unit -> unit   val write_bool : Bi_outbuf.t -> bool -> unit   val write_intlit : Bi_outbuf.t -> string -> unit   val write_floatlit : Bi_outbuf.t -> string -> unit   val write_stringlit : Bi_outbuf.t -> string -> unit   val write_assoc : Bi_outbuf.t -> (string * Yojson.Raw.json) list -> unit   val write_list : Bi_outbuf.t -> Yojson.Raw.json list -> unit   val write_tuple : Bi_outbuf.t -> Yojson.Raw.json list -> unit   val write_std_tuple : Bi_outbuf.t -> Yojson.Raw.json list -> unit   val write_variant : Bi_outbuf.t -> string -> Yojson.Raw.json option -> unit   val write_std_variant :     Bi_outbuf.t -> string -> Yojson.Raw.json option -> unit   val write_json : Bi_outbuf.t -> Yojson.Raw.json -> unit   val write_std_json : Bi_outbuf.t -> Yojson.Raw.json -> unit   val pretty_format : ?std:bool -> Yojson.Raw.json -> Easy_format.t   val pretty_print : ?std:bool -> Format.formatter -> Yojson.Raw.json -> unit   val pretty_to_string : ?std:bool -> Yojson.Raw.json -> string   val pretty_to_channel :     ?std:bool -> Pervasives.out_channel -> Yojson.Raw.json -> unit   val prettify : ?std:bool -> string -> string   val compact : ?std:bool -> string -> string   val from_string :     ?buf:Bi_outbuf.t ->     ?fname:string -> ?lnum:int -> string -> Yojson.Raw.json   val from_channel :     ?buf:Bi_outbuf.t ->     ?fname:string -> ?lnum:int -> Pervasives.in_channel -> Yojson.Raw.json   val from_file :     ?buf:Bi_outbuf.t ->     ?fname:string -> ?lnum:int -> string -> Yojson.Raw.json   type lexer_state =     Yojson.Lexer_state.t = {     buf : Bi_outbuf.t;     mutable lnum : int;     mutable bol : int;     mutable fname : string option;   }   val init_lexer :     ?buf:Bi_outbuf.t ->     ?fname:string -> ?lnum:int -> unit -> Yojson.Raw.lexer_state   val from_lexbuf :     Yojson.Raw.lexer_state ->     ?stream:bool -> Lexing.lexbuf -> Yojson.Raw.json   val stream_from_string :     ?buf:Bi_outbuf.t ->     ?fname:string -> ?lnum:int -> string -> Yojson.Raw.json Stream.t   val stream_from_channel :     ?buf:Bi_outbuf.t ->     ?fin:(unit -> unit) ->     ?fname:string ->     ?lnum:int -> Pervasives.in_channel -> Yojson.Raw.json Stream.t   val stream_from_file :     ?buf:Bi_outbuf.t ->     ?fname:string -> ?lnum:int -> string -> Yojson.Raw.json Stream.t   val stream_from_lexbuf :     Yojson.Raw.lexer_state ->     ?fin:(unit -> unit) -> Lexing.lexbuf -> Yojson.Raw.json Stream.t   type json_line = [ `Exn of exn | `Json of Yojson.Raw.json ]   val linestream_from_channel :     ?buf:Bi_outbuf.t ->     ?fin:(unit -> unit) ->     ?fname:string ->     ?lnum:int -> Pervasives.in_channel -> Yojson.Raw.json_line Stream.t   val linestream_from_file :     ?buf:Bi_outbuf.t ->     ?fname:string -> ?lnum:int -> string -> Yojson.Raw.json_line Stream.t   val finish_string : Yojson.Raw.lexer_state -> Lexing.lexbuf -> string   val read_string : Yojson.Raw.lexer_state -> Lexing.lexbuf -> string   val read_ident : Yojson.Raw.lexer_state -> Lexing.lexbuf -> string   val map_string :     Yojson.Raw.lexer_state ->     (string -> int -> int -> 'a) -> Lexing.lexbuf -> 'a   val map_ident :     Yojson.Raw.lexer_state ->     (string -> int -> int -> 'a) -> Lexing.lexbuf -> 'a   type variant_kind = [ `Double_quote | `Edgy_bracket | `Square_bracket ]   val start_any_variant :     Yojson.Raw.lexer_state -> Lexing.lexbuf -> Yojson.Raw.variant_kind   val finish_variant :     Yojson.Raw.lexer_state -> Lexing.lexbuf -> Yojson.Raw.json option   val finish_skip_variant : Yojson.Raw.lexer_state -> Lexing.lexbuf -> unit   val read_lt : Yojson.Raw.lexer_state -> Lexing.lexbuf -> unit   val read_gt : Yojson.Raw.lexer_state -> Lexing.lexbuf -> unit   val read_comma : Yojson.Raw.lexer_state -> Lexing.lexbuf -> unit   val finish_stringlit : Yojson.Raw.lexer_state -> Lexing.lexbuf -> string   val finish_skip_stringlit : Yojson.Raw.lexer_state -> Lexing.lexbuf -> unit   val finish_escaped_char : Yojson.Raw.lexer_state -> Lexing.lexbuf -> unit   val finish_comment : Yojson.Raw.lexer_state -> Lexing.lexbuf -> unit   val read_space : Yojson.Raw.lexer_state -> Lexing.lexbuf -> unit   val read_eof : Lexing.lexbuf -> bool   val read_null : Yojson.Raw.lexer_state -> Lexing.lexbuf -> unit   val read_null_if_possible : Yojson.Raw.lexer_state -> Lexing.lexbuf -> bool   val read_bool : Yojson.Raw.lexer_state -> Lexing.lexbuf -> bool   val read_int : Yojson.Raw.lexer_state -> Lexing.lexbuf -> int   val read_int8 : Yojson.Raw.lexer_state -> Lexing.lexbuf -> char   val read_int32 : Yojson.Raw.lexer_state -> Lexing.lexbuf -> int32   val read_int64 : Yojson.Raw.lexer_state -> Lexing.lexbuf -> int64   val read_number : Yojson.Raw.lexer_state -> Lexing.lexbuf -> float   val skip_ident : Yojson.Raw.lexer_state -> Lexing.lexbuf -> unit   val read_sequence :     ('-> Yojson.Raw.lexer_state -> Lexing.lexbuf -> 'a) ->     '-> Yojson.Raw.lexer_state -> Lexing.lexbuf -> 'a   val read_list :     (Yojson.Raw.lexer_state -> Lexing.lexbuf -> 'a) ->     Yojson.Raw.lexer_state -> Lexing.lexbuf -> 'a list   val read_list_rev :     (Yojson.Raw.lexer_state -> Lexing.lexbuf -> 'a) ->     Yojson.Raw.lexer_state -> Lexing.lexbuf -> 'a list   val read_array_end : Lexing.lexbuf -> unit   val read_array_sep : Yojson.Raw.lexer_state -> Lexing.lexbuf -> unit   val read_array :     (Yojson.Raw.lexer_state -> Lexing.lexbuf -> 'a) ->     Yojson.Raw.lexer_state -> Lexing.lexbuf -> 'a array   val read_tuple :     (int -> '-> Yojson.Raw.lexer_state -> Lexing.lexbuf -> 'a) ->     '-> Yojson.Raw.lexer_state -> Lexing.lexbuf -> 'a   val start_any_tuple : Yojson.Raw.lexer_state -> Lexing.lexbuf -> bool   val read_lpar : Yojson.Raw.lexer_state -> Lexing.lexbuf -> unit   val read_rpar : Yojson.Raw.lexer_state -> Lexing.lexbuf -> unit   val read_tuple_end : Lexing.lexbuf -> unit   val read_tuple_end2 :     Yojson.Raw.lexer_state -> bool -> Lexing.lexbuf -> unit   val read_tuple_sep : Yojson.Raw.lexer_state -> Lexing.lexbuf -> unit   val read_tuple_sep2 :     Yojson.Raw.lexer_state -> bool -> Lexing.lexbuf -> unit   val read_lbr : Yojson.Raw.lexer_state -> Lexing.lexbuf -> unit   val read_rbr : Yojson.Raw.lexer_state -> Lexing.lexbuf -> unit   val read_fields :     ('acc -> string -> Yojson.Raw.lexer_state -> Lexing.lexbuf -> 'acc) ->     'acc -> Yojson.Raw.lexer_state -> Lexing.lexbuf -> 'acc   val read_abstract_fields :     (Yojson.Raw.lexer_state -> Lexing.lexbuf -> 'key) ->     ('acc -> 'key -> Yojson.Raw.lexer_state -> Lexing.lexbuf -> 'acc) ->     'acc -> Yojson.Raw.lexer_state -> Lexing.lexbuf -> 'acc   val read_lcurl : Yojson.Raw.lexer_state -> Lexing.lexbuf -> unit   val read_object_end : Lexing.lexbuf -> unit   val read_object_sep : Yojson.Raw.lexer_state -> Lexing.lexbuf -> unit   val read_colon : Yojson.Raw.lexer_state -> Lexing.lexbuf -> unit   val read_json : Yojson.Raw.lexer_state -> Lexing.lexbuf -> Yojson.Raw.json   val skip_json : Yojson.Raw.lexer_state -> Lexing.lexbuf -> unit   val buffer_json : Yojson.Raw.lexer_state -> Lexing.lexbuf -> unit   val validate_json : 'path -> Yojson.Raw.json -> 'error option end