~>ok      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijSafe$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.)NoneKBMessage 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.kO(1)lO(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.m1Throws exception if the tag is empty or too long.klnSafeopSafeQVv  Variant of q 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 garbage 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.XA database handle. The database will be closed and freed when it is garbage collected.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.rIf e == StatusSuccess then apply Right( in the given effect, otherwise return  pure (Left e)sOpen a Notmuch databasePThe database will be closed and resources freed when it gets garbage collected.t'Strictly read a C iterator into a list.u%Lazily read a C iterator into a list.vClassy prism for injecting a  libnotmuch status code.wIterator predicate functionIterator get functionIterator next function Item mapperIteratorxDatabaseFilenameyDatabasez7Inspect received pointer and lift it into a Traversable,Wrap pointer, including attaching finalizers"C double-pointer-style constructorw {| } ~ *)('&%$#"! +,rsxyztu |{ } ~  !"#$%&'()*None68B1-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:;<=>None-68<l'?LAuthors belonging to messages in a query result of a thread ordered by date.authors matching the query non-matched authors@Author of a message.AObjects with an associated +CObjects with associated threadsE!Objects with associated messages.GObjects with tagsIfOpen a database. The database will be closed and associated resources freed upon garbage collection.bThe mode is determined by usage. Because read-only functions also work on read-write databases, J# is also provided for convenience.J5Convenience function for opening a database read-onlyK.Database format version of the given database.L.Look for a particular message in the database.M0Query the database. To retrieve results from a Query, use D or F.N.Count the number of messages matching a query.1Complexity: same as the underlying Xapian search &O-Count the number of threads matching a query.(n) in the number of messages!PGet the message ID.Q"Get the date the message was sent.RVGet 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.S Get the filename of the message.TFreeze 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).U"Set tags for the message. Atomic.VBAdd the tag to a message. If adding/removing multiple tags, use U/ to set the whole tag list atomically, or use T9 to avoid inconsistent states when adding/removing tags.WGRemove the tag from a message. If adding/removing multiple tags, use U/ to set the whole tag list atomically, or use T9 to avoid inconsistent states when adding/removing tags.XXReturns only messages in a thread which are not replies to other messages in the thread.YO(1)! Date of the newest message in a 5.ZZReturns the subject of the first message in the query results that belongs to this thread.[#Lens to matched authors. See also ].\%Lens to unmatched authors. See also ].]2Return authors of a thread. These are split into:7Authors of messages matching the query (accessible via [).1Authors of non-matching messages (accessible via \).^O(1)! count of messages in the thread._ Get the tags of a single message`Get all tags used in a threada!Get all tags used in the databasebRetrieve the replies to a  cRetrieve the messages in a 5d!Retrieve all messages matching a  e Retrieve the threads matching a  fGet the + of a  gGet the + of a 5Z  !"#$%&'()*+,-=53./01246789:;<>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^ZIJK  MNO-./0123456789:;<=>AB XYZ]^+CD?@[\LEF ,PQRSUVWTGH !"#$%&'()*?  ABCDEFGH       !"#$%&'()*+,-./0123456789: ;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrs tuvwxyz{|}~vEnotmuch-0.2.0.0-inplaceNotmuch Notmuch.UtilNotmuch.Binding.Constants Notmuch.TagNotmuch.TallocNotmuch.BindingNotmuch.Search tagMaxLenlibnotmuchVersionTaggetTagmkTagLens'Prism'PrismreviewbracketTModeQueryThreadMessageDatabaseRWROAsNotmuchError _NotmuchError DatabaseModeDatabaseModeReadOnlyDatabaseModeReadWriteStatus StatusSuccessStatusOutOfMemoryStatusReadOnlyDatabaseStatusXapianExceptionStatusFileErrorStatusFileNotEmailStatusDuplicateMessageIdStatusNullPointerStatusTagTooLongStatusUnbalancedFreezeThawStatusUnbalancedAtomicStatusUnsupportedOperationStatusUpgradeRequiredStatusPathError StatusIgnoredStatusIllegalArgumentStatusMalformedCryptoProtocol!StatusFailedCryptoContextCreationStatusUnknownCryptoProtocolStatusLastStatusThreadId MessageId SearchTermFreeFormFromToSubject AttachmentIdFolderPathDateAsteriskAndOrXorNotBare ThreadAuthorsAuthor HasThreadthreadId HasThreadsthreads HasMessagesmessagesHasTagstags databaseOpendatabaseOpenReadOnlydatabaseVersion 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_opennotmuch_database_upgradenotmuch_status_to_stringnotmuch_message_destroynotmuch_thread_destroynotmuch_query_destroynotmuch_database_destroywithDatabaseHandlewithQueryHandlewithThreadHandlewithMessageHandle withDirectory withFilenamesthrowOr withDatabase withMessage withThread withQuery fromEnum'toStatusdatabase_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$fShowSearchTerm_matchedAuthors_unmatchedAuthors