anchor.diff:    }
   }
   
  +/// An action that tweens a property between two values, optionally using an
  +/// animation curve. This is one of the most common building blocks when
  +/// creating actions. The tween class can be used to animate properties of the
  +/// type [Point], [Size], [Rect], [double], or [Color].
   class ActionTween extends ActionInterval {
  +
  +  /// The setter method used to set the property being animated.
     final Function setter;
  +
  +  /// The start value of the animation.
     final startVal;
  +
  +  /// The end value of the animation.
     final endVal;
   
     var _delta;
   
  +  /// Creates a new tween action. The [setter] will be called to update the
  +  /// animated property from [startVal] to [endVal] over the [duration] time in
  +  /// seconds. Optionally an animation [curve] can be passed in for easing the
  +  /// animation.
  +  ///
  +  ///     // Animate myNode from its current position to 100.0, 100.0 during
  +  ///     // 1.0 second and a bounceOut easing
  +  ///     var myTween = new ActionTween(
  +  ///       (a) => myNode.position = a,
  +  ///       myNode.position,
  +  ///       new Point(100.0, 100.0,
  +  ///       1.0,
  +  ///       bounceOut
  +  ///     );
  +  ///     myNode.actions.run(myTween);
     ActionTween(this.setter, this.startVal, this.endVal, double duration, [Curve curve]) : super(duration, curve) {
       _computeDelta();
     }
  
positive.code: 
  typedef void ActionCallback();
  
  abstract class Action {
    Object _tag;
    bool _finished = false;
    bool _added = false;
  
    void step(double dt);
    void update(double t) {
    }
  
  
negative.code:     }
    }
  
    /// Stops all actions currently being run by the controller and removes them.
    ///
    ///     myNode.actions.stopAll();
    void stopAll() {
      for (int i = _actions.length - 1; i >= 0; i--) {
        _stopAtIndex(i);
  