import Data.List
import Control.Monad ( mplus, guard, liftM, when )
import Exception
-import Control.Concurrent.MVar ( MVar )
\end{code}
-- reflect sucking in interface files. They cache the state of
-- external interface files, in effect.
- hsc_NC_lock :: !(MVar ()),
- -- ^ A lock used for updating the name cache.
-
hsc_FC :: {-# UNPACK #-} !(IORef FinderCache),
-- ^ The cached result of performing finding in the file system
hsc_MLC :: {-# UNPACK #-} !(IORef ModLocationCache),
\begin{code}
-- | Vectorisation information for 'ModGuts', 'ModDetails' and 'ExternalPackageState'.
--- All of this information is always tidy, even in ModGuts.
data VectInfo
= VectInfo {
vectInfoVar :: VarEnv (Var , Var ), -- ^ @(f, f_v)@ keyed on @f@