On 9/12/07, PR Stanley <[EMAIL PROTECTED]> wrote:
>  >  The same should apply to head and tail. head or tail  of [] should be
>  Disagree, strongly. Its not even possible for head,
>  What's the logic behind this?

You don't need anything sophisticated for this. What possible total
function could have signature [a] -> a? If you provide an argument of
[] it has to conjure up a value of type a from somewhere. Where could
it possibly get such a value for every single type a?

For example, define

> data Void -- the type with no elements (using -fglasgow-exts)

x = [] :: [Void] is a perfectly good list but head x has to be of type
Void which has no elements.
--
Dan
_______________________________________________
Haskell-Cafe mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to