X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=compiler%2FbasicTypes%2FVar.lhs;h=e66286ee82ea3aee7e83fbf479c436ad2f79cb56;hb=b6d08641e2757898470a10dfa906084ade8ab835;hp=cd21b9dd9fc95fde223a6ea21ca19da5a0c30a94;hpb=8ffdb8eed6b38db00761093889f5cddbe8ca1d60;p=ghc-hetmet.git diff --git a/compiler/basicTypes/Var.lhs b/compiler/basicTypes/Var.lhs index cd21b9d..e66286e 100644 --- a/compiler/basicTypes/Var.lhs +++ b/compiler/basicTypes/Var.lhs @@ -5,6 +5,13 @@ \section{@Vars@: Variables} \begin{code} +{-# OPTIONS -w #-} +-- The above warning supression flag is a temporary kludge. +-- While working on this module you are encouraged to remove it and fix +-- any warnings in the module. See +-- http://hackage.haskell.org/trac/ghc/wiki/Commentary/CodingStyle#Warnings +-- for details + module Var ( Var, varName, varUnique, varType, @@ -40,9 +47,7 @@ import {-# SOURCE #-} TypeRep( Type, Kind ) import {-# SOURCE #-} TcType( TcTyVarDetails, pprTcTyVarDetails ) import {-# SOURCE #-} IdInfo( GlobalIdDetails, notGlobalId, IdInfo, seqIdInfo ) -#ifdef DEBUG import {-# SOURCE #-} TypeRep( isCoercionKind ) -#endif import Name hiding (varName) import Unique @@ -201,7 +206,8 @@ mkTyVar name kind = ASSERT( not (isCoercionKind kind ) ) mkTcTyVar :: Name -> Kind -> TcTyVarDetails -> TyVar mkTcTyVar name kind details - = ASSERT( not (isCoercionKind kind) ) + = -- TOM: no longer valid assertion? + -- ASSERT( not (isCoercionKind kind) ) TcTyVar { varName = name, realUnique = getKey# (nameUnique name), varType = kind, @@ -225,10 +231,11 @@ setCoVarName = setVarName mkCoVar :: Name -> Kind -> CoVar mkCoVar name kind = ASSERT( isCoercionKind kind ) - TyVar { varName = name - , realUnique = getKey# (nameUnique name) - , varType = kind - , isCoercionVar = True + TyVar { varName = name + , realUnique = getKey# (nameUnique name) + , varType = kind + -- varType is always PredTy (EqPred t1 t2) + , isCoercionVar = True } mkWildCoVar :: Kind -> TyVar