sig   type 'a uref   type 'a t = 'a BatUref.uref   val uref : 'a -> 'a BatUref.uref   val uget : 'a BatUref.uref -> 'a   val uset : 'a BatUref.uref -> 'a -> unit   val unite :     ?sel:('a -> 'a -> 'a) -> 'a BatUref.uref -> 'a BatUref.uref -> unit   val equal : 'a BatUref.uref -> 'a BatUref.uref -> bool   val print : ('a, 'b) BatIO.printer -> ('a BatUref.uref, 'b) BatIO.printer end