anchor.diff:    writeValue(newValue) {
       // Need to ignore the null on init.
       if (newValue == null) return;
  -    checked = newValue as bool;
  +    _setStates(checked: (newValue as bool), emitEvent: false);
     }
   
     @override
  
positive.code:         ? indeterminateIcon
          : _checked ? checkedIcon : uncheckedIcon;
  
      if (_checked != prevChecked) {
        _onChecked.add(_checked);
      }
  
      if (_indeterminate != prevIndeterminate) {
        _onIndeterminate.add(_indeterminate);
      }
  
  
negative.code: 
    /// Actually update the state variables. If both parameters are provided, then
    /// set them as presented, otherwise we will clear the other one if necessary.
    /// Events are only fired if there was a change and [emitEvent] is true.
    void _setStates(
        {bool checked: false, bool indeterminate: false, bool emitEvent = true}) {
      // At most one can be true.
      assert(!checked || !indeterminate);
  
  