sig
type t = (string * int * int) list
val normalize : Cf_message.t -> Cf_message.t
val create : string -> Cf_message.t
val length : Cf_message.t -> int
val contents : Cf_message.t -> string
val copy : Cf_message.t -> Cf_message.t
val flatten : Cf_message.t -> Cf_message.t
val split : pos:int -> Cf_message.t -> Cf_message.t * Cf_message.t
val truncate : pos:int -> Cf_message.t -> Cf_message.t
val shift : pos:int -> Cf_message.t -> Cf_message.t
val insert : pos:int -> m:Cf_message.t -> Cf_message.t -> Cf_message.t
val to_seq : Cf_message.t -> char Cf_seq.t
val to_seq2 : Cf_message.t -> (char * Cf_message.t) Cf_seq.t
val unsafe_shift1 : Cf_message.t -> Cf_message.t
val unsafe_to_seq : Cf_message.t -> char Cf_seq.t
val unsafe_to_seq2 : Cf_message.t -> (char * Cf_message.t) Cf_seq.t
end