sig
  val collate : string -> string -> int
  val unescaped : ?strict:bool -> string -> string
  val unescaped_res :
    ?strict:bool -> string -> (string, int * string) Core.Result.t
  val squeeze : string -> string
  val is_substring : substring:string -> string -> bool
  val pad_left : ?char:char -> string -> int -> string
  val pad_right : ?char:char -> string -> int -> string
  val line_break : len:int -> string -> string list
  val word_wrap :
    ?trailing_nl:bool ->
    ?soft_limit:int -> ?hard_limit:int -> ?nl:string -> string -> string
  val consolidate_strings :
    ?int_sets:[ `Asterisk | `Bounds | `Exact ] -> string list -> string
  val consolidate_strings' : max_len:int -> string list -> string
  val edit_distance : ?transpose:unit -> string -> string -> int
  val ounit_tests : unit -> OUnit.test
end