Index: src/SymTab/AggregateTable.h
===================================================================
--- src/SymTab/AggregateTable.h	(revision 540ddb7d0104114dad454c7e4ba18fbd5d9a1c69)
+++ src/SymTab/AggregateTable.h	(revision b63e3760197cb5f480cf1cdfd5886fdd0411d103)
@@ -10,6 +10,6 @@
 // Created On       : Sun May 17 16:17:26 2015
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Sun May 17 16:19:29 2015
-// Update Count     : 4
+// Last Modified On : Wed Mar  2 17:31:00 2016
+// Update Count     : 5
 //
 
@@ -42,5 +42,5 @@
 	typedef StackTable< EnumDecl, AggregateTableConflictFunction< EnumDecl > > EnumTable;
 	typedef StackTable< UnionDecl, AggregateTableConflictFunction< UnionDecl > > UnionTable;
-	typedef StackTable< ContextDecl, AggregateTableConflictFunction< ContextDecl > > ContextTable;
+	typedef StackTable< TraitDecl, AggregateTableConflictFunction< TraitDecl > > TraitTable;
 } // namespace SymTab
 
Index: src/SymTab/FixFunction.cc
===================================================================
--- src/SymTab/FixFunction.cc	(revision 540ddb7d0104114dad454c7e4ba18fbd5d9a1c69)
+++ src/SymTab/FixFunction.cc	(revision b63e3760197cb5f480cf1cdfd5886fdd0411d103)
@@ -10,6 +10,6 @@
 // Created On       : Sun May 17 16:19:49 2015
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Sun May 17 16:22:54 2015
-// Update Count     : 2
+// Last Modified On : Wed Mar  2 17:31:10 2016
+// Update Count     : 3
 //
 
@@ -61,5 +61,5 @@
 	}
 
-	Type * FixFunction::mutate(ContextInstType *aggregateUseType) {
+	Type * FixFunction::mutate(TraitInstType *aggregateUseType) {
 		return aggregateUseType;
 	}
Index: src/SymTab/FixFunction.h
===================================================================
--- src/SymTab/FixFunction.h	(revision 540ddb7d0104114dad454c7e4ba18fbd5d9a1c69)
+++ src/SymTab/FixFunction.h	(revision b63e3760197cb5f480cf1cdfd5886fdd0411d103)
@@ -10,6 +10,6 @@
 // Created On       : Sun May 17 17:02:08 2015
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Sun May 17 17:03:43 2015
-// Update Count     : 2
+// Last Modified On : Wed Mar  2 17:34:06 2016
+// Update Count     : 3
 //
 
@@ -38,5 +38,5 @@
 		virtual Type* mutate(UnionInstType *aggregateUseType);
 		virtual Type* mutate(EnumInstType *aggregateUseType);
-		virtual Type* mutate(ContextInstType *aggregateUseType);
+		virtual Type* mutate(TraitInstType *aggregateUseType);
 		virtual Type* mutate(TypeInstType *aggregateUseType);
 		virtual Type* mutate(TupleType *tupleType);
Index: src/SymTab/ImplementationType.cc
===================================================================
--- src/SymTab/ImplementationType.cc	(revision 540ddb7d0104114dad454c7e4ba18fbd5d9a1c69)
+++ src/SymTab/ImplementationType.cc	(revision b63e3760197cb5f480cf1cdfd5886fdd0411d103)
@@ -10,6 +10,6 @@
 // Created On       : Sun May 17 21:32:01 2015
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Sun May 17 21:34:40 2015
-// Update Count     : 2
+// Last Modified On : Wed Mar  2 17:31:20 2016
+// Update Count     : 3
 //
 
@@ -37,5 +37,5 @@
 		virtual void visit(UnionInstType *aggregateUseType);
 		virtual void visit(EnumInstType *aggregateUseType);
-		virtual void visit(ContextInstType *aggregateUseType);
+		virtual void visit(TraitInstType *aggregateUseType);
 		virtual void visit(TypeInstType *aggregateUseType);
 		virtual void visit(TupleType *tupleType);
@@ -96,5 +96,5 @@
 	}
 
-	void ImplementationType::visit(ContextInstType *aggregateUseType) {
+	void ImplementationType::visit(TraitInstType *aggregateUseType) {
 	}
 
Index: src/SymTab/Indexer.cc
===================================================================
--- src/SymTab/Indexer.cc	(revision 540ddb7d0104114dad454c7e4ba18fbd5d9a1c69)
+++ src/SymTab/Indexer.cc	(revision b63e3760197cb5f480cf1cdfd5886fdd0411d103)
@@ -9,7 +9,7 @@
 // Author           : Richard C. Bilson
 // Created On       : Sun May 17 21:37:33 2015
-// Last Modified By : Rob Schluntz
-// Last Modified On : Wed Aug 05 13:52:42 2015
-// Update Count     : 10
+// Last Modified By : Peter A. Buhr
+// Last Modified On : Wed Mar  2 17:31:29 2016
+// Update Count     : 11
 //
 
@@ -143,5 +143,5 @@
 	}
 
-	void Indexer::visit( ContextDecl *aggregateDecl ) {
+	void Indexer::visit( TraitDecl *aggregateDecl ) {
 		enterScope();
 		acceptAll( aggregateDecl->get_parameters(), *this );
@@ -293,5 +293,5 @@
 
 
-	void Indexer::visit( ContextInstType *contextInst ) {
+	void Indexer::visit( TraitInstType *contextInst ) {
 		acceptAll( contextInst->get_parameters(), *this );
 		acceptAll( contextInst->get_members(), *this );
@@ -350,5 +350,5 @@
 	}
 
-	ContextDecl  * Indexer::lookupContext( const std::string &id ) const {
+	TraitDecl  * Indexer::lookupTrait( const std::string &id ) const {
 		return contextTable.lookup( id );
 	}
Index: src/SymTab/Indexer.h
===================================================================
--- src/SymTab/Indexer.h	(revision 540ddb7d0104114dad454c7e4ba18fbd5d9a1c69)
+++ src/SymTab/Indexer.h	(revision b63e3760197cb5f480cf1cdfd5886fdd0411d103)
@@ -9,7 +9,7 @@
 // Author           : Richard C. Bilson
 // Created On       : Sun May 17 21:38:55 2015
-// Last Modified By : Rob Schluntz
-// Last Modified On : Thu Sep 17 16:05:38 2015
-// Update Count     : 5
+// Last Modified By : Peter A. Buhr
+// Last Modified On : Wed Mar  2 17:34:14 2016
+// Update Count     : 6
 //
 
@@ -39,5 +39,5 @@
 		virtual void visit( UnionDecl *aggregateDecl );
 		virtual void visit( EnumDecl *aggregateDecl );
-		virtual void visit( ContextDecl *aggregateDecl );
+		virtual void visit( TraitDecl *aggregateDecl );
 
 		virtual void visit( CompoundStmt *compoundStmt );
@@ -67,5 +67,5 @@
 		virtual void visit( UntypedValofExpr *valofExpr );
 
-		virtual void visit( ContextInstType *contextInst );
+		virtual void visit( TraitInstType *contextInst );
 		virtual void visit( StructInstType *contextInst );
 		virtual void visit( UnionInstType *contextInst );
@@ -84,5 +84,5 @@
 		EnumDecl *lookupEnum( const std::string &id ) const;
 		UnionDecl *lookupUnion( const std::string &id ) const;
-		ContextDecl *lookupContext( const std::string &id ) const;
+		TraitDecl *lookupTrait( const std::string &id ) const;
   
 		void print( std::ostream &os, int indent = 0 ) const;
@@ -93,5 +93,5 @@
 		EnumTable enumTable;
 		UnionTable unionTable;
-		ContextTable contextTable;
+		TraitTable contextTable;
   
 		bool doDebug;					// display debugging trace
Index: src/SymTab/Validate.cc
===================================================================
--- src/SymTab/Validate.cc	(revision 540ddb7d0104114dad454c7e4ba18fbd5d9a1c69)
+++ src/SymTab/Validate.cc	(revision b63e3760197cb5f480cf1cdfd5886fdd0411d103)
@@ -10,6 +10,6 @@
 // Created On       : Sun May 17 21:50:04 2015
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Wed Jan 27 22:03:12 2016
-// Update Count     : 225
+// Last Modified On : Wed Mar  2 17:31:39 2016
+// Update Count     : 226
 //
 
@@ -101,5 +101,5 @@
 		virtual void visit( StructInstType *structInst );
 		virtual void visit( UnionInstType *unionInst );
-		virtual void visit( ContextInstType *contextInst );
+		virtual void visit( TraitInstType *contextInst );
 		virtual void visit( StructDecl *structDecl );
 		virtual void visit( UnionDecl *unionDecl );
@@ -137,5 +137,5 @@
 		virtual void visit( UnionDecl *structDecl );
 		virtual void visit( TypeDecl *typeDecl );
-		virtual void visit( ContextDecl *ctxDecl );
+		virtual void visit( TraitDecl *ctxDecl );
 		virtual void visit( FunctionDecl *functionDecl );
 
@@ -192,5 +192,5 @@
 		virtual Declaration *mutate( UnionDecl * unionDecl );
 		virtual Declaration *mutate( EnumDecl * enumDecl );
-		virtual Declaration *mutate( ContextDecl * contextDecl );
+		virtual Declaration *mutate( TraitDecl * contextDecl );
 
 		template<typename AggDecl>
@@ -404,7 +404,7 @@
 	}
 
-	void Pass2::visit( ContextInstType *contextInst ) {
+	void Pass2::visit( TraitInstType *contextInst ) {
 		Parent::visit( contextInst );
-		ContextDecl *ctx = indexer->lookupContext( contextInst->get_name() );
+		TraitDecl *ctx = indexer->lookupTrait( contextInst->get_name() );
 		if ( ! ctx ) {
 			throw SemanticError( "use of undeclared context " + contextInst->get_name() );
@@ -412,5 +412,5 @@
 		for ( std::list< TypeDecl * >::const_iterator i = ctx->get_parameters().begin(); i != ctx->get_parameters().end(); ++i ) {
 			for ( std::list< DeclarationWithType * >::const_iterator assert = (*i )->get_assertions().begin(); assert != (*i )->get_assertions().end(); ++assert ) {
-				if ( ContextInstType *otherCtx = dynamic_cast< ContextInstType * >(*assert ) ) {
+				if ( TraitInstType *otherCtx = dynamic_cast< TraitInstType * >(*assert ) ) {
 					cloneAll( otherCtx->get_members(), contextInst->get_members() );
 				} else {
@@ -476,5 +476,5 @@
 			while ( ! toBeDone.empty() ) {
 				for ( std::list< DeclarationWithType * >::iterator assertion = toBeDone.begin(); assertion != toBeDone.end(); ++assertion ) {
-					if ( ContextInstType *ctx = dynamic_cast< ContextInstType * >( (*assertion )->get_type() ) ) {
+					if ( TraitInstType *ctx = dynamic_cast< TraitInstType * >( (*assertion )->get_type() ) ) {
 						for ( std::list< Declaration * >::const_iterator i = ctx->get_members().begin(); i != ctx->get_members().end(); ++i ) {
 							DeclarationWithType *dwt = dynamic_cast< DeclarationWithType * >( *i );
@@ -851,5 +851,5 @@
 	}
 
-	void AutogenerateRoutines::visit( ContextDecl *) {
+	void AutogenerateRoutines::visit( TraitDecl *) {
 		// ensure that we don't add assignment ops for types defined as part of the context
 	}
@@ -1075,5 +1075,5 @@
 	}
 
-		Declaration *EliminateTypedef::mutate( ContextDecl * contextDecl ) {
+		Declaration *EliminateTypedef::mutate( TraitDecl * contextDecl ) {
 		Mutator::mutate( contextDecl );
 		return handleAggregate( contextDecl );
