sig
  type 'a t = 'a list Pervasives.ref
  val push : 'CCList.Ref.t -> '-> unit
  val pop : 'CCList.Ref.t -> 'a option
  val pop_exn : 'CCList.Ref.t -> 'a
  val create : unit -> 'CCList.Ref.t
  val clear : 'CCList.Ref.t -> unit
  val lift : ('a list -> 'b) -> 'CCList.Ref.t -> 'b
  val push_list : 'CCList.Ref.t -> 'a list -> unit
end