Revisiting the Evolution of Effects (Invited Talk)Keynote
Functional programming is often associated with pure functions, offering referential transparency and a principled basis for reasoning about programs. In practice, however, most programs must interact with their environment, introducing effects such as input/output, mutable state, and exceptions. Reconciling these requirements with purity has been a longstanding concern in the design of functional languages.
Monads provided an early and influential approach, offering a disciplined way to sequence effectful computations while retaining a pure core. Although successful, this approach exposed limitations in modularity: combining multiple effects in a flexible manner proved difficult. Monad transformers addressed this to some extent by allowing effects to be layered.
More recent work has explored algebraic effects as an alternative framework, supporting extensibility and a more modular treatment of effects, particularly in the construction of domain-specific abstractions. Experience with algebraic effects has, in turn, revealed limitations of first-order formulations, motivating the development of scoped and higher-order effects. These extensions broaden the range of effectful behaviour that can be expressed, and help clarify the relationship between monadic and algebraic approaches.
This talk revisits these developments, following the evolution from monads and monad transformers to algebraic and higher-order effects, and discussing the trade-offs that arise in structuring effectful programs.
Tue 13 JanDisplayed time zone: Brussels, Copenhagen, Madrid, Paris change
14:00 - 15:30 | |||
14:00 90mKeynote | Revisiting the Evolution of Effects (Invited Talk)Keynote PEPM Nicolas Wu Imperial College London DOI | ||
