diff --git a/examples/HowTo.lhs b/examples/HowTo.lhs
--- a/examples/HowTo.lhs
+++ b/examples/HowTo.lhs
@@ -26,7 +26,6 @@
 
 
 import Control.Monad.IO.Class (MonadIO, liftIO)
-import Data.Semigroup ((<>))
 import Data.Text (Text)
 import System.Wlog (WithLoggerIO, launchFromFile, logError, logInfo)
 
diff --git a/examples/HowTo.md b/examples/HowTo.md
--- a/examples/HowTo.md
+++ b/examples/HowTo.md
@@ -26,7 +26,6 @@
 
 
 import Control.Monad.IO.Class (MonadIO, liftIO)
-import Data.Semigroup ((<>))
 import Data.Text (Text)
 import System.Wlog (WithLoggerIO, launchFromFile, logError, logInfo)
 
diff --git a/examples/Playground.hs b/examples/Playground.hs
--- a/examples/Playground.hs
+++ b/examples/Playground.hs
@@ -90,7 +90,7 @@
     launchSimpleLogging "concurrent" concurrentActions
 
 concurrentActions :: forall m . (WithLoggerIO m, MonadBaseControl IO m) => m ()
-concurrentActions = logWarningWaitInf 2 "stupid action" someStupidAction
+concurrentActions = logWarningWaitInf (sec 2) "stupid action" someStupidAction
   where
     someStupidAction :: m ()
     someStupidAction = replicateM_ 10 $ do
diff --git a/examples/PureLogging.lhs b/examples/PureLogging.lhs
--- a/examples/PureLogging.lhs
+++ b/examples/PureLogging.lhs
@@ -27,7 +27,6 @@
 
 
 import Control.Monad.State.Strict (MonadState (..), State, evalState, get, lift, modify')
-import Data.Semigroup ((<>))
 
 import System.Wlog (NamedPureLogger, WithLogger, WithLoggerIO, launchNamedPureLogWith,
                     launchSimpleLogging, logDebug, logInfo)
diff --git a/examples/PureLogging.md b/examples/PureLogging.md
--- a/examples/PureLogging.md
+++ b/examples/PureLogging.md
@@ -27,7 +27,6 @@
 
 
 import Control.Monad.State.Strict (MonadState (..), State, evalState, get, lift, modify')
-import Data.Semigroup ((<>))
 
 import System.Wlog (NamedPureLogger, WithLogger, WithLoggerIO, launchNamedPureLogWith,
                     launchSimpleLogging, logDebug, logInfo)
diff --git a/log-warper.cabal b/log-warper.cabal
--- a/log-warper.cabal
+++ b/log-warper.cabal
@@ -1,5 +1,5 @@
 name:                log-warper
-version:             1.8.11
+version:             1.9.0
 synopsis:            Flexible, configurable, monadic and pretty logging
 homepage:            https://github.com/serokell/log-warper
 license:             MIT
@@ -46,28 +46,28 @@
                        System.Wlog.MemoryQueue
 
   build-depends:       base                 >= 4.9 && < 5
-                     , aeson                ^>= 1.2
-                     , ansi-terminal        >= 0.7 && < 0.9
-                     , containers           ^>= 0.5.7.1
+                     , aeson                ^>= 1.4
+                     , ansi-terminal        >= 0.7 && < 1.0
+                     , containers           ^>= 0.6
                      , deepseq              ^>= 1.4
                      , directory            ^>= 1.3
                      , filepath             ^>= 1.4.1
-                     , fmt                  ^>= 0.5.0.0
-                     , lifted-async         ^>= 0.9
-                     , microlens-platform   ^>= 0.3.9
+                     , fmt                  ^>= 0.6
+                     , lifted-async         >= 0.9 && < 0.11
+                     , microlens-platform   >= 0.3.9 && < 0.5
                      , monad-control        ^>= 1.0.1.0
                      , monad-loops          ^>= 0.4.3
                      , mmorph               ^>= 1.1
                      , mtl                  ^>= 2.2.1
-                     , o-clock              ^>= 0.1.1
+                     , o-clock              ^>= 1.1
                      , text                 ^>= 1.2.2.0
-                     , time                 ^>= 1.8
+                     , time                 >= 1.8 && < 2.0
                      , transformers         ^>= 0.5.2
                      , transformers-base    ^>= 0.4.4
-                     , universum            ^>= 1.1.0
+                     , universum            ^>= 1.6.0
                      , unordered-containers >= 0.2.7.1
                      , vector               ^>= 0.12
-                     , yaml                 ^>= 0.8.20
+                     , yaml                 ^>= 0.11
 
   if !os(windows)
     build-depends:     unix
@@ -94,7 +94,7 @@
                      , monad-control ^>= 1.0.1.0
                      , yaml       >= 0.8.20
   if impl(ghc >= 8.2.2)
-     build-depends:   o-clock ^>= 0.1
+     build-depends:   o-clock ^>= 1.1
 
   hs-source-dirs:      examples
   default-language:    Haskell2010
diff --git a/src/System/Wlog/Concurrent.hs b/src/System/Wlog/Concurrent.hs
--- a/src/System/Wlog/Concurrent.hs
+++ b/src/System/Wlog/Concurrent.hs
@@ -20,7 +20,7 @@
 import Control.Monad.Trans.Control (MonadBaseControl)
 import Fmt ((+|), (+||), (|+), (||+))
 import GHC.Real ((%))
-import Time (RatioNat, Second, Time, threadDelay, timeMul)
+import Time (RatioNat, Second, Time, sec, threadDelay, timeMul, (+:+))
 
 import System.Wlog.CanLog (WithLoggerIO, logWarning)
 
@@ -68,16 +68,16 @@
         let waitLoop :: Time Second -> m ()
             waitLoop acc = do
                 delayAndPrint s acc
-                waitLoop (acc + s)
+                waitLoop (acc +:+ s)
         in waitLoop s
     waitAndWarn (WaitGeometric ms k) =
         let waitLoop :: Time Second -> Time Second -> m ()
             waitLoop acc delayT = do
-                let newAcc    = acc + delayT
+                let newAcc    = acc +:+ delayT
                 let newDelayT = k `timeMul` delayT
                 delayAndPrint delayT newAcc
                 waitLoop newAcc newDelayT
-        in waitLoop 0 ms
+        in waitLoop (sec 0) ms
 
     delayAndPrint :: Time Second -> Time Second -> m ()
     delayAndPrint delayT printT = do
diff --git a/src/System/Wlog/IOLogger.hs b/src/System/Wlog/IOLogger.hs
--- a/src/System/Wlog/IOLogger.hs
+++ b/src/System/Wlog/IOLogger.hs
@@ -332,7 +332,7 @@
                 filter (\(HandlerT h) -> getTag h == HandlerFilelike filePathFull) $
                 concatMap _lHandlers $
                 M.elems liTree
-        let takeMaybe = maybe identity take linesNum
+        let takeMaybe = maybe id take linesNum
         case appropriateHandlers of
             [HandlerT h] -> liftIO $ readBack h 12345 -- all of them
             []  -> takeMaybe . reverse . T.lines <$> TIO.readFile filePathFull
diff --git a/src/System/Wlog/LogHandler/Roller.hs b/src/System/Wlog/LogHandler/Roller.hs
--- a/src/System/Wlog/LogHandler/Roller.hs
+++ b/src/System/Wlog/LogHandler/Roller.hs
@@ -15,8 +15,8 @@
 
 import System.Directory (removeFile, renameFile)
 import System.FilePath ((<.>))
-import System.IO (Handle, IOMode (ReadWriteMode), SeekMode (AbsoluteSeek, SeekFromEnd), hClose,
-                  hFileSize, hFlush, hSeek)
+import System.IO (SeekMode (AbsoluteSeek, SeekFromEnd), hFileSize,
+                  hFlush, hSeek)
 
 import System.Wlog.FileUtils (whenExist)
 import System.Wlog.Formatter (LogFormatter, nullFormatter)
diff --git a/src/System/Wlog/LogHandler/Simple.hs b/src/System/Wlog/LogHandler/Simple.hs
--- a/src/System/Wlog/LogHandler/Simple.hs
+++ b/src/System/Wlog/LogHandler/Simple.hs
@@ -28,10 +28,9 @@
 
 import Control.Concurrent (modifyMVar_, withMVar)
 import Data.Text.Lazy.Builder as B
-import Data.Typeable (Typeable)
 import System.Directory (createDirectoryIfMissing)
 import System.FilePath (takeDirectory)
-import System.IO (Handle, IOMode (ReadWriteMode), SeekMode (SeekFromEnd), hClose, hFlush, hSeek)
+import System.IO (SeekMode (SeekFromEnd), hFlush, hSeek)
 
 import System.Wlog.Formatter (LogFormatter, nullFormatter)
 import System.Wlog.LogHandler (LogHandler (..), LogHandlerTag (..))
diff --git a/src/System/Wlog/LoggerConfig.hs b/src/System/Wlog/LoggerConfig.hs
--- a/src/System/Wlog/LoggerConfig.hs
+++ b/src/System/Wlog/LoggerConfig.hs
@@ -64,7 +64,7 @@
 import Data.Traversable (for)
 import Data.Yaml (FromJSON (..), Object, Parser, ToJSON (..), Value (..), object, (.!=), (.:),
                   (.:?), (.=))
-import Fmt (build, (||+))
+import Fmt (Buildable (..), (||+))
 import Lens.Micro.Platform (at, makeLenses, zoom, _Just)
 import System.FilePath (normalise)
 
diff --git a/src/System/Wlog/LoggerName.hs b/src/System/Wlog/LoggerName.hs
--- a/src/System/Wlog/LoggerName.hs
+++ b/src/System/Wlog/LoggerName.hs
@@ -7,7 +7,7 @@
 import Universum
 
 import Data.Aeson.Types (ToJSON, ToJSONKey (..), toJSONKeyText)
-import Fmt (build)
+import Fmt (Buildable(..))
 
 -- | Logger name to keep in context.
 newtype LoggerName = LoggerName
diff --git a/src/System/Wlog/PureLogging.hs b/src/System/Wlog/PureLogging.hs
--- a/src/System/Wlog/PureLogging.hs
+++ b/src/System/Wlog/PureLogging.hs
@@ -27,7 +27,6 @@
 import Universum
 
 import Control.Monad.Morph (MFunctor (..))
-import Control.Monad.State.Strict (modify')
 import Data.Sequence ((|>))
 
 import System.Wlog.CanLog (CanLog (..), WithLogger)
diff --git a/src/System/Wlog/Severity.hs b/src/System/Wlog/Severity.hs
--- a/src/System/Wlog/Severity.hs
+++ b/src/System/Wlog/Severity.hs
@@ -15,7 +15,6 @@
 
 import Universum
 
-import Data.Typeable (Typeable)
 import Data.Yaml (FromJSON, ToJSON)
 
 import qualified Data.Set as Set
diff --git a/src/System/Wlog/Terminal.hs b/src/System/Wlog/Terminal.hs
--- a/src/System/Wlog/Terminal.hs
+++ b/src/System/Wlog/Terminal.hs
@@ -17,7 +17,6 @@
 import Universum
 
 import Data.Time (UTCTime)
-import System.IO (Handle, stderr, stdout)
 
 import System.Wlog.Formatter (stdoutFormatter)
 import System.Wlog.IOLogger (rootLoggerName, setHandlers, setLevel, updateGlobalLogger)
diff --git a/test/Test/Wlog/RollingSpec.hs b/test/Test/Wlog/RollingSpec.hs
--- a/test/Test/Wlog/RollingSpec.hs
+++ b/test/Test/Wlog/RollingSpec.hs
@@ -1,3 +1,5 @@
+{-# OPTIONS_GHC -Wno-orphans #-}
+
 -- | Tests for rolling logger.
 
 module Test.Wlog.RollingSpec
@@ -35,7 +37,7 @@
               let wrongRP1 = RotationParameters 0 1
               let wrongRP2 = RotationParameters 1 0
               let expectedRollException rp =
-                    (== InvalidRotation ("Rotation parameters must be positive: " <> pretty rp))
+                    (== InvalidRotation ("Rotation parameters must be positive: " <> show rp))
               let rollExceptionChecker rp
                     = rotationFileHandler rp "" (error "Test roll!")
                         `shouldThrow`
