diff --git a/Control/Monad/Atom.hs b/Control/Monad/Atom.hs
--- a/Control/Monad/Atom.hs
+++ b/Control/Monad/Atom.hs
@@ -18,9 +18,10 @@
 import qualified Data.Map as Map
 import qualified Data.IntMap as IntMap
 import qualified Data.Binary as B
-import qualified Data.ByteString.Lazy as BS
+import qualified Data.ByteString as Strict
+import qualified Data.ByteString.Lazy as Lazy
 
-type Blob = BS.ByteString
+type Blob = Strict.ByteString
 
 data AtomTable = T { lastID :: {-# UNPACK #-} !Int 
                    , to     :: Map.Map Blob Int 
@@ -48,7 +49,7 @@
 
 instance Monad m => MonadAtom (AtomT m) where
     toAtom x = AtomT $ do
-      let b = B.encode x
+      let b = enc x
       t <- get
       case Map.lookup b (to t) of
         Just j -> return $! j
@@ -64,11 +65,11 @@
     maybeToAtom x = 
         AtomT $ do
           t <- get
-          return . Map.lookup (B.encode x) . to $ t
+          return . Map.lookup (enc x) . to $ t
             
     fromAtom i = AtomT $ do
       t <- get
-      return . B.decode $ (from t) IntMap.! i
+      return . dec $ (from t) IntMap.! i
 
 table = AtomT get
 
@@ -93,6 +94,9 @@
 
 newtype Atom r = Atom (AtomT Identity r)
     deriving (Functor,Monad,MonadAtom)
+
+enc = Strict.concat . Lazy.toChunks . B.encode
+dec = B.decode . Lazy.fromChunks . return
 
 example :: [String]
 example = evalAtom $ do 
diff --git a/monad-atom.cabal b/monad-atom.cabal
--- a/monad-atom.cabal
+++ b/monad-atom.cabal
@@ -7,7 +7,7 @@
 -- The package version. See the Haskell package versioning policy
 -- (http://www.haskell.org/haskellwiki/Package_versioning_policy) for
 -- standards guiding when and how versions should be incremented.
-Version:             0.1.0
+Version:             0.1.1
 
 -- A short (one-line) description of the package.
 Synopsis:            Monadically convert objects to unique atoms and back.
