When do you need to explicitly state the return type in a function definition?
when the function has side effects
when the function has no side effects
when the function returns a Unit type
when the function is recursive