diff --git a/doctest/DocTest.hs b/doctest/DocTest.hs
new file mode 100644
--- /dev/null
+++ b/doctest/DocTest.hs
@@ -0,0 +1,26 @@
+{-# LANGUAGE CPP #-}
+#if !MIN_VERSION_base(4,8,0)
+import Data.Functor ((<$>))
+#endif
+import Test.DocTest
+
+import Control.Monad
+
+import System.Directory
+import System.FilePath
+
+main :: IO ()
+main = do
+    fs <- listFilesRecur "src"
+    doctest $ "-isrc" : fs
+
+listFilesRecur :: FilePath -> IO [FilePath]
+listFilesRecur dir = do
+    entries <-
+        (map (dir </>) .
+         filter (\f -> f /= "." && f /= ".." && takeExtension f /= ".swp")) <$>
+        getDirectoryContents dir
+    dirs <- filterM doesDirectoryExist entries
+    files <- filterM doesFileExist entries
+    rests <- mapM listFilesRecur dirs
+    return $ concat $ files : rests
diff --git a/genvalidity-property.cabal b/genvalidity-property.cabal
--- a/genvalidity-property.cabal
+++ b/genvalidity-property.cabal
@@ -1,63 +1,75 @@
-name: genvalidity-property
-version: 0.1.0.0
-cabal-version: >=1.10
-build-type: Simple
-license: MIT
-license-file: LICENSE
-copyright: Copyright: (c) 2016 Tom Sydney Kerckhove
-maintainer: syd.kerckhove@gmail.com
-homepage: https://github.com/NorfairKing/validity#readme
-synopsis: Standard properties for functions on `Validity` types
-description:
-    Standard properties for functions on `Validity` types
-category: Testing
-author: Tom Sydney Kerckhove
+-- This file has been generated from package.yaml by hpack version 0.20.0.
+--
+-- see: https://github.com/sol/hpack
+--
+-- hash: 88ebdd6aba74a11de1e4d1cdf78781911c52e8e435ccf2d5810e9fa541c8947b
 
+name:           genvalidity-property
+version:        0.2.0.0
+synopsis:       Standard properties for functions on `Validity` types
+description:    Standard properties for functions on `Validity` types
+category:       Testing
+homepage:       https://github.com/NorfairKing/validity#readme
+bug-reports:    https://github.com/NorfairKing/validity/issues
+author:         Tom Sydney Kerckhove
+maintainer:     syd.kerckhove@gmail.com
+copyright:      Copyright: (c) 2016-2018 Tom Sydney Kerckhove
+license:        MIT
+license-file:   LICENSE
+build-type:     Simple
+cabal-version:  >= 1.10
+
 source-repository head
-    type: git
-    location: https://github.com/NorfairKing/validity
+  type: git
+  location: https://github.com/NorfairKing/validity
 
 library
-    exposed-modules:
-        Test.Validity.Functions
-        Test.Validity.Functions.CanFail
-        Test.Validity.Functions.Equivalence
-        Test.Validity.Functions.Idempotence
-        Test.Validity.Functions.Inverse
-        Test.Validity.Functions.Validity
-        Test.Validity.GenValidity.Property
-        Test.Validity.Operations
-        Test.Validity.Operations.Associativity
-        Test.Validity.Operations.Commutativity
-        Test.Validity.Operations.Identity
-        Test.Validity.Property
-        Test.Validity.Property.Utils
-        Test.Validity.Relations
-        Test.Validity.Relations.Antireflexivity
-        Test.Validity.Relations.Antisymmetry
-        Test.Validity.Relations.Reflexivity
-        Test.Validity.Relations.Symmetry
-        Test.Validity.Relations.Transitivity
-        Test.Validity.Shrinking.Property
-        Test.Validity.Types
-    build-depends:
-        base >=4.7 && <5,
-        validity >=0.4 && <0.5,
-        genvalidity >=0.4 && <0.5,
-        QuickCheck -any,
-        hspec >=2.1 && <2.5
-    default-language: Haskell2010
-    hs-source-dirs: src
+  hs-source-dirs:
+      src
+  build-depends:
+      QuickCheck
+    , base >=4.7 && <5
+    , genvalidity >=0.5 && <0.6
+    , hspec >=2.1
+    , validity >=0.5 && <0.6
+  exposed-modules:
+      Test.Validity.Functions
+      Test.Validity.Functions.CanFail
+      Test.Validity.Functions.Equivalence
+      Test.Validity.Functions.Idempotence
+      Test.Validity.Functions.Inverse
+      Test.Validity.Functions.Validity
+      Test.Validity.GenValidity.Property
+      Test.Validity.Operations
+      Test.Validity.Operations.Associativity
+      Test.Validity.Operations.Commutativity
+      Test.Validity.Operations.Identity
+      Test.Validity.Property
+      Test.Validity.Property.Utils
+      Test.Validity.Relations
+      Test.Validity.Relations.Antireflexivity
+      Test.Validity.Relations.Antisymmetry
+      Test.Validity.Relations.Reflexivity
+      Test.Validity.Relations.Symmetry
+      Test.Validity.Relations.Transitivity
+      Test.Validity.Shrinking.Property
+      Test.Validity.Types
+  other-modules:
+      Paths_genvalidity_property
+  default-language: Haskell2010
 
 test-suite genvalidity-property-doctests
-    type: exitcode-stdio-1.0
-    main-is: DocTest.hs
-    build-depends:
-        base -any,
-        doctest >=0.9 && <0.12,
-        genvalidity-property -any,
-        directory >=1.2 && <1.4,
-        filepath >=1.3 && <1.5
-    default-language: Haskell2010
-    hs-source-dirs: test
-    ghc-options: -threaded
+  type: exitcode-stdio-1.0
+  main-is: DocTest.hs
+  hs-source-dirs:
+      doctest
+  ghc-options: -threaded
+  build-depends:
+      base
+    , directory >=1.2 && <1.4
+    , doctest
+    , filepath >=1.3 && <1.5
+    , genvalidity-property
+  other-modules:
+      Paths_genvalidity_property
+  default-language: Haskell2010
diff --git a/src/Test/Validity/Functions/Equivalence.hs b/src/Test/Validity/Functions/Equivalence.hs
--- a/src/Test/Validity/Functions/Equivalence.hs
+++ b/src/Test/Validity/Functions/Equivalence.hs
@@ -87,7 +87,8 @@
     -> Gen (a, b)
     -> ((a, b) -> [(a, b)])
     -> Property
-equivalentOnGens2 f g gen s = forAllShrink gen s $ \(a, b) -> f a b `shouldBe` g a b
+equivalentOnGens2 f g gen s =
+    forAllShrink gen s $ \(a, b) -> f a b `shouldBe` g a b
 
 equivalentOnValids2 ::
        (Show a, GenValid a, Show b, GenValid b, Show c, Eq c)
diff --git a/src/Test/Validity/Functions/Idempotence.hs b/src/Test/Validity/Functions/Idempotence.hs
--- a/src/Test/Validity/Functions/Idempotence.hs
+++ b/src/Test/Validity/Functions/Idempotence.hs
@@ -14,19 +14,13 @@
 import Test.Hspec
 import Test.QuickCheck
 
-idempotentOnGen
-    :: (Show a, Eq a)
-    => (a -> a) -> Gen a -> (a -> [a]) -> Property
+idempotentOnGen :: (Show a, Eq a) => (a -> a) -> Gen a -> (a -> [a]) -> Property
 idempotentOnGen f gen s = forAllShrink gen s $ \a -> f (f a) `shouldBe` f a
 
-idempotentOnValid
-    :: (Show a, Eq a, GenValid a)
-    => (a -> a) -> Property
+idempotentOnValid :: (Show a, Eq a, GenValid a) => (a -> a) -> Property
 idempotentOnValid func = idempotentOnGen func genValid shrinkValid
 
-idempotent
-    :: (Show a, Eq a, GenUnchecked a)
-    => (a -> a) -> Property
+idempotent :: (Show a, Eq a, GenUnchecked a) => (a -> a) -> Property
 idempotent func = idempotentOnGen func genUnchecked shrinkUnchecked
 
 -- |
@@ -38,7 +32,5 @@
 -- 'const', given any input, is idempotent for any type as well:
 --
 -- prop> \int -> idempotentOnArbitrary (const int :: Int -> Int)
-idempotentOnArbitrary
-    :: (Show a, Eq a, Arbitrary a)
-    => (a -> a) -> Property
+idempotentOnArbitrary :: (Show a, Eq a, Arbitrary a) => (a -> a) -> Property
 idempotentOnArbitrary func = idempotentOnGen func arbitrary shrink
diff --git a/src/Test/Validity/Property.hs b/src/Test/Validity/Property.hs
--- a/src/Test/Validity/Property.hs
+++ b/src/Test/Validity/Property.hs
@@ -191,6 +191,6 @@
 import Test.Validity.Functions
 import Test.Validity.GenValidity.Property
 import Test.Validity.Operations
+import Test.Validity.Property.Utils
 import Test.Validity.Relations
 import Test.Validity.Types
-import Test.Validity.Property.Utils
diff --git a/src/Test/Validity/Relations/Transitivity.hs b/src/Test/Validity/Relations/Transitivity.hs
--- a/src/Test/Validity/Relations/Transitivity.hs
+++ b/src/Test/Validity/Relations/Transitivity.hs
@@ -33,8 +33,7 @@
 transitivityOnGens ::
        Show a => (a -> a -> Bool) -> Gen (a, a, a) -> (a -> [a]) -> Property
 transitivityOnGens func gen s =
-    forAllShrink gen (shrinkT3 s) $ \(a, b, c) ->
-        transitiveOnElems func a b c
+    forAllShrink gen (shrinkT3 s) $ \(a, b, c) -> transitiveOnElems func a b c
 
 -- |
 --
diff --git a/test/DocTest.hs b/test/DocTest.hs
deleted file mode 100644
--- a/test/DocTest.hs
+++ /dev/null
@@ -1,27 +0,0 @@
-{-# LANGUAGE CPP #-}
-#if !MIN_VERSION_base(4,8,0)
-import Data.Functor ((<$>))
-#endif
-
-import Test.DocTest
-
-import Control.Monad
-
-import System.Directory
-import System.FilePath
-
-main :: IO ()
-main = do
-    fs <- listFilesRecur "src"
-    doctest $ "-isrc" : fs
-
-listFilesRecur :: FilePath -> IO [FilePath]
-listFilesRecur dir = do
-    entries <-
-            (map (dir </>) .
-             filter (\f -> f /= "." && f /= ".." && takeExtension f /= ".swp")) <$>
-        getDirectoryContents dir
-    dirs <- filterM doesDirectoryExist entries
-    files <- filterM doesFileExist entries
-    rests <- mapM listFilesRecur dirs
-    return $ concat $ files : rests
