Safe Haskell | None |
---|---|
Language | Haskell98 |
Control.Reference.Generators
Description
Functions to create references from simple functions and members of the lens library.
- traversal :: Traversable t => Traversal (t a) (t b) a b
- iso :: (a -> b) -> (b -> a) -> Simple Iso a b
- iso' :: (a -> b) -> (a' -> b') -> (b -> a) -> (b' -> a') -> Iso a a' b b'
- lens :: (s -> a) -> (b -> s -> t) -> Lens s t a b
- partial :: (s -> Either t (a, b -> t)) -> Partial s t a b
- prism :: (a -> s) -> (b -> t) -> (s -> Either t a) -> (t -> Maybe b) -> Prism s t a b
- simplePrism :: (a -> s) -> (s -> Maybe a) -> Prism s s a a
- simplePartial :: (s -> Maybe (a, a -> s)) -> Partial s s a a
- fromLens :: (forall f. Functor f => (a -> f b) -> s -> f t) -> Lens s t a b
- fromTraversal :: (forall f. Applicative f => (a -> f b) -> s -> f t) -> Traversal s t a b
- uniplateRef :: Uniplate a => Simple Traversal a a
- biplateRef :: Biplate a b => Simple Traversal a b
- filtered :: (a -> Bool) -> Simple RefPlus a a
Documentation
traversal :: Traversable t => Traversal (t a) (t b) a b Source #
Generates a traversal for any Traversable
Functor
iso :: (a -> b) -> (b -> a) -> Simple Iso a b Source #
Generate a lens from a pair of inverse functions
lens :: (s -> a) -> (b -> s -> t) -> Lens s t a b Source #
Generates a lens from a getter and a setter
partial :: (s -> Either t (a, b -> t)) -> Partial s t a b Source #
Creates a polymorphic partial lense
Either t a
is used instead of Maybe a
to permit the types of s
and t
to differ.
prism :: (a -> s) -> (b -> t) -> (s -> Either t a) -> (t -> Maybe b) -> Prism s t a b Source #
Creates a polymorphic partial lens that can be turned to give a total lens
simplePrism :: (a -> s) -> (s -> Maybe a) -> Prism s s a a Source #
Creates a monomorphic partial lens that can be turned to give a total lens
simplePartial :: (s -> Maybe (a, a -> s)) -> Partial s s a a Source #
Creates a simple partial lens
fromLens :: (forall f. Functor f => (a -> f b) -> s -> f t) -> Lens s t a b Source #
Clones a lens from Control.Lens
fromTraversal :: (forall f. Applicative f => (a -> f b) -> s -> f t) -> Traversal s t a b Source #
Clones a traversal from Control.Lens
uniplateRef :: Uniplate a => Simple Traversal a a Source #
References all the elements accessed by uniplate