K      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJ  Safe-InferedKLMNOPQRSTUVWXYZ[\]^KLMNOPQRSTUVWXYZ[\]^ KMLNOPQRVUTSWXYZ[\]^ Safe-Infered.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. ?A format to print the help in and an optional name of the term  to print help for. If _# is supplied, help will be printed $ for the currently evaluating term. 9A message to be printed along with the usage on failure. /An arbitrary message to be printed on failure. The format to print help in. Information about a . It is recommended that  s be  created by customizing the  instance, as in  termInfo = def  { 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 ` 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. KInformation about an argument. The following fields are exported for your  use. argName  argName :: `+ A name to be used in the documentation to  refer to the argument's value. Defaults to "". argDoc  argDoc :: `* A documentation string for the argument.  Defaults to "".  argSection  argSection :: `. The section under which to place the argument's  documentation. Defaults to "OPTIONS" for optional arguments and  " ARGUMENTS" for positional arguments. Gab cdefghijkl mnopqrstuvwxyz{|}~Dab cdefghijkl mnopqrstuvwxyz{|}~ab cfedghijkl  mnoprq stuvwxy}|{z~  Safe-Infered  Safe-Infered  Safe-Infered  Safe-Infered Safe-InferedHThe class of values that can be parsed from the command line. Instances  must provide both  and . @The type of printers of values retrieved from the command line. !@The type of parsers of individual command line argument values. "" 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 parser of  values of ! instances. A convenient default  that merely lifts the  instance's parsed value with . $ A printer of  values of ! instances. A convenient default  that prints nothing on the _ and just the value on the . %AA parser of enumerated values conveyed as an association list of  ( string, value )! pairs. Unambiguous prefixes of string map to  value. && sep! creates a parser of lists of an  instance separated  by sep. '' sep) creates a pretty printer of lists of an  instance  seperated by sep. (( sep creates a parser of pairs of  instances separated  by sep. )) sep& creates a pretty printer of pairs of  instances  separated by sep ** sep creates a parser of triples of  instances separated  by sep. ++ sep( creates a pretty printer of triples of  instances  separated by sep ,, sep# creates a parser of quadruples of  instances  separated by sep. -- sep+ creates a pretty printer of quadruples of   instances separated by sep .. sep# creates a parser of quintuples of  instances  separated by sep. // sep+ creates a pretty printer of quintuples of   instances separated by sep !A parser of instance values. &A pretty printer for instance values. !"#$%&'()*+,-./ !"#$%&'()*+,-./! "%#$&'()*+,-./ !"#$%&'()*+,-./ Safe-Infered0Initialize an + by providing a list of names. The fields  argName (found at !System.Console.CmdTheLine#argName),  argDoc (found at  System.Console.CmdTheLine#argDoc), and   argSection (found at $System.Console.CmdTheLine#argSection) , can then be manipulated post-mortem, as in  + inf =(optInfo [ "i", "insufflation" ]) # { argName = "INSUFFERABLE" 4 , argDoc = "in the haunted house's harrow" $ , argSection = "NOT FOR AUGHT"  } 5Names of one character in length will be prefixed by - on the 6 command line, while longer names will be prefixed by --. FThis function is meant to be used with optional arguments produced by 2,  6E, and friends-- not with positional arguments. Positional arguments N provided with names will yield a run-time error, halting any and all program  runs. Use 1 for positional arguments. 5Likewise, if an optional argument is created with an  produced by # passing an empty list of names to 0, a run-time error will occur. ) All optional arguments must have names. 1As 08 but for positional arguments, which by virtue of their I positions require no names. If a positional argument is created with a E name, a run-time error will occur halting any and all program runs. 0If you mean to create an optional argument, use 0, and be sure to : give it a non-empty list of names to avoid these errors. 2?Create a command line flag that can appear at most once on the  command line. Yields False in absence and True in presence. 3As 27 but may appear an infinity of times. Yields a list of Trues ) as long as the number of times present. 44 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. 55 vs assoc is as 4" 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. 66 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. 77 def v ai is as 6) except if it is present and no value is  assigned on the command line, def is the result. 88 vs ai is like 6 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. 99  def vs ai is like 8 except that if it is present + without being assigned a value, the value def takes its place in the list  of results. :: n v ai is an argument defined by the nth positional argument * on the command line. If absent the value v is returned. ;; n v ai is as :/ but counting from the end of the command line  to the front. << vs ai. yields a list of all positional arguments or vs if none  are present. == n vs ai9 yield a list of all positional arguments to the left of  the nth positional argument or vs if there are none. >> n vs ai is as =) except yielding all values to the right  of the nth positional argument. ?? n vs ai is as = except n counts from the end of the  command line to the front. @@ n vs ai is as > except n counts from the end of  the command line to the front. AA term converts term so 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. BB term7 is a term that fails if its result is empty. Intended . for non-empty lists of positional arguments. CC term; is a term 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. 0123456789:;<=>?@ABC0123456789:;<=>?@ABC0123456789:;<=>?@ABC0123456789:;<=>?@ABC Safe-InferedDD 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 E or F!. On failure the program exits. EE ( 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. FF ( term, termInfo ) runs a term containing an  action, H performs the action, and returns the result on success. On failure the  program exits. GG args mainTerm choices is analogous to D , but for - programs that provide a choice of commands. H Analogous to E6, but for programs that provide a choice of commands. I Analogous to F6, but for programs that provide a choice of commands. DEFGHIDEFGHIDEFGHI DEFGHI Safe-InferedJJ term folds term's ( context into the library to be handled I internally and as seamlessly as other error messages that are built in. JK  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJ  JJ   !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[[\]^_`abcdefghijklmknopqrstuuvwxyz{|}~&  klklcmdtheline-0.1.1System.Console.CmdTheLine System.Console.CmdTheLine.ArgValSystem.Console.CmdTheLine.ArgSystem.Console.CmdTheLine.TermSystem.Console.CmdTheLine.Trie System.Console.CmdTheLine.CommonDataDefault!System.Console.CmdTheLine.ManpageSystem.Console.CmdTheLine.HelpSystem.Console.CmdTheLine.Err!System.Console.CmdTheLine.CmdLinedata-default-0.5.0 Data.DefaultdefTermErrFailHelpFail UsageFailMsgFail HelpFormatGroffPlainPagerTermInfotermNametermDoc termSection stdOptSectionversionmanManBlockNoBlankIPSArgInfoargDocargName argSectionArgValparserpp ArgPrinter ArgParser fromParsecjustmaybePPenumlistlistPPpairpairPPtripletriplePP quadruple quadruplePP quintuple quintuplePPoptInfoposInfoflagflagAllvFlagvFlagAllopt defaultOptoptAll defaultOptAllposrevPosposAnyposLeftposRight revPosLeft revPosRightrequirednonEmptylastOfevalexecrun evalChoice execChoice runChoiceret LookupFailNotFound AmbiguousTrievalsuccsValueNilAmbKeyPreCMapemptyisEmptyaddfindNodelookup ambiguitiesfromListbase Data.MaybeNothingGHC.BaseStringYieldEvalKindChoiceMainSimpleEvalInfotermmainchoicesCommandPageTitleCmdLineArgPosOptabsenceposKindoptKindoptNames repeatablePosKindPosRPosLPosNPosAnyOptKindOptValFlagKindAbsencePresentAbsentisOptisPosevalKind descComparesplitOn$fDefaultTermInfo $fOrdArgInfo $fEqArgInfoSubstparagraphIndent labelIndent mkPrepTokens substituteplainEscprepPlainBlocksprintPlainPagegroffEscprepGroffBlocksprintGroffPageprintToTempFile printToPagerprint invocationtitle nameSectionsynopsissynopsisSection makeArgLabel makeArgItems makeCmdItems mergeOrphans mergeItemstexteiSubstpage prepSynopsis printVersionhsepMapleadByerrArgv errNotOpt errNotPoserrHelpaltsinvalid invalidValnonotDirisDirelementsepMissunknown ambiguous posExcess flagValueoptValueMissing optParseValue optRepeated posParseValue argMissing prepTryHelp printUsageoptArgposArgcreateMaybeJust $fArgValMaybe $fArgValRatio$fArgValMaybe0$fArgValDouble$fArgValMaybe1 $fArgValFloat$fArgValMaybe2$fArgValInteger$fArgValMaybe3 $fArgValInt$fArgValMaybe4 $fArgVal[]$fArgValMaybe5 $fArgValBoolghc-prim GHC.TypesIO$fArgValHelpFormat$fApplicativeTerm $fFunctorTerm