Please log in to watch this conference skillscast.
Several popular generalizations of monads have been implemented in Haskell. Unfortunately, because the shape of the associated type constructors do not match the standard Haskell monad interface, each such implementation provides its own type class and versions of associated library functions. Furthermore, simultaneous use of different monadic notions can be cumbersome as it in general is necessary to be explicit about which notion is used where.
Supermonads to the rescue! The supermonad abstraction captures several different generalisations of monads and come with a version of the standard library of monadic functions that work uniformly with all of them.
As standard Haskell type inference does not work for supermonads, our implementation is accompanied with a language extension, in the form of a plugin for the Glasgow Haskell Compiler (GHC), that addresses this problem thus making supermonads as easy to use as standard monads, even when several different generalizations are in use at once. During this talk, you will learn what supermonads are, how they are realised in Haskell, and illustrate how they can be used in some practical examples.
YOU MAY ALSO LIKE:
- Principled Testing of Functional Reactive Systems (SkillsCast recorded in October 2019)
- Haskell eXchange 2020 (Online Conference on 4th - 5th November 2020)
- What's in a Functional Compiler? (SkillsCast recorded in July 2020)
- The Secrets of the GHC Garbage Collector (SkillsCast recorded in June 2020)
Supermonads: One Notion to Bind Them All
Dr. Henrik Nilsson is a Lecturer at the School of Computer Science, University of Nottingham. He holds a PhD in Computer Science from Linköping University, Sweden. His topic was debugging techniques and tools for lazy functional languages. Prior to taking up his current post, Dr. Nilsson held a position as Associate Research Scientist at the Department of Computer Science, Yale University, working mainly on Functional Reactive Programming with Prof. Paul Hudak. Dr. Nilsson's current research interests include functional programming, reactive programming, domain-specific languages for modelling and simulation, and unified notions of effectful computation.