diff --git a/data-msgpack.cabal b/data-msgpack.cabal
--- a/data-msgpack.cabal
+++ b/data-msgpack.cabal
@@ -1,5 +1,5 @@
 name:                 data-msgpack
-version:              0.0.3
+version:              0.0.4
 synopsis:             A Haskell implementation of MessagePack
 homepage:             http://msgpack.org/
 license:              BSD3
diff --git a/src/Data/MessagePack.hs b/src/Data/MessagePack.hs
--- a/src/Data/MessagePack.hs
+++ b/src/Data/MessagePack.hs
@@ -13,9 +13,9 @@
 --
 --------------------------------------------------------------------
 
-module Data.MessagePack
+module Data.MessagePack (
   -- * Simple interface to pack and unpack msgpack binary
-  ( pack
+    pack
   , unpack
 
   -- * Re-export modules
diff --git a/src/Data/MessagePack/Result.hs b/src/Data/MessagePack/Result.hs
--- a/src/Data/MessagePack/Result.hs
+++ b/src/Data/MessagePack/Result.hs
@@ -1,8 +1,13 @@
-{-# LANGUAGE DeriveFunctor #-}
-{-# LANGUAGE Safe          #-}
+{-# LANGUAGE DeriveFoldable    #-}
+{-# LANGUAGE DeriveFunctor     #-}
+{-# LANGUAGE DeriveTraversable #-}
+{-# LANGUAGE Safe              #-}
 module Data.MessagePack.Result where
 
-import           Control.Applicative       (Applicative, pure, (<$>), (<*>))
+import           Control.Applicative       (Alternative (..), Applicative (..),
+                                            (<$>), (<*>))
+import           Data.Foldable             (Foldable)
+import           Data.Traversable          (Traversable)
 import           Test.QuickCheck.Arbitrary (Arbitrary (..))
 import qualified Test.QuickCheck.Gen       as Gen
 
@@ -10,7 +15,7 @@
 data Result a
   = Success a
   | Failure String
-  deriving (Read, Show, Eq, Functor)
+  deriving (Read, Show, Eq, Functor, Traversable, Foldable)
 
 
 instance Applicative Result where
@@ -18,6 +23,13 @@
 
   Success f   <*> x = fmap f x
   Failure msg <*> _ = Failure msg
+
+
+instance Alternative Result where
+  empty = Failure "empty alternative"
+
+  s@Success {} <|> _ = s
+  _            <|> r = r
 
 
 instance Monad Result where
