diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -8,4 +8,4 @@
 
 A monad transformer supporting Haskey transactions.
 
-See [example/Main.hs](example/Main.hs) for a complete example.
+For more information see the [haskey](https://github.com/haskell-haskey/haskey#readme) library.
diff --git a/example/Main.hs b/example/Main.hs
--- a/example/Main.hs
+++ b/example/Main.hs
@@ -14,14 +14,14 @@
 import Control.Monad.IO.Class (MonadIO, liftIO)
 
 import Data.BTree.Alloc (AllocM, AllocReaderM)
-import Data.BTree.Impure (Tree, insertTree, lookupTree, toList)
+import Data.BTree.Impure (Tree)
 import Data.BTree.Primitives (Value)
 import Data.Binary (Binary)
 import Data.Foldable (foldlM)
 import Data.Int (Int64)
 import Data.Text (Text, unpack)
 import Data.Typeable (Typeable)
-import qualified Data.BTree.Impure as Tree
+import qualified Data.BTree.Impure as B
 
 import Database.Haskey.Alloc.Concurrent (Root)
 
@@ -73,7 +73,7 @@
 instance Root Schema
 
 emptySchema :: Schema
-emptySchema = Schema Tree.empty Tree.empty
+emptySchema = Schema B.empty B.empty
 
 schemaTweets :: Lens' Schema (Tree Int64 Tweet)
 schemaTweets = lens _schemaTweets $ \s x -> s { _schemaTweets = x }
@@ -83,23 +83,23 @@
 
 -- | Insert or update a tweet.
 insertTweet :: AllocM n => Int64 -> Tweet -> Schema -> n Schema
-insertTweet k v = schemaTweets %%~ insertTree k v
+insertTweet k v = schemaTweets %%~ B.insert k v
 
 -- | Query all tweets.
 queryAllTweets :: AllocReaderM n => Schema -> n [(Int64, Tweet)]
-queryAllTweets root = toList (root ^. schemaTweets)
+queryAllTweets root = B.toList (root ^. schemaTweets)
 
 -- | Query a tweet.
 queryTweet :: AllocReaderM n => Int64 -> Schema -> n (Maybe Tweet)
-queryTweet k root = lookupTree k (root ^. schemaTweets)
+queryTweet k root = B.lookup k (root ^. schemaTweets)
 
 -- | Insert a new user.
 insertUser :: AllocM n => Text -> User -> Schema -> n Schema
-insertUser k v = schemaUsers %%~ insertTree k v
+insertUser k v = schemaUsers %%~ B.insert k v
 
 -- | Quer a user.
 queryUser :: AllocReaderM n => Text -> Schema -> n (Maybe User)
-queryUser userId root = lookupTree userId (root ^. schemaUsers)
+queryUser userId root = B.lookup userId (root ^. schemaUsers)
 
 --------------------------------------------------------------------------------
 -- Our main application.
diff --git a/haskey-mtl.cabal b/haskey-mtl.cabal
--- a/haskey-mtl.cabal
+++ b/haskey-mtl.cabal
@@ -1,5 +1,5 @@
 name:                haskey-mtl
-version:             0.2.0.0
+version:             0.3.0.0
 synopsis:            A monad transformer supporting Haskey transactions.
 description:
     This library provides a monad transformer supporting Haskey transactions,
@@ -28,8 +28,8 @@
     exceptions              >=0.8.3 && <0.9,
     mtl                     >=2.1  && <3,
     transformers            >=0.3  && <1,
-    haskey-btree            >=0.2 && <1,
-    haskey                  >=0.2 && <1
+    haskey-btree            >=0.3 && <0.4,
+    haskey                  >=0.3 && <0.4
 
   default-language:    Haskell2010
   ghc-options:         -Wall
@@ -40,9 +40,9 @@
   hs-source-dirs:      example
   main-is:             Main.hs
   build-depends:
-    base          >= 4.7 && <5,
-    haskey        >=0.2 && <1,
-    haskey-btree  >=0.2 && <1,
+    base          >=4.7 && <5,
+    haskey        >=0.3 && <0.4,
+    haskey-btree  >=0.3 && <0.4,
     haskey-mtl,
     binary        >=0.6 && <0.9 || >0.9 && <1,
     exceptions    >=0.8.3 && <0.9,
