commander-cli: A command line argument/option parser library built around a monadic metaphor

[ cli, library, mit, options, parsing, program, system ] [ Propose Tags ]

A command line argument/option parser library built around a monadic metaphor.

[Skip to Readme]
Versions [faq],,,,,,,,,,,,,,,,,,,
Change log
Dependencies base (>=4.12 && <5), bytestring (>=0.8 && <1), commander-cli, directory (>=1.3 && <2), mtl (>=2.2 && <3), process (>=1.6 && <2), text (>=1.2 && <2), unordered-containers (>=0.2 && <1) [details]
License MIT
Copyright 2019 Samuel Schlesinger
Author Samuel Schlesinger
Category System, CLI, Options, Parsing
Home page
Bug tracker
Uploaded by sgschlesinger at 2020-06-16T14:50:27Z
Distributions NixOS:
Executables task-manager
Downloads 2014 total (732 in the last 30 days)
Rating 2.0 (votes: 1) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Hackage Matrix CI
Docs available [build log]
Last success reported on 2020-06-16 [all 1 reports]


[Index] [Quick Jump]


Maintainer's Corner

For package maintainers and hackage trustees

Readme for commander-cli-

[back to package description]

Commander CLI

Hackage Build Status

This library is meant to allow Haskell programs to quickly and easily construct command line interfaces which are easy to use, especially as a Haskell user. To begin, I suggest viewing the task-manager application which comes with this repository. The library is based around the following classes:

class Unrender r where
  unrender :: Text -> Maybe r

This class is what you will use to define the parsing of a type from text and can use any parsing library or whatever you want. Next, we have the class

class HasProgram p where
  data ProgramT p m a
  run :: ProgramT p IO a -> CommanderT State IO a
  hoist :: (forall x. m x -> n x) -> ProgramT p m a -> ProgramT p n a
  invocations :: [Text]

Instances of this class will define a syntactic element, a new instance of the data family ProgramT, as well as its semantics in terms of the CommanderT monad, which is a backtracking monad based on a metaphor to military commanders which retreats upon defeat.