MooseX::Method::Signatures provides a proper "method" keyword, like "sub" but specifically for making methods and validating their arguments against Moose type constraints.