Safe Haskell | None |
---|---|
Language | Haskell2010 |
Synopsis
- type View s a = forall p. (Strong p, forall x. Contravariant (p x)) => Optic' p s a
- type Ixview i s a = forall p. (Strong p, forall x. Contravariant (p x)) => IndexedOptic' p i s a
- type PrimView s t a b = forall p. (Profunctor p, forall x. Contravariant (p x)) => Optic p s t a b
- type Review t b = forall p. (Closed p, Bifunctor p) => Optic' p t b
- type Cxview k t b = forall p. (Closed p, Bifunctor p) => CoindexedOptic' p k t b
- type PrimReview s t a b = forall p. (Profunctor p, Bifunctor p) => Optic p s t a b
- to :: (s -> a) -> PrimView s t a b
- ito :: (s -> (i, a)) -> Ixview i s a
- from :: (b -> t) -> PrimReview s t a b
- kfrom :: ((k -> b) -> t) -> Cxview k t b
- cloneView :: AView s a -> PrimView s s a a
- cloneReview :: AReview t b -> PrimReview t t b b
- like :: a -> PrimView s t a b
- ilike :: i -> a -> Ixview i s a
- relike :: t -> PrimReview s t a b
- klike :: t -> Cxview k t b
- toProduct :: AView s a1 -> AView s a2 -> PrimView s t (a1, a2) b
- fromSum :: AReview t b1 -> AReview t b2 -> PrimReview s t a (b1 + b2)
- withPrimView :: APrimView r s t a b -> (a -> r) -> s -> r
- withPrimReview :: APrimReview s t a b -> (t -> r) -> b -> r
- (^.) :: s -> AView s a -> a
- (^%) :: (Additive - Monoid) i => s -> AIxview i s a -> (Maybe i, a)
- view :: MonadReader s m => AView s a -> m a
- iview :: MonadReader s m => (Additive - Monoid) i => AIxview i s a -> m (Maybe i, a)
- views :: MonadReader s m => Optic' (Star (Const r)) s a -> (a -> r) -> m r
- iviews :: MonadReader s m => (Additive - Monoid) i => IndexedOptic' (Star (Const r)) i s a -> (i -> a -> r) -> m r
- use :: MonadState s m => AView s a -> m a
- iuse :: MonadState s m => (Additive - Monoid) i => AIxview i s a -> m (Maybe i, a)
- uses :: MonadState s m => Optic' (Star (Const r)) s a -> (a -> r) -> m r
- iuses :: MonadState s m => (Additive - Monoid) i => IndexedOptic' (Star (Const r)) i s a -> (i -> a -> r) -> m r
- (#^) :: AReview t b -> b -> t
- review :: MonadReader b m => AReview t b -> m t
- kview :: MonadReader b m => ACxview k t b -> m (k -> t)
- reviews :: MonadReader b m => AReview t b -> (t -> r) -> m r
- kviews :: MonadReader b m => ACxview k t b -> ((k -> t) -> r) -> m r
- reuse :: MonadState b m => AReview t b -> m t
- reuses :: MonadState b m => AReview t b -> (t -> r) -> m r
- kuse :: MonadState b m => ACxview k t b -> m (k -> t)
- kuses :: MonadState b m => ACxview k t b -> ((k -> t) -> r) -> m r
- throws :: MonadIO m => Exception e => AReview e b -> b -> m r
- throws_ :: MonadIO m => Exception e => AReview e () -> m r
- throwsTo :: MonadIO m => Exception e => ThreadId -> AReview e b -> b -> m ()
Types
type Ixview i s a = forall p. (Strong p, forall x. Contravariant (p x)) => IndexedOptic' p i s a Source #
type PrimView s t a b = forall p. (Profunctor p, forall x. Contravariant (p x)) => Optic p s t a b Source #
type PrimReview s t a b = forall p. (Profunctor p, Bifunctor p) => Optic p s t a b Source #
Constructors
from :: (b -> t) -> PrimReview s t a b Source #
cloneReview :: AReview t b -> PrimReview t t b b Source #
TODO: Document
Optics
relike :: t -> PrimReview s t a b Source #
Primitive operators
withPrimView :: APrimView r s t a b -> (a -> r) -> s -> r Source #
TODO: Document
withPrimReview :: APrimReview s t a b -> (t -> r) -> b -> r Source #
TODO: Document
Operators
(^.) :: s -> AView s a -> a infixl 8 Source #
View the focus of an optic.
Fixity and semantics are such that subsequent field accesses can be
performed with (.
).
>>>
("hello","world") ^. second'
"world"
>>>
5 ^. to succ
6
>>>
import Data.Complex
>>>
((0, 1 :+ 2), 3) ^. first' . second' . to magnitude
2.23606797749979
(^%) :: (Additive - Monoid) i => s -> AIxview i s a -> (Maybe i, a) infixl 8 Source #
View the focus of an indexed optic along with its index.
>>>
("foo", 42) ^% ifirst
(Just (),"foo")
view :: MonadReader s m => AView s a -> m a Source #
iview :: MonadReader s m => (Additive - Monoid) i => AIxview i s a -> m (Maybe i, a) Source #
A prefix alias for ^%
.
>>>
iview ifirst ("foo", 42)
(Just (),"foo")
iviews :: MonadReader s m => (Additive - Monoid) i => IndexedOptic' (Star (Const r)) i s a -> (i -> a -> r) -> m r Source #
use :: MonadState s m => AView s a -> m a Source #
TODO: Document
iuse :: MonadState s m => (Additive - Monoid) i => AIxview i s a -> m (Maybe i, a) Source #
Bring the index and value of an indexed optic into the current environment as a pair.
iuses :: MonadState s m => (Additive - Monoid) i => IndexedOptic' (Star (Const r)) i s a -> (i -> a -> r) -> m r Source #
Bring a function of the index and value of an indexed optic into the current environment.
review :: MonadReader b m => AReview t b -> m t Source #
kview :: MonadReader b m => ACxview k t b -> m (k -> t) Source #
Bring a function of the index of a co-indexed optic into the current environment.
reviews :: MonadReader b m => AReview t b -> (t -> r) -> m r Source #
kviews :: MonadReader b m => ACxview k t b -> ((k -> t) -> r) -> m r Source #
Bring a continuation of the index of a co-indexed optic into the current environment.
kviews :: ACxview k t b -> ((k -> t) -> r) -> b -> r
reuse :: MonadState b m => AReview t b -> m t Source #
reuses :: MonadState b m => AReview t b -> (t -> r) -> m r Source #
kuse :: MonadState b m => ACxview k t b -> m (k -> t) Source #
TODO: Document
kuses :: MonadState b m => ACxview k t b -> ((k -> t) -> r) -> m r Source #
TODO: Document