sig
  type 'a t
  type stamp = int32
  external make :
    '-> AtomicStampedReference.stamp -> 'AtomicStampedReference.t
    = "ocamljava_atomicstampedreference_make"
  external attempt_stamp :
    'AtomicStampedReference.t -> '-> AtomicStampedReference.stamp -> bool
    = "ocamljava_atomicstampedreference_attempt_stamp"
  external compare_and_set :
    'AtomicStampedReference.t ->
    '->
    '->
    AtomicStampedReference.stamp -> AtomicStampedReference.stamp -> bool
    = "ocamljava_atomicstampedreference_compare_and_set"
  external get :
    'AtomicStampedReference.t -> 'a * AtomicStampedReference.stamp
    = "ocamljava_atomicstampedreference_get"
  external get_reference : 'AtomicStampedReference.t -> 'a
    = "ocamljava_atomicstampedreference_get_reference"
  external get_stamp :
    'AtomicStampedReference.t -> AtomicStampedReference.stamp
    = "ocamljava_atomicstampedreference_get_stamp"
  external set :
    'AtomicStampedReference.t -> '-> AtomicStampedReference.stamp -> unit
    = "ocamljava_atomicstampedreference_set"
  external weak_compare_and_set :
    'AtomicStampedReference.t ->
    '->
    '->
    AtomicStampedReference.stamp -> AtomicStampedReference.stamp -> bool
    = "ocamljava_atomicstampedreference_weak_compare_and_set"
end