!E      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ Safe&' Safe ,=>?@AHVX_Safe2=? lambda-options Convenience  creation class.lambda-optionsAn option keyword, such as "--help"lambda-options!All the aliases for this keyword.lambda-optionsCText to describe the arguments to the option given by this keyword.lambda-optionsBText to describe the function of the option given by this keyword.lambda-optionsShorthand for .lambda-options Sets the 1 field in the keyword. Intended to be used infix: =kw "--directory" `argText` "DIR" `text` "Write files to DIR." lambda-options Sets the 1 field in the keyword. Intended to be used infix. /kw "--quiet" `text` "Suppress message display." lambda-optionsUsed to create an empty  with no aliases. lambda-optionsUsed to create a  with many (or no) aliases lambda-optionsUsed to create a  with a single alias.lambda-optionsIdentiy mapping.   Safe_lambda-options"User configuration for formatting.lambda-options6Formats the given string with the given configuration.lambda-options8Formats the given keywords with the given configuration.lambda-options !FormatConfig { fmtMaxWidth = 80 }Safe=>?X_Flambda-options1Class describing parseable values. Much like the  class.lambda-optionsGiven a sequence of strings,  returns W and the number of strings (not characters) consumed if the parse failed. Otherwise,  returns 6 the parsed value and the number of strings consumed.cElement-wise, an entire string must be parsed in the sequence to be considered a successful parse.lambda-options?Turns a parser of a single string into a parser suitable for a  instance.Useful for implementing a  for a type with a  instance by supplying  to this function.Note: The string is not@ tokenized in any way before being passed into the input parser. lambda-optionsDeprecated: Use  instead.!lambda-options?Turns a parser of a single string into a parser suitable for a  instance.Useful for implementing a  for a type with a  instance by supplying  to this function.Note: The string is not@ tokenized in any way before being passed into the input parser."lambda-optionsRepeatedly applies 5 the given number of times, accumulating the results.$Useful for implementing new parsers.Example: data Point = Point Float Float Float instance Parseable Point where parse args = case repeatedParse 3 args of (Just [x,y,z], n) -> (Just (Point x y z), n)` (Nothing, n) -> (Nothing, n)#lambda-options!Parses three values sequentially.$lambda-optionsParses two values sequentially.%lambda-options-Always succeeds and never consumes any input.&lambda-options Parses a % by matching its corresponding shown .Ex: > parse ["0"] == (Just (Proxy :: SomeNat (Proxy 0)), 1) > parse ["13"] == (Just (Proxy :: SomeNat (Proxy 13)), 1) > parse ["00"] == Nothing > parse ["0xFF"] == Nothing'lambda-optionsOpaque identity parser for   .Ex: > parse [""] == (Just (SomeSymbol (Proxy :: Proxy "")), 1) > parse ["foo"] == (Just (SomeSymbol (Proxy :: Proxy "foo")), 1) > parse [] == (Nothing, 0)(lambda-options!Parses the exact string given by .Ex: > parse [""] == (Just (Proxy :: Proxy ""), 1) > parse ["foo"] == (Just (Proxy :: Proxy "foo"), 1) > parse ["foo"] == (Nothing :: Maybe (Proxy :: "bar"), 0) > parse [] == (Nothing, 0))lambda-options Parses a % by matching its corresponding shown .Ex: > parse ["0"] == (Just (Proxy :: Proxy 0), 1) > parse ["13"] == (Just (Proxy :: Proxy 13), 1) > parse ["00"] == Nothing > parse ["0xFF"] == Nothing*lambda-options>Greedily parses a single argument or no argument. Never fails.+lambda-options Parses an  using its  instance.,lambda-options Parses a  using its  instance.-lambda-optionsIdentity parser. Tparse [""] == (Just "", 1) parse ["foo"] == (Just "foo", 1) parse [] == (Nothing, 0).lambda-options!Parses a single character string./lambda-options Parses an  using its  instance.0lambda-options Parses an  using its  instance.1lambda-options Parses a  using its  instance. !"!" Safe2K^2lambda-optionsA simple wrapper over [a]+. Used to avoid overlapping instances for  Parseable [a] and Parseable String.5lambda-options1Greedily parses arguments item-wise. Never fails. Example: 3parse (words "5 67 NaN") == (Just (List [5,67]), 2)234234Safe ,=>?@AHVXL Safe,2>@AX_w;lambda-optionsPContains information about what went wrong during an unsuccessful options parse.Alambda-optionsA monad for parsing options.Blambda-optionsDescribes 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 r2Each of the callback's arguments must have a type t which implements  and .2Think of this as the following constraint synonym: Ytype OptionCallback r f = (f ~ (Parseable t*, Typeable t*) => t0 -> t1 -> ... -> tN -> r)Example callbacks: %f0 = putStrLn "Option parsed!" :: IO () f1 = put :: String -> State String () f2 = liftIO . print :: (MonadIO m) => Int -> m () f3 name year ratio = lift (print (name, year, ratio)) :: (MonadTrans m) => String -> Int -> Float -> m IO () f4 = 7 :: Int f5 = (:) :: Double -> [Double] -> [Double]Clambda-optionsPretty prints an ;.Dlambda-options|Tries to parse the supplied options against input arguments. If successful, parsed option callback results are returned in . Otherwise an ; is returned in .Example program: Cimport qualified System.Environment as IO import qualified Text.LambdaOptions as L options :: L.Options (IO ()) () options = do L.addOption (L.kw ["--help", "-h"] `L.text` "Display this help text.") $ do putStrLn "Usage:" putStrLn $ L.getHelpDescription options L.addOption (L.kw "--user" `L.argText` "NAME" `L.text` "Prints name.") $ \name -> do putStrLn $ "Name:" ++ name L.addOption (L.kw "--user" `L.argText` "NAME AGE" `L.text` "Prints name and age.") $ \name age -> do putStrLn $ "Name:" ++ name ++ " Age:" ++ show (age :: Int) main :: IO () main = do args <- IO.getArgs case L.runOptions options args of Left e -> do putStrLn $ L.prettyOptionsError e putStrLn $ L.getHelpDescription options Right actions -> sequence_ actions5example.exe --user HaskellCurry 81 --user GraceHopperName:HaskellCurry Age:81Name:GraceHopperexample.exe -hUsage:3-h, --help Display this help text.( --user NAME Prints name.0 --user NAME AGE Prints name and age."example.exe --user Pythagoras LXXV!Unknown option at index 2: `LXXV'Usage:3-h, --help Display this help text.( --user NAME Prints name.0 --user NAME AGE Prints name and age.Elambda-options Adds the supplied option to the  Options r () 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.Flambda-options9Produces the help description given by the input options.Glambda-options Produces the "s inserted into the input options. ;<=>?@ABCDEFG DA;<=>?@CBEFGSafe ./2=?HX_kMlambda-optionsParsers for the various ^ type constructors.Olambda-optionsParsers for the various c type constructors.Qlambda-optionsParsers for the various f type constructors.Slambda-optionsTurns a type-level X into a value-level one.Ulambda-optionsData type used for parsing  values with various schemes.(It can be useful to alias for this type: type B = Booly 'AllowWord 'DisallowLetter 'DisallowNumber 'LowerAll pattern B :: Bool -> B pattern B x = Booly x b :: B -> Bool b = unBoolyXlambda-optionsControls required casing for U.Ylambda-optionsCasing is completely ignored.Zlambda-options Either casing satisfies a parse.[lambda-optionsFully lowercase is required.\lambda-optionsFully uppercase is required.]lambda-options?The first letter must be uppercase. The rest must be lowercase.^lambda-options#Controls number representation for U._lambda-options Disallow number representations.`lambda-optionsAllow 0 and 1 number representations.alambda-optionsAllow N >= 0 integer representations. 0 maps to . N > 0 maps to .blambda-options Allow any N integer representation. 0 maps to . N /= 0 maps to .clambda-options#Controls letter representation for U.dlambda-options Disallow "t" and "f" letter representations.elambda-optionsAllow "t" and "f" letter representations.flambda-options!Controls word representation for U.glambda-options Disallow "true" and "false" word representations.hlambda-optionsAllow "true" and "false" word representations.ilambda-optionsReads a U from a .slambda-options Parses a U using i.MNOPQRSTUVWXYZ[\]^_`abcdefghiUVWfghcde^_`abXYZ[\]QROPMNSTiSafeC  !"234;<=>?@ABCDEFGMNOPQRSTUVWXYZ[\]^_`abcdefghiSafe}}Safe.g]~~ Safe !"#$%%&'()*+,-./0123456789:;<=>?@ABBCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcddefghijklmnopqrstuvwxyz{|}~      -lambda-options-1.0.2.0-EPUd12Ts7LT3iUxFUuEohlText.LambdaOptions.KeywordText.LambdaOptions.FormatterText.LambdaOptions.ParseableText.LambdaOptions.ListText.LambdaOptions.CoreText.LambdaOptions.Bool)Text.LambdaOptions.Example.Example_3_Repl*Text.LambdaOptions.Example.Example_2_Booly/Text.LambdaOptions.Example.Example_1_BasicUsage"Text.LambdaOptions.Internal.Opaque Text.LambdaOptions.Internal.Wrap GHC.TypeLits SymbolVal(Text.LambdaOptions.Internal.OpaqueParser Parseable Data.TypeableTypeableText.LambdaOptions ToKeyword toKeywordKeywordkwNames kwArgTextkwTextkwargTexttext$fIsStringKeyword $fToKeyword() $fToKeyword[]$fToKeyword[]0$fToKeywordKeyword $fDataKeyword $fShowKeyword $fEqKeyword $fOrdKeyword FormatConfig fmtMaxWidthformatformatKeywordsdefaultFormatConfig$fShowFormatConfig$fReadFormatConfig$fEqFormatConfig$fOrdFormatConfigparse maybeParse simpleParse boundedParse repeatedParse$fParseable(,,)$fParseable(,) $fParseable()$fParseableSomeNat$fParseableSomeSymbol$fParseableProxy$fParseableProxy0$fParseableMaybe$fParseableDouble$fParseableFloat $fParseable[]$fParseableChar$fParseableInteger$fParseableInt$fParseableWordListunList$fParseableList $fDataList $fShowList $fReadList$fEqList $fOrdList OptionsError ParseFailedparseFailedMessageparseFailedArgsparseFailedBeginArgsIndexparseFailedEndArgsIndexOptionsOptionCallbackprettyOptionsError runOptions addOptiongetHelpDescription getKeywords$fMonadStateOptionsStateOptions$fMonadOptions$fApplicativeOptions$fFunctorOptions$fShowOptionsErrorReadBoolNumberreadBoolNumberReadBoolLetterreadBoolLetter ReadBoolWord readBoolWord BoolCasingVal boolCasingValBoolyunBooly BoolCasing IgnoreCaseOrCasingLowerAllUpperAll UpperHead BoolNumberDisallowNumberAllowBit AllowNatural AllowInteger BoolLetterDisallowLetter AllowLetterBoolWord DisallowWord AllowWord readBooly$fBoolCasingValUpperHead$fBoolCasingValUpperAll$fBoolCasingValLowerAll$fBoolCasingValIgnoreCase$fBoolCasingValOrCasing$fReadBoolWordAllowWord$fReadBoolWordDisallowWord$fReadBoolLetterAllowLetter$fReadBoolLetterDisallowLetter$fParseableBooly$fReadBoolNumberAllowInteger$fReadBoolNumberAllowNatural$fReadBoolNumberAllowBit$fReadBoolNumberDisallowNumber $fDataBooly $fShowBooly $fReadBooly $fEqBooly $fOrdBoolymainOpaqueCallbackOpaqueWrapwrapbaseGHC.ReadRead GHC.MaybeNothingJust Text.Read readMaybe+read-bounded-0.1.1.2-IvQxIbgE8wlINi6FkiMdakText.Read.Bounded ReadBounded readBounded GHC.TypeNatsSomeNatnatVal symbolValKnownNatghc-prim GHC.TypesDoubleFloat integer-gmpGHC.Integer.TypeIntegerIntWordGetOpaqueParsers OpaqueParsergetOpaqueParsers Data.EitherRightLeftBoolFalseTrueGHC.BaseString