HORIZON HASKELLDocslts/ghc-10.0.x77a86622026-10-31Search packagesCtrl K
Theme: |

GHC 10.0.0.20260917 · lts/ghc-10.0.x · 77a8662 · 2026-10-31

Skeletons

Parsing

Legacy Configuration

We already have parsers/pretty-printers for almost all the fields in the project config file, but they're in terms of the types used for the command line flags for Setup.hs or cabal commands. We don't want to redefine them all, at least not yet so for the moment we use the parsers at the old types and use conversion functions.

Ultimately if/when this project-based approach becomes the default then we can redefine the parsers directly for the new types.

Instances5Show, Generic, Semigroup, Monoid, Rep

Conversions

Convert from the types currently used for the user-wide Cabal config file into the ProjectConfig type.

Only a subset of the ProjectConfig can be represented in the user-wide config. In particular it does not include packages that are in the project, and it also doesn't support package-specific configuration (only configuration that applies to all packages).

Internals

These functions are exposed just for tests.

This is a bit tricky since it has to cover globs which have embedded , chars. But we don't just want to parse strictly as a glob since we want to allow http urls which don't parse as globs, and possibly some system-dependent file paths. So we parse fairly liberally as a token, but we allow , inside matched {} braces.