setVarName, setVarUnique,
-- TyVars
- TyVar, mkTyVar, mkTcTyVar,
+ TyVar, mkTyVar, mkTcTyVar, mkWildTyVar,
tyVarName, tyVarKind,
setTyVarName, setTyVarUnique, setTyVarKind,
tcTyVarDetails,
import {-# SOURCE #-} IdInfo( GlobalIdDetails, notGlobalId, IdInfo, seqIdInfo )
import Name ( Name, NamedThing(..),
- setNameUnique, nameUnique
+ setNameUnique, nameUnique, mkSysTvName
)
-import Unique ( Unique, Uniquable(..), mkUniqueGrimily, getKey# )
+import Unique ( Unique, Uniquable(..), mkUniqueGrimily, getKey#,
+ mkBuiltinUnique )
import FastTypes
import Outputable
\end{code}
tyVarKind = kind,
tcTyVarDetails = details
}
+
+mkWildTyVar :: Kind -> TyVar
+mkWildTyVar kind
+ = TyVar { varName = mkSysTvName wild_uniq FSLIT("co_wild"),
+ realUnique = _ILIT(1),
+ tyVarKind = kind }
+ where
+ wild_uniq = (mkBuiltinUnique 1)
\end{code}
%************************************************************************