[Haskell-cafe] traversal with an arrow
olf at aatal-apotheke.de
Fri Jun 17 22:07:25 UTC 2022
On Fri, 2022-06-17 at 16:19 +0100, Dan Dart wrote:
> > Is there prior art to the following generalisation?
> Hello, that reminds me of a Profunctor - you could manipulate via
> Profunctor, since all arrows are Profunctors via a WrappedArrow
> newtype. Maybe Strong too? I forget which way round those go.
Aha - profunctors weren't on my map, thanks for pointing me to it.
So the desired arrows r -> a -> m b could be expressed as
Cayley ((->) r) (Kleisli m) a b
with module Data.Profunctor.Traversing defining the desired traversal.
Further the implementation seems considerably simpler than the arrow
implementation, as the latter uses currying, flipping etc.
The only downside is that profunctors has heavier dependencies than
Hooray Haskell Café!
More information about the Haskell-Cafe