Diagonally in Data.Bimap

Hi! Just searched for a `bimap` variant that simultaneously transforms both components with the same morphism: ``` haskell diag :: Bifunctor p => (a -> b) -> p a a -> p b b diag f = bimap f f ``` I did not find any. Would it make sense to add it? Cheers, Gabor PS: same for profunctors: ``` haskell xmap :: Profunctor p => (a -> b) -> p b a -> p a b ``` PPS: I would have sent this to libraries@haskell.org but it seem to be closed group.

Hi Am Donnerstag, den 05.07.2018, 15:36 +0200 schrieb Gabor Greif:
Hi!
Just searched for a `bimap` variant that simultaneously transforms both components with the same morphism:
``` haskell diag :: Bifunctor p => (a -> b) -> p a a -> p b b diag f = bimap f f ```
I did not find any. Would it make sense to add it?
possibly, I have wanted it too before. Bikeshedding: I’d have expected the name “both”. It also has precedence here: http://hackage.haskell.org/package/extra/docs/Data-Tuple-Extra.html#v:both http://hackage.haskell.org/package/concatenative/docs/Control-Concatenative.... http://hackage.haskell.org/package/MissingK/docs/Control-Arrow-Extra.html#v:... http://hackage.haskell.org/package/lens-family/docs/Lens-Family2-Stock.html#... http://hackage.haskell.org/package/lens/docs/Control-Lens-Traversal.html#v:b... Diagonally sounds more like something of type `a -> (a,a)` or similar.
PPS: I would have sent this to libraries@haskell.org but it seem to be closed group.
It should not. Maybe only open to subscribers? (A common crude anti- spam measurement.) Cheers, Joachim -- Joachim Breitner mail@joachim-breitner.de http://www.joachim-breitner.de/
participants (2)
-
Gabor Greif
-
Joachim Breitner