H. S. Teoh:
FWIW, for very long function signatures I write it this way:const(T)[] myVeryLongFunction(T)(const(T)[] arr, int x, int y, int z, ExtraArgs extraArgs) pure @safe nothrow if (is(T : int) && someOtherLongCriteria!T && yetMoreVeryLongCriteria!T) { ... }
You also need the pre&post-conditions :-) Bye, bearophile