         SubstituteVariables
         MarkLocalAndGlobalVariables
         ReplaceUnaryVoid
-        InlineSomeIIFEs
+        IIFEIdioms
         LambdaLift
         ]
 

                        replacement.body.push n
                        
                return replacement
                                                                                                
transform_dump_tree = (n, indent=0) ->
        stringified_indent = ('' for i in [0..(indent*2)]).join('| ')

                                exp.ejs_decls = decls
                                exp.ejs_free_vars = uses.subtract decls
                        when syntax.FunctionDeclaration
                                # this should only happen for the toplevel function we create to wrap the source file
                                param_names = @param_names exp.params
                                param_names.add exp.rest.name if exp.rest?
                                exp.ejs_free_vars = (@free exp.body).subtract param_names
