proarrow
Safe HaskellNone
LanguageGHC2024

Proarrow.Profunctor.Instance.Direp

Description

Direp f g is the profunctor of arrows f @ a ~> g @ b between the images of two functors (given as FunctorForReps).

Synopsis
  • data Direp (f :: j +-> k) (g :: i +-> k) (a :: j) (b :: i) where
    • Direp :: forall {j} {i} {k} (a :: j) (b :: i) (f :: j +-> k) (g :: i +-> k). (Ob a, Ob b) => ((f @ a) ~> (g @ b)) -> Direp f g a b

Documentation

data Direp (f :: j +-> k) (g :: i +-> k) (a :: j) (b :: i) where Source Github #

An arrow f @ a ~> g @ b between the images of the functors f and g, as a profunctor.

Constructors

Direp :: forall {j} {i} {k} (a :: j) (b :: i) (f :: j +-> k) (g :: i +-> k). (Ob a, Ob b) => ((f @ a) ~> (g @ b)) -> Direp f g a b 

Instances

Instances details
(DecidableProfunctor (Hom k), FunctorForRep f, FunctorForRep g) => DecidableProfunctor (Direp f g :: j -> i -> Type) Source Github # 
Instance details

Defined in Proarrow.Profunctor.Instance.Direp

Methods

decide :: forall (a :: j) (b :: i). (Ob a, Ob b) => Decision (Direp f g) a b (Holds (Direp f g) a b) Source Github #

toHolds :: forall (a :: j) (b :: i) r. Direp f g a b -> ((Holds (Direp f g) a b ~ 'TRU, Ob a, Ob b) => r) -> r Source Github #

(Thin k, FunctorForRep f, FunctorForRep g) => ThinProfunctor (Direp f g :: j -> i -> Type) Source Github # 
Instance details

Defined in Proarrow.Profunctor.Instance.Direp

Methods

arr :: forall (a :: j) (b :: i). (Ob a, Ob b, HasArrow (Direp f g) a b) => Direp f g a b Source Github #

withArr :: forall (a :: j) (b :: i) r. Direp f g a b -> ((HasArrow (Direp f g) a b, Ob a, Ob b) => r) -> r Source Github #

(FunctorForRep f, FunctorForRep g) => Profunctor (Direp f g :: k1 -> j -> Type) Source Github # 
Instance details

Defined in Proarrow.Profunctor.Instance.Direp

Methods

dimap :: forall (c :: k1) (a :: k1) (b :: j) (d :: j). (c ~> a) -> (b ~> d) -> Direp f g a b -> Direp f g c d Source Github #

lmap :: forall (c :: k1) (a :: k1) (b :: j). (c ~> a) -> Direp f g a b -> Direp f g c b Source Github #

rmap :: forall (b :: j) (d :: j) (a :: k1). (b ~> d) -> Direp f g a b -> Direp f g a d Source Github #

(\\) :: forall (a :: k1) (b :: j) r. ((Ob a, Ob b) => r) -> Direp f g a b -> r Source Github #

type HasArrow (Direp f g :: j -> i -> Type) (a :: j) (b :: i) Source Github # 
Instance details

Defined in Proarrow.Profunctor.Instance.Direp

type HasArrow (Direp f g :: j -> i -> Type) (a :: j) (b :: i) = HasArrow (Hom k) (f @ a) (g @ b)
type Holds (Direp f g :: j -> i -> Type) (a :: j) (b :: i) Source Github # 
Instance details

Defined in Proarrow.Profunctor.Instance.Direp

type Holds (Direp f g :: j -> i -> Type) (a :: j) (b :: i) = Holds (Hom k) (f @ a) (g @ b)