ivory-opts-0.1.0.6: Ivory compiler optimizations.

Safe HaskellNone
LanguageHaskell2010

Ivory.Opts.AssertFold

Description

Fold over expressions that collect up assertions about the expressions.

Synopsis

Documentation

procFold :: String -> ExpFold -> Proc -> Proc Source #

Update a procedure's statements with its compiler assertions (and local variable declarations, as needed).

expFoldDefault :: ExpFold -> Type -> Expr -> FolderStmt () Source #

insert :: a -> FolderM a () Source #

type FolderStmt a = FolderM Stmt a Source #

freshVar :: FolderM a String Source #

Create a fresh variable and update the variable store.