sig
  type t = string list list
  exception Bad_CSV_file of string
  val lines : Csv.t -> int
  val columns : Csv.t -> int
  val load_in : ?separator:char -> Pervasives.in_channel -> Csv.t
  val load : ?separator:char -> string -> Csv.t
  val load_rows :
    ?separator:char -> (string list -> unit) -> Pervasives.in_channel -> unit
  val trim :
    ?top:bool -> ?left:bool -> ?right:bool -> ?bottom:bool -> Csv.t -> Csv.t
  val square : Csv.t -> Csv.t
  val is_square : Csv.t -> bool
  val set_columns : int -> Csv.t -> Csv.t
  val set_rows : int -> Csv.t -> Csv.t
  val set_size : int -> int -> Csv.t -> Csv.t
  val sub : int -> int -> int -> int -> Csv.t -> Csv.t
  val compare : Csv.t -> Csv.t -> int
  val concat : Csv.t list -> Csv.t
  val to_array : Csv.t -> string array array
  val of_array : string array array -> Csv.t
  val associate : string list -> Csv.t -> (string * string) list list
  val print : ?separator:char -> Csv.t -> unit
  val save_out : ?separator:char -> Pervasives.out_channel -> Csv.t -> unit
  val save : ?separator:char -> string -> Csv.t -> unit
  val print_readable : Csv.t -> unit
  val save_out_readable : Pervasives.out_channel -> Csv.t -> unit
end