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