name: semirings category: Algebra, Data, Data Structures, Math, Maths, Mathematics version: 0.6 x-revision: 2 license: BSD3 cabal-version: >= 1.10 license-file: LICENSE author: chessai maintainer: chessai stability: provisional homepage: http://github.com/chessai/semirings bug-reports: http://github.com/chessai/semirings/issues copyright: Copyright (C) 2018 chessai synopsis: two monoids as one, in holy haskimony description: 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. build-type: Simple extra-source-files: README.md CHANGELOG.md tested-with: GHC == 7.10.3 , GHC == 8.0.2 , GHC == 8.2.2 , GHC == 8.4.4 , GHC == 8.6.5 , GHC == 8.8.4 , GHC == 8.10.2 source-repository head type: git location: git://github.com/chessai/semirings.git flag containers description: You can disable the use of the `containers` package using `-f-containers`. . Disabling this may be useful for accelerating builds in sandboxes for expert users. default: True manual: True flag unordered-containers description: 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. default: True manual: True library default-language: Haskell98 ghc-options: -Wall build-depends: base >= 4.8 && < 5 , base-compat-batteries exposed-modules: Data.Euclidean Data.Field Data.Semiring Data.Star Data.Semiring.Tropical Data.Semiring.Generic if impl(ghc < 8.6.1) build-depends: template-haskell >= 2.4.0.0 if flag(containers) build-depends: containers >= 0.5.4 && < 0.8 if flag(unordered-containers) build-depends: hashable >= 1.1 && < 1.5 , unordered-containers >= 0.2 && < 0.3