diff --git a/Data/DString.hs b/Data/DString.hs
--- a/Data/DString.hs
+++ b/Data/DString.hs
@@ -1,4 +1,5 @@
-{-# LANGUAGE UnicodeSyntax
+{-# LANGUAGE CPP
+           , UnicodeSyntax
            , NoImplicitPrelude
            , GeneralizedNewtypeDeriving
            , DeriveDataTypeable
@@ -7,7 +8,7 @@
 -----------------------------------------------------------------------------
 -- |
 -- Module      :  Data.DString
--- Copyright   :  (c) 2009-2010 Bas van Dijk
+-- Copyright   :  (c) 2009-2011 Bas van Dijk
 -- License     :  BSD-style (see the file LICENSE)
 -- Maintainer  :  Bas van Dijk <v.dijk.bas@gmail.com>
 -- Stability   :  experimental
@@ -49,8 +50,8 @@
 --------------------------------------------------------------------------------
 
 -- from base:
-import Prelude       ( fromInteger, (>=), error )
-import Data.Char     ( Char, String )
+import Prelude       ( (>=), error )
+import Data.Char     ( Char )
 import Data.Function ( ($), const, flip )
 import Data.List     ( map )
 import Data.Maybe    ( Maybe )
@@ -58,6 +59,16 @@
 import Data.Typeable ( Typeable )
 import Data.String   ( IsString, fromString )
 import Text.Show     ( Show, showsPrec, ShowS, showParen, showString, shows )
+
+#if MIN_VERSION_base(4,4,0)
+import Data.String   ( String )
+#else
+import Data.Char     ( String )
+#endif
+
+#if __GLASGOW_HASKELL__ < 700
+import Prelude       ( fromInteger )
+#endif
 
 -- from base-unicode-symbols:
 import Data.Function.Unicode ( (∘) )
diff --git a/LICENSE b/LICENSE
--- a/LICENSE
+++ b/LICENSE
@@ -1,4 +1,4 @@
-Copyright (c) 2009-2010, Bas van Dijk
+Copyright (c) 2009-2011, Bas van Dijk
 All rights reserved.
 
 Redistribution and use in source and binary forms, with or without
diff --git a/README.markdown b/README.markdown
new file mode 100644
--- /dev/null
+++ b/README.markdown
@@ -0,0 +1,8 @@
+Difference strings: a data structure for O(1) append on strings. Note
+that a `DString` is just a newtype wrapper around a [DList] `Char`. The
+reason we need a new type instead of just a type synonym is that we
+can have an `instance IsString DString` without using language
+extensions (`TypeSynonymInstances` or `FlexibleInstances`) so we can
+write overloaded string literals of type `DString`.
+
+[DList]: http://hackage.haskell.org/packages/archive/dlist/latest/doc/html/Data-DList.html#t:DList
diff --git a/dstring.cabal b/dstring.cabal
--- a/dstring.cabal
+++ b/dstring.cabal
@@ -1,5 +1,5 @@
 Name:               dstring
-Version:            0.4
+Version:            0.4.0.1
 Synopsis:           Difference strings
 Description:
   Difference strings: a data structure for O(1) append on strings. Note that a
@@ -12,18 +12,20 @@
 License-file:  	    LICENSE
 Author:        	    Bas van Dijk <v.dijk.bas@gmail.com>
 Maintainer:    	    Bas van Dijk <v.dijk.bas@gmail.com>
-Copyright:     	    2009-2010 Bas van Dijk <v.dijk.bas@gmail.com>
+Copyright:     	    2009-2011 Bas van Dijk <v.dijk.bas@gmail.com>
+Homepage:           https://github.com/basvandijk/dstring/
+Bug-Reports:        https://github.com/basvandijk/dstring/issues
 Cabal-version: 	    >= 1.6
 Build-Type:    	    Simple
 Stability:     	    experimental
-Extra-source-files: LICENSE
+Extra-Source-Files: README.markdown
 
 Source-repository head
-  Type:     darcs
-  Location: http://code.haskell.org/~basvandijk/code/dstring
+  Type:     git
+  Location: git://github.com/basvandijk/dstring.git
 
 Library
-  Build-Depends: base                 >= 4     && < 4.4
+  Build-Depends: base                 >= 4     && < 4.5
                , base-unicode-symbols >= 0.1.1 && < 0.3
                , dlist                >= 0.5   && < 0.6
   Exposed-modules: Data.DString
