I have been starting to use Scala over the last year. Initially I was drawn to the language purely by the functional programming experiences I had in Python: using map, filter, and list comprehensions. Scala promised similar tools, but with much better performance, and objects that just "feel" more robust than those in Python. In short, I began using it for very pragmatic reasons that had nothing to do with any underlying theory. However, over the last year, I have started to become more interested in the more theoretical aspects of functional programming, to the point where I'm now starting to reach out and trying to read blogs like the one above.
All of this reminds me of the kind of mind-bending experience I had when I first started to learn about C++ templates... they were a level of abstraction that I couldn't immediately translate to "mental bytecode", but that promised a massive amount of power and versatility. Admittedly, I was only about 13 when I started playing with C++ templates, but these new kinds of logic analyses are equally confusing now! It's all very interesting, even if it's not exactly approachable.