~/talk

Arrows as applicatives in a monad

Talkat HOPE 2024 · on Monday, 2024-09-02· [functional-programming]
name:Leo White
links:none on file
slides:none on file

Argues that arrows are essentially applicatives with sharing and gives a concrete API: a Node type with an applicative interface whose map returns inside a Builder monad. Implements this by modeling sharing with an ST-like heap of refs, builds an incremental computation graph (Bonsai-style) that preserves sharing and compiles to a unit->unit runner. Proves an isomorphism to ordinary arrows, ships code on GitHub, and notes compile can be partial (Unbound_node) as a tradeoff.

AI-written summary · about

  1. 0:00Arrows and use cases
  2. 1:06Problems with arrow interface
  3. 2:54Incremental computation library
  4. 5:02Applicatives vs arrows
  5. 7:33Library with applicatives
  6. 8:59Sharing problem with applicatives
  7. 10:03Mutable heaps for sharing
  8. 12:15Builder monad and Node type
  9. 13:39New API implementation
  10. 15:24Equivalence between the new and traditional APIs
  11. 16:49State threads in API
  12. 18:17Library trade-offs
  13. 19:00Summary
  14. 21:32Q&A: Arrow vs applicative
  15. 24:02Q&A: Comparisons with systems
  16. 26:11Q&A: Adopting new API
  17. 27:34Q&A: Ordering and state
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.