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

typedef Function2<contravariant S extends core::Object* = dynamic, T extends core::Object* = dynamic> = (S*) →* T*;
class A<T extends core::Object* = dynamic> extends core::Object {
  generic-covariant-impl field (self::A::T*) →* self::A::T* x;
  constructor •((self::A::T*) →* self::A::T* x) → self::A<self::A::T*>*
    : 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);
  }
}
