There are a lot of functional idioms: monads, applicatives, arrows, etc. They are documented in different articles but unfortunately I don't know any book or article where they're summarized in one place (there is Typeclassopedia but it has a lot of areas that aren't covered well). Can anyone recommend an article/book which covers them well in one place and which can be accessible to a programmer with intermediate skills in FP?
My suggestion is, if you want to learn Scala, to read the book from Paul Chiusano and Runar Bjarnason:
Part II: Functional design and combinator libraries
Part III: Functional design patterns
Part IV: Breaking the rules: effects and I/O