diff --git a/Control/Monad/Unpack.hs b/Control/Monad/Unpack.hs
--- a/Control/Monad/Unpack.hs
+++ b/Control/Monad/Unpack.hs
@@ -1,8 +1,9 @@
 {-# LANGUAGE TypeOperators, TypeFamilies, TemplateHaskell #-}
-module Control.Monad.Unpack (module Control.Monad.Unpack.Class, (:~>), unpack, ($~)) where
+module Control.Monad.Unpack (module Control.Monad.Unpack.Class, (:~>), unpack, ($~), unpack1Instance, unpackInstance, noUnpackInstance) where
 
 import Data.Functor.Identity
 
+import Control.Monad
 import Control.Monad.Unpack.Class
 import Control.Monad.Unpack.TH
 
@@ -46,6 +47,7 @@
 $(noUnpackInstance ''Bool)
 $(noUnpackInstance ''Maybe)
 $(noUnpackInstance ''Either)
+$(liftM concat (mapM tupleInstance [2..10]))
 
 instance Unpackable () where
   newtype UnpackedReaderT () m a = Result {runResult :: m a}
diff --git a/Control/Monad/Unpack/TH.hs b/Control/Monad/Unpack/TH.hs
--- a/Control/Monad/Unpack/TH.hs
+++ b/Control/Monad/Unpack/TH.hs
@@ -1,5 +1,5 @@
 {-# LANGUAGE TemplateHaskell, QuasiQuotes #-}
-module Control.Monad.Unpack.TH (unpack1Instance, unpackInstance, noUnpackInstance) where
+module Control.Monad.Unpack.TH (unpack1Instance, unpackInstance, noUnpackInstance, tupleInstance) where
 
 import Control.Monad
 import Control.Monad.Unpack.Class
@@ -41,6 +41,14 @@
 tyVarBndrName  :: TyVarBndr -> Name
 tyVarBndrName (PlainTV var) = var
 tyVarBndrName (KindedTV var _) = var
+
+tupleInstance :: Int -> Q [Dec]
+tupleInstance n = do
+  argNames <- mapM (\ c -> newName [c]) (take n ['a'..])
+  unpacker [ClassP ''Unpackable [VarT argName] | argName <- argNames]
+    (tupleTypeName n)
+    (map PlainTV argNames)
+    (NormalC (tupleDataName n) [(NotStrict, VarT argName) | argName <- argNames])
 
 unpacker1 :: Cxt -> Name -> [TyVarBndr] -> Con -> Q [Dec]
 unpacker1 cxt tyCon tyArgs con = case conArgs con of
diff --git a/unpack-funcs.cabal b/unpack-funcs.cabal
--- a/unpack-funcs.cabal
+++ b/unpack-funcs.cabal
@@ -1,5 +1,5 @@
 name:		     unpack-funcs
-version:             0.1.1
+version:             0.1.2
 cabal-version:       >= 1.6
 tested-with:	     GHC
 category:            Control
@@ -22,8 +22,8 @@
 ghc-options:
   -Wall -fno-warn-name-shadowing -fno-warn-orphans
 exposed-modules:  
-  Control.Monad.Unpack,
-  Control.Monad.Unpack.TH
+  Control.Monad.Unpack
 other-modules:
-  Control.Monad.Unpack.Class
+  Control.Monad.Unpack.Class,
+  Control.Monad.Unpack.TH
 }
