generics-sop-lens-0.1.2.1: Lenses for types in generics-sop

Safe HaskellNone
LanguageHaskell2010

Generics.SOP.Lens

Contents

Description

Lenses for Generics.SOP

Orphan instances:

Wrapped (SOP f xss) -- Also Rewrapped
Wrapped (POP f xss)
Field1 (NP f (x ': zs)) (NP f (y ': zs)) (f x) (f y) -- Field2 etc.
Field1 (POP f (x ': zs)) (NP f (y ': zs)) (NP f x) (NP f y)

Synopsis

Documentation

rep :: Generic a => Iso' a (Rep a) Source #

SOP & POP

sop :: forall f xss yss. Iso (NS (NP f) xss) (NS (NP f) yss) (SOP f xss) (SOP f yss) Source #

pop :: forall f xss yss. Iso (NP (NP f) xss) (NP (NP f) yss) (POP f xss) (POP f yss) Source #

unsop :: forall f xss yss. Iso (SOP f xss) (SOP f yss) (NS (NP f) xss) (NS (NP f) yss) Source #

unpop :: forall f xss yss. Iso (POP f xss) (POP f yss) (NP (NP f) xss) (NP (NP f) yss) Source #

Functors

isoI :: Iso a b (I a) (I b) Source #

isoK :: Iso a b (K a c) (K b c) Source #

uni :: Iso (I a) (I b) a b Source #

unk :: Iso (K a c) (K b c) a b Source #

Products

singletonP :: forall f x y. Iso (f x) (f y) (NP f '[x]) (NP f '[y]) Source #

unSingletonP :: forall f x y. Iso (NP f '[x]) (NP f '[y]) (f x) (f y) Source #

headLens :: forall f x y zs. Lens (NP f (x ': zs)) (NP f (y ': zs)) (f x) (f y) Source #

tailLens :: forall f x ys zs. Lens (NP f (x ': ys)) (NP f (x ': zs)) (NP f ys) (NP f zs) Source #

Sums

singletonS :: forall f x y. Iso (f x) (f y) (NS f '[x]) (NS f '[y]) Source #

unSingletonS :: forall f x y. Iso (NS f '[x]) (NS f '[y]) (f x) (f y) Source #

_Z :: forall f x y zs. Prism (NS f (x ': zs)) (NS f (y ': zs)) (f x) (f y) Source #

_S :: forall f x ys zs. Prism (NS f (x ': ys)) (NS f (x ': zs)) (NS f ys) (NS f zs) Source #

DatatypeInfo

constructorName :: Lens' (ConstructorInfo xs) ConstructorName Source #

Note: Infix constructor has operator as a ConstructorName. Use as setter with care.

Orphan instances

Wrapped (I a) Source # 

Associated Types

type Unwrapped (I a) :: * #

Methods

_Wrapped' :: Iso' (I a) (Unwrapped (I a)) #

(~) * t (I a) => Rewrapped (I a) t Source # 
Wrapped (SOP k f xss) Source # 

Associated Types

type Unwrapped (SOP k f xss) :: * #

Methods

_Wrapped' :: Iso' (SOP k f xss) (Unwrapped (SOP k f xss)) #

Wrapped (POP k f xss) Source # 

Associated Types

type Unwrapped (POP k f xss) :: * #

Methods

_Wrapped' :: Iso' (POP k f xss) (Unwrapped (POP k f xss)) #

Wrapped (K k a b) Source # 

Associated Types

type Unwrapped (K k a b) :: * #

Methods

_Wrapped' :: Iso' (K k a b) (Unwrapped (K k a b)) #

(~) * t (SOP k f xss) => Rewrapped (SOP k f xss) t Source # 
(~) * t (POP k f xss) => Rewrapped (POP k f xss) t Source # 
(~) * t (K k a b) => Rewrapped (K k a b) t Source # 
Field1 (NP a f ((:) a x zs)) (NP a f ((:) a y zs)) (f x) (f y) Source # 

Methods

_1 :: Lens (NP a f ((a ': x) zs)) (NP a f ((a ': y) zs)) (f x) (f y) #

Field2 (NP a f ((:) a a1 ((:) a x zs))) (NP a f ((:) a a1 ((:) a y zs))) (f x) (f y) Source # 

Methods

_2 :: Lens (NP a f ((a ': a1) ((a ': x) zs))) (NP a f ((a ': a1) ((a ': y) zs))) (f x) (f y) #

Field3 (NP a f ((:) a a1 ((:) a b ((:) a x zs)))) (NP a f ((:) a a1 ((:) a b ((:) a y zs)))) (f x) (f y) Source # 

Methods

_3 :: Lens (NP a f ((a ': a1) ((a ': b) ((a ': x) zs)))) (NP a f ((a ': a1) ((a ': b) ((a ': y) zs)))) (f x) (f y) #

Field4 (NP a f ((:) a a1 ((:) a b ((:) a c ((:) a x zs))))) (NP a f ((:) a a1 ((:) a b ((:) a c ((:) a y zs))))) (f x) (f y) Source # 

Methods

_4 :: Lens (NP a f ((a ': a1) ((a ': b) ((a ': c) ((a ': x) zs))))) (NP a f ((a ': a1) ((a ': b) ((a ': c) ((a ': y) zs))))) (f x) (f y) #

Field5 (NP a f ((:) a a1 ((:) a b ((:) a c ((:) a d ((:) a x zs)))))) (NP a f ((:) a a1 ((:) a b ((:) a c ((:) a d ((:) a y zs)))))) (f x) (f y) Source # 

Methods

_5 :: Lens (NP a f ((a ': a1) ((a ': b) ((a ': c) ((a ': d) ((a ': x) zs)))))) (NP a f ((a ': a1) ((a ': b) ((a ': c) ((a ': d) ((a ': y) zs)))))) (f x) (f y) #

Field6 (NP a f ((:) a a1 ((:) a b ((:) a c ((:) a d ((:) a e ((:) a x zs))))))) (NP a f ((:) a a1 ((:) a b ((:) a c ((:) a d ((:) a e ((:) a y zs))))))) (f x) (f y) Source # 

Methods

_6 :: Lens (NP a f ((a ': a1) ((a ': b) ((a ': c) ((a ': d) ((a ': e) ((a ': x) zs))))))) (NP a f ((a ': a1) ((a ': b) ((a ': c) ((a ': d) ((a ': e) ((a ': y) zs))))))) (f x) (f y) #

Field7 (NP a f' ((:) a a1 ((:) a b ((:) a c ((:) a d ((:) a e ((:) a f ((:) a x zs)))))))) (NP a f' ((:) a a1 ((:) a b ((:) a c ((:) a d ((:) a e ((:) a f ((:) a y zs)))))))) (f' x) (f' y) Source # 

Methods

_7 :: Lens (NP a f' ((a ': a1) ((a ': b) ((a ': c) ((a ': d) ((a ': e) ((a ': f) ((a ': x) zs)))))))) (NP a f' ((a ': a1) ((a ': b) ((a ': c) ((a ': d) ((a ': e) ((a ': f) ((a ': y) zs)))))))) (f' x) (f' y) #

Field8 (NP a f' ((:) a a1 ((:) a b ((:) a c ((:) a d ((:) a e ((:) a f ((:) a g ((:) a x zs))))))))) (NP a f' ((:) a a1 ((:) a b ((:) a c ((:) a d ((:) a e ((:) a f ((:) a g ((:) a y zs))))))))) (f' x) (f' y) Source # 

Methods

_8 :: Lens (NP a f' ((a ': a1) ((a ': b) ((a ': c) ((a ': d) ((a ': e) ((a ': f) ((a ': g) ((a ': x) zs))))))))) (NP a f' ((a ': a1) ((a ': b) ((a ': c) ((a ': d) ((a ': e) ((a ': f) ((a ': g) ((a ': y) zs))))))))) (f' x) (f' y) #

Field9 (NP a f' ((:) a a1 ((:) a b ((:) a c ((:) a d ((:) a e ((:) a f ((:) a g ((:) a h ((:) a x zs)))))))))) (NP a f' ((:) a a1 ((:) a b ((:) a c ((:) a d ((:) a e ((:) a f ((:) a g ((:) a h ((:) a y zs)))))))))) (f' x) (f' y) Source # 

Methods

_9 :: Lens (NP a f' ((a ': a1) ((a ': b) ((a ': c) ((a ': d) ((a ': e) ((a ': f) ((a ': g) ((a ': h) ((a ': x) zs)))))))))) (NP a f' ((a ': a1) ((a ': b) ((a ': c) ((a ': d) ((a ': e) ((a ': f) ((a ': g) ((a ': h) ((a ': y) zs)))))))))) (f' x) (f' y) #

Field1 (POP k f ((:) [k] x zs)) (POP k f ((:) [k] y zs)) (NP k f x) (NP k f y) Source # 

Methods

_1 :: Lens (POP k f (([k] ': x) zs)) (POP k f (([k] ': y) zs)) (NP k f x) (NP k f y) #

Field2 (POP k f ((:) [k] a ((:) [k] x zs))) (POP k f ((:) [k] a ((:) [k] y zs))) (NP k f x) (NP k f y) Source # 

Methods

_2 :: Lens (POP k f (([k] ': a) (([k] ': x) zs))) (POP k f (([k] ': a) (([k] ': y) zs))) (NP k f x) (NP k f y) #

Field3 (POP k f ((:) [k] a ((:) [k] b ((:) [k] x zs)))) (POP k f ((:) [k] a ((:) [k] b ((:) [k] y zs)))) (NP k f x) (NP k f y) Source # 

Methods

_3 :: Lens (POP k f (([k] ': a) (([k] ': b) (([k] ': x) zs)))) (POP k f (([k] ': a) (([k] ': b) (([k] ': y) zs)))) (NP k f x) (NP k f y) #

Field4 (POP k f ((:) [k] a ((:) [k] b ((:) [k] c ((:) [k] x zs))))) (POP k f ((:) [k] a ((:) [k] b ((:) [k] c ((:) [k] y zs))))) (NP k f x) (NP k f y) Source # 

Methods

_4 :: Lens (POP k f (([k] ': a) (([k] ': b) (([k] ': c) (([k] ': x) zs))))) (POP k f (([k] ': a) (([k] ': b) (([k] ': c) (([k] ': y) zs))))) (NP k f x) (NP k f y) #

Field5 (POP k f ((:) [k] a ((:) [k] b ((:) [k] c ((:) [k] d ((:) [k] x zs)))))) (POP k f ((:) [k] a ((:) [k] b ((:) [k] c ((:) [k] d ((:) [k] y zs)))))) (NP k f x) (NP k f y) Source # 

Methods

_5 :: Lens (POP k f (([k] ': a) (([k] ': b) (([k] ': c) (([k] ': d) (([k] ': x) zs)))))) (POP k f (([k] ': a) (([k] ': b) (([k] ': c) (([k] ': d) (([k] ': y) zs)))))) (NP k f x) (NP k f y) #

Field6 (POP k f ((:) [k] a ((:) [k] b ((:) [k] c ((:) [k] d ((:) [k] e ((:) [k] x zs))))))) (POP k f ((:) [k] a ((:) [k] b ((:) [k] c ((:) [k] d ((:) [k] e ((:) [k] y zs))))))) (NP k f x) (NP k f y) Source # 

Methods

_6 :: Lens (POP k f (([k] ': a) (([k] ': b) (([k] ': c) (([k] ': d) (([k] ': e) (([k] ': x) zs))))))) (POP k f (([k] ': a) (([k] ': b) (([k] ': c) (([k] ': d) (([k] ': e) (([k] ': y) zs))))))) (NP k f x) (NP k f y) #

Field7 (POP k f' ((:) [k] a ((:) [k] b ((:) [k] c ((:) [k] d ((:) [k] e ((:) [k] f ((:) [k] x zs)))))))) (POP k f' ((:) [k] a ((:) [k] b ((:) [k] c ((:) [k] d ((:) [k] e ((:) [k] f ((:) [k] y zs)))))))) (NP k f' x) (NP k f' y) Source # 

Methods

_7 :: Lens (POP k f' (([k] ': a) (([k] ': b) (([k] ': c) (([k] ': d) (([k] ': e) (([k] ': f) (([k] ': x) zs)))))))) (POP k f' (([k] ': a) (([k] ': b) (([k] ': c) (([k] ': d) (([k] ': e) (([k] ': f) (([k] ': y) zs)))))))) (NP k f' x) (NP k f' y) #

Field8 (POP k f' ((:) [k] a ((:) [k] b ((:) [k] c ((:) [k] d ((:) [k] e ((:) [k] f ((:) [k] g ((:) [k] x zs))))))))) (POP k f' ((:) [k] a ((:) [k] b ((:) [k] c ((:) [k] d ((:) [k] e ((:) [k] f ((:) [k] g ((:) [k] y zs))))))))) (NP k f' x) (NP k f' y) Source # 

Methods

_8 :: Lens (POP k f' (([k] ': a) (([k] ': b) (([k] ': c) (([k] ': d) (([k] ': e) (([k] ': f) (([k] ': g) (([k] ': x) zs))))))))) (POP k f' (([k] ': a) (([k] ': b) (([k] ': c) (([k] ': d) (([k] ': e) (([k] ': f) (([k] ': g) (([k] ': y) zs))))))))) (NP k f' x) (NP k f' y) #

Field9 (POP k f' ((:) [k] a ((:) [k] b ((:) [k] c ((:) [k] d ((:) [k] e ((:) [k] f ((:) [k] g ((:) [k] h ((:) [k] x zs)))))))))) (POP k f' ((:) [k] a ((:) [k] b ((:) [k] c ((:) [k] d ((:) [k] e ((:) [k] f ((:) [k] g ((:) [k] h ((:) [k] y zs)))))))))) (NP k f' x) (NP k f' y) Source # 

Methods

_9 :: Lens (POP k f' (([k] ': a) (([k] ': b) (([k] ': c) (([k] ': d) (([k] ': e) (([k] ': f) (([k] ': g) (([k] ': h) (([k] ': x) zs)))))))))) (POP k f' (([k] ': a) (([k] ': b) (([k] ': c) (([k] ': d) (([k] ': e) (([k] ': f) (([k] ': g) (([k] ': h) (([k] ': y) zs)))))))))) (NP k f' x) (NP k f' y) #