diff --git a/pointless-haskell.cabal b/pointless-haskell.cabal
--- a/pointless-haskell.cabal
+++ b/pointless-haskell.cabal
@@ -1,5 +1,5 @@
 Name:            pointless-haskell
-Version:         0.0.8
+Version:         0.0.9
 License:         BSD3
 License-file:    LICENSE
 Author:          Alcino Cunha <alcino@di.uminho.pt>, Hugo Pacheco <hpacheco@di.uminho.pt>
diff --git a/src/Generics/Pointless/Examples/Examples.hs b/src/Generics/Pointless/Examples/Examples.hs
--- a/src/Generics/Pointless/Examples/Examples.hs
+++ b/src/Generics/Pointless/Examples/Examples.hs
@@ -524,10 +524,18 @@
 
 -- ** Summation
 
--- | Definition of inter addition as a catamorphism.
+-- | Definition of integerr addition as a catamorphism.
 sumCata :: [Int] -> Int
 sumCata = cata (ann::Ann [Int]) f
    where f = (0!) \/ add
+
+-- | Definition of integerr addition as an accumulation.
+sumAccum :: ([Int],Int) -> Int
+sumAccum = accum _L f tau where
+	tau (Left _,b) = Left _L
+	tau (Right (x,xs),b) = Right (x,(xs,x+b))
+	f (Left _,b) = b
+	f (Right (x,c),b) = c
 
 -- ** Multiplication
 
diff --git a/src/Generics/Pointless/Functors.hs b/src/Generics/Pointless/Functors.hs
--- a/src/Generics/Pointless/Functors.hs
+++ b/src/Generics/Pointless/Functors.hs
@@ -38,24 +38,15 @@
 
 -- | Sum of functors.
 infixr 5 :+:
-data (g :+: h) x = InlF (g x) | InrF (h x) deriving (Eq,Show)
-
-instance (G.Typeable (g x),G.Typeable (h x)) => G.Typeable ((g :+: h) x) where
-   typeOf _ = G.mkTyCon ":+:" `G.mkTyConApp` [G.typeOf (ann::g x),G.typeOf (ann::h x)]
+data (g :+: h) x = InlF (g x) | InrF (h x) deriving (Eq,Show,G.Typeable)
 
 -- | Product of functors.
 infixr 6 :*:
-data (g :*: h) x = ProdF (g x) (h x) deriving (Eq,Show)
-
-instance (G.Typeable (g x),G.Typeable (h x)) => G.Typeable ((g :*: h) x) where
-   typeOf _ = G.mkTyCon ":*:" `G.mkTyConApp` [G.typeOf (ann::g x),G.typeOf (ann::h x)]
+data (g :*: h) x = ProdF (g x) (h x) deriving (Eq,Show,G.Typeable)
 
 -- | Composition of functors.
 infixr 9 :@:
-data (g :@: h) x = CompF {unCompF :: g (h x)} deriving (Eq,Show)
-
-instance (G.Typeable (g x),G.Typeable (h x)) => G.Typeable ((g :@: h) x) where
-   typeOf _ = G.mkTyCon ":@:" `G.mkTyConApp` [G.typeOf (ann::g x),G.typeOf (ann::h x)]
+data (g :@: h) x = CompF {unCompF :: g (h x)} deriving (Eq,Show,G.Typeable)
 
 -- | Explicit fixpoint operator.
 newtype Fix f = Inn { -- | The unfolding of the fixpoint of a functor is the functor applied to its fixpoint.
