Subject: [bug#64066] [PATCH 12/19] gnu: Add ghc-dependent-sum

From: zamfofex <[email-masked]>
Date: Wed, 14 Jun 2023 09:48:52 -0300

* gnu/packages/haskell-xyz.scm (ghc-dependent-sum): New variable.
---
 gnu/packages/haskell-xyz.scm | 27 +++++++++++++++++++++++++++
 1 file changed, 27 insertions(+)

diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm
index 7f9380d959..06e7199c9c 100644
--- a/gnu/packages/haskell-xyz.scm
+++ b/gnu/packages/haskell-xyz.scm
@@ -13166,6 +13166,33 @@ (define-public ghc-commutative-semigroups
 arguments to mappend does not matter.")
     (license license:bsd-3)))
 
+(define-public ghc-dependent-sum
+  (package
+    (name "ghc-dependent-sum")
+    (version "0.7.2.0")
+    (source (origin
+              (method url-fetch)
+              (uri (hackage-uri "dependent-sum" version))
+              (sha256
+               (base32
+                "1frw5965v8i6xqdgs95gg8asgdqcqnmfahz0pmbwiaw5ybn62rc2"))))
+    (build-system haskell-build-system)
+    (properties '((upstream-name . "dependent-sum")))
+    (inputs (list ghc-constraints-extras ghc-some))
+    (arguments
+     `(#:cabal-revision ("1"
+                         "0qybk8x6gyvg8pgf84mywlfajlcvg9pp4rs1wfn9fa7ns6sms88n")))
+    (home-page "https://github.com/obsidiansystems/dependent-sum")
+    (synopsis "Dependent sum type")
+    (description
+     "This package provides a dependent sum is a generalization of a particular way of
+thinking about the @@Either@@ type. @@Either a b@@ can be thought of as a
+2-tuple @@(tag, value)@@, where the value of the tag determines the type of the
+value.  In particular, either @@tag = Left@@ and @@value :: a@@ or @@tag =
+Right@@ and @@value :: b@@. .  This package allows you to define your own
+dependent sum types by using your own \\\"tag\\\" types.")
+    (license license:public-domain)))
+
 (define-public ghc-unsafe
   (package
     (name "ghc-unsafe")
-- 
2.40.1