что это за уравнение с лямбда-обозначением «m >> n = m >> = \ _ -> n» в объявлении монады?

class Monad m where
  return :: a -> m a
  (>>=)  :: m a -> (a -> m b) -> m b
  (>>)   :: m a -> m b -> m b
  m >> n = m >>= \_ -> n

  fail   :: String -> m a

Я никогда раньше не видел уравнения (или объявления функции?) В классе типов. Почему в классе типов есть уравнение?

Я знаю, что _ - это термин для сопоставления чего-либо. но какое соответствие m >> = \ _ -> n ?

13
задан snow 31 December 2011 в 19:50
поделиться