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

class Foo extends core::Object {
  const constructor •(core::List<core::String*>* l) → self::Foo*
    : super core::Object::•()
    ;
  const constructor named(core::List<core::String*>* l) → self::Foo*
    : super core::Object::•()
    ;
}
@#C1
class Bar extends core::Object {
  synthetic constructor •() → self::Bar*
    : super core::Object::•()
    ;
}
@#C1
class Baz extends core::Object {
  synthetic constructor •() → self::Baz*
    : super core::Object::•()
    ;
}
static method main() → dynamic {}

constants  {
  #C1 = self::Foo {}
}
