Есть ли класс с функцией `(ma -> n b) -> t ma -> t n b`

Вот класс, я звоню BlahMap:

class BlahMap t where blahMap :: (m a -> n b) -> t m a -> t n b 

Это экземпляр BlahMap:

instance BlahMap (ReaderT r) where blahMap f = ReaderT . fmap f . runReaderT 

Существует 9X_haskell ли класс в экосистеме Haskell, который делает 9X_haskell это? Или, в качестве альтернативы, я могу 9X_haskell просто написать функцию blahMap с соответствующими 9X_haskell ограничениями с существующими классами, скажем, mtl или 9X_monad-transformers что-то подобное? Или я действительно придумал 9X_monad-transformers что-то новое?

11
0
1
Общее количество ответов: 1

Ответ #1

Ответ на вопрос: Есть ли класс с функцией `(ma -> n b) -> t ma -> t n b`

Функция hoist из класса MFunctor пакета mmorph является ответом 9X_haskell на мой собственный вопрос.

12
0