A visitor for types, in the style of the standard visitor design pattern.
This is used to operate on a type when the kind
of type is unknown at compile time.
When a visitor is passed to a type's
{@link TypeMirror#accept accept} method,
the most specific visitXxx method applicable to
that type is invoked.