digraph {
graph [overlap=false]
subgraph cluster_Class_MOP_Mixin_HasMethods {
	label="Class::MOP::Mixin::HasMethods";
	"Class::MOP::Mixin::HasMethods::_full_method_map";
	"Class::MOP::Mixin::HasMethods::BEGIN@12";
	"Class::MOP::Mixin::HasMethods::CORE:match";
	"Class::MOP::Mixin::HasMethods::_add_meta_method";
	"Class::MOP::Mixin::HasMethods::BEGIN@4";
	"Class::MOP::Mixin::HasMethods::update_package_cache_flag";
	"Class::MOP::Mixin::HasMethods::_get_maybe_raw_method";
	"Class::MOP::Mixin::HasMethods::remove_method";
	"Class::MOP::Mixin::HasMethods::_method_map";
	"Class::MOP::Mixin::HasMethods::wrap_method_body";
	"Class::MOP::Mixin::HasMethods::reset_package_cache_flag";
	"Class::MOP::Mixin::HasMethods::BEGIN@7";
	"Class::MOP::Mixin::HasMethods::BEGIN@5";
	"Class::MOP::Mixin::HasMethods::_get_local_methods";
	"Class::MOP::Mixin::HasMethods::get_method";
	"Class::MOP::Mixin::HasMethods::_meta_method_class";
	"Class::MOP::Mixin::HasMethods::has_method";
	"Class::MOP::Mixin::HasMethods::_code_is_mine";
	"Class::MOP::Mixin::HasMethods::BEGIN@9";
	"Class::MOP::Mixin::HasMethods::add_method";
	"Class::MOP::Mixin::HasMethods::method_metaclass";
	"Class::MOP::Mixin::HasMethods::BEGIN@10";
}
subgraph cluster_Moose {
	label="Moose";
	"Moose::BEGIN@43";
	"Moose::BEGIN@32";
	"Moose::init_meta";
}
subgraph cluster_mro {
	label="mro";
	"mro::get_pkg_gen";
}
subgraph cluster_Moose_Meta_Method_Meta {
	label="Moose::Meta::Method::Meta";
	"Moose::Meta::Method::Meta::wrap";
}
subgraph cluster_parent {
	label="parent";
	"parent::import";
}
subgraph cluster_metaclass {
	label="metaclass";
	"metaclass::import";
}
subgraph cluster_UNIVERSAL {
	label="UNIVERSAL";
	"UNIVERSAL::isa";
	"UNIVERSAL::can";
}
subgraph cluster_Moose_Meta_Class {
	label="Moose::Meta::Class";
	"Moose::Meta::Class::_meta_method_class";
}
subgraph cluster_Class_MOP_Method_Meta {
	label="Class::MOP::Method::Meta";
	"Class::MOP::Method::Meta::BEGIN@4";
	"Class::MOP::Method::Meta::BEGIN@12";
	"Class::MOP::Method::Meta::wrap";
	"Class::MOP::Method::Meta::BEGIN@8";
	"Class::MOP::Method::Meta::BEGIN@10";
	"Class::MOP::Method::Meta::BEGIN@7";
	"Class::MOP::Method::Meta::BEGIN@5";
}
subgraph cluster_Exporter {
	label="Exporter";
	"Exporter::import";
}
subgraph cluster_Class_MOP_Attribute {
	label="Class::MOP::Attribute";
	"Class::MOP::Attribute::install_accessors";
	"Class::MOP::Attribute::__ANON__[Class/MOP/Attribute.pm:478]";
}
subgraph cluster_Class_MOP_MiniTrait {
	label="Class::MOP::MiniTrait";
	"Class::MOP::MiniTrait::apply";
}
subgraph cluster_Moose_Meta_Attribute {
	label="Moose::Meta::Attribute";
	"Moose::Meta::Attribute::_process_accessors";
}
subgraph cluster_warnings {
	label="warnings";
	"warnings::import";
}
subgraph cluster_Moose_Exporter {
	label="Moose::Exporter";
	"Moose::Exporter::BEGIN@8";
}
subgraph cluster_Moose_Meta_Role {
	label="Moose::Meta::Role";
	"Moose::Meta::Role::method_metaclass";
	"Moose::Meta::Role::find_method_by_name";
	"Moose::Meta::Role::_meta_method_class";
}
subgraph cluster_Sub_Name {
	label="Sub::Name";
	"Sub::Name::subname";
}
subgraph cluster_Scalar_Util {
	label="Scalar::Util";
	"Scalar::Util::reftype";
	"Scalar::Util::blessed";
}
subgraph cluster_strict {
	label="strict";
	"strict::import";
}
subgraph cluster_Class_MOP_Class {
	label="Class::MOP::Class";
	"Class::MOP::Class::find_next_method_by_name";
	"Class::MOP::Class::find_all_methods_by_name";
	"Class::MOP::Class::_inline_constructor";
	"Class::MOP::Class::__ANON__[Class/MOP/Class.pm:1082]";
	"Class::MOP::Class::find_method_by_name";
	"Class::MOP::Class::create";
	"Class::MOP::Class::_inline_destructor";
	"Class::MOP::Class::get_all_methods";
}
subgraph cluster_Class_MOP {
	label="Class::MOP";
	"Class::MOP::BEGIN@16";
	"Class::MOP::get_code_info";
}
subgraph cluster_Class_MOP_Class_Immutable_Class_MOP_Class {
	label="Class::MOP::Class::Immutable::Class::MOP::Class";
	"Class::MOP::Class::Immutable::Class::MOP::Class::_method_map";
}
subgraph cluster_Moose_Role {
	label="Moose::Role";
	"Moose::Role::init_meta";
}
subgraph cluster_Class_MOP_Package {
	label="Class::MOP::Package";
	"Class::MOP::Package::add_package_symbol";
	"Class::MOP::Package::remove_package_symbol";
	"Class::MOP::Package::name";
	"Class::MOP::Package::list_all_package_symbols";
	"Class::MOP::Package::get_package_symbol";
}
subgraph cluster_Class_MOP_Method {
	label="Class::MOP::Method";
	"Class::MOP::Method::clone";
	"Class::MOP::Method::body";
	"Class::MOP::Method::detach_from_class";
	"Class::MOP::Method::attach_to_class";
	"Class::MOP::Method::wrap";
	"Class::MOP::Method::package_name";
}
subgraph cluster_Moose_Meta_Role_Application_ToClass {
	label="Moose::Meta::Role::Application::ToClass";
	"Moose::Meta::Role::Application::ToClass::apply_methods";
}
"Class::MOP::Mixin::HasMethods::add_method" -> "Class::MOP::Method::package_name";
"Class::MOP::Mixin::HasMethods::wrap_method_body" -> "Class::MOP::Method::wrap";
"Class::MOP::Mixin::HasMethods::BEGIN@9" -> "Exporter::import";
"Class::MOP::Mixin::HasMethods::BEGIN@10" -> "Exporter::import";
"Class::MOP::Mixin::HasMethods::BEGIN@7" -> "Class::MOP::Method::Meta::BEGIN@8";
"Class::MOP::BEGIN@16" -> "Class::MOP::Mixin::HasMethods::BEGIN@9";
"Class::MOP::Mixin::HasMethods::wrap_method_body" -> "Class::MOP::Mixin::HasMethods::method_metaclass";
"Class::MOP::Mixin::HasMethods::add_method" -> "Class::MOP::Mixin::HasMethods::update_package_cache_flag";
"Class::MOP::Mixin::HasMethods::remove_method" -> "Class::MOP::Mixin::HasMethods::update_package_cache_flag";
"Class::MOP::Mixin::HasMethods::get_method" -> "Scalar::Util::blessed";
"Class::MOP::Mixin::HasMethods::add_method" -> "Scalar::Util::blessed";
"Class::MOP::Mixin::HasMethods::remove_method" -> "Scalar::Util::blessed";
"Class::MOP::Mixin::HasMethods::BEGIN@7" -> "Class::MOP::Method::Meta::BEGIN@7";
"Class::MOP::Mixin::HasMethods::_full_method_map" -> "Class::MOP::Package::list_all_package_symbols";
"Class::MOP::Class::find_all_methods_by_name" -> "Class::MOP::Mixin::HasMethods::has_method";
"Class::MOP::Class::_inline_destructor" -> "Class::MOP::Mixin::HasMethods::has_method";
"Moose::Meta::Attribute::_process_accessors" -> "Class::MOP::Mixin::HasMethods::has_method";
"Class::MOP::Class::_inline_constructor" -> "Class::MOP::Mixin::HasMethods::has_method";
"Class::MOP::Mixin::HasMethods::_add_meta_method" -> "UNIVERSAL::can";
"Class::MOP::Mixin::HasMethods::_add_meta_method" -> "Moose::Meta::Method::Meta::wrap";
"Class::MOP::Mixin::HasMethods::BEGIN@7" -> "Class::MOP::Method::Meta::BEGIN@12";
"Class::MOP::Mixin::HasMethods::has_method" -> "Class::MOP::Mixin::HasMethods::_get_maybe_raw_method";
"Class::MOP::Mixin::HasMethods::get_method" -> "Class::MOP::Mixin::HasMethods::_get_maybe_raw_method";
"Class::MOP::Mixin::HasMethods::BEGIN@5" -> "warnings::import";
"Class::MOP::Mixin::HasMethods::_get_maybe_raw_method" -> "Class::MOP::Package::get_package_symbol";
"Class::MOP::Mixin::HasMethods::has_method" -> "Class::MOP::Mixin::HasMethods::_method_map";
"Class::MOP::Mixin::HasMethods::add_method" -> "Class::MOP::Mixin::HasMethods::_method_map";
"Class::MOP::Mixin::HasMethods::_full_method_map" -> "Class::MOP::Mixin::HasMethods::_method_map";
"Class::MOP::Mixin::HasMethods::_get_maybe_raw_method" -> "Class::MOP::Mixin::HasMethods::_method_map";
"Class::MOP::Mixin::HasMethods::remove_method" -> "Class::MOP::Mixin::HasMethods::_method_map";
"Class::MOP::Mixin::HasMethods::get_method" -> "Class::MOP::Mixin::HasMethods::_method_map";
"Class::MOP::Mixin::HasMethods::_add_meta_method" -> "Class::MOP::Mixin::HasMethods::_meta_method_class";
"Class::MOP::Mixin::HasMethods::_add_meta_method" -> "Moose::Meta::Role::find_method_by_name";
"Class::MOP::Mixin::HasMethods::_full_method_map" -> "Class::MOP::Package::name";
"Class::MOP::Mixin::HasMethods::_add_meta_method" -> "Class::MOP::Package::name";
"Class::MOP::Mixin::HasMethods::update_package_cache_flag" -> "Class::MOP::Package::name";
"Class::MOP::Mixin::HasMethods::wrap_method_body" -> "Class::MOP::Package::name";
"Class::MOP::Mixin::HasMethods::_code_is_mine" -> "Class::MOP::Package::name";
"Class::MOP::Mixin::HasMethods::add_method" -> "Class::MOP::Package::name";
"Class::MOP::Mixin::HasMethods::_full_method_map" -> "mro::get_pkg_gen";
"Class::MOP::Mixin::HasMethods::update_package_cache_flag" -> "mro::get_pkg_gen";
"Class::MOP::Mixin::HasMethods::add_method" -> "Class::MOP::Method::attach_to_class";
"Class::MOP::Mixin::HasMethods::_get_maybe_raw_method" -> "Class::MOP::Class::Immutable::Class::MOP::Class::_method_map";
"Class::MOP::Mixin::HasMethods::get_method" -> "Class::MOP::Class::Immutable::Class::MOP::Class::_method_map";
"Class::MOP::Mixin::HasMethods::BEGIN@4" -> "strict::import";
"Class::MOP::Mixin::HasMethods::_code_is_mine" -> "Class::MOP::get_code_info";
"Class::MOP::Mixin::HasMethods::add_method" -> "Class::MOP::get_code_info";
"Class::MOP::Mixin::HasMethods::add_method" -> "Class::MOP::Mixin::HasMethods::CORE:match";
"Moose::Meta::Role::Application::ToClass::apply_methods" -> "Class::MOP::Mixin::HasMethods::reset_package_cache_flag";
"Class::MOP::BEGIN@16" -> "Class::MOP::Mixin::HasMethods::BEGIN@7";
"Class::MOP::Mixin::HasMethods::BEGIN@12" -> "parent::import";
"Class::MOP::Mixin::HasMethods::BEGIN@7" -> "Class::MOP::Method::Meta::BEGIN@10";
"Moose::Meta::Role::Application::ToClass::apply_methods" -> "Class::MOP::Mixin::HasMethods::_get_local_methods";
"Class::MOP::Class::get_all_methods" -> "Class::MOP::Mixin::HasMethods::_get_local_methods";
"Class::MOP::Mixin::HasMethods::add_method" -> "Class::MOP::Method::clone";
"Class::MOP::Mixin::HasMethods::BEGIN@7" -> "Class::MOP::Method::Meta::BEGIN@4";
"Class::MOP::BEGIN@16" -> "Class::MOP::Mixin::HasMethods::BEGIN@12";
"Class::MOP::Mixin::HasMethods::remove_method" -> "Class::MOP::Package::remove_package_symbol";
"Class::MOP::Mixin::HasMethods::_full_method_map" -> "Class::MOP::Mixin::HasMethods::get_method";
"Moose::Meta::Role::Application::ToClass::apply_methods" -> "Class::MOP::Mixin::HasMethods::get_method";
"Moose::init_meta" -> "Class::MOP::Mixin::HasMethods::get_method";
"Class::MOP::Class::find_all_methods_by_name" -> "Class::MOP::Mixin::HasMethods::get_method";
"Class::MOP::Class::find_next_method_by_name" -> "Class::MOP::Mixin::HasMethods::get_method";
"Moose::Meta::Attribute::_process_accessors" -> "Class::MOP::Mixin::HasMethods::get_method";
"Moose::Meta::Role::find_method_by_name" -> "Class::MOP::Mixin::HasMethods::get_method";
"Class::MOP::Class::__ANON__[Class/MOP/Class.pm:1082]" -> "Class::MOP::Mixin::HasMethods::get_method";
"Class::MOP::Class::find_method_by_name" -> "Class::MOP::Mixin::HasMethods::get_method";
"Class::MOP::Attribute::__ANON__[Class/MOP/Attribute.pm:478]" -> "Class::MOP::Mixin::HasMethods::get_method";
"Moose::Role::init_meta" -> "Class::MOP::Mixin::HasMethods::get_method";
"Class::MOP::Mixin::HasMethods::_get_local_methods" -> "Class::MOP::Mixin::HasMethods::_full_method_map";
"Class::MOP::Mixin::HasMethods::add_method" -> "Sub::Name::subname";
"Class::MOP::Mixin::HasMethods::wrap_method_body" -> "Moose::Meta::Role::method_metaclass";
"Class::MOP::BEGIN@16" -> "Class::MOP::Mixin::HasMethods::BEGIN@4";
"Class::MOP::Mixin::HasMethods::BEGIN@7" -> "Class::MOP::Method::Meta::BEGIN@5";
"Class::MOP::Mixin::HasMethods::remove_method" -> "Class::MOP::Method::detach_from_class";
"Class::MOP::Mixin::HasMethods::_add_meta_method" -> "Moose::Meta::Class::_meta_method_class";
"Class::MOP::Mixin::HasMethods::_get_maybe_raw_method" -> "Class::MOP::Mixin::HasMethods::_code_is_mine";
"metaclass::import" -> "Class::MOP::Mixin::HasMethods::_add_meta_method";
"Class::MOP::Class::create" -> "Class::MOP::Mixin::HasMethods::_add_meta_method";
"Moose::Exporter::BEGIN@8" -> "Class::MOP::Mixin::HasMethods::_add_meta_method";
"Moose::init_meta" -> "Class::MOP::Mixin::HasMethods::_add_meta_method";
"Moose::Role::init_meta" -> "Class::MOP::Mixin::HasMethods::_add_meta_method";
"Class::MOP::Mixin::HasMethods::add_method" -> "Class::MOP::Package::add_package_symbol";
"Class::MOP::Mixin::HasMethods::_add_meta_method" -> "Class::MOP::Class::find_method_by_name";
"Class::MOP::Mixin::HasMethods::wrap_method_body" -> "Scalar::Util::reftype";
"Class::MOP::Mixin::HasMethods::_add_meta_method" -> "UNIVERSAL::isa";
"Class::MOP::Mixin::HasMethods::remove_method" -> "UNIVERSAL::isa";
"Class::MOP::Mixin::HasMethods::get_method" -> "UNIVERSAL::isa";
"Class::MOP::Mixin::HasMethods::add_method" -> "UNIVERSAL::isa";
"Class::MOP::Mixin::HasMethods::_add_meta_method" -> "Moose::Meta::Role::_meta_method_class";
"Moose::BEGIN@32" -> "Class::MOP::Mixin::HasMethods::add_method";
"Moose::BEGIN@43" -> "Class::MOP::Mixin::HasMethods::add_method";
"Moose::Meta::Role::Application::ToClass::apply_methods" -> "Class::MOP::Mixin::HasMethods::add_method";
"Moose::Exporter::BEGIN@8" -> "Class::MOP::Mixin::HasMethods::add_method";
"Class::MOP::Attribute::install_accessors" -> "Class::MOP::Mixin::HasMethods::add_method";
"Class::MOP::Mixin::HasMethods::_add_meta_method" -> "Class::MOP::Mixin::HasMethods::add_method";
"Class::MOP::Class::_inline_constructor" -> "Class::MOP::Mixin::HasMethods::add_method";
"Class::MOP::Class::__ANON__[Class/MOP/Class.pm:1082]" -> "Class::MOP::Mixin::HasMethods::add_method";
"Class::MOP::MiniTrait::apply" -> "Class::MOP::Mixin::HasMethods::add_method";
"Class::MOP::Class::_inline_destructor" -> "Class::MOP::Mixin::HasMethods::add_method";
"Class::MOP::Mixin::HasMethods::_add_meta_method" -> "Class::MOP::Method::Meta::wrap";
"Class::MOP::Attribute::__ANON__[Class/MOP/Attribute.pm:478]" -> "Class::MOP::Mixin::HasMethods::remove_method";
"Class::MOP::Mixin::HasMethods::get_method" -> "Class::MOP::Mixin::HasMethods::wrap_method_body";
"Class::MOP::BEGIN@16" -> "Class::MOP::Mixin::HasMethods::BEGIN@5";
"Class::MOP::BEGIN@16" -> "Class::MOP::Mixin::HasMethods::BEGIN@10";
"Class::MOP::Mixin::HasMethods::add_method" -> "Class::MOP::Method::body";
}
