[project @ 1996-07-15 16:16:46 by partain]
[ghc-hetmet.git] / ghc / compiler / typecheck / TcClassDcl.lhs
index 298df68..c2818b3 100644 (file)
@@ -6,9 +6,7 @@
 \begin{code}
 #include "HsVersions.h"
 
-module TcClassDcl (
-       tcClassDecl1, tcClassDecls2
-    ) where
+module TcClassDcl ( tcClassDecl1, tcClassDecls2 ) where
 
 IMP_Ubiq()
 
@@ -18,31 +16,31 @@ import HsSyn                ( ClassDecl(..), HsBinds(..), Bind(..), MonoBinds(..),
                          Stmt, Qualifier, ArithSeqInfo, InPat, Fake )
 import HsPragmas       ( ClassPragmas(..) )
 import RnHsSyn         ( RenamedClassDecl(..), RenamedClassPragmas(..),
-                         RenamedClassOpSig(..), RenamedMonoBinds(..),
+                         RenamedClassOpSig(..), SYN_IE(RenamedMonoBinds),
                          RenamedGenPragmas(..), RenamedContext(..),
                          RnName{-instance Uniquable-}
                        )
-import TcHsSyn         ( TcIdOcc(..), TcHsBinds(..), TcMonoBinds(..), TcExpr(..),
+import TcHsSyn         ( TcIdOcc(..), SYN_IE(TcHsBinds), SYN_IE(TcMonoBinds), SYN_IE(TcExpr),
                          mkHsTyApp, mkHsTyLam, mkHsDictApp, mkHsDictLam, tcIdType )
 
-import Inst            ( Inst, InstOrigin(..), LIE(..), emptyLIE, plusLIE, newDicts, newMethod )
+import Inst            ( Inst, InstOrigin(..), SYN_IE(LIE), emptyLIE, plusLIE, newDicts, newMethod )
 import TcEnv           ( tcLookupClass, tcLookupTyVar, tcLookupTyCon, newLocalIds, tcExtendGlobalTyVars )
+import SpecEnv         ( SpecEnv )
 import TcInstDcls      ( processInstBinds )
-import TcKind          ( TcKind )
-import TcKind          ( unifyKind )
+import TcKind          ( unifyKind, TcKind )
 import TcMonad         hiding ( rnMtoTcM )
 import TcMonoType      ( tcPolyType, tcMonoType, tcContext )
 import TcSimplify      ( tcSimplifyAndCheck )
-import TcType          ( TcType(..), TcTyVar(..), tcInstType, tcInstSigTyVars, tcInstSigType )
+import TcType          ( SYN_IE(TcType), SYN_IE(TcTyVar), tcInstType, tcInstSigTyVars, tcInstSigType )
 
 import Bag             ( foldBag, unionManyBags )
 import Class           ( GenClass, mkClass, mkClassOp, classBigSig, 
                          classOps, classOpString, classOpLocalType,
-                         classOpTagByString
+                         classOpTagByString, SYN_IE(ClassOp)
                        )
 import Id              ( mkSuperDictSelId, mkMethodSelId, mkDefaultMethodId,
                          idType )
-import IdInfo          ( noIdInfo )
+import IdInfo
 import Name            ( isLocallyDefined, origName, getLocalName )
 import PrelVals                ( nO_DEFAULT_METHOD_ERROR_ID )
 import PprStyle
@@ -60,7 +58,8 @@ import Util
 
 -- import TcPragmas    ( tcGenPragmas, tcClassOpPragmas )
 tcGenPragmas ty id ps = returnNF_Tc noIdInfo
-tcClassOpPragmas ty sel def spec ps = returnNF_Tc (noIdInfo, noIdInfo)
+tcClassOpPragmas ty sel def spec ps = returnNF_Tc (noIdInfo `addInfo` spec, 
+                                                  noIdInfo)
 \end{code}