A good measure of how right a model or an implementation is can be how quickly it extends to more complex situations:
This is essentially the same except that 'SSE' has been added (no big deal) but also the leaf list has been generalised to AbstractLeafCollection. :)

I'm sure there are better ways to do this, but it fits neatly with some existing ideas I had on searching through lists vs searching through sets.
Comments