While trying to understand Torsten Grust’s 2015 MPC keynote on comprehension syntax, and Jeremy Gibbons’s 2016 WadlerFest essay on ``Ringad Comprehensions'', and their relationship to Haskell’s Foldable typeclass, I arrived at the following characterisations:
A Functor f is Foldable iff Every Monoid instance a is an f-Algebra instance
A Monad f is a Ringad iff Every f-Algebra instance a is a Monoid instance
The first is (perhaps) folklore, and appears in Uustalu’s paper for the Oliveira Festschrift, but was independently rediscovered during my research. The second is, as far as I know, new. It is based on joint work with Jeremy Gibbons.
This talk will motivate, describe, and sketch the proof of these `dual’ characterisations.