What we talk about when we talk about monads
Tomas Petricek (The Alan Turing Institute, United Kingdom)

TL;DR
This paper explores the historical, philosophical, and cognitive perspectives on monads in programming, offering a framework that goes beyond formal definitions to understand how programmers think and talk about them.
Contribution
It develops a multidisciplinary framework for understanding programming concepts like monads at formal, metaphorical, and implementation levels, informed by philosophy and cognitive sciences.
Findings
Metaphors used in thinking about monads are more influential than formal definitions.
Research paradigms shape how monads are understood and applied.
A broader perspective improves understanding and abstraction choices in programming.
Abstract
Computer science provides an in-depth understanding of technical aspects of programming concepts, but if we want to understand how programming concepts evolve, how programmers think and talk about them and how they are used in practice, we need to consider a broader perspective that includes historical, philosophical and cognitive aspects. In this paper, we develop such broader understanding of monads, a programming concept that has an infamous formal definition, syntactic support in several programming languages and a reputation for being elegant and powerful, but also intimidating and difficult to grasp. This paper is not a monad tutorial. It will not tell you what a monad is. Instead, it helps you understand how computer scientists and programmers talk about monads and why they do so. To answer these questions, we review the history of monads in the context of programming and study…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
