Y      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWX  Safe-InferedYZ[\]^_`abcdefghijklYZ[\]^_`abcdefghijkl Y[Z\]^_`dcbaefghijkl 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. 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 m 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 . Inopqrstuvwxyz{|} ~Fnopqrstuvwxyz{|} ~nqporstwvuxyz{|} ~  Safe-Infered  Safe-Infered  Safe-Infered+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-Infered Safe-InferedAThe 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-Infered'FInformation about a positional argument. Exposes the folowing fields. posName :: String: defaults to "". posDoc :: String: defaults to "". posSec :: String: defautts to " ARGUMENTS". +EInformation about an optional argument. Exposes the folowing fields. optName :: String: defaults to "". optDoc :: String: defaults to "". otpSec :: String: defautts to "OPTIONS". /$The type of command line arguments. 0Initialize an ++ 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. 1 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. 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 arg makes arg into a . BB 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. CC arg is a - that fails if its result is empty. Intended . for non-empty lists of positional arguments. DD 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. '()*+,-./0123456789:;<=>?@ABCD'()*+,-./0123456789:;<=>?@ABCD/+,-.'()*0123456789:;<=>?@ABCD'()*+,-./0123456789:;<=>?@ABCD Safe-Infered EInformation about the way a # exited early. Obtained by either  Ming or Q0ing some Term. Handy for testing programs when M it is undesirable to exit execution of the entire program when a Term exits  early. JJ 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 K or L!. On failure the program exits. KK ( 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. LL ( term, termInfo ) runs a term containing an  action, H performs the action, and returns the result on success. On failure the  program exits. MM 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. NN args mainTerm choices is analogous to J , but for - programs that provide a choice of commands. O Analogous to K6, but for programs that provide a choice of commands. P Analogous to L6, but for programs that provide a choice of commands. Q Analogous to M6, but for programs that provide a choice of commands. EFGHIJKLMNOPQ EFGHIJKLMNOPQ JKLMNOPQEIHGFEIHGFJKLMNOPQ Safe-InferedRR term checks that m in term is a path to an existing  file?. If it is not, exit with an explanatory message for the user. SS term checks that m in term is a path to an existing   directory?. If it is not, exit with an explanatory message for the user. TT term checks that m in term is a path to an existing  file or directory9. If it is not, exit with an explanatory message for the  user. UU term is as R but for a term containing a list  of file paths. VV term is as S but for a term containing a list  of directory paths. WW term is as T but for a term containing a list  of paths. XX term checks that m in term is a valid path under F the current operating system. If it is not, exit with an explanatory  message for the user. RSTUVWXRSTUVWXRSTUVWXRSTUVWX Safe-InferedY  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWX     ! "#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefgghijklmnopqrstuvwxyz{|} ~: w wwcmdtheline-0.2.1.1System.Console.CmdTheLine System.Console.CmdTheLine.ArgValSystem.Console.CmdTheLine.ArgSystem.Console.CmdTheLine.TermSystem.Console.CmdTheLine.UtilSystem.Console.CmdTheLine.Trie System.Console.CmdTheLine.Common!System.Console.CmdTheLine.ManpageSystem.Console.CmdTheLine.HelpSystem.Console.CmdTheLine.Err!System.Console.CmdTheLine.CmdLineTermErr HelpFormatGroffPlainPagerTermInfotermNametermDoctermSec stdOptSecversionmanManBlockNoBlankIPSdefTImsgFail usageFailhelpFailretArgVal converter Converter ArgPrinter ArgParserparserpp fromParsecjustenumlistpairtriple quadruple quintuplePosInfoposNameposDocposSecOptInfooptNameoptDocoptSecArgoptInfoposInfoflagflagAllvFlagvFlagAllopt defaultOptoptAll defaultOptAllposrevPosposAnyposLeftposRight revPosLeft revPosRightvaluerequirednonEmptylastOfEvalExitVersionMsgUsageHelpevalexecrununwrap evalChoice execChoice runChoice unwrapChoice fileExists dirExists pathExists filesExist dirsExist pathsExist validPath LookupFailNotFound AmbiguousTrievalsuccsValueNilAmbKeyPreCMapemptyisEmptyaddfindNodelookup ambiguitiesfromListbaseGHC.BaseStringEvalKindChoiceMainSimpleYieldFailHelpFail UsageFailMsgFailEvalInfotermmainchoicesCommandPageTitleCmdLinePosOptArgInfoabsenceargDocargNameargSecposKindoptKindoptNames repeatablePosKindPosRPosLPosNPosAnyOptKindOptValFlagKindAbsencePresentAbsentisOptisPosevalKind descComparesplitOnselect $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 printUsageoptArgposArgcreateMaybe $fArgValMaybe $fArgValRatio$fArgValMaybe0$fArgValDouble$fArgValMaybe1 $fArgValFloat$fArgValMaybe2$fArgValInteger$fArgValMaybe3 $fArgValInt$fArgValMaybe4 $fArgVal[]$fArgValMaybe5 $fArgValBoolJustghc-prim GHC.TypesIO$fArgValHelpFormat$fApplicativeTerm $fFunctorTerm$fErrorEvalExit