library;
//
// Problems in library:
//
// pkg/front_end/testcases/instantiate_to_bound/non_simple_no_dup.dart:11:12: Error: Generic type 'Hest' can't be used without type arguments in a type variable bound.
// Try providing type arguments to 'Hest' here.
// class Fisk<TypeY extends Map<Hest, Hest>> {}
//            ^^^^^
// pkg/front_end/testcases/instantiate_to_bound/non_simple_no_dup.dart:9:12: Context: Bound of this variable references variable 'TypeX' from the same declaration.
// class Hest<TypeX extends Hest<TypeX>> {}
//            ^^^^^
//
import self as self;
import "dart:core" as core;

class Hest<TypeX extends self::Hest<self::Hest::TypeX>* = self::Hest<dynamic>*> extends core::Object {
  synthetic constructor •() → self::Hest<self::Hest::TypeX*>*
    ;
}
class Fisk<TypeY extends core::Map<self::Hest<self::Hest<dynamic>*>*, self::Hest<self::Hest<dynamic>*>*>* = dynamic> extends core::Object {
  synthetic constructor •() → self::Fisk<self::Fisk::TypeY*>*
    ;
}
static method main() → dynamic
  ;
