| Portability | archlinux |
|---|---|
| Stability | experimental |
| Maintainer | Peter Harpending <pharpend2@gmail.com> |
| Safe Haskell | Safe-Inferred |
Data.Semiring
Description
This library provides a type class for semirings.
Documentation
A semiring is an additive commutative monoid with identity zero:
a .+. b == b .+. a
zero .+. a == a
(a .+. b) .+. c == a .+. (b .+. c)
A semiring is a multiplicative monoid with identity one:
one .*. a == a
a .*. one == a
(a .*. b) .*. c == a .*. (b .*. c)
Multiplication distributes over addition:
a .*. (b .+. c) == (a .*. b) .+. (a .*. c) (a .+. b) .*. c == (a .*. c) .+. (b .*. c)
zero annihilates a semiring with respect to multiplication:
zero .*. a == zero a .*. zero == zero