optics-core-0.1: Optics as an abstract interface: core definitions

Safe HaskellNone
LanguageHaskell2010

Optics.Internal.Concrete

Description

Concrete representation types for certain optics.

This module is intended for internal use only, and may change without warning in subsequent releases.

Synopsis

Documentation

data Exchange a b i s t Source #

Type to represent the components of an isomorphism.

Constructors

Exchange (s -> a) (b -> t) 
Instances
Profunctor (Exchange a b) Source # 
Instance details

Defined in Optics.Internal.Concrete

Methods

dimap :: (a0 -> b0) -> (c -> d) -> Exchange a b i b0 c -> Exchange a b i a0 d Source #

lmap :: (a0 -> b0) -> Exchange a b i b0 c -> Exchange a b i a0 c Source #

rmap :: (c -> d) -> Exchange a b i b0 c -> Exchange a b i b0 d Source #

lcoerce' :: Coercible a0 b0 => Exchange a b i a0 c -> Exchange a b i b0 c Source #

rcoerce' :: Coercible a0 b0 => Exchange a b i c a0 -> Exchange a b i c b0 Source #

conjoined__ :: (Exchange a b i a0 b0 -> Exchange a b i s t) -> (Exchange a b i a0 b0 -> Exchange a b j s t) -> Exchange a b i a0 b0 -> Exchange a b j s t Source #

ixcontramap :: (j -> i) -> Exchange a b i a0 b0 -> Exchange a b j a0 b0 Source #

data Store a b i s t Source #

Type to represent the components of a lens.

Constructors

Store (s -> a) (s -> b -> t) 
Instances
Strong (Store a b) Source # 
Instance details

Defined in Optics.Internal.Concrete

Methods

first' :: Store a b i a0 b0 -> Store a b i (a0, c) (b0, c) Source #

second' :: Store a b i a0 b0 -> Store a b i (c, a0) (c, b0) Source #

linear :: (forall (f :: Type -> Type). Functor f => (a0 -> f b0) -> s -> f t) -> Store a b i a0 b0 -> Store a b i s t Source #

ilinear :: (forall (f :: Type -> Type). Functor f => (i -> a0 -> f b0) -> s -> f t) -> Store a b j a0 b0 -> Store a b (i -> j) s t Source #

Profunctor (Store a b) Source # 
Instance details

Defined in Optics.Internal.Concrete

Methods

dimap :: (a0 -> b0) -> (c -> d) -> Store a b i b0 c -> Store a b i a0 d Source #

lmap :: (a0 -> b0) -> Store a b i b0 c -> Store a b i a0 c Source #

rmap :: (c -> d) -> Store a b i b0 c -> Store a b i b0 d Source #

lcoerce' :: Coercible a0 b0 => Store a b i a0 c -> Store a b i b0 c Source #

rcoerce' :: Coercible a0 b0 => Store a b i c a0 -> Store a b i c b0 Source #

conjoined__ :: (Store a b i a0 b0 -> Store a b i s t) -> (Store a b i a0 b0 -> Store a b j s t) -> Store a b i a0 b0 -> Store a b j s t Source #

ixcontramap :: (j -> i) -> Store a b i a0 b0 -> Store a b j a0 b0 Source #

data Market a b i s t Source #

Type to represent the components of a prism.

Constructors

Market (b -> t) (s -> Either t a) 
Instances
Choice (Market a b) Source # 
Instance details

Defined in Optics.Internal.Concrete

Methods

left' :: Market a b i a0 b0 -> Market a b i (Either a0 c) (Either b0 c) Source #

right' :: Market a b i a0 b0 -> Market a b i (Either c a0) (Either c b0) Source #

Profunctor (Market a b) Source # 
Instance details

Defined in Optics.Internal.Concrete

Methods

dimap :: (a0 -> b0) -> (c -> d) -> Market a b i b0 c -> Market a b i a0 d Source #

lmap :: (a0 -> b0) -> Market a b i b0 c -> Market a b i a0 c Source #

rmap :: (c -> d) -> Market a b i b0 c -> Market a b i b0 d Source #

lcoerce' :: Coercible a0 b0 => Market a b i a0 c -> Market a b i b0 c Source #

rcoerce' :: Coercible a0 b0 => Market a b i c a0 -> Market a b i c b0 Source #

conjoined__ :: (Market a b i a0 b0 -> Market a b i s t) -> (Market a b i a0 b0 -> Market a b j s t) -> Market a b i a0 b0 -> Market a b j s t Source #

ixcontramap :: (j -> i) -> Market a b i a0 b0 -> Market a b j a0 b0 Source #

Functor (Market a b i s) Source # 
Instance details

Defined in Optics.Internal.Concrete

Methods

fmap :: (a0 -> b0) -> Market a b i s a0 -> Market a b i s b0 #

(<$) :: a0 -> Market a b i s b0 -> Market a b i s a0 #

data AffineMarket a b i s t Source #

Type to represent the components of an affine traversal.

Constructors

AffineMarket (s -> b -> t) (s -> Either t a) 
Instances
Visiting (AffineMarket a b) Source # 
Instance details

Defined in Optics.Internal.Concrete

Methods

visit :: (forall (f :: Type -> Type). Functor f => (forall r. r -> f r) -> (a0 -> f b0) -> s -> f t) -> AffineMarket a b i a0 b0 -> AffineMarket a b i s t Source #

ivisit :: (forall (f :: Type -> Type). Functor f => (forall r. r -> f r) -> (i -> a0 -> f b0) -> s -> f t) -> AffineMarket a b j a0 b0 -> AffineMarket a b (i -> j) s t Source #

Choice (AffineMarket a b) Source # 
Instance details

Defined in Optics.Internal.Concrete

Methods

left' :: AffineMarket a b i a0 b0 -> AffineMarket a b i (Either a0 c) (Either b0 c) Source #

right' :: AffineMarket a b i a0 b0 -> AffineMarket a b i (Either c a0) (Either c b0) Source #

Strong (AffineMarket a b) Source # 
Instance details

Defined in Optics.Internal.Concrete

Methods

first' :: AffineMarket a b i a0 b0 -> AffineMarket a b i (a0, c) (b0, c) Source #

second' :: AffineMarket a b i a0 b0 -> AffineMarket a b i (c, a0) (c, b0) Source #

linear :: (forall (f :: Type -> Type). Functor f => (a0 -> f b0) -> s -> f t) -> AffineMarket a b i a0 b0 -> AffineMarket a b i s t Source #

ilinear :: (forall (f :: Type -> Type). Functor f => (i -> a0 -> f b0) -> s -> f t) -> AffineMarket a b j a0 b0 -> AffineMarket a b (i -> j) s t Source #

Profunctor (AffineMarket a b) Source # 
Instance details

Defined in Optics.Internal.Concrete

Methods

dimap :: (a0 -> b0) -> (c -> d) -> AffineMarket a b i b0 c -> AffineMarket a b i a0 d Source #

lmap :: (a0 -> b0) -> AffineMarket a b i b0 c -> AffineMarket a b i a0 c Source #

rmap :: (c -> d) -> AffineMarket a b i b0 c -> AffineMarket a b i b0 d Source #

lcoerce' :: Coercible a0 b0 => AffineMarket a b i a0 c -> AffineMarket a b i b0 c Source #

rcoerce' :: Coercible a0 b0 => AffineMarket a b i c a0 -> AffineMarket a b i c b0 Source #

conjoined__ :: (AffineMarket a b i a0 b0 -> AffineMarket a b i s t) -> (AffineMarket a b i a0 b0 -> AffineMarket a b j s t) -> AffineMarket a b i a0 b0 -> AffineMarket a b j s t Source #

ixcontramap :: (j -> i) -> AffineMarket a b i a0 b0 -> AffineMarket a b j a0 b0 Source #