Index: src/SynTree/Declaration.h
===================================================================
--- src/SynTree/Declaration.h	(revision 234223fb13167c125e360f00a079c2de9c607865)
+++ src/SynTree/Declaration.h	(revision 871cdb4cbb92efed083345284bc13f2c3e0da057)
@@ -155,6 +155,6 @@
 	virtual ~FunctionDecl();
 
-	Type * get_type() const;
-	virtual void set_type(Type *);
+	Type * get_type() const { return type; }
+	virtual void set_type(Type * t) { type = safe_dynamic_cast< FunctionType* >( t ); }
 
 	FunctionType * get_functionType() const { return type; }
Index: src/SynTree/Expression.h
===================================================================
--- src/SynTree/Expression.h	(revision 234223fb13167c125e360f00a079c2de9c607865)
+++ src/SynTree/Expression.h	(revision 871cdb4cbb92efed083345284bc13f2c3e0da057)
@@ -84,4 +84,6 @@
   public:
 	Expression * function;
+	std::list<Expression *> args;
+	InferredParams inferParams;
 
 	ApplicationExpr( Expression * function, const std::list<Expression *> & args = std::list< Expression * >() );
@@ -98,8 +100,4 @@
 	virtual Expression * acceptMutator( Mutator & m ) { return m.mutate( this ); }
 	virtual void print( std::ostream & os, int indent = 0 ) const;
-
-  private:
-	std::list<Expression *> args;
-	InferredParams inferParams;
 };
 
Index: src/SynTree/FunctionDecl.cc
===================================================================
--- src/SynTree/FunctionDecl.cc	(revision 234223fb13167c125e360f00a079c2de9c607865)
+++ src/SynTree/FunctionDecl.cc	(revision 871cdb4cbb92efed083345284bc13f2c3e0da057)
@@ -44,13 +44,4 @@
 	delete type;
 	delete statements;
-}
-
-Type * FunctionDecl::get_type() const {
-	return type;
-}
-
-void FunctionDecl::set_type( Type *t ) {
-	type = dynamic_cast< FunctionType* >( t );
-	assert( type );
 }
 
Index: src/SynTree/Statement.h
===================================================================
--- src/SynTree/Statement.h	(revision 234223fb13167c125e360f00a079c2de9c607865)
+++ src/SynTree/Statement.h	(revision 871cdb4cbb92efed083345284bc13f2c3e0da057)
@@ -155,4 +155,5 @@
   public:
 	Expression * condition;
+	std::list<Statement *> statements;
 
 	SwitchStmt( std::list<Label> labels, Expression *condition, std::list<Statement *> &statements );
@@ -170,6 +171,5 @@
 	virtual SwitchStmt *clone() const { return new SwitchStmt( *this ); }
 	virtual void print( std::ostream &os, int indent = 0 ) const;
-  private:
-	std::list<Statement *> statements;
+
 };
 
@@ -327,7 +327,7 @@
 class TryStmt : public Statement {
   public:
-	CompoundStmt *block;
+	CompoundStmt * block;
 	std::list<CatchStmt *> handlers;
-	FinallyStmt *finallyBlock;
+	FinallyStmt * finallyBlock;
 
 	TryStmt( std::list<Label> labels, CompoundStmt *tryBlock, std::list<CatchStmt *> &handlers, FinallyStmt *finallyBlock = 0 );
