// @dart = 2.9
import 'main_lib.dart';

class E1 with A, D {}

class E2 = Object with A, D;
class E3 = Object with A, F;

abstract class C6 extends C3 implements C4 {}

abstract class C8 extends C5 implements C7 {}

main() {}
