HORIZON HASKELLDocslts/ghc-9.10.x248f8f02026-10-05Search names, modules, packages, or :: a typeCtrl K

GHC 9.10.3 · lts/ghc-9.10.x · 248f8f0 · 2026-10-05

Moduledistribution-nixpkgs-1.7.1.1Haskell2010

Distribution.Nixpkgs.License

Known licenses in Nix expressions are represented using the attributes defined in nixpkgs' lib/licenses.nix, and unknown licenses are represented as a literal string.

  • 1 type
datadata License
#

The representation for licenses used in Nix derivations. Known licenses are Nix expressions — such as lib.licenses.bsd3 —, so their exact name is not generally known, because the path to lib depends on the context defined in the expression.

In Cabal expressions, for example, the BSD3 license would have to be referred to as self.lib.licenses.bsd3. Other expressions, however, use different paths to the licenses record. Because of that situation, the library cannot provide an abstract data type that encompasses all known licenses.

Instead, the License type just distinguishes references to known and unknown licenses. The difference between the two is in the way they are pretty-printed:

Example3 expressions
putStrLn (prettyShow (Known "lib.license.gpl2"))lib.license.gpl2putStrLn (prettyShow (Unknown (Just "GPL")))"GPL"putStrLn (prettyShow (Unknown Nothing))"unknown"

Note that the Pretty instance definition provides pretty-printing, but no parsing as of now!

Instances7Eq, Ord, Show, Generic, NFData, Pretty, …