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

static method map<T extends core::Object = dynamic>(() → self::map::T f1, () → self::map::T f2) → self::map::T {}
static method id<T extends core::Object = dynamic>(self::id::T t) → dynamic
  return t;
static method foo() → core::Null
  return null;
static method main() → dynamic {
  self::map<dynamic>(() → dynamic {}, () → dynamic => throw "hello");
  self::map<dynamic>(() → dynamic => throw "hello", () → dynamic {});
  () → core::Null f = () → dynamic {};
  self::map<dynamic>(self::foo, () → dynamic => throw "hello");
  self::map<dynamic>(() → dynamic => throw "hello", self::foo);
  self::map<dynamic>(() → dynamic {
    return null;
  }, () → dynamic => throw "hello");
  self::map<dynamic>(() → dynamic => throw "hello", () → dynamic {
    return null;
  });
  self::id<dynamic>(() → dynamic {});
}
