What is the return doing there?
The return implies that the function will return the parameter `s` after it has done whatever it needs to.
It is useful for the compiler to do escape analysis or So memset would be something like this: pure void * memset(return void * s, int c, size_t n) { foreach (i; 0 .. n) (cast(char *) s)[i] = cast(char) c; return s; }