sig
  type parsing_buffer
  val parsing_buffer :
    ?filename:string ->
    unit -> Biocaml_transform.Line_oriented.parsing_buffer
  val feed_line :
    Biocaml_transform.Line_oriented.parsing_buffer -> string -> unit
  val feed_string :
    Biocaml_transform.Line_oriented.parsing_buffer -> string -> unit
  val queued_lines : Biocaml_transform.Line_oriented.parsing_buffer -> int
  val is_empty : Biocaml_transform.Line_oriented.parsing_buffer -> bool
  val next_line :
    Biocaml_transform.Line_oriented.parsing_buffer -> string option
  exception No_next_line
  val next_line_exn :
    Biocaml_transform.Line_oriented.parsing_buffer -> string
  val current_position :
    Biocaml_transform.Line_oriented.parsing_buffer -> Biocaml_pos.t
  val contents :
    Biocaml_transform.Line_oriented.parsing_buffer ->
    string list * string option
  val empty : Biocaml_transform.Line_oriented.parsing_buffer -> unit
  val make :
    ?name:string ->
    ?filename:string ->
    next:(Biocaml_transform.Line_oriented.parsing_buffer ->
          [ `not_ready | `output of ('b, 'errnext) Core.Result.t ]) ->
    on_error:([ `incomplete_input of
                  Biocaml_pos.t * string list * string option
              | `next of 'errnext ] -> 'err) ->
    unit -> (string, ('b, 'err) Core.Result.t) Biocaml_transform.t
  val make_merge_error :
    ?name:string ->
    ?filename:string ->
    next:(Biocaml_transform.Line_oriented.parsing_buffer ->
          [ `not_ready
          | `output of
              ('a,
               [> `incomplete_input of
                    Biocaml_pos.t * string list * string option ]
               as 'b)
              Core.Result.t ]) ->
    unit -> (string, ('a, 'b) Core.Result.t) Biocaml_transform.t
  val lines : unit -> (string, string) Biocaml_transform.t
end