sig   type json =       [ `Assoc of (string * Yojson.Safe.json) list       | `Bool of bool       | `Float of float       | `Int of int       | `Intlit of string       | `List of Yojson.Safe.json list       | `Null       | `String of string       | `Tuple of Yojson.Safe.json list       | `Variant of string * Yojson.Safe.json option ]   val to_basic : Yojson.Safe.json -> Yojson.Basic.json   val to_string :     ?buf:Bi_outbuf.t -> ?len:int -> ?std:bool -> Yojson.Safe.json -> string   val to_channel :     ?buf:Bi_outbuf.t ->     ?len:int ->     ?std:bool -> Pervasives.out_channel -> Yojson.Safe.json -> unit   val to_output :     ?buf:Bi_outbuf.t ->     ?len:int ->     ?std:bool ->     < output : string -> int -> int -> int; .. > -> Yojson.Safe.json -> unit   val to_file : ?len:int -> ?std:bool -> string -> Yojson.Safe.json -> unit   val to_outbuf : ?std:bool -> Bi_outbuf.t -> Yojson.Safe.json -> unit   val stream_to_string :     ?buf:Bi_outbuf.t ->     ?len:int -> ?std:bool -> Yojson.Safe.json Stream.t -> string   val stream_to_channel :     ?buf:Bi_outbuf.t ->     ?len:int ->     ?std:bool -> Pervasives.out_channel -> Yojson.Safe.json Stream.t -> unit   val stream_to_file :     ?len:int -> ?std:bool -> string -> Yojson.Safe.json Stream.t -> unit   val stream_to_outbuf :     ?std:bool -> Bi_outbuf.t -> Yojson.Safe.json Stream.t -> unit   val sort : Yojson.Safe.json -> Yojson.Safe.json   val write_null : Bi_outbuf.t -> unit -> unit   val write_bool : Bi_outbuf.t -> bool -> unit   val write_int : Bi_outbuf.t -> int -> unit   val write_float : Bi_outbuf.t -> float -> unit   val write_std_float : Bi_outbuf.t -> float -> unit   val write_float_fast : Bi_outbuf.t -> float -> unit   val write_std_float_fast : Bi_outbuf.t -> float -> unit   val write_float_prec : int -> Bi_outbuf.t -> float -> unit   val write_std_float_prec : int -> Bi_outbuf.t -> float -> unit   val write_string : Bi_outbuf.t -> string -> unit   val write_intlit : Bi_outbuf.t -> string -> unit   val write_assoc : Bi_outbuf.t -> (string * Yojson.Safe.json) list -> unit   val write_list : Bi_outbuf.t -> Yojson.Safe.json list -> unit   val write_tuple : Bi_outbuf.t -> Yojson.Safe.json list -> unit   val write_std_tuple : Bi_outbuf.t -> Yojson.Safe.json list -> unit   val write_variant :     Bi_outbuf.t -> string -> Yojson.Safe.json option -> unit   val write_std_variant :     Bi_outbuf.t -> string -> Yojson.Safe.json option -> unit   val write_json : Bi_outbuf.t -> Yojson.Safe.json -> unit   val write_std_json : Bi_outbuf.t -> Yojson.Safe.json -> unit   val pretty_format : ?std:bool -> Yojson.Safe.json -> Easy_format.t   val pretty_print :     ?std:bool -> Format.formatter -> Yojson.Safe.json -> unit   val pretty_to_string : ?std:bool -> Yojson.Safe.json -> string   val pretty_to_channel :     ?std:bool -> Pervasives.out_channel -> Yojson.Safe.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.Safe.json   val from_channel :     ?buf:Bi_outbuf.t ->     ?fname:string -> ?lnum:int -> Pervasives.in_channel -> Yojson.Safe.json   val from_file :     ?buf:Bi_outbuf.t ->     ?fname:string -> ?lnum:int -> string -> Yojson.Safe.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.Safe.lexer_state   val from_lexbuf :     Yojson.Safe.lexer_state ->     ?stream:bool -> Lexing.lexbuf -> Yojson.Safe.json   val stream_from_string :     ?buf:Bi_outbuf.t ->     ?fname:string -> ?lnum:int -> string -> Yojson.Safe.json Stream.t   val stream_from_channel :     ?buf:Bi_outbuf.t ->     ?fin:(unit -> unit) ->     ?fname:string ->     ?lnum:int -> Pervasives.in_channel -> Yojson.Safe.json Stream.t   val stream_from_file :     ?buf:Bi_outbuf.t ->     ?fname:string -> ?lnum:int -> string -> Yojson.Safe.json Stream.t   val stream_from_lexbuf :     Yojson.Safe.lexer_state ->     ?fin:(unit -> unit) -> Lexing.lexbuf -> Yojson.Safe.json Stream.t   type json_line = [ `Exn of exn | `Json of Yojson.Safe.json ]   val linestream_from_channel :     ?buf:Bi_outbuf.t ->     ?fin:(unit -> unit) ->     ?fname:string ->     ?lnum:int -> Pervasives.in_channel -> Yojson.Safe.json_line Stream.t   val linestream_from_file :     ?buf:Bi_outbuf.t ->     ?fname:string -> ?lnum:int -> string -> Yojson.Safe.json_line Stream.t   val finish_string : Yojson.Safe.lexer_state -> Lexing.lexbuf -> string   val read_string : Yojson.Safe.lexer_state -> Lexing.lexbuf -> string   val read_ident : Yojson.Safe.lexer_state -> Lexing.lexbuf -> string   val map_string :     Yojson.Safe.lexer_state ->     (string -> int -> int -> 'a) -> Lexing.lexbuf -> 'a   val map_ident :     Yojson.Safe.lexer_state ->     (string -> int -> int -> 'a) -> Lexing.lexbuf -> 'a   type variant_kind = [ `Double_quote | `Edgy_bracket | `Square_bracket ]   val start_any_variant :     Yojson.Safe.lexer_state -> Lexing.lexbuf -> Yojson.Safe.variant_kind   val finish_variant :     Yojson.Safe.lexer_state -> Lexing.lexbuf -> Yojson.Safe.json option   val finish_skip_variant : Yojson.Safe.lexer_state -> Lexing.lexbuf -> unit   val read_lt : Yojson.Safe.lexer_state -> Lexing.lexbuf -> unit   val read_gt : Yojson.Safe.lexer_state -> Lexing.lexbuf -> unit   val read_comma : Yojson.Safe.lexer_state -> Lexing.lexbuf -> unit   val finish_stringlit : Yojson.Safe.lexer_state -> Lexing.lexbuf -> string   val finish_skip_stringlit :     Yojson.Safe.lexer_state -> Lexing.lexbuf -> unit   val finish_escaped_char : Yojson.Safe.lexer_state -> Lexing.lexbuf -> unit   val finish_comment : Yojson.Safe.lexer_state -> Lexing.lexbuf -> unit   val read_space : Yojson.Safe.lexer_state -> Lexing.lexbuf -> unit   val read_eof : Lexing.lexbuf -> bool   val read_null : Yojson.Safe.lexer_state -> Lexing.lexbuf -> unit   val read_null_if_possible :     Yojson.Safe.lexer_state -> Lexing.lexbuf -> bool   val read_bool : Yojson.Safe.lexer_state -> Lexing.lexbuf -> bool   val read_int : Yojson.Safe.lexer_state -> Lexing.lexbuf -> int   val read_int8 : Yojson.Safe.lexer_state -> Lexing.lexbuf -> char   val read_int32 : Yojson.Safe.lexer_state -> Lexing.lexbuf -> int32   val read_int64 : Yojson.Safe.lexer_state -> Lexing.lexbuf -> int64   val read_number : Yojson.Safe.lexer_state -> Lexing.lexbuf -> float   val skip_ident : Yojson.Safe.lexer_state -> Lexing.lexbuf -> unit   val read_sequence :     ('-> Yojson.Safe.lexer_state -> Lexing.lexbuf -> 'a) ->     '-> Yojson.Safe.lexer_state -> Lexing.lexbuf -> 'a   val read_list :     (Yojson.Safe.lexer_state -> Lexing.lexbuf -> 'a) ->     Yojson.Safe.lexer_state -> Lexing.lexbuf -> 'a list   val read_list_rev :     (Yojson.Safe.lexer_state -> Lexing.lexbuf -> 'a) ->     Yojson.Safe.lexer_state -> Lexing.lexbuf -> 'a list   val read_array_end : Lexing.lexbuf -> unit   val read_array_sep : Yojson.Safe.lexer_state -> Lexing.lexbuf -> unit   val read_array :     (Yojson.Safe.lexer_state -> Lexing.lexbuf -> 'a) ->     Yojson.Safe.lexer_state -> Lexing.lexbuf -> 'a array   val read_tuple :     (int -> '-> Yojson.Safe.lexer_state -> Lexing.lexbuf -> 'a) ->     '-> Yojson.Safe.lexer_state -> Lexing.lexbuf -> 'a   val start_any_tuple : Yojson.Safe.lexer_state -> Lexing.lexbuf -> bool   val read_lpar : Yojson.Safe.lexer_state -> Lexing.lexbuf -> unit   val read_rpar : Yojson.Safe.lexer_state -> Lexing.lexbuf -> unit   val read_tuple_end : Lexing.lexbuf -> unit   val read_tuple_end2 :     Yojson.Safe.lexer_state -> bool -> Lexing.lexbuf -> unit   val read_tuple_sep : Yojson.Safe.lexer_state -> Lexing.lexbuf -> unit   val read_tuple_sep2 :     Yojson.Safe.lexer_state -> bool -> Lexing.lexbuf -> unit   val read_lbr : Yojson.Safe.lexer_state -> Lexing.lexbuf -> unit   val read_rbr : Yojson.Safe.lexer_state -> Lexing.lexbuf -> unit   val read_fields :     ('acc -> string -> Yojson.Safe.lexer_state -> Lexing.lexbuf -> 'acc) ->     'acc -> Yojson.Safe.lexer_state -> Lexing.lexbuf -> 'acc   val read_abstract_fields :     (Yojson.Safe.lexer_state -> Lexing.lexbuf -> 'key) ->     ('acc -> 'key -> Yojson.Safe.lexer_state -> Lexing.lexbuf -> 'acc) ->     'acc -> Yojson.Safe.lexer_state -> Lexing.lexbuf -> 'acc   val read_lcurl : Yojson.Safe.lexer_state -> Lexing.lexbuf -> unit   val read_object_end : Lexing.lexbuf -> unit   val read_object_sep : Yojson.Safe.lexer_state -> Lexing.lexbuf -> unit   val read_colon : Yojson.Safe.lexer_state -> Lexing.lexbuf -> unit   val read_json :     Yojson.Safe.lexer_state -> Lexing.lexbuf -> Yojson.Safe.json   val skip_json : Yojson.Safe.lexer_state -> Lexing.lexbuf -> unit   val buffer_json : Yojson.Safe.lexer_state -> Lexing.lexbuf -> unit   val validate_json : 'path -> Yojson.Safe.json -> 'error option   module Util :     sig       exception Type_error of string * Yojson.Safe.json       exception Undefined of string * Yojson.Safe.json       val ( |> ) : '-> ('-> 'b) -> 'b       val keys : Yojson.Safe.json -> string list       val values : Yojson.Safe.json -> Yojson.Safe.json list       val combine : Yojson.Safe.json -> Yojson.Safe.json -> Yojson.Safe.json       val member : string -> Yojson.Safe.json -> Yojson.Safe.json       val index : int -> Yojson.Safe.json -> Yojson.Safe.json       val map :         (Yojson.Safe.json -> Yojson.Safe.json) ->         Yojson.Safe.json -> Yojson.Safe.json       val to_assoc : Yojson.Safe.json -> (string * Yojson.Safe.json) list       val to_option :         (Yojson.Safe.json -> 'a) -> Yojson.Safe.json -> 'a option       val to_bool : Yojson.Safe.json -> bool       val to_bool_option : Yojson.Safe.json -> bool option       val to_number : Yojson.Safe.json -> float       val to_number_option : Yojson.Safe.json -> float option       val to_float : Yojson.Safe.json -> float       val to_float_option : Yojson.Safe.json -> float option       val to_int : Yojson.Safe.json -> int       val to_int_option : Yojson.Safe.json -> int option       val to_list : Yojson.Safe.json -> Yojson.Safe.json list       val to_string : Yojson.Safe.json -> string       val to_string_option : Yojson.Safe.json -> string option       val convert_each :         (Yojson.Safe.json -> 'a) -> Yojson.Safe.json -> 'a list       val filter_map : ('-> 'b option) -> 'a list -> 'b list       val flatten : Yojson.Safe.json list -> Yojson.Safe.json list       val filter_index :         int -> Yojson.Safe.json list -> Yojson.Safe.json list       val filter_list : Yojson.Safe.json list -> Yojson.Safe.json list list       val filter_member :         string -> Yojson.Safe.json list -> Yojson.Safe.json list       val filter_assoc :         Yojson.Safe.json list -> (string * Yojson.Safe.json) list list       val filter_bool : Yojson.Safe.json list -> bool list       val filter_int : Yojson.Safe.json list -> int list       val filter_float : Yojson.Safe.json list -> float list       val filter_number : Yojson.Safe.json list -> float list       val filter_string : Yojson.Safe.json list -> string list     end end