empty list bug?

Ernest Paquet epaquet@walsh.edu
Mon, 4 Jun 2001 10:20:03 -0400


Sirs/Mesdames:

We are considering a course using Haskell. We have "Hugs 98: Based on the
haskell 98 standard Copyright 1994-2001,"
downloaded just a few months ago. (This is under Windows NT.) The following
puzzles us --

>From the prelude:
	take 1 [ ]   --   expected to return the empty list [ ], instead
gives error message:
	ERROR - Cannot find "show" function for:
	***  Expression	: take 1 [ ]
	***  Of type     	: [a]

>From a module of ours with definition:
	-- select nth item from a list
	select :: Eq a => Int -> [a] -> [a]
	select n lis
	   | n <= 0  ||  n > length lis = error "Invalid position!"
	   | n == 1	= [head lis]
	   | otherwise	= select (n-1) (tail lis)
when called thus:
	select  0  [ ]
Hugs gives the error message:
	ERROR - Unresolved overloading
	*** Type		: Eq a => [a]
	*** Expression	: select 0 [ ]

Surely Haskell should be able to just return [ ] in both cases.
Thanks ahead for your response.

Prof Ernest Paquet
Walsh University
2020 Easton St. N.W.
Canton, OH, 44720  (USA)

Phone	voice: 330-490-7229
	fax:    330-490-7165