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