docs: function () {
  
          var foo = new ($prototype ({
  
              error: function () { return 'foo.error' },
  
              failure:              $alias ('error'),
              crash:                $alias ('error'),
              finalCrash:   $final ($alias ('crash')) /* chaining works */        })) ()
                  
                  var def = foo.constructor.$definition
  
                  $assert (foo.finalCrash, foo.crash, foo.failure, foo.error) // all point to same function
  
                  $assert    ($final.is (def.finalCrash))   // you can add new tags to alias members
                  $assertNot ($final.is (def.crash))        // adding tags to alias members does not affect original members 
                  $assertNot ($final.is (def.error))
  
          /*  Ad-hoc property aliases (applicable even when there's no explicitly declared member at what alias points to)
           */
          var size = new ($prototype ({
              w:  $alias ($property ('x')),
              h:  $alias ($property ('y')) })) ()
  
                  $assert ([size.x = 42, size.y = 24], [size.w, size.h], [42, 24]) }