Index: src/ResolvExpr/AlternativeFinder.cc
===================================================================
--- src/ResolvExpr/AlternativeFinder.cc	(revision d53772d7bd7857cdbf9f250299a94b43ffd99f62)
+++ src/ResolvExpr/AlternativeFinder.cc	(revision 04cccaf91ae4feec9313b029eeecf652dccee9cb)
@@ -482,4 +482,5 @@
 	template< typename ForwardIterator, typename OutputIterator >
 	void inferRecursive( ForwardIterator begin, ForwardIterator end, const Alternative &newAlt, OpenVarSet &openVars, const SymTab::Indexer &decls, const AssertionSet &newNeed, int level, const SymTab::Indexer &indexer, OutputIterator out ) {
+		if ( newAlt.cost == Cost::infinity ) return; // don't proceed down this dead end
 		if ( begin == end ) {
 			if ( newNeed.empty() ) {
@@ -1185,4 +1186,5 @@
 				std::cerr << "bindings are:" << std::endl;
 				withFunc.env.print( std::cerr, 8 );
+				std::cerr << "cost is: " << withFunc.cost << std::endl;
 				std::cerr << "cost of conversion is:" << cvtCost << std::endl;
 			)
