@NotNull
  public static Exact singleton(@NotNull ClassDef classDef) {
    if (!classDef.isFinal()) {
      throw new IllegalArgumentException("Singleton class must be final");
    }
    return new ExactClass(classDef, true);
  }
@NotNull
  public static Exact singleton(@NotNull ClassDef classDef)