From 11e80952ae15cf95b89c01466ee1970fb7161d7f Mon Sep 17 00:00:00 2001 From: Ian Lynagh Date: Tue, 10 Jul 2007 12:47:38 +0000 Subject: [PATCH] Fix tcInstHeadTyNotSynonym It was returning False for type variables amongst other things, so "instance C a" was telling us to use -XTypeSynonymInstances. --- compiler/typecheck/TcType.lhs | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/compiler/typecheck/TcType.lhs b/compiler/typecheck/TcType.lhs index 7595a75..eaf2faa 100644 --- a/compiler/typecheck/TcType.lhs +++ b/compiler/typecheck/TcType.lhs @@ -797,10 +797,9 @@ tcInstHeadTyNotSynonym :: Type -> Bool -- are transparent, so we need a special function here tcInstHeadTyNotSynonym ty = case ty of - NoteTy _ ty -> tcInstHeadTyNotSynonym ty - TyConApp tc tys -> not (isSynTyCon tc) - FunTy arg res -> True - other -> False + NoteTy _ ty -> tcInstHeadTyNotSynonym ty + TyConApp tc tys -> not (isSynTyCon tc) + _ -> True tcInstHeadTyAppAllTyVars :: Type -> Bool -- Used in Haskell-98 mode, for the argument types of an instance head -- 1.7.10.4