pointless-lenses-0.0.5: Pointless Lenses librarySource codeContentsIndex
Generics.Pointless.Lenses.Combinators
Portabilitynon-portable
Stabilityexperimental
Maintainerhpacheco@di.uminho.pt
Contents
Point-free lens combinators
Point-free isomorphism combinators
Description

Pointless Lenses: bidirectional lenses with point-free programming

This module lifts a standard set of point-free combinators into bidirectional lenses.

Synopsis
ap_lns :: Eq a => a -> Lens (a -> b, a) b
(?<) :: Eq a => Lens (a -> Bool, a) (Either a a)
rexp_lns :: Lens b c -> Lens (a -> b) (a -> c)
(.<) :: Lens b a -> Lens c b -> Lens c a
fst_lns :: b -> Lens (a, b) a
snd_lns :: a -> Lens (a, b) b
(><<) :: Lens c a -> Lens d b -> Lens (c, d) (a, b)
(.\/<) :: Lens a c -> Lens b c -> Lens (Either a b) c
(\/.<) :: Lens a c -> Lens b c -> Lens (Either a b) c
(-|-<) :: Lens c a -> Lens d b -> Lens (Either c d) (Either a b)
sum_lns :: ((a, d) -> c) -> ((b, c) -> d) -> Lens c a -> Lens d b -> Lens (Either c d) (Either a b)
(!<) :: c -> Lens c One
(!\/<) :: Eq a => a -> Lens b a -> c -> Lens (Either c b) a
(\/!<) :: Eq a => a -> Lens c a -> b -> Lens (Either c b) a
(#\/<) :: Lens b (Either a c) -> Lens (Either a b) (Either a c)
(\/$<) :: Lens a (Either c b) -> Lens (Either a b) (Either c b)
id_lns :: Lens c c
distp_lns :: Lens ((c, d), (a, b)) ((c, a), (d, b))
dists_lns :: Lens (Either a b, Either c d) (Either (Either (a, c) (a, d)) (Either (b, c) (b, d)))
swap_lns :: Lens (a, b) (b, a)
coswap_lns :: Lens (Either a b) (Either b a)
distl_lns :: Lens (Either a b, c) (Either (a, c) (b, c))
undistl_lns :: Lens (Either (a, c) (b, c)) (Either a b, c)
distr_lns :: Lens (c, Either a b) (Either (c, a) (c, b))
undistr_lns :: Lens (Either (c, a) (c, b)) (c, Either a b)
assocl_lns :: Lens (a, (b, c)) ((a, b), c)
assocr_lns :: Lens ((a, b), c) (a, (b, c))
coassocl_lns :: Lens (Either a (Either b c)) (Either (Either a b) c)
coassocr_lns :: Lens (Either (Either a b) c) (Either a (Either b c))
Point-free lens combinators
ap_lns :: Eq a => a -> Lens (a -> b, a) bSource
Function application is a lens.
(?<) :: Eq a => Lens (a -> Bool, a) (Either a a)Source
Predicate application is a lens.
rexp_lns :: Lens b c -> Lens (a -> b) (a -> c)Source
The right exponentiation combinator as a lens. Applies a lens to the domain of a function.
(.<) :: Lens b a -> Lens c b -> Lens c aSource
The lens composition operator.
fst_lns :: b -> Lens (a, b) aSource
The fst point-free combinator.
snd_lns :: a -> Lens (a, b) bSource
The snd point-free combinator.
(><<) :: Lens c a -> Lens d b -> Lens (c, d) (a, b)Source
The >< point-free combinator.
(.\/<) :: Lens a c -> Lens b c -> Lens (Either a b) cSource
The left-biased / point-free combinator. It chooses left values over right values in the create direction.
(\/.<) :: Lens a c -> Lens b c -> Lens (Either a b) cSource
The right-biased / point-free combinator. It chooses right values over left values in the create direction.
(-|-<) :: Lens c a -> Lens d b -> Lens (Either c d) (Either a b)Source
The -|- point-free combinator.
sum_lns :: ((a, d) -> c) -> ((b, c) -> d) -> Lens c a -> Lens d b -> Lens (Either c d) (Either a b)Source
The -|- point-free combinator with user-defined backward behavior.
(!<) :: c -> Lens c OneSource
The pnt point-free combinator.
(!\/<) :: Eq a => a -> Lens b a -> c -> Lens (Either c b) aSource
The (a!) / f point-free expression, where a is a constant and f a function. The additional argument of type c is the default value when the view matches the constant of type a.
(\/!<) :: Eq a => a -> Lens c a -> b -> Lens (Either c b) aSource
The f / (a!) point-free expression, where a is a constant and f a function. The additional argument of type b is the default value when the view matches the constant of type a.
(#\/<) :: Lens b (Either a c) -> Lens (Either a b) (Either a c)Source
The inl / f point-free expression, where f is a function.
(\/$<) :: Lens a (Either c b) -> Lens (Either a b) (Either c b)Source
The f / inr point-free expression, where f is a function.
Point-free isomorphism combinators
id_lns :: Lens c cSource
The lens identity combinator.
distp_lns :: Lens ((c, d), (a, b)) ((c, a), (d, b))Source
The distp point-free combinator.
dists_lns :: Lens (Either a b, Either c d) (Either (Either (a, c) (a, d)) (Either (b, c) (b, d)))Source
The dists point-free combinator.
swap_lns :: Lens (a, b) (b, a)Source
The swap point-free combinator.
coswap_lns :: Lens (Either a b) (Either b a)Source
The coswap point-free combinator
distl_lns :: Lens (Either a b, c) (Either (a, c) (b, c))Source
The distl point-free combinator.
undistl_lns :: Lens (Either (a, c) (b, c)) (Either a b, c)Source
The undistl point-free combinator.
distr_lns :: Lens (c, Either a b) (Either (c, a) (c, b))Source
The distr point-free combinator.
undistr_lns :: Lens (Either (c, a) (c, b)) (c, Either a b)Source
The undistr point-free combinator.
assocl_lns :: Lens (a, (b, c)) ((a, b), c)Source
The assocl point-free combinator.
assocr_lns :: Lens ((a, b), c) (a, (b, c))Source
The assocr point-free combinator.
coassocl_lns :: Lens (Either a (Either b c)) (Either (Either a b) c)Source
The coassocl point-free combinator.
coassocr_lns :: Lens (Either (Either a b) c) (Either a (Either b c))Source
The coassocr point-free combinator.
Produced by Haddock version 2.7.2