sig
  type istring = IString.internalised IString.istring_
  and temp_istring = IString.temp IString.istring_
  and 'a istring_
  and internalised
  and temp
  type t = IString.istring
  val empty : IString.istring
  val snoc : 'IString.istring_ -> char -> IString.istring
  val is_empty : 'IString.istring_ -> bool
  val unsnoc : 'IString.istring_ -> IString.istring * char
  val init : 'IString.istring_ -> IString.istring
  val last : 'IString.istring_ -> char
  val head : 'IString.istring_ -> char
  val tail : 'IString.istring_ -> IString.istring
  val length : 'IString.istring_ -> int
  val temp_istring : 'IString.istring_ -> IString.temp_istring
  val equal : IString.istring -> IString.istring -> bool
  val compare : IString.istring -> IString.istring -> int
  val lexical_compare : IString.istring -> IString.istring -> int
  val hash : 'IString.istring_ -> int
  val get : 'IString.istring_ -> int -> char
  val rev : 'IString.istring_ -> IString.istring
  val append : 'IString.istring_ -> 'IString.istring_ -> IString.istring
  val append_string : 'IString.istring_ -> string -> IString.istring
  val concat :
    ?sep:'IString.istring_ -> 'IString.istring_ list -> IString.istring
  val to_string : 'IString.istring_ -> string
  val of_string : string -> IString.istring
  val of_char : char -> IString.istring
  val of_int : int -> IString.istring
  val of_float : float -> IString.istring
  val sub : 'IString.istring_ -> int -> int -> IString.istring
  val fold_left : ('-> char -> 'a) -> '-> 'IString.istring_ -> 'a
  val fold_right : (char -> '-> 'a) -> 'IString.istring_ -> '-> 'a
  val internalise : 'IString.istring_ -> IString.istring
  val unsnoc' : 'IString.istring_ -> IString.temp_istring * char
  val snoc' : 'IString.istring_ -> char -> IString.temp_istring
  val rev' : 'IString.istring_ -> IString.temp_istring
  val append' :
    'IString.istring_ -> 'IString.istring_ -> IString.temp_istring
  val append_string' : 'IString.istring_ -> string -> IString.temp_istring
  val concat' :
    ?sep:'IString.istring_ ->
    'IString.istring_ list -> IString.temp_istring
  val of_string' : string -> IString.temp_istring
  val of_char' : char -> IString.temp_istring
  val of_int' : int -> IString.temp_istring
  val of_float' : float -> IString.temp_istring
  val toplevel_istring_printer : Format.formatter -> IString.istring -> unit
  val toplevel_temp_istring_printer :
    Format.formatter -> IString.temp_istring -> unit
  val all_istrings : unit -> IString.istring list
  val all_istrings' : unit -> string list
  val stats : unit -> int * int * int * int * int * int
end