Varying output type
The input type and output type of a function are fixed. So you can't write something like:
This is because the output type of
f can be either always a
Bool, as the first line implies, or always a number, as the second line implies.
See this FAQ for the correct approach.