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. In this paper we introduce \emph{supermonads}: an encoding of monadic notions that captures several different generalizations along 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 due to their generality, our supermonad implementation is accompanied with a language extension, in the form of a plugin
for the Glasgow Haskell Compiler (GHC), that allows type inference
for supermonads, obviating the need for manual annotations.
Fri 23 SepDisplayed time zone: Osaka, Sapporo, Tokyo change
14:00 - 14:50 | |||
14:00 25mTalk | The Key Monad: Type-Safe Unconstrained Dynamic Typing Haskell Pablo Buiras Chalmers University of Technology, Koen Claessen Chalmers University of Technology, Atze van der Ploeg DOI | ||
14:25 25mTalk | Supermonads: One Notion to Bind Them All Haskell DOI |