"fact must return (Num a) => a also."
fact 0 = 1 fact n = n * fact(n-1)
"The return value of 1 is consistent with that."