sig
  type 'a uref = 'BatUref.uref
  type 'a t = 'a uref
  val uref : '-> 'a uref
  val uget : 'a uref -> 'a
  val uset : 'a uref -> '-> unit
  val unite : ?sel:('-> '-> 'a) -> 'a uref -> 'a uref -> unit
  val equal : 'a uref -> 'a uref -> bool
  val print :
    ('BatInnerIO.output -> '-> unit) ->
    'BatInnerIO.output -> 'b uref -> unit
  val uref_printer : 'BatValue_printer.t -> 'a uref BatValue_printer.t
  val t_printer : 'BatValue_printer.t -> 'a t BatValue_printer.t
end