sig
  type 'a reader = Yojson.Safe.lexer_state -> Lexing.lexbuf -> 'a
  type 'a writer = Bi_outbuf.t -> '-> unit
  val from_lexbuf :
    ?stream:bool ->
    'Ag_util.Json.reader -> Yojson.Safe.lexer_state -> Lexing.lexbuf -> 'a
  val from_string :
    ?buf:Bi_outbuf.t ->
    ?fname:string -> ?lnum:int -> 'Ag_util.Json.reader -> string -> 'a
  val from_channel :
    ?buf:Bi_outbuf.t ->
    ?fname:string ->
    ?lnum:int -> 'Ag_util.Json.reader -> Pervasives.in_channel -> 'a
  val from_file :
    ?buf:Bi_outbuf.t ->
    ?fname:string -> ?lnum:int -> 'Ag_util.Json.reader -> string -> 'a
  val stream_from_lexbuf :
    ?fin:(unit -> unit) ->
    'Ag_util.Json.reader ->
    Yojson.Safe.lexer_state -> Lexing.lexbuf -> 'Stream.t
  val stream_from_string :
    ?buf:Bi_outbuf.t ->
    ?fin:(unit -> unit) ->
    ?fname:string ->
    ?lnum:int -> 'Ag_util.Json.reader -> string -> 'Stream.t
  val stream_from_channel :
    ?buf:Bi_outbuf.t ->
    ?fin:(unit -> unit) ->
    ?fname:string ->
    ?lnum:int ->
    'Ag_util.Json.reader -> Pervasives.in_channel -> 'Stream.t
  val stream_from_file :
    ?buf:Bi_outbuf.t ->
    ?fin:(unit -> unit) ->
    ?fname:string ->
    ?lnum:int -> 'Ag_util.Json.reader -> string -> 'Stream.t
  val list_from_string :
    ?buf:Bi_outbuf.t ->
    ?fin:(unit -> unit) ->
    ?fname:string -> ?lnum:int -> 'Ag_util.Json.reader -> string -> 'a list
  val list_from_channel :
    ?buf:Bi_outbuf.t ->
    ?fin:(unit -> unit) ->
    ?fname:string ->
    ?lnum:int -> 'Ag_util.Json.reader -> Pervasives.in_channel -> 'a list
  val list_from_file :
    ?buf:Bi_outbuf.t ->
    ?fname:string -> ?lnum:int -> 'Ag_util.Json.reader -> string -> 'a list
  val to_string : ?len:int -> 'Ag_util.Json.writer -> '-> string
  val to_channel :
    ?len:int ->
    'Ag_util.Json.writer -> Pervasives.out_channel -> '-> unit
  val to_file : ?len:int -> 'Ag_util.Json.writer -> string -> '-> unit
  val stream_to_string :
    ?len:int -> ?lf:string -> 'Ag_util.Json.writer -> 'Stream.t -> string
  val stream_to_channel :
    ?len:int ->
    ?lf:string ->
    'Ag_util.Json.writer -> Pervasives.out_channel -> 'Stream.t -> unit
  val stream_to_file :
    ?len:int ->
    ?lf:string -> 'Ag_util.Json.writer -> string -> 'Stream.t -> unit
  val list_to_string :
    ?len:int -> ?lf:string -> 'Ag_util.Json.writer -> 'a list -> string
  val list_to_channel :
    ?len:int ->
    ?lf:string ->
    'Ag_util.Json.writer -> Pervasives.out_channel -> 'a list -> unit
  val list_to_file :
    ?len:int ->
    ?lf:string -> 'Ag_util.Json.writer -> string -> 'a list -> unit
  val preset_unknown_field_handler : string -> string -> unit
  val unknown_field_handler : (string -> string -> unit) Pervasives.ref
end