diff --git a/bench/Core.hs b/bench/Core.hs
--- a/bench/Core.hs
+++ b/bench/Core.hs
@@ -7,7 +7,7 @@
 {-# LANGUAGE NoMonomorphismRestriction #-}
 {-# LANGUAGE ScopedTypeVariables #-}
 {-# LANGUAGE TypeOperators #-}
-module Main where
+module Main (main) where
 
 import Prelude ((-))
 
diff --git a/changelog.md b/changelog.md
--- a/changelog.md
+++ b/changelog.md
@@ -2,6 +2,12 @@
 
 All notable changes to this project will be documented in this file.
 
+## [0.3.0.1] (April 16, 2017)
+
+* Relax `hlint` version bounds and disable `hlint` tests in non-developer
+  builds.
+  [#31](https://github.com/IxpertaSolutions/freer-effects/issues/31)
+
 ## [0.3.0.0] (March 06, 2017)
 
 * Package renamed to `freer-effects` to distinguish it from original `freer`.
@@ -85,5 +91,6 @@
 
 * Initial release
 
+[0.3.0.1]: https://github.com/IxpertaSolutions/freer/compare/0.3.0.0...0.3.0.1
 [0.3.0.0]: https://github.com/IxpertaSolutions/freer/compare/0.2.4.1...0.3.0.0
 [0.2.4.1]: https://github.com/IxpertaSolutions/freer/compare/0.2.4.0...0.2.4.1
diff --git a/examples/src/Capitalize.hs b/examples/src/Capitalize.hs
--- a/examples/src/Capitalize.hs
+++ b/examples/src/Capitalize.hs
@@ -2,7 +2,12 @@
 {-# LANGUAGE FlexibleContexts #-}
 {-# LANGUAGE GADTs #-}
 {-# LANGUAGE TypeOperators #-}
-module Capitalize where
+module Capitalize
+    ( Capitalize
+    , capitalize
+    , runCapitalizeM
+    )
+  where
 
 import Data.Char (toUpper)
 
diff --git a/examples/src/Common.hs b/examples/src/Common.hs
--- a/examples/src/Common.hs
+++ b/examples/src/Common.hs
@@ -1,4 +1,4 @@
-module Common where
+module Common (add) where
 
 import Control.Applicative
 
diff --git a/examples/src/Console.hs b/examples/src/Console.hs
--- a/examples/src/Console.hs
+++ b/examples/src/Console.hs
@@ -3,7 +3,17 @@
 {-# LANGUAGE TypeOperators #-}
 {-# LANGUAGE DataKinds #-}
 {-# LANGUAGE CPP #-}
-module Console where
+module Console
+    ( Console
+    , exitSuccess'
+    , getLine'
+    , putStrLn'
+    , runConsole
+    , runConsoleM
+    , runConsolePure
+    , runConsolePureM
+    )
+  where
 
 #if !MIN_VERSION_base(4,8,0)
 import Control.Applicative (pure)
diff --git a/examples/src/Coroutine.hs b/examples/src/Coroutine.hs
--- a/examples/src/Coroutine.hs
+++ b/examples/src/Coroutine.hs
@@ -1,4 +1,4 @@
-module Coroutine where
+module Coroutine () where
 
 -- import Control.Monad.Freer.Coroutine
 
diff --git a/examples/src/Cut.hs b/examples/src/Cut.hs
--- a/examples/src/Cut.hs
+++ b/examples/src/Cut.hs
@@ -1,4 +1,4 @@
-module Cut where
+module Cut () where
 
 -- import Control.Monad.Freer.Cut
 
diff --git a/examples/src/Fresh.hs b/examples/src/Fresh.hs
--- a/examples/src/Fresh.hs
+++ b/examples/src/Fresh.hs
@@ -1,4 +1,4 @@
-module Fresh where
+module Fresh () where
 
 import Control.Monad.Freer.Fresh
 import Control.Monad.Freer.Trace
diff --git a/examples/src/Main.hs b/examples/src/Main.hs
--- a/examples/src/Main.hs
+++ b/examples/src/Main.hs
@@ -1,7 +1,7 @@
 {-# LANGUAGE DataKinds #-}
 {-# LANGUAGE FlexibleContexts #-}
 {-# LANGUAGE LambdaCase #-}
-module Main where
+module Main (main) where
 
 import Control.Monad (forever, when)
 import Data.List (intercalate)
diff --git a/examples/src/NonDet.hs b/examples/src/NonDet.hs
--- a/examples/src/NonDet.hs
+++ b/examples/src/NonDet.hs
@@ -1,5 +1,5 @@
 {-# LANGUAGE FlexibleContexts #-}
-module NonDet where
+module NonDet () where
 
 import Control.Applicative
 import Control.Monad
diff --git a/examples/src/Trace.hs b/examples/src/Trace.hs
--- a/examples/src/Trace.hs
+++ b/examples/src/Trace.hs
@@ -1,6 +1,6 @@
 {-# LANGUAGE FlexibleContexts #-}
 {-# LANGUAGE NoMonomorphismRestriction #-}
-module Trace where
+module Trace () where
 
 import Control.Monad.Freer
 import Control.Monad.Freer.Reader
diff --git a/freer-effects.cabal b/freer-effects.cabal
--- a/freer-effects.cabal
+++ b/freer-effects.cabal
@@ -1,5 +1,5 @@
 name:                   freer-effects
-version:                0.3.0.0
+version:                0.3.0.1
 synopsis:               Implementation of effect system for Haskell.
 description:
   Implementation of effect system for Haskell, which is based on the work of
@@ -44,7 +44,7 @@
 source-repository this
   type:                 git
   location:             https://github.com/IxpertaSolutions/freer-effects.git
-  tag:                  0.3.0.0
+  tag:                  0.3.0.1
 
 flag pedantic
   description:          Pass additional warning flags and -Werror to GHC.
@@ -53,7 +53,7 @@
 
 flag test-hlint
   description:          Enable test suite that checks sources using HLint.
-  default:              True
+  default:              False
   manual:               True
 
 library
@@ -156,8 +156,8 @@
   if flag(test-hlint)
     buildable:          True
     build-depends:
-        base >=4.8 && <5.0
-      , hlint ==1.9.*
+        base >=4.7 && <5.0
+      , hlint >=1.9
   else
     buildable:          False
 
diff --git a/src/Data/OpenUnion/Internal.hs b/src/Data/OpenUnion/Internal.hs
--- a/src/Data/OpenUnion/Internal.hs
+++ b/src/Data/OpenUnion/Internal.hs
@@ -44,7 +44,7 @@
 -- Therefore, we can use a @Typeable@-like evidence in that universe. In our
 -- case a simple index of an element in the type-list is sufficient
 -- substitution for @Typeable@.
-module Data.OpenUnion.Internal
+module Data.OpenUnion.Internal (module Data.OpenUnion.Internal)
   where
 
 import Prelude ((+), (-))
diff --git a/tests/Tests.hs b/tests/Tests.hs
--- a/tests/Tests.hs
+++ b/tests/Tests.hs
@@ -1,5 +1,5 @@
 {-# LANGUAGE CPP #-}
-module Main where
+module Main (main) where
 
 #if !MIN_VERSION_base(4,8,0)
 import Control.Applicative
diff --git a/tests/Tests/Common.hs b/tests/Tests/Common.hs
--- a/tests/Tests/Common.hs
+++ b/tests/Tests/Common.hs
@@ -1,4 +1,4 @@
-module Tests.Common where
+module Tests.Common (add) where
 
 import Control.Applicative
 
diff --git a/tests/Tests/Fresh.hs b/tests/Tests/Fresh.hs
--- a/tests/Tests/Fresh.hs
+++ b/tests/Tests/Fresh.hs
@@ -1,4 +1,4 @@
-module Tests.Fresh where
+module Tests.Fresh (module Tests.Fresh) where
 
 import Control.Monad
 import Control.Monad.Freer
diff --git a/tests/Tests/NonDet.hs b/tests/Tests/NonDet.hs
--- a/tests/Tests/NonDet.hs
+++ b/tests/Tests/NonDet.hs
@@ -1,5 +1,5 @@
 {-# LANGUAGE FlexibleContexts #-}
-module Tests.NonDet where
+module Tests.NonDet (module Tests.NonDet) where
 
 import Control.Applicative
 import Control.Monad
