
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 [] [] | | Main> | | ...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 programs. HTH. Tom