   # ambiguity.
   IfBlock: [
     o "IF Expression Block",                    -> new IfNode $2, $3
-    o "UNLESS Expression Block",                -> new IfNode $2, $3, {invert: true}
+    o "UNLESS Expression Block",                -> new IfNode $2, $3, invert: true
     o "IfBlock ELSE IF Expression Block",       -> $1.addElse (new IfNode($4, $5)).forceStatement()
     o "IfBlock ELSE Block",                     -> $1.addElse $3
   ]


  # An individual **When** clause, with action.
  When: [
    o "LEADING_WHEN SimpleArgs Block",            -> new IfNode $2, $3, {statement: true}
    o "LEADING_WHEN SimpleArgs Block TERMINATOR", -> new IfNode $2, $3, {statement: true}
  ]

  # The most basic form of *if* is a condition and an action. The following

  # *if* and *unless*.
  If: [
    o "IfBlock"
    o "Statement IF Expression",                -> new IfNode $3, Expressions.wrap([$1]), statement: true
    o "Expression IF Expression",               -> new IfNode $3, Expressions.wrap([$1]), statement: true
    o "Statement UNLESS Expression",            -> new IfNode $3, Expressions.wrap([$1]), statement: true, invert: true
    o "Expression UNLESS Expression",           -> new IfNode $3, Expressions.wrap([$1]), statement: true, invert: true
  ]

  # Arithmetic and logical operators, working on one or more operands.
