!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  Safe+DThe general type of annotations that can be associated with a value. SafeLFlag: "I want users to be able to omit the value associated with this flag."&Make the value of a flag optional. If --flag$ is given, it will be treated as --flag= this_argument. @{hello = def &= opt "foo"} -h --hello[=VALUE] (default=foo)rNote that all flags in CmdArgs are optional, and if omitted will use their default value. Those annotated with optQ also allow the flag to be present without an associated value. As an example: %{hello = "DEFAULT" &= opt "OPTIONAL"} e$ main {hello = "DEFAULT"} $ main --hello {hello = "OPTIONAL"} $ main --hello=VALUE {hello = "VALUE"}?Flag: "For this flag, users need to give something of type ..."qThe the type of a flag's value, usually upper case. Only used for the help message. Commonly the type will be FILE () or DIR (). 3{hello = def &= typ "MESSAGE"} -h --hello=MESSAGE5Flag: "Users must give a file for this flag's value." Alias for  FILE.:Flag: "Users must give a directory for this flag's value." Alias for  DIR.$Flag/Mode: "The help message is ...")Descriptive text used in the help output. I{hello = def &= help "Help message"} -h --hello=VALUE Help message*Flag: "Use this flag name for this field."$Add flags which trigger this option. 4{hello = def &= name "foo"} -h --hello --foo=VALUE $Flag: "Put non-flag arguments here."#All argument flags not captured by   are returned by  . {hello = def &= args} +Flag: "Put the nth non-flag argument here."OThis field should be used to store a particular argument position (0-based). {hello = def &= argPos 0} DFlag/Mode: "Give these flags/modes a group name in the help output."HThis mode will be used for all following modes/flags, until the next  groupname. A{hello = def &= groupname "Welcomes"} Welcomes -h --hello=VALUE 0Mode: "A longer description of this mode is ..."'Suffix to be added to the help message. ESample{..} &= details ["More details on the website www.example.org"] 1Modes: "My program name/version/copyright is ..."=One line summary of the entire program, the first line of --help and the only line of  --versionI. If the string contains a version number component will also provide --numeric-version. <Sample{..} &= summary "CmdArgs v0.0, (C) Neil Mitchell 1981"6Mode: "If the user doesn't give a mode, use this one."This mode is the default. If no mode is specified and a mode has this attribute then that mode is selected, otherwise an error is raised. /modes [Mode1{..}, Mode2{..} &= auto, Mode3{..}]+Modes: "My program executable is named ..."oThis is the name of the program executable. Only used in the help message. Defaults to the type of the mode. Sample{..} &= program "sample"-Flag: "Don't guess any names for this field."^A field should not have any flag names guessed for it. All flag names must be specified by flag. 5{hello = def &= explicit &= name "foo"} --foo=VALUE:Flag/Mode: "Ignore this field, don't let the user set it."-A mode or field is not dealt with by CmdArgs. 4{hello = def, extra = def &= ignore} --hello=VALUE*Modes: "My program needs verbosity flags."Add  --verbose and --quiet flags.%Modes: "Customise the help argument.".Add extra options to a help argument, such as , ,  or . *Sample{..} &= helpArg [explicit, name "h"](Modes: "Customise the version argument."1Add extra options to a version argument, such as , , ,   or . !Sample{..} &= versionArg [ignore]+Modes: "Customise the verbosity arguments.",Add extra options to a verbosity arguments ( --verbose and --quiet), such as , ,  or C. The verbose options come first, followed by the quiet options. >Sample{..} &= verbosityArgs [ignore] [name "silent", explicit] Program: "Turn off @ expansion."Usually arguments starting with @ are treated as a file containing a set of arguments. This annotation turns off that behaviour. Sample{..} &= noAtExpand   None+ The verbosity data type1Only output essential messages (typically errors)6Output normal messages (typically errors and warnings)GOutput lots of messages (typically errors, warnings and status updates)Set the global verbosity.$Get the global verbosity. Initially Normal before any calls to .:Used to test if warnings should be output to the user. True if the verbosity is set to  or  (when --quiet is not specified).@Used to test if status updates should be output to the user. True if the verbosity is set to  (when  --verbose is specified).DAn action to perform if the verbosity is normal or higher, based on . 8An action to perform if the verbosity is loud, based on .     None++The number of arguments that have been seen!5A structure to store the additional data relating to --help,  --version, --quiet and  --verbose.##The underlying value being wrapped.$Just if --helpQ is given, then gives the help message for display, including a trailing newline.%Just if  --versionT is given, then gives the version message for display, including a trailing newline.&Just if --quiet or  --verbose+ is given, then gives the verbosity to use.'2Private: Only exported due to Haddock limitations.!"#$%&' !"#$%&' !"#$%&' Safe(Given a sequence of arguments, join them together in a manner that could be used on the command line, giving preference to the Windows cmd shell quoting conventions.vFor an alternative version, intended for actual running the result in a shell, see "System.Process.showCommandForUser")CGiven a string, split into the available arguments. The inverse of (.()()()Safe*Expand @: directives in a list of arguments, usually obtained from getArgs#. As an example, given the file test.txt with the lines hello and world: 7expandArgsAt ["@test.txt","!"] == ["hello","world","!"]Any @k directives in the files will be recursively expanded (raising an error if there is infinite recursion). To supress @ expansion, pass any @ arguments after --.***Safe5+>Like functor, but where the the argument isn't just covariant.,Convert between two values.-0An unnamed argument. Anything not starting with -* is considered an argument, apart from "-"( which is considered to be the argument "-"!, and any arguments following "--". For example: 7programname arg1 -j - --foo arg3 -- -arg4 --arg5=1 arg6Would have the arguments: -["arg1","-","arg3","-arg4","--arg5=1","arg6"]/!A way of processing the argument.04The type of data for the argument, i.e. FILE/DIR/EXT1WIs at least one of these arguments required, the command line will fail if none are set2AA flag, consisting of a list of flag names and other information.4The names for the flag.5%Information about a flag's arguments.6The way of processing a flag.79The type of data for the flag argument, i.e. FILE/DIR/EXT8+The help message associated with this flag.9RA function to take a string, and a value, and either produce an error message (Left), or a modified value (Right).:The : type has the following meaning:  FlagReq FlagOpt FlagOptRare/FlagNone -xfoo -x=foo -x=foo -x -foo -x foo -x=foo -x foo -x foo -x=foo -x=foo -x=foo -x=foo --xx foo --xx=foo --xx foo --xx foo --xx=foo --xx=foo --xx=foo --xx=foo;Required argument<Optional argument=5Optional argument that requires an = before the value> No argument?A mode. Do not use the ?& constructor directly, instead use ] to construct the ?? and then record updates. Each mode has three main features:A list of submodes (A)A list of flags (J) Optionally an unnamed argument (I)7To produce the help information for a mode, either use helpText or .AThe available sub-modesBZThe names assigned to this mode (for the root mode, this name is used as the program name)CValue to start withDICheck the value reprsented by a mode is correct, after applying all flagsE3Given a value, try to generate the input arguments.FExpand @ arguments with  expandArgsAt, defaults to , only applied if using an ' processing function. Only the root ?s value will be used.G Help textH+A longer help suffix displayed after a modeI`The unnamed arguments, a series of arguments, followed optionally by one for all remaining slotsJGroups of flagsKA group of items (modes or flags). The items are treated as a list, but the group structure is used when displaying the help message.M Normal items.N:Items that are hidden (not displayed in the help message).OEItems that have been grouped, along with a description of each group.PThe type of a flag, i.e. --foo=TYPE.Q6A help message that goes with either a flag or a mode.R#A name, either the name of a flag (--foo) or the name of a mode.S9Parse a boolean, accepts as True: true yes on enabled 1. TConvert a group into a list.U3Convert a list into a group, placing all fields in M.VExtract the modes from a ?WExtract the flags from a ?X Extract the value from inside a < or =, or raises an error.Y!Check that a mode is well formed.ZRestricted version of ,! where the values are isomorphic.[ Version of , for the 9 type alias.\%Create an empty mode specifying only CE. All other fields will usually be populated using record updates.]rCreate a mode with a name, an initial value, some help text, a way of processing arguments and a list of flags.^bCreate a list of modes, with a program name, an initial value, some help text and the child modes._lCreate a flag taking no argument value, with a list of flag names, an update function and some help text.`Create a flag taking an optional argument value, with an optional value, a list of flag names, an update function, the type of the argument and some help text.aCreate a flag taking a required argument value, with a list of flag names, an update function, the type of the argument and some help text.bNCreate an argument flag, with an update function and the type of the argument.cXCreate a boolean flag, with a list of flag names, an update function and some help text.>+, Embed a value/Extract the mode and give a way of re-embedding-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc9+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc +,-./0123456789:;<=>? @ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcSafed/Process a list of flags (usually obtained from getArgs/ expandArgsAt) with a mode. Returns Left= and an error message if the command line fails to parse, or Right and the associated value.d     dd     Safee.How to complete a command line option. The 5 instance is suitable for parsing from shell scripts.fComplete to a particular valueg Complete to a prefix, and a fileh%Complete to a prefix, and a directoryiZGiven a current state, return the set of commands you could type now, in preference order.AGiven a mode and some arguments, try and drill down into the modeRFollow args deals with all seen arguments, then calls on to deal with the next oneefghi+Mode specifying which arguments are allowed$Arguments the user has already typedV0-based index of the argument they are currently on, and the position in that argument !"efghi !efghi !"None35#3Never generated, only used for reading in bad casesj9Unknown value, representing the values stored within the ?c structure. While the values are not observable, they behave identically to the original values.k Run a remote command line entry.l.Receive information about the mode to display.meSend a reply with either an error, or a list of flags to use. This function exits the helper program.n[Send a comment which will be displayed on the calling console, mainly useful for debugging.9$%&'()*+,-./0#1234j567k!Name of the command to run, e.g.  echo argument, cmdargs-browserMode to run remotely@Initial set of command line flags (not supported by all helpers)2Either an error message, or a list of flags to use8lmn9:;<=>?@ABCDEFGHIJKLMNOPQRSTUVjklmnkjlmn*$%&'()*+,-./0#1234j567k8lmn9:;<=>?@ABCDEFGHIJKLMNOPQRSTUVSafeoClass for default values.p!Provide a default value, such as (), False, 0, [], Nothing.opqrstuvwxyz{|}~opop~}|{zyxwvutsrqopqrstuvwxyz{|}~Safe8The data type representing some text, typically used as [Text]$. The formatting is described by:K values represent a paragraph of text, and may be wrapped depending on the  . If a F value is wrapped then all leading space will be treated as an indent.. values represent columns of text. Within any [Text] all columns of the same length are grouped in tabs, with the final column being wrapped if necessary. All columns are placed adjacent with no space between them - for this reason most columns will start with a space.How to output the text.Display as HTML.0Display as text wrapped at a certain width (see ).-Wrap with the default width of 80 characters.*Show some text using the given formatting.W:Split the text into strips of no-more than the given widthXYWZ[\ XYWZ[\Safe &Specify the format to output the help.Equivalent to * if there is not too much text, otherwise .Display only the first mode.Display all modes.Bash completion informationZ shell completion informationkGenerate a help message from a mode. The first argument is a prefix, which is prepended when not using  or .]Help text for all modes S<program> [OPTIONS] <file_args> <options> <program> MODE [SUBMODE] [OPTIONS] [FLAG]^Help text for only this mode J<program> [OPTIONS] <file_args> <options> <program> MODE [FLAGS] <options>_`]^abcdefghijklm_`]^abcdefghijklmNoneNProcess the flags obtained by n and * with a mode. Displays an error and exits with failure if the command line fails to parse, or returns the associated value. Implemented in terms of dD. This function makes use of the following environment variables:$CMDARGS_COMPLETE3 - causes the program to produce completions using i7, then exit. Completions are based on the result of n5, the index of the current argument is taken from $CMDARGS_COMPLETE (set it to -U to complete the last argument), and the index within that argument is taken from $CMDARGS_COMPLETE_POS (if set).$CMDARGS_HELPER/$CMDARGS_HELPER_PROGS - uses the helper mechanism for entering command line programs as described in System.Console.CmdArgs.Helper./Process a list of flags (usually obtained from n and *) with a mode. Throws an error if the command line fails to parse, or returns the associated value. Implemeneted in terms of d^. This function does not take account of any environment variables that may be set (see ).If you are in ; you will probably get a better user experience by calling .Like 7 but on failure prints to stderr and exits the program. Create a help flag triggered by -?/--help. Create a help flag triggered by -?/--helpK. The user may optionally modify help by specifying the format, such as: --help=all - help for all modes --help=html - help in HTML format --help=100 - wrap the text at 100 characters --help=100,one - full text wrapped at 100 characters#Create a version flag triggered by -V/ --version.#Create a version flag triggered by --numeric-version.$Create verbosity flags triggered by -v/ --verbose and -q/--quiet opQ()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghiQdRQPSKLMNOTU?@ABCDEFGHIJVW:;<=>X92345678-./01Y+,Z[\]^_`abc*)(efghi opNone uDescribes whether an option takes an argument or not, and if so how the argument is injected into a value of type a.no argument expectedoption requires argumentoptional argumentEach  describes a single option/flag.The arguments to  are:list of short option characters%list of long option strings (without "--", may not be 1 character long)argument descriptor"explanation of option for userdata.What to do with options following non-options.Changes: Only  is allowed, both  RequireOrder and  ReturnInOrder have been removed.Return a string describing the usage of a command, derived from the header (first argument) and the options described by the second argument.sProcess the command-line, and return the list of values that matched (and those that didn't). The arguments are:The order requirements (see )The option descriptions (see )=The actual command line arguments (presumably got from ).m returns a triple consisting of the option arguments, a list of non-options, and a list of error messages.Changes:y The list of errors will contain at most one entry, and if an error is present then the other two lists will be empty.Changes: This is exactly the same as J, but the 3rd element of the tuple (second last) will be an empty list.@Given a help text and a list of option descriptions, generate a ?. None;N"Any value, with a Data dictionary.qrstuvwxyz{|}~qrstuvwxyz{|}~qrstuvwxyz{|}~None NoneNone+;N[This type represents an annotated value. The type of the underlying value is not specified.Construct a field, fieldname := value.Add annotations to a field.)The result of capturing some annotations.Many values collapsed ( or )#An annotation attached to a value ( or )A value (just a value, or )A missing field (a  exception, or missing from )!A constructor (a constructor, or )"Return the value inside a capture.KRemove all Missing values by using any previous instances as default values#Collapse multiple values in to one.hCapture a value. Note that if the value is evaluated more than once the result may be different, i.e. capture x /= capture xAdd an annotation to a value.&It is recommended that anyone making use of this function redefine it with a more restrictive type signature to control the type of the annotation (the second argument). Any redefinitions of this function should add an INLINE pragma, to reduce the chance of incorrect optimisations.Add an annotation to a value.)Collapse many annotated values in to one.#Lift a pure value to an annotation.Create a constructor/record. The first argument should be the type of field, the second should be a list of fields constructed originally defined by := or :=+.sThis operation is not type safe, and may raise an exception at runtime if any field has the wrong type or label.0Capture the annotations from an annotated value.'None*Find numbers starting after space/comma, vC,"  NoneNone"A mode devoid of all it's contents)A mode whose help hides all it's contents       !"#$%       !"#$%None XTake impurely annotated records and run the corresponding command line. Shortcut for  . .To use + with custom command line arguments see .VTake purely annotated records and run the corresponding command line. Shortcut for  . .To use + with custom command line arguments see .6Take impurely annotated records and turn them in to a ?$ value, that can make use of the System.Console.CmdArgs.Explicit functions (i.e. process).Annotated records are impure, and will only contain annotations on their first use. The result of this function is pure, and can be reused.4Take purely annotated records and turn them in to a ?$ value, that can make use of the System.Console.CmdArgs.Explicit functions (i.e. process).eRun a Mode structure. This function reads the command line arguments and then performs as follows:PIf invalid arguments are given, it will display the error message and exit.If --help5 is given, it will display the help message and exit.If  --version0 is given, it will display the version and exit.;In all other circumstances the program will return a value.Additionally, if either --quiet or  --verbose is given (see &) it will set the verbosity (see ).,Perform the necessary actions dictated by a ! structure.If $ is Just,, it will display the help message and exit.If % is Just', it will display the version and exit.2In all other circumstances it will return a value.Additionally, if & is Just (see &) it will set the verbosity (see ).&Produce command line arguments that would generate the given value. This function is useful for taking a value resulting from a command line, modifying it (perhaps changing the value of a flag) and generating fresh command line arguments. forall mode values constructed by cmdArgsMode/cmdArgsMode: forall args which successfully parse with mode let x = processValue mode args processValue mode (cmdArgsReform mode $ fromRight x) == xCModes: "I want a program with multiple modes, like darcs or cabal."Takes a list of modes, and creates a mode which includes them all. If you want one of the modes to be chosen by default, see . Tdata Modes = Mode1 | Mode2 | Mode3 deriving Data cmdArgs $ modes [Mode1,Mode2,Mode3]QFlag: "I want several different flags to set this one field to different values."This annotation takes a type which is an enumeration, and provides multiple separate flags to set the field to each value. The first element in the list is used as the value of the field. data State = On | Off deriving Data data Mode = Mode {state :: State} cmdArgs $ Mode {state = enum [On &= help "Turn on",Off &= help "Turn off"]} --on Turn on --off Turn offCThis annotation can be used to allow multiple flags within a field: data Mode = Mode {state :: [State]} cmdArgs $ Mode {state = enum [[] &= ignore, [On] &= help "Turn on", [Off] &= help "Turn off"]}Now  --on --off would produce  Mode [On,Off].Add an annotation to a value. Note that if the value is evaluated more than once the annotation will only be available the first time.Like !, but using the pure annotations.Like !, but using the pure annotations. '&;  !"#$%&'?op/!"#$%&' ? '& None<  Version of  without a ! context, only to be used within . Version of  without a ! context, only to be used within . Version of  without a ! context, only to be used within . Version of  without a ! context, only to be used within . Version of  without a ! context, only to be used within .0Quotation function to turn an impure version of System.Console.CmdArgs.Implicit% into a pure one. For details see System.Console.CmdArgs.Quote.(Apply the rewrite rules)[Move from the old names to the new names, sufficient for where that is the full translation*>Simplify the syntax tree - things like application of a lambda+YEvaluate through all locally defined functions and let expressions, at most once per defn,()*+-./012,()*+-./012None;  !"#$%&'?op3 ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6789:;<=>?@ A A B C D E F G HIJKLLMNOPPQRSTUVWXYZ[\\]^_`abcdefgghijklmnopqrstuvwxyz{|}~"y l m                                 ) !"#$%&'()*+,-./0123456789:;<<=>?@ABCDDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~TS       !"#$%&'() * + , - . / Q P 0 1 O2BxHgGO7ifqUCBGS6iKUIJPSystem.Console.CmdArgs.Implicit System.Console.CmdArgs.VerbositySystem.Console.CmdArgs.ExplicitSystem.Console.CmdArgs.HelperSystem.Console.CmdArgs.DefaultSystem.Console.CmdArgs.TextSystem.Console.CmdArgs.GetOptSystem.Console.CmdArgs.AnnotateSystem.Console.CmdArgs.Quote#System.Console.CmdArgs.Implicit.Ann"System.Console.CmdArgs.Implicit.UI$System.Console.CmdArgs.Implicit.Type)System.Console.CmdArgs.Explicit.SplitJoin,System.Console.CmdArgs.Explicit.ExpandArgsAt$System.Console.CmdArgs.Explicit.Type'System.Console.CmdArgs.Explicit.Process(System.Console.CmdArgs.Explicit.Complete$System.Console.CmdArgs.Explicit.HelpSystem.EnvironmentgetArgsData.Generics.AnyData.Generics.Any.Prelude&System.Console.CmdArgs.Implicit.Reader%System.Console.CmdArgs.Implicit.Local&System.Console.CmdArgs.Implicit.Reform&System.Console.CmdArgs.Implicit.GlobalwithArgsSystem.Console.CmdArgsbase Data.DataDataData.Typeable.InternalTypeableAnnopttyptypFiletypDirhelpnameargsargPos groupnamedetailssummaryautoprogramexplicitignore verbosityhelpArg versionArg verbosityArgs noAtExpand VerbosityQuietNormalLoud setVerbosity getVerbosityisNormalisLoud whenNormalwhenLoudCmdArgs cmdArgsValue cmdArgsHelpcmdArgsVersioncmdArgsVerbositycmdArgsPrivatejoinArgs splitArgs expandArgsAtRemapremapArgargValueargType argRequireFlag flagNamesflagInfo flagValueflagTypeflagHelpUpdateFlagInfoFlagReqFlagOpt FlagOptRareFlagNoneModemodeGroupModes modeNames modeValue modeCheck modeReform modeExpandAtmodeHelpmodeHelpSuffixmodeArgsmodeGroupFlagsGroup groupUnnamed groupHidden groupNamedFlagHelpHelpName parseBool fromGrouptoGroup modeModes modeFlags fromFlagOpt checkModeremap2 remapUpdate modeEmptymodemodesflagNoneflagOptflagReqflagArgflagBoolprocessComplete CompleteValue CompleteFile CompleteDircompleteUnknownexecutereceivereplycommentDefaultdef$fDefault(,,,,,,,,,)$fDefault(,,,,,,,,)$fDefault(,,,,,,,)$fDefault(,,,,,,)$fDefault(,,,,,)$fDefault(,,,,)$fDefault(,,,) $fDefault(,,) $fDefault(,)$fDefaultWord64$fDefaultWord32$fDefaultWord16$fDefaultWord8 $fDefaultWord$fDefaultInt64$fDefaultInt32$fDefaultInt16 $fDefaultInt8$fDefaultMaybe $fDefault[]$fDefaultDouble$fDefaultFloat$fDefaultInteger $fDefaultInt $fDefaultBool $fDefault()TextLineCols TextFormatHTMLWrap defaultWrapshowText HelpFormatHelpFormatDefault HelpFormatOne HelpFormatAllHelpFormatBash HelpFormatZshhelpText processArgs processValueprocessValueIOflagHelpSimpleflagHelpFormat flagVersionflagNumericVersionflagsVerbosityArgDescrNoArgReqArgOptArgOptDescrOptionArgOrderPermute usageInfogetOptgetOpt'convertAnyAnnotate:=:=+CaptureManyValueMissingCtor fromCapturedefaultMissingmanycapture&=+=many_atomrecordcapture_cmdArgscmdArgs_ cmdArgsMode cmdArgsMode_ cmdArgsRun cmdArgsApplyenumenum_modes_&=#modes# cmdArgsMode#cmdArgs#enum# cmdArgsQuoteExplicitIgnore GroupName FlagOptionalFlagArgs FlagArgPosFlagType ModeDefaultModeHelpSuffix ProgSummary ProgProgram ProgVerbosity ProgHelpArgProgVersionArgProgVerbosityArgsProgNoAtExpandrefCmdArgsPrivatecmdArgsHasValueembedreembed incArgsSeen getArgsSeen$fShowCmdArgsPrivate$fFunctorCmdArgsStateInitNormQuotGHC.Showshowghc-prim GHC.TypesTrueIO $fRemapArg $fRemapFlag $fRemapMode $fMonoidGroup$fFunctorGroup LookupNameNotFound AmbiguousFoundSval argsCounterrs processModestoperrupd processFlags pickFlags processFlag processArg argsRangeargsPick ambiguousmissing lookupNameShow followModes followArgsprependpickByexpectArgFlagMode expectArgFlag expectMode expectArg expectFlag expectVal expectStringsexpectFlagHelp completeBash completeZsh$fShowCompleteNonePackerpackunpackNoShowPackListCharIntFuncFuncIdStringIOMap fromUnknownhOut withBufferingnewIOMapaddIOMapgetIOMaptoValuesaveModeloadMode transformMdescendM transformdescenduniplateaddctorget$fPackerFlagInfo $fPackerArg $fPackerFlag $fPackerMode $fPackerGroup $fPackerBool$fPackerEither $fPackerMaybe $fPacker(,) $fPackerInt $fPackerChar $fPackerValue $fPacker(->) $fPacker[] $fReadNoShow $fShowNoShowwrapshowWrapwrap1showHTML $fShowText$fDefaultTextFormat helpTextAll helpTextOne helpPrefixhelpTextDefault helpTextMode helpGrouphelpArgshelpFlagcolsspace nullGroup notNullGroup mixedGroup $fShowArg $fShowFlag $fShowMode$fDefaultHelpFormatreadMayerrorWithoutStackTraceAnyT FieldNameCtorName readTupleTypetry1fromAnycasttoConstrtypeOf dataTypeOf isAlgType typeShell typeShellFulltypeNamefieldschildrencompose0 recomposectors decomposearitycomposegetFieldsetField $fShowAnyheadtailconsunconsnulljust_nil_list_appendreverseisStringisListisMaybeisTuplefromList fromMaybe fromTupleunittupleReader readerHelp readerBool readerParts readerFixup readerRead readerRead_readerreader_uncommascommastakessequenceEitherControl.Exception.Base RecConError ExceptionIntAAnnAManyAAtomACtorpushpopchangesetaddAnnforceid_ fieldIndexthrowIntcatchInt$fExceptionExceptionInt$fFunctorCapture parseVersionFixupFlag_ flagFieldflagFlag flagExplicit flagGroupflagEnum flagFixupArg_flagArg_ flagArgPos flagArgOptMode_ modeFlags_modeMode modeDefault modeGroup modeExplicitBuiltin_ builtinNamesbuiltinExplicit builtinHelp builtinGroupbuiltinSummaryProg_ progModes progSummary progProgramprogHelpprogVerbosityArgs progHelpArgprogVersionArgprogNoAtExpand progOutputprogHelpOutputprogVersionOutputprogNumericVersionOutputisFlag_withMode withFlagArg withFlagFlagerrFlaglocalprog_mode_flag_value_progAnn builtinAnns builtinAnnmodeAnnflagAnntoArg $fShowFixup$fDefaultFixup$fDefaultFlag_$fDefaultMode_$fDefaultBuiltin_$fDefaultProg_reformpickArg emptyModezeroModeNameshavewantglobal setProgOptscollapse collapseMode applyFixups collapseFlags collapseArgs orderArgs assignGroups assignCommon commonGroupgroupSplitCommongroupCommonHidegroupUncommonHidegroupUncommonDelete extraFlags changeBuiltinchangeBuiltin_setHelp changeHelp setReform assignNamesasNamenames duplicatesnamesOn_cmdArgsReformcmdArgsCapture translaterenamesimplifyinlinestub descendBi transformBi descendBiM