YhcSource codeContentsIndex
Yhc.Core.RecursiveLet
Synopsis
isCoreLetRec :: CoreExpr -> Bool
removeRecursiveLet :: Core -> Core
reduceRecursiveLet :: Core -> Core
Documentation
isCoreLetRec :: CoreExpr -> Bool

Is a CoreLet recursive, i.e. do any of the introduced variables (LHS of bind) also show up in the RHS of bind.

Returns False if the expression is not a CoreLet.

removeRecursiveLet :: Core -> Core

Remove recursive lets

Let's are rearranged so a variable is not used in the defining block

reduceRecursiveLet :: Core -> Core
Reduce the number of recursive lets, but splitting lets which have recursive bindings, but can be linearised
Produced by Haddock version 0.8