ghc-options
A powerful and easy-to-use command-line option parser
The 'options' package lets library and application developers easily work with command-line options. The following example is a full program that can accept two options, '--message' and '--quiet': ' import Control.Applicative import Options data MainOptions = MainOptions { optMessage :: String  , optQuiet :: Bool } instance 'Options' MainOptions where  defineOptions = pure MainOptions <*>simpleOption "message" "Hello world!"  "A message to show the user." <*>simpleOption "quiet" False  "Whether to be quiet." main :: IO () main = runCommand $ \opts args ->do  if optQuiet opts  then return ()  else putStrLn (optMessage opts) '>$ ./hello>Hello world!>$ ./hello --message='ciao mondo'>ciao mondo>$ ./hello --quiet>$ In addition, this library will automatically create documentation options such as '--help' and '--help-all':>$ ./hello --help>Help Options:>-h, --help>Show option summary.>--help-all>Show all help options.>>Application Options:>--message :: text>A message to show the user.>default: "Hello world!">--quiet :: bool>Whether to be quiet.>default: false.
MIT