Salut,
Je suis en train d'écrire une librairie d'arrow transformers qui porte pour l'instant majoritairement des monades de mtl en arrows.
Pour donner un exemple: la monade StateT
de mtl
1 | newtype StateT s m a = StateT { runStateT :: s -> m (a, s) } |
… devient dans ma librairie une arrow:
1 | newtype StateTA s a b c = StateTA { runStateTA :: a (b, s) (c, s) } |
Donc pour la plupart des monades je n'ai pas eu de mal, mais maintenant je voudrais essayer de porter des comonades du package comonad en arrow.
J'ai vraiment du mal à transformer par exemple la définition de StoreT
en arrow.
J'ai demandé sur freenode #haskell ce qu'ils en pensaient, mais j'ai pas eu de réponse, si ce n'est , d'utiliser une arrow Cokleisli sur StoreT mais pour cela il me faudrait déjà un équivalent en arrow de ComonadStore
, mais là aussi je bloque, surtout pour seek
.
Vous avez une idée ?
Merci d'avance,
felko
+1
-0