Unified notions of generalised monads and applicative functors

Monads and applicative functors are staple design patterns to handle effects in pure functional programming, especially in Haskell with its built-in syntactic support. Over the last decade, however, practical needs and theoretical research have given rise to generalisations of monads and applicative...

Full description

Bibliographic Details
Main Author: Bracker, Jan
Format: Thesis (University of Nottingham only)
Language:English
Published: 2018
Online Access:https://eprints.nottingham.ac.uk/55211/
_version_ 1848799132455534592
author Bracker, Jan
author_facet Bracker, Jan
author_sort Bracker, Jan
building Nottingham Research Data Repository
collection Online Access
description Monads and applicative functors are staple design patterns to handle effects in pure functional programming, especially in Haskell with its built-in syntactic support. Over the last decade, however, practical needs and theoretical research have given rise to generalisations of monads and applicative functors. Examples are graded, indexed and constrained monads. The problem with these generalisations is that no unified representation of standard and generalised monads or applicatives exists in theory or practice. As a result, in Haskell, each generalisation has its own representation and library of functions. Hence, interoperability among the different notions is hampered and code is duplicated. To solve the above issues, I first survey the three most wide-spread generalisations of monads and applicatives: their graded, indexed and constrained variations. I then examine two approaches to give them a unified representation in Haskell: polymonads and supermonads. Both approaches are embodied in plugins for the Haskell compiler GHC that address most of the identified concerns. Finally, I examine category theory and propose unifying categorical models that encompass the three discussed generalisations together with the standard notions of monad and applicative.
first_indexed 2025-11-14T20:30:48Z
format Thesis (University of Nottingham only)
id nottingham-55211
institution University of Nottingham Malaysia Campus
institution_category Local University
language English
last_indexed 2025-11-14T20:30:48Z
publishDate 2018
recordtype eprints
repository_type Digital Repository
spelling nottingham-552112025-02-28T14:15:06Z https://eprints.nottingham.ac.uk/55211/ Unified notions of generalised monads and applicative functors Bracker, Jan Monads and applicative functors are staple design patterns to handle effects in pure functional programming, especially in Haskell with its built-in syntactic support. Over the last decade, however, practical needs and theoretical research have given rise to generalisations of monads and applicative functors. Examples are graded, indexed and constrained monads. The problem with these generalisations is that no unified representation of standard and generalised monads or applicatives exists in theory or practice. As a result, in Haskell, each generalisation has its own representation and library of functions. Hence, interoperability among the different notions is hampered and code is duplicated. To solve the above issues, I first survey the three most wide-spread generalisations of monads and applicatives: their graded, indexed and constrained variations. I then examine two approaches to give them a unified representation in Haskell: polymonads and supermonads. Both approaches are embodied in plugins for the Haskell compiler GHC that address most of the identified concerns. Finally, I examine category theory and propose unifying categorical models that encompass the three discussed generalisations together with the standard notions of monad and applicative. 2018-12-11 Thesis (University of Nottingham only) NonPeerReviewed application/pdf en arr https://eprints.nottingham.ac.uk/55211/1/thesis-2018-09-30-corrected-submission.pdf Bracker, Jan (2018) Unified notions of generalised monads and applicative functors. PhD thesis, University of Nottingham.
spellingShingle Bracker, Jan
Unified notions of generalised monads and applicative functors
title Unified notions of generalised monads and applicative functors
title_full Unified notions of generalised monads and applicative functors
title_fullStr Unified notions of generalised monads and applicative functors
title_full_unstemmed Unified notions of generalised monads and applicative functors
title_short Unified notions of generalised monads and applicative functors
title_sort unified notions of generalised monads and applicative functors
url https://eprints.nottingham.ac.uk/55211/