> The downside is that Java doesn't let you implement generic methods with lambdas ...
yes, that exactly why i've chosen to make the type parametric and not the method apply, but you're right that the classical visitor pattern uses a polymorphic method (accept) not a polymorphic class.