too much simplification?

Mark P Jones mpj@cse.ogi.edu
Thu, 13 Jun 2002 07:52:35 -0700


Hi Levent,

|         HUGS> :t (== [])
|         flip (==) [] :: Eq a => [a] -> Bool
|  
|   
|         GHCI> :t (== [])
|         forall a. (Eq [a]) => [a] -> Bool
|  
|  I think ghc is doing the right thing. 

As far as Haskell 98 is concerned, Hugs is only doing what
is required to produce a type whose syntax conforms to the
language report.

As far as the language report is concerned, I agree with
you.  (And I wrote a fairly big chunk of text in my old
dissertation to explain why.)  Indeed, if you run Hugs
in -98 mode, then it too produces:

   Main> :t (==[])
   flip (==) [] :: Eq [a] => [a] -> Bool
   Main>

All the best,
Mark