X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=compiler%2Ftypecheck%2FTcMType.lhs;h=74533340f3b846a68cb5d82ae0606f8447675782;hb=191292aaa7f56f32fc546478f43aa89ac67c95a3;hp=b68fee5fcc2eb3cc160118de8e4846da9d316ee5;hpb=27310213397bb89555bb03585e057ba1b017e895;p=ghc-hetmet.git diff --git a/compiler/typecheck/TcMType.lhs b/compiler/typecheck/TcMType.lhs index b68fee5..7453334 100644 --- a/compiler/typecheck/TcMType.lhs +++ b/compiler/typecheck/TcMType.lhs @@ -26,7 +26,7 @@ module TcMType ( -------------------------------- -- Creating new evidence variables newEvVar, newCoVar, newEvVars, - newWantedCoVar, writeWantedCoVar, readWantedCoVar, + writeWantedCoVar, readWantedCoVar, newIP, newDict, newSilentGiven, isSilentEvVar, newWantedEvVar, newWantedEvVars, @@ -129,16 +129,13 @@ newEvVars :: TcThetaType -> TcM [EvVar] newEvVars theta = mapM newEvVar theta newWantedEvVar :: TcPredType -> TcM EvVar -newWantedEvVar (EqPred ty1 ty2) = newWantedCoVar ty1 ty2 +newWantedEvVar (EqPred ty1 ty2) = newCoVar ty1 ty2 newWantedEvVar (ClassP cls tys) = newDict cls tys newWantedEvVar (IParam ip ty) = newIP ip ty newWantedEvVars :: TcThetaType -> TcM [EvVar] newWantedEvVars theta = mapM newWantedEvVar theta -newWantedCoVar :: TcType -> TcType -> TcM CoVar -newWantedCoVar ty1 ty2 = newCoVar ty1 ty2 - -------------- newEvVar :: TcPredType -> TcM EvVar -- Creates new *rigid* variables for predicates @@ -367,8 +364,8 @@ writeMetaTyVarRef tyvar ref ty | otherwise = do { meta_details <- readMutVar ref; - ; WARN( not (isFlexi meta_details), - hang (text "Double update of meta tyvar") + ; ASSERT2( isFlexi meta_details, + hang (text "Double update of meta tyvar") 2 (ppr tyvar $$ ppr meta_details) ) traceTc "writeMetaTyVar" (ppr tyvar <+> text ":=" <+> ppr ty)