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

Proarrow.Category.Instance.Collage

Documentation

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

Constructors

L j 
R k 

Instances

Instances details
HasBinaryProducts k => HasLimits (Unweighted :: () -> COPRODUCT () () -> Type) k Source Comments # 
Instance details

Defined in Proarrow.Category.Limit

Methods

limit :: forall (d :: COPRODUCT () () +-> k). Representable d => (Limit (Unweighted :: () -> COPRODUCT () () -> Type) d :.: (Unweighted :: () -> COPRODUCT () () -> Type)) :~> d Source Comments #

limitUniv :: forall (d :: COPRODUCT () () +-> k) (p :: () +-> k). (Representable d, Representable p) => ((p :.: (Unweighted :: () -> COPRODUCT () () -> Type)) :~> d) -> p :~> Limit (Unweighted :: () -> COPRODUCT () () -> Type) d Source Comments #

Profunctor p => Representable (InjL p :: COLLAGE p -> j -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Collage

Methods

index :: forall (a :: COLLAGE p) (b :: j). InjL p a b -> a ~> (InjL p % b) Source Comments #

tabulate :: forall (b :: j) (a :: COLLAGE p). Ob b => (a ~> (InjL p % b)) -> InjL p a b Source Comments #

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

Profunctor p => Representable (InjR p :: COLLAGE p -> j2 -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Collage

Methods

index :: forall (a :: COLLAGE p) (b :: j2). InjR p a b -> a ~> (InjR p % b) Source Comments #

tabulate :: forall (b :: j2) (a :: COLLAGE p). Ob b => (a ~> (InjR p % b)) -> InjR p a b Source Comments #

repMap :: forall (a :: j2) (b :: j2). (a ~> b) -> (InjR p % a) ~> (InjR p % b) Source Comments #

(Profunctor p, Representable f, Representable g, Reifies s (ProfSq p (Id :: j2 -> j2 -> Type) f g)) => Profunctor (CotabulatorFactorizer s p f g :: j2 -> COLLAGE p -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Bicategory.Prof

Methods

dimap :: forall (c :: j2) (a :: j2) (b :: COLLAGE p) (d :: COLLAGE p). (c ~> a) -> (b ~> d) -> CotabulatorFactorizer s p f g a b -> CotabulatorFactorizer s p f g c d Source Comments #

(\\) :: forall (a :: j2) (b :: COLLAGE p) r. ((Ob a, Ob b) => r) -> CotabulatorFactorizer s p f g a b -> r Source Comments #

HasBinaryCoproducts k => HasColimits (Unweighted :: COPRODUCT () () -> () -> Type) k Source Comments # 
Instance details

Defined in Proarrow.Category.Colimit

Methods

colimit :: forall (d :: COPRODUCT () () +-> k). Representable d => (d :.: (Unweighted :: COPRODUCT () () -> () -> Type)) :~> Colimit (Unweighted :: COPRODUCT () () -> () -> Type) d Source Comments #

colimitUniv :: forall (d :: COPRODUCT () () +-> k) (p :: () +-> k). (Representable d, Representable p) => ((d :.: (Unweighted :: COPRODUCT () () -> () -> Type)) :~> p) -> Colimit (Unweighted :: COPRODUCT () () -> () -> Type) d :~> p Source Comments #

(Dagger j, Dagger k) => DaggerProfunctor (((~>) :: CAT j) :++: ((~>) :: CAT k) :: COPRODUCT j k -> COPRODUCT j k -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Coproduct

Methods

dagger :: forall (a :: COPRODUCT j k) (b :: COPRODUCT j k). (((~>) :: CAT j) :++: ((~>) :: CAT k)) a b -> (((~>) :: CAT j) :++: ((~>) :: CAT k)) b a Source Comments #

Profunctor p => CategoryOf (COLLAGE p) Source Comments # 
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, Codiscrete 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 #

initiate' :: forall (a' :: COLLAGE p) (a :: COLLAGE p). (a' ~> a) -> (InitialObject :: COLLAGE p) ~> a Source Comments #

(HasTerminalObject k, CategoryOf j, Codiscrete 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 #

terminate' :: forall (a :: COLLAGE p) (a' :: COLLAGE p). (a ~> a') -> a ~> (TerminalObject :: COLLAGE p) Source Comments #

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

Defined in Proarrow.Category.Instance.Collage

Methods

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

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

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

Defined in Proarrow.Category.Instance.Collage

Methods

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

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

(Profunctor p, Representable f, Representable g, Reifies s (ProfSq p (Id :: k2 -> k2 -> Type) f g)) => Representable (CotabulatorFactorizer s p f g :: k2 -> COLLAGE p -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Bicategory.Prof

Methods

index :: forall (a :: k2) (b :: COLLAGE p). CotabulatorFactorizer s p f g a b -> a ~> (CotabulatorFactorizer s p f g % b) Source Comments #

tabulate :: forall (b :: COLLAGE p) (a :: k2). Ob b => (a ~> (CotabulatorFactorizer s p f g % b)) -> CotabulatorFactorizer s p f g a b Source Comments #

repMap :: forall (a :: COLLAGE p) (b :: COLLAGE p). (a ~> b) -> (CotabulatorFactorizer s p f g % a) ~> (CotabulatorFactorizer s p f g % b) 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 #

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 #

(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 #

type Colimit (Unweighted :: COPRODUCT () () -> () -> Type) (d :: COPRODUCT () () +-> k) Source Comments # 
Instance details

Defined in Proarrow.Category.Colimit

type Colimit (Unweighted :: COPRODUCT () () -> () -> Type) (d :: COPRODUCT () () +-> k) = CoproductColimit d
type (InjL p :: COLLAGE p -> j -> Type) % (a :: j) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Collage

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

Defined in Proarrow.Category.Instance.Collage

type (InjR p :: COLLAGE p -> j1 -> Type) % (a :: j1) = 'R a :: COLLAGE p
type Limit (Unweighted :: () -> COPRODUCT () () -> Type) (d :: COPRODUCT () () +-> k) Source Comments # 
Instance details

Defined in Proarrow.Category.Limit

type Limit (Unweighted :: () -> COPRODUCT () () -> Type) (d :: COPRODUCT () () +-> k) = ProductLimit d
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 (CotabulatorFactorizer s p f g :: k2 -> COLLAGE p -> Type) % ('L a :: COLLAGE p) Source Comments # 
Instance details

Defined in Proarrow.Category.Bicategory.Prof

type (CotabulatorFactorizer s p f g :: k2 -> COLLAGE p -> Type) % ('L a :: COLLAGE p) = g % a
type (CotabulatorFactorizer s p f g :: k2 -> COLLAGE p -> Type) % ('R a :: COLLAGE p) Source Comments # 
Instance details

Defined in Proarrow.Category.Bicategory.Prof

type (CotabulatorFactorizer s p f g :: k2 -> COLLAGE p -> Type) % ('R a :: COLLAGE p) = f % 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
(Dagger j, Dagger k) => DaggerProfunctor (((~>) :: CAT j) :++: ((~>) :: CAT k) :: COPRODUCT j k -> COPRODUCT j k -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Coproduct

Methods

dagger :: forall (a :: COPRODUCT j k) (b :: COPRODUCT j k). (((~>) :: CAT j) :++: ((~>) :: CAT k)) a b -> (((~>) :: CAT j) :++: ((~>) :: CAT k)) b a 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 #

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 #

(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 #

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 InjL (p :: k +-> j) (a :: COLLAGE p) (b :: j) where Source Comments #

Constructors

InjL 

Fields

Instances

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

Defined in Proarrow.Category.Instance.Collage

Methods

index :: forall (a :: COLLAGE p) (b :: j). InjL p a b -> a ~> (InjL p % b) Source Comments #

tabulate :: forall (b :: j) (a :: COLLAGE p). Ob b => (a ~> (InjL p % b)) -> InjL p a b Source Comments #

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

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

Defined in Proarrow.Category.Instance.Collage

Methods

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

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

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

Defined in Proarrow.Category.Instance.Collage

type (InjL p :: COLLAGE p -> j -> Type) % (a :: j) = 'L a :: COLLAGE p

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

Constructors

InjR 

Fields

Instances

Instances details
Profunctor p => Representable (InjR p :: COLLAGE p -> j2 -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Collage

Methods

index :: forall (a :: COLLAGE p) (b :: j2). InjR p a b -> a ~> (InjR p % b) Source Comments #

tabulate :: forall (b :: j2) (a :: COLLAGE p). Ob b => (a ~> (InjR p % b)) -> InjR p a b Source Comments #

repMap :: forall (a :: j2) (b :: j2). (a ~> b) -> (InjR p % a) ~> (InjR p % b) Source Comments #

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

Defined in Proarrow.Category.Instance.Collage

Methods

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

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

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

Defined in Proarrow.Category.Instance.Collage

type (InjR p :: COLLAGE p -> j1 -> Type) % (a :: j1) = 'R a :: COLLAGE p