gnu: Add amule.
[jackhill/guix/guix.git] / gnu / packages / haskell-web.scm
index b64d57e..1f19f82 100644 (file)
@@ -1,6 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2015 Paul van der Walt <paul@denknerd.org>
-;;; Copyright © 2015, 2016 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2015, 2016, 2018 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2015 Federico Beffa <beffa@fbengineering.ch>
 ;;; Copyright © 2016 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2017 rsiddharth <s@ricketyspace.net>
@@ -36,7 +36,7 @@
 (define-public ghc-tagsoup
   (package
     (name "ghc-tagsoup")
-    (version "0.14")
+    (version "0.14.3")
     (source
      (origin
        (method url-fetch)
              ".tar.gz"))
        (sha256
         (base32
-         "07pax7i0bl79dmqqz58zy09yrgpnyyr2ya0z183hv96kp65jv0lh"))))
+         "00j2rm2sx0syn16kg2402fz4k8yqfl9knmi367jsiycds1q9zzf9"))))
     (build-system haskell-build-system)
     (inputs `(("ghc-text" ,ghc-text)))
-    (home-page
-     "http://community.haskell.org/~ndm/tagsoup/")
+    (native-inputs
+     `(("ghc-quickcheck" ,ghc-quickcheck)))
+    (home-page "http://community.haskell.org/~ndm/tagsoup/")
     (synopsis
      "Parsing and extracting information from (possibly malformed) HTML/XML
 documents")
@@ -126,7 +127,7 @@ both client and server code).")
 (define-public ghc-http
   (package
     (name "ghc-http")
-    (version "4000.2.20")
+    (version "4000.3.3")
     (outputs '("out" "doc"))
     (source
      (origin
@@ -137,7 +138,7 @@ both client and server code).")
              ".tar.gz"))
        (sha256
         (base32
-         "0nyqdxr5ls2dxkf4a1f3x15xzwdm46ppn99nkcbhswlr6s3cq1s4"))))
+         "1wlvvqcxsnd2is3khsla0vd8i9cy12v1pg6d6i13ihcd131a7bdv"))))
     (build-system haskell-build-system)
     (native-inputs
      `(("ghc-hunit" ,ghc-hunit)))
@@ -296,7 +297,7 @@ and HPACK.  Currently HTTP/2 16 framing and HPACK 10 is supported.")
 (define-public ghc-http-conduit
   (package
     (name  "ghc-http-conduit")
-    (version "2.2.3.1")
+    (version "2.2.4")
     (source
      (origin
        (method url-fetch)
@@ -304,7 +305,7 @@ and HPACK.  Currently HTTP/2 16 framing and HPACK 10 is supported.")
                            "http-conduit-" version "/" "http-conduit-"
                            version ".tar.gz"))
        (sha256 (base32
-                "03na2nbm9la0shlijvjyb5mpp1prfskk4jmjy8iz707r0731dbjk"))))
+                "1wcl3lpg4v1ylq9j77j9fmf6l9qbmp8dmj3a9829q19q6bbgza7l"))))
     (build-system haskell-build-system)
     ;; FIXME: `httpLbs TLS` in test-suite `test` fails with
     ;; ConnectionFailure getProtocolByName: does not exist (no such protocol
@@ -391,7 +392,7 @@ communication between web applications and web servers.")
 (define-public ghc-wai-logger
   (package
     (name "ghc-wai-logger")
-    (version "2.2.4.1")
+    (version "2.3.0")
     (source
      (origin
        (method url-fetch)
@@ -401,7 +402,7 @@ communication between web applications and web servers.")
              ".tar.gz"))
        (sha256
         (base32
-         "1s6svvy3ci4j1dj1jaw8hg628miwj8f5gpy9n8d8hpsaxav6nzgk"))))
+         "1w0b0vinsyqr37wciljkz8g5dcmfi2r210lq194a0wkycly9kkch"))))
     (build-system haskell-build-system)
     (arguments `(#:tests? #f)) ; FIXME: Tests cannot find libraries exported
                                ; by propagated-inputs.
@@ -424,7 +425,7 @@ communication between web applications and web servers.")
 (define-public ghc-wai-extra
   (package
     (name "ghc-wai-extra")
-    (version "3.0.13.1")
+    (version "3.0.18")
     (source
      (origin
        (method url-fetch)
@@ -434,7 +435,7 @@ communication between web applications and web servers.")
              ".tar.gz"))
        (sha256
         (base32
-         "0mh761a1bayr4ydwqmh3h8ndpi19zqw34mmy49lp2abr70r0nm1p"))))
+         "0r079mqqdv14fp97w0rigdpwk6b88grpjlqsjc5y8bbc0skf5za2"))))
     (build-system haskell-build-system)
     (inputs
      `(("ghc-ansi-terminal" ,ghc-ansi-terminal)
@@ -578,17 +579,16 @@ a WAI handler, via the native Haskell TLS implementation.")
 (define-public ghc-xss-sanitize
   (package
     (name "ghc-xss-sanitize")
-    (version "0.3.5.6")
+    (version "0.3.5.7")
     (source
      (origin
        (method url-fetch)
        (uri (string-append
              "https://hackage.haskell.org/package/xss-sanitize/xss-sanitize-"
-             version
-             ".tar.gz"))
+             version ".tar.gz"))
        (sha256
         (base32
-         "1j2qrn2dbfx01m7zyk9ilgnp9zjwq9mk62b0rdal4zkg4vh212h0"))))
+         "005cmhaw9xbzkcn42jmhvcvk63bzmg4lml368xwmqdvh7r0mcn4m"))))
     (build-system haskell-build-system)
     (inputs
      `(("ghc-tagsoup" ,ghc-tagsoup)
@@ -610,7 +610,7 @@ attacks.")
 (define-public ghc-css-text
   (package
     (name "ghc-css-text")
-    (version "0.1.2.1")
+    (version "0.1.3.0")
     (source
      (origin
        (method url-fetch)
@@ -620,7 +620,7 @@ attacks.")
              ".tar.gz"))
        (sha256
         (base32
-         "1xi1n2f0g8y43p95lynhcg50wxbq7hqfzbfzm7fy8mn7gvd920nw"))))
+         "0ynd9f4hn2sfwqzbsa0y7phmxq8za7jiblpjwx0ry8b372zhgxaz"))))
     (build-system haskell-build-system)
     (inputs
      `(("ghc-text" ,ghc-text)
@@ -636,7 +636,7 @@ Haskell.")
 (define-public ghc-mime-types
   (package
     (name "ghc-mime-types")
-    (version "0.1.0.6")
+    (version "0.1.0.7")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://hackage.haskell.org/package/"
@@ -644,7 +644,7 @@ Haskell.")
                                   version ".tar.gz"))
               (sha256
                (base32
-                "090z3dp928243amnc6s8g10rk2h2bprk9y138q6wj3cpflzr72pw"))))
+                "1fg9cqpp5lswk8ajlq4f41n12c2v2naz179l8dsz6zisjqj4l5l3"))))
     (build-system haskell-build-system)
     (inputs
      `(("ghc-text" ,ghc-text)))
@@ -702,23 +702,29 @@ Strict, Transitional and Frameset variants.")
 (define-public ghc-blaze-html
   (package
     (name "ghc-blaze-html")
-    (version "0.8.1.1")
+    (version "0.9.0.1")
     (source
      (origin
        (method url-fetch)
-       (uri (string-append
-             "https://hackage.haskell.org/package/blaze-html/blaze-html-"
-             version
-             ".tar.gz"))
+       (uri (string-append "https://hackage.haskell.org/package/"
+                           "blaze-html/blaze-html-"
+                           version ".tar.gz"))
        (sha256
         (base32
-         "1dnw50kh0s405cg9i2y4a8awanhj3bqzk21jwgfza65kcjby7lpq"))))
+         "0r0acv47nh75bmf7kjyfvhcwz8f02rn9x0a1l80pzgyczfrsmkmf"))))
     (build-system haskell-build-system)
-    (arguments `(#:tests? #f)) ; FIXME: testing libraries are missing.
+    (arguments
+     `(#:configure-flags (list "--allow-newer=QuickCheck")))
     (inputs
      `(("ghc-blaze-builder" ,ghc-blaze-builder)
        ("ghc-text" ,ghc-text)
        ("ghc-blaze-markup" ,ghc-blaze-markup)))
+    (native-inputs
+     `(("ghc-hunit" ,ghc-hunit)
+       ("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)))
     (home-page "http://jaspervdj.be/blaze")
     (synopsis "Fast HTML combinator library")
     (description "This library provides HTML combinators for Haskell.")
@@ -727,7 +733,7 @@ Strict, Transitional and Frameset variants.")
 (define-public ghc-aeson
   (package
     (name "ghc-aeson")
-    (version "0.10.0.0")
+    (version "1.2.4.0")
     (source
      (origin
        (method url-fetch)
@@ -737,21 +743,33 @@ Strict, Transitional and Frameset variants.")
              ".tar.gz"))
        (sha256
         (base32
-         "19kp33rfivr4d3myyr8xn803wd7p8x5nc4wb3qvlgjwgyqjaxvrz"))))
+         "16zwpd07cmhs58wwsqbhxy3b58gqw8w5nr7nf6lwi4nvznjdn09l"))))
     (build-system haskell-build-system)
     (arguments `(#:tests? #f)) ; FIXME: testing libraries are missing.
     (inputs
      `(("ghc-attoparsec" ,ghc-attoparsec)
+       ("ghc-base-compat" ,ghc-base-compat)
        ("ghc-dlist" ,ghc-dlist)
-       ("ghc-mtl" ,ghc-mtl)
+       ("ghc-hashable" ,ghc-hashable)
        ("ghc-scientific" ,ghc-scientific)
-       ("ghc-syb" ,ghc-syb)
+       ("ghc-tagged" ,ghc-tagged)
+       ("ghc-text" ,ghc-text)
+       ("ghc-th-abstraction" ,ghc-th-abstraction)
+       ("ghc-time-locale-compat" ,ghc-time-locale-compat)
        ("ghc-unordered-containers" ,ghc-unordered-containers)
+       ("ghc-uuid-types" ,ghc-uuid-types)
        ("ghc-vector" ,ghc-vector)
-       ("ghc-hashable" ,ghc-hashable)
-       ("ghc-text" ,ghc-text)
        ("ghc-hunit" ,ghc-hunit)
-       ("ghc-quickcheck" ,ghc-quickcheck)))
+       ("ghc-quickcheck" ,ghc-quickcheck)
+       ("ghc-integer-logarithms" ,ghc-integer-logarithms)
+       ("ghc-base-orphans" ,ghc-base-orphans)
+       ("ghc-base16-bytestring" ,ghc-base16-bytestring)
+       ("ghc-generic-deriving" ,ghc-generic-deriving)
+       ("ghc-test-framework" ,ghc-test-framework)
+       ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
+       ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)
+       ("ghc-quickcheck-instances" ,ghc-quickcheck-instances)
+       ("ghc-hashable-time" ,ghc-hashable-time)))
     (home-page "https://github.com/bos/aeson")
     (synopsis "Fast JSON parsing and encoding")
     (description "This package provides a JSON parsing and encoding library
@@ -759,10 +777,22 @@ for Haskell, optimized for ease of use and high performance.  (A note on
 naming: in Greek mythology, Aeson was the father of Jason.)")
     (license license:bsd-3)))
 
+(define-public ghc-aeson-for-pandoc-1
+  (package (inherit ghc-aeson)
+    (version "1.1.2.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://hackage.haskell.org/package/aeson/aeson-"
+                           version ".tar.gz"))
+       (sha256
+        (base32
+         "1zy5z8pzvh53qkjm0nm3f4rwqfqg3867ck8ncd6mrxpcyvxqqj1p"))))))
+
 (define-public ghc-aeson-pretty
   (package
     (name "ghc-aeson-pretty")
-    (version "0.7.2")
+    (version "0.8.5")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -770,14 +800,15 @@ naming: in Greek mythology, Aeson was the father of Jason.)")
                     version ".tar.gz"))
               (sha256
                (base32
-                "03ap81853qi8yd9kdgczllrrni23a6glsfxrwj8zab6ipjrbh234"))))
+                "1yd98972srlbkn0f2jhrb3f443j9wnq2fnw5gbxjxzmkcinfh5yx"))))
     (build-system haskell-build-system)
     (inputs
      `(("ghc-aeson" ,ghc-aeson)
+       ("ghc-base-compat" ,ghc-base-compat)
+       ("ghc-scientific" ,ghc-scientific)
        ("ghc-vector" ,ghc-vector)
        ("ghc-text" ,ghc-text)
-       ("ghc-unordered-containers"
-        ,ghc-unordered-containers)
+       ("ghc-unordered-containers" ,ghc-unordered-containers)
        ("ghc-attoparsec" ,ghc-attoparsec)
        ("ghc-cmdargs" ,ghc-cmdargs)))
     (home-page "https://github.com/informatikr/aeson-pretty")
@@ -847,3 +878,304 @@ of a JSON value into a @code{Data.Aeson.Value}.")
     (description
      "HTTP multipart split out of the cgi package, for Haskell.")
     (license license:bsd-3)))
+
+(define-public ghc-uri-encode
+  (package
+    (name "ghc-uri-encode")
+    (version "1.5.0.5")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "https://hackage.haskell.org/package/uri-encode/uri-encode-"
+             version ".tar.gz"))
+       (sha256
+        (base32
+         "11miwb5vvnn17m92ykz1pzg9x6s8fbpz3mmsyqs2s4b3mn55haz8"))))
+    (build-system haskell-build-system)
+    (inputs
+     `(("ghc-text" ,ghc-text)
+       ("ghc-utf8-string" ,ghc-utf8-string)
+       ("ghc-network-uri" ,ghc-network-uri)))
+    (home-page "https://hackage.haskell.org/package/uri-encode")
+    (synopsis "Unicode aware uri-encoding")
+    (description "Unicode aware uri-encoding for Haskell.")
+    (license license:bsd-3)))
+
+(define-public ghc-path-pieces
+  (package
+    (name "ghc-path-pieces")
+    (version "0.2.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://hackage.haskell.org/package/"
+                           "path-pieces-" version "/"
+                           "path-pieces-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0vx3sivcsld76058925hym2j6hm3g71f0qjr7v59f1g2afgx82q8"))))
+    (build-system haskell-build-system)
+    (inputs `(("ghc-text" ,ghc-text)))
+    (native-inputs `(("ghc-hunit" ,ghc-hunit)
+                     ("ghc-hspec" ,ghc-hspec)
+                     ("ghc-quickcheck" ,ghc-quickcheck)))
+    (home-page "https://github.com/yesodweb/path-pieces")
+    (synopsis "Used in Yesod to automatically marshall data in the request path")
+    (description  "This Haskell package provides two typeclasses for converting
+Haskell data types to and from route pieces.")
+    (license license:bsd-3)))
+
+(define-public ghc-skein
+  (package
+    (name "ghc-skein")
+    (version "1.0.9.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://hackage.haskell.org/package/"
+                           "skein-" version "/"
+                           "skein-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1jdqdk0rz2wnvw735clnj8jh0a9rkrbqjg7vk3w6wczdql6cm0pq"))))
+    (build-system haskell-build-system)
+    (inputs `(("ghc-cereal" ,ghc-cereal)
+              ("ghc-tagged" ,ghc-tagged)
+              ("ghc-crpto-api" ,ghc-crypto-api)))
+    (native-inputs `(("ghc-hspec" ,ghc-hspec)))
+    (home-page "https://github.com/yesodweb/path-pieces")
+    (synopsis "Skein family of cryptographic hash functions for Haskell")
+    (description "@uref{(http://www.skein-hash.info, Skein} is a family of
+fast secure cryptographic hash functions designed by Niels Ferguson, Stefan
+Lucks, Bruce Schneier, Doug Whiting, Mihir Bellare, Tadayoshi Kohno, Jon
+Callas and Jesse Walker.
+
+This Haskell package uses bindings to the optimized C implementation of Skein.")
+    (license license:bsd-3)))
+
+(define-public ghc-clientsession
+  (package
+    (name "ghc-clientsession")
+    (version "0.9.1.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://hackage.haskell.org/package/"
+                           "clientsession-" version "/"
+                           "clientsession-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0s6h4ykj16mpf7nlw2iqn2ji0p8g1fn5ni0s7yqaili6vv2as5ar"))))
+    (build-system haskell-build-system)
+    (inputs `(("ghc-cereal" ,ghc-cereal)
+              ("ghc-tagged" ,ghc-tagged)
+              ("ghc-crypto-api" ,ghc-crypto-api)
+              ("ghc-skein" ,ghc-skein)
+              ("ghc-base64-bytestring" ,ghc-base64-bytestring)
+              ("ghc-entropy" ,ghc-entropy)
+              ("ghc-cprng-aes" ,ghc-cprng-aes)
+              ("ghc-cipher-aes" ,ghc-cipher-aes)
+              ("ghc-crypto-random" ,ghc-crypto-random)
+              ("ghc-setenv" ,ghc-setenv)))
+    (native-inputs `(("ghc-hunit" ,ghc-hunit)
+                     ("ghc-hspec" ,ghc-hspec)
+                     ("ghc-quickcheck" ,ghc-quickcheck)))
+    (home-page "https://github.com/yesodweb/clientsession/tree/master")
+    (synopsis "Haskell library for securely store session data in a
+client-side cookie")
+    (description "This Haskell package achieves security through AES-CTR
+encryption and Skein-MAC-512-256 authentication.  Uses Base64 encoding to
+avoid any issues with characters.")
+    (license license:expat)))
+
+(define-public ghc-yesod-core
+  (package
+    (name "ghc-yesod-core")
+    (version "1.4.37")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://hackage.haskell.org/package/"
+                           "yesod-core-" version "/"
+                           "yesod-core-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0ww8hl0cx2g58zrdx3j6d5m2xwhssbajdqws1xk6rzl7rpfm1b9j"))))
+    (build-system haskell-build-system)
+    (inputs `(("ghc-wai" ,ghc-wai)
+              ("ghc-extra" ,ghc-extra)
+              ("ghc-text" ,ghc-text)
+              ("ghc-shakespeare" ,ghc-shakespeare)
+              ("ghc-blaze-builder" ,ghc-blaze-builder)
+              ("ghc-mtl" ,ghc-mtl)
+              ("ghc-clientsession" ,ghc-clientsession)
+              ("ghc-random" ,ghc-random)
+              ("ghc-cereal" ,ghc-cereal)
+              ("ghc-old-locale" ,ghc-old-locale)
+              ("ghc-unordered-containers" ,ghc-unordered-containers)
+              ("ghc-monad-control" ,ghc-monad-control)
+              ("ghc-transformers-base" ,ghc-transformers-base)
+              ("ghc-cookie" ,ghc-cookie)
+              ("ghc-http-types" ,ghc-http-types)
+              ("ghc-case-insensitive" ,ghc-case-insensitive)
+              ("ghc-parsec" ,ghc-parsec)
+              ("ghc-vector" ,ghc-vector)
+              ("ghc-aeson" ,ghc-aeson)
+              ("ghc-fast-logger" ,ghc-fast-logger)
+              ("ghc-wai-logger" ,ghc-wai-logger)
+              ("ghc-monad-logger" ,ghc-monad-logger)
+              ("ghc-conduit" ,ghc-conduit)
+              ("ghc-resourcet" ,ghc-resourcet)
+              ("ghc-lifted-base" ,ghc-lifted-base)
+              ("ghc-blaze-html" ,ghc-blaze-html)
+              ("ghc-blaze-markup" ,ghc-blaze-markup)
+              ("ghc-data-default" ,ghc-data-default)
+              ("ghc-safe" ,ghc-safe)
+              ("ghc-warp" ,ghc-warp)
+              ("ghc-unix-compat" ,ghc-unix-compat)
+              ("ghc-conduit-extra" ,ghc-conduit-extra)
+              ("ghc-exceptions" ,ghc-exceptions)
+              ("ghc-deepseq-generics" ,ghc-deepseq-generics)
+              ("ghc-mwc-random" ,ghc-mwc-random)
+              ("ghc-primitive" ,ghc-primitive)
+              ("ghc-word8" ,ghc-word8)
+              ("ghc-auto-update" ,ghc-auto-update)
+              ("ghc-semigroups" ,ghc-semigroups)
+              ("ghc-byteable" ,ghc-byteable)))
+    (native-inputs `(("ghc-hspec" ,ghc-hspec)
+                     ("ghc-path-pieces" ,ghc-path-pieces)
+                     ("ghc-hunit" ,ghc-hunit)
+                     ("ghc-hspec-expectations" ,ghc-hspec-expectations)
+                     ("ghc-quickcheck" ,ghc-quickcheck)
+                     ("ghc-network" ,ghc-network)
+                     ("ghc-async" ,ghc-async)
+                     ("ghc-streaming-commons" ,ghc-streaming-commons)
+                     ("ghc-wai-extra" ,ghc-wai-extra)))
+    (home-page "https://www.yesodweb.com")
+    (synopsis "Core package for the Yesod web framework")
+    (description "This Haskell package provides all core functionality, for
+Yesod, on which other packages can be built.  It provides dispatch, handler
+functions, widgets, etc.")
+    (license license:expat)))
+
+(define-public ghc-yesod-persistent
+  (package
+    (name "ghc-yesod-persistent")
+    (version "1.4.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://hackage.haskell.org/package/"
+                           "yesod-persistent-" version "/"
+                           "yesod-persistent-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0kiksw46c8ww9yiwl28pkrppx8d6fhsasr0hvmsliqbrp16likj8"))))
+    (build-system haskell-build-system)
+    (arguments `(#:tests? #f)) ; FIXME: hspec-discover not available in PATH.
+    (inputs `(("ghc-yesod-core" ,ghc-yesod-core)
+              ("ghc-persistent" ,ghc-persistent)
+              ("ghc-persistent-template" ,ghc-persistent-template)
+              ("ghc-blaze-builder" ,ghc-blaze-builder)
+              ("ghc-conduit" ,ghc-conduit)
+              ("ghc-resourcet" ,ghc-resourcet)
+              ("ghc-resource-pool" ,ghc-resource-pool)))
+    (native-inputs `(("ghc-hspec" ,ghc-hspec)
+                     ("ghc-wai-extra" ,ghc-wai-extra)
+                     ("ghc-yesod-core" ,ghc-yesod-core)
+                     ("ghc-persistent-sqlite" ,ghc-persistent-sqlite)
+                     ("ghc-text" ,ghc-text)))
+    (home-page "http://www.yesodweb.com/")
+    (synopsis "Helpers for using Persistent from Yesod")
+    (description "This Haskell package provides helpers for using Persistent
+from Yesod.")
+    (license license:expat)))
+
+(define-public ghc-yesod-form
+    (package
+    (name "ghc-yesod-form")
+    (version "1.4.16")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "https://hackage.haskell.org/package/yesod-form/yesod-form-"
+               version
+               ".tar.gz"))
+        (sha256
+          (base32
+            "0lij3m5vn8nvh6y88r1dhk03xmmjwmjzazm307nc2wvc5fmx9p2j"))))
+    (build-system haskell-build-system)
+    (inputs
+      `(("ghc-yesod-core" ,ghc-yesod-core)
+        ("ghc-yesod-persistent" ,ghc-yesod-persistent)
+        ("ghc-shakespeare" ,ghc-shakespeare)
+        ("ghc-persistent" ,ghc-persistent)
+        ("ghc-data-default" ,ghc-data-default)
+        ("ghc-xss-sanitize" ,ghc-xss-sanitize)
+        ("ghc-blaze-builder" ,ghc-blaze-builder)
+        ("ghc-email-validate" ,ghc-email-validate)
+        ("ghc-text" ,ghc-text)
+        ("ghc-wai" ,ghc-wai)
+        ("ghc-blaze-html" ,ghc-blaze-html)
+        ("ghc-blaze-markup" ,ghc-blaze-markup)
+        ("ghc-attoparsec" ,ghc-attoparsec)
+        ("ghc-byteable" ,ghc-byteable)
+        ("ghc-aeson" ,ghc-aeson)
+        ("ghc-resourcet" ,ghc-resourcet)
+        ("ghc-semigroups" ,ghc-semigroups)
+        ("ghc-network-uri" ,ghc-network-uri)
+        ("ghc-hspec" ,ghc-hspec)))
+    (home-page "https://www.yesodweb.com")
+    (synopsis "Form handling support for Yesod Web Framework")
+    (description "This Haskell package provies a set of basic form inputs such
+as text, number, time, checkbox, select, textarea, etc through the
+@code{Yesod.Form.Fields} module.  Also, there is @code{Yesod.Form.Nic} module
+providing richtext field using Nic editor. ")
+    (license license:expat)))
+
+(define-public ghc-yesod
+  (package
+    (name "ghc-yesod")
+    (version "1.4.5")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "https://hackage.haskell.org/package/yesod/yesod-"
+             version ".tar.gz"))
+       (sha256
+        (base32
+         "1sg66nq8yaas2m5nqsdrxricvcizd1ik02zqk60sxh3wna08fz16"))))
+    (build-system haskell-build-system)
+    (inputs
+     `(("ghc-yesod-core" ,ghc-yesod-core)
+       ("ghc-yesod-persistent" ,ghc-yesod-persistent)
+       ("ghc-yesod-form" ,ghc-yesod-form)
+       ("ghc-monad-control" ,ghc-monad-control)
+       ("ghc-wai" ,ghc-wai)
+       ("ghc-wai-extra" ,ghc-wai-extra)
+       ("ghc-warp" ,ghc-warp)
+       ("ghc-blaze-html" ,ghc-blaze-html)
+       ("ghc-blaze-markup" ,ghc-blaze-markup)
+       ("ghc-aeson" ,ghc-aeson)
+       ("ghc-data-default-class" ,ghc-data-default-class)
+       ("ghc-unordered-containers" ,ghc-unordered-containers)
+       ("ghc-yaml" ,ghc-yaml)
+       ("ghc-text" ,ghc-text)
+       ("ghc-monad-logger" ,ghc-monad-logger)
+       ("ghc-fast-logger" ,ghc-fast-logger)
+       ("ghc-conduit" ,ghc-conduit)
+       ("ghc-conduit-extra" ,ghc-conduit-extra)
+       ("ghc-resourcet" ,ghc-resourcet)
+       ("ghc-shakespeare" ,ghc-shakespeare)
+       ("ghc-streaming-commons" ,ghc-streaming-commons)
+       ("ghc-wai-logger" ,ghc-wai-logger)
+       ("ghc-semigroups" ,ghc-semigroups)))
+    (home-page "https://www.yesodweb.com")
+    (synopsis "Framework for creating type-safe, RESTful web applications")
+    (description "The Haskell package package groups together the various
+Yesod related packages into one cohesive whole.  This is the version of Yesod,
+whereas most of the core code lives in @code{ghc-yesod-core}.")
+    (license license:expat)))