proarrow
Safe HaskellNone
LanguageHaskell2010

Proarrow.Category.Instance.Discrete

Documentation

newtype DISCRETE k Source Comments #

Constructors

D k 

Instances

Instances details
CategoryOf (DISCRETE k) Source Comments #

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
Profunctor Interp Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Free

Methods

dimap :: forall c a (b :: DISCRETE TestTy) (d :: DISCRETE TestTy). (c ~> a) -> (b ~> d) -> Interp a b -> Interp c d Source Comments #

(\\) :: forall a (b :: DISCRETE TestTy) r. ((Ob a, Ob b) => r) -> Interp a b -> r Source Comments #

Representable Interp Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Free

Associated Types

type Interp % IntTy 
Instance details

Defined in Proarrow.Category.Instance.Free

type Interp % IntTy = Int
type Interp % StringTy 
Instance details

Defined in Proarrow.Category.Instance.Free

Methods

index :: forall a (b :: DISCRETE TestTy). Interp a b -> a ~> (Interp % b) Source Comments #

tabulate :: forall (b :: DISCRETE TestTy) a. Ob b => (a ~> (Interp % b)) -> Interp a b Source Comments #

repMap :: forall (a :: DISCRETE TestTy) (b :: DISCRETE TestTy). (a ~> b) -> (Interp % a) ~> (Interp % b) Source Comments #

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

Defined in Proarrow.Category.Instance.Discrete

Methods

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

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

Defined in Proarrow.Category.Instance.Discrete

Methods

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

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

Profunctor (Discrete :: DISCRETE k -> DISCRETE k -> Type) Source Comments # 
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 Comments #

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

ThinProfunctor (Discrete :: DISCRETE k -> DISCRETE k -> Type) Source Comments # 
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 Comments #

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

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

Defined in Proarrow.Category.Instance.Discrete

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

Defined in Proarrow.Category.Instance.Discrete

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

Defined in Proarrow.Category.Instance.Discrete

type Ob (a :: DISCRETE k) = Any a
type Interp % IntTy Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Free

type Interp % IntTy = Int
type Interp % StringTy Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Free

type HasArrow (Discrete :: DISCRETE k -> DISCRETE k -> Type) (a :: DISCRETE k) (b :: DISCRETE k) Source Comments # 
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 Comments #

Constructors

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

Instances

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

Defined in Proarrow.Category.Instance.Discrete

Methods

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

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

Defined in Proarrow.Category.Instance.Discrete

Methods

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

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

Profunctor (Discrete :: DISCRETE k -> DISCRETE k -> Type) Source Comments # 
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 Comments #

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

ThinProfunctor (Discrete :: DISCRETE k -> DISCRETE k -> Type) Source Comments # 
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 Comments #

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

type HasArrow (Discrete :: DISCRETE k -> DISCRETE k -> Type) (a :: DISCRETE k) (b :: DISCRETE k) Source Comments # 
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 Comments #

newtype CODISCRETE k Source Comments #

Constructors

CD k 

Instances

Instances details
CategoryOf (CODISCRETE k) Source Comments #

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 Comments # 
Instance details

Defined in Proarrow.Category.Instance.Discrete

Methods

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

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

Defined in Proarrow.Category.Instance.Discrete

Methods

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

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

Profunctor (Codiscrete :: CODISCRETE k -> CODISCRETE k -> Type) Source Comments # 
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 Comments #

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

ThinProfunctor (Codiscrete :: CODISCRETE k -> CODISCRETE k -> Type) Source Comments # 
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 Comments #

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

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

Defined in Proarrow.Category.Instance.Discrete

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

Defined in Proarrow.Category.Instance.Discrete

type Ob (a :: CODISCRETE k) Source Comments # 
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 Comments # 
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 Comments #

Constructors

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

Instances

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

Defined in Proarrow.Category.Instance.Discrete

Methods

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

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

Defined in Proarrow.Category.Instance.Discrete

Methods

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

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

Profunctor (Codiscrete :: CODISCRETE k -> CODISCRETE k -> Type) Source Comments # 
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 Comments #

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

ThinProfunctor (Codiscrete :: CODISCRETE k -> CODISCRETE k -> Type) Source Comments # 
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 Comments #

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

type HasArrow (Codiscrete :: CODISCRETE k -> CODISCRETE k -> Type) (a :: CODISCRETE k) (b :: CODISCRETE k) Source Comments # 
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 Comments #