Index: src/Parser/DeclarationNode.cc
===================================================================
--- src/Parser/DeclarationNode.cc	(revision 21bdce2f785fa2d0231fc5534594e333365d6c7e)
+++ src/Parser/DeclarationNode.cc	(revision 2f0a06782533aa6fcd6240724fe8d0dce348e8c6)
@@ -10,6 +10,6 @@
 // Created On       : Sat May 16 12:34:05 2015
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Mon May 21 20:36:45 2018
-// Update Count     : 1073
+// Last Modified On : Tue May 22 08:39:29 2018
+// Update Count     : 1074
 //
 
@@ -32,5 +32,5 @@
 #include "SynTree/Type.h"          // for Type, Type::StorageClasses, Type::...
 #include "TypeData.h"              // for TypeData, TypeData::Aggregate_t
-#include "TypedefTable.h"          // for TypedefTable, TypedefTable::kind_t...
+#include "TypedefTable.h"          // for TypedefTable
 
 class Initializer;
@@ -547,5 +547,5 @@
 					type->aggregate.params = q->type->forall; // make polymorphic type
 					// change implicit typedef from TYPEDEFname to TYPEGENname
-					typedefTable.changeKind( *type->aggregate.name, TypedefTable::TG );
+					typedefTable.changeKind( *type->aggregate.name, TYPEGENname );
 				} // if
 			} else {									// not polymorphic
Index: src/Parser/TypedefTable.cc
===================================================================
--- src/Parser/TypedefTable.cc	(revision 21bdce2f785fa2d0231fc5534594e333365d6c7e)
+++ src/Parser/TypedefTable.cc	(revision 2f0a06782533aa6fcd6240724fe8d0dce348e8c6)
@@ -10,11 +10,11 @@
 // Created On       : Sat May 16 15:20:13 2015
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Mon May 21 20:55:24 2018
-// Update Count     : 117
+// Last Modified On : Tue May 22 08:40:01 2018
+// Update Count     : 121
 //
 
 
 #include "TypedefTable.h"
-#include <cassert>               // for assert
+#include <cassert>										// for assert
 
 #if 0
@@ -25,5 +25,5 @@
 #endif
 
-using namespace std;
+using namespace std;									// string, iostream
 
 TypedefTable::~TypedefTable() {
@@ -38,13 +38,13 @@
 
 int TypedefTable::isKind( const string & identifier ) const {
+	KindTable::const_iterator posn = kindTable.find( identifier );
 	// Name lookup defaults to identifier, and then the identifier's kind is set by the parser.
-	KindTable::const_iterator posn = kindTable.find( identifier );
 	if ( posn == kindTable.end() ) return IDENTIFIER;
 	return posn->second;
 } // TypedefTable::isKind
 
-void TypedefTable::changeKind( const string & identifier, kind_t kind ) {
+void TypedefTable::changeKind( const string & identifier, int kind ) {
 	KindTable::iterator posn = kindTable.find( identifier );
-	if ( posn != kindTable.end() ) posn->second = kind;
+	if ( posn != kindTable.end() ) posn->second = kind;	// exists => update
 } // TypedefTable::changeKind
 
@@ -54,16 +54,14 @@
 void TypedefTable::makeTypedef( const string & name ) {
 	if ( ! typedefTable.exists( name ) ) {
-		typedefTable.addToEnclosingScope( name, TypedefTable::TD );
+		typedefTable.addToEnclosingScope( name, TYPEDEFname );
 	} // if
 } // TypedefTable::makeTypedef
 
-void TypedefTable::addToEnclosingScope( const std::string & identifier, kind_t kind ) {
+void TypedefTable::addToEnclosingScope( const std::string & identifier, int kind ) {
 	assert( kindTable.currentScope() >= 1 );
 	auto scope = kindTable.currentScope() - 1;
 	debugPrint( "Adding " << identifier << " as kind " << kind << " scope " << scope << endl );
 	auto ret = kindTable.insertAt( scope, identifier, kind );
-	if ( ! ret.second ) { // already an element there
-		ret.first->second = kind; // update existing element with new kind
-	} // if
+	if ( ! ret.second ) ret.first->second = kind;		// exists => update
 } // TypedefTable::addToEnclosingScope
 
Index: src/Parser/TypedefTable.h
===================================================================
--- src/Parser/TypedefTable.h	(revision 21bdce2f785fa2d0231fc5534594e333365d6c7e)
+++ src/Parser/TypedefTable.h	(revision 2f0a06782533aa6fcd6240724fe8d0dce348e8c6)
@@ -10,6 +10,6 @@
 // Created On       : Sat May 16 15:24:36 2015
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Mon May 21 20:28:01 2018
-// Update Count     : 76
+// Last Modified On : Tue May 22 08:39:29 2018
+// Update Count     : 77
 //
 
@@ -23,8 +23,5 @@
 
 class TypedefTable {
-  public:
-	enum kind_t { ID = IDENTIFIER, TD = TYPEDEFname, TG = TYPEGENname };
-  private:
-	typedef ScopedMap< std::string, kind_t > KindTable;
+	typedef ScopedMap< std::string, int > KindTable;
 	KindTable kindTable;	
   public:
@@ -33,7 +30,7 @@
 	bool exists( const std::string & identifier );
 	int isKind( const std::string & identifier ) const;
-	void changeKind( const std::string & identifier, kind_t kind );
+	void changeKind( const std::string & identifier, int kind );
 	void makeTypedef( const std::string & name );
-	void addToEnclosingScope( const std::string & identifier, kind_t kind );
+	void addToEnclosingScope( const std::string & identifier, int kind );
 
 	void enterScope();
Index: src/Parser/parser.yy
===================================================================
--- src/Parser/parser.yy	(revision 21bdce2f785fa2d0231fc5534594e333365d6c7e)
+++ src/Parser/parser.yy	(revision 2f0a06782533aa6fcd6240724fe8d0dce348e8c6)
@@ -10,6 +10,6 @@
 // Created On       : Sat Sep  1 20:22:55 2001
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Mon May 21 21:44:01 2018
-// Update Count     : 3350
+// Last Modified On : Tue May 22 08:41:57 2018
+// Update Count     : 3353
 //
 
@@ -1419,15 +1419,15 @@
 	TYPEDEF cfa_variable_specifier
 		{
-			typedefTable.addToEnclosingScope( *$2->name, TypedefTable::TD );
+			typedefTable.addToEnclosingScope( *$2->name, TYPEDEFname );
 			$$ = $2->addTypedef();
 		}
 	| TYPEDEF cfa_function_specifier
 		{
-			typedefTable.addToEnclosingScope( *$2->name, TypedefTable::TD );
+			typedefTable.addToEnclosingScope( *$2->name, TYPEDEFname );
 			$$ = $2->addTypedef();
 		}
 	| cfa_typedef_declaration pop ',' push no_attr_identifier
 		{
-			typedefTable.addToEnclosingScope( *$5, TypedefTable::TD );
+			typedefTable.addToEnclosingScope( *$5, TYPEDEFname );
 			$$ = $1->appendList( $1->cloneType( $5 ) );
 		}
@@ -1440,25 +1440,25 @@
 	TYPEDEF type_specifier declarator
 		{
-			typedefTable.addToEnclosingScope( *$3->name, TypedefTable::TD );
+			typedefTable.addToEnclosingScope( *$3->name, TYPEDEFname );
 			$$ = $3->addType( $2 )->addTypedef();
 		}
 	| typedef_declaration pop ',' push declarator
 		{
-			typedefTable.addToEnclosingScope( *$5->name, TypedefTable::TD );
+			typedefTable.addToEnclosingScope( *$5->name, TYPEDEFname );
 			$$ = $1->appendList( $1->cloneBaseType( $5 )->addTypedef() );
 		}
 	| type_qualifier_list TYPEDEF type_specifier declarator // remaining OBSOLESCENT (see 2 )
 		{
-			typedefTable.addToEnclosingScope( *$4->name, TypedefTable::TD );
+			typedefTable.addToEnclosingScope( *$4->name, TYPEDEFname );
 			$$ = $4->addType( $3 )->addQualifiers( $1 )->addTypedef();
 		}
 	| type_specifier TYPEDEF declarator
 		{
-			typedefTable.addToEnclosingScope( *$3->name, TypedefTable::TD );
+			typedefTable.addToEnclosingScope( *$3->name, TYPEDEFname );
 			$$ = $3->addType( $1 )->addTypedef();
 		}
 	| type_specifier TYPEDEF type_qualifier_list declarator
 		{
-			typedefTable.addToEnclosingScope( *$4->name, TypedefTable::TD );
+			typedefTable.addToEnclosingScope( *$4->name, TYPEDEFname );
 			$$ = $4->addQualifiers( $1 )->addTypedef()->addType( $1 );
 		}
@@ -1491,10 +1491,10 @@
 //	 declarator asm_name_opt initializer_opt
 //		{
-//			typedefTable.addToEnclosingScope( TypedefTable::ID );
+//			typedefTable.addToEnclosingScope( IDENTIFIER );
 //			$$ = ( $2->addType( $1 ))->addAsmName( $3 )->addInitializer( $4 );
 //		}
 //	| declaring_list ',' attribute_list_opt declarator asm_name_opt initializer_opt
 //		{
-//			typedefTable.addToEnclosingScope( TypedefTable::ID );
+//			typedefTable.addToEnclosingScope( IDENTIFIER );
 //			$$ = $1->appendList( $1->cloneBaseType( $4->addAsmName( $5 )->addInitializer( $6 ) ) );
 //		}
@@ -1812,5 +1812,5 @@
 		{
 			typedefTable.makeTypedef( *$3 );			// create typedef
-			if ( forall ) typedefTable.changeKind( *$3, TypedefTable::TG ); // possibly update
+			if ( forall ) typedefTable.changeKind( *$3, TYPEGENname ); // possibly update
 			forall = false;								// reset
 		}
@@ -1826,5 +1826,5 @@
 		{
 			typedefTable.makeTypedef( *$3 );
-			if ( forall ) typedefTable.changeKind( *$3, TypedefTable::TG ); // possibly update
+			if ( forall ) typedefTable.changeKind( *$3, TYPEGENname ); // possibly update
 			forall = false;								// reset
 			$$ = DeclarationNode::newAggregate( $1, $3, nullptr, nullptr, false )->addQualifiers( $2 );
@@ -2187,5 +2187,5 @@
 type_parameter:											// CFA
 	type_class no_attr_identifier_or_type_name
-		{ typedefTable.addToEnclosingScope( *$2, TypedefTable::TD ); }
+		{ typedefTable.addToEnclosingScope( *$2, TYPEDEFname ); }
 	  type_initializer_opt assertion_list_opt
 		{ $$ = DeclarationNode::newTypeParam( $1, $2 )->addTypeInitializer( $4 )->addAssertions( $5 ); }
@@ -2256,10 +2256,10 @@
 	no_attr_identifier_or_type_name
 		{
-			typedefTable.addToEnclosingScope( *$1, TypedefTable::TD );
+			typedefTable.addToEnclosingScope( *$1, TYPEDEFname );
 			$$ = DeclarationNode::newTypeDecl( $1, 0 );
 		}
 	| no_attr_identifier_or_type_name '(' push type_parameter_list pop ')'
 		{
-			typedefTable.addToEnclosingScope( *$1, TypedefTable::TG );
+			typedefTable.addToEnclosingScope( *$1, TYPEGENname );
 			$$ = DeclarationNode::newTypeDecl( $1, $4 );
 		}
@@ -2731,7 +2731,6 @@
 paren_type:
 	typedef
-		{ // hide type name by variable name
-			typedefTable.addToEnclosingScope( *$1->name, TypedefTable::ID );
-		}
+		// hide type name in enclosing scope by variable name
+		{ typedefTable.addToEnclosingScope( *$1->name, IDENTIFIER ); }
 	| '(' paren_type ')'
 		{ $$ = $2; }
