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: https://metacpan.org/release/MooseX-Types-VariantTable