Skip to content
0:00 / 0:00

#haskell#algebraiceffects#monads

[Haskell'23] The Evolution of Effects

ACM SIGPLAN

11K subscribers • 53 videos on Hallway

YouTube
  • Recommended by 2 people: 2 in engineering communities.
  • Presented by Nicolas Wu, Imperial College London
  • Linked in the descriptionDOI 10.1145/3609026.3615581

Advanced. Deep dive for people who know the field.

9K views2 years ago2 recommendations

Programming languagesSoftware designFunctional programmingLanguage design and type systems

Nicolas Wu traces the history of handling computational effects in Haskell, from monads to modern algebraic effect handlers.

The Evolution of Effects (Keynote) (Video, Haskell 2023) Nicolas Wu (Imperial College London, UK) Abstract: Functional programming has been celebrated for its promise of pure functions, delivering referential transparency and elegant reasoning about programs. However, real-world applications are not pure, and necessitate interaction with the outside world, introducing computational effects such as IO, state, and exceptions. The journey to harmonize these seemingly contradictory paradigms has led to a fascinating evolution of effectful programming in Haskell. The introduction of monads as a practical programming tool was a pivotal discovery, enabling controlled sequencing of effectful computations and addressing the challenge of handling side effects in a pure language. However, it soon became evident that the lack of modularity in composing effects using monads posed a limitation to effectful programming. To overcome this obstacle, monad transformers emerged as a solution, providing a composable manner of building effects on top of one another. More recent advancements have led to algebraic effects as an alternative framework that is easy to extend, particularly as domain-specific languages crafted to work in specific contexts. Nevertheless, these effects are not without quirks and limitations, leading to the development of higher-order effects. These higher-order effects extend the capabilities of algebraic effects, providing greater flexibility for expressing effectful computations, while also shedding light on the connection between the monad approach and the algebraic approach to effects. This talk will survey the historical milestones that have shaped the landscape of effectful programming in Haskell, exploring the transition from monads to monad transformers and the emergence of algebraic and higher-order effects. Article: doi.org/10.1145/3609026.3615581 ORCID: orcid.org/0000-0002-4161-985X Video Tags: icfpws23haskellmain-key2-p, doi:10.1145/3609026.3615581, orcid:0000-0002-4161-985X Presentation at the Haskell 2023 conference, September 8–9, 2023, icfp23.sigplan.org/home/haskellsymp-2023 Sponsored by ACM SIGPLAN, sigplan.org/

Why it's here

2 people recommend this

What people say. Recommended as a comprehensive overview of how effect systems have evolved in functional programming.

Moments people linked to

u/ysangkokin r/haskell • Recommends

Nicolas Wu - The Evolution of Effects (Haskell '23)

u/mttdin r/ProgrammingLanguages • Recommends

The Evolution of Effects

u/marcinzhin r/ProgrammingLanguages • Mentions

On “Why I'm excited about effect systems”

> I can already do this in language X using library/framework Y? Yes, you can do it already for X=Scala and Y=Turbolift. Turbolift (I'm the author) also supports few things which, to my knowledge, are not found in Koka, such as: 1. Higher Order Effects The Evolution of Effects (Keynote) (Video, Haskell 2023) 2. Ability to parallelize *effectful* programs, both implicitly (by applicative composition) and explicitly (using `Fiber` type - green thread). 3. `IO` effect with feature set matching (eventually) those offered by mature, industry tested Scala Pure-FP libraries such as Cats-Effect, Monix, ZIO (each was directly or transitively influenced by Haskell's `IO` monad). What's differe…
1View on Reddit