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%>
    ;
}
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;
static synthetic 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);
