ZuriHac 2016: Monad Homomorphisms

Oleg Feldman

"Explore the abstract representations of monad homomorphisms, embedding projections, and more, and learn how to compose them for increased flexibility and reusability in your programming endeavors."

Key takeaways
  • Monad homomorphisms: A way to abstract over constraints in monads, allowing for more flexibility and reusability.
  • Embedding projection: A way to embed a monad into another monad, preserving the original monad’s structure.
  • Monad transformers: A way to compose multiple monads together, allowing for more complex behavior.
  • Lifting: A way to embed a monad into a codensity of another monad, allowing for more flexibility in monad composition.
  • Pointed monads: Monads that have a way to project out a reader, allowing for more flexibility in monad composition.
  • Monad state: A way to keep track of a state in a monad, allowing for more flexibility in monad composition.
  • Reader commutes with state: The ability to commute the reader and state monads, allowing for more flexibility in monad composition.
  • Writer commutes with state: The ability to commute the writer and state monads, allowing for more flexibility in monad composition.
  • Monoidal categories: Categories that have a way to compose objects and morphisms, allowing for more flexibility in monad composition.
  • Functor instances: Ways to define functors over monads, allowing for more flexibility in monad composition.
  • LIFT says M of A goes to T of A: A way to lift a monad into another monad, preserving the original monad’s structure.
  • Morphisms: Ways to transform one monad into another, allowing for more flexibility in monad composition.
  • Identity monad: A monad that has a way to project out a reader, allowing for more flexibility in monad composition.
  • Proxy: A way to embed a monad into another monad, preserving the original monad’s structure.
  • Natural transformations: Ways to transform one monad into another, allowing for more flexibility in monad composition.