diff --git a/ChangeLog.md b/ChangeLog.md
new file mode 100644
--- /dev/null
+++ b/ChangeLog.md
@@ -0,0 +1,31 @@
+# Revision history for rhine
+
+The version numbering follows the package `dunai`.
+Since `rhine` reexports modules from `dunai`,
+every major version in `dunai` triggers a major version in `rhine`.
+
+## 0.4.0.0 -- 2017.12.04
+
+* Documentation typos fixed
+* Added `ChangeLog.md`
+
+## 0.3.0.0
+
+* Version bump
+* Documentation typos fixed (Thanks to Gabor Greif)
+
+## 0.2.0.0
+
+* Travis CI support
+* Removed several utilities that are now in `dunai`
+* Extended averaging functions
+
+## 0.1.1.0
+
+* Added `FRP.Rhine.Clock.Realtime.Stdin` (console keyboard event clock)
+* Added `FRP.Rhine.Clock.Select` (event selection clock)
+* Added `FRP.Rhine.SyncSF.Except` (synchronous exception handling)
+
+## 0.1.0.0
+
+* Initial version
diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -1,4 +1,4 @@
-* README
+# README
 --------
 
 This is the main library.
diff --git a/rhine.cabal b/rhine.cabal
--- a/rhine.cabal
+++ b/rhine.cabal
@@ -1,6 +1,6 @@
 name:                rhine
 
-version:             0.3.0.0
+version:             0.4.0.0
 
 synopsis: Functional Reactive Programming with type-level clocks
 
@@ -33,6 +33,8 @@
 
 build-type:          Simple
 
+extra-source-files:  ChangeLog.md
+
 extra-doc-files:     README.md
 
 cabal-version:       >=1.18
@@ -44,7 +46,7 @@
 source-repository this
   type:     git
   location: git@github.com:turion/rhine.git
-  tag:      v0.3.0.0
+  tag:      v0.4.0.0
 
 
 library
@@ -84,7 +86,7 @@
 
   -- Other library packages from which modules are imported.
   build-depends:       base         >= 4.7   && < 5
-                    ,  dunai        == 0.3.0.*
+                    ,  dunai        == 0.4.0.*
                     ,  transformers >= 0.4   && < 0.6
                     ,  time         >= 1.6   && < 1.7
                     ,  free         >= 4.12  && < 4.13
diff --git a/src/FRP/Rhine/SyncSF.hs b/src/FRP/Rhine/SyncSF.hs
--- a/src/FRP/Rhine/SyncSF.hs
+++ b/src/FRP/Rhine/SyncSF.hs
@@ -47,7 +47,7 @@
 
 -- | A (side-effectful) behaviour function is a time-aware synchronous stream
 --   function that doesn't depend on a particular clock.
---   @td denotes the 'TimeDomain'.
+--   @td@ denotes the 'TimeDomain'.
 type BehaviourF m td a b = forall cl. td ~ TimeDomainOf cl => SyncSF m cl a b
 
 -- | Compatibility to U.S. american spelling.
