diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -1,5 +1,3 @@
 # little-logger
 
-[![CircleCI](https://circleci.com/gh/ejconlon/little-logger/tree/master.svg?style=svg)](https://circleci.com/gh/ejconlon/little-logger/tree/master)
-
 Basic logging based on monad-logger. Meant to give you what you need to get started with a single module import.
diff --git a/Setup.hs b/Setup.hs
deleted file mode 100644
--- a/Setup.hs
+++ /dev/null
@@ -1,2 +0,0 @@
-import Distribution.Simple
-main = defaultMain
diff --git a/little-logger.cabal b/little-logger.cabal
--- a/little-logger.cabal
+++ b/little-logger.cabal
@@ -1,11 +1,11 @@
 cabal-version: 1.12
 
--- This file has been generated from package.yaml by hpack version 0.34.4.
+-- This file has been generated from package.yaml by hpack version 0.35.2.
 --
 -- see: https://github.com/sol/hpack
 
 name:           little-logger
-version:        1.0.1
+version:        1.0.2
 synopsis:       Basic logging based on monad-logger
 description:    Please see the README on GitHub at <https://github.com/ejconlon/little-logger#readme>
 category:       Logging
@@ -42,7 +42,7 @@
     , microlens >=0.4 && <1
     , monad-logger ==0.3.*
     , mtl >=2.2 && <3
-    , text >=1.2 && <2
+    , text >=1.2 && <2.1
     , unliftio-core >=0.1.2.0 && <2
   default-language: Haskell2010
 
@@ -69,6 +69,6 @@
     , tasty >=1.2.3 && <2
     , tasty-hunit >=0.10.0.2 && <1
     , temporary ==1.3.*
-    , text >=1.2 && <2
+    , text >=1.2 && <2.1
     , unliftio-core >=0.1.2.0 && <2
   default-language: Haskell2010
diff --git a/src/LittleLogger.hs b/src/LittleLogger.hs
--- a/src/LittleLogger.hs
+++ b/src/LittleLogger.hs
@@ -29,24 +29,47 @@
   , logWarnN
   , logErrorN
   , logOtherN
-  ) where
+  )
+where
 
+import Control.Monad (when)
 import Control.Monad.IO.Class (MonadIO (..))
 import Control.Monad.IO.Unlift (MonadUnliftIO, askRunInIO)
-import Control.Monad.Logger.CallStack (Loc (..), LogLevel (..), LogSource, LogStr, MonadLogger (..), ToLogStr (..),
-                                       defaultOutput, fromLogStr, logDebugN, logErrorN, logInfoN, logOtherN, logWarnN)
+import Control.Monad.Logger.CallStack
+  ( Loc (..)
+  , LogLevel (..)
+  , LogSource
+  , LogStr
+  , MonadLogger (..)
+  , ToLogStr (..)
+  , defaultOutput
+  , fromLogStr
+  , logDebugN
+  , logErrorN
+  , logInfoN
+  , logOtherN
+  , logWarnN
+  )
 import Control.Monad.Reader (MonadReader, ReaderT (..), asks)
 import Data.Text (Text)
 import Data.Text.Encoding (decodeUtf8)
 import Lens.Micro (Lens')
 import Lens.Micro.Extras (view)
-import System.IO (BufferMode (LineBuffering), Handle, IOMode (AppendMode), hClose, hSetBuffering, openFile, stderr,
-                  withFile)
+import System.IO
+  ( BufferMode (LineBuffering)
+  , Handle
+  , IOMode (AppendMode)
+  , hClose
+  , hSetBuffering
+  , openFile
+  , stderr
+  , withFile
+  )
 
 textLogStr :: LogStr -> Text
 textLogStr = decodeUtf8 . fromLogStr
 
-newtype LogAction = LogAction { unLogAction :: Loc -> LogSource -> LogLevel -> LogStr -> IO () }
+newtype LogAction = LogAction {unLogAction :: Loc -> LogSource -> LogLevel -> LogStr -> IO ()}
 
 instance Semigroup LogAction where
   LogAction act1 <> LogAction act2 = LogAction (\loc src lvl msg -> act1 loc src lvl msg >> act2 loc src lvl msg)
@@ -55,31 +78,32 @@
   mempty = LogAction (\_ _ _ _ -> pure ())
   mappend = (<>)
 
-newLogAction :: MonadUnliftIO m => (Loc -> LogSource -> LogLevel -> LogStr -> m ()) -> m LogAction
+newLogAction :: (MonadUnliftIO m) => (Loc -> LogSource -> LogLevel -> LogStr -> m ()) -> m LogAction
 newLogAction act = fmap (\run -> LogAction (\loc src lvl msg -> run (act loc src lvl msg))) askRunInIO
 
-runLogAction :: MonadIO m => LogAction -> Loc -> LogSource -> LogLevel -> LogStr -> m ()
+runLogAction :: (MonadIO m) => LogAction -> Loc -> LogSource -> LogLevel -> LogStr -> m ()
 runLogAction (LogAction act) loc src lvl msg = liftIO (act loc src lvl msg)
 
 defaultLogAction :: LogAction
 defaultLogAction = LogAction (defaultOutput stderr)
 
 filterActionSeverity :: LogLevel -> LogAction -> LogAction
-filterActionSeverity lim (LogAction act) = LogAction (\loc src lvl msg -> if lvl >= lim then act loc src lvl msg else pure ())
+filterActionSeverity lim (LogAction act) =
+  LogAction (\loc src lvl msg -> when (lvl >= lim) (act loc src lvl msg))
 
 handleLogAction :: Handle -> LogAction
 handleLogAction = LogAction . defaultOutput
 
-openLoggingHandle :: MonadIO m => FilePath -> m Handle
+openLoggingHandle :: (MonadIO m) => FilePath -> m Handle
 openLoggingHandle fp = do
   handle <- liftIO (openFile fp AppendMode)
   liftIO (hSetBuffering handle LineBuffering)
   pure handle
 
-closeLoggingHandle :: MonadIO m => Handle -> m ()
+closeLoggingHandle :: (MonadIO m) => Handle -> m ()
 closeLoggingHandle = liftIO . hClose
 
-fileLogAction :: MonadUnliftIO m => FilePath -> (LogAction -> m a) -> m a
+fileLogAction :: (MonadUnliftIO m) => FilePath -> (LogAction -> m a) -> m a
 fileLogAction fp f = do
   run <- askRunInIO
   liftIO $ withFile fp AppendMode $ \handle -> do
@@ -98,17 +122,17 @@
 askLogAction = asks (view logActionL)
 
 -- | Use deriving-via with this wrapper to add MonadLogger instances to your types
-newtype LogActionWrapperM env m a = LogActionM { unLogActionM :: m a }
+newtype LogActionWrapperM env m a = LogActionM {unLogActionM :: m a}
   deriving newtype (Functor, Applicative, Monad, MonadIO, MonadReader env)
 
-instance WithLogAction env m => MonadLogger (LogActionWrapperM env m) where
+instance (WithLogAction env m) => MonadLogger (LogActionWrapperM env m) where
   monadLoggerLog loc src lvl msg = do
     LogAction act <- askLogAction
     liftIO (act loc src lvl (toLogStr msg))
 
-newtype LogActionT m a = LogActionT { unLogActionT :: ReaderT LogAction m a }
+newtype LogActionT m a = LogActionT {unLogActionT :: ReaderT LogAction m a}
   deriving newtype (Functor, Applicative, Monad, MonadIO, MonadReader LogAction)
-  deriving MonadLogger via (LogActionWrapperM LogAction (LogActionT m))
+  deriving (MonadLogger) via (LogActionWrapperM LogAction (LogActionT m))
 
 runLogActionT :: LogActionT m a -> LogAction -> m a
 runLogActionT = runReaderT . unLogActionT
diff --git a/test/Main.hs b/test/Main.hs
--- a/test/Main.hs
+++ b/test/Main.hs
@@ -5,8 +5,19 @@
 import Control.Exception (finally)
 import Data.IORef (IORef, modifyIORef', newIORef, readIORef)
 import Data.Text (Text)
-import LittleLogger (LogAction (..), LogActionM, LogLevel (..), fileLogAction, filterActionSeverity, logDebugN,
-                     logErrorN, logInfoN, logWarnN, runLogActionM, textLogStr)
+import LittleLogger
+  ( LogAction (..)
+  , LogActionM
+  , LogLevel (..)
+  , fileLogAction
+  , filterActionSeverity
+  , logDebugN
+  , logErrorN
+  , logInfoN
+  , logWarnN
+  , runLogActionM
+  , textLogStr
+  )
 import System.Directory (removeFile)
 import System.IO.Temp (emptySystemTempFile)
 import Test.Tasty (TestTree, defaultMain, testGroup)
@@ -22,7 +33,7 @@
 refAction :: IORef [(LogLevel, Text)] -> LogAction
 refAction ref = LogAction (\_ _ lvl msg -> modifyIORef' ref (++ [(lvl, textLogStr msg)]))
 
-runWithRefAction :: (LogAction -> LogAction) -> (LogActionM ()) -> IO [(LogLevel, Text)]
+runWithRefAction :: (LogAction -> LogAction) -> LogActionM () -> IO [(LogLevel, Text)]
 runWithRefAction f m = do
   ref <- newIORef []
   let action = f (refAction ref)
@@ -39,7 +50,8 @@
 expectedUnfiltered =
   [ (LevelDebug, "debug")
   , (LevelInfo, "info")
-  ] ++ expectedFiltered
+  ]
+    ++ expectedFiltered
 
 testUnfiltered :: TestTree
 testUnfiltered = testCase "Unfiltered" $ do
@@ -63,8 +75,11 @@
     length (lines secondContents) @?= 8
 
 main :: IO ()
-main = defaultMain $ testGroup "LittleLogger" $
-  [ testUnfiltered
-  , testFiltered
-  , testFile
-  ]
+main =
+  defaultMain $
+    testGroup
+      "LittleLogger"
+      [ testUnfiltered
+      , testFiltered
+      , testFile
+      ]
