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

class A extends core::Object {
  constructor •() → self::A
    : super core::Object::•()
    ;
}
class B extends core::Object {
  constructor •(core::int x, core::double y, core::String s) → self::B
    : super core::Object::•()
    ;
}
class C<T extends core::Object = dynamic> extends core::Object {
  constructor •() → self::C<self::C::T>
    : super core::Object::•()
    ;
}
class D<T extends core::Object = dynamic, S extends core::Object = dynamic> extends core::Object {
  constructor •(self::D::T x, self::D::S y) → self::D<self::D::T, self::D::S>
    : super core::Object::•()
    ;
}
static method main() → void {
  new self::A::•();
  new self::B::•(0, 3.14, "foo");
  new self::C::•<dynamic>();
  new self::D::•<core::Object, core::int>(null, 3);
}
