~/talk

Principled error handling - Beyond MonadError

Talkat Scalapeño 2018 · on Monday, 2018-07-02· [scala, functional-programming]
slides:none on file

Argues MonadError is insufficient and introduces an ErrorControl abstraction that separates a fallible F from an infallible G with a primitive controlError (F a, E→G a) : G a plus derived ops like intercept, trial, accept and assure, with homomorphism laws to prevent nested attempts. Gives concrete instances: Either/ID, EitherT, StateT, IO ↔ uIO ≅ IO of Either, BIO/VIO (UIO of Validated) to switch short‑circuiting vs error accumulation, and shows how to map transformers to a safe infallible context.

AI-written summary · about

  1. 0:00Intro
  2. 2:19Simple error handling - Either
  3. 5:41Abstracting to MonadError
  4. 6:33MonadError - polymorphic programs
  5. 7:43MonadError - instances
  6. 11:57MonadError - a closer look
  7. 14:44Let's try better!
  8. 18:53ErrorControl - laws
  9. 20:24ErrorControl - derived functions
  10. 25:16ErrorControl - instances - Either
  11. 26:27Error Control - instances - 10
  12. 29:53Error Control - instances - Eithert
  13. 31:12Error Control - instances - Statet
  14. 32:46ErrorControl - instances - BIO
  15. 34:55Alternatives?
  16. 36:44Conclusions
  17. 37:34Bonus Slides
~/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.