Safe Haskell | None |
---|---|
Language | Haskell2010 |
Optics.View
Description
EXPERIMENTAL
Synopsis
- class ViewableOptic k r where
- type ViewResult k r
- gview :: forall s m (is :: IxList). MonadReader s m => Optic' k is s r -> m (ViewResult k r)
- gviews :: forall s m (is :: IxList) a. MonadReader s m => Optic' k is s a -> (a -> r) -> m (ViewResult k r)
- guse :: forall k a s m (is :: IxList). (ViewableOptic k a, MonadState s m) => Optic' k is s a -> m (ViewResult k a)
- guses :: forall k r s m (is :: IxList) a. (ViewableOptic k r, MonadState s m) => Optic' k is s a -> (a -> r) -> m (ViewResult k r)
- glistening :: forall k r s m (is :: IxList) a. (ViewableOptic k r, MonadWriter s m) => Optic' k is s r -> m a -> m (a, ViewResult k r)
- glistenings :: forall k r s m (is :: IxList) a b. (ViewableOptic k r, MonadWriter s m) => Optic' k is s a -> (a -> r) -> m b -> m (b, ViewResult k r)
Documentation
class ViewableOptic k r where Source #
Generalized view (even more powerful than view
from the lens library).
View the value(s) pointed to by an optic.
The type of the result depends on the optic. You get:
- Exactly one result
a
withIso
,Lens
,ReversedPrism
andGetter
. - At most one result
Maybe a
withPrism
,AffineTraversal
andAffineFold
. - Monoidal summary of all results
Monoid a => a
withTraversal
andFold
.
When in doubt, use specific, flavour restricted versions. This function is
mostly useful for things such as passthrough
.
Associated Types
type ViewResult k r Source #
Methods
gview :: forall s m (is :: IxList). MonadReader s m => Optic' k is s r -> m (ViewResult k r) Source #
gviews :: forall s m (is :: IxList) a. MonadReader s m => Optic' k is s a -> (a -> r) -> m (ViewResult k r) Source #
Instances
guse :: forall k a s m (is :: IxList). (ViewableOptic k a, MonadState s m) => Optic' k is s a -> m (ViewResult k a) Source #
guses :: forall k r s m (is :: IxList) a. (ViewableOptic k r, MonadState s m) => Optic' k is s a -> (a -> r) -> m (ViewResult k r) Source #
glistening :: forall k r s m (is :: IxList) a. (ViewableOptic k r, MonadWriter s m) => Optic' k is s r -> m a -> m (a, ViewResult k r) Source #
glistenings :: forall k r s m (is :: IxList) a b. (ViewableOptic k r, MonadWriter s m) => Optic' k is s a -> (a -> r) -> m b -> m (b, ViewResult k r) Source #