library;
import self as self;
import "dart:core" as core;

abstract class A<X extends core::Object? = dynamic> extends core::Object {
  synthetic constructor •() → self::A<self::A::X%>
    ;
}
abstract class M1<Y extends core::Object? = dynamic> extends self::A<<Z extends core::Object? = dynamic>((Z%, self::M1::Y%) → void) → void> /*isMixinDeclaration*/  {
}
abstract class _B1&A&M1 = self::A<<Z extends core::Object? = dynamic>((Z%, core::int) → void) → void> with self::M1<core::int> /*isAnonymousMixin*/  {
  synthetic constructor •() → self::_B1&A&M1
    : super self::A::•()
    ;
}
class B1 extends self::_B1&A&M1 {
  synthetic constructor •() → self::B1
    ;
}
