diff --git a/src/language/modules/MeshModule.cpp b/src/language/modules/MeshModule.cpp
index f0fce9aaba03ce5274b1809cd5db081d52aaaba5..81ee9b240339766a4899529166fbfe2d45a4d8bb 100644
--- a/src/language/modules/MeshModule.cpp
+++ b/src/language/modules/MeshModule.cpp
@@ -16,9 +16,6 @@
 #include <array>
 #include <cstdio>
 
-template <>
-inline ASTNodeDataType ast_node_data_type_from<std::shared_ptr<IMesh>> = {ASTNodeDataType::type_id_t, "mesh"};
-
 template <typename T>
 class MeshTransformation;
 template <typename OutputType, typename... InputType>
diff --git a/src/language/modules/MeshModule.hpp b/src/language/modules/MeshModule.hpp
index 33aa4b92d88576fdd69b4ab70aaa6afbeff3c3ba..2fa8ade7479d9248782301af5104dc3c2a5a7f8b 100644
--- a/src/language/modules/MeshModule.hpp
+++ b/src/language/modules/MeshModule.hpp
@@ -2,8 +2,14 @@
 #define MESH_MODULE_HPP
 
 #include <language/modules/BuiltinModule.hpp>
+#include <language/utils/ASTNodeDataTypeTraits.hpp>
 #include <utils/PugsMacros.hpp>
 
+struct IMesh;
+
+template <>
+inline ASTNodeDataType ast_node_data_type_from<std::shared_ptr<IMesh>> = {ASTNodeDataType::type_id_t, "mesh"};
+
 class MeshModule : public BuiltinModule
 {
  public: