 
   # A reference to the *this* current object.
   This: [
-    o 'THIS',                                   -> Value.create new Literal 'this'
-    o '@',                                      -> Value.create new Literal 'this'
+    o 'THIS',                                   -> Value.wrap new Literal 'this'
+    o '@',                                      -> Value.wrap new Literal 'this'
   ]
 
   # A reference to a property on *this*.
   ThisProperty: [
-    o '@ Identifier',                           -> Value.create new Literal('this'), [new Access($2)], 'this'
+    o '@ Identifier',                           -> Value.wrap new Literal('this'), [new Access($2)], 'this'
   ]
 
   # The array literal.

  # A catch clause names its error and runs a block of code.
  Catch: [
    o 'CATCH Identifier Block',                 -> [$2, $3]
    o 'CATCH Object Block',                     -> [Value.create($2), $3]
  ]

  # Throw an exception object.


  # Variables and properties that can be assigned to.
  SimpleAssignable: [
    o 'Identifier',                             -> Value.wrap $1
    o 'Value Accessor',                         -> $1.add $2
    o 'Invocation Accessor',                    -> Value.wrap $1, [].concat $2
    o 'ThisProperty'
  ]

  # Everything that can be assigned to.
  Assignable: [
    o 'SimpleAssignable'
    o 'Array',                                  -> Value.wrap $1
    o 'Object',                                 -> Value.wrap $1
  ]

  # The types of things that can be treated as values -- assigned to, invoked
  # as functions, indexed into, named as a class, etc.
  Value: [
    o 'Assignable'
    o 'Literal',                                -> Value.wrap $1
    o 'Parenthetical',                          -> Value.wrap $1
    o 'Range',                                  -> Value.wrap $1
    o 'This'
  ]

