Cabal-3.0.0.0: doc/API/Cabal/Distribution-Backpack-ModuleShape.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.Backpack.ModuleShape</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><link rel="stylesheet" type="text/css" href="quick-jump.css" /><script src="haddock-bundle.min.js" async="async" 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></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-3.0.0.0: A framework for packaging Haskell software</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Safe Haskell</th><td>None</td></tr><tr><th>Language</th><td>Haskell2010</td></tr></table><p class="caption">Distribution.Backpack.ModuleShape</p></div><div id="table-of-contents"><p class="caption">Contents</p><ul><li><a href="#g:1">Module shapes</a></li></ul></div><div id="description"><p class="caption">Description</p><div class="doc"><p>See <a href="https://github.com/ezyang/ghc-proposals/blob/backpack/proposals/0000-backpack.rst">https://github.com/ezyang/ghc-proposals/blob/backpack/proposals/0000-backpack.rst</a></p></div></div><div id="synopsis"><details id="syn"><summary>Synopsis</summary><ul class="details-toggle" data-details-id="syn"><li class="src short"><span class="keyword">data</span> <a href="#t:ModuleShape">ModuleShape</a> = <a href="#v:ModuleShape">ModuleShape</a> {<ul class="subs"><li><a href="#v:modShapeProvides">modShapeProvides</a> :: <a href="Distribution-Backpack.html#t:OpenModuleSubst" title="Distribution.Backpack">OpenModuleSubst</a></li><li><a href="#v:modShapeRequires">modShapeRequires</a> :: <a href="file:///opt/ghc/8.6.5/share/doc/ghc-8.6.5/html/libraries/containers-0.6.0.1/Data-Set.html#t:Set" title="Data.Set">Set</a> <a href="Distribution-ModuleName.html#t:ModuleName" title="Distribution.ModuleName">ModuleName</a></li></ul>}</li><li class="src short"><a href="#v:emptyModuleShape">emptyModuleShape</a> :: <a href="Distribution-Backpack-ModuleShape.html#t:ModuleShape" title="Distribution.Backpack.ModuleShape">ModuleShape</a></li><li class="src short"><a href="#v:shapeInstalledPackage">shapeInstalledPackage</a> :: <a href="Distribution-Types-InstalledPackageInfo.html#t:InstalledPackageInfo" title="Distribution.Types.InstalledPackageInfo">InstalledPackageInfo</a> -> <a href="Distribution-Backpack-ModuleShape.html#t:ModuleShape" title="Distribution.Backpack.ModuleShape">ModuleShape</a></li></ul></details></div><div id="interface"><a href="#g:1" id="g:1"><h1>Module shapes</h1></a><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:ModuleShape" class="def">ModuleShape</a> <a href="#t:ModuleShape" class="selflink">#</a></p><div class="doc"><p>A <code><a href="Distribution-Backpack-ModuleShape.html#t:ModuleShape" title="Distribution.Backpack.ModuleShape">ModuleShape</a></code> describes the provisions and requirements of
a library. We can extract a <code><a href="Distribution-Backpack-ModuleShape.html#t:ModuleShape" title="Distribution.Backpack.ModuleShape">ModuleShape</a></code> from an
<code><a href="Distribution-Types-InstalledPackageInfo.html#t:InstalledPackageInfo" title="Distribution.Types.InstalledPackageInfo">InstalledPackageInfo</a></code>.</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:ModuleShape" class="def">ModuleShape</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><ul><li><dfn class="src"><a id="v:modShapeProvides" class="def">modShapeProvides</a> :: <a href="Distribution-Backpack.html#t:OpenModuleSubst" title="Distribution.Backpack">OpenModuleSubst</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:modShapeRequires" class="def">modShapeRequires</a> :: <a href="file:///opt/ghc/8.6.5/share/doc/ghc-8.6.5/html/libraries/containers-0.6.0.1/Data-Set.html#t:Set" title="Data.Set">Set</a> <a href="Distribution-ModuleName.html#t:ModuleName" title="Distribution.ModuleName">ModuleName</a></dfn><div class="doc empty"> </div></li></ul></div></td></tr></table></div><div class="subs instances"><details id="i:ModuleShape" open="open"><summary>Instances</summary><table><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:ModuleShape:Eq:1"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Eq" title="Distribution.Compat.Prelude.Internal">Eq</a> <a href="Distribution-Backpack-ModuleShape.html#t:ModuleShape" title="Distribution.Backpack.ModuleShape">ModuleShape</a></span> <a href="#t:ModuleShape" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><details id="i:id:ModuleShape:Eq:1"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="Distribution-Backpack-ModuleShape.html">Distribution.Backpack.ModuleShape</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="Distribution-Backpack-ModuleShape.html#t:ModuleShape" title="Distribution.Backpack.ModuleShape">ModuleShape</a> -> <a href="Distribution-Backpack-ModuleShape.html#t:ModuleShape" title="Distribution.Backpack.ModuleShape">ModuleShape</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:Bool" title="Distribution.Compat.Prelude.Internal">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="Distribution-Backpack-ModuleShape.html#t:ModuleShape" title="Distribution.Backpack.ModuleShape">ModuleShape</a> -> <a href="Distribution-Backpack-ModuleShape.html#t:ModuleShape" title="Distribution.Backpack.ModuleShape">ModuleShape</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:Bool" title="Distribution.Compat.Prelude.Internal">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></details></td></tr><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:ModuleShape:Show:2"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Show" title="Distribution.Compat.Prelude.Internal">Show</a> <a href="Distribution-Backpack-ModuleShape.html#t:ModuleShape" title="Distribution.Backpack.ModuleShape">ModuleShape</a></span> <a href="#t:ModuleShape" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><details id="i:id:ModuleShape:Show:2"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="Distribution-Backpack-ModuleShape.html">Distribution.Backpack.ModuleShape</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Int" title="Distribution.Compat.Prelude.Internal">Int</a> -> <a href="Distribution-Backpack-ModuleShape.html#t:ModuleShape" title="Distribution.Backpack.ModuleShape">ModuleShape</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:ShowS" title="Distribution.Compat.Prelude.Internal">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-Backpack-ModuleShape.html#t:ModuleShape" title="Distribution.Backpack.ModuleShape">ModuleShape</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:String" title="Distribution.Compat.Prelude.Internal">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-Backpack-ModuleShape.html#t:ModuleShape" title="Distribution.Backpack.ModuleShape">ModuleShape</a>] -> <a href="Distribution-Compat-Prelude-Internal.html#t:ShowS" title="Distribution.Compat.Prelude.Internal">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></details></td></tr><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:ModuleShape:Generic:3"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Generic" title="Distribution.Compat.Prelude.Internal">Generic</a> <a href="Distribution-Backpack-ModuleShape.html#t:ModuleShape" title="Distribution.Backpack.ModuleShape">ModuleShape</a></span> <a href="#t:ModuleShape" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><details id="i:id:ModuleShape:Generic:3"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="Distribution-Backpack-ModuleShape.html">Distribution.Backpack.ModuleShape</a></p> <div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.6.5/share/doc/ghc-8.6.5/html/libraries/base-4.12.0.0/GHC-Generics.html#t:Rep" title="GHC.Generics">Rep</a> <a href="Distribution-Backpack-ModuleShape.html#t:ModuleShape" title="Distribution.Backpack.ModuleShape">ModuleShape</a> :: <a href="file:///opt/ghc/8.6.5/share/doc/ghc-8.6.5/html/libraries/base-4.12.0.0/Data-Kind.html#t:Type" title="Data.Kind">Type</a> -> <a href="file:///opt/ghc/8.6.5/share/doc/ghc-8.6.5/html/libraries/base-4.12.0.0/Data-Kind.html#t:Type" title="Data.Kind">Type</a> <a href="#t:Rep" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:from">from</a> :: <a href="Distribution-Backpack-ModuleShape.html#t:ModuleShape" title="Distribution.Backpack.ModuleShape">ModuleShape</a> -> <a href="file:///opt/ghc/8.6.5/share/doc/ghc-8.6.5/html/libraries/base-4.12.0.0/GHC-Generics.html#t:Rep" title="GHC.Generics">Rep</a> <a href="Distribution-Backpack-ModuleShape.html#t:ModuleShape" title="Distribution.Backpack.ModuleShape">ModuleShape</a> x <a href="#v:from" class="selflink">#</a></p><p class="src"><a href="#v:to">to</a> :: <a href="file:///opt/ghc/8.6.5/share/doc/ghc-8.6.5/html/libraries/base-4.12.0.0/GHC-Generics.html#t:Rep" title="GHC.Generics">Rep</a> <a href="Distribution-Backpack-ModuleShape.html#t:ModuleShape" title="Distribution.Backpack.ModuleShape">ModuleShape</a> x -> <a href="Distribution-Backpack-ModuleShape.html#t:ModuleShape" title="Distribution.Backpack.ModuleShape">ModuleShape</a> <a href="#v:to" class="selflink">#</a></p></div></details></td></tr><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:ModuleShape:Binary:4"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Binary" title="Distribution.Compat.Prelude.Internal">Binary</a> <a href="Distribution-Backpack-ModuleShape.html#t:ModuleShape" title="Distribution.Backpack.ModuleShape">ModuleShape</a></span> <a href="#t:ModuleShape" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><details id="i:id:ModuleShape:Binary:4"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="Distribution-Backpack-ModuleShape.html">Distribution.Backpack.ModuleShape</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:put">put</a> :: <a href="Distribution-Backpack-ModuleShape.html#t:ModuleShape" title="Distribution.Backpack.ModuleShape">ModuleShape</a> -> <a href="file:///opt/ghc/8.6.5/share/doc/ghc-8.6.5/html/libraries/binary-0.8.6.0/Data-Binary-Put.html#t:Put" title="Data.Binary.Put">Put</a> <a href="#v:put" class="selflink">#</a></p><p class="src"><a href="#v:get">get</a> :: <a href="file:///opt/ghc/8.6.5/share/doc/ghc-8.6.5/html/libraries/binary-0.8.6.0/Data-Binary-Get-Internal.html#t:Get" title="Data.Binary.Get.Internal">Get</a> <a href="Distribution-Backpack-ModuleShape.html#t:ModuleShape" title="Distribution.Backpack.ModuleShape">ModuleShape</a> <a href="#v:get" class="selflink">#</a></p><p class="src"><a href="#v:putList">putList</a> :: [<a href="Distribution-Backpack-ModuleShape.html#t:ModuleShape" title="Distribution.Backpack.ModuleShape">ModuleShape</a>] -> <a href="file:///opt/ghc/8.6.5/share/doc/ghc-8.6.5/html/libraries/binary-0.8.6.0/Data-Binary-Put.html#t:Put" title="Data.Binary.Put">Put</a> <a href="#v:putList" class="selflink">#</a></p></div></details></td></tr><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:ModuleShape:ModSubst:5"></span> <a href="Distribution-Backpack-ModSubst.html#t:ModSubst" title="Distribution.Backpack.ModSubst">ModSubst</a> <a href="Distribution-Backpack-ModuleShape.html#t:ModuleShape" title="Distribution.Backpack.ModuleShape">ModuleShape</a></span> <a href="#t:ModuleShape" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><details id="i:id:ModuleShape:ModSubst:5"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="Distribution-Backpack-ModuleShape.html">Distribution.Backpack.ModuleShape</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:modSubst">modSubst</a> :: <a href="Distribution-Backpack.html#t:OpenModuleSubst" title="Distribution.Backpack">OpenModuleSubst</a> -> <a href="Distribution-Backpack-ModuleShape.html#t:ModuleShape" title="Distribution.Backpack.ModuleShape">ModuleShape</a> -> <a href="Distribution-Backpack-ModuleShape.html#t:ModuleShape" title="Distribution.Backpack.ModuleShape">ModuleShape</a> <a href="#v:modSubst" class="selflink">#</a></p></div></details></td></tr><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:ModuleShape:Rep:6"></span> <span class="keyword">type</span> <a href="file:///opt/ghc/8.6.5/share/doc/ghc-8.6.5/html/libraries/base-4.12.0.0/GHC-Generics.html#t:Rep" title="GHC.Generics">Rep</a> <a href="Distribution-Backpack-ModuleShape.html#t:ModuleShape" title="Distribution.Backpack.ModuleShape">ModuleShape</a></span> <a href="#t:ModuleShape" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><details id="i:id:ModuleShape:Rep:6"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="Distribution-Backpack-ModuleShape.html">Distribution.Backpack.ModuleShape</a></p> <div class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.6.5/share/doc/ghc-8.6.5/html/libraries/base-4.12.0.0/GHC-Generics.html#t:Rep" title="GHC.Generics">Rep</a> <a href="Distribution-Backpack-ModuleShape.html#t:ModuleShape" title="Distribution.Backpack.ModuleShape">ModuleShape</a> = <a href="file:///opt/ghc/8.6.5/share/doc/ghc-8.6.5/html/libraries/base-4.12.0.0/GHC-Generics.html#t:D1" title="GHC.Generics">D1</a> (<a href="file:///opt/ghc/8.6.5/share/doc/ghc-8.6.5/html/libraries/base-4.12.0.0/GHC-Generics.html#v:MetaData" title="GHC.Generics">MetaData</a> "ModuleShape" "Distribution.Backpack.ModuleShape" "Cabal-3.0.0.0-CD1INMNwoxXIKVgcu1nec5" <a href="Distribution-Compat-Prelude-Internal.html#v:False" title="Distribution.Compat.Prelude.Internal">False</a>) (<a href="file:///opt/ghc/8.6.5/share/doc/ghc-8.6.5/html/libraries/base-4.12.0.0/GHC-Generics.html#t:C1" title="GHC.Generics">C1</a> (<a href="file:///opt/ghc/8.6.5/share/doc/ghc-8.6.5/html/libraries/base-4.12.0.0/GHC-Generics.html#v:MetaCons" title="GHC.Generics">MetaCons</a> "ModuleShape" <a href="file:///opt/ghc/8.6.5/share/doc/ghc-8.6.5/html/libraries/base-4.12.0.0/GHC-Generics.html#v:PrefixI" title="GHC.Generics">PrefixI</a> <a href="Distribution-Compat-Prelude-Internal.html#v:True" title="Distribution.Compat.Prelude.Internal">True</a>) (<a href="file:///opt/ghc/8.6.5/share/doc/ghc-8.6.5/html/libraries/base-4.12.0.0/GHC-Generics.html#t:S1" title="GHC.Generics">S1</a> (<a href="file:///opt/ghc/8.6.5/share/doc/ghc-8.6.5/html/libraries/base-4.12.0.0/GHC-Generics.html#v:MetaSel" title="GHC.Generics">MetaSel</a> (<a href="Distribution-Compat-Prelude-Internal.html#v:Just" title="Distribution.Compat.Prelude.Internal">Just</a> "modShapeProvides") <a href="file:///opt/ghc/8.6.5/share/doc/ghc-8.6.5/html/libraries/base-4.12.0.0/GHC-Generics.html#v:NoSourceUnpackedness" title="GHC.Generics">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.6.5/share/doc/ghc-8.6.5/html/libraries/base-4.12.0.0/GHC-Generics.html#v:NoSourceStrictness" title="GHC.Generics">NoSourceStrictness</a> <a href="file:///opt/ghc/8.6.5/share/doc/ghc-8.6.5/html/libraries/base-4.12.0.0/GHC-Generics.html#v:DecidedLazy" title="GHC.Generics">DecidedLazy</a>) (<a href="file:///opt/ghc/8.6.5/share/doc/ghc-8.6.5/html/libraries/base-4.12.0.0/GHC-Generics.html#t:Rec0" title="GHC.Generics">Rec0</a> <a href="Distribution-Backpack.html#t:OpenModuleSubst" title="Distribution.Backpack">OpenModuleSubst</a>) <a href="file:///opt/ghc/8.6.5/share/doc/ghc-8.6.5/html/libraries/base-4.12.0.0/GHC-Generics.html#t::-42-:" title="GHC.Generics">:*:</a> <a href="file:///opt/ghc/8.6.5/share/doc/ghc-8.6.5/html/libraries/base-4.12.0.0/GHC-Generics.html#t:S1" title="GHC.Generics">S1</a> (<a href="file:///opt/ghc/8.6.5/share/doc/ghc-8.6.5/html/libraries/base-4.12.0.0/GHC-Generics.html#v:MetaSel" title="GHC.Generics">MetaSel</a> (<a href="Distribution-Compat-Prelude-Internal.html#v:Just" title="Distribution.Compat.Prelude.Internal">Just</a> "modShapeRequires") <a href="file:///opt/ghc/8.6.5/share/doc/ghc-8.6.5/html/libraries/base-4.12.0.0/GHC-Generics.html#v:NoSourceUnpackedness" title="GHC.Generics">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.6.5/share/doc/ghc-8.6.5/html/libraries/base-4.12.0.0/GHC-Generics.html#v:NoSourceStrictness" title="GHC.Generics">NoSourceStrictness</a> <a href="file:///opt/ghc/8.6.5/share/doc/ghc-8.6.5/html/libraries/base-4.12.0.0/GHC-Generics.html#v:DecidedLazy" title="GHC.Generics">DecidedLazy</a>) (<a href="file:///opt/ghc/8.6.5/share/doc/ghc-8.6.5/html/libraries/base-4.12.0.0/GHC-Generics.html#t:Rec0" title="GHC.Generics">Rec0</a> (<a href="file:///opt/ghc/8.6.5/share/doc/ghc-8.6.5/html/libraries/containers-0.6.0.1/Data-Set.html#t:Set" title="Data.Set">Set</a> <a href="Distribution-ModuleName.html#t:ModuleName" title="Distribution.ModuleName">ModuleName</a>))))</div></details></td></tr></table></details></div></div><div class="top"><p class="src"><a id="v:emptyModuleShape" class="def">emptyModuleShape</a> :: <a href="Distribution-Backpack-ModuleShape.html#t:ModuleShape" title="Distribution.Backpack.ModuleShape">ModuleShape</a> <a href="#v:emptyModuleShape" class="selflink">#</a></p><div class="doc"><p>The default module shape, with no provisions and no requirements.</p></div></div><div class="top"><p class="src"><a id="v:shapeInstalledPackage" class="def">shapeInstalledPackage</a> :: <a href="Distribution-Types-InstalledPackageInfo.html#t:InstalledPackageInfo" title="Distribution.Types.InstalledPackageInfo">InstalledPackageInfo</a> -> <a href="Distribution-Backpack-ModuleShape.html#t:ModuleShape" title="Distribution.Backpack.ModuleShape">ModuleShape</a> <a href="#v:shapeInstalledPackage" class="selflink">#</a></p></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.22.0</p></div></body></html>