The problem isn't strictly the methods themselves, it's more a matter of making them use the right set of data. Therefore, would it not be just as effective to implement getters/setters on the appropriate datasources:
/.../
That could be a simpler alternative, I guess. I think it'd be slightly slower though.
My understanding is that the getter/setters operate at a lower level than standard `->(), so it's impossible to avoid them being called, which is desirable in this case.
Yes. That's why I prefer the syntax `foo and `foo=, besides it being shorter. I actually think it's somewhat unfortunate that the `->foo and `->foo= syntax wasn't removed from the start, because it just adds confusion.