Data.Foldable documentation

Thomas Schilling nominolo at
Sat Oct 4 10:01:15 EDT 2008

I think this is covered by the assumed associativity of mappend.
I.e., if `f' is associative, then `foldr = foldl' modulo performance.

2008/10/1 Stephan Friedrichs <deduktionstheorem at>:
> Hello,
> I've got a suggestion for the documentation of the Data.Foldable module. The
> documentation [1] does not say anything about the order in which the
> elements are folded. But as far as I understand, the order in which the
> elements are traversed (i. e. the result of Data.Foldable.toList) has to bee
> deterministic. The documentation of the Foldable class IMHO should provide a
> clear statement about that.
> Example: I implemented a heap that internally uses a tree of elements. It
> uses a tree to store the elements, but two heaps might be equal (contain the
> same elements) and still be represented by different trees. Then
> instance Foldable (Heap p) where
>    foldMap _ Empty          = mempty
>    foldMap f (Tree _ x l r) = foldMap f l `mappend` f x `mappend` foldMap f
> r
> is a bug which is not indicated by the documentation.
> Thanks in advance
> Stephan
> [1] using ghc-6.8.3
> --
> Früher hieß es ja: Ich denke, also bin ich.
> Heute weiß man: Es geht auch so.
>  - Dieter Nuhr
> _______________________________________________
> Libraries mailing list
> Libraries at

More information about the Libraries mailing list