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