ZuriHac 2016: Monad Homomorphisms

"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.