sig
  module type REFOPS =
    sig
      type t
      val ( += ) : Numref.REFOPS.t Pervasives.ref -> Numref.REFOPS.t -> unit
      val ( -= ) : Numref.REFOPS.t Pervasives.ref -> Numref.REFOPS.t -> unit
      val ( *= ) : Numref.REFOPS.t Pervasives.ref -> Numref.REFOPS.t -> unit
      val ( /= ) : Numref.REFOPS.t Pervasives.ref -> Numref.REFOPS.t -> unit
    end
  module GenRefOps :
    functor (Ops : Genops.Ops->
      sig
        type t = Ops.t
        val ( += ) :
          Numref.REFOPS.t Pervasives.ref -> Numref.REFOPS.t -> unit
        val ( -= ) :
          Numref.REFOPS.t Pervasives.ref -> Numref.REFOPS.t -> unit
        val ( *= ) :
          Numref.REFOPS.t Pervasives.ref -> Numref.REFOPS.t -> unit
        val ( /= ) :
          Numref.REFOPS.t Pervasives.ref -> Numref.REFOPS.t -> unit
      end
  module IntRefOps :
    sig
      type t = int
      val ( += ) : Numref.REFOPS.t Pervasives.ref -> Numref.REFOPS.t -> unit
      val ( -= ) : Numref.REFOPS.t Pervasives.ref -> Numref.REFOPS.t -> unit
      val ( *= ) : Numref.REFOPS.t Pervasives.ref -> Numref.REFOPS.t -> unit
      val ( /= ) : Numref.REFOPS.t Pervasives.ref -> Numref.REFOPS.t -> unit
    end
  module FloatRefOps :
    sig
      type t = float
      val ( += ) : Numref.REFOPS.t Pervasives.ref -> Numref.REFOPS.t -> unit
      val ( -= ) : Numref.REFOPS.t Pervasives.ref -> Numref.REFOPS.t -> unit
      val ( *= ) : Numref.REFOPS.t Pervasives.ref -> Numref.REFOPS.t -> unit
      val ( /= ) : Numref.REFOPS.t Pervasives.ref -> Numref.REFOPS.t -> unit
    end
  module Int32RefOps :
    sig
      type t = int32
      val ( += ) : Numref.REFOPS.t Pervasives.ref -> Numref.REFOPS.t -> unit
      val ( -= ) : Numref.REFOPS.t Pervasives.ref -> Numref.REFOPS.t -> unit
      val ( *= ) : Numref.REFOPS.t Pervasives.ref -> Numref.REFOPS.t -> unit
      val ( /= ) : Numref.REFOPS.t Pervasives.ref -> Numref.REFOPS.t -> unit
    end
  module Int64RefOps :
    sig
      type t = int64
      val ( += ) : Numref.REFOPS.t Pervasives.ref -> Numref.REFOPS.t -> unit
      val ( -= ) : Numref.REFOPS.t Pervasives.ref -> Numref.REFOPS.t -> unit
      val ( *= ) : Numref.REFOPS.t Pervasives.ref -> Numref.REFOPS.t -> unit
      val ( /= ) : Numref.REFOPS.t Pervasives.ref -> Numref.REFOPS.t -> unit
    end
  module NativeRefOps :
    sig
      type t = nativeint
      val ( += ) : Numref.REFOPS.t Pervasives.ref -> Numref.REFOPS.t -> unit
      val ( -= ) : Numref.REFOPS.t Pervasives.ref -> Numref.REFOPS.t -> unit
      val ( *= ) : Numref.REFOPS.t Pervasives.ref -> Numref.REFOPS.t -> unit
      val ( /= ) : Numref.REFOPS.t Pervasives.ref -> Numref.REFOPS.t -> unit
    end
end