digraph {
graph [overlap=false]
subgraph cluster_Moose_Meta_Role_Application_ToRole {
	label="Moose::Meta::Role::Application::ToRole";
	"Moose::Meta::Role::Application::ToRole::apply_methods";
}
subgraph cluster_warnings {
	label="warnings";
	"warnings::import";
}
subgraph cluster_Class_MOP_Mixin_HasMethods {
	label="Class::MOP::Mixin::HasMethods";
	"Class::MOP::Mixin::HasMethods::add_method";
	"Class::MOP::Mixin::HasMethods::wrap_method_body";
	"Class::MOP::Mixin::HasMethods::get_method";
}
subgraph cluster_Class_MOP_Method_Inlined {
	label="Class::MOP::Method::Inlined";
	"Class::MOP::Method::Inlined::can_be_inlined";
}
subgraph cluster_Moose_Meta_Method_Constructor {
	label="Moose::Meta::Method::Constructor";
	"Moose::Meta::Method::Constructor::_initialize_body";
	"Moose::Meta::Method::Constructor::_generate_BUILDALL";
	"Moose::Meta::Method::Constructor::_generate_BUILDARGS";
}
subgraph cluster_Scalar_Util {
	label="Scalar::Util";
	"Scalar::Util::reftype";
	"Scalar::Util::blessed";
	"Scalar::Util::weaken";
}
subgraph cluster_Class_MOP_Method_Wrapped {
	label="Class::MOP::Method::Wrapped";
	"Class::MOP::Method::Wrapped::add_around_modifier";
	"Class::MOP::Method::Wrapped::wrap";
	"Class::MOP::Method::Wrapped::_new";
}
subgraph cluster_Moose_Meta_Class {
	label="Moose::Meta::Class";
	"Moose::Meta::Class::new_object";
}
subgraph cluster_Moose_Meta_Method_Destructor {
	label="Moose::Meta::Method::Destructor";
	"Moose::Meta::Method::Destructor::_initialize_body";
}
subgraph cluster_Class_MOP_Class___ANON___SERIAL_1 {
	label="Class::MOP::Class::__ANON__::SERIAL::1";
	"Class::MOP::Class::__ANON__::SERIAL::1::set_class_attribute_value";
	"Class::MOP::Class::__ANON__::SERIAL::1::_add_class_attribute";
	"Class::MOP::Class::__ANON__::SERIAL::1::_class_attribute_values";
	"Class::MOP::Class::__ANON__::SERIAL::1::has_class_attribute";
	"Class::MOP::Class::__ANON__::SERIAL::1::get_class_attribute_map";
}
subgraph cluster_Class_MOP_Method_Accessor {
	label="Class::MOP::Method::Accessor";
	"Class::MOP::Method::Accessor::_new";
	"Class::MOP::Method::Accessor::new";
}
subgraph cluster_Foo_Domain {
	label="Foo::Domain";
	"Foo::Domain::size";
}
subgraph cluster_base {
	label="base";
	"base::import";
}
subgraph cluster_strict {
	label="strict";
	"strict::import";
}
subgraph cluster_Class_MOP_Class {
	label="Class::MOP::Class";
	"Class::MOP::Class::_immutable_metaclass";
	"Class::MOP::Class::initialize";
	"Class::MOP::Class::new_object";
}
subgraph cluster_Class_MOP_Method_Constructor {
	label="Class::MOP::Method::Constructor";
	"Class::MOP::Method::Constructor::_attributes";
	"Class::MOP::Method::Constructor::_meta_instance";
}
subgraph cluster_Moose_Meta_Role_Method {
	label="Moose::Meta::Role::Method";
	"Moose::Meta::Role::Method::_new";
}
subgraph cluster_Moose_Meta_Method {
	label="Moose::Meta::Method";
	"Moose::Meta::Method::_new";
}
subgraph cluster_MooseX_AttributeHelpers_MethodProvider_ImmutableHash {
	label="MooseX::AttributeHelpers::MethodProvider::ImmutableHash";
	"MooseX::AttributeHelpers::MethodProvider::ImmutableHash::keys";
	"MooseX::AttributeHelpers::MethodProvider::ImmutableHash::exists";
	"MooseX::AttributeHelpers::MethodProvider::ImmutableHash::get";
}
subgraph cluster_Exporter {
	label="Exporter";
	"Exporter::import";
}
subgraph cluster_Class_MOP_Attribute {
	label="Class::MOP::Attribute";
	"Class::MOP::Attribute::_process_accessors";
	"Class::MOP::Attribute::get_write_method_ref";
}
subgraph cluster_overload {
	label="overload";
	"overload::import";
}
subgraph cluster_Class_MOP_Class_ {
	label="Class::MOP::Class:";
	"Class::MOP::Class:::after";
}
subgraph cluster_MooseX_AttributeHelpers_MethodProvider_Hash {
	label="MooseX::AttributeHelpers::MethodProvider::Hash";
	"MooseX::AttributeHelpers::MethodProvider::Hash::set";
	"MooseX::AttributeHelpers::MethodProvider::Hash::delete";
}
subgraph cluster_Class_MOP_Method {
	label="Class::MOP::Method";
	"Class::MOP::Method::BEGIN@5";
	"Class::MOP::Method::clone";
	"Class::MOP::Method::body";
	"Class::MOP::Method::_new";
	"Class::MOP::Method::BEGIN@7";
	"Class::MOP::Method::attach_to_class";
	"Class::MOP::Method::wrap";
	"Class::MOP::Method::package_name";
	"Class::MOP::Method::BEGIN@14";
	"Class::MOP::Method::BEGIN@4";
	"Class::MOP::Method::BEGIN@19";
	"Class::MOP::Method::BEGIN@8";
	"Class::MOP::Method::name";
	"Class::MOP::Method::__ANON__[Class/MOP/Method.pm:19]";
	"Class::MOP::Method::associated_metaclass";
	"Class::MOP::Method::_set_original_method";
}
"Moose::Meta::Method::Constructor::_generate_BUILDALL" -> "Class::MOP::Method::associated_metaclass";
"Moose::Meta::Method::Constructor::_initialize_body" -> "Class::MOP::Method::associated_metaclass";
"Class::MOP::Method::Constructor::_attributes" -> "Class::MOP::Method::associated_metaclass";
"Moose::Meta::Method::Destructor::_initialize_body" -> "Class::MOP::Method::associated_metaclass";
"Class::MOP::Method::Constructor::_meta_instance" -> "Class::MOP::Method::associated_metaclass";
"Class::MOP::Method::Inlined::can_be_inlined" -> "Class::MOP::Method::associated_metaclass";
"Moose::Meta::Method::Constructor::_generate_BUILDARGS" -> "Class::MOP::Method::associated_metaclass";
"Class::MOP::Method::wrap" -> "Class::MOP::Method::Wrapped::_new";
"Class::MOP::Mixin::HasMethods::add_method" -> "Class::MOP::Method::package_name";
"Class::MOP::Attribute::_process_accessors" -> "Class::MOP::Method::wrap";
"Class::MOP::Class:::after" -> "Class::MOP::Method::wrap";
"Class::MOP::Attribute::get_write_method_ref" -> "Class::MOP::Method::wrap";
"Class::MOP::Method::Wrapped::wrap" -> "Class::MOP::Method::wrap";
"Class::MOP::Mixin::HasMethods::wrap_method_body" -> "Class::MOP::Method::wrap";
"base::import" -> "Class::MOP::Method::BEGIN@14";
"Class::MOP::Method::BEGIN@8" -> "Exporter::import";
"Class::MOP::Method::BEGIN@7" -> "Exporter::import";
"base::import" -> "Class::MOP::Method::BEGIN@8";
"Class::MOP::Method::wrap" -> "Class::MOP::Method::Accessor::_new";
"base::import" -> "Class::MOP::Method::BEGIN@19";
"Class::MOP::Method::wrap" -> "Moose::Meta::Method::_new";
"Class::MOP::Method::wrap" -> "Scalar::Util::blessed";
"Class::MOP::Method::wrap" -> "Moose::Meta::Role::Method::_new";
"Class::MOP::Method::attach_to_class" -> "Scalar::Util::weaken";
"Class::MOP::Method::wrap" -> "Scalar::Util::weaken";
"Class::MOP::Class::_immutable_metaclass" -> "Class::MOP::Method::name";
"Class::MOP::Method::Inlined::can_be_inlined" -> "Class::MOP::Method::name";
"Class::MOP::Method::wrap" -> "Scalar::Util::reftype";
"Class::MOP::Method::wrap" -> "Class::MOP::Method::_new";
"Class::MOP::Method::Accessor::new" -> "Class::MOP::Method::_new";
"Class::MOP::Method::BEGIN@14" -> "base::import";
"Class::MOP::Method::BEGIN@19" -> "overload::import";
"base::import" -> "Class::MOP::Method::BEGIN@5";
"Class::MOP::Method::BEGIN@5" -> "warnings::import";
"MooseX::AttributeHelpers::MethodProvider::ImmutableHash::exists" -> "Class::MOP::Method::__ANON__[Class/MOP/Method.pm:19]";
"MooseX::AttributeHelpers::MethodProvider::Hash::set" -> "Class::MOP::Method::__ANON__[Class/MOP/Method.pm:19]";
"MooseX::AttributeHelpers::MethodProvider::ImmutableHash::keys" -> "Class::MOP::Method::__ANON__[Class/MOP/Method.pm:19]";
"Class::MOP::Class:::after" -> "Class::MOP::Method::__ANON__[Class/MOP/Method.pm:19]";
"Moose::Meta::Class::new_object" -> "Class::MOP::Method::__ANON__[Class/MOP/Method.pm:19]";
"Class::MOP::Class::__ANON__::SERIAL::1::_add_class_attribute" -> "Class::MOP::Method::__ANON__[Class/MOP/Method.pm:19]";
"Class::MOP::Class::__ANON__::SERIAL::1::set_class_attribute_value" -> "Class::MOP::Method::__ANON__[Class/MOP/Method.pm:19]";
"MooseX::AttributeHelpers::MethodProvider::Hash::delete" -> "Class::MOP::Method::__ANON__[Class/MOP/Method.pm:19]";
"Class::MOP::Class::__ANON__::SERIAL::1::get_class_attribute_map" -> "Class::MOP::Method::__ANON__[Class/MOP/Method.pm:19]";
"Class::MOP::Class::__ANON__::SERIAL::1::has_class_attribute" -> "Class::MOP::Method::__ANON__[Class/MOP/Method.pm:19]";
"Class::MOP::Class::__ANON__::SERIAL::1::_class_attribute_values" -> "Class::MOP::Method::__ANON__[Class/MOP/Method.pm:19]";
"MooseX::AttributeHelpers::MethodProvider::ImmutableHash::get" -> "Class::MOP::Method::__ANON__[Class/MOP/Method.pm:19]";
"Foo::Domain::size" -> "Class::MOP::Method::__ANON__[Class/MOP/Method.pm:19]";
"Class::MOP::Method::_new" -> "Class::MOP::Class::new_object";
"base::import" -> "Class::MOP::Method::BEGIN@7";
"base::import" -> "Class::MOP::Method::BEGIN@4";
"Class::MOP::Method::clone" -> "Class::MOP::Method::_set_original_method";
"Class::MOP::Method::_new" -> "Class::MOP::Class::initialize";
"Class::MOP::Method::Wrapped::add_around_modifier" -> "Class::MOP::Method::body";
"Moose::Meta::Role::Application::ToRole::apply_methods" -> "Class::MOP::Method::body";
"Class::MOP::Method::Wrapped::wrap" -> "Class::MOP::Method::body";
"Class::MOP::Mixin::HasMethods::get_method" -> "Class::MOP::Method::body";
"Moose::Meta::Method::Constructor::_generate_BUILDARGS" -> "Class::MOP::Method::body";
"Class::MOP::Method::__ANON__[Class/MOP/Method.pm:19]" -> "Class::MOP::Method::body";
"Class::MOP::Mixin::HasMethods::add_method" -> "Class::MOP::Method::body";
"Class::MOP::Class::_immutable_metaclass" -> "Class::MOP::Method::body";
"Class::MOP::Mixin::HasMethods::add_method" -> "Class::MOP::Method::attach_to_class";
"Class::MOP::Method::BEGIN@4" -> "strict::import";
}
