Right now it takes a name, but could we do:
class C(HasTrait):
foo = FooTrait():
@observe(foo):
def _(...):
...
and extract the name from the foo instance instead of requiring a string ?
There is probably a reason not to do that, but just wondering why.