
Right, forgot about seq there, but the point still holds that there
are a very limited number of functions of that type, and in
particular, the functions can't decide what to do based on the type
parameter 'a'.
- Cale
On 14 Oct 2005 05:49:27 -0000, voigt.16734551@bloglines.com
--- Cale Gibbard
As an example of this sort of thing, I know that there are only 4 values of type a -> Bool (without the class context). They are the constant functions (\x -> True), (\x -> False), and two kinds of failure (\x -> _|_), and _|_, where _|_ is pronounced "bottom" and represents something along the lines of nontermination (aborting the program also counts).
Not exactly. There are also (\x -> seq x True) and (\x -> seq x False), neither of which is equivalent to any of the four functions above.
Regards,
Janis Voigtlaender.