diff --git a/src/language/ASTNodeDataTypeBuilder.cpp b/src/language/ASTNodeDataTypeBuilder.cpp
index cfdc0187c0564c9f73b022cac5bb84977d555ccc..b30adf6649dffbb0ba1a719e73d9eb01f020e56c 100644
--- a/src/language/ASTNodeDataTypeBuilder.cpp
+++ b/src/language/ASTNodeDataTypeBuilder.cpp
@@ -170,6 +170,9 @@ ASTNodeDataTypeBuilder::_buildNodeDataTypes(ASTNode& n)
                 << ") and " << n.children[1]->string() << " (" << dataTypeName(type_1) << ')' << std::ends;
         throw parse_error(message.str(), n.begin());
       }
+    } else if (n.is<language::function_evaluation>()) {
+      std::cout << rang::fgB::red << "returned type of function evaluation is incorrect" << rang::style::reset << "\n";
+      n.m_data_type = ASTNodeDataType::double_t;
     }
   }
 }
diff --git a/src/language/ASTNodeExpressionBuilder.cpp b/src/language/ASTNodeExpressionBuilder.cpp
index f7157005e6d209fcc0ca23481285b3b83b5ac3aa..9f0a6f7eb8ef2d5fcdee10da3d122b381fb5598a 100644
--- a/src/language/ASTNodeExpressionBuilder.cpp
+++ b/src/language/ASTNodeExpressionBuilder.cpp
@@ -28,7 +28,13 @@ ASTNodeExpressionBuilder::_buildExpression(ASTNode& n)
     ASTNodeAffectationExpressionBuilder{n};
 
   } else if (n.is<language::let_declaration>()) {
-    std::cerr << rang::fgB::red << "\"Let expression\" is not defined correctly" << rang::style::reset << '\n';
+    std::cerr << rang::fgB::red << "\"let expression\" is not defined correctly (declaration should be removed)"
+              << rang::style::reset << '\n';
+    n.m_node_processor = std::make_unique<FakeProcessor>();
+    return;
+
+  } else if (n.is<language::function_evaluation>()) {
+    std::cerr << rang::fgB::red << "\"function evaluation\" is not defined yet" << rang::style::reset << '\n';
     n.m_node_processor = std::make_unique<FakeProcessor>();
     return;