public static UForAll create(List<UTypeVar> typeVars, UType quantifiedType) {
    return new AutoValue_UForAll(ImmutableList.copyOf(typeVars), quantifiedType);
  }
@Test
  public void equality() {
    UType objectType = UClassType.create("java.lang.Object", ImmutableList.<UType>of());
    UTypeVar eType = UTypeVar.create("E", objectType);
    UTypeVar tType = UTypeVar.create("T", objectType);
    UType listOfEType = UClassType.create("java.util.List", ImmutableList.<UType>of(eType));
    new EqualsTester()
        .addEqualityGroup(UForAll.create(ImmutableList.of(eType), eType)) // <E> E
        .addEqualityGroup(UForAll.create(ImmutableList.of(eType), listOfEType)) // <E> List<E>
        .addEqualityGroup(UForAll.create(ImmutableList.of(tType), tType)) // <T> T
        .testEquals();
  }