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 ])
     Biocaml_internal_utils.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) Biocaml_internal_utils.Result.t ]) ->
    on_error:([ `incomplete_input of
                  Biocaml_internal_utils.Pos.t * string list * string option
              | `next of 'errnext ] -> 'err) ->
    unit ->
    (string, ('b, 'err) Biocaml_internal_utils.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_internal_utils.Pos.t * string list *
                    string option ]
               as 'b)
              Biocaml_internal_utils.Result.t ]) ->
    unit ->
    (string, ('a, 'b) Biocaml_internal_utils.Result.t) Biocaml_transform.t
end