> IMP_Ubiq(){-uitous-}
>
> import StgSyn
+> import Id ( SYN_IE(IdEnv), growIdEnv, addOneToIdEnv, combineIdEnvs, nullIdEnv,
+> unitIdEnv, mkIdEnv, rngIdEnv, lookupIdEnv,
+> SYN_IE(IdSet),
+> getIdUpdateInfo, addIdUpdateInfo, mkSysLocal, idType, isImportedId,
+> externallyVisibleId,
+> SYN_IE(Id), GenId
+> )
+> import IdInfo ( UpdateInfo, SYN_IE(UpdateSpec), mkUpdateInfo, updateInfoMaybe )
+> import Type ( splitFunTy, splitSigmaTy )
+> import UniqSet
+> import Unique ( getBuiltinUniques )
+> import SrcLoc ( noSrcLoc )
> import Util ( panic )
>
-> updateAnalyse :: [StgBinding] -> [StgBinding] {- Exported -}
-> updateAnalyse = panic "UpdAnal.updateAnalyse"
->
-> {- LATER: to end of file:
-> --import Type ( splitFunTy, splitSigmaTy, Class, TyVarTemplate,
-> -- SYN_IE(TauType)
-> -- )
-> --import Id
-> --import IdInfo
-> --import Pretty
-> --import SrcLoc ( mkUnknownSrcLoc )
-> --import StgSyn
-> --import UniqSet
-> --import Unique ( getBuiltinUniques )
-> --import Util
%-----------------------------------------------------------------------------
\subsection{Reverse application}
> where
> (c,b,_) = foldl doApp f ids
> ids = map mkid (getBuiltinUniques arity)
-> mkid u = mkSysLocal SLIT("upd") u noType mkUnknownSrcLoc
+> mkid u = mkSysLocal SLIT("upd") u noType noSrcLoc
> countUses u = if u `elemRefs` b then 2 else min (lookupc c u) 2
> noType = panic "UpdAnal: no type!"
>
> addIdUpdateInfo v
> (mkUpdateInfo (mkUpdateSpec v c))
> | otherwise = v
-> -}
%-----------------------------------------------------------------------------