Mon, 23 Apr 2001 15:41:47 +1200
Mark Carroll writes:
| Is this a good place for novice questions?
Yes, either here or on http://haskell.org/wiki/wiki
| greaterthan 0 _ _ = False
| greaterthan _ (x:xs) (y:ys) = x > y
| Main> greaterthan 0  
| ERROR: Unresolved overloading
| *** Type : Ord a => Bool
| *** Expression : greaterthan 0  
| ...I don't understand what the problem is. I'm guessing that the problem
| is with the use of > and it not knowing which 'version' of > to use, but
| it doesn't need to know because we're not matching with that line anyway.
| I hope that didn't sound quite as confused as I am. (-:
Your guess is basically right. The error can be fixed by specifying
`the type of element that the lists do not contain', so to speak.
greaterthan 0  ( :: [()]) -- empty list of ()
greaterthan 0  ( :: [Bool]) -- empty list of Bool
greaterthan 0  "" -- empty list of Char
This need for an explicit type signature is quite common in
out-of-context tests at an interpreter's prompt, but rarer in actual