I'm broadly familiar with the concepts of monads and arrows as used in functional programming. I also understand that they can be used to solve similar kinds of problems.
However, I'm still a bit confused about how to select which one to use in any given situation.
When should I use monads and when should I use arrows?