   # force inner *else* bodies into statement form.
   compileStatement: (o) ->
     child    = del o, 'chainChild'
+    exeq     = del o, 'isExistentialEquals'
+    
+    if exeq
+      return new If(@condition.invert(), @elseBodyNode(), type: 'if').compile o
+    
     cond     = @condition.compile o, LEVEL_PAREN
     o.indent += TAB
     body     = @ensureBlock(@body).compile o

    else
      fst = @first
      ref = fst
    if @isExistentialEquals
      new If(new Existence(fst).invert(), @second, type: 'if').addElse(fst).compile o
    else
      new If(new Existence(fst), ref, type: 'if').addElse(@second).compile o

  # Compile a unary **Op**.
  compileUnary: (o) ->

  # more than once.
  compileConditional: (o) ->
    [left, rite] = @variable.cacheReference o
    if "?" in @context then o.isExistentialEquals = true
    new Op(@context.slice(0, -1), left, new Assign(rite, @value, '=') ).compile o

  # Compile the assignment from an array splice literal, using JavaScript's
  # `Array#splice` method.
