diff --git a/Control/ContStuff.hs b/Control/ContStuff.hs
--- a/Control/ContStuff.hs
+++ b/Control/ContStuff.hs
@@ -180,10 +180,9 @@
   type Result (ContT r m) = r
   abort = ContT . const . pure
 
-instance Alternative m => Alternative (ContT r m) where
+instance (Alternative m, Monad m) => Alternative (ContT r m) where
   empty = ContT $ const empty
-  ContT c <|> ContT d =
-    ContT $ \k -> c (\x -> d (\y -> k x <|> k y))
+  ContT c <|> ContT d = ContT $ \k -> c k <|> d k
 
 instance Applicative (ContT r m) where
   pure = return
diff --git a/contstuff.cabal b/contstuff.cabal
--- a/contstuff.cabal
+++ b/contstuff.cabal
@@ -1,5 +1,5 @@
 Name:          contstuff
-Version:       0.2.1
+Version:       0.2.2
 Category:      Control, Monads
 Synopsis:      Easy to use CPS-based monads
 Maintainer:    Ertugrul Söylemez <es@ertes.de>
