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

typedef F<T extends core::Object* = dynamic> = () →* T*;
static final field core::Map<core::String*, () →* core::int*>* x = <core::String*, () →* core::int*>{};
static method main() → dynamic {}
