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 ?