Como usar (->) instâncias do Mônada e confusão sobre (->)

Em perguntas diferentes, encontrei dicas nos comentários sobre o uso do(->) instância de Mônadas, p. para obter um estilo sem pontos.

Quanto a mim, isso é um pouco abstrato demais. Ok, já vi instâncias de Arrow em(->) e me parece que(->) pode ser usado em notações de instância, mas não em declarações de tipo (isso seria o suficiente para outra pergunta

Tem exemplos de alguém usando(->) como instância da Mônada? Ou um bom link?

Desculpe se essa pergunta já pode ter sido discutida aqui, mas pesquisando"(->) Instância Monad " dá a você muitos hits como você pode imaginar ... já que quase todas as perguntas sobre Haskell em algum lugar envolvem(->) ou "Mônada".

questionAnswers(2)

yourAnswerToTheQuestion