úÎ!J†EQ      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPIA set of combinators for constructing and executing command line programs(c) Samuel Schlesinger 2020MITsgschlesinger@gmail.com experimentalPOSIX, WindowsNone"#%&'-.14;<=?HMSUVXkCf commander-cliDThis is the workhorse of the library. Basically, it allows you to  your Q& representation of your program as a   and pump the { through it until you've processed all of the arguments, options, and flags that you have specified must be used in your Q. You can think of Q4 as a useful syntax for command line programs, but  @ as the semantics of that program. We also give the ability to  Qj actions between monads if you can uniformly turn computations in one into another. All of the different U are also stored to give a primitive form of automatically generated documentation. commander-cli This is the  that the  m library uses for its role in this library. It is not inlined, because that does nothing but obfuscate the   monad. It consists of , , and .  commander-cliA  M action is a metaphor for a military commander. At each step, we have a new  ( to take, or we could have experienced  , or we can see  r. While a real life commander worries about moving his troops around in order to achieve a victory in battle, a  ã worries about iteratively transforming a state to find some value. We will deal with the subset of these actions where every function must decrease the size of the state, as those are the actions for which this is a monad.  commander-cliÿ The type level combining combinator, taking two program types as input, and being interpreted as a program which attempts to run the first command line program and, if parsing its flags, subprograms, options or arguments fails, runs the second, otherwise failing. commander-climThe type level flag combinator, taking a name as input, allowing your program to take flags with the syntax ~flag. commander-clilThe type level raw monadic program combinator, allowing a command line program to just do some computation. commander-clinThe type level program sequencing combinator, taking two program types and sequencing them one after another. commander-cli\The type level naming combinator, giving your program a name for the sake of documentation. commander-cli)The type level option combinator, with a Rl designating the option's name and another representing the metavariables name for documentation purposes. commander-cli+The type level argument combinator, with a R( designating the name of that argument. commander-cliCA class for interpreting command line arguments into Haskell types.S commander-cli8A useful default unrender for small, bounded data types. commander-cli We can run a  < action on a state and see if it has a successful campaign. commander-cliJA simple default for getting out the arguments, options, and flags using Ts. We use the syntax ~flag for flags and ~opt for options, with arguments using the typical ordered representation. commander-cli"This is a combinator which runs a Q> with the options, arguments, and flags that I get using the / function, ignoring the output of the program. commander-cli"This is a combinator which runs a Q> with the options, arguments, and flags that I get using the  function, returning UV the output of the program upon successful option and argument parsing and returning V otherwise. commander-cliArgument combinator commander-cliOption combinator commander-cliRaw monadic combinator commander-cliSubcommand combinator commander-cliFNamed command combinator, should only really be used at the top level. commander-cliBoolean flag combinator  commander-clikA convenience combinator that constructs the program I often want to run out of a program I want to write.! commander-cliZThe command line program which consists of trying to enter one and then trying the other." commander-clivA meta-combinator that takes a type-level description of a command line program and produces a simple usage program.1QWXYZ[\]^_`abc  !"# !"   24]2!2d      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYWZ[WZ\]^_`abcdefghij,commander-cli-0.3.0.0-ESfvkFYoeGkAo6flsyzvZoOptions.Commander HasProgramrunhoist invocationsState argumentsoptionsflags CommanderTActionDefeatVictory+FlagRaw&NamedOptArgUnrenderunrender runCommanderT initialStatecommand_commandargoptrawsubnamedflagtoplevel<+>usage$fUnrenderChar$fUnrenderBool$fUnrenderEither$fUnrenderMaybe $fUnrender()$fUnrenderText $fUnrender[]$fUnrenderWrappedIntegral$fUnrenderWrappedNatural$fAlternativeCommanderT$fMonadCommanderT$fMonadIOCommanderT$fMonadTransCommanderT$fApplicativeCommanderT$fHasProgramTYPE&$fHasProgramTYPE&0$fHasProgramTYPE&1$fHasProgramTYPE&2$fHasProgramTYPERaw$fHasProgramTYPE+$fHasProgramTYPE&3$fNumWrappedIntegral$fRealWrappedIntegral$fOrdWrappedIntegral$fEqWrappedIntegral$fEnumWrappedIntegral$fIntegralWrappedIntegral$fNumWrappedNatural$fRealWrappedNatural$fOrdWrappedNatural$fEqWrappedNatural$fEnumWrappedNatural$fIntegralWrappedNatural$fFunctorCommanderT$fUnrenderWord64$fUnrenderWord32$fUnrenderWord16$fUnrenderWord8$fUnrenderWord$fUnrenderNatural$fUnrenderInt64$fUnrenderInt32$fUnrenderInt16$fUnrenderInt8 $fUnrenderInt$fUnrenderIntegerProgramTghc-prim GHC.TypesSymbol unrenderSmallbaseSystem.EnvironmentgetArgs GHC.MaybeJustNothing ArgProgramT OptProgramT RawProgramT SubProgramT NamedProgramT FlagProgramT:+: unArgProgramT unOptProgramT unRawProgramT unSubProgramTunNamedProgramTunFlagProgramT