sig
  module Row :
    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
end