Îõ³h$!R%Ù      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWX Safe-Inferred#$31 misfortune»Errors that can be thrown when stats are read from an index file. These errors describe various logical inconsistencies that generally indicate that the index file is corrupted somehow. misfortune¹Some statistics about the fortunes in a database. These are stored in the index file and used to speed up various calculations that would otherwise require re-reading lots of files.YZ[\]^_`aNone#$3 W  misfortuneConceptually, an " file is just a header containing $ and an array of these entries. An  Š stores the information needed to locate one string in the fortune fiel, as well as some basic stats about that one file (from which the  will be derived).  misfortune8The location of the string in the file, as a byte offset  misfortune(The number of bytes the string occupies.  misfortune'The number of characters in the string. misfortune"The number of lines in the string. misfortuneÂErrors that can be thrown indicating a problem with an index file. misfortune'A handle to an open fortune index file. misfortuneÓAn exception type indicating things that can be wrong about an index file's header. misfortuneopenIndex path writeMode: Opens the index file at path. The  will be writable if  writeMode is bð. If there is no index file at that path, an error will be thrown or the index will be created, depending on  writeMode. misfortuneöCreate an in-memory index - useful for working with files when, for whatever reason, you cannot create a valid index. misfortune4Close an index file. Subsequent accesses will fail. misfortune+Force a consistency check on an index file. misfortune>Get some cached stats about the fortunes indexed in this file. misfortuneConvert one index entry to a  record describing it. misfortuneRead all the entries in an   misfortuneRead a specified entry from an .! misfortuneÁRepeatedly invoke a generator for index entries until it returns c4, appending all entries returned to the index file." misfortune$Append all the given entries to the  file.# misfortuneAppend a single   to an  file.$ misfortuneDelete all entries from an .% misfortune„All the operations here should preserve correctness of stats, but just in case... This procedure forces the stats to be recomputed.%  !"#$%None#${ & misfortune%A handle to an open fortune database.' misfortune:Get the path of the text part of an open fortune database.( misfortune;Get the path of the index part of an open fortune database.) misfortune$openFortuneFile path delim writeMode: Open a fortune file at path , using delim8 as the character between strings, allowing writing if  writeModeö is set. If no file exists at the specified path, an error will be thrown or the file will be created, depending on  writeMode.* misfortune4Close a fortune file. Subsequent accesses will fail.+ misfortuneGet the  of a &, opening it if necessary., misfortuneClear a &s 5 and rebuild it from the contents of the text file.- misfortunegetFortune f i retrieves the text of the i?'th fortune (according to the order in the index file) in the & f.. misfortuneôGet the text of every fortune in a fortune file, in the order they occur in the file. Ignores the index entirely./ misfortuneÈGet the number of fortunes in a fortune file, as recorded in the index.0 misfortuneÜAppend a fortune to a fortune file, inserting a delimiter if needed and updating the index. &'()*+,-./0 Safe-Inferred®defghijkNoney1 misfortune†Three different search paths are supported, depending on the "type" of fortune requested. These are the types that can be requested.5 misfortune*The number of fortune strings in the index6 misfortune misfortuneLike =9 but searches for multiple files in multiple directories.? misfortuneÑGet the path of the directory containing built-in fortunes of the specified type.@ misfortuneÃGet a list of all fortune files on the configured search path (see B)A misfortuneÇGet the default search path for a specified fortune type (ignoring the MISFORTUNE_PATH environment variables)B misfortuneÚGet the configured search path for a specified fortune type. If the environment variable MISFORTUNE_PATH_ TYPE) is set, it will be used. Otherwise, if MISFORTUNE_PATH+ is set, it will be used. Otherwise, the A will be used.6Environment variables are interpreted by splitting on : and checking for an optional m or n! prefix on each component (where më indicates recursive search of that directory). The default is non-recursive search for each component.C misfortuneÏSearch for all fortune files in the configured search path with the given name.D misfortune×Search for all fortune files in the configured search path with any of the given names.E misfortuneÒSelect a random fortune from all files matching any of a list of names (or if the list is empty, all fortune files on the search path). Every fortune string will have an equal probability of being selected.F misfortune÷Select a random fortune file from a specified distribution and then select a random fortune from that file (unformly).G misfortuneGiven a list of &ôs, compute a distrubution over them weighted by the number of fortunes in each. If this distribution is used with FÑ, the result will be a uniform selection over all the fortunes in all the files.H misfortuneLike GÇ, but filtering the fortunes. In addition to the fortune file, the tuples in the distribution include a distribution over the matching fortune indices in that file, assigning equal weight to each.I misfortunePerform an action with an open &8, ensuring the file is closed when the action finishes.J misfortune!Perform an action with many open &;s, ensuring the files are closed when the action finishes.Ó   !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRÓ&'()*+,-./0  !"#$%56789:;<=>1234?@ABCDEFGHIJKLMNOPQRï      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[89:;<\]^_`abcdefghijkl_`mbnobnpñ'misfortune-0.1.2-4qvc36fGRjnFHUQhYk7dUU Data.FortuneData.Fortune.StatsData.Fortune.IndexData.Fortune.FortuneFilePaths_misfortune StatsProblem NegativeCountNegativeLengthNegativeOffsetLengthsWithoutEntriesEntriesWithoutLengthsMaxLengthLessThanMinLengthInconsistentLengthsForOneEntry FortuneStats IndexEntry stringOffset stringBytes stringChars stringLines IndexProblem HeaderProblemTableLongerThanFileAccessToClosedIndexIndexBadMagicNumberUnsupportedVersionTableStartsBeforeHeaderEnds openIndexcreateVirtualIndex closeIndex checkIndexgetStatsindexEntryStats getEntriesgetEntry unfoldEntries appendEntries appendEntry clearIndex rebuildStats FortuneFilefortuneFilePathfortuneIndexPathopenFortuneFilecloseFortuneFilegetIndex rebuildIndex getFortune getFortunesgetNumFortunes appendFortune FortuneTypeAllNormal Offensive numFortunesminCharsmaxLinesminLinesmaxCharslistFortuneFileslistFortuneFilesInfindFortuneFilefindFortuneFileInfindFortuneFilesIn getFortuneDirdefaultFortuneFilesdefaultFortuneSearchPathgetFortuneSearchPathresolveFortuneFileresolveFortuneFiles randomFortunerandomFortuneFromRandomFiledefaultFortuneDistributionfortuneDistributionWherewithFortuneFilewithFortuneFilesmapFortunesWithIndexMmapFortunesWithIndex mapFortunesM mapFortunesfilterFortunesWithIndexMfilterFortunesWithIndexfilterFortunesMfilterFortunes$fEqFortuneType$fOrdFortuneType$fReadFortuneType$fShowFortuneType$fEnumFortuneType$fBoundedFortuneType offsetAfter checkStats statsAreValidghc-prim GHC.TypesTruebase GHC.MaybeNothingversion getBinDir getLibDir getDynLibDir getDataDir getLibexecDir getSysconfDirgetDataFileNameBoolGHC.Num+-