maD      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~None -35CNU,Every 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 mailboxHow many messages are expunged2Returned 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:What server advertises that it supports |Response to the LIST commandwflags that a mailbox has |Character sequence that marks a new level of hierarchy in the inbox name (usually a slash)!Name of the mailbox"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 clashes1 Message size2An unsupported value3Message body, or headers4An unparsed bodystructure51Tagged results can be in on of these three states9=Always the last result of the command, contains it's metadata; Id of the command that completes< State returned by the serverside==Rest of the result, usually a human-readable form of a resultRuFirst parameter is the name of a capability and the second can contain a value, if the capability is of the form  `NAME=VALUE`bVThread that posted the request should watch this queue for responses to the request.cBId of the request, which is the same as the id sent to the server.fgThe actual connection with the server from Network.Connection. Only use if you know what you're doinggContext from Network.ConnectionhKContains requests for response that weren't yet read by the watcher thread.i(Id of the thread the watcher executes onj;All the unfulfilled requests the watcher thread knows aboutmThe current connection stateniContains commands sent by the server which we didn't expect. Probably message and mailbox state updatesoInternal state of the libraryp8Connection with the server can be in one of these statestlEach command sent to the server is identified by a random id. this alias helps noticing where this happensu&A type alias used for an error message  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuxyz{|}~utpqrsklmnodefghij`abc\]^_STUVWXYZ[>?@ABCDEFGHIJKLMNOPQR9:;<=5678"#$%01234 !&'()*+,-./ wv~}|{zyx8 &"#$%01234 !&'()*+,-./56789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~None -35CNUNone -35CNU None -35CNUNone -35CNUNone -35CNUNone -35CNUMReject all outstanding requests with the exception handler, close the watcher  2016 Michal Kawalec BSD-style (see the file LICENSE)!Michal Kawalec <michal@monad.cat> experimental non-portableNone -35CNU 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 my message UIDFA general fetch, you have to specify everything that goes after the FETCH keywordA general fetch using UIDsReturn 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:;<=>?@ABBCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcddefgghijjklmnoppqrstuvwxyz{|}~imap_C1ij7l8vLC813pZhNZDVnaNetwork.IMAP.TypesNetwork.IMAP.UtilsNetwork.IMAP.Parsers.UtilsNetwork.IMAP.Parsers.UntaggedNetwork.IMAP.Parsers.FetchNetwork.IMAP.ParsersNetwork.IMAP.RequestWatcher Network.IMAPUniverseconnectionPut'connectionGetChunk'' SimpleResult CommandResultTaggedUntagged NameAttribute NoinferiorsNoselectMarkedUnmarked HasNoChildren OtherNameAttrUntaggedResultFlagsExistsExpungeBye HighestModSeqRecentMessagesUnseenPermanentFlagsUID MessageIdUIDNext UIDValidityOKResult CapabilitiesListRflagshierarchyDelimiter inboxNameFetchStatusRSearchEnvelopeeDateeSubjecteFromeSendereReplyToeToeCCeBCC eInReplyTo eMessageId InternalDateSizeUnknownBody BodyStructure ResultStateOKNOBAD TaggedResult commandId resultState resultRest CapabilityCIMAP4 CUnselectCIdle CNamespaceCQuotaCId CExperimental CChildrenCUIDPlus CCompressCEnableCMove CCondstoreCEsearchCUtf8CAuth CListExtended CListStatus CAppendLimitCOtherFlagFSeen FAnsweredFFlaggedFDeletedFDraftFRecentFAnyFOther EmailAddress emailLabel emailAddressResponseRequest responseQueue respRequestId IMAPState rawConnectionconnectionContextresponseRequestsserverWatcherThreadoutstandingReqsIMAPConnectionconnectionState untaggedQueue imapStateConnectionStateUndefinedState Connected Disconnected CommandId ErrorMessage$fUniverseListT $fUniverseIOisFSeen isFAnswered isFFlagged isFDeletedisFDraft isFRecentisFAnyisFOtherisFlagsisExists isExpungeisByeisHighestModSeqisRecent isMessagesisUnseenisPermanentFlagsisUID isMessageId isUIDNext isUIDValidity isOKResultisCapabilitiesisListRisFetch isStatusRisSearch isEnvelopeisInternalDateisSize isUnknownisBodyisBodyStructureisTagged isUntaggedisUndefinedState isConnectedisDisconnected genRequestId readResults escapeTextifNotDisconnected flagsToTexteatUntilClosingParenhadClosedAllParensparseEmailList parseEmail nilOrValueparseQuotedTextparseNameAttributeparseListLikeResp isAtomChartoInt parseNumberparseOk parseFlagparseWeirdFlag parseFlagList parseFlags parseExistsparseBye parseRecent parseOkResp parseUnseenparsePermanentFlags parseUidNextparseUidValidityparseHighestModSeqparseStatusItem parseStatusparseCapabilityListparseCapabilityWithValueparseNamedCapability parseExpungeparseSearchResult parseFetchparseSpecifiersparseInternalDate parseBodyparseBodyStructure parseEnvelope parseReply parseLine parseTagged parseUntaggedrequestWatcher connectServer sendCommandstartTLS capabilitynooplogoutlogin authenticateselectexaminecreatedeleterename subscribe unsubscribelistlsubstatusappendcheckcloseexpungesearch uidSearchfetchuidFetchfetchG uidFetchGstorecopy simpleFormathandleExceptions ParseResult reactToReplyupdateConnState shouldIDiedispatchTaggeddispatchUntaggedgetOutstandingReqs omitOneLine parseChunkgetParsedChunk sendResponseoneParamCommand