!j)2,      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+ None,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~None=>?k`immCNewtype wrapper to prettyprint a key uniquely identifying an objectbimmInfix operator for Fv  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJMLKPNOXWVUTSRQ[ZY^]\_`abcdefghijklmnopqrstuv`abcdefghijklmnopqrstu  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJMLKPNOXWVUTSRQ[ZY^]\_None=>?@A vyxzw{|~} {|~}vyxzwNone=>?"imm$Handle to perform GET HTTP requests.immSimple wrapper around " that also logs the requested URI.None &'.1=?SUVX$imm8Feed reference: either its URI, or its UID from databaseNone%None1=>?@AHSVX&immGeneric database table""None "#>HVk+\imm'Singleton type to represent feeds tableimmNewtype wrapper to provide  and  instances for immNewtype wrapper to provide  and  instances for immUnique key in feeds table""None70imm`All information passed to external programs about a new feed item, are stored in this structure.imm+External program run for each feed element.A = is passed to this program through stdin, serialized in JSON. None0yMvwzxy}~Mvwzxy}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmmnopqqrstuvwxyz{|}~x      !"#$%&'()* +,-. /0 /1 23 24 5 6 7,-8 9: 9; <= >? >@ >A B CD CE CF CG CH CI CJ CK CL CM CN CO,PQ,PR,PS TU TV TW TX TY TZ T[ T\ T] T^ T_ T` Ta Tb Tc Td Te Tf 9g 9h 9i 9j 9k 9l 9m 9n 9o 9p 9q 9r s t u v w x y z{ z| z} z~ z z z z,P,P,P,P,P,P,P,P  9 9 T T T T T T T T T T T 9 9 9 9 9 9                                    ,,,,,,,,,        ,,,, 9 9,,       ,,, ,         !"#!"$%&'%&(%)*%+,%+-%+.%/0%/1%/2%/3%/4%/5%/6%/7%/8%/9%/:%/;%<=%<>%<?%<@%AB%AC%AD%AE%AF%AG%AH%AI%JK%JL%JM%JN%JO%JP%JQ%RS%RT%RU%VW%VX%VY%VZ%V[%V\%V]%V^%V_%V`%ab%cd%ce%cf%cg%hi%hj%hk%hl%hm%hn%ho%hp%hq%hr%hs%ht%hu%hv%hw%hx%hy%hz%h{%|}%|~%|%|%|%|%|%|%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% !!!!!!!!!!!!!!     !  !  ! ! !"!"!"!!!!!!,P,P,P          ! " # $ % & ' ( ) *+ z, -. 2/ 20 21 23 24 25 26 27 28 29 2: /; /< /= /> /? /@ /A /B /C /D /E /F /G /H /I /J /K /L MN 9O 9P 9Q 9R 9S 9T 9U 9V W X Y Z[ Z\ Z] ^_ `a b c d ef eg eh ei ej kl km no no pq pq pr s t u v w x y z {| {} ~ ~ ~ ~ ~ ~ ~ ~ ~ ~Q ~ ~ ~ ~ ~ ~ ~ ~                                                                                    < < < < < < < < < < < <                                          >      ! "# "$ "% &' &' &( )* )* )+ ), ), )- ). ). )/ )0 )1 )2 )3 )4 )5 )6 )7 )8 )9 : ; C< C= > ? @ A B C D E )F )F )G HI `J%KL MNOPNQRSTUV"imm-1.6.0.0-AI8t4wjrAX18Aalm5NPGfe Imm.Pretty Imm.LoggerImm.HTTPImm.FeedImm.XML Imm.DatabaseImm.Database.FeedTable Imm.CallbackPreludeImmbaseGHC.Base<>*prettyprinter-1.2.1-JPC8f5cJn5SAkoQXDSGO7Z"Data.Text.Prettyprint.Doc.InternalDoc'Data.Text.Prettyprint.Doc.Symbols.Asciipipeequals backslashslashdotspacecommacolonsemirbracelbracerbracketlbracketranglelanglerparenlparendquotesquotebracesbracketsanglesparensdquotessquotes layoutCompact layoutSmart layoutPrettydefaultLayoutOptionsremoveTrailingWhitespacefusealterAnnotationsS reAnnotateS unAnnotateSalterAnnotations reAnnotate unAnnotateannotatesurroundencloseplural fillBreakfill pageWidthnestingcolumn punctuatecatfillCatvcathcatsepfillSepvsephsep concatWith<+>tupled encloseSepindenthangalignflatAltgrouphardline softline'softlineline'linenestemptyDoc unsafeViaShowviaShow prettyListprettyPrettyDeepShallow FusionDepthSAnnPopSAnnPushSLineSTextSCharSEmptySFailSimpleDocStream UnboundedAvailablePerLine PageWidthlayoutPageWidth LayoutOptions:prettyprinter-ansi-terminal-1.1.1.2-8Hd119TbPHN6T9qJ6QGNJ82Data.Text.Prettyprint.Doc.Render.Terminal.Internal AnsiStyle PrettyKey<++> prettyTree prettyTime prettyPerson prettyLinkprettyAtomText prettyElement prettyNode prettyContent prettyEntry prettyItem prettyURI prettyGuidprettyAtomContentmagentayellowredgreencyanboldLogLevelDebugInfoWarningErrorHandlelog getLogLevel setLogLevelsetColorizeLogs flushLogs$fPrettyLogLevel $fEqLogLevel $fOrdLogLevel$fReadLogLevel$fShowLogLevelhttpGetgetFeedURI FeedElement RssElement AtomElementFeedRssAtomFeedRefByUIDByURI sameURIType withFeedURI renderFeedrenderFeedElement parseFeedparseFeedElementremoveElements getFeedTitle getElementsgetDategetTitle getContentgetLinkgetId$fPrettyFeedRef$fEqFeedElement$fOrdFeedElement$fPrettyPrettyKey $fOrdFeedURI $fEqFeedURI $fEqFeedRef $fOrdFeedRef $fShowFeedRef$fEqFeed $fOrdFeed $fShowFeed$fShowFeedElement $fShowFeedURIparseXmlDatabaseException NotCommitted NotDeletedNotFound NotInserted NotPurged NotUpdatedUnableFetchAll_describeDatabase _fetchList _fetchAll_update _insertList _deleteList_purge_commitTableKeyEntryrepreadOnlyfetch fetchListfetchAllupdateinsert insertListdelete deleteListpurgecommittable$fPrettyDatabaseException$fExceptionDatabaseException$fShowDatabaseException$fEqDatabaseExceptionDatabase FeedStatusUnknownNew LastUpdate FeedTable DatabaseEntryentryURI entryTagsentryReadHashes entryFeed entryItemsentryLastUpdate JsonElement unwrapElementJsonURI _unwrapURIFeedID prettyFeedID getHashesprettyShortDatabaseEntryprettyDatabaseEntrynewDatabaseEntryregister getStatusmarkAsProcessedmarkAsUnprocessedisRead$fPrettyFeedID$fToJSONJsonURI$fFromJSONJsonURI$fToJSONFeedID$fFromJSONFeedID$fToJSONKeyJsonElement$fToJSONJsonElement$fFromJSONKeyJsonElement$fFromJSONJsonElement$fToJSONDatabaseEntry$fFromJSONDatabaseEntry$fTableFeedTable$fPrettyFeedTable$fPrettyFeedStatus $fEqFeedID $fOrdFeedID $fShowFeedID$fEqJsonElement$fOrdJsonElement$fEqDatabaseEntry$fShowDatabaseEntry $fEqFeedTable$fOrdFeedTable$fReadFeedTable$fShowFeedTable $fEqDatabase$fShowDatabaseMessageCallback _executable _arguments$fPrettyCallback$fInterpretCallback$fFromJSONMessage$fToJSONMessage $fEqCallback$fGenericCallback $fOrdCallback$fReadCallback$fShowCallback $fEqMessage$fGenericMessage $fOrdMessage $fShowMessage++ghc-primGHC.PrimseqGHC.Listfilterzip Data.Tuplefstsnd otherwisemap$coerceGHC.Real fromIntegral realToFrac Control.MonadguardGHC.ExtsIsListfromList fromListNjoinGHC.EnumBoundedminBoundmaxBoundEnumenumFrom enumFromThenenumFromThenTo enumFromTofromEnumtoEnumsuccpred GHC.ClassesEq==/= GHC.FloatFloatingpiexpsqrt**logBasesincostanasinacosatansinhcoshtanhasinhacoshatanh Fractional fromRational/recipIntegral toIntegerquotremdivmodquotRemdivModMonad>>=>>returnFunctorfmap<$GHC.NumNum+*-negate fromIntegerabssignumOrd>=compareminmax><<=GHC.ReadReadReal toRational RealFloat floatRadix floatDigits floatRange decodeFloat encodeFloatisNaN isInfiniteisDenormalizedisNegativeZeroisIEEERealFracproperFractiontruncateroundceilingfloorGHC.ShowShowData.Typeable.InternalTypeableControl.Monad.Fail MonadFailfail Data.StringIsString fromString Applicativepure<*>*><*liftA2 Data.FoldableFoldabletoListfoldrfoldlengthfoldMapnullfoldl'Data.Traversable TraversabletraversemapM sequenceAsequence GHC.GenericsGeneric GHC.TypeNatsKnownNatGHC.OverloadedLabelsIsLabel fromLabel SemigroupsconcatstimesMonoidmemptymappendmconcat GHC.TypesBoolFalseTrueCharDoubleD#FloatF#IntGHC.IntInt8Int16Int32Int64 integer-gmpGHC.Integer.TypeInteger GHC.NaturalNatural GHC.MaybeMaybeNothingJustOrderingLTEQGTRatioRationalIOWordGHC.WordWord8Word16Word32Word64 Data.EitherEitherLeftRightType ConstraintNatCmpNat CoercibleGHC.Stack.Types CallStackStringbytestring-0.10.8.2Data.ByteString.Internal ByteString Data.Functor<$>'hashable-1.2.7.0-2SI038axTEd7AEZJ275kpiData.Hashable.ClassHashable hashWithSalt text-1.2.3.1Data.Text.InternalText4unordered-containers-0.2.10.0-LgoTL3wbBEY5bZIDJiyxW4Data.HashMap.BaseHashMapcontainers-0.6.0.1Data.Map.InternalMap stm-2.5.0.0Control.Concurrent.STM.TVar modifyTVar' Data.TextunwordsunlineslineswordsData.Text.Encoding decodeUtf8'decodeUtf8WithData.Text.Encoding.Error lenientDecode strictDecodeOnError OnDecodeErrorUnicodeExceptiontransformers-0.5.5.0Control.Monad.Trans.MaybeexceptToMaybeTmaybeToExceptT#relude-0.5.0-20kLFagzhCjJeGfP8HGvhhRelude.Applicativepass appliedToRelude.FunctionidentityRelude.Functor.Fmap<<$>>flap??Relude.Lifted.Concurrent newEmptyMVarnewMVarputMVarreadMVarswapMVartakeMVar tryPutMVar tryReadMVar tryTakeMVar atomically newTVarIO readTVarIORelude.Lifted.ExitexitWith exitFailure exitSuccessdieRelude.Lifted.IORefnewIORef readIORef writeIORef modifyIORef modifyIORef'atomicModifyIORefatomicModifyIORef'atomicWriteIORefRelude.Monad.Maybe?:whenJust whenJustM whenNothing whenNothing_ whenNothingM whenNothingM_Relude.Lifted.FilereadFile writeFile appendFileRelude.Monad.Trans usingReaderT usingReader usingStateT usingStateevaluatingStateTevaluatingStateexecutingStateTexecutingState hoistMaybe hoistEither Relude.Monoid maybeToMonoid Relude.NubordNubhashNubsortNub unstableNubRelude.String.Conversion LazyStricttoStricttoLazyToStringtoStringToLTexttoLTextToTexttoText ConvertUtf8 encodeUtf8 decodeUtf8decodeUtf8Strict LByteStringLText readEithershowfromLazy fromStrict Relude.PrintputText putTextLnputLText putLTextLnputBSputBSLnputLBSputLBSLnRelude.Monad.Either leftToMaybe rightToMaybe maybeToRight maybeToLeftwhenLeft whenLeft_ whenLeftM whenLeftM_ whenRight whenRight_ whenRightM whenRightM_ Relude.Monad chainedToRelude.List.NonEmpty viaNonEmpty whenNotNull whenNotNullMRelude.ExceptionBugExcbugRelude.DeepSeq evaluateWHNF evaluateWHNF_ evaluateNF evaluateNF_Relude.Bool.GuardwhenMunlessMifMguardM&&^||^Relude.NumericintegerToBoundedintegerToNaturalRelude.Container.OneOneOneItemoneRelude.Foldable.FoldElemErrorMessage DisallowElem flipfoldl'asumMapfoldMapAfoldMapMsumproductelemnotElemandMorMallManyM Relude.File readFileText writeFileTextappendFileText readFileLTextwriteFileLTextappendFileLText readFileBS writeFileBS appendFileBS readFileLBS writeFileLBS appendFileLBS Relude.Debug Undefinedtrace traceShow traceShowId traceShowMtraceMtraceIderror undefinedRelude.Lifted.TerminalgetLineprintputStrputStrLnData.HashSet.BaseHashSet Control.Monad.Trans.State.Strict execStateT evalStateT withState execState evalStaterunStateStateControl.Monad.Trans.Reader withReaderT withReader runReaderReaderControl.Monad.Trans.Except runExceptT mtl-2.2.2Control.Monad.Reader.Class MonadReaderasklocalreaderasksControl.Monad.State.Classmodifymodify'getsControl.Monad.Trans.Identity IdentityT runIdentityT MonadStateputstatedeepseq-1.4.4.0Control.DeepSeqNFDatarnfdeepseq$!!Data.Set.InternalSetData.Sequence.InternalSeqData.IntSet.InternalIntSetData.IntMap.InternalIntMapControl.Monad.Trans.Class MonadTransliftExceptTMaybeT runMaybeTReaderT runReaderTStateT runStateTnot||&&GHC.Exception.Type SomeExceptionData.Semigroup.InternalstimesIdempotentMonoid HasCallStack getCallStackNonEmpty:|<**>liftA3=<<whenordidconst.flip$!asTypeOf GHC.Stack.CCScurrentCallStacksubtractGHC.MVarMVarcurryuncurryswap Data.MaybemaybeisJust isNothing fromMaybe maybeToList listToMaybe catMaybesmapMaybeunconsscanlscanriteraterepeat replicatecycle takeWhile dropWhiletakedropsplitAtbreakreversezip3zipWithunzipunzip3GHC.Charchr numerator denominatorevenodd^^^gcdlcm<&>$>void Data.Functionfixon& Data.Boolbool Data.BitstoIntegralSized byteSwap16 byteSwap32 byteSwap64 GHC.IO.IOModeIOModeReadMode WriteMode AppendMode ReadWriteModeControl.Category<<<>>> Data.ProxyProxyData.OrdDown comparingeitherleftsrightspartitionEithersisLeftisRightfromLeft fromRight Text.Readreads readMaybe Data.OldList isPrefixOf intersperse intercalate transpose genericLength genericTake genericDropgenericSplitAtgenericReplicateinitstails subsequences permutationssortsortBysortOnunfoldrSomeNatnatVal someNatValAltgetAltProduct getProductSumgetSumAnygetAnyAllgetAllEndoappEndoDualgetDualstimesIdempotent stimesMonoid Data.MonoidApgetApLastgetLastFirstgetFirstfoldlM traverse_for_mapM_forM_ sequenceA_ sequence_asumconcat concatMapandoranyallfindData.Functor.ConstConstgetConst Exception toException fromExceptiondisplayException GHC.Exception prettySrcLocprettyCallStackGHC.IOFilePath GHC.IORefIORefGHC.IO.Handle.FDstdout GHC.Conc.SyncTVarSTMnewTVarreadTVar writeTVar GHC.Stack callStackwithFrozenCallStackstdinstderr System.IOwithFileData.Functor.IdentityIdentity runIdentityControl.ApplicativeZipList getZipListoptionalforM mapAccumL mapAccumRfilterM>=><=<forever mapAndUnzipMzipWithM zipWithM_ replicateM replicateM_unless<$!>mfilterControl.Monad.IO.ClassMonadIOliftIOGHC.ExecutionStack getStackTraceshowStackTraceData.List.NonEmptynonEmptyheadtaillastinitData.Bifunctor BifunctorfirstsecondbimapData.Bifoldable Bifoldablebifold bifoldMapbifoldrbifoldlbifoldr'bifoldrMbifoldl'bifoldlM bitraverse_bifor_ bisequence_biasumbiListbinullbilengthbielembiandbiorbianybiallbifindData.Bitraversable Bitraversable bitraverse bisequencebifor bimapDefaultbifoldMapDefaultsortWithData.SemigroupOption getOption WrappedMonoidcycle1 mtimesDefault Data.VoidVoidabsurdvacuousData.Functor.ComposeCompose getComposeData.Functor.ContravariantOpgetOp EquivalencegetEquivalence Comparison getComparison Contravariant contramap>$phantom$<>$<>$$<defaultComparisondefaultEquivalencecomparisonEquivalenceminIntmaxIntboundedEnumFromboundedEnumFromThen MonadPlusmzeromplus Alternativeempty<|>somemany Predicate getPredicate Control.Arrow&&&xorRelude.Extra.Maplookupio$aeson-1.4.3.0-CKhfOL9YUanCoDzOlq0iJCData.Aeson.Types.FromJSONFromJSONData.Aeson.Types.ToJSONToJSON-uri-bytestring-0.3.2.1-KaOhoUSLzZoDrTzVsohSxWURI.ByteString.TypesURI