digraph {
graph [overlap=false]
subgraph cluster_Moose {
	label="Moose";
	"Moose::BEGIN@29";
	"Moose::BEGIN@30";
	"Moose::BEGIN@40";
	"Moose::BEGIN@39";
	"Moose::BEGIN@36";
	"Moose::BEGIN@37";
	"Moose::BEGIN@28";
	"Moose::BEGIN@38";
	"Moose::BEGIN@42";
}
subgraph cluster_Moose_Meta_Role_Attribute {
	label="Moose::Meta::Role::Attribute";
	"Moose::Meta::Role::Attribute::new";
}
subgraph cluster_UNIVERSAL {
	label="UNIVERSAL";
	"UNIVERSAL::isa";
	"UNIVERSAL::can";
}
subgraph cluster_Moose_Meta_Class {
	label="Moose::Meta::Class";
	"Moose::Meta::Class::add_attribute";
}
subgraph cluster_base {
	label="base";
	"base::import";
}
subgraph cluster_Exporter {
	label="Exporter";
	"Exporter::import";
}
subgraph cluster_Class_MOP_Attribute {
	label="Class::MOP::Attribute";
	"Class::MOP::Attribute::new";
}
subgraph cluster_Class_MOP_Mixin_HasAttributes {
	label="Class::MOP::Mixin::HasAttributes";
	"Class::MOP::Mixin::HasAttributes::BEGIN@12";
	"Class::MOP::Mixin::HasAttributes::BEGIN@13";
	"Class::MOP::Mixin::HasAttributes::get_attribute";
	"Class::MOP::Mixin::HasAttributes::get_attribute_list";
	"Class::MOP::Mixin::HasAttributes::_attribute_map";
	"Class::MOP::Mixin::HasAttributes::BEGIN@9";
	"Class::MOP::Mixin::HasAttributes::BEGIN@15";
	"Class::MOP::Mixin::HasAttributes::BEGIN@2";
	"Class::MOP::Mixin::HasAttributes::attribute_metaclass";
	"Class::MOP::Mixin::HasAttributes::BEGIN@10";
	"Class::MOP::Mixin::HasAttributes::add_attribute";
	"Class::MOP::Mixin::HasAttributes::has_attribute";
}
subgraph cluster_warnings {
	label="warnings";
	"warnings::import";
}
subgraph cluster_Moose_Exporter {
	label="Moose::Exporter";
	"Moose::Exporter::BEGIN@13";
}
subgraph cluster_Moose_Meta_Role {
	label="Moose::Meta::Role";
	"Moose::Meta::Role::BEGIN@22";
	"Moose::Meta::Role::BEGIN@21";
	"Moose::Meta::Role::BEGIN@19";
	"Moose::Meta::Role::add_attribute";
	"Moose::Meta::Role::_attach_attribute";
}
subgraph cluster_Moose_Util_TypeConstraints {
	label="Moose::Util::TypeConstraints";
	"Moose::Util::TypeConstraints::BEGIN@42";
	"Moose::Util::TypeConstraints::BEGIN@39";
	"Moose::Util::TypeConstraints::BEGIN@34";
	"Moose::Util::TypeConstraints::BEGIN@33";
	"Moose::Util::TypeConstraints::BEGIN@37";
	"Moose::Util::TypeConstraints::BEGIN@38";
	"Moose::Util::TypeConstraints::BEGIN@36";
}
subgraph cluster_Moose_Meta_TypeConstraint_Parameterized {
	label="Moose::Meta::TypeConstraint::Parameterized";
	"Moose::Meta::TypeConstraint::Parameterized::BEGIN@15";
}
subgraph cluster_Scalar_Util {
	label="Scalar::Util";
	"Scalar::Util::blessed";
}
subgraph cluster_strict {
	label="strict";
	"strict::import";
}
subgraph cluster_Class_MOP_Class {
	label="Class::MOP::Class";
	"Class::MOP::Class::find_attribute_by_name";
	"Class::MOP::Class::_post_add_attribute";
	"Class::MOP::Class::_attach_attribute";
	"Class::MOP::Class::_inline_accessors";
}
subgraph cluster_Class_MOP {
	label="Class::MOP";
	"Class::MOP::BEGIN@24";
}
subgraph cluster_Class_MOP_Mixin_AttributeCore {
	label="Class::MOP::Mixin::AttributeCore";
	"Class::MOP::Mixin::AttributeCore::_set_insertion_order";
	"Class::MOP::Mixin::AttributeCore::name";
}
subgraph cluster_Moose_Meta_TypeCoercion {
	label="Moose::Meta::TypeCoercion";
	"Moose::Meta::TypeCoercion::BEGIN@14";
}
subgraph cluster_Moose_Meta_Role_Application_ToClass {
	label="Moose::Meta::Role::Application::ToClass";
	"Moose::Meta::Role::Application::ToClass::apply_attributes";
}
"Class::MOP::Mixin::HasAttributes::add_attribute" -> "Class::MOP::Mixin::AttributeCore::_set_insertion_order";
"Class::MOP::Mixin::HasAttributes::BEGIN@13" -> "Exporter::import";
"Class::MOP::Mixin::HasAttributes::BEGIN@12" -> "Exporter::import";
"Class::MOP::Class::find_attribute_by_name" -> "Class::MOP::Mixin::HasAttributes::has_attribute";
"Class::MOP::Mixin::HasAttributes::add_attribute" -> "Class::MOP::Mixin::HasAttributes::has_attribute";
"Moose::Meta::Role::Application::ToClass::apply_attributes" -> "Class::MOP::Mixin::HasAttributes::has_attribute";
"Class::MOP::Mixin::HasAttributes::add_attribute" -> "Class::MOP::Class::_post_add_attribute";
"Moose::Meta::Role::Application::ToClass::apply_attributes" -> "Class::MOP::Mixin::HasAttributes::get_attribute_list";
"Class::MOP::Class::_inline_accessors" -> "Class::MOP::Mixin::HasAttributes::get_attribute_list";
"Class::MOP::Mixin::HasAttributes::add_attribute" -> "Scalar::Util::blessed";
"Class::MOP::BEGIN@24" -> "Class::MOP::Mixin::HasAttributes::BEGIN@2";
"Class::MOP::Mixin::HasAttributes::add_attribute" -> "Class::MOP::Class::_attach_attribute";
"Class::MOP::Mixin::HasAttributes::add_attribute" -> "UNIVERSAL::can";
"Class::MOP::Mixin::HasAttributes::BEGIN@15" -> "base::import";
"Class::MOP::Mixin::HasAttributes::BEGIN@10" -> "warnings::import";
"Class::MOP::BEGIN@24" -> "Class::MOP::Mixin::HasAttributes::BEGIN@10";
"Class::MOP::Mixin::HasAttributes::add_attribute" -> "Class::MOP::Mixin::HasAttributes::attribute_metaclass";
"Class::MOP::Mixin::HasAttributes::BEGIN@9" -> "strict::import";
"Class::MOP::Class::find_attribute_by_name" -> "Class::MOP::Mixin::HasAttributes::get_attribute";
"Moose::Meta::Role::Application::ToClass::apply_attributes" -> "Class::MOP::Mixin::HasAttributes::get_attribute";
"Class::MOP::Class::_inline_accessors" -> "Class::MOP::Mixin::HasAttributes::get_attribute";
"Class::MOP::Mixin::HasAttributes::add_attribute" -> "Moose::Meta::Role::Attribute::new";
"Class::MOP::BEGIN@24" -> "Class::MOP::Mixin::HasAttributes::BEGIN@13";
"Moose::Util::TypeConstraints::BEGIN@39" -> "Class::MOP::Mixin::HasAttributes::add_attribute";
"Moose::Util::TypeConstraints::BEGIN@38" -> "Class::MOP::Mixin::HasAttributes::add_attribute";
"Moose::Meta::Role::BEGIN@21" -> "Class::MOP::Mixin::HasAttributes::add_attribute";
"base::import" -> "Class::MOP::Mixin::HasAttributes::add_attribute";
"Moose::Util::TypeConstraints::BEGIN@42" -> "Class::MOP::Mixin::HasAttributes::add_attribute";
"Moose::BEGIN@29" -> "Class::MOP::Mixin::HasAttributes::add_attribute";
"Moose::Meta::TypeCoercion::BEGIN@14" -> "Class::MOP::Mixin::HasAttributes::add_attribute";
"Moose::Meta::TypeConstraint::Parameterized::BEGIN@15" -> "Class::MOP::Mixin::HasAttributes::add_attribute";
"Moose::Meta::Class::add_attribute" -> "Class::MOP::Mixin::HasAttributes::add_attribute";
"Moose::BEGIN@37" -> "Class::MOP::Mixin::HasAttributes::add_attribute";
"Moose::BEGIN@36" -> "Class::MOP::Mixin::HasAttributes::add_attribute";
"Moose::BEGIN@39" -> "Class::MOP::Mixin::HasAttributes::add_attribute";
"Moose::BEGIN@28" -> "Class::MOP::Mixin::HasAttributes::add_attribute";
"Moose::Meta::Role::add_attribute" -> "Class::MOP::Mixin::HasAttributes::add_attribute";
"Moose::BEGIN@42" -> "Class::MOP::Mixin::HasAttributes::add_attribute";
"Moose::Util::TypeConstraints::BEGIN@33" -> "Class::MOP::Mixin::HasAttributes::add_attribute";
"Moose::Util::TypeConstraints::BEGIN@36" -> "Class::MOP::Mixin::HasAttributes::add_attribute";
"Moose::Meta::Role::BEGIN@22" -> "Class::MOP::Mixin::HasAttributes::add_attribute";
"Moose::Meta::Role::BEGIN@19" -> "Class::MOP::Mixin::HasAttributes::add_attribute";
"Moose::BEGIN@38" -> "Class::MOP::Mixin::HasAttributes::add_attribute";
"Moose::Util::TypeConstraints::BEGIN@34" -> "Class::MOP::Mixin::HasAttributes::add_attribute";
"Moose::BEGIN@30" -> "Class::MOP::Mixin::HasAttributes::add_attribute";
"Moose::Util::TypeConstraints::BEGIN@37" -> "Class::MOP::Mixin::HasAttributes::add_attribute";
"Moose::BEGIN@40" -> "Class::MOP::Mixin::HasAttributes::add_attribute";
"Moose::Exporter::BEGIN@13" -> "Class::MOP::Mixin::HasAttributes::add_attribute";
"Class::MOP::Mixin::HasAttributes::add_attribute" -> "Moose::Meta::Role::_attach_attribute";
"Class::MOP::Mixin::HasAttributes::add_attribute" -> "UNIVERSAL::isa";
"Class::MOP::BEGIN@24" -> "Class::MOP::Mixin::HasAttributes::BEGIN@9";
"Class::MOP::Mixin::HasAttributes::get_attribute_list" -> "Class::MOP::Mixin::HasAttributes::_attribute_map";
"Class::MOP::Mixin::HasAttributes::get_attribute" -> "Class::MOP::Mixin::HasAttributes::_attribute_map";
"Class::MOP::Mixin::HasAttributes::add_attribute" -> "Class::MOP::Mixin::HasAttributes::_attribute_map";
"Class::MOP::Mixin::HasAttributes::has_attribute" -> "Class::MOP::Mixin::HasAttributes::_attribute_map";
"Class::MOP::Mixin::HasAttributes::add_attribute" -> "Class::MOP::Attribute::new";
"Class::MOP::Mixin::HasAttributes::add_attribute" -> "Class::MOP::Mixin::AttributeCore::name";
"Class::MOP::BEGIN@24" -> "Class::MOP::Mixin::HasAttributes::BEGIN@12";
"Class::MOP::BEGIN@24" -> "Class::MOP::Mixin::HasAttributes::BEGIN@15";
}
