summaryrefslogtreecommitdiff
path: root/compiler/hieFile/HieUtils.hs
diff options
context:
space:
mode:
Diffstat (limited to 'compiler/hieFile/HieUtils.hs')
-rw-r--r--compiler/hieFile/HieUtils.hs14
1 files changed, 7 insertions, 7 deletions
diff --git a/compiler/hieFile/HieUtils.hs b/compiler/hieFile/HieUtils.hs
index 5259ea1280..9231317bd0 100644
--- a/compiler/hieFile/HieUtils.hs
+++ b/compiler/hieFile/HieUtils.hs
@@ -63,7 +63,7 @@ resolveVisibility kind ty_args
where
ts' = go (extendTvSubst env tv t) res ts
- go env (FunTy _ res) (t:ts) -- No type-class args in tycon apps
+ go env (FunTy { ft_res = res }) (t:ts) -- No type-class args in tycon apps
= (True,t) : (go env res ts)
go env (TyVarTy tv) ts
@@ -81,8 +81,8 @@ hieTypeToIface = foldType go
go (HLitTy l) = IfaceLitTy l
go (HForAllTy ((n,k),af) t) = let b = (occNameFS $ getOccName n, k)
in IfaceForAllTy (Bndr (IfaceTvBndr b) af) t
- go (HFunTy a b) = IfaceFunTy a b
- go (HQualTy pred b) = IfaceDFunTy pred b
+ go (HFunTy a b) = IfaceFunTy VisArg a b
+ go (HQualTy pred b) = IfaceFunTy InvisArg pred b
go (HCastTy a) = a
go HCoercionTy = IfaceTyVar "<coercion type>"
go (HTyConApp a xs) = IfaceTyConApp a (hieToIfaceArgs xs)
@@ -158,12 +158,12 @@ getTypeIndex t
k <- getTypeIndex (varType v)
i <- getTypeIndex t
return $ HForAllTy ((varName v,k),a) i
- go (FunTy a b) = do
+ go (FunTy { ft_af = af, ft_arg = a, ft_res = b }) = do
ai <- getTypeIndex a
bi <- getTypeIndex b
- return $ if isPredTy a
- then HQualTy ai bi
- else HFunTy ai bi
+ return $ case af of
+ InvisArg -> HQualTy ai bi
+ VisArg -> HFunTy ai bi
go (LitTy a) = return $ HLitTy $ toIfaceTyLit a
go (CastTy t _) = do
i <- getTypeIndex t