Freer Arrows and Why You Need Them in Haskell
summary
Proposes freer arrows as a Haskell data structure (plus two variants: freer pre-arrow and freer choice arrow) that yields an Arrow instance and admits simple structural static analyses: counting events, summarizing events via a monoid, doing domain-specific rewrites and combining two sends between the same endpoints. Replaces freer monads in the hascore choreographic library, giving static endpoint projection and selective broadcasting (broadcasts only to participants used in a branch). Trade-offs: less expressive than monads (recursion/iteration unsupported without extra machinery) and pure-arr/ hom functions impede deeper analysis. Artifacts and paper DOI provided.
AI-written summary · about
chapters (7)
- 0:00Freer arrows in Haskell
- 3:13Freer arrows matter
- 8:16Programming with freer arrows
- 11:01Static analysis with freer arrows
- 15:00Hascore case study
- 19:34Conclusion and future work
- 21:01Q&A








