f      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  Safe-Inferred  Safe-Inferred Safe-InferredCharacters after the first short option name in a flag that specifies a  short option! instance, if the user supplies -afoobar, then this will be foobar.An option argument.A word* supplied by the user on the command line.The name of an option (either a short option name or a long option name). A long option name. A short option name.  Specifies an option. Typically you will use  to create an  3 rather than using the constructor directly. Each   may contain mulitple short option names and long option names ; but each   contains only one . Therefore, all short option names and long option names specified in a single   are synonymous.Specifies how many option arguments an option takes.This option takes three option argumentsThis option takes two option argumentsThis option takes one option argumentThis option takes no option arguments Creates an  . Creates a short option name:. Any character other than a single hyphen will succeed. Creates a long option name. The string may not be empty, and the first character may not be a hyphen. In addition, no character may be an equal sign.Is this word an input for a  long option?Is this an input word for a short argument?'If possible, splits a ShortTail into a short option name and a remaining tail.! (There is one character for each desired short option name=. Each of these characters may not be a hyphen; otherwise,  will apply .%There is one string for each desired long option name. Each string:cannot be empty;!must not begin with a hyphen; andmust not contain an equal sign. Otherwise,  will apply . How many option arguments this option8 takes. This also specifies what is returned when the option is parsed on the command line.JNothing if the option does not begin with a double dash and is not at least three characters long. Otherwise, returns the characters following the double dash to the left of any equal sign. The Maybe in the tuple is Nothing if there is no equal sign, or Just followed by characters following the equal sign if there is one.        Safe-InferredLThe user gave an argument for a long option that does not take an argument. In the middle of processing an optionA; this function will be applied to the next word to get a result!Accepting new words*%Process a single word in the machine.+Processes multiple words2 in the machine. Processing ends with the first word that is $. This first word that is $, and all remaining words7, are returned in the result. A list of all lists of %2 are also returned, with one list for each input ] that was processed. Each of these lists may be of any length. For instance, if the input word is the flag for a  long option that takes two option arguments7, the corresponding list will be empty. If the input word is a flag for a  short option,, this list may have more than one element.hExamines a word to determine if it is a short option. If so, processes it; otherwise, returns Nothing. !"#$%&'()*+!  !"#$%&'()*+#  %'&"$#! ()*+! "$#%'&()*+ Safe-Inferred.Processes a command line where options are interspersed with positional arguments. A stopper is not returned; all words after a stopper are treated as positional arguments.,-./,-.,-/.,-./ Safe-Inferred0`Returns a list of the first items in a list and the last item, or Nothing if the list is empty.1Partitions a list of  & into the short flags and long flags.2Adds an option for h and help. The resulting  return  if help was requested, or 2 with the original argument for any other option.012012012012 Safe-Inferred3/Indicates the result of parsing a command line.4ParsedCommandLine a b, where:ad is a list of errors and results, in the original order in which they appeared on the command line.b is Just p if the user included an optionE at the end of the command line and there were not enough following words to provide the option with its necessary option arguments , where p is the name of the option with insufficient option arguments ; otherwise .6OGets the results from a parsed command line. If there were errors, returns a . with an error message; otherwise, returns a  with a list of the results.90Parses a command line; a pure function (unlike parseCommandLineIO).:\Parses a command line. Runs in the IO monad so that it can do some tedious things for you: fetches the words on command line using # and the name of the program with @prints help, if the user requested help, and exits successfullyuprints an error message and exits unsuccessfully, if the user entered a bad command line (such as an unknown option)UIf you don't want this degree of automation or if you want a pure function, see the 9 function in the Multiarg.Internal module.;Automatically adds a  short option, -h, and a  long option, --help%. Intended primarily for use by the parseCommandLineIO function. 3456789All program options)Processes non-option positional arguments<Input tokens from the command line, probably obtained from :xReturns help for your command. This function is applied to the name of the program being run, which is obtained from r. The function should return a string that gives help for how to use your command; this string is printed as-is. All program options. An option for -h and for --help is added for you, using the help function given above. If the user asks for help, then it is printed and the program exits successfully. If the user gives a command line with one or more errors in it, an error message is printed, along with something like "Enter program-name --help for help. Processes positional arguments. Fetches the words( from the command line arguments using  and parses them. If there is an error, prints an error message and exits unsuccessfully. Otherwise, returns the parsed result, where each item in the list corresponds to a parsed option or positional argument8 in the order in which it appeared on the command line.;< 3456789:; 534<6789:; 3456789:;< Safe-Inferred=*The result of parsing a mode command line.>ModeResult a b4 is a successfully parsed mode command line, where:a, is a list of all global options parsed; andb2 indicates the result of parsing the mode. It is  Either c d, where Left cm indicates that no mode was parsed. This arises under two circumstances. If the user did not include any words after the global options, then c will be the empty list, []. If the user did include words* after the global options, but the first wordF was not recognized as a mode, then this list will contain the first word and any subsequent words. Therefore, note that if the user attempted to use a mode that does not exist (e.g. she misspelled it), this is not treated as an error. It's up to the client code to deal with this issue (for instance, your program might not view this situation as being an error.)If b is Right dM, this indicates that the user entered a recognized mode, and the result is d.FA F0 represents a single command line mode, such as check for  ghc-pkg checkK. It contains the name of the mode, as well as a parser that handles all options and positional arguments. for the mode. Ordinarily you will create a F using the N9 function rather than by using the constructor directly.IThere was an error. There may be zero or more initial OptionError. There must be at least one error, which is either an OptionError or the name of an option, if the error is that there were not enough words following the option to provide it with its necessary arguments.NCreates a new F.X-Parses a command line that may contain modes.ZsTakes a token and a list of all modes; returns the matching mode if there is one, or Nothing if there is no match. =>?@ABCDEFGHIJKLMN"Mode name. For instance, for the check mode of ghc-pkg, this would be check.Mode optionsParses positional arguments!Processes the result of all mode optionsOP?Global result. Contains either one or more errors, or global option results.Result of parsing mode word, and the mode options and positional arguments . May be Left a, where a is one or more errors, or Right b, where b# is a good result. A good result b may be either Left c, where c is a list of positional arguments, or Right d, where d is the mode result. c: indicates that no mode was recognized and may be either []*, which indicates that the user passed no words at all after the global options, or x:xs%, indicating that the user did pass words after the global options, but the first word was not recognized as a mode.QRSTUVWXGlobal options&. This might, for example, include a --help option. All modesAll command line wordsReturns  Either a b. Left a represents an error. Each String represents a single error (this is returned as a pair because there must be at least one error; a simple list would not reflect this requirement.)Right b9 indicates that parsing proceeded successfully; consult = to see what is returned.YGlobal options All modesAll command line tokensZ[\=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ KLHJI\FG[MNAEDCB?@=>OPQRSTUVWXYZ=>?@AEDCBFGHJIKLMNOPQRSTUVWXYZ[\  Safe-Inferred =>FNX  FN=>X Safe-Inferred ],Holds the results of parsing Grover's modes.aAHandles all options and positional arguments for any Grover mode.gGrover's global options.iEThe Int would indicate, for example, the desired level of verbosity.k%All of Grover's global options. The   is parameterized on an R to allow for error handling. If the user enters a non-integer argument for the  --verbose option, a Left$ with an error message is returned.l A list of   that works for any F.mAll Grover modes.n?Reads a value. If it cannot be read, returns an error message.o)Parses all of Grover's options and modes.]^_`abcdefghijklmno(Command line arguments, presumably from getArgs Returns a  if there are errors, or a O if there are no errors. (In an actual application, further processing of a L would be necessary to determine whether all entered arguments were valid.)p]^_`abcdefghijklmnogjihafedcbpkl]`_^mno ]`_^afedcbgjihklmnop  Safe-Inferred : : Safe-Inferredq7A data type to hold the result of command line parsing.r --tress --dost --unou --cerov -3w -2x -1y -0z--triple, -t{--double, -d|--single, -s}--empty, -e~Positional argumentqrstuvwxyz{|}~qrstuvwxyz{|}~q~}|{zyxwvutsrq ~}|{zyxwvutsr   !"#$%&'()*+,-$./012334567899:;<=>?@ABBCCDEFGHIIJKLMMNOPQRSTUVWXYZ[\]^_`ab3cdefghijklmnopqrstuvwxfcdey3z{|}~}}}}}}}multiarg-0.30.0.8Multiarg.TypesMultiarg.MaddashMultiarg.Limeline Multiarg.UtilMultiarg.InternalMultiarg.Mode.InternalMultiarg.Examples.GroverMultiarg.Examples.TellyMultiarg.VocabularyMultiarg.Examples Multiarg.ModeMultiarg ShortTailOptArgoptArgToStringWordOptNameLongNamelongNameToString ShortNameshortNameToCharOptSpecArgSpecThreeArgTwoArgOneArgZeroArgoptSpec shortNamelongNameoptNameToStringisLongisShort wordToOptArgsplitShortTail OptionError!LongArgumentForZeroArgumentOption BadOptionStatePendingReadyPalletFull NotAnOptionOutputGoodisReady isPending processWord processWordsPosArg interspersed$fFunctorPosArgmayLast splitOptSpecs addHelpOptionParsedCommandLine!limelineOutputToParsedCommandLine parsedResultsinsufficientOptArgsoptErrorparseCommandLinePureparseCommandLineparseCommandLineHelp$fFunctorParsedCommandLine ModeResult GlobalLocalGlobalLocalEnd ModeFoundNoMode ModeNotFoundGlobalInsufficientOptArgsMode ParsedMode ModeErrorModeGoodModeNameparsedCommandLineToParsedModemode getModeResultcombineendToModeResultextractParsedModeglobalOptErrorToStringmodeOptErrorToStringoptErrorToString eiToErrorlabeledInsufficientOptArgs parseModeLineparseModeLineWithErrors findExactMode $fFunctorMode$fFunctorParsedModeResultMaybesStringsInts GroverOptTripleDoubleSingleZeroGlobalVersionVerboseHelpglobalOptSpecs modeOptSpecsmodesreadErr parseGrover$fFunctorGroverOptTellyTresDosUnoCeroThreeTwoOneEmptyoptSpecshelpparsebaseGHC.Errerror$fFunctorOptSpec $fShowArgSpec$fFunctorArgSpec procShort getShortOpt procShortOptprocLong procLongOpt $fShowState$fFunctorState$fFunctorPallet$fFunctorOutput Data.MaybeNothingJust Data.EitherLeftRightSystem.EnvironmentgetArgs getProgNameEither