Safe Haskell | None |
---|---|
Language | Haskell2010 |
Note: GHC.Generics exports a number of names that collide with Optics
(at least to
).
You can use hiding or imports to mitigate this to an extent, and the following imports, represent a fair compromise for user code:
import Optics import GHC.Generics hiding (to) import GHC.Generics.Optics
You can use generic
to replace from
and to
from GHC.Generics.
Synopsis
- generic :: (Generic a, Generic b) => Iso a b (Rep a c) (Rep b c)
- generic1 :: (Generic1 f, Generic1 g) => Iso (f a) (g b) (Rep1 f a) (Rep1 g b)
- _V1 :: Lens (V1 s) (V1 t) a b
- _U1 :: Iso (U1 p) (U1 q) () ()
- _Par1 :: Iso (Par1 p) (Par1 q) p q
- _Rec1 :: Iso (Rec1 f p) (Rec1 g q) (f p) (g q)
- _K1 :: Iso (K1 i c p) (K1 j d q) c d
- _M1 :: Iso (M1 i c f p) (M1 j d g q) (f p) (g q)
- _L1 :: Prism ((a :+: c) t) ((b :+: c) t) (a t) (b t)
- _R1 :: Prism ((c :+: a) t) ((c :+: b) t) (a t) (b t)
Documentation
generic :: (Generic a, Generic b) => Iso a b (Rep a c) (Rep b c) Source #
Convert from the data type to its representation (or back)
>>>
view (generic % re generic) "hello" :: String
"hello"