Module

Data.Profunctor.Monoidal

Package
purescript-profunctor-extra
Repository
mcneissue/purescript-profunctor-extra

#dup Source

dup :: forall a. a -> a /\ a

#merge Source

merge :: forall a. a \/ a -> a

#Semigroupal Source

class (Associative l c, Associative r c, Associative o c, Profunctor p) <= Semigroupal c l r o p  where

Members

  • pzip :: forall g f e d. c (o (p d e) (p f g)) (p (l d f) (r e g))

Instances

#mux Source

mux :: forall d c b a p. Semigroupal Function Tuple Tuple Tuple p => p a b -> p c d -> p (a /\ c) (b /\ d)

#(&&) Source

Operator alias for Data.Profunctor.Monoidal.mux (right-associative / precedence 5)

#zip Source

zip :: forall b a x p. Semigroupal Function Tuple Tuple Tuple p => p x a -> p x b -> p x (a /\ b)

#demux Source

demux :: forall d c b a p. Semigroupal Function Either Either Tuple p => p a b -> p c d -> p (a \/ c) (b \/ d)

#(||) Source

Operator alias for Data.Profunctor.Monoidal.demux (right-associative / precedence 4)

#fanin Source

fanin :: forall b a x p. Semigroupal Function Either Either Tuple p => p a x -> p b x -> p (a \/ b) x

#switch Source

switch :: forall d c b a p. Semigroupal Function Tuple Either Tuple p => p a b -> p c d -> p (a /\ c) (b \/ d)

#(&|) Source

Operator alias for Data.Profunctor.Monoidal.switch (right-associative / precedence 5)

#union Source

union :: forall b a x p. Semigroupal Function Tuple Either Tuple p => p x a -> p x b -> p x (a \/ b)

#divide Source

divide :: forall b a x p. Semigroupal Function Tuple Either Tuple p => p a x -> p b x -> p (a /\ b) x

#splice Source

splice :: forall d c b a p. Semigroupal Function Either Tuple Tuple p => p a b -> p c d -> p (a \/ c) (b /\ d)

#(|&) Source

Operator alias for Data.Profunctor.Monoidal.splice (right-associative / precedence 5)

#comux Source

comux :: forall d c b a p. Semigroupal Op Tuple Tuple Tuple p => p (a /\ c) (b /\ d) -> (p a b) /\ (p c d)

#undivide Source

undivide :: forall b a x p. Semigroupal Op Tuple Tuple Tuple p => p (a /\ b) x -> (p a x) /\ (p b x)

#codemux Source

codemux :: forall d c b a p. Semigroupal Op Either Either Tuple p => p (a \/ c) (b \/ d) -> (p a b) /\ (p c d)

#partition Source

partition :: forall b a x p. Semigroupal Op Either Either Tuple p => p x (a \/ b) -> (p x a) /\ (p x b)

#coswitch Source

coswitch :: forall d c b a p. Semigroupal Op Either Tuple Tuple p => p (a \/ c) (b /\ d) -> (p a b) /\ (p c d)

#unfanin Source

unfanin :: forall b a x p. Semigroupal Op Either Tuple Tuple p => p (a \/ b) x -> (p a x) /\ (p b x)

#unzip Source

unzip :: forall b a x p. Semigroupal Op Either Tuple Tuple p => p x (a /\ b) -> (p x a) /\ (p x b)

#cosplice Source

cosplice :: forall d c b a p. Semigroupal Op Tuple Either Tuple p => p (a /\ c) (b \/ d) -> (p a b) /\ (p c d)

#terminal Source

terminal :: forall a p. Unital Function Unit Unit Unit p => p a Unit

#ppure Source

ppure :: forall a p. Unital Function Unit Unit Unit p => Strong p => p a a

#initial Source

initial :: forall a p. Unital Function Void Void Unit p => p Void a

#poly Source

poly :: forall b a p. Unital Function Unit Void Unit p => p a b

#mono Source

mono :: forall p. Unital Function Void Unit Unit p => p Void Unit