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

extension A<T extends core::Object* = dynamic> on core::List<T*>* {
  method myMap = self::A|myMap;
  tearoff myMap = self::A|get#myMap;
}
static final field core::List<core::String*>* list;
static method A|myMap<T extends core::Object* = dynamic, R extends core::Object* = dynamic>(lowered final core::List<self::A|myMap::T*>* #this, (self::A|myMap::T*) →* self::A|myMap::R* block) → core::List<self::A|myMap::R*>*
  ;
static method A|get#myMap<T extends core::Object* = dynamic>(lowered final core::List<self::A|get#myMap::T*>* #this) → <R extends core::Object* = dynamic>((self::A|get#myMap::T*) →* R*) →* core::List<R*>*
  return <R extends core::Object* = dynamic>((self::A|get#myMap::T*) →* R* block) → core::List<R*>* => self::A|myMap<self::A|get#myMap::T*, R*>(#this, block);
static method main() → dynamic
  ;
