diff --git a/CHANGELOG.md b/CHANGELOG.md
new file mode 100644
--- /dev/null
+++ b/CHANGELOG.md
@@ -0,0 +1,27 @@
+# 0.3.0.4 - 2015-04-30
+
+- Fix compilation of tests with GHC 7.10
+
+# 0.3.0.3 - 2015-04-02
+
+- Add missing test files to cabal distribution
+
+# 0.3.0.2 - 2015-04-01
+
+- Include test files in tarball generated by cabal
+- Increase upper bound on QuickCheck
+- GHC 7.10 compatibility
+
+# 0.3.0.1 - 2015-04-01
+
+# 0.3.0.0 - 2015-02-11
+
+# 0.2.0.1 - 2013-06-27
+
+# 0.2.0.0 - 2012-09-22
+
+# 0.1.1.0 - 2012-09-20
+
+# 0.1.0.0 - 2012-09-14
+
+- Initial release
diff --git a/aeson-schema.cabal b/aeson-schema.cabal
--- a/aeson-schema.cabal
+++ b/aeson-schema.cabal
@@ -1,7 +1,7 @@
 name:                aeson-schema
-version:             0.3.0.3
+version:             0.3.0.4
 synopsis:            Haskell JSON schema validator and parser generator
--- description:         
+description:         This library provides validation of JSON values against schemata. Given a schema, it can also produce data types corresponding to the schema and a parser.
 homepage:            https://github.com/timjb/aeson-schema
 license:             MIT
 license-file:        LICENSE
@@ -9,7 +9,8 @@
 maintainer:          Tim Baumann <tim@timbaumann.info>
 category:            Data
 build-type:          Simple
-cabal-version:       >=1.8
+cabal-version:       >= 1.8
+extra-source-files:  CHANGELOG.md
 data-files:          test/test-suite/tests/draft3/optional/*.json,
                      test/test-suite/tests/draft3/*.json
                      examples/schema.json
diff --git a/test/Data/Aeson/Schema/Choice/Tests.hs b/test/Data/Aeson/Schema/Choice/Tests.hs
--- a/test/Data/Aeson/Schema/Choice/Tests.hs
+++ b/test/Data/Aeson/Schema/Choice/Tests.hs
@@ -49,9 +49,10 @@
       return $ length (nub xs) == 3
   , testCase "choice3" $ do
       let rnd = round :: Double -> Int
-      (3 :: Int) HU.@=? choice3 length id rnd (Choice1of3 ("abc" :: String))
-      (4 :: Int) HU.@=? choice3 length id rnd (Choice2of3 4)
-      (5 :: Int) HU.@=? choice3 length id rnd (Choice3of3 (4.6 :: Double))
+          len = length :: [a] -> Int
+      (3 :: Int) HU.@=? choice3 len id rnd (Choice1of3 ("abc" :: String))
+      (4 :: Int) HU.@=? choice3 len id rnd (Choice2of3 4)
+      (5 :: Int) HU.@=? choice3 len id rnd (Choice3of3 (4.6 :: Double))
   , testCase "mapChoice3" $ do
       let plus1 = (+1) :: Int -> Int
       Choice1of3 "LOREM" HU.@=? mapChoice3 (map toUpper) plus1 not (Choice1of3 "lorem")
