upgradeFeed :: (IConnection c) => c -> RSSFeed -> [RSSItem] -> IO [RSSItem]
upgradeFeed conn _ its = mapM (procFDItem conn) its
    where procFDItem :: (IConnection c) => c -> RSSItem -> IO RSSItem
          procFDItem conn it = do b <- findByGuid conn it
                                  if b then readItem conn it
                                  else do addItem conn it
                                          return it

-- Get the paths -----------------------------------------------------
upgradeFeed :: (IConnection c) => c -> RSSFeed -> [RSSItem] -> IO [RSSItem]
upgradeFeed conn _ its = mapM (procFDItem conn) its
    where procFDItem :: (IConnection c) => c -> RSSItem -> IO RSSItem
          procFDItem conn it = do b <- findByGuid conn it
                                  if b then readItem conn it
                                  else do addItem conn it
                                          return it

-- Get the paths -----------------------------------------------------
upgradeFeed conn _ its = mapM (procFDItem conn) its
    where procFDItem :: (IConnection c) => c -> RSSItem -> IO RSSItem
          procFDItem conn it = do b <- findByGuid conn it
                                  if b then readItem conn it
                                  else do addItem conn it
                                          return it

-- Get the paths -----------------------------------------------------