/caterwaul/Duoid/Type
Copy path to clipboardA duoid (also known as a “united monoid”) is actually a pair of monoids with a
shared unit. The additive.product distributes over the
multiplicative.product as well.
Source
{-|
A duoid (also known as a “united monoid”) is actually a pair of monoids with a
shared `unit`. The `additive.product` distributes over the
`multiplicative.product` as well.
-}
let kCat = ../Category/Cat/semigroupal
let vObject = Type
in  λ(object : Kind) →
    λ(cat : ../Category/Monoidal/Kind kCat vObject object) →
    λ(m : object) →
      { additive : ../Semilattice/Bounded/Type object cat m
      , multiplicative : ../Monoid/Type object cat m
      }