     memo
   memo
 
-# Dup an array or object.
-dup: (input) ->
-  if input instanceof Array
-    val for val in input
-  else
-    output: {}
-    (output[key]: val) for key, val of input
-    output
-
 # Merge objects.
 merge: (src, dest) ->
   fresh: {}

  # force sub-else bodies into statement form.
  compile_statement: (o) ->
    child:        del o, 'chain_child'
    cond_o:       dup o
    del cond_o, 'returns'
    o.indent:     @idt(1)
    o.top:        true


  # Compile each expression in the Expressions body.
  compile_node: (o) ->
    (@compile_expression(node, _.clone(o)) for node in @expressions).join("\n")

  # If this is the top-level Expressions, wrap everything in a safety closure.
  compile_root: (o) ->
