Path to a configuration file, either a singleton project root, or a longer
list representing a path to an import. The path is a non-empty list that we
build up by prepending relative imports with consProjectConfigPath.
An import can be a URI, such as a stackage cabal.config, but we do not support URIs in the middle of the path, URIs that import other URIs, or URIs that import local files.
List elements are relative to each other but once canonicalized, elements are relative to the directory of the project root.
Constructors
Instances9Eq, Ord, Show, Generic, NFData, Binary, …
Eq ProjectConfigPathDefined in cabal-install-solver-3.18.1.0 · Distribution.Solver.Types.ProjectConfigPathOrd ProjectConfigPathDefined in cabal-install-solver-3.18.1.0 · Distribution.Solver.Types.ProjectConfigPathSorts URIs after local file paths and longer file paths after shorter ones as measured by the number of path segments. If still equal, then sorting is lexical.
The project itself, a single element root path, compared to any of the configuration paths it imports, should always sort first. Comparing one project root path against another is done lexically.
For comparison purposes, path separators are normalized to the
buildOSplatform's path separator.Example3 expressions let abFwd = ProjectConfigPath $ "a/b.config" :| []let abBwd = ProjectConfigPath $ "a\\b.config" :| []compare abFwd abBwdEQ
Example3 expressions let abc = ProjectConfigPath $ "a/b/c.config" :| []let yz = ProjectConfigPath $ "y/z.config" :| [](compare abc yz, let xs = [abc, yz] in xs == sort xs)(GT,False)
Example3 expressions let abc = ProjectConfigPath $ "C.config" :| ["B.config", "A.project"]let bcd = ProjectConfigPath $ "D.config" :| ["C.config", "B.project"](compare abc bcd, let xs = [abc, bcd] in xs == sort xs)(LT,True)
Example3 expressions let abc = ProjectConfigPath $ "C.config" :| ["B.config", "A.project"]let yz = ProjectConfigPath $ "Z.config" :| ["Y.project"](compare abc yz, let xs = [abc, yz] in xs == sort xs)(GT,False)
Show ProjectConfigPathDefined in cabal-install-solver-3.18.1.0 · Distribution.Solver.Types.ProjectConfigPathGeneric ProjectConfigPathDefined in cabal-install-solver-3.18.1.0 · Distribution.Solver.Types.ProjectConfigPathNFData ProjectConfigPathDefined in cabal-install-solver-3.18.1.0 · Distribution.Solver.Types.ProjectConfigPathBinary ProjectConfigPathDefined in cabal-install-solver-3.18.1.0 · Distribution.Solver.Types.ProjectConfigPathPretty ProjectConfigPathDefined in cabal-install-solver-3.18.1.0 · Distribution.Solver.Types.ProjectConfigPathStructured ProjectConfigPathDefined in cabal-install-solver-3.18.1.0 · Distribution.Solver.Types.ProjectConfigPathtype Rep ProjectConfigPath = D1 ('MetaDataDefined in cabal-install-solver-3.18.1.0 · Distribution.Solver.Types.ProjectConfigPath"ProjectConfigPath"
"Distribution.Solver.Types.ProjectConfigPath"
"cabal-install-solver-3.18.1.0-EA8HGQDsQD9JqgSSc8jwkb"
'True) (C1 ('MetaCons"ProjectConfigPath"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (NonEmpty FilePath))))