I personally find it a shame we needed to add a new keyword and couldn't just pass through a func which behaved lazily (and got rid of the ```collapsed(lazy=True)``` syntax). It doesn't look like there was a technical reason for doing that, so I'm guessing there was a syntactic reason which meant that we wanted the user to be able to control whether a collapse was done lazily or not. Is that a fair observation?