summary refs log tree commit diff
path: root/gnu/packages/haskell.scm
diff options
context:
space:
mode:
authorMark H Weaver <mhw@netris.org>2018-02-13 13:17:15 -0500
committerMark H Weaver <mhw@netris.org>2018-02-13 13:17:15 -0500
commit288b8fd5e97c32d44a49612dbeef854c05ebc373 (patch)
tree8a5021c9af2497c560ff94d37b8217d6187d8dbd /gnu/packages/haskell.scm
parenta7fb29866520d5661e0ac8e47957c91a2a43e11e (diff)
parentacff6aa00473befac75f8120fc4299f4f265c258 (diff)
downloadguix-288b8fd5e97c32d44a49612dbeef854c05ebc373.tar.gz
Merge branch 'master' into core-updates
Diffstat (limited to 'gnu/packages/haskell.scm')
-rw-r--r--gnu/packages/haskell.scm1388
1 files changed, 1062 insertions, 326 deletions
diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm
index 5db0c79073..b5950051a5 100644
--- a/gnu/packages/haskell.scm
+++ b/gnu/packages/haskell.scm
@@ -6,7 +6,7 @@
 ;;; Copyright © 2016, 2018 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2016, 2017 ng0 <ng0@infotropique.org>
 ;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
-;;; Copyright © 2015, 2016, 2017 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2015, 2016, 2017, 2018 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2016, 2017 David Craven <david@craven.ch>
 ;;; Copyright © 2017 Danny Milosavljevic <dannym@scratchpost.org>
 ;;; Copyright © 2017 Peter Mikkelsen <petermikkelsen10@gmail.com>
@@ -136,7 +136,7 @@ top of CLISP.")
 ;;
 ;; - Test posix010 tries to check the existence of a user on the system:
 ;;   getUserEntryForName: does not exist (no such user)
-(define-public ghc
+(define-public ghc-7
   (package
     (name "ghc")
     (version "7.10.2")
@@ -349,7 +349,7 @@ interactive environment for the functional language Haskell.")
        ("python" ,python-2)                ; for tests
        ("ghostscript" ,ghostscript)        ; for tests
        ;; GHC is built with GHC.
-       ("ghc-bootstrap" ,ghc)))
+       ("ghc-bootstrap" ,ghc-7)))
     (arguments
      `(#:test-target "test"
        ;; We get a smaller number of test failures by disabling parallel test
@@ -426,6 +426,8 @@ interactive environment for the functional language Haskell.")
 interactive environment for the functional language Haskell.")
     (license license:bsd-3)))
 
+(define-public ghc ghc-8)
+
 (define-public ghc-hostname
   (package
     (name "ghc-hostname")
@@ -475,7 +477,7 @@ determine the hostname.")
 (define-public ghc-prelude-extras
   (package
     (name "ghc-prelude-extras")
-    (version "0.4.0.2")
+    (version "0.4.0.3")
     (source
      (origin
        (method url-fetch)
@@ -485,7 +487,7 @@ determine the hostname.")
              ".tar.gz"))
        (sha256
         (base32
-         "1q7mj9hysy747vimnlyrwsk1wb2axymxixa76fwcbcnmz3fi4llp"))))
+         "0xzqdf3nl2h0ra4gnslm1m1nsxlsgc0hh6ky3vn578vh11zhifq9"))))
     (build-system haskell-build-system)
     (home-page "https://github.com/ekmett/prelude-extras")
     (synopsis "Higher order versions of Prelude classes")
@@ -497,7 +499,7 @@ reduce @code{UndecidableInstances}.")
 (define-public ghc-data-default
   (package
     (name "ghc-data-default")
-    (version "0.5.3")
+    (version "0.7.1.1")
     (source
      (origin
        (method url-fetch)
@@ -506,7 +508,7 @@ reduce @code{UndecidableInstances}.")
              version
              ".tar.gz"))
        (sha256
-        (base32 "0d1hm0l9kim3kszshr4msmgzizrzha48gz2kb7b61p7n3gs70m7c"))))
+        (base32 "04d5n8ybmcxba9qb6h389w9zfq1lvj81b82jh6maqp6pkhkmvydh"))))
     (build-system haskell-build-system)
     (inputs
      `(("ghc-data-default-class"
@@ -530,7 +532,7 @@ packages.")
 (define-public ghc-data-default-class
   (package
     (name "ghc-data-default-class")
-    (version "0.0.1")
+    (version "0.1.2.0")
     (source
      (origin
        (method url-fetch)
@@ -538,7 +540,7 @@ packages.")
              "https://hackage.haskell.org/package/data-default-class/"
              "data-default-class-" version ".tar.gz"))
        (sha256
-        (base32 "0ccgr3jllinchqhw3lsn73ic6axk4196if5274rr1rghls0fxj5d"))))
+        (base32 "0miyjz8d4jyvqf2vp60lyfbnflx6cj2k8apmm9ly1hq0y0iv80ag"))))
     (build-system haskell-build-system)
     (home-page "https://hackage.haskell.org/package/data-default-class")
     (synopsis "Types with default values")
@@ -549,7 +551,7 @@ packages.")
 (define-public ghc-data-default-instances-base
   (package
     (name "ghc-data-default-instances-base")
-    (version "0.0.1")
+    (version "0.1.0.1")
     (source
      (origin
        (method url-fetch)
@@ -558,7 +560,7 @@ packages.")
              "data-default-instances-base/"
              "data-default-instances-base-" version ".tar.gz"))
        (sha256
-        (base32 "1832nq6by91f1iw73ycvkbgn8kpra83pvf2q61hy47xffh0zy4pb"))))
+        (base32 "0ym1sw3ssdzzifxxhh76qlv8kkmb2iclc158incv1dklyr9y8kw4"))))
     (build-system haskell-build-system)
     (inputs
      `(("ghc-data-default-class" ,ghc-data-default-class)))
@@ -638,7 +640,7 @@ nothing.")
 (define-public ghc-haddock-library
   (package
     (name "ghc-haddock-library")
-    (version "1.2.1")
+    (version "1.4.3")
     (source
      (origin
        (method url-fetch)
@@ -648,17 +650,16 @@ nothing.")
              ".tar.gz"))
        (sha256
         (base32
-         "0mhh2ppfhrvvi9485ipwbkv2fbgj35jvz3la02y3jlvg5ffs1c8g"))))
+         "0ns4bpf6whmcfl0cm2gx2c73if416x4q3ac4l4qm8w84h0zpcr7p"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-base-compat" ,ghc-base-compat)
+     `(("ghc-base-compat" ,ghc-base-compat)))
+    (native-inputs
+     `(("hspec-discover" ,hspec-discover)
        ("ghc-hspec" ,ghc-hspec)
        ("ghc-quickcheck" ,ghc-quickcheck)))
-    (native-inputs
-     `(("hspec-discover" ,hspec-discover)))
     (home-page "http://www.haskell.org/haddock/")
-    (synopsis
-     "Library exposing some functionality of Haddock")
+    (synopsis "Library exposing some functionality of Haddock")
     (description
      "Haddock is a documentation-generation tool for Haskell libraries.  These
 modules expose some functionality of it without pulling in the GHC dependency.
@@ -670,7 +671,8 @@ the ‘haddock’ package.")
 (define-public ghc-haddock-api
   (package
     (name "ghc-haddock-api")
-    (version "2.16.1")
+    ;; This is the last version to be supported by Cabal < 2.0
+    (version "2.17.4")
     (source
      (origin
        (method url-fetch)
@@ -680,21 +682,47 @@ the ‘haddock’ package.")
              ".tar.gz"))
        (sha256
         (base32
-         "1spd5axg1pdjv4dkdb5gcwjsc8gg37qi4mr2k2db6ayywdkis1p2"))))
+         "00fn6pzgg8xjbaw12d76jdqh2dbc5xy7miyz0x6kidvvar7i35ss"))))
     (build-system haskell-build-system)
     (inputs
      `(("ghc-paths" ,ghc-paths)
        ("ghc-haddock-library" ,ghc-haddock-library)))
+    (native-inputs
+     `(("ghc-quickcheck" ,ghc-quickcheck)
+       ("ghc-hspec" ,ghc-hspec)
+       ("hspec-discover" ,hspec-discover)))
     (home-page "http://www.haskell.org/haddock/")
     (synopsis "API for documentation-generation tool Haddock")
     (description "This package provides an API to Haddock, the
 documentation-generation tool for Haskell libraries.")
     (license license:bsd-3)))
 
+(define-public ghc-haddock-test
+  (package
+    (name "ghc-haddock-test")
+    (version "0.0.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://hackage.haskell.org/package/"
+                           "haddock-test/haddock-test-"
+                           version ".tar.gz"))
+       (sha256
+        (base32
+         "1ax8fnfrwx66csj952f3virxzapipan9da7z5l1zc12nqkifbs7w"))))
+    (build-system haskell-build-system)
+    (inputs
+     `(("ghc-xml" ,ghc-xml)
+       ("ghc-syb" ,ghc-syb)))
+    (home-page "http://www.haskell.org/haddock/")
+    (synopsis "Test utilities for Haddock")
+    (description "This package provides test utilities for Haddock.")
+    (license license:bsd-3)))
+
 (define-public ghc-haddock
   (package
     (name "ghc-haddock")
-    (version "2.16.1")
+    (version "2.17.4")
     (source
      (origin
        (method url-fetch)
@@ -704,12 +732,16 @@ documentation-generation tool for Haskell libraries.")
              ".tar.gz"))
        (sha256
         (base32
-         "1mnnvc5jqp6n6rj7xw8wdm0z2xp9fndkz11c8p3vbljsrcqd3v26"))))
+         "1z3h3v7w84dzsm47iavdppc2w899mr4c1agq9fzghgz902i0a655"))))
     (build-system haskell-build-system)
-    (arguments `(#:tests? #f)) ; FIXME: Tests break with GHC 7.10.2, fixed
-                               ; upstream.  See
-                               ; <https://github.com/haskell/haddock/issues/427>
+    ;; FIXME: Tests fail with this error:
+    ;; driver-test/Main.hs:4:1: error:
+    ;; Failed to load interface for ‘ResponseFileSpec’
+    (arguments `(#:tests? #f))
     (inputs `(("ghc-haddock-api" ,ghc-haddock-api)))
+    (native-inputs
+     `(("ghc-hspec" ,ghc-hspec)
+       ("ghc-haddock-test" ,ghc-haddock-test)))
     (home-page "http://www.haskell.org/haddock/")
     (synopsis
      "Documentation-generation tool for Haskell libraries")
@@ -802,7 +834,7 @@ tool lex or flex for C/C++.")
 (define-public ghc-cgi
   (package
     (name "ghc-cgi")
-    (version "3001.2.2.2")
+    (version "3001.3.0.2")
     (source
      (origin
        (method url-fetch)
@@ -812,17 +844,20 @@ tool lex or flex for C/C++.")
              ".tar.gz"))
        (sha256
         (base32
-         "0q1pxpa8gi42c0hsidcdkhk5xr5anfrvhqsn3iksr9c0rllhz193"))))
+         "1hbpplss1m4rdpm4ibip6fpimlhssqa14fl338kl2jbc463i64cj"))))
     (build-system haskell-build-system)
+    (arguments
+     `(#:configure-flags (list "--allow-newer=QuickCheck")))
     (inputs
      `(("ghc-parsec" ,ghc-parsec)
-       ("ghc-old-locale" ,ghc-old-locale)
-       ("ghc-old-time" ,ghc-old-time)
        ("ghc-exceptions" ,ghc-exceptions)
        ("ghc-multipart" ,ghc-multipart)
        ("ghc-network-uri" ,ghc-network-uri)
        ("ghc-network" ,ghc-network)
        ("ghc-mtl" ,ghc-mtl)))
+    (native-inputs
+     `(("ghc-doctest" ,ghc-doctest)
+       ("ghc-quickcheck" ,ghc-quickcheck)))
     (home-page
      "https://github.com/cheecheeo/haskell-cgi")
     (synopsis "Library for writing CGI programs")
@@ -897,10 +932,71 @@ specification in BNF, Happy generates Haskell code to parse the grammar.
 Happy works in a similar way to the yacc tool for C.")
     (license license:bsd-3)))
 
+(define-public ghc-haskell-lexer
+  (package
+    (name "ghc-haskell-lexer")
+    (version "1.0.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "https://hackage.haskell.org/package/haskell-lexer/haskell-lexer-"
+             version ".tar.gz"))
+       (sha256
+        (base32
+         "0rj3r1pk88hh3sk3mj61whp8czz5kpxhbc78xlr04bxwqjrjmm6p"))))
+    (build-system haskell-build-system)
+    (home-page "http://hackage.haskell.org/package/haskell-lexer")
+    (synopsis "Fully compliant Haskell 98 lexer")
+    (description
+     "This package provides a fully compliant Haskell 98 lexer.")
+    (license license:bsd-3)))
+
+(define-public ghc-pretty-show
+  (package
+    (name "ghc-pretty-show")
+    (version "1.6.12")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://hackage.haskell.org/package/pretty-show/"
+                           "pretty-show-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1fblcxw4z4ry14brin1mvwccs6hqqlhi7xhwv1f23szjq25cjacn"))))
+    (build-system haskell-build-system)
+    (inputs
+     `(("ghc-haskell-lexer" ,ghc-haskell-lexer)
+       ("ghc-happy" ,ghc-happy)))
+    (home-page "http://wiki.github.com/yav/pretty-show")
+    (synopsis "Tools for working with derived `Show` instances")
+    (description
+     "This package provides a library and an executable for working with
+derived @code{Show} instances.  By using the library, derived @code{Show}
+instances can be parsed into a generic data structure.  The @code{ppsh} tool
+uses the library to produce human-readable versions of @code{Show} instances,
+which can be quite handy for debugging Haskell programs.  We can also render
+complex generic values into an interactive Html page, for easier
+examination.")
+    (license license:expat)))
+
+(define-public ghc-pretty-show-for-haskell-src-exts
+  (package (inherit ghc-pretty-show)
+    (name "ghc-pretty-show")
+    (version "1.6.10")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://hackage.haskell.org/package/pretty-show/"
+                           "pretty-show-" version ".tar.gz"))
+       (sha256
+        (base32
+         "133s4l1gk46saf6ycm785rswycy8g3j0qqrv93b5wp8cp50kd0ww"))))))
+
 (define-public ghc-haskell-src-exts
   (package
     (name "ghc-haskell-src-exts")
-    (version "1.16.0.1")
+    (version "1.20.1")
     (source
      (origin
        (method url-fetch)
@@ -910,13 +1006,13 @@ Happy works in a similar way to the yacc tool for C.")
              ".tar.gz"))
        (sha256
         (base32
-         "1h8gjw5g92rvvzadqzpscg73x7ajvs1wlphrh27afim3scdd8frz"))))
+         "1jsjl9hja2dpcfq4mzlfpwyr6axwnwgacfb7aa070kz4lbygzaa8"))))
     (build-system haskell-build-system)
     (inputs
      `(("cpphs" ,cpphs)
-       ("ghc-mtl" ,ghc-mtl)
        ("ghc-happy" ,ghc-happy)
-       ("ghc-syb" ,ghc-syb)))
+       ("ghc-mtl" ,ghc-mtl)
+       ("ghc-pretty-show" ,ghc-pretty-show-for-haskell-src-exts)))
     (native-inputs
      `(("ghc-smallcheck" ,ghc-smallcheck)
        ("ghc-tasty" ,ghc-tasty)
@@ -931,10 +1027,58 @@ are supported.  Apart from these standard extensions, it also handles regular
 patterns as per the HaRP extension as well as HSX-style embedded XML syntax.")
     (license license:bsd-3)))
 
+(define-public ghc-haskell-src-exts-util
+  (package
+    (name "ghc-haskell-src-exts-util")
+    (version "0.2.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://hackage.haskell.org/package/"
+                           "haskell-src-exts-util/haskell-src-exts-util-"
+                           version ".tar.gz"))
+       (sha256
+        (base32
+         "14rhwcrdz3kfb69c64qn8kybl7wnpajrjlfz5p95ca4bva4mwclg"))))
+    (build-system haskell-build-system)
+    (inputs
+     `(("ghc-data-default" ,ghc-data-default)
+       ("ghc-haskell-src-exts" ,ghc-haskell-src-exts)
+       ("ghc-semigroups" ,ghc-semigroups)
+       ("ghc-uniplate" ,ghc-uniplate)))
+    (home-page "https://github.com/pepeiborra/haskell-src-exts-util")
+    (synopsis "Helper functions for working with haskell-src-exts trees")
+    (description
+     "This package provides helper functions for working with
+@code{haskell-src-exts} trees.")
+    (license license:bsd-3)))
+
+(define-public ghc-refact
+  (package
+    (name "ghc-refact")
+    (version "0.3.0.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://hackage.haskell.org/package/"
+                           "refact/refact-"
+                           version ".tar.gz"))
+       (sha256
+        (base32
+         "0v0zxcx29b8jxs2kgy9csykqcp8kzhdvyylw2xfwmj4pfxr2kl0a"))))
+    (build-system haskell-build-system)
+    (home-page "http://hackage.haskell.org/package/refact")
+    (synopsis "Specify refactorings to perform with apply-refact")
+    (description
+     "This library provides a datatype which can be interpreted by
+@code{apply-refact}.  It exists as a seperate library so that applications can
+specify refactorings without depending on GHC.")
+    (license license:bsd-3)))
+
 (define-public hlint
   (package
     (name "hlint")
-    (version "1.9.21")
+    (version "2.1")
     (source
      (origin
        (method url-fetch)
@@ -943,15 +1087,23 @@ patterns as per the HaRP extension as well as HSX-style embedded XML syntax.")
              "/" name "-" version ".tar.gz"))
        (sha256
         (base32
-         "14v3rdjjlml9nimdk7d5dvir2bw78ai49yylvms9lnzmw29s3546"))))
+         "13chm0dhh1fn2iy3flnh7ahc3yzh8q0v10qxwd1739sywhykayg9"))))
     (build-system haskell-build-system)
     (inputs
      `(("cpphs" ,cpphs)
+       ("ghc-unordered-containers" ,ghc-unordered-containers)
+       ("ghc-yaml" ,ghc-yaml)
+       ("ghc-vector" ,ghc-vector)
+       ("ghc-text" ,ghc-text)
+       ("ghc-data-default" ,ghc-data-default)
        ("ghc-cmdargs" ,ghc-cmdargs)
        ("ghc-haskell-src-exts" ,ghc-haskell-src-exts)
+       ("ghc-haskell-src-exts-util" ,ghc-haskell-src-exts-util)
        ("ghc-uniplate" ,ghc-uniplate)
        ("ghc-ansi-terminal" ,ghc-ansi-terminal)
        ("ghc-extra" ,ghc-extra)
+       ("ghc-refact" ,ghc-refact)
+       ("ghc-aeson" ,ghc-aeson)
        ("hscolour" ,hscolour)))
     (home-page "http://community.haskell.org/~ndm/hlint/")
     (synopsis "Suggest improvements for Haskell source code")
@@ -963,7 +1115,7 @@ unwanted suggestions, and to add your own custom suggestions.")
 (define-public ghc-resourcet
   (package
     (name "ghc-resourcet")
-    (version "1.1.6")
+    (version "1.1.7.5")
     (source
      (origin
        (method url-fetch)
@@ -973,7 +1125,7 @@ unwanted suggestions, and to add your own custom suggestions.")
              ".tar.gz"))
        (sha256
         (base32
-         "0zhsaaa4n8ry76vjih519a8npm2hrzk10d5asrgllcwpzmifl41y"))))
+         "0nj0gwfd05divpdn7m47gy6bpcrwn3zk81gc303k0smrbqi0xlq5"))))
     (build-system haskell-build-system)
     (inputs
      `(("ghc-transformers-base" ,ghc-transformers-base)
@@ -994,7 +1146,7 @@ code where you can safely allocate resources.")
 (define-public ghc-objectname
   (package
     (name "ghc-objectname")
-    (version "1.1.0.0")
+    (version "1.1.0.1")
     (source
      (origin
        (method url-fetch)
@@ -1004,7 +1156,7 @@ code where you can safely allocate resources.")
              ".tar.gz"))
        (sha256
         (base32
-         "0kh5fb9ykag6rfsm3f0bx3w323s18w2cyry34w5xgli5ncqimadg"))))
+         "046jm94rmm46cicd31pl54vdvfjvhd9ffbfycy2lxzc0fliyznvj"))))
     (build-system haskell-build-system)
     (home-page "https://hackage.haskell.org/package/ObjectName")
     (synopsis "Helper library for Haskell OpenGL")
@@ -1043,7 +1195,7 @@ award winning Linux port of \"Civilization: Call To Power.\"")
 (define-public ghc-sdl-mixer
   (package
     (name "ghc-sdl-mixer")
-    (version "0.6.1.1")
+    (version "0.6.2.0")
     (source
      (origin
        (method url-fetch)
@@ -1053,7 +1205,7 @@ award winning Linux port of \"Civilization: Call To Power.\"")
              ".tar.gz"))
        (sha256
         (base32
-         "0md3238hx79mxb9a7l43kg3b3d28x4mqvj0hjsbsh15ajnvy9x2z"))))
+         "1fhray79d80dk2aj9mx3ks05mm48sd832g8zgxli226jx471fs8r"))))
     (build-system haskell-build-system)
     (arguments
      `(#:configure-flags
@@ -1074,7 +1226,7 @@ MIDI, Ogg Vorbis, and SMPEG MP3 libraries.")
 (define-public ghc-sdl-image
   (package
     (name "ghc-sdl-image")
-    (version "0.6.1.1")
+    (version "0.6.1.2")
     (source
      (origin
        (method url-fetch)
@@ -1084,7 +1236,7 @@ MIDI, Ogg Vorbis, and SMPEG MP3 libraries.")
              ".tar.gz"))
        (sha256
         (base32
-         "1m02q2426qp8m8pzz2jkk4srk2vb3j3ickiaga5jx9rkkhz732zq"))))
+         "1ybdwlqi5nqzpsbh2md5mxhwmjn910iqysf6nykwjxlmvhcjk281"))))
     (build-system haskell-build-system)
     (arguments
      `(#:configure-flags
@@ -1121,10 +1273,30 @@ PNG, PNM, TGA, TIFF, XCF, XPM, XV.")
 computation library for Haskell.")
     (license license:bsd-3)))
 
+(define-public ghc-fixed
+  (package
+    (name "ghc-fixed")
+    (version "0.2.1.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://hackage.haskell.org/package/fixed/fixed-"
+                           version ".tar.gz"))
+       (sha256
+        (base32
+         "1qhmwx8iqshns0crmr9d2f8hm65jxbcp3dvv0c39v34ra7if3a94"))))
+    (build-system haskell-build-system)
+    (home-page "https://github.com/ekmett/fixed")
+    (synopsis "Signed 15.16 precision fixed point arithmetic")
+    (description
+     "This package provides functions for signed 15.16 precision fixed point
+arithmetic.")
+    (license license:bsd-3)))
+
 (define-public ghc-openglraw
   (package
     (name "ghc-openglraw")
-    (version "2.5.1.0")
+    (version "3.2.7.0")
     (source
      (origin
        (method url-fetch)
@@ -1134,10 +1306,11 @@ computation library for Haskell.")
              ".tar.gz"))
        (sha256
         (base32
-         "1kfq24mxg922ml3kkmym2qfpc56jbmrfbiix4rc2cxlwv05i191k"))))
+         "024aln102d1mmsdalq9jd5mmwjbnrb8gxcak73lybrc7q87kswk2"))))
     (build-system haskell-build-system)
     (inputs
      `(("ghc-half" ,ghc-half)
+       ("ghc-fixed" ,ghc-fixed)
        ("glu" ,glu)
        ("ghc-text" ,ghc-text)))
     (home-page "http://www.haskell.org/haskellwiki/Opengl")
@@ -1156,7 +1329,7 @@ found at runtime, a userError is thrown.")
 (define-public ghc-glut
   (package
     (name "ghc-glut")
-    (version "2.7.0.3")
+    (version "2.7.0.10")
     (source
      (origin
        (method url-fetch)
@@ -1166,7 +1339,7 @@ found at runtime, a userError is thrown.")
              ".tar.gz"))
        (sha256
         (base32
-         "1qfilpc10jm47anan44c20y8mh76f2dv09m5d22gk0f7am7hg4k2"))))
+         "0sbm943bg896nf3qjmlnsg3zzrr3pl330rzh9g0hwv47nzwwn4ab"))))
     (build-system haskell-build-system)
     (inputs
      `(("ghc-statevar" ,ghc-statevar)
@@ -1183,7 +1356,7 @@ programs.")
 (define-public ghc-gluraw
   (package
     (name "ghc-gluraw")
-    (version "1.5.0.2")
+    (version "2.0.0.2")
     (source
      (origin
        (method url-fetch)
@@ -1193,7 +1366,7 @@ programs.")
              ".tar.gz"))
        (sha256
         (base32
-         "0gscd9lhp9mb10q8s716nx26m8qng9xbb4h6b3f48zzgkc1sy96x"))))
+         "1phmvxr0kkxq89ykmr8rj77inj8dvcxd6h72z1ncdgdazfz3sjw8"))))
     (build-system haskell-build-system)
     (inputs
      `(("ghc-openglraw" ,ghc-openglraw)))
@@ -1207,7 +1380,7 @@ basis for a nicer interface.")
 (define-public ghc-opengl
   (package
     (name "ghc-opengl")
-    (version "2.12.0.1")
+    (version "3.0.1.0")
     (source
      (origin
        (method url-fetch)
@@ -1217,7 +1390,7 @@ basis for a nicer interface.")
              ".tar.gz"))
        (sha256
         (base32
-         "1mcfb167jl75qc2hgylh83vf2jqizvyvkvhhb72adi2crc3zqz4b"))))
+         "1nm2mzrn1h2nnfs9vl5p088hqpll7rdvcsyqsn8q641im9jhqp7l"))))
     (build-system haskell-build-system)
     (inputs
      `(("ghc-text" ,ghc-text)
@@ -1235,7 +1408,7 @@ version 1.3).")
 (define-public ghc-streaming-commons
   (package
     (name "ghc-streaming-commons")
-    (version "0.1.14.2")
+    (version "0.1.16")
     (source
      (origin
        (method url-fetch)
@@ -1245,7 +1418,7 @@ version 1.3).")
              ".tar.gz"))
        (sha256
         (base32
-         "12nw9bwvy6zrabkgvbp371klca3ds6qjlfncg1b8pbwx1y7m8c8h"))))
+         "0vhhm0z88b1r6s50bskdfh73acwfypm614nycmi9jwiyh84zbz8p"))))
     (build-system haskell-build-system)
     (inputs
      `(("ghc-blaze-builder" ,ghc-blaze-builder)
@@ -1260,10 +1433,10 @@ version 1.3).")
        ("hspec-discover" ,hspec-discover)))
     (home-page "https://hackage.haskell.org/package/streaming-commons")
     (synopsis "Conduit and pipes needed by some streaming data libraries")
-    (description "Provides low-dependency functionality commonly needed by
-various Haskell streaming data libraries, such as @code{conduit} and
+    (description "This package provides low-dependency functionality commonly
+needed by various Haskell streaming data libraries, such as @code{conduit} and
 @code{pipe}s.")
-    (license license:bsd-3)))
+    (license license:expat)))
 
 (define-public cpphs
   (package
@@ -1332,6 +1505,8 @@ configurations to coexist without resorting to mutable global variables or
        (sha256
         (base32 "0l3viphiszvz5wqzg7a45zp40grwlab941q5ay29iyw8p3v8pbyv"))))
     (build-system haskell-build-system)
+    (arguments
+     `(#:configure-flags (list "--allow-newer=base")))
     (home-page "https://hackage.haskell.org/package/old-locale")
     (synopsis "Adapt to locale conventions")
     (description
@@ -1354,6 +1529,8 @@ date and time formats.")
         (base32
          "1h9b26s3kfh2k0ih4383w90ibji6n0iwamxp6rfp2lbq1y5ibjqw"))))
     (build-system haskell-build-system)
+    (arguments
+     `(#:configure-flags (list "--allow-newer=base")))
     (inputs
      `(("ghc-old-locale" ,ghc-old-locale)))
     (home-page "https://hackage.haskell.org/package/old-time")
@@ -1390,7 +1567,7 @@ old @code{time} library.  For new projects, the newer
 (define-public ghc-dlist
   (package
     (name "ghc-dlist")
-    (version "0.8.0.3")
+    (version "0.8.0.4")
     (source
      (origin
        (method url-fetch)
@@ -1399,7 +1576,7 @@ old @code{time} library.  For new projects, the newer
              version
              ".tar.gz"))
        (sha256
-        (base32 "0brgai4vs7xz29p06kd6gzg5bpa8iy3k7yzgcc44izspd74q4rw7"))))
+        (base32 "0yirrh0s6acjy9hhvf5fqg2d6q5y6gm9xs04v6w1imndh1xqdwdc"))))
     (build-system haskell-build-system)
     (inputs
      `(("ghc-quickcheck" ,ghc-quickcheck)))
@@ -1462,6 +1639,28 @@ Haskell software by automating the fetching, configuration, compilation and
 installation of Haskell libraries and programs.")
    (license license:bsd-3)))
 
+(define-public cabal-doctest
+  (package
+    (name "cabal-doctest")
+    (version "1.0.6")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://hackage.haskell.org/package/"
+                           "cabal-doctest/cabal-doctest-"
+                           version ".tar.gz"))
+       (sha256
+        (base32
+         "0bgd4jdmzxq5y465r4sf4jv2ix73yvblnr4c9wyazazafddamjny"))))
+    (build-system haskell-build-system)
+    (home-page "https://github.com/phadej/cabal-doctest")
+    (synopsis "Setup.hs helper for running doctests")
+    (description
+     "To properly work, the @code{doctest} package needs plenty of
+configuration.  This library provides the common bits for writing custom
+@file{Setup.hs} files.")
+    (license license:bsd-3)))
+
 (define-public ghc-mtl
   (package
     (name "ghc-mtl")
@@ -1478,6 +1677,10 @@ installation of Haskell libraries and programs.")
         (base32
          "1icdbj2rshzn0m1zz5wa7v3xvkf6qw811p4s7jgqwvx1ydwrvrfa"))))
     (build-system haskell-build-system)
+    (arguments
+     `(#:configure-flags (list "--allow-newer=transformers")))
+    (inputs
+     `(("ghc-transformers" ,ghc-transformers)))
     (home-page "https://github.com/ekmett/mtl")
     (synopsis
      "Monad classes, using functional dependencies")
@@ -1525,6 +1728,8 @@ School of Functional Programming', 1995.  See
        (sha256
         (base32 "0h7imvxkahiy8pzr8cpsimifdfvv18lizrb33k6mnq70rcx9w2zv"))))
     (build-system haskell-build-system)
+    (arguments
+     `(#:configure-flags (list "--allow-newer=base")))
     (home-page "https://github.com/glguy/utf8-string/")
     (synopsis "Support for reading and writing UTF8 Strings")
     (description
@@ -1651,7 +1856,7 @@ literals.")
 (define-public ghc-zlib
   (package
     (name "ghc-zlib")
-    (version "0.5.4.2")
+    (version "0.6.1.1")
     (outputs '("out" "doc"))
     (source
      (origin
@@ -1662,8 +1867,10 @@ literals.")
              ".tar.gz"))
        (sha256
         (base32
-         "15hhsk7z3gvm7sz2ic2z1ca5c6rpsln2rr391mdbm1bxlzc1gmkm"))))
+         "0dd79dxf56d8f6ad9if3j87s9gg7yd17ckypjxwplrbkahlb9xf5"))))
     (build-system haskell-build-system)
+    ;; Tests require older versions of testy.
+    (arguments `(#:tests? #f))
     (inputs `(("zlib" ,zlib)))
     (home-page "https://hackage.haskell.org/package/zlib")
     (synopsis
@@ -1680,7 +1887,7 @@ access to the full zlib feature set.")
 (define-public ghc-stm
   (package
     (name "ghc-stm")
-    (version "2.4.4")
+    (version "2.4.5.0")
     (outputs '("out" "doc"))
     (source
      (origin
@@ -1691,18 +1898,24 @@ access to the full zlib feature set.")
              ".tar.gz"))
        (sha256
         (base32
-         "0gc8zvdijp3rwmidkpxv76b4i0dc8dw6nbd92rxl4vxl0655iysx"))))
+         "19sr11a0hqikhvf561b38phz6k3zg9s157a0f5ffvghk7wcdpmri"))))
     (build-system haskell-build-system)
     (home-page "https://hackage.haskell.org/package/stm")
     (synopsis "Software Transactional Memory")
     (description
-     "A modular composable concurrency abstraction.")
+     "Software Transactional Memory, or STM, is an abstraction for concurrent
+communication.  The main benefits of STM are composability and modularity.
+That is, using STM you can write concurrent abstractions that can be easily
+composed with any other abstraction built using STM, without exposing the
+details of how your abstraction ensures safety.  This is typically not the
+case with other forms of concurrent communication, such as locks or
+@code{MVar}s.")
     (license license:bsd-3)))
 
 (define-public ghc-parallel
   (package
     (name "ghc-parallel")
-    (version "3.2.0.6")
+    (version "3.2.1.0")
     (outputs '("out" "doc"))
     (source
      (origin
@@ -1713,7 +1926,7 @@ access to the full zlib feature set.")
              ".tar.gz"))
        (sha256
         (base32
-         "0hp6vf4zxsw6vz6lj505xihmnfhgjp39c9q7nyzlgcmps3xx6a5r"))))
+         "09l52k1gsn667lmv0pp052cbwkzkbhfivp51f2xkrlfzf6xwvqsd"))))
     (build-system haskell-build-system)
     (home-page "https://hackage.haskell.org/package/parallel")
     (synopsis "Parallel programming library")
@@ -1724,7 +1937,7 @@ access to the full zlib feature set.")
 (define-public ghc-text
   (package
     (name "ghc-text")
-    (version "1.2.1.3")
+    (version "1.2.2.2")
     (outputs '("out" "doc"))
     (source
      (origin
@@ -1735,10 +1948,12 @@ access to the full zlib feature set.")
              ".tar.gz"))
        (sha256
         (base32
-         "0gzqx5cpkdhshbz9xss51mpyq23pnf8dwjz4h3irbv2ryaa4qdlq"))))
+         "1y9d0zjs2ls0c574mr5xw7y3y49s62sd3wcn9lhpwz8a6q352iii"))))
     (build-system haskell-build-system)
-    (arguments
-     `(#:tests? #f)) ; FIXME: currently missing libraries used for tests.
+    ;; The test dependencies depend on ghc-text: ghc-test-framework -> ghc-xml -> ghc-text
+    (arguments `(#:tests? #f))
+    (inputs
+     `(("ghc-random" ,ghc-random)))
     (home-page "https://github.com/bos/text")
     (synopsis "Efficient packed Unicode text type library")
     (description
@@ -1751,6 +1966,29 @@ capabilities that are optimized for performance critical use, both
 in terms of large data quantities and high speed.")
     (license license:bsd-3)))
 
+(define-public ghc-text-binary
+  (package
+    (name "ghc-text-binary")
+    (version "0.2.1.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://hackage.haskell.org/package/"
+                           "text-binary/text-binary-"
+                           version ".tar.gz"))
+       (sha256
+        (base32
+         "18gl10pwg3qwsk0za3c70j4n6a9129wwf1b7d3a461h816yv55xn"))))
+    (build-system haskell-build-system)
+    (inputs `(("ghc-text" ,ghc-text)))
+    (home-page "https://github.com/kawu/text-binary")
+    (synopsis "Binary instances for text types")
+    (description
+     "This package provides a compatibility layer providing @code{Binary}
+instances for strict and lazy text types for versions older than 1.2.1 of the
+text package.")
+    (license license:bsd-2)))
+
 (define-public ghc-strict
   (package
     (name "ghc-strict")
@@ -1774,7 +2012,7 @@ IO operations.")
 (define-public ghc-hashable
   (package
     (name "ghc-hashable")
-    (version "1.2.3.3")
+    (version "1.2.6.1")
     (outputs '("out" "doc"))
     (source
      (origin
@@ -1785,22 +2023,49 @@ IO operations.")
              ".tar.gz"))
        (sha256
         (base32
-         "0kp4aj0x1iicz9qirpqxxqd8x5g1njbapxk1d90n406w3xykz4pw"))))
+         "0ymv2mcrrgbdc2w39rib171fwnhg7fgp0sy4h8amrh1vw64qgjll"))))
     (build-system haskell-build-system)
-    (arguments
-     `(#:tests? #f)) ; FIXME: currently missing libraries used for tests.
     (inputs
-     `(("ghc-text" ,ghc-text)))
+     `(("ghc-text" ,ghc-text)
+       ("ghc-random" ,ghc-random)))
+    (native-inputs
+     `(("ghc-test-framework" ,ghc-test-framework)
+       ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
+       ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)
+       ("ghc-hunit" ,ghc-hunit)
+       ("ghc-quickcheck" ,ghc-quickcheck)))
     (home-page "https://github.com/tibbe/hashable")
-    (synopsis
-     "Class for types that can be converted to a hash value")
+    (synopsis "Class for types that can be converted to a hash value")
     (description
-     "This package defines a class, 'Hashable', for types that can be
+     "This package defines a class, @code{Hashable}, for types that can be
 converted to a hash value.  This class exists for the benefit of hashing-based
 data structures.  The package provides instances for basic types and a way to
 combine hash values.")
     (license license:bsd-3)))
 
+(define-public ghc-hashable-time
+  (package
+    (name "ghc-hashable-time")
+    (version "0.2.0.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "https://hackage.haskell.org/package/hashable-time/hashable-time-"
+             version
+             ".tar.gz"))
+       (sha256
+        (base32
+         "0k932nyd08l3xxbh2g3n76py2f4kd9yw4s5a065vjz0xp6wjnxdm"))))
+    (build-system haskell-build-system)
+    (inputs `(("ghc-hashable" ,ghc-hashable)))
+    (home-page "http://hackage.haskell.org/package/hashable-time")
+    (synopsis "Hashable instances for Data.Time")
+    (description
+     "This package provides @code{Hashable} instances for types in
+@code{Data.Time}.")
+    (license license:bsd-3)))
+
 (define-public ghc-data-hash
   (package
     (name "ghc-data-hash")
@@ -1870,7 +2135,7 @@ library, including the ability to split random number generators.")
 (define-public ghc-primitive
   (package
     (name "ghc-primitive")
-    (version "0.6.1.0")
+    (version "0.6.3.0")
     (outputs '("out" "doc"))
     (source
      (origin
@@ -1881,7 +2146,7 @@ library, including the ability to split random number generators.")
              ".tar.gz"))
        (sha256
         (base32
-         "1j1q7l21rdm8kfs93vibr3xwkkhqis181w2k6klfhx5g5skiywwk"))))
+         "0mcmbnj08wd6zfwn7xk6zf5hy5zwbla5v78pw0dpymqg9s0gzpnd"))))
     (build-system haskell-build-system)
     (home-page
      "https://github.com/haskell/primitive")
@@ -1948,7 +2213,7 @@ compatibility to run on old versions of the platform.")
 (define-public ghc-transformers-compat
   (package
     (name "ghc-transformers-compat")
-    (version "0.4.0.4")
+    (version "0.5.1.4")
     (source
      (origin
        (method url-fetch)
@@ -1957,7 +2222,7 @@ compatibility to run on old versions of the platform.")
              "/transformers-compat-" version ".tar.gz"))
        (sha256
         (base32
-         "0lmg8ry6bgigb0v2lg0n74lxi8z5m85qq0qi4h1k9llyjb4in8ym"))))
+         "17yam0199fh9ndsn9n69jx9nvbsmymzzwbi23dck3dk4q57fz0fq"))))
     (build-system haskell-build-system)
     (home-page "https://github.com/ekmett/transformers-compat/")
     (synopsis "Small compatibility shim between transformers 0.3 and 0.4")
@@ -1970,7 +2235,7 @@ but also need those types.")
 (define-public ghc-unix-time
   (package
     (name "ghc-unix-time")
-    (version "0.3.6")
+    (version "0.3.7")
     (source
      (origin
        (method url-fetch)
@@ -1980,7 +2245,7 @@ but also need those types.")
              ".tar.gz"))
        (sha256
         (base32
-         "0dyvyxwaffb94bgri1wc4b9wqaasy32pyjn0lww3dqblxv8fn5ax"))))
+         "1qdlc9raih8s0m3x8x3n7q3ngh4faw2alv9l78sp6gnx648k0c8i"))))
     (build-system haskell-build-system)
     (arguments
      `(#:tests? #f)) ; FIXME: Test fails with "System.Time not found".  This
@@ -1997,7 +2262,7 @@ for Unix time in Haskell.")
 (define-public ghc-unix-compat
   (package
     (name "ghc-unix-compat")
-    (version "0.4.1.4")
+    (version "0.4.2.0")
     (source
      (origin
        (method url-fetch)
@@ -2007,7 +2272,7 @@ for Unix time in Haskell.")
              ".tar.gz"))
        (sha256
         (base32
-         "0jxk7j5pz2kgfpqr4hznndjg31pqj5xg2qfc5308fcn9xyg1myps"))))
+         "036nv05w0yjxc3rfpar60ddjrlzc40mdgr5k6ihvwlvqfmq1gw9m"))))
     (build-system haskell-build-system)
     (home-page
      "https://github.com/jystic/unix-compat")
@@ -2194,7 +2459,7 @@ Haskell library @code{regex-base}.")
 (define-public ghc-parsers
   (package
     (name "ghc-parsers")
-    (version "0.12.3")
+    (version "0.12.4")
     (source
      (origin
        (method url-fetch)
@@ -2204,7 +2469,7 @@ Haskell library @code{regex-base}.")
              ".tar.gz"))
        (sha256
         (base32
-         "18wzmp8y3py4qa8hdsxqm0jfzmwy744dw7xa48r5s8ynhpimi462"))))
+         "07najh7f9y3ahh42z96sw4hnd0kc4x3wm0xlf739y0gh81ys5097"))))
     (build-system haskell-build-system)
     (arguments `(#:tests? #f)) ; FIXME: Test fails with "cannot satisfy
                                ; -package attoparsec-0.13.0.1"
@@ -2228,7 +2493,7 @@ the parsers provided by @code{parsec}, @code{attoparsec} and @code{base}'s
 (define-public ghc-trifecta
   (package
     (name "ghc-trifecta")
-    (version "1.6")
+    (version "1.7.1.1")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -2236,10 +2501,11 @@ the parsers provided by @code{parsec}, @code{attoparsec} and @code{base}'s
                     "trifecta-" version ".tar.gz"))
               (sha256
                (base32
-                "0rbhv9m17k7l1zr70i0yw5da0qjgxmfh1da8brj0zdzwjn9ac0mk"))))
+                "13n6a3fdxngnzsjnhfrzigv1c2g0xm6lqkjcnirpc37sd0rpby31"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-reducers" ,ghc-reducers)
+     `(("ghc-doctest" ,ghc-doctest-0.13)
+       ("ghc-reducers" ,ghc-reducers)
        ("ghc-semigroups" ,ghc-semigroups)
        ("ghc-ansi-wl-pprint" ,ghc-ansi-wl-pprint)
        ("ghc-ansi-terminal" ,ghc-ansi-terminal)
@@ -2258,16 +2524,39 @@ the parsers provided by @code{parsec}, @code{attoparsec} and @code{base}'s
        ("ghc-quickcheck" ,ghc-quickcheck)
        ("ghc-unordered-containers" ,ghc-unordered-containers)
        ("ghc-utf8-string" ,ghc-utf8-string)))
+    (native-inputs
+     `(("cabal-doctest" ,cabal-doctest)))
     (home-page "https://github.com/ekmett/trifecta/")
     (synopsis "Parser combinator library with convenient diagnostics")
     (description "Trifecta is a modern parser combinator library for Haskell,
 with slicing and Clang-style colored diagnostics.")
     (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/time-locale-compat-"
+                           version ".tar.gz"))
+       (sha256
+        (base32
+         "1vdcfr2hp9qh3ag90x6ikbdf42wiqpdylnplffna54bpnilbyi4i"))))
+    (build-system haskell-build-system)
+    (inputs `(("ghc-old-locale" ,ghc-old-locale)))
+    (home-page "https://github.com/khibino/haskell-time-locale-compat")
+    (synopsis "Compatibility of TimeLocale between old-locale and time-1.5")
+    (description "This package contains a wrapped name module for
+@code{TimeLocale}.")
+    (license license:bsd-3)))
+
 (define-public ghc-attoparsec
   (package
     (name "ghc-attoparsec")
-    (version "0.13.0.1")
+    (version "0.13.2.2")
     (source
      (origin
        (method url-fetch)
@@ -2277,16 +2566,20 @@ with slicing and Clang-style colored diagnostics.")
              ".tar.gz"))
        (sha256
         (base32
-         "0cprkr7bl4lrr80pz8mryb4rbfwdgpsrl7g0fbcaybhl8p5hm26f"))))
+         "0j6qcwd146yzlkc9mcvzvnixsyl65n2a68l28322q5v9p4g4g4yx"))))
     (build-system haskell-build-system)
+    ;; FIXME: at least on test fails with QuickCheck > 2.9.2.  Once upstream
+    ;; has updated the tests to work with a later version of QuickCheck we can
+    ;; re-enable them.
+    (arguments `(#:tests? #f))
     (inputs
      `(("ghc-scientific" ,ghc-scientific)
        ("ghc-text" ,ghc-text)))
     (native-inputs
-     `(("ghc-quickcheck" ,ghc-quickcheck)
+     `(("ghc-tasty" ,ghc-tasty)
+       ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
+       ("ghc-quickcheck" ,ghc-quickcheck)
        ("ghc-quickcheck-unicode" ,ghc-quickcheck-unicode)
-       ("ghc-test-framework" ,ghc-test-framework)
-       ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)
        ("ghc-vector" ,ghc-vector)))
     (home-page "https://github.com/bos/attoparsec")
     (synopsis "Fast combinator parsing for bytestrings and text")
@@ -2298,7 +2591,7 @@ complicated text/binary file formats.")
 (define-public ghc-zip-archive
   (package
     (name "ghc-zip-archive")
-    (version "0.2.3.7")
+    (version "0.3.0.5")
     (source
      (origin
        (method url-fetch)
@@ -2308,13 +2601,14 @@ complicated text/binary file formats.")
              ".tar.gz"))
        (sha256
         (base32
-         "169nkxr5zlbymiz1ydlhlqr66vqiycmg85xh559phpkr64w3nqj1"))))
+         "1iwpzjck4jg9bz1yqky051i2wljsqc14q5zbi10dydfp8ip3d0yw"))))
     (build-system haskell-build-system)
     (inputs
      `(("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)))
     (native-inputs
@@ -2328,7 +2622,7 @@ modifying, and extracting files from zip archives in Haskell.")
 (define-public ghc-distributive
   (package
     (name "ghc-distributive")
-    (version "0.4.4")
+    (version "0.5.3")
     (source
      (origin
        (method url-fetch)
@@ -2338,13 +2632,19 @@ modifying, and extracting files from zip archives in Haskell.")
              ".tar.gz"))
        (sha256
         (base32
-         "0s2ln9jv7bh4ri2y31178pvjl8x6nik5d0klx7j2b77yjlsgblc2"))))
+         "0y566r97sfyvhsmd4yxiz4ns2mqgwf5bdbp56wgxl6wlkidq0wwi"))))
     (build-system haskell-build-system)
-    (arguments `(#:tests? #f)) ; FIXME: fails with "cannot satisfy -package
-                               ; tagged-0.8.1".  Suspected Cabal issue.
     (inputs
      `(("ghc-tagged" ,ghc-tagged)
-       ("ghc-transformers-compat" ,ghc-transformers-compat)))
+       ("ghc-base-orphans" ,ghc-base-orphans)
+       ("ghc-transformers-compat" ,ghc-transformers-compat)
+       ("ghc-semigroups" ,ghc-semigroups)
+       ("ghc-generic-deriving" ,ghc-generic-deriving)))
+    (native-inputs
+     `(("cabal-doctest" ,cabal-doctest)
+       ("ghc-doctest" ,ghc-doctest-0.12)
+       ("ghc-hspec" ,ghc-hspec)
+       ("hspec-discover" ,hspec-discover)))
     (home-page "https://github.com/ekmett/distributive/")
     (synopsis "Distributive functors for Haskell")
     (description "This package provides distributive functors for Haskell.
@@ -2354,7 +2654,7 @@ Dual to @code{Traversable}.")
 (define-public ghc-cereal
   (package
     (name "ghc-cereal")
-    (version "0.4.1.1")
+    (version "0.5.3.0")
     (source
      (origin
        (method url-fetch)
@@ -2364,8 +2664,13 @@ Dual to @code{Traversable}.")
              ".tar.gz"))
        (sha256
         (base32
-         "15rhfn9hrjm01ksh9xpz9syxsp9vkvpp6b736iqq38wv2wb7416z"))))
+         "1x4aib7nnaf4x2b9zlndq5n5zsqniw78jifkf55nhnbmvryf05n3"))))
     (build-system haskell-build-system)
+    (native-inputs
+     `(("ghc-quickcheck" ,ghc-quickcheck)
+       ("ghc-fail" ,ghc-fail)
+       ("ghc-test-framework" ,ghc-test-framework)
+       ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
     (home-page "https://hackage.haskell.org/package/cereal")
     (synopsis "Binary serialization library")
     (description "This package provides a binary serialization library,
@@ -2376,7 +2681,7 @@ parser isolation, and labeled blocks for better error messages.")
 (define-public ghc-comonad
   (package
     (name "ghc-comonad")
-    (version "4.2.7.2")
+    (version "5")
     (source
      (origin
        (method url-fetch)
@@ -2386,7 +2691,7 @@ parser isolation, and labeled blocks for better error messages.")
              ".tar.gz"))
        (sha256
         (base32
-         "0arvbaxgkawzdp38hh53akkahjg2aa3kj2b4ns0ni8a5ylg2cqmp"))))
+         "0anb36m9z52y9xsipxzj9w1b41b2rj8r389cxd6d20dplnfv3rbq"))))
     (build-system haskell-build-system)
     (native-inputs
      `(("ghc-doctest" ,ghc-doctest)))
@@ -2404,7 +2709,7 @@ parser isolation, and labeled blocks for better error messages.")
 (define-public hscolour
   (package
     (name "hscolour")
-    (version "1.23")
+    (version "1.24.1")
     (source
      (origin
        (method url-fetch)
@@ -2414,7 +2719,7 @@ parser isolation, and labeled blocks for better error messages.")
              ".tar.gz"))
        (sha256
         (base32
-         "1c4i2zpami8g3w9949nm3f92g7xwh5c94vkx658zz7ihrjp7w5lp"))))
+         "1j3rpzjygh3igvnd1n2xn63bq68rs047cjxr2qi6xyfnivgf6vz4"))))
     (build-system haskell-build-system)
     (home-page "https://hackage.haskell.org/package/hscolour")
     (synopsis "Script to colourise Haskell code")
@@ -2428,7 +2733,7 @@ and mIRC chat codes.")
 (define-public ghc-polyparse
   (package
     (name "ghc-polyparse")
-    (version "1.11")
+    (version "1.12")
     (source
      (origin
        (method url-fetch)
@@ -2438,7 +2743,7 @@ and mIRC chat codes.")
              ".tar.gz"))
        (sha256
         (base32
-         "1z417f80b0jm4dgv25fk408p3d9mmcd1dlbya3ry0zdx4md09vrh"))))
+         "05dya1vdvq29hkhkdlsglzhw7bdn51rvs1javs0q75nf99c66k7m"))))
     (build-system haskell-build-system)
     (inputs
      `(("ghc-text" ,ghc-text)))
@@ -2458,7 +2763,7 @@ Strings.")
 (define-public ghc-extra
   (package
     (name "ghc-extra")
-    (version "1.4.2")
+    (version "1.6.3")
     (source
      (origin
        (method url-fetch)
@@ -2468,9 +2773,11 @@ Strings.")
              ".tar.gz"))
        (sha256
         (base32
-         "1h9hxkrqrqscx420yz1lmivbrhi6jc3a5ap61vkxd2mhdgark9hf"))))
+         "06ds0jlx6sljwdf63l154qbzia9mnsri79i9qm3xikky3nj9ia1m"))))
     (build-system haskell-build-system)
-    (inputs `(("ghc-quickcheck" ,ghc-quickcheck)))
+    (inputs
+     `(("ghc-clock" ,ghc-clock)
+       ("ghc-quickcheck" ,ghc-quickcheck)))
     (home-page "https://github.com/ndmitchell/extra")
     (synopsis "Extra Haskell functions")
     (description "This library provides extra functions for the standard
@@ -2482,7 +2789,7 @@ this package makes them available back to GHC 7.2.")
 (define-public ghc-profunctors
   (package
     (name "ghc-profunctors")
-    (version "5.1.1")
+    (version "5.2.2")
     (source
      (origin
        (method url-fetch)
@@ -2492,11 +2799,15 @@ this package makes them available back to GHC 7.2.")
              ".tar.gz"))
        (sha256
         (base32
-         "0lw2ipacpnp9yqmi8zsp01pzpn5hwj8af3y0f3079mddrmw48gw7"))))
+         "0s1pwjidbn761xk43pmzyvn99hm3psdifjd78ylki7f97aiyd0g9"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-distributive" ,ghc-distributive)
+     `(("ghc-base-orphans" ,ghc-base-orphans)
+       ("ghc-bifunctors" ,ghc-bifunctors)
        ("ghc-comonad" ,ghc-comonad)
+       ("ghc-contravariant" ,ghc-contravariant)
+       ("ghc-distributive" ,ghc-distributive)
+       ("ghc-semigroups" ,ghc-semigroups)
        ("ghc-tagged" ,ghc-tagged)))
     (home-page "https://github.com/ekmett/profunctors/")
     (synopsis "Profunctors for Haskell")
@@ -2506,7 +2817,7 @@ this package makes them available back to GHC 7.2.")
 (define-public ghc-reducers
   (package
     (name "ghc-reducers")
-    (version "3.12.1")
+    (version "3.12.2")
     (source
      (origin
        (method url-fetch)
@@ -2516,7 +2827,7 @@ this package makes them available back to GHC 7.2.")
              ".tar.gz"))
        (sha256
         (base32
-         "0pkddg0s3cn759miq0nfrq7lnp3imk5sx784ihsilsbjh9kvffz4"))))
+         "1gbaa5x4zbvnbklcb0d4q4m8hk6w0gz4s0c4m288czi1nw43dl65"))))
     (build-system haskell-build-system)
     (inputs
      `(("ghc-fingertree" ,ghc-fingertree)
@@ -2578,7 +2889,7 @@ exceptions.")
 (define-public ghc-generic-deriving
   (package
     (name "ghc-generic-deriving")
-    (version "1.8.0")
+    (version "1.11.1")
     (source
      (origin
        (method url-fetch)
@@ -2588,8 +2899,11 @@ exceptions.")
              ".tar.gz"))
        (sha256
         (base32
-         "1kc6lhdanls6kgpk8xv5xi14lz1sngcd8xn930hkf7ilq4kxkcr6"))))
+         "1sdh5hpcwvh3b6zvgfk3pr3hla8p88l82njnih880c0gk5zl53dk"))))
     (build-system haskell-build-system)
+    (native-inputs
+     `(("ghc-hspec" ,ghc-hspec)
+       ("hspec-discover" ,hspec-discover)))
     (home-page "https://hackage.haskell.org/package/generic-deriving")
     (synopsis "Generalise the deriving mechanism to arbitrary classes")
     (description "This package provides functionality for generalising the
@@ -2599,7 +2913,7 @@ deriving mechanism in Haskell to arbitrary classes.")
 (define-public ghc-pcre-light
   (package
     (name "ghc-pcre-light")
-    (version "0.4.0.3")
+    (version "0.4.0.4")
     (source
      (origin
        (method url-fetch)
@@ -2609,10 +2923,12 @@ deriving mechanism in Haskell to arbitrary classes.")
              ".tar.gz"))
        (sha256
         (base32
-         "0l1df2sk5qwf424bvb8mbdkr2xjg43fi92n5r22yd7vm1zz0jqvf"))))
+         "0xcyi1fivwg7a92mch5bcqzmrfxzqj42rmb3m8kgs61x4qwpxj82"))))
     (build-system haskell-build-system)
     (inputs
      `(("pcre" ,pcre)))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
     (home-page "https://github.com/Daniel-Diaz/pcre-light")
     (synopsis "Haskell library for Perl 5 compatible regular expressions")
     (description "This package provides a small, efficient, and portable regex
@@ -2683,6 +2999,8 @@ online}.")
         (base32
          "1gl7xzffsqmigam6zg0jsglncgzxqafld2p6kb7ccp9xirzdjsjd"))))
     (build-system haskell-build-system)
+    (arguments
+     `(#:configure-flags (list "--allow-newer=QuickCheck")))
     (native-inputs
      `(("ghc-test-framework" ,ghc-test-framework)
        ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
@@ -2699,7 +3017,7 @@ for Haskell.")
 (define-public ghc-temporary
   (package
     (name "ghc-temporary")
-    (version "1.2.0.3")
+    (version "1.2.0.4")
     (source
      (origin
        (method url-fetch)
@@ -2709,7 +3027,7 @@ for Haskell.")
              ".tar.gz"))
        (sha256
         (base32
-         "0is67bmsjmbbw6wymhis8wyq9gax3sszm573p5719fx2c9z9r24a"))))
+         "0qk741yqnpd69sksgks2vb7zi50rglp9m498lzw4sh268a017rsi"))))
     (build-system haskell-build-system)
     (inputs `(("ghc-exceptions" ,ghc-exceptions)))
     (home-page "http://www.github.com/batterseapower/temporary")
@@ -2803,7 +3121,7 @@ writing to stdout and other handles.")
 (define-public ghc-case-insensitive
   (package
     (name "ghc-case-insensitive")
-    (version "1.2.0.4")
+    (version "1.2.0.7")
     (outputs '("out" "doc"))
     (source
      (origin
@@ -2814,7 +3132,7 @@ writing to stdout and other handles.")
              ".tar.gz"))
        (sha256
         (base32
-         "07nm40r9yw2p9qsfp3pjbsmyn4dabrxw34p48171zmccdd5hv0v3"))))
+         "1j6ahvrz1g5q89y2difyk838yhwjc8z67zr0v2z512qdznc3h38n"))))
     (build-system haskell-build-system)
     (inputs
      `(("ghc-hunit" ,ghc-hunit)))
@@ -2880,6 +3198,8 @@ variety of traversals.")
         (base32
          "0fbyb6jxy9whgrv6dgnkzz70cmy98arx3q2gnkhgl4a3d7idh36p"))))
     (build-system haskell-build-system)
+    (arguments
+     `(#:configure-flags (list "--allow-newer=QuickCheck")))
     (inputs
      `(("ghc-mtl" ,ghc-mtl)
        ("ghc-hspec" ,ghc-hspec)
@@ -2927,7 +3247,7 @@ Partial and Infinite Values\"}.")
 (define-public ghc-unordered-containers
   (package
     (name "ghc-unordered-containers")
-    (version "0.2.5.1")
+    (version "0.2.7.1")
     (outputs '("out" "doc"))
     (source
      (origin
@@ -2937,7 +3257,7 @@ Partial and Infinite Values\"}.")
              "/unordered-containers-" version ".tar.gz"))
        (sha256
         (base32
-         "06l1xv7vhpxly75saxdrbc6p2zlgz1az278arfkz4rgawfnphn3f"))))
+         "00npqiphivjp2d7ryqsdavfn4m5v3w1lq2azhdsrfh0wsvqpg4ig"))))
     (build-system haskell-build-system)
     (inputs
      `(("ghc-chasingbottoms" ,ghc-chasingbottoms)
@@ -3078,7 +3398,7 @@ colored output using the ansi-terminal package.")
 (define-public ghc-split
   (package
     (name "ghc-split")
-    (version "0.2.2")
+    (version "0.2.3.1")
     (outputs '("out" "doc"))
     (source
      (origin
@@ -3089,16 +3409,9 @@ colored output using the ansi-terminal package.")
              ".tar.gz"))
        (sha256
         (base32
-         "0xa3j0gwr6k5vizxybnzk5fgb3pppgspi6mysnp2gwjp2dbrxkzr"))
-       (modules '((guix build utils)))
-       (snippet
-        ;; The Cabal file on Hackage is updated, but the tar.gz does not
-        ;; include it.  See
-        ;; <https://hackage.haskell.org/package/split-0.2.2/revisions/>.
-        '(substitute* "split.cabal"
-           (("base <4.8") "base <4.9")))))
+         "12660m16c6sib3laaxn6w9s453pyx1b49myrmzfij372vq5bc5bn"))))
     (build-system haskell-build-system)
-    (inputs
+    (native-inputs
      `(("ghc-quickcheck" ,ghc-quickcheck)))
     (home-page "https://hackage.haskell.org/package/split")
     (synopsis "Combinator library for splitting lists")
@@ -3110,7 +3423,7 @@ mainstream languages.")
 (define-public ghc-parsec
   (package
     (name "ghc-parsec")
-    (version "3.1.9")
+    (version "3.1.11")
     (outputs '("out" "doc"))
     (source
      (origin
@@ -3120,7 +3433,7 @@ mainstream languages.")
              version
              ".tar.gz"))
        (sha256
-        (base32 "1ja20cmj6v336jy87c6h3jzjp00sdbakwbdwp11iln499k913xvi"))))
+        (base32 "0vk7q9j2128q191zf1sg0ylj9s9djwayqk9747k0a5fin4f2b1vg"))))
     (build-system haskell-build-system)
     (native-inputs
      `(("ghc-hunit" ,ghc-hunit)))
@@ -3138,10 +3451,64 @@ defined as a monad transformer that can be stacked on arbitrary monads, and it
 is also parametric in the input stream type.")
     (license license:bsd-3)))
 
+(define-public ghc-parser-combinators
+  (package
+    (name "ghc-parser-combinators")
+    (version "0.4.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://hackage.haskell.org/package/"
+                           "parser-combinators/parser-combinators-"
+                           version ".tar.gz"))
+       (sha256
+        (base32
+         "1azkz0a6ikym02s8wydjcklp7rz8k512bs4s9lp9g1g03m0yj95i"))))
+    (build-system haskell-build-system)
+    (home-page "https://github.com/mrkkrp/parser-combinators")
+    (synopsis "Commonly useful parser combinators")
+    (description
+     "This is a lightweight package providing commonly useful parser
+combinators.")
+    (license license:bsd-3)))
+
+(define-public ghc-megaparsec
+  (package
+    (name "ghc-megaparsec")
+    (version "6.4.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://hackage.haskell.org/package/"
+                           "megaparsec/megaparsec-"
+                           version ".tar.gz"))
+       (sha256
+        (base32
+         "0h9azhs0dfrc359vrbd1jljrg3yfdbwd4p62cxqkn7mnh8913jpd"))))
+    (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)))
+    (native-inputs
+     `(("ghc-quickcheck" ,ghc-quickcheck)
+       ("ghc-hspec" ,ghc-hspec)
+       ("ghc-hspec-expectations" ,ghc-hspec-expectations)
+       ("hspec-discover" ,hspec-discover)))
+    (home-page "https://github.com/mrkkrp/megaparsec")
+    (synopsis "Monadic parser combinators")
+    (description
+     "This is an industrial-strength monadic parser combinator library.
+Megaparsec is a feature-rich package that strikes a nice balance between
+speed, flexibility, and quality of parse errors.")
+    (license license:bsd-2)))
+
 (define-public ghc-vector
   (package
     (name "ghc-vector")
-    (version "0.11.0.0")
+    (version "0.12.0.1")
     (outputs '("out" "doc"))
     (source
      (origin
@@ -3152,13 +3519,20 @@ is also parametric in the input stream type.")
              ".tar.gz"))
        (sha256
         (base32
-         "1r1jlksy7b0kb0fy00g64isk6nyd9wzzdq31gx5v1wn38knj0lqa"))))
+         "0yrx2ypiaxahvaz84af5bi855hd3107kxkbqc8km29nsp5wyw05i"))))
     (build-system haskell-build-system)
+    ;; FIXME: To simplify upgrading all Haskell packages, we leave the tests
+    ;; disabled for now.
+    (arguments `(#:tests? #f))
     (inputs
      `(("ghc-primitive" ,ghc-primitive)
-       ("ghc-quickcheck" ,ghc-quickcheck)))
-    (arguments
-     `(#:tests? #f))      ; FIXME: currently missing libraries used for tests.
+       ("ghc-random" ,ghc-random)
+       ("ghc-quickcheck" ,ghc-quickcheck)
+       ;; ("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/haskell/vector")
     (synopsis "Efficient Arrays")
     (description "This library provides an efficient implementation of
@@ -3169,7 +3543,7 @@ optimisation framework.")
 (define-public ghc-vector-binary-instances
   (package
     (name "ghc-vector-binary-instances")
-    (version "0.2.1.0")
+    (version "0.2.4")
     (source
      (origin
        (method url-fetch)
@@ -3179,11 +3553,13 @@ optimisation framework.")
              version ".tar.gz"))
        (sha256
         (base32
-         "028rsf2w193rhs1gic5yvvrwidw9sblczcn10aw64npfc6502l4l"))))
+         "1y236jb72iab9ska1mc48z6yb0xgwmj45laaqdyjxksd84z7hbrb"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-cereal" ,ghc-cereal)
-       ("ghc-vector" ,ghc-vector)))
+     `(("ghc-vector" ,ghc-vector)))
+    (native-inputs
+     `(("ghc-tasty" ,ghc-tasty)
+       ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
     (home-page "https://github.com/bos/vector-binary-instances")
     (synopsis "Instances of Data.Binary and Data.Serialize for vector")
     (description "This library provides instances of @code{Binary} for the
@@ -3196,7 +3572,7 @@ boxed and storable vectors.")
 (define-public ghc-network
   (package
     (name "ghc-network")
-    (version "2.6.2.1")
+    (version "2.6.3.1")
     (outputs '("out" "doc"))
     (source
      (origin
@@ -3207,12 +3583,15 @@ boxed and storable vectors.")
              ".tar.gz"))
        (sha256
         (base32
-         "1yhvpd4wigz165jvyvw9zslx7lgqdj63jh3zv5s74b5ykdfa3zd3"))))
+         "1rl2gl37cf4k0ddsq93q15fwdz1l25nhl4w205krbh7d5dg5y12p"))))
     (build-system haskell-build-system)
-    (inputs
-     `(("ghc-hunit" ,ghc-hunit)))
-    (arguments
-     `(#:tests? #f))      ; FIXME: currently missing libraries used for tests.
+    ;; The regression tests depend on an unpublished module.
+    (arguments `(#:tests? #f))
+    (native-inputs
+     `(("ghc-hunit" ,ghc-hunit)
+       ("ghc-doctest" ,ghc-doctest)
+       ("ghc-test-framework" ,ghc-test-framework)
+       ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)))
     (home-page "https://github.com/haskell/network")
     (synopsis "Low-level networking interface")
     (description
@@ -3222,7 +3601,7 @@ boxed and storable vectors.")
 (define-public ghc-network-uri
   (package
     (name "ghc-network-uri")
-    (version "2.6.0.3")
+    (version "2.6.1.0")
     (outputs '("out" "doc"))
     (source
      (origin
@@ -3233,7 +3612,7 @@ boxed and storable vectors.")
              ".tar.gz"))
        (sha256
         (base32
-         "1pwbqb2rk4rnvllvdch42p5368xcvpkanp7bxckdhxya8zzwvhhg"))))
+         "1w27zkvn39kjr9lmw9421y8w43h572ycsfafsb7kyvr3a4ihlgj2"))))
     (build-system haskell-build-system)
     (arguments
      `(#:tests? #f))  ; FIXME: currently missing libraries used for tests.
@@ -3275,7 +3654,7 @@ cursor, and changing the title.")
 (define-public ghc-vault
   (package
     (name "ghc-vault")
-    (version "0.3.0.4")
+    (version "0.3.0.6")
     (source
      (origin
        (method url-fetch)
@@ -3285,7 +3664,7 @@ cursor, and changing the title.")
              ".tar.gz"))
        (sha256
         (base32
-         "0ah6qrg71krc87f4vjy4b4shdd0mgyil8fikb3j6fl4kfwlg67jn"))))
+         "0j7gcs440q7qlgzi2hn36crgp2c0w69k40g6vj9hxlm31zk3shqb"))))
     (build-system haskell-build-system)
     (inputs
      `(("ghc-unordered-containers" ,ghc-unordered-containers)
@@ -3353,7 +3732,7 @@ with various performance characteristics.")
 (define-public ghc-mmorph
   (package
     (name "ghc-mmorph")
-    (version "1.0.4")
+    (version "1.0.6")
     (source
      (origin
        (method url-fetch)
@@ -3363,10 +3742,12 @@ with various performance characteristics.")
              ".tar.gz"))
        (sha256
         (base32
-         "0k5zlzmnixfwcjrqvhgi3i6xg532b0gsjvc39v5jigw69idndqr2"))))
+         "1i8dzrc5qi3ryc9vrrmpn3sihmramsbhhd592w4w2k5g26qr3hql"))))
     (build-system haskell-build-system)
-    (home-page
-     "https://hackage.haskell.org/package/mmorph")
+    (inputs
+     `(("ghc-mtl" ,ghc-mtl)
+       ("ghc-transformers-compat" ,ghc-transformers-compat)))
+    (home-page "https://hackage.haskell.org/package/mmorph")
     (synopsis "Monad morphisms")
     (description
      "This library provides monad morphism utilities, most commonly used for
@@ -3376,7 +3757,7 @@ manipulating monad transformer stacks.")
 (define-public ghc-monad-control
   (package
     (name "ghc-monad-control")
-    (version "1.0.0.4")
+    (version "1.0.1.0")
     (source
      (origin
        (method url-fetch)
@@ -3385,7 +3766,7 @@ manipulating monad transformer stacks.")
              "/monad-control-" version ".tar.gz"))
        (sha256
         (base32
-         "07pn1p4m80wdd7gw62s4yny8rbvm60ka1q8qx5y1plznd8sbg179"))))
+         "1x018gi5irznx5rgzmkr2nrgh26r8cvqwkcfc6n6y05pdjf21c6l"))))
     (build-system haskell-build-system)
     (inputs
      `(("ghc-stm" ,ghc-stm)
@@ -3411,6 +3792,7 @@ a subset of @code{MonadBase} into which generic control operations such as
        (sha256
         (base32 "18nlj6xvnggy61gwbyrpmvbdkq928wv0wx2zcsljb52kbhddnp3d"))))
     (build-system haskell-build-system)
+    (arguments `(#:haddock? #f)) ; Package contains no documentation.
     (home-page "https://prime.haskell.org/wiki/Libraries/Proposals/MonadFail")
     (synopsis "Forward-compatible MonadFail class")
     (description
@@ -3524,22 +3906,26 @@ interoperate with code that uses the new implementation.")
 (define-public ghc-blaze-markup
   (package
     (name "ghc-blaze-markup")
-    (version "0.7.0.3")
+    (version "0.8.2.0")
     (source
      (origin
        (method url-fetch)
-       (uri (string-append
-             "https://hackage.haskell.org/package/blaze-markup/blaze-markup-"
-             version
-             ".tar.gz"))
+       (uri (string-append "https://hackage.haskell.org/package/"
+                           "blaze-markup/blaze-markup-"
+                           version ".tar.gz"))
        (sha256
         (base32
-         "080vlhd8dwjxrma4bb524lh8gxs5lm3xh122icy6lnnyipla0s9y"))))
+         "0m3h3ryxj5r74mv5g5dnfq5jbbwmvkl7ray18vi20d5vd93sydj4"))))
     (build-system haskell-build-system)
-    (arguments `(#:tests? #f)) ; FIXME: testing libraries are missing.
     (inputs
      `(("ghc-blaze-builder" ,ghc-blaze-builder)
        ("ghc-text" ,ghc-text)))
+    (native-inputs
+     `(("ghc-hunit" ,ghc-hunit)
+       ("ghc-quickcheck" ,ghc-quickcheck)
+       ("ghc-tasty" ,ghc-tasty)
+       ("ghc-tasty-hunit" ,ghc-tasty-hunit)
+       ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
     (home-page "http://jaspervdj.be/blaze")
     (synopsis "Fast markup combinator library for Haskell")
     (description "This library provides core modules of a markup combinator
@@ -3627,7 +4013,7 @@ simple general-purpose data structure\".")
 (define-public ghc-optparse-applicative
   (package
     (name "ghc-optparse-applicative")
-    (version "0.11.0.2")
+    (version "0.13.0.0")
     (source
      (origin
        (method url-fetch)
@@ -3636,11 +4022,20 @@ simple general-purpose data structure\".")
              "/optparse-applicative-" version ".tar.gz"))
        (sha256
         (base32
-         "0ni52ii9555jngljvzxn1ngicr6i2w647ww3rzhdrmng04y95iii"))))
+         "1b0c5fdq8bd070g24vrjrwlq979r8dk8mys6aji9hy1l9pcv3inf"))))
     (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)))
+    (native-inputs
+     `(("ghc-quickcheck" ,ghc-quickcheck)))
     (home-page "https://github.com/pcapriotti/optparse-applicative")
     (synopsis "Utilities and combinators for parsing command line options")
     (description "This package provides utilities and combinators for parsing
@@ -3696,7 +4091,7 @@ periodic, on-demand actions in Haskell.")
 (define-public ghc-tagged
   (package
     (name "ghc-tagged")
-    (version "0.8.1")
+    (version "0.8.5")
     (source
      (origin
        (method url-fetch)
@@ -3706,8 +4101,10 @@ periodic, on-demand actions in Haskell.")
              ".tar.gz"))
        (sha256
         (base32
-         "1hc2qzhhz5p1xd8k03sklrdnhcflkwhgpl82k6fam8yckww9ipav"))))
+         "16cdzh0bw16nvjnyyy5j9s60malhz4nnazw96vxb0xzdap4m2z74"))))
     (build-system haskell-build-system)
+    (inputs
+     `(("ghc-transformers-compat" ,ghc-transformers-compat)))
     (home-page "https://hackage.haskell.org/package/tagged")
     (synopsis "Haskell phantom types to avoid passing dummy arguments")
     (description "This library provides phantom types for Haskell 98, to avoid
@@ -3809,7 +4206,7 @@ Compatibility package for older packages.")
 (define-public ghc-nats
   (package
     (name "ghc-nats")
-    (version "1")
+    (version "1.1.1")
     (source
      (origin
        (method url-fetch)
@@ -3819,7 +4216,7 @@ Compatibility package for older packages.")
              ".tar.gz"))
        (sha256
         (base32
-         "0r6s8l4s0yq3x2crrkv0b8zac13magfasr9v8hnq6rn1icsfhic0"))))
+         "1kfl2yy97nb7q0j17v96rl73xvi3z4db9bk0xychc76dax41n78k"))))
     (build-system haskell-build-system)
     (arguments `(#:haddock? #f))
     (inputs
@@ -3858,7 +4255,7 @@ given term should not exist.")
 (define-public ghc-kan-extensions
   (package
     (name "ghc-kan-extensions")
-    (version "4.2.3")
+    (version "5.0.1")
     (source
      (origin
        (method url-fetch)
@@ -3868,7 +4265,7 @@ given term should not exist.")
              ".tar.gz"))
        (sha256
         (base32
-         "0iywbadpy8s3isfzlx9dlz3apaywhqq4gdbxkwygksq8pzdhwkrk"))))
+         "1qm0kf4krmyjbjynn96ab0h3q117vwcia5nin7n2b8b4f3jrzph1"))))
     (build-system haskell-build-system)
     (inputs
      `(("ghc-adjunctions" ,ghc-adjunctions)
@@ -3885,10 +4282,31 @@ given term should not exist.")
 forms of the Yoneda lemma, and (co)density (co)monads for Haskell.")
     (license license:bsd-3)))
 
+(define-public ghc-call-stack
+  (package
+    (name "ghc-call-stack")
+    (version "0.1.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://hackage.haskell.org/package/"
+                           "call-stack/call-stack-"
+                           version ".tar.gz"))
+       (sha256
+        (base32
+         "1qmihf5jafmc79sk52l6gpx75f5bnla2lp62kh3p34x3j84mwpzj"))))
+    (build-system haskell-build-system)
+    (inputs `(("ghc-nanospec" ,ghc-nanospec)))
+    (home-page "https://github.com/sol/call-stack#readme")
+    (synopsis "Use GHC call-stacks in a backward compatible way")
+    (description "This package provides a compatibility layer for using GHC
+call stacks with different versions of the compiler.")
+    (license license:expat)))
+
 (define-public ghc-statevar
   (package
     (name "ghc-statevar")
-    (version "1.1.0.1")
+    (version "1.1.0.4")
     (source
      (origin
        (method url-fetch)
@@ -3898,7 +4316,7 @@ forms of the Yoneda lemma, and (co)density (co)monads for Haskell.")
              ".tar.gz"))
        (sha256
         (base32
-         "1ap51cvwq61xckx5hw44l82ihbxvsq3263xr5hqg42c5qp67kbhf"))))
+         "1dzz9l0haswgag9x56q7n57kw18v7nhmzkjyr61nz9y9npn8vmks"))))
     (build-system haskell-build-system)
     (inputs
      `(("ghc-stm" ,ghc-stm)))
@@ -3911,22 +4329,20 @@ in the @code{IO} monad, like @code{IORef}s or parts of the OpenGL state.")
 (define-public ghc-lens
   (package
     (name "ghc-lens")
-    (version "4.13")
+    (version "4.15.4")
     (source
      (origin
        (method url-fetch)
-       (uri (string-append
-             "https://hackage.haskell.org/package/lens/lens-"
-             version
-             ".tar.gz"))
+       (uri (string-append "https://hackage.haskell.org/package/lens/lens-"
+                           version ".tar.gz"))
        (sha256
         (base32
-         "0g4g0xksrb2m8wgsmraaq8qnk1sssb42kr65fc7clgyid6zyfmim"))))
+         "1lkwlnhgpgnsz046mw4qs0fa7h4l012gilrr3nf3spllsy3pnbkl"))))
     (build-system haskell-build-system)
-    (arguments `(#:tests? #f)) ; FIXME: doctest packagedb propagation problem.
     (inputs
      `(("ghc-base-orphans" ,ghc-base-orphans)
        ("ghc-bifunctors" ,ghc-bifunctors)
+       ("ghc-doctest" ,ghc-doctest-0.13)
        ("ghc-distributive" ,ghc-distributive)
        ("ghc-exceptions" ,ghc-exceptions)
        ("ghc-free" ,ghc-free)
@@ -3935,6 +4351,7 @@ in the @code{IO} monad, like @code{IORef}s or parts of the OpenGL state.")
        ("ghc-reflection" ,ghc-reflection)
        ("ghc-semigroupoids" ,ghc-semigroupoids)
        ("ghc-vector" ,ghc-vector)
+       ("ghc-call-stack" ,ghc-call-stack)
        ("ghc-comonad" ,ghc-comonad)
        ("ghc-contravariant" ,ghc-contravariant)
        ("ghc-hashable" ,ghc-hashable)
@@ -3950,6 +4367,14 @@ in the @code{IO} monad, like @code{IORef}s or parts of the OpenGL state.")
        ("ghc-nats" ,ghc-nats)
        ("ghc-simple-reflect" ,ghc-simple-reflect)
        ("hlint" ,hlint)))
+    (native-inputs
+     `(("cabal-doctest" ,cabal-doctest)
+       ("ghc-hunit" ,ghc-hunit)
+       ("ghc-test-framework" ,ghc-test-framework)
+       ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
+       ("ghc-test-framework-th" ,ghc-test-framework-th)
+       ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)
+       ("ghc-quickcheck" ,ghc-quickcheck)))
     (home-page "https://github.com/ekmett/lens/")
     (synopsis "Lenses, Folds and Traversals")
     (description "This library provides @code{Control.Lens}.  The combinators
@@ -3961,7 +4386,7 @@ indexed variants.")
 (define-public ghc-cheapskate
   (package
     (name "ghc-cheapskate")
-    (version "0.1.0.4")
+    (version "0.1.1")
     (source
      (origin
        (method url-fetch)
@@ -3971,20 +4396,16 @@ indexed variants.")
              ".tar.gz"))
        (sha256
         (base32
-         "0drx1hlqvdcrij4097q6bxhbfcqm73jsqv1wwhd3hsnjdmr46ch2"))))
+         "1hiqi7h76shjzs2zj0j8g6wnq2hbiq1hmfafdazr97fba2zl2432"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-aeson" ,ghc-aeson)
+     `(("ghc-mtl" ,ghc-mtl)
+       ("ghc-text" ,ghc-text)
        ("ghc-blaze-html" ,ghc-blaze-html)
+       ("ghc-xss-sanitize" ,ghc-xss-sanitize)
        ("ghc-data-default" ,ghc-data-default)
-       ("ghc-http-types" ,ghc-http-types)
-       ("ghc-mtl" ,ghc-mtl)
        ("ghc-syb" ,ghc-syb)
-       ("ghc-text" ,ghc-text)
-       ("ghc-uniplate" ,ghc-uniplate)
-       ("ghc-wai-extra" ,ghc-wai-extra)
-       ("ghc-wai" ,ghc-wai)
-       ("ghc-xss-sanitize" ,ghc-xss-sanitize)))
+       ("ghc-uniplate" ,ghc-uniplate)))
     (home-page "https://github.com/jgm/cheapskate")
     (synopsis "Experimental markdown processor")
     (description "Cheapskate is an experimental Markdown processor in pure
@@ -3997,7 +4418,7 @@ cross-site scripting (@dfn{XSS}) attacks.")
 (define-public ghc-bifunctors
   (package
     (name "ghc-bifunctors")
-    (version "5")
+    (version "5.5.2")
     (source
      (origin
        (method url-fetch)
@@ -4007,11 +4428,19 @@ cross-site scripting (@dfn{XSS}) attacks.")
              ".tar.gz"))
        (sha256
         (base32
-         "13990xdgx0n23qgi18ghhmsywj5zkr0a5bim0g8a4nzi0cx95ps1"))))
+         "04fbsysm6zl8kmvqgffmrqa9bxl9dl2gibrd51asqzg737mb4ark"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-tagged" ,ghc-tagged)
+     `(("ghc-base-orphans" ,ghc-base-orphans)
+       ("ghc-comonad" ,ghc-comonad)
+       ("ghc-th-abstraction" ,ghc-th-abstraction)
+       ("ghc-transformers-compat" ,ghc-transformers-compat)
+       ("ghc-tagged" ,ghc-tagged)
        ("ghc-semigroups" ,ghc-semigroups)))
+    (native-inputs
+     `(("ghc-hspec" ,ghc-hspec)
+       ("hspec-discover" ,hspec-discover)
+       ("ghc-quickcheck" ,ghc-quickcheck)))
     (home-page "https://github.com/ekmett/bifunctors/")
     (synopsis "Bifunctors for Haskell")
     (description "This package provides bifunctors for Haskell.")
@@ -4020,7 +4449,7 @@ cross-site scripting (@dfn{XSS}) attacks.")
 (define-public ghc-semigroupoids
   (package
     (name "ghc-semigroupoids")
-    (version "5.0.0.4")
+    (version "5.1")
     (source
      (origin
        (method url-fetch)
@@ -4030,7 +4459,7 @@ cross-site scripting (@dfn{XSS}) attacks.")
              ".tar.gz"))
        (sha256
         (base32
-         "1jf7jnfhdvl6p18wdr21yi2fim1xb8alcn6szhrdswj0dkilgq6d"))))
+         "0dgqc59p4xx5cl8qkpm6sn4wd3n59rq7l6din76hf10bnklqrb0n"))))
     (build-system haskell-build-system)
     (arguments `(#:tests? #f)) ; FIXME: doctest packagedb propagation problem.
     (inputs
@@ -4151,7 +4580,7 @@ definition of @code{Monad}.")
 (define-public ghc-adjunctions
   (package
     (name "ghc-adjunctions")
-    (version "4.2.2")
+    (version "4.3")
     (source
      (origin
        (method url-fetch)
@@ -4161,7 +4590,7 @@ definition of @code{Monad}.")
              ".tar.gz"))
        (sha256
         (base32
-         "00p030iypjzjib8pxz1x6mxfi59wvyrwjj11zv9bh766dgkdbwjq"))))
+         "1k1ykisf96i4g2zm47c45md7p42c4vsp9r73392pz1g8mx7s2j5r"))))
     (build-system haskell-build-system)
     (inputs
      `(("ghc-profunctors" ,ghc-profunctors)
@@ -4212,7 +4641,7 @@ monad transformer (instead of the IO monad).")
 (define-public ghc-fast-logger
   (package
     (name "ghc-fast-logger")
-    (version "2.4.1")
+    (version "2.4.11")
     (source
      (origin
        (method url-fetch)
@@ -4222,12 +4651,13 @@ monad transformer (instead of the IO monad).")
              ".tar.gz"))
        (sha256
         (base32
-         "0kjk1861qcls8m8y7i55msfpprws5wk6c5mxzi35g2qbl2sih4p5"))))
+         "1ad2vq4nifdxshqk9yrmghqizhkgybfz134kpr6padglb2mxxrdv"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-bytestring-builder" ,ghc-bytestring-builder)
-       ("ghc-auto-update" ,ghc-auto-update)
-       ("ghc-text" ,ghc-text)))
+     `(("ghc-auto-update" ,ghc-auto-update)
+       ("ghc-easy-file" ,ghc-easy-file)
+       ("ghc-text" ,ghc-text)
+       ("ghc-unix-time" ,ghc-unix-time)))
     (native-inputs
      `(("hspec-discover" ,hspec-discover)
        ("ghc-hspec" ,ghc-hspec)))
@@ -4239,7 +4669,7 @@ monad transformer (instead of the IO monad).")
 (define-public ghc-doctest
   (package
     (name "ghc-doctest")
-    (version "0.10.1")
+    (version "0.11.0")
     (source
      (origin
        (method url-fetch)
@@ -4249,7 +4679,7 @@ monad transformer (instead of the IO monad).")
              ".tar.gz"))
        (sha256
         (base32
-         "1jbyhzbi2hfrfg7vbkpj6vriaap8cn99nnmzwcfscwaijz09jyrm"))))
+         "0xv4vx1r3mk7cmiwywzrq25545cx3i7imhcx33mk47r88j5c49fj"))))
     (build-system haskell-build-system)
     (arguments `(#:tests? #f))          ; FIXME: missing test framework
     (inputs
@@ -4270,10 +4700,41 @@ It is modeled after doctest for Python, see
 @uref{http://docs.python.org/library/doctest.html, the Doctest website}.")
     (license license:expat)))
 
+(define-public ghc-doctest-0.12
+  (package (inherit ghc-doctest)
+    (name "ghc-doctest")
+    (version "0.12.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "https://hackage.haskell.org/package/doctest/doctest-"
+             version
+             ".tar.gz"))
+       (sha256
+        (base32
+         "13h549cpgcvb7c54c7wif28g5wak84dxc3ais0hlqhzk1q6la91a"))))
+    (inputs
+     `(("ghc-code-page" ,ghc-code-page)
+       ,@(package-inputs ghc-doctest)))))
+
+(define-public ghc-doctest-0.13
+  (package (inherit ghc-doctest-0.12)
+    (name "ghc-doctest")
+    (version "0.13.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://hackage.haskell.org/package/"
+                           "doctest/doctest-" version ".tar.gz"))
+       (sha256
+        (base32
+         "08g3nmpqbnbkxc95d65hkhfabwax10qrq51vlynr342npn40mn2b"))))))
+
 (define-public ghc-lifted-base
   (package
     (name "ghc-lifted-base")
-    (version "0.2.3.6")
+    (version "0.2.3.8")
     (source
      (origin
        (method url-fetch)
@@ -4283,7 +4744,7 @@ It is modeled after doctest for Python, see
              ".tar.gz"))
        (sha256
         (base32
-         "1yz14a1rsgknwyl08n4kxrlc26hfwmb95a3c2drbnsgmhdyq7iap"))))
+         "17yz4n7q96x4cp8vxai8csn2vmpigxvipkfh48arahf91f0xy18n"))))
     (build-system haskell-build-system)
     (arguments `(#:tests? #f)) ; FIXME: Missing testing libraries.
     (inputs
@@ -4303,7 +4764,7 @@ Kaseorg.")
 (define-public ghc-word8
   (package
     (name "ghc-word8")
-    (version "0.1.2")
+    (version "0.1.3")
     (source
      (origin
        (method url-fetch)
@@ -4313,7 +4774,7 @@ Kaseorg.")
              ".tar.gz"))
        (sha256
         (base32
-         "1pbn8ra3qhwvw07p375cdmp7jzlg07hgdcr4cpscz3h7b9sy7fiw"))))
+         "12jx7f13d2h1djq4fh4dyrab61sm49mj1w61j3rzp2vjfm696c16"))))
     (build-system haskell-build-system)
     (native-inputs
      `(("ghc-hspec" ,ghc-hspec)
@@ -4346,10 +4807,42 @@ functions for breaking or splitting on substrings and replacing all
 occurrences of a substring (the first in case of overlaps) with another.")
     (license license:bsd-3)))
 
+(define-public ghc-integer-logarithms
+  (package
+    (name "ghc-integer-logarithms")
+    (version "1.0.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://hackage.haskell.org/package/"
+                           "integer-logarithms/integer-logarithms-"
+                           version ".tar.gz"))
+       (sha256
+        (base32
+         "0w5mhak181zi6qr5h2zbcs9ymaqacisp9jwk99naz6s8zz5rq1ii"))))
+    (build-system haskell-build-system)
+    (inputs
+     `(("ghc-tasty" ,ghc-tasty)
+       ("ghc-tasty-smallcheck" ,ghc-tasty-smallcheck)
+       ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
+       ("ghc-tasty-hunit" ,ghc-tasty-hunit)
+       ("ghc-quickcheck" ,ghc-quickcheck)
+       ("ghc-smallcheck" ,ghc-smallcheck)))
+    (home-page "https://github.com/phadej/integer-logarithms")
+    (synopsis "Integer logarithms")
+    (description
+     "This package provides the following modules:
+@code{Math.NumberTheory.Logarithms} and
+@code{Math.NumberTheory.Powers.Integer} from the @code{arithmoi} package,
+@code{GHC.Integer.Logarithms.Compat} and
+@code{Math.NumberTheory.Power.Natural}, as well as some additional functions
+in migrated modules.")
+    (license license:expat)))
+
 (define-public ghc-scientific
   (package
     (name "ghc-scientific")
-    (version "0.3.4.2")
+    (version "0.3.5.2")
     (source
      (origin
        (method url-fetch)
@@ -4359,12 +4852,13 @@ occurrences of a substring (the first in case of overlaps) with another.")
              ".tar.gz"))
        (sha256
         (base32
-         "0mimdkva0cgzaychr6whv9if29z0r5wwhkss9bmd4rz8kq1kgngn"))))
+         "0msnjz7ml0zycw9bssslxbg0nigziw7vs5km4q3vjbs8jpzpkr2w"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-hashable" ,ghc-hashable)
-       ("ghc-vector" ,ghc-vector)
+     `(("ghc-integer-logarithms" ,ghc-integer-logarithms)
        ("ghc-text" ,ghc-text)
+       ("ghc-hashable" ,ghc-hashable)
+       ("ghc-primitive" ,ghc-primitive)
        ("ghc-tasty" ,ghc-tasty)
        ("ghc-tasty-ant-xml" ,ghc-tasty-ant-xml)
        ("ghc-tasty-hunit" ,ghc-tasty-hunit)
@@ -4428,10 +4922,33 @@ using a simple box model.")
 providing an 'rnf' implementation.")
     (license license:bsd-3)))
 
+(define-public ghc-string-qq
+  (package
+    (name "ghc-string-qq")
+    (version "0.0.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "https://hackage.haskell.org/package/string-qq/string-qq-"
+             version
+             ".tar.gz"))
+       (sha256
+        (base32
+         "0662m3i5xrdrr95w829bszkhp88mj9iy1zya54vk2sl5hz9wlmwp"))))
+    (build-system haskell-build-system)
+    (home-page "http://hackage.haskell.org/package/string-qq")
+    (synopsis
+     "QuasiQuoter for non-interpolated strings, texts and bytestrings.")
+    (description
+     "This package provides a quasiquoter for non-interpolated strings, texts
+and bytestrings.")
+    (license license:public-domain)))
+
 (define-public ghc-pandoc-types
   (package
     (name "ghc-pandoc-types")
-    (version "1.16.1.1")
+    (version "1.17.3.1")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://hackage.haskell.org/package/"
@@ -4439,12 +4956,20 @@ providing an 'rnf' implementation.")
                                   version ".tar.gz"))
               (sha256
                (base32
-                "094mzgdxva84kcpjf9m8b5n3chm1wm44bzflh5x6xhddz6pb7zpq"))))
+                "0dhp5bcjl6605n2chiab5rp51zir3671gxkmwy34znh0s3vp85jb"))))
     (build-system haskell-build-system)
+    (arguments
+     `(#:configure-flags (list "--allow-newer=QuickCheck")))
     (inputs
      `(("ghc-syb" ,ghc-syb)
        ("ghc-aeson" ,ghc-aeson)
-       ("ghc-deepseq-generics" ,ghc-deepseq-generics)))
+       ("ghc-string-qq" ,ghc-string-qq)))
+    (native-inputs
+     `(("ghc-quickcheck" ,ghc-quickcheck)
+       ("ghc-test-framework" ,ghc-test-framework)
+       ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
+       ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)
+       ("ghc-hunit" ,ghc-hunit)))
     (home-page "http://johnmacfarlane.net/pandoc")
     (synopsis "Types for representing a structured document")
     (description
@@ -4456,14 +4981,14 @@ building up, manipulating and serialising @code{Pandoc} structures.")
 (define-public ghc-texmath
   (package
     (name "ghc-texmath")
-    (version "0.8.6.5")
+    (version "0.10.1.1")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://hackage.haskell.org/package/"
                                   "texmath/texmath-" version ".tar.gz"))
               (sha256
                (base32
-                "143c8k7dyhwa9blpa8svy23ybx7i4xzb9jnfcimj8iigizbw7y1k"))))
+                "0q2fld5mdcd6j1n3rrg3bjpndbgbn17cwg0xbnvscrpa0s767jaj"))))
     (build-system haskell-build-system)
     (inputs
      `(("ghc-syb" ,ghc-syb)
@@ -4512,15 +5037,19 @@ providing the PCRE backend to accompany regex-base, with bundled code from
 (define-public ghc-diff
   (package
     (name "ghc-diff")
-    (version "0.3.2")
+    (version "0.3.4")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://hackage.haskell.org/package/"
                                   "Diff/Diff-" version ".tar.gz"))
               (sha256
                (base32
-                "13iqqmpadcm7fvqwbfrz94w030rvjh66w2bdls1253128ac2n0vz"))))
+                "0bqcdvhxx8dmqc3793m6axg813wv9ldz2j37f1wygbbrbbndmdvp"))))
     (build-system haskell-build-system)
+    (native-inputs
+     `(("ghc-quickcheck" ,ghc-quickcheck)
+       ("ghc-test-framework" ,ghc-test-framework)
+       ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
     (home-page "http://hub.darcs.net/sterlingclover/Diff")
     (synopsis "O(ND) diff algorithm in Haskell")
     (description
@@ -4587,6 +5116,34 @@ CommonMark, a fully specified variant of Markdown.  It includes bundled libcmark
 sources, and does not require prior installation of the C library.")
     (license license:bsd-3)))
 
+(define-public ghc-cmark-gfm
+  (package
+    (name "ghc-cmark-gfm")
+    (version "0.1.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://hackage.haskell.org/package/"
+                           "cmark-gfm/cmark-gfm-"
+                           version ".tar.gz"))
+       (sha256
+        (base32
+         "1fkisbrydmdx5h8yad09fzk8h1b1j53r02g7vb81izgdwj9b673k"))))
+    (build-system haskell-build-system)
+    (inputs
+     `(("ghc-text" ,ghc-text)))
+    (native-inputs
+     `(("ghc-hunit" ,ghc-hunit)))
+    (home-page "https://github.com/kivikakk/cmark-gfm-hs")
+    (synopsis
+     "Fast, accurate GitHub Flavored Markdown parser and renderer")
+    (description
+     "This package provides Haskell bindings for libcmark-gfm, the reference
+parser for GitHub Flavored Markdown, a fully specified variant of Markdown.
+It includes sources for libcmark-gfm and does not require prior installation
+of the C library.")
+    (license license:bsd-3)))
+
 (define-public ghc-executable-path
   (package
     (name "ghc-executable-path")
@@ -4667,20 +5224,41 @@ asynchronous exceptions.")
      "This deprecated library provides an implementation of packed strings.")
     (license license:bsd-3)))
 
+(define-public ghc-th-abstraction
+  (package
+    (name "ghc-th-abstraction")
+    (version "0.2.6.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://hackage.haskell.org/package/"
+                           "th-abstraction/th-abstraction-"
+                           version ".tar.gz"))
+       (sha256
+        (base32
+         "0g42h6wnj2awc5ryhbvx009wd8w75pn66bjzsq1z4s3xajd2hbp5"))))
+    (build-system haskell-build-system)
+    (home-page "https://github.com/glguy/th-abstraction")
+    (synopsis "Nicer interface for reified information about data types")
+    (description
+     "This package normalizes variations in the interface for inspecting
+datatype information via Template Haskell so that packages and support a
+single, easier to use informational datatype while supporting many versions of
+Template Haskell.")
+    (license license:isc)))
+
 (define-public ghc-th-lift
   (package
     (name "ghc-th-lift")
-    (version "0.7.5")
+    (version "0.7.8")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://hackage.haskell.org/package/"
                                   "th-lift/th-lift-" version ".tar.gz"))
               (sha256
                (base32
-                "13xdkk1chdghf059sfx8d3d8r0mj1dbzdi5kf2zf0mjmz3qq7m7k"))))
+                "0ay10b78x3969rpqqrgzy8srkl6iby2cljbf3mm17na8x22k7y1c"))))
     (build-system haskell-build-system)
-    (inputs
-     `(("ghc-packedstring" ,ghc-packedstring)))
     (home-page "https://github.com/mboes/th-lift")
     (synopsis "Derive Template Haskell's Lift class for datatypes")
     (description
@@ -4688,10 +5266,36 @@ asynchronous exceptions.")
 datatypes.")
     (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/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)
+       ("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 @code{containers},
+@code{text}, @code{bytestring} and @code{vector}.")
+    (license license:bsd-3)))
+
 (define-public ghc-th-expand-syns
   (package
     (name "ghc-th-expand-syns")
-    (version "0.3.0.6")
+    (version "0.4.0.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://hackage.haskell.org/package/"
@@ -4699,7 +5303,7 @@ datatypes.")
                                   version ".tar.gz"))
               (sha256
                (base32
-                "03qv93pyqk8all39knsf0mzmbfdck5x61kqnyn8rbisw5c1ymx6j"))))
+                "1sjy7a17zwyvlbkc8gklii67sy78wpnw35fyb00lsbnpk4cryd2r"))))
     (build-system haskell-build-system)
     (inputs
      `(("ghc-syb" ,ghc-syb)))
@@ -4713,7 +5317,7 @@ datatypes.")
 (define-public ghc-th-reify-many
   (package
     (name "ghc-th-reify-many")
-    (version "0.1.3")
+    (version "0.1.6")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://hackage.haskell.org/package/"
@@ -4721,7 +5325,7 @@ datatypes.")
                                   version ".tar.gz"))
               (sha256
                (base32
-                "00hryljcs434wcv1vaamfdbjk857f46djxv7mlwplkl3zsmfhlfx"))))
+                "1b76zjxkj0v0n8zj9l0nwav2irm0c43rx6qjihfw8klmmxvx59df"))))
     (build-system haskell-build-system)
     (inputs
      `(("ghc-mtl" ,ghc-mtl)
@@ -4739,17 +5343,18 @@ function which generates instances.")
 (define-public ghc-th-orphans
   (package
     (name "ghc-th-orphans")
-    (version "0.13.0")
+    (version "0.13.2")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://hackage.haskell.org/package/"
                                   "th-orphans/th-orphans-" version ".tar.gz"))
               (sha256
                (base32
-                "105y03bxh0a2r69l603i7md17gg1vxs1jj1n40pn5q486lmfxbmx"))))
+                "0102vkyzpgnp2fys8pvw4khrhrh2y1b8dp1slgvn020vg4s351mc"))))
     (build-system haskell-build-system)
     (inputs
      `(("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)))
@@ -4811,7 +5416,7 @@ info for more informative bug reports.")
 (define-public ghc-haskell-src-meta
   (package
     (name "ghc-haskell-src-meta")
-    (version "0.6.0.12")
+    (version "0.8.0.2")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://hackage.haskell.org/package/"
@@ -4819,12 +5424,16 @@ info for more informative bug reports.")
                                   version ".tar.gz"))
               (sha256
                (base32
-                "1mzbfrfvl6pj8068w3m6alzry1403ir1gmz3czg66n5z198l4dql"))))
+                "12rc4v5dbbbcwdp7j8isvnm9vqpazv124j5kdfwlgwgwjhxi8ysb"))))
     (build-system haskell-build-system)
     (inputs
      `(("ghc-haskell-src-exts" ,ghc-haskell-src-exts)
        ("ghc-syb" ,ghc-syb)
        ("ghc-th-orphans" ,ghc-th-orphans)))
+    (native-inputs
+     `(("ghc-hunit" ,ghc-hunit)
+       ("ghc-test-framework" ,ghc-test-framework)
+       ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)))
     (home-page "https://hackage.haskell.org/package/haskell-src-meta")
     (synopsis "Parse source to template-haskell abstract syntax")
     (description
@@ -4870,7 +5479,7 @@ space as enumerator/iteratee and pipes.")
 (define-public ghc-logging-facade
   (package
     (name "ghc-logging-facade")
-    (version "0.1.0")
+    (version "0.1.1")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://hackage.haskell.org/package/"
@@ -4878,7 +5487,7 @@ space as enumerator/iteratee and pipes.")
                                   version ".tar.gz"))
               (sha256
                (base32
-                "0zhdbjyj0j9by19rma9alxysrxnnl3s4kks4zk4bx0dg5xa0264y"))))
+                "18ldv6rsff480rqpbs3iabjpvn1fhw0i2a0g80jnhxg9ajfz5yb0"))))
     (build-system haskell-build-system)
     (native-inputs
      `(("ghc-hspec" ,ghc-hspec)
@@ -4893,18 +5502,19 @@ back-ends.")
 (define-public ghc-mockery
   (package
     (name "ghc-mockery")
-    (version "0.3.2")
+    (version "0.3.3")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://hackage.haskell.org/package/"
                                   "mockery/mockery-" version ".tar.gz"))
               (sha256
                (base32
-                "0m0lp2z63sgkylz5318j53r5hnrkp705qh7nqbb149ir4gy7g1bg"))))
+                "1m7sq2vclgir3qbpngzl3g87ks4034blwwf7p3h02c0jlcwpl5b1"))))
     (build-system haskell-build-system)
     (inputs
      `(("ghc-temporary" ,ghc-temporary)
-       ("ghc-logging-facade" ,ghc-logging-facade)))
+       ("ghc-logging-facade" ,ghc-logging-facade)
+       ("ghc-base-compat" ,ghc-base-compat)))
     (native-inputs
      `(("ghc-hspec" ,ghc-hspec)
        ("hspec-discover" ,hspec-discover)))
@@ -4917,14 +5527,14 @@ back-ends.")
 (define-public ghc-yaml
   (package
     (name "ghc-yaml")
-    (version "0.8.15.1")
+    (version "0.8.28")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://hackage.haskell.org/package/"
                                   "yaml/yaml-" version ".tar.gz"))
               (sha256
                (base32
-                "0v6c435xmgm99zxb30pqr7lhkb2a56wxqp70g4hjz8p7rj0vichx"))))
+                "0swgkzkfrwj0ac7lssn8rnrdfmh3lcsdn5fbq2iwv55di6jbc0pp"))))
     (build-system haskell-build-system)
     (inputs
      `(("ghc-conduit" ,ghc-conduit)
@@ -4935,8 +5545,9 @@ back-ends.")
        ("ghc-text" ,ghc-text)
        ("ghc-attoparsec" ,ghc-attoparsec)
        ("ghc-scientific" ,ghc-scientific)
+       ("ghc-semigroups" ,ghc-semigroups)
+       ("ghc-temporary" ,ghc-temporary)
        ("ghc-enclosed-exceptions" ,ghc-enclosed-exceptions)
-       ("ghc-aeson-qq" ,ghc-aeson-qq)
        ("ghc-base-compat" ,ghc-base-compat)))
     (native-inputs
      `(("ghc-hspec" ,ghc-hspec)
@@ -5022,25 +5633,28 @@ TIFF and GIF formats.")
 (define-public ghc-hslua
   (package
     (name "ghc-hslua")
-    (version "0.4.1")
+    (version "0.9.5")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://hackage.haskell.org/package/"
                                   "hslua/hslua-" version ".tar.gz"))
               (sha256
                (base32
-                "0gqp6qhp4v24kzv2j49kgk7bxqzw0w10x0zr0r2j9wkfavqb9wid"))))
+                "1j2zk7f7nyywg2b0n6kb2yf6ljc7cn2sk9jz0h76g3ag2b70l12n"))))
     (build-system haskell-build-system)
     (arguments
      `(#:configure-flags '("-fsystem-lua")))
     (inputs
-     `(("lua" ,lua-5.1)
+     `(("lua" ,lua)
+       ("ghc-exceptions" ,ghc-exceptions)
+       ("ghc-fail" ,ghc-fail)
+       ("ghc-mtl" ,ghc-mtl)
        ("ghc-text" ,ghc-text)))
     (native-inputs
-     `(("ghc-hspec" ,ghc-hspec)
-       ("ghc-hspec-contrib" ,ghc-hspec-contrib)
-       ("hspec-discover" ,hspec-discover)
-       ("ghc-hunit" ,ghc-hunit)
+     `(("ghc-tasty" ,ghc-tasty)
+       ("ghc-tasty-expected-failure" ,ghc-tasty-expected-failure)
+       ("ghc-tasty-hunit" ,ghc-tasty-hunit)
+       ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
        ("ghc-quickcheck" ,ghc-quickcheck)
        ("ghc-quickcheck-instances" ,ghc-quickcheck-instances)))
     (home-page "https://hackage.haskell.org/package/hslua")
@@ -5050,6 +5664,34 @@ TIFF and GIF formats.")
 described in @url{http://www.lua.org/}.")
     (license license:expat)))
 
+(define-public ghc-hslua-module-text
+  (package
+    (name "ghc-hslua-module-text")
+    (version "0.1.2.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://hackage.haskell.org/package/"
+                           "hslua-module-text/hslua-module-text-"
+                           version ".tar.gz"))
+       (sha256
+        (base32
+         "0bcfpb1dhnxp0gr376ai4w7vczr9zrjl1r3r6w7kcxivfkwq9cxf"))))
+    (build-system haskell-build-system)
+    (inputs
+     `(("ghc-hslua" ,ghc-hslua)
+       ("ghc-text" ,ghc-text)))
+    (native-inputs
+     `(("ghc-tasty" ,ghc-tasty)
+       ("ghc-tasty-hunit" ,ghc-tasty-hunit)))
+    (home-page "https://github.com/hslua/hslua-module-text")
+    (synopsis "Lua module for text")
+    (description
+     "This package provides a UTF-8 aware subset of Lua's @code{string} module
+for Haskell.  The functions provided by this module are @code{upper},
+@code{lower}, @code{len}, @code{reverse}, and @code{sub}.")
+    (license license:expat)))
+
 (define-public ghc-byteable
   (package
     (name "ghc-byteable")
@@ -5073,14 +5715,14 @@ wrapping a bytestring with stronger and more meaniful name.")
 (define-public ghc-hourglass
   (package
     (name "ghc-hourglass")
-    (version "0.2.9")
+    (version "0.2.10")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://hackage.haskell.org/package/"
                                   "hourglass/hourglass-" version ".tar.gz"))
               (sha256
                (base32
-                "1xha17nwzxdjizbcp63d2142c6q051y77facs7xribgcl5iz2m4v"))))
+                "104d1yd84hclprg740nkz60vx589mnm094zriw6zczbgg8nkclym"))))
     (build-system haskell-build-system)
     (inputs
      `(("ghc-mtl" ,ghc-mtl)
@@ -5153,14 +5795,14 @@ set, memory copy, ..) and more")
 (define-public ghc-socks
   (package
     (name "ghc-socks")
-    (version "0.5.4")
+    (version "0.5.5")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://hackage.haskell.org/package/"
                                   "socks/socks-" version ".tar.gz"))
               (sha256
                (base32
-                "1nmldlwxqasmg359i2aa3a903gi3lmnlspvf12xk49jrg3mf3dg9"))))
+                "0s689w1hh9g8ifl75xhzbv96ir07hwn04b4lgvbxzl8swa9ylir6"))))
     (build-system haskell-build-system)
     (inputs
      `(("ghc-cereal" ,ghc-cereal)
@@ -5174,7 +5816,7 @@ set, memory copy, ..) and more")
 (define-public ghc-connection
   (package
     (name "ghc-connection")
-    (version "0.2.5")
+    (version "0.2.6")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://hackage.haskell.org/package/"
@@ -5182,7 +5824,7 @@ set, memory copy, ..) and more")
                                   version ".tar.gz"))
               (sha256
                (base32
-                "090il95jnm7ihwvcx3s9v6iwnp37nnsdx15q7722l845g51d95c8"))))
+                "1c1prsgad669cmf6qrqlb5hmh0dnam2imijqzpwcr4ja14l6rh83"))))
     (build-system haskell-build-system)
     (inputs
      `(("ghc-byteable" ,ghc-byteable)
@@ -5202,10 +5844,85 @@ needs.  It provides a very simple API to create sockets to a destination with
 the choice of SSL/TLS, and SOCKS.")
     (license license:bsd-3)))
 
+(define-public ghc-skylighting
+  (package
+    (name "ghc-skylighting")
+    (version "0.5.1")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://hackage.haskell.org/package/skylighting-"
+                                  version "/skylighting-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0l5lhhqqlfaq1fs7pn3n3b25kmazk8p4ahwvhagbrhcbm5hsigdg"))))
+    (build-system haskell-build-system)
+    (inputs
+     `(("ghc-aeson" ,ghc-aeson)
+       ("ghc-ansi-terminal" ,ghc-ansi-terminal)
+       ("ghc-attoparsec" ,ghc-attoparsec)
+       ("ghc-base64-bytestring" ,ghc-base64-bytestring)
+       ("ghc-blaze-html" ,ghc-blaze-html)
+       ("ghc-case-insensitive" ,ghc-case-insensitive)
+       ("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)
+       ("ghc-text" ,ghc-text)
+       ("ghc-utf8-string" ,ghc-utf8-string)))
+    (native-inputs
+     `(("ghc-hunit" ,ghc-hunit)
+       ("ghc-quickcheck" ,ghc-quickcheck)
+       ("ghc-tasty" ,ghc-tasty)
+       ("ghc-tasty-golden" ,ghc-tasty-golden)
+       ("ghc-tasty-hunit" ,ghc-tasty-hunit)
+       ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
+    (home-page "https://hackage.haskell.org/package/skylighting")
+    (synopsis "Syntax highlighting library")
+    (description "Skylighting is a syntax highlighting library with support
+for over one hundred languages.  It derives its tokenizers from XML syntax
+definitions used by KDE's @code{KSyntaxHighlighting} framework, so any syntax
+supported by that framework can be added.  An optional command-line program is
+provided.  Skylighting is intended to be the successor to highlighting-kate.")
+    (license license:gpl2)))
+
+(define-public ghc-doctemplates
+  (package
+    (name "ghc-doctemplates")
+    (version "0.2.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://hackage.haskell.org/package/"
+                           "doctemplates/doctemplates-"
+                           version ".tar.gz"))
+       (sha256
+        (base32
+         "1bfs2kl5j5al2w2y4qpbn68p0xsnb65r7h51l356kpkzc326646p"))))
+    (build-system haskell-build-system)
+    (inputs
+     `(("ghc-aeson" ,ghc-aeson)
+       ("ghc-blaze-markup" ,ghc-blaze-markup)
+       ("ghc-blaze-html" ,ghc-blaze-html)
+       ("ghc-text" ,ghc-text)
+       ("ghc-vector" ,ghc-vector)
+       ("ghc-parsec" ,ghc-parsec)
+       ("ghc-unordered-containers" ,ghc-unordered-containers)
+       ("ghc-scientific" ,ghc-scientific)))
+    (native-inputs
+     `(("ghc-hspec" ,ghc-hspec)))
+    (home-page "https://github.com/jgm/doctemplates#readme")
+    (synopsis "Pandoc-style document templates")
+    (description
+     "This package provides a simple text templating system used by pandoc.")
+    (license license:bsd-3)))
+
 (define-public ghc-pandoc
   (package
     (name "ghc-pandoc")
-    (version "1.17.2")
+    (version "2.0.6")
     (source
      (origin
        (method url-fetch)
@@ -5213,53 +5930,56 @@ the choice of SSL/TLS, and SOCKS.")
                            version ".tar.gz"))
        (sha256
         (base32
-         "1v78zq12p71gq0pc24h08inxcq5gxd0xb7m5ds0xw9pv9l2pswl1"))))
+         "1vhj6splykksb1mkxv5cs0361nj12qn23a3y1i8j5dc637lkdwpj"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-syb" ,ghc-syb)
-       ("ghc-unordered-containers" ,ghc-unordered-containers)
-       ("ghc-parsec" ,ghc-parsec)
-       ("ghc-mtl" ,ghc-mtl)
-       ("ghc-text" ,ghc-text)
-       ("ghc-zip-archive" ,ghc-zip-archive)
-       ("ghc-http" ,ghc-http)
-       ("ghc-texmath" ,ghc-texmath)
-       ("ghc-xml" ,ghc-xml)
-       ("ghc-random" ,ghc-random)
-       ("ghc-extensible-exceptions" ,ghc-extensible-exceptions)
-       ("ghc-pandoc-types" ,ghc-pandoc-types)
-       ("ghc-aeson" ,ghc-aeson)
-       ("ghc-tagsoup" ,ghc-tagsoup)
+     `(("ghc-aeson" ,ghc-aeson)
+       ("ghc-aeson-pretty" ,ghc-aeson-pretty)
        ("ghc-base64-bytestring" ,ghc-base64-bytestring)
-       ("ghc-zlib" ,ghc-zlib)
-       ("ghc-highlighting-kate" ,ghc-highlighting-kate)
-       ("ghc-data-default" ,ghc-data-default)
-       ("ghc-temporary" ,ghc-temporary)
        ("ghc-blaze-html" ,ghc-blaze-html)
        ("ghc-blaze-markup" ,ghc-blaze-markup)
-       ("ghc-yaml" ,ghc-yaml)
-       ("ghc-scientific" ,ghc-scientific)
-       ("ghc-vector" ,ghc-vector)
-       ("ghc-hslua" ,ghc-hslua)
-       ("ghc-sha" ,ghc-sha)
-       ("ghc-haddock-library" ,ghc-haddock-library)
-       ("ghc-old-time" ,ghc-old-time)
+       ("ghc-cmark-gfm" ,ghc-cmark-gfm)
+       ("ghc-data-default" ,ghc-data-default)
        ("ghc-deepseq-generics" ,ghc-deepseq-generics)
-       ("ghc-juicypixels" ,ghc-juicypixels)
-       ("ghc-filemanip" ,ghc-filemanip)
-       ("ghc-cmark" ,ghc-cmark)
-       ("ghc-network-uri" ,ghc-network-uri)
-       ("ghc-network" ,ghc-network)
+       ("ghc-diff" ,ghc-diff)
+       ("ghc-doctemplates" ,ghc-doctemplates)
+       ("ghc-executable-path" ,ghc-executable-path)
+       ("ghc-glob" ,ghc-glob)
+       ("ghc-haddock-library" ,ghc-haddock-library)
+       ("ghc-hslua" ,ghc-hslua)
+       ("ghc-hslua-module-text" ,ghc-hslua-module-text)
+       ("ghc-http" ,ghc-http)
        ("ghc-http-client" ,ghc-http-client)
        ("ghc-http-client-tls" ,ghc-http-client-tls)
        ("ghc-http-types" ,ghc-http-types)
-       ("ghc-diff" ,ghc-diff)
-       ("ghc-ansi-terminal" ,ghc-ansi-terminal)
-       ("ghc-executable-path" ,ghc-executable-path)))
+       ("ghc-juicypixels" ,ghc-juicypixels)
+       ("ghc-mtl" ,ghc-mtl)
+       ("ghc-network" ,ghc-network)
+       ("ghc-network-uri" ,ghc-network-uri)
+       ("ghc-old-locale" ,ghc-old-locale)
+       ("ghc-pandoc-types" ,ghc-pandoc-types)
+       ("ghc-parsec" ,ghc-parsec)
+       ("ghc-random" ,ghc-random)
+       ("ghc-scientific" ,ghc-scientific)
+       ("ghc-sha" ,ghc-sha)
+       ("ghc-skylighting" ,ghc-skylighting)
+       ("ghc-split" ,ghc-split)
+       ("ghc-syb" ,ghc-syb)
+       ("ghc-tagsoup" ,ghc-tagsoup)
+       ("ghc-temporary" ,ghc-temporary)
+       ("ghc-texmath" ,ghc-texmath)
+       ("ghc-text" ,ghc-text)
+       ("ghc-unordered-containers" ,ghc-unordered-containers)
+       ("ghc-vector" ,ghc-vector)
+       ("ghc-xml" ,ghc-xml)
+       ("ghc-yaml" ,ghc-yaml)
+       ("ghc-zip-archive" ,ghc-zip-archive)
+       ("ghc-zlib" ,ghc-zlib)))
     (native-inputs
-     `(("ghc-test-framework" ,ghc-test-framework)
-       ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
-       ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)
+     `(("ghc-tasty" ,ghc-tasty)
+       ("ghc-tasty-golden" ,ghc-tasty-golden)
+       ("ghc-tasty-hunit" ,ghc-tasty-hunit)
+       ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
        ("ghc-quickcheck" ,ghc-quickcheck)
        ("ghc-hunit" ,ghc-hunit)))
     (home-page "http://pandoc.org")
@@ -5278,7 +5998,7 @@ provided for those who need a drop-in replacement for Markdown.pl.")
 (define-public ghc-hs-bibutils
   (package
     (name "ghc-hs-bibutils")
-    (version "5.5")
+    (version "6.2.0.1")
     (source
      (origin
        (method url-fetch)
@@ -5287,7 +6007,7 @@ provided for those who need a drop-in replacement for Markdown.pl.")
              version ".tar.gz"))
        (sha256
         (base32
-         "0pf5lh179rw9jkmw16ss3kiwydlj6zgfk868mjl5s57kx55z7ycm"))))
+         "0c56sjgg82kjcg5rrplnyn7vf02ccsj3kkcbgc87zxlv0j880rjb"))))
     (build-system haskell-build-system)
     (inputs `(("ghc-syb" ,ghc-syb)))
     (home-page "https://hackage.haskell.org/package/hs-bibutils")
@@ -5324,7 +6044,7 @@ better for some purposes.")
 (define-public ghc-conduit-extra
   (package
     (name "ghc-conduit-extra")
-    (version "1.1.13.2")
+    (version "1.1.13.3")
     (source
      (origin
        (method url-fetch)
@@ -5333,7 +6053,7 @@ better for some purposes.")
                            version ".tar.gz"))
        (sha256
         (base32
-         "108vsn9dpsfwvar7nssw6wkqy26rxlf3p4ran6swa5xh8l6d5k4z"))))
+         "0j3cqpkrn7lbpviv6w0gjh93fjjbh1an2sq0yz7svaawja8civy2"))))
     (build-system haskell-build-system)
     (inputs
      `(("ghc-conduit" ,ghc-conduit)
@@ -5387,7 +6107,7 @@ documents.")
 (define-public ghc-xml-conduit
   (package
     (name "ghc-xml-conduit")
-    (version "1.3.5")
+    (version "1.7.1.2")
     (source
      (origin
        (method url-fetch)
@@ -5395,7 +6115,7 @@ documents.")
                            "xml-conduit-" version ".tar.gz"))
        (sha256
         (base32
-         "10yw8jiksw21jgwqjjd1ixflavcblisgkp9qq3ba05vadc35lqr5"))))
+         "0n4k0rq9j5cc9kdvj9xbx8gmiqlyk5x6pw8yxzw5wfsw7qkych2s"))))
     (build-system haskell-build-system)
     (inputs
      `(("ghc-conduit" ,ghc-conduit)
@@ -5404,10 +6124,9 @@ documents.")
        ("ghc-text" ,ghc-text)
        ("ghc-xml-types" ,ghc-xml-types)
        ("ghc-attoparsec" ,ghc-attoparsec)
-       ("ghc-blaze-builder" ,ghc-blaze-builder)
+       ("ghc-data-default-class" ,ghc-data-default-class)
        ("ghc-blaze-markup" ,ghc-blaze-markup)
        ("ghc-blaze-html" ,ghc-blaze-html)
-       ("ghc-data-default" ,ghc-data-default)
        ("ghc-monad-control" ,ghc-monad-control)
        ("ghc-hspec" ,ghc-hspec)
        ("ghc-hunit" ,ghc-hunit)))
@@ -5421,7 +6140,7 @@ the @code{conduit} package.")
 (define-public ghc-pandoc-citeproc
   (package
     (name "ghc-pandoc-citeproc")
-    (version "0.10")
+    (version "0.12.2.5")
     (source
      (origin
        (method url-fetch)
@@ -5430,7 +6149,7 @@ the @code{conduit} package.")
                            version ".tar.gz"))
        (sha256
         (base32
-         "00mprphppk51ylsrkg817mbk23f9fsfvkwzbys9qqbcjbrxi2r94"))))
+         "1l58nbflcnlznc93qimkk7ghk2gv8kipf45zf88piqa2zys41yyx"))))
     (build-system haskell-build-system)
     (arguments
      `(#:phases
@@ -5522,7 +6241,7 @@ data quickly and efficiently, using the ByteString type.")
 (define-public ghc-binary
   (package
     (name "ghc-binary")
-    (version "0.8.4.1")
+    (version "0.8.5.1")
     (source
      (origin
        (method url-fetch)
@@ -5531,9 +6250,11 @@ data quickly and efficiently, using the ByteString type.")
              version ".tar.gz"))
        (sha256
         (base32
-         "1fp7wxnf57cjzhbb7rgqs6fgws4690zh0dxgl924dj4nzq0cf4wd"))))
+         "15h5zqfw7xmcimvlq6bs8f20vxlfvz7g411fns5z7212crlimffy"))))
     (build-system haskell-build-system)
-    (inputs
+    (arguments
+     `(#:configure-flags (list "--allow-newer=QuickCheck")))
+    (native-inputs
      `(("ghc-random" ,ghc-random)
        ("ghc-test-framework" ,ghc-test-framework)
        ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)
@@ -5573,7 +6294,7 @@ been observed, so this library should be suitable for high performance scenarios
 (define-public ghc-haskeline
   (package
     (name "ghc-haskeline")
-    (version "0.7.2.3")
+    (version "0.7.4.2")
     (source
      (origin
        (method url-fetch)
@@ -5582,12 +6303,13 @@ been observed, so this library should be suitable for high performance scenarios
              version ".tar.gz"))
        (sha256
         (base32
-         "09wd6sxgn65xxpk7dhy1cg3ywlbk0ccqq7xylycwk4zazy3gjgkd"))))
+         "1sxhdhy9asinxn0gvd4zandbk6xkb04vy1y7lmh66f9jv66fqhsm"))))
     (build-system haskell-build-system)
-    (inputs
-     `(("ncurses" ,ncurses)))
     (arguments
      `(#:configure-flags (list "-fterminfo")))
+    (inputs
+     `(("ncurses" ,ncurses)
+       ("ghc-stm" ,ghc-stm)))
     (home-page "https://github.com/judah/haskeline")
     (synopsis "Command-line interface for user input")
     (description
@@ -5742,6 +6464,8 @@ this problem.")
         (base32
          "18qq94j9bm91iswnxq2dm5dws5c7wm4k01q2rpf8py35cf3svnfq"))))
     (build-system haskell-build-system)
+    ;; FIXME: 2/24 tests fail.
+    (arguments `(#:tests? #f))
     (inputs
      `(("ghc-bytestring-handle" ,ghc-bytestring-handle)
        ("ghc-quickcheck" ,ghc-quickcheck)
@@ -5953,10 +6677,11 @@ Colours can be blended and composed.  Various colour spaces are
 supported.  A module of colour names (\"Data.Colour.Names\") is provided.")
   (license license:expat)))
 
+;; Do not use this as an input.  It is part of GHC.
 (define-public ghc-directory
   (package
     (name "ghc-directory")
-    (version "1.3.1.5")
+    (version "1.3.2.0")
     (source
      (origin
        (method url-fetch)
@@ -5965,7 +6690,7 @@ supported.  A module of colour names (\"Data.Colour.Names\") is provided.")
              version ".tar.gz"))
        (sha256
         (base32
-         "0zkqihmdfz7bzv3sxh1p9ijl4vra880kfy3qy9h96flq7d2if0f2"))))
+         "0ffhanigxrx5wpin8l0wfp7d24lpgsjwj0hxrfp8bpy2wj1snxny"))))
     (build-system haskell-build-system)
     (home-page "http://hackage.haskell.org/package/directory")
     (synopsis "Platform-agnostic library for file system operations")
@@ -5978,7 +6703,7 @@ files and directories in a portable way.")
 (define-public ghc-process
   (package
     (name "ghc-process")
-    (version "1.4.2.0")
+    (version "1.6.3.0")
     (source
      (origin
        (method url-fetch)
@@ -5987,7 +6712,7 @@ files and directories in a portable way.")
              version ".tar.gz"))
        (sha256
         (base32
-         "1v1bav5isqxq9fc4lw714x94qbfsjbm2nn12kjp69r1ql8jaaaqw"))))
+         "0lxkl0gmyy2sn3r9c7dyz8vz1cm6nvygmgrizilliir5bp42m8cc"))))
     (build-system haskell-build-system)
     (arguments
      `(#:phases
@@ -6039,6 +6764,8 @@ files and directories in a portable way.")
         (base32
          "0ln1szgfy8fa78l3issq4fx3aqnnd54w3cb4wssrfi48vd5rkfjm"))))
     (build-system haskell-build-system)
+    (arguments
+     `(#:configure-flags (list "--allow-newer=QuickCheck")))
     (inputs
      `(("ghc-fgl" ,ghc-fgl)
        ("ghc-quickcheck" ,ghc-quickcheck)
@@ -6064,6 +6791,8 @@ for generating graph-like data structures.")
                (base32
                 "1z453is01v0rnxlv6xx4iyaqv5vrp3bpz829mpv1a341sck2135h"))))
     (build-system haskell-build-system)
+    (arguments
+     `(#:configure-flags (list "--allow-newer=QuickCheck")))
     (inputs
      `(("ghc-quickcheck" ,ghc-quickcheck)
        ("ghc-colour" ,ghc-colour)
@@ -6241,7 +6970,7 @@ which can't be decoded in the current locale encoding.")
 (define-public ghc-shelly
   (package
     (name "ghc-shelly")
-    (version "1.6.8")
+    (version "1.7.0.1")
     (source
      (origin
        (method url-fetch)
@@ -6250,7 +6979,7 @@ which can't be decoded in the current locale encoding.")
              version ".tar.gz"))
        (sha256
         (base32
-         "0bg1pj5bhswfgwfgz66xr82i8cmjgrnx5ljvjy37052zxb82imnk"))))
+         "0a4ngy8jqcscqhimgiyz7f9kqm23is7x7gyjxr0j6iq1dy57ahq3"))))
     (build-system haskell-build-system)
     (inputs
      `(("ghc-mtl" ,ghc-mtl)
@@ -6406,7 +7135,7 @@ easily work with command-line options.")
 (define-public ghc-system-filepath
   (package
     (name "ghc-system-filepath")
-    (version "0.4.13.4")
+    (version "0.4.14")
     (source
      (origin
        (method url-fetch)
@@ -6415,8 +7144,14 @@ easily work with command-line options.")
              version ".tar.gz"))
        (sha256
         (base32
-         "1yy5zsmmimhg6iaw9fmpwrxvxrgi5s6bfyqfihdsnx4bjvn7sp9l"))))
+         "14yras4pz2dh55xpwmazcgxijvi8913pjgzb9iw50mjq1lycwmhn"))))
     (build-system haskell-build-system)
+    ;; FIXME: One of the tests fails:
+    ;; [ FAIL  ] tests.validity.posix
+    ;; note: seed=7310214548328823169
+    ;; *** Failed! Falsifiable (after 24 tests):
+    ;; FilePath "/r2\ENQ52\t ;$/o\US=/okG\146\&6\n<u\DC3/5\182\223a\DELN\EOT#\NUL/`[m/\USEKV\ETX([)b6/\ACK\SOo\245\ETBO/f\128\STX`|\EM\"/*\EMA\USD3/\143\&4/\CAN?\SUBee\CANR/9/B0\187Kx4/Vqr\232'b:/\a\234\DLE.\"\179/\ENQ{J/|/G)@^\237/\219ml/\DC3pd\ESC"
+    (arguments `(#:tests? #f))
     (inputs
      `(("ghc-text" ,ghc-text)
        ("ghc-chell" ,ghc-chell)
@@ -6941,8 +7676,7 @@ files in Haskell.")
      `(("ghc-mtl" ,ghc-mtl)
        ("ghc-network" ,ghc-network)
        ("ghc-directory", ghc-directory)
-       ("ghc-old-locale" ,ghc-old-locale)
-       ("ghc-process" ,ghc-process)))
+       ("ghc-old-locale" ,ghc-old-locale)))
     (native-inputs
      `(("ghc-hunit" ,ghc-hunit)))
     (home-page "http://software.complete.org/hslogger")
@@ -7760,6 +8494,8 @@ IPv4, IPv6 and MAC addresses.")
         (base32
          "1zdka5jnm1h6k36w3nr647yf3b5lqb336g3fkprhd6san9x52xlj"))))
     (build-system haskell-build-system)
+    (arguments
+     `(#:configure-flags (list "--allow-newer=QuickCheck")))
     (inputs `(("ghc-hashable" ,ghc-hashable)
               ("ghc-random" ,ghc-random)
               ("ghc-text" ,ghc-text)))