diff --git a/ghc/compiler/types/Type.lhs b/ghc/compiler/types/Type.lhs index 6973687816c6336a402c2aec7ef22e839dcbb5a2..3273b6081aed4fa598b930dfa9167179b6e1dc3b 100644 --- a/ghc/compiler/types/Type.lhs +++ b/ghc/compiler/types/Type.lhs @@ -15,7 +15,7 @@ module Type ( mkSynTy, isSynTy, mkForAllTy, mkForAllTys, splitForAllTy_maybe, splitForAllTys, - applyTy, applyTys, + applyTy, applyTys, isForAllTy, TauType, RhoType, SigmaType, ThetaType, isTauTy, @@ -333,6 +333,11 @@ splitForAllTy_maybe (SynTy _ ty) = splitForAllTy_maybe ty splitForAllTy_maybe (ForAllTy tyvar ty) = Just(tyvar, ty) splitForAllTy_maybe _ = Nothing +isForAllTy :: GenType flexi -> Bool +isForAllTy (SynTy _ ty) = isForAllTy ty +isForAllTy (ForAllTy tyvar ty) = True +isForAllTy _ = False + splitForAllTys :: GenType flexi -> ([GenTyVar flexi], GenType flexi) splitForAllTys ty = split ty ty [] where