You have read five blog posts about monads. Each one started with category theory, mentioned burritos, and left you more confused than before. Let's skip all of that.

Here is the short version: a monad is a container that supports three operations. You already use two monads every day in TypeScript — Promise and Array. Once you see the pattern, every monad in @oofp/core will feel familiar.

The Three Operations

Every monad has three things:

of(a) — Put a value into the container.