Deep dive: Polysemy
Details
Algebraic effects is a functional programming abstraction in which side effects are explicitly enumerated and handled. This approach has some advantages over the more familiar monad transformer stacks. Until recently, working with an effects system in Haskell incurred a runtime cost which was unacceptable for many applications.
To create the new effects library polysemy, author Sandy Maguire extended the GHC specialization system (available in 8.10) in order to achieve zero runtime cost for the library.
In this talk, Haskell meetup member Ian Shipman will explain the API of polysemy, an example use case where algebraic effects shine, some implementation details, and (time permitting) the specializer changes needed to compile polysemy code with no overhead.
Special thanks to the Blockchain Institute for hosting!
