lens-3.9.0.2: Lenses, Folds and Traversals

Portability | non-portable
Stability | provisional
Maintainer | Edward Kmett <ekmett@gmail.com>
Safe Haskell | Trustworthy

Control.Lens.Internal.Setter

Contents

- Setters

Description

Synopsis

- class (Applicative f, Distributive f, Traversable f) => Settable f where
  - untainted :: f a -> a
  - untaintedDot :: Profunctor p => p a (f b) -> p a b
  - taintedDot :: Profunctor p => p a b -> p a (f b)
- newtype Mutator a = Mutator {
  - runMutator :: a
  }

## Setters

class (Applicative f, Distributive f, Traversable f) => Settable f where

Anything `Settable` must be isomorphic to the `Identity` `Functor`.

Methods

untainted :: f a -> a

untaintedDot :: Profunctor p => p a (f b) -> p a b

taintedDot :: Profunctor p => p a b -> p a (f b)

Instances

Settable Identity | So you can pass our `Setter` into combinators from other lens libraries.
Settable Mutator |
Settable f => Settable (Backwards f) | `backwards`
(Settable f, Settable g) => Settable (Compose f g) |

newtype Mutator a

`Mutator` is just a renamed `Identity` `Functor` to give better error messages when someone attempts to use a `Getter` as a `Setter`.

Most user code will never need to see this type.

Constructors

Mutator |
Fields runMutator :: a

Instances

Monad Mutator |
Functor Mutator |
Applicative Mutator |
Foldable Mutator |
Traversable Mutator |
Comonad Mutator |
ComonadApply Mutator |
Distributive Mutator |
Apply Mutator |
Bind Mutator |
Extend Mutator |
Settable Mutator |