| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Control.Lens.SplitEpi
Documentation
A split epimorphism, which we can think of as a weaker Iso a b where b is a "smaller" type.
So `get . reverseGet` remains an identity but `reverseGet . get` is merely idempotent (i.e., it normalizes values in a).
The following statements hold:
- reverseGet is a "section" of get,
- get is a "retraction" of reverseGet,
- b is a "retract" of a,
- the pair `(get, reverseGet)` is a "splitting" of the idempotent `reverseGet . get`.
Constructors
| SplitEpi | |
Fields
| |
normalize :: SplitEpi a b -> a -> a Source #
`reverseGet . get`, yielding a normalized formatted value. Subsequent get/reverseGet cycles are idempotent.