summaryrefslogtreecommitdiff
path: root/gnu/packages/haskell-xyz.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/haskell-xyz.scm')
-rw-r--r--gnu/packages/haskell-xyz.scm703
1 files changed, 702 insertions, 1 deletions
diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm
index 29d3077755..64c09c9274 100644
--- a/gnu/packages/haskell-xyz.scm
+++ b/gnu/packages/haskell-xyz.scm
@@ -19,7 +19,7 @@
;;; Copyright © 2018, 2019 Gabriel Hondet <gabrielhondet@gmail.com>
;;; Copyright © 2019 Robert Vollmert <rob@vllmrt.net>
;;; Copyright © 2019 Jacob MacDonald <jaccarmac@gmail.com>
-;;; Copyright © 2019 John Soo <jsoo1@asu.edu>
+;;; Copyright © 2019,2020 John Soo <jsoo1@asu.edu>
;;; Copyright © 2019 Kyle Meyer <kyle@kyleam.com>
;;; Copyright © 2019 Alex Griffin <a@ajgrf.com>
;;; Copyright © 2020 Brett Gilio <brettg@gnu.org>
@@ -567,6 +567,21 @@ will destroy the permissions on the original file. This library preserves
permissions while atomically writing to a file.")
(license license:expat)))
+(define-public ghc-atomic-write-0.2.0.7
+ (package
+ (inherit ghc-atomic-write)
+ (version "0.2.0.7")
+ (source
+ (origin
+ (inherit (package-source ghc-atomic-write))
+ (uri (string-append
+ "https://hackage.haskell.org/package/atomic-write/atomic-write-"
+ version
+ ".tar.gz"))
+ (sha256
+ (base32
+ "03cn3ii74h0w3g4h78xsx9v2sn58r3qsr2dbdwq340xwhiwcgxdm"))))))
+
(define-public ghc-attoparsec
(package
(name "ghc-attoparsec")
@@ -1535,6 +1550,82 @@ constructor which can be parameterised by a string-like type like:
the resulting type will be insensitive to cases.")
(license license:bsd-3)))
+(define-public ghc-cborg
+ (package
+ (name "ghc-cborg")
+ (version "0.2.2.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "mirror://hackage/package/cborg/cborg-"
+ version
+ ".tar.gz"))
+ (sha256
+ (base32
+ "1rdnvy0w17s70ikmbyrnwax5rvqh19l95sh8i7ipgxi23z1r0bp1"))))
+ (build-system haskell-build-system)
+ (inputs
+ `(("ghc-half" ,ghc-half)
+ ("ghc-primitive" ,ghc-primitive)))
+ (native-inputs
+ `(("ghc-aeson" ,ghc-aeson)
+ ("ghc-base64-bytestring" ,ghc-base64-bytestring)
+ ("ghc-base16-bytestring" ,ghc-base16-bytestring)
+ ("ghc-fail" ,ghc-fail)
+ ("ghc-quickcheck" ,ghc-quickcheck)
+ ("ghc-scientific" ,ghc-scientific)
+ ("ghc-tasty" ,ghc-tasty)
+ ("ghc-tasty-hunit" ,ghc-tasty-hunit)
+ ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
+ ("ghc-vector" ,ghc-vector)))
+ (home-page "http://hackage.haskell.org/package/cborg")
+ (synopsis "Concise Binary Object Representation")
+ (description
+ "This package (formerly binary-serialise-cbor) provides an
+efficient implementation of the Concise Binary Object
+Representation (CBOR), as specified by RFC 7049 at
+https://tools.ietf.org/html/rfc7049.
+
+If you are looking for a library for serialisation of Haskell values, have a
+look at the @url{https://hackage.haskell.org/package/serialise} package, which
+is built upon this library.
+
+An implementation of the standard bijection between CBOR and JSON is provided
+by the @url{https://hackage.haskell.org/package/cborg-json} package.
+
+Also see @code{https://hackage.haskell.org/package/cbor-tool} for a convenient
+command-line utility for working with CBOR data.")
+ (license license:bsd-3)))
+
+(define-public ghc-cborg-json
+ (package
+ (name "ghc-cborg-json")
+ (version "0.2.2.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "mirror://hackage/package/cborg-json/cborg-json-"
+ version
+ ".tar.gz"))
+ (sha256
+ (base32 "0ysilz7rrjk94sqr3a61s98hr9qfi1xg13bskmlpc6mpgi2s4s5b"))))
+ (build-system haskell-build-system)
+ (inputs
+ `(("ghc-aeson" ,ghc-aeson)
+ ("ghc-aeson-pretty" ,ghc-aeson-pretty)
+ ("ghc-unordered-containers" ,ghc-unordered-containers)
+ ("ghc-scientific" ,ghc-scientific)
+ ("ghc-vector" ,ghc-vector)
+ ("ghc-cborg" ,ghc-cborg)))
+ (home-page "https://github.com/well-typed/cborg")
+ (synopsis "A library for encoding JSON as CBOR")
+ (description
+ "This package implements the bijection between JSON and CBOR
+defined in the CBOR specification, RFC 7049.")
+ (license license:bsd-3)))
+
(define-public ghc-cereal
(package
(name "ghc-cereal")
@@ -2724,6 +2815,28 @@ package.")
package.")
(license license:bsd-3)))
+(define-public ghc-data-fix
+ (package
+ (name "ghc-data-fix")
+ (version "0.2.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "mirror://hackage/package/data-fix/"
+ "data-fix-" version ".tar.gz"))
+ (sha256
+ (base32 "14hk6hq5hdb3l5bhmzhw086jpzlvp9qbw9dzw30wlz5jbh2ihmvy"))))
+ (build-system haskell-build-system)
+ (home-page "https://github.com/spell-music/data-fix")
+ (synopsis "Fixpoint data types")
+ (description
+ "Fixpoint types and recursion schemes. If you define your AST as
+fixpoint type, you get fold and unfold operations for free.
+
+Thanks for contribution to: Matej Kollar, Herbert Valerio Riedel")
+ (license license:bsd-3)))
+
(define-public ghc-data-hash
(package
(name "ghc-data-hash")
@@ -3244,6 +3357,30 @@ It is modeled after doctest for Python, see
@uref{https://docs.python.org/library/doctest.html, the Doctest website}.")
(license license:expat)))
+(define-public ghc-dotgen
+ (package
+ (name "ghc-dotgen")
+ (version "0.4.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "mirror://hackage/package/dotgen/dotgen-"
+ version
+ ".tar.gz"))
+ (sha256
+ (base32
+ "148q93qsmqgr5pzdwvpjqfd6bdm1pwzcp2rblfwswx2x8c5f43fg"))))
+ (build-system haskell-build-system)
+ (home-page "https://github.com/ku-fpg/dotgen")
+ (synopsis
+ "Simple interface for building .dot graph files")
+ (description
+ "This package provides a simple interface for building .dot graph
+files, for input into the dot and graphviz tools. It includes a
+monadic interface for building graphs.")
+ (license license:bsd-3)))
+
(define-public ghc-double-conversion
(package
(name "ghc-double-conversion")
@@ -4359,6 +4496,60 @@ specific Windows, Mac, and Linux file system event notification.")
deriving mechanism in Haskell to arbitrary classes.")
(license license:bsd-3)))
+(define-public ghc-generic-random
+ (package
+ (name "ghc-generic-random")
+ (version "1.2.0.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://hackage.haskell.org/package/generic-random/"
+ "generic-random-" version ".tar.gz"))
+ (sha256
+ (base32 "130lmblycxnpqbsl7vf6a90zccibnvcb5zaclfajcn3by39007lv"))))
+ (build-system haskell-build-system)
+ (inputs `(("ghc-quickcheck" ,ghc-quickcheck)))
+ (native-inputs
+ `(("ghc-inspection-testing" ,ghc-inspection-testing)))
+ (arguments
+ `(#:cabal-revision
+ ("1" "1d0hx41r7yq2a86ydnfh2fv540ah8cz05l071s2z4wxcjw0ymyn4")))
+ (home-page
+ "https://github.com/lysxia/generic-random")
+ (synopsis
+ "Generic random generators for QuickCheck")
+ (description
+ "Derive instances of @code{Arbitrary} for QuickCheck, with various options
+to customize implementations.
+
+Automating the arbitrary boilerplate also ensures that when a type changes to
+have more or fewer constructors, then the generator either fixes itself to
+generate that new case (when using the uniform distribution) or causes a
+compilation error so you remember to fix it (when using an explicit
+distribution).
+
+This package also offers a simple (optional) strategy to ensure termination
+for recursive types: make @code{Test.QuickCheck.Gen}'s size parameter decrease
+at every recursive call; when it reaches zero, sample directly from a
+trivially terminating generator given explicitly (@code{genericArbitraryRec}
+and @code{withBaseCase}) or implicitly (@code{genericArbitrary'}).")
+ (license license:expat)))
+
+(define-public ghc-generic-random-1.3.0.1
+ (package
+ (inherit ghc-generic-random)
+ (version "1.3.0.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://hackage.haskell.org/package/generic-random/"
+ "generic-random-" version ".tar.gz"))
+ (sha256
+ (base32 "0d9w7xcmsb31b95fr9d5jwbsajcl1yi4347dlbw4bybil2vjwd7k"))))
+ (arguments '())))
+
(define-public ghc-generics-sop
(package
(name "ghc-generics-sop")
@@ -5112,6 +5303,37 @@ monad, as well as a typeclass abstracting their common operations, and
a set of wrappers to use the hash tables in the IO monad.")
(license license:bsd-3)))
+(define-public ghc-haskeline-0.8
+ (package
+ (name "ghc-haskeline")
+ (version "0.8.0.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://hackage.haskell.org/package/haskeline/haskeline-"
+ version
+ ".tar.gz"))
+ (sha256
+ (base32
+ "0gqsa5s0drim9m42hv4wrq61mnvcdylxysfxfw3acncwilfrn9pb"))))
+ (build-system haskell-build-system)
+ (inputs `(("ghc-exceptions" ,ghc-exceptions)))
+ (native-inputs `(("ghc-hunit" ,ghc-hunit)))
+ ;; FIXME: Tests failing
+ (arguments `(#:tests? #f))
+ (home-page "https://github.com/judah/haskeline")
+ (synopsis
+ "Command-line interface for user input, written in Haskell")
+ (description
+ "Haskeline provides a user interface for line input in command-line
+programs. This library is similar in purpose to readline, but since it is
+written in Haskell it is (hopefully) more easily used in other Haskell
+programs.
+
+Haskeline runs both on POSIX-compatible systems and on Windows.")
+ (license license:bsd-3)))
+
(define-public ghc-haskell-lexer
(package
(name "ghc-haskell-lexer")
@@ -6498,6 +6720,42 @@ of getters, folds, isomorphisms, traversals, setters and lenses and their
indexed variants.")
(license license:bsd-3)))
+(define-public ghc-lens-family-core
+ (package
+ (name "ghc-lens-family-core")
+ (version "1.2.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "mirror://hackage/package/lens-family-core/lens-family-core-"
+ version
+ ".tar.gz"))
+ (sha256
+ (base32
+ "009rf10pj1cb50v44cc1pq7qvfrmkkk9dikahs9qmvbvgl3mykwi"))))
+ (build-system haskell-build-system)
+ (home-page
+ "http://hackage.haskell.org/package/lens-family-core")
+ (synopsis "Haskell 98 Lens Families")
+ (description
+ "This package provides first class functional references. In addition to
+the usual operations of getting, setting and composition, plus integration
+with the state monad, lens families provide some unique features:
+
+@itemize
+@item Polymorphic updating
+@item Traversals
+@item Cast projection functions to read-only lenses
+@item Cast @code{toList} functions to read-only traversals
+@item Cast semantic editor combinators to modify-only traversals
+@end itemize
+
+For optimal first-class support use the lens-family package with rank 2/rank N
+polymorphism. @code{Lens.Family.Clone} allows for first-class support of
+lenses and traversals for those who require Haskell 98.")
+ (license license:bsd-3)))
+
(define-public ghc-libffi
(package
(name "ghc-libffi")
@@ -6975,6 +7233,42 @@ With it, you can determine the type of a file by examining its contents rather
than its name.")
(license license:bsd-3)))
+(define-public ghc-managed
+ (package
+ (name "ghc-managed")
+ (version "1.0.6")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "mirror://hackage/package/managed/managed-"
+ version
+ ".tar.gz"))
+ (sha256
+ (base32
+ "1kbrw99yh5x5blykmx2n88mplbbi4ss1ij5j17b7asw6q0ihm9zi"))))
+ (build-system haskell-build-system)
+ (home-page "http://hackage.haskell.org/package/managed")
+ (synopsis "Monad for managed values")
+ (description
+ "In Haskell you very often acquire values using the with... idiom using
+functions of type (a -> IO r) -> IO r. This idiom forms a Monad, which is a
+special case of the ContT monad (from transformers) or the Codensity
+monad (from kan-extensions). The main purpose behind this package is to
+provide a restricted form of these monads specialized to this unusually common
+case.
+
+The reason this package defines a specialized version of these types
+is to:
+
+@itemize
+@item be more beginner-friendly,
+@item simplify inferred types and error messages, and:
+@item provide some additional type class instances that would otherwise be
+orphan instances
+@end itemize")
+ (license license:bsd-3)))
+
(define-public ghc-markdown-unlit
(package
(name "ghc-markdown-unlit")
@@ -8211,6 +8505,29 @@ replay capababilities, implementing fast parser monads, designing monadic
DSLs, etc.")
(license license:bsd-3)))
+(define-public ghc-optional-args
+ (package
+ (name "ghc-optional-args")
+ (version "1.0.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "mirror://hackage/package/optional-args/optional-args-"
+ version
+ ".tar.gz"))
+ (sha256
+ (base32
+ "1r5hhn6xvc01grggxdyy48daibwzi0aikgidq0ahpa6bfynm8d1f"))))
+ (build-system haskell-build-system)
+ (home-page
+ "http://hackage.haskell.org/package/optional-args")
+ (synopsis "Optional function arguments")
+ (description
+ "This library provides a type for specifying @code{Optional} function
+arguments.")
+ (license license:bsd-3)))
+
(define-public ghc-options
(package
(name "ghc-options")
@@ -8999,6 +9316,45 @@ the persistent interface, not for users of the persistent suite of database
libraries.")
(license license:expat)))
+(define-public ghc-pgp-wordlist
+ (package
+ (name "ghc-pgp-wordlist")
+ (version "0.1.0.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "mirror://hackage/package/pgp-wordlist/pgp-wordlist-"
+ version
+ ".tar.gz"))
+ (sha256
+ (base32
+ "15g6qh0fb7kjj3l0w8cama7cxgnhnhybw760md9yy7cqfq15cfzg"))))
+ (build-system haskell-build-system)
+ (inputs
+ `(("ghc-vector" ,ghc-vector)))
+ (native-inputs
+ `(("ghc-hunit" ,ghc-hunit)
+ ("ghc-tasty" ,ghc-tasty)
+ ("ghc-tasty-hunit" ,ghc-tasty-hunit)
+ ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
+ ("ghc-doctest" ,ghc-doctest)))
+ (home-page
+ "https://github.com/quchen/pgp-wordlist")
+ (synopsis
+ "Translate between binary data and a human-readable collection of words")
+ (description
+ "The PGP Word List consists of two phonetic alphabets, each with one word
+per possible byte value. A string of bytes is translated with these
+alphabets, alternating between them at each byte.
+
+The PGP words corresponding to the bytes 5B 1D CA 6E are \"erase breakaway
+spellbind headwaters\", for example.
+
+For further information, see
+@url{http://en.wikipedia.org/wiki/PGP_word_list}.")
+ (license license:bsd-3)))
+
(define-public ghc-pipes
(package
(name "ghc-pipes")
@@ -9160,6 +9516,76 @@ provides the pretty printing class and instances for the Prelude
types.")
(license license:bsd-3)))
+(define-public ghc-prettyprinter
+ (package
+ (name "ghc-prettyprinter")
+ (version "1.2.1.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "mirror://hackage/package/prettyprinter/prettyprinter-"
+ version
+ ".tar.gz"))
+ (sha256
+ (base32 "1p9c3q55hba4c0zyxc624g5df7wgsclpsmd8wqpdnmib882q9d1v"))))
+ (build-system haskell-build-system)
+ (native-inputs
+ `(("ghc-doctest" ,ghc-doctest)
+ ("ghc-pgp-wordlist" ,ghc-pgp-wordlist)
+ ("ghc-tasty" ,ghc-tasty)
+ ("ghc-tasty-hunit" ,ghc-tasty-hunit)
+ ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
+ (home-page "https://github.com/quchen/prettyprinter")
+ (synopsis
+ "Modern, easy to use, well-documented, extensible pretty-printer")
+ (description
+ "A prettyprinter/text rendering engine. Easy to use, well-documented,
+ANSI terminal backend exists, HTML backend is trivial to implement, no name
+clashes, @code{Text}-based, extensible.")
+ (license license:bsd-2)))
+
+(define-public ghc-prettyprinter-1.6
+ (package
+ (inherit ghc-prettyprinter)
+ (version "1.6.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "mirror://hackage/package/prettyprinter/prettyprinter-"
+ version
+ ".tar.gz"))
+ (sha256
+ (base32 "10fphxh8lvdaw7i8jyllwmj87w02db92mf99zfw5vddp9mv6b5rz"))))
+ (inputs
+ `(("ghc-quickckeck-instances" , ghc-quickcheck-instances)
+ ,@(package-inputs ghc-prettyprinter)))))
+
+(define-public ghc-prettyprinter-ansi-terminal
+ (package
+ (name "ghc-prettyprinter-ansi-terminal")
+ (version "1.1.1.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "mirror://hackage/package/prettyprinter-ansi-terminal/"
+ "prettyprinter-ansi-terminal-" version ".tar.gz"))
+ (sha256
+ (base32 "0ha6vz707qzb5ky7kdsnw2zgphg2dnxrpbrxy8gaw119vwhb9q6k"))))
+ (build-system haskell-build-system)
+ (inputs
+ `(("ghc-ansi-terminal" ,ghc-ansi-terminal)
+ ("ghc-prettyprinter" ,ghc-prettyprinter-1.6)))
+ (native-inputs `(("ghc-doctest" ,ghc-doctest)))
+ (home-page
+ "https://github.com/quchen/prettyprinter")
+ (synopsis
+ "ANSI terminal backend for the prettyprinter package")
+ (description "ANSI terminal backend for the prettyprinter package.")
+ (license license:bsd-2)))
+
(define-public ghc-pretty-hex
(package
(name "ghc-pretty-hex")
@@ -9208,6 +9634,33 @@ complex generic values into an interactive Html page, for easier
examination.")
(license license:expat)))
+(define-public ghc-pretty-simple
+ (package
+ (name "ghc-pretty-simple")
+ (version "2.2.0.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "mirror://hackage/package/pretty-simple/"
+ "pretty-simple-" version ".tar.gz"))
+ (sha256
+ (base32 "0wsi9235ihm15s145lxi7325vv2k4bhighc5m88kn1lk0pl81aqq"))))
+ (build-system haskell-build-system)
+ (inputs
+ `(("ghc-ansi-terminal" ,ghc-ansi-terminal)
+ ("ghc-glob" ,ghc-glob)
+ ("ghc-optparse-applicative" ,ghc-optparse-applicative)
+ ("ghc-aeson" ,ghc-aeson)))
+ (native-inputs
+ `(("ghc-doctest" ,ghc-doctest)))
+ (home-page "https://github.com/cdepillabout/pretty-simple")
+ (synopsis "Pretty printer for data types with a 'Show' instance")
+ (description
+ "Pretty-simple is a pretty printer for Haskell data types that have a
+Show instance.")
+ (license license:bsd-3)))
+
(define-public ghc-primitive
(package
(name "ghc-primitive")
@@ -9890,6 +10343,46 @@ inspired by libtre.")
"This provides an extra text interface for regex-tdfa.")
(license license:bsd-3)))
+(define-public ghc-repline
+ (package
+ (name "ghc-repline")
+ (version "0.2.0.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "mirror://hackage/package/repline/repline-"
+ version
+ ".tar.gz"))
+ (sha256
+ (base32
+ "1ph21kbbanlcs8n5lwk16g9vqkb98mkbz5mzwrp8j2rls2921izc"))))
+ (build-system haskell-build-system)
+ (home-page "https://github.com/sdiehl/repline")
+ (synopsis "Haskeline wrapper for GHCi-like REPL interfaces")
+ (description
+ "Haskeline wrapper for GHCi-like REPL interfaces. Composable with
+normal mtl transformers.")
+ (license license:expat)))
+
+(define-public ghc-repline-0.3
+ (package
+ (inherit ghc-repline)
+ (version "0.3.0.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "mirror://hackage/package/repline/repline-"
+ version
+ ".tar.gz"))
+ (sha256
+ (base32
+ "0niihfyggg2qisadg7w49cr5k5qyyynia93iip0ng2bbmzwi88g8"))))
+ (inputs
+ `(("ghc-exceptions" ,ghc-exceptions)
+ ("ghc-haskeline" ,ghc-haskeline-0.8)))))
+
(define-public ghc-rerebase
(package
(name "ghc-rerebase")
@@ -10642,6 +11135,56 @@ semigroup.")
("ghc-hashable" ,ghc-hashable-bootstrap)))
(properties '((hidden? #t)))))
+(define-public ghc-serialise
+ (package
+ (name "ghc-serialise")
+ (version "0.2.1.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "mirror://hackage/package/serialise/serialise-"
+ version
+ ".tar.gz"))
+ (sha256
+ (base32
+ "19ary6ivzk8z7wcxhm860qmh7pwqj0qjqzav1h42y85l608zqgh4"))))
+ (build-system haskell-build-system)
+ (inputs
+ `(("ghc-cborg" ,ghc-cborg)
+ ("ghc-half" ,ghc-half)
+ ("ghc-hashable" ,ghc-hashable)
+ ("ghc-primitive" ,ghc-primitive)
+ ("ghc-unordered-containers" ,ghc-unordered-containers)
+ ("ghc-vector" ,ghc-vector)))
+ (native-inputs
+ `(("ghc-quickcheck" ,ghc-quickcheck)
+ ("ghc-tasty" ,ghc-tasty)
+ ("ghc-tasty-hunit" ,ghc-tasty-hunit)
+ ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
+ ("ghc-quickcheck-instances" ,ghc-quickcheck-instances)))
+ (arguments
+ `(#:cabal-revision
+ ("1" "1rknhad1i8bpknsnphmcmb6dnb48c2p2c13ia2qqch3hkhsvfpr6")))
+ (home-page "https://github.com/well-typed/cborg")
+ (synopsis "Binary serialisation library for Haskell values")
+ (description
+ "This package (formerly binary-serialise-cbor) provides pure,
+efficient serialization of Haskell values directly into ByteStrings for
+storage or transmission purposes. By providing a set of type class instances,
+you can also serialise any custom data type you have as well.
+
+The underlying binary format used is the 'Concise Binary Object
+Representation', or CBOR, specified in RFC 7049. As a result, serialised
+Haskell values have implicit structure outside of the Haskell program itself,
+meaning they can be inspected or analyzed without custom tools.
+
+An implementation of the standard bijection between CBOR and JSON is
+provided by the https://hackage.haskell.org/package/cborg-json
+package. Also see https://hackage.haskell.org/package/cbor-tool for a
+convenient command-line utility for working with CBOR data.")
+ (license license:bsd-3)))
+
(define-public ghc-setenv
(package
(name "ghc-setenv")
@@ -10983,6 +11526,32 @@ core of @url{https://hackage.haskell.org/package/generics-sop,
generics-sop}.")
(license license:bsd-3)))
+(define-public ghc-special-values
+ (package
+ (name "ghc-special-values")
+ (version "0.1.0.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://hackage.haskell.org/package/special-values/"
+ "special-values-" version ".tar.gz"))
+ (sha256
+ (base32
+ "1kkdw2c4d2hha99v9f89ahmifjxp7fxmxyfwq9a8xk6s0h9xs51w"))))
+ (build-system haskell-build-system)
+ (inputs
+ `(("ghc-scientific" ,ghc-scientific)
+ ("ghc-ieee754" ,ghc-ieee754)
+ ("ghc-nats" ,ghc-nats)))
+ (home-page
+ "https://github.com/minad/special-values#readme")
+ (synopsis "Typeclass providing special values")
+ (description
+ "Special values are provided by a SpecialValues typeclass. Those can be
+used for example by QuickCheck, see quickcheck-special." )
+ (license license:expat)))
+
(define-public ghc-split
(package
(name "ghc-split")
@@ -11056,6 +11625,37 @@ internal state).")
(native-inputs '())
(properties '((hidden? #t)))))
+(define-public ghc-spoon
+ (package
+ (name "ghc-spoon")
+ (version "0.3.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://hackage.haskell.org/package/spoon/spoon-"
+ version
+ ".tar.gz"))
+ (sha256
+ (base32
+ "1m41k0mfy6fpfrv2ym4m5jsjaj9xdfl2iqpppd3c4d0fffv51cxr"))))
+ (build-system haskell-build-system)
+ (arguments
+ `(#:cabal-revision
+ ("1"
+ "09s5jjcsg4g4qxchq9g2l4i9d5zh3rixpkbiysqcgl69kj8mwv74")))
+ (home-page
+ "http://hackage.haskell.org/package/spoon")
+ (synopsis
+ "Catch errors thrown from pure computations")
+ (description
+ "Takes an error-throwing expression and puts it back in the Maybe it
+belongs in.
+
+Note that this suffers from the
+@url{https://ghc.haskell.org/trac/ghc/ticket/5902}. Buyer beware.")
+ (license license:bsd-3)))
+
(define-public ghc-statevar
(package
(name "ghc-statevar")
@@ -11867,6 +12467,44 @@ 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-text-manipulate
+ (package
+ (name "ghc-text-manipulate")
+ (version "0.2.0.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://hackage.haskell.org/package/text-manipulate"
+ "/text-manipulate-"
+ version
+ ".tar.gz"))
+ (sha256
+ (base32
+ "0bwxyjj3ll45srxhsp2ihikgqglvjc6m02ixr8xpvyqwkcfwgsg0"))))
+ (build-system haskell-build-system)
+ (native-inputs
+ `(("ghc-tasty" ,ghc-tasty)
+ ("ghc-tasty-hunit" ,ghc-tasty-hunit)))
+ (home-page
+ "https://github.com/brendanhay/text-manipulate")
+ (synopsis
+ "Case conversion, word boundary manipulation, and textual subjugation")
+ (description
+ "Manipulate identifiers and structurally non-complex pieces of text by
+delimiting word boundaries via a combination of whitespace,
+control-characters, and case-sensitivity.
+
+Has support for common idioms like casing of programmatic variable names,
+taking, dropping, and splitting by word, and modifying the first character of
+a piece of text.
+
+Caution: this library makes heavy use of the text library's internal loop
+optimisation framework. Since internal modules are not guaranteed to have a
+stable API there is potential for build breakage when the text dependency is
+upgraded. Consider yourself warned!")
+ (license license:mpl2.0)))
+
(define-public ghc-text-metrics
(package
(name "ghc-text-metrics")
@@ -12537,6 +13175,69 @@ generating functions similar to those in @code{Data.List} for tuples of
statically known size.")
(license license:bsd-3)))
+(define-public ghc-turtle
+ (package
+ (name "ghc-turtle")
+ (version "1.5.15")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "mirror://hackage/package/turtle/turtle-"
+ version
+ ".tar.gz"))
+ (sha256
+ (base32
+ "0yckgsc2a4g5x867gni80ldp226bsnhncfbil4ql6v2zwm4r8p7f"))))
+ (build-system haskell-build-system)
+ (inputs
+ `(("ghc-ansi-wl-pprint" ,ghc-ansi-wl-pprint)
+ ("ghc-async" ,ghc-async)
+ ("ghc-clock" ,ghc-clock)
+ ("ghc-exceptions" ,ghc-exceptions)
+ ("ghc-foldl" ,ghc-foldl)
+ ("ghc-hostname" ,ghc-hostname)
+ ("ghc-managed" ,ghc-managed)
+ ("ghc-semigroups" ,ghc-semigroups)
+ ("ghc-system-filepath" ,ghc-system-filepath)
+ ("ghc-system-fileio" ,ghc-system-fileio)
+ ("ghc-streaming-commons" ,ghc-streaming-commons)
+ ("ghc-temporary" ,ghc-temporary)
+ ("ghc-optparse-applicative" ,ghc-optparse-applicative)
+ ("ghc-optional-args" ,ghc-optional-args)
+ ("ghc-unix-compat" ,ghc-unix-compat)))
+ (native-inputs
+ `(("ghc-doctest" ,ghc-doctest)
+ ("ghc-fail" ,ghc-fail)))
+ (arguments
+ `(#:cabal-revision
+ ("1" "02q1rv7zx31xz9wnmcqwd4w3iw7623p07iyi21zr0cqlignic5pg")))
+ (home-page
+ "http://hackage.haskell.org/package/turtle")
+ (synopsis "Shell programming, Haskell-style")
+ (description
+ "Turtle is a reimplementation of the Unix command line environment in
+Haskell so that you can use Haskell as both a shell and a scripting
+language. Features include:
+
+@itemize
+@item Batteries included: Command an extended suite of predefined utilities.
+@item Interoperability: You can still run external shell commands.
+@item Portability: Works on Windows, OS X, and Linux.
+@item Exception safety: Safely acquire and release resources.
+@item Streaming: Transform or fold command output in constant space.
+@item Patterns: Use typed regular expressions that can parse structured values.
+@item Formatting: Type-safe printf-style text formatting.
+@item Modern: Supports text and system-filepath.
+@end itemize
+
+Read \"Turtle.Tutorial\" for a detailed tutorial or \"Turtle.Prelude\" for a
+quick-start guide. Turtle is designed to be beginner-friendly, but as a
+result lacks certain features, like tracing commands. If you feel comfortable
+using turtle then you should also check out the Shelly library which provides
+similar functionality.")
+ (license license:bsd-3)))
+
(define-public ghc-typed-process
(package
(name "ghc-typed-process")