Thank you for sharing. The idea is elegant. But the brain torture to go from classic to functional is too painful for me to ever have done it, when the classic approach works for 99% of my use cases. I can understand the reasoning for it though, if you work as a professional programmer with bigger codebases.
My simple stuff rarely exceeds a few 1000 lines.