Am Donnerstag, 7. September 2006 09:02 schrieb Peter Arrenbrecht:
Hi all
I am baffled by the following error message from Hugs 98 (Version May 2006):
ERROR file:.\cube.hs:11 - Type error in explicitly typed binding *** Term : [(i,v) : ps] *** Type : [[(a,b)]] *** Does not match : [(Int,Double)]
when attempting to compile the following declaration (line numbers in brackets):
[10] test :: [(Int, Double)] -> Int [11] test [(i,v):ps] = i
Is this a bug? If not, how do I write the pattern properly?
No bug. You should write test ((i,v):ps) = i The pattern [(i,v):ps] has type list of lists of (Int,Double) pairs, one more layer of list than you want.
Thanks, Peter Arrenbrecht
You're welcome, Daniel -- "In My Egotistical Opinion, most people's C programs should be indented six feet downward and covered with dirt." -- Blair P. Houghton