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

Proarrow.Preorder

Documentation

type POS k = k -> k -> Constraint Source Comments #

data Dict a where Source Comments #

Constructors

Dict :: forall a. a => Dict a 

newtype a :- b Source Comments #

Constructors

Sub (a => Dict b) 

(\\) :: a => (c => r) -> (a :- c) -> r infixl 1 Source Comments #

class CPromonad ((<=) :: POS k) => PreorderOf k Source Comments #

Associated Types

type (<=) :: POS k Source Comments #

type COb (a :: k) Source Comments #

type COb (a :: k) = ()

Instances

Instances details
PreorderOf Constraint Source Comments # 
Instance details

Defined in Proarrow.Preorder.Constraint

Associated Types

type (<=) 
Instance details

Defined in Proarrow.Preorder.Constraint

type (<=) = (:=>)
type COb (a :: Constraint) 
Instance details

Defined in Proarrow.Preorder.Constraint

type COb (a :: Constraint) = ()
PreorderOf (DISCRETE k) Source Comments # 
Instance details

Defined in Proarrow.Preorder.Discrete

Associated Types

type (<=) 
Instance details

Defined in Proarrow.Preorder.Discrete

type (<=) = (~) :: DISCRETE k -> DISCRETE k -> Constraint
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

type IsPosetOf k (pos :: POS k) = (PreorderOf k, pos ~ ((<=) :: POS k), CPromonad pos) Source Comments #

class CProfunctor (p :: k -> k -> Constraint) where Source Comments #

Methods

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

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

Instances

Instances details
CProfunctor (:=>) Source Comments # 
Instance details

Defined in Proarrow.Preorder.Constraint

Methods

cdimap :: (c <= a, b <= d, a :=> b) :- (c :=> d) Source Comments #

obs :: (a :=> b) :- (COb a, COb b) Source Comments #

CProfunctor ((~) :: DISCRETE k -> DISCRETE k -> Constraint) Source Comments # 
Instance details

Defined in Proarrow.Preorder.Discrete

Methods

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

obs :: forall (a :: DISCRETE k) (b :: DISCRETE k). (a ~ b) :- (COb a, COb b) Source Comments #

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 #

class CProfunctor p => CPromonad (p :: k -> k -> Constraint) where Source Comments #

Methods

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

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

Instances

Instances details
CPromonad (:=>) Source Comments # 
Instance details

Defined in Proarrow.Preorder.Constraint

Methods

cid :: COb a => () :- (a :=> a) Source Comments #

ccomp :: forall a b c. (b :=> c, a :=> b) :- (a :=> c) Source Comments #

CPromonad ((~) :: DISCRETE k -> DISCRETE k -> Constraint) Source Comments # 
Instance details

Defined in Proarrow.Preorder.Discrete

Methods

cid :: forall (a :: DISCRETE k). COb a => () :- (a ~ a) Source Comments #

ccomp :: forall (a :: DISCRETE k) (b :: DISCRETE k) (c :: DISCRETE k). (b ~ c, a ~ b) :- (a ~ c) 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 #

cdimapDefault :: forall {k} p (a :: k) (b :: k) (c :: k) (d :: k). CPromonad p => (p c a, p b d, p a b) :- p c d Source Comments #