Repository : ssh://[email protected]/ghc On branch : type-nats-simple Link : http://ghc.haskell.org/trac/ghc/changeset/fb3f5d7db1fbd31b215befa4f5199a9dbd30d5d5/ghc
>--------------------------------------------------------------- commit fb3f5d7db1fbd31b215befa4f5199a9dbd30d5d5 Author: Iavor S. Diatchki <[email protected]> Date: Sat Sep 7 17:07:23 2013 -0700 Add a function to get all inert fun-eqs for the given tycon. >--------------------------------------------------------------- fb3f5d7db1fbd31b215befa4f5199a9dbd30d5d5 compiler/typecheck/TcSMonad.lhs | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/compiler/typecheck/TcSMonad.lhs b/compiler/typecheck/TcSMonad.lhs index 39337ad..d9fc9da 100644 --- a/compiler/typecheck/TcSMonad.lhs +++ b/compiler/typecheck/TcSMonad.lhs @@ -72,6 +72,7 @@ module TcSMonad ( modifyInertTcS, insertInertItemTcS, partitionCCanMap, partitionEqMap, getRelevantCts, extractRelevantInerts, + getInertsFunEqTyCon, CCanMap(..), CtTypeMap, CtFamHeadMap, CtPredMap, PredMap, FamHeadMap, partCtFamHeadMap, lookupFamHead, lookupSolvedDict, @@ -827,6 +828,18 @@ checkAllSolved || unsolved_dicts || unsolved_funeqs || not (isEmptyBag (inert_insols icans)))) } + +{- Get inert function equation constraints that have the given tycon +in their head. Not that the constraints remain in the inert set. +We use this to check for derived interactions with built-in type-function +constructors. -} +getInertsFunEqTyCon :: TyCon -> TcS [Ct] +getInertsFunEqTyCon tc = + do is <- getTcSInerts + let mp = unFamHeadMap $ inert_funeqs $ inert_cans is + return $ lookupTypeMapTyCon mp tc + + extractRelevantInerts :: Ct -> TcS Cts -- Returns the constraints from the inert set that are 'relevant' to react with -- this constraint. The monad is left with the 'thinner' inerts. _______________________________________________ ghc-commits mailing list [email protected] http://www.haskell.org/mailman/listinfo/ghc-commits
