Sophie

Sophie

distrib > Mageia > 5 > i586 > media > core-release > by-pkgid > 6e204a966e8c42d976f99a1700ce5f20 > files > 2027

ghc-7.4.2-4.mga5.i586.rpm

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Distribution.PackageDescription</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script type="text/javascript">//<![CDATA[
window.onload = function () {pageLoad();setSynopsis("mini_Distribution-PackageDescription.html");};
//]]>
</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-1.14.0: A framework for packaging Haskell software</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Portability</th><td>portable</td></tr><tr><th>Maintainer</th><td>cabal-devel@haskell.org</td></tr><tr><th>Safe Haskell</th><td>Safe-Infered</td></tr></table><p class="caption">Distribution.PackageDescription</p></div><div id="table-of-contents"><p class="caption">Contents</p><ul><li><a href="#g:1">Package descriptions
</a><ul><li><a href="#g:2">Libraries
</a></li><li><a href="#g:3">Executables
</a></li></ul></li><li><a href="#g:4">Tests
</a></li><li><a href="#g:5">Benchmarks
</a></li><li><a href="#g:6">Build information
</a><ul><li><a href="#g:7">Supplementary build information
</a></li></ul></li><li><a href="#g:8">package configuration
</a></li><li><a href="#g:9">Source repositories
</a></li></ul></div><div id="description"><p class="caption">Description</p><div class="doc"><p>This defines the data structure for the <code>.cabal</code> file format. There are
 several parts to this structure. It has top level info and then <code><a href="Distribution-PackageDescription.html#t:Library">Library</a></code>,
 <code><a href="Distribution-PackageDescription.html#t:Executable">Executable</a></code>, <code><a href="Distribution-PackageDescription.html#t:TestSuite">TestSuite</a></code>, and <code><a href="Distribution-PackageDescription.html#t:Benchmark">Benchmark</a></code> sections each of which have
 associated <code><a href="Distribution-PackageDescription.html#t:BuildInfo">BuildInfo</a></code> data that's used to build the library, exe, test, or
 benchmark.  To further complicate things there is both a <code><a href="Distribution-PackageDescription.html#t:PackageDescription">PackageDescription</a></code>
 and a <code><a href="Distribution-PackageDescription.html#t:GenericPackageDescription">GenericPackageDescription</a></code>. This distinction relates to cabal
 configurations. When we initially read a <code>.cabal</code> file we get a
 <code><a href="Distribution-PackageDescription.html#t:GenericPackageDescription">GenericPackageDescription</a></code> which has all the conditional sections.
 Before actually building a package we have to decide
 on each conditional. Once we've done that we get a <code><a href="Distribution-PackageDescription.html#t:PackageDescription">PackageDescription</a></code>.
 It was done this way initially to avoid breaking too much stuff when the
 feature was introduced. It could probably do with being rationalised at some
 point to make it simpler.
</p></div></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><span class="keyword">data</span>  <a href="#t:PackageDescription">PackageDescription</a>  = <a href="#v:PackageDescription">PackageDescription</a> {<ul class="subs"><li><a href="#v:package">package</a> :: <a href="Distribution-Package.html#t:PackageIdentifier">PackageIdentifier</a></li><li><a href="#v:license">license</a> :: <a href="Distribution-License.html#t:License">License</a></li><li><a href="#v:licenseFile">licenseFile</a> :: <a href="../base-4.5.1.0/System-IO.html#t:FilePath">FilePath</a></li><li><a href="#v:copyright">copyright</a> :: <a href="../base-4.5.1.0/Data-String.html#t:String">String</a></li><li><a href="#v:maintainer">maintainer</a> :: <a href="../base-4.5.1.0/Data-String.html#t:String">String</a></li><li><a href="#v:author">author</a> :: <a href="../base-4.5.1.0/Data-String.html#t:String">String</a></li><li><a href="#v:stability">stability</a> :: <a href="../base-4.5.1.0/Data-String.html#t:String">String</a></li><li><a href="#v:testedWith">testedWith</a> :: [(<a href="Distribution-Compiler.html#t:CompilerFlavor">CompilerFlavor</a>, <a href="Distribution-Version.html#t:VersionRange">VersionRange</a>)]</li><li><a href="#v:homepage">homepage</a> :: <a href="../base-4.5.1.0/Data-String.html#t:String">String</a></li><li><a href="#v:pkgUrl">pkgUrl</a> :: <a href="../base-4.5.1.0/Data-String.html#t:String">String</a></li><li><a href="#v:bugReports">bugReports</a> :: <a href="../base-4.5.1.0/Data-String.html#t:String">String</a></li><li><a href="#v:sourceRepos">sourceRepos</a> :: [<a href="Distribution-PackageDescription.html#t:SourceRepo">SourceRepo</a>]</li><li><a href="#v:synopsis">synopsis</a> :: <a href="../base-4.5.1.0/Data-String.html#t:String">String</a></li><li><a href="#v:description">description</a> :: <a href="../base-4.5.1.0/Data-String.html#t:String">String</a></li><li><a href="#v:category">category</a> :: <a href="../base-4.5.1.0/Data-String.html#t:String">String</a></li><li><a href="#v:customFieldsPD">customFieldsPD</a> :: [(<a href="../base-4.5.1.0/Data-String.html#t:String">String</a>, <a href="../base-4.5.1.0/Data-String.html#t:String">String</a>)]</li><li><a href="#v:buildDepends">buildDepends</a> :: [<a href="Distribution-Package.html#t:Dependency">Dependency</a>]</li><li><a href="#v:specVersionRaw">specVersionRaw</a> :: <a href="../base-4.5.1.0/Data-Either.html#t:Either">Either</a> <a href="Distribution-Version.html#t:Version">Version</a> <a href="Distribution-Version.html#t:VersionRange">VersionRange</a></li><li><a href="#v:buildType">buildType</a> :: <a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-PackageDescription.html#t:BuildType">BuildType</a></li><li><a href="#v:library">library</a> :: <a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-PackageDescription.html#t:Library">Library</a></li><li><a href="#v:executables">executables</a> :: [<a href="Distribution-PackageDescription.html#t:Executable">Executable</a>]</li><li><a href="#v:testSuites">testSuites</a> :: [<a href="Distribution-PackageDescription.html#t:TestSuite">TestSuite</a>]</li><li><a href="#v:benchmarks">benchmarks</a> :: [<a href="Distribution-PackageDescription.html#t:Benchmark">Benchmark</a>]</li><li><a href="#v:dataFiles">dataFiles</a> :: [<a href="../base-4.5.1.0/System-IO.html#t:FilePath">FilePath</a>]</li><li><a href="#v:dataDir">dataDir</a> :: <a href="../base-4.5.1.0/System-IO.html#t:FilePath">FilePath</a></li><li><a href="#v:extraSrcFiles">extraSrcFiles</a> :: [<a href="../base-4.5.1.0/System-IO.html#t:FilePath">FilePath</a>]</li><li><a href="#v:extraTmpFiles">extraTmpFiles</a> :: [<a href="../base-4.5.1.0/System-IO.html#t:FilePath">FilePath</a>]</li></ul>}</li><li class="src short"><a href="#v:emptyPackageDescription">emptyPackageDescription</a> :: <a href="Distribution-PackageDescription.html#t:PackageDescription">PackageDescription</a></li><li class="src short"><a href="#v:specVersion">specVersion</a> :: <a href="Distribution-PackageDescription.html#t:PackageDescription">PackageDescription</a> -&gt; <a href="Distribution-Version.html#t:Version">Version</a></li><li class="src short"><a href="#v:descCabalVersion">descCabalVersion</a> :: <a href="Distribution-PackageDescription.html#t:PackageDescription">PackageDescription</a> -&gt; <a href="Distribution-Version.html#t:VersionRange">VersionRange</a></li><li class="src short"><span class="keyword">data</span>  <a href="#t:BuildType">BuildType</a> <ul class="subs"><li>= <a href="#v:Simple">Simple</a>  </li><li>| <a href="#v:Configure">Configure</a>  </li><li>| <a href="#v:Make">Make</a>  </li><li>| <a href="#v:Custom">Custom</a>  </li><li>| <a href="#v:UnknownBuildType">UnknownBuildType</a> <a href="../base-4.5.1.0/Data-String.html#t:String">String</a>  </li></ul></li><li class="src short"><a href="#v:knownBuildTypes">knownBuildTypes</a> :: [<a href="Distribution-PackageDescription.html#t:BuildType">BuildType</a>]</li><li class="src short"><span class="keyword">data</span>  <a href="#t:Library">Library</a>  = <a href="#v:Library">Library</a> {<ul class="subs"><li><a href="#v:exposedModules">exposedModules</a> :: [<a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a>]</li><li><a href="#v:libExposed">libExposed</a> :: <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></li><li><a href="#v:libBuildInfo">libBuildInfo</a> :: <a href="Distribution-PackageDescription.html#t:BuildInfo">BuildInfo</a></li></ul>}</li><li class="src short"><a href="#v:emptyLibrary">emptyLibrary</a> :: <a href="Distribution-PackageDescription.html#t:Library">Library</a></li><li class="src short"><a href="#v:withLib">withLib</a> :: <a href="Distribution-PackageDescription.html#t:PackageDescription">PackageDescription</a> -&gt; (<a href="Distribution-PackageDescription.html#t:Library">Library</a> -&gt; <a href="../base-4.5.1.0/System-IO.html#t:IO">IO</a> ()) -&gt; <a href="../base-4.5.1.0/System-IO.html#t:IO">IO</a> ()</li><li class="src short"><a href="#v:hasLibs">hasLibs</a> :: <a href="Distribution-PackageDescription.html#t:PackageDescription">PackageDescription</a> -&gt; <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:libModules">libModules</a> :: <a href="Distribution-PackageDescription.html#t:Library">Library</a> -&gt; [<a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a>]</li><li class="src short"><span class="keyword">data</span>  <a href="#t:Executable">Executable</a>  = <a href="#v:Executable">Executable</a> {<ul class="subs"><li><a href="#v:exeName">exeName</a> :: <a href="../base-4.5.1.0/Data-String.html#t:String">String</a></li><li><a href="#v:modulePath">modulePath</a> :: <a href="../base-4.5.1.0/System-IO.html#t:FilePath">FilePath</a></li><li><a href="#v:buildInfo">buildInfo</a> :: <a href="Distribution-PackageDescription.html#t:BuildInfo">BuildInfo</a></li></ul>}</li><li class="src short"><a href="#v:emptyExecutable">emptyExecutable</a> :: <a href="Distribution-PackageDescription.html#t:Executable">Executable</a></li><li class="src short"><a href="#v:withExe">withExe</a> :: <a href="Distribution-PackageDescription.html#t:PackageDescription">PackageDescription</a> -&gt; (<a href="Distribution-PackageDescription.html#t:Executable">Executable</a> -&gt; <a href="../base-4.5.1.0/System-IO.html#t:IO">IO</a> ()) -&gt; <a href="../base-4.5.1.0/System-IO.html#t:IO">IO</a> ()</li><li class="src short"><a href="#v:hasExes">hasExes</a> :: <a href="Distribution-PackageDescription.html#t:PackageDescription">PackageDescription</a> -&gt; <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:exeModules">exeModules</a> :: <a href="Distribution-PackageDescription.html#t:Executable">Executable</a> -&gt; [<a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a>]</li><li class="src short"><span class="keyword">data</span>  <a href="#t:TestSuite">TestSuite</a>  = <a href="#v:TestSuite">TestSuite</a> {<ul class="subs"><li><a href="#v:testName">testName</a> :: <a href="../base-4.5.1.0/Data-String.html#t:String">String</a></li><li><a href="#v:testInterface">testInterface</a> :: <a href="Distribution-PackageDescription.html#t:TestSuiteInterface">TestSuiteInterface</a></li><li><a href="#v:testBuildInfo">testBuildInfo</a> :: <a href="Distribution-PackageDescription.html#t:BuildInfo">BuildInfo</a></li><li><a href="#v:testEnabled">testEnabled</a> :: <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></li></ul>}</li><li class="src short"><span class="keyword">data</span>  <a href="#t:TestSuiteInterface">TestSuiteInterface</a> <ul class="subs"><li>= <a href="#v:TestSuiteExeV10">TestSuiteExeV10</a> <a href="Distribution-Version.html#t:Version">Version</a> <a href="../base-4.5.1.0/System-IO.html#t:FilePath">FilePath</a>  </li><li>| <a href="#v:TestSuiteLibV09">TestSuiteLibV09</a> <a href="Distribution-Version.html#t:Version">Version</a> <a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a>  </li><li>| <a href="#v:TestSuiteUnsupported">TestSuiteUnsupported</a> <a href="Distribution-PackageDescription.html#t:TestType">TestType</a>  </li></ul></li><li class="src short"><span class="keyword">data</span>  <a href="#t:TestType">TestType</a> <ul class="subs"><li>= <a href="#v:TestTypeExe">TestTypeExe</a> <a href="Distribution-Version.html#t:Version">Version</a>  </li><li>| <a href="#v:TestTypeLib">TestTypeLib</a> <a href="Distribution-Version.html#t:Version">Version</a>  </li><li>| <a href="#v:TestTypeUnknown">TestTypeUnknown</a> <a href="../base-4.5.1.0/Data-String.html#t:String">String</a> <a href="Distribution-Version.html#t:Version">Version</a>  </li></ul></li><li class="src short"><a href="#v:testType">testType</a> :: <a href="Distribution-PackageDescription.html#t:TestSuite">TestSuite</a> -&gt; <a href="Distribution-PackageDescription.html#t:TestType">TestType</a></li><li class="src short"><a href="#v:knownTestTypes">knownTestTypes</a> :: [<a href="Distribution-PackageDescription.html#t:TestType">TestType</a>]</li><li class="src short"><a href="#v:emptyTestSuite">emptyTestSuite</a> :: <a href="Distribution-PackageDescription.html#t:TestSuite">TestSuite</a></li><li class="src short"><a href="#v:hasTests">hasTests</a> :: <a href="Distribution-PackageDescription.html#t:PackageDescription">PackageDescription</a> -&gt; <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:withTest">withTest</a> :: <a href="Distribution-PackageDescription.html#t:PackageDescription">PackageDescription</a> -&gt; (<a href="Distribution-PackageDescription.html#t:TestSuite">TestSuite</a> -&gt; <a href="../base-4.5.1.0/System-IO.html#t:IO">IO</a> ()) -&gt; <a href="../base-4.5.1.0/System-IO.html#t:IO">IO</a> ()</li><li class="src short"><a href="#v:testModules">testModules</a> :: <a href="Distribution-PackageDescription.html#t:TestSuite">TestSuite</a> -&gt; [<a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a>]</li><li class="src short"><a href="#v:enabledTests">enabledTests</a> :: <a href="Distribution-PackageDescription.html#t:PackageDescription">PackageDescription</a> -&gt; [<a href="Distribution-PackageDescription.html#t:TestSuite">TestSuite</a>]</li><li class="src short"><span class="keyword">data</span>  <a href="#t:Benchmark">Benchmark</a>  = <a href="#v:Benchmark">Benchmark</a> {<ul class="subs"><li><a href="#v:benchmarkName">benchmarkName</a> :: <a href="../base-4.5.1.0/Data-String.html#t:String">String</a></li><li><a href="#v:benchmarkInterface">benchmarkInterface</a> :: <a href="Distribution-PackageDescription.html#t:BenchmarkInterface">BenchmarkInterface</a></li><li><a href="#v:benchmarkBuildInfo">benchmarkBuildInfo</a> :: <a href="Distribution-PackageDescription.html#t:BuildInfo">BuildInfo</a></li><li><a href="#v:benchmarkEnabled">benchmarkEnabled</a> :: <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></li></ul>}</li><li class="src short"><span class="keyword">data</span>  <a href="#t:BenchmarkInterface">BenchmarkInterface</a> <ul class="subs"><li>= <a href="#v:BenchmarkExeV10">BenchmarkExeV10</a> <a href="Distribution-Version.html#t:Version">Version</a> <a href="../base-4.5.1.0/System-IO.html#t:FilePath">FilePath</a>  </li><li>| <a href="#v:BenchmarkUnsupported">BenchmarkUnsupported</a> <a href="Distribution-PackageDescription.html#t:BenchmarkType">BenchmarkType</a>  </li></ul></li><li class="src short"><span class="keyword">data</span>  <a href="#t:BenchmarkType">BenchmarkType</a> <ul class="subs"><li>= <a href="#v:BenchmarkTypeExe">BenchmarkTypeExe</a> <a href="Distribution-Version.html#t:Version">Version</a>  </li><li>| <a href="#v:BenchmarkTypeUnknown">BenchmarkTypeUnknown</a> <a href="../base-4.5.1.0/Data-String.html#t:String">String</a> <a href="Distribution-Version.html#t:Version">Version</a>  </li></ul></li><li class="src short"><a href="#v:benchmarkType">benchmarkType</a> :: <a href="Distribution-PackageDescription.html#t:Benchmark">Benchmark</a> -&gt; <a href="Distribution-PackageDescription.html#t:BenchmarkType">BenchmarkType</a></li><li class="src short"><a href="#v:knownBenchmarkTypes">knownBenchmarkTypes</a> :: [<a href="Distribution-PackageDescription.html#t:BenchmarkType">BenchmarkType</a>]</li><li class="src short"><a href="#v:emptyBenchmark">emptyBenchmark</a> :: <a href="Distribution-PackageDescription.html#t:Benchmark">Benchmark</a></li><li class="src short"><a href="#v:hasBenchmarks">hasBenchmarks</a> :: <a href="Distribution-PackageDescription.html#t:PackageDescription">PackageDescription</a> -&gt; <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:withBenchmark">withBenchmark</a> :: <a href="Distribution-PackageDescription.html#t:PackageDescription">PackageDescription</a> -&gt; (<a href="Distribution-PackageDescription.html#t:Benchmark">Benchmark</a> -&gt; <a href="../base-4.5.1.0/System-IO.html#t:IO">IO</a> ()) -&gt; <a href="../base-4.5.1.0/System-IO.html#t:IO">IO</a> ()</li><li class="src short"><a href="#v:benchmarkModules">benchmarkModules</a> :: <a href="Distribution-PackageDescription.html#t:Benchmark">Benchmark</a> -&gt; [<a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a>]</li><li class="src short"><a href="#v:enabledBenchmarks">enabledBenchmarks</a> :: <a href="Distribution-PackageDescription.html#t:PackageDescription">PackageDescription</a> -&gt; [<a href="Distribution-PackageDescription.html#t:Benchmark">Benchmark</a>]</li><li class="src short"><span class="keyword">data</span>  <a href="#t:BuildInfo">BuildInfo</a>  = <a href="#v:BuildInfo">BuildInfo</a> {<ul class="subs"><li><a href="#v:buildable">buildable</a> :: <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></li><li><a href="#v:buildTools">buildTools</a> :: [<a href="Distribution-Package.html#t:Dependency">Dependency</a>]</li><li><a href="#v:cppOptions">cppOptions</a> :: [<a href="../base-4.5.1.0/Data-String.html#t:String">String</a>]</li><li><a href="#v:ccOptions">ccOptions</a> :: [<a href="../base-4.5.1.0/Data-String.html#t:String">String</a>]</li><li><a href="#v:ldOptions">ldOptions</a> :: [<a href="../base-4.5.1.0/Data-String.html#t:String">String</a>]</li><li><a href="#v:pkgconfigDepends">pkgconfigDepends</a> :: [<a href="Distribution-Package.html#t:Dependency">Dependency</a>]</li><li><a href="#v:frameworks">frameworks</a> :: [<a href="../base-4.5.1.0/Data-String.html#t:String">String</a>]</li><li><a href="#v:cSources">cSources</a> :: [<a href="../base-4.5.1.0/System-IO.html#t:FilePath">FilePath</a>]</li><li><a href="#v:hsSourceDirs">hsSourceDirs</a> :: [<a href="../base-4.5.1.0/System-IO.html#t:FilePath">FilePath</a>]</li><li><a href="#v:otherModules">otherModules</a> :: [<a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a>]</li><li><a href="#v:defaultLanguage">defaultLanguage</a> :: <a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Language-Haskell-Extension.html#t:Language">Language</a></li><li><a href="#v:otherLanguages">otherLanguages</a> :: [<a href="Language-Haskell-Extension.html#t:Language">Language</a>]</li><li><a href="#v:defaultExtensions">defaultExtensions</a> :: [<a href="Language-Haskell-Extension.html#t:Extension">Extension</a>]</li><li><a href="#v:otherExtensions">otherExtensions</a> :: [<a href="Language-Haskell-Extension.html#t:Extension">Extension</a>]</li><li><a href="#v:oldExtensions">oldExtensions</a> :: [<a href="Language-Haskell-Extension.html#t:Extension">Extension</a>]</li><li><a href="#v:extraLibs">extraLibs</a> :: [<a href="../base-4.5.1.0/Data-String.html#t:String">String</a>]</li><li><a href="#v:extraLibDirs">extraLibDirs</a> :: [<a href="../base-4.5.1.0/Data-String.html#t:String">String</a>]</li><li><a href="#v:includeDirs">includeDirs</a> :: [<a href="../base-4.5.1.0/System-IO.html#t:FilePath">FilePath</a>]</li><li><a href="#v:includes">includes</a> :: [<a href="../base-4.5.1.0/System-IO.html#t:FilePath">FilePath</a>]</li><li><a href="#v:installIncludes">installIncludes</a> :: [<a href="../base-4.5.1.0/System-IO.html#t:FilePath">FilePath</a>]</li><li><a href="#v:options">options</a> :: [(<a href="Distribution-Compiler.html#t:CompilerFlavor">CompilerFlavor</a>, [<a href="../base-4.5.1.0/Data-String.html#t:String">String</a>])]</li><li><a href="#v:ghcProfOptions">ghcProfOptions</a> :: [<a href="../base-4.5.1.0/Data-String.html#t:String">String</a>]</li><li><a href="#v:ghcSharedOptions">ghcSharedOptions</a> :: [<a href="../base-4.5.1.0/Data-String.html#t:String">String</a>]</li><li><a href="#v:customFieldsBI">customFieldsBI</a> :: [(<a href="../base-4.5.1.0/Data-String.html#t:String">String</a>, <a href="../base-4.5.1.0/Data-String.html#t:String">String</a>)]</li><li><a href="#v:targetBuildDepends">targetBuildDepends</a> :: [<a href="Distribution-Package.html#t:Dependency">Dependency</a>]</li></ul>}</li><li class="src short"><a href="#v:emptyBuildInfo">emptyBuildInfo</a> :: <a href="Distribution-PackageDescription.html#t:BuildInfo">BuildInfo</a></li><li class="src short"><a href="#v:allBuildInfo">allBuildInfo</a> :: <a href="Distribution-PackageDescription.html#t:PackageDescription">PackageDescription</a> -&gt; [<a href="Distribution-PackageDescription.html#t:BuildInfo">BuildInfo</a>]</li><li class="src short"><a href="#v:allLanguages">allLanguages</a> :: <a href="Distribution-PackageDescription.html#t:BuildInfo">BuildInfo</a> -&gt; [<a href="Language-Haskell-Extension.html#t:Language">Language</a>]</li><li class="src short"><a href="#v:allExtensions">allExtensions</a> :: <a href="Distribution-PackageDescription.html#t:BuildInfo">BuildInfo</a> -&gt; [<a href="Language-Haskell-Extension.html#t:Extension">Extension</a>]</li><li class="src short"><a href="#v:usedExtensions">usedExtensions</a> :: <a href="Distribution-PackageDescription.html#t:BuildInfo">BuildInfo</a> -&gt; [<a href="Language-Haskell-Extension.html#t:Extension">Extension</a>]</li><li class="src short"><a href="#v:hcOptions">hcOptions</a> :: <a href="Distribution-Compiler.html#t:CompilerFlavor">CompilerFlavor</a> -&gt; <a href="Distribution-PackageDescription.html#t:BuildInfo">BuildInfo</a> -&gt; [<a href="../base-4.5.1.0/Data-String.html#t:String">String</a>]</li><li class="src short"><span class="keyword">type</span> <a href="#t:HookedBuildInfo">HookedBuildInfo</a> = (<a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-PackageDescription.html#t:BuildInfo">BuildInfo</a>, [(<a href="../base-4.5.1.0/Data-String.html#t:String">String</a>, <a href="Distribution-PackageDescription.html#t:BuildInfo">BuildInfo</a>)])</li><li class="src short"><a href="#v:emptyHookedBuildInfo">emptyHookedBuildInfo</a> :: <a href="Distribution-PackageDescription.html#t:HookedBuildInfo">HookedBuildInfo</a></li><li class="src short"><a href="#v:updatePackageDescription">updatePackageDescription</a> :: <a href="Distribution-PackageDescription.html#t:HookedBuildInfo">HookedBuildInfo</a> -&gt; <a href="Distribution-PackageDescription.html#t:PackageDescription">PackageDescription</a> -&gt; <a href="Distribution-PackageDescription.html#t:PackageDescription">PackageDescription</a></li><li class="src short"><span class="keyword">data</span>  <a href="#t:GenericPackageDescription">GenericPackageDescription</a>  = <a href="#v:GenericPackageDescription">GenericPackageDescription</a> {<ul class="subs"><li><a href="#v:packageDescription">packageDescription</a> :: <a href="Distribution-PackageDescription.html#t:PackageDescription">PackageDescription</a></li><li><a href="#v:genPackageFlags">genPackageFlags</a> :: [<a href="Distribution-PackageDescription.html#t:Flag">Flag</a>]</li><li><a href="#v:condLibrary">condLibrary</a> :: <a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> (<a href="Distribution-PackageDescription.html#t:CondTree">CondTree</a> <a href="Distribution-PackageDescription.html#t:ConfVar">ConfVar</a> [<a href="Distribution-Package.html#t:Dependency">Dependency</a>] <a href="Distribution-PackageDescription.html#t:Library">Library</a>)</li><li><a href="#v:condExecutables">condExecutables</a> :: [(<a href="../base-4.5.1.0/Data-String.html#t:String">String</a>, <a href="Distribution-PackageDescription.html#t:CondTree">CondTree</a> <a href="Distribution-PackageDescription.html#t:ConfVar">ConfVar</a> [<a href="Distribution-Package.html#t:Dependency">Dependency</a>] <a href="Distribution-PackageDescription.html#t:Executable">Executable</a>)]</li><li><a href="#v:condTestSuites">condTestSuites</a> :: [(<a href="../base-4.5.1.0/Data-String.html#t:String">String</a>, <a href="Distribution-PackageDescription.html#t:CondTree">CondTree</a> <a href="Distribution-PackageDescription.html#t:ConfVar">ConfVar</a> [<a href="Distribution-Package.html#t:Dependency">Dependency</a>] <a href="Distribution-PackageDescription.html#t:TestSuite">TestSuite</a>)]</li><li><a href="#v:condBenchmarks">condBenchmarks</a> :: [(<a href="../base-4.5.1.0/Data-String.html#t:String">String</a>, <a href="Distribution-PackageDescription.html#t:CondTree">CondTree</a> <a href="Distribution-PackageDescription.html#t:ConfVar">ConfVar</a> [<a href="Distribution-Package.html#t:Dependency">Dependency</a>] <a href="Distribution-PackageDescription.html#t:Benchmark">Benchmark</a>)]</li></ul>}</li><li class="src short"><span class="keyword">data</span>  <a href="#t:Flag">Flag</a>  = <a href="#v:MkFlag">MkFlag</a> {<ul class="subs"><li><a href="#v:flagName">flagName</a> :: <a href="Distribution-PackageDescription.html#t:FlagName">FlagName</a></li><li><a href="#v:flagDescription">flagDescription</a> :: <a href="../base-4.5.1.0/Data-String.html#t:String">String</a></li><li><a href="#v:flagDefault">flagDefault</a> :: <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></li><li><a href="#v:flagManual">flagManual</a> :: <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></li></ul>}</li><li class="src short"><span class="keyword">newtype</span>  <a href="#t:FlagName">FlagName</a>  = <a href="#v:FlagName">FlagName</a> <a href="../base-4.5.1.0/Data-String.html#t:String">String</a></li><li class="src short"><span class="keyword">type</span> <a href="#t:FlagAssignment">FlagAssignment</a> = [(<a href="Distribution-PackageDescription.html#t:FlagName">FlagName</a>, <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a>)]</li><li class="src short"><span class="keyword">data</span>  <a href="#t:CondTree">CondTree</a> v c a = <a href="#v:CondNode">CondNode</a> {<ul class="subs"><li><a href="#v:condTreeData">condTreeData</a> :: a</li><li><a href="#v:condTreeConstraints">condTreeConstraints</a> :: c</li><li><a href="#v:condTreeComponents">condTreeComponents</a> :: [(<a href="Distribution-PackageDescription.html#t:Condition">Condition</a> v, <a href="Distribution-PackageDescription.html#t:CondTree">CondTree</a> v c a, <a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> (<a href="Distribution-PackageDescription.html#t:CondTree">CondTree</a> v c a))]</li></ul>}</li><li class="src short"><span class="keyword">data</span>  <a href="#t:ConfVar">ConfVar</a> <ul class="subs"><li>= <a href="#v:OS">OS</a> <a href="Distribution-System.html#t:OS">OS</a>  </li><li>| <a href="#v:Arch">Arch</a> <a href="Distribution-System.html#t:Arch">Arch</a>  </li><li>| <a href="#v:Flag">Flag</a> <a href="Distribution-PackageDescription.html#t:FlagName">FlagName</a>  </li><li>| <a href="#v:Impl">Impl</a> <a href="Distribution-Compiler.html#t:CompilerFlavor">CompilerFlavor</a> <a href="Distribution-Version.html#t:VersionRange">VersionRange</a>  </li></ul></li><li class="src short"><span class="keyword">data</span>  <a href="#t:Condition">Condition</a> c<ul class="subs"><li>= <a href="#v:Var">Var</a> c  </li><li>| <a href="#v:Lit">Lit</a> <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a>  </li><li>| <a href="#v:CNot">CNot</a> (<a href="Distribution-PackageDescription.html#t:Condition">Condition</a> c)  </li><li>| <a href="#v:COr">COr</a> (<a href="Distribution-PackageDescription.html#t:Condition">Condition</a> c) (<a href="Distribution-PackageDescription.html#t:Condition">Condition</a> c)  </li><li>| <a href="#v:CAnd">CAnd</a> (<a href="Distribution-PackageDescription.html#t:Condition">Condition</a> c) (<a href="Distribution-PackageDescription.html#t:Condition">Condition</a> c)  </li></ul></li><li class="src short"><span class="keyword">data</span>  <a href="#t:SourceRepo">SourceRepo</a>  = <a href="#v:SourceRepo">SourceRepo</a> {<ul class="subs"><li><a href="#v:repoKind">repoKind</a> :: <a href="Distribution-PackageDescription.html#t:RepoKind">RepoKind</a></li><li><a href="#v:repoType">repoType</a> :: <a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-PackageDescription.html#t:RepoType">RepoType</a></li><li><a href="#v:repoLocation">repoLocation</a> :: <a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="../base-4.5.1.0/Data-String.html#t:String">String</a></li><li><a href="#v:repoModule">repoModule</a> :: <a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="../base-4.5.1.0/Data-String.html#t:String">String</a></li><li><a href="#v:repoBranch">repoBranch</a> :: <a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="../base-4.5.1.0/Data-String.html#t:String">String</a></li><li><a href="#v:repoTag">repoTag</a> :: <a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="../base-4.5.1.0/Data-String.html#t:String">String</a></li><li><a href="#v:repoSubdir">repoSubdir</a> :: <a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="../base-4.5.1.0/System-IO.html#t:FilePath">FilePath</a></li></ul>}</li><li class="src short"><span class="keyword">data</span>  <a href="#t:RepoKind">RepoKind</a> <ul class="subs"><li>= <a href="#v:RepoHead">RepoHead</a>  </li><li>| <a href="#v:RepoThis">RepoThis</a>  </li><li>| <a href="#v:RepoKindUnknown">RepoKindUnknown</a> <a href="../base-4.5.1.0/Data-String.html#t:String">String</a>  </li></ul></li><li class="src short"><span class="keyword">data</span>  <a href="#t:RepoType">RepoType</a> <ul class="subs"><li>= <a href="#v:Darcs">Darcs</a>  </li><li>| <a href="#v:Git">Git</a>  </li><li>| <a href="#v:SVN">SVN</a>  </li><li>| <a href="#v:CVS">CVS</a>  </li><li>| <a href="#v:Mercurial">Mercurial</a>  </li><li>| <a href="#v:GnuArch">GnuArch</a>  </li><li>| <a href="#v:Bazaar">Bazaar</a>  </li><li>| <a href="#v:Monotone">Monotone</a>  </li><li>| <a href="#v:OtherRepoType">OtherRepoType</a> <a href="../base-4.5.1.0/Data-String.html#t:String">String</a>  </li></ul></li><li class="src short"><a href="#v:knownRepoTypes">knownRepoTypes</a> :: [<a href="Distribution-PackageDescription.html#t:RepoType">RepoType</a>]</li></ul></div><div id="interface"><h1 id="g:1">Package descriptions
</h1><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:PackageDescription" class="def">PackageDescription</a>  </p><div class="doc"><p>This data type is the internal representation of the file <code>pkg.cabal</code>.
 It contains two kinds of information about the package: information
 which is needed for all packages, such as the package name and version, and
 information which is needed for the simple build system only, such as
 the compiler options and library name.
</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:PackageDescription" class="def">PackageDescription</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><dl><dt class="src"><a name="v:package" class="def">package</a> :: <a href="Distribution-Package.html#t:PackageIdentifier">PackageIdentifier</a></dt><dd class="doc empty">&nbsp;</dd><dt class="src"><a name="v:license" class="def">license</a> :: <a href="Distribution-License.html#t:License">License</a></dt><dd class="doc empty">&nbsp;</dd><dt class="src"><a name="v:licenseFile" class="def">licenseFile</a> :: <a href="../base-4.5.1.0/System-IO.html#t:FilePath">FilePath</a></dt><dd class="doc empty">&nbsp;</dd><dt class="src"><a name="v:copyright" class="def">copyright</a> :: <a href="../base-4.5.1.0/Data-String.html#t:String">String</a></dt><dd class="doc empty">&nbsp;</dd><dt class="src"><a name="v:maintainer" class="def">maintainer</a> :: <a href="../base-4.5.1.0/Data-String.html#t:String">String</a></dt><dd class="doc empty">&nbsp;</dd><dt class="src"><a name="v:author" class="def">author</a> :: <a href="../base-4.5.1.0/Data-String.html#t:String">String</a></dt><dd class="doc empty">&nbsp;</dd><dt class="src"><a name="v:stability" class="def">stability</a> :: <a href="../base-4.5.1.0/Data-String.html#t:String">String</a></dt><dd class="doc empty">&nbsp;</dd><dt class="src"><a name="v:testedWith" class="def">testedWith</a> :: [(<a href="Distribution-Compiler.html#t:CompilerFlavor">CompilerFlavor</a>, <a href="Distribution-Version.html#t:VersionRange">VersionRange</a>)]</dt><dd class="doc empty">&nbsp;</dd><dt class="src"><a name="v:homepage" class="def">homepage</a> :: <a href="../base-4.5.1.0/Data-String.html#t:String">String</a></dt><dd class="doc empty">&nbsp;</dd><dt class="src"><a name="v:pkgUrl" class="def">pkgUrl</a> :: <a href="../base-4.5.1.0/Data-String.html#t:String">String</a></dt><dd class="doc empty">&nbsp;</dd><dt class="src"><a name="v:bugReports" class="def">bugReports</a> :: <a href="../base-4.5.1.0/Data-String.html#t:String">String</a></dt><dd class="doc empty">&nbsp;</dd><dt class="src"><a name="v:sourceRepos" class="def">sourceRepos</a> :: [<a href="Distribution-PackageDescription.html#t:SourceRepo">SourceRepo</a>]</dt><dd class="doc empty">&nbsp;</dd><dt class="src"><a name="v:synopsis" class="def">synopsis</a> :: <a href="../base-4.5.1.0/Data-String.html#t:String">String</a></dt><dd class="doc"><p>A one-line summary of this package
</p></dd><dt class="src"><a name="v:description" class="def">description</a> :: <a href="../base-4.5.1.0/Data-String.html#t:String">String</a></dt><dd class="doc"><p>A more verbose description of this package
</p></dd><dt class="src"><a name="v:category" class="def">category</a> :: <a href="../base-4.5.1.0/Data-String.html#t:String">String</a></dt><dd class="doc empty">&nbsp;</dd><dt class="src"><a name="v:customFieldsPD" class="def">customFieldsPD</a> :: [(<a href="../base-4.5.1.0/Data-String.html#t:String">String</a>, <a href="../base-4.5.1.0/Data-String.html#t:String">String</a>)]</dt><dd class="doc"><p>Custom fields starting
 with x-, stored in a
 simple assoc-list.
</p></dd><dt class="src"><a name="v:buildDepends" class="def">buildDepends</a> :: [<a href="Distribution-Package.html#t:Dependency">Dependency</a>]</dt><dd class="doc empty">&nbsp;</dd><dt class="src"><a name="v:specVersionRaw" class="def">specVersionRaw</a> :: <a href="../base-4.5.1.0/Data-Either.html#t:Either">Either</a> <a href="Distribution-Version.html#t:Version">Version</a> <a href="Distribution-Version.html#t:VersionRange">VersionRange</a></dt><dd class="doc"><p>The version of the Cabal spec that this package description uses.
 For historical reasons this is specified with a version range but
 only ranges of the form <code>&gt;= v</code> make sense. We are in the process of
 transitioning to specifying just a single version, not a range.
</p></dd><dt class="src"><a name="v:buildType" class="def">buildType</a> :: <a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-PackageDescription.html#t:BuildType">BuildType</a></dt><dd class="doc empty">&nbsp;</dd><dt class="src"><a name="v:library" class="def">library</a> :: <a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-PackageDescription.html#t:Library">Library</a></dt><dd class="doc empty">&nbsp;</dd><dt class="src"><a name="v:executables" class="def">executables</a> :: [<a href="Distribution-PackageDescription.html#t:Executable">Executable</a>]</dt><dd class="doc empty">&nbsp;</dd><dt class="src"><a name="v:testSuites" class="def">testSuites</a> :: [<a href="Distribution-PackageDescription.html#t:TestSuite">TestSuite</a>]</dt><dd class="doc empty">&nbsp;</dd><dt class="src"><a name="v:benchmarks" class="def">benchmarks</a> :: [<a href="Distribution-PackageDescription.html#t:Benchmark">Benchmark</a>]</dt><dd class="doc empty">&nbsp;</dd><dt class="src"><a name="v:dataFiles" class="def">dataFiles</a> :: [<a href="../base-4.5.1.0/System-IO.html#t:FilePath">FilePath</a>]</dt><dd class="doc empty">&nbsp;</dd><dt class="src"><a name="v:dataDir" class="def">dataDir</a> :: <a href="../base-4.5.1.0/System-IO.html#t:FilePath">FilePath</a></dt><dd class="doc empty">&nbsp;</dd><dt class="src"><a name="v:extraSrcFiles" class="def">extraSrcFiles</a> :: [<a href="../base-4.5.1.0/System-IO.html#t:FilePath">FilePath</a>]</dt><dd class="doc empty">&nbsp;</dd><dt class="src"><a name="v:extraTmpFiles" class="def">extraTmpFiles</a> :: [<a href="../base-4.5.1.0/System-IO.html#t:FilePath">FilePath</a>]</dt><dd class="doc empty">&nbsp;</dd></dl><div class="clear"></div></div></td></tr></table></div><div class="subs instances"><p id="control.i:PackageDescription" class="caption collapser" onclick="toggleSection('i:PackageDescription')">Instances</p><div id="section.i:PackageDescription" class="show"><table><tr><td class="src"><a href="../base-4.5.1.0/Data-Eq.html#t:Eq">Eq</a> <a href="Distribution-PackageDescription.html#t:PackageDescription">PackageDescription</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="../base-4.5.1.0/Text-Read.html#t:Read">Read</a> <a href="Distribution-PackageDescription.html#t:PackageDescription">PackageDescription</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="../base-4.5.1.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-PackageDescription.html#t:PackageDescription">PackageDescription</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Distribution-Package.html#t:Package">Package</a> <a href="Distribution-PackageDescription.html#t:PackageDescription">PackageDescription</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><a name="v:emptyPackageDescription" class="def">emptyPackageDescription</a> :: <a href="Distribution-PackageDescription.html#t:PackageDescription">PackageDescription</a></p></div><div class="top"><p class="src"><a name="v:specVersion" class="def">specVersion</a> :: <a href="Distribution-PackageDescription.html#t:PackageDescription">PackageDescription</a> -&gt; <a href="Distribution-Version.html#t:Version">Version</a></p><div class="doc"><p>The version of the Cabal spec that this package should be interpreted
 against.
</p><p>Historically we used a version range but we are switching to using a single
 version. Currently we accept either. This function converts into a single
 version by ignoring upper bounds in the version range.
</p></div></div><div class="top"><p class="src"><a name="v:descCabalVersion" class="def">descCabalVersion</a> :: <a href="Distribution-PackageDescription.html#t:PackageDescription">PackageDescription</a> -&gt; <a href="Distribution-Version.html#t:VersionRange">VersionRange</a></p><div class="doc"><div class="warning"><p>Deprecated: Use specVersion instead</p></div><p>The range of versions of the Cabal tools that this package is intended to
 work with.
</p><p>This function is deprecated and should not be used for new purposes, only to
 support old packages that rely on the old interpretation.
</p></div></div><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:BuildType" class="def">BuildType</a>  </p><div class="doc"><p>The type of build system used by this package.
</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:Simple" class="def">Simple</a></td><td class="doc"><p>calls <code>Distribution.Simple.defaultMain</code>
</p></td></tr><tr><td class="src"><a name="v:Configure" class="def">Configure</a></td><td class="doc"><p>calls <code>Distribution.Simple.defaultMainWithHooks defaultUserHooks</code>,
 which invokes <code>configure</code> to generate additional build
 information used by later phases.
</p></td></tr><tr><td class="src"><a name="v:Make" class="def">Make</a></td><td class="doc"><p>calls <code>Distribution.Make.defaultMain</code>
</p></td></tr><tr><td class="src"><a name="v:Custom" class="def">Custom</a></td><td class="doc"><p>uses user-supplied <code>Setup.hs</code> or <code>Setup.lhs</code> (default)
</p></td></tr><tr><td class="src"><a name="v:UnknownBuildType" class="def">UnknownBuildType</a> <a href="../base-4.5.1.0/Data-String.html#t:String">String</a></td><td class="doc"><p>a package that uses an unknown build type cannot actually
   be built. Doing it this way rather than just giving a
   parse error means we get better error messages and allows
   you to inspect the rest of the package description.
</p></td></tr></table></div><div class="subs instances"><p id="control.i:BuildType" class="caption collapser" onclick="toggleSection('i:BuildType')">Instances</p><div id="section.i:BuildType" class="show"><table><tr><td class="src"><a href="../base-4.5.1.0/Data-Eq.html#t:Eq">Eq</a> <a href="Distribution-PackageDescription.html#t:BuildType">BuildType</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="../base-4.5.1.0/Text-Read.html#t:Read">Read</a> <a href="Distribution-PackageDescription.html#t:BuildType">BuildType</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="../base-4.5.1.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-PackageDescription.html#t:BuildType">BuildType</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Distribution-Text.html#t:Text">Text</a> <a href="Distribution-PackageDescription.html#t:BuildType">BuildType</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><a name="v:knownBuildTypes" class="def">knownBuildTypes</a> :: [<a href="Distribution-PackageDescription.html#t:BuildType">BuildType</a>]</p></div><h2 id="g:2">Libraries
</h2><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:Library" class="def">Library</a>  </p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:Library" class="def">Library</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><dl><dt class="src"><a name="v:exposedModules" class="def">exposedModules</a> :: [<a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a>]</dt><dd class="doc empty">&nbsp;</dd><dt class="src"><a name="v:libExposed" class="def">libExposed</a> :: <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></dt><dd class="doc"><p>Is the lib to be exposed by default?
</p></dd><dt class="src"><a name="v:libBuildInfo" class="def">libBuildInfo</a> :: <a href="Distribution-PackageDescription.html#t:BuildInfo">BuildInfo</a></dt><dd class="doc empty">&nbsp;</dd></dl><div class="clear"></div></div></td></tr></table></div><div class="subs instances"><p id="control.i:Library" class="caption collapser" onclick="toggleSection('i:Library')">Instances</p><div id="section.i:Library" class="show"><table><tr><td class="src"><a href="../base-4.5.1.0/Data-Eq.html#t:Eq">Eq</a> <a href="Distribution-PackageDescription.html#t:Library">Library</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="../base-4.5.1.0/Text-Read.html#t:Read">Read</a> <a href="Distribution-PackageDescription.html#t:Library">Library</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="../base-4.5.1.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-PackageDescription.html#t:Library">Library</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="../base-4.5.1.0/Data-Monoid.html#t:Monoid">Monoid</a> <a href="Distribution-PackageDescription.html#t:Library">Library</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><a name="v:emptyLibrary" class="def">emptyLibrary</a> :: <a href="Distribution-PackageDescription.html#t:Library">Library</a></p></div><div class="top"><p class="src"><a name="v:withLib" class="def">withLib</a> :: <a href="Distribution-PackageDescription.html#t:PackageDescription">PackageDescription</a> -&gt; (<a href="Distribution-PackageDescription.html#t:Library">Library</a> -&gt; <a href="../base-4.5.1.0/System-IO.html#t:IO">IO</a> ()) -&gt; <a href="../base-4.5.1.0/System-IO.html#t:IO">IO</a> ()</p><div class="doc"><p>If the package description has a library section, call the given
  function with the library build info as argument.
</p></div></div><div class="top"><p class="src"><a name="v:hasLibs" class="def">hasLibs</a> :: <a href="Distribution-PackageDescription.html#t:PackageDescription">PackageDescription</a> -&gt; <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></p><div class="doc"><p>does this package have any libraries?
</p></div></div><div class="top"><p class="src"><a name="v:libModules" class="def">libModules</a> :: <a href="Distribution-PackageDescription.html#t:Library">Library</a> -&gt; [<a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a>]</p><div class="doc"><p>Get all the module names from the library (exposed and internal modules)
</p></div></div><h2 id="g:3">Executables
</h2><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:Executable" class="def">Executable</a>  </p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:Executable" class="def">Executable</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><dl><dt class="src"><a name="v:exeName" class="def">exeName</a> :: <a href="../base-4.5.1.0/Data-String.html#t:String">String</a></dt><dd class="doc empty">&nbsp;</dd><dt class="src"><a name="v:modulePath" class="def">modulePath</a> :: <a href="../base-4.5.1.0/System-IO.html#t:FilePath">FilePath</a></dt><dd class="doc empty">&nbsp;</dd><dt class="src"><a name="v:buildInfo" class="def">buildInfo</a> :: <a href="Distribution-PackageDescription.html#t:BuildInfo">BuildInfo</a></dt><dd class="doc empty">&nbsp;</dd></dl><div class="clear"></div></div></td></tr></table></div><div class="subs instances"><p id="control.i:Executable" class="caption collapser" onclick="toggleSection('i:Executable')">Instances</p><div id="section.i:Executable" class="show"><table><tr><td class="src"><a href="../base-4.5.1.0/Data-Eq.html#t:Eq">Eq</a> <a href="Distribution-PackageDescription.html#t:Executable">Executable</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="../base-4.5.1.0/Text-Read.html#t:Read">Read</a> <a href="Distribution-PackageDescription.html#t:Executable">Executable</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="../base-4.5.1.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-PackageDescription.html#t:Executable">Executable</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="../base-4.5.1.0/Data-Monoid.html#t:Monoid">Monoid</a> <a href="Distribution-PackageDescription.html#t:Executable">Executable</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><a name="v:emptyExecutable" class="def">emptyExecutable</a> :: <a href="Distribution-PackageDescription.html#t:Executable">Executable</a></p></div><div class="top"><p class="src"><a name="v:withExe" class="def">withExe</a> :: <a href="Distribution-PackageDescription.html#t:PackageDescription">PackageDescription</a> -&gt; (<a href="Distribution-PackageDescription.html#t:Executable">Executable</a> -&gt; <a href="../base-4.5.1.0/System-IO.html#t:IO">IO</a> ()) -&gt; <a href="../base-4.5.1.0/System-IO.html#t:IO">IO</a> ()</p><div class="doc"><p>Perform the action on each buildable <code><a href="Distribution-PackageDescription.html#t:Executable">Executable</a></code> in the package
 description.
</p></div></div><div class="top"><p class="src"><a name="v:hasExes" class="def">hasExes</a> :: <a href="Distribution-PackageDescription.html#t:PackageDescription">PackageDescription</a> -&gt; <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></p><div class="doc"><p>does this package have any executables?
</p></div></div><div class="top"><p class="src"><a name="v:exeModules" class="def">exeModules</a> :: <a href="Distribution-PackageDescription.html#t:Executable">Executable</a> -&gt; [<a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a>]</p><div class="doc"><p>Get all the module names from an exe
</p></div></div><h1 id="g:4">Tests
</h1><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:TestSuite" class="def">TestSuite</a>  </p><div class="doc"><p>A &quot;test-suite&quot; stanza in a cabal file.
</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:TestSuite" class="def">TestSuite</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><dl><dt class="src"><a name="v:testName" class="def">testName</a> :: <a href="../base-4.5.1.0/Data-String.html#t:String">String</a></dt><dd class="doc empty">&nbsp;</dd><dt class="src"><a name="v:testInterface" class="def">testInterface</a> :: <a href="Distribution-PackageDescription.html#t:TestSuiteInterface">TestSuiteInterface</a></dt><dd class="doc empty">&nbsp;</dd><dt class="src"><a name="v:testBuildInfo" class="def">testBuildInfo</a> :: <a href="Distribution-PackageDescription.html#t:BuildInfo">BuildInfo</a></dt><dd class="doc empty">&nbsp;</dd><dt class="src"><a name="v:testEnabled" class="def">testEnabled</a> :: <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></dt><dd class="doc empty">&nbsp;</dd></dl><div class="clear"></div></div></td></tr></table></div><div class="subs instances"><p id="control.i:TestSuite" class="caption collapser" onclick="toggleSection('i:TestSuite')">Instances</p><div id="section.i:TestSuite" class="show"><table><tr><td class="src"><a href="../base-4.5.1.0/Data-Eq.html#t:Eq">Eq</a> <a href="Distribution-PackageDescription.html#t:TestSuite">TestSuite</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="../base-4.5.1.0/Text-Read.html#t:Read">Read</a> <a href="Distribution-PackageDescription.html#t:TestSuite">TestSuite</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="../base-4.5.1.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-PackageDescription.html#t:TestSuite">TestSuite</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="../base-4.5.1.0/Data-Monoid.html#t:Monoid">Monoid</a> <a href="Distribution-PackageDescription.html#t:TestSuite">TestSuite</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:TestSuiteInterface" class="def">TestSuiteInterface</a>  </p><div class="doc"><p>The test suite interfaces that are currently defined. Each test suite must
 specify which interface it supports.
</p><p>More interfaces may be defined in future, either new revisions or totally
 new interfaces.
</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:TestSuiteExeV10" class="def">TestSuiteExeV10</a> <a href="Distribution-Version.html#t:Version">Version</a> <a href="../base-4.5.1.0/System-IO.html#t:FilePath">FilePath</a></td><td class="doc"><p>Test interface &quot;exitcode-stdio-1.0&quot;. The test-suite takes the form
 of an executable. It returns a zero exit code for success, non-zero for
 failure. The stdout and stderr channels may be logged. It takes no
 command line parameters and nothing on stdin.
</p></td></tr><tr><td class="src"><a name="v:TestSuiteLibV09" class="def">TestSuiteLibV09</a> <a href="Distribution-Version.html#t:Version">Version</a> <a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a></td><td class="doc"><p>Test interface &quot;detailed-0.9&quot;. The test-suite takes the form of a
 library containing a designated module that exports &quot;tests :: [Test]&quot;.
</p></td></tr><tr><td class="src"><a name="v:TestSuiteUnsupported" class="def">TestSuiteUnsupported</a> <a href="Distribution-PackageDescription.html#t:TestType">TestType</a></td><td class="doc"><p>A test suite that does not conform to one of the above interfaces for
 the given reason (e.g. unknown test type).
</p></td></tr></table></div><div class="subs instances"><p id="control.i:TestSuiteInterface" class="caption collapser" onclick="toggleSection('i:TestSuiteInterface')">Instances</p><div id="section.i:TestSuiteInterface" class="show"><table><tr><td class="src"><a href="../base-4.5.1.0/Data-Eq.html#t:Eq">Eq</a> <a href="Distribution-PackageDescription.html#t:TestSuiteInterface">TestSuiteInterface</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="../base-4.5.1.0/Text-Read.html#t:Read">Read</a> <a href="Distribution-PackageDescription.html#t:TestSuiteInterface">TestSuiteInterface</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="../base-4.5.1.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-PackageDescription.html#t:TestSuiteInterface">TestSuiteInterface</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="../base-4.5.1.0/Data-Monoid.html#t:Monoid">Monoid</a> <a href="Distribution-PackageDescription.html#t:TestSuiteInterface">TestSuiteInterface</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:TestType" class="def">TestType</a>  </p><div class="doc"><p>The &quot;test-type&quot; field in the test suite stanza.
</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:TestTypeExe" class="def">TestTypeExe</a> <a href="Distribution-Version.html#t:Version">Version</a></td><td class="doc"><p>&quot;type: exitcode-stdio-x.y&quot;
</p></td></tr><tr><td class="src"><a name="v:TestTypeLib" class="def">TestTypeLib</a> <a href="Distribution-Version.html#t:Version">Version</a></td><td class="doc"><p>&quot;type: detailed-x.y&quot;
</p></td></tr><tr><td class="src"><a name="v:TestTypeUnknown" class="def">TestTypeUnknown</a> <a href="../base-4.5.1.0/Data-String.html#t:String">String</a> <a href="Distribution-Version.html#t:Version">Version</a></td><td class="doc"><p>Some unknown test type e.g. &quot;type: foo&quot;
</p></td></tr></table></div><div class="subs instances"><p id="control.i:TestType" class="caption collapser" onclick="toggleSection('i:TestType')">Instances</p><div id="section.i:TestType" class="show"><table><tr><td class="src"><a href="../base-4.5.1.0/Data-Eq.html#t:Eq">Eq</a> <a href="Distribution-PackageDescription.html#t:TestType">TestType</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="../base-4.5.1.0/Text-Read.html#t:Read">Read</a> <a href="Distribution-PackageDescription.html#t:TestType">TestType</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="../base-4.5.1.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-PackageDescription.html#t:TestType">TestType</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Distribution-Text.html#t:Text">Text</a> <a href="Distribution-PackageDescription.html#t:TestType">TestType</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><a name="v:testType" class="def">testType</a> :: <a href="Distribution-PackageDescription.html#t:TestSuite">TestSuite</a> -&gt; <a href="Distribution-PackageDescription.html#t:TestType">TestType</a></p></div><div class="top"><p class="src"><a name="v:knownTestTypes" class="def">knownTestTypes</a> :: [<a href="Distribution-PackageDescription.html#t:TestType">TestType</a>]</p></div><div class="top"><p class="src"><a name="v:emptyTestSuite" class="def">emptyTestSuite</a> :: <a href="Distribution-PackageDescription.html#t:TestSuite">TestSuite</a></p></div><div class="top"><p class="src"><a name="v:hasTests" class="def">hasTests</a> :: <a href="Distribution-PackageDescription.html#t:PackageDescription">PackageDescription</a> -&gt; <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></p><div class="doc"><p>Does this package have any test suites?
</p></div></div><div class="top"><p class="src"><a name="v:withTest" class="def">withTest</a> :: <a href="Distribution-PackageDescription.html#t:PackageDescription">PackageDescription</a> -&gt; (<a href="Distribution-PackageDescription.html#t:TestSuite">TestSuite</a> -&gt; <a href="../base-4.5.1.0/System-IO.html#t:IO">IO</a> ()) -&gt; <a href="../base-4.5.1.0/System-IO.html#t:IO">IO</a> ()</p><div class="doc"><p>Perform an action on each buildable <code><a href="Distribution-PackageDescription.html#t:TestSuite">TestSuite</a></code> in a package.
</p></div></div><div class="top"><p class="src"><a name="v:testModules" class="def">testModules</a> :: <a href="Distribution-PackageDescription.html#t:TestSuite">TestSuite</a> -&gt; [<a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a>]</p><div class="doc"><p>Get all the module names from a test suite.
</p></div></div><div class="top"><p class="src"><a name="v:enabledTests" class="def">enabledTests</a> :: <a href="Distribution-PackageDescription.html#t:PackageDescription">PackageDescription</a> -&gt; [<a href="Distribution-PackageDescription.html#t:TestSuite">TestSuite</a>]</p><div class="doc"><p>Get all the enabled test suites from a package.
</p></div></div><h1 id="g:5">Benchmarks
</h1><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:Benchmark" class="def">Benchmark</a>  </p><div class="doc"><p>A &quot;benchmark&quot; stanza in a cabal file.
</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:Benchmark" class="def">Benchmark</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><dl><dt class="src"><a name="v:benchmarkName" class="def">benchmarkName</a> :: <a href="../base-4.5.1.0/Data-String.html#t:String">String</a></dt><dd class="doc empty">&nbsp;</dd><dt class="src"><a name="v:benchmarkInterface" class="def">benchmarkInterface</a> :: <a href="Distribution-PackageDescription.html#t:BenchmarkInterface">BenchmarkInterface</a></dt><dd class="doc empty">&nbsp;</dd><dt class="src"><a name="v:benchmarkBuildInfo" class="def">benchmarkBuildInfo</a> :: <a href="Distribution-PackageDescription.html#t:BuildInfo">BuildInfo</a></dt><dd class="doc empty">&nbsp;</dd><dt class="src"><a name="v:benchmarkEnabled" class="def">benchmarkEnabled</a> :: <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></dt><dd class="doc empty">&nbsp;</dd></dl><div class="clear"></div></div></td></tr></table></div><div class="subs instances"><p id="control.i:Benchmark" class="caption collapser" onclick="toggleSection('i:Benchmark')">Instances</p><div id="section.i:Benchmark" class="show"><table><tr><td class="src"><a href="../base-4.5.1.0/Data-Eq.html#t:Eq">Eq</a> <a href="Distribution-PackageDescription.html#t:Benchmark">Benchmark</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="../base-4.5.1.0/Text-Read.html#t:Read">Read</a> <a href="Distribution-PackageDescription.html#t:Benchmark">Benchmark</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="../base-4.5.1.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-PackageDescription.html#t:Benchmark">Benchmark</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="../base-4.5.1.0/Data-Monoid.html#t:Monoid">Monoid</a> <a href="Distribution-PackageDescription.html#t:Benchmark">Benchmark</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:BenchmarkInterface" class="def">BenchmarkInterface</a>  </p><div class="doc"><p>The benchmark interfaces that are currently defined. Each
 benchmark must specify which interface it supports.
</p><p>More interfaces may be defined in future, either new revisions or
 totally new interfaces.
</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:BenchmarkExeV10" class="def">BenchmarkExeV10</a> <a href="Distribution-Version.html#t:Version">Version</a> <a href="../base-4.5.1.0/System-IO.html#t:FilePath">FilePath</a></td><td class="doc"><p>Benchmark interface &quot;exitcode-stdio-1.0&quot;. The benchmark
 takes the form of an executable. It returns a zero exit code
 for success, non-zero for failure. The stdout and stderr
 channels may be logged. It takes no command line parameters
 and nothing on stdin.
</p></td></tr><tr><td class="src"><a name="v:BenchmarkUnsupported" class="def">BenchmarkUnsupported</a> <a href="Distribution-PackageDescription.html#t:BenchmarkType">BenchmarkType</a></td><td class="doc"><p>A benchmark that does not conform to one of the above
 interfaces for the given reason (e.g. unknown benchmark type).
</p></td></tr></table></div><div class="subs instances"><p id="control.i:BenchmarkInterface" class="caption collapser" onclick="toggleSection('i:BenchmarkInterface')">Instances</p><div id="section.i:BenchmarkInterface" class="show"><table><tr><td class="src"><a href="../base-4.5.1.0/Data-Eq.html#t:Eq">Eq</a> <a href="Distribution-PackageDescription.html#t:BenchmarkInterface">BenchmarkInterface</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="../base-4.5.1.0/Text-Read.html#t:Read">Read</a> <a href="Distribution-PackageDescription.html#t:BenchmarkInterface">BenchmarkInterface</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="../base-4.5.1.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-PackageDescription.html#t:BenchmarkInterface">BenchmarkInterface</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="../base-4.5.1.0/Data-Monoid.html#t:Monoid">Monoid</a> <a href="Distribution-PackageDescription.html#t:BenchmarkInterface">BenchmarkInterface</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:BenchmarkType" class="def">BenchmarkType</a>  </p><div class="doc"><p>The &quot;benchmark-type&quot; field in the benchmark stanza.
</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:BenchmarkTypeExe" class="def">BenchmarkTypeExe</a> <a href="Distribution-Version.html#t:Version">Version</a></td><td class="doc"><p>&quot;type: exitcode-stdio-x.y&quot;
</p></td></tr><tr><td class="src"><a name="v:BenchmarkTypeUnknown" class="def">BenchmarkTypeUnknown</a> <a href="../base-4.5.1.0/Data-String.html#t:String">String</a> <a href="Distribution-Version.html#t:Version">Version</a></td><td class="doc"><p>Some unknown benchmark type e.g. &quot;type: foo&quot;
</p></td></tr></table></div><div class="subs instances"><p id="control.i:BenchmarkType" class="caption collapser" onclick="toggleSection('i:BenchmarkType')">Instances</p><div id="section.i:BenchmarkType" class="show"><table><tr><td class="src"><a href="../base-4.5.1.0/Data-Eq.html#t:Eq">Eq</a> <a href="Distribution-PackageDescription.html#t:BenchmarkType">BenchmarkType</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="../base-4.5.1.0/Text-Read.html#t:Read">Read</a> <a href="Distribution-PackageDescription.html#t:BenchmarkType">BenchmarkType</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="../base-4.5.1.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-PackageDescription.html#t:BenchmarkType">BenchmarkType</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Distribution-Text.html#t:Text">Text</a> <a href="Distribution-PackageDescription.html#t:BenchmarkType">BenchmarkType</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><a name="v:benchmarkType" class="def">benchmarkType</a> :: <a href="Distribution-PackageDescription.html#t:Benchmark">Benchmark</a> -&gt; <a href="Distribution-PackageDescription.html#t:BenchmarkType">BenchmarkType</a></p></div><div class="top"><p class="src"><a name="v:knownBenchmarkTypes" class="def">knownBenchmarkTypes</a> :: [<a href="Distribution-PackageDescription.html#t:BenchmarkType">BenchmarkType</a>]</p></div><div class="top"><p class="src"><a name="v:emptyBenchmark" class="def">emptyBenchmark</a> :: <a href="Distribution-PackageDescription.html#t:Benchmark">Benchmark</a></p></div><div class="top"><p class="src"><a name="v:hasBenchmarks" class="def">hasBenchmarks</a> :: <a href="Distribution-PackageDescription.html#t:PackageDescription">PackageDescription</a> -&gt; <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></p><div class="doc"><p>Does this package have any benchmarks?
</p></div></div><div class="top"><p class="src"><a name="v:withBenchmark" class="def">withBenchmark</a> :: <a href="Distribution-PackageDescription.html#t:PackageDescription">PackageDescription</a> -&gt; (<a href="Distribution-PackageDescription.html#t:Benchmark">Benchmark</a> -&gt; <a href="../base-4.5.1.0/System-IO.html#t:IO">IO</a> ()) -&gt; <a href="../base-4.5.1.0/System-IO.html#t:IO">IO</a> ()</p><div class="doc"><p>Perform an action on each buildable <code><a href="Distribution-PackageDescription.html#t:Benchmark">Benchmark</a></code> in a package.
</p></div></div><div class="top"><p class="src"><a name="v:benchmarkModules" class="def">benchmarkModules</a> :: <a href="Distribution-PackageDescription.html#t:Benchmark">Benchmark</a> -&gt; [<a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a>]</p><div class="doc"><p>Get all the module names from a benchmark.
</p></div></div><div class="top"><p class="src"><a name="v:enabledBenchmarks" class="def">enabledBenchmarks</a> :: <a href="Distribution-PackageDescription.html#t:PackageDescription">PackageDescription</a> -&gt; [<a href="Distribution-PackageDescription.html#t:Benchmark">Benchmark</a>]</p><div class="doc"><p>Get all the enabled benchmarks from a package.
</p></div></div><h1 id="g:6">Build information
</h1><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:BuildInfo" class="def">BuildInfo</a>  </p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:BuildInfo" class="def">BuildInfo</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><dl><dt class="src"><a name="v:buildable" class="def">buildable</a> :: <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></dt><dd class="doc"><p>component is buildable here
</p></dd><dt class="src"><a name="v:buildTools" class="def">buildTools</a> :: [<a href="Distribution-Package.html#t:Dependency">Dependency</a>]</dt><dd class="doc"><p>tools needed to build this bit
</p></dd><dt class="src"><a name="v:cppOptions" class="def">cppOptions</a> :: [<a href="../base-4.5.1.0/Data-String.html#t:String">String</a>]</dt><dd class="doc"><p>options for pre-processing Haskell code
</p></dd><dt class="src"><a name="v:ccOptions" class="def">ccOptions</a> :: [<a href="../base-4.5.1.0/Data-String.html#t:String">String</a>]</dt><dd class="doc"><p>options for C compiler
</p></dd><dt class="src"><a name="v:ldOptions" class="def">ldOptions</a> :: [<a href="../base-4.5.1.0/Data-String.html#t:String">String</a>]</dt><dd class="doc"><p>options for linker
</p></dd><dt class="src"><a name="v:pkgconfigDepends" class="def">pkgconfigDepends</a> :: [<a href="Distribution-Package.html#t:Dependency">Dependency</a>]</dt><dd class="doc"><p>pkg-config packages that are used
</p></dd><dt class="src"><a name="v:frameworks" class="def">frameworks</a> :: [<a href="../base-4.5.1.0/Data-String.html#t:String">String</a>]</dt><dd class="doc"><p>support frameworks for Mac OS X
</p></dd><dt class="src"><a name="v:cSources" class="def">cSources</a> :: [<a href="../base-4.5.1.0/System-IO.html#t:FilePath">FilePath</a>]</dt><dd class="doc empty">&nbsp;</dd><dt class="src"><a name="v:hsSourceDirs" class="def">hsSourceDirs</a> :: [<a href="../base-4.5.1.0/System-IO.html#t:FilePath">FilePath</a>]</dt><dd class="doc"><p>where to look for the haskell module hierarchy
</p></dd><dt class="src"><a name="v:otherModules" class="def">otherModules</a> :: [<a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a>]</dt><dd class="doc"><p>non-exposed or non-main modules
</p></dd><dt class="src"><a name="v:defaultLanguage" class="def">defaultLanguage</a> :: <a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Language-Haskell-Extension.html#t:Language">Language</a></dt><dd class="doc"><p>language used when not explicitly specified
</p></dd><dt class="src"><a name="v:otherLanguages" class="def">otherLanguages</a> :: [<a href="Language-Haskell-Extension.html#t:Language">Language</a>]</dt><dd class="doc"><p>other languages used within the package
</p></dd><dt class="src"><a name="v:defaultExtensions" class="def">defaultExtensions</a> :: [<a href="Language-Haskell-Extension.html#t:Extension">Extension</a>]</dt><dd class="doc"><p>language extensions used by all modules
</p></dd><dt class="src"><a name="v:otherExtensions" class="def">otherExtensions</a> :: [<a href="Language-Haskell-Extension.html#t:Extension">Extension</a>]</dt><dd class="doc"><p>other language extensions used within the package
</p></dd><dt class="src"><a name="v:oldExtensions" class="def">oldExtensions</a> :: [<a href="Language-Haskell-Extension.html#t:Extension">Extension</a>]</dt><dd class="doc"><p>the old extensions field, treated same as <code><a href="Distribution-PackageDescription.html#v:defaultExtensions">defaultExtensions</a></code>
</p></dd><dt class="src"><a name="v:extraLibs" class="def">extraLibs</a> :: [<a href="../base-4.5.1.0/Data-String.html#t:String">String</a>]</dt><dd class="doc"><p>what libraries to link with when compiling a program that uses your package
</p></dd><dt class="src"><a name="v:extraLibDirs" class="def">extraLibDirs</a> :: [<a href="../base-4.5.1.0/Data-String.html#t:String">String</a>]</dt><dd class="doc empty">&nbsp;</dd><dt class="src"><a name="v:includeDirs" class="def">includeDirs</a> :: [<a href="../base-4.5.1.0/System-IO.html#t:FilePath">FilePath</a>]</dt><dd class="doc"><p>directories to find .h files
</p></dd><dt class="src"><a name="v:includes" class="def">includes</a> :: [<a href="../base-4.5.1.0/System-IO.html#t:FilePath">FilePath</a>]</dt><dd class="doc"><p>The .h files to be found in includeDirs
</p></dd><dt class="src"><a name="v:installIncludes" class="def">installIncludes</a> :: [<a href="../base-4.5.1.0/System-IO.html#t:FilePath">FilePath</a>]</dt><dd class="doc"><p>.h files to install with the package
</p></dd><dt class="src"><a name="v:options" class="def">options</a> :: [(<a href="Distribution-Compiler.html#t:CompilerFlavor">CompilerFlavor</a>, [<a href="../base-4.5.1.0/Data-String.html#t:String">String</a>])]</dt><dd class="doc empty">&nbsp;</dd><dt class="src"><a name="v:ghcProfOptions" class="def">ghcProfOptions</a> :: [<a href="../base-4.5.1.0/Data-String.html#t:String">String</a>]</dt><dd class="doc empty">&nbsp;</dd><dt class="src"><a name="v:ghcSharedOptions" class="def">ghcSharedOptions</a> :: [<a href="../base-4.5.1.0/Data-String.html#t:String">String</a>]</dt><dd class="doc empty">&nbsp;</dd><dt class="src"><a name="v:customFieldsBI" class="def">customFieldsBI</a> :: [(<a href="../base-4.5.1.0/Data-String.html#t:String">String</a>, <a href="../base-4.5.1.0/Data-String.html#t:String">String</a>)]</dt><dd class="doc"><p>Custom fields starting
 with x-, stored in a
 simple assoc-list.
</p></dd><dt class="src"><a name="v:targetBuildDepends" class="def">targetBuildDepends</a> :: [<a href="Distribution-Package.html#t:Dependency">Dependency</a>]</dt><dd class="doc"><p>Dependencies specific to a library or executable target
</p></dd></dl><div class="clear"></div></div></td></tr></table></div><div class="subs instances"><p id="control.i:BuildInfo" class="caption collapser" onclick="toggleSection('i:BuildInfo')">Instances</p><div id="section.i:BuildInfo" class="show"><table><tr><td class="src"><a href="../base-4.5.1.0/Data-Eq.html#t:Eq">Eq</a> <a href="Distribution-PackageDescription.html#t:BuildInfo">BuildInfo</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="../base-4.5.1.0/Text-Read.html#t:Read">Read</a> <a href="Distribution-PackageDescription.html#t:BuildInfo">BuildInfo</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="../base-4.5.1.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-PackageDescription.html#t:BuildInfo">BuildInfo</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="../base-4.5.1.0/Data-Monoid.html#t:Monoid">Monoid</a> <a href="Distribution-PackageDescription.html#t:BuildInfo">BuildInfo</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><a name="v:emptyBuildInfo" class="def">emptyBuildInfo</a> :: <a href="Distribution-PackageDescription.html#t:BuildInfo">BuildInfo</a></p></div><div class="top"><p class="src"><a name="v:allBuildInfo" class="def">allBuildInfo</a> :: <a href="Distribution-PackageDescription.html#t:PackageDescription">PackageDescription</a> -&gt; [<a href="Distribution-PackageDescription.html#t:BuildInfo">BuildInfo</a>]</p><div class="doc"><p>The <code><a href="Distribution-PackageDescription.html#t:BuildInfo">BuildInfo</a></code> for the library (if there is one and it's buildable), and
 all buildable executables, test suites and benchmarks.  Useful for gathering
 dependencies.
</p></div></div><div class="top"><p class="src"><a name="v:allLanguages" class="def">allLanguages</a> :: <a href="Distribution-PackageDescription.html#t:BuildInfo">BuildInfo</a> -&gt; [<a href="Language-Haskell-Extension.html#t:Language">Language</a>]</p><div class="doc"><p>The <code><a href="Language-Haskell-Extension.html#t:Language">Language</a></code>s used by this component
</p></div></div><div class="top"><p class="src"><a name="v:allExtensions" class="def">allExtensions</a> :: <a href="Distribution-PackageDescription.html#t:BuildInfo">BuildInfo</a> -&gt; [<a href="Language-Haskell-Extension.html#t:Extension">Extension</a>]</p><div class="doc"><p>The <code><a href="Language-Haskell-Extension.html#t:Extension">Extension</a></code>s that are used somewhere by this component
</p></div></div><div class="top"><p class="src"><a name="v:usedExtensions" class="def">usedExtensions</a> :: <a href="Distribution-PackageDescription.html#t:BuildInfo">BuildInfo</a> -&gt; [<a href="Language-Haskell-Extension.html#t:Extension">Extension</a>]</p><div class="doc"><p>The <code>Extensions</code> that are used by all modules in this component
</p></div></div><div class="top"><p class="src"><a name="v:hcOptions" class="def">hcOptions</a> :: <a href="Distribution-Compiler.html#t:CompilerFlavor">CompilerFlavor</a> -&gt; <a href="Distribution-PackageDescription.html#t:BuildInfo">BuildInfo</a> -&gt; [<a href="../base-4.5.1.0/Data-String.html#t:String">String</a>]</p><div class="doc"><p>Select options for a particular Haskell compiler.
</p></div></div><h2 id="g:7">Supplementary build information
</h2><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:HookedBuildInfo" class="def">HookedBuildInfo</a> = (<a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-PackageDescription.html#t:BuildInfo">BuildInfo</a>, [(<a href="../base-4.5.1.0/Data-String.html#t:String">String</a>, <a href="Distribution-PackageDescription.html#t:BuildInfo">BuildInfo</a>)])</p></div><div class="top"><p class="src"><a name="v:emptyHookedBuildInfo" class="def">emptyHookedBuildInfo</a> :: <a href="Distribution-PackageDescription.html#t:HookedBuildInfo">HookedBuildInfo</a></p></div><div class="top"><p class="src"><a name="v:updatePackageDescription" class="def">updatePackageDescription</a> :: <a href="Distribution-PackageDescription.html#t:HookedBuildInfo">HookedBuildInfo</a> -&gt; <a href="Distribution-PackageDescription.html#t:PackageDescription">PackageDescription</a> -&gt; <a href="Distribution-PackageDescription.html#t:PackageDescription">PackageDescription</a></p></div><h1 id="g:8">package configuration
</h1><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:GenericPackageDescription" class="def">GenericPackageDescription</a>  </p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:GenericPackageDescription" class="def">GenericPackageDescription</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><dl><dt class="src"><a name="v:packageDescription" class="def">packageDescription</a> :: <a href="Distribution-PackageDescription.html#t:PackageDescription">PackageDescription</a></dt><dd class="doc empty">&nbsp;</dd><dt class="src"><a name="v:genPackageFlags" class="def">genPackageFlags</a> :: [<a href="Distribution-PackageDescription.html#t:Flag">Flag</a>]</dt><dd class="doc empty">&nbsp;</dd><dt class="src"><a name="v:condLibrary" class="def">condLibrary</a> :: <a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> (<a href="Distribution-PackageDescription.html#t:CondTree">CondTree</a> <a href="Distribution-PackageDescription.html#t:ConfVar">ConfVar</a> [<a href="Distribution-Package.html#t:Dependency">Dependency</a>] <a href="Distribution-PackageDescription.html#t:Library">Library</a>)</dt><dd class="doc empty">&nbsp;</dd><dt class="src"><a name="v:condExecutables" class="def">condExecutables</a> :: [(<a href="../base-4.5.1.0/Data-String.html#t:String">String</a>, <a href="Distribution-PackageDescription.html#t:CondTree">CondTree</a> <a href="Distribution-PackageDescription.html#t:ConfVar">ConfVar</a> [<a href="Distribution-Package.html#t:Dependency">Dependency</a>] <a href="Distribution-PackageDescription.html#t:Executable">Executable</a>)]</dt><dd class="doc empty">&nbsp;</dd><dt class="src"><a name="v:condTestSuites" class="def">condTestSuites</a> :: [(<a href="../base-4.5.1.0/Data-String.html#t:String">String</a>, <a href="Distribution-PackageDescription.html#t:CondTree">CondTree</a> <a href="Distribution-PackageDescription.html#t:ConfVar">ConfVar</a> [<a href="Distribution-Package.html#t:Dependency">Dependency</a>] <a href="Distribution-PackageDescription.html#t:TestSuite">TestSuite</a>)]</dt><dd class="doc empty">&nbsp;</dd><dt class="src"><a name="v:condBenchmarks" class="def">condBenchmarks</a> :: [(<a href="../base-4.5.1.0/Data-String.html#t:String">String</a>, <a href="Distribution-PackageDescription.html#t:CondTree">CondTree</a> <a href="Distribution-PackageDescription.html#t:ConfVar">ConfVar</a> [<a href="Distribution-Package.html#t:Dependency">Dependency</a>] <a href="Distribution-PackageDescription.html#t:Benchmark">Benchmark</a>)]</dt><dd class="doc empty">&nbsp;</dd></dl><div class="clear"></div></div></td></tr></table></div><div class="subs instances"><p id="control.i:GenericPackageDescription" class="caption collapser" onclick="toggleSection('i:GenericPackageDescription')">Instances</p><div id="section.i:GenericPackageDescription" class="show"><table><tr><td class="src"><a href="../base-4.5.1.0/Data-Eq.html#t:Eq">Eq</a> <a href="Distribution-PackageDescription.html#t:GenericPackageDescription">GenericPackageDescription</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="../base-4.5.1.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-PackageDescription.html#t:GenericPackageDescription">GenericPackageDescription</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Distribution-Package.html#t:Package">Package</a> <a href="Distribution-PackageDescription.html#t:GenericPackageDescription">GenericPackageDescription</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:Flag" class="def">Flag</a>  </p><div class="doc"><p>A flag can represent a feature to be included, or a way of linking
   a target against its dependencies, or in fact whatever you can think of.
</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:MkFlag" class="def">MkFlag</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><dl><dt class="src"><a name="v:flagName" class="def">flagName</a> :: <a href="Distribution-PackageDescription.html#t:FlagName">FlagName</a></dt><dd class="doc empty">&nbsp;</dd><dt class="src"><a name="v:flagDescription" class="def">flagDescription</a> :: <a href="../base-4.5.1.0/Data-String.html#t:String">String</a></dt><dd class="doc empty">&nbsp;</dd><dt class="src"><a name="v:flagDefault" class="def">flagDefault</a> :: <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></dt><dd class="doc empty">&nbsp;</dd><dt class="src"><a name="v:flagManual" class="def">flagManual</a> :: <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></dt><dd class="doc empty">&nbsp;</dd></dl><div class="clear"></div></div></td></tr></table></div><div class="subs instances"><p id="control.i:Flag" class="caption collapser" onclick="toggleSection('i:Flag')">Instances</p><div id="section.i:Flag" class="show"><table><tr><td class="src"><a href="../base-4.5.1.0/Data-Eq.html#t:Eq">Eq</a> <a href="Distribution-PackageDescription.html#t:Flag">Flag</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="../base-4.5.1.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-PackageDescription.html#t:Flag">Flag</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">newtype</span>  <a name="t:FlagName" class="def">FlagName</a>  </p><div class="doc"><p>A <code><a href="Distribution-PackageDescription.html#t:FlagName">FlagName</a></code> is the name of a user-defined configuration flag
</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:FlagName" class="def">FlagName</a> <a href="../base-4.5.1.0/Data-String.html#t:String">String</a></td><td class="doc empty">&nbsp;</td></tr></table></div><div class="subs instances"><p id="control.i:FlagName" class="caption collapser" onclick="toggleSection('i:FlagName')">Instances</p><div id="section.i:FlagName" class="show"><table><tr><td class="src"><a href="../base-4.5.1.0/Data-Eq.html#t:Eq">Eq</a> <a href="Distribution-PackageDescription.html#t:FlagName">FlagName</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="../base-4.5.1.0/Data-Ord.html#t:Ord">Ord</a> <a href="Distribution-PackageDescription.html#t:FlagName">FlagName</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="../base-4.5.1.0/Text-Read.html#t:Read">Read</a> <a href="Distribution-PackageDescription.html#t:FlagName">FlagName</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="../base-4.5.1.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-PackageDescription.html#t:FlagName">FlagName</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:FlagAssignment" class="def">FlagAssignment</a> = [(<a href="Distribution-PackageDescription.html#t:FlagName">FlagName</a>, <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a>)]</p><div class="doc"><p>A <code><a href="Distribution-PackageDescription.html#t:FlagAssignment">FlagAssignment</a></code> is a total or partial mapping of <code><a href="Distribution-PackageDescription.html#t:FlagName">FlagName</a></code>s to
 <code><a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></code> flag values. It represents the flags chosen by the user or
 discovered during configuration. For example <code>--flags=foo --flags=-bar</code>
 becomes <code>[(<a href="foo.html">foo</a>, True), (<a href="bar.html">bar</a>, False)]</code>
</p></div></div><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:CondTree" class="def">CondTree</a> v c a </p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:CondNode" class="def">CondNode</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><dl><dt class="src"><a name="v:condTreeData" class="def">condTreeData</a> :: a</dt><dd class="doc empty">&nbsp;</dd><dt class="src"><a name="v:condTreeConstraints" class="def">condTreeConstraints</a> :: c</dt><dd class="doc empty">&nbsp;</dd><dt class="src"><a name="v:condTreeComponents" class="def">condTreeComponents</a> :: [(<a href="Distribution-PackageDescription.html#t:Condition">Condition</a> v, <a href="Distribution-PackageDescription.html#t:CondTree">CondTree</a> v c a, <a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> (<a href="Distribution-PackageDescription.html#t:CondTree">CondTree</a> v c a))]</dt><dd class="doc empty">&nbsp;</dd></dl><div class="clear"></div></div></td></tr></table></div><div class="subs instances"><p id="control.i:CondTree" class="caption collapser" onclick="toggleSection('i:CondTree')">Instances</p><div id="section.i:CondTree" class="show"><table><tr><td class="src">(<a href="../base-4.5.1.0/Data-Eq.html#t:Eq">Eq</a> v, <a href="../base-4.5.1.0/Data-Eq.html#t:Eq">Eq</a> c, <a href="../base-4.5.1.0/Data-Eq.html#t:Eq">Eq</a> a) =&gt; <a href="../base-4.5.1.0/Data-Eq.html#t:Eq">Eq</a> (<a href="Distribution-PackageDescription.html#t:CondTree">CondTree</a> v c a)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src">(<a href="../base-4.5.1.0/Text-Show.html#t:Show">Show</a> v, <a href="../base-4.5.1.0/Text-Show.html#t:Show">Show</a> c, <a href="../base-4.5.1.0/Text-Show.html#t:Show">Show</a> a) =&gt; <a href="../base-4.5.1.0/Text-Show.html#t:Show">Show</a> (<a href="Distribution-PackageDescription.html#t:CondTree">CondTree</a> v c a)</td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:ConfVar" class="def">ConfVar</a>  </p><div class="doc"><p>A <code>ConfVar</code> represents the variable type used.
</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:OS" class="def">OS</a> <a href="Distribution-System.html#t:OS">OS</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:Arch" class="def">Arch</a> <a href="Distribution-System.html#t:Arch">Arch</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:Flag" class="def">Flag</a> <a href="Distribution-PackageDescription.html#t:FlagName">FlagName</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:Impl" class="def">Impl</a> <a href="Distribution-Compiler.html#t:CompilerFlavor">CompilerFlavor</a> <a href="Distribution-Version.html#t:VersionRange">VersionRange</a></td><td class="doc empty">&nbsp;</td></tr></table></div><div class="subs instances"><p id="control.i:ConfVar" class="caption collapser" onclick="toggleSection('i:ConfVar')">Instances</p><div id="section.i:ConfVar" class="show"><table><tr><td class="src"><a href="../base-4.5.1.0/Data-Eq.html#t:Eq">Eq</a> <a href="Distribution-PackageDescription.html#t:ConfVar">ConfVar</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="../base-4.5.1.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-PackageDescription.html#t:ConfVar">ConfVar</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:Condition" class="def">Condition</a> c </p><div class="doc"><p>A boolean expression parameterized over the variable type used.
</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:Var" class="def">Var</a> c</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:Lit" class="def">Lit</a> <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:CNot" class="def">CNot</a> (<a href="Distribution-PackageDescription.html#t:Condition">Condition</a> c)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:COr" class="def">COr</a> (<a href="Distribution-PackageDescription.html#t:Condition">Condition</a> c) (<a href="Distribution-PackageDescription.html#t:Condition">Condition</a> c)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:CAnd" class="def">CAnd</a> (<a href="Distribution-PackageDescription.html#t:Condition">Condition</a> c) (<a href="Distribution-PackageDescription.html#t:Condition">Condition</a> c)</td><td class="doc empty">&nbsp;</td></tr></table></div><div class="subs instances"><p id="control.i:Condition" class="caption collapser" onclick="toggleSection('i:Condition')">Instances</p><div id="section.i:Condition" class="show"><table><tr><td class="src"><a href="../base-4.5.1.0/Data-Eq.html#t:Eq">Eq</a> c =&gt; <a href="../base-4.5.1.0/Data-Eq.html#t:Eq">Eq</a> (<a href="Distribution-PackageDescription.html#t:Condition">Condition</a> c)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="../base-4.5.1.0/Text-Show.html#t:Show">Show</a> c =&gt; <a href="../base-4.5.1.0/Text-Show.html#t:Show">Show</a> (<a href="Distribution-PackageDescription.html#t:Condition">Condition</a> c)</td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><h1 id="g:9">Source repositories
</h1><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:SourceRepo" class="def">SourceRepo</a>  </p><div class="doc"><p>Information about the source revision control system for a package.
</p><p>When specifying a repo it is useful to know the meaning or intention of the
 information as doing so enables automation. There are two obvious common
 purposes: one is to find the repo for the latest development version, the
 other is to find the repo for this specific release. The <code>ReopKind</code>
 specifies which one we mean (or another custom one).
</p><p>A package can specify one or the other kind or both. Most will specify just
 a head repo but some may want to specify a repo to reconstruct the sources
 for this package release.
</p><p>The required information is the <code><a href="Distribution-PackageDescription.html#t:RepoType">RepoType</a></code> which tells us if it's using
 <code><a href="Distribution-PackageDescription.html#v:Darcs">Darcs</a></code>, <code><a href="Distribution-PackageDescription.html#v:Git">Git</a></code> for example. The <code><a href="Distribution-PackageDescription.html#v:repoLocation">repoLocation</a></code> and other details are
 interpreted according to the repo type.
</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:SourceRepo" class="def">SourceRepo</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><dl><dt class="src"><a name="v:repoKind" class="def">repoKind</a> :: <a href="Distribution-PackageDescription.html#t:RepoKind">RepoKind</a></dt><dd class="doc"><p>The kind of repo. This field is required.
</p></dd><dt class="src"><a name="v:repoType" class="def">repoType</a> :: <a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-PackageDescription.html#t:RepoType">RepoType</a></dt><dd class="doc"><p>The type of the source repository system for this repo, eg <code><a href="Distribution-PackageDescription.html#v:Darcs">Darcs</a></code> or
 <code><a href="Distribution-PackageDescription.html#v:Git">Git</a></code>. This field is required.
</p></dd><dt class="src"><a name="v:repoLocation" class="def">repoLocation</a> :: <a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="../base-4.5.1.0/Data-String.html#t:String">String</a></dt><dd class="doc"><p>The location of the repository. For most <code><a href="Distribution-PackageDescription.html#t:RepoType">RepoType</a></code>s this is a URL.
 This field is required.
</p></dd><dt class="src"><a name="v:repoModule" class="def">repoModule</a> :: <a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="../base-4.5.1.0/Data-String.html#t:String">String</a></dt><dd class="doc"><p><code><a href="Distribution-PackageDescription.html#v:CVS">CVS</a></code> can put multiple &quot;modules&quot; on one server and requires a
 module name in addition to the location to identify a particular repo.
 Logically this is part of the location but unfortunately has to be
 specified separately. This field is required for the <code><a href="Distribution-PackageDescription.html#v:CVS">CVS</a></code> <code><a href="Distribution-PackageDescription.html#t:RepoType">RepoType</a></code> and
 should not be given otherwise.
</p></dd><dt class="src"><a name="v:repoBranch" class="def">repoBranch</a> :: <a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="../base-4.5.1.0/Data-String.html#t:String">String</a></dt><dd class="doc"><p>The name or identifier of the branch, if any. Many source control
 systems have the notion of multiple branches in a repo that exist in the
 same location. For example <code><a href="Distribution-PackageDescription.html#v:Git">Git</a></code> and <code><a href="Distribution-PackageDescription.html#v:CVS">CVS</a></code> use this while systems like
 <code><a href="Distribution-PackageDescription.html#v:Darcs">Darcs</a></code> use different locations for different branches. This field is
 optional but should be used if necessary to identify the sources,
 especially for the <code><a href="Distribution-PackageDescription.html#v:RepoThis">RepoThis</a></code> repo kind.
</p></dd><dt class="src"><a name="v:repoTag" class="def">repoTag</a> :: <a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="../base-4.5.1.0/Data-String.html#t:String">String</a></dt><dd class="doc"><p>The tag identify a particular state of the repository. This should be
 given for the <code><a href="Distribution-PackageDescription.html#v:RepoThis">RepoThis</a></code> repo kind and not for <code><a href="Distribution-PackageDescription.html#v:RepoHead">RepoHead</a></code> kind.
</p></dd><dt class="src"><a name="v:repoSubdir" class="def">repoSubdir</a> :: <a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="../base-4.5.1.0/System-IO.html#t:FilePath">FilePath</a></dt><dd class="doc"><p>Some repositories contain multiple projects in different subdirectories
 This field specifies the subdirectory where this packages sources can be
 found, eg the subdirectory containing the <code>.cabal</code> file. It is interpreted
 relative to the root of the repository. This field is optional. If not
 given the default is &quot;.&quot; ie no subdirectory.
</p></dd></dl><div class="clear"></div></div></td></tr></table></div><div class="subs instances"><p id="control.i:SourceRepo" class="caption collapser" onclick="toggleSection('i:SourceRepo')">Instances</p><div id="section.i:SourceRepo" class="show"><table><tr><td class="src"><a href="../base-4.5.1.0/Data-Eq.html#t:Eq">Eq</a> <a href="Distribution-PackageDescription.html#t:SourceRepo">SourceRepo</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="../base-4.5.1.0/Text-Read.html#t:Read">Read</a> <a href="Distribution-PackageDescription.html#t:SourceRepo">SourceRepo</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="../base-4.5.1.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-PackageDescription.html#t:SourceRepo">SourceRepo</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:RepoKind" class="def">RepoKind</a>  </p><div class="doc"><p>What this repo info is for, what it represents.
</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:RepoHead" class="def">RepoHead</a></td><td class="doc"><p>The repository for the &quot;head&quot; or development version of the project.
 This repo is where we should track the latest development activity or
 the usual repo people should get to contribute patches.
</p></td></tr><tr><td class="src"><a name="v:RepoThis" class="def">RepoThis</a></td><td class="doc"><p>The repository containing the sources for this exact package version
 or release. For this kind of repo a tag should be given to give enough
 information to re-create the exact sources.
</p></td></tr><tr><td class="src"><a name="v:RepoKindUnknown" class="def">RepoKindUnknown</a> <a href="../base-4.5.1.0/Data-String.html#t:String">String</a></td><td class="doc empty">&nbsp;</td></tr></table></div><div class="subs instances"><p id="control.i:RepoKind" class="caption collapser" onclick="toggleSection('i:RepoKind')">Instances</p><div id="section.i:RepoKind" class="show"><table><tr><td class="src"><a href="../base-4.5.1.0/Data-Eq.html#t:Eq">Eq</a> <a href="Distribution-PackageDescription.html#t:RepoKind">RepoKind</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="../base-4.5.1.0/Data-Ord.html#t:Ord">Ord</a> <a href="Distribution-PackageDescription.html#t:RepoKind">RepoKind</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="../base-4.5.1.0/Text-Read.html#t:Read">Read</a> <a href="Distribution-PackageDescription.html#t:RepoKind">RepoKind</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="../base-4.5.1.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-PackageDescription.html#t:RepoKind">RepoKind</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Distribution-Text.html#t:Text">Text</a> <a href="Distribution-PackageDescription.html#t:RepoKind">RepoKind</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:RepoType" class="def">RepoType</a>  </p><div class="doc"><p>An enumeration of common source control systems. The fields used in the
 <code><a href="Distribution-PackageDescription.html#t:SourceRepo">SourceRepo</a></code> depend on the type of repo. The tools and methods used to
 obtain and track the repo depend on the repo type.
</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:Darcs" class="def">Darcs</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:Git" class="def">Git</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:SVN" class="def">SVN</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:CVS" class="def">CVS</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:Mercurial" class="def">Mercurial</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:GnuArch" class="def">GnuArch</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:Bazaar" class="def">Bazaar</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:Monotone" class="def">Monotone</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:OtherRepoType" class="def">OtherRepoType</a> <a href="../base-4.5.1.0/Data-String.html#t:String">String</a></td><td class="doc empty">&nbsp;</td></tr></table></div><div class="subs instances"><p id="control.i:RepoType" class="caption collapser" onclick="toggleSection('i:RepoType')">Instances</p><div id="section.i:RepoType" class="show"><table><tr><td class="src"><a href="../base-4.5.1.0/Data-Eq.html#t:Eq">Eq</a> <a href="Distribution-PackageDescription.html#t:RepoType">RepoType</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="../base-4.5.1.0/Data-Ord.html#t:Ord">Ord</a> <a href="Distribution-PackageDescription.html#t:RepoType">RepoType</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="../base-4.5.1.0/Text-Read.html#t:Read">Read</a> <a href="Distribution-PackageDescription.html#t:RepoType">RepoType</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="../base-4.5.1.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-PackageDescription.html#t:RepoType">RepoType</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Distribution-Text.html#t:Text">Text</a> <a href="Distribution-PackageDescription.html#t:RepoType">RepoType</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><a name="v:knownRepoTypes" class="def">knownRepoTypes</a> :: [<a href="Distribution-PackageDescription.html#t:RepoType">RepoType</a>]</p></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.11.0</p></div></body></html>