Skip to content

Comment on Tackling the Awkward Squad: Interaction with the world in Haskell (2010) [pdf]

Comments

skskOP

I have been reading Haskell, The Craft of Functional Programming. I have played around with Haskell for a bit now and going from understanding Monad laws to using them in real life has been a challenge. Often real world library Monads are stacked multiple levels and debugging has been particularly difficult.

Since the Monads chapter in the book was pretty light, I thought I will check out this paper that was referenced. Re-learning the Monad laws from this paper inspired me to look at the implementation details of some basic transformers, which has been very helpful. That said, the paper quickly went over my head after he started discussing denotational semantics!

I sometimes feel learning Haskell is like learning algebra but just that the laws are not obvious to me. I wish there are more materials that walk you through more complex implementation (like 3-level stacked Monads) step by step on how certain things work. I guess once you understand how something works, it is hard to explain to a beginner who doesn't have much of an understanding -- much like riding a bike or swimming.

Personally, I've found monad transformer stacks are more trouble than they're worth. They're interesting, and probably worth understanding, but in practice I rarely use much beyond a single ReaderT or StateT.

AboutSource Built by g1lg1l

Hackerly is an independent reader for Hacker News, built on the public HN API. Not affiliated with Y Combinator.