| library; | 
 | import self as self; | 
 | import "dart:core" as core; | 
 |  | 
 | abstract class _B&Object&M1 extends core::Object implements self::M1 { | 
 |   const synthetic constructor •() → self::_B&Object&M1 | 
 |     : super core::Object::•() | 
 |     ; | 
 |   method m() → dynamic | 
 |     return core::print("M1"); | 
 | } | 
 | abstract class _B&Object&M1&M2 extends self::_B&Object&M1 implements self::M2 { | 
 |   const synthetic constructor •() → self::_B&Object&M1&M2 | 
 |     : super self::_B&Object&M1::•() | 
 |     ; | 
 |   method m() → dynamic | 
 |     return core::print("M2"); | 
 | } | 
 | class B extends self::_B&Object&M1&M2 { | 
 |   constructor •(dynamic value) → self::B | 
 |     : super self::_B&Object&M1&M2::•() | 
 |     ; | 
 | } | 
 | abstract class M1 extends core::Object { | 
 |   synthetic constructor •() → self::M1 | 
 |     : super core::Object::•() | 
 |     ; | 
 |   method m() → dynamic | 
 |     return core::print("M1"); | 
 | } | 
 | abstract class M2 extends core::Object { | 
 |   synthetic constructor •() → self::M2 | 
 |     : super core::Object::•() | 
 |     ; | 
 |   method m() → dynamic | 
 |     return core::print("M2"); | 
 | } | 
 | abstract class _C&Object&M1 extends core::Object implements self::M1 { | 
 |   const synthetic constructor •() → self::_C&Object&M1 | 
 |     : super core::Object::•() | 
 |     ; | 
 |   method m() → dynamic | 
 |     return core::print("M1"); | 
 | } | 
 | abstract class _C&Object&M1&M2 extends self::_C&Object&M1 implements self::M2 { | 
 |   const synthetic constructor •() → self::_C&Object&M1&M2 | 
 |     : super self::_C&Object&M1::•() | 
 |     ; | 
 |   method m() → dynamic | 
 |     return core::print("M2"); | 
 | } | 
 | class C extends self::_C&Object&M1&M2 { | 
 |   constructor •(dynamic value) → self::C | 
 |     : super self::_C&Object&M1&M2::•() | 
 |     ; | 
 | } | 
 | abstract class G1<T extends core::Object = dynamic> extends core::Object { | 
 |   synthetic constructor •() → self::G1<self::G1::T> | 
 |     : super core::Object::•() | 
 |     ; | 
 |   method m() → dynamic | 
 |     return core::print(self::G1::T); | 
 | } | 
 | abstract class _D&Object&G1<S extends core::Object = dynamic> extends core::Object implements self::G1<self::_D&Object&G1::S> { | 
 |   const synthetic constructor •() → self::_D&Object&G1<self::_D&Object&G1::S> | 
 |     : super core::Object::•() | 
 |     ; | 
 |   method m() → dynamic | 
 |     return core::print(self::_D&Object&G1::S); | 
 | } | 
 | class D<S extends core::Object = dynamic> extends self::_D&Object&G1<self::D::S> { | 
 |   synthetic constructor •() → self::D<self::D::S> | 
 |     : super self::_D&Object&G1::•() | 
 |     ; | 
 | } | 
 | static method main() → dynamic { | 
 |   new self::B::•(null).{self::M2::m}(); | 
 |   new self::C::•(null).{self::M2::m}(); | 
 |   new self::D::•<dynamic>().{self::G1::m}(); | 
 |   new self::D::•<core::int>().{self::G1::m}(); | 
 |   new self::D::•<core::List<core::int>>().{self::G1::m}(); | 
 | } |