Templated Visitor matches subtypes with subtype specific lambda