on master help sign in
added documentation on reviewEncoders contravariance
commitbb78283781ae90d6466faeac2de3895ff6bbadad authorElaine Cardenas <elaine.cardenas@obsidian.systems> dateTue 28 Apr 2020, 15:11 (6 years ago) parente553d79
1 file changed+2
lib/route/src/Obelisk/Route.hs+2
lib/route/src/Obelisk/Route.hs+2
@@ -826,11 +826,13 @@ _R variant = dSumGEqPrism variant . iso runIdentity Identity
826826{-# DEPRECATED prismEncoder "Use reviewEncoder instead" #-}
827827-- | An encoder that only works on the items available via the prism. An error will be thrown in the parse monad
828828-- if the prism doesn't match.
829+-- This encoder is contravariant like 'review': prismEncoder (f . g) = prismEncoder g . prismEncoder
829830prismEncoder :: (Applicative check, MonadError Text parse) => Prism' b a -> Encoder check parse a b
830831prismEncoder = reviewEncoder
831832
832833-- | An encoder that only works on the items available via the prism. An error will be thrown in the parse monad
833834-- if the prism doesn't match.
835+-- This encoder is contravariant like 'review': prismEncoder (f . g) = prismEncoder g . prismEncoder
834836reviewEncoder :: (Applicative check, MonadError Text parse) => Prism' b a -> Encoder check parse a b
835837reviewEncoder p = unsafeMkEncoder $ EncoderImpl
836838 { _encoderImpl_encode= view (re p)