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

typedef F<T extends core::Object = dynamic> = () → void;
class Foo extends core::Object {
  const constructor •(core::List<core::String> l) → void
    ;
}
class C<T extends core::Object = dynamic> extends core::Object {
  synthetic constructor •() → void
    ;
}
class D extends core::Object {
  synthetic constructor •() → void
    ;
  method m<T extends core::Object = dynamic>() → void
    ;
}
static method f<T extends core::Object = dynamic>() → void
  ;
static method main() → dynamic
  ;
