Andrew, > Which is beautifully symmetric. Alternatively, you can think about > how you actually use it: > > map :: ((a -> b) -> [a]) -> [b] I am not following here: what do you mean? Clearly, this is not a valid typing for map. Moreover, modulo undefinedness, there are no functions with this typing. Cheers, Stefan