semirings: two monoids as one, in holy haskimony
This is a package candidate release! Here you can preview how this package release will appear once published to the main package index (which can be accomplished via the 'maintain' link below). Please note that once a package has been published to the main package index it cannot be undone! Please consult the package uploading documentation for more information.
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.
[Skip to Readme]
Properties
Versions | 0.0.0, 0.1.0, 0.1.1, 0.1.2, 0.1.3.0, 0.2.0.0, 0.2.0.1, 0.2.1.0, 0.2.1.1, 0.3.0.0, 0.3.1.0, 0.3.1.1, 0.3.1.2, 0.4, 0.4, 0.4.1, 0.4.2, 0.5, 0.5.1, 0.5.2, 0.5.3, 0.5.4, 0.6, 0.7 |
---|---|
Change log | CHANGELOG.md |
Dependencies | base (>=4.5 && <5), containers (>=0.5.4 && <0.6.1.0), hashable (>=1.1 && <1.3), integer-gmp, nats (>=0.1 && <2), semigroups, tagged, transformers, unordered-containers (>=0.2 && <0.3) [details] |
License | BSD-3-Clause |
Copyright | Copyright (C) 2018 chessai |
Author | chessai |
Maintainer | chessai <chessai1996@gmail.com> |
Category | Algebra, Data, Data Structures, Math, Maths, Mathematics |
Home page | http://github.com/chessai/semirings |
Bug tracker | http://github.com/chessai/semirings/issues |
Source repo | head: git clone git://github.com/chessai/semirings.git |
Uploaded | by chessai at 2019-05-01T17:21:29Z |
Modules
[Index] [Quick Jump]
Flags
Manual Flags
Name | Description | Default |
---|---|---|
hashable | You can disable the use of the Disabling this may be useful for accelerating builds in sandboxes for expert users. Note: `-f-hashable` implies `-f-unordered-containers`, as we are necessarily not able to supply those instances as well. | Enabled |
containers | You can disable the use of the Disabling this may be useful for accelerating builds in sandboxes for expert users. | Enabled |
unordered-containers | You can disable the use of the `unordered-containers` package using `-f-unordered-containers`. Disabling this may be useful for accelerating builds in sandboxes for expert users. | Enabled |
Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info
Downloads
- semirings-0.4.tar.gz [browse] (Cabal source package)
- Package description (as included in the package)
Maintainer's Corner
Package maintainers
For package maintainers and hackage trustees