gnu: ghc-geniplate-mirror: Update to 0.7.6.
[jackhill/guix/guix.git] / gnu / packages / haskell.scm
index 073f5b7..98cd790 100644 (file)
@@ -15,6 +15,7 @@
 ;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018 Tonton <tonton@riseup.net>
 ;;; Copyright © 2018 Timothy Sample <samplet@ngyro.com>
+;;; Copyright © 2018 Arun Isaac <arunisaac@systemreboot.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -33,6 +34,7 @@
 
 (define-module (gnu packages haskell)
   #:use-module (gnu packages)
+  #:use-module (gnu packages base)
   #:use-module (gnu packages bootstrap)
   #:use-module (gnu packages check)
   #:use-module (gnu packages compression)
@@ -40,6 +42,7 @@
   #:use-module (gnu packages gcc)
   #:use-module (gnu packages ghostscript)
   #:use-module (gnu packages gl)
+  #:use-module (gnu packages graphviz)
   #:use-module (gnu packages haskell-check)
   #:use-module (gnu packages haskell-crypto)
   #:use-module (gnu packages haskell-web)
@@ -284,9 +287,11 @@ top of CLISP.")
                   (mkdir-p libtinfo-dir)
                   (symlink
                    (string-append ncurses-lib "/libncursesw.so."
-                                  ;; Extract "6.0" from "6.0-20170930".
+                                  ;; Extract "6.0" from "6.0-20170930" if a
+                                  ;; dash-separated version tag exists.
                                   ,(let* ((v (package-version ncurses))
-                                          (d (string-index v #\-)))
+                                          (d (or (string-index v #\-)
+                                                 (string-length v))))
                                      (version-major+minor (string-take v d))))
                    (string-append libtinfo-dir "/libtinfo.so.5"))
 
@@ -318,7 +323,7 @@ top of CLISP.")
 interactive environment for the functional language Haskell.")
     (license license:bsd-3)))
 
-(define-public ghc-8
+(define-public ghc-8.0
   (package
     (name "ghc")
     (version "8.0.2")
@@ -430,6 +435,130 @@ interactive environment for the functional language Haskell.")
 interactive environment for the functional language Haskell.")
     (license license:bsd-3)))
 
+(define-public ghc-8
+  (package (inherit ghc-8.0)
+    (name "ghc")
+    (version "8.4.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://www.haskell.org/ghc/dist/"
+                           version "/" name "-" version "-src.tar.xz"))
+       (sha256
+        (base32 "1mk046vb561j75saz05rghhbkps46ym5aci4264dwc2qk3dayixf"))))
+    (inputs
+     `(("gmp" ,gmp)
+       ("ncurses" ,ncurses)
+       ("libffi" ,libffi)
+       ("target-binutils" ,binutils)
+       ("target-gcc" ,gcc)
+       ("target-ld-wrapper" ,(make-ld-wrapper "ld-wrapper"
+                                              #:binutils binutils))))
+    (native-inputs
+     `(("perl" ,perl)
+       ("python" ,python)               ; for tests
+       ("ghostscript" ,ghostscript)     ; for tests
+       ;; GHC 8.4.3 is built with GHC 8.
+       ("ghc-bootstrap" ,ghc-8.0)
+       ("ghc-testsuite"
+        ,(origin
+           (method url-fetch)
+           (uri (string-append
+                 "https://www.haskell.org/ghc/dist/"
+                 version "/" name "-" version "-testsuite.tar.xz"))
+           (sha256
+            (base32
+             "1z55b1z0m3plqd2d1ks6w5wvx7igm7zsk3i4v7cms003z0as0hzz"))))))
+    (arguments
+     `(#:test-target "test"
+       ;; We get a smaller number of test failures by disabling parallel test
+       ;; execution.
+       #:parallel-tests? #f
+
+       ;; The DSOs use $ORIGIN to refer to each other, but (guix build
+       ;; gremlin) doesn't support it yet, so skip this phase.
+       #:validate-runpath? #f
+
+       ;; Don't pass --build=<triplet>, because the configure script
+       ;; auto-detects slightly different triplets for --host and --target and
+       ;; then complains that they don't match.
+       #:build #f
+
+       #:configure-flags
+       (list
+        (string-append "--with-gmp-libraries="
+                       (assoc-ref %build-inputs "gmp") "/lib")
+        (string-append "--with-gmp-includes="
+                       (assoc-ref %build-inputs "gmp") "/include")
+        "--with-system-libffi"
+        (string-append "--with-ffi-libraries="
+                       (assoc-ref %build-inputs "libffi") "/lib")
+        (string-append "--with-ffi-includes="
+                       (assoc-ref %build-inputs "libffi") "/include")
+        (string-append "--with-curses-libraries="
+                       (assoc-ref %build-inputs "ncurses") "/lib")
+        (string-append "--with-curses-includes="
+                       (assoc-ref %build-inputs "ncurses") "/include"))
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'unpack-testsuite
+           (lambda* (#:key inputs #:allow-other-keys)
+             (invoke "tar" "xvf"
+                     (assoc-ref inputs "ghc-testsuite")
+                     "--strip-components=1")
+             #t))
+         (add-after 'unpack-testsuite 'fix-shell-wrappers
+           (lambda _
+             (substitute* '("driver/ghci/ghc.mk"
+                            "utils/mkdirhier/ghc.mk"
+                            "rules/shell-wrapper.mk")
+               (("echo '#!/bin/sh'")
+                (format #f "echo '#!~a'" (which "sh"))))
+             #t))
+         ;; This is necessary because the configure system no longer uses
+         ;; “AC_PATH_” but “AC_CHECK_”, setting the variables to just the
+         ;; plain command names.
+         (add-before 'configure 'set-target-programs
+           (lambda* (#:key inputs #:allow-other-keys)
+             (let ((binutils (assoc-ref inputs "target-binutils"))
+                   (gcc (assoc-ref inputs "target-gcc"))
+                   (ld-wrapper (assoc-ref inputs "target-ld-wrapper")))
+               (setenv "CC" (string-append gcc "/bin/gcc"))
+               (setenv "CXX" (string-append gcc "/bin/g++"))
+               (setenv "LD" (string-append ld-wrapper "/bin/ld"))
+               (setenv "NM" (string-append binutils "/bin/nm"))
+               (setenv "RANLIB" (string-append binutils "/bin/ranlib"))
+               (setenv "STRIP" (string-append binutils "/bin/strip"))
+               ;; The 'ar' command does not follow the same pattern.
+               (setenv "fp_prog_ar" (string-append binutils "/bin/ar"))
+               #t)))
+         (add-before 'build 'fix-references
+           (lambda _
+             (substitute* '("testsuite/timeout/Makefile"
+                            "testsuite/timeout/timeout.py"
+                            "testsuite/timeout/timeout.hs"
+                            "testsuite/tests/programs/life_space_leak/life.test"
+                            ;; libraries
+                            "libraries/process/System/Process/Posix.hs"
+                            "libraries/process/tests/process001.hs"
+                            "libraries/process/tests/process002.hs"
+                            "libraries/unix/cbits/execvpe.c")
+               (("/bin/sh") (which "sh"))
+               (("/bin/ls") (which "ls"))
+               (("/bin/rm") "rm"))
+             #t))
+         (add-before 'build 'fix-environment
+           (lambda _
+             (unsetenv "GHC_PACKAGE_PATH")
+             (setenv "CONFIG_SHELL" (which "bash"))
+             #t)))))
+    (native-search-paths (list (search-path-specification
+                                (variable "GHC_PACKAGE_PATH")
+                                (files (list
+                                        (string-append "lib/ghc-" version)))
+                                (file-pattern ".*\\.conf\\.d$")
+                                (file-type 'directory))))))
+
 (define-public ghc ghc-8)
 
 (define-public ghc-hostname
@@ -451,6 +580,60 @@ interactive environment for the functional language Haskell.")
 determine the hostname.")
     (license license:bsd-3)))
 
+(define-public ghc-convertible
+  (package
+    (name "ghc-convertible")
+    (version "1.1.1.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://hackage.haskell.org/package/convertible/"
+                           "convertible-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0v18ap1mccnndgxmbfgyjdicg8jlss01bd5fq8a576dr0h4sgyg9"))))
+    (build-system haskell-build-system)
+    (inputs
+     `(("ghc-old-time" ,ghc-old-time)
+       ("ghc-old-locale" ,ghc-old-locale)
+       ("ghc-text" ,ghc-text)))
+    (home-page "https://hackage.haskell.org/package/convertible")
+    (synopsis "Typeclasses and instances for converting between types")
+    (description
+     "This package provides a typeclass with a single function that is
+designed to help convert between different types: numeric values, dates and
+times, and the like.  The conversions perform bounds checking and return a
+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-double-conversion
+  (package
+    (name "ghc-double-conversion")
+    (version "2.0.2.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://hackage.haskell.org/package/"
+                           "double-conversion/double-conversion-"
+                           version ".tar.gz"))
+       (sha256
+        (base32
+         "0sx2kc1gw72mjvd8vph8bbjw5whfxfv92rsdhjg1c0al75rf3ka4"))))
+    (build-system haskell-build-system)
+    (inputs `(("ghc-text" ,ghc-text)))
+    (native-inputs
+     `(("ghc-hunit" ,ghc-hunit)
+       ("ghc-test-framework" ,ghc-test-framework)
+       ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
+       ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
+    (home-page "https://github.com/bos/double-conversion")
+    (synopsis "Fast conversion between double precision floating point and text")
+    (description
+     "This package provides a library that performs fast, accurate conversion
+between double precision floating point and text.")
+    (license license:bsd-3)))
+
 (define-public ghc-libxml
   (package
     (name "ghc-libxml")
@@ -465,8 +648,7 @@ determine the hostname.")
          "01zvk86kg726lf2vnlr7dxiz7g3xwi5a4ak9gcfbwyhynkzjmsfi"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-mtl" ,ghc-mtl)
-       ("libxml2" ,libxml2)))
+     `(("libxml2" ,libxml2)))
     (arguments
      `(#:configure-flags
        `(,(string-append "--extra-include-dirs="
@@ -857,8 +1039,7 @@ tool lex or flex for C/C++.")
        ("ghc-exceptions" ,ghc-exceptions)
        ("ghc-multipart" ,ghc-multipart)
        ("ghc-network-uri" ,ghc-network-uri)
-       ("ghc-network" ,ghc-network)
-       ("ghc-mtl" ,ghc-mtl)))
+       ("ghc-network" ,ghc-network)))
     (native-inputs
      `(("ghc-doctest" ,ghc-doctest)
        ("ghc-quickcheck" ,ghc-quickcheck)))
@@ -872,7 +1053,7 @@ tool lex or flex for C/C++.")
 (define-public ghc-cmdargs
   (package
     (name "ghc-cmdargs")
-    (version "0.10.18")
+    (version "0.10.20")
     (source
      (origin
        (method url-fetch)
@@ -881,7 +1062,7 @@ tool lex or flex for C/C++.")
              version ".tar.gz"))
        (sha256
         (base32
-         "1lnmcsf6p9yrwwz1zvrw5lbc32xpff7b70yz4ylawaflnlz6wrlh"))))
+         "0cbkmgrcnwgigg6z88y3c09gm7g6dwm7gzbgr53h8k1xik29s9hf"))))
     (build-system haskell-build-system)
     (home-page
      "http://community.haskell.org/~ndm/cmdargs/")
@@ -927,8 +1108,6 @@ postfix notation.  For more information on stack based languages, see
         (base32
          "186ky3bly0i3cc56qk3r7j7pxh2108aackq4n2lli7jmbnb3kxsd"))))
     (build-system haskell-build-system)
-    (inputs
-     `(("ghc-mtl" ,ghc-mtl)))
     (home-page "https://hackage.haskell.org/package/happy")
     (synopsis "Parser generator for Haskell")
     (description "Happy is a parser generator for Haskell.  Given a grammar
@@ -1015,7 +1194,6 @@ examination.")
     (inputs
      `(("cpphs" ,cpphs)
        ("ghc-happy" ,ghc-happy)
-       ("ghc-mtl" ,ghc-mtl)
        ("ghc-pretty-show" ,ghc-pretty-show-for-haskell-src-exts)))
     (native-inputs
      `(("ghc-smallcheck" ,ghc-smallcheck)
@@ -1119,25 +1297,23 @@ unwanted suggestions, and to add your own custom suggestions.")
 (define-public ghc-resourcet
   (package
     (name "ghc-resourcet")
-    (version "1.1.7.5")
+    (version "1.2.1")
     (source
      (origin
        (method url-fetch)
-       (uri (string-append
-             "https://hackage.haskell.org/package/resourcet/resourcet-"
-             version
-             ".tar.gz"))
+       (uri (string-append "https://hackage.haskell.org/package/resourcet/"
+                           "resourcet-" version ".tar.gz"))
        (sha256
         (base32
-         "0nj0gwfd05divpdn7m47gy6bpcrwn3zk81gc303k0smrbqi0xlq5"))))
+         "0rzjzh34s36ssign7akqjnwnjxf11c3511wk7ky0xxy0dqmc2rg7"))))
     (build-system haskell-build-system)
     (inputs
      `(("ghc-transformers-base" ,ghc-transformers-base)
        ("ghc-monad-control" ,ghc-monad-control)
        ("ghc-transformers-compat" ,ghc-transformers-compat)
-       ("ghc-mtl" ,ghc-mtl)
        ("ghc-mmorph" ,ghc-mmorph)
-       ("ghc-exceptions" ,ghc-exceptions)))
+       ("ghc-exceptions" ,ghc-exceptions)
+       ("ghc-unliftio-core" ,ghc-unliftio-core)))
     (native-inputs
      `(("ghc-lifted-base" ,ghc-lifted-base)
        ("ghc-hspec" ,ghc-hspec)))
@@ -1412,20 +1588,20 @@ version 1.3).")
 (define-public ghc-streaming-commons
   (package
     (name "ghc-streaming-commons")
-    (version "0.1.16")
+    (version "0.2.1.0")
     (source
      (origin
        (method url-fetch)
-       (uri (string-append
-             "https://hackage.haskell.org/package/streaming-commons/streaming-commons-"
-             version
-             ".tar.gz"))
+       (uri (string-append "https://hackage.haskell.org/package/"
+                           "streaming-commons/streaming-commons-"
+                           version ".tar.gz"))
        (sha256
         (base32
-         "0vhhm0z88b1r6s50bskdfh73acwfypm614nycmi9jwiyh84zbz8p"))))
+         "13fn6qmpiggwpn8lczyydgp77cyzfypwds7wxskrwir4i5cgxlfq"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-blaze-builder" ,ghc-blaze-builder)
+     `(("ghc-async" ,ghc-async)
+       ("ghc-blaze-builder" ,ghc-blaze-builder)
        ("ghc-network" ,ghc-network)
        ("ghc-random" ,ghc-random)
        ("ghc-stm" ,ghc-stm)
@@ -1629,7 +1805,6 @@ versions of GHC (i.e., < 6.10).")
    (build-system haskell-build-system)
    (inputs
     `(("ghc-http" ,ghc-http)
-      ("ghc-mtl" ,ghc-mtl)
       ("ghc-network-uri" ,ghc-network-uri)
       ("ghc-network" ,ghc-network)
       ("ghc-random" ,ghc-random)
@@ -1657,6 +1832,9 @@ installation of Haskell libraries and programs.")
         (base32
          "0bgd4jdmzxq5y465r4sf4jv2ix73yvblnr4c9wyazazafddamjny"))))
     (build-system haskell-build-system)
+    (arguments
+     `(#:cabal-revision
+       ("1" "1bk85avgc93yvcggwbk01fy8nvg6753wgmaanhkry0hz55h7mpld")))
     (home-page "https://github.com/phadej/cabal-doctest")
     (synopsis "Setup.hs helper for running doctests")
     (description
@@ -1665,35 +1843,25 @@ configuration.  This library provides the common bits for writing custom
 @file{Setup.hs} files.")
     (license license:bsd-3)))
 
-(define-public ghc-mtl
+(define-public ghc-parsec-numbers
   (package
-    (name "ghc-mtl")
-    (version "2.2.1")
-    (outputs '("out" "doc"))
+    (name "ghc-parsec-numbers")
+    (version "0.1.0")
     (source
      (origin
        (method url-fetch)
-       (uri (string-append
-             "https://hackage.haskell.org/package/mtl/mtl-"
-             version
-             ".tar.gz"))
+       (uri (string-append "https://hackage.haskell.org/package/"
+                           "parsec-numbers/parsec-numbers-" version ".tar.gz"))
        (sha256
-        (base32
-         "1icdbj2rshzn0m1zz5wa7v3xvkf6qw811p4s7jgqwvx1ydwrvrfa"))))
+        (base32 "1gzy4v3r02kvdxvgg1nj83mmb6aph2v4ilf9c7y6nbvi2x49l0bp"))))
     (build-system haskell-build-system)
-    ;; This is an official revision, relaxing the requirement transformers ==
-    ;; 0.4 to transformers >= 0.4 && < 0.6; see
-    ;; https://hackage.haskell.org/package/mtl-2.2.1/revision/1.cabal
-    (arguments
-     `(#:configure-flags (list "--allow-newer=transformers")))
-    (home-page "https://github.com/ekmett/mtl")
-    (synopsis
-     "Monad classes, using functional dependencies")
-    (description "Monad classes using functional dependencies, with instances
-for various monad transformers, inspired by the paper 'Functional Programming
-with Overloading and Higher-Order Polymorphism', by Mark P Jones, in 'Advanced
-School of Functional Programming', 1995.  See
-@uref{https://web.cecs.pdx.edu/~mpj/pubs/springschool.html, the paper}.")
+    (inputs
+     `(("ghc-parsec" ,ghc-parsec)))
+    (home-page "https://hackage.haskell.org/package/parsec-numbers")
+    (synopsis "Utilities for parsing numbers from strings")
+    (description
+     "This package provides the number parsers without the need to use a large
+(and unportable) token parser.")
     (license license:bsd-3)))
 
 (define-public ghc-paths
@@ -1767,7 +1935,7 @@ environment variables.")
 (define-public ghc-setlocale
   (package
     (name "ghc-setlocale")
-    (version "1.0.0.4")
+    (version "1.0.0.6")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -1775,7 +1943,7 @@ environment variables.")
                     version "/setlocale-" version ".tar.gz"))
               (sha256
                (base32
-                "1sd73zgpijr9xjdj5p562cmlcxmx5iff5k8xh9b6rpcgrgnnlf9j"))))
+                "1rl8qb8vzv8fdbczy2dxwgn4cb68lfrjdxf2w8nn9wy1acqzcyjq"))))
     (build-system haskell-build-system)
     (home-page "https://hackage.haskell.org/package/setlocale")
     (synopsis "Haskell bindings to setlocale")
@@ -1824,7 +1992,7 @@ bindings are a direct translation of the C bindings.")
        ("ghc-utf8-string" ,ghc-utf8-string)
        ("libx11" ,libx11)
        ("libxft" ,libxft)
-       ("xproto" ,xproto)))
+       ("xorgproto" ,xorgproto)))
     (native-inputs
      `(("pkg-config" ,pkg-config)))
     (build-system haskell-build-system)
@@ -1861,7 +2029,7 @@ literals.")
 (define-public ghc-zlib
   (package
     (name "ghc-zlib")
-    (version "0.6.1.1")
+    (version "0.6.2")
     (outputs '("out" "doc"))
     (source
      (origin
@@ -1872,11 +2040,15 @@ literals.")
              ".tar.gz"))
        (sha256
         (base32
-         "0dd79dxf56d8f6ad9if3j87s9gg7yd17ckypjxwplrbkahlb9xf5"))))
+         "1vbzf0awb6zb456xf48za1kl22018646cfzq4frvxgb9ay97vk0d"))))
     (build-system haskell-build-system)
-    ;; Tests require older versions of testy.
-    (arguments `(#:tests? #f))
+    (arguments `(#:configure-flags (list "--allow-newer=tasty")))
     (inputs `(("zlib" ,zlib)))
+    (native-inputs
+     `(("ghc-quickcheck" ,ghc-quickcheck)
+       ("ghc-tasty" ,ghc-tasty)
+       ("ghc-tasty-hunit" ,ghc-tasty-hunit)
+       ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
     (home-page "https://hackage.haskell.org/package/zlib")
     (synopsis
      "Compression and decompression in the gzip and zlib formats")
@@ -2327,8 +2499,7 @@ isn't available, portable implementations are used.")
     (build-system haskell-build-system)
     (inputs
      `(("ghc-parsec" ,ghc-parsec)
-       ("ghc-concatenative" ,ghc-concatenative)
-       ("ghc-mtl" ,ghc-mtl)))
+       ("ghc-concatenative" ,ghc-concatenative)))
     (home-page "http://patch-tag.com/r/salazar/indents")
     (synopsis "Indentation sensitive parser-combinators for parsec")
     (description
@@ -2403,8 +2574,6 @@ supported systems.")
         (base32
          "0y1j4h2pg12c853nzmczs263di7xkkmlnsq5dlp5wgbgl49mgp10"))))
     (build-system haskell-build-system)
-    (inputs
-     `(("ghc-mtl" ,ghc-mtl)))
     (home-page
      "https://sourceforge.net/projects/lazy-regex")
     (synopsis "Replaces/Enhances Text.Regex")
@@ -2476,8 +2645,7 @@ Haskell library @code{regex-base}.")
     (build-system haskell-build-system)
     (inputs
      `(("ghc-regex-base" ,ghc-regex-base)
-       ("ghc-parsec" ,ghc-parsec)
-       ("ghc-mtl" ,ghc-mtl)))
+       ("ghc-parsec" ,ghc-parsec)))
     (home-page
      "https://hackage.haskell.org/package/regex-tdfa")
     (synopsis "Tagged DFA regex engine for Haskell")
@@ -2485,6 +2653,66 @@ Haskell library @code{regex-base}.")
 @code{libtre} (fork by Roman Cheplyaka).")
     (license license:bsd-3)))
 
+(define-public ghc-regex-tdfa-text
+  (package
+    (name "ghc-regex-tdfa-text")
+    (version "1.0.0.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "https://hackage.haskell.org/package/regex-tdfa-text/"
+             "regex-tdfa-text-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0090g6lgbdm9lywpqm2d3724nnnh24nx3vnlqr96qc2w486pmmrq"))))
+    (build-system haskell-build-system)
+    (inputs
+     `(("ghc-text" ,ghc-text)
+       ("ghc-regex-base" ,ghc-regex-base)
+       ("ghc-regex-tdfa" ,ghc-regex-tdfa)))
+    (home-page
+     "http://hackage.haskell.org/package/regex-tdfa-text")
+    (synopsis "Text interface for regex-tdfa")
+    (description
+     "This provides an extra text interface for regex-tdfa.")
+    (license license:bsd-3)))
+
+(define-public ghc-regex
+  (package
+    (name "ghc-regex")
+    (version "1.0.1.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://hackage.haskell.org/package/regex/"
+                           "regex-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1sjkpkgv4phy5b5v2lr89x4vx4dh44pj0sbvlsp6n86w9v6v4jwb"))))
+    (build-system haskell-build-system)
+    (inputs
+     `(("ghc-base-compat" ,ghc-base-compat)
+       ("ghc-hashable" ,ghc-hashable)
+       ("ghc-regex-base" ,ghc-regex-base)
+       ("ghc-regex-pcre-builtin" ,ghc-regex-pcre-builtin)
+       ("ghc-regex-tdfa" ,ghc-regex-tdfa)
+       ("ghc-regex-tdfa-text" ,ghc-regex-tdfa-text)
+       ("ghc-text" ,ghc-text)
+       ("ghc-time-locale-compat" ,ghc-time-locale-compat)
+       ("ghc-unordered-containers" ,ghc-unordered-containers)
+       ("ghc-utf8-string" ,ghc-utf8-string)))
+    (home-page "http://regex.uk")
+    (synopsis "Toolkit for regex-base")
+    (description
+     "This package provides a regular expression toolkit for @code{regex-base}
+with compile-time checking of regular expression syntax, data types for
+matches and captures, a text replacement toolkit, portable options, high-level
+AWK-like tools for building text processing apps, regular expression macros
+with parsers and test bench, comprehensive documentation, tutorials and
+copious examples.")
+    (license license:bsd-3)))
+
 (define-public ghc-parsers
   (package
     (name "ghc-parsers")
@@ -2547,7 +2775,6 @@ the parsers provided by @code{parsec}, @code{attoparsec} and @code{base}'s
        ("ghc-fingertree" ,ghc-fingertree)
        ("ghc-hashable" ,ghc-hashable)
        ("ghc-lens" ,ghc-lens)
-       ("ghc-mtl" ,ghc-mtl)
        ("ghc-parsers" ,ghc-parsers)
        ("ghc-profunctors" ,ghc-profunctors)
        ("ghc-quickcheck" ,ghc-quickcheck)
@@ -2636,7 +2863,6 @@ complicated text/binary file formats.")
      `(("ghc-old-time" ,ghc-old-time)
        ("ghc-digest" ,ghc-digest)
        ("zip" ,zip)
-       ("ghc-mtl" ,ghc-mtl)
        ("ghc-temporary" ,ghc-temporary)
        ("ghc-text" ,ghc-text)
        ("ghc-zlib" ,ghc-zlib)))
@@ -2981,7 +3207,6 @@ syntax and semantics as Perl 5.")
         (base32
          "07hnirv6snnym2r7iijlfz00b60jpy2856zvqxh989q0in7bd0hi"))))
     (build-system haskell-build-system)
-    (inputs `(("ghc-mtl" ,ghc-mtl)))
     (home-page "http://code.haskell.org/~dolio/")
     (synopsis "Backtracking logic-programming monad")
     (description "This library provides a continuation-based, backtracking,
@@ -3064,7 +3289,6 @@ consuming feeds in both RSS (Really Simple Syndication) and Atom format.")
        ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
     (inputs
      `(("ghc-stm" ,ghc-stm)
-       ("ghc-mtl" ,ghc-mtl)
        ("ghc-transformers-compat" ,ghc-transformers-compat)))
     (home-page "https://github.com/ekmett/exceptions/")
     (synopsis "Extensible optionally-pure exceptions")
@@ -3129,7 +3353,7 @@ This is a better maintained fork of the \"temporary\" package.")
 (define-public ghc-smallcheck
   (package
     (name "ghc-smallcheck")
-    (version "1.1.1")
+    (version "1.1.5")
     (source
      (origin
        (method url-fetch)
@@ -3139,11 +3363,10 @@ This is a better maintained fork of the \"temporary\" package.")
              ".tar.gz"))
        (sha256
         (base32
-         "1ygrabxh40bym3grnzqyfqn96lirnxspb8cmwkkr213239y605sd"))))
+         "195fj7w3v03d1y1nm2ylavzrwxjcdbq0lb6zsw1dwyx5jmwfc84h"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-logict" ,ghc-logict)
-       ("ghc-mtl" ,ghc-mtl)))
+     `(("ghc-logict" ,ghc-logict)))
     (home-page
      "https://github.com/feuerbach/smallcheck")
     (synopsis "Property-based testing library")
@@ -3227,8 +3450,7 @@ to cases.")
          "1p3cnqjm13677r4a966zffzhi9b3a321aln8zs8ckqj0d9z1z3d3"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-hunit" ,ghc-hunit)
-       ("ghc-mtl" ,ghc-mtl)))
+     `(("ghc-hunit" ,ghc-hunit)))
     (home-page
      "http://www.cs.uu.nl/wiki/GenericProgramming/SYB")
     (synopsis "Scrap Your Boilerplate")
@@ -3243,7 +3465,7 @@ variety of traversals.")
 (define-public ghc-fgl
   (package
     (name "ghc-fgl")
-    (version "5.5.3.0")
+    (version "5.6.0.0")
     (outputs '("out" "doc"))
     (source
      (origin
@@ -3254,13 +3476,13 @@ variety of traversals.")
              ".tar.gz"))
        (sha256
         (base32
-         "0fbyb6jxy9whgrv6dgnkzz70cmy98arx3q2gnkhgl4a3d7idh36p"))))
+         "1i6cp4b3w7sjk7y1dq3fh6bci2sm5h3lnbbaw9ln19nwncg2wwll"))))
     (build-system haskell-build-system)
     (arguments
-     `(#:configure-flags (list "--allow-newer=QuickCheck")))
+     `(#:configure-flags (list "--allow-newer=QuickCheck"
+                               "--allow-newer=hspec")))
     (inputs
-     `(("ghc-mtl" ,ghc-mtl)
-       ("ghc-hspec" ,ghc-hspec)
+     `(("ghc-hspec" ,ghc-hspec)
        ("ghc-quickcheck" ,ghc-quickcheck)))
     (home-page "https://web.engr.oregonstate.edu/~erwig/fgl/haskell")
     (synopsis
@@ -3285,8 +3507,7 @@ encourages inductive, recursive definitions of graph algorithms.")
          "04jwwjs22mqc4hvpp4c3gpb79inrrq5sapks5khknspv2hslm61q"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-mtl" ,ghc-mtl)
-       ("ghc-quickcheck" ,ghc-quickcheck)
+     `(("ghc-quickcheck" ,ghc-quickcheck)
        ("ghc-random" ,ghc-random)
        ("ghc-syb" ,ghc-syb)))
     (home-page "https://hackage.haskell.org/package/ChasingBottoms")
@@ -3432,17 +3653,16 @@ instances of the @code{Pretty} class.")
 (define-public ghc-ansi-wl-pprint
   (package
     (name "ghc-ansi-wl-pprint")
-    (version "0.6.7.3")
+    (version "0.6.8.2")
     (source
      (origin
        (method url-fetch)
-       (uri (string-append
-             "https://hackage.haskell.org/package/ansi-wl-pprint/ansi-wl-pprint-"
-             version
-             ".tar.gz"))
+       (uri (string-append "https://hackage.haskell.org/package/"
+                           "ansi-wl-pprint/ansi-wl-pprint-"
+                           version ".tar.gz"))
        (sha256
         (base32
-         "025pyphsjf0dnbrmj5nscbi6gzyigwgp3ifxb3psn7kji6mfr29p"))))
+         "0gnb4mkqryv08vncxnj0bzwcnd749613yw3cxfzw6y3nsldp4c56"))))
     (build-system haskell-build-system)
     (inputs
      `(("ghc-ansi-terminal" ,ghc-ansi-terminal)))
@@ -3496,8 +3716,7 @@ mainstream languages.")
     (native-inputs
      `(("ghc-hunit" ,ghc-hunit)))
     (inputs
-     `(("ghc-text" ,ghc-text)
-       ("ghc-mtl" ,ghc-mtl)))
+     `(("ghc-text" ,ghc-text)))
     (arguments
      `(#:tests? #f)) ; FIXME: currently missing libraries used for tests.
     (home-page
@@ -3546,7 +3765,6 @@ combinators.")
     (build-system haskell-build-system)
     (inputs
      `(("ghc-case-insensitive" ,ghc-case-insensitive)
-       ("ghc-mtl" ,ghc-mtl)
        ("ghc-parser-combinators" ,ghc-parser-combinators)
        ("ghc-scientific" ,ghc-scientific)
        ("ghc-text" ,ghc-text)))
@@ -3775,7 +3993,6 @@ representing a store for a single element.")
        (sha256
         (base32 "0vmmlsj8ggbpwx6fkf5fvb6jp0zpx6iba6b28m80lllr2p8bi8wm"))))
     (build-system haskell-build-system)
-    (inputs `(("ghc-mtl" ,ghc-mtl)))
     (home-page "http://rwd.rdockins.name/edison/home/")
     (synopsis "Library of efficient, purely-functional data structures (API)")
     (description
@@ -3801,8 +4018,7 @@ finite maps and priority queues where the priority and element are distinct.")
         (base32 "06shxmcqxcahcn6zgl64vlqix4fnq53d97drcgsh94qp7gp201ry"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-mtl" ,ghc-mtl)
-       ("ghc-quickcheck" ,ghc-quickcheck)
+     `(("ghc-quickcheck" ,ghc-quickcheck)
        ("ghc-edisonapi" ,ghc-edisonapi)))
     (home-page "http://rwd.rdockins.name/edison/home/")
     (synopsis "Library of efficient, purely-functional data structures")
@@ -3828,8 +4044,7 @@ with various performance characteristics.")
          "1i8dzrc5qi3ryc9vrrmpn3sihmramsbhhd592w4w2k5g26qr3hql"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-mtl" ,ghc-mtl)
-       ("ghc-transformers-compat" ,ghc-transformers-compat)))
+     `(("ghc-transformers-compat" ,ghc-transformers-compat)))
     (home-page "https://hackage.haskell.org/package/mmorph")
     (synopsis "Monad morphisms")
     (description
@@ -3850,7 +4065,6 @@ manipulating monad transformer stacks.")
         (base32
          "1kfx1bwfjczj93a8yqz1n8snqiq5655qgzwv1lrycry8wb1vzlwa"))))
     (build-system haskell-build-system)
-    (inputs `(("ghc-mtl" ,ghc-mtl)))
     (home-page "http://hackage.haskell.org/package/IfElse")
     (synopsis "Monadic control flow with anaphoric variants")
     (description "This library provides functions for control flow inside of
@@ -4039,7 +4253,7 @@ library for Haskell.")
 (define-public ghc-easy-file
   (package
     (name "ghc-easy-file")
-    (version "0.2.1")
+    (version "0.2.2")
     (source
      (origin
        (method url-fetch)
@@ -4049,7 +4263,7 @@ library for Haskell.")
              ".tar.gz"))
        (sha256
         (base32
-         "0v75081bx4qzlqy29hh639nzlr7dncwza3qxbzm9njc4jarf31pz"))))
+         "0zmlcz723051qpn8l8vi51c5rx1blwrw4094jcshkmj8p9r2xxaj"))))
     (build-system haskell-build-system)
     (home-page
      "https://github.com/kazu-yamamoto/easy-file")
@@ -4117,7 +4331,7 @@ simple general-purpose data structure\".")
 (define-public ghc-optparse-applicative
   (package
     (name "ghc-optparse-applicative")
-    (version "0.13.0.0")
+    (version "0.14.2.0")
     (source
      (origin
        (method url-fetch)
@@ -4126,15 +4340,8 @@ simple general-purpose data structure\".")
              "/optparse-applicative-" version ".tar.gz"))
        (sha256
         (base32
-         "1b0c5fdq8bd070g24vrjrwlq979r8dk8mys6aji9hy1l9pcv3inf"))))
+         "0c3z1mvynlyv1garjbdmdd3npm40dabgm75js4r07cf766c1wd71"))))
     (build-system haskell-build-system)
-    ;; These tests fail because the package doesn't come with all needed test
-    ;; files:
-    ;; - prop_drops_back_contexts
-    ;; - prop_context_carry
-    ;; - prop_help_on_empty
-    ;; - prop_help_on_empty_sub
-    (arguments `(#:tests? #f))
     (inputs
      `(("ghc-transformers-compat" ,ghc-transformers-compat)
        ("ghc-ansi-wl-pprint" ,ghc-ansi-wl-pprint)))
@@ -4377,7 +4584,6 @@ given term should not exist.")
        ("ghc-contravariant" ,ghc-contravariant)
        ("ghc-distributive" ,ghc-distributive)
        ("ghc-free" ,ghc-free)
-       ("ghc-mtl" ,ghc-mtl)
        ("ghc-semigroupoids" ,ghc-semigroupoids)
        ("ghc-tagged" ,ghc-tagged)))
     (home-page "https://github.com/ekmett/kan-extensions/")
@@ -4407,6 +4613,14 @@ forms of the Yoneda lemma, and (co)density (co)monads for Haskell.")
 call stacks with different versions of the compiler.")
     (license license:expat)))
 
+;; This is used as an input to ghc-hunit.  We cannot use ghc-call-stack there,
+;; because it depends on ghc-nanospec, which depends on ghc-hunit.
+(define-public ghc-call-stack-boot
+  (package
+    (inherit ghc-call-stack)
+    (arguments '(#:tests? #f))
+    (inputs '())))
+
 (define-public ghc-statevar
   (package
     (name "ghc-statevar")
@@ -4459,7 +4673,6 @@ in the @code{IO} monad, like @code{IORef}s or parts of the OpenGL state.")
        ("ghc-comonad" ,ghc-comonad)
        ("ghc-contravariant" ,ghc-contravariant)
        ("ghc-hashable" ,ghc-hashable)
-       ("ghc-mtl" ,ghc-mtl)
        ("ghc-profunctors" ,ghc-profunctors)
        ("ghc-semigroups" ,ghc-semigroups)
        ("ghc-tagged" ,ghc-tagged)
@@ -4503,8 +4716,7 @@ indexed variants.")
          "1hiqi7h76shjzs2zj0j8g6wnq2hbiq1hmfafdazr97fba2zl2432"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-mtl" ,ghc-mtl)
-       ("ghc-text" ,ghc-text)
+     `(("ghc-text" ,ghc-text)
        ("ghc-blaze-html" ,ghc-blaze-html)
        ("ghc-xss-sanitize" ,ghc-xss-sanitize)
        ("ghc-data-default" ,ghc-data-default)
@@ -4667,7 +4879,6 @@ semigroup.")
        ("ghc-bifunctors" ,ghc-bifunctors)
        ("ghc-comonad" ,ghc-comonad)
        ("ghc-distributive" ,ghc-distributive)
-       ("ghc-mtl" ,ghc-mtl)
        ("ghc-semigroupoids" ,ghc-semigroupoids)
        ("ghc-semigroups" ,ghc-semigroups)))
     (home-page "https://github.com/ekmett/free/")
@@ -4702,7 +4913,6 @@ definition of @code{Monad}.")
        ("ghc-contravariant" ,ghc-contravariant)
        ("ghc-distributive" ,ghc-distributive)
        ("ghc-free" ,ghc-free)
-       ("ghc-mtl" ,ghc-mtl)
        ("ghc-tagged" ,ghc-tagged)
        ("ghc-semigroupoids" ,ghc-semigroupoids)
        ("ghc-semigroups" ,ghc-semigroups)
@@ -4726,8 +4936,7 @@ for Haskell.")
         (base32 "0a85bdyyvjqs5z4kfhhf758210k9gi9dv42ik66a3jl0z7aix8kx"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-mtl" ,ghc-mtl)
-       ("ghc-stmonadtrans" ,ghc-stmonadtrans)
+     `(("ghc-stmonadtrans" ,ghc-stmonadtrans)
        ("ghc-transformers-compat" ,ghc-transformers-compat)
        ("ghc-quickcheck" ,ghc-quickcheck)
        ("ghc-test-framework" ,ghc-test-framework)
@@ -4914,7 +5123,7 @@ occurrences of a substring (the first in case of overlaps) with another.")
 (define-public ghc-integer-logarithms
   (package
     (name "ghc-integer-logarithms")
-    (version "1.0.2")
+    (version "1.0.2.1")
     (source
      (origin
        (method url-fetch)
@@ -4923,16 +5132,18 @@ occurrences of a substring (the first in case of overlaps) with another.")
                            version ".tar.gz"))
        (sha256
         (base32
-         "0w5mhak181zi6qr5h2zbcs9ymaqacisp9jwk99naz6s8zz5rq1ii"))))
+         "1wj8kgjg5bn2yrs4zh9qfjv85cx6w998j9pi39yrbv305944mb9j"))))
     (build-system haskell-build-system)
-    (inputs
-     `(("ghc-tasty" ,ghc-tasty)
-       ("ghc-tasty-smallcheck" ,ghc-tasty-smallcheck)
-       ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
+    (arguments
+     `(#:configure-flags (list "--allow-newer=tasty")))
+    (native-inputs
+     `(("ghc-quickcheck" ,ghc-quickcheck)
+       ("ghc-smallcheck" ,ghc-smallcheck)
+       ("ghc-tasty" ,ghc-tasty)
        ("ghc-tasty-hunit" ,ghc-tasty-hunit)
-       ("ghc-quickcheck" ,ghc-quickcheck)
-       ("ghc-smallcheck" ,ghc-smallcheck)))
-    (home-page "https://github.com/phadej/integer-logarithms")
+       ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
+       ("ghc-tasty-smallcheck" ,ghc-tasty-smallcheck)))
+    (home-page "https://github.com/Bodigrim/integer-logarithms")
     (synopsis "Integer logarithms")
     (description
      "This package provides the following modules:
@@ -4946,7 +5157,7 @@ in migrated modules.")
 (define-public ghc-scientific
   (package
     (name "ghc-scientific")
-    (version "0.3.5.2")
+    (version "0.3.6.2")
     (source
      (origin
        (method url-fetch)
@@ -4956,14 +5167,15 @@ in migrated modules.")
              ".tar.gz"))
        (sha256
         (base32
-         "0msnjz7ml0zycw9bssslxbg0nigziw7vs5km4q3vjbs8jpzpkr2w"))))
+         "03ql2f0ac8bsl524idy9xxa3kxisb2sj3avflzw580j5hzy0m397"))))
     (build-system haskell-build-system)
     (inputs
      `(("ghc-integer-logarithms" ,ghc-integer-logarithms)
        ("ghc-text" ,ghc-text)
        ("ghc-hashable" ,ghc-hashable)
-       ("ghc-primitive" ,ghc-primitive)
-       ("ghc-tasty" ,ghc-tasty)
+       ("ghc-primitive" ,ghc-primitive)))
+    (native-inputs
+     `(("ghc-tasty" ,ghc-tasty)
        ("ghc-tasty-ant-xml" ,ghc-tasty-ant-xml)
        ("ghc-tasty-hunit" ,ghc-tasty-hunit)
        ("ghc-tasty-smallcheck" ,ghc-tasty-smallcheck)
@@ -5052,7 +5264,7 @@ and bytestrings.")
 (define-public ghc-pandoc-types
   (package
     (name "ghc-pandoc-types")
-    (version "1.17.3.1")
+    (version "1.17.5.1")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://hackage.haskell.org/package/"
@@ -5060,7 +5272,7 @@ and bytestrings.")
                                   version ".tar.gz"))
               (sha256
                (base32
-                "0dhp5bcjl6605n2chiab5rp51zir3671gxkmwy34znh0s3vp85jb"))))
+                "1q6v2bynij724fv347mhqxdscwifzrx5jb9mq80608qf638fn717"))))
     (build-system haskell-build-system)
     (arguments
      `(#:configure-flags (list "--allow-newer=QuickCheck")))
@@ -5093,6 +5305,9 @@ building up, manipulating and serialising @code{Pandoc} structures.")
               (sha256
                (base32
                 "1csipjdq00iiq77k2wlrg4i7afrzlh8nl585q785xzw7nn45b0n8"))))
+    (arguments
+     `(#:configure-flags (list "--allow-newer=QuickCheck"
+                               "--allow-newer=HUnit")))
     (inputs
      `(("ghc-syb" ,ghc-syb)
        ("ghc-aeson" ,ghc-aeson-for-pandoc-1)
@@ -5101,14 +5316,14 @@ building up, manipulating and serialising @code{Pandoc} structures.")
 (define-public ghc-texmath
   (package
     (name "ghc-texmath")
-    (version "0.10.1.1")
+    (version "0.11.0.1")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://hackage.haskell.org/package/"
                                   "texmath/texmath-" version ".tar.gz"))
               (sha256
                (base32
-                "0q2fld5mdcd6j1n3rrg3bjpndbgbn17cwg0xbnvscrpa0s767jaj"))))
+                "11dc09hfnyfsz20ch2c867w0zdgjkzq41506lm61i3dk87ngdisf"))))
     (build-system haskell-build-system)
     (inputs
      `(("ghc-syb" ,ghc-syb)
@@ -5118,7 +5333,6 @@ building up, manipulating and serialising @code{Pandoc} structures.")
        ("ghc-utf8-string" ,ghc-utf8-string)
        ("ghc-xml" ,ghc-xml)
        ("ghc-parsec" ,ghc-parsec)
-       ("ghc-mtl" ,ghc-mtl)
        ("ghc-pandoc-types" ,ghc-pandoc-types)))
     (home-page "https://github.com/jgm/texmath")
     (synopsis "Conversion between formats used to represent mathematics")
@@ -5142,8 +5356,7 @@ it can parse and apply LaTeX macros.")
                (base32
                 "129q33m56diiv35kdwfb07838wrg0mm88kxdqxfyl1zvf9nzkqkd"))))
     (inputs
-     `(("ghc-mtl" ,ghc-mtl)
-       ("ghc-network-uri" ,ghc-network-uri)
+     `(("ghc-network-uri" ,ghc-network-uri)
        ("ghc-pandoc-types" ,ghc-pandoc-types-for-pandoc-1)
        ("ghc-parsec" ,ghc-parsec)
        ("ghc-split" ,ghc-split)
@@ -5217,8 +5430,7 @@ and utilities for pretty printing.")
     (native-inputs
      `(("ghc-parsec" ,ghc-parsec)
        ("ghc-blaze-html" ,ghc-blaze-html)
-       ("ghc-utf8-string" ,ghc-utf8-string)
-       ("ghc-mtl" ,ghc-mtl)))
+       ("ghc-utf8-string" ,ghc-utf8-string)))
     (home-page "https://github.com/jgm/highlighting-kate")
     (synopsis "Syntax highlighting library")
     (description
@@ -5310,7 +5522,7 @@ as invoked.\" This library tries to provide the missing path.")
 (define-public ghc-enclosed-exceptions
   (package
     (name "ghc-enclosed-exceptions")
-    (version "1.0.2")
+    (version "1.0.3")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://hackage.haskell.org/package/"
@@ -5318,8 +5530,11 @@ as invoked.\" This library tries to provide the missing path.")
                                   version ".tar.gz"))
               (sha256
                (base32
-                "1wc9h6zdnb5impvvml6vnjapajjanw7zgpnzg7c0v7115nwfm6vv"))))
+                "1fghjj7nkiddrf03ks8brjpr5x25yi9fs7xg6adbi4mc2gqr6vdg"))))
     (build-system haskell-build-system)
+    ;; FIXME: one of the tests blocks forever:
+    ;; "thread blocked indefinitely in an MVar operation"
+    (arguments '(#:tests? #f))
     (inputs
      `(("ghc-lifted-base" ,ghc-lifted-base)
        ("ghc-monad-control" ,ghc-monad-control)
@@ -5469,8 +5684,7 @@ instances.  This package provides orphan instances for @code{containers},
                 "1b76zjxkj0v0n8zj9l0nwav2irm0c43rx6qjihfw8klmmxvx59df"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-mtl" ,ghc-mtl)
-       ("ghc-safe" ,ghc-safe)
+     `(("ghc-safe" ,ghc-safe)
        ("ghc-th-expand-syns" ,ghc-th-expand-syns)))
     (home-page "https://github.com/mgsloan/th-reify-many")
     (synopsis "Recurseively reify template haskell datatype info")
@@ -5497,7 +5711,6 @@ function which generates instances.")
      `(("ghc-th-lift" ,ghc-th-lift)
        ("ghc-th-lift-instances" ,ghc-th-lift-instances)
        ("ghc-th-reify-many" ,ghc-th-reify-many)
-       ("ghc-mtl" ,ghc-mtl)
        ("ghc-generic-deriving" ,ghc-generic-deriving)))
     (native-inputs
      `(("ghc-hspec" ,ghc-hspec)))
@@ -5513,7 +5726,7 @@ package, and that's where the version number started.")
 (define-public ghc-geniplate-mirror
   (package
     (name "ghc-geniplate-mirror")
-    (version "0.7.5")
+    (version "0.7.6")
     (source
      (origin
        (method url-fetch)
@@ -5521,9 +5734,8 @@ package, and that's where the version number started.")
                            "/geniplate-mirror"
                            "/geniplate-mirror-" version ".tar.gz"))
        (sha256
-        (base32 "17vjps2118s5z3k39ij00lkmkxv3mqf8h59wv6qdamlgmhyr36si"))))
+        (base32 "1y0m0bw5zpm1y1y6d9qmxj3swl8j8hlw1shxbr5awycf6k884ssb"))))
     (build-system haskell-build-system)
-    (inputs `(("ghc-mtl" ,ghc-mtl)))
     (home-page "https://github.com/danr/geniplate")
     (synopsis "Use Template Haskell to generate Uniplate-like functions")
     (description
@@ -5585,22 +5797,26 @@ template-haskell abstract syntax.")
 (define-public ghc-conduit
   (package
     (name "ghc-conduit")
-    (version "1.2.12.1")
+    (version "1.3.0.3")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://hackage.haskell.org/package/"
                                   "conduit/conduit-" version ".tar.gz"))
               (sha256
                (base32
-                "0zl6gflh7y36y2vypjhqx13nhkk5y3h12c1zj7kjfclrmwnvnwh0"))))
+                "1sangm0qqi9dzlq95746a3kl14k8b09592a423shxjf2a0b1yx5v"))))
     (build-system haskell-build-system)
     (inputs
      `(("ghc-exceptions" ,ghc-exceptions)
        ("ghc-lifted-base" ,ghc-lifted-base)
+       ("ghc-mono-traversable" ,ghc-mono-traversable)
        ("ghc-mmorph" ,ghc-mmorph)
-       ("ghc-mtl" ,ghc-mtl)
        ("ghc-resourcet" ,ghc-resourcet)
+       ("ghc-silently" ,ghc-silently)
        ("ghc-transformers-base" ,ghc-transformers-base)
+       ("ghc-unliftio" ,ghc-unliftio)
+       ("ghc-unliftio-core" ,ghc-unliftio-core)
+       ("ghc-vector" ,ghc-vector)
        ("ghc-void" ,ghc-void)))
     (native-inputs
      `(("ghc-quickcheck" ,ghc-quickcheck)
@@ -5720,8 +5936,7 @@ back-ends.")
                 "0ilqr8jv41zxcj5qyicg29m8s30b9v70x6f9h2h2rw5ap8bxldl8"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-mtl" ,ghc-mtl)
-       ("ghc-unix-compat" ,ghc-unix-compat)))
+     `(("ghc-unix-compat" ,ghc-unix-compat)))
     (home-page "https://github.com/bos/filemanip")
     (synopsis "File and directory manipulation for Haskell")
     (description
@@ -5765,8 +5980,7 @@ do on-demand loading.")
                 "14s57fgf6kd5n5al2kcvk1aaxbq1ph0r5h8blflrjkx83yl6r8yn"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-mtl" ,ghc-mtl)
-       ("ghc-zlib" ,ghc-zlib)
+     `(("ghc-zlib" ,ghc-zlib)
        ("ghc-vector" ,ghc-vector)
        ("ghc-primitive" ,ghc-primitive)
        ("ghc-mmap" ,ghc-mmap)))
@@ -5795,7 +6009,6 @@ TIFF and GIF formats.")
      `(("lua" ,lua)
        ("ghc-exceptions" ,ghc-exceptions)
        ("ghc-fail" ,ghc-fail)
-       ("ghc-mtl" ,ghc-mtl)
        ("ghc-text" ,ghc-text)))
     (native-inputs
      `(("ghc-tasty" ,ghc-tasty)
@@ -5893,8 +6106,7 @@ wrapping a bytestring with stronger and more meaniful name.")
                 "104d1yd84hclprg740nkz60vx589mnm094zriw6zczbgg8nkclym"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-mtl" ,ghc-mtl)
-       ("ghc-old-locale" ,ghc-old-locale)))
+     `(("ghc-old-locale" ,ghc-old-locale)))
     (native-inputs
      `(("ghc-tasty" ,ghc-tasty)
        ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
@@ -6039,7 +6251,6 @@ the choice of SSL/TLS, and SOCKS.")
        ("ghc-colour" ,ghc-colour)
        ("ghc-diff" ,ghc-diff)
        ("ghc-hxt" ,ghc-hxt)
-       ("ghc-mtl" ,ghc-mtl)
        ("ghc-pretty-show" ,ghc-pretty-show)
        ("ghc-regex-pcre-builtin" ,ghc-regex-pcre-builtin)
        ("ghc-safe" ,ghc-safe)
@@ -6105,7 +6316,6 @@ provided.  Skylighting is intended to be the successor to highlighting-kate.")
        ("ghc-case-insensitive" ,ghc-case-insensitive)
        ("ghc-diff" ,ghc-diff)
        ("ghc-hxt" ,ghc-hxt)
-       ("ghc-mtl" ,ghc-mtl)
        ("ghc-pretty-show" ,ghc-pretty-show)
        ("ghc-regex-pcre-builtin" ,ghc-regex-pcre-builtin)
        ("ghc-safe" ,ghc-safe)
@@ -6169,7 +6379,7 @@ provided.  Skylighting is intended to be the successor to highlighting-kate.")
 (define-public ghc-pandoc
   (package
     (name "ghc-pandoc")
-    (version "2.0.6")
+    (version "2.2.1")
     (source
      (origin
        (method url-fetch)
@@ -6177,7 +6387,7 @@ provided.  Skylighting is intended to be the successor to highlighting-kate.")
                            version ".tar.gz"))
        (sha256
         (base32
-         "1vhj6splykksb1mkxv5cs0361nj12qn23a3y1i8j5dc637lkdwpj"))))
+         "1dqin92w513l7whg5wdgrngnxsj5mb8gppfvn7kjgyv2pdgpy0zy"))))
     (build-system haskell-build-system)
     (inputs
      `(("ghc-aeson" ,ghc-aeson)
@@ -6200,7 +6410,6 @@ provided.  Skylighting is intended to be the successor to highlighting-kate.")
        ("ghc-http-client-tls" ,ghc-http-client-tls)
        ("ghc-http-types" ,ghc-http-types)
        ("ghc-juicypixels" ,ghc-juicypixels)
-       ("ghc-mtl" ,ghc-mtl)
        ("ghc-network" ,ghc-network)
        ("ghc-network-uri" ,ghc-network-uri)
        ("ghc-old-locale" ,ghc-old-locale)
@@ -6277,7 +6486,6 @@ provided for those who need a drop-in replacement for Markdown.pl.")
        ("ghc-http-client-tls" ,ghc-http-client-tls)
        ("ghc-http-types" ,ghc-http-types)
        ("ghc-juicypixels" ,ghc-juicypixels)
-       ("ghc-mtl" ,ghc-mtl)
        ("ghc-network" ,ghc-network)
        ("ghc-network-uri" ,ghc-network-uri)
        ("ghc-old-time" ,ghc-old-time)
@@ -6349,10 +6557,40 @@ dependency that depends on a large C library, and @code{rfc5051} might be
 better for some purposes.")
     (license license:bsd-3)))
 
+(define-public ghc-typed-process
+  (package
+    (name "ghc-typed-process")
+    (version "0.2.2.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://hackage.haskell.org/package/"
+                           "typed-process/typed-process-"
+                           version ".tar.gz"))
+       (sha256
+        (base32
+         "0c6gvgvjyncbni9a5bvpbglknd4yclr3d3hfg9bhgahmkj40dva2"))))
+    (build-system haskell-build-system)
+    (inputs
+     `(("ghc-async" ,ghc-async)
+       ("ghc-stm" ,ghc-stm)))
+    (native-inputs
+     `(("ghc-base64-bytestring" ,ghc-base64-bytestring)
+       ("ghc-hspec" ,ghc-hspec)
+       ("hspec-discover" ,hspec-discover)
+       ("ghc-temporary" ,ghc-temporary)))
+    (home-page "https://haskell-lang.org/library/typed-process")
+    (synopsis "Run external processes with strong typing of streams")
+    (description
+     "This library provides the ability to launch and interact with external
+processes.  It wraps around the @code{process} library, and intends to improve
+upon it.")
+    (license license:expat)))
+
 (define-public ghc-conduit-extra
   (package
     (name "ghc-conduit-extra")
-    (version "1.1.14")
+    (version "1.3.0")
     (source
      (origin
        (method url-fetch)
@@ -6361,7 +6599,7 @@ better for some purposes.")
                            version ".tar.gz"))
        (sha256
         (base32
-         "1ij3qcfk7q90fl6gklpy2k5ka9jgzrvs8frq0gy7gdcgyaabqfkg"))))
+         "1bi2b6kdzy5f9glq46jzsk02has95jkxqz0cchpbmnakzhjwjh9c"))))
     (build-system haskell-build-system)
     (inputs
      `(("ghc-conduit" ,ghc-conduit)
@@ -6369,6 +6607,7 @@ better for some purposes.")
        ("ghc-monad-control" ,ghc-monad-control)
        ("ghc-text" ,ghc-text)
        ("ghc-transformers-base" ,ghc-transformers-base)
+       ("ghc-typed-process" ,ghc-typed-process)
        ("ghc-async" ,ghc-async)
        ("ghc-attoparsec" ,ghc-attoparsec)
        ("ghc-blaze-builder" ,ghc-blaze-builder)
@@ -6415,7 +6654,7 @@ documents.")
 (define-public ghc-xml-conduit
   (package
     (name "ghc-xml-conduit")
-    (version "1.7.1.2")
+    (version "1.8.0.1")
     (source
      (origin
        (method url-fetch)
@@ -6423,11 +6662,12 @@ documents.")
                            "xml-conduit-" version ".tar.gz"))
        (sha256
         (base32
-         "0n4k0rq9j5cc9kdvj9xbx8gmiqlyk5x6pw8yxzw5wfsw7qkych2s"))))
+         "177gmyigxql1pn3ncz0r8annwv5cbxnihbgrrg1dhm4gmc9jy2wq"))))
     (build-system haskell-build-system)
     (inputs
      `(("ghc-conduit" ,ghc-conduit)
        ("ghc-conduit-extra" ,ghc-conduit-extra)
+       ("ghc-doctest" ,ghc-doctest)
        ("ghc-resourcet" ,ghc-resourcet)
        ("ghc-text" ,ghc-text)
        ("ghc-xml-types" ,ghc-xml-types)
@@ -6448,7 +6688,7 @@ the @code{conduit} package.")
 (define-public ghc-pandoc-citeproc
   (package
     (name "ghc-pandoc-citeproc")
-    (version "0.12.2.5")
+    (version "0.14.3.1")
     (source
      (origin
        (method url-fetch)
@@ -6457,7 +6697,7 @@ the @code{conduit} package.")
                            version ".tar.gz"))
        (sha256
         (base32
-         "1l58nbflcnlznc93qimkk7ghk2gv8kipf45zf88piqa2zys41yyx"))))
+         "0yj6rckwsc9vig40cm15ry0j3d01xpk04qma9n4byhal6v4b5h22"))))
     (build-system haskell-build-system)
     (arguments
      `(#:phases
@@ -6467,8 +6707,7 @@ the @code{conduit} package.")
          (add-after 'install 'post-install-check
            (assoc-ref %standard-phases 'check)))))
     (inputs
-     `(("ghc-mtl" ,ghc-mtl)
-       ("ghc-pandoc-types" ,ghc-pandoc-types)
+     `(("ghc-pandoc-types" ,ghc-pandoc-types)
        ("ghc-pandoc" ,ghc-pandoc)
        ("ghc-tagsoup" ,ghc-tagsoup)
        ("ghc-aeson" ,ghc-aeson)
@@ -6620,8 +6859,7 @@ regular expressions.  Parsers can be built using Applicative interface.")
          "0f8x8wyr6m21g8dnxvnvalz5bsq37l125l6qhs0fscbvprsxc4nb"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-mtl" ,ghc-mtl)
-       ("ghc-parsec" ,ghc-parsec)
+     `(("ghc-parsec" ,ghc-parsec)
        ("ghc-regex-base" ,ghc-regex-base)))
     (home-page "https://github.com/ChrisKuklewicz/regex-tdfa")
     (synopsis "POSIX extended regular expressions in Haskell.")
@@ -6660,7 +6898,7 @@ this problem.")
 (define-public ghc-sandi
   (package
     (name "ghc-sandi")
-    (version "0.4.0") ; darcs-2.12.4 needs == 0.4.*
+    (version "0.4.2")
     (source
      (origin
        (method url-fetch)
@@ -6669,7 +6907,7 @@ this problem.")
              version ".tar.gz"))
        (sha256
         (base32
-         "1smf3bq44qni4zbgxpw7cy7b9g95fbrr73j8njjf6139naj9bj20"))))
+         "0dvkpk91n9kz2ha04rvp231ra9sgd1ilyc1qkzf9l03iir7zrh9b"))))
     (build-system haskell-build-system)
     (inputs
      `(("ghc-stringsearch" ,ghc-stringsearch)
@@ -6755,8 +6993,6 @@ an index.")
        (sha256
         (base32 "1nr26fnmi5fdjc6d00w13kjhmfyvb5b837d0006w4dj0yxndaksp"))))
     (build-system haskell-build-system)
-    (inputs
-     `(("ghc-mtl" ,ghc-mtl)))
     (home-page "https://hackage.haskell.org/package/STMonadTrans")
     (synopsis "Monad transformer version of the ST monad")
     (description
@@ -6837,7 +7073,7 @@ the @code{mtl-tf} package.")
 (define-public ghc-colour
 (package
   (name "ghc-colour")
-  (version "2.3.3")
+  (version "2.3.4")
   (source
    (origin
      (method url-fetch)
@@ -6846,7 +7082,11 @@ the @code{mtl-tf} package.")
            version ".tar.gz"))
      (sha256
       (base32
-       "1qmn1778xzg07jg9nx4k1spdz2llivpblf6wwrps1qpqjhsac5cd"))))
+       "1sy51nz096sv91nxqk6yk7b92b5a40axv9183xakvki2nc09yhqg"))))
+  (arguments
+   ;; The tests for this package have the following dependency cycle:
+   ;; ghc-test-framework -> ghc-ansi-terminal -> ghc-colour.
+   `(#:tests? #f))
   (build-system haskell-build-system)
   (home-page "https://www.haskell.org/haskellwiki/Colour")
   (synopsis "Model for human colour perception")
@@ -6859,7 +7099,7 @@ supported.  A module of colour names (\"Data.Colour.Names\") is provided.")
 (define-public ghc-wl-pprint-text
   (package
     (name "ghc-wl-pprint-text")
-    (version "1.1.0.4")
+    (version "1.2.0.0")
     (source
      (origin
        (method url-fetch)
@@ -6868,10 +7108,11 @@ supported.  A module of colour names (\"Data.Colour.Names\") is provided.")
              version ".tar.gz"))
        (sha256
         (base32
-         "1xgizzimfw17mpmw2afvmnvyag976j8ggn7k5r564rkw9f0m6bgz"))))
+         "0g3w92rad6x5appfb22rbzcas2ix2h0hy91sdxhq8a4a5cnlrpa0"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-text" ,ghc-text)))
+     `(("ghc-base-compat" ,ghc-base-compat)
+       ("ghc-text" ,ghc-text)))
     (home-page "https://hackage.haskell.org/package/wl-pprint-text")
     (synopsis "Wadler/Leijen Pretty Printer for Text values")
     (description
@@ -6893,7 +7134,8 @@ supported.  A module of colour names (\"Data.Colour.Names\") is provided.")
          "0ln1szgfy8fa78l3issq4fx3aqnnd54w3cb4wssrfi48vd5rkfjm"))))
     (build-system haskell-build-system)
     (arguments
-     `(#:configure-flags (list "--allow-newer=QuickCheck")))
+     `(#:configure-flags (list "--allow-newer=QuickCheck"
+                               "--allow-newer=hspec")))
     (inputs
      `(("ghc-fgl" ,ghc-fgl)
        ("ghc-quickcheck" ,ghc-quickcheck)
@@ -6910,14 +7152,14 @@ for generating graph-like data structures.")
 (define-public ghc-graphviz
   (package
     (name "ghc-graphviz")
-    (version "2999.18.1.2")
+    (version "2999.20.0.2")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://hackage.haskell.org/package/"
                                   "graphviz/graphviz-" version ".tar.gz"))
               (sha256
                (base32
-                "1z453is01v0rnxlv6xx4iyaqv5vrp3bpz829mpv1a341sck2135h"))))
+                "0kj7ap0gnliviq2p8lscw1m06capnsa90vpvcys24nqy5nw2wrp7"))))
     (build-system haskell-build-system)
     (arguments
      `(#:configure-flags (list "--allow-newer=QuickCheck")))
@@ -6931,6 +7173,10 @@ for generating graph-like data structures.")
        ("ghc-temporary" ,ghc-temporary)
        ("ghc-text" ,ghc-text)
        ("ghc-wl-pprint-text" ,ghc-wl-pprint-text)))
+    (native-inputs
+     `(("ghc-hspec" ,ghc-hspec)
+       ("graphviz" ,graphviz)
+       ("hspec-discover" ,hspec-discover)))
     (home-page "https://hackage.haskell.org/package/graphviz")
     (synopsis "Bindings to Graphviz for graph visualisation")
     (description
@@ -6967,7 +7213,6 @@ and edge labels with positional information, etc.
     (build-system haskell-build-system)
     (inputs
      `(("ghc-hashable" ,ghc-hashable)
-       ("ghc-mtl" ,ghc-mtl)
        ("ghc-transformers-compat" ,ghc-transformers-compat)))
     (home-page "https://github.com/ekmett/constraints/")
     (synopsis "Constraint manipulation")
@@ -6998,7 +7243,6 @@ a vocabulary for working with them.")
        ("ghc-monad-control" ,ghc-monad-control)
        ("ghc-constraints" ,ghc-constraints)
        ("ghc-hunit" ,ghc-hunit)
-       ("ghc-mtl" ,ghc-mtl)
        ("ghc-tasty" ,ghc-tasty)
        ("ghc-tasty-hunit" ,ghc-tasty-hunit)
        ("ghc-tasty-th" ,ghc-tasty-th)))
@@ -7075,7 +7319,7 @@ which can't be decoded in the current locale encoding.")
 (define-public ghc-shelly
   (package
     (name "ghc-shelly")
-    (version "1.7.0.1")
+    (version "1.8.1")
     (source
      (origin
        (method url-fetch)
@@ -7084,11 +7328,10 @@ which can't be decoded in the current locale encoding.")
              version ".tar.gz"))
        (sha256
         (base32
-         "0a4ngy8jqcscqhimgiyz7f9kqm23is7x7gyjxr0j6iq1dy57ahq3"))))
+         "023fbvbqs5gdwm30j5517gbdcc7fvz0md70dgwgpypkskj3i926y"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-mtl" ,ghc-mtl)
-       ("ghc-unix-compat" ,ghc-unix-compat)
+     `(("ghc-unix-compat" ,ghc-unix-compat)
        ("ghc-system-filepath-bootstrap" ,ghc-system-filepath-bootstrap)
        ("ghc-system-fileio-bootstrap" ,ghc-system-fileio-bootstrap)
        ("ghc-monad-control" ,ghc-monad-control)
@@ -7100,7 +7343,8 @@ which can't be decoded in the current locale encoding.")
        ("ghc-async" ,ghc-async)
        ("ghc-transformers-base" ,ghc-transformers-base)
        ("ghc-hunit" ,ghc-hunit)
-       ("ghc-hspec" ,ghc-hspec)))
+       ("ghc-hspec" ,ghc-hspec)
+       ("ghc-hspec-contrib" ,ghc-hspec-contrib)))
     (home-page "https://github.com/yesodweb/Shelly.hs")
     (synopsis "Shell-like (systems) programming in Haskell")
     (description
@@ -7780,8 +8024,7 @@ files in Haskell.")
                 "0as5gvlh6pi2gflakp695qnlizyyp059dqrhvjl4gjxalja6xjnp"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-mtl" ,ghc-mtl)
-       ("ghc-network" ,ghc-network)
+     `(("ghc-network" ,ghc-network)
        ("ghc-old-locale" ,ghc-old-locale)))
     (native-inputs
      `(("ghc-hunit" ,ghc-hunit)))
@@ -7826,7 +8069,6 @@ handled safely, this is what you're left with.")
     (build-system haskell-build-system)
     (inputs
      `(("ghc-syb" ,ghc-syb)
-       ("ghc-mtl" ,ghc-mtl)
        ("ghc-text" ,ghc-text)
        ("ghc-parsec" ,ghc-parsec)))
     (home-page "https://hackage.haskell.org/package/json")
@@ -7891,7 +8133,6 @@ generated SQL and optimize it for your backend.")
     (inputs
      `(("ghc-quickcheck" ,ghc-quickcheck)
        ("ghc-json" ,ghc-json)
-       ("ghc-mtl" ,ghc-mtl)
        ("ghc-parsec" ,ghc-parsec)
        ("ghc-regex-tdfa" ,ghc-regex-tdfa)))
     (home-page "https://github.com/koalaman/shellcheck")
@@ -8211,9 +8452,19 @@ between 2 and 3 times faster than the Mersenne Twister.")
         (base32
          "0w4hf598lpxfg58rnimcqxrbnpqq2jmpjx82qa5md3q6r90hlipd"))))
     (build-system haskell-build-system)
+    ;; The limits have been adjusted in a revision of the cabal file.
+    (arguments
+     '(#:configure-flags (list "--allow-newer=vector")
+       #:phases
+       (modify-phases %standard-phases
+         ;; The tests cannot be built due to type errors.
+         (add-after 'unpack 'do-not-build-quickcheck-tests
+           (lambda _
+             (substitute* "vector-algorithms.cabal"
+               (("\\!flag\\(properties\\)") "True"))
+             #t)))))
     (inputs
      `(("ghc-vector" ,ghc-vector)
-       ("ghc-mtl" ,ghc-mtl)
        ("ghc-mwc-random" ,ghc-mwc-random)))
     (native-inputs
      `(("ghc-quickcheck" ,ghc-quickcheck)))
@@ -8289,8 +8540,7 @@ module for more details.")
     (build-system haskell-build-system)
     (inputs `(("ghc-abstract-par" ,ghc-abstract-par)
               ("ghc-cereal" ,ghc-cereal)
-              ("ghc-random" ,ghc-random)
-              ("ghc-mtl" ,ghc-mtl)))
+              ("ghc-random" ,ghc-random)))
     (home-page "https://github.com/simonmar/monad-par")
     (synopsis "Combinators and extra features for Par monads for Haskell")
     (description "This Haskell package provides additional data structures,
@@ -8352,8 +8602,7 @@ This package also includes a simple reference implementation based on
               ("ghc-abstract-deque" ,ghc-abstract-deque)
               ("ghc-monad-par-extras" ,ghc-monad-par-extras)
               ("ghc-mwc-random" ,ghc-mwc-random)
-              ("ghc-parallel" ,ghc-parallel)
-              ("ghc-mtl" ,ghc-mtl)))
+              ("ghc-parallel" ,ghc-parallel)))
     (native-inputs `(("ghc-quickcheck" ,ghc-quickcheck)
                      ("ghc-hunit" ,ghc-hunit)
                      ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
@@ -8456,7 +8705,7 @@ classy-prelude.")
 (define-public ghc-base-prelude
   (package
     (name "ghc-base-prelude")
-    (version "1.2.0.1")
+    (version "1.3")
     (source
      (origin
        (method url-fetch)
@@ -8465,7 +8714,7 @@ classy-prelude.")
                            "base-prelude-" version ".tar.gz"))
        (sha256
         (base32
-         "17hivs7lmsglagdlzxd9q9zsddmgqin2788mpq911zwnb57lj6l1"))))
+         "1zk728sd09hh2r4xwz4lazsrrgg5cshydn64932sm0vckplndk73"))))
     (build-system haskell-build-system)
     (home-page "https://github.com/nikita-volkov/base-prelude")
     (synopsis "The most complete prelude formed solely from the Haskell's base
@@ -8546,7 +8795,6 @@ statically known size.")
          "1h1nhswrcmhy3mq6vd530p0df51fcnnf4csbwnljar7cf0mb2h6y"))))
     (build-system haskell-build-system)
     (inputs `(("ghc-transformers-compat" ,ghc-transformers-compat)
-              ("ghc-mtl" ,ghc-mtl)
               ("ghc-primitive" ,ghc-primitive)
               ("ghc-fail" ,ghc-fail)
               ("ghc-random" ,ghc-random)))
@@ -8575,7 +8823,6 @@ which consume random values.")
               ("ghc-free" ,ghc-free)
               ("ghc-monad-control" ,ghc-monad-control)
               ("ghc-manodrandom" ,ghc-monadrandom)
-              ("ghc-mtl" ,ghc-mtl)
               ("ghc-mmorph" ,ghc-mmorph)
               ("ghc-profunctors" ,ghc-profunctors)
               ("ghc-semigroups" ,ghc-semigroups)
@@ -8643,7 +8890,8 @@ IPv4, IPv6 and MAC addresses.")
          "1zdka5jnm1h6k36w3nr647yf3b5lqb336g3fkprhd6san9x52xlj"))))
     (build-system haskell-build-system)
     (arguments
-     `(#:configure-flags (list "--allow-newer=QuickCheck")))
+     `(#:configure-flags (list "--allow-newer=QuickCheck"
+                               "--allow-newer=HUnit")))
     (inputs `(("ghc-hashable" ,ghc-hashable)
               ("ghc-random" ,ghc-random)
               ("ghc-text" ,ghc-text)))
@@ -8675,7 +8923,8 @@ functions.")
          "09xhk42yhxvqmka0iqrv3338asncz8cap3j0ic0ps896f2581b6z"))))
     (build-system haskell-build-system)
     (arguments
-     `(#:configure-flags (list "--allow-newer=QuickCheck")))
+     `(#:configure-flags (list "--allow-newer=QuickCheck"
+                               "--allow-newer=HUnit")))
     (inputs `(("ghc-cryptohash-sha1" ,ghc-cryptohash-sha1)
               ("ghc-cryptohash-md5" ,ghc-cryptohash-md5)
               ("ghc-entropy" ,ghc-entropy)
@@ -8722,7 +8971,6 @@ parsing and printing @dfn{Universally Unique Identifiers} or UUIDs.")
               ("ghc-contravariant" ,ghc-contravariant)
               ("ghc-contravariant-extras" ,ghc-contravariant-extras)
               ("ghc-semigroups" ,ghc-semigroups)
-              ("ghc-mtl" ,ghc-mtl)
               ("ghc-either" ,ghc-either)
               ("ghc-fail" ,ghc-fail)
               ("ghc-base-prelude" ,ghc-base-prelude)))
@@ -8821,7 +9069,7 @@ and are often as efficient as hand-written folds.")
 (define-public ghc-mono-traversable
   (package
     (name "ghc-mono-traversable")
-    (version "1.0.2.1")
+    (version "1.0.9.0")
     (source
      (origin
        (method url-fetch)
@@ -8830,7 +9078,7 @@ and are often as efficient as hand-written folds.")
                            "mono-traversable-" version ".tar.gz"))
        (sha256
         (base32
-         "0smirpwika7d5a98h20jr9jqg41n7vqfy7k31crmn449qfig9ljf"))))
+         "0180ks0dyvpk1r20w5jw2w2n79mjnk69n9vhspaxzlyxqgim5psa"))))
     (build-system haskell-build-system)
     (inputs `(("ghc-unordered-containers" ,ghc-unordered-containers)
               ("ghc-hashable" ,ghc-hashable)
@@ -8856,7 +9104,7 @@ data structures as non-empty.")
 (define-public ghc-conduit-combinators
   (package
     (name "ghc-conduit-combinators")
-    (version "1.1.1")
+    (version "1.3.0")
     (source
      (origin
        (method url-fetch)
@@ -8865,7 +9113,7 @@ data structures as non-empty.")
                            "conduit-combinators-" version ".tar.gz"))
        (sha256
         (base32
-         "0609miq03lq9visfb2dqqsxghmvgzm24pq39mqby1jnnah6yh8m0"))))
+         "1lz70vwp4y4lpsivxl0cshq7aq3968rh48r6rjvpyaj2l0bdj5wp"))))
     (build-system haskell-build-system)
     (inputs `(("ghc-conduit" ,ghc-conduit)
               ("ghc-conduit-extra" ,ghc-conduit-extra)
@@ -8884,7 +9132,6 @@ data structures as non-empty.")
               ("ghc-mono-traversable" ,ghc-mono-traversable)))
     (native-inputs `(("ghc-hspec" ,ghc-hspec)
                      ("ghc-silently" ,ghc-silently)
-                     ("ghc-mtl" ,ghc-mtl)
                      ("ghc-safe" ,ghc-safe)
                      ("ghc-quickcheck" ,ghc-quickcheck)))
     (home-page "https://github.com/snoyberg/mono-traversable")
@@ -8923,7 +9170,6 @@ as well as a convenient Conduit module.")
        ("ghc-http-conduit" ,ghc-http-conduit)
        ("ghc-http-types" ,ghc-http-types)
        ("ghc-monad-control" ,ghc-monad-control)
-       ("ghc-mtl" ,ghc-mtl)
        ("ghc-network" ,ghc-network)
        ("ghc-old-locale" ,ghc-old-locale)
        ("ghc-safe" ,ghc-safe)
@@ -8955,7 +9201,7 @@ Web Services.")
 (define-public ghc-basement
   (package
     (name "ghc-basement")
-    (version "0.0.7")
+    (version "0.0.8")
     (source
      (origin
        (method url-fetch)
@@ -8963,7 +9209,7 @@ Web Services.")
                            "basement/basement-" version ".tar.gz"))
        (sha256
         (base32
-         "0w2g4k9bs2ph00p0fgrmcrng8ypdz6xis0r10g380nzkg2rvj0dm"))))
+         "194jw567di4q2758943q9rrwkbf9gl261my7qc21i9xhyabipx67"))))
     (build-system haskell-build-system)
     (home-page "https://github.com/haskell-foundation/foundation")
     (synopsis "Basic primitives for Foundation starter pack")
@@ -9076,7 +9322,6 @@ operators for looping.")
               ("ghc-transformers-base" ,ghc-transformers-base)
               ("ghc-monad-control" ,ghc-monad-control)
               ("ghc-monad-loops" ,ghc-monad-loops)
-              ("ghc-mtl" ,ghc-mtl)
               ("ghc-blaze-builder" ,ghc-blaze-builder)
               ("ghc-exceptions" ,ghc-exceptions)))
     (home-page "https://github.com/kazu-yamamoto/logger")
@@ -9194,31 +9439,6 @@ connections.")
 from aeson.")
     (license license:bsd-3)))
 
-(define-public ghc-th-lift-instances
-  (package
-    (name "ghc-th-lift-instances")
-    (version "0.1.11")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (string-append "https://hackage.haskell.org/package/"
-                           "th-lift-instances-" version "/"
-                           "th-lift-instances-" version ".tar.gz"))
-       (sha256
-        (base32
-         "1f56cp6ckcalld5jchv0kxpjkwcsixd7smd0g7r8cg67ppx6m90x"))))
-    (build-system haskell-build-system)
-    (inputs `(("ghc-th-lift" ,ghc-th-lift)
-              ("ghc-vector" ,ghc-vector)
-              ("ghc-text" ,ghc-text)))
-    (native-inputs `(("ghc-quickcheck" ,ghc-quickcheck)))
-    (home-page "https://github.com/bennofs/th-lift-instances")
-    (synopsis "Lift instances for template-haskell for common data types")
-    (description "Most data types in the Haskell platform do not have Lift
-instances.  This package provides orphan instances for containers, text,
-bytestring and vector.")
-    (license license:bsd-3)))
-
 (define-public ghc-generics-sop
   (package
     (name "ghc-generics-sop")
@@ -9276,26 +9496,6 @@ each constructor are represented using an n-ary product.")
 parser that uses ByteStrings for parsing and representing the URI data.")
     (license license:bsd-3)))
 
-(define-public ghc-time-locale-compat
-  (package
-    (name "ghc-time-locale-compat")
-    (version "0.1.1.3")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (string-append "https://hackage.haskell.org/package/"
-                           "time-locale-compat-" version "/"
-                           "time-locale-compat-" version ".tar.gz"))
-       (sha256
-        (base32
-         "1vdcfr2hp9qh3ag90x6ikbdf42wiqpdylnplffna54bpnilbyi4i"))))
-    (build-system haskell-build-system)
-    (home-page "https://github.com/khibino/haskell-time-locale-compat")
-    (synopsis "Compatibility of TimeLocale between old-locale and time-1.5")
-    (description "This Haskell package contains wrapped name module for
-TimeLocale.")
-    (license license:bsd-3)))
-
 (define-public ghc-http-api-data
   (package
     (name "ghc-http-api-data")
@@ -9362,7 +9562,6 @@ Haskell data types to and from HTTP API data.")
               ("ghc-blaze-html" ,ghc-blaze-html)
               ("ghc-blaze-markup" ,ghc-blaze-markup)
               ("ghc-silently" ,ghc-silently)
-              ("ghc-mtl" ,ghc-mtl)
               ("ghc-fast-logger" ,ghc-fast-logger)
               ("ghc-scientific" ,ghc-scientific)
               ("ghc-tagged" ,ghc-tagged)))
@@ -9642,7 +9841,6 @@ address string against RFC 5322.")
    (inputs `(("ghc-cereal" ,ghc-cereal)
              ("cabal-doctest" ,cabal-doctest)
              ("ghc-doctest" ,ghc-doctest-0.13)
-             ("ghc-mtl" ,ghc-mtl)
              ("ghc-scientific" ,ghc-scientific)
              ("ghc-text" ,ghc-text)
              ("ghc-transformers-compat" ,ghc-transformers-compat)
@@ -9656,4 +9854,239 @@ serialization code.")
    (home-page "https://hackage.haskell.org/package/bytes")
    (license license:bsd-3)))
 
+(define-public ghc-disk-free-space
+  (package
+    (name "ghc-disk-free-space")
+    (version "0.1.0.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://hackage.haskell.org/package/"
+                           "disk-free-space/disk-free-space-"
+                           version ".tar.gz"))
+       (sha256
+        (base32
+         "07rqj8k1vh3cykq9yidpjxhgh1f7vgmjs6y1nv5kq2217ff4yypi"))))
+    (build-system haskell-build-system)
+    (home-page "https://github.com/redneb/disk-free-space")
+    (synopsis "Retrieve information about disk space usage")
+    (description "A cross-platform library for retrieving information about
+disk space usage.")
+    (license license:bsd-3)))
+
+(define-public ghc-xdg-basedir
+  (package
+    (name "ghc-xdg-basedir")
+    (version "0.2.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "https://hackage.haskell.org/package/xdg-basedir/"
+             "xdg-basedir-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0azlzaxp2dn4l1nr7shsxah2magk1szf6fx0mv75az00qsjw6qg4"))))
+    (build-system haskell-build-system)
+    (home-page "http://github.com/willdonnelly/xdg-basedir")
+    (synopsis "XDG Base Directory library for Haskell")
+    (description "This package provides a library implementing the XDG Base Directory spec.")
+    (license license:bsd-3)))
+
+(define-public ghc-errorcall-eq-instance
+  (package
+    (name "ghc-errorcall-eq-instance")
+    (version "0.3.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://hackage.haskell.org/package/"
+                           "errorcall-eq-instance/errorcall-eq-instance-"
+                           version ".tar.gz"))
+       (sha256
+        (base32
+         "0hqw82m8bbrxy5vgdwb83bhzdx070ibqrm9rshyja7cb808ahijm"))))
+    (build-system haskell-build-system)
+    (inputs
+     `(("ghc-base-orphans" ,ghc-base-orphans)))
+    (native-inputs
+     `(("ghc-quickcheck" ,ghc-quickcheck)
+       ("ghc-hspec" ,ghc-hspec)
+       ("hspec-discover" ,hspec-discover)))
+    (home-page "http://hackage.haskell.org/package/errorcall-eq-instance")
+    (synopsis "Orphan Eq instance for ErrorCall")
+    (description
+     "Prior to @code{base-4.7.0.0} there was no @code{Eq} instance for @code{ErrorCall}.
+This package provides an orphan instance.")
+    (license license:expat)))
+
+(define-public ghc-missingh
+  (package
+    (name "ghc-missingh")
+    (version "1.4.0.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://hackage.haskell.org/package/MissingH/"
+                           "MissingH-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0wcvgrmav480w7nf4bl14yi0jq2yzanysxwzwas9hpb28vyjlgr8"))))
+    (build-system haskell-build-system)
+    ;; Tests require the unmaintained testpack package, which depends on the
+    ;; outdated QuickCheck version 2.7, which can no longer be built with
+    ;; recent versions of GHC and Haskell libraries.
+    (arguments '(#:tests? #f))
+    (inputs
+     `(("ghc-network" ,ghc-network)
+       ("ghc-parsec" ,ghc-parsec)
+       ("ghc-hunit" ,ghc-hunit)
+       ("ghc-regex-compat" ,ghc-regex-compat)
+       ("ghc-hslogger" ,ghc-hslogger)
+       ("ghc-random" ,ghc-random)
+       ("ghc-old-time" ,ghc-old-time)
+       ("ghc-old-locale" ,ghc-old-locale)))
+    (native-inputs
+     `(("ghc-errorcall-eq-instance" ,ghc-errorcall-eq-instance)
+       ("ghc-quickcheck" ,ghc-quickcheck)
+       ("ghc-hunit" ,ghc-hunit)))
+    (home-page "http://software.complete.org/missingh")
+    (synopsis "Large utility library")
+    (description
+     "MissingH is a library of all sorts of utility functions for Haskell
+programmers.  It is written in pure Haskell and thus should be extremely
+portable and easy to use.")
+    (license license:bsd-3)))
+
+(define-public ghc-intervalmap
+  (package
+    (name "ghc-intervalmap")
+    (version "0.6.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://hackage.haskell.org/package/IntervalMap/"
+                           "IntervalMap-" version ".tar.gz"))
+       (sha256
+        (base32
+         "06hin9wf1by8aqa7820fsi2339bh82184frkwz3jsb9sqa0hszcg"))))
+    (build-system haskell-build-system)
+    (native-inputs
+     `(("ghc-quickcheck" ,ghc-quickcheck)))
+    (home-page "http://www.chr-breitkopf.de/comp/IntervalMap")
+    (synopsis "Containers for intervals, with efficient search")
+    (description
+     "This package provides ordered containers of intervals, with efficient
+search for all keys containing a point or overlapping an interval.  See the
+example code on the home page for a quick introduction.")
+    (license license:bsd-3)))
+
+(define-public ghc-operational
+  (package
+    (name "ghc-operational")
+    (version "0.2.3.5")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://hackage.haskell.org/package/operational/"
+                           "operational-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1x2abg2q9d26h1vzj40r6k7k3gqgappbs4g9d853vvg77837km4i"))))
+    (build-system haskell-build-system)
+    (inputs
+     `(("ghc-random" ,ghc-random)))
+    (home-page "http://wiki.haskell.org/Operational")
+    (synopsis "Implementation of difficult monads made easy with operational semantics")
+    (description
+     "This library makes it easy to implement monads with tricky control
+flow. This is useful for: writing web applications in a sequential style,
+programming games with a uniform interface for human and AI players and easy
+replay capababilities, implementing fast parser monads, designing monadic
+DSLs, etc.")
+    (license license:bsd-3)))
+
+(define-public ghc-gtk2hs-buildtools
+  (package
+    (name "ghc-gtk2hs-buildtools")
+    (version "0.13.4.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://hackage.haskell.org/package/"
+                           "gtk2hs-buildtools/gtk2hs-buildtools-"
+                           version ".tar.gz"))
+       (sha256
+        (base32
+         "0yg6xmylgpylmnh5g33qwwn5x9bqckdvvv4czqzd9vrr12lnnghg"))))
+    (build-system haskell-build-system)
+    (inputs
+     `(("ghc-random" ,ghc-random)
+       ("ghc-hashtables" ,ghc-hashtables)))
+    (native-inputs
+     `(("ghc-alex" ,ghc-alex)
+       ("ghc-happy" ,ghc-happy)))
+    (home-page "http://projects.haskell.org/gtk2hs/")
+    (synopsis "Tools to build the Gtk2Hs suite of user interface libraries")
+    (description
+     "This package provides a set of helper programs necessary to build the
+Gtk2Hs suite of libraries. These tools include a modified c2hs binding tool
+that is used to generate FFI declarations, a tool to build a type hierarchy
+that mirrors the C type hierarchy of GObjects found in glib, and a generator
+for signal declarations that are used to call back from C to Haskell. These
+tools are not needed to actually run Gtk2Hs programs.")
+    (license license:gpl2)))
+
+(define-public ghc-chart
+  (package
+    (name "ghc-chart")
+    (version "1.8.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://hackage.haskell.org/package/Chart/"
+                           "Chart-" version ".tar.gz"))
+       (sha256
+        (base32
+         "13s64fhb2pmkdmx5bkgbgcn25qjihs364fvr47a1dw25f804kiy1"))))
+    (build-system haskell-build-system)
+    (inputs
+     `(("ghc-old-locale" ,ghc-old-locale)
+       ("ghc-lens" ,ghc-lens)
+       ("ghc-colour" ,ghc-colour)
+       ("ghc-data-default-class" ,ghc-data-default-class)
+       ("ghc-operational" ,ghc-operational)
+       ("ghc-vector" ,ghc-vector)))
+    (home-page "https://github.com/timbod7/haskell-chart/wiki")
+    (synopsis "Library for generating 2D charts and plots")
+    (description
+     "This package provides a library for generating 2D charts and plots, with
+backends provided by the @code{Cairo} and @code{Diagrams} libraries.")
+    (license license:bsd-3)))
+
+(define-public ghc-wcwidth
+  (package
+    (name "ghc-wcwidth")
+    (version "0.0.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://hackage.haskell.org/package/wcwidth/wcwidth-"
+             version ".tar.gz"))
+       (sha256
+        (base32
+         "1n1fq7v64b59ajf5g50iqj9sa34wm7s2j3viay0kxpmvlcv8gipz"))))
+    (build-system haskell-build-system)
+    (inputs
+     `(("ghc-setlocale" ,ghc-setlocale)
+       ("ghc-utf8-string" ,ghc-utf8-string)
+       ("ghc-attoparsec" ,ghc-attoparsec)))
+    (home-page "https://github.com/solidsnack/wcwidth/")
+    (synopsis "Haskell bindings to wcwidth")
+    (description "This package provides Haskell bindings to your system's
+native wcwidth and a command line tool to examine the widths assigned by it.
+The command line tool can compile a width table to Haskell code that assigns
+widths to the Char type.")
+    (license license:bsd-3)))
+
 ;;; haskell.scm ends here