H@/5      !"#$%&'()*+,-./01234Safe-5A type isomorphic to 6 with the accumulating 7 instance.589:;<=589:;589:;<=Safe!"IN>The ? functor induced by the @APrint the free structure>BCDEFGHIAJKLMNOPQRS DEFGHIAJKLM >BCDEFGHIAJKLMNOPQRSSafeThe class of types that contain and can be constructed from the error returned from parsing variable whose value cannot be parsed using the T instance. |The class of types that contain and can be constructed from the error returned from parsing variables whose value is empty. mThe class of types that contain and can be constructed from the error returned from parsing unset variables.The type of errors returned by envparse's Reader!s. These fall into 3 categories:,Variables that are unset in the environment.Variables whose value is empty.1Variables whose value cannot be parsed using the T instance. UVW     UVWSafe -N?A class of things that can have a help message attached to them Flag metadataEnvironment variable metadataAThis represents a modification of the properties of a particular . Combine them using the @ instance.,An environment variable's value parser. Use (<=<) and (>=>) to combine theseAn environment parserTry to parse a pure environmentHThe string to prepend to the name of every declared environment variable0Parse a particular variable from the environment >>> var  "EDITOR" (! "vim" <> " show) tA flag that takes the active value if the environment variable is set and non-empty and the default value otherwiseNote: this parser never fails.A simple boolean Note: the same caveats apply.The trivial reader.The reader that accepts only non-empty strings The reader that uses the T instance of the type!!The default value of the variableNote:0 specifying it means the parser won't ever fail."7Show the default value of the variable in the help text# Attach help text to the variable,XYZ[\]^_`abcdefghijk default value active value l!m"#nopqr [\]^_`abcdefgh l!"#XYZ[\]^_`abcdefghijk l!m"#nopqrSafe$OGiven a variable name and an error value, try to produce a useful error message%Parser's metadata&UA pretty-printed list of recognized environment variables suitable for usage messages'QSet the help text header (it usually includes the application's name and version)(Set the short description)7Set the help text footer (it usually includes examples)*An error handler+The default error handler$%stuvwx&yz{|}~'()*+ $%x&~'()*+$%stuvwx&yz{|}~'()*+Safe,Parse the environment or die$Prints the help text and exits with  EXIT_FAILURE on encountering a parse error.  >>> parse (' "env-parse 0.2.0") (  "USER" (! "nobody")) -Try to parse the environment5Use this if simply dying on failure (the behavior of ,) is inadequate for your needs.,--  !"#$%&'()*+,--,-%'()*$+ !"#&  ,-Safe'(-./13579>KLNU.&Variable tagged with its help message.4Constructor can be either a plain thing or a record.+Decide whether the constructor is a record.Generic parsing state.&All variables' names have this prefix.&Constructor currently being processed.,Variable name to use for the next component.Stolen from Aeson and adapted.KRecord selectors' names determine suffixes of environment variables' names.&Sums are converted to sums of parsers..Products are converted to products of parsers.qConstructor's name is used as a prefix to try to remove from selectors when building environment variable names.!Constant values are converted to s using their 1 instance.IWe are not interested in any metadata of the type constructor definition.+./01234./012343412./0 ./01234     !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNFOFPQNRSTUVSWXYZ[\]^_`abcdefg"h#ijk$llmnopq&rstuvwxyz{|3}~Aenvpa_L28waDKkzHL2tMrnfrM2q6 Env.GenericEnvEnv.ValEnv.Free Env.Error Env.ParseEnv.Helpbase GHC.GenericsGeneric Control.Monad<=<>=>Control.Applicativeoptional Data.Foldableasum Data.Monoid<>AsUnreadunread tryUnreadAsEmptyemptytryEmptyAsUnsetunsettryUnsetError UnsetError EmptyError UnreadErrorHasHelpFlagVarModReaderParser parsePureprefixedvarflagswitchstrnonemptyautodefhelpDefhelp ErrorHandlerInfohelpDocheaderdescfooter handleErrordefaultErrorHandlerparseparseOr?HelpunHelpFieldfieldRecordrecordVal Data.EitherEitherGHC.Base ApplicativeErrOk fromEithertoEither$fAlternativeVal$fApplicativeValMon AlternativeMonoidinspectunMonAltNopePureApLiftliftAltrunAltfoldAlthoistAlt$fAlternativeMon$fApplicativeMon $fFunctorMon$fAlternativeAlt$fApplicativeAlt $fFunctorAltGHC.ReadRead$fAsUnreadError$fAsEmptyError$fAsUnsetErrorsetHelpflagHelpvarHelp varHelpDefvarDefVarFvarfName varfReadervarfHelpvarfDef varfHelpDefunParserreadVarmapLeft lookupVar defaultVar defaultFlag $fHasHelpFlag $fHasHelpVar $fMonoidMod$fAlternativeParser$fApplicativeParser infoHeaderinfoDesc infoFooterinfoHandleErrorhelpInfo helpParserDoc helpVarfDoc splitWordsindent helpErrors defaultInfohandleUnsetErrorhandleEmptyErrorhandleUnreadErrorvarNamedie traverseLeftConTypeTypeState statePrefixstateConstateVarcamelTo2 $fGRecord*eM1$fGRecord*e:+:$fGRecord*e:*:$fGRecord*eM10 $fGRecord*eK1$fGRecord*eM11PlainGRecordgr $fFielde? $fFieldeBool $fFieldeChar $fFielde[]$fFieldeDouble $fFieldeFloat$fFieldeNatural$fFieldeWord64$fFieldeWord32$fFieldeWord16 $fFieldeWord8 $fFieldeWord$fFieldeInteger $fFieldeInt64 $fFieldeInt32 $fFieldeInt16 $fFieldeInt8 $fFieldeInt