typedef void Callback<T>(T x);

class Foo<T> {
  final T finalField;
  final Callback<T> callbackField;
  late T mutableField;
  late Callback<T> mutableCallbackField;
  Foo(this.finalField, this.callbackField);
  void method(T x) {}
  set setter(T x) {}
  void withCallback(Callback<T> callback) {}
}

main() {}
