proarrow
Safe HaskellNone
LanguageGHC2024

Proarrow.Category.Instance.PointedHask

Synopsis

Documentation

data POINTED Source Github #

Constructors

P Type 

Instances

Instances details
Monoidal POINTED Source Github #

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 Github #

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

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

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

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

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

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

SymMonoidal POINTED Source Github # 
Instance details

Defined in Proarrow.Category.Instance.PointedHask

Methods

swap :: forall (a :: POINTED) (b :: POINTED). (Ob a, Ob b) => (a ** b) ~> (b ** a) Source Github #

CopyDiscard POINTED Source Github # 
Instance details

Defined in Proarrow.Category.Instance.PointedHask

Methods

copy :: forall (a :: POINTED). Ob a => a ~> (a ** a) Source Github #

discard :: forall (a :: POINTED). Ob a => a ~> (Unit :: POINTED) Source Github #

CategoryOf POINTED Source Github #

The category of types with an added point and point-preserving morphisms.

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 Github # 
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 Github #

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

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

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

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

HasBinaryProducts POINTED Source Github # 
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 Github #

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

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

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

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

HasInitialObject POINTED Source Github # 
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 Github #

HasTerminalObject POINTED Source Github # 
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 Github #

Promonad Pointed Source Github # 
Instance details

Defined in Proarrow.Category.Instance.PointedHask

Methods

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

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

Copowered Type POINTED Source Github # 
Instance details

Defined in Proarrow.Category.Instance.PointedHask

Associated Types

type (n :: Type) *. ('P a :: POINTED) 
Instance details

Defined in Proarrow.Category.Instance.PointedHask

type (n :: Type) *. ('P a :: POINTED) = 'P (n, a)

Methods

withObCopower :: forall (a :: POINTED) n r. (Ob a, Ob n) => (Ob (n *. a) => r) -> r Source Github #

copower :: forall (a :: POINTED) (b :: POINTED) n. (Ob a, Ob b) => (n ~> HomObj Type a b) -> (n *. a) ~> b Source Github #

uncopower :: forall (a :: POINTED) n (b :: POINTED). (Ob a, Ob n) => ((n *. a) ~> b) -> n ~> HomObj Type a b Source Github #

Powered Type POINTED Source Github # 
Instance details

Defined in Proarrow.Category.Instance.PointedHask

Associated Types

type ('P a :: POINTED) ^ (n :: Type) 
Instance details

Defined in Proarrow.Category.Instance.PointedHask

type ('P a :: POINTED) ^ (n :: Type) = 'P (n -> Maybe a)

Methods

withObPower :: forall (a :: POINTED) n r. (Ob a, Ob n) => (Ob (a ^ n) => r) -> r Source Github #

power :: forall (a :: POINTED) (b :: POINTED) n. (Ob a, Ob b) => (n ~> HomObj Type a b) -> a ~> (b ^ n) Source Github #

unpower :: forall (b :: POINTED) n (a :: POINTED). (Ob b, Ob n) => (a ~> (b ^ n)) -> n ~> HomObj Type a b Source Github #

MonoidalProfunctor Pointed Source Github # 
Instance details

Defined in Proarrow.Category.Instance.PointedHask

Methods

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

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

Profunctor Pointed Source Github # 
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 Github #

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

Functor (FromPointed []) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.PointedHask

Methods

map :: forall (a :: POINTED) (b :: POINTED). (a ~> b) -> FromPointed [] a ~> FromPointed [] b Source Github #

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

Defined in Proarrow.Category.Instance.PointedHask

Methods

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

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

Monoid ('P Void) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.PointedHask

Monoid ('P ()) Source Github #

Conjunction with False = Nothing, True = Just ()

Instance details

Defined in Proarrow.Category.Instance.PointedHask

Methods

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

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

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

Defined in Proarrow.Category.Instance.PointedHask

Methods

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

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

type Unit Source Github # 
Instance details

Defined in Proarrow.Category.Instance.PointedHask

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

Defined in Proarrow.Category.Instance.PointedHask

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

Defined in Proarrow.Category.Instance.PointedHask

type TerminalObject Source Github # 
Instance details

Defined in Proarrow.Category.Instance.PointedHask

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

Defined in Proarrow.Category.Instance.PointedHask

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

Defined in Proarrow.Category.Instance.PointedHask

type UN 'P ('P a :: POINTED) = a
type (n :: Type) *. ('P a :: POINTED) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.PointedHask

type (n :: Type) *. ('P a :: POINTED) = 'P (n, a)
type ('P a :: POINTED) ^ (n :: Type) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.PointedHask

type ('P a :: POINTED) ^ (n :: Type) = 'P (n -> Maybe a)
type ('P a :: POINTED) ** ('P b :: POINTED) Source Github # 
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 Github # 
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 Github # 
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 Github #

Constructors

Pt 

Fields

Instances

Instances details
Promonad Pointed Source Github # 
Instance details

Defined in Proarrow.Category.Instance.PointedHask

Methods

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

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

MonoidalProfunctor Pointed Source Github # 
Instance details

Defined in Proarrow.Category.Instance.PointedHask

Methods

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

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

Profunctor Pointed Source Github # 
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 Github #

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

toHask :: ('P a ~> 'P b) -> Maybe a -> Maybe b Source Github #

data These a b Source Github #

Constructors

This a 
That b 
These a b 

Instances

Instances details
Generic (These a b) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.PointedHask

Methods

from :: These a b -> Rep (These a b) x Github #

to :: Rep (These a b) x -> These a b Github #

(Show a, Show b) => Show (These a b) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.PointedHask

Methods

showsPrec :: Int -> These a b -> ShowS Github #

show :: These a b -> String Github #

showList :: [These a b] -> ShowS Github #

(Eq a, Eq b) => Eq (These a b) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.PointedHask

Methods

(==) :: These a b -> These a b -> Bool Github #

(/=) :: These a b -> These a b -> Bool Github #

type Rep (These a b) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.PointedHask

memptyDefault :: Monoid a => (Unit :: POINTED) ~> 'P a Source Github #

Lift Hask monoids.

mappendDefault :: Monoid a => ('P a ** 'P a) ~> 'P a Source Github #

underlyingPt :: forall k (a :: k) (b :: k). HasZeroObject k => (a ~> b) -> (Unit :: POINTED) ~> 'P (a ~> b) Source Github #

Categories with a zero object can be seen as categories enriched in Pointed.

enrichedPt :: forall k (a :: k) (b :: k). (Ob a, Ob b, HasZeroObject k) => ((Unit :: POINTED) ~> 'P (a ~> b)) -> a ~> b Source Github #

compPt :: forall k (a :: k) (b :: k) (c :: k). (Ob a, Ob b, Ob c, HasZeroObject k) => ('P (b ~> c) ** 'P (a ~> b)) ~> 'P (a ~> c) Source Github #

data FromPointed (f :: Type -> Type) (a :: POINTED) where Source Github #

Constructors

FromPointed 

Fields

Instances

Instances details
Functor (FromPointed []) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.PointedHask

Methods

map :: forall (a :: POINTED) (b :: POINTED). (a ~> b) -> FromPointed [] a ~> FromPointed [] b Source Github #

mapMaybe :: Filterable f => (a -> Maybe b) -> f a -> f b Source Github #