Add typed holes support in Template Haskell.
[ghc.git] / compiler / typecheck / TcSplice.hs-boot
1 {-# LANGUAGE CPP #-}
2
3 module TcSplice where
4 import HsSyn    ( HsSplice, HsBracket, HsExpr, LHsExpr )
5 import HsExpr   ( PendingRnSplice )
6 import Name     ( Name )
7 import TcRnTypes( TcM, TcId )
8 import TcType   ( TcRhoType )
9 import Annotations ( Annotation, CoreAnnTarget )
10
11 #ifdef GHCI
12 import HsSyn      ( LHsType, LPat, LHsDecl )
13 import RdrName    ( RdrName )
14 import TcRnTypes  ( SpliceType )
15 import qualified Language.Haskell.TH as TH
16 #endif
17
18 tcSpliceExpr :: HsSplice Name
19              -> TcRhoType
20              -> TcM (HsExpr TcId)
21
22 tcUntypedBracket :: HsBracket Name
23                  -> [PendingRnSplice]
24                  -> TcRhoType
25                  -> TcM (HsExpr TcId)
26 tcTypedBracket :: HsBracket Name
27                -> TcRhoType
28                -> TcM (HsExpr TcId)
29
30 runAnnotation     :: CoreAnnTarget -> LHsExpr Name -> TcM Annotation
31
32 #ifdef GHCI
33 tcTopSpliceExpr :: SpliceType -> TcM (LHsExpr TcId) -> TcM (LHsExpr TcId)
34
35 runMetaE :: LHsExpr TcId -> TcM (LHsExpr RdrName)
36 runMetaP :: LHsExpr TcId -> TcM (LPat RdrName)
37 runMetaT :: LHsExpr TcId  -> TcM (LHsType RdrName)
38 runMetaD :: LHsExpr TcId -> TcM [LHsDecl RdrName]
39
40 lookupThName_maybe :: TH.Name -> TcM (Maybe Name)
41 runQuasi :: TH.Q a -> TcM a
42 #endif