     return this
 
   children: ['base', 'properties']
+
+  copy : -> new Value @base, @properties
 
   # Add a property (or *properties* ) `Access` to the list.
   add: (props) ->


  toString: ->
    ' "' + @value + '"'

class exports.Undefined extends Base
  isAssignable: NO

# or vanilla.
exports.Value = class Value extends Base
  constructor: (base, props, tag) ->
    super()
    return base if not props and base instanceof Value
    @base       = base
    @properties = props or []
