p`!      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      None 3;=KV]<0Every function that communicates with the outside world should run in the Universe monad, which provides an ability to use mocks when testingIf you don't care about streaming you will get results in this simplified data type, in which the ErrorMessage comes from TaggedResult if it failed.Command result consits of a sequence of untagged results followed by a single tagged result that specifies if the command overall succeeded. This is a sum type to bind those two types togetherJUntagged replies are the actual data returned in response to the commands.A list of flags a mailbox has$How many messages exist in a mailbox Sequence id of a deleted message2Returned by the server when it cleanly disconnectsNumber of recent messagesNumber of messages in a mailboxNumber of unseen messagesUID of a message]A sequence id of a message |UID that will be given to the next message added to this mailboxgA triple of mailbox name, it's UIDValidity value and message UID is always unique for a given messageResult of an OK response Result of a NO response!Result of a BAD response":What server advertises that it supports |Response to the LIST command$kFetch response, contains many responses |Status of a mailbox, will contain many different responses inside&?A list of message IDs or UIDs fullfilling the search criterions'7A parsed ENVELOPE reply, prefixed to avoid name clashes) Message size*An unsupported value+Message body, or headers,An unparsed bodystructure-A format extension.wflags that a mailbox has |Character sequence that marks a new level of hierarchy in the inbox name (usually a slash)0Name of the mailbox;1Tagged results can be in on of these three states?=Always the last result of the command, contains it's metadataA Id of the command that completesB!State returned by the server sideC3Rest of the result, usually the human-readable partXuFirst parameter is the name of a capability and the second can contain a value, if the capability is of the form  `NAME=VALUE`nVThread that posted the request should watch this queue for responses to the request.oBId of the request, which is the same as the id sent to the server.sgThe actual connection with the server from Network.Connection. Only use if you know what you're doingtContext from Network.ConnectionuKContains requests for response that weren't yet read by the watcher thread.v(Id of the thread the watcher executes onw;All the unfulfilled requests the watcher thread knows aboutxConfiguration settings{The current connection state|iContains commands sent by the server which we didn't expect. Probably message and mailbox state updates}Internal state of the library~8Connection with the server can be in one of these stateslEach command sent to the server is identified by a random id. this alias helps noticing where this happens&A type alias used for an error message ,('&%#"! $*+-):9876543210/.;>=<?@CBADXWVUTSRQPONMLKIHGFEJYa`_^]\[Zbcgfedhikjlmonpqrxwvutsyz}|{~DZ~yz{|}qrstuvwxplmnohijkbcdefgYZ[\]^_`aDEFGHIJKLMNOPQRSTUVWX?@ABC;<=> !"#$%&'()*+,-./0123456789:  ) !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnoqrstuvwxyz{|}~None 3;=KV]DNone 3;=KV]ENone 3;=KV]G,None 3;=KV]GNone 3;=KV]I!MReject all outstanding requests with the exception handler, close the watcherNone 3;=KV]Jp2016 Michal Kawalec BSD-style (see the file LICENSE)!Michal Kawalec <michal@monad.cat> experimental non-portableNone 3;=KV]_ Connects to the server and gives you a connection object that needs to be passed to any other command. You should only call it once for every connection you wish to createtAn escape hatch, gives you the ability to send any command to the server, even one not implemented by this libraryConnected state commandsuUpgrade a connection to a TLS connection from an insecure one. Accepts TLS settings you wish your connection to useaA simple authentication method, with user and password. Probably what's needed in 90% of cases.Authenticate with the server. During the authentication control is given to the library user and is returned to the library at the end of authenticationAuthenticated state commandsSelected state commands)Fetch message body by message sequence id!Fetch message body by message UIDFA general fetch, you have to specify everything that goes after the FETCH keywordA general fetch using UIDsCopy message by message UID Return the untagged replies or an error message if the tagged reply is of type NO or BAD. Also return all untagged replies received if replies list contains a BYE response (when the server decided to cleanly disconnect)!      !      "      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijjklmnoopqrrstuvvwxyz{|}}~      !"#$%#imap-0.3.0.6-ByBABarbMfxJFtmXkHEIAgNetwork.IMAP.TypesNetwork.IMAP.Parsers.UtilsNetwork.IMAP.Parsers.UntaggedNetwork.IMAP.Parsers.FetchNetwork.IMAP.ParsersNetwork.IMAP.RequestWatcherNetwork.IMAP.Utils Network.IMAPUniverseconnectionPut'connectionGetChunk'' SimpleResult CommandResultTaggedUntagged NameAttribute NoinferiorsNoselectMarkedUnmarked HasNoChildren OtherNameAttrExtensionPayloadExtInt ExtLabelsUntaggedResultFlagsExistsExpungeBye HighestModSeqRecentMessagesUnseenPermanentFlagsUID MessageIdUIDNext UIDValidityOKResultNOResult BADResult CapabilitiesListRFetchStatusRSearchEnvelope InternalDateSizeUnknownBody BodyStructure ExtensionflagshierarchyDelimiter inboxNameeDateeSubjecteFromeSendereReplyToeToeCCeBCC eInReplyTo eMessageId ResultStateOKNOBAD TaggedResult commandId resultState resultRest CapabilityCIMAP4 CUnselectCIdle CNamespaceCQuotaCId CExperimental CChildrenCUIDPlus CCompressCEnableCMove CCondstoreCEsearchCUtf8CAuth CListExtended CListStatus CAppendLimitCOtherFlagFSeen FAnsweredFFlaggedFDeletedFDraftFRecentFAnyFOther EmailAddress emailLabel emailRoute emailUsername emailDomain IMAPSettings imapTimeoutuntaggedQueueLengthResponseRequest responseQueue respRequestId ParseResult IMAPState rawConnectionconnectionContextresponseRequestsserverWatcherThreadoutstandingReqs imapSettingsIMAPConnectionconnectionState untaggedQueue imapStateConnectionStateUndefinedState Connected Disconnected CommandId ErrorMessagedefaultImapSettings$fUniverseListT$fUniverseListT0 $fUniverseIO$fShowConnectionState$fShowEmailAddress$fEqEmailAddress $fShowFlag$fEqFlag $fOrdFlag$fShowCapability$fEqCapability$fOrdCapability$fShowResultState$fEqResultState$fShowTaggedResult$fEqTaggedResult$fShowExtensionPayload$fEqExtensionPayload$fShowNameAttribute$fEqNameAttribute$fOrdNameAttribute$fShowUntaggedResult$fEqUntaggedResult$fShowCommandResult$fEqCommandResult$fEqResponseRequestisFSeen isFAnswered isFFlagged isFDeletedisFDraft isFRecentisFAnyisFOtherisFlagsisExists isExpungeisByeisHighestModSeqisRecent isMessagesisUnseenisPermanentFlagsisUID isMessageId isUIDNext isUIDValidity isOKResult isNOResult isBADResultisCapabilitiesisListRisFetch isStatusRisSearch isEnvelopeisInternalDateisSize isUnknownisBodyisBodyStructure isExtensionisTagged isUntaggedisUndefinedState isConnectedisDisconnectedeatUntilClosingParenhadClosedAllParensparseEmailList parseNString parseEmail nilOrValue parseQuotedparseQuotedTextparseNameAttributeparseListLikeResp atomSpecials isAtomChartoInt parseNumber parseLabelparseConnectionStateparseOkparseNoparseBadparseExtension parseFlagparseFlagKeyword parseFlagList parseFlags parseExistsparseBye parseRecent parseOkResp parseUnseenparsePermanentFlags parseUidNextparseUidValidityparseHighestModSeqparseStatusItem parseStatusparseCapabilityListparseCapabilityWithValueparseNamedCapability parseExpungeparseSearchResult parseFetchparseSpecifiersparseInternalDate parseBodyparseBodyStructure parseEnvelope parseReply parseLine parseTagged parseUntaggedrequestWatcher genRequestId readResults escapeTextifNotDisconnected flagsToText connectServer sendCommandstartTLS capabilitynooplogoutlogin authenticateselectexaminecreatedeleterename subscribe unsubscribelistlsubstatusappendcheckcloseexpungesearch uidSearchfetchuidFetchfetchG uidFetchGstoreuidStorecopyuidCopy simpleFormathandleExceptions