| Safe Haskell | None |
|---|---|
| Language | GHC2024 |
GHC.Stg.EnforceEpt.Types
Synopsis
- combineAltInfo :: TagInfo -> TagInfo -> TagInfo
- extendSigEnv :: TagEnv p -> [(Id, TagSig)] -> TagEnv p
- getBinderId :: TagEnv p -> BinderP p -> Id
- initEnv :: Bool -> TagEnv 'CodeGen
- isDunnoSig :: TagSig -> Bool
- lookupInfo :: TagEnv p -> StgArg -> TagInfo
- lookupReturnInfo :: TagEnv p -> Id -> Maybe TagInfo
- makeTagged :: TagEnv p -> TagEnv 'InferTaggedBinders
- noSig :: TagEnv p -> BinderP p -> (Id, TagSig)
- type InferStgAlt = GenStgAlt 'InferTaggedBinders
- type InferStgBinding = GenStgBinding 'InferTaggedBinders
- type InferStgExpr = GenStgExpr 'InferTaggedBinders
- type InferStgRhs = GenStgRhs 'InferTaggedBinders
- type InferStgTopBinding = GenStgTopBinding 'InferTaggedBinders
- data TagEnv (p :: StgPass) = TE {}
- type TagSigEnv = IdEnv TagSig
- module GHC.Stg.EnforceEpt.TagSig
Documentation
combineAltInfo :: TagInfo -> TagInfo -> TagInfo Source #
Combine TagInfo from the alternatives of a case expression. Note that this operates at the value level: case alternatives return values. See Note [TagSig and TagInfo].
isDunnoSig :: TagSig -> Bool Source #
lookupInfo :: TagEnv p -> StgArg -> TagInfo Source #
Look up a value-level tag for an argument: either from the env (where a function-typed argument flattens to TagEPT — its closure is tagged) or derived from information on the variable itself.
makeTagged :: TagEnv p -> TagEnv 'InferTaggedBinders Source #
Simple convert env to a env of the 'InferTaggedBinders pass with no other changes.
type InferStgAlt = GenStgAlt 'InferTaggedBinders Source #
type InferStgExpr = GenStgExpr 'InferTaggedBinders Source #
type InferStgRhs = GenStgRhs 'InferTaggedBinders Source #
module GHC.Stg.EnforceEpt.TagSig