proarrow
Safe HaskellNone
LanguageGHC2024

Proarrow.Category.Instance.Collage

Documentation

data COLLAGE (p :: k +-> j) Source Comments #

Constructors

L j 
R k 

Instances

Instances details
Profunctor p => FunctorForRep (InjL p :: j +-> COLLAGE p) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Collage

Methods

fmap :: forall (a :: j) (b :: j). (a ~> b) -> (InjL p @ a) ~> (InjL p @ b) Source Comments #

Profunctor p => FunctorForRep (InjR p :: j1 +-> COLLAGE p) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Collage

Methods

fmap :: forall (a :: j1) (b :: j1). (a ~> b) -> (InjR p @ a) ~> (InjR p @ b) Source Comments #

Profunctor p => CategoryOf (COLLAGE p) Source Comments #

The collage of a profunctor.

Instance details

Defined in Proarrow.Category.Instance.Collage

Associated Types

type (~>) 
Instance details

Defined in Proarrow.Category.Instance.Collage

type (~>) = Collage :: COLLAGE p -> COLLAGE p -> Type
(HasInitialObject j, CategoryOf k, CodiscreteProfunctor p) => HasInitialObject (COLLAGE p) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Collage

Associated Types

type InitialObject 
Instance details

Defined in Proarrow.Category.Instance.Collage

type InitialObject = 'L (InitialObject :: j) :: COLLAGE p

Methods

initiate :: forall (a :: COLLAGE p). Ob a => (InitialObject :: COLLAGE p) ~> a Source Comments #

(HasTerminalObject k, CategoryOf j, CodiscreteProfunctor p) => HasTerminalObject (COLLAGE p) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Collage

Associated Types

type TerminalObject 
Instance details

Defined in Proarrow.Category.Instance.Collage

Methods

terminate :: forall (a :: COLLAGE p). Ob a => a ~> (TerminalObject :: COLLAGE p) Source Comments #

Profunctor p => Promonad (Collage :: COLLAGE p -> COLLAGE p -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Collage

Methods

id :: forall (a :: COLLAGE p). Ob a => Collage a a Source Comments #

(.) :: forall (b :: COLLAGE p) (c :: COLLAGE p) (a :: COLLAGE p). Collage b c -> Collage a b -> Collage a c Source Comments #

(Thin j, Thin k, ThinProfunctor p) => ThinProfunctor (Collage :: COLLAGE p -> COLLAGE p -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Collage

Methods

arr :: forall (a :: COLLAGE p) (b :: COLLAGE p). (Ob a, Ob b, HasArrow (Collage :: COLLAGE p -> COLLAGE p -> Type) a b) => Collage a b Source Comments #

withArr :: forall (a :: COLLAGE p) (b :: COLLAGE p) r. Collage a b -> (HasArrow (Collage :: COLLAGE p -> COLLAGE p -> Type) a b => r) -> r Source Comments #

Profunctor p => Profunctor (Collage :: COLLAGE p -> COLLAGE p -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Collage

Methods

dimap :: forall (c :: COLLAGE p) (a :: COLLAGE p) (b :: COLLAGE p) (d :: COLLAGE p). (c ~> a) -> (b ~> d) -> Collage a b -> Collage c d Source Comments #

(\\) :: forall (a :: COLLAGE p) (b :: COLLAGE p) r. ((Ob a, Ob b) => r) -> Collage a b -> r Source Comments #

type (InjL p :: j +-> COLLAGE p) @ (a :: j) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Collage

type (InjL p :: j +-> COLLAGE p) @ (a :: j) = 'L a :: COLLAGE p
type (InjR p :: j1 +-> COLLAGE p) @ (a :: j1) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Collage

type (InjR p :: j1 +-> COLLAGE p) @ (a :: j1) = 'R a :: COLLAGE p
type (~>) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Collage

type (~>) = Collage :: COLLAGE p -> COLLAGE p -> Type
type InitialObject Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Collage

type InitialObject = 'L (InitialObject :: j) :: COLLAGE p
type TerminalObject Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Collage

type Ob (a :: COLLAGE p) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Collage

type Ob (a :: COLLAGE p) = IsLR a
type HasArrow (Collage :: COLLAGE p -> COLLAGE p -> Type) (a :: COLLAGE p) (b :: COLLAGE p) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Collage

type HasArrow (Collage :: COLLAGE p -> COLLAGE p -> Type) (a :: COLLAGE p) (b :: COLLAGE p) = HasArrowCollage p a b

data Collage (a :: COLLAGE p) (b :: COLLAGE p) where Source Comments #

Constructors

InL :: forall {j} {k} (a1 :: j) (b1 :: j) (p :: k +-> j). (a1 ~> b1) -> Collage ('L a1 :: COLLAGE p) ('L b1 :: COLLAGE p) 
InR :: forall {k} {j} (a1 :: k) (b1 :: k) (p :: k +-> j). (a1 ~> b1) -> Collage ('R a1 :: COLLAGE p) ('R b1 :: COLLAGE p) 
L2R :: forall {k} {j} (p :: k +-> j) (a1 :: j) (b1 :: k). p a1 b1 -> Collage ('L a1 :: COLLAGE p) ('R b1 :: COLLAGE p) 

Instances

Instances details
Profunctor p => Promonad (Collage :: COLLAGE p -> COLLAGE p -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Collage

Methods

id :: forall (a :: COLLAGE p). Ob a => Collage a a Source Comments #

(.) :: forall (b :: COLLAGE p) (c :: COLLAGE p) (a :: COLLAGE p). Collage b c -> Collage a b -> Collage a c Source Comments #

(Thin j, Thin k, ThinProfunctor p) => ThinProfunctor (Collage :: COLLAGE p -> COLLAGE p -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Collage

Methods

arr :: forall (a :: COLLAGE p) (b :: COLLAGE p). (Ob a, Ob b, HasArrow (Collage :: COLLAGE p -> COLLAGE p -> Type) a b) => Collage a b Source Comments #

withArr :: forall (a :: COLLAGE p) (b :: COLLAGE p) r. Collage a b -> (HasArrow (Collage :: COLLAGE p -> COLLAGE p -> Type) a b => r) -> r Source Comments #

Profunctor p => Profunctor (Collage :: COLLAGE p -> COLLAGE p -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Collage

Methods

dimap :: forall (c :: COLLAGE p) (a :: COLLAGE p) (b :: COLLAGE p) (d :: COLLAGE p). (c ~> a) -> (b ~> d) -> Collage a b -> Collage c d Source Comments #

(\\) :: forall (a :: COLLAGE p) (b :: COLLAGE p) r. ((Ob a, Ob b) => r) -> Collage a b -> r Source Comments #

type HasArrow (Collage :: COLLAGE p -> COLLAGE p -> Type) (a :: COLLAGE p) (b :: COLLAGE p) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Collage

type HasArrow (Collage :: COLLAGE p -> COLLAGE p -> Type) (a :: COLLAGE p) (b :: COLLAGE p) = HasArrowCollage p a b

class IsLR (a :: COLLAGE p) where Source Comments #

Methods

lrId :: Obj a Source Comments #

Instances

Instances details
(Ob a, Promonad ((~>) :: CAT k)) => IsLR ('L a :: COLLAGE p) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Collage

Methods

lrId :: Obj ('L a :: COLLAGE p) Source Comments #

(Ob a, Promonad ((~>) :: CAT j)) => IsLR ('R a :: COLLAGE p) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Collage

Methods

lrId :: Obj ('R a :: COLLAGE p) Source Comments #

class HasArrowCollage (p :: k +-> j) (a :: COLLAGE p) (b :: COLLAGE p) where Source Comments #

Methods

arrCoprod :: a ~> b Source Comments #

Instances

Instances details
(Thin j, HasArrow ((~>) :: CAT j) a b, Ob a, Ob b) => HasArrowCollage (p :: k +-> j) ('L a :: COLLAGE p) ('L b :: COLLAGE p) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Collage

Methods

arrCoprod :: ('L a :: COLLAGE p) ~> ('L b :: COLLAGE p) Source Comments #

(ThinProfunctor p, HasArrow p a b, Ob a, Ob b) => HasArrowCollage (p :: k +-> j) ('L a :: COLLAGE p) ('R b :: COLLAGE p) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Collage

Methods

arrCoprod :: ('L a :: COLLAGE p) ~> ('R b :: COLLAGE p) Source Comments #

(Thin k, HasArrow ((~>) :: CAT k) a b, Ob a, Ob b) => HasArrowCollage (p :: k +-> j) ('R a :: COLLAGE p) ('R b :: COLLAGE p) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Collage

Methods

arrCoprod :: ('R a :: COLLAGE p) ~> ('R b :: COLLAGE p) Source Comments #

data family InjL :: forall (p :: k +-> j) -> j +-> COLLAGE p Source Comments #

Instances

Instances details
Profunctor p => FunctorForRep (InjL p :: j +-> COLLAGE p) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Collage

Methods

fmap :: forall (a :: j) (b :: j). (a ~> b) -> (InjL p @ a) ~> (InjL p @ b) Source Comments #

type (InjL p :: j +-> COLLAGE p) @ (a :: j) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Collage

type (InjL p :: j +-> COLLAGE p) @ (a :: j) = 'L a :: COLLAGE p

data family InjR :: forall (p :: k +-> j) -> k +-> COLLAGE p Source Comments #

Instances

Instances details
Profunctor p => FunctorForRep (InjR p :: j1 +-> COLLAGE p) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Collage

Methods

fmap :: forall (a :: j1) (b :: j1). (a ~> b) -> (InjR p @ a) ~> (InjR p @ b) Source Comments #

type (InjR p :: j1 +-> COLLAGE p) @ (a :: j1) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Collage

type (InjR p :: j1 +-> COLLAGE p) @ (a :: j1) = 'R a :: COLLAGE p