From: simonpj@microsoft.com Date: Wed, 25 Aug 2010 11:27:11 +0000 (+0000) Subject: Wibble to allow phantom types in Enum X-Git-Tag: 2010-11-18~380 X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=commitdiff_plain;h=369d62baac8b930320ec1b604fb6625b14d0402d Wibble to allow phantom types in Enum --- diff --git a/compiler/typecheck/TcGenDeriv.lhs b/compiler/typecheck/TcGenDeriv.lhs index 525f095..d15bb05 100644 --- a/compiler/typecheck/TcGenDeriv.lhs +++ b/compiler/typecheck/TcGenDeriv.lhs @@ -1684,13 +1684,13 @@ genAuxBind loc (GenCon2Tag tycon) nlHsLit (HsIntPrim (toInteger ((dataConTag con) - fIRST_TAG)))) genAuxBind loc (GenTag2Con tycon) - = ASSERT( null (tyConTyVars tycon) ) - (mk_FunBind loc rdr_name + = (mk_FunBind loc rdr_name [([nlConVarPat intDataCon_RDR [a_RDR]], nlHsApp (nlHsVar tagToEnum_RDR) a_Expr)], L loc (TypeSig (L loc rdr_name) (L loc sig_ty))) where - sig_ty = HsCoreTy $ intTy `mkFunTy` mkParentType tycon + sig_ty = HsCoreTy $ mkForAllTys (tyConTyVars tycon) $ + intTy `mkFunTy` mkParentType tycon rdr_name = tag2con_RDR tycon