Index: src/AST/Create.cpp
===================================================================
--- src/AST/Create.cpp	(revision e9e9f561e08b390229ff9a102aa25333c265fb49)
+++ src/AST/Create.cpp	(revision 20737104831e8e78cbe01e2e63a3969afaec6c88)
@@ -10,6 +10,6 @@
 // Created On       : Tue Sep 20 13:28:00 2022
 // Last Modified By : Andrew Beach
-// Last Modified On : Tue Sep 20 14:55:00 2022
-// Update Count     : 0
+// Last Modified On : Tue Sep 21  9:29:00 2022
+// Update Count     : 1
 //
 
@@ -19,4 +19,5 @@
 #include "AST/Copy.hpp"
 #include "AST/Decl.hpp"
+#include "AST/Type.hpp"
 
 namespace ast {
@@ -35,4 +36,23 @@
 
 } // namespace
+
+FunctionDecl * asForward( FunctionDecl const * decl ) {
+	if ( nullptr == decl->stmts ) {
+		return nullptr;
+	}
+	return new ast::FunctionDecl( decl->location,
+		decl->name,
+		vectorCopy( decl->type_params ),
+		vectorCopy( decl->assertions ),
+		vectorCopy( decl->params ),
+		vectorCopy( decl->returns ),
+		nullptr,
+		decl->storage,
+		decl->linkage,
+		vectorCopy( decl->attributes ),
+		decl->funcSpec,
+		decl->type->isVarArgs
+	);
+}
 
 StructDecl * asForward( StructDecl const * decl ) {
Index: src/AST/Create.hpp
===================================================================
--- src/AST/Create.hpp	(revision e9e9f561e08b390229ff9a102aa25333c265fb49)
+++ src/AST/Create.hpp	(revision 20737104831e8e78cbe01e2e63a3969afaec6c88)
@@ -10,6 +10,6 @@
 // Created On       : Tue Sep 20 13:25:00 2022
 // Last Modified By : Andrew Beach
-// Last Modified On : Tue Sep 20 14:38:00 2022
-// Update Count     : 0
+// Last Modified On : Tue Sep 20 15:34:00 2022
+// Update Count     : 1
 //
 
@@ -21,4 +21,5 @@
 /// If the argument is already a forward declaration, return nullptr instead.
 /// More efficient than the deepCopy and clear pattern.
+FunctionDecl * asForward( FunctionDecl const * );
 StructDecl * asForward( StructDecl const * );
 UnionDecl * asForward( UnionDecl const * );
Index: src/Validate/Autogen.cpp
===================================================================
--- src/Validate/Autogen.cpp	(revision e9e9f561e08b390229ff9a102aa25333c265fb49)
+++ src/Validate/Autogen.cpp	(revision 20737104831e8e78cbe01e2e63a3969afaec6c88)
@@ -10,6 +10,6 @@
 // Created On       : Thu Dec  2 13:44:00 2021
 // Last Modified By : Andrew Beach
-// Last Modified On : Thr Jan 27  9:29:00 2022
-// Update Count     : 1
+// Last Modified On : Tue Sep 20 16:00:00 2022
+// Update Count     : 2
 //
 
@@ -25,4 +25,5 @@
 
 #include "AST/Attribute.hpp"
+#include "AST/Create.hpp"
 #include "AST/Decl.hpp"
 #include "AST/DeclReplacer.hpp"
@@ -328,6 +329,6 @@
 void FuncGenerator::produceForwardDecl( const ast::FunctionDecl * decl ) {
 	if (0 != functionNesting) return;
-	ast::FunctionDecl * fwd = ast::deepCopy( decl );
-	fwd->stmts = nullptr;
+	ast::FunctionDecl * fwd =
+		( decl->stmts ) ? ast::asForward( decl ) : ast::deepCopy( decl ) ;
 	fwd->fixUniqueId();
 	forwards.push_back( fwd );
