-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/


-- | Template Haskell expressions for reading fields from a project's cabal file.
--   
--   Template Haskell expressions for reading fields from a project's cabal
--   file.
@package cabal-file-th
@version 0.2.7


-- | Utility functions for reading cabal file fields through template
--   haskell.
module Distribution.PackageDescription.TH

-- | Renders the package variable specified by the function. The cabal file
--   interrogated is the first one that is found in the current working
--   directory.
packageVariable :: Pretty a => (PackageDescription -> a) -> Q Exp

-- | Renders the package variable specified by the function, from a cabal
--   file and the given path.
packageVariableFrom :: Pretty a => FilePath -> (PackageDescription -> a) -> Q Exp

-- | Provides a Pretty instance for String, allowing text fields to be used
--   in <a>packageVariable</a>. Use it composed with an accessor, eg.
--   packageVariable (packageString . copyright)
packageString :: String -> DocString
data PackageDescription
PackageDescription :: CabalSpecVersion -> PackageIdentifier -> Either License License -> [SymbolicPath PackageDir LicenseFile] -> !ShortText -> !ShortText -> !ShortText -> !ShortText -> [(CompilerFlavor, VersionRange)] -> !ShortText -> !ShortText -> !ShortText -> [SourceRepo] -> !ShortText -> !ShortText -> !ShortText -> [(String, String)] -> Maybe BuildType -> Maybe SetupBuildInfo -> Maybe Library -> [Library] -> [Executable] -> [ForeignLib] -> [TestSuite] -> [Benchmark] -> [FilePath] -> FilePath -> [FilePath] -> [FilePath] -> [FilePath] -> PackageDescription
[specVersion] :: PackageDescription -> CabalSpecVersion
[package] :: PackageDescription -> PackageIdentifier
[licenseRaw] :: PackageDescription -> Either License License
[licenseFiles] :: PackageDescription -> [SymbolicPath PackageDir LicenseFile]
[copyright] :: PackageDescription -> !ShortText
[maintainer] :: PackageDescription -> !ShortText
[author] :: PackageDescription -> !ShortText
[stability] :: PackageDescription -> !ShortText
[testedWith] :: PackageDescription -> [(CompilerFlavor, VersionRange)]
[homepage] :: PackageDescription -> !ShortText
[pkgUrl] :: PackageDescription -> !ShortText
[bugReports] :: PackageDescription -> !ShortText
[sourceRepos] :: PackageDescription -> [SourceRepo]
[synopsis] :: PackageDescription -> !ShortText
[description] :: PackageDescription -> !ShortText
[category] :: PackageDescription -> !ShortText
[customFieldsPD] :: PackageDescription -> [(String, String)]
[buildTypeRaw] :: PackageDescription -> Maybe BuildType
[setupBuildInfo] :: PackageDescription -> Maybe SetupBuildInfo
[library] :: PackageDescription -> Maybe Library
[subLibraries] :: PackageDescription -> [Library]
[executables] :: PackageDescription -> [Executable]
[foreignLibs] :: PackageDescription -> [ForeignLib]
[testSuites] :: PackageDescription -> [TestSuite]
[benchmarks] :: PackageDescription -> [Benchmark]
[dataFiles] :: PackageDescription -> [FilePath]
[dataDir] :: PackageDescription -> FilePath
[extraSrcFiles] :: PackageDescription -> [FilePath]
[extraTmpFiles] :: PackageDescription -> [FilePath]
[extraDocFiles] :: PackageDescription -> [FilePath]
data PackageIdentifier
PackageIdentifier :: PackageName -> Version -> PackageIdentifier
[pkgName] :: PackageIdentifier -> PackageName
[pkgVersion] :: PackageIdentifier -> Version
data Version
alterVersion :: ([Int] -> [Int]) -> Version -> Version
mkVersion :: [Int] -> Version
mkVersion' :: Version -> Version
nullVersion :: Version
version0 :: Version
versionNumbers :: Version -> [Int]
data Bound
ExclusiveBound :: Bound
InclusiveBound :: Bound
data LowerBound
LowerBound :: !Version -> !Bound -> LowerBound
data UpperBound
NoUpperBound :: UpperBound
UpperBound :: !Version -> !Bound -> UpperBound
data VersionInterval
VersionInterval :: !LowerBound -> !UpperBound -> VersionInterval
data VersionIntervals
asVersionIntervals :: VersionRange -> [VersionInterval]
fromVersionIntervals :: VersionIntervals -> VersionRange
toVersionIntervals :: VersionRange -> VersionIntervals
unVersionIntervals :: VersionIntervals -> [VersionInterval]
foldVersionRange :: a -> (Version -> a) -> (Version -> a) -> (Version -> a) -> (a -> a -> a) -> (a -> a -> a) -> VersionRange -> a
hasLowerBound :: VersionRange -> Bool
hasUpperBound :: VersionRange -> Bool
isAnyVersion :: VersionRange -> Bool
normaliseVersionRange :: VersionRange -> VersionRange
stripParensVersionRange :: VersionRange -> VersionRange
withinRange :: Version -> VersionRange -> Bool
data VersionRangeF a
ThisVersionF :: Version -> VersionRangeF a
LaterVersionF :: Version -> VersionRangeF a
OrLaterVersionF :: Version -> VersionRangeF a
EarlierVersionF :: Version -> VersionRangeF a
OrEarlierVersionF :: Version -> VersionRangeF a
MajorBoundVersionF :: Version -> VersionRangeF a
UnionVersionRangesF :: a -> a -> VersionRangeF a
IntersectVersionRangesF :: a -> a -> VersionRangeF a
data VersionRange
anaVersionRange :: (a -> VersionRangeF a) -> a -> VersionRange
anyVersion :: VersionRange
cataVersionRange :: (VersionRangeF a -> a) -> VersionRange -> a
earlierVersion :: Version -> VersionRange
embedVersionRange :: VersionRangeF VersionRange -> VersionRange
hyloVersionRange :: (VersionRangeF VersionRange -> VersionRange) -> (VersionRange -> VersionRangeF VersionRange) -> VersionRange -> VersionRange
intersectVersionRanges :: VersionRange -> VersionRange -> VersionRange
laterVersion :: Version -> VersionRange
majorBoundVersion :: Version -> VersionRange
majorUpperBound :: Version -> Version
noVersion :: VersionRange
notThisVersion :: Version -> VersionRange
orEarlierVersion :: Version -> VersionRange
orLaterVersion :: Version -> VersionRange
projectVersionRange :: VersionRange -> VersionRangeF VersionRange
thisVersion :: Version -> VersionRange
unionVersionRanges :: VersionRange -> VersionRange -> VersionRange
wildcardUpperBound :: Version -> Version
withinVersion :: Version -> VersionRange
isNoVersion :: VersionRange -> Bool
isSpecificVersion :: VersionRange -> Maybe Version
removeLowerBound :: VersionRange -> VersionRange
removeUpperBound :: VersionRange -> VersionRange
simplifyVersionRange :: VersionRange -> VersionRange
transformCaret :: VersionRange -> VersionRange
transformCaretLower :: VersionRange -> VersionRange
transformCaretUpper :: VersionRange -> VersionRange
instance Distribution.Pretty.Pretty Distribution.PackageDescription.TH.DocString
