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

class A1<T extends core::Object* = dynamic> extends core::Object {
  synthetic constructor •() → self::A1<self::A1::T*>*
    : super core::Object::•()
    ;
}
extension A2<T extends core::Object* = dynamic> on self::A1<T*>* {
  method method1 = self::A2|method1;
  method method2 = self::A2|method2;
}
static method A2|method1<#T extends core::Object* = dynamic, S extends self::A2|method1::#T = dynamic>(final self::A1<self::A2|method1::#T*>* #this) → self::A1<self::A2|method1::#T*>* {
  return #this;
}
static method A2|method2<#T extends core::Object* = dynamic, S extends self::A1<self::A2|method2::#T>* = dynamic>(final self::A1<self::A2|method2::#T*>* #this, self::A2|method2::S* o) → self::A1<self::A2|method2::#T*>* {
  core::print(o);
  core::print(self::A2|method2::#T*);
  core::print(self::A2|method2::S*);
  return #this;
}
static method main() → dynamic {}
