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

typedef ToValue<T extends core::Object = dynamic> = (T) → void;
static method main() → dynamic {
  function f<T extends core::Object = dynamic>(T x) → (T) → void
    return null;
  dynamic x = f.call<core::int>(42);
  dynamic y = f.call(42);
  (core::int) → void takesInt = x;
  takesInt = y;
}
