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