<div dir="ltr">Could you provide some examples where you have found it useful?</div><br><div class="gmail_quote"><div dir="ltr">On Sun, Jan 3, 2016 at 9:11 PM Henning Thielemann <<a href="mailto:lemming@henning-thielemann.de">lemming@henning-thielemann.de</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br>
I found the following data type useful when working with the Foldable<br>
class:<br>
<br>
<br>
{- |<br>
It holds:<br>
<br>
> foldMap f . Mapped g = foldMap f . fmap g<br>
<br>
but use of 'Mapped' avoids 'Functor' constraint.<br>
-}<br>
data Mapped f a b = Mapped (a -> b) (f a)<br>
<br>
<br>
instance (Foldable f) => Foldable (Mapped f a) where<br>
    foldMap g (Mapped f xs) = Fold.foldMap (g . f) xs<br>
    foldr g x (Mapped f xs) = Fold.foldr (g . f) x xs<br>
    foldl g x (Mapped f xs) = Fold.foldl (\acc -> g acc . f) x xs<br>
<br>
<br>
Should it be added to Data.Foldable?<br>
_______________________________________________<br>
Libraries mailing list<br>
<a href="mailto:Libraries@haskell.org" target="_blank">Libraries@haskell.org</a><br>
<a href="http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries" rel="noreferrer" target="_blank">http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries</a><br>
</blockquote></div>