[project @ 1996-04-05 08:26:04 by partain]
[ghc-hetmet.git] / ghc / compiler / simplCore / SmplLoop.lhi
1 Breaks the loop between SimplEnv and MagicUFs, by telling SimplEnv all
2 it needs to know about MagicUFs (not much).
3
4 Also break the loop between SimplVar/SimplCase (which use
5 Simplify.simplExpr) and SimplExpr (which uses whatever
6 SimplVar/SimplCase cough up).
7
8 \begin{code}
9 interface SmplLoop where
10
11 import MagicUFs     ( MagicUnfoldingFun )
12 import SimplEnv     ( SimplEnv, InBinding(..), InExpr(..),
13                       OutArg(..), OutExpr(..), OutType(..)
14                     )
15 import Simplify     ( simplExpr, simplBind )
16 import SimplMonad   ( SmplM(..) )
17
18 data MagicUnfoldingFun
19
20 simplExpr :: SimplEnv -> InExpr -> [OutArg] -> SmplM OutExpr
21 simplBind :: SimplEnv
22           -> InBinding
23           -> (SimplEnv -> SmplM OutExpr)
24           -> OutType
25           -> SmplM OutExpr
26 \end{code}