anchor.diff:  
   typedef DisplayObject TextRenderer(String txt);
   
  -const EventStreamProvider<Event> pressedEvent = const EventStreamProvider<Event>(Button.PRESSED);
  -
  -class Button extends InteractiveObject {
  +const EventStreamProvider<Event> pressedEvent = const EventStreamProvider<Event>(ButtonBase.PRESSED);
  +
  +class ButtonBase extends InteractiveObject {
     static const String PRESSED = "BUTTON_PRESSED";
   
     EventStream<Event> get onPressed => pressedEvent.forTarget(this);
  
positive.code:     if (event.type == TouchEvent.TOUCH_END) dispatchEvent(new Event(PRESSED));
    }
  }
  
negative.code:   DisplayObject _currentState;
    Matrix _tmpMatrix = new Matrix.fromIdentity();
  
    ButtonBase({DisplayObject upState, DisplayObject overState, DisplayObject downState, DisplayObject hitTestState, textIconRelation:
        TextImageRelation.IMAGE_BEFORE_TEXT}) {
      useHandCursor = true;
      _registerEvents();
  