*** -package:product-profunctors
Split the input between the two argument arrows and combine their
output. Note that this is in general not a functor.
The default definition may be overridden with a more efficient version
if desired.
b ╭─────╮ b'
>───┼─ f ─┼───>
>───┼─ g ─┼───>
c ╰─────╯ c'
Given two functions, apply one to the first component and one to the
second. A specialised version of
***.
(succ *** reverse) (1,"test") == (2,"tset")
due to the hack for the kind of (,) in the current version of
GHC we can't actually make instances for (,) :: Constraint ->
Constraint -> Constraint, but (,) is a bifunctor on
the category of constraints. This lets us map over both sides.
Split the input between the two argument arrows and combine their
output. Note that this is in general not a functor.
The default definition may be overridden with a more efficient version
if desired.
Specialization of
Bimap for pairs.
Split the input between the two argument arrows and combine their
output. Note that this is in general not a functor.
The default definition may be overridden with a more efficient version
if desired.
a *** b blits b in the centre of a.
the product type constructor
(,) is a bifunctor from
Iso $times$
Iso to
Iso, so that we have the
bifunctorial map
*** which allows two separate isomorphisms to
work on the two components of a tuple.
Split the input between the two argument arrows and combine their
output. Note that this is in general not a functor.
Categorical generalization of
bimap :: (a1 -> b1) -> (a2 -> b2) -> (p a1 a2 -> p c1 c2)
borrowed from arrows.
Left-strict version of
*** for functions.