summaryrefslogtreecommitdiff
path: root/math/hs-semirings
AgeCommit message (Collapse)AuthorFilesLines
2022-02-26Bump all Haskell packages after enabling "split sections" in mk/haskell.mkpho2-3/+4
2022-02-16math/hs-semirings: import hs-semirings-0.6pho6-0/+103
Haskellers are usually familiar with monoids and semigroups. A monoid has an appending operation <> (or mappend), and an identity element, mempty. A semigroup has an appending <> operation, but does not require a mempty element. A Semiring has two appending operations, plus and times, and two respective identity elements, zero and one. More formally, a Semiring R is a set equipped with two binary relations + and *, such that: - (R,+) is a commutative monoid with identity element 0, - (R,*) is a monoid with identity element 1, - (*) left and right distributes over addition, and multiplication by '0' annihilates R.