MooseX::Types::VariantTable implements a simple dispatch table based on
Moose type constraints.

Subtypes will be checked before their parents, meaning that the order of
the declaration does not matter.
