Commit 49c84dec authored by simonpj's avatar simonpj
Browse files

[project @ 2002-03-12 09:12:57 by simonpj]

Comments
parent 4ba40d2d
...@@ -454,6 +454,9 @@ zonkType unbound_var_fn ty ...@@ -454,6 +454,9 @@ zonkType unbound_var_fn ty
go (AppTy fun arg) = go fun `thenNF_Tc` \ fun' -> go (AppTy fun arg) = go fun `thenNF_Tc` \ fun' ->
go arg `thenNF_Tc` \ arg' -> go arg `thenNF_Tc` \ arg' ->
returnNF_Tc (mkAppTy fun' arg') returnNF_Tc (mkAppTy fun' arg')
-- NB the mkAppTy; we might have instantiated a
-- type variable to a type constructor, so we need
-- to pull the TyConApp to the top.
-- The two interesting cases! -- The two interesting cases!
go (TyVarTy tyvar) = zonkTyVar unbound_var_fn tyvar go (TyVarTy tyvar) = zonkTyVar unbound_var_fn tyvar
......
...@@ -373,11 +373,11 @@ tcSplitTyConApp ty = case tcSplitTyConApp_maybe ty of ...@@ -373,11 +373,11 @@ tcSplitTyConApp ty = case tcSplitTyConApp_maybe ty of
Nothing -> pprPanic "tcSplitTyConApp" (pprType ty) Nothing -> pprPanic "tcSplitTyConApp" (pprType ty)
tcSplitTyConApp_maybe :: Type -> Maybe (TyCon, [Type]) tcSplitTyConApp_maybe :: Type -> Maybe (TyCon, [Type])
-- Newtypes are opaque, so they may be split
tcSplitTyConApp_maybe (TyConApp tc tys) = Just (tc, tys) tcSplitTyConApp_maybe (TyConApp tc tys) = Just (tc, tys)
tcSplitTyConApp_maybe (FunTy arg res) = Just (funTyCon, [arg,res]) tcSplitTyConApp_maybe (FunTy arg res) = Just (funTyCon, [arg,res])
tcSplitTyConApp_maybe (NoteTy n ty) = tcSplitTyConApp_maybe ty tcSplitTyConApp_maybe (NoteTy n ty) = tcSplitTyConApp_maybe ty
tcSplitTyConApp_maybe (SourceTy (NType tc tys)) = Just (tc,tys) tcSplitTyConApp_maybe (SourceTy (NType tc tys)) = Just (tc,tys)
-- Newtypes are opaque, so they may be split
-- However, predicates are not treated -- However, predicates are not treated
-- as tycon applications by the type checker -- as tycon applications by the type checker
tcSplitTyConApp_maybe other = Nothing tcSplitTyConApp_maybe other = Nothing
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment