Haskell Monad confunda operador de ligação

Ok, então eu não sou um programador Haskell, mas estou absolutamente intrigado com muitas das idéias por trás de Haskell e estou tentando aprender isso. Mas estou preso na estaca zero: parece que não consigo envolver minha cabeça nas mônadas, o que parece ser bastante fundamental. Eu sei que há um milhão de perguntas sobre o SO pedindo para explicar as Mônadas, por isso vou ser um pouco mais específico sobre o que está me incomodando:

Li este excelente artigo uma introdução em Javascript), e pensei que entendia o Mônadas completamente. Então li a entrada da Wikipedia no Monads e vi o seguinte:

Uma operação de ligação do tipo polimórfico (M t) → (t → M u) → (M u), que Haskell representa pelo operador infix >> =. Seu primeiro argumento é um valor em um tipo monádico, seu segundo argumento é uma função que mapeia do tipo subjacente do primeiro argumento para outro tipo monádico e seu resultado é nesse outro tipo monádic

Ok, no artigo que citei, bind foi uma função que levouapenas u argumento. Wikipedia diz dois. O que eupensament Eu entendi sobre Monads foi o seguinte:

objetivo do @A Monad é assumir uma função com diferentes tipos de entrada e saída e torná-la composível. Isso é feito envolvendo os tipos de entrada e saída com um único tipo monádic @A Monad consiste em duas funções inter-relacionadas: bind e unit. A ligação pega uma função não composível f e retorna uma nova função g que aceita o tipo monádico como entrada e retorna o tipo monádico. g é compostável. A função unit usa um argumento do tipo que f esperava e o agrupa no tipo monádico. Isso pode ser passado para g ou para qualquer composição de funções como g.

Mas deve haver algo errado, porque meu conceito de ligação requer um argumento: uma função. Mas (de acordo com a Wikipedia), a ligação de Haskell realmente levadoi argumentos! Onde está meu erro?

questionAnswers(3)

yourAnswerToTheQuestion