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
end