     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
+    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
    new Op(@context.slice(0, -1), left, new Assign(rite, @value, '='), undefined, "?" in @context ).compile o

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

  # 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
