anchor.diff:    Object iterableContext<T>(Iterable<T> object) => object;
     Object foSetContext<T>(FutureOr<Set<T>> object) => object;
     Object foIterableContext<T>(FutureOr<Set<T>> object) => object;
  -  Object sContext(S object) => object;
  -  Object iContext(I object) => object;
   
     // Empty literal, no type arguments.
     // No context.
  
positive.code:   test();
  }
  
  void test<S extends Set<num>, I extends Iterable<num>>() {
    checkSet<T>(Object o, List elements) {
      Expect.type<Set<T>>(o);
      Set<T> set = o;
  
negative.code:   Expect.type<Set<Object>>(o5);
    Expect.notType<Set<Set<Object>>>(o5);
  
    // User defined constant class.
    const o6 = {
      Something(1, "a"),
      Something(2, "a"),
      Something(1, "b"),
      Something(2, "b"),
    };
    Expect.equals("1:a,2:a,1:b,2:b", o6.toList().join(","));
  
    // Canonicalization of constant sets takes ordering into account,
    // that is, o7 and o8 cannot be the same object.
    const o7 = {1, 2, 3};
    const o8 = {3, 2, 1};
    Expect.notIdentical(o7, o8);
    // But o7 and o9 must be identical.
    const o9 = {1, 2, 3};
    Expect.identical(o7, o9);
  }
  
  class Something {
  