class Foo {
  const Foo.named();
  const factory Foo.namedFactory() = Foo.named;
}

class FooGeneric<X> {
  const FooGeneric.named();
  const factory FooGeneric.namedFactory() = FooGeneric.named;
}

const Bar bar = Bar.named();
const Bar bar2 = Bar.namedFactory();
const BarGeneric<int> barGeneric = BarGeneric.named();
const BarGeneric<int> barGeneric2 = BarGeneric.namedFactory();
main() {}
typedef Bar = Foo;
typedef BarGeneric<X> = FooGeneric<X>;
