proarrow
Safe HaskellNone
LanguageGHC2024

Proarrow.Monoid

Documentation

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

Methods

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

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

Instances

Instances details
Monoid 'TRU Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Bool

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

Defined in Proarrow.Monoid

Methods

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

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

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

Defined in Proarrow.Category.Instance.Constraint

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 #

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

Defined in Proarrow.Category.Instance.Simplex

Methods

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

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

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

Defined in Proarrow.Profunctor.Free

Methods

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

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

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

Defined in Proarrow.Profunctor.Wrapped

Methods

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

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

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

Defined in Proarrow.Category.Monoidal.Rev

Methods

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

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

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

Defined in Proarrow.Monoid

Methods

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

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

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

Defined in Proarrow.Monoid

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

Defined in Proarrow.Profunctor.Day

Methods

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

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

MonoidalProfunctor p => Monoid (Wrapped p :: k2 -> k1 -> Type) Source Comments # 
Instance details

Defined in Proarrow.Profunctor.Wrapped

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

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

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

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

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

Constructors

GenElt (x ~> m) 

Instances

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

Defined in Proarrow.Monoid

Methods

mempty :: GenElt x m Comments #

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

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

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

Defined in Proarrow.Monoid

Methods

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

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

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

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

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

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

Methods

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

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

Methods

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

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

Instances

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

Defined in Proarrow.Category.Instance.Bool

Methods

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

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

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

Defined in Proarrow.Category.Instance.Cat

Methods

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

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

Comonoid '() Source Comments # 
Instance details

Defined in Proarrow.Monoid

Methods

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

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

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

Defined in Proarrow.Monoid

Methods

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

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

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

Defined in Proarrow.Category.Instance.Constraint

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

Defined in Proarrow.Category.Instance.Linear

Methods

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

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

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

Defined in Proarrow.Category.Monoidal.Rev

Methods

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

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

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

Defined in Proarrow.Monoid

Methods

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

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

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

Defined in Proarrow.Monoid

Methods

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

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

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

Defined in Proarrow.Profunctor.Day

Methods

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

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

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

Defined in Proarrow.Category.Instance.Nat

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

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

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

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

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

class Monoidal k => CopyDiscard k where Source Comments #

Minimal complete definition

Nothing

Methods

copy :: forall (a :: k). Ob a => a ~> (a ** a) Source Comments #

default copy :: forall (a :: k). (Supplies k (Comonoid :: k -> Constraint), Ob a) => a ~> (a ** a) Source Comments #

discard :: forall (a :: k). Ob a => a ~> (Unit :: k) Source Comments #

default discard :: forall (a :: k). (Supplies k (Comonoid :: k -> Constraint), Ob a) => a ~> (Unit :: k) Source Comments #

Instances

Instances details
CopyDiscard BOOL Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Bool

Methods

copy :: forall (a :: BOOL). Ob a => a ~> (a ** a) Source Comments #

discard :: forall (a :: BOOL). Ob a => a ~> (Unit :: BOOL) Source Comments #

CopyDiscard KIND Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Cat

Methods

copy :: forall (a :: KIND). Ob a => a ~> (a ** a) Source Comments #

discard :: forall (a :: KIND). Ob a => a ~> (Unit :: KIND) Source Comments #

CopyDiscard CONSTRAINT Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Constraint

Methods

copy :: forall (a :: CONSTRAINT). Ob a => a ~> (a ** a) Source Comments #

discard :: forall (a :: CONSTRAINT). Ob a => a ~> (Unit :: CONSTRAINT) Source Comments #

CopyDiscard POINTED Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.PointedHask

Methods

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

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

CopyDiscard () Source Comments # 
Instance details

Defined in Proarrow.Monoid

Methods

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

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

CopyDiscard Type Source Comments # 
Instance details

Defined in Proarrow.Monoid

Methods

copy :: Ob a => a ~> (a ** a) Source Comments #

discard :: Ob a => a ~> (Unit :: Type) Source Comments #

CopyDiscard k => CopyDiscard (REV k) Source Comments # 
Instance details

Defined in Proarrow.Category.Monoidal.Rev

Methods

copy :: forall (a :: REV k). Ob a => a ~> (a ** a) Source Comments #

discard :: forall (a :: REV k). Ob a => a ~> (Unit :: REV k) Source Comments #

HasProducts k => CopyDiscard (PROD k) Source Comments # 
Instance details

Defined in Proarrow.Monoid

Methods

copy :: forall (a :: PROD k). Ob a => a ~> (a ** a) Source Comments #

discard :: forall (a :: PROD k). Ob a => a ~> (Unit :: PROD k) Source Comments #

(SymMonoidal k, CopyDiscard k) => CopyDiscard [k] Source Comments # 
Instance details

Defined in Proarrow.Category.Monoidal.Strictified

Methods

copy :: forall (a :: [k]). Ob a => a ~> (a ** a) Source Comments #

discard :: forall (a :: [k]). Ob a => a ~> (Unit :: [k]) Source Comments #

(Promonad p, MonoidalProfunctor p, CopyDiscard k) => CopyDiscard (KLEISLI p) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Kleisli

Methods

copy :: forall (a :: KLEISLI p). Ob a => a ~> (a ** a) Source Comments #

discard :: forall (a :: KLEISLI p). Ob a => a ~> (Unit :: KLEISLI p) Source Comments #

(SubMonoidal ob, CopyDiscard k) => CopyDiscard (SUBCAT ob) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Sub

Methods

copy :: forall (a :: SUBCAT ob). Ob a => a ~> (a ** a) Source Comments #

discard :: forall (a :: SUBCAT ob). Ob a => a ~> (Unit :: SUBCAT ob) Source Comments #

(CopyDiscard k, Monoidal j, Supplies j (Monoid :: j -> Constraint)) => CopyDiscard (j +-> k) Source Comments # 
Instance details

Defined in Proarrow.Profunctor.Day

Methods

copy :: forall (a :: j +-> k). Ob a => a ~> (a ** a) Source Comments #

discard :: forall (a :: j +-> k). Ob a => a ~> (Unit :: j +-> k) Source Comments #

(CopyDiscard j, CopyDiscard k) => CopyDiscard (j, k) Source Comments # 
Instance details

Defined in Proarrow.Monoid

Methods

copy :: forall (a :: (j, k)). Ob a => a ~> (a ** a) Source Comments #

discard :: forall (a :: (j, k)). Ob a => a ~> (Unit :: (j, k)) Source Comments #

data MONOIDK (m :: k) Source Comments #

Constructors

M 

Instances

Instances details
CommutativeMonoid m => Monoidal (MONOIDK m) Source Comments # 
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 Comments #

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

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

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

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

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

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

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

Defined in Proarrow.Monoid

Methods

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

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

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

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

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

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

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

Monoid m => HasBinaryProducts (MONOIDK m) Source Comments # 
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 Comments #

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

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

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

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

CommutativeMonoid m => CompactClosed (MONOIDK m) Source Comments # 
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 Comments #

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

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

Defined in Proarrow.Monoid

Methods

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

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

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

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

CommutativeMonoid m => Closed (MONOIDK m) Source Comments # 
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 Comments #

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

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

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

Monoid m => HasInitialObject (MONOIDK m) Source Comments # 
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 Comments #

Monoid m => HasTerminalObject (MONOIDK m) Source Comments # 
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 Comments #

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

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

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

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

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

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

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

Defined in Proarrow.Monoid

Methods

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

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

Monoid m => Profunctor (Mon :: MONOIDK m -> MONOIDK m -> Type) Source Comments # 
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 Comments #

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

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

Defined in Proarrow.Monoid

Methods

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

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

type Unit Source Comments # 
Instance details

Defined in Proarrow.Monoid

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

Defined in Proarrow.Monoid

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

Defined in Proarrow.Monoid

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

Defined in Proarrow.Monoid

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

Defined in Proarrow.Monoid

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

Defined in Proarrow.Monoid

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

Defined in Proarrow.Monoid

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

Defined in Proarrow.Monoid

type (a :: MONOIDK m) ~~> (b :: MONOIDK m) = 'M :: MONOIDK m
type Dual ('M :: MONOIDK m) Source Comments # 
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 Comments # 
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 Comments # 
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 Comments #

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

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

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

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

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

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

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

Defined in Proarrow.Monoid

Methods

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

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

Monoid m => Profunctor (Mon :: MONOIDK m -> MONOIDK m -> Type) Source Comments # 
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 Comments #

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

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

Defined in Proarrow.Monoid

Methods

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

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

type ProObj (Clone k) (Mon :: MONOIDK m -> MONOIDK m -> Type) ('M :: MONOIDK m) ('M :: MONOIDK m) Source Comments # 
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)