-- | Filter out unwanated torrents as per specified function, removing
-- groups without any torrents remaining post-filtering.
torrentFilter :: (ABTorrent -> Bool) -> [ABTorrentGroup] -> [ABTorrentGroup]
torrentFilter p = filter (not . null . view torrents)
                  . map (torrents %~ filter p)
torrentFilter :: (ABTorrent -> Bool) -> [ABTorrentGroup] -> [ABTorrentGroup]
torrentFilter p = filter (not . null . view torrents)
                  . map (torrents %~ filter p)
torrentFilter p = filter (not . null . view torrents)
                  . map (torrents %~ filter p)