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 = self::A|myMap<core::String*, core::String*>(<core::String*>["a", "b", "c"], (core::String* it) → core::String* => it);
static method A|myMap<T extends core::Object* = dynamic, R extends core::Object* = dynamic>(final core::List<self::A|myMap::T*>* #this, (self::A|myMap::T*) →* self::A|myMap::R* block) → core::List<self::A|myMap::R*>* {
  return #this.{core::Iterable::map}<self::A|myMap::R*>(block).{core::Iterable::toList}();
}
static method A|get#myMap<T extends core::Object* = dynamic>(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 {
  core::print(self::list);
}
