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. WWW: http://search.cpan.org/dist/MooseX-Types-VariantTable/