 ClosureNode: exports.ClosureNode: {
 
   wrap: (expressions, statement) ->
-    func: new ParentheticalNode(new CodeNode([], Expressions.wrap(expressions)))
+    func: new ParentheticalNode(new CodeNode([], Expressions.wrap([expressions])))
     call: new CallNode(new ValueNode(func, new AccessorNode(new LiteralNode('call'))), [new LiteralNode('this')])
-    if statement then Expressions.wrap(call) else call
+    if statement then Expressions.wrap([call]) else call
 
 }
 

  wrap: (array, expressions) ->
    expr: expressions.unwrap()
    return expressions if expr.is_statement_only() or expr.contains (n) -> n.is_statement_only()
    Expressions.wrap(new CallNode(
      new ValueNode(new LiteralNode(array), [new AccessorNode(new LiteralNode('push'))]), [expr]
    ))

}



# Merge objects.
merge: (src, dest) ->
  fresh: {}
  (fresh[key]: val) for key, val of src
  (fresh[key]: val) for key, val of dest
  fresh

# Do any of the elements in the list pass a truth test?
any: (list, test) ->
