sig
  type 'a print = Format.formatter -> 'a -> unit
  type 'a pp = Buffer.t -> 'a -> unit
  type 'a ord = 'a -> 'a -> int
  type 'a eq = 'a -> 'a -> bool
  type 'a sequence = ('a -> unit) -> unit
  type 'a t = 'a Pervasives.ref
  val map : ('a -> 'b) -> 'a CCRef.t -> 'b CCRef.t
  val create : 'a -> 'a CCRef.t
  val iter : ('a -> unit) -> 'a CCRef.t -> unit
  val update : ('a -> 'a) -> 'a CCRef.t -> unit
  val incr_then_get : int CCRef.t -> int
  val get_then_incr : int CCRef.t -> int
  val compare : 'a CCRef.ord -> 'a CCRef.t CCRef.ord
  val equal : 'a CCRef.eq -> 'a CCRef.t CCRef.eq
  val to_list : 'a CCRef.t -> 'a list
  val to_seq : 'a CCRef.t -> 'a CCRef.sequence
  val print : 'a CCRef.print -> 'a CCRef.t CCRef.print
  val pp : 'a CCRef.pp -> 'a CCRef.t CCRef.pp
end