anchor.diff:      int start = _startIndex;
       int end = _endIndex;
       if (start == end) return null;
  -    int value = _f(_list[start]);
  +    T value = _f(_list[start]);
       if (_list.length != length) {
         throw new ConcurrentModificationError(_list);
       }
       for (int i = start + 1; i < end; i++) {
  -      int nextValue = _f(_list[i]);
  +      T nextValue = _f(_list[i]);
         if (compare(value, nextValue) > 0) {
           value = nextValue;
         }
  
positive.code:     return value;
    }
  
    int max([int compare(T a, T b)]) {
      if (compare == null) {
        var defaultCompare = Comparable.compare;
        compare = defaultCompare;
  
negative.code:     throw new StateError("No matching element");
    }
  
    T min([int compare(T a, T b)]) {
      if (compare == null) {
        var defaultCompare = Comparable.compare;
        compare = defaultCompare;
  