polysemy-optics-0.1.0.0: src/Optics/Polysemy/Reader.hs
module Optics.Polysemy.Reader
( gview
, gviews
) where
import Optics
( Optic'
, ViewResult
, ViewableOptic
)
import qualified Optics
import Polysemy
import Polysemy.Reader
import Polysemy.ConstraintAbsorber.MonadReader
gview :: (ViewableOptic k r, Member (Reader s) effs) => Optic' k is s r -> Sem effs (ViewResult k r)
gview o = absorbReader (Optics.gview o)
{-# INLINE gview #-}
gviews :: (ViewableOptic k r, Member (Reader s) effs) => Optic' k is s a -> (a -> r) -> Sem effs (ViewResult k r)
gviews o f = absorbReader (Optics.gviews o f)
{-# INLINE gviews #-}