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

From: Alex Vong <[email-masked]>
Date: Mon, 07 Aug 2017 15:34:26 +0800

Hello,

Here is the remaining dependencies for Agda. Actually I have already
managed to get Agda to build, but I still need to figure out how to
build the standard library.

From 8c38d3e533717c67ab91cfa72c8d8553798987d6 Mon Sep 17 00:00:00 2001
From: Alex Vong <[email-masked]>
Date: Mon, 7 Aug 2017 15:02:41 +0800
Subject: [PATCH 1/8] gnu: Add ghc-data-hash.

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

diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm
index 60ded9651..d054753b3 100644
--- a/gnu/packages/haskell.scm
+++ b/gnu/packages/haskell.scm
@@ -1857,6 +1857,29 @@ data structures.  The package provides instances for basic types and a way to
 combine hash values.")
     (license license:bsd-3)))
 
+(define-public ghc-data-hash
+  (package
+    (name "ghc-data-hash")
+    (version "0.2.0.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://hackage.haskell.org/package/data-hash"
+                           "/data-hash-" version ".tar.gz"))
+       (sha256
+        (base32 "1ghbqvc48gf9p8wiy71hdpaj7by3b9cw6wgwi3qqz8iw054xs5wi"))))
+    (build-system haskell-build-system)
+    (inputs
+     `(("ghc-quickcheck" ,ghc-quickcheck)
+       ("ghc-test-framework" ,ghc-test-framework)
+       ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
+    (home-page "https://hackage.haskell.org/package/data-hash")
+    (synopsis "Combinators for building fast hashing functions")
+    (description
+     "Combinators for building fast hashing functions.  Includes hashing
+functions for all basic Haskell98 types.")
+    (license license:bsd-3)))
+
 (define-public ghc-hunit
   (package
     (name "ghc-hunit")
-- 
2.13.4

From 5cdf99afbd92e9181e9213979de7e7bbc02c41f9 Mon Sep 17 00:00:00 2001
From: Alex Vong <[email-masked]>
Date: Mon, 7 Aug 2017 15:05:36 +0800
Subject: [PATCH 2/8] gnu: Add ghc-murmur-hash.

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

diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm
index d054753b3..4b1543233 100644
--- a/gnu/packages/haskell.scm
+++ b/gnu/packages/haskell.scm
@@ -1880,6 +1880,27 @@ combine hash values.")
 functions for all basic Haskell98 types.")
     (license license:bsd-3)))
 
+(define-public ghc-murmur-hash
+  (package
+    (name "ghc-murmur-hash")
+    (version "0.1.0.9")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://hackage.haskell.org/package/murmur-hash"
+                           "/murmur-hash-" version ".tar.gz"))
+       (sha256
+        (base32 "1bb58kfnzvx3mpc0rc0dhqc1fk36nm8prd6gvf20gk6lxaadpfc9"))))
+    (build-system haskell-build-system)
+    (home-page "https://github.com/nominolo/murmur-hash")
+    (synopsis "MurmurHash2 implementation for Haskell")
+    (description
+     "Implements MurmurHash2, a good, fast, general-purpose, non-cryptographic
+hashing function.  See @url{https://sites.google.com/site/murmurhash/} for
+details.  This implementation is pure Haskell, so it might be a bit slower than
+a C FFI binding.")
+    (license license:bsd-3)))
+
 (define-public ghc-hunit
   (package
     (name "ghc-hunit")
-- 
2.13.4

From abc98c9c108aac8591c002426dabc4b10e267647 Mon Sep 17 00:00:00 2001
From: Alex Vong <[email-masked]>
Date: Mon, 7 Aug 2017 15:09:03 +0800
Subject: [PATCH 3/8] gnu: Add ghc-edisonapi.

* gnu/packages/haskell.scm (ghc-edisonapi): 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 4b1543233..e2fa7aace 100644
--- a/gnu/packages/haskell.scm
+++ b/gnu/packages/haskell.scm
@@ -3870,6 +3870,31 @@ different keys; hence the name.  Also provided is a @code{locker} type,
 representing a store for a single element.")
     (license license:bsd-3)))
 
+(define-public ghc-edisonapi
+  (package
+    (name "ghc-edisonapi")
+    (version "1.3.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://hackage.haskell.org/package/EdisonAPI"
+                           "/EdisonAPI-" version ".tar.gz"))
+       (sha256
+        (base32 "0vmmlsj8ggbpwx6fkf5fvb6jp0zpx6iba6b28m80lllr2p8bi8wm"))))
+    (build-system haskell-build-system)
+    (inputs `(("ghc-mtl" ,ghc-mtl)))
+    (home-page "http://rwd.rdockins.name/edison/home/")
+    (synopsis "Library of efficient, purely-functional data structures (API)")
+    (description
+     "Edison is a library of purely functional data structures written by
+Chris Okasaki.  It is named after Thomas Alva Edison and for the mnemonic value
+EDiSon (Efficient Data Structures).  Edison provides several families of
+abstractions, each with multiple implementations.  The main abstractions
+provided by Edison are: Sequences such as stacks, queues, and dequeues;
+Collections such as sets, bags and heaps; and Associative Collections such as
+finite maps and priority queues where the priority and element are distinct.")
+    (license license:expat)))
+
 (define-public ghc-mmorph
   (package
     (name "ghc-mmorph")
-- 
2.13.4

From 0dd3f97e1764a0fad07859895c683b64cfa6e6de Mon Sep 17 00:00:00 2001
From: Alex Vong <[email-masked]>
Date: Mon, 7 Aug 2017 15:10:39 +0800
Subject: [PATCH 4/8] gnu: Add ghc-edisoncore.

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

diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm
index e2fa7aace..8a08ad906 100644
--- a/gnu/packages/haskell.scm
+++ b/gnu/packages/haskell.scm
@@ -3895,6 +3895,34 @@ Collections such as sets, bags and heaps; and Associative Collections such as
 finite maps and priority queues where the priority and element are distinct.")
     (license license:expat)))
 
+(define-public ghc-edisoncore
+  (package
+    (name "ghc-edisoncore")
+    (version "1.3.1.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://hackage.haskell.org/package/EdisonCore"
+                           "/EdisonCore-" version ".tar.gz"))
+       (sha256
+        (base32 "06shxmcqxcahcn6zgl64vlqix4fnq53d97drcgsh94qp7gp201ry"))))
+    (build-system haskell-build-system)
+    (inputs
+     `(("ghc-mtl" ,ghc-mtl)
+       ("ghc-quickcheck" ,ghc-quickcheck)
+       ("ghc-edisonapi" ,ghc-edisonapi)))
+    (home-page "http://rwd.rdockins.name/edison/home/")
+    (synopsis
+     "Library of efficent, purely-functional data structures
+(Core Implementations)")
+    (description
+     "This package provides the core Edison data structure implementations,
+including multiple sequence, set, bag, and finite map concrete implementations
+with various performance characteristics.  The implementations in this package
+have no dependencies other than those commonly bundled with Haskell
+compilers.")
+    (license license:expat)))
+
 (define-public ghc-mmorph
   (package
     (name "ghc-mmorph")
-- 
2.13.4

From e43cfe603c08d70423af42f35173294a15145a05 Mon Sep 17 00:00:00 2001
From: Alex Vong <[email-masked]>
Date: Mon, 7 Aug 2017 15:13:42 +0800
Subject: [PATCH 5/8] gnu: Add ghc-fail.

* gnu/packages/haskell.scm (ghc-fail): 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 8a08ad906..4a322ca4b 100644
--- a/gnu/packages/haskell.scm
+++ b/gnu/packages/haskell.scm
@@ -3972,6 +3972,30 @@ a subset of @code{MonadBase} into which generic control operations such as
 @code{catch} can be lifted from @code{IO} or any other base monad.")
     (license license:bsd-3)))
 
+(define-public ghc-fail
+  (package
+    (name "ghc-fail")
+    (version "4.9.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://hackage.haskell.org/package/fail/fail-"
+                           version ".tar.gz"))
+       (sha256
+        (base32 "18nlj6xvnggy61gwbyrpmvbdkq928wv0wx2zcsljb52kbhddnp3d"))))
+    (build-system haskell-build-system)
+    (home-page "https://prime.haskell.org/wiki/Libraries/Proposals/MonadFail")
+    (synopsis "Forward-compatible MonadFail class")
+    (description
+     "This package contains the \"Control.Monad.Fail\" module providing the
+@uref{https://prime.haskell.org/wiki/Libraries/Proposals/MonadFail, MonadFail}
+class that became available in
+@uref{https://hackage.haskell.org/package/base-4.9.0.0, base-4.9.0.0} for older
+@code{base} package versions.  This package turns into an empty package when
+used with GHC versions which already provide the \"Control.Monad.Fail\" module
+to make way for GHC's own \"Control.Monad.Fail\" module.")
+    (license license:bsd-3)))
+
 (define-public ghc-byteorder
   (package
     (name "ghc-byteorder")
-- 
2.13.4

From d21b1af8916ae507400a9a8e2cb51c9bdb72586b Mon Sep 17 00:00:00 2001
From: Alex Vong <[email-masked]>
Date: Mon, 7 Aug 2017 15:15:12 +0800
Subject: [PATCH 6/8] gnu: Add ghc-monadplus.

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

diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm
index 4a322ca4b..6ad6f7799 100644
--- a/gnu/packages/haskell.scm
+++ b/gnu/packages/haskell.scm
@@ -3996,6 +3996,26 @@ used with GHC versions which already provide the \"Control.Monad.Fail\" module
 to make way for GHC's own \"Control.Monad.Fail\" module.")
     (license license:bsd-3)))
 
+(define-public ghc-monadplus
+  (package
+    (name "ghc-monadplus")
+    (version "1.4.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://hackage.haskell.org/package/monadplus"
+                           "/monadplus-" version ".tar.gz"))
+       (sha256
+        (base32 "15b5320wdpmdp5slpphnc1x4rhjch3igw245dp2jxbqyvchdavin"))))
+    (build-system haskell-build-system)
+    (home-page "https://hackage.haskell.org/package/monadplus")
+    (synopsis
+     "Filtering and folding over arbitrary @code{MonadPlus} instances")
+    (description
+     "This package generalizes many common stream operations such as
+@code{filter}, @code{catMaybes} etc.")
+    (license license:bsd-3)))
+
 (define-public ghc-byteorder
   (package
     (name "ghc-byteorder")
-- 
2.13.4

From 857831b8908aa6d8732be76878b2dba3fed93f07 Mon Sep 17 00:00:00 2001
From: Alex Vong <[email-masked]>
Date: Mon, 7 Aug 2017 15:20:37 +0800
Subject: [PATCH 7/8] gnu: Add ghc-geniplate-mirror.

* gnu/packages/haskell.scm (ghc-geniplate-mirror): 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 6ad6f7799..7ecbccacb 100644
--- a/gnu/packages/haskell.scm
+++ b/gnu/packages/haskell.scm
@@ -5778,6 +5778,28 @@ and @code{Eq} instances.  These instances used to live in the haskell-src-meta
 package, and that's where the version number started.")
     (license license:bsd-3)))
 
+(define-public ghc-geniplate-mirror
+  (package
+    (name "ghc-geniplate-mirror")
+    (version "0.7.5")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://hackage.haskell.org/package"
+                           "/geniplate-mirror"
+                           "/geniplate-mirror-" version ".tar.gz"))
+       (sha256
+        (base32 "17vjps2118s5z3k39ij00lkmkxv3mqf8h59wv6qdamlgmhyr36si"))))
+    (build-system haskell-build-system)
+    (inputs `(("ghc-mtl" ,ghc-mtl)))
+    (home-page "https://github.com/danr/geniplate")
+    (synopsis "Use Template Haskell to generate Uniplate-like functions")
+    (description
+     "Use Template Haskell to generate Uniplate-like functions.  This is a
+maintained mirror of the @uref{https://hackage.haskell.org/package/geniplate,
+geniplate} package, written by Lennart Augustsson.")
+    (license license:bsd-3)))
+
 (define-public ghc-haskell-src-meta
   (package
     (name "ghc-haskell-src-meta")
-- 
2.13.4

From 77f25bfeaec40a4cdb08a053bc41527b2dd6e738 Mon Sep 17 00:00:00 2001
From: Alex Vong <[email-masked]>
Date: Mon, 7 Aug 2017 15:22:00 +0800
Subject: [PATCH 8/8] gnu: Add ghc-gitrev.

* gnu/packages/haskell.scm (ghc-gitrev): 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 7ecbccacb..14bc1dddb 100644
--- a/gnu/packages/haskell.scm
+++ b/gnu/packages/haskell.scm
@@ -5800,6 +5800,28 @@ maintained mirror of the @uref{https://hackage.haskell.org/package/geniplate,
 geniplate} package, written by Lennart Augustsson.")
     (license license:bsd-3)))
 
+(define-public ghc-gitrev
+  (package
+    (name "ghc-gitrev")
+    (version "1.3.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://hackage.haskell.org/package/gitrev/gitrev-"
+                           version ".tar.gz"))
+       (sha256
+        (base32 "0cl3lfm6k1h8fxp2vxa6ihfp4v8igkz9h35iwyq2frzm4kdn96d8"))))
+    (build-system haskell-build-system)
+    (inputs `(("ghc-base-compat" ,ghc-base-compat)))
+    (home-page "https://github.com/acfoltzer/gitrev")
+    (synopsis "Compile git revision info into Haskell projects")
+    (description
+     "Some handy Template Haskell splices for including the current git hash
+and branch in the code of your project.  Useful for including in panic
+messages, @command{--version} output, or diagnostic info for more informative
+bug reports.")
+    (license license:bsd-3)))
+
 (define-public ghc-haskell-src-meta
   (package
     (name "ghc-haskell-src-meta")
-- 
2.13.4

Cheers,
Alex