diff --git a/conduit-parse.cabal b/conduit-parse.cabal
--- a/conduit-parse.cabal
+++ b/conduit-parse.cabal
@@ -1,5 +1,5 @@
 name:                conduit-parse
-version:             0.1.2.1
+version:             0.1.2.2
 synopsis:            Parsing framework based on conduit.
 description:         Please refer to README.
 homepage:            https://github.com/k0ral/conduit-parse
@@ -16,6 +16,11 @@
   type:     git
   location: git://github.com/k0ral/conduit-parse.git
 
+flag enable-hlint-test
+  description: Enable hlint test-suite
+  manual: True
+  default: False
+
 library
   exposed-modules:
     Data.Conduit.Parser
@@ -44,7 +49,6 @@
     , conduit
     , conduit-parse
     , safe-exceptions
-    , hlint
     , mtl
     , parsers
     , resourcet
@@ -53,3 +57,16 @@
     -- , tasty-quickcheck
   default-language: Haskell2010
   ghc-options: -Wall -fno-warn-unused-do-bind
+
+test-suite hlint
+  if flag(enable-hlint-test)
+    buildable: True
+  else
+    buildable: False
+  type: exitcode-stdio-1.0
+  main-is: HLint.hs
+  build-depends:
+    base >=4.8,
+    hlint -any
+  default-language: Haskell2010
+  hs-source-dirs: test
diff --git a/test/HLint.hs b/test/HLint.hs
new file mode 100644
--- /dev/null
+++ b/test/HLint.hs
@@ -0,0 +1,8 @@
+import qualified Language.Haskell.HLint as HLint (hlint)
+import           System.Exit
+
+
+main :: IO ()
+main = do
+  result <- HLint.hlint [ "test/", "Data/" ]
+  if null result then exitSuccess else exitFailure
diff --git a/test/Main.hs b/test/Main.hs
--- a/test/Main.hs
+++ b/test/Main.hs
@@ -4,15 +4,9 @@
 import           Control.Exception.Safe       as Exception
 import           Control.Monad.Error.Class
 import           Control.Monad.Trans.Resource
-
 import           Data.Conduit                 hiding (await, leftover)
-import           Data.Conduit.List            hiding (drop, peek)
+import           Data.Conduit.List            hiding (peek)
 import           Data.Conduit.Parser
-
-import qualified Language.Haskell.HLint       as HLint (hlint)
-
-import           Prelude                      hiding (drop)
-
 import           Test.Tasty
 import           Test.Tasty.HUnit
 -- import           Test.Tasty.QuickCheck
@@ -23,7 +17,6 @@
 main = defaultMain $ testGroup "Tests"
   [ unitTests
   -- , properties
-  , hlint
   ]
 
 unitTests :: TestTree
@@ -39,11 +32,6 @@
   , parseConduitErrorCase
   -- , parseOrSkipCase
   ]
-
-hlint :: TestTree
-hlint = testCase "HLint check" $ do
-  result <- HLint.hlint [ "test/", "Data/" ]
-  null result @?= True
 
 awaitCase :: TestTree
 awaitCase = testCase "await" $ do
