diff --git a/alib2abstraction/src/abstraction/ValueHolder.hpp b/alib2abstraction/src/abstraction/ValueHolder.hpp
index fb390b2579ab7f408117ee103705c1dc77e7430a..25c56ff9cb84911fd2f6241f9ccf83d5fe3a5a80 100644
--- a/alib2abstraction/src/abstraction/ValueHolder.hpp
+++ b/alib2abstraction/src/abstraction/ValueHolder.hpp
@@ -56,39 +56,52 @@ template < class Type >
 class ValueHolder : public std::conditional_t < std::is_reference_v < Type >, ReferenceImpl < std::decay_t < Type > >, ValueImpl < std::decay_t < Type > > > {
 	bool m_isTemporary;
 
-	abstraction::TypeQualifiers::TypeQualifierSet getTypeQualifiers ( ) const override {
-		return abstraction::TypeQualifiers::typeQualifiers < Type > ( );
-	}
+	abstraction::TypeQualifiers::TypeQualifierSet getTypeQualifiers ( ) const override;
 
-	core::type_details getActualType ( ) const override {
-		return core::type_details::get ( this->getValue ( ) );
-	}
+	core::type_details getActualType ( ) const override;
 
-	core::type_details getDeclaredType ( ) const override {
-		return core::type_details::get < std::decay_t < Type > > ( );
-	}
+	core::type_details getDeclaredType ( ) const override;
 
 	bool isTemporary ( ) const override {
 		return m_isTemporary;
 	}
 
-	std::unique_ptr < abstraction::Value > asValue ( bool move, bool temporary ) override {
-		if constexpr ( std::is_abstract_v < std::decay_t < Type > > )
-			throw std::domain_error ( "Cannot declare value of abstract class." );
-		else if constexpr ( ! std::is_assignable_v < std::decay_t < Type > &, std::decay_t < Type > > )
-			throw std::domain_error ( "Cannot assign value." );
-		else
-			return std::make_unique < abstraction::ValueHolder < std::decay_t < Type > > > ( retrieveValue < std::decay_t < Type > > ( this->shared_from_this ( ), move ), temporary );
-	}
-
+	std::unique_ptr < abstraction::Value > asValue ( bool move, bool temporary ) override;
 public:
-	ValueHolder ( Type && value, bool temporary ) : m_isTemporary ( temporary ) {
-		if ( TypeQualifiers::isLvalueRef ( abstraction::TypeQualifiers::typeQualifiers < Type > ( ) ) && this->isTemporary ( ) )
-			throw std::domain_error ( "Lvalue references cannot be temporaries." );
-
-		this->setValue ( std::forward < Type > ( value ) );
-	}
+	ValueHolder ( Type && value, bool temporary );
 };
 
-} /* namespace abstraction */
+template < class Type >
+abstraction::TypeQualifiers::TypeQualifierSet ValueHolder < Type >::getTypeQualifiers ( ) const {
+	return abstraction::TypeQualifiers::typeQualifiers < Type > ( );
+}
 
+template < class Type >
+core::type_details ValueHolder < Type >::getActualType ( ) const {
+	return core::type_details::get ( this->getValue ( ) );
+}
+
+template < class Type >
+core::type_details ValueHolder < Type >::getDeclaredType ( ) const {
+	return core::type_details::get < std::decay_t < Type > > ( );
+}
+
+template < class Type >
+std::unique_ptr < abstraction::Value > ValueHolder < Type >::asValue ( bool move, bool temporary ) {
+	if constexpr ( std::is_abstract_v < std::decay_t < Type > > )
+		throw std::domain_error ( "Cannot declare value of abstract class." );
+	else if constexpr ( ! std::is_assignable_v < std::decay_t < Type > &, std::decay_t < Type > > )
+		throw std::domain_error ( "Cannot assign value." );
+	else
+		return std::make_unique < abstraction::ValueHolder < std::decay_t < Type > > > ( retrieveValue < std::decay_t < Type > > ( this->shared_from_this ( ), move ), temporary );
+}
+
+template < class Type >
+ValueHolder < Type >::ValueHolder ( Type && value, bool temporary ) : m_isTemporary ( temporary ) {
+	if ( TypeQualifiers::isLvalueRef ( abstraction::TypeQualifiers::typeQualifiers < Type > ( ) ) && this->isTemporary ( ) )
+		throw std::domain_error ( "Lvalue references cannot be temporaries." );
+
+	this->setValue ( std::forward < Type > ( value ) );
+}
+
+} /* namespace abstraction */
diff --git a/alib2data/src/automaton/FSM/CompactDFA.cpp b/alib2data/src/automaton/FSM/CompactDFA.cpp
index 33feec0cc8a27e649359cd4aa78eebf5539907ee..1ab41f5e970402a829208f6f0f567b746e2bbc8a 100644
--- a/alib2data/src/automaton/FSM/CompactDFA.cpp
+++ b/alib2data/src/automaton/FSM/CompactDFA.cpp
@@ -5,6 +5,7 @@
 #include <registration/ComponentRegistration.hpp>
 
 template class automaton::CompactDFA < >;
+template class abstraction::ValueHolder < automaton::CompactDFA < > >;
 template class registration::DenormalizationRegisterImpl < const automaton::CompactDFA < > & >;
 template class registration::NormalizationRegisterImpl < automaton::CompactDFA < > >;
 
diff --git a/alib2data/src/automaton/FSM/CompactDFA.h b/alib2data/src/automaton/FSM/CompactDFA.h
index fdea97e4316ad325cb664c62b1bde71d0755acee..1376212a5ec52460877799f8caceadb7a5174192 100644
--- a/alib2data/src/automaton/FSM/CompactDFA.h
+++ b/alib2data/src/automaton/FSM/CompactDFA.h
@@ -778,5 +778,6 @@ struct type_details_retriever < automaton::CompactDFA < SymbolType, StateType >
 } /* namespace core */
 
 extern template class automaton::CompactDFA < >;
+extern template class abstraction::ValueHolder < automaton::CompactDFA < > >;
 extern template class registration::DenormalizationRegisterImpl < const automaton::CompactDFA < > & >;
 extern template class registration::NormalizationRegisterImpl < automaton::CompactDFA < > >;
diff --git a/alib2data/src/automaton/FSM/CompactNFA.cpp b/alib2data/src/automaton/FSM/CompactNFA.cpp
index 64cf56f620ffa0d829a7998106440cb344f62d5a..62c1fdf185c8df824996bbd43abe8d0543c430e9 100644
--- a/alib2data/src/automaton/FSM/CompactNFA.cpp
+++ b/alib2data/src/automaton/FSM/CompactNFA.cpp
@@ -5,6 +5,7 @@
 #include <registration/ComponentRegistration.hpp>
 
 template class automaton::CompactNFA < >;
+template class abstraction::ValueHolder < automaton::CompactNFA < > >;
 template class registration::DenormalizationRegisterImpl < const automaton::CompactNFA < > & >;
 template class registration::NormalizationRegisterImpl < automaton::CompactNFA < > >;
 
diff --git a/alib2data/src/automaton/FSM/CompactNFA.h b/alib2data/src/automaton/FSM/CompactNFA.h
index c6844e088791fab68f569a0fc1289c5b19c16d16..65fa9962189a99720e9624dda2bf27ef5606efbc 100644
--- a/alib2data/src/automaton/FSM/CompactNFA.h
+++ b/alib2data/src/automaton/FSM/CompactNFA.h
@@ -849,5 +849,6 @@ struct type_details_retriever < automaton::CompactNFA < SymbolType, StateType >
 } /* namespace core */
 
 extern template class automaton::CompactNFA < >;
+extern template class abstraction::ValueHolder < automaton::CompactNFA < > >;
 extern template class registration::DenormalizationRegisterImpl < const automaton::CompactNFA < > & >;
 extern template class registration::NormalizationRegisterImpl < automaton::CompactNFA < > >;
diff --git a/alib2data/src/automaton/FSM/DFA.cpp b/alib2data/src/automaton/FSM/DFA.cpp
index 6c7eb1b078d44ff48067e1ea90ba5d260fa9a55b..9fbc1be1ef092f0de3779d393654816a91d98637 100644
--- a/alib2data/src/automaton/FSM/DFA.cpp
+++ b/alib2data/src/automaton/FSM/DFA.cpp
@@ -3,6 +3,7 @@
 #include <registration/ValuePrinterRegistration.hpp>
 
 template class automaton::DFA < >;
+template class abstraction::ValueHolder < automaton::DFA < > >;
 template class registration::DenormalizationRegisterImpl < const automaton::DFA < > & >;
 template class registration::NormalizationRegisterImpl < automaton::DFA < > >;
 
diff --git a/alib2data/src/automaton/FSM/DFA.h b/alib2data/src/automaton/FSM/DFA.h
index 6ca984bf80ae8d586a5e7a347763eb0cbf4a4964..b26bac905906f1565aa2e066ac4437a0802ce5fb 100644
--- a/alib2data/src/automaton/FSM/DFA.h
+++ b/alib2data/src/automaton/FSM/DFA.h
@@ -771,5 +771,6 @@ struct type_details_retriever < automaton::DFA < SymbolType, StateType > > {
 } /* namespace core */
 
 extern template class automaton::DFA < >;
+extern template class abstraction::ValueHolder < automaton::DFA < > >;
 extern template class registration::DenormalizationRegisterImpl < const automaton::DFA < > & >;
 extern template class registration::NormalizationRegisterImpl < automaton::DFA < > >;
diff --git a/alib2data/src/automaton/FSM/EpsilonNFA.cpp b/alib2data/src/automaton/FSM/EpsilonNFA.cpp
index e1ba22bbd87b50149f1501365d14e047987f4e8d..d2ae119c19cd53a0a89e1bf34bec734e3154d7a0 100644
--- a/alib2data/src/automaton/FSM/EpsilonNFA.cpp
+++ b/alib2data/src/automaton/FSM/EpsilonNFA.cpp
@@ -4,6 +4,7 @@
 #include <registration/CastRegistration.hpp>
 
 template class automaton::EpsilonNFA < >;
+template class abstraction::ValueHolder < automaton::EpsilonNFA < > >;
 template class registration::DenormalizationRegisterImpl < const automaton::EpsilonNFA < > & >;
 template class registration::NormalizationRegisterImpl < automaton::EpsilonNFA < > >;
 
diff --git a/alib2data/src/automaton/FSM/EpsilonNFA.h b/alib2data/src/automaton/FSM/EpsilonNFA.h
index 5838dcdd6e9ae6335f46f9f5a3b6279291ce4feb..61f9768846d6eeabbd2e7d99d500f2e53c708d31 100644
--- a/alib2data/src/automaton/FSM/EpsilonNFA.h
+++ b/alib2data/src/automaton/FSM/EpsilonNFA.h
@@ -1062,5 +1062,6 @@ struct type_details_retriever < automaton::EpsilonNFA < SymbolType, StateType >
 } /* namespace core */
 
 extern template class automaton::EpsilonNFA < >;
+extern template class abstraction::ValueHolder < automaton::EpsilonNFA < > >;
 extern template class registration::DenormalizationRegisterImpl < const automaton::EpsilonNFA < > & >;
 extern template class registration::NormalizationRegisterImpl < automaton::EpsilonNFA < > >;
diff --git a/alib2data/src/automaton/FSM/ExtendedNFA.cpp b/alib2data/src/automaton/FSM/ExtendedNFA.cpp
index e90cf3584872a47b6ba5e7f18fe36f2d94c2b8d7..e50db95fc895efa9fecb8ba20f959324840442cf 100644
--- a/alib2data/src/automaton/FSM/ExtendedNFA.cpp
+++ b/alib2data/src/automaton/FSM/ExtendedNFA.cpp
@@ -4,6 +4,7 @@
 #include <registration/CastRegistration.hpp>
 
 template class automaton::ExtendedNFA < >;
+template class abstraction::ValueHolder < automaton::ExtendedNFA < > >;
 template class registration::DenormalizationRegisterImpl < const automaton::ExtendedNFA < > & >;
 template class registration::NormalizationRegisterImpl < automaton::ExtendedNFA < > >;
 
diff --git a/alib2data/src/automaton/FSM/ExtendedNFA.h b/alib2data/src/automaton/FSM/ExtendedNFA.h
index 397b2e4bc55c29d4ef8bf4ca90e9755660b755e6..0b506c61f29457c28603bd7c7ab7bb3e0ec2a053 100644
--- a/alib2data/src/automaton/FSM/ExtendedNFA.h
+++ b/alib2data/src/automaton/FSM/ExtendedNFA.h
@@ -875,5 +875,6 @@ struct type_details_retriever < automaton::ExtendedNFA < SymbolType, StateType >
 } /* namespace core */
 
 extern template class automaton::ExtendedNFA < >;
+extern template class abstraction::ValueHolder < automaton::ExtendedNFA < > >;
 extern template class registration::DenormalizationRegisterImpl < const automaton::ExtendedNFA < > & >;
 extern template class registration::NormalizationRegisterImpl < automaton::ExtendedNFA < > >;
diff --git a/alib2data/src/automaton/FSM/MultiInitialStateEpsilonNFA.cpp b/alib2data/src/automaton/FSM/MultiInitialStateEpsilonNFA.cpp
index 3ba0d668d026dee975960d149746b8380e65fd84..0606ecb97561e676e52d2ab4ad170b77c5e5fdc0 100644
--- a/alib2data/src/automaton/FSM/MultiInitialStateEpsilonNFA.cpp
+++ b/alib2data/src/automaton/FSM/MultiInitialStateEpsilonNFA.cpp
@@ -4,6 +4,7 @@
 #include <registration/CastRegistration.hpp>
 
 template class automaton::MultiInitialStateEpsilonNFA < >;
+template class abstraction::ValueHolder < automaton::MultiInitialStateEpsilonNFA < > >;
 template class registration::DenormalizationRegisterImpl < const automaton::MultiInitialStateEpsilonNFA < > & >;
 template class registration::NormalizationRegisterImpl < automaton::MultiInitialStateEpsilonNFA < > >;
 
diff --git a/alib2data/src/automaton/FSM/MultiInitialStateEpsilonNFA.h b/alib2data/src/automaton/FSM/MultiInitialStateEpsilonNFA.h
index 486a00ea2432a4a06649d7cf25a3a8342e801ebb..7d6e6cda48f2a606e1a6daeccd6e4918f35170fe 100644
--- a/alib2data/src/automaton/FSM/MultiInitialStateEpsilonNFA.h
+++ b/alib2data/src/automaton/FSM/MultiInitialStateEpsilonNFA.h
@@ -1107,5 +1107,6 @@ struct type_details_retriever < automaton::MultiInitialStateEpsilonNFA < SymbolT
 } /* namespace core */
 
 extern template class automaton::MultiInitialStateEpsilonNFA < >;
+extern template class abstraction::ValueHolder < automaton::MultiInitialStateEpsilonNFA < > >;
 extern template class registration::DenormalizationRegisterImpl < const automaton::MultiInitialStateEpsilonNFA < > & >;
 extern template class registration::NormalizationRegisterImpl < automaton::MultiInitialStateEpsilonNFA < > >;
diff --git a/alib2data/src/automaton/FSM/MultiInitialStateNFA.cpp b/alib2data/src/automaton/FSM/MultiInitialStateNFA.cpp
index 8071783cd65a8e0cb907c5239aab48b45c6754c8..4712349d571ad1b06966396c1ea0b011192ab7d5 100644
--- a/alib2data/src/automaton/FSM/MultiInitialStateNFA.cpp
+++ b/alib2data/src/automaton/FSM/MultiInitialStateNFA.cpp
@@ -4,6 +4,7 @@
 #include <registration/CastRegistration.hpp>
 
 template class automaton::MultiInitialStateNFA < >;
+template class abstraction::ValueHolder < automaton::MultiInitialStateNFA < > >;
 template class registration::DenormalizationRegisterImpl < const automaton::MultiInitialStateNFA < > & >;
 template class registration::NormalizationRegisterImpl < automaton::MultiInitialStateNFA < > >;
 
diff --git a/alib2data/src/automaton/FSM/MultiInitialStateNFA.h b/alib2data/src/automaton/FSM/MultiInitialStateNFA.h
index e51f0103ed77717e35e5f48938e905b837bc32fc..f991116b454d974c25289d244c7677584fada40b 100644
--- a/alib2data/src/automaton/FSM/MultiInitialStateNFA.h
+++ b/alib2data/src/automaton/FSM/MultiInitialStateNFA.h
@@ -836,5 +836,6 @@ struct type_details_retriever < automaton::MultiInitialStateNFA < SymbolType, St
 } /* namespace core */
 
 extern template class automaton::MultiInitialStateNFA < >;
+extern template class abstraction::ValueHolder < automaton::MultiInitialStateNFA < > >;
 extern template class registration::DenormalizationRegisterImpl < const automaton::MultiInitialStateNFA < > & >;
 extern template class registration::NormalizationRegisterImpl < automaton::MultiInitialStateNFA < > >;
diff --git a/alib2data/src/automaton/FSM/NFA.cpp b/alib2data/src/automaton/FSM/NFA.cpp
index 6f3de9b71cb472da900d3c1a32ca971642f1fcb7..a85ce77e7bdd2871ba39e973bc846ef7ddad98a4 100644
--- a/alib2data/src/automaton/FSM/NFA.cpp
+++ b/alib2data/src/automaton/FSM/NFA.cpp
@@ -4,6 +4,7 @@
 #include <registration/CastRegistration.hpp>
 
 template class automaton::NFA < >;
+template class abstraction::ValueHolder < automaton::NFA < > >;
 template class registration::DenormalizationRegisterImpl < const automaton::NFA < > & >;
 template class registration::NormalizationRegisterImpl < automaton::NFA < > >;
 
diff --git a/alib2data/src/automaton/FSM/NFA.h b/alib2data/src/automaton/FSM/NFA.h
index 7c98b8dce8c277e64853cdb0bf7946cc1ffef4db..2ce67c1aec554183c0911fa4c7b7ce299c230090 100644
--- a/alib2data/src/automaton/FSM/NFA.h
+++ b/alib2data/src/automaton/FSM/NFA.h
@@ -794,5 +794,6 @@ struct type_details_retriever < automaton::NFA < SymbolType, StateType > > {
 } /* namespace core */
 
 extern template class automaton::NFA < >;
+extern template class abstraction::ValueHolder < automaton::NFA < > >;
 extern template class registration::DenormalizationRegisterImpl < const automaton::NFA < > & >;
 extern template class registration::NormalizationRegisterImpl < automaton::NFA < > >;
diff --git a/alib2data/src/automaton/PDA/DPDA.cpp b/alib2data/src/automaton/PDA/DPDA.cpp
index baacf17a4fda7f37866c12e9dc379de698d5b97f..ddf23d16f91dcb7cab060bc9d2bd997ac28c0a2e 100644
--- a/alib2data/src/automaton/PDA/DPDA.cpp
+++ b/alib2data/src/automaton/PDA/DPDA.cpp
@@ -3,6 +3,7 @@
 #include <registration/ValuePrinterRegistration.hpp>
 
 template class automaton::DPDA < >;
+template class abstraction::ValueHolder < automaton::DPDA < > >;
 template class registration::DenormalizationRegisterImpl < const automaton::DPDA < > & >;
 template class registration::NormalizationRegisterImpl < automaton::DPDA < > >;
 
diff --git a/alib2data/src/automaton/PDA/DPDA.h b/alib2data/src/automaton/PDA/DPDA.h
index 07be89d969343a387f4f0acef4db2eb5190d4692..5dd231bb281e828cd381c3a8a9b20b4096915cd8 100644
--- a/alib2data/src/automaton/PDA/DPDA.h
+++ b/alib2data/src/automaton/PDA/DPDA.h
@@ -1083,5 +1083,6 @@ struct type_details_retriever < automaton::DPDA < InputSymbolType, PushdownStore
 } /* namespace core */
 
 extern template class automaton::DPDA < >;
+extern template class abstraction::ValueHolder < automaton::DPDA < > >;
 extern template class registration::DenormalizationRegisterImpl < const automaton::DPDA < > & >;
 extern template class registration::NormalizationRegisterImpl < automaton::DPDA < > >;
diff --git a/alib2data/src/automaton/PDA/InputDrivenDPDA.cpp b/alib2data/src/automaton/PDA/InputDrivenDPDA.cpp
index 2e2cea8d4ef04c3a89b36b3329c06122b5d7b018..36c50696601c09c2eda35526b6e1894d23353b03 100644
--- a/alib2data/src/automaton/PDA/InputDrivenDPDA.cpp
+++ b/alib2data/src/automaton/PDA/InputDrivenDPDA.cpp
@@ -3,6 +3,7 @@
 #include <registration/ValuePrinterRegistration.hpp>
 
 template class automaton::InputDrivenDPDA < >;
+template class abstraction::ValueHolder < automaton::InputDrivenDPDA < > >;
 template class registration::DenormalizationRegisterImpl < const automaton::InputDrivenDPDA < > & >;
 template class registration::NormalizationRegisterImpl < automaton::InputDrivenDPDA < > >;
 
diff --git a/alib2data/src/automaton/PDA/InputDrivenDPDA.h b/alib2data/src/automaton/PDA/InputDrivenDPDA.h
index 04cf1c2da224fe805bfc2fa7d5fc56eacbb6aafa..e831dcf9245179f47f805b76398ef39795355662 100644
--- a/alib2data/src/automaton/PDA/InputDrivenDPDA.h
+++ b/alib2data/src/automaton/PDA/InputDrivenDPDA.h
@@ -1068,5 +1068,6 @@ struct type_details_retriever < automaton::InputDrivenDPDA < InputSymbolType, Pu
 } /* namespace core */
 
 extern template class automaton::InputDrivenDPDA < >;
+extern template class abstraction::ValueHolder < automaton::InputDrivenDPDA < > >;
 extern template class registration::DenormalizationRegisterImpl < const automaton::InputDrivenDPDA < > & >;
 extern template class registration::NormalizationRegisterImpl < automaton::InputDrivenDPDA < > >;
diff --git a/alib2data/src/automaton/PDA/InputDrivenNPDA.cpp b/alib2data/src/automaton/PDA/InputDrivenNPDA.cpp
index ba36b02a3043401c5f9895a635252b15fc9420ba..ce9e2d91c3d365a79a6a4d16096501047a78fc3f 100644
--- a/alib2data/src/automaton/PDA/InputDrivenNPDA.cpp
+++ b/alib2data/src/automaton/PDA/InputDrivenNPDA.cpp
@@ -3,6 +3,7 @@
 #include <registration/ValuePrinterRegistration.hpp>
 
 template class automaton::InputDrivenNPDA < >;
+template class abstraction::ValueHolder < automaton::InputDrivenNPDA < > >;
 template class registration::DenormalizationRegisterImpl < const automaton::InputDrivenNPDA < > & >;
 template class registration::NormalizationRegisterImpl < automaton::InputDrivenNPDA < > >;
 
diff --git a/alib2data/src/automaton/PDA/InputDrivenNPDA.h b/alib2data/src/automaton/PDA/InputDrivenNPDA.h
index e6f56a6a2b86b753582669796e020bf36a29ea9b..d7cd76c97b8384cc0ed1ac3afcdbc809a7284257 100644
--- a/alib2data/src/automaton/PDA/InputDrivenNPDA.h
+++ b/alib2data/src/automaton/PDA/InputDrivenNPDA.h
@@ -1086,5 +1086,6 @@ struct type_details_retriever < automaton::InputDrivenNPDA < InputSymbolType, Pu
 } /* namespace core */
 
 extern template class automaton::InputDrivenNPDA < >;
+extern template class abstraction::ValueHolder < automaton::InputDrivenNPDA < > >;
 extern template class registration::DenormalizationRegisterImpl < const automaton::InputDrivenNPDA < > & >;
 extern template class registration::NormalizationRegisterImpl < automaton::InputDrivenNPDA < > >;
diff --git a/alib2data/src/automaton/PDA/NPDA.cpp b/alib2data/src/automaton/PDA/NPDA.cpp
index 6febd54f00ae98ac82e56642b986c3ef8061de47..d51cd58ef4d7c02f5b849060990543eefb8dd823 100644
--- a/alib2data/src/automaton/PDA/NPDA.cpp
+++ b/alib2data/src/automaton/PDA/NPDA.cpp
@@ -3,6 +3,7 @@
 #include <registration/ValuePrinterRegistration.hpp>
 
 template class automaton::NPDA < >;
+template class abstraction::ValueHolder < automaton::NPDA < > >;
 template class registration::DenormalizationRegisterImpl < const automaton::NPDA < > & >;
 template class registration::NormalizationRegisterImpl < automaton::NPDA < > >;
 
diff --git a/alib2data/src/automaton/PDA/NPDA.h b/alib2data/src/automaton/PDA/NPDA.h
index f68c4b2b6232c0e60f21499725a4d9a76b5e1a62..f7a81d2ca8e8f98d66bb6b816ea88af0540a43c0 100644
--- a/alib2data/src/automaton/PDA/NPDA.h
+++ b/alib2data/src/automaton/PDA/NPDA.h
@@ -1049,5 +1049,6 @@ struct type_details_retriever < automaton::NPDA < InputSymbolType, PushdownStore
 } /* namespace core */
 
 extern template class automaton::NPDA < >;
+extern template class abstraction::ValueHolder < automaton::NPDA < > >;
 extern template class registration::DenormalizationRegisterImpl < const automaton::NPDA < > & >;
 extern template class registration::NormalizationRegisterImpl < automaton::NPDA < > >;
diff --git a/alib2data/src/automaton/PDA/NPDTA.cpp b/alib2data/src/automaton/PDA/NPDTA.cpp
index 39c9dd8fb8ce2b87c84d36da05f1cfbb12f3364f..0a72c8f5bf10e20741643facf88e2374a71d1d2d 100644
--- a/alib2data/src/automaton/PDA/NPDTA.cpp
+++ b/alib2data/src/automaton/PDA/NPDTA.cpp
@@ -3,6 +3,7 @@
 #include <registration/ValuePrinterRegistration.hpp>
 
 template class automaton::NPDTA < >;
+template class abstraction::ValueHolder < automaton::NPDTA < > >;
 template class registration::DenormalizationRegisterImpl < const automaton::NPDTA < > & >;
 template class registration::NormalizationRegisterImpl < automaton::NPDTA < > >;
 
diff --git a/alib2data/src/automaton/PDA/NPDTA.h b/alib2data/src/automaton/PDA/NPDTA.h
index 6f1f0df4afd4d9ae1efd8757b962323b23b48cb4..d598f4340454c13d7709b2c0ed6c52c28afb7808 100644
--- a/alib2data/src/automaton/PDA/NPDTA.h
+++ b/alib2data/src/automaton/PDA/NPDTA.h
@@ -1166,5 +1166,6 @@ struct type_details_retriever < automaton::NPDTA < InputSymbolType, OutputSymbol
 } /* namespace core */
 
 extern template class automaton::NPDTA < >;
+extern template class abstraction::ValueHolder < automaton::NPDTA < > >;
 extern template class registration::DenormalizationRegisterImpl < const automaton::NPDTA < > & >;
 extern template class registration::NormalizationRegisterImpl < automaton::NPDTA < > >;
diff --git a/alib2data/src/automaton/PDA/RealTimeHeightDeterministicDPDA.cpp b/alib2data/src/automaton/PDA/RealTimeHeightDeterministicDPDA.cpp
index 6e782423a68530d083967edee77eafa39c151179..aa764919067f47a4b33fccbd87c0611daadda5db 100644
--- a/alib2data/src/automaton/PDA/RealTimeHeightDeterministicDPDA.cpp
+++ b/alib2data/src/automaton/PDA/RealTimeHeightDeterministicDPDA.cpp
@@ -3,6 +3,7 @@
 #include <registration/ValuePrinterRegistration.hpp>
 
 template class automaton::RealTimeHeightDeterministicDPDA < >;
+template class abstraction::ValueHolder < automaton::RealTimeHeightDeterministicDPDA < > >;
 template class registration::DenormalizationRegisterImpl < const automaton::RealTimeHeightDeterministicDPDA < > & >;
 template class registration::NormalizationRegisterImpl < automaton::RealTimeHeightDeterministicDPDA < > >;
 
diff --git a/alib2data/src/automaton/PDA/RealTimeHeightDeterministicDPDA.h b/alib2data/src/automaton/PDA/RealTimeHeightDeterministicDPDA.h
index fa114507a37b58c1318dc56085cf26e2a65883e7..503212e6f4859ea889773aa6d0ec5015fdadd4cc 100644
--- a/alib2data/src/automaton/PDA/RealTimeHeightDeterministicDPDA.h
+++ b/alib2data/src/automaton/PDA/RealTimeHeightDeterministicDPDA.h
@@ -1505,5 +1505,6 @@ struct type_details_retriever < automaton::RealTimeHeightDeterministicDPDA < Inp
 } /* namespace core */
 
 extern template class automaton::RealTimeHeightDeterministicDPDA < >;
+extern template class abstraction::ValueHolder < automaton::RealTimeHeightDeterministicDPDA < > >;
 extern template class registration::DenormalizationRegisterImpl < const automaton::RealTimeHeightDeterministicDPDA < > & >;
 extern template class registration::NormalizationRegisterImpl < automaton::RealTimeHeightDeterministicDPDA < > >;
diff --git a/alib2data/src/automaton/PDA/RealTimeHeightDeterministicNPDA.cpp b/alib2data/src/automaton/PDA/RealTimeHeightDeterministicNPDA.cpp
index 022ad6a0252ebea12806d5805cbc2e551a49ae4e..1863f2cb59c5c77068c65857ac1c76b221e6d485 100644
--- a/alib2data/src/automaton/PDA/RealTimeHeightDeterministicNPDA.cpp
+++ b/alib2data/src/automaton/PDA/RealTimeHeightDeterministicNPDA.cpp
@@ -3,6 +3,7 @@
 #include <registration/ValuePrinterRegistration.hpp>
 
 template class automaton::RealTimeHeightDeterministicNPDA < >;
+template class abstraction::ValueHolder < automaton::RealTimeHeightDeterministicNPDA < > >;
 template class registration::DenormalizationRegisterImpl < const automaton::RealTimeHeightDeterministicNPDA < > & >;
 template class registration::NormalizationRegisterImpl < automaton::RealTimeHeightDeterministicNPDA < > >;
 
diff --git a/alib2data/src/automaton/PDA/RealTimeHeightDeterministicNPDA.h b/alib2data/src/automaton/PDA/RealTimeHeightDeterministicNPDA.h
index a14bebaa253518c0c2aa5ccf33a0335f810a4b9c..875865c0ae2252f8d25c89373c61c4050c27eec7 100644
--- a/alib2data/src/automaton/PDA/RealTimeHeightDeterministicNPDA.h
+++ b/alib2data/src/automaton/PDA/RealTimeHeightDeterministicNPDA.h
@@ -1451,5 +1451,6 @@ struct type_details_retriever < automaton::RealTimeHeightDeterministicNPDA < Inp
 } /* namespace core */
 
 extern template class automaton::RealTimeHeightDeterministicNPDA < >;
+extern template class abstraction::ValueHolder < automaton::RealTimeHeightDeterministicNPDA < > >;
 extern template class registration::DenormalizationRegisterImpl < const automaton::RealTimeHeightDeterministicNPDA < > & >;
 extern template class registration::NormalizationRegisterImpl < automaton::RealTimeHeightDeterministicNPDA < > >;
diff --git a/alib2data/src/automaton/PDA/SinglePopDPDA.cpp b/alib2data/src/automaton/PDA/SinglePopDPDA.cpp
index 9670e614d2bbf9b460e943cf94cec15ae0bced6a..540715d097d8972619d0e01a0b0566eb2e48f860 100644
--- a/alib2data/src/automaton/PDA/SinglePopDPDA.cpp
+++ b/alib2data/src/automaton/PDA/SinglePopDPDA.cpp
@@ -3,6 +3,7 @@
 #include <registration/ValuePrinterRegistration.hpp>
 
 template class automaton::SinglePopDPDA < >;
+template class abstraction::ValueHolder < automaton::SinglePopDPDA < > >;
 template class registration::DenormalizationRegisterImpl < const automaton::SinglePopDPDA < > & >;
 template class registration::NormalizationRegisterImpl < automaton::SinglePopDPDA < > >;
 
diff --git a/alib2data/src/automaton/PDA/SinglePopDPDA.h b/alib2data/src/automaton/PDA/SinglePopDPDA.h
index 23b33b72f48d267acbd9f1da762eef8efd4d6ce5..d5fdeeae2bf605f641444e1f44674d57a9749f9a 100644
--- a/alib2data/src/automaton/PDA/SinglePopDPDA.h
+++ b/alib2data/src/automaton/PDA/SinglePopDPDA.h
@@ -1008,5 +1008,6 @@ struct type_details_retriever < automaton::SinglePopDPDA < InputSymbolType, Push
 } /* namespace core */
 
 extern template class automaton::SinglePopDPDA < >;
+extern template class abstraction::ValueHolder < automaton::SinglePopDPDA < > >;
 extern template class registration::DenormalizationRegisterImpl < const automaton::SinglePopDPDA < > & >;
 extern template class registration::NormalizationRegisterImpl < automaton::SinglePopDPDA < > >;
diff --git a/alib2data/src/automaton/PDA/SinglePopNPDA.cpp b/alib2data/src/automaton/PDA/SinglePopNPDA.cpp
index 9600bce0c9e7a177af0af93554cda21ee1b7ba7d..6042da7ed60fe29fdeaeea0a286978b9a0cac928 100644
--- a/alib2data/src/automaton/PDA/SinglePopNPDA.cpp
+++ b/alib2data/src/automaton/PDA/SinglePopNPDA.cpp
@@ -3,6 +3,7 @@
 #include <registration/ValuePrinterRegistration.hpp>
 
 template class automaton::SinglePopNPDA < >;
+template class abstraction::ValueHolder < automaton::SinglePopNPDA < > >;
 template class registration::DenormalizationRegisterImpl < const automaton::SinglePopNPDA < > & >;
 template class registration::NormalizationRegisterImpl < automaton::SinglePopNPDA < > >;
 
diff --git a/alib2data/src/automaton/PDA/SinglePopNPDA.h b/alib2data/src/automaton/PDA/SinglePopNPDA.h
index 4848095f9bc44e5247950fe26a4e59402a22988b..61c3d7dfd8233fdfbb58717c91bd51224c49f36f 100644
--- a/alib2data/src/automaton/PDA/SinglePopNPDA.h
+++ b/alib2data/src/automaton/PDA/SinglePopNPDA.h
@@ -993,5 +993,6 @@ struct type_details_retriever < automaton::SinglePopNPDA < InputSymbolType, Push
 } /* namespace core */
 
 extern template class automaton::SinglePopNPDA < >;
+extern template class abstraction::ValueHolder < automaton::SinglePopNPDA < > >;
 extern template class registration::DenormalizationRegisterImpl < const automaton::SinglePopNPDA < > & >;
 extern template class registration::NormalizationRegisterImpl < automaton::SinglePopNPDA < > >;
diff --git a/alib2data/src/automaton/PDA/VisiblyPushdownDPDA.cpp b/alib2data/src/automaton/PDA/VisiblyPushdownDPDA.cpp
index 0fbd2896d68faa2597a352ec30abc089ae53df7f..27aaf5013b8bcca2e2645c6f8d08b770ee5d05ee 100644
--- a/alib2data/src/automaton/PDA/VisiblyPushdownDPDA.cpp
+++ b/alib2data/src/automaton/PDA/VisiblyPushdownDPDA.cpp
@@ -3,6 +3,7 @@
 #include <registration/ValuePrinterRegistration.hpp>
 
 template class automaton::VisiblyPushdownDPDA < >;
+template class abstraction::ValueHolder < automaton::VisiblyPushdownDPDA < > >;
 template class registration::DenormalizationRegisterImpl < const automaton::VisiblyPushdownDPDA < > & >;
 template class registration::NormalizationRegisterImpl < automaton::VisiblyPushdownDPDA < > >;
 
diff --git a/alib2data/src/automaton/PDA/VisiblyPushdownDPDA.h b/alib2data/src/automaton/PDA/VisiblyPushdownDPDA.h
index 14b6712d0060828364320e9a7adbd1585c0b4ac7..514c6bc0455e79f19cde70daf6dede0e138032b9 100644
--- a/alib2data/src/automaton/PDA/VisiblyPushdownDPDA.h
+++ b/alib2data/src/automaton/PDA/VisiblyPushdownDPDA.h
@@ -1438,5 +1438,6 @@ struct type_details_retriever < automaton::VisiblyPushdownDPDA < InputSymbolType
 } /* namespace core */
 
 extern template class automaton::VisiblyPushdownDPDA < >;
+extern template class abstraction::ValueHolder < automaton::VisiblyPushdownDPDA < > >;
 extern template class registration::DenormalizationRegisterImpl < const automaton::VisiblyPushdownDPDA < > & >;
 extern template class registration::NormalizationRegisterImpl < automaton::VisiblyPushdownDPDA < > >;
diff --git a/alib2data/src/automaton/PDA/VisiblyPushdownNPDA.cpp b/alib2data/src/automaton/PDA/VisiblyPushdownNPDA.cpp
index bd1604c2ff5503facff1c437be13a2a36c81144c..3ba415740dd1e9ffb1f6e8356686d505917668c1 100644
--- a/alib2data/src/automaton/PDA/VisiblyPushdownNPDA.cpp
+++ b/alib2data/src/automaton/PDA/VisiblyPushdownNPDA.cpp
@@ -3,6 +3,7 @@
 #include <registration/ValuePrinterRegistration.hpp>
 
 template class automaton::VisiblyPushdownNPDA < >;
+template class abstraction::ValueHolder < automaton::VisiblyPushdownNPDA < > >;
 template class registration::DenormalizationRegisterImpl < const automaton::VisiblyPushdownNPDA < > & >;
 template class registration::NormalizationRegisterImpl < automaton::VisiblyPushdownNPDA < > >;
 
diff --git a/alib2data/src/automaton/PDA/VisiblyPushdownNPDA.h b/alib2data/src/automaton/PDA/VisiblyPushdownNPDA.h
index e296f81595c6b5df05da8fd8a171df569627f978..9494b63910d98ac44b8a85c98859adfc91a788ad 100644
--- a/alib2data/src/automaton/PDA/VisiblyPushdownNPDA.h
+++ b/alib2data/src/automaton/PDA/VisiblyPushdownNPDA.h
@@ -1434,5 +1434,6 @@ struct type_details_retriever < automaton::VisiblyPushdownNPDA < InputSymbolType
 } /* namespace core */
 
 extern template class automaton::VisiblyPushdownNPDA < >;
+extern template class abstraction::ValueHolder < automaton::VisiblyPushdownNPDA < > >;
 extern template class registration::DenormalizationRegisterImpl < const automaton::VisiblyPushdownNPDA < > & >;
 extern template class registration::NormalizationRegisterImpl < automaton::VisiblyPushdownNPDA < > >;
diff --git a/alib2data/src/automaton/TA/ArcFactoredDeterministicZAutomaton.cpp b/alib2data/src/automaton/TA/ArcFactoredDeterministicZAutomaton.cpp
index 882b9c5d1802b2a788d63c77c05f39ece0130559..13d85cab5c14fb18aa0934f122e19f93bb672883 100644
--- a/alib2data/src/automaton/TA/ArcFactoredDeterministicZAutomaton.cpp
+++ b/alib2data/src/automaton/TA/ArcFactoredDeterministicZAutomaton.cpp
@@ -3,6 +3,7 @@
 #include <registration/ValuePrinterRegistration.hpp>
 
 template class automaton::ArcFactoredDeterministicZAutomaton < >;
+template class abstraction::ValueHolder < automaton::ArcFactoredDeterministicZAutomaton < > >;
 template class registration::DenormalizationRegisterImpl < const automaton::ArcFactoredDeterministicZAutomaton < > & >;
 template class registration::NormalizationRegisterImpl < automaton::ArcFactoredDeterministicZAutomaton < > >;
 
diff --git a/alib2data/src/automaton/TA/ArcFactoredDeterministicZAutomaton.h b/alib2data/src/automaton/TA/ArcFactoredDeterministicZAutomaton.h
index 84ce38ae9061b8aa5fb902fc8b66d0f08b8e18e9..b865fc1948d794ea5c80d90436a32802795f9685 100644
--- a/alib2data/src/automaton/TA/ArcFactoredDeterministicZAutomaton.h
+++ b/alib2data/src/automaton/TA/ArcFactoredDeterministicZAutomaton.h
@@ -694,5 +694,6 @@ struct type_details_retriever < automaton::ArcFactoredDeterministicZAutomaton <
 } /* namespace core */
 
 extern template class automaton::ArcFactoredDeterministicZAutomaton < >;
+extern template class abstraction::ValueHolder < automaton::ArcFactoredDeterministicZAutomaton < > >;
 extern template class registration::DenormalizationRegisterImpl < const automaton::ArcFactoredDeterministicZAutomaton < > & >;
 extern template class registration::NormalizationRegisterImpl < automaton::ArcFactoredDeterministicZAutomaton < > >;
diff --git a/alib2data/src/automaton/TA/ArcFactoredNondeterministicZAutomaton.cpp b/alib2data/src/automaton/TA/ArcFactoredNondeterministicZAutomaton.cpp
index f471ab769f306ceab65f26829dc5b8e863e24beb..1f3f42491a09c828a597ae7955c97e20818cc777 100644
--- a/alib2data/src/automaton/TA/ArcFactoredNondeterministicZAutomaton.cpp
+++ b/alib2data/src/automaton/TA/ArcFactoredNondeterministicZAutomaton.cpp
@@ -4,6 +4,7 @@
 #include <registration/CastRegistration.hpp>
 
 template class automaton::ArcFactoredNondeterministicZAutomaton < >;
+template class abstraction::ValueHolder < automaton::ArcFactoredNondeterministicZAutomaton < > >;
 template class registration::DenormalizationRegisterImpl < const automaton::ArcFactoredNondeterministicZAutomaton < > & >;
 template class registration::NormalizationRegisterImpl < automaton::ArcFactoredNondeterministicZAutomaton < > >;
 
diff --git a/alib2data/src/automaton/TA/ArcFactoredNondeterministicZAutomaton.h b/alib2data/src/automaton/TA/ArcFactoredNondeterministicZAutomaton.h
index d12c1d15c8a9d696874ce5782213e2b15b38ed0d..dd26462d0f84cae01c64c64c4586ed20bb38eb87 100644
--- a/alib2data/src/automaton/TA/ArcFactoredNondeterministicZAutomaton.h
+++ b/alib2data/src/automaton/TA/ArcFactoredNondeterministicZAutomaton.h
@@ -707,5 +707,6 @@ struct type_details_retriever < automaton::ArcFactoredNondeterministicZAutomaton
 } /* namespace core */
 
 extern template class automaton::ArcFactoredNondeterministicZAutomaton < >;
+extern template class abstraction::ValueHolder < automaton::ArcFactoredNondeterministicZAutomaton < > >;
 extern template class registration::DenormalizationRegisterImpl < const automaton::ArcFactoredNondeterministicZAutomaton < > & >;
 extern template class registration::NormalizationRegisterImpl < automaton::ArcFactoredNondeterministicZAutomaton < > >;
diff --git a/alib2data/src/automaton/TA/DFTA.cpp b/alib2data/src/automaton/TA/DFTA.cpp
index b18f7950cd1ef3e105f90c09e07b7d2826b06397..a9ee5e317b842e4ef4a78bb052c22e9c9fc21d13 100644
--- a/alib2data/src/automaton/TA/DFTA.cpp
+++ b/alib2data/src/automaton/TA/DFTA.cpp
@@ -3,6 +3,7 @@
 #include <registration/ValuePrinterRegistration.hpp>
 
 template class automaton::DFTA < >;
+template class abstraction::ValueHolder < automaton::DFTA < > >;
 template class registration::DenormalizationRegisterImpl < const automaton::DFTA < > & >;
 template class registration::NormalizationRegisterImpl < automaton::DFTA < > >;
 
diff --git a/alib2data/src/automaton/TA/DFTA.h b/alib2data/src/automaton/TA/DFTA.h
index cec463b4b89c259b8f1acd74a84ea95d955069ee..384da3bd8dede0e9a14cd23a91d58c76c6f84c7a 100644
--- a/alib2data/src/automaton/TA/DFTA.h
+++ b/alib2data/src/automaton/TA/DFTA.h
@@ -671,5 +671,6 @@ struct type_details_retriever < automaton::DFTA < SymbolType, StateType > > {
 } /* namespace core */
 
 extern template class automaton::DFTA < >;
+extern template class abstraction::ValueHolder < automaton::DFTA < > >;
 extern template class registration::DenormalizationRegisterImpl < const automaton::DFTA < > & >;
 extern template class registration::NormalizationRegisterImpl < automaton::DFTA < > >;
diff --git a/alib2data/src/automaton/TA/EpsilonNFTA.cpp b/alib2data/src/automaton/TA/EpsilonNFTA.cpp
index de0968341d5bb7239a2380d6ec0dac8effa9176a..1fecf522111d9df940b32adeaeb8e717e8e839d3 100644
--- a/alib2data/src/automaton/TA/EpsilonNFTA.cpp
+++ b/alib2data/src/automaton/TA/EpsilonNFTA.cpp
@@ -4,6 +4,7 @@
 #include <registration/CastRegistration.hpp>
 
 template class automaton::EpsilonNFTA < >;
+template class abstraction::ValueHolder < automaton::EpsilonNFTA < > >;
 template class registration::DenormalizationRegisterImpl < const automaton::EpsilonNFTA < > & >;
 template class registration::NormalizationRegisterImpl < automaton::EpsilonNFTA < > >;
 
diff --git a/alib2data/src/automaton/TA/EpsilonNFTA.h b/alib2data/src/automaton/TA/EpsilonNFTA.h
index 9cc805697152ed9f311e10fafea404d1f1d6b772..6b8161653043f2634c8cc37b1273d05b5a7df991 100644
--- a/alib2data/src/automaton/TA/EpsilonNFTA.h
+++ b/alib2data/src/automaton/TA/EpsilonNFTA.h
@@ -926,5 +926,6 @@ struct type_details_retriever < automaton::EpsilonNFTA < SymbolType, StateType >
 } /* namespace core */
 
 extern template class automaton::EpsilonNFTA < >;
+extern template class abstraction::ValueHolder < automaton::EpsilonNFTA < > >;
 extern template class registration::DenormalizationRegisterImpl < const automaton::EpsilonNFTA < > & >;
 extern template class registration::NormalizationRegisterImpl < automaton::EpsilonNFTA < > >;
diff --git a/alib2data/src/automaton/TA/ExtendedNFTA.cpp b/alib2data/src/automaton/TA/ExtendedNFTA.cpp
index 7e6a9931aa07b775c62b1cc9382824ee13bc53bf..4ff659c09d781c7a65395dc2489da47efebd5943 100644
--- a/alib2data/src/automaton/TA/ExtendedNFTA.cpp
+++ b/alib2data/src/automaton/TA/ExtendedNFTA.cpp
@@ -3,6 +3,7 @@
 #include <registration/ValuePrinterRegistration.hpp>
 
 template class automaton::ExtendedNFTA < >;
+template class abstraction::ValueHolder < automaton::ExtendedNFTA < > >;
 template class registration::DenormalizationRegisterImpl < const automaton::ExtendedNFTA < > & >;
 template class registration::NormalizationRegisterImpl < automaton::ExtendedNFTA < > >;
 
diff --git a/alib2data/src/automaton/TA/ExtendedNFTA.h b/alib2data/src/automaton/TA/ExtendedNFTA.h
index 58282c4fa146a6a76923f380ee79b0a4f124bb62..340a86c942c9f21bf7ef89a97c68d992ad4541cd 100644
--- a/alib2data/src/automaton/TA/ExtendedNFTA.h
+++ b/alib2data/src/automaton/TA/ExtendedNFTA.h
@@ -744,5 +744,6 @@ struct type_details_retriever < automaton::ExtendedNFTA < SymbolType, StateType
 } /* namespace core */
 
 extern template class automaton::ExtendedNFTA < >;
+extern template class abstraction::ValueHolder < automaton::ExtendedNFTA < > >;
 extern template class registration::DenormalizationRegisterImpl < const automaton::ExtendedNFTA < > & >;
 extern template class registration::NormalizationRegisterImpl < automaton::ExtendedNFTA < > >;
diff --git a/alib2data/src/automaton/TA/NFTA.cpp b/alib2data/src/automaton/TA/NFTA.cpp
index 9089760a30a0ff58246a38bf9d27991999b92efb..fb7010544923203577af477fdb9cf617fa1adceb 100644
--- a/alib2data/src/automaton/TA/NFTA.cpp
+++ b/alib2data/src/automaton/TA/NFTA.cpp
@@ -4,6 +4,7 @@
 #include <registration/CastRegistration.hpp>
 
 template class automaton::NFTA < >;
+template class abstraction::ValueHolder < automaton::NFTA < > >;
 template class registration::DenormalizationRegisterImpl < const automaton::NFTA < > & >;
 template class registration::NormalizationRegisterImpl < automaton::NFTA < > >;
 
diff --git a/alib2data/src/automaton/TA/NFTA.h b/alib2data/src/automaton/TA/NFTA.h
index 610042754d09257c1c13c51a28ca1e31a261b3ad..003dc5f749f6ea6e4490d0600ad3d21f04b98b10 100644
--- a/alib2data/src/automaton/TA/NFTA.h
+++ b/alib2data/src/automaton/TA/NFTA.h
@@ -697,5 +697,6 @@ struct type_details_retriever < automaton::NFTA < SymbolType, StateType > > {
 } /* namespace core */
 
 extern template class automaton::NFTA < >;
+extern template class abstraction::ValueHolder < automaton::NFTA < > >;
 extern template class registration::DenormalizationRegisterImpl < const automaton::NFTA < > & >;
 extern template class registration::NormalizationRegisterImpl < automaton::NFTA < > >;
diff --git a/alib2data/src/automaton/TA/NondeterministicZAutomaton.cpp b/alib2data/src/automaton/TA/NondeterministicZAutomaton.cpp
index ed11fff975cdb126ab864fcbbb0844c78a09c8b5..2bc108fb9b77441e2a558ba89292c42565abd3a6 100644
--- a/alib2data/src/automaton/TA/NondeterministicZAutomaton.cpp
+++ b/alib2data/src/automaton/TA/NondeterministicZAutomaton.cpp
@@ -3,6 +3,7 @@
 #include <registration/ValuePrinterRegistration.hpp>
 
 template class automaton::NondeterministicZAutomaton < >;
+template class abstraction::ValueHolder < automaton::NondeterministicZAutomaton < > >;
 template class registration::DenormalizationRegisterImpl < const automaton::NondeterministicZAutomaton < > & >;
 template class registration::NormalizationRegisterImpl < automaton::NondeterministicZAutomaton < > >;
 
diff --git a/alib2data/src/automaton/TA/NondeterministicZAutomaton.h b/alib2data/src/automaton/TA/NondeterministicZAutomaton.h
index 6ae5ed04d0ab618dd0b8b24ad6b9353efcd62f52..b42c97066a24c662715640e0ff48caa002e93f2c 100644
--- a/alib2data/src/automaton/TA/NondeterministicZAutomaton.h
+++ b/alib2data/src/automaton/TA/NondeterministicZAutomaton.h
@@ -636,5 +636,6 @@ struct type_details_retriever < automaton::NondeterministicZAutomaton < SymbolTy
 } /* namespace core */
 
 extern template class automaton::NondeterministicZAutomaton < >;
+extern template class abstraction::ValueHolder < automaton::NondeterministicZAutomaton < > >;
 extern template class registration::DenormalizationRegisterImpl < const automaton::NondeterministicZAutomaton < > & >;
 extern template class registration::NormalizationRegisterImpl < automaton::NondeterministicZAutomaton < > >;
diff --git a/alib2data/src/automaton/TA/UnorderedDFTA.cpp b/alib2data/src/automaton/TA/UnorderedDFTA.cpp
index 1e0ecfea12c757bc02400d16356fea8ef30f7f3a..57c44c52ae843f51060666d0560e6ec9488d48dd 100644
--- a/alib2data/src/automaton/TA/UnorderedDFTA.cpp
+++ b/alib2data/src/automaton/TA/UnorderedDFTA.cpp
@@ -3,6 +3,7 @@
 #include <registration/ValuePrinterRegistration.hpp>
 
 template class automaton::UnorderedDFTA < >;
+template class abstraction::ValueHolder < automaton::UnorderedDFTA < > >;
 template class registration::DenormalizationRegisterImpl < const automaton::UnorderedDFTA < > & >;
 template class registration::NormalizationRegisterImpl < automaton::UnorderedDFTA < > >;
 
diff --git a/alib2data/src/automaton/TA/UnorderedDFTA.h b/alib2data/src/automaton/TA/UnorderedDFTA.h
index d22e172f36944bfb9d92b8361cc3add1575eba85..bb0016e0554a72dbe50bcc4f67b3e78ce8003663 100644
--- a/alib2data/src/automaton/TA/UnorderedDFTA.h
+++ b/alib2data/src/automaton/TA/UnorderedDFTA.h
@@ -669,5 +669,6 @@ struct type_details_retriever < automaton::UnorderedDFTA < SymbolType, StateType
 } /* namespace core */
 
 extern template class automaton::UnorderedDFTA < >;
+extern template class abstraction::ValueHolder < automaton::UnorderedDFTA < > >;
 extern template class registration::DenormalizationRegisterImpl < const automaton::UnorderedDFTA < > & >;
 extern template class registration::NormalizationRegisterImpl < automaton::UnorderedDFTA < > >;
diff --git a/alib2data/src/automaton/TA/UnorderedNFTA.cpp b/alib2data/src/automaton/TA/UnorderedNFTA.cpp
index b3418d0056957a84d28290fe1582f1663b1c73c4..455d4e2d4f81181330a97435cf9c7cec83067b20 100644
--- a/alib2data/src/automaton/TA/UnorderedNFTA.cpp
+++ b/alib2data/src/automaton/TA/UnorderedNFTA.cpp
@@ -4,6 +4,7 @@
 #include <registration/CastRegistration.hpp>
 
 template class automaton::UnorderedNFTA < >;
+template class abstraction::ValueHolder < automaton::UnorderedNFTA < > >;
 template class registration::DenormalizationRegisterImpl < const automaton::UnorderedNFTA < > & >;
 template class registration::NormalizationRegisterImpl < automaton::UnorderedNFTA < > >;
 
diff --git a/alib2data/src/automaton/TA/UnorderedNFTA.h b/alib2data/src/automaton/TA/UnorderedNFTA.h
index 5f41f58f553c6aaa6c250253a97683d9a05e8c89..aa1ca28903e8e6d02f66da510fbd4307f7632003 100644
--- a/alib2data/src/automaton/TA/UnorderedNFTA.h
+++ b/alib2data/src/automaton/TA/UnorderedNFTA.h
@@ -697,5 +697,6 @@ struct type_details_retriever < automaton::UnorderedNFTA < SymbolType, StateType
 } /* namespace core */
 
 extern template class automaton::UnorderedNFTA < >;
+extern template class abstraction::ValueHolder < automaton::UnorderedNFTA < > >;
 extern template class registration::DenormalizationRegisterImpl < const automaton::UnorderedNFTA < > & >;
 extern template class registration::NormalizationRegisterImpl < automaton::UnorderedNFTA < > >;
diff --git a/alib2data/src/automaton/TM/OneTapeDTM.cpp b/alib2data/src/automaton/TM/OneTapeDTM.cpp
index aa92b4f3623be40c14e1d5f1e7305f7cdd84bcec..450771645ee192cfac924bf87323f88b174c0516 100644
--- a/alib2data/src/automaton/TM/OneTapeDTM.cpp
+++ b/alib2data/src/automaton/TM/OneTapeDTM.cpp
@@ -3,6 +3,7 @@
 #include <registration/ValuePrinterRegistration.hpp>
 
 template class automaton::OneTapeDTM < >;
+template class abstraction::ValueHolder < automaton::OneTapeDTM < > >;
 template class registration::DenormalizationRegisterImpl < const automaton::OneTapeDTM < > & >;
 template class registration::NormalizationRegisterImpl < automaton::OneTapeDTM < > >;
 
diff --git a/alib2data/src/automaton/TM/OneTapeDTM.h b/alib2data/src/automaton/TM/OneTapeDTM.h
index 678b0901b71d5deca6e083c0c10e33e74735c193..4b37175a644c799d41ee64f060d45eea77a9771a 100644
--- a/alib2data/src/automaton/TM/OneTapeDTM.h
+++ b/alib2data/src/automaton/TM/OneTapeDTM.h
@@ -880,5 +880,6 @@ struct type_details_retriever < automaton::OneTapeDTM < SymbolType, StateType >
 } /* namespace core */
 
 extern template class automaton::OneTapeDTM < >;
+extern template class abstraction::ValueHolder < automaton::OneTapeDTM < > >;
 extern template class registration::DenormalizationRegisterImpl < const automaton::OneTapeDTM < > & >;
 extern template class registration::NormalizationRegisterImpl < automaton::OneTapeDTM < > >;
diff --git a/alib2data/src/grammar/ContextFree/CFG.cpp b/alib2data/src/grammar/ContextFree/CFG.cpp
index bcbc6dd43f7f1f0dfe35906acbeb1aba4c3c4067..2f09b33118327e7d6087e8f64c4d899a3de6b47e 100644
--- a/alib2data/src/grammar/ContextFree/CFG.cpp
+++ b/alib2data/src/grammar/ContextFree/CFG.cpp
@@ -4,6 +4,7 @@
 #include <registration/CastRegistration.hpp>
 
 template class grammar::CFG < >;
+template class abstraction::ValueHolder < grammar::CFG < > >;
 template class registration::DenormalizationRegisterImpl < const grammar::CFG < > & >;
 template class registration::NormalizationRegisterImpl < grammar::CFG < > >;
 
diff --git a/alib2data/src/grammar/ContextFree/CFG.h b/alib2data/src/grammar/ContextFree/CFG.h
index bbb26feb8136410ee7195ec73e183611972e69fd..f0ff2661a3f1235c78f1aafe679ccde5859ad785 100644
--- a/alib2data/src/grammar/ContextFree/CFG.h
+++ b/alib2data/src/grammar/ContextFree/CFG.h
@@ -567,5 +567,6 @@ struct type_details_retriever < grammar::CFG < TerminalSymbolType, NonterminalSy
 } /* namespace core */
 
 extern template class grammar::CFG < >;
+extern template class abstraction::ValueHolder < grammar::CFG < > >;
 extern template class registration::DenormalizationRegisterImpl < const grammar::CFG < > & >;
 extern template class registration::NormalizationRegisterImpl < grammar::CFG < > >;
diff --git a/alib2data/src/grammar/ContextFree/CNF.cpp b/alib2data/src/grammar/ContextFree/CNF.cpp
index f5383a4388d4ad29b13d9b15e45d93f133ba6f58..278b48a6fa23d0da99720a9025aee426968934f7 100644
--- a/alib2data/src/grammar/ContextFree/CNF.cpp
+++ b/alib2data/src/grammar/ContextFree/CNF.cpp
@@ -4,6 +4,7 @@
 #include <registration/CastRegistration.hpp>
 
 template class grammar::CNF < >;
+template class abstraction::ValueHolder < grammar::CNF < > >;
 template class registration::DenormalizationRegisterImpl < const grammar::CNF < > & >;
 template class registration::NormalizationRegisterImpl < grammar::CNF < > >;
 
diff --git a/alib2data/src/grammar/ContextFree/CNF.h b/alib2data/src/grammar/ContextFree/CNF.h
index b8929b598aa949af307d4cd1edb4357a9a7e4e7b..4966ce29478348b3f16854cb27a13c7aeb4612c2 100644
--- a/alib2data/src/grammar/ContextFree/CNF.h
+++ b/alib2data/src/grammar/ContextFree/CNF.h
@@ -642,5 +642,6 @@ struct type_details_retriever < grammar::CNF < TerminalSymbolType, NonterminalSy
 } /* namespace core */
 
 extern template class grammar::CNF < >;
+extern template class abstraction::ValueHolder < grammar::CNF < > >;
 extern template class registration::DenormalizationRegisterImpl < const grammar::CNF < > & >;
 extern template class registration::NormalizationRegisterImpl < grammar::CNF < > >;
diff --git a/alib2data/src/grammar/ContextFree/EpsilonFreeCFG.cpp b/alib2data/src/grammar/ContextFree/EpsilonFreeCFG.cpp
index 9e312ce39655815a86d085d78111a9ce5983881f..ac434701385c8287e5d4661a4920e58762f4977b 100644
--- a/alib2data/src/grammar/ContextFree/EpsilonFreeCFG.cpp
+++ b/alib2data/src/grammar/ContextFree/EpsilonFreeCFG.cpp
@@ -4,6 +4,7 @@
 #include <registration/CastRegistration.hpp>
 
 template class grammar::EpsilonFreeCFG < >;
+template class abstraction::ValueHolder < grammar::EpsilonFreeCFG < > >;
 template class registration::DenormalizationRegisterImpl < const grammar::EpsilonFreeCFG < > & >;
 template class registration::NormalizationRegisterImpl < grammar::EpsilonFreeCFG < > >;
 
diff --git a/alib2data/src/grammar/ContextFree/EpsilonFreeCFG.h b/alib2data/src/grammar/ContextFree/EpsilonFreeCFG.h
index 76e40b3bfc832038180fffd62686caf0fd174089..66ed84d6f92ccc4e2ec6c165caac8aea6e12bf87 100644
--- a/alib2data/src/grammar/ContextFree/EpsilonFreeCFG.h
+++ b/alib2data/src/grammar/ContextFree/EpsilonFreeCFG.h
@@ -594,5 +594,6 @@ struct type_details_retriever < grammar::EpsilonFreeCFG < TerminalSymbolType, No
 } /* namespace core */
 
 extern template class grammar::EpsilonFreeCFG < >;
+extern template class abstraction::ValueHolder < grammar::EpsilonFreeCFG < > >;
 extern template class registration::DenormalizationRegisterImpl < const grammar::EpsilonFreeCFG < > & >;
 extern template class registration::NormalizationRegisterImpl < grammar::EpsilonFreeCFG < > >;
diff --git a/alib2data/src/grammar/ContextFree/GNF.cpp b/alib2data/src/grammar/ContextFree/GNF.cpp
index d4665f3cf5b45644f575c1054cbb85aca40b14bc..3db05047c1a2f545d56d695aca75334ac3f562a1 100644
--- a/alib2data/src/grammar/ContextFree/GNF.cpp
+++ b/alib2data/src/grammar/ContextFree/GNF.cpp
@@ -4,6 +4,7 @@
 #include <registration/CastRegistration.hpp>
 
 template class grammar::GNF < >;
+template class abstraction::ValueHolder < grammar::GNF < > >;
 template class registration::DenormalizationRegisterImpl < const grammar::GNF < > & >;
 template class registration::NormalizationRegisterImpl < grammar::GNF < > >;
 
diff --git a/alib2data/src/grammar/ContextFree/GNF.h b/alib2data/src/grammar/ContextFree/GNF.h
index 658061d78897d828806dd3ee43646cc06833db2d..f45bfdcd3e199d1457ac15fe9c3853c00963ee7b 100644
--- a/alib2data/src/grammar/ContextFree/GNF.h
+++ b/alib2data/src/grammar/ContextFree/GNF.h
@@ -594,5 +594,6 @@ struct type_details_retriever < grammar::GNF < TerminalSymbolType, NonterminalSy
 } /* namespace core */
 
 extern template class grammar::GNF < >;
+extern template class abstraction::ValueHolder < grammar::GNF < > >;
 extern template class registration::DenormalizationRegisterImpl < const grammar::GNF < > & >;
 extern template class registration::NormalizationRegisterImpl < grammar::GNF < > >;
diff --git a/alib2data/src/grammar/ContextFree/LG.cpp b/alib2data/src/grammar/ContextFree/LG.cpp
index 0f9d52abadaf45b37d7b4fb300a53a9d20d69ad6..24ce836dd62ef88aaceace304af55dd3e64ec7ea 100644
--- a/alib2data/src/grammar/ContextFree/LG.cpp
+++ b/alib2data/src/grammar/ContextFree/LG.cpp
@@ -4,6 +4,7 @@
 #include <registration/CastRegistration.hpp>
 
 template class grammar::LG < >;
+template class abstraction::ValueHolder < grammar::LG < > >;
 template class registration::DenormalizationRegisterImpl < const grammar::LG < > & >;
 template class registration::NormalizationRegisterImpl < grammar::LG < > >;
 
diff --git a/alib2data/src/grammar/ContextFree/LG.h b/alib2data/src/grammar/ContextFree/LG.h
index 9a7cf9e1c5ca3d9dfe89f7c84d0a0546e02b989d..9aec7dbb12a1065f0019d365bd95da17824112c6 100644
--- a/alib2data/src/grammar/ContextFree/LG.h
+++ b/alib2data/src/grammar/ContextFree/LG.h
@@ -643,5 +643,6 @@ struct type_details_retriever < grammar::LG < TerminalSymbolType, NonterminalSym
 } /* namespace core */
 
 extern template class grammar::LG < >;
+extern template class abstraction::ValueHolder < grammar::LG < > >;
 extern template class registration::DenormalizationRegisterImpl < const grammar::LG < > & >;
 extern template class registration::NormalizationRegisterImpl < grammar::LG < > >;
diff --git a/alib2data/src/grammar/ContextSensitive/CSG.cpp b/alib2data/src/grammar/ContextSensitive/CSG.cpp
index 1259584d2d778e1d8bba081d4d9cf7e40bfcc46d..620ba54161ecfb2a76da543e996150b63712b68c 100644
--- a/alib2data/src/grammar/ContextSensitive/CSG.cpp
+++ b/alib2data/src/grammar/ContextSensitive/CSG.cpp
@@ -4,6 +4,7 @@
 #include <registration/CastRegistration.hpp>
 
 template class grammar::CSG < >;
+template class abstraction::ValueHolder < grammar::CSG < > >;
 template class registration::DenormalizationRegisterImpl < const grammar::CSG < > & >;
 template class registration::NormalizationRegisterImpl < grammar::CSG < > >;
 
diff --git a/alib2data/src/grammar/ContextSensitive/CSG.h b/alib2data/src/grammar/ContextSensitive/CSG.h
index cede910a89619392219907fb3c14f60732c52938..15ebb8f2cb59dca6416446c909c872bb54911fb9 100644
--- a/alib2data/src/grammar/ContextSensitive/CSG.h
+++ b/alib2data/src/grammar/ContextSensitive/CSG.h
@@ -623,5 +623,6 @@ struct type_details_retriever < grammar::CSG < SymbolType > > {
 } /* namespace core */
 
 extern template class grammar::CSG < >;
+extern template class abstraction::ValueHolder < grammar::CSG < > >;
 extern template class registration::DenormalizationRegisterImpl < const grammar::CSG < > & >;
 extern template class registration::NormalizationRegisterImpl < grammar::CSG < > >;
diff --git a/alib2data/src/grammar/ContextSensitive/NonContractingGrammar.cpp b/alib2data/src/grammar/ContextSensitive/NonContractingGrammar.cpp
index ad1aeb1fd3a47bc9151dcbf31bbcf1d45667a54c..6da020fccec0aabb0ffd418908b58a05fc2f8962 100644
--- a/alib2data/src/grammar/ContextSensitive/NonContractingGrammar.cpp
+++ b/alib2data/src/grammar/ContextSensitive/NonContractingGrammar.cpp
@@ -4,6 +4,7 @@
 #include <registration/CastRegistration.hpp>
 
 template class grammar::NonContractingGrammar < >;
+template class abstraction::ValueHolder < grammar::NonContractingGrammar < > >;
 template class registration::DenormalizationRegisterImpl < const grammar::NonContractingGrammar < > & >;
 template class registration::NormalizationRegisterImpl < grammar::NonContractingGrammar < > >;
 
diff --git a/alib2data/src/grammar/ContextSensitive/NonContractingGrammar.h b/alib2data/src/grammar/ContextSensitive/NonContractingGrammar.h
index 59bb89601a5349531912d0bd081c265dcc32d8de..406dca0834c2be249e94e4b86517f450fbc15f0c 100644
--- a/alib2data/src/grammar/ContextSensitive/NonContractingGrammar.h
+++ b/alib2data/src/grammar/ContextSensitive/NonContractingGrammar.h
@@ -616,5 +616,6 @@ struct type_details_retriever < grammar::NonContractingGrammar < SymbolType > >
 } /* namespace core */
 
 extern template class grammar::NonContractingGrammar < >;
+extern template class abstraction::ValueHolder < grammar::NonContractingGrammar < > >;
 extern template class registration::DenormalizationRegisterImpl < const grammar::NonContractingGrammar < > & >;
 extern template class registration::NormalizationRegisterImpl < grammar::NonContractingGrammar < > >;
diff --git a/alib2data/src/grammar/Regular/LeftLG.cpp b/alib2data/src/grammar/Regular/LeftLG.cpp
index 982af50878765529056b4945057efa95847b9a51..0b100276542fa0c11a2c5c7f3db0faae706f8fc0 100644
--- a/alib2data/src/grammar/Regular/LeftLG.cpp
+++ b/alib2data/src/grammar/Regular/LeftLG.cpp
@@ -4,6 +4,7 @@
 #include <registration/CastRegistration.hpp>
 
 template class grammar::LeftLG < >;
+template class abstraction::ValueHolder < grammar::LeftLG < > >;
 template class registration::DenormalizationRegisterImpl < const grammar::LeftLG < > & >;
 template class registration::NormalizationRegisterImpl < grammar::LeftLG < > >;
 
diff --git a/alib2data/src/grammar/Regular/LeftLG.h b/alib2data/src/grammar/Regular/LeftLG.h
index 87431f95424bf868424c229e547fa32dce83ba29..170305884a6c44a4d92fdd88aafa71ae383b2bc4 100644
--- a/alib2data/src/grammar/Regular/LeftLG.h
+++ b/alib2data/src/grammar/Regular/LeftLG.h
@@ -625,5 +625,6 @@ struct type_details_retriever < grammar::LeftLG < TerminalSymbolType, Nontermina
 } /* namespace core */
 
 extern template class grammar::LeftLG < >;
+extern template class abstraction::ValueHolder < grammar::LeftLG < > >;
 extern template class registration::DenormalizationRegisterImpl < const grammar::LeftLG < > & >;
 extern template class registration::NormalizationRegisterImpl < grammar::LeftLG < > >;
diff --git a/alib2data/src/grammar/Regular/LeftRG.cpp b/alib2data/src/grammar/Regular/LeftRG.cpp
index dda36f7890b3f969f06dfdb0dd3f97e452325f1a..9854e1c3b1b8047b4f7952de387f13c808a3e463 100644
--- a/alib2data/src/grammar/Regular/LeftRG.cpp
+++ b/alib2data/src/grammar/Regular/LeftRG.cpp
@@ -4,6 +4,7 @@
 #include <registration/CastRegistration.hpp>
 
 template class grammar::LeftRG < >;
+template class abstraction::ValueHolder < grammar::LeftRG < > >;
 template class registration::DenormalizationRegisterImpl < const grammar::LeftRG < > & >;
 template class registration::NormalizationRegisterImpl < grammar::LeftRG < > >;
 
diff --git a/alib2data/src/grammar/Regular/LeftRG.h b/alib2data/src/grammar/Regular/LeftRG.h
index 57e1c8f45b2b2d80c2503c6fa1706be891c0e23d..8fd62491793b00eb26c592dbe479bd2e8b09e392 100644
--- a/alib2data/src/grammar/Regular/LeftRG.h
+++ b/alib2data/src/grammar/Regular/LeftRG.h
@@ -641,5 +641,6 @@ struct type_details_retriever < grammar::LeftRG < TerminalSymbolType, Nontermina
 } /* namespace core */
 
 extern template class grammar::LeftRG < >;
+extern template class abstraction::ValueHolder < grammar::LeftRG < > >;
 extern template class registration::DenormalizationRegisterImpl < const grammar::LeftRG < > & >;
 extern template class registration::NormalizationRegisterImpl < grammar::LeftRG < > >;
diff --git a/alib2data/src/grammar/Regular/RightLG.cpp b/alib2data/src/grammar/Regular/RightLG.cpp
index a33a23d37622de7299e9d3f1bef3acdcc7a42764..0cc83db853edc8a5a38342d7d5c92d563ae32e7c 100644
--- a/alib2data/src/grammar/Regular/RightLG.cpp
+++ b/alib2data/src/grammar/Regular/RightLG.cpp
@@ -4,6 +4,7 @@
 #include <registration/CastRegistration.hpp>
 
 template class grammar::RightLG < >;
+template class abstraction::ValueHolder < grammar::RightLG < > >;
 template class registration::DenormalizationRegisterImpl < const grammar::RightLG < > & >;
 template class registration::NormalizationRegisterImpl < grammar::RightLG < > >;
 
diff --git a/alib2data/src/grammar/Regular/RightLG.h b/alib2data/src/grammar/Regular/RightLG.h
index 0092f2140d20e6c4f1f529ff3a61a2e7e2b4fdb4..de4325b6c58fcbbe4ddba885629e87459b6ec8a1 100644
--- a/alib2data/src/grammar/Regular/RightLG.h
+++ b/alib2data/src/grammar/Regular/RightLG.h
@@ -622,5 +622,6 @@ struct type_details_retriever < grammar::RightLG < TerminalSymbolType, Nontermin
 } /* namespace core */
 
 extern template class grammar::RightLG < >;
+extern template class abstraction::ValueHolder < grammar::RightLG < > >;
 extern template class registration::DenormalizationRegisterImpl < const grammar::RightLG < > & >;
 extern template class registration::NormalizationRegisterImpl < grammar::RightLG < > >;
diff --git a/alib2data/src/grammar/Regular/RightRG.cpp b/alib2data/src/grammar/Regular/RightRG.cpp
index da1676c4a7c4a603a806a730918476d07816db86..9e31bfc0fa4e13945fec2eb49d84a53ebc089385 100644
--- a/alib2data/src/grammar/Regular/RightRG.cpp
+++ b/alib2data/src/grammar/Regular/RightRG.cpp
@@ -4,6 +4,7 @@
 #include <registration/CastRegistration.hpp>
 
 template class grammar::RightRG < >;
+template class abstraction::ValueHolder < grammar::RightRG < > >;
 template class registration::DenormalizationRegisterImpl < const grammar::RightRG < > & >;
 template class registration::NormalizationRegisterImpl < grammar::RightRG < > >;
 
diff --git a/alib2data/src/grammar/Regular/RightRG.h b/alib2data/src/grammar/Regular/RightRG.h
index 2d1a82b6af9c7d9fda7777520be79e700f5edb6e..684244bbcc592b4622deb80b64fe56c67498d337 100644
--- a/alib2data/src/grammar/Regular/RightRG.h
+++ b/alib2data/src/grammar/Regular/RightRG.h
@@ -640,5 +640,6 @@ struct type_details_retriever < grammar::RightRG < TerminalSymbolType, Nontermin
 } /* namespace core */
 
 extern template class grammar::RightRG < >;
+extern template class abstraction::ValueHolder < grammar::RightRG < > >;
 extern template class registration::DenormalizationRegisterImpl < const grammar::RightRG < > & >;
 extern template class registration::NormalizationRegisterImpl < grammar::RightRG < > >;
diff --git a/alib2data/src/grammar/Unrestricted/ContextPreservingUnrestrictedGrammar.cpp b/alib2data/src/grammar/Unrestricted/ContextPreservingUnrestrictedGrammar.cpp
index bab470a32d8a571487085c70e20d134178bfe4c0..de4f706040da04f5533c7d53246b7754b102fedf 100644
--- a/alib2data/src/grammar/Unrestricted/ContextPreservingUnrestrictedGrammar.cpp
+++ b/alib2data/src/grammar/Unrestricted/ContextPreservingUnrestrictedGrammar.cpp
@@ -4,6 +4,7 @@
 #include <registration/CastRegistration.hpp>
 
 template class grammar::ContextPreservingUnrestrictedGrammar < >;
+template class abstraction::ValueHolder < grammar::ContextPreservingUnrestrictedGrammar < > >;
 template class registration::DenormalizationRegisterImpl < const grammar::ContextPreservingUnrestrictedGrammar < > & >;
 template class registration::NormalizationRegisterImpl < grammar::ContextPreservingUnrestrictedGrammar < > >;
 
diff --git a/alib2data/src/grammar/Unrestricted/ContextPreservingUnrestrictedGrammar.h b/alib2data/src/grammar/Unrestricted/ContextPreservingUnrestrictedGrammar.h
index b83a646a852071da06cc390a5dde4ddca5f18aec..354234fa3180fb6ac4e07499669afc786a93df55 100644
--- a/alib2data/src/grammar/Unrestricted/ContextPreservingUnrestrictedGrammar.h
+++ b/alib2data/src/grammar/Unrestricted/ContextPreservingUnrestrictedGrammar.h
@@ -592,5 +592,6 @@ struct type_details_retriever < grammar::ContextPreservingUnrestrictedGrammar <
 } /* namespace core */
 
 extern template class grammar::ContextPreservingUnrestrictedGrammar < >;
+extern template class abstraction::ValueHolder < grammar::ContextPreservingUnrestrictedGrammar < > >;
 extern template class registration::DenormalizationRegisterImpl < const grammar::ContextPreservingUnrestrictedGrammar < > & >;
 extern template class registration::NormalizationRegisterImpl < grammar::ContextPreservingUnrestrictedGrammar < > >;
diff --git a/alib2data/src/grammar/Unrestricted/UnrestrictedGrammar.cpp b/alib2data/src/grammar/Unrestricted/UnrestrictedGrammar.cpp
index 5fc178f0cd39c743eeb1925cff29153c6512c15e..c247a80344bf117cf73a22b32b597fa8a72d6f94 100644
--- a/alib2data/src/grammar/Unrestricted/UnrestrictedGrammar.cpp
+++ b/alib2data/src/grammar/Unrestricted/UnrestrictedGrammar.cpp
@@ -4,6 +4,7 @@
 #include <registration/CastRegistration.hpp>
 
 template class grammar::UnrestrictedGrammar < >;
+template class abstraction::ValueHolder < grammar::UnrestrictedGrammar < > >;
 template class registration::DenormalizationRegisterImpl < const grammar::UnrestrictedGrammar < > & >;
 template class registration::NormalizationRegisterImpl < grammar::UnrestrictedGrammar < > >;
 
diff --git a/alib2data/src/grammar/Unrestricted/UnrestrictedGrammar.h b/alib2data/src/grammar/Unrestricted/UnrestrictedGrammar.h
index 56e116dbbdd219e2c338a807e3387da32b5b80c5..b87c313eeaa41fcf7e0dd9d31835f9e562e48497 100644
--- a/alib2data/src/grammar/Unrestricted/UnrestrictedGrammar.h
+++ b/alib2data/src/grammar/Unrestricted/UnrestrictedGrammar.h
@@ -589,5 +589,6 @@ struct type_details_retriever < grammar::UnrestrictedGrammar < SymbolType > > {
 } /* namespace core */
 
 extern template class grammar::UnrestrictedGrammar < >;
+extern template class abstraction::ValueHolder < grammar::UnrestrictedGrammar < > >;
 extern template class registration::DenormalizationRegisterImpl < const grammar::UnrestrictedGrammar < > & >;
 extern template class registration::NormalizationRegisterImpl < grammar::UnrestrictedGrammar < > >;
diff --git a/alib2data/src/regexp/formal/FormalRegExp.cpp b/alib2data/src/regexp/formal/FormalRegExp.cpp
index 553aba7066ea062dc879e37480b91e1da81662a3..44b0b18fa812bd787741de742f6b5058b59452cb 100644
--- a/alib2data/src/regexp/formal/FormalRegExp.cpp
+++ b/alib2data/src/regexp/formal/FormalRegExp.cpp
@@ -5,6 +5,7 @@
 #include <registration/ValuePrinterRegistration.hpp>
 
 template class regexp::FormalRegExp < >;
+template class abstraction::ValueHolder < regexp::FormalRegExp < > >;
 template class registration::DenormalizationRegisterImpl < const regexp::FormalRegExp < > & >;
 template class registration::NormalizationRegisterImpl < regexp::FormalRegExp < > >;
 template class regexp::FormalRegExpStructure < DefaultSymbolType >;
diff --git a/alib2data/src/regexp/formal/FormalRegExp.h b/alib2data/src/regexp/formal/FormalRegExp.h
index 67f6586196f1ba5c37042c613b2b3ed58c67f7cc..28d83e453ed5f42906d2ebb336acd96dc3c4b218 100644
--- a/alib2data/src/regexp/formal/FormalRegExp.h
+++ b/alib2data/src/regexp/formal/FormalRegExp.h
@@ -309,5 +309,6 @@ struct type_details_retriever < regexp::FormalRegExp < SymbolType > > {
 } /* namespace core */
 
 extern template class regexp::FormalRegExp < >;
+extern template class abstraction::ValueHolder < regexp::FormalRegExp < > >;
 extern template class registration::DenormalizationRegisterImpl < const regexp::FormalRegExp < > & >;
 extern template class registration::NormalizationRegisterImpl < regexp::FormalRegExp < > >;
diff --git a/alib2data/src/regexp/unbounded/UnboundedRegExp.cpp b/alib2data/src/regexp/unbounded/UnboundedRegExp.cpp
index 08a00458b5c19595cce475ab16f91b918cd16379..f775c05429add68e4b63073d07beed027aa8b1e6 100644
--- a/alib2data/src/regexp/unbounded/UnboundedRegExp.cpp
+++ b/alib2data/src/regexp/unbounded/UnboundedRegExp.cpp
@@ -5,6 +5,7 @@
 #include <registration/ValuePrinterRegistration.hpp>
 
 template class regexp::UnboundedRegExp < >;
+template class abstraction::ValueHolder < regexp::UnboundedRegExp < > >;
 template class registration::DenormalizationRegisterImpl < const regexp::UnboundedRegExp < > & >;
 template class registration::NormalizationRegisterImpl < regexp::UnboundedRegExp < > >;
 
diff --git a/alib2data/src/regexp/unbounded/UnboundedRegExp.h b/alib2data/src/regexp/unbounded/UnboundedRegExp.h
index 52015009a9bbf3e9e96a6efba6846713437c47f3..4877f6c5c7b94eceddea73931e7e960512765140 100644
--- a/alib2data/src/regexp/unbounded/UnboundedRegExp.h
+++ b/alib2data/src/regexp/unbounded/UnboundedRegExp.h
@@ -311,5 +311,6 @@ struct type_details_retriever < regexp::UnboundedRegExp < SymbolType > > {
 } /* namespace core */
 
 extern template class regexp::UnboundedRegExp < >;
+extern template class abstraction::ValueHolder < regexp::UnboundedRegExp < > >;
 extern template class registration::DenormalizationRegisterImpl < const regexp::UnboundedRegExp < > & >;
 extern template class registration::NormalizationRegisterImpl < regexp::UnboundedRegExp < > >;
diff --git a/alib2data/src/rte/formal/FormalRTE.cpp b/alib2data/src/rte/formal/FormalRTE.cpp
index 909a5ee23613b1779413e08a2d0896ebbde7db5e..a369194a9877607795d6521301b57f60506a7924 100644
--- a/alib2data/src/rte/formal/FormalRTE.cpp
+++ b/alib2data/src/rte/formal/FormalRTE.cpp
@@ -4,6 +4,7 @@
 #include <registration/ValuePrinterRegistration.hpp>
 
 template class rte::FormalRTE < >;
+template class abstraction::ValueHolder < rte::FormalRTE < > >;
 template class registration::DenormalizationRegisterImpl < const rte::FormalRTE < > & >;
 template class registration::NormalizationRegisterImpl < rte::FormalRTE < > >;
 template class rte::FormalRTEStructure < DefaultSymbolType >;
diff --git a/alib2data/src/rte/formal/FormalRTE.h b/alib2data/src/rte/formal/FormalRTE.h
index 394aa1e37d89999f6a974ef63d26222a1ae9efab..123b4285bea056429a020b1ed22462c5cb2b1ea1 100644
--- a/alib2data/src/rte/formal/FormalRTE.h
+++ b/alib2data/src/rte/formal/FormalRTE.h
@@ -449,5 +449,6 @@ struct type_details_retriever < rte::FormalRTE < SymbolType > > {
 } /* namespace core */
 
 extern template class rte::FormalRTE < >;
+extern template class abstraction::ValueHolder < rte::FormalRTE < > >;
 extern template class registration::DenormalizationRegisterImpl < const rte::FormalRTE < > & >;
 extern template class registration::NormalizationRegisterImpl < rte::FormalRTE < > >;
diff --git a/alib2data/src/string/CyclicString.cpp b/alib2data/src/string/CyclicString.cpp
index 90a87ac5ed8de94c618f93f71f562e72115404f4..4b2b7297b6c8f18ab7a927bc535d5da6b3048137 100644
--- a/alib2data/src/string/CyclicString.cpp
+++ b/alib2data/src/string/CyclicString.cpp
@@ -4,6 +4,7 @@
 #include <registration/CastRegistration.hpp>
 
 template class string::CyclicString < >;
+template class abstraction::ValueHolder < string::CyclicString < > >;
 template class registration::DenormalizationRegisterImpl < const string::CyclicString < > & >;
 template class registration::NormalizationRegisterImpl < string::CyclicString < > >;
 
diff --git a/alib2data/src/string/CyclicString.h b/alib2data/src/string/CyclicString.h
index a173682037c5f9ac59ee9095946ad9a403a5efcf..ac3e00ff66d2130fe120e258745c034df64accc0 100644
--- a/alib2data/src/string/CyclicString.h
+++ b/alib2data/src/string/CyclicString.h
@@ -341,5 +341,6 @@ struct type_details_retriever < string::CyclicString < SymbolType > > {
 } /* namespace core */
 
 extern template class string::CyclicString < >;
+extern template class abstraction::ValueHolder < string::CyclicString < > >;
 extern template class registration::DenormalizationRegisterImpl < const string::CyclicString < > & >;
 extern template class registration::NormalizationRegisterImpl < string::CyclicString < > >;
diff --git a/alib2data/src/string/LinearString.cpp b/alib2data/src/string/LinearString.cpp
index 9b8762556e05842e3add804b4c81d307b66f7111..2831112034eeea1ccb7e08257f5687480be8a506 100644
--- a/alib2data/src/string/LinearString.cpp
+++ b/alib2data/src/string/LinearString.cpp
@@ -5,6 +5,7 @@
 #include <registration/ComponentRegistration.hpp>
 
 template class string::LinearString < >;
+template class abstraction::ValueHolder < string::LinearString < > >;
 template class registration::DenormalizationRegisterImpl < const string::LinearString < > & >;
 template class registration::NormalizationRegisterImpl < string::LinearString < > >;
 
diff --git a/alib2data/src/string/LinearString.h b/alib2data/src/string/LinearString.h
index 5f91a65d4efd72eedc8e4d1cb480d012ac54eeb9..910276dddfa9225c0efec32682c32961f5f21097 100644
--- a/alib2data/src/string/LinearString.h
+++ b/alib2data/src/string/LinearString.h
@@ -363,5 +363,6 @@ struct type_details_retriever < string::LinearString < SymbolType > > {
 } /* namespace core */
 
 extern template class string::LinearString < >;
+extern template class abstraction::ValueHolder < string::LinearString < > >;
 extern template class registration::DenormalizationRegisterImpl < const string::LinearString < > & >;
 extern template class registration::NormalizationRegisterImpl < string::LinearString < > >;
diff --git a/alib2data/src/string/WildcardLinearString.cpp b/alib2data/src/string/WildcardLinearString.cpp
index 40f9d91cccaf08c4b8b624b367a5ce72a4259a96..0beef00050830d4c9e300ad503b8620f0d366885 100644
--- a/alib2data/src/string/WildcardLinearString.cpp
+++ b/alib2data/src/string/WildcardLinearString.cpp
@@ -5,6 +5,7 @@
 #include <registration/ComponentRegistration.hpp>
 
 template class string::WildcardLinearString < >;
+template class abstraction::ValueHolder < string::WildcardLinearString < > >;
 template class registration::DenormalizationRegisterImpl < const string::WildcardLinearString < > & >;
 template class registration::NormalizationRegisterImpl < string::WildcardLinearString < > >;
 
diff --git a/alib2data/src/string/WildcardLinearString.h b/alib2data/src/string/WildcardLinearString.h
index c13b775cd94e2d72216ec84909fe459459d29b4c..41a98d4cca73645d38f4557c552e8286858ef69f 100644
--- a/alib2data/src/string/WildcardLinearString.h
+++ b/alib2data/src/string/WildcardLinearString.h
@@ -430,5 +430,6 @@ struct type_details_retriever < string::WildcardLinearString < SymbolType > > {
 } /* namespace core */
 
 extern template class string::WildcardLinearString < >;
+extern template class abstraction::ValueHolder < string::WildcardLinearString < > >;
 extern template class registration::DenormalizationRegisterImpl < const string::WildcardLinearString < > & >;
 extern template class registration::NormalizationRegisterImpl < string::WildcardLinearString < > >;
diff --git a/alib2data/src/tree/ranked/PostfixRankedTree.cpp b/alib2data/src/tree/ranked/PostfixRankedTree.cpp
index c667a374f059c7b543abd52a15decaa7adb724b8..c0e40b991dd637bad013467c2c877357524c8f04 100644
--- a/alib2data/src/tree/ranked/PostfixRankedTree.cpp
+++ b/alib2data/src/tree/ranked/PostfixRankedTree.cpp
@@ -5,6 +5,7 @@
 #include <registration/ComponentRegistration.hpp>
 
 template class tree::PostfixRankedTree < >;
+template class abstraction::ValueHolder < tree::PostfixRankedTree < > >;
 template class registration::DenormalizationRegisterImpl < const tree::PostfixRankedTree < > & >;
 template class registration::NormalizationRegisterImpl < tree::PostfixRankedTree < > >;
 
diff --git a/alib2data/src/tree/ranked/PostfixRankedTree.h b/alib2data/src/tree/ranked/PostfixRankedTree.h
index 53af8abe3211e4ee0cbddbb6bb263bc685d3df4c..e3c227897b634fbb31d05511bff6bc346dfa3441 100644
--- a/alib2data/src/tree/ranked/PostfixRankedTree.h
+++ b/alib2data/src/tree/ranked/PostfixRankedTree.h
@@ -350,5 +350,6 @@ struct type_details_retriever < tree::PostfixRankedTree < SymbolType > > {
 } /* namespace core */
 
 extern template class tree::PostfixRankedTree < >;
+extern template class abstraction::ValueHolder < tree::PostfixRankedTree < > >;
 extern template class registration::DenormalizationRegisterImpl < const tree::PostfixRankedTree < > & >;
 extern template class registration::NormalizationRegisterImpl < tree::PostfixRankedTree < > >;
diff --git a/alib2data/src/tree/ranked/PrefixRankedBarNonlinearPattern.cpp b/alib2data/src/tree/ranked/PrefixRankedBarNonlinearPattern.cpp
index 667bc8cc927d5744207dff133b47eec9883cf27e..def3032930b1ced090fafc91a1575f1b2d2f0df9 100644
--- a/alib2data/src/tree/ranked/PrefixRankedBarNonlinearPattern.cpp
+++ b/alib2data/src/tree/ranked/PrefixRankedBarNonlinearPattern.cpp
@@ -5,6 +5,7 @@
 #include <registration/ComponentRegistration.hpp>
 
 template class tree::PrefixRankedBarNonlinearPattern < >;
+template class abstraction::ValueHolder < tree::PrefixRankedBarNonlinearPattern < > >;
 template class registration::DenormalizationRegisterImpl < const tree::PrefixRankedBarNonlinearPattern < > & >;
 template class registration::NormalizationRegisterImpl < tree::PrefixRankedBarNonlinearPattern < > >;
 
diff --git a/alib2data/src/tree/ranked/PrefixRankedBarNonlinearPattern.h b/alib2data/src/tree/ranked/PrefixRankedBarNonlinearPattern.h
index eaf15ed5e65495e66dadfc12b7b3f3682465df52..7276ee23566297cf6962e15040d0604cbc1e2dfa 100644
--- a/alib2data/src/tree/ranked/PrefixRankedBarNonlinearPattern.h
+++ b/alib2data/src/tree/ranked/PrefixRankedBarNonlinearPattern.h
@@ -744,5 +744,6 @@ struct type_details_retriever < tree::PrefixRankedBarNonlinearPattern < SymbolTy
 } /* namespace core */
 
 extern template class tree::PrefixRankedBarNonlinearPattern < >;
+extern template class abstraction::ValueHolder < tree::PrefixRankedBarNonlinearPattern < > >;
 extern template class registration::DenormalizationRegisterImpl < const tree::PrefixRankedBarNonlinearPattern < > & >;
 extern template class registration::NormalizationRegisterImpl < tree::PrefixRankedBarNonlinearPattern < > >;
diff --git a/alib2data/src/tree/ranked/PrefixRankedBarPattern.cpp b/alib2data/src/tree/ranked/PrefixRankedBarPattern.cpp
index 999b90ba8928e3bbeb528662570f91aa493a38fa..a93161378f2679c7b4bdd150fad68e7a47f42c34 100644
--- a/alib2data/src/tree/ranked/PrefixRankedBarPattern.cpp
+++ b/alib2data/src/tree/ranked/PrefixRankedBarPattern.cpp
@@ -5,6 +5,7 @@
 #include <registration/ComponentRegistration.hpp>
 
 template class tree::PrefixRankedBarPattern < >;
+template class abstraction::ValueHolder < tree::PrefixRankedBarPattern < > >;
 template class registration::DenormalizationRegisterImpl < const tree::PrefixRankedBarPattern < > & >;
 template class registration::NormalizationRegisterImpl < tree::PrefixRankedBarPattern < > >;
 
diff --git a/alib2data/src/tree/ranked/PrefixRankedBarPattern.h b/alib2data/src/tree/ranked/PrefixRankedBarPattern.h
index 31b74e2f5dec1666957ef8b44fd782a9783132fa..98ff5dfcdb4f6ab2ad65d231f8ebaf3f53642a0c 100644
--- a/alib2data/src/tree/ranked/PrefixRankedBarPattern.h
+++ b/alib2data/src/tree/ranked/PrefixRankedBarPattern.h
@@ -586,5 +586,6 @@ struct type_details_retriever < tree::PrefixRankedBarPattern < SymbolType > > {
 } /* namespace core */
 
 extern template class tree::PrefixRankedBarPattern < >;
+extern template class abstraction::ValueHolder < tree::PrefixRankedBarPattern < > >;
 extern template class registration::DenormalizationRegisterImpl < const tree::PrefixRankedBarPattern < > & >;
 extern template class registration::NormalizationRegisterImpl < const tree::PrefixRankedBarPattern < > & >;
diff --git a/alib2data/src/tree/ranked/PrefixRankedBarTree.cpp b/alib2data/src/tree/ranked/PrefixRankedBarTree.cpp
index 6c34da21350bfc12e44a73c7b6d5d07a896e8748..a1717ae8c3b8794f97892d209e7b184827cb607c 100644
--- a/alib2data/src/tree/ranked/PrefixRankedBarTree.cpp
+++ b/alib2data/src/tree/ranked/PrefixRankedBarTree.cpp
@@ -5,6 +5,7 @@
 #include <registration/ComponentRegistration.hpp>
 
 template class tree::PrefixRankedBarTree < >;
+template class abstraction::ValueHolder < tree::PrefixRankedBarTree < > >;
 template class registration::DenormalizationRegisterImpl < const tree::PrefixRankedBarTree < > & >;
 template class registration::NormalizationRegisterImpl < tree::PrefixRankedBarTree < > >;
 
diff --git a/alib2data/src/tree/ranked/PrefixRankedBarTree.h b/alib2data/src/tree/ranked/PrefixRankedBarTree.h
index 16192dd4410220d8024becfcd25d55e6e3221bbd..254f7907aed96e343f1c4a853dca5e0525ac0f26 100644
--- a/alib2data/src/tree/ranked/PrefixRankedBarTree.h
+++ b/alib2data/src/tree/ranked/PrefixRankedBarTree.h
@@ -451,5 +451,6 @@ struct type_details_retriever < tree::PrefixRankedBarTree < SymbolType > > {
 } /* namespace core */
 
 extern template class tree::PrefixRankedBarTree < >;
+extern template class abstraction::ValueHolder < tree::PrefixRankedBarTree < > >;
 extern template class registration::DenormalizationRegisterImpl < const tree::PrefixRankedBarTree < > & >;
 extern template class registration::NormalizationRegisterImpl < tree::PrefixRankedBarTree < > >;
diff --git a/alib2data/src/tree/ranked/PrefixRankedExtendedPattern.cpp b/alib2data/src/tree/ranked/PrefixRankedExtendedPattern.cpp
index 158fd0ce1a986cbba8e2565da82a857af9bfc16b..cd14b9749a816db36605c6b4bc8d2ef95861c2ed 100644
--- a/alib2data/src/tree/ranked/PrefixRankedExtendedPattern.cpp
+++ b/alib2data/src/tree/ranked/PrefixRankedExtendedPattern.cpp
@@ -5,6 +5,7 @@
 #include <registration/ComponentRegistration.hpp>
 
 template class tree::PrefixRankedExtendedPattern < >;
+template class abstraction::ValueHolder < tree::PrefixRankedExtendedPattern < > >;
 template class registration::DenormalizationRegisterImpl < const tree::PrefixRankedExtendedPattern < > & >;
 template class registration::NormalizationRegisterImpl < tree::PrefixRankedExtendedPattern < > >;
 
diff --git a/alib2data/src/tree/ranked/PrefixRankedExtendedPattern.h b/alib2data/src/tree/ranked/PrefixRankedExtendedPattern.h
index b6c874d12c1ab6701233dcdd086850a34289dcef..338ea92facdebfe069a01793112b3bf02564972f 100644
--- a/alib2data/src/tree/ranked/PrefixRankedExtendedPattern.h
+++ b/alib2data/src/tree/ranked/PrefixRankedExtendedPattern.h
@@ -496,5 +496,6 @@ struct type_details_retriever < tree::PrefixRankedExtendedPattern < SymbolType >
 } /* namespace core */
 
 extern template class tree::PrefixRankedExtendedPattern < >;
+extern template class abstraction::ValueHolder < tree::PrefixRankedExtendedPattern < > >;
 extern template class registration::DenormalizationRegisterImpl < const tree::PrefixRankedExtendedPattern < > & >;
 extern template class registration::NormalizationRegisterImpl < tree::PrefixRankedExtendedPattern < > >;
diff --git a/alib2data/src/tree/ranked/PrefixRankedNonlinearPattern.cpp b/alib2data/src/tree/ranked/PrefixRankedNonlinearPattern.cpp
index 6a84f61717cf3ffe86d1031aed7109fdde168014..57a62e2a579e22c4cc2daf40930571999278a483 100644
--- a/alib2data/src/tree/ranked/PrefixRankedNonlinearPattern.cpp
+++ b/alib2data/src/tree/ranked/PrefixRankedNonlinearPattern.cpp
@@ -5,6 +5,7 @@
 #include <registration/ComponentRegistration.hpp>
 
 template class tree::PrefixRankedNonlinearPattern < >;
+template class abstraction::ValueHolder < tree::PrefixRankedNonlinearPattern < > >;
 template class registration::DenormalizationRegisterImpl < const tree::PrefixRankedNonlinearPattern < > & >;
 template class registration::NormalizationRegisterImpl < tree::PrefixRankedNonlinearPattern < > >;
 
diff --git a/alib2data/src/tree/ranked/PrefixRankedNonlinearPattern.h b/alib2data/src/tree/ranked/PrefixRankedNonlinearPattern.h
index 0e94954899b8890a24953e9182b8c8508d4cdf46..43a67ed0d98afaa5bfc7088b3733f4c6b1433d1e 100644
--- a/alib2data/src/tree/ranked/PrefixRankedNonlinearPattern.h
+++ b/alib2data/src/tree/ranked/PrefixRankedNonlinearPattern.h
@@ -543,5 +543,6 @@ struct type_details_retriever < tree::PrefixRankedNonlinearPattern < SymbolType
 } /* namespace core */
 
 extern template class tree::PrefixRankedNonlinearPattern < >;
+extern template class abstraction::ValueHolder < tree::PrefixRankedNonlinearPattern < > >;
 extern template class registration::DenormalizationRegisterImpl < const tree::PrefixRankedNonlinearPattern < > & >;
 extern template class registration::NormalizationRegisterImpl < tree::PrefixRankedNonlinearPattern < > >;
diff --git a/alib2data/src/tree/ranked/PrefixRankedPattern.cpp b/alib2data/src/tree/ranked/PrefixRankedPattern.cpp
index b0ab4fea25831f8c42df7be0853d5f742024b3db..620d46ff9ab98245da0f1cd8c7c6d8bc9c0a093a 100644
--- a/alib2data/src/tree/ranked/PrefixRankedPattern.cpp
+++ b/alib2data/src/tree/ranked/PrefixRankedPattern.cpp
@@ -5,6 +5,7 @@
 #include <registration/ComponentRegistration.hpp>
 
 template class tree::PrefixRankedPattern < >;
+template class abstraction::ValueHolder < tree::PrefixRankedPattern < > >;
 template class registration::DenormalizationRegisterImpl < const tree::PrefixRankedPattern < > & >;
 template class registration::NormalizationRegisterImpl < tree::PrefixRankedPattern < > >;
 
diff --git a/alib2data/src/tree/ranked/PrefixRankedPattern.h b/alib2data/src/tree/ranked/PrefixRankedPattern.h
index 3cd038d4706d9094da4708fa08a5eb839210c01b..826b8de07534de76c3c96f192cbb724f13212c4b 100644
--- a/alib2data/src/tree/ranked/PrefixRankedPattern.h
+++ b/alib2data/src/tree/ranked/PrefixRankedPattern.h
@@ -419,5 +419,6 @@ struct type_details_retriever < tree::PrefixRankedPattern < SymbolType > > {
 } /* namespace core */
 
 extern template class tree::PrefixRankedPattern < >;
+extern template class abstraction::ValueHolder < tree::PrefixRankedPattern < > >;
 extern template class registration::DenormalizationRegisterImpl < const tree::PrefixRankedPattern < > & >;
 extern template class registration::NormalizationRegisterImpl < tree::PrefixRankedPattern < > >;
diff --git a/alib2data/src/tree/ranked/PrefixRankedTree.cpp b/alib2data/src/tree/ranked/PrefixRankedTree.cpp
index 972275888c400812357b792e77d2307e09d1134a..c3972e95c17012762abadd1a349f36c927d681f5 100644
--- a/alib2data/src/tree/ranked/PrefixRankedTree.cpp
+++ b/alib2data/src/tree/ranked/PrefixRankedTree.cpp
@@ -5,6 +5,7 @@
 #include <registration/ComponentRegistration.hpp>
 
 template class tree::PrefixRankedTree < >;
+template class abstraction::ValueHolder < tree::PrefixRankedTree < > >;
 template class registration::DenormalizationRegisterImpl < const tree::PrefixRankedTree < > & >;
 template class registration::NormalizationRegisterImpl < tree::PrefixRankedTree < > >;
 
diff --git a/alib2data/src/tree/ranked/PrefixRankedTree.h b/alib2data/src/tree/ranked/PrefixRankedTree.h
index 8b808e891e4672e5f7be5081bda3c9090f1f0fcd..3b9b3b59efea25e8285f5ab168cf081853b9ca25 100644
--- a/alib2data/src/tree/ranked/PrefixRankedTree.h
+++ b/alib2data/src/tree/ranked/PrefixRankedTree.h
@@ -357,5 +357,6 @@ struct type_details_retriever < tree::PrefixRankedTree < SymbolType > > {
 } /* namespace core */
 
 extern template class tree::PrefixRankedTree < >;
+extern template class abstraction::ValueHolder < tree::PrefixRankedTree < > >;
 extern template class registration::DenormalizationRegisterImpl < const tree::PrefixRankedTree < > & >;
 extern template class registration::NormalizationRegisterImpl < tree::PrefixRankedTree < > >;
diff --git a/alib2data/src/tree/ranked/RankedExtendedPattern.cpp b/alib2data/src/tree/ranked/RankedExtendedPattern.cpp
index 88e4cd3311ec9e5e2fde60e6d24556e07f11cefe..02c701fcb1630c570402c2856c6a65fc716c06a7 100644
--- a/alib2data/src/tree/ranked/RankedExtendedPattern.cpp
+++ b/alib2data/src/tree/ranked/RankedExtendedPattern.cpp
@@ -5,6 +5,7 @@
 #include <registration/ComponentRegistration.hpp>
 
 template class tree::RankedExtendedPattern < >;
+template class abstraction::ValueHolder < tree::RankedExtendedPattern < > >;
 template class registration::DenormalizationRegisterImpl < const tree::RankedExtendedPattern < > & >;
 template class registration::NormalizationRegisterImpl < tree::RankedExtendedPattern < > >;
 
diff --git a/alib2data/src/tree/ranked/RankedExtendedPattern.h b/alib2data/src/tree/ranked/RankedExtendedPattern.h
index b3dc94cf9e49a5204cf8217e390a33c0d8163e18..564d7e477303c6bce06803bb763f3c617dcd24d0 100644
--- a/alib2data/src/tree/ranked/RankedExtendedPattern.h
+++ b/alib2data/src/tree/ranked/RankedExtendedPattern.h
@@ -492,5 +492,6 @@ struct type_details_retriever < tree::RankedExtendedPattern < SymbolType > > {
 } /* namespace core */
 
 extern template class tree::RankedExtendedPattern < >;
+extern template class abstraction::ValueHolder < tree::RankedExtendedPattern < > >;
 extern template class registration::DenormalizationRegisterImpl < const tree::RankedExtendedPattern < > & >;
 extern template class registration::NormalizationRegisterImpl < tree::RankedExtendedPattern < > >;
diff --git a/alib2data/src/tree/ranked/RankedNonlinearPattern.cpp b/alib2data/src/tree/ranked/RankedNonlinearPattern.cpp
index 7705bc4219263c93fcee14cbcdb2fc7532281d39..c1dc1a0725bcc9fb8913acd3728482ba6686c4bc 100644
--- a/alib2data/src/tree/ranked/RankedNonlinearPattern.cpp
+++ b/alib2data/src/tree/ranked/RankedNonlinearPattern.cpp
@@ -5,6 +5,7 @@
 #include <registration/ComponentRegistration.hpp>
 
 template class tree::RankedNonlinearPattern < >;
+template class abstraction::ValueHolder < tree::RankedNonlinearPattern < > >;
 template class registration::DenormalizationRegisterImpl < const tree::RankedNonlinearPattern < > & >;
 template class registration::NormalizationRegisterImpl < tree::RankedNonlinearPattern < > >;
 
diff --git a/alib2data/src/tree/ranked/RankedNonlinearPattern.h b/alib2data/src/tree/ranked/RankedNonlinearPattern.h
index d9585e38d94262a79aa8af21cddb24b69c512c5a..1f14795c5a7a72bd03ab918272acef248ec3d0f4 100644
--- a/alib2data/src/tree/ranked/RankedNonlinearPattern.h
+++ b/alib2data/src/tree/ranked/RankedNonlinearPattern.h
@@ -501,5 +501,6 @@ struct type_details_retriever < tree::RankedNonlinearPattern < SymbolType > > {
 } /* namespace core */
 
 extern template class tree::RankedNonlinearPattern < >;
+extern template class abstraction::ValueHolder < tree::RankedNonlinearPattern < > >;
 extern template class registration::DenormalizationRegisterImpl < const tree::RankedNonlinearPattern < > & >;
 extern template class registration::NormalizationRegisterImpl < tree::RankedNonlinearPattern < > >;
diff --git a/alib2data/src/tree/ranked/RankedPattern.cpp b/alib2data/src/tree/ranked/RankedPattern.cpp
index 30b1eac42012a5b491859f34115d3161393b3160..402de67b1fbf38a285ec4b34ea479c781e869173 100644
--- a/alib2data/src/tree/ranked/RankedPattern.cpp
+++ b/alib2data/src/tree/ranked/RankedPattern.cpp
@@ -5,6 +5,7 @@
 #include <registration/ComponentRegistration.hpp>
 
 template class tree::RankedPattern < >;
+template class abstraction::ValueHolder < tree::RankedPattern < > >;
 template class registration::DenormalizationRegisterImpl < const tree::RankedPattern < > & >;
 template class registration::NormalizationRegisterImpl < tree::RankedPattern < > >;
 
diff --git a/alib2data/src/tree/ranked/RankedPattern.h b/alib2data/src/tree/ranked/RankedPattern.h
index 8c73a689f82edfbefc4fe6802455feb0bc9084f5..5fa1538ac80fb9e0e7d4f72d9e9401921b3bf7c2 100644
--- a/alib2data/src/tree/ranked/RankedPattern.h
+++ b/alib2data/src/tree/ranked/RankedPattern.h
@@ -413,5 +413,6 @@ struct type_details_retriever < tree::RankedPattern < SymbolType > > {
 } /* namespace core */
 
 extern template class tree::RankedPattern < >;
+extern template class abstraction::ValueHolder < tree::RankedPattern < > >;
 extern template class registration::DenormalizationRegisterImpl < const tree::RankedPattern < > & >;
 extern template class registration::NormalizationRegisterImpl < tree::RankedPattern < > >;
diff --git a/alib2data/src/tree/ranked/RankedTree.cpp b/alib2data/src/tree/ranked/RankedTree.cpp
index 9bc4c9c0363f6d942006e890beee91a644860191..1dc7384acf401e39192b9ef986ab32bb703bbbd8 100644
--- a/alib2data/src/tree/ranked/RankedTree.cpp
+++ b/alib2data/src/tree/ranked/RankedTree.cpp
@@ -5,6 +5,7 @@
 #include <registration/ComponentRegistration.hpp>
 
 template class tree::RankedTree < >;
+template class abstraction::ValueHolder < tree::RankedTree < > >;
 template class registration::DenormalizationRegisterImpl < const tree::RankedTree < > & >;
 template class registration::NormalizationRegisterImpl < tree::RankedTree < > >;
 
diff --git a/alib2data/src/tree/ranked/RankedTree.h b/alib2data/src/tree/ranked/RankedTree.h
index 17a490326cac5f572766971f995dcf5b98ee3f19..7ddf4ee66393e07c15e0f80e500aef293b8a3d09 100644
--- a/alib2data/src/tree/ranked/RankedTree.h
+++ b/alib2data/src/tree/ranked/RankedTree.h
@@ -379,5 +379,6 @@ struct type_details_retriever < tree::RankedTree < SymbolType > > {
 } /* namespace core */
 
 extern template class tree::RankedTree < >;
+extern template class abstraction::ValueHolder < tree::RankedTree < > >;
 extern template class registration::DenormalizationRegisterImpl < const tree::RankedTree < > & >;
 extern template class registration::NormalizationRegisterImpl < tree::RankedTree < > >;
diff --git a/alib2data/src/tree/ranked/UnorderedRankedPattern.cpp b/alib2data/src/tree/ranked/UnorderedRankedPattern.cpp
index c346d716be273c4b48735b08a2acad80ed7cfc27..16de3f27726f15e93bbb737eea575f0b3e4a72af 100644
--- a/alib2data/src/tree/ranked/UnorderedRankedPattern.cpp
+++ b/alib2data/src/tree/ranked/UnorderedRankedPattern.cpp
@@ -5,6 +5,7 @@
 #include <registration/ComponentRegistration.hpp>
 
 template class tree::UnorderedRankedPattern < >;
+template class abstraction::ValueHolder < tree::UnorderedRankedPattern < > >;
 template class registration::DenormalizationRegisterImpl < const tree::UnorderedRankedPattern < > & >;
 template class registration::NormalizationRegisterImpl < tree::UnorderedRankedPattern < > >;
 
diff --git a/alib2data/src/tree/ranked/UnorderedRankedPattern.h b/alib2data/src/tree/ranked/UnorderedRankedPattern.h
index 43f7af707b3123258e38b92326c93518bd5dec77..2ee317e399b2555e4cc662a17cfc07ffb5fa30ba 100644
--- a/alib2data/src/tree/ranked/UnorderedRankedPattern.h
+++ b/alib2data/src/tree/ranked/UnorderedRankedPattern.h
@@ -413,5 +413,6 @@ struct type_details_retriever < tree::UnorderedRankedPattern < SymbolType > > {
 } /* namespace core */
 
 extern template class tree::UnorderedRankedPattern < >;
+extern template class abstraction::ValueHolder < tree::UnorderedRankedPattern < > >;
 extern template class registration::DenormalizationRegisterImpl < const tree::UnorderedRankedPattern < > & >;
 extern template class registration::NormalizationRegisterImpl < tree::UnorderedRankedPattern < > >;
diff --git a/alib2data/src/tree/ranked/UnorderedRankedTree.cpp b/alib2data/src/tree/ranked/UnorderedRankedTree.cpp
index 7e7e99dc4dc6c170fe43f0db0b386aab3551505d..33ae79db5ec53750a9e11d8c0b38dae079060e99 100644
--- a/alib2data/src/tree/ranked/UnorderedRankedTree.cpp
+++ b/alib2data/src/tree/ranked/UnorderedRankedTree.cpp
@@ -5,6 +5,7 @@
 #include <registration/ComponentRegistration.hpp>
 
 template class tree::UnorderedRankedTree < >;
+template class abstraction::ValueHolder < tree::UnorderedRankedTree < > >;
 template class registration::DenormalizationRegisterImpl < const tree::UnorderedRankedTree < > & >;
 template class registration::NormalizationRegisterImpl < tree::UnorderedRankedTree < > >;
 
diff --git a/alib2data/src/tree/ranked/UnorderedRankedTree.h b/alib2data/src/tree/ranked/UnorderedRankedTree.h
index 3ad7f1b7d5b06a90cc88765f36f0a88c7a8fe0f8..f77de1bcd851338488b3f7e660653b1d3e413cf1 100644
--- a/alib2data/src/tree/ranked/UnorderedRankedTree.h
+++ b/alib2data/src/tree/ranked/UnorderedRankedTree.h
@@ -355,5 +355,6 @@ struct type_details_retriever < tree::UnorderedRankedTree < SymbolType > > {
 } /* namespace core */
 
 extern template class tree::UnorderedRankedTree < >;
+extern template class abstraction::ValueHolder < tree::UnorderedRankedTree < > >;
 extern template class registration::DenormalizationRegisterImpl < const tree::UnorderedRankedTree < > & >;
 extern template class registration::NormalizationRegisterImpl < tree::UnorderedRankedTree < > >;
diff --git a/alib2data/src/tree/unranked/PrefixBarTree.cpp b/alib2data/src/tree/unranked/PrefixBarTree.cpp
index 33441d39f46c36f5f57097f0dd8ad9bd6dcaca48..c61ea7cbe1df05c6b459329a4841d591100acca4 100644
--- a/alib2data/src/tree/unranked/PrefixBarTree.cpp
+++ b/alib2data/src/tree/unranked/PrefixBarTree.cpp
@@ -5,6 +5,7 @@
 #include <registration/ComponentRegistration.hpp>
 
 template class tree::PrefixBarTree < >;
+template class abstraction::ValueHolder < tree::PrefixBarTree < > >;
 template class registration::DenormalizationRegisterImpl < const tree::PrefixBarTree < > & >;
 template class registration::NormalizationRegisterImpl < tree::PrefixBarTree < > >;
 
diff --git a/alib2data/src/tree/unranked/PrefixBarTree.h b/alib2data/src/tree/unranked/PrefixBarTree.h
index ad336ca3be3f63dd0a07d87550f27e206f7bcc2e..c001060e9d3d33e0f4b9aba2a14d0497c368fc65 100644
--- a/alib2data/src/tree/unranked/PrefixBarTree.h
+++ b/alib2data/src/tree/unranked/PrefixBarTree.h
@@ -422,5 +422,6 @@ struct type_details_retriever < tree::PrefixBarTree < SymbolType > > {
 } /* namespace core */
 
 extern template class tree::PrefixBarTree < >;
+extern template class abstraction::ValueHolder < tree::PrefixBarTree < > >;
 extern template class registration::DenormalizationRegisterImpl < const tree::PrefixBarTree < > & >;
 extern template class registration::NormalizationRegisterImpl < tree::PrefixBarTree < > >;
diff --git a/alib2data/src/tree/unranked/UnorderedUnrankedPattern.cpp b/alib2data/src/tree/unranked/UnorderedUnrankedPattern.cpp
index 517329a4a2629c566a4da84e8285a1f3c76af0d5..340c869fac019d5149a7157081a439cdd13c17be 100644
--- a/alib2data/src/tree/unranked/UnorderedUnrankedPattern.cpp
+++ b/alib2data/src/tree/unranked/UnorderedUnrankedPattern.cpp
@@ -5,6 +5,7 @@
 #include <registration/ComponentRegistration.hpp>
 
 template class tree::UnorderedUnrankedPattern < >;
+template class abstraction::ValueHolder < tree::UnorderedUnrankedPattern < > >;
 template class registration::DenormalizationRegisterImpl < const tree::UnorderedUnrankedPattern < > & >;
 template class registration::NormalizationRegisterImpl < tree::UnorderedUnrankedPattern < > >;
 
diff --git a/alib2data/src/tree/unranked/UnorderedUnrankedPattern.h b/alib2data/src/tree/unranked/UnorderedUnrankedPattern.h
index 7e0fc4c14a480e76606bb5410167395ad4d42fee..cc4bedd16038d97e5cf1612340a77e928cd95bff 100644
--- a/alib2data/src/tree/unranked/UnorderedUnrankedPattern.h
+++ b/alib2data/src/tree/unranked/UnorderedUnrankedPattern.h
@@ -443,5 +443,6 @@ struct type_details_retriever < tree::UnorderedUnrankedPattern < SymbolType > >
 } /* namespace core */
 
 extern template class tree::UnorderedUnrankedPattern < >;
+extern template class abstraction::ValueHolder < tree::UnorderedUnrankedPattern < > >;
 extern template class registration::DenormalizationRegisterImpl < const tree::UnorderedUnrankedPattern < > & >;
 extern template class registration::NormalizationRegisterImpl < tree::UnorderedUnrankedPattern < > >;
diff --git a/alib2data/src/tree/unranked/UnorderedUnrankedTree.cpp b/alib2data/src/tree/unranked/UnorderedUnrankedTree.cpp
index d02c031e8e131bfac5122ae70bf96c08ed02ea54..756838e24af2d270ee0715e815eb9e006b3f736d 100644
--- a/alib2data/src/tree/unranked/UnorderedUnrankedTree.cpp
+++ b/alib2data/src/tree/unranked/UnorderedUnrankedTree.cpp
@@ -5,6 +5,7 @@
 #include <registration/ComponentRegistration.hpp>
 
 template class tree::UnorderedUnrankedTree < >;
+template class abstraction::ValueHolder < tree::UnorderedUnrankedTree < > >;
 template class registration::DenormalizationRegisterImpl < const tree::UnorderedUnrankedTree < > & >;
 template class registration::NormalizationRegisterImpl < tree::UnorderedUnrankedTree < > >;
 
diff --git a/alib2data/src/tree/unranked/UnorderedUnrankedTree.h b/alib2data/src/tree/unranked/UnorderedUnrankedTree.h
index 216359a43a033411a4de093d84773b62f41bf126..b3e2ae3ce544433f90920a840986cf8b78a4d085 100644
--- a/alib2data/src/tree/unranked/UnorderedUnrankedTree.h
+++ b/alib2data/src/tree/unranked/UnorderedUnrankedTree.h
@@ -334,5 +334,6 @@ struct type_details_retriever < tree::UnorderedUnrankedTree < SymbolType > > {
 } /* namespace core */
 
 extern template class tree::UnorderedUnrankedTree < >;
+extern template class abstraction::ValueHolder < tree::UnorderedUnrankedTree < > >;
 extern template class registration::DenormalizationRegisterImpl < const tree::UnorderedUnrankedTree < > & >;
 extern template class registration::NormalizationRegisterImpl < tree::UnorderedUnrankedTree < > >;
diff --git a/alib2data/src/tree/unranked/UnrankedExtendedPattern.cpp b/alib2data/src/tree/unranked/UnrankedExtendedPattern.cpp
index e4220e36eb537e2dd8555c6ade644a6e4d5b1faa..93512d4c82cbc4c7a6ad3ea9d925c0c799d9171a 100644
--- a/alib2data/src/tree/unranked/UnrankedExtendedPattern.cpp
+++ b/alib2data/src/tree/unranked/UnrankedExtendedPattern.cpp
@@ -5,6 +5,7 @@
 #include <registration/ComponentRegistration.hpp>
 
 template class tree::UnrankedExtendedPattern < >;
+template class abstraction::ValueHolder < tree::UnrankedExtendedPattern < > >;
 template class registration::DenormalizationRegisterImpl < const tree::UnrankedExtendedPattern < > & >;
 template class registration::NormalizationRegisterImpl < tree::UnrankedExtendedPattern < > >;
 
diff --git a/alib2data/src/tree/unranked/UnrankedExtendedPattern.h b/alib2data/src/tree/unranked/UnrankedExtendedPattern.h
index 42877dbf18fdd0ba9a0f4c06dc11f31567c2aee7..193a8b953093c8d6806f6fb6fb2fea8288a431cc 100644
--- a/alib2data/src/tree/unranked/UnrankedExtendedPattern.h
+++ b/alib2data/src/tree/unranked/UnrankedExtendedPattern.h
@@ -505,5 +505,6 @@ struct type_details_retriever < tree::UnrankedExtendedPattern < SymbolType > > {
 } /* namespace core */
 
 extern template class tree::UnrankedExtendedPattern < >;
+extern template class abstraction::ValueHolder < tree::UnrankedExtendedPattern < > >;
 extern template class registration::DenormalizationRegisterImpl < const tree::UnrankedExtendedPattern < > & >;
 extern template class registration::NormalizationRegisterImpl < tree::UnrankedExtendedPattern < > >;
diff --git a/alib2data/src/tree/unranked/UnrankedNonlinearPattern.cpp b/alib2data/src/tree/unranked/UnrankedNonlinearPattern.cpp
index a25c2dc701bb9d93cb64fb56e9e63e777c9931b3..4b77bf33163888cb1e2610b05134b40ade813b95 100644
--- a/alib2data/src/tree/unranked/UnrankedNonlinearPattern.cpp
+++ b/alib2data/src/tree/unranked/UnrankedNonlinearPattern.cpp
@@ -5,6 +5,7 @@
 #include <registration/ComponentRegistration.hpp>
 
 template class tree::UnrankedNonlinearPattern < >;
+template class abstraction::ValueHolder < tree::UnrankedNonlinearPattern < > >;
 template class registration::DenormalizationRegisterImpl < const tree::UnrankedNonlinearPattern < > & >;
 template class registration::NormalizationRegisterImpl < tree::UnrankedNonlinearPattern < > >;
 
diff --git a/alib2data/src/tree/unranked/UnrankedNonlinearPattern.h b/alib2data/src/tree/unranked/UnrankedNonlinearPattern.h
index 6270b45d2d72ee8ad5ee595c66d66c191b2bb307..8b87dff0f6194a61cb72f4702d3c8f3d653033a2 100644
--- a/alib2data/src/tree/unranked/UnrankedNonlinearPattern.h
+++ b/alib2data/src/tree/unranked/UnrankedNonlinearPattern.h
@@ -533,5 +533,6 @@ struct type_details_retriever < tree::UnrankedNonlinearPattern < SymbolType > >
 } /* namespace core */
 
 extern template class tree::UnrankedNonlinearPattern < >;
+extern template class abstraction::ValueHolder < tree::UnrankedNonlinearPattern < > >;
 extern template class registration::DenormalizationRegisterImpl < const tree::UnrankedNonlinearPattern < > & >;
 extern template class registration::NormalizationRegisterImpl < tree::UnrankedNonlinearPattern < > >;
diff --git a/alib2data/src/tree/unranked/UnrankedPattern.cpp b/alib2data/src/tree/unranked/UnrankedPattern.cpp
index f6307138f636370c19e214e394f8e4c6ce270e27..dd74c11d03680cebe447b1ba1ec0558f84986c84 100644
--- a/alib2data/src/tree/unranked/UnrankedPattern.cpp
+++ b/alib2data/src/tree/unranked/UnrankedPattern.cpp
@@ -5,6 +5,7 @@
 #include <registration/ComponentRegistration.hpp>
 
 template class tree::UnrankedPattern < >;
+template class abstraction::ValueHolder < tree::UnrankedPattern < > >;
 template class registration::DenormalizationRegisterImpl < const tree::UnrankedPattern < > & >;
 template class registration::NormalizationRegisterImpl < tree::UnrankedPattern < > >;
 
diff --git a/alib2data/src/tree/unranked/UnrankedPattern.h b/alib2data/src/tree/unranked/UnrankedPattern.h
index 412587936a8da4a7820b4c88ef0f6ff62bf487ac..255f4132139495c98c60da5d8bf021ce0c3b77e3 100644
--- a/alib2data/src/tree/unranked/UnrankedPattern.h
+++ b/alib2data/src/tree/unranked/UnrankedPattern.h
@@ -446,5 +446,6 @@ struct type_details_retriever < tree::UnrankedPattern < SymbolType > > {
 } /* namespace core */
 
 extern template class tree::UnrankedPattern < >;
+extern template class abstraction::ValueHolder < tree::UnrankedPattern < > >;
 extern template class registration::DenormalizationRegisterImpl < const tree::UnrankedPattern < > & >;
 extern template class registration::NormalizationRegisterImpl < tree::UnrankedPattern < > >;
diff --git a/alib2data/src/tree/unranked/UnrankedTree.cpp b/alib2data/src/tree/unranked/UnrankedTree.cpp
index f3026c41fd15a3a50cf9cc7d47e7e4e1db215582..2d1c6f319e70d03f1447c88abfafeabf4d20b89b 100644
--- a/alib2data/src/tree/unranked/UnrankedTree.cpp
+++ b/alib2data/src/tree/unranked/UnrankedTree.cpp
@@ -5,6 +5,7 @@
 #include <registration/ComponentRegistration.hpp>
 
 template class tree::UnrankedTree < >;
+template class abstraction::ValueHolder < tree::UnrankedTree < > >;
 template class registration::DenormalizationRegisterImpl < const tree::UnrankedTree < > & >;
 template class registration::NormalizationRegisterImpl < tree::UnrankedTree < > >;
 
diff --git a/alib2data/src/tree/unranked/UnrankedTree.h b/alib2data/src/tree/unranked/UnrankedTree.h
index d2618dff9973e52a2385db5aae086d914bfff4db..77265aca7e0ffa2d5a6de7c070a174a170d2be38 100644
--- a/alib2data/src/tree/unranked/UnrankedTree.h
+++ b/alib2data/src/tree/unranked/UnrankedTree.h
@@ -334,5 +334,6 @@ struct type_details_retriever < tree::UnrankedTree < SymbolType > > {
 } /* namespace core */
 
 extern template class tree::UnrankedTree < >;
+extern template class abstraction::ValueHolder < tree::UnrankedTree < > >;
 extern template class registration::DenormalizationRegisterImpl < const tree::UnrankedTree < > & >;
 extern template class registration::NormalizationRegisterImpl < tree::UnrankedTree < > >;