diff --git a/Control/Monad/Sharing.hs b/Control/Monad/Sharing.hs
--- a/Control/Monad/Sharing.hs
+++ b/Control/Monad/Sharing.hs
@@ -124,13 +124,12 @@
 rest :: MonadPlus m => m (List m a) -> m (List m a)
 rest ml = do Cons _ xs <- ml; xs
 
-instance (Monad m, Trans m a a) => Trans m (List m a) (List m a)
+instance (Monad m, Trans m a b) => Trans m (List m a) (List m b)
  where
   trans _ Nil         = return Nil
   trans f (Cons x xs) = return Cons `ap` f x `ap` f xs
 
-instance (Monad m, Trans m a a) => Trans m (List m a) [a]
+instance (Monad m, Trans m a b) => Trans m (List m a) [b]
  where
   trans _ Nil         = return []
   trans f (Cons x xs) = return (:) `ap` join (f x) `ap` join (f xs)
-
diff --git a/explicit-sharing.cabal b/explicit-sharing.cabal
--- a/explicit-sharing.cabal
+++ b/explicit-sharing.cabal
@@ -1,5 +1,5 @@
 Name:          explicit-sharing
-Version:       0.3.1.1
+Version:       0.3.1.2
 Cabal-Version: >= 1.6
 Synopsis:      Explicit Sharing of Monadic Effects
 Description:   
