As stated by multiple people, most nested functions will be 'delegates'. However, a nested function is a 'function' if it does not touch local scope: void main() { int twice(int i) { return i * 2; } // Not a delegate: static assert(is (typeof(twice) == function)); } Ali