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

class Foo extends core::Object {
  final field core::int index;
  static const field core::List<self::Foo> values = const <self::Foo>[self::Foo::ec1, self::Foo::ec2];
  static const field self::Foo ec1 = const self::Foo::•(0);
  static const field self::Foo ec2 = const self::Foo::•(1);
  const constructor •(core::int index) → void
    : self::Foo::index = index, super core::Object::•()
    ;
  method toString() → core::String
    return const <core::int, core::String>{0: "Foo.ec1", 1: "Foo.ec2"}.[](this.{=self::Foo::index});
}
static method main() → dynamic
  ;
