1module Match where
2
3import GhcPrelude
4import Var      ( Id )
5import TcType   ( Type )
6import DsMonad  ( DsM, EquationInfo, MatchResult )
7import CoreSyn  ( CoreExpr )
8import GHC.Hs   ( LPat, HsMatchContext, MatchGroup, LHsExpr )
9import Name     ( Name )
10import GHC.Hs.Extension ( GhcTc )
11
12match   :: [Id]
13        -> Type
14        -> [EquationInfo]
15        -> DsM MatchResult
16
17matchWrapper
18        :: HsMatchContext Name
19        -> Maybe (LHsExpr GhcTc)
20        -> MatchGroup GhcTc (LHsExpr GhcTc)
21        -> DsM ([Id], CoreExpr)
22
23matchSimply
24        :: CoreExpr
25        -> HsMatchContext Name
26        -> LPat GhcTc
27        -> CoreExpr
28        -> CoreExpr
29        -> DsM CoreExpr
30
31matchSinglePatVar
32        :: Id
33        -> HsMatchContext Name
34        -> LPat GhcTc
35        -> Type
36        -> MatchResult
37        -> DsM MatchResult
38