the people in favor of racket would also point out that when some user of this function f needs to use the result it has nice built-in primitives, like number, question mark, that just can therefore know whether the function returned a number or string.