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

import "dart:async";

class Class<T extends core::Object? = dynamic> extends core::Object {
  constructor •({required () → FutureOr<core::List<self::Class::T%>>a}) → self::Class<self::Class::T%>
    : super core::Object::•()
    ;
}
static method method() → dynamic
  return null;
static method main() → dynamic {
  new self::Class::•<core::Object?>(a: () → asy::Future<core::List<core::Object?>> async /* emittedValueType= core::List<core::Object?> */ => self::method() as{TypeError,ForDynamic} FutureOr<core::List<core::Object?>>);
}
