o      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{ | } ~  Safe  None*9:;<=?DLOQRT(Right-associative tuple type-constructor(Right-associative tuple data-constructor Generic   Shortcut to  Infix operator for  h      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`a    000None9:;c bcdefghijk bcdefghijk bcdefghijkNoneTlWrap a  value in  MonadErrormWrap a  value in  MonadErrornlmnlmnlmNone:opopopNone:DORTq2How dynamic reconfiguration process should behave.rDefault mode is sJ, that is: use custom configuration file and recompile if change detected.t3Describe the paths used for dynamic reconfigurationu Dynamic reconfiguration settingsv0Launch a recompilation of the configuration file qswxyrtuz{vqswxyr{vqswxyrtuz{vNone 29:;<=QRLogger interpreter Logger DSL !"#$%& !"#$&% !"#$  !"#$%&None/| used for ,  and  logs0| used for  logs1;Discard logs that are strictly less serious than this level2ODefault logger forwards error messages to stderr, and other messages to stdout.3Interpreter for -./0123F}~| !"#$-.1/023-./0123-./0123None 29:;<=QR4HTTP client interpreter7HTTP client DSL9Perform an HTTP GET request456789:45678978456:9456789:None=Interpreter for 7>%Default manager uses TLS and no proxy8Perform an HTTP GET request and return the response body#Build an HTTP request for given URI=>      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcde=>>==>NoneE8Feed reference: either its URI, or its UID from database ?@ABCDEFGHIJK ?@ABDCEFGHIJ EFKBCD?@AGHIJ?@ABCDEFGHIJKNone 29:;<=QRRHooks interpreterT&Triggered for each unread feed elementU Hooks DSLRSTUVWXRSTUVWUVRSTXWRSTUVWXNone/:fAvailable commandline options.gAvailable commands.$fhijkglmnopqrstuvwxyz{|}~#fhijkglrnmqopstuvwxyz{|}~fhijkg lmnopqrstuvwxyz{|}~NoneQR ]/How to format outgoing mails from feed elements_+How to write the From: header of feed mails`.How to write the Subject: header of feed mailsa*How to write the body of feed mails (sic!)b)How to write the To: header of feed mailse&How to authenticate to the SMTP serverg!How to connect to the SMTP servernInterpreter for UoFill ; with the feed title and, if available, the authors' names.This function leaves q empty. You are expected to fill it adequately, because many SMTP servers enforce constraints on the From: email.p(Fill mail subject with the element titleqFill mail body with:)a list of links associated to the element,the element's content or description/summarytBuild mail from a given feed[\]^_`abcdefghijklmnopqrst[\]^_`abcdefghijklmnopqrstmlkghijefcd]^_`ab[\nopqrst[\]^_`abcdefghijklmnopqrst None/29:;<=DQRDatabase interpreter Database DSLGeneric database table){|}~&{~|}){|}~{|}~ None:DQR'Singleton type to represent feeds tableUnique key in feeds tableSet the last check time to now3Unset feed's last update and remove all read hashes!! None 9:;<=DLRDefault database is stored in $XDG_DATA_HOME/imm/feeds.jsonInterpreter for - None :DLQRTc'Print database status for given feed(s)'Register the given feed URI in database1Check for unread elements without processing themF to all feeds described by the OPML document provided in input (stdin)  EE  None :DLOQRT\Main function, meant to be used in your personal configuration file, by default located at $XDG_CONFIG_HOME/imm/imm.hs.NFor more information about the dynamic reconfiguration system, please consult  Config.Dyre.Here is an example: cimport Imm.Boot import Imm.Database.JsonFile import Imm.Feed import Imm.Hooks.SendMail import Imm.HTTP.Simple import Imm.Logger.Simple main :: IO () main = do logger <- defaultLogger manager <- defaultManager database <- defaultDatabase imm (mkCoHttpClient, manager) (mkCoDatabase, database) (mkCoLogger, logger) (mkCoHooks, sendmail) sendmail :: SendMailSettings sendmail = SendMailSettings smtpServer formatMail formatMail :: FormatMail formatMail = FormatMail (\a b -> (defaultFormatFrom a b) { addressEmail = "user@host" } ) defaultFormatSubject defaultFormatBody (\_ _ -> [Address Nothing "user@host"]) smtpServer :: Feed -> FeedElement -> SMTPServer smtpServer _ _ = SMTPServer (Just $ Authentication PLAIN "user" "password") (StartTls "smtp.host" defaultSettingsSMTPSTARTTLS)    HTTP client interpreter (cf Imm.HTTP)Database interpreter (cf  Imm.Database)Logger interpreter (cf  Imm.Logger)Hooks interpreter (cf  Imm.Hooks)    NoneZ !"#$456789?@ABDCEFGHIJRSTUVW{~|} !"#$%%&'()*+,-./0123456789:;<=>?@AABCDEFGGHIJKLMNOPQRSTUVWWXYZ[\]^_`abccdefghijkkllmnopqqrrstuvwxyz{|}~                                                     !"!#!$!%!&!'!(!)!*!+!,!-./.0.1232425262728292:2;2<2=2>2?2@2A2B2C2DEFGHIJKLMNOP Q R S T U V W XYZY[Y\Y]Y^Y_Y`Ya.b.c.d.e.f.g.h.ijkjljmno2p2q2r2s2t2u2v2w2x2y2z2{2|2}2~                                                       !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGFHIJIJKLKMKMjNjOPQRSTUVWXYZ[\]^_`abcdefghijklmnonpnqnrnsntnunvwxYy z { | } ~        ...      !"#$%&'()*+,-./01232425262728292:2;2<2=2>2?2@2A2B2C2D2E2F2G2H2I2J2K2L2M2N2O2P2Q2R2S2T2U2V2W2X2Y2Z2[2\2]2^2_2`2a2b2c2d2e2fghgigjgkglgmgngogpgqgrgsgtgugvgwgxgygzg{g|g}g~gggggg                   !"#$%$&$'$($)$*$+$,$-$.$/$0$12324256768696:6;6<6=6>6?6@6A6B6C6D6E6F6G6H6I6J6K6L6M6N6O6P6P6Q6R6S6T6U6V6W6X6Y6Z6[6\6J6J6]6^6_6`6a6b6c6d6e6f6g6h6i6j6k6l6m6n6o6p6q6r6s6t6u6v6w6x6<6y6z6{6|6}6~666666666666666666kDy      !!"#$%&'(()*+,-. / 0 1 2 3 4 5 6 7 8 8 9 : ; < = > ? @ AB"imm-1.0.1.0-Cq4i3KShQfiCxow3zlctvs Imm.Prelude Imm.LoggerImm.Logger.SimpleImm.HTTPImm.HTTP.SimpleImm.Feed Imm.HooksImm.Hooks.SendMail Imm.DatabaseImm.Database.FeedTableImm.Database.JsonFileImm.CoreImm.Boot Paths_imm Imm.Pretty Imm.Error Imm.AesonImm.Dyre Imm.OptionsImmTextLText ByteString LByteStringPairingMpairM:::>:*:* interpretshowio<++>$fPairingM:*::+:m$fPairingM:+::*:m$fPairingMIdentityIdentitym CoLoggerFlogH getLevelH setLevelHLoggerFLogGetLevelSetLevelLogLevelDebugInfoWarningErrorlog getLogLevel setLogLevellogDebuglogInfo logWarninglogError$fPairingMCoLoggerFLoggerFm$fPrettyLogLevel $fEqLogLevel $fOrdLogLevel$fReadLogLevel$fShowLogLevel$fFunctorLoggerF$fFunctorCoLoggerFLoggerSettings loggerSeterrorLoggerSetlogLevel defaultLogger mkCoLogger CoHttpClientFgetH HttpClientFGetget#$fPairingMCoHttpClientFHttpClientFm$fFunctorHttpClientF$fFunctorCoHttpClientFmkCoHttpClientdefaultManager FeedElement RssElement AtomElementFeedRssAtomFeedRef getElementsgetDategetTitle getHashes$fPrettyFeedRef $fEqFeedRef $fShowFeedRef$fEqFeed $fShowFeed$fEqFeedElement$fShowFeedElementCoHooksF onNewElementHHooksF OnNewElement onNewElement$fPairingMCoHooksFHooksFm$fFunctorHooksF$fFunctorCoHooksFSendMailSettings FormatMail formatFrom formatSubject formatBodyformatTo SMTPServerAuthenticationConnectionSettingsPlainSslStartTls ServerNamePasswordUsername mkCoHooksdefaultFormatFromdefaultFormatSubjectdefaultFormatBody authenticate_withSMTPConnection buildMail$fEqConnectionSettings$fShowConnectionSettings$fEqAuthentication$fShowAuthentication$fEqSMTPServer$fShowSMTPServerDatabaseException NotCommitted NotDeletedNotFound NotInserted NotPurged NotUpdatedUnableFetchAll CoDatabaseF fetchListH fetchAllHupdateH insertListH deleteListHpurgeHcommitH DatabaseF FetchListFetchAllUpdate InsertList DeleteListPurgeCommitTableKeyEntryfetch fetchListfetchAllupdateinsert insertListdelete deleteListpurgecommit$fPrettyDatabaseException$fExceptionDatabaseException$fPairingMCoDatabaseFDatabaseFm$fFunctorDatabaseF$fFunctorCoDatabaseF$fShowDatabaseException$fEqDatabaseException CoDatabaseF' DatabaseF'Database FeedStatusUnknownNew LastUpdate FeedTable DatabaseEntryentryURI entryCategoryentryReadHashesentryLastCheckFeedIDnewDatabaseEntryregister getStatus addReadHash markAsRead markAsUnread$fPrettyFeedStatus$fTableFeedTable$fPrettyFeedTable$fToJSONDatabaseEntry$fFromJSONDatabaseEntry$fPrettyDatabaseEntry$fPrettyFeedID$fToJSONFeedID$fFromJSONFeedID $fEqFeedID $fOrdFeedID $fShowFeedID$fEqDatabaseEntry$fShowDatabaseEntry$fShowFeedTable $fEqDatabase$fShowDatabase JsonException UnableDecodeJsonFileDatabase CacheStatusEmptyCleanDirtymkJsonFileDatabasedefaultDatabase mkCoDatabase loadInCache insertInCache updateInCache deleteInCache purgeInCache$fExceptionJsonException$fPrettyJsonFileDatabase$fEqCacheStatus$fShowCacheStatus$fEqJsonException$fShowJsonException printVersionsshowFeed subscribecheckrun importOPMLimm$fExceptionInterruptedException $fEqSafeGuard$fShowSafeGuard$fEqInterruptedException$fShowInterruptedExceptioncatchIOversionbindirlibdirdatadir libexecdir sysconfdir getBinDir getLibDir getDataDir getLibexecDir getSysconfDirgetDataFileNamebaseGHC.ShowControl.Monad.IO.ClassliftIO,ansi-wl-pprint-0.6.7.3-EqhsHSbxOT2xFHZZJCFwfText.PrettyPrint.ANSI.LeijenlineGHC.Base++ghc-primGHC.PrimseqGHC.Listzip System.IOprint Data.Tuplefstsnd otherwisemap$GHC.Real fromIntegral realToFracData.Typeable.InternalmkAppTyGHC.EnumBoundedminBoundmaxBoundEnumenumFrom enumFromThenenumFromThenTo enumFromTofromEnumtoEnumsuccpred GHC.ClassesEq==/= GHC.FloatFloatingpiexpsqrt**logBasesincostanasinacosatansinhcoshtanhasinhacoshatanh Fractional fromRational/recipIntegral toIntegerquotremdivmodquotRemdivModMonadfail>>=>>returnFunctorfmap<$GHC.NumNum*+-negate fromIntegerabssignumOrd>=minmax><<=compareGHC.ReadRead readsPrecreadListReal toRational RealFloat floatRadix floatDigits floatRange decodeFloat encodeFloatexponent significand scaleFloatisNaN isInfiniteisDenormalizedisNegativeZeroisIEEEatan2RealFracproperFractiontruncateroundceilingfloorShow showsPrecshowListTypeable Data.StringIsString fromString Applicativepure<*>*><* Data.FoldableFoldablefoldlfoldl1foldr1maximumminimumData.Traversable TraversabletraversemapM sequenceAsequenceMonoidmemptymappendmconcat GHC.TypesBoolTrueFalseCharDoubleFloatInt integer-gmpGHC.Integer.TypeIntegerMaybeNothingJustOrderingLTEQGTRationalIOWord Data.EitherEitherLeftRightTypeRepTyCon Data.Functor<$>containers-0.5.7.1 Data.Map.BaseMapShowStextindentequalsspacebracketsangles<+>vsephsepPrettypretty prettyListDocString Text.Readread Alternative<|>manyemptysome MonadPlusmzeromplusData.Bifunctor BifunctorfirstsecondbimapMonadIO Control.MonadunlessforMControl.Applicativeoptional WrappedMonad WrapMonad unwrapMonad WrappedArrow WrapArrow unwrapArrowZipList getZipListreadIOreadLn appendFileinteract getContentsgetCharputStrLnputStrputCharGHC.IO.Handle.FDstderrreadsstdoutGHC.IO.ExceptionioErrorData.Functor.ConstConstgetConstforM_mapM_ Data.Monoid<>DualgetDualEndoappEndoAllgetAllAnygetAnySumgetSumProduct getProductFirstgetFirstLastgetLastAltgetAltGHC.IOFilePath userErrorIOError GHC.Exception Exception toException fromExceptiondisplayException Data.Typeablegcast2gcast1gcasteqTcast rnfTypeRep showsTypeReptypeOf7typeOf6typeOf5typeOf4typeOf3typeOf2typeOf1typeOftypeRep typeRepArgs typeRepTyCon funResultTy splitTyConAppmkFunTy mkTyConApptypeRepFingerprintrnfTyConmkTyCon3tyConFingerprint tyConString tyConName tyConModule tyConPackage Typeable1 Typeable2 Typeable3 Typeable4 Typeable5 Typeable6 Typeable7eitherData.Type.Equality:~:Refl Data.ProxyProxyData.Ord comparingDownlex readParenText.ParserCombinators.ReadPReadSvoidlcmgcd^^^oddeven showParen showStringshowCharshowsunzip3unzipzipWith3zipWithzip3!!cyclerepeatiteratescanr1scanrscanl1scanlinitlasttailhead Data.MaybemapMaybe listToMaybe maybeToList fromMaybefromJust isNothingisJustmaybeuncurrycurrysubtractasTypeOfuntil$!flip.constidwhen=<<liftA3liftA2liftA<**>GHC.Err undefinederrorWithoutStackTraceerror SomeException&&||not)chunked-data-0.3.0-2fL6iGwtLhZ21pvTADQL7A Data.IODataIOData hGetContentshGetLine hPutStrLngetLinereadFile writeFilehPut hGetChunk&compdata-0.10.1-C6rLn9QJcGP8R8kD5ykVbU Data.Comp.OpsfsndffstsplprojinjcaseFfromInrfromInl:+:InlInrElemSubsumeinj'prj':<::=::*::&:DistAnninjectAprojectARemAremA)exceptions-0.8.2.1-JBQJzRdlubk7otWf6cOKjrControl.Monad.Catch MonadThrowthrowMbracketOnErrorfinallybracket_bracket onExceptioncatchestryJusttry handleJusthandleIf handleAll handleIOErrorhandle catchJustcatchIf catchIOErrorcatchAlluninterruptibleMask_mask_ MonadCatchcatch MonadMaskmaskuninterruptibleMaskHandler-mono-traversable-1.0.0-Dcw43DthwhL7IQSTSFZdBAData.SequencesrepackunpackpacksortOn catMaybessortsplitSeqLazyTextsplitSeqStrictTextstripSuffixLazyBSstripPrefixLazyBSsplitSeqLazyBSstripSuffixStrictBSstripPrefixStrictBSsplitElemStrictBSdeleteBygroupAllgroup isInfixOf isSuffixOf isPrefixOf stripSuffix stripPrefixsplitSeq splitEleminitDeftailDef defaultSnoc defaultCons vectorSort vectorSortBydefaultSplitWhen defaultSortBydefaultReversedefaultIntersperse defaultFind singleton SemiSequenceIndexsortByreversefind intersperseconssnoc IsSequencefromListfilterindex takeWhiletake unsafeIndex unsafeDropuncons replicate dropWhiledropsplitAtspanbreak partitiongroupBy subsequences permutationsfilterM replicateM unsafeTake unsafeTail unsafeInitunsnoc unsafeSplitAt groupAllOntailExtailMayinitExinitMayindexEx splitWhenTextualtoLowertoUpperlinesunlineswordsunwords toCaseFold breakWord breakLine LazySequence fromChunkstoChunks fromStricttoStrictUtf8 encodeUtf8 decodeUtf8Data.Containers SetContainer ContainerKeymemberunion intersection difference notMemberunionskeysPolyMap differenceMapintersectionMapintersectionWithMap BiPolyMapBPMKeyConstraint mapKeysWithIsMapMapValuelookup insertWithfindWithDefaultupdateLookupWithKey insertWithKeyinsertLookupWithKey adjustWithKey updateWithKey unionsWith unionWith unionWithKey mapWithKey insertMap deleteMap singletonMap mapFromList mapToList adjustMap updateMapalterMap omapKeysWithIsSet insertSet deleteSet singletonSet setFromList setToListMonoZipozipWithozipounzip HasKeysSetKeySetkeysSetData.MonoTraversable.Unprefixed sequence_foldMconcatfold intercalatepointnotElemelem concatMaporandproductsum foldl1Ex'foldr1Ex foldMap1ExfoldlMfor_ traverse_ compareLengthlength64lengthnullanyalltoListfoldl'foldrfoldMap0monoid-subclasses-0.4.2.1-22tNbSsVT2q1MhQqtP2oxUData.Monoid.Textual TextualMonoidfromText prettyTree prettyTime prettyPerson prettyLinkprettyAtomText prettyEntry prettyItem prettyURI prettyGuidprettyAtomContentfailWithliftE parseJsonURI toJsonURIMode defaultModeNormal describePaths parameters recompileVanillaForceReconfigurationIgnoreReconfigurationbaseParameterswrap(fast-logger-2.4.6-IB3ml095wCm3yldIGmcIwTSystem.Log.FastLogger LoggerSetwithTimedFastLoggernewTimedFastLoggerwithFastLogger newFastLogger rmLoggerSetrenewLoggerSet flushLogStr pushLogStrLn pushLogStr newLoggerSetnewStderrLoggerSetnewStdoutLoggerSetnewFileLoggerSet FastLoggerTimedFastLoggerLogTypeLogNone LogStdout LogStderrLogFileNoRotateLogFile LogCallbackSystem.Log.FastLogger.DatesimpleTimeFormat'simpleTimeFormat newTimeCache FormattedTime TimeFormatSystem.Log.FastLogger.Filerotate FileLogSpeclog_file log_file_sizelog_backup_numberSystem.Log.FastLogger.IOdefaultBufSizeBufSizeSystem.Log.FastLogger.LogStr fromLogStr logStrLengthLogStrToLogStrtoLogStrhttpGet makeRequest parseUrl''connection-0.2.5-1yVV06f1hm0JPFso69KmVhNetwork.ConnectionconnectionIsSecureconnectionSetSecureconnectionCloseconnectionGetLineconnectionGetChunk'connectionGetChunk connectionGet connectionPut connectToconnectFromHandleinitConnectionContext LineTooLongNetwork.Connection.TypesConnectionParamsconnectionHostnameconnectionPortconnectionUseSecureconnectionUseSocks ProxySettingsSockSettingsSimpleSockSettingsEnvironment OtherProxy SockSettings TLSSettingsTLSSettingsSimple#settingDisableCertificateValidationsettingDisableSessionsettingUseServerName Connection connectionIDConnectionContext*http-client-0.5.0.1-7E1AbTtX54oCSEJz71QEgINetwork.HTTP.ClientresponseTimeoutDefaultresponseTimeoutNoneresponseTimeoutMicromanagerSetProxymanagerSetSecureProxymanagerSetInsecureProxywithResponseHistoryresponseOpenHistoryHistoriedResponse hrRedirectshrFinalRequesthrFinalResponseNetwork.HTTP.Client.Core responseClose responseOpen httpNoBodyhttpLbs withResponseNetwork.HTTP.Client.CookiesgenerateCookieinsertCheckedCookiereceiveSetCookieupdateCookieJarcomputeCookieStringinsertCookiesIntoRequestevictExpiredCookies!removeExistingCookieFromCookieJardestroyCookieJarcreateCookieJar pathMatches defaultPath domainMatches isIpAddressNetwork.HTTP.Client.Manager defaultProxyproxyEnvironmentNamedproxyEnvironmentuseProxynoProxyproxyFromRequest withManager closeManager newManagerdefaultManagerSettingsrawConnectionModifySocketNetwork.HTTP.Client.RequestobservedStreamFile streamFilesetQueryStringsetRequestIgnoreStatusurlEncodedBodyapplyBasicProxyAuthapplyBasicAuthdefaultRequestgetUri parseRequest_ parseRequest parseUrlThrowparseUrlNetwork.HTTP.Client.Body brConsume brReadSomebrReadNetwork.HTTP.Client.Types BodyReader HttpExceptionHttpExceptionRequestInvalidUrlExceptionHttpExceptionContentResponseTimeoutStatusCodeExceptionTooManyRedirectsOverlongHeadersConnectionTimeoutConnectionFailureInvalidStatusLine InvalidHeaderInternalExceptionProxyConnectExceptionNoResponseDataReceivedTlsNotSupportedWrongRequestBodyStreamSizeResponseBodyTooShortInvalidChunkHeadersIncompleteHeadersInvalidDestinationHostHttpZlibExceptionInvalidProxyEnvironmentVariableConnectionClosedCookie cookie_name cookie_valuecookie_expiry_time cookie_domain cookie_pathcookie_creation_timecookie_last_access_timecookie_persistentcookie_host_onlycookie_secure_onlycookie_http_only CookieJar proxyHost proxyPort RequestBodyRequestBodyLBS RequestBodyBSRequestBodyBuilderRequestBodyStreamRequestBodyStreamChunked RequestBodyIOPopper NeedsPopper GivesPopperRequestmethod decompresspathsecurehostport queryStringrequestHeaders requestBodyproxy redirectCount checkResponseresponseTimeout cookieJarrequestVersionResponseresponseStatusresponseVersionresponseHeaders responseBodyresponseCookieJarManagerSettingsmanagerConnCountmanagerRawConnectionmanagerTlsConnectionmanagerResponseTimeoutmanagerRetryableExceptionmanagerWrapExceptionmanagerIdleConnectionCountmanagerModifyRequest ProxyOverrideManagerHasHttpManagergetHttpManagerStreamFileStatusfileSize readSoFar thisChunkSize,http-client-tls-0.3.0-KqllQnW8XeZDCjm3atXeyiNetwork.HTTP.Client.TLSsetGlobalManagergetGlobalManagertlsManagerSettingsmkManagerSettings CliOptionsCommand optionCommandoptionDyreModeoptionLogLevelCheckImportRebuildUnreadRun ShowVersion Subscribe UnsubscribedefaultCommanddefaultOptions parseOptions cliOptionscommands vanillaFlagforceReconfFlagdenyReconfFlag dyreDebugdyreMasterBinary verboseFlag quietFlagconfigLabelOptionsubscribeOptionsunsubscribeOptions uriReader feedRefOption uriArgument$fPrettyCommand'mime-mail-0.4.11-9ydeMWq0NNkClR9HU8IhT4Network.Mail.Mime addressName addressEmail'HaskellNet-0.5.1-3PwLI5ruvW43NuK3U2M9GZNetwork.HaskellNet.SMTP sendMimeMail2 sendMimeMail' sendMimeMailsendPlainTextMail doSMTPStreamdoSMTP doSMTPPortsendMail authenticate closeSMTP sendCommand connectStream connectSMTPconnectSMTPPortSMTPConnectionAUTHNOOPQUITRSETHELOEHLOMAILRCPTDATAEXPNVRFYHELPOk SystemStatus HelpMessage ServiceReadyServiceClosing UserNotLocal CannotVerifyStartMailInputServiceNotAvailableMailboxUnavailableErrorInProcessingInsufficientSystemStorage SyntaxErrorParameterErrorCommandNotImplemented BadSequenceParameterNotImplementedMailboxUnavailableErrorUserNotLocalErrorExceededStorageMailboxNotAllowedTransactionFailedNetwork.HaskellNet.AuthAuthTypePLAINLOGINCRAM_MD5-HaskellNet-SSL-0.3.3.0-CH6FfMQw4My2NvzrTbibxINetwork.HaskellNet.SMTP.SSLdefaultSettingsSMTPSTARTTLSdefaultSettingsSMTPSSLdoSMTPSTARTTLSWithSettingsdoSMTPSTARTTLSdoSMTPSSLWithSettings doSMTPSSLconnectSMTPSTARTTLSWithSettingsconnectSMTPSTARTTLSconnectSMTPSSLWithSettingsconnectSMTPSSLNetwork.HaskellNet.SSLSettingssslPortsslMaxLineLengthsslLogToConsolesslDisableCertificateValidationquotedPrintableaddAttachmentsBSaddAttachmentBSaddAttachments addAttachmenthtmlPart plainPartaddPartsimpleMailInMemory simpleMail' simpleMailrenderSendMailCustomsendmailCustomCaptureOutputsendmailCustomrenderSendMail renderMail' renderAddress renderMail emptyMail randomStringBoundary unBoundaryMailmailFrommailTomailCcmailBcc mailHeaders mailPartsAddressEncodingBase64NoneQuotedPrintableTextQuotedPrintableBinary AlternativesPart partFilename partHeaderspartType partEncoding partContentHeaders StatusTable EntryTablecheckOneisRead importOPML'putBoxcellentryTableToBoxstatusTableToBoxInterruptedException SafeGuardAskConfirmationByPassConfirmationImmFCoImmFrealMainmkCoImm promptConfirm resolveTarget