On the Algebra of Types
March 2026 · Type Theory
Sum types and product types are not merely convenient syntax. They form an algebra -- a semiring, to be precise -- that mirrors the arithmetic we learned as children. Understanding this correspondence transforms how we model domains and reason about the cardinality of our data.
Monads Are Not Burritos
February 2026 · Fundamentals
Every monad tutorial fails for the same reason: it reaches for analogy before establishing the algebra. A monad is a monoid in the category of endofunctors. This is not obfuscation; it is the shortest path to genuine understanding. Let us walk it together, without metaphor.
Laziness as a Virtue
January 2026 · Evaluation
Non-strict evaluation is Haskell's most misunderstood feature and arguably its most powerful. By separating the description of a computation from its execution, laziness enables a style of programming where infinite data structures become practical tools and modular reasoning becomes natural.