Well done. I appreciate how you step us through them. I’m just starting to grasp concepts such as currying and compose, so this was written just at the right level for me to understand. I’ve never heard of lenses, so that’s new. And to be honest, the concept and explanation above was lost on me. Your example seemed contrived to me, but it’s more likely that I’m must not getting it.
I think it would also be interesting to have started off with a traditional example using class/createClass then compare/contrast the trade-offs so that one could better understand what one gains by taking this approach. I know you did a little of that, which is awesome. I really appreciate seeing how the same thing can be refactored many different ways.
Anyways, thanks! Your grammar was great btw.