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

class Foo<X extends core::Object? = dynamic> extends core::Object {
  synthetic constructor •() → self::Foo<self::Foo::X%>
    ;
}
class Bar<X extends core::Object? = dynamic, Y extends core::Object? = dynamic> extends core::Object {
  synthetic constructor •() → self::Bar<self::Bar::X%, self::Bar::Y%>
    ;
}
extension A1 on dynamic {
}
extension A2<X extends core::Object? = dynamic> on self::Foo<X%> {
}
extension A3<X extends core::Object? = dynamic, Y extends (X%) → dynamic = (Never) → dynamic> on self::Bar<X%, Y> {
}
extension A4<X extends core::Object? = dynamic, Y extends (X%) → dynamic = (Never) → dynamic> on self::Foo<Y> {
}
static method foo1(self::A1 a) → self::A1
  ;
static method foo2(self::A2<core::int> a, self::A2<dynamic> ai) → self::A2<dynamic>
  ;
static method foo3(self::A3<core::int, (core::num) → dynamic> a, self::A3<dynamic, (Never) → dynamic> ai) → self::A3<dynamic, (Never) → dynamic>
  ;
static method foo4(self::A4<core::int, (core::num) → dynamic> a, self::A4<dynamic, (Never) → dynamic> ai) → self::A4<dynamic, (Never) → dynamic>
  ;
static method bar() → dynamic
  ;
static method main() → dynamic
  ;
