Declarative configuration spec for Haskell projects

Version on this page:
LTS Haskell 18.28:
Stackage Nightly 2022-02-07:
Latest on Hackage:

See all snapshots etc appears in

MIT licensed by Roman Gonzalez
Maintained by
This version can be pinned in stack with:etc-,3791


etc gathers configuration values from multiple sources (cli options, OS environment variables, files) using a declarative spec file that defines where this values are to be found and located in a configuration map.

For more information about etc API and how to use it, see the etc homepage


  • Move Config API to typeclass IConfig
  • Add a Setup.hs file to every hachage repo (issue #5)
  • Add example of a project with a config spec embedded in the binary

  • Add support for null values on Default (issue #3)
  • If cli cabal flag is false, have parseConfigSpec return ConfigSpec () instead of ambiguous FromJSON value (issue #3)
  • Bump aeson dependency to <1.3

  • Rename System.Etc.Internal.Util module to System.Etc.Internal.Extra
  • Rename cabal flag from printer to extra
  • Add feature for Environment Variable misspelling reports
  • Add misspelling reports to example projects
  • Improvements on README

  • Various changes to source code to comply with previous resolvers
    • Use Monoid instead of Semigroup
    • Remove unused imports/typeclasses
  • Bump upper limits for aeson and vector
  • Improve typos