open UPervasives

module type Type =
  sig
    type t
    val create : int -> t
    val contents : t -> string
    val clear : t -> unit
    val reset : t -> unit
    val add_char : t -> uchar -> unit
    val add_string : t -> string -> unit
    val add_substring : t -> string -> int -> int -> unit
    val add_buffer : t -> t -> unit
    val add_channel : t -> utf8_in_channel -> int -> unit
    val output_buffer : utf8_out_channel -> t -> unit
  end
