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

typedef F = () → void;
class A<T extends core::Object? = dynamic> extends core::Object {
  synthetic constructor •() → self::A<self::A::T*>*
    : super core::Object::•()
    ;
}
class B extends self::A<() →? dynamic> {
  synthetic constructor •() → self::B*
    : super self::A::•()
    ;
  method method(() →? dynamic x) → () →? dynamic
    return null;
}
static method foo() → void {}
static method bar() → () → void
  return #C1;
static method baz() → () → void
  return #C1;
static method hest() → () → void
  return #C1;
static method fisk() → () →? void
  return #C1;
static method foobar(() →? dynamic x) → () →? dynamic
  return null;
static method main() → dynamic {
  () → void g;
  () →? void f = g;
  () → void fBar = self::bar();
  () → void fBaz = self::baz();
  () → void fHest = self::hest();
  () →? void fFisk = self::fisk();
}

constants  {
  #C1 = tearoff self::foo
}
