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

Proarrow.Object.Copower

Synopsis

Documentation

class CategoryOf k => Copowered k where Source Comments #

Categories copowered over Hask.

Associated Types

type n *. (a :: k) :: k Source Comments #

Methods

withObCopower :: forall (a :: k) n r. Ob a => (Ob (n *. a) => r) -> r Source Comments #

copower :: forall (a :: k) (b :: k) n. (Ob a, Ob b) => (n -> a ~> b) -> (n *. a) ~> b Source Comments #

uncopower :: forall (a :: k) n (b :: k). Ob a => ((n *. a) ~> b) -> n -> a ~> b Source Comments #

Instances

Instances details
Copowered LINEAR Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Linear

Associated Types

type n *. ('L a :: LINEAR) 
Instance details

Defined in Proarrow.Category.Instance.Linear

type n *. ('L a :: LINEAR) = 'L (Ur n, a)

Methods

withObCopower :: forall (a :: LINEAR) n r. Ob a => (Ob (n *. a) => r) -> r Source Comments #

copower :: forall (a :: LINEAR) (b :: LINEAR) n. (Ob a, Ob b) => (n -> a ~> b) -> (n *. a) ~> b Source Comments #

uncopower :: forall (a :: LINEAR) n (b :: LINEAR). Ob a => ((n *. a) ~> b) -> n -> a ~> b Source Comments #

Copowered POINTED Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.PointedHask

Associated Types

type n *. ('P a :: POINTED) 
Instance details

Defined in Proarrow.Category.Instance.PointedHask

type n *. ('P a :: POINTED) = 'P (n, a)

Methods

withObCopower :: forall (a :: POINTED) n r. Ob a => (Ob (n *. a) => r) -> r Source Comments #

copower :: forall (a :: POINTED) (b :: POINTED) n. (Ob a, Ob b) => (n -> a ~> b) -> (n *. a) ~> b Source Comments #

uncopower :: forall (a :: POINTED) n (b :: POINTED). Ob a => ((n *. a) ~> b) -> n -> a ~> b Source Comments #

Copowered () Source Comments # 
Instance details

Defined in Proarrow.Object.Copower

Associated Types

type n *. (a :: ()) 
Instance details

Defined in Proarrow.Object.Copower

type n *. (a :: ()) = '()

Methods

withObCopower :: forall (a :: ()) n r. Ob a => (Ob (n *. a) => r) -> r Source Comments #

copower :: forall (a :: ()) (b :: ()) n. (Ob a, Ob b) => (n -> a ~> b) -> (n *. a) ~> b Source Comments #

uncopower :: forall (a :: ()) n (b :: ()). Ob a => ((n *. a) ~> b) -> n -> a ~> b Source Comments #

Copowered Type Source Comments # 
Instance details

Defined in Proarrow.Object.Copower

Associated Types

type n *. (a :: Type) 
Instance details

Defined in Proarrow.Object.Copower

type n *. (a :: Type) = (n, a)

Methods

withObCopower :: Ob a => (Ob (n *. a) => r) -> r Source Comments #

copower :: (Ob a, Ob b) => (n -> a ~> b) -> (n *. a) ~> b Source Comments #

uncopower :: Ob a => ((n *. a) ~> b) -> n -> a ~> b Source Comments #

Powered k => Copowered (OPPOSITE k) Source Comments # 
Instance details

Defined in Proarrow.Category.Opposite

Methods

withObCopower :: forall (a :: OPPOSITE k) n r. Ob a => (Ob (n *. a) => r) -> r Source Comments #

copower :: forall (a :: OPPOSITE k) (b :: OPPOSITE k) n. (Ob a, Ob b) => (n -> a ~> b) -> (n *. a) ~> b Source Comments #

uncopower :: forall (a :: OPPOSITE k) n (b :: OPPOSITE k). Ob a => ((n *. a) ~> b) -> n -> a ~> b Source Comments #

(CategoryOf j, CategoryOf k) => Copowered (j +-> k) Source Comments # 
Instance details

Defined in Proarrow.Object.Copower

Methods

withObCopower :: forall (a :: j +-> k) n r. Ob a => (Ob (n *. a) => r) -> r Source Comments #

copower :: forall (a :: j +-> k) (b :: j +-> k) n. (Ob a, Ob b) => (n -> a ~> b) -> (n *. a) ~> b Source Comments #

uncopower :: forall (a :: j +-> k) n (b :: j +-> k). Ob a => ((n *. a) ~> b) -> n -> a ~> b Source Comments #

(Copowered j, Copowered k) => Copowered (j, k) Source Comments # 
Instance details

Defined in Proarrow.Object.Copower

Methods

withObCopower :: forall (a :: (j, k)) n r. Ob a => (Ob (n *. a) => r) -> r Source Comments #

copower :: forall (a :: (j, k)) (b :: (j, k)) n. (Ob a, Ob b) => (n -> a ~> b) -> (n *. a) ~> b Source Comments #

uncopower :: forall (a :: (j, k)) n (b :: (j, k)). Ob a => ((n *. a) ~> b) -> n -> a ~> b Source Comments #

Copowered (k -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Nat

Methods

withObCopower :: forall (a :: k -> Type) n r. Ob a => (Ob (n *. a) => r) -> r Source Comments #

copower :: forall (a :: k -> Type) (b :: k -> Type) n. (Ob a, Ob b) => (n -> a ~> b) -> (n *. a) ~> b Source Comments #

uncopower :: forall (a :: k -> Type) n (b :: k -> Type). Ob a => ((n *. a) ~> b) -> n -> a ~> b Source Comments #

mapCobase :: forall k (a :: k) (b :: k) n. Copowered k => (a ~> b) -> (n *. a) ~> (n *. b) Source Comments #

mapCopower :: forall k (a :: k) n m. (Copowered k, Ob a) => (n -> m) -> (n *. a) ~> (m *. a) Source Comments #

data (n :*.: (p :: k -> k1 -> Type)) (a :: k) (b :: k1) where Source Comments #

Constructors

Copower :: forall {k} {k1} n (p :: k -> k1 -> Type) (a :: k) (b :: k1). n -> p a b -> (n :*.: p) a b 

Instances

Instances details
Profunctor p => Profunctor (n :*.: p :: k -> j -> Type) Source Comments # 
Instance details

Defined in Proarrow.Object.Copower

Methods

dimap :: forall (c :: k) (a :: k) (b :: j) (d :: j). (c ~> a) -> (b ~> d) -> (n :*.: p) a b -> (n :*.: p) c d Source Comments #

(\\) :: forall (a :: k) (b :: j) r. ((Ob a, Ob b) => r) -> (n :*.: p) a b -> r Source Comments #