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

typedef F = (core::int*) →* core::Iterable<core::num*>*;
typedef G = (core::double*) →* core::List<core::int*>*;
static method generic<T extends core::Object* = dynamic>((self::generic::T*) →* dynamic a, (self::generic::T*) →* dynamic b) → self::generic::T*
  return null;
static method main() → dynamic {
  (core::num*) →* core::List<core::int*>* v = self::generic<(core::num*) →* core::List<core::int*>*>(((core::int*) →* core::Iterable<core::num*>* f) → Null => null, ((core::double*) →* core::List<core::int*>* g) → Null => null);
}
