Data.Lens.Types
- Package
- profunctor-lenses
- Repository
- purerl/purescript-profunctor-lenses
This module defines types for working with lenses.
#ATraversal' Source
type ATraversal' s a = ATraversal s s a a
#AffineTraversal Source
type AffineTraversal s t a b = forall p. Strong p => Choice p => Optic p s t a b
An affine traversal (has at most one focus, but is not a prism).
#AffineTraversal' Source
type AffineTraversal' s a = AffineTraversal s s a a
#AnAffineTraversal Source
type AnAffineTraversal s t a b = Optic (Stall a b) s t a b
#AnAffineTraversal' Source
type AnAffineTraversal' s a = AnAffineTraversal s s a a
#AnIndexedLens Source
type AnIndexedLens i s t a b = IndexedOptic (Shop (Tuple i a) b) i s t a b
#AnIndexedLens' Source
type AnIndexedLens' i s a = AnIndexedLens i s s a a
#IndexedFold Source
type IndexedFold r i s t a b = IndexedOptic (Forget r) i s t a b
An indexed fold.
#IndexedFold' Source
type IndexedFold' r i s a = IndexedFold r i s s a a
#IndexedGetter Source
type IndexedGetter i s t a b = IndexedFold a i s t a b
An indexed getter.
#IndexedGetter' Source
type IndexedGetter' i s a = IndexedGetter i s s a a
#IndexedLens Source
type IndexedLens i s t a b = forall p. Strong p => IndexedOptic p i s t a b
An indexed lens.
#IndexedLens' Source
type IndexedLens' i s a = IndexedLens i s s a a
#IndexedOptic' Source
type IndexedOptic' :: (Type -> Type -> Type) -> Type -> Type -> Type -> Type
type IndexedOptic' p i s a = IndexedOptic p i s s a a
#IndexedSetter Source
type IndexedSetter i s t a b = IndexedOptic Function i s t a b
An indexed setter.
#IndexedSetter' Source
type IndexedSetter' i s a = IndexedSetter i s s a a
#IndexedTraversal Source
type IndexedTraversal i s t a b = forall p. Wander p => IndexedOptic p i s t a b
An indexed traversal.
#IndexedTraversal' Source
type IndexedTraversal' i s a = IndexedTraversal i s s a a
#Iso Source
type Iso s t a b = forall p. Profunctor p => Optic p s t a b
A generalized isomorphism.
#Lens Source
type Lens s t a b = forall p. Strong p => Optic p s t a b
Given a type whose "focus element" always exists, a lens provides a convenient way to view, set, and transform that element.
For example, _2
is a tuple-specific Lens
available from Data.Lens
, so:
over _2 String.length $ Tuple "ignore" "four" == Tuple "ignore" 4
Note the result has a different type than the original tuple.
That is, the four Lens
type variables have been narrowed to:
s
isTuple String String
t
isTuple String Int
a
isString
b
isInt
See Data.Lens.Getter
and Data.Lens.Setter
for functions and operators
frequently used with lenses.
#Lens' Source
type Lens' s a = Lens s s a a
Lens'
is a specialization of Lens
. An optic of type Lens'
can change only the value of its focus,
not its type. As an example, consider the Lens
_2
, which has this type:
_2 :: forall s t a b. Lens (Tuple s a) (Tuple t b) a b
_2
can produce a Tuple Int String
from a Tuple Int Int
:
set _2 "NEW" (Tuple 1 2) == (Tuple 1 "NEW")
If we specialize _2
's type with Lens'
, the following will not
type check:
set (_2 :: Lens' (Tuple Int Int) Int) "NEW" (Tuple 1 2)
^^^^^^^^^^^^^^^^^^^^^^^^^
See Data.Lens.Getter
and Data.Lens.Setter
for functions and operators
frequently used with lenses.
#Traversal' Source
type Traversal' s a = Traversal s s a a
Re-exports from Data.Lens.Internal.Exchange
Re-exports from Data.Lens.Internal.Forget
#Forget Source
Re-exports from Data.Lens.Internal.Grating
Re-exports from Data.Lens.Internal.Indexed
#Indexed Source
Re-exports from Data.Lens.Internal.Market
Re-exports from Data.Lens.Internal.Re
#Re Source
Re-exports from Data.Lens.Internal.Shop
Re-exports from Data.Lens.Internal.Stall
Re-exports from Data.Lens.Internal.Tagged
#Tagged Source
Re-exports from Data.Lens.Internal.Wander
#Wander Source
class Wander :: (Type -> Type -> Type) -> Constraint
class (Strong p, Choice p) <= Wander p where
Class for profunctors that support polymorphic traversals.
Members
wander :: forall s t a b. (forall f. Applicative f => (a -> f b) -> s -> f t) -> p a b -> p s t
Instances
Wander Function
(Applicative f) => Wander (Star f)
- Modules
- Data.
Lens - Data.
Lens. AffineTraversal - Data.
Lens. At - Data.
Lens. Common - Data.
Lens. Fold - Data.
Lens. Fold. Partial - Data.
Lens. Getter - Data.
Lens. Grate - Data.
Lens. Index - Data.
Lens. Indexed - Data.
Lens. Internal. Bazaar - Data.
Lens. Internal. Exchange - Data.
Lens. Internal. Focusing - Data.
Lens. Internal. Forget - Data.
Lens. Internal. Grating - Data.
Lens. Internal. Indexed - Data.
Lens. Internal. Market - Data.
Lens. Internal. Re - Data.
Lens. Internal. Shop - Data.
Lens. Internal. Stall - Data.
Lens. Internal. Tagged - Data.
Lens. Internal. Wander - Data.
Lens. Internal. Zipping - Data.
Lens. Iso - Data.
Lens. Iso. Newtype - Data.
Lens. Lens - Data.
Lens. Lens. Product - Data.
Lens. Lens. Tuple - Data.
Lens. Lens. Unit - Data.
Lens. Lens. Void - Data.
Lens. Prism - Data.
Lens. Prism. Coproduct - Data.
Lens. Prism. Either - Data.
Lens. Prism. Maybe - Data.
Lens. Record - Data.
Lens. Setter - Data.
Lens. Traversal - Data.
Lens. Types - Data.
Lens. Zoom