úÎEƒCL      Apache 2.0None#$9;\8A function that gets three alists and returns a new one.$Lisp like alist, key -> value pairs."Class of types for which the easy  syntax is supported.The  defineFlag function defines a new flag.The parameters:name of the flag (l:long- syntax if you want to have the short option l for this flag),,default value,help string for the flag.yEvery flag the program supports has to be defined through a new phantom datatype and the Flag instance of that datatype.But users of the library shouldn't worry about this class or the implementation details behind these functions, just use the  defineFlag2 Template Haskell function for defining new flags./Data type for storing every property of a flag.function to evaluate in  initFlags( to force syntax check of the argument.œThis is a temporary hack to force visibility of flags inside libraries, by making the module that defines the flag orphan. For usage example, check out  Bhttp://github.com/errge/hflags/blob/master/examples/package/Tup.hs6. A proper fix is already proposed for GHC 7.8, see  +http://ghc.haskell.org/trac/ghc/ticket/7867.?The most flexible way of defining a flag. For an example see  Ehttp://github.com/errge/hflags/blob/master/examples/ComplexExample.hs. For most things  should be enough instead.The parameters:name of the flag (l:long- syntax if you want to have the short option l for this flag),0expression quoted and type signed default value,@help string identifying the type of the argument (e.g. INTLIST),!read function, expression quoted,!show function, expression quoted,help string for the flag.This just forwards to  with  [| read |] and  [| show |]:. Useful for flags where the type is not an instance of . For examples, see  Ehttp://github.com/errge/hflags/blob/master/examples/ComplexExample.hs.The parameters:name of the flag (l:long- syntax if you want to have the short option l for this flag),0expression quoted and type signed default value,@help string identifying the type of the argument (e.g. INTLIST),help string for the flag. A global  for the communication between  and flags_*5. This is a map between flag name and current value.  A global & for the easy access to the arguments. gContains the non-parsed, non-option parts of the command line, the arguments. Can only be used after  has been called.  A global 3 for the easy access to the undefined options, if  --undefokO is used. Useful, if you have to pass these options to another library, e.g.  criterion or GTK. ?Contains the non-parsed, option parts of the command line, if  --undefok_ is in use. This can be useful, when you have to pass these options to other libraries, e.g.  criterion or GTK. Can only be used after  has been called. Initializes & and returns the non-option arguments.aGathers all the flag data from every module that is in (transitive) scope. Type after splicing:  [FlagData]. qSame as initHFlags, but makes it possible to introduce programmatic defaults based on user supplied flag values.JThe second parameter has to be a function that gets the following alists: defaults,+values from HFLAGS_* environment variables,command line options.ªHas to return an alist that contains the additional defaults that will override the default flag values (but not the user supplied values: environment or command line).Type after splicing is *String -> DependentDefaults -> IO [String] . Where: type AList = [(String, String)] 9type DependentDefaults = AList -> AList -> AList -> AList:Has to be called from the main before doing anything else: Amain = do args <- $initHFlags "Simple program v0.1" ...fSince version 0.2, you mustn't put the initHFlags in a parentheses with the program description. Just  $initHFlags,  it's cleaner.{Internally, it uses Template Haskell trickery to gather all the instances of the Flag class and then generates a call to  initFlagsM with the appropriate data gathered together from those instances to a list.Type after splicing is String -> IO [String].* !"#$%&'( )*     !"#$%&'( )* +      !"#$%&'()*+,-#hflags-0.4.2-5qAh5HoPff88IhZLnxpdlZHFlagsFlagType defineFlagFlag getFlagDataMakeThisOrphandefineCustomFlag defineEQFlag globalHFlagsglobalArguments argumentsglobalUndefinedOptionsundefinedOptionsinitHFlagsDependentDefaults initHFlags$fFlagTypeText$fFlagTypeDouble $fFlagType[]$fFlagTypeInteger $fFlagTypeInt$fFlagTypeChar$fFlagTypeBool$fShowFlagDataDependentDefaultsAListFlagDatafCheckbase GHC.IORefIORef initFlags getFlagsDatafNamefShort fDefValuefArgType fDescription fModuleNameboolShowboolReadcharShowcharRead lookupFlaggetInstanceType