There is no particular need for adding "native" multiple return functions, since we already have syntax for handling multiple return with arrays. (Better typing for arrays so that the individual values can be separately typed would be nice though.) Functional programming languages usually handle this by always having exactly one return value of functions (and sometimes, in the case of pure functional languages, also exactly one parameter). If you need to return multiple values, you return one value which is a tuple. If you don't need any return value, you return a special "unit" or "bottom" value. In the case of Pike, zero usually takes the role of a "bottom" value when one in needed.