diff --git a/Data/Functor/Foldable.hs b/Data/Functor/Foldable.hs
--- a/Data/Functor/Foldable.hs
+++ b/Data/Functor/Foldable.hs
@@ -54,6 +54,9 @@
   -- * Mendler-style
   , mcata
   , mhisto
+  -- * Elgot (co)algebras
+  , elgot
+  , coelgot
   ) where
 
 import Control.Applicative
@@ -62,6 +65,7 @@
 import Control.Comonad.Trans.Env
 import Control.Monad (liftM, join)
 import Data.Functor.Identity
+import Control.Arrow
 import Data.Function (on)
 import qualified Data.Stream.Branching as Stream
 import Data.Stream.Branching (Stream(..))
@@ -354,3 +358,11 @@
 -- | Mendler-style course-of-value iteration
 mhisto :: (forall y. (y -> c) -> (y -> f y) -> f y -> c) -> Fix f -> c
 mhisto psi = psi (mhisto psi) unfix . unfix
+
+-- | Elgot algebras
+elgot :: Functor f => (f a -> a) -> (b -> Either a (f b)) -> b -> a
+elgot phi psi = h where h = (id ||| phi . fmap h) . psi
+
+-- | Elgot coalgebras: <http://comonad.com/reader/2008/elgot-coalgebras/>
+coelgot :: Functor f => ((a, f b) -> b) -> (a -> f a) -> a -> b
+coelgot phi psi = h where h = phi . (id &&& fmap h . psi)
diff --git a/recursion-schemes.cabal b/recursion-schemes.cabal
--- a/recursion-schemes.cabal
+++ b/recursion-schemes.cabal
@@ -1,6 +1,6 @@
 name:          recursion-schemes
 category:      Control, Recursion
-version:       0.2
+version:       0.2.1
 license:       BSD3
 cabal-version: >= 1.6
 license-file:  LICENSE
@@ -13,6 +13,10 @@
 description:   
   Generalized bananas, lenses and barbed wire
   . 
+  /Changes since 0.2/:
+  .
+  * Added Elgot (co)algebras
+  .
   /Changes since 0.1/:
   .
   * Removed dependency on Foldable from Mendler-style recursion schemes
