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

class A<T extends core::Object? = core::Object?, S extends core::Object = core::Object> extends core::Object {
  synthetic constructor •() → self::A<self::A::T%, self::A::S>
    : super core::Object::•()
    ;
  method hest<generic-covariant-impl X extends self::A::T% = self::A::T%, Y extends core::List<self::A::hest::X%> = core::List<self::A::T%>, Z extends core::List<self::A::hest::X?> = core::List<self::A::T?>>() → dynamic
    return null;
  method fisk<generic-covariant-impl X extends self::A::S = self::A::S, Y extends core::List<self::A::fisk::X> = core::List<self::A::S>, Z extends core::List<self::A::fisk::X?> = core::List<self::A::S?>>() → dynamic
    return null;
  method mus<X extends core::Object? = core::Object?, Y extends core::List<self::A::mus::X%> = core::List<core::Object?>, Z extends core::List<self::A::mus::X?> = core::List<core::Object?>>() → dynamic
    return null;
}
static method foo<T extends core::Object? = core::Object?, S extends core::List<self::foo::T%> = core::List<core::Object?>>(self::foo::T% t) → dynamic
  return null;
static method bar<T extends core::Object? = core::Object?, S extends core::List<self::bar::T?> = core::List<core::Object?>>(self::bar::T% t) → dynamic
  return null;
static method baz(core::int? x, core::int y) → dynamic {
  self::foo<core::int?, core::List<core::int?>>(x);
  self::bar<core::int, core::List<core::int?>>(y);
}
static method main() → dynamic {}
