Portability | GHC |
---|---|
Stability | experimental |
Maintainer | Edward Kmett <ekmett@gmail.com> |
Safe Haskell | Safe-Inferred |
Note: Generics.Deriving
exports a number of names that collide with Control.Lens
.
You can use hiding to mitigate this to an extent, and the following import represents a fair compromise for user code:
import Generics.Deriving hiding (from, to)
You can use generic
to replace from
and
to
from Generics.Deriving
.
- generic :: Generic a => Iso' a (Rep a b)
- generic1 :: Generic1 f => Iso' (f a) (Rep1 f a)
- tinplate :: (Generic a, GTraversal (Rep a), Typeable b) => Traversal' a b
- class GTraversal f
Isomorphisms for GHC.Generics
generic :: Generic a => Iso' a (Rep a b)Source
Convert from the data type to its representation (or back)
>>>
"hello"^.generic.from generic :: String
"hello"
generic1 :: Generic1 f => Iso' (f a) (Rep1 f a)Source
Convert from the data type to its representation (or back)
Generic Traversal
tinplate :: (Generic a, GTraversal (Rep a), Typeable b) => Traversal' a bSource
class GTraversal f Source
Used to traverse Generic
data by uniplate
.
GTraversal U1 | |
(Generic a, GTraversal (Rep a), Typeable a) => GTraversal (K1 i a) | |
(GTraversal f, GTraversal g) => GTraversal (:+: f g) | |
(GTraversal f, GTraversal g) => GTraversal (:*: f g) | |
(Traversable f, GTraversal g) => GTraversal (:.: f g) | |
GTraversal a => GTraversal (M1 i c a) |