[project @ 2002-11-18 14:25:50 by simonpj]
authorsimonpj <unknown>
Mon, 18 Nov 2002 14:25:55 +0000 (14:25 +0000)
committersimonpj <unknown>
Mon, 18 Nov 2002 14:25:55 +0000 (14:25 +0000)
commit4e84be0ce335385e094ba12d284855b510a36f53
tree7b655079bb3b886895189c48381af041597808fd
parentfa654d6b16ecda7cc8cb780792ca10ec0e227555
[project @ 2002-11-18 14:25:50 by simonpj]
----------------------------------------
Class ops that do not introduce for-alls
----------------------------------------

MERGE TO STABLE (if poss)

The handling of class ops that do not add an extra for-all
was utterly bogus.  For example:

class C a where
    fc :: (?p :: String) => a;

class D a where
    fd :: (Ord a) => [a] -> [a]

De-bogus-ing means

a) Being careful when taking apart the class op type in
MkIface.tcClassOpSig

b) Ditto when making the method Id in an instance binding.
   Hence new function Inst.tcInstClassOp, and its calls
   in TcInstDcls, and TcClassDcls
ghc/compiler/main/MkIface.lhs
ghc/compiler/typecheck/Inst.lhs
ghc/compiler/typecheck/TcClassDcl.lhs
ghc/compiler/typecheck/TcInstDcls.lhs
ghc/compiler/typecheck/TcSimplify.lhs