diff --git a/src/language/ASTNode.hpp b/src/language/ASTNode.hpp
index 80f47e696d2e50ce8fcdb40131326cd9770d8ce9..54e47efc33233566b3803b4a0729a4c08722025c 100644
--- a/src/language/ASTNode.hpp
+++ b/src/language/ASTNode.hpp
@@ -5,6 +5,7 @@
 #include <PugsMacros.hpp>
 
 #include <ASTNodeDataType.hpp>
+#include <ASTNodeDataVariant.hpp>
 
 #include <pegtl/contrib/parse_tree.hpp>
 
diff --git a/src/language/ASTNodeDataType.hpp b/src/language/ASTNodeDataType.hpp
index 91714da952304e77f6a50291221d14a8fba2f615..b6ae2642dddb18803a0528e60384c385c0c639e9 100644
--- a/src/language/ASTNodeDataType.hpp
+++ b/src/language/ASTNodeDataType.hpp
@@ -1,8 +1,7 @@
-#ifndef AST_NODE_DATATYPE_HPP
-#define AST_NODE_DATATYPE_HPP
+#ifndef AST_NODE_DATA_TYPE_HPP
+#define AST_NODE_DATA_TYPE_HPP
 
 #include <string>
-#include <variant>
 
 enum class ASTNodeDataType
 {
@@ -20,6 +19,4 @@ std::string dataTypeName(const ASTNodeDataType& data_type);
 
 ASTNodeDataType dataTypePromotion(const ASTNodeDataType& data_type_1, const ASTNodeDataType& data_type_2);
 
-using ASTNodeDataVariant = std::variant<std::monostate, bool, uint64_t, int64_t, double, std::string>;
-
-#endif   // AST_NODE_DATATYPE_HPP
+#endif   // AST_NODE_DATA_TYPE_HPP
diff --git a/src/language/ASTNodeDataVariant.hpp b/src/language/ASTNodeDataVariant.hpp
new file mode 100644
index 0000000000000000000000000000000000000000..8572eb5fa45e5fd571862089959070cdf25011aa
--- /dev/null
+++ b/src/language/ASTNodeDataVariant.hpp
@@ -0,0 +1,8 @@
+#ifndef AST_NODE_DATA_VARIANT_HPP
+#define AST_NODE_DATA_VARIANT_HPP
+
+#include <variant>
+
+using ASTNodeDataVariant = std::variant<std::monostate, bool, uint64_t, int64_t, double, std::string>;
+
+#endif // AST_NODE_DATA_VARIANT_HPP