There are some constructs like this in Dunai and Yampa (but not generalized).

The first one indeed uses ArrowChoice:

https://hackage.haskell.org/package/dunai-0.8.2/docs/src/Data.MonadicStreamFunction.Util.html#mapMaybeS

The other two seem to be implementing some similar (ad hoc) choice, but it can be hard to tell sometimes:

https://hackage.haskell.org/package/dunai-0.8.2/docs/src/Control.Monad.Trans.MSF.List.html#mapMSF
https://hackage.haskell.org/package/Yampa-0.13.5/docs/src/FRP.Yampa.Switches.html#parC

Ivan


On Fri, 17 Jun 2022 at 11:29, Tom Ellis <tom-lists-haskell-cafe-2017@jaguarpaw.co.uk> wrote:
On Fri, Jun 17, 2022 at 05:01:55PM +0200, Olaf Klinke wrote:
> Is there prior art to the following generalisation?

>     traverseArrow :: Traversable t => a x y -> a (t x) (t y)

Perhaps you are looking for this:

    https://github.com/tomjaguarpaw/Arrows2/issues/3#issuecomment-561973678
_______________________________________________
Haskell-Cafe mailing list
To (un)subscribe, modify options or view archives go to:
http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
Only members subscribed via the mailman list are allowed to post.