sig
  type 'a t =
      java'util'concurrent'atomic'AtomicStampedReference java_instance
  type stamp = int32
  val make :
    'a -> AtomicStampedReference.stamp -> 'a AtomicStampedReference.t
  val attempt_stamp :
    'a AtomicStampedReference.t -> 'a -> AtomicStampedReference.stamp -> bool
  val compare_and_set :
    'a AtomicStampedReference.t ->
    'a ->
    'a ->
    AtomicStampedReference.stamp -> AtomicStampedReference.stamp -> bool
  val get : 'a AtomicStampedReference.t -> 'a * AtomicStampedReference.stamp
  val get_reference : 'a AtomicStampedReference.t -> 'a
  val get_stamp : 'a AtomicStampedReference.t -> AtomicStampedReference.stamp
  val set :
    'a AtomicStampedReference.t -> 'a -> AtomicStampedReference.stamp -> unit
  val weak_compare_and_set :
    'a AtomicStampedReference.t ->
    'a ->
    'a ->
    AtomicStampedReference.stamp -> AtomicStampedReference.stamp -> bool
  val null : 'a AtomicStampedReference.t
  external is_null : 'a AtomicStampedReference.t -> bool = "java is_null"
  external is_not_null : 'a AtomicStampedReference.t -> bool
    = "java is_not_null"
  val wrap :
    'a AtomicStampedReference.t -> 'a AtomicStampedReference.t option
  val unwrap :
    'a AtomicStampedReference.t option -> 'a AtomicStampedReference.t
end