Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Generalized lenses
Intended to be imported qualified
import Generics.SOP.Lens as GLens
Synopsis
- data GLens (r :: Type -> Type) (w :: Type -> Type) a b
- lens :: (a -> r b) -> ((b -> w b) -> a -> w a) -> GLens r w a b
- get :: GLens r w a b -> a -> r b
- modify :: GLens r w a b -> (b -> w b) -> a -> w a
- set :: Monad w => GLens r w a b -> b -> a -> w a
- fromLens :: (Monad r, Monad w) => Lens' a b -> GLens r w a b
- fromIso :: (Monad r, Monad w) => Iso' a b -> GLens r w a b
- toLens :: GLens Identity Identity a b -> Lens' a b
- glenses :: forall r w a xs. (Generic a, Code a ~ '[xs], Monad r, Monad w) => NP (GLens r w a) xs
- np :: forall r w xs. (Monad r, Monad w, SListI xs) => NP (GLens r w (NP I xs)) xs
- rep :: (Monad r, Monad w, Generic a) => GLens r w a (Rep a)
- sop :: (Monad r, Monad w) => GLens r w (SOP f '[xs]) (NP f xs)
- head :: (Monad r, Monad w) => GLens r w (NP f (x ': xs)) (f x)
- tail :: (Monad r, Monad w) => GLens r w (NP f (x ': xs)) (NP f xs)
- i :: (Monad r, Monad w) => GLens r w (I a) a
Generalized lenses
data GLens (r :: Type -> Type) (w :: Type -> Type) a b Source #
GLens generalizes a monomorphic lens by allowing for different monads for the getter and modifier
Conversion
Generic computation of lenses for record type
glenses :: forall r w a xs. (Generic a, Code a ~ '[xs], Monad r, Monad w) => NP (GLens r w a) xs Source #