proarrow
Safe HaskellNone
LanguageGHC2024

Proarrow.Category.Instance.Discrete

Documentation

newtype DISCRETE k Source Github #

Constructors

D k 

Instances

Instances details
CategoryOf (DISCRETE k) Source Github #

The discrete category with only identity arrows, every type of kind k is an object.

Instance details

Defined in Proarrow.Category.Instance.Discrete

Associated Types

type (~>) 
Instance details

Defined in Proarrow.Category.Instance.Discrete

type (~>) = Discrete :: DISCRETE k -> DISCRETE k -> Type
DaggerProfunctor (Discrete :: DISCRETE k -> DISCRETE k -> Type) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Discrete

Methods

dagger :: forall (a :: DISCRETE k) (b :: DISCRETE k). Discrete a b -> Discrete b a Source Github #

Promonad (Discrete :: DISCRETE k -> DISCRETE k -> Type) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Discrete

Methods

id :: forall (a :: DISCRETE k). Ob a => Discrete a a Source Github #

(.) :: forall (b :: DISCRETE k) (c :: DISCRETE k) (a :: DISCRETE k). Discrete b c -> Discrete a b -> Discrete a c Source Github #

FunctorForRep Succ Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Cat

Associated Types

type Succ @ ('D n :: DISCRETE Nat) 
Instance details

Defined in Proarrow.Category.Instance.Cat

type Succ @ ('D n :: DISCRETE Nat) = 'D ('S n)

Methods

fmap :: forall (a :: DISCRETE Nat) (b :: DISCRETE Nat). (a ~> b) -> (Succ @ a) ~> (Succ @ b) Source Github #

ThinProfunctor (Discrete :: DISCRETE k -> DISCRETE k -> Type) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Discrete

Methods

arr :: forall (a :: DISCRETE k) (b :: DISCRETE k). (Ob a, Ob b, HasArrow (Discrete :: DISCRETE k -> DISCRETE k -> Type) a b) => Discrete a b Source Github #

withArr :: forall (a :: DISCRETE k) (b :: DISCRETE k) r. Discrete a b -> (HasArrow (Discrete :: DISCRETE k -> DISCRETE k -> Type) a b => r) -> r Source Github #

Profunctor (Discrete :: DISCRETE k -> DISCRETE k -> Type) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Discrete

Methods

dimap :: forall (c :: DISCRETE k) (a :: DISCRETE k) (b :: DISCRETE k) (d :: DISCRETE k). (c ~> a) -> (b ~> d) -> Discrete a b -> Discrete c d Source Github #

lmap :: forall (c :: DISCRETE k) (a :: DISCRETE k) (b :: DISCRETE k). (c ~> a) -> Discrete a b -> Discrete c b Source Github #

rmap :: forall (b :: DISCRETE k) (d :: DISCRETE k) (a :: DISCRETE k). (b ~> d) -> Discrete a b -> Discrete a d Source Github #

(\\) :: forall (a :: DISCRETE k) (b :: DISCRETE k) r. ((Ob a, Ob b) => r) -> Discrete a b -> r Source Github #

(Profunctor z, Profunctor s) => Profunctor (NNOUniv z s :: k -> (a, DISCRETE Nat) -> Type) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Cat

Methods

dimap :: forall (c :: k) (a0 :: k) (b :: (a, DISCRETE Nat)) (d :: (a, DISCRETE Nat)). (c ~> a0) -> (b ~> d) -> NNOUniv z s a0 b -> NNOUniv z s c d Source Github #

lmap :: forall (c :: k) (a0 :: k) (b :: (a, DISCRETE Nat)). (c ~> a0) -> NNOUniv z s a0 b -> NNOUniv z s c b Source Github #

rmap :: forall (b :: (a, DISCRETE Nat)) (d :: (a, DISCRETE Nat)) (a0 :: k). (b ~> d) -> NNOUniv z s a0 b -> NNOUniv z s a0 d Source Github #

(\\) :: forall (a0 :: k) (b :: (a, DISCRETE Nat)) r. ((Ob a0, Ob b) => r) -> NNOUniv z s a0 b -> r Source Github #

type UN ('D :: j -> DISCRETE j) ('D a :: DISCRETE j) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Discrete

type UN ('D :: j -> DISCRETE j) ('D a :: DISCRETE j) = a
type (~>) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Discrete

type (~>) = Discrete :: DISCRETE k -> DISCRETE k -> Type
type Ob (a :: DISCRETE k) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Discrete

type Ob (a :: DISCRETE k) = Any a
type Succ @ ('D n :: DISCRETE Nat) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Cat

type Succ @ ('D n :: DISCRETE Nat) = 'D ('S n)
type HasArrow (Discrete :: DISCRETE k -> DISCRETE k -> Type) (a :: DISCRETE k) (b :: DISCRETE k) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Discrete

type HasArrow (Discrete :: DISCRETE k -> DISCRETE k -> Type) (a :: DISCRETE k) (b :: DISCRETE k) = a ~ b

data Discrete (a :: DISCRETE k) (b :: DISCRETE k) where Source Github #

Constructors

Refl :: forall {k} (a :: DISCRETE k). Discrete a a 

Instances

Instances details
DaggerProfunctor (Discrete :: DISCRETE k -> DISCRETE k -> Type) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Discrete

Methods

dagger :: forall (a :: DISCRETE k) (b :: DISCRETE k). Discrete a b -> Discrete b a Source Github #

Promonad (Discrete :: DISCRETE k -> DISCRETE k -> Type) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Discrete

Methods

id :: forall (a :: DISCRETE k). Ob a => Discrete a a Source Github #

(.) :: forall (b :: DISCRETE k) (c :: DISCRETE k) (a :: DISCRETE k). Discrete b c -> Discrete a b -> Discrete a c Source Github #

ThinProfunctor (Discrete :: DISCRETE k -> DISCRETE k -> Type) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Discrete

Methods

arr :: forall (a :: DISCRETE k) (b :: DISCRETE k). (Ob a, Ob b, HasArrow (Discrete :: DISCRETE k -> DISCRETE k -> Type) a b) => Discrete a b Source Github #

withArr :: forall (a :: DISCRETE k) (b :: DISCRETE k) r. Discrete a b -> (HasArrow (Discrete :: DISCRETE k -> DISCRETE k -> Type) a b => r) -> r Source Github #

Profunctor (Discrete :: DISCRETE k -> DISCRETE k -> Type) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Discrete

Methods

dimap :: forall (c :: DISCRETE k) (a :: DISCRETE k) (b :: DISCRETE k) (d :: DISCRETE k). (c ~> a) -> (b ~> d) -> Discrete a b -> Discrete c d Source Github #

lmap :: forall (c :: DISCRETE k) (a :: DISCRETE k) (b :: DISCRETE k). (c ~> a) -> Discrete a b -> Discrete c b Source Github #

rmap :: forall (b :: DISCRETE k) (d :: DISCRETE k) (a :: DISCRETE k). (b ~> d) -> Discrete a b -> Discrete a d Source Github #

(\\) :: forall (a :: DISCRETE k) (b :: DISCRETE k) r. ((Ob a, Ob b) => r) -> Discrete a b -> r Source Github #

type HasArrow (Discrete :: DISCRETE k -> DISCRETE k -> Type) (a :: DISCRETE k) (b :: DISCRETE k) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Discrete

type HasArrow (Discrete :: DISCRETE k -> DISCRETE k -> Type) (a :: DISCRETE k) (b :: DISCRETE k) = a ~ b

withEq :: forall {k} (a :: DISCRETE k) (b :: DISCRETE k) r. Discrete a b -> (a ~ b => r) -> r Source Github #

newtype CODISCRETE k Source Github #

Constructors

CD k 

Instances

Instances details
CategoryOf (CODISCRETE k) Source Github #

The codiscrete category has exactly one arrow between every object, every type of kind k is an object.

Instance details

Defined in Proarrow.Category.Instance.Discrete

Associated Types

type (~>) 
Instance details

Defined in Proarrow.Category.Instance.Discrete

DaggerProfunctor (Codiscrete :: CODISCRETE k -> CODISCRETE k -> Type) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Discrete

Methods

dagger :: forall (a :: CODISCRETE k) (b :: CODISCRETE k). Codiscrete a b -> Codiscrete b a Source Github #

Promonad (Codiscrete :: CODISCRETE k -> CODISCRETE k -> Type) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Discrete

Methods

id :: forall (a :: CODISCRETE k). Ob a => Codiscrete a a Source Github #

(.) :: forall (b :: CODISCRETE k) (c :: CODISCRETE k) (a :: CODISCRETE k). Codiscrete b c -> Codiscrete a b -> Codiscrete a c Source Github #

ThinProfunctor (Codiscrete :: CODISCRETE k -> CODISCRETE k -> Type) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Discrete

Methods

arr :: forall (a :: CODISCRETE k) (b :: CODISCRETE k). (Ob a, Ob b, HasArrow (Codiscrete :: CODISCRETE k -> CODISCRETE k -> Type) a b) => Codiscrete a b Source Github #

withArr :: forall (a :: CODISCRETE k) (b :: CODISCRETE k) r. Codiscrete a b -> (HasArrow (Codiscrete :: CODISCRETE k -> CODISCRETE k -> Type) a b => r) -> r Source Github #

Profunctor (Codiscrete :: CODISCRETE k -> CODISCRETE k -> Type) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Discrete

Methods

dimap :: forall (c :: CODISCRETE k) (a :: CODISCRETE k) (b :: CODISCRETE k) (d :: CODISCRETE k). (c ~> a) -> (b ~> d) -> Codiscrete a b -> Codiscrete c d Source Github #

lmap :: forall (c :: CODISCRETE k) (a :: CODISCRETE k) (b :: CODISCRETE k). (c ~> a) -> Codiscrete a b -> Codiscrete c b Source Github #

rmap :: forall (b :: CODISCRETE k) (d :: CODISCRETE k) (a :: CODISCRETE k). (b ~> d) -> Codiscrete a b -> Codiscrete a d Source Github #

(\\) :: forall (a :: CODISCRETE k) (b :: CODISCRETE k) r. ((Ob a, Ob b) => r) -> Codiscrete a b -> r Source Github #

type UN ('CD :: j -> CODISCRETE j) ('CD a :: CODISCRETE j) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Discrete

type UN ('CD :: j -> CODISCRETE j) ('CD a :: CODISCRETE j) = a
type (~>) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Discrete

type Ob (a :: CODISCRETE k) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Discrete

type Ob (a :: CODISCRETE k) = Any a
type HasArrow (Codiscrete :: CODISCRETE k -> CODISCRETE k -> Type) (a :: CODISCRETE k) (b :: CODISCRETE k) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Discrete

type HasArrow (Codiscrete :: CODISCRETE k -> CODISCRETE k -> Type) (a :: CODISCRETE k) (b :: CODISCRETE k) = ()

data Codiscrete (a :: CODISCRETE k) (b :: CODISCRETE k) where Source Github #

Constructors

Arr :: forall {k} (a :: CODISCRETE k) (b :: CODISCRETE k). Codiscrete a b 

Instances

Instances details
DaggerProfunctor (Codiscrete :: CODISCRETE k -> CODISCRETE k -> Type) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Discrete

Methods

dagger :: forall (a :: CODISCRETE k) (b :: CODISCRETE k). Codiscrete a b -> Codiscrete b a Source Github #

Promonad (Codiscrete :: CODISCRETE k -> CODISCRETE k -> Type) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Discrete

Methods

id :: forall (a :: CODISCRETE k). Ob a => Codiscrete a a Source Github #

(.) :: forall (b :: CODISCRETE k) (c :: CODISCRETE k) (a :: CODISCRETE k). Codiscrete b c -> Codiscrete a b -> Codiscrete a c Source Github #

ThinProfunctor (Codiscrete :: CODISCRETE k -> CODISCRETE k -> Type) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Discrete

Methods

arr :: forall (a :: CODISCRETE k) (b :: CODISCRETE k). (Ob a, Ob b, HasArrow (Codiscrete :: CODISCRETE k -> CODISCRETE k -> Type) a b) => Codiscrete a b Source Github #

withArr :: forall (a :: CODISCRETE k) (b :: CODISCRETE k) r. Codiscrete a b -> (HasArrow (Codiscrete :: CODISCRETE k -> CODISCRETE k -> Type) a b => r) -> r Source Github #

Profunctor (Codiscrete :: CODISCRETE k -> CODISCRETE k -> Type) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Discrete

Methods

dimap :: forall (c :: CODISCRETE k) (a :: CODISCRETE k) (b :: CODISCRETE k) (d :: CODISCRETE k). (c ~> a) -> (b ~> d) -> Codiscrete a b -> Codiscrete c d Source Github #

lmap :: forall (c :: CODISCRETE k) (a :: CODISCRETE k) (b :: CODISCRETE k). (c ~> a) -> Codiscrete a b -> Codiscrete c b Source Github #

rmap :: forall (b :: CODISCRETE k) (d :: CODISCRETE k) (a :: CODISCRETE k). (b ~> d) -> Codiscrete a b -> Codiscrete a d Source Github #

(\\) :: forall (a :: CODISCRETE k) (b :: CODISCRETE k) r. ((Ob a, Ob b) => r) -> Codiscrete a b -> r Source Github #

type HasArrow (Codiscrete :: CODISCRETE k -> CODISCRETE k -> Type) (a :: CODISCRETE k) (b :: CODISCRETE k) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Discrete

type HasArrow (Codiscrete :: CODISCRETE k -> CODISCRETE k -> Type) (a :: CODISCRETE k) (b :: CODISCRETE k) = ()

anyArr :: forall {k} (a :: CODISCRETE k) (b :: CODISCRETE k). Codiscrete a b Source Github #