harg: Haskell program configuration using higher kinded data

[ bsd3, cli, hkd, library, options, parsing, system ] [ Propose Tags ]

Please see the README on GitHub at https://github.com/alexpeits/harg#readme

[Skip to Readme]
Versions [faq],,,,,,,,
Change log CHANGELOG.md
Dependencies aeson (>=1.4.2 && <1.5), barbies (>=1.1.0 && <1.2), base (>=4.7 && <5), bytestring (>=0.10.8 && <0.11), directory (>=1.3.3 && <1.4), higgledy (>=0.3.0 && <0.4), optparse-applicative (>=0.14.3 && <0.15), split (>=0.2.3 && <0.3), text (>=1.2.3 && <1.3), yaml (>=0.11.0 && <0.12) [details]
License BSD-3-Clause
Copyright Copyright (c) 2020 Alex Peitsinis
Author Alex Peitsinis
Maintainer alexpeitsinis@gmail.com
Category System, CLI, Options, Parsing, HKD
Home page https://github.com/alexpeits/harg
Bug tracker https://github.com/alexpeits/harg/issues
Source repo head: git clone https://github.com/alexpeits/harg
Uploaded by alexpeits at 2020-08-01T22:03:55Z
Distributions NixOS:
Downloads 2115 total (3 in the last 30 days)
Rating 2.0 (votes: 1) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Hackage Matrix CI
Docs uploaded by user
Build status unknown [no reports yet]


[Index] [Quick Jump]


Maintainer's Corner

For package maintainers and hackage trustees

Readme for harg-

[back to package description]

harg :nut_and_bolt:

Build Status Hackage

harg is a library for configuring programs by scanning command line arguments, environment variables, default values and more. Under the hood, it uses a subset of optparse-applicative to expose regular arguments, switch arguments and subcommands. The library relies heavily on the use of higher kinded data (HKD) thanks to the barbies library. Using higgledy also helps reduce boilerplate code significantly.


To find out more, check out the docs or the package page on hackage. There is also an example module that serves as an extensive demonstration of the library.


  • Better errors using optparse-applicative's internals
  • Allow user to pass optparse-applicative preferences
  • Write tests