sig
  type item = [ `float of float | `int of int | `string of string ]
  type t = Biocaml_table.Row.item array
  type item_type = [ `type_float | `type_int | `type_string ]
  type t_type = Biocaml_table.Row.item_type array
  module Tags :
    sig
      type t =
          [ `format of Biocaml_table.Row.t_type
          | `separator of char
          | `strict_about of [ `cell_type | `row_length ] ] list
      val separators : Biocaml_table.Row.Tags.t -> char list
      val strict_row_length : Biocaml_table.Row.Tags.t -> bool
      val strict_cell_type : Biocaml_table.Row.Tags.t -> bool
      val format :
        Biocaml_table.Row.Tags.t -> Biocaml_table.Row.t_type option
      val default : Biocaml_table.Row.Tags.t
      val default_extension : Biocaml_table.Row.Tags.t -> string
      val to_string : Biocaml_table.Row.Tags.t -> string
      val of_string :
        string ->
        (Biocaml_table.Row.Tags.t,
         [> `table_row of [> `tags_of_string of exn ] ])
        Biocaml_internal_utils.Result.t
      val t_of_sexp : Sexplib.Sexp.t -> Biocaml_table.Row.Tags.t
      val sexp_of_t : Biocaml_table.Row.Tags.t -> Sexplib.Sexp.t
    end
  module Error :
    sig
      type line_parsing =
          [ `wrong_format of
              [ `column_number
              | `float_of_string of string
              | `int_of_string of string ] * Biocaml_table.Row.t_type *
              string ]
      type t = Biocaml_table.Row.Error.line_parsing
      val line_parsing_of_sexp :
        Sexplib.Sexp.t -> Biocaml_table.Row.Error.line_parsing
      val sexp_of_line_parsing :
        Biocaml_table.Row.Error.line_parsing -> Sexplib.Sexp.t
      val t_of_sexp : Sexplib.Sexp.t -> Biocaml_table.Row.Error.t
      val sexp_of_t : Biocaml_table.Row.Error.t -> Sexplib.Sexp.t
    end
  val of_line :
    ?separators:char list ->
    ?strict_row_length:bool ->
    ?strict_cell_type:bool ->
    ?format:Biocaml_table.Row.t_type ->
    Biocaml_internal_utils.Line.t ->
    (Biocaml_table.Row.t, [> Biocaml_table.Row.Error.line_parsing ])
    Biocaml_internal_utils.Result.t
  val to_line :
    sep:string -> Biocaml_table.Row.t -> Biocaml_internal_utils.Line.t
  module Transform :
    sig
      val line_to_item :
        ?tags:Biocaml_table.Row.Tags.t ->
        unit ->
        (Biocaml_lines.item,
         (Biocaml_table.Row.t,
          [> `table_row of Biocaml_table.Row.Error.line_parsing ])
         Biocaml_internal_utils.Result.t)
        Biocaml_transform.t
      val item_to_line :
        ?tags:Biocaml_table.Row.Tags.t ->
        unit -> (Biocaml_table.Row.t, Biocaml_lines.item) Biocaml_transform.t
    end
  val item_of_sexp : Sexplib.Sexp.t -> Biocaml_table.Row.item
  val sexp_of_item : Biocaml_table.Row.item -> Sexplib.Sexp.t
  val t_of_sexp : Sexplib.Sexp.t -> Biocaml_table.Row.t
  val sexp_of_t : Biocaml_table.Row.t -> Sexplib.Sexp.t
  val item_type_of_sexp : Sexplib.Sexp.t -> Biocaml_table.Row.item_type
  val sexp_of_item_type : Biocaml_table.Row.item_type -> Sexplib.Sexp.t
  val t_type_of_sexp : Sexplib.Sexp.t -> Biocaml_table.Row.t_type
  val sexp_of_t_type : Biocaml_table.Row.t_type -> Sexplib.Sexp.t
end