sig
  type istring = IStringBase.internalised IStringBase.istring_
  and temp_istring = IStringBase.temp IStringBase.istring_
  and 'a istring_
  and internalised
  and temp
  val empty' : IStringBase.temp_istring
  val is_empty : 'IStringBase.istring_ -> bool
  val length : 'IStringBase.istring_ -> int
  val snoc' : 'IStringBase.istring_ -> char -> IStringBase.temp_istring
  val unsnoc' : 'IStringBase.istring_ -> IStringBase.temp_istring * char
  val temp_istring : 'IStringBase.istring_ -> IStringBase.temp_istring
  val equal : IStringBase.istring -> IStringBase.istring -> bool
  val compare : IStringBase.istring -> IStringBase.istring -> int
  val hash : 'IStringBase.istring_ -> int
  val get : 'IStringBase.istring_ -> int -> char
  val internalise : 'IStringBase.istring_ -> IStringBase.istring
  val all_istrings : unit -> IStringBase.istring list
  val stats : unit -> int * int * int * int * int * int
end