library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;

abstract class _A&B&M = self::B with self::M /*isAnonymousMixin*/  {
  synthetic constructor •() → self::_A&B&M
    : super self::B::•()
    ;
}
class A extends self::_A&B&M {
  synthetic constructor •() → self::A
    : super self::_A&B&M::•()
    ;
}
class B extends core::Object {
  final field core::Object m = new core::Object::•();
  synthetic constructor •() → self::B
    : super core::Object::•()
    ;
}
class M extends core::Object {
  synthetic constructor •() → self::M
    : super core::Object::•()
    ;
  static method m() → core::Object
    return new core::Object::•();
}
static method main() → dynamic {
  new self::A::•();
}
