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

abstract sealed class Class extends core::Object {
  final field core::int value;
  constructor •(core::int value) → self::Class
    ;
}
class A extends self::Class {
  constructor •(core::int value) → self::A
    ;
  static synthetic method _#new#tearOff(core::int value) → self::A
    return new self::A::•(value);
}
class B extends self::Class {
  constructor •(core::int value) → self::B
    ;
  static synthetic method _#new#tearOff(core::int value) → self::B
    return new self::B::•(value);
}
