   # Everything that can be assigned to.
   Assignable: [
     o 'SimpleAssignable'
-    o 'Array',           -> new Value $1
-    o 'Object',          -> new Value $1
+    o 'Array',                                  -> new Value $1
+    o 'Object',                                 -> new Value $1
   ]
 
   # The types of things that can be treated as values -- assigned to, invoked

  ]

  Loop: [
    o 'LOOP Block',      -> new While(new Literal 'true').addBody $2
    o 'LOOP Expression', -> new While(new Literal 'true').addBody Expressions.wrap [$2]
  ]

  # Array, object, and range comprehensions, at the most generic level.
  # Comprehensions can either be normal, with a block of expressions to execute,
  # or postfix, with a single expression.
  For: [
    o 'Statement  ForBody', -> new For $1, $2
    o 'Expression ForBody', -> new For $1, $2
    o 'ForBody    Block',   -> new For $2, $1
  ]

  # An array of all accepted values for a variable inside the loop. This
  # enables support for pattern matching.
  ForValue: [
    o 'Identifier'
    o 'Array',  -> new Value $1
    o 'Object', -> new Value $1
  ]

  ForIn: [

  ]

  ForOf: [
    o 'FOROF Expression',                       -> object: on, source: $2
    o 'FOROF Expression WHEN Expression',       -> object: on, source: $2, guard: $4
  ]

  ForTo: [
