The above is so close to Var.observe (which returns a closable).  I don't think the semantics are different enough to warrant a whole new class.