úÎSūMƒ%      !"#$  Safe-Inferred!" Safe-Inferred23468%&'%&' Safe-Inferred241Class describing parseable values. Much like the ( class.%Given a sequence of strings, returns )L and the number of strings consumed if the parse failed. Otherwise, return *š the parsed value and the number of strings consumed. Element-wise, an entire string must be parsed in the sequence to be considered a successful parse.+>Greedily parses a single argument or no argument. Never fails., Parses a - using its ( instance..Identity parser./ Parses an 0 using its ( instance.1 Parses an 2 using its 3 instance.4 Parses a 5 using its 3 instance. 67+,./14 67+,./14 Safe-Inferred24 89:;   89:; Safe-Inferred+ A simple wrapper over [a]*. Used to avoid overlapping instances for  Parseable [a] and Parseable String<1Greedily parses arguments item-wise. Never fails. =<    =< Safe-Inferred+24  Convenience  creation class.An option keyword, such as "--help"!All the aliases for this keyword.CText to describe the arguments to the option given by this keyword.BText to describe the function of the option given by this keyword.Shorthand for  . Sets the 1 field in the keyword. Intended to be used infix: =kw "--directory" `argText` "DIR" `text` "Write files to DIR." Sets the 1 field in the keyword. Intended to be used infix. /kw "--quiet" `text` "Suppress message display.">Used to create a  with many (or no) aliases?Used to create a  with a single alias.@Identiy mapping. >?@A     >?@ANoneB"User configuration for formatting.6Formats the given string with the given configuration.8Formats the given keywords with the given configuration. !FormatConfig { fmtMaxWidth = 80 }BCDEFGHIJKLMNOPQRSTUVBCDEFGHIJKLMNOPQRSTUVNone&+B `When used as a callback argument, this contains the help description given by the added options.Example: QaddOption (kw ["--help", "-h"]) $ \(HelpDescription desc) -> do putStrLn descPContains information about what went wrong during an unsuccessful options parse. Contains (error-message) (begin-args-index) (end-args-index) A monad for parsing options.!Describes the callback f/ to be called for a successfully parsed option.The function (or value) f= can have any arity and ultimately returns a value with type Monad m => m ()2Each of the callback's arguments must have a type t which implements  and W.2Think of this as the following constraint synonym: etype OptionCallback m f = (Monad m, f ~ (Parseable t*, Typeable t*) => t0 -> t1 -> ... -> tN -> m ())Example callbacks: đf0 = putStrLn "Option parsed!" :: IO () f1 = put :: String -> State String () f2 n = liftIO (print n) :: (MonadIO m) => Int -> m () f3 name year ratio = lift (print (name, year, ratio)) :: (MonadTrans m) => String -> Int -> Float -> m IO ()"uTries to parse the supplied options against input arguments. If successful, parsed option callbacks are returned in X. Otherwise an  is returned in Y.Example program: ˙íimport System.Environment import Text.LambdaOptions options :: Options IO () options = do addOption (kw ["--help", "-h"] `text` "Display this help text.") $ \(HelpDescription desc) -> do putStrLn "Usage:" putStrLn desc addOption (kw "--user" `argText` "NAME" `text` "Prints name.") $ \name -> do putStrLn $ "Name:" ++ name addOption (kw "--user" `argText` "NAME AGE" `text` "Prints name and age.") $ \name age -> do putStrLn $ "Name:" ++ name ++ " Age:" ++ show (age :: Int) main :: IO () main = do args <- getArgs case runOptions options args of Left (ParseFailed msg _ _) -> do putStrLn msg putStrLn $ getHelpDescription options Right action -> action&example.exe --user John 20 --user JaneName:John Age:20 Name:Janeexample.exe -hUsage:3-h, --help Display this help text.( --user NAME Prints name.0 --user NAME AGE Prints name and age.(example.exe --user BadLuckBrian thirteen%Unknown option at index 2: `thirteen'Usage:3-h, --help Display this help text.( --user NAME Prints name.0 --user NAME AGE Prints name and age.# Adds the supplied option to the  Options m () context.“If the keyword is matched and the types of the callback's parameters can successfully be parsed, the callback is called with the parsed arguments.$9Produces the help description given by the input options.ZEConsumes nothing. Returns the options' help description. Never fails..[\]^_`abc defghij!klmn"opq#rstuvwxyz{|}~$Z  !"#$ " !#$[\]^_`abc defghij!klmn"opq#rstuvwxyz{|}~$Z None  !"#$      !""#$%&'()*+,-./-01-023456789:;<=56>?@AB56CDEFGHIJ*KLMNOPPQRSTUVWXYZ[\]^_`ab-cd-ef-eghiijklmnop%qrrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Šlambda-options-0.7.0.0"Text.LambdaOptions.Internal.Opaque Text.LambdaOptions.Internal.WrapText.LambdaOptions.Parseable(Text.LambdaOptions.Internal.OpaqueParserText.LambdaOptions.ListText.LambdaOptions.KeywordText.LambdaOptions.FormatterText.LambdaOptions.CoreText.LambdaOptionsOpaqueCallbackOpaqueWrapwrap ParseableparseGetOpaqueParsersgetOpaqueParsers OpaqueParserList ToKeyword toKeywordKeywordkwNames kwArgTextkwTextkwargTexttext FormatConfig fmtMaxWidthformatformatKeywordsdefaultFormatConfigHelpDescription OptionsError ParseFailedOptionsOptionCallback runOptions addOptiongetHelpDescription internalError $fWrapm(->)$fWrapmmbaseGHC.ReadRead Data.MaybeNothingJust$fParseableMaybe$fParseableFloatghc-prim GHC.TypesFloat $fParseable[]$fParseableInteger integer-gmpGHC.Integer.TypeInteger$fParseableIntIntread-bounded-0.1.1.0Text.Read.Bounded ReadBounded$fParseableWordWord simpleParse parseBoundeddecomposeFuncProxy parseOpaque$fGetOpaqueParsersm$fGetOpaqueParsers(->)$fParseableList $fToKeyword[]$fToKeyword[]0$fToKeywordKeyword$fIsStringKeyword FormatterFormatterState fmtConfigfmtEmittedCharsfmtWordfmtWidthfmtIndentation runFormatter formatKeywordisShortformatKeywordNamesformatKeywordArgTextformatKeywordText flushWordchangeIndentationindentnewLine emitSpaceemitChar emitStringData.Typeable.InternalTypeable Data.EitherRightLeft$fParseableHelpDescription OptionsStatestateOpaqueParsersstateOptionsByAritystateCollectedActions stateCurrMark stateHighMark stateArgsstateFormatConfig unOptions OptionInfo optionKeywordoptionTypeRepsoptionOpaqueCallbackgetProxyinternalizeKeyword mkParseFailedmkParseFailed'runOptionsInternal runOptions' addByArityfirstMwhileM tryParseAlltryParsetryParseByAritytryParseByOptionstryParseByOptionhandleSpecialOpaque matchKeyword matchKeyword'sequenceParserscollectKeywordscreateHelpDescription