sig
type 'a t = 'a Pervasives.ref = { mutable contents : 'a; }
val create : 'a -> 'a Ref.t
val ( ! ) : 'a Ref.t -> 'a
val ( := ) : 'a Ref.t -> 'a -> unit
val equal : 'a Ref.t -> 'a Ref.t -> bool
val swap : 'a Ref.t -> 'a Ref.t -> unit
val replace : 'a Ref.t -> ('a -> 'a) -> unit
val with_set : 'a Ref.t -> 'a -> (unit -> 'b) -> 'b
end