{-# LANGUAGE MagicHash #-}
{-# LANGUAGE TemplateHaskellQuotes #-}
{-# LANGUAGE Safe #-}
{-# LANGUAGE UnboxedTuples #-}
module Language.Haskell.TH.Syntax (
Quote (..),
Exp (..),
Match (..),
Clause (..),
Q (..),
Pat (..),
Stmt (..),
Con (..),
Type (..),
Dec (..),
BangType,
VarBangType,
FieldExp,
FieldPat,
Name (..),
FunDep (..),
Pred,
RuleBndr (..),
TySynEqn (..),
InjectivityAnn (..),
Kind,
Overlap (..),
DerivClause (..),
DerivStrategy (..),
Code (..),
ModName (..),
addCorePlugin,
addDependentFile,
addForeignFile,
addForeignFilePath,
addForeignSource,
addModFinalizer,
addTempFile,
addTopDecls,
badIO,
bindCode,
bindCode_,
cmpEq,
compareBytes,
counter,
defaultFixity,
eqBytes,
extsEnabled,
getDoc,
getPackageRoot,
getQ,
get_cons_names,
hoistCode,
isExtEnabled,
isInstance,
joinCode,
liftCode,
location,
lookupName,
lookupTypeName,
lookupValueName,
manyName,
maxPrecedence,
memcmp,
mkNameG,
mkNameU,
mkOccName,
mkPkgName,
mk_tup_name,
mkName,
mkNameG_v,
mkNameG_d,
mkNameG_tc,
mkNameL,
mkNameS,
unTypeCode,
mkModName,
unsafeCodeCoerce,
mkNameQ,
mkNameG_fld,
modString,
nameBase,
nameModule,
namePackage,
nameSpace,
newDeclarationGroup,
newNameIO,
occString,
oneName,
pkgString,
putDoc,
putQ,
recover,
reify,
reifyAnnotations,
reifyConStrictness,
reifyFixity,
reifyInstances,
reifyModule,
reifyRoles,
reifyType,
report,
reportError,
reportWarning,
runIO,
sequenceQ,
runQ,
showName,
showName',
thenCmp,
tupleDataName,
tupleTypeName,
unTypeQ,
unboxedSumDataName,
unboxedSumTypeName,
unboxedTupleDataName,
unboxedTupleTypeName,
unsafeTExpCoerce,
ForeignSrcLang (..),
Extension (..),
AnnLookup (..),
AnnTarget (..),
Arity,
Bang (..),
BndrVis (..),
Body (..),
Bytes (..),
Callconv (..),
CharPos,
Cxt,
DecidedStrictness (..),
DocLoc (..),
FamilyResultSig (..),
Fixity (..),
FixityDirection (..),
Foreign (..),
Guard (..),
Info (..),
Inline (..),
InstanceDec,
Lit (..),
Loc (..),
Module (..),
ModuleInfo (..),
NameFlavour (..),
NameIs (..),
NameSpace (..),
NamespaceSpecifier (..),
OccName (..),
ParentName,
PatSynArgs (..),
PatSynDir (..),
PatSynType,
Phases (..),
PkgName (..),
Pragma (..),
Quasi (..),
Range (..),
Role (..),
RuleMatch (..),
Safety (..),
SourceStrictness (..),
SourceUnpackedness (..),
Specificity (..),
Strict,
StrictType,
SumAlt,
SumArity,
TExp (..),
TyLit (..),
TyVarBndr (..),
TypeFamilyHead (..),
Uniq,
Unlifted,
VarStrictType,
makeRelativeToProject,
liftString,
Lift (..),
dataToCodeQ,
dataToExpQ,
dataToPatQ,
dataToQa,
falseName,
justName,
leftName,
liftData,
liftDataTyped,
nonemptyName,
nothingName,
rightName,
trueName,
)
where
import GHC.Boot.TH.Lift
import GHC.Boot.TH.Syntax
import System.FilePath
makeRelativeToProject :: FilePath -> Q FilePath
makeRelativeToProject :: FilePath -> Q FilePath
makeRelativeToProject FilePath
fp | FilePath -> Bool
isRelative FilePath
fp = do
root <- Q FilePath
getPackageRoot
return (root </> fp)
makeRelativeToProject FilePath
fp = FilePath -> Q FilePath
forall a. a -> Q a
forall (m :: * -> *) a. Monad m => a -> m a
return FilePath
fp