-getUniqueDs dflags us genv loc mod warns
- = case (uniqFromSupply us) of { assigned_uniq ->
- (assigned_uniq, warns) }
-
-getDOptsDs :: DsM DynFlags
-getDOptsDs dflags us genv loc mod warns
- = (dflags, warns)
+getUniqueDs = DsM (\ env warns ->
+ getUniqueUs `thenUs` \ uniq ->
+ returnUs (uniq, warns))
+
+getUniquesDs :: DsM [Unique]
+getUniquesDs = DsM(\ env warns ->
+ getUniquesUs `thenUs` \ uniqs ->
+ returnUs (uniqs, warns))
+
+getUniqSupplyDs :: DsM UniqSupply
+getUniqSupplyDs = DsM(\ env warns ->
+ getUs `thenUs` \ uniqs ->
+ returnUs (uniqs, warns))
+
+-- Make a new Id with the same print name, but different type, and new unique
+newUniqueId :: Name -> Type -> DsM Id
+newUniqueId id ty
+ = getUniqueDs `thenDs` \ uniq ->
+ returnDs (mkSysLocal (occNameFS (nameOccName id)) uniq ty)