+
+(define-public ghc-happstack-server
+ (package
+ (name "ghc-happstack-server")
+ (version "7.5.4")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://hackage.haskell.org/package/happstack-server/happstack-server-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "0i7csvmwv7n68gkwqzi985p2mjdgzipjnlj873sdiknhx9pfmq70"))))
+ (build-system haskell-build-system)
+ (inputs
+ `(("ghc-network" ,ghc-network)
+ ("ghc-network-bsd" ,ghc-network-bsd)
+ ("ghc-network-uri" ,ghc-network-uri)
+ ("ghc-base64-bytestring" ,ghc-base64-bytestring)
+ ("ghc-blaze-html" ,ghc-blaze-html)
+ ("ghc-exceptions" ,ghc-exceptions)
+ ("ghc-extensible-exceptions"
+ ,ghc-extensible-exceptions)
+ ("ghc-hslogger" ,ghc-hslogger)
+ ("ghc-html" ,ghc-html)
+ ("ghc-monad-control" ,ghc-monad-control)
+ ("ghc-old-locale" ,ghc-old-locale)
+ ("ghc-semigroups" ,ghc-semigroups)
+ ("ghc-sendfile" ,ghc-sendfile)
+ ("ghc-system-filepath" ,ghc-system-filepath)
+ ("ghc-syb" ,ghc-syb)
+ ("ghc-threads" ,ghc-threads)
+ ("ghc-transformers-base" ,ghc-transformers-base)
+ ("ghc-transformers-compat"
+ ,ghc-transformers-compat)
+ ("ghc-utf8-string" ,ghc-utf8-string)
+ ("ghc-zlib" ,ghc-zlib)))
+ (native-inputs `(("ghc-hunit" ,ghc-hunit)))
+ (home-page "http://happstack.com")
+ (synopsis "Web related tools and services for Haskell")
+ (description
+ "Happstack Server provides an HTTP server and a rich set of functions for
+routing requests, handling query parameters, generating responses, working with
+cookies, serving files, and more.")
+ (license license:bsd-3)))
+
+(define-public ghc-sendfile
+ (package
+ (name "ghc-sendfile")
+ (version "0.7.11.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://hackage.haskell.org/package/sendfile/sendfile-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "0988snmx3bylpw3kcq8hsgji8idc6xcrcfp275qjv3apfdgc9rp0"))))
+ (build-system haskell-build-system)
+ (inputs `(("ghc-network" ,ghc-network)))
+ (home-page
+ "https://hub.darcs.net/stepcut/sendfile")
+ (synopsis "Portable sendfile library for Haskell")
+ (description
+ "Haskell library which exposes zero-copy sendfile functionality in a portable way.")
+ (license license:bsd-3)))
+
+(define-public ghc-scalpel-core
+ (package
+ (name "ghc-scalpel-core")
+ (version "0.6.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://hackage.haskell.org/package/scalpel-core/"
+ "scalpel-core-" version ".tar.gz"))
+ (sha256
+ (base32
+ "1qf0gnidyh8zk0acj99vn6hsj37m410lrm50sqpiv1i36rpmmsqh"))))
+ (build-system haskell-build-system)
+ (inputs
+ `(("ghc-data-default" ,ghc-data-default)
+ ("ghc-fail" ,ghc-fail)
+ ("ghc-pointedlist" ,ghc-pointedlist)
+ ("ghc-regex-base" ,ghc-regex-base)
+ ("ghc-regex-tdfa" ,ghc-regex-tdfa)
+ ("ghc-tagsoup" ,ghc-tagsoup)
+ ("ghc-vector" ,ghc-vector)))
+ (native-inputs `(("ghc-hunit" ,ghc-hunit)))
+ (home-page "https://github.com/fimad/scalpel")
+ (synopsis
+ "High level web scraping library for Haskell")
+ (description
+ "Scalpel core provides a subset of the scalpel web scraping library
+that is intended to have lightweight dependencies and to be free of all
+non-Haskell dependencies.")
+ (license license:asl2.0)))
+
+(define-public ghc-scalpel
+ (package
+ (name "ghc-scalpel")
+ (version "0.6.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://hackage.haskell.org/package/scalpel/"
+ "scalpel-" version ".tar.gz"))
+ (sha256
+ (base32
+ "0jbrfcgljl8kbcwi2zqx1jp3c3dpxrkc94za44x56kcz68n89hlz"))))
+ (build-system haskell-build-system)
+ (inputs
+ `(("ghc-scalpel-core" ,ghc-scalpel-core)
+ ("ghc-case-insensitive" ,ghc-case-insensitive)
+ ("ghc-data-default" ,ghc-data-default)
+ ("ghc-http-client" ,ghc-http-client)
+ ("ghc-http-client-tls" ,ghc-http-client-tls)
+ ("ghc-tagsoup" ,ghc-tagsoup)))
+ (home-page "https://github.com/fimad/scalpel")
+ (synopsis
+ "High level web scraping library for Haskell")
+ (description
+ "Scalpel is a web scraping library inspired by libraries like Parsec
+and Perl's @code{Web::Scraper}. Scalpel builds on top of TagSoup to provide a
+declarative and monadic interface.")
+ (license license:asl2.0)))
+
+(define-public ghc-sourcemap
+ (package
+ (name "ghc-sourcemap")
+ (version "0.1.6")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "mirror://hackage/package/sourcemap/sourcemap-"
+ version
+ ".tar.gz"))
+ (sha256
+ (base32
+ "0ynfm44ym8y592wnzdwa0d05dbkffyyg5sm26y5ylzpynk64r85r"))))
+ (build-system haskell-build-system)
+ (inputs
+ `(("ghc-aeson" ,ghc-aeson)
+ ("ghc-unordered-containers" ,ghc-unordered-containers)
+ ("ghc-attoparsec" ,ghc-attoparsec)
+ ("ghc-utf8-string" ,ghc-utf8-string)))
+ (arguments
+ `(#:tests? #f ; FIXME: Fail to compile
+ #:cabal-revision
+ ("1" "1f7q44ar6qfip8fsllg43jyn7r15ifn2r0vz32cbmx0sb0d38dax")))
+ (home-page
+ "http://hackage.haskell.org/package/sourcemap")
+ (synopsis
+ "Implementation of source maps as proposed by Google and Mozilla")
+ (description
+ "Sourcemap provides an implementation of source maps, revision 3,
+proposed by Google and Mozilla here
+@url{https://wiki.mozilla.org/DevTools/Features/SourceMap}.")
+ (license license:bsd-3)))
+
+(define-public ghc-language-javascript
+ (package
+ (name "ghc-language-javascript")
+ (version "0.7.0.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "mirror://hackage/package/language-javascript/language-javascript-"
+ version
+ ".tar.gz"))
+ (sha256
+ (base32
+ "15bpqpkjf2y3fk8wff9zlnkpsjc63bnbvhlkxrs9alj0bikq17nk"))))
+ (build-system haskell-build-system)
+ (inputs
+ `(("ghc-blaze-builder" ,ghc-blaze-builder)
+ ("ghc-utf8-string" ,ghc-utf8-string)))
+ (native-inputs
+ `(("ghc-alex" ,ghc-alex)
+ ("ghc-quickcheck" ,ghc-quickcheck)
+ ("ghc-happy" ,ghc-happy)
+ ("ghc-hspec" ,ghc-hspec)
+ ("ghc-utf8-light" ,ghc-utf8-light)))
+ (home-page
+ "https://github.com/erikd/language-javascript")
+ (synopsis "Parser for JavaScript")
+ (description
+ "Parses Javascript into an Abstract Syntax Tree (AST). Initially intended
+as frontend to hjsmin.")
+ (license license:bsd-3)))
+
+(define-public ghc-bower-json
+ (package
+ (name "ghc-bower-json")
+ (version "1.0.0.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "mirror://hackage/package/bower-json/bower-json-"
+ version
+ ".tar.gz"))
+ (sha256
+ (base32
+ "0wvygg3rdbxzrmr61a9w6ddv9pfric85ih8hnxyk0ydzn7i59abs"))))
+ (build-system haskell-build-system)
+ (inputs
+ `(("ghc-aeson" ,ghc-aeson)
+ ("ghc-aeson-better-errors" ,ghc-aeson-better-errors)
+ ("ghc-scientific" ,ghc-scientific)
+ ("ghc-transformers" ,ghc-transformers)
+ ("ghc-unordered-containers" ,ghc-unordered-containers)))
+ (native-inputs
+ `(("ghc-tasty" ,ghc-tasty)
+ ("ghc-tasty-hunit" ,ghc-tasty-hunit)))
+ (home-page "https://github.com/hdgarrood/bower-json")
+ (synopsis "Read bower.json from Haskell")
+ (description
+ "This package provides a data type and ToJSON/FromJSON instances for
+Bower's package manifest file, bower.json.")
+ (license license:expat)))