Auto-generate a command-line parser for your datatype

Latest on Hackage:1.4.2

See all snapshots optparse-generic appears in

BSD-3-Clause licensed by Gabriel Gonzalez
Maintained by Gabriel439@gmail.com

Module documentation for 1.4.2

This version can be pinned in stack with:optparse-generic-1.4.2@sha256:c019eb6dfc83476b8afb520afae6b3a6f95c8061a745fbe272a8e043cc7b3dc9,1738

This library auto-generates an optparse-applicative-compatible Parser from any data type that derives the Generic interface.

See the documentation in Options.Generic for an example of how to use this library



  • New unwrap function
    • This is the underlying utility that powers unwrap{Record,RecordPure,WithHelp}


  • Fix broken haddocks


  • BREAKING CHANGE: Add support for type-level default values
    • This is a breaking change because the various parse* typeclass methods now take an additional argument to support this feature


  • Export GenericParseRecord and getRecord{,PureWith}


  • BREAKING CHANGE: New metavar method for ParseField class
    • This field simplifies customizing ParseField instances
      • Now you usually only need to override metavar now or possibly also readField, whereas the default behavior for parseField should work more often
    • This is only a breaking change for data types that use the default implementation of ParseField but do not derive Typeable
    • You can migrate existing code that doesn’t compile by just explicitly specifying what the metavar field should be