   action = if match = unwrap.exec action then match[1] else "(#{action}())"
   action = action.replace /\bnew /g, '$&yy.'
   action = action.replace /\b(?:Block\.wrap|extend)\b/g, 'yy.$&'
-  action = action.replace /\b(Op|Value\.create)\b/g, 'yy.$&'
+  action = action.replace /\b(Op|Value\.(create|wrap))\b/g, 'yy.$&'
   [patternString, "$$ = #{action};", options]
 
 # Grammatical Rules

  ForValue: [
    o 'Identifier'
    o 'ThisProperty'
    o 'Array',                                  -> Value.create $1
    o 'Object',                                 -> Value.create $1
  ]

  # An array or range comprehension has variables for the current element

  # Assignment when it happens within an object literal. The difference from
  # the ordinary **Assign** is that these allow numbers and strings as keys.
  AssignObj: [
    o 'ObjAssignable',                          -> Value.wrap $1
    o 'ObjAssignable : Expression',             -> new Assign Value.wrap($1), $3, 'object'
    o 'ObjAssignable :
       INDENT Expression OUTDENT',              -> new Assign Value.wrap($1), $4, 'object'
    o 'Comment'
  ]

