I think `will` is implemented wrong. Consider this example: ```python import varname class Foo: @property def bar(self): print(varname.will()) return "abc" Foo().bar.upper() ``` `print(varname.will())` prints `bar`, not `upper`.