in reply to
MooseX::Declare and Moose subtypes
Your problem is compile-time vs run-time. The subtype isn't being created until runtime, but it needs to be present at compiletime when you get to the method header. Solution: use BEGIN or put it in a separate file and "use" the file.
-- Randal L. Schwartz, Perl hacker
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119.