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

Safe HaskellNone
LanguageHaskell2010

Optics.Internal.Tagged

Description

Based on the tagged package.

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

Synopsis

Documentation

newtype Tagged i a b Source #

Tag a value with not one but two phantom type parameters (so that Tagged can be used as an indexed profunctor).

Constructors

Tagged 

Fields

Instances
Choice Tagged Source # 
Instance details

Defined in Optics.Internal.Tagged

Methods

left' :: Tagged i a b -> Tagged i (Either a c) (Either b c) Source #

right' :: Tagged i a b -> Tagged i (Either c a) (Either c b) Source #

Costrong Tagged Source # 
Instance details

Defined in Optics.Internal.Tagged

Methods

unfirst :: Tagged i (a, d) (b, d) -> Tagged i a b Source #

unsecond :: Tagged i (d, a) (d, b) -> Tagged i a b Source #

Profunctor Tagged Source # 
Instance details

Defined in Optics.Internal.Tagged

Methods

dimap :: (a -> b) -> (c -> d) -> Tagged i b c -> Tagged i a d Source #

lmap :: (a -> b) -> Tagged i b c -> Tagged i a c Source #

rmap :: (c -> d) -> Tagged i b c -> Tagged i b d Source #

lcoerce' :: Coercible a b => Tagged i a c -> Tagged i b c Source #

rcoerce' :: Coercible a b => Tagged i c a -> Tagged i c b Source #

conjoined__ :: (Tagged i a b -> Tagged i s t) -> (Tagged i a b -> Tagged j s t) -> Tagged i a b -> Tagged j s t Source #

ixcontramap :: (j -> i) -> Tagged i a b -> Tagged j a b Source #

Bifunctor Tagged Source # 
Instance details

Defined in Optics.Internal.Tagged

Methods

bimap :: (a -> b) -> (c -> d) -> Tagged i a c -> Tagged i b d Source #

first :: (a -> b) -> Tagged i a c -> Tagged i b c Source #

second :: (c -> d) -> Tagged i a c -> Tagged i a d Source #

Functor (Tagged i a) Source # 
Instance details

Defined in Optics.Internal.Tagged

Methods

fmap :: (a0 -> b) -> Tagged i a a0 -> Tagged i a b #

(<$) :: a0 -> Tagged i a b -> Tagged i a a0 #