Index: src/AST/Expr.cpp
===================================================================
--- src/AST/Expr.cpp	(revision 21300d75a007db91aebde37600bdcb7eeb14a5d5)
+++ src/AST/Expr.cpp	(revision d76f32c320117dca652f93256e6dcb16b3ed093c)
@@ -9,7 +9,7 @@
 // Author           : Aaron B. Moss
 // Created On       : Wed May 15 17:00:00 2019
-// Last Modified By : Aaron B. Moss
-// Created On       : Wed May 15 17:00:00 2019
-// Update Count     : 1
+// Last Modified By : Andrew Beach
+// Created On       : Thr Jun 13 13:38:00 2019
+// Update Count     : 2
 //
 
@@ -382,5 +382,5 @@
 
 UniqueExpr::UniqueExpr( const CodeLocation & loc, const Expr * e, unsigned long long i )
-: Expr( loc, e->result ), id( i ) {
+: Expr( loc, e->result ), expr( e ), id( i ) {
 	assert( expr );
 	if ( id == -1ull ) {
Index: src/AST/Expr.hpp
===================================================================
--- src/AST/Expr.hpp	(revision 21300d75a007db91aebde37600bdcb7eeb14a5d5)
+++ src/AST/Expr.hpp	(revision d76f32c320117dca652f93256e6dcb16b3ed093c)
@@ -693,5 +693,5 @@
 	unsigned long long id;
 
-	UniqueExpr( const CodeLocation & loc, const Expr * e, unsigned long long i = -1 );
+	UniqueExpr( const CodeLocation & loc, const Expr * e, unsigned long long i = -1ull );
 
 	const Expr * accept( Visitor & v ) const override { return v.visit( this ); }
Index: src/ResolvExpr/Candidate.hpp
===================================================================
--- src/ResolvExpr/Candidate.hpp	(revision 21300d75a007db91aebde37600bdcb7eeb14a5d5)
+++ src/ResolvExpr/Candidate.hpp	(revision d76f32c320117dca652f93256e6dcb16b3ed093c)
@@ -9,7 +9,7 @@
 // Author           : Aaron B. Moss
 // Created On       : Wed Jun 5 14:30:00 2019
-// Last Modified By : Aaron B. Moss
-// Last Modified On : Wed Jun 5 14:30:00 2019
-// Update Count     : 1
+// Last Modified By : Andrew Beach
+// Last Modified On : Wed Jun 12 14:15:00 2019
+// Update Count     : 2
 //
 
@@ -49,16 +49,16 @@
 
 	Candidate() : expr(), cost( Cost::zero ), cvtCost( Cost::zero ), env(), open(), need() {}
-	
+
 	Candidate( const ast::Expr * x, const ast::TypeEnvironment & e )
 	: expr( x ), cost( Cost::zero ), cvtCost( Cost::zero ), env( e ), open(), need() {}
 
 	Candidate( const Candidate & o, const ast::Expr * x )
-	: expr( x ), cost( o.cost ), cvtCost( Cost::zero ), env( o.env ), open( o.open ), 
+	: expr( x ), cost( o.cost ), cvtCost( Cost::zero ), env( o.env ), open( o.open ),
 	  need( o.need ) {}
-	
-	Candidate( 
-		const ast::Expr * x, ast::TypeEnvironment && e, ast::OpenVarSet && o, 
-		ast::AssertionSet && n, const Cost & c )
-	: expr( x ), cost( c ), cvtCost( Cost::zero ), env( std::move( e ) ), open( std::move( o ) ), 
+
+	Candidate(
+		const ast::Expr * x, ast::TypeEnvironment && e, ast::OpenVarSet && o,
+		ast::AssertionSet && n, const Cost & c, const Cost & cvt = Cost::zero )
+	: expr( x ), cost( c ), cvtCost( cvt ), env( std::move( e ) ), open( std::move( o ) ),
 	  need( n.begin(), n.end() ) {}
 };
