1 module CLasH.Normalize.NormalizeTypes where
4 import qualified Control.Monad.Trans.Writer as Writer
5 import qualified Data.Monoid as Monoid
8 import qualified CoreSyn
11 import CLasH.Translator.TranslatorTypes
13 -- Wrap a writer around a TranslatorSession, to run a single transformation
14 -- over a single expression and track if the expression was changed.
15 type TransformMonad = Writer.WriterT Monoid.Any TranslatorSession
17 -- | Transforms a CoreExpr and keeps track if it has changed.
18 type Transform = CoreSyn.CoreExpr -> TransformMonad CoreSyn.CoreExpr