anchor.diff:        // get and remove the first available items from the two buffers, zip them and return them
         var item1 = buffer1.removeAt(0);
         var item2 = buffer2.removeAt(0);
  -      _tryAdd(controller, zipper(item1, item2));
  +      _tryRun(() =>_tryAdd(controller, zipper(item1, item2)), onError);
       }
   
       stream1.listen((x) => handleNewEvent(buffer1, buffer2, x),
  
positive.code:     if (!controller.isClosed) controller.add(event);
    }
  
    /**
     * Merges two stream into one, the merged stream will forward any elements and errors received from the input streams.
     *
  
negative.code: 
      void handleNewEvent() {
        if (item1 != null && item2 != null) {
          _tryRun(() => _tryAdd(controller, selector(item1, item2)), onError);
        }
      }
  
  