proarrow
Safe HaskellNone
LanguageGHC2024

Proarrow.Monoid

Documentation

class (Monoidal k, Ob m) => Monoid (m :: k) where Source Github #

Methods

mempty :: (Unit :: k) ~> m Source Github #

mappend :: (m ** m) ~> m Source Github #

Instances

Instances details
Monoid 'Z Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Simplex

Methods

mempty :: (Unit :: Nat) ~> 'Z Source Github #

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

KnownNat n => Monoid (n :: Nat) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.ZX

Methods

mempty :: (Unit :: Nat) ~> n Source Github #

mappend :: (n ** n) ~> n Source Github #

Monoid 'TRU Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Bool

Monoid m => Monoid (m :: Type) Source Github # 
Instance details

Defined in Proarrow.Monoid

Methods

mempty :: (Unit :: Type) ~> m Source Github #

mappend :: (m ** m) ~> m Source Github #

Monoid ('S 'Z) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Simplex

Methods

mempty :: (Unit :: Nat) ~> 'S 'Z Source Github #

mappend :: ('S 'Z ** 'S 'Z) ~> 'S 'Z Source Github #

Monoidal k => Monoid ('K [k] :: KIND) Source Github #

A strictified monoidal category as a monoid in Cat.

Instance details

Defined in Proarrow.Category.Instance.Cat

Methods

mempty :: (Unit :: KIND) ~> 'K [k] Source Github #

mappend :: ('K [k] ** 'K [k]) ~> 'K [k] Source Github #

Monoid ('CNSTRNT ()) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Constraint

SNatI a => Monoid ('FR a :: FINREL) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.FinRel

Methods

mempty :: (Unit :: FINREL) ~> 'FR a Source Github #

mappend :: ('FR a ** 'FR a) ~> 'FR a Source Github #

Monoid ('FS Nat1) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.FinSet

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 #

Ob as => Monoid ('D as :: DOT) Source Github # 
Instance details

Defined in Proarrow.Tools.Diagrams.Dot

Methods

mempty :: (Unit :: DOT) ~> 'D as Source Github #

mappend :: ('D as ** 'D as) ~> 'D as Source Github #

(Monoidal k, Monoid m) => Monoid (Ap f m :: Type) Source Github # 
Instance details

Defined in Proarrow.Profunctor.Free

Methods

mempty :: (Unit :: Type) ~> Ap f m Source Github #

mappend :: (Ap f m ** Ap f m) ~> Ap f m Source Github #

(Comonoid c, Monoid m, MonoidalProfunctor p) => Monoid (Wrapped p c m :: Type) Source Github # 
Instance details

Defined in Proarrow.Profunctor.Wrapped

Methods

mempty :: (Unit :: Type) ~> Wrapped p c m Source Github #

mappend :: (Wrapped p c m ** Wrapped p c m) ~> Wrapped p c m Source Github #

(HasPushouts k, Ob a) => Monoid ('CS a :: COSPAN k) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Cospan

Methods

mempty :: (Unit :: COSPAN k) ~> 'CS a Source Github #

mappend :: ('CS a ** 'CS a) ~> 'CS a Source Github #

(Num a, IsNat n) => Monoid ('M n :: MatK a) Source Github #

Monoids are associative, unital algebras.

Instance details

Defined in Proarrow.Category.Instance.Mat

Methods

mempty :: (Unit :: MatK a) ~> ('M n :: MatK a) Source Github #

mappend :: (('M n :: MatK a) ** ('M n :: MatK a)) ~> ('M n :: MatK a) Source Github #

(HasPullbacks k, Ob a) => Monoid ('SP a :: SPAN k) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Span

Methods

mempty :: (Unit :: SPAN k) ~> 'SP a Source Github #

mappend :: ('SP a ** 'SP a) ~> 'SP a Source Github #

Monoid a => Monoid ('R a :: REV k) Source Github # 
Instance details

Defined in Proarrow.Category.Monoidal.Rev

Methods

mempty :: (Unit :: REV k) ~> 'R a Source Github #

mappend :: ('R a ** 'R a) ~> 'R a Source Github #

Comonoid c => Monoid ('OP c :: OPPOSITE k) Source Github # 
Instance details

Defined in Proarrow.Monoid

Methods

mempty :: (Unit :: OPPOSITE k) ~> 'OP c Source Github #

mappend :: ('OP c ** 'OP c) ~> 'OP c Source Github #

(HasCoproducts k, Ob a) => Monoid ('COPR a :: COPROD k) Source Github # 
Instance details

Defined in Proarrow.Monoid

Methods

mempty :: (Unit :: COPROD k) ~> 'COPR a Source Github #

mappend :: ('COPR a ** 'COPR a) ~> 'COPR a Source Github #

(Profunctor p, MonoidalProfunctor p) => Monoid (p :: j +-> k) Source Github # 
Instance details

Defined in Proarrow.Profunctor.Day

Methods

mempty :: (Unit :: j +-> k) ~> p Source Github #

mappend :: (p ** p) ~> p Source Github #

(Bicategory kk, Ob (I :: kk a a), Monad m, Ob m, Ob0 kk a) => Monoid ('E m :: ENDO kk a) Source Github #

Monads are monoids in the category of endo-1-cells.

Instance details

Defined in Proarrow.Category.Monoidal.Endo

Methods

mempty :: (Unit :: ENDO kk a) ~> 'E m Source Github #

mappend :: ('E m ** 'E m) ~> 'E m Source Github #

combine :: forall {k} (m :: k). Monoid m => ((Unit :: k) ~> m) -> ((Unit :: k) ~> m) -> (Unit :: k) ~> m Source Github #

class Monoid m => CommutativeMonoid (m :: k) Source Github #

Instances

Instances details
(HasZeroObject k, HasBiproducts k, Ob a, Ob b) => CommutativeMonoid (Id a b :: Type) Source Github # 
Instance details

Defined in Proarrow.Monoid

newtype GenElt (x :: k) (m :: k) Source Github #

Constructors

GenElt (x ~> m) 

Instances

Instances details
(Monoid m, Cartesian k, Ob x) => Monoid (GenElt x m) Source Github # 
Instance details

Defined in Proarrow.Monoid

Methods

mempty :: GenElt x m Github #

mappend :: GenElt x m -> GenElt x m -> GenElt x m Github #

mconcat :: [GenElt x m] -> GenElt x m Github #

(Monoid m, Cartesian k) => Semigroup (GenElt x m) Source Github # 
Instance details

Defined in Proarrow.Monoid

Methods

(<>) :: GenElt x m -> GenElt x m -> GenElt x m Github #

sconcat :: NonEmpty (GenElt x m) -> GenElt x m Github #

stimes :: Integral b => b -> GenElt x m -> GenElt x m Github #

memptyAct :: forall {m} {c} (a :: m) (n :: c). (MonoidalAction m c, Monoid a, Ob n) => n ~> Act a n Source Github #

mappendAct :: forall {m} {c} (a :: m) (n :: c). (MonoidalAction m c, Monoid a, Ob n) => Act a (Act a n) ~> Act a n Source Github #

class (MonoidalAction m c, Monoid a, Ob n) => ModuleObject (a :: m) (n :: c) where Source Github #

Methods

action :: Act a n ~> n Source Github #

class (Monoidal k, Ob c) => Comonoid (c :: k) where Source Github #

Methods

counit :: c ~> (Unit :: k) Source Github #

comult :: c ~> (c ** c) Source Github #

Instances

Instances details
KnownNat n => Comonoid (n :: Nat) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.ZX

Methods

counit :: n ~> (Unit :: Nat) Source Github #

comult :: n ~> (n ** n) Source Github #

Ob a => Comonoid (a :: BOOL) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Bool

Methods

counit :: a ~> (Unit :: BOOL) Source Github #

comult :: a ~> (a ** a) Source Github #

Ob a => Comonoid (a :: KIND) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Cat

Methods

counit :: a ~> (Unit :: KIND) Source Github #

comult :: a ~> (a ** a) Source Github #

Comonoid '() Source Github # 
Instance details

Defined in Proarrow.Monoid

Methods

counit :: '() ~> (Unit :: ()) Source Github #

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

Comonoid (a :: Type) Source Github # 
Instance details

Defined in Proarrow.Monoid

Methods

counit :: a ~> (Unit :: Type) Source Github #

comult :: a ~> (a ** a) Source Github #

Comonoid ('CNSTRNT a :: CONSTRAINT) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Constraint

SNatI a => Comonoid ('FR a :: FINREL) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.FinRel

Methods

counit :: 'FR a ~> (Unit :: FINREL) Source Github #

comult :: 'FR a ~> ('FR a ** 'FR a) Source Github #

SNatI a => Comonoid ('FS a :: FINSET) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.FinSet

Methods

counit :: 'FS a ~> (Unit :: FINSET) Source Github #

comult :: 'FS a ~> ('FS a ** 'FS a) Source Github #

Comonoid ('L (Ur a) :: LINEAR) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Linear

Methods

counit :: 'L (Ur a) ~> (Unit :: LINEAR) Source Github #

comult :: 'L (Ur a) ~> ('L (Ur a) ** 'L (Ur a)) 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 #

Ob as => Comonoid ('D as :: DOT) Source Github # 
Instance details

Defined in Proarrow.Tools.Diagrams.Dot

Methods

counit :: 'D as ~> (Unit :: DOT) Source Github #

comult :: 'D as ~> ('D as ** 'D as) Source Github #

(HasPushouts k, Ob a) => Comonoid ('CS a :: COSPAN k) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Cospan

Methods

counit :: 'CS a ~> (Unit :: COSPAN k) Source Github #

comult :: 'CS a ~> ('CS a ** 'CS a) Source Github #

(Num a, IsNat n) => Comonoid ('M n :: MatK a) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Mat

Methods

counit :: ('M n :: MatK a) ~> (Unit :: MatK a) Source Github #

comult :: ('M n :: MatK a) ~> (('M n :: MatK a) ** ('M n :: MatK a)) Source Github #

(HasPullbacks k, Ob a) => Comonoid ('SP a :: SPAN k) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Span

Methods

counit :: 'SP a ~> (Unit :: SPAN k) Source Github #

comult :: 'SP a ~> ('SP a ** 'SP a) Source Github #

Comonoid a => Comonoid ('R a :: REV k) Source Github # 
Instance details

Defined in Proarrow.Category.Monoidal.Rev

Methods

counit :: 'R a ~> (Unit :: REV k) Source Github #

comult :: 'R a ~> ('R a ** 'R a) Source Github #

Monoid c => Comonoid ('OP c :: OPPOSITE k) Source Github # 
Instance details

Defined in Proarrow.Monoid

Methods

counit :: 'OP c ~> (Unit :: OPPOSITE k) Source Github #

comult :: 'OP c ~> ('OP c ** 'OP c) Source Github #

(HasProducts k, Ob a) => Comonoid ('PR a :: PROD k) Source Github # 
Instance details

Defined in Proarrow.Monoid

Methods

counit :: 'PR a ~> (Unit :: PROD k) Source Github #

comult :: 'PR a ~> ('PR a ** 'PR a) Source Github #

(Monoidal j, CopyDiscard k, Supplies j (Monoid :: j -> Constraint), Profunctor p) => Comonoid (p :: j +-> k) Source Github # 
Instance details

Defined in Proarrow.Profunctor.Day

Methods

counit :: p ~> (Unit :: j +-> k) Source Github #

comult :: p ~> (p ** p) Source Github #

CategoryOf k => Comonoid (CatAsComonoid k :: Type -> Type) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Nat

(Bicategory kk, Ob (I :: kk a a), Comonad c, Ob c, Ob0 kk a) => Comonoid ('E c :: ENDO kk a) Source Github #

Comonads are comonoids in the category of endo-1-cells.

Instance details

Defined in Proarrow.Category.Monoidal.Endo

Methods

counit :: 'E c ~> (Unit :: ENDO kk a) Source Github #

comult :: 'E c ~> ('E c ** 'E c) Source Github #

counitAct :: forall {m} {c} (a :: m) (n :: c). (MonoidalAction m c, Comonoid a, Ob n) => Act a n ~> n Source Github #

comultAct :: forall {m} {c} (a :: m) (n :: c). (MonoidalAction m c, Comonoid a, Ob n) => Act a n ~> Act a (Act a n) Source Github #

data MONOIDK (m :: k) Source Github #

Constructors

M 

Instances

Instances details
CommutativeMonoid m => Monoidal (MONOIDK m) Source Github # 
Instance details

Defined in Proarrow.Monoid

Associated Types

type Unit 
Instance details

Defined in Proarrow.Monoid

type Unit = 'M :: MONOIDK m

Methods

withOb2 :: forall (a :: MONOIDK m) (b :: MONOIDK m) r. (Ob a, Ob b) => (Ob (a ** b) => r) -> r Source Github #

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

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

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

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

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

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

CommutativeMonoid m => SymMonoidal (MONOIDK m) Source Github # 
Instance details

Defined in Proarrow.Monoid

Methods

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

Monoid m => CategoryOf (MONOIDK m) Source Github #

A monoid as a one object category.

Instance details

Defined in Proarrow.Monoid

Associated Types

type (~>) 
Instance details

Defined in Proarrow.Monoid

type (~>) = Mon :: MONOIDK m -> MONOIDK m -> Type
Monoid m => HasBinaryCoproducts (MONOIDK m) Source Github # 
Instance details

Defined in Proarrow.Monoid

Methods

withObCoprod :: forall (a :: MONOIDK m) (b :: MONOIDK m) r. (Ob a, Ob b) => (Ob (a || b) => r) -> r Source Github #

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

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

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

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

Monoid m => HasBinaryProducts (MONOIDK m) Source Github # 
Instance details

Defined in Proarrow.Monoid

Methods

withObProd :: forall (a :: MONOIDK m) (b :: MONOIDK m) r. (Ob a, Ob b) => (Ob (a && b) => r) -> r Source Github #

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

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

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

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

CommutativeMonoid m => CompactClosed (MONOIDK m) Source Github # 
Instance details

Defined in Proarrow.Monoid

Methods

distribDual :: forall (a :: MONOIDK m) (b :: MONOIDK m). (Ob a, Ob b) => Dual (a ** b) ~> (Dual a ** Dual b) Source Github #

dualUnit :: Dual (Unit :: MONOIDK m) ~> (Unit :: MONOIDK m) Source Github #

CommutativeMonoid m => StarAutonomous (MONOIDK m) Source Github # 
Instance details

Defined in Proarrow.Monoid

Methods

dual :: forall (a :: MONOIDK m) (b :: MONOIDK m). (a ~> b) -> Dual b ~> Dual a Source Github #

dualInv :: forall (a :: MONOIDK m) (b :: MONOIDK m). (Ob a, Ob b) => (Dual a ~> Dual b) -> b ~> a Source Github #

linDist :: forall (a :: MONOIDK m) (b :: MONOIDK m) (c :: MONOIDK m). (Ob a, Ob b, Ob c) => ((a ** b) ~> Dual c) -> a ~> Dual (b ** c) Source Github #

linDistInv :: forall (a :: MONOIDK m) (b :: MONOIDK m) (c :: MONOIDK m). (Ob a, Ob b, Ob c) => (a ~> Dual (b ** c)) -> (a ** b) ~> Dual c Source Github #

CommutativeMonoid m => Closed (MONOIDK m) Source Github # 
Instance details

Defined in Proarrow.Monoid

Methods

withObExp :: forall (a :: MONOIDK m) (b :: MONOIDK m) r. (Ob a, Ob b) => (Ob (a ~~> b) => r) -> r Source Github #

curry :: forall (a :: MONOIDK m) (b :: MONOIDK m) (c :: MONOIDK m). (Ob a, Ob b) => ((a ** b) ~> c) -> a ~> (b ~~> c) Source Github #

apply :: forall (a :: MONOIDK m) (b :: MONOIDK m). (Ob a, Ob b) => ((a ~~> b) ** a) ~> b Source Github #

(^^^) :: forall (a :: MONOIDK m) (b :: MONOIDK m) (x :: MONOIDK m) (y :: MONOIDK m). (b ~> y) -> (x ~> a) -> (a ~~> b) ~> (x ~~> y) Source Github #

Monoid m => HasInitialObject (MONOIDK m) Source Github # 
Instance details

Defined in Proarrow.Monoid

Associated Types

type InitialObject 
Instance details

Defined in Proarrow.Monoid

type InitialObject = 'M :: MONOIDK m

Methods

initiate :: forall (a :: MONOIDK m). Ob a => (InitialObject :: MONOIDK m) ~> a Source Github #

Monoid m => HasTerminalObject (MONOIDK m) Source Github # 
Instance details

Defined in Proarrow.Monoid

Associated Types

type TerminalObject 
Instance details

Defined in Proarrow.Monoid

type TerminalObject = 'M :: MONOIDK m

Methods

terminate :: forall (a :: MONOIDK m). Ob a => a ~> (TerminalObject :: MONOIDK m) Source Github #

Monoid m => EnrichedProfunctor (Clone k) (Mon :: MONOIDK m -> MONOIDK m -> Type) Source Github #

A monoid is a one object enriched category.

Instance details

Defined in Proarrow.Category.Enriched

Methods

withProObj :: forall (a :: MONOIDK m) (b :: MONOIDK m) r. (Ob a, Ob b) => (Ob (ProObj (Clone k) (Mon :: MONOIDK m -> MONOIDK m -> Type) a b) => r) -> r Source Github #

underlying :: forall (a :: MONOIDK m) (b :: MONOIDK m). Mon a b -> (Unit :: Clone k) ~> ProObj (Clone k) (Mon :: MONOIDK m -> MONOIDK m -> Type) a b Source Github #

enriched :: forall (a :: MONOIDK m) (b :: MONOIDK m). (Ob a, Ob b) => ((Unit :: Clone k) ~> ProObj (Clone k) (Mon :: MONOIDK m -> MONOIDK m -> Type) a b) -> Mon a b Source Github #

rmap :: forall (a :: MONOIDK m) (b :: MONOIDK m) (c :: MONOIDK m). (Ob a, Ob b, Ob c) => (HomObj (Clone k) b c ** ProObj (Clone k) (Mon :: MONOIDK m -> MONOIDK m -> Type) a b) ~> ProObj (Clone k) (Mon :: MONOIDK m -> MONOIDK m -> Type) a c Source Github #

lmap :: forall (a :: MONOIDK m) (b :: MONOIDK m) (c :: MONOIDK m). (Ob a, Ob b, Ob c) => (HomObj (Clone k) c a ** ProObj (Clone k) (Mon :: MONOIDK m -> MONOIDK m -> Type) a b) ~> ProObj (Clone k) (Mon :: MONOIDK m -> MONOIDK m -> Type) c b Source Github #

CommutativeMonoid m => MonoidalProfunctor (Mon :: MONOIDK m -> MONOIDK m -> Type) Source Github # 
Instance details

Defined in Proarrow.Monoid

Methods

par0 :: Mon (Unit :: MONOIDK m) (Unit :: MONOIDK m) Source Github #

par :: forall (x1 :: MONOIDK m) (x2 :: MONOIDK m) (y1 :: MONOIDK m) (y2 :: MONOIDK m). Mon x1 x2 -> Mon y1 y2 -> Mon (x1 ** y1) (x2 ** y2) Source Github #

Monoid m => Profunctor (Mon :: MONOIDK m -> MONOIDK m -> Type) Source Github # 
Instance details

Defined in Proarrow.Monoid

Methods

dimap :: forall (c :: MONOIDK m) (a :: MONOIDK m) (b :: MONOIDK m) (d :: MONOIDK m). (c ~> a) -> (b ~> d) -> Mon a b -> Mon c d Source Github #

(\\) :: forall (a :: MONOIDK m) (b :: MONOIDK m) r. ((Ob a, Ob b) => r) -> Mon a b -> r Source Github #

Monoid m => Promonad (Mon :: MONOIDK m -> MONOIDK m -> Type) Source Github # 
Instance details

Defined in Proarrow.Monoid

Methods

id :: forall (a :: MONOIDK m). Ob a => Mon a a Source Github #

(.) :: forall (b :: MONOIDK m) (c :: MONOIDK m) (a :: MONOIDK m). Mon b c -> Mon a b -> Mon a c Source Github #

type Unit Source Github # 
Instance details

Defined in Proarrow.Monoid

type Unit = 'M :: MONOIDK m
type (~>) Source Github # 
Instance details

Defined in Proarrow.Monoid

type (~>) = Mon :: MONOIDK m -> MONOIDK m -> Type
type InitialObject Source Github # 
Instance details

Defined in Proarrow.Monoid

type InitialObject = 'M :: MONOIDK m
type TerminalObject Source Github # 
Instance details

Defined in Proarrow.Monoid

type TerminalObject = 'M :: MONOIDK m
type Ob (a :: MONOIDK m) Source Github # 
Instance details

Defined in Proarrow.Monoid

type Ob (a :: MONOIDK m) = a ~ ('M :: MONOIDK m)
type (a :: MONOIDK m) || (b :: MONOIDK m) Source Github # 
Instance details

Defined in Proarrow.Monoid

type (a :: MONOIDK m) || (b :: MONOIDK m) = 'M :: MONOIDK m
type (a :: MONOIDK m) && (b :: MONOIDK m) Source Github # 
Instance details

Defined in Proarrow.Monoid

type (a :: MONOIDK m) && (b :: MONOIDK m) = 'M :: MONOIDK m
type (a :: MONOIDK m) ~~> (b :: MONOIDK m) Source Github # 
Instance details

Defined in Proarrow.Monoid

type (a :: MONOIDK m) ~~> (b :: MONOIDK m) = 'M :: MONOIDK m
type Dual ('M :: MONOIDK m) Source Github # 
Instance details

Defined in Proarrow.Monoid

type Dual ('M :: MONOIDK m) = 'M :: MONOIDK m
type ProObj (Clone k) (Mon :: MONOIDK m -> MONOIDK m -> Type) ('M :: MONOIDK m) ('M :: MONOIDK m) Source Github # 
Instance details

Defined in Proarrow.Category.Enriched

type ProObj (Clone k) (Mon :: MONOIDK m -> MONOIDK m -> Type) ('M :: MONOIDK m) ('M :: MONOIDK m) = 'SUB m :: SUBCAT (Any :: k -> Constraint)
type ('M :: MONOIDK m) ** ('M :: MONOIDK m) Source Github # 
Instance details

Defined in Proarrow.Monoid

type ('M :: MONOIDK m) ** ('M :: MONOIDK m) = 'M :: MONOIDK m

data Mon (a :: MONOIDK m) (b :: MONOIDK m1) where Source Github #

Constructors

Mon :: forall {k} {k1} {m1 :: k1} (m :: k). ((Unit :: k) ~> m) -> Mon ('M :: MONOIDK m) ('M :: MONOIDK m1) 

Instances

Instances details
Monoid m => EnrichedProfunctor (Clone k) (Mon :: MONOIDK m -> MONOIDK m -> Type) Source Github #

A monoid is a one object enriched category.

Instance details

Defined in Proarrow.Category.Enriched

Methods

withProObj :: forall (a :: MONOIDK m) (b :: MONOIDK m) r. (Ob a, Ob b) => (Ob (ProObj (Clone k) (Mon :: MONOIDK m -> MONOIDK m -> Type) a b) => r) -> r Source Github #

underlying :: forall (a :: MONOIDK m) (b :: MONOIDK m). Mon a b -> (Unit :: Clone k) ~> ProObj (Clone k) (Mon :: MONOIDK m -> MONOIDK m -> Type) a b Source Github #

enriched :: forall (a :: MONOIDK m) (b :: MONOIDK m). (Ob a, Ob b) => ((Unit :: Clone k) ~> ProObj (Clone k) (Mon :: MONOIDK m -> MONOIDK m -> Type) a b) -> Mon a b Source Github #

rmap :: forall (a :: MONOIDK m) (b :: MONOIDK m) (c :: MONOIDK m). (Ob a, Ob b, Ob c) => (HomObj (Clone k) b c ** ProObj (Clone k) (Mon :: MONOIDK m -> MONOIDK m -> Type) a b) ~> ProObj (Clone k) (Mon :: MONOIDK m -> MONOIDK m -> Type) a c Source Github #

lmap :: forall (a :: MONOIDK m) (b :: MONOIDK m) (c :: MONOIDK m). (Ob a, Ob b, Ob c) => (HomObj (Clone k) c a ** ProObj (Clone k) (Mon :: MONOIDK m -> MONOIDK m -> Type) a b) ~> ProObj (Clone k) (Mon :: MONOIDK m -> MONOIDK m -> Type) c b Source Github #

CommutativeMonoid m => MonoidalProfunctor (Mon :: MONOIDK m -> MONOIDK m -> Type) Source Github # 
Instance details

Defined in Proarrow.Monoid

Methods

par0 :: Mon (Unit :: MONOIDK m) (Unit :: MONOIDK m) Source Github #

par :: forall (x1 :: MONOIDK m) (x2 :: MONOIDK m) (y1 :: MONOIDK m) (y2 :: MONOIDK m). Mon x1 x2 -> Mon y1 y2 -> Mon (x1 ** y1) (x2 ** y2) Source Github #

Monoid m => Profunctor (Mon :: MONOIDK m -> MONOIDK m -> Type) Source Github # 
Instance details

Defined in Proarrow.Monoid

Methods

dimap :: forall (c :: MONOIDK m) (a :: MONOIDK m) (b :: MONOIDK m) (d :: MONOIDK m). (c ~> a) -> (b ~> d) -> Mon a b -> Mon c d Source Github #

(\\) :: forall (a :: MONOIDK m) (b :: MONOIDK m) r. ((Ob a, Ob b) => r) -> Mon a b -> r Source Github #

Monoid m => Promonad (Mon :: MONOIDK m -> MONOIDK m -> Type) Source Github # 
Instance details

Defined in Proarrow.Monoid

Methods

id :: forall (a :: MONOIDK m). Ob a => Mon a a Source Github #

(.) :: forall (b :: MONOIDK m) (c :: MONOIDK m) (a :: MONOIDK m). Mon b c -> Mon a b -> Mon a c Source Github #

type ProObj (Clone k) (Mon :: MONOIDK m -> MONOIDK m -> Type) ('M :: MONOIDK m) ('M :: MONOIDK m) Source Github # 
Instance details

Defined in Proarrow.Category.Enriched

type ProObj (Clone k) (Mon :: MONOIDK m -> MONOIDK m -> Type) ('M :: MONOIDK m) ('M :: MONOIDK m) = 'SUB m :: SUBCAT (Any :: k -> Constraint)

Orphan instances

(Monoidal k, Comonoid r) => MonoidalProfunctor (Corep (Constant r) :: k -> k -> Type) Source Github # 
Instance details

Methods

par0 :: Corep (Constant r) (Unit :: k) (Unit :: k) Source Github #

par :: forall (x1 :: k) (x2 :: k) (y1 :: k) (y2 :: k). Corep (Constant r) x1 x2 -> Corep (Constant r) y1 y2 -> Corep (Constant r) (x1 ** y1) (x2 ** y2) Source Github #

(Monoidal k, Monoid r) => MonoidalProfunctor (Rep (Constant r) :: k -> k -> Type) Source Github # 
Instance details

Methods

par0 :: Rep (Constant r) (Unit :: k) (Unit :: k) Source Github #

par :: forall (x1 :: k) (x2 :: k) (y1 :: k) (y2 :: k). Rep (Constant r) x1 x2 -> Rep (Constant r) y1 y2 -> Rep (Constant r) (x1 ** y1) (x2 ** y2) Source Github #

(HasCoproducts k, Ob r) => MonoidalProfunctor (Coprod (Rep (Constant r)) :: COPROD k -> COPROD k -> Type) Source Github # 
Instance details

Methods

par0 :: Coprod (Rep (Constant r)) (Unit :: COPROD k) (Unit :: COPROD k) Source Github #

par :: forall (x1 :: COPROD k) (x2 :: COPROD k) (y1 :: COPROD k) (y2 :: COPROD k). Coprod (Rep (Constant r)) x1 x2 -> Coprod (Rep (Constant r)) y1 y2 -> Coprod (Rep (Constant r)) (x1 ** y1) (x2 ** y2) Source Github #

(HasZeroObject k, HasBiproducts k, Ob a, Ob b) => Monoid (Id a b) Source Github # 
Instance details

Methods

mempty :: Id a b Github #

mappend :: Id a b -> Id a b -> Id a b Github #

mconcat :: [Id a b] -> Id a b Github #

(HasZeroObject k, HasBiproducts k, Ob a, Ob b) => Semigroup (Id a b) Source Github # 
Instance details

Methods

(<>) :: Id a b -> Id a b -> Id a b Github #

sconcat :: NonEmpty (Id a b) -> Id a b Github #

stimes :: Integral b0 => b0 -> Id a b -> Id a b Github #