diff --git a/src/language/PEGGrammar.hpp b/src/language/PEGGrammar.hpp
index 0e98c2b4bf710b8e86563cabfc0b58dc45f820ff..aa6698083c9db141ce3134a5ab850da35ff46dc6 100644
--- a/src/language/PEGGrammar.hpp
+++ b/src/language/PEGGrammar.hpp
@@ -72,6 +72,7 @@ struct B_set : TAO_PEGTL_KEYWORD("B"){};
 struct N_set : TAO_PEGTL_KEYWORD("N"){};
 struct Z_set : TAO_PEGTL_KEYWORD("Z"){};
 struct R_set : TAO_PEGTL_KEYWORD("R"){};
+struct empty_set : TAO_PEGTL_KEYWORD("void"){};
 
 struct string_type : TAO_PEGTL_KEYWORD("string") {};
 
@@ -90,6 +91,7 @@ struct tuple_type_specifier :  sor<try_catch< open_parent, simple_type_specifier
 				   if_must< at< open_parent >, raise< simple_type_specifier >, until< eof > > >{};
 
 struct TYPE_SPECIFIER : seq< sor<simple_type_specifier, tuple_type_specifier>, ignored >{};
+struct EMPTY_SET : seq<empty_set, ignored >{};
 
 struct type_expression : list_must< TYPE_SPECIFIER, seq< ignored, one< '*' >, ignored > >{};
 struct TYPE_EXPRESSION : seq< type_expression, ignored >{};
@@ -262,7 +264,8 @@ struct name_list : seq< open_parent, list_must< NAME, COMMA >, close_parent >{};
 
 struct function_definition : seq< sor< name_list, NAME >, RIGHT_ARROW, sor< expression_list, expression > >{};
 
-struct fct_declaration : seq< LET, NAME, COLUMN, type_mapping, COMMA, function_definition >{};
+struct fct_declaration : sor< seq< LET, NAME, COLUMN, type_mapping, COMMA, function_definition >,
+			      seq< LET, EMPTY_SET, COLUMN, type_mapping, COMMA, EMPTY_SET, RIGHT_ARROW, sor< expression_list, expression >  >>{};
 
 struct open_brace : seq< one< '{' >, ignored >{};
 struct close_brace : seq< one< '}' >, ignored >{};