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
- _curFun :: TmName
- 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))
- curFun :: Lens' NormalizeState TmName
- type NormalizeMonad = State NormalizeState
- type NormalizeSession = RewriteSession NormalizeMonad
- type NormRewrite = Rewrite NormalizeMonad
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 = RewriteSession NormalizeMonad Source
RewriteSession with extra Normalisation information
type NormRewrite = Rewrite NormalizeMonad Source
A Transform
action in the context of the RewriteMonad
and NormalizeMonad