docs: function () { $assertEveryCalled (function (
                                              fromConstructor,
                                              fromConfig,
                                              fromLateBoundListener,
                                              fromDefinition,
                                              fromListenerOnlyVariant) {
  
          var Compo = $component ({
                          color: $observableProperty (),
                          smell: $observableProperty (),
                          shape: $observableProperty ('round', function (now) { $assert (now, 'round'); fromDefinition () }),
                          size:  $observableProperty (function (x) { $assert (x, 42); fromListenerOnlyVariant () }),
                          init: function () {
                              this.colorChange (function (now, was) { if (was) { fromConstructor ()
                                  $assert ([now, was], ['green', 'blue']) } }) } })
  
          var compo = new Compo ({
              color: 'blue',
              size: 42,
              colorChange: function (now, was) { if (was) {   fromConfig ()
                                                              $assert ([now, was], ['green', 'blue']) } } })
  
          //console.log (compo.constructor.$definition)
  
          compo.smellChange (function (now, was) { fromLateBoundListener ()
              $assert (compo.smell, now, 'bad')
              $assert (undefined,   was) })
  
          compo.color = 'green'
          compo.smell = 'bad' }) }