Index: src/Parser/DeclarationNode.cc
===================================================================
--- src/Parser/DeclarationNode.cc	(revision 615a0968e86dc63f469d72baac2918969c809f3f)
+++ src/Parser/DeclarationNode.cc	(revision 409433da030307400e44f630352481dbddd6b3d2)
@@ -10,6 +10,6 @@
 // Created On       : Sat May 16 12:34:05 2015
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Fri Mar 17 08:46:05 2017
-// Update Count     : 1017
+// Last Modified On : Fri Mar 17 15:46:33 2017
+// Update Count     : 1018
 //
 
@@ -36,5 +36,5 @@
 const char * DeclarationNode::signednessNames[] = { "signed", "unsigned", "NoSignednessNames" };
 const char * DeclarationNode::lengthNames[] = { "short", "long", "long long", "NoLengthNames" };
-const char * DeclarationNode::aggregateNames[] = { "struct", "union", "context", "NoAggregateNames" };
+const char * DeclarationNode::aggregateNames[] = { "struct", "union", "trait", "coroutine", "monitor", "thread", "NoAggregateNames" };
 const char * DeclarationNode::typeClassNames[] = { "otype", "dtype", "ftype", "NoTypeClassNames" };
 const char * DeclarationNode::builtinTypeNames[] = { "__builtin_va_list", "NoBuiltinTypeNames" };
Index: src/Parser/ParseNode.h
===================================================================
--- src/Parser/ParseNode.h	(revision 615a0968e86dc63f469d72baac2918969c809f3f)
+++ src/Parser/ParseNode.h	(revision 409433da030307400e44f630352481dbddd6b3d2)
@@ -10,6 +10,6 @@
 // Created On       : Sat May 16 13:28:16 2015
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Thu Mar 16 08:32:43 2017
-// Update Count     : 776
+// Last Modified On : Fri Mar 17 15:42:18 2017
+// Update Count     : 777
 //
 
@@ -205,5 +205,5 @@
 	enum Signedness { Signed, Unsigned, NoSignedness };
 	enum Length { Short, Long, LongLong, NoLength };
-	enum Aggregate { Struct, Union, Trait, NoAggregate };
+	enum Aggregate { Struct, Union, Trait, Coroutine, Monitor, Thread, NoAggregate };
 	enum TypeClass { Otype, Dtype, Ftype, Ttype, NoTypeClass };
 	enum BuiltinType { Valist, Zero, One, NoBuiltinType };
Index: src/Parser/TypeData.cc
===================================================================
--- src/Parser/TypeData.cc	(revision 615a0968e86dc63f469d72baac2918969c809f3f)
+++ src/Parser/TypeData.cc	(revision 409433da030307400e44f630352481dbddd6b3d2)
@@ -10,6 +10,6 @@
 // Created On       : Sat May 16 15:12:51 2015
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Fri Mar 17 08:46:10 2017
-// Update Count     : 560
+// Last Modified On : Fri Mar 17 15:52:43 2017
+// Update Count     : 563
 //
 
@@ -619,5 +619,8 @@
 	switch ( td->aggregate.kind ) {
 	  case DeclarationNode::Struct:
-		at = new StructDecl( *td->aggregate.name, attributes );
+	  case DeclarationNode::Coroutine:
+	  case DeclarationNode::Monitor:
+	  case DeclarationNode::Thread:
+		at = new StructDecl( *td->aggregate.name, td->aggregate.kind, attributes );
 		buildForall( td->aggregate.params, at->get_parameters() );
 		break;
@@ -656,4 +659,7 @@
 			  switch ( type->aggregate.kind ) {
 				case DeclarationNode::Struct:
+				case DeclarationNode::Coroutine:
+				case DeclarationNode::Monitor:
+				case DeclarationNode::Thread:
 				  ret = new StructInstType( buildQualifiers( type ), (StructDecl *)typedecl );
 				  break;
@@ -671,4 +677,7 @@
 			  switch ( type->aggregate.kind ) {
 				case DeclarationNode::Struct:
+				case DeclarationNode::Coroutine:
+				case DeclarationNode::Monitor:
+				case DeclarationNode::Thread:
 				  ret = new StructInstType( buildQualifiers( type ), *type->aggregate.name );
 				  break;
@@ -703,4 +712,7 @@
 		  switch ( type->aggregate.kind ) {
 			case DeclarationNode::Struct:
+			case DeclarationNode::Coroutine:
+			case DeclarationNode::Monitor:
+			case DeclarationNode::Thread:
 			  ret = new StructInstType( buildQualifiers( type ), *type->aggregate.name );
 			  break;
Index: src/Parser/parser.yy
===================================================================
--- src/Parser/parser.yy	(revision 615a0968e86dc63f469d72baac2918969c809f3f)
+++ src/Parser/parser.yy	(revision 409433da030307400e44f630352481dbddd6b3d2)
@@ -10,6 +10,6 @@
 // Created On       : Sat Sep  1 20:22:55 2001
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Thu Mar 16 12:57:03 2017
-// Update Count     : 2316
+// Last Modified On : Fri Mar 17 15:42:22 2017
+// Update Count     : 2317
 //
 
@@ -1638,9 +1638,9 @@
 		{ $$ = DeclarationNode::Union; }
 	| COROUTINE
-		{ $$ = DeclarationNode::Struct; }
+		{ $$ = DeclarationNode::Coroutine; }
 	| MONITOR
-		{ $$ = DeclarationNode::Struct; }
+		{ $$ = DeclarationNode::Monitor; }
 	| THREAD
-		{ $$ = DeclarationNode::Struct; }
+		{ $$ = DeclarationNode::Thread; }
 	;
 
