gnu: ruby-pandoc-ruby: Use pandoc instead of ghc-pandoc.
[jackhill/guix/guix.git] / gnu / packages / haskell-xyz.scm
CommitLineData
6b34d01c 1;;; GNU Guix --- Functional package management for GNU
dddbc90c
RV
2;;; Copyright © 2015, 2016 Federico Beffa <beffa@fbengineering.ch>
3;;; Copyright © 2015 Siniša Biđin <sinisa@bidin.eu>
4;;; Copyright © 2015 Paul van der Walt <paul@denknerd.org>
5;;; Copyright © 2015, 2019 Eric Bavier <bavier@member.fsf.org>
6;;; Copyright © 2016, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
3c986a7d 7;;; Copyright © 2016, 2017 Nikita <nikita@n0.is>
799d8d3c 8;;; Copyright © 2016, 2019 Efraim Flashner <efraim@flashner.co.il>
dddbc90c
RV
9;;; Copyright © 2015, 2016, 2017, 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
10;;; Copyright © 2016, 2017 David Craven <david@craven.ch>
11;;; Copyright © 2017 Danny Milosavljevic <dannym@scratchpost.org>
12;;; Copyright © 2017 Peter Mikkelsen <petermikkelsen10@gmail.com>
13;;; Copyright © 2017, 2018 Alex Vong <alexvong1995@gmail.com>
14;;; Copyright © 2017 rsiddharth <s@ricketyspace.net>
15;;; Copyright © 2017, 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
16;;; Copyright © 2018 Tonton <tonton@riseup.net>
17;;; Copyright © 2018, 2019 Timothy Sample <samplet@ngyro.com>
18;;; Copyright © 2018 Arun Isaac <arunisaac@systemreboot.net>
19;;; Copyright © 2018, 2019 Gabriel Hondet <gabrielhondet@gmail.com>
6b34d01c 20;;; Copyright © 2019 Robert Vollmert <rob@vllmrt.net>
dddbc90c 21;;; Copyright © 2019 Jacob MacDonald <jaccarmac@gmail.com>
82c36002 22;;; Copyright © 2019,2020 John Soo <jsoo1@asu.edu>
7f89dfc9 23;;; Copyright © 2019, 2020 Kyle Meyer <kyle@kyleam.com>
9ad9ec2e 24;;; Copyright © 2019 Alex Griffin <a@ajgrf.com>
4639fa32 25;;; Copyright © 2020 Brett Gilio <brettg@gnu.org>
84436be0 26;;; Copyright © 2020 JoJo <jo@jo.zone>
ba7cbae3 27;;; Copyright © 2020 Nicolas Goaziou <mail@nicolasgoaziou.fr>
fbe32d46 28;;; Copyright © 2020 Alexandru-Sergiu Marton <brown121407@member.fsf.org>
6b34d01c
RV
29;;;
30;;; This file is part of GNU Guix.
31;;;
32;;; GNU Guix is free software; you can redistribute it and/or modify it
33;;; under the terms of the GNU General Public License as published by
34;;; the Free Software Foundation; either version 3 of the License, or (at
35;;; your option) any later version.
36;;;
37;;; GNU Guix is distributed in the hope that it will be useful, but
38;;; WITHOUT ANY WARRANTY; without even the implied warranty of
39;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
40;;; GNU General Public License for more details.
41;;;
42;;; You should have received a copy of the GNU General Public License
43;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
44
45(define-module (gnu packages haskell-xyz)
46 #:use-module (gnu packages)
dddbc90c
RV
47 #:use-module (gnu packages base)
48 #:use-module (gnu packages compression)
49 #:use-module (gnu packages emacs)
dddbc90c
RV
50 #:use-module (gnu packages gl)
51 #:use-module (gnu packages graphviz)
52 #:use-module (gnu packages gtk)
d4e4a382 53 #:use-module (gnu packages haskell)
dddbc90c 54 #:use-module (gnu packages haskell-apps)
efb96749 55 #:use-module (gnu packages haskell-check)
dddbc90c
RV
56 #:use-module (gnu packages haskell-crypto)
57 #:use-module (gnu packages haskell-web)
58 #:use-module (gnu packages libffi)
59 #:use-module (gnu packages linux)
e3ee8023 60 #:use-module (gnu packages llvm)
dddbc90c
RV
61 #:use-module (gnu packages lua)
62 #:use-module (gnu packages maths)
49e29df5 63 #:use-module (gnu packages ncurses)
dddbc90c
RV
64 #:use-module (gnu packages pcre)
65 #:use-module (gnu packages pkg-config)
66 #:use-module (gnu packages sdl)
0c2d6fc2 67 #:use-module (gnu packages web)
dddbc90c
RV
68 #:use-module (gnu packages xml)
69 #:use-module (gnu packages xorg)
6b34d01c
RV
70 #:use-module (guix build-system haskell)
71 #:use-module (guix download)
dddbc90c 72 #:use-module (guix git-download)
4780db2c 73 #:use-module (guix utils)
6b34d01c 74 #:use-module ((guix licenses) #:prefix license:)
d4e4a382
RW
75 #:use-module (guix packages)
76 #:use-module (srfi srfi-1))
6b34d01c 77
dddbc90c 78(define-public ghc-abstract-deque
efb96749 79 (package
dddbc90c
RV
80 (name "ghc-abstract-deque")
81 (version "0.3")
efb96749
RV
82 (source
83 (origin
84 (method url-fetch)
85 (uri (string-append "https://hackage.haskell.org/package/"
dddbc90c
RV
86 "abstract-deque-" version "/"
87 "abstract-deque-" version ".tar.gz"))
efb96749
RV
88 (sha256
89 (base32
dddbc90c 90 "18jwswjxwzc9bjiy4ds6hw2a74ki797jmfcifxd2ga4kh7ri1ah9"))))
efb96749 91 (build-system haskell-build-system)
dddbc90c
RV
92 (inputs `(("ghc-random" ,ghc-random)))
93 (home-page "https://github.com/rrnewton/haskell-lockfree/wiki")
94 (synopsis "Abstract, parameterized interface to mutable Deques for Haskell")
95 (description "This Haskell package provides an abstract interface to
96highly-parameterizable queues/deques.
97
98Background: There exists a feature space for queues that extends between:
efb96749
RV
99
100@itemize
dddbc90c
RV
101@item Simple, single-ended, non-concurrent, bounded queues
102
103@item Double-ended, thread-safe, growable queues with important points
104in between (such as the queues used for work stealing).
efb96749
RV
105@end itemize
106
dddbc90c
RV
107This package includes an interface for Deques that allows the programmer
108to use a single API for all of the above, while using the type system to
109select an efficient implementation given the requirements (using type families).
efb96749 110
dddbc90c
RV
111This package also includes a simple reference implementation based on
112@code{IORef} and @code{Data.Sequence}.")
efb96749
RV
113 (license license:bsd-3)))
114
dddbc90c 115(define-public ghc-abstract-par
658dbc7f 116 (package
dddbc90c
RV
117 (name "ghc-abstract-par")
118 (version "0.3.3")
658dbc7f
RV
119 (source
120 (origin
121 (method url-fetch)
122 (uri (string-append "https://hackage.haskell.org/package/"
dddbc90c
RV
123 "abstract-par-" version "/"
124 "abstract-par-" version ".tar.gz"))
658dbc7f
RV
125 (sha256
126 (base32
dddbc90c
RV
127 "0q6qsniw4wks2pw6wzncb1p1j3k6al5njnvm2v5n494hplwqg2i4"))))
128 (build-system haskell-build-system)
129 (home-page "https://github.com/simonmar/monad-par")
130 (synopsis "Abstract parallelization interface for Haskell")
131 (description "This Haskell package is an abstract interface
132only. It provides a number of type clasess, but not an
133implementation. The type classes separate different levels
134of @code{Par} functionality. See the @code{Control.Monad.Par.Class}
135module for more details.")
136 (license license:bsd-3)))
137
d8b88d74
TS
138(define-public ghc-active
139 (package
140 (name "ghc-active")
141 (version "0.2.0.14")
142 (source
143 (origin
144 (method url-fetch)
145 (uri (string-append "https://hackage.haskell.org/package/"
146 "active/active-" version ".tar.gz"))
147 (sha256
148 (base32
149 "0x3b4ln6csa554qls28wbxvclkbdz3yi60i1m0q5ing0cs16fifz"))))
150 (build-system haskell-build-system)
151 (inputs
152 `(("ghc-vector" ,ghc-vector)
153 ("ghc-semigroups" ,ghc-semigroups)
154 ("ghc-semigroupoids" ,ghc-semigroupoids)
155 ("ghc-lens" ,ghc-lens)
156 ("ghc-linear" ,ghc-linear)))
157 (native-inputs
158 `(("ghc-quickcheck" ,ghc-quickcheck)))
159 (home-page "https://hackage.haskell.org/package/active")
160 (synopsis "Abstractions for animation")
161 (description "This package defines an @code{Active} abstraction for
162time-varying values with finite start and end times. It is used for
163describing animations within the
164@url{https://archives.haskell.org/projects.haskell.org/diagrams/,
165diagrams framework}.")
166 (license license:bsd-3)))
167
dddbc90c
RV
168(define-public ghc-adjunctions
169 (package
170 (name "ghc-adjunctions")
171 (version "4.4")
172 (source
173 (origin
174 (method url-fetch)
175 (uri (string-append
176 "https://hackage.haskell.org/package/adjunctions/adjunctions-"
177 version
178 ".tar.gz"))
179 (sha256
180 (base32
181 "1sbal7cbhm12crfnfhkk322jnzgx7lhw3jzq0p463bipagsjwz2h"))))
658dbc7f 182 (build-system haskell-build-system)
a78262be
TS
183 (arguments
184 `(#:cabal-revision
185 ("2" "1yfsjx7dqikg3hvld7i91xfsg5lawmr5980lvfd794sybmgxsf17")))
658dbc7f 186 (inputs
dddbc90c
RV
187 `(("ghc-profunctors" ,ghc-profunctors)
188 ("ghc-comonad" ,ghc-comonad)
189 ("ghc-contravariant" ,ghc-contravariant)
190 ("ghc-distributive" ,ghc-distributive)
191 ("ghc-free" ,ghc-free)
192 ("ghc-tagged" ,ghc-tagged)
193 ("ghc-semigroupoids" ,ghc-semigroupoids)
194 ("ghc-semigroups" ,ghc-semigroups)
195 ("ghc-transformers-compat" ,ghc-transformers-compat)
196 ("ghc-void" ,ghc-void)))
658dbc7f 197 (native-inputs
dddbc90c
RV
198 `(("ghc-generic-deriving" ,ghc-generic-deriving)
199 ("ghc-hspec" ,ghc-hspec)
200 ("hspec-discover" ,hspec-discover)))
201 (home-page "https://github.com/ekmett/adjunctions/")
202 (synopsis "Adjunctions and representable functors")
203 (description "This library provides adjunctions and representable functors
204for Haskell.")
205 (license license:bsd-3)))
206
207(define-public ghc-aeson-compat
208 (package
209 (name "ghc-aeson-compat")
0bafb755 210 (version "0.3.9")
dddbc90c
RV
211 (source
212 (origin
213 (method url-fetch)
214 (uri (string-append "https://hackage.haskell.org/package/"
215 "aeson-compat-" version "/"
216 "aeson-compat-" version ".tar.gz"))
217 (sha256
218 (base32
0bafb755 219 "1j13gykv4ryvmr14w5blz0nnpdb4p0hpa27wahw3mhb1lwdr8hz0"))))
dddbc90c
RV
220 (build-system haskell-build-system)
221 (arguments `(#:tests? #f)) ; FIXME: Tests require QuickCheck >= 2.10
222 (inputs `(("ghc-base-compat" ,ghc-base-compat)
223 ("ghc-aeson" ,ghc-aeson)
224 ("ghc-attoparsec" ,ghc-attoparsec)
225 ("ghc-attoparsec" ,ghc-attoparsec-iso8601)
226 ("ghc-exceptions" ,ghc-exceptions)
227 ("ghc-hashable" ,ghc-hashable)
228 ("ghc-scientific" ,ghc-scientific)
229 ("ghc-time-locale-compat" ,ghc-time-locale-compat)
230 ("ghc-unordered-containers" ,ghc-unordered-containers)
231 ("ghc-vector" ,ghc-vector)
232 ("ghc-tagged" ,ghc-tagged)
233 ("ghc-semigroups" ,ghc-semigroups)
234 ("ghc-nats" ,ghc-nats)))
235 (home-page "https://github.com/phadej/aeson-compat")
236 (synopsis "Compatibility layer for ghc-aeson")
237 (description "This Haskell package provides compatibility layer for
238ghc-aeson.")
239 (license license:bsd-3)))
240
cbc6f861
TS
241(define-public ghc-aeson-diff
242 (package
243 (name "ghc-aeson-diff")
244 (version "1.1.0.7")
245 (source
246 (origin
247 (method url-fetch)
248 (uri (string-append "https://hackage.haskell.org/package/"
249 "aeson-diff/aeson-diff-" version ".tar.gz"))
250 (sha256
251 (base32
252 "01d48pd7d1mb9cd5yxfajln8rmjdjq8ch91s0lav4qw1azv6vp2r"))))
253 (build-system haskell-build-system)
254 (inputs
255 `(("ghc-aeson" ,ghc-aeson)
256 ("ghc-edit-distance-vector" ,ghc-edit-distance-vector)
257 ("ghc-hashable" ,ghc-hashable)
258 ("ghc-scientific" ,ghc-scientific)
259 ("ghc-unordered-containers" ,ghc-unordered-containers)
260 ("ghc-vector" ,ghc-vector)
261 ("ghc-semigroups" ,ghc-semigroups)
262 ("ghc-optparse-applicative" ,ghc-optparse-applicative)))
263 (native-inputs
264 `(("ghc-quickcheck" ,ghc-quickcheck)
265 ("ghc-quickcheck-instances" ,ghc-quickcheck-instances)
266 ("ghc-glob" ,ghc-glob)
267 ("ghc-quickcheck" ,ghc-quickcheck)
268 ("ghc-quickcheck-instances" ,ghc-quickcheck-instances)
269 ("ghc-quickcheck" ,ghc-quickcheck)
270 ("ghc-doctest" ,ghc-doctest)
271 ("hlint" ,hlint)))
272 (home-page "https://github.com/thsutton/aeson-diff")
273 (synopsis "Extract and apply patches to JSON documents")
274 (description "This is a small library for working with changes to JSON
275documents. It includes a library and two command-line executables in the
276style of the @command{diff} and @command{patch} commands available on many
277systems.")
278 (license license:bsd-3)))
279
dddbc90c
RV
280(define-public ghc-alex
281 (package
282 (name "ghc-alex")
283 (version "3.2.4")
284 (source
285 (origin
286 (method url-fetch)
287 (uri (string-append
288 "https://hackage.haskell.org/package/alex/alex-"
289 version
290 ".tar.gz"))
291 (sha256
292 (base32
293 "0cpjixgsr0b2x4s6hz4aa6gnmjw9i7xd9nlfi8m37zqlidq4v3nm"))))
294 (build-system haskell-build-system)
658dbc7f 295 (arguments
dddbc90c
RV
296 `(#:phases
297 (modify-phases %standard-phases
298 (add-before 'check 'set-check-variables
299 (lambda _
300 (setenv "PATH" (string-append (getcwd) "/dist/build/alex:"
301 (getenv "PATH")))
302 (setenv "alex_datadir" (string-append (getcwd) "/data"))
303 #t)))))
304 (inputs `(("ghc-quickcheck" ,ghc-quickcheck)))
305 (native-inputs
306 `(("which" ,which)))
307 (home-page "https://www.haskell.org/alex/")
308 (synopsis
309 "Tool for generating lexical analysers in Haskell")
310 (description
311 "Alex is a tool for generating lexical analysers in Haskell. It takes a
312description of tokens based on regular expressions and generates a Haskell
313module containing code for scanning text efficiently. It is similar to the
314tool lex or flex for C/C++.")
658dbc7f
RV
315 (license license:bsd-3)))
316
dddbc90c 317(define-public ghc-alsa-core
7b01a977 318 (package
dddbc90c
RV
319 (name "ghc-alsa-core")
320 (version "0.5.0.1")
321 (source
322 (origin
323 (method url-fetch)
324 (uri (string-append
325 "mirror://hackage/package/alsa-core/alsa-core-"
326 version
327 ".tar.gz"))
328 (sha256
329 (base32
330 "1avh4a419h9d2zsslg6j8hm87ppgsgqafz8ll037rk2yy1g4jl7b"))))
331 (build-system haskell-build-system)
54a5fd07
TS
332 (arguments
333 `(#:extra-directories ("alsa-lib")))
dddbc90c
RV
334 (inputs
335 `(("ghc-extensible-exceptions" ,ghc-extensible-exceptions)
336 ("alsa-lib" ,alsa-lib)))
337 (native-inputs
338 `(("pkg-config" ,pkg-config)))
228d2901 339 (home-page "https://wiki.haskell.org/ALSA")
dddbc90c
RV
340 (synopsis "Binding to the ALSA Library API (Exceptions)")
341 (description "This package provides access to ALSA infrastructure, that is
342needed by both alsa-seq and alsa-pcm.")
343 (license license:bsd-3)))
344
f2ed1e6d
JS
345(define-public ghc-alsa-mixer
346 (package
347 (name "ghc-alsa-mixer")
348 (version "0.3.0")
349 (source
350 (origin
351 (method url-fetch)
352 (uri
353 (string-append
354 "mirror://hackage/package/alsa-mixer/alsa-mixer-"
355 version ".tar.gz"))
356 (sha256
357 (base32
358 "00ny2p3276jilidjs44npc8zmbhynz3f2lpmlwwl6swwx5yijsnb"))))
359 (build-system haskell-build-system)
360 (inputs `(("ghc-alsa-core" ,ghc-alsa-core)))
361 (native-inputs `(("ghc-c2hs" ,ghc-c2hs)))
362 (home-page "https://github.com/ttuegel/alsa-mixer")
363 (synopsis "Bindings to the ALSA simple mixer API")
364 (description
365 "This package provides bindings to the ALSA simple mixer API.")
366 (license license:bsd-3)))
367
dddbc90c
RV
368(define-public ghc-annotated-wl-pprint
369 (package
370 (name "ghc-annotated-wl-pprint")
371 (version "0.7.0")
372 (source
373 (origin
374 (method url-fetch)
375 (uri (string-append
376 "https://hackage.haskell.org/package/annotated-wl-pprint"
377 "/annotated-wl-pprint-" version
378 ".tar.gz"))
379 (sha256
380 (base32
381 "061xfz6qany3wf95csl8dcik2pz22cn8iv1qchhm16isw5zjs9hc"))))
382 (build-system haskell-build-system)
383 (home-page
384 "https://github.com/david-christiansen/annotated-wl-pprint")
385 (synopsis
386 "The Wadler/Leijen Pretty Printer, with annotation support")
387 (description "This is a modified version of wl-pprint, which was based on
388Wadler's paper \"A Prettier Printer\". This version allows the library user
389to annotate the text with semantic information, which can later be rendered in
390a variety of ways.")
391 (license license:bsd-3)))
392
393(define-public ghc-ansi-terminal
394 (package
395 (name "ghc-ansi-terminal")
f1b4a73f 396 (version "0.9.1")
dddbc90c
RV
397 (source
398 (origin
399 (method url-fetch)
400 (uri (string-append
401 "https://hackage.haskell.org/package/ansi-terminal/ansi-terminal-"
402 version
403 ".tar.gz"))
404 (sha256
405 (base32
f1b4a73f 406 "1yr0ld0kqns3w3j9gl62bdwshvyazidx4dv1qkvq19ivnf08w23l"))))
dddbc90c
RV
407 (build-system haskell-build-system)
408 (inputs
409 `(("ghc-colour" ,ghc-colour)))
410 (home-page "https://github.com/feuerbach/ansi-terminal")
411 (synopsis "ANSI terminal support for Haskell")
412 (description "This package provides ANSI terminal support for Haskell. It
413allows cursor movement, screen clearing, color output showing or hiding the
414cursor, and changing the title.")
415 (license license:bsd-3)))
416
417(define-public ghc-ansi-wl-pprint
418 (package
419 (name "ghc-ansi-wl-pprint")
c38746eb 420 (version "0.6.9")
7b01a977
RV
421 (source
422 (origin
423 (method url-fetch)
424 (uri (string-append "https://hackage.haskell.org/package/"
dddbc90c 425 "ansi-wl-pprint/ansi-wl-pprint-"
7b01a977
RV
426 version ".tar.gz"))
427 (sha256
428 (base32
c38746eb 429 "1b2fg8px98dzbaqyns10kvs8kn6cl1hdq5wb9saz40izrpkyicm7"))))
7b01a977
RV
430 (build-system haskell-build-system)
431 (inputs
dddbc90c
RV
432 `(("ghc-ansi-terminal" ,ghc-ansi-terminal)))
433 (home-page "https://github.com/ekmett/ansi-wl-pprint")
434 (synopsis "Wadler/Leijen Pretty Printer for colored ANSI terminal output")
435 (description "This is a pretty printing library based on Wadler's paper
436\"A Prettier Printer\". It has been enhanced with support for ANSI terminal
437colored output using the ansi-terminal package.")
438 (license license:bsd-3)))
439
440(define-public ghc-appar
441 (package
442 (name "ghc-appar")
1159d1a5 443 (version "0.1.8")
dddbc90c
RV
444 (source
445 (origin
446 (method url-fetch)
447 (uri (string-append
448 "https://hackage.haskell.org/package/appar/appar-"
449 version
450 ".tar.gz"))
451 (sha256
452 (base32
1159d1a5 453 "07v3h766q9mnhphsm53718h1lds147ix7dj15kc5hnsj4vffvkn4"))))
dddbc90c
RV
454 (build-system haskell-build-system)
455 (home-page
456 "https://hackage.haskell.org/package/appar")
457 (synopsis "Simple applicative parser")
458 (description "This package provides a simple applicative parser in Parsec
459style.")
460 (license license:bsd-3)))
461
af369394
JS
462(define-public ghc-assoc
463 (package
464 (name "ghc-assoc")
465 (version "1.0.1")
466 (source
467 (origin
468 (method url-fetch)
469 (uri (string-append
470 "https://hackage.haskell.org/package/assoc/assoc-"
471 version
472 ".tar.gz"))
473 (sha256
474 (base32
475 "1m9n4vp190bvn2wcrd4ggfwa9pi93jp0zgx02mdgywn2zfidw020"))))
476 (build-system haskell-build-system)
477 (inputs
478 `(("ghc-bifunctors" ,ghc-bifunctors)
479 ("ghc-tagged" ,ghc-tagged)))
480 (home-page
481 "http://hackage.haskell.org/package/assoc")
482 (synopsis
483 "Swap and assoc: Symmetric and Semigroupy Bifunctors")
484 (description
485 "Provides generalisations of @code{swap :: (a,b) -> (b,a)} and
486@code{assoc :: ((a,b),c) -> (a,(b,c))} to @code{Bifunctor}s supporting
487similar operations (e.g. @code{Either}, @code{These}).")
488 (license license:bsd-3)))
489
dddbc90c
RV
490(define-public ghc-async
491 (package
492 (name "ghc-async")
048ef066 493 (version "2.2.2")
dddbc90c
RV
494 (source
495 (origin
496 (method url-fetch)
497 (uri (string-append
498 "https://hackage.haskell.org/package/async/async-"
499 version
500 ".tar.gz"))
501 (sha256
502 (base32
048ef066 503 "1zxvfcyy4sg8lmzphi5dgnavksj5pav6rbvd5kc48lf4hanb2jjb"))))
dddbc90c
RV
504 (build-system haskell-build-system)
505 (inputs
506 `(("ghc-hashable" ,ghc-hashable)
507 ("ghc-hunit" ,ghc-hunit)
7b01a977
RV
508 ("ghc-test-framework" ,ghc-test-framework)
509 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)))
dddbc90c
RV
510 (home-page "https://github.com/simonmar/async")
511 (synopsis "Library to run IO operations asynchronously")
512 (description "Async provides a library to run IO operations
513asynchronously, and wait for their results. It is a higher-level interface
514over threads in Haskell, in which @code{Async a} is a concurrent thread that
515will eventually deliver a value of type @code{a}.")
7b01a977
RV
516 (license license:bsd-3)))
517
9ad9ec2e
AG
518(define-public ghc-atomic-primops
519 (package
520 (name "ghc-atomic-primops")
af16c6b0 521 (version "0.8.3")
9ad9ec2e
AG
522 (source
523 (origin
524 (method url-fetch)
525 (uri (string-append "https://hackage.haskell.org/package/atomic-primops"
526 "/atomic-primops-" version ".tar.gz"))
527 (sha256
528 (base32
af16c6b0 529 "03n5dmyplrqgbyf8dr91izkxci7gkl3i3fnp82i5ld869zrgjfh0"))))
9ad9ec2e
AG
530 (build-system haskell-build-system)
531 (inputs `(("ghc-primitive" ,ghc-primitive)))
532 (home-page "https://github.com/rrnewton/haskell-lockfree/wiki")
533 (synopsis "Safe approach to CAS and other atomic ops")
534 (description
535 "GHC 7.4 introduced a new @code{casMutVar} PrimOp which is difficult to
536use safely, because pointer equality is a highly unstable property in Haskell.
537This library provides a safer method based on the concept of @code{Ticket}s.")
538 (license license:bsd-3)))
539
dddbc90c 540(define-public ghc-atomic-write
79fcc5e5 541 (package
dddbc90c 542 (name "ghc-atomic-write")
c09d1e62 543 (version "0.2.0.6")
79fcc5e5
RV
544 (source
545 (origin
546 (method url-fetch)
dddbc90c
RV
547 (uri (string-append
548 "https://hackage.haskell.org/package/atomic-write/atomic-write-"
549 version
550 ".tar.gz"))
79fcc5e5
RV
551 (sha256
552 (base32
c09d1e62 553 "1xs3shwnlj8hmnm3q6jc8nv78z0481i5n4hrqqdmbpx8grvlnqyl"))))
dddbc90c
RV
554 (build-system haskell-build-system)
555 (inputs
556 `(("ghc-temporary" ,ghc-temporary)
557 ("ghc-unix-compat" ,ghc-unix-compat)))
558 (native-inputs
559 `(("ghc-temporary" ,ghc-temporary)
560 ("ghc-unix-compat" ,ghc-unix-compat)
561 ("ghc-hspec" ,ghc-hspec)
562 ("hspec-discover" ,hspec-discover)))
563 (home-page "https://github.com/stackbuilders/atomic-write")
564 (synopsis "Atomically write to a file")
565 (description
566 "Atomically write to a file on POSIX-compliant systems while preserving
567permissions. @code{mv} is an atomic operation. This makes it simple to write
568to a file atomically just by using the @code{mv} operation. However, this
569will destroy the permissions on the original file. This library preserves
570permissions while atomically writing to a file.")
571 (license license:expat)))
572
b7250901
JS
573(define-public ghc-atomic-write-0.2.0.7
574 (package
575 (inherit ghc-atomic-write)
576 (version "0.2.0.7")
577 (source
578 (origin
579 (inherit (package-source ghc-atomic-write))
580 (uri (string-append
581 "https://hackage.haskell.org/package/atomic-write/atomic-write-"
582 version
583 ".tar.gz"))
584 (sha256
585 (base32
586 "03cn3ii74h0w3g4h78xsx9v2sn58r3qsr2dbdwq340xwhiwcgxdm"))))))
587
dddbc90c
RV
588(define-public ghc-attoparsec
589 (package
590 (name "ghc-attoparsec")
511c3204 591 (version "0.13.2.3")
dddbc90c
RV
592 (source
593 (origin
594 (method url-fetch)
595 (uri (string-append
596 "https://hackage.haskell.org/package/attoparsec/attoparsec-"
597 version
598 ".tar.gz"))
599 (sha256
600 (base32
511c3204 601 "1ngjn9h5n0vyki0m2jir4mg85875ysswy9hznpmj1r856mqwc6ix"))))
79fcc5e5 602 (build-system haskell-build-system)
79fcc5e5 603 (arguments
dddbc90c
RV
604 `(#:phases
605 (modify-phases %standard-phases
606 (add-after 'unpack 'patch-for-newer-quickcheck
607 (lambda _
608 (substitute* "attoparsec.cabal"
609 (("QuickCheck >= 2\\.7 && < 2\\.10")
610 "QuickCheck >= 2.7 && < 2.12"))
611 ;; This test fails because of the newer QuickCheck:
612 ;; <https://github.com/bos/attoparsec/issues/134>.
613 (substitute* "tests/QC/ByteString.hs"
614 ((", testProperty \"satisfyWith\" satisfyWith")
615 "")))))))
616 (inputs
617 `(("ghc-scientific" ,ghc-scientific)))
618 (native-inputs
619 `(("ghc-tasty" ,ghc-tasty)
620 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
621 ("ghc-quickcheck" ,ghc-quickcheck)
622 ("ghc-quickcheck-unicode" ,ghc-quickcheck-unicode)
623 ("ghc-vector" ,ghc-vector)))
624 (home-page "https://github.com/bos/attoparsec")
625 (synopsis "Fast combinator parsing for bytestrings and text")
626 (description "This library provides a fast parser combinator library,
627aimed particularly at dealing efficiently with network protocols and
628complicated text/binary file formats.")
79fcc5e5
RV
629 (license license:bsd-3)))
630
dddbc90c 631(define-public ghc-attoparsec-bootstrap
6b34d01c 632 (package
dddbc90c
RV
633 (inherit ghc-attoparsec)
634 (name "ghc-attoparsec-bootstrap")
635 (arguments `(#:tests? #f))
636 (inputs
637 `(("ghc-scientific" ,ghc-scientific-bootstrap)))
638 (native-inputs '())
799d8d3c 639 (properties '((hidden? #t)))))
dddbc90c
RV
640
641(define-public ghc-attoparsec-iso8601
642 (package
643 (name "ghc-attoparsec-iso8601")
97f267c8 644 (version "1.0.1.0")
6b34d01c
RV
645 (source
646 (origin
647 (method url-fetch)
648 (uri (string-append "https://hackage.haskell.org/package/"
dddbc90c
RV
649 "attoparsec-iso8601-" version "/"
650 "attoparsec-iso8601-" version ".tar.gz"))
6b34d01c
RV
651 (sha256
652 (base32
97f267c8 653 "0hj10w15qp2z5bz2v4xahhmbgzclpyfi5l2sv97wqycysg9gp7s9"))))
6b34d01c 654 (build-system haskell-build-system)
dddbc90c
RV
655 (arguments
656 `(#:cabal-revision
97f267c8 657 ("1" "1rjhscmczgs1bwyqx7lvkm8py3ylxjd2797mrzgnq60fvm292750")))
dddbc90c
RV
658 (inputs `(("ghc-attoparsec" ,ghc-attoparsec)
659 ("ghc-base-compat" ,ghc-base-compat)))
660 (home-page "https://github.com/bos/aeson")
661 (synopsis "Parse ISO 8601 dates")
662 (description "Haskell library for parsing of ISO 8601 dates, originally
663from aeson.")
6b34d01c 664 (license license:bsd-3)))
b57e99f5 665
dddbc90c 666(define-public ghc-auto-update
b57e99f5 667 (package
dddbc90c 668 (name "ghc-auto-update")
11b1b6cd 669 (version "0.1.6")
dddbc90c
RV
670 (source
671 (origin
672 (method url-fetch)
673 (uri (string-append
674 "https://hackage.haskell.org/package/auto-update/auto-update-"
675 version
676 ".tar.gz"))
677 (sha256
678 (base32
11b1b6cd 679 "1i36xc2i34aync8271x3pv515l3zb53i518dybn8ghqkhzf27q7l"))))
dddbc90c 680 (build-system haskell-build-system)
11b1b6cd
TS
681 (native-inputs
682 `(("ghc-hspec" ,ghc-hspec)
683 ("ghc-hunit" ,ghc-hunit)
684 ("ghc-retry" ,ghc-retry)
685 ("hspec-discover" ,hspec-discover)))
dddbc90c
RV
686 (home-page "https://github.com/yesodweb/wai")
687 (synopsis "Efficiently run periodic, on-demand actions")
688 (description "This library provides mechanisms to efficiently run
689periodic, on-demand actions in Haskell.")
690 (license license:expat)))
691
692(define-public ghc-aws
693 (package
694 (name "ghc-aws")
695 (version "0.20")
b57e99f5
RV
696 (source
697 (origin
698 (method url-fetch)
699 (uri (string-append "https://hackage.haskell.org/package/"
dddbc90c
RV
700 "aws-" version "/aws-" version ".tar.gz"))
701 (sha256 (base32
702 "0pwpabmypi1w8rni9qfwabgn95jks4h8dyw6889mn8xzsrhdhyf0"))))
703 (build-system haskell-build-system)
704 (arguments `(#:tests? #f)) ; Tests require AWS credentials.
705 (inputs
706 `(("ghc-aeson" ,ghc-aeson)
707 ("ghc-attoparsec" ,ghc-attoparsec)
708 ("ghc-base16-bytestring" ,ghc-base16-bytestring)
709 ("ghc-base64-bytestring" ,ghc-base64-bytestring)
710 ("ghc-blaze-builder" ,ghc-blaze-builder)
711 ("ghc-byteable" ,ghc-byteable)
712 ("ghc-case-insensitive" ,ghc-case-insensitive)
713 ("ghc-cereal" ,ghc-cereal)
714 ("ghc-conduit" ,ghc-conduit)
715 ("ghc-conduit-extra" ,ghc-conduit-extra)
716 ("ghc-cryptonite" ,ghc-cryptonite)
717 ("ghc-data-default" ,ghc-data-default)
718 ("ghc-http-conduit" ,ghc-http-conduit)
719 ("ghc-http-types" ,ghc-http-types)
720 ("ghc-lifted-base" ,ghc-lifted-base)
721 ("ghc-monad-control" ,ghc-monad-control)
722 ("ghc-network" ,ghc-network)
723 ("ghc-old-locale" ,ghc-old-locale)
724 ("ghc-safe" ,ghc-safe)
725 ("ghc-scientific" ,ghc-scientific)
726 ("ghc-tagged" ,ghc-tagged)
727 ("ghc-unordered-containers" ,ghc-unordered-containers)
728 ("ghc-utf8-string" ,ghc-utf8-string)
729 ("ghc-vector" ,ghc-vector)
730 ("ghc-xml-conduit" ,ghc-xml-conduit)))
731 (native-inputs
732 `(("ghc-quickcheck" ,ghc-quickcheck)
733 ("ghc-errors" ,ghc-errors)
734 ("ghc-http-client" ,ghc-http-client)
735 ("ghc-http-client-tls" ,ghc-http-client-tls)
736 ("ghc-quickcheck-instances" ,ghc-quickcheck-instances)
737 ("ghc-tasty" ,ghc-tasty)
738 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
739 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
740 ("ghc-conduit-combinators" ,ghc-conduit-combinators)))
741 (home-page "https://github.com/aristidb/aws")
742 (synopsis "Amazon Web Services for Haskell")
743 (description "This package attempts to provide support for using
744Amazon Web Services like S3 (storage), SQS (queuing) and others to
745Haskell programmers. The ultimate goal is to support all Amazon
746Web Services.")
747 (license license:bsd-3)))
748
749(define-public ghc-base16-bytestring
750 (package
751 (name "ghc-base16-bytestring")
752 (version "0.1.1.6")
753 (source
754 (origin
755 (method url-fetch)
756 (uri (string-append
757 "https://hackage.haskell.org/package/base16-bytestring/"
758 "base16-bytestring-" version ".tar.gz"))
b57e99f5
RV
759 (sha256
760 (base32
dddbc90c 761 "0jf40m3yijqw6wd1rwwvviww46fasphaay9m9rgqyhf5aahnbzjs"))))
b57e99f5 762 (build-system haskell-build-system)
dddbc90c
RV
763 (home-page "https://github.com/bos/base16-bytestring")
764 (synopsis "Fast base16 (hex) encoding and decoding for ByteStrings")
765 (description
766 "This package provides a Haskell library for working with base16-encoded
767data quickly and efficiently, using the ByteString type.")
b57e99f5 768 (license license:bsd-3)))
bbf8bf31 769
dddbc90c 770(define-public ghc-base64-bytestring
bbf8bf31 771 (package
dddbc90c
RV
772 (name "ghc-base64-bytestring")
773 (version "1.0.0.2")
bbf8bf31
RV
774 (source
775 (origin
776 (method url-fetch)
dddbc90c
RV
777 (uri (string-append
778 "https://hackage.haskell.org/package/base64-bytestring/base64-bytestring-"
779 version
780 ".tar.gz"))
781 (sha256
782 (base32 "13305brzlac24pifiqd5a2z10c6k6amhpdy9cc0z5ryrkgnm8dhr"))))
783 (build-system haskell-build-system)
784 (arguments `(#:tests? #f)) ; FIXME: testing libraries are missing.
785 (home-page "https://github.com/bos/base64-bytestring")
786 (synopsis "Base64 encoding and decoding for ByteStrings")
787 (description "This library provides fast base64 encoding and decoding for
788Haskell @code{ByteString}s.")
789 (license license:bsd-3)))
790
791(define-public ghc-base-compat
792 (package
793 (name "ghc-base-compat")
4daaa371 794 (version "0.10.5")
dddbc90c
RV
795 (source
796 (origin
797 (method url-fetch)
798 (uri (string-append
799 "https://hackage.haskell.org/package/base-compat/base-compat-"
800 version
801 ".tar.gz"))
bbf8bf31
RV
802 (sha256
803 (base32
4daaa371 804 "0hgvlqcr852hfp52jp99snhbj550mvxxpi8qn15d8ml9aqhyl2lr"))))
bbf8bf31 805 (build-system haskell-build-system)
e2b021df 806 (outputs '("out" "static" "doc"))
bbf8bf31 807 (native-inputs
dddbc90c
RV
808 `(("ghc-quickcheck" ,ghc-quickcheck)
809 ("ghc-hspec" ,ghc-hspec)
810 ("hspec-discover" ,hspec-discover)))
811 (home-page "https://hackage.haskell.org/package/base-compat")
812 (synopsis "Haskell compiler compatibility library")
813 (description "This library provides functions available in later versions
814of base to a wider range of compilers, without requiring the use of CPP
815pragmas in your code.")
816 (license license:bsd-3)))
817
f9d78c7f
TS
818(define-public ghc-base-compat-batteries
819 (package
820 (name "ghc-base-compat-batteries")
821 (version "0.10.5")
822 (source
823 (origin
824 (method url-fetch)
825 (uri (string-append "https://hackage.haskell.org/package/"
826 "base-compat-batteries/base-compat-batteries-"
827 version ".tar.gz"))
828 (sha256
829 (base32
830 "1vkhc639vqiv5p39jn1v312z32i7yk5q2lf0ap4jxl1v8p8wyp8p"))))
831 (build-system haskell-build-system)
832 (inputs
833 `(("ghc-base-compat" ,ghc-base-compat)))
834 (native-inputs
835 `(("ghc-hspec" ,ghc-hspec)
836 ("ghc-quickcheck" ,ghc-quickcheck)
837 ("hspec-discover" ,hspec-discover)))
838 (arguments
839 `(#:cabal-revision
840 ("1" "15sn2qc8k0hxbb2nai341kkrci98hlhzcj2ci087m0zxcg5jcdbp")))
3ef91e15 841 (home-page "https://hackage.haskell.org/package/base-compat-batteries")
f9d78c7f
TS
842 (synopsis "base-compat with extra batteries")
843 (description "This library provides functions available in later
844versions of @code{base} to a wider range of compilers, without requiring
845you to use CPP pragmas in your code. This package provides the same API
846as the @code{base-compat} library, but depends on compatibility
847packages (such as @code{semigroups}) to offer a wider support window
848than @code{base-compat}, which has no dependencies.")
849 (license license:expat)))
850
dddbc90c
RV
851(define-public ghc-basement
852 (package
853 (name "ghc-basement")
8b56c1fd 854 (version "0.0.11")
dddbc90c
RV
855 (source
856 (origin
857 (method url-fetch)
858 (uri (string-append "https://hackage.haskell.org/package/"
859 "basement/basement-" version ".tar.gz"))
860 (sha256
861 (base32
8b56c1fd 862 "0srlws74yiraqaapgcjd9p5d1fwb3zr9swcz74jpjm55fls2nn37"))))
dddbc90c 863 (build-system haskell-build-system)
05f7f8be 864 (outputs '("out" "static" "doc"))
dddbc90c
RV
865 (home-page "https://github.com/haskell-foundation/foundation")
866 (synopsis "Basic primitives for Foundation starter pack")
867 (description
868 "This package contains basic primitives for the Foundation set of
869packages.")
870 (license license:bsd-3)))
871
872(define-public ghc-base-orphans
873 (package
874 (name "ghc-base-orphans")
780477fb 875 (version "0.8.1")
dddbc90c
RV
876 (source
877 (origin
878 (method url-fetch)
879 (uri (string-append
880 "https://hackage.haskell.org/package/base-orphans/base-orphans-"
881 version
882 ".tar.gz"))
883 (sha256
884 (base32
780477fb 885 "1nwr9av27i9p72k0sn96mw3ywdczw65dy5gd5wxpabhhxlxdcas4"))))
dddbc90c
RV
886 (build-system haskell-build-system)
887 (native-inputs
888 `(("ghc-quickcheck" ,ghc-quickcheck)
889 ("ghc-hspec" ,ghc-hspec)
890 ("hspec-discover" ,hspec-discover)))
891 (home-page "https://hackage.haskell.org/package/base-orphans")
892 (synopsis "Orphan instances for backwards compatibility")
893 (description "This package defines orphan instances that mimic instances
894available in later versions of base to a wider (older) range of compilers.")
895 (license license:bsd-3)))
896
897(define-public ghc-base-prelude
898 (package
899 (name "ghc-base-prelude")
900 (version "1.3")
901 (source
902 (origin
903 (method url-fetch)
904 (uri (string-append "https://hackage.haskell.org/package/"
905 "base-prelude-" version "/"
906 "base-prelude-" version ".tar.gz"))
907 (sha256
908 (base32
909 "1zk728sd09hh2r4xwz4lazsrrgg5cshydn64932sm0vckplndk73"))))
910 (build-system haskell-build-system)
3d7ee2f8 911 (outputs '("out" "static" "doc"))
dddbc90c
RV
912 (home-page "https://github.com/nikita-volkov/base-prelude")
913 (synopsis "The most complete prelude formed solely from the Haskell's base
914package")
915 (description "This Haskell package aims to reexport all the non-conflicting
916and most general definitions from the \"base\" package.
917
918This includes APIs for applicatives, arrows, monoids, foldables, traversables,
919exceptions, generics, ST, MVars and STM.
920
921This package will never have any dependencies other than \"base\".
922
923Versioning policy:
924
925The versioning policy of this package deviates from PVP in the sense
926that its exports in part are transitively determined by the version of \"base\".
927Therefore it's recommended for the users of @code{ghc-base-prelude} to specify
928the bounds of \"base\" as well.")
929 (license license:expat)))
930
931(define-public ghc-base-unicode-symbols
932 (package
933 (name "ghc-base-unicode-symbols")
934 (version "0.2.3")
935 (source
936 (origin
937 (method url-fetch)
938 (uri (string-append
939 "mirror://hackage/package/base-unicode-symbols/base-unicode-symbols-"
940 version
941 ".tar.gz"))
942 (sha256
943 (base32
944 "1ia6li7qjg1zkak4gf6mnbshw45mq9bfjr0jch58ds0lscmvwyzf"))))
945 (build-system haskell-build-system)
228d2901 946 (home-page "https://wiki.haskell.org/Unicode-symbols")
dddbc90c
RV
947 (synopsis "Unicode alternatives for common functions and operators")
948 (description "This package defines new symbols for a number of functions,
949operators and types in the base package. All symbols are documented with
950their actual definition and information regarding their Unicode code point.
951They should be completely interchangeable with their definitions. For
952further Unicode goodness you can enable the @code{UnicodeSyntax}
953@url{https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/glasgow_exs.html#unicode-syntax,
954language extension}. This extension enables Unicode characters to be used to
955stand for certain ASCII character sequences, i.e. → instead of @code{->},
956∀ instead of @code{forall} and many others.")
957 (license license:bsd-3)))
958
ec8491b0
ASM
959(define-public ghc-basic-prelude
960 (package
961 (name "ghc-basic-prelude")
962 (version "0.7.0")
963 (source
964 (origin
965 (method url-fetch)
966 (uri (string-append
967 "https://hackage.haskell.org/package/basic-prelude/"
968 "basic-prelude-" version ".tar.gz"))
969 (sha256
970 (base32
971 "0yckmnvm6i4vw0mykj4fzl4ldsf67v8d2h0vp1bakyj84n4myx8h"))))
972 (build-system haskell-build-system)
973 (inputs
974 `(("ghc-hashable" ,ghc-hashable)
975 ("ghc-unordered-containers"
976 ,ghc-unordered-containers)
977 ("ghc-vector" ,ghc-vector)))
978 (home-page "https://github.com/snoyberg/basic-prelude#readme")
979 (synopsis "Enhanced core prelude; a common foundation for alternate preludes")
980 (description
981 "The premise of basic-prelude is that there are a lot of very commonly
982desired features missing from the standard Prelude, such as commonly used
983operators (<$> and >=>, for instance) and imports for common datatypes
984(e.g., ByteString and Vector). At the same time, there are lots of other
985components which are more debatable, such as providing polymorphic versions
986of common functions.
987
988So basic-prelude is intended to give a common foundation for a number of
989alternate preludes. The package provides two modules: CorePrelude provides
990the common ground for other preludes to build on top of, while BasicPrelude
991exports CorePrelude together with commonly used list functions to provide a
992drop-in replacement for the standard Prelude.
993
994Users wishing to have an improved Prelude can use BasicPrelude. Developers
995wishing to create a new prelude should use CorePrelude.")
996 (license license:expat)))
997
dddbc90c
RV
998(define-public ghc-bifunctors
999 (package
1000 (name "ghc-bifunctors")
0beaec66 1001 (version "5.5.5")
dddbc90c
RV
1002 (source
1003 (origin
1004 (method url-fetch)
1005 (uri (string-append
1006 "https://hackage.haskell.org/package/bifunctors/bifunctors-"
1007 version
1008 ".tar.gz"))
1009 (sha256
1010 (base32
0beaec66 1011 "0rn47q8dzv0g1fyams99p4py6q0asxdc50q9k0nj497brk738xcb"))))
dddbc90c
RV
1012 (build-system haskell-build-system)
1013 (inputs
1014 `(("ghc-base-orphans" ,ghc-base-orphans)
1015 ("ghc-comonad" ,ghc-comonad)
1016 ("ghc-th-abstraction" ,ghc-th-abstraction)
1017 ("ghc-transformers-compat" ,ghc-transformers-compat)
1018 ("ghc-tagged" ,ghc-tagged)
1019 ("ghc-semigroups" ,ghc-semigroups)))
1020 (native-inputs
1021 `(("ghc-hspec" ,ghc-hspec)
1022 ("hspec-discover" ,hspec-discover)
1023 ("ghc-quickcheck" ,ghc-quickcheck)))
1024 (home-page "https://github.com/ekmett/bifunctors/")
1025 (synopsis "Bifunctors for Haskell")
1026 (description "This package provides bifunctors for Haskell.")
1027 (license license:bsd-3)))
1028
1029(define-public ghc-bindings-dsl
1030 (package
1031 (name "ghc-bindings-dsl")
1032 (version "1.0.25")
1033 (source
1034 (origin
1035 (method url-fetch)
1036 (uri (string-append "https://hackage.haskell.org/package/bindings-DSL/"
1037 "bindings-DSL-" version ".tar.gz"))
1038 (sha256
1039 (base32
1040 "0kqrd78nspl3lk4a0fqn47d8dirjg3b24dkvkigcrlb81hw35pk3"))))
1041 (build-system haskell-build-system)
1042 (home-page "https://github.com/jwiegley/bindings-dsl/wiki")
1043 (synopsis "FFI domain specific language, on top of hsc2hs")
1044 (description
1045 "This is a set of macros to be used when writing Haskell FFI. They were
1046designed to be able to fully describe C interfaces, so that @code{hsc2hs} can
1047extract from them all Haskell code needed to mimic such interfaces. All
1048Haskell names used are automatically derived from C names, structures are
1049mapped to Haskell instances of @code{Storable}, and there are also macros you
1050can use with C code to help write bindings to inline functions or macro
1051functions.")
1052 (license license:bsd-3)))
1053
64f42786
TS
1054(define-public ghc-bitarray
1055 (package
1056 (name "ghc-bitarray")
1057 (version "0.0.1.1")
1058 (source
1059 (origin
1060 (method url-fetch)
1061 (uri (string-append "https://hackage.haskell.org/package/"
1062 "bitarray/bitarray-" version ".tar.gz"))
1063 (sha256
1064 (base32
1065 "00nqd62cbh42qqqvcl6iv1i9kbv0f0mkiygv4j70wfh5cl86yzxj"))))
1066 (build-system haskell-build-system)
1067 (arguments
1068 `(#:cabal-revision
1069 ("1" "10fk92v9afjqk43zi621jxl0n8kci0xjj32lz3vqa9xbh67zjz45")))
1070 (home-page "https://hackage.haskell.org/package/bitarray")
1071 (synopsis "Mutable and immutable bit arrays")
1072 (description "The package provides mutable and immutable bit arrays.")
1073 (license license:bsd-3)))
1074
dddbc90c
RV
1075(define-public ghc-blaze-builder
1076 (package
1077 (name "ghc-blaze-builder")
1078 (version "0.4.1.0")
1079 (source
1080 (origin
1081 (method url-fetch)
1082 (uri (string-append
1083 "https://hackage.haskell.org/package/blaze-builder/blaze-builder-"
1084 version
1085 ".tar.gz"))
1086 (sha256
1087 (base32
1088 "05681dih2d8s96an945wkbwl05w8ddbcfx8n3r3ck79ydyb8pz4i"))))
1089 (build-system haskell-build-system)
1090 (arguments `(#:tests? #f)) ; FIXME: Missing test libraries.
1091 (inputs
1092 `(("ghc-utf8-string" ,ghc-utf8-string)))
1093 (home-page "https://github.com/lpsmith/blaze-builder")
1094 (synopsis "Efficient buffered output")
1095 (description "This library provides an implementation of the older
1096@code{blaze-builder} interface in terms of the new builder that shipped with
1097@code{bytestring-0.10.4.0}. This implementation is mostly intended as a
1098bridge to the new builder, so that code that uses the old interface can
1099interoperate with code that uses the new implementation.")
1100 (license license:bsd-3)))
1101
1102(define-public ghc-blaze-markup
1103 (package
1104 (name "ghc-blaze-markup")
7d30fcf3 1105 (version "0.8.2.3")
dddbc90c
RV
1106 (source
1107 (origin
1108 (method url-fetch)
1109 (uri (string-append "https://hackage.haskell.org/package/"
1110 "blaze-markup/blaze-markup-"
1111 version ".tar.gz"))
1112 (sha256
1113 (base32
7d30fcf3 1114 "1g9m7ansj7fdyzhz1wqkbzn5amjm50vjgjdwkbjc5qqhagnv1y3j"))))
dddbc90c
RV
1115 (build-system haskell-build-system)
1116 (arguments
1117 `(#:phases
1118 (modify-phases %standard-phases
1119 (add-before 'configure 'update-constraints
1120 (lambda _
1121 (substitute* "blaze-markup.cabal"
1122 (("tasty >= 1\\.0 && < 1\\.1")
1123 "tasty >= 1.0 && < 1.2")))))))
1124 (inputs
1125 `(("ghc-blaze-builder" ,ghc-blaze-builder)))
1126 (native-inputs
1127 `(("ghc-hunit" ,ghc-hunit)
1128 ("ghc-quickcheck" ,ghc-quickcheck)
1129 ("ghc-tasty" ,ghc-tasty)
1130 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
1131 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
1132 (home-page "https://jaspervdj.be/blaze")
1133 (synopsis "Fast markup combinator library for Haskell")
1134 (description "This library provides core modules of a markup combinator
1135library for Haskell.")
1136 (license license:bsd-3)))
1137
1138(define-public ghc-bloomfilter
1139 (package
1140 (name "ghc-bloomfilter")
1141 (version "2.0.1.0")
1142 (source
1143 (origin
1144 (method url-fetch)
1145 (uri (string-append "https://hackage.haskell.org/package/"
1146 "bloomfilter/bloomfilter-" version ".tar.gz"))
1147 (sha256
1148 (base32
1149 "03vrmncg1c10a2wcg5skq30m1yiknn7nwxz2gblyyfaxglshspkc"))))
1150 (build-system haskell-build-system)
1151 (native-inputs
1152 `(("ghc-quickcheck" ,ghc-quickcheck)
1153 ("ghc-random" ,ghc-random)
1154 ("ghc-test-framework" ,ghc-test-framework)
1155 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
1156 (home-page "https://github.com/bos/bloomfilter")
1157 (synopsis "Pure and impure Bloom filter implementations")
1158 (description "This package provides both mutable and immutable Bloom
1159filter data types, along with a family of hash functions and an easy-to-use
1160interface.")
1161 (license license:bsd-3)))
1162
1163(define-public ghc-boxes
1164 (package
1165 (name "ghc-boxes")
1166 (version "0.1.5")
1167 (source
1168 (origin
1169 (method url-fetch)
1170 (uri (string-append "https://hackage.haskell.org/package/boxes/boxes-"
1171 version ".tar.gz"))
1172 (sha256
1173 (base32 "1hsnmw95i58d4bkpxby3ddsj1cawypw4mdyb18m393s5i8p7iq9q"))))
1174 (build-system haskell-build-system)
1175 (inputs
1176 `(("ghc-split" ,ghc-split)
1177 ("ghc-quickcheck" ,ghc-quickcheck)))
1178 (home-page "https://hackage.haskell.org/package/boxes")
1179 (synopsis "2D text pretty-printing library")
1180 (description
1181 "Boxes is a pretty-printing library for laying out text in two dimensions,
1182using a simple box model.")
1183 (license license:bsd-3)))
1184
1185(define-public ghc-byteable
1186 (package
1187 (name "ghc-byteable")
1188 (version "0.1.1")
1189 (source (origin
1190 (method url-fetch)
1191 (uri (string-append "https://hackage.haskell.org/package/"
1192 "byteable/byteable-" version ".tar.gz"))
1193 (sha256
1194 (base32
1195 "1qizg0kxxjqnd3cbrjhhidk5pbbciz0pb3z5kzikjjxnnnhk8fr4"))))
1196 (build-system haskell-build-system)
1197 (home-page "https://github.com/vincenthz/hs-byteable")
1198 (synopsis "Type class for sequence of bytes")
1199 (description
1200 "This package provides an abstract class to manipulate sequence of bytes.
1201The use case of this class is abstracting manipulation of types that are just
1202wrapping a bytestring with stronger and more meaniful name.")
1203 (license license:bsd-3)))
1204
1205(define-public ghc-byteorder
1206 (package
1207 (name "ghc-byteorder")
1208 (version "1.0.4")
1209 (source
1210 (origin
1211 (method url-fetch)
1212 (uri (string-append
1213 "https://hackage.haskell.org/package/byteorder/byteorder-"
1214 version
1215 ".tar.gz"))
1216 (sha256
1217 (base32
1218 "06995paxbxk8lldvarqpb3ygcjbg4v8dk4scib1rjzwlhssvn85x"))))
1219 (build-system haskell-build-system)
1220 (home-page
1221 "http://community.haskell.org/~aslatter/code/byteorder")
1222 (synopsis
1223 "Exposes the native endianness of the system")
1224 (description
1225 "This package is for working with the native byte-ordering of the
1226system.")
1227 (license license:bsd-3)))
1228
1229(define-public ghc-bytes
1230 (package
1231 (name "ghc-bytes")
1232 (version "0.15.5")
1233 (source
1234 (origin
1235 (method url-fetch)
1236 (uri
1237 (string-append "https://hackage.haskell.org/package/bytes-"
1238 version "/bytes-"
1239 version ".tar.gz"))
1240 (file-name (string-append name "-" version ".tar.gz"))
1241 (sha256
1242 (base32
1243 "063il2vrn0p88r9gzndh4ijs0mxj37khkc9ym9bqdsv7ngk3b683"))))
1244 (build-system haskell-build-system)
1245 (inputs `(("ghc-cereal" ,ghc-cereal)
1246 ("cabal-doctest" ,cabal-doctest)
1247 ("ghc-doctest" ,ghc-doctest)
1248 ("ghc-scientific" ,ghc-scientific)
1249 ("ghc-transformers-compat" ,ghc-transformers-compat)
1250 ("ghc-unordered-containers" ,ghc-unordered-containers)
1251 ("ghc-void" ,ghc-void)
1252 ("ghc-vector" ,ghc-vector)))
1253 (synopsis "Serialization between @code{binary} and @code{cereal}")
1254 (description "This package provides a simple compatibility shim that lets
1255you work with both @code{binary} and @code{cereal} with one chunk of
1256serialization code.")
1257 (home-page "https://hackage.haskell.org/package/bytes")
1258 (license license:bsd-3)))
1259
1260(define-public ghc-bytestring-builder
1261 (package
1262 (name "ghc-bytestring-builder")
13ac8a7f 1263 (version "0.10.8.2.0")
dddbc90c
RV
1264 (source
1265 (origin
1266 (method url-fetch)
1267 (uri (string-append
1268 "https://hackage.haskell.org/package/bytestring-builder"
1269 "/bytestring-builder-" version ".tar.gz"))
1270 (sha256
1271 (base32
13ac8a7f 1272 "0grcrgwwwcvwrs9az7l4d3kf0lsqfa9qpmjzf6iyanvwn9nyzyi7"))))
dddbc90c
RV
1273 (build-system haskell-build-system)
1274 (arguments `(#:haddock? #f)) ; Package contains no documentation.
1275 (home-page "https://hackage.haskell.org/package/bytestring-builder")
1276 (synopsis "The new bytestring builder, packaged outside of GHC")
1277 (description "This package provides the bytestring builder that is
1278debuting in bytestring-0.10.4.0, which should be shipping with GHC 7.8.
1279Compatibility package for older packages.")
1280 (license license:bsd-3)))
1281
1282(define-public ghc-bytestring-handle
1283 (package
1284 (name "ghc-bytestring-handle")
1285 (version "0.1.0.6")
1286 (source
1287 (origin
1288 (method url-fetch)
1289 (uri (string-append
1290 "https://hackage.haskell.org/package/bytestring-handle/bytestring-handle-"
1291 version ".tar.gz"))
1292 (sha256
1293 (base32
1294 "18f17aja1ivhr3zyg2cccn2m03hdn5jf5410dndkhf12gvgiqs7y"))))
1295 (build-system haskell-build-system)
1296 (arguments
853748c4
TS
1297 `(#:cabal-revision
1298 ("1" "0x11aj6w1lijh84jcdq1qgyvdnc7i9ivbyq4wf9rxicg57viisz9")
1299 #:phases
dddbc90c
RV
1300 (modify-phases %standard-phases
1301 (add-before 'configure 'update-constraints
1302 (lambda _
1303 (substitute* "bytestring-handle.cabal"
1304 (("QuickCheck >= 2\\.1\\.2 && < 2\\.11")
853748c4 1305 "QuickCheck >= 2.1.2 && < 2.14")))))))
dddbc90c
RV
1306 (inputs
1307 `(("ghc-hunit" ,ghc-hunit)
1308 ("ghc-quickcheck" ,ghc-quickcheck)
1309 ("ghc-test-framework" ,ghc-test-framework)
1310 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
1311 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
1312 (home-page "https://hub.darcs.net/ganesh/bytestring-handle")
1313 (synopsis "ByteString-backed Handles")
1314 (description "ByteString-backed Handles") ; There is no description
1315 (license license:bsd-3)))
1316
1317(define-public ghc-bytestring-lexing
1318 (package
1319 (name "ghc-bytestring-lexing")
1320 (version "0.5.0.2")
1321 (source
1322 (origin
1323 (method url-fetch)
1324 (uri (string-append "https://hackage.haskell.org/package/"
1325 "bytestring-lexing/bytestring-lexing-"
1326 version ".tar.gz"))
1327 (sha256
1328 (base32
1329 "0wrzniawhgpphc6yx1v972gyqxdbv0pizaz9bafahrshyb9svy81"))))
1330 (build-system haskell-build-system)
1331 (home-page "http://code.haskell.org/~wren/")
1332 (synopsis "Parse and produce literals from strict or lazy bytestrings")
1333 (description
1334 "This package provides tools to parse and produce literals efficiently
1335from strict or lazy bytestrings.")
1336 (license license:bsd-2)))
1337
1338(define-public ghc-bzlib-conduit
1339 (package
1340 (name "ghc-bzlib-conduit")
5fba8d6d 1341 (version "0.3.0.2")
dddbc90c
RV
1342 (source
1343 (origin
1344 (method url-fetch)
1345 (uri (string-append "https://hackage.haskell.org/package/bzlib-conduit/"
1346 "bzlib-conduit-" version ".tar.gz"))
1347 (sha256
1348 (base32
5fba8d6d 1349 "0a21zin5plsl37hkxh2jv8cxwyjrbs2fy7n5cyrzgdaa7lmp6b7b"))))
dddbc90c
RV
1350 (build-system haskell-build-system)
1351 (inputs
1352 `(("ghc-bindings-dsl" ,ghc-bindings-dsl)
1353 ("ghc-conduit" ,ghc-conduit)
1354 ("ghc-data-default-class" ,ghc-data-default-class)
1355 ("ghc-resourcet" ,ghc-resourcet)))
1356 (native-inputs
1357 `(("ghc-hspec" ,ghc-hspec)
1358 ("ghc-random" ,ghc-random)))
1359 (home-page "https://github.com/snoyberg/bzlib-conduit")
1360 (synopsis "Streaming compression/decompression via conduits")
1361 (description
1362 "This package provides Haskell bindings to bzlib and Conduit support for
1363streaming compression and decompression.")
1364 (license license:bsd-3)))
1365
1366(define-public ghc-c2hs
1367 (package
1368 (name "ghc-c2hs")
1369 (version "0.28.6")
1370 (source
1371 (origin
1372 (method url-fetch)
1373 (uri (string-append
1374 "https://hackage.haskell.org/package/c2hs/c2hs-"
1375 version
1376 ".tar.gz"))
1377 (sha256
1378 (base32
1379 "1nplgxfin139x12sb656f5870rpdclrhzi8mq8pry035qld15pci"))))
1380 (build-system haskell-build-system)
1381 (inputs
1382 `(("ghc-language-c" ,ghc-language-c)
1383 ("ghc-dlist" ,ghc-dlist)))
1384 (native-inputs
1385 `(("ghc-test-framework" ,ghc-test-framework)
1386 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
1387 ("ghc-hunit" ,ghc-hunit)
a723d36d 1388 ("ghc-shelly" ,ghc-shelly)))
dddbc90c 1389 (arguments
bfebc598 1390 `(#:phases
dddbc90c
RV
1391 (modify-phases %standard-phases
1392 (add-before 'check 'set-cc
1393 ;; add a cc executable in the path, needed for some tests to pass
1394 (lambda* (#:key inputs #:allow-other-keys)
1395 (let ((gcc (assoc-ref inputs "gcc"))
1396 (tmpbin (tmpnam))
1397 (curpath (getenv "PATH")))
1398 (mkdir-p tmpbin)
1399 (symlink (which "gcc") (string-append tmpbin "/cc"))
1400 (setenv "PATH" (string-append tmpbin ":" curpath)))
1401 #t))
1402 (add-after 'check 'remove-cc
1403 ;; clean the tmp dir made in 'set-cc
1404 (lambda _
1405 (let* ((cc-path (which "cc"))
1406 (cc-dir (dirname cc-path)))
1407 (delete-file-recursively cc-dir)
1408 #t))))))
1409 (home-page "https://github.com/haskell/c2hs")
1410 (synopsis "Create Haskell bindings to C libraries")
1411 (description "C->Haskell assists in the development of Haskell bindings to
1412C libraries. It extracts interface information from C header files and
1413generates Haskell code with foreign imports and marshaling. Unlike writing
1414foreign imports by hand (or using hsc2hs), this ensures that C functions are
1415imported with the correct Haskell types.")
1416 (license license:gpl2)))
1417
1418(define-public ghc-cairo
1419 (package
1420 (name "ghc-cairo")
1421 (version "0.13.5.0")
1422 (source
1423 (origin
1424 (method url-fetch)
1425 (uri (string-append "https://hackage.haskell.org/package/cairo/"
1426 "cairo-" version ".tar.gz"))
1427 (sha256
1428 (base32
1429 "1wxylv4d8120ri0vgar168ikqa9m6533ipdwi38qlmxmw20ws2j2"))))
1430 (build-system haskell-build-system)
1431 (arguments
1432 `(#:modules ((guix build haskell-build-system)
1433 (guix build utils)
1434 (ice-9 match)
1435 (srfi srfi-26))
1436 #:phases
1437 (modify-phases %standard-phases
1438 ;; FIXME: This is a copy of the standard configure phase with a tiny
1439 ;; difference: this package needs the -package-db flag to be passed
1440 ;; to "runhaskell" in addition to the "configure" action, because it
1441 ;; depends on gtk2hs-buildtools, which provide setup hooks. Without
1442 ;; this option the Setup.hs file cannot be evaluated. The
1443 ;; haskell-build-system should be changed to pass "-package-db" to
1444 ;; "runhaskell" in any case.
1445 (replace 'configure
1446 (lambda* (#:key outputs inputs tests? (configure-flags '())
1447 #:allow-other-keys)
1448 (let* ((out (assoc-ref outputs "out"))
1449 (name-version (strip-store-file-name out))
1450 (input-dirs (match inputs
1451 (((_ . dir) ...)
1452 dir)
1453 (_ '())))
1454 (ghc-path (getenv "GHC_PACKAGE_PATH"))
1455 (params (append `(,(string-append "--prefix=" out))
1456 `(,(string-append "--libdir=" out "/lib"))
1457 `(,(string-append "--bindir=" out "/bin"))
1458 `(,(string-append
1459 "--docdir=" out
1460 "/share/doc/" name-version))
1461 '("--libsubdir=$compiler/$pkg-$version")
1462 '("--package-db=../package.conf.d")
1463 '("--global")
1464 `(,@(map
1465 (cut string-append "--extra-include-dirs=" <>)
1466 (search-path-as-list '("include") input-dirs)))
1467 `(,@(map
1468 (cut string-append "--extra-lib-dirs=" <>)
1469 (search-path-as-list '("lib") input-dirs)))
1470 (if tests?
1471 '("--enable-tests")
1472 '())
1473 configure-flags)))
1474 (unsetenv "GHC_PACKAGE_PATH")
1475 (apply invoke "runhaskell" "-package-db=../package.conf.d"
1476 "Setup.hs" "configure" params)
1477 (setenv "GHC_PACKAGE_PATH" ghc-path)
1478 #t))))))
1479 (inputs
1480 `(("ghc-utf8-string" ,ghc-utf8-string)
1481 ("cairo" ,cairo)))
1482 (native-inputs
1483 `(("ghc-gtk2hs-buildtools" ,ghc-gtk2hs-buildtools)
1484 ("pkg-config" ,pkg-config)))
1485 (home-page "http://projects.haskell.org/gtk2hs/")
1486 (synopsis "Haskell bindings to the Cairo vector graphics library")
1487 (description
1488 "Cairo is a library to render high quality vector graphics. There exist
1489various backends that allows rendering to Gtk windows, PDF, PS, PNG and SVG
1490documents, amongst others.")
1491 (license license:bsd-3)))
1492
1493(define-public ghc-call-stack
1494 (package
1495 (name "ghc-call-stack")
1496 (version "0.1.0")
1497 (source
1498 (origin
1499 (method url-fetch)
1500 (uri (string-append "https://hackage.haskell.org/package/"
1501 "call-stack/call-stack-"
1502 version ".tar.gz"))
1503 (sha256
1504 (base32
1505 "1qmihf5jafmc79sk52l6gpx75f5bnla2lp62kh3p34x3j84mwpzj"))))
1506 (build-system haskell-build-system)
1507 (inputs `(("ghc-nanospec" ,ghc-nanospec)))
1508 (home-page "https://github.com/sol/call-stack#readme")
1509 (synopsis "Use GHC call-stacks in a backward compatible way")
1510 (description "This package provides a compatibility layer for using GHC
1511call stacks with different versions of the compiler.")
1512 (license license:expat)))
1513
1514;; This is used as an input to ghc-hunit. We cannot use ghc-call-stack there,
1515;; because it depends on ghc-nanospec, which depends on ghc-hunit.
1516(define-public ghc-call-stack-boot
1517 (hidden-package
1518 (package
1519 (inherit ghc-call-stack)
1520 (arguments '(#:tests? #f))
1521 (inputs '()))))
1522
1523(define-public ghc-case-insensitive
1524 (package
1525 (name "ghc-case-insensitive")
1526 (version "1.2.0.11")
534d6caa 1527 (outputs '("out" "static" "doc"))
dddbc90c
RV
1528 (source
1529 (origin
1530 (method url-fetch)
1531 (uri (string-append
1532 "https://hackage.haskell.org/package/case-insensitive/case-insensitive-"
1533 version
1534 ".tar.gz"))
1535 (sha256
1536 (base32
1537 "1qrpxfirsxckg7jv28f5ah2qc8lh95hp7rnqkbqs1ahcwlbnvkm7"))))
1538 (build-system haskell-build-system)
1539 ;; these inputs are necessary to use this library
1540 (inputs
1541 `(("ghc-hashable" ,ghc-hashable)))
1542 (arguments
1543 `(#:tests? #f)) ; FIXME: currently missing libraries used for tests.
1544 (home-page
1545 "https://github.com/basvandijk/case-insensitive")
1546 (synopsis "Case insensitive string comparison")
1547 (description
1548 "The module @code{Data.CaseInsensitive} provides the @code{CI} type
1549constructor which can be parameterised by a string-like type like:
1550@code{String}, @code{ByteString}, @code{Text}, etc. Comparisons of values of
1551the resulting type will be insensitive to cases.")
1552 (license license:bsd-3)))
1553
6ba536a1
JS
1554(define-public ghc-cborg
1555 (package
1556 (name "ghc-cborg")
1557 (version "0.2.2.0")
1558 (source
1559 (origin
1560 (method url-fetch)
1561 (uri (string-append
1562 "mirror://hackage/package/cborg/cborg-"
1563 version
1564 ".tar.gz"))
1565 (sha256
1566 (base32
1567 "1rdnvy0w17s70ikmbyrnwax5rvqh19l95sh8i7ipgxi23z1r0bp1"))))
1568 (build-system haskell-build-system)
1569 (inputs
1570 `(("ghc-half" ,ghc-half)
1571 ("ghc-primitive" ,ghc-primitive)))
1572 (native-inputs
1573 `(("ghc-aeson" ,ghc-aeson)
1574 ("ghc-base64-bytestring" ,ghc-base64-bytestring)
1575 ("ghc-base16-bytestring" ,ghc-base16-bytestring)
1576 ("ghc-fail" ,ghc-fail)
1577 ("ghc-quickcheck" ,ghc-quickcheck)
1578 ("ghc-scientific" ,ghc-scientific)
1579 ("ghc-tasty" ,ghc-tasty)
1580 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
1581 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
1582 ("ghc-vector" ,ghc-vector)))
1583 (home-page "http://hackage.haskell.org/package/cborg")
1584 (synopsis "Concise Binary Object Representation")
1585 (description
1586 "This package (formerly binary-serialise-cbor) provides an
1587efficient implementation of the Concise Binary Object
1588Representation (CBOR), as specified by RFC 7049 at
1589https://tools.ietf.org/html/rfc7049.
1590
1591If you are looking for a library for serialisation of Haskell values, have a
1592look at the @url{https://hackage.haskell.org/package/serialise} package, which
1593is built upon this library.
1594
1595An implementation of the standard bijection between CBOR and JSON is provided
1596by the @url{https://hackage.haskell.org/package/cborg-json} package.
1597
1598Also see @code{https://hackage.haskell.org/package/cbor-tool} for a convenient
1599command-line utility for working with CBOR data.")
1600 (license license:bsd-3)))
1601
5434fec9
JS
1602(define-public ghc-cborg-json
1603 (package
1604 (name "ghc-cborg-json")
1605 (version "0.2.2.0")
1606 (source
1607 (origin
1608 (method url-fetch)
1609 (uri (string-append
1610 "mirror://hackage/package/cborg-json/cborg-json-"
1611 version
1612 ".tar.gz"))
1613 (sha256
1614 (base32 "0ysilz7rrjk94sqr3a61s98hr9qfi1xg13bskmlpc6mpgi2s4s5b"))))
1615 (build-system haskell-build-system)
1616 (inputs
1617 `(("ghc-aeson" ,ghc-aeson)
1618 ("ghc-aeson-pretty" ,ghc-aeson-pretty)
1619 ("ghc-unordered-containers" ,ghc-unordered-containers)
1620 ("ghc-scientific" ,ghc-scientific)
1621 ("ghc-vector" ,ghc-vector)
1622 ("ghc-cborg" ,ghc-cborg)))
1623 (home-page "https://github.com/well-typed/cborg")
1624 (synopsis "A library for encoding JSON as CBOR")
1625 (description
1626 "This package implements the bijection between JSON and CBOR
1627defined in the CBOR specification, RFC 7049.")
1628 (license license:bsd-3)))
1629
dddbc90c
RV
1630(define-public ghc-cereal
1631 (package
1632 (name "ghc-cereal")
bd95427e 1633 (version "0.5.8.1")
dddbc90c
RV
1634 (source
1635 (origin
1636 (method url-fetch)
1637 (uri (string-append
1638 "https://hackage.haskell.org/package/cereal/cereal-"
1639 version
1640 ".tar.gz"))
1641 (sha256
1642 (base32
bd95427e 1643 "1mqvd1iwzr50az4y24332x3g3wsrzw8j1iwph02vr7jbjfn8i7id"))))
dddbc90c
RV
1644 (build-system haskell-build-system)
1645 (native-inputs
1646 `(("ghc-quickcheck" ,ghc-quickcheck)
1647 ("ghc-fail" ,ghc-fail)
1648 ("ghc-test-framework" ,ghc-test-framework)
1649 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
1650 (home-page "https://hackage.haskell.org/package/cereal")
1651 (synopsis "Binary serialization library")
1652 (description "This package provides a binary serialization library,
1653similar to @code{binary}, that introduces an @code{isolate} primitive for
1654parser isolation, and labeled blocks for better error messages.")
1655 (license license:bsd-3)))
1656
1657(define-public ghc-cereal-conduit
1658 (package
1659 (name "ghc-cereal-conduit")
1660 (version "0.8.0")
1661 (source
1662 (origin
1663 (method url-fetch)
1664 (uri (string-append "https://hackage.haskell.org/package/"
1665 "cereal-conduit/cereal-conduit-"
1666 version ".tar.gz"))
1667 (sha256
1668 (base32
1669 "1srr7agvgfw78q5s1npjq5sgynvhjgllpihiv37ylkwqm4c4ap6r"))))
1670 (build-system haskell-build-system)
1671 (inputs
1672 `(("ghc-conduit" ,ghc-conduit)
1673 ("ghc-resourcet" ,ghc-resourcet)
1674 ("ghc-cereal" ,ghc-cereal)))
1675 (native-inputs
1676 `(("ghc-hunit" ,ghc-hunit)))
1677 (home-page "https://github.com/snoyberg/conduit")
1678 (synopsis "Turn Data.Serialize Gets and Puts into Sources, Sinks, and Conduits")
1679 (description
1680 "This package turn @code{Data.Serialize} @code{Gets} and @code{Puts} into
1681@code{Sources}, @code{Sinks}, and @code{Conduits}.")
1682 (license license:bsd-3)))
1683
1684(define-public ghc-cgi
1685 (package
1686 (name "ghc-cgi")
b6b2c218 1687 (version "3001.4.0.0")
dddbc90c
RV
1688 (source
1689 (origin
1690 (method url-fetch)
1691 (uri (string-append
1692 "https://hackage.haskell.org/package/cgi/cgi-"
1693 version
1694 ".tar.gz"))
1695 (sha256
1696 (base32
b6b2c218 1697 "1d0nh5ymkqskkp4yn0gfz4mff8i0cxyw1wws8xxp6k1mg1ywa25k"))))
dddbc90c 1698 (build-system haskell-build-system)
dddbc90c
RV
1699 (inputs
1700 `(("ghc-exceptions" ,ghc-exceptions)
1701 ("ghc-multipart" ,ghc-multipart)
1702 ("ghc-network-uri" ,ghc-network-uri)
1703 ("ghc-network" ,ghc-network)))
1704 (native-inputs
1705 `(("ghc-doctest" ,ghc-doctest)
1706 ("ghc-quickcheck" ,ghc-quickcheck)))
1707 (home-page
1708 "https://github.com/cheecheeo/haskell-cgi")
1709 (synopsis "Library for writing CGI programs")
1710 (description
1711 "This is a Haskell library for writing CGI programs.")
1712 (license license:bsd-3)))
1713
1714(define-public ghc-charset
1715 (package
1716 (name "ghc-charset")
1717 (version "0.3.7.1")
1718 (source
1719 (origin
1720 (method url-fetch)
1721 (uri (string-append
1722 "https://hackage.haskell.org/package/charset/charset-"
1723 version
1724 ".tar.gz"))
1725 (sha256
1726 (base32
1727 "1gn0m96qpjww8hpp2g1as5yy0wcwy4iq73h3kz6g0yxxhcl5sh9x"))))
1728 (build-system haskell-build-system)
35ee173c
TS
1729 (arguments
1730 `(#:cabal-revision
1731 ("1" "1z6nxw2g9vgsjq0g159sk8mwj68lwzxzi5iv5ynha0h85jcqxszy")))
dddbc90c
RV
1732 (inputs
1733 `(("ghc-semigroups" ,ghc-semigroups)
1734 ("ghc-unordered-containers" ,ghc-unordered-containers)))
1735 (home-page "https://github.com/ekmett/charset")
1736 (synopsis "Fast unicode character sets for Haskell")
1737 (description "This package provides fast unicode character sets for
1738Haskell, based on complemented PATRICIA tries.")
1739 (license license:bsd-3)))
1740
1741(define-public ghc-chart
1742 (package
1743 (name "ghc-chart")
6cd84b98 1744 (version "1.9.1")
dddbc90c
RV
1745 (source
1746 (origin
1747 (method url-fetch)
1748 (uri (string-append "https://hackage.haskell.org/package/Chart/"
1749 "Chart-" version ".tar.gz"))
1750 (sha256
1751 (base32
6cd84b98 1752 "1pn735k9ifxlb9mdh8xy7wi22cxni8xyr28n8zx9w0j6vprcg89l"))))
dddbc90c
RV
1753 (build-system haskell-build-system)
1754 (inputs
1755 `(("ghc-old-locale" ,ghc-old-locale)
1756 ("ghc-lens" ,ghc-lens)
1757 ("ghc-colour" ,ghc-colour)
1758 ("ghc-data-default-class" ,ghc-data-default-class)
1759 ("ghc-operational" ,ghc-operational)
1760 ("ghc-vector" ,ghc-vector)))
1761 (home-page "https://github.com/timbod7/haskell-chart/wiki")
1762 (synopsis "Library for generating 2D charts and plots")
1763 (description
1764 "This package provides a library for generating 2D charts and plots, with
1765backends provided by the @code{Cairo} and @code{Diagrams} libraries.")
1766 (license license:bsd-3)))
1767
1768(define-public ghc-chart-cairo
1769 (package
1770 (name "ghc-chart-cairo")
5cf9264d 1771 (version "1.9.1")
dddbc90c
RV
1772 (source
1773 (origin
1774 (method url-fetch)
1775 (uri (string-append "https://hackage.haskell.org/package/Chart-cairo/"
1776 "Chart-cairo-" version ".tar.gz"))
1777 (sha256
1778 (base32
5cf9264d 1779 "0hknj4rsjf2m8p5pyq5zff8ai7v80yvmxb5c6n0bkgxs4317nbl9"))))
dddbc90c
RV
1780 (build-system haskell-build-system)
1781 (inputs
1782 `(("ghc-old-locale" ,ghc-old-locale)
1783 ("ghc-cairo" ,ghc-cairo)
1784 ("ghc-colour" ,ghc-colour)
1785 ("ghc-data-default-class" ,ghc-data-default-class)
1786 ("ghc-operational" ,ghc-operational)
1787 ("ghc-lens" ,ghc-lens)
1788 ("ghc-chart" ,ghc-chart)))
1789 (home-page "https://github.com/timbod7/haskell-chart/wiki")
1790 (synopsis "Cairo backend for Charts")
1791 (description "This package provides a Cairo vector graphics rendering
1792backend for the Charts library.")
1793 (license license:bsd-3)))
1794
1795(define-public ghc-chasingbottoms
1796 (package
1797 (name "ghc-chasingbottoms")
1f67853e 1798 (version "1.3.1.7")
dddbc90c
RV
1799 (source
1800 (origin
1801 (method url-fetch)
1802 (uri (string-append "https://hackage.haskell.org/package/ChasingBottoms/"
1803 "ChasingBottoms-" version ".tar.gz"))
1804 (sha256
1805 (base32
1f67853e 1806 "0ziiqfsvv1ypdra6kd0bhbsl852i0wqn43jkfii38yl879cdacan"))))
dddbc90c
RV
1807 (build-system haskell-build-system)
1808 (inputs
1809 `(("ghc-quickcheck" ,ghc-quickcheck)
1810 ("ghc-random" ,ghc-random)
1811 ("ghc-syb" ,ghc-syb)))
1812 (home-page "https://hackage.haskell.org/package/ChasingBottoms")
1813 (synopsis "Testing of partial and infinite values in Haskell")
1814 (description
1815 ;; FIXME: There should be a @comma{} in the uref text, but it is not
1816 ;; rendered properly.
1817 "This is a library for testing code involving bottoms or infinite values.
1818For the underlying theory and a larger example involving use of QuickCheck,
1819see the article
1820@uref{http://www.cse.chalmers.se/~nad/publications/danielsson-jansson-mpc2004.html,
1821\"Chasing Bottoms A Case Study in Program Verification in the Presence of
1822Partial and Infinite Values\"}.")
1823 (license license:expat)))
1824
1825(define-public ghc-cheapskate
1826 (package
1827 (name "ghc-cheapskate")
5e18bb9e 1828 (version "0.1.1.1")
dddbc90c
RV
1829 (source
1830 (origin
1831 (method url-fetch)
1832 (uri (string-append
1833 "https://hackage.haskell.org/package/cheapskate/cheapskate-"
1834 version
1835 ".tar.gz"))
1836 (sha256
1837 (base32
5e18bb9e 1838 "0qnyd8bni2rby6b02ff4bvfdhm1hwc8vzpmnms84jgrlg1lly3fm"))))
dddbc90c
RV
1839 (build-system haskell-build-system)
1840 (inputs
1841 `(("ghc-blaze-html" ,ghc-blaze-html)
1842 ("ghc-xss-sanitize" ,ghc-xss-sanitize)
1843 ("ghc-data-default" ,ghc-data-default)
1844 ("ghc-syb" ,ghc-syb)
1845 ("ghc-uniplate" ,ghc-uniplate)))
1846 (home-page "https://github.com/jgm/cheapskate")
1847 (synopsis "Experimental markdown processor")
1848 (description "Cheapskate is an experimental Markdown processor in pure
1849Haskell. It aims to process Markdown efficiently and in the most forgiving
1850possible way. It is designed to deal with any input, including garbage, with
1851linear performance. Output is sanitized by default for protection against
1852cross-site scripting (@dfn{XSS}) attacks.")
1853 (license license:bsd-3)))
1854
1855(define-public ghc-chell
1856 (package
1857 (name "ghc-chell")
acdd03be 1858 (version "0.5")
dddbc90c
RV
1859 (source
1860 (origin
1861 (method url-fetch)
1862 (uri (string-append
1863 "https://hackage.haskell.org/package/chell/chell-"
1864 version ".tar.gz"))
1865 (sha256
1866 (base32
acdd03be 1867 "1i845isfbk0yq852am9bqmxfpfkpnlha8nfidffsv4gw2p8gg6fg"))))
dddbc90c 1868 (build-system haskell-build-system)
acdd03be
TS
1869 (arguments
1870 `(#:cabal-revision
1871 ("1" "1q93wrw03ix4cmnkz3lzkixcvvizw6i2ia2zifdfak1dvxnblxk0")))
dddbc90c
RV
1872 (inputs
1873 `(("ghc-options-bootstrap" ,ghc-options-bootstrap)
1874 ("ghc-patience" ,ghc-patience)
1875 ("ghc-random" ,ghc-random)
1876 ("ghc-ansi-terminal" ,ghc-ansi-terminal)))
1877 (home-page "https://john-millikin.com/software/chell/")
1878 (synopsis "Simple and intuitive library for automated testing")
1879 (description
1880 "Chell is a simple and intuitive library for automated testing.
1881It natively supports assertion-based testing, and can use companion
1882libraries such as @code{chell-quickcheck} to support more complex
1883testing strategies.")
1884 (license license:expat)))
1885
1886(define-public ghc-chell-quickcheck
1887 (package
1888 (name "ghc-chell-quickcheck")
e0e21831 1889 (version "0.2.5.2")
dddbc90c
RV
1890 (source
1891 (origin
1892 (method url-fetch)
1893 (uri (string-append
1894 "https://hackage.haskell.org/package/chell-quickcheck/"
1895 "chell-quickcheck-" version ".tar.gz"))
1896 (sha256
1897 (base32
e0e21831 1898 "0n8c57n88r2bx0bh8nabsz07m42rh23ahs3hgyzf8gr76l08zq03"))))
dddbc90c
RV
1899 (build-system haskell-build-system)
1900 (arguments
1901 `(#:phases
1902 (modify-phases %standard-phases
1903 (add-before 'configure 'update-constraints
1904 (lambda _
1905 (substitute* "chell-quickcheck.cabal"
e0e21831
TS
1906 (("QuickCheck >= 2\\.3 && < 2\\.13")
1907 "QuickCheck >= 2.3 && < 2.14")))))))
dddbc90c
RV
1908 (inputs
1909 `(("ghc-chell" ,ghc-chell)
1910 ("ghc-chell-quickcheck-bootstrap" ,ghc-chell-quickcheck-bootstrap)
1911 ("ghc-random" ,ghc-random)
1912 ("ghc-quickcheck" ,ghc-quickcheck)))
1913 (home-page "https://john-millikin.com/software/chell/")
1914 (synopsis "QuickCheck support for the Chell testing library")
1915 (description "More complex tests for @code{chell}.")
1916 (license license:expat)))
1917
1918(define ghc-chell-quickcheck-bootstrap
1919 (package
1920 (name "ghc-chell-quickcheck-bootstrap")
e0e21831 1921 (version "0.2.5.2")
dddbc90c
RV
1922 (source
1923 (origin
1924 (method url-fetch)
1925 (uri (string-append
1926 "https://hackage.haskell.org/package/chell-quickcheck/"
1927 "chell-quickcheck-" version ".tar.gz"))
1928 (sha256
1929 (base32
e0e21831 1930 "0n8c57n88r2bx0bh8nabsz07m42rh23ahs3hgyzf8gr76l08zq03"))))
dddbc90c
RV
1931 (build-system haskell-build-system)
1932 (inputs
1933 `(("ghc-chell" ,ghc-chell)
1934 ("ghc-random" ,ghc-random)
1935 ("ghc-quickcheck" ,ghc-quickcheck)))
1936 (arguments
1937 `(#:tests? #f
1938 #:phases
1939 (modify-phases %standard-phases
1940 (add-before 'configure 'update-constraints
1941 (lambda _
1942 (substitute* "chell-quickcheck.cabal"
e0e21831
TS
1943 (("QuickCheck >= 2\\.3 && < 2\\.13")
1944 "QuickCheck >= 2.3 && < 2.14")))))))
dddbc90c
RV
1945 (home-page "https://john-millikin.com/software/chell/")
1946 (synopsis "QuickCheck support for the Chell testing library")
1947 (description "More complex tests for @code{chell}.")
1948 (license license:expat)))
1949
1950(define-public ghc-chunked-data
1951 (package
1952 (name "ghc-chunked-data")
1953 (version "0.3.1")
1954 (source
1955 (origin
1956 (method url-fetch)
1957 (uri (string-append "https://hackage.haskell.org/package/"
1958 "chunked-data-" version "/"
1959 "chunked-data-" version ".tar.gz"))
1960 (sha256
1961 (base32
1962 "16m7y7fwrirbjbqqcsfmr4yxa9qvfax6r7pw0zl9ky71ms0wa47p"))))
1963 (build-system haskell-build-system)
1964 (inputs `(("ghc-vector" ,ghc-vector)
1965 ("ghc-semigroups" ,ghc-semigroups)))
1966 (home-page "https://github.com/snoyberg/mono-traversable")
1967 (synopsis "Typeclasses for dealing with various chunked data
1968representations for Haskell")
1969 (description "This Haskell package was originally present in
1970classy-prelude.")
1971 (license license:expat)))
1972
1973(define-public ghc-clock
1974 (package
1975 (name "ghc-clock")
0841b6f2 1976 (version "0.8")
dddbc90c
RV
1977 (source
1978 (origin
1979 (method url-fetch)
1980 (uri (string-append
1981 "https://hackage.haskell.org/package/"
1982 "clock/"
1983 "clock-" version ".tar.gz"))
1984 (sha256
0841b6f2 1985 (base32 "0539w9bjw6xbfv9v6aq9hijszxqdnqhilwpbwpql1400ji95r8q8"))))
dddbc90c
RV
1986 (build-system haskell-build-system)
1987 (inputs
1988 `(("ghc-tasty" ,ghc-tasty)
1989 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
1990 (home-page "https://hackage.haskell.org/package/clock")
1991 (synopsis "High-resolution clock for Haskell")
1992 (description "A package for convenient access to high-resolution clock and
1993timer functions of different operating systems via a unified API.")
1994 (license license:bsd-3)))
1995
1996;; This package builds `clock` without tests, since the tests rely on tasty
1997;; and tasty-quickcheck, which in turn require clock to build.
1998(define-public ghc-clock-bootstrap
1999 (package
2000 (inherit ghc-clock)
2001 (name "ghc-clock-bootstrap")
2002 (arguments '(#:tests? #f))
2003 (inputs '())
2004 (properties '((hidden? #t)))))
2005
2006(define-public ghc-cmark
2007 (package
2008 (name "ghc-cmark")
6bdd36c0 2009 (version "0.6")
dddbc90c
RV
2010 (source (origin
2011 (method url-fetch)
6bdd36c0 2012 ;; XXX As of version 0.6, this package bundles libcmark 0.28.0.
dddbc90c
RV
2013 ;; See cbits/cmark_version.h.
2014 (uri (string-append "https://hackage.haskell.org/package/"
2015 "cmark/cmark-" version ".tar.gz"))
2016 (sha256
2017 (base32
6bdd36c0 2018 "1p41z6z8dqxk62287lvhhg4ayy9laai9ljh4azsnzb029v6mbv0d"))))
dddbc90c
RV
2019 (build-system haskell-build-system)
2020 (native-inputs
2021 `(("ghc-hunit" ,ghc-hunit)))
2022 (home-page "https://github.com/jgm/commonmark-hs")
2023 (synopsis "Fast, accurate CommonMark (Markdown) parser and renderer")
2024 (description
2025 "This package provides Haskell bindings for
2026@uref{https://github.com/jgm/cmark, libcmark}, the reference parser for
2027CommonMark, a fully specified variant of Markdown. It includes bundled libcmark
2028sources, and does not require prior installation of the C library.")
2029 (license license:bsd-3)))
2030
2031(define-public ghc-cmark-gfm
2032 (package
2033 (name "ghc-cmark-gfm")
24fc8dae 2034 (version "0.2.0")
dddbc90c
RV
2035 (source
2036 (origin
2037 (method url-fetch)
2038 (uri (string-append "https://hackage.haskell.org/package/"
2039 "cmark-gfm/cmark-gfm-"
2040 version ".tar.gz"))
2041 (sha256
2042 (base32
24fc8dae 2043 "03xflrkyw84qv3yjly5iks9311bqv5cmrmsylr763v4ph0fn7rjq"))))
dddbc90c
RV
2044 (build-system haskell-build-system)
2045 (native-inputs
2046 `(("ghc-hunit" ,ghc-hunit)))
2047 (home-page "https://github.com/kivikakk/cmark-gfm-hs")
2048 (synopsis
2049 "Fast, accurate GitHub Flavored Markdown parser and renderer")
2050 (description
2051 "This package provides Haskell bindings for libcmark-gfm, the reference
2052parser for GitHub Flavored Markdown, a fully specified variant of Markdown.
2053It includes sources for libcmark-gfm and does not require prior installation
2054of the C library.")
2055 (license license:bsd-3)))
2056
2057(define-public ghc-cmdargs
2058 (package
2059 (name "ghc-cmdargs")
2060 (version "0.10.20")
2061 (source
2062 (origin
2063 (method url-fetch)
2064 (uri (string-append
2065 "https://hackage.haskell.org/package/cmdargs/cmdargs-"
2066 version ".tar.gz"))
2067 (sha256
2068 (base32
2069 "0cbkmgrcnwgigg6z88y3c09gm7g6dwm7gzbgr53h8k1xik29s9hf"))))
2070 (build-system haskell-build-system)
3e545443 2071 (outputs '("out" "static" "doc"))
dddbc90c
RV
2072 (home-page
2073 "http://community.haskell.org/~ndm/cmdargs/")
2074 (synopsis "Command line argument processing")
2075 (description
2076 "This library provides an easy way to define command line parsers.")
2077 (license license:bsd-3)))
2078
2079(define-public ghc-code-page
2080 (package
2081 (name "ghc-code-page")
f6bb6519 2082 (version "0.2")
dddbc90c
RV
2083 (source
2084 (origin
2085 (method url-fetch)
2086 (uri (string-append
2087 "https://hackage.haskell.org/package/code-page/code-page-"
2088 version ".tar.gz"))
2089 (sha256
2090 (base32
f6bb6519 2091 "0i0qbrbhvrwkbikqb7hh7yxaipaavwzvyrw211d0vkz99f62mqxz"))))
dddbc90c
RV
2092 (build-system haskell-build-system)
2093 (home-page "https://github.com/RyanGlScott/code-page")
2094 (synopsis "Windows code page library for Haskell")
2095 (description "A cross-platform library with functions for adjusting
2096code pages on Windows. On all other operating systems, the library does
2097nothing.")
2098 (license license:bsd-3)))
2099
2100(define-public ghc-colour
2101(package
2102 (name "ghc-colour")
bc9d1af9 2103 (version "2.3.5")
dddbc90c
RV
2104 (source
2105 (origin
2106 (method url-fetch)
2107 (uri (string-append
2108 "https://hackage.haskell.org/package/colour/colour-"
2109 version ".tar.gz"))
2110 (sha256
2111 (base32
bc9d1af9 2112 "1rq4l46jx4lpdppy71wf7m1n7pw2jwy788rm35ycwzb1g4clg39v"))))
dddbc90c
RV
2113 (arguments
2114 ;; The tests for this package have the following dependency cycle:
2115 ;; ghc-test-framework -> ghc-ansi-terminal -> ghc-colour.
2116 `(#:tests? #f))
2117 (build-system haskell-build-system)
228d2901 2118 (home-page "https://wiki.haskell.org/Colour")
dddbc90c
RV
2119 (synopsis "Model for human colour perception")
2120 (description
2121 "This package provides a data type for colours and transparency.
2122Colours can be blended and composed. Various colour spaces are
2123supported. A module of colour names (\"Data.Colour.Names\") is provided.")
2124 (license license:expat)))
2125
2126(define-public ghc-comonad
2127 (package
2128 (name "ghc-comonad")
1a825512 2129 (version "5.0.5")
dddbc90c
RV
2130 (source
2131 (origin
2132 (method url-fetch)
2133 (uri (string-append
2134 "https://hackage.haskell.org/package/comonad/comonad-"
2135 version
2136 ".tar.gz"))
2137 (sha256
2138 (base32
1a825512 2139 "1l7snp2mszgnjgd0nc9kzfyd13vla0rlazqi03rwx2akcxk14n3c"))))
dddbc90c
RV
2140 (build-system haskell-build-system)
2141 (native-inputs
2142 `(("cabal-doctest" ,cabal-doctest)
2143 ("ghc-doctest" ,ghc-doctest)))
2144 (inputs
2145 `(("ghc-contravariant" ,ghc-contravariant)
2146 ("ghc-distributive" ,ghc-distributive)
2147 ("ghc-semigroups" ,ghc-semigroups)
2148 ("ghc-tagged" ,ghc-tagged)
2149 ("ghc-transformers-compat" ,ghc-transformers-compat)))
2150 (home-page "https://github.com/ekmett/comonad/")
2151 (synopsis "Comonads for Haskell")
2152 (description "This library provides @code{Comonad}s for Haskell.")
2153 (license license:bsd-3)))
2154
2155(define-public ghc-concatenative
2156 (package
2157 (name "ghc-concatenative")
2158 (version "1.0.1")
2159 (source (origin
2160 (method url-fetch)
2161 (uri (string-append
2162 "https://hackage.haskell.org/package/concatenative/concatenative-"
2163 version ".tar.gz"))
2164 (sha256
2165 (base32
2166 "05xwqvcdnk8bsyj698ab9jxpa1nk23pf3m7wi9mwmw0q8n99fngd"))))
2167 (build-system haskell-build-system)
2168 (home-page
2169 "https://patch-tag.com/r/salazar/concatenative/snapshot/current/content/pretty")
2170 (synopsis "Library for postfix control flow")
2171 (description
2172 "Concatenative gives Haskell Factor-style combinators and arrows for
2173postfix notation. For more information on stack based languages, see
2174@uref{https://concatenative.org}.")
2175 (license license:bsd-3)))
2176
2177(define-public ghc-concurrent-extra
2178 (package
2179 (name "ghc-concurrent-extra")
2180 (version "0.7.0.12")
2181 (source
2182 (origin
2183 (method url-fetch)
2184 (uri (string-append "https://hackage.haskell.org/package/"
2185 "concurrent-extra/concurrent-extra-"
2186 version ".tar.gz"))
2187 (sha256
2188 (base32
2189 "1y8xk460fvnw0idzdiylmm874sjny4q9jxb1js9fjz8lw2wns3h4"))))
2190 (build-system haskell-build-system)
2191 (arguments
2192 ;; XXX: The ReadWriteLock 'stressTest' fails.
2193 `(#:tests? #f))
2194 (inputs
2195 `(("ghc-unbounded-delays" ,ghc-unbounded-delays)))
2196 (native-inputs
2197 `(("ghc-async" ,ghc-async)
2198 ("ghc-hunit" ,ghc-hunit)
2199 ("ghc-random" ,ghc-random)
2200 ("ghc-test-framework" ,ghc-test-framework)
2201 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)))
2202 (home-page "https://github.com/basvandijk/concurrent-extra")
2203 (synopsis "Extra concurrency primitives")
2204 (description "This Haskell library offers (among other things) the
2205following selection of synchronisation primitives:
2206
2207@itemize
2208@item @code{Broadcast}: Wake multiple threads by broadcasting a value.
2209@item @code{Event}: Wake multiple threads by signalling an event.
2210@item @code{Lock}: Enforce exclusive access to a resource. Also known
2211as a binary semaphore or mutex. The package additionally provides an
2212alternative that works in the STM monad.
2213@item @code{RLock}: A lock which can be acquired multiple times by the
2214same thread. Also known as a reentrant mutex.
2215@item @code{ReadWriteLock}: Multiple-reader, single-writer locks. Used
2216to protect shared resources which may be concurrently read, but only
2217sequentially written.
2218@item @code{ReadWriteVar}: Concurrent read, sequential write variables.
2219@end itemize
2220
2221Please consult the API documentation of the individual modules for more
2222detailed information.
2223
2224This package was inspired by the concurrency libraries of Java and
2225Python.")
2226 (license license:bsd-3)))
2227
2228(define-public ghc-concurrent-output
2229 (package
2230 (name "ghc-concurrent-output")
4fce0a4a 2231 (version "1.10.11")
dddbc90c
RV
2232 (source
2233 (origin
2234 (method url-fetch)
2235 (uri (string-append
2236 "mirror://hackage/package/concurrent-output/concurrent-output-"
2237 version
2238 ".tar.gz"))
2239 (sha256
2240 (base32
4fce0a4a 2241 "1d1aaqg5814k59b0iws3fh06p3g2siaj922gkhs75qgncj0my2p3"))))
dddbc90c
RV
2242 (build-system haskell-build-system)
2243 (inputs
2244 `(("ghc-async" ,ghc-async)
2245 ("ghc-exceptions" ,ghc-exceptions)
2246 ("ghc-ansi-terminal" ,ghc-ansi-terminal)
2247 ("ghc-terminal-size" ,ghc-terminal-size)))
2248 (home-page
2249 "https://hackage.haskell.org/package/concurrent-output")
2250 (synopsis
2251 "Ungarble output from several threads or commands")
2252 (description
2253 "Lets multiple threads and external processes concurrently output to the
2254console, without it getting all garbled up.
2255
2256Built on top of that is a way of defining multiple output regions, which are
2257automatically laid out on the screen and can be individually updated by
2258concurrent threads. Can be used for progress displays etc.")
2259 (license license:bsd-2)))
2260
2261(define-public ghc-conduit
2262 (package
2263 (name "ghc-conduit")
1ac981d4 2264 (version "1.3.1.1")
dddbc90c
RV
2265 (source (origin
2266 (method url-fetch)
2267 (uri (string-append "https://hackage.haskell.org/package/"
2268 "conduit/conduit-" version ".tar.gz"))
2269 (sha256
2270 (base32
1ac981d4 2271 "18izjgff4pmrknc8py06yvg3g6x27nx0rzmlwjxcflwm5v4szpw4"))))
dddbc90c 2272 (build-system haskell-build-system)
20e5edb1 2273 (outputs '("out" "static" "doc"))
dddbc90c
RV
2274 (inputs
2275 `(("ghc-exceptions" ,ghc-exceptions)
2276 ("ghc-lifted-base" ,ghc-lifted-base)
2277 ("ghc-mono-traversable" ,ghc-mono-traversable)
2278 ("ghc-mmorph" ,ghc-mmorph)
2279 ("ghc-resourcet" ,ghc-resourcet)
2280 ("ghc-silently" ,ghc-silently)
2281 ("ghc-transformers-base" ,ghc-transformers-base)
2282 ("ghc-unliftio" ,ghc-unliftio)
2283 ("ghc-unliftio-core" ,ghc-unliftio-core)
2284 ("ghc-vector" ,ghc-vector)
2285 ("ghc-void" ,ghc-void)))
2286 (native-inputs
2287 `(("ghc-quickcheck" ,ghc-quickcheck)
2288 ("ghc-hspec" ,ghc-hspec)
2289 ("ghc-safe" ,ghc-safe)
2290 ("ghc-split" ,ghc-split)))
2291 (home-page "https://github.com/snoyberg/conduit")
2292 (synopsis "Streaming data library ")
2293 (description
2294 "The conduit package is a solution to the streaming data problem,
2295allowing for production, transformation, and consumption of streams of data
2296in constant memory. It is an alternative to lazy I/O which guarantees
2297deterministic resource handling, and fits in the same general solution
2298space as enumerator/iteratee and pipes.")
2299 (license license:expat)))
2300
2301(define-public ghc-conduit-algorithms
2302 (package
2303 (name "ghc-conduit-algorithms")
503b74ae 2304 (version "0.0.11.0")
dddbc90c
RV
2305 (source
2306 (origin
2307 (method url-fetch)
2308 (uri (string-append "https://hackage.haskell.org/package/"
2309 "conduit-algorithms/conduit-algorithms-"
2310 version ".tar.gz"))
2311 (sha256
2312 (base32
503b74ae 2313 "0c1jwz30kkvimx7lb61782yk0kyfamrf5bqc3g1h7g51lk8bbv9i"))))
dddbc90c
RV
2314 (build-system haskell-build-system)
2315 (inputs
2316 `(("ghc-async" ,ghc-async)
2317 ("ghc-bzlib-conduit" ,ghc-bzlib-conduit)
2318 ("ghc-conduit" ,ghc-conduit)
2319 ("ghc-conduit-combinators" ,ghc-conduit-combinators)
2320 ("ghc-conduit-extra" ,ghc-conduit-extra)
503b74ae 2321 ("ghc-conduit-zstd" ,ghc-conduit-zstd)
dddbc90c
RV
2322 ("ghc-exceptions" ,ghc-exceptions)
2323 ("ghc-lzma-conduit" ,ghc-lzma-conduit)
2324 ("ghc-monad-control" ,ghc-monad-control)
2325 ("ghc-pqueue" ,ghc-pqueue)
2326 ("ghc-resourcet" ,ghc-resourcet)
2327 ("ghc-stm-conduit" ,ghc-stm-conduit)
2328 ("ghc-streaming-commons" ,ghc-streaming-commons)
2329 ("ghc-unliftio-core" ,ghc-unliftio-core)
2330 ("ghc-vector" ,ghc-vector)))
2331 (native-inputs
2332 `(("ghc-hunit" ,ghc-hunit)
2333 ("ghc-test-framework" ,ghc-test-framework)
2334 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
2335 ("ghc-test-framework-th" ,ghc-test-framework-th)))
2336 (home-page "https://github.com/luispedro/conduit-algorithms#readme")
2337 (synopsis "Conduit-based algorithms")
2338 (description
2339 "This package provides algorithms on @code{Conduits}, including higher
2340level asynchronous processing and some other utilities.")
2341 (license license:expat)))
2342
2343(define-public ghc-conduit-combinators
2344 (package
2345 (name "ghc-conduit-combinators")
2346 (version "1.3.0")
2347 (source
2348 (origin
2349 (method url-fetch)
2350 (uri (string-append "https://hackage.haskell.org/package/"
2351 "conduit-combinators-" version "/"
2352 "conduit-combinators-" version ".tar.gz"))
2353 (sha256
2354 (base32
2355 "1lz70vwp4y4lpsivxl0cshq7aq3968rh48r6rjvpyaj2l0bdj5wp"))))
2356 (build-system haskell-build-system)
2357 (inputs `(("ghc-conduit" ,ghc-conduit)
2358 ("ghc-conduit-extra" ,ghc-conduit-extra)
2359 ("ghc-transformers-base" ,ghc-transformers-base)
2360 ("ghc-primitive" ,ghc-primitive)
2361 ("ghc-vector" ,ghc-vector)
2362 ("ghc-void" ,ghc-void)
2363 ("ghc-mwc-random" ,ghc-mwc-random)
2364 ("ghc-unix-compat" ,ghc-unix-compat)
2365 ("ghc-base16-bytestring" ,ghc-base16-bytestring)
2366 ("ghc-base64-bytestring" ,ghc-base64-bytestring)
2367 ("ghc-resourcet" ,ghc-resourcet)
2368 ("ghc-monad-control" ,ghc-monad-control)
2369 ("ghc-chunked-data" ,ghc-chunked-data)
2370 ("ghc-mono-traversable" ,ghc-mono-traversable)))
2371 (native-inputs `(("ghc-hspec" ,ghc-hspec)
2372 ("ghc-silently" ,ghc-silently)
2373 ("ghc-safe" ,ghc-safe)
2374 ("ghc-quickcheck" ,ghc-quickcheck)))
2375 (home-page "https://github.com/snoyberg/mono-traversable")
2376 (synopsis "Commonly used conduit functions, for both chunked and
2377unchunked data")
2378 (description "This Haskell package provides a replacement for Data.Conduit.List,
2379as well as a convenient Conduit module.")
2380 (license license:expat)))
2381
2382(define-public ghc-conduit-extra
2383 (package
2384 (name "ghc-conduit-extra")
151774d9 2385 (version "1.3.4")
dddbc90c
RV
2386 (source
2387 (origin
2388 (method url-fetch)
2389 (uri (string-append "https://hackage.haskell.org/package/"
2390 "conduit-extra/conduit-extra-"
2391 version ".tar.gz"))
2392 (sha256
2393 (base32
151774d9 2394 "1d853d39vj5pb8yxfcsnjwdzqzkm34ixzbnba8bslpihb7182wxi"))))
dddbc90c
RV
2395 (build-system haskell-build-system)
2396 (inputs
2397 `(("ghc-conduit" ,ghc-conduit)
2398 ("ghc-exceptions" ,ghc-exceptions)
2399 ("ghc-monad-control" ,ghc-monad-control)
2400 ("ghc-transformers-base" ,ghc-transformers-base)
2401 ("ghc-typed-process" ,ghc-typed-process)
2402 ("ghc-async" ,ghc-async)
2403 ("ghc-attoparsec" ,ghc-attoparsec)
2404 ("ghc-blaze-builder" ,ghc-blaze-builder)
2405 ("ghc-network" ,ghc-network)
2406 ("ghc-primitive" ,ghc-primitive)
2407 ("ghc-resourcet" ,ghc-resourcet)
2408 ("ghc-streaming-commons" ,ghc-streaming-commons)
2409 ("ghc-hspec" ,ghc-hspec)
2410 ("ghc-bytestring-builder" ,ghc-bytestring-builder)
2411 ("ghc-quickcheck" ,ghc-quickcheck)))
2412 (native-inputs
2413 `(("hspec-discover" ,hspec-discover)))
2414 (home-page "https://github.com/snoyberg/conduit")
2415 (synopsis "Conduit adapters for common libraries")
2416 (description
2417 "The @code{conduit} package itself maintains relative small dependencies.
2418The purpose of this package is to collect commonly used utility functions
2419wrapping other library dependencies, without depending on heavier-weight
2420dependencies. The basic idea is that this package should only depend on
2421@code{haskell-platform} packages and @code{conduit}.")
2422 (license license:expat)))
2423
b59c3518
TS
2424(define-public ghc-conduit-zstd
2425 (package
2426 (name "ghc-conduit-zstd")
2427 (version "0.0.1.1")
2428 (source
2429 (origin
2430 (method url-fetch)
2431 (uri (string-append "https://hackage.haskell.org/package/"
2432 "conduit-zstd/conduit-zstd-" version ".tar.gz"))
2433 (sha256
2434 (base32
2435 "04h7w2903hgw4gjcx2pg29yinnmfapawvc19hd3r57rr12fzb0c6"))))
2436 (build-system haskell-build-system)
2437 (inputs
2438 `(("ghc-conduit" ,ghc-conduit)
2439 ("ghc-zstd" ,ghc-zstd)))
2440 (native-inputs
2441 `(("ghc-hunit" ,ghc-hunit)
2442 ("ghc-conduit-combinators" ,ghc-conduit-combinators)
2443 ("ghc-conduit-extra" ,ghc-conduit-extra)
2444 ("ghc-test-framework" ,ghc-test-framework)
2445 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
2446 ("ghc-test-framework-th" ,ghc-test-framework-th)))
2447 (home-page "https://github.com/luispedro/conduit-zstd#readme")
2448 (synopsis "Conduit-based ZStd Compression")
2449 (description "Zstandard compression packaged as a conduit. This is
2450a very thin wrapper around the
2451@url{https://github.com/facebookexperimental/hs-zstd/, official hs-zstd
2452interface}.")
2453 (license license:expat)))
2454
dddbc90c
RV
2455(define-public ghc-configurator
2456 (package
2457 (name "ghc-configurator")
2458 (version "0.3.0.0")
2459 (source
2460 (origin
2461 (method url-fetch)
2462 (uri (string-append "https://hackage.haskell.org/package/"
2463 "configurator/configurator-"
2464 version ".tar.gz"))
2465 (sha256
2466 (base32
2467 "1d1iq1knwiq6ia5g64rw5hqm6dakz912qj13r89737rfcxmrkfbf"))))
2468 (build-system haskell-build-system)
2469 (inputs
2470 `(("ghc-attoparsec" ,ghc-attoparsec)
2471 ("ghc-hashable" ,ghc-hashable)
2472 ("ghc-unix-compat" ,ghc-unix-compat)
2473 ("ghc-unordered-containers" ,ghc-unordered-containers)))
2474 (native-inputs
2475 `(("ghc-hunit" ,ghc-hunit)
2476 ("ghc-test-framework" ,ghc-test-framework)
2477 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)))
702a1012 2478 (home-page "https://github.com/bos/configurator")
dddbc90c
RV
2479 (synopsis "Configuration management")
2480 (description
2481 "This package provides a configuration management library for programs
2482and daemons. The features include:
2483
2484@enumerate
2485@item Automatic, dynamic reloading in response to modifications to
2486 configuration files.
2487@item A simple, but flexible, configuration language, supporting several of
2488 the most commonly needed types of data, along with interpolation of strings
2489 from the configuration or the system environment (e.g. @code{$(HOME)}).
2490@item Subscription-based notification of changes to configuration properties.
2491@item An @code{import} directive allows the configuration of a complex
2492 application to be split across several smaller files, or common configuration
2493 data to be shared across several applications.
2494@end enumerate\n")
2495 (license license:bsd-3)))
2496
2497(define-public ghc-connection
2498 (package
2499 (name "ghc-connection")
6ee0d258 2500 (version "0.3.1")
dddbc90c
RV
2501 (source (origin
2502 (method url-fetch)
2503 (uri (string-append "https://hackage.haskell.org/package/"
2504 "connection/connection-"
2505 version ".tar.gz"))
2506 (sha256
2507 (base32
6ee0d258 2508 "1nbmafhlg0wy4aa3p7amjddbamdz6avzrxn4py3lvhrjqn4raxax"))))
dddbc90c
RV
2509 (build-system haskell-build-system)
2510 (inputs
2511 `(("ghc-byteable" ,ghc-byteable)
2512 ("ghc-data-default-class" ,ghc-data-default-class)
2513 ("ghc-network" ,ghc-network)
2514 ("ghc-tls" ,ghc-tls)
2515 ("ghc-socks" ,ghc-socks)
2516 ("ghc-x509" ,ghc-x509)
2517 ("ghc-x509-store" ,ghc-x509-store)
2518 ("ghc-x509-system" ,ghc-x509-system)
2519 ("ghc-x509-validation" ,ghc-x509-validation)))
2520 (home-page "https://github.com/vincenthz/hs-connection")
2521 (synopsis "Simple and easy network connections API")
2522 (description
2523 "This package provides a simple network library for all your connection
2524needs. It provides a very simple API to create sockets to a destination with
2525the choice of SSL/TLS, and SOCKS.")
2526 (license license:bsd-3)))
2527
2528(define-public ghc-constraints
2529 (package
2530 (name "ghc-constraints")
2531 (version "0.10.1")
2532 (source
2533 (origin
2534 (method url-fetch)
2535 (uri (string-append
2536 "https://hackage.haskell.org/package/constraints/constraints-"
2537 version ".tar.gz"))
2538 (sha256
2539 (base32
2540 "1xy3vv78jxc17hm0z7qqspxjwv7l2jbcbj670yrl2f053qkfr02q"))))
2541 (build-system haskell-build-system)
2542 (inputs
2543 `(("ghc-hashable" ,ghc-hashable)
2544 ("ghc-semigroups" ,ghc-semigroups)
2545 ("ghc-transformers-compat" ,ghc-transformers-compat)))
2546 (native-inputs
2547 `(("ghc-hspec" ,ghc-hspec)
2548 ("hspec-discover" ,hspec-discover)))
2549 (home-page "https://github.com/ekmett/constraints/")
2550 (synopsis "Constraint manipulation")
2551 (description
2552 "GHC 7.4 gave us the ability to talk about @code{ConstraintKinds}.
2553They stopped crashing the compiler in GHC 7.6. This package provides
2554a vocabulary for working with them.")
2555 (license license:bsd-3)))
2556
2557(define-public ghc-contravariant
2558 (package
2559 (name "ghc-contravariant")
e7b35ff0 2560 (version "1.5.2")
dddbc90c
RV
2561 (source
2562 (origin
2563 (method url-fetch)
2564 (uri (string-append
2565 "https://hackage.haskell.org/package/contravariant/contravariant-"
2566 version
2567 ".tar.gz"))
2568 (sha256
2569 (base32
e7b35ff0 2570 "0366gl62wwwdbl9i6kqy60asf60876k55v91la6bmhnwwcj2q9n4"))))
dddbc90c
RV
2571 (build-system haskell-build-system)
2572 (inputs
2573 `(("ghc-void" ,ghc-void)
2574 ("ghc-transformers-compat" ,ghc-transformers-compat)
2575 ("ghc-statevar" ,ghc-statevar)
2576 ("ghc-semigroups" ,ghc-semigroups)))
2577 (home-page
2578 "https://github.com/ekmett/contravariant/")
2579 (synopsis "Contravariant functors")
2580 (description "Contravariant functors for Haskell.")
2581 (license license:bsd-3)))
2582
2583(define-public ghc-contravariant-extras
2584 (package
2585 (name "ghc-contravariant-extras")
2586 (version "0.3.4")
2587 (source
2588 (origin
2589 (method url-fetch)
2590 (uri (string-append "https://hackage.haskell.org/package/"
2591 "contravariant-extras-" version "/"
2592 "contravariant-extras-" version ".tar.gz"))
2593 (sha256
2594 (base32
2595 "0gg62ccl94kvh7mnvdq09pifqxjx2kgs189si90nmg44bafj7a9n"))))
2596 (build-system haskell-build-system)
f3aca086
TS
2597 (arguments
2598 `(#:cabal-revision
2599 ("1" "1h2955ahga6i4fn7k8v66l03v77p6fhsac6ck8gpabkc08ij60wp")))
dddbc90c
RV
2600 (inputs
2601 `(("ghc-tuple-th" ,ghc-tuple-th)
2602 ("ghc-contravariant" ,ghc-contravariant)
2603 ("ghc-base-prelude" ,ghc-base-prelude)
2604 ("ghc-semigroups" ,ghc-semigroups)))
2605 (home-page "https://github.com/nikita-volkov/contravariant-extras")
2606 (synopsis "Extras for the @code{ghc-contravariant} Haskell package")
2607 (description "This Haskell package provides extras for the
2608@code{ghc-contravariant} package.")
2609 (license license:expat)))
2610
2611(define-public ghc-convertible
2612 (package
2613 (name "ghc-convertible")
2614 (version "1.1.1.0")
2615 (source
2616 (origin
2617 (method url-fetch)
2618 (uri (string-append "https://hackage.haskell.org/package/convertible/"
2619 "convertible-" version ".tar.gz"))
2620 (sha256
2621 (base32
2622 "0v18ap1mccnndgxmbfgyjdicg8jlss01bd5fq8a576dr0h4sgyg9"))))
2623 (build-system haskell-build-system)
2624 (inputs
2625 `(("ghc-old-time" ,ghc-old-time)
2626 ("ghc-old-locale" ,ghc-old-locale)))
2627 (home-page "https://hackage.haskell.org/package/convertible")
2628 (synopsis "Typeclasses and instances for converting between types")
2629 (description
2630 "This package provides a typeclass with a single function that is
2631designed to help convert between different types: numeric values, dates and
2632times, and the like. The conversions perform bounds checking and return a
2633pure @code{Either} value. This means that you need not remember which specific
2634function performs the conversion you desire.")
2635 (license license:bsd-3)))
2636
2637(define-public ghc-data-accessor
2638 (package
2639 (name "ghc-data-accessor")
6dcca515 2640 (version "0.2.2.8")
dddbc90c
RV
2641 (source
2642 (origin
2643 (method url-fetch)
2644 (uri (string-append
2645 "mirror://hackage/package/data-accessor/data-accessor-"
2646 version ".tar.gz"))
2647 (sha256
6dcca515 2648 (base32 "1fq4gygxbz0bd0mzgvc1sl3m4gjnsv8nbgpnmdpa29zj5lb9agxc"))))
dddbc90c 2649 (build-system haskell-build-system)
228d2901 2650 (home-page "https://wiki.haskell.org/Record_access")
dddbc90c
RV
2651 (synopsis
2652 "Haskell utilities for accessing and manipulating fields of records")
2653 (description "This package provides Haskell modules for accessing and
2654manipulating fields of records.")
2655 (license license:bsd-3)))
2656
2657(define-public ghc-data-accessor-transformers
2658 (package
2659 (name "ghc-data-accessor-transformers")
2660 (version "0.2.1.7")
2661 (source
2662 (origin
2663 (method url-fetch)
2664 (uri (string-append
2665 "mirror://hackage/package/data-accessor-transformers/"
2666 "data-accessor-transformers-" version ".tar.gz"))
2667 (sha256
2668 (base32 "0yp030vafbpddl27m606aibbbr5ar5j5bsv4bksscz3cq4yq5j10"))))
2669 (build-system haskell-build-system)
2670 (inputs `(("ghc-data-accessor" ,ghc-data-accessor)))
228d2901 2671 (home-page "https://wiki.haskell.org/Record_access")
dddbc90c
RV
2672 (synopsis "Use Accessor to access state in transformers State monad")
2673 (description "This package provides Haskell modules to allow use of
2674Accessor to access state in transformers State monad.")
2675 (license license:bsd-3)))
2676
2677(define-public ghc-data-default
2678 (package
2679 (name "ghc-data-default")
2680 (version "0.7.1.1")
2681 (source
2682 (origin
2683 (method url-fetch)
2684 (uri (string-append
2685 "https://hackage.haskell.org/package/data-default/data-default-"
2686 version
2687 ".tar.gz"))
2688 (sha256
2689 (base32 "04d5n8ybmcxba9qb6h389w9zfq1lvj81b82jh6maqp6pkhkmvydh"))))
2690 (build-system haskell-build-system)
2691 (inputs
2692 `(("ghc-data-default-class"
2693 ,ghc-data-default-class)
2694 ("ghc-data-default-instances-base"
2695 ,ghc-data-default-instances-base)
2696 ("ghc-data-default-instances-containers"
2697 ,ghc-data-default-instances-containers)
2698 ("ghc-data-default-instances-dlist"
2699 ,ghc-data-default-instances-dlist)
2700 ("ghc-data-default-instances-old-locale"
2701 ,ghc-data-default-instances-old-locale)))
2702 (home-page "https://hackage.haskell.org/package/data-default")
2703 (synopsis "Types with default values")
2704 (description
2705 "This package defines a class for types with a default value, and
2706provides instances for types from the base, containers, dlist and old-locale
2707packages.")
2708 (license license:bsd-3)))
2709
2710(define-public ghc-data-default-class
2711 (package
2712 (name "ghc-data-default-class")
2713 (version "0.1.2.0")
2714 (source
2715 (origin
2716 (method url-fetch)
2717 (uri (string-append
2718 "https://hackage.haskell.org/package/data-default-class/"
2719 "data-default-class-" version ".tar.gz"))
2720 (sha256
2721 (base32 "0miyjz8d4jyvqf2vp60lyfbnflx6cj2k8apmm9ly1hq0y0iv80ag"))))
2722 (build-system haskell-build-system)
2723 (home-page "https://hackage.haskell.org/package/data-default-class")
2724 (synopsis "Types with default values")
2725 (description
2726 "This package defines a class for types with default values.")
2727 (license license:bsd-3)))
2728
2729(define-public ghc-data-default-instances-base
2730 (package
2731 (name "ghc-data-default-instances-base")
2732 (version "0.1.0.1")
2733 (source
2734 (origin
2735 (method url-fetch)
2736 (uri (string-append
2737 "https://hackage.haskell.org/package/"
2738 "data-default-instances-base/"
2739 "data-default-instances-base-" version ".tar.gz"))
2740 (sha256
2741 (base32 "0ym1sw3ssdzzifxxhh76qlv8kkmb2iclc158incv1dklyr9y8kw4"))))
2742 (build-system haskell-build-system)
2743 (inputs
2744 `(("ghc-data-default-class" ,ghc-data-default-class)))
2745 (home-page "https://hackage.haskell.org/package/data-default-instances-base")
2746 (synopsis "Default instances for types in base")
2747 (description
2748 "This package provides default instances for types from the base
2749package.")
2750 (license license:bsd-3)))
2751
2752(define-public ghc-data-default-instances-containers
2753 (package
2754 (name "ghc-data-default-instances-containers")
2755 (version "0.0.1")
2756 (source
2757 (origin
2758 (method url-fetch)
2759 (uri (string-append
2760 "https://hackage.haskell.org/package/"
2761 "data-default-instances-containers/"
2762 "data-default-instances-containers-" version ".tar.gz"))
2763 (sha256
2764 (base32 "06h8xka031w752a7cjlzghvr8adqbl95xj9z5zc1b62w02phfpm5"))))
2765 (build-system haskell-build-system)
2766 (inputs
2767 `(("ghc-data-default-class" ,ghc-data-default-class)))
2768 (home-page "https://hackage.haskell.org/package/data-default-instances-containers")
2769 (synopsis "Default instances for types in containers")
2770 (description "Provides default instances for types from the containers
2771package.")
2772 (license license:bsd-3)))
2773
2774(define-public ghc-data-default-instances-dlist
2775 (package
2776 (name "ghc-data-default-instances-dlist")
2777 (version "0.0.1")
2778 (source
2779 (origin
2780 (method url-fetch)
2781 (uri (string-append
2782 "https://hackage.haskell.org/package/"
2783 "data-default-instances-dlist/"
2784 "data-default-instances-dlist-" version ".tar.gz"))
2785 (sha256
2786 (base32 "0narkdqiprhgayjiawrr4390h4rq4pl2pb6mvixbv2phrc8kfs3x"))))
2787 (build-system haskell-build-system)
2788 (inputs
2789 `(("ghc-data-default-class" ,ghc-data-default-class)
2790 ("ghc-dlist" ,ghc-dlist)))
2791 (home-page "https://hackage.haskell.org/package/data-default-instances-dlist")
2792 (synopsis "Default instances for types in dlist")
2793 (description "Provides default instances for types from the dlist
2794package.")
2795 (license license:bsd-3)))
2796
2797(define-public ghc-data-default-instances-old-locale
2798 (package
2799 (name "ghc-data-default-instances-old-locale")
2800 (version "0.0.1")
2801 (source
2802 (origin
2803 (method url-fetch)
2804 (uri (string-append
2805 "https://hackage.haskell.org/package/"
2806 "data-default-instances-old-locale/"
2807 "data-default-instances-old-locale-" version ".tar.gz"))
2808 (sha256
2809 (base32 "00h81i5phib741yj517p8mbnc48myvfj8axzsw44k34m48lv1lv0"))))
2810 (build-system haskell-build-system)
2811 (inputs
2812 `(("ghc-data-default-class" ,ghc-data-default-class)
2813 ("ghc-old-locale" ,ghc-old-locale)))
2814 (home-page
2815 "https://hackage.haskell.org/package/data-default-instances-old-locale")
2816 (synopsis "Default instances for types in old-locale")
2817 (description "Provides Default instances for types from the old-locale
2818 package.")
2819 (license license:bsd-3)))
2820
82c36002
JS
2821(define-public ghc-data-fix
2822 (package
2823 (name "ghc-data-fix")
2824 (version "0.2.0")
2825 (source
2826 (origin
2827 (method url-fetch)
2828 (uri (string-append
2829 "mirror://hackage/package/data-fix/"
2830 "data-fix-" version ".tar.gz"))
2831 (sha256
2832 (base32 "14hk6hq5hdb3l5bhmzhw086jpzlvp9qbw9dzw30wlz5jbh2ihmvy"))))
2833 (build-system haskell-build-system)
2834 (home-page "https://github.com/spell-music/data-fix")
2835 (synopsis "Fixpoint data types")
2836 (description
2837 "Fixpoint types and recursion schemes. If you define your AST as
2838fixpoint type, you get fold and unfold operations for free.
2839
2840Thanks for contribution to: Matej Kollar, Herbert Valerio Riedel")
2841 (license license:bsd-3)))
2842
dddbc90c
RV
2843(define-public ghc-data-hash
2844 (package
2845 (name "ghc-data-hash")
2846 (version "0.2.0.1")
2847 (source
2848 (origin
2849 (method url-fetch)
2850 (uri (string-append "https://hackage.haskell.org/package/data-hash"
2851 "/data-hash-" version ".tar.gz"))
2852 (sha256
2853 (base32 "1ghbqvc48gf9p8wiy71hdpaj7by3b9cw6wgwi3qqz8iw054xs5wi"))))
2854 (build-system haskell-build-system)
2855 (inputs
2856 `(("ghc-quickcheck" ,ghc-quickcheck)
2857 ("ghc-test-framework" ,ghc-test-framework)
2858 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
2859 (home-page "https://hackage.haskell.org/package/data-hash")
2860 (synopsis "Combinators for building fast hashing functions")
2861 (description
2862 "This package provides combinators for building fast hashing functions.
2863It includes hashing functions for all basic Haskell98 types.")
2864 (license license:bsd-3)))
2865
2866(define-public ghc-data-ordlist
2867 (package
2868 (name "ghc-data-ordlist")
2869 (version "0.4.7.0")
2870 (source
2871 (origin
2872 (method url-fetch)
2873 (uri (string-append
2874 "https://hackage.haskell.org/package/data-ordlist/data-ordlist-"
2875 version ".tar.gz"))
2876 (sha256
2877 (base32
2878 "03a9ix1fcx08viwv2jg5ndw1qbkydyyrmjvqr9wasmcik9x1wv3g"))))
2879 (build-system haskell-build-system)
2880 (home-page "https://hackage.haskell.org/package/data-ordlist")
2881 (synopsis "Set and bag operations on ordered lists")
2882 (description
2883 "This module provides set and multiset operations on ordered lists.")
2884 (license license:bsd-3)))
2885
d05f32d6
JS
2886(define-public ghc-dbus
2887 (package
2888 (name "ghc-dbus")
2889 (version "1.2.7")
2890 (source
2891 (origin
2892 (method url-fetch)
2893 (uri
2894 (string-append
2895 "mirror://hackage/package/dbus/dbus-"
2896 version ".tar.gz"))
2897 (sha256
2898 (base32
2899 "0ypkjlw9fn65g7p28kb3p82glk7qs7p7vyffccw7qxa3z57s12w5"))))
2900 (build-system haskell-build-system)
2901 (inputs
2902 `(("ghc-cereal" ,ghc-cereal)
2903 ("ghc-conduit" ,ghc-conduit)
2904 ("ghc-exceptions" ,ghc-exceptions)
2905 ("ghc-lens" ,ghc-lens)
2906 ("ghc-network" ,ghc-network)
2907 ("ghc-random" ,ghc-random)
2908 ("ghc-split" ,ghc-split)
2909 ("ghc-th-lift" ,ghc-th-lift)
2910 ("ghc-vector" ,ghc-vector)
2911 ("ghc-xml-conduit" ,ghc-xml-conduit)
2912 ("ghc-xml-types" ,ghc-xml-types)))
2913 (native-inputs
2914 `(("ghc-extra" ,ghc-extra)
2915 ("ghc-quickcheck" ,ghc-quickcheck)
2916 ("ghc-resourcet" ,ghc-resourcet)
2917 ("ghc-tasty" ,ghc-tasty)
2918 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
2919 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
2920 ;; FIXME - Some tests try to talk to network.
2921 (arguments `(#:tests? #f))
2922 (home-page "https://github.com/rblaze/haskell-dbus")
2923 (synopsis "Client library for the D-Bus IPC system")
2924 (description
2925 "D-Bus is a simple, message-based protocol for inter-process
2926communication, which allows applications to interact with other parts
2927of the machine and the user's session using remote procedure
2928calls. D-Bus is a essential part of the modern Linux desktop, where
2929it replaces earlier protocols such as CORBA and DCOP. This library
2930is an implementation of the D-Bus protocol in Haskell. It can be used
2931to add D-Bus support to Haskell applications, without the awkward
2932interfaces common to foreign bindings.")
2933 (license license:asl2.0)))
2934
dddbc90c
RV
2935(define-public ghc-deepseq-generics
2936 (package
2937 (name "ghc-deepseq-generics")
2938 (version "0.2.0.0")
2939 (source (origin
2940 (method url-fetch)
2941 (uri (string-append "https://hackage.haskell.org/package/"
2942 "deepseq-generics/deepseq-generics-"
2943 version ".tar.gz"))
2944 (sha256
2945 (base32
2946 "17bwghc15mc9pchfd1w46jh2p3wzc86aj6a537wqwxn08rayzcxh"))))
2947 (build-system haskell-build-system)
2948 (arguments
2949 `(#:cabal-revision
490ceae4 2950 ("4" "0928s2qnbqsjzrm94x88rvmvbigfmhcyp4m73gw6asinp2qg1kii")))
dddbc90c
RV
2951 (native-inputs
2952 `(("ghc-hunit" ,ghc-hunit)
2953 ("ghc-test-framework" ,ghc-test-framework)
2954 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)))
2955 (home-page "https://github.com/hvr/deepseq-generics")
2956 (synopsis "Generic RNF implementation")
2957 (description
2958 "This package provides a @code{GHC.Generics}-based
2959@code{Control.DeepSeq.Generics.genericRnf} function which can be used for
2960providing an @code{rnf} implementation.")
2961 (license license:bsd-3)))
2962
e924e17e
TS
2963(define-public ghc-dense-linear-algebra
2964 (package
2965 (name "ghc-dense-linear-algebra")
2966 (version "0.1.0.0")
2967 (source
2968 (origin
2969 (method url-fetch)
2970 (uri (string-append "https://hackage.haskell.org/package/"
2971 "dense-linear-algebra/dense-linear-algebra-"
2972 version ".tar.gz"))
2973 (sha256
2974 (base32
2975 "1m7jjxahqxj7ilic3r9806mwp5rnnsmn8vvipkmk40xl65wplxzp"))))
2976 (build-system haskell-build-system)
2977 (inputs
2978 `(("ghc-math-functions" ,ghc-math-functions)
2979 ("ghc-primitive" ,ghc-primitive)
2980 ("ghc-vector" ,ghc-vector)
2981 ("ghc-vector-algorithms" ,ghc-vector-algorithms)
2982 ("ghc-vector-th-unbox" ,ghc-vector-th-unbox)
2983 ("ghc-vector-binary-instances" ,ghc-vector-binary-instances)))
2984 (native-inputs
2985 `(("ghc-hspec" ,ghc-hspec)
2986 ("ghc-quickcheck" ,ghc-quickcheck)))
50153437 2987 (home-page "https://hackage.haskell.org/package/dense-linear-algebra")
e924e17e
TS
2988 (synopsis "Simple and incomplete implementation of linear algebra")
2989 (description "This library is simply a collection of linear-algebra
2990related modules split from the statistics library.")
2991 (license license:bsd-2)))
2992
dddbc90c
RV
2993(define-public ghc-descriptive
2994 (package
2995 (name "ghc-descriptive")
2996 (version "0.9.5")
2997 (source
2998 (origin
2999 (method url-fetch)
3000 (uri (string-append
3001 "https://hackage.haskell.org/package/descriptive/descriptive-"
3002 version
3003 ".tar.gz"))
3004 (sha256
3005 (base32
3006 "0y5693zm2kvqjilybbmrcv1g6n6x2p6zjgi0k0axjw1sdhh1g237"))))
3007 (build-system haskell-build-system)
3008 (inputs
3009 `(("ghc-aeson" ,ghc-aeson)
3010 ("ghc-bifunctors" ,ghc-bifunctors)
3011 ("ghc-scientific" ,ghc-scientific)
3012 ("ghc-vector" ,ghc-vector)))
3013 (native-inputs
3014 `(("ghc-hunit" ,ghc-hunit)
3015 ("ghc-hspec" ,ghc-hspec)))
3016 (home-page
3017 "https://github.com/chrisdone/descriptive")
3018 (synopsis
3019 "Self-describing consumers/parsers: forms, cmd-line args, JSON, etc.")
3020 (description
3021 "This package provides datatypes and functions for creating consumers
3022and parsers with useful semantics.")
3023 (license license:bsd-3)))
3024
1859c94a
TS
3025(define-public ghc-diagrams-core
3026 (package
3027 (name "ghc-diagrams-core")
3028 (version "1.4.2")
3029 (source
3030 (origin
3031 (method url-fetch)
3032 (uri (string-append "https://hackage.haskell.org/package/"
3033 "diagrams-core/diagrams-core-" version ".tar.gz"))
3034 (sha256
3035 (base32
3036 "0qgb43vy23g4fxh3nmxfq6jyp34imqvkhgflaa6rz0iq6d60gl43"))))
3037 (build-system haskell-build-system)
3038 (inputs
3039 `(("ghc-unordered-containers" ,ghc-unordered-containers)
3040 ("ghc-semigroups" ,ghc-semigroups)
3041 ("ghc-monoid-extras" ,ghc-monoid-extras)
3042 ("ghc-dual-tree" ,ghc-dual-tree)
3043 ("ghc-lens" ,ghc-lens)
3044 ("ghc-linear" ,ghc-linear)
3045 ("ghc-adjunctions" ,ghc-adjunctions)
3046 ("ghc-distributive" ,ghc-distributive)
3047 ("ghc-profunctors" ,ghc-profunctors)))
3048 (home-page "https://archives.haskell.org/projects.haskell.org/diagrams/")
3049 (synopsis "Core libraries for diagrams embedded domain-specific language")
3050 (description "This package provides the core modules underlying
3051diagrams, an embedded domain-specific language for compositional,
3052declarative drawing.")
3053 (license license:bsd-3)))
3054
f9f1a630
TS
3055(define-public ghc-diagrams-lib
3056 (package
3057 (name "ghc-diagrams-lib")
3058 (version "1.4.2.3")
3059 (source
3060 (origin
3061 (method url-fetch)
3062 (uri (string-append "https://hackage.haskell.org/package/"
3063 "diagrams-lib/diagrams-lib-" version ".tar.gz"))
3064 (sha256
3065 (base32
3066 "175yzi5kw4yd8ykdkpf64q85c7j3p89l90m3h6qcsx9ipv6av9r5"))))
3067 (build-system haskell-build-system)
3068 (inputs
3069 `(("ghc-semigroups" ,ghc-semigroups)
3070 ("ghc-monoid-extras" ,ghc-monoid-extras)
3071 ("ghc-dual-tree" ,ghc-dual-tree)
3072 ("ghc-diagrams-core" ,ghc-diagrams-core)
3073 ("ghc-diagrams-solve" ,ghc-diagrams-solve)
3074 ("ghc-active" ,ghc-active)
3075 ("ghc-colour" ,ghc-colour)
3076 ("ghc-data-default-class" ,ghc-data-default-class)
3077 ("ghc-fingertree" ,ghc-fingertree)
3078 ("ghc-intervals" ,ghc-intervals)
3079 ("ghc-lens" ,ghc-lens)
3080 ("ghc-tagged" ,ghc-tagged)
3081 ("ghc-optparse-applicative" ,ghc-optparse-applicative)
3082 ("ghc-juicypixels" ,ghc-juicypixels)
3083 ("ghc-hashable" ,ghc-hashable)
3084 ("ghc-linear" ,ghc-linear)
3085 ("ghc-adjunctions" ,ghc-adjunctions)
3086 ("ghc-distributive" ,ghc-distributive)
3087 ("ghc-fsnotify" ,ghc-fsnotify)
3088 ("ghc-unordered-containers" ,ghc-unordered-containers)
3089 ("ghc-profunctors" ,ghc-profunctors)
3090 ("ghc-exceptions" ,ghc-exceptions)
3091 ("ghc-cereal" ,ghc-cereal)))
3092 (native-inputs
3093 `(("ghc-tasty" ,ghc-tasty)
3094 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
3095 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
3096 ("ghc-numeric-extras" ,ghc-numeric-extras)))
3097 (arguments
3098 `(#:cabal-revision
3099 ("3" "157y2qdsh0aczs81vzlm377mks976mpv6y3aqnchwsnr7apzp8ai")))
3100 (home-page "https://archives.haskell.org/projects.haskell.org/diagrams/")
3101 (synopsis "Embedded domain-specific language for declarative graphics")
3102 (description "Diagrams is a flexible, extensible embedded
3103domain-specific language (EDSL) for creating graphics of many types.
3104Graphics can be created in arbitrary vector spaces and rendered with
3105multiple backends. This package provides a standard library of
3106primitives and operations for creating diagrams.")
3107 (license license:bsd-3)))
3108
fd33ffa0
TS
3109(define-public ghc-diagrams-solve
3110 (package
3111 (name "ghc-diagrams-solve")
3112 (version "0.1.1")
3113 (source
3114 (origin
3115 (method url-fetch)
3116 (uri (string-append "https://hackage.haskell.org/package/"
3117 "diagrams-solve/diagrams-solve-"
3118 version ".tar.gz"))
3119 (sha256
3120 (base32
3121 "17agchqkmj14b17sw50kzxq4hm056g5d8yy0wnqn5w8h1d0my7x4"))))
3122 (build-system haskell-build-system)
3123 (native-inputs
3124 `(("ghc-tasty" ,ghc-tasty)
3125 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
3126 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
3127 (arguments
3128 `(#:cabal-revision
3129 ("5" "1yl8cs05fzqcz49p601am1ij66m9pa70yamhfxgcvya2pf8nimlf")))
3130 (home-page "https://archives.haskell.org/projects.haskell.org/diagrams/")
3131 (synopsis "Pure Haskell solver routines used by diagrams")
3132 (description "This library provides Pure Haskell solver routines for
3133use by the
3134@url{https://archives.haskell.org/projects.haskell.org/diagrams/,
3135diagrams framework}. It currently includes routines for finding real
3136roots of low-degree (@math{n < 5}) polynomials, and solving tridiagonal
3137and cyclic tridiagonal linear systems.")
3138 (license license:bsd-3)))
3139
74be1cb7
TS
3140(define-public ghc-diagrams-svg
3141 (package
3142 (name "ghc-diagrams-svg")
3143 (version "1.4.2")
3144 (source
3145 (origin
3146 (method url-fetch)
3147 (uri (string-append "https://hackage.haskell.org/package/"
3148 "diagrams-svg/diagrams-svg-" version ".tar.gz"))
3149 (sha256
3150 (base32
3151 "1lnyxx45yawqas7hmvvannwaa3ycf1l9g40lsl2m8sl2ja6vcmal"))))
3152 (build-system haskell-build-system)
3153 (inputs
3154 `(("ghc-base64-bytestring" ,ghc-base64-bytestring)
3155 ("ghc-colour" ,ghc-colour)
3156 ("ghc-diagrams-core" ,ghc-diagrams-core)
3157 ("ghc-diagrams-lib" ,ghc-diagrams-lib)
3158 ("ghc-monoid-extras" ,ghc-monoid-extras)
3159 ("ghc-svg-builder" ,ghc-svg-builder)
3160 ("ghc-juicypixels" ,ghc-juicypixels)
3161 ("ghc-split" ,ghc-split)
3162 ("ghc-lens" ,ghc-lens)
3163 ("ghc-hashable" ,ghc-hashable)
3164 ("ghc-optparse-applicative" ,ghc-optparse-applicative)
3165 ("ghc-semigroups" ,ghc-semigroups)))
3166 (arguments
3167 `(#:cabal-revision
3168 ("2" "15sn85xaachw4cj56w61bjcwrbf4qmnkfl8mbgdapxi5k0y4f2qv")))
3169 (home-page "https://archives.haskell.org/projects.haskell.org/diagrams/")
3170 (synopsis "Scalable Vector Grpahics backend for the diagrams framework")
3171 (description "This package provides a modular backend for rendering
3172diagrams created with the diagrams embedded domain-specific
3173language (EDSL) to Scalable Vector Graphics (SVG) files.")
3174 (license license:bsd-3)))
3175
4eb9a167
TS
3176(define-public ghc-dictionary-sharing
3177 (package
3178 (name "ghc-dictionary-sharing")
3179 (version "0.1.0.0")
3180 (source
3181 (origin
3182 (method url-fetch)
3183 (uri (string-append "https://hackage.haskell.org/package/"
3184 "dictionary-sharing/dictionary-sharing-"
3185 version ".tar.gz"))
3186 (sha256
3187 (base32
3188 "00aspv943qdqhlk39mbk00kb1dsa5r0caj8sslrn81fnsn252fwc"))))
3189 (build-system haskell-build-system)
3190 (arguments
3191 `(#:cabal-revision
3192 ("3" "1mn7jcc7h3b8f1pn9zigqp6mc2n0qb66lms5qnrx4zswdv5w9439")))
3193 (home-page "https://hackage.haskell.org/package/dictionary-sharing")
3194 (synopsis "Sharing/memoization of class members")
3195 (description "This library provides tools for ensuring that class
3196members are shared.")
3197 (license license:bsd-3)))
3198
dddbc90c
RV
3199(define-public ghc-diff
3200 (package
3201 (name "ghc-diff")
3202 (version "0.3.4")
3203 (source (origin
3204 (method url-fetch)
3205 (uri (string-append "https://hackage.haskell.org/package/"
3206 "Diff/Diff-" version ".tar.gz"))
a531ff94 3207 (patches (search-patches "ghc-diff-swap-cover-args.patch"))
dddbc90c
RV
3208 (sha256
3209 (base32
3210 "0bqcdvhxx8dmqc3793m6axg813wv9ldz2j37f1wygbbrbbndmdvp"))))
3211 (build-system haskell-build-system)
3212 (native-inputs
3213 `(("ghc-quickcheck" ,ghc-quickcheck)
3214 ("ghc-test-framework" ,ghc-test-framework)
3215 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
3216 (home-page "https://hub.darcs.net/sterlingclover/Diff")
3217 (synopsis "O(ND) diff algorithm in Haskell")
3218 (description
3219 "This package provides an implementation of the standard diff algorithm,
3220and utilities for pretty printing.")
3221 (license license:bsd-3)))
3222
3223(define-public ghc-disk-free-space
3224 (package
3225 (name "ghc-disk-free-space")
3226 (version "0.1.0.1")
3227 (source
3228 (origin
3229 (method url-fetch)
3230 (uri (string-append "https://hackage.haskell.org/package/"
3231 "disk-free-space/disk-free-space-"
3232 version ".tar.gz"))
3233 (sha256
3234 (base32
3235 "07rqj8k1vh3cykq9yidpjxhgh1f7vgmjs6y1nv5kq2217ff4yypi"))))
3236 (build-system haskell-build-system)
3237 (home-page "https://github.com/redneb/disk-free-space")
3238 (synopsis "Retrieve information about disk space usage")
3239 (description "A cross-platform library for retrieving information about
3240disk space usage.")
3241 (license license:bsd-3)))
3242
3243(define-public ghc-distributive
3244 (package
3245 (name "ghc-distributive")
78215a14 3246 (version "0.6.2")
dddbc90c
RV
3247 (source
3248 (origin
3249 (method url-fetch)
3250 (uri (string-append
3251 "https://hackage.haskell.org/package/distributive/distributive-"
3252 version
3253 ".tar.gz"))
3254 (sha256
3255 (base32
78215a14 3256 "1j93zkfffm6s16kgr0j0z87y5ds28rw0r2gyc5ncwcylvrqy4kl2"))))
dddbc90c 3257 (build-system haskell-build-system)
dddbc90c
RV
3258 (inputs
3259 `(("ghc-tagged" ,ghc-tagged)
3260 ("ghc-base-orphans" ,ghc-base-orphans)
3261 ("ghc-transformers-compat" ,ghc-transformers-compat)
3262 ("ghc-semigroups" ,ghc-semigroups)
3263 ("ghc-generic-deriving" ,ghc-generic-deriving)))
3264 (native-inputs
3265 `(("cabal-doctest" ,cabal-doctest)
3266 ("ghc-doctest" ,ghc-doctest)
3267 ("ghc-hspec" ,ghc-hspec)
3268 ("hspec-discover" ,hspec-discover)))
3269 (home-page "https://github.com/ekmett/distributive/")
3270 (synopsis "Distributive functors for Haskell")
3271 (description "This package provides distributive functors for Haskell.
3272Dual to @code{Traversable}.")
3273 (license license:bsd-3)))
3274
3275(define-public ghc-dlist
3276 (package
3277 (name "ghc-dlist")
197ddf33 3278 (version "0.8.0.7")
dddbc90c
RV
3279 (source
3280 (origin
3281 (method url-fetch)
3282 (uri (string-append
3283 "https://hackage.haskell.org/package/dlist/dlist-"
3284 version
3285 ".tar.gz"))
3286 (sha256
197ddf33 3287 (base32 "0b5spkzvj2kx8pk86xz0djkxs13j7dryf5fl16dk4mlp1wh6mh53"))))
dddbc90c
RV
3288 (build-system haskell-build-system)
3289 (inputs
3290 `(("ghc-quickcheck" ,ghc-quickcheck)))
3291 (home-page "https://github.com/spl/dlist")
3292 (synopsis "Difference lists")
3293 (description
3294 "Difference lists are a list-like type supporting O(1) append. This is
3295particularly useful for efficient logging and pretty printing (e.g. with the
3296Writer monad), where list append quickly becomes too expensive.")
3297 (license license:bsd-3)))
3298
3299(define-public ghc-doctemplates
3300 (package
3301 (name "ghc-doctemplates")
3302 (version "0.2.2.1")
3303 (source
3304 (origin
3305 (method url-fetch)
3306 (uri (string-append "https://hackage.haskell.org/package/"
3307 "doctemplates/doctemplates-"
3308 version ".tar.gz"))
3309 (sha256
3310 (base32
3311 "1gyckfg3kgvzhxw14i7iwrw0crygvsp86sy53bbr1yn7bxbgn33b"))))
3312 (build-system haskell-build-system)
3313 (inputs
3314 `(("ghc-aeson" ,ghc-aeson)
3315 ("ghc-blaze-markup" ,ghc-blaze-markup)
3316 ("ghc-blaze-html" ,ghc-blaze-html)
3317 ("ghc-vector" ,ghc-vector)
3318 ("ghc-unordered-containers" ,ghc-unordered-containers)
3319 ("ghc-scientific" ,ghc-scientific)))
3320 (native-inputs
3321 `(("ghc-hspec" ,ghc-hspec)))
3322 (home-page "https://github.com/jgm/doctemplates#readme")
3323 (synopsis "Pandoc-style document templates")
3324 (description
3325 "This package provides a simple text templating system used by pandoc.")
3326 (license license:bsd-3)))
3327
3328(define-public ghc-doctest
3329 (package
3330 (name "ghc-doctest")
19c14a0f 3331 (version "0.16.2")
dddbc90c
RV
3332 (source
3333 (origin
3334 (method url-fetch)
3335 (uri (string-append
3336 "https://hackage.haskell.org/package/doctest/doctest-"
3337 version
3338 ".tar.gz"))
3339 (sha256
3340 (base32
19c14a0f 3341 "0lk4cjfzi5bx2snfzw1zi06li0gvgz3ckfh2kwa98l7nxfdl39ag"))))
dddbc90c
RV
3342 (build-system haskell-build-system)
3343 (arguments `(#:tests? #f)) ; FIXME: missing test framework
3344 (inputs
3345 `(("ghc-syb" ,ghc-syb)
3346 ("ghc-paths" ,ghc-paths)
3347 ("ghc-base-compat" ,ghc-base-compat)
3348 ("ghc-code-page" ,ghc-code-page)
3349 ("ghc-hunit" ,ghc-hunit)
3350 ("ghc-hspec" ,ghc-hspec)
3351 ("ghc-quickcheck" ,ghc-quickcheck)
3352 ("ghc-stringbuilder" ,ghc-stringbuilder)
3353 ("ghc-silently" ,ghc-silently)
3354 ("ghc-setenv" ,ghc-setenv)))
3355 (home-page
3356 "https://github.com/sol/doctest#readme")
3357 (synopsis "Test interactive Haskell examples")
3358 (description "The doctest program checks examples in source code comments.
3359It is modeled after doctest for Python, see
3360@uref{https://docs.python.org/library/doctest.html, the Doctest website}.")
3361 (license license:expat)))
3362
2b2c8911
JS
3363(define-public ghc-dotgen
3364 (package
3365 (name "ghc-dotgen")
3366 (version "0.4.2")
3367 (source
3368 (origin
3369 (method url-fetch)
3370 (uri (string-append
3371 "mirror://hackage/package/dotgen/dotgen-"
3372 version
3373 ".tar.gz"))
3374 (sha256
3375 (base32
3376 "148q93qsmqgr5pzdwvpjqfd6bdm1pwzcp2rblfwswx2x8c5f43fg"))))
3377 (build-system haskell-build-system)
3378 (home-page "https://github.com/ku-fpg/dotgen")
3379 (synopsis
3380 "Simple interface for building .dot graph files")
3381 (description
3382 "This package provides a simple interface for building .dot graph
3383files, for input into the dot and graphviz tools. It includes a
3384monadic interface for building graphs.")
3385 (license license:bsd-3)))
3386
dddbc90c
RV
3387(define-public ghc-double-conversion
3388 (package
3389 (name "ghc-double-conversion")
3390 (version "2.0.2.0")
3391 (source
3392 (origin
3393 (method url-fetch)
3394 (uri (string-append "https://hackage.haskell.org/package/"
3395 "double-conversion/double-conversion-"
3396 version ".tar.gz"))
3397 (sha256
3398 (base32
3399 "0sx2kc1gw72mjvd8vph8bbjw5whfxfv92rsdhjg1c0al75rf3ka4"))))
3400 (build-system haskell-build-system)
3401 (native-inputs
3402 `(("ghc-hunit" ,ghc-hunit)
3403 ("ghc-test-framework" ,ghc-test-framework)
3404 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
3405 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
3406 (home-page "https://github.com/bos/double-conversion")
3407 (synopsis "Fast conversion between double precision floating point and text")
3408 (description
3409 "This package provides a library that performs fast, accurate conversion
3410between double precision floating point and text.")
3411 (license license:bsd-3)))
3412
577a78b7
TS
3413(define-public ghc-dual-tree
3414 (package
3415 (name "ghc-dual-tree")
3416 (version "0.2.2.1")
3417 (source
3418 (origin
3419 (method url-fetch)
3420 (uri (string-append "https://hackage.haskell.org/package/"
3421 "dual-tree/dual-tree-" version ".tar.gz"))
3422 (sha256
3423 (base32
3424 "17kdfnf0df0z5pkiifxrlmyd1xd7hjjaazd2kzyajl0gd00vbszx"))))
3425 (build-system haskell-build-system)
3426 (inputs
3427 `(("ghc-semigroups" ,ghc-semigroups)
3428 ("ghc-newtype-generics" ,ghc-newtype-generics)
3429 ("ghc-monoid-extras" ,ghc-monoid-extras)))
3430 (native-inputs
3431 `(("ghc-quickcheck" ,ghc-quickcheck)
3432 ("ghc-testing-feat" ,ghc-testing-feat)))
3433 (home-page "https://hackage.haskell.org/package/dual-tree")
3434 (synopsis "Rose trees with cached and accumulating monoidal annotations")
3435 (description "Rose (@math{n}-ary) trees with both upwards- (i.e.
3436cached) and downwards-traveling (i.e. accumulating) monoidal
3437annotations. This is used as the core data structure underlying the
3438@url{https://archives.haskell.org/projects.haskell.org/diagrams/,
3439diagrams framework}, but potentially has other applications as well.")
3440 (license license:bsd-3)))
3441
dddbc90c
RV
3442(define-public ghc-easy-file
3443 (package
3444 (name "ghc-easy-file")
3445 (version "0.2.2")
3446 (source
3447 (origin
3448 (method url-fetch)
3449 (uri (string-append
3450 "https://hackage.haskell.org/package/easy-file/easy-file-"
3451 version
3452 ".tar.gz"))
3453 (sha256
3454 (base32
3455 "0zmlcz723051qpn8l8vi51c5rx1blwrw4094jcshkmj8p9r2xxaj"))))
3456 (build-system haskell-build-system)
3457 (home-page
3458 "https://github.com/kazu-yamamoto/easy-file")
3459 (synopsis "File handling library for Haskell")
3460 (description "This library provides file handling utilities for Haskell.")
3461 (license license:bsd-3)))
3462
3463(define-public ghc-easyplot
3464 (package
3465 (name "ghc-easyplot")
3466 (version "1.0")
3467 (source
3468 (origin
3469 (method url-fetch)
3470 (uri (string-append
3471 "https://hackage.haskell.org/package/easyplot/easyplot-"
3472 version ".tar.gz"))
3473 (sha256
3474 (base32 "18kndgvdj2apjpfga6fp7m16y1gx8zrwp3c5vfj03sx4v6jvciqk"))))
3475 (build-system haskell-build-system)
3476 (propagated-inputs `(("gnuplot" ,gnuplot)))
3477 (arguments
3478 `(#:phases (modify-phases %standard-phases
3479 (add-after 'unpack 'fix-setup-suffix
3480 (lambda _ (rename-file "Setup.lhs" "Setup.hs") #t)))))
3481 (home-page "https://hub.darcs.net/scravy/easyplot")
3482 (synopsis "Haskell plotting library based on gnuplot")
3483 (description "This package provides a plotting library for
3484Haskell, using gnuplot for rendering.")
3485 (license license:expat)))
3486
3487(define-public ghc-echo
3488 (package
3489 (name "ghc-echo")
3490 (version "0.1.3")
3491 (source
3492 (origin
3493 (method url-fetch)
3494 (uri (string-append
3495 "https://hackage.haskell.org/package/echo/echo-"
3496 version ".tar.gz"))
3497 (sha256
3498 (base32
3499 "1vw5ykpwhr39wc0hhcgq3r8dh59zq6ib4zxbz1qd2wl21wqhfkvh"))))
3500 (build-system haskell-build-system)
3501 (arguments
3502 `(#:cabal-revision
3503 ("1" "0br8wfiybcw5hand4imiw0i5hacdmrax1dv8g95f35gazffbx42l")))
3504 (home-page "https://github.com/RyanGlScott/echo")
3505 (synopsis "Echo terminal input portably")
3506 (description "The @code{base} library exposes the @code{hGetEcho} and
3507@code{hSetEcho} functions for querying and setting echo status, but
3508unfortunately, neither function works with MinTTY consoles on Windows.
3509This library provides an alternative interface which works with both
3510MinTTY and other consoles.")
3511 (license license:bsd-3)))
3512
3513(define-public ghc-edisonapi
3514 (package
3515 (name "ghc-edisonapi")
3516 (version "1.3.1")
3517 (source
3518 (origin
3519 (method url-fetch)
3520 (uri (string-append "https://hackage.haskell.org/package/EdisonAPI"
3521 "/EdisonAPI-" version ".tar.gz"))
3522 (sha256
3523 (base32 "0vmmlsj8ggbpwx6fkf5fvb6jp0zpx6iba6b28m80lllr2p8bi8wm"))))
3524 (build-system haskell-build-system)
3525 (home-page "http://rwd.rdockins.name/edison/home/")
3526 (synopsis "Library of efficient, purely-functional data structures (API)")
3527 (description
3528 "Edison is a library of purely functional data structures written by
3529Chris Okasaki. It is named after Thomas Alva Edison and for the mnemonic
3530value EDiSon (Efficient Data Structures). Edison provides several families of
3531abstractions, each with multiple implementations. The main abstractions
3532provided by Edison are: Sequences such as stacks, queues, and dequeues;
3533Collections such as sets, bags and heaps; and Associative Collections such as
3534finite maps and priority queues where the priority and element are distinct.")
3535 (license license:expat)))
3536
3537(define-public ghc-edisoncore
3538 (package
3539 (name "ghc-edisoncore")
3540 (version "1.3.2.1")
3541 (source
3542 (origin
3543 (method url-fetch)
3544 (uri (string-append "https://hackage.haskell.org/package/EdisonCore"
3545 "/EdisonCore-" version ".tar.gz"))
3546 (sha256
3547 (base32 "0fgj5iwiv3v2gdgx7kjcr15dcs4x1kvmjspp3p99wyhh0x6h3ikk"))))
3548 (build-system haskell-build-system)
3549 (inputs
3550 `(("ghc-quickcheck" ,ghc-quickcheck)
3551 ("ghc-edisonapi" ,ghc-edisonapi)))
3552 (home-page "http://rwd.rdockins.name/edison/home/")
3553 (synopsis "Library of efficient, purely-functional data structures")
3554 (description
3555 "This package provides the core Edison data structure implementations,
3556including multiple sequence, set, bag, and finite map concrete implementations
3557with various performance characteristics.")
3558 (license license:expat)))
3559
3560(define-public ghc-edit-distance
3561 (package
3562 (name "ghc-edit-distance")
3563 (version "0.2.2.1")
3564 (source
3565 (origin
3566 (method url-fetch)
3567 (uri (string-append "https://hackage.haskell.org/package/edit-distance"
3568 "/edit-distance-" version ".tar.gz"))
3569 (sha256
3570 (base32 "0jkca97zyv23yyilp3jydcrzxqhyk27swhzh82llvban5zp8b21y"))))
3571 (build-system haskell-build-system)
3572 (arguments
3573 `(#:phases
3574 (modify-phases %standard-phases
3575 (add-before 'configure 'update-constraints
3576 (lambda _
3577 (substitute* "edit-distance.cabal"
3578 (("QuickCheck >= 2\\.4 && <2\\.9")
d7d143e5 3579 "QuickCheck >= 2.4 && < 2.14")))))))
dddbc90c
RV
3580 (inputs
3581 `(("ghc-random" ,ghc-random)
3582 ("ghc-test-framework" ,ghc-test-framework)
3583 ("ghc-quickcheck" ,ghc-quickcheck)
3584 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
3585 (home-page "https://github.com/phadej/edit-distance")
3586 (synopsis "Levenshtein and restricted Damerau-Levenshtein edit distances")
3587 (description
3588 "This package provides optimized functions to determine the edit
3589distances for fuzzy matching, including Levenshtein and restricted
3590Damerau-Levenshtein algorithms.")
3591 (license license:bsd-3)))
3592
3ebae41f
TS
3593(define-public ghc-edit-distance-vector
3594 (package
3595 (name "ghc-edit-distance-vector")
3596 (version "1.0.0.4")
3597 (source
3598 (origin
3599 (method url-fetch)
3600 (uri (string-append "https://hackage.haskell.org/package/"
3601 "edit-distance-vector/edit-distance-vector-"
3602 version ".tar.gz"))
3603 (sha256
3604 (base32
3605 "07qgc8dyi9kkzkd3xcd78wdlljy0xwhz65b4r2qg2piidpcdvpxp"))))
3606 (build-system haskell-build-system)
3607 (inputs
3608 `(("ghc-vector" ,ghc-vector)))
3609 (native-inputs
3610 `(("ghc-quickcheck" ,ghc-quickcheck)
3611 ("ghc-quickcheck-instances" ,ghc-quickcheck-instances)))
3612 (home-page "https://github.com/thsutton/edit-distance-vector")
3613 (synopsis "Calculate edit distances and edit scripts between vectors")
3614 (description "This package provides implementation of the
3615Wagner-Fischer dynamic programming algorithm to find the optimal edit
3616script and cost between two sequences. The implementation in this
3617package is specialised to sequences represented with @code{Data.Vector}
3618but is otherwise agnostic to:
3619@itemize
3620@item The type of values in the vectors;
3621@item The type representing edit operations; and
3622@item The type representing the cost of operations.
3623@end itemize")
3624 (license license:bsd-3)) )
3625
dddbc90c
RV
3626(define-public ghc-either
3627 (package
3628 (name "ghc-either")
a3fd4dc7 3629 (version "5.0.1.1")
dddbc90c
RV
3630 (source
3631 (origin
3632 (method url-fetch)
3633 (uri (string-append "https://hackage.haskell.org/package/"
3634 "either-" version "/"
3635 "either-" version ".tar.gz"))
3636 (sha256
3637 (base32
a3fd4dc7 3638 "09yzki8ss56xhy9vggdw1rls86b2kf55hjl5wi0vbv02d8fxahq2"))))
dddbc90c
RV
3639 (build-system haskell-build-system)
3640 (inputs `(("ghc-bifunctors" ,ghc-bifunctors)
3641 ("ghc-exceptions" ,ghc-exceptions)
3642 ("ghc-free" ,ghc-free)
3643 ("ghc-monad-control" ,ghc-monad-control)
3644 ("ghc-manodrandom" ,ghc-monadrandom)
3645 ("ghc-mmorph" ,ghc-mmorph)
3646 ("ghc-profunctors" ,ghc-profunctors)
3647 ("ghc-semigroups" ,ghc-semigroups)
3648 ("ghc-semigroupoids" ,ghc-semigroupoids)
3649 ("ghc-transformers-base" ,ghc-transformers-base)))
3650 (native-inputs
3651 `(("ghc-quickcheck" ,ghc-quickcheck)
3652 ("ghc-test-framework" ,ghc-test-framework)
3653 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
3654 (home-page "https://github.com/ekmett/either")
3655 (synopsis "Provides an either monad transformer for Haskell")
3656 (description "This Haskell package provides an either monad transformer.")
3657 (license license:bsd-3)))
3658
3659(define-public ghc-email-validate
3660 (package
3661 (name "ghc-email-validate")
a4fe1c64 3662 (version "2.3.2.12")
dddbc90c
RV
3663 (source
3664 (origin
3665 (method url-fetch)
3666 (uri (string-append
3667 "https://hackage.haskell.org/package/"
3668 "email-validate/email-validate-"
3669 version
3670 ".tar.gz"))
3671 (sha256
3672 (base32
a4fe1c64 3673 "0ar3cfjia3x11chb7w60mi7hp5djanms883ddk875l6lifr2lyqf"))))
dddbc90c
RV
3674 (build-system haskell-build-system)
3675 (inputs
3676 `(("ghc-attoparsec" ,ghc-attoparsec)
3677 ("ghc-hspec" ,ghc-hspec)
3678 ("ghc-quickcheck" ,ghc-quickcheck)
3679 ("ghc-doctest" ,ghc-doctest)))
3680 (home-page
3681 "https://github.com/Porges/email-validate-hs")
3682 (synopsis "Email address validator for Haskell")
3683 (description
3684 "This Haskell package provides a validator that can validate an email
3685address string against RFC 5322.")
3686 (license license:bsd-3)))
3687
3688(define-public ghc-enclosed-exceptions
3689 (package
3690 (name "ghc-enclosed-exceptions")
3691 (version "1.0.3")
3692 (source (origin
3693 (method url-fetch)
3694 (uri (string-append "https://hackage.haskell.org/package/"
3695 "enclosed-exceptions/enclosed-exceptions-"
3696 version ".tar.gz"))
3697 (sha256
3698 (base32
3699 "1fghjj7nkiddrf03ks8brjpr5x25yi9fs7xg6adbi4mc2gqr6vdg"))))
3700 (build-system haskell-build-system)
3701 ;; FIXME: one of the tests blocks forever:
3702 ;; "thread blocked indefinitely in an MVar operation"
3703 (arguments '(#:tests? #f))
3704 (inputs
3705 `(("ghc-lifted-base" ,ghc-lifted-base)
3706 ("ghc-monad-control" ,ghc-monad-control)
3707 ("ghc-async" ,ghc-async)
3708 ("ghc-transformers-base" ,ghc-transformers-base)))
3709 (native-inputs
3710 `(("ghc-hspec" ,ghc-hspec)
3711 ("ghc-quickcheck" ,ghc-quickcheck)))
3712 (home-page "https://github.com/jcristovao/enclosed-exceptions")
3713 (synopsis "Catch all exceptions from within an enclosed computation")
3714 (description
3715 "This library implements a technique to catch all exceptions raised
3716within an enclosed computation, while remaining responsive to (external)
3717asynchronous exceptions.")
3718 (license license:expat)))
3719
3720(define-public ghc-equivalence
3721 (package
3722 (name "ghc-equivalence")
801cf5b1 3723 (version "0.3.5")
dddbc90c
RV
3724 (source
3725 (origin
3726 (method url-fetch)
3727 (uri (string-append "https://hackage.haskell.org/package/equivalence"
3728 "/equivalence-" version ".tar.gz"))
3729 (sha256
801cf5b1 3730 (base32 "167njzd1cf32aa7br90rjafrxy6hw3fxkk8awifqbxjrcwm5maqp"))))
dddbc90c
RV
3731 (build-system haskell-build-system)
3732 (inputs
3733 `(("ghc-stmonadtrans" ,ghc-stmonadtrans)
3734 ("ghc-transformers-compat" ,ghc-transformers-compat)
801cf5b1
TS
3735 ("ghc-fail" ,ghc-fail)
3736 ("ghc-quickcheck" ,ghc-quickcheck)))
dddbc90c
RV
3737 (home-page "https://github.com/pa-ba/equivalence")
3738 (synopsis "Maintaining an equivalence relation implemented as union-find")
3739 (description
3740 "This is an implementation of Tarjan's Union-Find algorithm (Robert E.@:
3741Tarjan. \"Efficiency of a Good But Not Linear Set Union Algorithm\",JACM
374222(2), 1975) in order to maintain an equivalence relation. This
3743implementation is a port of the @code{union-find} package using the @code{ST}
3744monad transformer (instead of the IO monad).")
3745 (license license:bsd-3)))
3746
3747(define-public ghc-erf
3748 (package
3749 (name "ghc-erf")
3750 (version "2.0.0.0")
3751 (source
3752 (origin
3753 (method url-fetch)
3754 (uri (string-append "https://hackage.haskell.org/package/"
3755 "erf-" version "/"
3756 "erf-" version ".tar.gz"))
3757 (sha256
3758 (base32
3759 "0dxk2r32ajmmc05vaxcp0yw6vgv4lkbmh8jcshncn98xgsfbgw14"))))
3760 (build-system haskell-build-system)
3761 (home-page "https://hackage.haskell.org/package/erf")
3762 (synopsis "The error function, erf, and related functions for Haskell")
3763 (description "This Haskell library provides a type class for the
3764error function, erf, and related functions. Instances for Float and
3765Double.")
3766 (license license:bsd-3)))
3767
3768(define-public ghc-errorcall-eq-instance
3769 (package
3770 (name "ghc-errorcall-eq-instance")
3771 (version "0.3.0")
3772 (source
3773 (origin
3774 (method url-fetch)
3775 (uri (string-append "https://hackage.haskell.org/package/"
3776 "errorcall-eq-instance/errorcall-eq-instance-"
3777 version ".tar.gz"))
3778 (sha256
3779 (base32
3780 "0hqw82m8bbrxy5vgdwb83bhzdx070ibqrm9rshyja7cb808ahijm"))))
3781 (build-system haskell-build-system)
3782 (inputs
3783 `(("ghc-base-orphans" ,ghc-base-orphans)))
3784 (native-inputs
3785 `(("ghc-quickcheck" ,ghc-quickcheck)
3786 ("ghc-hspec" ,ghc-hspec)
3787 ("hspec-discover" ,hspec-discover)))
3ef91e15 3788 (home-page "https://hackage.haskell.org/package/errorcall-eq-instance")
dddbc90c
RV
3789 (synopsis "Orphan Eq instance for ErrorCall")
3790 (description
3791 "Prior to @code{base-4.7.0.0} there was no @code{Eq} instance for @code{ErrorCall}.
3792This package provides an orphan instance.")
3793 (license license:expat)))
3794
3795(define-public ghc-errors
3796 (package
3797 (name "ghc-errors")
3798 (version "2.3.0")
3799 (source
3800 (origin
3801 (method url-fetch)
3802 (uri (string-append "https://hackage.haskell.org/package/"
3803 "errors-" version "/"
3804 "errors-" version ".tar.gz"))
3805 (sha256
3806 (base32
3807 "0x8znwn31qcx6kqx99wp7bc86kckfb39ncz3zxvj1s07kxlfawk7"))))
3808 (build-system haskell-build-system)
3809 (inputs
3810 `(("ghc-exceptions" ,ghc-exceptions)
3811 ("ghc-transformers-compat" ,ghc-transformers-compat)
3812 ("ghc-unexceptionalio" ,ghc-unexceptionalio)
3813 ("ghc-safe" ,ghc-safe)))
3814 (home-page "https://github.com/gabriel439/haskell-errors-library")
3815 (synopsis "Error handling library for Haskell")
3816 (description "This library encourages an error-handling style that
3817directly uses the type system, rather than out-of-band exceptions.")
3818 (license license:bsd-3)))
3819
3820(define-public ghc-esqueleto
2648b604
TS
3821 (package
3822 (name "ghc-esqueleto")
2f6ad77b 3823 (version "3.3.1.1")
2648b604
TS
3824 (source
3825 (origin
3826 (method url-fetch)
3827 (uri (string-append "https://hackage.haskell.org/package/"
3828 "esqueleto/esqueleto-" version ".tar.gz"))
3829 (sha256
3830 (base32
2f6ad77b 3831 "1qi28ma8j5kfygjxnixlazxsyrkdqv8ljz3icwqi5dlscsnj6v3v"))))
2648b604
TS
3832 (build-system haskell-build-system)
3833 (arguments
3834 `(#:haddock? #f ; Haddock reports an internal error.
3835 #:phases
3836 (modify-phases %standard-phases
3837 ;; This package normally runs tests for the MySQL, PostgreSQL, and
3838 ;; SQLite backends. Since we only have Haskell packages for
3839 ;; SQLite, we remove the other two test suites. FIXME: Add the
3840 ;; other backends and run all three test suites.
3841 (add-before 'configure 'remove-non-sqlite-test-suites
3842 (lambda _
3843 (use-modules (ice-9 rdelim))
3844 (with-atomic-file-replacement "esqueleto.cabal"
3845 (lambda (in out)
3846 (let loop ((line (read-line in 'concat)) (deleting? #f))
3847 (cond
3848 ((eof-object? line) #t)
3849 ((string-every char-set:whitespace line)
3850 (unless deleting? (display line out))
3851 (loop (read-line in 'concat) #f))
3852 ((member line '("test-suite mysql\n"
3853 "test-suite postgresql\n"))
3854 (loop (read-line in 'concat) #t))
3855 (else
3856 (unless deleting? (display line out))
3857 (loop (read-line in 'concat) deleting?)))))))))))
3858 (inputs
3859 `(("ghc-blaze-html" ,ghc-blaze-html)
3860 ("ghc-conduit" ,ghc-conduit)
3861 ("ghc-monad-logger" ,ghc-monad-logger)
3862 ("ghc-persistent" ,ghc-persistent)
3863 ("ghc-resourcet" ,ghc-resourcet)
3864 ("ghc-tagged" ,ghc-tagged)
3865 ("ghc-unliftio" ,ghc-unliftio)
3866 ("ghc-unordered-containers" ,ghc-unordered-containers)))
3867 (native-inputs
3868 `(("ghc-hspec" ,ghc-hspec)
3869 ("ghc-persistent-sqlite" ,ghc-persistent-sqlite)
3870 ("ghc-persistent-template" ,ghc-persistent-template)))
3871 (home-page "https://github.com/bitemyapp/esqueleto")
3872 (synopsis "Type-safe embedded domain specific language for SQL queries")
3873 (description "This library provides a type-safe embedded domain specific
dddbc90c
RV
3874language (EDSL) for SQL queries that works with SQL backends as provided by
3875@code{ghc-persistent}. Its language closely resembles SQL, so you don't have
3876to learn new concepts, just new syntax, and it's fairly easy to predict the
3877generated SQL and optimize it for your backend.")
2648b604 3878 (license license:bsd-3)))
dddbc90c
RV
3879
3880(define-public ghc-exactprint
3881 (package
3882 (name "ghc-exactprint")
50614014 3883 (version "0.6.1")
dddbc90c
RV
3884 (source
3885 (origin
3886 (method url-fetch)
3887 (uri (string-append
3888 "https://hackage.haskell.org/package/"
3889 "ghc-exactprint/ghc-exactprint-" version ".tar.gz"))
3890 (sha256
3891 (base32
50614014 3892 "12nqpqmi9c57a3hgpfy8q073zryz66ylmcvf29hyffpj7vmmnvhl"))))
dddbc90c
RV
3893 (build-system haskell-build-system)
3894 (inputs
3895 `(("ghc-paths" ,ghc-paths)
3896 ("ghc-syb" ,ghc-syb)
3897 ("ghc-free" ,ghc-free)))
3898 (native-inputs
3899 `(("ghc-hunit" ,ghc-hunit)
3900 ("ghc-diff" ,ghc-diff)
3901 ("ghc-silently" ,ghc-silently)
3902 ("ghc-filemanip" ,ghc-filemanip)))
3903 (home-page
3ef91e15 3904 "https://hackage.haskell.org/package/ghc-exactprint")
dddbc90c
RV
3905 (synopsis "ExactPrint for GHC")
3906 (description
3907 "Using the API Annotations available from GHC 7.10.2, this library
3908provides a means to round-trip any code that can be compiled by GHC, currently
3909excluding @file{.lhs} files.")
3910 (license license:bsd-3)))
3911
3912(define-public ghc-exceptions
3913 (package
3914 (name "ghc-exceptions")
46d3e65b 3915 (version "0.10.3")
dddbc90c
RV
3916 (source
3917 (origin
3918 (method url-fetch)
3919 (uri (string-append
3920 "https://hackage.haskell.org/package/exceptions/exceptions-"
3921 version
3922 ".tar.gz"))
3923 (sha256
3924 (base32
46d3e65b 3925 "1w25j4ys5s6v239vbqlbipm9fdwxl1j2ap2lzms7f7rgnik5ir24"))))
dddbc90c
RV
3926 (build-system haskell-build-system)
3927 (native-inputs
3928 `(("ghc-quickcheck" ,ghc-quickcheck)
3929 ("ghc-test-framework" ,ghc-test-framework)
3930 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
3931 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
3932 (inputs
3933 `(("ghc-transformers-compat" ,ghc-transformers-compat)))
3934 (home-page "https://github.com/ekmett/exceptions/")
3935 (synopsis "Extensible optionally-pure exceptions")
3936 (description "This library provides extensible optionally-pure exceptions
3937for Haskell.")
3938 (license license:bsd-3)))
3939
3940(define-public ghc-executable-path
3941 (package
3942 (name "ghc-executable-path")
3943 (version "0.0.3.1")
3944 (source (origin
3945 (method url-fetch)
3946 (uri (string-append "https://hackage.haskell.org/package/"
3947 "executable-path/executable-path-"
3948 version ".tar.gz"))
3949 (sha256
3950 (base32
3951 "0vxwmnsvx13cawcyhbyljkds0l1vr996ijldycx7nj0asjv45iww"))))
3952 (build-system haskell-build-system)
3953 (home-page "https://hackage.haskell.org/package/executable-path")
3954 (synopsis "Find out the full path of the executable")
3955 (description
3956 "The documentation of @code{System.Environment.getProgName} says that
3957\"However, this is hard-to-impossible to implement on some non-Unix OSes, so
3958instead, for maximum portability, we just return the leafname of the program
3959as invoked.\" This library tries to provide the missing path.")
3960 (license license:public-domain)))
3961
3962(define-public ghc-extensible-exceptions
3963 (package
3964 (name "ghc-extensible-exceptions")
3965 (version "0.1.1.4")
3966 (source
3967 (origin
3968 (method url-fetch)
3969 (uri (string-append "https://hackage.haskell.org/package/"
3970 "extensible-exceptions/extensible-exceptions-"
3971 version ".tar.gz"))
3972 (sha256
3973 (base32 "1273nqws9ij1rp1bsq5jc7k2jxpqa0svawdbim05lf302y0firbc"))))
3974 (build-system haskell-build-system)
3975 (home-page "https://hackage.haskell.org/package/extensible-exceptions")
3976 (synopsis "Extensible exceptions for Haskell")
3977 (description
3978 "This package provides extensible exceptions for both new and old
3979versions of GHC (i.e., < 6.10).")
3980 (license license:bsd-3)))
3981
3982(define-public ghc-extra
3983 (package
3984 (name "ghc-extra")
0cec5c4e 3985 (version "1.6.21")
dddbc90c
RV
3986 (source
3987 (origin
3988 (method url-fetch)
3989 (uri (string-append
3990 "https://hackage.haskell.org/package/extra/extra-"
3991 version
3992 ".tar.gz"))
3993 (sha256
3994 (base32
0cec5c4e 3995 "1gjx98w4w61g043k6rzc8i34cbxpcigi8lb6i7pp1vwp8w8jm5vl"))))
dddbc90c
RV
3996 (build-system haskell-build-system)
3997 (inputs
3998 `(("ghc-clock" ,ghc-clock)
10650c44 3999 ("ghc-semigroups" ,ghc-semigroups)
b431f6c9
ASM
4000 ("ghc-quickcheck" ,ghc-quickcheck)
4001 ("ghc-quickcheck-instances" ,ghc-quickcheck-instances)))
dddbc90c
RV
4002 (home-page "https://github.com/ndmitchell/extra")
4003 (synopsis "Extra Haskell functions")
4004 (description "This library provides extra functions for the standard
4005Haskell libraries. Most functions are simple additions, filling out missing
4006functionality. A few functions are available in later versions of GHC, but
4007this package makes them available back to GHC 7.2.")
4008 (license license:bsd-3)))
4009
4010(define-public ghc-fail
4011 (package
4012 (name "ghc-fail")
4013 (version "4.9.0.0")
4014 (source
4015 (origin
4016 (method url-fetch)
4017 (uri (string-append "https://hackage.haskell.org/package/fail/fail-"
4018 version ".tar.gz"))
4019 (sha256
4020 (base32 "18nlj6xvnggy61gwbyrpmvbdkq928wv0wx2zcsljb52kbhddnp3d"))))
4021 (build-system haskell-build-system)
4022 (arguments `(#:haddock? #f)) ; Package contains no documentation.
4023 (home-page "https://prime.haskell.org/wiki/Libraries/Proposals/MonadFail")
4024 (synopsis "Forward-compatible MonadFail class")
4025 (description
4026 "This package contains the @code{Control.Monad.Fail} module providing the
4027@uref{https://prime.haskell.org/wiki/Libraries/Proposals/MonadFail, MonadFail}
4028class that became available in
4029@uref{https://hackage.haskell.org/package/base-4.9.0.0, base-4.9.0.0} for
4030older @code{base} package versions. This package turns into an empty package
4031when used with GHC versions which already provide the
4032@code{Control.Monad.Fail} module.")
4033 (license license:bsd-3)))
4034
4035(define-public ghc-fast-logger
4036 (package
4037 (name "ghc-fast-logger")
d443a52a 4038 (version "2.4.17")
dddbc90c
RV
4039 (source
4040 (origin
4041 (method url-fetch)
4042 (uri (string-append
4043 "https://hackage.haskell.org/package/fast-logger/fast-logger-"
4044 version
4045 ".tar.gz"))
4046 (sha256
4047 (base32
d443a52a 4048 "02mxb1ckvx1s2r2m11l5i2l5rdl7232p0f61af6773haykjp0qxk"))))
dddbc90c
RV
4049 (build-system haskell-build-system)
4050 (inputs
4051 `(("ghc-auto-update" ,ghc-auto-update)
4052 ("ghc-easy-file" ,ghc-easy-file)
d443a52a
TS
4053 ("ghc-unix-time" ,ghc-unix-time)
4054 ("ghc-unix-compat" ,ghc-unix-compat)))
dddbc90c
RV
4055 (native-inputs
4056 `(("hspec-discover" ,hspec-discover)
4057 ("ghc-hspec" ,ghc-hspec)))
4058 (home-page "https://hackage.haskell.org/package/fast-logger")
4059 (synopsis "Fast logging system")
4060 (description "This library provides a fast logging system for Haskell.")
4061 (license license:bsd-3)))
4062
4063(define-public ghc-feed
4064 (package
4065 (name "ghc-feed")
a41c16dc 4066 (version "1.2.0.1")
dddbc90c
RV
4067 (source
4068 (origin
4069 (method url-fetch)
4070 (uri (string-append "https://hackage.haskell.org/package/"
4071 "feed/feed-" version ".tar.gz"))
4072 (sha256
4073 (base32
a41c16dc 4074 "004lwdng4slj6yl8mgscr3cgj0zzc8hzkf4450dby2l6cardg4w0"))))
dddbc90c 4075 (build-system haskell-build-system)
dddbc90c
RV
4076 (inputs
4077 `(("ghc-base-compat" ,ghc-base-compat)
4078 ("ghc-old-locale" ,ghc-old-locale)
4079 ("ghc-old-time" ,ghc-old-time)
4080 ("ghc-safe" ,ghc-safe)
4081 ("ghc-time-locale-compat" ,ghc-time-locale-compat)
4082 ("ghc-utf8-string" ,ghc-utf8-string)
4083 ("ghc-xml-conduit" ,ghc-xml-conduit)
4084 ("ghc-xml-types" ,ghc-xml-types)))
4085 (native-inputs
4086 `(("ghc-hunit" ,ghc-hunit)
a41c16dc 4087 ("ghc-markdown-unlit" ,ghc-markdown-unlit)
dddbc90c
RV
4088 ("ghc-test-framework" ,ghc-test-framework)
4089 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)))
4090 (home-page "https://github.com/bergmark/feed")
4091 (synopsis "Haskell package for handling various syndication formats")
4092 (description "This Haskell package includes tools for generating and
4093consuming feeds in both RSS (Really Simple Syndication) and Atom format.")
4094 (license license:bsd-3)))
4095
4096(define-public ghc-fgl
4097 (package
4098 (name "ghc-fgl")
17482b26 4099 (version "5.7.0.1")
534d6caa 4100 (outputs '("out" "static" "doc"))
dddbc90c
RV
4101 (source
4102 (origin
4103 (method url-fetch)
4104 (uri (string-append
4105 "https://hackage.haskell.org/package/fgl/fgl-"
4106 version
4107 ".tar.gz"))
4108 (sha256
4109 (base32
17482b26 4110 "04793yh778ck3kz1z2svnfdwwls2kisbnky4lzvf4zjfgpv7mkpz"))))
dddbc90c
RV
4111 (build-system haskell-build-system)
4112 (arguments
4113 `(#:phases
4114 (modify-phases %standard-phases
4115 (add-before 'configure 'update-constraints
4116 (lambda _
4117 (substitute* "fgl.cabal"
17482b26
TS
4118 (("QuickCheck >= 2\\.8 && < 2\\.13")
4119 "QuickCheck >= 2.8 && < 2.14")
4120 (("hspec >= 2\\.1 && < 2\\.7")
4121 "hspec >= 2.1 && < 2.8")))))))
dddbc90c
RV
4122 (inputs
4123 `(("ghc-hspec" ,ghc-hspec)
4124 ("ghc-quickcheck" ,ghc-quickcheck)))
4125 (home-page "https://web.engr.oregonstate.edu/~erwig/fgl/haskell")
4126 (synopsis
4127 "Martin Erwig's Functional Graph Library")
4128 (description "The functional graph library, FGL, is a collection of type
4129and function definitions to address graph problems. The basis of the library
4130is an inductive definition of graphs in the style of algebraic data types that
4131encourages inductive, recursive definitions of graph algorithms.")
4132 (license license:bsd-3)))
4133
4134(define-public ghc-fgl-arbitrary
4135 (package
4136 (name "ghc-fgl-arbitrary")
4137 (version "0.2.0.3")
4138 (source
4139 (origin
4140 (method url-fetch)
4141 (uri (string-append
4142 "https://hackage.haskell.org/package/fgl-arbitrary/fgl-arbitrary-"
4143 version ".tar.gz"))
4144 (sha256
4145 (base32
4146 "0ln1szgfy8fa78l3issq4fx3aqnnd54w3cb4wssrfi48vd5rkfjm"))))
4147 (build-system haskell-build-system)
4148 (arguments
4149 `(#:phases
4150 (modify-phases %standard-phases
4151 (add-before 'configure 'update-constraints
4152 (lambda _
4153 (substitute* "fgl-arbitrary.cabal"
4154 (("QuickCheck >= 2\\.3 && < 2\\.10")
4a0ffae5 4155 "QuickCheck >= 2.3 && < 2.14")
dddbc90c 4156 (("hspec >= 2\\.1 && < 2\\.5")
4a0ffae5 4157 "hspec >= 2.1 && < 2.8")))))))
dddbc90c
RV
4158 (inputs
4159 `(("ghc-fgl" ,ghc-fgl)
4160 ("ghc-quickcheck" ,ghc-quickcheck)
4161 ("ghc-hspec" ,ghc-hspec)))
4162 (home-page "https://hackage.haskell.org/package/fgl-arbitrary")
4163 (synopsis "QuickCheck support for fgl")
4164 (description
4165 "Provides Arbitrary instances for fgl graphs to avoid adding a
4166QuickCheck dependency for fgl whilst still making the instances
4167available to others. Also available are non-fgl-specific functions
4168for generating graph-like data structures.")
4169 (license license:bsd-3)))
4170
4171(define-public ghc-file-embed
4172 (package
4173 (name "ghc-file-embed")
b5920d50 4174 (version "0.0.11")
dddbc90c
RV
4175 (source
4176 (origin
4177 (method url-fetch)
4178 (uri (string-append "https://hackage.haskell.org/package/file-embed/"
4179 "file-embed-" version ".tar.gz"))
4180 (sha256
4181 (base32
b5920d50 4182 "0l6dkwccbzzyx8rcav03lya2334dgi3vfwk96h7l93l0fc4x19gf"))))
dddbc90c
RV
4183 (build-system haskell-build-system)
4184 (home-page "https://github.com/snoyberg/file-embed")
4185 (synopsis "Use Template Haskell to embed file contents directly")
4186 (description
4187 "This package allows you to use Template Haskell to read a file or all
4188the files in a directory, and turn them into @code{(path, bytestring)} pairs
4189embedded in your Haskell code.")
4190 (license license:bsd-3)))
4191
4192(define-public ghc-filemanip
4193 (package
4194 (name "ghc-filemanip")
4195 (version "0.3.6.3")
4196 (source (origin
4197 (method url-fetch)
4198 (uri (string-append "https://hackage.haskell.org/package/"
4199 "filemanip/filemanip-" version ".tar.gz"))
4200 (sha256
4201 (base32
4202 "0ilqr8jv41zxcj5qyicg29m8s30b9v70x6f9h2h2rw5ap8bxldl8"))))
4203 (build-system haskell-build-system)
4204 (inputs
4205 `(("ghc-unix-compat" ,ghc-unix-compat)))
4206 (home-page "https://github.com/bos/filemanip")
4207 (synopsis "File and directory manipulation for Haskell")
4208 (description
4209 "This package provides a Haskell library for working with files and
4210directories. It includes code for pattern matching, finding files, modifying
4211file contents, and more.")
4212 (license license:bsd-3)))
4213
bb62932a
KM
4214(define-public ghc-filepath-bytestring
4215 (package
4216 (name "ghc-filepath-bytestring")
4217 (version "1.4.2.1.1")
4218 (source
4219 (origin
4220 (method url-fetch)
4221 (uri (string-append
4222 "https://hackage.haskell.org/package/filepath-bytestring/"
4223 "filepath-bytestring-" version ".tar.gz"))
4224 (sha256
4225 (base32
4226 "06shdskjj391hb9295slm9gg2rbn5fdq5v6fg0mgn3yl5dv8q5dx"))))
4227 (build-system haskell-build-system)
4228 (native-inputs
4229 `(("ghc-quickcheck" ,ghc-quickcheck)))
3ef91e15 4230 (home-page "https://hackage.haskell.org/package/filepath-bytestring")
bb62932a
KM
4231 (synopsis "Library for manipulating RawFilePaths in a cross-platform way")
4232 (description "This package provides a drop-in replacement for the standard
4233@code{filepath} library, operating on @code{RawFilePath} values rather than
4234@code{FilePath} values to get the speed benefits of using @code{ByteStrings}.")
4235 (license license:bsd-3)))
4236
dddbc90c
RV
4237(define-public ghc-findbin
4238 (package
4239 (name "ghc-findbin")
4240 (version "0.0.5")
4241 (source
4242 (origin
4243 (method url-fetch)
4244 (uri (string-append
4245 "https://hackage.haskell.org/package/FindBin/FindBin-"
4246 version ".tar.gz"))
4247 (sha256
4248 (base32
4249 "197xvn05yysmibm1p5wzxfa256lvpbknr5d1l2ws6g40w1kpk717"))))
4250 (build-system haskell-build-system)
4251 (home-page "https://github.com/audreyt/findbin")
4252 (synopsis "Get the absolute path of the running program")
4253 (description
4254 "This module locates the full directory of the running program, to allow
4255the use of paths relative to it. FindBin supports invocation of Haskell
4256programs via \"ghci\", via \"runhaskell/runghc\", as well as compiled as
4257an executable.")
4258 (license license:bsd-3)))
4259
4260(define-public ghc-fingertree
4261 (package
4262 (name "ghc-fingertree")
aac14fdc 4263 (version "0.1.4.2")
dddbc90c
RV
4264 (source
4265 (origin
4266 (method url-fetch)
4267 (uri (string-append
4268 "https://hackage.haskell.org/package/fingertree/fingertree-"
4269 version ".tar.gz"))
4270 (sha256
4271 (base32
aac14fdc 4272 "0zvandj8fysck7ygpn0dw5bhrhmj1s63i326nalxbfkh2ls4iacm"))))
dddbc90c
RV
4273 (build-system haskell-build-system)
4274 (native-inputs
4275 `(("ghc-hunit" ,ghc-hunit)
4276 ("ghc-quickcheck" ,ghc-quickcheck)
4277 ("ghc-test-framework" ,ghc-test-framework)
4278 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
4279 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
4280 (home-page "https://hackage.haskell.org/package/fingertree")
4281 (synopsis "Generic finger-tree structure")
4282 (description "This library provides finger trees, a general sequence
4283representation with arbitrary annotations, for use as a base for
4284implementations of various collection types. It includes examples, as
4285described in section 4 of Ralf Hinze and Ross Paterson, \"Finger trees: a
4286simple general-purpose data structure\".")
4287 (license license:bsd-3)))
4288
4289(define-public ghc-fixed
4290 (package
4291 (name "ghc-fixed")
099dda5b 4292 (version "0.3")
dddbc90c
RV
4293 (source
4294 (origin
4295 (method url-fetch)
4296 (uri (string-append "https://hackage.haskell.org/package/fixed/fixed-"
4297 version ".tar.gz"))
4298 (sha256
4299 (base32
099dda5b 4300 "10l2sh179xarb774q92cff2gkb20rsrlilfwp1fk61rzmz9yn64j"))))
dddbc90c
RV
4301 (build-system haskell-build-system)
4302 (home-page "https://github.com/ekmett/fixed")
4303 (synopsis "Signed 15.16 precision fixed point arithmetic")
4304 (description
4305 "This package provides functions for signed 15.16 precision fixed point
4306arithmetic.")
4307 (license license:bsd-3)))
4308
f169f713
JS
4309(define-public ghc-fmlist
4310 (package
4311 (name "ghc-fmlist")
fe9b83a6 4312 (version "0.9.3")
f169f713
JS
4313 (source
4314 (origin
4315 (method url-fetch)
4316 (uri
4317 (string-append
4318 "https://hackage.haskell.org/package/fmlist/fmlist-"
4319 version ".tar.gz"))
4320 (sha256
4321 (base32
fe9b83a6 4322 "1w9nhm2zybdx4c1lalkajwqr8wcs731lfjld2r8gknd7y96x8pwf"))))
f169f713
JS
4323 (build-system haskell-build-system)
4324 (home-page "https://github.com/sjoerdvisscher/fmlist")
4325 (synopsis "FoldMap lists")
4326 (description "FoldMap lists are lists represented by their
4327@code{foldMap} function. FoldMap lists have @math{O(1)} cons, snoc and
4328append, just like DLists, but other operations might have favorable
4329performance characteristics as well. These wild claims are still
4330completely unverified though.")
4331 (license license:bsd-3)))
4332
dddbc90c
RV
4333(define-public ghc-foldl
4334 (package
4335 (name "ghc-foldl")
26c4104f 4336 (version "1.4.5")
dddbc90c
RV
4337 (source
4338 (origin
4339 (method url-fetch)
4340 (uri (string-append "https://hackage.haskell.org/package/"
4341 "foldl-" version "/"
4342 "foldl-" version ".tar.gz"))
4343 (sha256
4344 (base32
26c4104f 4345 "19qjmzc7gaxfwgqbgy0kq4vhbxvh3qjnwsxnc7pzwws2if5bv80b"))))
dddbc90c 4346 (build-system haskell-build-system)
b3c79a83 4347 (outputs '("out" "static" "doc"))
dddbc90c
RV
4348 (inputs `(("ghc-mwc-randam" ,ghc-mwc-random)
4349 ("ghc-primitive" ,ghc-primitive)
4350 ("ghc-vector" ,ghc-vector)
4351 ("ghc-unordered-containers" ,ghc-unordered-containers)
4352 ("ghc-hashable" ,ghc-hashable)
4353 ("ghc-contravariant" ,ghc-contravariant)
4354 ("ghc-semigroups" ,ghc-semigroups)
4355 ("ghc-profunctors" ,ghc-profunctors)
4356 ("ghc-semigroupoids" ,ghc-semigroupoids)
4357 ("ghc-comonad" ,ghc-comonad)
4358 ("ghc-vector-builder" ,ghc-vector-builder)))
4359 (home-page "https://github.com/Gabriel439/Haskell-Foldl-Library")
4360 (synopsis "Composable, streaming, and efficient left folds for Haskell")
4361 (description "This Haskell library provides strict left folds that stream
4362in constant memory, and you can combine folds using @code{Applicative} style
4363to derive new folds. Derived folds still traverse the container just once
4364and are often as efficient as hand-written folds.")
4365 (license license:bsd-3)))
4366
4367(define-public ghc-foundation
4368 (package
4369 (name "ghc-foundation")
0a702df9 4370 (version "0.0.25")
dddbc90c
RV
4371 (source
4372 (origin
4373 (method url-fetch)
4374 (uri (string-append "https://hackage.haskell.org/package/"
4375 "foundation/foundation-" version ".tar.gz"))
4376 (sha256
4377 (base32
0a702df9 4378 "0q6kx57ygmznlpf8n499hid4x6mj3180paijx0a8dgi9hh7man61"))))
dddbc90c 4379 (build-system haskell-build-system)
59cd7518
TS
4380 (arguments
4381 `(#:phases
4382 (modify-phases %standard-phases
4383 ;; This test is broken. For details, see
4384 ;; https://github.com/haskell-foundation/foundation/issues/530
4385 (add-after 'unpack 'patch-tests
4386 (lambda _
4387 (substitute* "tests/Test/Foundation/Number.hs"
4388 ((", testDividible proxy") ""))
4389 #t)))))
6a7fb828 4390 (outputs '("out" "static" "doc"))
dddbc90c
RV
4391 (inputs `(("ghc-basement" ,ghc-basement)))
4392 (home-page "https://github.com/haskell-foundation/foundation")
4393 (synopsis "Alternative prelude with batteries and no dependencies")
4394 (description
4395 "This package provides a custom prelude with no dependencies apart from
4396the base package.
4397
4398Foundation has the following goals:
4399
4400@enumerate
4401@item provide a base like sets of modules that provide a consistent set of
4402 features and bugfixes across multiple versions of GHC (unlike base).
4403@item provide a better and more efficient prelude than base's prelude.
4404@item be self-sufficient: no external dependencies apart from base;
4405@item provide better data-types: packed unicode string by default, arrays;
4406@item Numerical classes that better represent mathematical things (no more
4407 all-in-one @code{Num});
4408@item I/O system with less lazy IO.
4409@end enumerate\n")
4410 (license license:bsd-3)))
4411
4412(define-public ghc-free
4413 (package
4414 (name "ghc-free")
4081565d 4415 (version "5.1.2")
dddbc90c
RV
4416 (source
4417 (origin
4418 (method url-fetch)
4419 (uri (string-append
4420 "https://hackage.haskell.org/package/free/free-"
4421 version
4422 ".tar.gz"))
4423 (sha256
4424 (base32
4081565d 4425 "0vlf3f2ckl3cr7z2zl8c9c8qkdlfgvmh04gxkp2fg0z9dz80nlyb"))))
dddbc90c 4426 (build-system haskell-build-system)
91769cee 4427 (outputs '("out" "static" "doc"))
dddbc90c
RV
4428 (inputs
4429 `(("ghc-prelude-extras" ,ghc-prelude-extras)
4430 ("ghc-profunctors" ,ghc-profunctors)
4431 ("ghc-exceptions" ,ghc-exceptions)
4432 ("ghc-bifunctors" ,ghc-bifunctors)
4433 ("ghc-comonad" ,ghc-comonad)
4434 ("ghc-distributive" ,ghc-distributive)
4435 ("ghc-semigroupoids" ,ghc-semigroupoids)
4436 ("ghc-semigroups" ,ghc-semigroups)
4437 ("ghc-transformers-base" ,ghc-transformers-base)
4438 ("ghc-transformers-compat" ,ghc-transformers-compat)))
4439 (home-page "https://github.com/ekmett/free/")
4440 (synopsis "Unrestricted monads for Haskell")
4441 (description "This library provides free monads, which are useful for many
4442tree-like structures and domain specific languages. If @code{f} is a
4443@code{Functor} then the free @code{Monad} on @code{f} is the type of trees
4444whose nodes are labeled with the constructors of @code{f}. The word \"free\"
4445is used in the sense of \"unrestricted\" rather than \"zero-cost\": @code{Free
4446f} makes no constraining assumptions beyond those given by @code{f} and the
4447definition of @code{Monad}.")
4448 (license license:bsd-3)))
4449
4450(define-public ghc-fsnotify
4451 (package
4452 (name "ghc-fsnotify")
4453 (version "0.3.0.1")
4454 (source (origin
4455 (method url-fetch)
4456 (uri (string-append
4457 "https://hackage.haskell.org/package/fsnotify/"
4458 "fsnotify-" version ".tar.gz"))
4459 (sha256
4460 (base32
4461 "19bdbz9wb9jvln6yg6qm0hz0w84bypvkxf0wjhgrgd52f9gidlny"))))
4462 (build-system haskell-build-system)
4463 (inputs
4464 `(("ghc-async" ,ghc-async)
4465 ("ghc-unix-compat" ,ghc-unix-compat)
4466 ("ghc-hinotify" ,ghc-hinotify)
4467 ("ghc-tasty" ,ghc-tasty)
4468 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
4469 ("ghc-random" ,ghc-random)
4470 ("ghc-shelly" ,ghc-shelly)
4471 ("ghc-temporary" ,ghc-temporary)))
4472 (home-page "https://github.com/haskell-fswatch/hfsnotify")
4473 (synopsis "Cross platform library for file change notification.")
4474 (description "Cross platform library for file creation, modification, and
4475deletion notification. This library builds upon existing libraries for platform
4476specific Windows, Mac, and Linux file system event notification.")
4477 (license license:bsd-3)))
4478
4479(define-public ghc-generic-deriving
4480 (package
4481 (name "ghc-generic-deriving")
55c1e6be 4482 (version "1.12.4")
dddbc90c
RV
4483 (source
4484 (origin
4485 (method url-fetch)
4486 (uri (string-append
4487 "https://hackage.haskell.org/package/generic-deriving/generic-deriving-"
4488 version
4489 ".tar.gz"))
4490 (sha256
4491 (base32
55c1e6be 4492 "0vdg9qdq35jl3m11a87wk8cq1y71qm4i1g1b2pxki0wk70yw20a4"))))
dddbc90c 4493 (build-system haskell-build-system)
32bb6b41 4494 (outputs '("out" "static" "doc"))
dddbc90c
RV
4495 (inputs
4496 `(("ghc-th-abstraction" ,ghc-th-abstraction)))
4497 (native-inputs
4498 `(("ghc-hspec" ,ghc-hspec)
4499 ("hspec-discover" ,hspec-discover)))
4500 (home-page "https://hackage.haskell.org/package/generic-deriving")
4501 (synopsis "Generalise the deriving mechanism to arbitrary classes")
4502 (description "This package provides functionality for generalising the
4503deriving mechanism in Haskell to arbitrary classes.")
4504 (license license:bsd-3)))
4505
89e9082e
JS
4506(define-public ghc-generic-random
4507 (package
4508 (name "ghc-generic-random")
4509 (version "1.2.0.0")
4510 (source
4511 (origin
4512 (method url-fetch)
4513 (uri (string-append
4514 "https://hackage.haskell.org/package/generic-random/"
4515 "generic-random-" version ".tar.gz"))
4516 (sha256
4517 (base32 "130lmblycxnpqbsl7vf6a90zccibnvcb5zaclfajcn3by39007lv"))))
4518 (build-system haskell-build-system)
4519 (inputs `(("ghc-quickcheck" ,ghc-quickcheck)))
4520 (native-inputs
4521 `(("ghc-inspection-testing" ,ghc-inspection-testing)))
4522 (arguments
4523 `(#:cabal-revision
4524 ("1" "1d0hx41r7yq2a86ydnfh2fv540ah8cz05l071s2z4wxcjw0ymyn4")))
4525 (home-page
4526 "https://github.com/lysxia/generic-random")
4527 (synopsis
4528 "Generic random generators for QuickCheck")
4529 (description
4530 "Derive instances of @code{Arbitrary} for QuickCheck, with various options
4531to customize implementations.
4532
4533Automating the arbitrary boilerplate also ensures that when a type changes to
4534have more or fewer constructors, then the generator either fixes itself to
4535generate that new case (when using the uniform distribution) or causes a
4536compilation error so you remember to fix it (when using an explicit
4537distribution).
4538
4539This package also offers a simple (optional) strategy to ensure termination
4540for recursive types: make @code{Test.QuickCheck.Gen}'s size parameter decrease
4541at every recursive call; when it reaches zero, sample directly from a
4542trivially terminating generator given explicitly (@code{genericArbitraryRec}
4543and @code{withBaseCase}) or implicitly (@code{genericArbitrary'}).")
4544 (license license:expat)))
4545
23e4b264
JS
4546(define-public ghc-generic-random-1.3.0.1
4547 (package
4548 (inherit ghc-generic-random)
4549 (version "1.3.0.1")
4550 (source
4551 (origin
4552 (method url-fetch)
4553 (uri (string-append
4554 "https://hackage.haskell.org/package/generic-random/"
4555 "generic-random-" version ".tar.gz"))
4556 (sha256
4557 (base32 "0d9w7xcmsb31b95fr9d5jwbsajcl1yi4347dlbw4bybil2vjwd7k"))))
4558 (arguments '())))
4559
dddbc90c
RV
4560(define-public ghc-generics-sop
4561 (package
4562 (name "ghc-generics-sop")
3ed40e10 4563 (version "0.4.0.1")
dddbc90c
RV
4564 (source
4565 (origin
4566 (method url-fetch)
4567 (uri (string-append "https://hackage.haskell.org/package/"
4568 "generics-sop-" version "/"
4569 "generics-sop-" version ".tar.gz"))
4570 (sha256
4571 (base32
3ed40e10 4572 "160knr2phnzh2gldfv954lz029jzc7y8kz5xpmbf4z3vb5ngm6fw"))))
dddbc90c 4573 (build-system haskell-build-system)
80e0a085 4574 (outputs '("out" "static" "doc"))
3ed40e10
TS
4575 (inputs
4576 `(("ghc-sop-core" ,ghc-sop-core)
4577 ("ghc-transformers-compat" ,ghc-transformers-compat)))
dddbc90c
RV
4578 (home-page "https://github.com/well-typed/generics-sop")
4579 (synopsis "Generic Programming using True Sums of Products for Haskell")
4580 (description "This Haskell package supports the definition of generic
4581functions. Datatypes are viewed in a uniform, structured way: the choice
4582between constructors is represented using an n-ary sum, and the arguments of
4583each constructor are represented using an n-ary product.")
4584 (license license:bsd-3)))
4585
4586(define-public ghc-geniplate-mirror
4587 (package
4588 (name "ghc-geniplate-mirror")
4589 (version "0.7.6")
4590 (source
4591 (origin
4592 (method url-fetch)
4593 (uri (string-append "https://hackage.haskell.org/package"
4594 "/geniplate-mirror"
4595 "/geniplate-mirror-" version ".tar.gz"))
4596 (sha256
4597 (base32 "1y0m0bw5zpm1y1y6d9qmxj3swl8j8hlw1shxbr5awycf6k884ssb"))))
4598 (build-system haskell-build-system)
74a7dd7f
TS
4599 (arguments
4600 `(#:cabal-revision
4601 ("2" "03fg4vfm1wgq4mylggawdx0bfvbbjmdn700sqx7v3hk1bx0kjfzh")))
dddbc90c
RV
4602 (home-page "https://github.com/danr/geniplate")
4603 (synopsis "Use Template Haskell to generate Uniplate-like functions")
4604 (description
4605 "Use Template Haskell to generate Uniplate-like functions. This is a
4606maintained mirror of the @uref{https://hackage.haskell.org/package/geniplate,
4607geniplate} package, written by Lennart Augustsson.")
4608 (license license:bsd-3)))
4609
4610(define-public ghc-genvalidity
4611 (package
4612 (name "ghc-genvalidity")
920f44a1 4613 (version "0.8.0.0")
dddbc90c
RV
4614 (source
4615 (origin
4616 (method url-fetch)
4617 (uri (string-append
4618 "https://hackage.haskell.org/package/genvalidity/genvalidity-"
4619 version
4620 ".tar.gz"))
4621 (sha256
4622 (base32
920f44a1 4623 "0w38aq9hfyymidncgkrs6yvja7j573d9sap5qfg5rz910fhsij9a"))))
dddbc90c
RV
4624 (build-system haskell-build-system)
4625 (inputs
4626 `(("ghc-quickcheck" ,ghc-quickcheck)
4627 ("ghc-validity" ,ghc-validity)))
4628 (native-inputs
4629 `(("ghc-hspec" ,ghc-hspec)
4630 ("hspec-discover" ,hspec-discover)
4631 ("ghc-hspec-core" ,ghc-hspec-core)))
4632 (home-page
4633 "https://github.com/NorfairKing/validity")
4634 (synopsis
4635 "Testing utilities for the @code{validity} library")
4636 (description
4637 "This package provides testing utilities that are useful in conjunction
4638with the @code{Validity} typeclass.")
4639 (license license:expat)))
4640
4641(define-public ghc-genvalidity-property
4642 (package
4643 (name "ghc-genvalidity-property")
e4ede35b 4644 (version "0.4.0.0")
dddbc90c
RV
4645 (source
4646 (origin
4647 (method url-fetch)
4648 (uri (string-append
4649 "https://hackage.haskell.org/package/"
4650 "genvalidity-property/genvalidity-property-"
4651 version
4652 ".tar.gz"))
4653 (sha256
4654 (base32
e4ede35b 4655 "0zayycx62226w54rvkxwhvqhznsr33dk3ds55yyqrfqbnhvph1s9"))))
dddbc90c
RV
4656 (build-system haskell-build-system)
4657 (inputs
4658 `(("ghc-quickcheck" ,ghc-quickcheck)
4659 ("ghc-genvalidity" ,ghc-genvalidity)
4660 ("ghc-hspec" ,ghc-hspec)
4661 ("hspec-discover" ,hspec-discover)
4662 ("ghc-validity" ,ghc-validity)))
4663 (native-inputs `(("ghc-doctest" ,ghc-doctest)))
4664 (home-page
4665 "https://github.com/NorfairKing/validity")
4666 (synopsis
4667 "Standard properties for functions on @code{Validity} types")
4668 (description
4669 "This package supplements the @code{Validity} typeclass with standard
4670properties for functions operating on them.")
4671 (license license:expat)))
4672
e71fb573
TS
4673(define-public ghc-getopt-generics
4674 (package
4675 (name "ghc-getopt-generics")
4676 (version "0.13.0.4")
4677 (source
4678 (origin
4679 (method url-fetch)
4680 (uri (string-append "https://hackage.haskell.org/package/"
4681 "getopt-generics/getopt-generics-"
4682 version ".tar.gz"))
4683 (sha256
4684 (base32
4685 "1rszkcn1rg38wf35538ljk5bbqjc57y9sb3a0al7qxm82gy8yigr"))))
4686 (build-system haskell-build-system)
4687 (inputs
4688 `(("ghc-base-compat" ,ghc-base-compat)
4689 ("ghc-base-orphans" ,ghc-base-orphans)
4690 ("ghc-generics-sop" ,ghc-generics-sop)
4691 ("ghc-tagged" ,ghc-tagged)))
4692 (native-inputs
4693 `(("ghc-quickcheck" ,ghc-quickcheck)
4694 ("ghc-hspec" ,ghc-hspec)
4695 ("ghc-safe" ,ghc-safe)
4696 ("ghc-silently" ,ghc-silently)
4697 ("hspec-discover" ,hspec-discover)))
4698 (home-page "https://github.com/soenkehahn/getopt-generics")
4699 (synopsis "Create command line interfaces with ease")
4700 (description "This library provides tools to create command line
4701interfaces with ease.")
4702 (license license:bsd-3)))
4703
dddbc90c
RV
4704(define-public ghc-gitrev
4705 (package
4706 (name "ghc-gitrev")
4707 (version "1.3.1")
4708 (source
4709 (origin
4710 (method url-fetch)
4711 (uri (string-append "https://hackage.haskell.org/package/gitrev/gitrev-"
4712 version ".tar.gz"))
4713 (sha256
4714 (base32 "0cl3lfm6k1h8fxp2vxa6ihfp4v8igkz9h35iwyq2frzm4kdn96d8"))))
4715 (build-system haskell-build-system)
4716 (inputs `(("ghc-base-compat" ,ghc-base-compat)))
4717 (home-page "https://github.com/acfoltzer/gitrev")
4718 (synopsis "Compile git revision info into Haskell projects")
4719 (description
4720 "This package provides some handy Template Haskell splices for including
4721the current git hash and branch in the code of your project. This is useful
4722for including in panic messages, @command{--version} output, or diagnostic
4723info for more informative bug reports.")
4724 (license license:bsd-3)))
4725
4726(define-public ghc-glob
4727 (package
4728 (name "ghc-glob")
b900f486 4729 (version "0.10.0")
dddbc90c
RV
4730 (source
4731 (origin
4732 (method url-fetch)
4733 (uri (string-append "https://hackage.haskell.org/package/"
4734 "Glob-" version "/"
4735 "Glob-" version ".tar.gz"))
4736 (sha256
4737 (base32
b900f486 4738 "0953f91f62ncna402vsrfzdcyxhdpjna3bgdw017kad0dfymacs7"))))
dddbc90c
RV
4739 (build-system haskell-build-system)
4740 (inputs
4741 `(("ghc-dlist" ,ghc-dlist)
4742 ("ghc-semigroups" ,ghc-semigroups)
4743 ("ghc-transformers-compat" ,ghc-transformers-compat)))
4744 (native-inputs
4745 `(("ghc-hunit" ,ghc-hunit)
4746 ("ghc-quickcheck" ,ghc-quickcheck)
4747 ("ghc-test-framework" ,ghc-test-framework)
4748 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
4749 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
4750 (home-page "http://iki.fi/matti.niemenmaa/glob/")
4751 (synopsis "Haskell library matching glob patterns against file paths")
4752 (description "This package provides a Haskell library for @dfn{globbing}:
4753matching patterns against file paths.")
4754 (license license:bsd-3)))
4755
4756(define-public ghc-gluraw
4757 (package
4758 (name "ghc-gluraw")
4759 (version "2.0.0.4")
4760 (source
4761 (origin
4762 (method url-fetch)
4763 (uri (string-append
4764 "https://hackage.haskell.org/package/GLURaw/GLURaw-"
4765 version
4766 ".tar.gz"))
4767 (sha256
4768 (base32
4769 "1i2xi35n5z0d372px9mh6cyhgg1m0cfaiy3fnspkf6kbn9fgsqxq"))))
4770 (build-system haskell-build-system)
4771 (inputs
4772 `(("ghc-openglraw" ,ghc-openglraw)))
228d2901 4773 (home-page "https://wiki.haskell.org/Opengl")
dddbc90c
RV
4774 (synopsis "Raw Haskell bindings GLU")
4775 (description "GLURaw is a raw Haskell binding for the GLU 1.3 OpenGL
4776utility library. It is basically a 1:1 mapping of GLU's C API, intended as a
4777basis for a nicer interface.")
4778 (license license:bsd-3)))
4779
4780(define-public ghc-glut
4781 (package
4782 (name "ghc-glut")
8284bd09 4783 (version "2.7.0.15")
dddbc90c
RV
4784 (source
4785 (origin
4786 (method url-fetch)
4787 (uri (string-append
4788 "https://hackage.haskell.org/package/GLUT/GLUT-"
4789 version
4790 ".tar.gz"))
4791 (sha256
4792 (base32
8284bd09 4793 "0271vnf6wllhxjwy0m348x90kv27aybxcbqkkglmd5w4cpwjg5g9"))))
dddbc90c
RV
4794 (build-system haskell-build-system)
4795 (inputs
4796 `(("ghc-statevar" ,ghc-statevar)
4797 ("ghc-opengl" ,ghc-opengl)
4798 ("ghc-openglraw" ,ghc-openglraw)
4799 ("freeglut" ,freeglut)))
228d2901 4800 (home-page "https://wiki.haskell.org/Opengl")
dddbc90c
RV
4801 (synopsis "Haskell bindings for the OpenGL Utility Toolkit")
4802 (description "This library provides Haskell bindings for the OpenGL
4803Utility Toolkit, a window system-independent toolkit for writing OpenGL
4804programs.")
4805 (license license:bsd-3)))
4806
4807(define-public ghc-gnuplot
4808 (package
4809 (name "ghc-gnuplot")
d34860c7 4810 (version "0.5.6")
dddbc90c
RV
4811 (source
4812 (origin
4813 (method url-fetch)
4814 (uri (string-append
4815 "mirror://hackage/package/gnuplot/gnuplot-"
4816 version ".tar.gz"))
4817 (sha256
d34860c7 4818 (base32 "1g6xgnlkh17avivn1rlq7l2nvs26dvrbx4rkfld0bf6kyqaqwrgp"))))
dddbc90c
RV
4819 (build-system haskell-build-system)
4820 (inputs
4821 `(("ghc-temporary" ,ghc-temporary)
4822 ("ghc-utility-ht" ,ghc-utility-ht)
4823 ("ghc-data-accessor-transformers" ,ghc-data-accessor-transformers)
4824 ("ghc-data-accessor" ,ghc-data-accessor)
4825 ("ghc-semigroups" ,ghc-semigroups)
4826 ("gnuplot" ,gnuplot)))
4827 (arguments
4828 `(#:phases
4829 (modify-phases %standard-phases
4830 (add-before 'configure 'fix-path-to-gnuplot
4831 (lambda* (#:key inputs #:allow-other-keys)
4832 (let ((gnuplot (assoc-ref inputs "gnuplot")))
4833 (substitute* "os/generic/Graphics/Gnuplot/Private/OS.hs"
4834 (("(gnuplotName = ).*$" all cmd)
4835 (string-append cmd "\"" gnuplot "/bin/gnuplot\"")))))))))
228d2901 4836 (home-page "https://wiki.haskell.org/Gnuplot")
dddbc90c
RV
4837 (synopsis "2D and 3D plots using gnuplot")
4838 (description "This package provides a Haskell module for creating 2D and
48393D plots using gnuplot.")
4840 (license license:bsd-3)))
4841
4842(define-public ghc-graphviz
4843 (package
4844 (name "ghc-graphviz")
c264bd42 4845 (version "2999.20.0.3")
dddbc90c
RV
4846 (source (origin
4847 (method url-fetch)
4848 (uri (string-append "https://hackage.haskell.org/package/"
4849 "graphviz/graphviz-" version ".tar.gz"))
4850 (sha256
4851 (base32
c264bd42 4852 "04k26zw61nfv1pkd00iaq89pgsaiym0sf4cbzkmm2k2fj5xa587g"))))
dddbc90c 4853 (build-system haskell-build-system)
c264bd42
TS
4854 (arguments
4855 `(#:phases
4856 (modify-phases %standard-phases
4857 (add-before 'configure 'update-constraints
4858 (lambda _
4859 (substitute* "graphviz.cabal"
4860 (("QuickCheck >= 2\\.3 && < 2\\.13")
4861 "QuickCheck >= 2.3 && < 2.14")
4862 (("hspec >= 2\\.1 && < 2\\.7")
4863 "hspec >= 2.1 && < 2.8")))))))
dddbc90c
RV
4864 (inputs
4865 `(("ghc-quickcheck" ,ghc-quickcheck)
4866 ("ghc-colour" ,ghc-colour)
4867 ("ghc-dlist" ,ghc-dlist)
4868 ("ghc-fgl" ,ghc-fgl)
4869 ("ghc-fgl-arbitrary" ,ghc-fgl-arbitrary)
4870 ("ghc-polyparse" ,ghc-polyparse)
4871 ("ghc-temporary" ,ghc-temporary)
4872 ("ghc-wl-pprint-text" ,ghc-wl-pprint-text)))
4873 (native-inputs
4874 `(("ghc-hspec" ,ghc-hspec)
4875 ("graphviz" ,graphviz)
4876 ("hspec-discover" ,hspec-discover)))
4877 (home-page "https://hackage.haskell.org/package/graphviz")
4878 (synopsis "Bindings to Graphviz for graph visualisation")
4879 (description
4880 "This library provides bindings for the Dot language used by
4881the @uref{https://graphviz.org/, Graphviz} suite of programs for
4882visualising graphs, as well as functions to call those programs.
4883Main features of the graphviz library include:
4884
4885@enumerate
4886@item Almost complete coverage of all Graphviz attributes and syntax
4887@item Support for specifying clusters
4888@item The ability to use a custom node type
4889@item Functions for running a Graphviz layout tool with all specified output types
4890@item Generate and parse Dot code with two options: strict and liberal
4891@item Functions to convert FGL graphs and other graph-like data structures
4892@item Round-trip support for passing an FGL graph through Graphviz to augment node
4893and edge labels with positional information, etc.
4894@end enumerate\n")
4895 (license license:bsd-3)))
4896
f3e18645
TS
4897(define-public ghc-groups
4898 (package
4899 (name "ghc-groups")
4900 (version "0.4.1.0")
4901 (source
4902 (origin
4903 (method url-fetch)
4904 (uri (string-append "https://hackage.haskell.org/package/"
4905 "groups/groups-" version ".tar.gz"))
4906 (sha256
4907 (base32
4908 "0ggkygkyxw5ga4cza82bjvdraavl294k0h6b62d2px7z3nvqhifx"))))
4909 (build-system haskell-build-system)
4910 (home-page "https://hackage.haskell.org/package/groups")
4911 (synopsis "Haskell 98 groups")
4912 (description "This package provides Haskell 98 groups. A group is a
4913monoid with invertibility.")
4914 (license license:bsd-3)))
4915
dddbc90c
RV
4916(define-public ghc-gtk2hs-buildtools
4917 (package
4918 (name "ghc-gtk2hs-buildtools")
b79b43d4 4919 (version "0.13.5.4")
dddbc90c
RV
4920 (source
4921 (origin
4922 (method url-fetch)
4923 (uri (string-append "https://hackage.haskell.org/package/"
4924 "gtk2hs-buildtools/gtk2hs-buildtools-"
4925 version ".tar.gz"))
4926 (sha256
4927 (base32
b79b43d4 4928 "1flxsacxwmabzzalhn8558kmj95z01c0lmikrn56nxh7p62nxm25"))))
dddbc90c
RV
4929 (build-system haskell-build-system)
4930 (inputs
4931 `(("ghc-random" ,ghc-random)
4932 ("ghc-hashtables" ,ghc-hashtables)))
4933 (native-inputs
4934 `(("ghc-alex" ,ghc-alex)
4935 ("ghc-happy" ,ghc-happy)))
4936 (home-page "http://projects.haskell.org/gtk2hs/")
4937 (synopsis "Tools to build the Gtk2Hs suite of user interface libraries")
4938 (description
4939 "This package provides a set of helper programs necessary to build the
4940Gtk2Hs suite of libraries. These tools include a modified c2hs binding tool
4941that is used to generate FFI declarations, a tool to build a type hierarchy
4942that mirrors the C type hierarchy of GObjects found in glib, and a generator
4943for signal declarations that are used to call back from C to Haskell. These
4944tools are not needed to actually run Gtk2Hs programs.")
4945 (license license:gpl2)))
4946
4947(define-public ghc-hackage-security
4948 (package
4949 (name "ghc-hackage-security")
4950 (version "0.5.3.0")
4951 (source
4952 (origin
4953 (method url-fetch)
4954 (uri (string-append "https://hackage.haskell.org/package/"
4955 "hackage-security/hackage-security-"
4956 version ".tar.gz"))
4957 (sha256
4958 (base32
4959 "08bwawc7ramgdh54vcly2m9pvfchp0ahhs8117jajni6x4bnx66v"))))
4960 (build-system haskell-build-system)
4961 (arguments
034380f3
TS
4962 `(#:cabal-revision
4963 ("6" "1xs2nkzlvkdz8g27yzfxbjdbdadfmgiydnlpn5dm77cg18r495ay")
4964 #:tests? #f)) ; Tests fail because of framework updates.
dddbc90c
RV
4965 (inputs
4966 `(("ghc-base16-bytestring" ,ghc-base16-bytestring)
4967 ("ghc-base64-bytestring" ,ghc-base64-bytestring)
4968 ("ghc-cryptohash-sha256" ,ghc-cryptohash-sha256)
4969 ("ghc-ed25519" ,ghc-ed25519)
4970 ("ghc-network" ,ghc-network)
4971 ("ghc-network-uri" ,ghc-network-uri)
4972 ("ghc-tar" ,ghc-tar)
4973 ("ghc-zlib" ,ghc-zlib)))
4974 (native-inputs
4975 `(("ghc-network-uri" ,ghc-network-uri)
4976 ("ghc-quickcheck" ,ghc-quickcheck)
4977 ("ghc-tar" ,ghc-tar)
4978 ("ghc-tasty" ,ghc-tasty)
4979 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
4980 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
4981 ("ghc-temporary" ,ghc-temporary)
4982 ("ghc-zlib" ,ghc-zlib)))
4983 (home-page "https://github.com/haskell/hackage-security")
4984 (synopsis "Hackage security library")
4985 (description "This Hackage security library provides both server and
4986client utilities for securing @uref{http://hackage.haskell.org/, the
4987Hackage package server}. It is based on
4988@uref{http://theupdateframework.com/, The Update Framework}, a set of
4989recommendations developed by security researchers at various universities
4990in the US as well as developers on the @uref{https://www.torproject.org/,
4991Tor project}.")
4992 (license license:bsd-3)))
4993
4994(define-public ghc-haddock
4995 (package
4996 (name "ghc-haddock")
b0d34d23 4997 (version "2.22.0")
dddbc90c
RV
4998 (source
4999 (origin
5000 (method url-fetch)
5001 (uri (string-append
5002 "https://hackage.haskell.org/package/haddock/haddock-"
5003 version
5004 ".tar.gz"))
5005 (sha256
5006 (base32
b0d34d23 5007 "1k42z2zh550rl93c8pa9cg2xsanp6wvb031xvan6cmngnplmdib6"))))
dddbc90c
RV
5008 (build-system haskell-build-system)
5009 (arguments
5010 `(#:phases
5011 (modify-phases %standard-phases
b0d34d23
TS
5012 ;; The release tarball for 2.22.0 is missing the test data for
5013 ;; the Hoogle test, causing it to fail. This is fixed in the
5014 ;; next release, but for now we disable it.
5015 (add-before 'configure 'remove-hoogle-test
dddbc90c
RV
5016 (lambda _
5017 (use-modules (ice-9 rdelim))
5018 (with-atomic-file-replacement "haddock.cabal"
5019 (lambda (in out)
5020 (let loop ((line (read-line in 'concat)) (deleting? #f))
5021 (cond
5022 ((eof-object? line) #t)
5023 ((string-every char-set:whitespace line)
5024 (unless deleting? (display line out))
5025 (loop (read-line in 'concat) #f))
b0d34d23 5026 ((string=? line "test-suite hoogle-test\n")
dddbc90c
RV
5027 (loop (read-line in 'concat) #t))
5028 (else
5029 (unless deleting? (display line out))
b0d34d23
TS
5030 (loop (read-line in 'concat) deleting?))))))))
5031 (add-before 'check 'add-haddock-to-path
5032 (lambda _
5033 (setenv "PATH" (string-append (getcwd) "/dist/build/haddock"
5034 ":" (getenv "PATH")))
5035 #t)))))
dddbc90c
RV
5036 (inputs `(("ghc-haddock-api" ,ghc-haddock-api)))
5037 (native-inputs
b0d34d23
TS
5038 `(("ghc-haddock-test" ,ghc-haddock-test)
5039 ("ghc-hspec" ,ghc-hspec)))
dddbc90c
RV
5040 (home-page "https://www.haskell.org/haddock/")
5041 (synopsis
5042 "Documentation-generation tool for Haskell libraries")
5043 (description
5044 "Haddock is a documentation-generation tool for Haskell libraries.")
5045 (license license:bsd-3)))
5046
5047(define-public ghc-haddock-api
5048 (package
5049 (name "ghc-haddock-api")
1b84d8ef 5050 (version "2.22.0")
dddbc90c
RV
5051 (source
5052 (origin
5053 (method url-fetch)
5054 (uri (string-append
5055 "https://hackage.haskell.org/package/haddock-api/haddock-api-"
5056 version
5057 ".tar.gz"))
1b84d8ef 5058 (patches (search-patches "ghc-haddock-api-fix-haddock.patch"))
dddbc90c
RV
5059 (sha256
5060 (base32
1b84d8ef 5061 "149q4zlf4m7wcrr4af2n2flh0jxjsypshbc229vsj1m0kmz4z014"))))
dddbc90c
RV
5062 (build-system haskell-build-system)
5063 (arguments
5064 `(#:phases
5065 (modify-phases %standard-phases
5066 (add-before 'configure 'update-constraints
5067 (lambda _
5068 (substitute* "haddock-api.cabal"
1b84d8ef
TS
5069 (("QuickCheck \\^>= 2\\.11")
5070 "QuickCheck ^>= 2.13")
5071 (("hspec >= 2\\.4\\.4 && < 2\\.6")
5072 "hspec >= 2.4.4 && < 2.8")))))))
dddbc90c
RV
5073 (inputs
5074 `(("ghc-paths" ,ghc-paths)
5075 ("ghc-haddock-library" ,ghc-haddock-library)))
5076 (native-inputs
5077 `(("ghc-quickcheck" ,ghc-quickcheck)
5078 ("ghc-hspec" ,ghc-hspec)
5079 ("hspec-discover" ,hspec-discover)))
5080 (home-page "https://www.haskell.org/haddock/")
5081 (synopsis "API for documentation-generation tool Haddock")
5082 (description "This package provides an API to Haddock, the
5083documentation-generation tool for Haskell libraries.")
5084 (license license:bsd-3)))
5085
5086(define-public ghc-haddock-library
5087 (package
5088 (name "ghc-haddock-library")
10707d57 5089 (version "1.7.0")
dddbc90c
RV
5090 (source
5091 (origin
5092 (method url-fetch)
5093 (uri (string-append
5094 "https://hackage.haskell.org/package/haddock-library/haddock-library-"
5095 version
5096 ".tar.gz"))
5097 (sha256
5098 (base32
10707d57 5099 "04fhcjk0pvsaqvsgp2w06cv2qvshq1xs1bwc157q4lmkgr57khp7"))))
dddbc90c
RV
5100 (build-system haskell-build-system)
5101 (arguments
5102 `(#:phases
5103 (modify-phases %standard-phases
10707d57
TS
5104 ;; Since there is no revised Cabal file upstream, we have to
5105 ;; patch it manually.
dddbc90c
RV
5106 (add-before 'configure 'relax-test-suite-dependencies
5107 (lambda _
5108 (substitute* "haddock-library.cabal"
10707d57
TS
5109 (("hspec\\s*>= 2.4.4 && < 2.6") "hspec")
5110 (("QuickCheck\\s*\\^>= 2.11") "QuickCheck"))
dddbc90c
RV
5111 #t)))))
5112 (native-inputs
5113 `(("ghc-base-compat" ,ghc-base-compat)
5114 ("ghc-hspec" ,ghc-hspec)
5115 ("ghc-optparse-applicative" ,ghc-optparse-applicative)
5116 ("ghc-quickcheck" ,ghc-quickcheck)
5117 ("ghc-tree-diff" ,ghc-tree-diff)
5118 ("hspec-discover" ,hspec-discover)))
5119 (home-page "https://www.haskell.org/haddock/")
5120 (synopsis "Library exposing some functionality of Haddock")
5121 (description
5122 "Haddock is a documentation-generation tool for Haskell libraries. These
5123modules expose some functionality of it without pulling in the GHC dependency.
5124Please note that the API is likely to change so specify upper bounds in your
5125project if you can't release often. For interacting with Haddock itself, see
5126the ‘haddock’ package.")
5127 (license license:bsd-3)))
5128
b0d34d23
TS
5129;; This package is needed for testing 'ghc-haddock'. It is no longer
5130;; published to Hackage, but it is maintained in the Haddock Git
5131;; repository.
5132(define ghc-haddock-test
5133 (package
5134 (name "ghc-haddock-test")
5135 (version "2.22.0")
5136 (source
5137 (origin
5138 (method git-fetch)
5139 (uri (git-reference
b0e7b699 5140 (url "https://github.com/haskell/haddock")
b0d34d23
TS
5141 (commit (string-append "haddock-" version "-release"))))
5142 (file-name (git-file-name name version))
5143 (sha256
5144 (base32
5145 "1ywxmqqan10gs0ppybdmdgsmvkzkpw7yirj2rw4qylg3x49a9zca"))))
5146 (build-system haskell-build-system)
5147 (arguments
5148 `(#:phases
5149 (modify-phases %standard-phases
5150 (add-after 'unpack 'change-directory
5151 (lambda _
5152 (chdir "haddock-test"))))))
5153 (inputs
5154 `(("ghc-syb" ,ghc-syb)
5155 ("ghc-xml" ,ghc-xml)))
228d2901 5156 (home-page "https://www.haskell.org/haddock/")
b0d34d23
TS
5157 (synopsis "Test utilities for Haddock")
5158 (description "This package provides test utilities for Haddock.")
5159 (license license:bsd-3)
5160 (properties '((hidden? #t)))))
5161
dddbc90c
RV
5162(define-public ghc-half
5163 (package
5164 (name "ghc-half")
5165 (version "0.3")
5166 (source
5167 (origin
5168 (method url-fetch)
5169 (uri (string-append
5170 "https://hackage.haskell.org/package/half/half-"
5171 version ".tar.gz"))
5172 (sha256
5173 (base32
5174 "14r0nx8hm5fic9gz0ybjjw4kyc758zfgvhhwvzsshpx5caq6zch6"))))
5175 (build-system haskell-build-system)
5176 (native-inputs
5177 `(("ghc-hspec" ,ghc-hspec)
5178 ("ghc-quickcheck" ,ghc-quickcheck)))
5179 (home-page "https://github.com/ekmett/half")
5180 (synopsis "Half-precision floating-point computations")
5181 (description "This library provides a half-precision floating-point
5182computation library for Haskell.")
5183 (license license:bsd-3)))
5184
5185(define-public ghc-happy
5186 (package
5187 (name "ghc-happy")
90e7b0e4 5188 (version "1.19.12")
dddbc90c
RV
5189 (source
5190 (origin
5191 (method url-fetch)
5192 (uri (string-append
5193 "https://hackage.haskell.org/package/happy/happy-"
5194 version
5195 ".tar.gz"))
5196 (sha256
5197 (base32
90e7b0e4 5198 "03xlmq6qmdx4zvzw8bp33kd9g7yvcq5cz4wg50xilw812kj276pv"))))
dddbc90c
RV
5199 (build-system haskell-build-system)
5200 (arguments
5201 `(#:phases
5202 (modify-phases %standard-phases
5203 (add-after 'unpack 'skip-test-issue93
5204 (lambda _
5205 ;; Tests run out of memory on a system with 2GB of available RAM,
5206 ;; in 'issue93.a.hs' and 'issue93.n.hs'.
5207 (substitute* "tests/Makefile"
5208 ((" issue93.y ") " "))
5209 #t)))))
5210 (home-page "https://hackage.haskell.org/package/happy")
5211 (synopsis "Parser generator for Haskell")
5212 (description "Happy is a parser generator for Haskell. Given a grammar
5213specification in BNF, Happy generates Haskell code to parse the grammar.
5214Happy works in a similar way to the yacc tool for C.")
5215 (license license:bsd-3)))
5216
5217(define-public ghc-hashable
5218 (package
5219 (name "ghc-hashable")
5220 (version "1.2.7.0")
534d6caa 5221 (outputs '("out" "static" "doc"))
dddbc90c
RV
5222 (source
5223 (origin
5224 (method url-fetch)
5225 (uri (string-append
5226 "https://hackage.haskell.org/package/hashable/hashable-"
5227 version
5228 ".tar.gz"))
5229 (sha256
5230 (base32
5231 "1gra8gq3kb7b2sd845h55yxlrfqx3ii004c6vjhga8v0b30fzdgc"))))
5232 (build-system haskell-build-system)
65a16a45
TS
5233 (arguments
5234 `(#:cabal-revision
5235 ("1" "197063dpl0wn67dp7a06yc2hxp81n24ykk7klbjx0fndm5n87dh3")))
dddbc90c
RV
5236 (inputs
5237 `(("ghc-random" ,ghc-random)))
5238 (native-inputs
5239 `(("ghc-test-framework" ,ghc-test-framework)
5240 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
5241 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)
5242 ("ghc-hunit" ,ghc-hunit)
5243 ("ghc-quickcheck" ,ghc-quickcheck)))
5244 (home-page "https://github.com/tibbe/hashable")
5245 (synopsis "Class for types that can be converted to a hash value")
5246 (description
5247 "This package defines a class, @code{Hashable}, for types that can be
5248converted to a hash value. This class exists for the benefit of hashing-based
5249data structures. The package provides instances for basic types and a way to
5250combine hash values.")
5251 (license license:bsd-3)))
5252
5253(define-public ghc-hashable-bootstrap
5254 (package
5255 (inherit ghc-hashable)
5256 (name "ghc-hashable-bootstrap")
65a16a45
TS
5257 (arguments
5258 `(#:tests? #f
5259 ,@(package-arguments ghc-hashable)))
dddbc90c
RV
5260 (native-inputs '())
5261 (properties '((hidden? #t)))))
5262
5263(define-public ghc-hashable-time
5264 (package
5265 (name "ghc-hashable-time")
f5051e31 5266 (version "0.2.0.2")
dddbc90c
RV
5267 (source
5268 (origin
5269 (method url-fetch)
5270 (uri (string-append
5271 "https://hackage.haskell.org/package/hashable-time/hashable-time-"
5272 version
5273 ".tar.gz"))
5274 (sha256
5275 (base32
f5051e31 5276 "1q7y4plqqwy5286hhx2fygn12h8lqk0y047b597sbdckskxzfqgs"))))
dddbc90c
RV
5277 (build-system haskell-build-system)
5278 (arguments
5279 `(#:cabal-revision
f5051e31 5280 ("2" "006phc5y9rrvsshdcmjmhxzxh8dpgs685mpqbkjm9c40xb1ydjbz")))
dddbc90c 5281 (inputs `(("ghc-hashable" ,ghc-hashable)))
3b02036e 5282 (home-page "https://hackage.haskell.org/package/hashable-time")
dddbc90c
RV
5283 (synopsis "Hashable instances for Data.Time")
5284 (description
5285 "This package provides @code{Hashable} instances for types in
5286@code{Data.Time}.")
5287 (license license:bsd-3)))
5288
5289(define-public ghc-hashtables
5290 (package
5291 (name "ghc-hashtables")
19edf0d0 5292 (version "1.2.3.4")
dddbc90c
RV
5293 (source
5294 (origin
5295 (method url-fetch)
5296 (uri (string-append
5297 "https://hackage.haskell.org/package/hashtables/hashtables-"
5298 version ".tar.gz"))
5299 (sha256
19edf0d0 5300 (base32 "1rjmxnr30g4hygiywkpz5p9sanh0abs7ap4zc1kgd8zv04kycp0j"))))
dddbc90c
RV
5301 (build-system haskell-build-system)
5302 (inputs
5303 `(("ghc-hashable" ,ghc-hashable)
5304 ("ghc-primitive" ,ghc-primitive)
5305 ("ghc-vector" ,ghc-vector)))
5306 (home-page "https://github.com/gregorycollins/hashtables")
5307 (synopsis "Haskell Mutable hash tables in the ST monad")
5308 (description "This package provides a Haskell library including a
5309couple of different implementations of mutable hash tables in the ST
5310monad, as well as a typeclass abstracting their common operations, and
5311a set of wrappers to use the hash tables in the IO monad.")
5312 (license license:bsd-3)))
5313
dd26713e
JS
5314(define-public ghc-haskeline-0.8
5315 (package
5316 (name "ghc-haskeline")
5317 (version "0.8.0.0")
5318 (source
5319 (origin
5320 (method url-fetch)
5321 (uri (string-append
5322 "https://hackage.haskell.org/package/haskeline/haskeline-"
5323 version
5324 ".tar.gz"))
5325 (sha256
5326 (base32
5327 "0gqsa5s0drim9m42hv4wrq61mnvcdylxysfxfw3acncwilfrn9pb"))))
5328 (build-system haskell-build-system)
5329 (inputs `(("ghc-exceptions" ,ghc-exceptions)))
5330 (native-inputs `(("ghc-hunit" ,ghc-hunit)))
5331 ;; FIXME: Tests failing
5332 (arguments `(#:tests? #f))
5333 (home-page "https://github.com/judah/haskeline")
5334 (synopsis
5335 "Command-line interface for user input, written in Haskell")
5336 (description
5337 "Haskeline provides a user interface for line input in command-line
5338programs. This library is similar in purpose to readline, but since it is
5339written in Haskell it is (hopefully) more easily used in other Haskell
5340programs.
5341
5342Haskeline runs both on POSIX-compatible systems and on Windows.")
5343 (license license:bsd-3)))
5344
dddbc90c
RV
5345(define-public ghc-haskell-lexer
5346 (package
5347 (name "ghc-haskell-lexer")
5348 (version "1.0.2")
5349 (source
5350 (origin
5351 (method url-fetch)
5352 (uri (string-append
5353 "https://hackage.haskell.org/package/haskell-lexer/haskell-lexer-"
5354 version ".tar.gz"))
5355 (sha256
5356 (base32 "1wyxd8x33x4v5vxyzkhm610pl86gbkc8y439092fr1735q9g7kfq"))))
5357 (build-system haskell-build-system)
3ef91e15 5358 (home-page "https://hackage.haskell.org/package/haskell-lexer")
dddbc90c
RV
5359 (synopsis "Fully compliant Haskell 98 lexer")
5360 (description
5361 "This package provides a fully compliant Haskell 98 lexer.")
5362 (license license:bsd-3)))
5363
5364(define-public ghc-haskell-src
5365 (package
5366 (name "ghc-haskell-src")
5367 (version "1.0.3.0")
5368 (source
5369 (origin
5370 (method url-fetch)
5371 (uri (string-append
5372 "https://hackage.haskell.org/package/haskell-src/haskell-src-"
5373 version
5374 ".tar.gz"))
5375 (sha256
5376 (base32
5377 "1g4dj1f0j68bhn4ixfac63wjzy6gsp6kwgxryb1k5nl3i0g99d5l"))))
5378 (build-system haskell-build-system)
5379 (inputs
5380 `(("ghc-happy" ,ghc-happy)
5381 ("ghc-syb" ,ghc-syb)))
5382 (home-page
5383 "https://hackage.haskell.org/package/haskell-src")
5384 (synopsis
5385 "Support for manipulating Haskell source code")
5386 (description
5387 "The @code{haskell-src} package provides support for manipulating Haskell
5388source code. The package provides a lexer, parser and pretty-printer, and a
5389definition of a Haskell abstract syntax tree (AST). Common uses of this
5390package are to parse or generate Haskell 98 code.")
5391 (license license:bsd-3)))
5392
5393(define-public ghc-haskell-src-exts
5394 (package
5395 (name "ghc-haskell-src-exts")
37a05591 5396 (version "1.21.1")
dddbc90c
RV
5397 (source
5398 (origin
5399 (method url-fetch)
5400 (uri (string-append
5401 "https://hackage.haskell.org/package/haskell-src-exts/haskell-src-exts-"
5402 version
5403 ".tar.gz"))
5404 (sha256
5405 (base32
37a05591 5406 "0q1y8n3d82gid9bcx8wxsqqmj9mq11fg3gp5yzpfbw958dhi3j9f"))))
dddbc90c 5407 (build-system haskell-build-system)
cad59e53 5408 (outputs '("out" "static" "doc"))
dddbc90c
RV
5409 (inputs
5410 `(("cpphs" ,cpphs)
5411 ("ghc-happy" ,ghc-happy)
5412 ("ghc-pretty-show" ,ghc-pretty-show)))
5413 (native-inputs
5414 `(("ghc-smallcheck" ,ghc-smallcheck)
5415 ("ghc-tasty" ,ghc-tasty)
5416 ("ghc-tasty-smallcheck" ,ghc-tasty-smallcheck)
5417 ("ghc-tasty-golden" ,ghc-tasty-golden)))
5418 (home-page "https://github.com/haskell-suite/haskell-src-exts")
5419 (synopsis "Library for manipulating Haskell source")
5420 (description "Haskell-Source with Extensions (HSE, haskell-src-exts) is an
5421extension of the standard @code{haskell-src} package, and handles most
5422registered syntactic extensions to Haskell. All extensions implemented in GHC
5423are supported. Apart from these standard extensions, it also handles regular
5424patterns as per the HaRP extension as well as HSX-style embedded XML syntax.")
5425 (license license:bsd-3)))
5426
5427(define-public ghc-haskell-src-exts-util
5428 (package
5429 (name "ghc-haskell-src-exts-util")
77355bdf 5430 (version "0.2.5")
dddbc90c
RV
5431 (source
5432 (origin
5433 (method url-fetch)
5434 (uri (string-append "https://hackage.haskell.org/package/"
5435 "haskell-src-exts-util/haskell-src-exts-util-"
5436 version ".tar.gz"))
5437 (sha256
5438 (base32
77355bdf 5439 "0fvqi72m74p7q5sbpy8m2chm8a1lgy10mfrcxcz8wrh59vngj0n8"))))
dddbc90c
RV
5440 (build-system haskell-build-system)
5441 (inputs
5442 `(("ghc-data-default" ,ghc-data-default)
5443 ("ghc-haskell-src-exts" ,ghc-haskell-src-exts)
5444 ("ghc-semigroups" ,ghc-semigroups)
5445 ("ghc-uniplate" ,ghc-uniplate)))
5446 (home-page "https://github.com/pepeiborra/haskell-src-exts-util")
5447 (synopsis "Helper functions for working with haskell-src-exts trees")
5448 (description
5449 "This package provides helper functions for working with
5450@code{haskell-src-exts} trees.")
5451 (license license:bsd-3)))
5452
5453(define-public ghc-haskell-src-meta
5454 (package
5455 (name "ghc-haskell-src-meta")
e94b3c72 5456 (version "0.8.3")
dddbc90c
RV
5457 (source (origin
5458 (method url-fetch)
5459 (uri (string-append "https://hackage.haskell.org/package/"
5460 "haskell-src-meta/haskell-src-meta-"
5461 version ".tar.gz"))
5462 (sha256
5463 (base32
e94b3c72 5464 "17znnaqj2hnnfyc9p9xjzbs97h2jh1h4f4qbw648y3xa14wx5ra9"))))
dddbc90c
RV
5465 (build-system haskell-build-system)
5466 (inputs
5467 `(("ghc-haskell-src-exts" ,ghc-haskell-src-exts)
5468 ("ghc-syb" ,ghc-syb)
5469 ("ghc-th-orphans" ,ghc-th-orphans)))
5470 (native-inputs
5471 `(("ghc-hunit" ,ghc-hunit)
e94b3c72
TS
5472 ("ghc-tasty" ,ghc-tasty)
5473 ("ghc-tasty-hunit" ,ghc-tasty-hunit)))
dddbc90c
RV
5474 (home-page "https://hackage.haskell.org/package/haskell-src-meta")
5475 (synopsis "Parse source to template-haskell abstract syntax")
5476 (description
5477 "This package provides tools to parse Haskell sources to the
5478template-haskell abstract syntax.")
5479 (license license:bsd-3)))
5480
5481(define-public ghc-hasktags
5482 (package
5483 (name "ghc-hasktags")
5484 (version "0.71.2")
5485 (source
5486 (origin
5487 (method url-fetch)
5488 (uri (string-append
5489 "https://hackage.haskell.org/package/hasktags/hasktags-"
5490 version
5491 ".tar.gz"))
5492 (sha256
5493 (base32
5494 "1s2k9qrgy1jily96img2pmn7g35mwnnfiw6si3aw32jfhg5zsh1c"))))
5495 (build-system haskell-build-system)
5496 (inputs
5497 `(("ghc-system-filepath" ,ghc-system-filepath)
5498 ("ghc-optparse-applicative" ,ghc-optparse-applicative)))
5499 (native-inputs
5500 `(("ghc-json" ,ghc-json)
5501 ("ghc-utf8-string" ,ghc-utf8-string)
5502 ("ghc-microlens-platform" ,ghc-microlens-platform)
5503 ("ghc-hunit" ,ghc-hunit)))
702a1012 5504 (home-page "https://github.com/MarcWeber/hasktags")
dddbc90c
RV
5505 (synopsis "Make @code{Ctags} and @code{Etags} files for Haskell programs")
5506 (description
5507 "This package provides a means of generating tag files for Emacs and
5508Vim.")
5509 (license license:bsd-3)))
5510
5511(define-public ghc-hex
5512 (package
5513 (name "ghc-hex")
5514 (version "0.1.2")
5515 (source
5516 (origin
5517 (method url-fetch)
5518 (uri (string-append "https://hackage.haskell.org/package/"
5519 "hex-" version "/"
5520 "hex-" version ".tar.gz"))
5521 (sha256
5522 (base32
5523 "1v31xiaivrrn0q2jz8919wvkjplv1kxna5ajhsj701fqxm1i5vhj"))))
5524 (build-system haskell-build-system)
5525 (home-page "https://hackage.haskell.org/package/hex")
5526 (synopsis "Convert strings into hexadecimal and back")
5527 (description "This package provides conversion functions between
5528bytestrings and their hexademical representation.")
5529 (license license:bsd-3)))
5530
5531(define-public ghc-highlighting-kate
5532 (package
5533 (name "ghc-highlighting-kate")
5534 (version "0.6.4")
5535 (source (origin
5536 (method url-fetch)
5537 (uri (string-append "https://hackage.haskell.org/package/"
5538 "highlighting-kate/highlighting-kate-"
5539 version ".tar.gz"))
5540 (sha256
5541 (base32
5542 "1bqv00gfmrsf0jjr4qf3lhshvfkyzmhbi3pjb6mafbnsyn2k7f6q"))))
5543 (build-system haskell-build-system)
5544 (inputs
5545 `(("ghc-diff" ,ghc-diff)
5546 ("ghc-regex-pcre-builtin" ,ghc-regex-pcre-builtin)))
5547 (native-inputs
5548 `(("ghc-blaze-html" ,ghc-blaze-html)
5549 ("ghc-utf8-string" ,ghc-utf8-string)))
5550 (home-page "https://github.com/jgm/highlighting-kate")
5551 (synopsis "Syntax highlighting library")
5552 (description
5553 "Highlighting-kate is a syntax highlighting library with support for
5554nearly one hundred languages. The syntax parsers are automatically generated
5555from @uref{https://kate-editor.org/, Kate syntax descriptions}, so any syntax
5556supported by Kate can be added. An (optional) command-line program is
5557provided, along with a utility for generating new parsers from Kate XML syntax
5558descriptions.")
5559 (license license:gpl2+)))
5560
5561(define-public ghc-hindent
5562 (package
5563 (name "ghc-hindent")
f545f894 5564 (version "5.3.1")
dddbc90c
RV
5565 (source
5566 (origin
5567 (method url-fetch)
5568 (uri (string-append
5569 "https://hackage.haskell.org/package/hindent/hindent-"
5570 version
5571 ".tar.gz"))
5572 (sha256
5573 (base32
f545f894 5574 "008s8zm9qs972b7v5kkmr8l3i9kc6zm7yj33mkw6dv69b7h3c01l"))))
dddbc90c
RV
5575 (build-system haskell-build-system)
5576 (arguments
5577 `(#:modules ((guix build haskell-build-system)
5578 (guix build utils)
5579 (guix build emacs-utils))
5580 #:imported-modules (,@%haskell-build-system-modules
5581 (guix build emacs-utils))
5582 #:phases
5583 (modify-phases %standard-phases
5584 (add-after 'install 'emacs-install
5585 (lambda* (#:key inputs outputs #:allow-other-keys)
5586 (let* ((out (assoc-ref outputs "out"))
5587 (elisp-file "elisp/hindent.el")
d53e87cf 5588 (dest (string-append out "/share/emacs/site-lisp"))
dddbc90c
RV
5589 (emacs (string-append (assoc-ref inputs "emacs")
5590 "/bin/emacs")))
5591 (make-file-writable elisp-file)
5592 (emacs-substitute-variables elisp-file
5593 ("hindent-process-path"
5594 (string-append out "/bin/hindent")))
5595 (install-file elisp-file dest)
5596 (emacs-generate-autoloads "hindent" dest)))))))
5597 (inputs
5598 `(("ghc-haskell-src-exts" ,ghc-haskell-src-exts)
5599 ("ghc-monad-loops" ,ghc-monad-loops)
5600 ("ghc-utf8-string" ,ghc-utf8-string)
5601 ("ghc-exceptions" ,ghc-exceptions)
5602 ("ghc-yaml" ,ghc-yaml)
5603 ("ghc-unix-compat" ,ghc-unix-compat)
5604 ("ghc-path" ,ghc-path)
5605 ("ghc-path-io" ,ghc-path-io)
5606 ("ghc-optparse-applicative" ,ghc-optparse-applicative)))
5607 (native-inputs
5608 `(("ghc-hspec" ,ghc-hspec)
5609 ("ghc-diff" ,ghc-diff)
5610 ("emacs" ,emacs-minimal)))
5611 (home-page
5612 "https://github.com/commercialhaskell/hindent")
5613 (synopsis "Extensible Haskell pretty printer")
5614 (description
5615 "This package provides automatic formatting for Haskell files. Both a
5616library and an executable.")
5617 (license license:bsd-3)))
5618
5619(define-public ghc-hinotify
5620 (package
5621 (name "ghc-hinotify")
c2342abb 5622 (version "0.4")
dddbc90c
RV
5623 (source (origin
5624 (method url-fetch)
5625 (uri (string-append
5626 "https://hackage.haskell.org/package/hinotify/"
5627 "hinotify-" version ".tar.gz"))
5628 (sha256
5629 (base32
c2342abb 5630 "1x1lm685ws2q0z0ibwq6x3l72xh67mj06s36xiga3al48d92q63x"))))
dddbc90c
RV
5631 (build-system haskell-build-system)
5632 (inputs
5633 `(("ghc-async" ,ghc-async)))
5634 (home-page "https://github.com/kolmodin/hinotify.git")
5635 (synopsis "Haskell binding to inotify")
5636 (description "This library provides a wrapper to the Linux kernel's inotify
5637feature, allowing applications to subscribe to notifications when a file is
5638accessed or modified.")
5639 (license license:bsd-3)))
5640
5641(define-public ghc-hmatrix
5642 (package
5643 (name "ghc-hmatrix")
65e29ed1 5644 (version "0.20.0.0")
dddbc90c
RV
5645 (source
5646 (origin
5647 (method url-fetch)
5648 (uri (string-append
5649 "https://hackage.haskell.org/package/hmatrix/hmatrix-"
5650 version ".tar.gz"))
5651 (sha256
65e29ed1 5652 (base32 "1sqy1aci5zfagkb34mz3xdil7cl96z4b4cx28cha54vc5sx1lhpg"))))
dddbc90c 5653 (build-system haskell-build-system)
54a5fd07
TS
5654 (arguments
5655 `(#:extra-directories ("lapack")))
dddbc90c
RV
5656 (inputs
5657 `(("ghc-random" ,ghc-random)
5658 ("ghc-split" ,ghc-split)
5659 ("ghc-storable-complex" ,ghc-storable-complex)
5660 ("ghc-semigroups" ,ghc-semigroups)
5661 ("ghc-vector" ,ghc-vector)
5662 ;;("openblas" ,openblas)
5663 ("lapack" ,lapack)))
5664 ;; Guix's OpenBLAS is built with the flag "NO_LAPACK=1" which
5665 ;; disables inclusion of the LAPACK functions.
5666 ;; (arguments `(#:configure-flags '("--flags=openblas")))
5667 (home-page "https://github.com/albertoruiz/hmatrix")
5668 (synopsis "Haskell numeric linear algebra library")
5669 (description "The HMatrix package provices a Haskell library for
5670dealing with linear systems, matrix decompositions, and other
5671numerical computations based on BLAS and LAPACK.")
5672 (license license:bsd-3)))
5673
5674(define-public ghc-hmatrix-gsl
5675 (package
5676 (name "ghc-hmatrix-gsl")
5677 (version "0.19.0.1")
5678 (source
5679 (origin
5680 (method url-fetch)
5681 (uri (string-append
5682 "https://hackage.haskell.org/package/hmatrix-gsl/hmatrix-gsl-"
5683 version ".tar.gz"))
5684 (sha256
5685 (base32 "0v6dla426x4ywaq59jm89ql1i42n39iw6z0j378xwb676v9kfxhm"))))
5686 (build-system haskell-build-system)
54a5fd07
TS
5687 (arguments
5688 `(#:extra-directories ("gsl")))
dddbc90c
RV
5689 (inputs
5690 `(("ghc-hmatrix" ,ghc-hmatrix)
5691 ("ghc-vector" ,ghc-vector)
5692 ("ghc-random" ,ghc-random)
5693 ("gsl" ,gsl)))
5694 (native-inputs `(("pkg-config" ,pkg-config)))
5695 (home-page "https://github.com/albertoruiz/hmatrix")
5696 (synopsis "Haskell GSL binding")
5697 (description "This Haskell library provides a purely functional
5698interface to selected numerical computations, internally implemented
5699using GSL.")
5700 (license license:gpl3+)))
5701
5702(define-public ghc-hmatrix-gsl-stats
5703 (package
5704 (name "ghc-hmatrix-gsl-stats")
e9b359f5 5705 (version "0.4.1.8")
dddbc90c
RV
5706 (source
5707 (origin
5708 (method url-fetch)
5709 (uri
5710 (string-append
5711 "https://hackage.haskell.org/package/hmatrix-gsl-stats/hmatrix-gsl-stats-"
5712 version ".tar.gz"))
5713 (sha256
e9b359f5 5714 (base32 "1cq049sj3q5r06x7i35hqrkf2jc4p4kfi9zv0jmi2vp7w4644i5q"))))
dddbc90c
RV
5715 (build-system haskell-build-system)
5716 (inputs
5717 `(("ghc-vector" ,ghc-vector)
5718 ("ghc-storable-complex" ,ghc-storable-complex)
5719 ("ghc-hmatrix" ,ghc-hmatrix)
5720 ("gsl" ,gsl)))
5721 (native-inputs `(("pkg-config" ,pkg-config)))
5722 (home-page "http://code.haskell.org/hmatrix-gsl-stats")
5723 (synopsis "GSL Statistics interface for Haskell")
5724 (description "This Haskell library provides a purely functional
5725interface for statistics based on hmatrix and GSL.")
5726 (license license:bsd-3)))
5727
5728(define-public ghc-hmatrix-special
5729 (package
5730 (name "ghc-hmatrix-special")
5731 (version "0.19.0.0")
5732 (source
5733 (origin
5734 (method url-fetch)
5735 (uri
5736 (string-append
5737 "https://hackage.haskell.org/package/hmatrix-special/hmatrix-special-"
5738 version ".tar.gz"))
5739 (sha256
5740 (base32 "1mywr61kr852sbff26n9x95kswx9l4ycbv6s68qsbkh02xzqq7qz"))))
5741 (build-system haskell-build-system)
5742 (inputs
5743 `(("ghc-hmatrix" ,ghc-hmatrix)
5744 ("ghc-hmatrix-gsl" ,ghc-hmatrix-gsl)))
5745 (home-page "https://github.com/albertoruiz/hmatrix")
5746 (synopsis "Haskell interface to GSL special functions")
5747 (description "This library provides an interface to GSL special
5748functions for Haskell.")
5749 (license license:gpl3+)))
5750
5751(define-public ghc-hostname
5752 (package
5753 (name "ghc-hostname")
5754 (version "1.0")
5755 (source
5756 (origin
5757 (method url-fetch)
5758 (uri (string-append "https://hackage.haskell.org/package/hostname/"
5759 "hostname-" version ".tar.gz"))
5760 (sha256
5761 (base32
5762 "0p6gm4328946qxc295zb6vhwhf07l1fma82vd0siylnsnsqxlhwv"))))
5763 (build-system haskell-build-system)
5764 (home-page "https://hackage.haskell.org/package/hostname")
5765 (synopsis "Hostname in Haskell")
5766 (description "Network.HostName is a simple package providing a means to
5767determine the hostname.")
5768 (license license:bsd-3)))
5769
5770(define-public ghc-hourglass
5771 (package
5772 (name "ghc-hourglass")
5773 (version "0.2.12")
5774 (source (origin
5775 (method url-fetch)
5776 (uri (string-append "https://hackage.haskell.org/package/"
5777 "hourglass/hourglass-" version ".tar.gz"))
5778 (sha256
5779 (base32
5780 "0jnay5j13vpz6i1rkaj3j0d9v8jfpri499xn3l7wd01f81f5ncs4"))))
5781 (build-system haskell-build-system)
5782 (inputs
5783 `(("ghc-old-locale" ,ghc-old-locale)))
5784 (native-inputs
5785 `(("ghc-tasty" ,ghc-tasty)
5786 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
5787 ("ghc-tasty-hunit" ,ghc-tasty-hunit)))
5788 (home-page "https://github.com/vincenthz/hs-hourglass")
5789 (synopsis "Simple time-related library for Haskell")
5790 (description
5791 "This is a simple time library providing a simple but powerful and
5792performant API. The backbone of the library are the @code{Timeable} and
5793@code{Time} type classes. Each @code{Timeable} instances can be converted to
5794a type that has a @code{Time} instances, and thus are different
5795representations of current time.")
5796 (license license:bsd-3)))
5797
5798(define-public ghc-hpack
5799 (package
5800 (name "ghc-hpack")
06344a3a 5801 (version "0.31.2")
dddbc90c
RV
5802 (source
5803 (origin
5804 (method url-fetch)
5805 (uri (string-append "https://hackage.haskell.org/package/hpack/"
5806 "hpack-" version ".tar.gz"))
06344a3a 5807 (patches (search-patches "ghc-hpack-fix-tests.patch"))
dddbc90c
RV
5808 (sha256
5809 (base32
06344a3a 5810 "1l2d6185lawwhsj70swxkvcacm0hvcn9qsrlx4ph4gs6k578603g"))))
dddbc90c
RV
5811 (build-system haskell-build-system)
5812 (inputs
5813 `(("ghc-aeson" ,ghc-aeson)
5814 ("ghc-bifunctors" ,ghc-bifunctors)
5815 ("ghc-cryptonite" ,ghc-cryptonite)
5816 ("ghc-glob" ,ghc-glob)
5817 ("ghc-http-client" ,ghc-http-client)
5818 ("ghc-http-client-tls" ,ghc-http-client-tls)
5819 ("ghc-http-types" ,ghc-http-types)
06344a3a 5820 ("ghc-infer-license" ,ghc-infer-license)
dddbc90c
RV
5821 ("ghc-scientific" ,ghc-scientific)
5822 ("ghc-unordered-containers" ,ghc-unordered-containers)
5823 ("ghc-vector" ,ghc-vector)
5824 ("ghc-yaml" ,ghc-yaml)))
5825 (native-inputs
5826 `(("ghc-hspec" ,ghc-hspec)
5827 ("ghc-hunit" ,ghc-hunit)
5828 ("ghc-interpolate" ,ghc-interpolate)
5829 ("ghc-mockery" ,ghc-mockery)
5830 ("ghc-quickcheck" ,ghc-quickcheck)
5831 ("ghc-temporary" ,ghc-temporary)
5832 ("hspec-discover" ,hspec-discover)))
5833 (home-page "https://github.com/sol/hpack")
5834 (synopsis "Tools for an alternative Haskell package format")
5835 (description
5836 "Hpack is a format for Haskell packages. It is an alternative to the
5837Cabal package format and follows different design principles. Hpack packages
5838are described in a file named @code{package.yaml}. Both @code{cabal2nix} and
5839@code{stack} support @code{package.yaml} natively. For other build tools the
5840@code{hpack} executable can be used to generate a @code{.cabal} file from
5841@code{package.yaml}.")
5842 (license license:expat)))
5843
5844(define-public ghc-hs-bibutils
5845 (package
5846 (name "ghc-hs-bibutils")
ebcb4f23 5847 (version "6.7.0.0")
dddbc90c
RV
5848 (source
5849 (origin
5850 (method url-fetch)
5851 (uri (string-append
5852 "https://hackage.haskell.org/package/hs-bibutils/hs-bibutils-"
5853 version ".tar.gz"))
5854 (sha256
5855 (base32
ebcb4f23 5856 "1qfyssl76lm4g09yxr3y10kmf8cnzls46g5h0ijk0wpk9wlhbln5"))))
dddbc90c
RV
5857 (build-system haskell-build-system)
5858 (inputs `(("ghc-syb" ,ghc-syb)))
5859 (home-page "https://hackage.haskell.org/package/hs-bibutils")
5860 (synopsis "Haskell bindings to bibutils")
5861 (description
5862 "This package provides Haskell bindings to @code{bibutils}, a library
5863that interconverts between various bibliography formats using a common
5864MODS-format XML intermediate.")
5865 (license license:gpl2+)))
5866
5867(define-public ghc-hslogger
5868 (package
5869 (name "ghc-hslogger")
e5ccc5f7 5870 (version "1.2.12")
dddbc90c
RV
5871 (source
5872 (origin
5873 (method url-fetch)
5874 (uri (string-append "https://hackage.haskell.org/package/"
5875 "hslogger-" version "/" "hslogger-"
5876 version ".tar.gz"))
5877 (sha256 (base32
e5ccc5f7 5878 "0ykcsk7wqygvrg60r5kpl6xfinr706al8pfyk5wj67wjs24lqypr"))))
dddbc90c
RV
5879 (build-system haskell-build-system)
5880 (inputs
5881 `(("ghc-network" ,ghc-network)
5882 ("ghc-old-locale" ,ghc-old-locale)))
5883 (native-inputs
5884 `(("ghc-hunit" ,ghc-hunit)))
5885 (home-page "https://software.complete.org/hslogger")
5886 (synopsis "Logging framework for Haskell, similar to Python's logging module")
5887 (description "Hslogger lets each log message have a priority and source be
5888associated with it. The programmer can then define global handlers that route
5889or filter messages based on the priority and source. It also has a syslog
5890handler built in.")
5891 (license license:bsd-3)))
5892
5893(define-public ghc-hslua
5894 (package
5895 (name "ghc-hslua")
cc784d7b 5896 (version "1.0.3.2")
dddbc90c
RV
5897 (source (origin
5898 (method url-fetch)
5899 (uri (string-append "https://hackage.haskell.org/package/"
5900 "hslua/hslua-" version ".tar.gz"))
5901 (sha256
5902 (base32
cc784d7b 5903 "183bgl5jcx5y2r94lviqfw0a5w9089nxjd1z40k8vx9y2h60pm6j"))))
dddbc90c
RV
5904 (build-system haskell-build-system)
5905 (arguments
54a5fd07
TS
5906 `(#:configure-flags '("-fsystem-lua")
5907 #:extra-directories ("lua")))
dddbc90c
RV
5908 (inputs
5909 `(("lua" ,lua)
5910 ("ghc-exceptions" ,ghc-exceptions)
5911 ("ghc-fail" ,ghc-fail)))
5912 (native-inputs
5913 `(("ghc-tasty" ,ghc-tasty)
5914 ("ghc-tasty-expected-failure" ,ghc-tasty-expected-failure)
5915 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
5916 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
5917 ("ghc-quickcheck" ,ghc-quickcheck)
5918 ("ghc-quickcheck-instances" ,ghc-quickcheck-instances)))
5919 (home-page "https://hackage.haskell.org/package/hslua")
5920 (synopsis "Lua language interpreter embedding in Haskell")
5921 (description
5922 "The Scripting.Lua module is a wrapper of the Lua language interpreter as
5923described in @url{https://www.lua.org/}.")
5924 (license license:expat)))
5925
ff303e4e
TS
5926(define-public ghc-hslua-module-system
5927 (package
5928 (name "ghc-hslua-module-system")
5929 (version "0.2.1")
5930 (source
5931 (origin
5932 (method url-fetch)
5933 (uri (string-append "https://hackage.haskell.org/package/"
5934 "hslua-module-system/hslua-module-system-"
5935 version ".tar.gz"))
5936 (sha256
5937 (base32
5938 "1m7wz3g5c34pyizqw5mllzhsy2vziddhlbhjfwdvd7nhd3p4v3hh"))))
5939 (build-system haskell-build-system)
5940 (inputs
5941 `(("ghc-exceptions" ,ghc-exceptions)
5942 ("ghc-hslua" ,ghc-hslua)
5943 ("ghc-temporary" ,ghc-temporary)))
5944 (native-inputs
5945 `(("ghc-tasty" ,ghc-tasty)
5946 ("ghc-tasty-hunit" ,ghc-tasty-hunit)))
5947 (home-page "https://github.com/hslua/hslua-module-system")
5948 (synopsis "Lua module wrapper around Haskell's System module")
5949 (description "This library provides access to system information and
5950functionality to Lua scripts via Haskell's @code{System} module. Intended
5951usage for this package is to preload it by adding the loader function to
5952@code{package.preload}. Note that the Lua @code{package} library must have
5953already been loaded before the loader can be added.")
5954 (license license:expat)))
5955
dddbc90c
RV
5956(define-public ghc-hslua-module-text
5957 (package
5958 (name "ghc-hslua-module-text")
ecaf0b0c 5959 (version "0.2.1")
dddbc90c
RV
5960 (source
5961 (origin
5962 (method url-fetch)
5963 (uri (string-append "https://hackage.haskell.org/package/"
5964 "hslua-module-text/hslua-module-text-"
5965 version ".tar.gz"))
5966 (sha256
5967 (base32
ecaf0b0c 5968 "1ikdwvvxhbd5wmfr85dzs2ccamh9rbbpgy899z7s1vlv5q1dj0hk"))))
dddbc90c 5969 (build-system haskell-build-system)
dddbc90c
RV
5970 (inputs
5971 `(("ghc-hslua" ,ghc-hslua)))
5972 (native-inputs
5973 `(("ghc-tasty" ,ghc-tasty)
5974 ("ghc-tasty-hunit" ,ghc-tasty-hunit)))
5975 (home-page "https://github.com/hslua/hslua-module-text")
5976 (synopsis "Lua module for text")
5977 (description
5978 "This package provides a UTF-8 aware subset of Lua's @code{string} module
5979for Haskell. The functions provided by this module are @code{upper},
5980@code{lower}, @code{len}, @code{reverse}, and @code{sub}.")
5981 (license license:expat)))
5982
fac520bf
TS
5983(define-public ghc-hsyaml
5984 (package
5985 (name "ghc-hsyaml")
5986 (version "0.1.2.0")
5987 (source
5988 (origin
5989 (method url-fetch)
5990 (uri (string-append "https://hackage.haskell.org/package/"
5991 "HsYAML/HsYAML-" version ".tar.gz"))
5992 (sha256
5993 (base32
5994 "1pajfhj16559v64ixm8j7bvxdqmxg6c3c0z3wz7in8ckswgzfp54"))))
5995 (build-system haskell-build-system)
5996 (arguments
5997 `(#:cabal-revision
5998 ("1" "0j6qmmcz5yqh89hs2cq453maix50q61vl2h0ahj5lg02bygn42cf")))
5999 (home-page "https://github.com/haskell-hvr/HsYAML")
6000 (synopsis "Pure Haskell YAML 1.2 parser")
6001 (description "This library provides a
6002@url{http://yaml.org/spec/1.2/spec.html, YAML 1.2} parser implementation
6003for Haskell. Its features include:
6004
6005@itemize
6006@item Pure Haskell implementation with small dependency footprint and
6007emphasis on strict compliance with the YAML 1.2 specification.
6008
6009@item Direct decoding to native Haskell types via (aeson-inspired)
6010typeclass-based API (see @code{Data.YAML}).
6011
6012@item Support for constructing custom YAML node graph
6013representation (including support for cyclic YAML data structures).
6014
6015@item Support for the standard (untyped) @emph{Failsafe}, (strict)
6016@emph{JSON}, and (flexible) @emph{Core} ``schemas'' providing implicit
6017typing rules as defined in the YAML 1.2 specification (including support
6018for user-defined custom schemas).
6019
6020@item Event-based API resembling LibYAML's Event-based API (see
6021@code{Data.YAML.Event}).
6022
6023@item Low-level API access to lexical token-based scanner (see
6024@code{Data.YAML.Token}).
6025@end itemize")
6026 (license license:gpl2+)))
6027
dddbc90c
RV
6028(define-public ghc-http-api-data
6029 (package
6030 (name "ghc-http-api-data")
a57236eb 6031 (version "0.4.1")
dddbc90c
RV
6032 (source
6033 (origin
6034 (method url-fetch)
6035 (uri (string-append "https://hackage.haskell.org/package/"
6036 "http-api-data-" version "/"
6037 "http-api-data-" version ".tar.gz"))
6038 (sha256
6039 (base32
a57236eb 6040 "1ps4bvln43gz72dr9mc3c9n1rn38c4rz6m49vxzz9nz6jz1978rv"))))
dddbc90c 6041 (build-system haskell-build-system)
dddbc90c
RV
6042 (inputs `(("ghc-attoparsec" ,ghc-attoparsec)
6043 ("ghc-attoparsec-iso8601" ,ghc-attoparsec-iso8601)
a57236eb 6044 ("ghc-cookie" ,ghc-cookie)
dddbc90c
RV
6045 ("ghc-hashable" ,ghc-hashable)
6046 ("ghc-http-types" ,ghc-http-types)
a57236eb 6047 ("ghc-time-compat" ,ghc-time-compat)
dddbc90c 6048 ("ghc-unordered-containers" ,ghc-unordered-containers)
dddbc90c 6049 ("ghc-uuid-types" ,ghc-uuid-types)))
a57236eb
TS
6050 (native-inputs
6051 `(("cabal-doctest" ,cabal-doctest)
6052 ("ghc-nats" ,ghc-nats)
6053 ("ghc-hunit" ,ghc-hunit)
6054 ("ghc-hspec" ,ghc-hspec)
6055 ("ghc-quickcheck" ,ghc-quickcheck)
6056 ("ghc-quickcheck-instances" ,ghc-quickcheck-instances)
6057 ("ghc-doctest" ,ghc-doctest)
6058 ("hspec-discover" ,hspec-discover)))
dddbc90c
RV
6059 (home-page "https://github.com/fizruk/http-api-data")
6060 (synopsis "Convert to/from HTTP API data like URL pieces, headers and
6061query parameters")
6062 (description "This Haskell package defines typeclasses used for converting
6063Haskell data types to and from HTTP API data.")
6064 (license license:bsd-3)))
6065
6066(define-public ghc-ieee754
6067 (package
6068 (name "ghc-ieee754")
6069 (version "0.8.0")
6070 (source (origin
6071 (method url-fetch)
6072 (uri (string-append
6073 "https://hackage.haskell.org/package/ieee754/"
6074 "ieee754-" version ".tar.gz"))
6075 (sha256
6076 (base32
6077 "1lcs521g9lzy9d7337vg4w7q7s8500rfqy7rcifcz6pm6yfgyb8f"))))
6078 (build-system haskell-build-system)
6079 (home-page "https://github.com/patperry/hs-ieee754")
6080 (synopsis "Utilities for dealing with IEEE floating point numbers")
6081 (description "Utilities for dealing with IEEE floating point numbers,
6082ported from the Tango math library; approximate and exact equality comparisons
6083for general types.")
6084 (license license:bsd-3)))
6085
6086(define-public ghc-ifelse
6087 (package
6088 (name "ghc-ifelse")
6089 (version "0.85")
6090 (source
6091 (origin
6092 (method url-fetch)
6093 (uri (string-append "https://hackage.haskell.org/package/"
6094 "IfElse/IfElse-" version ".tar.gz"))
6095 (sha256
6096 (base32
6097 "1kfx1bwfjczj93a8yqz1n8snqiq5655qgzwv1lrycry8wb1vzlwa"))))
6098 (build-system haskell-build-system)
3ef91e15 6099 (home-page "https://hackage.haskell.org/package/IfElse")
dddbc90c
RV
6100 (synopsis "Monadic control flow with anaphoric variants")
6101 (description "This library provides functions for control flow inside of
6102monads with anaphoric variants on @code{if} and @code{when} and a C-like
6103@code{switch} function.")
6104 (license license:bsd-3)))
6105
6106(define-public ghc-indents
6107 (package
6108 (name "ghc-indents")
d66473fb 6109 (version "0.5.0.1")
dddbc90c
RV
6110 (source (origin
6111 (method url-fetch)
6112 (uri (string-append
6113 "https://hackage.haskell.org/package/indents/indents-"
6114 version ".tar.gz"))
6115 (sha256
6116 (base32
d66473fb 6117 "0dpcwiz0dwn5aqdsc50plfaawh86adhf7jx5dsmhn5q5nz32qn51"))))
dddbc90c
RV
6118 (build-system haskell-build-system)
6119 ;; This package needs an older version of tasty.
6120 (arguments '(#:tests? #f))
6121 (inputs
6122 `(("ghc-concatenative" ,ghc-concatenative)))
6123 (native-inputs
6124 `(("ghc-tasty" ,ghc-tasty)
6125 ("ghc-tasty-hunit" ,ghc-tasty-hunit)))
6126 (home-page "http://patch-tag.com/r/salazar/indents")
6127 (synopsis "Indentation sensitive parser-combinators for parsec")
6128 (description
6129 "This library provides functions for use in parsing indentation sensitive
6130contexts. It parses blocks of lines all indented to the same level as well as
6131lines continued at an indented level below.")
6132 (license license:bsd-3)))
6133
1f656b17
TS
6134(define-public ghc-infer-license
6135 (package
6136 (name "ghc-infer-license")
6137 (version "0.2.0")
6138 (source
6139 (origin
6140 (method url-fetch)
6141 (uri (string-append "https://hackage.haskell.org/package/"
6142 "infer-license/infer-license-" version ".tar.gz"))
6143 (sha256
6144 (base32
6145 "0wlfm6bf55kfvm74xar9lmjg5v1103rs9m3grw1rq5bmcmhzxrhj"))))
6146 (build-system haskell-build-system)
6147 (inputs
6148 `(("ghc-text-metrics" ,ghc-text-metrics)))
6149 (native-inputs
6150 `(("ghc-hspec" ,ghc-hspec)
6151 ("hspec-discover" ,hspec-discover)))
3ef91e15 6152 (home-page "https://hackage.haskell.org/package/infer-license")
1f656b17
TS
6153 (synopsis "Infer software license from a given license file")
6154 (description "This library provides tools to infer a software
6155license from a given license file.")
6156 (license license:expat)))
6157
dddbc90c
RV
6158(define-public ghc-inline-c
6159 (package
6160 (name "ghc-inline-c")
55ec98f2 6161 (version "0.7.0.1")
dddbc90c
RV
6162 (source
6163 (origin
6164 (method url-fetch)
6165 (uri (string-append "https://hackage.haskell.org/package/inline-c/"
6166 "inline-c-" version ".tar.gz"))
6167 (sha256
6168 (base32
55ec98f2 6169 "19scbviwiv1fbsdcjji3dscjg7w0xa8r97xwkqqrwm7zhvrg5wns"))))
dddbc90c
RV
6170 (build-system haskell-build-system)
6171 (inputs
6172 `(("ghc-ansi-wl-pprint" ,ghc-ansi-wl-pprint)
6173 ("ghc-cryptohash" ,ghc-cryptohash)
6174 ("ghc-hashable" ,ghc-hashable)
6175 ("ghc-parsers" ,ghc-parsers)
6176 ("ghc-unordered-containers" ,ghc-unordered-containers)
6177 ("ghc-vector" ,ghc-vector)))
6178 (native-inputs
6179 `(("ghc-quickcheck" ,ghc-quickcheck)
6180 ("ghc-hspec" ,ghc-hspec)
6181 ("ghc-raw-strings-qq" ,ghc-raw-strings-qq)
6182 ("ghc-regex-posix" ,ghc-regex-posix)))
3ef91e15 6183 (home-page "https://hackage.haskell.org/package/inline-c")
dddbc90c
RV
6184 (synopsis "Write Haskell source files including C code inline")
6185 (description
6186 "inline-c lets you seamlessly call C libraries and embed high-performance
6187inline C code in Haskell modules. Haskell and C can be freely intermixed in
6188the same source file, and data passed to and from code in either language with
6189minimal overhead. No FFI required.")
6190 (license license:expat)))
6191
6192(define-public ghc-inline-c-cpp
6193 (package
6194 (name "ghc-inline-c-cpp")
cae58e56 6195 (version "0.3.0.3")
dddbc90c
RV
6196 (source
6197 (origin
6198 (method url-fetch)
6199 (uri (string-append "https://hackage.haskell.org/package/inline-c-cpp/"
6200 "inline-c-cpp-" version ".tar.gz"))
6201 (sha256
6202 (base32
cae58e56 6203 "1sxwx9dh60qfpa72dymj015zwd6prhb70x5mkabqzi7nhg3aakln"))))
dddbc90c
RV
6204 (build-system haskell-build-system)
6205 (inputs
6206 `(("ghc-inline-c" ,ghc-inline-c)
6207 ("ghc-safe-exceptions" ,ghc-safe-exceptions)))
6208 (native-inputs
6209 `(("ghc-hspec" ,ghc-hspec)))
6210 (home-page "https://hackage.haskell.org/package/inline-c-cpp")
6211 (synopsis "Lets you embed C++ code into Haskell")
6212 (description
6213 "This package provides utilities to inline C++ code into Haskell using
6214@code{inline-c}.")
6215 (license license:expat)))
6216
6217(define-public ghc-integer-logarithms
6218 (package
6219 (name "ghc-integer-logarithms")
86a704db 6220 (version "1.0.3")
dddbc90c
RV
6221 (source
6222 (origin
6223 (method url-fetch)
6224 (uri (string-append "https://hackage.haskell.org/package/"
6225 "integer-logarithms/integer-logarithms-"
6226 version ".tar.gz"))
6227 (sha256
6228 (base32
86a704db 6229 "05pc5hws66csvcvfswlwcr2fplwn1lbssvwifjxkbbwqhq0n5qjs"))))
dddbc90c
RV
6230 (build-system haskell-build-system)
6231 (arguments
6232 `(#:phases
6233 (modify-phases %standard-phases
6234 (add-before 'configure 'update-constraints
6235 (lambda _
6236 (substitute* "integer-logarithms.cabal"
6237 (("tasty >= 0\\.10 && < 1\\.1")
6238 "tasty >= 0.10 && < 1.2")))))))
6239 (native-inputs
6240 `(("ghc-quickcheck" ,ghc-quickcheck)
6241 ("ghc-smallcheck" ,ghc-smallcheck)
6242 ("ghc-tasty" ,ghc-tasty)
6243 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
6244 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
6245 ("ghc-tasty-smallcheck" ,ghc-tasty-smallcheck)))
6246 (home-page "https://github.com/Bodigrim/integer-logarithms")
6247 (synopsis "Integer logarithms")
6248 (description
6249 "This package provides the following modules:
6250@code{Math.NumberTheory.Logarithms} and
6251@code{Math.NumberTheory.Powers.Integer} from the @code{arithmoi} package,
6252@code{GHC.Integer.Logarithms.Compat} and
6253@code{Math.NumberTheory.Power.Natural}, as well as some additional functions
6254in migrated modules.")
6255 (license license:expat)))
6256
6257(define-public ghc-integer-logarithms-bootstrap
6258 (package
6259 (inherit ghc-integer-logarithms)
6260 (name "ghc-integer-logarithms-bootstrap")
6261 (arguments `(#:tests? #f))
6262 (native-inputs '())
799d8d3c 6263 (properties '((hidden? #t)))))
dddbc90c
RV
6264
6265(define-public ghc-interpolate
6266 (package
6267 (name "ghc-interpolate")
6268 (version "0.2.0")
6269 (source
6270 (origin
6271 (method url-fetch)
6272 (uri (string-append "https://hackage.haskell.org/package/interpolate/"
6273 "interpolate-" version ".tar.gz"))
6274 (sha256
6275 (base32
6276 "1gkaj98yz363v38fv78sqby236mp8yqwqcilx7kr2b9z0w3204bf"))))
6277 (build-system haskell-build-system)
6278 (inputs
6279 `(("ghc-haskell-src-meta" ,ghc-haskell-src-meta)))
6280 (native-inputs
6281 `(("ghc-base-compat" ,ghc-base-compat)
6282 ("ghc-hspec" ,ghc-hspec)
6283 ("ghc-quickcheck" ,ghc-quickcheck)
6284 ("ghc-quickcheck-instances" ,ghc-quickcheck-instances)
6285 ("hspec-discover" ,hspec-discover)))
6286 (home-page "https://github.com/sol/interpolate")
6287 (synopsis "String interpolation library")
6288 (description "This package provides a string interpolation library for
6289Haskell.")
6290 (license license:expat)))
6291
6292(define-public ghc-intervalmap
6293 (package
6294 (name "ghc-intervalmap")
e4946e32 6295 (version "0.6.1.1")
dddbc90c
RV
6296 (source
6297 (origin
6298 (method url-fetch)
6299 (uri (string-append "https://hackage.haskell.org/package/IntervalMap/"
6300 "IntervalMap-" version ".tar.gz"))
6301 (sha256
6302 (base32
e4946e32 6303 "0vdlvxvhf7vjyv0mfn6jaj2i2gclqv8419ck32s2jxfcmki5m5g8"))))
dddbc90c
RV
6304 (build-system haskell-build-system)
6305 (native-inputs
6306 `(("ghc-quickcheck" ,ghc-quickcheck)))
6307 (home-page "http://www.chr-breitkopf.de/comp/IntervalMap")
6308 (synopsis "Containers for intervals, with efficient search")
6309 (description
6310 "This package provides ordered containers of intervals, with efficient
6311search for all keys containing a point or overlapping an interval. See the
6312example code on the home page for a quick introduction.")
6313 (license license:bsd-3)))
6314
f7ca1fa8
TS
6315(define-public ghc-intervals
6316 (package
6317 (name "ghc-intervals")
6318 (version "0.8.1")
6319 (source
6320 (origin
6321 (method url-fetch)
6322 (uri (string-append "https://hackage.haskell.org/package/"
6323 "intervals/intervals-" version ".tar.gz"))
6324 (sha256
6325 (base32
6326 "00vyxf3ba9d7aas3npfapr53w71fslgh69fczjb25axr66fvzqww"))))
6327 (build-system haskell-build-system)
6328 (inputs
6329 `(("ghc-distributive" ,ghc-distributive)))
6330 (native-inputs
6331 `(("cabal-doctest" ,cabal-doctest)
6332 ("ghc-doctest" ,ghc-doctest)
6333 ("ghc-quickcheck" ,ghc-quickcheck)))
6334 (arguments
6335 `(#:cabal-revision
6336 ("4" "1qx3q0v13l1zaln9zdk8chxpxhshbz5x0vqm0qda7d1kpv7h6a7r")))
6337 (home-page "https://github.com/ekmett/intervals")
6338 (synopsis "Interval arithmetic")
6339 (description "This library provides
6340@code{Numeric.Interval.Interval}, which represets a closed, convex set
6341of floating point values.")
6342 (license license:bsd-3)))
6343
dddbc90c
RV
6344(define-public ghc-invariant
6345 (package
6346 (name "ghc-invariant")
d3a0e0b4 6347 (version "0.5.3")
dddbc90c
RV
6348 (source
6349 (origin
6350 (method url-fetch)
6351 (uri (string-append
6352 "https://hackage.haskell.org/package/invariant/invariant-"
6353 version ".tar.gz"))
6354 (sha256
6355 (base32
d3a0e0b4 6356 "03245nhcqxx6b0yw81fzqaqd7cgllmx8awzhvs2xv7ys73pmsgnp"))))
dddbc90c
RV
6357 (build-system haskell-build-system)
6358 (inputs
6359 `(("ghc-bifunctors" ,ghc-bifunctors)
6360 ("ghc-comonad" ,ghc-comonad)
6361 ("ghc-contravariant" ,ghc-contravariant)
6362 ("ghc-profunctors" ,ghc-profunctors)
6363 ("ghc-semigroups" ,ghc-semigroups)
6364 ("ghc-statevar" ,ghc-statevar)
6365 ("ghc-tagged" ,ghc-tagged)
6366 ("ghc-th-abstraction" ,ghc-th-abstraction)
6367 ("ghc-transformers-compat" ,ghc-transformers-compat)
6368 ("ghc-unordered-containers" ,ghc-unordered-containers)))
6369 (native-inputs
6370 `(("ghc-hspec" ,ghc-hspec)
6371 ("ghc-quickcheck" ,ghc-quickcheck)
6372 ("hspec-discover" ,hspec-discover)))
6373 (home-page "https://github.com/nfrisby/invariant-functors")
6374 (synopsis "Haskell98 invariant functors")
6375 (description "Haskell98 invariant functors (also known as exponential
6376functors). For more information, see Edward Kmett's article
6377@uref{http://comonad.com/reader/2008/rotten-bananas/, Rotten Bananas}.")
6378 (license license:bsd-2)))
6379
6380(define-public ghc-io-streams
6381 (package
6382 (name "ghc-io-streams")
59e98d75 6383 (version "1.5.1.0")
dddbc90c
RV
6384 (source
6385 (origin
6386 (method url-fetch)
6387 (uri (string-append "https://hackage.haskell.org/package/"
6388 "io-streams/io-streams-" version ".tar.gz"))
6389 (sha256
6390 (base32
59e98d75 6391 "1c7byr943x41nxpc3bnz152fvfbmakafq2958wyf9qiyp2pz18la"))))
dddbc90c
RV
6392 (build-system haskell-build-system)
6393 (inputs
6394 `(("ghc-attoparsec" ,ghc-attoparsec)
6395 ("ghc-bytestring-builder" ,ghc-bytestring-builder)
6396 ("ghc-network" ,ghc-network)
6397 ("ghc-primitive" ,ghc-primitive)
6398 ("ghc-vector" ,ghc-vector)
6399 ("ghc-zlib-bindings" ,ghc-zlib-bindings)))
6400 (native-inputs
6401 `(("ghc-hunit" ,ghc-hunit)
6402 ("ghc-quickcheck" ,ghc-quickcheck)
6403 ("ghc-test-framework" ,ghc-test-framework)
6404 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
6405 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)
6406 ("ghc-zlib" ,ghc-zlib)))
3ef91e15 6407 (home-page "https://hackage.haskell.org/package/io-streams")
dddbc90c
RV
6408 (synopsis "Simple and composable stream I/O")
6409 (description "This library contains simple and easy-to-use
6410primitives for I/O using streams.")
6411 (license license:bsd-3)))
6412
6413(define-public ghc-io-streams-haproxy
6414 (package
6415 (name "ghc-io-streams-haproxy")
1a4fbc36 6416 (version "1.0.1.0")
dddbc90c
RV
6417 (source
6418 (origin
6419 (method url-fetch)
6420 (uri (string-append "https://hackage.haskell.org/package/"
6421 "io-streams-haproxy/io-streams-haproxy-"
6422 version ".tar.gz"))
6423 (sha256
6424 (base32
1a4fbc36 6425 "1dcn5hd4fiwyq7m01r6fi93vfvygca5s6mz87c78m0zyj29clkmp"))))
dddbc90c
RV
6426 (build-system haskell-build-system)
6427 (inputs
6428 `(("ghc-attoparsec" ,ghc-attoparsec)
6429 ("ghc-io-streams" ,ghc-io-streams)
6430 ("ghc-network" ,ghc-network)))
6431 (native-inputs
6432 `(("ghc-hunit" ,ghc-hunit)
6433 ("ghc-test-framework" ,ghc-test-framework)
6434 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)))
dddbc90c
RV
6435 (home-page "http://snapframework.com/")
6436 (synopsis "HAProxy protocol 1.5 support for io-streams")
6437 (description "HAProxy protocol version 1.5 support
6438(see @uref{http://haproxy.1wt.eu/download/1.5/doc/proxy-protocol.txt})
6439for applications using io-streams. The proxy protocol allows information
6440about a networked peer (like remote address and port) to be propagated
6441through a forwarding proxy that is configured to speak this protocol.")
6442 (license license:bsd-3)))
6443
6444(define-public ghc-iproute
6445 (package
6446 (name "ghc-iproute")
ec25d536 6447 (version "1.7.7")
dddbc90c
RV
6448 (source
6449 (origin
6450 (method url-fetch)
6451 (uri (string-append
6452 "https://hackage.haskell.org/package/iproute/iproute-"
6453 version
6454 ".tar.gz"))
6455 (sha256
6456 (base32
ec25d536 6457 "0gab5930nvzrpvisx3x43ydnp2rd4fbmy9cq1zpgqy1adx5gx8z6"))))
dddbc90c
RV
6458 (build-system haskell-build-system)
6459 (arguments `(#:tests? #f)) ; FIXME: Tests cannot find System.ByteOrder,
6460 ; exported by ghc-byteorder. Doctest issue.
6461 (inputs
6462 `(("ghc-appar" ,ghc-appar)
6463 ("ghc-byteorder" ,ghc-byteorder)
6464 ("ghc-network" ,ghc-network)
6465 ("ghc-safe" ,ghc-safe)))
6466 (home-page "https://www.mew.org/~kazu/proj/iproute/")
6467 (synopsis "IP routing table")
6468 (description "IP Routing Table is a tree of IP ranges to search one of
6469them on the longest match base. It is a kind of TRIE with one way branching
6470removed. Both IPv4 and IPv6 are supported.")
6471 (license license:bsd-3)))
6472
4828e54e
TS
6473(define-public ghc-ipynb
6474 (package
6475 (name "ghc-ipynb")
6476 (version "0.1")
6477 (source
6478 (origin
6479 (method url-fetch)
6480 (uri (string-append "https://hackage.haskell.org/package/"
6481 "ipynb/ipynb-" version ".tar.gz"))
6482 (sha256
6483 (base32
6484 "0daadhzil4q573mqb0rpvjzm0vpkzgzqcimw480qpvlh6rhppwj5"))))
6485 (build-system haskell-build-system)
6486 (inputs
6487 `(("ghc-unordered-containers" ,ghc-unordered-containers)
6488 ("ghc-base64-bytestring" ,ghc-base64-bytestring)
6489 ("ghc-aeson" ,ghc-aeson)
6490 ("ghc-semigroups" ,ghc-semigroups)))
6491 (native-inputs
6492 `(("ghc-tasty" ,ghc-tasty)
6493 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
6494 ("ghc-aeson-diff" ,ghc-aeson-diff)
6495 ("ghc-microlens-aeson" ,ghc-microlens-aeson)
6496 ("ghc-microlens" ,ghc-microlens)
6497 ("ghc-vector" ,ghc-vector)))
6498 (home-page "https://hackage.haskell.org/package/ipynb")
6499 (synopsis "Data structure for working with Jupyter notebooks")
6500 (description "This library defines a data structure for representing
6501Jupyter notebooks, along with @code{ToJSON} and @code{FromJSON}
6502instances for conversion to and from JSON .ipynb files.")
6503 (license license:bsd-3)))
6504
dddbc90c
RV
6505(define-public ghc-iwlib
6506 (package
6507 (name "ghc-iwlib")
6508 (version "0.1.0")
6509 (source
6510 (origin
6511 (method url-fetch)
6512 (uri (string-append "https://hackage.haskell.org/package/iwlib/iwlib-"
6513 version ".tar.gz"))
6514 (sha256
6515 (base32 "0khmfwql4vwj55idsxmhjhrbqzfir3g9wm5lmpvnf77mm95cfpdz"))))
6516 (build-system haskell-build-system)
54a5fd07
TS
6517 (arguments
6518 `(#:extra-directories ("wireless-tools")))
dddbc90c
RV
6519 (inputs
6520 `(("wireless-tools" ,wireless-tools)))
6521 (home-page "https://github.com/jaor/iwlib")
6522 (synopsis "Haskell binding to the iw wireless networking library")
6523 (description
6524 "IWlib is a thin Haskell binding to the iw C library. It provides
6525information about the current wireless network connections, and adapters on
6526supported systems.")
6527 (license license:bsd-3)))
6528
6529(define-public ghc-json
6530 (package
6531 (name "ghc-json")
0ad3d574 6532 (version "0.9.3")
dddbc90c
RV
6533 (source
6534 (origin
6535 (method url-fetch)
6536 (uri (string-append "https://hackage.haskell.org/package/json/"
6537 "json-" version ".tar.gz"))
6538 (sha256
6539 (base32
0ad3d574 6540 "1z8s3mfg76p2flqqd2wqsi96l5bg8k8w8m58zlv81pw3k7h1vbwb"))))
dddbc90c
RV
6541 (build-system haskell-build-system)
6542 (inputs
6543 `(("ghc-syb" ,ghc-syb)))
6544 (home-page "https://hackage.haskell.org/package/json")
6545 (synopsis "Serializes Haskell data to and from JSON")
6546 (description "This package provides a parser and pretty printer for
6547converting between Haskell values and JSON.
6548JSON (JavaScript Object Notation) is a lightweight data-interchange format.")
6549 (license license:bsd-3)))
6550
6551(define-public ghc-juicypixels
6552 (package
6553 (name "ghc-juicypixels")
b50b6004 6554 (version "3.3.4")
dddbc90c
RV
6555 (source (origin
6556 (method url-fetch)
6557 (uri (string-append "https://hackage.haskell.org/package/"
6558 "JuicyPixels/JuicyPixels-"
6559 version ".tar.gz"))
6560 (sha256
6561 (base32
b50b6004 6562 "0qacrnz2qcykj3f6c4k2p8qd31pa2slpv3ykfblgizrfh3401q6x"))))
dddbc90c 6563 (build-system haskell-build-system)
a023e7d0 6564 (outputs '("out" "static" "doc"))
dddbc90c
RV
6565 (inputs
6566 `(("ghc-zlib" ,ghc-zlib)
6567 ("ghc-vector" ,ghc-vector)
6568 ("ghc-primitive" ,ghc-primitive)
6569 ("ghc-mmap" ,ghc-mmap)))
6570 (home-page "https://github.com/Twinside/Juicy.Pixels")
6571 (synopsis "Picture loading and serialization library")
6572 (description
6573 "This library can load and store images in PNG, Bitmap, JPEG, Radiance,
6574TIFF and GIF formats.")
6575 (license license:bsd-3)))
6576
6577(define-public ghc-kan-extensions
6578 (package
6579 (name "ghc-kan-extensions")
6580 (version "5.2")
6581 (source
6582 (origin
6583 (method url-fetch)
6584 (uri (string-append
6585 "https://hackage.haskell.org/package/kan-extensions/kan-extensions-"
6586 version
6587 ".tar.gz"))
6588 (sha256
6589 (base32
6590 "1lyvyiwwh962j2nnnsqzlvp5zq6z8p3spvhmji99cjvldxc7wwkb"))))
6591 (build-system haskell-build-system)
6592 (inputs
6593 `(("ghc-adjunctions" ,ghc-adjunctions)
6594 ("ghc-comonad" ,ghc-comonad)
6595 ("ghc-contravariant" ,ghc-contravariant)
6596 ("ghc-distributive" ,ghc-distributive)
6597 ("ghc-free" ,ghc-free)
6598 ("ghc-invariant" ,ghc-invariant)
6599 ("ghc-semigroupoids" ,ghc-semigroupoids)
6600 ("ghc-tagged" ,ghc-tagged)
6601 ("ghc-transformers-compat" ,ghc-transformers-compat)))
6602 (home-page "https://github.com/ekmett/kan-extensions/")
6603 (synopsis "Kan extensions library")
6604 (description "This library provides Kan extensions, Kan lifts, various
6605forms of the Yoneda lemma, and (co)density (co)monads for Haskell.")
6606 (license license:bsd-3)))
6607
6608(define-public ghc-language-c
6609 (package
6610 (name "ghc-language-c")
4e1cf651 6611 (version "0.8.3")
dddbc90c
RV
6612 (source
6613 (origin
6614 (method url-fetch)
6615 (uri (string-append "https://hackage.haskell.org/package/"
6616 "language-c/language-c-" version ".tar.gz"))
6617 (sha256
6618 (base32
4e1cf651 6619 "0bi02jdirkys8v7flf39vrpla2a74z1z0sdhy9lb9v7cmcc6rmpk"))))
dddbc90c
RV
6620 (build-system haskell-build-system)
6621 (inputs `(("ghc-syb" ,ghc-syb)))
6622 (native-inputs
6623 `(("ghc-happy" ,ghc-happy)
6624 ("ghc-alex" ,ghc-alex)))
6625 (home-page "https://visq.github.io/language-c/")
6626 (synopsis "Analysis and generation of C code")
6627 (description
6628 "Language C is a Haskell library for the analysis and generation of C code.
6629It features a complete, well-tested parser and pretty printer for all of C99
6630and a large set of GNU extensions.")
6631 (license license:bsd-3)))
6632
6633(define-public ghc-language-glsl
6634 (package
6635 (name "ghc-language-glsl")
6636 (version "0.3.0")
6637 (source
6638 (origin
6639 (method url-fetch)
6640 (uri (string-append "https://hackage.haskell.org/package/"
6641 "language-glsl/language-glsl-" version ".tar.gz"))
6642 (sha256
6643 (base32
6644 "0hdg67ainlqpjjghg3qin6fg4p783m0zmjqh4rd5gyizwiplxkp1"))))
6645 (build-system haskell-build-system)
6646 (inputs `(("ghc-prettyclass" ,ghc-prettyclass)))
6647 (arguments
6648 `(#:tests? #f
6649 #:cabal-revision
6650 ("1" "10ac9pk4jy75k03j1ns4b5136l4kw8krr2d2nw2fdmpm5jzyghc5")))
3ef91e15 6651 (home-page "https://hackage.haskell.org/package/language-glsl")
dddbc90c
RV
6652 (synopsis "GLSL abstract syntax tree, parser, and pretty-printer")
6653 (description "This package is a Haskell library for the
6654representation, parsing, and pretty-printing of GLSL 1.50 code.")
6655 (license license:bsd-3)))
6656
6657(define-public ghc-language-haskell-extract
6658 (package
6659 (name "ghc-language-haskell-extract")
6660 (version "0.2.4")
6661 (source
6662 (origin
6663 (method url-fetch)
6664 (uri (string-append "https://hackage.haskell.org/package/"
6665 "language-haskell-extract-" version "/"
6666 "language-haskell-extract-" version ".tar.gz"))
6667 (sha256
6668 (base32
6669 "1nxcs7g8a1sp91bzpy4cj6s31k5pvc3gvig04cbrggv5cvjidnhl"))))
6670 (build-system haskell-build-system)
6671 (inputs
6672 `(("ghc-regex-posix" ,ghc-regex-posix)))
6673 (home-page "https://github.com/finnsson/template-helper")
6674 (synopsis "Haskell module to automatically extract functions from
6675the local code")
6676 (description "This package contains helper functions on top of
6677Template Haskell.
6678
6679For example, @code{functionExtractor} extracts all functions after a
6680regexp-pattern, which can be useful if you wish to extract all functions
6681beginning with @code{test} (for a test framework) or all functions beginning
6682with @code{wc} (for a web service).")
6683 (license license:bsd-3)))
6684
6685(define-public ghc-lens
6686 (package
6687 (name "ghc-lens")
262e6323 6688 (version "4.17.1")
dddbc90c
RV
6689 (source
6690 (origin
6691 (method url-fetch)
6692 (uri (string-append "https://hackage.haskell.org/package/lens/lens-"
6693 version ".tar.gz"))
6694 (sha256
6695 (base32
262e6323 6696 "1gpkc53l2cggnfrgg5k4ih82rycjbdvpj9pnbi5cq8ms0dbvs4a7"))))
dddbc90c 6697 (build-system haskell-build-system)
b35361e9 6698 (outputs '("out" "static" "doc"))
dddbc90c
RV
6699 (inputs
6700 `(("ghc-base-orphans" ,ghc-base-orphans)
6701 ("ghc-bifunctors" ,ghc-bifunctors)
6702 ("ghc-distributive" ,ghc-distributive)
6703 ("ghc-exceptions" ,ghc-exceptions)
6704 ("ghc-free" ,ghc-free)
6705 ("ghc-kan-extensions" ,ghc-kan-extensions)
6706 ("ghc-parallel" ,ghc-parallel)
6707 ("ghc-reflection" ,ghc-reflection)
6708 ("ghc-semigroupoids" ,ghc-semigroupoids)
6709 ("ghc-vector" ,ghc-vector)
6710 ("ghc-call-stack" ,ghc-call-stack)
6711 ("ghc-comonad" ,ghc-comonad)
6712 ("ghc-contravariant" ,ghc-contravariant)
6713 ("ghc-hashable" ,ghc-hashable)
6714 ("ghc-profunctors" ,ghc-profunctors)
6715 ("ghc-semigroups" ,ghc-semigroups)
6716 ("ghc-tagged" ,ghc-tagged)
6717 ("ghc-transformers-compat" ,ghc-transformers-compat)
6718 ("ghc-unordered-containers" ,ghc-unordered-containers)
6719 ("ghc-void" ,ghc-void)
6720 ("ghc-generic-deriving" ,ghc-generic-deriving)
6721 ("ghc-nats" ,ghc-nats)
6722 ("ghc-simple-reflect" ,ghc-simple-reflect)
6723 ("hlint" ,hlint)))
6724 (native-inputs
6725 `(("cabal-doctest" ,cabal-doctest)
6726 ("ghc-doctest" ,ghc-doctest)
6727 ("ghc-hunit" ,ghc-hunit)
6728 ("ghc-test-framework" ,ghc-test-framework)
6729 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
6730 ("ghc-test-framework-th" ,ghc-test-framework-th)
6731 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)
6732 ("ghc-quickcheck" ,ghc-quickcheck)))
6733 (home-page "https://github.com/ekmett/lens/")
6734 (synopsis "Lenses, Folds and Traversals")
6735 (description "This library provides @code{Control.Lens}. The combinators
6736in @code{Control.Lens} provide a highly generic toolbox for composing families
6737of getters, folds, isomorphisms, traversals, setters and lenses and their
6738indexed variants.")
6739 (license license:bsd-3)))
6740
bcd35444
JS
6741(define-public ghc-lens-family-core
6742 (package
6743 (name "ghc-lens-family-core")
6744 (version "1.2.3")
6745 (source
6746 (origin
6747 (method url-fetch)
6748 (uri (string-append
6749 "mirror://hackage/package/lens-family-core/lens-family-core-"
6750 version
6751 ".tar.gz"))
6752 (sha256
6753 (base32
6754 "009rf10pj1cb50v44cc1pq7qvfrmkkk9dikahs9qmvbvgl3mykwi"))))
6755 (build-system haskell-build-system)
6756 (home-page
6757 "http://hackage.haskell.org/package/lens-family-core")
6758 (synopsis "Haskell 98 Lens Families")
6759 (description
6760 "This package provides first class functional references. In addition to
6761the usual operations of getting, setting and composition, plus integration
6762with the state monad, lens families provide some unique features:
6763
6764@itemize
6765@item Polymorphic updating
6766@item Traversals
6767@item Cast projection functions to read-only lenses
6768@item Cast @code{toList} functions to read-only traversals
6769@item Cast semantic editor combinators to modify-only traversals
6770@end itemize
6771
6772For optimal first-class support use the lens-family package with rank 2/rank N
6773polymorphism. @code{Lens.Family.Clone} allows for first-class support of
6774lenses and traversals for those who require Haskell 98.")
6775 (license license:bsd-3)))
6776
dddbc90c
RV
6777(define-public ghc-libffi
6778 (package
6779 (name "ghc-libffi")
6780 (version "0.1")
6781 (source
6782 (origin
6783 (method url-fetch)
6784 (uri (string-append "https://hackage.haskell.org/package/"
6785 "libffi/libffi-" version ".tar.gz"))
6786 (sha256
6787 (base32
6788 "0g7jnhng3j7z5517aaqga0144aamibsbpgm3yynwyfzkq1kp0f28"))))
6789 (build-system haskell-build-system)
6790 (native-inputs `(("pkg-config" ,pkg-config)))
6791 (inputs `(("libffi" ,libffi)))
3ef91e15 6792 (home-page "https://hackage.haskell.org/package/libffi")
dddbc90c
RV
6793 (synopsis "Haskell binding to libffi")
6794 (description
6795 "A binding to libffi, allowing C functions of types only known at runtime
6796to be called from Haskell.")
6797 (license license:bsd-3)))
6798
6799(define-public ghc-libmpd
6800 (package
6801 (name "ghc-libmpd")
bbf9845f 6802 (version "0.9.0.10")
dddbc90c
RV
6803 (source
6804 (origin
6805 (method url-fetch)
6806 (uri (string-append
6807 "mirror://hackage/package/libmpd/libmpd-"
6808 version
6809 ".tar.gz"))
6810 (sha256
6811 (base32
bbf9845f 6812 "0vy287mn1vk8kvij5i3hc0p02l886cpsq5dds7kl6g520si3abkb"))))
dddbc90c
RV
6813 (build-system haskell-build-system)
6814 ;; Tests fail on i686.
6815 ;; See https://github.com/vimus/libmpd-haskell/issues/112
6816 (arguments `(#:tests? #f))
6817 (inputs
6818 `(("ghc-attoparsec" ,ghc-attoparsec)
6819 ("ghc-old-locale" ,ghc-old-locale)
6820 ("ghc-data-default-class" ,ghc-data-default-class)
6821 ("ghc-network" ,ghc-network)
bbf9845f 6822 ("ghc-safe-exceptions" ,ghc-safe-exceptions)
dddbc90c
RV
6823 ("ghc-utf8-string" ,ghc-utf8-string)))
6824 (native-inputs
6825 `(("ghc-quickcheck" ,ghc-quickcheck)
6826 ("ghc-hspec" ,ghc-hspec)
6827 ("hspec-discover" ,hspec-discover)))
6828 (home-page "https://github.com/vimus/libmpd-haskell")
6829 (synopsis "Haskell client library for the Music Player Daemon")
6830 (description "This package provides a pure Haskell client library for the
6831Music Player Daemon.")
6832 (license license:expat)))
6833
e34df1c3
TS
6834(define-public ghc-lib-parser
6835 (package
6836 (name "ghc-lib-parser")
6837 (version "8.8.0.20190424")
6838 (source
6839 (origin
6840 (method url-fetch)
6841 (uri (string-append "https://hackage.haskell.org/package/"
6842 "ghc-lib-parser/ghc-lib-parser-" version ".tar.gz"))
6843 (sha256
6844 (base32
6845 "12gsh994pr13bsybwlravmi21la66dyw74pk74yfw2pnz682wv10"))))
6846 (build-system haskell-build-system)
7e62ebb3 6847 (outputs '("out" "static" "doc")) ; documentation is 39M
e34df1c3
TS
6848 (native-inputs
6849 `(("ghc-alex" ,ghc-alex)
6850 ("ghc-happy" ,ghc-happy)))
6851 (home-page "https://github.com/digital-asset/ghc-lib")
6852 (synopsis "The GHC API, decoupled from GHC versions")
6853 (description "This library implements the GHC API. It is like the
6854compiler-provided @code{ghc} package, but it can be loaded on many
6855compiler versions.")
6856 (license license:bsd-3)))
6857
dddbc90c
RV
6858(define-public ghc-libxml
6859 (package
6860 (name "ghc-libxml")
6861 (version "0.1.1")
6862 (source
6863 (origin
6864 (method url-fetch)
6865 (uri (string-append "https://hackage.haskell.org/package/libxml/"
6866 "libxml-" version ".tar.gz"))
6867 (sha256
6868 (base32
6869 "01zvk86kg726lf2vnlr7dxiz7g3xwi5a4ak9gcfbwyhynkzjmsfi"))))
6870 (build-system haskell-build-system)
6871 (inputs
6872 `(("libxml2" ,libxml2)))
6873 (arguments
6874 `(#:configure-flags
6875 `(,(string-append "--extra-include-dirs="
6876 (assoc-ref %build-inputs "libxml2")
6877 "/include/libxml2"))))
6878 (home-page "https://hackage.haskell.org/package/libxml")
6879 (synopsis "Haskell bindings to libxml2")
6880 (description
6881 "This library provides minimal Haskell binding to libxml2.")
6882 (license license:bsd-3)))
6883
0c2d6fc2
TS
6884(define-public ghc-libyaml
6885 (package
6886 (name "ghc-libyaml")
6887 (version "0.1.1.0")
6888 (source
6889 (origin
6890 (method url-fetch)
6891 (uri (string-append "https://hackage.haskell.org/package/"
6892 "libyaml/libyaml-" version ".tar.gz"))
6893 (sha256
6894 (base32
6895 "0psznm9c3yjsyj9aj8m2svvv9m2v0x90hnwarcx5sbswyi3l00va"))
6896 (modules '((guix build utils)))
6897 (snippet
6898 ;; Delete bundled LibYAML.
6899 '(begin
6900 (delete-file-recursively "libyaml_src")
6901 #t))))
6902 (build-system haskell-build-system)
6903 (arguments
54a5fd07
TS
6904 `(#:configure-flags `("--flags=system-libyaml")
6905 #:extra-directories ("libyaml")))
0c2d6fc2
TS
6906 (inputs
6907 `(("ghc-conduit" ,ghc-conduit)
6908 ("ghc-resourcet" ,ghc-resourcet)
1b35d303 6909 ("libyaml" ,libyaml)))
0c2d6fc2
TS
6910 (home-page "https://github.com/snoyberg/yaml#readme")
6911 (synopsis "Low-level, streaming YAML interface.")
6912 (description "This package provides a Haskell wrapper over the
6913LibYAML C library.")
6914 (license license:bsd-3)))
6915
dddbc90c
RV
6916(define-public ghc-lifted-async
6917 (package
6918 (name "ghc-lifted-async")
b5b6d7ea 6919 (version "0.10.0.4")
dddbc90c
RV
6920 (source
6921 (origin
6922 (method url-fetch)
6923 (uri (string-append
6924 "https://hackage.haskell.org/package/lifted-async/lifted-async-"
6925 version ".tar.gz"))
6926 (sha256
6927 (base32
b5b6d7ea 6928 "0cwl1d0wjpdk0v1l1qxiqiksmak950c8gx169c1q77cg0z18ijf9"))))
dddbc90c
RV
6929 (build-system haskell-build-system)
6930 (inputs
6931 `(("ghc-async" ,ghc-async)
6932 ("ghc-lifted-base" ,ghc-lifted-base)
6933 ("ghc-transformers-base" ,ghc-transformers-base)
6934 ("ghc-monad-control" ,ghc-monad-control)
6935 ("ghc-constraints" ,ghc-constraints)
6936 ("ghc-hunit" ,ghc-hunit)
6937 ("ghc-tasty" ,ghc-tasty)
6938 ("ghc-tasty-expected-failure" ,ghc-tasty-expected-failure)
6939 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
6940 ("ghc-tasty-th" ,ghc-tasty-th)))
6941 (home-page "https://github.com/maoe/lifted-async")
6942 (synopsis "Run lifted IO operations asynchronously and wait for their results")
6943 (description
6944 "This package provides IO operations from @code{async} package lifted to any
6945instance of @code{MonadBase} or @code{MonadBaseControl}.")
6946 (license license:bsd-3)))
6947
6948(define-public ghc-lifted-base
6949 (package
6950 (name "ghc-lifted-base")
6951 (version "0.2.3.12")
6952 (source
6953 (origin
6954 (method url-fetch)
6955 (uri (string-append
6956 "https://hackage.haskell.org/package/lifted-base/lifted-base-"
6957 version
6958 ".tar.gz"))
6959 (sha256
6960 (base32
6961 "1i8p8d3rkdh21bhgjjh32vd7qqjr7jq7p59qds0aw2kmargsjd61"))))
6962 (build-system haskell-build-system)
6963 (arguments `(#:tests? #f)) ; FIXME: Missing testing libraries.
6964 (inputs
6965 `(("ghc-transformers-base" ,ghc-transformers-base)
6966 ("ghc-monad-control" ,ghc-monad-control)
6967 ("ghc-transformers-compat" ,ghc-transformers-compat)
6968 ("ghc-hunit" ,ghc-hunit)))
6969 (home-page "https://github.com/basvandijk/lifted-base")
6970 (synopsis "Lifted IO operations from the base library")
6971 (description "Lifted-base exports IO operations from the @code{base}
6972library lifted to any instance of @code{MonadBase} or @code{MonadBaseControl}.
6973Note that not all modules from @code{base} are converted yet. The package
6974includes a copy of the @code{monad-peel} test suite written by Anders
6975Kaseorg.")
6976 (license license:bsd-3)))
6977
6978(define-public ghc-linear
6979 (package
6980 (name "ghc-linear")
86526f37 6981 (version "1.20.9")
dddbc90c
RV
6982 (source
6983 (origin
6984 (method url-fetch)
6985 (uri (string-append "https://hackage.haskell.org/package/linear/"
6986 "linear-" version ".tar.gz"))
6987 (sha256
6988 (base32
86526f37 6989 "0h7yqigq593n7wsl7nz6a5f137wznm7y679wsii0ph0zsc4v5af5"))))
dddbc90c
RV
6990 (build-system haskell-build-system)
6991 (inputs
6992 `(("ghc-adjunctions" ,ghc-adjunctions)
6993 ("ghc-base-orphans" ,ghc-base-orphans)
6994 ("ghc-bytes" ,ghc-bytes)
6995 ("ghc-cereal" ,ghc-cereal)
6996 ("ghc-distributive" ,ghc-distributive)
6997 ("ghc-hashable" ,ghc-hashable)
6998 ("ghc-lens" ,ghc-lens)
6999 ("ghc-reflection" ,ghc-reflection)
7000 ("ghc-semigroups" ,ghc-semigroups)
7001 ("ghc-semigroupoids" ,ghc-semigroupoids)
7002 ("ghc-tagged" ,ghc-tagged)
7003 ("ghc-transformers-compat" ,ghc-transformers-compat)
7004 ("ghc-unordered-containers" ,ghc-unordered-containers)
7005 ("ghc-vector" ,ghc-vector)
7006 ("ghc-void" ,ghc-void)))
7007 (native-inputs
7008 `(("cabal-doctest" ,cabal-doctest)
7009 ("ghc-doctest" ,ghc-doctest)
7010 ("ghc-simple-reflect" ,ghc-simple-reflect)
7011 ("ghc-test-framework" ,ghc-test-framework)
7012 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
7013 ("ghc-hunit" ,ghc-hunit)))
702a1012 7014 (home-page "https://github.com/ekmett/linear/")
dddbc90c
RV
7015 (synopsis "Linear algebra library for Haskell")
7016 (description
7017 "This package provides types and combinators for linear algebra on free
7018vector spaces.")
7019 (license license:bsd-3)))
1307e4c7
JS
7020
7021(define-public ghc-listlike
7022 (package
7023 (name "ghc-listlike")
7024 (version "4.6.2")
7025 (source
7026 (origin
7027 (method url-fetch)
7028 (uri
7029 (string-append
7030 "https://hackage.haskell.org/package/ListLike/ListLike-"
7031 version ".tar.gz"))
7032 (sha256
7033 (base32
7034 "0m65x8yaq7q50gznln8mga2wrc8cvjx6gw9rim8s7xqcrx6y5zjh"))))
7035 (build-system haskell-build-system)
7036 (inputs
7037 `(("ghc-vector" ,ghc-vector)
7038 ("ghc-dlist" ,ghc-dlist)
7039 ("ghc-fmlist" ,ghc-fmlist)
7040 ("ghc-hunit" ,ghc-hunit)
7041 ("ghc-quickcheck" ,ghc-quickcheck)
7042 ("ghc-random" ,ghc-random)
7043 ("ghc-utf8-string" ,ghc-utf8-string)))
7044 (home-page "https://github.com/JohnLato/listlike")
7045 (synopsis "Generic support for list-like structures")
7046 (description "The ListLike module provides a common interface to the
7047various Haskell types that are list-like. Predefined interfaces include
7048standard Haskell lists, Arrays, ByteStrings, and lazy ByteStrings.
7049Custom types can easily be made ListLike instances as well.
7050
7051ListLike also provides for String-like types, such as String and
7052ByteString, for types that support input and output, and for types that
7053can handle infinite lists.")
7054 (license license:bsd-3)))
dddbc90c 7055
84436be0
J
7056(define-public ghc-llvm-hs-pure
7057 (package
7058 (name "ghc-llvm-hs-pure")
7059 (version "9.0.0")
7060 (source
7061 (origin
7062 (method url-fetch)
7063 (uri (string-append "https://hackage.haskell.org/package/llvm-hs-pure/"
7064 "llvm-hs-pure-" version ".tar.gz"))
7065 (sha256
7066 (base32
7067 "0pxb5ah8r5pzpz2ibqw3g9g1isigb4z7pbzfrwr8kmcjn74ab3kf"))))
7068 (build-system haskell-build-system)
7069 (inputs
7070 `(("ghc-attoparsec" ,ghc-attoparsec)
7071 ("ghc-fail" ,ghc-fail)
7072 ("ghc-unordered-containers" ,ghc-unordered-containers)))
7073 (native-inputs
7074 `(("ghc-tasty" ,ghc-tasty)
7075 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
7076 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
7077 (home-page "https://github.com/llvm-hs/llvm-hs/")
7078 (synopsis "Pure Haskell LLVM functionality (no FFI)")
7079 (description "llvm-hs-pure is a set of pure Haskell types and functions
7080for interacting with LLVM. It includes an algebraic datatype (ADT) to represent
7081LLVM IR. The llvm-hs package builds on this one with FFI bindings to LLVM, but
7082llvm-hs-pure does not require LLVM to be available.")
7083 (license license:bsd-3)))
7084
e3ee8023
J
7085(define-public ghc-llvm-hs
7086 (package
7087 (name "ghc-llvm-hs")
7088 (version "9.0.1")
7089 (source
7090 (origin
7091 (method url-fetch)
7092 (uri (string-append "https://hackage.haskell.org/package/llvm-hs/llvm-hs-"
7093 version ".tar.gz"))
7094 (sha256
7095 (base32
7096 "0723xgh45h9cyxmmjsvxnsp8bpn1ljy4qgh7a7vqq3sj9d6wzq00"))))
7097 (build-system haskell-build-system)
7098 (inputs
7099 `(("ghc-attoparsec" ,ghc-attoparsec)
7100 ("ghc-exceptions" ,ghc-exceptions)
7101 ("ghc-utf8-string" ,ghc-utf8-string)
7102 ("ghc-llvm-hs-pure" ,ghc-llvm-hs-pure)
7103 ("llvm" ,llvm-9)))
7104 (native-inputs
7105 `(("ghc-tasty" ,ghc-tasty)
7106 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
7107 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
7108 ("ghc-quickcheck" ,ghc-quickcheck)
7109 ("ghc-temporary" ,ghc-temporary)
7110 ("ghc-pretty-show" ,ghc-pretty-show)
7111 ("ghc-temporary" ,ghc-temporary)))
7112 (home-page "https://github.com/llvm-hs/llvm-hs/")
7113 (synopsis "General purpose LLVM bindings for Haskell")
7114 (description "llvm-hs is a set of Haskell bindings for LLVM. Unlike other
7115current Haskell bindings, it uses an algebraic datatype (ADT) to represent LLVM
7116IR, and so offers two advantages: it handles almost all of the stateful
7117complexities of using the LLVM API to build IR; and it supports moving IR not
7118only from Haskell into LLVM C++ objects, but the other direction - from LLVM C++
7119into Haskell.")
7120 (license license:bsd-3)))
7121
dddbc90c
RV
7122(define-public ghc-logging-facade
7123 (package
7124 (name "ghc-logging-facade")
7125 (version "0.3.0")
7126 (source (origin
7127 (method url-fetch)
7128 (uri (string-append "https://hackage.haskell.org/package/"
7129 "logging-facade/logging-facade-"
7130 version ".tar.gz"))
7131 (sha256
7132 (base32
7133 "0d0lwxxgd16is9aw6v3ps4r9prv3dj8xscmm45fvzq3nicjiawcf"))))
7134 (build-system haskell-build-system)
7135 (native-inputs
7136 `(("ghc-hspec" ,ghc-hspec)
7137 ("hspec-discover" ,hspec-discover)))
7138 (home-page "https://hackage.haskell.org/package/logging-facade")
7139 (synopsis "Simple logging abstraction that allows multiple back-ends")
7140 (description
7141 "This package provides a simple logging abstraction that allows multiple
7142back-ends.")
7143 (license license:expat)))
7144
7145(define-public ghc-logict
7146 (package
7147 (name "ghc-logict")
79d9326f 7148 (version "0.7.0.2")
dddbc90c
RV
7149 (source
7150 (origin
7151 (method url-fetch)
7152 (uri (string-append
7153 "https://hackage.haskell.org/package/logict/logict-"
7154 version
7155 ".tar.gz"))
7156 (sha256
7157 (base32
79d9326f 7158 "1xfgdsxg0lp8m0a2cb83rcxrnnc37asfikay2kydi933anh9ihfc"))))
dddbc90c 7159 (build-system haskell-build-system)
79d9326f
TS
7160 (native-inputs
7161 `(("ghc-tasty" ,ghc-tasty)
7162 ("ghc-tasty-hunit" ,ghc-tasty-hunit)))
dddbc90c
RV
7163 (home-page "http://code.haskell.org/~dolio/")
7164 (synopsis "Backtracking logic-programming monad")
7165 (description "This library provides a continuation-based, backtracking,
7166logic programming monad. An adaptation of the two-continuation implementation
7167found in the paper \"Backtracking, Interleaving, and Terminating Monad
7168Transformers\" available @uref{http://okmij.org/ftp/papers/LogicT.pdf,
7169online}.")
7170 (license license:bsd-3)))
7171
7172(define-public ghc-lzma
7173 (package
7174 (name "ghc-lzma")
7175 (version "0.0.0.3")
7176 (source
7177 (origin
7178 (method url-fetch)
7179 (uri (string-append "https://hackage.haskell.org/package/lzma/"
7180 "lzma-" version ".tar.gz"))
7181 (sha256
7182 (base32
7183 "0i416gqi8j55nd1pqbkxvf3f6hn6fjys6gq98lkkxphva71j30xg"))))
7184 (build-system haskell-build-system)
7185 (arguments
7186 '(#:tests? #f ; requires older versions of QuickCheck and tasty.
7187 #:cabal-revision
7188 ("3" "1sify6gnsalyp6dakfzi0mdy5jcz2kcp9jsdsgkmxd40nfzgd44m")))
7189 (native-inputs
7190 `(("ghc-hunit" ,ghc-hunit)
7191 ("ghc-quickcheck" ,ghc-quickcheck)
7192 ("ghc-tasty" ,ghc-tasty)
7193 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
7194 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
7195 (home-page "https://github.com/hvr/lzma")
7196 (synopsis "LZMA/XZ compression and decompression")
7197 (description
7198 "This package provides a pure interface for compressing and
7199decompressing LZMA streams of data represented as lazy @code{ByteString}s. A
7200monadic incremental interface is provided as well.")
7201 (license license:bsd-3)))
7202
7203(define-public ghc-lzma-conduit
7204 (package
7205 (name "ghc-lzma-conduit")
7206 (version "1.2.1")
7207 (source
7208 (origin
7209 (method url-fetch)
7210 (uri (string-append "https://hackage.haskell.org/package/lzma-conduit/"
7211 "lzma-conduit-" version ".tar.gz"))
7212 (sha256
7213 (base32
7214 "0hm72da7xk9l3zxjh274yg444vf405djxqbkf3q3p2qhicmxlmg9"))))
7215 (build-system haskell-build-system)
7216 (inputs
7217 `(("ghc-conduit" ,ghc-conduit)
7218 ("ghc-lzma" ,ghc-lzma)
7219 ("ghc-resourcet" ,ghc-resourcet)))
7220 (native-inputs
7221 `(("ghc-base-compat" ,ghc-base-compat)
7222 ("ghc-test-framework" ,ghc-test-framework)
7223 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
7224 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)
7225 ("ghc-hunit" ,ghc-hunit)
7226 ("ghc-quickcheck" ,ghc-quickcheck)))
7227 (home-page "https://github.com/alphaHeavy/lzma-conduit")
7228 (synopsis "Conduit interface for lzma/xz compression")
7229 (description
7230 "This package provides a @code{Conduit} interface for the LZMA
7231compression algorithm used in the @code{.xz} file format.")
7232 (license license:bsd-3)))
7233
e405912c
KM
7234(define-public ghc-magic
7235 (package
7236 (name "ghc-magic")
7237 (version "1.1")
7238 (source
7239 (origin
7240 (method url-fetch)
7241 (uri (string-append
7242 "https://hackage.haskell.org/package/magic/magic-"
7243 version ".tar.gz"))
7244 (sha256
7245 (base32
7246 "10p0gjjjwr1dda7hahwrwn5njbfhl67arq3v3nf1jr3vymlkn75j"))))
7247 (build-system haskell-build-system)
3ef91e15 7248 (home-page "https://hackage.haskell.org/package/magic")
e405912c
KM
7249 (synopsis "Interface to C file/magic library")
7250 (description
7251 "This package provides a full-featured binding to the C libmagic library.
7252With it, you can determine the type of a file by examining its contents rather
7253than its name.")
7254 (license license:bsd-3)))
7255
bcfe9dba
JS
7256(define-public ghc-managed
7257 (package
7258 (name "ghc-managed")
7259 (version "1.0.6")
7260 (source
7261 (origin
7262 (method url-fetch)
7263 (uri (string-append
7264 "mirror://hackage/package/managed/managed-"
7265 version
7266 ".tar.gz"))
7267 (sha256
7268 (base32
7269 "1kbrw99yh5x5blykmx2n88mplbbi4ss1ij5j17b7asw6q0ihm9zi"))))
7270 (build-system haskell-build-system)
7271 (home-page "http://hackage.haskell.org/package/managed")
7272 (synopsis "Monad for managed values")
7273 (description
7274 "In Haskell you very often acquire values using the with... idiom using
7275functions of type (a -> IO r) -> IO r. This idiom forms a Monad, which is a
7276special case of the ContT monad (from transformers) or the Codensity
7277monad (from kan-extensions). The main purpose behind this package is to
7278provide a restricted form of these monads specialized to this unusually common
7279case.
7280
7281The reason this package defines a specialized version of these types
7282is to:
7283
7284@itemize
7285@item be more beginner-friendly,
7286@item simplify inferred types and error messages, and:
7287@item provide some additional type class instances that would otherwise be
7288orphan instances
7289@end itemize")
7290 (license license:bsd-3)))
7291
dddbc90c
RV
7292(define-public ghc-markdown-unlit
7293 (package
7294 (name "ghc-markdown-unlit")
7295 (version "0.5.0")
7296 (source (origin
7297 (method url-fetch)
7298 (uri (string-append
7299 "mirror://hackage/package/markdown-unlit/"
7300 "markdown-unlit-" version ".tar.gz"))
7301 (sha256
7302 (base32
7303 "1gy79vr85vcp13rdjh0hz7zv6daqqffww4j0cqn2lpjjh9xhsbg7"))))
7304 (build-system haskell-build-system)
7305 (inputs
7306 `(("ghc-base-compat" ,ghc-base-compat)
7307 ("ghc-hspec" ,ghc-hspec)
7308 ("ghc-quickcheck" ,ghc-quickcheck)
7309 ("ghc-silently" ,ghc-silently)
7310 ("ghc-stringbuilder" ,ghc-stringbuilder)
7311 ("ghc-temporary" ,ghc-temporary)
7312 ("hspec-discover" ,hspec-discover)))
7313 (home-page "https://github.com/sol/markdown-unlit#readme")
7314 (synopsis "Literate Haskell support for Markdown")
7315 (description "This package allows you to have a README.md that at the
7316same time is a literate Haskell program.")
7317 (license license:expat)))
7318
7319(define-public ghc-math-functions
7320 (package
7321 (name "ghc-math-functions")
b45de2bf 7322 (version "0.3.3.0")
dddbc90c
RV
7323 (source
7324 (origin
7325 (method url-fetch)
7326 (uri (string-append "https://hackage.haskell.org/package/"
7327 "math-functions-" version "/"
7328 "math-functions-" version ".tar.gz"))
7329 (sha256
7330 (base32
b45de2bf 7331 "1s5nbs40sc3r4z08n0j8bw40cy0zkp03fjjn3p27zkd4fvm9kib3"))))
dddbc90c
RV
7332 (build-system haskell-build-system)
7333 (arguments `(#:tests? #f)) ; FIXME: 1 test fails.
7334 (inputs
b45de2bf
TS
7335 `(("ghc-data-default-class" ,ghc-data-default-class)
7336 ("ghc-vector" ,ghc-vector)
dddbc90c
RV
7337 ("ghc-vector-th-unbox" ,ghc-vector-th-unbox)))
7338 (native-inputs
7339 `(("ghc-hunit" ,ghc-hunit)
7340 ("ghc-quickcheck" ,ghc-quickcheck)
7341 ("ghc-erf" ,ghc-erf)
7342 ("ghc-test-framework" ,ghc-test-framework)
7343 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
7344 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
7345 (home-page "https://github.com/bos/math-functions")
7346 (synopsis "Special functions and Chebyshev polynomials for Haskell")
7347 (description "This Haskell library provides implementations of
7348special mathematical functions and Chebyshev polynomials. These
7349functions are often useful in statistical and numerical computing.")
7350 (license license:bsd-3)))
7351
7352(define-public ghc-megaparsec
7353 (package
7354 (name "ghc-megaparsec")
03b0c92e 7355 (version "7.0.5")
dddbc90c
RV
7356 (source
7357 (origin
7358 (method url-fetch)
7359 (uri (string-append "https://hackage.haskell.org/package/"
7360 "megaparsec/megaparsec-"
7361 version ".tar.gz"))
7362 (sha256
7363 (base32
03b0c92e 7364 "0bqx1icbmk8s7wmbcdzsgnlh607c7kzg8l80cp02dxr5valjxp7j"))))
dddbc90c 7365 (build-system haskell-build-system)
dddbc90c
RV
7366 (inputs
7367 `(("ghc-case-insensitive" ,ghc-case-insensitive)
7368 ("ghc-parser-combinators" ,ghc-parser-combinators)
7369 ("ghc-scientific" ,ghc-scientific)))
7370 (native-inputs
7371 `(("ghc-quickcheck" ,ghc-quickcheck)
7372 ("ghc-hspec" ,ghc-hspec)
7373 ("ghc-hspec-expectations" ,ghc-hspec-expectations)
7374 ("hspec-discover" ,hspec-discover)))
7375 (home-page "https://github.com/mrkkrp/megaparsec")
7376 (synopsis "Monadic parser combinators")
7377 (description
7378 "This is an industrial-strength monadic parser combinator library.
7379Megaparsec is a feature-rich package that strikes a nice balance between
7380speed, flexibility, and quality of parse errors.")
7381 (license license:bsd-2)))
7382
7383(define-public ghc-memory
7384 (package
7385 (name "ghc-memory")
d2c7d336 7386 (version "0.14.18")
dddbc90c
RV
7387 (source (origin
7388 (method url-fetch)
7389 (uri (string-append "https://hackage.haskell.org/package/"
7390 "memory/memory-" version ".tar.gz"))
7391 (sha256
7392 (base32
d2c7d336 7393 "01rmq3vagxzjmm96qnfxk4f0516cn12bp5m8inn8h5r918bqsigm"))))
dddbc90c
RV
7394 (build-system haskell-build-system)
7395 (inputs
7396 `(("ghc-basement" ,ghc-basement)
7397 ("ghc-foundation" ,ghc-foundation)))
7398 (native-inputs
7399 `(("ghc-tasty" ,ghc-tasty)
7400 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
7401 ("ghc-tasty-hunit" ,ghc-tasty-hunit)))
7402 (home-page "https://github.com/vincenthz/hs-memory")
7403 (synopsis "Memory abstractions for Haskell")
7404 (description
7405 "This package provides memory abstractions, such as chunk of memory,
7406polymorphic byte array management and manipulation functions. It contains a
7407polymorphic byte array abstraction and functions similar to strict ByteString,
7408different type of byte array abstraction, raw memory IO operations (memory
7409set, memory copy, ..) and more")
7410 (license license:bsd-3)))
7411
7412(define-public ghc-memotrie
7413 (package
7414 (name "ghc-memotrie")
7415 (version "0.6.9")
7416 (source
7417 (origin
7418 (method url-fetch)
7419 (uri (string-append
7420 "https://hackage.haskell.org/package/MemoTrie/MemoTrie-"
7421 version
7422 ".tar.gz"))
7423 (sha256
7424 (base32
7425 "157p0pi6rrq74a35mq6zkkycv4ah7xhkbrcmnkb9xf7pznw4aq0x"))))
7426 (build-system haskell-build-system)
7427 (inputs
7428 `(("ghc-newtype-generics" ,ghc-newtype-generics)))
7429 (home-page "https://github.com/conal/MemoTrie")
7430 (synopsis "Trie-based memo functions")
7431 (description "This package provides a functional library for creating
7432efficient memo functions using tries.")
7433 (license license:bsd-3)))
7434
7435(define-public ghc-microlens
7436 (package
7437 (name "ghc-microlens")
82478c58 7438 (version "0.4.10")
dddbc90c
RV
7439 (source
7440 (origin
7441 (method url-fetch)
7442 (uri (string-append "https://hackage.haskell.org/package/"
7443 "microlens-" version "/"
7444 "microlens-" version ".tar.gz"))
7445 (sha256
7446 (base32
82478c58 7447 "1v277yyy4p9q57xr2lfp6qs24agglfczmcabrapxrzci3jfshmcw"))))
dddbc90c
RV
7448 (build-system haskell-build-system)
7449 (home-page
7450 "https://github.com/aelve/microlens")
7451 (synopsis "Provides a tiny lens Haskell library with no dependencies")
7452 (description "This Haskell package provides a lens library, just like
7453@code{ghc-lens}, but smaller. It provides essential lenses and
7454traversals (like @code{_1} and @code{_Just}), as well as ones which are simply
7455nice to have (like @code{each}, @code{at}, and @code{ix}), and some
7456combinators (like @code{failing} and @code{singular}), but everything else is
7457stripped. As the result, this package has no dependencies.")
7458 (license license:bsd-3)))
7459
1cd3333e
TS
7460(define-public ghc-microlens-aeson
7461 (package
7462 (name "ghc-microlens-aeson")
7463 (version "2.3.0.4")
7464 (source
7465 (origin
7466 (method url-fetch)
7467 (uri (string-append "https://hackage.haskell.org/package/"
7468 "microlens-aeson/microlens-aeson-"
7469 version ".tar.gz"))
b4a00fec 7470 (patches (search-patches "ghc-microlens-aeson-fix-tests.patch"))
1cd3333e
TS
7471 (sha256
7472 (base32
7473 "0w630kk5bnily1qh41081gqgbwmslrh5ad21899gwnb2r3jripyw"))))
7474 (build-system haskell-build-system)
7475 (inputs
7476 `(("ghc-aeson" ,ghc-aeson)
7477 ("ghc-attoparsec" ,ghc-attoparsec)
7478 ("ghc-hashable" ,ghc-hashable)
7479 ("ghc-microlens" ,ghc-microlens)
7480 ("ghc-scientific" ,ghc-scientific)
7481 ("ghc-unordered-containers" ,ghc-unordered-containers)
7482 ("ghc-vector" ,ghc-vector)))
7483 (native-inputs
7484 `(("ghc-tasty" ,ghc-tasty)
7485 ("ghc-tasty-hunit" ,ghc-tasty-hunit)))
7486 (home-page "https://github.com/fosskers/microlens-aeson")
7487 (synopsis "Law-abiding lenses for Aeson, using microlens")
7488 (description "This library provides law-abiding lenses for Aeson, using
7489microlens.")
7490 (license license:expat)))
7491
dddbc90c
RV
7492(define-public ghc-microlens-ghc
7493 (package
7494 (name "ghc-microlens-ghc")
027beb55 7495 (version "0.4.10")
dddbc90c
RV
7496 (source
7497 (origin
7498 (method url-fetch)
7499 (uri (string-append
7500 "https://hackage.haskell.org/package/microlens-ghc/microlens-ghc-"
7501 version
7502 ".tar.gz"))
7503 (sha256
7504 (base32
027beb55 7505 "102dbrdsdadxbbhvx8avv1wbk84767a7lkb8ckp3zxk9g7qlly33"))))
dddbc90c
RV
7506 (build-system haskell-build-system)
7507 (inputs `(("ghc-microlens" ,ghc-microlens)))
7508 (home-page "https://github.com/monadfix/microlens")
7509 (synopsis "Use @code{microlens} with GHC libraries like @code{array}")
7510 (description "This library provides everything that @code{microlens}
7511provides plus instances to make @code{each}, @code{at}, and @code{ix}
7512usable with arrays, @code{ByteString}, and containers. This package is
7513a part of the @uref{http://hackage.haskell.org/package/microlens,
7514microlens} family; see the readme
7515@uref{https://github.com/aelve/microlens#readme, on Github}.")
7516 (license license:bsd-3)))
7517
7518(define-public ghc-microlens-mtl
7519 (package
7520 (name "ghc-microlens-mtl")
7521 (version "0.1.11.1")
7522 (source
7523 (origin
7524 (method url-fetch)
7525 (uri (string-append
7526 "https://hackage.haskell.org/package/microlens-mtl/microlens-mtl-"
7527 version
7528 ".tar.gz"))
7529 (sha256
7530 (base32
7531 "0l6z1gkzwcpv89bxf5vgfrjb6gq2pj7sjjc53nvi5b9alx34zryk"))))
7532 (build-system haskell-build-system)
7533 (inputs
7534 `(("ghc-microlens" ,ghc-microlens)
7535 ("ghc-transformers-compat" ,ghc-transformers-compat)))
7536 (home-page "https://github.com/monadfix/microlens")
7537 (synopsis
7538 "@code{microlens} support for Reader/Writer/State from mtl")
7539 (description
7540 "This package contains functions (like @code{view} or @code{+=}) which
7541work on @code{MonadReader}, @code{MonadWriter}, and @code{MonadState} from the
7542mtl package. This package is a part of the
7543@uref{http://hackage.haskell.org/package/microlens, microlens} family; see the
7544readme @uref{https://github.com/aelve/microlens#readme, on Github}.")
7545 (license license:bsd-3)))
7546
7547(define-public ghc-microlens-platform
7548 (package
7549 (name "ghc-microlens-platform")
85decc1f 7550 (version "0.3.11")
dddbc90c
RV
7551 (source
7552 (origin
7553 (method url-fetch)
7554 (uri (string-append
7555 "https://hackage.haskell.org/package/"
7556 "microlens-platform/microlens-platform-" version ".tar.gz"))
7557 (sha256
7558 (base32
85decc1f 7559 "18950lxgmsg5ksvyyi3zs1smjmb1qf1q73a3p3g44bh21miz0xwb"))))
dddbc90c
RV
7560 (build-system haskell-build-system)
7561 (inputs
7562 `(("ghc-hashable" ,ghc-hashable)
7563 ("ghc-microlens" ,ghc-microlens)
7564 ("ghc-microlens-ghc" ,ghc-microlens-ghc)
7565 ("ghc-microlens-mtl" ,ghc-microlens-mtl)
7566 ("ghc-microlens-th" ,ghc-microlens-th)
7567 ("ghc-unordered-containers" ,ghc-unordered-containers)
7568 ("ghc-vector" ,ghc-vector)))
7569 (home-page "https://github.com/monadfix/microlens")
7570 (synopsis "Feature-complete microlens")
7571 (description
7572 "This package exports a module which is the recommended starting point
7573for using @uref{http://hackage.haskell.org/package/microlens, microlens} if
7574you aren't trying to keep your dependencies minimal. By importing
7575@code{Lens.Micro.Platform} you get all functions and instances from
7576@uref{http://hackage.haskell.org/package/microlens, microlens},
7577@uref{http://hackage.haskell.org/package/microlens-th, microlens-th},
7578@uref{http://hackage.haskell.org/package/microlens-mtl, microlens-mtl},
7579@uref{http://hackage.haskell.org/package/microlens-ghc, microlens-ghc}, as
7580well as instances for @code{Vector}, @code{Text}, and @code{HashMap}. The
7581minor and major versions of @code{microlens-platform} are incremented whenever
7582the minor and major versions of any other @code{microlens} package are
7583incremented, so you can depend on the exact version of
7584@code{microlens-platform} without specifying the version of @code{microlens}
7585you need. This package is a part of the
7586@uref{http://hackage.haskell.org/package/microlens, microlens} family; see the
7587readme @uref{https://github.com/aelve/microlens#readme, on Github}.")
7588 (license license:bsd-3)))
7589
7590(define-public ghc-microlens-th
7591 (package
7592 (name "ghc-microlens-th")
7ae52867 7593 (version "0.4.2.3")
dddbc90c
RV
7594 (source
7595 (origin
7596 (method url-fetch)
7597 (uri (string-append "https://hackage.haskell.org/package/"
7598 "microlens-th-" version "/"
7599 "microlens-th-" version ".tar.gz"))
7600 (sha256
7601 (base32
7ae52867 7602 "13qw0pwcgd6f6i39rwgqwcwk1d4da5x7wv3gna7gdlxaq331h41j"))))
dddbc90c 7603 (build-system haskell-build-system)
7ae52867
TS
7604 (arguments
7605 `(#:cabal-revision
7606 ("1" "167in7b1qhgrspx81bdm2jyg9qji66sk7id282c0s99kmp0d01n6")))
dddbc90c
RV
7607 (inputs `(("ghc-microlens" ,ghc-microlens)
7608 ("ghc-th-abstraction" ,ghc-th-abstraction)))
7609 (home-page
7610 "https://github.com/aelve/microlens")
7611 (synopsis "Automatic generation of record lenses for
7612@code{ghc-microlens}")
7613 (description "This Haskell package lets you automatically generate lenses
7614for data types; code was extracted from the lens package, and therefore
7615generated lenses are fully compatible with ones generated by lens (and can be
7616used both from lens and microlens).")
7617 (license license:bsd-3)))
7618
7619(define-public ghc-missingh
7620 (package
7621 (name "ghc-missingh")
641207cb 7622 (version "1.4.1.0")
dddbc90c
RV
7623 (source
7624 (origin
7625 (method url-fetch)
7626 (uri (string-append "https://hackage.haskell.org/package/MissingH/"
7627 "MissingH-" version ".tar.gz"))
7628 (sha256
7629 (base32
641207cb 7630 "1jp0vk6w9a7fzrbxfhx773105jp2s1n50klq9ak6spfl7bgx5v29"))))
dddbc90c
RV
7631 (build-system haskell-build-system)
7632 ;; Tests require the unmaintained testpack package, which depends on the
7633 ;; outdated QuickCheck version 2.7, which can no longer be built with
7634 ;; recent versions of GHC and Haskell libraries.
7635 (arguments '(#:tests? #f))
7636 (inputs
7637 `(("ghc-network" ,ghc-network)
7638 ("ghc-hunit" ,ghc-hunit)
7639 ("ghc-regex-compat" ,ghc-regex-compat)
7640 ("ghc-hslogger" ,ghc-hslogger)
7641 ("ghc-random" ,ghc-random)
7642 ("ghc-old-time" ,ghc-old-time)
7643 ("ghc-old-locale" ,ghc-old-locale)))
7644 (native-inputs
7645 `(("ghc-errorcall-eq-instance" ,ghc-errorcall-eq-instance)
7646 ("ghc-quickcheck" ,ghc-quickcheck)
7647 ("ghc-hunit" ,ghc-hunit)))
f1841ccf
TGR
7648 ;; ‘Official’ <http://software.complete.org/missingh> redirects to a 404.
7649 (home-page "https://github.com/haskell-hvr/missingh")
dddbc90c
RV
7650 (synopsis "Large utility library")
7651 (description
7652 "MissingH is a library of all sorts of utility functions for Haskell
7653programmers. It is written in pure Haskell and thus should be extremely
7654portable and easy to use.")
7655 (license license:bsd-3)))
7656
7657(define-public ghc-mmap
7658 (package
7659 (name "ghc-mmap")
7660 (version "0.5.9")
7661 (source (origin
7662 (method url-fetch)
7663 (uri (string-append "https://hackage.haskell.org/package/"
7664 "mmap/mmap-" version ".tar.gz"))
7665 (sha256
7666 (base32
7667 "1y5mk3yf4b8r6rzmlx1xqn4skaigrqnv08sqq0v7r3nbw42bpz2q"))))
7668 (build-system haskell-build-system)
7669 (home-page "https://hackage.haskell.org/package/mmap")
7670 (synopsis "Memory mapped files for Haskell")
7671 (description
7672 "This library provides a wrapper to @code{mmap}, allowing files or
7673devices to be lazily loaded into memory as strict or lazy @code{ByteStrings},
7674@code{ForeignPtrs} or plain @code{Ptrs}, using the virtual memory subsystem to
7675do on-demand loading.")
7676 (license license:bsd-3)))
7677
7678(define-public ghc-mmorph
7679 (package
7680 (name "ghc-mmorph")
e0389704 7681 (version "1.1.3")
dddbc90c
RV
7682 (source
7683 (origin
7684 (method url-fetch)
7685 (uri (string-append
7686 "https://hackage.haskell.org/package/mmorph/mmorph-"
7687 version
7688 ".tar.gz"))
7689 (sha256
7690 (base32
e0389704 7691 "0rfsy9n9mlinpmqi2s17fhc67fzma2ig5fbmh6m5m830canzf8vr"))))
dddbc90c
RV
7692 (build-system haskell-build-system)
7693 (inputs
7694 `(("ghc-transformers-compat" ,ghc-transformers-compat)))
7695 (home-page "https://hackage.haskell.org/package/mmorph")
7696 (synopsis "Monad morphisms")
7697 (description
7698 "This library provides monad morphism utilities, most commonly used for
7699manipulating monad transformer stacks.")
7700 (license license:bsd-3)))
7701
7702(define-public ghc-mockery
7703 (package
7704 (name "ghc-mockery")
7705 (version "0.3.5")
7706 (source (origin
7707 (method url-fetch)
7708 (uri (string-append "https://hackage.haskell.org/package/"
7709 "mockery/mockery-" version ".tar.gz"))
7710 (sha256
7711 (base32
7712 "09ypgm3z69gq8mj6y66ss58kbjnk15r8frwcwbqcfbfksfnfv8dp"))))
7713 (build-system haskell-build-system)
7714 (inputs
7715 `(("ghc-temporary" ,ghc-temporary)
7716 ("ghc-logging-facade" ,ghc-logging-facade)
7717 ("ghc-base-compat" ,ghc-base-compat)))
7718 (native-inputs
7719 `(("ghc-hspec" ,ghc-hspec)
7720 ("hspec-discover" ,hspec-discover)))
7721 (home-page "https://hackage.haskell.org/package/mockery")
7722 (synopsis "Support functions for automated testing")
7723 (description
7724 "The mockery package provides support functions for automated testing.")
7725 (license license:expat)))
7726
7727(define-public ghc-monad-control
7728 (package
7729 (name "ghc-monad-control")
7730 (version "1.0.2.3")
7731 (source
7732 (origin
7733 (method url-fetch)
7734 (uri (string-append
7735 "https://hackage.haskell.org/package/monad-control"
7736 "/monad-control-" version ".tar.gz"))
7737 (sha256
7738 (base32
7739 "1c92833gr6cadidjdp8mlznkpp8lyxl0w3y7d19y8yi3klc3843c"))))
7740 (build-system haskell-build-system)
7741 (inputs
7742 `(("ghc-transformers-base" ,ghc-transformers-base)
7743 ("ghc-transformers-compat" ,ghc-transformers-compat)))
7744 (home-page "https://github.com/basvandijk/monad-control")
7745 (synopsis "Monad transformers to lift control operations like exception
7746catching")
7747 (description "This package defines the type class @code{MonadBaseControl},
7748a subset of @code{MonadBase} into which generic control operations such as
7749@code{catch} can be lifted from @code{IO} or any other base monad.")
7750 (license license:bsd-3)))
7751
7752(define-public ghc-monad-logger
7753 (package
7754 (name "ghc-monad-logger")
26980aae 7755 (version "0.3.30")
dddbc90c
RV
7756 (source
7757 (origin
7758 (method url-fetch)
7759 (uri (string-append "https://hackage.haskell.org/package/"
7760 "monad-logger-" version "/"
7761 "monad-logger-" version ".tar.gz"))
7762 (sha256
7763 (base32
26980aae 7764 "102l0v75hbvkmrypiyg4ybb6rbc7nij5nxs1aihmqfdpg04rkkp7"))))
dddbc90c
RV
7765 (build-system haskell-build-system)
7766 (inputs `(("ghc-transformers-compat" ,ghc-transformers-compat)
7767 ("ghc-stm-chans" ,ghc-stm-chans)
7768 ("ghc-lifted-base" ,ghc-lifted-base)
7769 ("ghc-resourcet" ,ghc-resourcet)
7770 ("ghc-conduit" ,ghc-conduit)
7771 ("ghc-conduit-extra" ,ghc-conduit-extra)
7772 ("ghc-fast-logger" ,ghc-fast-logger)
7773 ("ghc-transformers-base" ,ghc-transformers-base)
7774 ("ghc-monad-control" ,ghc-monad-control)
7775 ("ghc-monad-loops" ,ghc-monad-loops)
7776 ("ghc-blaze-builder" ,ghc-blaze-builder)
7777 ("ghc-exceptions" ,ghc-exceptions)))
7778 (home-page "https://github.com/kazu-yamamoto/logger")
7779 (synopsis "Provides a class of monads which can log messages for Haskell")
7780 (description "This Haskell package uses a monad transformer approach
7781for logging.
7782
7783This package provides Template Haskell functions for determining source
7784code locations of messages.")
7785 (license license:expat)))
7786
7787(define-public ghc-monad-loops
7788 (package
7789 (name "ghc-monad-loops")
7790 (version "0.4.3")
7791 (source
7792 (origin
7793 (method url-fetch)
7794 (uri (string-append "https://hackage.haskell.org/package/"
7795 "monad-loops-" version "/"
7796 "monad-loops-" version ".tar.gz"))
7797 (sha256
7798 (base32
7799 "062c2sn3hc8h50p1mhqkpyv6x8dydz2zh3ridvlfjq9nqimszaky"))))
7800 (build-system haskell-build-system)
7801 (native-inputs `(("ghc-tasty" ,ghc-tasty)
7802 ("ghc-tasty-hunit" ,ghc-tasty-hunit)))
7803 (home-page "https://github.com/mokus0/monad-loops")
7804 (synopsis "Monadic loops for Haskell")
7805 (description "This Haskell package provides some useful control
7806operators for looping.")
7807 (license license:public-domain)))
7808
7809(define-public ghc-monad-par
7810 (package
7811 (name "ghc-monad-par")
7812 (version "0.3.4.8")
7813 (source
7814 (origin
7815 (method url-fetch)
7816 (uri (string-append "https://hackage.haskell.org/package/"
7817 "monad-par-" version "/"
7818 "monad-par-" version ".tar.gz"))
faac56f3 7819 (patches (search-patches "ghc-monad-par-fix-tests.patch"))
dddbc90c
RV
7820 (sha256
7821 (base32
7822 "0ldrzqy24fsszvn2a2nr77m2ih7xm0h9bgkjyv1l274aj18xyk7q"))))
7823 (build-system haskell-build-system)
7824 (inputs `(("ghc-abstract-par" ,ghc-abstract-par)
7825 ("ghc-abstract-deque" ,ghc-abstract-deque)
7826 ("ghc-monad-par-extras" ,ghc-monad-par-extras)
7827 ("ghc-mwc-random" ,ghc-mwc-random)
7828 ("ghc-parallel" ,ghc-parallel)))
7829 (native-inputs `(("ghc-quickcheck" ,ghc-quickcheck)
7830 ("ghc-hunit" ,ghc-hunit)
7831 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
7832 ("ghc-test-framework-quickcheck2"
7833 ,ghc-test-framework-quickcheck2)
7834 ("ghc-test-framework" ,ghc-test-framework)
7835 ("ghc-test-framework-th" ,ghc-test-framework-th)))
7836 (home-page "https://github.com/simonmar/monad-par")
7837 (synopsis "Haskell library for parallel programming based on a monad")
7838 (description "The @code{Par} monad offers an API for parallel
7839programming. The library works for parallelising both pure and @code{IO}
7840computations, although only the pure version is deterministic. The default
7841implementation provides a work-stealing scheduler and supports forking tasks
7842that are much lighter weight than IO-threads.")
7843 (license license:bsd-3)))
7844
7845(define-public ghc-monad-par-extras
7846 (package
7847 (name "ghc-monad-par-extras")
7848 (version "0.3.3")
7849 (source
7850 (origin
7851 (method url-fetch)
7852 (uri (string-append "https://hackage.haskell.org/package/"
7853 "monad-par-extras-" version "/"
7854 "monad-par-extras-" version ".tar.gz"))
7855 (sha256
7856 (base32
7857 "0bl4bd6jzdc5zm20q1g67ppkfh6j6yn8fwj6msjayj621cck67p2"))))
7858 (build-system haskell-build-system)
7859 (inputs `(("ghc-abstract-par" ,ghc-abstract-par)
7860 ("ghc-cereal" ,ghc-cereal)
7861 ("ghc-random" ,ghc-random)))
7862 (home-page "https://github.com/simonmar/monad-par")
7863 (synopsis "Combinators and extra features for Par monads for Haskell")
7864 (description "This Haskell package provides additional data structures,
7865and other added capabilities layered on top of the @code{Par} monad.")
7866 (license license:bsd-3)))
7867
dddbc90c
RV
7868(define-public ghc-monadrandom
7869 (package
7870 (name "ghc-monadrandom")
7871 (version "0.5.1.1")
7872 (source
7873 (origin
7874 (method url-fetch)
7875 (uri (string-append "https://hackage.haskell.org/package/"
7876 "MonadRandom-" version "/"
7877 "MonadRandom-" version ".tar.gz"))
7878 (sha256
7879 (base32
7880 "0w44jl1n3kqvqaflh82l1wj3xxbhzfs3kf4m8rk7w6fgg8llmnmb"))))
7881 (build-system haskell-build-system)
7882 (inputs `(("ghc-transformers-compat" ,ghc-transformers-compat)
7883 ("ghc-primitive" ,ghc-primitive)
7884 ("ghc-fail" ,ghc-fail)
7885 ("ghc-random" ,ghc-random)))
7886 (home-page "https://github.com/byorgey/MonadRandom")
7887 (synopsis "Random-number generation monad for Haskell")
7888 (description "This Haskell package provides support for computations
7889which consume random values.")
7890 (license license:bsd-3)))
7891
7892(define-public ghc-monads-tf
7893 (package
7894 (name "ghc-monads-tf")
7895 (version "0.1.0.3")
7896 (source
7897 (origin
7898 (method url-fetch)
7899 (uri (string-append
7900 "https://hackage.haskell.org/package/monads-tf/monads-tf-"
7901 version ".tar.gz"))
7902 (sha256
7903 (base32
7904 "1wdhskwa6dw8qljbvwpyxj8ca6y95q2np7z4y4q6bpf4anmd5794"))))
7905 (build-system haskell-build-system)
7906 (home-page "https://hackage.haskell.org/package/monads-tf")
7907 (synopsis "Monad classes, using type families")
7908 (description
7909 "Monad classes using type families, with instances for various monad transformers,
7910inspired by the paper 'Functional Programming with Overloading and Higher-Order
7911Polymorphism', by Mark P Jones. This package is almost a compatible replacement for
7912the @code{mtl-tf} package.")
7913 (license license:bsd-3)))
7914
7915(define-public ghc-mono-traversable
7916 (package
7917 (name "ghc-mono-traversable")
23bb445b 7918 (version "1.0.13.0")
dddbc90c
RV
7919 (source
7920 (origin
7921 (method url-fetch)
7922 (uri (string-append "https://hackage.haskell.org/package/"
7923 "mono-traversable-" version "/"
7924 "mono-traversable-" version ".tar.gz"))
7925 (sha256
7926 (base32
23bb445b 7927 "1bqy982lpdb83lacfy76n8kqw5bvd31avxj25kg8gkgycdh0g0ma"))))
dddbc90c 7928 (build-system haskell-build-system)
3e6ecfeb 7929 (outputs '("out" "static" "doc"))
dddbc90c
RV
7930 (inputs `(("ghc-unordered-containers" ,ghc-unordered-containers)
7931 ("ghc-hashable" ,ghc-hashable)
7932 ("ghc-vector" ,ghc-vector)
7933 ("ghc-vector-algorithms" ,ghc-vector-algorithms)
7934 ("ghc-split" ,ghc-split)))
7935 (native-inputs `(("ghc-hspec" ,ghc-hspec)
7936 ("ghc-hunit" ,ghc-hunit)
7937 ("ghc-quickcheck" ,ghc-quickcheck)
7938 ("ghc-semigroups" ,ghc-semigroups)
7939 ("ghc-foldl" ,ghc-foldl)))
7940 (home-page "https://github.com/snoyberg/mono-traversable")
7941 (synopsis "Haskell classes for mapping, folding, and traversing monomorphic
7942containers")
7943 (description "This Haskell package provides Monomorphic variants of the
7944Functor, Foldable, and Traversable typeclasses. If you understand Haskell's
7945basic typeclasses, you understand mono-traversable. In addition to what
7946you are used to, it adds on an IsSequence typeclass and has code for marking
7947data structures as non-empty.")
7948 (license license:expat)))
7949
471e77cf
TS
7950(define-public ghc-monoid-extras
7951 (package
7952 (name "ghc-monoid-extras")
7953 (version "0.5.1")
7954 (source
7955 (origin
7956 (method url-fetch)
7957 (uri (string-append "https://hackage.haskell.org/package/"
7958 "monoid-extras/monoid-extras-" version ".tar.gz"))
7959 (sha256
7960 (base32
7961 "0xfrkgqn9d31z54l617m3w3kkd5m9vjb4yl247r3zzql3mpb1f37"))))
7962 (build-system haskell-build-system)
7963 (inputs
7964 `(("ghc-groups" ,ghc-groups)
7965 ("ghc-semigroups" ,ghc-semigroups)
7966 ("ghc-semigroupoids" ,ghc-semigroupoids)))
7967 (arguments
7968 `(#:cabal-revision
7969 ("1" "0b8x5d6vh7mpigvjvcd8f38a1nyzn1vfdqypslw7z9fgsr742913")))
7970 (home-page "https://hackage.haskell.org/package/monoid-extras")
7971 (synopsis "Various extra monoid-related definitions and utilities")
7972 (description "This package provides various extra monoid-related
7973definitions and utilities, such as monoid actions, monoid coproducts,
7974semi-direct products, \"deletable\" monoids, \"split\" monoids, and
7975\"cut\" monoids.")
7976 (license license:bsd-3)))
7977
4759b617
JS
7978(define-public ghc-mtl-compat
7979 (package
7980 (name "ghc-mtl-compat")
7981 (version "0.2.2")
7982 (source
7983 (origin
7984 (method url-fetch)
7985 (uri (string-append
7986 "mirror://hackage/package/mtl-compat/mtl-compat-"
7987 version
7988 ".tar.gz"))
7989 (sha256
7990 (base32
7991 "17iszr5yb4f17g8mq6i74hsamii8z6m2qfsmgzs78mhiwa7kjm8r"))))
7992 (build-system haskell-build-system)
7993 (home-page
7994 "https://github.com/haskell-compat/mtl-compat")
7995 (synopsis
7996 "Backported Control.Monad.Except module from mtl")
7997 (description
7998 "This package backports the Control.Monad.Except module from mtl (if
7999using mtl-2.2.0.1 or earlier), which reexports the ExceptT monad transformer
8000and the MonadError class.
8001
8002This package should only be used if there is a need to use the
8003Control.Monad.Except module specifically. If you just want the mtl class
8004instances for ExceptT, use transformers-compat instead, since mtl-compat does
8005nothing but reexport the instances from that package.
8006
8007Note that unlike how mtl-2.2 or later works, the Control.Monad.Except
8008module defined in this package exports all of ExceptT's monad class instances.
8009Therefore, you may have to declare @code{import Control.Monad.Except ()} at
8010the top of your file to get all of the ExceptT instances in scope.")
8011 (license license:bsd-3)))
8012
dddbc90c
RV
8013(define-public ghc-murmur-hash
8014 (package
8015 (name "ghc-murmur-hash")
8016 (version "0.1.0.9")
8017 (source
8018 (origin
8019 (method url-fetch)
8020 (uri (string-append "https://hackage.haskell.org/package/murmur-hash"
8021 "/murmur-hash-" version ".tar.gz"))
8022 (sha256
8023 (base32 "1bb58kfnzvx3mpc0rc0dhqc1fk36nm8prd6gvf20gk6lxaadpfc9"))))
8024 (build-system haskell-build-system)
8025 (home-page "https://github.com/nominolo/murmur-hash")
8026 (synopsis "MurmurHash2 implementation for Haskell")
8027 (description
8028 "This package provides an implementation of MurmurHash2, a good, fast,
8029general-purpose, non-cryptographic hashing function. See
8030@url{https://sites.google.com/site/murmurhash/} for details. This
8031implementation is pure Haskell, so it might be a bit slower than a C FFI
8032binding.")
8033 (license license:bsd-3)))
8034
8035(define-public ghc-mwc-random
8036 (package
8037 (name "ghc-mwc-random")
33268e2c 8038 (version "0.14.0.0")
dddbc90c
RV
8039 (source
8040 (origin
8041 (method url-fetch)
8042 (uri (string-append "https://hackage.haskell.org/package/"
8043 "mwc-random-" version "/"
8044 "mwc-random-" version ".tar.gz"))
8045 (sha256
8046 (base32
33268e2c 8047 "18pg24sw3b79b32cwx8q01q4k0lm34mwr3l6cdkchl8alvd0wdq0"))))
dddbc90c
RV
8048 (build-system haskell-build-system)
8049 (inputs
8050 `(("ghc-primitive" ,ghc-primitive)
8051 ("ghc-vector" ,ghc-vector)
8052 ("ghc-math-functions" ,ghc-math-functions)))
8053 (arguments
8054 `(#:tests? #f)) ; FIXME: Test-Suite `spec` fails.
8055 (native-inputs
8056 `(("ghc-hunit" ,ghc-hunit)
8057 ("ghc-quickcheck" ,ghc-quickcheck)
8058 ("ghc-test-framework" ,ghc-test-framework)
8059 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
8060 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
8061 (home-page "https://github.com/bos/mwc-random")
8062 (synopsis "Random number generation library for Haskell")
8063 (description "This Haskell package contains code for generating
8064high quality random numbers that follow either a uniform or normal
8065distribution. The generated numbers are suitable for use in
8066statistical applications.
8067
8068The uniform PRNG uses Marsaglia's MWC256 (also known as MWC8222)
8069multiply-with-carry generator, which has a period of 2^{8222} and
8070fares well in tests of randomness. It is also extremely fast,
8071between 2 and 3 times faster than the Mersenne Twister.")
8072 (license license:bsd-3)))
8073
8074(define-public ghc-nats
8075 (package
8076 (name "ghc-nats")
8077 (version "1.1.2")
8078 (source
8079 (origin
8080 (method url-fetch)
8081 (uri (string-append
8082 "https://hackage.haskell.org/package/nats/nats-"
8083 version
8084 ".tar.gz"))
8085 (sha256
8086 (base32
8087 "1v40drmhixck3pz3mdfghamh73l4rp71mzcviipv1y8jhrfxilmr"))))
8088 (build-system haskell-build-system)
8089 (arguments `(#:haddock? #f))
8090 (inputs
8091 `(("ghc-hashable" ,ghc-hashable)))
8092 (home-page "https://hackage.haskell.org/package/nats")
8093 (synopsis "Natural numbers")
8094 (description "This library provides the natural numbers for Haskell.")
8095 (license license:bsd-3)))
8096
8097(define-public ghc-nats-bootstrap
8098 (package
8099 (inherit ghc-nats)
8100 (name "ghc-nats-bootstrap")
8101 (inputs
8102 `(("ghc-hashable" ,ghc-hashable-bootstrap)))
8103 (properties '((hidden? #t)))))
8104
52915062
EF
8105(define-public ghc-ncurses
8106 (package
8107 (name "ghc-ncurses")
8108 (version "0.2.16")
8109 (source
8110 (origin
8111 (method url-fetch)
8112 (uri (string-append
8113 "https://hackage.haskell.org/package/ncurses/ncurses-"
8114 version ".tar.gz"))
8115 (sha256
8116 (base32
8117 "0gsyyaqyh5r9zc0rhwpj5spyd6i4w2vj61h4nihgmmh0yyqvf3z5"))))
8118 (build-system haskell-build-system)
8119 (arguments
54a5fd07
TS
8120 '(#:extra-directories ("ncurses")
8121 #:phases
52915062
EF
8122 (modify-phases %standard-phases
8123 (add-before 'build 'fix-includes
8124 (lambda _
8125 (substitute* '("cbits/hsncurses-shim.h"
8126 "lib/UI/NCurses.chs"
8127 "lib/UI/NCurses/Enums.chs"
8128 "lib/UI/NCurses/Panel.chs")
8129 (("<ncursesw/") "<"))
8130 #t)))
8131 #:cabal-revision
8132 ("1"
8133 "1wfdy716s5p1sqp2gsg43x8wch2dxg0vmbbndlb2h3d8c9jzxnca")))
8134 (inputs `(("ncurses" ,ncurses)))
8135 (native-inputs `(("ghc-c2hs" ,ghc-c2hs)))
8136 (home-page "https://john-millikin.com/software/haskell-ncurses/")
8137 (synopsis "Modernised bindings to GNU ncurses")
8138 (description "GNU ncurses is a library for creating command-line application
8139with pseudo-graphical interfaces. This package is a nice, modern binding to GNU
8140ncurses.")
8141 (license license:gpl3)))
8142
dddbc90c
RV
8143(define-public ghc-network
8144 (package
8145 (name "ghc-network")
d4473202 8146 (version "2.8.0.1")
534d6caa 8147 (outputs '("out" "static" "doc"))
dddbc90c
RV
8148 (source
8149 (origin
8150 (method url-fetch)
8151 (uri (string-append
8152 "https://hackage.haskell.org/package/network/network-"
8153 version
8154 ".tar.gz"))
8155 (sha256
8156 (base32
d4473202 8157 "0im8k51rw3ahmr23ny10pshwbz09jfg0fdpam0hzf2hgxnzmvxb1"))))
dddbc90c
RV
8158 (build-system haskell-build-system)
8159 ;; The regression tests depend on an unpublished module.
8160 (arguments `(#:tests? #f))
8161 (native-inputs
8162 `(("ghc-hunit" ,ghc-hunit)
8163 ("ghc-doctest" ,ghc-doctest)
8164 ("ghc-test-framework" ,ghc-test-framework)
8165 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)))
8166 (home-page "https://github.com/haskell/network")
8167 (synopsis "Low-level networking interface")
8168 (description
8169 "This package provides a low-level networking interface.")
8170 (license license:bsd-3)))
4780db2c 8171
30eebbe6
TS
8172(define-public ghc-network-bsd
8173 (package
8174 (name "ghc-network-bsd")
8175 (version "2.8.0.0")
8176 (source
8177 (origin
8178 (method url-fetch)
8179 (uri (string-append "https://hackage.haskell.org/package/"
8180 "network-bsd/network-bsd-" version ".tar.gz"))
8181 (sha256
8182 (base32
8183 "0dfbwgrr28y6ypw7p1ppqg7v746qf14569q4xazj4ahdjw2xkpi5"))))
8184 (build-system haskell-build-system)
8185 (inputs
8186 `(("ghc-network" ,ghc-network)))
8187 (home-page "https://github.com/haskell/network-bsd")
8188 (synopsis "POSIX network database (<netdb.h>) API")
8189 (description "This package provides Haskell bindings to the the POSIX
8190network database (<netdb.h>) API.")
8191 (license license:bsd-3)))
8192
096781a1
TS
8193(define-public ghc-network-byte-order
8194 (package
8195 (name "ghc-network-byte-order")
8196 (version "0.1.1.1")
8197 (source
8198 (origin
8199 (method url-fetch)
8200 (uri (string-append "https://hackage.haskell.org/package/"
8201 "network-byte-order/network-byte-order-"
8202 version ".tar.gz"))
8203 (sha256
8204 (base32
8205 "19cs6157amcc925vwr92q1azwwzkbam5g0k70i6qi80fhpikh37c"))))
8206 (build-system haskell-build-system)
8207 (native-inputs
8208 `(("ghc-doctest" ,ghc-doctest)))
3ef91e15 8209 (home-page "https://hackage.haskell.org/package/network-byte-order")
096781a1
TS
8210 (synopsis "Network byte order utilities")
8211 (description "This library provides peek and poke functions for network
8212byte order.")
8213 (license license:bsd-3)))
8214
dddbc90c
RV
8215(define-public ghc-network-info
8216 (package
8217 (name "ghc-network-info")
8218 (version "0.2.0.10")
8219 (source
8220 (origin
8221 (method url-fetch)
8222 (uri (string-append "https://hackage.haskell.org/package/"
8223 "network-info-" version "/"
8224 "network-info-" version ".tar.gz"))
8225 (sha256
8226 (base32
8227 "0anmgzcpnz7nw3n6vq0r25m1s9l2svpwi83wza0lzkrlbnbzd02n"))))
8228 (build-system haskell-build-system)
8229 (home-page "https://github.com/jystic/network-info")
8230 (synopsis "Access the local computer's basic network configuration")
8231 (description "This Haskell library provides simple read-only access to the
8232local computer's networking configuration. It is currently capable of
8233getting a list of all the network interfaces and their respective
8234IPv4, IPv6 and MAC addresses.")
8235 (license license:bsd-3)))
8236
8237(define-public ghc-network-uri
8238 (package
8239 (name "ghc-network-uri")
8240 (version "2.6.1.0")
534d6caa 8241 (outputs '("out" "static" "doc"))
dddbc90c
RV
8242 (source
8243 (origin
8244 (method url-fetch)
8245 (uri (string-append
8246 "https://hackage.haskell.org/package/network-uri/network-uri-"
8247 version
8248 ".tar.gz"))
8249 (sha256
8250 (base32
8251 "1w27zkvn39kjr9lmw9421y8w43h572ycsfafsb7kyvr3a4ihlgj2"))))
8252 (build-system haskell-build-system)
8253 (arguments
8254 `(#:tests? #f)) ; FIXME: currently missing libraries used for tests.
8255 (inputs
8256 `(("ghc-network" ,ghc-network)))
8257 (native-inputs
8258 `(("ghc-hunit" ,ghc-hunit)))
8259 (home-page
8260 "https://github.com/haskell/network-uri")
8261 (synopsis "Library for URI manipulation")
8262 (description "This package provides an URI manipulation interface. In
8263@code{network-2.6} the @code{Network.URI} module was split off from the
8264@code{network} package into this package.")
8265 (license license:bsd-3)))
8266
8267(define-public ghc-newtype-generics
8268 (package
8269 (name "ghc-newtype-generics")
c07e16dd 8270 (version "0.5.4")
dddbc90c
RV
8271 (source
8272 (origin
8273 (method url-fetch)
8274 (uri (string-append "https://hackage.haskell.org/package/"
8275 "newtype-generics/newtype-generics-"
8276 version ".tar.gz"))
8277 (sha256
8278 (base32
c07e16dd 8279 "0cprfg4n0z62cnix1qrbc79bfdd4s50b05fj9m9hk6vm1pc3szq0"))))
dddbc90c
RV
8280 (build-system haskell-build-system)
8281 (native-inputs
8282 `(("ghc-hspec" ,ghc-hspec)
8283 ("hspec-discover" ,hspec-discover)))
702a1012 8284 (home-page "https://github.com/sjakobi/newtype-generics")
dddbc90c
RV
8285 (synopsis "Typeclass and set of functions for working with newtypes")
8286 (description "The @code{Newtype} typeclass represents the packing and
8287unpacking of a newtype, and allows you to operate under that newtype with
8288functions such as @code{ala}. Generics support was added in version 0.4,
8289making this package a full replacement for the original newtype package,
8290and an alternative to newtype-th.")
8291 (license license:bsd-3)))
8292
6b652f5a
JS
8293(define-public ghc-non-negative
8294 (package
8295 (name "ghc-non-negative")
8296 (version "0.1.2")
8297 (source
8298 (origin
8299 (method url-fetch)
8300 (uri
8301 (string-append
8302 "https://hackage.haskell.org/package/non-negative/non-negative-"
8303 version ".tar.gz"))
8304 (sha256
8305 (base32
8306 "0f01q916dzkl1i0v15qrw9cviycki5g3fgi6x8gs45iwbzssq52n"))))
8307 (build-system haskell-build-system)
8308 (inputs
8309 `(("ghc-semigroups" ,ghc-semigroups)
8310 ("ghc-utility-ht" ,ghc-utility-ht)
8311 ("ghc-quickcheck" ,ghc-quickcheck)))
8312 (home-page "https://hackage.haskell.org/package/non-negative")
8313 (synopsis "Non-negative numbers class")
8314 (description "This library provides a class for non-negative numbers,
8315a wrapper which can turn any ordered numeric type into a member of that
8316class, and a lazy number type for non-negative numbers (a generalization
8317of Peano numbers).")
8318 (license license:gpl3+)))
8319
49bcca84
ASM
8320(define-public ghc-nonce
8321 (package
8322 (name "ghc-nonce")
8323 (version "1.0.7")
8324 (source
8325 (origin
8326 (method url-fetch)
8327 (uri (string-append
8328 "https://hackage.haskell.org/package/nonce/"
8329 "nonce-" version ".tar.gz"))
8330 (sha256
8331 (base32
8332 "1q9ph0aq51mvdvydnriqd12sfin36pfb8f588zgac1ybn8r64ksb"))))
8333 (build-system haskell-build-system)
8334 (inputs
8335 `(("ghc-base64-bytestring" ,ghc-base64-bytestring)
8336 ("ghc-entropy" ,ghc-entropy)
8337 ("ghc-unliftio" ,ghc-unliftio)
8338 ("ghc-unliftio-core" ,ghc-unliftio-core)))
8339 (home-page "https://github.com/prowdsponsor/nonce")
8340 (synopsis "Generate cryptographic nonces in Haskell")
8341 (description
8342 "A nonce is an arbitrary number used only once in a cryptographic
8343communication. This package contain helper functions for generating nonces.
8344There are many kinds of nonces used in different situations. It's not
8345guaranteed that by using the nonces from this package you won't have any
8346security issues. Please make sure that the nonces generated via this
8347package are usable on your design.")
8348 (license license:bsd-3)))
8349
194a82e6
TS
8350(define-public ghc-numeric-extras
8351 (package
8352 (name "ghc-numeric-extras")
8353 (version "0.1")
8354 (source
8355 (origin
8356 (method url-fetch)
8357 (uri (string-append "https://hackage.haskell.org/package/"
8358 "numeric-extras/numeric-extras-"
8359 version ".tar.gz"))
8360 (sha256
8361 (base32
8362 "1mk11c0gz1yjy5b8dvq6czfny57pln0bs7x28fz38qyr44872067"))))
8363 (build-system haskell-build-system)
8364 (home-page "https://github.com/ekmett/numeric-extras")
8365 (synopsis "Useful tools from the C standard library")
8366 (description "This library provides some useful tools from the C
8367standard library.")
8368 (license license:bsd-3)))
8369
dddbc90c
RV
8370(define-public ghc-objectname
8371 (package
8372 (name "ghc-objectname")
8373 (version "1.1.0.1")
8374 (source
8375 (origin
8376 (method url-fetch)
8377 (uri (string-append
8378 "https://hackage.haskell.org/package/ObjectName/ObjectName-"
8379 version
8380 ".tar.gz"))
8381 (sha256
8382 (base32
8383 "046jm94rmm46cicd31pl54vdvfjvhd9ffbfycy2lxzc0fliyznvj"))))
8384 (build-system haskell-build-system)
8385 (home-page "https://hackage.haskell.org/package/ObjectName")
8386 (synopsis "Helper library for Haskell OpenGL")
8387 (description "This tiny package contains the class ObjectName, which
8388corresponds to the general notion of explicitly handled identifiers for API
8389objects, e.g. a texture object name in OpenGL or a buffer object name in
8390OpenAL.")
8391 (license license:bsd-3)))
8392
8393(define-public ghc-old-locale
8394 (package
8395 (name "ghc-old-locale")
8396 (version "1.0.0.7")
8397 (source
8398 (origin
8399 (method url-fetch)
8400 (uri (string-append
8401 "https://hackage.haskell.org/package/old-locale/old-locale-"
8402 version
8403 ".tar.gz"))
8404 (sha256
8405 (base32 "0l3viphiszvz5wqzg7a45zp40grwlab941q5ay29iyw8p3v8pbyv"))))
8406 (build-system haskell-build-system)
8407 (arguments
8408 `(#:cabal-revision
8409 ("2" "04b9vn007hlvsrx4ksd3r8r3kbyaj2kvwxchdrmd4370qzi8p6gs")))
8410 (home-page "https://hackage.haskell.org/package/old-locale")
8411 (synopsis "Adapt to locale conventions")
8412 (description
8413 "This package provides the ability to adapt to locale conventions such as
8414date and time formats.")
8415 (license license:bsd-3)))
8416
8417(define-public ghc-old-time
8418 (package
8419 (name "ghc-old-time")
8420 (version "1.1.0.3")
8421 (source
8422 (origin
8423 (method url-fetch)
8424 (uri (string-append
8425 "https://hackage.haskell.org/package/old-time/old-time-"
8426 version
8427 ".tar.gz"))
8428 (sha256
8429 (base32
8430 "1h9b26s3kfh2k0ih4383w90ibji6n0iwamxp6rfp2lbq1y5ibjqw"))))
8431 (build-system haskell-build-system)
8432 (arguments
8433 `(#:cabal-revision
8434 ("2" "1j6ln1dkvhdvnwl33bp0xf9lhc4sybqk0aw42p8cq81xwwzbn7y9")))
8435 (inputs
8436 `(("ghc-old-locale" ,ghc-old-locale)))
8437 (home-page "https://hackage.haskell.org/package/old-time")
8438 (synopsis "Time compatibility library for Haskell")
8439 (description "Old-time is a package for backwards compatibility with the
8440old @code{time} library. For new projects, the newer
8441@uref{https://hackage.haskell.org/package/time, time library} is recommended.")
8442 (license license:bsd-3)))
8443
8444(define-public ghc-opengl
8445 (package
8446 (name "ghc-opengl")
79a06910 8447 (version "3.0.3.0")
dddbc90c
RV
8448 (source
8449 (origin
8450 (method url-fetch)
8451 (uri (string-append
8452 "https://hackage.haskell.org/package/OpenGL/OpenGL-"
8453 version
8454 ".tar.gz"))
8455 (sha256
8456 (base32
79a06910 8457 "069fg8jcxqq2z9iikynd8vi3jxm2b5y3qywdh4bdviyzab3zy1as"))))
dddbc90c 8458 (build-system haskell-build-system)
79a06910
TS
8459 (arguments
8460 `(#:cabal-revision
8461 ("1" "1748mrb6r9mpf5jbrx436lwbg8w6dadyy8dhxw2dwnrj5z7zf741")))
dddbc90c
RV
8462 (inputs
8463 `(("ghc-objectname" ,ghc-objectname)
8464 ("ghc-gluraw" ,ghc-gluraw)
8465 ("ghc-statevar" ,ghc-statevar)
8466 ("ghc-openglraw" ,ghc-openglraw)))
228d2901 8467 (home-page "https://wiki.haskell.org/Opengl")
dddbc90c
RV
8468 (synopsis "Haskell bindings for the OpenGL graphics system")
8469 (description "This package provides Haskell bindings for the OpenGL
8470graphics system (GL, version 4.5) and its accompanying utility library (GLU,
8471version 1.3).")
8472 (license license:bsd-3)))
8473
8474(define-public ghc-openglraw
8475 (package
8476 (name "ghc-openglraw")
15ebc815 8477 (version "3.3.3.0")
dddbc90c
RV
8478 (source
8479 (origin
8480 (method url-fetch)
8481 (uri (string-append
8482 "https://hackage.haskell.org/package/OpenGLRaw/OpenGLRaw-"
8483 version
8484 ".tar.gz"))
8485 (sha256
8486 (base32
15ebc815 8487 "0zgllb4bcash2i2cispa3j565aw3dpxs41ghmhpvyvi4a6xmyldx"))))
dddbc90c 8488 (build-system haskell-build-system)
54a5fd07
TS
8489 (arguments
8490 `(#:extra-directories ("glu")))
dddbc90c
RV
8491 (inputs
8492 `(("ghc-half" ,ghc-half)
8493 ("ghc-fixed" ,ghc-fixed)
8494 ("glu" ,glu)))
228d2901 8495 (home-page "https://wiki.haskell.org/Opengl")
dddbc90c
RV
8496 (synopsis "Raw Haskell bindings for the OpenGL graphics system")
8497 (description "OpenGLRaw is a raw Haskell binding for the OpenGL 4.5
8498graphics system and lots of OpenGL extensions. It is basically a 1:1 mapping
8499of OpenGL's C API, intended as a basis for a nicer interface. OpenGLRaw
8500offers access to all necessary functions, tokens and types plus a general
8501facility for loading extension entries. The module hierarchy closely mirrors
8502the naming structure of the OpenGL extensions, making it easy to find the
8503right module to import. All API entries are loaded dynamically, so no special
8504C header files are needed for building this package. If an API entry is not
8505found at runtime, a userError is thrown.")
8506 (license license:bsd-3)))
8507
8508(define-public ghc-operational
8509 (package
8510 (name "ghc-operational")
8511 (version "0.2.3.5")
8512 (source
8513 (origin
8514 (method url-fetch)
8515 (uri (string-append "https://hackage.haskell.org/package/operational/"
8516 "operational-" version ".tar.gz"))
8517 (sha256
8518 (base32
8519 "1x2abg2q9d26h1vzj40r6k7k3gqgappbs4g9d853vvg77837km4i"))))
8520 (build-system haskell-build-system)
8521 (inputs
8522 `(("ghc-random" ,ghc-random)))
8523 (home-page "http://wiki.haskell.org/Operational")
8524 (synopsis "Implementation of difficult monads made easy with operational semantics")
8525 (description
8526 "This library makes it easy to implement monads with tricky control
8527flow. This is useful for: writing web applications in a sequential style,
8528programming games with a uniform interface for human and AI players and easy
8529replay capababilities, implementing fast parser monads, designing monadic
8530DSLs, etc.")
8531 (license license:bsd-3)))
8532
6f1477d2
JS
8533(define-public ghc-optional-args
8534 (package
8535 (name "ghc-optional-args")
8536 (version "1.0.2")
8537 (source
8538 (origin
8539 (method url-fetch)
8540 (uri (string-append
8541 "mirror://hackage/package/optional-args/optional-args-"
8542 version
8543 ".tar.gz"))
8544 (sha256
8545 (base32
8546 "1r5hhn6xvc01grggxdyy48daibwzi0aikgidq0ahpa6bfynm8d1f"))))
8547 (build-system haskell-build-system)
8548 (home-page
8549 "http://hackage.haskell.org/package/optional-args")
8550 (synopsis "Optional function arguments")
8551 (description
8552 "This library provides a type for specifying @code{Optional} function
8553arguments.")
8554 (license license:bsd-3)))
8555
dddbc90c
RV
8556(define-public ghc-options
8557 (package
8558 (name "ghc-options")
8559 (version "1.2.1.1")
8560 (source
8561 (origin
8562 (method url-fetch)
8563 (uri (string-append
8564 "https://hackage.haskell.org/package/options/options-"
8565 version ".tar.gz"))
8566 (sha256
8567 (base32
8568 "0qjs0v1ny52w51n5582d4z8wy9h6n0zw1xb5dh686ff5wadflgi8"))))
8569 (build-system haskell-build-system)
24cf2a8b
TS
8570 (arguments
8571 `(#:phases
8572 (modify-phases %standard-phases
8573 (add-before 'configure 'update-constraints
8574 (lambda _
8575 (substitute* "options.cabal"
8576 (("chell >= 0\\.4 && < 0\\.5") "chell >= 0.4 && < 0.6"))
8577 #t)))))
dddbc90c
RV
8578 (inputs
8579 `(("ghc-monads-tf" ,ghc-monads-tf)
8580 ("ghc-chell" ,ghc-chell)
8581 ("ghc-chell-quickcheck" ,ghc-chell-quickcheck)))
8582 (home-page "https://john-millikin.com/software/haskell-options/")
8583 (synopsis "Powerful and easy-to-use command-line option parser")
8584 (description
8585 "The @code{options} package lets library and application developers
8586easily work with command-line options.")
8587 (license license:expat)))
8588
8589;; See ghc-system-filepath-bootstrap, chell and chell-quickcheck are required for tests.
8590(define ghc-options-bootstrap
8591 (package
8592 (name "ghc-options-bootstrap")
8593 (version "1.2.1.1")
8594 (source
8595 (origin
8596 (method url-fetch)
8597 (uri (string-append
8598 "https://hackage.haskell.org/package/options/options-"
8599 version ".tar.gz"))
8600 (sha256
8601 (base32
8602 "0qjs0v1ny52w51n5582d4z8wy9h6n0zw1xb5dh686ff5wadflgi8"))))
8603 (build-system haskell-build-system)
8604 (arguments
8605 `(#:tests? #f))
8606 (inputs
8607 `(("ghc-monads-tf" ,ghc-monads-tf)))
8608 (home-page "https://john-millikin.com/software/haskell-options/")
8609 (synopsis "Powerful and easy-to-use command-line option parser")
8610 (description
8611 "The @code{options} package lets library and application developers
8612easily work with command-line options.")
8613 (license license:expat)))
8614
8615
8616(define-public ghc-optparse-applicative
8617 (package
8618 (name "ghc-optparse-applicative")
74bf6965 8619 (version "0.14.3.0")
dddbc90c
RV
8620 (source
8621 (origin
8622 (method url-fetch)
8623 (uri (string-append
8624 "https://hackage.haskell.org/package/optparse-applicative"
8625 "/optparse-applicative-" version ".tar.gz"))
8626 (sha256
8627 (base32
74bf6965 8628 "0qvn1s7jwrabbpmqmh6d6iafln3v3h9ddmxj2y4m0njmzq166ivj"))))
dddbc90c 8629 (build-system haskell-build-system)
74bf6965
TS
8630 (arguments
8631 `(#:cabal-revision
8632 ("2" "1a08dqjly1xy730f6jf45frr8g8gap0n1vg9b0mpzpydv0kgzmrp")))
dddbc90c
RV
8633 (inputs
8634 `(("ghc-transformers-compat" ,ghc-transformers-compat)
8635 ("ghc-ansi-wl-pprint" ,ghc-ansi-wl-pprint)))
8636 (native-inputs
8637 `(("ghc-quickcheck" ,ghc-quickcheck)))
8638 (home-page "https://github.com/pcapriotti/optparse-applicative")
8639 (synopsis "Utilities and combinators for parsing command line options")
8640 (description "This package provides utilities and combinators for parsing
8641command line options in Haskell.")
8642 (license license:bsd-3)))
8643
d56c8120
NG
8644(define-public ghc-jira-wiki-markup
8645 (package
8646 (name "ghc-jira-wiki-markup")
8647 (version "1.0.0")
8648 (source
8649 (origin
8650 (method url-fetch)
8651 (uri (string-append
8652 "https://hackage.haskell.org/package/jira-wiki-markup/"
8653 "jira-wiki-markup-" version ".tar.gz"))
8654 (sha256
8655 (base32 "1sl2jjcsqg61si33mxjwpf8zdn56kbbgcwqqqzbgifx2qbv4wmf8"))))
8656 (build-system haskell-build-system)
8657 (native-inputs
8658 `(("ghc-tasty" ,ghc-tasty)
8659 ("ghc-tasty-hunit" ,ghc-tasty-hunit)))
8660 (home-page "https://github.com/tarleb/jira-wiki-markup")
8661 (synopsis "Handle Jira wiki markup")
8662 (description
8663 "Parse jira wiki text into an abstract syntax tree for easy transformation
8664to other formats.")
8665 (license license:expat)))
8666
20690771
NG
8667(define-public ghc-emojis
8668 (package
8669 (name "ghc-emojis")
8670 (version "0.1")
8671 (source
8672 (origin
8673 (method url-fetch)
8674 (uri (string-append
8675 "https://hackage.haskell.org/package/emojis/"
8676 "emojis-" version ".tar.gz"))
8677 (sha256
8678 (base32 "1c6zkj9gmk1y90gbdrn50hyp7mw1mggzhnr2khqd728ryipw60ss"))))
8679 (build-system haskell-build-system)
8680 (native-inputs
8681 `(("ghc-hunit" ,ghc-hunit)))
8682 (home-page "https://github.com/jgm/emojis#readme")
8683 (synopsis "Conversion between emoji characters and their names.")
8684 (description
8685 "This package provides functions for converting emoji names to emoji
8686characters and vice versa.
8687
8688How does it differ from the @code{emoji} package?
8689@itemize
8690@item It supports a fuller range of emojis, including all those supported by
8691GitHub
8692@item It supports lookup of emoji aliases from emoji
8693@item It uses Text rather than String
8694@item It has a lighter dependency footprint: in particular, it does not
8695require aeson
8696@item It does not require TemplateHaskell
8697@end itemize")
8698 (license license:bsd-3)))
8699
e90a06fc
NG
8700(define-public ghc-text-conversions
8701 (package
8702 (name "ghc-text-conversions")
8703 (version "0.3.0")
8704 (source
8705 (origin
8706 (method url-fetch)
8707 (uri (string-append
8708 "https://hackage.haskell.org/package/text-conversions/"
8709 "text-conversions-" version ".tar.gz"))
8710 (sha256
8711 (base32 "089c56vdj9xysqfr1hnvbnrghlg83q6w10xk02gflpsidcpvwmhp"))))
8712 (build-system haskell-build-system)
8713 (inputs
8714 `(("ghc-base16-bytestring" ,ghc-base16-bytestring)
8715 ("ghc-base64-bytestring" ,ghc-base64-bytestring)
8716 ("ghc-errors" ,ghc-errors)))
8717 (native-inputs
8718 `(("ghc-hspec" ,ghc-hspec)
27b09f3a 8719 ("hspec-discover" ,hspec-discover)))
e90a06fc
NG
8720 (home-page "https://github.com/cjdev/text-conversions#readme")
8721 (synopsis "Safe conversions between textual types")
8722 (description "Safe conversions between textual types")
8723 (license license:isc)))
8724
ba7cbae3
NG
8725(define-public ghc-doclayout
8726 (package
8727 (name "ghc-doclayout")
8728 (version "0.3")
8729 (source
8730 (origin
8731 (method url-fetch)
8732 (uri (string-append
8733 "https://hackage.haskell.org/package/doclayout/"
8734 "doclayout-" version ".tar.gz"))
8735 (sha256
8736 (base32 "1wmnwq28jcyd6c80srivsnd5znmyl9sgmwwnlk2crwiiwqadbal7"))))
8737 (build-system haskell-build-system)
8738 (inputs
8739 `(("ghc-safe" ,ghc-safe)))
8740 (native-inputs
8741 `(("ghc-tasty" ,ghc-tasty)
8742 ("ghc-tasty-golden" ,ghc-tasty-golden)
8743 ("ghc-tasty-hunit" ,ghc-tasty-hunit)))
8744 (home-page "https://github.com/jgm/doclayout")
8745 (synopsis "Pretty-printing library for laying out text documents")
8746 (description
8747 "doclayout is a pretty-printing library for laying out text documents,
8748with several features not present in pretty-printing libraries designed for
8749code. It was designed for use in @code{Pandoc}.")
8750 (license license:bsd-3)))
8751
dddbc90c
RV
8752(define-public ghc-pandoc
8753 (package
8754 (name "ghc-pandoc")
d9b1567a 8755 (version "2.7.3")
dddbc90c
RV
8756 (source
8757 (origin
8758 (method url-fetch)
8759 (uri (string-append "https://hackage.haskell.org/package/pandoc/pandoc-"
8760 version ".tar.gz"))
d9b1567a
TS
8761 (patches (search-patches "ghc-pandoc-fix-html-tests.patch"
8762 "ghc-pandoc-fix-latex-test.patch"))
dddbc90c
RV
8763 (sha256
8764 (base32
d9b1567a 8765 "0dpjrr40h54cljzhvixyym07z792a9izg6b9dmqpjlgcg4rj0xx8"))))
dddbc90c 8766 (build-system haskell-build-system)
c18e4f3e
RW
8767 (arguments
8768 `(#:phases
8769 (modify-phases %standard-phases
8770 (add-after 'unpack 'find-library
8771 (lambda _
8772 (substitute* "test/Tests/Command.hs"
8773 (("= dynlibEnv")
8774 (format #f "= [(\"LD_LIBRARY_PATH\" , \"~a/dist/build\")]"
8775 (getcwd))))
8776 #t)))))
8777 (outputs '("out" "static" "doc"))
dddbc90c
RV
8778 (inputs
8779 `(("ghc-aeson" ,ghc-aeson)
8780 ("ghc-aeson-pretty" ,ghc-aeson-pretty)
8781 ("ghc-base64-bytestring" ,ghc-base64-bytestring)
8782 ("ghc-blaze-html" ,ghc-blaze-html)
8783 ("ghc-blaze-markup" ,ghc-blaze-markup)
8784 ("ghc-cmark-gfm" ,ghc-cmark-gfm)
8785 ("ghc-data-default" ,ghc-data-default)
dddbc90c
RV
8786 ("ghc-diff" ,ghc-diff)
8787 ("ghc-doctemplates" ,ghc-doctemplates)
8788 ("ghc-executable-path" ,ghc-executable-path)
8789 ("ghc-glob" ,ghc-glob)
8790 ("ghc-haddock-library" ,ghc-haddock-library)
8791 ("ghc-hslua" ,ghc-hslua)
d9b1567a 8792 ("ghc-hslua-module-system" ,ghc-hslua-module-system)
dddbc90c 8793 ("ghc-hslua-module-text" ,ghc-hslua-module-text)
d9b1567a 8794 ("ghc-hsyaml" ,ghc-hsyaml)
dddbc90c
RV
8795 ("ghc-http" ,ghc-http)
8796 ("ghc-http-client" ,ghc-http-client)
8797 ("ghc-http-client-tls" ,ghc-http-client-tls)
8798 ("ghc-http-types" ,ghc-http-types)
d9b1567a 8799 ("ghc-ipynb" ,ghc-ipynb)
dddbc90c
RV
8800 ("ghc-juicypixels" ,ghc-juicypixels)
8801 ("ghc-network" ,ghc-network)
8802 ("ghc-network-uri" ,ghc-network-uri)
dddbc90c
RV
8803 ("ghc-pandoc-types" ,ghc-pandoc-types)
8804 ("ghc-random" ,ghc-random)
8805 ("ghc-scientific" ,ghc-scientific)
8806 ("ghc-sha" ,ghc-sha)
8807 ("ghc-skylighting" ,ghc-skylighting)
8808 ("ghc-split" ,ghc-split)
8809 ("ghc-syb" ,ghc-syb)
8810 ("ghc-tagsoup" ,ghc-tagsoup)
8811 ("ghc-temporary" ,ghc-temporary)
8812 ("ghc-texmath" ,ghc-texmath)
d9b1567a 8813 ("ghc-unicode-transforms" ,ghc-unicode-transforms)
dddbc90c
RV
8814 ("ghc-unordered-containers" ,ghc-unordered-containers)
8815 ("ghc-vector" ,ghc-vector)
8816 ("ghc-xml" ,ghc-xml)
dddbc90c
RV
8817 ("ghc-zip-archive" ,ghc-zip-archive)
8818 ("ghc-zlib" ,ghc-zlib)))
8819 (native-inputs
8820 `(("ghc-tasty" ,ghc-tasty)
8821 ("ghc-tasty-golden" ,ghc-tasty-golden)
8822 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
d9b1567a 8823 ("ghc-tasty-lua" ,ghc-tasty-lua)
dddbc90c
RV
8824 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
8825 ("ghc-quickcheck" ,ghc-quickcheck)
8826 ("ghc-hunit" ,ghc-hunit)))
8827 (home-page "https://pandoc.org")
8828 (synopsis "Conversion between markup formats")
8829 (description
8830 "Pandoc is a Haskell library for converting from one markup format to
8831another, and a command-line tool that uses this library. It can read and
8832write Markdown and (subsets of) other formats, such as HTML, reStructuredText,
8833LaTeX, DocBook, and many more.
8834
8835Pandoc extends standard Markdown syntax with footnotes, embedded LaTeX,
8836definition lists, tables, and other features. A compatibility mode is
8837provided for those who need a drop-in replacement for Markdown.pl.")
8838 (license license:gpl2+)))
8839
d4e4a382
RW
8840(define-public pandoc
8841 (package
8842 (inherit ghc-pandoc)
8843 (name "pandoc")
8844 (arguments
8845 `(#:configure-flags
8846 (list "-fstatic"
8847 ;; Do not build trypandoc; this is the default but it's better to
8848 ;; be explicit.
8849 "-f-trypandoc"
8850 ;; TODO: Without these we cannot link the Haskell libraries
8851 ;; statically. It would be nice if we could also build the
8852 ;; shared libraries.
8853 "--disable-shared"
8854 "--disable-executable-dynamic"
8855 ;; That's where we place all static libraries
8856 "--extra-lib-dirs=static-libs/"
8857 "--ghc-option=-static")
8858 #:modules ((guix build haskell-build-system)
8859 (guix build utils)
8860 (ice-9 match)
8861 (srfi srfi-1))
8862 #:phases
8863 (modify-phases %standard-phases
8864 (add-after 'unpack 'create-simple-paths-module
8865 (lambda* (#:key outputs #:allow-other-keys)
8866 (call-with-output-file "Paths_pandoc.hs"
8867 (lambda (port)
8868 (format port "\
8869{-# LANGUAGE CPP #-}
8870{-# LANGUAGE NoRebindableSyntax #-}
8871{-# OPTIONS_GHC -fno-warn-missing-import-lists #-}
8872module Paths_pandoc (version,getDataDir,getDataFileName) where
8873import Prelude
8874import Data.Version (Version(..))
8875import System.Info
8876version :: Version
8877version = Version [~a] []
8878
8879datadir :: FilePath
8880datadir = \"~a/share/\" ++
8881 arch ++ \"-\" ++
8882 os ++ \"-\" ++
8883 compilerName ++ \"-~a/pandoc-~a\"
8884
8885getDataDir :: IO FilePath
8886getDataDir = return datadir
8887
8888getDataFileName :: FilePath -> IO FilePath
8889getDataFileName name = do
8890 dir <- getDataDir
8891 return (dir ++ \"/\" ++ name)
8892"
8893 (string-map (lambda (chr) (if (eq? chr #\.) #\, chr))
8894 ,(package-version ghc-pandoc))
8895 (assoc-ref outputs "out")
8896 ,(package-version ghc)
8897 ,(package-version ghc-pandoc))))
8898 #t))
8899 (add-after 'unpack 'prepare-static-libraries
8900 (lambda* (#:key inputs #:allow-other-keys)
8901 (mkdir-p (string-append (getcwd) "/static-libs"))
8902 (for-each
8903 (lambda (input)
8904 (when (or (string-prefix? "static-" (car input))
8905 (string-prefix? "ghc" (car input)))
8906 (match (find-files (cdr input) "\\.a$")
8907 ((and (first . rest) libs)
8908 (for-each (lambda (lib)
8909 (let ((target (string-append (getcwd) "/static-libs/"
8910 (basename lib))))
8911 (unless (file-exists? target)
8912 (symlink first target))))
8913 libs))
8914 (_ #f))))
8915 inputs)
8916 #t))
8917 (delete 'check)
8918 (add-after 'install 'post-install-check
8919 (assoc-ref %standard-phases 'check)))))
8920 (outputs '("out" "lib" "static" "doc"))
8921 (inputs
8922 (let* ((direct-inputs (package-inputs ghc-pandoc))
8923 (all-static-inputs
8924 (map (lambda (pkg)
8925 (list (string-append "static-" (package-name pkg))
8926 pkg "static"))
8927 (delete-duplicates
8928 (append (map cadr direct-inputs)
8929 (filter (lambda (pkg)
8930 (string-prefix? "ghc-" (package-name pkg)))
8931 (package-closure
8932 (map cadr direct-inputs))))))))
8933 `(("zlib:static" ,zlib "static")
8934 ,@all-static-inputs
8935 ,@direct-inputs)))
8936 (native-inputs
8937 (let* ((direct-inputs (package-native-inputs ghc-pandoc))
8938 (all-static-inputs
8939 (map (lambda (pkg)
8940 (list (string-append "static-" (package-name pkg))
8941 pkg "static"))
8942 (delete-duplicates
8943 (append (map cadr direct-inputs)
8944 (filter (lambda (pkg)
8945 (string-prefix? "ghc-" (package-name pkg)))
8946 (package-closure
8947 (map cadr direct-inputs))))))))
8948 `(,@all-static-inputs
8949 ,@direct-inputs)))))
8950
dddbc90c
RV
8951(define-public ghc-pandoc-citeproc
8952 (package
8953 (name "ghc-pandoc-citeproc")
2da02d09 8954 (version "0.16.2")
dddbc90c
RV
8955 (source
8956 (origin
8957 (method url-fetch)
8958 (uri (string-append "https://hackage.haskell.org/package/"
8959 "pandoc-citeproc/pandoc-citeproc-"
8960 version ".tar.gz"))
8961 (sha256
8962 (base32
2da02d09 8963 "15mm17awgi1b5yazwhr5nh8b59qml1qk6pz6gpyijks70fq2arsv"))))
dddbc90c
RV
8964 (build-system haskell-build-system)
8965 (arguments
8966 `(#:phases
8967 (modify-phases %standard-phases
8968 ;; Many YAML tests (44) are failing do to changes in ghc-yaml:
8969 ;; <https://github.com/jgm/pandoc-citeproc/issues/342>.
8970 (add-before 'configure 'patch-tests
8971 (lambda _
8972 (substitute* "tests/test-pandoc-citeproc.hs"
8973 (("let allTests = citeprocTests \\+\\+ biblio2yamlTests")
8974 "let allTests = citeprocTests"))))
8975 ;; Tests need to be run after installation.
8976 (delete 'check)
8977 (add-after 'install 'post-install-check
8978 (assoc-ref %standard-phases 'check)))))
8979 (inputs
8980 `(("ghc-pandoc-types" ,ghc-pandoc-types)
8981 ("ghc-pandoc" ,ghc-pandoc)
8982 ("ghc-tagsoup" ,ghc-tagsoup)
8983 ("ghc-aeson" ,ghc-aeson)
8984 ("ghc-vector" ,ghc-vector)
8985 ("ghc-xml-conduit" ,ghc-xml-conduit)
8986 ("ghc-unordered-containers" ,ghc-unordered-containers)
8987 ("ghc-data-default" ,ghc-data-default)
8988 ("ghc-setenv" ,ghc-setenv)
8989 ("ghc-split" ,ghc-split)
8990 ("ghc-yaml" ,ghc-yaml)
8991 ("ghc-hs-bibutils" ,ghc-hs-bibutils)
8992 ("ghc-rfc5051" ,ghc-rfc5051)
8993 ("ghc-syb" ,ghc-syb)
8994 ("ghc-old-locale" ,ghc-old-locale)
8995 ("ghc-aeson-pretty" ,ghc-aeson-pretty)
8996 ("ghc-attoparsec" ,ghc-attoparsec)
8997 ("ghc-temporary" ,ghc-temporary)))
8998 (home-page "https://github.com/jgm/pandoc-citeproc")
8999 (synopsis "Library for using pandoc with citeproc")
9000 (description
9001 "The @code{pandoc-citeproc} library exports functions for using the
9002citeproc system with pandoc. It relies on @code{citeproc-hs}, a library for
9003rendering bibliographic reference citations into a variety of styles using a
9004macro language called @dfn{Citation Style Language} (CSL). This package also
9005contains an executable @code{pandoc-citeproc}, which works as a pandoc filter,
9006and also has a mode for converting bibliographic databases a YAML format
9007suitable for inclusion in pandoc YAML metadata.")
9008 (license license:bsd-3)))
9009
e380ef14
RW
9010(define-public pandoc-citeproc
9011 (package (inherit ghc-pandoc-citeproc)
9012 (name "pandoc-citeproc")
9013 (arguments
9014 `(#:configure-flags
9015 (list "-fstatic"
9016 "--disable-shared"
9017 "--disable-executable-dynamic"
9018 ;; That's where we place all static libraries
9019 "--extra-lib-dirs=static-libs/"
9020 "--ghc-option=-static")
9021 #:modules ((guix build haskell-build-system)
9022 (guix build utils)
9023 (ice-9 match)
9024 (srfi srfi-1))
9025 #:phases
9026 (modify-phases %standard-phases
9027 ;; Many YAML tests (44) are failing do to changes in ghc-yaml:
9028 ;; <https://github.com/jgm/pandoc-citeproc/issues/342>.
9029 (add-before 'configure 'patch-tests
9030 (lambda _
9031 (substitute* "tests/test-pandoc-citeproc.hs"
9032 (("let allTests = citeprocTests \\+\\+ biblio2yamlTests")
9033 "let allTests = citeprocTests"))))
9034 ;; Tests need to be run after installation.
9035 (delete 'check)
9036 (add-after 'install 'post-install-check
9037 (assoc-ref %standard-phases 'check))
9038 (add-after 'unpack 'create-simple-paths-module
9039 (lambda* (#:key outputs #:allow-other-keys)
9040 (call-with-output-file "Paths_pandoc_citeproc.hs"
9041 (lambda (port)
9042 (format port "\
9043{-# LANGUAGE CPP #-}
9044{-# LANGUAGE NoRebindableSyntax #-}
9045{-# OPTIONS_GHC -fno-warn-missing-import-lists #-}
9046module Paths_pandoc_citeproc (version,getDataFileName) where
9047import Prelude
9048import Data.Version (Version(..))
9049import System.Info
9050version :: Version
9051version = Version [~a] []
9052
9053datadir :: FilePath
9054datadir = \"~a/share/\" ++
9055 arch ++ \"-\" ++
9056 os ++ \"-\" ++
9057 compilerName ++ \"-~a/pandoc-citeproc-~a\"
9058
9059getDataDir :: IO FilePath
9060getDataDir = return datadir
9061
9062getDataFileName :: FilePath -> IO FilePath
9063getDataFileName name = do
9064 dir <- getDataDir
9065 return (dir ++ \"/\" ++ name)
9066"
9067 (string-map (lambda (chr) (if (eq? chr #\.) #\, chr))
9068 ,(package-version ghc-pandoc-citeproc))
9069 (assoc-ref outputs "out")
9070 ,(package-version ghc)
9071 ,(package-version ghc-pandoc-citeproc))))
9072 #t))
9073 (add-after 'unpack 'prepare-static-libraries
9074 (lambda* (#:key inputs #:allow-other-keys)
9075 (mkdir-p (string-append (getcwd) "/static-libs"))
9076 (for-each
9077 (lambda (input)
9078 (when (or (string-prefix? "static-" (car input))
9079 (string-prefix? "ghc" (car input)))
9080 (match (find-files (cdr input) "\\.a$")
9081 ((and (first . rest) libs)
9082 (for-each (lambda (lib)
9083 (let ((target (string-append (getcwd) "/static-libs/"
9084 (basename lib))))
9085 (unless (file-exists? target)
9086 (symlink first target))))
9087 libs))
9088 (_ #f))))
9089 inputs)
9090 #t)))))
9091 (inputs
9092 (let* ((direct-inputs
9093 (cons `("ghc-pandoc" ,pandoc)
9094 (alist-delete "ghc-pandoc"
9095 (package-inputs ghc-pandoc-citeproc))))
9096 (all-static-inputs
9097 (map (lambda (pkg)
9098 (list (string-append "static-" (package-name pkg))
9099 pkg "static"))
9100 (delete-duplicates
9101 (append (map cadr direct-inputs)
9102 (filter (lambda (pkg)
9103 (string-prefix? "ghc-" (package-name pkg)))
9104 (package-closure
9105 (map cadr direct-inputs))))))))
9106 `(("zlib:static" ,zlib "static")
9107 ("pandoc" ,pandoc "lib")
9108 ,@all-static-inputs
9109 ,@direct-inputs)))
9110 (synopsis "Pandoc filter for bibliographic references")))
9111
dddbc90c
RV
9112(define-public ghc-pandoc-types
9113 (package
9114 (name "ghc-pandoc-types")
0eaa88c8 9115 (version "1.17.6.1")
dddbc90c
RV
9116 (source (origin
9117 (method url-fetch)
9118 (uri (string-append "https://hackage.haskell.org/package/"
9119 "pandoc-types/pandoc-types-"
9120 version ".tar.gz"))
9121 (sha256
9122 (base32
0eaa88c8 9123 "1d6ygq991ddria71l7hg9yd7lq94sjy4m71rdws1v8hq943c4d0q"))))
dddbc90c 9124 (build-system haskell-build-system)
c7891956
RW
9125 (arguments
9126 `(#:phases
9127 (modify-phases %standard-phases
9128 ;; None of the directory names are actually used. By generating a
9129 ;; simpler module without references to store names we avoid
9130 ;; introducing references in the pandoc executable.
9131 (add-after 'unpack 'create-simple-paths-module
9132 (lambda _
9133 (call-with-output-file "Paths_pandoc_types.hs"
9134 (lambda (port)
9135 (format port "\
9136{-# LANGUAGE CPP #-}
9137{-# LANGUAGE NoRebindableSyntax #-}
9138{-# OPTIONS_GHC -fno-warn-missing-import-lists #-}
9139module Paths_pandoc_types (version) where
9140import Data.Version (Version(..))
9141version :: Version
9142version = Version [~a] []
9143" (string-map (lambda (chr) (if (eq? chr #\.) #\, chr)) ,version))))
9144 #t)))))
dddbc90c
RV
9145 (inputs
9146 `(("ghc-syb" ,ghc-syb)
9147 ("ghc-aeson" ,ghc-aeson)
9148 ("ghc-string-qq" ,ghc-string-qq)))
9149 (native-inputs
9150 `(("ghc-quickcheck" ,ghc-quickcheck)
9151 ("ghc-test-framework" ,ghc-test-framework)
9152 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
9153 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)
9154 ("ghc-hunit" ,ghc-hunit)))
d48b5c8a 9155 (home-page "https://johnmacfarlane.net/pandoc")
dddbc90c
RV
9156 (synopsis "Types for representing a structured document")
9157 (description
9158 "This module defines the @code{Pandoc} data structure, which is used by
9159pandoc to represent structured documents. It also provides functions for
9160building up, manipulating and serialising @code{Pandoc} structures.")
9161 (license license:bsd-3)))
9162
9163(define-public ghc-parallel
9164 (package
9165 (name "ghc-parallel")
9166 (version "3.2.2.0")
534d6caa 9167 (outputs '("out" "static" "doc"))
dddbc90c
RV
9168 (source
9169 (origin
9170 (method url-fetch)
9171 (uri (string-append
9172 "https://hackage.haskell.org/package/parallel/parallel-"
9173 version
9174 ".tar.gz"))
9175 (sha256
9176 (base32
9177 "1xkfi96w6yfpppd0nw1rnszdxmvifwzm699ilv6332ra3akm610p"))))
9178 (build-system haskell-build-system)
9179 (home-page "https://hackage.haskell.org/package/parallel")
9180 (synopsis "Parallel programming library")
9181 (description
9182 "This package provides a library for parallel programming.")
9183 (license license:bsd-3)))
9184
9185(define-public ghc-parsec-numbers
9186 (package
9187 (name "ghc-parsec-numbers")
9188 (version "0.1.0")
9189 (source
9190 (origin
9191 (method url-fetch)
9192 (uri (string-append "https://hackage.haskell.org/package/"
9193 "parsec-numbers/parsec-numbers-" version ".tar.gz"))
9194 (sha256
9195 (base32 "1gzy4v3r02kvdxvgg1nj83mmb6aph2v4ilf9c7y6nbvi2x49l0bp"))))
9196 (build-system haskell-build-system)
9197 (home-page "https://hackage.haskell.org/package/parsec-numbers")
9198 (synopsis "Utilities for parsing numbers from strings")
9199 (description
9200 "This package provides the number parsers without the need to use a large
9201(and unportable) token parser.")
9202 (license license:bsd-3)))
9203
9204(define-public ghc-parser-combinators
9205 (package
9206 (name "ghc-parser-combinators")
2f173160 9207 (version "1.1.0")
dddbc90c
RV
9208 (source
9209 (origin
9210 (method url-fetch)
9211 (uri (string-append "https://hackage.haskell.org/package/"
9212 "parser-combinators/parser-combinators-"
9213 version ".tar.gz"))
9214 (sha256
9215 (base32
2f173160 9216 "149yhbnrrl108h1jinrsxni3rwrldhphpk9bbmbpr90q5fbl4xmc"))))
dddbc90c
RV
9217 (build-system haskell-build-system)
9218 (home-page "https://github.com/mrkkrp/parser-combinators")
9219 (synopsis "Commonly useful parser combinators")
9220 (description
9221 "This is a lightweight package providing commonly useful parser
9222combinators.")
9223 (license license:bsd-3)))
9224
9225(define-public ghc-parsers
9226 (package
9227 (name "ghc-parsers")
6818f970 9228 (version "0.12.10")
dddbc90c
RV
9229 (source
9230 (origin
9231 (method url-fetch)
9232 (uri (string-append
9233 "https://hackage.haskell.org/package/parsers/parsers-"
9234 version
9235 ".tar.gz"))
9236 (sha256
9237 (base32
6818f970 9238 "0v0smxbzk1qpdfkfqqmrzd2dngv3vxba10mkjn9nfm6a309izf8p"))))
dddbc90c
RV
9239 (build-system haskell-build-system)
9240 (arguments `(#:tests? #f)) ; FIXME: Test fails with "cannot satisfy
9241 ; -package attoparsec-0.13.0.1"
9242 (inputs
9243 `(("ghc-base-orphans" ,ghc-base-orphans)
9244 ("ghc-attoparsec" ,ghc-attoparsec)
9245 ("ghc-scientific" ,ghc-scientific)
9246 ("ghc-charset" ,ghc-charset)
9247 ("ghc-unordered-containers" ,ghc-unordered-containers)))
9248 (home-page "https://github.com/ekmett/parsers/")
9249 (synopsis "Parsing combinators")
9250 (description "This library provides convenient combinators for working
9251with and building parsing combinator libraries. Given a few simple instances,
9252you get access to a large number of canned definitions. Instances exist for
9253the parsers provided by @code{parsec}, @code{attoparsec} and @code{base}'s
9254@code{Text.Read}.")
9255 (license license:bsd-3)))
9256
9257(define-public ghc-path
9258 (package
9259 (name "ghc-path")
9260 (version "0.6.1")
9261 (source
9262 (origin
9263 (method url-fetch)
9264 (uri (string-append
9265 "https://hackage.haskell.org/package/path/path-"
9266 version
9267 ".tar.gz"))
9268 (sha256
9269 (base32
9270 "0nayla4k1gb821k8y5b9miflv1bi8f0czf9rqr044nrr2dddi2sb"))))
9271 (build-system haskell-build-system)
9272 (arguments
9273 ;; TODO: There are some Windows-related tests and modules that need to be
9274 ;; danced around.
9275 `(#:tests? #f
9276 #:cabal-revision
9277 ("1" "05b1zwx2a893h4h5wvgpc5g5pyx71hfmx409rqisd8s1bq1hn463")))
9278 (inputs
9279 `(("ghc-aeson" ,ghc-aeson)
9280 ("ghc-exceptions" ,ghc-exceptions)
9281 ("ghc-hashable" ,ghc-hashable)))
9282 (native-inputs
9283 `(("ghc-hspec" ,ghc-hspec)
9284 ("ghc-quickcheck" ,ghc-quickcheck)
9285 ("ghc-genvalidity" ,ghc-genvalidity)
9286 ("ghc-genvalidity-property" ,ghc-genvalidity-property)
9287 ("ghc-hspec" ,ghc-hspec)
9288 ("ghc-validity" ,ghc-validity)))
9289 (home-page
3ef91e15 9290 "https://hackage.haskell.org/package/path")
dddbc90c
RV
9291 (synopsis "Support for well-typed paths")
9292 (description "This package introduces a type for paths upholding useful
9293invariants.")
9294 (license license:bsd-3)))
9295
9296(define-public ghc-path-io
9297 (package
9298 (name "ghc-path-io")
a06613ea 9299 (version "1.4.2")
dddbc90c
RV
9300 (source
9301 (origin
9302 (method url-fetch)
9303 (uri (string-append
9304 "https://hackage.haskell.org/package/path-io/path-io-"
9305 version
9306 ".tar.gz"))
9307 (sha256
9308 (base32
a06613ea 9309 "0jqx3mi4an4kb3kg78n1p3xrz832yrfrnvj795b0xhkv6h1z5ir3"))))
dddbc90c
RV
9310 (build-system haskell-build-system)
9311 (inputs
9312 `(("ghc-dlist" ,ghc-dlist)
9313 ("ghc-exceptions" ,ghc-exceptions)
9314 ("ghc-path" ,ghc-path)
9315 ("ghc-transformers-base" ,ghc-transformers-base)
9316 ("ghc-unix-compat" ,ghc-unix-compat)
9317 ("ghc-temporary" ,ghc-temporary)))
9318 (native-inputs
9319 `(("ghc-hspec" ,ghc-hspec)))
dddbc90c
RV
9320 (home-page
9321 "https://github.com/mrkkrp/path-io")
9322 (synopsis "Functions for manipulating well-typed paths")
9323 (description "This package provides an interface to the @code{directory}
9324package for users of @code{path}. It also implements some missing stuff like
9325recursive scanning and copying of directories, working with temporary
9326files/directories, and more.")
9327 (license license:bsd-3)))
9328
9329(define-public ghc-paths
9330 (package
9331 (name "ghc-paths")
9a8adeb1 9332 (version "0.1.0.12")
534d6caa 9333 (outputs '("out" "static" "doc"))
dddbc90c
RV
9334 (source
9335 (origin
9336 (method url-fetch)
9337 (uri (string-append
9338 "https://hackage.haskell.org/package/ghc-paths/ghc-paths-"
9339 version
9340 ".tar.gz"))
9341 (sha256
9342 (base32
9a8adeb1 9343 "1164w9pqnf7rjm05mmfjznz7rrn415blrkk1kjc0gjvks1vfdjvf"))))
dddbc90c
RV
9344 (build-system haskell-build-system)
9345 (home-page "https://github.com/simonmar/ghc-paths")
9346 (synopsis
9347 "Knowledge of GHC's installation directories")
9348 (description
9349 "Knowledge of GHC's installation directories.")
9350 (license license:bsd-3)))
9351
9352(define-public ghc-patience
9353 (package
9354 (name "ghc-patience")
484476f3 9355 (version "0.3")
dddbc90c
RV
9356 (source
9357 (origin
9358 (method url-fetch)
9359 (uri (string-append
9360 "https://hackage.haskell.org/package/patience/patience-"
9361 version ".tar.gz"))
9362 (sha256
9363 (base32
484476f3 9364 "1i1b37lgi31c17yrjyf8pdm4nf5lq8vw90z3rri78hf0k66d0p3i"))))
dddbc90c
RV
9365 (build-system haskell-build-system)
9366 (home-page "https://hackage.haskell.org/package/patience")
9367 (synopsis "Patience diff and longest increasing subsequence")
9368 (description
9369 "This library implements the 'patience diff' algorithm, as well as the
9370patience algorithm for the longest increasing subsequence problem.
9371Patience diff computes the difference between two lists, for example the lines
9372of two versions of a source file. It provides a good balance between
9373performance, nice output for humans, and simplicity of implementation.")
9374 (license license:bsd-3)))
9375
25a221a8
JS
9376(define-public ghc-pattern-arrows
9377 (package
9378 (name "ghc-pattern-arrows")
9379 (version "0.0.2")
9380 (source
9381 (origin
9382 (method url-fetch)
9383 (uri (string-append
9384 "mirror://hackage/package/pattern-arrows/pattern-arrows-"
9385 version
9386 ".tar.gz"))
9387 (sha256
9388 (base32
9389 "13q7bj19hd60rnjfc05wxlyck8llxy11z3mns8kxg197wxrdkhkg"))))
9390 (build-system haskell-build-system)
9391 (home-page
9392 "https://blog.functorial.com/posts/2013-10-27-Pretty-Printing-Arrows.html")
9393 (synopsis "Arrows for Pretty Printing")
9394 (description
9395 "A library for generating concise pretty printers based on precedence
9396rules.")
9397 (license license:expat)))
9398
dddbc90c
RV
9399(define-public ghc-pcre-light
9400 (package
9401 (name "ghc-pcre-light")
9402 (version "0.4.0.4")
9403 (source
9404 (origin
9405 (method url-fetch)
9406 (uri (string-append
9407 "https://hackage.haskell.org/package/pcre-light/pcre-light-"
9408 version
9409 ".tar.gz"))
9410 (sha256
9411 (base32
9412 "0xcyi1fivwg7a92mch5bcqzmrfxzqj42rmb3m8kgs61x4qwpxj82"))))
9413 (build-system haskell-build-system)
a928f35b
TS
9414 (arguments
9415 `(#:extra-directories ("pcre")))
dddbc90c
RV
9416 (inputs
9417 `(("pcre" ,pcre)))
9418 (native-inputs
9419 `(("pkg-config" ,pkg-config)))
9420 (home-page "https://github.com/Daniel-Diaz/pcre-light")
9421 (synopsis "Haskell library for Perl 5 compatible regular expressions")
9422 (description "This package provides a small, efficient, and portable regex
9423library for Perl 5 compatible regular expressions. The PCRE library is a set
9424of functions that implement regular expression pattern matching using the same
9425syntax and semantics as Perl 5.")
9426 (license license:bsd-3)))
9427
9428(define-public ghc-persistent
9429 (package
9430 (name "ghc-persistent")
8c9697a9 9431 (version "2.10.4")
dddbc90c
RV
9432 (source
9433 (origin
9434 (method url-fetch)
8c9697a9
ASM
9435 (uri (string-append
9436 "https://hackage.haskell.org/package/persistent/"
9437 "persistent-" version ".tar.gz"))
dddbc90c
RV
9438 (sha256
9439 (base32
8c9697a9 9440 "1cxswz72sqdg2z1nbpgp1k5qr41djgk8qbf8nz7wfppsrhacyffi"))))
dddbc90c 9441 (build-system haskell-build-system)
8c9697a9
ASM
9442 (inputs
9443 `(("ghc-aeson" ,ghc-aeson)
9444 ("ghc-attoparsec" ,ghc-attoparsec)
9445 ("ghc-base64-bytestring" ,ghc-base64-bytestring)
9446 ("ghc-blaze-html" ,ghc-blaze-html)
9447 ("ghc-conduit" ,ghc-conduit)
9448 ("ghc-fast-logger" ,ghc-fast-logger)
9449 ("ghc-http-api-data" ,ghc-http-api-data)
9450 ("ghc-monad-logger" ,ghc-monad-logger)
9451 ("ghc-path-pieces" ,ghc-path-pieces)
9452 ("ghc-resource-pool" ,ghc-resource-pool)
9453 ("ghc-resourcet" ,ghc-resourcet)
9454 ("ghc-scientific" ,ghc-scientific)
9455 ("ghc-silently" ,ghc-silently)
9456 ("ghc-unliftio-core" ,ghc-unliftio-core)
9457 ("ghc-unliftio" ,ghc-unliftio)
9458 ("ghc-unordered-containers"
9459 ,ghc-unordered-containers)
9460 ("ghc-vector" ,ghc-vector)))
dddbc90c
RV
9461 (native-inputs `(("ghc-hspec" ,ghc-hspec)))
9462 (home-page "https://www.yesodweb.com/book/persistent")
9463 (synopsis "Type-safe, multi-backend data serialization for Haskell")
9464 (description "This Haskell package allows Haskell programs to access data
9465storage systems like PostgreSQL, SQLite, MySQL and MongoDB in a type-safe
9466way.")
9467 (license license:expat)))
9468
9469(define-public ghc-persistent-sqlite
9470 (package
9471 (name "ghc-persistent-sqlite")
78858787 9472 (version "2.10.5.2")
dddbc90c
RV
9473 (source
9474 (origin
9475 (method url-fetch)
78858787
ASM
9476 (uri (string-append
9477 "https://hackage.haskell.org/package/persistent-sqlite/"
9478 "persistent-sqlite-" version ".tar.gz"))
dddbc90c
RV
9479 (sha256
9480 (base32
78858787 9481 "0agag3cgivl6mk38pqzr0qw5lxps9p2bgdwvi5658l46hs7bixxn"))))
dddbc90c 9482 (build-system haskell-build-system)
78858787
ASM
9483 (inputs
9484 `(("ghc-persistent" ,ghc-persistent)
9485 ("ghc-aeson" ,ghc-aeson)
9486 ("ghc-conduit" ,ghc-conduit)
9487 ("ghc-microlens-th" ,ghc-microlens-th)
9488 ("ghc-monad-logger" ,ghc-monad-logger)
9489 ("ghc-resource-pool" ,ghc-resource-pool)
9490 ("ghc-resourcet" ,ghc-resourcet)
9491 ("ghc-unliftio-core" ,ghc-unliftio-core)
9492 ("ghc-unordered-containers"
9493 ,ghc-unordered-containers)))
9494 (native-inputs
9495 `(("ghc-persistent-template"
9496 ,ghc-persistent-template)
9497 ("ghc-persistent-test" ,ghc-persistent-test)
9498 ("ghc-exceptions" ,ghc-exceptions)
9499 ("ghc-fast-logger" ,ghc-fast-logger)
9500 ("ghc-hspec" ,ghc-hspec)
9501 ("ghc-hunit" ,ghc-hunit)
9502 ("ghc-quickcheck" ,ghc-quickcheck)
9503 ("ghc-system-fileio" ,ghc-system-fileio)
9504 ("ghc-system-filepath" ,ghc-system-filepath)
9505 ("ghc-temporary" ,ghc-temporary)))
dddbc90c
RV
9506 (home-page
9507 "https://www.yesodweb.com/book/persistent")
9508 (synopsis "Backend for the persistent library using sqlite3")
9509 (description "This Haskell package includes a thin sqlite3 wrapper based
9510on the direct-sqlite package, as well as the entire C library, so there are no
9511system dependencies.")
9512 (license license:expat)))
9513
9514(define-public ghc-persistent-template
9515 (package
9516 (name "ghc-persistent-template")
d5378e98 9517 (version "2.8.0")
dddbc90c
RV
9518 (source
9519 (origin
9520 (method url-fetch)
d5378e98
ASM
9521 (uri (string-append
9522 "https://hackage.haskell.org/package/persistent-template/"
9523 "persistent-template-" version ".tar.gz"))
dddbc90c
RV
9524 (sha256
9525 (base32
d5378e98 9526 "16yjrl0gh4jbs4skr7iv6a55lny59bqhd6hjmvch1cl9j5d0c0g3"))))
dddbc90c 9527 (build-system haskell-build-system)
d5378e98
ASM
9528 (inputs
9529 `(("ghc-persistent" ,ghc-persistent)
9530 ("ghc-aeson" ,ghc-aeson)
9531 ("ghc-http-api-data" ,ghc-http-api-data)
9532 ("ghc-monad-control" ,ghc-monad-control)
9533 ("ghc-monad-logger" ,ghc-monad-logger)
9534 ("ghc-path-pieces" ,ghc-path-pieces)
9535 ("ghc-th-lift-instances" ,ghc-th-lift-instances)
9536 ("ghc-unordered-containers"
9537 ,ghc-unordered-containers)))
9538 (native-inputs
9539 `(("ghc-hspec" ,ghc-hspec)
9540 ("ghc-quickcheck" ,ghc-quickcheck)))
dddbc90c
RV
9541 (home-page "https://www.yesodweb.com/book/persistent")
9542 (synopsis "Type-safe, non-relational, multi-backend persistence")
9543 (description "This Haskell package provides interfaces and helper
9544functions for the ghc-persistent package.")
9545 (license license:expat)))
9546
ce32f7c7
ASM
9547(define-public ghc-persistent-test
9548 (package
9549 (name "ghc-persistent-test")
9550 (version "2.0.3.1")
9551 (source
9552 (origin
9553 (method url-fetch)
9554 (uri (string-append
9555 "https://hackage.haskell.org/package/persistent-test/"
9556 "persistent-test-" version ".tar.gz"))
9557 (sha256
9558 (base32
9559 "11aq5cy0n43jamf6mg4sr4300bc2zdbjxsczzxwjkb4hzs0ijsdv"))))
9560 (build-system haskell-build-system)
9561 (inputs
9562 `(("ghc-aeson" ,ghc-aeson)
9563 ("ghc-blaze-html" ,ghc-blaze-html)
9564 ("ghc-conduit" ,ghc-conduit)
9565 ("ghc-monad-control" ,ghc-monad-control)
9566 ("ghc-monad-logger" ,ghc-monad-logger)
9567 ("ghc-path-pieces" ,ghc-path-pieces)
9568 ("ghc-persistent" ,ghc-persistent)
9569 ("ghc-persistent-template" ,ghc-persistent-template)
9570 ("ghc-random" ,ghc-random)
9571 ("ghc-resourcet" ,ghc-resourcet)
9572 ("ghc-transformers-base" ,ghc-transformers-base)
9573 ("ghc-unliftio" ,ghc-unliftio)
9574 ("ghc-unliftio-core" ,ghc-unliftio-core)
9575 ("ghc-unordered-containers" ,ghc-unordered-containers)))
9576 (native-inputs
9577 `(("ghc-quickcheck" ,ghc-quickcheck)
9578 ("ghc-quickcheck-instances" ,ghc-quickcheck-instances)
9579 ("ghc-hspec" ,ghc-hspec)
9580 ("ghc-hspec-expectations" ,ghc-hspec-expectations)
9581 ("ghc-hunit" ,ghc-hunit)))
9582 (home-page "https://www.yesodweb.com/book/persistent")
9583 (synopsis "Tests for the Persistent database library")
9584 (description
9585 "This is only for use in developing libraries that should conform to
9586the persistent interface, not for users of the persistent suite of database
9587libraries.")
9588 (license license:expat)))
9589
0fb34235
JS
9590(define-public ghc-pgp-wordlist
9591 (package
9592 (name "ghc-pgp-wordlist")
9593 (version "0.1.0.3")
9594 (source
9595 (origin
9596 (method url-fetch)
9597 (uri (string-append
9598 "mirror://hackage/package/pgp-wordlist/pgp-wordlist-"
9599 version
9600 ".tar.gz"))
9601 (sha256
9602 (base32
9603 "15g6qh0fb7kjj3l0w8cama7cxgnhnhybw760md9yy7cqfq15cfzg"))))
9604 (build-system haskell-build-system)
9605 (inputs
9606 `(("ghc-vector" ,ghc-vector)))
9607 (native-inputs
9608 `(("ghc-hunit" ,ghc-hunit)
9609 ("ghc-tasty" ,ghc-tasty)
9610 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
9611 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
9612 ("ghc-doctest" ,ghc-doctest)))
9613 (home-page
9614 "https://github.com/quchen/pgp-wordlist")
9615 (synopsis
9616 "Translate between binary data and a human-readable collection of words")
9617 (description
9618 "The PGP Word List consists of two phonetic alphabets, each with one word
9619per possible byte value. A string of bytes is translated with these
9620alphabets, alternating between them at each byte.
9621
9622The PGP words corresponding to the bytes 5B 1D CA 6E are \"erase breakaway
9623spellbind headwaters\", for example.
9624
9625For further information, see
9626@url{http://en.wikipedia.org/wiki/PGP_word_list}.")
9627 (license license:bsd-3)))
9628
4639fa32
ASM
9629(define-public ghc-pipes
9630 (package
9631 (name "ghc-pipes")
9632 (version "4.3.13")
9633 (source
9634 (origin
9635 (method url-fetch)
9636 (uri (string-append
9637 "https://hackage.haskell.org/package/pipes/"
9638 "pipes-" version ".tar.gz"))
9639 (sha256
9640 (base32
9641 "1ch3xr5f5if0psd3lsyrpkwrgh36synnzqcpimghprys68l4zfkn"))))
9642 (build-system haskell-build-system)
9643 (inputs
9644 `(("ghc-exceptions" ,ghc-exceptions)
9645 ("ghc-mmorph" ,ghc-mmorph)
9646 ("ghc-void" ,ghc-void)
9647 ("ghc-semigroups" ,ghc-semigroups)))
9648 (native-inputs
9649 `(("ghc-quickcheck" ,ghc-quickcheck)
9650 ("ghc-test-framework" ,ghc-test-framework)
9651 ("ghc-test-framework-quickcheck2"
9652 ,ghc-test-framework-quickcheck2)))
9653 (home-page
9654 "https://hackage.haskell.org/package/pipes")
9655 (synopsis "Compositional pipelines")
9656 (description
9657 "A clean and powerful stream processing library that lets you build
9658and connect reusable streaming components. Advantages over traditional streaming
9659libraries:
9660@itemize
9661@item Concise API: Use simple commands like @code{for}, (@code{>->}), @code{await},
9662and @code{yield}
9663@item Blazing fast: Implementation tuned for speed, including shortcut fusion
9664@item Lightweight Dependency: pipes is small and compiles very rapidly, including
9665dependencies
9666@item Elegant semantics: Use practical category theory
9667@item ListT: Correct implementation of @code{ListT} that interconverts with pipes
9668@item Bidirectionality: Implement duplex channels
9669@end itemize")
9670 (license license:bsd-3)))
9671
451775a5
ASM
9672(define-public ghc-pointedlist
9673 (package
9674 (name "ghc-pointedlist")
9675 (version "0.6.1")
9676 (source
9677 (origin
9678 (method url-fetch)
9679 (uri (string-append
9680 "https://hackage.haskell.org/package/pointedlist/"
9681 "pointedlist-" version ".tar.gz"))
9682 (sha256
9683 (base32
9684 "16xsrzqql7i4z6a3xy07sqnbyqdmcar1jiacla58y4mvkkwb0g3l"))))
9685 (build-system haskell-build-system)
9686 (home-page
3ef91e15 9687 "https://hackage.haskell.org/package/pointedlist")
451775a5
ASM
9688 (synopsis
9689 "Zipper-like comonad which works as a list, tracking a position")
9690 (description
9691 "A PointedList tracks the position in a non-empty list which works
9692similarly to a zipper. A current item is always required, and therefore
9693the list may never be empty. A circular PointedList wraps around to the
9694other end when progressing past the actual edge.")
9695 (license license:bsd-3)))
9696
dddbc90c
RV
9697(define-public ghc-polyparse
9698 (package
9699 (name "ghc-polyparse")
9822b9ca 9700 (version "1.12.1")
dddbc90c
RV
9701 (source
9702 (origin
9703 (method url-fetch)
9704 (uri (string-append
9705 "https://hackage.haskell.org/package/polyparse/polyparse-"
9706 version
9707 ".tar.gz"))
9708 (sha256
9709 (base32
9822b9ca 9710 "19fs18g7fvfdkm9zy28cgighjcxfa6mcpqgyp6whmsjkb3h393fx"))))
dddbc90c
RV
9711 (build-system haskell-build-system)
9712 (home-page
9713 "http://code.haskell.org/~malcolm/polyparse/")
9714 (synopsis
9715 "Alternative parser combinator libraries")
9716 (description
9717 "This package provides a variety of alternative parser combinator
9718libraries, including the original HuttonMeijer set. The Poly sets have
9719features like good error reporting, arbitrary token type, running state, lazy
9720parsing, and so on. Finally, Text.Parse is a proposed replacement for the
9721standard Read class, for better deserialisation of Haskell values from
9722Strings.")
9723 (license license:lgpl2.1)))
9724
9725(define-public ghc-pqueue
9726 (package
9727 (name "ghc-pqueue")
142415b0 9728 (version "1.4.1.2")
dddbc90c
RV
9729 (source
9730 (origin
9731 (method url-fetch)
9732 (uri (string-append "https://hackage.haskell.org/package/"
9733 "pqueue/pqueue-" version ".tar.gz"))
9734 (sha256
9735 (base32
142415b0 9736 "1v4zhv2sc1zsw91hvnarkjhayx2dnf7ccxz6rrhsqpcs0szaranj"))))
dddbc90c
RV
9737 (build-system haskell-build-system)
9738 (native-inputs
9739 `(("ghc-quickcheck" ,ghc-quickcheck)))
9740 (home-page "https://hackage.haskell.org/package/pqueue")
9741 (synopsis "Reliable, persistent, fast priority queues")
9742 (description
9743 "This package provides a fast, reliable priority queue implementation
9744based on a binomial heap.")
9745 (license license:bsd-3)))
9746
9747(define-public ghc-prelude-extras
9748 (package
9749 (name "ghc-prelude-extras")
9750 (version "0.4.0.3")
9751 (source
9752 (origin
9753 (method url-fetch)
9754 (uri (string-append
9755 "https://hackage.haskell.org/package/prelude-extras/prelude-extras-"
9756 version
9757 ".tar.gz"))
9758 (sha256
9759 (base32
9760 "0xzqdf3nl2h0ra4gnslm1m1nsxlsgc0hh6ky3vn578vh11zhifq9"))))
9761 (build-system haskell-build-system)
9762 (home-page "https://github.com/ekmett/prelude-extras")
9763 (synopsis "Higher order versions of Prelude classes")
9764 (description "This library provides higher order versions of
9765@code{Prelude} classes to ease programming with polymorphic recursion and
9766reduce @code{UndecidableInstances}.")
9767 (license license:bsd-3)))
9768
9769(define-public ghc-prettyclass
9770 (package
9771 (name "ghc-prettyclass")
9772 (version "1.0.0.0")
9773 (source
9774 (origin
9775 (method url-fetch)
9776 (uri (string-append "https://hackage.haskell.org/package/"
9777 "prettyclass/prettyclass-" version ".tar.gz"))
9778 (sha256
9779 (base32
9780 "11l9ajci7nh1r547hx8hgxrhq8mh5gdq30pdf845wvilg9p48dz5"))))
9781 (build-system haskell-build-system)
3ef91e15 9782 (home-page "https://hackage.haskell.org/package/prettyclass")
dddbc90c
RV
9783 (synopsis "Pretty printing class similar to Show")
9784 (description "This package provides a pretty printing class similar
9785to @code{Show}, based on the HughesPJ pretty printing library. It
9786provides the pretty printing class and instances for the Prelude
9787types.")
9788 (license license:bsd-3)))
9789
2fad2bf7
JS
9790(define-public ghc-prettyprinter
9791 (package
9792 (name "ghc-prettyprinter")
9793 (version "1.2.1.1")
9794 (source
9795 (origin
9796 (method url-fetch)
9797 (uri (string-append
9798 "mirror://hackage/package/prettyprinter/prettyprinter-"
9799 version
9800 ".tar.gz"))
9801 (sha256
9802 (base32 "1p9c3q55hba4c0zyxc624g5df7wgsclpsmd8wqpdnmib882q9d1v"))))
9803 (build-system haskell-build-system)
9804 (native-inputs
9805 `(("ghc-doctest" ,ghc-doctest)
9806 ("ghc-pgp-wordlist" ,ghc-pgp-wordlist)
9807 ("ghc-tasty" ,ghc-tasty)
9808 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
9809 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
9810 (home-page "https://github.com/quchen/prettyprinter")
9811 (synopsis
9812 "Modern, easy to use, well-documented, extensible pretty-printer")
9813 (description
9814 "A prettyprinter/text rendering engine. Easy to use, well-documented,
9815ANSI terminal backend exists, HTML backend is trivial to implement, no name
9816clashes, @code{Text}-based, extensible.")
9817 (license license:bsd-2)))
9818
2496e49f
JS
9819(define-public ghc-prettyprinter-1.6
9820 (package
9821 (inherit ghc-prettyprinter)
9822 (version "1.6.1")
9823 (source
9824 (origin
9825 (method url-fetch)
9826 (uri (string-append
9827 "mirror://hackage/package/prettyprinter/prettyprinter-"
9828 version
9829 ".tar.gz"))
9830 (sha256
9831 (base32 "10fphxh8lvdaw7i8jyllwmj87w02db92mf99zfw5vddp9mv6b5rz"))))
9832 (inputs
9833 `(("ghc-quickckeck-instances" , ghc-quickcheck-instances)
9834 ,@(package-inputs ghc-prettyprinter)))))
9835
b4f24d66
JS
9836(define-public ghc-prettyprinter-ansi-terminal
9837 (package
9838 (name "ghc-prettyprinter-ansi-terminal")
9839 (version "1.1.1.2")
9840 (source
9841 (origin
9842 (method url-fetch)
9843 (uri (string-append
9844 "mirror://hackage/package/prettyprinter-ansi-terminal/"
9845 "prettyprinter-ansi-terminal-" version ".tar.gz"))
9846 (sha256
9847 (base32 "0ha6vz707qzb5ky7kdsnw2zgphg2dnxrpbrxy8gaw119vwhb9q6k"))))
9848 (build-system haskell-build-system)
9849 (inputs
9850 `(("ghc-ansi-terminal" ,ghc-ansi-terminal)
9851 ("ghc-prettyprinter" ,ghc-prettyprinter-1.6)))
9852 (native-inputs `(("ghc-doctest" ,ghc-doctest)))
9853 (home-page
9854 "https://github.com/quchen/prettyprinter")
9855 (synopsis
9856 "ANSI terminal backend for the prettyprinter package")
9857 (description "ANSI terminal backend for the prettyprinter package.")
9858 (license license:bsd-2)))
9859
dddbc90c
RV
9860(define-public ghc-pretty-hex
9861 (package
9862 (name "ghc-pretty-hex")
9863 (version "1.0")
9864 (source
9865 (origin
9866 (method url-fetch)
9867 (uri (string-append "https://hackage.haskell.org/package/"
9868 "pretty-hex-" version "/"
9869 "pretty-hex-" version ".tar.gz"))
9870 (sha256
9871 (base32
9872 "0ylwkvvjvmpprha9nx83xb8gkhyanhk5fffc0r7lb96n4ch5z6pz"))))
9873 (build-system haskell-build-system)
9874 (home-page "https://github.com/GaloisInc/hexdump")
9875 (synopsis "Haskell library for hex dumps of ByteStrings")
9876 (description "This Haskell library generates pretty hex dumps of
9877ByteStrings in the style of other common *nix hex dump tools.")
9878 (license license:bsd-3)))
9879
9880(define-public ghc-pretty-show
9881 (package
9882 (name "ghc-pretty-show")
7683a084 9883 (version "1.9.5")
dddbc90c
RV
9884 (source
9885 (origin
9886 (method url-fetch)
9887 (uri (string-append "https://hackage.haskell.org/package/pretty-show/"
9888 "pretty-show-" version ".tar.gz"))
9889 (sha256
9890 (base32
7683a084 9891 "0gs2pabi4qa4b0r5vffpf9b1cf5n9y2939a3lljjw7cmg6xvx5dh"))))
dddbc90c
RV
9892 (build-system haskell-build-system)
9893 (inputs
9894 `(("ghc-haskell-lexer" ,ghc-haskell-lexer)
9895 ("ghc-happy" ,ghc-happy)))
702a1012 9896 (home-page "https://wiki.github.com/yav/pretty-show")
dddbc90c
RV
9897 (synopsis "Tools for working with derived `Show` instances")
9898 (description
9899 "This package provides a library and an executable for working with
9900derived @code{Show} instances. By using the library, derived @code{Show}
9901instances can be parsed into a generic data structure. The @code{ppsh} tool
9902uses the library to produce human-readable versions of @code{Show} instances,
9903which can be quite handy for debugging Haskell programs. We can also render
9904complex generic values into an interactive Html page, for easier
9905examination.")
9906 (license license:expat)))
9907
f011e3d6
JS
9908(define-public ghc-pretty-simple
9909 (package
9910 (name "ghc-pretty-simple")
9911 (version "2.2.0.1")
9912 (source
9913 (origin
9914 (method url-fetch)
9915 (uri (string-append
9916 "mirror://hackage/package/pretty-simple/"
9917 "pretty-simple-" version ".tar.gz"))
9918 (sha256
9919 (base32 "0wsi9235ihm15s145lxi7325vv2k4bhighc5m88kn1lk0pl81aqq"))))
9920 (build-system haskell-build-system)
9921 (inputs
9922 `(("ghc-ansi-terminal" ,ghc-ansi-terminal)
9923 ("ghc-glob" ,ghc-glob)
9924 ("ghc-optparse-applicative" ,ghc-optparse-applicative)
9925 ("ghc-aeson" ,ghc-aeson)))
9926 (native-inputs
9927 `(("ghc-doctest" ,ghc-doctest)))
9928 (home-page "https://github.com/cdepillabout/pretty-simple")
9929 (synopsis "Pretty printer for data types with a 'Show' instance")
9930 (description
9931 "Pretty-simple is a pretty printer for Haskell data types that have a
9932Show instance.")
9933 (license license:bsd-3)))
9934
dddbc90c
RV
9935(define-public ghc-primitive
9936 (package
9937 (name "ghc-primitive")
9938 (version "0.6.4.0")
534d6caa 9939 (outputs '("out" "static" "doc"))
dddbc90c
RV
9940 (source
9941 (origin
9942 (method url-fetch)
9943 (uri (string-append
9944 "https://hackage.haskell.org/package/primitive/primitive-"
9945 version
9946 ".tar.gz"))
9947 (sha256
9948 (base32
9949 "0r0cda7acvplgwaxy69kviv4jp7kkfi038by68gj4yfx4iwszgjc"))))
9950 (build-system haskell-build-system)
6cf0daa4
TS
9951 (arguments
9952 `(#:cabal-revision
9953 ("1" "18a14k1yiam1m4l29rin9a0y53yp3nxvkz358nysld8aqwy2qsjv")))
dddbc90c
RV
9954 (home-page
9955 "https://github.com/haskell/primitive")
9956 (synopsis "Primitive memory-related operations")
9957 (description
9958 "This package provides various primitive memory-related operations.")
9959 (license license:bsd-3)))
9960
21f5b9a9
JS
9961(define-public ghc-process-extras
9962 (package
9963 (name "ghc-process-extras")
9964 (version "0.7.4")
9965 (source
9966 (origin
9967 (method url-fetch)
9968 (uri
9969 (string-append
9970 "https://hackage.haskell.org/package/process-extras/"
9971 "process-extras-" version ".tar.gz"))
9972 (sha256
9973 (base32
9974 "0klqgr37f1z2z6i0a9b0giapmq0p35l5k9kz1p7f0k1597w7agi9"))))
9975 (build-system haskell-build-system)
9976 (inputs
9977 `(("ghc-data-default" ,ghc-data-default)
9978 ("ghc-generic-deriving" ,ghc-generic-deriving)
9979 ("ghc-hunit" ,ghc-hunit)
9980 ("ghc-listlike" ,ghc-listlike)))
9981 (home-page "https://github.com/seereason/process-extras")
9982 (synopsis "Extra tools for managing processes")
f74b6983 9983 (description "This package extends
21f5b9a9
JS
9984@url{http://hackage.haskell.org/package/process}. It allows you to read
9985process input and output as ByteStrings or Text, or write your own
9986ProcessOutput instance. It also provides lazy process input and output,
9987and a ProcessMaker class for more flexibility in the process creation
9988API.")
9989 (license license:expat)))
9990
dddbc90c
RV
9991(define-public ghc-profunctors
9992 (package
9993 (name "ghc-profunctors")
899b5297 9994 (version "5.3")
dddbc90c
RV
9995 (source
9996 (origin
9997 (method url-fetch)
9998 (uri (string-append
9999 "https://hackage.haskell.org/package/profunctors/profunctors-"
10000 version
10001 ".tar.gz"))
10002 (sha256
10003 (base32
899b5297 10004 "1dx3nkc27yxsrbrhh3iwhq7dl1xn6bj7n62yx6nh8vmpbg62lqvl"))))
dddbc90c 10005 (build-system haskell-build-system)
1ad496e5 10006 (outputs '("out" "static" "doc"))
dddbc90c
RV
10007 (inputs
10008 `(("ghc-base-orphans" ,ghc-base-orphans)
10009 ("ghc-bifunctors" ,ghc-bifunctors)
10010 ("ghc-comonad" ,ghc-comonad)
10011 ("ghc-contravariant" ,ghc-contravariant)
10012 ("ghc-distributive" ,ghc-distributive)
10013 ("ghc-semigroups" ,ghc-semigroups)
10014 ("ghc-tagged" ,ghc-tagged)))
10015 (home-page "https://github.com/ekmett/profunctors/")
10016 (synopsis "Profunctors for Haskell")
10017 (description "This library provides profunctors for Haskell.")
10018 (license license:bsd-3)))
10019
fbe32d46
ASM
10020(define-public ghc-project-template
10021 (package
10022 (name "ghc-project-template")
10023 (version "0.2.0.1")
10024 (source
10025 (origin
10026 (method url-fetch)
10027 (uri (string-append
10028 "https://hackage.haskell.org/package/project-template/project-template-"
10029 version ".tar.gz"))
10030 (sha256
10031 (base32
10032 "1p69ww4rhah2qxragl615wl4a6mk4x9w09am8knmz3s4lxpljlpb"))))
10033 (build-system haskell-build-system)
10034 (inputs
10035 `(("ghc-base64-bytestring" ,ghc-base64-bytestring)
10036 ("ghc-conduit" ,ghc-conduit)
10037 ("ghc-conduit-extra" ,ghc-conduit-extra)
10038 ("ghc-resourcet" ,ghc-resourcet)))
10039 (native-inputs
10040 `(("ghc-hspec" ,ghc-hspec)
10041 ("hspec-discover" ,hspec-discover)
10042 ("ghc-quickcheck" ,ghc-quickcheck)))
10043 (arguments
10044 `(#:cabal-revision
10045 ("1"
10046 "0lq3sqnq0nr0gbvgzp0lqdl3j3mqdmdlf8xsw0j3pjh581xj3k0a")))
10047 (home-page "https://github.com/fpco/haskell-ide")
10048 (synopsis "Specify Haskell project templates and generate files")
10049 (description
10050 "Haskell library for both generating and consuming project templates.
10051
10052ost IDEs provide the concept of a project template: instead of writing all
10053of the code for a project from scratch, you select a template, answer a few
10054questions, and a bunch of files are automatically generated.
10055
10056project-template tries to provide a canonical Haskell library for implementing
10057the ideal templating system.")
10058 (license license:bsd-3)))
10059
8a6e745d
JS
10060(define-public ghc-protolude
10061 (package
10062 (name "ghc-protolude")
10063 (version "0.2.3")
10064 (source
10065 (origin
10066 (method url-fetch)
10067 (uri (string-append
10068 "mirror://hackage/package/protolude/protolude-"
10069 version
10070 ".tar.gz"))
10071 (sha256
10072 (base32
10073 "0zzkyxz0vmcbncpid7gp72fpjj0fla3gqhlfkij5c5lg12skjgfj"))))
10074 (build-system haskell-build-system)
10075 (inputs
10076 `(("ghc-async" ,ghc-async)
10077 ("ghc-hashable" ,ghc-hashable)
10078 ("ghc-mtl-compat" ,ghc-mtl-compat)
10079 ("ghc-transformers-compat" ,ghc-transformers-compat)))
10080 (home-page "https://github.com/protolude/protolude")
10081 (synopsis "Sensible set of defaults for writing custom Preludes")
10082 (description
10083 "Protolude gives you sensible defaults for writing custom Preludes to
10084replace the standard one provided by GHC.")
10085 (license license:expat)))
10086
cf123e32
MB
10087(define-public ghc-psqueue
10088 (package
10089 (name "ghc-psqueue")
10090 (version "1.1.0.1")
10091 (source (origin
10092 (method url-fetch)
10093 (uri (string-append "mirror://hackage/package/PSQueue-"
10094 version "/PSQueue-" version ".tar.gz"))
10095 (sha256
10096 (base32
10097 "1cik7sw10sacsijmfhghzy54gm1qcyxw14shlp86lx8z89kcnkza"))))
10098 (build-system haskell-build-system)
10099 (home-page "https://hackage.haskell.org/package/PSQueue")
10100 (synopsis "Priority search queue")
10101 (description
10102 "A @dfn{priority search queue} efficiently supports the operations of
10103both a search tree and a priority queue. A @code{Binding} is a product of
10104a key and a priority. Bindings can be inserted, deleted, modified and queried
10105in logarithmic time, and the binding with the least priority can be retrieved
10106in constant time. A queue can be built from a list of bindings, sorted by
10107keys, in linear time.")
10108 (license license:bsd-3)))
10109
dddbc90c
RV
10110(define-public ghc-psqueues
10111 (package
10112 (name "ghc-psqueues")
5d133942 10113 (version "0.2.7.2")
dddbc90c
RV
10114 (source
10115 (origin
10116 (method url-fetch)
10117 (uri (string-append "https://hackage.haskell.org/package/"
10118 "psqueues-" version "/"
10119 "psqueues-" version ".tar.gz"))
10120 (sha256
10121 (base32
5d133942 10122 "1yckx2csqswghiy9nfj03cybmza8104nmnpbpcc9ngwlbmakn9i6"))))
dddbc90c
RV
10123 (build-system haskell-build-system)
10124 (inputs
10125 `(("ghc-hashable" ,ghc-hashable)))
10126 (native-inputs
10127 `(("ghc-hunit" ,ghc-hunit)
10128 ("ghc-quickcheck" ,ghc-quickcheck)
10129 ("ghc-tagged" ,ghc-tagged)
5d133942
TS
10130 ("ghc-tasty" ,ghc-tasty)
10131 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
10132 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
dddbc90c
RV
10133 (home-page "https://github.com/jaspervdj/psqueues")
10134 (synopsis "Pure priority search queues")
10135 (description "The psqueues package provides
10136@uref{https://en.wikipedia.org/wiki/Priority_queue, Priority Search Queues} in
10137three different flavors:
10138
10139@itemize
10140@item @code{OrdPSQ k p v}, which uses the @code{Ord k} instance to provide
10141fast insertion, deletion and lookup. This implementation is based on Ralf
10142Hinze's @uref{http://citeseer.ist.psu.edu/hinze01simple.html, A Simple
10143Implementation Technique for Priority Search Queues}.
10144
10145Hence, it is similar to the @uref{https://hackage.haskell.org/package/PSQueue,
10146PSQueue} library, although it is considerably faster and provides a slightly
10147different API.
10148
10149@item @code{IntPSQ p v} is a far more efficient implementation. It fixes the
10150key type to @code{Int} and uses a
10151@code{https://en.wikipedia.org/wiki/Radix_tree, radix tree} (like @code{IntMap})
10152with an additional min-heap property.
10153
10154@item @code{HashPSQ k p v} is a fairly straightforward extension
10155of @code{IntPSQ}: it simply uses the keys' hashes as indices in the
10156@code{IntPSQ}. If there are any hash collisions, it uses an
10157@code{OrdPSQ} to resolve those. The performance of this implementation
10158is comparable to that of @code{IntPSQ}, but it is more widely
10159applicable since the keys are not restricted to @code{Int},
10160but rather to any @code{Hashable} datatype.
10161@end itemize
10162
10163Each of the three implementations provides the same API, so they can
10164be used interchangeably.
10165
10166Typical applications of Priority Search Queues include:
10167
10168@itemize
10169@item Caches, and more specifically LRU Caches;
10170@item Schedulers;
10171@item Pathfinding algorithms, such as Dijkstra's and A*.
10172@end itemize")
10173 (license license:bsd-3)))
b1dbc9f5
ASM
10174
10175(define-public ghc-pwstore-fast
10176 (package
10177 (name "ghc-pwstore-fast")
10178 (version "2.4.4")
10179 (source
10180 (origin
10181 (method url-fetch)
10182 (uri (string-append
10183 "https://hackage.haskell.org/package/pwstore-fast/"
10184 "pwstore-fast-" version ".tar.gz"))
10185 (sha256
10186 (base32
10187 "1cpvlwzg3qznhygrr78f75p65mnljd9v5cvnagfxjqppnrkay6bj"))))
10188 (build-system haskell-build-system)
10189 (inputs
10190 `(("ghc-base64-bytestring" ,ghc-base64-bytestring)
10191 ("ghc-cryptohash" ,ghc-cryptohash)
10192 ("ghc-random" ,ghc-random)
10193 ("ghc-byteable" ,ghc-byteable)))
10194 (home-page "https://github.com/PeterScott/pwstore")
10195 (synopsis "Secure password storage")
10196 (description
10197 "To store passwords securely, they should be salted, then hashed with
10198a slow hash function. This library uses PBKDF1-SHA256, and handles all the
10199details. It uses the cryptohash package for speed; if you need a pure
10200Haskell library, pwstore-purehaskell has the exact same API, but uses only
10201pure Haskell. It is about 25 times slower than this package, but still quite
10202usable.")
10203 (license license:bsd-3)))
dddbc90c
RV
10204
10205(define-public ghc-random
10206 (package
10207 (name "ghc-random")
10208 (version "1.1")
534d6caa 10209 (outputs '("out" "static" "doc"))
dddbc90c
RV
10210 (source
10211 (origin
10212 (method url-fetch)
10213 (uri (string-append
10214 "https://hackage.haskell.org/package/random/random-"
10215 version
10216 ".tar.gz"))
10217 (sha256
10218 (base32 "0nis3lbkp8vfx8pkr6v7b7kr5m334bzb0fk9vxqklnp2aw8a865p"))))
10219 (build-system haskell-build-system)
10220 (home-page "https://hackage.haskell.org/package/random")
10221 (synopsis "Random number library")
10222 (description "This package provides a basic random number generation
10223library, including the ability to split random number generators.")
10224 (license license:bsd-3)))
10225
10226(define-public ghc-raw-strings-qq
10227 (package
10228 (name "ghc-raw-strings-qq")
10229 (version "1.1")
10230 (source
10231 (origin
10232 (method url-fetch)
10233 (uri (string-append "https://hackage.haskell.org/package/"
10234 "raw-strings-qq/raw-strings-qq-"
10235 version ".tar.gz"))
10236 (sha256
10237 (base32
10238 "1lxy1wy3awf52968iy5y9r5z4qgnn2sxkdrh7js3m9gadb11w09f"))))
10239 (build-system haskell-build-system)
10240 (native-inputs `(("ghc-hunit" ,ghc-hunit)))
10241 (home-page "https://github.com/23Skidoo/raw-strings-qq")
10242 (synopsis "Raw string literals for Haskell")
10243 (description
10244 "This package provides a quasiquoter for raw string literals, i.e. string
10245literals that don't recognise the standard escape sequences. Basically, they
10246make your code more readable by freeing you from the responsibility to escape
10247backslashes. They are useful when working with regular expressions,
10248DOS/Windows paths and markup languages (such as XML).")
10249 (license license:bsd-3)))
10250
10251(define-public ghc-readable
10252 (package
10253 (name "ghc-readable")
10254 (version "0.3.1")
10255 (source
10256 (origin
10257 (method url-fetch)
10258 (uri (string-append "https://hackage.haskell.org/package/"
10259 "readable/readable-" version ".tar.gz"))
10260 (sha256
10261 (base32
10262 "1ja39cg26wy2fs00gi12x7iq5k8i366pbqi3p916skfa5jnkfc3h"))))
10263 (build-system haskell-build-system)
10264 (home-page "https://github.com/mightybyte/readable")
10265 (synopsis "Type class for reading from Text and ByteString")
10266 (description "This package provides a @code{Readable} type class for
10267reading data types from @code{ByteString} and @code{Text}. It also
10268includes efficient implementations for common data types.")
10269 (license license:bsd-3)))
10270
10271(define-public ghc-rebase
10272 (package
10273 (name "ghc-rebase")
8d2ae3fe 10274 (version "1.3.1.1")
dddbc90c
RV
10275 (source
10276 (origin
10277 (method url-fetch)
10278 (uri (string-append "https://hackage.haskell.org/package/"
10279 "rebase-" version "/"
10280 "rebase-" version ".tar.gz"))
10281 (sha256
10282 (base32
8d2ae3fe 10283 "0q4m2fa7wkgxs0grir8rlqwibasmi3s1x7c107ynndwfm62nzv0a"))))
dddbc90c 10284 (build-system haskell-build-system)
e396e936 10285 (outputs '("out" "static" "doc"))
dddbc90c
RV
10286 (inputs `(("ghc-hashable" ,ghc-hashable)
10287 ("ghc-vector" ,ghc-vector)
10288 ("ghc-unordered-containers" ,ghc-unordered-containers)
10289 ("ghc-scientific" ,ghc-scientific)
10290 ("ghc-uuid" ,ghc-uuid)
10291 ("ghc-dlist" ,ghc-dlist)
10292 ("ghc-void" ,ghc-void)
10293 ("ghc-bifunctors" ,ghc-bifunctors)
10294 ("ghc-profunctors" ,ghc-profunctors)
10295 ("ghc-contravariant" ,ghc-contravariant)
10296 ("ghc-contravariant-extras" ,ghc-contravariant-extras)
10297 ("ghc-semigroups" ,ghc-semigroups)
10298 ("ghc-either" ,ghc-either)
10299 ("ghc-fail" ,ghc-fail)
10300 ("ghc-base-prelude" ,ghc-base-prelude)))
10301 (home-page "https://github.com/nikita-volkov/rebase")
10302 (synopsis "Progressive alternative to the base package
10303for Haskell")
10304 (description "This Haskell package is intended for those who are
10305tired of keeping long lists of dependencies to the same essential libraries
10306in each package as well as the endless imports of the same APIs all over again.
10307
10308It also supports the modern tendencies in the language.
10309
10310To solve those problems this package does the following:
10311
10312@itemize
10313@item Reexport the original APIs under the @code{Rebase} namespace.
10314
10315@item Export all the possible non-conflicting symbols from the
10316@code{Rebase.Prelude} module.
10317
10318@item Give priority to the modern practices in the conflicting cases.
10319@end itemize
10320
10321The policy behind the package is only to reexport the non-ambiguous and
10322non-controversial APIs, which the community has obviously settled on.
10323The package is intended to rapidly evolve with the contribution from
10324the community, with the missing features being added with pull-requests.")
10325 (license license:expat)))
10326
10327(define-public ghc-reducers
10328 (package
10329 (name "ghc-reducers")
10330 (version "3.12.3")
10331 (source
10332 (origin
10333 (method url-fetch)
10334 (uri (string-append
10335 "https://hackage.haskell.org/package/reducers/reducers-"
10336 version
10337 ".tar.gz"))
10338 (sha256
10339 (base32
10340 "09wf8pl9ycglcv6qj5ba26gkg2s5iy81hsx9xp0q8na0cwvp71ki"))))
10341 (build-system haskell-build-system)
10342 (inputs
10343 `(("ghc-fingertree" ,ghc-fingertree)
10344 ("ghc-hashable" ,ghc-hashable)
10345 ("ghc-unordered-containers" ,ghc-unordered-containers)
10346 ("ghc-semigroupoids" ,ghc-semigroupoids)
10347 ("ghc-semigroups" ,ghc-semigroups)))
10348 (home-page "https://github.com/ekmett/reducers/")
10349 (synopsis "Semigroups, specialized containers and a general map/reduce framework")
10350 (description "This library provides various semigroups, specialized
10351containers and a general map/reduce framework for Haskell.")
10352 (license license:bsd-3)))
10353
10354(define-public ghc-refact
10355 (package
10356 (name "ghc-refact")
10357 (version "0.3.0.2")
10358 (source
10359 (origin
10360 (method url-fetch)
10361 (uri (string-append "https://hackage.haskell.org/package/"
10362 "refact/refact-"
10363 version ".tar.gz"))
10364 (sha256
10365 (base32
10366 "0v0zxcx29b8jxs2kgy9csykqcp8kzhdvyylw2xfwmj4pfxr2kl0a"))))
10367 (build-system haskell-build-system)
3ef91e15 10368 (home-page "https://hackage.haskell.org/package/refact")
dddbc90c
RV
10369 (synopsis "Specify refactorings to perform with apply-refact")
10370 (description
10371 "This library provides a datatype which can be interpreted by
10372@code{apply-refact}. It exists as a separate library so that applications can
10373specify refactorings without depending on GHC.")
10374 (license license:bsd-3)))
10375
10376(define-public ghc-reflection
10377 (package
10378 (name "ghc-reflection")
d215f1cc 10379 (version "2.1.5")
dddbc90c
RV
10380 (source
10381 (origin
10382 (method url-fetch)
10383 (uri (string-append
10384 "https://hackage.haskell.org/package/reflection/reflection-"
10385 version
10386 ".tar.gz"))
10387 (sha256
10388 (base32
d215f1cc 10389 "0xr947nj1vww5b8fwqmypxm3y3j5sxl4z8wnf834f83jzfzyjbi7"))))
dddbc90c
RV
10390 (build-system haskell-build-system)
10391 (inputs `(("ghc-tagged" ,ghc-tagged)))
d215f1cc
TS
10392 (native-inputs
10393 `(("ghc-hspec" ,ghc-hspec)
10394 ("ghc-quickcheck" ,ghc-quickcheck)
10395 ("hspec-discover" ,hspec-discover)))
dddbc90c
RV
10396 (home-page "https://github.com/ekmett/reflection")
10397 (synopsis "Reify arbitrary terms into types that can be reflected back
10398into terms")
10399 (description "This package addresses the 'configuration problem' which is
10400propagating configurations that are available at run-time, allowing multiple
10401configurations to coexist without resorting to mutable global variables or
10402@code{System.IO.Unsafe.unsafePerformIO}.")
10403 (license license:bsd-3)))
10404
10405(define-public ghc-regex
10406 (package
10407 (name "ghc-regex")
b9a5e634 10408 (version "1.0.2.0")
dddbc90c
RV
10409 (source
10410 (origin
10411 (method url-fetch)
10412 (uri (string-append "https://hackage.haskell.org/package/regex/"
10413 "regex-" version ".tar.gz"))
10414 (sha256
10415 (base32
b9a5e634 10416 "1f2z025hif1fr24b5khq3qxxyvpxrnhyx8xmbms332arw28rpkda"))))
dddbc90c
RV
10417 (build-system haskell-build-system)
10418 (arguments
10419 `(#:phases
10420 (modify-phases %standard-phases
10421 (add-after 'unpack 'relax-dependencies
10422 (lambda _
10423 (substitute* "regex.cabal"
10424 (("base-compat.*>=.*0.6.*")
10425 "base-compat >= 0.6\n")
10426 (("template-haskell.*>=.*2.7.*")
10427 "template-haskell >= 2.7\n"))
10428 #t)))))
10429 (inputs
10430 `(("ghc-base-compat" ,ghc-base-compat)
10431 ("ghc-hashable" ,ghc-hashable)
10432 ("ghc-regex-base" ,ghc-regex-base)
10433 ("ghc-regex-pcre-builtin" ,ghc-regex-pcre-builtin)
10434 ("ghc-regex-tdfa" ,ghc-regex-tdfa)
10435 ("ghc-regex-tdfa-text" ,ghc-regex-tdfa-text)
10436 ("ghc-time-locale-compat" ,ghc-time-locale-compat)
10437 ("ghc-unordered-containers" ,ghc-unordered-containers)
10438 ("ghc-utf8-string" ,ghc-utf8-string)))
10439 (home-page "http://regex.uk")
10440 (synopsis "Toolkit for regex-base")
10441 (description
10442 "This package provides a regular expression toolkit for @code{regex-base}
10443with compile-time checking of regular expression syntax, data types for
10444matches and captures, a text replacement toolkit, portable options, high-level
10445AWK-like tools for building text processing apps, regular expression macros
10446with parsers and test bench, comprehensive documentation, tutorials and
10447copious examples.")
10448 (license license:bsd-3)))
10449
10450(define-public ghc-regex-applicative
10451 (package
10452 (name "ghc-regex-applicative")
30f60e42 10453 (version "0.3.3.1")
dddbc90c
RV
10454 (source
10455 (origin
10456 (method url-fetch)
10457 (uri (string-append
10458 "https://hackage.haskell.org/package/regex-applicative/"
10459 "regex-applicative-" version ".tar.gz"))
10460 (sha256
10461 (base32
30f60e42 10462 "0p0anx5vamrhrdvviwkh2zn6pa3pv2bjb7nfyc7dvz2q7g14y1lg"))))
dddbc90c
RV
10463 (build-system haskell-build-system)
10464 (inputs
10465 `(("ghc-smallcheck" ,ghc-smallcheck)
10466 ("ghc-tasty" ,ghc-tasty)
10467 ("ghc-tasty-smallcheck" ,ghc-tasty-smallcheck)
10468 ("ghc-tasty-hunit" ,ghc-tasty-hunit)))
10469 (home-page "https://github.com/feuerbach/regex-applicative")
10470 (synopsis "Regex-based parsing with applicative interface")
10471 (description
10472 "@code{regex-applicative} is a Haskell library for parsing using
10473regular expressions. Parsers can be built using Applicative interface.")
10474 (license license:expat)))
10475
10476(define-public ghc-regex-base
10477 (package
10478 (name "ghc-regex-base")
10479 (version "0.93.2")
10480 (source
10481 (origin
10482 (method url-fetch)
10483 (uri (string-append
10484 "https://hackage.haskell.org/package/regex-base/regex-base-"
10485 version
10486 ".tar.gz"))
10487 (sha256
10488 (base32
10489 "0y1j4h2pg12c853nzmczs263di7xkkmlnsq5dlp5wgbgl49mgp10"))))
10490 (build-system haskell-build-system)
10491 (home-page
10492 "https://sourceforge.net/projects/lazy-regex")
10493 (synopsis "Replaces/Enhances Text.Regex")
10494 (description "@code{Text.Regex.Base} provides the interface API for
10495regex-posix, regex-pcre, regex-parsec, regex-tdfa, regex-dfa.")
10496 (license license:bsd-3)))
10497
10498(define-public ghc-regex-compat
10499 (package
10500 (name "ghc-regex-compat")
10501 (version "0.95.1")
10502 (source
10503 (origin
10504 (method url-fetch)
10505 (uri (string-append
10506 "https://hackage.haskell.org/package/regex-compat/regex-compat-"
10507 version
10508 ".tar.gz"))
10509 (sha256
10510 (base32
10511 "0fwmima3f04p9y4h3c23493n1xj629ia2dxaisqm6rynljjv2z6m"))))
10512 (build-system haskell-build-system)
10513 (inputs
10514 `(("ghc-regex-base" ,ghc-regex-base)
10515 ("ghc-regex-posix" ,ghc-regex-posix)))
10516 (home-page "https://sourceforge.net/projects/lazy-regex")
10517 (synopsis "Replaces/Enhances Text.Regex")
10518 (description "This library provides one module layer over
10519@code{regex-posix} to replace @code{Text.Regex}.")
10520 (license license:bsd-3)))
10521
10522(define-public ghc-regex-compat-tdfa
10523 (package
10524 (name "ghc-regex-compat-tdfa")
10525 (version "0.95.1.4")
10526 (source
10527 (origin
10528 (method url-fetch)
10529 (uri (string-append
10530 "https://hackage.haskell.org/package/regex-compat-tdfa/regex-compat-tdfa-"
10531 version ".tar.gz"))
10532 (sha256
10533 (base32
10534 "1p90fn90yhp7fvljjdqjp41cszidcfz4pw7fwvzyx4739b98x8sg"))))
10535 (build-system haskell-build-system)
10536 (inputs
10537 `(("ghc-regex-base" ,ghc-regex-base)
10538 ("ghc-regex-tdfa" ,ghc-regex-tdfa)))
10539 (home-page "https://hub.darcs.net/shelarcy/regex-compat-tdfa")
10540 (synopsis "Unicode Support version of Text.Regex, using regex-tdfa")
10541 (description
10542 "One module layer over @code{regex-tdfa} to replace @code{Text.Regex}.
10543@code{regex-compat} can't use Unicode characters correctly because of using regex-posix.
10544This is not good for Unicode users. This modified regex-compat uses regex-tdfa to solve
10545this problem.")
10546 (license license:bsd-3)))
10547
ddd79836
MB
10548(define-public ghc-regex-pcre
10549 (package
10550 (name "ghc-regex-pcre")
10551 (version "0.94.4")
10552 (source (origin
10553 (method url-fetch)
10554 (uri (string-append "https://hackage.haskell.org/package/"
10555 "regex-pcre/regex-pcre-" version ".tar.gz"))
10556 (sha256
10557 (base32
10558 "1h16w994g9s62iwkdqa7bar2n9cfixmkzz2rm8svm960qr57valf"))))
10559 (build-system haskell-build-system)
991ca499
TS
10560 (arguments
10561 `(#:extra-directories ("pcre")))
ddd79836
MB
10562 (inputs
10563 `(("ghc-regex-base" ,ghc-regex-base)
10564 ("pcre" ,pcre)))
10565 (home-page "https://hackage.haskell.org/package/regex-pcre")
10566 (synopsis "Enhancement of the builtin Text.Regex library")
10567 (description
10568 "This package is an enhancement of the @code{Text.Regex} library.
10569It wraps the @code{PCRE} C library providing Perl-compatible regular
10570expressions.")
10571 (license license:bsd-3)))
10572
dddbc90c
RV
10573(define-public ghc-regex-pcre-builtin
10574 (package
10575 (name "ghc-regex-pcre-builtin")
ee946143 10576 (version "0.94.5.8.8.35")
dddbc90c
RV
10577 (source (origin
10578 (method url-fetch)
10579 (uri (string-append "https://hackage.haskell.org/package/"
10580 "regex-pcre-builtin/regex-pcre-builtin-"
10581 version ".tar.gz"))
10582 (sha256
10583 (base32
ee946143 10584 "1s755qdg1mxrf125sh83bsc5kjkrj8fkq8wf6dg1jan86c7p7gl4"))))
dddbc90c
RV
10585 (build-system haskell-build-system)
10586 (inputs
10587 `(("ghc-regex-base" ,ghc-regex-base)))
4723766b 10588 (home-page "https://hackage.haskell.org/package/regex-pcre-builtin")
dddbc90c
RV
10589 (synopsis "Enhancement of the builtin Text.Regex library")
10590 (description
10591 "This package is an enhancement of the @code{Text.Regex} library,
10592providing the PCRE backend to accompany regex-base, with bundled code from
10593@url{https://www.pcre.org}.")
10594 (license license:bsd-3)))
10595
10596(define-public ghc-regex-posix
10597 (package
10598 (name "ghc-regex-posix")
10599 (version "0.95.2")
10600 (source
10601 (origin
10602 (method url-fetch)
10603 (uri (string-append
10604 "https://hackage.haskell.org/package/regex-posix/regex-posix-"
10605 version
10606 ".tar.gz"))
10607 (sha256
10608 (base32
10609 "0gkhzhj8nvfn1ija31c7xnl6p0gadwii9ihyp219ck2arlhrj0an"))))
10610 (build-system haskell-build-system)
10611 (inputs
10612 `(("ghc-regex-base" ,ghc-regex-base)))
10613 (home-page "https://sourceforge.net/projects/lazy-regex")
10614 (synopsis "POSIX regular expressions for Haskell")
10615 (description "This library provides the POSIX regex backend used by the
10616Haskell library @code{regex-base}.")
10617 (license license:bsd-3)))
10618
10619(define-public ghc-regex-tdfa
10620 (package
10621 (name "ghc-regex-tdfa")
ce684db0 10622 (version "1.2.3.2")
dddbc90c
RV
10623 (source
10624 (origin
10625 (method url-fetch)
10626 (uri (string-append
10627 "https://hackage.haskell.org/package/regex-tdfa/regex-tdfa-"
10628 version ".tar.gz"))
10629 (sha256
10630 (base32
ce684db0 10631 "03yhpqrqz977nwlnhnyz9dacnbzw8xb6j18h365rkgmbc05sb3hf"))))
dddbc90c 10632 (build-system haskell-build-system)
54c8209e 10633 (outputs '("out" "static" "doc"))
dddbc90c
RV
10634 (inputs
10635 `(("ghc-regex-base" ,ghc-regex-base)))
90b74c6f 10636 (home-page "https://github.com/haskell-hvr/regex-tdfa")
dddbc90c
RV
10637 (synopsis "POSIX extended regular expressions in Haskell.")
10638 (description
10639 "Regex-tdfa is a pure Haskell regular expression library implementing POSIX
10640extended regular expressions. It is a \"tagged\" DFA regex engine. It is
10641inspired by libtre.")
10642 (license license:bsd-3)))
10643
10644(define-public ghc-regex-tdfa-text
10645 (package
10646 (name "ghc-regex-tdfa-text")
10647 (version "1.0.0.3")
10648 (source
10649 (origin
10650 (method url-fetch)
10651 (uri (string-append
10652 "https://hackage.haskell.org/package/regex-tdfa-text/"
10653 "regex-tdfa-text-" version ".tar.gz"))
10654 (sha256
10655 (base32
10656 "0090g6lgbdm9lywpqm2d3724nnnh24nx3vnlqr96qc2w486pmmrq"))))
10657 (build-system haskell-build-system)
10658 (inputs
10659 `(("ghc-regex-base" ,ghc-regex-base)
10660 ("ghc-regex-tdfa" ,ghc-regex-tdfa)))
10661 (home-page
3ef91e15 10662 "https://hackage.haskell.org/package/regex-tdfa-text")
dddbc90c
RV
10663 (synopsis "Text interface for regex-tdfa")
10664 (description
10665 "This provides an extra text interface for regex-tdfa.")
10666 (license license:bsd-3)))
10667
798a2df4
JS
10668(define-public ghc-repline
10669 (package
10670 (name "ghc-repline")
10671 (version "0.2.0.0")
10672 (source
10673 (origin
10674 (method url-fetch)
10675 (uri (string-append
10676 "mirror://hackage/package/repline/repline-"
10677 version
10678 ".tar.gz"))
10679 (sha256
10680 (base32
10681 "1ph21kbbanlcs8n5lwk16g9vqkb98mkbz5mzwrp8j2rls2921izc"))))
10682 (build-system haskell-build-system)
10683 (home-page "https://github.com/sdiehl/repline")
10684 (synopsis "Haskeline wrapper for GHCi-like REPL interfaces")
10685 (description
10686 "Haskeline wrapper for GHCi-like REPL interfaces. Composable with
10687normal mtl transformers.")
10688 (license license:expat)))
10689
6c0858dd
JS
10690(define-public ghc-repline-0.3
10691 (package
10692 (inherit ghc-repline)
10693 (version "0.3.0.0")
10694 (source
10695 (origin
10696 (method url-fetch)
10697 (uri (string-append
10698 "mirror://hackage/package/repline/repline-"
10699 version
10700 ".tar.gz"))
10701 (sha256
10702 (base32
10703 "0niihfyggg2qisadg7w49cr5k5qyyynia93iip0ng2bbmzwi88g8"))))
10704 (inputs
10705 `(("ghc-exceptions" ,ghc-exceptions)
10706 ("ghc-haskeline" ,ghc-haskeline-0.8)))))
10707
dddbc90c
RV
10708(define-public ghc-rerebase
10709 (package
10710 (name "ghc-rerebase")
cdec7b8c 10711 (version "1.3.1.1")
dddbc90c
RV
10712 (source
10713 (origin
10714 (method url-fetch)
10715 (uri (string-append
10716 "https://hackage.haskell.org/package/rerebase/rerebase-"
10717 version ".tar.gz"))
10718 (sha256
10719 (base32
cdec7b8c 10720 "1jbqif6k249rkknm2zwk8v8jil3kgi9ar53358v8l4ffx346rm82"))))
dddbc90c 10721 (build-system haskell-build-system)
af2f91ec 10722 (outputs '("out" "static" "doc"))
dddbc90c
RV
10723 (inputs
10724 `(("ghc-rebase" ,ghc-rebase)))
10725 (home-page "https://github.com/nikita-volkov/rerebase")
10726 (synopsis "Reexports from ``base'' with many other standard libraries")
10727 (description "A rich drop-in replacement for @code{base}. For details and
10728documentation please visit @uref{https://github.com/nikita-volkov/rerebase,
10729the project's home page}.")
10730 (license license:expat)))
10731
10732(define-public ghc-resolv
10733 (package
10734 (name "ghc-resolv")
87309478 10735 (version "0.1.1.2")
dddbc90c
RV
10736 (source
10737 (origin
10738 (method url-fetch)
10739 (uri (string-append
10740 "https://hackage.haskell.org/package/resolv/resolv-"
10741 version ".tar.gz"))
10742 (sha256
10743 (base32
87309478 10744 "0wczdy3vmpfcfwjn1m95bygc5d83m97xxmavhdvy5ayn8c402fp4"))))
dddbc90c
RV
10745 (build-system haskell-build-system)
10746 (arguments
87309478
TS
10747 `(#:phases
10748 (modify-phases %standard-phases
10749 (add-before 'configure 'update-constraints
10750 (lambda _
10751 (substitute* "resolv.cabal"
10752 (("tasty >= 1\\.1 && < 1\\.2")
10753 "tasty >= 1.1 && < 1.3"))
10754 #t)))))
dddbc90c
RV
10755 (inputs
10756 `(("ghc-base16-bytestring" ,ghc-base16-bytestring)))
87309478
TS
10757 (native-inputs
10758 `(("ghc-tasty" ,ghc-tasty)
10759 ("ghc-tasty-hunit" ,ghc-tasty-hunit)))
dddbc90c
RV
10760 (home-page "https://github.com/haskell/hackage-security")
10761 (synopsis "Domain Name Service (DNS) lookup via @code{libresolv}")
10762 (description "This package implements an API for accessing the
10763@uref{https://tools.ietf.org/html/rfc1035, Domain Name Service (DNS)}
10764resolver service via the standard @code{libresolv} system library (whose
10765API is often available directly via the standard @code{libc} C library) on
10766Unix systems.")
10767 (license license:gpl3)))
10768
10769(define-public ghc-resource-pool
10770 (package
10771 (name "ghc-resource-pool")
10772 (version "0.2.3.2")
10773 (source
10774 (origin
10775 (method url-fetch)
10776 (uri (string-append "https://hackage.haskell.org/package/"
10777 "resource-pool-" version "/"
10778 "resource-pool-" version ".tar.gz"))
10779 (sha256
10780 (base32
10781 "04mw8b9djb14zp4rdi6h7mc3zizh597ffiinfbr4m0m8psifw9w6"))))
10782 (build-system haskell-build-system)
10783 (inputs `(("ghc-hashable" ,ghc-hashable)
10784 ("ghc-monad-control" ,ghc-monad-control)
10785 ("ghc-transformers-base" ,ghc-transformers-base)
10786 ("ghc-vector" ,ghc-vector)))
10787 (home-page "https://github.com/bos/pool")
10788 (synopsis "Striped resource pooling implementation in Haskell")
10789 (description "This Haskell package provides striped pooling abstraction
10790for managing flexibly-sized collections of resources such as database
10791connections.")
10792 (license license:bsd-3)))
10793
10794(define-public ghc-resourcet
10795 (package
10796 (name "ghc-resourcet")
9ac341ac 10797 (version "1.2.2")
dddbc90c
RV
10798 (source
10799 (origin
10800 (method url-fetch)
10801 (uri (string-append "https://hackage.haskell.org/package/resourcet/"
10802 "resourcet-" version ".tar.gz"))
10803 (sha256
10804 (base32
9ac341ac 10805 "1rfbfcv3r1h29y0yqr3x6a1s04lbc3vzm3jqnfg4f9rqp9d448qk"))))
dddbc90c
RV
10806 (build-system haskell-build-system)
10807 (inputs
10808 `(("ghc-transformers-base" ,ghc-transformers-base)
10809 ("ghc-monad-control" ,ghc-monad-control)
10810 ("ghc-transformers-compat" ,ghc-transformers-compat)
10811 ("ghc-mmorph" ,ghc-mmorph)
10812 ("ghc-exceptions" ,ghc-exceptions)
10813 ("ghc-unliftio-core" ,ghc-unliftio-core)))
10814 (native-inputs
10815 `(("ghc-lifted-base" ,ghc-lifted-base)
10816 ("ghc-hspec" ,ghc-hspec)))
10817 (home-page "https://github.com/snoyberg/conduit")
10818 (synopsis "Deterministic allocation and freeing of scarce resources")
10819 (description "ResourceT is a monad transformer which creates a region of
10820code where you can safely allocate resources.")
10821 (license license:bsd-3)))
10822
b9debc37
TS
10823(define-public ghc-retry
10824 (package
10825 (name "ghc-retry")
10826 (version "0.8.1.0")
10827 (source
10828 (origin
10829 (method url-fetch)
10830 (uri (string-append "https://hackage.haskell.org/package/"
10831 "retry/retry-" version ".tar.gz"))
10832 (sha256
10833 (base32
10834 "02k03r86amg1vbrsvb644342ym13d9jwkzki9sk93pdg5l8j35dj"))))
10835 (build-system haskell-build-system)
10836 (inputs
10837 `(("ghc-exceptions" ,ghc-exceptions)
10838 ("ghc-random" ,ghc-random)))
10839 (native-inputs
10840 `(("ghc-hunit" ,ghc-hunit)
10841 ("ghc-tasty" ,ghc-tasty)
10842 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
10843 ("ghc-tasty-hedgehog" ,ghc-tasty-hedgehog)
10844 ("ghc-hedgehog" ,ghc-hedgehog)))
702a1012 10845 (home-page "https://github.com/Soostone/retry")
b9debc37
TS
10846 (synopsis "Retry combinators for monadic actions that may fail")
10847 (description "This package exposes combinators that can wrap
10848arbitrary monadic actions. They run the action and potentially retry
10849running it with some configurable delay for a configurable number of
10850times. The purpose is to make it easier to work with IO and especially
10851network IO actions that often experience temporary failure and warrant
10852retrying of the original action. For example, a database query may time
10853out for a while, in which case we should hang back for a bit and retry
10854the query instead of simply raising an exception.")
10855 (license license:bsd-3)))
10856
dddbc90c
RV
10857(define-public ghc-rfc5051
10858 (package
10859 (name "ghc-rfc5051")
ec42ab7c 10860 (version "0.1.0.4")
dddbc90c
RV
10861 (source
10862 (origin
10863 (method url-fetch)
10864 (uri (string-append "https://hackage.haskell.org/package/rfc5051/"
10865 "rfc5051-" version ".tar.gz"))
10866 (sha256
10867 (base32
ec42ab7c 10868 "1lxkq414ni986ciml4gbvf463fn55z299knky7pq3ixb1qislpb1"))))
dddbc90c
RV
10869 (build-system haskell-build-system)
10870 (home-page "https://hackage.haskell.org/package/rfc5051")
10871 (synopsis "Simple unicode collation as per RFC5051")
10872 (description
10873 "This library implements @code{unicode-casemap}, the simple, non
10874locale-sensitive unicode collation algorithm described in RFC 5051. Proper
10875unicode collation can be done using @code{text-icu}, but that is a big
10876dependency that depends on a large C library, and @code{rfc5051} might be
10877better for some purposes.")
10878 (license license:bsd-3)))
10879
10880(define-public ghc-rio
10881 (package
10882 (name "ghc-rio")
8bda2fa7 10883 (version "0.1.12.0")
dddbc90c
RV
10884 (source
10885 (origin
10886 (method url-fetch)
10887 (uri (string-append
10888 "https://hackage.haskell.org/package/rio/rio-"
10889 version ".tar.gz"))
10890 (sha256
10891 (base32
8bda2fa7 10892 "0xzjkh6aavynpyskikhs8dmv0zhkiqiwz9zdn80zbd25b2182pif"))))
dddbc90c
RV
10893 (build-system haskell-build-system)
10894 (inputs
10895 `(("ghc-exceptions" ,ghc-exceptions)
10896 ("ghc-hashable" ,ghc-hashable)
10897 ("ghc-microlens" ,ghc-microlens)
10898 ("ghc-primitive" ,ghc-primitive)
10899 ("ghc-typed-process" ,ghc-typed-process)
10900 ("ghc-unliftio" ,ghc-unliftio)
10901 ("ghc-unordered-containers" ,ghc-unordered-containers)
10902 ("ghc-vector" ,ghc-vector)))
10903 (native-inputs
10904 `(("ghc-hspec" ,ghc-hspec)
10905 ("hspec-discover" ,hspec-discover)))
10906 (home-page "https://github.com/commercialhaskell/rio#readme")
10907 (synopsis "A standard library for Haskell")
10908 (description "This package works as a prelude replacement for Haskell,
10909providing more functionality and types out of the box than the standard
10910prelude (such as common data types like @code{ByteString} and
10911@code{Text}), as well as removing common ``gotchas'', like partial
10912functions and lazy I/O. The guiding principle here is:
10913@itemize
10914@item If something is safe to use in general and has no expected naming
10915conflicts, expose it.
10916@item If something should not always be used, or has naming conflicts,
10917expose it from another module in the hierarchy.
10918@end itemize")
10919 (license license:expat)))
10920
10921(define-public ghc-safe
10922 (package
10923 (name "ghc-safe")
10924 (version "0.3.17")
10925 (source
10926 (origin
10927 (method url-fetch)
10928 (uri (string-append
10929 "https://hackage.haskell.org/package/safe/safe-"
10930 version
10931 ".tar.gz"))
10932 (sha256
10933 (base32
10934 "0p3yaf5slvyz1cyy51jq64c5rlp8yzwim8iy2dlnk42if4gc9ibr"))))
10935 (build-system haskell-build-system)
10936 (native-inputs
10937 `(("ghc-quickcheck" ,ghc-quickcheck)))
10938 (home-page "https://github.com/ndmitchell/safe#readme")
10939 (synopsis "Library of safe (exception free) functions")
10940 (description "This library provides wrappers around @code{Prelude} and
10941@code{Data.List} functions, such as @code{head} and @code{!!}, that can throw
10942exceptions.")
10943 (license license:bsd-3)))
10944
10945(define-public ghc-safe-exceptions
10946 (package
10947 (name "ghc-safe-exceptions")
10948 (version "0.1.7.0")
10949 (source
10950 (origin
10951 (method url-fetch)
10952 (uri (string-append "https://hackage.haskell.org/package/"
10953 "safe-exceptions/safe-exceptions-"
10954 version ".tar.gz"))
10955 (sha256
10956 (base32
10957 "0sd0zfsm9pcll5bzzj523rbn45adjrnavdkz52hgmdjjgdcdrk8q"))))
10958 (build-system haskell-build-system)
10959 (arguments
10960 '(#:cabal-revision
10961 ("4" "0fid41gishzsyb47wzxhd5falandfirqcp760hcja81qjpfmqd32")))
10962 (inputs `(("ghc-exceptions" ,ghc-exceptions)))
10963 (native-inputs
10964 `(("ghc-hspec" ,ghc-hspec)
10965 ("ghc-void" ,ghc-void)
10966 ("hspec-discover" ,hspec-discover)))
10967 (home-page "https://github.com/fpco/safe-exceptions")
10968 (synopsis "Safe, consistent, and easy exception handling")
10969 (description "Runtime exceptions - as exposed in @code{base} by the
10970@code{Control.Exception} module - have long been an intimidating part of the
10971Haskell ecosystem. This package is intended to overcome this. It provides a
10972safe and simple API on top of the existing exception handling machinery. The
10973API is equivalent to the underlying implementation in terms of power but
10974encourages best practices to minimize the chances of getting the exception
10975handling wrong.")
10976 (license license:expat)))
10977
10978(define-public ghc-safeio
10979 (package
10980 (name "ghc-safeio")
10981 (version "0.0.5.0")
10982 (source
10983 (origin
10984 (method url-fetch)
10985 (uri (string-append "https://hackage.haskell.org/package/safeio/"
10986 "safeio-" version ".tar.gz"))
10987 (sha256
10988 (base32
10989 "04g3070cbjdqj0h9l9ii6470xcbn40xfv4fr89a8yvnkdim9nyfm"))))
10990 (build-system haskell-build-system)
10991 (inputs
10992 `(("ghc-conduit" ,ghc-conduit)
10993 ("ghc-conduit-combinators" ,ghc-conduit-combinators)
10994 ("ghc-exceptions" ,ghc-exceptions)
10995 ("ghc-resourcet" ,ghc-resourcet)))
10996 (native-inputs
10997 `(("ghc-hunit" ,ghc-hunit)
10998 ("ghc-test-framework" ,ghc-test-framework)
10999 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
11000 ("ghc-test-framework-th" ,ghc-test-framework-th)))
11001 (home-page "https://github.com/luispedro/safeio")
11002 (synopsis "Write output to disk atomically")
11003 (description
11004 "This package implements utilities to perform atomic output so as to
11005avoid the problem of partial intermediate files.")
11006 (license license:expat)))
11007
11008(define-public ghc-safesemaphore
11009 (package
11010 (name "ghc-safesemaphore")
11011 (version "0.10.1")
11012 (source
11013 (origin
11014 (method url-fetch)
11015 (uri (string-append "https://hackage.haskell.org/package/"
11016 "SafeSemaphore/SafeSemaphore-" version ".tar.gz"))
11017 (sha256
11018 (base32
11019 "0rpg9j6fy70i0b9dkrip9d6wim0nac0snp7qzbhykjkqlcvvgr91"))))
11020 (build-system haskell-build-system)
11021 (native-inputs
11022 `(("ghc-hunit" ,ghc-hunit)))
11023 (home-page "https://github.com/ChrisKuklewicz/SafeSemaphore")
11024 (synopsis "Exception safe semaphores")
11025 (description "This library provides exception safe semaphores that can be
11026used in place of @code{QSem}, @code{QSemN}, and @code{SampleVar}, all of which
11027are not exception safe and can be broken by @code{killThread}.")
11028 (license license:bsd-3)))
11029
11030(define-public ghc-sandi
11031 (package
11032 (name "ghc-sandi")
b867c2b0 11033 (version "0.5")
dddbc90c
RV
11034 (source
11035 (origin
11036 (method url-fetch)
11037 (uri (string-append
11038 "https://hackage.haskell.org/package/sandi/sandi-"
11039 version ".tar.gz"))
11040 (sha256
11041 (base32
b867c2b0 11042 "1ndgai8idlxyccvkz5zsgq06v58blc30i6hkky5b1sf5x6gs2h29"))))
dddbc90c
RV
11043 (build-system haskell-build-system)
11044 (inputs
11045 `(("ghc-stringsearch" ,ghc-stringsearch)
11046 ("ghc-conduit" ,ghc-conduit)
11047 ("ghc-exceptions" ,ghc-exceptions)
11048 ("ghc-hunit" ,ghc-hunit)
11049 ("ghc-tasty" ,ghc-tasty)
11050 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
11051 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
11052 ("ghc-tasty-th" ,ghc-tasty-th)))
11053 (home-page "https://hackage.haskell.org/package/sandi")
11054 (synopsis "Data encoding library")
11055 (description "Reasonably fast data encoding library.")
11056 (license license:bsd-3)))
11057
4da75228
ASM
11058(define-public ghc-say
11059 (package
11060 (name "ghc-say")
11061 (version "0.1.0.1")
11062 (source
11063 (origin
11064 (method url-fetch)
11065 (uri (string-append
11066 "https://hackage.haskell.org/package/say/say-"
11067 version
11068 ".tar.gz"))
11069 (sha256
11070 (base32
11071 "1r5kffjfwpas45g74sip8glrj1m9nygrnxjm7xgw898rq9pnafgn"))))
11072 (build-system haskell-build-system)
11073 (native-inputs
11074 `(("ghc-hspec" ,ghc-hspec)
11075 ("hspec-discover" ,hspec-discover)
11076 ("ghc-unliftio" ,ghc-unliftio)))
11077 (home-page "https://github.com/fpco/say")
11078 (synopsis
11079 "Send textual messages to a Handle in a thread-friendly way")
11080 (description
11081 "A thread safe API to write a line of textual data to a Handle, such
11082as sending some messages to the terminal - that has the following properties:
11083@itemize
11084@item Properly handle character encoding settings on the Handle
11085@item For reasonably sized messages, ensure that the entire message is written
11086 in one chunk to avoid interleaving data with other threads
11087@item Avoid unnecessary memory allocations and copies
11088@item Minimize locking.
11089@end itemize")
11090 (license license:expat)))
11091
dddbc90c
RV
11092(define-public ghc-scientific
11093 (package
11094 (name "ghc-scientific")
11095 (version "0.3.6.2")
11096 (source
11097 (origin
11098 (method url-fetch)
11099 (uri (string-append
11100 "https://hackage.haskell.org/package/scientific/scientific-"
11101 version
11102 ".tar.gz"))
11103 (sha256
11104 (base32
11105 "03ql2f0ac8bsl524idy9xxa3kxisb2sj3avflzw580j5hzy0m397"))))
11106 (build-system haskell-build-system)
11107 (inputs
11108 `(("ghc-integer-logarithms" ,ghc-integer-logarithms)
11109 ("ghc-hashable" ,ghc-hashable)
11110 ("ghc-primitive" ,ghc-primitive)))
11111 (native-inputs
11112 `(("ghc-tasty" ,ghc-tasty)
11113 ("ghc-tasty-ant-xml" ,ghc-tasty-ant-xml)
11114 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
11115 ("ghc-tasty-smallcheck" ,ghc-tasty-smallcheck)
11116 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
11117 ("ghc-smallcheck" ,ghc-smallcheck)
11118 ("ghc-quickcheck" ,ghc-quickcheck)))
11119 (home-page "https://github.com/basvandijk/scientific")
11120 (synopsis "Numbers represented using scientific notation")
11121 (description "This package provides @code{Data.Scientific}, which provides
11122the number type @code{Scientific}. Scientific numbers are arbitrary precision
11123and space efficient. They are represented using
11124@uref{https://en.wikipedia.org/wiki/Scientific_notation, scientific
11125notation}.")
11126 (license license:bsd-3)))
11127
11128(define-public ghc-scientific-bootstrap
11129 (package
11130 (inherit ghc-scientific)
11131 (name "ghc-scientific-bootstrap")
11132 (arguments `(#:tests? #f))
11133 (inputs
11134 `(("ghc-integer-logarithms" ,ghc-integer-logarithms-bootstrap)
11135 ("ghc-hashable" ,ghc-hashable)
11136 ("ghc-primitive" ,ghc-primitive)))
11137 (native-inputs '())
799d8d3c 11138 (properties '((hidden? #t)))))
dddbc90c
RV
11139
11140(define-public ghc-sdl
11141 (package
11142 (name "ghc-sdl")
11143 (version "0.6.7.0")
11144 (source
11145 (origin
11146 (method url-fetch)
11147 (uri (string-append
11148 "https://hackage.haskell.org/package/SDL/SDL-"
11149 version
11150 ".tar.gz"))
11151 (sha256
11152 (base32
11153 "00y67v80a8l09i3k76z09lg25kw72ivl09nag8ckdlk4a0cfnzfq"))))
11154 (build-system haskell-build-system)
11155 (inputs
11156 `(("sdl" ,sdl)))
11157 (home-page "https://hackage.haskell.org/package/SDL")
11158 (synopsis "LibSDL for Haskell")
11159 (description "Simple DirectMedia Layer (libSDL) is a cross-platform
11160multimedia library designed to provide low level access to audio, keyboard,
11161mouse, joystick, 3D hardware via OpenGL, and 2D video framebuffer. It is used
11162by MPEG playback software, emulators, and many popular games, including the
11163award winning Linux port of \"Civilization: Call To Power.\"")
11164 (license license:bsd-3)))
11165
1874cdc1
RV
11166(define-public ghc-sdl2
11167 (package
11168 (name "ghc-sdl2")
145148ca 11169 (version "2.5.0.0")
1874cdc1
RV
11170 (source
11171 (origin
11172 (method url-fetch)
11173 (uri (string-append "https://hackage.haskell.org/package/"
11174 "sdl2/sdl2-" version ".tar.gz"))
11175 (sha256
11176 (base32
145148ca 11177 "1x368yhdd55b3cvx8dvj1sj6nzygzigbhrwhssjs4k0rcxlwqfw8"))))
1874cdc1
RV
11178 (build-system haskell-build-system)
11179 (arguments '(#:tests? #f)) ; tests require graphical environment
11180 (inputs
11181 `(("ghc-exceptions" ,ghc-exceptions)
11182 ("ghc-linear" ,ghc-linear)
11183 ("ghc-statevar" ,ghc-statevar)
11184 ("ghc-vector" ,ghc-vector)
11185 ("sdl2" ,sdl2)))
11186 (native-inputs
11187 `(("ghc-weigh" ,ghc-weigh)
11188 ("pkg-config" ,pkg-config)))
35437dbf 11189 (home-page "https://hackage.haskell.org/package/sdl2")
1874cdc1
RV
11190 (synopsis "High- and low-level bindings to the SDL library")
11191 (description
11192 "This package contains bindings to the SDL 2 library, in both high- and
11193low-level forms. The @code{SDL} namespace contains high-level bindings, where
11194enumerations are split into sum types, and we perform automatic
11195error-checking. The @code{SDL.Raw} namespace contains an almost 1-1
11196translation of the C API into Haskell FFI calls. As such, this does not
11197contain sum types nor error checking. Thus this namespace is suitable for
11198building your own abstraction over SDL, but is not recommended for day-to-day
11199programming.")
11200 (license license:bsd-3)))
11201
11202(define-public ghc-sdl2-image
11203 (package
11204 (name "ghc-sdl2-image")
11205 (version "2.0.0")
11206 (source
11207 (origin
11208 (method url-fetch)
11209 (uri (string-append "https://hackage.haskell.org/package/sdl2-image/"
11210 "sdl2-image-" version ".tar.gz"))
11211 (sha256
11212 (base32
11213 "1pr6dkg73cy9z0w54lrkj9c5bhxj56nl92lxikjy8kz6nyr455rr"))))
11214 (build-system haskell-build-system)
11215 (inputs
11216 `(("ghc-sdl2" ,ghc-sdl2)
11217 ("sdl2-image" ,sdl2-image)))
11218 (native-inputs
11219 `(("pkg-config" ,pkg-config)))
3ef91e15 11220 (home-page "https://hackage.haskell.org/package/sdl2-image")
1874cdc1
RV
11221 (synopsis "Bindings to SDL2_image")
11222 (description "This package provides Haskell bindings to
11223@code{SDL2_image}.")
11224 (license license:expat)))
11225
11226(define-public ghc-sdl2-mixer
11227 (package
11228 (name "ghc-sdl2-mixer")
11229 (version "1.1.0")
11230 (source
11231 (origin
11232 (method url-fetch)
11233 (uri (string-append "https://hackage.haskell.org/package/sdl2-mixer/"
11234 "sdl2-mixer-" version ".tar.gz"))
11235 (sha256
11236 (base32
11237 "1k8avyccq5l9z7bwxigim312yaancxl1sr3q6a96bcm7pnhiak0g"))))
11238 (build-system haskell-build-system)
11239 (inputs
11240 `(("ghc-data-default-class" ,ghc-data-default-class)
11241 ("ghc-lifted-base" ,ghc-lifted-base)
11242 ("ghc-monad-control" ,ghc-monad-control)
11243 ("ghc-sdl2" ,ghc-sdl2)
11244 ("ghc-vector" ,ghc-vector)
11245 ("sdl2-mixer" ,sdl2-mixer)))
11246 (native-inputs
11247 `(("pkg-config" ,pkg-config)))
3ef91e15 11248 (home-page "https://hackage.haskell.org/package/sdl2-mixer")
1874cdc1
RV
11249 (synopsis "Bindings to SDL2 mixer")
11250 (description "This package provides Haskell bindings to
11251@code{SDL2_mixer}.")
11252 (license license:bsd-3)))
11253
dddbc90c
RV
11254(define-public ghc-sdl-image
11255 (package
11256 (name "ghc-sdl-image")
11257 (version "0.6.2.0")
11258 (source
11259 (origin
11260 (method url-fetch)
11261 (uri (string-append
11262 "https://hackage.haskell.org/package/SDL-image/SDL-image-"
11263 version
11264 ".tar.gz"))
11265 (sha256
11266 (base32
11267 "1gxwrvswgwjw6g7ym52gik22l9l3ljy592phv97jdmcf3gi6qcg1"))))
11268 (build-system haskell-build-system)
11269 (arguments
11270 `(#:configure-flags
11271 (let* ((sdl-image (assoc-ref %build-inputs "sdl-image"))
11272 (sdl-image-include (string-append sdl-image "/include/SDL")))
11273 (list (string-append "--extra-include-dirs=" sdl-image-include)))))
11274 (inputs
11275 `(("ghc-sdl" ,ghc-sdl)
11276 ("sdl-image" ,sdl-image)))
11277 (home-page "https://hackage.haskell.org/package/SDL-image")
11278 (synopsis "Haskell bindings to libSDL_image")
11279 (description "SDL_image is an image file loading library. It loads images
11280as SDL surfaces, and supports the following formats: BMP, GIF, JPEG, LBM, PCX,
11281PNG, PNM, TGA, TIFF, XCF, XPM, XV.")
11282 (license license:bsd-3)))
11283
11284(define-public ghc-sdl-mixer
11285 (package
11286 (name "ghc-sdl-mixer")
11287 (version "0.6.3.0")
11288 (source
11289 (origin
11290 (method url-fetch)
11291 (uri (string-append
11292 "https://hackage.haskell.org/package/SDL-mixer/SDL-mixer-"
11293 version
11294 ".tar.gz"))
11295 (sha256
11296 (base32
11297 "0k26hqgdh789ka3mv4dsk6rin6x6vwcs6hjmnsqq7j3mnrh1342r"))))
11298 (build-system haskell-build-system)
11299 (arguments
11300 `(#:configure-flags
11301 (let* ((sdl-mixer (assoc-ref %build-inputs "sdl-mixer"))
11302 (sdl-mixer-include (string-append sdl-mixer "/include/SDL")))
11303 (list (string-append "--extra-include-dirs=" sdl-mixer-include)))))
11304 (inputs
11305 `(("ghc-sdl" ,ghc-sdl)
11306 ("sdl-mixer" ,sdl-mixer)))
11307 (home-page "https://hackage.haskell.org/package/SDL-mixer")
11308 (synopsis "Haskell bindings to libSDL_mixer")
11309 (description "SDL_mixer is a sample multi-channel audio mixer library. It
11310supports any number of simultaneously playing channels of 16 bit stereo audio,
11311plus a single channel of music, mixed by the popular MikMod MOD, Timidity
11312MIDI, Ogg Vorbis, and SMPEG MP3 libraries.")
11313 (license license:bsd-3)))
11314
11315(define-public ghc-securemem
11316 (package
11317 (name "ghc-securemem")
11318 (version "0.1.10")
11319 (source
11320 (origin
11321 (method url-fetch)
11322 (uri (string-append "https://hackage.haskell.org/package/"
11323 "securemem-" version "/"
11324 "securemem-" version ".tar.gz"))
11325 (sha256
11326 (base32
11327 "19hnw2cfbsfjynxq1bq9f6djbxhsc1k751ml0y1ab3ah913mm29j"))))
11328 (build-system haskell-build-system)
11329 (inputs `(("ghc-byteable" ,ghc-byteable)
11330 ("ghc-memory" ,ghc-memory)))
11331 (home-page "https://github.com/vincenthz/hs-securemem")
11332 (synopsis "Auto-scrubbing and const-time-eq memory chunk abstraction for
11333Haskell")
11334 (description "SecureMem is similar to ByteString, except that it provides
11335a memory chunk that will be auto-scrubbed after it run out of scope.")
11336 (license license:bsd-3)))
11337
3cf7219c
JS
11338(define-public ghc-semialign
11339 (package
11340 (name "ghc-semialign")
11341 (version "1")
11342 (source
11343 (origin
11344 (method url-fetch)
11345 (uri (string-append
11346 "https://hackage.haskell.org/package/semialign/semialign-"
11347 version
11348 ".tar.gz"))
11349 (sha256
11350 (base32
11351 "004x0a80sqqdgvsyk4z0nasxpi6z3g1d8kgwj804bj9ka8dlc75m"))))
11352 (build-system haskell-build-system)
11353 (inputs
11354 `(("ghc-these" ,ghc-these)
11355 ("ghc-base-compat" ,ghc-base-compat)
11356 ("ghc-hashable" ,ghc-hashable)
11357 ("ghc-tagged" ,ghc-tagged)
11358 ("ghc-unordered-containers" ,ghc-unordered-containers)
11359 ("ghc-vector" ,ghc-vector)
11360 ("ghc-semigroupoids" ,ghc-semigroupoids)))
11361 (arguments
11362 `(#:cabal-revision
11363 ("1"
11364 "0qnqnyfng4kwy2h2anrcy5id2ijnawava3zcc5h5b8ri1y6ks6zi")))
11365 (home-page
11366 "https://github.com/isomorphism/these")
11367 (synopsis
11368 "Align and Zip type-classes from the common Semialign ancestor ")
11369 (description
11370 "The major use of @code{These} of this is provided by the
11371@code{align} member of @code{Semialign} class, representing a
11372generalized notion of \"zipping with padding\" that combines
11373structures without truncating to the size of the smaller input. It
11374turns out that @code{zip} operation fits well the @code{Semialign}
11375class, forming lattice-like structure.")
11376 (license license:bsd-3)))
11377
dddbc90c
RV
11378(define-public ghc-semigroupoids
11379 (package
11380 (name "ghc-semigroupoids")
a8aaadf2 11381 (version "5.3.3")
dddbc90c
RV
11382 (source
11383 (origin
11384 (method url-fetch)
11385 (uri (string-append
11386 "https://hackage.haskell.org/package/semigroupoids/semigroupoids-"
11387 version
11388 ".tar.gz"))
11389 (sha256
11390 (base32
a8aaadf2 11391 "016hc4imr9l4szs3p7f1aahvxr5wv4clvr3qzrm3nibssg5vrs61"))))
dddbc90c 11392 (build-system haskell-build-system)
95eb946b 11393 (outputs '("out" "static" "doc"))
dddbc90c
RV
11394 (inputs
11395 `(("ghc-base-orphans" ,ghc-base-orphans)
11396 ("ghc-transformers-compat" ,ghc-transformers-compat)
11397 ("ghc-bifunctors" ,ghc-bifunctors)
11398 ("ghc-comonad" ,ghc-comonad)
11399 ("ghc-contravariant" ,ghc-contravariant)
11400 ("ghc-distributive" ,ghc-distributive)
11401 ("ghc-hashable" ,ghc-hashable)
11402 ("ghc-semigroups" ,ghc-semigroups)
11403 ("ghc-tagged" ,ghc-tagged)
11404 ("ghc-unordered-containers" ,ghc-unordered-containers)))
11405 (native-inputs
11406 `(("cabal-doctest" ,cabal-doctest)
11407 ("ghc-doctest" ,ghc-doctest)))
11408 (home-page "https://github.com/ekmett/semigroupoids")
11409 (synopsis "Semigroupoids operations for Haskell")
11410 (description "This library provides a wide array of (semi)groupoids and
11411operations for working with them. A @code{Semigroupoid} is a @code{Category}
11412without the requirement of identity arrows for every object in the category.
11413A @code{Category} is any @code{Semigroupoid} for which the Yoneda lemma holds.
11414Finally, to work with these weaker structures it is beneficial to have
11415containers that can provide stronger guarantees about their contents, so
11416versions of @code{Traversable} and @code{Foldable} that can be folded with
11417just a @code{Semigroup} are added.")
11418 (license license:bsd-3)))
11419
11420(define-public ghc-semigroups
11421 (package
11422 (name "ghc-semigroups")
11423 (version "0.18.5")
11424 (source
11425 (origin
11426 (method url-fetch)
11427 (uri (string-append
11428 "https://hackage.haskell.org/package/semigroups/semigroups-"
11429 version
11430 ".tar.gz"))
11431 (sha256
11432 (base32
11433 "17g29h62g1k51ghhvzkw72zksjgi6vs6bfipkj81pqw1dsprcamb"))))
11434 (build-system haskell-build-system)
11435 (inputs
11436 `(("ghc-nats" ,ghc-nats)
11437 ("ghc-tagged" ,ghc-tagged)
11438 ("ghc-unordered-containers" ,ghc-unordered-containers)
11439 ("ghc-hashable" ,ghc-hashable)))
11440 (home-page "https://github.com/ekmett/semigroups/")
11441 (synopsis "Semigroup operations for Haskell")
11442 (description "This package provides semigroups for Haskell. In
11443mathematics, a semigroup is an algebraic structure consisting of a set
11444together with an associative binary operation. A semigroup generalizes a
11445monoid in that there might not exist an identity element. It
11446also (originally) generalized a group (a monoid with all inverses) to a type
11447where every element did not have to have an inverse, thus the name
11448semigroup.")
11449 (license license:bsd-3)))
11450
11451(define-public ghc-semigroups-bootstrap
11452 (package
11453 (inherit ghc-semigroups)
11454 (name "ghc-semigroups-bootstrap")
11455 (inputs
11456 `(("ghc-nats" ,ghc-nats-bootstrap)
11457 ("ghc-tagged" ,ghc-tagged)
11458 ("ghc-unordered-containers" ,ghc-unordered-containers-bootstrap)
11459 ("ghc-hashable" ,ghc-hashable-bootstrap)))
799d8d3c 11460 (properties '((hidden? #t)))))
dddbc90c 11461
47c526df
JS
11462(define-public ghc-serialise
11463 (package
11464 (name "ghc-serialise")
11465 (version "0.2.1.0")
11466 (source
11467 (origin
11468 (method url-fetch)
11469 (uri (string-append
11470 "mirror://hackage/package/serialise/serialise-"
11471 version
11472 ".tar.gz"))
11473 (sha256
11474 (base32
11475 "19ary6ivzk8z7wcxhm860qmh7pwqj0qjqzav1h42y85l608zqgh4"))))
11476 (build-system haskell-build-system)
11477 (inputs
11478 `(("ghc-cborg" ,ghc-cborg)
11479 ("ghc-half" ,ghc-half)
11480 ("ghc-hashable" ,ghc-hashable)
11481 ("ghc-primitive" ,ghc-primitive)
11482 ("ghc-unordered-containers" ,ghc-unordered-containers)
11483 ("ghc-vector" ,ghc-vector)))
11484 (native-inputs
11485 `(("ghc-quickcheck" ,ghc-quickcheck)
11486 ("ghc-tasty" ,ghc-tasty)
11487 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
11488 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
11489 ("ghc-quickcheck-instances" ,ghc-quickcheck-instances)))
11490 (arguments
11491 `(#:cabal-revision
11492 ("1" "1rknhad1i8bpknsnphmcmb6dnb48c2p2c13ia2qqch3hkhsvfpr6")))
11493 (home-page "https://github.com/well-typed/cborg")
11494 (synopsis "Binary serialisation library for Haskell values")
11495 (description
11496 "This package (formerly binary-serialise-cbor) provides pure,
11497efficient serialization of Haskell values directly into ByteStrings for
11498storage or transmission purposes. By providing a set of type class instances,
11499you can also serialise any custom data type you have as well.
11500
11501The underlying binary format used is the 'Concise Binary Object
11502Representation', or CBOR, specified in RFC 7049. As a result, serialised
11503Haskell values have implicit structure outside of the Haskell program itself,
11504meaning they can be inspected or analyzed without custom tools.
11505
11506An implementation of the standard bijection between CBOR and JSON is
11507provided by the https://hackage.haskell.org/package/cborg-json
11508package. Also see https://hackage.haskell.org/package/cbor-tool for a
11509convenient command-line utility for working with CBOR data.")
11510 (license license:bsd-3)))
11511
dddbc90c
RV
11512(define-public ghc-setenv
11513 (package
11514 (name "ghc-setenv")
11515 (version "0.1.1.3")
11516 (source
11517 (origin
11518 (method url-fetch)
11519 (uri (string-append
11520 "https://hackage.haskell.org/package/setenv/setenv-"
11521 version
11522 ".tar.gz"))
11523 (sha256
11524 (base32
11525 "0cnbgrvb9byyahb37zlqrj05rj25v190crgcw8wmlgf0mwwxyn73"))))
11526 (build-system haskell-build-system)
11527 (home-page "https://hackage.haskell.org/package/setenv")
11528 (synopsis "Library for setting environment variables")
11529 (description "This package provides a Haskell library for setting
11530environment variables.")
11531 (license license:expat)))
11532
11533(define-public ghc-setlocale
11534 (package
11535 (name "ghc-setlocale")
9d7cfc9b 11536 (version "1.0.0.9")
dddbc90c
RV
11537 (source (origin
11538 (method url-fetch)
11539 (uri (string-append
11540 "https://hackage.haskell.org/package/setlocale-"
11541 version "/setlocale-" version ".tar.gz"))
11542 (sha256
11543 (base32
9d7cfc9b 11544 "18b6xafspzxrmz5m9r9nzy3z053crqi59xc8n8aqd4gw0pvqdcrv"))))
dddbc90c
RV
11545 (build-system haskell-build-system)
11546 (home-page "https://hackage.haskell.org/package/setlocale")
11547 (synopsis "Haskell bindings to setlocale")
11548 (description "This package provides Haskell bindings to the
11549@code{setlocale} C function.")
11550 (license license:bsd-3)))
11551
11552(define-public ghc-shakespeare
11553 (package
11554 (name "ghc-shakespeare")
f680955f 11555 (version "2.0.22")
dddbc90c
RV
11556 (source
11557 (origin
11558 (method url-fetch)
11559 (uri (string-append "https://hackage.haskell.org/package/"
11560 "shakespeare-" version "/"
11561 "shakespeare-" version ".tar.gz"))
11562 (sha256
11563 (base32
f680955f 11564 "1mc1a0vv070gcawwcx6vzpj6gpfh1qnlqrndiyfic3p500y656vh"))))
dddbc90c
RV
11565 (build-system haskell-build-system)
11566 (inputs `(("ghc-aeson" ,ghc-aeson)
11567 ("ghc-blaze-markup" ,ghc-blaze-markup)
11568 ("ghc-blaze-html" ,ghc-blaze-html)
11569 ("ghc-exceptions" ,ghc-exceptions)
11570 ("ghc-vector" ,ghc-vector)
11571 ("ghc-unordered-containers" ,ghc-unordered-containers)
11572 ("ghc-scientific" ,ghc-scientific)))
11573 (native-inputs `(("ghc-hspec" ,ghc-hspec)
11574 ("ghc-hunit" ,ghc-hunit)
11575 ("hspec-discover" ,hspec-discover)))
11576 (home-page "https://www.yesodweb.com/book/shakespearean-templates")
11577 (synopsis "Family of type-safe template languages for Haskell")
11578 (description "This Haskell package provides a family of type-safe
11579templates with simple variable interpolation. Shakespeare templates can
11580be used inline with a quasi-quoter or in an external file and it
11581interpolates variables according to the type being inserted.")
11582 (license license:expat)))
11583
11584(define-public ghc-shelly
11585 (package
11586 (name "ghc-shelly")
11587 (version "1.8.1")
11588 (source
11589 (origin
11590 (method url-fetch)
11591 (uri (string-append
11592 "https://hackage.haskell.org/package/shelly/shelly-"
11593 version ".tar.gz"))
11594 (sha256
11595 (base32
11596 "023fbvbqs5gdwm30j5517gbdcc7fvz0md70dgwgpypkskj3i926y"))))
11597 (build-system haskell-build-system)
11598 (inputs
11599 `(("ghc-unix-compat" ,ghc-unix-compat)
11600 ("ghc-system-filepath-bootstrap" ,ghc-system-filepath-bootstrap)
11601 ("ghc-system-fileio-bootstrap" ,ghc-system-fileio-bootstrap)
11602 ("ghc-monad-control" ,ghc-monad-control)
11603 ("ghc-lifted-base" ,ghc-lifted-base)
11604 ("ghc-lifted-async" ,ghc-lifted-async)
11605 ("ghc-exceptions" ,ghc-exceptions)
11606 ("ghc-enclosed-exceptions" ,ghc-enclosed-exceptions)
11607 ("ghc-async" ,ghc-async)
11608 ("ghc-transformers-base" ,ghc-transformers-base)
11609 ("ghc-hunit" ,ghc-hunit)
11610 ("ghc-hspec" ,ghc-hspec)
11611 ("ghc-hspec-contrib" ,ghc-hspec-contrib)))
11612 (home-page "https://github.com/yesodweb/Shelly.hs")
11613 (synopsis "Shell-like (systems) programming in Haskell")
11614 (description
11615 "Shelly provides convenient systems programming in Haskell, similar in
11616spirit to POSIX shells. Shelly is originally forked from the Shellish package.")
11617 (license license:bsd-3)))
11618
11619(define-public ghc-silently
11620 (package
11621 (name "ghc-silently")
544bb369 11622 (version "1.2.5.1")
dddbc90c
RV
11623 (source
11624 (origin
11625 (method url-fetch)
11626 (uri (string-append
11627 "https://hackage.haskell.org/package/silently/silently-"
11628 version
11629 ".tar.gz"))
11630 (sha256
11631 (base32
544bb369 11632 "1lgs1gsr5dp0x21diqn4l03fxgai2kgdmj85gqp0iz3zykvbmjbz"))))
dddbc90c
RV
11633 (build-system haskell-build-system)
11634 (arguments `(#:tests? #f)) ;; circular dependency with nanospec
11635 ;; (inputs
11636 ;; `(("ghc-temporary" ,ghc-temporary)))
11637 (home-page "https://github.com/hspec/silently")
11638 (synopsis "Prevent writing to stdout")
11639 (description "This package provides functions to prevent or capture
11640writing to stdout and other handles.")
11641 (license license:bsd-3)))
11642
11643(define-public ghc-simple-reflect
11644 (package
11645 (name "ghc-simple-reflect")
11646 (version "0.3.3")
11647 (source
11648 (origin
11649 (method url-fetch)
11650 (uri (string-append
11651 "https://hackage.haskell.org/package/simple-reflect/simple-reflect-"
11652 version
11653 ".tar.gz"))
11654 (sha256
11655 (base32
11656 "0ayvrx5cm8n6db21jiyjmk5h93pw7cz1707hih09hlhk9jh5x0h7"))))
11657 (build-system haskell-build-system)
11658 (home-page
11659 "https://twanvl.nl/blog/haskell/simple-reflection-of-expressions")
11660 (synopsis
11661 "Simple reflection of expressions containing variables")
11662 (description
11663 "This package allows simple reflection of expressions containing
11664variables. Reflection here means that a Haskell expression is turned into a
11665string. The primary aim of this package is teaching and understanding; there
11666are no options for manipulating the reflected expressions beyond showing
11667them.")
11668 (license license:bsd-3)))
11669
11670(define-public ghc-simple-sendfile
11671 (package
11672 (name "ghc-simple-sendfile")
08f54390 11673 (version "0.2.30")
dddbc90c
RV
11674 (source
11675 (origin
11676 (method url-fetch)
11677 (uri (string-append "https://hackage.haskell.org/package/"
11678 "simple-sendfile-" version "/"
11679 "simple-sendfile-" version ".tar.gz"))
11680 (sha256
11681 (base32
08f54390 11682 "112j0qfsjazf9wg1zywf7hjybgsiywk9wkm27yi8xzv27hmlv1mn"))))
dddbc90c
RV
11683 (build-system haskell-build-system)
11684 (inputs
11685 `(("ghc-conduit" ,ghc-conduit)
11686 ("ghc-conduit-extra" ,ghc-conduit-extra)
11687 ("ghc-network" ,ghc-network)
11688 ("ghc-resourcet" ,ghc-resourcet)))
11689 (native-inputs
11690 `(("ghc-hspec" ,ghc-hspec)
11691 ("hspec-discover" ,hspec-discover)))
11692 (home-page "https://github.com/kazu-yamamoto/simple-sendfile")
11693 (synopsis "Cross platform library for the sendfile system call")
11694 (description "This library tries to call minimum system calls which
11695are the bottleneck of web servers.")
11696 (license license:bsd-3)))
11697
06966c05
TS
11698(define-public ghc-size-based
11699 (package
11700 (name "ghc-size-based")
11701 (version "0.1.2.0")
11702 (source
11703 (origin
11704 (method url-fetch)
11705 (uri (string-append "https://hackage.haskell.org/package/"
11706 "size-based/size-based-" version ".tar.gz"))
11707 (sha256
11708 (base32
11709 "06hmlic0n73ncwlkpx49xlv09bzsrr27ncnp5byhzlknak2gd7vp"))))
11710 (build-system haskell-build-system)
11711 (inputs
11712 `(("ghc-dictionary-sharing" ,ghc-dictionary-sharing)
11713 ("ghc-testing-type-modifiers" ,ghc-testing-type-modifiers)
11714 ("ghc-semigroups" ,ghc-semigroups)))
11715 (arguments
11716 `(#:cabal-revision
11717 ("1" "0kax1ypjyglkn6iff1x4yz12y7f2n249m95xvdhrc63hsa4xlcqv")))
11718 (home-page "https://hackage.haskell.org/package/size-based")
11719 (synopsis "Sized functors for size-based enumerations")
11720 (description "This library provides a framework for size-based
11721enumerations.")
11722 (license license:bsd-3)))
11723
dddbc90c
RV
11724(define-public ghc-skylighting-core
11725 (package
11726 (name "ghc-skylighting-core")
1826c2a8 11727 (version "0.8.2.1")
dddbc90c
RV
11728 (source (origin
11729 (method url-fetch)
11730 (uri (string-append "https://hackage.haskell.org/package/"
11731 "skylighting-core/skylighting-core-"
11732 version ".tar.gz"))
11733 (sha256
11734 (base32
1826c2a8 11735 "0hdchivb4af9w7v5v7lrwfwawd3kcwmpzk69m1vkkm3pis8lcr1s"))))
dddbc90c
RV
11736 (build-system haskell-build-system)
11737 (inputs
11738 `(("ghc-aeson" ,ghc-aeson)
11739 ("ghc-ansi-terminal" ,ghc-ansi-terminal)
11740 ("ghc-attoparsec" ,ghc-attoparsec)
11741 ("ghc-base64-bytestring" ,ghc-base64-bytestring)
11742 ("ghc-blaze-html" ,ghc-blaze-html)
11743 ("ghc-case-insensitive" ,ghc-case-insensitive)
11744 ("ghc-colour" ,ghc-colour)
11745 ("ghc-hxt" ,ghc-hxt)
11746 ("ghc-regex-pcre-builtin" ,ghc-regex-pcre-builtin)
11747 ("ghc-safe" ,ghc-safe)
11748 ("ghc-utf8-string" ,ghc-utf8-string)))
11749 (native-inputs
11750 `(("ghc-diff" ,ghc-diff)
11751 ("ghc-hunit" ,ghc-hunit)
11752 ("ghc-pretty-show" ,ghc-pretty-show)
11753 ("ghc-quickcheck" ,ghc-quickcheck)
11754 ("ghc-tasty" ,ghc-tasty)
11755 ("ghc-tasty-golden" ,ghc-tasty-golden)
11756 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
11757 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
11758 (home-page "https://github.com/jgm/skylighting")
11759 (synopsis "Syntax highlighting library")
11760 (description "Skylighting is a syntax highlighting library with support
11761for over one hundred languages. It derives its tokenizers from XML syntax
11762definitions used by KDE's @code{KSyntaxHighlighting} framework, so any syntax
11763supported by that framework can be added. An optional command-line program is
11764provided. Skylighting is intended to be the successor to highlighting-kate.")
11765 (license license:gpl2)))
11766
11767(define-public ghc-skylighting
11768 (package
11769 (inherit ghc-skylighting-core)
11770 (name "ghc-skylighting")
36c940cf 11771 (version "0.8.2.1")
dddbc90c
RV
11772 (source (origin
11773 (method url-fetch)
11774 (uri (string-append "https://hackage.haskell.org/package/skylighting-"
11775 version "/skylighting-" version ".tar.gz"))
11776 (sha256
11777 (base32
36c940cf 11778 "1xls8ycad77m55ax4hp55k60h3pi5sm3m32hycbc8baixbgfx5xz"))))
dddbc90c
RV
11779 (inputs
11780 `(("ghc-skylighting-core" ,ghc-skylighting-core)
11781 ,@(package-inputs ghc-skylighting-core)))))
11782
11783(define-public ghc-smallcheck
11784 (package
11785 (name "ghc-smallcheck")
11786 (version "1.1.5")
11787 (source
11788 (origin
11789 (method url-fetch)
11790 (uri (string-append
11791 "https://hackage.haskell.org/package/smallcheck/smallcheck-"
11792 version
11793 ".tar.gz"))
11794 (sha256
11795 (base32
11796 "195fj7w3v03d1y1nm2ylavzrwxjcdbq0lb6zsw1dwyx5jmwfc84h"))))
11797 (build-system haskell-build-system)
11798 (inputs
11799 `(("ghc-logict" ,ghc-logict)))
11800 (home-page
11801 "https://github.com/feuerbach/smallcheck")
11802 (synopsis "Property-based testing library")
a84be333 11803 (description "SmallCheck is a testing library that verifies
dddbc90c
RV
11804properties for all test cases up to some depth. The test cases are generated
11805automatically by SmallCheck.")
11806 (license license:bsd-3)))
11807
11808(define-public ghc-socks
11809 (package
11810 (name "ghc-socks")
ab761e9d 11811 (version "0.6.1")
dddbc90c
RV
11812 (source (origin
11813 (method url-fetch)
11814 (uri (string-append "https://hackage.haskell.org/package/"
11815 "socks/socks-" version ".tar.gz"))
11816 (sha256
11817 (base32
ab761e9d 11818 "0wvaxy3dkv97wrncjv1rxrmjr4014hgxz82kixvcwqdhidalfi3k"))))
dddbc90c
RV
11819 (build-system haskell-build-system)
11820 (inputs
11821 `(("ghc-cereal" ,ghc-cereal)
ab761e9d 11822 ("ghc-basement" ,ghc-basement)
dddbc90c
RV
11823 ("ghc-network" ,ghc-network)))
11824 (home-page "https://github.com/vincenthz/hs-socks")
11825 (synopsis "SOCKS proxy (version 5) implementation")
11826 (description
11827 "This library provides a SOCKS proxy (version 5) implementation.")
11828 (license license:bsd-3)))
11829
081d85d6
TS
11830(define-public ghc-sop-core
11831 (package
11832 (name "ghc-sop-core")
11833 (version "0.4.0.0")
11834 (source
11835 (origin
11836 (method url-fetch)
11837 (uri (string-append "https://hackage.haskell.org/package/"
11838 "sop-core/sop-core-" version ".tar.gz"))
11839 (sha256
11840 (base32
11841 "07ci2mh8cbjvipb576rxsj3iyhkj5c5dnsns4xkdppp2p3pv10d3"))))
11842 (build-system haskell-build-system)
3ef91e15 11843 (home-page "https://hackage.haskell.org/package/sop-core")
081d85d6
TS
11844 (synopsis "True Sums of Products")
11845 (description "This package provides an implementation of
11846@math{n}-ary sums and @math{n}-ary products. The module @code{Data.SOP}
11847is the main module of this library and contains more detailed
11848documentation. The main use case of this package is to serve as the
11849core of @url{https://hackage.haskell.org/package/generics-sop,
11850generics-sop}.")
11851 (license license:bsd-3)))
11852
4c77a1a0
JS
11853(define-public ghc-special-values
11854 (package
11855 (name "ghc-special-values")
11856 (version "0.1.0.0")
11857 (source
11858 (origin
11859 (method url-fetch)
11860 (uri (string-append
11861 "https://hackage.haskell.org/package/special-values/"
11862 "special-values-" version ".tar.gz"))
11863 (sha256
11864 (base32
11865 "1kkdw2c4d2hha99v9f89ahmifjxp7fxmxyfwq9a8xk6s0h9xs51w"))))
11866 (build-system haskell-build-system)
11867 (inputs
11868 `(("ghc-scientific" ,ghc-scientific)
11869 ("ghc-ieee754" ,ghc-ieee754)
11870 ("ghc-nats" ,ghc-nats)))
11871 (home-page
11872 "https://github.com/minad/special-values#readme")
11873 (synopsis "Typeclass providing special values")
11874 (description
11875 "Special values are provided by a SpecialValues typeclass. Those can be
11876used for example by QuickCheck, see quickcheck-special." )
11877 (license license:expat)))
11878
dddbc90c
RV
11879(define-public ghc-split
11880 (package
11881 (name "ghc-split")
11882 (version "0.2.3.3")
534d6caa 11883 (outputs '("out" "static" "doc"))
dddbc90c
RV
11884 (source
11885 (origin
11886 (method url-fetch)
11887 (uri (string-append
11888 "https://hackage.haskell.org/package/split/split-"
11889 version
11890 ".tar.gz"))
11891 (sha256
11892 (base32
11893 "04qlmkcyklznl03gsjg95b4nzb6i96gdapqg60rny9szgi7ngk8x"))))
11894 (build-system haskell-build-system)
9bbc21a7
TS
11895 (arguments
11896 `(#:cabal-revision
11897 ("2" "1c8bcssxq5rkxkixgms6w6x6lzf4n7cxk6cx6av1dp3lixdy9j34")))
dddbc90c
RV
11898 (native-inputs
11899 `(("ghc-quickcheck" ,ghc-quickcheck)))
11900 (home-page "https://hackage.haskell.org/package/split")
11901 (synopsis "Combinator library for splitting lists")
11902 (description "This package provides a collection of Haskell functions for
11903splitting lists into parts, akin to the @code{split} function found in several
11904mainstream languages.")
11905 (license license:bsd-3)))
11906
7799d17f 11907(define-public ghc-splitmix
49367c92 11908 (package
7799d17f 11909 (name "ghc-splitmix")
49367c92
TS
11910 (version "0.0.3")
11911 (source
11912 (origin
11913 (method url-fetch)
11914 (uri (string-append "https://hackage.haskell.org/package/"
11915 "splitmix/splitmix-" version ".tar.gz"))
11916 (sha256
11917 (base32
11918 "1k0amgkz7rvyz3lnw7m786ilnr1cibwhx9sc4qynq329gxan5r7w"))))
49367c92 11919 (build-system haskell-build-system)
49367c92
TS
11920 (inputs
11921 `(("ghc-random" ,ghc-random)))
7799d17f
TS
11922 (native-inputs
11923 `(("ghc-hunit" ,ghc-hunit)
11924 ("ghc-async" ,ghc-async)
11925 ("ghc-base-compat-batteries" ,ghc-base-compat-batteries)
11926 ("ghc-tf-random" ,ghc-tf-random)
11927 ("ghc-vector" ,ghc-vector)))
92a79fee 11928 (home-page "https://hackage.haskell.org/package/splitmix")
49367c92
TS
11929 (synopsis "Fast and splittable pseudorandom number generator")
11930 (description "This package provides a Pure Haskell implementation of the
11931SplitMix pseudorandom number generator. SplitMix is a \"splittable\"
11932pseudorandom number generator that is quite fast: 9 64-bit
11933arithmetic/logical operations per 64 bits generated. SplitMix is tested
11934with two standard statistical test suites (DieHarder and TestU01, this
11935implementation only using the former) and it appears to be adequate for
11936\"everyday\" use, such as Monte Carlo algorithms and randomized data
11937structures where speed is important. In particular, it @strong{should not
11938be used for cryptographic or security applications}, because generated
11939sequences of pseudorandom values are too predictable (the mixing functions
11940are easily inverted, and two successive outputs suffice to reconstruct the
11941internal state).")
11942 (license license:bsd-3)))
11943
7799d17f
TS
11944(define-public ghc-splitmix-bootstrap
11945 (package
11946 (inherit ghc-splitmix)
11947 (name "ghc-splitmix-bootstrap")
11948 (arguments `(#:tests? #f))
11949 (native-inputs '())
11950 (properties '((hidden? #t)))))
11951
a152258b
JS
11952(define-public ghc-spoon
11953 (package
11954 (name "ghc-spoon")
11955 (version "0.3.1")
11956 (source
11957 (origin
11958 (method url-fetch)
11959 (uri (string-append
11960 "https://hackage.haskell.org/package/spoon/spoon-"
11961 version
11962 ".tar.gz"))
11963 (sha256
11964 (base32
11965 "1m41k0mfy6fpfrv2ym4m5jsjaj9xdfl2iqpppd3c4d0fffv51cxr"))))
11966 (build-system haskell-build-system)
11967 (arguments
11968 `(#:cabal-revision
11969 ("1"
11970 "09s5jjcsg4g4qxchq9g2l4i9d5zh3rixpkbiysqcgl69kj8mwv74")))
11971 (home-page
11972 "http://hackage.haskell.org/package/spoon")
11973 (synopsis
11974 "Catch errors thrown from pure computations")
11975 (description
11976 "Takes an error-throwing expression and puts it back in the Maybe it
11977belongs in.
11978
11979Note that this suffers from the
11980@url{https://ghc.haskell.org/trac/ghc/ticket/5902}. Buyer beware.")
11981 (license license:bsd-3)))
11982
dddbc90c
RV
11983(define-public ghc-statevar
11984 (package
11985 (name "ghc-statevar")
19419709 11986 (version "1.2")
dddbc90c
RV
11987 (source
11988 (origin
11989 (method url-fetch)
11990 (uri (string-append
11991 "https://hackage.haskell.org/package/StateVar/StateVar-"
11992 version
11993 ".tar.gz"))
11994 (sha256
11995 (base32
19419709 11996 "12sz6zkc9j5z3lwrjvljrkfxa5vhwnir5wsarigz2f6d3w13dh5g"))))
dddbc90c
RV
11997 (build-system haskell-build-system)
11998 (home-page "https://hackage.haskell.org/package/StateVar")
11999 (synopsis "State variables for Haskell")
12000 (description "This package provides state variables, which are references
12001in the @code{IO} monad, like @code{IORef}s or parts of the OpenGL state.")
12002 (license license:bsd-3)))
12003
12004(define-public ghc-statistics
12005 (package
12006 (name "ghc-statistics")
60e78e68 12007 (version "0.15.1.1")
dddbc90c
RV
12008 (source
12009 (origin
12010 (method url-fetch)
12011 (uri (string-append "https://hackage.haskell.org/package/"
12012 "statistics-" version "/"
12013 "statistics-" version ".tar.gz"))
12014 (sha256
12015 (base32
60e78e68 12016 "015rn74f1glii26j4b2fh1fc63xvxzrh2xckiancz48kc8jdzabj"))))
dddbc90c
RV
12017 (build-system haskell-build-system)
12018 (arguments
60e78e68 12019 '(;; Two tests fail: "Discrete CDF is OK" and "Quantile is CDF inverse".
dddbc90c
RV
12020 #:tests? #f))
12021 (inputs
12022 `(("ghc-aeson" ,ghc-aeson)
60e78e68 12023 ("ghc-async" ,ghc-async)
dddbc90c 12024 ("ghc-base-orphans" ,ghc-base-orphans)
60e78e68 12025 ("ghc-dense-linear-algebra" ,ghc-dense-linear-algebra)
dddbc90c
RV
12026 ("ghc-math-functions" ,ghc-math-functions)
12027 ("ghc-monad-par" ,ghc-monad-par)
12028 ("ghc-mwc-random" ,ghc-mwc-random)
12029 ("ghc-primitive" ,ghc-primitive)
12030 ("ghc-vector" ,ghc-vector)
12031 ("ghc-vector-algorithms" ,ghc-vector-algorithms)
12032 ("ghc-vector-th-unbox" ,ghc-vector-th-unbox)
12033 ("ghc-vector-binary-instances" ,ghc-vector-binary-instances)))
12034 (native-inputs
12035 `(("ghc-hunit" ,ghc-hunit)
12036 ("ghc-quickcheck" ,ghc-quickcheck)
12037 ("ghc-ieee754" ,ghc-ieee754)
12038 ("ghc-test-framework" ,ghc-test-framework)
12039 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
12040 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
12041 (home-page "https://github.com/bos/mwc-random")
12042 (synopsis "Haskell library of statistical types, data, and functions")
12043 (description "This library provides a number of common functions
12044and types useful in statistics. We focus on high performance, numerical
12045robustness, and use of good algorithms. Where possible, we provide references
12046to the statistical literature.
12047
12048The library's facilities can be divided into four broad categories:
12049
12050@itemize
12051@item Working with widely used discrete and continuous probability
12052distributions. (There are dozens of exotic distributions in use; we focus
12053on the most common.)
12054
12055@item Computing with sample data: quantile estimation, kernel density
12056estimation, histograms, bootstrap methods, significance testing,
12057and regression and autocorrelation analysis.
12058
12059@item Random variate generation under several different distributions.
12060
12061@item Common statistical tests for significant differences between samples.
12062@end itemize")
12063 (license license:bsd-2)))
12064
12065(define-public ghc-stm-chans
12066 (package
12067 (name "ghc-stm-chans")
12068 (version "3.0.0.4")
12069 (source
12070 (origin
12071 (method url-fetch)
12072 (uri (string-append "https://hackage.haskell.org/package/"
12073 "stm-chans-" version "/"
12074 "stm-chans-" version ".tar.gz"))
12075 (sha256
12076 (base32
12077 "0f27sp09yha43xk9q55sc185jyjs5h7gq2dhsyx6bm9kz9dzqi13"))))
12078 (build-system haskell-build-system)
12079 (home-page "https://hackage.haskell.org/package/stm-chans")
12080 (synopsis "Additional types of channels for ghc-stm")
12081 (description "This Haskell package offers a collection of channel types,
12082similar to @code{Control.Concurrent.STM.@{TChan,TQueue@}} but with additional
12083features.")
12084 (license license:bsd-3)))
12085
12086(define-public ghc-stm-conduit
12087 (package
12088 (name "ghc-stm-conduit")
cd518e95 12089 (version "4.0.1")
dddbc90c
RV
12090 (source
12091 (origin
12092 (method url-fetch)
12093 (uri (string-append "https://hackage.haskell.org/package/stm-conduit/"
12094 "stm-conduit-" version ".tar.gz"))
12095 (sha256
12096 (base32
cd518e95 12097 "0hhlxvpp7mah8dcvkknh6skx44jfk3092zz2w52zlr255bkmn3p8"))))
dddbc90c
RV
12098 (build-system haskell-build-system)
12099 (inputs
12100 `(("ghc-stm-chans" ,ghc-stm-chans)
12101 ("ghc-cereal" ,ghc-cereal)
12102 ("ghc-cereal-conduit" ,ghc-cereal-conduit)
12103 ("ghc-conduit" ,ghc-conduit)
12104 ("ghc-conduit-extra" ,ghc-conduit-extra)
12105 ("ghc-exceptions" ,ghc-exceptions)
12106 ("ghc-resourcet" ,ghc-resourcet)
12107 ("ghc-async" ,ghc-async)
12108 ("ghc-monad-loops" ,ghc-monad-loops)
12109 ("ghc-unliftio" ,ghc-unliftio)))
12110 (native-inputs
12111 `(("ghc-doctest" ,ghc-doctest)
12112 ("ghc-quickcheck" ,ghc-quickcheck)
12113 ("ghc-hunit" ,ghc-hunit)
12114 ("ghc-test-framework" ,ghc-test-framework)
12115 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
12116 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
12117 (home-page "https://github.com/cgaebel/stm-conduit")
12118 (synopsis "Introduces conduits to channels and promotes using conduits concurrently")
12119 (description
12120 "This package provides two simple conduit wrappers around STM channels: a
12121source and a sink.")
12122 (license license:bsd-3)))
12123
12124(define-public ghc-stmonadtrans
12125 (package
12126 (name "ghc-stmonadtrans")
12127 (version "0.4.3")
12128 (source
12129 (origin
12130 (method url-fetch)
12131 (uri (string-append "https://hackage.haskell.org/package/STMonadTrans"
12132 "/STMonadTrans-" version ".tar.gz"))
12133 (sha256
12134 (base32 "1nr26fnmi5fdjc6d00w13kjhmfyvb5b837d0006w4dj0yxndaksp"))))
12135 (build-system haskell-build-system)
12136 (home-page "https://hackage.haskell.org/package/STMonadTrans")
12137 (synopsis "Monad transformer version of the ST monad")
12138 (description
12139 "This package provides a monad transformer version of the @code{ST} monad
12140for strict state threads.")
12141 (license license:bsd-3)))
12142
12143(define-public ghc-storable-complex
12144 (package
12145 (name "ghc-storable-complex")
4a35e3c3 12146 (version "0.2.3.0")
dddbc90c
RV
12147 (source
12148 (origin
12149 (method url-fetch)
12150 (uri (string-append
12151 "https://hackage.haskell.org/package/storable-complex/storable-complex-"
12152 version ".tar.gz"))
12153 (sha256
4a35e3c3 12154 (base32 "0fnwbfmd5vsaaqvf9182qdcjrzcfjd1zhdyvjwzifbwvn6r9kx4s"))))
dddbc90c 12155 (build-system haskell-build-system)
4a35e3c3
TS
12156 (inputs
12157 `(("ghc-base-orphans" ,ghc-base-orphans)))
dddbc90c
RV
12158 (home-page "https://github.com/cartazio/storable-complex")
12159 (synopsis "Haskell Storable instance for Complex")
12160 (description "This package provides a Haskell library including a
12161Storable instance for Complex which is binary compatible with C99, C++
12162and Fortran complex data types.")
12163 (license license:bsd-3)))
12164
ad80074a
JS
12165(define-public ghc-storable-record
12166 (package
12167 (name "ghc-storable-record")
12168 (version "0.0.4")
12169 (source
12170 (origin
12171 (method url-fetch)
12172 (uri
12173 (string-append
12174 "https://hackage.haskell.org/package/storable-record/"
12175 "storable-record-" version ".tar.gz"))
12176 (sha256
12177 (base32
12178 "0hjs1km0fc9ch0i1rbycxia5w3939hk4p4md73ikgg4aipqb5zyf"))))
12179 (build-system haskell-build-system)
12180 (inputs
12181 `(("ghc-semigroups" ,ghc-semigroups)
12182 ("ghc-utility-ht" ,ghc-utility-ht)
12183 ("ghc-storablevector" ,ghc-storablevector)
12184 ("ghc-timeit" ,ghc-timeit)))
12185 (home-page "https://hackage.haskell.org/package/storable-record")
12186 (synopsis "Elegant definition of Storable instances for records")
12187 (description "With this package you can build a Storable instance of
12188a record type from Storable instances of its elements in an elegant way.
12189It does not do any magic, just a bit arithmetic to compute the right
12190offsets, that would be otherwise done manually or by a preprocessor like
12191C2HS. There is no guarantee that the generated memory layout is
12192compatible with that of a corresponding C struct. However, the module
12193generates the smallest layout that is possible with respect to the
12194alignment of the record elements.")
12195 (license license:bsd-3)))
12196
55f4c653
JS
12197(define-public ghc-storable-tuple
12198 (package
12199 (name "ghc-storable-tuple")
12200 (version "0.0.3.3")
12201 (source
12202 (origin
12203 (method url-fetch)
12204 (uri
12205 (string-append
12206 "https://hackage.haskell.org/package/storable-tuple/"
12207 "storable-tuple-" version ".tar.gz"))
12208 (sha256
12209 (base32
12210 "0dfzhxgkn1l6ls7zh6iifhyvhm8l47n40z0ar23c6ibsa94w1ynw"))))
12211 (build-system haskell-build-system)
12212 (inputs
12213 `(("ghc-storable-record" ,ghc-storable-record)
12214 ("ghc-utility-ht" ,ghc-utility-ht)
12215 ("ghc-base-orphans" ,ghc-base-orphans)))
12216 (home-page "https://hackage.haskell.org/package/storable-tuple")
12217 (synopsis "Storable instance for pairs and triples")
12218 (description "This package provides a Storable instance for pairs
12219and triples which should be binary compatible with C99 and C++. The
12220only purpose of this package is to provide a standard location for this
12221instance so that other packages needing this instance can play nicely
12222together.")
12223 (license license:bsd-3)))
12224
bc06ca45
JS
12225(define-public ghc-storablevector
12226 (package
12227 (name "ghc-storablevector")
12228 (version "0.2.13")
12229 (source
12230 (origin
12231 (method url-fetch)
12232 (uri
12233 (string-append
12234 "https://hackage.haskell.org/package/storablevector/storablevector-"
12235 version ".tar.gz"))
12236 (sha256
12237 (base32
12238 "1zmr738vwnhnyxbikayqnaz31ilv2qlmscp6iqgl7adcfbal4dzq"))))
12239 (build-system haskell-build-system)
12240 (inputs
12241 `(("ghc-non-negative" ,ghc-non-negative)
12242 ("ghc-utility-ht" ,ghc-utility-ht)
12243 ("ghc-semigroups" ,ghc-semigroups)
12244 ("ghc-unsafe" ,ghc-unsafe)
12245 ("ghc-quickcheck" ,ghc-quickcheck)
12246 ("ghc-syb" ,ghc-syb)))
228d2901 12247 (home-page "https://wiki.haskell.org/Storable_Vector")
bc06ca45
JS
12248 (synopsis "Fast, packed, strict storable arrays with a list interface")
12249 (description "This library provides fast, packed, strict storable
12250arrays with a list interface, a chunky lazy list interface with variable
12251chunk size and an interface for write access via the ST monad. This is
12252much like bytestring and binary but can be used for every
12253@code{Foreign.Storable.Storable} type. See also
12254@url{http://hackage.haskell.org/package/vector}, a library with a
12255similar intention.
12256
12257This library does not do advanced fusion optimization, since especially
12258for lazy vectors this would either be incorrect or not applicable. See
12259@url{http://hackage.haskell.org/package/storablevector-streamfusion} for
12260a library that provides fusion with lazy lists.")
12261 (license license:bsd-3)))
12262
dddbc90c
RV
12263(define-public ghc-streaming-commons
12264 (package
12265 (name "ghc-streaming-commons")
12266 (version "0.2.1.1")
12267 (source
12268 (origin
12269 (method url-fetch)
12270 (uri (string-append "https://hackage.haskell.org/package/"
12271 "streaming-commons/streaming-commons-"
12272 version ".tar.gz"))
12273 (sha256
12274 (base32
12275 "1lmyx3wkjsayhy5yilzvy0kf8qwmycwlk26r1d8f3cxbfhkr7s52"))))
12276 (build-system haskell-build-system)
12277 (inputs
12278 `(("ghc-async" ,ghc-async)
12279 ("ghc-blaze-builder" ,ghc-blaze-builder)
12280 ("ghc-network" ,ghc-network)
12281 ("ghc-random" ,ghc-random)
12282 ("ghc-zlib" ,ghc-zlib)))
12283 (native-inputs
12284 `(("ghc-quickcheck" ,ghc-quickcheck)
12285 ("ghc-hspec" ,ghc-hspec)
12286 ("hspec-discover" ,hspec-discover)))
12287 (home-page "https://hackage.haskell.org/package/streaming-commons")
12288 (synopsis "Conduit and pipes needed by some streaming data libraries")
12289 (description "This package provides low-dependency functionality commonly
12290needed by various Haskell streaming data libraries, such as @code{conduit} and
12291@code{pipe}s.")
12292 (license license:expat)))
12293
12294(define-public ghc-strict
12295 (package
12296 (name "ghc-strict")
12297 (version "0.3.2")
12298 (source
12299 (origin
12300 (method url-fetch)
12301 (uri (string-append "https://hackage.haskell.org/package/strict/strict-"
12302 version ".tar.gz"))
12303 (sha256
12304 (base32 "08cjajqz9h47fkq98mlf3rc8n5ghbmnmgn8pfsl3bdldjdkmmlrc"))))
12305 (build-system haskell-build-system)
12306 (home-page "https://hackage.haskell.org/package/strict")
12307 (synopsis "Strict data types and String IO")
12308 (description
12309 "This package provides strict versions of some standard Haskell data
12310types, such as pairs, @code{Maybe} and @code{Either}. It also contains strict
12311IO operations.")
12312 (license license:bsd-3)))
12313
12314(define-public ghc-stringbuilder
12315 (package
12316 (name "ghc-stringbuilder")
12317 (version "0.5.1")
12318 (source
12319 (origin
12320 (method url-fetch)
12321 (uri (string-append
12322 "https://hackage.haskell.org/package/stringbuilder/stringbuilder-"
12323 version
12324 ".tar.gz"))
12325 (sha256
12326 (base32
12327 "1fh3csx1wcssn8xyvl4ip4aprh9l4qyz2kk8mgjvqvc0vb2bsy6q"))))
12328 (build-system haskell-build-system)
12329 (arguments `(#:tests? #f)) ; FIXME: circular dependencies with tests
12330 ; enabled
12331 (home-page "https://hackage.haskell.org/package/stringbuilder")
12332 (synopsis "Writer monad for multi-line string literals")
12333 (description "This package provides a writer monad for multi-line string
12334literals.")
12335 (license license:expat)))
12336
12337(define-public ghc-string-qq
12338 (package
12339 (name "ghc-string-qq")
4d6fddc3 12340 (version "0.0.4")
dddbc90c
RV
12341 (source
12342 (origin
12343 (method url-fetch)
12344 (uri (string-append
12345 "https://hackage.haskell.org/package/string-qq/string-qq-"
12346 version
12347 ".tar.gz"))
12348 (sha256
12349 (base32
4d6fddc3 12350 "0wfxkw4x6j6jq9nd82k83g2k3hskpsvk1dp4cpkshvjr4wg9qny8"))))
dddbc90c 12351 (build-system haskell-build-system)
4d6fddc3
TS
12352 (native-inputs
12353 `(("ghc-hunit" ,ghc-hunit)))
3ef91e15 12354 (home-page "https://hackage.haskell.org/package/string-qq")
dddbc90c
RV
12355 (synopsis
12356 "QuasiQuoter for non-interpolated strings, texts and bytestrings.")
12357 (description
12358 "This package provides a quasiquoter for non-interpolated strings, texts
12359and bytestrings.")
12360 (license license:public-domain)))
12361
12362(define-public ghc-stringsearch
12363 (package
12364 (name "ghc-stringsearch")
12365 (version "0.3.6.6")
12366 (source
12367 (origin
12368 (method url-fetch)
12369 (uri (string-append
12370 "https://hackage.haskell.org/package/stringsearch/stringsearch-"
12371 version
12372 ".tar.gz"))
12373 (sha256
12374 (base32
12375 "0jpy9xjcjdbpi3wk6mg7xwd7wfi2mma70p97v1ij5i8bj9qijpr9"))))
12376 (build-system haskell-build-system)
e2303abb
TS
12377 (arguments
12378 `(#:cabal-revision
12379 ("1" "0z5pz5dccapz9k39r2zmf056m0x2m2lj3jahhnw3mfxlmps07378")))
dddbc90c
RV
12380 (home-page "https://bitbucket.org/dafis/stringsearch")
12381 (synopsis "Fast searching, splitting and replacing of ByteStrings")
12382 (description "This package provides several functions to quickly search
12383for substrings in strict or lazy @code{ByteStrings}. It also provides
12384functions for breaking or splitting on substrings and replacing all
12385occurrences of a substring (the first in case of overlaps) with another.")
12386 (license license:bsd-3)))
12387
dcf3f8f4
TS
12388(define-public ghc-svg-builder
12389 (package
12390 (name "ghc-svg-builder")
12391 (version "0.1.1")
12392 (source
12393 (origin
12394 (method url-fetch)
12395 (uri (string-append "https://hackage.haskell.org/package/"
12396 "svg-builder/svg-builder-" version ".tar.gz"))
12397 (sha256
12398 (base32
12399 "1k420f497lzkymmxin88ql6ib8dziic43avykv31yq65rgrf7l2g"))))
12400 (build-system haskell-build-system)
12401 (inputs
12402 `(("ghc-blaze-builder" ,ghc-blaze-builder)
12403 ("ghc-hashable" ,ghc-hashable)
12404 ("ghc-unordered-containers" ,ghc-unordered-containers)))
12405 (arguments
12406 `(#:cabal-revision
12407 ("1" "1bhp9gvid2iis411k1vvyj5krzc4ahxcqcd9cwx9h37jxg180xw1")))
12408 (home-page "https://github.com/diagrams/svg-builder.git")
12409 (synopsis "Domain-specific language for building Scalable Vector Graphics")
12410 (description "Easy-to-write domain-specific language (DSL) for
12411building Scalable Vector Graphics (SVG).")
12412 (license license:bsd-3)))
12413
dddbc90c
RV
12414(define-public ghc-syb
12415 (package
12416 (name "ghc-syb")
07d65eef 12417 (version "0.7.1")
534d6caa 12418 (outputs '("out" "static" "doc"))
dddbc90c
RV
12419 (source
12420 (origin
12421 (method url-fetch)
12422 (uri (string-append
12423 "https://hackage.haskell.org/package/syb/syb-"
12424 version
12425 ".tar.gz"))
12426 (sha256
12427 (base32
07d65eef 12428 "0077vxzyi9ppbphi2ialac3p376k49qly1kskdgf57wdwix9qjp0"))))
dddbc90c
RV
12429 (build-system haskell-build-system)
12430 (inputs
12431 `(("ghc-hunit" ,ghc-hunit)))
12432 (home-page
12433 "http://www.cs.uu.nl/wiki/GenericProgramming/SYB")
12434 (synopsis "Scrap Your Boilerplate")
12435 (description "This package contains the generics system described in the
12436/Scrap Your Boilerplate/ papers (see
12437@uref{http://www.cs.uu.nl/wiki/GenericProgramming/SYB, the website}). It
12438defines the @code{Data} class of types permitting folding and unfolding of
12439constructor applications, instances of this class for primitive types, and a
12440variety of traversals.")
12441 (license license:bsd-3)))
12442
12443(define-public ghc-system-fileio
12444 (package
12445 (name "ghc-system-fileio")
dcfb99d4 12446 (version "0.3.16.4")
dddbc90c
RV
12447 (source
12448 (origin
12449 (method url-fetch)
12450 (uri (string-append
12451 "https://hackage.haskell.org/package/system-fileio/system-fileio-"
12452 version ".tar.gz"))
12453 (sha256
12454 (base32
dcfb99d4 12455 "1iy6g1f35gzyj12g9mdiw4zf75mmxpv1l8cyaldgyscsl648pr9l"))))
dddbc90c 12456 (build-system haskell-build-system)
dcfb99d4
TS
12457 (arguments
12458 `(#:phases
12459 (modify-phases %standard-phases
12460 (add-before 'configure 'update-constraints
12461 (lambda _
12462 (substitute* "system-fileio.cabal"
12463 (("chell >= 0\\.4 && < 0\\.5") "chell >= 0.4"))
12464 #t)))))
dddbc90c
RV
12465 (inputs
12466 `(("ghc-system-filepath" ,ghc-system-filepath)
12467 ("ghc-chell" ,ghc-chell)
12468 ("ghc-temporary" ,ghc-temporary)))
12469 (home-page "https://github.com/fpco/haskell-filesystem")
12470 (synopsis "Consistent file system interaction across GHC versions")
12471 (description
12472 "This is a small wrapper around the directory, unix, and Win32 packages,
12473for use with system-filepath. It provides a consistent API to the various
12474versions of these packages distributed with different versions of GHC.
12475In particular, this library supports working with POSIX files that have paths
12476which can't be decoded in the current locale encoding.")
12477 (license license:expat)))
12478
12479;; See ghc-system-filepath-bootstrap. In addition this package depends on
12480;; ghc-system-filepath.
12481(define ghc-system-fileio-bootstrap
12482 (package
12483 (name "ghc-system-fileio-bootstrap")
12484 (version "0.3.16.3")
12485 (source
12486 (origin
12487 (method url-fetch)
12488 (uri (string-append
12489 "https://hackage.haskell.org/package/system-fileio/system-fileio-"
12490 version ".tar.gz"))
12491 (sha256
12492 (base32
12493 "1484hcl27s2qcby8ws5djj11q9bz68bspcifz9h5gii2ndy70x9i"))))
12494 (build-system haskell-build-system)
12495 (arguments
12496 `(#:tests? #f))
12497 (inputs
12498 `(("ghc-system-filepath-bootstrap" ,ghc-system-filepath-bootstrap)
12499 ("ghc-temporary" ,ghc-temporary)))
12500 (home-page "https://github.com/fpco/haskell-filesystem")
12501 (synopsis "Consistent file system interaction across GHC versions")
12502 (description
12503 "This is a small wrapper around the directory, unix, and Win32 packages,
12504for use with system-filepath. It provides a consistent API to the various
12505versions of these packages distributed with different versions of GHC.
12506In particular, this library supports working with POSIX files that have paths
12507which can't be decoded in the current locale encoding.")
12508 (license license:expat)))
12509
12510
12511(define-public ghc-system-filepath
12512 (package
12513 (name "ghc-system-filepath")
12514 (version "0.4.14")
12515 (source
12516 (origin
12517 (method url-fetch)
12518 (uri (string-append
12519 "https://hackage.haskell.org/package/system-filepath/system-filepath-"
12520 version ".tar.gz"))
12521 (sha256
12522 (base32
12523 "14yras4pz2dh55xpwmazcgxijvi8913pjgzb9iw50mjq1lycwmhn"))))
12524 (build-system haskell-build-system)
12525 ;; FIXME: One of the tests fails:
12526 ;; [ FAIL ] tests.validity.posix
12527 ;; note: seed=7310214548328823169
12528 ;; *** Failed! Falsifiable (after 24 tests):
12529 ;; FilePath "/r2\ENQ52\t ;$/o\US=/okG\146\&6\n<u\DC3/5\182\223a\DELN\EOT#\NUL/`[m/\USEKV\ETX([)b6/\ACK\SOo\245\ETBO/f\128\STX`|\EM\"/*\EMA\USD3/\143\&4/\CAN?\SUBee\CANR/9/B0\187Kx4/Vqr\232'b:/\a\234\DLE.\"\179/\ENQ{J/|/G)@^\237/\219ml/\DC3pd\ESC"
12530 (arguments `(#:tests? #f))
12531 (inputs
12532 `(("ghc-chell" ,ghc-chell)
12533 ("ghc-chell-quickcheck" ,ghc-chell-quickcheck)
12534 ("ghc-quickcheck" ,ghc-quickcheck)))
12535 (home-page "https://github.com/fpco/haskell-filesystem")
12536 (synopsis "High-level, byte-based file and directory path manipulations")
12537 (description
12538 "Provides a FilePath datatype and utility functions for operating on it.
12539Unlike the filepath package, this package does not simply reuse String,
12540increasing type safety.")
12541 (license license:expat)))
12542
12543;; Ghc-shelly depends on ghc-system-filepath and ghc-system-fileio, who in turn depend on
12544;; ghc-chell and ghc-chell-quickcheck for the test phase. Ghc-chell depends on ghc-options
12545;; which depends on ghc-chell and ghc-chell-quickcheck.
12546;; Therefore we bootstrap it with tests disabled.
12547(define ghc-system-filepath-bootstrap
12548 (package
12549 (name "ghc-system-filepath-bootstrap")
12550 (version "0.4.14")
12551 (source
12552 (origin
12553 (method url-fetch)
12554 (uri (string-append
12555 "https://hackage.haskell.org/package/system-filepath/system-filepath-"
12556 version ".tar.gz"))
12557 (sha256
12558 (base32
12559 "14yras4pz2dh55xpwmazcgxijvi8913pjgzb9iw50mjq1lycwmhn"))))
12560 (build-system haskell-build-system)
12561 (arguments
12562 `(#:tests? #f))
12563 (inputs
12564 `(("ghc-quickcheck" ,ghc-quickcheck)))
12565 (home-page "https://github.com/fpco/haskell-filesystem")
12566 (synopsis "High-level, byte-based file and directory path manipulations")
12567 (description
12568 "Provides a FilePath datatype and utility functions for operating on it.
12569Unlike the filepath package, this package does not simply reuse String,
12570increasing type safety.")
12571 (license license:expat)))
12572
12573
12574(define-public ghc-tagged
12575 (package
12576 (name "ghc-tagged")
f0f3756a 12577 (version "0.8.6")
dddbc90c
RV
12578 (source
12579 (origin
12580 (method url-fetch)
12581 (uri (string-append
12582 "https://hackage.haskell.org/package/tagged/tagged-"
12583 version
12584 ".tar.gz"))
12585 (sha256
12586 (base32
f0f3756a 12587 "1pciqzxf9ncv954v4r527xkxkn7r5hcr13mfw5dg1xjci3qdw5md"))))
dddbc90c
RV
12588 (build-system haskell-build-system)
12589 (arguments
12590 `(#:cabal-revision
f0f3756a 12591 ("1" "070xwfw7y81hd63il76dmwbdl9ca1rd07c54zynfx6vpr4wyx4vh")))
dddbc90c
RV
12592 (inputs
12593 `(("ghc-transformers-compat" ,ghc-transformers-compat)))
12594 (home-page "https://hackage.haskell.org/package/tagged")
12595 (synopsis "Haskell phantom types to avoid passing dummy arguments")
12596 (description "This library provides phantom types for Haskell 98, to avoid
12597having to unsafely pass dummy arguments.")
12598 (license license:bsd-3)))
12599
12600(define-public ghc-tar
12601 (package
12602 (name "ghc-tar")
ec83929f 12603 (version "0.5.1.1")
dddbc90c
RV
12604 (source
12605 (origin
12606 (method url-fetch)
12607 (uri (string-append
12608 "https://hackage.haskell.org/package/tar/tar-"
12609 version ".tar.gz"))
12610 (sha256
12611 (base32
ec83929f 12612 "1ppim7cgmn7ng8zbdrwkxhhizc30h15h1c9cdlzamc5jcagl915k"))))
dddbc90c
RV
12613 (build-system haskell-build-system)
12614 ;; FIXME: 2/24 tests fail.
12615 (arguments `(#:tests? #f))
12616 (inputs
12617 `(("ghc-bytestring-handle" ,ghc-bytestring-handle)
12618 ("ghc-quickcheck" ,ghc-quickcheck)
12619 ("ghc-tasty" ,ghc-tasty)
12620 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
12621 (home-page "https://hackage.haskell.org/package/tar")
12622 (synopsis "Reading, writing and manipulating \".tar\" archive files")
12623 (description
12624 "This library is for working with \\\"@.tar@\\\" archive files.
12625It can read and write a range of common variations of the tar archive format
12626including V7, POSIX USTAR and GNU formats. It provides support for packing and
12627unpacking portable archives. This makes it suitable for distribution but not
12628backup because details like file ownership and exact permissions are not
12629preserved. It also provides features for random access to archive content using
12630an index.")
12631 (license license:bsd-3)))
12632
f8d17902
TS
12633(define-public ghc-tar-conduit
12634 (package
12635 (name "ghc-tar-conduit")
12636 (version "0.3.2")
12637 (source
12638 (origin
12639 (method url-fetch)
12640 (uri (string-append "https://hackage.haskell.org/package/"
12641 "tar-conduit/tar-conduit-" version ".tar.gz"))
12642 (sha256
12643 (base32
12644 "0bgn3hyf20g1gfnzy8f41s7nj54kfcyjk2izw99svrw8f3dphi80"))))
12645 (build-system haskell-build-system)
12646 (inputs
12647 `(("ghc-conduit" ,ghc-conduit)
12648 ("ghc-conduit-combinators" ,ghc-conduit-combinators)
12649 ("ghc-safe-exceptions" ,ghc-safe-exceptions)))
12650 (native-inputs
12651 `(("ghc-quickcheck" ,ghc-quickcheck)
12652 ("ghc-conduit-extra" ,ghc-conduit-extra)
12653 ("ghc-hspec" ,ghc-hspec)
12654 ("ghc-hspec" ,ghc-hspec)
12655 ("ghc-weigh" ,ghc-weigh)))
12656 (home-page "https://github.com/snoyberg/tar-conduit#readme")
12657 (synopsis "Extract and create tar files using conduit for streaming")
12658 (description "This library provides a conduit-based, streaming
12659interface for extracting and creating tar files.")
12660 (license license:expat)))
12661
dddbc90c
RV
12662(define-public ghc-temporary
12663 (package
12664 (name "ghc-temporary")
12665 (version "1.3")
12666 (source
12667 (origin
12668 (method url-fetch)
12669 (uri (string-append
12670 "https://hackage.haskell.org/package/temporary/temporary-"
12671 version
12672 ".tar.gz"))
12673 (sha256
12674 (base32
12675 "144qhwfwg37l3k313raf4ssiz16jbgwlm1nf4flgqpsbd69jji4c"))))
12676 (build-system haskell-build-system)
12677 (inputs
12678 `(("ghc-exceptions" ,ghc-exceptions)
12679 ("ghc-random" ,ghc-random)))
12680 (native-inputs
12681 `(("ghc-base-compat" ,ghc-base-compat)
12682 ("ghc-tasty" ,ghc-tasty)
12683 ("ghc-tasty-hunit" ,ghc-tasty-hunit)))
12684 (home-page "https://www.github.com/batterseapower/temporary")
12685 (synopsis "Temporary file and directory support")
12686 (description "The functions for creating temporary files and directories
12687in the Haskelll base library are quite limited. This library just repackages
12688the Cabal implementations of its own temporary file and folder functions so
12689that you can use them without linking against Cabal or depending on it being
12690installed.")
12691 (license license:bsd-3)))
12692
12693(define-public ghc-temporary-rc
12694 (package
12695 (name "ghc-temporary-rc")
12696 (version "1.2.0.3")
12697 (source
12698 (origin
12699 (method url-fetch)
12700 (uri (string-append
12701 "https://hackage.haskell.org/package/temporary-rc/temporary-rc-"
12702 version
12703 ".tar.gz"))
12704 (sha256
12705 (base32
12706 "1nqih0qks439k3pr5kmbbc8rjdw730slrxlflqb27fbxbzb8skqs"))))
12707 (build-system haskell-build-system)
12708 (inputs `(("ghc-exceptions" ,ghc-exceptions)))
12709 (home-page
12710 "https://www.github.com/feuerbach/temporary")
12711 (synopsis
12712 "Portable temporary file and directory support")
12713 (description
12714 "The functions for creating temporary files and directories in the base
12715library are quite limited. The unixutils package contains some good ones, but
12716they aren't portable to Windows. This library just repackages the Cabal
12717implementations of its own temporary file and folder functions so that you can
12718use them without linking against Cabal or depending on it being installed.
12719This is a better maintained fork of the \"temporary\" package.")
12720 (license license:bsd-3)))
12721
12722(define-public ghc-terminal-size
12723 (package
12724 (name "ghc-terminal-size")
12725 (version "0.3.2.1")
12726 (source (origin
12727 (method url-fetch)
12728 (uri (string-append
12729 "https://hackage.haskell.org/package/terminal-size/"
12730 "terminal-size-" version ".tar.gz"))
12731 (sha256
12732 (base32
12733 "0n4nvj3dbj9gxfnprgish45asn9z4dipv9j98s8i7g2n8yb3xhmm"))))
12734 (build-system haskell-build-system)
12735 (home-page "https://hackage.haskell.org/package/terminal-size")
12736 (synopsis "Get terminal window height and width")
12737 (description "Get terminal window height and width without ncurses
12738dependency.")
12739 (license license:bsd-3)))
12740
12741(define-public ghc-texmath
12742 (package
12743 (name "ghc-texmath")
7fec7e66 12744 (version "0.11.3")
dddbc90c
RV
12745 (source (origin
12746 (method url-fetch)
12747 (uri (string-append "https://hackage.haskell.org/package/"
12748 "texmath/texmath-" version ".tar.gz"))
12749 (sha256
12750 (base32
7fec7e66 12751 "03rpxbp43bjs62mmw4hv4785n6f6nbf8kj2y9mma5nzk6i2xs09f"))))
dddbc90c
RV
12752 (build-system haskell-build-system)
12753 (inputs
12754 `(("ghc-syb" ,ghc-syb)
12755 ("ghc-network-uri" ,ghc-network-uri)
12756 ("ghc-split" ,ghc-split)
12757 ("ghc-temporary" ,ghc-temporary)
12758 ("ghc-utf8-string" ,ghc-utf8-string)
12759 ("ghc-xml" ,ghc-xml)
12760 ("ghc-pandoc-types" ,ghc-pandoc-types)))
12761 (home-page "https://github.com/jgm/texmath")
12762 (synopsis "Conversion between formats used to represent mathematics")
12763 (description
12764 "The texmath library provides functions to read and write TeX math,
12765presentation MathML, and OMML (Office Math Markup Language, used in Microsoft
12766Office). Support is also included for converting math formats to pandoc's
12767native format (allowing conversion, via pandoc, to a variety of different
12768markup formats). The TeX reader supports basic LaTeX and AMS extensions, and
12769it can parse and apply LaTeX macros.")
12770 (license license:gpl2+)))
12771
12772(define-public ghc-text-binary
12773 (package
12774 (name "ghc-text-binary")
12775 (version "0.2.1.1")
12776 (source
12777 (origin
12778 (method url-fetch)
12779 (uri (string-append "https://hackage.haskell.org/package/"
12780 "text-binary/text-binary-"
12781 version ".tar.gz"))
12782 (sha256
12783 (base32
12784 "18gl10pwg3qwsk0za3c70j4n6a9129wwf1b7d3a461h816yv55xn"))))
12785 (build-system haskell-build-system)
12786 (home-page "https://github.com/kawu/text-binary")
12787 (synopsis "Binary instances for text types")
12788 (description
12789 "This package provides a compatibility layer providing @code{Binary}
12790instances for strict and lazy text types for versions older than 1.2.1 of the
12791text package.")
12792 (license license:bsd-2)))
12793
714e5605
JS
12794(define-public ghc-text-manipulate
12795 (package
12796 (name "ghc-text-manipulate")
12797 (version "0.2.0.1")
12798 (source
12799 (origin
12800 (method url-fetch)
12801 (uri (string-append
12802 "https://hackage.haskell.org/package/text-manipulate"
12803 "/text-manipulate-"
12804 version
12805 ".tar.gz"))
12806 (sha256
12807 (base32
12808 "0bwxyjj3ll45srxhsp2ihikgqglvjc6m02ixr8xpvyqwkcfwgsg0"))))
12809 (build-system haskell-build-system)
12810 (native-inputs
12811 `(("ghc-tasty" ,ghc-tasty)
12812 ("ghc-tasty-hunit" ,ghc-tasty-hunit)))
12813 (home-page
12814 "https://github.com/brendanhay/text-manipulate")
12815 (synopsis
12816 "Case conversion, word boundary manipulation, and textual subjugation")
12817 (description
12818 "Manipulate identifiers and structurally non-complex pieces of text by
12819delimiting word boundaries via a combination of whitespace,
12820control-characters, and case-sensitivity.
12821
12822Has support for common idioms like casing of programmatic variable names,
12823taking, dropping, and splitting by word, and modifying the first character of
12824a piece of text.
12825
12826Caution: this library makes heavy use of the text library's internal loop
12827optimisation framework. Since internal modules are not guaranteed to have a
12828stable API there is potential for build breakage when the text dependency is
12829upgraded. Consider yourself warned!")
12830 (license license:mpl2.0)))
12831
bdc877c4
TS
12832(define-public ghc-text-metrics
12833 (package
12834 (name "ghc-text-metrics")
12835 (version "0.3.0")
12836 (source
12837 (origin
12838 (method url-fetch)
12839 (uri (string-append "https://hackage.haskell.org/package/"
12840 "text-metrics/text-metrics-" version ".tar.gz"))
12841 (sha256
12842 (base32
12843 "18mzxwkdvjp31r720ai9bnxr638qq8x3a2v408bz0d8f0rsayx1q"))))
12844 (build-system haskell-build-system)
12845 (inputs
12846 `(("ghc-vector" ,ghc-vector)))
12847 (native-inputs
12848 `(("ghc-quickcheck" ,ghc-quickcheck)
12849 ("ghc-hspec" ,ghc-hspec)))
12850 (arguments
12851 `(#:cabal-revision
12852 ("4" "017drxq9x56b345d8w5m8xdsi1zzs0z16pbdx8j35cd1lsnh3kf1")))
12853 (home-page "https://github.com/mrkkrp/text-metrics")
12854 (synopsis "Calculate various string metrics efficiently")
12855 (description "This library provides tools to calculate various
12856string metrics efficiently.")
12857 (license license:bsd-3)))
12858
dddbc90c
RV
12859(define-public ghc-tf-random
12860 (package
12861 (name "ghc-tf-random")
12862 (version "0.5")
534d6caa 12863 (outputs '("out" "static" "doc"))
dddbc90c
RV
12864 (source
12865 (origin
12866 (method url-fetch)
12867 (uri (string-append
12868 "https://hackage.haskell.org/package/tf-random/tf-random-"
12869 version
12870 ".tar.gz"))
12871 (sha256
12872 (base32 "0445r2nns6009fmq0xbfpyv7jpzwv0snccjdg7hwj4xk4z0cwc1f"))))
12873 (build-system haskell-build-system)
12874 (inputs
12875 `(("ghc-primitive" ,ghc-primitive)
12876 ("ghc-random" ,ghc-random)))
12877 (home-page "https://hackage.haskell.org/package/tf-random")
12878 (synopsis "High-quality splittable pseudorandom number generator")
12879 (description "This package contains an implementation of a high-quality
12880splittable pseudorandom number generator. The generator is based on a
12881cryptographic hash function built on top of the ThreeFish block cipher. See
12882the paper \"Splittable Pseudorandom Number Generators Using Cryptographic
12883Hashing\" by Claessen, Pałka for details and the rationale of the design.")
12884 (license license:bsd-3)))
12885
12886(define-public ghc-th-abstraction
12887 (package
12888 (name "ghc-th-abstraction")
1188eabb 12889 (version "0.3.1.0")
dddbc90c
RV
12890 (source
12891 (origin
12892 (method url-fetch)
12893 (uri (string-append "https://hackage.haskell.org/package/"
12894 "th-abstraction/th-abstraction-"
12895 version ".tar.gz"))
12896 (sha256
12897 (base32
1188eabb 12898 "1f81w0gshvc816cf9qz0f19jsrzh6wpzmmy317xrgn63dv61p7jb"))))
dddbc90c
RV
12899 (build-system haskell-build-system)
12900 (home-page "https://github.com/glguy/th-abstraction")
12901 (synopsis "Nicer interface for reified information about data types")
12902 (description
12903 "This package normalizes variations in the interface for inspecting
12904datatype information via Template Haskell so that packages and support a
12905single, easier to use informational datatype while supporting many versions of
12906Template Haskell.")
12907 (license license:isc)))
12908
12909(define-public ghc-th-expand-syns
12910 (package
12911 (name "ghc-th-expand-syns")
8c766600 12912 (version "0.4.5.0")
dddbc90c
RV
12913 (source (origin
12914 (method url-fetch)
12915 (uri (string-append "https://hackage.haskell.org/package/"
12916 "th-expand-syns/th-expand-syns-"
12917 version ".tar.gz"))
12918 (sha256
12919 (base32
8c766600 12920 "1p4wfyycan8zsp9wi7npx36qwbfsbcgdyxi3ii51scf69dkrx42y"))))
dddbc90c
RV
12921 (build-system haskell-build-system)
12922 (inputs
12923 `(("ghc-syb" ,ghc-syb)))
12924 (home-page "https://hackage.haskell.org/package/th-expand-syns")
12925 (synopsis "Expands type synonyms in Template Haskell ASTs")
12926 (description
12927 "This package enables users to expand type synonyms in Template Haskell
12928@dfn{abstract syntax trees} (ASTs).")
12929 (license license:bsd-3)))
12930
12931(define-public ghc-th-lift
12932 (package
12933 (name "ghc-th-lift")
bd76b20a 12934 (version "0.8.0.1")
dddbc90c
RV
12935 (source (origin
12936 (method url-fetch)
12937 (uri (string-append "https://hackage.haskell.org/package/"
12938 "th-lift/th-lift-" version ".tar.gz"))
12939 (sha256
12940 (base32
bd76b20a 12941 "1a6qlbdg15cfr5rvl9g3blgwx4v1p0xic0pzv13zx165xbc36ld0"))))
dddbc90c
RV
12942 (build-system haskell-build-system)
12943 (inputs
12944 `(("ghc-th-abstraction" ,ghc-th-abstraction)))
12945 (home-page "https://github.com/mboes/th-lift")
12946 (synopsis "Derive Template Haskell's Lift class for datatypes")
12947 (description
12948 "This is a Haskell library to derive Template Haskell's Lift class for
12949datatypes.")
12950 (license license:bsd-3)))
12951
12952(define-public ghc-th-lift-instances
12953 (package
12954 (name "ghc-th-lift-instances")
d3db399e 12955 (version "0.1.14")
dddbc90c
RV
12956 (source
12957 (origin
12958 (method url-fetch)
12959 (uri (string-append "https://hackage.haskell.org/package/"
12960 "th-lift-instances/th-lift-instances-"
12961 version ".tar.gz"))
12962 (sha256
12963 (base32
d3db399e 12964 "0r1b4jnvcj64wp4hfccwkl4a70n1p1q7qzyx6ax7cmd8k961jz78"))))
dddbc90c
RV
12965 (build-system haskell-build-system)
12966 (inputs
12967 `(("ghc-th-lift" ,ghc-th-lift)
12968 ("ghc-vector" ,ghc-vector)
12969 ("ghc-quickcheck" ,ghc-quickcheck)))
12970 (home-page "https://github.com/bennofs/th-lift-instances/")
12971 (synopsis "Lift instances for template-haskell for common data types.")
12972 (description "Most data types in the Haskell platform do not have Lift
12973instances. This package provides orphan instances for @code{containers},
12974@code{text}, @code{bytestring} and @code{vector}.")
12975 (license license:bsd-3)))
12976
12977(define-public ghc-th-orphans
12978 (package
12979 (name "ghc-th-orphans")
882b23e2 12980 (version "0.13.9")
dddbc90c
RV
12981 (source (origin
12982 (method url-fetch)
12983 (uri (string-append "https://hackage.haskell.org/package/"
12984 "th-orphans/th-orphans-" version ".tar.gz"))
12985 (sha256
12986 (base32
882b23e2 12987 "1xj1gssv77hdx1r3ndg8k49v3ipj3a6r7crkyvx13jrps3m6ng1z"))))
dddbc90c
RV
12988 (build-system haskell-build-system)
12989 (inputs
12990 `(("ghc-th-lift" ,ghc-th-lift)
12991 ("ghc-th-lift-instances" ,ghc-th-lift-instances)
12992 ("ghc-th-reify-many" ,ghc-th-reify-many)
12993 ("ghc-generic-deriving" ,ghc-generic-deriving)))
12994 (native-inputs
12995 `(("ghc-hspec" ,ghc-hspec)))
12996 (home-page "https://hackage.haskell.org/package/th-orphans")
12997 (synopsis "Orphan instances for TH datatypes")
12998 (description
12999 "This package provides orphan instances for Template Haskell datatypes. In particular,
13000instances for @code{Ord} and @code{Lift}, as well as a few missing @code{Show}
13001and @code{Eq} instances. These instances used to live in the haskell-src-meta
13002package, and that's where the version number started.")
13003 (license license:bsd-3)))
13004
20c440ea
JS
13005(define-public ghc-these
13006 (package
13007 (name "ghc-these")
13008 (version "1.0.1")
13009 (source
13010 (origin
13011 (method url-fetch)
13012 (uri (string-append
13013 "https://hackage.haskell.org/package/these/these-"
13014 version
13015 ".tar.gz"))
13016 (sha256
13017 (base32
13018 "1k0pi65g7cm9hzdw6my6bzz2zvddkmj1qs45ymqmi316bpiixk3r"))))
13019 (build-system haskell-build-system)
13020 (inputs
13021 `(("ghc-base-compat" ,ghc-base-compat)
13022 ("ghc-hashable" ,ghc-hashable)
13023 ("ghc-aeson" ,ghc-aeson)
13024 ("ghc-unordered-containers" ,ghc-unordered-containers)
13025 ("ghc-assoc" ,ghc-assoc)
13026 ("ghc-semigroupoids" ,ghc-semigroupoids)
13027 ("ghc-quickcheck" ,ghc-quickcheck)))
13028 (arguments
13029 `(#:cabal-revision
13030 ("1"
13031 "0923r86fnmgpx0msm68aszirh2n19nn5bccgjxfh2146jw4z7w3z")))
13032 (home-page
13033 "https://github.com/isomorphism/these")
13034 (synopsis "Either-or-both data type")
13035 (description
13036 "This package provides a data type @code{These a b} which can
13037hold a value of either type or values of each type. This is usually
13038thought of as an \"inclusive or\" type (contrasting @code{Either a b} as
13039\"exclusive or\") or as an \"outer join\" type (contrasting @code{(a, b)}
13040as \"inner join\").
13041
13042@code{data These a b = This a | That b | These a b}
13043
13044Since version 1, this package was split into parts:
13045
13046@itemize
13047@item
13048https://hackage.haskell.org/package/semialign For @code{Align} and
13049@code{Zip} type-classes.
13050@item
13051https://hackage.haskell.org/package/semialign-indexed For
13052@code{SemialignWithIndex} class, providing @code{ialignWith} and
13053@code{izipWith}
13054@item
13055https://hackage.haskell.org/package/these-lens For lens combinators.
13056@item
13057http://hackage.haskell.org/package/monad-chronicle For transformers
13058variant of @code{These}.
13059@end itemize")
13060 (license license:bsd-3)))
13061
dddbc90c
RV
13062(define-public ghc-threads
13063 (package
13064 (name "ghc-threads")
13065 (version "0.5.1.6")
13066 (source
13067 (origin
13068 (method url-fetch)
13069 (uri (string-append "https://hackage.haskell.org/package/"
13070 "threads/threads-" version ".tar.gz"))
13071 (sha256
13072 (base32
13073 "0bjnjhnq3km6xqk0fn1fgyz5xdw4h6lylbwwbcmkkfzwcz0c76hk"))))
13074 (build-system haskell-build-system)
13075 (native-inputs
13076 `(("ghc-concurrent-extra" ,ghc-concurrent-extra)
13077 ("ghc-hunit" ,ghc-hunit)
13078 ("ghc-test-framework" ,ghc-test-framework)
13079 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)))
13080 (home-page "https://github.com/basvandijk/threads")
13081 (synopsis "Fork threads and wait for their result")
13082 (description "This package provides functions to fork threads and
13083wait for their result, whether it's an exception or a normal value.
13084Besides waiting for the termination of a single thread this package also
13085provides functions to wait for a group of threads to terminate. This
bbf8bf31
RV
13086package is similar to the @code{threadmanager}, @code{async} and
13087@code{spawn} packages. The advantages of this package are:
13088
dddbc90c
RV
13089@itemize
13090@item Simpler API.
13091@item More efficient in both space and time.
13092@item No space-leak when forking a large number of threads.
13093@item Correct handling of asynchronous exceptions.
13094@item GHC specific functionality like @code{forkOn} and
13095@code{forkIOWithUnmask}.
13096@end itemize")
13097 (license license:bsd-3)))
13098
13099(define-public ghc-th-reify-many
13100 (package
13101 (name "ghc-th-reify-many")
32d4a6ae 13102 (version "0.1.9")
dddbc90c
RV
13103 (source (origin
13104 (method url-fetch)
13105 (uri (string-append "https://hackage.haskell.org/package/"
13106 "th-reify-many/th-reify-many-"
13107 version ".tar.gz"))
13108 (sha256
13109 (base32
32d4a6ae 13110 "0hxf56filzqnyrc8q7766vai80y6cgrrbrczx6n93caskl1dv2gq"))))
dddbc90c
RV
13111 (build-system haskell-build-system)
13112 (inputs
13113 `(("ghc-safe" ,ghc-safe)
13114 ("ghc-th-expand-syns" ,ghc-th-expand-syns)))
13115 (home-page "https://github.com/mgsloan/th-reify-many")
13116 (synopsis "Recurseively reify template haskell datatype info")
13117 (description
13118 "th-reify-many provides functions for recursively reifying top level
13119declarations. The main intended use case is for enumerating the names of
13120datatypes reachable from an initial datatype, and passing these names to some
13121function which generates instances.")
13122 (license license:bsd-3)))
13123
75cfc9a2
TS
13124(define-public ghc-time-compat
13125 (package
13126 (name "ghc-time-compat")
13127 (version "1.9.2.2")
13128 (source
13129 (origin
13130 (method url-fetch)
13131 (uri (string-append "https://hackage.haskell.org/package/"
13132 "time-compat/time-compat-" version ".tar.gz"))
13133 (sha256
13134 (base32
13135 "05va0rqs759vbridbcl6hksp967j9anjvys8vx72fnfkhlrn2s52"))))
13136 (build-system haskell-build-system)
13137 (inputs
13138 `(("ghc-base-orphans" ,ghc-base-orphans)))
13139 (native-inputs
13140 `(("ghc-hunit" ,ghc-hunit)
13141 ("ghc-base-compat" ,ghc-base-compat)
13142 ("ghc-quickcheck" ,ghc-quickcheck)
13143 ("ghc-tagged" ,ghc-tagged)
13144 ("ghc-tasty" ,ghc-tasty)
13145 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
13146 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
13147 (arguments
13148 `(#:cabal-revision
13149 ("1" "0k8ph4sydaiqp8dav4if6hpiaq8h1xsr93khmdr7a1mmfwdxr64r")))
13150 (home-page "https://github.com/phadej/time-compat")
13151 (synopsis "Compatibility package for time")
a8d73e69 13152 (description "This package tries to compat as many @code{time}
75cfc9a2
TS
13153features as possible.")
13154 (license license:bsd-3)))
13155
dddbc90c
RV
13156(define-public ghc-time-locale-compat
13157 (package
13158 (name "ghc-time-locale-compat")
13159 (version "0.1.1.5")
13160 (source
13161 (origin
13162 (method url-fetch)
13163 (uri (string-append "https://hackage.haskell.org/package/"
13164 "time-locale-compat/time-locale-compat-"
13165 version ".tar.gz"))
13166 (sha256
13167 (base32
13168 "0b2hmj8wwrfkndwzgm11qr496ca2ahwdxcj3m0ii91bxvrk1bzq7"))))
13169 (build-system haskell-build-system)
13170 (inputs `(("ghc-old-locale" ,ghc-old-locale)))
13171 (home-page "https://github.com/khibino/haskell-time-locale-compat")
13172 (synopsis "Compatibility of TimeLocale between old-locale and time-1.5")
13173 (description "This package contains a wrapped name module for
13174@code{TimeLocale}.")
13175 (license license:bsd-3)))
13176
c022a4d4
TS
13177(define-public ghc-time-manager
13178 (package
13179 (name "ghc-time-manager")
13180 (version "0.0.0")
13181 (source
13182 (origin
13183 (method url-fetch)
13184 (uri (string-append "https://hackage.haskell.org/package/"
13185 "time-manager/time-manager-" version ".tar.gz"))
13186 (sha256
13187 (base32
13188 "1nzwj0fxz370ks6vr1sylcidx33rnqq45y3q9yv9n4dj43nid9lh"))))
13189 (build-system haskell-build-system)
13190 (inputs
13191 `(("ghc-auto-update" ,ghc-auto-update)))
13192 (home-page "https://github.com/yesodweb/wai")
13193 (synopsis "Scalable timer")
13194 (description "This library contains scalable timer functions provided by a
13195timer manager.")
13196 (license license:expat)))
13197
7bbfa392
JS
13198(define-public ghc-timeit
13199 (package
13200 (name "ghc-timeit")
13201 (version "2.0")
13202 (source
13203 (origin
13204 (method url-fetch)
13205 (uri
13206 (string-append
13207 "https://hackage.haskell.org/package/timeit/timeit-"
13208 version ".tar.gz"))
13209 (sha256
13210 (base32
13211 "1sliqpvl501rlcj6s0lhmsf5ym24j4h881wzc1f1wdyvg3jz8kd1"))))
13212 (build-system haskell-build-system)
13213 (home-page "https://github.com/merijn/timeit")
13214 (synopsis "Time monadic computations with an IO base")
13215 (description "This package provides a simple wrapper to show the
13216used CPU time of monadic computation with an IO base.")
13217 (license license:bsd-3)))
13218
2ed8bd2d
JS
13219(define-public ghc-timezone-series
13220 (package
13221 (name "ghc-timezone-series")
13222 (version "0.1.9")
13223 (source
13224 (origin
13225 (method url-fetch)
13226 (uri
13227 (string-append
13228 "mirror://hackage/package/timezone-series/timezone-series-"
13229 version ".tar.gz"))
13230 (sha256
13231 (base32
13232 "1blwgnyzqn917rgqkl4dncv9whv3xmk0lav040qq0214vksmvlz5"))))
13233 (build-system haskell-build-system)
13234 (home-page "https://archives.haskell.org/projects.haskell.org/time-ng/")
13235 (synopsis "Enhanced timezone handling for Time")
13236 (description
13237 "This package endows @code{Data.Time}, from the time package, with several
13238data types and functions for enhanced processing of timezones. For one way to
13239create timezone series, see the ghc-timezone-olson package.")
13240 (license license:bsd-3)))
13241
ff0f5786
JS
13242(define-public ghc-timezone-olson
13243 (package
13244 (name "ghc-timezone-olson")
13245 (version "0.1.9")
13246 (source
13247 (origin
13248 (method url-fetch)
13249 (uri
13250 (string-append
13251 "mirror://hackage/package/timezone-olson/timezone-olson-"
13252 version ".tar.gz"))
13253 (sha256
13254 (base32
13255 "05abywx1nrcaz0nqzfy4zw62bc5qd7pdfnjvv4drxkwv084ha8rj"))))
13256 (build-system haskell-build-system)
13257 (inputs
13258 `(("ghc-timezone-series" ,ghc-timezone-series)
13259 ("ghc-extensible-exceptions" ,ghc-extensible-exceptions)))
13260 (home-page "https://archives.haskell.org/projects.haskell.org/time-ng/")
13261 (synopsis "Parser and renderer for binary Olson timezone files")
13262 (description
13263 "A parser and renderer for binary Olson timezone files whose format
13264is specified by the tzfile(5) man page on Unix-like systems. For more
13265information about this format, see
13266@url{http://www.iana.org/time-zones/repository/tz-link.html}. Functions
13267are provided for converting the parsed data into @code{TimeZoneSeries}
13268objects from the timezone-series package.")
13269 (license license:bsd-3)))
13270
dddbc90c
RV
13271(define-public ghc-tldr
13272 (package
13273 (name "ghc-tldr")
871ceb31 13274 (version "0.4.0.2")
dddbc90c
RV
13275 (source
13276 (origin
13277 (method url-fetch)
13278 (uri (string-append
13279 "https://hackage.haskell.org/package/tldr/tldr-"
13280 version
13281 ".tar.gz"))
13282 (sha256
13283 (base32
871ceb31 13284 "1zy9yyg7bxiyz1prkvrscggsb9p0f8y0nqxxxzlgzvnh2nmqf8f2"))))
dddbc90c
RV
13285 (build-system haskell-build-system)
13286 (inputs
13287 `(("ghc-cmark" ,ghc-cmark)
13288 ("ghc-optparse-applicative" ,ghc-optparse-applicative)
13289 ("ghc-typed-process" ,ghc-typed-process)
13290 ("ghc-semigroups" ,ghc-semigroups)))
13291 (native-inputs
13292 `(("ghc-tasty" ,ghc-tasty)
13293 ("ghc-tasty-golden" ,ghc-tasty-golden)))
13294 (home-page "https://github.com/psibi/tldr-hs#readme")
13295 (synopsis "Haskell tldr client")
13296 (description "This package provides the @command{tldr} command and a
13297Haskell client library allowing users to update and view @code{tldr} pages
13298from a shell. The @code{tldr} pages are a community effort to simplify the
13299man pages with practical examples.")
13300 (license license:bsd-3)))
13301
460e4e42
JS
13302(define-public ghc-transformers
13303 (package
13304 (name "ghc-transformers")
13305 (version "0.5.6.2")
13306 (source
13307 (origin
13308 (method url-fetch)
13309 (uri (string-append
13310 "mirror://hackage/package/transformers/transformers-"
13311 version
13312 ".tar.gz"))
13313 (sha256
13314 (base32
13315 "0v66j5k0xqk51pmca55wq192qyw2p43s2mgxlz4f95q2c1fpjs5n"))))
13316 (build-system haskell-build-system)
13317 (home-page
13318 "http://hackage.haskell.org/package/transformers")
13319 (synopsis "Concrete functor and monad transformers")
13320 (description
13321 "Transformers provides functor and monad transformers, inspired by the
13322paper \"Functional Programming with Overloading and Higher-Order
13323Polymorphism\", by Mark P Jones, in Advanced School of Functional Programming,
133241995 @url{http://web.cecs.pdx.edu/~mpj/pubs/springschool.html}.
13325
13326This package contains:
13327@itemize
13328@item the monad transformer class (in @code{Control.Monad.Trans.Class})
13329@item concrete functor and monad transformers, each with associated operations
13330and functions to lift operations associated with other transformers.
13331@end itemize
13332
13333This package can be used on its own in portable Haskell code, in which case
13334operations need to be manually lifted through transformer stacks (see
13335@code{Control.Monad.Trans.Class} for some examples). Alternatively, it can be
13336used with the non-portable monad classes in the mtl or monads-tf packages,
13337which automatically lift operations introduced by monad transformers through
13338other transformers.")
13339 (license license:bsd-3)))
13340
dddbc90c
RV
13341(define-public ghc-transformers-base
13342 (package
13343 (name "ghc-transformers-base")
13344 (version "0.4.5.2")
13345 (source
13346 (origin
13347 (method url-fetch)
13348 (uri (string-append
13349 "https://hackage.haskell.org/package/transformers-base/transformers-base-"
13350 version
13351 ".tar.gz"))
13352 (sha256
13353 (base32
13354 "1s256bi0yh0x2hp2gwd30f3mg1cv53zz397dv1yhfsnfzmihrj6h"))))
13355 (build-system haskell-build-system)
13356 (inputs
13357 `(("ghc-transformers-compat" ,ghc-transformers-compat)))
13358 (home-page
13359 "https://hackage.haskell.org/package/transformers-compat")
13360 (synopsis
13361 "Backported transformer library")
13362 (description
13363 "Backported versions of types that were added to transformers in
13364transformers 0.3 and 0.4 for users who need strict transformers 0.2 or 0.3
13365compatibility to run on old versions of the platform.")
13366 (license license:bsd-3)))
13367
13368(define-public ghc-transformers-compat
13369 (package
13370 (name "ghc-transformers-compat")
1c9c4d58 13371 (version "0.6.5")
dddbc90c
RV
13372 (source
13373 (origin
13374 (method url-fetch)
13375 (uri (string-append
13376 "https://hackage.haskell.org/package/transformers-compat"
13377 "/transformers-compat-" version ".tar.gz"))
13378 (sha256
13379 (base32
1c9c4d58 13380 "02v2fjbvcrlpvhcsssap8dy8y9pp95jykrlc5arm39sxa48wyrys"))))
dddbc90c
RV
13381 (build-system haskell-build-system)
13382 (home-page "https://github.com/ekmett/transformers-compat/")
13383 (synopsis "Small compatibility shim between transformers 0.3 and 0.4")
13384 (description "This package includes backported versions of types that were
13385added to transformers in transformers 0.3 and 0.4 for users who need strict
13386transformers 0.2 or 0.3 compatibility to run on old versions of the platform,
13387but also need those types.")
13388 (license license:bsd-3)))
13389
13390(define-public ghc-tree-diff
13391 (package
13392 (name "ghc-tree-diff")
b4e26067 13393 (version "0.1")
dddbc90c
RV
13394 (source
13395 (origin
13396 (method url-fetch)
13397 (uri (string-append
13398 "https://hackage.haskell.org/package/tree-diff/tree-diff-"
13399 version
13400 ".tar.gz"))
13401 (sha256
13402 (base32
b4e26067 13403 "1156nbqn0pn9lp4zjsy4vv5g5wmy4zxwmbqdgvq349rydynh3ng3"))))
dddbc90c 13404 (build-system haskell-build-system)
dddbc90c
RV
13405 (inputs
13406 `(("ghc-aeson" ,ghc-aeson)
13407 ("ghc-ansi-wl-pprint" ,ghc-ansi-wl-pprint)
13408 ("ghc-ansi-terminal" ,ghc-ansi-terminal)
13409 ("ghc-base-compat" ,ghc-base-compat)
b4e26067 13410 ("ghc-bytestring-builder" ,ghc-bytestring-builder)
dddbc90c 13411 ("ghc-hashable" ,ghc-hashable)
dddbc90c
RV
13412 ("ghc-parsers" ,ghc-parsers)
13413 ("ghc-quickcheck" ,ghc-quickcheck)
13414 ("ghc-scientific" ,ghc-scientific)
13415 ("ghc-tagged" ,ghc-tagged)
13416 ("ghc-unordered-containers" ,ghc-unordered-containers)
13417 ("ghc-uuid-types" ,ghc-uuid-types)
13418 ("ghc-vector" ,ghc-vector)))
13419 (native-inputs
13420 `(("ghc-base-compat" ,ghc-base-compat)
13421 ("ghc-quickcheck" ,ghc-quickcheck)
13422 ("ghc-ansi-terminal" ,ghc-ansi-terminal)
13423 ("ghc-ansi-wl-pprint" ,ghc-ansi-wl-pprint)
13424 ("ghc-trifecta" ,ghc-trifecta)
13425 ("ghc-tasty" ,ghc-tasty)
13426 ("ghc-tasty-golden" ,ghc-tasty-golden)
13427 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
13428 (home-page "https://github.com/phadej/tree-diff")
13429 (synopsis "Compute difference between (expression) trees")
13430 (description "This Haskell library provides a function for computing
13431the difference between (expression) trees. It also provides a way to
13432compute the difference between arbitrary abstract datatypes (ADTs) using
13433@code{Generics}-derivable helpers.")
13434 (license license:bsd-3)))
13435
13436(define-public ghc-trifecta
13437 (package
13438 (name "ghc-trifecta")
13439 (version "2")
13440 (source (origin
13441 (method url-fetch)
13442 (uri (string-append
13443 "https://hackage.haskell.org/package/trifecta/"
13444 "trifecta-" version ".tar.gz"))
13445 (sha256
13446 (base32
13447 "0hznd8i65s81xy13i2qc7cvipw3lfb2yhkv53apbdsh6sbljz5sk"))))
13448 (build-system haskell-build-system)
5ffe8cfd
TS
13449 (arguments
13450 `(#:tests? #f ; doctest suite fails to build on i686
13451 #:cabal-revision
13452 ("4" "0xbwyvwl6f2zylk60f2akwgq03qv49113xil7b1z1s3vlwbn5aj1")))
dddbc90c
RV
13453 (inputs
13454 `(("ghc-reducers" ,ghc-reducers)
13455 ("ghc-semigroups" ,ghc-semigroups)
13456 ("ghc-ansi-wl-pprint" ,ghc-ansi-wl-pprint)
13457 ("ghc-ansi-terminal" ,ghc-ansi-terminal)
13458 ("ghc-blaze-builder" ,ghc-blaze-builder)
13459 ("ghc-blaze-html" ,ghc-blaze-html)
13460 ("ghc-blaze-markup" ,ghc-blaze-markup)
13461 ("ghc-charset" ,ghc-charset)
13462 ("ghc-comonad" ,ghc-comonad)
13463 ("ghc-fingertree" ,ghc-fingertree)
13464 ("ghc-hashable" ,ghc-hashable)
13465 ("ghc-lens" ,ghc-lens)
13466 ("ghc-parsers" ,ghc-parsers)
13467 ("ghc-profunctors" ,ghc-profunctors)
13468 ("ghc-unordered-containers" ,ghc-unordered-containers)
13469 ("ghc-utf8-string" ,ghc-utf8-string)))
13470 (native-inputs
13471 `(("cabal-doctest" ,cabal-doctest)
13472 ("ghc-doctest" ,ghc-doctest)
13473 ("ghc-quickcheck" ,ghc-quickcheck)))
13474 (home-page "https://github.com/ekmett/trifecta/")
13475 (synopsis "Parser combinator library with convenient diagnostics")
13476 (description "Trifecta is a modern parser combinator library for Haskell,
13477with slicing and Clang-style colored diagnostics.")
13478 (license license:bsd-3)))
13479
13480(define-public ghc-tuple-th
13481 (package
13482 (name "ghc-tuple-th")
13483 (version "0.2.5")
13484 (source
13485 (origin
13486 (method url-fetch)
13487 (uri (string-append "https://hackage.haskell.org/package/"
13488 "tuple-th-" version "/"
13489 "tuple-th-" version ".tar.gz"))
13490 (sha256
13491 (base32
13492 "1mrl4vvxmby7sf1paf7hklzidnr6wq55822i73smqyz0xpf3gsjn"))))
13493 (build-system haskell-build-system)
13494 (home-page "https://github.com/DanielSchuessler/tuple-th")
13495 (synopsis "Generate utility functions for tuples of statically known size
13496for Haskell")
13497 (description "This Haskell package contains Template Haskell functions for
13498generating functions similar to those in @code{Data.List} for tuples of
13499statically known size.")
13500 (license license:bsd-3)))
13501
9f776fe2
JS
13502(define-public ghc-turtle
13503 (package
13504 (name "ghc-turtle")
13505 (version "1.5.15")
13506 (source
13507 (origin
13508 (method url-fetch)
13509 (uri (string-append
13510 "mirror://hackage/package/turtle/turtle-"
13511 version
13512 ".tar.gz"))
13513 (sha256
13514 (base32
13515 "0yckgsc2a4g5x867gni80ldp226bsnhncfbil4ql6v2zwm4r8p7f"))))
13516 (build-system haskell-build-system)
13517 (inputs
13518 `(("ghc-ansi-wl-pprint" ,ghc-ansi-wl-pprint)
13519 ("ghc-async" ,ghc-async)
13520 ("ghc-clock" ,ghc-clock)
13521 ("ghc-exceptions" ,ghc-exceptions)
13522 ("ghc-foldl" ,ghc-foldl)
13523 ("ghc-hostname" ,ghc-hostname)
13524 ("ghc-managed" ,ghc-managed)
13525 ("ghc-semigroups" ,ghc-semigroups)
13526 ("ghc-system-filepath" ,ghc-system-filepath)
13527 ("ghc-system-fileio" ,ghc-system-fileio)
13528 ("ghc-streaming-commons" ,ghc-streaming-commons)
13529 ("ghc-temporary" ,ghc-temporary)
13530 ("ghc-optparse-applicative" ,ghc-optparse-applicative)
13531 ("ghc-optional-args" ,ghc-optional-args)
13532 ("ghc-unix-compat" ,ghc-unix-compat)))
13533 (native-inputs
13534 `(("ghc-doctest" ,ghc-doctest)
13535 ("ghc-fail" ,ghc-fail)))
13536 (arguments
13537 `(#:cabal-revision
13538 ("1" "02q1rv7zx31xz9wnmcqwd4w3iw7623p07iyi21zr0cqlignic5pg")))
13539 (home-page
13540 "http://hackage.haskell.org/package/turtle")
13541 (synopsis "Shell programming, Haskell-style")
13542 (description
13543 "Turtle is a reimplementation of the Unix command line environment in
13544Haskell so that you can use Haskell as both a shell and a scripting
13545language. Features include:
13546
13547@itemize
13548@item Batteries included: Command an extended suite of predefined utilities.
13549@item Interoperability: You can still run external shell commands.
13550@item Portability: Works on Windows, OS X, and Linux.
13551@item Exception safety: Safely acquire and release resources.
13552@item Streaming: Transform or fold command output in constant space.
13553@item Patterns: Use typed regular expressions that can parse structured values.
13554@item Formatting: Type-safe printf-style text formatting.
13555@item Modern: Supports text and system-filepath.
13556@end itemize
13557
13558Read \"Turtle.Tutorial\" for a detailed tutorial or \"Turtle.Prelude\" for a
13559quick-start guide. Turtle is designed to be beginner-friendly, but as a
13560result lacks certain features, like tracing commands. If you feel comfortable
13561using turtle then you should also check out the Shelly library which provides
13562similar functionality.")
13563 (license license:bsd-3)))
13564
dddbc90c
RV
13565(define-public ghc-typed-process
13566 (package
13567 (name "ghc-typed-process")
72fb84a5 13568 (version "0.2.6.0")
dddbc90c
RV
13569 (source
13570 (origin
13571 (method url-fetch)
13572 (uri (string-append "https://hackage.haskell.org/package/"
13573 "typed-process/typed-process-"
13574 version ".tar.gz"))
13575 (sha256
13576 (base32
72fb84a5 13577 "1cf2pfym8zdxvvy7xv72ixj7wy3rjrdss6f57k1ysgs66cgsi8ii"))))
dddbc90c
RV
13578 (build-system haskell-build-system)
13579 (inputs
72fb84a5
TS
13580 `(("ghc-async" ,ghc-async)
13581 ("ghc-unliftio-core" ,ghc-unliftio-core)))
dddbc90c
RV
13582 (native-inputs
13583 `(("ghc-base64-bytestring" ,ghc-base64-bytestring)
13584 ("ghc-hspec" ,ghc-hspec)
13585 ("hspec-discover" ,hspec-discover)
13586 ("ghc-temporary" ,ghc-temporary)))
13587 (home-page "https://haskell-lang.org/library/typed-process")
13588 (synopsis "Run external processes with strong typing of streams")
13589 (description
13590 "This library provides the ability to launch and interact with external
13591processes. It wraps around the @code{process} library, and intends to improve
13592upon it.")
13593 (license license:expat)))
13594
d392f803
AG
13595(define-public ghc-unagi-chan
13596 (package
13597 (name "ghc-unagi-chan")
13598 (version "0.4.1.2")
13599 (source
13600 (origin
13601 (method url-fetch)
13602 (uri (string-append "https://hackage.haskell.org/package/unagi-chan"
13603 "/unagi-chan-" version ".tar.gz"))
13604 (sha256
13605 (base32
13606 "1lnl5n4jnjmm4chp461glcwkrrw63rjz3fvprwxcy3lkpbkrqvgn"))))
13607 (build-system haskell-build-system)
13608 (inputs
13609 `(("ghc-atomic-primops" ,ghc-atomic-primops)
13610 ("ghc-primitive" ,ghc-primitive)))
13611 (arguments
13612 `(#:tests? #f ; FIXME: Tests expect primitive 0.7
13613 #:cabal-revision
13614 ("1"
13615 "09pqi867wskwgc5lpn197f895mbn1174ydgllvcppcsmrz2b6yr6")))
3ef91e15 13616 (home-page "https://hackage.haskell.org/package/unagi-chan")
d392f803
AG
13617 (synopsis "Fast concurrent queues with a Chan-like API, and more")
13618 (description
13619 "This library provides implementations of concurrent FIFO queues (for
13620both general boxed and primitive unboxed values) that are fast, perform well
13621under contention, and offer a Chan-like interface. The library may be of
13622limited usefulness outside of x86 architectures where the fetch-and-add
13623instruction is not available.")
13624 (license license:bsd-3)))
13625
dddbc90c
RV
13626(define-public ghc-unbounded-delays
13627 (package
13628 (name "ghc-unbounded-delays")
13629 (version "0.1.1.0")
13630 (source
13631 (origin
13632 (method url-fetch)
13633 (uri (string-append
13634 "https://hackage.haskell.org/package/unbounded-delays/unbounded-delays-"
13635 version
13636 ".tar.gz"))
13637 (sha256
13638 (base32
13639 "1ir9fghbrc214c97bwafk5ck6cacxz1pdnq4i18p604d1b8zg9wa"))))
13640 (build-system haskell-build-system)
13641 (home-page "https://github.com/basvandijk/unbounded-delays")
13642 (synopsis "Unbounded thread delays and timeouts")
13643 (description "The @code{threadDelay} and @code{timeout} functions from the
13644Haskell base library use the bounded @code{Int} type for specifying the delay
13645or timeout period. This package provides alternative functions which use the
13646unbounded @code{Integer} type.")
13647 (license license:bsd-3)))
13648
13649(define-public ghc-unexceptionalio
13650 (package
13651 (name "ghc-unexceptionalio")
13652 (version "0.4.0")
13653 (source
13654 (origin
13655 (method url-fetch)
13656 (uri (string-append "https://hackage.haskell.org/package/"
13657 "unexceptionalio-" version "/" "unexceptionalio-"
13658 version ".tar.gz"))
13659 (sha256 (base32 "09gynk472l7nn5l2w320n4dwigwp0wh0shfp6dyw6r5h2jdxz18p"))))
13660 (build-system haskell-build-system)
13661 (home-page "https://github.com/singpolyma/unexceptionalio")
13662 (synopsis "IO without any non-error, synchronous exceptions")
13663 (description "When you've caught all the exceptions that can be
13664handled safely, this is what you're left with.")
13665 (license license:isc)))
13666
b69d4aa7
TS
13667(define-public ghc-unicode-transforms
13668 (package
13669 (name "ghc-unicode-transforms")
13670 (version "0.3.6")
13671 (source
13672 (origin
13673 (method url-fetch)
13674 (uri (string-append "https://hackage.haskell.org/package/"
13675 "unicode-transforms/unicode-transforms-"
13676 version ".tar.gz"))
13677 (sha256
13678 (base32
13679 "1akscvyssif4hki3g6hy0jmjyr8cqly1whzvzj0km2b3qh0x09l3"))))
13680 (build-system haskell-build-system)
13681 (inputs
13682 `(("ghc-bitarray" ,ghc-bitarray)))
13683 (native-inputs
13684 `(("ghc-quickcheck" ,ghc-quickcheck)
13685 ("ghc-getopt-generics" ,ghc-getopt-generics)
13686 ("ghc-split" ,ghc-split)))
13687 (home-page "https://github.com/composewell/unicode-transforms")
13688 (synopsis "Unicode normalization")
13689 (description "This library provides tools for fast Unicode 12.1.0
13690normalization in Haskell (normalization forms C, KC, D, and KD).")
13691 (license license:bsd-3)))
13692
dddbc90c
RV
13693(define-public ghc-union-find
13694 (package
13695 (name "ghc-union-find")
13696 (version "0.2")
13697 (source (origin
13698 (method url-fetch)
13699 (uri (string-append
13700 "https://hackage.haskell.org/package/union-find/union-find-"
13701 version ".tar.gz"))
13702 (sha256
13703 (base32
13704 "1v7hj42j9w6jlzi56jg8rh4p58gfs1c5dx30wd1qqvn0p0mnihp6"))))
13705 (build-system haskell-build-system)
13706 (home-page "https://github.com/nominolo/union-find")
13707 (synopsis "Efficient union and equivalence testing of sets")
13708 (description
13709 "The Union/Find algorithm implements these operations in (effectively)
13710constant-time:
13711@enumerate
13712@item Check whether two elements are in the same equivalence class.
13713@item Create a union of two equivalence classes.
13714@item Look up the descriptor of the equivalence class.
13715@end enumerate\n")
13716 (license license:bsd-3)))
13717
13718(define-public ghc-uniplate
13719 (package
13720 (name "ghc-uniplate")
13721 (version "1.6.12")
13722 (source
13723 (origin
13724 (method url-fetch)
13725 (uri (string-append
13726 "https://hackage.haskell.org/package/uniplate/uniplate-"
13727 version
13728 ".tar.gz"))
13729 (sha256
13730 (base32
13731 "1dx8f9aw27fz8kw0ad1nm6355w5rdl7bjvb427v2bsgnng30pipw"))))
13732 (build-system haskell-build-system)
13733 (inputs
13734 `(("ghc-syb" ,ghc-syb)
13735 ("ghc-hashable" ,ghc-hashable)
13736 ("ghc-unordered-containers" ,ghc-unordered-containers)))
f5d88758 13737 (home-page "https://github.com/ndmitchell/uniplate")
dddbc90c
RV
13738 (synopsis "Simple, concise and fast generic operations")
13739 (description "Uniplate is a library for writing simple and concise generic
13740operations. Uniplate has similar goals to the original Scrap Your Boilerplate
13741work, but is substantially simpler and faster.")
13742 (license license:bsd-3)))
13743
13744(define-public ghc-unix-compat
13745 (package
13746 (name "ghc-unix-compat")
bc82e9f5 13747 (version "0.5.2")
dddbc90c
RV
13748 (source
13749 (origin
13750 (method url-fetch)
13751 (uri (string-append
13752 "https://hackage.haskell.org/package/unix-compat/unix-compat-"
13753 version
13754 ".tar.gz"))
13755 (sha256
13756 (base32
bc82e9f5 13757 "1a8brv9fax76b1fymslzyghwa6ma8yijiyyhn12msl3i5x24x6k5"))))
dddbc90c
RV
13758 (build-system haskell-build-system)
13759 (home-page
13760 "https://github.com/jystic/unix-compat")
13761 (synopsis "Portable POSIX-compatibility layer")
13762 (description
13763 "This package provides portable implementations of parts of the unix
13764package. This package re-exports the unix package when available. When it
13765isn't available, portable implementations are used.")
13766 (license license:bsd-3)))
13767
13768(define-public ghc-unix-time
13769 (package
13770 (name "ghc-unix-time")
fad9cff2 13771 (version "0.4.7")
dddbc90c
RV
13772 (source
13773 (origin
13774 (method url-fetch)
13775 (uri (string-append
13776 "https://hackage.haskell.org/package/unix-time/unix-time-"
13777 version
13778 ".tar.gz"))
13779 (sha256
13780 (base32
fad9cff2 13781 "02fyh298lm8jsg52i3z0ikazwz477ljqjmhnqr2d88grmn5ky8qr"))))
dddbc90c
RV
13782 (build-system haskell-build-system)
13783 (arguments
13784 `(#:tests? #f)) ; FIXME: Test fails with "System.Time not found". This
13785 ; is weird, that should be provided by GHC 7.10.2.
13786 (inputs
13787 `(("ghc-old-time" ,ghc-old-time)
13788 ("ghc-old-locale" ,ghc-old-locale)))
13789 (home-page "https://hackage.haskell.org/package/unix-time")
13790 (synopsis "Unix time parser/formatter and utilities")
13791 (description "This library provides fast parsing and formatting utilities
13792for Unix time in Haskell.")
13793 (license license:bsd-3)))
13794
13795(define-public ghc-unliftio
13796 (package
13797 (name "ghc-unliftio")
a4084db1 13798 (version "0.2.12")
dddbc90c
RV
13799 (source
13800 (origin
13801 (method url-fetch)
13802 (uri (string-append
13803 "https://hackage.haskell.org/package/unliftio/unliftio-"
13804 version
13805 ".tar.gz"))
13806 (sha256
13807 (base32
a4084db1 13808 "02gy1zrxgzg4xmzm8lafsf1nyr3as1q20r8ld73xg3q7rkag9acg"))))
dddbc90c
RV
13809 (build-system haskell-build-system)
13810 (arguments `(#:tests? #f)) ; FIXME: hspec-discover not in PATH
2b3466de 13811 (outputs '("out" "static" "doc"))
dddbc90c
RV
13812 (inputs
13813 `(("ghc-async" ,ghc-async)
13814 ("ghc-unliftio-core" ,ghc-unliftio-core)))
13815 (native-inputs `(("ghc-hspec" ,ghc-hspec)))
13816 (home-page "https://github.com/fpco/unliftio")
13817 (synopsis "Provides MonadUnliftIO typecplass for unlifting monads to
13818IO (batteries included)")
13819 (description "This Haskell package provides the core @code{MonadUnliftIO}
13820typeclass, a number of common instances, and a collection of common functions
13821working with it.")
13822 (license license:expat)))
13823
13824(define-public ghc-unliftio-core
13825 (package
13826 (name "ghc-unliftio-core")
2ae42618 13827 (version "0.1.2.0")
dddbc90c
RV
13828 (source
13829 (origin
13830 (method url-fetch)
13831 (uri (string-append "https://hackage.haskell.org/package/"
13832 "unliftio-core-" version "/"
13833 "unliftio-core-" version ".tar.gz"))
13834 (sha256
13835 (base32
2ae42618 13836 "0y3siyx3drkw7igs380a87h8qfbbgcyxxlcnshp698hcc4yqphr4"))))
dddbc90c
RV
13837 (build-system haskell-build-system)
13838 (arguments
13839 `(#:cabal-revision
2ae42618 13840 ("2" "0jqrjjbgicx48wzcjxs1xmih48ay79rhmrz6081dldlfxynli6vz")))
dddbc90c
RV
13841 (home-page
13842 "https://github.com/fpco/unliftio/tree/master/unliftio-core#readme")
13843 (synopsis "The MonadUnliftIO typeclass for unlifting monads to IO")
13844 (description "This Haskell package provides the core @code{MonadUnliftIO}
13845typeclass, instances for base and transformers, and basic utility
13846functions.")
13847 (license license:expat)))
13848
13849(define-public ghc-unordered-containers
13850 (package
13851 (name "ghc-unordered-containers")
ca01f8d3 13852 (version "0.2.10.0")
534d6caa 13853 (outputs '("out" "static" "doc"))
dddbc90c
RV
13854 (source
13855 (origin
13856 (method url-fetch)
13857 (uri (string-append
13858 "https://hackage.haskell.org/package/unordered-containers"
13859 "/unordered-containers-" version ".tar.gz"))
13860 (sha256
13861 (base32
ca01f8d3 13862 "0wy5hfrs880hh8hvp648bl07ws777n3kkmczzdszr7papnyigwb5"))))
dddbc90c
RV
13863 (build-system haskell-build-system)
13864 (inputs
13865 `(("ghc-chasingbottoms" ,ghc-chasingbottoms)
13866 ("ghc-hunit" ,ghc-hunit)
13867 ("ghc-quickcheck" ,ghc-quickcheck)
13868 ("ghc-test-framework" ,ghc-test-framework)
13869 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
13870 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)
13871 ("ghc-hashable" ,ghc-hashable)))
13872 (home-page
13873 "https://github.com/tibbe/unordered-containers")
13874 (synopsis
13875 "Efficient hashing-based container types")
13876 (description
13877 "Efficient hashing-based container types. The containers have been
13878optimized for performance critical use, both in terms of large data quantities
13879and high speed.")
13880 (license license:bsd-3)))
13881
13882(define-public ghc-unordered-containers-bootstrap
13883 (package
13884 (inherit ghc-unordered-containers)
13885 (name "ghc-unordered-containers-bootstrap")
13886 (arguments `(#:tests? #f))
13887 (inputs
13888 `(("ghc-hashable" ,ghc-hashable-bootstrap)))
799d8d3c 13889 (properties '((hidden? #t)))))
dddbc90c 13890
a52f4c57
JS
13891(define-public ghc-unsafe
13892 (package
13893 (name "ghc-unsafe")
13894 (version "0.0")
13895 (source
13896 (origin
13897 (method url-fetch)
13898 (uri
13899 (string-append
13900 "https://hackage.haskell.org/package/unsafe/unsafe-"
13901 version ".tar.gz"))
13902 (sha256
13903 (base32
13904 "0hc6xr1i3hkz25gdgfx1jqgpsc9mwa05bkfynp0mcfdlyz6782nz"))))
13905 (build-system haskell-build-system)
13906 (home-page "https://hackage.haskell.org/package/unsafe")
13907 (synopsis "Unified interface to unsafe functions")
13908 (description "Safe Haskell introduced the notion of safe and unsafe
13909modules. In order to make as many as possible modules ``safe'', the
13910well-known unsafe functions were moved to distinguished modules. This
13911makes it hard to write packages that work with both old and new versions
13912of GHC. This package provides a single module System.Unsafe that
13913exports the unsafe functions from the base package. It provides them in
13914a style ready for qualification, that is, you should import them by
13915@code{import qualified System.Unsafe as Unsafe}.")
13916 (license license:bsd-3)))
13917
dddbc90c
RV
13918(define-public ghc-uri-bytestring
13919 (package
13920 (name "ghc-uri-bytestring")
d35ffd39 13921 (version "0.3.2.2")
dddbc90c
RV
13922 (source
13923 (origin
13924 (method url-fetch)
13925 (uri (string-append "https://hackage.haskell.org/package/"
13926 "uri-bytestring-" version "/"
13927 "uri-bytestring-" version ".tar.gz"))
13928 (sha256
13929 (base32
d35ffd39 13930 "0spzv3mwlpxiamd7347sxwcy2xri16ak1y7p1v4fisnvq4jprm67"))))
dddbc90c
RV
13931 (build-system haskell-build-system)
13932 (inputs `(("ghc-attoparsec" ,ghc-attoparsec)
dddbc90c
RV
13933 ("ghc-blaze-builder" ,ghc-blaze-builder)
13934 ("ghc-th-lift-instances" ,ghc-th-lift-instances)))
d35ffd39 13935 (native-inputs `(("ghc-hunit" ,ghc-hunit)
dddbc90c
RV
13936 ("ghc-tasty" ,ghc-tasty)
13937 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
d35ffd39
TS
13938 ("ghc-hedgehog" ,ghc-hedgehog)
13939 ("ghc-tasty-hedgehog" ,ghc-tasty-hedgehog)
dddbc90c 13940 ("ghc-base-compat" ,ghc-base-compat)
dddbc90c 13941 ("ghc-semigroups" ,ghc-semigroups)
d35ffd39 13942 ("ghc-safe" ,ghc-safe)))
dddbc90c
RV
13943 (home-page "https://github.com/Soostone/uri-bytestring")
13944 (synopsis "Haskell URI parsing as ByteStrings")
13945 (description "This Haskell package aims to be an RFC3986 compliant URI
13946parser that uses ByteStrings for parsing and representing the URI data.")
13947 (license license:bsd-3)))
13948
d7ad0823
JS
13949(define-public ghc-utf8-light
13950 (package
13951 (name "ghc-utf8-light")
13952 (version "0.4.2")
13953 (source
13954 (origin
13955 (method url-fetch)
13956 (uri (string-append
13957 "mirror://hackage/package/utf8-light/utf8-light-"
13958 version
13959 ".tar.gz"))
13960 (sha256
13961 (base32
13962 "0rwyc5z331yfnm4hpx0sph6i1zvkd1z10vvglhnp0vc9wy644k0q"))))
13963 (build-system haskell-build-system)
13964 (home-page
13965 "http://hackage.haskell.org/package/utf8-light")
13966 (synopsis "Lightweight unicode support for Haskell")
13967 (description
13968 "This package profides a class for encoding and decoding UTF8 strings
13969with instances for several common types. It also includes several functions
13970for working with UTF8. It aims to be lightweight, depending only on Base and
13971including only one module.")
13972 (license license:bsd-3)))
13973
dddbc90c
RV
13974(define-public ghc-utf8-string
13975 (package
13976 (name "ghc-utf8-string")
13977 (version "1.0.1.1")
13978 (source
13979 (origin
13980 (method url-fetch)
13981 (uri (string-append
13982 "https://hackage.haskell.org/package/utf8-string/utf8-string-"
13983 version
13984 ".tar.gz"))
13985 (sha256
13986 (base32 "0h7imvxkahiy8pzr8cpsimifdfvv18lizrb33k6mnq70rcx9w2zv"))))
13987 (build-system haskell-build-system)
13988 (arguments
13989 `(#:cabal-revision
13990 ("3" "02vhj5gykkqa2dyn7s6gn8is1b5fdn9xcqqvlls268g7cpv6rk38")))
13991 (home-page "https://github.com/glguy/utf8-string/")
13992 (synopsis "Support for reading and writing UTF8 Strings")
13993 (description
13994 "A UTF8 layer for Strings. The utf8-string package provides operations
13995for encoding UTF8 strings to Word8 lists and back, and for reading and writing
13996UTF8 without truncation.")
13997 (license license:bsd-3)))
13998
13999(define-public ghc-utility-ht
14000 (package
14001 (name "ghc-utility-ht")
14002 (version "0.0.14")
14003 (home-page "https://hackage.haskell.org/package/utility-ht")
14004 (source
14005 (origin
14006 (method url-fetch)
14007 (uri (string-append home-page "/utility-ht-" version ".tar.gz"))
14008 (sha256
14009 (base32 "1a7bgk7wv7sqbxbiv7kankiimr3wij7zdm7s83zwsf886ghyxhk9"))))
14010 (build-system haskell-build-system)
14011 (inputs `(("ghc-quickcheck" ,ghc-quickcheck)))
14012 (synopsis "Haskell helper functions for Lists, Maybes, Tuples, Functions")
14013 (description "This package includes Hakell modules providing various
14014helper functions for Lists, Maybes, Tuples, Functions.")
14015 (license license:bsd-3)))
14016
14017(define-public ghc-uuid
14018 (package
14019 (name "ghc-uuid")
14020 (version "1.3.13")
14021 (source
14022 (origin
14023 (method url-fetch)
14024 (uri (string-append "https://hackage.haskell.org/package/"
14025 "uuid-" version "/"
14026 "uuid-" version ".tar.gz"))
14027 (sha256
14028 (base32
14029 "09xhk42yhxvqmka0iqrv3338asncz8cap3j0ic0ps896f2581b6z"))))
14030 (build-system haskell-build-system)
14031 (arguments
14032 `(#:cabal-revision
14033 ("2" "0m185q62jkfb5jsv358nxbnrkv8y8hd0qqvgvh22wvc5g9ipz0r9")
14034 #:phases
14035 (modify-phases %standard-phases
14036 (add-before 'configure 'strip-test-framework-constraints
14037 (lambda _
14038 (substitute* "uuid.cabal"
14039 (("HUnit >= 1\\.2 && < 1\\.4") "HUnit")
14040 (("QuickCheck >= 2\\.4 && < 2\\.10") "QuickCheck")
14041 (("tasty >= 0\\.10 && < 0\\.12") "tasty")
14042 (("tasty-hunit == 0\\.9\\.\\*") "tasty-hunit")
14043 (("tasty-quickcheck == 0\\.8\\.\\*") "tasty-quickcheck")))))))
14044 (inputs `(("ghc-cryptohash-sha1" ,ghc-cryptohash-sha1)
14045 ("ghc-cryptohash-md5" ,ghc-cryptohash-md5)
14046 ("ghc-entropy" ,ghc-entropy)
14047 ("ghc-network-info" ,ghc-network-info)
14048 ("ghc-random" ,ghc-random)
14049 ("ghc-uuid-types" ,ghc-uuid-types)))
14050 (native-inputs `(("ghc-hunit" ,ghc-hunit)
14051 ("ghc-quickcheck" ,ghc-quickcheck)
14052 ("ghc-tasty" ,ghc-tasty)
14053 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
14054 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
14055 (home-page "https://github.com/hvr/uuid")
14056 (synopsis "Haskell library to create, compare, parse, and print UUIDs")
14057 (description "This Haskell library provides utilities creating, comparing,
14058parsing and printing @dfn{Universally Unique Identifiers} or UUIDs.")
14059 (license license:bsd-3)))
14060
14061(define-public ghc-uuid-types
14062 (package
14063 (name "ghc-uuid-types")
14064 (version "1.0.3")
14065 (source
14066 (origin
14067 (method url-fetch)
14068 (uri (string-append "https://hackage.haskell.org/package/"
14069 "uuid-types-" version "/"
14070 "uuid-types-" version ".tar.gz"))
14071 (sha256
14072 (base32
14073 "1zdka5jnm1h6k36w3nr647yf3b5lqb336g3fkprhd6san9x52xlj"))))
14074 (build-system haskell-build-system)
14075 (arguments
14076 `(#:phases
14077 (modify-phases %standard-phases
14078 (add-before 'configure 'strip-test-framework-constraints
14079 (lambda _
14080 (substitute* "uuid-types.cabal"
14081 (("HUnit >=1\\.2 && < 1\\.4") "HUnit")
14082 (("QuickCheck >=2\\.4 && < 2\\.9") "QuickCheck")
14083 (("tasty >= 0\\.10 && < 0\\.12") "tasty")
14084 (("tasty-hunit == 0\\.9\\.\\*") "tasty-hunit")
14085 (("tasty-quickcheck == 0\\.8\\.\\*") "tasty-quickcheck")))))))
14086 (inputs `(("ghc-hashable" ,ghc-hashable)
14087 ("ghc-random" ,ghc-random)))
14088 (native-inputs `(("ghc-hunit" ,ghc-hunit)
14089 ("ghc-quickcheck" ,ghc-quickcheck)
14090 ("ghc-tasty" ,ghc-tasty)
14091 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
14092 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
14093 (home-page "https://github.com/hvr/uuid")
14094 (synopsis "Haskell type definitions for UUIDs")
14095 (description "This Haskell library contains type definitions for
14096@dfn{Universally Unique Identifiers} or
14097@uref{https://en.wikipedia.org/wiki/UUID, UUIDs}, and basic conversion
14098functions.")
14099 (license license:bsd-3)))
14100
14101(define-public ghc-validation
14102 (package
14103 (name "ghc-validation")
08397fde 14104 (version "1.1")
dddbc90c
RV
14105 (source
14106 (origin
14107 (method url-fetch)
14108 (uri (string-append
14109 "mirror://hackage/package/validation/validation-"
14110 version
14111 ".tar.gz"))
14112 (sha256
14113 (base32
08397fde 14114 "1acj7mh3581ks405xswxw6667z7y1y0slisg6jvp6chc191ji9l5"))))
dddbc90c
RV
14115 (build-system haskell-build-system)
14116 (arguments
14117 `(#:cabal-revision
08397fde 14118 ("1" "1rrjg9z399k6pb55nv85mlr5bkmdqbjwkvl1cy7ydccdx6ks4syp")))
dddbc90c
RV
14119 (inputs
14120 `(("ghc-semigroups" ,ghc-semigroups)
14121 ("ghc-semigroupoids" ,ghc-semigroupoids)
14122 ("ghc-bifunctors" ,ghc-bifunctors)
14123 ("ghc-lens" ,ghc-lens)))
14124 (native-inputs
14125 `(("ghc-hedgehog" ,ghc-hedgehog)
14126 ("ghc-hunit" ,ghc-hunit)))
14127 (home-page "https://github.com/qfpl/validation")
14128 (synopsis
14129 "Data-type like Either but with an accumulating Applicative")
14130 (description
14131 "A data-type like Either but with differing properties and type-class
14132instances.
14133
14134Library support is provided for this different representation, including
14135@code{lens}-related functions for converting between each and abstracting over
14136their similarities.
14137
14138The @code{Validation} data type is isomorphic to @code{Either}, but has an
14139instance of @code{Applicative} that accumulates on the error side. That is to
14140say, if two (or more) errors are encountered, they are appended using a
14141@{Semigroup} operation.
14142
14143As a consequence of this @code{Applicative} instance, there is no
14144corresponding @code{Bind} or @code{Monad} instance. @code{Validation} is an
14145example of, \"An applicative functor that is not a monad.\"")
14146 (license license:bsd-3)))
14147
14148(define-public ghc-validity
14149 (package
14150 (name "ghc-validity")
3f1ba75d 14151 (version "0.9.0.2")
dddbc90c
RV
14152 (source
14153 (origin
14154 (method url-fetch)
14155 (uri (string-append
14156 "https://hackage.haskell.org/package/validity/validity-"
14157 version
14158 ".tar.gz"))
14159 (sha256
14160 (base32
3f1ba75d 14161 "1aa93lp1pqwv7vhx19nazlig8qhbp3psblbz360s5lii3s5rli2v"))))
dddbc90c
RV
14162 (build-system haskell-build-system)
14163 (native-inputs `(("ghc-hspec" ,ghc-hspec)
14164 ("hspec-discover" ,hspec-discover)))
14165 (home-page
14166 "https://github.com/NorfairKing/validity")
14167 (synopsis "Validity typeclass")
14168 (description
14169 "Values of custom types usually have invariants imposed upon them. This
14170package provides the @code{Validity} type class, which makes these invariants
14171explicit by providing a function to check whether the invariants hold.")
14172 (license license:expat)))
14173
14174(define-public ghc-vault
14175 (package
14176 (name "ghc-vault")
b40a436e 14177 (version "0.3.1.3")
dddbc90c
RV
14178 (source
14179 (origin
14180 (method url-fetch)
14181 (uri (string-append
14182 "https://hackage.haskell.org/package/vault/vault-"
14183 version
14184 ".tar.gz"))
14185 (sha256
14186 (base32
b40a436e 14187 "0vdm472vn734xa27jjm2mjacl37mxiqaaahvm4hzqjgyh4cqq377"))))
dddbc90c
RV
14188 (build-system haskell-build-system)
14189 (inputs
14190 `(("ghc-unordered-containers" ,ghc-unordered-containers)
14191 ("ghc-hashable" ,ghc-hashable)
b40a436e 14192 ("ghc-semigroups" ,ghc-semigroups)))
dddbc90c
RV
14193 (home-page
14194 "https://github.com/HeinrichApfelmus/vault")
14195 (synopsis "Persistent store for arbitrary values")
14196 (description "This package provides vaults for Haskell. A vault is a
14197persistent store for values of arbitrary types. It's like having first-class
14198access to the storage space behind @code{IORefs}. The data structure is
14199analogous to a bank vault, where you can access different bank boxes with
14200different keys; hence the name. Also provided is a @code{locker} type,
14201representing a store for a single element.")
14202 (license license:bsd-3)))
14203
14204(define-public ghc-vector
14205 (package
14206 (name "ghc-vector")
3ad67f6b 14207 (version "0.12.0.3")
534d6caa 14208 (outputs '("out" "static" "doc"))
dddbc90c
RV
14209 (source
14210 (origin
14211 (method url-fetch)
14212 (uri (string-append
14213 "https://hackage.haskell.org/package/vector/vector-"
14214 version
14215 ".tar.gz"))
14216 (sha256
14217 (base32
3ad67f6b 14218 "1a756s4w759ji3als5alfxwlckh5zcmykfg9rll4mlr2knzvz8mq"))))
dddbc90c
RV
14219 (build-system haskell-build-system)
14220 ;; FIXME: To simplify upgrading all Haskell packages, we leave the tests
14221 ;; disabled for now.
14222 (arguments
3ad67f6b 14223 `(#:tests? #f))
dddbc90c
RV
14224 (inputs
14225 `(("ghc-primitive" ,ghc-primitive)
14226 ("ghc-random" ,ghc-random)
14227 ("ghc-quickcheck" ,ghc-quickcheck)
14228 ;; ("ghc-hunit" ,ghc-hunit)
14229 ;; ("ghc-test-framework" ,ghc-test-framework)
14230 ;; ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
14231 ;; ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)
14232 ))
14233 (home-page "https://github.com/haskell/vector")
14234 (synopsis "Efficient Arrays")
14235 (description "This library provides an efficient implementation of
14236Int-indexed arrays (both mutable and immutable), with a powerful loop
14237optimisation framework.")
14238 (license license:bsd-3)))
14239
14240(define-public ghc-vector-algorithms
14241 (package
14242 (name "ghc-vector-algorithms")
e71f316f 14243 (version "0.8.0.1")
dddbc90c
RV
14244 (source
14245 (origin
14246 (method url-fetch)
14247 (uri (string-append "https://hackage.haskell.org/package/"
14248 "vector-algorithms-" version "/"
14249 "vector-algorithms-" version ".tar.gz"))
14250 (sha256
14251 (base32
e71f316f 14252 "1zip8r7hh5g12xrjvhbg38z6hfxy7l6h6pl88qcqc0ygdmwdxg0m"))))
dddbc90c
RV
14253 (build-system haskell-build-system)
14254 (inputs
14255 `(("ghc-vector" ,ghc-vector)))
14256 (native-inputs
14257 `(("ghc-quickcheck" ,ghc-quickcheck)))
14258 (home-page "https://github.com/bos/math-functions")
14259 (synopsis "Algorithms for vector arrays in Haskell")
14260 (description "This Haskell library algorithms for vector arrays.")
14261 (license license:bsd-3)))
14262
14263(define-public ghc-vector-binary-instances
14264 (package
14265 (name "ghc-vector-binary-instances")
ca0701ef 14266 (version "0.2.5.1")
dddbc90c
RV
14267 (source
14268 (origin
14269 (method url-fetch)
14270 (uri (string-append
14271 "https://hackage.haskell.org/package/"
14272 "vector-binary-instances/vector-binary-instances-"
14273 version ".tar.gz"))
14274 (sha256
14275 (base32
ca0701ef 14276 "04n5cqm1v95pw1bp68l9drjkxqiy2vswxdq0fy1rqcgxisgvji9r"))))
dddbc90c 14277 (build-system haskell-build-system)
dddbc90c
RV
14278 (inputs
14279 `(("ghc-vector" ,ghc-vector)))
14280 (native-inputs
14281 `(("ghc-tasty" ,ghc-tasty)
14282 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
14283 (home-page "https://github.com/bos/vector-binary-instances")
14284 (synopsis "Instances of Data.Binary and Data.Serialize for vector")
14285 (description "This library provides instances of @code{Binary} for the
14286types defined in the @code{vector} package, making it easy to serialize
14287vectors to and from disk. We use the generic interface to vectors, so all
14288vector types are supported. Specific instances are provided for unboxed,
14289boxed and storable vectors.")
14290 (license license:bsd-3)))
14291
14292(define-public ghc-vector-builder
14293 (package
14294 (name "ghc-vector-builder")
1fc05441 14295 (version "0.3.8")
dddbc90c
RV
14296 (source
14297 (origin
14298 (method url-fetch)
14299 (uri (string-append "https://hackage.haskell.org/package/"
14300 "vector-builder-" version "/"
14301 "vector-builder-" version ".tar.gz"))
14302 (sha256
14303 (base32
1fc05441 14304 "0ww0l52p8s6gmh985adnjbvm1vrqpqbm08qdcrvxwhhcqmxgv6m3"))))
dddbc90c
RV
14305 (build-system haskell-build-system)
14306 (inputs `(("ghc-vector" ,ghc-vector)
14307 ("ghc-semigroups" ,ghc-semigroups)
14308 ("ghc-base-prelude" ,ghc-base-prelude)))
14309 (native-inputs `(("ghc-attoparsec" ,ghc-attoparsec)
14310 ("ghc-tasty" ,ghc-tasty)
14311 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
14312 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
14313 ("ghc-hunit" ,ghc-hunit)
14314 ("ghc-quickcheck-instances" ,ghc-quickcheck-instances)
14315 ("ghc-rerebase" ,ghc-rerebase)))
14316 (home-page "https://github.com/nikita-volkov/vector-builder")
14317 (synopsis "Vector builder for Haskell")
14318 (description "This Haskell package provides an API for constructing vectors.
14319It provides the composable @code{Builder} abstraction, which has instances of the
14320@code{Monoid} and @code{Semigroup} classes.
14321
14322You would first use the @code{Builder} abstraction to specify the structure of
14323the vector; then you can execute the builder to actually produce the
14324vector. ")
14325 (license license:expat)))
14326
14327(define-public ghc-vector-th-unbox
14328 (package
14329 (name "ghc-vector-th-unbox")
63056e61 14330 (version "0.2.1.7")
dddbc90c
RV
14331 (source
14332 (origin
14333 (method url-fetch)
14334 (uri (string-append "https://hackage.haskell.org/package/"
14335 "vector-th-unbox-" version "/"
14336 "vector-th-unbox-" version ".tar.gz"))
14337 (sha256
14338 (base32
63056e61 14339 "0q8dqnbv1c2gi7jjdhqj14abj1vik23ki6lq4iz2sz18yc7q69fi"))))
dddbc90c
RV
14340 (build-system haskell-build-system)
14341 (inputs
14342 `(("ghc-vector" ,ghc-vector)
14343 ("ghc-data-default" ,ghc-data-default)))
14344 (home-page "https://github.com/liyang/vector-th-unbox")
14345 (synopsis "Deriver for Data.Vector.Unboxed using Template Haskell")
14346 (description "This Haskell library provides a Template Haskell
14347deriver for unboxed vectors, given a pair of coercion functions to
14348and from some existing type with an Unbox instance.")
14349 (license license:bsd-3)))
14350
14351(define-public ghc-void
14352 (package
14353 (name "ghc-void")
51889121 14354 (version "0.7.3")
dddbc90c
RV
14355 (source
14356 (origin
14357 (method url-fetch)
14358 (uri (string-append
14359 "https://hackage.haskell.org/package/void/void-"
14360 version
14361 ".tar.gz"))
14362 (sha256
14363 (base32
51889121 14364 "05vk3x1r9a2pqnzfji475m5gdih2im1h7rbi2sc67p1pvj6pbbsk"))))
dddbc90c
RV
14365 (build-system haskell-build-system)
14366 (inputs
14367 `(("ghc-semigroups" ,ghc-semigroups)
14368 ("ghc-hashable" ,ghc-hashable)))
14369 (home-page "https://github.com/ekmett/void")
14370 (synopsis
14371 "Logically uninhabited data type")
14372 (description
14373 "A Haskell 98 logically uninhabited data type, used to indicate that a
14374given term should not exist.")
14375 (license license:bsd-3)))
14376
14377(define-public ghc-wave
14378 (package
14379 (name "ghc-wave")
1631a0f7 14380 (version "0.2.0")
dddbc90c
RV
14381 (source (origin
14382 (method url-fetch)
14383 (uri (string-append
14384 "https://hackage.haskell.org/package/wave/wave-"
14385 version
14386 ".tar.gz"))
14387 (sha256
14388 (base32
1631a0f7 14389 "149kgwngq3qxc7gxpkqb16j669j0wpv2f3gnvfwp58yg6m4259ki"))))
dddbc90c
RV
14390 (build-system haskell-build-system)
14391 (arguments
14392 '(#:phases
14393 (modify-phases %standard-phases
14394 (add-before 'configure 'update-constraints
14395 (lambda _
14396 (substitute* "wave.cabal"
14397 (("temporary.* < 1\\.3")
14398 "temporary >= 1.1 && < 1.4")))))))
14399 (inputs
14400 `(("ghc-cereal" ,ghc-cereal)
14401 ("ghc-data-default-class"
14402 ,ghc-data-default-class)
14403 ("ghc-quickcheck" ,ghc-quickcheck)
14404 ("ghc-temporary" ,ghc-temporary)))
14405 (native-inputs
14406 `(("hspec-discover" ,hspec-discover)
14407 ("ghc-hspec" ,ghc-hspec)))
14408 (home-page "https://github.com/mrkkrp/wave")
14409 (synopsis "Work with WAVE and RF64 files in Haskell")
14410 (description "This package allows you to work with WAVE and RF64
14411files in Haskell.")
14412 (license license:bsd-3)))
14413
14414(define-public ghc-wcwidth
14415 (package
14416 (name "ghc-wcwidth")
14417 (version "0.0.2")
14418 (source
14419 (origin
14420 (method url-fetch)
14421 (uri (string-append "https://hackage.haskell.org/package/wcwidth/wcwidth-"
14422 version ".tar.gz"))
14423 (sha256
14424 (base32
14425 "1n1fq7v64b59ajf5g50iqj9sa34wm7s2j3viay0kxpmvlcv8gipz"))))
14426 (build-system haskell-build-system)
14427 (inputs
14428 `(("ghc-setlocale" ,ghc-setlocale)
14429 ("ghc-utf8-string" ,ghc-utf8-string)
14430 ("ghc-attoparsec" ,ghc-attoparsec)))
14431 (home-page "https://github.com/solidsnack/wcwidth/")
14432 (synopsis "Haskell bindings to wcwidth")
14433 (description "This package provides Haskell bindings to your system's
14434native wcwidth and a command line tool to examine the widths assigned by it.
14435The command line tool can compile a width table to Haskell code that assigns
14436widths to the Char type.")
14437 (license license:bsd-3)))
14438
14439(define-public ghc-wcwidth-bootstrap
14440 (package
14441 (inherit ghc-wcwidth)
14442 (name "ghc-wcwidth-bootstrap")
14443 (inputs
14444 `(("ghc-setlocale" ,ghc-setlocale)
14445 ("ghc-utf8-string" ,ghc-utf8-string)
14446 ("ghc-attoparsec" ,ghc-attoparsec-bootstrap)))
799d8d3c 14447 (properties '((hidden? #t)))))
dddbc90c
RV
14448
14449(define-public ghc-weigh
14450 (package
14451 (name "ghc-weigh")
b6d9777f 14452 (version "0.0.14")
dddbc90c
RV
14453 (source
14454 (origin
14455 (method url-fetch)
14456 (uri (string-append "https://hackage.haskell.org/package/weigh/"
14457 "weigh-" version ".tar.gz"))
14458 (sha256
14459 (base32
b6d9777f 14460 "0l85marb5rl9nr1c0id42dnr5i9fk1jciy5h6lywhb34w3hbj61g"))))
dddbc90c
RV
14461 (build-system haskell-build-system)
14462 (inputs
14463 `(("ghc-split" ,ghc-split)
14464 ("ghc-temporary" ,ghc-temporary)))
14465 (home-page "https://github.com/fpco/weigh#readme")
14466 (synopsis "Measure allocations of a Haskell functions/values")
14467 (description "This package provides tools to measure the memory usage of a
14468Haskell value or function.")
14469 (license license:bsd-3)))
14470
14471(define-public ghc-wl-pprint
14472 (package
14473 (name "ghc-wl-pprint")
14474 (version "1.2.1")
14475 (source (origin
14476 (method url-fetch)
14477 (uri (string-append
14478 "https://hackage.haskell.org/package/wl-pprint/wl-pprint-"
14479 version ".tar.gz"))
14480 (sha256
14481 (base32
14482 "0kn7y8pdrv8f87zhd5mifcl8fy3b2zvnzmzwhdqhxxlyzwiq6z0c"))))
14483 (build-system haskell-build-system)
14484 (home-page "https://hackage.haskell.org/package/wl-pprint")
14485 (synopsis "Wadler/Leijen pretty printer")
14486 (description
14487 "This is a pretty printing library based on Wadler's paper @i{A Prettier
14488Printer}. This version allows the library user to declare overlapping
14489instances of the @code{Pretty} class.")
14490 (license license:bsd-3)))
14491
14492(define-public ghc-wl-pprint-annotated
14493 (package
14494 (name "ghc-wl-pprint-annotated")
14495 (version "0.1.0.1")
14496 (source
14497 (origin
14498 (method url-fetch)
14499 (uri (string-append
14500 "mirror://hackage/package/wl-pprint-annotated/wl-pprint-annotated-"
14501 version
14502 ".tar.gz"))
14503 (sha256
14504 (base32
14505 "1br7qyf27iza213inwhf9bm2k6in0zbmfw6w4clqlc9f9cj2nrkb"))))
14506 (build-system haskell-build-system)
14507 (native-inputs
14508 `(("ghc-tasty" ,ghc-tasty)
14509 ("ghc-tasty-hunit" ,ghc-tasty-hunit)))
14510 (home-page
14511 "https://github.com/minad/wl-pprint-annotated#readme")
14512 (synopsis
14513 "Wadler/Leijen pretty printer with annotation support")
14514 (description
14515 "Annotations are useful for coloring. This is a limited version of
14516@code{wl-pprint-extras} without support for point effects and without the free
14517monad. Like in @code{annotated-wl-pprint}, only annotations are supported.
14518Compared to @code{annotated-wl-pprint} this library provides a slightly
14519modernized interface.")
14520 (license license:bsd-3)))
14521
14522(define-public ghc-wl-pprint-text
14523 (package
14524 (name "ghc-wl-pprint-text")
14525 (version "1.2.0.0")
14526 (source
14527 (origin
14528 (method url-fetch)
14529 (uri (string-append
14530 "https://hackage.haskell.org/package/wl-pprint-text/wl-pprint-text-"
14531 version ".tar.gz"))
14532 (sha256
14533 (base32
14534 "0g3w92rad6x5appfb22rbzcas2ix2h0hy91sdxhq8a4a5cnlrpa0"))))
14535 (build-system haskell-build-system)
14536 (inputs
14537 `(("ghc-base-compat" ,ghc-base-compat)))
14538 (home-page "https://hackage.haskell.org/package/wl-pprint-text")
14539 (synopsis "Wadler/Leijen Pretty Printer for Text values")
14540 (description
14541 "A clone of wl-pprint for use with the text library.")
14542 (license license:bsd-3)))
14543
14544(define-public ghc-word8
14545 (package
14546 (name "ghc-word8")
14547 (version "0.1.3")
14548 (source
14549 (origin
14550 (method url-fetch)
14551 (uri (string-append
14552 "https://hackage.haskell.org/package/word8/word8-"
14553 version
14554 ".tar.gz"))
14555 (sha256
14556 (base32
14557 "12jx7f13d2h1djq4fh4dyrab61sm49mj1w61j3rzp2vjfm696c16"))))
14558 (build-system haskell-build-system)
14559 (native-inputs
14560 `(("ghc-hspec" ,ghc-hspec)
14561 ("hspec-discover" ,hspec-discover)))
14562 (home-page "https://hackage.haskell.org/package/word8")
14563 (synopsis "Word8 library for Haskell")
14564 (description "Word8 library to be used with @code{Data.ByteString}.")
14565 (license license:bsd-3)))
14566
14567(define-public ghc-x11
14568 (package
14569 (name "ghc-x11")
6c4581a3 14570 (version "1.9.1")
dddbc90c
RV
14571 (source
14572 (origin
14573 (method url-fetch)
14574 (uri (string-append "https://hackage.haskell.org/package/X11/"
14575 "X11-" version ".tar.gz"))
14576 (sha256
6c4581a3 14577 (base32 "0gg6852mrlgl8zng1j84fismz7k81jr5fk92glgkscf8q6ryg0bm"))))
dddbc90c 14578 (build-system haskell-build-system)
54a5fd07
TS
14579 (arguments
14580 `(#:extra-directories
14581 ("libx11" "libxrandr" "libxinerama" "libxscrnsaver")))
dddbc90c
RV
14582 (inputs
14583 `(("libx11" ,libx11)
14584 ("libxrandr" ,libxrandr)
14585 ("libxinerama" ,libxinerama)
14586 ("libxscrnsaver" ,libxscrnsaver)
14587 ("ghc-data-default" ,ghc-data-default)))
14588 (home-page "https://github.com/haskell-pkg-janitors/X11")
14589 (synopsis "Bindings to the X11 graphics library")
14590 (description
14591 "This package provides Haskell bindings to the X11 graphics library. The
14592bindings are a direct translation of the C bindings.")
14593 (license license:bsd-3)))
14594
14595(define-public ghc-x11-xft
14596 (package
14597 (name "ghc-x11-xft")
14598 (version "0.3.1")
14599 (source
14600 (origin
14601 (method url-fetch)
14602 (uri (string-append "https://hackage.haskell.org/package/X11-xft/"
14603 "X11-xft-" version ".tar.gz"))
14604 (sha256
14605 (base32 "1lgqb0s2qfwwgbvwxhjbi23rbwamzdi0l0slfr20c3jpcbp3zfjf"))))
54a5fd07
TS
14606 (arguments
14607 `(#:extra-directories ("libx11" "libxft" "xorgproto")))
dddbc90c
RV
14608 (inputs
14609 `(("ghc-x11" ,ghc-x11)
14610 ("ghc-utf8-string" ,ghc-utf8-string)
14611 ("libx11" ,libx11)
14612 ("libxft" ,libxft)
14613 ("xorgproto" ,xorgproto)))
14614 (native-inputs
14615 `(("pkg-config" ,pkg-config)))
14616 (build-system haskell-build-system)
14617 (home-page "https://hackage.haskell.org/package/X11-xft")
14618 (synopsis "Bindings to Xft")
14619 (description
14620 "Bindings to the Xft, X Free Type interface library, and some Xrender
14621parts.")
14622 (license license:lgpl2.1)))
14623
14624(define-public ghc-xdg-basedir
14625 (package
14626 (name "ghc-xdg-basedir")
14627 (version "0.2.2")
14628 (source
14629 (origin
14630 (method url-fetch)
14631 (uri (string-append
14632 "https://hackage.haskell.org/package/xdg-basedir/"
14633 "xdg-basedir-" version ".tar.gz"))
14634 (sha256
14635 (base32
14636 "0azlzaxp2dn4l1nr7shsxah2magk1szf6fx0mv75az00qsjw6qg4"))))
14637 (build-system haskell-build-system)
702a1012 14638 (home-page "https://github.com/willdonnelly/xdg-basedir")
dddbc90c
RV
14639 (synopsis "XDG Base Directory library for Haskell")
14640 (description "This package provides a library implementing the XDG Base Directory spec.")
14641 (license license:bsd-3)))
14642
14643(define-public ghc-xml
14644 (package
14645 (name "ghc-xml")
14646 (version "1.3.14")
14647 (source
14648 (origin
14649 (method url-fetch)
14650 (uri (string-append
14651 "https://hackage.haskell.org/package/xml/xml-"
14652 version
14653 ".tar.gz"))
14654 (sha256
14655 (base32
14656 "0g814lj7vaxvib2g3r734221k80k7ap9czv9hinifn8syals3l9j"))))
14657 (build-system haskell-build-system)
2b62f5d0 14658 (home-page "https://github.com/GaloisInc/xml")
dddbc90c
RV
14659 (synopsis "Simple XML library for Haskell")
14660 (description "This package provides a simple XML library for Haskell.")
14661 (license license:bsd-3)))
14662
14663(define-public ghc-xml-conduit
14664 (package
14665 (name "ghc-xml-conduit")
14666 (version "1.8.0.1")
14667 (source
14668 (origin
14669 (method url-fetch)
14670 (uri (string-append "https://hackage.haskell.org/package/xml-conduit/"
14671 "xml-conduit-" version ".tar.gz"))
14672 (sha256
14673 (base32
14674 "177gmyigxql1pn3ncz0r8annwv5cbxnihbgrrg1dhm4gmc9jy2wq"))))
14675 (build-system haskell-build-system)
14676 (inputs
14677 `(("ghc-conduit" ,ghc-conduit)
14678 ("ghc-conduit-extra" ,ghc-conduit-extra)
14679 ("ghc-doctest" ,ghc-doctest)
14680 ("ghc-resourcet" ,ghc-resourcet)
14681 ("ghc-xml-types" ,ghc-xml-types)
14682 ("ghc-attoparsec" ,ghc-attoparsec)
14683 ("ghc-data-default-class" ,ghc-data-default-class)
14684 ("ghc-blaze-markup" ,ghc-blaze-markup)
14685 ("ghc-blaze-html" ,ghc-blaze-html)
14686 ("ghc-monad-control" ,ghc-monad-control)
14687 ("ghc-hspec" ,ghc-hspec)
14688 ("ghc-hunit" ,ghc-hunit)))
14689 (home-page "https://github.com/snoyberg/xml")
14690 (synopsis "Utilities for dealing with XML with the conduit package")
14691 (description
14692 "This package provides pure-Haskell utilities for dealing with XML with
14693the @code{conduit} package.")
14694 (license license:expat)))
14695
14696(define-public ghc-xml-types
14697 (package
14698 (name "ghc-xml-types")
14699 (version "0.3.6")
14700 (source
14701 (origin
14702 (method url-fetch)
14703 (uri (string-append "https://hackage.haskell.org/package/xml-types/"
14704 "xml-types-" version ".tar.gz"))
14705 (sha256
14706 (base32
14707 "1jgqxsa9p2q3h6nymbfmvhldqrqlwrhrzmwadlyc0li50x0d8dwr"))))
14708 (build-system haskell-build-system)
14709 (home-page "https://john-millikin.com/software/haskell-xml/")
14710 (synopsis "Basic types for representing XML")
14711 (description "This package provides basic types for representing XML
14712documents.")
14713 (license license:expat)))
14714
7f89dfc9
KM
14715(define-public ghc-xml-hamlet
14716 (package
14717 (name "ghc-xml-hamlet")
14718 (version "0.5.0.1")
14719 (source
14720 (origin
14721 (method url-fetch)
14722 (uri (string-append "https://hackage.haskell.org/package/xml-hamlet/"
14723 "xml-hamlet-" version ".tar.gz"))
14724 (sha256
14725 (base32 "0jrhcjy7ww59dafg857f2g2df1fw2jmbwcs1q379ph0pc5rxj3lj"))))
14726 (build-system haskell-build-system)
14727 (inputs
14728 `(("ghc-shakespeare" ,ghc-shakespeare)
14729 ("ghc-xml-conduit" ,ghc-xml-conduit)))
14730 (native-inputs
14731 `(("ghc-hspec" ,ghc-hspec)
14732 ("ghc-hunit" ,ghc-hunit)))
14733 (home-page "https://www.yesodweb.com/")
14734 (synopsis "Hamlet-style quasiquoter for XML content")
14735 (description "This package provides a type-safe tool for generating XML
14736code via quasi-quoting built on top of @code{ghc-shakespeare}.")
14737 (license license:bsd-3)))
14738
dddbc90c
RV
14739(define-public ghc-yaml
14740 (package
14741 (name "ghc-yaml")
b58e5b84 14742 (version "0.11.1.2")
dddbc90c
RV
14743 (source (origin
14744 (method url-fetch)
14745 (uri (string-append "https://hackage.haskell.org/package/"
14746 "yaml/yaml-" version ".tar.gz"))
14747 (sha256
14748 (base32
b58e5b84 14749 "028pz77n92l6kjgjv263h4b6yhw1iibdbf3a3dkn5qnz537xpzhc"))))
dddbc90c 14750 (build-system haskell-build-system)
dddbc90c
RV
14751 (inputs
14752 `(("ghc-conduit" ,ghc-conduit)
14753 ("ghc-resourcet" ,ghc-resourcet)
14754 ("ghc-aeson" ,ghc-aeson)
14755 ("ghc-unordered-containers" ,ghc-unordered-containers)
14756 ("ghc-vector" ,ghc-vector)
14757 ("ghc-attoparsec" ,ghc-attoparsec)
14758 ("ghc-scientific" ,ghc-scientific)
14759 ("ghc-semigroups" ,ghc-semigroups)
14760 ("ghc-temporary" ,ghc-temporary)
14761 ("ghc-enclosed-exceptions" ,ghc-enclosed-exceptions)
b58e5b84
TS
14762 ("ghc-base-compat" ,ghc-base-compat)
14763 ("ghc-libyaml" ,ghc-libyaml)))
dddbc90c
RV
14764 (native-inputs
14765 `(("ghc-hspec" ,ghc-hspec)
14766 ("ghc-hunit" ,ghc-hunit)
14767 ("hspec-discover" ,hspec-discover)
b58e5b84
TS
14768 ("ghc-mockery" ,ghc-mockery)
14769 ("ghc-raw-strings-qq" ,ghc-raw-strings-qq)))
dddbc90c
RV
14770 (home-page "https://github.com/snoyberg/yaml/")
14771 (synopsis "Parsing and rendering YAML documents")
14772 (description
14773 "This package provides a library to parse and render YAML documents.")
14774 (license license:bsd-3)))
14775
14776(define-public ghc-zip-archive
14777 (package
14778 (name "ghc-zip-archive")
93c1fdd3 14779 (version "0.4.1")
dddbc90c
RV
14780 (source
14781 (origin
14782 (method url-fetch)
14783 (uri (string-append
14784 "https://hackage.haskell.org/package/zip-archive/zip-archive-"
14785 version
14786 ".tar.gz"))
14787 (sha256
14788 (base32
93c1fdd3 14789 "1cdix5mnxrbs7b2kivhdydhfzgxidd9dqlw71mdw5p21cabwkmf5"))))
dddbc90c 14790 (build-system haskell-build-system)
93c1fdd3
TS
14791 (arguments
14792 `(#:phases
14793 (modify-phases %standard-phases
14794 (add-before 'check 'set-PATH-for-tests
14795 (lambda* (#:key inputs #:allow-other-keys)
14796 (let ((unzip (assoc-ref inputs "unzip"))
14797 (which (assoc-ref inputs "which"))
14798 (path (getenv "PATH")))
14799 (setenv "PATH" (string-append unzip "/bin:" which "/bin:" path))
14800 #t))))))
dddbc90c
RV
14801 (inputs
14802 `(("ghc-digest" ,ghc-digest)
14803 ("ghc-temporary" ,ghc-temporary)
14804 ("ghc-zlib" ,ghc-zlib)))
14805 (native-inputs
14806 `(("ghc-hunit" ,ghc-hunit)
93c1fdd3
TS
14807 ("unzip" ,unzip)
14808 ("which" ,which)))
dddbc90c
RV
14809 (home-page "https://hackage.haskell.org/package/zip-archive")
14810 (synopsis "Zip archive library for Haskell")
14811 (description "The zip-archive library provides functions for creating,
14812modifying, and extracting files from zip archives in Haskell.")
14813 (license license:bsd-3)))
14814
14815(define-public ghc-zlib
14816 (package
14817 (name "ghc-zlib")
bf12089a 14818 (version "0.6.2.1")
534d6caa 14819 (outputs '("out" "static" "doc"))
dddbc90c
RV
14820 (source
14821 (origin
14822 (method url-fetch)
14823 (uri (string-append
14824 "https://hackage.haskell.org/package/zlib/zlib-"
14825 version
14826 ".tar.gz"))
14827 (sha256
14828 (base32
bf12089a 14829 "1l11jraslcrp9d4wnhwfyhwk4fsiq1aq8i6vj81vcq1m2zzi1y7h"))))
dddbc90c
RV
14830 (build-system haskell-build-system)
14831 (arguments
54a5fd07
TS
14832 `(#:extra-directories ("zlib")
14833 #:phases
dddbc90c
RV
14834 (modify-phases %standard-phases
14835 (add-before 'configure 'strip-test-framework-constraints
14836 (lambda _
14837 (substitute* "zlib.cabal"
14838 (("tasty >= 0\\.8 && < 0\\.12") "tasty")
14839 (("tasty-hunit >= 0\\.8 && < 0\\.10") "tasty-hunit")
14840 (("tasty-quickcheck == 0\\.8\\.\\*") "tasty-quickcheck")))))))
14841 (inputs `(("zlib" ,zlib)))
14842 (native-inputs
14843 `(("ghc-quickcheck" ,ghc-quickcheck)
14844 ("ghc-tasty" ,ghc-tasty)
14845 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
14846 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
14847 (home-page "https://hackage.haskell.org/package/zlib")
14848 (synopsis
14849 "Compression and decompression in the gzip and zlib formats")
14850 (description
14851 "This package provides a pure interface for compressing and decompressing
14852streams of data represented as lazy @code{ByteString}s. It uses the zlib C
14853library so it has high performance. It supports the @code{zlib}, @code{gzip}
14854and @code{raw} compression formats. It provides a convenient high level API
14855suitable for most tasks and for the few cases where more control is needed it
14856provides access to the full zlib feature set.")
bbf8bf31 14857 (license license:bsd-3)))
14e41996
RV
14858
14859(define-public ghc-zlib-bindings
14860 (package
14861 (name "ghc-zlib-bindings")
14862 (version "0.1.1.5")
14863 (source
14864 (origin
14865 (method url-fetch)
14866 (uri (string-append "https://hackage.haskell.org/package/"
14867 "zlib-bindings/zlib-bindings-" version ".tar.gz"))
14868 (sha256
14869 (base32
14870 "02ciywlz4wdlymgc3jsnicz9kzvymjw1www2163gxidnz4wb8fy8"))))
14871 (build-system haskell-build-system)
14872 (inputs
14873 `(("ghc-zlib" ,ghc-zlib)))
14874 (native-inputs
14875 `(("ghc-hspec" ,ghc-hspec)
14876 ("ghc-quickcheck" ,ghc-quickcheck)))
14877 (arguments
14878 `(#:cabal-revision
14879 ("2" "0fq49694gqkab8m0vq4i879blswczwd66n7xh4r4gwiahf0ryvqc")))
14880 (home-page "https://github.com/snapframework/zlib-bindings")
14881 (synopsis "Low-level bindings to the @code{zlib} package")
14882 (description "This package provides low-level bindings to the
14883@code{zlib} package.")
14884 (license license:bsd-3)))
8428e92c
TS
14885
14886(define-public ghc-zstd
14887 (package
14888 (name "ghc-zstd")
14889 (version "0.1.1.2")
14890 (source
14891 (origin
14892 (method url-fetch)
14893 (uri (string-append "https://hackage.haskell.org/package/"
14894 "zstd/zstd-" version ".tar.gz"))
14895 (sha256
14896 (base32
14897 "147s496zvw13akxqzg65mgfvk3bvhrcilxgf8n786prxg5cm4jz2"))))
14898 (build-system haskell-build-system)
14899 (native-inputs
14900 `(("ghc-quickcheck" ,ghc-quickcheck)
14901 ("ghc-test-framework" ,ghc-test-framework)
14902 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
14903 (home-page "https://github.com/luispedro/hs-zstd")
14904 (synopsis "Haskell bindings to the Zstandard compression algorithm")
14905 (description "This library provides Haskell bindings to the
14906Zstandard compression algorithm, a fast lossless compression algorithm
14907targeting real-time compression scenarios at zlib-level and better
14908compression ratios.")
14909 (license license:bsd-3)))