An excellent article, well worth the read. I would make one comment:
In Haskell, when you see a single equals sign it means that
the left-hand and right-hand side are substitutable for each
other both ways. For example, if you see:
x = 5
That means that wherever you see an x in your program, you
can substitute it with a 5, and, vice versa, anywhere you
see a 5 in your program you can substitute it with an x.
This is missing a key term: "in scope."Apart from that, I'm going to re-read this several times. Thank you.