[      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ  Safe-Inferred[\]^_`abcdefghijklmn [\]^hijlmn []\^_`abfedcghijklmn Safe-Inferred.The underlying Applicative of the library. A Term represents a value C in the context of being computed from the command line arguments. EA monad for values in the context of possibly failing with a helpful  message. The format to print help in. Information about a . It is recommended that s be  created by customizing , as in  termInfo = defTI  { termName = "caroline-no" # , termDoc = "carry a line off"  } HThe name of the command or program represented by the term. Defaults to  "". (Documentation for the term. Defaults to "". :The section under which to place the terms documentation.  Defaults to "COMMANDS". 'The section under which to place a term' s argument's ' documentation by default. Defaults to "OPTIONS". @A version string. Must be left blank for commands. Defaults to "".  A list of s to append to the default  [ManBlock] . Defaults  to []. Any o argument to a  constructor may contain the E following significant forms for a limited kind of meta-programing.  $(i,text): italicizes text.  $(b,text): bolds text. J $(mname): evaluates to the name of the default term if there are choices - of commands, or the only term otherwise. C $(tname): evaluates to the name of the currently evaluating term. 4Additionally, text inside the content portion of an  constructor may 2 contain one of the following significant forms. E $(argName): evaluates to the name of the argument being documented. )Suppress the normal blank line following  a  or an . (A label-content pair. As in an argument # definition and its accompanying  documentation.  A paragraph. A section title.  A default . Kpqrstuvwxyz{|}~ Fpqrstuvwxyz{|}~ psrqtuvyxwz{|}~    Safe-Inferred  Safe-Inferred  Safe-Inferred+Fail with an arbitrary message on failure. 5Fail with a message along with the usage on failure. HA format to print the help in and an optional name of the term to print  help for. If 5 is supplied, help will be printed for the currently  evaluating term.  term folds term's ( context into the library to be handled I internally and as seamlessly as other error messages that are built in.   Safe-Inferred Safe-Inferred term checks that o in term is a path to an existing  file?. If it is not, exit with an explanatory message for the user.  term checks that o in term is a path to an existing   directory?. If it is not, exit with an explanatory message for the user.  term checks that o in term is a path to an existing  file or directory9. If it is not, exit with an explanatory message for the  user.  term is as  but for a term containing a list  of file paths.  term is as  but for a term containing a list  of directory paths.  term is as  but for a term containing a list  of paths.  term checks that o in term is a valid path under F the current operating system. If it is not, exit with an explanatory  message for the user.   Safe-InferredAThe class of values that can be converted from the command line. !6A converter is just a pair of a parser and a printer. "@The type of printers of values retrieved from the command line. #@The type of parsers of individual command line argument values. $The parsing part of a  . %The pretty printing part of a  . && onErr p makes an # from p using onErr to 1 produce meaningful error messages. On failure, onErr will receive a 4 raw string of the value found on the command line. 'A converter of  values of  instances.  Parses as:   fmap Just . parser Pretty prints as:  maybe empty pp (DA converter of enumerated values conveyed as an association list of  ( string, value )! pairs. Unambiguous prefixes of string map to  value. )) sep$ creates a converter of lists of an  instance separated  by sep. ** sep! creates a converter of pairs of  instances separated  by sep. ++ sep# creates a converter of triples of  instances separated  by sep. ,, sep& creates a converter of quadruples of  instances  separated by sep. -- sep& creates a converter of quintuples of  instances  separated by sep. & !"#$%&'()*+,- !"#$%&'()*+,-#"! %$&(')*+,-% !"#$%&'()*+,- Safe-Inferred.FInformation about a positional argument. Exposes the folowing fields. posName :: String: defaults to "". posDoc :: String: defaults to "". posSec :: String: defautts to " ARGUMENTS". 2EInformation about an optional argument. Exposes the folowing fields. optName :: String: defaults to "". optDoc :: String: defaults to "". optSec :: String: defaults to "OPTIONS". 6$The type of command line arguments. 7Initialize an 2+ by providing a list of names. The fields  optName, optDoc, and optSec& can then be manipulated post-mortem,  as in  + inf =(optInfo [ "i", "insufflation" ])  { optName = "INSUFFERABLE" 1 , optDoc = "in the haunted house's harrow" ! , optSec = "NOT FOR AUGHT"  } 5Names of one character in length will be prefixed by - on the command line, ( while longer names will be prefixed by --. JIt is considered a programming error to provide an empty list of names to  optInfo. 8 Initialize a .. The fields posName, posDoc, and posSec , can then be manipulated post-mortem, as in   inf = posInfo  { posName = "DEST" 4 , posDoc = "A destination for the operation."  , posSec = "DESTINATIONS"  }  The fields posName and posDoc, must be non-empty strings for the argument 7 to be listed with its documentation under the section posSec of generated  help. 9?Create a command line flag that can appear at most once on the  command line. Yields False in absence and True in presence. :As 97 but may appear an infinity of times. Yields a list of Trues ) as long as the number of times present. ;; v [ ( v1, ai1 ), ... ], is an argument that can be present at most 1 once on the command line. It takes on the value vn when appearing as  ain. << vs assoc is as ;" except that it can be present an ! infinity of times. In absence, vs! is yielded. When present, each . value is collected in the order they appear. == v ai% is an optional argument that yields v in absence, or an H assigned value in presence. If the option is present, but no value is G assigned, it is considered a user-error and usage is printed on exit. >> def v ai is as =) except if it is present and no value is  assigned on the command line, def is the result. ?? vs ai is like = except that it yields vs in absence and L can appear an infinity of times. The values it is assigned on the command 0 line are accumulated in the order they appear. @@  def vs ai is like ? except that if it is present + without being assigned a value, the value def takes its place in the list  of results. AA n v ai is an argument defined by the nth positional argument * on the command line. If absent the value v is returned. BB n v ai is as A/ but counting from the end of the command line  to the front. CC vs ai. yields a list of all positional arguments or vs if none  are present. DD n vs ai9 yield a list of all positional arguments to the left of  the nth positional argument or vs if there are none. EE n vs ai is as D) except yielding all values to the right  of the nth positional argument. FF n vs ai is as D except n counts from the end of the  command line to the front. GG n vs ai is as E except n counts from the end of  the command line to the front. HH arg makes arg into a . II arg converts arg into a  such that it fails in the   and yields a in the . BThis is used for required positional arguments. There is nothing F stopping you from using it with optional arguments, except that they B would no longer be optional and it would be confusing from a user's  perspective. JJ arg is a - that fails if its result is empty. Intended . for non-empty lists of positional arguments. KK arg is a 1 that fails if its result is empty and evaluates J to the last element of the resulting list otherwise. Intended for lists 6 of flags or options where the last takes precedence. ../0123456   789:;<  =>?@ABCDEFGHIJK./0123456789:;<=>?@ABCDEFGHIJK62345./01789:;<=>?@ABCDEFGHIJK#./0123456   789:;<  =>?@ABCDEFGHIJK Safe-Inferred LInformation about the way a # exited early. Obtained by either  Ting or X0ing some Term. Handy for testing programs when M it is undesirable to exit execution of the entire program when a Term exits  early. QQ args ( term, termInfo ) allows the user to pass args directly to M the evaluation mechanism. This is useful if some kind of pre-processing is N required. If you do not need to pre-process command line arguments, use one  of R or S!. On failure the program exits. RR ( term, termInfo )+ executes a command line program, directly L grabbing the command line arguments from the environment and returning the & result upon successful evaluation of term!. On failure the program exits. SS ( term, termInfo ) runs a term containing an  action, H performs the action, and returns the result on success. On failure the  program exits. TT args ( term, termInfo ) unwraps a  without handling errors. K The intent is for use in testing of Terms where the programmer would like 5 to consult error state without the program exiting. UU args mainTerm choices is analogous to Q , but for - programs that provide a choice of commands. V Analogous to R6, but for programs that provide a choice of commands. W Analogous to S6, but for programs that provide a choice of commands. X Analogous to T6, but for programs that provide a choice of commands. LMNOPQRST UVWX! LMNOPQRSTUVWX QRSTUVWXLPONMLPONMQRST UVWX! Safe-InferredY  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWX  Safe-InferredYSequence a list of "s into a term. Absent flags  (specified with #) are filtered out. Z Convert an " into a  which returns  if  #( is specified and the flag is absent or  the argument  otherwise. YZYZYZYZ$  ! " #$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijjklmnopqrstuvwxyz{|}~ B  z zz    B  !"#$%&'(z)*z)+,cmdtheline-0.2.3System.Console.CmdTheLineSystem.Console.CmdTheLine.Util System.Console.CmdTheLine.ArgValSystem.Console.CmdTheLine.ArgSystem.Console.CmdTheLine.Term System.Console.CmdTheLine.GetOptSystem.Console.CmdTheLine.Trie System.Console.CmdTheLine.Common!System.Console.CmdTheLine.ManpageSystem.Console.CmdTheLine.HelpSystem.Console.CmdTheLine.Err!System.Console.CmdTheLine.CmdLineTermErr HelpFormatGroffPlainPagerTermInfotermNametermDoctermSec stdOptSecversionmanManBlockNoBlankIPSdefTImsgFail usageFailhelpFailret fileExists dirExists pathExists filesExist dirsExist pathsExist validPathArgVal converter Converter ArgPrinter ArgParserparserpp fromParsecjustenumlistpairtriple quadruple quintuplePosInfoposNameposDocposSecOptInfooptNameoptDocoptSecArgoptInfoposInfoflagflagAllvFlagvFlagAllopt defaultOptoptAll defaultOptAllposrevPosposAnyposLeftposRight revPosLeft revPosRightvaluerequirednonEmptylastOfEvalExitVersionMsgUsageHelpevalexecrununwrap evalChoice execChoice runChoice unwrapChoice optDescrsTermoptDescrToTerm LookupFailNotFound AmbiguousTrievalnextsValueNilAmbKeyPreCMapemptyisEmptyaddfindNodelookup ambiguitiesfromListbaseGHC.BaseStringEvalKindChoiceMainSimpleYieldFailHelpFail UsageFailMsgFailEvalInfotermmainchoicesCommandPageTitleCmdLinePosOptArgInfoabsenceargDocargNameargSecposKindoptKindoptNames repeatablePosKindPosRPosLPosNPosAnyOptKindOptValFlagKindAbsencePresentAbsentisOptisPosevalKind descComparesplitOnselect$fApplicativeTerm $fFunctorTerm $fErrorFail $fOrdArgInfo $fEqArgInfoSubstparagraphIndent labelIndent mkPrepTokens substituteplainEscprepPlainBlocksprintPlainPagegroffEscprepGroffBlocksprintGroffPageprintToTempFile printToPagerprint invocationtitle nameSectionsynopsissynopsisSection makeArgLabel makeArgItems makeCmdItems mergeOrphans mergeItemstexteiSubstpage prepSynopsis printVersion Data.MaybeNothinghsepMaperrArgv errNotOpt errNotPoserrHelpaltsinvalid invalidValnonotDirisDirelementsepMissunknown ambiguous posExcess flagValueoptValueMissing optParseValue optRepeated posParseValue argMissing prepTryHelp printUsageoptArgposArgargInfoIndexes parseOptArg parseArgsprocessPosArgscreatedoesFileOrDirExistcheckvalidate validatesMaybedecPointdigitssign concatParserspInteger pFloating $fArgValMaybe$fArgValHelpFormat$fArgValMaybe0 $fArgValRatio$fArgValMaybe1$fArgValDouble$fArgValMaybe2 $fArgValFloat$fArgValMaybe3$fArgValInteger$fArgValMaybe4 $fArgValInt$fArgValMaybe5 $fArgVal[]$fArgValMaybe6 $fArgValBoolJustPInfunPInfOInfunOInfargFail fromOptInfo fromPosInfomkInfo parseOptValuemkOptmkOptAll parsePosValuemkPosposListabsentghc-prim GHC.TypesIO ProcessToEvalErrfromFailfromErr printEvalErr addStdOpts unwrapTermevalTerm chooseTerm mkCommand chooseTermEievalBy evalChoiceBy$fErrorEvalExitSystem.Console.GetOptOptDescrNoArg