Fiveable

๐Ÿ”ขCategory Theory Unit 10 Review

QR code for Category Theory practice questions

10.1 Definition and examples of monads

๐Ÿ”ขCategory Theory
Unit 10 Review

10.1 Definition and examples of monads

Written by the Fiveable Content Team โ€ข Last updated September 2025
Written by the Fiveable Content Team โ€ข Last updated September 2025
๐Ÿ”ขCategory Theory
Unit & Topic Study Guides

Monads are powerful tools in category theory that model computations with context or side effects. They consist of an endofunctor, unit, and multiplication, which work together to enable consistent and composable operations.

Common monads like Identity, Maybe, and List represent different computational contexts. Monad laws ensure predictable behavior, allowing monads to handle complex scenarios like failure, non-determinism, state changes, and I/O operations in a structured way.

Monads: Definition and Components

Components of a monad

  • Endofunctor $T$ maps objects and morphisms from category $C$ back to $C$ ($\text{Set} \to \text{Set}$)
  • Natural transformation unit $\eta$ embeds objects from $C$ into the monad ($X \to T(X)$)
  • Natural transformation multiplication $\mu$ composes monadic computations ($T(T(X)) \to T(X)$)
  • Unit and multiplication satisfy coherence conditions enable composition of monadic computations

Examples of common monads

  • Identity monad represents plain values without any additional context or effects
    • Endofunctor: $T(X) = X$
    • Unit: $\eta_X(x) = x$
    • Multiplication: $\mu_X(x) = x$
  • Maybe monad represents computations that may fail or produce no result
    • Endofunctor: $T(X) = X + 1$ ($1$ represents a singleton set)
    • Unit: $\eta_X(x) = \text{Just } x$
    • Multiplication: $\mu_X(\text{Just } x) = x$, $\mu_X(\text{Nothing}) = \text{Nothing}$
  • List monad represents non-deterministic computations or multiple results
    • Endofunctor: $T(X) = X^$ (free monoid on $X$)
    • Unit: $\eta_X(x) = [x]$ (singleton list)
    • Multiplication: $\mu_X(xss) = \text{concat}(xss)$ (list concatenation)

Monad laws and consistency

  • Left identity: $\mu \circ (T\eta) = 1_T$ composing unit and multiplication from left is identity
  • Right identity: $\mu \circ (\eta T) = 1_T$ composing unit and multiplication from right is identity
  • Associativity: $\mu \circ (T\mu) = \mu \circ (\mu T)$ order of composing multiplications doesn't matter
  • Laws ensure monadic operations are consistent, well-behaved, and composable in a predictable way

Monads for contextual computations

  • Model computations with side effects (state changes, I/O, exceptions) or context (environment, config, logging)
  • Maybe monad for computations that may fail or produce no result ($\text{Just } 42$ or $\text{Nothing}$)
  • List monad for non-deterministic computations or multiple results ($[1, 2, 3]$ represents choosing 1, 2, or 3)
  • State monad for computations that modify a shared state ($S \to (A, S)$ maps state to value and new state)
  • I/O monad for computations that interact with the outside world (reading/writing files)