r o      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnSafe $The maximum tag length. Defined as NOTMUCH_TAG_MAX in  notmuch.h.The version of  libnotmuch that  hs-notmuch was builtF against. (The program could be running against a different version.)NoneKvMessage tag. Use  to construct a tag. Or use -XOverloadedStrings, but beware that the IsString instance is non-total.2This data type avoid copying when passing tags to  libnotmuch9. But copies do occur when reading tags from a database.}A previous experiment with interning showed no benefit. Tags are typically very short so the overhead erodes any advantage.O(1)O(n) Just a tag, or Nothing if the string is too long<Use UTF-8 encoding to include non-ASCII characters in a tag.oO(1)pO(n) CString must be null-terminated and non-empty. We must copy the tag into pinned memory so that it can be used again as a CString without copying.q1Throws exception if the tag is empty or too long.oprSafestSafeQV  Variant of u that works with ExceptT and allows resource acquisition to fail, propagating the error. If resource finalisation fails, the error is discarded.  None -0FKQSTV; <This is an internal class whose instances are the promoted  constructors. 1Query object. Cleaned up when garbate collected.Use messages or threads to get the results.The Query type carries a phantom for the database mode, so that write operations on messages derived from it are restricted to read/write database sessions. 2Thread object. Cleaned up when garbage collected.Use messages! to get the messages of a thread.The Thread type carries a phantom for the database mode, so that write operations on messages derived from it are restricted to read/write database sessions. 3Message object. Cleaned up when garbage collected.The Messagex type carries a phantom for the database mode, so that write operations are restricted to read/write database sessions.There is also a phantom type parameter for the degree of frozenness of the message. Tag operations on a frozen message are atomic, only becoming visible to other threads/processes after the thaw. The freeze/thaw behaviour is available via withFrozenMessage.A database handle. Use databaseDestroyL to close a database (take care not to use any derived objects afterwards!)Use query to perform a search or  findMessage% to search for a particular message.The DatabaseN type carries a phantom for the database mode, which is propgated to derived  ,   and  b objects. This is used to prevent write operations being performed against a read-only database.%Convenience synonym for the promoted  constructor.%Convenience synonym for the promoted  constructor.+(Thread identifier generated and used by  libnotmuch., Message-Id header value.vIf e == StatusSuccess then apply Right( in the given effect, otherwise return  pure (Left e)wOpen a Notmuch database@The database has no finaliser and will remain open even if GC'd.x'Strictly read a C iterator into a list.y%Lazily read a C iterator into a list.zClassy prism for injecting a  libnotmuch status code.{Iterator predicate functionIterator get functionIterator next function Item mapperIterator|DatabaseFilename}Database~7Inspect received pointer and lift it into a Traversable,Wrap pointer, including attaching finalizers"C double-pointer-style constructor{  *)('&%$#"! +,vw|}~xy       !"#$%&'()*None68B-Search expression. Use >$ if you want to use a query string as-is (see also notmuch-search-terms(7)).Use   to stringify a  SearchTerm.?Stringify a query expression.-><;:98764210/.35=-./0123456789:;<=>?-./0123456789:;<=>None-68<o (BLAuthors belonging to messages in a query result of a thread ordered by date. authors matching the query non-matched authorsCAuthor of a message.DObjects with an associated +FObjects with associated threadsH!Objects with associated messages.JObjects with tagsLtOpen a database. The mode is determined by usage. Because read-only functions also work on read-write databases, M" is also provided for convenience.Use N( to close a database and free resources.M5Convenience function for opening a database read-onlyN0Close the database and free associated resourcesNDon't use any resources derived from this database after using this function!O.Database format version of the given database.P.Look for a particular message in the database.Q0Query the database. To retrieve results from a Query, use G or I.R.Count the number of messages matching a query.1Complexity: same as the underlying Xapian search &S-Count the number of threads matching a query.(n) in the number of messages!TGet the message ID.U"Get the date the message was sent.VVGet the named header as a UTF-8 encoded string. Empty string if header is missing or Nothing on error.May open a file descriptorC that will not be closed until the message gets garbage collected.W Get the filename of the message.XFreeze the message, run the given computation and return the result. The message is always thawed at the end. (Don't thaw the message as part of the computation!)Have to start with  Message 0 RWF due to GHC type system limitation (type-level Nat is not inductive).Y"Set tags for the message. Atomic.ZBAdd the tag to a message. If adding/removing multiple tags, use Y/ to set the whole tag list atomically, or use X9 to avoid inconsistent states when adding/removing tags.[GRemove the tag from a message. If adding/removing multiple tags, use Y/ to set the whole tag list atomically, or use X9 to avoid inconsistent states when adding/removing tags.\XReturns only messages in a thread which are not replies to other messages in the thread.],Returns the date of the newest message in a 5.^ZReturns the subject of the first message in the query results that belongs to this thread._#Lens to matched authors. See also a.`%Lens to unmatched authors. See also a.a2Return authors of a thread. These are split into:7Authors of messages matching the query (accessible via _).1Authors of non-matching messages (accessible via `).b4All messages in the database belonging to the given 5.c Get the tags of a single messagedGet all tags used in a threade!Get all tags used in the databasefRetrieve the replies to a  gRetrieve the messages in a 5h!Retrieve all messages matching a  i Retrieve the threads matching a  jGet the + of a  kGet the + of a 5[  !"#$%&'()*+,-=53./01246789:;<>BCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`ab[LMNO  QRS-./0123456789:;<=>DE \]^ab+FGBC_`PHI ,TUVWYZ[XJK !"#$%&'()*B  DEFGHIJK      !"#$%&'()*+,-./0123456789: ;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvw xyz{|}~zH notmuch-0.1.0.1-inplaceNotmuch Notmuch.UtilNotmuch.SearchNotmuch.Binding.Constants Notmuch.TagNotmuch.TallocNotmuch.Binding tagMaxLenlibnotmuchVersionTaggetTagmkTagLens'Prism'PrismreviewbracketTModeQueryThreadMessageDatabaseRWROAsNotmuchError _NotmuchError DatabaseModeDatabaseModeReadOnlyDatabaseModeReadWriteStatus StatusSuccessStatusOutOfMemoryStatusReadOnlyDatabaseStatusXapianExceptionStatusFileErrorStatusFileNotEmailStatusDuplicateMessageIdStatusNullPointerStatusTagTooLongStatusUnbalancedFreezeThawStatusUnbalancedAtomicStatusUnsupportedOperationStatusUpgradeRequiredStatusPathError StatusIgnoredStatusIllegalArgumentStatusMalformedCryptoProtocol!StatusFailedCryptoContextCreationStatusUnknownCryptoProtocolStatusLastStatusThreadId MessageId SearchTermFreeFormFromToSubject AttachmentIdFolderPathDateAsteriskAndOrXorNotBare$fShowSearchTerm$fGenericSearchTerm$fNFDataSearchTerm ThreadAuthorsAuthor HasThreadthreadId HasThreadsthreads HasMessagesmessagesHasTagstags databaseOpendatabaseOpenReadOnlydatabaseDestroydatabaseVersion findMessagequeryqueryCountMessagesqueryCountThreads messageId messageDate messageHeadermessageFilenamewithFrozenMessagemessageSetTags messageAddTagmessageRemoveTagthreadToplevelMessagesthreadNewestDate threadSubjectmatchedAuthorsunmatchedAuthors threadAuthorsthreadTotalMessages$fHasTagsMessage$fHasTagsThread$fHasTagsDatabase$fHasMessagesMessage$fHasMessagesThread$fHasMessagesQuery$fHasThreadsQuery$fHasThreadMessage$fHasThreadThread$fShowThreadAuthors$fGenericThreadAuthors$fNFDataThreadAuthorstagUseAsCStringtagFromCString $fIsStringTag_talloc_steal_loc detachPtrbaseControl.Exception.Basebracketstatus database_open ptrToList lazyPtrToList $fEnumStatus PtrToList!database_find_message_by_filenamedatabase_find_message_x constructFupgradegetMode Filenames DirectoryTags MessageHandleMessages ThreadHandleThreads QueryHandleDatabaseHandle MessageFlagMessageFlagGhostMessageFlagExcludedMessageFlagMatchSort SortUnsorted SortMessageIdSortNewestFirstSortOldestFirstnotmuch_messages_move_to_nextnotmuch_messages_getnotmuch_messages_validnotmuch_threads_move_to_nextnotmuch_threads_getnotmuch_threads_validnotmuch_tags_move_to_nextnotmuch_tags_getnotmuch_tags_validnotmuch_message_thawnotmuch_message_freezenotmuch_message_remove_tagnotmuch_message_add_tagnotmuch_message_remove_all_tagsnotmuch_message_get_tagsnotmuch_message_get_headernotmuch_message_get_datenotmuch_message_set_flagnotmuch_message_get_flagnotmuch_message_get_filenamenotmuch_message_get_repliesnotmuch_message_get_thread_idnotmuch_message_get_message_idnotmuch_thread_get_tagsnotmuch_thread_get_newest_datenotmuch_thread_get_subjectnotmuch_thread_get_authorsnotmuch_thread_get_messages$notmuch_thread_get_toplevel_messages!notmuch_thread_get_total_messagesnotmuch_thread_get_thread_idnotmuch_query_count_threadsnotmuch_query_count_messagesnotmuch_query_search_messagesnotmuch_query_search_threadsnotmuch_query_add_tag_excludenotmuch_query_get_sortnotmuch_query_set_sortnotmuch_query_get_query_stringnotmuch_query_createnotmuch_database_get_all_tags)notmuch_database_find_message_by_filenamenotmuch_database_find_messagenotmuch_database_get_versionnotmuch_database_get_pathnotmuch_database_destroynotmuch_database_opennotmuch_database_upgradenotmuch_status_to_stringnotmuch_message_destroynotmuch_thread_destroynotmuch_query_destroywithDatabaseHandlewithQueryHandlewithThreadHandlewithMessageHandle withDirectory withFilenamesthrowOr withDatabase withMessage withThread withQuery fromEnum'toStatusdatabase_destroydatabase_get_pathdatabase_get_versiondatabase_find_messagedatabase_get_all_tags query_createquery_get_query_stringquery_set_sortquery_get_sortquery_add_tag_excludequery_search_threadsquery_search_messages query_count_xquery_count_messagesquery_count_threadsthread_get_thread_idthread_get_total_messagesthread_get_toplevel_messagesthread_get_messagesthread_get_authorsthread_get_subjectthread_get_newest_datethread_get_tagsmessage_get_message_idmessage_get_thread_idmessage_get_repliesmessage_get_filenamemessage_get_flagmessage_set_flagmessage_get_datemessage_get_headermessage_get_tagsmessage_remove_all_tagsmessage_add_tagmessage_remove_tagmessage_freeze message_thaw enumToCInt ptrToListIO tagsToList threadsToListmessagesToListGHC.Showshow_matchedAuthors_unmatchedAuthors