diff --git a/tests/test_ASTNodeDataTypeBuilder.cpp b/tests/test_ASTNodeDataTypeBuilder.cpp
index a39f3f8348c0234997569bfa7596b17cee0ae8ab..5faacdbf3593cdc38cb8cb1922e92593fbd06860 100644
--- a/tests/test_ASTNodeDataTypeBuilder.cpp
+++ b/tests/test_ASTNodeDataTypeBuilder.cpp
@@ -25,6 +25,21 @@
 
 TEST_CASE("ASTNodeDataTypeBuilder", "[language]")
 {
+  SECTION("module")
+  {
+    std::string_view data = R"(
+import a_module_name;
+)";
+
+    std::string_view result = R"(
+(root:void)
+ `-(language::import_instruction:void)
+     `-(language::module_name:string)
+)";
+
+    CHECK_AST(data, result);
+  }
+
   SECTION("integer")
   {
     std::string_view data = R"(
@@ -100,6 +115,42 @@ false;
     CHECK_AST(data, result);
   }
 
+  SECTION("let declaration")
+  {
+    SECTION("scalar functions")
+    {
+      std::string_view data = R"(
+let f : R -> R, x -> x;
+let g : R*R -> R, (x,y) -> x+y;
+)";
+
+      std::string_view result = R"(
+(root:void)
+ +-(language::let_declaration:void)
+ |   `-(language::name:f:function)
+ `-(language::let_declaration:void)
+     `-(language::name:g:function)
+)";
+
+      CHECK_AST(data, result);
+    }
+
+    SECTION("scalar functions")
+    {
+      std::string_view data = R"(
+let f : R -> R, (x) -> x;
+)";
+
+      std::string_view result = R"(
+(root:void)
+ `-(language::let_declaration:void)
+     `-(language::name:f:function)
+)";
+#warning finish this test
+      //      CHECK_AST(data, result);
+    }
+  }
+
   SECTION("ostream")
   {
     std::string_view data = R"(