X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=compiler%2Ftypes%2FInstEnv.lhs;h=2d1589ca6213eac7350e3f454901b099645d9971;hb=21c9699eb5175355db4c44643a58b3c532238400;hp=3042a48044f58fb81ffe0b15c2d2fd4209394d0a;hpb=17b297d97d327620ed6bfab942f8992b2446f1bf;p=ghc-hetmet.git diff --git a/compiler/types/InstEnv.lhs b/compiler/types/InstEnv.lhs index 3042a48..2d1589c 100644 --- a/compiler/types/InstEnv.lhs +++ b/compiler/types/InstEnv.lhs @@ -7,13 +7,6 @@ The bits common to TcInstDcls and TcDeriv. \begin{code} -{-# OPTIONS_GHC -w #-} --- The above warning supression flag is a temporary kludge. --- While working on this module you are encouraged to remove it and fix --- any warnings in the module. See --- http://hackage.haskell.org/trac/ghc/wiki/WorkingConventions#Warnings --- for details - module InstEnv ( DFunId, OverlapFlag(..), Instance(..), pprInstance, pprInstanceHdr, pprInstances, @@ -40,7 +33,6 @@ import Outputable import BasicTypes import UniqFM import Id -import SrcLoc import Data.Maybe ( isJust, isNothing ) \end{code} @@ -139,9 +131,9 @@ instance Outputable Instance where pprInstance :: Instance -> SDoc -- Prints the Instance as an instance declaration -pprInstance ispec@(Instance { is_flag = flag }) +pprInstance ispec = hang (pprInstanceHdr ispec) - 2 (ptext SLIT("--") <+> (pprDefnLoc (getSrcSpan ispec))) + 2 (ptext SLIT("--") <+> pprNameLoc (getName ispec)) -- * pprInstanceHdr is used in VStudio to populate the ClassView tree pprInstanceHdr :: Instance -> SDoc @@ -191,7 +183,7 @@ instanceCantMatch :: [Maybe Name] -> [Maybe Name] -> Bool -- possibly be instantiated to actual, nor vice versa; -- False is non-committal instanceCantMatch (Just t : ts) (Just a : as) = t/=a || instanceCantMatch ts as -instanceCantMatch ts as = False -- Safe +instanceCantMatch _ _ = False -- Safe \end{code} @@ -494,6 +486,7 @@ lookupInstEnv (pkg_ie, home_ie) cls tys Nothing -> find ms us rest --------------- +bind_fn :: TyVar -> BindFlag bind_fn tv | isTcTyVar tv && isExistentialTyVar tv = Skolem | otherwise = BindMe -- The key_tys can contain skolem constants, and we can guarantee that those @@ -539,6 +532,6 @@ insert_overlapping new_item (item:items) where overlap_ok = case is_flag instB of NoOverlap -> False - other -> True + _ -> True \end{code}