Index: src/GenPoly/Box.cc
===================================================================
--- src/GenPoly/Box.cc	(revision 000ff2c54a34aa561f154b1505eebc17721c3c0d)
+++ src/GenPoly/Box.cc	(revision 2097cd4dc02f88b94b87a56df41ea5876c1dfe5e)
@@ -1174,5 +1174,5 @@
 			if ( expr->result && isPolyType( expr->result, scopeTyVars, env ) ) {
 				if ( NameExpr *name = dynamic_cast< NameExpr *>( expr->function ) ) {
-					if ( name->get_name() == "*?" ) {
+					if ( name->name == "*?" ) {
 						Expression *ret = expr->args.front();
 						expr->args.clear();
@@ -1187,14 +1187,14 @@
 		void Pass1::premutate( AddressExpr * ) { visit_children = false; }
 		Expression * Pass1::postmutate( AddressExpr * addrExpr ) {
-			assert( addrExpr->get_arg()->result && ! addrExpr->get_arg()->get_result()->isVoid() );
+			assert( addrExpr->arg->result && ! addrExpr->arg->result->isVoid() );
 
 			bool needs = false;
-			if ( UntypedExpr *expr = dynamic_cast< UntypedExpr *>( addrExpr->get_arg() ) ) {
-				if ( expr->result && isPolyType( expr->get_result(), scopeTyVars, env ) ) {
-					if ( NameExpr *name = dynamic_cast< NameExpr *>( expr->get_function() ) ) {
-						if ( name->get_name() == "*?" ) {
-							if ( ApplicationExpr * appExpr = dynamic_cast< ApplicationExpr * >( expr->get_args().front() ) ) {
-								assert( appExpr->get_function()->result );
-								FunctionType *function = getFunctionType( appExpr->get_function()->get_result() );
+			if ( UntypedExpr *expr = dynamic_cast< UntypedExpr *>( addrExpr->arg ) ) {
+				if ( expr->result && isPolyType( expr->result, scopeTyVars, env ) ) {
+					if ( NameExpr *name = dynamic_cast< NameExpr *>( expr->function ) ) {
+						if ( name->name == "*?" ) {
+							if ( ApplicationExpr * appExpr = dynamic_cast< ApplicationExpr * >( expr->args.front() ) ) {
+								assert( appExpr->function->result );
+								FunctionType *function = getFunctionType( appExpr->function->result );
 								assert( function );
 								needs = needsAdapter( function, scopeTyVars );
@@ -1206,12 +1206,12 @@
 			// isPolyType check needs to happen before mutating addrExpr arg, so pull it forward
 			// out of the if condition.
-			addrExpr->arg = addrExpr->get_arg()->acceptMutator( *visitor );
+			addrExpr->arg = addrExpr->arg->acceptMutator( *visitor );
 			// ... but must happen after mutate, since argument might change (e.g. intrinsic *?, ?[?]) - re-evaluate above comment
-			bool polytype = isPolyType( addrExpr->get_arg()->get_result(), scopeTyVars, env );
+			bool polytype = isPolyType( addrExpr->arg->result, scopeTyVars, env );
 			if ( polytype || needs ) {
-				Expression *ret = addrExpr->get_arg();
-				delete ret->get_result();
-				ret->set_result( addrExpr->get_result()->clone() );
-				addrExpr->set_arg( 0 );
+				Expression *ret = addrExpr->arg;
+				delete ret->result;
+				ret->result = addrExpr->result->clone();
+				addrExpr->arg = nullptr;
 				delete addrExpr;
 				return ret;
@@ -1250,5 +1250,5 @@
 
 		void Pass2::addAdapters( FunctionType *functionType ) {
-			std::list< DeclarationWithType *> &paramList = functionType->get_parameters();
+			std::list< DeclarationWithType *> &paramList = functionType->parameters;
 			std::list< FunctionType *> functions;
 			for ( std::list< DeclarationWithType *>::iterator arg = paramList.begin(); arg != paramList.end(); ++arg ) {
@@ -1271,22 +1271,22 @@
 
 		DeclarationWithType * Pass2::postmutate( FunctionDecl *functionDecl ) {
-			FunctionType * ftype = functionDecl->get_functionType();
-			if ( ! ftype->get_returnVals().empty() && functionDecl->get_statements() ) {
-				if ( ! isPrefix( functionDecl->get_name(), "_thunk" ) && ! isPrefix( functionDecl->get_name(), "_adapter" ) ) { // xxx - remove check for prefix once thunks properly use ctor/dtors
-					assert( ftype->get_returnVals().size() == 1 );
-					DeclarationWithType * retval = ftype->get_returnVals().front();
-					if ( retval->get_name() == "" ) {
-						retval->set_name( "_retval" );
+			FunctionType * ftype = functionDecl->type;
+			if ( ! ftype->returnVals.empty() && functionDecl->statements ) {
+				if ( ! isPrefix( functionDecl->name, "_thunk" ) && ! isPrefix( functionDecl->name, "_adapter" ) ) { // xxx - remove check for prefix once thunks properly use ctor/dtors
+					assert( ftype->returnVals.size() == 1 );
+					DeclarationWithType * retval = ftype->returnVals.front();
+					if ( retval->name == "" ) {
+						retval->name = "_retval";
 					}
-					functionDecl->get_statements()->get_kids().push_front( new DeclStmt( retval ) );
+					functionDecl->statements->kids.push_front( new DeclStmt( retval ) );
 					DeclarationWithType * newRet = retval->clone(); // for ownership purposes
-					ftype->get_returnVals().front() = newRet;
+					ftype->returnVals.front() = newRet;
 				}
 			}
 			// errors should have been caught by this point, remove initializers from parameters to allow correct codegen of default arguments
-			for ( Declaration * param : functionDecl->get_functionType()->get_parameters() ) {
+			for ( Declaration * param : functionDecl->type->parameters ) {
 				if ( ObjectDecl * obj = dynamic_cast< ObjectDecl * >( param ) ) {
-					delete obj->get_init();
-					obj->set_init( nullptr );
+					delete obj->init;
+					obj->init = nullptr;
 				}
 			}
