anchor.diff:            "Unexpected instantiation of $type with $instantiation: $result");
       }
   
  -    testRelations(DartType a, DartType b, bool areEqual, bool isSubtype) {
  +    testRelations(DartType a, DartType b,
  +        {bool areEqual: false, bool isSubtype: false}) {
  +      if (areEqual) {
  +        isSubtype = true;
  +      }
         Expect.equals(
             areEqual,
             a == b,
  
positive.code:     testInstantiate(F4, [C1, C2], 'void Function(C2,C1)');
      testInstantiate(F5, [num_], 'void Function(num)');
      testInstantiate(F6, [int_], 'void Function(int)');
  
      testRelations(F1, F1, true, true);
      testRelations(F1, F2, true, true);
      testRelations(F1, F3, false, false);
      testRelations(F1, F4, false, false);
      testRelations(F1, F5, false, false);
      testRelations(F1, F6, false, false);
  
      testRelations(F2, F1, true, true);
      testRelations(F2, F2, true, true);
      testRelations(F2, F3, false, false);
      testRelations(F2, F4, false, false);
      testRelations(F2, F5, false, false);
      testRelations(F2, F6, false, false);
  
      testRelations(F3, F1, false, false);
      testRelations(F3, F2, false, false);
      testRelations(F3, F3, true, true);
      testRelations(F3, F4, false, false);
      testRelations(F3, F5, false, false);
      testRelations(F3, F6, false, false);
  
      testRelations(F4, F1, false, false);
      testRelations(F4, F2, false, false);
      testRelations(F4, F3, false, false);
      testRelations(F4, F4, true, true);
      testRelations(F4, F5, false, false);
      testRelations(F4, F6, false, false);
  
      testRelations(F5, F1, false, false);
      testRelations(F5, F2, false, false);
      testRelations(F5, F3, false, false);
      testRelations(F5, F4, false, false);
      testRelations(F5, F5, true, true);
      testRelations(F5, F6, false, false);
  
      testRelations(F6, F1, false, false);
      testRelations(F6, F2, false, false);
      testRelations(F6, F3, false, false);
      testRelations(F6, F4, false, false);
      testRelations(F6, F5, false, false);
      testRelations(F6, F6, true, true);
  
      testRelations(F1.typeVariables.first, F1.typeVariables.first, true, true);
      testRelations(F1.typeVariables.first, F2.typeVariables.first, false, false);
    });
  }
  
negative.code:     FunctionType F4 = env.getFieldType('F4');
      FunctionType F5 = env.getFieldType('F5');
      FunctionType F6 = env.getFieldType('F6');
      FunctionType F7 = env.getFieldType('F7');
      FunctionType F8 = env.getFieldType('F8');
  
      testToString(F1, 'void Function<#A>(#A)');
      testToString(F2, 'void Function<#A>(#A)');
  