anchor.diff:          if (mapping == null) return;
           if (element.isAbstract(compiler)) return;
           if (element.isFunction() &&
  -            RELATION_NAMES.contains(element.name.slowToString())) {
  +            PREDICATES.contains(element.name.slowToString())) {
             // Add the relational operators, ==, !=, <, etc., before any others.
             workSet.add(element);
             // Optimistically assume that they return bool.  We may need to back
  
positive.code:   TypeMask stringType;
    TypeMask typeType;
  
    // TODO(erikcorry): Autogenerate the alphanumeric names in this set.
    Set<String> RELATION_NAMES = ['identicalImplementation',
                                  'identical',
                                  '==', '<=', '>=', '<', '>'].toSet();
  
    final Compiler compiler;
  
  
negative.code:   bool recordReturnType(Element analyzedElement, TypeMask returnType) {
      if (optimismState == OPTIMISTIC &&
          returnType != boolType &&
          PREDICATES.contains(analyzedElement.name.slowToString())) {
        // One of the relational operators (==, <, ...) turned out not to return
        // boolean.  This means we need to restart the analysis.
        optimismState = RETRY;
  