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 : ('-> Json_type.t) -> 'a list -> Json_type.t
      val option : Json_type.t option -> Json_type.t
      val optional : ('-> Json_type.t) -> 'a option -> Json_type.t
    end
  val string_of_loc : Lexing.position * Lexing.position -> string
  val json_error : string -> 'a
end