Thank you. That’s a great question. I did give a keynote at an international conference on functional programming for this particular question, and that’s entire keynote. I’ll try to condense my answer, but the full program is online, Creative Commons.