An introduction to effectful functional programming — Algebraic structures are a cornerstone of typed functional programming, but they can be intimidating when first encountered. The most commonly mentioned ones, functors, applicatives, and monads, are often introduced with some combination of Haskell code, abstract math, or fuzzy analogies. This blog series is my attempt at introducing these concepts…