an extension of Params::Validate using Moose's types