library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;

class Pair<T extends core::Object? = dynamic, U extends core::Object? = dynamic> extends core::Object {
  covariant-by-class field self::Pair::T% t;
  covariant-by-class field self::Pair::U% u;
  constructor •(self::Pair::T% t, self::Pair::U% u) → self::Pair<self::Pair::T%, self::Pair::U%>
    ;
  get reversed() → self::Pair<self::Pair::U%, self::Pair::T%>
    ;
}
static method main() → dynamic
  ;
