Subject: [bug#27987] Dependencies for Agda - a dependently typed functional language

From: Alex Vong <[email-masked]>
Date: Sun, 06 Aug 2017 23:54:14 +0800

Hello,

I wish to introduce Agda to Guix. The patches below are some dependecies
for Agda. There are more to come...

From 792e06adee38186dc3154b8e5f3f84db3875e019 Mon Sep 17 00:00:00 2001
From: Alex Vong <[email-masked]>
Date: Sun, 6 Aug 2017 23:35:06 +0800
Subject: [PATCH 1/6] gnu: cpphs: Update to 1.20.8.

* gnu/packages/haskell.scm (cpphs): Update to 1.20.8.
---
 gnu/packages/haskell.scm | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm
index a67209234..a42d17d46 100644
--- a/gnu/packages/haskell.scm
+++ b/gnu/packages/haskell.scm
@@ -10,6 +10,7 @@
 ;;; Copyright © 2016, 2017 David Craven <[email-masked]>
 ;;; Copyright © 2017 Danny Milosavljevic <[email-masked]>
 ;;; Copyright © 2017 Peter Mikkelsen <[email-masked]>
+;;; Copyright © 2017 Alex Vong <[email-masked]>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -1324,7 +1325,7 @@ various Haskell streaming data libraries, such as @code{conduit} and
 (define-public cpphs
   (package
     (name "cpphs")
-    (version "1.19.3")
+    (version "1.20.8")
     (source
      (origin
        (method url-fetch)
@@ -1333,7 +1334,7 @@ various Haskell streaming data libraries, such as @code{conduit} and
              name "-" version ".tar.gz"))
        (sha256
         (base32
-         "1njpmxgpah5pcqppcl1cxb5xicf6xlqrd162qm12khp9hainlm72"))))
+         "1bh524asqhk9v1s0wvipl0hgn7l63iy3js867yv0z3h5v2kn8vg5"))))
     (build-system haskell-build-system)
     (inputs
      `(("ghc-polyparse" ,ghc-polyparse)
-- 
2.13.4

From 97d360bb46d727a5129416cd4bfaea54cd0adede Mon Sep 17 00:00:00 2001
From: Alex Vong <[email-masked]>
Date: Sun, 6 Aug 2017 23:37:15 +0800
Subject: [PATCH 2/6] gnu: Add ghc-strict.

* gnu/packages/haskell.scm (ghc-strict): New variable.
---
 gnu/packages/haskell.scm | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)

diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm
index a42d17d46..d0e6a64ce 100644
--- a/gnu/packages/haskell.scm
+++ b/gnu/packages/haskell.scm
@@ -1808,6 +1808,25 @@ capabilities that are optimized for performance critical use, both
 in terms of large data quantities and high speed.")
     (license license:bsd-3)))
 
+(define-public ghc-strict
+  (package
+    (name "ghc-strict")
+    (version "0.3.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://hackage.haskell.org/package/strict/strict-"
+                           version ".tar.gz"))
+       (sha256
+        (base32 "08cjajqz9h47fkq98mlf3rc8n5ghbmnmgn8pfsl3bdldjdkmmlrc"))))
+    (build-system haskell-build-system)
+    (home-page "https://hackage.haskell.org/package/strict")
+    (synopsis "Strict data types and String IO")
+    (description
+     "This package provides strict versions of some standard Haskell data types
+(pairs, Maybe and Either).  It also contains strict IO operations.")
+    (license license:bsd-3)))
+
 (define-public ghc-hashable
   (package
     (name "ghc-hashable")
-- 
2.13.4

From 48566e3dd705cbd2f8ad34b38e03e639e9e6e5a7 Mon Sep 17 00:00:00 2001
From: Alex Vong <[email-masked]>
Date: Sun, 6 Aug 2017 23:39:55 +0800
Subject: [PATCH 3/6] gnu: Add ghc-stmonadtrans.

* gnu/packages/haskell.scm (ghc-stmonadtrans): New variable.
---
 gnu/packages/haskell.scm | 25 +++++++++++++++++++++++++
 1 file changed, 25 insertions(+)

diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm
index d0e6a64ce..44797a226 100644
--- a/gnu/packages/haskell.scm
+++ b/gnu/packages/haskell.scm
@@ -7076,6 +7076,31 @@ other transformers.")
                (base32
                 "0a364zfcm17mhpy0c4ms2j88sys4yvgd6071qsgk93la2wjm8mkr"))))))
 
+(define-public ghc-stmonadtrans
+  (package
+    (name "ghc-stmonadtrans")
+    (version "0.4.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://hackage.haskell.org/package/STMonadTrans"
+                           "/STMonadTrans-" version ".tar.gz"))
+       (sha256
+        (base32 "1nr26fnmi5fdjc6d00w13kjhmfyvb5b837d0006w4dj0yxndaksp"))))
+    (build-system haskell-build-system)
+    (inputs
+     `(("ghc-mtl" ,ghc-mtl)))
+    (home-page "https://hackage.haskell.org/package/STMonadTrans")
+    (synopsis "Monad transformer version of the ST monad")
+    (description
+     "A monad transformer version of the ST monad Warning! This monad
+transformer should not be used with monads that can contain multiple answers,
+like the list monad.  The reason is that the state token will be duplicated
+across the different answers and this causes Bad Things to happen (such as loss
+of referential transparency).  Safe monads include the monads State, Reader,
+Writer, Maybe and combinations of their corresponding monad transformers.")
+    (license license:bsd-3)))
+
 (define-public ghc-findbin
   (package
     (name "ghc-findbin")
-- 
2.13.4

From 2c47df61ed829417127916a44877809eb934640b Mon Sep 17 00:00:00 2001
From: Alex Vong <[email-masked]>
Date: Sun, 6 Aug 2017 23:41:38 +0800
Subject: [PATCH 4/6] gnu: Add ghc-edit-distance.

* gnu/packages/haskell.scm (ghc-edit-distance): New variable.
---
 gnu/packages/haskell.scm | 24 ++++++++++++++++++++++++
 1 file changed, 24 insertions(+)

diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm
index 44797a226..8726977f1 100644
--- a/gnu/packages/haskell.scm
+++ b/gnu/packages/haskell.scm
@@ -6098,6 +6098,30 @@ supports for high level forms of ASN1 (BER, and DER).")
 when ASN1 pattern matching is not convenient.")
     (license license:bsd-3)))
 
+(define-public ghc-edit-distance
+  (package
+    (name "ghc-edit-distance")
+    (version "0.2.2.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://hackage.haskell.org/package/edit-distance"
+                           "/edit-distance-" version ".tar.gz"))
+       (sha256
+        (base32 "0jkca97zyv23yyilp3jydcrzxqhyk27swhzh82llvban5zp8b21y"))))
+    (build-system haskell-build-system)
+    (inputs
+     `(("ghc-random" ,ghc-random)
+       ("ghc-test-framework" ,ghc-test-framework)
+       ("ghc-quickcheck" ,ghc-quickcheck)
+       ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
+    (home-page "https://github.com/phadej/edit-distance")
+    (synopsis "Levenshtein and restricted Damerau-Levenshtein edit distances")
+    (description
+     "Optimized edit distances for fuzzy matching, including Levenshtein and
+restricted Damerau-Levenshtein algorithms.")
+    (license license:bsd-3)))
+
 (define-public ghc-tasty-kat
   (package
     (name "ghc-tasty-kat")
-- 
2.13.4

From 28ebe7e4b96d61f5f55c3af517a871127baf5dfd Mon Sep 17 00:00:00 2001
From: Alex Vong <[email-masked]>
Date: Sun, 6 Aug 2017 23:42:32 +0800
Subject: [PATCH 5/6] gnu: Add ghc-boxes.

* gnu/packages/haskell.scm (ghc-boxes): New variable.
---
 gnu/packages/haskell.scm | 22 ++++++++++++++++++++++
 1 file changed, 22 insertions(+)

diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm
index 8726977f1..33e7af969 100644
--- a/gnu/packages/haskell.scm
+++ b/gnu/packages/haskell.scm
@@ -5101,6 +5101,28 @@ prettified JSON to stdout.  It also offers a complementary \"compact\"-mode,
 essentially the opposite of pretty-printing.")
     (license license:bsd-3)))
 
+(define-public ghc-boxes
+  (package
+    (name "ghc-boxes")
+    (version "0.1.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://hackage.haskell.org/package/boxes/boxes-"
+                           version ".tar.gz"))
+       (sha256
+        (base32 "1n7xiplzd3s1a39nizwjcgsh3wi2348mp21c3fk19v98ialfjgjf"))))
+    (build-system haskell-build-system)
+    (inputs
+     `(("ghc-split" ,ghc-split)
+       ("ghc-quickcheck" ,ghc-quickcheck)))
+    (home-page "https://hackage.haskell.org/package/boxes")
+    (synopsis "2D text pretty-printing library")
+    (description
+     "A pretty-printing library for laying out text in two dimensions,
+using a simple box model.")
+    (license license:bsd-3)))
+
 (define-public ghc-wai
   (package
     (name "ghc-wai")
-- 
2.13.4

From a4c668273df8e726625bf4c8aa828d13bca946f2 Mon Sep 17 00:00:00 2001
From: Alex Vong <[email-masked]>
Date: Sun, 6 Aug 2017 23:43:53 +0800
Subject: [PATCH 6/6] gnu: Add ghc-equivalence.

* gnu/packages/haskell.scm (ghc-equivalence): New variable.
---
 gnu/packages/haskell.scm | 30 ++++++++++++++++++++++++++++++
 1 file changed, 30 insertions(+)

diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm
index 33e7af969..60ded9651 100644
--- a/gnu/packages/haskell.scm
+++ b/gnu/packages/haskell.scm
@@ -4714,6 +4714,36 @@ definition of @code{Monad}.")
 for Haskell.")
     (license license:bsd-3)))
 
+(define-public ghc-equivalence
+  (package
+    (name "ghc-equivalence")
+    (version "0.3.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://hackage.haskell.org/package/equivalence"
+                           "/equivalence-" version ".tar.gz"))
+       (sha256
+        (base32 "0a85bdyyvjqs5z4kfhhf758210k9gi9dv42ik66a3jl0z7aix8kx"))))
+    (build-system haskell-build-system)
+    (inputs
+     `(("ghc-mtl" ,ghc-mtl)
+       ("ghc-stmonadtrans" ,ghc-stmonadtrans)
+       ("ghc-transformers-compat" ,ghc-transformers-compat)
+       ("ghc-quickcheck" ,ghc-quickcheck)
+       ("ghc-test-framework" ,ghc-test-framework)
+       ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
+    (home-page "https://github.com/pa-ba/equivalence")
+    (synopsis
+     "Maintaining an equivalence relation implemented as union-find using STT")
+    (description
+     "This is an implementation of Tarjan's Union-Find algorithm
+(Robert E.@: Tarjan.  \"Efficiency of a Good But Not Linear Set Union
+        Algorithm\",JACM 22(2), 1975) in order to maintain an equivalence relation.
+This implementation is a port of the @code{union-find} package using the ST
+monad transformer (instead of the IO monad).")
+    (license license:bsd-3)))
+
 (define-public ghc-fast-logger
   (package
     (name "ghc-fast-logger")
-- 
2.13.4

Cheers,
Alex