úÎAG1      !"#$%&'()*+,-./0Generate slugs2014, Peter HarpendingBSD3&Peter Harpending <pharpend2@gmail.com> experimentalLinuxNone24Newtype wrapper for StringMaybe make a Slug.Try to make a Slug, return an error if I can't%Generates a random slug 32 chars long Acceptable characters for a slug 123123A Journal-keeping thing2014, Peter HarpendingBSD3&Peter Harpending <pharpend2@gmail.com> experimentalLinuxNone24Entries 6A Journal is really a wrapper around a list of entriesMakes a journal, given a slugMakes a journal, given a slug'Figures out the file path for a journalWrites a journal to a file path-Reads a journal from the default file path (~ .puffytoolsjournal-title.json)-Reads a journal from the default file path (~ .puffytoolsjournal-title.json)"Reads a journal, given a file path +Reads a journal from a handle, close handle""List all of the journal file paths#List all of the Journal slugs$-Perform some action if a given journal exists%5Perform some action if a given journal does not exist#  !"#$%&'()  !"#$%#  )('& !"#$%   !"#$%&'() Safe-Inferred24 4*56789+,-./0*+,-./0*+,-.0/ 4*56789+,-./0:       !"#$%&'()*+,-./0123456789:;<puffytools-0.0.0.1PuffyTools.SlugPuffyTools.JournalPaths_puffytoolsSlugunSlug mkSlugMaybe mkSlugEithermkSlugIO mkRandomSlugslugAcceptCharsEntry entrySummary entryCreatedentryLastEditedJournal journalSlug journalTitlejournalLastEditedjournalCreatedjournalDescriptionjournalEntries programName journalExtaddEntrymkEntry mkJournal mkJournal'generateJournalPathgenerateSlugPath writeJournalreadJournalNamereadJournalDefreadJournalFromFilereadJournalFromHandle listJournalslistJournalFileslistJournalSlugs ifJournal unlessJournal $fToJSONEntry$fFromJSONEntry$fToJSONJournal$fFromJSONJournalversion getBinDir getLibDir getDataDir getLibexecDir getSysconfDirgetDataFileNameMkSlug $fToJSONSlug$fFromJSONSlugcatchIObindirlibdirdatadir libexecdir sysconfdir