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