packages feed

semiring-simple 1.0.0.0 → 1.0.0.1

raw patch · 2 files changed

+19/−13 lines, 2 filesPVP: major bump suggested

API removals or changes: PVP suggests a major version bump

API changes (from Hackage documentation)

- Data.Semiring: infixl 5 <+>

Files

semiring-simple.cabal view
@@ -1,14 +1,15 @@ name:                semiring-simple-version:             1.0.0.0+version:             1.0.0.1 synopsis:            A module for dealing with semirings. description:   Semirings are like normal rings, except you can't subtract. This library   provides a type class for semirings. license:             BSD3 license-file:        LICENSE-author:              Thomas Wilke, Frank Huch, Sebastian Fischer, Peter Harpending+author:              Thomas Wilke, Frank Huch, Sebastian Fischer maintainer:          Peter Harpending <peter@harpending.org>-copyright:           2014-2016, Peter Harpending.+copyright:           Copyright (c) 2012, Thomas Wilke, Frank Huch, Sebastian Fischer.+                     Copyright (c) 2014-2016, Peter Harpending. category:            Math build-type:          Simple cabal-version:       >=1.10
src/Data/Semiring.hs view
@@ -1,8 +1,8 @@ -- | -- Module       : Data.Semiring -- Description  : Semirings--- Copyright    : 2012, Thomas Wilke, Frank Huch, Sebastian Fischer---                2014-2016, Peter Harpending+-- Copyright    : Copyright (c) 2012, Thomas Wilke, Frank Huch, Sebastian Fischer.+--                Copyright (c) 2014-2016, Peter Harpending. -- License      : BSD3 -- Maintainer   : Peter Harpending <peter@harpending.org> -- Stability    : experimental@@ -54,15 +54,20 @@ --  -- We can easily verify that these satisfy the semiring axioms: -- --- > minimum {∞, a} = minimum {a, ∞} = a, for all a--- > minimum {a, b} = minimum {b, a}, for all a, b--- > minimum {a, minimum{b, c}} = minimum {minimum {a, b}, c}, for all a, b, c+-- First, the requirements for a commutative monoid -- --- > 0 + a = a + 0 = a, for all a--- > a + (b + c) = (a + b) + c, for all a, b, c--- > a + minimum {b, c} = minimum {a, b} + minimum{a, c}, for all a, b, c--- > minimum {a, b} + c = minimum {a, c} + minimum{b, c}, for all a, b, c--- > a + ∞ = ∞ + a = ∞, for all a+-- >             minimum {∞, a} ≡ minimum {a, ∞} ≡ a+-- >             minimum {a, ∞} ≡ a+-- >             minimum {a, b} ≡ minimum {b, a}+-- > minimum {a, minimum{b, c}} ≡ minimum {minimum {a, b}, c}+-- +-- >              0 + a ≡ a+-- >              a + 0 ≡ a+-- >        a + (b + c) ≡ (a + b) + c+-- > a + minimum {b, c} ≡ minimum {a + b, a + c}+-- > minimum {a, b} + c ≡ minimum {a + c, b + c}+-- >              a + ∞ ≡ ∞+-- >              ∞ + a ≡ ∞ module Data.Semiring where  import Data.Monoid