diff --git a/source/library/Splint.hs b/source/library/Splint.hs
--- a/source/library/Splint.hs
+++ b/source/library/Splint.hs
@@ -13,7 +13,6 @@
 import qualified Language.Haskell.HLint as HLint
 import qualified Splint.Replacement as Replacement
 import qualified Splint.Settings as Settings
-import qualified System.IO as IO
 
 plugin :: GHC.Plugins.Plugin
 plugin =
@@ -24,29 +23,26 @@
 
 parsedResultAction ::
   [GHC.Plugins.CommandLineOption] ->
-  GHC.Plugins.ModSummary ->
+  modSummary ->
   GHC.Plugins.ParsedResult ->
   GHC.Plugins.Hsc GHC.Plugins.ParsedResult
-parsedResultAction commandLineOptions modSummary parsedResult = do
-  let fp = GHC.Plugins.ms_hspp_file modSummary
-  GHC.Plugins.liftIO . IO.hPutStrLn IO.stderr $ "[splint] Processing " <> fp <> " ..."
+parsedResultAction commandLineOptions _ parsedResult = do
   logger <- GHC.Utils.Logger.getLogger
   dynFlags <- GHC.Plugins.getDynFlags
   let ghcMessageOpts = GHC.Driver.Config.Diagnostic.initPrintConfig dynFlags
       diagOpts = GHC.Driver.Config.Diagnostic.initDiagOpts dynFlags
   GHC.Plugins.liftIO $ do
     settings <- Settings.load commandLineOptions
-    let ideas =
-          uncurry HLint.applyHints settings
-            . pure
-            . HLint.createModuleEx
-            . GHC.Hs.hpm_module
-            $ GHC.Plugins.parsedResultModule parsedResult
-    IO.hPutStrLn IO.stderr $ "[splint] Processed " <> fp <> ": " <> show (length ideas)
     GHC.Driver.Errors.printOrThrowDiagnostics logger ghcMessageOpts diagOpts
       . GHC.Types.Error.mkMessages
       . GHC.Data.Bag.listToBag
-      $ fmap (ideaToWarnMsg diagOpts) ideas
+      . fmap (ideaToWarnMsg diagOpts)
+      . filter ((/=) HLint.Ignore . HLint.ideaSeverity)
+      . uncurry HLint.applyHints settings
+      . pure
+      . HLint.createModuleEx
+      . GHC.Hs.hpm_module
+      $ GHC.Plugins.parsedResultModule parsedResult
   pure parsedResult
 
 ideaToWarnMsg :: GHC.Utils.Error.DiagOpts -> HLint.Idea -> GHC.Driver.Errors.Types.WarnMsg
@@ -63,11 +59,7 @@
             : fmap
               (GHC.Plugins.text . mappend "Note: " . show)
               (HLint.ideaNote idea)
-      diagnosticReason = case HLint.ideaSeverity idea of
-        HLint.Ignore -> GHC.Types.Error.WarningWithoutFlag
-        HLint.Suggestion -> GHC.Types.Error.WarningWithoutFlag
-        HLint.Warning -> GHC.Types.Error.WarningWithoutFlag
-        HLint.Error -> GHC.Types.Error.ErrorWithoutFlag
+      diagnosticReason = GHC.Types.Error.WarningWithoutFlag
       diagnosticMessage =
         GHC.Types.Error.DiagnosticMessage
           { GHC.Types.Error.diagHints = ghcHints,
diff --git a/source/library/Splint/Settings.hs b/source/library/Splint/Settings.hs
--- a/source/library/Splint/Settings.hs
+++ b/source/library/Splint/Settings.hs
@@ -5,7 +5,6 @@
 import qualified Data.Map as Map
 import qualified Language.Haskell.HLint as HLint
 import qualified Splint.RemoteData as RemoteData
-import qualified System.IO as IO
 import qualified System.IO.Unsafe as Unsafe
 
 type Settings = ([HLint.Classify], HLint.Hint)
@@ -49,7 +48,6 @@
     pure remoteData
   case remoteData of
     RemoteData.NotAsked -> do
-      IO.hPutStrLn IO.stderr $ "[splint] Loading settings for " <> show commandLineOptions <> " ..."
       result <-
         withTMVar semaphore
           . const
diff --git a/splint.cabal b/splint.cabal
--- a/splint.cabal
+++ b/splint.cabal
@@ -1,6 +1,6 @@
 cabal-version: 2.2
 name: splint
-version: 2.0.0.2
+version: 2.0.0.3
 synopsis: HLint as a GHC source plugin.
 description:
   Splint makes HLint available as a GHC source plugin. To use it, pass
