`sig
exception Replace_phrase of (int * string)
val index_of_substring_from : string -> int -> string -> int
val rindex_of_substring_from : string -> int -> string -> int
val index_of_substring : string -> string -> int
val rindex_of_substring : string -> string -> int
val contains_substring : string -> string -> bool
val contains_substring_from : string -> int -> string -> bool
val rcontains_substring_from : string -> int -> string -> bool
val indexlist_of_substring : string -> string -> int list
val rev_concat : string -> string list -> string
val replace_char : string -> (char -> int -> string) -> string
val replace_substring :
string -> string list -> (string -> int -> string) -> string
end`