sig
  type ('a, 'b) t
  val create :
    'Bogue.Var.t ->
    t_from:('-> 'b) -> t_to:('-> 'a) -> ('a, 'b) Bogue.Tvar.t
  val get : ('a, 'b) Bogue.Tvar.t -> 'b
  val set : ('a, 'b) Bogue.Tvar.t -> '-> unit
end