In my latest attempt to understand what a monad is and why it's useful, I've come much further than previous attempts by doing one thing–putting aside the math.

That's right–for the first time, I resisted the urge to start reading about category theory halfway through reading about monads.

Instead, I forced myself to stare at the function signatures of Haskell's Functor, Applicative and Monad and think in terms of "wrapping" and "unwrapping" boxes. In other words, I actually tried to be a programmer for once1.

Given the progress I've made this time around, I think I'll do this more in the future.

Be a programmer. Be dumb. The math can wait.

Footnotes:

1

And now I feel terribly dirty and in need of a hot shower.