abstract class A1 {
  void extendedClassMember() {}
  void extendedInterfaceMember();
}

abstract class A3 extends A1 with A2 {
  void declaredClassMember() {}
  void declaredInterfaceMember();
}

abstract class A4 = A1 with A2;

abstract class A5 implements A1 {}

abstract class B1 {
  void extendedAndImplementedMember() {}
  void twiceInterfaceMember() {}
}

abstract class B2 {
  void twiceInterfaceMember() {}
}

abstract class B3 {
  void extendedAndImplementedMember() {}
}

abstract class B4 extends B3 implements B1, B2 {}

abstract class C3 with C1 implements C2 {}

class A6 extends A1 implements A1 {}

class B5 extends B4 {}

class B6 extends B3 implements B1, B2 {}

class C2 {
  void mixedInAndImplementedClassMember() {}
  void mixedInAndImplementedInterfaceMember() {}
}

class C4 extends C3 {}

class C5 with C1 implements C2 {}

main() {}

mixin A2 {
  void mixedInClassMember() {}
  void mixedInInterfaceMember();
}

mixin C1 {
  void mixedInAndImplementedClassMember() {}
  void mixedInAndImplementedInterfaceMember();
}
