I was rereading the Typeclassopedia (https://wiki.haskell.org/Typeclassopedia) and in the section of applicative functor I came accross the link to classic paper of McBride and Paterson: http://www.staff.city.ac.uk/~ross/papers/Applicative.pdf (longer version http://strictlypositive.org/Idiom.pdf).
As a practical programmer reading a paper is not enough, to really grog the stuff I'm reading I must get my hands dirty with some real code.