!xfq      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopSafe Vnotmuch$The maximum tag length. Defined as NOTMUCH_TAG_MAX in  notmuch.h.notmuchThe version of  libnotmuch that  hs-notmuch was builtF against. (The program could be running against a different version.)NoneM~notmuchMessage 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.notmuchO(1)notmuchO(n) Just a tag, or Nothing if the string is too long<Use UTF-8 encoding to include non-ASCII characters in a tag.qnotmuchO(1)rnotmuchO(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.snotmuch1Throws exception if the tag is empty or too long.qrSafetuSafeSX notmuch Variant of v that works with ExceptT and allows resource acquisition to fail, propagating the error. If resource finalisation fails, the error is discarded.  None .1HMSUVXVA notmuch Result of a 2 operation. notmuch<This is an internal class whose instances are the promoted  constructors.notmuch1Query 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.notmuch2Thread 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.notmuch3Message 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.notmuchXA 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.notmuch%Convenience synonym for the promoted  constructor.notmuch%Convenience synonym for the promoted  constructor..notmuch(Thread identifier generated and used by  libnotmuch./notmuch Message-Id header value.wnotmuchIf e == StatusSuccess then apply Right( in the given effect, otherwise return  pure (Left e)xnotmuchLike x^ but with predicate parameter (False if status should be raised as an error, otherwise True).ynotmuchOpen a Notmuch databasePThe database will be closed and resources freed when it gets garbage collected.0notmuchGet the path of the database1notmuchIndex a file with the default indexing options. (This binding does not yet provide a way to change the indexing options.) Returns the indexed message.If message has same message ID as another message in the database, the new filename will be added to the message and the existing message is returned.Possible errors include:' if file path is not absolute or is not an extension of the database path. This check is performed in this binding, not in the foreign  libnotmuch code.- when file does not exist or cannot be opened& when file does not look like an email2notmuchIRemove a message filename. If the message has no more filenames return   , otherwise  .6The underlying routine (as of notmuch v0.28) returns NOTMUCH_STATUS_SUCCESSw even when the given path does not exist, is not an internet message, or is not recorded in the database. Therefore  removeFile also returns  > in this scenario. This is particularly confusing when the  Message-IdA of the given file is known, but the the file itself is unknown.znotmuch'Strictly read a C iterator into a list.{notmuch%Lazily read a C iterator into a list.|notmuchClassy prism for injecting a  libnotmuch status code.}notmuchIterator predicate functionnotmuchIterator get functionnotmuchIterator next functionnotmuch Item mappernotmuchIterator~notmuchDatabasenotmuchFilenamenotmuchDatabasenotmuch7Inspect received pointer and lift it into a Traversablenotmuch,Wrap pointer, including attaching finalizersnotmuch"C double-pointer-style constructornotmuch*Which statuses are considered a "success"?notmuch7Inspect received pointer and lift it into a Traversablenotmuch,Wrap pointer, including attaching finalizersnotmuch"C double-pointer-style constructor} -,+*)('&%$#"! ./wxy012~  z{   None79\3notmuchSearch expression. Use D$ if you want to use a query string as-is (see also notmuch-search-terms(7)).Use  to stringify a  SearchTerm.notmuchStringify a query expression.3DBA@?>=<876549;C:None.79>SXb'EnotmuchLAuthors belonging to messages in a query result of a thread ordered by date.notmuchauthors matching the querynotmuchnon-matched authorsFnotmuchAuthor of a message.GnotmuchObjects with an associated .InotmuchObjects with associated threadsKnotmuch!Objects with associated messages.MnotmuchObjects with tagsOnotmuchfOpen 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, P# is also provided for convenience.Pnotmuch5Convenience function for opening a database read-onlyQnotmuch.Database format version of the given database.Rnotmuch.Look for a particular message in the database.Snotmuch0Query the database. To retrieve results from a Query, use J or L.Tnotmuch.Count the number of messages matching a query.1Complexity: same as the underlying Xapian search &Unotmuch-Count the number of threads matching a query.(n) in the number of messages!VnotmuchGet the message ID.Wnotmuch"Get the date the message was sent.XnotmuchVGet 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.Ynotmuch Get the filename of the message.ZnotmuchoFreeze the message, run the given computation and return the result. The message is always thawed at the end.Have to start with  Message 0 RWF due to GHC type system limitation (type-level Nat is not inductive).[notmuch"Set tags for the message. Atomic.\notmuchBAdd the tag to a message. If adding/removing multiple tags, use [/ to set the whole tag list atomically, or use Z9 to avoid inconsistent states when adding/removing tags.]notmuchGRemove the tag from a message. If adding/removing multiple tags, use [/ to set the whole tag list atomically, or use Z9 to avoid inconsistent states when adding/removing tags.^notmuchXReturns only messages in a thread which are not replies to other messages in the thread._notmuchO(1)! Date of the newest message in a 3.`notmuchZReturns the subject of the first message in the query results that belongs to this thread.anotmuch#Lens to matched authors. See also c.bnotmuch%Lens to unmatched authors. See also c.cnotmuch2Return authors of a thread. These are split into:7Authors of messages matching the query (accessible via a).1Authors of non-matching messages (accessible via b).dnotmuchO(1)! count of messages in the thread.enotmuch Get the tags of a single messagefnotmuchGet all tags used in a threadgnotmuch!Get all tags used in the databasehnotmuchRetrieve the replies to a inotmuchRetrieve the messages in a 3jnotmuch!Retrieve all messages matching a knotmuch Retrieve the threads matching a lnotmuchGet the . of a mnotmuchGet the . of a 3`  !"#$%&'()*+,-./0123:C;945678<=>?@ABDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcd`OP0Q STU3:C;945678<=>?@ABDGH^_`cd.IJEFabRKL/VWX[\]ZY12 MN !"#$%&'()*+,-      !"#$%&'()*+,-./0123456789:;<=>?@ ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ |    notmuch-0.3.0.0-inplaceNotmuch Notmuch.UtilNotmuch.Binding.Constants Notmuch.TagNotmuch.TallocNotmuch.BindingNotmuch.Search tagMaxLenlibnotmuchVersionTaggetTagmkTagLens'Prism'PrismreviewbracketT RemoveResultMessageRemovedMessagePersistsModeQueryThreadMessageDatabaseRWROAsNotmuchError _NotmuchError DatabaseModeDatabaseModeReadOnlyDatabaseModeReadWriteStatus StatusSuccessStatusOutOfMemoryStatusReadOnlyDatabaseStatusXapianExceptionStatusFileErrorStatusFileNotEmailStatusDuplicateMessageIdStatusNullPointerStatusTagTooLongStatusUnbalancedFreezeThawStatusUnbalancedAtomicStatusUnsupportedOperationStatusUpgradeRequiredStatusPathError StatusIgnoredStatusIllegalArgumentStatusMalformedCryptoProtocol!StatusFailedCryptoContextCreationStatusUnknownCryptoProtocolStatusLastStatusThreadId MessageId databasePath indexFile removeFile 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.Basebracketstatusstatus' database_open ptrToList lazyPtrToList $fEnumStatus PtrToList!database_find_message_by_filenamedatabase_find_message_x constructF constructF'upgradegetMode 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_remove_messagenotmuch_database_index_filenotmuch_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