[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
02/05: gnu: Add ghc-semirings.
From: |
guix-commits |
Subject: |
02/05: gnu: Add ghc-semirings. |
Date: |
Mon, 17 Jan 2022 14:30:05 -0500 (EST) |
lbraun pushed a commit to branch master
in repository guix.
commit 67e3de56ec48269ce8315b77ae9b2d71ad29f597
Author: John Kehayias via Guix-patches via <guix-patches@gnu.org>
AuthorDate: Fri Dec 24 19:29:06 2021 +0000
gnu: Add ghc-semirings.
* gnu/packages/haskell-xyz.scm (ghc-semirings): New variable.
Signed-off-by: Lars-Dominik Braun <lars@6xq.net>
---
gnu/packages/haskell-xyz.scm | 34 ++++++++++++++++++++++++++++++++++
1 file changed, 34 insertions(+)
diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm
index a34dcde389..a42baebde6 100644
--- a/gnu/packages/haskell-xyz.scm
+++ b/gnu/packages/haskell-xyz.scm
@@ -11398,6 +11398,40 @@ semigroup.")
ghc-unordered-containers-bootstrap ghc-hashable-bootstrap))
(properties '((hidden? #t)))))
+(define-public ghc-semirings
+ (package
+ (name "ghc-semirings")
+ (version "0.6")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://hackage.haskell.org/package/semirings/semirings-"
+ version
+ ".tar.gz"))
+ (sha256
+ (base32 "16q535bvjl7395sqkx6zlw48y4fzr7irp44pcp7w9irpn4cncdcr"))))
+ (build-system haskell-build-system)
+ (inputs
+ (list ghc-base-compat-batteries ghc-hashable ghc-unordered-containers))
+ (arguments
+ `(#:cabal-revision
+ ("1" "1c06yhfa053sv3rfz0d72a33l5qb0xmj1b3hy2z7pzxrcay6g1yc")))
+ (home-page "https://github.com/chessai/semirings")
+ (synopsis "Two monoids as one, in holy haskimony")
+ (description
+ "Haskellers are usually familiar with monoids and semigroups. A monoid
has an
+appending operation @code{<>} (or @code{mappend}), and an identity element,
+@code{mempty}. A semigroup has an appending @code{<>} operation, but does not
+require a @code{mempty} element. A Semiring has two appending operations,
+@code{plus} and @code{times}, and two respective identity elements,
+@code{zero} and @code{one}. More formally, a Semiring R is a set equipped
+with two binary relations @code{+} and @code{*}, 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 @code{0} annihilates R.")
+ (license license:bsd-3)))
+
(define-public ghc-serialise
(package
(name "ghc-serialise")