Index: src/CompilationState.cc
===================================================================
--- src/CompilationState.cc	(revision 41af19c4fd05a6d608a489a8ef755e3005583223)
+++ src/CompilationState.cc	(revision 721500032cac54e6e0140d924dd8656383adabc1)
@@ -27,4 +27,5 @@
 	nopreludep = false,
 	genproto = false,
+	deterministic_output = false,
 	nomainp = false,
 	parsep = false,
Index: src/CompilationState.h
===================================================================
--- src/CompilationState.h	(revision 41af19c4fd05a6d608a489a8ef755e3005583223)
+++ src/CompilationState.h	(revision 721500032cac54e6e0140d924dd8656383adabc1)
@@ -28,4 +28,5 @@
 	nopreludep,
 	genproto,
+	deterministic_output,
 	nomainp,
 	parsep,
Index: src/ResolvExpr/TypeEnvironment.cc
===================================================================
--- src/ResolvExpr/TypeEnvironment.cc	(revision 41af19c4fd05a6d608a489a8ef755e3005583223)
+++ src/ResolvExpr/TypeEnvironment.cc	(revision 721500032cac54e6e0140d924dd8656383adabc1)
@@ -20,4 +20,5 @@
 #include <utility>                     // for pair, move
 
+#include "CompilationState.h"          // for deterministic_output
 #include "Common/utility.h"            // for maybeClone
 #include "SynTree/Type.h"              // for Type, FunctionType, Type::Fora...
@@ -106,7 +107,9 @@
 
 	void EqvClass::print( std::ostream &os, Indenter indent ) const {
-		os << "( ";
-		std::copy( vars.begin(), vars.end(), std::ostream_iterator< std::string >( os, " " ) );
-		os << ")";
+		if( !deterministic_output ) {
+			os << "( ";
+			std::copy( vars.begin(), vars.end(), std::ostream_iterator< std::string >( os, " " ) );
+			os << ")";
+		}
 		if ( type ) {
 			os << " -> ";
@@ -235,5 +238,5 @@
 		// check safely bindable
 		if ( r.type && occursIn( r.type, s.vars.begin(), s.vars.end(), *this ) ) return false;
-		
+
 		// merge classes in
 		r.vars.insert( s.vars.begin(), s.vars.end() );
Index: src/main.cc
===================================================================
--- src/main.cc	(revision 41af19c4fd05a6d608a489a8ef755e3005583223)
+++ src/main.cc	(revision 721500032cac54e6e0140d924dd8656383adabc1)
@@ -443,5 +443,5 @@
 
 
-static const char optstring[] = ":c:ghlLmNnpP:S:twW:D:";
+static const char optstring[] = ":c:ghlLmNnpdP:S:twW:D:";
 
 enum { PreludeDir = 128 };
@@ -456,4 +456,5 @@
 	{ "no-prelude", no_argument, nullptr, 'n' },
 	{ "prototypes", no_argument, nullptr, 'p' },
+	{ "deterministic-out", no_argument, nullptr, 'd' },
 	{ "print", required_argument, nullptr, 'P' },
 	{ "prelude-dir", required_argument, nullptr, PreludeDir },
@@ -476,4 +477,5 @@
 	"do not read prelude",                                // -n
 	"generate prototypes for prelude functions",		// -p
+	"don't print output that isn't deterministic",        // -d
 	"print",                                              // -P
 	"<directory> prelude directory for debug/nodebug",	// no flag
@@ -580,4 +582,7 @@
 			genproto = true;
 			break;
+		  case 'd':                                     // don't print non-deterministic output
+		    deterministic_output = true;
+			break;
 		  case 'P':										// print options
 			for ( int i = 0;; i += 1 ) {
Index: tests/Makefile.am
===================================================================
--- tests/Makefile.am	(revision 41af19c4fd05a6d608a489a8ef755e3005583223)
+++ tests/Makefile.am	(revision 721500032cac54e6e0140d924dd8656383adabc1)
@@ -41,4 +41,6 @@
 	-quiet @CFA_FLAGS@ \
 	-DIN_DIR="${abs_srcdir}/.in/"
+
+AM_CFAFLAGS = -XCFA --deterministic-out
 
 # get the desired cfa to test
Index: tests/Makefile.in
===================================================================
--- tests/Makefile.in	(revision 41af19c4fd05a6d608a489a8ef755e3005583223)
+++ tests/Makefile.in	(revision 721500032cac54e6e0140d924dd8656383adabc1)
@@ -408,4 +408,5 @@
 	-DIN_DIR="${abs_srcdir}/.in/"
 
+AM_CFAFLAGS = -XCFA --deterministic-out
 
 # get the desired cfa to test
Index: tests/errors/.expect/completeType.txt
===================================================================
--- tests/errors/.expect/completeType.txt	(revision 41af19c4fd05a6d608a489a8ef755e3005583223)
+++ tests/errors/.expect/completeType.txt	(revision 721500032cac54e6e0140d924dd8656383adabc1)
@@ -27,5 +27,5 @@
     void 
   )
-  Environment:( _85_4_DT ) -> instance of struct A with body 0 (no widening)
+  Environment: -> instance of struct A with body 0 (no widening)
 
 
@@ -50,5 +50,5 @@
     void 
   )
-  Environment:( _85_4_DT ) -> instance of struct B with body 1 (no widening)
+  Environment: -> instance of struct B with body 1 (no widening)
 
 
@@ -127,5 +127,5 @@
           void 
         )
-        Environment:( _104_0_T ) -> instance of type T (not function type) (no widening)
+        Environment: -> instance of type T (not function type) (no widening)
 
       Could not satisfy assertion:
