From: Manuel M T Chakravarty Date: Thu, 9 Oct 2008 06:14:35 +0000 (+0000) Subject: Cover PredTy case in Type.tyFamInsts X-Git-Url: http://git.megacz.com/?a=commitdiff_plain;h=1ae354e107715a9e3fd4e2d67b61f868c090e4ae;p=ghc-hetmet.git Cover PredTy case in Type.tyFamInsts MERGE TO 6.10 --- diff --git a/compiler/types/Type.lhs b/compiler/types/Type.lhs index 07e61da..cf38146 100644 --- a/compiler/types/Type.lhs +++ b/compiler/types/Type.lhs @@ -44,7 +44,7 @@ module Type ( newTyConInstRhs, -- (Type families) - tyFamInsts, + tyFamInsts, predFamInsts, -- (Source types) mkPredTy, mkPredTys, mkFamilyTyConApp, @@ -887,6 +887,14 @@ tyFamInsts (TyConApp tc tys) tyFamInsts (FunTy ty1 ty2) = tyFamInsts ty1 ++ tyFamInsts ty2 tyFamInsts (AppTy ty1 ty2) = tyFamInsts ty1 ++ tyFamInsts ty2 tyFamInsts (ForAllTy _ ty) = tyFamInsts ty +tyFamInsts (PredTy pty) = predFamInsts pty + +-- | Finds type family instances occuring in a predicate type after expanding +-- synonyms. +predFamInsts :: PredType -> [(TyCon, [Type])] +predFamInsts (ClassP _cla tys) = concat (map tyFamInsts tys) +predFamInsts (IParam _ ty) = tyFamInsts ty +predFamInsts (EqPred ty1 ty2) = tyFamInsts ty1 ++ tyFamInsts ty2 \end{code}