!v      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~Safe"#,.78=>?@AHUVXtoptparse-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 2: Omodifiers :: Modifiers modifiers = defaultModifiers { fieldNameModifier = ... }&... or you can use/tweak a predefined Modifier, like 3The 5 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 1 to create a " instance from a * instance: Linstance ParseRecord MyType where parseRecord = fmap getOnly parseRecordoptparse-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 4) representing the default value for that field: odata Example = Example { foo :: Int <!> "1" , bar :: Double <!> "0.5" } deriving (Generic, Show)'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 .1optparse-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 parseRecord2optparse-generic5These are the default modifiers used if you derive a H implementation. You can customize this and pass the result to 5< if you would like to modify the derived implementation: myModifiers :: Modifiers myModifiers = defaultModifiers { constructorNameModifier = id } instance ParseRecord MyType where parseRecord = parseRecordWithModifiers myModifiers3optparse-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-at4optparse-genericUse this for the ! field of the P record if you want to use the first letter of each option as the short name5optparse-genericUse 56 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 interface6optparse-generic"Marshal any value that implements " from the command line$If you need to modify the top-level  ParserInfo or  ParserPrefs use the 7 function.7optparse-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.8optparse-generic"Marshal any value that implements "M from the commmand line alongside an io action that prints the help message.9optparse-genericPure version of 6#If you need to modify the parser's  ParserInfo or  ParserPrefs, use :.:set -XOverloadedStrings getRecordPure ["1"] :: Maybe IntJust 1'getRecordPure ["1", "2"] :: Maybe [Int] Just [1,2]"getRecordPure ["Foo"] :: Maybe IntNothing:optparse-genericPure version of 7Like 7W, 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 IntNothingoptparse-genericoptparse-generic's flavor of options.optparse-generic"Unwrap the fields of a constructor;optparse-generic"Marshal any value that implements "- from the command line and unwrap its fields<optparse-genericPure version of ;=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 nameoptparse-generic Default value-optparse-generic Help messageoptparse-generic Field labeloptparse-generic Short nameoptparse-generic Default value.optparse-generic Help messageoptparse-generic Field labeloptparse-generic Short nameoptparse-generic Default value6optparse-genericProgram description7optparse-generic ParserInfo modifiersoptparse-generic ParserPrefs modifiers8optparse-genericProgram descriptionoptparse-generic*(options, io action to print help message)9optparse-genericCommand-line arguments:optparse-genericCommand-line argumentsoptparse-generic ParserInfo modifiersoptparse-generic ParserPrefs modifiers<optparse-genericCommand-line arguments=optparse-genericProgram descriptionoptparse-generic*(options, io action to print help message)>    !"#$%&'()*+,/0-.123456789:;<=>6789:;=<"#*+,/0-.1 !5234'()$%&   0            !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~-optparse-generic-1.4.0-J1WY30ZOrJb1ZFZi5Wi5OROptions.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 parseRecordDefValue unDefValueHelpful 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$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$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$fGenericUnwrappableK1K11$fGenericUnwrappable:*::*:$fGenericUnwrappable:+::+:$fGenericUnwrappableM1M1$fGenericUnwrappableU1U1 $fGeneric $fShow $fGeneric $fShow$fGenericOnly_ $fShowOnly_Only_ghc-prim GHC.TypesSymbolGHC.ReadReadData.Typeable.InternalTypeableGHC.BaseStringdefaultParserPrefsunwrap