Чтение через какой-то код, который я иногда попадаются классов типов, которые с приставкой Monad
, примеры из них MonadState
, MonadIO
, MonadReader
и т.д.Почему некоторые стили с префиксом «Monad»?
Что именно цель этого?
Принимая MonadState
в качестве примера, я знаю, что
State
позволяет без гражданства состояниеStateT
позволяет использовать другие монады, какIO
к "объединить" функциональность как
Но MonadState
позволяет точно?
Мне не нужна другая группа одинаково названных типов/классных классов, может кто-нибудь объяснить?
Я думаю, что это скорее вопрос о дизайне [MTL] (https://hackage.haskell.org/package/mtl) (правильно?) - почему соглашения об именовании том, что путь кажется немного упрямым для меня ... – Carsten
да, вы правы –
Потому что они подклассы монад! 'class (Monad m) => MonadXYZ m где ...' – AJFarmar