@@ -59,7 +59,7 @@ module Obelisk.Route
5959 , justEncoder
6060 , nothingEncoder
6161 , isoEncoder
62− , isoDecoder
62+ , viewEncoder
6363 , wrappedEncoder
6464 , unwrappedEncoder
6565 , listToNonEmptyEncoder
@@ -68,7 +68,7 @@ module Obelisk.Route
6868 , toListMapEncoder
6969 , shadowEncoder
7070 , prismEncoder
71− , prismDecoder
71+ , reviewEncoder
7272 , rPrism
7373 , _R
7474 , obeliskRouteEncoder
@@ -333,7 +333,7 @@ instance Monad parse => Bifunctor (,) (EncoderImpl parse) (EncoderImpl parse) (E
333333 }
334334
335335instance (Monad parse, Applicative check) => Braided (Encoder check parse) (,) where
336− braid = isoDecoder (iso swap swap)
336+ braid = viewEncoder (iso swap swap)
337337
338338
339339instance (Applicative check, Monad parse) => PFunctor (,) (Encoder check parse) (Encoder check parse) where
@@ -369,11 +369,11 @@ instance (Monad parse, Applicative check) => Bifunctor Either (Encoder check par
369369 bimap f g = Encoder $ liftA2 bimap (unEncoder f) (unEncoder g)
370370
371371instance (Applicative check, Monad parse) => Associative (Encoder check parse) Either where
372− associate = isoDecoder (iso (associate @(->) @Either) disassociate)
373− disassociate = isoDecoder (iso disassociate associate)
372+ associate = viewEncoder (iso disassociate (associate @(->) @Either))
373+ disassociate = viewEncoder (iso associate disassociate)
374374
375375instance (Monad parse, Applicative check) => Braided (Encoder check parse) Either where
376− braid = isoDecoder (iso swap swap)
376+ braid = viewEncoder (iso swap swap)
377377
378378
379379
@@ -426,26 +426,23 @@ instance (Applicative check, Monad parse) => Monoidal (Encoder check parse) (,)
426426-- Specific instances of encoders
427427--------------------------------------------------------------------------------
428428
429−{-# DEPRECATED isoEncoder "Use isoDecoder" #-}
429+{-# DEPRECATED isoEncoder "Use viewEncoder instead" #-}
430430-- | Given a valid 'Iso' from lens, construct an 'Encoder'
431431isoEncoder :: (Applicative check, Applicative parse) => Iso' a b -> Encoder check parse a b
432−isoEncoder f = unsafeMkEncoder $ EncoderImpl
433− { _encoderImpl_encode = view f
434− , _encoderImpl_decode = pure . view (from f)
435− }
432+isoEncoder p = viewEncoder (from p)
436433
437434-- | Given a valid 'Iso' from lens, construct an 'Encoder'
438−isoDecoder :: (Applicative check, Applicative parse) => Iso' a b -> Encoder check parse a b
439−isoDecoder f = unsafeMkEncoder $ EncoderImpl
440− { _encoderImpl_encode = view f
441− , _encoderImpl_decode = pure . view (from f)
435+viewEncoder :: (Applicative check, Applicative parse) => Iso' a b -> Encoder check parse b a
436+viewEncoder f = unsafeMkEncoder $ EncoderImpl
437+ { _encoderImpl_encode = view (from f)
438+ , _encoderImpl_decode = pure . view f
442439 }
443440
444441wrappedEncoder :: (Wrapped a, Applicative check, Applicative parse) => Encoder check parse (Unwrapped a) a
445−wrappedEncoder = isoDecoder $ from _Wrapped'
442+wrappedEncoder = viewEncoder _Wrapped'
446443
447444unwrappedEncoder :: (Wrapped a, Applicative check, Applicative parse) => Encoder check parse a (Unwrapped a)
448−unwrappedEncoder = isoDecoder _Wrapped'
445+unwrappedEncoder = viewEncoder $ from _Wrapped'
449446
450447maybeToEitherEncoder :: (Applicative check, Applicative parse) => Encoder check parse (Maybe a) (Either () a)
451448maybeToEitherEncoder = unsafeMkEncoder $ EncoderImpl
@@ -470,11 +467,11 @@ maybeEncoder f g = shadowEncoder f g . maybeToEitherEncoder
470467
471468-- | Encode a value by simply applying 'Just'
472469justEncoder :: (Applicative check, MonadError Text parse) => Encoder check parse a (Maybe a)
473−justEncoder = prismDecoder _Just
470+justEncoder = reviewEncoder _Just
474471
475472-- | Encode () to 'Nothing'.
476473nothingEncoder :: (Applicative check, MonadError Text parse) => Encoder check parse () (Maybe a)
477−nothingEncoder = prismDecoder _Nothing
474+nothingEncoder = reviewEncoder _Nothing
478475
479476someConstEncoder :: (Applicative check, Applicative parse) => Encoder check parse (Some (Const a)) a
480477someConstEncoder = unsafeMkEncoder $ EncoderImpl
@@ -826,25 +823,20 @@ _R
826823 -> Prism' (R f) a
827824_R variant = dSumGEqPrism variant . iso runIdentity Identity
828825
829−{-# DEPRECATED prismEncoder "Use prismDecoder" #-}
826+{-# DEPRECATED prismEncoder "Use reviewEncoder instead" #-}
830827-- | An encoder that only works on the items available via the prism. An error will be thrown in the parse monad
831828-- if the prism doesn't match.
832829prismEncoder :: (Applicative check, MonadError Text parse) => Prism' b a -> Encoder check parse a b
833−prismEncoder p = unsafeMkEncoder $ EncoderImpl
834− { _encoderImpl_encode = (^. re p)
835− , _encoderImpl_decode = \r -> case r ^? p of
836− Just a -> pure a
837− Nothing -> throwError "prismEncoder: value is not present in the prism"
838− }
830+prismEncoder = reviewEncoder
839831
840832-- | An encoder that only works on the items available via the prism. An error will be thrown in the parse monad
841833-- if the prism doesn't match.
842−prismDecoder :: (Applicative check, MonadError Text parse) => Prism' b a -> Encoder check parse a b
843−prismDecoder p = unsafeMkEncoder $ EncoderImpl
834+reviewEncoder :: (Applicative check, MonadError Text parse) => Prism' b a -> Encoder check parse a b
835+reviewEncoder p = unsafeMkEncoder $ EncoderImpl
844836 { _encoderImpl_encode= view (re p)
845837 , _encoderImpl_decode = \r -> case r ^? p of
846838 Just a -> pure a
847− Nothing -> throwError "prismDecoder: value is not present in the prism"
839+ Nothing -> throwError "reviewEncoder: value is not present in the prism"
848840 }
849841
850842-- | A URL path and query string, in which trailing slashes don't matter in the path
@@ -1083,11 +1075,11 @@ readShowEncoder :: (MonadError Text parse, Read a, Show a, Applicative check) =>
10831075readShowEncoder = singlePathSegmentEncoder . unsafeTshowEncoder
10841076
10851077integralEncoder :: (MonadError Text parse, Applicative check, Integral a) => Encoder check parse a Integer
1086−integralEncoder = prismDecoder (Numeric.Lens.integral)
1078+integralEncoder = reviewEncoder (Numeric.Lens.integral)
10871079
10881080pathSegmentEncoder :: (MonadError Text parse, Applicative check, Cons as as a a) =>
10891081 Encoder check parse (a, (as, b)) (as, b)
1090−pathSegmentEncoder = first (prismDecoder _Cons) . disassociate
1082+pathSegmentEncoder = first (reviewEncoder _Cons) . disassociate
10911083
10921084newtype Decoder check parse b a = Decoder { toEncoder :: Encoder check parse a b }
10931085