anchor.diff:    final SettableScope _hasUses = new SettableScope.notEntered();
     final StreamController<UseOptionEvent> _uses =
         new StreamController.broadcast(sync: true);
  -  Observable<int> _useCount;
  +  int _useCount = 0;
     ScopeAsValue _available;
   
     Option(this.text, {this.allowedUseCount: 1}) {
  -    _useCount = new Observable.ofImmutable(0, owner: this);
       _available = new ScopeAsValue(owner: this);
   
       if (allowedUseCount < 0) {
  
positive.code:       return new Future.error(new OptionNotAvailableException(this));
      }
  
      _useCount.set((c) => c + 1);
  
      if (_useCount.nextValue == allowedUseCount) {
        _hasUses.exit(null);
      }
  
  
negative.code: 
    final int allowedUseCount;
  
    /// Ticks as soon as [use] is called should the use be permitted.
    int get useCount => _useCount;
  
    bool get isAvailable => _available.observed.value;
  
  