digraph {
graph [overlap=false]
subgraph cluster_Class_MOP_Mixin_HasMethods {
	label="Class::MOP::Mixin::HasMethods";
	"Class::MOP::Mixin::HasMethods::_add_meta_method";
	"Class::MOP::Mixin::HasMethods::get_method";
}
subgraph cluster_Moose {
	label="Moose";
	"Moose::BEGIN@32";
}
subgraph cluster_parent {
	label="parent";
	"parent::import";
}
subgraph cluster_Moose_Meta_Role_Attribute {
	label="Moose::Meta::Role::Attribute";
	"Moose::Meta::Role::Attribute::BEGIN@5";
	"Moose::Meta::Role::Attribute::BEGIN@4";
	"Moose::Meta::Role::Attribute::BEGIN@7";
	"Moose::Meta::Role::Attribute::BEGIN@10";
	"Moose::Meta::Role::Attribute::BEGIN@12";
	"Moose::Meta::Role::Attribute::BEGIN@8";
	"Moose::Meta::Role::Attribute::attach_to_role";
}
subgraph cluster_metaclass {
	label="metaclass";
	"metaclass::import";
}
subgraph cluster_UNIVERSAL {
	label="UNIVERSAL";
	"UNIVERSAL::isa";
}
subgraph cluster_Exporter {
	label="Exporter";
	"Exporter::import";
}
subgraph cluster_Moose_Meta_Role_Method_Required {
	label="Moose::Meta::Role::Method::Required";
	"Moose::Meta::Role::Method::Required::BEGIN@11";
	"Moose::Meta::Role::Method::Required::BEGIN@4";
	"Moose::Meta::Role::Method::Required::BEGIN@5";
	"Moose::Meta::Role::Method::Required::meta";
	"Moose::Meta::Role::Method::Required::BEGIN@6";
	"Moose::Meta::Role::Method::Required::BEGIN@8";
}
subgraph cluster_Class_MOP_Mixin_HasAttributes {
	label="Class::MOP::Mixin::HasAttributes";
	"Class::MOP::Mixin::HasAttributes::add_attribute";
}
subgraph cluster_warnings {
	label="warnings";
	"warnings::import";
}
subgraph cluster_Moose_Meta_Role {
	label="Moose::Meta::Role";
	"Moose::Meta::Role::BEGIN@13";
	"Moose::Meta::Role::_new";
	"Moose::Meta::Role::get_after_method_modifiers_map";
	"Moose::Meta::Role::__ANON__[Moose/Meta/Role.pm:351]";
	"Moose::Meta::Role::initialize";
	"Moose::Meta::Role::BEGIN@16";
	"Moose::Meta::Role::__ANON__[Moose/Meta/Role.pm:305]";
	"Moose::Meta::Role::get_method_modifier_list";
	"Moose::Meta::Role::get_override_method_modifiers_map";
	"Moose::Meta::Role::__ANON__[Moose/Meta/Role.pm:398]";
	"Moose::Meta::Role::BEGIN@10";
	"Moose::Meta::Role::_meta_method_class";
	"Moose::Meta::Role::BEGIN@5";
	"Moose::Meta::Role::BEGIN@11";
	"Moose::Meta::Role::BEGIN@17";
	"Moose::Meta::Role::BEGIN@4";
	"Moose::Meta::Role::add_attribute";
	"Moose::Meta::Role::BEGIN@12";
	"Moose::Meta::Role::application_to_class_class";
	"Moose::Meta::Role::CORE:match";
	"Moose::Meta::Role::BEGIN@8";
	"Moose::Meta::Role::apply";
	"Moose::Meta::Role::BEGIN@19";
	"Moose::Meta::Role::get_before_method_modifiers_map";
	"Moose::Meta::Role::BEGIN@6";
	"Moose::Meta::Role::BEGIN@15";
	"Moose::Meta::Role::get_around_method_modifiers_map";
	"Moose::Meta::Role::find_method_by_name";
	"Moose::Meta::Role::__ANON__[Moose/Meta/Role.pm:84]";
	"Moose::Meta::Role::BEGIN@14";
	"Moose::Meta::Role::_attach_attribute";
}
subgraph cluster_Scalar_Util {
	label="Scalar::Util";
	"Scalar::Util::blessed";
}
subgraph cluster_Class_MOP_Mixin {
	label="Class::MOP::Mixin";
	"Class::MOP::Mixin::meta";
}
subgraph cluster_Sub_Exporter {
	label="Sub::Exporter";
	"Sub::Exporter::__ANON__[Sub/Exporter.pm:337]";
}
subgraph cluster_strict {
	label="strict";
	"strict::import";
}
subgraph cluster_Moose_Util {
	label="Moose::Util";
	"Moose::Util::_apply_all_roles";
	"Moose::Util::_load_user_class";
}
subgraph cluster_Class_MOP {
	label="Class::MOP";
	"Class::MOP::_definition_context";
	"Class::MOP::get_metaclass_by_name";
}
subgraph cluster_Moose_Meta_Role_Method {
	label="Moose::Meta::Role::Method";
	"Moose::Meta::Role::Method::BEGIN@7";
	"Moose::Meta::Role::Method::BEGIN@4";
	"Moose::Meta::Role::Method::BEGIN@5";
}
subgraph cluster_Moose_Meta_Role_Method_Conflicting {
	label="Moose::Meta::Role::Method::Conflicting";
	"Moose::Meta::Role::Method::Conflicting::BEGIN@9";
	"Moose::Meta::Role::Method::Conflicting::BEGIN@7";
	"Moose::Meta::Role::Method::Conflicting::BEGIN@5";
	"Moose::Meta::Role::Method::Conflicting::BEGIN@4";
}
subgraph cluster_Moose_Role {
	label="Moose::Role";
	"Moose::Role::has";
	"Moose::Role::init_meta";
}
subgraph cluster_Class_MOP_Package {
	label="Class::MOP::Package";
	"Class::MOP::Package::initialize";
}
subgraph cluster_Moose_Meta_Role_Application {
	label="Moose::Meta::Role::Application";
	"Moose::Meta::Role::Application::new";
}
subgraph cluster_Moose_Meta_Role_Application_ToClass {
	label="Moose::Meta::Role::Application::ToClass";
	"Moose::Meta::Role::Application::ToClass::apply_override_method_modifiers";
	"Moose::Meta::Role::Application::ToClass::apply";
	"Moose::Meta::Role::Application::ToClass::apply_method_modifiers";
}
"Moose::Meta::Role::BEGIN@11" -> "Moose::Meta::Role::Attribute::BEGIN@12";
"Moose::BEGIN@32" -> "Moose::Meta::Role::BEGIN@8";
"Moose::Meta::Role::BEGIN@8" -> "Exporter::import";
"Moose::Meta::Role::BEGIN@14" -> "Moose::Meta::Role::Method::Conflicting::BEGIN@7";
"Moose::Meta::Role::BEGIN@13" -> "Moose::Meta::Role::Method::Required::BEGIN@5";
"Moose::Meta::Role::add_attribute" -> "Scalar::Util::blessed";
"Moose::Meta::Role::apply" -> "Scalar::Util::blessed";
"Moose::Meta::Role::_new" -> "Moose::Meta::Role::__ANON__[Moose/Meta/Role.pm:305]";
"Moose::Meta::Role::BEGIN@6" -> "metaclass::import";
"Moose::BEGIN@32" -> "Moose::Meta::Role::BEGIN@11";
"Moose::Meta::Role::BEGIN@12" -> "Moose::Meta::Role::Method::BEGIN@5";
"Moose::Meta::Role::apply" -> "Moose::Meta::Role::application_to_class_class";
"Moose::BEGIN@32" -> "Moose::Meta::Role::BEGIN@15";
"Moose::BEGIN@32" -> "Moose::Meta::Role::BEGIN@16";
"Moose::Meta::Role::BEGIN@11" -> "Moose::Meta::Role::Attribute::BEGIN@7";
"Moose::Meta::Role::get_method_modifier_list" -> "Moose::Meta::Role::get_override_method_modifiers_map";
"Moose::BEGIN@32" -> "Moose::Meta::Role::BEGIN@12";
"Moose::Meta::Role::apply" -> "Moose::Util::_load_user_class";
"Moose::Meta::Role::BEGIN@5" -> "warnings::import";
"Moose::Meta::Role::_new" -> "Moose::Meta::Role::__ANON__[Moose/Meta/Role.pm:84]";
"Moose::Meta::Role::_attach_attribute" -> "Moose::Meta::Role::Attribute::attach_to_role";
"Moose::Meta::Role::BEGIN@11" -> "Moose::Meta::Role::Attribute::BEGIN@4";
"Moose::Meta::Role::Application::ToClass::apply_override_method_modifiers" -> "Moose::Meta::Role::get_method_modifier_list";
"Moose::Meta::Role::Application::ToClass::apply_method_modifiers" -> "Moose::Meta::Role::get_method_modifier_list";
"Moose::Meta::Role::_new" -> "Moose::Meta::Role::__ANON__[Moose/Meta/Role.pm:398]";
"Moose::BEGIN@32" -> "Moose::Meta::Role::BEGIN@5";
"Moose::Role::has" -> "Moose::Meta::Role::add_attribute";
"Moose::BEGIN@32" -> "Moose::Meta::Role::BEGIN@19";
"Class::MOP::Mixin::HasMethods::_add_meta_method" -> "Moose::Meta::Role::find_method_by_name";
"Moose::BEGIN@32" -> "Moose::Meta::Role::BEGIN@13";
"Moose::Meta::Role::apply" -> "Moose::Meta::Role::Application::ToClass::apply";
"Moose::Meta::Role::BEGIN@13" -> "Class::MOP::_definition_context";
"Moose::Meta::Role::BEGIN@11" -> "Class::MOP::_definition_context";
"Moose::Meta::Role::BEGIN@14" -> "Class::MOP::_definition_context";
"Moose::Meta::Role::BEGIN@4" -> "strict::import";
"Moose::Meta::Role::BEGIN@13" -> "Moose::Meta::Role::Method::Required::BEGIN@6";
"Moose::Meta::Role::BEGIN@14" -> "Moose::Meta::Role::Method::Conflicting::BEGIN@5";
"Moose::Meta::Role::BEGIN@12" -> "Moose::Meta::Role::Method::BEGIN@7";
"Moose::Meta::Role::BEGIN@11" -> "Moose::Meta::Role::Attribute::BEGIN@10";
"Moose::Meta::Role::BEGIN@19" -> "parent::import";
"Moose::Meta::Role::BEGIN@13" -> "Moose::Meta::Role::Method::Required::BEGIN@8";
"Moose::Meta::Role::add_attribute" -> "Moose::Meta::Role::CORE:match";
"Moose::Meta::Role::find_method_by_name" -> "Class::MOP::Mixin::HasMethods::get_method";
"Moose::Meta::Role::BEGIN@13" -> "Moose::Meta::Role::Method::Required::meta";
"Moose::Meta::Role::BEGIN@14" -> "Moose::Meta::Role::Method::Required::meta";
"Moose::Meta::Role::_new" -> "Moose::Meta::Role::__ANON__[Moose/Meta/Role.pm:351]";
"Moose::Meta::Role::BEGIN@14" -> "Moose::Meta::Role::Method::Conflicting::BEGIN@4";
"Moose::Role::init_meta" -> "Moose::Meta::Role::initialize";
"Moose::Meta::Role::BEGIN@13" -> "Moose::Meta::Role::Method::Required::BEGIN@4";
"Moose::Meta::Role::initialize" -> "Class::MOP::Package::initialize";
"Moose::Meta::Role::BEGIN@14" -> "Moose::Meta::Role::Method::Conflicting::BEGIN@9";
"Moose::Meta::Role::BEGIN@11" -> "Moose::Meta::Role::Attribute::BEGIN@8";
"Moose::BEGIN@32" -> "Moose::Meta::Role::BEGIN@6";
"Moose::Meta::Role::BEGIN@13" -> "Class::MOP::Mixin::HasAttributes::add_attribute";
"Moose::Meta::Role::BEGIN@11" -> "Class::MOP::Mixin::HasAttributes::add_attribute";
"Moose::Meta::Role::add_attribute" -> "Class::MOP::Mixin::HasAttributes::add_attribute";
"Moose::Meta::Role::BEGIN@14" -> "Class::MOP::Mixin::HasAttributes::add_attribute";
"Class::MOP::Mixin::HasAttributes::add_attribute" -> "Moose::Meta::Role::_attach_attribute";
"Moose::Meta::Role::apply" -> "Moose::Meta::Role::Application::new";
"Moose::BEGIN@32" -> "Moose::Meta::Role::BEGIN@14";
"Moose::Meta::Role::BEGIN@11" -> "Class::MOP::Mixin::meta";
"Moose::Meta::Role::apply" -> "UNIVERSAL::isa";
"Class::MOP::Mixin::HasMethods::_add_meta_method" -> "Moose::Meta::Role::_meta_method_class";
"Moose::BEGIN@32" -> "Moose::Meta::Role::BEGIN@10";
"Moose::BEGIN@32" -> "Moose::Meta::Role::BEGIN@17";
"Moose::Meta::Role::get_method_modifier_list" -> "Moose::Meta::Role::get_before_method_modifiers_map";
"Moose::Meta::Role::initialize" -> "Class::MOP::get_metaclass_by_name";
"Moose::BEGIN@32" -> "Moose::Meta::Role::BEGIN@4";
"Moose::Meta::Role::BEGIN@16" -> "Sub::Exporter::__ANON__[Sub/Exporter.pm:337]";
"Moose::Meta::Role::BEGIN@11" -> "Moose::Meta::Role::Attribute::BEGIN@5";
"Moose::Meta::Role::get_method_modifier_list" -> "Moose::Meta::Role::get_after_method_modifiers_map";
"Moose::Meta::Role::BEGIN@13" -> "Moose::Meta::Role::Method::Required::BEGIN@11";
"Moose::Meta::Role::BEGIN@12" -> "Moose::Meta::Role::Method::BEGIN@4";
"Moose::Util::_apply_all_roles" -> "Moose::Meta::Role::apply";
"Moose::Meta::Role::get_method_modifier_list" -> "Moose::Meta::Role::get_around_method_modifiers_map";
}
