add postgrest

  • Open
  • quality assurance status badge
Details
One participant
  • Robert Vollmert
Owner
unassigned
Submitted by
Robert Vollmert
Severity
normal
R
R
Robert Vollmert wrote on 29 Nov 2019 12:35
(address . guix-patches@gnu.org)
F202A9BB-F866-4932-BF1C-8D2812803B7C@vllmrt.net
Here’s a set of patches to package postgrest http://postgrest.org/en/v6.0/

I’ve been using it packaged like this successfully for a while, and thought
I’d leave the patches here even though they’re not fully polished. (That is,
I didn’t go over the descriptions carefully; everything else should be fine.)
R
R
Robert Vollmert wrote on 29 Nov 2019 12:37
[PATCH 05/49] gnu: Add ghc-data-checked.
(address . 38423@debbugs.gnu.org)(name . Robert Vollmert)(address . rob@vllmrt.net)
20191129113751.82405-5-rob@vllmrt.net
* gnu/packages/haskell-xyz.scm (ghc-data-checked): New package.
---
gnu/packages/haskell-xyz.scm | 24 ++++++++++++++++++++++++
1 file changed, 24 insertions(+)

Toggle diff (34 lines)
diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm
index 708159adc6..612bd8100f 100644
--- a/gnu/packages/haskell-xyz.scm
+++ b/gnu/packages/haskell-xyz.scm
@@ -13281,3 +13281,27 @@ zero-copy slicing (thereby saving 2 words). Consequently, the
memory footprint of a (boxed) 'ShortText' value is 4 words
(2 words when unboxed) plus the length of the UTF-8 encoded payload.")
(license license:bsd-3)))
+
+(define-public ghc-data-checked
+ (package
+ (name "ghc-data-checked")
+ (version "0.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://hackage.haskell.org/package/data-checked/data-checked-"
+ version
+ ".tar.gz"))
+ (sha256
+ (base32
+ "0xjn7iqlsgi51h8gz4x40kc2qb5lwf6nw5kjwgkck1w5gjfd11yw"))))
+ (build-system haskell-build-system)
+ (home-page "https://github.com/mvv/data-checked")
+ (synopsis
+ "Type-indexed runtime-checked properties")
+ (description
+ "This package provides a (phantom) type-indexed newtype
+evidence-wrapper for values that are checked to satisfy the
+property associated with the type.")
+ (license license:bsd-3)))
--
2.21.0 (Apple Git-122.2)
R
R
Robert Vollmert wrote on 29 Nov 2019 12:37
[PATCH 06/49] gnu: Add ghc-deferred-folds.
(address . 38423@debbugs.gnu.org)(name . Robert Vollmert)(address . rob@vllmrt.net)
20191129113751.82405-6-rob@vllmrt.net
* gnu/packages/haskell-xyz.scm (ghc-deferred-folds): New package.
---
gnu/packages/haskell-xyz.scm | 37 ++++++++++++++++++++++++++++++++++++
1 file changed, 37 insertions(+)

Toggle diff (47 lines)
diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm
index 612bd8100f..3946129173 100644
--- a/gnu/packages/haskell-xyz.scm
+++ b/gnu/packages/haskell-xyz.scm
@@ -13305,3 +13305,40 @@ memory footprint of a (boxed) 'ShortText' value is 4 words
evidence-wrapper for values that are checked to satisfy the
property associated with the type.")
(license license:bsd-3)))
+
+(define-public ghc-deferred-folds
+ (package
+ (name "ghc-deferred-folds")
+ (version "0.9.10.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://hackage.haskell.org/package/deferred-folds/deferred-folds-"
+ version
+ ".tar.gz"))
+ (sha256
+ (base32
+ "15lwcc7i7wmi1gkkmak677qw0fnz4a4ldnv842xaimfi64753shv"))))
+ (build-system haskell-build-system)
+ (inputs
+ `(("ghc-foldl" ,ghc-foldl)
+ ("ghc-hashable" ,ghc-hashable)
+ ("ghc-primitive" ,ghc-primitive)
+ ("ghc-unordered-containers"
+ ,ghc-unordered-containers)
+ ("ghc-vector" ,ghc-vector)))
+ (native-inputs
+ `(("ghc-quickcheck" ,ghc-quickcheck)
+ ("ghc-quickcheck-instances"
+ ,ghc-quickcheck-instances)
+ ("ghc-rerebase" ,ghc-rerebase)
+ ("ghc-tasty" ,ghc-tasty)
+ ("ghc-tasty-hunit" ,ghc-tasty-hunit)
+ ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
+ (home-page
+ "https://github.com/metrix-ai/deferred-folds")
+ (synopsis "Abstractions over deferred folds")
+ (description
+ "Abstractions over deferred folds.")
+ (license license:expat)))
--
2.21.0 (Apple Git-122.2)
R
R
Robert Vollmert wrote on 29 Nov 2019 12:37
[PATCH 03/49] gnu: Add ghc-text-builder.
(address . 38423@debbugs.gnu.org)(name . Robert Vollmert)(address . rob@vllmrt.net)
20191129113751.82405-3-rob@vllmrt.net
* gnu/packages/haskell-xyz.scm (ghc-text-builder): New package.
---
gnu/packages/haskell-xyz.scm | 32 ++++++++++++++++++++++++++++++++
1 file changed, 32 insertions(+)

Toggle diff (42 lines)
diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm
index f22c936920..350af5b0c0 100644
--- a/gnu/packages/haskell-xyz.scm
+++ b/gnu/packages/haskell-xyz.scm
@@ -13208,3 +13208,35 @@ into monoids such as builders and printers.")
ASCII and Latin-1 portions of the 'Char' and 'Word8'
data types.")
(license license:bsd-3)))
+
+(define-public ghc-text-builder
+ (package
+ (name "ghc-text-builder")
+ (version "0.6.5.1") ;; newer than ghc-8.4 lts stackage
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://hackage.haskell.org/package/text-builder/text-builder-"
+ version
+ ".tar.gz"))
+ (sha256
+ (base32
+ "0g40s5md7kfmhqsxxrfliwb3p4whg3m2wp31bai051nx1ddkkvay"))))
+ (build-system haskell-build-system)
+ (inputs
+ `(("ghc-base-prelude" ,ghc-base-prelude)
+ ("ghc-semigroups" ,ghc-semigroups)))
+ (native-inputs
+ `(("ghc-quickcheck" ,ghc-quickcheck)
+ ("ghc-quickcheck-instances"
+ ,ghc-quickcheck-instances)
+ ("ghc-rerebase" ,ghc-rerebase)
+ ("ghc-tasty" ,ghc-tasty)
+ ("ghc-tasty-hunit" ,ghc-tasty-hunit)
+ ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
+ (home-page
+ "https://github.com/nikita-volkov/text-builder")
+ (synopsis "An efficient strict text builder")
+ (description "")
+ (license license:expat)))
--
2.21.0 (Apple Git-122.2)
R
R
Robert Vollmert wrote on 29 Nov 2019 12:37
[PATCH 12/49] gnu: Add ghc-expiring-cache-map.
(address . 38423@debbugs.gnu.org)(name . Robert Vollmert)(address . rob@vllmrt.net)
20191129113751.82405-12-rob@vllmrt.net
* gnu/packages/haskell-xyz.scm (ghc-expiring-cache-map): New package.
---
gnu/packages/haskell-xyz.scm | 33 ++++++++++++++++++++++++++++++++-
1 file changed, 32 insertions(+), 1 deletion(-)

Toggle diff (50 lines)
diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm
index 3946129173..75adb3d7d4 100644
--- a/gnu/packages/haskell-xyz.scm
+++ b/gnu/packages/haskell-xyz.scm
@@ -13226,7 +13226,8 @@ data types.")
(build-system haskell-build-system)
(inputs
`(("ghc-base-prelude" ,ghc-base-prelude)
- ("ghc-semigroups" ,ghc-semigroups)))
+ ("ghc-semigroups" ,ghc-semigroups)
+ ("ghc-deferred-folds" ,ghc-deferred-folds)))
(native-inputs
`(("ghc-quickcheck" ,ghc-quickcheck)
("ghc-quickcheck-instances"
@@ -13342,3 +13343,33 @@ property associated with the type.")
(description
"Abstractions over deferred folds.")
(license license:expat)))
+
+(define-public ghc-expiring-cache-map
+ (package
+ (name "ghc-expiring-cache-map")
+ (version "0.0.6.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://hackage.haskell.org/package/expiring-cache-map/expiring-cache-map-"
+ version
+ ".tar.gz"))
+ (sha256
+ (base32
+ "1fb47hsn06ybn2yzw7r6pjkmvvfpbdx7wjhbpxcywilbjyac4fqf"))))
+ (build-system haskell-build-system)
+ (inputs
+ `(("ghc-hashable" ,ghc-hashable)
+ ("ghc-unordered-containers"
+ ,ghc-unordered-containers)))
+ (home-page
+ "https://github.com/elblake/expiring-cache-map")
+ (synopsis "General purpose simple caching.")
+ (description
+ "A simple general purpose shared state cache map with
+automatic expiration of values, for caching the results of
+accessing a resource such as reading a file. With variations
+for Ord and Hashable keys using Data.Map.Strict and Data.HashMap.Strict,
+respectively.")
+ (license license:bsd-3)))
--
2.21.0 (Apple Git-122.2)
R
R
Robert Vollmert wrote on 29 Nov 2019 12:37
[PATCH 07/49] gnu: Add ghc-websockets.
(address . 38423@debbugs.gnu.org)(name . Robert Vollmert)(address . rob@vllmrt.net)
20191129113751.82405-7-rob@vllmrt.net
* gnu/packages/haskell-web.scm (ghc-websockets): New package.
---
gnu/packages/haskell-web.scm | 41 ++++++++++++++++++++++++++++++++++++
1 file changed, 41 insertions(+)

Toggle diff (51 lines)
diff --git a/gnu/packages/haskell-web.scm b/gnu/packages/haskell-web.scm
index 1672170131..fdfb7de721 100644
--- a/gnu/packages/haskell-web.scm
+++ b/gnu/packages/haskell-web.scm
@@ -1527,3 +1527,44 @@ The first three components of the version number match the upstream flot
version. The package is designed to meet the redistribution
requirements of downstream users (e.g. Debian).")
(license license:expat)))
+
+(define-public ghc-websockets
+ (package
+ (name "ghc-websockets")
+ (version "0.12.6.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://hackage.haskell.org/package/websockets/websockets-"
+ version
+ ".tar.gz"))
+ (sha256
+ (base32
+ "1vp3790w3hmr6v96314vdx74f7sg2c7hvnc93gafq0xhbxnr7nvx"))))
+ (build-system haskell-build-system)
+ (inputs
+ `(("ghc-attoparsec" ,ghc-attoparsec)
+ ("ghc-base64-bytestring" ,ghc-base64-bytestring)
+ ("ghc-bytestring-builder"
+ ,ghc-bytestring-builder)
+ ("ghc-case-insensitive" ,ghc-case-insensitive)
+ ("ghc-network" ,ghc-network)
+ ("ghc-random" ,ghc-random)
+ ("ghc-sha" ,ghc-sha)
+ ("ghc-streaming-commons" ,ghc-streaming-commons)
+ ("ghc-entropy" ,ghc-entropy)))
+ (native-inputs
+ `(("ghc-hunit" ,ghc-hunit)
+ ("ghc-quickcheck" ,ghc-quickcheck)
+ ("ghc-test-framework" ,ghc-test-framework)
+ ("ghc-test-framework-hunit"
+ ,ghc-test-framework-hunit)
+ ("ghc-test-framework-quickcheck2"
+ ,ghc-test-framework-quickcheck2)))
+ (home-page "http://jaspervdj.be/websockets")
+ (synopsis
+ "A sensible and clean way to write WebSocket-capable servers in Haskell")
+ (description
+ "This library allows you to write WebSocket-capable servers.")
+ (license license:bsd-3)))
--
2.21.0 (Apple Git-122.2)
R
R
Robert Vollmert wrote on 29 Nov 2019 12:37
[PATCH 08/49] gnu: Add ghc-wai-websockets.
(address . 38423@debbugs.gnu.org)(name . Robert Vollmert)(address . rob@vllmrt.net)
20191129113751.82405-8-rob@vllmrt.net
* gnu/packages/haskell-web.scm (ghc-wai-websockets): New package.
---
gnu/packages/haskell-web.scm | 31 +++++++++++++++++++++++++++++++
1 file changed, 31 insertions(+)

Toggle diff (41 lines)
diff --git a/gnu/packages/haskell-web.scm b/gnu/packages/haskell-web.scm
index fdfb7de721..e337d33e18 100644
--- a/gnu/packages/haskell-web.scm
+++ b/gnu/packages/haskell-web.scm
@@ -1568,3 +1568,34 @@ requirements of downstream users (e.g. Debian).")
(description
"This library allows you to write WebSocket-capable servers.")
(license license:bsd-3)))
+
+(define-public ghc-wai-websockets
+ (package
+ (name "ghc-wai-websockets")
+ (version "3.0.1.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://hackage.haskell.org/package/wai-websockets/wai-websockets-"
+ version
+ ".tar.gz"))
+ (sha256
+ (base32
+ "0b2xmdsrsqpssyib53wbr6r8hf75789ndyyanv37sv99iyqcwz4i"))))
+ (build-system haskell-build-system)
+ (inputs
+ `(("ghc-wai" ,ghc-wai)
+ ("ghc-case-insensitive" ,ghc-case-insensitive)
+ ("ghc-network" ,ghc-network)
+ ("ghc-websockets" ,ghc-websockets)
+ ("ghc-http-types" ,ghc-http-types)
+ ("ghc-warp" ,ghc-warp)
+ ("ghc-wai-app-static" ,ghc-wai-app-static)
+ ("ghc-file-embed" ,ghc-file-embed)))
+ (home-page "http://github.com/yesodweb/wai")
+ (synopsis
+ "Provide a bridge between WAI and the websockets package")
+ (description
+ "Provide a bridge between WAI and the websockets package.")
+ (license license:expat)))
--
2.21.0 (Apple Git-122.2)
R
R
Robert Vollmert wrote on 29 Nov 2019 12:37
[PATCH 04/49] gnu: Add ghc-text-short.
(address . 38423@debbugs.gnu.org)(name . Robert Vollmert)(address . rob@vllmrt.net)
20191129113751.82405-4-rob@vllmrt.net
* gnu/packages/haskell-xyz.scm (ghc-text-short): New package.
---
gnu/packages/haskell-xyz.scm | 41 ++++++++++++++++++++++++++++++++++++
1 file changed, 41 insertions(+)

Toggle diff (51 lines)
diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm
index 350af5b0c0..708159adc6 100644
--- a/gnu/packages/haskell-xyz.scm
+++ b/gnu/packages/haskell-xyz.scm
@@ -13240,3 +13240,44 @@ data types.")
(synopsis "An efficient strict text builder")
(description "")
(license license:expat)))
+
+(define-public ghc-text-short
+ (package
+ (name "ghc-text-short")
+ (version "0.1.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://hackage.haskell.org/package/text-short/text-short-"
+ version
+ ".tar.gz"))
+ (sha256
+ (base32
+ "0rqiwgjkgyfy8596swl0s0x2jqk6ddh2h02qxa32az2cs5kviwmk"))))
+ (build-system haskell-build-system)
+ (inputs `(("ghc-hashable" ,ghc-hashable)))
+ (native-inputs
+ `(("ghc-tasty" ,ghc-tasty)
+ ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
+ ("ghc-tasty-hunit" ,ghc-tasty-hunit)
+ ("ghc-quickcheck-instances"
+ ,ghc-quickcheck-instances)))
+ (arguments
+ `(#:cabal-revision
+ ("2"
+ "106p7c0399zxdlh9f9qkgy7g2gp3bxqdpy6m6lnfhzi0pm5y8mks")))
+ (home-page
+ "http://hackage.haskell.org/package/text-short")
+ (synopsis
+ "Memory-efficient representation of Unicode text strings")
+ (description
+ "This package provides the 'ShortText' type which is
+suitable for keeping many short strings in memory.
+This is similiar to how 'ShortByteString' relates to 'ByteString'.
+The main difference between 'Text' and 'ShortText' is that 'ShortText'
+uses UTF-8 instead of UTF-16 internally and also doesn't support
+zero-copy slicing (thereby saving 2 words). Consequently, the
+memory footprint of a (boxed) 'ShortText' value is 4 words
+(2 words when unboxed) plus the length of the UTF-8 encoded payload.")
+ (license license:bsd-3)))
--
2.21.0 (Apple Git-122.2)
R
R
Robert Vollmert wrote on 29 Nov 2019 12:37
[PATCH 14/49] gnu: Add ghc-protolude.
(address . 38423@debbugs.gnu.org)(name . Robert Vollmert)(address . rob@vllmrt.net)
20191129113751.82405-14-rob@vllmrt.net
* gnu/packages/haskell-xyz.scm (ghc-protolude): New variable.
---
gnu/packages/haskell-xyz.scm | 27 +++++++++++++++++++++++++++
1 file changed, 27 insertions(+)

Toggle diff (37 lines)
diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm
index a9c25a8b16..dc124b37a1 100644
--- a/gnu/packages/haskell-xyz.scm
+++ b/gnu/packages/haskell-xyz.scm
@@ -13410,3 +13410,30 @@ respectively.")
"Associative containers retaining insertion order for traversals.
The implementation is based on `unordered-containers`.")
(license license:bsd-3)))
+
+(define-public ghc-protolude
+ (package
+ (name "ghc-protolude")
+ (version "0.2.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://hackage.haskell.org/package/protolude/protolude-"
+ version
+ ".tar.gz"))
+ (sha256
+ (base32
+ "0zzkyxz0vmcbncpid7gp72fpjj0fla3gqhlfkij5c5lg12skjgfj"))))
+ (build-system haskell-build-system)
+ (inputs
+ `(("ghc-async" ,ghc-async)
+ ("ghc-hashable" ,ghc-hashable)
+ ("ghc-mtl-compat" ,ghc-mtl-compat)
+ ("ghc-transformers-compat"
+ ,ghc-transformers-compat)))
+ (home-page "https://github.com/sdiehl/protolude")
+ (synopsis "A small prelude.")
+ (description
+ "A sensible set of defaults for writing custom Preludes.")
+ (license license:expat)))
--
2.21.0 (Apple Git-122.2)
R
R
Robert Vollmert wrote on 29 Nov 2019 12:37
[PATCH 10/49] gnu: Add ghc-wai-middleware-static.
(address . 38423@debbugs.gnu.org)(name . Robert Vollmert)(address . rob@vllmrt.net)
20191129113751.82405-10-rob@vllmrt.net
* gnu/packages/haskell-web.scm (ghc-wai-middleware-static): New package.
---
gnu/packages/haskell-web.scm | 38 ++++++++++++++++++++++++++++++++++++
1 file changed, 38 insertions(+)

Toggle diff (48 lines)
diff --git a/gnu/packages/haskell-web.scm b/gnu/packages/haskell-web.scm
index 7f54568399..ef43e8222d 100644
--- a/gnu/packages/haskell-web.scm
+++ b/gnu/packages/haskell-web.scm
@@ -1641,3 +1641,41 @@ requirements of downstream users (e.g. Debian).")
"This package provides an implemenation of Cross-Origin resource sharing
(CORS) for Wai that aims to be compliant with http://www.w3.org/TR/cors.")
(license license:expat)))
+
+(define-public ghc-wai-middleware-static
+ (package
+ (name "ghc-wai-middleware-static")
+ (version "0.8.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://hackage.haskell.org/package/wai-middleware-static/wai-middleware-static-"
+ version
+ ".tar.gz"))
+ (sha256
+ (base32
+ "1z5yapcf8j9w71f2na30snmalsajlyi8an2f9qrjdmajabyykr0b"))))
+ (build-system haskell-build-system)
+ (inputs
+ `(("ghc-cryptonite" ,ghc-cryptonite)
+ ("ghc-memory" ,ghc-memory)
+ ("ghc-expiring-cache-map"
+ ,ghc-expiring-cache-map)
+ ("ghc-http-types" ,ghc-http-types)
+ ("ghc-mime-types" ,ghc-mime-types)
+ ("ghc-old-locale" ,ghc-old-locale)
+ ("ghc-semigroups" ,ghc-semigroups)
+ ("ghc-wai" ,ghc-wai)))
+ (arguments
+ `(#:cabal-revision
+ ("2"
+ "17vq38dh7x1kqzfwla1s0rldd5hzm5mcrx49sjlzy8b66gd2n3ac")))
+ (home-page
+ "https://github.com/scotty-web/wai-middleware-static")
+ (synopsis
+ "WAI middleware that serves requests to static files.")
+ (description
+ "WAI middleware that intercepts requests to static files and serves
+them if they exist.")
+ (license license:bsd-3)))
--
2.21.0 (Apple Git-122.2)
R
R
Robert Vollmert wrote on 29 Nov 2019 12:37
[PATCH 09/49] gnu: Add ghc-wai-cors.
(address . 38423@debbugs.gnu.org)(name . Robert Vollmert)(address . rob@vllmrt.net)
20191129113751.82405-9-rob@vllmrt.net
* gnu/packages/haskell-web.scm (ghc-wai-cors): New package.
---
gnu/local.mk | 1 +
gnu/packages/haskell-web.scm | 42 +++++++++++++++++++
.../ghc-wai-cors-skip-phantomjs-tests.patch | 13 ++++++
3 files changed, 56 insertions(+)
create mode 100644 gnu/packages/patches/ghc-wai-cors-skip-phantomjs-tests.patch

Toggle diff (83 lines)
diff --git a/gnu/local.mk b/gnu/local.mk
index e49029a379..56ff1d0f7b 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -889,6 +889,7 @@ dist_patch_DATA = \
%D%/packages/patches/ghc-monad-par-fix-tests.patch \
%D%/packages/patches/ghc-pandoc-fix-html-tests.patch \
%D%/packages/patches/ghc-pandoc-fix-latex-test.patch \
+ %D%/packages/patches/ghc-wai-cors-skip-phantomjs-tests.patch \
%D%/packages/patches/ghostscript-no-header-id.patch \
%D%/packages/patches/ghostscript-no-header-uuid.patch \
%D%/packages/patches/ghostscript-no-header-creationdate.patch \
diff --git a/gnu/packages/haskell-web.scm b/gnu/packages/haskell-web.scm
index e337d33e18..7f54568399 100644
--- a/gnu/packages/haskell-web.scm
+++ b/gnu/packages/haskell-web.scm
@@ -1599,3 +1599,45 @@ requirements of downstream users (e.g. Debian).")
(description
"Provide a bridge between WAI and the websockets package.")
(license license:expat)))
+
+(define-public ghc-wai-cors
+ (package
+ (name "ghc-wai-cors")
+ (version "0.2.6")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://hackage.haskell.org/package/wai-cors/wai-cors-"
+ version
+ ".tar.gz"))
+ (sha256
+ (base32
+ "11m9d8hn9pb9brprz0kglldmcqj83kjkjdwdpxdbl12430ii1ina"))
+ (patches (search-patches "ghc-wai-cors-skip-phantomjs-tests.patch"))))
+ (build-system haskell-build-system)
+ (arguments
+ ;; required for unclear reasons; those flags should default to false
+ `(#:configure-flags '("--flags=-wai-2" "--flags=-wai-1")))
+ (inputs
+ `(("ghc-attoparsec" ,ghc-attoparsec)
+ ("ghc-base-unicode-symbols"
+ ,ghc-base-unicode-symbols)
+ ("ghc-case-insensitive" ,ghc-case-insensitive)
+ ("ghc-http-types" ,ghc-http-types)
+ ("ghc-wai" ,ghc-wai)))
+ (native-inputs
+ `(("ghc-tasty" ,ghc-tasty)
+ ("ghc-tasty-hunit" ,ghc-tasty-hunit)
+ ("ghc-transformers-compat" ,ghc-transformers-compat)
+ ("ghc-wai-extra" ,ghc-wai-extra)
+ ("ghc-wai-websockets" ,ghc-wai-websockets)
+ ("ghc-warp" ,ghc-warp)
+ ("ghc-websockets" ,ghc-websockets)))
+ (home-page
+ "https://github.com/larskuhtz/wai-cors")
+ (synopsis "CORS for WAI")
+ (description
+ "This package provides an implemenation of Cross-Origin resource sharing
+(CORS) for Wai that aims to be compliant with http://www.w3.org/TR/cors.")
+ (license license:expat)))
diff --git a/gnu/packages/patches/ghc-wai-cors-skip-phantomjs-tests.patch b/gnu/packages/patches/ghc-wai-cors-skip-phantomjs-tests.patch
new file mode 100644
index 0000000000..ffb1929a03
--- /dev/null
+++ b/gnu/packages/patches/ghc-wai-cors-skip-phantomjs-tests.patch
@@ -0,0 +1,13 @@
+Skip phantomjs tests.
+
+--- a/wai-cors.cabal 2017-12-02 19:58:59.000000000 +0100
++++ b/wai-cors.cabal 2019-06-03 22:02:32.792000000 +0200
+@@ -102,6 +102,8 @@
+ ghc-options: -Wall
+
+ Test-Suite phantomjs
++ buildable: False
++
+ type: exitcode-stdio-1.0
+ default-language: Haskell2010
+ main-is: PhantomJS.hs
--
2.21.0 (Apple Git-122.2)
R
R
Robert Vollmert wrote on 29 Nov 2019 12:37
[PATCH 11/49] gnu: Add ghc-wai-app-static.
(address . 38423@debbugs.gnu.org)(name . Robert Vollmert)(address . rob@vllmrt.net)
20191129113751.82405-11-rob@vllmrt.net
* gnu/packages/haskell-web.scm (ghc-wai-app-static): New package.
---
gnu/packages/haskell-web.scm | 45 ++++++++++++++++++++++++++++++++++++
1 file changed, 45 insertions(+)

Toggle diff (55 lines)
diff --git a/gnu/packages/haskell-web.scm b/gnu/packages/haskell-web.scm
index ef43e8222d..87165be078 100644
--- a/gnu/packages/haskell-web.scm
+++ b/gnu/packages/haskell-web.scm
@@ -1679,3 +1679,48 @@ requirements of downstream users (e.g. Debian).")
"WAI middleware that intercepts requests to static files and serves
them if they exist.")
(license license:bsd-3)))
+
+(define-public ghc-wai-app-static
+ (package
+ (name "ghc-wai-app-static")
+ (version "3.1.6.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://hackage.haskell.org/package/wai-app-static/wai-app-static-"
+ version
+ ".tar.gz"))
+ (sha256
+ (base32
+ "0gnwq6ad5m8w8sqq4dzpz23l5rjdphfsf8h9h27lrvv1prkabc6h"))))
+ (build-system haskell-build-system)
+ (inputs
+ `(("ghc-wai" ,ghc-wai)
+ ("ghc-http-types" ,ghc-http-types)
+ ("ghc-unix-compat" ,ghc-unix-compat)
+ ("ghc-old-locale" ,ghc-old-locale)
+ ("ghc-file-embed" ,ghc-file-embed)
+ ("ghc-cryptonite" ,ghc-cryptonite)
+ ("ghc-memory" ,ghc-memory)
+ ("ghc-http-date" ,ghc-http-date)
+ ("ghc-blaze-html" ,ghc-blaze-html)
+ ("ghc-blaze-markup" ,ghc-blaze-markup)
+ ("ghc-mime-types" ,ghc-mime-types)
+ ("ghc-unordered-containers"
+ ,ghc-unordered-containers)
+ ("ghc-zlib" ,ghc-zlib)
+ ("ghc-wai-extra" ,ghc-wai-extra)
+ ("ghc-optparse-applicative"
+ ,ghc-optparse-applicative)
+ ("ghc-warp" ,ghc-warp)))
+ (native-inputs
+ `(("ghc-hspec" ,ghc-hspec)
+ ("ghc-network" ,ghc-network)
+ ("ghc-temporary" ,ghc-temporary)
+ ("ghc-mockery" ,ghc-mockery)))
+ (home-page
+ "http://www.yesodweb.com/book/web-application-interface")
+ (synopsis "WAI application for static serving")
+ (description "WAI application for static serving.")
+ (license license:expat)))
--
2.21.0 (Apple Git-122.2)
R
R
Robert Vollmert wrote on 29 Nov 2019 12:37
[PATCH 24/49] gnu: Add ghc-directory.
(address . 38423@debbugs.gnu.org)(name . Robert Vollmert)(address . rob@vllmrt.net)
20191129113751.82405-24-rob@vllmrt.net
* gnu/packages/haskell-xyz.scm (ghc-directory): New variable.
---
gnu/packages/haskell-xyz.scm | 24 ++++++++++++++++++++++++
1 file changed, 24 insertions(+)

Toggle diff (34 lines)
diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm
index 2421a5f9a1..ed02b509ac 100644
--- a/gnu/packages/haskell-xyz.scm
+++ b/gnu/packages/haskell-xyz.scm
@@ -13690,3 +13690,27 @@ fixed-length binary word data types. Signed and unsigned
"This package provides an interface for converting
between data and its (human-friendly) textual representation.")
(license license:bsd-3)))
+
+(define-public ghc-directory
+ (package
+ (name "ghc-directory")
+ (version "1.3.1.5")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://hackage.haskell.org/package/directory/directory-"
+ version
+ ".tar.gz"))
+ (sha256
+ (base32
+ "0zkqihmdfz7bzv3sxh1p9ijl4vra880kfy3qy9h96flq7d2if0f2"))))
+ (build-system haskell-build-system)
+ (home-page
+ "http://hackage.haskell.org/package/directory")
+ (synopsis
+ "Platform-agnostic library for filesystem operations")
+ (description
+ "This library provides a basic set of operations for manipulating
+files and directories in a portable way.")
+ (license license:bsd-3)))
--
2.21.0 (Apple Git-122.2)
R
R
Robert Vollmert wrote on 29 Nov 2019 12:37
[PATCH 18/49] gnu: Add ghc-only.
(address . 38423@debbugs.gnu.org)(name . Robert Vollmert)(address . rob@vllmrt.net)
20191129113751.82405-18-rob@vllmrt.net
* gnu/packages/haskell-xyz.scm (ghc-only): New variable.
---
gnu/packages/haskell-xyz.scm | 28 ++++++++++++++++++++++++++++
1 file changed, 28 insertions(+)

Toggle diff (38 lines)
diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm
index 3eadfff08c..497ce4a5e6 100644
--- a/gnu/packages/haskell-xyz.scm
+++ b/gnu/packages/haskell-xyz.scm
@@ -13521,3 +13521,31 @@ ExceptT instances in scope.")
"Better alternatives to the \"error\" function")
(description "")
(license license:expat)))
+
+(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)))
--
2.21.0 (Apple Git-122.2)
R
R
Robert Vollmert wrote on 29 Nov 2019 12:37
[PATCH 21/49] gnu: Add ghc-data-endian.
(address . 38423@debbugs.gnu.org)(name . Robert Vollmert)(address . rob@vllmrt.net)
20191129113751.82405-21-rob@vllmrt.net
* gnu/packages/haskell-xyz.scm (ghc-data-endian): New variable.
---
gnu/packages/haskell-xyz.scm | 21 +++++++++++++++++++++
1 file changed, 21 insertions(+)

Toggle diff (31 lines)
diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm
index 0b40ec6c6b..5f90fc1551 100644
--- a/gnu/packages/haskell-xyz.scm
+++ b/gnu/packages/haskell-xyz.scm
@@ -13604,3 +13604,24 @@ Haskell for attaching typeclass instances.")
fixed-length binary word data types. Signed and unsigned
96, 128, 160, 192, 224, and 256-bit types are predefined.")
(license license:bsd-3)))
+
+(define-public ghc-data-endian
+ (package
+ (name "ghc-data-endian")
+ (version "0.1.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://hackage.haskell.org/package/data-endian/data-endian-"
+ version
+ ".tar.gz"))
+ (sha256
+ (base32
+ "1h1abz87nha7cpw50yvf8fwvcca350wnnz2d3z9k30sg6wq4y7cc"))))
+ (build-system haskell-build-system)
+ (home-page "https://github.com/mvv/data-endian")
+ (synopsis "Endian-sensitive data")
+ (description
+ "This package provides helpers for converting endian-sensitive data.")
+ (license license:bsd-3)))
--
2.21.0 (Apple Git-122.2)
R
R
Robert Vollmert wrote on 29 Nov 2019 12:37
[PATCH 19/49] gnu: Add ghc-data-bword.
(address . 38423@debbugs.gnu.org)(name . Robert Vollmert)(address . rob@vllmrt.net)
20191129113751.82405-19-rob@vllmrt.net
* gnu/packages/haskell-xyz.scm (ghc-data-bword): New variable.
---
gnu/packages/haskell-xyz.scm | 25 +++++++++++++++++++++++++
1 file changed, 25 insertions(+)

Toggle diff (35 lines)
diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm
index 497ce4a5e6..905beb533b 100644
--- a/gnu/packages/haskell-xyz.scm
+++ b/gnu/packages/haskell-xyz.scm
@@ -13549,3 +13549,28 @@ ExceptT instances in scope.")
"This package provides a canonical anonymous 1-tuple type missing from
Haskell for attaching typeclass instances.")
(license license:bsd-3)))
+
+(define-public ghc-data-bword
+ (package
+ (name "ghc-data-bword")
+ (version "0.1.0.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://hackage.haskell.org/package/data-bword/data-bword-"
+ version
+ ".tar.gz"))
+ (sha256
+ (base32
+ "0zfvk7b7qi6inra0kc03rhsic2rj0818n4i03lfwzvb5g22izw3h"))))
+ (build-system haskell-build-system)
+ (native-inputs
+ `(("ghc-tasty" ,ghc-tasty)
+ ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
+ (home-page "https://github.com/mvv/data-bword")
+ (synopsis
+ "Extra operations on binary words of fixed length")
+ (description
+ "This package provides extra (vs. 'Data.Bits') operations on binary words of fixed length.")
+ (license license:bsd-3)))
--
2.21.0 (Apple Git-122.2)
R
R
Robert Vollmert wrote on 29 Nov 2019 12:37
[PATCH 15/49] gnu: Add ghc-mtl-compat.
(address . 38423@debbugs.gnu.org)(name . Robert Vollmert)(address . rob@vllmrt.net)
20191129113751.82405-15-rob@vllmrt.net
* gnu/packages/haskell-xyz.scm (ghc-mtl-compat): New variable.
---
gnu/packages/haskell-xyz.scm | 39 ++++++++++++++++++++++++++++++++++++
1 file changed, 39 insertions(+)

Toggle diff (49 lines)
diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm
index dc124b37a1..be5b7b64d5 100644
--- a/gnu/packages/haskell-xyz.scm
+++ b/gnu/packages/haskell-xyz.scm
@@ -13437,3 +13437,42 @@ The implementation is based on `unordered-containers`.")
(description
"A sensible set of defaults for writing custom Preludes.")
(license license:expat)))
+
+(define-public ghc-mtl-compat
+ (package
+ (name "ghc-mtl-compat")
+ (version "0.2.1.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://hackage.haskell.org/package/mtl-compat/mtl-compat-"
+ version
+ ".tar.gz"))
+ (sha256
+ (base32
+ "15388p9ybdn6digk6cpdsw6havd0yva8vvwl3p7fnc9sb59wln34"))))
+ (build-system haskell-build-system)
+ (arguments
+ `(#:cabal-revision
+ ("4"
+ "1mfrx8cpx0502sjv0bmlfkl0h46c4krldg8m89k4fj6iawwg2ab5")
+ #:haddock?
+ #f))
+ (home-page
+ "https://github.com/haskell-compat/mtl-compat")
+ (synopsis
+ "Backported Control.Monad.Except module from mtl")
+ (description
+ "This package backports the Control.Monad.Except module from mtl
+(if using mtl-2.2.0.1 or earlier), which reexports the ExceptT monad
+transformer and the MonadError class. This package should only be used
+if there is a need to use the Control.Monad.Except module specifically.
+If you just want the mtl class instances for ExceptT, use
+transformers-compat instead, since mtl-compat does nothing but reexport
+the instances from that package. Note that unlike how mtl-2.2 or later
+works, the Control.Monad.Except module defined in this package exports
+all of ExceptT's monad class instances. Therefore, you may have to declare
+import Control.Monad.Except () at the top of your file to get all of the
+ExceptT instances in scope.")
+ (license license:bsd-3)))
--
2.21.0 (Apple Git-122.2)
R
R
Robert Vollmert wrote on 29 Nov 2019 12:37
[PATCH 23/49] gnu: Add ghc-data-textual.
(address . 38423@debbugs.gnu.org)(name . Robert Vollmert)(address . rob@vllmrt.net)
20191129113751.82405-23-rob@vllmrt.net
* gnu/packages/haskell-xyz.scm (ghc-data-textual): New variable.
---
gnu/packages/haskell-xyz.scm | 33 +++++++++++++++++++++++++++++++++
1 file changed, 33 insertions(+)

Toggle diff (43 lines)
diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm
index 766eb129bb..2421a5f9a1 100644
--- a/gnu/packages/haskell-xyz.scm
+++ b/gnu/packages/haskell-xyz.scm
@@ -13657,3 +13657,36 @@ fixed-length binary word data types. Signed and unsigned
(description
"This package provides a common API for serialization libraries like <http://hackage.haskell.org/package/binary binary> and <http://hackage.haskell.org/package/cereal cereal>.")
(license license:bsd-3)))
+
+(define-public ghc-data-textual
+ (package
+ (name "ghc-data-textual")
+ (version "0.3.0.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://hackage.haskell.org/package/data-textual/data-textual-"
+ version
+ ".tar.gz"))
+ (sha256
+ (base32
+ "0c4qs923dj4jnvvkjvbij0c1yg922iw66140cq6wb1m4h6q31ia4"))))
+ (build-system haskell-build-system)
+ (inputs
+ `(("ghc-text-latin1" ,ghc-text-latin1)
+ ("ghc-text-printer" ,ghc-text-printer)
+ ("ghc-parsers" ,ghc-parsers)))
+ (native-inputs
+ `(("ghc-test-framework" ,ghc-test-framework)
+ ("ghc-test-framework-quickcheck2"
+ ,ghc-test-framework-quickcheck2)
+ ("ghc-quickcheck" ,ghc-quickcheck)
+ ("ghc-type-hint" ,ghc-type-hint)))
+ (home-page "https://github.com/mvv/data-textual")
+ (synopsis
+ "Human-friendly textual representations.")
+ (description
+ "This package provides an interface for converting
+between data and its (human-friendly) textual representation.")
+ (license license:bsd-3)))
--
2.21.0 (Apple Git-122.2)
R
R
Robert Vollmert wrote on 29 Nov 2019 12:37
[PATCH 16/49] gnu: Add ghc-monad-time.
(address . 38423@debbugs.gnu.org)(name . Robert Vollmert)(address . rob@vllmrt.net)
20191129113751.82405-16-rob@vllmrt.net
* gnu/packages/haskell-xyz.scm (ghc-monad-time): New variable.
---
gnu/packages/haskell-xyz.scm | 23 +++++++++++++++++++++++
1 file changed, 23 insertions(+)

Toggle diff (33 lines)
diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm
index be5b7b64d5..c4d2ed3b02 100644
--- a/gnu/packages/haskell-xyz.scm
+++ b/gnu/packages/haskell-xyz.scm
@@ -13476,3 +13476,26 @@ all of ExceptT's monad class instances. Therefore, you may have to declare
import Control.Monad.Except () at the top of your file to get all of the
ExceptT instances in scope.")
(license license:bsd-3)))
+
+(define-public ghc-monad-time
+ (package
+ (name "ghc-monad-time")
+ (version "0.3.1.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://hackage.haskell.org/package/monad-time/monad-time-"
+ version
+ ".tar.gz"))
+ (sha256
+ (base32
+ "0z30c0k5bqlz86vwajnm6kj26i09zx6dzqwd00z6ba8hqyzm1x0a"))))
+ (build-system haskell-build-system)
+ (home-page
+ "https://github.com/scrive/monad-time")
+ (synopsis
+ "Type class for monads which carry the notion of the current time.")
+ (description
+ "'MonadTime' type class for monads which carry the notion of the current time.")
+ (license license:bsd-3)))
--
2.21.0 (Apple Git-122.2)
R
R
Robert Vollmert wrote on 29 Nov 2019 12:37
[PATCH 28/49] gnu: Add ghc-concise.
(address . 38423@debbugs.gnu.org)(name . Robert Vollmert)(address . rob@vllmrt.net)
20191129113751.82405-28-rob@vllmrt.net
* gnu/packages/haskell-xyz.scm (ghc-concise): New variable.
---
gnu/packages/haskell-xyz.scm | 30 ++++++++++++++++++++++++++++++
1 file changed, 30 insertions(+)

Toggle diff (40 lines)
diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm
index d5dbff4433..28179eba97 100644
--- a/gnu/packages/haskell-xyz.scm
+++ b/gnu/packages/haskell-xyz.scm
@@ -13773,3 +13773,33 @@ files and directories in a portable way.")
from the base library and functions to use these values as
hints for type inference.")
(license license:bsd-3)))
+
+(define-public ghc-concise
+ (package
+ (name "ghc-concise")
+ (version "0.1.0.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://hackage.haskell.org/package/concise/concise-"
+ version
+ ".tar.gz"))
+ (sha256
+ (base32
+ "09crgc6gjfidlad6263253xx1di6wfhc9awhira21s0z7rddy9sw"))))
+ (build-system haskell-build-system)
+ (inputs `(("ghc-lens" ,ghc-lens)))
+ (native-inputs
+ `(("ghc-tasty" ,ghc-tasty)
+ ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
+ ("ghc-quickcheck" ,ghc-quickcheck)
+ ("ghc-quickcheck-instances"
+ ,ghc-quickcheck-instances)))
+ (home-page
+ "https://github.com/frasertweedale/hs-concise")
+ (synopsis "Utilities for Control.Lens.Cons")
+ (description
+ "concise provides a handful of functions to extend
+what you can do with Control.Lens.Cons.")
+ (license license:bsd-3)))
--
2.21.0 (Apple Git-122.2)
R
R
Robert Vollmert wrote on 29 Nov 2019 12:37
[PATCH 02/49] gnu: Add ghc-text-latin1.
(address . 38423@debbugs.gnu.org)(name . Robert Vollmert)(address . rob@vllmrt.net)
20191129113751.82405-2-rob@vllmrt.net
* gnu/packages/haskell-xyz.scm (ghc-text-latin1): New package.
---
gnu/packages/haskell-xyz.scm | 29 +++++++++++++++++++++++++++++
1 file changed, 29 insertions(+)

Toggle diff (39 lines)
diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm
index a267685f99..f22c936920 100644
--- a/gnu/packages/haskell-xyz.scm
+++ b/gnu/packages/haskell-xyz.scm
@@ -13179,3 +13179,32 @@ compression ratios.")
"This package provides an interface for injecting text
into monoids such as builders and printers.")
(license license:bsd-3)))
+
+(define-public ghc-text-latin1
+ (package
+ (name "ghc-text-latin1")
+ (version "0.3.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://hackage.haskell.org/package/text-latin1/text-latin1-"
+ version
+ ".tar.gz"))
+ (sha256
+ (base32
+ "1wxbv6m567n3330baw2k0xxd50nhn2k6w3lgmpk6zq7x1jp84x3c"))))
+ (build-system haskell-build-system)
+ (inputs
+ `(("ghc-data-checked" ,ghc-data-checked)
+ ("ghc-semigroups" ,ghc-semigroups)
+ ("ghc-case-insensitive" ,ghc-case-insensitive)
+ ("ghc-hashable" ,ghc-hashable)))
+ (home-page "https://github.com/mvv/text-latin1")
+ (synopsis
+ "Latin-1 (including ASCII) utility functions")
+ (description
+ "This package provides various functions over the
+ASCII and Latin-1 portions of the 'Char' and 'Word8'
+data types.")
+ (license license:bsd-3)))
--
2.21.0 (Apple Git-122.2)
R
R
Robert Vollmert wrote on 29 Nov 2019 12:37
[PATCH 46/49] gnu: Add ghc-tasty-hspec.
(address . 38423@debbugs.gnu.org)(name . Robert Vollmert)(address . rob@vllmrt.net)
20191129113751.82405-46-rob@vllmrt.net
* gnu/packages/haskell-check.scm (ghc-tasty-hspec): New field.
---
gnu/packages/haskell-check.scm | 34 ++++++++++++++++++++++++++++++++++
1 file changed, 34 insertions(+)

Toggle diff (44 lines)
diff --git a/gnu/packages/haskell-check.scm b/gnu/packages/haskell-check.scm
index c6e89460ea..98706c4764 100644
--- a/gnu/packages/haskell-check.scm
+++ b/gnu/packages/haskell-check.scm
@@ -963,3 +963,37 @@ 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-tasty-hspec
+ (package
+ (name "ghc-tasty-hspec")
+ (version "1.1.5.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://hackage.haskell.org/package/tasty-hspec/tasty-hspec-"
+ version
+ ".tar.gz"))
+ (sha256
+ (base32
+ "0i9kdzjpk750sa078jj3iyhp72k0177zk7vxl131r6dkyz09x27y"))))
+ (build-system haskell-build-system)
+ (inputs
+ `(("ghc-hspec" ,ghc-hspec)
+ ("ghc-hspec-core" ,ghc-hspec-core)
+ ("ghc-quickcheck" ,ghc-quickcheck)
+ ("ghc-tasty" ,ghc-tasty)
+ ("ghc-tasty-smallcheck" ,ghc-tasty-smallcheck)
+ ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
+ (arguments
+ `(#:cabal-revision
+ ("3"
+ "1wgz3z5bnq5qml8d0i18gvz30dmmax3686lmqz3vf4hxd3vqfkpj")))
+ (home-page
+ "https://github.com/mitchellwrosen/tasty-hspec")
+ (synopsis
+ "Hspec support for the Tasty test framework.")
+ (description
+ "This package provides a Tasty provider for Hspec test suites.")
+ (license license:bsd-3)))
--
2.21.0 (Apple Git-122.2)
R
R
Robert Vollmert wrote on 29 Nov 2019 12:37
[PATCH 13/49] gnu: Add ghc-insert-ordered-containers.
(address . 38423@debbugs.gnu.org)(name . Robert Vollmert)(address . rob@vllmrt.net)
20191129113751.82405-13-rob@vllmrt.net
* gnu/packages/haskell-xyz.scm (ghc-insert-ordered-containers): New variable.
---
gnu/packages/haskell-xyz.scm | 37 ++++++++++++++++++++++++++++++++++++
1 file changed, 37 insertions(+)

Toggle diff (47 lines)
diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm
index 75adb3d7d4..a9c25a8b16 100644
--- a/gnu/packages/haskell-xyz.scm
+++ b/gnu/packages/haskell-xyz.scm
@@ -13373,3 +13373,40 @@ accessing a resource such as reading a file. With variations
for Ord and Hashable keys using Data.Map.Strict and Data.HashMap.Strict,
respectively.")
(license license:bsd-3)))
+
+(define-public ghc-insert-ordered-containers
+ (package
+ (name "ghc-insert-ordered-containers")
+ (version "0.2.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://hackage.haskell.org/package/insert-ordered-containers/insert-ordered-containers-"
+ version
+ ".tar.gz"))
+ (sha256
+ (base32
+ "1ikjhg0pdfpnx1d645r92k2dwlk7y935j1w5lcsk23nzpwhbkxja"))))
+ (build-system haskell-build-system)
+ (inputs
+ `(("ghc-aeson" ,ghc-aeson)
+ ("ghc-base-compat" ,ghc-base-compat)
+ ("ghc-hashable" ,ghc-hashable)
+ ("ghc-lens" ,ghc-lens)
+ ("ghc-semigroupoids" ,ghc-semigroupoids)
+ ("ghc-semigroups" ,ghc-semigroups)
+ ("ghc-unordered-containers"
+ ,ghc-unordered-containers)))
+ (native-inputs
+ `(("ghc-tasty" ,ghc-tasty)
+ ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
+ ("ghc-quickcheck" ,ghc-quickcheck)))
+ (home-page
+ "https://github.com/phadej/insert-ordered-containers#readme")
+ (synopsis
+ "Associative containers retaining insertion order for traversals.")
+ (description
+ "Associative containers retaining insertion order for traversals.
+The implementation is based on `unordered-containers`.")
+ (license license:bsd-3)))
--
2.21.0 (Apple Git-122.2)
R
R
Robert Vollmert wrote on 29 Nov 2019 12:37
[PATCH 20/49] gnu: Add ghc-data-dword.
(address . 38423@debbugs.gnu.org)(name . Robert Vollmert)(address . rob@vllmrt.net)
20191129113751.82405-20-rob@vllmrt.net
* gnu/packages/haskell-xyz.scm (ghc-data-dword): New variable.
---
gnu/packages/haskell-xyz.scm | 30 ++++++++++++++++++++++++++++++
1 file changed, 30 insertions(+)

Toggle diff (40 lines)
diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm
index 905beb533b..0b40ec6c6b 100644
--- a/gnu/packages/haskell-xyz.scm
+++ b/gnu/packages/haskell-xyz.scm
@@ -13574,3 +13574,33 @@ Haskell for attaching typeclass instances.")
(description
"This package provides extra (vs. 'Data.Bits') operations on binary words of fixed length.")
(license license:bsd-3)))
+
+(define-public ghc-data-dword
+ (package
+ (name "ghc-data-dword")
+ (version "0.3.1.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://hackage.haskell.org/package/data-dword/data-dword-"
+ version
+ ".tar.gz"))
+ (sha256
+ (base32
+ "084invjg8zj7ndxnz9clqmq06ch47k1d9lhxwap6xs0x4807crvb"))))
+ (build-system haskell-build-system)
+ (inputs
+ `(("ghc-hashable" ,ghc-hashable)
+ ("ghc-data-bword" ,ghc-data-bword)))
+ (native-inputs
+ `(("ghc-tasty" ,ghc-tasty)
+ ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
+ (home-page "https://github.com/mvv/data-dword")
+ (synopsis
+ "Stick two binary words together to get a bigger one")
+ (description
+ "This package provides Template Haskell utilities for declaring
+fixed-length binary word data types. Signed and unsigned
+96, 128, 160, 192, 224, and 256-bit types are predefined.")
+ (license license:bsd-3)))
--
2.21.0 (Apple Git-122.2)
R
R
Robert Vollmert wrote on 29 Nov 2019 12:37
[PATCH 29/49] gnu: Add ghc-lens-aeson.
(address . 38423@debbugs.gnu.org)(name . Robert Vollmert)(address . rob@vllmrt.net)
20191129113751.82405-29-rob@vllmrt.net
* gnu/packages/haskell-xyz.scm (ghc-lens-aeson): New variable.
---
gnu/packages/haskell-xyz.scm | 38 ++++++++++++++++++++++++++++++++++++
1 file changed, 38 insertions(+)

Toggle diff (48 lines)
diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm
index 28179eba97..5cba944601 100644
--- a/gnu/packages/haskell-xyz.scm
+++ b/gnu/packages/haskell-xyz.scm
@@ -13803,3 +13803,41 @@ hints for type inference.")
"concise provides a handful of functions to extend
what you can do with Control.Lens.Cons.")
(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)
+ ("cabal-doctest" ,cabal-doctest)))
+ (arguments
+ `(#:cabal-revision
+ ("6"
+ "1pg5v8fnlqw1krgi3d2a03a0zkjjdv5yp5f5z6q4mlb5jldz99a8")))
+ (home-page "http://github.com/lens/lens-aeson/")
+ (synopsis "Law-abiding lenses for aeson")
+ (description "Law-abiding lenses for aeson")
+ (license license:expat)))
--
2.21.0 (Apple Git-122.2)
R
R
Robert Vollmert wrote on 29 Nov 2019 12:37
[PATCH 36/49] gnu: Add ghc-loch-th.
(address . 38423@debbugs.gnu.org)(name . Robert Vollmert)(address . rob@vllmrt.net)
20191129113751.82405-36-rob@vllmrt.net
* gnu/packages/haskell-xyz.scm (ghc-loch-th): New variable.
---
gnu/packages/haskell-xyz.scm | 24 ++++++++++++++++++++++++
1 file changed, 24 insertions(+)

Toggle diff (34 lines)
diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm
index d401ddd469..1b9db3f519 100644
--- a/gnu/packages/haskell-xyz.scm
+++ b/gnu/packages/haskell-xyz.scm
@@ -14031,3 +14031,27 @@ to bytestring-strict-builder.")
(description
"QuasiQuoter for Perl6-style multi-line interpolated strings.")
(license license:public-domain)))
+
+(define-public ghc-loch-th
+ (package
+ (name "ghc-loch-th")
+ (version "0.2.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://hackage.haskell.org/package/loch-th/loch-th-"
+ version
+ ".tar.gz"))
+ (sha256
+ (base32
+ "1hvdkcyrlnv65q8x8h0441x30wr9bbfbg3961xd3fy9an5r961fc"))))
+ (build-system haskell-build-system)
+ (home-page "https://github.com/liskin/loch-th")
+ (synopsis
+ "Support for precise error locations in source files (Template Haskell version)")
+ (description
+ "This module provides a Template Haskell based mechanism to tag failures with
+the location of the failure call. The location message includes the file name,
+line and column numbers.")
+ (license license:bsd-3)))
--
2.21.0 (Apple Git-122.2)
R
R
Robert Vollmert wrote on 29 Nov 2019 12:37
[PATCH 27/49] gnu: Add ghc-type-hint.
(address . 38423@debbugs.gnu.org)(name . Robert Vollmert)(address . rob@vllmrt.net)
20191129113751.82405-27-rob@vllmrt.net
* gnu/packages/haskell-xyz.scm (ghc-type-hint): New variable.
---
gnu/packages/haskell-xyz.scm | 24 ++++++++++++++++++++++++
1 file changed, 24 insertions(+)

Toggle diff (34 lines)
diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm
index 7c1b75a5ed..d5dbff4433 100644
--- a/gnu/packages/haskell-xyz.scm
+++ b/gnu/packages/haskell-xyz.scm
@@ -13749,3 +13749,27 @@ files and directories in a portable way.")
(description
"This package provides Internet Protocol data structures")
(license license:bsd-3)))
+
+(define-public ghc-type-hint
+ (package
+ (name "ghc-type-hint")
+ (version "0.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://hackage.haskell.org/package/type-hint/type-hint-"
+ version
+ ".tar.gz"))
+ (sha256
+ (base32
+ "1fcrma7m6y7i1y42rzhv7qch8xkk93lkh1767saw4hsb9fzwsq8i"))))
+ (build-system haskell-build-system)
+ (home-page "https://github.com/mvv/type-hint")
+ (synopsis
+ "Guide type inference with proxy values")
+ (description
+ "This package provides 'Proxy' values for various types
+from the base library and functions to use these values as
+hints for type inference.")
+ (license license:bsd-3)))
--
2.21.0 (Apple Git-122.2)
R
R
Robert Vollmert wrote on 29 Nov 2019 12:37
[PATCH 25/49] gnu: Add ghc-network-ip.
(address . 38423@debbugs.gnu.org)(name . Robert Vollmert)(address . rob@vllmrt.net)
20191129113751.82405-25-rob@vllmrt.net
* gnu/packages/haskell-xyz.scm (ghc-network-ip): New variable.
---
gnu/packages/haskell-xyz.scm | 35 +++++++++++++++++++++++++++++++++++
1 file changed, 35 insertions(+)

Toggle diff (45 lines)
diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm
index ed02b509ac..7c1b75a5ed 100644
--- a/gnu/packages/haskell-xyz.scm
+++ b/gnu/packages/haskell-xyz.scm
@@ -13714,3 +13714,38 @@ between data and its (human-friendly) textual representation.")
"This library provides a basic set of operations for manipulating
files and directories in a portable way.")
(license license:bsd-3)))
+
+(define-public ghc-network-ip
+ (package
+ (name "ghc-network-ip")
+ (version "0.3.0.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://hackage.haskell.org/package/network-ip/network-ip-"
+ version
+ ".tar.gz"))
+ (sha256
+ (base32
+ "1zjy232pamkd3977cyaq5w5r6ksbpqpgzzlds15zrahjccirs9gf"))))
+ (build-system haskell-build-system)
+ (inputs
+ `(("ghc-data-default-class"
+ ,ghc-data-default-class)
+ ("ghc-data-endian" ,ghc-data-endian)
+ ("ghc-data-dword" ,ghc-data-dword)
+ ("ghc-type-hint" ,ghc-type-hint)
+ ("ghc-hashable" ,ghc-hashable)
+ ("ghc-data-serializer" ,ghc-data-serializer)
+ ("ghc-text-printer" ,ghc-text-printer)
+ ("ghc-data-textual" ,ghc-data-textual)
+ ("ghc-parsers" ,ghc-parsers)))
+ (native-inputs
+ `(("ghc-tasty" ,ghc-tasty)
+ ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
+ (home-page "https://github.com/mvv/network-ip")
+ (synopsis "Internet Protocol data structures")
+ (description
+ "This package provides Internet Protocol data structures")
+ (license license:bsd-3)))
--
2.21.0 (Apple Git-122.2)
R
R
Robert Vollmert wrote on 29 Nov 2019 12:37
[PATCH 43/49] gnu: Add ghc-swagger2.
(address . 38423@debbugs.gnu.org)(name . Robert Vollmert)(address . rob@vllmrt.net)
20191129113751.82405-43-rob@vllmrt.net
* gnu/packages/haskell-web.scm (ghc-swagger2): New variable.
---
gnu/packages/haskell-web.scm | 57 ++++++++++++++++++++++++++++++++++++
1 file changed, 57 insertions(+)

Toggle diff (67 lines)
diff --git a/gnu/packages/haskell-web.scm b/gnu/packages/haskell-web.scm
index da52f1f24f..aca00c5aee 100644
--- a/gnu/packages/haskell-web.scm
+++ b/gnu/packages/haskell-web.scm
@@ -1764,3 +1764,60 @@ as well. Selecting the appropriate header value is achieved by comparing
a list of server options against the quality-indexed values supplied by
the client.")
(license license:expat)))
+
+(define-public ghc-swagger2
+ (package
+ (name "ghc-swagger2")
+ (version "2.3.1.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://hackage.haskell.org/package/swagger2/swagger2-"
+ version
+ ".tar.gz"))
+ (sha256
+ (base32
+ "19fslhjqcnk0da1c8sdflnnxjzbbzqb0nbknpgyd45q0psxr6xs7"))))
+ (build-system haskell-build-system)
+ (inputs
+ `(("ghc-base-compat-batteries"
+ ,ghc-base-compat-batteries)
+ ("ghc-aeson" ,ghc-aeson)
+ ("ghc-cookie" ,ghc-cookie)
+ ("ghc-generics-sop" ,ghc-generics-sop)
+ ("ghc-hashable" ,ghc-hashable)
+ ("ghc-http-media" ,ghc-http-media)
+ ("ghc-insert-ordered-containers"
+ ,ghc-insert-ordered-containers)
+ ("ghc-lens" ,ghc-lens)
+ ("ghc-network" ,ghc-network)
+ ("ghc-scientific" ,ghc-scientific)
+ ("ghc-transformers-compat"
+ ,ghc-transformers-compat)
+ ("ghc-unordered-containers"
+ ,ghc-unordered-containers)
+ ("ghc-uuid-types" ,ghc-uuid-types)
+ ("ghc-vector" ,ghc-vector)))
+ (native-inputs
+ `(("cabal-doctest" ,cabal-doctest)
+ ("hspec-discover" ,hspec-discover)
+ ("ghc-glob" ,ghc-glob)
+ ("ghc-hunit" ,ghc-hunit)
+ ("ghc-quickcheck" ,ghc-quickcheck)
+ ("ghc-aeson-qq" ,ghc-aeson-qq)
+ ("ghc-doctest" ,ghc-doctest)
+ ("ghc-hspec" ,ghc-hspec)
+ ("ghc-quickcheck-instances" ,ghc-quickcheck-instances)))
+ (arguments
+ `(#:cabal-revision
+ ("1"
+ "1g6jiadrvglrbf0857nzfbnjxmb3lwqamgs47j3qv9k6kfwilzyk")))
+ (home-page
+ "https://github.com/GetShopTV/swagger2")
+ (synopsis "Swagger 2.0 data model")
+ (description
+ "This library is inteded to be used for decoding and encoding Swagger 2.0
+API specifications as well as manipulating them. The original Swagger 2.0
+specification is available at http://swagger.io/specification/.")
+ (license license:bsd-3)))
--
2.21.0 (Apple Git-122.2)
R
R
Robert Vollmert wrote on 29 Nov 2019 12:37
[PATCH 32/49] gnu: Add ghc-bytestring-tree-builder.
(address . 38423@debbugs.gnu.org)(name . Robert Vollmert)(address . rob@vllmrt.net)
20191129113751.82405-32-rob@vllmrt.net
* gnu/packages/haskell-xyz.scm (ghc-bytestring-tree-builder): New variable.
---
gnu/packages/haskell-xyz.scm | 35 +++++++++++++++++++++++++++++++++++
1 file changed, 35 insertions(+)

Toggle diff (45 lines)
diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm
index 26e5b2644d..acf8093de9 100644
--- a/gnu/packages/haskell-xyz.scm
+++ b/gnu/packages/haskell-xyz.scm
@@ -13905,3 +13905,38 @@ they do not get forgotten so easily.")
"A highly-efficient but limited parser API specialised for bytestrings")
(description "")
(license license:expat)))
+
+(define-public ghc-bytestring-tree-builder
+ (package
+ (name "ghc-bytestring-tree-builder")
+ (version "0.2.7.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://hackage.haskell.org/package/bytestring-tree-builder/bytestring-tree-builder-"
+ version
+ ".tar.gz"))
+ (sha256
+ (base32
+ "03h2nmhyrr63gw4xmflsrmwf80gvayhs32wnpg3k9aqfjzpz4bd1"))))
+ (build-system haskell-build-system)
+ (inputs
+ `(("ghc-semigroups" ,ghc-semigroups)
+ ("ghc-base-prelude" ,ghc-base-prelude)))
+ (native-inputs
+ `(("ghc-tasty" ,ghc-tasty)
+ ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
+ ("ghc-tasty-hunit" ,ghc-tasty-hunit)
+ ("ghc-quickcheck-instances"
+ ,ghc-quickcheck-instances)
+ ("ghc-quickcheck" ,ghc-quickcheck)))
+ (home-page
+ "https://github.com/nikita-volkov/bytestring-tree-builder")
+ (synopsis
+ "A very efficient ByteString builder implementation based on the binary tree")
+ (description
+ "According to the benchmarks this builder implementation beats all the alternatives.
+It is especially well-suited for generating strict bytestrings, beating the standard
+builder by at least the factor of 4.")
+ (license license:expat)))
--
2.21.0 (Apple Git-122.2)
R
R
Robert Vollmert wrote on 29 Nov 2019 12:37
[PATCH 33/49] gnu: Add ghc-bytestring-strict-builder.
(address . 38423@debbugs.gnu.org)(name . Robert Vollmert)(address . rob@vllmrt.net)
20191129113751.82405-33-rob@vllmrt.net
* gnu/packages/haskell-xyz.scm (ghc-bytestring-strict-builder): New variable.
---
gnu/packages/haskell-xyz.scm | 43 ++++++++++++++++++++++++++++++++++++
1 file changed, 43 insertions(+)

Toggle diff (53 lines)
diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm
index acf8093de9..8637f5c637 100644
--- a/gnu/packages/haskell-xyz.scm
+++ b/gnu/packages/haskell-xyz.scm
@@ -13940,3 +13940,46 @@ they do not get forgotten so easily.")
It is especially well-suited for generating strict bytestrings, beating the standard
builder by at least the factor of 4.")
(license license:expat)))
+
+(define-public ghc-bytestring-strict-builder
+ (package
+ (name "ghc-bytestring-strict-builder")
+ (version "0.4.5.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://hackage.haskell.org/package/bytestring-strict-builder/bytestring-strict-builder-"
+ version
+ ".tar.gz"))
+ (sha256
+ (base32
+ "17n6ll8k26312fgxbhws1yrswvy5dbsgyf57qksnj0akdssysy8q"))))
+ (build-system haskell-build-system)
+ (inputs
+ `(("ghc-semigroups" ,ghc-semigroups)
+ ("ghc-base-prelude" ,ghc-base-prelude)))
+ (native-inputs
+ `(("ghc-tasty" ,ghc-tasty)
+ ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
+ ("ghc-tasty-hunit" ,ghc-tasty-hunit)
+ ("ghc-quickcheck-instances"
+ ,ghc-quickcheck-instances)
+ ("ghc-quickcheck" ,ghc-quickcheck)
+ ("ghc-rerebase" ,ghc-rerebase)))
+ (arguments
+ `(#:cabal-revision
+ ("1"
+ "1snn8qb17maa76zji75i4yfz9x8ci16xp6zwg6kgwb33lf06imnd")))
+ (home-page
+ "https://github.com/nikita-volkov/bytestring-strict-builder")
+ (synopsis
+ "An efficient strict bytestring builder")
+ (description
+ "According to https://github.com/nikita-volkov/bytestring-builders-benchmark,
+this library provides on average the fastest builder of strict bytestrings.
+Practical benchmarks have proven it to be highly performant as well. The
+encoders from the postgresql-binary library have shown a stable performance
+improvement by factors of up to 10 after the migration from the standard builder
+to bytestring-strict-builder.")
+ (license license:expat)))
--
2.21.0 (Apple Git-122.2)
R
R
Robert Vollmert wrote on 29 Nov 2019 12:37
[PATCH 22/49] gnu: Add ghc-data-serializer.
(address . 38423@debbugs.gnu.org)(name . Robert Vollmert)(address . rob@vllmrt.net)
20191129113751.82405-22-rob@vllmrt.net
* gnu/packages/haskell-xyz.scm (ghc-data-serializer): New variable.
---
gnu/packages/haskell-xyz.scm | 32 ++++++++++++++++++++++++++++++++
1 file changed, 32 insertions(+)

Toggle diff (42 lines)
diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm
index 5f90fc1551..766eb129bb 100644
--- a/gnu/packages/haskell-xyz.scm
+++ b/gnu/packages/haskell-xyz.scm
@@ -13625,3 +13625,35 @@ fixed-length binary word data types. Signed and unsigned
(description
"This package provides helpers for converting endian-sensitive data.")
(license license:bsd-3)))
+
+(define-public ghc-data-serializer
+ (package
+ (name "ghc-data-serializer")
+ (version "0.3.4")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://hackage.haskell.org/package/data-serializer/data-serializer-"
+ version
+ ".tar.gz"))
+ (sha256
+ (base32
+ "1ijy8l5lxmm8wpzx4h2vh9q21zz66xgh979s32aa4b16l9m1b4z7"))))
+ (build-system haskell-build-system)
+ (inputs
+ `(("ghc-semigroups" ,ghc-semigroups)
+ ("ghc-cereal" ,ghc-cereal)
+ ("ghc-data-endian" ,ghc-data-endian)
+ ("ghc-parsers" ,ghc-parsers)
+ ("ghc-split" ,ghc-split)))
+ (native-inputs
+ `(("ghc-tasty" ,ghc-tasty)
+ ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
+ (home-page
+ "https://github.com/mvv/data-serializer")
+ (synopsis
+ "Common API for serialization libraries")
+ (description
+ "This package provides a common API for serialization libraries like <http://hackage.haskell.org/package/binary binary> and <http://hackage.haskell.org/package/cereal cereal>.")
+ (license license:bsd-3)))
--
2.21.0 (Apple Git-122.2)
R
R
Robert Vollmert wrote on 29 Nov 2019 12:37
[PATCH 37/49] gnu: Add ghc-ranged-sets.
(address . 38423@debbugs.gnu.org)(name . Robert Vollmert)(address . rob@vllmrt.net)
20191129113751.82405-37-rob@vllmrt.net
* gnu/packages/haskell-xyz.scm (ghc-ranged-sets): New variable.
---
gnu/packages/haskell-xyz.scm | 29 +++++++++++++++++++++++++++++
1 file changed, 29 insertions(+)

Toggle diff (39 lines)
diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm
index 1b9db3f519..88dd872b9e 100644
--- a/gnu/packages/haskell-xyz.scm
+++ b/gnu/packages/haskell-xyz.scm
@@ -14055,3 +14055,32 @@ to bytestring-strict-builder.")
the location of the failure call. The location message includes the file name,
line and column numbers.")
(license license:bsd-3)))
+
+(define-public ghc-ranged-sets
+ (package
+ (name "ghc-ranged-sets")
+ (version "0.4.0") ;; not stackage LTS 8.4
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://hackage.haskell.org/package/Ranged-sets/Ranged-sets-"
+ version
+ ".tar.gz"))
+ (sha256
+ (base32
+ "1skd2a6yw7dd5vq8x81kwh28gi8sgyzg9qqqyadxmgpvy11sh9ab"))))
+ (build-system haskell-build-system)
+ (inputs
+ `(("ghc-hunit" ,ghc-hunit)
+ ("ghc-quickcheck" ,ghc-quickcheck)))
+ (home-page
+ "https://github.com/PaulJohnson/Ranged-sets")
+ (synopsis "Ranged sets for Haskell")
+ (description
+ "A ranged set is an ordered list of ranges.
+This allows sets such as all reals x such that:
+(0.25 < x <= 0.75 or 1.4 <= x < 2.3 or 4.5 < x).
+Alternatively you can have all strings s such that:
+(\"F\" <= s < \"G\")")
+ (license license:bsd-3)))
--
2.21.0 (Apple Git-122.2)
R
R
Robert Vollmert wrote on 29 Nov 2019 12:37
[PATCH 39/49] gnu: Add ghc-postgresql-libpq.
(address . 38423@debbugs.gnu.org)(name . Robert Vollmert)(address . rob@vllmrt.net)
20191129113751.82405-39-rob@vllmrt.net
* gnu/packages/haskell-xyz.scm (ghc-postgresql-libpq): New variable.
---
gnu/packages/haskell-xyz.scm | 29 +++++++++++++++++++++++++++++
1 file changed, 29 insertions(+)

Toggle diff (55 lines)
diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm
index efe751fa88..4ca9ffa5ec 100644
--- a/gnu/packages/haskell-xyz.scm
+++ b/gnu/packages/haskell-xyz.scm
@@ -42,12 +42,14 @@
#:use-module (gnu packages)
#:use-module (gnu packages base)
#:use-module (gnu packages compression)
+ #:use-module (gnu packages databases)
#:use-module (gnu packages emacs)
#:use-module (gnu packages gcc)
#:use-module (gnu packages gl)
#:use-module (gnu packages graphviz)
#:use-module (gnu packages gtk)
#:use-module (gnu packages haskell-apps)
+ #:use-module (gnu packages haskell)
#:use-module (gnu packages haskell-check)
#:use-module (gnu packages haskell-crypto)
#:use-module (gnu packages haskell-web)
@@ -8620,6 +8622,33 @@ standard Read class, for better deserialisation of Haskell values from
Strings.")
(license license:lgpl2.1)))
+(define-public ghc-postgresql-libpq
+ (package
+ (name "ghc-postgresql-libpq")
+ (version "0.9.4.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://hackage.haskell.org/package/postgresql-libpq/postgresql-libpq-"
+ version
+ ".tar.gz"))
+ (sha256
+ (base32
+ "1y86kysakfcf3zq252yl2llrx3765vxvkdwda4q5ql7ikv3m786f"))))
+ (build-system haskell-build-system)
+ (inputs
+ `(("postgresql" ,postgresql)))
+ (home-page
+ "https://github.com/phadej/postgresql-libpq")
+ (synopsis "low-level binding to libpq")
+ (description
+ "This is a binding to libpq: the C application programmer's interface
+to PostgreSQL. libpq is a set of library functions that allow client
+programs to pass queries to the PostgreSQL backend server and to receive
+the results of these queries.")
+ (license license:bsd-3)))
+
(define-public ghc-pqueue
(package
(name "ghc-pqueue")
--
2.21.0 (Apple Git-122.2)
R
R
Robert Vollmert wrote on 29 Nov 2019 12:37
[PATCH 49/49] gnu: Add postgrest service.
(address . 38423@debbugs.gnu.org)(name . Robert Vollmert)(address . rob@vllmrt.net)
20191129113751.82405-49-rob@vllmrt.net
* gnu/services/databases.scm: Add postgrest service and associated
record type.
---
gnu/services/databases.scm | 101 ++++++++++++++++++++++++++++++++++++-
1 file changed, 100 insertions(+), 1 deletion(-)

Toggle diff (125 lines)
diff --git a/gnu/services/databases.scm b/gnu/services/databases.scm
index 6b04ae0a0f..3f938689df 100644
--- a/gnu/services/databases.scm
+++ b/gnu/services/databases.scm
@@ -28,6 +28,7 @@
#:use-module (gnu system shadow)
#:use-module (gnu packages admin)
#:use-module (gnu packages databases)
+ #:use-module (gnu packages haskell-apps)
#:use-module (guix build-system trivial)
#:use-module (guix build union)
#:use-module (guix modules)
@@ -81,7 +82,11 @@
redis-configuration
redis-configuration?
- redis-service-type))
+ redis-service-type
+
+ postgrest-configuration
+ postgrest-configuration?
+ postgrest-service-type))
;;; Commentary:
;;;
@@ -647,3 +652,97 @@ The optional @var{config} argument specifies the configuration for
(service-extension account-service-type
(const %redis-accounts))))
(default-value (redis-configuration))))
+
+
+;;;
+;;; PostgREST
+;;;
+
+(define-record-type* <postgrest-configuration>
+ postgrest-configuration make-postgrest-configuration
+ postgrest-configuration?
+ (postgrest postgrest-configuration-postgrest ;<package>
+ (default postgrest))
+ (db-uri postgrest-configuration-db-uri
+ (default "postgres://postgrest@localhost:5432/postgrestdb"))
+ (db-schema postgrest-configuration-db-schema
+ (default "public"))
+ (db-anon-role postgrest-configuration-db-anon-role
+ (default "postgrest-anon"))
+ (jwt-secret postgrest-configuration-jwt-secret
+ (default #f))
+ (server-host postgrest-configuration-server-host
+ (default "127.0.0.1"))
+ (server-port postgrest-configuration-server-port
+ (default 3000))
+ (config-file postgrest-configuration-config-file
+ (default #f)))
+
+(define (default-postgrest.conf db-uri db-schema db-anon-role jwt-secret server-host server-port)
+ (mixed-text-file "postgrest.conf"
+ "server-host = \"" server-host "\"\n"
+ "server-port = " (number->string server-port) "\n"
+ "db-uri = \"" db-uri "\"\n"
+ "db-schema = \"" db-schema "\"\n"
+ "db-anon-role = \"" db-anon-role "\"\n"
+ (if jwt-secret
+ (string-append "jwt-secret = \"" jwt-secret "\"\n")
+ "")))
+
+(define %postgrest-accounts
+ (list (user-group (name "postgrest") (system? #t))
+ (user-account
+ (name "postgrest")
+ (group "postgrest")
+ (system? #t)
+ (comment "PostgREST server user")
+ (home-directory "/var/empty")
+ (shell (file-append shadow "/sbin/nologin")))))
+
+(define* (logger-wrapper name exec . args)
+ "Return a derivation that builds a script to start a process with
+standard output and error redirected to syslog via logger."
+ (define exp
+ #~(begin
+ (use-modules (ice-9 popen))
+ (let* ((pid (number->string (getpid)))
+ (logger #$(file-append inetutils "/bin/logger"))
+ (args (list "-t" #$name (string-append "--id=" pid)))
+ (pipe (apply open-pipe* OPEN_WRITE logger args)))
+ (dup pipe 1)
+ (dup pipe 2)
+ (execl #$exec #$exec #$@args))))
+ (program-file (string-append name "-logger") exp))
+
+(define postgrest-shepherd-service
+ (match-lambda
+ (($ <postgrest-configuration> postgrest db-uri db-schema db-anon-role
+ jwt-secret server-port server-host config-file)
+ (let* ((config-file
+ (or config-file
+ (default-postgrest.conf db-uri db-schema db-anon-role
+ jwt-secret server-port server-host)))
+ (postgrest-logger
+ (logger-wrapper "postgrest"
+ (file-append postgrest "/bin/postgrest")
+ config-file)))
+
+ (list (shepherd-service
+ (provision '(postgrest))
+ (documentation "Run the PostgREST daemon.")
+ (requirement '(user-processes postgres))
+ (start #~(make-forkexec-constructor
+ '(#$postgrest-logger)
+ #:user "postgrest"
+ #:group "postgrest"))
+ (stop #~(make-kill-destructor))))))))
+
+(define postgrest-service-type
+ (service-type
+ (name 'postgrest)
+ (extensions
+ (list (service-extension shepherd-root-service-type
+ postgrest-shepherd-service)
+ (service-extension account-service-type
+ (const %postgrest-accounts))))
+ (default-value (postgrest-configuration))))
--
2.21.0 (Apple Git-122.2)
R
R
Robert Vollmert wrote on 29 Nov 2019 12:37
[PATCH 35/49] gnu: Add ghc-interpolatedstring-perl6.
(address . 38423@debbugs.gnu.org)(name . Robert Vollmert)(address . rob@vllmrt.net)
20191129113751.82405-35-rob@vllmrt.net
* gnu/packages/haskell-xyz.scm (ghc-interpolatedstring-perl6): New variable.
---
gnu/packages/haskell-xyz.scm | 25 +++++++++++++++++++++++++
1 file changed, 25 insertions(+)

Toggle diff (35 lines)
diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm
index f876709648..d401ddd469 100644
--- a/gnu/packages/haskell-xyz.scm
+++ b/gnu/packages/haskell-xyz.scm
@@ -14006,3 +14006,28 @@ to bytestring-strict-builder.")
(description
"multi-line string / here document using QuasiQuotes")
(license license:public-domain)))
+
+(define-public ghc-interpolatedstring-perl6
+ (package
+ (name "ghc-interpolatedstring-perl6")
+ (version "1.0.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://hackage.haskell.org/package/interpolatedstring-perl6/interpolatedstring-perl6-"
+ version
+ ".tar.gz"))
+ (sha256
+ (base32
+ "0n3j6qvzp6as5ji93rn0sy873w5hdsplik51lkrah42cl95vmbay"))))
+ (build-system haskell-build-system)
+ (inputs
+ `(("ghc-haskell-src-meta" ,ghc-haskell-src-meta)))
+ (home-page
+ "http://hackage.haskell.org/package/interpolatedstring-perl6")
+ (synopsis
+ "QuasiQuoter for Perl6-style multi-line interpolated strings")
+ (description
+ "QuasiQuoter for Perl6-style multi-line interpolated strings.")
+ (license license:public-domain)))
--
2.21.0 (Apple Git-122.2)
R
R
Robert Vollmert wrote on 29 Nov 2019 12:37
[PATCH 47/49] gnu: Add ghc-jose.
(address . 38423@debbugs.gnu.org)(name . Robert Vollmert)(address . rob@vllmrt.net)
20191129113751.82405-47-rob@vllmrt.net
* gnu/packages/haskell-web.scm (ghc-jose): New variable.
---
gnu/packages/haskell-web.scm | 54 ++++++++++++++++++++++++++++++++++++
1 file changed, 54 insertions(+)

Toggle diff (64 lines)
diff --git a/gnu/packages/haskell-web.scm b/gnu/packages/haskell-web.scm
index aca00c5aee..b38ca37e25 100644
--- a/gnu/packages/haskell-web.scm
+++ b/gnu/packages/haskell-web.scm
@@ -1821,3 +1821,57 @@ the client.")
API specifications as well as manipulating them. The original Swagger 2.0
specification is available at http://swagger.io/specification/.")
(license license:bsd-3)))
+
+(define-public ghc-jose
+ (package
+ (name "ghc-jose")
+ (version "0.8.1.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://hackage.haskell.org/package/jose/jose-"
+ version
+ ".tar.gz"))
+ (sha256
+ (base32
+ "02xg8axy6whbkn0mzg1gjy6b1mhxlmsh1x7vjk1fiawvg9nwzrkl"))))
+ (build-system haskell-build-system)
+ (inputs
+ `(("ghc-attoparsec" ,ghc-attoparsec)
+ ("ghc-base64-bytestring" ,ghc-base64-bytestring)
+ ("ghc-concise" ,ghc-concise)
+ ("ghc-cryptonite" ,ghc-cryptonite)
+ ("ghc-lens" ,ghc-lens)
+ ("ghc-memory" ,ghc-memory)
+ ("ghc-monad-time" ,ghc-monad-time)
+ ("ghc-semigroups" ,ghc-semigroups)
+ ("ghc-safe" ,ghc-safe)
+ ("ghc-aeson" ,ghc-aeson)
+ ("ghc-unordered-containers"
+ ,ghc-unordered-containers)
+ ("ghc-network-uri" ,ghc-network-uri)
+ ("ghc-quickcheck" ,ghc-quickcheck)
+ ("ghc-quickcheck-instances"
+ ,ghc-quickcheck-instances)
+ ("ghc-x509" ,ghc-x509)
+ ("ghc-vector" ,ghc-vector)))
+ (native-inputs
+ `(("ghc-hspec" ,ghc-hspec)
+ ("ghc-tasty" ,ghc-tasty)
+ ("ghc-tasty-hspec" ,ghc-tasty-hspec)
+ ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
+ (home-page
+ "https://github.com/frasertweedale/hs-jose")
+ (synopsis
+ "Javascript Object Signing and Encryption and JSON Web Token library")
+ (description
+ "An implementation of the Javascript Object Signing and Encryption (JOSE)
+and JSON Web Token (JWT; RFC 7519) formats.
+The JSON Web Signature (JWS; RFC 7515) implementation is complete.
+EdDSA signatures (RFC 8037) are supported (Ed25519 only).
+JWK Thumbprint (RFC 7638) is supported (requires /aeson/ >= 0.10).
+JSON Web Encryption (JWE; RFC 7516) is not yet implemented.
+The __ECDSA implementation is vulnerable to timing attacks__
+and should only be used for verification.")
+ (license license:asl2.0)))
--
2.21.0 (Apple Git-122.2)
R
R
Robert Vollmert wrote on 29 Nov 2019 12:37
[PATCH 41/49] gnu: Add ghc-hasql-pool.
(address . 38423@debbugs.gnu.org)(name . Robert Vollmert)(address . rob@vllmrt.net)
20191129113751.82405-41-rob@vllmrt.net
* gnu/packages/haskell-xyz.scm (ghc-hasql-pool): New variable.
---
gnu/packages/haskell-xyz.scm | 28 ++++++++++++++++++++++++++++
1 file changed, 28 insertions(+)

Toggle diff (38 lines)
diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm
index 6f24921b5f..79091ddae4 100644
--- a/gnu/packages/haskell-xyz.scm
+++ b/gnu/packages/haskell-xyz.scm
@@ -14203,3 +14203,31 @@ with the integer_datetimes setting off and on.")
The API is completely disinfected from exceptions.
All error-reporting is explicit and is presented using the Either type.")
(license license:expat)))
+
+(define-public ghc-hasql-pool
+ (package
+ (name "ghc-hasql-pool")
+ (version "0.5.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://hackage.haskell.org/package/hasql-pool/hasql-pool-"
+ version
+ ".tar.gz"))
+ (sha256
+ (base32
+ "0agl5ilp0amsp9pidhmgivdyaq43x3xi7hb80c91n9l92pv6163k"))))
+ (build-system haskell-build-system)
+ (inputs
+ `(("ghc-resource-pool" ,ghc-resource-pool)
+ ("ghc-hasql" ,ghc-hasql)
+ ("ghc-base-prelude" ,ghc-base-prelude)))
+ (arguments
+ `(#:tests? ; tests require a running postgres
+ #f))
+ (home-page
+ "https://github.com/nikita-volkov/hasql-pool")
+ (synopsis "A pool of connections for Hasql")
+ (description "A pool of connections for Hasql")
+ (license license:expat)))
--
2.21.0 (Apple Git-122.2)
R
R
Robert Vollmert wrote on 29 Nov 2019 12:37
[PATCH 48/49] gnu: Add postgrest.
(address . 38423@debbugs.gnu.org)(name . Robert Vollmert)(address . rob@vllmrt.net)
20191129113751.82405-48-rob@vllmrt.net
* gnu/packages/haskell-apps.scm (postgrest): New variable.
---
gnu/packages/haskell-apps.scm | 67 +++++++++++++++++++++++++++++++++++
1 file changed, 67 insertions(+)

Toggle diff (77 lines)
diff --git a/gnu/packages/haskell-apps.scm b/gnu/packages/haskell-apps.scm
index d5c31cbb0b..1cca90f429 100644
--- a/gnu/packages/haskell-apps.scm
+++ b/gnu/packages/haskell-apps.scm
@@ -724,3 +724,70 @@ advanced user's otherwise working script to fail under future circumstances.
code in a file, just clean up import statements and a few other tedious
items. This tool tries to help where necessary without getting in the way.")
(license license:bsd-3)))
+
+(define-public postgrest
+ (package
+ (name "postgrest")
+ (version "6.0.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://hackage.haskell.org/package/postgrest/postgrest-"
+ version
+ ".tar.gz"))
+ (sha256
+ (base32
+ "0c1yapjwsccqmj6jh8bkgv15p83dh7bd7ib68cd80pi3n9dplqvw"))))
+ (build-system haskell-build-system)
+ (arguments `(#:tests? #f)) ; tests require a running postgresql server
+ (inputs
+ `(("ghc-aeson" ,ghc-aeson)
+ ("ghc-ansi-wl-pprint" ,ghc-ansi-wl-pprint)
+ ("ghc-base64-bytestring" ,ghc-base64-bytestring)
+ ("ghc-case-insensitive" ,ghc-case-insensitive)
+ ("ghc-cassava" ,ghc-cassava)
+ ("ghc-configurator-pg" ,ghc-configurator-pg)
+ ("ghc-contravariant" ,ghc-contravariant)
+ ("ghc-contravariant-extras"
+ ,ghc-contravariant-extras)
+ ("ghc-either" ,ghc-either)
+ ("ghc-gitrev" ,ghc-gitrev)
+ ("ghc-hasql" ,ghc-hasql)
+ ("ghc-hasql-pool" ,ghc-hasql-pool)
+ ("ghc-hasql-transaction" ,ghc-hasql-transaction)
+ ("ghc-heredoc" ,ghc-heredoc)
+ ("ghc-http" ,ghc-http)
+ ("ghc-http-types" ,ghc-http-types)
+ ("ghc-insert-ordered-containers"
+ ,ghc-insert-ordered-containers)
+ ("ghc-interpolatedstring-perl6"
+ ,ghc-interpolatedstring-perl6)
+ ("ghc-jose" ,ghc-jose)
+ ("ghc-lens" ,ghc-lens)
+ ("ghc-lens-aeson" ,ghc-lens-aeson)
+ ("ghc-network-uri" ,ghc-network-uri)
+ ("ghc-optparse-applicative"
+ ,ghc-optparse-applicative)
+ ("ghc-protolude" ,ghc-protolude)
+ ("ghc-ranged-sets" ,ghc-ranged-sets)
+ ("ghc-regex-tdfa" ,ghc-regex-tdfa)
+ ("ghc-scientific" ,ghc-scientific)
+ ("ghc-swagger2" ,ghc-swagger2)
+ ("ghc-unordered-containers"
+ ,ghc-unordered-containers)
+ ("ghc-vector" ,ghc-vector)
+ ("ghc-wai" ,ghc-wai)
+ ("ghc-wai-cors" ,ghc-wai-cors)
+ ("ghc-wai-extra" ,ghc-wai-extra)
+ ("ghc-wai-middleware-static"
+ ,ghc-wai-middleware-static)
+ ("ghc-cookie" ,ghc-cookie)
+ ("ghc-auto-update" ,ghc-auto-update)
+ ("ghc-warp" ,ghc-warp)
+ ("ghc-retry" ,ghc-retry)))
+ (home-page "https://postgrest.org")
+ (synopsis "REST API for any Postgres database")
+ (description
+ "Reads the schema of a PostgreSQL database and creates RESTful routes for the tables and views, supporting all HTTP verbs that security permits.")
+ (license license:expat)))
--
2.21.0 (Apple Git-122.2)
R
R
Robert Vollmert wrote on 29 Nov 2019 12:37
[PATCH 45/49] gnu: Add ghc-cassava.
(address . 38423@debbugs.gnu.org)(name . Robert Vollmert)(address . rob@vllmrt.net)
20191129113751.82405-45-rob@vllmrt.net
* gnu/packages/haskell-xyz.scm (ghc-cassava): New variable.
---
gnu/packages/haskell-xyz.scm | 40 ++++++++++++++++++++++++++++++++++++
1 file changed, 40 insertions(+)

Toggle diff (50 lines)
diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm
index ac3fecc382..fd8929dd7b 100644
--- a/gnu/packages/haskell-xyz.scm
+++ b/gnu/packages/haskell-xyz.scm
@@ -14300,3 +14300,43 @@ of <https://hackage.haskell.org/package/configurator configurator> and
Its aim is primarily to allow updating programs that depend on configurator-ng to new versions
of GHC without changing the configuration file format.")
(license license:bsd-3)))
+
+(define-public ghc-cassava
+ (package
+ (name "ghc-cassava")
+ (version "0.5.1.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://hackage.haskell.org/package/cassava/cassava-"
+ version
+ ".tar.gz"))
+ (sha256
+ (base32
+ "0xs2c5lpy0g5lsmp2cx0dm5lnxij7cgry6xd5gsn3bfdlap8lb3n"))))
+ (build-system haskell-build-system)
+ (inputs
+ `(("ghc-attoparsec" ,ghc-attoparsec)
+ ("ghc-hashable" ,ghc-hashable)
+ ("ghc-scientific" ,ghc-scientific)
+ ("ghc-unordered-containers"
+ ,ghc-unordered-containers)
+ ("ghc-vector" ,ghc-vector)
+ ("ghc-only" ,ghc-only)
+ ("ghc-text-short" ,ghc-text-short)
+ ("ghc-bytestring-builder"
+ ,ghc-bytestring-builder)))
+ (arguments
+ `(#:tests? ; require outdated quickcheck version
+ #f
+ #:cabal-revision
+ ("2"
+ "13mbhan3agzf8ki8hcac1xf50h9nbzx2b47zjqrch2050v6xa351")))
+ (home-page "https://github.com/hvr/cassava")
+ (synopsis "A CSV parsing and encoding library")
+ (description
+ "cassava is a library for parsing and encoding [RFC 4180](https://tools.ietf.org/html/rfc4180)
+compliant [comma-separated values (CSV)](https://en.wikipedia.org/wiki/Comma-separated_values) data,
+which is a textual line-oriented format commonly used for exchanging tabular data.")
+ (license license:bsd-3)))
--
2.21.0 (Apple Git-122.2)
R
R
Robert Vollmert wrote on 29 Nov 2019 12:37
[PATCH 01/49] gnu: Add ghc-text-printer.
(address . 38423@debbugs.gnu.org)(name . Robert Vollmert)(address . rob@vllmrt.net)
20191129113751.82405-1-rob@vllmrt.net
* gnu/packages/haskell-xyz.scm (ghc-text-printer): New package.
---
gnu/packages/haskell-xyz.scm | 31 +++++++++++++++++++++++++++++++
1 file changed, 31 insertions(+)

Toggle diff (41 lines)
diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm
index fb6833207d..a267685f99 100644
--- a/gnu/packages/haskell-xyz.scm
+++ b/gnu/packages/haskell-xyz.scm
@@ -13148,3 +13148,34 @@ Zstandard compression algorithm, a fast lossless compression algorithm
targeting real-time compression scenarios at zlib-level and better
compression ratios.")
(license license:bsd-3)))
+
+(define-public ghc-text-printer
+ (package
+ (name "ghc-text-printer")
+ (version "0.5")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://hackage.haskell.org/package/text-printer/text-printer-"
+ version
+ ".tar.gz"))
+ (sha256
+ (base32
+ "02sadjd19dbxzawr1q8z3j7w6vhp5mvz1dbssk118hsvl6k0234g"))))
+ (build-system haskell-build-system)
+ (inputs
+ `(("ghc-text-latin1" ,ghc-text-latin1)
+ ("ghc-semigroups" ,ghc-semigroups)))
+ (native-inputs
+ `(("ghc-test-framework" ,ghc-test-framework)
+ ("ghc-test-framework-quickcheck2"
+ ,ghc-test-framework-quickcheck2)
+ ("ghc-quickcheck" ,ghc-quickcheck)))
+ (home-page "https://github.com/mvv/text-printer")
+ (synopsis
+ "Abstract interface for text builders/printers.")
+ (description
+ "This package provides an interface for injecting text
+into monoids such as builders and printers.")
+ (license license:bsd-3)))
--
2.21.0 (Apple Git-122.2)
R
R
Robert Vollmert wrote on 29 Nov 2019 12:37
[PATCH 30/49] gnu: Add ghc-placeholders.
(address . 38423@debbugs.gnu.org)(name . Robert Vollmert)(address . rob@vllmrt.net)
20191129113751.82405-30-rob@vllmrt.net
* gnu/packages/haskell-xyz.scm (ghc-placeholders): New variable.
---
gnu/packages/haskell-xyz.scm | 27 +++++++++++++++++++++++++++
1 file changed, 27 insertions(+)

Toggle diff (37 lines)
diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm
index 5cba944601..c38aa5f62e 100644
--- a/gnu/packages/haskell-xyz.scm
+++ b/gnu/packages/haskell-xyz.scm
@@ -13841,3 +13841,30 @@ what you can do with Control.Lens.Cons.")
(synopsis "Law-abiding lenses for aeson")
(description "Law-abiding lenses for aeson")
(license license:expat)))
+
+(define-public ghc-placeholders
+ (package
+ (name "ghc-placeholders")
+ (version "0.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://hackage.haskell.org/package/placeholders/placeholders-"
+ version
+ ".tar.gz"))
+ (sha256
+ (base32
+ "0ih35n2pw5gr9ggj2xz5zfcs4bdk200fdw6q9hdy3xna7maphak5"))))
+ (build-system haskell-build-system)
+ (home-page
+ "http://github.com/ahammar/placeholders")
+ (synopsis
+ "Placeholders for use while developing Haskell code")
+ (description
+ "While working on some Haskell code, it is often useful to work
+incrementally by inserting undefined as a placeholder for missing code.
+This library provides placeholders that produce better messages when
+evaluated at run-time and also generate compile-time warnings so that
+they do not get forgotten so easily.")
+ (license license:bsd-3)))
--
2.21.0 (Apple Git-122.2)
R
R
Robert Vollmert wrote on 29 Nov 2019 12:37
[PATCH 38/49] gnu: Add ghc-postgresql-binary.
(address . 38423@debbugs.gnu.org)(name . Robert Vollmert)(address . rob@vllmrt.net)
20191129113751.82405-38-rob@vllmrt.net
* gnu/packages/haskell-xyz.scm (ghc-postgresql-binary): New variable.
---
gnu/packages/haskell-xyz.scm | 42 ++++++++++++++++++++++++++++++++++++
1 file changed, 42 insertions(+)

Toggle diff (52 lines)
diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm
index 88dd872b9e..efe751fa88 100644
--- a/gnu/packages/haskell-xyz.scm
+++ b/gnu/packages/haskell-xyz.scm
@@ -14084,3 +14084,45 @@ This allows sets such as all reals x such that:
Alternatively you can have all strings s such that:
(\"F\" <= s < \"G\")")
(license license:bsd-3)))
+
+(define-public ghc-postgresql-binary
+ (package
+ (name "ghc-postgresql-binary")
+ (version "0.12.1.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://hackage.haskell.org/package/postgresql-binary/postgresql-binary-"
+ version
+ ".tar.gz"))
+ (sha256
+ (base32
+ "10h5299fxqmfz0kxyvivfy396q35gzg60spnjagyha33kx5m3bc3"))))
+ (build-system haskell-build-system)
+ (arguments `(#:tests? #f)) ; relies on running postgres
+ (inputs
+ `(("ghc-binary-parser" ,ghc-binary-parser)
+ ("ghc-bytestring-strict-builder"
+ ,ghc-bytestring-strict-builder)
+ ("ghc-aeson" ,ghc-aeson)
+ ("ghc-uuid" ,ghc-uuid)
+ ("ghc-scientific" ,ghc-scientific)
+ ("ghc-vector" ,ghc-vector)
+ ("ghc-network-ip" ,ghc-network-ip)
+ ("ghc-unordered-containers"
+ ,ghc-unordered-containers)
+ ("ghc-loch-th" ,ghc-loch-th)
+ ("ghc-placeholders" ,ghc-placeholders)
+ ("ghc-base-prelude" ,ghc-base-prelude)))
+ (home-page
+ "https://github.com/nikita-volkov/postgresql-binary")
+ (synopsis
+ "Encoders and decoders for the PostgreSQL's binary format")
+ (description
+ "An API for dealing with PostgreSQL's binary data format.
+It can be used to implement performant bindings to Postgres.
+E.g., hasql is based on this library. It supports all Postgres
+versions starting from 8.3 and is tested against 8.3, 9.3 and 9.5
+with the integer_datetimes setting off and on.")
+ (license license:expat)))
--
2.21.0 (Apple Git-122.2)
R
R
Robert Vollmert wrote on 29 Nov 2019 12:37
[PATCH 26/49] gnu: Add ghc-http-media.
(address . 38423@debbugs.gnu.org)(name . Robert Vollmert)(address . rob@vllmrt.net)
20191129113751.82405-26-rob@vllmrt.net
* gnu/packages/haskell-web.scm (ghc-http-media): New variable.
---
gnu/packages/haskell-web.scm | 40 ++++++++++++++++++++++++++++++++++++
1 file changed, 40 insertions(+)

Toggle diff (50 lines)
diff --git a/gnu/packages/haskell-web.scm b/gnu/packages/haskell-web.scm
index 87165be078..da52f1f24f 100644
--- a/gnu/packages/haskell-web.scm
+++ b/gnu/packages/haskell-web.scm
@@ -1724,3 +1724,43 @@ them if they exist.")
(synopsis "WAI application for static serving")
(description "WAI application for static serving.")
(license license:expat)))
+
+(define-public ghc-http-media
+ (package
+ (name "ghc-http-media")
+ (version "0.7.1.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://hackage.haskell.org/package/http-media/http-media-"
+ version
+ ".tar.gz"))
+ (sha256
+ (base32
+ "0kqjzvh5y8r6x5rw2kgd816w2963c6cbyw2qjvaj2mv59zxzqkrr"))))
+ (build-system haskell-build-system)
+ (inputs
+ `(("ghc-case-insensitive" ,ghc-case-insensitive)
+ ("ghc-utf8-string" ,ghc-utf8-string)))
+ (native-inputs
+ `(("ghc-quickcheck" ,ghc-quickcheck)
+ ("ghc-test-framework" ,ghc-test-framework)
+ ("ghc-test-framework-quickcheck2"
+ ,ghc-test-framework-quickcheck2)))
+ (arguments
+ `(#:cabal-revision
+ ("1"
+ "19py5pspx80gg679p9dzqr3iidflppxc1x4vkldamjkidyi406j8")))
+ (home-page "https://github.com/zmthy/http-media")
+ (synopsis
+ "Processing HTTP Content-Type and Accept headers")
+ (description
+ "This library is intended to be a comprehensive solution to parsing
+and selecting quality-indexed values in HTTP headers. It is capable of
+parsing both media types and language parameters from the Accept and Content
+header families, and can be extended to match against other accept headers
+as well. Selecting the appropriate header value is achieved by comparing
+a list of server options against the quality-indexed values supplied by
+the client.")
+ (license license:expat)))
--
2.21.0 (Apple Git-122.2)
R
R
Robert Vollmert wrote on 29 Nov 2019 12:37
[PATCH 17/49] gnu: Add ghc-bug.
(address . 38423@debbugs.gnu.org)(name . Robert Vollmert)(address . rob@vllmrt.net)
20191129113751.82405-17-rob@vllmrt.net
* gnu/packages/haskell-xyz.scm (ghc-bug): New variable.
---
gnu/packages/haskell-xyz.scm | 22 ++++++++++++++++++++++
1 file changed, 22 insertions(+)

Toggle diff (32 lines)
diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm
index c4d2ed3b02..3eadfff08c 100644
--- a/gnu/packages/haskell-xyz.scm
+++ b/gnu/packages/haskell-xyz.scm
@@ -13499,3 +13499,25 @@ ExceptT instances in scope.")
(description
"'MonadTime' type class for monads which carry the notion of the current time.")
(license license:bsd-3)))
+
+(define-public ghc-bug
+ (package
+ (name "ghc-bug")
+ (version "1.0.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://hackage.haskell.org/package/bug/bug-"
+ version
+ ".tar.gz"))
+ (sha256
+ (base32
+ "1xfynvp5fyn46gg3p5qq9cmb1dnw2dyf3bz6w5wdvikfvs19dwhq"))))
+ (build-system haskell-build-system)
+ (home-page
+ "https://github.com/nikita-volkov/bug")
+ (synopsis
+ "Better alternatives to the \"error\" function")
+ (description "")
+ (license license:expat)))
--
2.21.0 (Apple Git-122.2)
R
R
Robert Vollmert wrote on 29 Nov 2019 12:37
[PATCH 40/49] gnu: Add ghc-hasql.
(address . 38423@debbugs.gnu.org)(name . Robert Vollmert)(address . rob@vllmrt.net)
20191129113751.82405-40-rob@vllmrt.net
* gnu/packages/haskell-xyz.scm (ghc-hasql): New variable.
---
gnu/packages/haskell-xyz.scm | 48 ++++++++++++++++++++++++++++++++++++
1 file changed, 48 insertions(+)

Toggle diff (58 lines)
diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm
index 4ca9ffa5ec..6f24921b5f 100644
--- a/gnu/packages/haskell-xyz.scm
+++ b/gnu/packages/haskell-xyz.scm
@@ -14155,3 +14155,51 @@ E.g., hasql is based on this library. It supports all Postgres
versions starting from 8.3 and is tested against 8.3, 9.3 and 9.5
with the integer_datetimes setting off and on.")
(license license:expat)))
+
+(define-public ghc-hasql
+ (package
+ (name "ghc-hasql")
+ (version "1.4")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://hackage.haskell.org/package/hasql/hasql-"
+ version
+ ".tar.gz"))
+ (sha256
+ (base32
+ "0j2arb96i1dinpz1yxl2cjl4qhbljk9yph52cj9az50mvl8vx3w4"))))
+ (build-system haskell-build-system)
+ (inputs
+ `(("ghc-attoparsec" ,ghc-attoparsec)
+ ("ghc-postgresql-binary" ,ghc-postgresql-binary)
+ ("ghc-postgresql-libpq" ,ghc-postgresql-libpq)
+ ("ghc-bytestring-strict-builder"
+ ,ghc-bytestring-strict-builder)
+ ("ghc-dlist" ,ghc-dlist)
+ ("ghc-vector" ,ghc-vector)
+ ("ghc-hashtables" ,ghc-hashtables)
+ ("ghc-text-builder" ,ghc-text-builder)
+ ("ghc-hashable" ,ghc-hashable)
+ ("ghc-data-default-class"
+ ,ghc-data-default-class)
+ ("ghc-profunctors" ,ghc-profunctors)
+ ("ghc-contravariant-extras"
+ ,ghc-contravariant-extras)
+ ("ghc-contravariant" ,ghc-contravariant)
+ ("ghc-loch-th" ,ghc-loch-th)
+ ("ghc-placeholders" ,ghc-placeholders)
+ ("ghc-base-prelude" ,ghc-base-prelude)))
+ (arguments
+ `(#:tests? ; tests require a running postgres
+ #f))
+ (home-page
+ "https://github.com/nikita-volkov/hasql")
+ (synopsis
+ "An efficient PostgreSQL driver and a flexible mapping API")
+ (description
+ "This package is the root of the hasql ecosystem.
+The API is completely disinfected from exceptions.
+All error-reporting is explicit and is presented using the Either type.")
+ (license license:expat)))
--
2.21.0 (Apple Git-122.2)
R
R
Robert Vollmert wrote on 29 Nov 2019 12:37
[PATCH 42/49] gnu: Add ghc-hasql-transaction.
(address . 38423@debbugs.gnu.org)(name . Robert Vollmert)(address . rob@vllmrt.net)
20191129113751.82405-42-rob@vllmrt.net
* gnu/packages/haskell-xyz.scm (ghc-hasql-transaction): New variable.
---
gnu/packages/haskell-xyz.scm | 33 +++++++++++++++++++++++++++++++++
1 file changed, 33 insertions(+)

Toggle diff (43 lines)
diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm
index 79091ddae4..b8fc8a8960 100644
--- a/gnu/packages/haskell-xyz.scm
+++ b/gnu/packages/haskell-xyz.scm
@@ -14231,3 +14231,36 @@ All error-reporting is explicit and is presented using the Either type.")
(synopsis "A pool of connections for Hasql")
(description "A pool of connections for Hasql")
(license license:expat)))
+
+(define-public ghc-hasql-transaction
+ (package
+ (name "ghc-hasql-transaction")
+ (version "0.7.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://hackage.haskell.org/package/hasql-transaction/hasql-transaction-"
+ version
+ ".tar.gz"))
+ (sha256
+ (base32
+ "13d5zisr34bdbiypvpcb114d4c9yi6pyb9wnhigqpwd90vzpzsb5"))))
+ (build-system haskell-build-system)
+ (inputs
+ `(("ghc-hasql" ,ghc-hasql)
+ ("ghc-bytestring-tree-builder"
+ ,ghc-bytestring-tree-builder)
+ ("ghc-contravariant" ,ghc-contravariant)
+ ("ghc-contravariant-extras"
+ ,ghc-contravariant-extras)
+ ("ghc-base-prelude" ,ghc-base-prelude)))
+ (arguments
+ `(#:tests? ; tests require a running postgres
+ #f))
+ (home-page
+ "https://github.com/nikita-volkov/hasql-transaction")
+ (synopsis
+ "A composable abstraction over retryable transactions for Hasql")
+ (description "A composable abstraction over retryable transactions for Hasql")
+ (license license:expat)))
--
2.21.0 (Apple Git-122.2)
R
R
Robert Vollmert wrote on 29 Nov 2019 12:37
[PATCH 34/49] gnu: Add ghc-heredoc.
(address . 38423@debbugs.gnu.org)(name . Robert Vollmert)(address . rob@vllmrt.net)
20191129113751.82405-34-rob@vllmrt.net
* gnu/packages/haskell-xyz.scm (ghc-heredoc): New variable.
---
gnu/packages/haskell-xyz.scm | 23 +++++++++++++++++++++++
1 file changed, 23 insertions(+)

Toggle diff (33 lines)
diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm
index 8637f5c637..f876709648 100644
--- a/gnu/packages/haskell-xyz.scm
+++ b/gnu/packages/haskell-xyz.scm
@@ -13983,3 +13983,26 @@ encoders from the postgresql-binary library have shown a stable performance
improvement by factors of up to 10 after the migration from the standard builder
to bytestring-strict-builder.")
(license license:expat)))
+
+(define-public ghc-heredoc
+ (package
+ (name "ghc-heredoc")
+ (version "0.2.0.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://hackage.haskell.org/package/heredoc/heredoc-"
+ version
+ ".tar.gz"))
+ (sha256
+ (base32
+ "0h0g2f7yscwl1ba1yn3jnz2drvd6ns9m910hwlmq3kdq3k39y3f9"))))
+ (build-system haskell-build-system)
+ (home-page
+ "http://hackage.haskell.org/package/heredoc")
+ (synopsis
+ "multi-line string / here document using QuasiQuotes")
+ (description
+ "multi-line string / here document using QuasiQuotes")
+ (license license:public-domain)))
--
2.21.0 (Apple Git-122.2)
R
R
Robert Vollmert wrote on 29 Nov 2019 12:37
[PATCH 31/49] gnu: Add ghc-binary-parser.
(address . 38423@debbugs.gnu.org)(name . Robert Vollmert)(address . rob@vllmrt.net)
20191129113751.82405-31-rob@vllmrt.net
* gnu/packages/haskell-xyz.scm (ghc-binary-parser): New variable.
---
gnu/packages/haskell-xyz.scm | 37 ++++++++++++++++++++++++++++++++++++
1 file changed, 37 insertions(+)

Toggle diff (47 lines)
diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm
index c38aa5f62e..26e5b2644d 100644
--- a/gnu/packages/haskell-xyz.scm
+++ b/gnu/packages/haskell-xyz.scm
@@ -13868,3 +13868,40 @@ This library provides placeholders that produce better messages when
evaluated at run-time and also generate compile-time warnings so that
they do not get forgotten so easily.")
(license license:bsd-3)))
+
+(define-public ghc-binary-parser
+ (package
+ (name "ghc-binary-parser")
+ (version "0.5.5")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://hackage.haskell.org/package/binary-parser/binary-parser-"
+ version
+ ".tar.gz"))
+ (sha256
+ (base32
+ "1cs3zrhgnng2h84xnnvqcy6yrdm0xay1494dsa612y590s773aqx"))))
+ (build-system haskell-build-system)
+ (inputs
+ `(("ghc-base-prelude" ,ghc-base-prelude)))
+ (native-inputs
+ `(("ghc-tasty" ,ghc-tasty)
+ ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
+ ("ghc-tasty-hunit" ,ghc-tasty-hunit)
+ ("ghc-quickcheck-instances"
+ ,ghc-quickcheck-instances)
+ ("ghc-rerebase" ,ghc-rerebase)))
+ (arguments
+ `(#:tests? ; rely on outdated test library versions
+ #f ; https://github.com/nikita-volkov/binary-parser/pull/3
+ #:cabal-revision
+ ("3"
+ "14n41yazmks2qw0v4krxcqw3ac0wdy2z53d0qz0rdjcd94fpghjf")))
+ (home-page
+ "https://github.com/nikita-volkov/binary-parser")
+ (synopsis
+ "A highly-efficient but limited parser API specialised for bytestrings")
+ (description "")
+ (license license:expat)))
--
2.21.0 (Apple Git-122.2)
R
R
Robert Vollmert wrote on 29 Nov 2019 12:37
[PATCH 44/49] gnu: Add ghc-configurator-pg.
(address . 38423@debbugs.gnu.org)(name . Robert Vollmert)(address . rob@vllmrt.net)
20191129113751.82405-44-rob@vllmrt.net
* gnu/packages/haskell-xyz.scm (ghc-configurator-pg): New variable.
---
gnu/packages/haskell-xyz.scm | 36 ++++++++++++++++++++++++++++++++++++
1 file changed, 36 insertions(+)

Toggle diff (46 lines)
diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm
index b8fc8a8960..ac3fecc382 100644
--- a/gnu/packages/haskell-xyz.scm
+++ b/gnu/packages/haskell-xyz.scm
@@ -14264,3 +14264,39 @@ All error-reporting is explicit and is presented using the Either type.")
"A composable abstraction over retryable transactions for Hasql")
(description "A composable abstraction over retryable transactions for Hasql")
(license license:expat)))
+
+(define-public ghc-configurator-pg
+ (package
+ (name "ghc-configurator-pg")
+ (version "0.1.0.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://hackage.haskell.org/package/configurator-pg/configurator-pg-"
+ version
+ ".tar.gz"))
+ (sha256
+ (base32
+ "0fc77ihnablff8v0kgr88pcc3rn41ca14bvfxr21jx807fn8g63p"))))
+ (build-system haskell-build-system)
+ (inputs
+ `(("ghc-attoparsec" ,ghc-attoparsec)
+ ("ghc-protolude" ,ghc-protolude)
+ ("ghc-scientific" ,ghc-scientific)))
+ (native-inputs
+ `(("ghc-hunit" ,ghc-hunit)
+ ("ghc-test-framework" ,ghc-test-framework)
+ ("ghc-test-framework-hunit"
+ ,ghc-test-framework-hunit)))
+ (home-page
+ "https://github.com/robx/configurator-pg")
+ (synopsis
+ "Reduced parser for configurator-ng config files")
+ (description
+ "This module provides a simplified and updated interface to the configuration file format
+of <https://hackage.haskell.org/package/configurator configurator> and
+<https://hackage.haskell.org/package/configurator-ng configurator-ng>.
+Its aim is primarily to allow updating programs that depend on configurator-ng to new versions
+of GHC without changing the configuration file format.")
+ (license license:bsd-3)))
--
2.21.0 (Apple Git-122.2)
?