BasicInit::mutate(SynTree::CompoundStmt *compoundStmt) - collect all decl stmts from kids - move to top of block - replace initializers with assignment stmts - throw( 0 ) s.b. throw SemanticError( "type doesn't match initializer in ", odecl ); - doesn't work when initialization depends on previous computation in same block