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>(#C1, () → dynamic => throw "hello");
  self::map<dynamic>(() → dynamic => throw "hello", #C1);
  self::map<dynamic>(() → dynamic {
    return null;
  }, () → dynamic => throw "hello");
  self::map<dynamic>(() → dynamic => throw "hello", () → dynamic {
    return null;
  });
  self::id<dynamic>(() → dynamic {});
}

constants  {
  #C1 = tearoff self::foo
}
