sig
  type !'a t
  val make : '-> 'CamlinternalAtomic.t
  val get : 'CamlinternalAtomic.t -> 'a
  val set : 'CamlinternalAtomic.t -> '-> unit
  val exchange : 'CamlinternalAtomic.t -> '-> 'a
  val compare_and_set : 'CamlinternalAtomic.t -> '-> '-> bool
  val fetch_and_add : int CamlinternalAtomic.t -> int -> int
  val incr : int CamlinternalAtomic.t -> unit
  val decr : int CamlinternalAtomic.t -> unit
end