I don't know if this is supposed to work, but it's handy: import std.typecons: Tuple; void main() { alias int function(int, int) Op; static void foo(Op o) {} foo((a, b) => a + b); // OK alias Tuple!(Op) T; auto t1 = T((int a, int b) => a + b); // OK auto t2 = T((a, b) => a + b); // Error } DMD 2.060alpha gives: temp.d(8): Error: template std.typecons.Tuple!(int function(int, int)).Tuple.__ctor does not match any function template declaration ...\dmd2\src\phobos\std\typecons.d(379): Error: template std.typecons.Tuple!(int function(int, int)).Tuple.__ctor cannot deduce template function from argument types !()(void)
The example code has worked since DMD 2.063.