Index: src/AST/Expr.hpp
===================================================================
--- src/AST/Expr.hpp	(revision c8293206313c3350568d818d48c8da940d369684)
+++ src/AST/Expr.hpp	(revision b69233aced1c8e524868a8ea35b14931e9676cf1)
@@ -47,5 +47,7 @@
 
 	ParamEntry() : decl( 0 ), declptr( nullptr ), actualType( nullptr ), formalType( nullptr ), expr( nullptr ) {}
-	ParamEntry( UniqueId id, Decl * declptr, Type* actual, Type* formal, Expr* e )
+	ParamEntry( 
+		UniqueId id, const Decl * declptr, const Type * actual, const Type * formal, 
+		const Expr * e )
 	: decl( id ), declptr( declptr ), actualType( actual ), formalType( formal ), expr( e ) {}
 };
@@ -129,4 +131,5 @@
 			case Params: return data.inferParams;
 			}
+			assert(!"unreachable");
 			return *((InferredParams*)nullptr);
 		}
@@ -138,4 +141,19 @@
 			assert(!"Mode was not already Params");
 			return *((InferredParams*)nullptr);
+		}
+
+		void set_inferParams( InferredParams && ps ) {
+			switch(mode) {
+			case Slots: 
+				data.resnSlots.~ResnSlots();
+				// fallthrough
+			case Empty: 
+				new(&data.inferParams) InferredParams{ std::move( ps ) };
+				mode = Params;
+				break;
+			case Params:
+				data.inferParams = std::move( ps );
+				break;
+			}
 		}
 
Index: src/AST/porting.md
===================================================================
--- src/AST/porting.md	(revision c8293206313c3350568d818d48c8da940d369684)
+++ src/AST/porting.md	(revision b69233aced1c8e524868a8ea35b14931e9676cf1)
@@ -308,4 +308,8 @@
 * pulled out conversion cost promotion into separate `promoteCvtCost` function
 
+`resolveAssertions` => `satisfyAssertions`
+* `ResolveAssertions.h` => `SatisfyAssertions.hpp`
+* `Resn*` => `Sat*`
+
 [1] https://gcc.gnu.org/onlinedocs/gcc-9.1.0/gcc/Type-Attributes.html#Type-Attributes
 
