
On 2011-07-29, at 6:54 AM, Gary Klindt wrote:
So, why is it possible to work with the map :: (a -> b) -> [a] -> [b] function? One can use it with list of number and functions on numbers, can't one.
Yeah. Your question is pretty much an example of what what troubling me in my original post. And frankly, I doubt that my reasoning on this will get straightened out until I have studied the type system more thoroughly. Naively, the difference I see between your example using map and my original post is that I was *defining* f: f::a f = 1 which, I suppose, is quite a bit different than *calling* map. To parallel my example, one would (mistakenly) write something like this: map::(a -> b) -> [a] -> [b] map f lst = ['a','b','c'] The above gives the same message I got. It is tempting to think that " ['a','b','c'] is a list of b's, so it should work", but that is clearly wrong. - j -