diff --git a/reactive-banana-wx.cabal b/reactive-banana-wx.cabal
--- a/reactive-banana-wx.cabal
+++ b/reactive-banana-wx.cabal
@@ -1,5 +1,5 @@
 Name:                reactive-banana-wx
-Version:             0.6.0.0
+Version:             0.6.0.1
 Synopsis:            Examples for the reactive-banana library, using wxHaskell.
 Description:
     This library provides some GUI examples for the @reactive-banana@ library,
@@ -43,8 +43,8 @@
     build-depends:   base >= 4.2 && < 5,
                      cabal-macosx >= 0.1 && < 0.3,
                      reactive-banana >= 0.6.0.0 && < 0.7,
-                     wxcore (>= 0.13.2.3 && < 0.90) || (>= 0.90.0.1 && < 0.91),
-                     wx (>= 0.13.2.3 && < 0.90) || (>= 0.90.0.1 && < 0.91)
+                     wxcore (>= 0.13.2.1 && < 0.90) || (>= 0.90.0.1 && < 0.91),
+                     wx (>= 0.13.2.1 && < 0.90) || (>= 0.90.0.1 && < 0.91)
     extensions:      ExistentialQuantification
     exposed-modules: Reactive.Banana.WX
 
@@ -54,16 +54,33 @@
     subdir:          reactive-banana-wx
 
 Executable Animation
-    if !flag(buildExamples)
-        buildable: False
-    else
+    if flag(buildExamples)
+        build-depends:
+            process >= 1.0 && < 1.2,
+            random == 1.0.*,
+            executable-path == 0.0.*,
+            filepath >= 1.1 && <= 1.4,
+            reactive-banana,
+            wx,
+            wxcore,
+            base
         cpp-options: -DbuildExamples
+        
+    else
+        buildable: False
     hs-source-dirs:  src
     other-modules:   Paths_reactive_banana_wx, Paths
     main-is:         Animation.hs
 
 Executable Arithmetic
-    if !flag(buildExamples)
+    if flag(buildExamples)
+        build-depends:
+            process >= 1.0 && < 1.2,
+            reactive-banana,
+            wx,
+            wxcore,
+            base
+    else
         buildable: False
     hs-source-dirs:  src
     main-is:         Arithmetic.hs
@@ -73,7 +90,11 @@
         build-depends:
             random == 1.0.*,
             executable-path == 0.0.*,
-            filepath >= 1.1 && <= 1.4
+            filepath >= 1.1 && <= 1.4,
+            reactive-banana,
+            wx,
+            wxcore,
+            base
         cpp-options: -DbuildExamples
     else
         buildable: False
@@ -82,14 +103,25 @@
     main-is:         Asteroids.hs
 
 Executable Counter
-    if !flag(buildExamples)
+    if flag(buildExamples)
+        build-depends:
+            reactive-banana,
+            wx,
+            wxcore,
+            base
+    else
         buildable: False
     hs-source-dirs:  src
     main-is:         Counter.hs
 
 Executable CurrencyConverter
     if flag(buildExamples)
-        build-depends: process >= 1.0.1 && < 1.2
+        build-depends:
+            process >= 1.0.1 && < 1.2,
+            reactive-banana,
+            wx,
+            wxcore,
+            base
     else
         buildable: False
     hs-source-dirs:  src
@@ -97,15 +129,26 @@
 
 Executable CRUD
     if flag(buildExamples)
-        build-depends: containers >= 0.3 && < 0.6
+        build-depends:
+            containers >= 0.3 && < 0.6,
+            reactive-banana,
+            wx,
+            wxcore,
+            base
     else
         buildable: False
     hs-source-dirs:  src
     main-is:         CRUD.hs
+    other-modules:   Tidings
 
 Executable NetMonitor
     if flag(buildExamples)
-        build-depends: process >= 1.0 && < 1.2
+        build-depends:
+            process >= 1.0 && < 1.2,
+            reactive-banana,
+            wx,
+            wxcore,
+            base
     else
         buildable: False
     hs-source-dirs:  src
@@ -113,20 +156,37 @@
 
 Executable TicTacToe
     if flag(buildExamples)
-        build-depends: array >= 0.3 && < 0.5
+        build-depends:
+            array >= 0.3 && < 0.5,
+            reactive-banana,
+            wx,
+            wxcore,
+            base
     else
         buildable: False
     hs-source-dirs:  src
     main-is:         TicTacToe.hs
 
 Executable TwoCounters
-    if !flag(buildExamples)
+    if flag(buildExamples)
+        build-depends:
+            reactive-banana,
+            wx,
+            wxcore,
+            base
+    else
         buildable: False
     hs-source-dirs:  src
     main-is:         TwoCounters.hs
 
 Executable Wave
-    if !flag(buildExamples)
+    if flag(buildExamples)
+        build-depends:
+            reactive-banana,
+            wx,
+            wxcore,
+            base
+    else
         buildable: False
     hs-source-dirs:  src
     main-is:         Wave.hs
diff --git a/src/Tidings.hs b/src/Tidings.hs
new file mode 100644
--- /dev/null
+++ b/src/Tidings.hs
@@ -0,0 +1,40 @@
+{-----------------------------------------------------------------------------
+    reactive-banana
+------------------------------------------------------------------------------}
+module Tidings (
+    -- * Synopsis
+    -- The 'Tidings' data type for composing user events.
+    --
+    -- See <http://apfelmus.nfshost.com/blog/2012/03/29-frp-three-principles-bidirectional-gui.html>
+    -- for more information.
+    
+    -- * Documentation
+    Tidings, tidings, facts, rumors,
+    ) where
+
+import Reactive.Banana.Combinators
+
+-- | Data type representing a behavior 'facts'
+-- and suggestions to change it 'rumors'.
+data Tidings t a = T { facts :: Behavior t a, rumors :: Event t a }
+
+-- | Smart constructor. Combine facts and rumors into 'Tidings'.
+tidings :: Behavior t a -> Event t a -> Tidings t a
+tidings b e = T b (calm e)
+
+instance Functor (Tidings t) where
+    fmap f (T b e) = T (fmap f b) (fmap f e)
+
+-- | The applicative instance combines 'rumors'
+-- and uses 'facts' when some of the 'rumors' are not available.
+instance Applicative (Tidings t) where
+    pure x  = T (pure x) never
+    f <*> x = uncurry ($) <$> pair f x
+
+pair :: Tidings t a -> Tidings t b -> Tidings t (a,b)
+pair (T bx ex) (T by ey) = T b e
+    where
+    b = (,) <$> bx <*> by
+    x = flip (,) <$> by <@> ex
+    y = (,) <$> bx <@> ey
+    e = unionWith (\(x,_) (_,y) -> (x,y)) x y
