diff --git a/reactive-banana.cabal b/reactive-banana.cabal
--- a/reactive-banana.cabal
+++ b/reactive-banana.cabal
@@ -1,5 +1,5 @@
 Name:                reactive-banana
-Version:             0.7.0.0
+Version:             0.7.0.1
 Synopsis:            Practical library for functional reactive programming (FRP).
 Description:         
     Reactive-banana is a practical library for Functional Reactive Programming (FRP).
@@ -36,7 +36,7 @@
     subdir:             reactive-banana/
 
 flag UseExtensions
-    description: Use language extensions like type families or GADTs.
+    description: Use GHC-specific language extensions.
                  This enables the efficient push-driven implementation,
                  but doesn't necessarily work with compilers other than GHC.
 -- Cabal checks if the package can be build with  UseExtensions = True,
@@ -45,22 +45,25 @@
 Library
     hs-source-dirs:     src
     
-    extensions:         CPP,
-                        Rank2Types, NoMonomorphismRestriction, FlexibleInstances
+    extensions:         RecursiveDo,
+                        Rank2Types, ScopedTypeVariables,
+                        ExistentialQuantification,
+                        TypeSynonymInstances, FlexibleInstances,
+                        NoMonomorphismRestriction
     
-    build-depends:      base >= 4.2 && < 5, containers >= 0.3 && < 0.5,
+    build-depends:      base >= 4.2 && < 5,
+                        containers >= 0.3 && < 0.6,
                         transformers >= 0.2 && < 0.4,
                         vault == 0.2.*
-    
-    if flag(UseExtensions)
-        extensions:     TypeFamilies, GADTs, MultiParamTypeClasses,
-                        BangPatterns, TupleSections,
-                        EmptyDataDecls
-        build-depends:  QuickCheck >= 1.2 && < 2.6,
-                        fclabels == 1.1.*,
+
+    extensions:         EmptyDataDecls,
+                        BangPatterns
+
+    build-depends:      QuickCheck >= 1.2 && < 2.6,
                         unordered-containers >= 0.2.1.0 && < 0.3,
                         hashable == 1.1.*
-        CPP-options:    -DUseExtensions
+
+--      CPP-options:    -DUseExtensions
         
     exposed-modules:
                         Reactive.Banana,
diff --git a/src/Reactive/Banana/Combinators.hs b/src/Reactive/Banana/Combinators.hs
--- a/src/Reactive/Banana/Combinators.hs
+++ b/src/Reactive/Banana/Combinators.hs
@@ -1,10 +1,8 @@
 {-----------------------------------------------------------------------------
     reactive-banana
 ------------------------------------------------------------------------------}
-{-# LANGUAGE CPP #-}
 {-# LANGUAGE Rank2Types #-}
 {-# LANGUAGE MultiParamTypeClasses #-}
--- #define UseExtensions 1
 
 module Reactive.Banana.Combinators (
     -- * Synopsis
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
@@ -1,7 +1,8 @@
 {-----------------------------------------------------------------------------
     Reactive Banana
 ------------------------------------------------------------------------------}
-{-# LANGUAGE Rank2Types, MultiParamTypeClasses, TypeSynonymInstances, FlexibleInstances #-}
+{-# LANGUAGE Rank2Types, MultiParamTypeClasses,
+    TypeSynonymInstances, FlexibleInstances #-}
 
 module Reactive.Banana.Experimental.Calm (
     -- * Synopsis
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
@@ -1,7 +1,6 @@
 {-----------------------------------------------------------------------------
     reactive-banana
 ------------------------------------------------------------------------------}
-{-# LANGUAGE RecordWildCards #-}
 module Reactive.Banana.Internal.DependencyGraph (
     -- | Utilities for operating with dependency graphs.
     Deps,
diff --git a/src/Reactive/Banana/Switch.hs b/src/Reactive/Banana/Switch.hs
--- a/src/Reactive/Banana/Switch.hs
+++ b/src/Reactive/Banana/Switch.hs
@@ -33,7 +33,7 @@
 -- Unlike 'Data.Functor.Constant',
 -- this functor is constant in the /second/ argument.
 
-data Identity t a = Identity { getIdentity :: a }
+newtype Identity t a = Identity { getIdentity :: a }
 
 instance Functor (Identity t) where
     fmap f (Identity a) = Identity (f a)
