diff options
author | John Soo <jsoo1@asu.edu> | 2019-12-13 08:45:42 -0800 |
---|---|---|
committer | Christopher Baines <mail@cbaines.net> | 2020-05-08 09:53:26 +0100 |
commit | 20c440ea046ed809009fc189cfc03833ae9eb8ea (patch) | |
tree | 2812c669af24826127c7f1fc7dd4da886758b661 /gnu | |
parent | af36939410a038614b7c80640048beddc559f64c (diff) | |
download | guix-20c440ea046ed809009fc189cfc03833ae9eb8ea.tar.gz guix-20c440ea046ed809009fc189cfc03833ae9eb8ea.zip |
gnu: Add ghc-these.
* gnu/packages/haskell-xyz.scm (ghc-these): New variable.
Signed-off-by: Christopher Baines <mail@cbaines.net>
Diffstat (limited to 'gnu')
-rw-r--r-- | gnu/packages/haskell-xyz.scm | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm index a54abd40f5..51e447febd 100644 --- a/gnu/packages/haskell-xyz.scm +++ b/gnu/packages/haskell-xyz.scm @@ -12000,6 +12000,63 @@ and @code{Eq} instances. These instances used to live in the haskell-src-meta package, and that's where the version number started.") (license license:bsd-3))) +(define-public ghc-these + (package + (name "ghc-these") + (version "1.0.1") + (source + (origin + (method url-fetch) + (uri (string-append + "https://hackage.haskell.org/package/these/these-" + version + ".tar.gz")) + (sha256 + (base32 + "1k0pi65g7cm9hzdw6my6bzz2zvddkmj1qs45ymqmi316bpiixk3r")))) + (build-system haskell-build-system) + (inputs + `(("ghc-base-compat" ,ghc-base-compat) + ("ghc-hashable" ,ghc-hashable) + ("ghc-aeson" ,ghc-aeson) + ("ghc-unordered-containers" ,ghc-unordered-containers) + ("ghc-assoc" ,ghc-assoc) + ("ghc-semigroupoids" ,ghc-semigroupoids) + ("ghc-quickcheck" ,ghc-quickcheck))) + (arguments + `(#:cabal-revision + ("1" + "0923r86fnmgpx0msm68aszirh2n19nn5bccgjxfh2146jw4z7w3z"))) + (home-page + "https://github.com/isomorphism/these") + (synopsis "Either-or-both data type") + (description + "This package provides a data type @code{These a b} which can +hold a value of either type or values of each type. This is usually +thought of as an \"inclusive or\" type (contrasting @code{Either a b} as +\"exclusive or\") or as an \"outer join\" type (contrasting @code{(a, b)} +as \"inner join\"). + +@code{data These a b = This a | That b | These a b} + +Since version 1, this package was split into parts: + +@itemize +@item +https://hackage.haskell.org/package/semialign For @code{Align} and +@code{Zip} type-classes. +@item +https://hackage.haskell.org/package/semialign-indexed For +@code{SemialignWithIndex} class, providing @code{ialignWith} and +@code{izipWith} +@item +https://hackage.haskell.org/package/these-lens For lens combinators. +@item +http://hackage.haskell.org/package/monad-chronicle For transformers +variant of @code{These}. +@end itemize") + (license license:bsd-3))) + (define-public ghc-threads (package (name "ghc-threads") |