proarrow-0: Category theory with a central role for profunctors
Safe HaskellNone
LanguageHaskell2010

Proarrow.Profunctor.Rift

Documentation

type (<|) (p :: j +-> i) (j1 :: k +-> i) = Rift ('OP j1) p Source Comments #

data Rift (j1 :: OPPOSITE (k +-> i)) (p :: j +-> i) (a :: k) (b :: j) where Source Comments #

Constructors

Rift 

Fields

  • :: forall {k} {j} {i} (a :: k) (b :: j) (j2 :: k +-> i) (p :: j +-> i). (Ob a, Ob b)
     
  • => { unRift :: forall (x :: i). Ob x => j2 x a -> p x b
     
  •    } -> Rift ('OP j2) p a b
     

Instances

Instances details
(Profunctor p, Profunctor j2) => Profunctor (Rift ('OP j2) p :: j1 -> k -> Type) Source Comments # 
Instance details

Defined in Proarrow.Profunctor.Rift

Methods

dimap :: forall (c :: j1) (a :: j1) (b :: k) (d :: k). (c ~> a) -> (b ~> d) -> Rift ('OP j2) p a b -> Rift ('OP j2) p c d Source Comments #

(\\) :: forall (a :: j1) (b :: k) r. ((Ob a, Ob b) => r) -> Rift ('OP j2) p a b -> r Source Comments #

(p ~ j, Profunctor p) => Promonad (Rift ('OP p) p :: k -> k -> Type) Source Comments # 
Instance details

Defined in Proarrow.Profunctor.Rift

Methods

id :: forall (a :: k). Ob a => Rift ('OP p) p a a Source Comments #

(.) :: forall (b :: k) (c :: k) (a :: k). Rift ('OP p) p b c -> Rift ('OP p) p a b -> Rift ('OP p) p a c Source Comments #

Functor (Rift :: OPPOSITE (k +-> i) -> (j +-> i) -> k -> j -> Type) Source Comments # 
Instance details

Defined in Proarrow.Profunctor.Rift

Methods

map :: forall (a :: OPPOSITE (k +-> i)) (b :: OPPOSITE (k +-> i)). (a ~> b) -> (Rift a :: (j +-> i) -> k -> j -> Type) ~> (Rift b :: (j +-> i) -> k -> j -> Type) Source Comments #

Profunctor j => Adjunction (Star ((:.:) j :: (i2 +-> k) -> i1 -> i2 -> Type) :: (i1 -> i2 -> Type) -> (i2 +-> k) -> Type) (Star (Rift ('OP j) :: (i2 +-> i1) -> k -> i2 -> Type) :: (k -> i2 -> Type) -> (i2 +-> i1) -> Type) Source Comments # 
Instance details

Defined in Proarrow.Profunctor.Rift

Methods

unit :: forall (a :: i2 +-> k). Ob a => (Star (Rift ('OP j) :: (i2 +-> i1) -> k -> i2 -> Type) :.: Star ((:.:) j :: (i2 +-> k) -> i1 -> i2 -> Type)) a a Source Comments #

counit :: (Star ((:.:) j :: (i2 +-> k) -> i1 -> i2 -> Type) :.: Star (Rift ('OP j) :: (i2 +-> i1) -> k -> i2 -> Type)) :~> ((~>) :: CAT (i1 -> i2 -> Type)) Source Comments #

Profunctor j2 => Functor (Rift ('OP j2) :: (j1 +-> i) -> k -> j1 -> Type) Source Comments # 
Instance details

Defined in Proarrow.Profunctor.Rift

Methods

map :: forall (a :: j1 +-> i) (b :: j1 +-> i). (a ~> b) -> Rift ('OP j2) a ~> Rift ('OP j2) b Source Comments #

runRift :: forall {i} {k} {j1} j2 (x :: i) (a :: k) p (b :: j1). Profunctor j2 => j2 x a -> Rift ('OP j2) p a b -> p x b Source Comments #

flipRift :: forall {k} {j1} {i} (j2 :: k -> j1) (p :: PRO j1 i). (Functor j2, Profunctor p) => (p <| Star j2) ~> (Costar j2 :.: p) Source Comments #

flipRiftInv :: forall {k} {k2} {j1} (j2 :: k -> k2) (p :: PRO k2 j1). (Functor j2, Profunctor p) => (Costar j2 :.: p) ~> (p <| Star j2) Source Comments #

riftCompose :: forall {j1} {k1} {k2} {j2} (i :: PRO j1 k1) (j3 :: PRO k2 j1) (p :: PRO k2 j2). (Profunctor i, Profunctor j3, Profunctor p) => ((p <| j3) <| i) ~> (p <| (j3 :.: i)) Source Comments #

riftComposeInv :: forall {i1} {k} {i2} {j1} (i3 :: PRO i1 k) (j2 :: PRO i2 i1) (p :: PRO i2 j1). (Profunctor i3, Profunctor j2, Profunctor p) => (p <| (j2 :.: i3)) ~> ((p <| j2) <| i3) Source Comments #