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

typedef F<invariant X extends core::Object? = dynamic> = <Y extends X% = dynamic>() → void;
typedef Fcov<X extends core::Object? = dynamic> = () → X%;
typedef Fcon<contravariant X extends core::Object? = dynamic> = (X%) → dynamic;
typedef Finv<invariant X extends core::Object? = dynamic> = (X%) → X%;
typedef FcovBound<X extends core::num> = () → X;
typedef FconBound<contravariant X extends core::num> = (X) → dynamic;
typedef FinvBound<invariant X extends core::num> = (X) → X;
typedef FcovCyclicBound<X extends self::A<X> = self::A<dynamic>> = () → X;
typedef FconCyclicBound<contravariant X extends self::A<X> = self::A<Never>> = (X) → dynamic;
typedef FinvCyclicBound<invariant X extends self::A<X> = self::A<dynamic>> = (X) → X;
typedef FcovCyclicCoBound<X extends (X) → dynamic = (Never) → dynamic> = () → X;
typedef FconCyclicCoBound<contravariant X extends (X) → dynamic = (dynamic) → dynamic> = (X) → dynamic;
typedef FinvCyclicCoBound<invariant X extends (X) → dynamic = (dynamic) → dynamic> = (X) → X;
class A<X extends core::Object? = dynamic> extends core::Object {
  synthetic constructor •() → self::A<self::A::X%>
    ;
}
class B<X extends core::Object? = dynamic> extends core::Object {
  synthetic constructor •() → self::B<self::B::X%>
    ;
}
static method toF<X extends core::Object? = dynamic>(self::toF::X% x) → <Y extends self::toF::X% = dynamic>() → void
  ;
static method testTopLevel(() → dynamic source1, (dynamic) → dynamic source2, (dynamic) → dynamic source3, () → core::num source4, (core::num) → dynamic source5, (core::num) → core::num source6, () → self::A<dynamic> source7, (self::A<Never>) → dynamic source8, () → (Never) → dynamic source10, ((dynamic) → dynamic) → dynamic source11, ((dynamic) → dynamic) → (dynamic) → dynamic source12) → void
  ;
static method testNested(self::B<() → dynamic> source1, self::B<(dynamic) → dynamic> source2, self::B<(dynamic) → dynamic> source3, self::B<() → core::num> source4, self::B<(core::num) → dynamic> source5, self::B<(core::num) → core::num> source6, self::B<() → self::A<dynamic>> source7, self::B<(self::A<Never>) → dynamic> source8, self::B<() → (Never) → dynamic> source10, self::B<((dynamic) → dynamic) → dynamic> source11, self::B<((dynamic) → dynamic) → (dynamic) → dynamic> source12) → void
  ;
static method main() → dynamic
  ;
