anchor.diff:    Widget child;
     DismissedCallback onDismissed;
   
  -  AnimationBuilder _transform;
  +  AnimatedType<Point> _position;
  +  AnimatedType<double> _opacity;
     AnimationPerformance _performance;
  +
     double _width;
     double _dragX = 0.0;
     bool _dragUnderway = false;
   
     void initState() {
  -    _transform = new AnimationBuilder()
  -      ..position = new AnimatedType<Point>(Point.origin)
  -      ..opacity = new AnimatedType<double>(1.0, end: 0.0);
  -
  -    _performance = _transform.createPerformance(
  -        [_transform.position, _transform.opacity],
  -        duration: new Duration(milliseconds: _kCardDismissFadeoutMS));
  -    _performance.addListener(_handleAnimationProgressChanged);
  +    _position = new AnimatedType<Point>(Point.origin);
  +    _opacity = new AnimatedType<double>(1.0, end: 0.0);
  +    _performance = new AnimationPerformance()
  +      ..duration = _kCardDismissFadeout
  +      ..variable = new AnimatedList([_position, _opacity])
  +      ..addListener(_handleAnimationProgressChanged);
       watch(_performance);
     }
   
  
positive.code:       onPointerCancel: _handlePointerUpOrCancel,
        onGestureFlingStart: _handleFlingStart,
        child: new SizeObserver(
          child: transformedChild,
          callback: _handleSizeChanged
        )
      );
    }
  
negative.code: 
  import 'dart:sky' as sky;
  
  import 'package:sky/animation/animation_performance.dart';
  import 'package:sky/widgets/animated_component.dart';
  import 'package:sky/widgets/basic.dart';
  import 'package:sky/widgets/widget.dart';
  import 'package:vector_math/vector_math.dart';
  
  const Duration _kCardDismissFadeout = const Duration(milliseconds: 300);
  const double _kMinFlingVelocity = 700.0;
  const double _kMinFlingVelocityDelta = 400.0;
  const double _kDismissCardThreshold = 0.6;
  