Subject: [bug#37052] [PATCH] (wip-haskell-updates) Add stylish-haskell.

From: John Soo <[email-masked]>
Date: Thu, 29 Aug 2019 14:50:24 +0000

HI Ludo and Timothy,

Thanks for the review.

> Please address the ‘guix lint’ warning.

I fixed all the lint errors (and the offending commit message, woops!).

> Better to keep each on a single line.  :-)

I put them each on a single line, I like that better!

> +and turn them into (path, bytestring) pairs embedded in your Haskell
code.")

I used @code{(path, bytestring)} for this tuple. Is that desired?

> It’s too new.  Right now we are following LTS 12, which has file-embed
> at 0.0.10.1.

I changed it to version 0.0.10.1.

Thanks again!

- John
From 0292a434561076531007db8505c83e3425ef70a5 Mon Sep 17 00:00:00 2001
From: John Soo <[email-masked]>
Date: Fri, 16 Aug 2019 07:18:30 -0700
Subject: [PATCH 1/2] gnu: Add ghc-file-embed.

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

diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm
index 90b85d8f43..55afb22ebe 100644
--- a/gnu/packages/haskell-xyz.scm
+++ b/gnu/packages/haskell-xyz.scm
@@ -11729,3 +11729,26 @@ provides access to the full zlib feature set.")
     (description "This package provides low-level bindings to the
 @code{zlib} package.")
     (license license:bsd-3)))
+
+(define-public ghc-file-embed
+  (package
+    (name "ghc-file-embed")
+    (version "0.0.10.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append
+         "mirror://hackage/package/file-embed/file-embed-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0lj164cnzqyd487mli91nnr7137a4h4qsasfwsnsh77sx12fpk9k"))))
+    (build-system haskell-build-system)
+    (home-page "https://github.com/snoyberg/file-embed")
+    (synopsis "Use Template Haskell to embed file contents directly")
+    (description
+     "Use Template Haskell to read a file or all the files in a directory,
+and turn them into @code{(path, bytestring)} pairs embedded in your Haskell
+code.")
+    (license license:bsd-3)))
+
-- 
2.22.0

From 2803dde3048cd10a982ca2d1a75d489924fec106 Mon Sep 17 00:00:00 2001
From: John Soo <[email-masked]>
Date: Fri, 16 Aug 2019 07:20:28 -0700
Subject: [PATCH 2/2] gnu: Add stylish-haskell.

* gnu/packages/haskell-apps (stylish-haskell): new variable.
---
 gnu/packages/haskell-apps.scm | 35 +++++++++++++++++++++++++++++++++++
 1 file changed, 35 insertions(+)

diff --git a/gnu/packages/haskell-apps.scm b/gnu/packages/haskell-apps.scm
index edefd99e23..41cce6f76d 100644
--- a/gnu/packages/haskell-apps.scm
+++ b/gnu/packages/haskell-apps.scm
@@ -569,3 +569,38 @@ that cause a shell to behave strangely and counter-intuitively.
 advanced user's otherwise working script to fail under future circumstances.
 @end enumerate")
     (license license:gpl3+)))
+
+(define-public stylish-haskell
+  (package
+    (name "stylish-haskell")
+    (version "0.9.2.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append
+         "mirror://hackage/package/stylish-haskell/"
+         "stylish-haskell-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1zs624xqp6j8vrl6pfv18dm8vz8hvz25grri65ximxhcizgwhnax"))))
+    (build-system haskell-build-system)
+    (inputs
+     `(("ghc-aeson" ,ghc-aeson)
+       ("ghc-file-embed" ,ghc-file-embed)
+       ("ghc-haskell-src-exts" ,ghc-haskell-src-exts)
+       ("ghc-semigroups" ,ghc-semigroups)
+       ("ghc-syb" ,ghc-syb)
+       ("ghc-yaml" ,ghc-yaml)
+       ("ghc-strict" ,ghc-strict)
+       ("ghc-optparse-applicative" ,ghc-optparse-applicative)
+       ("ghc-hunit" ,ghc-hunit)
+       ("ghc-test-framework" ,ghc-test-framework)
+       ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)))
+    (home-page "https://github.com/jaspervdj/stylish-haskell")
+    (synopsis "Haskell code prettifier")
+    (description
+     "A simple Haskell code prettifier.  The goal is not to format all of the
+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)))
-- 
2.22.0