Bump hsc2hs submodule
[ghc.git] / compiler / typecheck / TcExpr.hs-boot
1 module TcExpr where
2 import Name
3 import GHC.Hs    ( HsExpr, LHsExpr, SyntaxExpr )
4 import TcType   ( TcRhoType, TcSigmaType, SyntaxOpType, ExpType, ExpRhoType )
5 import TcRnTypes( TcM )
6 import TcOrigin ( CtOrigin )
7 import GHC.Hs.Extension ( GhcRn, GhcTcId )
8
9 tcPolyExpr ::
10           LHsExpr GhcRn
11        -> TcSigmaType
12        -> TcM (LHsExpr GhcTcId)
13
14 tcMonoExpr, tcMonoExprNC ::
15           LHsExpr GhcRn
16        -> ExpRhoType
17        -> TcM (LHsExpr GhcTcId)
18
19 tcInferSigma ::
20           LHsExpr GhcRn
21        -> TcM (LHsExpr GhcTcId, TcSigmaType)
22
23 tcInferRho, tcInferRhoNC ::
24           LHsExpr GhcRn
25        -> TcM (LHsExpr GhcTcId, TcRhoType)
26
27 tcSyntaxOp :: CtOrigin
28            -> SyntaxExpr GhcRn
29            -> [SyntaxOpType]           -- ^ shape of syntax operator arguments
30            -> ExpType                  -- ^ overall result type
31            -> ([TcSigmaType] -> TcM a) -- ^ Type check any arguments
32            -> TcM (a, SyntaxExpr GhcTcId)
33
34 tcSyntaxOpGen :: CtOrigin
35               -> SyntaxExpr GhcRn
36               -> [SyntaxOpType]
37               -> SyntaxOpType
38               -> ([TcSigmaType] -> TcM a)
39               -> TcM (a, SyntaxExpr GhcTcId)
40
41
42 tcCheckId :: Name -> ExpRhoType -> TcM (HsExpr GhcTcId)