Breaks the IdInfo/ loops. \begin{code} interface IdLoop where import PreludePS ( _PackedString ) import PreludeStdIO ( Maybe ) import BinderInfo ( BinderInfo ) import CoreSyn ( CoreExpr(..), GenCoreExpr, GenCoreArg ) import CoreUnfold ( FormSummary(..), UnfoldingDetails(..), UnfoldingGuidance(..) ) import CoreUtils ( unTagBinders ) import Id ( externallyVisibleId, isDataCon, isWorkerId, isWrapperId, unfoldingUnfriendlyId, getIdInfo, nmbrId, nullIdEnv, lookupIdEnv, IdEnv(..), Id(..), GenId ) import IdInfo ( IdInfo ) import Literal ( Literal ) import MagicUFs ( mkMagicUnfoldingFun, MagicUnfoldingFun ) import Outputable ( Outputable(..) ) import PprEnv ( NmbrEnv ) import PprStyle ( PprStyle ) import PprType ( pprParendGenType ) import Pretty ( PrettyRep ) import Type ( GenType ) import TyVar ( GenTyVar ) import UniqFM ( UniqFM ) import Unique ( Unique ) import Usage ( GenUsage ) import Util ( Ord3(..) ) import WwLib ( mAX_WORKER_ARGS ) externallyVisibleId :: Id -> Bool isDataCon :: GenId ty -> Bool isWorkerId :: GenId ty -> Bool isWrapperId :: Id -> Bool unfoldingUnfriendlyId :: Id -> Bool getIdInfo :: Id -> IdInfo nullIdEnv :: UniqFM a lookupIdEnv :: UniqFM b -> GenId a -> Maybe b mAX_WORKER_ARGS :: Int nmbrId :: Id -> NmbrEnv -> (NmbrEnv, Id) pprParendGenType :: (Eq a, Outputable a, Eq b, Outputable b) => PprStyle -> GenType a b -> Int -> Bool -> PrettyRep unTagBinders :: GenCoreExpr (GenId (GenType (GenTyVar (GenUsage Unique)) Unique), a) b c d -> GenCoreExpr (GenId (GenType (GenTyVar (GenUsage Unique)) Unique)) b c d mkMagicUnfoldingFun :: Unique -> MagicUnfoldingFun type IdEnv a = UniqFM a type CoreExpr = GenCoreExpr (GenId (GenType (GenTyVar (GenUsage Unique)) Unique)) (GenId (GenType (GenTyVar (GenUsage Unique)) Unique)) (GenTyVar (GenUsage Unique)) Unique instance Outputable UnfoldingGuidance instance Eq Unique instance Outputable Unique instance Eq (GenTyVar a) instance Ord3 (GenTyVar a) instance Outputable (GenTyVar a) instance (Outputable a) => Outputable (GenId a) instance (Eq a, Outputable a, Eq b, Outputable b) => Outputable (GenType a b) data NmbrEnv data MagicUnfoldingFun data FormSummary = WhnfForm | BottomForm | OtherForm data UnfoldingDetails = NoUnfoldingDetails | OtherLitForm [Literal] | OtherConForm [GenId (GenType (GenTyVar (GenUsage Unique)) Unique)] | GenForm FormSummary (GenCoreExpr (GenId (GenType (GenTyVar (GenUsage Unique)) Unique), BinderInfo) (GenId (GenType (GenTyVar (GenUsage Unique)) Unique)) (GenTyVar (GenUsage Unique)) Unique) UnfoldingGuidance | MagicForm _PackedString MagicUnfoldingFun data UnfoldingGuidance = UnfoldNever | UnfoldAlways | EssentialUnfolding | UnfoldIfGoodArgs Int Int [Bool] Int | BadUnfolding \end{code}