                                 }
                 n
 
-# this class really doesn't behave like a normal NodeVisitor, as it modifies the tree in-place
-# check the free() function near the top of the file for the actual implementation.
-class ComputeFree extends NodeVisitor
+# this class really doesn't behave like a normal TreeTransformer, as it modifies the tree in-place.
+# XXX reformulate this as a TreeVisitor subclass.
+class ComputeFree extends TreeTransformer
         constructor: ->
                 @call_free = @free.bind @
                 super


# this should move to echo-desugar.coffee

class HoistFuncDecls extends NodeVisitor
        constructor: ->
                @prepends = []
                

                        name: global_name
                }

class NameAnonymousFunctions extends TreeTransformer
        visitAssignmentExpression: (n) ->
                n = super n
                lhs = n.left
