diff --git a/reactive-banana.cabal b/reactive-banana.cabal
--- a/reactive-banana.cabal
+++ b/reactive-banana.cabal
@@ -1,10 +1,10 @@
 Name:                reactive-banana
-Version:             0.7.0.1
+Version:             0.7.1.0
 Synopsis:            Practical library for functional reactive programming (FRP).
 Description:         
     Reactive-banana is a practical library for Functional Reactive Programming (FRP).
     .
-    FRP offers an elegant and concise way to express interactive programs such as graphical user interfaces, animations, computer music or robot controllers. Thus, the reactive-banana library promises to avoid the spagethetti code commonly used in traditional GUI technologies.
+    FRP offers an elegant and concise way to express interactive programs such as graphical user interfaces, animations, computer music or robot controllers. Thus, the reactive-banana library promises to avoid the spaghetti code commonly used in traditional GUI technologies.
     .
     See the project homepage <http://haskell.org/haskellwiki/Reactive-banana>
     for a more detailed introduction and features.
@@ -59,8 +59,7 @@
     extensions:         EmptyDataDecls,
                         BangPatterns
 
-    build-depends:      QuickCheck >= 1.2 && < 2.6,
-                        unordered-containers >= 0.2.1.0 && < 0.3,
+    build-depends:      unordered-containers >= 0.2.1.0 && < 0.3,
                         hashable == 1.1.*
 
 --      CPP-options:    -DUseExtensions
@@ -93,6 +92,7 @@
                         HUnit >= 1.2 && < 2,
                         test-framework == 0.6.*,
                         test-framework-hunit == 0.2.*,
-                        reactive-banana
+                        reactive-banana, vault, containers, transformers,
+                        unordered-containers, hashable
 
 
diff --git a/src/Reactive/Banana/Experimental/Calm.hs b/src/Reactive/Banana/Experimental/Calm.hs
--- a/src/Reactive/Banana/Experimental/Calm.hs
+++ b/src/Reactive/Banana/Experimental/Calm.hs
@@ -21,7 +21,6 @@
     module Control.Applicative,
     never, unionWith, filterE, accumE,
     apply, stepper,
-    -- $classes
     
     -- * Derived Combinators
     -- ** Filtering
diff --git a/src/Reactive/Banana/Frameworks.hs b/src/Reactive/Banana/Frameworks.hs
--- a/src/Reactive/Banana/Frameworks.hs
+++ b/src/Reactive/Banana/Frameworks.hs
@@ -16,7 +16,9 @@
     compile, Frameworks,
     AddHandler, fromAddHandler, fromChanges, fromPoll,
     reactimate, initial, changes,
-    FrameworksMoment(..), execute, liftIONow, liftIOLater,
+    FrameworksMoment(..), execute, liftIOLater, liftIONow,
+    -- $liftIO
+    module Control.Monad.IO.Class,
     
     -- * Running event networks
     EventNetwork, actuate, pause,
@@ -31,6 +33,7 @@
     ) where
 
 import Control.Monad
+import Control.Monad.IO.Class
 import Data.IORef
 
 import Reactive.Banana.Combinators
@@ -225,9 +228,16 @@
     . Prim.mapE (fmap last . sequence . map (unM . unFM) )
     . unE
 
--- | Lift an 'IO' action into the 'Moment' monad.
+-- $liftIO
+-- 
+-- > liftIO :: Frameworks t => IO a -> Moment t a
+--
+-- Lift an 'IO' action into the 'Moment' monad.
+
+{-# DEPRECATED liftIONow  "Use  liftIO  instead." #-}
+-- | Deprecated. Use 'liftIO' instead.
 liftIONow :: Frameworks t => IO a -> Moment t a
-liftIONow = M . Prim.liftIONow
+liftIONow = liftIO
 
 -- | Lift an 'IO' action into the 'Moment' monad,
 -- but defer its execution until compilation time.
@@ -327,6 +337,6 @@
 -- inside a 'reactimate'.
 newEvent :: Frameworks t => Moment t (Event t a, a -> IO ())
 newEvent = do
-    (addHandler, fire) <- liftIONow $ newAddHandler
+    (addHandler, fire) <- liftIO $ newAddHandler
     e <- fromAddHandler addHandler
     return (e,fire)
diff --git a/src/Reactive/Banana/Internal/DependencyGraph.hs b/src/Reactive/Banana/Internal/DependencyGraph.hs
--- a/src/Reactive/Banana/Internal/DependencyGraph.hs
+++ b/src/Reactive/Banana/Internal/DependencyGraph.hs
@@ -17,12 +17,12 @@
 {-----------------------------------------------------------------------------
     Dependency graph data type
 ------------------------------------------------------------------------------}
--- depdendency graph
+-- dependency graph
 data Deps a = Deps
     { dChildren :: Map a [a] -- children depend on their parents
     , dParents  :: Map a [a]
     , dRoots    :: Set a
-    } deriving (Eq,Show)
+    } deriving (Show)
 
 -- convenient queries
 children deps x = maybe [] id . Map.lookup x $ dChildren deps
diff --git a/src/Reactive/Banana/Internal/Phantom.hs b/src/Reactive/Banana/Internal/Phantom.hs
--- a/src/Reactive/Banana/Internal/Phantom.hs
+++ b/src/Reactive/Banana/Internal/Phantom.hs
@@ -10,8 +10,6 @@
     Frameworks, FrameworksD,
     ) where
 
-import Reactive.Banana.Internal.Types2
-
 -- | Class constraint on the type parameter @t@ of the 'Moment' monad.
 -- 
 -- Indicates that we can add input and output to an event network.
diff --git a/src/Reactive/Banana/Internal/PulseLatch0.hs b/src/Reactive/Banana/Internal/PulseLatch0.hs
--- a/src/Reactive/Banana/Internal/PulseLatch0.hs
+++ b/src/Reactive/Banana/Internal/PulseLatch0.hs
@@ -2,7 +2,7 @@
     reactive-banana
 ------------------------------------------------------------------------------}
 {-# LANGUAGE Rank2Types, RecursiveDo, ExistentialQuantification,
-    TypeSynonymInstances #-}
+    TypeSynonymInstances, FlexibleInstances #-}
 module Reactive.Banana.Internal.PulseLatch0 where
 
 import Control.Applicative
@@ -24,14 +24,12 @@
 import Data.Hashable
 import Data.Unique.Really
 import qualified Data.Vault as Vault
-import qualified Data.HashMap.Lazy as Map
 
 import Data.Functor.Identity
 import System.IO.Unsafe
 
 import Debug.Trace
 
-type Map  = Map.HashMap
 type Deps = Deps.Deps
 
 debug   s m = m
diff --git a/src/Reactive/Banana/Internal/Types2.hs b/src/Reactive/Banana/Internal/Types2.hs
--- a/src/Reactive/Banana/Internal/Types2.hs
+++ b/src/Reactive/Banana/Internal/Types2.hs
@@ -8,10 +8,11 @@
 
 import Control.Applicative
 import Control.Monad
+import Control.Monad.IO.Class
 import Control.Monad.Fix
 
 import qualified Reactive.Banana.Internal.EventBehavior1 as Prim
-
+import Reactive.Banana.Internal.Phantom
 
 {-| @Event t a@ represents a stream of events as they occur in time.
 Semantically, you can think of @Event t a@ as an infinite list of values
@@ -57,3 +58,6 @@
 
 instance MonadFix (Moment t) where   mfix f  = M $ mfix (unM . f)
 instance Functor  (Moment t) where   fmap f  = M . fmap f . unM
+
+instance Frameworks t => MonadIO (Moment t) where
+    liftIO = M . Prim.liftIONow
