1 Breaks the loop between SimplEnv and MagicUFs, by telling SimplEnv all
2 it needs to know about MagicUFs (not much).
4 Also break the loop between SimplVar/SimplCase (which use
5 Simplify.simplExpr) and SimplExpr (which uses whatever
6 SimplVar/SimplCase cough up).
9 interface SmplLoop where
11 import MagicUFs ( MagicUnfoldingFun )
12 import SimplEnv ( SimplEnv, InBinding(..), InExpr(..),
13 OutArg(..), OutExpr(..), OutType(..)
15 import Simplify ( simplExpr, simplBind )
16 import SimplMonad ( SmplM(..) )
18 data MagicUnfoldingFun
20 simplExpr :: SimplEnv -> InExpr -> [OutArg] -> SmplM OutExpr
23 -> (SimplEnv -> SmplM OutExpr)