Складная, моноидная и монадная

Рассмотрим следующую подписьfoldMap

foldMap :: (Foldable t, Monoid m) => (a -> m) -> t a -> m

Это очень похоже на «связывание», только с замененными аргументами:

(>>=) :: Monad m => m a -> (a -> m b) -> m b

Поэтому мне кажется, что между какими-тоFoldable, Monoid а такжеMonad, но я не могу найти его в суперклассах. Предположительно я могу преобразовать один или два из них в другой, но я не уверен, как.

Могут ли эти отношения быть подробными?

Ответы на вопрос(3)

Ваш ответ на вопрос