Copyright | (C) 2012-2016 University of Twente 2017 Google Inc. 2022 QBayLogic B.V. |
---|---|
License | BSD2 (see the file LICENSE) |
Maintainer | QBayLogic B.V. <devops@qbaylogic.com> |
Safe Haskell | None |
Language | Haskell2010 |
Types used in Normalize modules
Synopsis
- data NormalizeState = NormalizeState {}
- specialisationHistory :: Lens' NormalizeState (VarEnv Int)
- specialisationCache :: Lens' NormalizeState (Map (Id, Int, Either Term Type) Id)
- recursiveComponents :: Lens' NormalizeState (VarEnv Bool)
- primitiveArgs :: Lens' NormalizeState (Map Text (Set Int))
- normalized :: Lens' NormalizeState BindingMap
- inlineHistory :: Lens' NormalizeState (VarEnv (VarEnv Int))
- type NormalizeMonad = State NormalizeState
- type NormalizeSession = RewriteMonad NormalizeState
- type NormRewrite = Rewrite NormalizeState
- data TermClassification = TermClassification {
- _function :: !Int
- _primitive :: !Int
- _selection :: !Int
- selection :: Lens' TermClassification Int
- primitive :: Lens' TermClassification Int
- function :: Lens' TermClassification Int
Documentation
data NormalizeState Source #
State of the NormalizeMonad
NormalizeState | |
|
primitiveArgs :: Lens' NormalizeState (Map Text (Set Int)) Source #
inlineHistory :: Lens' NormalizeState (VarEnv (VarEnv Int)) 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
data TermClassification Source #
Description of a Term
in terms of the type "components" the Term
has.
Is used as a performance/size metric.
TermClassification | |
|
Instances
Show TermClassification Source # | |
Defined in Clash.Normalize.Types showsPrec :: Int -> TermClassification -> ShowS # show :: TermClassification -> String # showList :: [TermClassification] -> ShowS # |