HORIZON HASKELLDocslts/ghc-10.0.xc62e4de2026-10-19Search names, modules, packages, or :: a typeCtrl K

GHC 10.0.0.20260917 · lts/ghc-10.0.x · c62e4de · 2026-10-19

Basic store path types

10 declarations
newtypenewtype StoreDir
#

The path to the store dir

Many operations need to be parameterized with this, since store paths do not know their own store dir by design.

Constructors

Instances7Eq, Ord, Show, Generic, Hashable, Default, …
datadata StorePath
#

A path in a Nix store.

From the Nix thesis: A store path is the full path of a store object. It has the following anatomy: storeDir/hashPart-name.

The store directory is *not* included, and must be known from the context. This matches modern C++ Nix, and also represents the fact that store paths for different store directories cannot be mixed.

Instances6Eq, Ord, Show, Generic, Hashable, Rep

The (typically human readable) name of the path. For packages this is typically the package name and version (e.g. hello-1.2.3).

newtypenewtype StorePathName
#

The name portion of a Nix path.

unStorePathName must only contain a-zA-Z0-9+._?=-, can't start with a -, and must have at least one character (i.e. it must match storePathNameRegex).

Instances6Eq, Ord, Show, Generic, Hashable, Rep
newtypenewtype StorePathHashPart
#

The hash algorithm used for store path hashes.

Instances6Eq, Ord, Show, Generic, Hashable, Rep

Manipulating StorePathName

3 declarations
datadata InvalidNameError
#

Reason why a path name or output name is not valid

Instances6Eq, Ord, Show, Generic, Hashable, Rep

Reason why a path is not valid

1 declaration
datadata InvalidPathError
#
Instances6Eq, Ord, Show, Generic, Hashable, Rep

Rendering out StorePaths

5 declarations

Parsing StorePaths

3 declarations

Utilities for tests

2 declarations