Alternative to arrows?

This page summarizes the projects mentioned and recommended in the original post on /r/haskell

Our great sponsors
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • SaaSHub - Software Alternatives and Reviews
  • kernmantle

    Braiding extensible effects together in a pipeline/workflow of tasks

  • So I'm wondering if Arrows are still the state of the art or if there's something else we should be looking into. I know there's kernmantle, which seems really nice, but it can only handle linear pipelines so it seems much less flexible, almost like applicative with extra steps (no disrespect to the maintainers intended).

  • concat

    Compiling to Categories

  • I still dream of an Arrow-inspired contender to the throne of do notation (both for Monads and Applicatives), but proc isn't it, at least not with its current desugaring. Even more exciting to think about a variant of proc that does some concat-like magic and replaces arr with something that still allows complex data routing while exposing more structure than an opaque a -> b.

  • WorkOS

    The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.

    WorkOS logo
  • profunctors

    Haskell 98 Profunctors

  • One of the main problems with the Arrow hierarchy is that it’s not particularly well-factored. The main Arrow class has five methods, which is both intimidating to newcomers and indicative that there’s some decomplection that can be done. I think the best alternative is to use the profunctors package; it deals much more fluently with things that can take values and then return them (functions, Kleisli arrows, etc). For example, the Arrow class is broken down across Profunctor and Strong. I had a term rewriting engine that used arrows, and I was never really happy with it until I moved it to profunctors.

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts