From patchwork Sat Mar 27 21:43:27 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Reza Housseini X-Patchwork-Id: 28141 Return-Path: X-Original-To: patchwork@mira.cbaines.net Delivered-To: patchwork@mira.cbaines.net Received: by mira.cbaines.net (Postfix, from userid 113) id C1BF127BC69; Sat, 27 Mar 2021 21:58:58 +0000 (GMT) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on mira.cbaines.net X-Spam-Level: X-Spam-Status: No, score=-2.8 required=5.0 tests=BAYES_00,DKIM_ADSP_CUSTOM_MED, DKIM_SIGNED,FREEMAIL_FROM,HTML_MESSAGE,MAILING_LIST_MULTI, RCVD_IN_MSPIKE_H4,RCVD_IN_MSPIKE_WL,SPF_HELO_PASS,T_DKIM_INVALID, URIBL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.2 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mira.cbaines.net (Postfix) with ESMTPS id CEEB727BC68 for ; Sat, 27 Mar 2021 21:58:54 +0000 (GMT) Received: from localhost ([::1]:58972 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lQGxK-0006Gy-1f for patchwork@mira.cbaines.net; Sat, 27 Mar 2021 17:58:54 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:48074) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lQGpi-0003qz-Nf for guix-patches@gnu.org; Sat, 27 Mar 2021 17:51:02 -0400 Received: from debbugs.gnu.org ([209.51.188.43]:33538) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1lQGpi-00041J-G6 for guix-patches@gnu.org; Sat, 27 Mar 2021 17:51:02 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1lQGpi-0002IR-Dl for guix-patches@gnu.org; Sat, 27 Mar 2021 17:51:02 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#47438] [PATCH] Add ghc-servant and ghc-miso packages and deps Resent-From: Reza Housseini Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Sat, 27 Mar 2021 21:51:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 47438 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 47438@debbugs.gnu.org X-Debbugs-Original-To: guix-patches@gnu.org Received: via spool by submit@debbugs.gnu.org id=B.16168818028727 (code B ref -1); Sat, 27 Mar 2021 21:51:02 +0000 Received: (at submit) by debbugs.gnu.org; 27 Mar 2021 21:50:02 +0000 Received: from localhost ([127.0.0.1]:45084 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lQGoi-0002GZ-PR for submit@debbugs.gnu.org; Sat, 27 Mar 2021 17:50:01 -0400 Received: from lists.gnu.org ([209.51.188.17]:52846) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lQGid-000274-9q for submit@debbugs.gnu.org; Sat, 27 Mar 2021 17:43:45 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:47132) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lQGid-00025f-26 for guix-patches@gnu.org; Sat, 27 Mar 2021 17:43:43 -0400 Received: from mail-yb1-xb31.google.com ([2607:f8b0:4864:20::b31]:44830) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1lQGia-0000NL-D2 for guix-patches@gnu.org; Sat, 27 Mar 2021 17:43:42 -0400 Received: by mail-yb1-xb31.google.com with SMTP id j198so9606215ybj.11 for ; Sat, 27 Mar 2021 14:43:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:reply-to:from:date:message-id:subject:to; bh=HhYw27dFsPJBSEMniqnSoN1qTLGOWC/CgVxLYbr5xAE=; b=YZqsDiKuwuoXWbBT3SEybjCq3TXU910pJ2OBiUURE1vRrvFYeN+5rYK1uh5xyMy8mK p/G/lLAgokPxqGiImSSXQy0ME7TCM9Yx7ZZcSQVAkBu5inlCk+N7wl0fS3ImZb7/cv8u RzsPufWrhDofmKUwouloPxKlr6ShO+n2h8newieMyD0kmAzQ+gy17k0GuK3sznwluA6o SQRuQh0mGth7PC/LkoQCFCDAsFnVv6ALrHX+u3aSBnqEWmldY70WW1w+tOgcjUrMnQD1 qNu1T0WTccc7l3S3X2NBPFykhopgWLuw6KeCIDp4vzLUFjxqyi6XQTQFry+seAgiiuBz rcqA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:reply-to:from:date:message-id :subject:to; bh=HhYw27dFsPJBSEMniqnSoN1qTLGOWC/CgVxLYbr5xAE=; b=Zgz774RmcXBr7BPPYBbI7G1UOlvHzSEcAeimOtnPs6jCJnblAXxJyiJNtGAF7dQAgv x7i9hXidbUsJ533m04m6vo9TRbFeOTm3slWEPoKqB3rFUZ8NtzBy83rl/OOPJ357OmEL rzw5k2UnHrm4HCKtuKuqMtqXiU6b9FngP0kR2U727b/5ugfPyZIzagOUxnlzbazmjfHz 0B7Xk9sjKAqkJYVqYFmidLyCA0dtEpFGfJMBu6eAmcY4EuzU2T3t+mjejn47dP3LSKiH WvCpY9z8LXhS6Eyz+X8fFzHOFp3t/eiiWtpKpU3IBa8ccU/IHNgx64GMJ+r4xmDDZ6AA tMaQ== X-Gm-Message-State: AOAM533sO3gWdJaCZmVLOAAUDY6tOv+B9o2aAdJg0xITQp8eBzimAmQZ naqQLRQ3p45mZ/DFsAMopZc1wFCGblnrRe9mYM7x7n2bN88= X-Google-Smtp-Source: ABdhPJwymEDegPBgVuvreR2S5Pv72H1xfToPLGz5pET8FUnNky7wFmPj3VKC+1Tcn6JZqpM1RaTyYNL3OuKuOp57mlc= X-Received: by 2002:a25:bacb:: with SMTP id a11mr29886800ybk.128.1616881418707; Sat, 27 Mar 2021 14:43:38 -0700 (PDT) MIME-Version: 1.0 From: Reza Housseini Date: Sat, 27 Mar 2021 22:43:27 +0100 Message-ID: Received-SPF: pass client-ip=2607:f8b0:4864:20::b31; envelope-from=reza.housseini@gmail.com; helo=mail-yb1-xb31.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Mailman-Approved-At: Sat, 27 Mar 2021 17:50:00 -0400 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-Mailman-Approved-At: Sat, 27 Mar 2021 17:58:43 -0400 X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: reza.housseini@gmail.com Errors-To: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org Sender: "Guix-patches" X-getmail-retrieved-from-mailbox: Patches From 1506347765dbdb0672936112865fd5ea854ea227 Mon Sep 17 00:00:00 2001 From: Reza Housseini Date: Sat, 27 Mar 2021 22:39:55 +0100 Subject: [PATCH] Add ghc-servant and ghc-miso packages and deps --- gnu/packages/haskell-web.scm | 303 +++++++++++++++++++++++++++++++++++ gnu/packages/haskell-xyz.scm | 85 ++++++++++ 2 files changed, 388 insertions(+) diff --git a/gnu/packages/haskell-web.scm b/gnu/packages/haskell-web.scm index 0be9890d23..d01c3bea3f 100644 --- a/gnu/packages/haskell-web.scm +++ b/gnu/packages/haskell-web.scm @@ -143,6 +143,59 @@ Response} into a local web server. The user can decide how to interpret the requests, and the library is intended for implementing Ajax APIs.") (license license:bsd-3))) +(define-public ghc-http-media + (package + (name "ghc-http-media") + (version "0.8.0.0") + (source + (origin + (method url-fetch) + (uri (string-append + "https://hackage.haskell.org/package/http-media/http-media-" + version + ".tar.gz")) + (sha256 + (base32 + "0lww5cxrc9jlvzsysjv99lca33i4rb7cll66p3c0rdpmvz8pk0ir")))) + (build-system haskell-build-system) + (inputs + `(("ghc-case-insensitive" ,ghc-case-insensitive) + ("ghc-utf8-string" ,ghc-utf8-string))) + (arguments + `(#:tests? + #f + #:cabal-revision + ("4" + "0qg6x92i3w2q7zarr08kmicychkwskfi04xaxkqkg0cw6jnpnhhh"))) + (home-page "https://github.com/zmthy/http-media") + (synopsis + "Processing HTTP Content-Type and Accept headers") + (description "This library is intended to be a comprehensive solution to +parsing and selecting quality-indexed values in HTTP headers. +It is capable of parsing both media types and language parameters from +the Accept and Content header families, and can be extended to match +against other accept headers as well. Selecting the appropriate header +value is achieved by comparing a list of server options against the +quality-indexed values supplied by the client. In the following +example, the Accept header is parsed and then matched against a list of +server options to serve the appropriate media using @code{mapAcceptMedia}: + +@code{getHeader >>= maybe send406Error sendResourceWith . mapAcceptMedia +[ (\"text/html\", asHtml) +, (\"application/json\", asJson) +]} + +Similarly, the Content-Type header can be used to produce a parser for +request bodies based on the given content type with @code{mapContentMedia}: + +@code{getContentType >>= maybe send415Error readRequestBodyWith . mapContentMedia} +[ (\"application/json\", parseJson) +, (\"text/plain\", parseText) +]} + +The API is agnostic to your choice of server.") + (license license:expat))) + (define-public ghc-http-types (package (name "ghc-http-types") @@ -461,6 +514,256 @@ approach uses the same technique as leveraged by keter, whereas the WAI approach performs full request/response parsing via WAI and http-conduit.") (license license:bsd-3))) +(define-public ghc-miso + (package + (name "ghc-miso") + (version "1.7.1.0") + (source + (origin + (method url-fetch) + (uri (string-append + "https://hackage.haskell.org/package/miso/miso-" + version + ".tar.gz")) + (sha256 + (base32 + "1hkfcinwymrff8mmvywhnlzbj5804hwkk4rhzxzhzsycdf4v7a41")))) + (build-system haskell-build-system) + (inputs + `(("ghc-aeson" ,ghc-aeson) + ("ghc-http-api-data" ,ghc-http-api-data) + ("ghc-http-types" ,ghc-http-types) + ("ghc-network-uri" ,ghc-network-uri) + ("ghc-servant" ,ghc-servant) + ("ghc-lucid" ,ghc-lucid) + ("ghc-servant-lucid" ,ghc-servant-lucid) + ("ghc-vector" ,ghc-vector))) + (arguments `(#:tests? #f)) + (home-page "https://github.com/dmjio/miso") + (synopsis "A tasty Haskell front-end framework") + (description + "Miso is a small, production-ready, \"isomorphic\" Haskell +front-end framework featuring a virtual-dom, recursive diffing / patching +algorithm, event delegation, event batching, SVG, Server-sent events, +Websockets, type-safe servant-style routing and an extensible +Subscription-based subsystem. Inspired by Elm, Redux and Bobril. Miso is +pure by default, but side effects (like XHR) can be introduced into the +system via the Effect data type. Miso makes heavy use of the GHCJS FFI +and therefore has minimal dependencies.") + (license license:bsd-3))) + +(define-public ghc-servant + (package + (name "ghc-servant") + (version "0.18.2") + (source + (origin + (method url-fetch) + (uri (string-append + "https://hackage.haskell.org/package/servant/servant-" + version + ".tar.gz")) + (sha256 + (base32 + "18mfjj9za8g9rgj7a6j0ly6lf1ykfwrlpy3cf53lv1gxvb19gmk5")))) + (build-system haskell-build-system) + (inputs + `(("ghc-sop-core" ,ghc-sop-core) + ("ghc-http-api-data" ,ghc-http-api-data) + ("ghc-singleton-bool" ,ghc-singleton-bool) + ("ghc-base-compat" ,ghc-base-compat) + ("ghc-aeson" ,ghc-aeson) + ("ghc-attoparsec" ,ghc-attoparsec) + ("ghc-bifunctors" ,ghc-bifunctors) + ("ghc-case-insensitive" ,ghc-case-insensitive) + ("ghc-http-media" ,ghc-http-media) + ("ghc-http-types" ,ghc-http-types) + ("ghc-mmorph" ,ghc-mmorph) + ("ghc-network-uri" ,ghc-network-uri) + ("ghc-quickcheck" ,ghc-quickcheck) + ("ghc-string-conversions" + ,ghc-string-conversions) + ("ghc-tagged" ,ghc-tagged) + ("ghc-vault" ,ghc-vault))) + (arguments `(#:tests? #f)) + (home-page "http://docs.servant.dev/") + (synopsis + "A family of combinators for defining webservices APIs") + (description + "A family of combinators for defining webservices APIs and serving +them. You can learn about the basics in the +@url{http://docs.servant.dev/en/stable/tutorial/index.html, tutorial}. +@url{https://github.com/haskell-servant/servant/blob/master/servant/CHANGELOG.md, +CHANGELOG}") + (license license:bsd-3))) + +(define-public ghc-servant-client-core + (package + (name "ghc-servant-client-core") + (version "0.18.2") + (source + (origin + (method url-fetch) + (uri (string-append + "https://hackage.haskell.org/package/servant-client-core/servant-client-core-" + version + ".tar.gz")) + (sha256 + (base32 + "0b449c28z20sx98pc2d4p65jr3m9glsa47jjc2w4gf90jisl173r")))) + (build-system haskell-build-system) + (inputs + `(("ghc-servant" ,ghc-servant) + ("ghc-aeson" ,ghc-aeson) + ("ghc-base-compat" ,ghc-base-compat) + ("ghc-base64-bytestring" ,ghc-base64-bytestring) + ("ghc-exceptions" ,ghc-exceptions) + ("ghc-free" ,ghc-free) + ("ghc-http-media" ,ghc-http-media) + ("ghc-http-types" ,ghc-http-types) + ("ghc-network-uri" ,ghc-network-uri) + ("ghc-safe" ,ghc-safe) + ("ghc-sop-core" ,ghc-sop-core))) + (arguments + `(#:tests? + #f + #:cabal-revision + ("1" + "0vwj97h6x7zwvyx3ra09yhpi37mnn2kw5m27wnkzwwvk487swqxd"))) + (home-page "http://docs.servant.dev/") + (synopsis + "Core functionality and class for client function generation for servant APIs") + (description + "This library provides backend-agnostic generation of client +functions. For more information, see the README.") + (license license:bsd-3))) + +(define-public ghc-servant-client + (package + (name "ghc-servant-client") + (version "0.18.2") + (source + (origin + (method url-fetch) + (uri (string-append + "https://hackage.haskell.org/package/servant-client/servant-client-" + version + ".tar.gz")) + (sha256 + (base32 + "0acwpjmi5r62jgmpw508jq942kq5dhdy5602w9v7g318inxzwwi1")))) + (build-system haskell-build-system) + (inputs + `(("ghc-servant" ,ghc-servant) + ("ghc-servant-client-core" + ,ghc-servant-client-core) + ("ghc-base-compat" ,ghc-base-compat) + ("ghc-http-client" ,ghc-http-client) + ("ghc-http-media" ,ghc-http-media) + ("ghc-http-types" ,ghc-http-types) + ("ghc-exceptions" ,ghc-exceptions) + ("ghc-kan-extensions" ,ghc-kan-extensions) + ("ghc-monad-control" ,ghc-monad-control) + ("ghc-semigroupoids" ,ghc-semigroupoids) + ("ghc-transformers-base" ,ghc-transformers-base) + ("ghc-transformers-compat" + ,ghc-transformers-compat))) + (arguments `(#:tests? #f)) + (home-page "http://docs.servant.dev/") + (synopsis + "Automatic derivation of querying functions for servant") + (description + "This library lets you derive automatically Haskell functions that +let you query each endpoint of a @url{http://hackage.haskell.org/package/servant, +servant} +webservice. See +@url{http://docs.servant.dev/en/stable/tutorial/Client.html, +the client section of the tutorial}. +@url{https://github.com/haskell-servant/servant/blob/master/servant-client/CHANGELOG.md, +CHANGELOG}") + (license license:bsd-3))) + +(define-public ghc-servant-lucid + (package + (name "ghc-servant-lucid") + (version "0.9.0.2") + (source + (origin + (method url-fetch) + (uri (string-append + "https://hackage.haskell.org/package/servant-lucid/servant-lucid-" + version + ".tar.gz")) + (sha256 + (base32 + "0l68dffx746j3p2l5x59cj5cdng2dw6vjq5x5h44m0ccbsmlckpz")))) + (build-system haskell-build-system) + (inputs + `(("ghc-http-media" ,ghc-http-media) + ("ghc-lucid" ,ghc-lucid) + ("ghc-servant" ,ghc-servant))) + (arguments `(#:tests? #f)) + (home-page + "http://haskell-servant.readthedocs.io/") + (synopsis "Servant support for lucid") + (description + "Servant support for lucid. @emph{HTML} content type which will use +@code{ToHtml} class. Lucid.Servant uses @code{Link} rather than +@code{Text} for safe @emph{href} attributes.") + (license license:bsd-3))) + +(define-public ghc-servant-server + (package + (name "ghc-servant-server") + (version "0.18.2") + (source + (origin + (method url-fetch) + (uri (string-append + "https://hackage.haskell.org/package/servant-server/servant-server-" + version + ".tar.gz")) + (sha256 + (base32 + "05ricb3w1app6c094zwaq2jnqv53jpf4n89ffynm31dvf6h9qdih")))) + (build-system haskell-build-system) + (inputs + `(("ghc-servant" ,ghc-servant) + ("ghc-http-api-data" ,ghc-http-api-data) + ("ghc-base-compat" ,ghc-base-compat) + ("ghc-base64-bytestring" ,ghc-base64-bytestring) + ("ghc-exceptions" ,ghc-exceptions) + ("ghc-http-media" ,ghc-http-media) + ("ghc-http-types" ,ghc-http-types) + ("ghc-network-uri" ,ghc-network-uri) + ("ghc-monad-control" ,ghc-monad-control) + ("ghc-network" ,ghc-network) + ("ghc-sop-core" ,ghc-sop-core) + ("ghc-string-conversions" + ,ghc-string-conversions) + ("ghc-resourcet" ,ghc-resourcet) + ("ghc-tagged" ,ghc-tagged) + ("ghc-transformers-base" ,ghc-transformers-base) + ("ghc-wai" ,ghc-wai) + ("ghc-wai-app-static" ,ghc-wai-app-static) + ("ghc-word8" ,ghc-word8) + ("ghc-aeson" ,ghc-aeson) + ("ghc-warp" ,ghc-warp))) + (arguments `(#:tests? #f)) + (home-page "http://docs.servant.dev/") + (synopsis + "A family of combinators for defining webservices APIs and serving them") + (description + "A family of combinators for defining webservices APIs and serving +them. You can learn about the basics in the +@url{http://docs.servant.dev/en/stable/tutorial/index.html, tutorial}. +@url{https://github.com/haskell-servant/servant/blob/master/servant-server/example/greet.hs, +Here} is a runnable example, with comments, that defines a dummy API and +implements a webserver that serves this API, using this package. +@url{https://github.com/haskell-servant/servant/blob/master/servant-server/CHANGELOG.md, +CHANGELOG}") + (license license:bsd-3))) + (define-public ghc-wai (package (name "ghc-wai") diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm index 1fa7310fab..88ce54104a 100644 --- a/gnu/packages/haskell-xyz.scm +++ b/gnu/packages/haskell-xyz.scm @@ -3126,6 +3126,34 @@ to add D-Bus support to Haskell applications, without the awkward interfaces common to foreign bindings.") (license license:asl2.0))) +(define-public ghc-dec + (package + (name "ghc-dec") + (version "0.0.4") + (source + (origin + (method url-fetch) + (uri (string-append + "https://hackage.haskell.org/package/dec/dec-" + version + ".tar.gz")) + (sha256 + (base32 + "0yslffafmqfkvhcw2arpc53hfmn1788z85ss9lxnbclr29lbvzgc")))) + (build-system haskell-build-system) + (arguments `(#:tests? #f)) + (home-page "https://github.com/phadej/vec") + (synopsis "Decidable propositions") + (description + "This package provides a @code{Dec} type. +@code{ +type Neg a = a -> Void + +data Dec a += Yes a +| No (Neg a)}") + (license license:bsd-3))) + (define-public ghc-decimal (package (name "ghc-decimal") @@ -12186,6 +12214,37 @@ them.") are the bottleneck of web servers.") (license license:bsd-3))) +(define-public ghc-singleton-bool + (package + (name "ghc-singleton-bool") + (version "0.1.5") + (source + (origin + (method url-fetch) + (uri (string-append + "https://hackage.haskell.org/package/singleton-bool/singleton-bool-" + version + ".tar.gz")) + (sha256 + (base32 + "17w9vv6arn7vvc7kykqcx81q2364ji43khrryl27r1cjx9yxapa0")))) + (build-system haskell-build-system) + (inputs `(("ghc-dec" ,ghc-dec))) + (arguments + `(#:tests? + #f + #:cabal-revision + ("3" + "11rhzpy4xiry39bbxzwrqff75f0f4g7z0vkr3v9l8rv3w40jlf7x"))) + (home-page + "https://github.com/phadej/singleton-bool#readme") + (synopsis "Type level booleans") + (description + "Type level booleans. +@code{singletons} package provides similar functionality, but it has +tight dependency constraints.") + (license license:bsd-3))) + (define-public ghc-size-based (package (name "ghc-size-based") @@ -12825,6 +12884,32 @@ IO operations.") literals.") (license license:expat))) +(define-public ghc-string-conversions + (package + (name "ghc-string-conversions") + (version "0.4.0.1") + (source + (origin + (method url-fetch) + (uri (string-append + "https://hackage.haskell.org/package/string-conversions/string-conversions-" + version + ".tar.gz")) + (sha256 + (base32 + "150rdank90h7v08x0wq4dffjbxv2daf5v9sqfs5mab76kinwxg26")))) + (build-system haskell-build-system) + (inputs `(("ghc-utf8-string" ,ghc-utf8-string))) + (arguments `(#:tests? #f)) + (home-page + "https://github.com/soenkehahn/string-conversions#readme") + (synopsis + "Simplifies dealing with different types for strings") + (description + "Provides a simple type class for converting values of different +string types into values of other string types.") + (license license:bsd-3))) + (define-public ghc-string-qq (package (name "ghc-string-qq") -- 2.17.1