haskell@gentoo.org Gentoo Haskell 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 &#x20; &#x7b; optMessage :: String &#x20; , optQuiet :: Bool &#x20; &#x7d; instance 'Options' MainOptions where &#x20; defineOptions = pure MainOptions &#x20; \<*\> simpleOption \"message\" \"Hello world!\" &#x20; \"A message to show the user.\" &#x20; \<*\> simpleOption \"quiet\" False &#x20; \"Whether to be quiet.\" main :: IO () main = runCommand $ \\opts args -> do &#x20; if optQuiet opts &#x20; then return () &#x20; 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