class Class<E> {
  final E field;
  Class(this.field);
  E returnTypeVariable() {}
}

int returnNonNullable(int value) {}
int? returnNullable(int? value) {}
main() {}
expect(expected, actual) {}
