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

Proarrow.Category.Instance.PointedHask

Documentation

data POINTED Source Comments #

Constructors

P Type 

Instances

Instances details
Monoidal POINTED Source Comments #

The smash product of pointed sets. Monoids relative to the smash product are absorption monoids.

Instance details

Defined in Proarrow.Category.Instance.PointedHask

Associated Types

type Unit 
Instance details

Defined in Proarrow.Category.Instance.PointedHask

type Unit = 'P ()
type ('P a :: POINTED) ** ('P b :: POINTED) 
Instance details

Defined in Proarrow.Category.Instance.PointedHask

type ('P a :: POINTED) ** ('P b :: POINTED) = 'P (a, b)

Methods

withOb2 :: forall (a :: POINTED) (b :: POINTED) r. (Ob a, Ob b) => (Ob (a ** b) => r) -> r Source Comments #

leftUnitor :: forall (a :: POINTED). Ob a => ((Unit :: POINTED) ** a) ~> a Source Comments #

leftUnitorInv :: forall (a :: POINTED). Ob a => a ~> ((Unit :: POINTED) ** a) Source Comments #

rightUnitor :: forall (a :: POINTED). Ob a => (a ** (Unit :: POINTED)) ~> a Source Comments #

rightUnitorInv :: forall (a :: POINTED). Ob a => a ~> (a ** (Unit :: POINTED)) Source Comments #

associator :: forall (a :: POINTED) (b :: POINTED) (c :: POINTED). (Ob a, Ob b, Ob c) => ((a ** b) ** c) ~> (a ** (b ** c)) Source Comments #

associatorInv :: forall (a :: POINTED) (b :: POINTED) (c :: POINTED). (Ob a, Ob b, Ob c) => (a ** (b ** c)) ~> ((a ** b) ** c) Source Comments #

CategoryOf POINTED Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.PointedHask

Associated Types

type (~>) 
Instance details

Defined in Proarrow.Category.Instance.PointedHask

type (~>) = Pointed
type Ob (a :: POINTED) 
Instance details

Defined in Proarrow.Category.Instance.PointedHask

type Ob (a :: POINTED) = a ~ 'P (UN 'P a)
HasBinaryCoproducts POINTED Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.PointedHask

Associated Types

type ('P a :: POINTED) || ('P b :: POINTED) 
Instance details

Defined in Proarrow.Category.Instance.PointedHask

type ('P a :: POINTED) || ('P b :: POINTED) = 'P (a || b)

Methods

withObCoprod :: forall (a :: POINTED) (b :: POINTED) r. (Ob a, Ob b) => (Ob (a || b) => r) -> r Source Comments #

lft :: forall (a :: POINTED) (b :: POINTED). (Ob a, Ob b) => a ~> (a || b) Source Comments #

rgt :: forall (a :: POINTED) (b :: POINTED). (Ob a, Ob b) => b ~> (a || b) Source Comments #

(|||) :: forall (x :: POINTED) (a :: POINTED) (y :: POINTED). (x ~> a) -> (y ~> a) -> (x || y) ~> a Source Comments #

(+++) :: forall (a :: POINTED) (b :: POINTED) (x :: POINTED) (y :: POINTED). (a ~> x) -> (b ~> y) -> (a || b) ~> (x || y) Source Comments #

HasBinaryProducts POINTED Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.PointedHask

Associated Types

type ('P a :: POINTED) && ('P b :: POINTED) 
Instance details

Defined in Proarrow.Category.Instance.PointedHask

type ('P a :: POINTED) && ('P b :: POINTED) = 'P (These a b)

Methods

withObProd :: forall (a :: POINTED) (b :: POINTED) r. (Ob a, Ob b) => (Ob (a && b) => r) -> r Source Comments #

fst :: forall (a :: POINTED) (b :: POINTED). (Ob a, Ob b) => (a && b) ~> a Source Comments #

snd :: forall (a :: POINTED) (b :: POINTED). (Ob a, Ob b) => (a && b) ~> b Source Comments #

(&&&) :: forall (a :: POINTED) (x :: POINTED) (y :: POINTED). (a ~> x) -> (a ~> y) -> a ~> (x && y) Source Comments #

(***) :: forall (a :: POINTED) (b :: POINTED) (x :: POINTED) (y :: POINTED). (a ~> x) -> (b ~> y) -> (a && b) ~> (x && y) Source Comments #

HasInitialObject POINTED Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.PointedHask

Associated Types

type InitialObject 
Instance details

Defined in Proarrow.Category.Instance.PointedHask

Methods

initiate :: forall (a :: POINTED). Ob a => (InitialObject :: POINTED) ~> a Source Comments #

HasTerminalObject POINTED Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.PointedHask

Associated Types

type TerminalObject 
Instance details

Defined in Proarrow.Category.Instance.PointedHask

Methods

terminate :: forall (a :: POINTED). Ob a => a ~> (TerminalObject :: POINTED) Source Comments #

Promonad Pointed Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.PointedHask

Methods

id :: forall (a :: POINTED). Ob a => Pointed a a Source Comments #

(.) :: forall (b :: POINTED) (c :: POINTED) (a :: POINTED). Pointed b c -> Pointed a b -> Pointed a c Source Comments #

MonoidalProfunctor Pointed Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.PointedHask

Methods

par0 :: Pointed (Unit :: POINTED) (Unit :: POINTED) Source Comments #

par :: forall (x1 :: POINTED) (x2 :: POINTED) (y1 :: POINTED) (y2 :: POINTED). Pointed x1 x2 -> Pointed y1 y2 -> Pointed (x1 ** y1) (x2 ** y2) Source Comments #

Profunctor Pointed Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.PointedHask

Methods

dimap :: forall (c :: POINTED) (a :: POINTED) (b :: POINTED) (d :: POINTED). (c ~> a) -> (b ~> d) -> Pointed a b -> Pointed c d Source Comments #

(\\) :: forall (a :: POINTED) (b :: POINTED) r. ((Ob a, Ob b) => r) -> Pointed a b -> r Source Comments #

Comonoid ('P x :: POINTED) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.PointedHask

Methods

counit :: 'P x ~> (Unit :: POINTED) Source Comments #

comult :: 'P x ~> ('P x ** 'P x) Source Comments #

Monoid ('P Void) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.PointedHask

Monoid ('P ()) Source Comments #

Conjunction with False = Nothing, True = Just ()

Instance details

Defined in Proarrow.Category.Instance.PointedHask

Methods

mempty :: (Unit :: POINTED) ~> 'P () Source Comments #

mappend :: ('P () ** 'P ()) ~> 'P () Source Comments #

Monoid ('P [a] :: POINTED) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.PointedHask

Methods

mempty :: (Unit :: POINTED) ~> 'P [a] Source Comments #

mappend :: ('P [a] ** 'P [a]) ~> 'P [a] Source Comments #

type Unit Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.PointedHask

type Unit = 'P ()
type (~>) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.PointedHask

type (~>) = Pointed
type InitialObject Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.PointedHask

type TerminalObject Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.PointedHask

type Ob (a :: POINTED) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.PointedHask

type Ob (a :: POINTED) = a ~ 'P (UN 'P a)
type UN 'P ('P a :: POINTED) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.PointedHask

type UN 'P ('P a :: POINTED) = a
type ('P a :: POINTED) ** ('P b :: POINTED) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.PointedHask

type ('P a :: POINTED) ** ('P b :: POINTED) = 'P (a, b)
type ('P a :: POINTED) || ('P b :: POINTED) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.PointedHask

type ('P a :: POINTED) || ('P b :: POINTED) = 'P (a || b)
type ('P a :: POINTED) && ('P b :: POINTED) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.PointedHask

type ('P a :: POINTED) && ('P b :: POINTED) = 'P (These a b)

data Pointed (a :: POINTED) (b :: POINTED) where Source Comments #

Constructors

P :: forall a1 b1. (Maybe a1 -> Maybe b1) -> Pointed ('P a1) ('P b1) 

Instances

Instances details
Promonad Pointed Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.PointedHask

Methods

id :: forall (a :: POINTED). Ob a => Pointed a a Source Comments #

(.) :: forall (b :: POINTED) (c :: POINTED) (a :: POINTED). Pointed b c -> Pointed a b -> Pointed a c Source Comments #

MonoidalProfunctor Pointed Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.PointedHask

Methods

par0 :: Pointed (Unit :: POINTED) (Unit :: POINTED) Source Comments #

par :: forall (x1 :: POINTED) (x2 :: POINTED) (y1 :: POINTED) (y2 :: POINTED). Pointed x1 x2 -> Pointed y1 y2 -> Pointed (x1 ** y1) (x2 ** y2) Source Comments #

Profunctor Pointed Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.PointedHask

Methods

dimap :: forall (c :: POINTED) (a :: POINTED) (b :: POINTED) (d :: POINTED). (c ~> a) -> (b ~> d) -> Pointed a b -> Pointed c d Source Comments #

(\\) :: forall (a :: POINTED) (b :: POINTED) r. ((Ob a, Ob b) => r) -> Pointed a b -> r Source Comments #

data These a b Source Comments #

Constructors

This a 
That b 
These a b