proarrow
Safe HaskellNone
LanguageHaskell2010

Proarrow.Preorder.ThinCategory

Documentation

class (Profunctor p, Thin j, Thin k) => ThinProfunctor (p :: j +-> k) where Source Comments #

Associated Types

type HasArrow (p :: j +-> k) (a :: k) (b :: j) Source Comments #

type HasArrow (p :: j +-> k) (a :: k) (b :: j) = ()

Methods

arr :: forall (a :: k) (b :: j). (Ob a, Ob b, HasArrow p a b) => p a b Source Comments #

withArr :: forall (a :: k) (b :: j) r. p a b -> (HasArrow p a b => r) -> r Source Comments #

Instances

Instances details
ThinProfunctor Booleans Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Bool

Associated Types

type HasArrow Booleans (a :: BOOL) (b :: BOOL) 
Instance details

Defined in Proarrow.Category.Instance.Bool

type HasArrow Booleans (a :: BOOL) (b :: BOOL) = IsBoolArr a b

Methods

arr :: forall (a :: BOOL) (b :: BOOL). (Ob a, Ob b, HasArrow Booleans a b) => Booleans a b Source Comments #

withArr :: forall (a :: BOOL) (b :: BOOL) r. Booleans a b -> (HasArrow Booleans a b => r) -> r Source Comments #

ThinProfunctor (:-) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Constraint

Associated Types

type HasArrow (:-) ('CNSTRNT a :: CONSTRAINT) ('CNSTRNT b :: CONSTRAINT) 
Instance details

Defined in Proarrow.Category.Instance.Constraint

type HasArrow (:-) ('CNSTRNT a :: CONSTRAINT) ('CNSTRNT b :: CONSTRAINT) = a :=> b

Methods

arr :: forall (a :: CONSTRAINT) (b :: CONSTRAINT). (Ob a, Ob b, HasArrow (:-) a b) => a :- b Source Comments #

withArr :: forall (a :: CONSTRAINT) (b :: CONSTRAINT) r. (a :- b) -> (HasArrow (:-) a b => r) -> r Source Comments #

ThinProfunctor Zero Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Zero

Associated Types

type HasArrow Zero (a :: VOID) (b :: VOID) 
Instance details

Defined in Proarrow.Category.Instance.Zero

type HasArrow Zero (a :: VOID) (b :: VOID) = ()

Methods

arr :: forall (a :: VOID) (b :: VOID). (Ob a, Ob b, HasArrow Zero a b) => Zero a b Source Comments #

withArr :: forall (a :: VOID) (b :: VOID) r. Zero a b -> (HasArrow Zero a b => r) -> r Source Comments #

ThinProfunctor Unit Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Unit

Associated Types

type HasArrow Unit (a :: ()) (b :: ()) 
Instance details

Defined in Proarrow.Category.Instance.Unit

type HasArrow Unit (a :: ()) (b :: ()) = a ~ b

Methods

arr :: forall (a :: ()) (b :: ()). (Ob a, Ob b, HasArrow Unit a b) => Unit a b Source Comments #

withArr :: forall (a :: ()) (b :: ()) r. Unit a b -> (HasArrow Unit a b => r) -> r Source Comments #

Thin k => ThinProfunctor (Id :: k -> k -> Type) Source Comments # 
Instance details

Defined in Proarrow.Profunctor.Identity

Methods

arr :: forall (a :: k) (b :: k). (Ob a, Ob b, HasArrow (Id :: k -> k -> Type) a b) => Id a b Source Comments #

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

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

Defined in Proarrow.Profunctor.Initial

Methods

arr :: forall (a :: k) (b :: j). (Ob a, Ob b, HasArrow (InitialProfunctor :: k -> j -> Type) a b) => InitialProfunctor a b Source Comments #

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

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

Defined in Proarrow.Profunctor.Terminal

Methods

arr :: forall (a :: k) (b :: j). (Ob a, Ob b, HasArrow (TerminalProfunctor :: k -> j -> Type) a b) => TerminalProfunctor a b Source Comments #

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

Relation p => ThinProfunctor (Converse p :: k -> j -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Rel

Methods

arr :: forall (a :: k) (b :: j). (Ob a, Ob b, HasArrow (Converse p) a b) => Converse p a b Source Comments #

withArr :: forall (a :: k) (b :: j) r. Converse p a b -> (HasArrow (Converse p) a b => r) -> r Source Comments #

(Functor f, Discrete j, Thin k) => ThinProfunctor (Costar f :: k -> j -> Type) Source Comments # 
Instance details

Defined in Proarrow.Profunctor.Costar

Methods

arr :: forall (a :: k) (b :: j). (Ob a, Ob b, HasArrow (Costar f) a b) => Costar f a b Source Comments #

withArr :: forall (a :: k) (b :: j) r. Costar f a b -> (HasArrow (Costar f) a b => r) -> r Source Comments #

(Representable p, Discrete j, Thin k) => ThinProfunctor (RepCostar p :: k -> j -> Type) Source Comments # 
Instance details

Defined in Proarrow.Profunctor.Representable

Methods

arr :: forall (a :: k) (b :: j). (Ob a, Ob b, HasArrow (RepCostar p) a b) => RepCostar p a b Source Comments #

withArr :: forall (a :: k) (b :: j) r. RepCostar p a b -> (HasArrow (RepCostar p) a b => r) -> r Source Comments #

(Functor f, Thin j, Discrete k) => ThinProfunctor (Star f :: k -> j -> Type) Source Comments # 
Instance details

Defined in Proarrow.Profunctor.Star

Methods

arr :: forall (a :: k) (b :: j). (Ob a, Ob b, HasArrow (Star f) a b) => Star f a b Source Comments #

withArr :: forall (a :: k) (b :: j) r. Star f a b -> (HasArrow (Star f) a b => r) -> r Source Comments #

(ThinProfunctor p, ThinProfunctor q, Discrete j, Discrete k) => ThinProfunctor (p :~>: q :: k -> j -> Type) Source Comments # 
Instance details

Defined in Proarrow.Profunctor.Exponential

Methods

arr :: forall (a :: k) (b :: j). (Ob a, Ob b, HasArrow (p :~>: q) a b) => (p :~>: q) a b Source Comments #

withArr :: forall (a :: k) (b :: j) r. (p :~>: q) a b -> (HasArrow (p :~>: q) a b => r) -> r Source Comments #

(ThinProfunctor p, ThinProfunctor q) => ThinProfunctor (p :*: q :: k -> j -> Type) Source Comments # 
Instance details

Defined in Proarrow.Profunctor.Product

Methods

arr :: forall (a :: k) (b :: j). (Ob a, Ob b, HasArrow (p :*: q) a b) => (p :*: q) a b Source Comments #

withArr :: forall (a :: k) (b :: j) r. (p :*: q) a b -> (HasArrow (p :*: q) a b => r) -> 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 #

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 #

ThinProfunctor (LTE :: FIN n -> FIN n -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Fin

Methods

arr :: forall (a :: FIN n) (b :: FIN n). (Ob a, Ob b, HasArrow (LTE :: FIN n -> FIN n -> Type) a b) => LTE a b Source Comments #

withArr :: forall (a :: FIN n) (b :: FIN n) r. LTE a b -> (HasArrow (LTE :: FIN n -> FIN n -> Type) a b => r) -> r Source Comments #

PreorderOf k => ThinProfunctor (PoAsCat :: POCATK k -> POCATK k -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.PreorderAsCategory

Methods

arr :: forall (a :: POCATK k) (b :: POCATK k). (Ob a, Ob b, HasArrow (PoAsCat :: POCATK k -> POCATK k -> Type) a b) => PoAsCat a b Source Comments #

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

ThinProfunctor p => ThinProfunctor (Op p :: OPPOSITE j -> OPPOSITE k -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Opposite

Methods

arr :: forall (a :: OPPOSITE j) (b :: OPPOSITE k). (Ob a, Ob b, HasArrow (Op p) a b) => Op p a b Source Comments #

withArr :: forall (a :: OPPOSITE j) (b :: OPPOSITE k) r. Op p a b -> (HasArrow (Op p) a b => r) -> r Source Comments #

(ThinProfunctor p, ThinProfunctor q) => ThinProfunctor (p :**: q :: (k1, k2) -> (j1, j2) -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Product

Methods

arr :: forall (a :: (k1, k2)) (b :: (j1, j2)). (Ob a, Ob b, HasArrow (p :**: q) a b) => (p :**: q) a b Source Comments #

withArr :: forall (a :: (k1, k2)) (b :: (j1, j2)) r. (p :**: q) a b -> (HasArrow (p :**: q) a b => r) -> 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 #

class ThinProfunctor ((~>) :: CAT k) => Thin k Source Comments #

Instances

Instances details
ThinProfunctor ((~>) :: CAT k) => Thin k Source Comments # 
Instance details

Defined in Proarrow.Preorder.ThinCategory

class HasArrow p a b => HasArrow' (p :: j +-> k) (a :: k) (b :: j) Source Comments #

Instances

Instances details
HasArrow p a b => HasArrow' (p :: j +-> k) (a :: k) (b :: j) Source Comments # 
Instance details

Defined in Proarrow.Preorder.ThinCategory

class (ThinProfunctor p, forall (c :: k) (d :: j). (Ob c, Ob d) => HasArrow' p c d, Codiscrete j, Codiscrete k) => CodiscreteProfunctor (p :: j +-> k) where Source Comments #

Methods

anyArr :: forall (a :: k) (b :: j). (Ob a, Ob b) => p a b Source Comments #

Instances

Instances details
(ThinProfunctor p, forall (c :: k) (d :: j). (Ob c, Ob d) => HasArrow' p c d, Codiscrete j, Codiscrete k) => CodiscreteProfunctor (p :: j +-> k) Source Comments # 
Instance details

Defined in Proarrow.Preorder.ThinCategory

Methods

anyArr :: forall (a :: k) (b :: j). (Ob a, Ob b) => p a b Source Comments #

class CodiscreteProfunctor ((~>) :: CAT k) => Codiscrete k Source Comments #

Instances

Instances details
CodiscreteProfunctor ((~>) :: CAT k) => Codiscrete k Source Comments # 
Instance details

Defined in Proarrow.Preorder.ThinCategory

class HasArrow p c d ~ (c ~ d) => ArrowIsId (p :: k +-> k) (c :: k) (d :: k) where Source Comments #

Methods

arrowIsIdProof :: HasArrow p c d => (c ~ d => r) -> r Source Comments #

Instances

Instances details
HasArrow p c d ~ (c ~ d) => ArrowIsId (p :: k +-> k) (c :: k) (d :: k) Source Comments # 
Instance details

Defined in Proarrow.Preorder.ThinCategory

Methods

arrowIsIdProof :: HasArrow p c d => (c ~ d => r) -> r Source Comments #

class (ThinProfunctor p, forall (c :: k) (d :: k). ArrowIsId p c d, Discrete k) => DiscreteProfunctor (p :: k +-> k) where Source Comments #

Methods

withEq :: forall (a :: k) (b :: k) r. p a b -> (a ~ b => r) -> r Source Comments #

Instances

Instances details
(ThinProfunctor p, forall (c :: k) (d :: k). ArrowIsId p c d, Discrete k) => DiscreteProfunctor (p :: k +-> k) Source Comments # 
Instance details

Defined in Proarrow.Preorder.ThinCategory

Methods

withEq :: forall (a :: k) (b :: k) r. p a b -> (a ~ b => r) -> r Source Comments #

class DiscreteProfunctor ((~>) :: CAT k) => Discrete k Source Comments #

Instances

Instances details
DiscreteProfunctor ((~>) :: CAT k) => Discrete k Source Comments # 
Instance details

Defined in Proarrow.Preorder.ThinCategory

newtype THIN k Source Comments #

Constructors

T k 

Instances

Instances details
Thin k => PreorderOf (THIN k) Source Comments #

A thin category as a preorder.

Instance details

Defined in Proarrow.Preorder.ThinCategory

Associated Types

type (<=) 
Instance details

Defined in Proarrow.Preorder.ThinCategory

type (<=) = ThinCategory :: THIN k -> THIN k -> Constraint
Thin k => CProfunctor (ThinCategory :: THIN k -> THIN k -> Constraint) Source Comments # 
Instance details

Defined in Proarrow.Preorder.ThinCategory

Methods

cdimap :: forall (c :: THIN k) (a :: THIN k) (b :: THIN k) (d :: THIN k). (c <= a, b <= d, ThinCategory a b) :- ThinCategory c d Source Comments #

obs :: forall (a :: THIN k) (b :: THIN k). ThinCategory a b :- (COb a, COb b) Source Comments #

Thin k => CPromonad (ThinCategory :: THIN k -> THIN k -> Constraint) Source Comments # 
Instance details

Defined in Proarrow.Preorder.ThinCategory

Methods

cid :: forall (a :: THIN k). COb a => () :- ThinCategory a a Source Comments #

ccomp :: forall (a :: THIN k) (b :: THIN k) (c :: THIN k). (ThinCategory b c, ThinCategory a b) :- ThinCategory a c Source Comments #

type UN ('T :: j -> THIN j) ('T a :: THIN j) Source Comments # 
Instance details

Defined in Proarrow.Preorder.ThinCategory

type UN ('T :: j -> THIN j) ('T a :: THIN j) = a
type (<=) Source Comments # 
Instance details

Defined in Proarrow.Preorder.ThinCategory

type (<=) = ThinCategory :: THIN k -> THIN k -> Constraint
type COb (a :: THIN k) Source Comments # 
Instance details

Defined in Proarrow.Preorder.ThinCategory

type COb (a :: THIN k) = (Is ('T :: k -> THIN k) a, Ob (UN ('T :: k -> THIN k) a))

class (Thin k, HasArrow ((~>) :: CAT k) (UN ('T :: k -> THIN k) a) (UN ('T :: k -> THIN k) b), COb a, COb b) => ThinCategory (a :: THIN k) (b :: THIN k) Source Comments #

Instances

Instances details
(Thin k, HasArrow ((~>) :: CAT k) (UN ('T :: k -> THIN k) a) (UN ('T :: k -> THIN k) b), COb a, COb b) => ThinCategory (a :: THIN k) (b :: THIN k) Source Comments # 
Instance details

Defined in Proarrow.Preorder.ThinCategory