RL%      !"#$  Safe-Inferred!" Safe-Inferred23468%&'%&' Safe-Inferred241Class describing parseable values. Much like the ( class. %Given a sequence of strings, returns )M 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+,./1+,./ Safe-Inferred24 2345   2345 Safe-Inferred+ A simple wrapper over [a]*. Used to avoid overlapping instances for  Parseable [a] and Parseable String 62Greedily parses arguments item-wise. Never fails.  76    76 Safe-Inferred+24  Convenience  creation class. An option keyword, such as "--help" "All the aliases for this keyword. DText to describe the arguments to the option given by this keyword. CText to describe the function of the option given by this keyword. Shorthand for  .  Sets the 2 field in the keyword. Intended to be used infix: >kw "--directory" `argText` "DIR" `text` "Write files to DIR."  Sets the 2 field in the keyword. Intended to be used infix. 0kw "--quiet" `text` "Suppress message display." 8Used to create a  with many (or no) aliases 9Used to create a  with a single alias. :Identiy mapping.  89:;     89:;NoneB#User configuration for formatting. 7Formats the given string with the given configuration. 9Formats the given keywords with the given configuration.  "FormatConfig { fmtMaxWidth = 80 } <=>?@ABCDEFGHIJKLMNOP<=>?@ABCDEFGHIJKLMNOPNone&+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 Q.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 R. Otherwise an  is returned in S.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.TEConsumes nothing. Returns the options' help description. Never fails..UVWXYZ[\] ^_`abcd!efgh"ijk#lmnopqrstuvwx$T  !"#$ " !#$UVWXYZ[\] ^_`abcd!efgh"ijk#lmnopqrstuvwx$T None  !"#$y      !""#$%&'()*+,-./-01-02345678956:;<=>?@*ABCDEFFGHIJKLMNOPQRSTUVWX-YZ-[\-[]^__`abcdef%ghhijklmnopqrstuvwxyz{|}~lambda-options-0.6.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[]$fParseableIntInt simpleParsedecomposeFuncProxy 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