sig
  val string_to_item :
    unit -> (string, Biocaml_lines.item) Biocaml_transform.t
  val group2 :
    unit ->
    (Biocaml_lines.item,
     (Biocaml_lines.item * Biocaml_lines.item, [> `premature_end_of_input ])
     Core.Std.Result.t)
    Biocaml_transform.t
  val item_to_string :
    ?buffer:[ `clear of int | `reset of int ] ->
    unit -> (Biocaml_lines.item, string) Biocaml_transform.t
  val make :
    ?name:string ->
    ?filename:string ->
    next:(Biocaml_lines.Buffer.t ->
          [ `not_ready | `output of ('b, 'errnext) Core.Result.t ]) ->
    on_error:([ `incomplete_input of
                  Biocaml_pos.t * Biocaml_lines.item 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_lines.Buffer.t ->
          [ `not_ready
          | `output of
              ('a,
               [> `incomplete_input of
                    Biocaml_pos.t * Biocaml_lines.item list * string option ]
               as 'b)
              Core.Result.t ]) ->
    unit -> (string, ('a, 'b) Core.Result.t) Biocaml_transform.t
end