I was thinking, the only reason I trusted ValueCollectingVisitor without tests was because it was simple (and you wrote it). Making DefaultValueCollectingVisitor seems really useful, I'd like to go to the effort of building it well, but both ValueCollecting and DefaultValueCollecting visitors deserve a better home?