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

class I<X extends core::Object* = dynamic> extends core::Object {
  synthetic constructor •() → self::I<self::I::X*>*
    ;
}
class M0<T extends core::Object* = dynamic> extends self::I<core::List<self::M0::T*>*> {
  synthetic constructor •() → self::M0<self::M0::T*>*
    ;
}
class M1<T extends core::Object* = dynamic> extends self::I<core::List<self::M1::T*>*> {
  synthetic constructor •() → self::M1<self::M1::T*>*
    ;
}
class M2<T extends core::Object* = dynamic> extends self::M1<core::Map<self::M2::T*, self::M2::T*>*> {
  synthetic constructor •() → self::M2<self::M2::T*>*
    ;
}
abstract class _A&M2&M0 = self::M2<core::int*> with self::M0<core::Map<core::int*, core::int*>*> {
  synthetic constructor •() → self::_A&M2&M0*
    : super self::M2::•()
    ;
}
class A extends self::_A&M2&M0 {
  synthetic constructor •() → self::A*
    ;
}
static method main() → dynamic
  ;
