úÎ!{;pÁ¸      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·Safe"#,.78=>?@AGHUVXnÒoptparse-generic2Constraint for types whose fields can be unwrappedoptparse-generic(Flag to unwrap fields annotated using '( ?)'optparse-genericFlag to keep fields wrappedoptparse-generic0A type family to extract fields wrapped using '( ?)'optparse-generic Options for customizing derived " implementations for  typesYou can either create the  record directly: žmodifiers :: Modifiers modifiers = Modifiers { fieldNameModifier = ... , constructorNameModifier = ... , shortNameModifier = ... }... or you can tweak the /: Omodifiers :: Modifiers modifiers = defaultModifiers { fieldNameModifier = ... }&... or you can use/tweak a predefined Modifier, like 0The 2 function uses this  record when generating a  implementation of "optparse-generic/Transform the name of derived fields (Default: id) optparse-generic5Transform the name of derived constructors (Default:  map toLower)!optparse-generic=Derives an optional short name from the field name (Default:  \_ -> Nothing)"optparse-generic:A class for types that can be parsed from the command lineIThis class has a default implementation for any type that implements  and you can derive $ for many types by enabling the  DeriveGeneric language extensionYou can also use . to create a " instance from a ' instance: Linstance ParseRecord MyType where parseRecord = fmap getOnly parseRecord¸optparse-generic$A 1-tuple, used solely to translate ' instances into " instances$optparse-generic>Use this to annotate a field with a type-level string (i.e. a ¹7) representing the help description for that field: §data Example = Example { foo :: Int <?> "Documentation for the foo flag" , bar :: Double <?> "Documentation for the bar flag" } deriving (Generic, Show)'optparse-genericdA class for all types that can be parsed from zero or more arguments/options on the command line(? has a default implementation for any type that implements ))optparse-genericlA class for all record fields that can be parsed from exactly one option or argument on the command line*? has a default implementation for any type that implements º and ». You can derive º' for many types and you can derive » for any type if you enable the DeriveDataTypeable language extension+optparse-genericRThe only reason for this method is to provide a special case for handling ¼Xs. All other instances should just fall back on the default implementation for +.optparse-genericLThis is a convenience function that you can use if you want to create a "" instance that just defers to the ' instance for the same type: Linstance ParseRecord MyType where parseRecord = fmap getOnly parseRecord/optparse-generic5These are the default modifiers used if you derive a H implementation. You can customize this and pass the result to 2< if you would like to modify the derived implementation: ²myModifiers :: Modifiers myModifiers = defaultModifiers { constructorNameModifier = id } instance ParseRecord MyType where parseRecord = parseRecordWithModifiers myModifiers0optparse-generic)Convert field and constructor names from  CamelCase to  lisp-case.ƒLeading underscores are dropped, allowing one to use option names which are Haskell keywords or otherwise conflicting identifiers. \BuildCommand -> build-command someFlag -> --some-flag _type -> --type _splitAt -> --split-at1optparse-genericUse this for the ! field of the P record if you want to use the first letter of each option as the short name2optparse-genericUse 26 when you want to tweak the behavior of a derived " implementation, like this: ²myModifiers :: Modifiers myModifiers = defaultModifiers { constructorNameModifier = id } instance ParseRecord MyType where parseRecord = parseRecordWithModifiers myModifiers(This will still require that you derive C for your type to automate most of the implementation, but the Z that you pass will change how the implementation generates the command line interface3optparse-generic"Marshal any value that implements " from the command line$If you need to modify the top-level  ParserInfo or  ParserPrefs use the 4 function.4optparse-generic"Marshal any value that implements " from the command lineGThis is the lower-level sibling of 'getRecord and lets you modify the  ParserInfo and  ParserPrefs records.5optparse-generic"Marshal any value that implements "M from the commmand line alongside an io action that prints the help message.6optparse-genericPure version of 3#If you need to modify the parser's  ParserInfo or  ParserPrefs, use 7.:set -XOverloadedStrings getRecordPure ["1"] :: Maybe IntJust 1'getRecordPure ["1", "2"] :: Maybe [Int] Just [1,2]"getRecordPure ["Foo"] :: Maybe IntNothing7optparse-genericPure version of 4Like 4W, this is a sibling of 'getRecordPure and exposes the monoidal modifier structures for  ParserInfo and  ParserPrefs to you.:set -XOverloadedStrings2getRecordPureWith ["1"] mempty mempty :: Maybe IntJust 19getRecordPureWith ["1", "2"] mempty mempty :: Maybe [Int] Just [1,2]4getRecordPureWith ["Foo"] mempty mempty :: Maybe IntNothing½optparse-genericoptparse-generic's flavor of options.¾optparse-generic"Unwrap the fields of a constructor8optparse-generic"Marshal any value that implements "- from the command line and unwrap its fields9optparse-genericPure version of 8:optparse-generic"Marshal any value that implements "^ from the command line and unwrap its fields alongside an io action to print the help message (optparse-generic Help messageoptparse-generic Field labeloptparse-generic Short name*optparse-generic Help messageoptparse-generic Field labeloptparse-generic Short name+optparse-generic Help messageoptparse-generic Field labeloptparse-generic Short name3optparse-genericProgram description4optparse-generic ParserInfo modifiersoptparse-generic ParserPrefs modifiers5optparse-genericProgram descriptionoptparse-generic*(options, io action to print help message)6optparse-genericCommand-line arguments7optparse-genericCommand-line argumentsoptparse-generic ParserInfo modifiersoptparse-generic ParserPrefs modifiers9optparse-genericCommand-line arguments:optparse-genericProgram descriptionoptparse-generic*(options, io action to print help message);    !"#$%&'(),-*+./0123456789:;345678:9"#'(),-*+. !2/01$%&   0¿            !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆ-optparse-generic-1.3.1-IF4lOJs5uVOAEFa1LMzYLWOptions.Genericbase GHC.GenericsGenericOnly-0.1-4eYnxvcrr7tEbYgCvIkHLbData.Tuple.OnlyfromOnlyOnly Data.MonoidgetFirstFirstgetLastLastData.Semigroup.InternalgetAllAllgetAnyAnygetSumSum getProductProduct text-1.2.3.1Data.Text.InternalText Unwrappable UnwrappedWrapped:::GenericParseRecordgenericParseRecord ModifiersfieldNameModifierconstructorNameModifiershortNameModifier ParseRecord parseRecordHelpful unHelpful ParseFields parseFields ParseField parseFieldparseListOfField readFieldmetavargetOnlydefaultModifierslispCaseModifiers firstLetterparseRecordWithModifiers getRecord getRecordWith getWithHelp getRecordPuregetRecordPureWith unwrapRecordunwrapRecordPureunwrapWithHelp$fParseFieldDay$fParseFieldFilePath$fParseFieldByteString$fParseFieldText$fParseFieldByteString0$fParseFieldText0$fParseFieldAll$fParseFieldAny$fParseFieldChar$fParseField[]$fParseFieldNatural$fParseFieldWord64$fParseFieldWord32$fParseFieldWord16$fParseFieldWord8$fParseFieldInt64$fParseFieldInt32$fParseFieldInt16$fParseFieldInt8$fParseFieldInt$fParseFieldVoid$fParseField()$fParseFieldOrdering$fParseFieldInteger$fParseFieldFloat$fParseFieldDouble$fParseFieldBool$fParseField$fGenericParseRecordM1$fGenericParseRecordV1$fGenericParseRecord:*:$fGenericParseRecord:+:$fGenericParseRecord:+:0$fGenericParseRecord:+:1$fGenericParseRecord:+:2$fGenericParseRecordM10$fGenericParseRecordU1$fParseRecordNonEmpty$fParseRecord[]$fParseRecordProduct$fParseRecordSum$fParseRecordLast$fParseRecordFirst$fParseRecordMaybe$fParseRecordDay$fParseRecordByteString$fParseRecordByteString0$fParseRecordFilePath$fParseRecordAll$fParseRecordAny$fParseRecordText$fParseRecordText0$fParseRecordInteger$fParseRecordBool$fParseRecordNatural$fParseRecord()$fParseRecordWord64$fParseRecordWord32$fParseRecordWord16$fParseRecordWord8$fParseRecordVoid$fParseRecordOrdering$fParseRecordInt64$fParseRecordInt32$fParseRecordInt16$fParseRecordInt8$fParseRecordInt$fParseRecordFloat$fParseRecordDouble$fParseRecordChar$fGenericParseRecordM11$fParseRecordEither$fParseRecord(,,,,,,)$fParseRecord(,,,,,)$fParseRecord(,,,,)$fParseRecord(,,,)$fParseRecord(,,)$fParseRecord(,)$fParseRecordOnly$fParseRecordOnly_$fParseRecord$fParseFields$fParseFieldsNonEmpty$fParseFields[]$fParseFieldsProduct$fParseFieldsSum$fParseFieldsLast$fParseFieldsFirst$fParseFieldsMaybe$fParseFieldsAll$fParseFieldsAny$fParseFields()$fParseFieldsBool$fParseFieldsNatural$fParseFieldsDay$fParseFieldsFilePath$fParseFieldsText$fParseFieldsText0$fParseFieldsByteString$fParseFieldsByteString0$fParseFieldsWord64$fParseFieldsWord32$fParseFieldsWord16$fParseFieldsWord8$fParseFieldsVoid$fParseFieldsOrdering$fParseFieldsInteger$fParseFieldsInt64$fParseFieldsInt32$fParseFieldsInt16$fParseFieldsInt8$fParseFieldsInt$fParseFieldsFloat$fParseFieldsDouble$fParseFieldsChar$fGenericUnwrappableK1K1$fGenericUnwrappableK1K10$fGenericUnwrappable:*::*:$fGenericUnwrappable:+::+:$fGenericUnwrappableM1M1$fGenericUnwrappableU1U1 $fGeneric $fShow$fGenericOnly_ $fShowOnly_Only_ghc-prim GHC.TypesSymbolGHC.ReadReadData.Typeable.InternalTypeableGHC.BaseStringdefaultParserPrefsunwrap