ghc-9.6.3: The GHC API

Safe Haskell | Safe-Inferred
Language | Haskell2010

GHC.Stg.InferTags.Types

Synopsis

- type InferStgTopBinding = GenStgTopBinding 'InferTaggedBinders
- type InferStgBinding = GenStgBinding 'InferTaggedBinders
- type InferStgExpr = GenStgExpr 'InferTaggedBinders
- type InferStgRhs = GenStgRhs 'InferTaggedBinders
- type InferStgAlt = GenStgAlt 'InferTaggedBinders
- type TagSigEnv = IdEnv TagSig
- data TagEnv p = TE {
  - te_env :: TagSigEnv
  - te_get :: BinderP p -> Id
  - te_bytecode :: !Bool
  }
- noSig :: TagEnv p -> BinderP p -> (Id, TagSig)
- extendSigEnv :: TagEnv p -> [(Id, TagSig)] -> TagEnv p
- initEnv :: Bool -> TagEnv 'CodeGen
- combineAltInfo :: TagInfo -> TagInfo -> TagInfo
- getBinderId :: TagEnv p -> BinderP p -> Id
- makeTagged :: TagEnv p -> TagEnv 'InferTaggedBinders
- lookupSig :: TagEnv p -> Id -> Maybe TagSig
- lookupInfo :: TagEnv p -> StgArg -> TagInfo
- isDunnoSig :: TagSig -> Bool
- isTaggedInfo :: TagInfo -> Bool
- module GHC.Stg.InferTags.TagSig

# Documentation

type InferStgTopBinding = GenStgTopBinding 'InferTaggedBinders Source #

type InferStgBinding = GenStgBinding 'InferTaggedBinders Source #

type InferStgExpr = GenStgExpr 'InferTaggedBinders Source #

type InferStgRhs = GenStgRhs 'InferTaggedBinders Source #

type InferStgAlt = GenStgAlt 'InferTaggedBinders Source #

type TagSigEnv = IdEnv TagSig Source #

data TagEnv p Source #

Constructors

TE |

Fields

- te_env :: TagSigEnv
- te_get :: BinderP p -> Id
- te_bytecode :: !Bool

#### Instances

Instances details

Outputable (TagEnv p) Source # |
Instance details Defined in GHC.Stg.InferTags.Types Methods ppr :: TagEnv p -> SDoc Source #

noSig :: TagEnv p -> BinderP p -> (Id, TagSig) Source #

extendSigEnv :: TagEnv p -> [(Id, TagSig)] -> TagEnv p Source #

initEnv :: Bool -> TagEnv 'CodeGen Source #

combineAltInfo :: TagInfo -> TagInfo -> TagInfo Source #

getBinderId :: TagEnv p -> BinderP p -> Id Source #

makeTagged :: TagEnv p -> TagEnv 'InferTaggedBinders Source #

Simple convert env to a env of the 'InferTaggedBinders pass with no other changes.

lookupSig :: TagEnv p -> Id -> Maybe TagSig Source #

Look up a sig in the given env

lookupInfo :: TagEnv p -> StgArg -> TagInfo Source #

Look up a sig in the env or derive it from information in the arg itself.

isDunnoSig :: TagSig -> Bool Source #

isTaggedInfo :: TagInfo -> Bool Source #

module GHC.Stg.InferTags.TagSig