CAN WE FREE CONCURRENT PROGRAMMING FROM THE MONADIC STYLE
summary
Claim: explicit monadic plumbing disappears by using continuation/CPS transform and Dotty tasty reflection to generate await/async code that composes with arbitrary monads. Implementation produces a source-transformer in Scala 3 that lowers await into nested flatMaps, handles higher-order and by-name arguments, and interoperates with other monad implementations. Prototype runs against Monix tests and typical examples; core logic works but library wrappers and some monads (e.g. List-style nondeterminism) remain unsupported. Source and experiments are on GitHub.
AI-written summary · about
chapters (9)
- 0:00Introduction to monads
- 1:45Concurrency and history
- 3:55Alternative programming models
- 10:01Monadic representation
- 14:42State and CPS transforms
- 17:44Framework implementation
- 23:23High-order functions
- 28:40Complex algorithms in practice
- 35:51Final conclusions
related talks
41mAsync/Await for the Monadic Programmer
18mEasy, intuitive, direct-style syntax for Monad-comprehensions!
36mAn introduction to monadic structures and functional programming
31mThe Eff monad, one monad to rule them all
19mFinding the Free Way
46mOptimusPrimeT
42mMonix Task: Lazy, Async and Awesome
29mPRACTICAL MONAD TRANSFORMERS
