--- /dev/null
+digraph {
+graph [overlap=false]
+subgraph cluster_KiokuDB_Linker {
+ label="KiokuDB::Linker";
+ "KiokuDB::Linker::get_or_load_object";
+}
+subgraph cluster_KiokuDB_LiveObjects_Guard {
+ label="KiokuDB::LiveObjects::Guard";
+ "KiokuDB::LiveObjects::Guard::key";
+ "KiokuDB::LiveObjects::Guard::BEGIN@3";
+ "KiokuDB::LiveObjects::Guard::BEGIN@8";
+ "KiokuDB::LiveObjects::Guard::BEGIN@4";
+ "KiokuDB::LiveObjects::Guard::new";
+ "KiokuDB::LiveObjects::Guard::BEGIN@6";
+}
+subgraph cluster_Scalar_Util {
+ label="Scalar::Util";
+ "Scalar::Util::refaddr";
+ "Scalar::Util::blessed";
+ "Scalar::Util::weaken";
+}
+subgraph cluster_KiokuDB_Collapser_Buffer {
+ label="KiokuDB::Collapser::Buffer";
+ "KiokuDB::Collapser::Buffer::update_entries";
+}
+subgraph cluster_KiokuDB_LiveObjects {
+ label="KiokuDB::LiveObjects";
+ "KiokuDB::LiveObjects::BEGIN@14";
+ "KiokuDB::LiveObjects::BEGIN@9";
+ "KiokuDB::LiveObjects::id_to_object";
+ "KiokuDB::LiveObjects::_known_scopes";
+ "KiokuDB::LiveObjects::BEGIN@16";
+ "KiokuDB::LiveObjects::_ids";
+ "KiokuDB::LiveObjects::__ANON__[KiokuDB/LiveObjects.pm:166]";
+ "KiokuDB::LiveObjects::_set_current_scope";
+ "KiokuDB::LiveObjects::remove_scope";
+ "KiokuDB::LiveObjects::__ANON__[KiokuDB/LiveObjects.pm:48]";
+ "KiokuDB::LiveObjects::BEGIN@4";
+ "KiokuDB::LiveObjects::cache";
+ "KiokuDB::LiveObjects::_object_entries";
+ "KiokuDB::LiveObjects::BEGIN@1";
+ "KiokuDB::LiveObjects::_vivify_id_info";
+ "KiokuDB::LiveObjects::_entries";
+ "KiokuDB::LiveObjects::__ANON__[KiokuDB/LiveObjects.pm:56]";
+ "KiokuDB::LiveObjects::keep_entries";
+ "KiokuDB::LiveObjects::_id_info";
+ "KiokuDB::LiveObjects::register_entry";
+ "KiokuDB::LiveObjects::detach_scope";
+ "KiokuDB::LiveObjects::id_to_entry";
+ "KiokuDB::LiveObjects::new_scope";
+ "KiokuDB::LiveObjects::BEGIN@67";
+ "KiokuDB::LiveObjects::object_to_entry";
+ "KiokuDB::LiveObjects::BEGIN@11";
+ "KiokuDB::LiveObjects::id_in_storage";
+ "KiokuDB::LiveObjects::BEGIN@10";
+ "KiokuDB::LiveObjects::BEGIN@13";
+ "KiokuDB::LiveObjects::new";
+ "KiokuDB::LiveObjects::register_object";
+ "KiokuDB::LiveObjects::BEGIN@7";
+ "KiokuDB::LiveObjects::txn_scope";
+ "KiokuDB::LiveObjects::BEGIN@8";
+ "KiokuDB::LiveObjects::update_object_entry";
+ "KiokuDB::LiveObjects::current_scope";
+ "KiokuDB::LiveObjects::BEGIN@18";
+ "KiokuDB::LiveObjects::_objects";
+ "KiokuDB::LiveObjects::BEGIN@6";
+ "KiokuDB::LiveObjects::object_to_id";
+}
+subgraph cluster_UNIVERSAL {
+ label="UNIVERSAL";
+ "UNIVERSAL::import";
+ "UNIVERSAL::isa";
+}
+subgraph cluster_namespace_clean {
+ label="namespace::clean";
+ "namespace::clean::import";
+}
+subgraph cluster_Set_Object {
+ label="Set::Object";
+ "Set::Object::insert";
+ "Set::Object::remove";
+ "Set::Object::size";
+}
+subgraph cluster_warnings {
+ label="warnings";
+ "warnings::unimport";
+}
+subgraph cluster_Class_MOP_Class {
+ label="Class::MOP::Class";
+ "Class::MOP::Class::make_immutable";
+}
+subgraph cluster_Moose {
+ label="Moose";
+ "Moose::has";
+}
+subgraph cluster_KiokuDB_LiveObjects_Scope {
+ label="KiokuDB::LiveObjects::Scope";
+ "KiokuDB::LiveObjects::Scope::remove";
+ "KiokuDB::LiveObjects::Scope::meta";
+ "KiokuDB::LiveObjects::Scope::push";
+ "KiokuDB::LiveObjects::Scope::new";
+ "KiokuDB::LiveObjects::Scope::parent";
+ "KiokuDB::LiveObjects::Scope::clear";
+ "KiokuDB::LiveObjects::Scope::BEGIN@6";
+ "KiokuDB::LiveObjects::Scope::BEGIN@4";
+}
+subgraph cluster_Exporter {
+ label="Exporter";
+ "Exporter::import";
+}
+subgraph cluster_KiokuDB_Collapser {
+ label="KiokuDB::Collapser";
+ "KiokuDB::Collapser::collapse_first_class";
+ "KiokuDB::Collapser::make_entry";
+ "KiokuDB::Collapser::visit_seen";
+ "KiokuDB::Collapser::_ref_id";
+}
+subgraph cluster_Hash_Util_FieldHash {
+ label="Hash::Util::FieldHash";
+ "Hash::Util::FieldHash::fieldhash";
+}
+subgraph cluster_KiokuDB_Entry {
+ label="KiokuDB::Entry";
+ "KiokuDB::Entry::root";
+ "KiokuDB::Entry::data";
+}
+subgraph cluster_Hash_Util_FieldHash_Compat {
+ label="Hash::Util::FieldHash::Compat";
+ "Hash::Util::FieldHash::Compat::import";
+}
+subgraph cluster_KiokuDB_LiveObjects_TXNScope {
+ label="KiokuDB::LiveObjects::TXNScope";
+ "KiokuDB::LiveObjects::TXNScope::BEGIN@8";
+ "KiokuDB::LiveObjects::TXNScope::meta";
+ "KiokuDB::LiveObjects::TXNScope::BEGIN@4";
+ "KiokuDB::LiveObjects::TXNScope::BEGIN@6";
+}
+subgraph cluster_KiokuDB {
+ label="KiokuDB";
+ "KiokuDB::BEGIN@13";
+ "KiokuDB::new_scope";
+}
+subgraph cluster_Moose_Exporter {
+ label="Moose::Exporter";
+ "Moose::Exporter::__ANON__[Moose/Exporter.pm:492]";
+}
+subgraph cluster_B_Hooks_EndOfScope {
+ label="B::Hooks::EndOfScope";
+ "B::Hooks::EndOfScope::__ANON__[B/Hooks/EndOfScope.pm:26]";
+}
+subgraph cluster_Set_Object_Weak {
+ label="Set::Object::Weak";
+ "Set::Object::Weak::new";
+}
+"KiokuDB::LiveObjects::remove_scope" -> "KiokuDB::LiveObjects::Scope::clear";
+"KiokuDB::LiveObjects::register_object" -> "Scalar::Util::blessed";
+"KiokuDB::LiveObjects::BEGIN@7" -> "KiokuDB::LiveObjects::Guard::BEGIN@6";
+"KiokuDB::BEGIN@13" -> "KiokuDB::LiveObjects::BEGIN@13";
+"KiokuDB::LiveObjects::object_to_entry" -> "KiokuDB::LiveObjects::id_to_entry";
+"KiokuDB::LiveObjects::new_scope" -> "KiokuDB::LiveObjects::_known_scopes";
+"KiokuDB::LiveObjects::remove_scope" -> "KiokuDB::LiveObjects::_known_scopes";
+"KiokuDB::BEGIN@13" -> "KiokuDB::LiveObjects::BEGIN@10";
+"KiokuDB::LiveObjects::id_to_object" -> "KiokuDB::LiveObjects::cache";
+"KiokuDB::LiveObjects::__ANON__[KiokuDB/LiveObjects.pm:166]" -> "Set::Object::Weak::new";
+"KiokuDB::LiveObjects::BEGIN@7" -> "KiokuDB::LiveObjects::Guard::BEGIN@3";
+"KiokuDB::LiveObjects::register_object" -> "KiokuDB::LiveObjects::Scope::push";
+"KiokuDB::LiveObjects::new_scope" -> "KiokuDB::LiveObjects::_set_current_scope";
+"KiokuDB::LiveObjects::detach_scope" -> "KiokuDB::LiveObjects::_set_current_scope";
+"KiokuDB::LiveObjects::BEGIN@7" -> "UNIVERSAL::import";
+"KiokuDB::LiveObjects::BEGIN@13" -> "UNIVERSAL::import";
+"KiokuDB::LiveObjects::BEGIN@14" -> "UNIVERSAL::import";
+"KiokuDB::LiveObjects::BEGIN@7" -> "KiokuDB::LiveObjects::Guard::BEGIN@8";
+"KiokuDB::LiveObjects::new" -> "KiokuDB::LiveObjects::__ANON__[KiokuDB/LiveObjects.pm:166]";
+"KiokuDB::LiveObjects::BEGIN@14" -> "Moose::has";
+"KiokuDB::LiveObjects::BEGIN@13" -> "Moose::has";
+"KiokuDB::LiveObjects::new_scope" -> "Set::Object::insert";
+"KiokuDB::LiveObjects::register_entry" -> "KiokuDB::LiveObjects::txn_scope";
+"KiokuDB::LiveObjects::Scope::remove" -> "KiokuDB::LiveObjects::remove_scope";
+"KiokuDB::LiveObjects::BEGIN@13" -> "KiokuDB::LiveObjects::Scope::meta";
+"KiokuDB::BEGIN@13" -> "KiokuDB::LiveObjects::BEGIN@7";
+"KiokuDB::Collapser::Buffer::update_entries" -> "KiokuDB::LiveObjects::update_object_entry";
+"KiokuDB::LiveObjects::new_scope" -> "KiokuDB::LiveObjects::current_scope";
+"KiokuDB::LiveObjects::detach_scope" -> "KiokuDB::LiveObjects::current_scope";
+"KiokuDB::LiveObjects::update_object_entry" -> "KiokuDB::LiveObjects::current_scope";
+"KiokuDB::LiveObjects::register_object" -> "KiokuDB::LiveObjects::current_scope";
+"KiokuDB::LiveObjects::update_object_entry" -> "KiokuDB::LiveObjects::_objects";
+"KiokuDB::LiveObjects::object_to_id" -> "KiokuDB::LiveObjects::_objects";
+"KiokuDB::LiveObjects::register_object" -> "KiokuDB::LiveObjects::_objects";
+"KiokuDB::BEGIN@13" -> "KiokuDB::LiveObjects::BEGIN@67";
+"KiokuDB::BEGIN@13" -> "KiokuDB::LiveObjects::BEGIN@14";
+"KiokuDB::LiveObjects::remove_scope" -> "KiokuDB::LiveObjects::detach_scope";
+"KiokuDB::LiveObjects::BEGIN@18" -> "namespace::clean::import";
+"KiokuDB::LiveObjects::_id_info" -> "KiokuDB::LiveObjects::_ids";
+"KiokuDB::LiveObjects::_vivify_id_info" -> "KiokuDB::LiveObjects::_ids";
+"KiokuDB::LiveObjects::remove_scope" -> "Set::Object::remove";
+"KiokuDB::BEGIN@13" -> "KiokuDB::LiveObjects::BEGIN@9";
+"KiokuDB::LiveObjects::detach_scope" -> "KiokuDB::LiveObjects::Scope::parent";
+"KiokuDB::LiveObjects::BEGIN@7" -> "B::Hooks::EndOfScope::__ANON__[B/Hooks/EndOfScope.pm:26]";
+"KiokuDB::LiveObjects::BEGIN@14" -> "B::Hooks::EndOfScope::__ANON__[B/Hooks/EndOfScope.pm:26]";
+"KiokuDB::LiveObjects::BEGIN@13" -> "B::Hooks::EndOfScope::__ANON__[B/Hooks/EndOfScope.pm:26]";
+"KiokuDB::LiveObjects::BEGIN@4" -> "Moose::Exporter::__ANON__[Moose/Exporter.pm:492]";
+"KiokuDB::LiveObjects::BEGIN@16" -> "Moose::Exporter::__ANON__[Moose/Exporter.pm:492]";
+"KiokuDB::LiveObjects::BEGIN@13" -> "KiokuDB::LiveObjects::Scope::BEGIN@4";
+"KiokuDB::Collapser::make_entry" -> "KiokuDB::LiveObjects::object_to_entry";
+"KiokuDB::LiveObjects::register_entry" -> "KiokuDB::LiveObjects::_entries";
+"KiokuDB::LiveObjects::update_object_entry" -> "KiokuDB::LiveObjects::_entries";
+"KiokuDB::LiveObjects::new_scope" -> "KiokuDB::LiveObjects::Scope::new";
+"KiokuDB::LiveObjects::BEGIN@11" -> "Exporter::import";
+"KiokuDB::LiveObjects::BEGIN@6" -> "Exporter::import";
+"KiokuDB::LiveObjects::BEGIN@9" -> "Exporter::import";
+"KiokuDB::LiveObjects::BEGIN@8" -> "Exporter::import";
+"KiokuDB::BEGIN@13" -> "KiokuDB::LiveObjects::BEGIN@4";
+"KiokuDB::LiveObjects::object_to_id" -> "KiokuDB::LiveObjects::Guard::key";
+"KiokuDB::Collapser::Buffer::update_entries" -> "KiokuDB::LiveObjects::object_to_id";
+"KiokuDB::Collapser::collapse_first_class" -> "KiokuDB::LiveObjects::object_to_id";
+"KiokuDB::LiveObjects::object_to_entry" -> "KiokuDB::LiveObjects::object_to_id";
+"KiokuDB::LiveObjects::register_object" -> "KiokuDB::LiveObjects::object_to_id";
+"KiokuDB::Collapser::_ref_id" -> "KiokuDB::LiveObjects::object_to_id";
+"KiokuDB::Collapser::visit_seen" -> "KiokuDB::LiveObjects::object_to_id";
+"KiokuDB::LiveObjects::BEGIN@13" -> "KiokuDB::LiveObjects::Scope::BEGIN@6";
+"KiokuDB::BEGIN@13" -> "KiokuDB::LiveObjects::BEGIN@18";
+"KiokuDB::LiveObjects::BEGIN@67" -> "warnings::unimport";
+"KiokuDB::LiveObjects::register_entry" -> "KiokuDB::LiveObjects::keep_entries";
+"KiokuDB::LiveObjects::update_object_entry" -> "KiokuDB::LiveObjects::keep_entries";
+"KiokuDB::LiveObjects::register_object" -> "KiokuDB::LiveObjects::keep_entries";
+"KiokuDB::Collapser::Buffer::update_entries" -> "KiokuDB::LiveObjects::register_entry";
+"KiokuDB::LiveObjects::BEGIN@14" -> "KiokuDB::LiveObjects::TXNScope::meta";
+"KiokuDB::BEGIN@13" -> "KiokuDB::LiveObjects::BEGIN@11";
+"KiokuDB::BEGIN@13" -> "KiokuDB::LiveObjects::BEGIN@16";
+"KiokuDB::LiveObjects::BEGIN@14" -> "Class::MOP::Class::make_immutable";
+"KiokuDB::LiveObjects::BEGIN@13" -> "Class::MOP::Class::make_immutable";
+"KiokuDB::LiveObjects::_vivify_id_info" -> "Scalar::Util::weaken";
+"KiokuDB::LiveObjects::register_entry" -> "Scalar::Util::weaken";
+"KiokuDB::LiveObjects::register_object" -> "Scalar::Util::weaken";
+"KiokuDB::LiveObjects::update_object_entry" -> "Scalar::Util::weaken";
+"KiokuDB::LiveObjects::register_entry" -> "KiokuDB::LiveObjects::_vivify_id_info";
+"KiokuDB::LiveObjects::register_object" -> "KiokuDB::LiveObjects::_vivify_id_info";
+"KiokuDB::LiveObjects::register_entry" -> "UNIVERSAL::isa";
+"KiokuDB::LiveObjects::register_object" -> "UNIVERSAL::isa";
+"KiokuDB::LiveObjects::register_entry" -> "KiokuDB::Entry::root";
+"KiokuDB::Collapser::collapse_first_class" -> "KiokuDB::LiveObjects::id_to_object";
+"KiokuDB::Linker::get_or_load_object" -> "KiokuDB::LiveObjects::id_to_object";
+"KiokuDB::LiveObjects::register_object" -> "KiokuDB::LiveObjects::id_to_object";
+"KiokuDB::LiveObjects::BEGIN@14" -> "KiokuDB::LiveObjects::TXNScope::BEGIN@6";
+"KiokuDB::LiveObjects::BEGIN@14" -> "KiokuDB::LiveObjects::TXNScope::BEGIN@8";
+"KiokuDB::LiveObjects::BEGIN@8" -> "Hash::Util::FieldHash::Compat::import";
+"KiokuDB::BEGIN@13" -> "KiokuDB::LiveObjects::BEGIN@6";
+"KiokuDB::LiveObjects::new" -> "KiokuDB::LiveObjects::__ANON__[KiokuDB/LiveObjects.pm:48]";
+"KiokuDB::LiveObjects::BEGIN@10" -> "KiokuDB::LiveObjects::BEGIN@1";
+"KiokuDB::LiveObjects::remove_scope" -> "Set::Object::size";
+"KiokuDB::LiveObjects::update_object_entry" -> "KiokuDB::Entry::data";
+"KiokuDB::LiveObjects::register_object" -> "KiokuDB::Entry::data";
+"KiokuDB::LiveObjects::id_in_storage" -> "KiokuDB::LiveObjects::_id_info";
+"KiokuDB::LiveObjects::id_to_object" -> "KiokuDB::LiveObjects::_id_info";
+"KiokuDB::LiveObjects::id_to_entry" -> "KiokuDB::LiveObjects::_id_info";
+"KiokuDB::new_scope" -> "KiokuDB::LiveObjects::new_scope";
+"KiokuDB::LiveObjects::detach_scope" -> "Scalar::Util::refaddr";
+"KiokuDB::LiveObjects::register_object" -> "Scalar::Util::refaddr";
+"KiokuDB::LiveObjects::update_object_entry" -> "Scalar::Util::refaddr";
+"KiokuDB::LiveObjects::__ANON__[KiokuDB/LiveObjects.pm:48]" -> "Hash::Util::FieldHash::fieldhash";
+"KiokuDB::LiveObjects::BEGIN@14" -> "KiokuDB::LiveObjects::TXNScope::BEGIN@4";
+"KiokuDB::Collapser::make_entry" -> "KiokuDB::LiveObjects::id_in_storage";
+"KiokuDB::Collapser::collapse_first_class" -> "KiokuDB::LiveObjects::id_in_storage";
+"KiokuDB::LiveObjects::_vivify_id_info" -> "KiokuDB::LiveObjects::Guard::new";
+"KiokuDB::Collapser::Buffer::update_entries" -> "KiokuDB::LiveObjects::register_object";
+"KiokuDB::LiveObjects::update_object_entry" -> "KiokuDB::LiveObjects::_object_entries";
+"KiokuDB::LiveObjects::register_object" -> "KiokuDB::LiveObjects::_object_entries";
+"KiokuDB::LiveObjects::new" -> "KiokuDB::LiveObjects::__ANON__[KiokuDB/LiveObjects.pm:56]";
+"KiokuDB::BEGIN@13" -> "KiokuDB::LiveObjects::BEGIN@8";
+"KiokuDB::LiveObjects::BEGIN@7" -> "KiokuDB::LiveObjects::Guard::BEGIN@4";
+}