ivory-opts-0.1.0.0: Ivory compiler optimizations.

Safe HaskellNone

Ivory.Opts.AssertFold

Description

Fold over expressions that collect up assertions about the expressions.

Synopsis

Documentation

newtype FolderM a b Source

A monad that holds our transformed program.

Constructors

FolderM 

Fields

unFolderM :: StateT (DList a) Id b
 

Instances

insert :: a -> FolderM a ()Source

insertList :: [a] -> FolderM a ()Source

runFolderM :: FolderM a b -> (b, DList a)Source

type ExpFold = Type -> Expr -> [Expr]Source

expFoldDefault :: ExpFold -> Type -> Expr -> [Expr]Source

Default expression folder that performs the recursion for an asserter.

(<++>) :: Monoid a => a -> a -> aSource