Index: src/SynTree/AggregateDecl.cc
===================================================================
--- src/SynTree/AggregateDecl.cc	(revision 5b2f5bb4b0269a726d7840b6f270858c3ff12d9a)
+++ src/SynTree/AggregateDecl.cc	(revision a5a71d0e95113b304e03502a14ccab969324804f)
@@ -10,6 +10,6 @@
 // Created On       : Sun May 17 23:56:39 2015
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Sat Jun 13 08:12:49 2015
-// Update Count     : 6
+// Last Modified On : Wed Mar  2 17:28:00 2016
+// Update Count     : 7
 //
 
@@ -64,5 +64,5 @@
 std::string EnumDecl::typeString() const { return "enum"; }
 
-std::string ContextDecl::typeString() const { return "context"; }
+std::string TraitDecl::typeString() const { return "context"; }
 
 // Local Variables: //
Index: src/SynTree/CodeGenVisitor.cc
===================================================================
--- src/SynTree/CodeGenVisitor.cc	(revision 5b2f5bb4b0269a726d7840b6f270858c3ff12d9a)
+++ 	(revision )
@@ -1,59 +1,0 @@
-//
-// Cforall Version 1.0.0 Copyright (C) 2015 University of Waterloo
-//
-// The contents of this file are covered under the licence agreement in the
-// file "LICENCE" distributed with Cforall.
-//
-// CodeGenVisitor.cc -- 
-//
-// Author           : Richard C. Bilson
-// Created On       : Mon May 18 07:44:20 2015
-// Last Modified By : Peter A. Buhr
-// Last Modified On : Mon May 18 07:57:51 2015
-// Update Count     : 3
-//
-
-#include <iostream>
-#include <list>
-
-#include "Statement.h"
-#include "Expression.h"
-#include "CodeGenVisitor.h"
-using namespace std;
-
-void CodeGenVisitor::visit( Type *type ) { }
-void CodeGenVisitor::visit( BasicType *basicType ) { }
-
-void CodeGenVisitor::visit( Constant *constant ) { 
-	cout << constant->get_value() << endl;
-}
-
-void CodeGenVisitor::visit( Expression *expr ) { }
-
-void CodeGenVisitor::visit( ConstantExpr *cnst ) {
-	if ( cnst != 0 )
-		visit(cnst->get_constant());
-}
-
-void CodeGenVisitor::visit( Statement *stmt ) { }
-
-void CodeGenVisitor::visit( ExprStmt *exprStmt ) {
-	if ( exprStmt != 0 )
-		exprStmt->get_expr()->accept( *this );			// visit(exprStmt->get_expr()) doesn't work
-}
-
-void CodeGenVisitor::visit( SwitchStmt *switchStmt ) {
-	cout << "switch (" << endl;	    
-	// visit(switchStmt->get_condition());   // why doesn't this work?
-	switchStmt->get_condition()->accept(*this);
-
-	cout << ") {" << endl;	
-	// visit(switchStmt->get_body());  // why doesn't this work?
-	cout << "}" << endl;	
-}
-
-// Local Variables: //
-// tab-width: 4 //
-// mode: c++ //
-// compile-command: "make install" //
-// End: //
Index: src/SynTree/CodeGenVisitor.h
===================================================================
--- src/SynTree/CodeGenVisitor.h	(revision 5b2f5bb4b0269a726d7840b6f270858c3ff12d9a)
+++ 	(revision )
@@ -1,45 +1,0 @@
-//
-// Cforall Version 1.0.0 Copyright (C) 2015 University of Waterloo
-//
-// The contents of this file are covered under the licence agreement in the
-// file "LICENCE" distributed with Cforall.
-//
-// CodeGenVisitor.h -- 
-//
-// Author           : Richard C. Bilson
-// Created On       : Mon May 18 07:44:20 2015
-// Last Modified By : Peter A. Buhr
-// Last Modified On : Mon May 18 08:46:47 2015
-// Update Count     : 4
-//
-
-#ifndef CODEGENV_H
-#define CODEGENV_H
-
-#include <typeinfo>
-
-#include "SynTree.h"
-#include "Visitor.h"
-
-class CodeGenVisitor : public Visitor {
-  public:
-	virtual void visit( Type * );
-	virtual void visit( BasicType * );
-
-	virtual void visit( Constant * );
-
-	virtual void visit( Expression * );
-	virtual void visit( ConstantExpr * );
-
-	virtual void visit( Statement * );
-	virtual void visit( ExprStmt * );
-	virtual void visit( SwitchStmt * );
-};
-
-#endif // CODEGENV_H
-
-// Local Variables: //
-// tab-width: 4 //
-// mode: c++ //
-// compile-command: "make install" //
-// End: //
Index: src/SynTree/CommaExpr.cc
===================================================================
--- src/SynTree/CommaExpr.cc	(revision 5b2f5bb4b0269a726d7840b6f270858c3ff12d9a)
+++ src/SynTree/CommaExpr.cc	(revision a5a71d0e95113b304e03502a14ccab969324804f)
@@ -5,10 +5,10 @@
 // file "LICENCE" distributed with Cforall.
 //
-// CommaExpr.cc -- 
+// CommaExpr.cc --
 //
 // Author           : Richard C. Bilson
 // Created On       : Mon May 18 07:44:20 2015
-// Last Modified By : Peter A. Buhr
-// Last Modified On : Mon May 18 08:09:58 2015
+// Last Modified By : Rob Schluntz
+// Last Modified On : Wed Apr 06 17:07:54 2016
 // Update Count     : 1
 //
@@ -20,4 +20,6 @@
 CommaExpr::CommaExpr( Expression *arg1, Expression *arg2, Expression *_aname )
 		: Expression( _aname ), arg1( arg1 ), arg2( arg2 ) {
+	// xxx - result of a comma expression is never an lvalue, so should set lvalue
+	// to false on all result types
 	cloneAll( arg2->get_results(), get_results() );
 }
Index: src/SynTree/CompoundStmt.cc
===================================================================
--- src/SynTree/CompoundStmt.cc	(revision 5b2f5bb4b0269a726d7840b6f270858c3ff12d9a)
+++ src/SynTree/CompoundStmt.cc	(revision a5a71d0e95113b304e03502a14ccab969324804f)
@@ -5,10 +5,10 @@
 // file "LICENCE" distributed with Cforall.
 //
-// XXX.cc -- 
+// XXX.cc --
 //
 // Author           : Richard C. Bilson
 // Created On       : Mon May 18 07:44:20 2015
-// Last Modified By : Peter A. Buhr
-// Last Modified On : Tue Jun 23 11:37:49 2015
+// Last Modified By : Rob Schluntz
+// Last Modified On : Wed Apr 06 14:35:37 2016
 // Update Count     : 3
 //
@@ -18,7 +18,26 @@
 #include <algorithm>
 #include <functional>
+#include "Expression.h"
+#include "Declaration.h"
 
 using std::string;
 using std::endl;
+
+class VarExprReplacer : public Visitor {
+public:
+  typedef std::map< DeclarationWithType *, DeclarationWithType * > DeclMap;
+private:
+  const DeclMap & declMap;
+public:
+  VarExprReplacer( const DeclMap & declMap ) : declMap( declMap ) {}
+
+  // replace variable with new node from decl map
+  virtual void visit( VariableExpr * varExpr ) {
+    if ( declMap.count( varExpr->get_var() ) ) {
+      varExpr->set_var( declMap.at( varExpr->get_var() ) );
+    }
+  }
+};
+
 
 CompoundStmt::CompoundStmt( std::list<Label> labels ) : Statement( labels ) {
@@ -27,4 +46,35 @@
 CompoundStmt::CompoundStmt( const CompoundStmt &other ) : Statement( other ) {
 	cloneAll( other.kids, kids );
+
+  // when cloning a compound statement, we may end up cloning declarations which
+  // are referred to by VariableExprs throughout the block. Cloning a VariableExpr
+  // does a shallow copy, so the VariableExpr will end up pointing to the original
+  // declaration. If the original declaration is deleted, e.g. because the original
+  // CompoundStmt is deleted, then we have a dangling pointer. To avoid this case,
+  // find all DeclarationWithType nodes (since a VariableExpr must point to a
+  // DeclarationWithType) in the original CompoundStmt and map them to the cloned
+  // node in the new CompoundStmt ('this'), then replace the Declarations referred to
+  // by each VariableExpr according to the constructed map. Note that only the declarations
+  // in the current level are collected into the map, because child CompoundStmts will
+  // recursively execute this routine. There may be more efficient ways of doing
+  // this.
+  VarExprReplacer::DeclMap declMap;
+  std::list< Statement * >::const_iterator origit = other.kids.begin();
+  for ( Statement * s : kids ) {
+    assert( origit != other.kids.end() );
+    if ( DeclStmt * declStmt = dynamic_cast< DeclStmt * >( s ) ) {
+      DeclStmt * origDeclStmt = dynamic_cast< DeclStmt * >( *origit );
+      assert( origDeclStmt );
+      if ( DeclarationWithType * dwt = dynamic_cast< DeclarationWithType * > ( declStmt->get_decl() ) ) {
+        DeclarationWithType * origdwt = dynamic_cast< DeclarationWithType * > ( origDeclStmt->get_decl() );
+        assert( origdwt );
+        declMap[ origdwt ] = dwt;
+      }
+    }
+  }
+  if ( ! declMap.empty() ) {
+    VarExprReplacer replacer( declMap );
+    accept( replacer );
+  }
 }
 
Index: src/SynTree/Constant.cc
===================================================================
--- src/SynTree/Constant.cc	(revision 5b2f5bb4b0269a726d7840b6f270858c3ff12d9a)
+++ src/SynTree/Constant.cc	(revision a5a71d0e95113b304e03502a14ccab969324804f)
@@ -16,4 +16,5 @@
 #include <iostream>
 #include <list>
+#include <string>
 
 #include "Constant.h"
@@ -28,4 +29,16 @@
 
 Constant::~Constant() { delete type; }
+
+Constant Constant::from( int i ) {
+	return Constant( new BasicType( Type::Qualifiers(), BasicType::SignedInt ), std::to_string( i ) );
+}
+
+Constant Constant::from( unsigned long i ) {
+	return Constant( new BasicType( Type::Qualifiers(), BasicType::LongUnsignedInt ), std::to_string( i ) );
+}
+
+Constant Constant::from( double d ) {
+	return Constant( new BasicType( Type::Qualifiers(), BasicType::Double ), std::to_string( d ) );
+}
 
 Constant *Constant::clone() const { assert( false ); return 0; }
Index: src/SynTree/Constant.h
===================================================================
--- src/SynTree/Constant.h	(revision 5b2f5bb4b0269a726d7840b6f270858c3ff12d9a)
+++ src/SynTree/Constant.h	(revision a5a71d0e95113b304e03502a14ccab969324804f)
@@ -32,4 +32,11 @@
 	void set_value( std::string newValue ) { value = newValue; }
 
+	/// generates an integer constant of the given int
+	static Constant from( int i );
+	/// generates an integer constant of the given unsigned long int
+	static Constant from( unsigned long i );
+	/// generates a floating point constant of the given double
+	static Constant from( double d );
+
 	virtual Constant *clone() const;
 	virtual void accept( Visitor &v ) { v.visit( this ); }
Index: src/SynTree/Declaration.h
===================================================================
--- src/SynTree/Declaration.h	(revision 5b2f5bb4b0269a726d7840b6f270858c3ff12d9a)
+++ src/SynTree/Declaration.h	(revision a5a71d0e95113b304e03502a14ccab969324804f)
@@ -10,5 +10,5 @@
 // Created On       : Mon May 18 07:44:20 2015
 // Last Modified By : Rob Schluntz
-// Last Modified On : Wed Jan 13 16:11:49 2016
+// Last Modified On : Mon Apr 04 17:14:00 2016
 // Update Count     : 36
 //
@@ -246,11 +246,11 @@
 };
 
-class ContextDecl : public AggregateDecl {
-	typedef AggregateDecl Parent;
-  public:
-	ContextDecl( const std::string &name ) : Parent( name ) {}
-	ContextDecl( const ContextDecl &other ) : Parent( other ) {}
-
-	virtual ContextDecl *clone() const { return new ContextDecl( *this ); }
+class TraitDecl : public AggregateDecl {
+	typedef AggregateDecl Parent;
+  public:
+	TraitDecl( const std::string &name ) : Parent( name ) {}
+	TraitDecl( const TraitDecl &other ) : Parent( other ) {}
+
+	virtual TraitDecl *clone() const { return new TraitDecl( *this ); }
 	virtual void accept( Visitor &v ) { v.visit( this ); }
 	virtual Declaration *acceptMutator( Mutator &m ) { return m.mutate( this ); }
Index: src/SynTree/Initializer.cc
===================================================================
--- src/SynTree/Initializer.cc	(revision 5b2f5bb4b0269a726d7840b6f270858c3ff12d9a)
+++ src/SynTree/Initializer.cc	(revision a5a71d0e95113b304e03502a14ccab969324804f)
@@ -10,5 +10,5 @@
 // Created On       : Mon May 18 07:44:20 2015
 // Last Modified By : Rob Schluntz
-// Last Modified On : Wed Mar 30 13:58:32 2016
+// Last Modified On : Wed Apr 06 16:15:32 2016
 // Update Count     : 28
 //
@@ -35,5 +35,5 @@
 }
 
-SingleInit::SingleInit( const SingleInit &other ) : Initializer(other), value ( other.value ) {
+SingleInit::SingleInit( const SingleInit &other ) : Initializer(other), value ( maybeClone( other.value ) ) {
 	cloneAll(other.designators, designators );
 }
Index: src/SynTree/Mutator.cc
===================================================================
--- src/SynTree/Mutator.cc	(revision 5b2f5bb4b0269a726d7840b6f270858c3ff12d9a)
+++ src/SynTree/Mutator.cc	(revision a5a71d0e95113b304e03502a14ccab969324804f)
@@ -10,5 +10,5 @@
 // Created On       : Mon May 18 07:44:20 2015
 // Last Modified By : Rob Schluntz
-// Last Modified On : Wed Jan 13 15:32:29 2016
+// Last Modified On : Mon Apr 04 17:14:20 2016
 // Update Count     : 15
 //
@@ -63,5 +63,5 @@
 }
 
-Declaration *Mutator::mutate( ContextDecl *aggregateDecl ) {
+Declaration *Mutator::mutate( TraitDecl *aggregateDecl ) {
 	handleAggregateDecl( aggregateDecl );
 	return aggregateDecl;
@@ -387,5 +387,5 @@
 }
 
-Type *Mutator::mutate( ContextInstType *aggregateUseType ) {
+Type *Mutator::mutate( TraitInstType *aggregateUseType ) {
 	handleReferenceToType( aggregateUseType );
 	mutateAll( aggregateUseType->get_members(), *this );
Index: src/SynTree/Mutator.h
===================================================================
--- src/SynTree/Mutator.h	(revision 5b2f5bb4b0269a726d7840b6f270858c3ff12d9a)
+++ src/SynTree/Mutator.h	(revision a5a71d0e95113b304e03502a14ccab969324804f)
@@ -10,5 +10,5 @@
 // Created On       : Mon May 18 07:44:20 2015
 // Last Modified By : Rob Schluntz
-// Last Modified On : Wed Jan 13 15:24:26 2016
+// Last Modified On : Mon Apr 04 17:14:44 2016
 // Update Count     : 9
 //
@@ -31,5 +31,5 @@
 	virtual Declaration* mutate( UnionDecl *aggregateDecl );
 	virtual Declaration* mutate( EnumDecl *aggregateDecl );
-	virtual Declaration* mutate( ContextDecl *aggregateDecl );
+	virtual Declaration* mutate( TraitDecl *aggregateDecl );
 	virtual TypeDecl* mutate( TypeDecl *typeDecl );
 	virtual Declaration* mutate( TypedefDecl *typeDecl );
@@ -85,5 +85,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/SynTree/ReferenceToType.cc
===================================================================
--- src/SynTree/ReferenceToType.cc	(revision 5b2f5bb4b0269a726d7840b6f270858c3ff12d9a)
+++ src/SynTree/ReferenceToType.cc	(revision a5a71d0e95113b304e03502a14ccab969324804f)
@@ -10,6 +10,6 @@
 // Created On       : Mon May 18 07:44:20 2015
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Sun Jun  7 08:31:48 2015
-// Update Count     : 4
+// Last Modified On : Wed Mar  2 17:28:51 2016
+// Update Count     : 5
 //
 
@@ -83,11 +83,11 @@
 std::string EnumInstType::typeString() const { return "enum"; }
 
-std::string ContextInstType::typeString() const { return "context"; }
+std::string TraitInstType::typeString() const { return "context"; }
 
-ContextInstType::ContextInstType( const ContextInstType &other ) : Parent( other ) {
+TraitInstType::TraitInstType( const TraitInstType &other ) : Parent( other ) {
 	cloneAll( other.members, members );
 }
 
-ContextInstType::~ContextInstType() {
+TraitInstType::~TraitInstType() {
 	deleteAll( members );
 }
Index: src/SynTree/SynTree.h
===================================================================
--- src/SynTree/SynTree.h	(revision 5b2f5bb4b0269a726d7840b6f270858c3ff12d9a)
+++ src/SynTree/SynTree.h	(revision a5a71d0e95113b304e03502a14ccab969324804f)
@@ -10,5 +10,5 @@
 // Created On       : Mon May 18 07:44:20 2015
 // Last Modified By : Rob Schluntz
-// Last Modified On : Wed Jan 13 15:28:41 2016
+// Last Modified On : Mon Apr 04 17:16:09 2016
 // Update Count     : 4
 //
@@ -30,5 +30,5 @@
 class UnionDecl;
 class EnumDecl;
-class ContextDecl;
+class TraitDecl;
 class NamedTypeDecl;
 class TypeDecl;
@@ -92,5 +92,5 @@
 class UnionInstType;
 class EnumInstType;
-class ContextInstType;
+class TraitInstType;
 class TypeInstType;
 class TupleType;
Index: src/SynTree/Type.h
===================================================================
--- src/SynTree/Type.h	(revision 5b2f5bb4b0269a726d7840b6f270858c3ff12d9a)
+++ src/SynTree/Type.h	(revision a5a71d0e95113b304e03502a14ccab969324804f)
@@ -9,7 +9,7 @@
 // Author           : Richard C. Bilson
 // Created On       : Mon May 18 07:44:20 2015
-// Last Modified By : Rob Schluntz
-// Last Modified On : Fri Dec 18 14:46:18 2015
-// Update Count     : 18
+// Last Modified By : Peter A. Buhr
+// Last Modified On : Wed Mar  2 17:29:08 2016
+// Update Count     : 21
 //
 
@@ -296,14 +296,14 @@
 };
 
-class ContextInstType : public ReferenceToType {
+class TraitInstType : public ReferenceToType {
 	typedef ReferenceToType Parent;
   public:
-	ContextInstType( const Type::Qualifiers &tq, const std::string &name ) : Parent( tq, name ) {}
-	ContextInstType( const ContextInstType &other );
-	~ContextInstType();
+	TraitInstType( const Type::Qualifiers &tq, const std::string &name ) : Parent( tq, name ) {}
+	TraitInstType( const TraitInstType &other );
+	~TraitInstType();
 
 	std::list< Declaration* >& get_members() { return members; }
 
-	virtual ContextInstType *clone() const { return new ContextInstType( *this ); }
+	virtual TraitInstType *clone() const { return new TraitInstType( *this ); }
 	virtual void accept( Visitor &v ) { v.visit( this ); }
 	virtual Type *acceptMutator( Mutator &m ) { return m.mutate( this ); }
@@ -402,5 +402,7 @@
 /// Represents the GCC built-in varargs type
 class VarArgsType : public Type {
+  public:
 	VarArgsType();
+	VarArgsType( Type::Qualifiers tq );
 
 	virtual VarArgsType *clone() const { return new VarArgsType( *this ); }
Index: src/SynTree/TypeSubstitution.cc
===================================================================
--- src/SynTree/TypeSubstitution.cc	(revision 5b2f5bb4b0269a726d7840b6f270858c3ff12d9a)
+++ src/SynTree/TypeSubstitution.cc	(revision a5a71d0e95113b304e03502a14ccab969324804f)
@@ -10,6 +10,6 @@
 // Created On       : Mon May 18 07:44:20 2015
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Mon May 18 11:10:04 2015
-// Update Count     : 2
+// Last Modified On : Wed Mar  2 17:29:15 2016
+// Update Count     : 3
 //
 
@@ -190,5 +190,5 @@
 }
 
-Type * TypeSubstitution::mutate( ContextInstType *aggregateUseType ) {
+Type * TypeSubstitution::mutate( TraitInstType *aggregateUseType ) {
 	return handleType( aggregateUseType );
 }
Index: src/SynTree/TypeSubstitution.h
===================================================================
--- src/SynTree/TypeSubstitution.h	(revision 5b2f5bb4b0269a726d7840b6f270858c3ff12d9a)
+++ src/SynTree/TypeSubstitution.h	(revision a5a71d0e95113b304e03502a14ccab969324804f)
@@ -10,6 +10,6 @@
 // Created On       : Mon May 18 07:44:20 2015
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Mon May 18 11:12:30 2015
-// Update Count     : 1
+// Last Modified On : Wed Mar  2 17:33:19 2016
+// Update Count     : 2
 //
 
@@ -72,5 +72,5 @@
 	virtual Type* mutate(UnionInstType *aggregateUseType);
 	virtual Type* mutate(EnumInstType *aggregateUseType);
-	virtual Type* mutate(ContextInstType *aggregateUseType);
+	virtual Type* mutate(TraitInstType *aggregateUseType);
 	virtual Type* mutate(TupleType *tupleType);
 	virtual Type* mutate(VarArgsType *varArgsType);
Index: src/SynTree/VarArgsType.cc
===================================================================
--- src/SynTree/VarArgsType.cc	(revision 5b2f5bb4b0269a726d7840b6f270858c3ff12d9a)
+++ src/SynTree/VarArgsType.cc	(revision a5a71d0e95113b304e03502a14ccab969324804f)
@@ -9,7 +9,7 @@
 // Author           : Aaron B. Moss
 // Created On       : Thu Feb 25 16:34:00 2016
-// Last Modified By : Aaron B. Moss
-// Last Modified On : Thu Feb 25 16:34:00 2016
-// Update Count     : 1
+// Last Modified By : Peter A. Buhr
+// Last Modified On : Wed Mar  2 17:10:40 2016
+// Update Count     : 2
 //
 
@@ -17,4 +17,6 @@
 
 VarArgsType::VarArgsType() : Type( Type::Qualifiers() ) {}
+
+VarArgsType::VarArgsType( Type::Qualifiers tq ) : Type( tq ) {}
 
 void VarArgsType::print( std::ostream &os, int indent ) const {
Index: src/SynTree/Visitor.cc
===================================================================
--- src/SynTree/Visitor.cc	(revision 5b2f5bb4b0269a726d7840b6f270858c3ff12d9a)
+++ src/SynTree/Visitor.cc	(revision a5a71d0e95113b304e03502a14ccab969324804f)
@@ -10,5 +10,5 @@
 // Created On       : Mon May 18 07:44:20 2015
 // Last Modified By : Rob Schluntz
-// Last Modified On : Wed Jan 13 15:27:23 2016
+// Last Modified On : Mon Apr 04 17:16:25 2016
 // Update Count     : 18
 //
@@ -56,5 +56,5 @@
 }
 
-void Visitor::visit( ContextDecl *aggregateDecl ) {
+void Visitor::visit( TraitDecl *aggregateDecl ) {
 	visit( static_cast< AggregateDecl* >( aggregateDecl ) );
 }
@@ -326,5 +326,5 @@
 }
 
-void Visitor::visit( ContextInstType *aggregateUseType ) {
+void Visitor::visit( TraitInstType *aggregateUseType ) {
 	visit( static_cast< ReferenceToType * >( aggregateUseType ) );
 	acceptAll( aggregateUseType->get_members(), *this );
Index: src/SynTree/Visitor.h
===================================================================
--- src/SynTree/Visitor.h	(revision 5b2f5bb4b0269a726d7840b6f270858c3ff12d9a)
+++ src/SynTree/Visitor.h	(revision a5a71d0e95113b304e03502a14ccab969324804f)
@@ -10,5 +10,5 @@
 // Created On       : Mon May 18 07:44:20 2015
 // Last Modified By : Rob Schluntz
-// Last Modified On : Tue Feb 09 13:20:48 2016
+// Last Modified On : Mon Apr 04 17:16:36 2016
 // Update Count     : 6
 //
@@ -31,5 +31,5 @@
 	virtual void visit( UnionDecl *aggregateDecl );
 	virtual void visit( EnumDecl *aggregateDecl );
-	virtual void visit( ContextDecl *aggregateDecl );
+	virtual void visit( TraitDecl *aggregateDecl );
 	virtual void visit( TypeDecl *typeDecl );
 	virtual void visit( TypedefDecl *typeDecl );
@@ -85,5 +85,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 );
Index: src/SynTree/module.mk
===================================================================
--- src/SynTree/module.mk	(revision 5b2f5bb4b0269a726d7840b6f270858c3ff12d9a)
+++ src/SynTree/module.mk	(revision a5a71d0e95113b304e03502a14ccab969324804f)
@@ -46,5 +46,4 @@
        SynTree/Visitor.cc \
        SynTree/Mutator.cc \
-       SynTree/CodeGenVisitor.cc \
        SynTree/TypeSubstitution.cc
 
