Affiliation:
1. University of Nottingham, UK
Abstract
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
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.
Publisher
Association for Computing Machinery (ACM)
Subject
Computer Graphics and Computer-Aided Design,Software
Reference56 articles.
1. Haskell 2010 language report 2010. Haskell 2010 language report 2010.
2. Functional Pearls Efficient sets—a balancing act
3. doi: 10.1017/ S0956796800000885. doi: 10.1017/ S0956796800000885.
4. T.
Altenkirch J.
Chapman and
T.
Uustalu
.
Monads need not be endofunctors. In L. Ong editor Foundations of Software Science and Computational Structures volume
6014
of
Lecture Notes in Computer Science pages 297–
311
. Springer Berlin Heidelberg 2010. doi: 10. 1007/978-3-642-12032-9_21. 10.1007/978-3-642-12032-9_21 T. Altenkirch J. Chapman and T. Uustalu. Monads need not be endofunctors. In L. Ong editor Foundations of Software Science and Computational Structures volume 6014 of Lecture Notes in Computer Science pages 297–311. Springer Berlin Heidelberg 2010. doi: 10. 1007/978-3-642-12032-9_21. 10.1007/978-3-642-12032-9_21
5. Parameterised notions of computation
Cited by
4 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. Unifying graded and parameterised monads;Electronic Proceedings in Theoretical Computer Science;2020-05-01
2. Fault-tolerant functional reactive programming (extended version);Journal of Functional Programming;2020
3. Fault tolerant functional reactive programming (functional pearl);Proceedings of the ACM on Programming Languages;2018-07-30
4. Encoding DCC in Haskell;Proceedings of the 2017 Workshop on Programming Languages and Analysis for Security;2017-10-30