X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=compiler%2Ftypes%2FFunDeps.lhs;h=8f529a4217a5480abb919f2d2b843cc9c191a7bf;hb=8ad973aef4ff86b5a3e2aa6276d9dd8c99732eca;hp=a7e9f19b064d9ea6931460dae45a0d7d50e67f43;hpb=d9e439063bbd9827df7a6f75471834d8479c3ea3;p=ghc-hetmet.git diff --git a/compiler/types/FunDeps.lhs b/compiler/types/FunDeps.lhs index a7e9f19..8f529a4 100644 --- a/compiler/types/FunDeps.lhs +++ b/compiler/types/FunDeps.lhs @@ -8,13 +8,6 @@ FunDeps - functional dependencies It's better to read it as: "if we know these, then we're going to know these" \begin{code} -{-# OPTIONS -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/Commentary/CodingStyle#Warnings --- for details - module FunDeps ( Equation, pprEquation, oclose, grow, improveOne, @@ -27,13 +20,15 @@ module FunDeps ( import Name import Var import Class -import TcGadt import TcType +import Unify import InstEnv import VarSet import VarEnv import Outputable import Util +import FastString + import Data.Maybe ( isJust ) \end{code} @@ -204,6 +199,7 @@ type Equation = (TyVarSet, [(Type, Type)]) -- We usually act on an equation by instantiating the quantified type varaibles -- to fresh type variables, and then calling the standard unifier. +pprEquation :: Equation -> SDoc pprEquation (qtvs, pairs) = vcat [ptext SLIT("forall") <+> braces (pprWithCommas ppr (varSetElems qtvs)), nest 2 (vcat [ ppr t1 <+> ptext SLIT(":=:") <+> ppr t2 | (t1,t2) <- pairs])] @@ -250,7 +246,7 @@ improveOne :: (Class -> [Instance]) -- Gives instances for given class -- combined (for error messages) -- Just do improvement triggered by a single, distinguised predicate -improveOne inst_env pred@(IParam ip ty, _) preds +improveOne _inst_env pred@(IParam ip ty, _) preds = [ ((emptyVarSet, [(ty,ty2)]), pred, p2) | p2@(IParam ip2 ty2, _) <- preds , ip==ip2 @@ -301,7 +297,7 @@ improveOne inst_env pred@(ClassP cls tys, _) preds <+> ppr (getSrcLoc ispec)) ] -improveOne inst_env eq_pred preds +improveOne _ _ _ = []