// @dart = 2.9
abstract class Base {}

class Foo extends Base {}

class Bar extends Base {}

class Baz extends Base {}

void foo(x) {}
void bar(x) {}
void foo_escaped(x) {}
void bar_escaped(x) {}
void escape(fn) {}
main() {}
