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 BatInnerIO.output -> 'b -> unit) ->
    'a BatInnerIO.output -> 'b BatUref.uref -> unit
  val uref_printer :
    'a BatValue_printer.t -> 'a BatUref.uref BatValue_printer.t
  val t_printer : 'a BatValue_printer.t -> 'a BatUref.t BatValue_printer.t
end