Есть ли класс с функцией `(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
L
LaVesta
1
Общее количество ответов: 1
Ответ #1
Ответ на вопрос: Есть ли класс с функцией `(ma -> n b) -> t ma -> t n b`
Функция hoist
из класса MFunctor
пакета mmorph
является ответом 9X_haskell на мой собственный вопрос.
12
B
Baflomet
-
3
-
41
-
2
-
22
-
6
-
3
-
7
-
1
-
2
-
6
-
4
-
7
-
1
-
2
-
4
-
3
-
2
-
12
-
3
-
5
-
15
-
2
-
8
-
4
-
2
-
3
-
5
-
3
-
10
-
6
-
2
-
5
-
5
-
10
-
2
-
4
-
8
-
10
-
2
-
4
-
8
-
24
-
5
-
4
-
8
-
3
-
15
-
2
-
6
-
4