strict-tuple-lens-0.1.0.1: Optics for the `strict-tuple` library

Copyright(c) 2020 Emily Pillmore
LicenseBSD-style
MaintainerEmily Pillmore <emilypi@cohomolo.gy>
StabilityExperimental
PortabilityFlexibleContexts, MPTC
Safe HaskellNone
LanguageHaskell2010

Data.Tuple.Strict.Lens.Iso

Contents

Description

This module exports Swapped and Strict instances for T1 through T9

Synopsis

Documentation

class Bifunctor p => Swapped (p :: Type -> Type -> Type) where #

This class provides for symmetric bifunctors.

Methods

swapped :: Iso (p a b) (p c d) (p b a) (p d c) #

swapped . swappedid
first f . swapped = swapped . second f
second g . swapped = swapped . first g
bimap f g . swapped = swapped . bimap g f
>>> (1,2)^.swapped
(2,1)
Instances
Swapped Either 
Instance details

Defined in Control.Lens.Iso

Methods

swapped :: Iso (Either a b) (Either c d) (Either b a) (Either d c) #

Swapped (,) 
Instance details

Defined in Control.Lens.Iso

Methods

swapped :: Iso (a, b) (c, d) (b, a) (d, c) #

Swapped T2 Source # 
Instance details

Defined in Data.Tuple.Strict.Lens.Iso

Methods

swapped :: Iso (T2 a b) (T2 c d) (T2 b a) (T2 d c) #

Swapped ((,,) x) 
Instance details

Defined in Control.Lens.Iso

Methods

swapped :: Iso (x, a, b) (x, c, d) (x, b, a) (x, d, c) #

Swapped (T3 x) Source # 
Instance details

Defined in Data.Tuple.Strict.Lens.Iso

Methods

swapped :: Iso (T3 x a b) (T3 x c d) (T3 x b a) (T3 x d c) #

Swapped ((,,,) x y) 
Instance details

Defined in Control.Lens.Iso

Methods

swapped :: Iso (x, y, a, b) (x, y, c, d) (x, y, b, a) (x, y, d, c) #

Swapped (T4 x y) Source # 
Instance details

Defined in Data.Tuple.Strict.Lens.Iso

Methods

swapped :: Iso (T4 x y a b) (T4 x y c d) (T4 x y b a) (T4 x y d c) #

Swapped ((,,,,) x y z) 
Instance details

Defined in Control.Lens.Iso

Methods

swapped :: Iso (x, y, z, a, b) (x, y, z, c, d) (x, y, z, b, a) (x, y, z, d, c) #

Swapped p => Swapped (Flip p) 
Instance details

Defined in Control.Lens.Iso

Methods

swapped :: Iso (Flip p a b) (Flip p c d) (Flip p b a) (Flip p d c) #

Swapped (T5 x y z) Source # 
Instance details

Defined in Data.Tuple.Strict.Lens.Iso

Methods

swapped :: Iso (T5 x y z a b) (T5 x y z c d) (T5 x y z b a) (T5 x y z d c) #

Swapped ((,,,,,) x y z w) 
Instance details

Defined in Control.Lens.Iso

Methods

swapped :: Iso (x, y, z, w, a, b) (x, y, z, w, c, d) (x, y, z, w, b, a) (x, y, z, w, d, c) #

(Swapped p, Swapped q) => Swapped (Sum p q) 
Instance details

Defined in Control.Lens.Iso

Methods

swapped :: Iso (Sum p q a b) (Sum p q c d) (Sum p q b a) (Sum p q d c) #

(Swapped f, Swapped g) => Swapped (Product f g) 
Instance details

Defined in Control.Lens.Iso

Methods

swapped :: Iso (Product f g a b) (Product f g c d) (Product f g b a) (Product f g d c) #

Swapped (T6 x y z w) Source # 
Instance details

Defined in Data.Tuple.Strict.Lens.Iso

Methods

swapped :: Iso (T6 x y z w a b) (T6 x y z w c d) (T6 x y z w b a) (T6 x y z w d c) #

Swapped ((,,,,,,) x y z w v) 
Instance details

Defined in Control.Lens.Iso

Methods

swapped :: Iso (x, y, z, w, v, a, b) (x, y, z, w, v, c, d) (x, y, z, w, v, b, a) (x, y, z, w, v, d, c) #

(Functor f, Swapped p) => Swapped (Tannen f p) 
Instance details

Defined in Control.Lens.Iso

Methods

swapped :: Iso (Tannen f p a b) (Tannen f p c d) (Tannen f p b a) (Tannen f p d c) #

Swapped (T7 x y z w v) Source # 
Instance details

Defined in Data.Tuple.Strict.Lens.Iso

Methods

swapped :: Iso (T7 x y z w v a b) (T7 x y z w v c d) (T7 x y z w v b a) (T7 x y z w v d c) #

Swapped (T8 x y z w v u) Source # 
Instance details

Defined in Data.Tuple.Strict.Lens.Iso

Methods

swapped :: Iso (T8 x y z w v u a b) (T8 x y z w v u c d) (T8 x y z w v u b a) (T8 x y z w v u d c) #

(f ~ g, Functor f, Swapped p) => Swapped (Biff p f g) 
Instance details

Defined in Control.Lens.Iso

Methods

swapped :: Iso (Biff p f g a b) (Biff p f g c d) (Biff p f g b a) (Biff p f g d c) #

Swapped (T9 a b c d e f g) Source # 
Instance details

Defined in Data.Tuple.Strict.Lens.Iso

Methods

swapped :: Iso (T9 a b c d e f g a0 b0) (T9 a b c d e f g c0 d0) (T9 a b c d e f g b0 a0) (T9 a b c d e f g d0 c0) #

class Strict lazy strict | lazy -> strict, strict -> lazy where #

Ad hoc conversion between "strict" and "lazy" versions of a structure, such as Text or ByteString.

Methods

strict :: Iso' lazy strict #

Instances
Strict ByteString ByteString 
Instance details

Defined in Control.Lens.Iso

Strict Text Text 
Instance details

Defined in Control.Lens.Iso

Methods

strict :: Iso' Text0 Text #

Strict (Identity a) (T1 a) Source # 
Instance details

Defined in Data.Tuple.Strict.Lens.Iso

Methods

strict :: Iso' (Identity a) (T1 a) #

Strict (a, b) (T2 a b) Source # 
Instance details

Defined in Data.Tuple.Strict.Lens.Iso

Methods

strict :: Iso' (a, b) (T2 a b) #

Strict (ST s a) (ST s a) 
Instance details

Defined in Control.Lens.Iso

Methods

strict :: Iso' (ST s a) (ST0 s a) #

Strict (a, b, c) (T3 a b c) Source # 
Instance details

Defined in Data.Tuple.Strict.Lens.Iso

Methods

strict :: Iso' (a, b, c) (T3 a b c) #

Strict (StateT s m a) (StateT s m a) 
Instance details

Defined in Control.Lens.Iso

Methods

strict :: Iso' (StateT s m a) (StateT0 s m a) #

Strict (WriterT w m a) (WriterT w m a) 
Instance details

Defined in Control.Lens.Iso

Methods

strict :: Iso' (WriterT0 w m a) (WriterT w m a) #

Strict (a, b, c, d) (T4 a b c d) Source # 
Instance details

Defined in Data.Tuple.Strict.Lens.Iso

Methods

strict :: Iso' (a, b, c, d) (T4 a b c d) #

Strict (a, b, c, d, e) (T5 a b c d e) Source # 
Instance details

Defined in Data.Tuple.Strict.Lens.Iso

Methods

strict :: Iso' (a, b, c, d, e) (T5 a b c d e) #

Strict (RWST r w s m a) (RWST r w s m a) 
Instance details

Defined in Control.Lens.Iso

Methods

strict :: Iso' (RWST r w s m a) (RWST0 r w s m a) #

Strict (a, b, c, d, e, f) (T6 a b c d e f) Source # 
Instance details

Defined in Data.Tuple.Strict.Lens.Iso

Methods

strict :: Iso' (a, b, c, d, e, f) (T6 a b c d e f) #

Strict (a, b, c, d, e, f, g) (T7 a b c d e f g) Source # 
Instance details

Defined in Data.Tuple.Strict.Lens.Iso

Methods

strict :: Iso' (a, b, c, d, e, f, g) (T7 a b c d e f g) #

Strict (a, b, c, d, e, f, g, h) (T8 a b c d e f g h) Source # 
Instance details

Defined in Data.Tuple.Strict.Lens.Iso

Methods

strict :: Iso' (a, b, c, d, e, f, g, h) (T8 a b c d e f g h) #

Strict (a, b, c, d, e, f, g, h, i) (T9 a b c d e f g h i) Source # 
Instance details

Defined in Data.Tuple.Strict.Lens.Iso

Methods

strict :: Iso' (a, b, c, d, e, f, g, h, i) (T9 a b c d e f g h i) #

Orphan instances

Swapped T2 Source # 
Instance details

Methods

swapped :: Iso (T2 a b) (T2 c d) (T2 b a) (T2 d c) #

Swapped (T3 x) Source # 
Instance details

Methods

swapped :: Iso (T3 x a b) (T3 x c d) (T3 x b a) (T3 x d c) #

Strict (Identity a) (T1 a) Source # 
Instance details

Methods

strict :: Iso' (Identity a) (T1 a) #

Swapped (T4 x y) Source # 
Instance details

Methods

swapped :: Iso (T4 x y a b) (T4 x y c d) (T4 x y b a) (T4 x y d c) #

Strict (a, b) (T2 a b) Source # 
Instance details

Methods

strict :: Iso' (a, b) (T2 a b) #

Swapped (T5 x y z) Source # 
Instance details

Methods

swapped :: Iso (T5 x y z a b) (T5 x y z c d) (T5 x y z b a) (T5 x y z d c) #

Strict (a, b, c) (T3 a b c) Source # 
Instance details

Methods

strict :: Iso' (a, b, c) (T3 a b c) #

Swapped (T6 x y z w) Source # 
Instance details

Methods

swapped :: Iso (T6 x y z w a b) (T6 x y z w c d) (T6 x y z w b a) (T6 x y z w d c) #

Strict (a, b, c, d) (T4 a b c d) Source # 
Instance details

Methods

strict :: Iso' (a, b, c, d) (T4 a b c d) #

Swapped (T7 x y z w v) Source # 
Instance details

Methods

swapped :: Iso (T7 x y z w v a b) (T7 x y z w v c d) (T7 x y z w v b a) (T7 x y z w v d c) #

Strict (a, b, c, d, e) (T5 a b c d e) Source # 
Instance details

Methods

strict :: Iso' (a, b, c, d, e) (T5 a b c d e) #

Swapped (T8 x y z w v u) Source # 
Instance details

Methods

swapped :: Iso (T8 x y z w v u a b) (T8 x y z w v u c d) (T8 x y z w v u b a) (T8 x y z w v u d c) #

Strict (a, b, c, d, e, f) (T6 a b c d e f) Source # 
Instance details

Methods

strict :: Iso' (a, b, c, d, e, f) (T6 a b c d e f) #

Swapped (T9 a b c d e f g) Source # 
Instance details

Methods

swapped :: Iso (T9 a b c d e f g a0 b0) (T9 a b c d e f g c0 d0) (T9 a b c d e f g b0 a0) (T9 a b c d e f g d0 c0) #

Strict (a, b, c, d, e, f, g) (T7 a b c d e f g) Source # 
Instance details

Methods

strict :: Iso' (a, b, c, d, e, f, g) (T7 a b c d e f g) #

Strict (a, b, c, d, e, f, g, h) (T8 a b c d e f g h) Source # 
Instance details

Methods

strict :: Iso' (a, b, c, d, e, f, g, h) (T8 a b c d e f g h) #

Strict (a, b, c, d, e, f, g, h, i) (T9 a b c d e f g h i) Source # 
Instance details

Methods

strict :: Iso' (a, b, c, d, e, f, g, h, i) (T9 a b c d e f g h i) #