diff --git a/CHANGES.md b/CHANGES.md
new file mode 100644
--- /dev/null
+++ b/CHANGES.md
@@ -0,0 +1,17 @@
+Change log
+==========
+
+#### dev
+* ...
+
+#### 0.1.0.2
+* Updated the REAMDE
+* Added/relaxed dependency version contraints where applicable
+* Fixed all warnings
+* Added `CHANGES.md`
+
+#### 0.1.0.1
+* Fixes `cabal configure` error in cabal file
+
+#### 0.1.0.0
+* Initial upload to Hackage
diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -23,14 +23,23 @@
 
 ### Quick start
 
-To quickly show some features of `htoml` we use `GHCi`, from the
-root of the repository run:
+Installing `htoml` is easy.
 
-    cabal repl
+    cabal install htoml
 
-It picks up configuration from the `.ghci` file, so we can immediately
-start exploring:
+In order to make your project depend on it you can add it as a
+dependency in your project's cabal file.
 
+To quickly show some features of `htoml` we start `GHCi` from the
+root of the repository so it picks up configuration from the
+`.ghci` file that lives there.
+
+    git clone https://github.com/cies/htoml.git
+    cd htoml
+    cabal repl  ;# this starts GHCi
+
+We can immediately start exploring from the `GHCi` prompt.
+
     > txt <- readFile "benchmarks/example.toml"
     > let r = parseTomlDoc "" txt
     > r
@@ -46,9 +55,20 @@
     unexpected '='
     expecting "#", "[" or end of input
 
-First notice that some outputs are truncated.
+Notice that some outputs are truncated, indicated by `[...]`.
 
 
+### Version contraints of `htoml`'s dependencies
+
+If you encounter any problems because `htoml`'s dependecies are
+constrained either too much or too little, please
+[file a issue](https://github.com/cies/htoml/issues) for that.
+
+I will try to have `htoml` included in [Stackage](http://stackage.org)
+as soon as it is reviewed by the community. Stackage provides a very
+attractive solution to most (dependency) version conflicts.
+
+
 ### Tests and benchmarks
 
 The test suite is build by default, `cabal configure --disable-tests` disables them.
@@ -80,9 +100,9 @@
 * Provides a JSON interface (suggested by Greg Weber)
 * Useful error messages (thanks to using Parsec over Attoparsec)
 * Understands arrays as described in [this issue](https://github.com/toml-lang/toml/issues/254)
-* Provides a benchmark suite
 * Fails on mix-type arrays (as per spec)
-* Haddock documentation
+* Provides a benchmark suite
+* Tries to be well documented (please raise an issue if you find documentation lacking)
 
 
 ### Todo
@@ -103,6 +123,15 @@
 Spiros Eliopoulos.
 
 
-### License
+### Copyright and licensing
 
-BSD3 as found in the `LICENSE` file.
+This package includes BurntSushi's language agnostic
+[TOML tests](https://github.com/BurntSushi/toml-test), which are WTFPL
+licensed.
+
+The TOML examples that are used as part of the benchmarks are copied
+from Tom Preston-Werner's TOML spec which is MIT licensed.
+
+For all other files in this project the copyrights are specified in the
+`htoml.cabal` file, and are distributed under the BSD3 license as found
+in the `LICENSE` file.
diff --git a/htoml.cabal b/htoml.cabal
--- a/htoml.cabal
+++ b/htoml.cabal
@@ -1,22 +1,24 @@
 name:                     htoml
-version:                  0.1.0.1
-synopsis:                 A parser for TOML files.
-description:              TOML is a obvious and minimal format for config files.
+version:                  0.1.0.2
+synopsis:                 Parser for TOML files
+description:              TOML is an obvious and minimal format for config files.
                           .
                           This package provides a TOML parser,
-                          build with the Parsec library of parser combinators.
-                          .
-                          It provides a JSON interface using the Aeson library.
+                          build with the Parsec library, and providing a JSON
+                          interface using the Aeson library.
 homepage:                 https://github.com/cies/htoml
 bug-reports:              https://github.com/cies/htoml/issues
 license:                  BSD3
 license-file:             LICENSE
+copyright:                (c) 2013-2014 Cies Breijs
 author:                   Cies Breijs
-maintainer:               Cies Breijs
-category:                 Text
+maintainer:               Cies Breijs <cies % kde ! nl>
+category:                 Data, Text, Parser, Configuration, JSON, Language
+stability:                provisional
 build-type:               Simple
 cabal-version:            >= 1.10
 extra-source-files:       README.md
+                        , CHANGES.md
                         , test/BurntSushi/fetch-toml-tests.sh
                         , test/BurntSushi/valid/*.toml
                         , test/BurntSushi/valid/*.json
@@ -36,15 +38,15 @@
   ghc-options:            -Wall
   hs-source-dirs:         src
   default-language:       Haskell2010
-  build-depends:          base             >= 4.6  && < 5
-                        , parsec         >= 3.1.5
-                        , containers     >= 0.5  && < 0.6
-                        , unordered-containers
-                        , vector
-                        , aeson
-                        , text
-                        , time           -any
-                        , old-locale     -any
+  build-depends:          base                   >= 4.3    && < 5
+                        , parsec                 >= 3.1.2  && < 4
+                        , containers             >= 0.5
+                        , unordered-containers   >= 0.2
+                        , vector                 >= 0.10
+                        , aeson                  >= 0.8
+                        , text                   >= 1.0    && < 2
+                        , time                   -any
+                        , old-locale             -any
 
 executable tests
   hs-source-dirs:         test
@@ -53,21 +55,21 @@
   other-modules:          BurntSushi
                         , Text.Toml.Parser.Spec
   default-language:       Haskell2010
-  build-depends:          base             >= 4.6  && < 5
-                        , parsec         >= 3.1.5
-                        , containers     >= 0.5  && < 0.6
-                        , bytestring
-                        , file-embed
+  build-depends:          base
+                        , parsec
+                        , containers
                         , unordered-containers
                         , vector
                         , aeson
                         , text
-                        , time           -any
-                        , Cabal          >= 1.16.0
+                        , time
+                        , bytestring             >= 0.9
+                        , file-embed             >= 0.0.5
+                        , Cabal                  >= 1.16.0
+                        , tasty                  >= 0.10
+                        , tasty-hspec            >= 0.2
+                        , tasty-hunit            >= 0.9
                         , htoml
-                        , tasty
-                        , tasty-hspec
-                        , tasty-hunit
 
 test-suite Tests
   hs-source-dirs:         test
@@ -77,16 +79,16 @@
                         , Text.Toml.Parser.Spec
   type:                   exitcode-stdio-1.0
   default-language:        Haskell2010
-  build-depends:          base             >= 4.6  && < 5
-                        , parsec         >= 3.1.5
-                        , containers     >= 0.5  && < 0.6
+  build-depends:          base
+                        , parsec
+                        , containers
                         , bytestring
                         , file-embed
                         , unordered-containers
                         , vector
                         , text
-                        , time           -any
-                        , Cabal          >= 1.16.0
+                        , time
+                        , Cabal
                         , htoml
                         , tasty
                         , tasty-hspec
@@ -98,14 +100,14 @@
   main-is:                Benchmarks.hs
   type:                   exitcode-stdio-1.0
   default-language:       Haskell2010
-  build-depends:          base             >= 4.6  && < 5
-                        , parsec         >= 3.1.5
-                        , containers     >= 0.5  && < 0.6
+  build-depends:          base
+                        , parsec
+                        , containers
                         , unordered-containers
                         , vector
                         , aeson
                         , text
-                        , time           -any
-                        , Cabal          >= 1.16.0
+                        , time
+                        , Cabal
                         , htoml
                         , criterion
diff --git a/src/Text/Toml/Parser.hs b/src/Text/Toml/Parser.hs
--- a/src/Text/Toml/Parser.hs
+++ b/src/Text/Toml/Parser.hs
@@ -12,7 +12,7 @@
 import qualified Data.HashMap.Strict as M
 import qualified Data.List           as L
 import qualified Data.Set            as S
-import           Data.Text           (Text, concat, pack, unpack)
+import           Data.Text           (Text, pack, unpack)
 import           Data.Time.Format    (parseTime)
 import           Numeric             (readHex)
 import           System.Locale       (defaultTimeLocale, iso8601DateFormat)
@@ -183,7 +183,7 @@
 float :: Parser TValue
 float = VFloat <$> do
     n <- intStr
-    char '.'
+    _ <- char '.'
     d <- uintStr
     e <- try (satisfy (\c -> c == 'e' || c == 'E') *> intStr) <|> return "0"
     return . read . L.concat $ [n, ".", d, "e", e]
diff --git a/src/Text/Toml/Types.hs b/src/Text/Toml/Types.hs
--- a/src/Text/Toml/Types.hs
+++ b/src/Text/Toml/Types.hs
@@ -61,10 +61,10 @@
           Left ds -> Left $ T.concat [ "Cannot redefine key(s) (", (T.intercalate ", " ds)
                                      , "), from table named '", name, "'." ]
           Right r -> Right $ M.insert name (NTable r) ttbl
-        (NTArray _) -> commonInsertError node [name]
+        _         -> commonInsertError node [name]
       Just (NTArray a)  -> case node of
-        (NTable _) -> commonInsertError node [name]
         (NTArray na) -> Right $ M.insert name (NTArray $ a ++ na) ttbl
+        _         -> commonInsertError node [name]
       Just _            -> commonInsertError node [name]
 insert (fullName@(name:ns), node) ttbl =
     -- In case 'name' is not final, but a sub-name
@@ -93,11 +93,13 @@
 
 -- | Convenience function to construct a common error message for the 'insert' function.
 commonInsertError :: Node -> [Text] -> Either Text Table
-commonInsertError what name =
-  let w = case what of (NTable _) -> "tables"
-                       _          -> "array of tables"
-      n = T.intercalate "." name
-  in  Left $ T.concat ["Cannot insert ", w, " '", n, "' as key already exists."]
+commonInsertError what name = Left . T.concat $ case what of
+    NTValue _ -> ["Cannot insert a value '", n, "'."]
+    _         -> ["Cannot insert ", w, " '", n, "' as key already exists."]
+  where
+    n = T.intercalate "." name
+    w = case what of (NTable _) -> "tables"
+                     _          -> "array of tables"
 
 
 
