Nathan Bedell
05/20/2024, 7:16 PMFlow.ap { aFlow + bFlow }
Would translate into something like:
aFlow.combine(bFlow) { a, b -> a + b }
Similarly, a syntax for arrows would be really nice as well.
This comes up surprisingly often with some DSLs I have at work. For instance, I have a little "progress task" DSL for functions that have a notion of "progress tracking" associated with them, but they are not monadic as each function has some metadata associated with it denoting the amount of "steps" it takes to complete a task.