unofficial mirror of guix-patches@gnu.org 
 help / color / mirror / code / Atom feed
* [bug#39309] .[PATCH] WIP gnu: add stack.
@ 2020-01-27 14:56 John Soo
  2020-01-29 15:17 ` [bug#39309] [PATCH WIP] " John Soo
  0 siblings, 1 reply; 17+ messages in thread
From: John Soo @ 2020-01-27 14:56 UTC (permalink / raw)
  To: 39309

[-- Attachment #1: Type: text/plain, Size: 628 bytes --]

Hi Guix,

I looked at the wishlist on libreplanet and saw stack was on the list.
Also after the recent thread on haskell and clojure development I
realized stack would help out there.

I tried to package it which seems straightforward. I got the
dependencies built and linted but stack itself is failing with the
following:

gcc: error trying to exec
'/gnu/store/...-gcc-7.4.0/libexec/gcc/x86_64-unknown-linux-gnu/7.4.0/collect2':
execv: Argument list too long

This looks a lot like the nix issue here:
https://github.com/NixOS/nixpkgs/issues/41340

I thought I would share my work and maybe someone could help.

Thanks,

John

[-- Attachment #2: 0004-gnu-Add-ghc-th-utilities.patch --]
[-- Type: text/x-patch, Size: 2822 bytes --]

From 471e1d216493d955d8ad392e3a98ff9851c1104a Mon Sep 17 00:00:00 2001
From: John Soo <jsoo1@asu.edu>
Date: Sun, 26 Jan 2020 10:51:19 -0800
Subject: [PATCH 04/34] gnu: Add ghc-th-utilities.

* gnu/packages/haskell-xyz.scm (ghc-th-utilities): New variable.
---
 gnu/packages/haskell-xyz.scm | 53 ++++++++++++++++++++++++++++++++++++
 1 file changed, 53 insertions(+)

diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm
index 7e06eb00d6..105851fc2a 100644
--- a/gnu/packages/haskell-xyz.scm
+++ b/gnu/packages/haskell-xyz.scm
@@ -11849,6 +11849,59 @@ 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-th-utilities
+  (package
+    (name "ghc-th-utilities")
+    (version "0.2.3.1")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "https://hackage.haskell.org/package/th-utilities/th-utilities-"
+               version
+               ".tar.gz"))
+        (sha256
+          (base32
+            "1sy3bgwc85zw999cya92xsp9jllclwbzw9fmjmhqi4r5kj2gyk96"))))
+    (build-system haskell-build-system)
+    (inputs
+      `(("ghc-hspec-discover" ,ghc-hspec-discover)
+        ("ghc-primitive" ,ghc-primitive)
+        ("ghc-syb" ,ghc-syb)
+        ("ghc-th-orphans" ,ghc-th-orphans)))
+    (native-inputs
+      `(("ghc-hspec" ,ghc-hspec)
+        ("ghc-vector" ,ghc-vector)))
+    (home-page
+      "https://github.com/fpco/th-utilities#readme")
+    (synopsis
+      "Collection of useful functions for use with Template Haskell")
+    (description
+     "The th-utilities package provides a number of useful utilities for
+Template Haskell.  In particular:
+
+@itemize
+
+@item @code{TH.Derive} provides a convenient system for using TH to derive
+typeclass instances.  It allows for open registration of TH derivers, and
+reuses instance syntax for invoking them.  TH.Derive.Storable defines
+derivation of Storable for ADTs.
+
+@item @code{TH.ReifyDataType} provides utilities for reifying simplified
+datatype info.  It omits details that you don't usually want to handle, making
+it much more straightforward to generate code based on datatype structure.
+
+@item @code{TH.RelativePaths} provides utilities for loading files based on
+paths relative to the cabal file.  This is particularly handy for loading code
+into ghci even when its current dir isn't the package dir.  Ideally, this
+module would be used by everyone who currently uses qAddDependentFile.
+
+@item @code{TH.Utilities} provides a miscellaneous set of utilities that are
+useful within this package and elsewhere.
+
+@end itemize")
+    (license license:expat)))
+
 (define-public ghc-these
   (package
     (name "ghc-these")
-- 
2.25.0


[-- Attachment #3: 0002-gnu-Add-ghc-singletons.patch --]
[-- Type: text/x-patch, Size: 2164 bytes --]

From e39b3e9fe3f4c990751a73bf379d58d215637951 Mon Sep 17 00:00:00 2001
From: John Soo <jsoo1@asu.edu>
Date: Sun, 26 Jan 2020 10:49:21 -0800
Subject: [PATCH 02/34] gnu: Add ghc-singletons.

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

diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm
index 0beaf40146..502ff1214f 100644
--- a/gnu/packages/haskell-xyz.scm
+++ b/gnu/packages/haskell-xyz.scm
@@ -10532,6 +10532,43 @@ them.")
 are the bottleneck of web servers.")
     (license license:bsd-3)))
 
+(define-public ghc-singletons
+  (package
+    (name "ghc-singletons")
+    (version "2.5.1")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "https://hackage.haskell.org/package/singletons/singletons-"
+               version
+               ".tar.gz"))
+        (sha256
+          (base32
+            "0izi487dpn5dx5yzm0bqrrjj2fcy6y6jyk81848yq4i8fcx0mc10"))))
+    (build-system haskell-build-system)
+    (inputs
+      `(("ghc-th-desugar" ,ghc-th-desugar)
+        ("ghc-syb" ,ghc-syb)))
+    (native-inputs
+      `(("ghc-tasty" ,ghc-tasty)
+        ("ghc-tasty-golden" ,ghc-tasty-golden)))
+    (home-page
+      "https://www.github.com/goldfirere/singletons")
+    (synopsis
+      "Framework for generating singleton types")
+    (description
+      "This library generates singleton types, promoted functions, and
+singleton functions using Template Haskell.  It is useful for programmers who
+wish to use dependently typed programming techniques.  The library was
+originally presented in /Dependently Typed Programming with Singletons/,
+published at the Haskell Symposium,
+2012.  (https://cs.brynmawr.edu/~rae/papers/2012/singletons/paper.pdf) Version
+1.0 and onwards works a lot harder to promote functions.  See the paper
+published at Haskell Symposium, 2014:
+https://cs.brynmawr.edu/~rae/papers/2014/promotion/promotion.pdf.")
+    (license license:bsd-3)))
+
 (define-public ghc-size-based
   (package
     (name "ghc-size-based")
-- 
2.25.0


[-- Attachment #4: 0005-gnu-Add-ghc-rio-orphans.patch --]
[-- Type: text/x-patch, Size: 2109 bytes --]

From f7532180d638087cbb8d09bc612c7c12c8e622fe Mon Sep 17 00:00:00 2001
From: John Soo <jsoo1@asu.edu>
Date: Sun, 26 Jan 2020 10:52:08 -0800
Subject: [PATCH 05/34] gnu: Add ghc-rio-orphans.

* gnu/packages/haskell-xyz.scm (ghc-rio-orphans): New variable.
---
 gnu/packages/haskell-xyz.scm | 40 ++++++++++++++++++++++++++++++++++++
 1 file changed, 40 insertions(+)

diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm
index 105851fc2a..d01eec8f06 100644
--- a/gnu/packages/haskell-xyz.scm
+++ b/gnu/packages/haskell-xyz.scm
@@ -9834,6 +9834,46 @@ expose it from another module in the hierarchy.
 @end itemize")
     (license license:expat)))
 
+(define-public ghc-rio-orphans
+  (package
+    (name "ghc-rio-orphans")
+    (version "0.1.1.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "https://hackage.haskell.org/package/rio-orphans/rio-orphans-"
+               version
+               ".tar.gz"))
+        (sha256
+          (base32
+            "0klbshdsv3gq3l7g1d6gq2wxdqjlqxbnwk1lbg5dpbz7yrnjr3by"))))
+    (build-system haskell-build-system)
+    (inputs
+      `(("ghc-exceptions" ,ghc-exceptions)
+        ("ghc-fast-logger" ,ghc-fast-logger)
+        ("ghc-hspec-discover" ,ghc-hspec-discover)
+        ("ghc-monad-control" ,ghc-monad-control)
+        ("ghc-monad-logger" ,ghc-monad-logger)
+        ("ghc-resourcet" ,ghc-resourcet)
+        ("ghc-rio" ,ghc-rio)
+        ("ghc-transformers-base" ,ghc-transformers-base)))
+    (native-inputs `(("ghc-hspec" ,ghc-hspec)))
+    (home-page
+      "https://github.com/commercialhaskell/rio#readme")
+    (synopsis
+      "Orphan instances for the RIO type in the rio package")
+    (description
+     "Provides orphan instances for the RIO data type.  Currently supports:
+
+@itemize
+@item MonadCatch and MonadMask from exceptions
+@item MonadBase from transformers-base
+@item MonadBaseControl from monad-control
+@item MonadResource from resourcet
+@end itemize")
+    (license license:expat)))
+
 (define-public ghc-safe
   (package
     (name "ghc-safe")
-- 
2.25.0


[-- Attachment #5: 0001-gnu-Add-ghc-th-desugar.patch --]
[-- Type: text/x-patch, Size: 2413 bytes --]

From 639e9ae9fd93ea527b4433b806f0eb376722dd04 Mon Sep 17 00:00:00 2001
From: John Soo <jsoo1@asu.edu>
Date: Sun, 26 Jan 2020 10:48:54 -0800
Subject: [PATCH 01/34] gnu: Add ghc-th-desugar.

* gnu/packages/haskell-xyz.scm (ghc-th-desugar): New variable.
---
 gnu/packages/haskell-xyz.scm | 40 ++++++++++++++++++++++++++++++++++++
 1 file changed, 40 insertions(+)

diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm
index 67fec7c597..0beaf40146 100644
--- a/gnu/packages/haskell-xyz.scm
+++ b/gnu/packages/haskell-xyz.scm
@@ -11648,6 +11648,46 @@ single, easier to use informational datatype while supporting many versions of
 Template Haskell.")
     (license license:isc)))
 
+(define-public ghc-th-desugar
+  (package
+    (name "ghc-th-desugar")
+    (version "1.9")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "https://hackage.haskell.org/package/th-desugar/th-desugar-"
+               version
+               ".tar.gz"))
+        (sha256
+          (base32
+            "1vxg0jvc239ngmv53yx564b7wkgd0b10xvx5phxvnnpm9n2pljpi"))))
+    (build-system haskell-build-system)
+    (inputs
+      `(("ghc-syb" ,ghc-syb)
+        ("ghc-th-lift" ,ghc-th-lift)
+        ("ghc-th-orphans" ,ghc-th-orphans)
+        ("ghc-th-expand-syns" ,ghc-th-expand-syns)))
+    (native-inputs
+      `(("ghc-hunit" ,ghc-hunit)
+        ("ghc-hspec" ,ghc-hspec)))
+    (home-page
+      "https://github.com/goldfirere/th-desugar")
+    (synopsis
+      "Functions to desugar Template Haskell")
+    (description
+      "This package provides the Language.Haskell.TH.Desugar module, which
+desugars Template Haskell's rich encoding of Haskell syntax into a simpler
+encoding.  This desugaring discards surface syntax information (such as the
+use of infix operators) but retains the original meaning of the TH code.  The
+intended use of this package is as a preprocessor for more advanced code
+manipulation tools.  Note that the input to any of the @code{ds...} functions
+should be produced from a TH quote, using the syntax @code{[| ... |]}.  If the
+input to these functions is a hand-coded TH syntax tree, the results may be
+unpredictable.  In particular, it is likely that promoted datatypes will not
+work as expected.")
+    (license license:bsd-3)))
+
 (define-public ghc-th-expand-syns
   (package
     (name "ghc-th-expand-syns")
-- 
2.25.0


[-- Attachment #6: 0003-gnu-Add-ghc-only.patch --]
[-- Type: text/x-patch, Size: 1659 bytes --]

From 3712c5d6b38ce37bcc0358dd3f057b381cdb1092 Mon Sep 17 00:00:00 2001
From: John Soo <jsoo1@asu.edu>
Date: Sun, 26 Jan 2020 10:50:44 -0800
Subject: [PATCH 03/34] gnu: Add ghc-only.

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

diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm
index 502ff1214f..7e06eb00d6 100644
--- a/gnu/packages/haskell-xyz.scm
+++ b/gnu/packages/haskell-xyz.scm
@@ -8057,6 +8057,34 @@ old @code{time} library.  For new projects, the newer
 @uref{https://hackage.haskell.org/package/time, time library} is recommended.")
     (license license:bsd-3)))
 
+(define-public ghc-only
+  (package
+    (name "ghc-only")
+    (version "0.1")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "https://hackage.haskell.org/package/Only/Only-"
+               version
+               ".tar.gz"))
+        (sha256
+          (base32
+            "0rdj3a629fk2vp121jq8mf2smkblrz5w3cxhlsyx6my2x29s2ymb"))))
+    (build-system haskell-build-system)
+    (arguments
+      `(#:cabal-revision
+        ("1"
+         "1ahk7p34kmh041mz7lyc10nhcxgv2i4z8nvzxvqm2x34gslmsbzr")))
+    (home-page
+      "http://hackage.haskell.org/package/Only")
+    (synopsis
+      "The 1-tuple type or single-value \"collection\"")
+    (description
+      "This package provides a canonical anonymous 1-tuple type missing from
+Haskell for attaching typeclass instances.")
+    (license license:bsd-3)))
+
 (define-public ghc-opengl
   (package
     (name "ghc-opengl")
-- 
2.25.0


[-- Attachment #7: 0006-gnu-Add-ghc-xmlgen.patch --]
[-- Type: text/x-patch, Size: 1729 bytes --]

From c419e0e268df454ba0dfb218158644c634f1d86d Mon Sep 17 00:00:00 2001
From: John Soo <jsoo1@asu.edu>
Date: Sun, 26 Jan 2020 10:52:39 -0800
Subject: [PATCH 06/34] gnu: Add ghc-xmlgen.

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

diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm
index d01eec8f06..7728ba2e60 100644
--- a/gnu/packages/haskell-xyz.scm
+++ b/gnu/packages/haskell-xyz.scm
@@ -13583,6 +13583,39 @@ the @code{conduit} package.")
 documents.")
     (license license:expat)))
 
+(define-public ghc-xmlgen
+  (package
+    (name "ghc-xmlgen")
+    (version "0.6.2.2")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "https://hackage.haskell.org/package/xmlgen/xmlgen-"
+               version
+               ".tar.gz"))
+        (sha256
+          (base32
+            "1milbbr2iqwckqbq6i9sypinvs4hs7mzqn274x350psjfy6ajvwj"))))
+    (build-system haskell-build-system)
+    (inputs
+      `(("ghc-blaze-builder" ,ghc-blaze-builder)))
+    (native-inputs
+      `(("ghc-hxt" ,ghc-hxt)
+        ("ghc-hunit" ,ghc-hunit)
+        ("ghc-quickcheck" ,ghc-quickcheck)))
+    (arguments
+     `(#:tests? #f ; FIXME failing tests
+       #:cabal-revision
+        ("1"
+         "0vwnqd0lsw81llsn0psga5r6pw7jh69vfbj3rnz7c2fpkc0gjh3j")))
+    (home-page
+      "http://hackage.haskell.org/package/xmlgen")
+    (synopsis "Fast XML generation library")
+    (description
+      "Library for high-performance XML generation.")
+    (license license:bsd-3)))
+
 (define-public ghc-yaml
   (package
     (name "ghc-yaml")
-- 
2.25.0


[-- Attachment #8: 0007-gnu-Add-ghc-cpphs.patch --]
[-- Type: text/x-patch, Size: 2038 bytes --]

From f2debebd5818ff65351b5bad4116d750691c1b2b Mon Sep 17 00:00:00 2001
From: John Soo <jsoo1@asu.edu>
Date: Sun, 26 Jan 2020 10:53:38 -0800
Subject: [PATCH 07/34] gnu: Add ghc-cpphs.

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

diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm
index 7728ba2e60..fe82957e0c 100644
--- a/gnu/packages/haskell-xyz.scm
+++ b/gnu/packages/haskell-xyz.scm
@@ -2499,6 +2499,39 @@ pure @code{Either} value.  This means that you need not remember which specific
 function performs the conversion you desire.")
     (license license:bsd-3)))
 
+(define-public ghc-cpphs
+  (package
+    (name "ghc-cpphs")
+    (version "1.20.8")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "https://hackage.haskell.org/package/cpphs/cpphs-"
+               version
+               ".tar.gz"))
+        (sha256
+          (base32
+            "1bh524asqhk9v1s0wvipl0hgn7l63iy3js867yv0z3h5v2kn8vg5"))))
+    (build-system haskell-build-system)
+    (inputs
+      `(("ghc-old-locale" ,ghc-old-locale)
+        ("ghc-old-time" ,ghc-old-time)
+        ("ghc-polyparse" ,ghc-polyparse)))
+    (home-page "https://archives.haskell.org/projects.haskell.org/cpphs/")
+    (synopsis
+      "Liberalised re-implementation of cpp, the C pre-processor")
+    (description
+      "Cpphs is a re-implementation of the C pre-processor that is both more
+compatible with Haskell, and itself written in Haskell so that it can be
+distributed with compilers.
+
+This version of the C pre-processor is pretty-much feature-complete and
+compatible with traditional (K&R) pre-processors.  Additional features
+include: a plain-text mode; an option to unlit literate code files; and an
+option to turn off macro-expansion.")
+    (license license:lgpl2.1)))
+
 (define-public ghc-data-accessor
   (package
     (name "ghc-data-accessor")
-- 
2.25.0


[-- Attachment #9: 0008-gnu-Add-ghc-htf.patch --]
[-- Type: text/x-patch, Size: 2827 bytes --]

From 16014ef73a9e72014beb9435d262a34bb18ecf6d Mon Sep 17 00:00:00 2001
From: John Soo <jsoo1@asu.edu>
Date: Sun, 26 Jan 2020 10:46:31 -0800
Subject: [PATCH 08/34] gnu: Add ghc-htf.

* gnu/packages/haskell-check.scm (ghc-htf): New variable.
---
 gnu/packages/haskell-xyz.scm | 52 ++++++++++++++++++++++++++++++++++++
 1 file changed, 52 insertions(+)

diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm
index fe82957e0c..0e97dc986e 100644
--- a/gnu/packages/haskell-xyz.scm
+++ b/gnu/packages/haskell-xyz.scm
@@ -5781,6 +5781,58 @@ for user-defined custom schemas).
 @end itemize")
     (license license:gpl2+)))
 
+(define-public ghc-htf
+  (package
+    (name "ghc-htf")
+    (version "0.13.2.5")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "https://hackage.haskell.org/package/HTF/HTF-"
+               version
+               ".tar.gz"))
+        (sha256
+          (base32
+            "1kmf95y4vijdiih27xa35acl02dsxqnd9qa56z1waki5qqiz6nin"))))
+    (build-system haskell-build-system)
+    (inputs
+      `(("ghc-diff" ,ghc-diff)
+        ("ghc-hunit" ,ghc-hunit)
+        ("ghc-quickcheck" ,ghc-quickcheck)
+        ("ghc-aeson" ,ghc-aeson)
+        ("ghc-base64-bytestring" ,ghc-base64-bytestring)
+        ("ghc-cpphs" ,ghc-cpphs)
+        ("ghc-haskell-src" ,ghc-haskell-src)
+        ("ghc-lifted-base" ,ghc-lifted-base)
+        ("ghc-monad-control" ,ghc-monad-control)
+        ("ghc-old-time" ,ghc-old-time)
+        ("ghc-random" ,ghc-random)
+        ("ghc-regex-compat" ,ghc-regex-compat)
+        ("ghc-vector" ,ghc-vector)
+        ("ghc-xmlgen" ,ghc-xmlgen)))
+    (native-inputs
+      `(("ghc-aeson-pretty" ,ghc-aeson-pretty)
+        ("ghc-temporary" ,ghc-temporary)
+        ("ghc-unordered-containers" ,ghc-unordered-containers)))
+    (arguments
+     `(#:tests? #f ; Tests use stack, causing cyclical dependencies
+       #:cabal-revision
+        ("1"
+         "0l18mp06jjwpjbnvj548naas1xhnc46c8l0pbgzi3bm6siq5hhv6")))
+    (home-page "https://github.com/skogsbaer/HTF/")
+    (synopsis "Haskell Test Framework")
+    (description
+      "The Haskell Test Framework (HTF for short) lets you define unit tests
+with hunit, QuickCheck properties , and black box tests in an easy and
+convenient way.  HTF uses a custom preprocessor that collects test definitions
+automatically.  Furthermore, the preprocessor allows HTF to report failing
+test cases with exact file name and line number information.  Additionally,
+HTF tries to produce highly readable output for failing tests: for example, it
+colors and pretty prints expected and actual results and provides a diff
+between the two values.")
+    (license license:lgpl2.1)))
+
 (define-public ghc-http-api-data
   (package
     (name "ghc-http-api-data")
-- 
2.25.0


[-- Attachment #10: 0010-gnu-Add-ghc-cryptohash-cryptoapi.patch --]
[-- Type: text/x-patch, Size: 1742 bytes --]

From e2e615ad884876ce6170514a18a362bef23aa8b3 Mon Sep 17 00:00:00 2001
From: John Soo <jsoo1@asu.edu>
Date: Sun, 26 Jan 2020 11:14:59 -0800
Subject: [PATCH 10/34] gnu: Add ghc-cryptohash-cryptoapi.

* gnu/packages/haskell-xyz.scm (ghc-cryptohash-cryptoapi): 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 04ed30faf3..4fb0c89ec3 100644
--- a/gnu/packages/haskell-xyz.scm
+++ b/gnu/packages/haskell-xyz.scm
@@ -2565,6 +2565,33 @@ include: a plain-text mode; an option to unlit literate code files; and an
 option to turn off macro-expansion.")
     (license license:lgpl2.1)))
 
+(define-public ghc-cryptohash-cryptoapi
+  (package
+    (name "ghc-cryptohash-cryptoapi")
+    (version "0.1.4")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+              "https://hackage.haskell.org/package/cryptohash-cryptoapi"
+              "/cryptohash-cryptoapi-" version ".tar.gz"))
+        (sha256
+          (base32
+            "13h5f9pmcd0swa4asl7wzpf5lskpgjdqrmy1mqdc78gsxdj8cyki"))))
+    (build-system haskell-build-system)
+    (inputs
+      `(("ghc-memory" ,ghc-memory)
+        ("ghc-cryptonite" ,ghc-cryptonite)
+        ("ghc-crypto-api" ,ghc-crypto-api)
+        ("ghc-tagged" ,ghc-tagged)
+        ("ghc-cereal" ,ghc-cereal)))
+    (home-page
+      "https://github.com/vincenthz/hs-cryptohash-cryptoapi")
+    (synopsis "Crypto-api interfaces for cryptohash")
+    (description
+      "Crypto-api interfaces for cryptohash.")
+    (license license:bsd-3)))
+
 (define-public ghc-data-accessor
   (package
     (name "ghc-data-accessor")
-- 
2.25.0


[-- Attachment #11: 0009-gnu-Add-ghc-cipher-aes128.patch --]
[-- Type: text/x-patch, Size: 2002 bytes --]

From 06dd28d8d0da785ae94c9cf7a0832f85e4e5ab82 Mon Sep 17 00:00:00 2001
From: John Soo <jsoo1@asu.edu>
Date: Sun, 26 Jan 2020 11:14:31 -0800
Subject: [PATCH 09/34] gnu: Add ghc-cipher-aes128.

* gnu/packages/haskell-xyz.scm (ghc-cipher-aes128): New variable.
---
 gnu/packages/haskell-xyz.scm | 33 +++++++++++++++++++++++++++++++++
 1 file changed, 33 insertions(+)

diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm
index 0e97dc986e..04ed30faf3 100644
--- a/gnu/packages/haskell-xyz.scm
+++ b/gnu/packages/haskell-xyz.scm
@@ -1837,6 +1837,39 @@ representations for Haskell")
 classy-prelude.")
     (license license:expat)))
 
+(define-public ghc-cipher-aes128
+  (package
+    (name "ghc-cipher-aes128")
+    (version "0.7.0.5")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "https://hackage.haskell.org/package/cipher-aes128/cipher-aes128-"
+               version
+               ".tar.gz"))
+        (sha256
+          (base32
+            "1bafr5aa9mjfzdgc6gwapvb9g04pyh4lwhv2x2m1v3ljjglg9d1w"))))
+    (build-system haskell-build-system)
+    (inputs
+      `(("ghc-crypto-api" ,ghc-crypto-api)
+        ("ghc-tagged" ,ghc-tagged)
+        ("ghc-cereal" ,ghc-cereal)))
+    (home-page
+      "https://github.com/TomMD/cipher-aes128")
+    (synopsis
+      "AES and common modes using AES-NI when available")
+    (description
+      "An implementation of AES and common modes of operation.  It borrows
+Hanquez's C AES code (see cipher-aes) but is unique due to including
+compile-time detection of NI compiler support, a slightly more functional
+interface for GCM operations, exposure of @code{Ptr} based operations via the
+@code{.Internal} module, and build-in crypto-api support.  Cipher-aes128 was
+originally developed as \"cipher-aes plus trampolines\", which has since been
+adopted into cipher-aes.")
+    (license license:bsd-3)))
+
 (define-public ghc-clock
   (package
     (name "ghc-clock")
-- 
2.25.0


[-- Attachment #12: 0011-gnu-Add-ghc-drbg.patch --]
[-- Type: text/x-patch, Size: 2168 bytes --]

From cc75205bc4e54661ded0dfe36d7324dc8e24e33d Mon Sep 17 00:00:00 2001
From: John Soo <jsoo1@asu.edu>
Date: Sun, 26 Jan 2020 11:15:31 -0800
Subject: [PATCH 11/34] gnu: Add ghc-drbg.

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

diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm
index 4fb0c89ec3..1ff55b99ab 100644
--- a/gnu/packages/haskell-xyz.scm
+++ b/gnu/packages/haskell-xyz.scm
@@ -3322,6 +3322,47 @@ It is modeled after doctest for Python, see
 between double precision floating point and text.")
     (license license:bsd-3)))
 
+(define-public ghc-drbg
+  (package
+    (name "ghc-drbg")
+    (version "0.5.5")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "https://hackage.haskell.org/package/DRBG/DRBG-"
+               version
+               ".tar.gz"))
+        (sha256
+          (base32
+            "1z9vqc1nw0mf2sqgddcipmlkz6mckq9wnrzqqdy3rj3c90135pr1"))))
+    (build-system haskell-build-system)
+    (inputs
+      `(("ghc-cereal" ,ghc-cereal)
+        ("ghc-prettyclass" ,ghc-prettyclass)
+        ("ghc-tagged" ,ghc-tagged)
+        ("ghc-crypto-api" ,ghc-crypto-api)
+        ("ghc-cryptohash-cryptoapi" ,ghc-cryptohash-cryptoapi)
+        ("ghc-parallel" ,ghc-parallel)
+        ("ghc-cipher-aes128" ,ghc-cipher-aes128)
+        ("ghc-entropy" ,ghc-entropy)))
+    (native-inputs
+      `(("ghc-quickcheck" ,ghc-quickcheck)
+        ("ghc-crypto-api-tests" ,ghc-crypto-api-tests)
+        ("ghc-hunit" ,ghc-hunit)
+        ("ghc-test-framework" ,ghc-test-framework)
+        ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)))
+    (arguments
+     ;; FIXME Failing tests
+     `(#:tests? #f))
+    (home-page
+      "http://hackage.haskell.org/package/DRBG")
+    (synopsis "Cryptographically secure RNGs")
+    (description
+      "Deterministic random bit generator (aka RNG, PRNG) based HMACs, Hashes,
+and Ciphers.")
+    (license license:bsd-3)))
+
 (define-public ghc-dual-tree
   (package
     (name "ghc-dual-tree")
-- 
2.25.0


[-- Attachment #13: 0012-gnu-Add-ghc-rsa.patch --]
[-- Type: text/x-patch, Size: 2096 bytes --]

From 32f27a14692fd2c2c831c4c45d10009e4e923079 Mon Sep 17 00:00:00 2001
From: John Soo <jsoo1@asu.edu>
Date: Sun, 26 Jan 2020 10:55:04 -0800
Subject: [PATCH 12/34] gnu: Add ghc-rsa.

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

diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm
index 1ff55b99ab..f9478482a6 100644
--- a/gnu/packages/haskell-xyz.scm
+++ b/gnu/packages/haskell-xyz.scm
@@ -10060,6 +10060,43 @@ expose it from another module in the hierarchy.
 @end itemize")
     (license license:expat)))
 
+(define-public ghc-rsa
+  (package
+    (name "ghc-rsa")
+    (version "2.3.1")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "https://hackage.haskell.org/package/RSA/RSA-"
+               version
+               ".tar.gz"))
+        (sha256
+          (base32
+            "06k7nd7b1rdfb7891gw9bihrd9ripffbgqa14q1ryyj6vqa9r4jw"))))
+    (build-system haskell-build-system)
+    (inputs
+      `(("ghc-crypto-api" ,ghc-crypto-api)
+        ("ghc-crypto-pubkey-types" ,ghc-crypto-pubkey-types)
+        ("ghc-sha" ,ghc-sha)))
+    (native-inputs
+      `(("ghc-drbg" ,ghc-drbg)
+        ("ghc-quickcheck" ,ghc-quickcheck)
+        ("ghc-tagged" ,ghc-tagged)
+        ("ghc-test-framework" ,ghc-test-framework)
+        ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
+    (home-page
+      "http://hackage.haskell.org/package/RSA")
+    (synopsis
+      "Implementation of RSA")
+    (description
+      "This library implements the RSA encryption and signature algorithms for
+arbitrarily-sized ByteStrings.  While the implementations work, they are not
+necessarily the fastest ones on the planet.  Particularly key generation.  The
+algorithms included are based of RFC 3447, or the Public-Key Cryptography
+Standard for RSA, version 2.1 (a.k.a, PKCS#1 v2.1).")
+    (license license:bsd-3)))
+
 (define-public ghc-safe
   (package
     (name "ghc-safe")
-- 
2.25.0


[-- Attachment #14: 0015-gnu-Add-ghc-lens-aeson.patch --]
[-- Type: text/x-patch, Size: 2068 bytes --]

From 7afd36d54c8099fc5d71bccbf823c1ddc45b1ac5 Mon Sep 17 00:00:00 2001
From: John Soo <jsoo1@asu.edu>
Date: Sun, 26 Jan 2020 11:01:05 -0800
Subject: [PATCH 15/34] gnu: Add ghc-lens-aeson.

* gnu/packages/haskell-xyz.scm (ghc-lens-aeson): New variable.
---
 gnu/packages/haskell-xyz.scm | 37 ++++++++++++++++++++++++++++++++++++
 1 file changed, 37 insertions(+)

diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm
index 83120d58e4..7402f77b16 100644
--- a/gnu/packages/haskell-xyz.scm
+++ b/gnu/packages/haskell-xyz.scm
@@ -6668,6 +6668,43 @@ of getters, folds, isomorphisms, traversals, setters and lenses and their
 indexed variants.")
     (license license:bsd-3)))
 
+(define-public ghc-lens-aeson
+  (package
+    (name "ghc-lens-aeson")
+    (version "1.0.2")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "https://hackage.haskell.org/package/lens-aeson/lens-aeson-"
+               version
+               ".tar.gz"))
+        (sha256
+          (base32
+            "1k028ycmhz7mnjlrap88fqix4nmmpyy6b88m16kv77d3r8sz04a3"))))
+    (build-system haskell-build-system)
+    (inputs
+      `(("ghc-lens" ,ghc-lens)
+        ("ghc-vector" ,ghc-vector)
+        ("ghc-unordered-containers" ,ghc-unordered-containers)
+        ("ghc-attoparsec" ,ghc-attoparsec)
+        ("ghc-aeson" ,ghc-aeson)
+        ("ghc-scientific" ,ghc-scientific)))
+    (native-inputs
+      `(("ghc-doctest" ,ghc-doctest)
+        ("ghc-generic-deriving" ,ghc-generic-deriving)
+        ("ghc-semigroups" ,ghc-semigroups)
+        ("ghc-simple-reflect" ,ghc-simple-reflect)
+        ("ghc-cabal-doctest" ,ghc-cabal-doctest)))
+    (arguments
+      `(#:cabal-revision
+        ("6"
+         "1pg5v8fnlqw1krgi3d2a03a0zkjjdv5yp5f5z6q4mlb5jldz99a8")))
+    (home-page "https://github.com/lens/lens-aeson/")
+    (synopsis "Law-abiding lenses for aeson")
+    (description "Law-abiding lenses for aeson.")
+    (license license:expat)))
+
 (define-public ghc-libffi
   (package
     (name "ghc-libffi")
-- 
2.25.0


[-- Attachment #15: 0016-gnu-ghc-authenticate-oauth.patch --]
[-- Type: text/x-patch, Size: 1978 bytes --]

From a5f67113a58e18724a825196b1020bb3f8248cd7 Mon Sep 17 00:00:00 2001
From: John Soo <jsoo1@asu.edu>
Date: Sun, 26 Jan 2020 11:01:36 -0800
Subject: [PATCH 16/34] gnu: ghc-authenticate-oauth.

* gnu/packages/haskell-xyz.scm (ghc-authenticate-oauth): New variable.
---
 gnu/packages/haskell-xyz.scm | 33 +++++++++++++++++++++++++++++++++
 1 file changed, 33 insertions(+)

diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm
index 7402f77b16..e8761193a8 100644
--- a/gnu/packages/haskell-xyz.scm
+++ b/gnu/packages/haskell-xyz.scm
@@ -643,6 +643,39 @@ complicated text/binary file formats.")
 from aeson.")
     (license license:bsd-3)))
 
+(define-public ghc-authenticate-oauth
+  (package
+    (name "ghc-authenticate-oauth")
+    (version "1.6.0.1")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "https://hackage.haskell.org/package/authenticate-oauth"
+               "/authenticate-oauth-" version ".tar.gz"))
+        (sha256
+          (base32
+            "1hry1zbi7gbyfi94w9cyg6m7ii7xm68jnsph63zxdj2s4ns0ylp0"))))
+    (build-system haskell-build-system)
+    (inputs
+      `(("ghc-http-client" ,ghc-http-client)
+        ("ghc-crypto-pubkey-types" ,ghc-crypto-pubkey-types)
+        ("ghc-rsa" ,ghc-rsa)
+        ("ghc-data-default" ,ghc-data-default)
+        ("ghc-base64-bytestring" ,ghc-base64-bytestring)
+        ("ghc-sha" ,ghc-sha)
+        ("ghc-random" ,ghc-random)
+        ("ghc-http-types" ,ghc-http-types)
+        ("ghc-blaze-builder" ,ghc-blaze-builder)
+        ("ghc-transformers-compat" ,ghc-transformers-compat)))
+    (home-page
+      "https://github.com/yesodweb/authenticate")
+    (synopsis
+      "Authenticate with OAuth for Haskell web applications")
+    (description
+     "A library to authenticate with OAuth for Haskell web applications.")
+    (license license:bsd-3)))
+
 (define-public ghc-auto-update
   (package
     (name "ghc-auto-update")
-- 
2.25.0


[-- Attachment #16: 0013-gnu-Add-ghc-crypto-pubkey-types.patch --]
[-- Type: text/x-patch, Size: 1633 bytes --]

From e2e7c88f5c16785072cb7553d46508509f456ac1 Mon Sep 17 00:00:00 2001
From: John Soo <jsoo1@asu.edu>
Date: Sun, 26 Jan 2020 10:56:10 -0800
Subject: [PATCH 13/34] gnu: Add ghc-crypto-pubkey-types.

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

diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm
index f9478482a6..83120d58e4 100644
--- a/gnu/packages/haskell-xyz.scm
+++ b/gnu/packages/haskell-xyz.scm
@@ -2592,6 +2592,31 @@ option to turn off macro-expansion.")
       "Crypto-api interfaces for cryptohash.")
     (license license:bsd-3)))
 
+(define-public ghc-crypto-pubkey-types
+  (package
+    (name "ghc-crypto-pubkey-types")
+    (version "0.4.3")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "https://hackage.haskell.org/package/crypto-pubkey-types/"
+               "crypto-pubkey-types-" version ".tar.gz"))
+        (sha256
+          (base32
+            "0q0wlzjmpx536h1zcdzrpxjkvqw8abj8z0ci38138kpch4igbnby"))))
+    (build-system haskell-build-system)
+    (inputs
+      `(("ghc-asn1-types" ,ghc-asn1-types)
+        ("ghc-asn1-encoding" ,ghc-asn1-encoding)))
+    (home-page
+      "https://github.com/vincenthz/hs-crypto-pubkey-types")
+    (synopsis
+      "Generic cryptography Public keys algorithm types")
+    (description
+      "Generic cryptography public keys algorithm types")
+    (license license:bsd-3)))
+
 (define-public ghc-data-accessor
   (package
     (name "ghc-data-accessor")
-- 
2.25.0


[-- Attachment #17: 0014-gnu-Add-ghc-cabal-doctest.patch --]
[-- Type: text/x-patch, Size: 2026 bytes --]

From 234a2a8a780f368d7d39e8619221505232cb7103 Mon Sep 17 00:00:00 2001
From: John Soo <jsoo1@asu.edu>
Date: Sun, 26 Jan 2020 10:45:30 -0800
Subject: [PATCH 14/34] gnu: Add ghc-cabal-doctest.

* gnu/packages/haskell-check.scm (ghc-cabal-doctest): New variable.
---
 gnu/packages/haskell-check.scm | 28 +++++++++++++++++++++++++++-
 1 file changed, 27 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/haskell-check.scm b/gnu/packages/haskell-check.scm
index 7942f2019a..98b7617520 100644
--- a/gnu/packages/haskell-check.scm
+++ b/gnu/packages/haskell-check.scm
@@ -944,7 +944,7 @@ To get started quickly, see the examples:
     (description
      "To properly work, the @code{doctest} package needs plenty of
 configuration.  This library provides the common bits for writing custom
-@file{Setup.hs} files.")
+@code{Setup.hs} files.")
     (license license:bsd-3)))
 
 (define-public ghc-testing-type-modifiers
@@ -996,3 +996,29 @@ values (similar to @code{toEnum} but for any algebraic data type).  This
 can be used for SmallCheck-style systematic testing, QuickCheck-style
 random testing, and hybrids of the two.")
     (license license:bsd-3)))
+
+(define-public ghc-cabal-doctest
+  (package
+    (name "ghc-cabal-doctest")
+    (version "1.0.8")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "https://hackage.haskell.org/package/cabal-doctest/cabal-doctest-"
+               version
+               ".tar.gz"))
+        (sha256
+          (base32
+            "03if74imlhhk7m56nci5f1wclniwqdmwl4hl177040j1gnlac9i0"))))
+    (build-system haskell-build-system)
+    (home-page
+      "https://github.com/phadej/cabal-doctest")
+    (synopsis
+      "Setup.hs helper for doctests running")
+    (description
+      "Currently (beginning of 2017), there isn't cabal doctest command. Yet,
+to properly work doctest needs plenty of configuration.  This library provides
+the common bits for writing custom Setup.hs.")
+    (license license:bsd-3)))
+
-- 
2.25.0


[-- Attachment #18: 0017-gnu-Add-ghc-wreq.patch --]
[-- Type: text/x-patch, Size: 3842 bytes --]

From 5dd25a9b8651568901b6be6327a540d959773c03 Mon Sep 17 00:00:00 2001
From: John Soo <jsoo1@asu.edu>
Date: Sun, 26 Jan 2020 11:02:18 -0800
Subject: [PATCH 17/34] gnu: Add ghc-wreq.

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

diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm
index e8761193a8..266bba38e4 100644
--- a/gnu/packages/haskell-xyz.scm
+++ b/gnu/packages/haskell-xyz.scm
@@ -13758,6 +13758,90 @@ modernized interface.")
     (description "Word8 library to be used with @code{Data.ByteString}.")
     (license license:bsd-3)))
 
+(define-public ghc-wreq
+  (package
+    (name "ghc-wreq")
+    (version "0.5.3.2")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "https://hackage.haskell.org/package/wreq/wreq-"
+               version
+               ".tar.gz"))
+        (sha256
+          (base32
+            "16xls71aby6jqc1frhwnlfvz1iwj1ms0rw9xzif02sn84470gn36"))))
+    (build-system haskell-build-system)
+    (inputs
+      `(("ghc-psqueues" ,ghc-psqueues)
+        ("ghc-aeson" ,ghc-aeson)
+        ("ghc-attoparsec" ,ghc-attoparsec)
+        ("ghc-authenticate-oauth" ,ghc-authenticate-oauth)
+        ("ghc-base16-bytestring" ,ghc-base16-bytestring)
+        ("ghc-case-insensitive" ,ghc-case-insensitive)
+        ("ghc-cryptonite" ,ghc-cryptonite)
+        ("ghc-exceptions" ,ghc-exceptions)
+        ("ghc-hashable" ,ghc-hashable)
+        ("ghc-http-client" ,ghc-http-client)
+        ("ghc-http-client-tls" ,ghc-http-client-tls)
+        ("ghc-http-types" ,ghc-http-types)
+        ("ghc-lens" ,ghc-lens)
+        ("ghc-lens-aeson" ,ghc-lens-aeson)
+        ("ghc-memory" ,ghc-memory)
+        ("ghc-mime-types" ,ghc-mime-types)
+        ("ghc-time-locale-compat" ,ghc-time-locale-compat)
+        ("ghc-unordered-containers" ,ghc-unordered-containers)))
+    (native-inputs
+      `(("ghc-hunit" ,ghc-hunit)
+        ("ghc-quickcheck" ,ghc-quickcheck)
+        ("ghc-aeson-pretty" ,ghc-aeson-pretty)
+        ("ghc-base64-bytestring" ,ghc-base64-bytestring)
+        ("ghc-network-info" ,ghc-network-info)
+        ("ghc-snap-core" ,ghc-snap-core)
+        ("ghc-snap-server" ,ghc-snap-server)
+        ("ghc-temporary" ,ghc-temporary)
+        ("ghc-test-framework" ,ghc-test-framework)
+        ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
+        ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)
+        ("ghc-unix-compat" ,ghc-unix-compat)
+        ("ghc-uuid" ,ghc-uuid)
+        ("ghc-vector" ,ghc-vector)
+        ("ghc-doctest" ,ghc-doctest)
+        ("ghc-cabal-doctest" ,ghc-cabal-doctest)))
+    (arguments
+     `(#:tests? #f ; Tests do network IO
+       #:cabal-revision
+        ("1"
+         "0gz674sb266hv6si9l79c3bv7n2nbssl1262c24in79sk27887gb")))
+    (home-page "https://www.serpentine.com/wreq")
+    (synopsis "Easy-to-use HTTP client library")
+    (description
+      "A web client library that is designed for ease of use.
+
+Tutorial: http://www.serpentine.com/wreq/tutorial.html
+
+Features include:
+@itemize
+@item Simple but powerful `lens`-based API .
+
+@item A solid test suite, and built on reliable libraries like http-client and
+lens.
+
+@item Session handling includes connection keep-alive and pooling, and cookie
+persistence.
+
+@item Automatic response body decompression.
+@item Powerful multipart form and file upload handling.
+
+@item Support for JSON requests and responses, including navigation of
+schema-less responses.
+
+@item Basic and OAuth2 bearer authentication.
+@item Early TLS support via the tls package
+@end itemize")
+    (license license:bsd-3)))
+
 (define-public ghc-x11
   (package
     (name "ghc-x11")
-- 
2.25.0


[-- Attachment #19: 0018-gnu-Add-ghc-hspec-discover.patch --]
[-- Type: text/x-patch, Size: 1543 bytes --]

From cb9a9d6ed4ea2dc2ae6c48d3c6298481d20cd3cf Mon Sep 17 00:00:00 2001
From: John Soo <jsoo1@asu.edu>
Date: Sun, 26 Jan 2020 10:45:58 -0800
Subject: [PATCH 18/34] gnu: Add ghc-hspec-discover.

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

diff --git a/gnu/packages/haskell-check.scm b/gnu/packages/haskell-check.scm
index 98b7617520..94bf76ec3f 100644
--- a/gnu/packages/haskell-check.scm
+++ b/gnu/packages/haskell-check.scm
@@ -1022,3 +1022,27 @@ to properly work doctest needs plenty of configuration.  This library provides
 the common bits for writing custom Setup.hs.")
     (license license:bsd-3)))
 
+(define-public ghc-hspec-discover
+  (package
+    (name "ghc-hspec-discover")
+    (version "2.7.1")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "https://hackage.haskell.org/package/hspec-discover/hspec-discover-"
+               version
+               ".tar.gz"))
+        (sha256
+          (base32
+            "0r47fm94wa6qrhp8cc1zzkjrxc32rnagfn9m9ga4dm6p6ydw4c8b"))))
+    (build-system haskell-build-system)
+    (native-inputs
+      `(("ghc-quickcheck" ,ghc-quickcheck)
+        ("ghc-hspec-meta" ,ghc-hspec-meta)))
+    (home-page "http://hspec.github.io/")
+    (synopsis
+      "Automatically discover and run Hspec tests")
+    (description
+      "Automatically discover and run Hspec tests.")
+    (license license:expat)))
-- 
2.25.0


[-- Attachment #20: 0020-gnu-Add-ghc-optparse-simple.patch --]
[-- Type: text/x-patch, Size: 1634 bytes --]

From 93eafbcda51ef8da96c700cdce2acaadb388c6c1 Mon Sep 17 00:00:00 2001
From: John Soo <jsoo1@asu.edu>
Date: Sun, 26 Jan 2020 11:06:19 -0800
Subject: [PATCH 20/34] gnu: Add ghc-optparse-simple.

* gnu/packages/haskell-xyz.scm (ghc-optparse-simple): 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 9b4a106990..320583fffc 100644
--- a/gnu/packages/haskell-xyz.scm
+++ b/gnu/packages/haskell-xyz.scm
@@ -8577,6 +8577,33 @@ easily work with command-line options.")
 command line options in Haskell.")
     (license license:bsd-3)))
 
+(define-public ghc-optparse-simple
+  (package
+    (name "ghc-optparse-simple")
+    (version "0.1.1.2")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "https://hackage.haskell.org/package/optparse-simple/optparse-simple-"
+               version
+               ".tar.gz"))
+        (sha256
+          (base32
+            "1r00hkri42vyx552l8hcd1779fxiyl9w4k0pql915zsprirn8w82"))))
+    (build-system haskell-build-system)
+    (inputs
+      `(("ghc-githash" ,ghc-githash)
+        ("ghc-optparse-applicative" ,ghc-optparse-applicative)
+        ("ghc-semigroups" ,ghc-semigroups)))
+    (home-page
+      "https://github.com/fpco/optparse-simple#readme")
+    (synopsis
+      "Simple interface to optparse-applicative")
+    (description
+     "Simple interface to optparse-applicative.")
+    (license license:bsd-3)))
+
 (define-public ghc-pandoc
   (package
     (name "ghc-pandoc")
-- 
2.25.0


[-- Attachment #21: 0019-gnu-Add-ghc-optparse-generic.patch --]
[-- Type: text/x-patch, Size: 2087 bytes --]

From c8c2af7d3afdcc7d6ec396446f262204661ff08f Mon Sep 17 00:00:00 2001
From: John Soo <jsoo1@asu.edu>
Date: Sun, 26 Jan 2020 11:05:32 -0800
Subject: [PATCH 19/34] gnu: Add ghc-optparse-generic.

* gnu/packages/haskell-xyz.scm (ghc-optparse-generic): New variable.
---
 gnu/packages/haskell-xyz.scm | 36 ++++++++++++++++++++++++++++++++++++
 1 file changed, 36 insertions(+)

diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm
index 266bba38e4..9b4a106990 100644
--- a/gnu/packages/haskell-xyz.scm
+++ b/gnu/packages/haskell-xyz.scm
@@ -8512,6 +8512,42 @@ easily work with command-line options.")
 easily work with command-line options.")
     (license license:expat)))
 
+(define-public ghc-optparse-generic
+  (package
+    (name "ghc-optparse-generic")
+    (version "1.3.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "https://hackage.haskell.org/package/optparse-generic/optparse-generic-"
+               version
+               ".tar.gz"))
+        (sha256
+          (base32
+            "13rr3hq26dpmbami8vb6d1ig9ywk6jia22sp5dkp6jkfc1c9k4l0"))))
+    (build-system haskell-build-system)
+    (inputs
+      `(("ghc-system-filepath" ,ghc-system-filepath)
+        ("ghc-only" ,ghc-only)
+        ("ghc-optparse-applicative" ,ghc-optparse-applicative)
+        ("ghc-void" ,ghc-void)
+        ("ghc-semigroups" ,ghc-semigroups)
+        ("ghc-singletons" ,ghc-singletons)
+        ("ghc-tagged" ,ghc-tagged)
+        ("ghc-th-desugar" ,ghc-th-desugar)))
+    (arguments
+      `(#:cabal-revision
+        ("3"
+         "0vszcjmxywblx5z9yvrz8c6yc104jgr1nv0sbv58ansd3rkjlzfn")))
+    (home-page
+      "http://hackage.haskell.org/package/optparse-generic")
+    (synopsis
+      "Auto-generate a command-line parser for your datatype")
+    (description
+      "This library auto-generates an optparse-applicative-compatible
+@code{Parser} from any data type that derives the @code{Generic} interface.")
+    (license license:bsd-3)))
 
 (define-public ghc-optparse-applicative
   (package
-- 
2.25.0


[-- Attachment #22: 0021-gnu-Add-ghc-githash.patch --]
[-- Type: text/x-patch, Size: 2515 bytes --]

From 68296b488b5ea7cb2dab2a07701562d79269cfe7 Mon Sep 17 00:00:00 2001
From: John Soo <jsoo1@asu.edu>
Date: Sun, 26 Jan 2020 11:06:57 -0800
Subject: [PATCH 21/34] gnu: Add ghc-githash.

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

diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm
index 320583fffc..be6f1f2bd2 100644
--- a/gnu/packages/haskell-xyz.scm
+++ b/gnu/packages/haskell-xyz.scm
@@ -62,6 +62,7 @@
   #:use-module (gnu packages pcre)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages sdl)
+  #:use-module (gnu packages version-control)
   #:use-module (gnu packages web)
   #:use-module (gnu packages xml)
   #:use-module (gnu packages xorg)
@@ -4652,6 +4653,52 @@ properties for functions operating on them.")
 interfaces with ease.")
     (license license:bsd-3)))
 
+(define-public ghc-githash
+  (package
+    (name "ghc-githash")
+    (version "0.1.3.3")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "https://hackage.haskell.org/package/githash/githash-"
+               version
+               ".tar.gz"))
+        (sha256
+          (base32
+            "19xhs2nzm1myyjx3nkc3invy15c19cfx790vbcrl050n9sb330jr"))))
+    (build-system haskell-build-system)
+    (native-inputs
+      `(("git" ,git)
+        ("ghc-hspec" ,ghc-hspec)
+        ("ghc-hspec-discover" ,ghc-hspec-discover)
+        ("ghc-temporary" ,ghc-temporary)
+        ("ghc-unliftio" ,ghc-unliftio)))
+    (home-page
+      "https://github.com/snoyberg/githash#readme")
+    (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,
+--version output, or diagnostic info for more informative bug reports.
+
+Most of the complication in the GitHash module is due to the various places
+the current git hash might be stored:
+
+@itemize
+
+@item Detached HEAD: the hash is in .git/HEAD
+
+@item On a branch or tag: the hash is in a file pointed to by .git/HEAD in a
+location like .git/refs/heads
+
+@item On a branch or tag but in a repository with packed refs: the hash is in
+.git/packed-refs
+
+@end itemize")
+    (license license:bsd-3)))
+
 (define-public ghc-gitrev
   (package
     (name "ghc-gitrev")
-- 
2.25.0


[-- Attachment #23: 0022-gnu-Add-ghc-rio-prettyprint.patch --]
[-- Type: text/x-patch, Size: 1800 bytes --]

From 9784a98272a635ffc6fd80c938380d93cf274835 Mon Sep 17 00:00:00 2001
From: John Soo <jsoo1@asu.edu>
Date: Sun, 26 Jan 2020 11:07:43 -0800
Subject: [PATCH 22/34] gnu: Add ghc-rio-prettyprint.

* gnu/packages/haskell-xyz.scm (ghc-rio-prettyprint): New variable.
---
 gnu/packages/haskell-xyz.scm | 32 ++++++++++++++++++++++++++++++++
 1 file changed, 32 insertions(+)

diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm
index be6f1f2bd2..dc9da01334 100644
--- a/gnu/packages/haskell-xyz.scm
+++ b/gnu/packages/haskell-xyz.scm
@@ -10265,6 +10265,38 @@ expose it from another module in the hierarchy.
 @end itemize")
     (license license:expat)))
 
+(define-public ghc-rio-prettyprint
+  (package
+    (name "ghc-rio-prettyprint")
+    (version "0.1.0.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "https://hackage.haskell.org/package/rio-prettyprint/rio-prettyprint-"
+               version
+               ".tar.gz"))
+        (sha256
+          (base32
+            "0n8ldc73i0954c6s8jh0hibxrisp84yh5pcxv3x3q0wg4v2xvr0m"))))
+    (build-system haskell-build-system)
+    (inputs
+      `(("ghc-aeson" ,ghc-aeson)
+        ("ghc-annotated-wl-pprint" ,ghc-annotated-wl-pprint)
+        ("ghc-ansi-terminal" ,ghc-ansi-terminal)
+        ("ghc-colour" ,ghc-colour)
+        ("ghc-path" ,ghc-path)
+        ("ghc-rio" ,ghc-rio)))
+    (arguments
+      `(#:cabal-revision
+        ("2"
+         "1hvhjqy7kfk7fglx1rw8axscy0dfzqwd1564awnwdhvmf8silkkn")))
+    (home-page
+      "https://github.com/commercialhaskell/stack#readme")
+    (synopsis "Pretty-printing for RIO")
+    (description "Pretty-printing for RIO.")
+    (license license:bsd-3)))
+
 (define-public ghc-rsa
   (package
     (name "ghc-rsa")
-- 
2.25.0


[-- Attachment #24: 0023-gnu-Add-ghc-regex-applicative-text.patch --]
[-- Type: text/x-patch, Size: 1725 bytes --]

From f6c912ace640b781d511be2d53e2e0bdbdd893c0 Mon Sep 17 00:00:00 2001
From: John Soo <jsoo1@asu.edu>
Date: Sun, 26 Jan 2020 11:08:10 -0800
Subject: [PATCH 23/34] gnu: Add ghc-regex-applicative-text.

* gnu/packages/haskell-xyz.scm (ghc-regex-applicative-text): 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 dc9da01334..460569616c 100644
--- a/gnu/packages/haskell-xyz.scm
+++ b/gnu/packages/haskell-xyz.scm
@@ -9847,6 +9847,33 @@ copious examples.")
 regular expressions.  Parsers can be built using Applicative interface.")
     (license license:expat)))
 
+(define-public ghc-regex-applicative-text
+  (package
+    (name "ghc-regex-applicative-text")
+    (version "0.1.0.1")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+              "https://hackage.haskell.org/package/regex-applicative-text"
+              "/regex-applicative-text-" version ".tar.gz"))
+        (sha256
+          (base32
+            "1ng2qhk4mvpzl8fx91ig7ldv09v9aqdsvn6yl9yjapc6h0ghb4xh"))))
+    (build-system haskell-build-system)
+    (inputs
+      `(("ghc-regex-applicative" ,ghc-regex-applicative)))
+    (arguments
+      `(#:cabal-revision
+        ("4"
+         "0ykzppl1v6k70idjl73m4w161f6lsax89v1gp100y4xgipf3yijj")))
+    (home-page
+      "https://github.com/phadej/regex-applicative-text#readme")
+    (synopsis "Regex-applicative on text")
+    (description
+      "Wrapped regex-applicative primitives to work with Text.")
+    (license license:bsd-3)))
+
 (define-public ghc-regex-base
   (package
     (name "ghc-regex-base")
-- 
2.25.0


[-- Attachment #25: 0025-gnu-Add-ghc-pantry.patch --]
[-- Type: text/x-patch, Size: 4885 bytes --]

From 840d8e14bca9cb3d3cfcaaad01ae65fad7ae8038 Mon Sep 17 00:00:00 2001
From: John Soo <jsoo1@asu.edu>
Date: Sun, 26 Jan 2020 11:09:18 -0800
Subject: [PATCH 25/34] gnu: Add ghc-pantry.

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

diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm
index ab20436077..31b0578af7 100644
--- a/gnu/packages/haskell-xyz.scm
+++ b/gnu/packages/haskell-xyz.scm
@@ -8818,6 +8818,113 @@ pandoc to represent structured documents.  It also provides functions for
 building up, manipulating and serialising @code{Pandoc} structures.")
     (license license:bsd-3)))
 
+(define-public ghc-pantry
+  (package
+    (name "ghc-pantry")
+    (version "0.1.1.2")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "https://hackage.haskell.org/package/pantry/pantry-"
+               version
+               ".tar.gz"))
+        (sha256
+          (base32
+            "1m1sps9kc7y8zpba486lv5z8an3z8493zxb1qhghql6pybsprsgi"))))
+    (build-system haskell-build-system)
+    (inputs
+      `(("ghc-aeson" ,ghc-aeson)
+        ("ghc-ansi-terminal" ,ghc-ansi-terminal)
+        ("ghc-base-orphans" ,ghc-base-orphans)
+        ("ghc-base64-bytestring" ,ghc-base64-bytestring)
+        ("ghc-conduit" ,ghc-conduit)
+        ("ghc-conduit-extra" ,ghc-conduit-extra)
+        ("ghc-contravariant" ,ghc-contravariant)
+        ("ghc-cryptonite" ,ghc-cryptonite)
+        ("ghc-cryptonite-conduit" ,ghc-cryptonite-conduit)
+        ("ghc-digest" ,ghc-digest)
+        ("ghc-filelock" ,ghc-filelock)
+        ("ghc-generic-deriving" ,ghc-generic-deriving)
+        ("ghc-hackage-security" ,ghc-hackage-security)
+        ("ghc-hashable" ,ghc-hashable)
+        ("ghc-hpack" ,ghc-hpack)
+        ("ghc-hspec-discover" ,ghc-hspec-discover)
+        ("ghc-http-client" ,ghc-http-client)
+        ("ghc-http-client-tls" ,ghc-http-client-tls)
+        ("ghc-http-conduit" ,ghc-http-conduit)
+        ("ghc-http-download" ,ghc-http-download)
+        ("ghc-http-types" ,ghc-http-types)
+        ("ghc-memory" ,ghc-memory)
+        ("ghc-mono-traversable" ,ghc-mono-traversable)
+        ("ghc-network" ,ghc-network)
+        ("ghc-network-uri" ,ghc-network-uri)
+        ("ghc-path" ,ghc-path)
+        ("ghc-path-io" ,ghc-path-io)
+        ("ghc-persistent" ,ghc-persistent)
+        ("ghc-persistent-sqlite" ,ghc-persistent-sqlite)
+        ("ghc-persistent-template" ,ghc-persistent-template)
+        ("ghc-primitive" ,ghc-primitive)
+        ("ghc-resourcet" ,ghc-resourcet)
+        ("ghc-rio" ,ghc-rio)
+        ("ghc-rio-orphans" ,ghc-rio-orphans)
+        ("ghc-rio-prettyprint" ,ghc-rio-prettyprint)
+        ("ghc-safe" ,ghc-safe)
+        ("ghc-syb" ,ghc-syb)
+        ("ghc-tar-conduit" ,ghc-tar-conduit)
+        ("ghc-text-metrics" ,ghc-text-metrics)
+        ("ghc-th-lift" ,ghc-th-lift)
+        ("ghc-th-lift-instances" ,ghc-th-lift-instances)
+        ("ghc-th-orphans" ,ghc-th-orphans)
+        ("ghc-th-reify-many" ,ghc-th-reify-many)
+        ("ghc-th-utilities" ,ghc-th-utilities)
+        ("ghc-unix-compat" ,ghc-unix-compat)
+        ("ghc-unliftio" ,ghc-unliftio)
+        ("ghc-unordered-containers" ,ghc-unordered-containers)
+        ("ghc-vector" ,ghc-vector)
+        ("ghc-yaml" ,ghc-yaml)
+        ("ghc-zip-archive" ,ghc-zip-archive)))
+    (native-inputs
+      `(("ghc-quickcheck" ,ghc-quickcheck)
+        ("ghc-exceptions" ,ghc-exceptions)
+        ("ghc-hedgehog" ,ghc-hedgehog)
+        ("ghc-hspec" ,ghc-hspec)
+        ("ghc-raw-strings-qq" ,ghc-raw-strings-qq)))
+    (arguments
+     `(; Tests do network IO
+       #:tests? #f))
+    (home-page
+      "https://github.com/commercialhaskell/pantry#readme")
+    (synopsis
+      "Content addressable Haskell package management")
+    (description
+     "Content addressable Haskell package management, providing for secure,
+reproducible acquisition of Haskell package contents and metadata.
+
+What is Pantry
+
+@itemize
+
+@item A Haskell library, command line executable, storage specification, and
+network protocol
+
+@item Intended for content-addressable storage of Haskell packages
+@item Allows non-centralized package storage
+@item Primarily for use by Stackage and Stack, hopefully other tools as well
+@end itemize
+
+Goals
+
+@itemize
+@item Efficient, distributed package storage for Haskell
+@item Superset of existing storage mechanisms
+@item Security via content addressable storage
+@item Allow more Stackage-style snapshots to exist
+@item Allow authors to bypass Hackage for uploads
+@item Allow Stackage to create forks of packages on Hackage
+@end itemize")
+    (license license:bsd-3)))
+
 (define-public ghc-parallel
   (package
     (name "ghc-parallel")
-- 
2.25.0


[-- Attachment #26: 0024-gnu-Add-ghc-project-template.patch --]
[-- Type: text/x-patch, Size: 1961 bytes --]

From 55b1aa71fb4a18852dc7148ed84c90ed0d9cf5c1 Mon Sep 17 00:00:00 2001
From: John Soo <jsoo1@asu.edu>
Date: Sun, 26 Jan 2020 11:08:48 -0800
Subject: [PATCH 24/34] gnu: Add ghc-project-template.

* gnu/packages/haskell-xyz.scm (ghc-project-template): New variable.
---
 gnu/packages/haskell-xyz.scm | 33 +++++++++++++++++++++++++++++++++
 1 file changed, 33 insertions(+)

diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm
index 460569616c..ab20436077 100644
--- a/gnu/packages/haskell-xyz.scm
+++ b/gnu/packages/haskell-xyz.scm
@@ -9486,6 +9486,39 @@ API.")
     (description "This library provides profunctors for Haskell.")
     (license license:bsd-3)))
 
+(define-public ghc-project-template
+  (package
+    (name "ghc-project-template")
+    (version "0.2.0.1")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "https://hackage.haskell.org/package/project-template/project-template-"
+               version
+               ".tar.gz"))
+        (sha256
+          (base32
+            "1p69ww4rhah2qxragl615wl4a6mk4x9w09am8knmz3s4lxpljlpb"))))
+    (build-system haskell-build-system)
+    (inputs
+      `(("ghc-base64-bytestring" ,ghc-base64-bytestring)
+        ("ghc-conduit" ,ghc-conduit)
+        ("ghc-conduit-extra" ,ghc-conduit-extra)
+        ("ghc-hspec-discover" ,ghc-hspec-discover)
+        ("ghc-resourcet" ,ghc-resourcet)))
+    (native-inputs
+      `(("ghc-hspec" ,ghc-hspec)
+        ("ghc-quickcheck" ,ghc-quickcheck)))
+    (arguments
+      `(#:cabal-revision
+        ("1"
+         "0lq3sqnq0nr0gbvgzp0lqdl3j3mqdmdlf8xsw0j3pjh581xj3k0a")))
+    (home-page "https://github.com/fpco/haskell-ide")
+    (synopsis "Specify Haskell project templates and generate files")
+    (description "Specify Haskell project templates and generate files.")
+    (license license:bsd-3)))
+
 (define-public ghc-protolude
   (package
     (name "ghc-protolude")
-- 
2.25.0


[-- Attachment #27: 0028-gnu-Add-ghc-mustache.patch --]
[-- Type: text/x-patch, Size: 2310 bytes --]

From ff5fec936fa0bd6c8cc2e28c8757e4f63952722b Mon Sep 17 00:00:00 2001
From: John Soo <jsoo1@asu.edu>
Date: Sun, 26 Jan 2020 11:10:38 -0800
Subject: [PATCH 28/34] gnu: Add ghc-mustache.

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

diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm
index b9bdc22d45..a86fb5d8cc 100644
--- a/gnu/packages/haskell-xyz.scm
+++ b/gnu/packages/haskell-xyz.scm
@@ -8007,6 +8007,52 @@ implementation is pure Haskell, so it might be a bit slower than a C FFI
 binding.")
     (license license:bsd-3)))
 
+(define-public ghc-mustache
+  (package
+    (name "ghc-mustache")
+    (version "2.3.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "https://hackage.haskell.org/package/mustache/mustache-"
+               version
+               ".tar.gz"))
+        (sha256
+          (base32
+            "1q3vadcvv2pxg6rpp92jq5zy784jxphdfpf6xn9y6wg9g3jn7201"))))
+    (build-system haskell-build-system)
+    (inputs
+      `(("ghc-aeson" ,ghc-aeson)
+        ("ghc-either" ,ghc-either)
+        ("ghc-unordered-containers" ,ghc-unordered-containers)
+        ("ghc-vector" ,ghc-vector)
+        ("ghc-scientific" ,ghc-scientific)
+        ("ghc-th-lift" ,ghc-th-lift)
+        ("ghc-yaml" ,ghc-yaml)
+        ("ghc-cmdargs" ,ghc-cmdargs)))
+    (native-inputs
+      `(("ghc-hspec" ,ghc-hspec)
+        ("ghc-base-unicode-symbols" ,ghc-base-unicode-symbols)
+        ("ghc-wreq" ,ghc-wreq)
+        ("ghc-zlib" ,ghc-zlib)
+        ("ghc-tar" ,ghc-tar)
+        ("ghc-lens" ,ghc-lens)
+        ("ghc-hspec" ,ghc-hspec)
+        ("ghc-temporary" ,ghc-temporary)))
+    (arguments
+     ;; Tests do network IO
+     `(#:tests? #f))
+    (home-page
+      "https://github.com/JustusAdam/mustache")
+    (synopsis "Mustache template parser library")
+    (description
+      "Allows parsing and rendering template files with mustache markup.  See
+the mustache language reference http://mustache.github.io/mustache.5.html.
+
+Implements the mustache spec version 1.1.3.")
+    (license license:bsd-3)))
+
 (define-public ghc-mwc-random
   (package
     (name "ghc-mwc-random")
-- 
2.25.0


[-- Attachment #28: 0027-gnu-Add-ghc-neat-interpolation.patch --]
[-- Type: text/x-patch, Size: 1867 bytes --]

From e15581c2f8a252e1bfe839dbde452c152e9e640c Mon Sep 17 00:00:00 2001
From: John Soo <jsoo1@asu.edu>
Date: Sun, 26 Jan 2020 11:10:09 -0800
Subject: [PATCH 27/34] gnu: Add ghc-neat-interpolation.

* gnu/packages/haskell-xyz.scm (ghc-neat-interpolation): New variable.
---
 gnu/packages/haskell-xyz.scm | 29 +++++++++++++++++++++++++++++
 1 file changed, 29 insertions(+)

diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm
index 8616b58ec8..b9bdc22d45 100644
--- a/gnu/packages/haskell-xyz.scm
+++ b/gnu/packages/haskell-xyz.scm
@@ -8114,6 +8114,35 @@ with pseudo-graphical interfaces.  This package is a nice, modern binding to GNU
 ncurses.")
     (license license:gpl3)))
 
+(define-public ghc-neat-interpolation
+  (package
+    (name "ghc-neat-interpolation")
+    (version "0.3.2.4")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+              "https://hackage.haskell.org/package/neat-interpolation"
+              "/neat-interpolation-" version ".tar.gz"))
+        (sha256
+          (base32
+            "0lhpjckwhzlvx4cdhrwprwb85vc7hc44ybvk5nswgn7z73cp0wyy"))))
+    (build-system haskell-build-system)
+    (inputs
+      `(("ghc-megaparsec" ,ghc-megaparsec)
+        ("ghc-base-prelude" ,ghc-base-prelude)))
+    (native-inputs `(("ghc-htf" ,ghc-htf)))
+    (home-page
+      "https://github.com/nikita-volkov/neat-interpolation")
+    (synopsis
+      "Quasiquoter for neat and simple multiline text interpolation")
+    (description
+      "A quasiquoter for producing Text values with support for a simple
+interpolation of input values.  It removes the excessive indentation from the
+input and accurately manages the indentation of all lines of the interpolated
+variables.")
+    (license license:expat)))
+
 (define-public ghc-network
   (package
     (name "ghc-network")
-- 
2.25.0


[-- Attachment #29: 0026-gnu-Add-ghc-open-browser.patch --]
[-- Type: text/x-patch, Size: 1501 bytes --]

From ea8ffb012ca3f35771fabe7dfd9f21a0a78d44b6 Mon Sep 17 00:00:00 2001
From: John Soo <jsoo1@asu.edu>
Date: Sun, 26 Jan 2020 11:09:42 -0800
Subject: [PATCH 26/34] gnu: Add ghc-open-browser.

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

diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm
index 31b0578af7..8616b58ec8 100644
--- a/gnu/packages/haskell-xyz.scm
+++ b/gnu/packages/haskell-xyz.scm
@@ -8413,6 +8413,29 @@ old @code{time} library.  For new projects, the newer
 Haskell for attaching typeclass instances.")
     (license license:bsd-3)))
 
+(define-public ghc-open-browser
+  (package
+    (name "ghc-open-browser")
+    (version "0.2.1.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "https://hackage.haskell.org/package/open-browser/open-browser-"
+               version
+               ".tar.gz"))
+        (sha256
+          (base32
+            "0rna8ir2cfp8gk0rd2q60an51jxc08lx4gl0liw8wwqgh1ijxv8b"))))
+    (build-system haskell-build-system)
+    (home-page
+      "https://github.com/rightfold/open-browser")
+    (synopsis "Open a web browser from Haskell")
+    (description
+      "Open a web browser from Haskell.  Currently BSD, Linux, OS X and Windows
+are supported.")
+    (license license:bsd-3)))
+
 (define-public ghc-opengl
   (package
     (name "ghc-opengl")
-- 
2.25.0


[-- Attachment #30: 0029-gnu-Add-ghc-mintty.patch --]
[-- Type: text/x-patch, Size: 2299 bytes --]

From 816a12bd25101f85d12b52acc4e24a751e64baed Mon Sep 17 00:00:00 2001
From: John Soo <jsoo1@asu.edu>
Date: Sun, 26 Jan 2020 11:11:02 -0800
Subject: [PATCH 29/34] gnu: Add ghc-mintty.

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

diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm
index a86fb5d8cc..2a22f4daaf 100644
--- a/gnu/packages/haskell-xyz.scm
+++ b/gnu/packages/haskell-xyz.scm
@@ -7589,6 +7589,41 @@ generated lenses are fully compatible with ones generated by lens (and can be
 used both from lens and microlens).")
     (license license:bsd-3)))
 
+(define-public ghc-mintty
+  (package
+    (name "ghc-mintty")
+    (version "0.1.2")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "https://hackage.haskell.org/package/mintty/mintty-"
+               version
+               ".tar.gz"))
+        (sha256
+          (base32
+            "1njhz7wjmsk5pbr7gfkl95k50npkmm0iyxp3j93bbsg4rmxzg2kw"))))
+    (build-system haskell-build-system)
+    (home-page
+      "https://github.com/RyanGlScott/mintty")
+    (synopsis
+      "Reliably detect the presence of a MinTTY console on Windows")
+    (description
+      "MinTTY is a Windows-specific terminal emulator for the widely used
+Cygwin and MSYS projects, which provide Unix-like environments for Windows.
+MinTTY consoles behave differently from native Windows consoles (such as
+cmd.exe or PowerShell) in many ways, and in some cases, these differences make
+it necessary to treat MinTTY consoles differently in code.
+
+The mintty library provides a simple way to detect if your code in running in
+a MinTTY console on Windows.  It exports @code{isMinTTY}, which does the right
+thing 90% of the time (by checking if standard error is attached to MinTTY),
+and it also exports @code{isMinTTYHandle} for the other 10% of the time (when
+you want to check is some arbitrary handle is attached to MinTTY).  As you
+might expect, both of these functions will simply return @code{False} on any
+non-Windows operating system.")
+    (license license:bsd-3)))
+
 (define-public ghc-missingh
   (package
     (name "ghc-missingh")
-- 
2.25.0


[-- Attachment #31: 0031-gnu-Add-ghc-hi-file-parser.patch --]
[-- Type: text/x-patch, Size: 2172 bytes --]

From da1ad6132b428d2e6ca4ac7b2291f6c25095046c Mon Sep 17 00:00:00 2001
From: John Soo <jsoo1@asu.edu>
Date: Sun, 26 Jan 2020 11:11:51 -0800
Subject: [PATCH 31/34] gnu: Add ghc-hi-file-parser.

* gnu/packages/haskell-xyz.scm (ghc-hi-file-parser): New variable.
---
 gnu/packages/haskell-xyz.scm | 41 ++++++++++++++++++++++++++++++++++++
 1 file changed, 41 insertions(+)

diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm
index 6dd0a6affe..499775281d 100644
--- a/gnu/packages/haskell-xyz.scm
+++ b/gnu/packages/haskell-xyz.scm
@@ -5605,6 +5605,47 @@ feature, allowing applications to subscribe to notifications when a file is
 accessed or modified.")
     (license license:bsd-3)))
 
+(define-public ghc-hi-file-parser
+  (package
+    (name "ghc-hi-file-parser")
+    (version "0.1.0.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "https://hackage.haskell.org/package/hi-file-parser/hi-file-parser-"
+               version
+               ".tar.gz"))
+        (sha256
+          (base32
+            "09gs26z0jvkkhb1r43gj27pq0k5fc4i6fpr59g397vz4sm86gb2l"))))
+    (build-system haskell-build-system)
+    (inputs
+     `(("ghc-hspec-discover" ,ghc-hspec-discover)
+       ("ghc-rio" ,ghc-rio)
+       ("ghc-vector" ,ghc-vector)))
+    (native-inputs `(("ghc-hspec" ,ghc-hspec)))
+    (arguments
+      `(#:cabal-revision
+        ("2"
+         "1bm98h0v4wf9vmdng15c2r48yz06118jxlprsnk0z3jw0d95ij9z")))
+    (home-page
+      "https://github.com/commercialhaskell/stack#readme")
+    (synopsis "Parser for GHC's hi files")
+    (description
+     "Provide data types and functions for parsing the binary .hi files produced by
+GHC.  Intended to support multiple versions of GHC, so that tooling can:
+
+@itemize
+@item Support multiple versions of GHC
+@item Avoid linking against the ghc library
+@item Not need to use ghc's textual dump file format.
+@end itemize
+
+Note that this code was written for Stack's usage initially, though it is
+intended to be general purpose.")
+    (license license:bsd-3)))
+
 (define-public ghc-hmatrix
   (package
     (name "ghc-hmatrix")
-- 
2.25.0


[-- Attachment #32: 0033-gnu-Add-ghc-cryptonite-conduit.patch --]
[-- Type: text/x-patch, Size: 2250 bytes --]

From bac6335426d44538510661c371d9de9705a1f07a Mon Sep 17 00:00:00 2001
From: John Soo <jsoo1@asu.edu>
Date: Sun, 26 Jan 2020 11:12:44 -0800
Subject: [PATCH 33/34] gnu: Add ghc-cryptonite-conduit.

* gnu/packages/haskell-xyz.scm (ghc-cryptonite-conduit): New variable.
---
 gnu/packages/haskell-xyz.scm | 41 ++++++++++++++++++++++++++++++++++++
 1 file changed, 41 insertions(+)

diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm
index 0f8efee977..508a6933ba 100644
--- a/gnu/packages/haskell-xyz.scm
+++ b/gnu/packages/haskell-xyz.scm
@@ -2651,6 +2651,47 @@ option to turn off macro-expansion.")
       "Generic cryptography public keys algorithm types")
     (license license:bsd-3)))
 
+(define-public ghc-cryptonite-conduit
+  (package
+    (name "ghc-cryptonite-conduit")
+    (version "0.2.2")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+              "https://hackage.haskell.org/package/cryptonite-conduit/"
+              "cryptonite-conduit-" version ".tar.gz"))
+        (sha256
+          (base32
+            "1bldcmda4xh52mw1wfrjljv8crhw3al7v7kv1j0vidvr7ymnjpbh"))))
+    (build-system haskell-build-system)
+    (inputs
+      `(("ghc-conduit" ,ghc-conduit)
+        ("ghc-conduit-extra" ,ghc-conduit-extra)
+        ("ghc-cryptonite" ,ghc-cryptonite)
+        ("ghc-exceptions" ,ghc-exceptions)
+        ("ghc-memory" ,ghc-memory)
+        ("ghc-resourcet" ,ghc-resourcet)))
+    (native-inputs
+      `(("ghc-conduit-combinators" ,ghc-conduit-combinators)
+        ("ghc-tasty" ,ghc-tasty)
+        ("ghc-tasty-hunit" ,ghc-tasty-hunit)
+        ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
+    (arguments
+      `(#:cabal-revision
+        ("1"
+         "1hh2nzfz4qpxgivfilgk4ll416lph8b2fdkzpzrmqfjglivydfmz")))
+    (home-page
+      "https://github.com/haskell-crypto/cryptonite-conduit")
+    (synopsis "Cryptonite conduit")
+    (description
+      "Conduit bridge for cryptonite.
+
+For now only provide a conduit version for hash and hmac, but with
+contribution, this could provide cipher conduits too, and probably other
+things.")
+    (license license:bsd-3)))
+
 (define-public ghc-data-accessor
   (package
     (name "ghc-data-accessor")
-- 
2.25.0


[-- Attachment #33: 0034-gnu-Add-stack.patch --]
[-- Type: text/x-patch, Size: 5157 bytes --]

From 194f169cdb48f0776900d1f0d01eac0e7f53da2f Mon Sep 17 00:00:00 2001
From: John Soo <jsoo1@asu.edu>
Date: Sun, 26 Jan 2020 11:19:47 -0800
Subject: [PATCH 34/34] gnu: Add stack.

* gnu/packages/haskell-xyz.scm (stack): New variable.
---
 gnu/packages/haskell-apps.scm | 109 ++++++++++++++++++++++++++++++++++
 1 file changed, 109 insertions(+)

diff --git a/gnu/packages/haskell-apps.scm b/gnu/packages/haskell-apps.scm
index 46cf754ddb..1318a16f50 100644
--- a/gnu/packages/haskell-apps.scm
+++ b/gnu/packages/haskell-apps.scm
@@ -691,6 +691,115 @@ advanced user's otherwise working script to fail under future circumstances.
 @end enumerate")
     (license license:gpl3+)))
 
+(define-public stack
+  (package
+    (name "stack")
+    (version "2.1.3.1")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "https://hackage.haskell.org/package/stack/stack-"
+               version
+               ".tar.gz"))
+        (sha256
+          (base32
+            "1q2nagnc24fvyj3hwnpgyp3rqhxswhscyw4pw2dazqx34ad3d0zr"))))
+    (build-system haskell-build-system)
+    (inputs
+      `(("ghc-aeson" ,ghc-aeson)
+        ("ghc-annotated-wl-pprint" ,ghc-annotated-wl-pprint)
+        ("ghc-ansi-terminal" ,ghc-ansi-terminal)
+        ("ghc-async" ,ghc-async)
+        ("ghc-attoparsec" ,ghc-attoparsec)
+        ("ghc-base64-bytestring" ,ghc-base64-bytestring)
+        ("ghc-colour" ,ghc-colour)
+        ("ghc-conduit" ,ghc-conduit)
+        ("ghc-conduit-extra" ,ghc-conduit-extra)
+        ("ghc-cryptonite" ,ghc-cryptonite)
+        ("ghc-cryptonite-conduit" ,ghc-cryptonite-conduit)
+        ("ghc-echo" ,ghc-echo)
+        ("ghc-exceptions" ,ghc-exceptions)
+        ("ghc-extra" ,ghc-extra)
+        ("ghc-file-embed" ,ghc-file-embed)
+        ("ghc-filelock" ,ghc-filelock)
+        ("ghc-fsnotify" ,ghc-fsnotify)
+        ("ghc-generic-deriving" ,ghc-generic-deriving)
+        ("ghc-hackage-security" ,ghc-hackage-security)
+        ("ghc-hashable" ,ghc-hashable)
+        ("ghc-hi-file-parser" ,ghc-hi-file-parser)
+        ("ghc-hpack" ,ghc-hpack)
+        ("ghc-http-client" ,ghc-http-client)
+        ("ghc-http-client-tls" ,ghc-http-client-tls)
+        ("ghc-http-conduit" ,ghc-http-conduit)
+        ("ghc-http-download" ,ghc-http-download)
+        ("ghc-http-types" ,ghc-http-types)
+        ("ghc-memory" ,ghc-memory)
+        ("ghc-microlens" ,ghc-microlens)
+        ("ghc-mintty" ,ghc-mintty)
+        ("ghc-mono-traversable" ,ghc-mono-traversable)
+        ("ghc-mustache" ,ghc-mustache)
+        ("ghc-neat-interpolation" ,ghc-neat-interpolation)
+        ("ghc-network-uri" ,ghc-network-uri)
+        ("ghc-open-browser" ,ghc-open-browser)
+        ("ghc-optparse-applicative" ,ghc-optparse-applicative)
+        ("ghc-pantry" ,ghc-pantry)
+        ("ghc-path" ,ghc-path)
+        ("ghc-path-io" ,ghc-path-io)
+        ("ghc-persistent" ,ghc-persistent)
+        ("ghc-persistent-sqlite" ,ghc-persistent-sqlite)
+        ("ghc-persistent-template" ,ghc-persistent-template)
+        ("ghc-primitive" ,ghc-primitive)
+        ("ghc-project-template" ,ghc-project-template)
+        ("ghc-regex-applicative-text" ,ghc-regex-applicative-text)
+        ("ghc-resource-pool" ,ghc-resource-pool)
+        ("ghc-resourcet" ,ghc-resourcet)
+        ("ghc-retry" ,ghc-retry)
+        ("ghc-rio" ,ghc-rio)
+        ("ghc-rio-prettyprint" ,ghc-rio-prettyprint)
+        ("ghc-semigroups" ,ghc-semigroups)
+        ("ghc-split" ,ghc-split)
+        ("ghc-streaming-commons" ,ghc-streaming-commons)
+        ("ghc-tar" ,ghc-tar)
+        ("ghc-temporary" ,ghc-temporary)
+        ("ghc-terminal-size" ,ghc-terminal-size)
+        ("ghc-text-metrics" ,ghc-text-metrics)
+        ("ghc-th-reify-many" ,ghc-th-reify-many)
+        ("ghc-tls" ,ghc-tls)
+        ("ghc-typed-process" ,ghc-typed-process)
+        ("ghc-unicode-transforms" ,ghc-unicode-transforms)
+        ("ghc-unix-compat" ,ghc-unix-compat)
+        ("ghc-unliftio" ,ghc-unliftio)
+        ("ghc-unordered-containers" ,ghc-unordered-containers)
+        ("ghc-vector" ,ghc-vector)
+        ("ghc-yaml" ,ghc-yaml)
+        ("ghc-zip-archive" ,ghc-zip-archive)
+        ("ghc-zlib" ,ghc-zlib)
+        ("ghc-githash" ,ghc-githash)
+        ("ghc-optparse-simple" ,ghc-optparse-simple)
+        ("ghc-hspec" ,ghc-hspec)
+        ("ghc-optparse-generic" ,ghc-optparse-generic)))
+    (native-inputs
+      `(("ghc-quickcheck" ,ghc-quickcheck)
+        ("ghc-raw-strings-qq" ,ghc-raw-strings-qq)
+        ("ghc-smallcheck" ,ghc-smallcheck)))
+    (home-page "http://haskellstack.org")
+    (synopsis "Haskell Tool Stack")
+    (description
+      "Stack is a cross-platform program for developing Haskell projects.  It
+is aimed at Haskellers both new and experienced.
+
+It features:
+
+@itemize
+@item Installing GHC automatically, in an isolated location.
+@item Installing packages needed for your project.
+@item Building your project.
+@item Testing your project.
+@item Benchmarking your project.
+@end itemize")
+    (license license:bsd-3)))
+
 (define-public stylish-haskell
   (package
     (name "stylish-haskell")
-- 
2.25.0


[-- Attachment #34: 0030-gnu-Add-ghc-http-download.patch --]
[-- Type: text/x-patch, Size: 2430 bytes --]

From 33d7987975c9412fd1fb20076cbdecf34313c027 Mon Sep 17 00:00:00 2001
From: John Soo <jsoo1@asu.edu>
Date: Sun, 26 Jan 2020 11:11:22 -0800
Subject: [PATCH 30/34] gnu: Add ghc-http-download.

* gnu/packages/haskell-xyz.scm (ghc-http-download): New variable.
---
 gnu/packages/haskell-xyz.scm | 47 ++++++++++++++++++++++++++++++++++++
 1 file changed, 47 insertions(+)

diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm
index 2a22f4daaf..6dd0a6affe 100644
--- a/gnu/packages/haskell-xyz.scm
+++ b/gnu/packages/haskell-xyz.scm
@@ -6077,6 +6077,53 @@ query parameters")
 Haskell data types to and from HTTP API data.")
     (license license:bsd-3)))
 
+(define-public ghc-http-download
+  (package
+    (name "ghc-http-download")
+    (version "0.1.0.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "https://hackage.haskell.org/package/http-download/http-download-"
+               version
+               ".tar.gz"))
+        (sha256
+          (base32
+            "0wip7l6cls734ag306s5l0683qqh273b3lk5ibig66racmysjqyb"))))
+    (build-system haskell-build-system)
+    (inputs
+      `(("ghc-base64-bytestring" ,ghc-base64-bytestring)
+        ("ghc-conduit" ,ghc-conduit)
+        ("ghc-conduit-extra" ,ghc-conduit-extra)
+        ("ghc-cryptonite" ,ghc-cryptonite)
+        ("ghc-cryptonite-conduit" ,ghc-cryptonite-conduit)
+        ("ghc-exceptions" ,ghc-exceptions)
+        ("ghc-http-client" ,ghc-http-client)
+        ("ghc-http-conduit" ,ghc-http-conduit)
+        ("ghc-http-types" ,ghc-http-types)
+        ("ghc-memory" ,ghc-memory)
+        ("ghc-path" ,ghc-path)
+        ("ghc-path-io" ,ghc-path-io)
+        ("ghc-retry" ,ghc-retry)
+        ("ghc-rio" ,ghc-rio)
+        ("ghc-rio-prettyprint" ,ghc-rio-prettyprint)))
+    (native-inputs
+      `(("ghc-hspec" ,ghc-hspec)
+        ("ghc-hspec-discover" ,ghc-hspec-discover)))
+    (arguments
+     `(#:tests? #f ; Tests do network IO
+       #:cabal-revision
+        ("4"
+         "1s20zjh52whs6hfhr90zyyy7g78zv1pw9hry1nwlzdv4hg97cbdh")))
+    (home-page
+      "https://github.com/commercialhaskell/stack#readme")
+    (synopsis "Verified downloads with retries")
+    (description
+     "Higher level HTTP download APIs include verification of content and
+retries.")
+    (license license:bsd-3)))
+
 (define-public ghc-ieee754
   (package
     (name "ghc-ieee754")
-- 
2.25.0


[-- Attachment #35: 0032-gnu-Add-ghc-filelock.patch --]
[-- Type: text/x-patch, Size: 1578 bytes --]

From 98334694e3c5a310e4c4a1b0a421c6bfd36572c8 Mon Sep 17 00:00:00 2001
From: John Soo <jsoo1@asu.edu>
Date: Sun, 26 Jan 2020 11:12:14 -0800
Subject: [PATCH 32/34] gnu: Add ghc-filelock.

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

diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm
index 499775281d..0f8efee977 100644
--- a/gnu/packages/haskell-xyz.scm
+++ b/gnu/packages/haskell-xyz.scm
@@ -4200,6 +4200,31 @@ the files in a directory, and turn them into @code{(path, bytestring)} pairs
 embedded in your Haskell code.")
     (license license:bsd-3)))
 
+(define-public ghc-filelock
+  (package
+    (name "ghc-filelock")
+    (version "0.1.1.3")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "https://hackage.haskell.org/package/filelock/filelock-"
+               version
+               ".tar.gz"))
+        (sha256
+          (base32
+            "04qimhz78jjndk686dblkx06l9jscq2q9gyr014a4pbfj4iljgi5"))))
+    (build-system haskell-build-system)
+    (native-inputs `(("ghc-async" ,ghc-async)))
+    (home-page
+      "http://github.com/takano-akio/filelock")
+    (synopsis
+      "Portable interface to file locking (flock / LockFileEx)")
+    (description
+      "This package provides an interface to Windows and Unix file locking
+functionalities.")
+    (license license:public-domain)))
+
 (define-public ghc-filemanip
   (package
     (name "ghc-filemanip")
-- 
2.25.0


^ permalink raw reply related	[flat|nested] 17+ messages in thread

end of thread, other threads:[~2021-01-01 18:19 UTC | newest]

Thread overview: 17+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-01-27 14:56 [bug#39309] .[PATCH] WIP gnu: add stack John Soo
2020-01-29 15:17 ` [bug#39309] [PATCH WIP] " John Soo
2020-02-07 17:32   ` John Soo
2020-02-10  6:06     ` Timothy Sample
2020-02-13 13:52       ` John Soo
2020-02-13 13:59         ` John Soo
2020-02-13 17:36           ` John Soo
2020-02-13 22:59             ` Timothy Sample
2020-02-16  1:56               ` Timothy Sample
2020-02-19 14:56                 ` John Soo
2020-02-20  4:55                   ` Timothy Sample
2020-02-22 15:34                     ` Timothy Sample
2020-03-11  9:17                       ` John Soo
2020-03-11 14:18                         ` Timothy Sample
2020-03-13 15:05                           ` John Soo
2021-01-01 18:04                             ` [bug#39309] .[PATCH] WIP " John Soo
2021-01-01 18:18                               ` John Soo

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).