   # Class definitions have optional bodies of prototype property assignments,
   # and optional references to the superclass.
   Class: [
-    o "CLASS SimpleAssignable",                            -> new ClassNode $2
-    o "CLASS SimpleAssignable EXTENDS Value",              -> new ClassNode $2, $4
-    o "CLASS SimpleAssignable INDENT ClassBody OUTDENT",   -> new ClassNode $2, null, $4
+    o "CLASS SimpleAssignable",                 -> new ClassNode $2
+    o "CLASS SimpleAssignable EXTENDS Value",   -> new ClassNode $2, $4
+    o "CLASS SimpleAssignable INDENT ClassBody OUTDENT", -> new ClassNode $2, null, $4
     o "CLASS SimpleAssignable EXTENDS Value INDENT ClassBody OUTDENT", -> new ClassNode $2, $4, $6
   ]
-  
+
   # Assignments that can happen directly inside a class declaration.
   ClassAssign: [
     o "AssignObj",                              -> $1
     o "ThisProperty ASSIGN Expression",         -> new AssignNode new ValueNode($1), $3, 'this'
   ]
-  
+
   # A list of assignments to a class.
   ClassBody: [
     o "",                                       -> []


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

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

  # Extending an object by setting its prototype chain to reference a parent
  # object.
  Extends: [
    o "SimpleAssignable EXTENDS Value",         -> new ExtendsNode $1, $3
  ]

  # Ordinary function invocation, or a chained series of calls.
