--------------------------------------------------------------------------------
-- Utility operations

-- | Returns a subset of the current booklist that contains the books for which
-- the given predicate returns true.
find :: MonadState BookList m => (Book -> Bool) -> m BookList
find f = gets (Set.filter f)
find :: MonadState BookList m => (Book -> Bool) -> m BookList
find f = gets (Set.filter f)
find f = gets (Set.filter f)