 
     # Comprehensions can either be normal, with a block of expressions
     # to execute, or postfix, with a single expression.
-    o 'LoopHead   Block',    -> $1.addBody $2
-    o 'Statement  LoopHead', -> $2.addBody Lines $1
-    o 'Expression LoopHead', -> $2.addBody Lines $1
-
-    o 'SWITCH Expression Cases',               -> Switch $2, $3
-    o 'SWITCH Expression Cases DEFAULT Block', -> Switch $2, $3, $5
-    o 'SWITCH Cases',                          -> Switch null, $2
-    o 'SWITCH Cases DEFAULT Block',            -> Switch null, $2, $4
-
-    o 'TRY Block',                                      -> Try $2
-    o 'TRY Block CATCH IDENTIFIER Block',               -> Try $2, $4, $5
-    o 'TRY Block                        FINALLY Block', -> Try $2, null, null, $4
-    o 'TRY Block CATCH IDENTIFIER Block FINALLY Block', -> Try $2, $4, $5, $7
+    o 'LoopHead   Block'    ,-> $1.addBody $2
+    o 'Statement  LoopHead' ,-> $2.addBody Lines $1
+    o 'Expression LoopHead' ,-> $2.addBody Lines $1
+
+    o 'SWITCH Expression Cases'               ,-> Switch $2, $3
+    o 'SWITCH Expression Cases DEFAULT Block' ,-> Switch $2, $3, $5
+    o 'SWITCH Cases'                          ,-> Switch null, $2
+    o 'SWITCH Cases DEFAULT Block'            ,-> Switch null, $2, $4
+
+    o 'TRY Block'                                      ,-> Try $2
+    o 'TRY Block CATCH IDENTIFIER Block'               ,-> Try $2, $4, $5
+    o 'TRY Block                        FINALLY Block' ,-> Try $2, null, null, $4
+    o 'TRY Block CATCH IDENTIFIER Block FINALLY Block' ,-> Try $2, $4, $5, $7
 
     # Class definitions have optional bodies of prototype property assignments,
     # and optional references to the superclass.
-    o 'CLASS OptExtends',                        -> Class null, $2
-    o 'CLASS OptExtends Block',                  -> Class null, $2, $3
-    o 'CLASS SimpleAssignable OptExtends',       -> Class $2, $3
-    o 'CLASS SimpleAssignable OptExtends Block', -> Class $2, $3, $4
-
-    o 'SimpleAssignable EXTENDS Expression', -> Extends $1, $3
+    o 'CLASS OptExtends'                        ,-> Class null, $2
+    o 'CLASS OptExtends Block'                  ,-> Class null, $2, $3
+    o 'CLASS SimpleAssignable OptExtends'       ,-> Class $2, $3
+    o 'CLASS SimpleAssignable OptExtends Block' ,-> Class $2, $3, $4
+
+    o 'SimpleAssignable EXTENDS Expression' ,-> Extends $1, $3
   ]
 
   # Any list of statements and expressions,

  # where only values are accepted, wrapping it in parentheses will always do
  # the trick.
  Parenthetical: [
    o '(        Body         )', -> Parens $2.unwrap()
    o '( INDENT Body OUTDENT )', -> Parens $3.unwrap()
  ]

  # Pure statements which cannot be expressions.

    o 'UNARY      Expression' , -> Op $1, $2
    o 'PLUS_MINUS Expression' ,(-> Op $1, $2), prec: 'UNARY'

    o 'Expression ?' ,-> Existence $1

    o 'CREMENT SimpleAssignable' ,-> Op $1, $2
    o 'SimpleAssignable CREMENT' ,-> Op $2, $1, null, true
