Safe Haskell | None |
---|---|
Language | Haskell2010 |
Types used in Normalize modules
- data NormalizeState = NormalizeState {
- _normalized :: HashMap TmName (Type, Term)
- _specialisationCache :: Map (TmName, Int, Either Term Type) (TmName, Type)
- _specialisationHistory :: HashMap TmName Int
- _specialisationLimit :: !Int
- _inlineHistory :: HashMap TmName (HashMap TmName Int)
- _inlineLimit :: !Int
- _inlineBelow :: !Int
- specialisationLimit :: Lens' NormalizeState Int
- specialisationHistory :: Lens' NormalizeState (HashMap TmName Int)
- specialisationCache :: Lens' NormalizeState (Map (TmName, Int, Either Term Type) (TmName, Type))
- normalized :: Lens' NormalizeState (HashMap TmName (Type, Term))
- inlineLimit :: Lens' NormalizeState Int
- inlineHistory :: Lens' NormalizeState (HashMap TmName (HashMap TmName Int))
- inlineBelow :: Lens' NormalizeState Int
- type NormalizeMonad = State NormalizeState
- type NormalizeSession = RewriteMonad NormalizeState
- type NormRewrite = Rewrite NormalizeState
Documentation
data NormalizeState Source
State of the NormalizeMonad
NormalizeState | |
|
specialisationCache :: Lens' NormalizeState (Map (TmName, Int, Either Term Type) (TmName, Type)) Source
normalized :: Lens' NormalizeState (HashMap TmName (Type, Term)) Source
type NormalizeMonad = State NormalizeState Source
State monad that stores specialisation and inlining information
type NormalizeSession = RewriteMonad NormalizeState Source
RewriteSession with extra Normalisation information
type NormRewrite = Rewrite NormalizeState Source
A Transform
action in the context of the RewriteMonad
and NormalizeMonad