Propagate scalar variables and tycons for vectorisation through 'HscTypes.VectInfo'.
[ghc-hetmet.git] / compiler / typecheck / TcSplice.lhs-boot
1 \begin{code}
2 module TcSplice where
3 import HsSyn    ( HsSplice, HsBracket, HsQuasiQuote,
4                   HsExpr, HsType, LHsType, LHsExpr, LPat, LHsDecl )
5 import Name     ( Name )
6 import NameSet  ( FreeVars )
7 import RdrName  ( RdrName )
8 import TcRnTypes( TcM, TcId )
9 import TcType   ( TcRhoType, TcKind )
10 import Annotations ( Annotation, CoreAnnTarget )
11 import qualified Language.Haskell.TH as TH
12
13 tcSpliceExpr :: HsSplice Name
14              -> TcRhoType
15              -> TcM (HsExpr TcId)
16
17 kcSpliceType :: HsSplice Name -> FreeVars
18              -> TcM (HsType Name, TcKind)
19
20 tcBracket :: HsBracket Name 
21           -> TcRhoType
22           -> TcM (LHsExpr TcId)
23
24 tcSpliceDecls :: LHsExpr Name -> TcM [LHsDecl RdrName]
25
26 lookupThName_maybe :: TH.Name -> TcM (Maybe Name)
27
28 runQuasiQuoteDecl :: HsQuasiQuote RdrName -> TcM [LHsDecl RdrName]
29 runQuasiQuoteExpr :: HsQuasiQuote RdrName -> TcM (LHsExpr RdrName)
30 runQuasiQuoteType :: HsQuasiQuote RdrName -> TcM (LHsType RdrName)
31 runQuasiQuotePat  :: HsQuasiQuote RdrName -> TcM (LPat RdrName)
32 runAnnotation     :: CoreAnnTarget -> LHsExpr Name -> TcM Annotation
33 \end{code}