Make a smart mkAppTyM
[ghc.git] / compiler / typecheck / TcSplice.hs-boot
1 {-# LANGUAGE CPP #-}
2 {-# LANGUAGE TypeFamilies #-}
3
4 module TcSplice where
5
6 import GhcPrelude
7 import Name
8 import HsExpr   ( PendingRnSplice, DelayedSplice )
9 import TcRnTypes( TcM , SpliceType )
10 import TcType   ( ExpRhoType )
11 import Annotations ( Annotation, CoreAnnTarget )
12 import HsExtension ( GhcTcId, GhcRn, GhcPs, GhcTc )
13
14 import HsSyn      ( HsSplice, HsBracket, HsExpr, LHsExpr, LHsType, LPat,
15                     LHsDecl, ThModFinalizers )
16 import qualified Language.Haskell.TH as TH
17
18 tcSpliceExpr :: HsSplice GhcRn
19              -> ExpRhoType
20              -> TcM (HsExpr GhcTcId)
21
22 tcUntypedBracket :: HsExpr GhcRn
23                  -> HsBracket GhcRn
24                  -> [PendingRnSplice]
25                  -> ExpRhoType
26                  -> TcM (HsExpr GhcTcId)
27 tcTypedBracket :: HsExpr GhcRn
28                -> HsBracket GhcRn
29                -> ExpRhoType
30                -> TcM (HsExpr GhcTcId)
31
32 runTopSplice :: DelayedSplice -> TcM (HsExpr GhcTc)
33
34 runAnnotation     :: CoreAnnTarget -> LHsExpr GhcRn -> TcM Annotation
35
36 tcTopSpliceExpr :: SpliceType -> TcM (LHsExpr GhcTcId) -> TcM (LHsExpr GhcTcId)
37
38 runMetaE :: LHsExpr GhcTcId -> TcM (LHsExpr GhcPs)
39 runMetaP :: LHsExpr GhcTcId -> TcM (LPat GhcPs)
40 runMetaT :: LHsExpr GhcTcId -> TcM (LHsType GhcPs)
41 runMetaD :: LHsExpr GhcTcId -> TcM [LHsDecl GhcPs]
42
43 lookupThName_maybe :: TH.Name -> TcM (Maybe Name)
44 runQuasi :: TH.Q a -> TcM a
45 runRemoteModFinalizers :: ThModFinalizers -> TcM ()
46 finishTH :: TcM ()