@@ -23,7 +23,7 @@ module Data.Generics.Internal.VL.Prism where
2323import Data.Functor.Identity (Identity(..))
2424import Data.Profunctor (Choice(..), Profunctor(..))
2525import Data.Coerce
26−import Data.Generics.Internal.Profunctor.Prism (Market (..), plus, idPrism, prismPRavel)
26+import Data.Generics.Internal.Profunctor.Prism (Market (..), plus, idPrism)
2727import Data.Tagged
2828import Data.Profunctor.Unsafe ((#.), (.#))
2929import Data.Monoid (First (..))
@@ -45,6 +45,9 @@ s ^? l = getFirst (fmof l (First #. Just) s)
4545match :: Prism s t a b -> s -> Either t a
4646match k = withPrism k $ \_ _match -> _match
4747
48+(#) :: (Tagged b (Identity b) -> Tagged t (Identity t)) -> b -> t
49+(#) = build
50+
4851prism :: (b -> t) -> (s -> Either t a) -> Prism s t a b
4952prism bt seta eta = dimap (\x -> plus pure id (seta x)) (either id (\x -> fmap bt x)) (right' eta)
5053{-# INLINE prism #-}