class A {
  const A();
}

class C1 extends A with B {
  const C1();
}

class C2 = A with B;

class C3 extends C2 {
  const C3();
}

class E1 extends A with D {
  const E1();
}

class E2 = A with D;

class E3 extends E2 {
  const E3();
}

main() {}
mixin B {
  static const int value = 1;
}
mixin D {
  int value = 1;
}
