Fri Jul 22 11:14:12 CEST 2011

Getting used to Monads

I (re-)derived my first Monad implementation, peeking left and right
but luckily making some mistakes in the process.

It's hard to say what actually clicked in my mind, but it seems that
exposing what `bind' and `return' actually do in some situations
clears up a lot of magic dust.

The real problem is that, for a "low-level" programmer like me, the
Monad is too abstract to start with initially.  The consequences of
this high level abstract construct are vast and profound and make room
for understanding that is hard to find in an impure language.  But
still, all that space it covers needs to somehow be part of your
mental framework to make sense of the usefulness.  In short: this
knowledge is hard to bootstrap.