when to use CPS vs codensity vs reflection without remorse in Haskell

This problem can be broken into two pieces, how you represent the data type and how you compose them together. Data types The styles you listed use only 2 styles of data types, the “normal” style and the continuation passing style. They differ in which objects are chosen as the primitives of the language. In … Read more

When would I want to use a Free Monad + Interpreter pattern?

As mentioned in the comments, it is frequently desirable to have some abstraction between code and database implementation. You can get much of the same abstraction as a free monad by defining a class for your DB Monad (I’ve taken a couple liberties here): class (Monad m) => MonadImageDB m where indexImage :: (ImageId, UTCTime) … Read more

tech