> I'm trying to use the following idiom to selectively import functions from > the List module: > > import qualified List > nub = List.nub > > but I'm finding that HUGS complains about "unresolved top level > overloading" with "outstanding context: "Eq b". > > If I duplicate the type signature thus: > > import qualified List > nub :: Eq a => [a] -> [a] > nub = List.nub > > All seems to be well. I find it counter-intuitive that I cannot simply define > > a = b > > such that any occurrence of a is equivalent to an occurrence of b. I > thought that was the point of referential transparency in functional > languages. I don't know where to look in the Haskell documents to decide > whether the above is a bug or truly according to the language spec.
You have struck the monomorphism restriction. See: http://research.microsoft.com/Users/simonpj/haskell98-revised/haskell98-report-html/decls.html#sect4.5.5 This is an often tripped over snag in Haskell 98's type system. Cheers, Bernie. _______________________________________________ Haskell mailing list [EMAIL PROTECTED] http://www.haskell.org/mailman/listinfo/haskell
