anchor.diff:    }
   }
   
  +/// An action that plays a number of supplied actions in sequence. The duration
  +/// of the [ActionSequence] with be the sum of the durations of the actions
  +/// passed in to the constructor.
   class ActionSequence extends ActionInterval {
     Action _a;
     Action _b;
     double _split;
   
  +  /// Creates a new action with the list of actions passed in.
  +  ///
  +  ///     var mySequence = new ActionSequence([myAction0, myAction1, myAction2]);
     ActionSequence(List<Action> actions) {
       assert(actions.length >= 2);
   
  
positive.code:   }
  }
  
  class ActionRemoveNode extends ActionInstant {
    Node _node;
  
    ActionRemoveNode(this._node);
  
    void fire() {
  
negative.code: 
  typedef void ActionCallback();
  
  /// Actions are used to animate properties of nodes or any other type of
  /// objects. The actions are powered by an [ActionController], typically
  /// associated with a [Node]. The most commonly used action is the
  /// [ActionTween] which interpolates a property between two values over time.
  ///
  /// Actions can be nested in different ways; played in sequence using the
  /// [ActionSequence], or looped using the [ActionRepeat].
  ///
  /// You should typically not override this class directly, instead override
  /// [ActionInterval] or [ActionInstant] if you need to create a new action
  /// class.
  abstract class Action {
    Object _tag;
    bool _finished = false;
    bool _added = false;
  
    /// Moves to the next time step in an action, [dt] is the delta time since
    /// the last time step in seconds. Typically this method is called from the
    /// [ActionController].
    void step(double dt);
  
    /// Sets the action to a specific point in time. The [t] value that is passed
    /// in is a normalized value 0.0 to 1.0 of the duration of the action. Every
    /// action will always recieve a callback with the end time point (1.0),
    /// unless it is cancelled.
    void update(double t) {
    }
  
  