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

class C<T extends core::Object = dynamic> extends core::Object {
  synthetic constructor •() → void
    ;
  method f1(core::List<self::C::T> x) → void
    ;
  method f2(() → self::C::T callback) → void
    ;
  method f3((self::C::T) → self::C::T callback) → void
    ;
  method f4((self::C::T) → void callback) → void
    ;
}
static method g1(self::C<core::num> c, core::List<core::num> l) → void
  ;
static method g2(self::C<core::num> c, () → core::num callback) → void
  ;
static method g3(self::C<core::num> c, (core::num) → core::num callback) → void
  ;
static method g4(self::C<core::num> c, (core::num) → void callback) → void
  ;
static method main() → dynamic
  ;
