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

typedef F<U extends core::Object = dynamic, V extends core::Object = dynamic> = (U) → V;
class Foo<T extends core::Object = dynamic> extends core::Object {
  synthetic constructor •() → void
    ;
  get v1() → self::Bar<self::Foo::T>
    ;
  get v2() → self::Bar<core::List<self::Foo::T>>
    ;
  get v3() → self::Bar<(self::Foo::T) → self::Foo::T>
    ;
  get v4() → self::Bar<((self::Foo::T) → self::Foo::T) → self::Foo::T>
    ;
  get v5() → core::List<self::Foo::T>
    ;
  get v6() → core::List<(self::Foo::T) → self::Foo::T>
    ;
  get v7() → core::Map<self::Foo::T, self::Foo::T>
    ;
  get v8() → core::Map<(self::Foo::T) → self::Foo::T, self::Foo::T>
    ;
  get v9() → core::Map<self::Foo::T, (self::Foo::T) → self::Foo::T>
    ;
}
class Bar<T extends core::Object = dynamic> extends core::Object {
  const constructor •() → void
    ;
}
static method main() → dynamic
  ;
