Double Cone Design - A highly effective approach for designing functional programs
I found this post on /r/functionalprogramming and I wondered what your thoughts were. I have to say I don’t understand it all on the first read, but this bit I thought was especially interesting and requires some more reading from my side:
When connecting the two worlds, I use very special techniques like message queuing and mutation-caching (EG - Prime.KeyedCache and Prime.MutantCache) to encapsulate highly-efficient mutable abstractions below the highly-programmable immutable APIs.
I like the idea of moving the Purity-Efficiency plane back and forth depending on your application. As functional programmers, we definitely need to be aware of how we separate the pure and impure functions. The Data Abstraction-Symbolics cones are not immediately obvious to me…