(c) The University of Glasgow 2002-2006
\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 IfaceEnv (
newGlobalBinder, newIPName, newImplicitBinder,
lookupIfaceTop,
import OccName
import PrelNames
import Module
-import UniqFM
+import LazyUniqFM
import FastString
import UniqSupply
import FiniteMap
p_name <- lookupOrig mod p_occ
let lookup_sub occ | occ == p_occ = return p_name
| otherwise = lookupOrig mod occ
- subs <- mappM lookup_sub occs
+ subs <- mapM lookup_sub occs
return (AvailTC p_name subs)
-- Remember that 'occs' is all the exported things, including
-- the parent. It's possible to export just class ops without
; name_cache <- getNameCache
; case lookupOrigNameCache (nsNames name_cache) mod occ of {
- Just name -> returnM name;
+ Just name -> return name;
Nothing ->
let
us = nsUniqs name_cache
}}}
newIPName :: IPName OccName -> TcRnIf m n (IPName Name)
-newIPName occ_name_ip
- = getNameCache `thenM` \ name_supply ->
+newIPName occ_name_ip = do
+ name_supply <- getNameCache
let
ipcache = nsIPs name_supply
- in
case lookupFM ipcache key of
- Just name_ip -> returnM name_ip
- Nothing -> setNameCache new_ns `thenM_`
- returnM name_ip
+ Just name_ip -> return name_ip
+ Nothing -> do setNameCache new_ns
+ return name_ip
where
(us', us1) = splitUniqSupply (nsUniqs name_supply)
uniq = uniqFromSupply us1