_W      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~Safe!"*,569:;<=CDQRT2Constraint for types whose fields can be unwrapped(Flag to unwrap fields annotated using '( ?)'Flag to keep fields wrapped0A type family to extract fields wrapped using '( ?)' 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 +The - function uses this  record when generating a  implementation of /Transform the name of derived fields (Default: id)5Transform the name of derived constructors (Default:  map toLower)=Derives an optional short name from the field name (Default:  \_ -> Nothing):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$A 1-tuple, used solely to translate $ instances into  instances!>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)$dA 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 &&lA 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(RThe 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 ()LThis 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*5These are the default modifiers used if you derive a H implementation. You can customize this and pass the result to -< if you would like to modify the derived implementation: myModifiers :: Modifiers myModifiers = defaultModifiers { constructorNameModifier = id } instance ParseRecord MyType where parseRecord = parseRecordWithModifiers myModifiers+)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-at,Use this for the  field of the P record if you want to use the first letter of each option as the short name-Use -6 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 interface."Marshal any value that implements  from the command line/"Marshal any value that implements M from the commmand line alongside an io action that prints the help message.0Pure version of .:set -XOverloadedStrings getRecordPure ["1"] :: Maybe IntJust 1'getRecordPure ["1", "2"] :: Maybe [Int] Just [1,2]"getRecordPure ["Foo"] :: Maybe IntNothingoptparse-generic's flavor of options."Unwrap the fields of a constructor1"Marshal any value that implements - from the command line and unwrap its fields2Pure version of 13"Marshal any value that implements ^ from the command line and unwrap its fields alongside an io action to print the help message !"#$%&'()*+,-.Program description/Program description*(options, io action to print help message)0Command-line arguments12Command-line arguments3Program description*(options, io action to print help message)456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~4    !"#$%&'()*+,-./01237./0132$%%&''( )-*+,!"#   y !"#$%%&''()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~0         !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~-optparse-generic-1.2.0-7ivOhsnSe8u92k9faI9Tb0Options.Genericbase GHC.GenericsGeneric Data.MonoidgetAllAllgetAnyAnygetSumSum getProductProductgetFirstFirstgetLastLast#text-1.2.2.1-9Yh8rJoh8fO2JMLWffT3QsData.Text.InternalText Unwrappable UnwrappedWrapped::: ModifiersfieldNameModifierconstructorNameModifiershortNameModifier ParseRecord parseRecordOnlyHelpful unHelpful ParseFields parseFields ParseField parseFieldparseListOfFieldgetOnlydefaultModifierslispCaseModifiers firstLetterparseRecordWithModifiers getRecord getWithHelp getRecordPure unwrapRecordunwrapRecordPureunwrapWithHelp$fGenericUnwrappableK1K1$fGenericUnwrappableK1K10$fGenericUnwrappable:*::*:$fGenericUnwrappable:+::+:$fGenericUnwrappableM1M1$fGenericUnwrappableU1U1$fGenericParseRecordM1$fGenericParseRecordM10$fGenericParseRecordV1$fGenericParseRecord:*:$fGenericParseRecord:+:$fGenericParseRecord:+:0$fGenericParseRecord:+:1$fGenericParseRecord:+:2$fGenericParseRecordM11$fGenericParseRecordU1$fParseRecordEither$fParseRecord(,,,,,,)$fParseRecord(,,,,,)$fParseRecord(,,,,)$fParseRecord(,,,)$fParseRecord(,,)$fParseRecord(,)$fParseRecordNonEmpty$fParseRecord[]$fParseRecordProduct$fParseRecordSum$fParseRecordLast$fParseRecordFirst$fParseRecordMaybe$fParseRecordDay$fParseRecordByteString$fParseRecordByteString0$fParseRecordFilePath$fParseRecordAll$fParseRecordAny$fParseRecordText$fParseRecordText0$fParseRecordInteger$fParseRecordBool$fParseRecord()$fParseRecordVoid$fParseRecordOrdering$fParseRecordInt$fParseRecordFloat$fParseRecordDouble$fParseRecordChar$fParseRecordOnly$fParseRecord$fParseFields$fParseField$fParseFieldsNonEmpty$fParseFields[]$fParseFieldsProduct$fParseFieldsSum$fParseFieldsLast$fParseFieldsFirst$fParseFieldsMaybe$fParseFieldsAll$fParseFieldsAny$fParseFields()$fParseFieldsBool$fParseFieldsDay$fParseFieldsFilePath$fParseFieldsText$fParseFieldsText0$fParseFieldsByteString$fParseFieldsByteString0$fParseFieldsVoid$fParseFieldsOrdering$fParseFieldsInteger$fParseFieldsInt$fParseFieldsFloat$fParseFieldsDouble$fParseFieldsChar$fParseFieldDay$fParseFieldFilePath$fParseFieldByteString$fParseFieldText$fParseFieldByteString0$fParseFieldText0$fParseFieldAll$fParseFieldAny$fParseFieldChar$fParseField[]$fParseFieldVoid$fParseField()$fParseFieldOrdering$fParseFieldInteger$fParseFieldInt$fParseFieldFloat$fParseFieldDouble$fParseFieldBool $fGeneric $fShow $fGenericOnly $fShowOnlyghc-prim GHC.TypesSymbolGHC.ReadReadData.Typeable.InternalTypeableGHC.BaseStringdefaultParserPrefsunwrapGenericUnwrappable genericUnwrapGenericParseRecordgenericParseRecordautoparseHelpfulString showHelpText