anchor.diff:  import 'toggleable.dart';
   
   class Switch extends StatelessWidget {
  -  Switch({ Key key, this.value, this.activeColor, this.onChanged })
  -      : super(key: key);
  +  Switch({
  +    Key key,
  +    this.value,
  +    this.activeColor,
  +    this.activeThumbDecoration,
  +    this.inactiveThumbDecoration,
  +    this.onChanged
  +  }) : super(key: key);
   
     final bool value;
     final Color activeColor;
  +  final Decoration activeThumbDecoration;
  +  final Decoration inactiveThumbDecoration;
     final ValueChanged<bool> onChanged;
   
     @override
  
positive.code:   }
  
    Color _cachedThumbColor;
    BoxPainter _thumbPainter;
  
    @override
    void paint(PaintingContext context, Offset offset) {
      final Canvas canvas = context.canvas;
  
      final bool isActive = onChanged != null;
  
      Color thumbColor = isActive ? Color.lerp(inactiveColor, activeColor, position.value) : inactiveColor;
      Color trackColor = isActive ? Color.lerp(inactiveTrackColor, activeTrackColor, position.value) : inactiveTrackColor;
  
      // Paint the track
      Paint paint = new Paint()
  
negative.code:     bool value,
      Color activeColor,
      Color inactiveColor,
      Decoration activeThumbDecoration,
      Decoration inactiveThumbDecoration,
      Color activeTrackColor,
      Color inactiveTrackColor,
      ValueChanged<bool> onChanged
    }) : _activeThumbDecoration = activeThumbDecoration,
         _inactiveThumbDecoration = inactiveThumbDecoration,
         _activeTrackColor = activeTrackColor,
         _inactiveTrackColor = inactiveTrackColor,
         super(
           value: value,
           activeColor: activeColor,
           inactiveColor: inactiveColor,
           onChanged: onChanged,
           minRadialReactionRadius: _kThumbRadius,
           size: const Size(_kSwitchWidth, _kSwitchHeight)
         ) {
      _drag = new HorizontalDragGestureRecognizer()
        ..onStart = _handleDragStart
        ..onUpdate = _handleDragUpdate
        ..onEnd = _handleDragEnd;
    }
  
    Decoration get activeThumbDecoration => _activeThumbDecoration;
    Decoration _activeThumbDecoration;
    void set activeThumbDecoration(Decoration value) {
      if (value == _activeThumbDecoration)
        return;
      _activeThumbDecoration = value;
      markNeedsPaint();
    }
  
    Decoration get inactiveThumbDecoration => _inactiveThumbDecoration;
    Decoration _inactiveThumbDecoration;
    void set inactiveThumbDecoration(Decoration value) {
      if (value == _inactiveThumbDecoration)
        return;
      _inactiveThumbDecoration = value;
      markNeedsPaint();
    }
  
    Color get activeTrackColor => _activeTrackColor;
  