xxxxxxxxxx
struct Λ(alias fun)
{
auto ref opCall(Args...)(auto ref Args args)
{
return fun(args);
}
}
auto λ(alias fun)()
{
return Λ!(fun).init;
}
void main()
{
enum f = λ!(x => x + 1);
alias I = int;
alias F = float;
pragma (msg, f(I(1)));
pragma (msg, f(F(1)));
}