sig
  exception Error of string
  val sf : ('a, unit, string) Pervasives.format -> 'a
  type tag =
      T_LParen
    | T_RParen
    | T_LBrack
    | T_RBrack
    | T_LBrace
    | T_RBrace
    | T_Equal
    | T_Comma
    | T_Semicolon
    | T_Array
    | T_Hashtbl
    | T_Set
  val tags : Fragments.tag list
  val string_of_tag : Fragments.tag -> string
  val tag_of_string : string -> Fragments.tag
  val int_of_tag : Fragments.tag -> int
  val tag_of_int : int -> Fragments.tag
  val max_tag : int
  val is_start_tag : Fragments.tag -> bool
  val is_end_tag : Fragments.tag -> bool
  type token =
      Bool of bool
    | Char of char
    | Int of int
    | Int64 of int64
    | Float of float
    | String of string
    | Tag of Fragments.tag
    | Field of string
    | Constructor of string
    | EOF
  type io_in
  type io_out
  val string_of_token : Fragments.token -> string
  val create_io_in :
    read_token:(unit -> Fragments.token) ->
    peek_token:(unit -> Fragments.token) ->
    ?finish:(Fragments.io_in -> unit -> unit) -> unit -> Fragments.io_in
  val flush : Fragments.io_out -> unit
  val is_word_reserved : string -> bool
  val is_tag_voluminous : Fragments.tag -> bool
  val drop_token : Fragments.io_in -> unit
  val peek_token : Fragments.io_in -> Fragments.token
  val read_token : Fragments.io_in -> Fragments.token
  val read_tag : Fragments.io_in -> Fragments.tag
  val read_this_tag : Fragments.io_in -> Fragments.tag -> unit
  val finish : Fragments.io_in -> unit
  val read_int : Fragments.io_in -> int
  val read_int64 : Fragments.io_in -> int64
  val read_float : Fragments.io_in -> float
  val read_bool : Fragments.io_in -> bool
  val read_char : Fragments.io_in -> char
  val read_field : Fragments.io_in -> string
  val read_constructor : Fragments.io_in -> string
  val read_string : Fragments.io_in -> string
  val loss : Fragments.io_in -> unit
  val lost : Fragments.io_in -> bool
  val create_io_out :
    write_token:(Fragments.token -> unit) ->
    ?flush:(unit -> unit) -> unit -> Fragments.io_out
  val write_token : Fragments.io_out -> Fragments.token -> unit
  val write_int : Fragments.io_out -> int -> unit
  val write_int64 : Fragments.io_out -> int64 -> unit
  val write_char : Fragments.io_out -> char -> unit
  val write_string : Fragments.io_out -> string -> unit
  val write_bool : Fragments.io_out -> bool -> unit
  val write_float : Fragments.io_out -> float -> unit
  val write_tag : Fragments.io_out -> Fragments.tag -> unit
  val write_field : Fragments.io_out -> string -> unit
  val write_constructor : Fragments.io_out -> string -> unit
end