Skip to main content

Recent

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.

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.

Coverage checkers

·2406 words·12 mins
This post introduces pattern‐match coverage checking in Vig, showing how Luc Maranget’s constructor‑matrix algorithm can be implemented in Rust to detect unreachable arms and guarantee exhaustiveness at compile time without any runtime cost.