S      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTU V       !WXYZ[ !  !  !"#$% "#$%"#$%"#$%&'()*+,\-./0]^_123&'()*+,-./012345)*+,&('-./045123&(''()*+,*+,-./01236789:;<=>?@ZThe main class which abstracts over delivery of datatype to somewhere in the file system. a It also abstracts over construction. Due to some weirdity w.r.t. Hint, this, and all instancing b datatypes, must derive Typeable. A bit of boilerplate, but deriving generally handles it easily. ABCD6789:;<=>?@ABCD@AB<=>?:;89C67D677899:;;<=>?=>?@ABABCDE_A simple type to contain the email context. May become bigger, to store configuration details,  etc. FGaA type mostly used in Hackmain.hs, stores some information about paths. Only here to avoid nasty Y mutually recursive modules. (TODO: Move this and associated functions another module?) HIJKLMNOP`abcdeR; "#$%&'()*+,-./012345EFGHIJKLMNOPQRLMNOPQGHIJKEFR EFFGHIJKHIJKLMNOPMNOPRfghijklmnopqrstuvwxyz{|}~ WXYZ[ !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHJLMNOPQR      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnlmolmplmqlrslmtlmulrvlwxlwylz{lw|lw}lw~lwlwlwlwlwlwlwlwlwlwlwlwlwlwlwlwlwlwlwlwlwlwlwlwlwlwlwlm HackMail-0.0HackMail.Control.ChecksumHackMail.Data.ParseEmailHackMail.Control.MiscHackMail.Data.EmailHackMail.Data.PathHackMail.Data.DeliverableHackMail.Data.MainTypesHackMail.Data.FilterConfchecksum HeaderTokXFIELDKEYWORDSSUBJECT REFERENCES INREPLYTO MESSAGEIDBCCCCREPLYTOSENDERFROMDATETOHeaderSTOPHDRBodyEmail parseEmailparseEmailFromFilematchHdr pairToListbothdoubleappBoth appDouble maybeToBoolmaybeAndmaybeOrmaybeIf writeEmail emailChecksumgrabTokValUnsafe grabTokValVPathRoot:/:PathP virtualPathrelativeparseparseVsplitOn+/+ pathExistsmkDeliverablePath toFilePath liftToPath1 liftToPath2 ToDeliveryWrap MaildirEmailMD FlatEmailFlatDEMailDEemailpath Deliverable deliverIO constructgetDeliveryPathdeliveryFilterConfigConfinboxLoc filterMainLoc filterMainOptionsOpt daemonModeincomingMailLoc altFMainLocgetOpts runFilter makeReadabletoChr testChecksummatchif'^|^dupe^&^copyFileName catVPathstoListfromListSortOptRegOptEqOpt optNormalForm parseOptsfindOptbaseGHC.Basefail>>=>>returnControl.Monad.FixmfixMonadFunctorMonadFix Control.Monad MonadPlusfoldM Data.FunctionfixapliftM5liftM4liftM3liftM2liftMunlesswhen replicateM_ replicateMfoldM_ zipWithM_zipWithM mapAndUnzipMjoinforever<=<>=>msumforM_forMfilterMguardmapM_mapM sequence_sequence=<<mplusmzerofmap mtl-1.1.0.2Control.Monad.TransliftIO MonadTransliftMonadIOControl.Monad.Reader withReaderT mapReaderT withReader mapReader runReaderReader runReaderTReaderTControl.Monad.Reader.Classaskslocalask MonadReader