package MooseX::StrictConstructor::Role::Object;
+# applied as base_class_roles => [ __PACKAGE__ ], for all Moose versions.
+# wraps the constructor for mutable classes.
+
use Moose::Role;
use namespace::autoclean;
package MooseX::StrictConstructor::Trait::Class;
+# applied as class_metaroles => { class => [ __PACKAGE__ ] }, for Moose 1.99x and later
+
use Moose::Role;
use namespace::autoclean;
package MooseX::StrictConstructor::Trait::Method::Constructor;
+# applied as class_metaroles => { constructor => [ __PACKAGE__ ] }, for older Moose
+
use Moose::Role;
use namespace::autoclean;