- GenCoreBinding(..), GenCoreExpr(..),
- GenCoreArg(..), GenCoreBinder(..), GenCoreCaseAlts(..),
- GenCoreCaseDefault(..),
-
- bindersOf, pairsFromCoreBinds, rhssOfBind,
-
- mkGenApp, mkValApp, mkTyApp, mkUseApp,
- mkApp, mkCon, mkPrim,
- mkValLam, mkTyLam, mkUseLam,
- mkLam,
- collectBinders, isValBinder, notValBinder,
-
- collectArgs, isValArg, notValArg, numValArgs,
-
- mkCoLetAny, mkCoLetNoUnboxed, mkCoLetUnboxedToCase,
- mkCoLetsAny, mkCoLetsNoUnboxed, mkCoLetsUnboxedToCase,
- mkCoLetrecAny, mkCoLetrecNoUnboxed,
-
- rhssOfAlts,
-
- -- Common type instantiation...
- CoreBinding(..),
- CoreExpr(..),
- CoreBinder(..),
- CoreArg(..),
- CoreCaseAlts(..),
- CoreCaseDefault(..),
-
- -- And not-so-common type instantiations...
- TaggedCoreBinding(..),
- TaggedCoreExpr(..),
- TaggedCoreBinder(..),
- TaggedCoreArg(..),
- TaggedCoreCaseAlts(..),
- TaggedCoreCaseDefault(..),
-
- SimplifiableCoreBinding(..),
- SimplifiableCoreExpr(..),
- SimplifiableCoreBinder(..),
- SimplifiableCoreArg(..),
- SimplifiableCoreCaseAlts(..),
- SimplifiableCoreCaseDefault(..)
-
- -- and to make the interface self-sufficient ...
-
+ Expr(..), Alt, Bind(..), AltCon(..), Arg, Note(..),
+ CoreExpr, CoreAlt, CoreBind, CoreArg, CoreBndr,
+ TaggedExpr, TaggedAlt, TaggedBind, TaggedArg, TaggedBndr(..),
+
+ mkLets, mkLams,
+ mkApps, mkTyApps, mkValApps, mkVarApps,
+ mkLit, mkIntLitInt, mkIntLit,
+ mkConApp,
+ varToCoreExpr,
+
+ isTyVar, isId, cmpAltCon, cmpAlt, ltAlt,
+ bindersOf, bindersOfBinds, rhssOfBind, rhssOfAlts,
+ collectBinders, collectTyBinders, collectValBinders, collectTyAndValBinders,
+ collectArgs,
+ coreExprCc,
+ flattenBinds,
+
+ isValArg, isTypeArg, valArgCount, valBndrCount, isRuntimeArg, isRuntimeVar,
+
+ -- Unfoldings
+ Unfolding(..), UnfoldingGuidance(..), -- Both abstract everywhere but in CoreUnfold.lhs
+ noUnfolding, evaldUnfolding, mkOtherCon,
+ unfoldingTemplate, maybeUnfoldingTemplate, otherCons,
+ isValueUnfolding, isEvaldUnfolding, isCheapUnfolding, isCompulsoryUnfolding,
+ hasUnfolding, hasSomeUnfolding, neverUnfold,
+
+ -- Seq stuff
+ seqExpr, seqExprs, seqUnfolding,
+
+ -- Annotated expressions
+ AnnExpr, AnnExpr'(..), AnnBind(..), AnnAlt,
+ deAnnotate, deAnnotate', deAnnAlt, collectAnnBndrs,
+
+ -- Core rules
+ CoreRule(..), -- CoreSubst, CoreTidy, CoreFVs, PprCore only
+ RuleName, seqRules,
+ isBuiltinRule, ruleName, isLocalRule, ruleIdName