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

class A<T extends core::Object?, S extends core::Object> extends core::Object {
  synthetic constructor •() → self::A<self::A::T%, self::A::S>
    : super core::Object::•()
    ;
  method hest<covariant-by-class X extends 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<covariant-by-class X extends 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?, 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?, 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?, 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 {}
