anchor.diff:    }
   }
   
  +/// Tracks a single constraint on a single type variable.
  +///
  +/// This is called "_ProtoConstraint" to distinglish from [Constraint], which
  +/// tracks the upper and lower bounds that are together implied by a set of
  +/// [_ProtoConstraint]s.
   class _ProtoConstraint {
     final TypeParameter parameter;
   
  
positive.code:     return true;
    }
  
    bool _isNull(DartType type) =>
        type is InterfaceType &&
        identical(type.classNode, environment.coreTypes.nullClass);
  
    bool _isTop(DartType type) =>
        type is DynamicType ||
  
negative.code:     // no constraints.
      if (_isTop(supertype)) return true;
      // `Null` is a subtype match for any type `Q` under no constraints.
      // Note that nullable types will change this.
      if (_isNull(subtype)) return true;
      // `FutureOr<P>` is a subtype match for `FutureOr<Q>` with respect to `L`
      // under constraints `C`:
  