X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=compiler%2Ftypecheck%2FTcType.lhs;h=636ee0ea696c012a1822aa3323ea2efafc3dea38;hb=3f1b316d7035c55cd712cd39a9981339bcef2e8c;hp=1d4d166e9ce6ca9f68c2b6d61e9963bd166fdf76;hpb=0d8da265dadfd9170800a60a7d1a59543da5a6f5;p=ghc-hetmet.git diff --git a/compiler/typecheck/TcType.lhs b/compiler/typecheck/TcType.lhs index 1d4d166..636ee0e 100644 --- a/compiler/typecheck/TcType.lhs +++ b/compiler/typecheck/TcType.lhs @@ -38,7 +38,7 @@ module TcType ( isImmutableTyVar, isSkolemTyVar, isMetaTyVar, isBoxyTyVar, isSigTyVar, isExistentialTyVar, isTyConableTyVar, metaTvRef, - isFlexi, isIndirect, + isFlexi, isIndirect, isRuntimeUnk, isUnk, -------------------------------- -- Builders @@ -457,7 +457,7 @@ pprSkolTvBinding tv ppr_details (MetaTv (SigTv info) _) = ppr_skol info ppr_details (SkolemTv info) = ppr_skol info - ppr_skol UnkSkol = empty -- Unhelpful; omit + ppr_skol UnkSkol = ptext SLIT("is an unknown type variable") -- Unhelpful ppr_skol RuntimeUnkSkol = ptext SLIT("is an unknown runtime type") ppr_skol info = sep [ptext SLIT("is a rigid type variable bound by"), sep [pprSkolInfo info, @@ -556,6 +556,16 @@ isFlexi other = False isIndirect (Indirect _) = True isIndirect other = False + +isRuntimeUnk :: TyVar -> Bool +isRuntimeUnk x | isTcTyVar x + , SkolemTv RuntimeUnkSkol <- tcTyVarDetails x = True + | otherwise = False + +isUnk :: TyVar -> Bool +isUnk x | isTcTyVar x + , SkolemTv UnkSkol <- tcTyVarDetails x = True + | otherwise = False \end{code}