given the generator approach, it would then be handy to build up the return value one hash at a time as a set, then just cast to a list at the end.