diff --git a/imm.cabal b/imm.cabal
--- a/imm.cabal
+++ b/imm.cabal
@@ -1,7 +1,7 @@
 name:                imm
-version:             1.0.0.0
+version:             1.0.1.0
 synopsis:            Execute arbitrary actions for each unread element of RSS/Atom feeds
---description:
+description:         Cf README file
 homepage:            https://github.com/k0ral/imm
 license:             OtherLicense
 license-file:        LICENSE
@@ -39,7 +39,7 @@
     Imm.Options
     Imm.Pretty
     Paths_imm
-  build-depends: aeson, atom-conduit, base == 4.*, bytestring, case-insensitive, chunked-data, comonad, compdata, conduit, conduit-combinators, conduit-parse, connection, containers, directory, dyre, directory, exceptions, fast-logger, filepath, free, hashable, HaskellNet, HaskellNet-SSL >= 0.3.3.0, http-client, http-client-tls, http-types, mime-mail, monoid-subclasses, mono-traversable, network, opml-conduit, optparse-applicative, rainbow, rainbox, rss-conduit, text, transformers, time, timerep >= 2.0.0.0, tls, uri-bytestring, xml, xml-conduit, ansi-wl-pprint
+  build-depends: aeson, atom-conduit, base == 4.*, bytestring, case-insensitive, chunked-data >= 0.3.0, comonad, compdata, conduit, conduit-combinators, conduit-parse, connection, containers, directory >= 1.2.3.0, dyre, exceptions, fast-logger, filepath, free, hashable, HaskellNet, HaskellNet-SSL >= 0.3.3.0, http-client, http-client-tls, http-types, mime-mail, monoid-subclasses, mono-traversable >= 1.0.0, network, opml-conduit, optparse-applicative, rainbow, rainbox, rss-conduit, text, transformers, time, timerep >= 2.0.0.0, tls, uri-bytestring, xml, xml-conduit, ansi-wl-pprint
   -- Build-tools:
   hs-source-dirs: src/lib
   ghc-options: -Wall -fno-warn-unused-do-bind
diff --git a/src/bin/Executable.hs b/src/bin/Executable.hs
--- a/src/bin/Executable.hs
+++ b/src/bin/Executable.hs
@@ -5,8 +5,6 @@
 -- {{{ Imports
 import           Imm
 import           Imm.Database.JsonFile
-import           Imm.Feed
-import           Imm.Hooks
 import           Imm.HTTP.Simple
 import           Imm.Logger.Simple
 import           Imm.Prelude
diff --git a/src/lib/Imm/Core.hs b/src/lib/Imm/Core.hs
--- a/src/lib/Imm/Core.hs
+++ b/src/lib/Imm/Core.hs
@@ -74,7 +74,7 @@
          => [FeedID] -> m ()
 showFeed feedIDs = do
   feeds <- Database.fetchList FeedTable feedIDs
-  if onull feeds then logWarning "No subscription" else putBox $ entryTableToBox feeds
+  if null feeds then logWarning "No subscription" else putBox $ entryTableToBox feeds
 
 -- | Register the given feed URI in database
 subscribe :: (MonadIO m, LoggerF :<: f, Functor f, MonadFree f m, DatabaseF' :<: f, MonadCatch m)
@@ -134,7 +134,7 @@
 isRead :: (Functor f, MonadCatch m, DatabaseF' :<: f, MonadFree f m) => FeedID -> FeedElement -> m Bool
 isRead feedID element = do
   DatabaseEntry _ _ readHashes lastCheck <- Database.fetch FeedTable feedID
-  let matchHash = not $ onull $ (setFromList (getHashes element) :: Set Int) `intersection` readHashes
+  let matchHash = not $ null $ (setFromList (getHashes element) :: Set Int) `intersection` readHashes
       matchDate = case (lastCheck, getDate element) of
         (Nothing, _) -> False
         (_, Nothing) -> False
@@ -157,7 +157,7 @@
 -- * Boxes
 
 putBox :: (Orientation a, MonadIO m) => Box a -> m ()
-putBox = void . io . mapM ByteString.putStr . chunksToByteStrings toByteStringsColors256 . otoList . render
+putBox = io . mapM_ ByteString.putStr . chunksToByteStrings toByteStringsColors256 . toList . render
 
 cell :: Text -> Cell
 cell a = Cell (singleton $ singleton $ chunk a) top left mempty
diff --git a/src/lib/Imm/Prelude.hs b/src/lib/Imm/Prelude.hs
--- a/src/lib/Imm/Prelude.hs
+++ b/src/lib/Imm/Prelude.hs
@@ -13,55 +13,61 @@
 module Imm.Prelude (module Imm.Prelude, module X) where
 
 -- {{{ Imports
-import           Control.Applicative          as X
+import           Control.Applicative             as X
 import           Control.Comonad
 import           Control.Comonad.Cofree
-import           Control.Monad                as X hiding (filterM, replicateM)
-import           Control.Monad.Catch          as X
-import           Control.Monad.IO.Class       as X
-import           Control.Monad.Trans.Free     (FreeF (..), FreeT (..))
+import           Control.Monad                   as X (MonadPlus (..), unless,
+                                                       void, when)
+import           Control.Monad.Catch             as X
+import           Control.Monad.IO.Class          as X
+import           Control.Monad.Trans.Free        (FreeF (..), FreeT (..))
 
-import           Data.Bifunctor               as X
-import qualified Data.ByteString              as B (ByteString ())
-import qualified Data.ByteString.Lazy         as LB (ByteString ())
-import           Data.Comp.Ops                as X
-import           Data.Containers              as X
+import           Data.Bifunctor                  as X
+import qualified Data.ByteString                 as B (ByteString ())
+import qualified Data.ByteString.Lazy            as LB (ByteString ())
+import           Data.Comp.Ops                   as X
+import           Data.Containers                 as X
+import           Data.Foldable                   as X (forM_)
 import           Data.Functor.Identity
-import           Data.IOData                  as X
-import           Data.Map                     as X (Map)
-import           Data.Maybe                   as X hiding (catMaybes)
-import           Data.Monoid                  as X
-import           Data.Monoid.Textual          as X (TextualMonoid (), fromText)
-import           Data.MonoTraversable         as X
-import           Data.Ord                     as X
--- import           Data.Semigroup               as X hiding (option)
-import           Data.Sequences               as X
-import           Data.Sequences.Lazy          as X
-import           Data.String                  as X (IsString (..))
-import qualified Data.Text                    as T (Text ())
-import qualified Data.Text.Lazy               as LT (Text ())
-import           Data.Textual.Encoding        as X
-import           Data.Typeable                as X
+import           Data.IOData                     as X
+import           Data.Map                        as X (Map)
+import           Data.Maybe                      as X hiding (catMaybes)
+import           Data.Monoid                     as X
+import           Data.Monoid.Textual             as X (TextualMonoid (),
+                                                       fromText)
+import           Data.MonoTraversable.Unprefixed as X hiding (forM_, mapM_)
+import           Data.Ord                        as X
+import           Data.Sequences                  as X
+import           Data.String                     as X (IsString (..))
+import qualified Data.Text                       as T (Text ())
+import qualified Data.Text.Lazy                  as LT (Text ())
+import           Data.Traversable                as X (forM)
+import           Data.Typeable                   as X
 
-import qualified GHC.Show                     as Show
+import qualified GHC.Show                        as Show
 
-import           Prelude                      as X hiding (break, drop,
-                                                    dropWhile, elem, filter,
-                                                    getLine, lines, log, lookup,
-                                                    notElem, readFile,
-                                                    replicate, reverse, show,
-                                                    span, splitAt, take,
-                                                    takeWhile, unlines, unwords,
-                                                    words, writeFile)
+import           Prelude                         as X hiding (all, and, any,
+                                                       break, concat, concatMap,
+                                                       drop, dropWhile, elem,
+                                                       filter, foldMap, foldr,
+                                                       getLine, length, lines,
+                                                       log, lookup, notElem,
+                                                       null, or, product,
+                                                       readFile, replicate,
+                                                       reverse, sequence_, show,
+                                                       span, splitAt, sum, take,
+                                                       takeWhile, unlines,
+                                                       unwords, words,
+                                                       writeFile)
 
-import           System.IO                    as X (stderr, stdout)
+import           System.IO                       as X (stderr, stdout)
 
-import           Text.PrettyPrint.ANSI.Leijen as X (Doc, Pretty (..), angles,
-                                                    brackets, equals, hsep,
-                                                    indent, space, text, vsep,
-                                                    (<+>))
+import           Text.PrettyPrint.ANSI.Leijen    as X (Doc, Pretty (..), angles,
+                                                       brackets, equals, hsep,
+                                                       indent, space, text,
+                                                       vsep, (<+>))
 
-import           Text.PrettyPrint.ANSI.Leijen (line)
+import           Text.PrettyPrint.ANSI.Leijen    (line)
 -- }}}
 
 -- * Free monad utilities
diff --git a/src/lib/Imm/Pretty.hs b/src/lib/Imm/Pretty.hs
--- a/src/lib/Imm/Pretty.hs
+++ b/src/lib/Imm/Pretty.hs
@@ -55,7 +55,7 @@
 
 prettyPerson :: AtomPerson -> Doc
 prettyPerson p = text (fromText $ toNullable $ personName p) <> email where
-  email = if onull $ personEmail p
+  email = if null $ personEmail p
     then mempty
     else space <> angles (text $ fromText $ personEmail p)
 
