   type: 'Call'
 
   constructor: (variable, args) ->
-    @children:  flatten [@variable: variable, @args: (args or [])]
+    @children:  _.flatten [@variable: variable, @args: (args or [])]
     @prefix:    ''
     this
 


# Keep the identifier regex in sync with the Lexer.
IDENTIFIER:   /^[a-zA-Z$_](\w|\$)*$/

# Flatten nested arrays recursively.
flatten: (list) ->
  memo: []
  for item in list
    return memo.concat(flatten(item)) if item instanceof Array
    memo.push(item)
    memo
  memo

# Merge objects.
merge: (options, overrides) ->

  SOAK: " == undefined ? undefined : "

  constructor: (base, properties) ->
    @children:   _.flatten [@base: base, @properties: (properties or [])]
    this

  push: (prop) ->
