Safe Haskell | None |
---|---|
Language | Haskell2010 |
- data Unique = Unique !Char !Int
- data ExternalName
- = ExternalName { }
- | ForeignCall
- newtype BinderId = BinderId Unique
- newtype SBinder = SBndr {}
- newtype Binder = Bndr {}
- binderUniqueName :: Binder -> Text
- data Binder' bndr var
- = Binder {
- binderName :: !Text
- binderId :: !BinderId
- binderIdInfo :: IdInfo bndr var
- binderIdDetails :: IdDetails
- binderType :: Type' bndr var
- | TyBinder {
- binderName :: !Text
- binderId :: !BinderId
- binderKind :: Type' bndr var
- = Binder {
- data IdInfo bndr var = IdInfo {
- idiArity :: !Int
- idiIsOneShot :: Bool
- idiUnfolding :: Unfolding bndr var
- idiInlinePragma :: !Text
- idiOccInfo :: OccInfo
- idiStrictnessSig :: !Text
- idiDemandSig :: !Text
- idiCallArity :: !Int
- data Unfolding bndr var
- = NoUnfolding
- | BootUnfolding
- | OtherCon [AltCon]
- | DFunUnfolding
- | CoreUnfolding {
- unfTemplate :: Expr' bndr var
- unfIsValue :: Bool
- unfIsConLike :: Bool
- unfIsWorkFree :: Bool
- unfGuidance :: Text
- data OccInfo
- = OccManyOccs
- | OccDead
- | OccOneOcc
- | OccLoopBreaker { }
- data IdDetails
- = VanillaId
- | RecSelId
- | DataConWorkId
- | DataConWrapId
- | ClassOpId
- | PrimOpId
- | TickBoxOpId
- | DFunId
- | CoVarId
- | JoinId {
- joinIdArity :: !Int
- data Lit
- data TyCon = TyCon !Text !Unique
- type SType = Type' SBinder BinderId
- type Type = Type' Binder Binder
- data Type' bndr var
- newtype ModuleName = ModuleName {}
- type Module = Module' Binder Binder
- type SModule = Module' SBinder BinderId
- data Module' bndr var = Module {
- moduleName :: ModuleName
- modulePhase :: Text
- moduleTopBindings :: [TopBinding' bndr var]
- moduleBindings :: Module' bndr var -> [(bndr, CoreStats, Expr' bndr var)]
- type SExpr = Expr' SBinder BinderId
- type Expr = Expr' Binder Binder
- data Expr' bndr var
- type SAlt = Alt' SBinder BinderId
- type Alt = Alt' Binder Binder
- data Alt' bndr var = Alt {
- altCon :: !AltCon
- altBinders :: [bndr]
- altRHS :: Expr' bndr var
- data AltCon
- = AltDataCon !Text
- | AltLit Lit
- | AltDefault
- type STopBinding = TopBinding' SBinder BinderId
- type TopBinding = TopBinding' Binder Binder
- data TopBinding' bndr var
- = NonRecTopBinding bndr CoreStats (Expr' bndr var)
- | RecTopBinding [(bndr, CoreStats, Expr' bndr var)]
- topBindings :: TopBinding' bndr var -> [(bndr, CoreStats, Expr' bndr var)]
- data CoreStats = CoreStats {
- csTerms :: !Int
- csTypes :: !Int
- csCoercions :: !Int
- csValBinds :: !Int
- csJoinBinds :: !Int
Documentation
data ExternalName Source #
binderUniqueName :: Binder -> Text Source #
data Binder' bndr var Source #
Binder | |
| |
TyBinder | |
|
(Eq var, Eq bndr) => Eq (Binder' bndr var) Source # | |
(Ord var, Ord bndr) => Ord (Binder' bndr var) Source # | |
(Show var, Show bndr) => Show (Binder' bndr var) Source # | |
Generic (Binder' bndr var) Source # | |
(Serialise bndr, Serialise var) => Serialise (Binder' bndr var) Source # | |
type Rep (Binder' bndr var) Source # | |
IdInfo | |
|
(Eq bndr, Eq var) => Eq (IdInfo bndr var) Source # | |
(Ord bndr, Ord var) => Ord (IdInfo bndr var) Source # | |
(Show bndr, Show var) => Show (IdInfo bndr var) Source # | |
Generic (IdInfo bndr var) Source # | |
(Serialise bndr, Serialise var) => Serialise (IdInfo bndr var) Source # | |
type Rep (IdInfo bndr var) Source # | |
data Unfolding bndr var Source #
NoUnfolding | |
BootUnfolding | |
OtherCon [AltCon] | |
DFunUnfolding | |
CoreUnfolding | |
|
(Eq var, Eq bndr) => Eq (Unfolding bndr var) Source # | |
(Ord var, Ord bndr) => Ord (Unfolding bndr var) Source # | |
(Show var, Show bndr) => Show (Unfolding bndr var) Source # | |
Generic (Unfolding bndr var) Source # | |
(Serialise bndr, Serialise var) => Serialise (Unfolding bndr var) Source # | |
type Rep (Unfolding bndr var) Source # | |
OccManyOccs | |
OccDead | introduced in GHC 8.2 |
OccOneOcc | |
OccLoopBreaker | |
VanillaId | |
RecSelId | |
DataConWorkId | |
DataConWrapId | |
ClassOpId | |
PrimOpId | |
TickBoxOpId | FCallId (these are treated as ExternalNames since they have no binding site) |
DFunId | |
CoVarId | |
JoinId | introduced in GHC 8.0 |
|
newtype ModuleName Source #
data Module' bndr var Source #
Module | |
|
The binder story:
Things which might contain bound variables (e.g. expressions and types) have
a type variable which is instantiated at BinderId
in the serialised form or
Binder
after post-processing.
Note that bindings sites themselves are always Binder
s.
type STopBinding = TopBinding' SBinder BinderId Source #
type TopBinding = TopBinding' Binder Binder Source #
data TopBinding' bndr var Source #
NonRecTopBinding bndr CoreStats (Expr' bndr var) | |
RecTopBinding [(bndr, CoreStats, Expr' bndr var)] |
(Show var, Show bndr) => Show (TopBinding' bndr var) Source # | |
Generic (TopBinding' bndr var) Source # | |
(Serialise bndr, Serialise var) => Serialise (TopBinding' bndr var) Source # | |
type Rep (TopBinding' bndr var) Source # | |
topBindings :: TopBinding' bndr var -> [(bndr, CoreStats, Expr' bndr var)] Source #