Index: src/ResolvExpr/Unify.cc
===================================================================
--- src/ResolvExpr/Unify.cc	(revision 1c9568f0e5ea366b2f5bcb84dad6b74b891993d6)
+++ src/ResolvExpr/Unify.cc	(revision 54e41b38e2be1b9c4d667e9c0fe4eb202e951fc7)
@@ -21,5 +21,8 @@
 #include <string>                 // for string, operator==, operator!=, bas...
 #include <utility>                // for pair, move
-
+#include <vector>
+
+#include "AST/Node.hpp"
+#include "AST/Type.hpp"
 #include "Common/PassVisitor.h"   // for PassVisitor
 #include "FindOpenVars.h"         // for findOpenVars
@@ -630,5 +633,4 @@
 	}
 
-	// xxx - compute once and store in the FunctionType?
 	Type * extractResultType( FunctionType * function ) {
 		if ( function->get_returnVals().size() == 0 ) {
@@ -644,4 +646,16 @@
 		}
 	}
+
+	ast::ptr<ast::Type> extractResultType( const ast::FunctionType * func ) {
+		assert(!"restore after AST added to build");
+		// if ( func->returns.empty() ) return new ast::VoidType{};
+		// if ( func->returns.size() == 1 ) return func->returns[0]->get_type();
+
+		// std::vector<ast::ptr<ast::Type>> tys;
+		// for ( const ast::DeclWithType * decl : func->returns ) {
+		// 	tys.emplace_back( decl->get_type() );
+		// }
+		// return new ast::TupleType{ std::move(tys) };
+	}
 } // namespace ResolvExpr
 
Index: src/ResolvExpr/typeops.h
===================================================================
--- src/ResolvExpr/typeops.h	(revision 1c9568f0e5ea366b2f5bcb84dad6b74b891993d6)
+++ src/ResolvExpr/typeops.h	(revision 54e41b38e2be1b9c4d667e9c0fe4eb202e951fc7)
@@ -18,4 +18,6 @@
 #include <vector>
 
+#include "AST/Node.hpp"
+#include "AST/Type.hpp"
 #include "SynTree/SynTree.h"
 #include "SynTree/Type.h"
@@ -99,4 +101,6 @@
 	/// creates the type represented by the list of returnVals in a FunctionType. The caller owns the return value.
 	Type * extractResultType( FunctionType * functionType );
+	/// Creates or extracts the type represented by the list of returns in a `FunctionType`.
+	ast::ptr<ast::Type> extractResultType( const ast::FunctionType * func );
 
 	// in CommonType.cc
