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

Proarrow.Preorder.ThinCategory

Documentation

class Profunctor p => 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 '() '() 
Instance details

Defined in Proarrow.Category.Instance.Unit

type HasArrow Unit '() '() = ()

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 #

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

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 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 => Codiscrete (p :: j +-> k) where Source Comments #

Minimal complete definition

Nothing

Methods

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

default anyArr :: forall (a :: k) (b :: j). (Ob a, Ob b, forall (c :: k) (d :: j). (Ob c, Ob d) => HasArrow' p c d) => p a b Source Comments #

Instances

Instances details
Codiscrete Unit Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Unit

Methods

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

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

Defined in Proarrow.Profunctor.Terminal

Methods

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

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

Defined in Proarrow.Category.Instance.Product

Methods

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

class ThinProfunctor p => Discrete (p :: k +-> k) where Source Comments #

Minimal complete definition

Nothing

Methods

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

default withEq :: forall (a :: k) (b :: k) r. (forall (c :: k) (d :: k). HasArrow' p c d => c ~ d) => p a b -> (a ~ b => r) -> r Source Comments #

Instances

Instances details
Discrete Unit Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Unit

Methods

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

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

Defined in Proarrow.Category.Instance.Product

Methods

withEq :: forall (a :: (j1, j2)) (b :: (j1, j2)) r. (p :**: q) a b -> (a ~ b => r) -> r Source Comments #

newtype THIN k Source Comments #

Constructors

T k 

Instances

Instances details
Thin k => PreorderOf (THIN k) Source Comments # 
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