je tente d'écrire un opérateur de comparaison plus-que-égal pour deux lens getters avec le typegetter de lentille Haskell qui compare les valeurs de deux lentilles getters
(.>=.) :: Ord a => Getting a s a -> Getting a s a -> Getting Bool s Bool
J'ai une solution de travail pour un getter sur le côté gauche et une valeur sur le côté droit (pas .
sur le côté droit de l'opérateur .>=
)
J'ai essayé
left .>=. right = (>=) <$> use left <*> use right
mais il a le type
(.>=.) :: (Ord a, MonadState s f) => Getting a s a -> Getting a s a -> f Bool
Comment puis-je obtenir le type de rendement souhaité Getting Bool s Bool
au lieu de f Bool
?