At 2002-01-21 00:25, Janis Voigtlaender wrote:
Hope that helps and doesn't just make the story more obscure ;-)
I'm not convinced. Here's a simplified case... This compiles fine: emptyList :: [a] emptyList = [] isempty :: Bool isempty = null emptyList But this gives an error: emptyList :: (Ord a) => [a] emptyList = [] isempty :: Bool isempty = null emptyList ghci says: Ambiguous type variable(s) `a' in the constraint `Ord a' arising from use of `emptyList' at ActorTest.hs:7 In the first argument of `null', namely `emptyList' In the definition of `isempty': null emptyList Hugs says: ERROR "ActorTest.hs" (line 7): Cannot justify constraints in explicitly typed binding *** Expression : isempty *** Type : Bool *** Given context : () *** Constraints : Ord a -- Ashley Yakeley, Seattle WA