sig
  type t
  val to_string : UtilsLib.ImStrings.t -> string
  val of_string : string -> UtilsLib.ImStrings.t
  val init : int -> (int -> char) -> UtilsLib.ImStrings.t
  val fold_left : ('-> char -> 'a) -> '-> UtilsLib.ImStrings.t -> 'a
  val nth : UtilsLib.ImStrings.t -> int -> char option
  val nth_is : UtilsLib.ImStrings.t -> int -> char -> bool
  val set : string -> int -> char -> string
  val char_rindex_from : UtilsLib.ImStrings.t -> int -> char -> int option
  val char_index_from : UtilsLib.ImStrings.t -> int -> char -> int option
  val char_index_all : UtilsLib.ImStrings.t -> char -> int list
  val char_split : char -> UtilsLib.ImStrings.t -> UtilsLib.ImStrings.t list
  val char_splitter :
    char -> UtilsLib.ImStrings.t -> UtilsLib.ImStrings.t list
  val char_cut :
    char ->
    UtilsLib.ImStrings.t ->
    (UtilsLib.ImStrings.t * UtilsLib.ImStrings.t) option
  val char_rcut :
    char ->
    UtilsLib.ImStrings.t ->
    (UtilsLib.ImStrings.t * UtilsLib.ImStrings.t) option
  val starts_with : UtilsLib.ImStrings.t -> UtilsLib.ImStrings.t -> bool
  val ends_with : UtilsLib.ImStrings.t -> UtilsLib.ImStrings.t -> bool
  val str_split :
    UtilsLib.ImStrings.t -> UtilsLib.ImStrings.t -> UtilsLib.ImStrings.t list
  val str_cut :
    UtilsLib.ImStrings.t ->
    UtilsLib.ImStrings.t ->
    (UtilsLib.ImStrings.t * UtilsLib.ImStrings.t) option
  val string_index :
    UtilsLib.ImStrings.t -> UtilsLib.ImStrings.t -> int option
  val string_rindex :
    UtilsLib.ImStrings.t -> UtilsLib.ImStrings.t -> int option
  val string_index_from :
    UtilsLib.ImStrings.t -> int -> UtilsLib.ImStrings.t -> int option
  val string_rindex_from :
    UtilsLib.ImStrings.t -> int -> UtilsLib.ImStrings.t -> int option
end