Cabal-2.0.1.1: doc/API/Cabal/Distribution-Package.html
<!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.Package</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[
window.onload = function () {pageLoad();};
//]]>
</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-2.0.1.1: A framework for packaging Haskell software</p></div><div id="content"><div id="module-header"><table class="info"><tr><th valign="top">Copyright</th><td>Isaac Jones 2003-2004</td></tr><tr><th>License</th><td>BSD3</td></tr><tr><th>Maintainer</th><td>cabal-devel@haskell.org</td></tr><tr><th>Portability</th><td>portable</td></tr><tr><th>Safe Haskell</th><td>None</td></tr><tr><th>Language</th><td>Haskell2010</td></tr></table><p class="caption">Distribution.Package</p></div><div id="description"><p class="caption">Description</p><div class="doc"><p>Defines a package identifier along with a parser and pretty printer for it.
<code><a href="Distribution-Types-PackageId.html#t:PackageIdentifier">PackageIdentifier</a></code>s consist of a name and an exact version. It also defines
a <code><a href="Distribution-Types-Dependency.html#t:Dependency">Dependency</a></code> data type. A dependency is a package name and a version
range, like <code>"foo >= 1.2 && < 2"</code>.</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">module <a href="Distribution-Types-AbiHash.html">Distribution.Types.AbiHash</a></li><li class="src short">module <a href="Distribution-Types-ComponentId.html">Distribution.Types.ComponentId</a></li><li class="src short">module <a href="Distribution-Types-PackageId.html">Distribution.Types.PackageId</a></li><li class="src short">module <a href="Distribution-Types-UnitId.html">Distribution.Types.UnitId</a></li><li class="src short">module <a href="Distribution-Types-Module.html">Distribution.Types.Module</a></li><li class="src short">module <a href="Distribution-Types-PackageName.html">Distribution.Types.PackageName</a></li><li class="src short">module <a href="Distribution-Types-PkgconfigName.html">Distribution.Types.PkgconfigName</a></li><li class="src short">module <a href="Distribution-Types-Dependency.html">Distribution.Types.Dependency</a></li><li class="src short"><span class="keyword">class</span> <a href="#t:Package">Package</a> pkg <span class="keyword">where</span><ul class="subs"></ul></li><li class="src short"><a href="#v:packageName">packageName</a> :: <a href="Distribution-Package.html#t:Package">Package</a> pkg => pkg -> <a href="Distribution-Types-PackageName.html#t:PackageName">PackageName</a></li><li class="src short"><a href="#v:packageVersion">packageVersion</a> :: <a href="Distribution-Package.html#t:Package">Package</a> pkg => pkg -> <a href="Distribution-Version.html#t:Version">Version</a></li><li class="src short"><span class="keyword">class</span> <a href="#t:HasMungedPackageId">HasMungedPackageId</a> pkg <span class="keyword">where</span><ul class="subs"></ul></li><li class="src short"><a href="#v:mungedName-39-">mungedName'</a> :: <a href="Distribution-Package.html#t:HasMungedPackageId">HasMungedPackageId</a> pkg => pkg -> <a href="Distribution-Types-MungedPackageName.html#t:MungedPackageName">MungedPackageName</a></li><li class="src short"><a href="#v:mungedVersion-39-">mungedVersion'</a> :: <a href="Distribution-Package.html#t:HasMungedPackageId">HasMungedPackageId</a> munged => munged -> <a href="Distribution-Version.html#t:Version">Version</a></li><li class="src short"><span class="keyword">class</span> <a href="Distribution-Package.html#t:Package">Package</a> pkg => <a href="#t:HasUnitId">HasUnitId</a> pkg <span class="keyword">where</span><ul class="subs"></ul></li><li class="src short"><a href="#v:installedPackageId">installedPackageId</a> :: <a href="Distribution-Package.html#t:HasUnitId">HasUnitId</a> pkg => pkg -> <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a></li><li class="src short"><span class="keyword">class</span> <a href="Distribution-Package.html#t:HasUnitId">HasUnitId</a> pkg => <a href="#t:PackageInstalled">PackageInstalled</a> pkg <span class="keyword">where</span><ul class="subs"></ul></li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src">module <a href="Distribution-Types-AbiHash.html">Distribution.Types.AbiHash</a></p></div><div class="top"><p class="src">module <a href="Distribution-Types-ComponentId.html">Distribution.Types.ComponentId</a></p></div><div class="top"><p class="src">module <a href="Distribution-Types-PackageId.html">Distribution.Types.PackageId</a></p></div><div class="top"><p class="src">module <a href="Distribution-Types-UnitId.html">Distribution.Types.UnitId</a></p></div><div class="top"><p class="src">module <a href="Distribution-Types-Module.html">Distribution.Types.Module</a></p></div><div class="top"><p class="src">module <a href="Distribution-Types-PackageName.html">Distribution.Types.PackageName</a></p></div><div class="top"><p class="src">module <a href="Distribution-Types-PkgconfigName.html">Distribution.Types.PkgconfigName</a></p></div><div class="top"><p class="src">module <a href="Distribution-Types-Dependency.html">Distribution.Types.Dependency</a></p></div><div class="top"><p class="src"><span class="keyword">class</span> <a id="t:Package" class="def">Package</a> pkg <span class="keyword">where</span> <a href="#t:Package" class="selflink">#</a></p><div class="doc"><p>Class of things that have a <code><a href="Distribution-Types-PackageId.html#t:PackageIdentifier">PackageIdentifier</a></code></p><p>Types in this class are all notions of a package. This allows us to have
different types for the different phases that packages go though, from
simple name/id, package description, configured or installed packages.</p><p>Not all kinds of packages can be uniquely identified by a
<code><a href="Distribution-Types-PackageId.html#t:PackageIdentifier">PackageIdentifier</a></code>. In particular, installed packages cannot, there may be
many installed instances of the same source package.</p></div><div class="subs minimal"><p class="caption">Minimal complete definition</p><p class="src"><a href="Distribution-Package.html#v:packageId">packageId</a></p></div><div class="subs methods"><p class="caption">Methods</p><p class="src"><a id="v:packageId" class="def">packageId</a> :: pkg -> <a href="Distribution-Types-PackageId.html#t:PackageIdentifier">PackageIdentifier</a> <a href="#v:packageId" class="selflink">#</a></p></div><div class="subs instances"><p id="control.i:Package" class="caption collapser" onclick="toggleSection('i:Package')">Instances</p><div id="section.i:Package" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Package:Package:1" class="instance expander" onclick="toggleSection('i:ic:Package:Package:1')"></span> <a href="Distribution-Package.html#t:Package">Package</a> <a href="Distribution-Types-PackageId.html#t:PackageIdentifier">PackageIdentifier</a></span> <a href="#t:Package" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Package:Package:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:packageId">packageId</a> :: <a href="Distribution-Types-PackageId.html#t:PackageIdentifier">PackageIdentifier</a> -> <a href="Distribution-Types-PackageId.html#t:PackageIdentifier">PackageIdentifier</a> <a href="#v:packageId" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Package:Package:2" class="instance expander" onclick="toggleSection('i:ic:Package:Package:2')"></span> <a href="Distribution-Package.html#t:Package">Package</a> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a></span> <a href="#t:Package" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Package:Package:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:packageId">packageId</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-PackageId.html#t:PackageIdentifier">PackageIdentifier</a> <a href="#v:packageId" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Package:Package:3" class="instance expander" onclick="toggleSection('i:ic:Package:Package:3')"></span> <a href="Distribution-Package.html#t:Package">Package</a> <a href="Distribution-Types-GenericPackageDescription.html#t:GenericPackageDescription">GenericPackageDescription</a></span> <a href="#t:Package" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Package:Package:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:packageId">packageId</a> :: <a href="Distribution-Types-GenericPackageDescription.html#t:GenericPackageDescription">GenericPackageDescription</a> -> <a href="Distribution-Types-PackageId.html#t:PackageIdentifier">PackageIdentifier</a> <a href="#v:packageId" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Package:Package:4" class="instance expander" onclick="toggleSection('i:ic:Package:Package:4')"></span> <a href="Distribution-Package.html#t:Package">Package</a> <a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a></span> <a href="#t:Package" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Package:Package:4" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:packageId">packageId</a> :: <a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a> -> <a href="Distribution-Types-PackageId.html#t:PackageIdentifier">PackageIdentifier</a> <a href="#v:packageId" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Package:Package:5" class="instance expander" onclick="toggleSection('i:ic:Package:Package:5')"></span> <a href="Distribution-Package.html#t:Package">Package</a> <a href="Distribution-Backpack-LinkedComponent.html#t:LinkedComponent">LinkedComponent</a></span> <a href="#t:Package" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Package:Package:5" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:packageId">packageId</a> :: <a href="Distribution-Backpack-LinkedComponent.html#t:LinkedComponent">LinkedComponent</a> -> <a href="Distribution-Types-PackageId.html#t:PackageIdentifier">PackageIdentifier</a> <a href="#v:packageId" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Package:Package:6" class="instance expander" onclick="toggleSection('i:ic:Package:Package:6')"></span> <a href="Distribution-Package.html#t:Package">Package</a> (<a href="Distribution-Types-AnnotatedId.html#t:AnnotatedId">AnnotatedId</a> id)</span> <a href="#t:Package" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Package:Package:6" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:packageId">packageId</a> :: <a href="Distribution-Types-AnnotatedId.html#t:AnnotatedId">AnnotatedId</a> id -> <a href="Distribution-Types-PackageId.html#t:PackageIdentifier">PackageIdentifier</a> <a href="#v:packageId" class="selflink">#</a></p></div></div></td></tr></table></div></div></div><div class="top"><p class="src"><a id="v:packageName" class="def">packageName</a> :: <a href="Distribution-Package.html#t:Package">Package</a> pkg => pkg -> <a href="Distribution-Types-PackageName.html#t:PackageName">PackageName</a> <a href="#v:packageName" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:packageVersion" class="def">packageVersion</a> :: <a href="Distribution-Package.html#t:Package">Package</a> pkg => pkg -> <a href="Distribution-Version.html#t:Version">Version</a> <a href="#v:packageVersion" class="selflink">#</a></p></div><div class="top"><p class="src"><span class="keyword">class</span> <a id="t:HasMungedPackageId" class="def">HasMungedPackageId</a> pkg <span class="keyword">where</span> <a href="#t:HasMungedPackageId" class="selflink">#</a></p><div class="subs minimal"><p class="caption">Minimal complete definition</p><p class="src"><a href="Distribution-Package.html#v:mungedId">mungedId</a></p></div><div class="subs methods"><p class="caption">Methods</p><p class="src"><a id="v:mungedId" class="def">mungedId</a> :: pkg -> <a href="Distribution-Types-MungedPackageId.html#t:MungedPackageId">MungedPackageId</a> <a href="#v:mungedId" class="selflink">#</a></p></div><div class="subs instances"><p id="control.i:HasMungedPackageId" class="caption collapser" onclick="toggleSection('i:HasMungedPackageId')">Instances</p><div id="section.i:HasMungedPackageId" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:HasMungedPackageId:HasMungedPackageId:1" class="instance expander" onclick="toggleSection('i:ic:HasMungedPackageId:HasMungedPackageId:1')"></span> <a href="Distribution-Package.html#t:HasMungedPackageId">HasMungedPackageId</a> <a href="Distribution-Types-MungedPackageId.html#t:MungedPackageId">MungedPackageId</a></span> <a href="#t:HasMungedPackageId" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:HasMungedPackageId:HasMungedPackageId:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mungedId">mungedId</a> :: <a href="Distribution-Types-MungedPackageId.html#t:MungedPackageId">MungedPackageId</a> -> <a href="Distribution-Types-MungedPackageId.html#t:MungedPackageId">MungedPackageId</a> <a href="#v:mungedId" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:HasMungedPackageId:HasMungedPackageId:2" class="instance expander" onclick="toggleSection('i:ic:HasMungedPackageId:HasMungedPackageId:2')"></span> <a href="Distribution-Package.html#t:HasMungedPackageId">HasMungedPackageId</a> <a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a></span> <a href="#t:HasMungedPackageId" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:HasMungedPackageId:HasMungedPackageId:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mungedId">mungedId</a> :: <a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a> -> <a href="Distribution-Types-MungedPackageId.html#t:MungedPackageId">MungedPackageId</a> <a href="#v:mungedId" class="selflink">#</a></p></div></div></td></tr></table></div></div></div><div class="top"><p class="src"><a id="v:mungedName-39-" class="def">mungedName'</a> :: <a href="Distribution-Package.html#t:HasMungedPackageId">HasMungedPackageId</a> pkg => pkg -> <a href="Distribution-Types-MungedPackageName.html#t:MungedPackageName">MungedPackageName</a> <a href="#v:mungedName-39-" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:mungedVersion-39-" class="def">mungedVersion'</a> :: <a href="Distribution-Package.html#t:HasMungedPackageId">HasMungedPackageId</a> munged => munged -> <a href="Distribution-Version.html#t:Version">Version</a> <a href="#v:mungedVersion-39-" class="selflink">#</a></p></div><div class="top"><p class="src"><span class="keyword">class</span> <a href="Distribution-Package.html#t:Package">Package</a> pkg => <a id="t:HasUnitId" class="def">HasUnitId</a> pkg <span class="keyword">where</span> <a href="#t:HasUnitId" class="selflink">#</a></p><div class="doc"><p>Packages that have an installed unit ID</p></div><div class="subs minimal"><p class="caption">Minimal complete definition</p><p class="src"><a href="Distribution-Package.html#v:installedUnitId">installedUnitId</a></p></div><div class="subs methods"><p class="caption">Methods</p><p class="src"><a id="v:installedUnitId" class="def">installedUnitId</a> :: pkg -> <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a> <a href="#v:installedUnitId" class="selflink">#</a></p></div><div class="subs instances"><p id="control.i:HasUnitId" class="caption collapser" onclick="toggleSection('i:HasUnitId')">Instances</p><div id="section.i:HasUnitId" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:HasUnitId:HasUnitId:1" class="instance expander" onclick="toggleSection('i:ic:HasUnitId:HasUnitId:1')"></span> <a href="Distribution-Package.html#t:HasUnitId">HasUnitId</a> <a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a></span> <a href="#t:HasUnitId" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:HasUnitId:HasUnitId:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:installedUnitId">installedUnitId</a> :: <a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a> -> <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a> <a href="#v:installedUnitId" class="selflink">#</a></p></div></div></td></tr></table></div></div></div><div class="top"><p class="src"><a id="v:installedPackageId" class="def">installedPackageId</a> :: <a href="Distribution-Package.html#t:HasUnitId">HasUnitId</a> pkg => pkg -> <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a> <a href="#v:installedPackageId" class="selflink">#</a></p><div class="doc"><div class="warning"><p>Deprecated: Use installedUnitId instead</p></div><p>Compatibility wrapper for Cabal pre-1.24.</p></div></div><div class="top"><p class="src"><span class="keyword">class</span> <a href="Distribution-Package.html#t:HasUnitId">HasUnitId</a> pkg => <a id="t:PackageInstalled" class="def">PackageInstalled</a> pkg <span class="keyword">where</span> <a href="#t:PackageInstalled" class="selflink">#</a></p><div class="doc"><p>Class of installed packages.</p><p>The primary data type which is an instance of this package is
<code>InstalledPackageInfo</code>, but when we are doing install plans in Cabal install
we may have other, installed package-like things which contain more metadata.
Installed packages have exact dependencies <code><a href="Distribution-Package.html#v:installedDepends">installedDepends</a></code>.</p></div><div class="subs minimal"><p class="caption">Minimal complete definition</p><p class="src"><a href="Distribution-Package.html#v:installedDepends">installedDepends</a></p></div><div class="subs methods"><p class="caption">Methods</p><p class="src"><a id="v:installedDepends" class="def">installedDepends</a> :: pkg -> [<a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a>] <a href="#v:installedDepends" class="selflink">#</a></p></div><div class="subs instances"><p id="control.i:PackageInstalled" class="caption collapser" onclick="toggleSection('i:PackageInstalled')">Instances</p><div id="section.i:PackageInstalled" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:PackageInstalled:PackageInstalled:1" class="instance expander" onclick="toggleSection('i:ic:PackageInstalled:PackageInstalled:1')"></span> <a href="Distribution-Package.html#t:PackageInstalled">PackageInstalled</a> <a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a></span> <a href="#t:PackageInstalled" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:PackageInstalled:PackageInstalled:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:installedDepends">installedDepends</a> :: <a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a> -> [<a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a>] <a href="#v:installedDepends" class="selflink">#</a></p></div></div></td></tr></table></div></div></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>