Index: src/AST/Print.cpp
===================================================================
--- src/AST/Print.cpp	(revision 7cf3b1d8c069acc5052d1134b294cb0be126a478)
+++ src/AST/Print.cpp	(revision 4fcbf26474d9ef47ea095118768f26833a73c499)
@@ -333,8 +333,47 @@
 		print( node->funcSpec );
 
-		if ( node->type ) {
+
+
+		if ( node->type && node->isTypeFixed ) {
 			node->type->accept( *this );
 		} else {
-			os << "untyped entity";
+			if (!node->type_params.empty()) {
+				os << "forall" << endl;
+				++indent;
+				printAll(node->type_params);
+				os << indent;
+				--indent;
+
+				if (!node->assertions.empty()) {
+					os << "with assertions" << endl;
+					++indent;
+					printAll(node->assertions);
+					os << indent;
+					--indent;
+				}
+			}
+
+			os << "function" << endl;
+			if ( ! node->params.empty() ) {
+				os << indent << "... with parameters" << endl;
+				++indent;
+				printAll( node->params );
+				if ( node->type->isVarArgs ) {
+					os << indent << "and a variable number of other arguments" << endl;
+				}
+				--indent;
+			} else if ( node->type->isVarArgs ) {
+				os << indent+1 << "accepting unspecified arguments" << endl;
+			}
+
+			os << indent << "... returning";
+			if ( node->returns.empty() ) {
+				os << " nothing" << endl;
+			} else {
+				os << endl;
+				++indent;
+				printAll( node->returns );
+				--indent;
+			}
 		}
 
Index: tests/concurrent/.expect/ctor-check.txt
===================================================================
--- tests/concurrent/.expect/ctor-check.txt	(revision 7cf3b1d8c069acc5052d1134b294cb0be126a478)
+++ tests/concurrent/.expect/ctor-check.txt	(revision 4fcbf26474d9ef47ea095118768f26833a73c499)
@@ -2,5 +2,5 @@
 ?{}: function
 ... with parameters
-  lvalue reference to instance of struct Empty with body
+  this: lvalue reference to instance of struct Empty with body
 ... returning nothing
  with body
