sig
  val cut : ?n:int -> string -> string list
  val to_charlist : string -> char list
  val split_old : ?d:char -> string -> string list
  val split : ?squeeze:bool -> ?d:char -> string -> string list
  val merge : string -> string -> string -> string
  val quote : ?l:string -> ?r:string -> string -> string
  val assemble : string -> string -> string -> string
  val of_charlist : char list -> string
  type binop = string -> string -> string
  val big : StringExtra.Extra.binop -> string list -> string
  val merge_map : ?sep:string -> ('-> string) -> 'a list -> string
  module Fold :
    sig
      val commacat : string list -> string
      val semicolon : string list -> string
      val nospacecommacat : string list -> string
      val nospacesemicolon : string list -> string
      val dotcat : string list -> string
      val newlinecat : string list -> string
      val blankcat : string list -> string
      val slashcat : string list -> string
    end
  val merge_fields : string -> int list -> string list -> string
  type line = string
  val to_line : StringExtra.Extra.line -> StringExtra.Extra.line
  module Text :
    sig
      type t = string list
      type filter = string list -> string list
      val to_string : StringExtra.Extra.line list -> StringExtra.Extra.line
      val of_string : ?squeeze:bool -> string -> string list
      module Matrix :
        sig
          type t = string list list
          type filter =
              StringExtra.Extra.Text.Matrix.t ->
              StringExtra.Extra.Text.Matrix.t
          val of_string :
            ?squeeze:bool -> ?d:char -> string -> string list list
          val to_string :
            ?d:string ->
            StringExtra.Extra.line list list -> StringExtra.Extra.line
        end
    end
  val chop : string -> string
  val rstrip : string -> string
  val lstrip : string -> string
  val strip : string -> string
end