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

typedef A<T extends core::Object? = dynamic> = self::C<T%, core::int>;
class B<X extends core::Object? = dynamic, Y extends core::Object? = dynamic> extends core::Object {
  covariant-by-class field self::B::X% x;
  constructor •(self::B::X% x) → self::B<self::B::X%, self::B::Y%>
    : self::B::x = x, super core::Object::•()
    ;
}
abstract class Mixin extends core::Object /*isMixinDeclaration*/  {
}
class C<X extends core::Object? = dynamic, Y extends core::Object? = dynamic> = self::B<self::C::X%, self::C::Y%> with self::Mixin {
  synthetic constructor •(self::C::X% x) → self::C<self::C::X%, self::C::Y%>
    : super self::B::•(x)
    ;
}
static field self::C<(dynamic, dynamic) → core::int, core::int> field = new self::C::•<(dynamic, dynamic) → core::int, core::int>((dynamic a, dynamic b) → core::int => 42);
static method _#A#new#tearOff<T extends core::Object? = dynamic>(self::_#A#new#tearOff::T% x) → self::C<self::_#A#new#tearOff::T%, core::int>
  return new self::C::•<self::_#A#new#tearOff::T%, core::int>(x);
