1 Break the loop between Match and DsUtils and the loops
2 between DsExpr/DsBinds and various things.
7 import CoreSyn ( CoreBinding(..), CoreExpr(..) )
8 import DsMonad ( DsM(..), DsMatchKind(..) )
9 import DsBinds ( dsBinds )
10 import DsExpr ( dsExpr )
11 import DsUtils ( EquationInfo, MatchResult )
12 import FastString ( FastString )
14 import Match ( matchExport, match, matchSimply )
15 import PreludeStdIO ( Maybe )
16 import TcHsSyn ( TypecheckedHsBinds(..), TypecheckedHsExpr(..), TypecheckedPat(..) )
17 import Type ( Type(..) )
18 match :: [Id] -- Variables rep'ing the exprs we're matching with
19 -> [EquationInfo] -- Info about patterns, etc. (type synonym below)
20 -> DsM MatchResult -- Desugared result!
21 matchExport :: [Id] -- Variables rep'ing the exprs we're matching with
22 -> [EquationInfo] -- Info about patterns, etc. (type synonym below)
23 -> DsM MatchResult -- Desugared result!
25 matchSimply :: CoreExpr -- Scrutinee
26 -> DsMatchKind -- Type of Match
27 -> TypecheckedPat -- Pattern it should match
28 -> Type -- Type of result
29 -> CoreExpr -- Return this if it matches
30 -> CoreExpr -- Return this if it does
33 dsBinds :: Bool -> TypecheckedHsBinds -> DsM [CoreBinding]
34 dsExpr :: TypecheckedHsExpr -> DsM CoreExpr