library test;
import self as self;
import "dart:core" as core;

typedef Function2<S extends core::Object, T extends core::Object> = (S) → T;
class A<T extends core::Object> extends core::Object {
  generic-covariant-impl generic-covariant-interface generic-contravariant field (self::A::T) → self::A::T x;
  constructor •((self::A::T) → self::A::T x) → void
    : self::A::x = x, super core::Object::•()
    ;
}
static method main() → void {
  {
    core::String x = "hello";
    core::int y = 3;
    function f(core::List<core::Map<core::int, core::String>> l) → void {}
    ;
    f.call(<core::Map<core::int, core::String>>[<core::int, core::String>{y: x}]);
  }
  {
    function f(core::int x) → core::int
      return 0;
    self::A<core::int> a = new self::A::•<core::int>(f);
  }
}
