sig   type 'a t = 'Pervasives.ref   external ref : '-> 'Pervasives.ref = "%makemutable"   external ( ! ) : 'Pervasives.ref -> 'a = "%field0"   external ( := ) : 'Pervasives.ref -> '-> unit = "%setfield0"   external set : 'Pervasives.ref -> '-> unit = "%setfield0"   external get : 'Pervasives.ref -> 'a = "%field0"   val copy : 'Pervasives.ref -> 'Pervasives.ref   val pre : 'Pervasives.ref -> ('-> 'a) -> 'a   val post : 'Pervasives.ref -> ('-> 'a) -> 'a   val swap : 'Pervasives.ref -> 'Pervasives.ref -> unit   val post_incr : int Pervasives.ref -> int   val post_decr : int Pervasives.ref -> int   val pre_incr : int Pervasives.ref -> int   val pre_decr : int Pervasives.ref -> int   val protect : 'Pervasives.ref -> '-> (unit -> 'b) -> 'b   val toggle : bool Pervasives.ref -> unit   val oset : 'a option Pervasives.ref -> '-> unit   val oget_exn : 'a option Pervasives.ref -> 'a   val print :     ('BatInnerIO.output -> '-> unit) ->     'BatInnerIO.output -> 'BatRef.t -> unit   val compare : 'BatOrd.comp -> 'Pervasives.ref BatOrd.comp   val ord : 'BatOrd.ord -> 'Pervasives.ref BatOrd.ord   val eq : 'BatOrd.eq -> 'Pervasives.ref BatOrd.eq end