in reply to
Some Moose questions
You are confusing core Moose types with MooseX::Types.
Core Moose types (those created with Moose::Util::TypeConstratints are not the same as MooseX::Types created types. If you are not using MooseX::Types, then you will always want to quote your type names because of exactly the documented issue you quoted. However with MooseX::Types, a subroutine is created for you which you can then use as a bareword so quoting is not needed (however you do need to watch out for automagic stringification using the fat comma).