unofficial mirror of guix-patches@gnu.org 
 help / color / mirror / code / Atom feed
* [bug#44174] [PATCH 00/16] Add hledger and its dependencies.
@ 2020-10-23  7:46 Carlo Holl
  2020-10-23 17:05 ` [bug#44174] [PATCH 01/16] gnu: Add ghc-control-monad-free Carlo Holl
                   ` (2 more replies)
  0 siblings, 3 replies; 44+ messages in thread
From: Carlo Holl @ 2020-10-23  7:46 UTC (permalink / raw)
  To: 44174; +Cc: Carlo Holl

Guix,

This patch series adds hledger, a plaintext accounting program. hledger started as a Haskell reimplementation of
Ledger CLI. I use hledger regularly to manage personal finances and those of several businesses, and would not be 
suprised to find other hledger users in the Guix community.

More information is available at https://hledger.org.

A couple of notes:

    1. The hledger package is placed in (gnu packages finance), and its dependencies in (gnu packages haskell-xyz).
    2. The hledger package is *not* prefixed with 'ghc', but its dependencies are.
    3. The package ghc-doctest was bumped (minor version), affecting several dependent packages. 
        I was able to build most of these affected packages (querying guix refresh --list-dependents), 
        but it was taking forever so I cut that effort short. I consider this a rough heuristic to determine
        that there are no substantial changes associated with this version bump.
    4. I'm not terribly familiar with the Texinfo format, so there are likely some rough edges there. 
    5. I am able to build hledger and its dependencies without error, but was unsuccessful building
        on different architectures with qemu. I wasn't even able to build GHC under qemu so I didn't bother
        digging any further.

This is my first contribution to Guix, and I'm also not a Haskell expert, so expect some headaches. I am happy to attend 
to any issues as best I am able.

Carlo

Carlo Holl (16):
  gnu: Add ghc-control-monad-free.
  gnu: Add ghc-csv.
  gnu: Add ghc-decimal.
  gnu: Upgrade ghc-doctest.
  gnu: Add ghc-hspec-megaparsec.
  gnu: Add ghc-lucid.
  gnu: Add ghc-only.
  gnu: Add ghc-text-short.
  gnu: Add ghc-tabular.
  gnu: Add ghc-uglymemo.
  gnu: Add ghc-wizards.
  gnu: Add ghc-cassava.
  gnu: Add ghc-cassava-megaparsec.
  gnu: Add ghc-hledger-lib.
  gnu: Add hledger.
  Add attribution.

 gnu/packages/finance.scm     |  64 ++++
 gnu/packages/haskell-xyz.scm | 579 ++++++++++++++++++++++++++++++++++-
 2 files changed, 628 insertions(+), 15 deletions(-)

-- 
2.28.0





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

* [bug#44174] [PATCH 01/16] gnu: Add ghc-control-monad-free.
  2020-10-23  7:46 [bug#44174] [PATCH 00/16] Add hledger and its dependencies Carlo Holl
@ 2020-10-23 17:05 ` Carlo Holl
  2020-10-23 17:05   ` [bug#44174] [PATCH 02/16] gnu: Add ghc-csv Carlo Holl
                     ` (14 more replies)
  2020-10-24 21:26 ` [bug#44174] [PATCH 00/16] Add hledger and its dependencies Christopher Baines
  2020-11-01  2:02 ` [bug#44174] [PATCH v2 00/15] " Carlo Holl
  2 siblings, 15 replies; 44+ messages in thread
From: Carlo Holl @ 2020-10-23 17:05 UTC (permalink / raw)
  To: 44174; +Cc: Carlo Holl

---
 gnu/packages/haskell-xyz.scm | 31 +++++++++++++++++++++++++++++++
 1 file changed, 31 insertions(+)

diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm
index 5b9da15630..ccbe026142 100644
--- a/gnu/packages/haskell-xyz.scm
+++ b/gnu/packages/haskell-xyz.scm
@@ -2608,6 +2608,37 @@ a vocabulary for working with them.")
 @code{ghc-contravariant} package.")
     (license license:expat)))
 
+(define-public ghc-control-monad-free
+  (package
+    (name "ghc-control-monad-free")
+    (version "0.6.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "https://hackage.haskell.org/package/control-monad-free/control-monad-free-"
+             version
+             ".tar.gz"))
+       (sha256
+        (base32
+         "1habgf7byffqf1rqjkzpihvdhclaafgqsqpfpwp3fgpj5ayk1j33"))))
+    (build-system haskell-build-system)
+    (home-page
+     "https://github.com/pepeiborra/control-monad-free")
+    (synopsis "Free monads and monad transformers")
+    (description "This package provides datatypes to construct Free monads,
+Free monad transformers, and useful instances.  In addition it provides the
+constructs to avoid quadratic complexity of left associative bind, as explained in:
+
+@itemize @bullet
+@item
+Janis Voigtlander, @cite{Asymptotic Improvement of Computations over
+Free Monads, MPC'08}
+@end itemize
+
+")
+    (license license:public-domain)))
+
 (define-public ghc-convertible
   (package
     (name "ghc-convertible")
-- 
2.28.0





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

* [bug#44174] [PATCH 02/16] gnu: Add ghc-csv.
  2020-10-23 17:05 ` [bug#44174] [PATCH 01/16] gnu: Add ghc-control-monad-free Carlo Holl
@ 2020-10-23 17:05   ` Carlo Holl
  2020-10-24 21:27     ` Christopher Baines
  2020-10-23 17:05   ` [bug#44174] [PATCH 03/16] gnu: Add ghc-decimal Carlo Holl
                     ` (13 subsequent siblings)
  14 siblings, 1 reply; 44+ messages in thread
From: Carlo Holl @ 2020-10-23 17:05 UTC (permalink / raw)
  To: 44174; +Cc: Carlo Holl

---
 gnu/packages/haskell-xyz.scm | 26 ++++++++++++++++++++++++++
 1 file changed, 26 insertions(+)

diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm
index ccbe026142..952e24cd55 100644
--- a/gnu/packages/haskell-xyz.scm
+++ b/gnu/packages/haskell-xyz.scm
@@ -2665,6 +2665,32 @@ pure @code{Either} value.  This means that you need not remember which specific
 function performs the conversion you desire.")
     (license license:bsd-3)))
 
+(define-public ghc-csv
+  (package
+    (name "ghc-csv")
+    (version "0.1.2")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "https://hackage.haskell.org/package/csv/csv-"
+               version
+               ".tar.gz"))
+        (sha256
+          (base32
+            "00767ai09wm7f0yzmpqck3cpgxncpr9djnmmz5l17ajz69139x4c"))))
+    (build-system haskell-build-system)
+    (home-page
+      "http://hackage.haskell.org/package/csv")
+    (synopsis "CSV loader and dumper")
+    (description "CSV loader and dumper
+
+This library parses and dumps documents that are formatted according
+to RFC 4180, @cite{The common Format and MIME Type for Comma-Separated
+Values (CSV) Files}.  This format is used, among many other things,
+as a lingua franca for spreadsheets, and for certain web services.")
+    (license license:expat)))
+
 (define-public ghc-data-accessor
   (package
     (name "ghc-data-accessor")
-- 
2.28.0





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

* [bug#44174] [PATCH 03/16] gnu: Add ghc-decimal.
  2020-10-23 17:05 ` [bug#44174] [PATCH 01/16] gnu: Add ghc-control-monad-free Carlo Holl
  2020-10-23 17:05   ` [bug#44174] [PATCH 02/16] gnu: Add ghc-csv Carlo Holl
@ 2020-10-23 17:05   ` Carlo Holl
  2020-10-23 17:05   ` [bug#44174] [PATCH 04/16] gnu: Upgrade ghc-doctest Carlo Holl
                     ` (12 subsequent siblings)
  14 siblings, 0 replies; 44+ messages in thread
From: Carlo Holl @ 2020-10-23 17:05 UTC (permalink / raw)
  To: 44174; +Cc: Carlo Holl

---
 gnu/packages/haskell-xyz.scm | 31 +++++++++++++++++++++++++++++++
 1 file changed, 31 insertions(+)

diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm
index 952e24cd55..803ee995c0 100644
--- a/gnu/packages/haskell-xyz.scm
+++ b/gnu/packages/haskell-xyz.scm
@@ -2989,6 +2989,37 @@ to add D-Bus support to Haskell applications, without the awkward
 interfaces common to foreign bindings.")
     (license license:asl2.0)))
 
+(define-public ghc-decimal
+  (package
+    (name "ghc-decimal")
+    (version "0.5.1")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "https://hackage.haskell.org/package/Decimal/Decimal-"
+               version
+               ".tar.gz"))
+        (sha256
+          (base32
+            "0k7kh05mr2f54w1lpgq1nln0h8k6s6h99dyp5jzsb9cfbb3aap2p"))))
+    (build-system haskell-build-system)
+    (native-inputs
+      `(("ghc-hunit" ,ghc-hunit)
+        ("ghc-quickcheck" ,ghc-quickcheck)
+        ("ghc-test-framework" ,ghc-test-framework)
+        ("ghc-test-framework-quickcheck2"
+         ,ghc-test-framework-quickcheck2)
+        ("ghc-test-framework-hunit"
+         ,ghc-test-framework-hunit)))
+    (home-page
+      "https://github.com/PaulJohnson/Haskell-Decimal")
+    (synopsis
+      "Decimal numbers with variable precision")
+    (description "A decimal number has an integer mantissa and a negative exponent.
+The exponent can be interpreted as the number of decimal places in the value.")
+    (license license:bsd-3)))
+
 (define-public ghc-deepseq-generics
   (package
     (name "ghc-deepseq-generics")
-- 
2.28.0





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

* [bug#44174] [PATCH 04/16] gnu: Upgrade ghc-doctest.
  2020-10-23 17:05 ` [bug#44174] [PATCH 01/16] gnu: Add ghc-control-monad-free Carlo Holl
  2020-10-23 17:05   ` [bug#44174] [PATCH 02/16] gnu: Add ghc-csv Carlo Holl
  2020-10-23 17:05   ` [bug#44174] [PATCH 03/16] gnu: Add ghc-decimal Carlo Holl
@ 2020-10-23 17:05   ` Carlo Holl
  2020-10-24 21:29     ` Christopher Baines
  2020-10-23 17:05   ` [bug#44174] [PATCH 05/16] gnu: Add ghc-hspec-megaparsec Carlo Holl
                     ` (11 subsequent siblings)
  14 siblings, 1 reply; 44+ messages in thread
From: Carlo Holl @ 2020-10-23 17:05 UTC (permalink / raw)
  To: 44174; +Cc: Carlo Holl

---
 gnu/packages/haskell-xyz.scm | 35 ++++++++++++++++++++---------------
 1 file changed, 20 insertions(+), 15 deletions(-)

diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm
index 803ee995c0..ad9c49ddeb 100644
--- a/gnu/packages/haskell-xyz.scm
+++ b/gnu/packages/haskell-xyz.scm
@@ -3416,7 +3416,7 @@ Writer monad), where list append quickly becomes too expensive.")
 (define-public ghc-doctest
   (package
     (name "ghc-doctest")
-    (version "0.16.2")
+    (version "0.16.3")
     (source
      (origin
        (method url-fetch)
@@ -3426,26 +3426,31 @@ Writer monad), where list append quickly becomes too expensive.")
              ".tar.gz"))
        (sha256
         (base32
-         "0lk4cjfzi5bx2snfzw1zi06li0gvgz3ckfh2kwa98l7nxfdl39ag"))))
+         "1y1l7aa80qkib1z8lsizgg7fpfdmdwhxvi5m255a42jdkjgn5sfg"))))
     (build-system haskell-build-system)
     (arguments `(#:tests? #f))          ; FIXME: missing test framework
     (inputs
-     `(("ghc-syb" ,ghc-syb)
-       ("ghc-paths" ,ghc-paths)
-       ("ghc-base-compat" ,ghc-base-compat)
-       ("ghc-code-page" ,ghc-code-page)
-       ("ghc-hunit" ,ghc-hunit)
-       ("ghc-hspec" ,ghc-hspec)
-       ("ghc-quickcheck" ,ghc-quickcheck)
-       ("ghc-stringbuilder" ,ghc-stringbuilder)
-       ("ghc-silently" ,ghc-silently)
-       ("ghc-setenv" ,ghc-setenv)))
+      `(("ghc-base-compat" ,ghc-base-compat)
+        ("ghc-code-page" ,ghc-code-page)
+        ("ghc-paths" ,ghc-paths)
+        ("ghc-syb" ,ghc-syb)))
+    (native-inputs
+      `(("ghc-hunit" ,ghc-hunit)
+        ("ghc-quickcheck" ,ghc-quickcheck)
+        ("ghc-hspec" ,ghc-hspec)
+        ("ghc-hspec-core" ,ghc-hspec-core)
+        ("ghc-mockery" ,ghc-mockery)
+        ("ghc-setenv" ,ghc-setenv)
+        ("ghc-silently" ,ghc-silently)
+        ("ghc-stringbuilder" ,ghc-stringbuilder)))
     (home-page
      "https://github.com/sol/doctest#readme")
     (synopsis "Test interactive Haskell examples")
-    (description "The doctest program checks examples in source code comments.
-It is modeled after doctest for Python, see
-@uref{https://docs.python.org/library/doctest.html, the Doctest website}.")
+    (description
+      "The doctest program checks examples in source code comments.  It is modeled
+after doctest for Python (@url{http://docs.python.org/library/doctest.html}).
+
+Documentation is at @url{https://github.com/sol/doctest#readme}.")
     (license license:expat)))
 
 (define-public ghc-dotgen
-- 
2.28.0





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

* [bug#44174] [PATCH 05/16] gnu: Add ghc-hspec-megaparsec.
  2020-10-23 17:05 ` [bug#44174] [PATCH 01/16] gnu: Add ghc-control-monad-free Carlo Holl
                     ` (2 preceding siblings ...)
  2020-10-23 17:05   ` [bug#44174] [PATCH 04/16] gnu: Upgrade ghc-doctest Carlo Holl
@ 2020-10-23 17:05   ` Carlo Holl
  2020-10-24 21:30     ` Christopher Baines
  2020-10-23 17:05   ` [bug#44174] [PATCH 06/16] gnu: Add ghc-lucid Carlo Holl
                     ` (10 subsequent siblings)
  14 siblings, 1 reply; 44+ messages in thread
From: Carlo Holl @ 2020-10-23 17:05 UTC (permalink / raw)
  To: 44174; +Cc: Carlo Holl

---
 gnu/packages/haskell-xyz.scm | 28 ++++++++++++++++++++++++++++
 1 file changed, 28 insertions(+)

diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm
index ad9c49ddeb..84f28ee5a5 100644
--- a/gnu/packages/haskell-xyz.scm
+++ b/gnu/packages/haskell-xyz.scm
@@ -5934,6 +5934,34 @@ are described in a file named @code{package.yaml}.  Both @code{cabal2nix} and
 @code{package.yaml}.")
     (license license:expat)))
 
+(define-public ghc-hspec-megaparsec
+  (package
+    (name "ghc-hspec-megaparsec")
+    (version "2.0.1")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "https://hackage.haskell.org/package/hspec-megaparsec/hspec-megaparsec-"
+               version
+               ".tar.gz"))
+        (sha256
+          (base32
+            "0w8nn2rh01lkiwsiyqh3gviklhfmy0245rakj94dmliyljw8skfg"))))
+    (build-system haskell-build-system)
+    (inputs
+      `(("ghc-hspec-expectations"
+         ,ghc-hspec-expectations)
+        ("ghc-megaparsec" ,ghc-megaparsec)))
+    (native-inputs `(("ghc-hspec" ,ghc-hspec)))
+    (home-page
+      "https://github.com/mrkkrp/hspec-megaparsec")
+    (synopsis
+      "Utility functions for testing Megaparsec parsers with Hspec")
+    (description
+      "Utility functions for testing Megaparsec parsers with Hspec.")
+    (license license:bsd-3)))
+
 (define-public ghc-hs-bibutils
   (package
     (name "ghc-hs-bibutils")
-- 
2.28.0





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

* [bug#44174] [PATCH 06/16] gnu: Add ghc-lucid.
  2020-10-23 17:05 ` [bug#44174] [PATCH 01/16] gnu: Add ghc-control-monad-free Carlo Holl
                     ` (3 preceding siblings ...)
  2020-10-23 17:05   ` [bug#44174] [PATCH 05/16] gnu: Add ghc-hspec-megaparsec Carlo Holl
@ 2020-10-23 17:05   ` Carlo Holl
  2020-10-23 17:05   ` [bug#44174] [PATCH 07/16] gnu: Add ghc-only Carlo Holl
                     ` (9 subsequent siblings)
  14 siblings, 0 replies; 44+ messages in thread
From: Carlo Holl @ 2020-10-23 17:05 UTC (permalink / raw)
  To: 44174; +Cc: Carlo Holl

---
 gnu/packages/haskell-xyz.scm | 48 ++++++++++++++++++++++++++++++++++++
 1 file changed, 48 insertions(+)

diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm
index 84f28ee5a5..f090f62b86 100644
--- a/gnu/packages/haskell-xyz.scm
+++ b/gnu/packages/haskell-xyz.scm
@@ -7290,6 +7290,54 @@ Transformers\" available @uref{http://okmij.org/ftp/papers/LogicT.pdf,
 online}.")
     (license license:bsd-3)))
 
+(define-public ghc-lucid
+  (package
+    (name "ghc-lucid")
+    (version "2.9.12")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "https://hackage.haskell.org/package/lucid/lucid-"
+               version
+               ".tar.gz"))
+        (sha256
+          (base32
+            "156wniydd1hlb7rygbm95zln8ky8lai8rn2apkkv0rax9cdw6jrh"))))
+    (build-system haskell-build-system)
+    (inputs
+      `(("ghc-blaze-builder" ,ghc-blaze-builder)
+        ("ghc-hashable" ,ghc-hashable)
+        ("ghc-mmorph" ,ghc-mmorph)
+        ("ghc-unordered-containers"
+         ,ghc-unordered-containers)))
+    (native-inputs
+      `(("ghc-hunit" ,ghc-hunit)
+        ("ghc-hspec" ,ghc-hspec)
+        ("ghc-bifunctors" ,ghc-bifunctors)))
+    (arguments
+      `(#:cabal-revision
+        ("1"
+         "1f0whk5ncanxfjjanrf6rqyncig2xgc5mh2j0sqy3nrlyjr9aqq9")))
+    (home-page "https://github.com/chrisdone/lucid")
+    (synopsis
+      "Clear to write, read and edit DSL for HTML")
+    (description "Clear to write, read and edit DSL for HTML.
+
+@itemize @bullet
+@item
+Names are consistent, and do not conflict with base or are keywords
+(all have suffix @code{-}).
+@item
+Same combinator can be used for attributes and elements
+(e.g. @code{style_}).
+@item
+For more, read <https://chrisdone.com/posts/lucid the blog post>.
+@end itemize
+
+See the \"Lucid\" module for more documentation.")
+    (license license:bsd-3)))
+
 (define-public ghc-lzma
   (package
     (name "ghc-lzma")
-- 
2.28.0





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

* [bug#44174] [PATCH 07/16] gnu: Add ghc-only.
  2020-10-23 17:05 ` [bug#44174] [PATCH 01/16] gnu: Add ghc-control-monad-free Carlo Holl
                     ` (4 preceding siblings ...)
  2020-10-23 17:05   ` [bug#44174] [PATCH 06/16] gnu: Add ghc-lucid Carlo Holl
@ 2020-10-23 17:05   ` Carlo Holl
  2020-10-23 17:05   ` [bug#44174] [PATCH 08/16] gnu: Add ghc-text-short Carlo Holl
                     ` (8 subsequent siblings)
  14 siblings, 0 replies; 44+ messages in thread
From: Carlo Holl @ 2020-10-23 17:05 UTC (permalink / raw)
  To: 44174; +Cc: Carlo Holl

---
 gnu/packages/haskell-xyz.scm | 33 +++++++++++++++++++++++++++++++++
 1 file changed, 33 insertions(+)

diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm
index f090f62b86..e831c12160 100644
--- a/gnu/packages/haskell-xyz.scm
+++ b/gnu/packages/haskell-xyz.scm
@@ -8610,6 +8610,39 @@ old @code{time} library.  For new projects, the newer
 @uref{https://hackage.haskell.org/package/time, time library} is recommended.")
     (license license:bsd-3)))
 
+(define-public ghc-only
+  (package
+    (name "ghc-only")
+    (version "0.1")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "https://hackage.haskell.org/package/Only/Only-"
+               version
+               ".tar.gz"))
+        (sha256
+          (base32
+            "0rdj3a629fk2vp121jq8mf2smkblrz5w3cxhlsyx6my2x29s2ymb"))))
+    (build-system haskell-build-system)
+    (arguments
+      `(#:cabal-revision
+        ("1"
+         "1ahk7p34kmh041mz7lyc10nhcxgv2i4z8nvzxvqm2x34gslmsbzr")))
+    (home-page
+      "https://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.
+
+NOTE: There is also the @url{https://hackage.haskell.org/package/OneTuple,
+OneTuple package} which by using a boxed @code{data}-type provides a 1-tuple
+type which has laziness properties which are more faithful to the ones of
+Haskell's native tuples; whereas the primary purpose of @code{Only} is to provide
+the traditionally so named type-wrapper for attaching typeclass instances.")
+    (license license:bsd-3)))
+
 (define-public ghc-opengl
   (package
     (name "ghc-opengl")
-- 
2.28.0





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

* [bug#44174] [PATCH 08/16] gnu: Add ghc-text-short.
  2020-10-23 17:05 ` [bug#44174] [PATCH 01/16] gnu: Add ghc-control-monad-free Carlo Holl
                     ` (5 preceding siblings ...)
  2020-10-23 17:05   ` [bug#44174] [PATCH 07/16] gnu: Add ghc-only Carlo Holl
@ 2020-10-23 17:05   ` Carlo Holl
  2020-10-23 17:05   ` [bug#44174] [PATCH 09/16] gnu: Add ghc-tabular Carlo Holl
                     ` (7 subsequent siblings)
  14 siblings, 0 replies; 44+ messages in thread
From: Carlo Holl @ 2020-10-23 17:05 UTC (permalink / raw)
  To: 44174; +Cc: Carlo Holl

---
 gnu/packages/haskell-xyz.scm | 41 ++++++++++++++++++++++++++++++++++++
 1 file changed, 41 insertions(+)

diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm
index e831c12160..c4a8d4c208 100644
--- a/gnu/packages/haskell-xyz.scm
+++ b/gnu/packages/haskell-xyz.scm
@@ -8924,6 +8924,47 @@ require aeson
     (description "Safe conversions between textual types")
     (license license:isc)))
 
+(define-public ghc-text-short
+  (package
+    (name "ghc-text-short")
+    (version "0.1.3")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "https://hackage.haskell.org/package/text-short/text-short-"
+               version
+               ".tar.gz"))
+        (sha256
+          (base32
+            "0xyrxlb602z8bc9sr2y1fag0x56a20yj5qrkvy7iwc6hnznrynxz"))))
+    (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"
+         "17cb7p0qywf2dsrq3g8qb3ssknd9wl5k0nc2pxz9gc3l8rxpkw51")))
+    (home-page
+      "https://hackage.haskell.org/package/text-short")
+    (synopsis
+      "Memory-efficient representation of Unicode text strings")
+    (description "This package provides the @code{ShortText} type which
+is suitable for keeping many short strings in memory.  This is similiar
+to how @code{ShortByteString} relates to @code{ByteString}.
+
+The main difference between @code{Text} and @code{ShortText} is that
+@code{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)))
+
 (define-public ghc-doclayout
   (package
     (name "ghc-doclayout")
-- 
2.28.0





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

* [bug#44174] [PATCH 09/16] gnu: Add ghc-tabular.
  2020-10-23 17:05 ` [bug#44174] [PATCH 01/16] gnu: Add ghc-control-monad-free Carlo Holl
                     ` (6 preceding siblings ...)
  2020-10-23 17:05   ` [bug#44174] [PATCH 08/16] gnu: Add ghc-text-short Carlo Holl
@ 2020-10-23 17:05   ` Carlo Holl
  2020-10-24 21:38     ` Christopher Baines
  2020-10-23 17:05   ` [bug#44174] [PATCH 10/16] gnu: Add ghc-uglymemo Carlo Holl
                     ` (6 subsequent siblings)
  14 siblings, 1 reply; 44+ messages in thread
From: Carlo Holl @ 2020-10-23 17:05 UTC (permalink / raw)
  To: 44174; +Cc: Carlo Holl

---
 gnu/packages/haskell-xyz.scm | 40 ++++++++++++++++++++++++++++++++++++
 1 file changed, 40 insertions(+)

diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm
index c4a8d4c208..0cce72e9f5 100644
--- a/gnu/packages/haskell-xyz.scm
+++ b/gnu/packages/haskell-xyz.scm
@@ -12813,6 +12813,46 @@ Unlike the filepath package, this package does not simply reuse String,
 increasing type safety.")
     (license license:expat)))
 
+(define-public ghc-tabular
+  (package
+    (name "ghc-tabular")
+    (version "0.2.2.8")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "https://hackage.haskell.org/package/tabular/tabular-"
+               version
+               ".tar.gz"))
+        (sha256
+          (base32
+            "0z936gh8n8i8qdkagyxwd9gqq13skd5fv013vdvwsibrxkm0czfb"))))
+    (build-system haskell-build-system)
+    (inputs
+      `(("ghc-csv" ,ghc-csv) ("ghc-html" ,ghc-html)))
+    (home-page "https://github.com/bgamari/tabular")
+    (synopsis
+      "Two-dimensional data tables with rendering functions")
+    (description "Tabular provides a Haskell representation of
+two-dimensional data tables, the kind that you might find in a
+spreadsheet or or a research report.  It also comes with some
+default rendering functions for turning those tables into ASCII
+art, simple text with an arbitrary delimiter, CSV, HTML or LaTeX.
+
+Below is an example of the kind of output this library produces.
+The tabular package can group rows and columns, each group having
+one of three separators (no line, single line, double line) between
+its members.
+
+    || memtest 1 | memtest 2 ||  time test  | time test 2
+====++===========+===========++=============+============
+A 1 ||       hog |  terrible ||        slow |      slower
+A 2 ||       pig |   not bad ||        fast |     slowest
+----++-----------+-----------++-------------+------------
+B 1 ||      good |     awful || intolerable |    bearable
+B 2 ||    better | no chance ||    crawling |     amazing
+B 3 ||       meh |   well... ||  worst ever |          ok")
+    (license license:bsd-3)))
 
 (define-public ghc-tagged
   (package
-- 
2.28.0





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

* [bug#44174] [PATCH 10/16] gnu: Add ghc-uglymemo.
  2020-10-23 17:05 ` [bug#44174] [PATCH 01/16] gnu: Add ghc-control-monad-free Carlo Holl
                     ` (7 preceding siblings ...)
  2020-10-23 17:05   ` [bug#44174] [PATCH 09/16] gnu: Add ghc-tabular Carlo Holl
@ 2020-10-23 17:05   ` Carlo Holl
  2020-10-23 17:05   ` [bug#44174] [PATCH 11/16] gnu: Add ghc-wizards Carlo Holl
                     ` (5 subsequent siblings)
  14 siblings, 0 replies; 44+ messages in thread
From: Carlo Holl @ 2020-10-23 17:05 UTC (permalink / raw)
  To: 44174; +Cc: Carlo Holl

---
 gnu/packages/haskell-xyz.scm | 29 +++++++++++++++++++++++++++++
 1 file changed, 29 insertions(+)

diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm
index 0cce72e9f5..269ba898b3 100644
--- a/gnu/packages/haskell-xyz.scm
+++ b/gnu/packages/haskell-xyz.scm
@@ -13875,6 +13875,35 @@ processes.  It wraps around the @code{process} library, and intends to improve
 upon it.")
     (license license:expat)))
 
+(define-public ghc-uglymemo
+  (package
+    (name "ghc-uglymemo")
+    (version "0.1.0.1")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "https://hackage.haskell.org/package/uglymemo/uglymemo-"
+               version
+               ".tar.gz"))
+        (sha256
+          (base32
+            "0ixqg5d0ly1r18jbgaa89i6kjzgi6c5hanw1b1y8c5fbq14yz2gy"))))
+    (build-system haskell-build-system)
+    (home-page
+      "https://hackage.haskell.org/package/uglymemo")
+    (synopsis
+      "Simple (but internally ugly) memoization function")
+    (description "Simple (but internally ugly) memoization function.
+
+@itemize @bullet
+@item
+New in 0.1.0.1: Make it exception safe.
+@end itemize
+
+")
+    (license license:public-domain)))
+
 (define-public ghc-unagi-chan
   (package
     (name "ghc-unagi-chan")
-- 
2.28.0





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

* [bug#44174] [PATCH 11/16] gnu: Add ghc-wizards.
  2020-10-23 17:05 ` [bug#44174] [PATCH 01/16] gnu: Add ghc-control-monad-free Carlo Holl
                     ` (8 preceding siblings ...)
  2020-10-23 17:05   ` [bug#44174] [PATCH 10/16] gnu: Add ghc-uglymemo Carlo Holl
@ 2020-10-23 17:05   ` Carlo Holl
  2020-10-23 17:05   ` [bug#44174] [PATCH 12/16] gnu: Add ghc-cassava Carlo Holl
                     ` (4 subsequent siblings)
  14 siblings, 0 replies; 44+ messages in thread
From: Carlo Holl @ 2020-10-23 17:05 UTC (permalink / raw)
  To: 44174; +Cc: Carlo Holl

---
 gnu/packages/haskell-xyz.scm | 50 ++++++++++++++++++++++++++++++++++++
 1 file changed, 50 insertions(+)

diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm
index 269ba898b3..bfbe601ed7 100644
--- a/gnu/packages/haskell-xyz.scm
+++ b/gnu/packages/haskell-xyz.scm
@@ -14780,6 +14780,56 @@ widths to the Char type.")
 Haskell value or function.")
     (license license:bsd-3)))
 
+(define-public ghc-wizards
+  (package
+    (name "ghc-wizards")
+    (version "1.0.3")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "https://hackage.haskell.org/package/wizards/wizards-"
+               version
+               ".tar.gz"))
+        (sha256
+          (base32
+            "1clvbd1ckhvy29qrbmpkn7bya7300fq6znnps23nn3nxyrxhsr85"))))
+    (build-system haskell-build-system)
+    (inputs
+      `(("ghc-control-monad-free"
+         ,ghc-control-monad-free)))
+    (arguments
+      `(#:cabal-revision
+        ("1"
+         "095qd17zrdhqmcvmslbyzfa5sh9glvvsnsvnlz31gzsmi8nnsgim")))
+    (home-page
+      "http://hackage.haskell.org/package/wizards")
+    (synopsis
+      "High level, generic library for interrogative user interfaces")
+    (description "@code{wizards} is a package designed for the quick
+and painless development of @emph{interrogative} programs, which revolve around
+a \"dialogue\" with the user, who is asked a series of questions in a
+sequence much like an installation wizard.
+
+Everything from interactive system scripts, to installation wizards, to full-blown
+shells can be implemented with the support of @code{wizards}.
+
+It is developed transparently on top of a free monad, which separates out the
+semantics of the program from any particular interface.  A variety of backends
+exist, including console-based @code{System.Console.Wizard.Haskeline} and
+@code{System.Console.Wizard.BasicIO}, and the pure @code{System.Console.Wizard.Pure}.
+It is also possible to write your own backends, or extend existing back-ends with
+new features.  While both built-in IO backends operate on a console, there is no
+reason why @code{wizards} cannot also be used for making GUI wizard interfaces.
+
+See the github page for examples on usage:
+
+@url{http://www.github.com/liamoc/wizards}
+
+For creating backends, the module @code{System.Console.Wizard.Internal} has a brief
+tutorial.")
+    (license license:bsd-3)))
+
 (define-public ghc-wl-pprint
   (package
     (name "ghc-wl-pprint")
-- 
2.28.0





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

* [bug#44174] [PATCH 12/16] gnu: Add ghc-cassava.
  2020-10-23 17:05 ` [bug#44174] [PATCH 01/16] gnu: Add ghc-control-monad-free Carlo Holl
                     ` (9 preceding siblings ...)
  2020-10-23 17:05   ` [bug#44174] [PATCH 11/16] gnu: Add ghc-wizards Carlo Holl
@ 2020-10-23 17:05   ` Carlo Holl
  2020-10-23 17:05   ` [bug#44174] [PATCH 13/16] gnu: Add ghc-cassava-megaparsec Carlo Holl
                     ` (3 subsequent siblings)
  14 siblings, 0 replies; 44+ messages in thread
From: Carlo Holl @ 2020-10-23 17:05 UTC (permalink / raw)
  To: 44174; +Cc: Carlo Holl

---
 gnu/packages/haskell-xyz.scm | 89 ++++++++++++++++++++++++++++++++++++
 1 file changed, 89 insertions(+)

diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm
index bfbe601ed7..8060c2f034 100644
--- a/gnu/packages/haskell-xyz.scm
+++ b/gnu/packages/haskell-xyz.scm
@@ -1551,6 +1551,95 @@ constructor which can be parameterised by a string-like type like:
 the resulting type will be insensitive to cases.")
     (license license:bsd-3)))
 
+(define-public ghc-cassava
+  (package
+    (name "ghc-cassava")
+    (version "0.5.2.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "https://hackage.haskell.org/package/cassava/cassava-"
+               version
+               ".tar.gz"))
+        (sha256
+          (base32
+            "01h1zrdqb313cjd4rqm1107azzx4czqi018c2djf66a5i7ajl3dk"))))
+    (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)))
+    (native-inputs
+      `(("ghc-hunit" ,ghc-hunit)
+        ("ghc-quickcheck" ,ghc-quickcheck)
+        ("ghc-quickcheck-instances"
+         ,ghc-quickcheck-instances)
+        ("ghc-test-framework" ,ghc-test-framework)
+        ("ghc-test-framework-hunit"
+         ,ghc-test-framework-hunit)
+        ("ghc-test-framework-quickcheck2"
+         ,ghc-test-framework-quickcheck2)))
+    (arguments
+      `(#:cabal-revision
+        ("1"
+         "1ph8rf91z4nf1ryrh9s4gd1kq98jlgk2manwddkpch8k0n9xvfk4")
+        #:configure-flags '("--flags=-bytestring--lt-0_10_4")))
+    (home-page "https://github.com/haskell-hvr/cassava")
+    (synopsis "CSV parsing and encoding library")
+    (description "@code{cassava} is a library for parsing and encoding
+@url{https://tools.ietf.org/html/rfc4180, RFC 4180} compliant @url{https://
+en.wikipedia.org/wiki/Comma-separated_values, comma-separated values (CSV)}
+data, which is a textual line-oriented format commonly used for exchanging
+tabular data.
+
+@code{cassava}'s API includes support for
+
+@itemize @bullet
+
+@item
+Index-based record-conversion
+@item
+Name-based record-conversion
+@item
+Typeclass directed conversion of fields and records
+@item
+Built-in field-conversion instances for standard types
+@item
+Customizable record-conversion instance derivation via GHC generics
+@item
+Low-level @url{https://hackage.haskell.org/package/bytestring), bytestring}
+builders (see @url{https://hackage.haskell.org/package/cassava-0.5.2.0/docs/
+Data-Csv-Builder.html, Data.Csv.Builder})
+@item
+Incremental decoding and encoding API (see @url{https://hackage.haskell.org/
+package/cassava-0.5.2.0/docs/Data-Csv-Incremental.html, Data.Csv.Incremental})
+@item
+Streaming API for constant-space decoding (see @url{https://hackage.haskell.org/
+package/cassava-0.5.2.0/docs/Data-Csv-Streaming.html, Data.Csv.Streaming})
+@end itemize
+
+Moreover, this library is designed to be easy to use; for instance, here's a
+very simple example of encoding CSV data:
+
+@verbatim
+>>> Data.Csv.encode [(\"John\",27),(\"Jane\",28)]
+\"John,27\r\nJane,28\r\n\"
+@end verbatim
+
+Please refer to the documentation in @url{https://hackage.haskell.org/package/
+cassava-0.5.2.0/docs/Data-Csv.html, Data.Csv} and the included @url{https://
+hackage.haskell.org/package/cassava-0.5.2.0/#readme, README} for more usage
+examples.")
+    (license license:bsd-3)))
+
 (define-public ghc-cborg
   (package
     (name "ghc-cborg")
-- 
2.28.0





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

* [bug#44174] [PATCH 13/16] gnu: Add ghc-cassava-megaparsec.
  2020-10-23 17:05 ` [bug#44174] [PATCH 01/16] gnu: Add ghc-control-monad-free Carlo Holl
                     ` (10 preceding siblings ...)
  2020-10-23 17:05   ` [bug#44174] [PATCH 12/16] gnu: Add ghc-cassava Carlo Holl
@ 2020-10-23 17:05   ` Carlo Holl
  2020-10-24 21:39     ` Christopher Baines
  2020-10-23 17:05   ` [bug#44174] [PATCH 14/16] gnu: Add ghc-hledger-lib Carlo Holl
                     ` (2 subsequent siblings)
  14 siblings, 1 reply; 44+ messages in thread
From: Carlo Holl @ 2020-10-23 17:05 UTC (permalink / raw)
  To: 44174; +Cc: Carlo Holl

---
 gnu/packages/haskell-xyz.scm | 33 +++++++++++++++++++++++++++++++++
 1 file changed, 33 insertions(+)

diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm
index 8060c2f034..46ed95d607 100644
--- a/gnu/packages/haskell-xyz.scm
+++ b/gnu/packages/haskell-xyz.scm
@@ -1640,6 +1640,39 @@ hackage.haskell.org/package/cassava-0.5.2.0/#readme, README} for more usage
 examples.")
     (license license:bsd-3)))
 
+(define-public ghc-cassava-megaparsec
+  (package
+    (name "ghc-cassava-megaparsec")
+    (version "2.0.2")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "https://hackage.haskell.org/package/cassava-megaparsec/"
+               "cassava-megaparsec-"
+               version
+               ".tar.gz"))
+        (sha256
+          (base32
+            "03x1462agrfdagklp8c89b8p4z2hd8nbf6d3895sz770zjkawda7"))))
+    (build-system haskell-build-system)
+    (inputs
+      `(("ghc-cassava" ,ghc-cassava)
+        ("ghc-megaparsec" ,ghc-megaparsec)
+        ("ghc-unordered-containers"
+         ,ghc-unordered-containers)
+        ("ghc-vector" ,ghc-vector)))
+    (native-inputs
+      `(("ghc-hspec" ,ghc-hspec)
+        ("ghc-hspec-megaparsec" ,ghc-hspec-megaparsec)))
+    (home-page
+      "https://github.com/stackbuilders/cassava-megaparsec")
+    (synopsis
+      "Megaparsec parser of CSV files that plays nicely with Cassava")
+    (description
+      "Megaparsec parser of CSV files that plays nicely with Cassava.")
+    (license license:expat)))
+
 (define-public ghc-cborg
   (package
     (name "ghc-cborg")
-- 
2.28.0





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

* [bug#44174] [PATCH 14/16] gnu: Add ghc-hledger-lib.
  2020-10-23 17:05 ` [bug#44174] [PATCH 01/16] gnu: Add ghc-control-monad-free Carlo Holl
                     ` (11 preceding siblings ...)
  2020-10-23 17:05   ` [bug#44174] [PATCH 13/16] gnu: Add ghc-cassava-megaparsec Carlo Holl
@ 2020-10-23 17:05   ` Carlo Holl
  2020-10-23 17:05   ` [bug#44174] [PATCH 15/16] gnu: Add hledger Carlo Holl
  2020-10-23 17:05   ` [bug#44174] [PATCH 16/16] Add attribution Carlo Holl
  14 siblings, 0 replies; 44+ messages in thread
From: Carlo Holl @ 2020-10-23 17:05 UTC (permalink / raw)
  To: 44174; +Cc: Carlo Holl

---
 gnu/packages/haskell-xyz.scm | 64 ++++++++++++++++++++++++++++++++++++
 1 file changed, 64 insertions(+)

diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm
index 46ed95d607..eaba188e97 100644
--- a/gnu/packages/haskell-xyz.scm
+++ b/gnu/packages/haskell-xyz.scm
@@ -5853,6 +5853,70 @@ feature, allowing applications to subscribe to notifications when a file is
 accessed or modified.")
     (license license:bsd-3)))
 
+(define-public ghc-hledger-lib
+  (package
+    (name "ghc-hledger-lib")
+    (version "1.19.1")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "https://hackage.haskell.org/package/hledger-lib/hledger-lib-"
+               version
+               ".tar.gz"))
+        (sha256
+          (base32
+            "0py11011r358nmnvwwkc8mlx6mpy36jm8sqlr4i8ihx3x0zjdgya"))))
+    (build-system haskell-build-system)
+    (inputs
+      `(("ghc-decimal" ,ghc-decimal)
+        ("ghc-glob" ,ghc-glob)
+        ("ghc-aeson" ,ghc-aeson)
+        ("ghc-aeson-pretty" ,ghc-aeson-pretty)
+        ("ghc-ansi-terminal" ,ghc-ansi-terminal)
+        ("ghc-base-compat-batteries"
+         ,ghc-base-compat-batteries)
+        ("ghc-blaze-markup" ,ghc-blaze-markup)
+        ("ghc-call-stack" ,ghc-call-stack)
+        ("ghc-cassava" ,ghc-cassava)
+        ("ghc-cassava-megaparsec"
+         ,ghc-cassava-megaparsec)
+        ("ghc-cmdargs" ,ghc-cmdargs)
+        ("ghc-data-default" ,ghc-data-default)
+        ("ghc-extra" ,ghc-extra)
+        ("ghc-fgl" ,ghc-fgl)
+        ("ghc-file-embed" ,ghc-file-embed)
+        ("ghc-hashtables" ,ghc-hashtables)
+        ("ghc-megaparsec" ,ghc-megaparsec)
+        ("ghc-old-time" ,ghc-old-time)
+        ("ghc-parser-combinators"
+         ,ghc-parser-combinators)
+        ("ghc-pretty-show" ,ghc-pretty-show)
+        ("ghc-regex-tdfa" ,ghc-regex-tdfa)
+        ("ghc-safe" ,ghc-safe)
+        ("ghc-split" ,ghc-split)
+        ("ghc-tabular" ,ghc-tabular)
+        ("ghc-tasty" ,ghc-tasty)
+        ("ghc-tasty-hunit" ,ghc-tasty-hunit)
+        ("ghc-timeit" ,ghc-timeit)
+        ("ghc-uglymemo" ,ghc-uglymemo)
+        ("ghc-unordered-containers"
+         ,ghc-unordered-containers)
+        ("ghc-utf8-string" ,ghc-utf8-string)))
+    (native-inputs `(("ghc-doctest" ,ghc-doctest)))
+    (home-page "https://hledger.org")
+    (synopsis "Reusable library providing the core functionality of hledger")
+    (description "A reusable library containing hledger's core functionality.
+This is used by most hledger* packages so that they support the same common
+file formats, command line options, reports etc.
+
+hledger is a robust, cross-platform set of tools for tracking money, time,
+or any other commodity, using double-entry accounting and a simple, editable
+file format, with command-line, terminal and web interfaces.  It is a Haskell
+rewrite of Ledger, and one of the leading implementations of Plain Text Accounting.
+Read more at: @url{https://hledger.org}")
+    (license license:gpl3)))
+
 (define-public ghc-hmatrix
   (package
     (name "ghc-hmatrix")
-- 
2.28.0





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

* [bug#44174] [PATCH 15/16] gnu: Add hledger.
  2020-10-23 17:05 ` [bug#44174] [PATCH 01/16] gnu: Add ghc-control-monad-free Carlo Holl
                     ` (12 preceding siblings ...)
  2020-10-23 17:05   ` [bug#44174] [PATCH 14/16] gnu: Add ghc-hledger-lib Carlo Holl
@ 2020-10-23 17:05   ` Carlo Holl
  2020-10-23 17:05   ` [bug#44174] [PATCH 16/16] Add attribution Carlo Holl
  14 siblings, 0 replies; 44+ messages in thread
From: Carlo Holl @ 2020-10-23 17:05 UTC (permalink / raw)
  To: 44174; +Cc: Carlo Holl

---
 gnu/packages/finance.scm | 63 ++++++++++++++++++++++++++++++++++++++++
 1 file changed, 63 insertions(+)

diff --git a/gnu/packages/finance.scm b/gnu/packages/finance.scm
index 4397cf8ba8..15a86b8688 100644
--- a/gnu/packages/finance.scm
+++ b/gnu/packages/finance.scm
@@ -45,6 +45,7 @@
   #:use-module (guix build-system cmake)
   #:use-module (guix build-system copy)
   #:use-module (guix build-system emacs)
+  #:use-module (guix build-system haskell)
   #:use-module (guix build-system python)
   #:use-module (guix build-system glib-or-gtk)
   #:use-module (guix build-system go)
@@ -72,6 +73,9 @@
   #:use-module (gnu packages graphviz)
   #:use-module (gnu packages groff)
   #:use-module (gnu packages gtk)
+  #:use-module (gnu packages haskell-check)
+  #:use-module (gnu packages haskell-web)
+  #:use-module (gnu packages haskell-xyz)
   #:use-module (gnu packages jemalloc)
   #:use-module (gnu packages libedit)
   #:use-module (gnu packages libevent)
@@ -170,6 +174,65 @@ of the bitcoin protocol.  This package provides the Bitcoin Core command
 line client and a client based on Qt.")
     (license license:expat)))
 
+(define-public hledger
+    (package
+      (name "hledger")
+      (version "1.19.1")
+      (source
+        (origin
+          (method url-fetch)
+          (uri (string-append
+                 "https://hackage.haskell.org/package/hledger/hledger-"
+                 version
+                 ".tar.gz"))
+          (sha256
+            (base32
+              "0wfsyf2q1kf90mj3lxs0m5ghj153axmpkc8xfy12vkz5imnyphfm"))))
+      (build-system haskell-build-system)
+      (inputs
+        `(("ghc-decimal" ,ghc-decimal)
+          ("ghc-diff" ,ghc-diff)
+          ("ghc-aeson" ,ghc-aeson)
+          ("ghc-ansi-terminal" ,ghc-ansi-terminal)
+          ("ghc-base-compat-batteries"
+           ,ghc-base-compat-batteries)
+          ("ghc-cmdargs" ,ghc-cmdargs)
+          ("ghc-data-default" ,ghc-data-default)
+          ("ghc-extra" ,ghc-extra)
+          ("ghc-hashable" ,ghc-hashable)
+          ("ghc-hledger-lib" ,ghc-hledger-lib)
+          ("ghc-lucid" ,ghc-lucid)
+          ("ghc-math-functions" ,ghc-math-functions)
+          ("ghc-megaparsec" ,ghc-megaparsec)
+          ("ghc-old-time" ,ghc-old-time)
+          ("ghc-pretty-show" ,ghc-pretty-show)
+          ("ghc-regex-tdfa" ,ghc-regex-tdfa)
+          ("ghc-safe" ,ghc-safe)
+          ("ghc-shakespeare" ,ghc-shakespeare)
+          ("ghc-split" ,ghc-split)
+          ("ghc-tabular" ,ghc-tabular)
+          ("ghc-tasty" ,ghc-tasty)
+          ("ghc-temporary" ,ghc-temporary)
+          ("ghc-timeit" ,ghc-timeit)
+          ("ghc-unordered-containers"
+           ,ghc-unordered-containers)
+          ("ghc-utf8-string" ,ghc-utf8-string)
+          ("ghc-utility-ht" ,ghc-utility-ht)
+          ("ghc-wizards" ,ghc-wizards)))
+      (home-page "https://hledger.org")
+      (synopsis
+        "Command-line interface for the hledger accounting system")
+      (description "The command-line interface for the hledger accounting
+system.  Its basic function is to read a plain text file describing financial
+transactions and produce useful reports.
+
+hledger is a robust, cross-platform set of tools for tracking money, time,
+or any other commodity, using double-entry accounting and a simple, editable
+file format, with command-line, terminal and web interfaces.  It is a Haskell
+rewrite of Ledger, and one of the leading implementations of Plain Text Accounting.
+Read more at: @url{https://hledger.org}")
+      (license license:gpl3)))
+
 (define-public homebank
   (package
     (name "homebank")
-- 
2.28.0





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

* [bug#44174] [PATCH 16/16] Add attribution.
  2020-10-23 17:05 ` [bug#44174] [PATCH 01/16] gnu: Add ghc-control-monad-free Carlo Holl
                     ` (13 preceding siblings ...)
  2020-10-23 17:05   ` [bug#44174] [PATCH 15/16] gnu: Add hledger Carlo Holl
@ 2020-10-23 17:05   ` Carlo Holl
  2020-10-24 21:40     ` Christopher Baines
  14 siblings, 1 reply; 44+ messages in thread
From: Carlo Holl @ 2020-10-23 17:05 UTC (permalink / raw)
  To: 44174; +Cc: Carlo Holl

---
 gnu/packages/finance.scm     | 1 +
 gnu/packages/haskell-xyz.scm | 1 +
 2 files changed, 2 insertions(+)

diff --git a/gnu/packages/finance.scm b/gnu/packages/finance.scm
index 15a86b8688..fe033e9494 100644
--- a/gnu/packages/finance.scm
+++ b/gnu/packages/finance.scm
@@ -20,6 +20,7 @@
 ;;; Copyright © 2020 Tom Zander <tomz@freedommail.ch>
 ;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com>
 ;;; Copyright © 2020 Vinicius Monego <monego@posteo.net>
+;;; Copyright © 2020 Carlo Holl <carloholl@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm
index eaba188e97..53770ec01d 100644
--- a/gnu/packages/haskell-xyz.scm
+++ b/gnu/packages/haskell-xyz.scm
@@ -26,6 +26,7 @@
 ;;; Copyright © 2020 JoJo <jo@jo.zone>
 ;;; Copyright © 2020 Nicolas Goaziou <mail@nicolasgoaziou.fr>
 ;;; Copyright © 2020 Alexandru-Sergiu Marton <brown121407@member.fsf.org>
+;;; Copyright © 2020 Carlo Holl <carloholl@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
-- 
2.28.0





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

* [bug#44174] [PATCH 00/16] Add hledger and its dependencies.
  2020-10-23  7:46 [bug#44174] [PATCH 00/16] Add hledger and its dependencies Carlo Holl
  2020-10-23 17:05 ` [bug#44174] [PATCH 01/16] gnu: Add ghc-control-monad-free Carlo Holl
@ 2020-10-24 21:26 ` Christopher Baines
  2020-11-01  2:11   ` Carlo Holl
  2020-11-01  2:02 ` [bug#44174] [PATCH v2 00/15] " Carlo Holl
  2 siblings, 1 reply; 44+ messages in thread
From: Christopher Baines @ 2020-10-24 21:26 UTC (permalink / raw)
  To: Carlo Holl; +Cc: 44174

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


Carlo Holl <carloholl@gmail.com> writes:

> Guix,
>
> This patch series adds hledger, a plaintext accounting
> program. hledger started as a Haskell reimplementation of Ledger
> CLI. I use hledger regularly to manage personal finances and those of
> several businesses, and would not be suprised to find other hledger
> users in the Guix community.
>
> More information is available at https://hledger.org.

Hi Carlo, thanks for the patches!

> A couple of notes:
>
>     1. The hledger package is placed in (gnu packages finance), and
>     its dependencies in (gnu packages haskell-xyz).

That sounds good :)

>     2. The hledger package is *not* prefixed with 'ghc', but its
>     dependencies are.

Also fine.

>     3. The package ghc-doctest was bumped (minor version), affecting several dependent packages.
>         I was able to build most of these affected packages (querying guix refresh --list-dependents),
>         but it was taking forever so I cut that effort short. I consider this a rough heuristic to determine
>         that there are no substantial changes associated with this
>         version bump.

Sounds good.

>     4. I'm not terribly familiar with the Texinfo format, so there are
>     likely some rough edges there.

Looks like you've done pretty well from what I've seen :)

>     5. I am able to build hledger and its dependencies without error, but was unsuccessful building
>         on different architectures with qemu. I wasn't even able to build GHC under qemu so I didn't bother
>         digging any further.

No problem, if it builds on x86_64-linux, that's good enough at least
initially.

> This is my first contribution to Guix, and I'm also not a Haskell
> expert, so expect some headaches. I am happy to attend to any issues
> as best I am able.

Great, I'll make some more comments on the individual patches, a few
general comments though:

 - The commits should include changelog entries. For new packages, these
   are pretty easy to write, it's just:

* gnu/packages/FILE.scm (PACKAGE): New variable.

 - The indentation looks off in places, there's some stuff here about
   indentation [1]. What editor are you using?

1: https://guix.gnu.org/manual/en/html_node/Formatting-Code.html


Let me know if you have any questions, and it would be great if you
could send an updated set of patches.

Thanks,

Chris

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 987 bytes --]

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

* [bug#44174] [PATCH 02/16] gnu: Add ghc-csv.
  2020-10-23 17:05   ` [bug#44174] [PATCH 02/16] gnu: Add ghc-csv Carlo Holl
@ 2020-10-24 21:27     ` Christopher Baines
  0 siblings, 0 replies; 44+ messages in thread
From: Christopher Baines @ 2020-10-24 21:27 UTC (permalink / raw)
  To: Carlo Holl; +Cc: 44174

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


Carlo Holl <carloholl@gmail.com> writes:

> ---
>  gnu/packages/haskell-xyz.scm | 26 ++++++++++++++++++++++++++
>  1 file changed, 26 insertions(+)
>
> diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm
> index ccbe026142..952e24cd55 100644
> --- a/gnu/packages/haskell-xyz.scm
> +++ b/gnu/packages/haskell-xyz.scm
> @@ -2665,6 +2665,32 @@ pure @code{Either} value.  This means that you need not remember which specific
>  function performs the conversion you desire.")
>      (license license:bsd-3)))
>
> +(define-public ghc-csv
> +  (package
> +    (name "ghc-csv")
> +    (version "0.1.2")
> +    (source
> +      (origin
> +        (method url-fetch)
> +        (uri (string-append
> +               "https://hackage.haskell.org/package/csv/csv-"
> +               version
> +               ".tar.gz"))
> +        (sha256
> +          (base32
> +            "00767ai09wm7f0yzmpqck3cpgxncpr9djnmmz5l17ajz69139x4c"))))
> +    (build-system haskell-build-system)
> +    (home-page
> +      "http://hackage.haskell.org/package/csv")
> +    (synopsis "CSV loader and dumper")
> +    (description "CSV loader and dumper

This above bit of the description repeats the synopsis, so it should be
removed.

> +This library parses and dumps documents that are formatted according
> +to RFC 4180, @cite{The common Format and MIME Type for Comma-Separated
> +Values (CSV) Files}.  This format is used, among many other things,
> +as a lingua franca for spreadsheets, and for certain web services.")
> +    (license license:expat)))
> +
>  (define-public ghc-data-accessor
>    (package
>      (name "ghc-data-accessor")


[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 987 bytes --]

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

* [bug#44174] [PATCH 04/16] gnu: Upgrade ghc-doctest.
  2020-10-23 17:05   ` [bug#44174] [PATCH 04/16] gnu: Upgrade ghc-doctest Carlo Holl
@ 2020-10-24 21:29     ` Christopher Baines
  0 siblings, 0 replies; 44+ messages in thread
From: Christopher Baines @ 2020-10-24 21:29 UTC (permalink / raw)
  To: Carlo Holl; +Cc: 44174

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


Carlo Holl <carloholl@gmail.com> writes:

> ---
>  gnu/packages/haskell-xyz.scm | 35 ++++++++++++++++++++---------------
>  1 file changed, 20 insertions(+), 15 deletions(-)


For the commit message for this package, I'd write:

gnu: ghc-doctest: Update to 0.16.3.

* gnu/packages/haskell-xyz.scm (ghc-doctest): Update to 0.16.3.
[inputs,native-inputs]: Replace with what is generated by guix import.


> diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm
> index 803ee995c0..ad9c49ddeb 100644
> --- a/gnu/packages/haskell-xyz.scm
> +++ b/gnu/packages/haskell-xyz.scm
> @@ -3416,7 +3416,7 @@ Writer monad), where list append quickly becomes too expensive.")
>  (define-public ghc-doctest
>    (package
>      (name "ghc-doctest")
> -    (version "0.16.2")
> +    (version "0.16.3")
>      (source
>       (origin
>         (method url-fetch)
> @@ -3426,26 +3426,31 @@ Writer monad), where list append quickly becomes too expensive.")
>               ".tar.gz"))
>         (sha256
>          (base32
> -         "0lk4cjfzi5bx2snfzw1zi06li0gvgz3ckfh2kwa98l7nxfdl39ag"))))
> +         "1y1l7aa80qkib1z8lsizgg7fpfdmdwhxvi5m255a42jdkjgn5sfg"))))
>      (build-system haskell-build-system)
>      (arguments `(#:tests? #f))          ; FIXME: missing test framework
>      (inputs
> -     `(("ghc-syb" ,ghc-syb)
> -       ("ghc-paths" ,ghc-paths)
> -       ("ghc-base-compat" ,ghc-base-compat)
> -       ("ghc-code-page" ,ghc-code-page)
> -       ("ghc-hunit" ,ghc-hunit)
> -       ("ghc-hspec" ,ghc-hspec)
> -       ("ghc-quickcheck" ,ghc-quickcheck)
> -       ("ghc-stringbuilder" ,ghc-stringbuilder)
> -       ("ghc-silently" ,ghc-silently)
> -       ("ghc-setenv" ,ghc-setenv)))
> +      `(("ghc-base-compat" ,ghc-base-compat)
> +        ("ghc-code-page" ,ghc-code-page)
> +        ("ghc-paths" ,ghc-paths)
> +        ("ghc-syb" ,ghc-syb)))
> +    (native-inputs
> +      `(("ghc-hunit" ,ghc-hunit)
> +        ("ghc-quickcheck" ,ghc-quickcheck)
> +        ("ghc-hspec" ,ghc-hspec)
> +        ("ghc-hspec-core" ,ghc-hspec-core)
> +        ("ghc-mockery" ,ghc-mockery)
> +        ("ghc-setenv" ,ghc-setenv)
> +        ("ghc-silently" ,ghc-silently)
> +        ("ghc-stringbuilder" ,ghc-stringbuilder)))

Here you can see the slightly off indentation, the previous level of
indentation is what I'd use.

>      (home-page
>       "https://github.com/sol/doctest#readme")
>      (synopsis "Test interactive Haskell examples")
> -    (description "The doctest program checks examples in source code comments.
> -It is modeled after doctest for Python, see
> -@uref{https://docs.python.org/library/doctest.html, the Doctest website}.")
> +    (description
> +      "The doctest program checks examples in source code comments.  It is modeled
> +after doctest for Python (@url{http://docs.python.org/library/doctest.html}).
> +
> +Documentation is at @url{https://github.com/sol/doctest#readme}.")
>      (license license:expat)))

I'd keep the previous description, as I think it's better.

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 987 bytes --]

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

* [bug#44174] [PATCH 05/16] gnu: Add ghc-hspec-megaparsec.
  2020-10-23 17:05   ` [bug#44174] [PATCH 05/16] gnu: Add ghc-hspec-megaparsec Carlo Holl
@ 2020-10-24 21:30     ` Christopher Baines
  0 siblings, 0 replies; 44+ messages in thread
From: Christopher Baines @ 2020-10-24 21:30 UTC (permalink / raw)
  To: Carlo Holl; +Cc: 44174

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


Carlo Holl <carloholl@gmail.com> writes:

> ---
>  gnu/packages/haskell-xyz.scm | 28 ++++++++++++++++++++++++++++
>  1 file changed, 28 insertions(+)
>
> diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm
> index ad9c49ddeb..84f28ee5a5 100644
> --- a/gnu/packages/haskell-xyz.scm
> +++ b/gnu/packages/haskell-xyz.scm
> @@ -5934,6 +5934,34 @@ are described in a file named @code{package.yaml}.  Both @code{cabal2nix} and
>  @code{package.yaml}.")
>      (license license:expat)))
>  
> +(define-public ghc-hspec-megaparsec
> +  (package
> +    (name "ghc-hspec-megaparsec")
> +    (version "2.0.1")
> +    (source
> +      (origin
> +        (method url-fetch)
> +        (uri (string-append
> +               "https://hackage.haskell.org/package/hspec-megaparsec/hspec-megaparsec-"
> +               version
> +               ".tar.gz"))
> +        (sha256
> +          (base32
> +            "0w8nn2rh01lkiwsiyqh3gviklhfmy0245rakj94dmliyljw8skfg"))))
> +    (build-system haskell-build-system)
> +    (inputs
> +      `(("ghc-hspec-expectations"
> +         ,ghc-hspec-expectations)
> +        ("ghc-megaparsec" ,ghc-megaparsec)))
> +    (native-inputs `(("ghc-hspec" ,ghc-hspec)))
> +    (home-page
> +      "https://github.com/mrkkrp/hspec-megaparsec")
> +    (synopsis
> +      "Utility functions for testing Megaparsec parsers with Hspec")
> +    (description
> +      "Utility functions for testing Megaparsec parsers with Hspec.")

Would you be able to come up with a more descriptive description? Or at
least one that doesn't repeat the synopsis in the same words. I
recognise that this is what was probably generated by the importer.

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 987 bytes --]

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

* [bug#44174] [PATCH 09/16] gnu: Add ghc-tabular.
  2020-10-23 17:05   ` [bug#44174] [PATCH 09/16] gnu: Add ghc-tabular Carlo Holl
@ 2020-10-24 21:38     ` Christopher Baines
  0 siblings, 0 replies; 44+ messages in thread
From: Christopher Baines @ 2020-10-24 21:38 UTC (permalink / raw)
  To: Carlo Holl; +Cc: 44174

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


Carlo Holl <carloholl@gmail.com> writes:

> ---
>  gnu/packages/haskell-xyz.scm | 40 ++++++++++++++++++++++++++++++++++++
>  1 file changed, 40 insertions(+)
>
> diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm
> index c4a8d4c208..0cce72e9f5 100644
> --- a/gnu/packages/haskell-xyz.scm
> +++ b/gnu/packages/haskell-xyz.scm
> @@ -12813,6 +12813,46 @@ Unlike the filepath package, this package does not simply reuse String,
>  increasing type safety.")
>      (license license:expat)))
>  
> +(define-public ghc-tabular
> +  (package
> +    (name "ghc-tabular")
> +    (version "0.2.2.8")
> +    (source
> +      (origin
> +        (method url-fetch)
> +        (uri (string-append
> +               "https://hackage.haskell.org/package/tabular/tabular-"
> +               version
> +               ".tar.gz"))
> +        (sha256
> +          (base32
> +            "0z936gh8n8i8qdkagyxwd9gqq13skd5fv013vdvwsibrxkm0czfb"))))
> +    (build-system haskell-build-system)
> +    (inputs
> +      `(("ghc-csv" ,ghc-csv) ("ghc-html" ,ghc-html)))

I'd put each input on it's own line.

> +    (home-page "https://github.com/bgamari/tabular")
> +    (synopsis
> +      "Two-dimensional data tables with rendering functions")
> +    (description "Tabular provides a Haskell representation of
> +two-dimensional data tables, the kind that you might find in a
> +spreadsheet or or a research report.  It also comes with some
> +default rendering functions for turning those tables into ASCII
> +art, simple text with an arbitrary delimiter, CSV, HTML or LaTeX.
> +
> +Below is an example of the kind of output this library produces.
> +The tabular package can group rows and columns, each group having
> +one of three separators (no line, single line, double line) between
> +its members.
> +
> +    || memtest 1 | memtest 2 ||  time test  | time test 2
> +====++===========+===========++=============+============
> +A 1 ||       hog |  terrible ||        slow |      slower
> +A 2 ||       pig |   not bad ||        fast |     slowest
> +----++-----------+-----------++-------------+------------
> +B 1 ||      good |     awful || intolerable |    bearable
> +B 2 ||    better | no chance ||    crawling |     amazing
> +B 3 ||       meh |   well... ||  worst ever |          ok")
> +    (license license:bsd-3)))

I'm not sure if this is semantically the best option, but if you put
@verbatim before this table, and @end verbatim after it, it should
display correctly in ./pre-inst-env guix show ghc-tabular at least.

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 987 bytes --]

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

* [bug#44174] [PATCH 13/16] gnu: Add ghc-cassava-megaparsec.
  2020-10-23 17:05   ` [bug#44174] [PATCH 13/16] gnu: Add ghc-cassava-megaparsec Carlo Holl
@ 2020-10-24 21:39     ` Christopher Baines
  0 siblings, 0 replies; 44+ messages in thread
From: Christopher Baines @ 2020-10-24 21:39 UTC (permalink / raw)
  To: Carlo Holl; +Cc: 44174

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


Carlo Holl <carloholl@gmail.com> writes:

> ---
>  gnu/packages/haskell-xyz.scm | 33 +++++++++++++++++++++++++++++++++
>  1 file changed, 33 insertions(+)
>
> diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm
> index 8060c2f034..46ed95d607 100644
> --- a/gnu/packages/haskell-xyz.scm
> +++ b/gnu/packages/haskell-xyz.scm
> @@ -1640,6 +1640,39 @@ hackage.haskell.org/package/cassava-0.5.2.0/#readme, README} for more usage
>  examples.")
>      (license license:bsd-3)))
>  
> +(define-public ghc-cassava-megaparsec
> +  (package
> +    (name "ghc-cassava-megaparsec")
> +    (version "2.0.2")
> +    (source
> +      (origin
> +        (method url-fetch)
> +        (uri (string-append
> +               "https://hackage.haskell.org/package/cassava-megaparsec/"
> +               "cassava-megaparsec-"
> +               version
> +               ".tar.gz"))
> +        (sha256
> +          (base32
> +            "03x1462agrfdagklp8c89b8p4z2hd8nbf6d3895sz770zjkawda7"))))
> +    (build-system haskell-build-system)
> +    (inputs
> +      `(("ghc-cassava" ,ghc-cassava)
> +        ("ghc-megaparsec" ,ghc-megaparsec)
> +        ("ghc-unordered-containers"
> +         ,ghc-unordered-containers)
> +        ("ghc-vector" ,ghc-vector)))
> +    (native-inputs
> +      `(("ghc-hspec" ,ghc-hspec)
> +        ("ghc-hspec-megaparsec" ,ghc-hspec-megaparsec)))
> +    (home-page
> +      "https://github.com/stackbuilders/cassava-megaparsec")
> +    (synopsis
> +      "Megaparsec parser of CSV files that plays nicely with Cassava")
> +    (description
> +      "Megaparsec parser of CSV files that plays nicely with Cassava.")

Similarly to the previous package, it would be good to write something
here for the description that doesn't repeat the synopsis.

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 987 bytes --]

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

* [bug#44174] [PATCH 16/16] Add attribution.
  2020-10-23 17:05   ` [bug#44174] [PATCH 16/16] Add attribution Carlo Holl
@ 2020-10-24 21:40     ` Christopher Baines
  0 siblings, 0 replies; 44+ messages in thread
From: Christopher Baines @ 2020-10-24 21:40 UTC (permalink / raw)
  To: Carlo Holl; +Cc: 44174

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


Carlo Holl <carloholl@gmail.com> writes:

> ---
>  gnu/packages/finance.scm     | 1 +
>  gnu/packages/haskell-xyz.scm | 1 +
>  2 files changed, 2 insertions(+)
>
> diff --git a/gnu/packages/finance.scm b/gnu/packages/finance.scm
> index 15a86b8688..fe033e9494 100644
> --- a/gnu/packages/finance.scm
> +++ b/gnu/packages/finance.scm
> @@ -20,6 +20,7 @@
>  ;;; Copyright © 2020 Tom Zander <tomz@freedommail.ch>
>  ;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com>
>  ;;; Copyright © 2020 Vinicius Monego <monego@posteo.net>
> +;;; Copyright © 2020 Carlo Holl <carloholl@gmail.com>
>  ;;;
>  ;;; This file is part of GNU Guix.
>  ;;;
> diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm
> index eaba188e97..53770ec01d 100644
> --- a/gnu/packages/haskell-xyz.scm
> +++ b/gnu/packages/haskell-xyz.scm
> @@ -26,6 +26,7 @@
>  ;;; Copyright © 2020 JoJo <jo@jo.zone>
>  ;;; Copyright © 2020 Nicolas Goaziou <mail@nicolasgoaziou.fr>
>  ;;; Copyright © 2020 Alexandru-Sergiu Marton <brown121407@member.fsf.org>
> +;;; Copyright © 2020 Carlo Holl <carloholl@gmail.com>
>  ;;;
>  ;;; This file is part of GNU Guix.
>  ;;;

While most changes are good for their own commits, I'd just make these
changes in the first commits that touch each of these files.

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 987 bytes --]

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

* [bug#44174] [PATCH v2 00/15] Add hledger and its dependencies.
  2020-10-23  7:46 [bug#44174] [PATCH 00/16] Add hledger and its dependencies Carlo Holl
  2020-10-23 17:05 ` [bug#44174] [PATCH 01/16] gnu: Add ghc-control-monad-free Carlo Holl
  2020-10-24 21:26 ` [bug#44174] [PATCH 00/16] Add hledger and its dependencies Christopher Baines
@ 2020-11-01  2:02 ` Carlo Holl
  2020-11-01  2:02   ` [bug#44174] [PATCH v2 01/15] gnu: Add ghc-control-monad-free Carlo Holl
                     ` (15 more replies)
  2 siblings, 16 replies; 44+ messages in thread
From: Carlo Holl @ 2020-11-01  2:02 UTC (permalink / raw)
  To: 44174; +Cc: Carlo Holl

This patch series adds hledger, a plaintext accounting program.

Changes since v1 (based on feedback from Christopher Baines):
    - Fixed incorrect indentation.
    - Added changelog entries to each commit message.
    - Improved descriptions for some of the packages.
    - Moved attribution to first commits to touch any given file.

Notes:

Christopher suggested I wrap an ascii table with @verbatim as part of the description for the ghc-tabular package so that it displays correctly, but I couldn't get 'guix show' to work with @verbatim, failing with <<Throw to key `parser-error' with args `(#<input: string 7fdb95dad700> "EOF while reading a token " "reading verbatim")'.>>. I used @example instead, which works under 'guix show', but I'm not sure what the implications are for other output formats.

Carlo Holl (15):
  gnu: Add ghc-control-monad-free.
  gnu: Add ghc-csv.
  gnu: Add ghc-decimal.
  gnu: ghc-doctest: Update to 0.16.3.
  gnu: Add ghc-hspec-megaparsec.
  gnu: Add ghc-lucid.
  gnu: Add ghc-only.
  gnu: Add ghc-text-short.
  gnu: Add ghc-tabular.
  gnu: Add ghc-uglymemo.
  gnu: Add ghc-wizards.
  gnu: Add ghc-cassava.
  gnu: Add ghc-cassava-megaparsec.
  gnu: Add ghc-hledger-lib.
  gnu: Add hledger.

 gnu/packages/finance.scm     |  63 ++++
 gnu/packages/haskell-xyz.scm | 557 ++++++++++++++++++++++++++++++++++-
 2 files changed, 608 insertions(+), 12 deletions(-)

-- 
2.28.0





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

* [bug#44174] [PATCH v2 01/15] gnu: Add ghc-control-monad-free.
  2020-11-01  2:02 ` [bug#44174] [PATCH v2 00/15] " Carlo Holl
@ 2020-11-01  2:02   ` Carlo Holl
  2020-11-01  2:02   ` [bug#44174] [PATCH v2 02/15] gnu: Add ghc-csv Carlo Holl
                     ` (14 subsequent siblings)
  15 siblings, 0 replies; 44+ messages in thread
From: Carlo Holl @ 2020-11-01  2:02 UTC (permalink / raw)
  To: 44174; +Cc: Carlo Holl

* gnu/packages/haskell-xyz.scm (ghc-control-monad-free): New variable.
---
 gnu/packages/haskell-xyz.scm | 31 +++++++++++++++++++++++++++++++
 1 file changed, 31 insertions(+)

diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm
index 5b9da15630..762435fa6b 100644
--- a/gnu/packages/haskell-xyz.scm
+++ b/gnu/packages/haskell-xyz.scm
@@ -26,6 +26,7 @@
 ;;; Copyright © 2020 JoJo <jo@jo.zone>
 ;;; Copyright © 2020 Nicolas Goaziou <mail@nicolasgoaziou.fr>
 ;;; Copyright © 2020 Alexandru-Sergiu Marton <brown121407@member.fsf.org>
+;;; Copyright © 2020 Carlo Holl <carloholl@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -2608,6 +2609,36 @@ a vocabulary for working with them.")
 @code{ghc-contravariant} package.")
     (license license:expat)))
 
+(define-public ghc-control-monad-free
+  (package
+    (name "ghc-control-monad-free")
+    (version "0.6.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "https://hackage.haskell.org/package/control-monad-free/control-monad-free-"
+             version
+             ".tar.gz"))
+       (sha256
+        (base32
+         "1habgf7byffqf1rqjkzpihvdhclaafgqsqpfpwp3fgpj5ayk1j33"))))
+    (build-system haskell-build-system)
+    (home-page "https://github.com/pepeiborra/control-monad-free")
+    (synopsis "Free monads and monad transformers")
+    (description "This package provides datatypes to construct Free monads,
+Free monad transformers, and useful instances.  In addition it provides the
+constructs to avoid quadratic complexity of left associative bind, as explained in:
+
+@itemize @bullet
+@item
+Janis Voigtlander, @cite{Asymptotic Improvement of Computations over
+Free Monads, MPC'08}
+@end itemize
+
+")
+    (license license:public-domain)))
+
 (define-public ghc-convertible
   (package
     (name "ghc-convertible")
-- 
2.28.0





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

* [bug#44174] [PATCH v2 02/15] gnu: Add ghc-csv.
  2020-11-01  2:02 ` [bug#44174] [PATCH v2 00/15] " Carlo Holl
  2020-11-01  2:02   ` [bug#44174] [PATCH v2 01/15] gnu: Add ghc-control-monad-free Carlo Holl
@ 2020-11-01  2:02   ` Carlo Holl
  2020-11-01  2:02   ` [bug#44174] [PATCH v2 03/15] gnu: Add ghc-decimal Carlo Holl
                     ` (13 subsequent siblings)
  15 siblings, 0 replies; 44+ messages in thread
From: Carlo Holl @ 2020-11-01  2:02 UTC (permalink / raw)
  To: 44174; +Cc: Carlo Holl

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

diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm
index 762435fa6b..46019d74c2 100644
--- a/gnu/packages/haskell-xyz.scm
+++ b/gnu/packages/haskell-xyz.scm
@@ -2665,6 +2665,30 @@ pure @code{Either} value.  This means that you need not remember which specific
 function performs the conversion you desire.")
     (license license:bsd-3)))
 
+(define-public ghc-csv
+  (package
+    (name "ghc-csv")
+    (version "0.1.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "https://hackage.haskell.org/package/csv/csv-"
+             version
+             ".tar.gz"))
+       (sha256
+        (base32
+         "00767ai09wm7f0yzmpqck3cpgxncpr9djnmmz5l17ajz69139x4c"))))
+    (build-system haskell-build-system)
+    (home-page "http://hackage.haskell.org/package/csv")
+    (synopsis "CSV loader and dumper")
+    (description "This library parses and dumps documents that are
+formatted according to RFC 4180, @cite{The common Format and MIME Type
+for Comma-Separated Values (CSV) Files}.  This format is used, among
+many other things, as a lingua franca for spreadsheets, and for
+certain web services.")
+    (license license:expat)))
+
 (define-public ghc-data-accessor
   (package
     (name "ghc-data-accessor")
-- 
2.28.0





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

* [bug#44174] [PATCH v2 03/15] gnu: Add ghc-decimal.
  2020-11-01  2:02 ` [bug#44174] [PATCH v2 00/15] " Carlo Holl
  2020-11-01  2:02   ` [bug#44174] [PATCH v2 01/15] gnu: Add ghc-control-monad-free Carlo Holl
  2020-11-01  2:02   ` [bug#44174] [PATCH v2 02/15] gnu: Add ghc-csv Carlo Holl
@ 2020-11-01  2:02   ` Carlo Holl
  2020-11-01  2:02   ` [bug#44174] [PATCH v2 04/15] gnu: ghc-doctest: Update to 0.16.3 Carlo Holl
                     ` (12 subsequent siblings)
  15 siblings, 0 replies; 44+ messages in thread
From: Carlo Holl @ 2020-11-01  2:02 UTC (permalink / raw)
  To: 44174; +Cc: Carlo Holl

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

diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm
index 46019d74c2..6eea034931 100644
--- a/gnu/packages/haskell-xyz.scm
+++ b/gnu/packages/haskell-xyz.scm
@@ -2987,6 +2987,35 @@ to add D-Bus support to Haskell applications, without the awkward
 interfaces common to foreign bindings.")
     (license license:asl2.0)))
 
+(define-public ghc-decimal
+  (package
+    (name "ghc-decimal")
+    (version "0.5.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "https://hackage.haskell.org/package/Decimal/Decimal-"
+             version
+             ".tar.gz"))
+       (sha256
+        (base32
+         "0k7kh05mr2f54w1lpgq1nln0h8k6s6h99dyp5jzsb9cfbb3aap2p"))))
+    (build-system haskell-build-system)
+    (native-inputs
+     `(("ghc-hunit" ,ghc-hunit)
+       ("ghc-quickcheck" ,ghc-quickcheck)
+       ("ghc-test-framework" ,ghc-test-framework)
+       ("ghc-test-framework-quickcheck2"
+        ,ghc-test-framework-quickcheck2)
+       ("ghc-test-framework-hunit"
+        ,ghc-test-framework-hunit)))
+    (home-page "https://github.com/PaulJohnson/Haskell-Decimal")
+    (synopsis "Decimal numbers with variable precision")
+    (description "A decimal number has an integer mantissa and a negative exponent.
+The exponent can be interpreted as the number of decimal places in the value.")
+    (license license:bsd-3)))
+
 (define-public ghc-deepseq-generics
   (package
     (name "ghc-deepseq-generics")
-- 
2.28.0





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

* [bug#44174] [PATCH v2 04/15] gnu: ghc-doctest: Update to 0.16.3.
  2020-11-01  2:02 ` [bug#44174] [PATCH v2 00/15] " Carlo Holl
                     ` (2 preceding siblings ...)
  2020-11-01  2:02   ` [bug#44174] [PATCH v2 03/15] gnu: Add ghc-decimal Carlo Holl
@ 2020-11-01  2:02   ` Carlo Holl
  2020-11-01  2:02   ` [bug#44174] [PATCH v2 05/15] gnu: Add ghc-hspec-megaparsec Carlo Holl
                     ` (11 subsequent siblings)
  15 siblings, 0 replies; 44+ messages in thread
From: Carlo Holl @ 2020-11-01  2:02 UTC (permalink / raw)
  To: 44174; +Cc: Carlo Holl

* gnu/packages/haskell-xyz.scm (ghc-doctest): Update to 0.16.3.
[inputs,native-inputs]: Replace with what is generated by guix import.
---
 gnu/packages/haskell-xyz.scm | 26 ++++++++++++++------------
 1 file changed, 14 insertions(+), 12 deletions(-)

diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm
index 6eea034931..1e995c90b4 100644
--- a/gnu/packages/haskell-xyz.scm
+++ b/gnu/packages/haskell-xyz.scm
@@ -3412,7 +3412,7 @@ Writer monad), where list append quickly becomes too expensive.")
 (define-public ghc-doctest
   (package
     (name "ghc-doctest")
-    (version "0.16.2")
+    (version "0.16.3")
     (source
      (origin
        (method url-fetch)
@@ -3422,22 +3422,24 @@ Writer monad), where list append quickly becomes too expensive.")
              ".tar.gz"))
        (sha256
         (base32
-         "0lk4cjfzi5bx2snfzw1zi06li0gvgz3ckfh2kwa98l7nxfdl39ag"))))
+         "1y1l7aa80qkib1z8lsizgg7fpfdmdwhxvi5m255a42jdkjgn5sfg"))))
     (build-system haskell-build-system)
-    (arguments `(#:tests? #f))          ; FIXME: missing test framework
+    (arguments `(#:tests? #f))         ; FIXME: missing test framework
     (inputs
-     `(("ghc-syb" ,ghc-syb)
-       ("ghc-paths" ,ghc-paths)
-       ("ghc-base-compat" ,ghc-base-compat)
+     `(("ghc-base-compat" ,ghc-base-compat)
        ("ghc-code-page" ,ghc-code-page)
-       ("ghc-hunit" ,ghc-hunit)
-       ("ghc-hspec" ,ghc-hspec)
+       ("ghc-paths" ,ghc-paths)
+       ("ghc-syb" ,ghc-syb)))
+    (native-inputs
+     `(("ghc-hunit" ,ghc-hunit)
        ("ghc-quickcheck" ,ghc-quickcheck)
-       ("ghc-stringbuilder" ,ghc-stringbuilder)
+       ("ghc-hspec" ,ghc-hspec)
+       ("ghc-hspec-core" ,ghc-hspec-core)
+       ("ghc-mockery" ,ghc-mockery)
+       ("ghc-setenv" ,ghc-setenv)
        ("ghc-silently" ,ghc-silently)
-       ("ghc-setenv" ,ghc-setenv)))
-    (home-page
-     "https://github.com/sol/doctest#readme")
+       ("ghc-stringbuilder" ,ghc-stringbuilder)))
+    (home-page "https://github.com/sol/doctest#readme")
     (synopsis "Test interactive Haskell examples")
     (description "The doctest program checks examples in source code comments.
 It is modeled after doctest for Python, see
-- 
2.28.0





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

* [bug#44174] [PATCH v2 05/15] gnu: Add ghc-hspec-megaparsec.
  2020-11-01  2:02 ` [bug#44174] [PATCH v2 00/15] " Carlo Holl
                     ` (3 preceding siblings ...)
  2020-11-01  2:02   ` [bug#44174] [PATCH v2 04/15] gnu: ghc-doctest: Update to 0.16.3 Carlo Holl
@ 2020-11-01  2:02   ` Carlo Holl
  2020-11-01  2:02   ` [bug#44174] [PATCH v2 06/15] gnu: Add ghc-lucid Carlo Holl
                     ` (10 subsequent siblings)
  15 siblings, 0 replies; 44+ messages in thread
From: Carlo Holl @ 2020-11-01  2:02 UTC (permalink / raw)
  To: 44174; +Cc: Carlo Holl

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

diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm
index 1e995c90b4..4eb4d52c05 100644
--- a/gnu/packages/haskell-xyz.scm
+++ b/gnu/packages/haskell-xyz.scm
@@ -5927,6 +5927,32 @@ are described in a file named @code{package.yaml}.  Both @code{cabal2nix} and
 @code{package.yaml}.")
     (license license:expat)))
 
+(define-public ghc-hspec-megaparsec
+  (package
+    (name "ghc-hspec-megaparsec")
+    (version "2.0.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "https://hackage.haskell.org/package/hspec-megaparsec/hspec-megaparsec-"
+             version
+             ".tar.gz"))
+       (sha256
+        (base32
+         "0w8nn2rh01lkiwsiyqh3gviklhfmy0245rakj94dmliyljw8skfg"))))
+    (build-system haskell-build-system)
+    (inputs
+     `(("ghc-hspec-expectations"
+        ,ghc-hspec-expectations)
+       ("ghc-megaparsec" ,ghc-megaparsec)))
+    (native-inputs `(("ghc-hspec" ,ghc-hspec)))
+    (home-page "https://github.com/mrkkrp/hspec-megaparsec")
+    (synopsis "Utility functions for testing Megaparsec parsers with Hspec")
+    (description "Provides a small set of helper functions for testing
+Megaparsec parsers with Hspec.")
+    (license license:bsd-3)))
+
 (define-public ghc-hs-bibutils
   (package
     (name "ghc-hs-bibutils")
-- 
2.28.0





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

* [bug#44174] [PATCH v2 06/15] gnu: Add ghc-lucid.
  2020-11-01  2:02 ` [bug#44174] [PATCH v2 00/15] " Carlo Holl
                     ` (4 preceding siblings ...)
  2020-11-01  2:02   ` [bug#44174] [PATCH v2 05/15] gnu: Add ghc-hspec-megaparsec Carlo Holl
@ 2020-11-01  2:02   ` Carlo Holl
  2020-11-01  2:02   ` [bug#44174] [PATCH v2 07/15] gnu: Add ghc-only Carlo Holl
                     ` (9 subsequent siblings)
  15 siblings, 0 replies; 44+ messages in thread
From: Carlo Holl @ 2020-11-01  2:02 UTC (permalink / raw)
  To: 44174; +Cc: Carlo Holl

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

diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm
index 4eb4d52c05..93ae4b79b9 100644
--- a/gnu/packages/haskell-xyz.scm
+++ b/gnu/packages/haskell-xyz.scm
@@ -7281,6 +7281,52 @@ Transformers\" available @uref{http://okmij.org/ftp/papers/LogicT.pdf,
 online}.")
     (license license:bsd-3)))
 
+(define-public ghc-lucid
+  (package
+    (name "ghc-lucid")
+    (version "2.9.12")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "https://hackage.haskell.org/package/lucid/lucid-"
+             version
+             ".tar.gz"))
+       (sha256
+        (base32
+         "156wniydd1hlb7rygbm95zln8ky8lai8rn2apkkv0rax9cdw6jrh"))))
+    (build-system haskell-build-system)
+    (inputs
+     `(("ghc-blaze-builder" ,ghc-blaze-builder)
+       ("ghc-hashable" ,ghc-hashable)
+       ("ghc-mmorph" ,ghc-mmorph)
+       ("ghc-unordered-containers" ,ghc-unordered-containers)))
+    (native-inputs
+     `(("ghc-hunit" ,ghc-hunit)
+       ("ghc-hspec" ,ghc-hspec)
+       ("ghc-bifunctors" ,ghc-bifunctors)))
+    (arguments
+     `(#:cabal-revision
+       ("1"
+        "1f0whk5ncanxfjjanrf6rqyncig2xgc5mh2j0sqy3nrlyjr9aqq9")))
+    (home-page "https://github.com/chrisdone/lucid")
+    (synopsis "DSL for rendering HTML")
+    (description "Clear to write, read and edit DSL for HTML
+
+@itemize @bullet
+@item
+Names are consistent, and do not conflict with base or are keywords
+(all have suffix @code{-}).
+@item
+Same combinator can be used for attributes and elements
+(e.g. @code{style_}).
+@item
+For more, read <https://chrisdone.com/posts/lucid the blog post>.
+@end itemize
+
+See the \"Lucid\" module for more documentation.")
+    (license license:bsd-3)))
+
 (define-public ghc-lzma
   (package
     (name "ghc-lzma")
-- 
2.28.0





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

* [bug#44174] [PATCH v2 07/15] gnu: Add ghc-only.
  2020-11-01  2:02 ` [bug#44174] [PATCH v2 00/15] " Carlo Holl
                     ` (5 preceding siblings ...)
  2020-11-01  2:02   ` [bug#44174] [PATCH v2 06/15] gnu: Add ghc-lucid Carlo Holl
@ 2020-11-01  2:02   ` Carlo Holl
  2020-11-01  2:02   ` [bug#44174] [PATCH v2 08/15] gnu: Add ghc-text-short Carlo Holl
                     ` (8 subsequent siblings)
  15 siblings, 0 replies; 44+ messages in thread
From: Carlo Holl @ 2020-11-01  2:02 UTC (permalink / raw)
  To: 44174; +Cc: Carlo Holl

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

diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm
index 93ae4b79b9..85ed28625a 100644
--- a/gnu/packages/haskell-xyz.scm
+++ b/gnu/packages/haskell-xyz.scm
@@ -8599,6 +8599,37 @@ old @code{time} library.  For new projects, the newer
 @uref{https://hackage.haskell.org/package/time, time library} is recommended.")
     (license license:bsd-3)))
 
+(define-public ghc-only
+  (package
+    (name "ghc-only")
+    (version "0.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "https://hackage.haskell.org/package/Only/Only-"
+             version
+             ".tar.gz"))
+       (sha256
+        (base32
+         "0rdj3a629fk2vp121jq8mf2smkblrz5w3cxhlsyx6my2x29s2ymb"))))
+    (build-system haskell-build-system)
+    (arguments
+     `(#:cabal-revision
+       ("1"
+        "1ahk7p34kmh041mz7lyc10nhcxgv2i4z8nvzxvqm2x34gslmsbzr")))
+    (home-page "https://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.
+
+NOTE: There is also the @url{https://hackage.haskell.org/package/OneTuple,
+OneTuple package} which by using a boxed @code{data}-type provides a 1-tuple
+type which has laziness properties which are more faithful to the ones of
+Haskell's native tuples; whereas the primary purpose of @code{Only} is to provide
+the traditionally so named type-wrapper for attaching typeclass instances.")
+    (license license:bsd-3)))
+
 (define-public ghc-opengl
   (package
     (name "ghc-opengl")
-- 
2.28.0





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

* [bug#44174] [PATCH v2 08/15] gnu: Add ghc-text-short.
  2020-11-01  2:02 ` [bug#44174] [PATCH v2 00/15] " Carlo Holl
                     ` (6 preceding siblings ...)
  2020-11-01  2:02   ` [bug#44174] [PATCH v2 07/15] gnu: Add ghc-only Carlo Holl
@ 2020-11-01  2:02   ` Carlo Holl
  2020-11-01  2:02   ` [bug#44174] [PATCH v2 09/15] gnu: Add ghc-tabular Carlo Holl
                     ` (7 subsequent siblings)
  15 siblings, 0 replies; 44+ messages in thread
From: Carlo Holl @ 2020-11-01  2:02 UTC (permalink / raw)
  To: 44174; +Cc: Carlo Holl

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

diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm
index 85ed28625a..7b49cac093 100644
--- a/gnu/packages/haskell-xyz.scm
+++ b/gnu/packages/haskell-xyz.scm
@@ -8911,6 +8911,45 @@ require aeson
     (description "Safe conversions between textual types")
     (license license:isc)))
 
+(define-public ghc-text-short
+  (package
+    (name "ghc-text-short")
+    (version "0.1.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "https://hackage.haskell.org/package/text-short/text-short-"
+             version
+             ".tar.gz"))
+       (sha256
+        (base32
+         "0xyrxlb602z8bc9sr2y1fag0x56a20yj5qrkvy7iwc6hnznrynxz"))))
+    (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"
+        "17cb7p0qywf2dsrq3g8qb3ssknd9wl5k0nc2pxz9gc3l8rxpkw51")))
+    (home-page "https://hackage.haskell.org/package/text-short")
+    (synopsis "Memory-efficient representation of Unicode text strings")
+    (description "This package provides the @code{ShortText} type which
+is suitable for keeping many short strings in memory.  This is similiar
+to how @code{ShortByteString} relates to @code{ByteString}.
+
+The main difference between @code{Text} and @code{ShortText} is that
+@code{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)))
+
 (define-public ghc-doclayout
   (package
     (name "ghc-doclayout")
-- 
2.28.0





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

* [bug#44174] [PATCH v2 09/15] gnu: Add ghc-tabular.
  2020-11-01  2:02 ` [bug#44174] [PATCH v2 00/15] " Carlo Holl
                     ` (7 preceding siblings ...)
  2020-11-01  2:02   ` [bug#44174] [PATCH v2 08/15] gnu: Add ghc-text-short Carlo Holl
@ 2020-11-01  2:02   ` Carlo Holl
  2020-11-01  2:02   ` [bug#44174] [PATCH v2 10/15] gnu: Add ghc-uglymemo Carlo Holl
                     ` (6 subsequent siblings)
  15 siblings, 0 replies; 44+ messages in thread
From: Carlo Holl @ 2020-11-01  2:02 UTC (permalink / raw)
  To: 44174; +Cc: Carlo Holl

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

diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm
index 7b49cac093..97d83ad886 100644
--- a/gnu/packages/haskell-xyz.scm
+++ b/gnu/packages/haskell-xyz.scm
@@ -12798,6 +12798,50 @@ Unlike the filepath package, this package does not simply reuse String,
 increasing type safety.")
     (license license:expat)))
 
+(define-public ghc-tabular
+  (package
+    (name "ghc-tabular")
+    (version "0.2.2.8")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "https://hackage.haskell.org/package/tabular/tabular-"
+             version
+             ".tar.gz"))
+       (sha256
+        (base32
+         "0z936gh8n8i8qdkagyxwd9gqq13skd5fv013vdvwsibrxkm0czfb"))))
+    (build-system haskell-build-system)
+    (inputs
+     `(("ghc-csv" ,ghc-csv)
+       ("ghc-html" ,ghc-html)))
+    (home-page "https://github.com/bgamari/tabular")
+    (synopsis "Two-dimensional data tables with rendering functions")
+    (description "Tabular provides a Haskell representation of
+two-dimensional data tables, the kind that you might find in a
+spreadsheet or or a research report.  It also comes with some
+default rendering functions for turning those tables into ASCII
+art, simple text with an arbitrary delimiter, CSV, HTML or LaTeX.
+
+Below is an example of the kind of output this library produces.
+The tabular package can group rows and columns, each group having
+one of three separators (no line, single line, double line) between
+its members.
+
+@example
+
+    || memtest 1 | memtest 2 ||  time test  | time test 2
+====++===========+===========++=============+============
+A 1 ||       hog |  terrible ||        slow |      slower
+A 2 ||       pig |   not bad ||        fast |     slowest
+----++-----------+-----------++-------------+------------
+B 1 ||      good |     awful || intolerable |    bearable
+B 2 ||    better | no chance ||    crawling |     amazing
+B 3 ||       meh |   well... ||  worst ever |          ok
+
+@end example")
+    (license license:bsd-3)))
 
 (define-public ghc-tagged
   (package
-- 
2.28.0





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

* [bug#44174] [PATCH v2 10/15] gnu: Add ghc-uglymemo.
  2020-11-01  2:02 ` [bug#44174] [PATCH v2 00/15] " Carlo Holl
                     ` (8 preceding siblings ...)
  2020-11-01  2:02   ` [bug#44174] [PATCH v2 09/15] gnu: Add ghc-tabular Carlo Holl
@ 2020-11-01  2:02   ` Carlo Holl
  2020-11-01  2:02   ` [bug#44174] [PATCH v2 11/15] gnu: Add ghc-wizards Carlo Holl
                     ` (5 subsequent siblings)
  15 siblings, 0 replies; 44+ messages in thread
From: Carlo Holl @ 2020-11-01  2:02 UTC (permalink / raw)
  To: 44174; +Cc: Carlo Holl

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

diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm
index 97d83ad886..19657fa88f 100644
--- a/gnu/packages/haskell-xyz.scm
+++ b/gnu/packages/haskell-xyz.scm
@@ -13864,6 +13864,33 @@ processes.  It wraps around the @code{process} library, and intends to improve
 upon it.")
     (license license:expat)))
 
+(define-public ghc-uglymemo
+  (package
+    (name "ghc-uglymemo")
+    (version "0.1.0.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "https://hackage.haskell.org/package/uglymemo/uglymemo-"
+             version
+             ".tar.gz"))
+       (sha256
+        (base32
+         "0ixqg5d0ly1r18jbgaa89i6kjzgi6c5hanw1b1y8c5fbq14yz2gy"))))
+    (build-system haskell-build-system)
+    (home-page "https://hackage.haskell.org/package/uglymemo")
+    (synopsis "Simple (but internally ugly) memoization function")
+    (description "Simple (but internally ugly) memoization function.
+
+@itemize @bullet
+@item
+New in 0.1.0.1: Make it exception safe.
+@end itemize
+
+")
+    (license license:public-domain)))
+
 (define-public ghc-unagi-chan
   (package
     (name "ghc-unagi-chan")
-- 
2.28.0





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

* [bug#44174] [PATCH v2 11/15] gnu: Add ghc-wizards.
  2020-11-01  2:02 ` [bug#44174] [PATCH v2 00/15] " Carlo Holl
                     ` (9 preceding siblings ...)
  2020-11-01  2:02   ` [bug#44174] [PATCH v2 10/15] gnu: Add ghc-uglymemo Carlo Holl
@ 2020-11-01  2:02   ` Carlo Holl
  2020-11-01  2:02   ` [bug#44174] [PATCH v2 12/15] gnu: Add ghc-cassava Carlo Holl
                     ` (4 subsequent siblings)
  15 siblings, 0 replies; 44+ messages in thread
From: Carlo Holl @ 2020-11-01  2:02 UTC (permalink / raw)
  To: 44174; +Cc: Carlo Holl

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

diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm
index 19657fa88f..210df9775c 100644
--- a/gnu/packages/haskell-xyz.scm
+++ b/gnu/packages/haskell-xyz.scm
@@ -14767,6 +14767,54 @@ widths to the Char type.")
 Haskell value or function.")
     (license license:bsd-3)))
 
+(define-public ghc-wizards
+  (package
+    (name "ghc-wizards")
+    (version "1.0.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "https://hackage.haskell.org/package/wizards/wizards-"
+             version
+             ".tar.gz"))
+       (sha256
+        (base32
+         "1clvbd1ckhvy29qrbmpkn7bya7300fq6znnps23nn3nxyrxhsr85"))))
+    (build-system haskell-build-system)
+    (inputs
+     `(("ghc-control-monad-free"
+        ,ghc-control-monad-free)))
+    (arguments
+     `(#:cabal-revision
+       ("1"
+        "095qd17zrdhqmcvmslbyzfa5sh9glvvsnsvnlz31gzsmi8nnsgim")))
+    (home-page "http://hackage.haskell.org/package/wizards")
+    (synopsis "High level, generic library for interrogative user interfaces")
+    (description "@code{wizards} is a package designed for the quick
+and painless development of @emph{interrogative} programs, which revolve around
+a \"dialogue\" with the user, who is asked a series of questions in a
+sequence much like an installation wizard.
+
+Everything from interactive system scripts, to installation wizards, to full-blown
+shells can be implemented with the support of @code{wizards}.
+
+It is developed transparently on top of a free monad, which separates out the
+semantics of the program from any particular interface.  A variety of backends
+exist, including console-based @code{System.Console.Wizard.Haskeline} and
+@code{System.Console.Wizard.BasicIO}, and the pure @code{System.Console.Wizard.Pure}.
+It is also possible to write your own backends, or extend existing back-ends with
+new features.  While both built-in IO backends operate on a console, there is no
+reason why @code{wizards} cannot also be used for making GUI wizard interfaces.
+
+See the github page for examples on usage:
+
+@url{http://www.github.com/liamoc/wizards}
+
+For creating backends, the module @code{System.Console.Wizard.Internal} has a brief
+tutorial.")
+    (license license:bsd-3)))
+
 (define-public ghc-wl-pprint
   (package
     (name "ghc-wl-pprint")
-- 
2.28.0





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

* [bug#44174] [PATCH v2 12/15] gnu: Add ghc-cassava.
  2020-11-01  2:02 ` [bug#44174] [PATCH v2 00/15] " Carlo Holl
                     ` (10 preceding siblings ...)
  2020-11-01  2:02   ` [bug#44174] [PATCH v2 11/15] gnu: Add ghc-wizards Carlo Holl
@ 2020-11-01  2:02   ` Carlo Holl
  2020-11-01  2:02   ` [bug#44174] [PATCH v2 13/15] gnu: Add ghc-cassava-megaparsec Carlo Holl
                     ` (3 subsequent siblings)
  15 siblings, 0 replies; 44+ messages in thread
From: Carlo Holl @ 2020-11-01  2:02 UTC (permalink / raw)
  To: 44174; +Cc: Carlo Holl

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

diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm
index 210df9775c..6f5b6c3253 100644
--- a/gnu/packages/haskell-xyz.scm
+++ b/gnu/packages/haskell-xyz.scm
@@ -1552,6 +1552,95 @@ constructor which can be parameterised by a string-like type like:
 the resulting type will be insensitive to cases.")
     (license license:bsd-3)))
 
+(define-public ghc-cassava
+  (package
+    (name "ghc-cassava")
+    (version "0.5.2.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "https://hackage.haskell.org/package/cassava/cassava-"
+             version
+             ".tar.gz"))
+       (sha256
+        (base32
+         "01h1zrdqb313cjd4rqm1107azzx4czqi018c2djf66a5i7ajl3dk"))))
+    (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)))
+    (native-inputs
+     `(("ghc-hunit" ,ghc-hunit)
+       ("ghc-quickcheck" ,ghc-quickcheck)
+       ("ghc-quickcheck-instances"
+        ,ghc-quickcheck-instances)
+       ("ghc-test-framework" ,ghc-test-framework)
+       ("ghc-test-framework-hunit"
+        ,ghc-test-framework-hunit)
+       ("ghc-test-framework-quickcheck2"
+        ,ghc-test-framework-quickcheck2)))
+    (arguments
+     `(#:cabal-revision
+       ("1"
+        "1ph8rf91z4nf1ryrh9s4gd1kq98jlgk2manwddkpch8k0n9xvfk4")
+       #:configure-flags '("--flags=-bytestring--lt-0_10_4")))
+    (home-page "https://github.com/haskell-hvr/cassava")
+    (synopsis "CSV parsing and encoding library")
+    (description "@code{cassava} is a library for parsing and encoding
+@url{https://tools.ietf.org/html/rfc4180, RFC 4180} compliant @url{https://
+en.wikipedia.org/wiki/Comma-separated_values, comma-separated values (CSV)}
+data, which is a textual line-oriented format commonly used for exchanging
+tabular data.
+
+@code{cassava}'s API includes support for
+
+@itemize @bullet
+
+@item
+Index-based record-conversion
+@item
+Name-based record-conversion
+@item
+Typeclass directed conversion of fields and records
+@item
+Built-in field-conversion instances for standard types
+@item
+Customizable record-conversion instance derivation via GHC generics
+@item
+Low-level @url{https://hackage.haskell.org/package/bytestring), bytestring}
+builders (see @url{https://hackage.haskell.org/package/cassava-0.5.2.0/docs/
+Data-Csv-Builder.html, Data.Csv.Builder})
+@item
+Incremental decoding and encoding API (see @url{https://hackage.haskell.org/
+package/cassava-0.5.2.0/docs/Data-Csv-Incremental.html, Data.Csv.Incremental})
+@item
+Streaming API for constant-space decoding (see @url{https://hackage.haskell.org/
+package/cassava-0.5.2.0/docs/Data-Csv-Streaming.html, Data.Csv.Streaming})
+@end itemize
+
+Moreover, this library is designed to be easy to use; for instance, here's a
+very simple example of encoding CSV data:
+
+@verbatim
+>>> Data.Csv.encode [(\"John\",27),(\"Jane\",28)]
+\"John,27\r\nJane,28\r\n\"
+@end verbatim
+
+Please refer to the documentation in @url{https://hackage.haskell.org/package/
+cassava-0.5.2.0/docs/Data-Csv.html, Data.Csv} and the included @url{https://
+hackage.haskell.org/package/cassava-0.5.2.0/#readme, README} for more usage
+examples.")
+    (license license:bsd-3)))
+
 (define-public ghc-cborg
   (package
     (name "ghc-cborg")
-- 
2.28.0





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

* [bug#44174] [PATCH v2 13/15] gnu: Add ghc-cassava-megaparsec.
  2020-11-01  2:02 ` [bug#44174] [PATCH v2 00/15] " Carlo Holl
                     ` (11 preceding siblings ...)
  2020-11-01  2:02   ` [bug#44174] [PATCH v2 12/15] gnu: Add ghc-cassava Carlo Holl
@ 2020-11-01  2:02   ` Carlo Holl
  2020-11-01  2:02   ` [bug#44174] [PATCH v2 14/15] gnu: Add ghc-hledger-lib Carlo Holl
                     ` (2 subsequent siblings)
  15 siblings, 0 replies; 44+ messages in thread
From: Carlo Holl @ 2020-11-01  2:02 UTC (permalink / raw)
  To: 44174; +Cc: Carlo Holl

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

diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm
index 6f5b6c3253..a195503a40 100644
--- a/gnu/packages/haskell-xyz.scm
+++ b/gnu/packages/haskell-xyz.scm
@@ -1641,6 +1641,39 @@ hackage.haskell.org/package/cassava-0.5.2.0/#readme, README} for more usage
 examples.")
     (license license:bsd-3)))
 
+(define-public ghc-cassava-megaparsec
+  (package
+    (name "ghc-cassava-megaparsec")
+    (version "2.0.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "https://hackage.haskell.org/package/cassava-megaparsec/"
+             "cassava-megaparsec-"
+             version
+             ".tar.gz"))
+       (sha256
+        (base32
+         "03x1462agrfdagklp8c89b8p4z2hd8nbf6d3895sz770zjkawda7"))))
+    (build-system haskell-build-system)
+    (inputs
+     `(("ghc-cassava" ,ghc-cassava)
+       ("ghc-megaparsec" ,ghc-megaparsec)
+       ("ghc-unordered-containers"
+        ,ghc-unordered-containers)
+       ("ghc-vector" ,ghc-vector)))
+    (native-inputs
+     `(("ghc-hspec" ,ghc-hspec)
+       ("ghc-hspec-megaparsec" ,ghc-hspec-megaparsec)))
+    (home-page "https://github.com/stackbuilders/cassava-megaparsec")
+    (synopsis
+     "Megaparsec parser of CSV files that plays nicely with Cassava")
+    (description "Alternative parser for the Cassava package written
+with Megaparsec that provides for better error messages at the expense
+of some speed.")
+    (license license:expat)))
+
 (define-public ghc-cborg
   (package
     (name "ghc-cborg")
-- 
2.28.0





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

* [bug#44174] [PATCH v2 14/15] gnu: Add ghc-hledger-lib.
  2020-11-01  2:02 ` [bug#44174] [PATCH v2 00/15] " Carlo Holl
                     ` (12 preceding siblings ...)
  2020-11-01  2:02   ` [bug#44174] [PATCH v2 13/15] gnu: Add ghc-cassava-megaparsec Carlo Holl
@ 2020-11-01  2:02   ` Carlo Holl
  2020-11-01  2:02   ` [bug#44174] [PATCH v2 15/15] gnu: Add hledger Carlo Holl
  2020-11-01 13:38   ` bug#44174: [PATCH v2 00/15] Add hledger and its dependencies Christopher Baines
  15 siblings, 0 replies; 44+ messages in thread
From: Carlo Holl @ 2020-11-01  2:02 UTC (permalink / raw)
  To: 44174; +Cc: Carlo Holl

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

diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm
index a195503a40..7c0941960f 100644
--- a/gnu/packages/haskell-xyz.scm
+++ b/gnu/packages/haskell-xyz.scm
@@ -5846,6 +5846,70 @@ feature, allowing applications to subscribe to notifications when a file is
 accessed or modified.")
     (license license:bsd-3)))
 
+(define-public ghc-hledger-lib
+  (package
+    (name "ghc-hledger-lib")
+    (version "1.19.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "https://hackage.haskell.org/package/hledger-lib/hledger-lib-"
+             version
+             ".tar.gz"))
+       (sha256
+        (base32
+         "0py11011r358nmnvwwkc8mlx6mpy36jm8sqlr4i8ihx3x0zjdgya"))))
+    (build-system haskell-build-system)
+    (inputs
+     `(("ghc-decimal" ,ghc-decimal)
+       ("ghc-glob" ,ghc-glob)
+       ("ghc-aeson" ,ghc-aeson)
+       ("ghc-aeson-pretty" ,ghc-aeson-pretty)
+       ("ghc-ansi-terminal" ,ghc-ansi-terminal)
+       ("ghc-base-compat-batteries"
+        ,ghc-base-compat-batteries)
+       ("ghc-blaze-markup" ,ghc-blaze-markup)
+       ("ghc-call-stack" ,ghc-call-stack)
+       ("ghc-cassava" ,ghc-cassava)
+       ("ghc-cassava-megaparsec"
+        ,ghc-cassava-megaparsec)
+       ("ghc-cmdargs" ,ghc-cmdargs)
+       ("ghc-data-default" ,ghc-data-default)
+       ("ghc-extra" ,ghc-extra)
+       ("ghc-fgl" ,ghc-fgl)
+       ("ghc-file-embed" ,ghc-file-embed)
+       ("ghc-hashtables" ,ghc-hashtables)
+       ("ghc-megaparsec" ,ghc-megaparsec)
+       ("ghc-old-time" ,ghc-old-time)
+       ("ghc-parser-combinators"
+        ,ghc-parser-combinators)
+       ("ghc-pretty-show" ,ghc-pretty-show)
+       ("ghc-regex-tdfa" ,ghc-regex-tdfa)
+       ("ghc-safe" ,ghc-safe)
+       ("ghc-split" ,ghc-split)
+       ("ghc-tabular" ,ghc-tabular)
+       ("ghc-tasty" ,ghc-tasty)
+       ("ghc-tasty-hunit" ,ghc-tasty-hunit)
+       ("ghc-timeit" ,ghc-timeit)
+       ("ghc-uglymemo" ,ghc-uglymemo)
+       ("ghc-unordered-containers"
+        ,ghc-unordered-containers)
+       ("ghc-utf8-string" ,ghc-utf8-string)))
+    (native-inputs `(("ghc-doctest" ,ghc-doctest)))
+    (home-page "https://hledger.org")
+    (synopsis "Reusable library providing the core functionality of hledger")
+    (description "A reusable library containing hledger's core functionality.
+This is used by most hledger* packages so that they support the same common
+file formats, command line options, reports etc.
+
+hledger is a robust, cross-platform set of tools for tracking money, time,
+or any other commodity, using double-entry accounting and a simple, editable
+file format, with command-line, terminal and web interfaces.  It is a Haskell
+rewrite of Ledger, and one of the leading implementations of Plain Text Accounting.
+Read more at: @url{https://hledger.org}")
+    (license license:gpl3)))
+
 (define-public ghc-hmatrix
   (package
     (name "ghc-hmatrix")
-- 
2.28.0





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

* [bug#44174] [PATCH v2 15/15] gnu: Add hledger.
  2020-11-01  2:02 ` [bug#44174] [PATCH v2 00/15] " Carlo Holl
                     ` (13 preceding siblings ...)
  2020-11-01  2:02   ` [bug#44174] [PATCH v2 14/15] gnu: Add ghc-hledger-lib Carlo Holl
@ 2020-11-01  2:02   ` Carlo Holl
  2020-11-01 13:38   ` bug#44174: [PATCH v2 00/15] Add hledger and its dependencies Christopher Baines
  15 siblings, 0 replies; 44+ messages in thread
From: Carlo Holl @ 2020-11-01  2:02 UTC (permalink / raw)
  To: 44174; +Cc: Carlo Holl

* gnu/packages/finance.scm (hledger): New variable.
---
 gnu/packages/finance.scm | 63 ++++++++++++++++++++++++++++++++++++++++
 1 file changed, 63 insertions(+)

diff --git a/gnu/packages/finance.scm b/gnu/packages/finance.scm
index 4397cf8ba8..ade4fc56fb 100644
--- a/gnu/packages/finance.scm
+++ b/gnu/packages/finance.scm
@@ -20,6 +20,7 @@
 ;;; Copyright © 2020 Tom Zander <tomz@freedommail.ch>
 ;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com>
 ;;; Copyright © 2020 Vinicius Monego <monego@posteo.net>
+;;; Copyright © 2020 Carlo Holl <carloholl@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -45,6 +46,7 @@
   #:use-module (guix build-system cmake)
   #:use-module (guix build-system copy)
   #:use-module (guix build-system emacs)
+  #:use-module (guix build-system haskell)
   #:use-module (guix build-system python)
   #:use-module (guix build-system glib-or-gtk)
   #:use-module (guix build-system go)
@@ -72,6 +74,9 @@
   #:use-module (gnu packages graphviz)
   #:use-module (gnu packages groff)
   #:use-module (gnu packages gtk)
+  #:use-module (gnu packages haskell-check)
+  #:use-module (gnu packages haskell-web)
+  #:use-module (gnu packages haskell-xyz)
   #:use-module (gnu packages jemalloc)
   #:use-module (gnu packages libedit)
   #:use-module (gnu packages libevent)
@@ -170,6 +175,64 @@ of the bitcoin protocol.  This package provides the Bitcoin Core command
 line client and a client based on Qt.")
     (license license:expat)))
 
+(define-public hledger
+  (package
+    (name "hledger")
+    (version "1.19.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "https://hackage.haskell.org/package/hledger/hledger-"
+             version
+             ".tar.gz"))
+       (sha256
+        (base32
+         "0wfsyf2q1kf90mj3lxs0m5ghj153axmpkc8xfy12vkz5imnyphfm"))))
+    (build-system haskell-build-system)
+    (inputs
+     `(("ghc-decimal" ,ghc-decimal)
+       ("ghc-diff" ,ghc-diff)
+       ("ghc-aeson" ,ghc-aeson)
+       ("ghc-ansi-terminal" ,ghc-ansi-terminal)
+       ("ghc-base-compat-batteries"
+        ,ghc-base-compat-batteries)
+       ("ghc-cmdargs" ,ghc-cmdargs)
+       ("ghc-data-default" ,ghc-data-default)
+       ("ghc-extra" ,ghc-extra)
+       ("ghc-hashable" ,ghc-hashable)
+       ("ghc-hledger-lib" ,ghc-hledger-lib)
+       ("ghc-lucid" ,ghc-lucid)
+       ("ghc-math-functions" ,ghc-math-functions)
+       ("ghc-megaparsec" ,ghc-megaparsec)
+       ("ghc-old-time" ,ghc-old-time)
+       ("ghc-pretty-show" ,ghc-pretty-show)
+       ("ghc-regex-tdfa" ,ghc-regex-tdfa)
+       ("ghc-safe" ,ghc-safe)
+       ("ghc-shakespeare" ,ghc-shakespeare)
+       ("ghc-split" ,ghc-split)
+       ("ghc-tabular" ,ghc-tabular)
+       ("ghc-tasty" ,ghc-tasty)
+       ("ghc-temporary" ,ghc-temporary)
+       ("ghc-timeit" ,ghc-timeit)
+       ("ghc-unordered-containers"
+        ,ghc-unordered-containers)
+       ("ghc-utf8-string" ,ghc-utf8-string)
+       ("ghc-utility-ht" ,ghc-utility-ht)
+       ("ghc-wizards" ,ghc-wizards)))
+    (home-page "https://hledger.org")
+    (synopsis "Command-line interface for the hledger accounting system")
+    (description "The command-line interface for the hledger accounting
+system.  Its basic function is to read a plain text file describing financial
+transactions and produce useful reports.
+
+hledger is a robust, cross-platform set of tools for tracking money, time,
+or any other commodity, using double-entry accounting and a simple, editable
+file format, with command-line, terminal and web interfaces.  It is a Haskell
+rewrite of Ledger, and one of the leading implementations of Plain Text Accounting.
+Read more at: @url{https://hledger.org}")
+    (license license:gpl3)))
+
 (define-public homebank
   (package
     (name "homebank")
-- 
2.28.0





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

* [bug#44174] [PATCH 00/16] Add hledger and its dependencies.
  2020-10-24 21:26 ` [bug#44174] [PATCH 00/16] Add hledger and its dependencies Christopher Baines
@ 2020-11-01  2:11   ` Carlo Holl
  0 siblings, 0 replies; 44+ messages in thread
From: Carlo Holl @ 2020-11-01  2:11 UTC (permalink / raw)
  To: Christopher Baines; +Cc: 44174

On 24.10.2020 22:26, Christopher Baines wrote:
>
>Carlo Holl <carloholl@gmail.com> writes:
>
>> Guix,
>>
>> This patch series adds hledger, a plaintext accounting
>> program. hledger started as a Haskell reimplementation of Ledger
>> CLI. I use hledger regularly to manage personal finances and those of
>> several businesses, and would not be suprised to find other hledger
>> users in the Guix community.
>>
>> More information is available at https://hledger.org.
>
>Hi Carlo, thanks for the patches!
>
>> A couple of notes:
>>
>>     1. The hledger package is placed in (gnu packages finance), and
>>     its dependencies in (gnu packages haskell-xyz).
>
>That sounds good :)
>
>>     2. The hledger package is *not* prefixed with 'ghc', but its
>>     dependencies are.
>
>Also fine.
>
>>     3. The package ghc-doctest was bumped (minor version), affecting several dependent packages.
>>         I was able to build most of these affected packages (querying guix refresh --list-dependents),
>>         but it was taking forever so I cut that effort short. I consider this a rough heuristic to determine
>>         that there are no substantial changes associated with this
>>         version bump.
>
>Sounds good.
>
>>     4. I'm not terribly familiar with the Texinfo format, so there are
>>     likely some rough edges there.
>
>Looks like you've done pretty well from what I've seen :)
>
>>     5. I am able to build hledger and its dependencies without error, but was unsuccessful building
>>         on different architectures with qemu. I wasn't even able to build GHC under qemu so I didn't bother
>>         digging any further.
>
>No problem, if it builds on x86_64-linux, that's good enough at least
>initially.
>
>> This is my first contribution to Guix, and I'm also not a Haskell
>> expert, so expect some headaches. I am happy to attend to any issues
>> as best I am able.
>
>Great, I'll make some more comments on the individual patches, a few
>general comments though:
>
> - The commits should include changelog entries. For new packages, these
>   are pretty easy to write, it's just:
>
>* gnu/packages/FILE.scm (PACKAGE): New variable.
>
> - The indentation looks off in places, there's some stuff here about
>   indentation [1]. What editor are you using?
>
>1: https://guix.gnu.org/manual/en/html_node/Formatting-Code.html
>
>
>Let me know if you have any questions, and it would be great if you
>could send an updated set of patches.
>
>Thanks,
>
>Chris

Chris,

Apologies for the late reply, I was away last week. Thank you for the feedback. I've send a new patch series that I think addresses all the issues you raised.

Best,

--
Carlo Holl
carloholl@gmail.com




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

* bug#44174: [PATCH v2 00/15] Add hledger and its dependencies.
  2020-11-01  2:02 ` [bug#44174] [PATCH v2 00/15] " Carlo Holl
                     ` (14 preceding siblings ...)
  2020-11-01  2:02   ` [bug#44174] [PATCH v2 15/15] gnu: Add hledger Carlo Holl
@ 2020-11-01 13:38   ` Christopher Baines
  2020-11-01 18:22     ` [bug#44174] " Ricardo Wurmus
  15 siblings, 1 reply; 44+ messages in thread
From: Christopher Baines @ 2020-11-01 13:38 UTC (permalink / raw)
  To: Carlo Holl; +Cc: 44174-done

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


Carlo Holl <carloholl@gmail.com> writes:

> This patch series adds hledger, a plaintext accounting program.
>
> Changes since v1 (based on feedback from Christopher Baines):
>     - Fixed incorrect indentation.
>     - Added changelog entries to each commit message.
>     - Improved descriptions for some of the packages.
>     - Moved attribution to first commits to touch any given file.
>
> Notes:
>
> Christopher suggested I wrap an ascii table with @verbatim as part of the description for the ghc-tabular package so that it displays correctly, but I couldn't get 'guix show' to work with @verbatim, failing with <<Throw to key `parser-error' with args `(#<input: string 7fdb95dad700> "EOF while reading a token " "reading verbatim")'.>>. I used @example instead, which works under 'guix show', but I'm not sure what the implications are for other output formats.
>
> Carlo Holl (15):
>   gnu: Add ghc-control-monad-free.
>   gnu: Add ghc-csv.
>   gnu: Add ghc-decimal.
>   gnu: ghc-doctest: Update to 0.16.3.
>   gnu: Add ghc-hspec-megaparsec.
>   gnu: Add ghc-lucid.
>   gnu: Add ghc-only.
>   gnu: Add ghc-text-short.
>   gnu: Add ghc-tabular.
>   gnu: Add ghc-uglymemo.
>   gnu: Add ghc-wizards.
>   gnu: Add ghc-cassava.
>   gnu: Add ghc-cassava-megaparsec.
>   gnu: Add ghc-hledger-lib.
>   gnu: Add hledger.
>
>  gnu/packages/finance.scm     |  63 ++++
>  gnu/packages/haskell-xyz.scm | 557 ++++++++++++++++++++++++++++++++++-
>  2 files changed, 608 insertions(+), 12 deletions(-)

Awesome! I went through and tweaked some descriptions and wrapping and
pushed to master as e6bfb02eb79777b760031384d4a3c14239f7fb55.

Thanks again,

Chris

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 987 bytes --]

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

* [bug#44174] [PATCH v2 00/15] Add hledger and its dependencies.
  2020-11-01 13:38   ` bug#44174: [PATCH v2 00/15] Add hledger and its dependencies Christopher Baines
@ 2020-11-01 18:22     ` Ricardo Wurmus
  2020-11-01 21:09       ` Carlo Holl
  0 siblings, 1 reply; 44+ messages in thread
From: Ricardo Wurmus @ 2020-11-01 18:22 UTC (permalink / raw)
  To: Christopher Baines; +Cc: 44174-done, Carlo Holl


Christopher Baines <mail@cbaines.net> writes:

>> Carlo Holl (15):
>>   gnu: Add ghc-control-monad-free.
>>   gnu: Add ghc-csv.
>>   gnu: Add ghc-decimal.
>>   gnu: ghc-doctest: Update to 0.16.3.
>>   gnu: Add ghc-hspec-megaparsec.
>>   gnu: Add ghc-lucid.
>>   gnu: Add ghc-only.
>>   gnu: Add ghc-text-short.
>>   gnu: Add ghc-tabular.
>>   gnu: Add ghc-uglymemo.
>>   gnu: Add ghc-wizards.
>>   gnu: Add ghc-cassava.
>>   gnu: Add ghc-cassava-megaparsec.
>>   gnu: Add ghc-hledger-lib.
>>   gnu: Add hledger.
>>
>>  gnu/packages/finance.scm     |  63 ++++
>>  gnu/packages/haskell-xyz.scm | 557 ++++++++++++++++++++++++++++++++++-
>>  2 files changed, 608 insertions(+), 12 deletions(-)
>
> Awesome! I went through and tweaked some descriptions and wrapping and
> pushed to master as e6bfb02eb79777b760031384d4a3c14239f7fb55.

Unfortunately, some of these packages are the latest versions on
Hackage, but we need to ensure that all Haskell packages are picked at
versions corresponding to the currently supported version of LTSHaskell
in Guix.  We are behind the current LTSHaskell with our packages, so now
we have the situation where we have packages that are *newer* than the
latest LTSHaskell release and packages that are *older* than what the
latest LTSHaskell release prescribes.

We should fix this soon, because mixing Haskell packages from different
LTS releases (or even ignoring the LTS releases in favour of the latest
versions on Hackage) results in dependency hell for those users who want
to use Guix for Haskell development.

-- 
Ricardo




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

* [bug#44174] [PATCH v2 00/15] Add hledger and its dependencies.
  2020-11-01 18:22     ` [bug#44174] " Ricardo Wurmus
@ 2020-11-01 21:09       ` Carlo Holl
  0 siblings, 0 replies; 44+ messages in thread
From: Carlo Holl @ 2020-11-01 21:09 UTC (permalink / raw)
  To: Ricardo Wurmus; +Cc: 44174-done, Christopher Baines

On 01.11.2020 19:22, Ricardo Wurmus wrote:
>
>Christopher Baines <mail@cbaines.net> writes:
>
>>> Carlo Holl (15):
>>>   gnu: Add ghc-control-monad-free.
>>>   gnu: Add ghc-csv.
>>>   gnu: Add ghc-decimal.
>>>   gnu: ghc-doctest: Update to 0.16.3.
>>>   gnu: Add ghc-hspec-megaparsec.
>>>   gnu: Add ghc-lucid.
>>>   gnu: Add ghc-only.
>>>   gnu: Add ghc-text-short.
>>>   gnu: Add ghc-tabular.
>>>   gnu: Add ghc-uglymemo.
>>>   gnu: Add ghc-wizards.
>>>   gnu: Add ghc-cassava.
>>>   gnu: Add ghc-cassava-megaparsec.
>>>   gnu: Add ghc-hledger-lib.
>>>   gnu: Add hledger.
>>>
>>>  gnu/packages/finance.scm     |  63 ++++
>>>  gnu/packages/haskell-xyz.scm | 557 ++++++++++++++++++++++++++++++++++-
>>>  2 files changed, 608 insertions(+), 12 deletions(-)
>>
>> Awesome! I went through and tweaked some descriptions and wrapping and
>> pushed to master as e6bfb02eb79777b760031384d4a3c14239f7fb55.
>
>Unfortunately, some of these packages are the latest versions on
>Hackage, but we need to ensure that all Haskell packages are picked at
>versions corresponding to the currently supported version of LTSHaskell
>in Guix.  We are behind the current LTSHaskell with our packages, so now
>we have the situation where we have packages that are *newer* than the
>latest LTSHaskell release and packages that are *older* than what the
>latest LTSHaskell release prescribes.
>
>We should fix this soon, because mixing Haskell packages from different
>LTS releases (or even ignoring the LTS releases in favour of the latest
>versions on Hackage) results in dependency hell for those users who want
>to use Guix for Haskell development.
>
>-- 
>Ricardo

Ricardo,

Thanks for the heads-up. I can have a go at submitting a patch series to deal with this if you like. Since this would involve a downgrade, is there anything I need to watch out for?

--
Carlo Holl
carloholl@gmail.com




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

end of thread, other threads:[~2020-11-01 21:20 UTC | newest]

Thread overview: 44+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-10-23  7:46 [bug#44174] [PATCH 00/16] Add hledger and its dependencies Carlo Holl
2020-10-23 17:05 ` [bug#44174] [PATCH 01/16] gnu: Add ghc-control-monad-free Carlo Holl
2020-10-23 17:05   ` [bug#44174] [PATCH 02/16] gnu: Add ghc-csv Carlo Holl
2020-10-24 21:27     ` Christopher Baines
2020-10-23 17:05   ` [bug#44174] [PATCH 03/16] gnu: Add ghc-decimal Carlo Holl
2020-10-23 17:05   ` [bug#44174] [PATCH 04/16] gnu: Upgrade ghc-doctest Carlo Holl
2020-10-24 21:29     ` Christopher Baines
2020-10-23 17:05   ` [bug#44174] [PATCH 05/16] gnu: Add ghc-hspec-megaparsec Carlo Holl
2020-10-24 21:30     ` Christopher Baines
2020-10-23 17:05   ` [bug#44174] [PATCH 06/16] gnu: Add ghc-lucid Carlo Holl
2020-10-23 17:05   ` [bug#44174] [PATCH 07/16] gnu: Add ghc-only Carlo Holl
2020-10-23 17:05   ` [bug#44174] [PATCH 08/16] gnu: Add ghc-text-short Carlo Holl
2020-10-23 17:05   ` [bug#44174] [PATCH 09/16] gnu: Add ghc-tabular Carlo Holl
2020-10-24 21:38     ` Christopher Baines
2020-10-23 17:05   ` [bug#44174] [PATCH 10/16] gnu: Add ghc-uglymemo Carlo Holl
2020-10-23 17:05   ` [bug#44174] [PATCH 11/16] gnu: Add ghc-wizards Carlo Holl
2020-10-23 17:05   ` [bug#44174] [PATCH 12/16] gnu: Add ghc-cassava Carlo Holl
2020-10-23 17:05   ` [bug#44174] [PATCH 13/16] gnu: Add ghc-cassava-megaparsec Carlo Holl
2020-10-24 21:39     ` Christopher Baines
2020-10-23 17:05   ` [bug#44174] [PATCH 14/16] gnu: Add ghc-hledger-lib Carlo Holl
2020-10-23 17:05   ` [bug#44174] [PATCH 15/16] gnu: Add hledger Carlo Holl
2020-10-23 17:05   ` [bug#44174] [PATCH 16/16] Add attribution Carlo Holl
2020-10-24 21:40     ` Christopher Baines
2020-10-24 21:26 ` [bug#44174] [PATCH 00/16] Add hledger and its dependencies Christopher Baines
2020-11-01  2:11   ` Carlo Holl
2020-11-01  2:02 ` [bug#44174] [PATCH v2 00/15] " Carlo Holl
2020-11-01  2:02   ` [bug#44174] [PATCH v2 01/15] gnu: Add ghc-control-monad-free Carlo Holl
2020-11-01  2:02   ` [bug#44174] [PATCH v2 02/15] gnu: Add ghc-csv Carlo Holl
2020-11-01  2:02   ` [bug#44174] [PATCH v2 03/15] gnu: Add ghc-decimal Carlo Holl
2020-11-01  2:02   ` [bug#44174] [PATCH v2 04/15] gnu: ghc-doctest: Update to 0.16.3 Carlo Holl
2020-11-01  2:02   ` [bug#44174] [PATCH v2 05/15] gnu: Add ghc-hspec-megaparsec Carlo Holl
2020-11-01  2:02   ` [bug#44174] [PATCH v2 06/15] gnu: Add ghc-lucid Carlo Holl
2020-11-01  2:02   ` [bug#44174] [PATCH v2 07/15] gnu: Add ghc-only Carlo Holl
2020-11-01  2:02   ` [bug#44174] [PATCH v2 08/15] gnu: Add ghc-text-short Carlo Holl
2020-11-01  2:02   ` [bug#44174] [PATCH v2 09/15] gnu: Add ghc-tabular Carlo Holl
2020-11-01  2:02   ` [bug#44174] [PATCH v2 10/15] gnu: Add ghc-uglymemo Carlo Holl
2020-11-01  2:02   ` [bug#44174] [PATCH v2 11/15] gnu: Add ghc-wizards Carlo Holl
2020-11-01  2:02   ` [bug#44174] [PATCH v2 12/15] gnu: Add ghc-cassava Carlo Holl
2020-11-01  2:02   ` [bug#44174] [PATCH v2 13/15] gnu: Add ghc-cassava-megaparsec Carlo Holl
2020-11-01  2:02   ` [bug#44174] [PATCH v2 14/15] gnu: Add ghc-hledger-lib Carlo Holl
2020-11-01  2:02   ` [bug#44174] [PATCH v2 15/15] gnu: Add hledger Carlo Holl
2020-11-01 13:38   ` bug#44174: [PATCH v2 00/15] Add hledger and its dependencies Christopher Baines
2020-11-01 18:22     ` [bug#44174] " Ricardo Wurmus
2020-11-01 21:09       ` Carlo Holl

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

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

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