With the addition of shared keys, there is now a legitimate (albeit uncommon) need for params to know about each other. Currently this requires iterating through every attribute of the class/superclasses in question, since BYOC doesn't keep track of the parameters defined for each class. I'm now thinking about whether it would make sense to do so.
The benefits:
Shared keys wouldn't need to iterate through every class attribute.
API users might expect to be able to easily get all the params defined for a class, although currently I'm not sure what one would do with that information.
The drawbacks:
This would increase the memory footprint of classes that use BYOC, although only slightly (as we'd only be storing pointers to objects that already exist elsewhere). Also, the memory footprint of the class is less important than the memory footprint of the instances.
At the moment, I feel like these benefits slightly outweigh the drawbacks.
With the addition of shared keys, there is now a legitimate (albeit uncommon) need for params to know about each other. Currently this requires iterating through every attribute of the class/superclasses in question, since BYOC doesn't keep track of the parameters defined for each class. I'm now thinking about whether it would make sense to do so.
The benefits:
The drawbacks:
At the moment, I feel like these benefits slightly outweigh the drawbacks.