The Expression Problem and its solutions
The craft of programming is almost universally concerned with different types of
data and operations/algorithms that act on this data [1]. Therefore, it's
hardly surprising that designing abstractions for data types and operations has
been on the mind of software engineers and programming-language designers
since... forever.
Yet I've only recently encountered a name for a software design problem which I
ran into multiple times in my career. It's a problem so fundamental that I was
quite surprise...
Read more at eli.thegreenplace.net