Index: src/Parser/parser.yy
===================================================================
--- src/Parser/parser.yy	(revision 1f771fcd9da4bad646684d7c7b5c0c793ee8f5fb)
+++ src/Parser/parser.yy	(revision d800676cf9dcb4402f8b91c21cf9befd9330b2f0)
@@ -10,6 +10,6 @@
 // Created On       : Sat Sep  1 20:22:55 2001
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Tue Mar 21 19:01:00 2023
-// Update Count     : 5990
+// Last Modified On : Wed Mar 22 21:26:01 2023
+// Update Count     : 6002
 //
 
@@ -270,4 +270,12 @@
 	SemanticError( yylloc, ::toString( "Identifier \"", identifier, "\" cannot appear before a ", kind, ".\n"
 				   "Possible cause is misspelled storage/CV qualifier, misspelled typename, or missing generic parameter." ) );
+} // IdentifierBeforeType
+
+static bool TypedefForall( DeclarationNode * decl ) {
+	if ( decl->type->forall || (decl->type->kind == TypeData::Aggregate && decl->type->aggregate.params) ) {
+		SemanticError( yylloc, "forall qualifier in typedef is currently unimplemented." );
+		return true;
+	} // if
+	return false;
 } // IdentifierBeforeType
 
@@ -1958,7 +1966,7 @@
 	TYPEDEF type_specifier declarator
 		{
-			// if type_specifier is an anon aggregate => name 
 			typedefTable.addToEnclosingScope( *$3->name, TYPEDEFname, "4" );
-			$$ = $3->addType( $2 )->addTypedef();		// watchout frees $2 and $3
+			if ( TypedefForall( $2 ) ) $$ = nullptr;
+			else $$ = $3->addType( $2 )->addTypedef();		// watchout frees $2 and $3
 		}
 	| typedef_declaration pop ',' push declarator
@@ -1970,15 +1978,18 @@
 		{
 			typedefTable.addToEnclosingScope( *$4->name, TYPEDEFname, "6" );
-			$$ = $4->addQualifiers( $1 )->addType( $3 )->addTypedef();
+			if ( TypedefForall( $1 ) ) $$ = nullptr;
+			else $$ = $4->addQualifiers( $1 )->addType( $3 )->addTypedef();
 		}
 	| type_specifier TYPEDEF declarator
 		{
 			typedefTable.addToEnclosingScope( *$3->name, TYPEDEFname, "7" );
-			$$ = $3->addType( $1 )->addTypedef();
+			if ( TypedefForall( $1 ) ) $$ = nullptr;
+			else $$ = $3->addType( $1 )->addTypedef();
 		}
 	| type_specifier TYPEDEF type_qualifier_list declarator
 		{
 			typedefTable.addToEnclosingScope( *$4->name, TYPEDEFname, "8" );
-			$$ = $4->addQualifiers( $1 )->addType( $1 )->addTypedef();
+			if ( TypedefForall( $3 ) ) $$ = nullptr;
+			else $$ = $4->addQualifiers( $1 )->addType( $1 )->addTypedef();
 		}
 	;
