Structured Type Constraints for Moose
A structured type constraint is a standard container Moose type
constraint, such as an ArrayRef or HashRef, which has been enhanced to
allow you to explicitly name all the allowed type constraints inside the
This type library enables structured type constraints. It is built on top
of the MooseX::Types library system, so you should review the
documentation for that if you are not familiar with it.