This would be my comment at chromatic's book-promotion blog -- in particular in reply to Ovid's comment -- if I weren't required to sign in there.
Perl6 will be out soon, right? Why put MooseX::Declare in the Perl5 core?
Anyway, the module failed to install for me. I'll try to work out why, though at first glance... MooseX::Method::Signatures failed to install, and it required
Context::Preserve [requires]
Parse::Method::Signatures [requires]
MooseX::Meta::TypeConstraint::ForceCoercion [requires]
MooseX::Types::Structured [requires]
aliased [requires]
B::Hooks::EndOfScope [requires]
MooseX::Types [requires]
Devel::Declare [requires]
and of course Parse::Method::Signatures requires
PPI [requires]
MooseX::Types::Structured [requires]
aliased [requires]
MooseX::Traits [requires]
namespace::clean [requires]
MooseX::Types [requires]
and naturally PPI needs
Test::Object [requires]
Test::ClassAPI [requires]
Test::SubCalls [requires]
and Test::SubCalls wants to have
Hook::LexWrap [requires]
Maybe I'll see where the error is sometime soon. Oh, here we go again, MooseX::Types::Structured needs
Sub::Exporter [requires]
Devel::PartialDump [requires]
which I'm quite happy to install, yes, now namespace::clean would like
B::Hooks::EndOfScope [requires]
and why shouldn't it since MooseX::Method::Signatures itself did, but it'll need
Variable::Magic [requires]
which I thought I had installed already, but that must've been another machine. So now we're installing MooseX::Meta::TypeConstraint::ForceCoercion which couldn't live without
namespace::autoclean [requires]
which needs a newer version of
Class::MOP [requires]
which warns me that
***
This version of Class::MOP conflicts with the version of
Moose (0.69) you have installed.
You will need to upgrade Moose after installing
this version of Class::MOP.
***
Yes, yes, fine fine. But, oh no, finally a test failure in the version 0.01 module MooseX::Meta::TypeConstraint::ForceCoercion. I'll try to get back to you after I analyze the Moose / Class::MOP stacktrace explosion, but in the meantime, yeah sure, put that in the core. Thanks. ^.^
It's much easier to add those features to the Perl parser than to shove it in sideways with Devel::Declare and other modules which hijack the compilation process. Several of those dependencies would go away.