anchor.diff:          _notificationsWithArguments[prefix].add(label.substring(spaceIndex + 1));
       }
       _lastLabels = labels;
  +    _currentStateStream.add(ui);
     }
   
     void _handleNotification(RemyNotification notification) {
  
positive.code:   final Map<String, WatchStream<bool>> _notificationStatuses = <String, WatchStream<bool>>{};
    final Map<String, StreamController<String>> _notificationsWithArguments = <String, StreamController<String>>{};
    final StreamController<RemyNotification> _notifications = new StreamController<RemyNotification>.broadcast();
  
    Future<Null> get ready => _ready.future;
    final Completer<Null> _ready = new Completer<Null>();
  
    Stream<RemyNotification> get notifications => _notifications.stream;
  
    RemyUi get currentState => _remy.currentState;
  
    Set<String> _lastLabels = new Set<String>();
  
    void _handleUiUpdate(RemyUi ui) {
      if (!_ready.isCompleted)
        _ready.complete();
      Set<String> labels = new HashSet<String>.from(ui.messages.map((RemyNotification notification) => notification.label));
  
negative.code:       do {
          // TODO(ianh): Move pending messages into a list that waits for confirmation
          // and brings them back into the pending list if not confirmed in a short time
          while (_pendingMessages.isNotEmpty) {
            _server.write(_pendingMessages.removeAt(0));
          }
          _signalPendingMessage = new Completer<bool>();
          await _server.flush();
        } while (await _signalPendingMessage.future);
  