B<      Safe-Inferred !"#$%&!"#$ !"#$%& Safe-Inferred-5Type to wrap results from the pure parsing functions.The CLI was used with --help. The  contains the help message. "The CLI was used incorrectly. The & contains a list of error messages.ZIt can also happen that the data type you're trying to use isn't supported. See the  9https://github.com/zalora/getopt-generics#getopt-genericsREADME for details. /The CLI was used correctly and a value of type a! was successfully constructed.  '()*+,-. '()  '()*+,-.None !"3E  3s can be used to customize the command line parser. AddVersionFlag version adds a  --version flag.  AddOptionHelp fieldName helpText$ adds a help text for the option  fieldName.0UseForPositionalArguments fieldName argumentType! fills the field addressed by  fieldNamer with the positional arguments (i.e. arguments that don't correspond to a flag). The field has to have type [/]. argumentTypeG is used as the type of the positional arguments in the help output.RenameOptions fO renames all options with the given functions. In case the function returns Nothing! the original field name is used.Can be used together with .!RenameOption fieldName customName- renames the option generated through the  fieldName by  customName.AddShortOption fieldName c adds the 0 c1 as a short option for the field addressed by  fieldName.Derives Gs for all fields of the datatype that start with a unique character.1234567 89:;<=>?@ABCD1 8:;<=>?@BC1234567  89:;<=>?@ABCDNone !"&()+-02346=HJKM 'Type class for all allowed field types.AIf you want to use custom field types you should implement an instance Option YourCustomType" containing implementations of  and A (the minimal complete definition). For an example see the  9https://github.com/zalora/getopt-generics#getopt-genericsREADME.4Name of the argument type, e.g. "bool" or "integer". Parses a / into an argument. Returns E on parse errors.)This is meant to be an internal function.)This is meant to be an internal function.)This is meant to be an internal function.+Parses command line arguments (gotten from FW) and returns the parsed value. This function should be enough for simple use-cases.#May throw the following exceptions: ExitFailure 1@ in case of invalid options. Error messages are written to stderr. ExitSuccess in case --help is given. ( ExitSuccesso behaves like a normal exception, except that -- if uncaught -- the process will exit with exit-code 0.) Help output is written to stdout.Like  but allows you to pass in  s.Pure variant of .Does not throw any exceptions.0GHIJKLMNOPQRSTName of the program (e.g. from U).List of  /s to manually tweak the command line interface.3List of command line arguments to parse (e.g. from V).WXYZ[\]^_`abcdefghijklmno(GHIJKLMNOPQRSTWXYZ[\]^_`abcdefg!GLKJIHMONPQRTSWXYZ[\]^_`abcdefghijklmnoNone!"&(0234=JKM: converts an IO operation into a program with a nice CLI. mainV can have arbitrarily many parameters provided all parameters have an instance for .Example: Given a file  myProgram.hs: nmain :: IO () main = simpleCLI myMain myMain :: String -> Int -> Bool -> IO () myMain s i b = print (s, i, b)you get: $ runhaskell myProgram.hs foo 42 true ("foo",42,True) $ runhaskell myProgram.hs foo 42 bar cannot parse as BOOL: bar $ runhaskell myProgram.hs --help myProgram.hs [OPTIONS] STRING INTEGER BOOL -h --help show help and exitpqrspqpqrsNone     t        !"#$%&'()*+,--./0123456789:; <=>?@AABCDEFGHIJKLMNOPQRS TU VWXYZ[\]^_`aabcd Ve Vfghijklmnopqrstuvwxyz{|}~getopt-generics-0.9System.Console.GetOpt.Generics*System.Console.GetOpt.Generics.FieldString%System.Console.GetOpt.Generics.Result'System.Console.GetOpt.Generics.Modifier Data.List stripPrefix+System.Console.GetOpt.Generics.GetArguments%System.Console.GetOpt.Generics.Simplebase Data.ProxyProxygenerics-sop-0.1.1.2Generics.SOP.UniverseCodeGenericHasDatatypeInfoGenerics.SOP.ConstraintAll2Generics.SOP.SingSingIResult OutputAndExitErrorsSuccessModifierAddVersionFlag AddOptionHelpUseForPositionalArguments RenameOptions RenameOptionAddShortOptionderiveShortOptionsOption argumentType parseArgument _toOption _emptyOption _accumulate getArgumentsmodifiedGetArgumentsparseArguments SimpleCLI ArgumentTypes simpleCLI FieldString normalized mkFieldStringmatchesrenameUnnormalized normalize isAllowedCharerrors outputAndExit handleResultaddNewlineIfMissingremoveTrailingNewlinestripTrailingSpaces $fMonadResult$fApplicativeResultGHC.BaseStringghc-prim GHC.TypesChar Modifiers _shortOptions _renamingpositionalArgumentsField helpTextsversion mkModifierslookupMatchingmkShortOptions mkLongOptionhasPositionalArgumentsFieldisPositionalArgumentsFieldgetPositionalArgumentType getHelpText getVersionflagsmkShortModifiers insertWithinsert Data.MaybeNothingSystem.EnvironmentwithArgs FieldStatePositionalArgumentPositionalArguments FieldSuccess FieldErrorsUnsetOutputInfoFlag VersionFlagHelpFlag OptDescrEFieldSelector NoSelector getProgNamegetArgs processFields mkOptDescrs mkOptDescr toOptDescrmkInitialFieldStates outputInfopositionalArgumentHelpfillInPositionalArguments collectResultproject impossible uninhabitedtoProxyparseArgumentEitherparseAsFieldStatecombine readNumber$fOptionDouble $fOptionFloat$fOptionInteger $fOptionInt $fOption[] $fOptionBool $fOptionMaybe $fOption[]0_initialFieldStates_run$fSimpleCLI(->) $fSimpleCLIIO