Index: src/AST/Pass.proto.hpp
===================================================================
--- src/AST/Pass.proto.hpp	(revision 561354fd73c46eb32cf2feb6781d0a72427490ac)
+++ src/AST/Pass.proto.hpp	(revision f4e01f1a8e29b20d612b65cba4f4f8908d914ba8)
@@ -430,4 +430,20 @@
 
 	template<typename core_t>
+	static inline auto addAdtFwd( core_t & core, int, const ast::AdtDecl * decl ) -> decltype( core.symtab.addAdt( decl ), void() ) {
+		ast::AdtDecl * fwd = new ast::AdtDecl( decl->location, decl->name );
+		for ( const auto & param : decl->params ) {
+			fwd->params.push_back( deepCopy( param.get() ) );
+		}
+		// Experimental
+		for ( const auto & ctor : decl->data_constructors ) {
+			addStructFwd( core, 0, ctor  );
+		} 
+		core.symtab.addAdt( fwd );
+	}
+
+	template<typename core_t>
+	static inline auto addAdtFwd( core_t &, long, const ast::AdtDecl) {}
+
+	template<typename core_t>
 	static inline auto addStruct( core_t & core, int, const std::string & str ) -> decltype( core.symtab.addStruct( str ), void() ) {
 		if ( ! core.symtab.lookupStruct( str ) ) {
