nominolo at googlemail.com
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 web.de>:
> I've got a suggestion for the documentation of the Data.Foldable module. The
> documentation  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
> is a bug which is not indicated by the documentation.
> Thanks in advance
>  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 haskell.org
More information about the Libraries