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