To make this work PropertyCollection needs to implement proper caching and keep track of its children. If a property is added dynamically, the cache of the children needs to be invalidated.
[x] Write a tests that breaks when simple memoization is used
[x] Implement proper caching
[x] Raise a descriptive ArgumentError if argument forwarding fails.
See #27.
To make this work
PropertyCollection
needs to implement proper caching and keep track of its children. If a property is added dynamically, the cache of the children needs to be invalidated.ArgumentError
if argument forwarding fails.