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

class C<E extends core::Object? = dynamic> extends core::Object {
  synthetic constructor •() → self::C<self::C::E%>
    ;
  method barA([(self::C::E%, self::C::E%) →? core::int cmp = null]) → void
    ;
  method barB([(self::C::E%, self::C::E%) →? core::int cmp = null]) → void
    ;
  method barC([(self::C::E%, self::C::E%) →? core::int cmp = null]) → void
    ;
  method barD([(self::C::E%, self::C::E%) →? core::int cmp = null]) → void
    ;
  method barE([(self::C::E%, self::C::E%) →? core::int cmp = null]) → void
    ;
  method barF([(self::C::E%, self::C::E%) →? core::int cmp = null]) → void
    ;
  static method _default(dynamic a, dynamic b) → core::int
    ;
}
static method foo<E extends core::Object? = dynamic>(self::C<self::foo::E%> c, (self::foo::E%, self::foo::E%) → core::int cmp) → void
  ;
static method main() → dynamic
  ;
