class A {
  late
  num invariantField;
  covariant late num ;
  covariantField;
}
abstract class B implements A {
  get invariantField;
  set invariantField(value);
  get covariantField;
  set covariantField(value);
}
abstract class C implements A {
  int get invariantField;
  void set invariantField(int value) {}
  int get covariantField;
  void set covariantField(int value) {}
}
abstract class D implements A {
  int get invariantField;
  void set invariantField(covariant int value) {}
  int get covariantField;
  void set covariantField(covariant int value) {}
}
main() {}
