TcSplice.lhs-boot 1.4 KB
Newer Older
1 2
\begin{code}
module TcSplice where
Ian Lynagh's avatar
Ian Lynagh committed
3
import HsSyn    ( HsSplice, HsBracket, HsQuasiQuote,
4
                  HsExpr, LHsType, LHsExpr, LPat, LHsDecl )
gmainland's avatar
gmainland committed
5 6
import HsExpr   ( PendingSplice )
import Id       ( Id )
Ian Lynagh's avatar
Ian Lynagh committed
7 8 9
import Name     ( Name )
import NameSet  ( FreeVars )
import RdrName  ( RdrName )
10
import TcRnTypes( TcM, TcId )
11
import TcType   ( TcRhoType, TcType, TcKind )
12 13
import Annotations ( Annotation, CoreAnnTarget )
import qualified Language.Haskell.TH as TH
14 15

tcSpliceExpr :: HsSplice Name
Ian Lynagh's avatar
Ian Lynagh committed
16 17
             -> TcRhoType
             -> TcM (HsExpr TcId)
18

19
tcSpliceType :: HsSplice Name -> FreeVars -> TcM (TcType, TcKind)
20

gmainland's avatar
gmainland committed
21 22
tcSpliceDecls :: LHsExpr Name -> TcM [LHsDecl RdrName]

23
tcBracket :: HsBracket Name 
gmainland's avatar
gmainland committed
24
          -> [PendingSplice]
Ian Lynagh's avatar
Ian Lynagh committed
25
          -> TcRhoType
26
          -> TcM (HsExpr TcId)
27

gmainland's avatar
gmainland committed
28
tcTopSpliceExpr :: Bool -> TcM (LHsExpr Id) -> TcM (LHsExpr Id)
29

30 31
lookupThName_maybe :: TH.Name -> TcM (Maybe Name)

32 33 34 35
runQuasiQuoteDecl :: HsQuasiQuote RdrName -> TcM [LHsDecl RdrName]
runQuasiQuoteExpr :: HsQuasiQuote RdrName -> TcM (LHsExpr RdrName)
runQuasiQuoteType :: HsQuasiQuote RdrName -> TcM (LHsType RdrName)
runQuasiQuotePat  :: HsQuasiQuote RdrName -> TcM (LPat RdrName)
36
runAnnotation     :: CoreAnnTarget -> LHsExpr Name -> TcM Annotation
gmainland's avatar
gmainland committed
37 38

runMetaE :: LHsExpr Id -> TcM (LHsExpr RdrName)
gmainland's avatar
gmainland committed
39
runMetaP :: LHsExpr Id -> TcM (LPat RdrName)
gmainland's avatar
gmainland committed
40 41
runMetaT :: LHsExpr Id  -> TcM (LHsType RdrName)
runMetaD :: LHsExpr Id -> TcM [LHsDecl RdrName]
42
\end{code}