proarrow
Safe HaskellNone
LanguageGHC2024

Proarrow.Profunctor.Costar

Documentation

data Costar' (f :: OPPOSITE (j .-> k)) (a :: j) (b :: k) where Source Comments #

Constructors

Costar' :: forall {j} {k} (a :: j) (f1 :: j -> k) (b :: k). Ob a => (f1 a ~> b) -> Costar' ('OP ('NT f1)) a b 

Instances

Instances details
(Functor f, Discrete j, Thin k) => ThinProfunctor (Costar f :: k -> j -> Type) Source Comments # 
Instance details

Defined in Proarrow.Profunctor.Costar

Methods

arr :: forall (a :: k) (b :: j). (Ob a, Ob b, HasArrow (Costar f) a b) => Costar f a b Source Comments #

withArr :: forall (a :: k) (b :: j) r. Costar f a b -> (HasArrow (Costar f) a b => r) -> r Source Comments #

(Cartesian j, Cartesian k, Functor f) => MonoidalProfunctor (Costar f :: j -> k -> Type) Source Comments #

Every functor between cartesian categories is a colax monoidal functor.

Instance details

Defined in Proarrow.Profunctor.Costar

Methods

par0 :: Costar f (Unit :: j) (Unit :: k) Source Comments #

par :: forall (x1 :: j) (x2 :: k) (y1 :: j) (y2 :: k). Costar f x1 x2 -> Costar f y1 y2 -> Costar f (x1 ** y1) (x2 ** y2) Source Comments #

Functor f => Profunctor (Costar f :: k -> j -> Type) Source Comments # 
Instance details

Defined in Proarrow.Profunctor.Costar

Methods

dimap :: forall (c :: k) (a :: k) (b :: j) (d :: j). (c ~> a) -> (b ~> d) -> Costar f a b -> Costar f c d Source Comments #

(\\) :: forall (a :: k) (b :: j) r. ((Ob a, Ob b) => r) -> Costar f a b -> r Source Comments #

Functor f => Corepresentable (Costar f :: k -> j -> Type) Source Comments # 
Instance details

Defined in Proarrow.Profunctor.Costar

Methods

coindex :: forall (a :: k) (b :: j). Costar f a b -> (Costar f %% a) ~> b Source Comments #

cotabulate :: forall (a :: k) (b :: j). Ob a => ((Costar f %% a) ~> b) -> Costar f a b Source Comments #

corepMap :: forall (a :: k) (b :: k). (a ~> b) -> (Costar f %% a) ~> (Costar f %% b) Source Comments #

Representable (Costar ((,) a) :: Type -> Type -> Type) Source Comments #

The right adjoint of (,) a is ((->) a).

Instance details

Defined in Proarrow.Adjunction

Methods

index :: Costar ((,) a) a0 b -> a0 ~> (Costar ((,) a) % b) Source Comments #

tabulate :: Ob b => (a0 ~> (Costar ((,) a) % b)) -> Costar ((,) a) a0 b Source Comments #

repMap :: (a0 ~> b) -> (Costar ((,) a) % a0) ~> (Costar ((,) a) % b) Source Comments #

Functor f => Proadjunction (Star f :: k -> j -> Type) (Costar f :: j -> k -> Type) Source Comments # 
Instance details

Defined in Proarrow.Adjunction

Methods

unit :: forall (a :: j). Ob a => (Costar f :.: Star f) a a Source Comments #

counit :: (Star f :.: Costar f) :~> ((~>) :: CAT k) Source Comments #

(Functor t, Traversable (Star t)) => Cotraversable (Costar t :: k -> k -> Type) Source Comments # 
Instance details

Defined in Proarrow.Profunctor.Costar

Methods

cotraverse :: forall (p :: k +-> k). (DistributiveProfunctor p, Strong k p, SelfAction k) => (p :.: Costar t) :~> (Costar t :.: p) Source Comments #

Monad m => Procomonad (Costar (Prelude m) :: Type -> Type -> Type) Source Comments # 
Instance details

Defined in Proarrow.Profunctor.Costar

Functor (Costar' :: OPPOSITE (j .-> k) -> j -> k -> Type) Source Comments # 
Instance details

Defined in Proarrow.Profunctor.Costar

Methods

map :: forall (a :: OPPOSITE (j .-> k)) (b :: OPPOSITE (j .-> k)). (a ~> b) -> Costar' a ~> Costar' b Source Comments #

Promonad (Costar (Coyoneda :: (j +-> k) -> k -> j -> Type) :: (j +-> k) -> (k -> j -> Type) -> Type) Source Comments # 
Instance details

Defined in Proarrow.Profunctor.Coyoneda

Methods

id :: forall (a :: j +-> k). Ob a => Costar (Coyoneda :: (j +-> k) -> k -> j -> Type) a a Source Comments #

(.) :: forall (b :: j +-> k) (c :: j +-> k) (a :: j +-> k). Costar (Coyoneda :: (j +-> k) -> k -> j -> Type) b c -> Costar (Coyoneda :: (j +-> k) -> k -> j -> Type) a b -> Costar (Coyoneda :: (j +-> k) -> k -> j -> Type) a c Source Comments #

Profunctor p => Promonad (Costar ((:*:) p) :: (j +-> k) -> (k -> j -> Type) -> Type) Source Comments # 
Instance details

Defined in Proarrow.Profunctor.Costar

Methods

id :: forall (a :: j +-> k). Ob a => Costar ((:*:) p) a a Source Comments #

(.) :: forall (b :: j +-> k) (c :: j +-> k) (a :: j +-> k). Costar ((:*:) p) b c -> Costar ((:*:) p) a b -> Costar ((:*:) p) a c Source Comments #

Promonad (Costar (Yoneda :: (j +-> k) -> k -> j -> Type) :: (j +-> k) -> (k -> j -> Type) -> Type) Source Comments # 
Instance details

Defined in Proarrow.Profunctor.Yoneda

Methods

id :: forall (a :: j +-> k). Ob a => Costar (Yoneda :: (j +-> k) -> k -> j -> Type) a a Source Comments #

(.) :: forall (b :: j +-> k) (c :: j +-> k) (a :: j +-> k). Costar (Yoneda :: (j +-> k) -> k -> j -> Type) b c -> Costar (Yoneda :: (j +-> k) -> k -> j -> Type) a b -> Costar (Yoneda :: (j +-> k) -> k -> j -> Type) a c Source Comments #

type (Costar f :: k -> j -> Type) %% (a :: k) Source Comments # 
Instance details

Defined in Proarrow.Profunctor.Costar

type (Costar f :: k -> j -> Type) %% (a :: k) = f a
type (Costar ((,) a) :: Type -> Type -> Type) % (b :: Type) Source Comments # 
Instance details

Defined in Proarrow.Adjunction

type (Costar ((,) a) :: Type -> Type -> Type) % (b :: Type) = a -> b
type HasArrow (Costar f :: k -> j -> Type) (a :: k) (b :: j) Source Comments # 
Instance details

Defined in Proarrow.Profunctor.Costar

type HasArrow (Costar f :: k -> j -> Type) (a :: k) (b :: j) = f a ~ b

type Costar (f :: j -> k) = Costar' ('OP ('NT f)) Source Comments #

pattern Costar :: forall {j} {k} a (f :: j -> k) b. () => Ob a => (f a ~> b) -> Costar f a b Source Comments #

unCostar :: forall {j} {k} (f :: j -> k) (a :: j) (b :: k). Costar f a b -> f a ~> b Source Comments #

composeCostar :: forall {k} {j} (g :: k -> Type) (f :: j -> k). Functor g => (Costar f :.: Costar g) :~> Costar (Compose g f) Source Comments #