module String:sig..end
Core.Core_String .val collate : string -> string -> intcollate s1 s2 sorts string in an order that's is usaully more suited
   for human consumption by treating ints specificaly:
   (e.g. it will output: ["rfc1.txt";"rfc822.txt";"rfc2086.txt"]).
It works by splitting the strings in numerical and non numerical chunks and comparing chunks two by two from left to right (and starting on a non numerical chunks):
val unescaped : ?strict:bool -> string -> stringunescaped s is the inverse operation of escaped: it takes a string where
   all the special characters are escaped following the lexical convention of
   OCaml and returns an unescaped copy.
   The strict switch is on by default and makes the function treat illegal
   backslashes as errors.
   When strict is false every illegal backslash except escaped numeral
   greater than 255 is copied literally. The aforementioned numerals still
   raise errors. This mimics the behaviour of the ocaml lexer.val unescaped_res : ?strict:bool -> string -> (string, int * string) Core.Result.tunescaped but instead of raising Failure _ returns an error
   message with the position in the string in case of failure.val squeeze : string -> stringsqueeze str reduces all sequences of spaces, newlines, tables, and
 * carriage returns to single spaces.val is_substring : substring:string -> string -> boolis_substring ~substring t returns true if substring is a substring
 * of t.val pad_left : ?char:char -> string -> int -> stringpad_left ~char s len
    Returns s padded to the length len by adding characters char to the
    left of the string. If s is already longer than len it is returned unchanged.val pad_right : ?char:char -> string -> int -> stringval line_break : len:int -> string -> string listval word_wrap : ?trailing_nl:bool ->
       ?soft_limit:int -> ?hard_limit:int -> ?nl:string -> string -> stringword_wrap ~soft_limit s
   Wraps the string so that it fits the length soft_limit. It doesn't break
   words unless we go over hard_limit.
   if nl is passed it is inserted instead of the normal newline character.
val edit_distance : ?transpose:unit -> string -> string -> inttranspose argument, it alsos considers transpositions (Damerau-Levenshtein
    distance).