 
   assigns: (name) -> @name.assigns name
 
-  compile: (o) ->
-    if @index? then @compileParam o else @name.compile o
+  compile: (o) -> if @index? then @compileParam o else @name.compile o
 
   # Compiling a parameter splat means recovering the parameters that succeed
   # the splat in the parameter list, by slicing the arguments object.


  children: ['name']

  constructor: (@name, @attach, @splat) ->
    super()
    @value = new Literal @name

  compile: (o) -> @value.compile o, LEVEL_LIST



  children: ['params', 'body']

  constructor: (params, body, tag) ->
    super()
    @params  = params or []
    @body    = body   or new Expressions
    @bound   = tag is 'boundfunc'
    @context = 'this' if @bound

  # Compilation creates a new scope unless explicitly asked to share with the
  # outer scope. Handles splat parameters in the parameter list by peeking at
