úÎEûCÑ     None9A 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. @Every 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   defineFlag3 Template Haskell function for defining new flags. 0Data 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 D 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.hs. 3 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), 2 expression quoted and type signed default value, B 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 |]6. 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), 2 expression quoted and type signed default value, B help string identifying the type of the argument (e.g. INTLIST),  help string for the flag.  A global  for the communication between  and  flags_*6. This is a map between flag name and current value.  A global ' for the easy access to the arguments. ?Contains the non-parsed, non-option parts of the command line, ( the arguments. Can only be used after  has been called.  A global 2 for the easy access to the undefined options, if   --undefok8 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   --undefok7 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. KGathers all the flag data from every module that is in (transitive) scope.  Type after splicing:  [FlagData]. 7Same as initHFlags, but makes it possible to introduce ; programmatic defaults based on user supplied flag values. BThe second parameter has to be a function that gets the following  alists:  defaults, - values from HFLAGS_* environment variables,  command line options. BHas to return an alist that contains the additional defaults that B 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:  5 main = 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   initFlags8 with the appropriate data gathered together from those  instances to a list. Type after splicing is String -> IO [String]. )  ! "#$%&'()     ! "#$%&'()*      !"#$%&'()*+, hflags-0.4HFlagsFlagType defineFlagFlag getFlagDataMakeThisOrphandefineCustomFlag defineEQFlag globalHFlagsglobalArguments argumentsglobalUndefinedOptionsundefinedOptionsinitHFlagsDependentDefaults initHFlagsDependentDefaultsAListFlagDatafCheckbase GHC.IORefIORef initFlags getFlagsDatafNamefShort fDefValuefArgType fDescription fModuleNameboolShowboolReadcharShowcharRead lookupFlag$fFlagTypeText$fFlagTypeDouble $fFlagType[]$fFlagTypeInteger $fFlagTypeInt$fFlagTypeChar$fFlagTypeBool$fShowFlagData