On 27/06/2012, at 3:18 PM, John Lato wrote: > On Wed, Jun 27, 2012 at 9:15 AM, Richard O'Keefe <o...@cs.otago.ac.nz> wrote: >> >> On 27/06/2012, at 12:51 PM, John Lato wrote: >>> >>> data Tree a = Leaf a | Branch (Tree a) ( Tree a) >>> deriving (Foldable, Show) >> >> While I am familiar with deriving (Show), >> I am not familiar with deriving (Foldable), >> which looks rather useful. >> >> http://www.haskell.org/ghc/docs/7.4.2/html/users_guide/deriving.html >> just says "With -XDeriveFoldable, you can derive instances of the >> class Foldable, defined in Data.Foldable." but it provides no details. >> >> Would you care to explain more about deriving (Foldable)? > > There's not much to explain, DeriveFoldable basically does just that; > automatically provide an instance of the Foldable class for a data > type.
That was sufficiently obvious, yes. The question remains, ***WHAT*** instance? > I think the original proposal for DeriveFoldable was from Twan > van Laarhoven, > http://www.mail-archive.com/haskell-prime@haskell.org/msg02116.html, which goes into a great deal of detail about what deriving (Functor) does, but none whatsoever about what deriving (Foldable) does. Even for Functor, another 3 or 4 nontrivial examples would be nice. > and there's a little bit of history on GHC's trac, > http://hackage.haskell.org/trac/ghc/ticket/2953. The current > implementation probably hasn't changed much since Simon PJ's original > patch, although there's probably substantial overlap with ghc's > generics these days. That trac entry contains one sentence that seems to still apply: "What is missing is a section in the user manual describing the changes." It refers to section 8.5, which is now 7.5, and there is still no adequate documentation there. > > As for the Foldable class itself, the docs at > http://www.haskell.org/ghc/docs/latest/html/libraries/base/Data-Foldable.html > are pretty good. Yes, Foldable *is* documented. However, that page says nothing whatever about deriving (Foldable). _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe