

Recent
Why N matters
·1155 words·6 mins
Why a naive Vec is faster than a HashMap for small N, and a mathematical look at why Insertion Sort beats Quicksort in the real world.
Structure as Control Flow
·2501 words·12 mins
Foldable answers what a structure means when combined; Traversable answers what happens when effects run across it. Together they show how structure, effects, and abstraction interact.
Combination before Identity
·1599 words·8 mins
This post introduces the fundamental algebraic structures of Semigroups and Monoids, demonstrating how the simple power of associative combination enables complex patterns like Applicative error accumulation and foldMap while emphasizing the importance of only ’earning’ an identity element when it truly exists in the domain.
You don't need a Monad (yet)
·2412 words·12 mins
This post explores the hierarchy of functional abstractions by reframing Functors, Applicatives, and Monads as a ladder of expressive power, moving from simple context-aware mapping to independent effect composition and eventually the sequential dependency of the Monad.
Stop fearing the Monad
·4112 words·20 mins
This post demystifies Haskell monads by reframing them as a familiar design pattern for managing context, transitioning from practical code examples in multiple languages to the underlying category theory of monoids over endofunctors.