Что означает канал в определении класса?
-
20-08-2019 - |
Вопрос
class (Monoid w, Monad m) => MonadWriter w m | m -> w where
pass :: m (a,w -> w) -> m a
listen :: m a -> m (a,w)
tell :: w -> m ()
В чем смысл приведенной выше трубы?Фрагмент взят из здесь.
Решение
На самом деле, это "функциональная зависимость".В данном случае это означает , что m
однозначно идентифицирует w
-- тип m
определяет тип w
. (Это может быть, это лучшая ссылка.)
Не связан с StackOverflow