61     None !"&)+246=BMTPContains information about what went wrong during an unsuccessful options parse. Contains (error-message) (begin-args-index) (end-args-index)(A monad transformer for parsing options.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. 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 .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 () 1Class 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. `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 descA simple wrapper over [a]*. Used to avoid overlapping instances for  Parseable [a] and Parseable String Convenience y to build upon. Takes either a single alias or a list of name aliases to start with. Use record syntax to set the rest.~Tries to parse the supplied options against input arguments. If successful, parsed option callbacks are executed. Otherwise none of the callbacks are executed.Example: import System.Environment import Text.LambdaOptions options :: Options IO () options = do addOption (kw "--help") $ do putStrLn "--user NAME [AGE]" addOption (kw "--user") $ \name -> do putStrLn $ "Name:" ++ name addOption (kw "--user") $ \name age -> do putStrLn $ "Name:" ++ name ++ " Age:" ++ show (age :: Int) main :: IO () main = do args <- getArgs mError <- runOptions options args case mError of Just (ParseFailed msg _ _) -> putStrLn msg Nothing -> return () 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.g !"#$%&'()*+,-./01 23456789 :;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghij    F !"#$%&'()*+,-./01 23456789   :;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijk       !!"##$%&'()*++,-./01234566789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghlambda-options-0.3.0.0Text.LambdaOptions OptionsError ParseFailedOptions ToKeywordKeywordkwNames kwArgTextkwTextOptionCallback ParseableparseHelpDescriptionListkw runOptions addOptionbaseData.Typeable.InternalTypeableGHC.ReadRead Data.MaybeNothingJust FormatterFormatterState fmtConfigfmtEmittedCharsfmtWordfmtWidthfmtIndentationFormattingConfig fmtMaxWidth OptionsStatestateOpaqueParsersstateOptionsByAritystateCollectedActions stateCurrMark stateHighMark stateArgs unOptions OptionInfo optionKeywordoptionTypeRepsoptionOpaqueCallback toKeyword WrapCallbackwrapGetOpaqueParsersgetOpaqueParsers OpaqueParserOpaqueCallbackOpaque internalErrormkProxy simpleParse parseOpaque internalizeKw mkParseFailedmkParseFailed' runOptions' addByArityfirstM' tryParseAlltryParsetryParseByAritytryParseByOptionstryParseByOptionhandleSpecialOpaque matchKeyword matchKeyword'sequenceParserscollectKeywordscreateHelpDescription runFormatter formatKeywordisShortformatKeywordNamesformatKeywordArgTextformatKeywordText flushWordchangeIndentationindentnewLine emitSpaceemitChar emitString$fMonadTransOptions $fToKeyword[]$fToKeyword[]0$fToKeywordKeyword$fIsStringKeyword$fWrapCallbackm(->)$fWrapCallbackmm$fGetOpaqueParsersm$fGetOpaqueParsers(->)$fParseableHelpDescription$fParseableList$fParseableMaybe$fParseableFloat $fParseable[]$fParseableInt