 
   constructor: (variable, args) ->
     @children:  flatten [@variable: variable, @args: (args or [])]
+    @compile_splat_arguments: SplatNode.compile_mixed_array <- @, @args
     @prefix:    ''
 
   # Tag this invocation as creating a new instance.


  constructor: (objects) ->
    @children: @objects: objects or []

  compile_node: (o) ->
    o.indent: @idt(1)
    objects: for obj, i in @objects
      code: obj.compile(o)
      if obj instanceof CommentNode
        "\n$code\n$o.indent"
      else if i is @objects.length - 1
        code
      else
        "$code, "
    objects: objects.join('')
    ending: if objects.indexOf('\n') >= 0 then "\n$@tab]" else ']'
    "[$objects$ending"


  constructor: (meth, args) ->
    @children:  flatten [@meth: meth, @context: args[0], @args: (args.slice(1) or [])]
    @compile_splat_arguments: SplatNode.compile_mixed_array <- @, @args

  arguments: (o) ->
    for arg in @args
