Is this what you're looking for?: import std.stdio; import std.traits; void test(alias F)() { ReturnType!(F) otherFunc(ParameterTypeTuple!(F)) { typeof(return) result; return result; } } double foo(int x, int y) { double result; return x + y * 2.5; } void main() { test!foo; }