base.Var[X]

mut .set(x: X): imm base.Void -> …,
mut <-(f: mut base.UpdateVar[X]): X -> …,
read .get: read/imm X,
mut .get: X,
mut .update(f: mut base.UpdateVar[X]): X -> …,
read *: read/imm X -> …,
mut *: X -> …,
mut .swap(x: X): X,
mut :=(x: X): imm base.Void -> …,
mut .set(x: X): imm base.Void -> …,
mut <-(f: mut base.UpdateVar[X]): X -> …,
read .get: read/imm X,
mut .get: X,
mut .update(f: mut base.UpdateVar[X]): X -> …,
read *: read/imm X -> …,
mut *: X -> …,
mut .swap(x: X): X,
mut :=(x: X): imm base.Void -> …,