anchor.diff:  
     /// The animation driving this widget's implicit animations.
     Animation<double> get animation => _animation;
  -  late Animation<double> _animation = _createCurve();
  +  late CurvedAnimation _animation = _createCurve();
   
     @override
     void initState() {
  
positive.code: 
    @override
    void dispose() {
      (_animation as CurvedAnimation).dispose();
      _controller.dispose();
      super.dispose();
    }
  
negative.code:   void didUpdateWidget(T oldWidget) {
      super.didUpdateWidget(oldWidget);
      if (widget.curve != oldWidget.curve) {
        _animation.dispose();
        _animation = _createCurve();
      }
      _controller.duration = widget.duration;
  