Data.Profunctor.Indexed

indexed-profunctors-0.1.1.1: Utilities for indexed profunctors

Safe Haskell | None
Language | Haskell2010

Data.Profunctor.Indexed

Contents

- Profunctor classes
- Concrete profunctors
- Utilities

Description

Definitions of concrete profunctors and profunctor classes.

Synopsis

- class Profunctor (p :: Type -> Type -> Type -> Type) where
  - dimap :: (a -> b) -> (c -> d) -> p i b c -> p i a d
  - lmap :: (a -> b) -> p i b c -> p i a c
  - rmap :: (c -> d) -> p i b c -> p i b d
  - lcoerce' :: Coercible a b => p i a c -> p i b c
  - rcoerce' :: Coercible a b => p i c a -> p i c b
  - conjoined__ :: (p i a b -> p i s t) -> (p i a b -> p j s t) -> p i a b -> p j s t
  - ixcontramap :: (j -> i) -> p i a b -> p j a b
- lcoerce :: (Coercible a b, Profunctor p) => p i a c -> p i b c
- rcoerce :: (Coercible a b, Profunctor p) => p i c a -> p i c b
- class Profunctor p => Strong (p :: Type -> Type -> Type -> Type) where
  - first' :: p i a b -> p i (a, c) (b, c)
  - second' :: p i a b -> p i (c, a) (c, b)
  - linear :: (forall (f :: Type -> Type). Functor f => (a -> f b) -> s -> f t) -> p i a b -> p i s t
  - ilinear :: (forall (f :: Type -> Type). Functor f => (i -> a -> f b) -> s -> f t) -> p j a b -> p (i -> j) s t
- class Profunctor p => Costrong (p :: Type -> Type -> Type -> Type) where
  - unfirst :: p i (a, d) (b, d) -> p i a b
  - unsecond :: p i (d, a) (d, b) -> p i a b
- class Profunctor p => Choice (p :: Type -> Type -> Type -> Type) where
  - left' :: p i a b -> p i (Either a c) (Either b c)
  - right' :: p i a b -> p i (Either c a) (Either c b)
- class Profunctor p => Cochoice (p :: Type -> Type -> Type -> Type) where
  - unleft :: p i (Either a d) (Either b d) -> p i a b
  - unright :: p i (Either d a) (Either d b) -> p i a b
- class (Choice p, Strong p) => Visiting (p :: Type -> Type -> Type -> Type) where
  - visit :: forall i s t a b. (forall (f :: Type -> Type). Functor f => (forall r. r -> f r) -> (a -> f b) -> s -> f t) -> p i a b -> p i s t
  - ivisit :: (forall (f :: Type -> Type). Functor f => (forall r. r -> f r) -> (i -> a -> f b) -> s -> f t) -> p j a b -> p (i -> j) s t
- class Traversing p => Mapping (p :: Type -> Type -> Type -> Type) where
  - roam :: ((a -> b) -> s -> t) -> p i a b -> p i s t
  - iroam :: ((i -> a -> b) -> s -> t) -> p j a b -> p (i -> j) s t
- class Visiting p => Traversing (p :: Type -> Type -> Type -> Type) where
  - wander :: (forall (f :: Type -> Type). Applicative f => (a -> f b) -> s -> f t) -> p i a b -> p i s t
  - iwander :: (forall (f :: Type -> Type). Applicative f => (i -> a -> f b) -> s -> f t) -> p j a b -> p (i -> j) s t
- newtype Star (f :: Type -> Type) i a b = Star {
  - runStar :: a -> f b
  }
- reStar :: forall (f :: Type -> Type) i a b j. Star f i a b -> Star f j a b
- newtype Forget r i a b = Forget {
  - runForget :: a -> r
  }
- reForget :: Forget r i a b -> Forget r j a b
- newtype ForgetM r i a b = ForgetM {
  - runForgetM :: a -> Maybe r
  }
- newtype FunArrow i a b = FunArrow {
  - runFunArrow :: a -> b
  }
- reFunArrow :: FunArrow i a b -> FunArrow j a b
- newtype IxStar (f :: Type -> Type) i a b = IxStar {
  - runIxStar :: i -> a -> f b
  }
- newtype IxForget r i a b = IxForget {
  - runIxForget :: i -> a -> r
  }
- newtype IxForgetM r i a b = IxForgetM {
  - runIxForgetM :: i -> a -> Maybe r
  }
- newtype IxFunArrow i a b = IxFunArrow {
  - runIxFunArrow :: i -> a -> b
  }
- data StarA (f :: Type -> Type) i a b = StarA (forall r. r -> f r) (a -> f b)
- runStarA :: StarA f i a b -> a -> f b
- data IxStarA (f :: Type -> Type) i a b = IxStarA (forall r. r -> f r) (i -> a -> f b)
- runIxStarA :: IxStarA f i a b -> i -> a -> f b
- data Exchange a b i s t = Exchange (s -> a) (b -> t)
- data Store a b i s t = Store (s -> a) (s -> b -> t)
- data Market a b i s t = Market (b -> t) (s -> Either t a)
- data AffineMarket a b i s t = AffineMarket (s -> b -> t) (s -> Either t a)
- newtype Tagged i a b = Tagged {
  - unTagged :: b
  }
- data Context a b t = Context (b -> t) a
- (#.) :: Coercible b c => (b -> c) -> (a -> b) -> a -> c
- (.#) :: Coercible a b => (b -> c) -> (a -> b) -> a -> c

# Profunctor classes

class Profunctor (p :: Type -> Type -> Type -> Type) where #

Minimal complete definition

dimap, lmap, rmap

Methods

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

lmap :: (a -> b) -> p i b c -> p i a c #

rmap :: (c -> d) -> p i b c -> p i b d #

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

default lcoerce' :: Coercible (p i a c) (p i b c) => p i a c -> p i b c #

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

default rcoerce' :: Coercible (p i c a) (p i c b) => p i c a -> p i c b #

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

default conjoined__ :: Coercible (p i s t) (p j s t) => (p i a b -> p i s t) -> (p i a b -> p j s t) -> p i a b -> p j s t #

ixcontramap :: (j -> i) -> p i a b -> p j a b #

default ixcontramap :: Coercible (p i a b) (p j a b) => (j -> i) -> p i a b -> p j a b #

#### Instances

Instances details

Profunctor FunArrow # |
Instance details Defined in Data.Profunctor.Indexed Methods dimap :: (a -> b) -> (c -> d) -> FunArrow i b c -> FunArrow i a d # lmap :: (a -> b) -> FunArrow i b c -> FunArrow i a c # rmap :: (c -> d) -> FunArrow i b c -> FunArrow i b d # lcoerce' :: Coercible a b => FunArrow i a c -> FunArrow i b c # rcoerce' :: Coercible a b => FunArrow i c a -> FunArrow i c b # conjoined__ :: (FunArrow i a b -> FunArrow i s t) -> (FunArrow i a b -> FunArrow j s t) -> FunArrow i a b -> FunArrow j s t # ixcontramap :: (j -> i) -> FunArrow i a b -> FunArrow j a b #
Profunctor IxFunArrow # |
Instance details Defined in Data.Profunctor.Indexed Methods dimap :: (a -> b) -> (c -> d) -> IxFunArrow i b c -> IxFunArrow i a d # lmap :: (a -> b) -> IxFunArrow i b c -> IxFunArrow i a c # rmap :: (c -> d) -> IxFunArrow i b c -> IxFunArrow i b d # lcoerce' :: Coercible a b => IxFunArrow i a c -> IxFunArrow i b c # rcoerce' :: Coercible a b => IxFunArrow i c a -> IxFunArrow i c b # conjoined__ :: (IxFunArrow i a b -> IxFunArrow i s t) -> (IxFunArrow i a b -> IxFunArrow j s t) -> IxFunArrow i a b -> IxFunArrow j s t # ixcontramap :: (j -> i) -> IxFunArrow i a b -> IxFunArrow j a b #
Profunctor Tagged # |
Instance details Defined in Data.Profunctor.Indexed Methods dimap :: (a -> b) -> (c -> d) -> Tagged i b c -> Tagged i a d # lmap :: (a -> b) -> Tagged i b c -> Tagged i a c # rmap :: (c -> d) -> Tagged i b c -> Tagged i b d # lcoerce' :: Coercible a b => Tagged i a c -> Tagged i b c # rcoerce' :: Coercible a b => Tagged i c a -> Tagged i c b # 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 # ixcontramap :: (j -> i) -> Tagged i a b -> Tagged j a b #
Profunctor (Forget r) # |
Instance details Defined in Data.Profunctor.Indexed Methods dimap :: (a -> b) -> (c -> d) -> Forget r i b c -> Forget r i a d # lmap :: (a -> b) -> Forget r i b c -> Forget r i a c # rmap :: (c -> d) -> Forget r i b c -> Forget r i b d # lcoerce' :: Coercible a b => Forget r i a c -> Forget r i b c # rcoerce' :: Coercible a b => Forget r i c a -> Forget r i c b # conjoined__ :: (Forget r i a b -> Forget r i s t) -> (Forget r i a b -> Forget r j s t) -> Forget r i a b -> Forget r j s t # ixcontramap :: (j -> i) -> Forget r i a b -> Forget r j a b #
Profunctor (ForgetM r) # |
Instance details Defined in Data.Profunctor.Indexed Methods dimap :: (a -> b) -> (c -> d) -> ForgetM r i b c -> ForgetM r i a d # lmap :: (a -> b) -> ForgetM r i b c -> ForgetM r i a c # rmap :: (c -> d) -> ForgetM r i b c -> ForgetM r i b d # lcoerce' :: Coercible a b => ForgetM r i a c -> ForgetM r i b c # rcoerce' :: Coercible a b => ForgetM r i c a -> ForgetM r i c b # conjoined__ :: (ForgetM r i a b -> ForgetM r i s t) -> (ForgetM r i a b -> ForgetM r j s t) -> ForgetM r i a b -> ForgetM r j s t # ixcontramap :: (j -> i) -> ForgetM r i a b -> ForgetM r j a b #
Profunctor (IxForget r) # |
Instance details Defined in Data.Profunctor.Indexed Methods dimap :: (a -> b) -> (c -> d) -> IxForget r i b c -> IxForget r i a d # lmap :: (a -> b) -> IxForget r i b c -> IxForget r i a c # rmap :: (c -> d) -> IxForget r i b c -> IxForget r i b d # lcoerce' :: Coercible a b => IxForget r i a c -> IxForget r i b c # rcoerce' :: Coercible a b => IxForget r i c a -> IxForget r i c b # conjoined__ :: (IxForget r i a b -> IxForget r i s t) -> (IxForget r i a b -> IxForget r j s t) -> IxForget r i a b -> IxForget r j s t # ixcontramap :: (j -> i) -> IxForget r i a b -> IxForget r j a b #
Profunctor (IxForgetM r) # |
Instance details Defined in Data.Profunctor.Indexed Methods dimap :: (a -> b) -> (c -> d) -> IxForgetM r i b c -> IxForgetM r i a d # lmap :: (a -> b) -> IxForgetM r i b c -> IxForgetM r i a c # rmap :: (c -> d) -> IxForgetM r i b c -> IxForgetM r i b d # lcoerce' :: Coercible a b => IxForgetM r i a c -> IxForgetM r i b c # rcoerce' :: Coercible a b => IxForgetM r i c a -> IxForgetM r i c b # conjoined__ :: (IxForgetM r i a b -> IxForgetM r i s t) -> (IxForgetM r i a b -> IxForgetM r j s t) -> IxForgetM r i a b -> IxForgetM r j s t # ixcontramap :: (j -> i) -> IxForgetM r i a b -> IxForgetM r j a b #
Functor f => Profunctor (IxStar f) # |
Instance details Defined in Data.Profunctor.Indexed Methods dimap :: (a -> b) -> (c -> d) -> IxStar f i b c -> IxStar f i a d # lmap :: (a -> b) -> IxStar f i b c -> IxStar f i a c # rmap :: (c -> d) -> IxStar f i b c -> IxStar f i b d # lcoerce' :: Coercible a b => IxStar f i a c -> IxStar f i b c # rcoerce' :: Coercible a b => IxStar f i c a -> IxStar f i c b # conjoined__ :: (IxStar f i a b -> IxStar f i s t) -> (IxStar f i a b -> IxStar f j s t) -> IxStar f i a b -> IxStar f j s t # ixcontramap :: (j -> i) -> IxStar f i a b -> IxStar f j a b #
Functor f => Profunctor (IxStarA f) # |
Instance details Defined in Data.Profunctor.Indexed Methods dimap :: (a -> b) -> (c -> d) -> IxStarA f i b c -> IxStarA f i a d # lmap :: (a -> b) -> IxStarA f i b c -> IxStarA f i a c # rmap :: (c -> d) -> IxStarA f i b c -> IxStarA f i b d # lcoerce' :: Coercible a b => IxStarA f i a c -> IxStarA f i b c # rcoerce' :: Coercible a b => IxStarA f i c a -> IxStarA f i c b # conjoined__ :: (IxStarA f i a b -> IxStarA f i s t) -> (IxStarA f i a b -> IxStarA f j s t) -> IxStarA f i a b -> IxStarA f j s t # ixcontramap :: (j -> i) -> IxStarA f i a b -> IxStarA f j a b #
Functor f => Profunctor (Star f) # |
Instance details Defined in Data.Profunctor.Indexed Methods dimap :: (a -> b) -> (c -> d) -> Star f i b c -> Star f i a d # lmap :: (a -> b) -> Star f i b c -> Star f i a c # rmap :: (c -> d) -> Star f i b c -> Star f i b d # lcoerce' :: Coercible a b => Star f i a c -> Star f i b c # rcoerce' :: Coercible a b => Star f i c a -> Star f i c b # conjoined__ :: (Star f i a b -> Star f i s t) -> (Star f i a b -> Star f j s t) -> Star f i a b -> Star f j s t # ixcontramap :: (j -> i) -> Star f i a b -> Star f j a b #
Functor f => Profunctor (StarA f) # |
Instance details Defined in Data.Profunctor.Indexed Methods dimap :: (a -> b) -> (c -> d) -> StarA f i b c -> StarA f i a d # lmap :: (a -> b) -> StarA f i b c -> StarA f i a c # rmap :: (c -> d) -> StarA f i b c -> StarA f i b d # lcoerce' :: Coercible a b => StarA f i a c -> StarA f i b c # rcoerce' :: Coercible a b => StarA f i c a -> StarA f i c b # conjoined__ :: (StarA f i a b -> StarA f i s t) -> (StarA f i a b -> StarA f j s t) -> StarA f i a b -> StarA f j s t # ixcontramap :: (j -> i) -> StarA f i a b -> StarA f j a b #
Profunctor (AffineMarket a b) # |
Instance details Defined in Data.Profunctor.Indexed Methods dimap :: (a0 -> b0) -> (c -> d) -> AffineMarket a b i b0 c -> AffineMarket a b i a0 d # lmap :: (a0 -> b0) -> AffineMarket a b i b0 c -> AffineMarket a b i a0 c # rmap :: (c -> d) -> AffineMarket a b i b0 c -> AffineMarket a b i b0 d # lcoerce' :: Coercible a0 b0 => AffineMarket a b i a0 c -> AffineMarket a b i b0 c # rcoerce' :: Coercible a0 b0 => AffineMarket a b i c a0 -> AffineMarket a b i c b0 # 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 # ixcontramap :: (j -> i) -> AffineMarket a b i a0 b0 -> AffineMarket a b j a0 b0 #
Profunctor (Exchange a b) # |
Instance details Defined in Data.Profunctor.Indexed Methods dimap :: (a0 -> b0) -> (c -> d) -> Exchange a b i b0 c -> Exchange a b i a0 d # lmap :: (a0 -> b0) -> Exchange a b i b0 c -> Exchange a b i a0 c # rmap :: (c -> d) -> Exchange a b i b0 c -> Exchange a b i b0 d # lcoerce' :: Coercible a0 b0 => Exchange a b i a0 c -> Exchange a b i b0 c # rcoerce' :: Coercible a0 b0 => Exchange a b i c a0 -> Exchange a b i c b0 # 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 # ixcontramap :: (j -> i) -> Exchange a b i a0 b0 -> Exchange a b j a0 b0 #
Profunctor (Market a b) # |
Instance details Defined in Data.Profunctor.Indexed Methods dimap :: (a0 -> b0) -> (c -> d) -> Market a b i b0 c -> Market a b i a0 d # lmap :: (a0 -> b0) -> Market a b i b0 c -> Market a b i a0 c # rmap :: (c -> d) -> Market a b i b0 c -> Market a b i b0 d # lcoerce' :: Coercible a0 b0 => Market a b i a0 c -> Market a b i b0 c # rcoerce' :: Coercible a0 b0 => Market a b i c a0 -> Market a b i c b0 # 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 # ixcontramap :: (j -> i) -> Market a b i a0 b0 -> Market a b j a0 b0 #
Profunctor (Store a b) # |
Instance details Defined in Data.Profunctor.Indexed Methods dimap :: (a0 -> b0) -> (c -> d) -> Store a b i b0 c -> Store a b i a0 d # lmap :: (a0 -> b0) -> Store a b i b0 c -> Store a b i a0 c # rmap :: (c -> d) -> Store a b i b0 c -> Store a b i b0 d # lcoerce' :: Coercible a0 b0 => Store a b i a0 c -> Store a b i b0 c # rcoerce' :: Coercible a0 b0 => Store a b i c a0 -> Store a b i c b0 # 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 # ixcontramap :: (j -> i) -> Store a b i a0 b0 -> Store a b j a0 b0 #

lcoerce :: (Coercible a b, Profunctor p) => p i a c -> p i b c #

`lcoerce'` with type arguments rearranged for TypeApplications.

rcoerce :: (Coercible a b, Profunctor p) => p i c a -> p i c b #

`rcoerce'` with type arguments rearranged for TypeApplications.

class Profunctor p => Strong (p :: Type -> Type -> Type -> Type) where #

Minimal complete definition

first', second'

Methods

first' :: p i a b -> p i (a, c) (b, c) #

second' :: p i a b -> p i (c, a) (c, b) #

linear :: (forall (f :: Type -> Type). Functor f => (a -> f b) -> s -> f t) -> p i a b -> p i s t #

ilinear :: (forall (f :: Type -> Type). Functor f => (i -> a -> f b) -> s -> f t) -> p j a b -> p (i -> j) s t #

default ilinear :: Coercible (p j s t) (p (i -> j) s t) => (forall (f :: Type -> Type). Functor f => (i -> a -> f b) -> s -> f t) -> p j a b -> p (i -> j) s t #

#### Instances

Instances details

Strong FunArrow # |
Instance details Defined in Data.Profunctor.Indexed Methods first' :: FunArrow i a b -> FunArrow i (a, c) (b, c) # second' :: FunArrow i a b -> FunArrow i (c, a) (c, b) # linear :: (forall (f :: Type -> Type). Functor f => (a -> f b) -> s -> f t) -> FunArrow i a b -> FunArrow i s t # ilinear :: (forall (f :: Type -> Type). Functor f => (i -> a -> f b) -> s -> f t) -> FunArrow j a b -> FunArrow (i -> j) s t #
Strong IxFunArrow # |
Instance details Defined in Data.Profunctor.Indexed Methods first' :: IxFunArrow i a b -> IxFunArrow i (a, c) (b, c) # second' :: IxFunArrow i a b -> IxFunArrow i (c, a) (c, b) # linear :: (forall (f :: Type -> Type). Functor f => (a -> f b) -> s -> f t) -> IxFunArrow i a b -> IxFunArrow i s t # ilinear :: (forall (f :: Type -> Type). Functor f => (i -> a -> f b) -> s -> f t) -> IxFunArrow j a b -> IxFunArrow (i -> j) s t #
Strong (Forget r) # |
Instance details Defined in Data.Profunctor.Indexed Methods first' :: Forget r i a b -> Forget r i (a, c) (b, c) # second' :: Forget r i a b -> Forget r i (c, a) (c, b) # linear :: (forall (f :: Type -> Type). Functor f => (a -> f b) -> s -> f t) -> Forget r i a b -> Forget r i s t # ilinear :: (forall (f :: Type -> Type). Functor f => (i -> a -> f b) -> s -> f t) -> Forget r j a b -> Forget r (i -> j) s t #
Strong (ForgetM r) # |
Instance details Defined in Data.Profunctor.Indexed Methods first' :: ForgetM r i a b -> ForgetM r i (a, c) (b, c) # second' :: ForgetM r i a b -> ForgetM r i (c, a) (c, b) # linear :: (forall (f :: Type -> Type). Functor f => (a -> f b) -> s -> f t) -> ForgetM r i a b -> ForgetM r i s t # ilinear :: (forall (f :: Type -> Type). Functor f => (i -> a -> f b) -> s -> f t) -> ForgetM r j a b -> ForgetM r (i -> j) s t #
Strong (IxForget r) # |
Instance details Defined in Data.Profunctor.Indexed Methods first' :: IxForget r i a b -> IxForget r i (a, c) (b, c) # second' :: IxForget r i a b -> IxForget r i (c, a) (c, b) # linear :: (forall (f :: Type -> Type). Functor f => (a -> f b) -> s -> f t) -> IxForget r i a b -> IxForget r i s t # ilinear :: (forall (f :: Type -> Type). Functor f => (i -> a -> f b) -> s -> f t) -> IxForget r j a b -> IxForget r (i -> j) s t #
Strong (IxForgetM r) # |
Instance details Defined in Data.Profunctor.Indexed Methods first' :: IxForgetM r i a b -> IxForgetM r i (a, c) (b, c) # second' :: IxForgetM r i a b -> IxForgetM r i (c, a) (c, b) # linear :: (forall (f :: Type -> Type). Functor f => (a -> f b) -> s -> f t) -> IxForgetM r i a b -> IxForgetM r i s t # ilinear :: (forall (f :: Type -> Type). Functor f => (i -> a -> f b) -> s -> f t) -> IxForgetM r j a b -> IxForgetM r (i -> j) s t #
Functor f => Strong (IxStar f) # |
Instance details Defined in Data.Profunctor.Indexed Methods first' :: IxStar f i a b -> IxStar f i (a, c) (b, c) # second' :: IxStar f i a b -> IxStar f i (c, a) (c, b) # linear :: (forall (f0 :: Type -> Type). Functor f0 => (a -> f0 b) -> s -> f0 t) -> IxStar f i a b -> IxStar f i s t # ilinear :: (forall (f0 :: Type -> Type). Functor f0 => (i -> a -> f0 b) -> s -> f0 t) -> IxStar f j a b -> IxStar f (i -> j) s t #
Functor f => Strong (IxStarA f) # |
Instance details Defined in Data.Profunctor.Indexed Methods first' :: IxStarA f i a b -> IxStarA f i (a, c) (b, c) # second' :: IxStarA f i a b -> IxStarA f i (c, a) (c, b) # linear :: (forall (f0 :: Type -> Type). Functor f0 => (a -> f0 b) -> s -> f0 t) -> IxStarA f i a b -> IxStarA f i s t # ilinear :: (forall (f0 :: Type -> Type). Functor f0 => (i -> a -> f0 b) -> s -> f0 t) -> IxStarA f j a b -> IxStarA f (i -> j) s t #
Functor f => Strong (Star f) # |
Instance details Defined in Data.Profunctor.Indexed Methods first' :: Star f i a b -> Star f i (a, c) (b, c) # second' :: Star f i a b -> Star f i (c, a) (c, b) # linear :: (forall (f0 :: Type -> Type). Functor f0 => (a -> f0 b) -> s -> f0 t) -> Star f i a b -> Star f i s t # ilinear :: (forall (f0 :: Type -> Type). Functor f0 => (i -> a -> f0 b) -> s -> f0 t) -> Star f j a b -> Star f (i -> j) s t #
Functor f => Strong (StarA f) # |
Instance details Defined in Data.Profunctor.Indexed Methods first' :: StarA f i a b -> StarA f i (a, c) (b, c) # second' :: StarA f i a b -> StarA f i (c, a) (c, b) # linear :: (forall (f0 :: Type -> Type). Functor f0 => (a -> f0 b) -> s -> f0 t) -> StarA f i a b -> StarA f i s t # ilinear :: (forall (f0 :: Type -> Type). Functor f0 => (i -> a -> f0 b) -> s -> f0 t) -> StarA f j a b -> StarA f (i -> j) s t #
Strong (AffineMarket a b) # |
Instance details Defined in Data.Profunctor.Indexed Methods first' :: AffineMarket a b i a0 b0 -> AffineMarket a b i (a0, c) (b0, c) # second' :: AffineMarket a b i a0 b0 -> AffineMarket a b i (c, a0) (c, b0) # 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 # 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 #
Strong (Store a b) # |
Instance details Defined in Data.Profunctor.Indexed Methods first' :: Store a b i a0 b0 -> Store a b i (a0, c) (b0, c) # second' :: Store a b i a0 b0 -> Store a b i (c, a0) (c, b0) # 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 # 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 #

class Profunctor p => Costrong (p :: Type -> Type -> Type -> Type) where #

Methods

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

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

#### Instances

Instances details

Costrong Tagged # |
Instance details Defined in Data.Profunctor.Indexed Methods unfirst :: Tagged i (a, d) (b, d) -> Tagged i a b # unsecond :: Tagged i (d, a) (d, b) -> Tagged i a b #

class Profunctor p => Choice (p :: Type -> Type -> Type -> Type) where #

Methods

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

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

#### Instances

Instances details

Choice FunArrow # |
Instance details Defined in Data.Profunctor.Indexed Methods left' :: FunArrow i a b -> FunArrow i (Either a c) (Either b c) # right' :: FunArrow i a b -> FunArrow i (Either c a) (Either c b) #
Choice IxFunArrow # |
Instance details Defined in Data.Profunctor.Indexed Methods left' :: IxFunArrow i a b -> IxFunArrow i (Either a c) (Either b c) # right' :: IxFunArrow i a b -> IxFunArrow i (Either c a) (Either c b) #
Choice Tagged # |
Instance details Defined in Data.Profunctor.Indexed Methods left' :: Tagged i a b -> Tagged i (Either a c) (Either b c) # right' :: Tagged i a b -> Tagged i (Either c a) (Either c b) #
Monoid r => Choice (Forget r) # |
Instance details Defined in Data.Profunctor.Indexed Methods left' :: Forget r i a b -> Forget r i (Either a c) (Either b c) # right' :: Forget r i a b -> Forget r i (Either c a) (Either c b) #
Choice (ForgetM r) # |
Instance details Defined in Data.Profunctor.Indexed Methods left' :: ForgetM r i a b -> ForgetM r i (Either a c) (Either b c) # right' :: ForgetM r i a b -> ForgetM r i (Either c a) (Either c b) #
Monoid r => Choice (IxForget r) # |
Instance details Defined in Data.Profunctor.Indexed Methods left' :: IxForget r i a b -> IxForget r i (Either a c) (Either b c) # right' :: IxForget r i a b -> IxForget r i (Either c a) (Either c b) #
Choice (IxForgetM r) # |
Instance details Defined in Data.Profunctor.Indexed Methods left' :: IxForgetM r i a b -> IxForgetM r i (Either a c) (Either b c) # right' :: IxForgetM r i a b -> IxForgetM r i (Either c a) (Either c b) #
Applicative f => Choice (IxStar f) # |
Instance details Defined in Data.Profunctor.Indexed Methods left' :: IxStar f i a b -> IxStar f i (Either a c) (Either b c) # right' :: IxStar f i a b -> IxStar f i (Either c a) (Either c b) #
Functor f => Choice (IxStarA f) # |
Instance details Defined in Data.Profunctor.Indexed Methods left' :: IxStarA f i a b -> IxStarA f i (Either a c) (Either b c) # right' :: IxStarA f i a b -> IxStarA f i (Either c a) (Either c b) #
Applicative f => Choice (Star f) # |
Instance details Defined in Data.Profunctor.Indexed Methods left' :: Star f i a b -> Star f i (Either a c) (Either b c) # right' :: Star f i a b -> Star f i (Either c a) (Either c b) #
Functor f => Choice (StarA f) # |
Instance details Defined in Data.Profunctor.Indexed Methods left' :: StarA f i a b -> StarA f i (Either a c) (Either b c) # right' :: StarA f i a b -> StarA f i (Either c a) (Either c b) #
Choice (AffineMarket a b) # |
Instance details Defined in Data.Profunctor.Indexed Methods left' :: AffineMarket a b i a0 b0 -> AffineMarket a b i (Either a0 c) (Either b0 c) # right' :: AffineMarket a b i a0 b0 -> AffineMarket a b i (Either c a0) (Either c b0) #
Choice (Market a b) # |
Instance details Defined in Data.Profunctor.Indexed Methods left' :: Market a b i a0 b0 -> Market a b i (Either a0 c) (Either b0 c) # right' :: Market a b i a0 b0 -> Market a b i (Either c a0) (Either c b0) #

class Profunctor p => Cochoice (p :: Type -> Type -> Type -> Type) where #

Methods

unleft :: p i (Either a d) (Either b d) -> p i a b #

unright :: p i (Either d a) (Either d b) -> p i a b #

#### Instances

Instances details

Cochoice (Forget r) # |
Instance details Defined in Data.Profunctor.Indexed Methods unleft :: Forget r i (Either a d) (Either b d) -> Forget r i a b # unright :: Forget r i (Either d a) (Either d b) -> Forget r i a b #
Cochoice (ForgetM r) # |
Instance details Defined in Data.Profunctor.Indexed Methods unleft :: ForgetM r i (Either a d) (Either b d) -> ForgetM r i a b # unright :: ForgetM r i (Either d a) (Either d b) -> ForgetM r i a b #
Cochoice (IxForget r) # |
Instance details Defined in Data.Profunctor.Indexed Methods unleft :: IxForget r i (Either a d) (Either b d) -> IxForget r i a b # unright :: IxForget r i (Either d a) (Either d b) -> IxForget r i a b #
Cochoice (IxForgetM r) # |
Instance details Defined in Data.Profunctor.Indexed Methods unleft :: IxForgetM r i (Either a d) (Either b d) -> IxForgetM r i a b # unright :: IxForgetM r i (Either d a) (Either d b) -> IxForgetM r i a b #

class (Choice p, Strong p) => Visiting (p :: Type -> Type -> Type -> Type) where #

Minimal complete definition

Nothing

Methods

visit :: forall i s t a b. (forall (f :: Type -> Type). Functor f => (forall r. r -> f r) -> (a -> f b) -> s -> f t) -> p i a b -> p i s t #

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

default ivisit :: Coercible (p j s t) (p (i -> j) s t) => (forall (f :: Type -> Type). Functor f => (forall r. r -> f r) -> (i -> a -> f b) -> s -> f t) -> p j a b -> p (i -> j) s t #

#### Instances

Instances details

Visiting FunArrow # |
Instance details Defined in Data.Profunctor.Indexed Methods visit :: forall i s t a b. (forall (f :: Type -> Type). Functor f => (forall r. r -> f r) -> (a -> f b) -> s -> f t) -> FunArrow i a b -> FunArrow i s t # ivisit :: (forall (f :: Type -> Type). Functor f => (forall r. r -> f r) -> (i -> a -> f b) -> s -> f t) -> FunArrow j a b -> FunArrow (i -> j) s t #
Visiting IxFunArrow # |
Instance details Defined in Data.Profunctor.Indexed Methods visit :: forall i s t a b. (forall (f :: Type -> Type). Functor f => (forall r. r -> f r) -> (a -> f b) -> s -> f t) -> IxFunArrow i a b -> IxFunArrow i s t # ivisit :: (forall (f :: Type -> Type). Functor f => (forall r. r -> f r) -> (i -> a -> f b) -> s -> f t) -> IxFunArrow j a b -> IxFunArrow (i -> j) s t #
Monoid r => Visiting (Forget r) # |
Instance details Defined in Data.Profunctor.Indexed Methods visit :: forall i s t a b. (forall (f :: Type -> Type). Functor f => (forall r0. r0 -> f r0) -> (a -> f b) -> s -> f t) -> Forget r i a b -> Forget r i s t # ivisit :: (forall (f :: Type -> Type). Functor f => (forall r0. r0 -> f r0) -> (i -> a -> f b) -> s -> f t) -> Forget r j a b -> Forget r (i -> j) s t #
Visiting (ForgetM r) # |
Instance details Defined in Data.Profunctor.Indexed Methods visit :: forall i s t a b. (forall (f :: Type -> Type). Functor f => (forall r0. r0 -> f r0) -> (a -> f b) -> s -> f t) -> ForgetM r i a b -> ForgetM r i s t # ivisit :: (forall (f :: Type -> Type). Functor f => (forall r0. r0 -> f r0) -> (i -> a -> f b) -> s -> f t) -> ForgetM r j a b -> ForgetM r (i -> j) s t #
Monoid r => Visiting (IxForget r) # |
Instance details Defined in Data.Profunctor.Indexed Methods visit :: forall i s t a b. (forall (f :: Type -> Type). Functor f => (forall r0. r0 -> f r0) -> (a -> f b) -> s -> f t) -> IxForget r i a b -> IxForget r i s t # ivisit :: (forall (f :: Type -> Type). Functor f => (forall r0. r0 -> f r0) -> (i -> a -> f b) -> s -> f t) -> IxForget r j a b -> IxForget r (i -> j) s t #
Visiting (IxForgetM r) # |
Instance details Defined in Data.Profunctor.Indexed Methods visit :: forall i s t a b. (forall (f :: Type -> Type). Functor f => (forall r0. r0 -> f r0) -> (a -> f b) -> s -> f t) -> IxForgetM r i a b -> IxForgetM r i s t # ivisit :: (forall (f :: Type -> Type). Functor f => (forall r0. r0 -> f r0) -> (i -> a -> f b) -> s -> f t) -> IxForgetM r j a b -> IxForgetM r (i -> j) s t #
Applicative f => Visiting (IxStar f) # |
Instance details Defined in Data.Profunctor.Indexed Methods visit :: forall i s t a b. (forall (f0 :: Type -> Type). Functor f0 => (forall r. r -> f0 r) -> (a -> f0 b) -> s -> f0 t) -> IxStar f i a b -> IxStar f i s t # ivisit :: (forall (f0 :: Type -> Type). Functor f0 => (forall r. r -> f0 r) -> (i -> a -> f0 b) -> s -> f0 t) -> IxStar f j a b -> IxStar f (i -> j) s t #
Functor f => Visiting (IxStarA f) # |
Instance details Defined in Data.Profunctor.Indexed Methods visit :: forall i s t a b. (forall (f0 :: Type -> Type). Functor f0 => (forall r. r -> f0 r) -> (a -> f0 b) -> s -> f0 t) -> IxStarA f i a b -> IxStarA f i s t # ivisit :: (forall (f0 :: Type -> Type). Functor f0 => (forall r. r -> f0 r) -> (i -> a -> f0 b) -> s -> f0 t) -> IxStarA f j a b -> IxStarA f (i -> j) s t #
Applicative f => Visiting (Star f) # |
Instance details Defined in Data.Profunctor.Indexed Methods visit :: forall i s t a b. (forall (f0 :: Type -> Type). Functor f0 => (forall r. r -> f0 r) -> (a -> f0 b) -> s -> f0 t) -> Star f i a b -> Star f i s t # ivisit :: (forall (f0 :: Type -> Type). Functor f0 => (forall r. r -> f0 r) -> (i -> a -> f0 b) -> s -> f0 t) -> Star f j a b -> Star f (i -> j) s t #
Functor f => Visiting (StarA f) # |
Instance details Defined in Data.Profunctor.Indexed Methods visit :: forall i s t a b. (forall (f0 :: Type -> Type). Functor f0 => (forall r. r -> f0 r) -> (a -> f0 b) -> s -> f0 t) -> StarA f i a b -> StarA f i s t # ivisit :: (forall (f0 :: Type -> Type). Functor f0 => (forall r. r -> f0 r) -> (i -> a -> f0 b) -> s -> f0 t) -> StarA f j a b -> StarA f (i -> j) s t #
Visiting (AffineMarket a b) # |
Instance details Defined in Data.Profunctor.Indexed Methods visit :: forall i s t a0 b0. (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 # 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 #

class Traversing p => Mapping (p :: Type -> Type -> Type -> Type) where #

Methods

roam :: ((a -> b) -> s -> t) -> p i a b -> p i s t #

iroam :: ((i -> a -> b) -> s -> t) -> p j a b -> p (i -> j) s t #

#### Instances

Instances details

Mapping FunArrow # |
Instance details Defined in Data.Profunctor.Indexed Methods roam :: ((a -> b) -> s -> t) -> FunArrow i a b -> FunArrow i s t # iroam :: ((i -> a -> b) -> s -> t) -> FunArrow j a b -> FunArrow (i -> j) s t #
Mapping IxFunArrow # |
Instance details Defined in Data.Profunctor.Indexed Methods roam :: ((a -> b) -> s -> t) -> IxFunArrow i a b -> IxFunArrow i s t # iroam :: ((i -> a -> b) -> s -> t) -> IxFunArrow j a b -> IxFunArrow (i -> j) s t #

class Visiting p => Traversing (p :: Type -> Type -> Type -> Type) where #

Methods

wander :: (forall (f :: Type -> Type). Applicative f => (a -> f b) -> s -> f t) -> p i a b -> p i s t #

iwander :: (forall (f :: Type -> Type). Applicative f => (i -> a -> f b) -> s -> f t) -> p j a b -> p (i -> j) s t #

#### Instances

Instances details

Traversing FunArrow # |
Instance details Defined in Data.Profunctor.Indexed Methods wander :: (forall (f :: Type -> Type). Applicative f => (a -> f b) -> s -> f t) -> FunArrow i a b -> FunArrow i s t # iwander :: (forall (f :: Type -> Type). Applicative f => (i -> a -> f b) -> s -> f t) -> FunArrow j a b -> FunArrow (i -> j) s t #
Traversing IxFunArrow # |
Instance details Defined in Data.Profunctor.Indexed Methods wander :: (forall (f :: Type -> Type). Applicative f => (a -> f b) -> s -> f t) -> IxFunArrow i a b -> IxFunArrow i s t # iwander :: (forall (f :: Type -> Type). Applicative f => (i -> a -> f b) -> s -> f t) -> IxFunArrow j a b -> IxFunArrow (i -> j) s t #
Monoid r => Traversing (Forget r) # |
Instance details Defined in Data.Profunctor.Indexed Methods wander :: (forall (f :: Type -> Type). Applicative f => (a -> f b) -> s -> f t) -> Forget r i a b -> Forget r i s t # iwander :: (forall (f :: Type -> Type). Applicative f => (i -> a -> f b) -> s -> f t) -> Forget r j a b -> Forget r (i -> j) s t #
Monoid r => Traversing (IxForget r) # |
Instance details Defined in Data.Profunctor.Indexed Methods wander :: (forall (f :: Type -> Type). Applicative f => (a -> f b) -> s -> f t) -> IxForget r i a b -> IxForget r i s t # iwander :: (forall (f :: Type -> Type). Applicative f => (i -> a -> f b) -> s -> f t) -> IxForget r j a b -> IxForget r (i -> j) s t #
Applicative f => Traversing (IxStar f) # |
Instance details Defined in Data.Profunctor.Indexed Methods wander :: (forall (f0 :: Type -> Type). Applicative f0 => (a -> f0 b) -> s -> f0 t) -> IxStar f i a b -> IxStar f i s t # iwander :: (forall (f0 :: Type -> Type). Applicative f0 => (i -> a -> f0 b) -> s -> f0 t) -> IxStar f j a b -> IxStar f (i -> j) s t #
Applicative f => Traversing (Star f) # |
Instance details Defined in Data.Profunctor.Indexed Methods wander :: (forall (f0 :: Type -> Type). Applicative f0 => (a -> f0 b) -> s -> f0 t) -> Star f i a b -> Star f i s t # iwander :: (forall (f0 :: Type -> Type). Applicative f0 => (i -> a -> f0 b) -> s -> f0 t) -> Star f j a b -> Star f (i -> j) s t #

# Concrete profunctors

newtype Star (f :: Type -> Type) i a b #

Needed for traversals.

Constructors

Star |
Fields runStar :: a -> f b

#### Instances

Instances details

Applicative f => Choice (Star f) # |
Instance details Defined in Data.Profunctor.Indexed Methods left' :: Star f i a b -> Star f i (Either a c) (Either b c) # right' :: Star f i a b -> Star f i (Either c a) (Either c b) #
Functor f => Profunctor (Star f) # |
Instance details Defined in Data.Profunctor.Indexed Methods dimap :: (a -> b) -> (c -> d) -> Star f i b c -> Star f i a d # lmap :: (a -> b) -> Star f i b c -> Star f i a c # rmap :: (c -> d) -> Star f i b c -> Star f i b d # lcoerce' :: Coercible a b => Star f i a c -> Star f i b c # rcoerce' :: Coercible a b => Star f i c a -> Star f i c b # conjoined__ :: (Star f i a b -> Star f i s t) -> (Star f i a b -> Star f j s t) -> Star f i a b -> Star f j s t # ixcontramap :: (j -> i) -> Star f i a b -> Star f j a b #
Functor f => Strong (Star f) # |
Instance details Defined in Data.Profunctor.Indexed Methods first' :: Star f i a b -> Star f i (a, c) (b, c) # second' :: Star f i a b -> Star f i (c, a) (c, b) # linear :: (forall (f0 :: Type -> Type). Functor f0 => (a -> f0 b) -> s -> f0 t) -> Star f i a b -> Star f i s t # ilinear :: (forall (f0 :: Type -> Type). Functor f0 => (i -> a -> f0 b) -> s -> f0 t) -> Star f j a b -> Star f (i -> j) s t #
Applicative f => Traversing (Star f) # |
Instance details Defined in Data.Profunctor.Indexed Methods wander :: (forall (f0 :: Type -> Type). Applicative f0 => (a -> f0 b) -> s -> f0 t) -> Star f i a b -> Star f i s t # iwander :: (forall (f0 :: Type -> Type). Applicative f0 => (i -> a -> f0 b) -> s -> f0 t) -> Star f j a b -> Star f (i -> j) s t #
Applicative f => Visiting (Star f) # |
Instance details Defined in Data.Profunctor.Indexed Methods visit :: forall i s t a b. (forall (f0 :: Type -> Type). Functor f0 => (forall r. r -> f0 r) -> (a -> f0 b) -> s -> f0 t) -> Star f i a b -> Star f i s t # ivisit :: (forall (f0 :: Type -> Type). Functor f0 => (forall r. r -> f0 r) -> (i -> a -> f0 b) -> s -> f0 t) -> Star f j a b -> Star f (i -> j) s t #

reStar :: forall (f :: Type -> Type) i a b j. Star f i a b -> Star f j a b #

Repack `Star` to change its index type.

newtype Forget r i a b #

Needed for getters and folds.

Constructors

Forget |
Fields runForget :: a -> r

#### Instances

Instances details

Monoid r => Choice (Forget r) # |
Instance details Defined in Data.Profunctor.Indexed Methods left' :: Forget r i a b -> Forget r i (Either a c) (Either b c) # right' :: Forget r i a b -> Forget r i (Either c a) (Either c b) #
Cochoice (Forget r) # |
Instance details Defined in Data.Profunctor.Indexed Methods unleft :: Forget r i (Either a d) (Either b d) -> Forget r i a b # unright :: Forget r i (Either d a) (Either d b) -> Forget r i a b #
Profunctor (Forget r) # |
Instance details Defined in Data.Profunctor.Indexed Methods dimap :: (a -> b) -> (c -> d) -> Forget r i b c -> Forget r i a d # lmap :: (a -> b) -> Forget r i b c -> Forget r i a c # rmap :: (c -> d) -> Forget r i b c -> Forget r i b d # lcoerce' :: Coercible a b => Forget r i a c -> Forget r i b c # rcoerce' :: Coercible a b => Forget r i c a -> Forget r i c b # conjoined__ :: (Forget r i a b -> Forget r i s t) -> (Forget r i a b -> Forget r j s t) -> Forget r i a b -> Forget r j s t # ixcontramap :: (j -> i) -> Forget r i a b -> Forget r j a b #
Strong (Forget r) # |
Instance details Defined in Data.Profunctor.Indexed Methods first' :: Forget r i a b -> Forget r i (a, c) (b, c) # second' :: Forget r i a b -> Forget r i (c, a) (c, b) # linear :: (forall (f :: Type -> Type). Functor f => (a -> f b) -> s -> f t) -> Forget r i a b -> Forget r i s t # ilinear :: (forall (f :: Type -> Type). Functor f => (i -> a -> f b) -> s -> f t) -> Forget r j a b -> Forget r (i -> j) s t #
Monoid r => Traversing (Forget r) # |
Instance details Defined in Data.Profunctor.Indexed Methods wander :: (forall (f :: Type -> Type). Applicative f => (a -> f b) -> s -> f t) -> Forget r i a b -> Forget r i s t # iwander :: (forall (f :: Type -> Type). Applicative f => (i -> a -> f b) -> s -> f t) -> Forget r j a b -> Forget r (i -> j) s t #
Monoid r => Visiting (Forget r) # |
Instance details Defined in Data.Profunctor.Indexed Methods visit :: forall i s t a b. (forall (f :: Type -> Type). Functor f => (forall r0. r0 -> f r0) -> (a -> f b) -> s -> f t) -> Forget r i a b -> Forget r i s t # ivisit :: (forall (f :: Type -> Type). Functor f => (forall r0. r0 -> f r0) -> (i -> a -> f b) -> s -> f t) -> Forget r j a b -> Forget r (i -> j) s t #

reForget :: Forget r i a b -> Forget r j a b #

Repack `Forget` to change its index type.

newtype ForgetM r i a b #

Needed for affine folds.

Constructors

ForgetM |
Fields runForgetM :: a -> Maybe r

#### Instances

Instances details

Choice (ForgetM r) # |
Instance details Defined in Data.Profunctor.Indexed Methods left' :: ForgetM r i a b -> ForgetM r i (Either a c) (Either b c) # right' :: ForgetM r i a b -> ForgetM r i (Either c a) (Either c b) #
Cochoice (ForgetM r) # |
Instance details Defined in Data.Profunctor.Indexed Methods unleft :: ForgetM r i (Either a d) (Either b d) -> ForgetM r i a b # unright :: ForgetM r i (Either d a) (Either d b) -> ForgetM r i a b #
Profunctor (ForgetM r) # |
Instance details Defined in Data.Profunctor.Indexed Methods dimap :: (a -> b) -> (c -> d) -> ForgetM r i b c -> ForgetM r i a d # lmap :: (a -> b) -> ForgetM r i b c -> ForgetM r i a c # rmap :: (c -> d) -> ForgetM r i b c -> ForgetM r i b d # lcoerce' :: Coercible a b => ForgetM r i a c -> ForgetM r i b c # rcoerce' :: Coercible a b => ForgetM r i c a -> ForgetM r i c b # conjoined__ :: (ForgetM r i a b -> ForgetM r i s t) -> (ForgetM r i a b -> ForgetM r j s t) -> ForgetM r i a b -> ForgetM r j s t # ixcontramap :: (j -> i) -> ForgetM r i a b -> ForgetM r j a b #
Strong (ForgetM r) # |
Instance details Defined in Data.Profunctor.Indexed Methods first' :: ForgetM r i a b -> ForgetM r i (a, c) (b, c) # second' :: ForgetM r i a b -> ForgetM r i (c, a) (c, b) # linear :: (forall (f :: Type -> Type). Functor f => (a -> f b) -> s -> f t) -> ForgetM r i a b -> ForgetM r i s t # ilinear :: (forall (f :: Type -> Type). Functor f => (i -> a -> f b) -> s -> f t) -> ForgetM r j a b -> ForgetM r (i -> j) s t #
Visiting (ForgetM r) # |
Instance details Defined in Data.Profunctor.Indexed Methods visit :: forall i s t a b. (forall (f :: Type -> Type). Functor f => (forall r0. r0 -> f r0) -> (a -> f b) -> s -> f t) -> ForgetM r i a b -> ForgetM r i s t # ivisit :: (forall (f :: Type -> Type). Functor f => (forall r0. r0 -> f r0) -> (i -> a -> f b) -> s -> f t) -> ForgetM r j a b -> ForgetM r (i -> j) s t #

newtype FunArrow i a b #

Needed for setters.

Constructors

FunArrow |
Fields runFunArrow :: a -> b

#### Instances

Instances details

Choice FunArrow # |
Instance details Defined in Data.Profunctor.Indexed Methods left' :: FunArrow i a b -> FunArrow i (Either a c) (Either b c) # right' :: FunArrow i a b -> FunArrow i (Either c a) (Either c b) #
Mapping FunArrow # |
Instance details Defined in Data.Profunctor.Indexed Methods roam :: ((a -> b) -> s -> t) -> FunArrow i a b -> FunArrow i s t # iroam :: ((i -> a -> b) -> s -> t) -> FunArrow j a b -> FunArrow (i -> j) s t #
Profunctor FunArrow # |
Instance details Defined in Data.Profunctor.Indexed Methods dimap :: (a -> b) -> (c -> d) -> FunArrow i b c -> FunArrow i a d # lmap :: (a -> b) -> FunArrow i b c -> FunArrow i a c # rmap :: (c -> d) -> FunArrow i b c -> FunArrow i b d # lcoerce' :: Coercible a b => FunArrow i a c -> FunArrow i b c # rcoerce' :: Coercible a b => FunArrow i c a -> FunArrow i c b # conjoined__ :: (FunArrow i a b -> FunArrow i s t) -> (FunArrow i a b -> FunArrow j s t) -> FunArrow i a b -> FunArrow j s t # ixcontramap :: (j -> i) -> FunArrow i a b -> FunArrow j a b #
Strong FunArrow # |
Instance details Defined in Data.Profunctor.Indexed Methods first' :: FunArrow i a b -> FunArrow i (a, c) (b, c) # second' :: FunArrow i a b -> FunArrow i (c, a) (c, b) # linear :: (forall (f :: Type -> Type). Functor f => (a -> f b) -> s -> f t) -> FunArrow i a b -> FunArrow i s t # ilinear :: (forall (f :: Type -> Type). Functor f => (i -> a -> f b) -> s -> f t) -> FunArrow j a b -> FunArrow (i -> j) s t #
Traversing FunArrow # |
Instance details Defined in Data.Profunctor.Indexed Methods wander :: (forall (f :: Type -> Type). Applicative f => (a -> f b) -> s -> f t) -> FunArrow i a b -> FunArrow i s t # iwander :: (forall (f :: Type -> Type). Applicative f => (i -> a -> f b) -> s -> f t) -> FunArrow j a b -> FunArrow (i -> j) s t #
Visiting FunArrow # |
Instance details Defined in Data.Profunctor.Indexed Methods visit :: forall i s t a b. (forall (f :: Type -> Type). Functor f => (forall r. r -> f r) -> (a -> f b) -> s -> f t) -> FunArrow i a b -> FunArrow i s t # ivisit :: (forall (f :: Type -> Type). Functor f => (forall r. r -> f r) -> (i -> a -> f b) -> s -> f t) -> FunArrow j a b -> FunArrow (i -> j) s t #

reFunArrow :: FunArrow i a b -> FunArrow j a b #

Repack `FunArrow` to change its index type.

newtype IxStar (f :: Type -> Type) i a b #

Needed for indexed traversals.

Constructors

IxStar |
Fields runIxStar :: i -> a -> f b

#### Instances

Instances details

Applicative f => Choice (IxStar f) # |
Instance details Defined in Data.Profunctor.Indexed Methods left' :: IxStar f i a b -> IxStar f i (Either a c) (Either b c) # right' :: IxStar f i a b -> IxStar f i (Either c a) (Either c b) #
Functor f => Profunctor (IxStar f) # |
Instance details Defined in Data.Profunctor.Indexed Methods dimap :: (a -> b) -> (c -> d) -> IxStar f i b c -> IxStar f i a d # lmap :: (a -> b) -> IxStar f i b c -> IxStar f i a c # rmap :: (c -> d) -> IxStar f i b c -> IxStar f i b d # lcoerce' :: Coercible a b => IxStar f i a c -> IxStar f i b c # rcoerce' :: Coercible a b => IxStar f i c a -> IxStar f i c b # conjoined__ :: (IxStar f i a b -> IxStar f i s t) -> (IxStar f i a b -> IxStar f j s t) -> IxStar f i a b -> IxStar f j s t # ixcontramap :: (j -> i) -> IxStar f i a b -> IxStar f j a b #
Functor f => Strong (IxStar f) # |
Instance details Defined in Data.Profunctor.Indexed Methods first' :: IxStar f i a b -> IxStar f i (a, c) (b, c) # second' :: IxStar f i a b -> IxStar f i (c, a) (c, b) # linear :: (forall (f0 :: Type -> Type). Functor f0 => (a -> f0 b) -> s -> f0 t) -> IxStar f i a b -> IxStar f i s t # ilinear :: (forall (f0 :: Type -> Type). Functor f0 => (i -> a -> f0 b) -> s -> f0 t) -> IxStar f j a b -> IxStar f (i -> j) s t #
Applicative f => Traversing (IxStar f) # |
Instance details Defined in Data.Profunctor.Indexed Methods wander :: (forall (f0 :: Type -> Type). Applicative f0 => (a -> f0 b) -> s -> f0 t) -> IxStar f i a b -> IxStar f i s t # iwander :: (forall (f0 :: Type -> Type). Applicative f0 => (i -> a -> f0 b) -> s -> f0 t) -> IxStar f j a b -> IxStar f (i -> j) s t #
Applicative f => Visiting (IxStar f) # |
Instance details Defined in Data.Profunctor.Indexed Methods visit :: forall i s t a b. (forall (f0 :: Type -> Type). Functor f0 => (forall r. r -> f0 r) -> (a -> f0 b) -> s -> f0 t) -> IxStar f i a b -> IxStar f i s t # ivisit :: (forall (f0 :: Type -> Type). Functor f0 => (forall r. r -> f0 r) -> (i -> a -> f0 b) -> s -> f0 t) -> IxStar f j a b -> IxStar f (i -> j) s t #

newtype IxForget r i a b #

Needed for indexed folds.

Constructors

IxForget |
Fields runIxForget :: i -> a -> r

#### Instances

Instances details

Monoid r => Choice (IxForget r) # |
Instance details Defined in Data.Profunctor.Indexed Methods left' :: IxForget r i a b -> IxForget r i (Either a c) (Either b c) # right' :: IxForget r i a b -> IxForget r i (Either c a) (Either c b) #
Cochoice (IxForget r) # |
Instance details Defined in Data.Profunctor.Indexed Methods unleft :: IxForget r i (Either a d) (Either b d) -> IxForget r i a b # unright :: IxForget r i (Either d a) (Either d b) -> IxForget r i a b #
Profunctor (IxForget r) # |
Instance details Defined in Data.Profunctor.Indexed Methods dimap :: (a -> b) -> (c -> d) -> IxForget r i b c -> IxForget r i a d # lmap :: (a -> b) -> IxForget r i b c -> IxForget r i a c # rmap :: (c -> d) -> IxForget r i b c -> IxForget r i b d # lcoerce' :: Coercible a b => IxForget r i a c -> IxForget r i b c # rcoerce' :: Coercible a b => IxForget r i c a -> IxForget r i c b # conjoined__ :: (IxForget r i a b -> IxForget r i s t) -> (IxForget r i a b -> IxForget r j s t) -> IxForget r i a b -> IxForget r j s t # ixcontramap :: (j -> i) -> IxForget r i a b -> IxForget r j a b #
Strong (IxForget r) # |
Instance details Defined in Data.Profunctor.Indexed Methods first' :: IxForget r i a b -> IxForget r i (a, c) (b, c) # second' :: IxForget r i a b -> IxForget r i (c, a) (c, b) # linear :: (forall (f :: Type -> Type). Functor f => (a -> f b) -> s -> f t) -> IxForget r i a b -> IxForget r i s t # ilinear :: (forall (f :: Type -> Type). Functor f => (i -> a -> f b) -> s -> f t) -> IxForget r j a b -> IxForget r (i -> j) s t #
Monoid r => Traversing (IxForget r) # |
Instance details Defined in Data.Profunctor.Indexed Methods wander :: (forall (f :: Type -> Type). Applicative f => (a -> f b) -> s -> f t) -> IxForget r i a b -> IxForget r i s t # iwander :: (forall (f :: Type -> Type). Applicative f => (i -> a -> f b) -> s -> f t) -> IxForget r j a b -> IxForget r (i -> j) s t #
Monoid r => Visiting (IxForget r) # |
Instance details Defined in Data.Profunctor.Indexed Methods visit :: forall i s t a b. (forall (f :: Type -> Type). Functor f => (forall r0. r0 -> f r0) -> (a -> f b) -> s -> f t) -> IxForget r i a b -> IxForget r i s t # ivisit :: (forall (f :: Type -> Type). Functor f => (forall r0. r0 -> f r0) -> (i -> a -> f b) -> s -> f t) -> IxForget r j a b -> IxForget r (i -> j) s t #

newtype IxForgetM r i a b #

Needed for indexed affine folds.

Constructors

IxForgetM |
Fields runIxForgetM :: i -> a -> Maybe r

#### Instances

Instances details

Choice (IxForgetM r) # |
Instance details Defined in Data.Profunctor.Indexed Methods left' :: IxForgetM r i a b -> IxForgetM r i (Either a c) (Either b c) # right' :: IxForgetM r i a b -> IxForgetM r i (Either c a) (Either c b) #
Cochoice (IxForgetM r) # |
Instance details Defined in Data.Profunctor.Indexed Methods unleft :: IxForgetM r i (Either a d) (Either b d) -> IxForgetM r i a b # unright :: IxForgetM r i (Either d a) (Either d b) -> IxForgetM r i a b #
Profunctor (IxForgetM r) # |
Instance details Defined in Data.Profunctor.Indexed Methods dimap :: (a -> b) -> (c -> d) -> IxForgetM r i b c -> IxForgetM r i a d # lmap :: (a -> b) -> IxForgetM r i b c -> IxForgetM r i a c # rmap :: (c -> d) -> IxForgetM r i b c -> IxForgetM r i b d # lcoerce' :: Coercible a b => IxForgetM r i a c -> IxForgetM r i b c # rcoerce' :: Coercible a b => IxForgetM r i c a -> IxForgetM r i c b # conjoined__ :: (IxForgetM r i a b -> IxForgetM r i s t) -> (IxForgetM r i a b -> IxForgetM r j s t) -> IxForgetM r i a b -> IxForgetM r j s t # ixcontramap :: (j -> i) -> IxForgetM r i a b -> IxForgetM r j a b #
Strong (IxForgetM r) # |
Instance details Defined in Data.Profunctor.Indexed Methods first' :: IxForgetM r i a b -> IxForgetM r i (a, c) (b, c) # second' :: IxForgetM r i a b -> IxForgetM r i (c, a) (c, b) # linear :: (forall (f :: Type -> Type). Functor f => (a -> f b) -> s -> f t) -> IxForgetM r i a b -> IxForgetM r i s t # ilinear :: (forall (f :: Type -> Type). Functor f => (i -> a -> f b) -> s -> f t) -> IxForgetM r j a b -> IxForgetM r (i -> j) s t #
Visiting (IxForgetM r) # |
Instance details Defined in Data.Profunctor.Indexed Methods visit :: forall i s t a b. (forall (f :: Type -> Type). Functor f => (forall r0. r0 -> f r0) -> (a -> f b) -> s -> f t) -> IxForgetM r i a b -> IxForgetM r i s t # ivisit :: (forall (f :: Type -> Type). Functor f => (forall r0. r0 -> f r0) -> (i -> a -> f b) -> s -> f t) -> IxForgetM r j a b -> IxForgetM r (i -> j) s t #

newtype IxFunArrow i a b #

Needed for indexed setters.

Constructors

IxFunArrow |
Fields runIxFunArrow :: i -> a -> b

#### Instances

Instances details

Choice IxFunArrow # |
Instance details Defined in Data.Profunctor.Indexed Methods left' :: IxFunArrow i a b -> IxFunArrow i (Either a c) (Either b c) # right' :: IxFunArrow i a b -> IxFunArrow i (Either c a) (Either c b) #
Mapping IxFunArrow # |
Instance details Defined in Data.Profunctor.Indexed Methods roam :: ((a -> b) -> s -> t) -> IxFunArrow i a b -> IxFunArrow i s t # iroam :: ((i -> a -> b) -> s -> t) -> IxFunArrow j a b -> IxFunArrow (i -> j) s t #
Profunctor IxFunArrow # |
Instance details Defined in Data.Profunctor.Indexed Methods dimap :: (a -> b) -> (c -> d) -> IxFunArrow i b c -> IxFunArrow i a d # lmap :: (a -> b) -> IxFunArrow i b c -> IxFunArrow i a c # rmap :: (c -> d) -> IxFunArrow i b c -> IxFunArrow i b d # lcoerce' :: Coercible a b => IxFunArrow i a c -> IxFunArrow i b c # rcoerce' :: Coercible a b => IxFunArrow i c a -> IxFunArrow i c b # conjoined__ :: (IxFunArrow i a b -> IxFunArrow i s t) -> (IxFunArrow i a b -> IxFunArrow j s t) -> IxFunArrow i a b -> IxFunArrow j s t # ixcontramap :: (j -> i) -> IxFunArrow i a b -> IxFunArrow j a b #
Strong IxFunArrow # |
Instance details Defined in Data.Profunctor.Indexed Methods first' :: IxFunArrow i a b -> IxFunArrow i (a, c) (b, c) # second' :: IxFunArrow i a b -> IxFunArrow i (c, a) (c, b) # linear :: (forall (f :: Type -> Type). Functor f => (a -> f b) -> s -> f t) -> IxFunArrow i a b -> IxFunArrow i s t # ilinear :: (forall (f :: Type -> Type). Functor f => (i -> a -> f b) -> s -> f t) -> IxFunArrow j a b -> IxFunArrow (i -> j) s t #
Traversing IxFunArrow # |
Instance details Defined in Data.Profunctor.Indexed Methods wander :: (forall (f :: Type -> Type). Applicative f => (a -> f b) -> s -> f t) -> IxFunArrow i a b -> IxFunArrow i s t # iwander :: (forall (f :: Type -> Type). Applicative f => (i -> a -> f b) -> s -> f t) -> IxFunArrow j a b -> IxFunArrow (i -> j) s t #
Visiting IxFunArrow # |
Instance details Defined in Data.Profunctor.Indexed Methods visit :: forall i s t a b. (forall (f :: Type -> Type). Functor f => (forall r. r -> f r) -> (a -> f b) -> s -> f t) -> IxFunArrow i a b -> IxFunArrow i s t # ivisit :: (forall (f :: Type -> Type). Functor f => (forall r. r -> f r) -> (i -> a -> f b) -> s -> f t) -> IxFunArrow j a b -> IxFunArrow (i -> j) s t #

data StarA (f :: Type -> Type) i a b #

Needed for conversion of affine traversal back to its VL representation.

Constructors

StarA (forall r. r -> f r) (a -> f b) |

#### Instances

Instances details

Functor f => Choice (StarA f) # |
Instance details Defined in Data.Profunctor.Indexed Methods left' :: StarA f i a b -> StarA f i (Either a c) (Either b c) # right' :: StarA f i a b -> StarA f i (Either c a) (Either c b) #
Functor f => Profunctor (StarA f) # |
Instance details Defined in Data.Profunctor.Indexed Methods dimap :: (a -> b) -> (c -> d) -> StarA f i b c -> StarA f i a d # lmap :: (a -> b) -> StarA f i b c -> StarA f i a c # rmap :: (c -> d) -> StarA f i b c -> StarA f i b d # lcoerce' :: Coercible a b => StarA f i a c -> StarA f i b c # rcoerce' :: Coercible a b => StarA f i c a -> StarA f i c b # conjoined__ :: (StarA f i a b -> StarA f i s t) -> (StarA f i a b -> StarA f j s t) -> StarA f i a b -> StarA f j s t # ixcontramap :: (j -> i) -> StarA f i a b -> StarA f j a b #
Functor f => Strong (StarA f) # |
Instance details Defined in Data.Profunctor.Indexed Methods first' :: StarA f i a b -> StarA f i (a, c) (b, c) # second' :: StarA f i a b -> StarA f i (c, a) (c, b) # linear :: (forall (f0 :: Type -> Type). Functor f0 => (a -> f0 b) -> s -> f0 t) -> StarA f i a b -> StarA f i s t # ilinear :: (forall (f0 :: Type -> Type). Functor f0 => (i -> a -> f0 b) -> s -> f0 t) -> StarA f j a b -> StarA f (i -> j) s t #
Functor f => Visiting (StarA f) # |
Instance details Defined in Data.Profunctor.Indexed Methods visit :: forall i s t a b. (forall (f0 :: Type -> Type). Functor f0 => (forall r. r -> f0 r) -> (a -> f0 b) -> s -> f0 t) -> StarA f i a b -> StarA f i s t # ivisit :: (forall (f0 :: Type -> Type). Functor f0 => (forall r. r -> f0 r) -> (i -> a -> f0 b) -> s -> f0 t) -> StarA f j a b -> StarA f (i -> j) s t #

runStarA :: StarA f i a b -> a -> f b #

Unwrap `StarA`.

data IxStarA (f :: Type -> Type) i a b #

Needed for conversion of indexed affine traversal back to its VL representation.

Constructors

IxStarA (forall r. r -> f r) (i -> a -> f b) |

#### Instances

Instances details

Functor f => Choice (IxStarA f) # |
Instance details Defined in Data.Profunctor.Indexed Methods left' :: IxStarA f i a b -> IxStarA f i (Either a c) (Either b c) # right' :: IxStarA f i a b -> IxStarA f i (Either c a) (Either c b) #
Functor f => Profunctor (IxStarA f) # |
Instance details Defined in Data.Profunctor.Indexed Methods dimap :: (a -> b) -> (c -> d) -> IxStarA f i b c -> IxStarA f i a d # lmap :: (a -> b) -> IxStarA f i b c -> IxStarA f i a c # rmap :: (c -> d) -> IxStarA f i b c -> IxStarA f i b d # lcoerce' :: Coercible a b => IxStarA f i a c -> IxStarA f i b c # rcoerce' :: Coercible a b => IxStarA f i c a -> IxStarA f i c b # conjoined__ :: (IxStarA f i a b -> IxStarA f i s t) -> (IxStarA f i a b -> IxStarA f j s t) -> IxStarA f i a b -> IxStarA f j s t # ixcontramap :: (j -> i) -> IxStarA f i a b -> IxStarA f j a b #
Functor f => Strong (IxStarA f) # |
Instance details Defined in Data.Profunctor.Indexed Methods first' :: IxStarA f i a b -> IxStarA f i (a, c) (b, c) # second' :: IxStarA f i a b -> IxStarA f i (c, a) (c, b) # linear :: (forall (f0 :: Type -> Type). Functor f0 => (a -> f0 b) -> s -> f0 t) -> IxStarA f i a b -> IxStarA f i s t # ilinear :: (forall (f0 :: Type -> Type). Functor f0 => (i -> a -> f0 b) -> s -> f0 t) -> IxStarA f j a b -> IxStarA f (i -> j) s t #
Functor f => Visiting (IxStarA f) # |
Instance details Defined in Data.Profunctor.Indexed Methods visit :: forall i s t a b. (forall (f0 :: Type -> Type). Functor f0 => (forall r. r -> f0 r) -> (a -> f0 b) -> s -> f0 t) -> IxStarA f i a b -> IxStarA f i s t # ivisit :: (forall (f0 :: Type -> Type). Functor f0 => (forall r. r -> f0 r) -> (i -> a -> f0 b) -> s -> f0 t) -> IxStarA f j a b -> IxStarA f (i -> j) s t #

runIxStarA :: IxStarA f i a b -> i -> a -> f b #

Unwrap `StarA`.

data Exchange a b i s t #

Constructors

Exchange (s -> a) (b -> t) |

#### Instances

Instances details

Profunctor (Exchange a b) # |
Instance details Defined in Data.Profunctor.Indexed Methods dimap :: (a0 -> b0) -> (c -> d) -> Exchange a b i b0 c -> Exchange a b i a0 d # lmap :: (a0 -> b0) -> Exchange a b i b0 c -> Exchange a b i a0 c # rmap :: (c -> d) -> Exchange a b i b0 c -> Exchange a b i b0 d # lcoerce' :: Coercible a0 b0 => Exchange a b i a0 c -> Exchange a b i b0 c # rcoerce' :: Coercible a0 b0 => Exchange a b i c a0 -> Exchange a b i c b0 # 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 # ixcontramap :: (j -> i) -> Exchange a b i a0 b0 -> Exchange a b j a0 b0 #

data Store a b i s t #

Type to represent the components of a lens.

Constructors

Store (s -> a) (s -> b -> t) |

#### Instances

Instances details

Profunctor (Store a b) # |
Instance details Defined in Data.Profunctor.Indexed Methods dimap :: (a0 -> b0) -> (c -> d) -> Store a b i b0 c -> Store a b i a0 d # lmap :: (a0 -> b0) -> Store a b i b0 c -> Store a b i a0 c # rmap :: (c -> d) -> Store a b i b0 c -> Store a b i b0 d # lcoerce' :: Coercible a0 b0 => Store a b i a0 c -> Store a b i b0 c # rcoerce' :: Coercible a0 b0 => Store a b i c a0 -> Store a b i c b0 # 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 # ixcontramap :: (j -> i) -> Store a b i a0 b0 -> Store a b j a0 b0 #
Strong (Store a b) # |
Instance details Defined in Data.Profunctor.Indexed Methods first' :: Store a b i a0 b0 -> Store a b i (a0, c) (b0, c) # second' :: Store a b i a0 b0 -> Store a b i (c, a0) (c, b0) # 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 # 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 #

data Market a b i s t #

Type to represent the components of a prism.

Constructors

Market (b -> t) (s -> Either t a) |

#### Instances

Instances details

Choice (Market a b) # |
Instance details Defined in Data.Profunctor.Indexed Methods left' :: Market a b i a0 b0 -> Market a b i (Either a0 c) (Either b0 c) # right' :: Market a b i a0 b0 -> Market a b i (Either c a0) (Either c b0) #
Profunctor (Market a b) # |
Instance details Defined in Data.Profunctor.Indexed Methods dimap :: (a0 -> b0) -> (c -> d) -> Market a b i b0 c -> Market a b i a0 d # lmap :: (a0 -> b0) -> Market a b i b0 c -> Market a b i a0 c # rmap :: (c -> d) -> Market a b i b0 c -> Market a b i b0 d # lcoerce' :: Coercible a0 b0 => Market a b i a0 c -> Market a b i b0 c # rcoerce' :: Coercible a0 b0 => Market a b i c a0 -> Market a b i c b0 # 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 # ixcontramap :: (j -> i) -> Market a b i a0 b0 -> Market a b j a0 b0 #
Functor (Market a b i s) # |
Instance details Defined in Data.Profunctor.Indexed 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 #

Type to represent the components of an affine traversal.

Constructors

AffineMarket (s -> b -> t) (s -> Either t a) |

#### Instances

Instances details

Choice (AffineMarket a b) # |
Instance details Defined in Data.Profunctor.Indexed Methods left' :: AffineMarket a b i a0 b0 -> AffineMarket a b i (Either a0 c) (Either b0 c) # right' :: AffineMarket a b i a0 b0 -> AffineMarket a b i (Either c a0) (Either c b0) #
Profunctor (AffineMarket a b) # |
Instance details Defined in Data.Profunctor.Indexed Methods dimap :: (a0 -> b0) -> (c -> d) -> AffineMarket a b i b0 c -> AffineMarket a b i a0 d # lmap :: (a0 -> b0) -> AffineMarket a b i b0 c -> AffineMarket a b i a0 c # rmap :: (c -> d) -> AffineMarket a b i b0 c -> AffineMarket a b i b0 d # lcoerce' :: Coercible a0 b0 => AffineMarket a b i a0 c -> AffineMarket a b i b0 c # rcoerce' :: Coercible a0 b0 => AffineMarket a b i c a0 -> AffineMarket a b i c b0 # 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 # ixcontramap :: (j -> i) -> AffineMarket a b i a0 b0 -> AffineMarket a b j a0 b0 #
Strong (AffineMarket a b) # |
Instance details Defined in Data.Profunctor.Indexed Methods first' :: AffineMarket a b i a0 b0 -> AffineMarket a b i (a0, c) (b0, c) # second' :: AffineMarket a b i a0 b0 -> AffineMarket a b i (c, a0) (c, b0) # 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 # 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 #
Visiting (AffineMarket a b) # |
Instance details Defined in Data.Profunctor.Indexed Methods visit :: forall i s t a0 b0. (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 # 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 #

newtype Tagged i a b #

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

Constructors

Tagged |
Fields unTagged :: b

#### Instances

Instances details

Choice Tagged # |
Instance details Defined in Data.Profunctor.Indexed Methods left' :: Tagged i a b -> Tagged i (Either a c) (Either b c) # right' :: Tagged i a b -> Tagged i (Either c a) (Either c b) #
Costrong Tagged # |
Instance details Defined in Data.Profunctor.Indexed Methods unfirst :: Tagged i (a, d) (b, d) -> Tagged i a b # unsecond :: Tagged i (d, a) (d, b) -> Tagged i a b #
Profunctor Tagged # |
Instance details Defined in Data.Profunctor.Indexed Methods dimap :: (a -> b) -> (c -> d) -> Tagged i b c -> Tagged i a d # lmap :: (a -> b) -> Tagged i b c -> Tagged i a c # rmap :: (c -> d) -> Tagged i b c -> Tagged i b d # lcoerce' :: Coercible a b => Tagged i a c -> Tagged i b c # rcoerce' :: Coercible a b => Tagged i c a -> Tagged i c b # 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 # ixcontramap :: (j -> i) -> Tagged i a b -> Tagged j a b #
Functor (Tagged i a) # |
Instance details Defined in Data.Profunctor.Indexed Methods fmap :: (a0 -> b) -> Tagged i a a0 -> Tagged i a b # (<$) :: a0 -> Tagged i a b -> Tagged i a a0 #

data Context a b t #

Constructors

Context (b -> t) a |

#### Instances

Instances details

Functor (Context a b) # |
Instance details Defined in Data.Profunctor.Indexed Methods fmap :: (a0 -> b0) -> Context a b a0 -> Context a b b0 # (<$) :: a0 -> Context a b b0 -> Context a b a0 #

# Utilities

(#.) :: Coercible b c => (b -> c) -> (a -> b) -> a -> c infixr 9 #

Composition operator where the first argument must be an identity function up to representational equivalence (e.g. a newtype wrapper or unwrapper), and will be ignored at runtime.

(.#) :: Coercible a b => (b -> c) -> (a -> b) -> a -> c infixl 8 #

Composition operator where the second argument must be an identity function up to representational equivalence (e.g. a newtype wrapper or unwrapper), and will be ignored at runtime.