ghci> :t (>>=)
(>>=) :: Monad m => m a -> (a -> m b) -> m b
Как наступит второй аргумент (A -> Mb)
вместо (MA -> MB)
или даже (A -> б)
? Что это в концептуально о монаде, которые требуют этой подписи? Это имеет смысл иметь классы типа с альтернативными подписями t a -> (t a -> t b) -> t b
t a -> (a -> b) -> t b
?