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

class I<X extends core::Object> extends core::Object {
  synthetic constructor •() → void
    : super core::Object::•()
    ;
}
class M0<T extends core::Object> extends self::I<self::M0::T> {
  synthetic constructor •() → void
    : super self::I::•()
    ;
}
class M1<T extends core::Object> extends self::I<self::M1::T> {
  synthetic constructor •() → void
    : super self::I::•()
    ;
}
abstract class _M0&M1^#U0^<#U0 extends core::Object> = self::M0<self::_M0&M1^#U0^::#U0> with self::M1<self::_M0&M1^#U0^::#U0> {
}
class A extends self::_M0&M1^#U0^<core::int> {
  synthetic constructor •() → void
    : super self::M0::•()
    ;
}
static method main() → dynamic {}
