diff --git a/alib2data/src/grammar/Grammar.h b/alib2data/src/grammar/Grammar.h
index ad68385b4df46c888f7ca94cd4eb7bfeaa8400e4..311e15757f7dc708fb1b9625beac99b0c2461a1d 100644
--- a/alib2data/src/grammar/Grammar.h
+++ b/alib2data/src/grammar/Grammar.h
@@ -11,6 +11,8 @@
 #include <base/WrapperBase.hpp>
 #include "GrammarBase.h"
 
+#include <type_traits>
+
 namespace grammar {
 
 /**
@@ -27,6 +29,9 @@ public:
 	}
 };
 
+template < class T >
+using SymbolTypeOfGrammar = typename std::decay < decltype (std::declval<T>().getNonterminalAlphabet()) >::type::value_type;
+
 } /* namespace grammar */
 
 #endif /* GRAMMAR_H_ */