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