Subject: bug#36126: closed (Re: [bug#36126] [PATCH] Add ghc-validation.)

From: [email-masked] (GNU bug Tracking System)
Date: Tue, 02 Jul 2019 15:58:02 +0000

Your bug report

#36126: [PATCH] Add ghc-validation.

which was filed against the guix-patches package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
36126: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=36126
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: [bug#36126] [PATCH] Add ghc-validation.
From: Ludovic Courtès <[email-masked]>
To: Jacob MacDonald <[email-masked]>
Cc: [email-masked]
Date: Tue, 02 Jul 2019 17:57:05 +0200
List-Id: <debbugs-submit.debbugs.gnu.org>

Hello Jacob,

Jacob MacDonald <[email-masked]> skribis:

> The version bump pushes guix refresh over the 300-package line. Given
> that and the fact that there are dependencies on older versions in the
> tree, would it be better to give the newer version a special name
> instead, or did I make the correct choice here?

I think you did it right.  :-)

> Guix packages are a new foray for me, so I imagine something will be
> wrong. Did my best to split into proper dependency order though, and
> ready to touch up.

I applied all 7 patches to ‘master’ (I added a copyright line for you).
It’s above the 300-package line as you write, but these packages build
fairly quickly, so I think it’s OK.

Thanks for the patch set, and apologies for the delay!

Ludo’.

Subject: [PATCH] Add ghc-validation.
From: Jacob MacDonald <[email-masked]>
To: [email-masked]
Date: Fri, 7 Jun 2019 06:51:52 -0500
List-Id: <debbugs-submit.debbugs.gnu.org>

Hello all,

The version bump pushes guix refresh over the 300-package line. Given
that and the fact that there are dependencies on older versions in the
tree, would it be better to give the newer version a special name
instead, or did I make the correct choice here?

Guix packages are a new foray for me, so I imagine something will be
wrong. Did my best to split into proper dependency order though, and
ready to touch up.

Cheers,

Jacob.
From 884fcb744ae239e733debc45f5da25225e8079eb Mon Sep 17 00:00:00 2001
From: Jacob MacDonald <[email-masked]>
Date: Fri, 7 Jun 2019 05:28:36 -0500
Subject: [PATCH 4/7] gnu: ghc-ansi-terminal: Update to 0.9.1.

* gnu/packages/haskell.scm (ghc-ansi-terminal): Update to 0.9.1.
---
 gnu/packages/haskell.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm
index 16f319f621..ddbb2ae6ef 100644
--- a/gnu/packages/haskell.scm
+++ b/gnu/packages/haskell.scm
@@ -4362,7 +4362,7 @@ interface.")
 (define-public ghc-ansi-terminal
   (package
     (name "ghc-ansi-terminal")
-    (version "0.8.0.4")
+    (version "0.9.1")
     (source
      (origin
        (method url-fetch)
@@ -4372,7 +4372,7 @@ interface.")
              ".tar.gz"))
        (sha256
         (base32
-         "0428gq8m3fdnb7ldcsyk97qcch76hcxbgh2666p6f76fs2qbhg7b"))))
+         "1yr0ld0kqns3w3j9gl62bdwshvyazidx4dv1qkvq19ivnf08w23l"))))
     (build-system haskell-build-system)
     (inputs
      `(("ghc-colour" ,ghc-colour)))
-- 
2.21.0

From 1c7b95f74448a407d428a6ac55c9f1720d582f51 Mon Sep 17 00:00:00 2001
From: Jacob MacDonald <[email-masked]>
Date: Fri, 7 Jun 2019 06:09:24 -0500
Subject: [PATCH 3/7] gnu: ghc-ansi-wl-pprint: Use ghc-ansi-terminal-0.8.

* gnu/packages/haskell.scm (ghc-ansi-wl-pprint)[inputs]: Use ghc-ansi-terminal-0.8.
---
 gnu/packages/haskell.scm | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm
index 3f7d57a397..16f319f621 100644
--- a/gnu/packages/haskell.scm
+++ b/gnu/packages/haskell.scm
@@ -4085,7 +4085,7 @@ instances of the @code{Pretty} class.")
          "0gnb4mkqryv08vncxnj0bzwcnd749613yw3cxfzw6y3nsldp4c56"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-ansi-terminal" ,ghc-ansi-terminal)))
+     `(("ghc-ansi-terminal" ,ghc-ansi-terminal-0.8)))
     (home-page "https://github.com/ekmett/ansi-wl-pprint")
     (synopsis "Wadler/Leijen Pretty Printer for colored ANSI terminal output")
     (description "This is a pretty printing library based on Wadler's paper
-- 
2.21.0

From 01932914b4fdce120f5490ac14c330038376a60e Mon Sep 17 00:00:00 2001
From: Jacob MacDonald <[email-masked]>
Date: Fri, 7 Jun 2019 06:00:26 -0500
Subject: [PATCH 2/7] gnu: Add ghc-ansi-terminal-0.8.

* gnu/packages/haskell.scm (ghc-ansi-terminal-0.8): New variable.
---
 gnu/packages/haskell.scm | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm
index 9f1fa9a535..3f7d57a397 100644
--- a/gnu/packages/haskell.scm
+++ b/gnu/packages/haskell.scm
@@ -4383,6 +4383,21 @@ allows cursor movement, screen clearing, color output showing or hiding the
 cursor, and changing the title.")
     (license license:bsd-3)))
 
+(define-public ghc-ansi-terminal-0.8
+  (package (inherit ghc-ansi-terminal)
+           (name "ghc-ansi-terminal")
+           (version "0.8.0.4")
+           (source
+            (origin
+              (method url-fetch)
+              (uri (string-append
+                    "https://hackage.haskell.org/package/ansi-terminal/ansi-terminal-"
+                    version
+                    ".tar.gz"))
+              (sha256
+               (base32
+                "0428gq8m3fdnb7ldcsyk97qcch76hcxbgh2666p6f76fs2qbhg7b"))))))
+
 (define-public ghc-vault
   (package
     (name "ghc-vault")
-- 
2.21.0

From 32b0a69cf86b313f6dbdf384892874f2758adb04 Mon Sep 17 00:00:00 2001
From: Jacob MacDonald <[email-masked]>
Date: Fri, 7 Jun 2019 05:36:25 -0500
Subject: [PATCH 5/7] gnu: Add ghc-concurrent-output.

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

diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm
index ddbb2ae6ef..5c4756a077 100644
--- a/gnu/packages/haskell.scm
+++ b/gnu/packages/haskell.scm
@@ -11649,6 +11649,40 @@ default)
 @end itemize")
     (license license:bsd-3)))
 
+(define-public ghc-concurrent-output
+  (package
+    (name "ghc-concurrent-output")
+    (version "1.10.10")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "mirror://hackage/package/concurrent-output/concurrent-output-"
+             version
+             ".tar.gz"))
+       (sha256
+        (base32
+         "1wnjxnwbc3l853kiiijagzjyb6fmhz3lmkwls24plbximl1qrr22"))))
+    (build-system haskell-build-system)
+    (inputs
+     `(("ghc-async" ,ghc-async)
+       ("ghc-stm" ,ghc-stm)
+       ("ghc-exceptions" ,ghc-exceptions)
+       ("ghc-ansi-terminal" ,ghc-ansi-terminal)
+       ("ghc-terminal-size" ,ghc-terminal-size)))
+    (home-page
+     "https://hackage.haskell.org/package/concurrent-output")
+    (synopsis
+     "Ungarble output from several threads or commands")
+    (description
+     "Lets multiple threads and external processes concurrently output to the
+console, without it getting all garbled up.
+
+Built on top of that is a way of defining multiple output regions, which are
+automatically laid out on the screen and can be individually updated by
+concurrent threads.  Can be used for progress displays etc.")
+    (license license:bsd-2)))
+
 (define-public ghc-wl-pprint-annotated
   (package
     (name "ghc-wl-pprint-annotated")
-- 
2.21.0

From 07c56958758c4ce21fb020c596d06bdeaa937ae8 Mon Sep 17 00:00:00 2001
From: Jacob MacDonald <[email-masked]>
Date: Fri, 7 Jun 2019 05:24:12 -0500
Subject: [PATCH 1/7] gnu: Add ghc-wl-pprint-annotated.

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

diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm
index 97b4fd9a55..9f1fa9a535 100644
--- a/gnu/packages/haskell.scm
+++ b/gnu/packages/haskell.scm
@@ -11633,4 +11633,34 @@ Replace some ASCII sequences by their Unicode equivalent (turned off by
 default)
 @end itemize")
     (license license:bsd-3)))
+
+(define-public ghc-wl-pprint-annotated
+  (package
+    (name "ghc-wl-pprint-annotated")
+    (version "0.1.0.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "mirror://hackage/package/wl-pprint-annotated/wl-pprint-annotated-"
+             version
+             ".tar.gz"))
+       (sha256
+        (base32
+         "1br7qyf27iza213inwhf9bm2k6in0zbmfw6w4clqlc9f9cj2nrkb"))))
+    (build-system haskell-build-system)
+    (native-inputs
+     `(("ghc-tasty" ,ghc-tasty)
+       ("ghc-tasty-hunit" ,ghc-tasty-hunit)))
+    (home-page
+     "https://github.com/minad/wl-pprint-annotated#readme")
+    (synopsis
+     "Wadler/Leijen pretty printer with annotation support")
+    (description
+     "Annotations are useful for coloring.  This is a limited version of
+@code{wl-pprint-extras} without support for point effects and without the free
+monad.  Like in @code{annotated-wl-pprint}, only annotations are supported.
+Compared to @code{annotated-wl-pprint} this library provides a slightly
+modernized interface.")
+    (license license:bsd-3)))
 ;;; haskell.scm ends here
-- 
2.21.0

From 735cc83bd2e0f3c56e31b302e934a24d3151ec04 Mon Sep 17 00:00:00 2001
From: Jacob MacDonald <[email-masked]>
Date: Fri, 7 Jun 2019 05:42:59 -0500
Subject: [PATCH 6/7] gnu: Add ghc-hedgehog.

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

diff --git a/gnu/packages/haskell-check.scm b/gnu/packages/haskell-check.scm
index 550bb13a65..9b010fd5eb 100644
--- a/gnu/packages/haskell-check.scm
+++ b/gnu/packages/haskell-check.scm
@@ -822,3 +822,47 @@ minimal dependencies.")
 cryptographic ciphers, and is used by the test runners of various Haskell
 implementations of cryptographic ciphers.")
     (license license:bsd-3)))
+
+(define-public ghc-hedgehog
+  (package
+    (name "ghc-hedgehog")
+    (version "0.6.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "mirror://hackage/package/hedgehog/hedgehog-"
+             version
+             ".tar.gz"))
+       (sha256
+        (base32
+         "0xz10ycdm5vk9nrcym1fi83k19frfwqz18bz8bnpzwvaj0j41yfj"))))
+    (build-system haskell-build-system)
+    (inputs
+     `(("ghc-ansi-terminal" ,ghc-ansi-terminal-0.8)
+       ("ghc-async" ,ghc-async)
+       ("ghc-concurrent-output" ,ghc-concurrent-output)
+       ("ghc-exceptions" ,ghc-exceptions)
+       ("ghc-lifted-async" ,ghc-lifted-async)
+       ("ghc-mmorph" ,ghc-mmorph)
+       ("ghc-monad-control" ,ghc-monad-control)
+       ("ghc-pretty-show" ,ghc-pretty-show)
+       ("ghc-primitive" ,ghc-primitive)
+       ("ghc-random" ,ghc-random)
+       ("ghc-resourcet" ,ghc-resourcet)
+       ("ghc-semigroups" ,ghc-semigroups)
+       ("ghc-stm" ,ghc-stm)
+       ("ghc-th-lift" ,ghc-th-lift)
+       ("ghc-transformers-base" ,ghc-transformers-base)
+       ("ghc-wl-pprint-annotated"
+        ,ghc-wl-pprint-annotated)))
+    (home-page "https://hedgehog.qa")
+    (synopsis "Property-based testing in the spirt of QuickCheck")
+    (description
+     "Hedgehog is a property-based testing system, in the spirit of
+QuickCheck.  Hedgehog uses integrated shrinking, so shrinks obey the invariants
+of generated values by construction.
+
+To get started quickly, see the examples:
+@uref{https://github.com/hedgehogqa/haskell-hedgehog/tree/master/hedgehog-example}")
+    (license license:bsd-3)))
-- 
2.21.0

From 870736088fe74aca3902fb4d3884c88fdec84d52 Mon Sep 17 00:00:00 2001
From: Jacob MacDonald <[email-masked]>
Date: Fri, 7 Jun 2019 05:48:14 -0500
Subject: [PATCH 7/7] gnu: Add ghc-validation.

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

diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm
index 5c4756a077..7d7568afe2 100644
--- a/gnu/packages/haskell.scm
+++ b/gnu/packages/haskell.scm
@@ -11649,6 +11649,60 @@ default)
 @end itemize")
     (license license:bsd-3)))
 
+(define-public ghc-validation
+  (package
+    (name "ghc-validation")
+    (version "1.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "mirror://hackage/package/validation/validation-"
+             version
+             ".tar.gz"))
+       (sha256
+        (base32
+         "1acj7mh3581ks405xswxw6667z7y1y0slisg6jvp6chc191ji9l5"))))
+    (build-system haskell-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'add-setup-script
+           (lambda _
+             ;; The usual "Setup.hs" script is missing from the source.
+             (with-output-to-file "Setup.hs"
+               (lambda ()
+                 (format #t "import Distribution.Simple~%")
+                 (format #t "main = defaultMain~%"))))))))
+    (inputs
+     `(("ghc-semigroups" ,ghc-semigroups)
+       ("ghc-semigroupoids" ,ghc-semigroupoids)
+       ("ghc-bifunctors" ,ghc-bifunctors)
+       ("ghc-lens" ,ghc-lens)))
+    (native-inputs
+     `(("ghc-hedgehog" ,ghc-hedgehog)
+       ("ghc-hunit" ,ghc-hunit)))
+    (home-page "https://github.com/qfpl/validation")
+    (synopsis
+     "Data-type like Either but with an accumulating Applicative")
+    (description
+     "A data-type like Either but with differing properties and type-class
+instances.
+
+Library support is provided for this different representation, including
+@code{lens}-related functions for converting between each and abstracting over
+their similarities.
+
+The @code{Validation} data type is isomorphic to @code{Either}, but has an
+instance of @code{Applicative} that accumulates on the error side.  That is to
+say, if two (or more) errors are encountered, they are appended using a
+@{Semigroup} operation.
+
+As a consequence of this @code{Applicative} instance, there is no
+corresponding @code{Bind} or @code{Monad} instance.  @code{Validation} is an
+example of, \"An applicative functor that is not a monad.\"")
+    (license license:bsd-3)))
+
 (define-public ghc-concurrent-output
   (package
     (name "ghc-concurrent-output")
-- 
2.21.0