gnu: Add ghc-csv.
[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>
7f2a5650 29;;; Copyright © 2020 Carlo Holl <carloholl@gmail.com>
6b34d01c
RV
30;;;
31;;; This file is part of GNU Guix.
32;;;
33;;; GNU Guix is free software; you can redistribute it and/or modify it
34;;; under the terms of the GNU General Public License as published by
35;;; the Free Software Foundation; either version 3 of the License, or (at
36;;; your option) any later version.
37;;;
38;;; GNU Guix is distributed in the hope that it will be useful, but
39;;; WITHOUT ANY WARRANTY; without even the implied warranty of
40;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
41;;; GNU General Public License for more details.
42;;;
43;;; You should have received a copy of the GNU General Public License
44;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
45
46(define-module (gnu packages haskell-xyz)
47 #:use-module (gnu packages)
dddbc90c
RV
48 #:use-module (gnu packages base)
49 #:use-module (gnu packages compression)
50 #:use-module (gnu packages emacs)
dddbc90c
RV
51 #:use-module (gnu packages gl)
52 #:use-module (gnu packages graphviz)
53 #:use-module (gnu packages gtk)
d4e4a382 54 #:use-module (gnu packages haskell)
dddbc90c 55 #:use-module (gnu packages haskell-apps)
efb96749 56 #:use-module (gnu packages haskell-check)
dddbc90c
RV
57 #:use-module (gnu packages haskell-crypto)
58 #:use-module (gnu packages haskell-web)
59 #:use-module (gnu packages libffi)
60 #:use-module (gnu packages linux)
e3ee8023 61 #:use-module (gnu packages llvm)
dddbc90c
RV
62 #:use-module (gnu packages lua)
63 #:use-module (gnu packages maths)
49e29df5 64 #:use-module (gnu packages ncurses)
dddbc90c
RV
65 #:use-module (gnu packages pcre)
66 #:use-module (gnu packages pkg-config)
67 #:use-module (gnu packages sdl)
0c2d6fc2 68 #:use-module (gnu packages web)
dddbc90c
RV
69 #:use-module (gnu packages xml)
70 #:use-module (gnu packages xorg)
6b34d01c
RV
71 #:use-module (guix build-system haskell)
72 #:use-module (guix download)
dddbc90c 73 #:use-module (guix git-download)
4780db2c 74 #:use-module (guix utils)
6b34d01c 75 #:use-module ((guix licenses) #:prefix license:)
d4e4a382
RW
76 #:use-module (guix packages)
77 #:use-module (srfi srfi-1))
6b34d01c 78
dddbc90c 79(define-public ghc-abstract-deque
efb96749 80 (package
dddbc90c
RV
81 (name "ghc-abstract-deque")
82 (version "0.3")
efb96749
RV
83 (source
84 (origin
85 (method url-fetch)
86 (uri (string-append "https://hackage.haskell.org/package/"
dddbc90c
RV
87 "abstract-deque-" version "/"
88 "abstract-deque-" version ".tar.gz"))
efb96749
RV
89 (sha256
90 (base32
dddbc90c 91 "18jwswjxwzc9bjiy4ds6hw2a74ki797jmfcifxd2ga4kh7ri1ah9"))))
efb96749 92 (build-system haskell-build-system)
dddbc90c
RV
93 (inputs `(("ghc-random" ,ghc-random)))
94 (home-page "https://github.com/rrnewton/haskell-lockfree/wiki")
95 (synopsis "Abstract, parameterized interface to mutable Deques for Haskell")
96 (description "This Haskell package provides an abstract interface to
97highly-parameterizable queues/deques.
98
99Background: There exists a feature space for queues that extends between:
efb96749
RV
100
101@itemize
dddbc90c
RV
102@item Simple, single-ended, non-concurrent, bounded queues
103
104@item Double-ended, thread-safe, growable queues with important points
105in between (such as the queues used for work stealing).
efb96749
RV
106@end itemize
107
dddbc90c
RV
108This package includes an interface for Deques that allows the programmer
109to use a single API for all of the above, while using the type system to
110select an efficient implementation given the requirements (using type families).
efb96749 111
dddbc90c
RV
112This package also includes a simple reference implementation based on
113@code{IORef} and @code{Data.Sequence}.")
efb96749
RV
114 (license license:bsd-3)))
115
dddbc90c 116(define-public ghc-abstract-par
658dbc7f 117 (package
dddbc90c
RV
118 (name "ghc-abstract-par")
119 (version "0.3.3")
658dbc7f
RV
120 (source
121 (origin
122 (method url-fetch)
123 (uri (string-append "https://hackage.haskell.org/package/"
dddbc90c
RV
124 "abstract-par-" version "/"
125 "abstract-par-" version ".tar.gz"))
658dbc7f
RV
126 (sha256
127 (base32
dddbc90c
RV
128 "0q6qsniw4wks2pw6wzncb1p1j3k6al5njnvm2v5n494hplwqg2i4"))))
129 (build-system haskell-build-system)
130 (home-page "https://github.com/simonmar/monad-par")
131 (synopsis "Abstract parallelization interface for Haskell")
132 (description "This Haskell package is an abstract interface
133only. It provides a number of type clasess, but not an
134implementation. The type classes separate different levels
135of @code{Par} functionality. See the @code{Control.Monad.Par.Class}
136module for more details.")
137 (license license:bsd-3)))
138
d8b88d74
TS
139(define-public ghc-active
140 (package
141 (name "ghc-active")
142 (version "0.2.0.14")
143 (source
144 (origin
145 (method url-fetch)
146 (uri (string-append "https://hackage.haskell.org/package/"
147 "active/active-" version ".tar.gz"))
148 (sha256
149 (base32
150 "0x3b4ln6csa554qls28wbxvclkbdz3yi60i1m0q5ing0cs16fifz"))))
151 (build-system haskell-build-system)
152 (inputs
153 `(("ghc-vector" ,ghc-vector)
154 ("ghc-semigroups" ,ghc-semigroups)
155 ("ghc-semigroupoids" ,ghc-semigroupoids)
156 ("ghc-lens" ,ghc-lens)
157 ("ghc-linear" ,ghc-linear)))
158 (native-inputs
159 `(("ghc-quickcheck" ,ghc-quickcheck)))
160 (home-page "https://hackage.haskell.org/package/active")
161 (synopsis "Abstractions for animation")
162 (description "This package defines an @code{Active} abstraction for
163time-varying values with finite start and end times. It is used for
164describing animations within the
165@url{https://archives.haskell.org/projects.haskell.org/diagrams/,
166diagrams framework}.")
167 (license license:bsd-3)))
168
dddbc90c
RV
169(define-public ghc-adjunctions
170 (package
171 (name "ghc-adjunctions")
172 (version "4.4")
173 (source
174 (origin
175 (method url-fetch)
176 (uri (string-append
177 "https://hackage.haskell.org/package/adjunctions/adjunctions-"
178 version
179 ".tar.gz"))
180 (sha256
181 (base32
182 "1sbal7cbhm12crfnfhkk322jnzgx7lhw3jzq0p463bipagsjwz2h"))))
658dbc7f 183 (build-system haskell-build-system)
a78262be
TS
184 (arguments
185 `(#:cabal-revision
186 ("2" "1yfsjx7dqikg3hvld7i91xfsg5lawmr5980lvfd794sybmgxsf17")))
658dbc7f 187 (inputs
dddbc90c
RV
188 `(("ghc-profunctors" ,ghc-profunctors)
189 ("ghc-comonad" ,ghc-comonad)
190 ("ghc-contravariant" ,ghc-contravariant)
191 ("ghc-distributive" ,ghc-distributive)
192 ("ghc-free" ,ghc-free)
193 ("ghc-tagged" ,ghc-tagged)
194 ("ghc-semigroupoids" ,ghc-semigroupoids)
195 ("ghc-semigroups" ,ghc-semigroups)
196 ("ghc-transformers-compat" ,ghc-transformers-compat)
197 ("ghc-void" ,ghc-void)))
658dbc7f 198 (native-inputs
dddbc90c
RV
199 `(("ghc-generic-deriving" ,ghc-generic-deriving)
200 ("ghc-hspec" ,ghc-hspec)
201 ("hspec-discover" ,hspec-discover)))
202 (home-page "https://github.com/ekmett/adjunctions/")
203 (synopsis "Adjunctions and representable functors")
204 (description "This library provides adjunctions and representable functors
205for Haskell.")
206 (license license:bsd-3)))
207
208(define-public ghc-aeson-compat
209 (package
210 (name "ghc-aeson-compat")
0bafb755 211 (version "0.3.9")
dddbc90c
RV
212 (source
213 (origin
214 (method url-fetch)
215 (uri (string-append "https://hackage.haskell.org/package/"
216 "aeson-compat-" version "/"
217 "aeson-compat-" version ".tar.gz"))
218 (sha256
219 (base32
0bafb755 220 "1j13gykv4ryvmr14w5blz0nnpdb4p0hpa27wahw3mhb1lwdr8hz0"))))
dddbc90c
RV
221 (build-system haskell-build-system)
222 (arguments `(#:tests? #f)) ; FIXME: Tests require QuickCheck >= 2.10
223 (inputs `(("ghc-base-compat" ,ghc-base-compat)
224 ("ghc-aeson" ,ghc-aeson)
225 ("ghc-attoparsec" ,ghc-attoparsec)
226 ("ghc-attoparsec" ,ghc-attoparsec-iso8601)
227 ("ghc-exceptions" ,ghc-exceptions)
228 ("ghc-hashable" ,ghc-hashable)
229 ("ghc-scientific" ,ghc-scientific)
230 ("ghc-time-locale-compat" ,ghc-time-locale-compat)
231 ("ghc-unordered-containers" ,ghc-unordered-containers)
232 ("ghc-vector" ,ghc-vector)
233 ("ghc-tagged" ,ghc-tagged)
234 ("ghc-semigroups" ,ghc-semigroups)
235 ("ghc-nats" ,ghc-nats)))
236 (home-page "https://github.com/phadej/aeson-compat")
237 (synopsis "Compatibility layer for ghc-aeson")
238 (description "This Haskell package provides compatibility layer for
239ghc-aeson.")
240 (license license:bsd-3)))
241
cbc6f861
TS
242(define-public ghc-aeson-diff
243 (package
244 (name "ghc-aeson-diff")
245 (version "1.1.0.7")
246 (source
247 (origin
248 (method url-fetch)
249 (uri (string-append "https://hackage.haskell.org/package/"
250 "aeson-diff/aeson-diff-" version ".tar.gz"))
251 (sha256
252 (base32
253 "01d48pd7d1mb9cd5yxfajln8rmjdjq8ch91s0lav4qw1azv6vp2r"))))
254 (build-system haskell-build-system)
255 (inputs
256 `(("ghc-aeson" ,ghc-aeson)
257 ("ghc-edit-distance-vector" ,ghc-edit-distance-vector)
258 ("ghc-hashable" ,ghc-hashable)
259 ("ghc-scientific" ,ghc-scientific)
260 ("ghc-unordered-containers" ,ghc-unordered-containers)
261 ("ghc-vector" ,ghc-vector)
262 ("ghc-semigroups" ,ghc-semigroups)
263 ("ghc-optparse-applicative" ,ghc-optparse-applicative)))
264 (native-inputs
265 `(("ghc-quickcheck" ,ghc-quickcheck)
266 ("ghc-quickcheck-instances" ,ghc-quickcheck-instances)
267 ("ghc-glob" ,ghc-glob)
268 ("ghc-quickcheck" ,ghc-quickcheck)
269 ("ghc-quickcheck-instances" ,ghc-quickcheck-instances)
270 ("ghc-quickcheck" ,ghc-quickcheck)
271 ("ghc-doctest" ,ghc-doctest)
272 ("hlint" ,hlint)))
273 (home-page "https://github.com/thsutton/aeson-diff")
274 (synopsis "Extract and apply patches to JSON documents")
275 (description "This is a small library for working with changes to JSON
276documents. It includes a library and two command-line executables in the
277style of the @command{diff} and @command{patch} commands available on many
278systems.")
279 (license license:bsd-3)))
280
dddbc90c
RV
281(define-public ghc-alex
282 (package
283 (name "ghc-alex")
284 (version "3.2.4")
285 (source
286 (origin
287 (method url-fetch)
288 (uri (string-append
289 "https://hackage.haskell.org/package/alex/alex-"
290 version
291 ".tar.gz"))
292 (sha256
293 (base32
294 "0cpjixgsr0b2x4s6hz4aa6gnmjw9i7xd9nlfi8m37zqlidq4v3nm"))))
295 (build-system haskell-build-system)
658dbc7f 296 (arguments
dddbc90c
RV
297 `(#:phases
298 (modify-phases %standard-phases
299 (add-before 'check 'set-check-variables
300 (lambda _
301 (setenv "PATH" (string-append (getcwd) "/dist/build/alex:"
302 (getenv "PATH")))
303 (setenv "alex_datadir" (string-append (getcwd) "/data"))
304 #t)))))
305 (inputs `(("ghc-quickcheck" ,ghc-quickcheck)))
306 (native-inputs
307 `(("which" ,which)))
308 (home-page "https://www.haskell.org/alex/")
309 (synopsis
310 "Tool for generating lexical analysers in Haskell")
311 (description
312 "Alex is a tool for generating lexical analysers in Haskell. It takes a
313description of tokens based on regular expressions and generates a Haskell
314module containing code for scanning text efficiently. It is similar to the
315tool lex or flex for C/C++.")
658dbc7f
RV
316 (license license:bsd-3)))
317
dddbc90c 318(define-public ghc-alsa-core
7b01a977 319 (package
dddbc90c
RV
320 (name "ghc-alsa-core")
321 (version "0.5.0.1")
322 (source
323 (origin
324 (method url-fetch)
325 (uri (string-append
326 "mirror://hackage/package/alsa-core/alsa-core-"
327 version
328 ".tar.gz"))
329 (sha256
330 (base32
331 "1avh4a419h9d2zsslg6j8hm87ppgsgqafz8ll037rk2yy1g4jl7b"))))
332 (build-system haskell-build-system)
54a5fd07
TS
333 (arguments
334 `(#:extra-directories ("alsa-lib")))
dddbc90c
RV
335 (inputs
336 `(("ghc-extensible-exceptions" ,ghc-extensible-exceptions)
337 ("alsa-lib" ,alsa-lib)))
338 (native-inputs
339 `(("pkg-config" ,pkg-config)))
228d2901 340 (home-page "https://wiki.haskell.org/ALSA")
dddbc90c
RV
341 (synopsis "Binding to the ALSA Library API (Exceptions)")
342 (description "This package provides access to ALSA infrastructure, that is
343needed by both alsa-seq and alsa-pcm.")
344 (license license:bsd-3)))
345
f2ed1e6d
JS
346(define-public ghc-alsa-mixer
347 (package
348 (name "ghc-alsa-mixer")
349 (version "0.3.0")
350 (source
351 (origin
352 (method url-fetch)
353 (uri
354 (string-append
355 "mirror://hackage/package/alsa-mixer/alsa-mixer-"
356 version ".tar.gz"))
357 (sha256
358 (base32
359 "00ny2p3276jilidjs44npc8zmbhynz3f2lpmlwwl6swwx5yijsnb"))))
360 (build-system haskell-build-system)
361 (inputs `(("ghc-alsa-core" ,ghc-alsa-core)))
362 (native-inputs `(("ghc-c2hs" ,ghc-c2hs)))
363 (home-page "https://github.com/ttuegel/alsa-mixer")
364 (synopsis "Bindings to the ALSA simple mixer API")
365 (description
366 "This package provides bindings to the ALSA simple mixer API.")
367 (license license:bsd-3)))
368
dddbc90c
RV
369(define-public ghc-annotated-wl-pprint
370 (package
371 (name "ghc-annotated-wl-pprint")
372 (version "0.7.0")
373 (source
374 (origin
375 (method url-fetch)
376 (uri (string-append
377 "https://hackage.haskell.org/package/annotated-wl-pprint"
378 "/annotated-wl-pprint-" version
379 ".tar.gz"))
380 (sha256
381 (base32
382 "061xfz6qany3wf95csl8dcik2pz22cn8iv1qchhm16isw5zjs9hc"))))
383 (build-system haskell-build-system)
384 (home-page
385 "https://github.com/david-christiansen/annotated-wl-pprint")
386 (synopsis
387 "The Wadler/Leijen Pretty Printer, with annotation support")
388 (description "This is a modified version of wl-pprint, which was based on
389Wadler's paper \"A Prettier Printer\". This version allows the library user
390to annotate the text with semantic information, which can later be rendered in
391a variety of ways.")
392 (license license:bsd-3)))
393
394(define-public ghc-ansi-terminal
395 (package
396 (name "ghc-ansi-terminal")
f1b4a73f 397 (version "0.9.1")
dddbc90c
RV
398 (source
399 (origin
400 (method url-fetch)
401 (uri (string-append
402 "https://hackage.haskell.org/package/ansi-terminal/ansi-terminal-"
403 version
404 ".tar.gz"))
405 (sha256
406 (base32
f1b4a73f 407 "1yr0ld0kqns3w3j9gl62bdwshvyazidx4dv1qkvq19ivnf08w23l"))))
dddbc90c
RV
408 (build-system haskell-build-system)
409 (inputs
410 `(("ghc-colour" ,ghc-colour)))
411 (home-page "https://github.com/feuerbach/ansi-terminal")
412 (synopsis "ANSI terminal support for Haskell")
413 (description "This package provides ANSI terminal support for Haskell. It
414allows cursor movement, screen clearing, color output showing or hiding the
415cursor, and changing the title.")
416 (license license:bsd-3)))
417
418(define-public ghc-ansi-wl-pprint
419 (package
420 (name "ghc-ansi-wl-pprint")
c38746eb 421 (version "0.6.9")
7b01a977
RV
422 (source
423 (origin
424 (method url-fetch)
425 (uri (string-append "https://hackage.haskell.org/package/"
dddbc90c 426 "ansi-wl-pprint/ansi-wl-pprint-"
7b01a977
RV
427 version ".tar.gz"))
428 (sha256
429 (base32
c38746eb 430 "1b2fg8px98dzbaqyns10kvs8kn6cl1hdq5wb9saz40izrpkyicm7"))))
7b01a977
RV
431 (build-system haskell-build-system)
432 (inputs
dddbc90c
RV
433 `(("ghc-ansi-terminal" ,ghc-ansi-terminal)))
434 (home-page "https://github.com/ekmett/ansi-wl-pprint")
435 (synopsis "Wadler/Leijen Pretty Printer for colored ANSI terminal output")
436 (description "This is a pretty printing library based on Wadler's paper
437\"A Prettier Printer\". It has been enhanced with support for ANSI terminal
438colored output using the ansi-terminal package.")
439 (license license:bsd-3)))
440
441(define-public ghc-appar
442 (package
443 (name "ghc-appar")
1159d1a5 444 (version "0.1.8")
dddbc90c
RV
445 (source
446 (origin
447 (method url-fetch)
448 (uri (string-append
449 "https://hackage.haskell.org/package/appar/appar-"
450 version
451 ".tar.gz"))
452 (sha256
453 (base32
1159d1a5 454 "07v3h766q9mnhphsm53718h1lds147ix7dj15kc5hnsj4vffvkn4"))))
dddbc90c
RV
455 (build-system haskell-build-system)
456 (home-page
457 "https://hackage.haskell.org/package/appar")
458 (synopsis "Simple applicative parser")
459 (description "This package provides a simple applicative parser in Parsec
460style.")
461 (license license:bsd-3)))
462
af369394
JS
463(define-public ghc-assoc
464 (package
465 (name "ghc-assoc")
466 (version "1.0.1")
467 (source
468 (origin
469 (method url-fetch)
470 (uri (string-append
471 "https://hackage.haskell.org/package/assoc/assoc-"
472 version
473 ".tar.gz"))
474 (sha256
475 (base32
476 "1m9n4vp190bvn2wcrd4ggfwa9pi93jp0zgx02mdgywn2zfidw020"))))
477 (build-system haskell-build-system)
478 (inputs
479 `(("ghc-bifunctors" ,ghc-bifunctors)
480 ("ghc-tagged" ,ghc-tagged)))
481 (home-page
482 "http://hackage.haskell.org/package/assoc")
483 (synopsis
484 "Swap and assoc: Symmetric and Semigroupy Bifunctors")
485 (description
486 "Provides generalisations of @code{swap :: (a,b) -> (b,a)} and
487@code{assoc :: ((a,b),c) -> (a,(b,c))} to @code{Bifunctor}s supporting
488similar operations (e.g. @code{Either}, @code{These}).")
489 (license license:bsd-3)))
490
dddbc90c
RV
491(define-public ghc-async
492 (package
493 (name "ghc-async")
048ef066 494 (version "2.2.2")
dddbc90c
RV
495 (source
496 (origin
497 (method url-fetch)
498 (uri (string-append
499 "https://hackage.haskell.org/package/async/async-"
500 version
501 ".tar.gz"))
502 (sha256
503 (base32
048ef066 504 "1zxvfcyy4sg8lmzphi5dgnavksj5pav6rbvd5kc48lf4hanb2jjb"))))
dddbc90c
RV
505 (build-system haskell-build-system)
506 (inputs
507 `(("ghc-hashable" ,ghc-hashable)
508 ("ghc-hunit" ,ghc-hunit)
7b01a977
RV
509 ("ghc-test-framework" ,ghc-test-framework)
510 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)))
dddbc90c
RV
511 (home-page "https://github.com/simonmar/async")
512 (synopsis "Library to run IO operations asynchronously")
513 (description "Async provides a library to run IO operations
514asynchronously, and wait for their results. It is a higher-level interface
515over threads in Haskell, in which @code{Async a} is a concurrent thread that
516will eventually deliver a value of type @code{a}.")
7b01a977
RV
517 (license license:bsd-3)))
518
9ad9ec2e
AG
519(define-public ghc-atomic-primops
520 (package
521 (name "ghc-atomic-primops")
af16c6b0 522 (version "0.8.3")
9ad9ec2e
AG
523 (source
524 (origin
525 (method url-fetch)
526 (uri (string-append "https://hackage.haskell.org/package/atomic-primops"
527 "/atomic-primops-" version ".tar.gz"))
528 (sha256
529 (base32
af16c6b0 530 "03n5dmyplrqgbyf8dr91izkxci7gkl3i3fnp82i5ld869zrgjfh0"))))
9ad9ec2e
AG
531 (build-system haskell-build-system)
532 (inputs `(("ghc-primitive" ,ghc-primitive)))
533 (home-page "https://github.com/rrnewton/haskell-lockfree/wiki")
534 (synopsis "Safe approach to CAS and other atomic ops")
535 (description
536 "GHC 7.4 introduced a new @code{casMutVar} PrimOp which is difficult to
537use safely, because pointer equality is a highly unstable property in Haskell.
538This library provides a safer method based on the concept of @code{Ticket}s.")
539 (license license:bsd-3)))
540
dddbc90c 541(define-public ghc-atomic-write
79fcc5e5 542 (package
dddbc90c 543 (name "ghc-atomic-write")
c09d1e62 544 (version "0.2.0.6")
79fcc5e5
RV
545 (source
546 (origin
547 (method url-fetch)
dddbc90c
RV
548 (uri (string-append
549 "https://hackage.haskell.org/package/atomic-write/atomic-write-"
550 version
551 ".tar.gz"))
79fcc5e5
RV
552 (sha256
553 (base32
c09d1e62 554 "1xs3shwnlj8hmnm3q6jc8nv78z0481i5n4hrqqdmbpx8grvlnqyl"))))
dddbc90c
RV
555 (build-system haskell-build-system)
556 (inputs
557 `(("ghc-temporary" ,ghc-temporary)
558 ("ghc-unix-compat" ,ghc-unix-compat)))
559 (native-inputs
560 `(("ghc-temporary" ,ghc-temporary)
561 ("ghc-unix-compat" ,ghc-unix-compat)
562 ("ghc-hspec" ,ghc-hspec)
563 ("hspec-discover" ,hspec-discover)))
564 (home-page "https://github.com/stackbuilders/atomic-write")
565 (synopsis "Atomically write to a file")
566 (description
567 "Atomically write to a file on POSIX-compliant systems while preserving
568permissions. @code{mv} is an atomic operation. This makes it simple to write
569to a file atomically just by using the @code{mv} operation. However, this
570will destroy the permissions on the original file. This library preserves
571permissions while atomically writing to a file.")
572 (license license:expat)))
573
b7250901
JS
574(define-public ghc-atomic-write-0.2.0.7
575 (package
576 (inherit ghc-atomic-write)
577 (version "0.2.0.7")
578 (source
579 (origin
580 (inherit (package-source ghc-atomic-write))
581 (uri (string-append
582 "https://hackage.haskell.org/package/atomic-write/atomic-write-"
583 version
584 ".tar.gz"))
585 (sha256
586 (base32
587 "03cn3ii74h0w3g4h78xsx9v2sn58r3qsr2dbdwq340xwhiwcgxdm"))))))
588
dddbc90c
RV
589(define-public ghc-attoparsec
590 (package
591 (name "ghc-attoparsec")
511c3204 592 (version "0.13.2.3")
dddbc90c
RV
593 (source
594 (origin
595 (method url-fetch)
596 (uri (string-append
597 "https://hackage.haskell.org/package/attoparsec/attoparsec-"
598 version
599 ".tar.gz"))
600 (sha256
601 (base32
511c3204 602 "1ngjn9h5n0vyki0m2jir4mg85875ysswy9hznpmj1r856mqwc6ix"))))
79fcc5e5 603 (build-system haskell-build-system)
79fcc5e5 604 (arguments
dddbc90c
RV
605 `(#:phases
606 (modify-phases %standard-phases
607 (add-after 'unpack 'patch-for-newer-quickcheck
608 (lambda _
609 (substitute* "attoparsec.cabal"
610 (("QuickCheck >= 2\\.7 && < 2\\.10")
611 "QuickCheck >= 2.7 && < 2.12"))
612 ;; This test fails because of the newer QuickCheck:
613 ;; <https://github.com/bos/attoparsec/issues/134>.
614 (substitute* "tests/QC/ByteString.hs"
615 ((", testProperty \"satisfyWith\" satisfyWith")
616 "")))))))
617 (inputs
618 `(("ghc-scientific" ,ghc-scientific)))
619 (native-inputs
620 `(("ghc-tasty" ,ghc-tasty)
621 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
622 ("ghc-quickcheck" ,ghc-quickcheck)
623 ("ghc-quickcheck-unicode" ,ghc-quickcheck-unicode)
624 ("ghc-vector" ,ghc-vector)))
625 (home-page "https://github.com/bos/attoparsec")
626 (synopsis "Fast combinator parsing for bytestrings and text")
627 (description "This library provides a fast parser combinator library,
628aimed particularly at dealing efficiently with network protocols and
629complicated text/binary file formats.")
79fcc5e5
RV
630 (license license:bsd-3)))
631
dddbc90c 632(define-public ghc-attoparsec-bootstrap
6b34d01c 633 (package
dddbc90c
RV
634 (inherit ghc-attoparsec)
635 (name "ghc-attoparsec-bootstrap")
636 (arguments `(#:tests? #f))
637 (inputs
638 `(("ghc-scientific" ,ghc-scientific-bootstrap)))
639 (native-inputs '())
799d8d3c 640 (properties '((hidden? #t)))))
dddbc90c
RV
641
642(define-public ghc-attoparsec-iso8601
643 (package
644 (name "ghc-attoparsec-iso8601")
97f267c8 645 (version "1.0.1.0")
6b34d01c
RV
646 (source
647 (origin
648 (method url-fetch)
649 (uri (string-append "https://hackage.haskell.org/package/"
dddbc90c
RV
650 "attoparsec-iso8601-" version "/"
651 "attoparsec-iso8601-" version ".tar.gz"))
6b34d01c
RV
652 (sha256
653 (base32
97f267c8 654 "0hj10w15qp2z5bz2v4xahhmbgzclpyfi5l2sv97wqycysg9gp7s9"))))
6b34d01c 655 (build-system haskell-build-system)
dddbc90c
RV
656 (arguments
657 `(#:cabal-revision
97f267c8 658 ("1" "1rjhscmczgs1bwyqx7lvkm8py3ylxjd2797mrzgnq60fvm292750")))
dddbc90c
RV
659 (inputs `(("ghc-attoparsec" ,ghc-attoparsec)
660 ("ghc-base-compat" ,ghc-base-compat)))
661 (home-page "https://github.com/bos/aeson")
662 (synopsis "Parse ISO 8601 dates")
663 (description "Haskell library for parsing of ISO 8601 dates, originally
664from aeson.")
6b34d01c 665 (license license:bsd-3)))
b57e99f5 666
dddbc90c 667(define-public ghc-auto-update
b57e99f5 668 (package
dddbc90c 669 (name "ghc-auto-update")
11b1b6cd 670 (version "0.1.6")
dddbc90c
RV
671 (source
672 (origin
673 (method url-fetch)
674 (uri (string-append
675 "https://hackage.haskell.org/package/auto-update/auto-update-"
676 version
677 ".tar.gz"))
678 (sha256
679 (base32
11b1b6cd 680 "1i36xc2i34aync8271x3pv515l3zb53i518dybn8ghqkhzf27q7l"))))
dddbc90c 681 (build-system haskell-build-system)
11b1b6cd
TS
682 (native-inputs
683 `(("ghc-hspec" ,ghc-hspec)
684 ("ghc-hunit" ,ghc-hunit)
685 ("ghc-retry" ,ghc-retry)
686 ("hspec-discover" ,hspec-discover)))
dddbc90c
RV
687 (home-page "https://github.com/yesodweb/wai")
688 (synopsis "Efficiently run periodic, on-demand actions")
689 (description "This library provides mechanisms to efficiently run
690periodic, on-demand actions in Haskell.")
691 (license license:expat)))
692
693(define-public ghc-aws
694 (package
695 (name "ghc-aws")
696 (version "0.20")
b57e99f5
RV
697 (source
698 (origin
699 (method url-fetch)
700 (uri (string-append "https://hackage.haskell.org/package/"
dddbc90c
RV
701 "aws-" version "/aws-" version ".tar.gz"))
702 (sha256 (base32
703 "0pwpabmypi1w8rni9qfwabgn95jks4h8dyw6889mn8xzsrhdhyf0"))))
704 (build-system haskell-build-system)
705 (arguments `(#:tests? #f)) ; Tests require AWS credentials.
706 (inputs
707 `(("ghc-aeson" ,ghc-aeson)
708 ("ghc-attoparsec" ,ghc-attoparsec)
709 ("ghc-base16-bytestring" ,ghc-base16-bytestring)
710 ("ghc-base64-bytestring" ,ghc-base64-bytestring)
711 ("ghc-blaze-builder" ,ghc-blaze-builder)
712 ("ghc-byteable" ,ghc-byteable)
713 ("ghc-case-insensitive" ,ghc-case-insensitive)
714 ("ghc-cereal" ,ghc-cereal)
715 ("ghc-conduit" ,ghc-conduit)
716 ("ghc-conduit-extra" ,ghc-conduit-extra)
717 ("ghc-cryptonite" ,ghc-cryptonite)
718 ("ghc-data-default" ,ghc-data-default)
719 ("ghc-http-conduit" ,ghc-http-conduit)
720 ("ghc-http-types" ,ghc-http-types)
721 ("ghc-lifted-base" ,ghc-lifted-base)
722 ("ghc-monad-control" ,ghc-monad-control)
723 ("ghc-network" ,ghc-network)
724 ("ghc-old-locale" ,ghc-old-locale)
725 ("ghc-safe" ,ghc-safe)
726 ("ghc-scientific" ,ghc-scientific)
727 ("ghc-tagged" ,ghc-tagged)
728 ("ghc-unordered-containers" ,ghc-unordered-containers)
729 ("ghc-utf8-string" ,ghc-utf8-string)
730 ("ghc-vector" ,ghc-vector)
731 ("ghc-xml-conduit" ,ghc-xml-conduit)))
732 (native-inputs
733 `(("ghc-quickcheck" ,ghc-quickcheck)
734 ("ghc-errors" ,ghc-errors)
735 ("ghc-http-client" ,ghc-http-client)
736 ("ghc-http-client-tls" ,ghc-http-client-tls)
737 ("ghc-quickcheck-instances" ,ghc-quickcheck-instances)
738 ("ghc-tasty" ,ghc-tasty)
739 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
740 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
741 ("ghc-conduit-combinators" ,ghc-conduit-combinators)))
742 (home-page "https://github.com/aristidb/aws")
743 (synopsis "Amazon Web Services for Haskell")
744 (description "This package attempts to provide support for using
745Amazon Web Services like S3 (storage), SQS (queuing) and others to
746Haskell programmers. The ultimate goal is to support all Amazon
747Web Services.")
748 (license license:bsd-3)))
749
750(define-public ghc-base16-bytestring
751 (package
752 (name "ghc-base16-bytestring")
753 (version "0.1.1.6")
754 (source
755 (origin
756 (method url-fetch)
757 (uri (string-append
758 "https://hackage.haskell.org/package/base16-bytestring/"
759 "base16-bytestring-" version ".tar.gz"))
b57e99f5
RV
760 (sha256
761 (base32
dddbc90c 762 "0jf40m3yijqw6wd1rwwvviww46fasphaay9m9rgqyhf5aahnbzjs"))))
b57e99f5 763 (build-system haskell-build-system)
dddbc90c
RV
764 (home-page "https://github.com/bos/base16-bytestring")
765 (synopsis "Fast base16 (hex) encoding and decoding for ByteStrings")
766 (description
767 "This package provides a Haskell library for working with base16-encoded
768data quickly and efficiently, using the ByteString type.")
b57e99f5 769 (license license:bsd-3)))
bbf8bf31 770
dddbc90c 771(define-public ghc-base64-bytestring
bbf8bf31 772 (package
dddbc90c
RV
773 (name "ghc-base64-bytestring")
774 (version "1.0.0.2")
bbf8bf31
RV
775 (source
776 (origin
777 (method url-fetch)
dddbc90c
RV
778 (uri (string-append
779 "https://hackage.haskell.org/package/base64-bytestring/base64-bytestring-"
780 version
781 ".tar.gz"))
782 (sha256
783 (base32 "13305brzlac24pifiqd5a2z10c6k6amhpdy9cc0z5ryrkgnm8dhr"))))
784 (build-system haskell-build-system)
785 (arguments `(#:tests? #f)) ; FIXME: testing libraries are missing.
786 (home-page "https://github.com/bos/base64-bytestring")
787 (synopsis "Base64 encoding and decoding for ByteStrings")
788 (description "This library provides fast base64 encoding and decoding for
789Haskell @code{ByteString}s.")
790 (license license:bsd-3)))
791
792(define-public ghc-base-compat
793 (package
794 (name "ghc-base-compat")
4daaa371 795 (version "0.10.5")
dddbc90c
RV
796 (source
797 (origin
798 (method url-fetch)
799 (uri (string-append
800 "https://hackage.haskell.org/package/base-compat/base-compat-"
801 version
802 ".tar.gz"))
bbf8bf31
RV
803 (sha256
804 (base32
4daaa371 805 "0hgvlqcr852hfp52jp99snhbj550mvxxpi8qn15d8ml9aqhyl2lr"))))
bbf8bf31 806 (build-system haskell-build-system)
e2b021df 807 (outputs '("out" "static" "doc"))
bbf8bf31 808 (native-inputs
dddbc90c
RV
809 `(("ghc-quickcheck" ,ghc-quickcheck)
810 ("ghc-hspec" ,ghc-hspec)
811 ("hspec-discover" ,hspec-discover)))
812 (home-page "https://hackage.haskell.org/package/base-compat")
813 (synopsis "Haskell compiler compatibility library")
814 (description "This library provides functions available in later versions
815of base to a wider range of compilers, without requiring the use of CPP
816pragmas in your code.")
817 (license license:bsd-3)))
818
f9d78c7f
TS
819(define-public ghc-base-compat-batteries
820 (package
821 (name "ghc-base-compat-batteries")
822 (version "0.10.5")
823 (source
824 (origin
825 (method url-fetch)
826 (uri (string-append "https://hackage.haskell.org/package/"
827 "base-compat-batteries/base-compat-batteries-"
828 version ".tar.gz"))
829 (sha256
830 (base32
831 "1vkhc639vqiv5p39jn1v312z32i7yk5q2lf0ap4jxl1v8p8wyp8p"))))
832 (build-system haskell-build-system)
833 (inputs
834 `(("ghc-base-compat" ,ghc-base-compat)))
835 (native-inputs
836 `(("ghc-hspec" ,ghc-hspec)
837 ("ghc-quickcheck" ,ghc-quickcheck)
838 ("hspec-discover" ,hspec-discover)))
839 (arguments
840 `(#:cabal-revision
841 ("1" "15sn2qc8k0hxbb2nai341kkrci98hlhzcj2ci087m0zxcg5jcdbp")))
3ef91e15 842 (home-page "https://hackage.haskell.org/package/base-compat-batteries")
f9d78c7f
TS
843 (synopsis "base-compat with extra batteries")
844 (description "This library provides functions available in later
845versions of @code{base} to a wider range of compilers, without requiring
846you to use CPP pragmas in your code. This package provides the same API
847as the @code{base-compat} library, but depends on compatibility
848packages (such as @code{semigroups}) to offer a wider support window
849than @code{base-compat}, which has no dependencies.")
850 (license license:expat)))
851
dddbc90c
RV
852(define-public ghc-basement
853 (package
854 (name "ghc-basement")
8b56c1fd 855 (version "0.0.11")
dddbc90c
RV
856 (source
857 (origin
858 (method url-fetch)
859 (uri (string-append "https://hackage.haskell.org/package/"
860 "basement/basement-" version ".tar.gz"))
861 (sha256
862 (base32
8b56c1fd 863 "0srlws74yiraqaapgcjd9p5d1fwb3zr9swcz74jpjm55fls2nn37"))))
dddbc90c 864 (build-system haskell-build-system)
05f7f8be 865 (outputs '("out" "static" "doc"))
dddbc90c
RV
866 (home-page "https://github.com/haskell-foundation/foundation")
867 (synopsis "Basic primitives for Foundation starter pack")
868 (description
869 "This package contains basic primitives for the Foundation set of
870packages.")
871 (license license:bsd-3)))
872
873(define-public ghc-base-orphans
874 (package
875 (name "ghc-base-orphans")
780477fb 876 (version "0.8.1")
dddbc90c
RV
877 (source
878 (origin
879 (method url-fetch)
880 (uri (string-append
881 "https://hackage.haskell.org/package/base-orphans/base-orphans-"
882 version
883 ".tar.gz"))
884 (sha256
885 (base32
780477fb 886 "1nwr9av27i9p72k0sn96mw3ywdczw65dy5gd5wxpabhhxlxdcas4"))))
dddbc90c
RV
887 (build-system haskell-build-system)
888 (native-inputs
889 `(("ghc-quickcheck" ,ghc-quickcheck)
890 ("ghc-hspec" ,ghc-hspec)
891 ("hspec-discover" ,hspec-discover)))
892 (home-page "https://hackage.haskell.org/package/base-orphans")
893 (synopsis "Orphan instances for backwards compatibility")
894 (description "This package defines orphan instances that mimic instances
895available in later versions of base to a wider (older) range of compilers.")
896 (license license:bsd-3)))
897
898(define-public ghc-base-prelude
899 (package
900 (name "ghc-base-prelude")
901 (version "1.3")
902 (source
903 (origin
904 (method url-fetch)
905 (uri (string-append "https://hackage.haskell.org/package/"
906 "base-prelude-" version "/"
907 "base-prelude-" version ".tar.gz"))
908 (sha256
909 (base32
910 "1zk728sd09hh2r4xwz4lazsrrgg5cshydn64932sm0vckplndk73"))))
911 (build-system haskell-build-system)
3d7ee2f8 912 (outputs '("out" "static" "doc"))
dddbc90c
RV
913 (home-page "https://github.com/nikita-volkov/base-prelude")
914 (synopsis "The most complete prelude formed solely from the Haskell's base
915package")
916 (description "This Haskell package aims to reexport all the non-conflicting
917and most general definitions from the \"base\" package.
918
919This includes APIs for applicatives, arrows, monoids, foldables, traversables,
920exceptions, generics, ST, MVars and STM.
921
922This package will never have any dependencies other than \"base\".
923
924Versioning policy:
925
926The versioning policy of this package deviates from PVP in the sense
927that its exports in part are transitively determined by the version of \"base\".
928Therefore it's recommended for the users of @code{ghc-base-prelude} to specify
929the bounds of \"base\" as well.")
930 (license license:expat)))
931
932(define-public ghc-base-unicode-symbols
933 (package
934 (name "ghc-base-unicode-symbols")
935 (version "0.2.3")
936 (source
937 (origin
938 (method url-fetch)
939 (uri (string-append
940 "mirror://hackage/package/base-unicode-symbols/base-unicode-symbols-"
941 version
942 ".tar.gz"))
943 (sha256
944 (base32
945 "1ia6li7qjg1zkak4gf6mnbshw45mq9bfjr0jch58ds0lscmvwyzf"))))
946 (build-system haskell-build-system)
228d2901 947 (home-page "https://wiki.haskell.org/Unicode-symbols")
dddbc90c
RV
948 (synopsis "Unicode alternatives for common functions and operators")
949 (description "This package defines new symbols for a number of functions,
950operators and types in the base package. All symbols are documented with
951their actual definition and information regarding their Unicode code point.
952They should be completely interchangeable with their definitions. For
953further Unicode goodness you can enable the @code{UnicodeSyntax}
954@url{https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/glasgow_exs.html#unicode-syntax,
955language extension}. This extension enables Unicode characters to be used to
956stand for certain ASCII character sequences, i.e. → instead of @code{->},
957∀ instead of @code{forall} and many others.")
958 (license license:bsd-3)))
959
ec8491b0
ASM
960(define-public ghc-basic-prelude
961 (package
962 (name "ghc-basic-prelude")
963 (version "0.7.0")
964 (source
965 (origin
966 (method url-fetch)
967 (uri (string-append
968 "https://hackage.haskell.org/package/basic-prelude/"
969 "basic-prelude-" version ".tar.gz"))
970 (sha256
971 (base32
972 "0yckmnvm6i4vw0mykj4fzl4ldsf67v8d2h0vp1bakyj84n4myx8h"))))
973 (build-system haskell-build-system)
974 (inputs
975 `(("ghc-hashable" ,ghc-hashable)
976 ("ghc-unordered-containers"
977 ,ghc-unordered-containers)
978 ("ghc-vector" ,ghc-vector)))
979 (home-page "https://github.com/snoyberg/basic-prelude#readme")
980 (synopsis "Enhanced core prelude; a common foundation for alternate preludes")
981 (description
982 "The premise of basic-prelude is that there are a lot of very commonly
983desired features missing from the standard Prelude, such as commonly used
984operators (<$> and >=>, for instance) and imports for common datatypes
985(e.g., ByteString and Vector). At the same time, there are lots of other
986components which are more debatable, such as providing polymorphic versions
987of common functions.
988
989So basic-prelude is intended to give a common foundation for a number of
990alternate preludes. The package provides two modules: CorePrelude provides
991the common ground for other preludes to build on top of, while BasicPrelude
992exports CorePrelude together with commonly used list functions to provide a
993drop-in replacement for the standard Prelude.
994
995Users wishing to have an improved Prelude can use BasicPrelude. Developers
996wishing to create a new prelude should use CorePrelude.")
997 (license license:expat)))
998
dddbc90c
RV
999(define-public ghc-bifunctors
1000 (package
1001 (name "ghc-bifunctors")
0beaec66 1002 (version "5.5.5")
dddbc90c
RV
1003 (source
1004 (origin
1005 (method url-fetch)
1006 (uri (string-append
1007 "https://hackage.haskell.org/package/bifunctors/bifunctors-"
1008 version
1009 ".tar.gz"))
1010 (sha256
1011 (base32
0beaec66 1012 "0rn47q8dzv0g1fyams99p4py6q0asxdc50q9k0nj497brk738xcb"))))
dddbc90c
RV
1013 (build-system haskell-build-system)
1014 (inputs
1015 `(("ghc-base-orphans" ,ghc-base-orphans)
1016 ("ghc-comonad" ,ghc-comonad)
1017 ("ghc-th-abstraction" ,ghc-th-abstraction)
1018 ("ghc-transformers-compat" ,ghc-transformers-compat)
1019 ("ghc-tagged" ,ghc-tagged)
1020 ("ghc-semigroups" ,ghc-semigroups)))
1021 (native-inputs
1022 `(("ghc-hspec" ,ghc-hspec)
1023 ("hspec-discover" ,hspec-discover)
1024 ("ghc-quickcheck" ,ghc-quickcheck)))
1025 (home-page "https://github.com/ekmett/bifunctors/")
1026 (synopsis "Bifunctors for Haskell")
1027 (description "This package provides bifunctors for Haskell.")
1028 (license license:bsd-3)))
1029
1030(define-public ghc-bindings-dsl
1031 (package
1032 (name "ghc-bindings-dsl")
1033 (version "1.0.25")
1034 (source
1035 (origin
1036 (method url-fetch)
1037 (uri (string-append "https://hackage.haskell.org/package/bindings-DSL/"
1038 "bindings-DSL-" version ".tar.gz"))
1039 (sha256
1040 (base32
1041 "0kqrd78nspl3lk4a0fqn47d8dirjg3b24dkvkigcrlb81hw35pk3"))))
1042 (build-system haskell-build-system)
1043 (home-page "https://github.com/jwiegley/bindings-dsl/wiki")
1044 (synopsis "FFI domain specific language, on top of hsc2hs")
1045 (description
1046 "This is a set of macros to be used when writing Haskell FFI. They were
1047designed to be able to fully describe C interfaces, so that @code{hsc2hs} can
1048extract from them all Haskell code needed to mimic such interfaces. All
1049Haskell names used are automatically derived from C names, structures are
1050mapped to Haskell instances of @code{Storable}, and there are also macros you
1051can use with C code to help write bindings to inline functions or macro
1052functions.")
1053 (license license:bsd-3)))
1054
64f42786
TS
1055(define-public ghc-bitarray
1056 (package
1057 (name "ghc-bitarray")
1058 (version "0.0.1.1")
1059 (source
1060 (origin
1061 (method url-fetch)
1062 (uri (string-append "https://hackage.haskell.org/package/"
1063 "bitarray/bitarray-" version ".tar.gz"))
1064 (sha256
1065 (base32
1066 "00nqd62cbh42qqqvcl6iv1i9kbv0f0mkiygv4j70wfh5cl86yzxj"))))
1067 (build-system haskell-build-system)
1068 (arguments
1069 `(#:cabal-revision
1070 ("1" "10fk92v9afjqk43zi621jxl0n8kci0xjj32lz3vqa9xbh67zjz45")))
1071 (home-page "https://hackage.haskell.org/package/bitarray")
1072 (synopsis "Mutable and immutable bit arrays")
1073 (description "The package provides mutable and immutable bit arrays.")
1074 (license license:bsd-3)))
1075
dddbc90c
RV
1076(define-public ghc-blaze-builder
1077 (package
1078 (name "ghc-blaze-builder")
1079 (version "0.4.1.0")
1080 (source
1081 (origin
1082 (method url-fetch)
1083 (uri (string-append
1084 "https://hackage.haskell.org/package/blaze-builder/blaze-builder-"
1085 version
1086 ".tar.gz"))
1087 (sha256
1088 (base32
1089 "05681dih2d8s96an945wkbwl05w8ddbcfx8n3r3ck79ydyb8pz4i"))))
1090 (build-system haskell-build-system)
1091 (arguments `(#:tests? #f)) ; FIXME: Missing test libraries.
1092 (inputs
1093 `(("ghc-utf8-string" ,ghc-utf8-string)))
1094 (home-page "https://github.com/lpsmith/blaze-builder")
1095 (synopsis "Efficient buffered output")
1096 (description "This library provides an implementation of the older
1097@code{blaze-builder} interface in terms of the new builder that shipped with
1098@code{bytestring-0.10.4.0}. This implementation is mostly intended as a
1099bridge to the new builder, so that code that uses the old interface can
1100interoperate with code that uses the new implementation.")
1101 (license license:bsd-3)))
1102
1103(define-public ghc-blaze-markup
1104 (package
1105 (name "ghc-blaze-markup")
7d30fcf3 1106 (version "0.8.2.3")
dddbc90c
RV
1107 (source
1108 (origin
1109 (method url-fetch)
1110 (uri (string-append "https://hackage.haskell.org/package/"
1111 "blaze-markup/blaze-markup-"
1112 version ".tar.gz"))
1113 (sha256
1114 (base32
7d30fcf3 1115 "1g9m7ansj7fdyzhz1wqkbzn5amjm50vjgjdwkbjc5qqhagnv1y3j"))))
dddbc90c
RV
1116 (build-system haskell-build-system)
1117 (arguments
1118 `(#:phases
1119 (modify-phases %standard-phases
1120 (add-before 'configure 'update-constraints
1121 (lambda _
1122 (substitute* "blaze-markup.cabal"
1123 (("tasty >= 1\\.0 && < 1\\.1")
1124 "tasty >= 1.0 && < 1.2")))))))
1125 (inputs
1126 `(("ghc-blaze-builder" ,ghc-blaze-builder)))
1127 (native-inputs
1128 `(("ghc-hunit" ,ghc-hunit)
1129 ("ghc-quickcheck" ,ghc-quickcheck)
1130 ("ghc-tasty" ,ghc-tasty)
1131 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
1132 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
1133 (home-page "https://jaspervdj.be/blaze")
1134 (synopsis "Fast markup combinator library for Haskell")
1135 (description "This library provides core modules of a markup combinator
1136library for Haskell.")
1137 (license license:bsd-3)))
1138
1139(define-public ghc-bloomfilter
1140 (package
1141 (name "ghc-bloomfilter")
1142 (version "2.0.1.0")
1143 (source
1144 (origin
1145 (method url-fetch)
1146 (uri (string-append "https://hackage.haskell.org/package/"
1147 "bloomfilter/bloomfilter-" version ".tar.gz"))
1148 (sha256
1149 (base32
1150 "03vrmncg1c10a2wcg5skq30m1yiknn7nwxz2gblyyfaxglshspkc"))))
1151 (build-system haskell-build-system)
1152 (native-inputs
1153 `(("ghc-quickcheck" ,ghc-quickcheck)
1154 ("ghc-random" ,ghc-random)
1155 ("ghc-test-framework" ,ghc-test-framework)
1156 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
1157 (home-page "https://github.com/bos/bloomfilter")
1158 (synopsis "Pure and impure Bloom filter implementations")
1159 (description "This package provides both mutable and immutable Bloom
1160filter data types, along with a family of hash functions and an easy-to-use
1161interface.")
1162 (license license:bsd-3)))
1163
1164(define-public ghc-boxes
1165 (package
1166 (name "ghc-boxes")
1167 (version "0.1.5")
1168 (source
1169 (origin
1170 (method url-fetch)
1171 (uri (string-append "https://hackage.haskell.org/package/boxes/boxes-"
1172 version ".tar.gz"))
1173 (sha256
1174 (base32 "1hsnmw95i58d4bkpxby3ddsj1cawypw4mdyb18m393s5i8p7iq9q"))))
1175 (build-system haskell-build-system)
1176 (inputs
1177 `(("ghc-split" ,ghc-split)
1178 ("ghc-quickcheck" ,ghc-quickcheck)))
1179 (home-page "https://hackage.haskell.org/package/boxes")
1180 (synopsis "2D text pretty-printing library")
1181 (description
1182 "Boxes is a pretty-printing library for laying out text in two dimensions,
1183using a simple box model.")
1184 (license license:bsd-3)))
1185
1186(define-public ghc-byteable
1187 (package
1188 (name "ghc-byteable")
1189 (version "0.1.1")
1190 (source (origin
1191 (method url-fetch)
1192 (uri (string-append "https://hackage.haskell.org/package/"
1193 "byteable/byteable-" version ".tar.gz"))
1194 (sha256
1195 (base32
1196 "1qizg0kxxjqnd3cbrjhhidk5pbbciz0pb3z5kzikjjxnnnhk8fr4"))))
1197 (build-system haskell-build-system)
1198 (home-page "https://github.com/vincenthz/hs-byteable")
1199 (synopsis "Type class for sequence of bytes")
1200 (description
1201 "This package provides an abstract class to manipulate sequence of bytes.
1202The use case of this class is abstracting manipulation of types that are just
1203wrapping a bytestring with stronger and more meaniful name.")
1204 (license license:bsd-3)))
1205
1206(define-public ghc-byteorder
1207 (package
1208 (name "ghc-byteorder")
1209 (version "1.0.4")
1210 (source
1211 (origin
1212 (method url-fetch)
1213 (uri (string-append
1214 "https://hackage.haskell.org/package/byteorder/byteorder-"
1215 version
1216 ".tar.gz"))
1217 (sha256
1218 (base32
1219 "06995paxbxk8lldvarqpb3ygcjbg4v8dk4scib1rjzwlhssvn85x"))))
1220 (build-system haskell-build-system)
1221 (home-page
1222 "http://community.haskell.org/~aslatter/code/byteorder")
1223 (synopsis
1224 "Exposes the native endianness of the system")
1225 (description
1226 "This package is for working with the native byte-ordering of the
1227system.")
1228 (license license:bsd-3)))
1229
1230(define-public ghc-bytes
1231 (package
1232 (name "ghc-bytes")
1233 (version "0.15.5")
1234 (source
1235 (origin
1236 (method url-fetch)
1237 (uri
1238 (string-append "https://hackage.haskell.org/package/bytes-"
1239 version "/bytes-"
1240 version ".tar.gz"))
1241 (file-name (string-append name "-" version ".tar.gz"))
1242 (sha256
1243 (base32
1244 "063il2vrn0p88r9gzndh4ijs0mxj37khkc9ym9bqdsv7ngk3b683"))))
1245 (build-system haskell-build-system)
1246 (inputs `(("ghc-cereal" ,ghc-cereal)
1247 ("cabal-doctest" ,cabal-doctest)
1248 ("ghc-doctest" ,ghc-doctest)
1249 ("ghc-scientific" ,ghc-scientific)
1250 ("ghc-transformers-compat" ,ghc-transformers-compat)
1251 ("ghc-unordered-containers" ,ghc-unordered-containers)
1252 ("ghc-void" ,ghc-void)
1253 ("ghc-vector" ,ghc-vector)))
1254 (synopsis "Serialization between @code{binary} and @code{cereal}")
1255 (description "This package provides a simple compatibility shim that lets
1256you work with both @code{binary} and @code{cereal} with one chunk of
1257serialization code.")
1258 (home-page "https://hackage.haskell.org/package/bytes")
1259 (license license:bsd-3)))
1260
1261(define-public ghc-bytestring-builder
1262 (package
1263 (name "ghc-bytestring-builder")
13ac8a7f 1264 (version "0.10.8.2.0")
dddbc90c
RV
1265 (source
1266 (origin
1267 (method url-fetch)
1268 (uri (string-append
1269 "https://hackage.haskell.org/package/bytestring-builder"
1270 "/bytestring-builder-" version ".tar.gz"))
1271 (sha256
1272 (base32
13ac8a7f 1273 "0grcrgwwwcvwrs9az7l4d3kf0lsqfa9qpmjzf6iyanvwn9nyzyi7"))))
dddbc90c
RV
1274 (build-system haskell-build-system)
1275 (arguments `(#:haddock? #f)) ; Package contains no documentation.
1276 (home-page "https://hackage.haskell.org/package/bytestring-builder")
1277 (synopsis "The new bytestring builder, packaged outside of GHC")
1278 (description "This package provides the bytestring builder that is
1279debuting in bytestring-0.10.4.0, which should be shipping with GHC 7.8.
1280Compatibility package for older packages.")
1281 (license license:bsd-3)))
1282
1283(define-public ghc-bytestring-handle
1284 (package
1285 (name "ghc-bytestring-handle")
1286 (version "0.1.0.6")
1287 (source
1288 (origin
1289 (method url-fetch)
1290 (uri (string-append
1291 "https://hackage.haskell.org/package/bytestring-handle/bytestring-handle-"
1292 version ".tar.gz"))
1293 (sha256
1294 (base32
1295 "18f17aja1ivhr3zyg2cccn2m03hdn5jf5410dndkhf12gvgiqs7y"))))
1296 (build-system haskell-build-system)
1297 (arguments
853748c4
TS
1298 `(#:cabal-revision
1299 ("1" "0x11aj6w1lijh84jcdq1qgyvdnc7i9ivbyq4wf9rxicg57viisz9")
1300 #:phases
dddbc90c
RV
1301 (modify-phases %standard-phases
1302 (add-before 'configure 'update-constraints
1303 (lambda _
1304 (substitute* "bytestring-handle.cabal"
1305 (("QuickCheck >= 2\\.1\\.2 && < 2\\.11")
853748c4 1306 "QuickCheck >= 2.1.2 && < 2.14")))))))
dddbc90c
RV
1307 (inputs
1308 `(("ghc-hunit" ,ghc-hunit)
1309 ("ghc-quickcheck" ,ghc-quickcheck)
1310 ("ghc-test-framework" ,ghc-test-framework)
1311 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
1312 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
1313 (home-page "https://hub.darcs.net/ganesh/bytestring-handle")
1314 (synopsis "ByteString-backed Handles")
1315 (description "ByteString-backed Handles") ; There is no description
1316 (license license:bsd-3)))
1317
1318(define-public ghc-bytestring-lexing
1319 (package
1320 (name "ghc-bytestring-lexing")
1321 (version "0.5.0.2")
1322 (source
1323 (origin
1324 (method url-fetch)
1325 (uri (string-append "https://hackage.haskell.org/package/"
1326 "bytestring-lexing/bytestring-lexing-"
1327 version ".tar.gz"))
1328 (sha256
1329 (base32
1330 "0wrzniawhgpphc6yx1v972gyqxdbv0pizaz9bafahrshyb9svy81"))))
1331 (build-system haskell-build-system)
1332 (home-page "http://code.haskell.org/~wren/")
1333 (synopsis "Parse and produce literals from strict or lazy bytestrings")
1334 (description
1335 "This package provides tools to parse and produce literals efficiently
1336from strict or lazy bytestrings.")
1337 (license license:bsd-2)))
1338
1339(define-public ghc-bzlib-conduit
1340 (package
1341 (name "ghc-bzlib-conduit")
5fba8d6d 1342 (version "0.3.0.2")
dddbc90c
RV
1343 (source
1344 (origin
1345 (method url-fetch)
1346 (uri (string-append "https://hackage.haskell.org/package/bzlib-conduit/"
1347 "bzlib-conduit-" version ".tar.gz"))
1348 (sha256
1349 (base32
5fba8d6d 1350 "0a21zin5plsl37hkxh2jv8cxwyjrbs2fy7n5cyrzgdaa7lmp6b7b"))))
dddbc90c
RV
1351 (build-system haskell-build-system)
1352 (inputs
1353 `(("ghc-bindings-dsl" ,ghc-bindings-dsl)
1354 ("ghc-conduit" ,ghc-conduit)
1355 ("ghc-data-default-class" ,ghc-data-default-class)
1356 ("ghc-resourcet" ,ghc-resourcet)))
1357 (native-inputs
1358 `(("ghc-hspec" ,ghc-hspec)
1359 ("ghc-random" ,ghc-random)))
1360 (home-page "https://github.com/snoyberg/bzlib-conduit")
1361 (synopsis "Streaming compression/decompression via conduits")
1362 (description
1363 "This package provides Haskell bindings to bzlib and Conduit support for
1364streaming compression and decompression.")
1365 (license license:bsd-3)))
1366
1367(define-public ghc-c2hs
1368 (package
1369 (name "ghc-c2hs")
1370 (version "0.28.6")
1371 (source
1372 (origin
1373 (method url-fetch)
1374 (uri (string-append
1375 "https://hackage.haskell.org/package/c2hs/c2hs-"
1376 version
1377 ".tar.gz"))
1378 (sha256
1379 (base32
1380 "1nplgxfin139x12sb656f5870rpdclrhzi8mq8pry035qld15pci"))))
1381 (build-system haskell-build-system)
1382 (inputs
1383 `(("ghc-language-c" ,ghc-language-c)
1384 ("ghc-dlist" ,ghc-dlist)))
1385 (native-inputs
1386 `(("ghc-test-framework" ,ghc-test-framework)
1387 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
1388 ("ghc-hunit" ,ghc-hunit)
a723d36d 1389 ("ghc-shelly" ,ghc-shelly)))
dddbc90c 1390 (arguments
bfebc598 1391 `(#:phases
dddbc90c
RV
1392 (modify-phases %standard-phases
1393 (add-before 'check 'set-cc
1394 ;; add a cc executable in the path, needed for some tests to pass
1395 (lambda* (#:key inputs #:allow-other-keys)
1396 (let ((gcc (assoc-ref inputs "gcc"))
1397 (tmpbin (tmpnam))
1398 (curpath (getenv "PATH")))
1399 (mkdir-p tmpbin)
1400 (symlink (which "gcc") (string-append tmpbin "/cc"))
1401 (setenv "PATH" (string-append tmpbin ":" curpath)))
1402 #t))
1403 (add-after 'check 'remove-cc
1404 ;; clean the tmp dir made in 'set-cc
1405 (lambda _
1406 (let* ((cc-path (which "cc"))
1407 (cc-dir (dirname cc-path)))
1408 (delete-file-recursively cc-dir)
1409 #t))))))
1410 (home-page "https://github.com/haskell/c2hs")
1411 (synopsis "Create Haskell bindings to C libraries")
1412 (description "C->Haskell assists in the development of Haskell bindings to
1413C libraries. It extracts interface information from C header files and
1414generates Haskell code with foreign imports and marshaling. Unlike writing
1415foreign imports by hand (or using hsc2hs), this ensures that C functions are
1416imported with the correct Haskell types.")
1417 (license license:gpl2)))
1418
1419(define-public ghc-cairo
1420 (package
1421 (name "ghc-cairo")
1422 (version "0.13.5.0")
1423 (source
1424 (origin
1425 (method url-fetch)
1426 (uri (string-append "https://hackage.haskell.org/package/cairo/"
1427 "cairo-" version ".tar.gz"))
1428 (sha256
1429 (base32
1430 "1wxylv4d8120ri0vgar168ikqa9m6533ipdwi38qlmxmw20ws2j2"))))
1431 (build-system haskell-build-system)
1432 (arguments
1433 `(#:modules ((guix build haskell-build-system)
1434 (guix build utils)
1435 (ice-9 match)
1436 (srfi srfi-26))
1437 #:phases
1438 (modify-phases %standard-phases
1439 ;; FIXME: This is a copy of the standard configure phase with a tiny
1440 ;; difference: this package needs the -package-db flag to be passed
1441 ;; to "runhaskell" in addition to the "configure" action, because it
1442 ;; depends on gtk2hs-buildtools, which provide setup hooks. Without
1443 ;; this option the Setup.hs file cannot be evaluated. The
1444 ;; haskell-build-system should be changed to pass "-package-db" to
1445 ;; "runhaskell" in any case.
1446 (replace 'configure
1447 (lambda* (#:key outputs inputs tests? (configure-flags '())
1448 #:allow-other-keys)
1449 (let* ((out (assoc-ref outputs "out"))
1450 (name-version (strip-store-file-name out))
1451 (input-dirs (match inputs
1452 (((_ . dir) ...)
1453 dir)
1454 (_ '())))
1455 (ghc-path (getenv "GHC_PACKAGE_PATH"))
1456 (params (append `(,(string-append "--prefix=" out))
1457 `(,(string-append "--libdir=" out "/lib"))
1458 `(,(string-append "--bindir=" out "/bin"))
1459 `(,(string-append
1460 "--docdir=" out
1461 "/share/doc/" name-version))
1462 '("--libsubdir=$compiler/$pkg-$version")
1463 '("--package-db=../package.conf.d")
1464 '("--global")
1465 `(,@(map
1466 (cut string-append "--extra-include-dirs=" <>)
1467 (search-path-as-list '("include") input-dirs)))
1468 `(,@(map
1469 (cut string-append "--extra-lib-dirs=" <>)
1470 (search-path-as-list '("lib") input-dirs)))
1471 (if tests?
1472 '("--enable-tests")
1473 '())
1474 configure-flags)))
1475 (unsetenv "GHC_PACKAGE_PATH")
1476 (apply invoke "runhaskell" "-package-db=../package.conf.d"
1477 "Setup.hs" "configure" params)
1478 (setenv "GHC_PACKAGE_PATH" ghc-path)
1479 #t))))))
1480 (inputs
1481 `(("ghc-utf8-string" ,ghc-utf8-string)
1482 ("cairo" ,cairo)))
1483 (native-inputs
1484 `(("ghc-gtk2hs-buildtools" ,ghc-gtk2hs-buildtools)
1485 ("pkg-config" ,pkg-config)))
1486 (home-page "http://projects.haskell.org/gtk2hs/")
1487 (synopsis "Haskell bindings to the Cairo vector graphics library")
1488 (description
1489 "Cairo is a library to render high quality vector graphics. There exist
1490various backends that allows rendering to Gtk windows, PDF, PS, PNG and SVG
1491documents, amongst others.")
1492 (license license:bsd-3)))
1493
1494(define-public ghc-call-stack
1495 (package
1496 (name "ghc-call-stack")
1497 (version "0.1.0")
1498 (source
1499 (origin
1500 (method url-fetch)
1501 (uri (string-append "https://hackage.haskell.org/package/"
1502 "call-stack/call-stack-"
1503 version ".tar.gz"))
1504 (sha256
1505 (base32
1506 "1qmihf5jafmc79sk52l6gpx75f5bnla2lp62kh3p34x3j84mwpzj"))))
1507 (build-system haskell-build-system)
1508 (inputs `(("ghc-nanospec" ,ghc-nanospec)))
1509 (home-page "https://github.com/sol/call-stack#readme")
1510 (synopsis "Use GHC call-stacks in a backward compatible way")
1511 (description "This package provides a compatibility layer for using GHC
1512call stacks with different versions of the compiler.")
1513 (license license:expat)))
1514
1515;; This is used as an input to ghc-hunit. We cannot use ghc-call-stack there,
1516;; because it depends on ghc-nanospec, which depends on ghc-hunit.
1517(define-public ghc-call-stack-boot
1518 (hidden-package
1519 (package
1520 (inherit ghc-call-stack)
1521 (arguments '(#:tests? #f))
1522 (inputs '()))))
1523
1524(define-public ghc-case-insensitive
1525 (package
1526 (name "ghc-case-insensitive")
1527 (version "1.2.0.11")
534d6caa 1528 (outputs '("out" "static" "doc"))
dddbc90c
RV
1529 (source
1530 (origin
1531 (method url-fetch)
1532 (uri (string-append
1533 "https://hackage.haskell.org/package/case-insensitive/case-insensitive-"
1534 version
1535 ".tar.gz"))
1536 (sha256
1537 (base32
1538 "1qrpxfirsxckg7jv28f5ah2qc8lh95hp7rnqkbqs1ahcwlbnvkm7"))))
1539 (build-system haskell-build-system)
1540 ;; these inputs are necessary to use this library
1541 (inputs
1542 `(("ghc-hashable" ,ghc-hashable)))
1543 (arguments
1544 `(#:tests? #f)) ; FIXME: currently missing libraries used for tests.
1545 (home-page
1546 "https://github.com/basvandijk/case-insensitive")
1547 (synopsis "Case insensitive string comparison")
1548 (description
1549 "The module @code{Data.CaseInsensitive} provides the @code{CI} type
1550constructor which can be parameterised by a string-like type like:
1551@code{String}, @code{ByteString}, @code{Text}, etc. Comparisons of values of
1552the resulting type will be insensitive to cases.")
1553 (license license:bsd-3)))
1554
6ba536a1
JS
1555(define-public ghc-cborg
1556 (package
1557 (name "ghc-cborg")
1558 (version "0.2.2.0")
1559 (source
1560 (origin
1561 (method url-fetch)
1562 (uri (string-append
1563 "mirror://hackage/package/cborg/cborg-"
1564 version
1565 ".tar.gz"))
1566 (sha256
1567 (base32
1568 "1rdnvy0w17s70ikmbyrnwax5rvqh19l95sh8i7ipgxi23z1r0bp1"))))
1569 (build-system haskell-build-system)
1570 (inputs
1571 `(("ghc-half" ,ghc-half)
1572 ("ghc-primitive" ,ghc-primitive)))
1573 (native-inputs
1574 `(("ghc-aeson" ,ghc-aeson)
1575 ("ghc-base64-bytestring" ,ghc-base64-bytestring)
1576 ("ghc-base16-bytestring" ,ghc-base16-bytestring)
1577 ("ghc-fail" ,ghc-fail)
1578 ("ghc-quickcheck" ,ghc-quickcheck)
1579 ("ghc-scientific" ,ghc-scientific)
1580 ("ghc-tasty" ,ghc-tasty)
1581 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
1582 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
1583 ("ghc-vector" ,ghc-vector)))
1584 (home-page "http://hackage.haskell.org/package/cborg")
1585 (synopsis "Concise Binary Object Representation")
1586 (description
1587 "This package (formerly binary-serialise-cbor) provides an
1588efficient implementation of the Concise Binary Object
1589Representation (CBOR), as specified by RFC 7049 at
1590https://tools.ietf.org/html/rfc7049.
1591
1592If you are looking for a library for serialisation of Haskell values, have a
1593look at the @url{https://hackage.haskell.org/package/serialise} package, which
1594is built upon this library.
1595
1596An implementation of the standard bijection between CBOR and JSON is provided
1597by the @url{https://hackage.haskell.org/package/cborg-json} package.
1598
1599Also see @code{https://hackage.haskell.org/package/cbor-tool} for a convenient
1600command-line utility for working with CBOR data.")
1601 (license license:bsd-3)))
1602
5434fec9
JS
1603(define-public ghc-cborg-json
1604 (package
1605 (name "ghc-cborg-json")
1606 (version "0.2.2.0")
1607 (source
1608 (origin
1609 (method url-fetch)
1610 (uri (string-append
1611 "mirror://hackage/package/cborg-json/cborg-json-"
1612 version
1613 ".tar.gz"))
1614 (sha256
1615 (base32 "0ysilz7rrjk94sqr3a61s98hr9qfi1xg13bskmlpc6mpgi2s4s5b"))))
1616 (build-system haskell-build-system)
1617 (inputs
1618 `(("ghc-aeson" ,ghc-aeson)
1619 ("ghc-aeson-pretty" ,ghc-aeson-pretty)
1620 ("ghc-unordered-containers" ,ghc-unordered-containers)
1621 ("ghc-scientific" ,ghc-scientific)
1622 ("ghc-vector" ,ghc-vector)
1623 ("ghc-cborg" ,ghc-cborg)))
1624 (home-page "https://github.com/well-typed/cborg")
1625 (synopsis "A library for encoding JSON as CBOR")
1626 (description
1627 "This package implements the bijection between JSON and CBOR
1628defined in the CBOR specification, RFC 7049.")
1629 (license license:bsd-3)))
1630
dddbc90c
RV
1631(define-public ghc-cereal
1632 (package
1633 (name "ghc-cereal")
bd95427e 1634 (version "0.5.8.1")
dddbc90c
RV
1635 (source
1636 (origin
1637 (method url-fetch)
1638 (uri (string-append
1639 "https://hackage.haskell.org/package/cereal/cereal-"
1640 version
1641 ".tar.gz"))
1642 (sha256
1643 (base32
bd95427e 1644 "1mqvd1iwzr50az4y24332x3g3wsrzw8j1iwph02vr7jbjfn8i7id"))))
dddbc90c
RV
1645 (build-system haskell-build-system)
1646 (native-inputs
1647 `(("ghc-quickcheck" ,ghc-quickcheck)
1648 ("ghc-fail" ,ghc-fail)
1649 ("ghc-test-framework" ,ghc-test-framework)
1650 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
1651 (home-page "https://hackage.haskell.org/package/cereal")
1652 (synopsis "Binary serialization library")
1653 (description "This package provides a binary serialization library,
1654similar to @code{binary}, that introduces an @code{isolate} primitive for
1655parser isolation, and labeled blocks for better error messages.")
1656 (license license:bsd-3)))
1657
1658(define-public ghc-cereal-conduit
1659 (package
1660 (name "ghc-cereal-conduit")
1661 (version "0.8.0")
1662 (source
1663 (origin
1664 (method url-fetch)
1665 (uri (string-append "https://hackage.haskell.org/package/"
1666 "cereal-conduit/cereal-conduit-"
1667 version ".tar.gz"))
1668 (sha256
1669 (base32
1670 "1srr7agvgfw78q5s1npjq5sgynvhjgllpihiv37ylkwqm4c4ap6r"))))
1671 (build-system haskell-build-system)
1672 (inputs
1673 `(("ghc-conduit" ,ghc-conduit)
1674 ("ghc-resourcet" ,ghc-resourcet)
1675 ("ghc-cereal" ,ghc-cereal)))
1676 (native-inputs
1677 `(("ghc-hunit" ,ghc-hunit)))
1678 (home-page "https://github.com/snoyberg/conduit")
1679 (synopsis "Turn Data.Serialize Gets and Puts into Sources, Sinks, and Conduits")
1680 (description
1681 "This package turn @code{Data.Serialize} @code{Gets} and @code{Puts} into
1682@code{Sources}, @code{Sinks}, and @code{Conduits}.")
1683 (license license:bsd-3)))
1684
1685(define-public ghc-cgi
1686 (package
1687 (name "ghc-cgi")
b6b2c218 1688 (version "3001.4.0.0")
dddbc90c
RV
1689 (source
1690 (origin
1691 (method url-fetch)
1692 (uri (string-append
1693 "https://hackage.haskell.org/package/cgi/cgi-"
1694 version
1695 ".tar.gz"))
1696 (sha256
1697 (base32
b6b2c218 1698 "1d0nh5ymkqskkp4yn0gfz4mff8i0cxyw1wws8xxp6k1mg1ywa25k"))))
dddbc90c 1699 (build-system haskell-build-system)
dddbc90c
RV
1700 (inputs
1701 `(("ghc-exceptions" ,ghc-exceptions)
1702 ("ghc-multipart" ,ghc-multipart)
1703 ("ghc-network-uri" ,ghc-network-uri)
1704 ("ghc-network" ,ghc-network)))
1705 (native-inputs
1706 `(("ghc-doctest" ,ghc-doctest)
1707 ("ghc-quickcheck" ,ghc-quickcheck)))
1708 (home-page
1709 "https://github.com/cheecheeo/haskell-cgi")
1710 (synopsis "Library for writing CGI programs")
1711 (description
1712 "This is a Haskell library for writing CGI programs.")
1713 (license license:bsd-3)))
1714
1715(define-public ghc-charset
1716 (package
1717 (name "ghc-charset")
1718 (version "0.3.7.1")
1719 (source
1720 (origin
1721 (method url-fetch)
1722 (uri (string-append
1723 "https://hackage.haskell.org/package/charset/charset-"
1724 version
1725 ".tar.gz"))
1726 (sha256
1727 (base32
1728 "1gn0m96qpjww8hpp2g1as5yy0wcwy4iq73h3kz6g0yxxhcl5sh9x"))))
1729 (build-system haskell-build-system)
35ee173c
TS
1730 (arguments
1731 `(#:cabal-revision
1732 ("1" "1z6nxw2g9vgsjq0g159sk8mwj68lwzxzi5iv5ynha0h85jcqxszy")))
dddbc90c
RV
1733 (inputs
1734 `(("ghc-semigroups" ,ghc-semigroups)
1735 ("ghc-unordered-containers" ,ghc-unordered-containers)))
1736 (home-page "https://github.com/ekmett/charset")
1737 (synopsis "Fast unicode character sets for Haskell")
1738 (description "This package provides fast unicode character sets for
1739Haskell, based on complemented PATRICIA tries.")
1740 (license license:bsd-3)))
1741
1742(define-public ghc-chart
1743 (package
1744 (name "ghc-chart")
6cd84b98 1745 (version "1.9.1")
dddbc90c
RV
1746 (source
1747 (origin
1748 (method url-fetch)
1749 (uri (string-append "https://hackage.haskell.org/package/Chart/"
1750 "Chart-" version ".tar.gz"))
1751 (sha256
1752 (base32
6cd84b98 1753 "1pn735k9ifxlb9mdh8xy7wi22cxni8xyr28n8zx9w0j6vprcg89l"))))
dddbc90c
RV
1754 (build-system haskell-build-system)
1755 (inputs
1756 `(("ghc-old-locale" ,ghc-old-locale)
1757 ("ghc-lens" ,ghc-lens)
1758 ("ghc-colour" ,ghc-colour)
1759 ("ghc-data-default-class" ,ghc-data-default-class)
1760 ("ghc-operational" ,ghc-operational)
1761 ("ghc-vector" ,ghc-vector)))
1762 (home-page "https://github.com/timbod7/haskell-chart/wiki")
1763 (synopsis "Library for generating 2D charts and plots")
1764 (description
1765 "This package provides a library for generating 2D charts and plots, with
1766backends provided by the @code{Cairo} and @code{Diagrams} libraries.")
1767 (license license:bsd-3)))
1768
1769(define-public ghc-chart-cairo
1770 (package
1771 (name "ghc-chart-cairo")
5cf9264d 1772 (version "1.9.1")
dddbc90c
RV
1773 (source
1774 (origin
1775 (method url-fetch)
1776 (uri (string-append "https://hackage.haskell.org/package/Chart-cairo/"
1777 "Chart-cairo-" version ".tar.gz"))
1778 (sha256
1779 (base32
5cf9264d 1780 "0hknj4rsjf2m8p5pyq5zff8ai7v80yvmxb5c6n0bkgxs4317nbl9"))))
dddbc90c
RV
1781 (build-system haskell-build-system)
1782 (inputs
1783 `(("ghc-old-locale" ,ghc-old-locale)
1784 ("ghc-cairo" ,ghc-cairo)
1785 ("ghc-colour" ,ghc-colour)
1786 ("ghc-data-default-class" ,ghc-data-default-class)
1787 ("ghc-operational" ,ghc-operational)
1788 ("ghc-lens" ,ghc-lens)
1789 ("ghc-chart" ,ghc-chart)))
1790 (home-page "https://github.com/timbod7/haskell-chart/wiki")
1791 (synopsis "Cairo backend for Charts")
1792 (description "This package provides a Cairo vector graphics rendering
1793backend for the Charts library.")
1794 (license license:bsd-3)))
1795
1796(define-public ghc-chasingbottoms
1797 (package
1798 (name "ghc-chasingbottoms")
1f67853e 1799 (version "1.3.1.7")
dddbc90c
RV
1800 (source
1801 (origin
1802 (method url-fetch)
1803 (uri (string-append "https://hackage.haskell.org/package/ChasingBottoms/"
1804 "ChasingBottoms-" version ".tar.gz"))
1805 (sha256
1806 (base32
1f67853e 1807 "0ziiqfsvv1ypdra6kd0bhbsl852i0wqn43jkfii38yl879cdacan"))))
dddbc90c
RV
1808 (build-system haskell-build-system)
1809 (inputs
1810 `(("ghc-quickcheck" ,ghc-quickcheck)
1811 ("ghc-random" ,ghc-random)
1812 ("ghc-syb" ,ghc-syb)))
1813 (home-page "https://hackage.haskell.org/package/ChasingBottoms")
1814 (synopsis "Testing of partial and infinite values in Haskell")
1815 (description
1816 ;; FIXME: There should be a @comma{} in the uref text, but it is not
1817 ;; rendered properly.
1818 "This is a library for testing code involving bottoms or infinite values.
1819For the underlying theory and a larger example involving use of QuickCheck,
1820see the article
1821@uref{http://www.cse.chalmers.se/~nad/publications/danielsson-jansson-mpc2004.html,
1822\"Chasing Bottoms A Case Study in Program Verification in the Presence of
1823Partial and Infinite Values\"}.")
1824 (license license:expat)))
1825
1826(define-public ghc-cheapskate
1827 (package
1828 (name "ghc-cheapskate")
5e18bb9e 1829 (version "0.1.1.1")
dddbc90c
RV
1830 (source
1831 (origin
1832 (method url-fetch)
1833 (uri (string-append
1834 "https://hackage.haskell.org/package/cheapskate/cheapskate-"
1835 version
1836 ".tar.gz"))
1837 (sha256
1838 (base32
5e18bb9e 1839 "0qnyd8bni2rby6b02ff4bvfdhm1hwc8vzpmnms84jgrlg1lly3fm"))))
dddbc90c
RV
1840 (build-system haskell-build-system)
1841 (inputs
1842 `(("ghc-blaze-html" ,ghc-blaze-html)
1843 ("ghc-xss-sanitize" ,ghc-xss-sanitize)
1844 ("ghc-data-default" ,ghc-data-default)
1845 ("ghc-syb" ,ghc-syb)
1846 ("ghc-uniplate" ,ghc-uniplate)))
1847 (home-page "https://github.com/jgm/cheapskate")
1848 (synopsis "Experimental markdown processor")
1849 (description "Cheapskate is an experimental Markdown processor in pure
1850Haskell. It aims to process Markdown efficiently and in the most forgiving
1851possible way. It is designed to deal with any input, including garbage, with
1852linear performance. Output is sanitized by default for protection against
1853cross-site scripting (@dfn{XSS}) attacks.")
1854 (license license:bsd-3)))
1855
1856(define-public ghc-chell
1857 (package
1858 (name "ghc-chell")
acdd03be 1859 (version "0.5")
dddbc90c
RV
1860 (source
1861 (origin
1862 (method url-fetch)
1863 (uri (string-append
1864 "https://hackage.haskell.org/package/chell/chell-"
1865 version ".tar.gz"))
1866 (sha256
1867 (base32
acdd03be 1868 "1i845isfbk0yq852am9bqmxfpfkpnlha8nfidffsv4gw2p8gg6fg"))))
dddbc90c 1869 (build-system haskell-build-system)
acdd03be
TS
1870 (arguments
1871 `(#:cabal-revision
1872 ("1" "1q93wrw03ix4cmnkz3lzkixcvvizw6i2ia2zifdfak1dvxnblxk0")))
dddbc90c
RV
1873 (inputs
1874 `(("ghc-options-bootstrap" ,ghc-options-bootstrap)
1875 ("ghc-patience" ,ghc-patience)
1876 ("ghc-random" ,ghc-random)
1877 ("ghc-ansi-terminal" ,ghc-ansi-terminal)))
1878 (home-page "https://john-millikin.com/software/chell/")
1879 (synopsis "Simple and intuitive library for automated testing")
1880 (description
1881 "Chell is a simple and intuitive library for automated testing.
1882It natively supports assertion-based testing, and can use companion
1883libraries such as @code{chell-quickcheck} to support more complex
1884testing strategies.")
1885 (license license:expat)))
1886
1887(define-public ghc-chell-quickcheck
1888 (package
1889 (name "ghc-chell-quickcheck")
e0e21831 1890 (version "0.2.5.2")
dddbc90c
RV
1891 (source
1892 (origin
1893 (method url-fetch)
1894 (uri (string-append
1895 "https://hackage.haskell.org/package/chell-quickcheck/"
1896 "chell-quickcheck-" version ".tar.gz"))
1897 (sha256
1898 (base32
e0e21831 1899 "0n8c57n88r2bx0bh8nabsz07m42rh23ahs3hgyzf8gr76l08zq03"))))
dddbc90c
RV
1900 (build-system haskell-build-system)
1901 (arguments
1902 `(#:phases
1903 (modify-phases %standard-phases
1904 (add-before 'configure 'update-constraints
1905 (lambda _
1906 (substitute* "chell-quickcheck.cabal"
e0e21831
TS
1907 (("QuickCheck >= 2\\.3 && < 2\\.13")
1908 "QuickCheck >= 2.3 && < 2.14")))))))
dddbc90c
RV
1909 (inputs
1910 `(("ghc-chell" ,ghc-chell)
1911 ("ghc-chell-quickcheck-bootstrap" ,ghc-chell-quickcheck-bootstrap)
1912 ("ghc-random" ,ghc-random)
1913 ("ghc-quickcheck" ,ghc-quickcheck)))
1914 (home-page "https://john-millikin.com/software/chell/")
1915 (synopsis "QuickCheck support for the Chell testing library")
1916 (description "More complex tests for @code{chell}.")
1917 (license license:expat)))
1918
1919(define ghc-chell-quickcheck-bootstrap
1920 (package
1921 (name "ghc-chell-quickcheck-bootstrap")
e0e21831 1922 (version "0.2.5.2")
dddbc90c
RV
1923 (source
1924 (origin
1925 (method url-fetch)
1926 (uri (string-append
1927 "https://hackage.haskell.org/package/chell-quickcheck/"
1928 "chell-quickcheck-" version ".tar.gz"))
1929 (sha256
1930 (base32
e0e21831 1931 "0n8c57n88r2bx0bh8nabsz07m42rh23ahs3hgyzf8gr76l08zq03"))))
dddbc90c
RV
1932 (build-system haskell-build-system)
1933 (inputs
1934 `(("ghc-chell" ,ghc-chell)
1935 ("ghc-random" ,ghc-random)
1936 ("ghc-quickcheck" ,ghc-quickcheck)))
1937 (arguments
1938 `(#:tests? #f
1939 #:phases
1940 (modify-phases %standard-phases
1941 (add-before 'configure 'update-constraints
1942 (lambda _
1943 (substitute* "chell-quickcheck.cabal"
e0e21831
TS
1944 (("QuickCheck >= 2\\.3 && < 2\\.13")
1945 "QuickCheck >= 2.3 && < 2.14")))))))
dddbc90c
RV
1946 (home-page "https://john-millikin.com/software/chell/")
1947 (synopsis "QuickCheck support for the Chell testing library")
1948 (description "More complex tests for @code{chell}.")
1949 (license license:expat)))
1950
1951(define-public ghc-chunked-data
1952 (package
1953 (name "ghc-chunked-data")
1954 (version "0.3.1")
1955 (source
1956 (origin
1957 (method url-fetch)
1958 (uri (string-append "https://hackage.haskell.org/package/"
1959 "chunked-data-" version "/"
1960 "chunked-data-" version ".tar.gz"))
1961 (sha256
1962 (base32
1963 "16m7y7fwrirbjbqqcsfmr4yxa9qvfax6r7pw0zl9ky71ms0wa47p"))))
1964 (build-system haskell-build-system)
1965 (inputs `(("ghc-vector" ,ghc-vector)
1966 ("ghc-semigroups" ,ghc-semigroups)))
1967 (home-page "https://github.com/snoyberg/mono-traversable")
1968 (synopsis "Typeclasses for dealing with various chunked data
1969representations for Haskell")
1970 (description "This Haskell package was originally present in
1971classy-prelude.")
1972 (license license:expat)))
1973
1974(define-public ghc-clock
1975 (package
1976 (name "ghc-clock")
0841b6f2 1977 (version "0.8")
dddbc90c
RV
1978 (source
1979 (origin
1980 (method url-fetch)
1981 (uri (string-append
1982 "https://hackage.haskell.org/package/"
1983 "clock/"
1984 "clock-" version ".tar.gz"))
1985 (sha256
0841b6f2 1986 (base32 "0539w9bjw6xbfv9v6aq9hijszxqdnqhilwpbwpql1400ji95r8q8"))))
dddbc90c
RV
1987 (build-system haskell-build-system)
1988 (inputs
1989 `(("ghc-tasty" ,ghc-tasty)
1990 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
1991 (home-page "https://hackage.haskell.org/package/clock")
1992 (synopsis "High-resolution clock for Haskell")
1993 (description "A package for convenient access to high-resolution clock and
1994timer functions of different operating systems via a unified API.")
1995 (license license:bsd-3)))
1996
1997;; This package builds `clock` without tests, since the tests rely on tasty
1998;; and tasty-quickcheck, which in turn require clock to build.
1999(define-public ghc-clock-bootstrap
2000 (package
2001 (inherit ghc-clock)
2002 (name "ghc-clock-bootstrap")
2003 (arguments '(#:tests? #f))
2004 (inputs '())
2005 (properties '((hidden? #t)))))
2006
2007(define-public ghc-cmark
2008 (package
2009 (name "ghc-cmark")
6bdd36c0 2010 (version "0.6")
dddbc90c
RV
2011 (source (origin
2012 (method url-fetch)
6bdd36c0 2013 ;; XXX As of version 0.6, this package bundles libcmark 0.28.0.
dddbc90c
RV
2014 ;; See cbits/cmark_version.h.
2015 (uri (string-append "https://hackage.haskell.org/package/"
2016 "cmark/cmark-" version ".tar.gz"))
2017 (sha256
2018 (base32
6bdd36c0 2019 "1p41z6z8dqxk62287lvhhg4ayy9laai9ljh4azsnzb029v6mbv0d"))))
dddbc90c
RV
2020 (build-system haskell-build-system)
2021 (native-inputs
2022 `(("ghc-hunit" ,ghc-hunit)))
2023 (home-page "https://github.com/jgm/commonmark-hs")
2024 (synopsis "Fast, accurate CommonMark (Markdown) parser and renderer")
2025 (description
2026 "This package provides Haskell bindings for
2027@uref{https://github.com/jgm/cmark, libcmark}, the reference parser for
2028CommonMark, a fully specified variant of Markdown. It includes bundled libcmark
2029sources, and does not require prior installation of the C library.")
2030 (license license:bsd-3)))
2031
2032(define-public ghc-cmark-gfm
2033 (package
2034 (name "ghc-cmark-gfm")
24fc8dae 2035 (version "0.2.0")
dddbc90c
RV
2036 (source
2037 (origin
2038 (method url-fetch)
2039 (uri (string-append "https://hackage.haskell.org/package/"
2040 "cmark-gfm/cmark-gfm-"
2041 version ".tar.gz"))
2042 (sha256
2043 (base32
24fc8dae 2044 "03xflrkyw84qv3yjly5iks9311bqv5cmrmsylr763v4ph0fn7rjq"))))
dddbc90c
RV
2045 (build-system haskell-build-system)
2046 (native-inputs
2047 `(("ghc-hunit" ,ghc-hunit)))
2048 (home-page "https://github.com/kivikakk/cmark-gfm-hs")
2049 (synopsis
2050 "Fast, accurate GitHub Flavored Markdown parser and renderer")
2051 (description
2052 "This package provides Haskell bindings for libcmark-gfm, the reference
2053parser for GitHub Flavored Markdown, a fully specified variant of Markdown.
2054It includes sources for libcmark-gfm and does not require prior installation
2055of the C library.")
2056 (license license:bsd-3)))
2057
2058(define-public ghc-cmdargs
2059 (package
2060 (name "ghc-cmdargs")
2061 (version "0.10.20")
2062 (source
2063 (origin
2064 (method url-fetch)
2065 (uri (string-append
2066 "https://hackage.haskell.org/package/cmdargs/cmdargs-"
2067 version ".tar.gz"))
2068 (sha256
2069 (base32
2070 "0cbkmgrcnwgigg6z88y3c09gm7g6dwm7gzbgr53h8k1xik29s9hf"))))
2071 (build-system haskell-build-system)
3e545443 2072 (outputs '("out" "static" "doc"))
dddbc90c
RV
2073 (home-page
2074 "http://community.haskell.org/~ndm/cmdargs/")
2075 (synopsis "Command line argument processing")
2076 (description
2077 "This library provides an easy way to define command line parsers.")
2078 (license license:bsd-3)))
2079
2080(define-public ghc-code-page
2081 (package
2082 (name "ghc-code-page")
f6bb6519 2083 (version "0.2")
dddbc90c
RV
2084 (source
2085 (origin
2086 (method url-fetch)
2087 (uri (string-append
2088 "https://hackage.haskell.org/package/code-page/code-page-"
2089 version ".tar.gz"))
2090 (sha256
2091 (base32
f6bb6519 2092 "0i0qbrbhvrwkbikqb7hh7yxaipaavwzvyrw211d0vkz99f62mqxz"))))
dddbc90c
RV
2093 (build-system haskell-build-system)
2094 (home-page "https://github.com/RyanGlScott/code-page")
2095 (synopsis "Windows code page library for Haskell")
2096 (description "A cross-platform library with functions for adjusting
2097code pages on Windows. On all other operating systems, the library does
2098nothing.")
2099 (license license:bsd-3)))
2100
2101(define-public ghc-colour
2102(package
2103 (name "ghc-colour")
bc9d1af9 2104 (version "2.3.5")
dddbc90c
RV
2105 (source
2106 (origin
2107 (method url-fetch)
2108 (uri (string-append
2109 "https://hackage.haskell.org/package/colour/colour-"
2110 version ".tar.gz"))
2111 (sha256
2112 (base32
bc9d1af9 2113 "1rq4l46jx4lpdppy71wf7m1n7pw2jwy788rm35ycwzb1g4clg39v"))))
dddbc90c
RV
2114 (arguments
2115 ;; The tests for this package have the following dependency cycle:
2116 ;; ghc-test-framework -> ghc-ansi-terminal -> ghc-colour.
2117 `(#:tests? #f))
2118 (build-system haskell-build-system)
228d2901 2119 (home-page "https://wiki.haskell.org/Colour")
dddbc90c
RV
2120 (synopsis "Model for human colour perception")
2121 (description
2122 "This package provides a data type for colours and transparency.
2123Colours can be blended and composed. Various colour spaces are
2124supported. A module of colour names (\"Data.Colour.Names\") is provided.")
2125 (license license:expat)))
2126
2127(define-public ghc-comonad
2128 (package
2129 (name "ghc-comonad")
1a825512 2130 (version "5.0.5")
dddbc90c
RV
2131 (source
2132 (origin
2133 (method url-fetch)
2134 (uri (string-append
2135 "https://hackage.haskell.org/package/comonad/comonad-"
2136 version
2137 ".tar.gz"))
2138 (sha256
2139 (base32
1a825512 2140 "1l7snp2mszgnjgd0nc9kzfyd13vla0rlazqi03rwx2akcxk14n3c"))))
dddbc90c
RV
2141 (build-system haskell-build-system)
2142 (native-inputs
2143 `(("cabal-doctest" ,cabal-doctest)
2144 ("ghc-doctest" ,ghc-doctest)))
2145 (inputs
2146 `(("ghc-contravariant" ,ghc-contravariant)
2147 ("ghc-distributive" ,ghc-distributive)
2148 ("ghc-semigroups" ,ghc-semigroups)
2149 ("ghc-tagged" ,ghc-tagged)
2150 ("ghc-transformers-compat" ,ghc-transformers-compat)))
2151 (home-page "https://github.com/ekmett/comonad/")
2152 (synopsis "Comonads for Haskell")
2153 (description "This library provides @code{Comonad}s for Haskell.")
2154 (license license:bsd-3)))
2155
2156(define-public ghc-concatenative
2157 (package
2158 (name "ghc-concatenative")
2159 (version "1.0.1")
2160 (source (origin
2161 (method url-fetch)
2162 (uri (string-append
2163 "https://hackage.haskell.org/package/concatenative/concatenative-"
2164 version ".tar.gz"))
2165 (sha256
2166 (base32
2167 "05xwqvcdnk8bsyj698ab9jxpa1nk23pf3m7wi9mwmw0q8n99fngd"))))
2168 (build-system haskell-build-system)
2169 (home-page
2170 "https://patch-tag.com/r/salazar/concatenative/snapshot/current/content/pretty")
2171 (synopsis "Library for postfix control flow")
2172 (description
2173 "Concatenative gives Haskell Factor-style combinators and arrows for
2174postfix notation. For more information on stack based languages, see
2175@uref{https://concatenative.org}.")
2176 (license license:bsd-3)))
2177
2178(define-public ghc-concurrent-extra
2179 (package
2180 (name "ghc-concurrent-extra")
2181 (version "0.7.0.12")
2182 (source
2183 (origin
2184 (method url-fetch)
2185 (uri (string-append "https://hackage.haskell.org/package/"
2186 "concurrent-extra/concurrent-extra-"
2187 version ".tar.gz"))
2188 (sha256
2189 (base32
2190 "1y8xk460fvnw0idzdiylmm874sjny4q9jxb1js9fjz8lw2wns3h4"))))
2191 (build-system haskell-build-system)
2192 (arguments
2193 ;; XXX: The ReadWriteLock 'stressTest' fails.
2194 `(#:tests? #f))
2195 (inputs
2196 `(("ghc-unbounded-delays" ,ghc-unbounded-delays)))
2197 (native-inputs
2198 `(("ghc-async" ,ghc-async)
2199 ("ghc-hunit" ,ghc-hunit)
2200 ("ghc-random" ,ghc-random)
2201 ("ghc-test-framework" ,ghc-test-framework)
2202 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)))
2203 (home-page "https://github.com/basvandijk/concurrent-extra")
2204 (synopsis "Extra concurrency primitives")
2205 (description "This Haskell library offers (among other things) the
2206following selection of synchronisation primitives:
2207
2208@itemize
2209@item @code{Broadcast}: Wake multiple threads by broadcasting a value.
2210@item @code{Event}: Wake multiple threads by signalling an event.
2211@item @code{Lock}: Enforce exclusive access to a resource. Also known
2212as a binary semaphore or mutex. The package additionally provides an
2213alternative that works in the STM monad.
2214@item @code{RLock}: A lock which can be acquired multiple times by the
2215same thread. Also known as a reentrant mutex.
2216@item @code{ReadWriteLock}: Multiple-reader, single-writer locks. Used
2217to protect shared resources which may be concurrently read, but only
2218sequentially written.
2219@item @code{ReadWriteVar}: Concurrent read, sequential write variables.
2220@end itemize
2221
2222Please consult the API documentation of the individual modules for more
2223detailed information.
2224
2225This package was inspired by the concurrency libraries of Java and
2226Python.")
2227 (license license:bsd-3)))
2228
2229(define-public ghc-concurrent-output
2230 (package
2231 (name "ghc-concurrent-output")
4fce0a4a 2232 (version "1.10.11")
dddbc90c
RV
2233 (source
2234 (origin
2235 (method url-fetch)
2236 (uri (string-append
2237 "mirror://hackage/package/concurrent-output/concurrent-output-"
2238 version
2239 ".tar.gz"))
2240 (sha256
2241 (base32
4fce0a4a 2242 "1d1aaqg5814k59b0iws3fh06p3g2siaj922gkhs75qgncj0my2p3"))))
dddbc90c
RV
2243 (build-system haskell-build-system)
2244 (inputs
2245 `(("ghc-async" ,ghc-async)
2246 ("ghc-exceptions" ,ghc-exceptions)
2247 ("ghc-ansi-terminal" ,ghc-ansi-terminal)
2248 ("ghc-terminal-size" ,ghc-terminal-size)))
2249 (home-page
2250 "https://hackage.haskell.org/package/concurrent-output")
2251 (synopsis
2252 "Ungarble output from several threads or commands")
2253 (description
2254 "Lets multiple threads and external processes concurrently output to the
2255console, without it getting all garbled up.
2256
2257Built on top of that is a way of defining multiple output regions, which are
2258automatically laid out on the screen and can be individually updated by
2259concurrent threads. Can be used for progress displays etc.")
2260 (license license:bsd-2)))
2261
2262(define-public ghc-conduit
2263 (package
2264 (name "ghc-conduit")
1ac981d4 2265 (version "1.3.1.1")
dddbc90c
RV
2266 (source (origin
2267 (method url-fetch)
2268 (uri (string-append "https://hackage.haskell.org/package/"
2269 "conduit/conduit-" version ".tar.gz"))
2270 (sha256
2271 (base32
1ac981d4 2272 "18izjgff4pmrknc8py06yvg3g6x27nx0rzmlwjxcflwm5v4szpw4"))))
dddbc90c 2273 (build-system haskell-build-system)
20e5edb1 2274 (outputs '("out" "static" "doc"))
dddbc90c
RV
2275 (inputs
2276 `(("ghc-exceptions" ,ghc-exceptions)
2277 ("ghc-lifted-base" ,ghc-lifted-base)
2278 ("ghc-mono-traversable" ,ghc-mono-traversable)
2279 ("ghc-mmorph" ,ghc-mmorph)
2280 ("ghc-resourcet" ,ghc-resourcet)
2281 ("ghc-silently" ,ghc-silently)
2282 ("ghc-transformers-base" ,ghc-transformers-base)
2283 ("ghc-unliftio" ,ghc-unliftio)
2284 ("ghc-unliftio-core" ,ghc-unliftio-core)
2285 ("ghc-vector" ,ghc-vector)
2286 ("ghc-void" ,ghc-void)))
2287 (native-inputs
2288 `(("ghc-quickcheck" ,ghc-quickcheck)
2289 ("ghc-hspec" ,ghc-hspec)
2290 ("ghc-safe" ,ghc-safe)
2291 ("ghc-split" ,ghc-split)))
2292 (home-page "https://github.com/snoyberg/conduit")
2293 (synopsis "Streaming data library ")
2294 (description
2295 "The conduit package is a solution to the streaming data problem,
2296allowing for production, transformation, and consumption of streams of data
2297in constant memory. It is an alternative to lazy I/O which guarantees
2298deterministic resource handling, and fits in the same general solution
2299space as enumerator/iteratee and pipes.")
2300 (license license:expat)))
2301
2302(define-public ghc-conduit-algorithms
2303 (package
2304 (name "ghc-conduit-algorithms")
503b74ae 2305 (version "0.0.11.0")
dddbc90c
RV
2306 (source
2307 (origin
2308 (method url-fetch)
2309 (uri (string-append "https://hackage.haskell.org/package/"
2310 "conduit-algorithms/conduit-algorithms-"
2311 version ".tar.gz"))
2312 (sha256
2313 (base32
503b74ae 2314 "0c1jwz30kkvimx7lb61782yk0kyfamrf5bqc3g1h7g51lk8bbv9i"))))
dddbc90c
RV
2315 (build-system haskell-build-system)
2316 (inputs
2317 `(("ghc-async" ,ghc-async)
2318 ("ghc-bzlib-conduit" ,ghc-bzlib-conduit)
2319 ("ghc-conduit" ,ghc-conduit)
2320 ("ghc-conduit-combinators" ,ghc-conduit-combinators)
2321 ("ghc-conduit-extra" ,ghc-conduit-extra)
503b74ae 2322 ("ghc-conduit-zstd" ,ghc-conduit-zstd)
dddbc90c
RV
2323 ("ghc-exceptions" ,ghc-exceptions)
2324 ("ghc-lzma-conduit" ,ghc-lzma-conduit)
2325 ("ghc-monad-control" ,ghc-monad-control)
2326 ("ghc-pqueue" ,ghc-pqueue)
2327 ("ghc-resourcet" ,ghc-resourcet)
2328 ("ghc-stm-conduit" ,ghc-stm-conduit)
2329 ("ghc-streaming-commons" ,ghc-streaming-commons)
2330 ("ghc-unliftio-core" ,ghc-unliftio-core)
2331 ("ghc-vector" ,ghc-vector)))
2332 (native-inputs
2333 `(("ghc-hunit" ,ghc-hunit)
2334 ("ghc-test-framework" ,ghc-test-framework)
2335 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
2336 ("ghc-test-framework-th" ,ghc-test-framework-th)))
2337 (home-page "https://github.com/luispedro/conduit-algorithms#readme")
2338 (synopsis "Conduit-based algorithms")
2339 (description
2340 "This package provides algorithms on @code{Conduits}, including higher
2341level asynchronous processing and some other utilities.")
2342 (license license:expat)))
2343
2344(define-public ghc-conduit-combinators
2345 (package
2346 (name "ghc-conduit-combinators")
2347 (version "1.3.0")
2348 (source
2349 (origin
2350 (method url-fetch)
2351 (uri (string-append "https://hackage.haskell.org/package/"
2352 "conduit-combinators-" version "/"
2353 "conduit-combinators-" version ".tar.gz"))
2354 (sha256
2355 (base32
2356 "1lz70vwp4y4lpsivxl0cshq7aq3968rh48r6rjvpyaj2l0bdj5wp"))))
2357 (build-system haskell-build-system)
2358 (inputs `(("ghc-conduit" ,ghc-conduit)
2359 ("ghc-conduit-extra" ,ghc-conduit-extra)
2360 ("ghc-transformers-base" ,ghc-transformers-base)
2361 ("ghc-primitive" ,ghc-primitive)
2362 ("ghc-vector" ,ghc-vector)
2363 ("ghc-void" ,ghc-void)
2364 ("ghc-mwc-random" ,ghc-mwc-random)
2365 ("ghc-unix-compat" ,ghc-unix-compat)
2366 ("ghc-base16-bytestring" ,ghc-base16-bytestring)
2367 ("ghc-base64-bytestring" ,ghc-base64-bytestring)
2368 ("ghc-resourcet" ,ghc-resourcet)
2369 ("ghc-monad-control" ,ghc-monad-control)
2370 ("ghc-chunked-data" ,ghc-chunked-data)
2371 ("ghc-mono-traversable" ,ghc-mono-traversable)))
2372 (native-inputs `(("ghc-hspec" ,ghc-hspec)
2373 ("ghc-silently" ,ghc-silently)
2374 ("ghc-safe" ,ghc-safe)
2375 ("ghc-quickcheck" ,ghc-quickcheck)))
2376 (home-page "https://github.com/snoyberg/mono-traversable")
2377 (synopsis "Commonly used conduit functions, for both chunked and
2378unchunked data")
2379 (description "This Haskell package provides a replacement for Data.Conduit.List,
2380as well as a convenient Conduit module.")
2381 (license license:expat)))
2382
2383(define-public ghc-conduit-extra
2384 (package
2385 (name "ghc-conduit-extra")
151774d9 2386 (version "1.3.4")
dddbc90c
RV
2387 (source
2388 (origin
2389 (method url-fetch)
2390 (uri (string-append "https://hackage.haskell.org/package/"
2391 "conduit-extra/conduit-extra-"
2392 version ".tar.gz"))
2393 (sha256
2394 (base32
151774d9 2395 "1d853d39vj5pb8yxfcsnjwdzqzkm34ixzbnba8bslpihb7182wxi"))))
dddbc90c
RV
2396 (build-system haskell-build-system)
2397 (inputs
2398 `(("ghc-conduit" ,ghc-conduit)
2399 ("ghc-exceptions" ,ghc-exceptions)
2400 ("ghc-monad-control" ,ghc-monad-control)
2401 ("ghc-transformers-base" ,ghc-transformers-base)
2402 ("ghc-typed-process" ,ghc-typed-process)
2403 ("ghc-async" ,ghc-async)
2404 ("ghc-attoparsec" ,ghc-attoparsec)
2405 ("ghc-blaze-builder" ,ghc-blaze-builder)
2406 ("ghc-network" ,ghc-network)
2407 ("ghc-primitive" ,ghc-primitive)
2408 ("ghc-resourcet" ,ghc-resourcet)
2409 ("ghc-streaming-commons" ,ghc-streaming-commons)
2410 ("ghc-hspec" ,ghc-hspec)
2411 ("ghc-bytestring-builder" ,ghc-bytestring-builder)
2412 ("ghc-quickcheck" ,ghc-quickcheck)))
2413 (native-inputs
2414 `(("hspec-discover" ,hspec-discover)))
2415 (home-page "https://github.com/snoyberg/conduit")
2416 (synopsis "Conduit adapters for common libraries")
2417 (description
2418 "The @code{conduit} package itself maintains relative small dependencies.
2419The purpose of this package is to collect commonly used utility functions
2420wrapping other library dependencies, without depending on heavier-weight
2421dependencies. The basic idea is that this package should only depend on
2422@code{haskell-platform} packages and @code{conduit}.")
2423 (license license:expat)))
2424
b59c3518
TS
2425(define-public ghc-conduit-zstd
2426 (package
2427 (name "ghc-conduit-zstd")
2428 (version "0.0.1.1")
2429 (source
2430 (origin
2431 (method url-fetch)
2432 (uri (string-append "https://hackage.haskell.org/package/"
2433 "conduit-zstd/conduit-zstd-" version ".tar.gz"))
2434 (sha256
2435 (base32
2436 "04h7w2903hgw4gjcx2pg29yinnmfapawvc19hd3r57rr12fzb0c6"))))
2437 (build-system haskell-build-system)
2438 (inputs
2439 `(("ghc-conduit" ,ghc-conduit)
2440 ("ghc-zstd" ,ghc-zstd)))
2441 (native-inputs
2442 `(("ghc-hunit" ,ghc-hunit)
2443 ("ghc-conduit-combinators" ,ghc-conduit-combinators)
2444 ("ghc-conduit-extra" ,ghc-conduit-extra)
2445 ("ghc-test-framework" ,ghc-test-framework)
2446 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
2447 ("ghc-test-framework-th" ,ghc-test-framework-th)))
2448 (home-page "https://github.com/luispedro/conduit-zstd#readme")
2449 (synopsis "Conduit-based ZStd Compression")
2450 (description "Zstandard compression packaged as a conduit. This is
2451a very thin wrapper around the
2452@url{https://github.com/facebookexperimental/hs-zstd/, official hs-zstd
2453interface}.")
2454 (license license:expat)))
2455
dddbc90c
RV
2456(define-public ghc-configurator
2457 (package
2458 (name "ghc-configurator")
2459 (version "0.3.0.0")
2460 (source
2461 (origin
2462 (method url-fetch)
2463 (uri (string-append "https://hackage.haskell.org/package/"
2464 "configurator/configurator-"
2465 version ".tar.gz"))
2466 (sha256
2467 (base32
2468 "1d1iq1knwiq6ia5g64rw5hqm6dakz912qj13r89737rfcxmrkfbf"))))
2469 (build-system haskell-build-system)
2470 (inputs
2471 `(("ghc-attoparsec" ,ghc-attoparsec)
2472 ("ghc-hashable" ,ghc-hashable)
2473 ("ghc-unix-compat" ,ghc-unix-compat)
2474 ("ghc-unordered-containers" ,ghc-unordered-containers)))
2475 (native-inputs
2476 `(("ghc-hunit" ,ghc-hunit)
2477 ("ghc-test-framework" ,ghc-test-framework)
2478 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)))
702a1012 2479 (home-page "https://github.com/bos/configurator")
dddbc90c
RV
2480 (synopsis "Configuration management")
2481 (description
2482 "This package provides a configuration management library for programs
2483and daemons. The features include:
2484
2485@enumerate
2486@item Automatic, dynamic reloading in response to modifications to
2487 configuration files.
2488@item A simple, but flexible, configuration language, supporting several of
2489 the most commonly needed types of data, along with interpolation of strings
2490 from the configuration or the system environment (e.g. @code{$(HOME)}).
2491@item Subscription-based notification of changes to configuration properties.
2492@item An @code{import} directive allows the configuration of a complex
2493 application to be split across several smaller files, or common configuration
2494 data to be shared across several applications.
2495@end enumerate\n")
2496 (license license:bsd-3)))
2497
2498(define-public ghc-connection
2499 (package
2500 (name "ghc-connection")
6ee0d258 2501 (version "0.3.1")
dddbc90c
RV
2502 (source (origin
2503 (method url-fetch)
2504 (uri (string-append "https://hackage.haskell.org/package/"
2505 "connection/connection-"
2506 version ".tar.gz"))
2507 (sha256
2508 (base32
6ee0d258 2509 "1nbmafhlg0wy4aa3p7amjddbamdz6avzrxn4py3lvhrjqn4raxax"))))
dddbc90c
RV
2510 (build-system haskell-build-system)
2511 (inputs
2512 `(("ghc-byteable" ,ghc-byteable)
2513 ("ghc-data-default-class" ,ghc-data-default-class)
2514 ("ghc-network" ,ghc-network)
2515 ("ghc-tls" ,ghc-tls)
2516 ("ghc-socks" ,ghc-socks)
2517 ("ghc-x509" ,ghc-x509)
2518 ("ghc-x509-store" ,ghc-x509-store)
2519 ("ghc-x509-system" ,ghc-x509-system)
2520 ("ghc-x509-validation" ,ghc-x509-validation)))
2521 (home-page "https://github.com/vincenthz/hs-connection")
2522 (synopsis "Simple and easy network connections API")
2523 (description
2524 "This package provides a simple network library for all your connection
2525needs. It provides a very simple API to create sockets to a destination with
2526the choice of SSL/TLS, and SOCKS.")
2527 (license license:bsd-3)))
2528
2529(define-public ghc-constraints
2530 (package
2531 (name "ghc-constraints")
2532 (version "0.10.1")
2533 (source
2534 (origin
2535 (method url-fetch)
2536 (uri (string-append
2537 "https://hackage.haskell.org/package/constraints/constraints-"
2538 version ".tar.gz"))
2539 (sha256
2540 (base32
2541 "1xy3vv78jxc17hm0z7qqspxjwv7l2jbcbj670yrl2f053qkfr02q"))))
2542 (build-system haskell-build-system)
2543 (inputs
2544 `(("ghc-hashable" ,ghc-hashable)
2545 ("ghc-semigroups" ,ghc-semigroups)
2546 ("ghc-transformers-compat" ,ghc-transformers-compat)))
2547 (native-inputs
2548 `(("ghc-hspec" ,ghc-hspec)
2549 ("hspec-discover" ,hspec-discover)))
2550 (home-page "https://github.com/ekmett/constraints/")
2551 (synopsis "Constraint manipulation")
2552 (description
2553 "GHC 7.4 gave us the ability to talk about @code{ConstraintKinds}.
2554They stopped crashing the compiler in GHC 7.6. This package provides
2555a vocabulary for working with them.")
2556 (license license:bsd-3)))
2557
2558(define-public ghc-contravariant
2559 (package
2560 (name "ghc-contravariant")
e7b35ff0 2561 (version "1.5.2")
dddbc90c
RV
2562 (source
2563 (origin
2564 (method url-fetch)
2565 (uri (string-append
2566 "https://hackage.haskell.org/package/contravariant/contravariant-"
2567 version
2568 ".tar.gz"))
2569 (sha256
2570 (base32
e7b35ff0 2571 "0366gl62wwwdbl9i6kqy60asf60876k55v91la6bmhnwwcj2q9n4"))))
dddbc90c
RV
2572 (build-system haskell-build-system)
2573 (inputs
2574 `(("ghc-void" ,ghc-void)
2575 ("ghc-transformers-compat" ,ghc-transformers-compat)
2576 ("ghc-statevar" ,ghc-statevar)
2577 ("ghc-semigroups" ,ghc-semigroups)))
2578 (home-page
2579 "https://github.com/ekmett/contravariant/")
2580 (synopsis "Contravariant functors")
2581 (description "Contravariant functors for Haskell.")
2582 (license license:bsd-3)))
2583
2584(define-public ghc-contravariant-extras
2585 (package
2586 (name "ghc-contravariant-extras")
2587 (version "0.3.4")
2588 (source
2589 (origin
2590 (method url-fetch)
2591 (uri (string-append "https://hackage.haskell.org/package/"
2592 "contravariant-extras-" version "/"
2593 "contravariant-extras-" version ".tar.gz"))
2594 (sha256
2595 (base32
2596 "0gg62ccl94kvh7mnvdq09pifqxjx2kgs189si90nmg44bafj7a9n"))))
2597 (build-system haskell-build-system)
f3aca086
TS
2598 (arguments
2599 `(#:cabal-revision
2600 ("1" "1h2955ahga6i4fn7k8v66l03v77p6fhsac6ck8gpabkc08ij60wp")))
dddbc90c
RV
2601 (inputs
2602 `(("ghc-tuple-th" ,ghc-tuple-th)
2603 ("ghc-contravariant" ,ghc-contravariant)
2604 ("ghc-base-prelude" ,ghc-base-prelude)
2605 ("ghc-semigroups" ,ghc-semigroups)))
2606 (home-page "https://github.com/nikita-volkov/contravariant-extras")
2607 (synopsis "Extras for the @code{ghc-contravariant} Haskell package")
2608 (description "This Haskell package provides extras for the
2609@code{ghc-contravariant} package.")
2610 (license license:expat)))
2611
7f2a5650
CH
2612(define-public ghc-control-monad-free
2613 (package
2614 (name "ghc-control-monad-free")
2615 (version "0.6.2")
2616 (source
2617 (origin
2618 (method url-fetch)
2619 (uri (string-append
2620 "https://hackage.haskell.org/"
2621 "package/control-monad-free/control-monad-free-"
2622 version
2623 ".tar.gz"))
2624 (sha256
2625 (base32
2626 "1habgf7byffqf1rqjkzpihvdhclaafgqsqpfpwp3fgpj5ayk1j33"))))
2627 (build-system haskell-build-system)
2628 (home-page "https://github.com/pepeiborra/control-monad-free")
2629 (synopsis "Free monads and monad transformers")
2630 (description
2631 "This package provides datatypes to construct Free monads, Free monad
2632transformers, and useful instances. In addition it provides the constructs to
2633avoid quadratic complexity of left associative bind, as explained in:
2634
2635@itemize @bullet
2636@item
2637Janis Voigtlander, @cite{Asymptotic Improvement of Computations over
2638Free Monads, MPC'08}
2639@end itemize")
2640 (license license:public-domain)))
2641
dddbc90c
RV
2642(define-public ghc-convertible
2643 (package
2644 (name "ghc-convertible")
2645 (version "1.1.1.0")
2646 (source
2647 (origin
2648 (method url-fetch)
2649 (uri (string-append "https://hackage.haskell.org/package/convertible/"
2650 "convertible-" version ".tar.gz"))
2651 (sha256
2652 (base32
2653 "0v18ap1mccnndgxmbfgyjdicg8jlss01bd5fq8a576dr0h4sgyg9"))))
2654 (build-system haskell-build-system)
2655 (inputs
2656 `(("ghc-old-time" ,ghc-old-time)
2657 ("ghc-old-locale" ,ghc-old-locale)))
2658 (home-page "https://hackage.haskell.org/package/convertible")
2659 (synopsis "Typeclasses and instances for converting between types")
2660 (description
2661 "This package provides a typeclass with a single function that is
2662designed to help convert between different types: numeric values, dates and
2663times, and the like. The conversions perform bounds checking and return a
2664pure @code{Either} value. This means that you need not remember which specific
2665function performs the conversion you desire.")
2666 (license license:bsd-3)))
2667
0ff9a717
CH
2668(define-public ghc-csv
2669 (package
2670 (name "ghc-csv")
2671 (version "0.1.2")
2672 (source
2673 (origin
2674 (method url-fetch)
2675 (uri (string-append
2676 "https://hackage.haskell.org/package/csv/csv-"
2677 version
2678 ".tar.gz"))
2679 (sha256
2680 (base32
2681 "00767ai09wm7f0yzmpqck3cpgxncpr9djnmmz5l17ajz69139x4c"))))
2682 (build-system haskell-build-system)
2683 (home-page "http://hackage.haskell.org/package/csv")
2684 (synopsis "CSV loader and dumper")
2685 (description
2686 "This library parses and dumps documents that are formatted according to
2687RFC 4180, @cite{The common Format and MIME Type for Comma-Separated
2688Values (CSV) Files}. This format is used, among many other things, as a
2689lingua franca for spreadsheets, and for certain web services.")
2690 (license license:expat)))
2691
dddbc90c
RV
2692(define-public ghc-data-accessor
2693 (package
2694 (name "ghc-data-accessor")
6dcca515 2695 (version "0.2.2.8")
dddbc90c
RV
2696 (source
2697 (origin
2698 (method url-fetch)
2699 (uri (string-append
2700 "mirror://hackage/package/data-accessor/data-accessor-"
2701 version ".tar.gz"))
2702 (sha256
6dcca515 2703 (base32 "1fq4gygxbz0bd0mzgvc1sl3m4gjnsv8nbgpnmdpa29zj5lb9agxc"))))
dddbc90c 2704 (build-system haskell-build-system)
228d2901 2705 (home-page "https://wiki.haskell.org/Record_access")
dddbc90c
RV
2706 (synopsis
2707 "Haskell utilities for accessing and manipulating fields of records")
2708 (description "This package provides Haskell modules for accessing and
2709manipulating fields of records.")
2710 (license license:bsd-3)))
2711
2712(define-public ghc-data-accessor-transformers
2713 (package
2714 (name "ghc-data-accessor-transformers")
2715 (version "0.2.1.7")
2716 (source
2717 (origin
2718 (method url-fetch)
2719 (uri (string-append
2720 "mirror://hackage/package/data-accessor-transformers/"
2721 "data-accessor-transformers-" version ".tar.gz"))
2722 (sha256
2723 (base32 "0yp030vafbpddl27m606aibbbr5ar5j5bsv4bksscz3cq4yq5j10"))))
2724 (build-system haskell-build-system)
2725 (inputs `(("ghc-data-accessor" ,ghc-data-accessor)))
228d2901 2726 (home-page "https://wiki.haskell.org/Record_access")
dddbc90c
RV
2727 (synopsis "Use Accessor to access state in transformers State monad")
2728 (description "This package provides Haskell modules to allow use of
2729Accessor to access state in transformers State monad.")
2730 (license license:bsd-3)))
2731
2732(define-public ghc-data-default
2733 (package
2734 (name "ghc-data-default")
2735 (version "0.7.1.1")
2736 (source
2737 (origin
2738 (method url-fetch)
2739 (uri (string-append
2740 "https://hackage.haskell.org/package/data-default/data-default-"
2741 version
2742 ".tar.gz"))
2743 (sha256
2744 (base32 "04d5n8ybmcxba9qb6h389w9zfq1lvj81b82jh6maqp6pkhkmvydh"))))
2745 (build-system haskell-build-system)
2746 (inputs
2747 `(("ghc-data-default-class"
2748 ,ghc-data-default-class)
2749 ("ghc-data-default-instances-base"
2750 ,ghc-data-default-instances-base)
2751 ("ghc-data-default-instances-containers"
2752 ,ghc-data-default-instances-containers)
2753 ("ghc-data-default-instances-dlist"
2754 ,ghc-data-default-instances-dlist)
2755 ("ghc-data-default-instances-old-locale"
2756 ,ghc-data-default-instances-old-locale)))
2757 (home-page "https://hackage.haskell.org/package/data-default")
2758 (synopsis "Types with default values")
2759 (description
2760 "This package defines a class for types with a default value, and
2761provides instances for types from the base, containers, dlist and old-locale
2762packages.")
2763 (license license:bsd-3)))
2764
2765(define-public ghc-data-default-class
2766 (package
2767 (name "ghc-data-default-class")
2768 (version "0.1.2.0")
2769 (source
2770 (origin
2771 (method url-fetch)
2772 (uri (string-append
2773 "https://hackage.haskell.org/package/data-default-class/"
2774 "data-default-class-" version ".tar.gz"))
2775 (sha256
2776 (base32 "0miyjz8d4jyvqf2vp60lyfbnflx6cj2k8apmm9ly1hq0y0iv80ag"))))
2777 (build-system haskell-build-system)
2778 (home-page "https://hackage.haskell.org/package/data-default-class")
2779 (synopsis "Types with default values")
2780 (description
2781 "This package defines a class for types with default values.")
2782 (license license:bsd-3)))
2783
2784(define-public ghc-data-default-instances-base
2785 (package
2786 (name "ghc-data-default-instances-base")
2787 (version "0.1.0.1")
2788 (source
2789 (origin
2790 (method url-fetch)
2791 (uri (string-append
2792 "https://hackage.haskell.org/package/"
2793 "data-default-instances-base/"
2794 "data-default-instances-base-" version ".tar.gz"))
2795 (sha256
2796 (base32 "0ym1sw3ssdzzifxxhh76qlv8kkmb2iclc158incv1dklyr9y8kw4"))))
2797 (build-system haskell-build-system)
2798 (inputs
2799 `(("ghc-data-default-class" ,ghc-data-default-class)))
2800 (home-page "https://hackage.haskell.org/package/data-default-instances-base")
2801 (synopsis "Default instances for types in base")
2802 (description
2803 "This package provides default instances for types from the base
2804package.")
2805 (license license:bsd-3)))
2806
2807(define-public ghc-data-default-instances-containers
2808 (package
2809 (name "ghc-data-default-instances-containers")
2810 (version "0.0.1")
2811 (source
2812 (origin
2813 (method url-fetch)
2814 (uri (string-append
2815 "https://hackage.haskell.org/package/"
2816 "data-default-instances-containers/"
2817 "data-default-instances-containers-" version ".tar.gz"))
2818 (sha256
2819 (base32 "06h8xka031w752a7cjlzghvr8adqbl95xj9z5zc1b62w02phfpm5"))))
2820 (build-system haskell-build-system)
2821 (inputs
2822 `(("ghc-data-default-class" ,ghc-data-default-class)))
2823 (home-page "https://hackage.haskell.org/package/data-default-instances-containers")
2824 (synopsis "Default instances for types in containers")
2825 (description "Provides default instances for types from the containers
2826package.")
2827 (license license:bsd-3)))
2828
2829(define-public ghc-data-default-instances-dlist
2830 (package
2831 (name "ghc-data-default-instances-dlist")
2832 (version "0.0.1")
2833 (source
2834 (origin
2835 (method url-fetch)
2836 (uri (string-append
2837 "https://hackage.haskell.org/package/"
2838 "data-default-instances-dlist/"
2839 "data-default-instances-dlist-" version ".tar.gz"))
2840 (sha256
2841 (base32 "0narkdqiprhgayjiawrr4390h4rq4pl2pb6mvixbv2phrc8kfs3x"))))
2842 (build-system haskell-build-system)
2843 (inputs
2844 `(("ghc-data-default-class" ,ghc-data-default-class)
2845 ("ghc-dlist" ,ghc-dlist)))
2846 (home-page "https://hackage.haskell.org/package/data-default-instances-dlist")
2847 (synopsis "Default instances for types in dlist")
2848 (description "Provides default instances for types from the dlist
2849package.")
2850 (license license:bsd-3)))
2851
2852(define-public ghc-data-default-instances-old-locale
2853 (package
2854 (name "ghc-data-default-instances-old-locale")
2855 (version "0.0.1")
2856 (source
2857 (origin
2858 (method url-fetch)
2859 (uri (string-append
2860 "https://hackage.haskell.org/package/"
2861 "data-default-instances-old-locale/"
2862 "data-default-instances-old-locale-" version ".tar.gz"))
2863 (sha256
2864 (base32 "00h81i5phib741yj517p8mbnc48myvfj8axzsw44k34m48lv1lv0"))))
2865 (build-system haskell-build-system)
2866 (inputs
2867 `(("ghc-data-default-class" ,ghc-data-default-class)
2868 ("ghc-old-locale" ,ghc-old-locale)))
2869 (home-page
2870 "https://hackage.haskell.org/package/data-default-instances-old-locale")
2871 (synopsis "Default instances for types in old-locale")
2872 (description "Provides Default instances for types from the old-locale
2873 package.")
2874 (license license:bsd-3)))
2875
82c36002
JS
2876(define-public ghc-data-fix
2877 (package
2878 (name "ghc-data-fix")
2879 (version "0.2.0")
2880 (source
2881 (origin
2882 (method url-fetch)
2883 (uri (string-append
2884 "mirror://hackage/package/data-fix/"
2885 "data-fix-" version ".tar.gz"))
2886 (sha256
2887 (base32 "14hk6hq5hdb3l5bhmzhw086jpzlvp9qbw9dzw30wlz5jbh2ihmvy"))))
2888 (build-system haskell-build-system)
2889 (home-page "https://github.com/spell-music/data-fix")
2890 (synopsis "Fixpoint data types")
2891 (description
2892 "Fixpoint types and recursion schemes. If you define your AST as
2893fixpoint type, you get fold and unfold operations for free.
2894
2895Thanks for contribution to: Matej Kollar, Herbert Valerio Riedel")
2896 (license license:bsd-3)))
2897
dddbc90c
RV
2898(define-public ghc-data-hash
2899 (package
2900 (name "ghc-data-hash")
2901 (version "0.2.0.1")
2902 (source
2903 (origin
2904 (method url-fetch)
2905 (uri (string-append "https://hackage.haskell.org/package/data-hash"
2906 "/data-hash-" version ".tar.gz"))
2907 (sha256
2908 (base32 "1ghbqvc48gf9p8wiy71hdpaj7by3b9cw6wgwi3qqz8iw054xs5wi"))))
2909 (build-system haskell-build-system)
2910 (inputs
2911 `(("ghc-quickcheck" ,ghc-quickcheck)
2912 ("ghc-test-framework" ,ghc-test-framework)
2913 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
2914 (home-page "https://hackage.haskell.org/package/data-hash")
2915 (synopsis "Combinators for building fast hashing functions")
2916 (description
2917 "This package provides combinators for building fast hashing functions.
2918It includes hashing functions for all basic Haskell98 types.")
2919 (license license:bsd-3)))
2920
2921(define-public ghc-data-ordlist
2922 (package
2923 (name "ghc-data-ordlist")
2924 (version "0.4.7.0")
2925 (source
2926 (origin
2927 (method url-fetch)
2928 (uri (string-append
2929 "https://hackage.haskell.org/package/data-ordlist/data-ordlist-"
2930 version ".tar.gz"))
2931 (sha256
2932 (base32
2933 "03a9ix1fcx08viwv2jg5ndw1qbkydyyrmjvqr9wasmcik9x1wv3g"))))
2934 (build-system haskell-build-system)
2935 (home-page "https://hackage.haskell.org/package/data-ordlist")
2936 (synopsis "Set and bag operations on ordered lists")
2937 (description
2938 "This module provides set and multiset operations on ordered lists.")
2939 (license license:bsd-3)))
2940
d05f32d6
JS
2941(define-public ghc-dbus
2942 (package
2943 (name "ghc-dbus")
2944 (version "1.2.7")
2945 (source
2946 (origin
2947 (method url-fetch)
2948 (uri
2949 (string-append
2950 "mirror://hackage/package/dbus/dbus-"
2951 version ".tar.gz"))
2952 (sha256
2953 (base32
2954 "0ypkjlw9fn65g7p28kb3p82glk7qs7p7vyffccw7qxa3z57s12w5"))))
2955 (build-system haskell-build-system)
2956 (inputs
2957 `(("ghc-cereal" ,ghc-cereal)
2958 ("ghc-conduit" ,ghc-conduit)
2959 ("ghc-exceptions" ,ghc-exceptions)
2960 ("ghc-lens" ,ghc-lens)
2961 ("ghc-network" ,ghc-network)
2962 ("ghc-random" ,ghc-random)
2963 ("ghc-split" ,ghc-split)
2964 ("ghc-th-lift" ,ghc-th-lift)
2965 ("ghc-vector" ,ghc-vector)
2966 ("ghc-xml-conduit" ,ghc-xml-conduit)
2967 ("ghc-xml-types" ,ghc-xml-types)))
2968 (native-inputs
2969 `(("ghc-extra" ,ghc-extra)
2970 ("ghc-quickcheck" ,ghc-quickcheck)
2971 ("ghc-resourcet" ,ghc-resourcet)
2972 ("ghc-tasty" ,ghc-tasty)
2973 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
2974 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
2975 ;; FIXME - Some tests try to talk to network.
2976 (arguments `(#:tests? #f))
2977 (home-page "https://github.com/rblaze/haskell-dbus")
2978 (synopsis "Client library for the D-Bus IPC system")
2979 (description
2980 "D-Bus is a simple, message-based protocol for inter-process
2981communication, which allows applications to interact with other parts
2982of the machine and the user's session using remote procedure
2983calls. D-Bus is a essential part of the modern Linux desktop, where
2984it replaces earlier protocols such as CORBA and DCOP. This library
2985is an implementation of the D-Bus protocol in Haskell. It can be used
2986to add D-Bus support to Haskell applications, without the awkward
2987interfaces common to foreign bindings.")
2988 (license license:asl2.0)))
2989
dddbc90c
RV
2990(define-public ghc-deepseq-generics
2991 (package
2992 (name "ghc-deepseq-generics")
2993 (version "0.2.0.0")
2994 (source (origin
2995 (method url-fetch)
2996 (uri (string-append "https://hackage.haskell.org/package/"
2997 "deepseq-generics/deepseq-generics-"
2998 version ".tar.gz"))
2999 (sha256
3000 (base32
3001 "17bwghc15mc9pchfd1w46jh2p3wzc86aj6a537wqwxn08rayzcxh"))))
3002 (build-system haskell-build-system)
3003 (arguments
3004 `(#:cabal-revision
490ceae4 3005 ("4" "0928s2qnbqsjzrm94x88rvmvbigfmhcyp4m73gw6asinp2qg1kii")))
dddbc90c
RV
3006 (native-inputs
3007 `(("ghc-hunit" ,ghc-hunit)
3008 ("ghc-test-framework" ,ghc-test-framework)
3009 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)))
3010 (home-page "https://github.com/hvr/deepseq-generics")
3011 (synopsis "Generic RNF implementation")
3012 (description
3013 "This package provides a @code{GHC.Generics}-based
3014@code{Control.DeepSeq.Generics.genericRnf} function which can be used for
3015providing an @code{rnf} implementation.")
3016 (license license:bsd-3)))
3017
e924e17e
TS
3018(define-public ghc-dense-linear-algebra
3019 (package
3020 (name "ghc-dense-linear-algebra")
3021 (version "0.1.0.0")
3022 (source
3023 (origin
3024 (method url-fetch)
3025 (uri (string-append "https://hackage.haskell.org/package/"
3026 "dense-linear-algebra/dense-linear-algebra-"
3027 version ".tar.gz"))
3028 (sha256
3029 (base32
3030 "1m7jjxahqxj7ilic3r9806mwp5rnnsmn8vvipkmk40xl65wplxzp"))))
3031 (build-system haskell-build-system)
3032 (inputs
3033 `(("ghc-math-functions" ,ghc-math-functions)
3034 ("ghc-primitive" ,ghc-primitive)
3035 ("ghc-vector" ,ghc-vector)
3036 ("ghc-vector-algorithms" ,ghc-vector-algorithms)
3037 ("ghc-vector-th-unbox" ,ghc-vector-th-unbox)
3038 ("ghc-vector-binary-instances" ,ghc-vector-binary-instances)))
3039 (native-inputs
3040 `(("ghc-hspec" ,ghc-hspec)
3041 ("ghc-quickcheck" ,ghc-quickcheck)))
50153437 3042 (home-page "https://hackage.haskell.org/package/dense-linear-algebra")
e924e17e
TS
3043 (synopsis "Simple and incomplete implementation of linear algebra")
3044 (description "This library is simply a collection of linear-algebra
3045related modules split from the statistics library.")
3046 (license license:bsd-2)))
3047
dddbc90c
RV
3048(define-public ghc-descriptive
3049 (package
3050 (name "ghc-descriptive")
3051 (version "0.9.5")
3052 (source
3053 (origin
3054 (method url-fetch)
3055 (uri (string-append
3056 "https://hackage.haskell.org/package/descriptive/descriptive-"
3057 version
3058 ".tar.gz"))
3059 (sha256
3060 (base32
3061 "0y5693zm2kvqjilybbmrcv1g6n6x2p6zjgi0k0axjw1sdhh1g237"))))
3062 (build-system haskell-build-system)
3063 (inputs
3064 `(("ghc-aeson" ,ghc-aeson)
3065 ("ghc-bifunctors" ,ghc-bifunctors)
3066 ("ghc-scientific" ,ghc-scientific)
3067 ("ghc-vector" ,ghc-vector)))
3068 (native-inputs
3069 `(("ghc-hunit" ,ghc-hunit)
3070 ("ghc-hspec" ,ghc-hspec)))
3071 (home-page
3072 "https://github.com/chrisdone/descriptive")
3073 (synopsis
3074 "Self-describing consumers/parsers: forms, cmd-line args, JSON, etc.")
3075 (description
3076 "This package provides datatypes and functions for creating consumers
3077and parsers with useful semantics.")
3078 (license license:bsd-3)))
3079
1859c94a
TS
3080(define-public ghc-diagrams-core
3081 (package
3082 (name "ghc-diagrams-core")
3083 (version "1.4.2")
3084 (source
3085 (origin
3086 (method url-fetch)
3087 (uri (string-append "https://hackage.haskell.org/package/"
3088 "diagrams-core/diagrams-core-" version ".tar.gz"))
3089 (sha256
3090 (base32
3091 "0qgb43vy23g4fxh3nmxfq6jyp34imqvkhgflaa6rz0iq6d60gl43"))))
3092 (build-system haskell-build-system)
3093 (inputs
3094 `(("ghc-unordered-containers" ,ghc-unordered-containers)
3095 ("ghc-semigroups" ,ghc-semigroups)
3096 ("ghc-monoid-extras" ,ghc-monoid-extras)
3097 ("ghc-dual-tree" ,ghc-dual-tree)
3098 ("ghc-lens" ,ghc-lens)
3099 ("ghc-linear" ,ghc-linear)
3100 ("ghc-adjunctions" ,ghc-adjunctions)
3101 ("ghc-distributive" ,ghc-distributive)
3102 ("ghc-profunctors" ,ghc-profunctors)))
3103 (home-page "https://archives.haskell.org/projects.haskell.org/diagrams/")
3104 (synopsis "Core libraries for diagrams embedded domain-specific language")
3105 (description "This package provides the core modules underlying
3106diagrams, an embedded domain-specific language for compositional,
3107declarative drawing.")
3108 (license license:bsd-3)))
3109
f9f1a630
TS
3110(define-public ghc-diagrams-lib
3111 (package
3112 (name "ghc-diagrams-lib")
3113 (version "1.4.2.3")
3114 (source
3115 (origin
3116 (method url-fetch)
3117 (uri (string-append "https://hackage.haskell.org/package/"
3118 "diagrams-lib/diagrams-lib-" version ".tar.gz"))
3119 (sha256
3120 (base32
3121 "175yzi5kw4yd8ykdkpf64q85c7j3p89l90m3h6qcsx9ipv6av9r5"))))
3122 (build-system haskell-build-system)
3123 (inputs
3124 `(("ghc-semigroups" ,ghc-semigroups)
3125 ("ghc-monoid-extras" ,ghc-monoid-extras)
3126 ("ghc-dual-tree" ,ghc-dual-tree)
3127 ("ghc-diagrams-core" ,ghc-diagrams-core)
3128 ("ghc-diagrams-solve" ,ghc-diagrams-solve)
3129 ("ghc-active" ,ghc-active)
3130 ("ghc-colour" ,ghc-colour)
3131 ("ghc-data-default-class" ,ghc-data-default-class)
3132 ("ghc-fingertree" ,ghc-fingertree)
3133 ("ghc-intervals" ,ghc-intervals)
3134 ("ghc-lens" ,ghc-lens)
3135 ("ghc-tagged" ,ghc-tagged)
3136 ("ghc-optparse-applicative" ,ghc-optparse-applicative)
3137 ("ghc-juicypixels" ,ghc-juicypixels)
3138 ("ghc-hashable" ,ghc-hashable)
3139 ("ghc-linear" ,ghc-linear)
3140 ("ghc-adjunctions" ,ghc-adjunctions)
3141 ("ghc-distributive" ,ghc-distributive)
3142 ("ghc-fsnotify" ,ghc-fsnotify)
3143 ("ghc-unordered-containers" ,ghc-unordered-containers)
3144 ("ghc-profunctors" ,ghc-profunctors)
3145 ("ghc-exceptions" ,ghc-exceptions)
3146 ("ghc-cereal" ,ghc-cereal)))
3147 (native-inputs
3148 `(("ghc-tasty" ,ghc-tasty)
3149 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
3150 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
3151 ("ghc-numeric-extras" ,ghc-numeric-extras)))
3152 (arguments
3153 `(#:cabal-revision
3154 ("3" "157y2qdsh0aczs81vzlm377mks976mpv6y3aqnchwsnr7apzp8ai")))
3155 (home-page "https://archives.haskell.org/projects.haskell.org/diagrams/")
3156 (synopsis "Embedded domain-specific language for declarative graphics")
3157 (description "Diagrams is a flexible, extensible embedded
3158domain-specific language (EDSL) for creating graphics of many types.
3159Graphics can be created in arbitrary vector spaces and rendered with
3160multiple backends. This package provides a standard library of
3161primitives and operations for creating diagrams.")
3162 (license license:bsd-3)))
3163
fd33ffa0
TS
3164(define-public ghc-diagrams-solve
3165 (package
3166 (name "ghc-diagrams-solve")
3167 (version "0.1.1")
3168 (source
3169 (origin
3170 (method url-fetch)
3171 (uri (string-append "https://hackage.haskell.org/package/"
3172 "diagrams-solve/diagrams-solve-"
3173 version ".tar.gz"))
3174 (sha256
3175 (base32
3176 "17agchqkmj14b17sw50kzxq4hm056g5d8yy0wnqn5w8h1d0my7x4"))))
3177 (build-system haskell-build-system)
3178 (native-inputs
3179 `(("ghc-tasty" ,ghc-tasty)
3180 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
3181 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
3182 (arguments
3183 `(#:cabal-revision
3184 ("5" "1yl8cs05fzqcz49p601am1ij66m9pa70yamhfxgcvya2pf8nimlf")))
3185 (home-page "https://archives.haskell.org/projects.haskell.org/diagrams/")
3186 (synopsis "Pure Haskell solver routines used by diagrams")
3187 (description "This library provides Pure Haskell solver routines for
3188use by the
3189@url{https://archives.haskell.org/projects.haskell.org/diagrams/,
3190diagrams framework}. It currently includes routines for finding real
3191roots of low-degree (@math{n < 5}) polynomials, and solving tridiagonal
3192and cyclic tridiagonal linear systems.")
3193 (license license:bsd-3)))
3194
74be1cb7
TS
3195(define-public ghc-diagrams-svg
3196 (package
3197 (name "ghc-diagrams-svg")
3198 (version "1.4.2")
3199 (source
3200 (origin
3201 (method url-fetch)
3202 (uri (string-append "https://hackage.haskell.org/package/"
3203 "diagrams-svg/diagrams-svg-" version ".tar.gz"))
3204 (sha256
3205 (base32
3206 "1lnyxx45yawqas7hmvvannwaa3ycf1l9g40lsl2m8sl2ja6vcmal"))))
3207 (build-system haskell-build-system)
3208 (inputs
3209 `(("ghc-base64-bytestring" ,ghc-base64-bytestring)
3210 ("ghc-colour" ,ghc-colour)
3211 ("ghc-diagrams-core" ,ghc-diagrams-core)
3212 ("ghc-diagrams-lib" ,ghc-diagrams-lib)
3213 ("ghc-monoid-extras" ,ghc-monoid-extras)
3214 ("ghc-svg-builder" ,ghc-svg-builder)
3215 ("ghc-juicypixels" ,ghc-juicypixels)
3216 ("ghc-split" ,ghc-split)
3217 ("ghc-lens" ,ghc-lens)
3218 ("ghc-hashable" ,ghc-hashable)
3219 ("ghc-optparse-applicative" ,ghc-optparse-applicative)
3220 ("ghc-semigroups" ,ghc-semigroups)))
3221 (arguments
3222 `(#:cabal-revision
3223 ("2" "15sn85xaachw4cj56w61bjcwrbf4qmnkfl8mbgdapxi5k0y4f2qv")))
3224 (home-page "https://archives.haskell.org/projects.haskell.org/diagrams/")
3225 (synopsis "Scalable Vector Grpahics backend for the diagrams framework")
3226 (description "This package provides a modular backend for rendering
3227diagrams created with the diagrams embedded domain-specific
3228language (EDSL) to Scalable Vector Graphics (SVG) files.")
3229 (license license:bsd-3)))
3230
4eb9a167
TS
3231(define-public ghc-dictionary-sharing
3232 (package
3233 (name "ghc-dictionary-sharing")
3234 (version "0.1.0.0")
3235 (source
3236 (origin
3237 (method url-fetch)
3238 (uri (string-append "https://hackage.haskell.org/package/"
3239 "dictionary-sharing/dictionary-sharing-"
3240 version ".tar.gz"))
3241 (sha256
3242 (base32
3243 "00aspv943qdqhlk39mbk00kb1dsa5r0caj8sslrn81fnsn252fwc"))))
3244 (build-system haskell-build-system)
3245 (arguments
3246 `(#:cabal-revision
3247 ("3" "1mn7jcc7h3b8f1pn9zigqp6mc2n0qb66lms5qnrx4zswdv5w9439")))
3248 (home-page "https://hackage.haskell.org/package/dictionary-sharing")
3249 (synopsis "Sharing/memoization of class members")
3250 (description "This library provides tools for ensuring that class
3251members are shared.")
3252 (license license:bsd-3)))
3253
dddbc90c
RV
3254(define-public ghc-diff
3255 (package
3256 (name "ghc-diff")
3257 (version "0.3.4")
3258 (source (origin
3259 (method url-fetch)
3260 (uri (string-append "https://hackage.haskell.org/package/"
3261 "Diff/Diff-" version ".tar.gz"))
a531ff94 3262 (patches (search-patches "ghc-diff-swap-cover-args.patch"))
dddbc90c
RV
3263 (sha256
3264 (base32
3265 "0bqcdvhxx8dmqc3793m6axg813wv9ldz2j37f1wygbbrbbndmdvp"))))
3266 (build-system haskell-build-system)
3267 (native-inputs
3268 `(("ghc-quickcheck" ,ghc-quickcheck)
3269 ("ghc-test-framework" ,ghc-test-framework)
3270 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
3271 (home-page "https://hub.darcs.net/sterlingclover/Diff")
3272 (synopsis "O(ND) diff algorithm in Haskell")
3273 (description
3274 "This package provides an implementation of the standard diff algorithm,
3275and utilities for pretty printing.")
3276 (license license:bsd-3)))
3277
3278(define-public ghc-disk-free-space
3279 (package
3280 (name "ghc-disk-free-space")
3281 (version "0.1.0.1")
3282 (source
3283 (origin
3284 (method url-fetch)
3285 (uri (string-append "https://hackage.haskell.org/package/"
3286 "disk-free-space/disk-free-space-"
3287 version ".tar.gz"))
3288 (sha256
3289 (base32
3290 "07rqj8k1vh3cykq9yidpjxhgh1f7vgmjs6y1nv5kq2217ff4yypi"))))
3291 (build-system haskell-build-system)
3292 (home-page "https://github.com/redneb/disk-free-space")
3293 (synopsis "Retrieve information about disk space usage")
3294 (description "A cross-platform library for retrieving information about
3295disk space usage.")
3296 (license license:bsd-3)))
3297
3298(define-public ghc-distributive
3299 (package
3300 (name "ghc-distributive")
78215a14 3301 (version "0.6.2")
dddbc90c
RV
3302 (source
3303 (origin
3304 (method url-fetch)
3305 (uri (string-append
3306 "https://hackage.haskell.org/package/distributive/distributive-"
3307 version
3308 ".tar.gz"))
3309 (sha256
3310 (base32
78215a14 3311 "1j93zkfffm6s16kgr0j0z87y5ds28rw0r2gyc5ncwcylvrqy4kl2"))))
dddbc90c 3312 (build-system haskell-build-system)
dddbc90c
RV
3313 (inputs
3314 `(("ghc-tagged" ,ghc-tagged)
3315 ("ghc-base-orphans" ,ghc-base-orphans)
3316 ("ghc-transformers-compat" ,ghc-transformers-compat)
3317 ("ghc-semigroups" ,ghc-semigroups)
3318 ("ghc-generic-deriving" ,ghc-generic-deriving)))
3319 (native-inputs
3320 `(("cabal-doctest" ,cabal-doctest)
3321 ("ghc-doctest" ,ghc-doctest)
3322 ("ghc-hspec" ,ghc-hspec)
3323 ("hspec-discover" ,hspec-discover)))
3324 (home-page "https://github.com/ekmett/distributive/")
3325 (synopsis "Distributive functors for Haskell")
3326 (description "This package provides distributive functors for Haskell.
3327Dual to @code{Traversable}.")
3328 (license license:bsd-3)))
3329
3330(define-public ghc-dlist
3331 (package
3332 (name "ghc-dlist")
197ddf33 3333 (version "0.8.0.7")
dddbc90c
RV
3334 (source
3335 (origin
3336 (method url-fetch)
3337 (uri (string-append
3338 "https://hackage.haskell.org/package/dlist/dlist-"
3339 version
3340 ".tar.gz"))
3341 (sha256
197ddf33 3342 (base32 "0b5spkzvj2kx8pk86xz0djkxs13j7dryf5fl16dk4mlp1wh6mh53"))))
dddbc90c
RV
3343 (build-system haskell-build-system)
3344 (inputs
3345 `(("ghc-quickcheck" ,ghc-quickcheck)))
3346 (home-page "https://github.com/spl/dlist")
3347 (synopsis "Difference lists")
3348 (description
3349 "Difference lists are a list-like type supporting O(1) append. This is
3350particularly useful for efficient logging and pretty printing (e.g. with the
3351Writer monad), where list append quickly becomes too expensive.")
3352 (license license:bsd-3)))
3353
3354(define-public ghc-doctemplates
3355 (package
3356 (name "ghc-doctemplates")
3357 (version "0.2.2.1")
3358 (source
3359 (origin
3360 (method url-fetch)
3361 (uri (string-append "https://hackage.haskell.org/package/"
3362 "doctemplates/doctemplates-"
3363 version ".tar.gz"))
3364 (sha256
3365 (base32
3366 "1gyckfg3kgvzhxw14i7iwrw0crygvsp86sy53bbr1yn7bxbgn33b"))))
3367 (build-system haskell-build-system)
3368 (inputs
3369 `(("ghc-aeson" ,ghc-aeson)
3370 ("ghc-blaze-markup" ,ghc-blaze-markup)
3371 ("ghc-blaze-html" ,ghc-blaze-html)
3372 ("ghc-vector" ,ghc-vector)
3373 ("ghc-unordered-containers" ,ghc-unordered-containers)
3374 ("ghc-scientific" ,ghc-scientific)))
3375 (native-inputs
3376 `(("ghc-hspec" ,ghc-hspec)))
3377 (home-page "https://github.com/jgm/doctemplates#readme")
3378 (synopsis "Pandoc-style document templates")
3379 (description
3380 "This package provides a simple text templating system used by pandoc.")
3381 (license license:bsd-3)))
3382
3383(define-public ghc-doctest
3384 (package
3385 (name "ghc-doctest")
19c14a0f 3386 (version "0.16.2")
dddbc90c
RV
3387 (source
3388 (origin
3389 (method url-fetch)
3390 (uri (string-append
3391 "https://hackage.haskell.org/package/doctest/doctest-"
3392 version
3393 ".tar.gz"))
3394 (sha256
3395 (base32
19c14a0f 3396 "0lk4cjfzi5bx2snfzw1zi06li0gvgz3ckfh2kwa98l7nxfdl39ag"))))
dddbc90c
RV
3397 (build-system haskell-build-system)
3398 (arguments `(#:tests? #f)) ; FIXME: missing test framework
3399 (inputs
3400 `(("ghc-syb" ,ghc-syb)
3401 ("ghc-paths" ,ghc-paths)
3402 ("ghc-base-compat" ,ghc-base-compat)
3403 ("ghc-code-page" ,ghc-code-page)
3404 ("ghc-hunit" ,ghc-hunit)
3405 ("ghc-hspec" ,ghc-hspec)
3406 ("ghc-quickcheck" ,ghc-quickcheck)
3407 ("ghc-stringbuilder" ,ghc-stringbuilder)
3408 ("ghc-silently" ,ghc-silently)
3409 ("ghc-setenv" ,ghc-setenv)))
3410 (home-page
3411 "https://github.com/sol/doctest#readme")
3412 (synopsis "Test interactive Haskell examples")
3413 (description "The doctest program checks examples in source code comments.
3414It is modeled after doctest for Python, see
3415@uref{https://docs.python.org/library/doctest.html, the Doctest website}.")
3416 (license license:expat)))
3417
2b2c8911
JS
3418(define-public ghc-dotgen
3419 (package
3420 (name "ghc-dotgen")
3421 (version "0.4.2")
3422 (source
3423 (origin
3424 (method url-fetch)
3425 (uri (string-append
3426 "mirror://hackage/package/dotgen/dotgen-"
3427 version
3428 ".tar.gz"))
3429 (sha256
3430 (base32
3431 "148q93qsmqgr5pzdwvpjqfd6bdm1pwzcp2rblfwswx2x8c5f43fg"))))
3432 (build-system haskell-build-system)
3433 (home-page "https://github.com/ku-fpg/dotgen")
3434 (synopsis
3435 "Simple interface for building .dot graph files")
3436 (description
3437 "This package provides a simple interface for building .dot graph
3438files, for input into the dot and graphviz tools. It includes a
3439monadic interface for building graphs.")
3440 (license license:bsd-3)))
3441
dddbc90c
RV
3442(define-public ghc-double-conversion
3443 (package
3444 (name "ghc-double-conversion")
3445 (version "2.0.2.0")
3446 (source
3447 (origin
3448 (method url-fetch)
3449 (uri (string-append "https://hackage.haskell.org/package/"
3450 "double-conversion/double-conversion-"
3451 version ".tar.gz"))
3452 (sha256
3453 (base32
3454 "0sx2kc1gw72mjvd8vph8bbjw5whfxfv92rsdhjg1c0al75rf3ka4"))))
3455 (build-system haskell-build-system)
3456 (native-inputs
3457 `(("ghc-hunit" ,ghc-hunit)
3458 ("ghc-test-framework" ,ghc-test-framework)
3459 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
3460 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
3461 (home-page "https://github.com/bos/double-conversion")
3462 (synopsis "Fast conversion between double precision floating point and text")
3463 (description
3464 "This package provides a library that performs fast, accurate conversion
3465between double precision floating point and text.")
3466 (license license:bsd-3)))
3467
577a78b7
TS
3468(define-public ghc-dual-tree
3469 (package
3470 (name "ghc-dual-tree")
3471 (version "0.2.2.1")
3472 (source
3473 (origin
3474 (method url-fetch)
3475 (uri (string-append "https://hackage.haskell.org/package/"
3476 "dual-tree/dual-tree-" version ".tar.gz"))
3477 (sha256
3478 (base32
3479 "17kdfnf0df0z5pkiifxrlmyd1xd7hjjaazd2kzyajl0gd00vbszx"))))
3480 (build-system haskell-build-system)
3481 (inputs
3482 `(("ghc-semigroups" ,ghc-semigroups)
3483 ("ghc-newtype-generics" ,ghc-newtype-generics)
3484 ("ghc-monoid-extras" ,ghc-monoid-extras)))
3485 (native-inputs
3486 `(("ghc-quickcheck" ,ghc-quickcheck)
3487 ("ghc-testing-feat" ,ghc-testing-feat)))
3488 (home-page "https://hackage.haskell.org/package/dual-tree")
3489 (synopsis "Rose trees with cached and accumulating monoidal annotations")
3490 (description "Rose (@math{n}-ary) trees with both upwards- (i.e.
3491cached) and downwards-traveling (i.e. accumulating) monoidal
3492annotations. This is used as the core data structure underlying the
3493@url{https://archives.haskell.org/projects.haskell.org/diagrams/,
3494diagrams framework}, but potentially has other applications as well.")
3495 (license license:bsd-3)))
3496
dddbc90c
RV
3497(define-public ghc-easy-file
3498 (package
3499 (name "ghc-easy-file")
3500 (version "0.2.2")
3501 (source
3502 (origin
3503 (method url-fetch)
3504 (uri (string-append
3505 "https://hackage.haskell.org/package/easy-file/easy-file-"
3506 version
3507 ".tar.gz"))
3508 (sha256
3509 (base32
3510 "0zmlcz723051qpn8l8vi51c5rx1blwrw4094jcshkmj8p9r2xxaj"))))
3511 (build-system haskell-build-system)
3512 (home-page
3513 "https://github.com/kazu-yamamoto/easy-file")
3514 (synopsis "File handling library for Haskell")
3515 (description "This library provides file handling utilities for Haskell.")
3516 (license license:bsd-3)))
3517
3518(define-public ghc-easyplot
3519 (package
3520 (name "ghc-easyplot")
3521 (version "1.0")
3522 (source
3523 (origin
3524 (method url-fetch)
3525 (uri (string-append
3526 "https://hackage.haskell.org/package/easyplot/easyplot-"
3527 version ".tar.gz"))
3528 (sha256
3529 (base32 "18kndgvdj2apjpfga6fp7m16y1gx8zrwp3c5vfj03sx4v6jvciqk"))))
3530 (build-system haskell-build-system)
3531 (propagated-inputs `(("gnuplot" ,gnuplot)))
3532 (arguments
3533 `(#:phases (modify-phases %standard-phases
3534 (add-after 'unpack 'fix-setup-suffix
3535 (lambda _ (rename-file "Setup.lhs" "Setup.hs") #t)))))
3536 (home-page "https://hub.darcs.net/scravy/easyplot")
3537 (synopsis "Haskell plotting library based on gnuplot")
3538 (description "This package provides a plotting library for
3539Haskell, using gnuplot for rendering.")
3540 (license license:expat)))
3541
3542(define-public ghc-echo
3543 (package
3544 (name "ghc-echo")
3545 (version "0.1.3")
3546 (source
3547 (origin
3548 (method url-fetch)
3549 (uri (string-append
3550 "https://hackage.haskell.org/package/echo/echo-"
3551 version ".tar.gz"))
3552 (sha256
3553 (base32
3554 "1vw5ykpwhr39wc0hhcgq3r8dh59zq6ib4zxbz1qd2wl21wqhfkvh"))))
3555 (build-system haskell-build-system)
3556 (arguments
3557 `(#:cabal-revision
3558 ("1" "0br8wfiybcw5hand4imiw0i5hacdmrax1dv8g95f35gazffbx42l")))
3559 (home-page "https://github.com/RyanGlScott/echo")
3560 (synopsis "Echo terminal input portably")
3561 (description "The @code{base} library exposes the @code{hGetEcho} and
3562@code{hSetEcho} functions for querying and setting echo status, but
3563unfortunately, neither function works with MinTTY consoles on Windows.
3564This library provides an alternative interface which works with both
3565MinTTY and other consoles.")
3566 (license license:bsd-3)))
3567
3568(define-public ghc-edisonapi
3569 (package
3570 (name "ghc-edisonapi")
3571 (version "1.3.1")
3572 (source
3573 (origin
3574 (method url-fetch)
3575 (uri (string-append "https://hackage.haskell.org/package/EdisonAPI"
3576 "/EdisonAPI-" version ".tar.gz"))
3577 (sha256
3578 (base32 "0vmmlsj8ggbpwx6fkf5fvb6jp0zpx6iba6b28m80lllr2p8bi8wm"))))
3579 (build-system haskell-build-system)
3580 (home-page "http://rwd.rdockins.name/edison/home/")
3581 (synopsis "Library of efficient, purely-functional data structures (API)")
3582 (description
3583 "Edison is a library of purely functional data structures written by
3584Chris Okasaki. It is named after Thomas Alva Edison and for the mnemonic
3585value EDiSon (Efficient Data Structures). Edison provides several families of
3586abstractions, each with multiple implementations. The main abstractions
3587provided by Edison are: Sequences such as stacks, queues, and dequeues;
3588Collections such as sets, bags and heaps; and Associative Collections such as
3589finite maps and priority queues where the priority and element are distinct.")
3590 (license license:expat)))
3591
3592(define-public ghc-edisoncore
3593 (package
3594 (name "ghc-edisoncore")
3595 (version "1.3.2.1")
3596 (source
3597 (origin
3598 (method url-fetch)
3599 (uri (string-append "https://hackage.haskell.org/package/EdisonCore"
3600 "/EdisonCore-" version ".tar.gz"))
3601 (sha256
3602 (base32 "0fgj5iwiv3v2gdgx7kjcr15dcs4x1kvmjspp3p99wyhh0x6h3ikk"))))
3603 (build-system haskell-build-system)
3604 (inputs
3605 `(("ghc-quickcheck" ,ghc-quickcheck)
3606 ("ghc-edisonapi" ,ghc-edisonapi)))
3607 (home-page "http://rwd.rdockins.name/edison/home/")
3608 (synopsis "Library of efficient, purely-functional data structures")
3609 (description
3610 "This package provides the core Edison data structure implementations,
3611including multiple sequence, set, bag, and finite map concrete implementations
3612with various performance characteristics.")
3613 (license license:expat)))
3614
3615(define-public ghc-edit-distance
3616 (package
3617 (name "ghc-edit-distance")
3618 (version "0.2.2.1")
3619 (source
3620 (origin
3621 (method url-fetch)
3622 (uri (string-append "https://hackage.haskell.org/package/edit-distance"
3623 "/edit-distance-" version ".tar.gz"))
3624 (sha256
3625 (base32 "0jkca97zyv23yyilp3jydcrzxqhyk27swhzh82llvban5zp8b21y"))))
3626 (build-system haskell-build-system)
3627 (arguments
3628 `(#:phases
3629 (modify-phases %standard-phases
3630 (add-before 'configure 'update-constraints
3631 (lambda _
3632 (substitute* "edit-distance.cabal"
3633 (("QuickCheck >= 2\\.4 && <2\\.9")
d7d143e5 3634 "QuickCheck >= 2.4 && < 2.14")))))))
dddbc90c
RV
3635 (inputs
3636 `(("ghc-random" ,ghc-random)
3637 ("ghc-test-framework" ,ghc-test-framework)
3638 ("ghc-quickcheck" ,ghc-quickcheck)
3639 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
3640 (home-page "https://github.com/phadej/edit-distance")
3641 (synopsis "Levenshtein and restricted Damerau-Levenshtein edit distances")
3642 (description
3643 "This package provides optimized functions to determine the edit
3644distances for fuzzy matching, including Levenshtein and restricted
3645Damerau-Levenshtein algorithms.")
3646 (license license:bsd-3)))
3647
3ebae41f
TS
3648(define-public ghc-edit-distance-vector
3649 (package
3650 (name "ghc-edit-distance-vector")
3651 (version "1.0.0.4")
3652 (source
3653 (origin
3654 (method url-fetch)
3655 (uri (string-append "https://hackage.haskell.org/package/"
3656 "edit-distance-vector/edit-distance-vector-"
3657 version ".tar.gz"))
3658 (sha256
3659 (base32
3660 "07qgc8dyi9kkzkd3xcd78wdlljy0xwhz65b4r2qg2piidpcdvpxp"))))
3661 (build-system haskell-build-system)
3662 (inputs
3663 `(("ghc-vector" ,ghc-vector)))
3664 (native-inputs
3665 `(("ghc-quickcheck" ,ghc-quickcheck)
3666 ("ghc-quickcheck-instances" ,ghc-quickcheck-instances)))
3667 (home-page "https://github.com/thsutton/edit-distance-vector")
3668 (synopsis "Calculate edit distances and edit scripts between vectors")
3669 (description "This package provides implementation of the
3670Wagner-Fischer dynamic programming algorithm to find the optimal edit
3671script and cost between two sequences. The implementation in this
3672package is specialised to sequences represented with @code{Data.Vector}
3673but is otherwise agnostic to:
3674@itemize
3675@item The type of values in the vectors;
3676@item The type representing edit operations; and
3677@item The type representing the cost of operations.
3678@end itemize")
3679 (license license:bsd-3)) )
3680
dddbc90c
RV
3681(define-public ghc-either
3682 (package
3683 (name "ghc-either")
a3fd4dc7 3684 (version "5.0.1.1")
dddbc90c
RV
3685 (source
3686 (origin
3687 (method url-fetch)
3688 (uri (string-append "https://hackage.haskell.org/package/"
3689 "either-" version "/"
3690 "either-" version ".tar.gz"))
3691 (sha256
3692 (base32
a3fd4dc7 3693 "09yzki8ss56xhy9vggdw1rls86b2kf55hjl5wi0vbv02d8fxahq2"))))
dddbc90c
RV
3694 (build-system haskell-build-system)
3695 (inputs `(("ghc-bifunctors" ,ghc-bifunctors)
3696 ("ghc-exceptions" ,ghc-exceptions)
3697 ("ghc-free" ,ghc-free)
3698 ("ghc-monad-control" ,ghc-monad-control)
3699 ("ghc-manodrandom" ,ghc-monadrandom)
3700 ("ghc-mmorph" ,ghc-mmorph)
3701 ("ghc-profunctors" ,ghc-profunctors)
3702 ("ghc-semigroups" ,ghc-semigroups)
3703 ("ghc-semigroupoids" ,ghc-semigroupoids)
3704 ("ghc-transformers-base" ,ghc-transformers-base)))
3705 (native-inputs
3706 `(("ghc-quickcheck" ,ghc-quickcheck)
3707 ("ghc-test-framework" ,ghc-test-framework)
3708 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
3709 (home-page "https://github.com/ekmett/either")
3710 (synopsis "Provides an either monad transformer for Haskell")
3711 (description "This Haskell package provides an either monad transformer.")
3712 (license license:bsd-3)))
3713
3714(define-public ghc-email-validate
3715 (package
3716 (name "ghc-email-validate")
a4fe1c64 3717 (version "2.3.2.12")
dddbc90c
RV
3718 (source
3719 (origin
3720 (method url-fetch)
3721 (uri (string-append
3722 "https://hackage.haskell.org/package/"
3723 "email-validate/email-validate-"
3724 version
3725 ".tar.gz"))
3726 (sha256
3727 (base32
a4fe1c64 3728 "0ar3cfjia3x11chb7w60mi7hp5djanms883ddk875l6lifr2lyqf"))))
dddbc90c
RV
3729 (build-system haskell-build-system)
3730 (inputs
3731 `(("ghc-attoparsec" ,ghc-attoparsec)
3732 ("ghc-hspec" ,ghc-hspec)
3733 ("ghc-quickcheck" ,ghc-quickcheck)
3734 ("ghc-doctest" ,ghc-doctest)))
3735 (home-page
3736 "https://github.com/Porges/email-validate-hs")
3737 (synopsis "Email address validator for Haskell")
3738 (description
3739 "This Haskell package provides a validator that can validate an email
3740address string against RFC 5322.")
3741 (license license:bsd-3)))
3742
3743(define-public ghc-enclosed-exceptions
3744 (package
3745 (name "ghc-enclosed-exceptions")
3746 (version "1.0.3")
3747 (source (origin
3748 (method url-fetch)
3749 (uri (string-append "https://hackage.haskell.org/package/"
3750 "enclosed-exceptions/enclosed-exceptions-"
3751 version ".tar.gz"))
3752 (sha256
3753 (base32
3754 "1fghjj7nkiddrf03ks8brjpr5x25yi9fs7xg6adbi4mc2gqr6vdg"))))
3755 (build-system haskell-build-system)
3756 ;; FIXME: one of the tests blocks forever:
3757 ;; "thread blocked indefinitely in an MVar operation"
3758 (arguments '(#:tests? #f))
3759 (inputs
3760 `(("ghc-lifted-base" ,ghc-lifted-base)
3761 ("ghc-monad-control" ,ghc-monad-control)
3762 ("ghc-async" ,ghc-async)
3763 ("ghc-transformers-base" ,ghc-transformers-base)))
3764 (native-inputs
3765 `(("ghc-hspec" ,ghc-hspec)
3766 ("ghc-quickcheck" ,ghc-quickcheck)))
3767 (home-page "https://github.com/jcristovao/enclosed-exceptions")
3768 (synopsis "Catch all exceptions from within an enclosed computation")
3769 (description
3770 "This library implements a technique to catch all exceptions raised
3771within an enclosed computation, while remaining responsive to (external)
3772asynchronous exceptions.")
3773 (license license:expat)))
3774
3775(define-public ghc-equivalence
3776 (package
3777 (name "ghc-equivalence")
801cf5b1 3778 (version "0.3.5")
dddbc90c
RV
3779 (source
3780 (origin
3781 (method url-fetch)
3782 (uri (string-append "https://hackage.haskell.org/package/equivalence"
3783 "/equivalence-" version ".tar.gz"))
3784 (sha256
801cf5b1 3785 (base32 "167njzd1cf32aa7br90rjafrxy6hw3fxkk8awifqbxjrcwm5maqp"))))
dddbc90c
RV
3786 (build-system haskell-build-system)
3787 (inputs
3788 `(("ghc-stmonadtrans" ,ghc-stmonadtrans)
3789 ("ghc-transformers-compat" ,ghc-transformers-compat)
801cf5b1
TS
3790 ("ghc-fail" ,ghc-fail)
3791 ("ghc-quickcheck" ,ghc-quickcheck)))
dddbc90c
RV
3792 (home-page "https://github.com/pa-ba/equivalence")
3793 (synopsis "Maintaining an equivalence relation implemented as union-find")
3794 (description
3795 "This is an implementation of Tarjan's Union-Find algorithm (Robert E.@:
3796Tarjan. \"Efficiency of a Good But Not Linear Set Union Algorithm\",JACM
379722(2), 1975) in order to maintain an equivalence relation. This
3798implementation is a port of the @code{union-find} package using the @code{ST}
3799monad transformer (instead of the IO monad).")
3800 (license license:bsd-3)))
3801
3802(define-public ghc-erf
3803 (package
3804 (name "ghc-erf")
3805 (version "2.0.0.0")
3806 (source
3807 (origin
3808 (method url-fetch)
3809 (uri (string-append "https://hackage.haskell.org/package/"
3810 "erf-" version "/"
3811 "erf-" version ".tar.gz"))
3812 (sha256
3813 (base32
3814 "0dxk2r32ajmmc05vaxcp0yw6vgv4lkbmh8jcshncn98xgsfbgw14"))))
3815 (build-system haskell-build-system)
3816 (home-page "https://hackage.haskell.org/package/erf")
3817 (synopsis "The error function, erf, and related functions for Haskell")
3818 (description "This Haskell library provides a type class for the
3819error function, erf, and related functions. Instances for Float and
3820Double.")
3821 (license license:bsd-3)))
3822
3823(define-public ghc-errorcall-eq-instance
3824 (package
3825 (name "ghc-errorcall-eq-instance")
3826 (version "0.3.0")
3827 (source
3828 (origin
3829 (method url-fetch)
3830 (uri (string-append "https://hackage.haskell.org/package/"
3831 "errorcall-eq-instance/errorcall-eq-instance-"
3832 version ".tar.gz"))
3833 (sha256
3834 (base32
3835 "0hqw82m8bbrxy5vgdwb83bhzdx070ibqrm9rshyja7cb808ahijm"))))
3836 (build-system haskell-build-system)
3837 (inputs
3838 `(("ghc-base-orphans" ,ghc-base-orphans)))
3839 (native-inputs
3840 `(("ghc-quickcheck" ,ghc-quickcheck)
3841 ("ghc-hspec" ,ghc-hspec)
3842 ("hspec-discover" ,hspec-discover)))
3ef91e15 3843 (home-page "https://hackage.haskell.org/package/errorcall-eq-instance")
dddbc90c
RV
3844 (synopsis "Orphan Eq instance for ErrorCall")
3845 (description
3846 "Prior to @code{base-4.7.0.0} there was no @code{Eq} instance for @code{ErrorCall}.
3847This package provides an orphan instance.")
3848 (license license:expat)))
3849
3850(define-public ghc-errors
3851 (package
3852 (name "ghc-errors")
3853 (version "2.3.0")
3854 (source
3855 (origin
3856 (method url-fetch)
3857 (uri (string-append "https://hackage.haskell.org/package/"
3858 "errors-" version "/"
3859 "errors-" version ".tar.gz"))
3860 (sha256
3861 (base32
3862 "0x8znwn31qcx6kqx99wp7bc86kckfb39ncz3zxvj1s07kxlfawk7"))))
3863 (build-system haskell-build-system)
3864 (inputs
3865 `(("ghc-exceptions" ,ghc-exceptions)
3866 ("ghc-transformers-compat" ,ghc-transformers-compat)
3867 ("ghc-unexceptionalio" ,ghc-unexceptionalio)
3868 ("ghc-safe" ,ghc-safe)))
3869 (home-page "https://github.com/gabriel439/haskell-errors-library")
3870 (synopsis "Error handling library for Haskell")
3871 (description "This library encourages an error-handling style that
3872directly uses the type system, rather than out-of-band exceptions.")
3873 (license license:bsd-3)))
3874
3875(define-public ghc-esqueleto
2648b604
TS
3876 (package
3877 (name "ghc-esqueleto")
2f6ad77b 3878 (version "3.3.1.1")
2648b604
TS
3879 (source
3880 (origin
3881 (method url-fetch)
3882 (uri (string-append "https://hackage.haskell.org/package/"
3883 "esqueleto/esqueleto-" version ".tar.gz"))
3884 (sha256
3885 (base32
2f6ad77b 3886 "1qi28ma8j5kfygjxnixlazxsyrkdqv8ljz3icwqi5dlscsnj6v3v"))))
2648b604
TS
3887 (build-system haskell-build-system)
3888 (arguments
3889 `(#:haddock? #f ; Haddock reports an internal error.
3890 #:phases
3891 (modify-phases %standard-phases
3892 ;; This package normally runs tests for the MySQL, PostgreSQL, and
3893 ;; SQLite backends. Since we only have Haskell packages for
3894 ;; SQLite, we remove the other two test suites. FIXME: Add the
3895 ;; other backends and run all three test suites.
3896 (add-before 'configure 'remove-non-sqlite-test-suites
3897 (lambda _
3898 (use-modules (ice-9 rdelim))
3899 (with-atomic-file-replacement "esqueleto.cabal"
3900 (lambda (in out)
3901 (let loop ((line (read-line in 'concat)) (deleting? #f))
3902 (cond
3903 ((eof-object? line) #t)
3904 ((string-every char-set:whitespace line)
3905 (unless deleting? (display line out))
3906 (loop (read-line in 'concat) #f))
3907 ((member line '("test-suite mysql\n"
3908 "test-suite postgresql\n"))
3909 (loop (read-line in 'concat) #t))
3910 (else
3911 (unless deleting? (display line out))
3912 (loop (read-line in 'concat) deleting?)))))))))))
3913 (inputs
3914 `(("ghc-blaze-html" ,ghc-blaze-html)
3915 ("ghc-conduit" ,ghc-conduit)
3916 ("ghc-monad-logger" ,ghc-monad-logger)
3917 ("ghc-persistent" ,ghc-persistent)
3918 ("ghc-resourcet" ,ghc-resourcet)
3919 ("ghc-tagged" ,ghc-tagged)
3920 ("ghc-unliftio" ,ghc-unliftio)
3921 ("ghc-unordered-containers" ,ghc-unordered-containers)))
3922 (native-inputs
3923 `(("ghc-hspec" ,ghc-hspec)
3924 ("ghc-persistent-sqlite" ,ghc-persistent-sqlite)
3925 ("ghc-persistent-template" ,ghc-persistent-template)))
3926 (home-page "https://github.com/bitemyapp/esqueleto")
3927 (synopsis "Type-safe embedded domain specific language for SQL queries")
3928 (description "This library provides a type-safe embedded domain specific
dddbc90c
RV
3929language (EDSL) for SQL queries that works with SQL backends as provided by
3930@code{ghc-persistent}. Its language closely resembles SQL, so you don't have
3931to learn new concepts, just new syntax, and it's fairly easy to predict the
3932generated SQL and optimize it for your backend.")
2648b604 3933 (license license:bsd-3)))
dddbc90c
RV
3934
3935(define-public ghc-exactprint
3936 (package
3937 (name "ghc-exactprint")
50614014 3938 (version "0.6.1")
dddbc90c
RV
3939 (source
3940 (origin
3941 (method url-fetch)
3942 (uri (string-append
3943 "https://hackage.haskell.org/package/"
3944 "ghc-exactprint/ghc-exactprint-" version ".tar.gz"))
3945 (sha256
3946 (base32
50614014 3947 "12nqpqmi9c57a3hgpfy8q073zryz66ylmcvf29hyffpj7vmmnvhl"))))
dddbc90c
RV
3948 (build-system haskell-build-system)
3949 (inputs
3950 `(("ghc-paths" ,ghc-paths)
3951 ("ghc-syb" ,ghc-syb)
3952 ("ghc-free" ,ghc-free)))
3953 (native-inputs
3954 `(("ghc-hunit" ,ghc-hunit)
3955 ("ghc-diff" ,ghc-diff)
3956 ("ghc-silently" ,ghc-silently)
3957 ("ghc-filemanip" ,ghc-filemanip)))
3958 (home-page
3ef91e15 3959 "https://hackage.haskell.org/package/ghc-exactprint")
dddbc90c
RV
3960 (synopsis "ExactPrint for GHC")
3961 (description
3962 "Using the API Annotations available from GHC 7.10.2, this library
3963provides a means to round-trip any code that can be compiled by GHC, currently
3964excluding @file{.lhs} files.")
3965 (license license:bsd-3)))
3966
3967(define-public ghc-exceptions
3968 (package
3969 (name "ghc-exceptions")
46d3e65b 3970 (version "0.10.3")
dddbc90c
RV
3971 (source
3972 (origin
3973 (method url-fetch)
3974 (uri (string-append
3975 "https://hackage.haskell.org/package/exceptions/exceptions-"
3976 version
3977 ".tar.gz"))
3978 (sha256
3979 (base32
46d3e65b 3980 "1w25j4ys5s6v239vbqlbipm9fdwxl1j2ap2lzms7f7rgnik5ir24"))))
dddbc90c
RV
3981 (build-system haskell-build-system)
3982 (native-inputs
3983 `(("ghc-quickcheck" ,ghc-quickcheck)
3984 ("ghc-test-framework" ,ghc-test-framework)
3985 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
3986 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
3987 (inputs
3988 `(("ghc-transformers-compat" ,ghc-transformers-compat)))
3989 (home-page "https://github.com/ekmett/exceptions/")
3990 (synopsis "Extensible optionally-pure exceptions")
3991 (description "This library provides extensible optionally-pure exceptions
3992for Haskell.")
3993 (license license:bsd-3)))
3994
3995(define-public ghc-executable-path
3996 (package
3997 (name "ghc-executable-path")
3998 (version "0.0.3.1")
3999 (source (origin
4000 (method url-fetch)
4001 (uri (string-append "https://hackage.haskell.org/package/"
4002 "executable-path/executable-path-"
4003 version ".tar.gz"))
4004 (sha256
4005 (base32
4006 "0vxwmnsvx13cawcyhbyljkds0l1vr996ijldycx7nj0asjv45iww"))))
4007 (build-system haskell-build-system)
4008 (home-page "https://hackage.haskell.org/package/executable-path")
4009 (synopsis "Find out the full path of the executable")
4010 (description
4011 "The documentation of @code{System.Environment.getProgName} says that
4012\"However, this is hard-to-impossible to implement on some non-Unix OSes, so
4013instead, for maximum portability, we just return the leafname of the program
4014as invoked.\" This library tries to provide the missing path.")
4015 (license license:public-domain)))
4016
4017(define-public ghc-extensible-exceptions
4018 (package
4019 (name "ghc-extensible-exceptions")
4020 (version "0.1.1.4")
4021 (source
4022 (origin
4023 (method url-fetch)
4024 (uri (string-append "https://hackage.haskell.org/package/"
4025 "extensible-exceptions/extensible-exceptions-"
4026 version ".tar.gz"))
4027 (sha256
4028 (base32 "1273nqws9ij1rp1bsq5jc7k2jxpqa0svawdbim05lf302y0firbc"))))
4029 (build-system haskell-build-system)
4030 (home-page "https://hackage.haskell.org/package/extensible-exceptions")
4031 (synopsis "Extensible exceptions for Haskell")
4032 (description
4033 "This package provides extensible exceptions for both new and old
4034versions of GHC (i.e., < 6.10).")
4035 (license license:bsd-3)))
4036
4037(define-public ghc-extra
4038 (package
4039 (name "ghc-extra")
0cec5c4e 4040 (version "1.6.21")
dddbc90c
RV
4041 (source
4042 (origin
4043 (method url-fetch)
4044 (uri (string-append
4045 "https://hackage.haskell.org/package/extra/extra-"
4046 version
4047 ".tar.gz"))
4048 (sha256
4049 (base32
0cec5c4e 4050 "1gjx98w4w61g043k6rzc8i34cbxpcigi8lb6i7pp1vwp8w8jm5vl"))))
dddbc90c
RV
4051 (build-system haskell-build-system)
4052 (inputs
4053 `(("ghc-clock" ,ghc-clock)
10650c44 4054 ("ghc-semigroups" ,ghc-semigroups)
b431f6c9
ASM
4055 ("ghc-quickcheck" ,ghc-quickcheck)
4056 ("ghc-quickcheck-instances" ,ghc-quickcheck-instances)))
dddbc90c
RV
4057 (home-page "https://github.com/ndmitchell/extra")
4058 (synopsis "Extra Haskell functions")
4059 (description "This library provides extra functions for the standard
4060Haskell libraries. Most functions are simple additions, filling out missing
4061functionality. A few functions are available in later versions of GHC, but
4062this package makes them available back to GHC 7.2.")
4063 (license license:bsd-3)))
4064
4065(define-public ghc-fail
4066 (package
4067 (name "ghc-fail")
4068 (version "4.9.0.0")
4069 (source
4070 (origin
4071 (method url-fetch)
4072 (uri (string-append "https://hackage.haskell.org/package/fail/fail-"
4073 version ".tar.gz"))
4074 (sha256
4075 (base32 "18nlj6xvnggy61gwbyrpmvbdkq928wv0wx2zcsljb52kbhddnp3d"))))
4076 (build-system haskell-build-system)
4077 (arguments `(#:haddock? #f)) ; Package contains no documentation.
4078 (home-page "https://prime.haskell.org/wiki/Libraries/Proposals/MonadFail")
4079 (synopsis "Forward-compatible MonadFail class")
4080 (description
4081 "This package contains the @code{Control.Monad.Fail} module providing the
4082@uref{https://prime.haskell.org/wiki/Libraries/Proposals/MonadFail, MonadFail}
4083class that became available in
4084@uref{https://hackage.haskell.org/package/base-4.9.0.0, base-4.9.0.0} for
4085older @code{base} package versions. This package turns into an empty package
4086when used with GHC versions which already provide the
4087@code{Control.Monad.Fail} module.")
4088 (license license:bsd-3)))
4089
4090(define-public ghc-fast-logger
4091 (package
4092 (name "ghc-fast-logger")
d443a52a 4093 (version "2.4.17")
dddbc90c
RV
4094 (source
4095 (origin
4096 (method url-fetch)
4097 (uri (string-append
4098 "https://hackage.haskell.org/package/fast-logger/fast-logger-"
4099 version
4100 ".tar.gz"))
4101 (sha256
4102 (base32
d443a52a 4103 "02mxb1ckvx1s2r2m11l5i2l5rdl7232p0f61af6773haykjp0qxk"))))
dddbc90c
RV
4104 (build-system haskell-build-system)
4105 (inputs
4106 `(("ghc-auto-update" ,ghc-auto-update)
4107 ("ghc-easy-file" ,ghc-easy-file)
d443a52a
TS
4108 ("ghc-unix-time" ,ghc-unix-time)
4109 ("ghc-unix-compat" ,ghc-unix-compat)))
dddbc90c
RV
4110 (native-inputs
4111 `(("hspec-discover" ,hspec-discover)
4112 ("ghc-hspec" ,ghc-hspec)))
4113 (home-page "https://hackage.haskell.org/package/fast-logger")
4114 (synopsis "Fast logging system")
4115 (description "This library provides a fast logging system for Haskell.")
4116 (license license:bsd-3)))
4117
4118(define-public ghc-feed
4119 (package
4120 (name "ghc-feed")
a41c16dc 4121 (version "1.2.0.1")
dddbc90c
RV
4122 (source
4123 (origin
4124 (method url-fetch)
4125 (uri (string-append "https://hackage.haskell.org/package/"
4126 "feed/feed-" version ".tar.gz"))
4127 (sha256
4128 (base32
a41c16dc 4129 "004lwdng4slj6yl8mgscr3cgj0zzc8hzkf4450dby2l6cardg4w0"))))
dddbc90c 4130 (build-system haskell-build-system)
dddbc90c
RV
4131 (inputs
4132 `(("ghc-base-compat" ,ghc-base-compat)
4133 ("ghc-old-locale" ,ghc-old-locale)
4134 ("ghc-old-time" ,ghc-old-time)
4135 ("ghc-safe" ,ghc-safe)
4136 ("ghc-time-locale-compat" ,ghc-time-locale-compat)
4137 ("ghc-utf8-string" ,ghc-utf8-string)
4138 ("ghc-xml-conduit" ,ghc-xml-conduit)
4139 ("ghc-xml-types" ,ghc-xml-types)))
4140 (native-inputs
4141 `(("ghc-hunit" ,ghc-hunit)
a41c16dc 4142 ("ghc-markdown-unlit" ,ghc-markdown-unlit)
dddbc90c
RV
4143 ("ghc-test-framework" ,ghc-test-framework)
4144 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)))
4145 (home-page "https://github.com/bergmark/feed")
4146 (synopsis "Haskell package for handling various syndication formats")
4147 (description "This Haskell package includes tools for generating and
4148consuming feeds in both RSS (Really Simple Syndication) and Atom format.")
4149 (license license:bsd-3)))
4150
4151(define-public ghc-fgl
4152 (package
4153 (name "ghc-fgl")
17482b26 4154 (version "5.7.0.1")
534d6caa 4155 (outputs '("out" "static" "doc"))
dddbc90c
RV
4156 (source
4157 (origin
4158 (method url-fetch)
4159 (uri (string-append
4160 "https://hackage.haskell.org/package/fgl/fgl-"
4161 version
4162 ".tar.gz"))
4163 (sha256
4164 (base32
17482b26 4165 "04793yh778ck3kz1z2svnfdwwls2kisbnky4lzvf4zjfgpv7mkpz"))))
dddbc90c
RV
4166 (build-system haskell-build-system)
4167 (arguments
4168 `(#:phases
4169 (modify-phases %standard-phases
4170 (add-before 'configure 'update-constraints
4171 (lambda _
4172 (substitute* "fgl.cabal"
17482b26
TS
4173 (("QuickCheck >= 2\\.8 && < 2\\.13")
4174 "QuickCheck >= 2.8 && < 2.14")
4175 (("hspec >= 2\\.1 && < 2\\.7")
4176 "hspec >= 2.1 && < 2.8")))))))
dddbc90c
RV
4177 (inputs
4178 `(("ghc-hspec" ,ghc-hspec)
4179 ("ghc-quickcheck" ,ghc-quickcheck)))
4180 (home-page "https://web.engr.oregonstate.edu/~erwig/fgl/haskell")
4181 (synopsis
4182 "Martin Erwig's Functional Graph Library")
4183 (description "The functional graph library, FGL, is a collection of type
4184and function definitions to address graph problems. The basis of the library
4185is an inductive definition of graphs in the style of algebraic data types that
4186encourages inductive, recursive definitions of graph algorithms.")
4187 (license license:bsd-3)))
4188
4189(define-public ghc-fgl-arbitrary
4190 (package
4191 (name "ghc-fgl-arbitrary")
4192 (version "0.2.0.3")
4193 (source
4194 (origin
4195 (method url-fetch)
4196 (uri (string-append
4197 "https://hackage.haskell.org/package/fgl-arbitrary/fgl-arbitrary-"
4198 version ".tar.gz"))
4199 (sha256
4200 (base32
4201 "0ln1szgfy8fa78l3issq4fx3aqnnd54w3cb4wssrfi48vd5rkfjm"))))
4202 (build-system haskell-build-system)
4203 (arguments
4204 `(#:phases
4205 (modify-phases %standard-phases
4206 (add-before 'configure 'update-constraints
4207 (lambda _
4208 (substitute* "fgl-arbitrary.cabal"
4209 (("QuickCheck >= 2\\.3 && < 2\\.10")
4a0ffae5 4210 "QuickCheck >= 2.3 && < 2.14")
dddbc90c 4211 (("hspec >= 2\\.1 && < 2\\.5")
4a0ffae5 4212 "hspec >= 2.1 && < 2.8")))))))
dddbc90c
RV
4213 (inputs
4214 `(("ghc-fgl" ,ghc-fgl)
4215 ("ghc-quickcheck" ,ghc-quickcheck)
4216 ("ghc-hspec" ,ghc-hspec)))
4217 (home-page "https://hackage.haskell.org/package/fgl-arbitrary")
4218 (synopsis "QuickCheck support for fgl")
4219 (description
4220 "Provides Arbitrary instances for fgl graphs to avoid adding a
4221QuickCheck dependency for fgl whilst still making the instances
4222available to others. Also available are non-fgl-specific functions
4223for generating graph-like data structures.")
4224 (license license:bsd-3)))
4225
4226(define-public ghc-file-embed
4227 (package
4228 (name "ghc-file-embed")
b5920d50 4229 (version "0.0.11")
dddbc90c
RV
4230 (source
4231 (origin
4232 (method url-fetch)
4233 (uri (string-append "https://hackage.haskell.org/package/file-embed/"
4234 "file-embed-" version ".tar.gz"))
4235 (sha256
4236 (base32
b5920d50 4237 "0l6dkwccbzzyx8rcav03lya2334dgi3vfwk96h7l93l0fc4x19gf"))))
dddbc90c
RV
4238 (build-system haskell-build-system)
4239 (home-page "https://github.com/snoyberg/file-embed")
4240 (synopsis "Use Template Haskell to embed file contents directly")
4241 (description
4242 "This package allows you to use Template Haskell to read a file or all
4243the files in a directory, and turn them into @code{(path, bytestring)} pairs
4244embedded in your Haskell code.")
4245 (license license:bsd-3)))
4246
4247(define-public ghc-filemanip
4248 (package
4249 (name "ghc-filemanip")
4250 (version "0.3.6.3")
4251 (source (origin
4252 (method url-fetch)
4253 (uri (string-append "https://hackage.haskell.org/package/"
4254 "filemanip/filemanip-" version ".tar.gz"))
4255 (sha256
4256 (base32
4257 "0ilqr8jv41zxcj5qyicg29m8s30b9v70x6f9h2h2rw5ap8bxldl8"))))
4258 (build-system haskell-build-system)
4259 (inputs
4260 `(("ghc-unix-compat" ,ghc-unix-compat)))
4261 (home-page "https://github.com/bos/filemanip")
4262 (synopsis "File and directory manipulation for Haskell")
4263 (description
4264 "This package provides a Haskell library for working with files and
4265directories. It includes code for pattern matching, finding files, modifying
4266file contents, and more.")
4267 (license license:bsd-3)))
4268
bb62932a
KM
4269(define-public ghc-filepath-bytestring
4270 (package
4271 (name "ghc-filepath-bytestring")
4272 (version "1.4.2.1.1")
4273 (source
4274 (origin
4275 (method url-fetch)
4276 (uri (string-append
4277 "https://hackage.haskell.org/package/filepath-bytestring/"
4278 "filepath-bytestring-" version ".tar.gz"))
4279 (sha256
4280 (base32
4281 "06shdskjj391hb9295slm9gg2rbn5fdq5v6fg0mgn3yl5dv8q5dx"))))
4282 (build-system haskell-build-system)
4283 (native-inputs
4284 `(("ghc-quickcheck" ,ghc-quickcheck)))
3ef91e15 4285 (home-page "https://hackage.haskell.org/package/filepath-bytestring")
bb62932a
KM
4286 (synopsis "Library for manipulating RawFilePaths in a cross-platform way")
4287 (description "This package provides a drop-in replacement for the standard
4288@code{filepath} library, operating on @code{RawFilePath} values rather than
4289@code{FilePath} values to get the speed benefits of using @code{ByteStrings}.")
4290 (license license:bsd-3)))
4291
dddbc90c
RV
4292(define-public ghc-findbin
4293 (package
4294 (name "ghc-findbin")
4295 (version "0.0.5")
4296 (source
4297 (origin
4298 (method url-fetch)
4299 (uri (string-append
4300 "https://hackage.haskell.org/package/FindBin/FindBin-"
4301 version ".tar.gz"))
4302 (sha256
4303 (base32
4304 "197xvn05yysmibm1p5wzxfa256lvpbknr5d1l2ws6g40w1kpk717"))))
4305 (build-system haskell-build-system)
4306 (home-page "https://github.com/audreyt/findbin")
4307 (synopsis "Get the absolute path of the running program")
4308 (description
4309 "This module locates the full directory of the running program, to allow
4310the use of paths relative to it. FindBin supports invocation of Haskell
4311programs via \"ghci\", via \"runhaskell/runghc\", as well as compiled as
4312an executable.")
4313 (license license:bsd-3)))
4314
4315(define-public ghc-fingertree
4316 (package
4317 (name "ghc-fingertree")
aac14fdc 4318 (version "0.1.4.2")
dddbc90c
RV
4319 (source
4320 (origin
4321 (method url-fetch)
4322 (uri (string-append
4323 "https://hackage.haskell.org/package/fingertree/fingertree-"
4324 version ".tar.gz"))
4325 (sha256
4326 (base32
aac14fdc 4327 "0zvandj8fysck7ygpn0dw5bhrhmj1s63i326nalxbfkh2ls4iacm"))))
dddbc90c
RV
4328 (build-system haskell-build-system)
4329 (native-inputs
4330 `(("ghc-hunit" ,ghc-hunit)
4331 ("ghc-quickcheck" ,ghc-quickcheck)
4332 ("ghc-test-framework" ,ghc-test-framework)
4333 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
4334 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
4335 (home-page "https://hackage.haskell.org/package/fingertree")
4336 (synopsis "Generic finger-tree structure")
4337 (description "This library provides finger trees, a general sequence
4338representation with arbitrary annotations, for use as a base for
4339implementations of various collection types. It includes examples, as
4340described in section 4 of Ralf Hinze and Ross Paterson, \"Finger trees: a
4341simple general-purpose data structure\".")
4342 (license license:bsd-3)))
4343
4344(define-public ghc-fixed
4345 (package
4346 (name "ghc-fixed")
099dda5b 4347 (version "0.3")
dddbc90c
RV
4348 (source
4349 (origin
4350 (method url-fetch)
4351 (uri (string-append "https://hackage.haskell.org/package/fixed/fixed-"
4352 version ".tar.gz"))
4353 (sha256
4354 (base32
099dda5b 4355 "10l2sh179xarb774q92cff2gkb20rsrlilfwp1fk61rzmz9yn64j"))))
dddbc90c
RV
4356 (build-system haskell-build-system)
4357 (home-page "https://github.com/ekmett/fixed")
4358 (synopsis "Signed 15.16 precision fixed point arithmetic")
4359 (description
4360 "This package provides functions for signed 15.16 precision fixed point
4361arithmetic.")
4362 (license license:bsd-3)))
4363
f169f713
JS
4364(define-public ghc-fmlist
4365 (package
4366 (name "ghc-fmlist")
fe9b83a6 4367 (version "0.9.3")
f169f713
JS
4368 (source
4369 (origin
4370 (method url-fetch)
4371 (uri
4372 (string-append
4373 "https://hackage.haskell.org/package/fmlist/fmlist-"
4374 version ".tar.gz"))
4375 (sha256
4376 (base32
fe9b83a6 4377 "1w9nhm2zybdx4c1lalkajwqr8wcs731lfjld2r8gknd7y96x8pwf"))))
f169f713
JS
4378 (build-system haskell-build-system)
4379 (home-page "https://github.com/sjoerdvisscher/fmlist")
4380 (synopsis "FoldMap lists")
4381 (description "FoldMap lists are lists represented by their
4382@code{foldMap} function. FoldMap lists have @math{O(1)} cons, snoc and
4383append, just like DLists, but other operations might have favorable
4384performance characteristics as well. These wild claims are still
4385completely unverified though.")
4386 (license license:bsd-3)))
4387
dddbc90c
RV
4388(define-public ghc-foldl
4389 (package
4390 (name "ghc-foldl")
26c4104f 4391 (version "1.4.5")
dddbc90c
RV
4392 (source
4393 (origin
4394 (method url-fetch)
4395 (uri (string-append "https://hackage.haskell.org/package/"
4396 "foldl-" version "/"
4397 "foldl-" version ".tar.gz"))
4398 (sha256
4399 (base32
26c4104f 4400 "19qjmzc7gaxfwgqbgy0kq4vhbxvh3qjnwsxnc7pzwws2if5bv80b"))))
dddbc90c 4401 (build-system haskell-build-system)
b3c79a83 4402 (outputs '("out" "static" "doc"))
dddbc90c
RV
4403 (inputs `(("ghc-mwc-randam" ,ghc-mwc-random)
4404 ("ghc-primitive" ,ghc-primitive)
4405 ("ghc-vector" ,ghc-vector)
4406 ("ghc-unordered-containers" ,ghc-unordered-containers)
4407 ("ghc-hashable" ,ghc-hashable)
4408 ("ghc-contravariant" ,ghc-contravariant)
4409 ("ghc-semigroups" ,ghc-semigroups)
4410 ("ghc-profunctors" ,ghc-profunctors)
4411 ("ghc-semigroupoids" ,ghc-semigroupoids)
4412 ("ghc-comonad" ,ghc-comonad)
4413 ("ghc-vector-builder" ,ghc-vector-builder)))
4414 (home-page "https://github.com/Gabriel439/Haskell-Foldl-Library")
4415 (synopsis "Composable, streaming, and efficient left folds for Haskell")
4416 (description "This Haskell library provides strict left folds that stream
4417in constant memory, and you can combine folds using @code{Applicative} style
4418to derive new folds. Derived folds still traverse the container just once
4419and are often as efficient as hand-written folds.")
4420 (license license:bsd-3)))
4421
4422(define-public ghc-foundation
4423 (package
4424 (name "ghc-foundation")
0a702df9 4425 (version "0.0.25")
dddbc90c
RV
4426 (source
4427 (origin
4428 (method url-fetch)
4429 (uri (string-append "https://hackage.haskell.org/package/"
4430 "foundation/foundation-" version ".tar.gz"))
4431 (sha256
4432 (base32
0a702df9 4433 "0q6kx57ygmznlpf8n499hid4x6mj3180paijx0a8dgi9hh7man61"))))
dddbc90c 4434 (build-system haskell-build-system)
59cd7518
TS
4435 (arguments
4436 `(#:phases
4437 (modify-phases %standard-phases
4438 ;; This test is broken. For details, see
4439 ;; https://github.com/haskell-foundation/foundation/issues/530
4440 (add-after 'unpack 'patch-tests
4441 (lambda _
4442 (substitute* "tests/Test/Foundation/Number.hs"
4443 ((", testDividible proxy") ""))
4444 #t)))))
6a7fb828 4445 (outputs '("out" "static" "doc"))
dddbc90c
RV
4446 (inputs `(("ghc-basement" ,ghc-basement)))
4447 (home-page "https://github.com/haskell-foundation/foundation")
4448 (synopsis "Alternative prelude with batteries and no dependencies")
4449 (description
4450 "This package provides a custom prelude with no dependencies apart from
4451the base package.
4452
4453Foundation has the following goals:
4454
4455@enumerate
4456@item provide a base like sets of modules that provide a consistent set of
4457 features and bugfixes across multiple versions of GHC (unlike base).
4458@item provide a better and more efficient prelude than base's prelude.
4459@item be self-sufficient: no external dependencies apart from base;
4460@item provide better data-types: packed unicode string by default, arrays;
4461@item Numerical classes that better represent mathematical things (no more
4462 all-in-one @code{Num});
4463@item I/O system with less lazy IO.
4464@end enumerate\n")
4465 (license license:bsd-3)))
4466
4467(define-public ghc-free
4468 (package
4469 (name "ghc-free")
4081565d 4470 (version "5.1.2")
dddbc90c
RV
4471 (source
4472 (origin
4473 (method url-fetch)
4474 (uri (string-append
4475 "https://hackage.haskell.org/package/free/free-"
4476 version
4477 ".tar.gz"))
4478 (sha256
4479 (base32
4081565d 4480 "0vlf3f2ckl3cr7z2zl8c9c8qkdlfgvmh04gxkp2fg0z9dz80nlyb"))))
dddbc90c 4481 (build-system haskell-build-system)
91769cee 4482 (outputs '("out" "static" "doc"))
dddbc90c
RV
4483 (inputs
4484 `(("ghc-prelude-extras" ,ghc-prelude-extras)
4485 ("ghc-profunctors" ,ghc-profunctors)
4486 ("ghc-exceptions" ,ghc-exceptions)
4487 ("ghc-bifunctors" ,ghc-bifunctors)
4488 ("ghc-comonad" ,ghc-comonad)
4489 ("ghc-distributive" ,ghc-distributive)
4490 ("ghc-semigroupoids" ,ghc-semigroupoids)
4491 ("ghc-semigroups" ,ghc-semigroups)
4492 ("ghc-transformers-base" ,ghc-transformers-base)
4493 ("ghc-transformers-compat" ,ghc-transformers-compat)))
4494 (home-page "https://github.com/ekmett/free/")
4495 (synopsis "Unrestricted monads for Haskell")
4496 (description "This library provides free monads, which are useful for many
4497tree-like structures and domain specific languages. If @code{f} is a
4498@code{Functor} then the free @code{Monad} on @code{f} is the type of trees
4499whose nodes are labeled with the constructors of @code{f}. The word \"free\"
4500is used in the sense of \"unrestricted\" rather than \"zero-cost\": @code{Free
4501f} makes no constraining assumptions beyond those given by @code{f} and the
4502definition of @code{Monad}.")
4503 (license license:bsd-3)))
4504
4505(define-public ghc-fsnotify
4506 (package
4507 (name "ghc-fsnotify")
4508 (version "0.3.0.1")
4509 (source (origin
4510 (method url-fetch)
4511 (uri (string-append
4512 "https://hackage.haskell.org/package/fsnotify/"
4513 "fsnotify-" version ".tar.gz"))
4514 (sha256
4515 (base32
4516 "19bdbz9wb9jvln6yg6qm0hz0w84bypvkxf0wjhgrgd52f9gidlny"))))
4517 (build-system haskell-build-system)
4518 (inputs
4519 `(("ghc-async" ,ghc-async)
4520 ("ghc-unix-compat" ,ghc-unix-compat)
4521 ("ghc-hinotify" ,ghc-hinotify)
4522 ("ghc-tasty" ,ghc-tasty)
4523 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
4524 ("ghc-random" ,ghc-random)
4525 ("ghc-shelly" ,ghc-shelly)
4526 ("ghc-temporary" ,ghc-temporary)))
4527 (home-page "https://github.com/haskell-fswatch/hfsnotify")
4528 (synopsis "Cross platform library for file change notification.")
4529 (description "Cross platform library for file creation, modification, and
4530deletion notification. This library builds upon existing libraries for platform
4531specific Windows, Mac, and Linux file system event notification.")
4532 (license license:bsd-3)))
4533
4534(define-public ghc-generic-deriving
4535 (package
4536 (name "ghc-generic-deriving")
55c1e6be 4537 (version "1.12.4")
dddbc90c
RV
4538 (source
4539 (origin
4540 (method url-fetch)
4541 (uri (string-append
4542 "https://hackage.haskell.org/package/generic-deriving/generic-deriving-"
4543 version
4544 ".tar.gz"))
4545 (sha256
4546 (base32
55c1e6be 4547 "0vdg9qdq35jl3m11a87wk8cq1y71qm4i1g1b2pxki0wk70yw20a4"))))
dddbc90c 4548 (build-system haskell-build-system)
32bb6b41 4549 (outputs '("out" "static" "doc"))
dddbc90c
RV
4550 (inputs
4551 `(("ghc-th-abstraction" ,ghc-th-abstraction)))
4552 (native-inputs
4553 `(("ghc-hspec" ,ghc-hspec)
4554 ("hspec-discover" ,hspec-discover)))
4555 (home-page "https://hackage.haskell.org/package/generic-deriving")
4556 (synopsis "Generalise the deriving mechanism to arbitrary classes")
4557 (description "This package provides functionality for generalising the
4558deriving mechanism in Haskell to arbitrary classes.")
4559 (license license:bsd-3)))
4560
89e9082e
JS
4561(define-public ghc-generic-random
4562 (package
4563 (name "ghc-generic-random")
4564 (version "1.2.0.0")
4565 (source
4566 (origin
4567 (method url-fetch)
4568 (uri (string-append
4569 "https://hackage.haskell.org/package/generic-random/"
4570 "generic-random-" version ".tar.gz"))
4571 (sha256
4572 (base32 "130lmblycxnpqbsl7vf6a90zccibnvcb5zaclfajcn3by39007lv"))))
4573 (build-system haskell-build-system)
4574 (inputs `(("ghc-quickcheck" ,ghc-quickcheck)))
4575 (native-inputs
4576 `(("ghc-inspection-testing" ,ghc-inspection-testing)))
4577 (arguments
4578 `(#:cabal-revision
4579 ("1" "1d0hx41r7yq2a86ydnfh2fv540ah8cz05l071s2z4wxcjw0ymyn4")))
4580 (home-page
4581 "https://github.com/lysxia/generic-random")
4582 (synopsis
4583 "Generic random generators for QuickCheck")
4584 (description
4585 "Derive instances of @code{Arbitrary} for QuickCheck, with various options
4586to customize implementations.
4587
4588Automating the arbitrary boilerplate also ensures that when a type changes to
4589have more or fewer constructors, then the generator either fixes itself to
4590generate that new case (when using the uniform distribution) or causes a
4591compilation error so you remember to fix it (when using an explicit
4592distribution).
4593
4594This package also offers a simple (optional) strategy to ensure termination
4595for recursive types: make @code{Test.QuickCheck.Gen}'s size parameter decrease
4596at every recursive call; when it reaches zero, sample directly from a
4597trivially terminating generator given explicitly (@code{genericArbitraryRec}
4598and @code{withBaseCase}) or implicitly (@code{genericArbitrary'}).")
4599 (license license:expat)))
4600
23e4b264
JS
4601(define-public ghc-generic-random-1.3.0.1
4602 (package
4603 (inherit ghc-generic-random)
4604 (version "1.3.0.1")
4605 (source
4606 (origin
4607 (method url-fetch)
4608 (uri (string-append
4609 "https://hackage.haskell.org/package/generic-random/"
4610 "generic-random-" version ".tar.gz"))
4611 (sha256
4612 (base32 "0d9w7xcmsb31b95fr9d5jwbsajcl1yi4347dlbw4bybil2vjwd7k"))))
4613 (arguments '())))
4614
dddbc90c
RV
4615(define-public ghc-generics-sop
4616 (package
4617 (name "ghc-generics-sop")
3ed40e10 4618 (version "0.4.0.1")
dddbc90c
RV
4619 (source
4620 (origin
4621 (method url-fetch)
4622 (uri (string-append "https://hackage.haskell.org/package/"
4623 "generics-sop-" version "/"
4624 "generics-sop-" version ".tar.gz"))
4625 (sha256
4626 (base32
3ed40e10 4627 "160knr2phnzh2gldfv954lz029jzc7y8kz5xpmbf4z3vb5ngm6fw"))))
dddbc90c 4628 (build-system haskell-build-system)
80e0a085 4629 (outputs '("out" "static" "doc"))
3ed40e10
TS
4630 (inputs
4631 `(("ghc-sop-core" ,ghc-sop-core)
4632 ("ghc-transformers-compat" ,ghc-transformers-compat)))
dddbc90c
RV
4633 (home-page "https://github.com/well-typed/generics-sop")
4634 (synopsis "Generic Programming using True Sums of Products for Haskell")
4635 (description "This Haskell package supports the definition of generic
4636functions. Datatypes are viewed in a uniform, structured way: the choice
4637between constructors is represented using an n-ary sum, and the arguments of
4638each constructor are represented using an n-ary product.")
4639 (license license:bsd-3)))
4640
4641(define-public ghc-geniplate-mirror
4642 (package
4643 (name "ghc-geniplate-mirror")
4644 (version "0.7.6")
4645 (source
4646 (origin
4647 (method url-fetch)
4648 (uri (string-append "https://hackage.haskell.org/package"
4649 "/geniplate-mirror"
4650 "/geniplate-mirror-" version ".tar.gz"))
4651 (sha256
4652 (base32 "1y0m0bw5zpm1y1y6d9qmxj3swl8j8hlw1shxbr5awycf6k884ssb"))))
4653 (build-system haskell-build-system)
74a7dd7f
TS
4654 (arguments
4655 `(#:cabal-revision
4656 ("2" "03fg4vfm1wgq4mylggawdx0bfvbbjmdn700sqx7v3hk1bx0kjfzh")))
dddbc90c
RV
4657 (home-page "https://github.com/danr/geniplate")
4658 (synopsis "Use Template Haskell to generate Uniplate-like functions")
4659 (description
4660 "Use Template Haskell to generate Uniplate-like functions. This is a
4661maintained mirror of the @uref{https://hackage.haskell.org/package/geniplate,
4662geniplate} package, written by Lennart Augustsson.")
4663 (license license:bsd-3)))
4664
4665(define-public ghc-genvalidity
4666 (package
4667 (name "ghc-genvalidity")
920f44a1 4668 (version "0.8.0.0")
dddbc90c
RV
4669 (source
4670 (origin
4671 (method url-fetch)
4672 (uri (string-append
4673 "https://hackage.haskell.org/package/genvalidity/genvalidity-"
4674 version
4675 ".tar.gz"))
4676 (sha256
4677 (base32
920f44a1 4678 "0w38aq9hfyymidncgkrs6yvja7j573d9sap5qfg5rz910fhsij9a"))))
dddbc90c
RV
4679 (build-system haskell-build-system)
4680 (inputs
4681 `(("ghc-quickcheck" ,ghc-quickcheck)
4682 ("ghc-validity" ,ghc-validity)))
4683 (native-inputs
4684 `(("ghc-hspec" ,ghc-hspec)
4685 ("hspec-discover" ,hspec-discover)
4686 ("ghc-hspec-core" ,ghc-hspec-core)))
4687 (home-page
4688 "https://github.com/NorfairKing/validity")
4689 (synopsis
4690 "Testing utilities for the @code{validity} library")
4691 (description
4692 "This package provides testing utilities that are useful in conjunction
4693with the @code{Validity} typeclass.")
4694 (license license:expat)))
4695
4696(define-public ghc-genvalidity-property
4697 (package
4698 (name "ghc-genvalidity-property")
e4ede35b 4699 (version "0.4.0.0")
dddbc90c
RV
4700 (source
4701 (origin
4702 (method url-fetch)
4703 (uri (string-append
4704 "https://hackage.haskell.org/package/"
4705 "genvalidity-property/genvalidity-property-"
4706 version
4707 ".tar.gz"))
4708 (sha256
4709 (base32
e4ede35b 4710 "0zayycx62226w54rvkxwhvqhznsr33dk3ds55yyqrfqbnhvph1s9"))))
dddbc90c
RV
4711 (build-system haskell-build-system)
4712 (inputs
4713 `(("ghc-quickcheck" ,ghc-quickcheck)
4714 ("ghc-genvalidity" ,ghc-genvalidity)
4715 ("ghc-hspec" ,ghc-hspec)
4716 ("hspec-discover" ,hspec-discover)
4717 ("ghc-validity" ,ghc-validity)))
4718 (native-inputs `(("ghc-doctest" ,ghc-doctest)))
4719 (home-page
4720 "https://github.com/NorfairKing/validity")
4721 (synopsis
4722 "Standard properties for functions on @code{Validity} types")
4723 (description
4724 "This package supplements the @code{Validity} typeclass with standard
4725properties for functions operating on them.")
4726 (license license:expat)))
4727
e71fb573
TS
4728(define-public ghc-getopt-generics
4729 (package
4730 (name "ghc-getopt-generics")
4731 (version "0.13.0.4")
4732 (source
4733 (origin
4734 (method url-fetch)
4735 (uri (string-append "https://hackage.haskell.org/package/"
4736 "getopt-generics/getopt-generics-"
4737 version ".tar.gz"))
4738 (sha256
4739 (base32
4740 "1rszkcn1rg38wf35538ljk5bbqjc57y9sb3a0al7qxm82gy8yigr"))))
4741 (build-system haskell-build-system)
4742 (inputs
4743 `(("ghc-base-compat" ,ghc-base-compat)
4744 ("ghc-base-orphans" ,ghc-base-orphans)
4745 ("ghc-generics-sop" ,ghc-generics-sop)
4746 ("ghc-tagged" ,ghc-tagged)))
4747 (native-inputs
4748 `(("ghc-quickcheck" ,ghc-quickcheck)
4749 ("ghc-hspec" ,ghc-hspec)
4750 ("ghc-safe" ,ghc-safe)
4751 ("ghc-silently" ,ghc-silently)
4752 ("hspec-discover" ,hspec-discover)))
4753 (home-page "https://github.com/soenkehahn/getopt-generics")
4754 (synopsis "Create command line interfaces with ease")
4755 (description "This library provides tools to create command line
4756interfaces with ease.")
4757 (license license:bsd-3)))
4758
dddbc90c
RV
4759(define-public ghc-gitrev
4760 (package
4761 (name "ghc-gitrev")
4762 (version "1.3.1")
4763 (source
4764 (origin
4765 (method url-fetch)
4766 (uri (string-append "https://hackage.haskell.org/package/gitrev/gitrev-"
4767 version ".tar.gz"))
4768 (sha256
4769 (base32 "0cl3lfm6k1h8fxp2vxa6ihfp4v8igkz9h35iwyq2frzm4kdn96d8"))))
4770 (build-system haskell-build-system)
4771 (inputs `(("ghc-base-compat" ,ghc-base-compat)))
4772 (home-page "https://github.com/acfoltzer/gitrev")
4773 (synopsis "Compile git revision info into Haskell projects")
4774 (description
4775 "This package provides some handy Template Haskell splices for including
4776the current git hash and branch in the code of your project. This is useful
4777for including in panic messages, @command{--version} output, or diagnostic
4778info for more informative bug reports.")
4779 (license license:bsd-3)))
4780
4781(define-public ghc-glob
4782 (package
4783 (name "ghc-glob")
b900f486 4784 (version "0.10.0")
dddbc90c
RV
4785 (source
4786 (origin
4787 (method url-fetch)
4788 (uri (string-append "https://hackage.haskell.org/package/"
4789 "Glob-" version "/"
4790 "Glob-" version ".tar.gz"))
4791 (sha256
4792 (base32
b900f486 4793 "0953f91f62ncna402vsrfzdcyxhdpjna3bgdw017kad0dfymacs7"))))
dddbc90c
RV
4794 (build-system haskell-build-system)
4795 (inputs
4796 `(("ghc-dlist" ,ghc-dlist)
4797 ("ghc-semigroups" ,ghc-semigroups)
4798 ("ghc-transformers-compat" ,ghc-transformers-compat)))
4799 (native-inputs
4800 `(("ghc-hunit" ,ghc-hunit)
4801 ("ghc-quickcheck" ,ghc-quickcheck)
4802 ("ghc-test-framework" ,ghc-test-framework)
4803 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
4804 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
4805 (home-page "http://iki.fi/matti.niemenmaa/glob/")
4806 (synopsis "Haskell library matching glob patterns against file paths")
4807 (description "This package provides a Haskell library for @dfn{globbing}:
4808matching patterns against file paths.")
4809 (license license:bsd-3)))
4810
4811(define-public ghc-gluraw
4812 (package
4813 (name "ghc-gluraw")
4814 (version "2.0.0.4")
4815 (source
4816 (origin
4817 (method url-fetch)
4818 (uri (string-append
4819 "https://hackage.haskell.org/package/GLURaw/GLURaw-"
4820 version
4821 ".tar.gz"))
4822 (sha256
4823 (base32
4824 "1i2xi35n5z0d372px9mh6cyhgg1m0cfaiy3fnspkf6kbn9fgsqxq"))))
4825 (build-system haskell-build-system)
4826 (inputs
4827 `(("ghc-openglraw" ,ghc-openglraw)))
228d2901 4828 (home-page "https://wiki.haskell.org/Opengl")
dddbc90c
RV
4829 (synopsis "Raw Haskell bindings GLU")
4830 (description "GLURaw is a raw Haskell binding for the GLU 1.3 OpenGL
4831utility library. It is basically a 1:1 mapping of GLU's C API, intended as a
4832basis for a nicer interface.")
4833 (license license:bsd-3)))
4834
4835(define-public ghc-glut
4836 (package
4837 (name "ghc-glut")
8284bd09 4838 (version "2.7.0.15")
dddbc90c
RV
4839 (source
4840 (origin
4841 (method url-fetch)
4842 (uri (string-append
4843 "https://hackage.haskell.org/package/GLUT/GLUT-"
4844 version
4845 ".tar.gz"))
4846 (sha256
4847 (base32
8284bd09 4848 "0271vnf6wllhxjwy0m348x90kv27aybxcbqkkglmd5w4cpwjg5g9"))))
dddbc90c
RV
4849 (build-system haskell-build-system)
4850 (inputs
4851 `(("ghc-statevar" ,ghc-statevar)
4852 ("ghc-opengl" ,ghc-opengl)
4853 ("ghc-openglraw" ,ghc-openglraw)
4854 ("freeglut" ,freeglut)))
228d2901 4855 (home-page "https://wiki.haskell.org/Opengl")
dddbc90c
RV
4856 (synopsis "Haskell bindings for the OpenGL Utility Toolkit")
4857 (description "This library provides Haskell bindings for the OpenGL
4858Utility Toolkit, a window system-independent toolkit for writing OpenGL
4859programs.")
4860 (license license:bsd-3)))
4861
4862(define-public ghc-gnuplot
4863 (package
4864 (name "ghc-gnuplot")
d34860c7 4865 (version "0.5.6")
dddbc90c
RV
4866 (source
4867 (origin
4868 (method url-fetch)
4869 (uri (string-append
4870 "mirror://hackage/package/gnuplot/gnuplot-"
4871 version ".tar.gz"))
4872 (sha256
d34860c7 4873 (base32 "1g6xgnlkh17avivn1rlq7l2nvs26dvrbx4rkfld0bf6kyqaqwrgp"))))
dddbc90c
RV
4874 (build-system haskell-build-system)
4875 (inputs
4876 `(("ghc-temporary" ,ghc-temporary)
4877 ("ghc-utility-ht" ,ghc-utility-ht)
4878 ("ghc-data-accessor-transformers" ,ghc-data-accessor-transformers)
4879 ("ghc-data-accessor" ,ghc-data-accessor)
4880 ("ghc-semigroups" ,ghc-semigroups)
4881 ("gnuplot" ,gnuplot)))
4882 (arguments
4883 `(#:phases
4884 (modify-phases %standard-phases
4885 (add-before 'configure 'fix-path-to-gnuplot
4886 (lambda* (#:key inputs #:allow-other-keys)
4887 (let ((gnuplot (assoc-ref inputs "gnuplot")))
4888 (substitute* "os/generic/Graphics/Gnuplot/Private/OS.hs"
4889 (("(gnuplotName = ).*$" all cmd)
4890 (string-append cmd "\"" gnuplot "/bin/gnuplot\"")))))))))
228d2901 4891 (home-page "https://wiki.haskell.org/Gnuplot")
dddbc90c
RV
4892 (synopsis "2D and 3D plots using gnuplot")
4893 (description "This package provides a Haskell module for creating 2D and
48943D plots using gnuplot.")
4895 (license license:bsd-3)))
4896
4897(define-public ghc-graphviz
4898 (package
4899 (name "ghc-graphviz")
c264bd42 4900 (version "2999.20.0.3")
dddbc90c
RV
4901 (source (origin
4902 (method url-fetch)
4903 (uri (string-append "https://hackage.haskell.org/package/"
4904 "graphviz/graphviz-" version ".tar.gz"))
4905 (sha256
4906 (base32
c264bd42 4907 "04k26zw61nfv1pkd00iaq89pgsaiym0sf4cbzkmm2k2fj5xa587g"))))
dddbc90c 4908 (build-system haskell-build-system)
c264bd42
TS
4909 (arguments
4910 `(#:phases
4911 (modify-phases %standard-phases
4912 (add-before 'configure 'update-constraints
4913 (lambda _
4914 (substitute* "graphviz.cabal"
4915 (("QuickCheck >= 2\\.3 && < 2\\.13")
4916 "QuickCheck >= 2.3 && < 2.14")
4917 (("hspec >= 2\\.1 && < 2\\.7")
4918 "hspec >= 2.1 && < 2.8")))))))
dddbc90c
RV
4919 (inputs
4920 `(("ghc-quickcheck" ,ghc-quickcheck)
4921 ("ghc-colour" ,ghc-colour)
4922 ("ghc-dlist" ,ghc-dlist)
4923 ("ghc-fgl" ,ghc-fgl)
4924 ("ghc-fgl-arbitrary" ,ghc-fgl-arbitrary)
4925 ("ghc-polyparse" ,ghc-polyparse)
4926 ("ghc-temporary" ,ghc-temporary)
4927 ("ghc-wl-pprint-text" ,ghc-wl-pprint-text)))
4928 (native-inputs
4929 `(("ghc-hspec" ,ghc-hspec)
4930 ("graphviz" ,graphviz)
4931 ("hspec-discover" ,hspec-discover)))
4932 (home-page "https://hackage.haskell.org/package/graphviz")
4933 (synopsis "Bindings to Graphviz for graph visualisation")
4934 (description
4935 "This library provides bindings for the Dot language used by
4936the @uref{https://graphviz.org/, Graphviz} suite of programs for
4937visualising graphs, as well as functions to call those programs.
4938Main features of the graphviz library include:
4939
4940@enumerate
4941@item Almost complete coverage of all Graphviz attributes and syntax
4942@item Support for specifying clusters
4943@item The ability to use a custom node type
4944@item Functions for running a Graphviz layout tool with all specified output types
4945@item Generate and parse Dot code with two options: strict and liberal
4946@item Functions to convert FGL graphs and other graph-like data structures
4947@item Round-trip support for passing an FGL graph through Graphviz to augment node
4948and edge labels with positional information, etc.
4949@end enumerate\n")
4950 (license license:bsd-3)))
4951
f3e18645
TS
4952(define-public ghc-groups
4953 (package
4954 (name "ghc-groups")
4955 (version "0.4.1.0")
4956 (source
4957 (origin
4958 (method url-fetch)
4959 (uri (string-append "https://hackage.haskell.org/package/"
4960 "groups/groups-" version ".tar.gz"))
4961 (sha256
4962 (base32
4963 "0ggkygkyxw5ga4cza82bjvdraavl294k0h6b62d2px7z3nvqhifx"))))
4964 (build-system haskell-build-system)
4965 (home-page "https://hackage.haskell.org/package/groups")
4966 (synopsis "Haskell 98 groups")
4967 (description "This package provides Haskell 98 groups. A group is a
4968monoid with invertibility.")
4969 (license license:bsd-3)))
4970
dddbc90c
RV
4971(define-public ghc-gtk2hs-buildtools
4972 (package
4973 (name "ghc-gtk2hs-buildtools")
b79b43d4 4974 (version "0.13.5.4")
dddbc90c
RV
4975 (source
4976 (origin
4977 (method url-fetch)
4978 (uri (string-append "https://hackage.haskell.org/package/"
4979 "gtk2hs-buildtools/gtk2hs-buildtools-"
4980 version ".tar.gz"))
4981 (sha256
4982 (base32
b79b43d4 4983 "1flxsacxwmabzzalhn8558kmj95z01c0lmikrn56nxh7p62nxm25"))))
dddbc90c
RV
4984 (build-system haskell-build-system)
4985 (inputs
4986 `(("ghc-random" ,ghc-random)
4987 ("ghc-hashtables" ,ghc-hashtables)))
4988 (native-inputs
4989 `(("ghc-alex" ,ghc-alex)
4990 ("ghc-happy" ,ghc-happy)))
4991 (home-page "http://projects.haskell.org/gtk2hs/")
4992 (synopsis "Tools to build the Gtk2Hs suite of user interface libraries")
4993 (description
4994 "This package provides a set of helper programs necessary to build the
4995Gtk2Hs suite of libraries. These tools include a modified c2hs binding tool
4996that is used to generate FFI declarations, a tool to build a type hierarchy
4997that mirrors the C type hierarchy of GObjects found in glib, and a generator
4998for signal declarations that are used to call back from C to Haskell. These
4999tools are not needed to actually run Gtk2Hs programs.")
5000 (license license:gpl2)))
5001
5002(define-public ghc-hackage-security
5003 (package
5004 (name "ghc-hackage-security")
5005 (version "0.5.3.0")
5006 (source
5007 (origin
5008 (method url-fetch)
5009 (uri (string-append "https://hackage.haskell.org/package/"
5010 "hackage-security/hackage-security-"
5011 version ".tar.gz"))
5012 (sha256
5013 (base32
5014 "08bwawc7ramgdh54vcly2m9pvfchp0ahhs8117jajni6x4bnx66v"))))
5015 (build-system haskell-build-system)
5016 (arguments
034380f3
TS
5017 `(#:cabal-revision
5018 ("6" "1xs2nkzlvkdz8g27yzfxbjdbdadfmgiydnlpn5dm77cg18r495ay")
5019 #:tests? #f)) ; Tests fail because of framework updates.
dddbc90c
RV
5020 (inputs
5021 `(("ghc-base16-bytestring" ,ghc-base16-bytestring)
5022 ("ghc-base64-bytestring" ,ghc-base64-bytestring)
5023 ("ghc-cryptohash-sha256" ,ghc-cryptohash-sha256)
5024 ("ghc-ed25519" ,ghc-ed25519)
5025 ("ghc-network" ,ghc-network)
5026 ("ghc-network-uri" ,ghc-network-uri)
5027 ("ghc-tar" ,ghc-tar)
5028 ("ghc-zlib" ,ghc-zlib)))
5029 (native-inputs
5030 `(("ghc-network-uri" ,ghc-network-uri)
5031 ("ghc-quickcheck" ,ghc-quickcheck)
5032 ("ghc-tar" ,ghc-tar)
5033 ("ghc-tasty" ,ghc-tasty)
5034 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
5035 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
5036 ("ghc-temporary" ,ghc-temporary)
5037 ("ghc-zlib" ,ghc-zlib)))
5038 (home-page "https://github.com/haskell/hackage-security")
5039 (synopsis "Hackage security library")
5040 (description "This Hackage security library provides both server and
5041client utilities for securing @uref{http://hackage.haskell.org/, the
5042Hackage package server}. It is based on
5043@uref{http://theupdateframework.com/, The Update Framework}, a set of
5044recommendations developed by security researchers at various universities
5045in the US as well as developers on the @uref{https://www.torproject.org/,
5046Tor project}.")
5047 (license license:bsd-3)))
5048
5049(define-public ghc-haddock
5050 (package
5051 (name "ghc-haddock")
b0d34d23 5052 (version "2.22.0")
dddbc90c
RV
5053 (source
5054 (origin
5055 (method url-fetch)
5056 (uri (string-append
5057 "https://hackage.haskell.org/package/haddock/haddock-"
5058 version
5059 ".tar.gz"))
5060 (sha256
5061 (base32
b0d34d23 5062 "1k42z2zh550rl93c8pa9cg2xsanp6wvb031xvan6cmngnplmdib6"))))
dddbc90c
RV
5063 (build-system haskell-build-system)
5064 (arguments
5065 `(#:phases
5066 (modify-phases %standard-phases
b0d34d23
TS
5067 ;; The release tarball for 2.22.0 is missing the test data for
5068 ;; the Hoogle test, causing it to fail. This is fixed in the
5069 ;; next release, but for now we disable it.
5070 (add-before 'configure 'remove-hoogle-test
dddbc90c
RV
5071 (lambda _
5072 (use-modules (ice-9 rdelim))
5073 (with-atomic-file-replacement "haddock.cabal"
5074 (lambda (in out)
5075 (let loop ((line (read-line in 'concat)) (deleting? #f))
5076 (cond
5077 ((eof-object? line) #t)
5078 ((string-every char-set:whitespace line)
5079 (unless deleting? (display line out))
5080 (loop (read-line in 'concat) #f))
b0d34d23 5081 ((string=? line "test-suite hoogle-test\n")
dddbc90c
RV
5082 (loop (read-line in 'concat) #t))
5083 (else
5084 (unless deleting? (display line out))
b0d34d23
TS
5085 (loop (read-line in 'concat) deleting?))))))))
5086 (add-before 'check 'add-haddock-to-path
5087 (lambda _
5088 (setenv "PATH" (string-append (getcwd) "/dist/build/haddock"
5089 ":" (getenv "PATH")))
5090 #t)))))
dddbc90c
RV
5091 (inputs `(("ghc-haddock-api" ,ghc-haddock-api)))
5092 (native-inputs
b0d34d23
TS
5093 `(("ghc-haddock-test" ,ghc-haddock-test)
5094 ("ghc-hspec" ,ghc-hspec)))
dddbc90c
RV
5095 (home-page "https://www.haskell.org/haddock/")
5096 (synopsis
5097 "Documentation-generation tool for Haskell libraries")
5098 (description
5099 "Haddock is a documentation-generation tool for Haskell libraries.")
5100 (license license:bsd-3)))
5101
5102(define-public ghc-haddock-api
5103 (package
5104 (name "ghc-haddock-api")
1b84d8ef 5105 (version "2.22.0")
dddbc90c
RV
5106 (source
5107 (origin
5108 (method url-fetch)
5109 (uri (string-append
5110 "https://hackage.haskell.org/package/haddock-api/haddock-api-"
5111 version
5112 ".tar.gz"))
1b84d8ef 5113 (patches (search-patches "ghc-haddock-api-fix-haddock.patch"))
dddbc90c
RV
5114 (sha256
5115 (base32
1b84d8ef 5116 "149q4zlf4m7wcrr4af2n2flh0jxjsypshbc229vsj1m0kmz4z014"))))
dddbc90c
RV
5117 (build-system haskell-build-system)
5118 (arguments
5119 `(#:phases
5120 (modify-phases %standard-phases
5121 (add-before 'configure 'update-constraints
5122 (lambda _
5123 (substitute* "haddock-api.cabal"
1b84d8ef
TS
5124 (("QuickCheck \\^>= 2\\.11")
5125 "QuickCheck ^>= 2.13")
5126 (("hspec >= 2\\.4\\.4 && < 2\\.6")
5127 "hspec >= 2.4.4 && < 2.8")))))))
dddbc90c
RV
5128 (inputs
5129 `(("ghc-paths" ,ghc-paths)
5130 ("ghc-haddock-library" ,ghc-haddock-library)))
5131 (native-inputs
5132 `(("ghc-quickcheck" ,ghc-quickcheck)
5133 ("ghc-hspec" ,ghc-hspec)
5134 ("hspec-discover" ,hspec-discover)))
5135 (home-page "https://www.haskell.org/haddock/")
5136 (synopsis "API for documentation-generation tool Haddock")
5137 (description "This package provides an API to Haddock, the
5138documentation-generation tool for Haskell libraries.")
5139 (license license:bsd-3)))
5140
5141(define-public ghc-haddock-library
5142 (package
5143 (name "ghc-haddock-library")
10707d57 5144 (version "1.7.0")
dddbc90c
RV
5145 (source
5146 (origin
5147 (method url-fetch)
5148 (uri (string-append
5149 "https://hackage.haskell.org/package/haddock-library/haddock-library-"
5150 version
5151 ".tar.gz"))
5152 (sha256
5153 (base32
10707d57 5154 "04fhcjk0pvsaqvsgp2w06cv2qvshq1xs1bwc157q4lmkgr57khp7"))))
dddbc90c
RV
5155 (build-system haskell-build-system)
5156 (arguments
5157 `(#:phases
5158 (modify-phases %standard-phases
10707d57
TS
5159 ;; Since there is no revised Cabal file upstream, we have to
5160 ;; patch it manually.
dddbc90c
RV
5161 (add-before 'configure 'relax-test-suite-dependencies
5162 (lambda _
5163 (substitute* "haddock-library.cabal"
10707d57
TS
5164 (("hspec\\s*>= 2.4.4 && < 2.6") "hspec")
5165 (("QuickCheck\\s*\\^>= 2.11") "QuickCheck"))
dddbc90c
RV
5166 #t)))))
5167 (native-inputs
5168 `(("ghc-base-compat" ,ghc-base-compat)
5169 ("ghc-hspec" ,ghc-hspec)
5170 ("ghc-optparse-applicative" ,ghc-optparse-applicative)
5171 ("ghc-quickcheck" ,ghc-quickcheck)
5172 ("ghc-tree-diff" ,ghc-tree-diff)
5173 ("hspec-discover" ,hspec-discover)))
5174 (home-page "https://www.haskell.org/haddock/")
5175 (synopsis "Library exposing some functionality of Haddock")
5176 (description
5177 "Haddock is a documentation-generation tool for Haskell libraries. These
5178modules expose some functionality of it without pulling in the GHC dependency.
5179Please note that the API is likely to change so specify upper bounds in your
5180project if you can't release often. For interacting with Haddock itself, see
5181the ‘haddock’ package.")
5182 (license license:bsd-3)))
5183
b0d34d23
TS
5184;; This package is needed for testing 'ghc-haddock'. It is no longer
5185;; published to Hackage, but it is maintained in the Haddock Git
5186;; repository.
5187(define ghc-haddock-test
5188 (package
5189 (name "ghc-haddock-test")
5190 (version "2.22.0")
5191 (source
5192 (origin
5193 (method git-fetch)
5194 (uri (git-reference
b0e7b699 5195 (url "https://github.com/haskell/haddock")
b0d34d23
TS
5196 (commit (string-append "haddock-" version "-release"))))
5197 (file-name (git-file-name name version))
5198 (sha256
5199 (base32
5200 "1ywxmqqan10gs0ppybdmdgsmvkzkpw7yirj2rw4qylg3x49a9zca"))))
5201 (build-system haskell-build-system)
5202 (arguments
5203 `(#:phases
5204 (modify-phases %standard-phases
5205 (add-after 'unpack 'change-directory
5206 (lambda _
5207 (chdir "haddock-test"))))))
5208 (inputs
5209 `(("ghc-syb" ,ghc-syb)
5210 ("ghc-xml" ,ghc-xml)))
228d2901 5211 (home-page "https://www.haskell.org/haddock/")
b0d34d23
TS
5212 (synopsis "Test utilities for Haddock")
5213 (description "This package provides test utilities for Haddock.")
5214 (license license:bsd-3)
5215 (properties '((hidden? #t)))))
5216
dddbc90c
RV
5217(define-public ghc-half
5218 (package
5219 (name "ghc-half")
5220 (version "0.3")
5221 (source
5222 (origin
5223 (method url-fetch)
5224 (uri (string-append
5225 "https://hackage.haskell.org/package/half/half-"
5226 version ".tar.gz"))
5227 (sha256
5228 (base32
5229 "14r0nx8hm5fic9gz0ybjjw4kyc758zfgvhhwvzsshpx5caq6zch6"))))
5230 (build-system haskell-build-system)
5231 (native-inputs
5232 `(("ghc-hspec" ,ghc-hspec)
5233 ("ghc-quickcheck" ,ghc-quickcheck)))
5234 (home-page "https://github.com/ekmett/half")
5235 (synopsis "Half-precision floating-point computations")
5236 (description "This library provides a half-precision floating-point
5237computation library for Haskell.")
5238 (license license:bsd-3)))
5239
5240(define-public ghc-happy
5241 (package
5242 (name "ghc-happy")
90e7b0e4 5243 (version "1.19.12")
dddbc90c
RV
5244 (source
5245 (origin
5246 (method url-fetch)
5247 (uri (string-append
5248 "https://hackage.haskell.org/package/happy/happy-"
5249 version
5250 ".tar.gz"))
5251 (sha256
5252 (base32
90e7b0e4 5253 "03xlmq6qmdx4zvzw8bp33kd9g7yvcq5cz4wg50xilw812kj276pv"))))
dddbc90c
RV
5254 (build-system haskell-build-system)
5255 (arguments
5256 `(#:phases
5257 (modify-phases %standard-phases
5258 (add-after 'unpack 'skip-test-issue93
5259 (lambda _
5260 ;; Tests run out of memory on a system with 2GB of available RAM,
5261 ;; in 'issue93.a.hs' and 'issue93.n.hs'.
5262 (substitute* "tests/Makefile"
5263 ((" issue93.y ") " "))
5264 #t)))))
5265 (home-page "https://hackage.haskell.org/package/happy")
5266 (synopsis "Parser generator for Haskell")
5267 (description "Happy is a parser generator for Haskell. Given a grammar
5268specification in BNF, Happy generates Haskell code to parse the grammar.
5269Happy works in a similar way to the yacc tool for C.")
5270 (license license:bsd-3)))
5271
5272(define-public ghc-hashable
5273 (package
5274 (name "ghc-hashable")
5275 (version "1.2.7.0")
534d6caa 5276 (outputs '("out" "static" "doc"))
dddbc90c
RV
5277 (source
5278 (origin
5279 (method url-fetch)
5280 (uri (string-append
5281 "https://hackage.haskell.org/package/hashable/hashable-"
5282 version
5283 ".tar.gz"))
5284 (sha256
5285 (base32
5286 "1gra8gq3kb7b2sd845h55yxlrfqx3ii004c6vjhga8v0b30fzdgc"))))
5287 (build-system haskell-build-system)
65a16a45
TS
5288 (arguments
5289 `(#:cabal-revision
5290 ("1" "197063dpl0wn67dp7a06yc2hxp81n24ykk7klbjx0fndm5n87dh3")))
dddbc90c
RV
5291 (inputs
5292 `(("ghc-random" ,ghc-random)))
5293 (native-inputs
5294 `(("ghc-test-framework" ,ghc-test-framework)
5295 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
5296 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)
5297 ("ghc-hunit" ,ghc-hunit)
5298 ("ghc-quickcheck" ,ghc-quickcheck)))
5299 (home-page "https://github.com/tibbe/hashable")
5300 (synopsis "Class for types that can be converted to a hash value")
5301 (description
5302 "This package defines a class, @code{Hashable}, for types that can be
5303converted to a hash value. This class exists for the benefit of hashing-based
5304data structures. The package provides instances for basic types and a way to
5305combine hash values.")
5306 (license license:bsd-3)))
5307
5308(define-public ghc-hashable-bootstrap
5309 (package
5310 (inherit ghc-hashable)
5311 (name "ghc-hashable-bootstrap")
65a16a45
TS
5312 (arguments
5313 `(#:tests? #f
5314 ,@(package-arguments ghc-hashable)))
dddbc90c
RV
5315 (native-inputs '())
5316 (properties '((hidden? #t)))))
5317
5318(define-public ghc-hashable-time
5319 (package
5320 (name "ghc-hashable-time")
f5051e31 5321 (version "0.2.0.2")
dddbc90c
RV
5322 (source
5323 (origin
5324 (method url-fetch)
5325 (uri (string-append
5326 "https://hackage.haskell.org/package/hashable-time/hashable-time-"
5327 version
5328 ".tar.gz"))
5329 (sha256
5330 (base32
f5051e31 5331 "1q7y4plqqwy5286hhx2fygn12h8lqk0y047b597sbdckskxzfqgs"))))
dddbc90c
RV
5332 (build-system haskell-build-system)
5333 (arguments
5334 `(#:cabal-revision
f5051e31 5335 ("2" "006phc5y9rrvsshdcmjmhxzxh8dpgs685mpqbkjm9c40xb1ydjbz")))
dddbc90c 5336 (inputs `(("ghc-hashable" ,ghc-hashable)))
3b02036e 5337 (home-page "https://hackage.haskell.org/package/hashable-time")
dddbc90c
RV
5338 (synopsis "Hashable instances for Data.Time")
5339 (description
5340 "This package provides @code{Hashable} instances for types in
5341@code{Data.Time}.")
5342 (license license:bsd-3)))
5343
5344(define-public ghc-hashtables
5345 (package
5346 (name "ghc-hashtables")
19edf0d0 5347 (version "1.2.3.4")
dddbc90c
RV
5348 (source
5349 (origin
5350 (method url-fetch)
5351 (uri (string-append
5352 "https://hackage.haskell.org/package/hashtables/hashtables-"
5353 version ".tar.gz"))
5354 (sha256
19edf0d0 5355 (base32 "1rjmxnr30g4hygiywkpz5p9sanh0abs7ap4zc1kgd8zv04kycp0j"))))
dddbc90c
RV
5356 (build-system haskell-build-system)
5357 (inputs
5358 `(("ghc-hashable" ,ghc-hashable)
5359 ("ghc-primitive" ,ghc-primitive)
5360 ("ghc-vector" ,ghc-vector)))
5361 (home-page "https://github.com/gregorycollins/hashtables")
5362 (synopsis "Haskell Mutable hash tables in the ST monad")
5363 (description "This package provides a Haskell library including a
5364couple of different implementations of mutable hash tables in the ST
5365monad, as well as a typeclass abstracting their common operations, and
5366a set of wrappers to use the hash tables in the IO monad.")
5367 (license license:bsd-3)))
5368
dd26713e
JS
5369(define-public ghc-haskeline-0.8
5370 (package
5371 (name "ghc-haskeline")
5372 (version "0.8.0.0")
5373 (source
5374 (origin
5375 (method url-fetch)
5376 (uri (string-append
5377 "https://hackage.haskell.org/package/haskeline/haskeline-"
5378 version
5379 ".tar.gz"))
5380 (sha256
5381 (base32
5382 "0gqsa5s0drim9m42hv4wrq61mnvcdylxysfxfw3acncwilfrn9pb"))))
5383 (build-system haskell-build-system)
5384 (inputs `(("ghc-exceptions" ,ghc-exceptions)))
5385 (native-inputs `(("ghc-hunit" ,ghc-hunit)))
5386 ;; FIXME: Tests failing
5387 (arguments `(#:tests? #f))
5388 (home-page "https://github.com/judah/haskeline")
5389 (synopsis
5390 "Command-line interface for user input, written in Haskell")
5391 (description
5392 "Haskeline provides a user interface for line input in command-line
5393programs. This library is similar in purpose to readline, but since it is
5394written in Haskell it is (hopefully) more easily used in other Haskell
5395programs.
5396
5397Haskeline runs both on POSIX-compatible systems and on Windows.")
5398 (license license:bsd-3)))
5399
dddbc90c
RV
5400(define-public ghc-haskell-lexer
5401 (package
5402 (name "ghc-haskell-lexer")
5403 (version "1.0.2")
5404 (source
5405 (origin
5406 (method url-fetch)
5407 (uri (string-append
5408 "https://hackage.haskell.org/package/haskell-lexer/haskell-lexer-"
5409 version ".tar.gz"))
5410 (sha256
5411 (base32 "1wyxd8x33x4v5vxyzkhm610pl86gbkc8y439092fr1735q9g7kfq"))))
5412 (build-system haskell-build-system)
3ef91e15 5413 (home-page "https://hackage.haskell.org/package/haskell-lexer")
dddbc90c
RV
5414 (synopsis "Fully compliant Haskell 98 lexer")
5415 (description
5416 "This package provides a fully compliant Haskell 98 lexer.")
5417 (license license:bsd-3)))
5418
5419(define-public ghc-haskell-src
5420 (package
5421 (name "ghc-haskell-src")
5422 (version "1.0.3.0")
5423 (source
5424 (origin
5425 (method url-fetch)
5426 (uri (string-append
5427 "https://hackage.haskell.org/package/haskell-src/haskell-src-"
5428 version
5429 ".tar.gz"))
5430 (sha256
5431 (base32
5432 "1g4dj1f0j68bhn4ixfac63wjzy6gsp6kwgxryb1k5nl3i0g99d5l"))))
5433 (build-system haskell-build-system)
5434 (inputs
5435 `(("ghc-happy" ,ghc-happy)
5436 ("ghc-syb" ,ghc-syb)))
5437 (home-page
5438 "https://hackage.haskell.org/package/haskell-src")
5439 (synopsis
5440 "Support for manipulating Haskell source code")
5441 (description
5442 "The @code{haskell-src} package provides support for manipulating Haskell
5443source code. The package provides a lexer, parser and pretty-printer, and a
5444definition of a Haskell abstract syntax tree (AST). Common uses of this
5445package are to parse or generate Haskell 98 code.")
5446 (license license:bsd-3)))
5447
5448(define-public ghc-haskell-src-exts
5449 (package
5450 (name "ghc-haskell-src-exts")
37a05591 5451 (version "1.21.1")
dddbc90c
RV
5452 (source
5453 (origin
5454 (method url-fetch)
5455 (uri (string-append
5456 "https://hackage.haskell.org/package/haskell-src-exts/haskell-src-exts-"
5457 version
5458 ".tar.gz"))
5459 (sha256
5460 (base32
37a05591 5461 "0q1y8n3d82gid9bcx8wxsqqmj9mq11fg3gp5yzpfbw958dhi3j9f"))))
dddbc90c 5462 (build-system haskell-build-system)
cad59e53 5463 (outputs '("out" "static" "doc"))
dddbc90c
RV
5464 (inputs
5465 `(("cpphs" ,cpphs)
5466 ("ghc-happy" ,ghc-happy)
5467 ("ghc-pretty-show" ,ghc-pretty-show)))
5468 (native-inputs
5469 `(("ghc-smallcheck" ,ghc-smallcheck)
5470 ("ghc-tasty" ,ghc-tasty)
5471 ("ghc-tasty-smallcheck" ,ghc-tasty-smallcheck)
5472 ("ghc-tasty-golden" ,ghc-tasty-golden)))
5473 (home-page "https://github.com/haskell-suite/haskell-src-exts")
5474 (synopsis "Library for manipulating Haskell source")
5475 (description "Haskell-Source with Extensions (HSE, haskell-src-exts) is an
5476extension of the standard @code{haskell-src} package, and handles most
5477registered syntactic extensions to Haskell. All extensions implemented in GHC
5478are supported. Apart from these standard extensions, it also handles regular
5479patterns as per the HaRP extension as well as HSX-style embedded XML syntax.")
5480 (license license:bsd-3)))
5481
5482(define-public ghc-haskell-src-exts-util
5483 (package
5484 (name "ghc-haskell-src-exts-util")
77355bdf 5485 (version "0.2.5")
dddbc90c
RV
5486 (source
5487 (origin
5488 (method url-fetch)
5489 (uri (string-append "https://hackage.haskell.org/package/"
5490 "haskell-src-exts-util/haskell-src-exts-util-"
5491 version ".tar.gz"))
5492 (sha256
5493 (base32
77355bdf 5494 "0fvqi72m74p7q5sbpy8m2chm8a1lgy10mfrcxcz8wrh59vngj0n8"))))
dddbc90c
RV
5495 (build-system haskell-build-system)
5496 (inputs
5497 `(("ghc-data-default" ,ghc-data-default)
5498 ("ghc-haskell-src-exts" ,ghc-haskell-src-exts)
5499 ("ghc-semigroups" ,ghc-semigroups)
5500 ("ghc-uniplate" ,ghc-uniplate)))
5501 (home-page "https://github.com/pepeiborra/haskell-src-exts-util")
5502 (synopsis "Helper functions for working with haskell-src-exts trees")
5503 (description
5504 "This package provides helper functions for working with
5505@code{haskell-src-exts} trees.")
5506 (license license:bsd-3)))
5507
5508(define-public ghc-haskell-src-meta
5509 (package
5510 (name "ghc-haskell-src-meta")
e94b3c72 5511 (version "0.8.3")
dddbc90c
RV
5512 (source (origin
5513 (method url-fetch)
5514 (uri (string-append "https://hackage.haskell.org/package/"
5515 "haskell-src-meta/haskell-src-meta-"
5516 version ".tar.gz"))
5517 (sha256
5518 (base32
e94b3c72 5519 "17znnaqj2hnnfyc9p9xjzbs97h2jh1h4f4qbw648y3xa14wx5ra9"))))
dddbc90c
RV
5520 (build-system haskell-build-system)
5521 (inputs
5522 `(("ghc-haskell-src-exts" ,ghc-haskell-src-exts)
5523 ("ghc-syb" ,ghc-syb)
5524 ("ghc-th-orphans" ,ghc-th-orphans)))
5525 (native-inputs
5526 `(("ghc-hunit" ,ghc-hunit)
e94b3c72
TS
5527 ("ghc-tasty" ,ghc-tasty)
5528 ("ghc-tasty-hunit" ,ghc-tasty-hunit)))
dddbc90c
RV
5529 (home-page "https://hackage.haskell.org/package/haskell-src-meta")
5530 (synopsis "Parse source to template-haskell abstract syntax")
5531 (description
5532 "This package provides tools to parse Haskell sources to the
5533template-haskell abstract syntax.")
5534 (license license:bsd-3)))
5535
5536(define-public ghc-hasktags
5537 (package
5538 (name "ghc-hasktags")
5539 (version "0.71.2")
5540 (source
5541 (origin
5542 (method url-fetch)
5543 (uri (string-append
5544 "https://hackage.haskell.org/package/hasktags/hasktags-"
5545 version
5546 ".tar.gz"))
5547 (sha256
5548 (base32
5549 "1s2k9qrgy1jily96img2pmn7g35mwnnfiw6si3aw32jfhg5zsh1c"))))
5550 (build-system haskell-build-system)
5551 (inputs
5552 `(("ghc-system-filepath" ,ghc-system-filepath)
5553 ("ghc-optparse-applicative" ,ghc-optparse-applicative)))
5554 (native-inputs
5555 `(("ghc-json" ,ghc-json)
5556 ("ghc-utf8-string" ,ghc-utf8-string)
5557 ("ghc-microlens-platform" ,ghc-microlens-platform)
5558 ("ghc-hunit" ,ghc-hunit)))
702a1012 5559 (home-page "https://github.com/MarcWeber/hasktags")
dddbc90c
RV
5560 (synopsis "Make @code{Ctags} and @code{Etags} files for Haskell programs")
5561 (description
5562 "This package provides a means of generating tag files for Emacs and
5563Vim.")
5564 (license license:bsd-3)))
5565
5566(define-public ghc-hex
5567 (package
5568 (name "ghc-hex")
5569 (version "0.1.2")
5570 (source
5571 (origin
5572 (method url-fetch)
5573 (uri (string-append "https://hackage.haskell.org/package/"
5574 "hex-" version "/"
5575 "hex-" version ".tar.gz"))
5576 (sha256
5577 (base32
5578 "1v31xiaivrrn0q2jz8919wvkjplv1kxna5ajhsj701fqxm1i5vhj"))))
5579 (build-system haskell-build-system)
5580 (home-page "https://hackage.haskell.org/package/hex")
5581 (synopsis "Convert strings into hexadecimal and back")
7230f6d5
TGR
5582 (description "This package converts between bytestrings and their
5583hexadecimal string representation.")
dddbc90c
RV
5584 (license license:bsd-3)))
5585
5586(define-public ghc-highlighting-kate
5587 (package
5588 (name "ghc-highlighting-kate")
5589 (version "0.6.4")
5590 (source (origin
5591 (method url-fetch)
5592 (uri (string-append "https://hackage.haskell.org/package/"
5593 "highlighting-kate/highlighting-kate-"
5594 version ".tar.gz"))
5595 (sha256
5596 (base32
5597 "1bqv00gfmrsf0jjr4qf3lhshvfkyzmhbi3pjb6mafbnsyn2k7f6q"))))
5598 (build-system haskell-build-system)
5599 (inputs
5600 `(("ghc-diff" ,ghc-diff)
5601 ("ghc-regex-pcre-builtin" ,ghc-regex-pcre-builtin)))
5602 (native-inputs
5603 `(("ghc-blaze-html" ,ghc-blaze-html)
5604 ("ghc-utf8-string" ,ghc-utf8-string)))
5605 (home-page "https://github.com/jgm/highlighting-kate")
5606 (synopsis "Syntax highlighting library")
5607 (description
5608 "Highlighting-kate is a syntax highlighting library with support for
5609nearly one hundred languages. The syntax parsers are automatically generated
5610from @uref{https://kate-editor.org/, Kate syntax descriptions}, so any syntax
5611supported by Kate can be added. An (optional) command-line program is
5612provided, along with a utility for generating new parsers from Kate XML syntax
5613descriptions.")
5614 (license license:gpl2+)))
5615
5616(define-public ghc-hindent
5617 (package
5618 (name "ghc-hindent")
f545f894 5619 (version "5.3.1")
dddbc90c
RV
5620 (source
5621 (origin
5622 (method url-fetch)
5623 (uri (string-append
5624 "https://hackage.haskell.org/package/hindent/hindent-"
5625 version
5626 ".tar.gz"))
5627 (sha256
5628 (base32
f545f894 5629 "008s8zm9qs972b7v5kkmr8l3i9kc6zm7yj33mkw6dv69b7h3c01l"))))
dddbc90c
RV
5630 (build-system haskell-build-system)
5631 (arguments
5632 `(#:modules ((guix build haskell-build-system)
5633 (guix build utils)
5634 (guix build emacs-utils))
5635 #:imported-modules (,@%haskell-build-system-modules
5636 (guix build emacs-utils))
5637 #:phases
5638 (modify-phases %standard-phases
5639 (add-after 'install 'emacs-install
5640 (lambda* (#:key inputs outputs #:allow-other-keys)
5641 (let* ((out (assoc-ref outputs "out"))
5642 (elisp-file "elisp/hindent.el")
d53e87cf 5643 (dest (string-append out "/share/emacs/site-lisp"))
dddbc90c
RV
5644 (emacs (string-append (assoc-ref inputs "emacs")
5645 "/bin/emacs")))
5646 (make-file-writable elisp-file)
5647 (emacs-substitute-variables elisp-file
5648 ("hindent-process-path"
5649 (string-append out "/bin/hindent")))
5650 (install-file elisp-file dest)
5651 (emacs-generate-autoloads "hindent" dest)))))))
5652 (inputs
5653 `(("ghc-haskell-src-exts" ,ghc-haskell-src-exts)
5654 ("ghc-monad-loops" ,ghc-monad-loops)
5655 ("ghc-utf8-string" ,ghc-utf8-string)
5656 ("ghc-exceptions" ,ghc-exceptions)
5657 ("ghc-yaml" ,ghc-yaml)
5658 ("ghc-unix-compat" ,ghc-unix-compat)
5659 ("ghc-path" ,ghc-path)
5660 ("ghc-path-io" ,ghc-path-io)
5661 ("ghc-optparse-applicative" ,ghc-optparse-applicative)))
5662 (native-inputs
5663 `(("ghc-hspec" ,ghc-hspec)
5664 ("ghc-diff" ,ghc-diff)
5665 ("emacs" ,emacs-minimal)))
5666 (home-page
5667 "https://github.com/commercialhaskell/hindent")
5668 (synopsis "Extensible Haskell pretty printer")
5669 (description
5670 "This package provides automatic formatting for Haskell files. Both a
5671library and an executable.")
5672 (license license:bsd-3)))
5673
5674(define-public ghc-hinotify
5675 (package
5676 (name "ghc-hinotify")
c2342abb 5677 (version "0.4")
dddbc90c
RV
5678 (source (origin
5679 (method url-fetch)
5680 (uri (string-append
5681 "https://hackage.haskell.org/package/hinotify/"
5682 "hinotify-" version ".tar.gz"))
5683 (sha256
5684 (base32
c2342abb 5685 "1x1lm685ws2q0z0ibwq6x3l72xh67mj06s36xiga3al48d92q63x"))))
dddbc90c
RV
5686 (build-system haskell-build-system)
5687 (inputs
5688 `(("ghc-async" ,ghc-async)))
5689 (home-page "https://github.com/kolmodin/hinotify.git")
5690 (synopsis "Haskell binding to inotify")
5691 (description "This library provides a wrapper to the Linux kernel's inotify
5692feature, allowing applications to subscribe to notifications when a file is
5693accessed or modified.")
5694 (license license:bsd-3)))
5695
5696(define-public ghc-hmatrix
5697 (package
5698 (name "ghc-hmatrix")
65e29ed1 5699 (version "0.20.0.0")
dddbc90c
RV
5700 (source
5701 (origin
5702 (method url-fetch)
5703 (uri (string-append
5704 "https://hackage.haskell.org/package/hmatrix/hmatrix-"
5705 version ".tar.gz"))
5706 (sha256
65e29ed1 5707 (base32 "1sqy1aci5zfagkb34mz3xdil7cl96z4b4cx28cha54vc5sx1lhpg"))))
dddbc90c 5708 (build-system haskell-build-system)
54a5fd07
TS
5709 (arguments
5710 `(#:extra-directories ("lapack")))
dddbc90c
RV
5711 (inputs
5712 `(("ghc-random" ,ghc-random)
5713 ("ghc-split" ,ghc-split)
5714 ("ghc-storable-complex" ,ghc-storable-complex)
5715 ("ghc-semigroups" ,ghc-semigroups)
5716 ("ghc-vector" ,ghc-vector)
5717 ;;("openblas" ,openblas)
5718 ("lapack" ,lapack)))
5719 ;; Guix's OpenBLAS is built with the flag "NO_LAPACK=1" which
5720 ;; disables inclusion of the LAPACK functions.
5721 ;; (arguments `(#:configure-flags '("--flags=openblas")))
5722 (home-page "https://github.com/albertoruiz/hmatrix")
5723 (synopsis "Haskell numeric linear algebra library")
5724 (description "The HMatrix package provices a Haskell library for
5725dealing with linear systems, matrix decompositions, and other
5726numerical computations based on BLAS and LAPACK.")
5727 (license license:bsd-3)))
5728
5729(define-public ghc-hmatrix-gsl
5730 (package
5731 (name "ghc-hmatrix-gsl")
5732 (version "0.19.0.1")
5733 (source
5734 (origin
5735 (method url-fetch)
5736 (uri (string-append
5737 "https://hackage.haskell.org/package/hmatrix-gsl/hmatrix-gsl-"
5738 version ".tar.gz"))
5739 (sha256
5740 (base32 "0v6dla426x4ywaq59jm89ql1i42n39iw6z0j378xwb676v9kfxhm"))))
5741 (build-system haskell-build-system)
54a5fd07
TS
5742 (arguments
5743 `(#:extra-directories ("gsl")))
dddbc90c
RV
5744 (inputs
5745 `(("ghc-hmatrix" ,ghc-hmatrix)
5746 ("ghc-vector" ,ghc-vector)
5747 ("ghc-random" ,ghc-random)
5748 ("gsl" ,gsl)))
5749 (native-inputs `(("pkg-config" ,pkg-config)))
5750 (home-page "https://github.com/albertoruiz/hmatrix")
5751 (synopsis "Haskell GSL binding")
5752 (description "This Haskell library provides a purely functional
5753interface to selected numerical computations, internally implemented
5754using GSL.")
5755 (license license:gpl3+)))
5756
5757(define-public ghc-hmatrix-gsl-stats
5758 (package
5759 (name "ghc-hmatrix-gsl-stats")
e9b359f5 5760 (version "0.4.1.8")
dddbc90c
RV
5761 (source
5762 (origin
5763 (method url-fetch)
5764 (uri
5765 (string-append
5766 "https://hackage.haskell.org/package/hmatrix-gsl-stats/hmatrix-gsl-stats-"
5767 version ".tar.gz"))
5768 (sha256
e9b359f5 5769 (base32 "1cq049sj3q5r06x7i35hqrkf2jc4p4kfi9zv0jmi2vp7w4644i5q"))))
dddbc90c
RV
5770 (build-system haskell-build-system)
5771 (inputs
5772 `(("ghc-vector" ,ghc-vector)
5773 ("ghc-storable-complex" ,ghc-storable-complex)
5774 ("ghc-hmatrix" ,ghc-hmatrix)
5775 ("gsl" ,gsl)))
5776 (native-inputs `(("pkg-config" ,pkg-config)))
5777 (home-page "http://code.haskell.org/hmatrix-gsl-stats")
5778 (synopsis "GSL Statistics interface for Haskell")
5779 (description "This Haskell library provides a purely functional
5780interface for statistics based on hmatrix and GSL.")
5781 (license license:bsd-3)))
5782
5783(define-public ghc-hmatrix-special
5784 (package
5785 (name "ghc-hmatrix-special")
5786 (version "0.19.0.0")
5787 (source
5788 (origin
5789 (method url-fetch)
5790 (uri
5791 (string-append
5792 "https://hackage.haskell.org/package/hmatrix-special/hmatrix-special-"
5793 version ".tar.gz"))
5794 (sha256
5795 (base32 "1mywr61kr852sbff26n9x95kswx9l4ycbv6s68qsbkh02xzqq7qz"))))
5796 (build-system haskell-build-system)
5797 (inputs
5798 `(("ghc-hmatrix" ,ghc-hmatrix)
5799 ("ghc-hmatrix-gsl" ,ghc-hmatrix-gsl)))
5800 (home-page "https://github.com/albertoruiz/hmatrix")
5801 (synopsis "Haskell interface to GSL special functions")
5802 (description "This library provides an interface to GSL special
5803functions for Haskell.")
5804 (license license:gpl3+)))
5805
5806(define-public ghc-hostname
5807 (package
5808 (name "ghc-hostname")
5809 (version "1.0")
5810 (source
5811 (origin
5812 (method url-fetch)
5813 (uri (string-append "https://hackage.haskell.org/package/hostname/"
5814 "hostname-" version ".tar.gz"))
5815 (sha256
5816 (base32
5817 "0p6gm4328946qxc295zb6vhwhf07l1fma82vd0siylnsnsqxlhwv"))))
5818 (build-system haskell-build-system)
5819 (home-page "https://hackage.haskell.org/package/hostname")
5820 (synopsis "Hostname in Haskell")
5821 (description "Network.HostName is a simple package providing a means to
5822determine the hostname.")
5823 (license license:bsd-3)))
5824
5825(define-public ghc-hourglass
5826 (package
5827 (name "ghc-hourglass")
5828 (version "0.2.12")
5829 (source (origin
5830 (method url-fetch)
5831 (uri (string-append "https://hackage.haskell.org/package/"
5832 "hourglass/hourglass-" version ".tar.gz"))
5833 (sha256
5834 (base32
5835 "0jnay5j13vpz6i1rkaj3j0d9v8jfpri499xn3l7wd01f81f5ncs4"))))
5836 (build-system haskell-build-system)
5837 (inputs
5838 `(("ghc-old-locale" ,ghc-old-locale)))
5839 (native-inputs
5840 `(("ghc-tasty" ,ghc-tasty)
5841 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
5842 ("ghc-tasty-hunit" ,ghc-tasty-hunit)))
5843 (home-page "https://github.com/vincenthz/hs-hourglass")
5844 (synopsis "Simple time-related library for Haskell")
5845 (description
5846 "This is a simple time library providing a simple but powerful and
5847performant API. The backbone of the library are the @code{Timeable} and
5848@code{Time} type classes. Each @code{Timeable} instances can be converted to
5849a type that has a @code{Time} instances, and thus are different
5850representations of current time.")
5851 (license license:bsd-3)))
5852
5853(define-public ghc-hpack
5854 (package
5855 (name "ghc-hpack")
06344a3a 5856 (version "0.31.2")
dddbc90c
RV
5857 (source
5858 (origin
5859 (method url-fetch)
5860 (uri (string-append "https://hackage.haskell.org/package/hpack/"
5861 "hpack-" version ".tar.gz"))
06344a3a 5862 (patches (search-patches "ghc-hpack-fix-tests.patch"))
dddbc90c
RV
5863 (sha256
5864 (base32
06344a3a 5865 "1l2d6185lawwhsj70swxkvcacm0hvcn9qsrlx4ph4gs6k578603g"))))
dddbc90c
RV
5866 (build-system haskell-build-system)
5867 (inputs
5868 `(("ghc-aeson" ,ghc-aeson)
5869 ("ghc-bifunctors" ,ghc-bifunctors)
5870 ("ghc-cryptonite" ,ghc-cryptonite)
5871 ("ghc-glob" ,ghc-glob)
5872 ("ghc-http-client" ,ghc-http-client)
5873 ("ghc-http-client-tls" ,ghc-http-client-tls)
5874 ("ghc-http-types" ,ghc-http-types)
06344a3a 5875 ("ghc-infer-license" ,ghc-infer-license)
dddbc90c
RV
5876 ("ghc-scientific" ,ghc-scientific)
5877 ("ghc-unordered-containers" ,ghc-unordered-containers)
5878 ("ghc-vector" ,ghc-vector)
5879 ("ghc-yaml" ,ghc-yaml)))
5880 (native-inputs
5881 `(("ghc-hspec" ,ghc-hspec)
5882 ("ghc-hunit" ,ghc-hunit)
5883 ("ghc-interpolate" ,ghc-interpolate)
5884 ("ghc-mockery" ,ghc-mockery)
5885 ("ghc-quickcheck" ,ghc-quickcheck)
5886 ("ghc-temporary" ,ghc-temporary)
5887 ("hspec-discover" ,hspec-discover)))
5888 (home-page "https://github.com/sol/hpack")
5889 (synopsis "Tools for an alternative Haskell package format")
5890 (description
5891 "Hpack is a format for Haskell packages. It is an alternative to the
5892Cabal package format and follows different design principles. Hpack packages
5893are described in a file named @code{package.yaml}. Both @code{cabal2nix} and
5894@code{stack} support @code{package.yaml} natively. For other build tools the
5895@code{hpack} executable can be used to generate a @code{.cabal} file from
5896@code{package.yaml}.")
5897 (license license:expat)))
5898
5899(define-public ghc-hs-bibutils
5900 (package
5901 (name "ghc-hs-bibutils")
ebcb4f23 5902 (version "6.7.0.0")
dddbc90c
RV
5903 (source
5904 (origin
5905 (method url-fetch)
5906 (uri (string-append
5907 "https://hackage.haskell.org/package/hs-bibutils/hs-bibutils-"
5908 version ".tar.gz"))
5909 (sha256
5910 (base32
ebcb4f23 5911 "1qfyssl76lm4g09yxr3y10kmf8cnzls46g5h0ijk0wpk9wlhbln5"))))
dddbc90c
RV
5912 (build-system haskell-build-system)
5913 (inputs `(("ghc-syb" ,ghc-syb)))
5914 (home-page "https://hackage.haskell.org/package/hs-bibutils")
5915 (synopsis "Haskell bindings to bibutils")
5916 (description
5917 "This package provides Haskell bindings to @code{bibutils}, a library
5918that interconverts between various bibliography formats using a common
5919MODS-format XML intermediate.")
5920 (license license:gpl2+)))
5921
5922(define-public ghc-hslogger
5923 (package
5924 (name "ghc-hslogger")
e5ccc5f7 5925 (version "1.2.12")
dddbc90c
RV
5926 (source
5927 (origin
5928 (method url-fetch)
5929 (uri (string-append "https://hackage.haskell.org/package/"
5930 "hslogger-" version "/" "hslogger-"
5931 version ".tar.gz"))
5932 (sha256 (base32
e5ccc5f7 5933 "0ykcsk7wqygvrg60r5kpl6xfinr706al8pfyk5wj67wjs24lqypr"))))
dddbc90c
RV
5934 (build-system haskell-build-system)
5935 (inputs
5936 `(("ghc-network" ,ghc-network)
5937 ("ghc-old-locale" ,ghc-old-locale)))
5938 (native-inputs
5939 `(("ghc-hunit" ,ghc-hunit)))
5940 (home-page "https://software.complete.org/hslogger")
5941 (synopsis "Logging framework for Haskell, similar to Python's logging module")
5942 (description "Hslogger lets each log message have a priority and source be
5943associated with it. The programmer can then define global handlers that route
5944or filter messages based on the priority and source. It also has a syslog
5945handler built in.")
5946 (license license:bsd-3)))
5947
5948(define-public ghc-hslua
5949 (package
5950 (name "ghc-hslua")
cc784d7b 5951 (version "1.0.3.2")
dddbc90c
RV
5952 (source (origin
5953 (method url-fetch)
5954 (uri (string-append "https://hackage.haskell.org/package/"
5955 "hslua/hslua-" version ".tar.gz"))
5956 (sha256
5957 (base32
cc784d7b 5958 "183bgl5jcx5y2r94lviqfw0a5w9089nxjd1z40k8vx9y2h60pm6j"))))
dddbc90c
RV
5959 (build-system haskell-build-system)
5960 (arguments
54a5fd07
TS
5961 `(#:configure-flags '("-fsystem-lua")
5962 #:extra-directories ("lua")))
dddbc90c
RV
5963 (inputs
5964 `(("lua" ,lua)
5965 ("ghc-exceptions" ,ghc-exceptions)
5966 ("ghc-fail" ,ghc-fail)))
5967 (native-inputs
5968 `(("ghc-tasty" ,ghc-tasty)
5969 ("ghc-tasty-expected-failure" ,ghc-tasty-expected-failure)
5970 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
5971 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
5972 ("ghc-quickcheck" ,ghc-quickcheck)
5973 ("ghc-quickcheck-instances" ,ghc-quickcheck-instances)))
5974 (home-page "https://hackage.haskell.org/package/hslua")
5975 (synopsis "Lua language interpreter embedding in Haskell")
5976 (description
5977 "The Scripting.Lua module is a wrapper of the Lua language interpreter as
5978described in @url{https://www.lua.org/}.")
5979 (license license:expat)))
5980
ff303e4e
TS
5981(define-public ghc-hslua-module-system
5982 (package
5983 (name "ghc-hslua-module-system")
5984 (version "0.2.1")
5985 (source
5986 (origin
5987 (method url-fetch)
5988 (uri (string-append "https://hackage.haskell.org/package/"
5989 "hslua-module-system/hslua-module-system-"
5990 version ".tar.gz"))
5991 (sha256
5992 (base32
5993 "1m7wz3g5c34pyizqw5mllzhsy2vziddhlbhjfwdvd7nhd3p4v3hh"))))
5994 (build-system haskell-build-system)
5995 (inputs
5996 `(("ghc-exceptions" ,ghc-exceptions)
5997 ("ghc-hslua" ,ghc-hslua)
5998 ("ghc-temporary" ,ghc-temporary)))
5999 (native-inputs
6000 `(("ghc-tasty" ,ghc-tasty)
6001 ("ghc-tasty-hunit" ,ghc-tasty-hunit)))
6002 (home-page "https://github.com/hslua/hslua-module-system")
6003 (synopsis "Lua module wrapper around Haskell's System module")
6004 (description "This library provides access to system information and
6005functionality to Lua scripts via Haskell's @code{System} module. Intended
6006usage for this package is to preload it by adding the loader function to
6007@code{package.preload}. Note that the Lua @code{package} library must have
6008already been loaded before the loader can be added.")
6009 (license license:expat)))
6010
dddbc90c
RV
6011(define-public ghc-hslua-module-text
6012 (package
6013 (name "ghc-hslua-module-text")
ecaf0b0c 6014 (version "0.2.1")
dddbc90c
RV
6015 (source
6016 (origin
6017 (method url-fetch)
6018 (uri (string-append "https://hackage.haskell.org/package/"
6019 "hslua-module-text/hslua-module-text-"
6020 version ".tar.gz"))
6021 (sha256
6022 (base32
ecaf0b0c 6023 "1ikdwvvxhbd5wmfr85dzs2ccamh9rbbpgy899z7s1vlv5q1dj0hk"))))
dddbc90c 6024 (build-system haskell-build-system)
dddbc90c
RV
6025 (inputs
6026 `(("ghc-hslua" ,ghc-hslua)))
6027 (native-inputs
6028 `(("ghc-tasty" ,ghc-tasty)
6029 ("ghc-tasty-hunit" ,ghc-tasty-hunit)))
6030 (home-page "https://github.com/hslua/hslua-module-text")
6031 (synopsis "Lua module for text")
6032 (description
6033 "This package provides a UTF-8 aware subset of Lua's @code{string} module
6034for Haskell. The functions provided by this module are @code{upper},
6035@code{lower}, @code{len}, @code{reverse}, and @code{sub}.")
6036 (license license:expat)))
6037
fac520bf
TS
6038(define-public ghc-hsyaml
6039 (package
6040 (name "ghc-hsyaml")
6041 (version "0.1.2.0")
6042 (source
6043 (origin
6044 (method url-fetch)
6045 (uri (string-append "https://hackage.haskell.org/package/"
6046 "HsYAML/HsYAML-" version ".tar.gz"))
6047 (sha256
6048 (base32
6049 "1pajfhj16559v64ixm8j7bvxdqmxg6c3c0z3wz7in8ckswgzfp54"))))
6050 (build-system haskell-build-system)
6051 (arguments
6052 `(#:cabal-revision
6053 ("1" "0j6qmmcz5yqh89hs2cq453maix50q61vl2h0ahj5lg02bygn42cf")))
6054 (home-page "https://github.com/haskell-hvr/HsYAML")
6055 (synopsis "Pure Haskell YAML 1.2 parser")
6056 (description "This library provides a
6057@url{http://yaml.org/spec/1.2/spec.html, YAML 1.2} parser implementation
6058for Haskell. Its features include:
6059
6060@itemize
6061@item Pure Haskell implementation with small dependency footprint and
6062emphasis on strict compliance with the YAML 1.2 specification.
6063
6064@item Direct decoding to native Haskell types via (aeson-inspired)
6065typeclass-based API (see @code{Data.YAML}).
6066
6067@item Support for constructing custom YAML node graph
6068representation (including support for cyclic YAML data structures).
6069
6070@item Support for the standard (untyped) @emph{Failsafe}, (strict)
6071@emph{JSON}, and (flexible) @emph{Core} ``schemas'' providing implicit
6072typing rules as defined in the YAML 1.2 specification (including support
6073for user-defined custom schemas).
6074
6075@item Event-based API resembling LibYAML's Event-based API (see
6076@code{Data.YAML.Event}).
6077
6078@item Low-level API access to lexical token-based scanner (see
6079@code{Data.YAML.Token}).
6080@end itemize")
6081 (license license:gpl2+)))
6082
dddbc90c
RV
6083(define-public ghc-http-api-data
6084 (package
6085 (name "ghc-http-api-data")
a57236eb 6086 (version "0.4.1")
dddbc90c
RV
6087 (source
6088 (origin
6089 (method url-fetch)
6090 (uri (string-append "https://hackage.haskell.org/package/"
6091 "http-api-data-" version "/"
6092 "http-api-data-" version ".tar.gz"))
6093 (sha256
6094 (base32
a57236eb 6095 "1ps4bvln43gz72dr9mc3c9n1rn38c4rz6m49vxzz9nz6jz1978rv"))))
dddbc90c 6096 (build-system haskell-build-system)
dddbc90c
RV
6097 (inputs `(("ghc-attoparsec" ,ghc-attoparsec)
6098 ("ghc-attoparsec-iso8601" ,ghc-attoparsec-iso8601)
a57236eb 6099 ("ghc-cookie" ,ghc-cookie)
dddbc90c
RV
6100 ("ghc-hashable" ,ghc-hashable)
6101 ("ghc-http-types" ,ghc-http-types)
a57236eb 6102 ("ghc-time-compat" ,ghc-time-compat)
dddbc90c 6103 ("ghc-unordered-containers" ,ghc-unordered-containers)
dddbc90c 6104 ("ghc-uuid-types" ,ghc-uuid-types)))
a57236eb
TS
6105 (native-inputs
6106 `(("cabal-doctest" ,cabal-doctest)
6107 ("ghc-nats" ,ghc-nats)
6108 ("ghc-hunit" ,ghc-hunit)
6109 ("ghc-hspec" ,ghc-hspec)
6110 ("ghc-quickcheck" ,ghc-quickcheck)
6111 ("ghc-quickcheck-instances" ,ghc-quickcheck-instances)
6112 ("ghc-doctest" ,ghc-doctest)
6113 ("hspec-discover" ,hspec-discover)))
dddbc90c
RV
6114 (home-page "https://github.com/fizruk/http-api-data")
6115 (synopsis "Convert to/from HTTP API data like URL pieces, headers and
6116query parameters")
6117 (description "This Haskell package defines typeclasses used for converting
6118Haskell data types to and from HTTP API data.")
6119 (license license:bsd-3)))
6120
6121(define-public ghc-ieee754
6122 (package
6123 (name "ghc-ieee754")
6124 (version "0.8.0")
6125 (source (origin
6126 (method url-fetch)
6127 (uri (string-append
6128 "https://hackage.haskell.org/package/ieee754/"
6129 "ieee754-" version ".tar.gz"))
6130 (sha256
6131 (base32
6132 "1lcs521g9lzy9d7337vg4w7q7s8500rfqy7rcifcz6pm6yfgyb8f"))))
6133 (build-system haskell-build-system)
6134 (home-page "https://github.com/patperry/hs-ieee754")
6135 (synopsis "Utilities for dealing with IEEE floating point numbers")
6136 (description "Utilities for dealing with IEEE floating point numbers,
6137ported from the Tango math library; approximate and exact equality comparisons
6138for general types.")
6139 (license license:bsd-3)))
6140
6141(define-public ghc-ifelse
6142 (package
6143 (name "ghc-ifelse")
6144 (version "0.85")
6145 (source
6146 (origin
6147 (method url-fetch)
6148 (uri (string-append "https://hackage.haskell.org/package/"
6149 "IfElse/IfElse-" version ".tar.gz"))
6150 (sha256
6151 (base32
6152 "1kfx1bwfjczj93a8yqz1n8snqiq5655qgzwv1lrycry8wb1vzlwa"))))
6153 (build-system haskell-build-system)
3ef91e15 6154 (home-page "https://hackage.haskell.org/package/IfElse")
dddbc90c
RV
6155 (synopsis "Monadic control flow with anaphoric variants")
6156 (description "This library provides functions for control flow inside of
6157monads with anaphoric variants on @code{if} and @code{when} and a C-like
6158@code{switch} function.")
6159 (license license:bsd-3)))
6160
6161(define-public ghc-indents
6162 (package
6163 (name "ghc-indents")
d66473fb 6164 (version "0.5.0.1")
dddbc90c
RV
6165 (source (origin
6166 (method url-fetch)
6167 (uri (string-append
6168 "https://hackage.haskell.org/package/indents/indents-"
6169 version ".tar.gz"))
6170 (sha256
6171 (base32
d66473fb 6172 "0dpcwiz0dwn5aqdsc50plfaawh86adhf7jx5dsmhn5q5nz32qn51"))))
dddbc90c
RV
6173 (build-system haskell-build-system)
6174 ;; This package needs an older version of tasty.
6175 (arguments '(#:tests? #f))
6176 (inputs
6177 `(("ghc-concatenative" ,ghc-concatenative)))
6178 (native-inputs
6179 `(("ghc-tasty" ,ghc-tasty)
6180 ("ghc-tasty-hunit" ,ghc-tasty-hunit)))
6181 (home-page "http://patch-tag.com/r/salazar/indents")
6182 (synopsis "Indentation sensitive parser-combinators for parsec")
6183 (description
6184 "This library provides functions for use in parsing indentation sensitive
6185contexts. It parses blocks of lines all indented to the same level as well as
6186lines continued at an indented level below.")
6187 (license license:bsd-3)))
6188
1f656b17
TS
6189(define-public ghc-infer-license
6190 (package
6191 (name "ghc-infer-license")
6192 (version "0.2.0")
6193 (source
6194 (origin
6195 (method url-fetch)
6196 (uri (string-append "https://hackage.haskell.org/package/"
6197 "infer-license/infer-license-" version ".tar.gz"))
6198 (sha256
6199 (base32
6200 "0wlfm6bf55kfvm74xar9lmjg5v1103rs9m3grw1rq5bmcmhzxrhj"))))
6201 (build-system haskell-build-system)
6202 (inputs
6203 `(("ghc-text-metrics" ,ghc-text-metrics)))
6204 (native-inputs
6205 `(("ghc-hspec" ,ghc-hspec)
6206 ("hspec-discover" ,hspec-discover)))
3ef91e15 6207 (home-page "https://hackage.haskell.org/package/infer-license")
1f656b17
TS
6208 (synopsis "Infer software license from a given license file")
6209 (description "This library provides tools to infer a software
6210license from a given license file.")
6211 (license license:expat)))
6212
dddbc90c
RV
6213(define-public ghc-inline-c
6214 (package
6215 (name "ghc-inline-c")
55ec98f2 6216 (version "0.7.0.1")
dddbc90c
RV
6217 (source
6218 (origin
6219 (method url-fetch)
6220 (uri (string-append "https://hackage.haskell.org/package/inline-c/"
6221 "inline-c-" version ".tar.gz"))
6222 (sha256
6223 (base32
55ec98f2 6224 "19scbviwiv1fbsdcjji3dscjg7w0xa8r97xwkqqrwm7zhvrg5wns"))))
dddbc90c
RV
6225 (build-system haskell-build-system)
6226 (inputs
6227 `(("ghc-ansi-wl-pprint" ,ghc-ansi-wl-pprint)
6228 ("ghc-cryptohash" ,ghc-cryptohash)
6229 ("ghc-hashable" ,ghc-hashable)
6230 ("ghc-parsers" ,ghc-parsers)
6231 ("ghc-unordered-containers" ,ghc-unordered-containers)
6232 ("ghc-vector" ,ghc-vector)))
6233 (native-inputs
6234 `(("ghc-quickcheck" ,ghc-quickcheck)
6235 ("ghc-hspec" ,ghc-hspec)
6236 ("ghc-raw-strings-qq" ,ghc-raw-strings-qq)
6237 ("ghc-regex-posix" ,ghc-regex-posix)))
3ef91e15 6238 (home-page "https://hackage.haskell.org/package/inline-c")
dddbc90c
RV
6239 (synopsis "Write Haskell source files including C code inline")
6240 (description
6241 "inline-c lets you seamlessly call C libraries and embed high-performance
6242inline C code in Haskell modules. Haskell and C can be freely intermixed in
6243the same source file, and data passed to and from code in either language with
6244minimal overhead. No FFI required.")
6245 (license license:expat)))
6246
6247(define-public ghc-inline-c-cpp
6248 (package
6249 (name "ghc-inline-c-cpp")
cae58e56 6250 (version "0.3.0.3")
dddbc90c
RV
6251 (source
6252 (origin
6253 (method url-fetch)
6254 (uri (string-append "https://hackage.haskell.org/package/inline-c-cpp/"
6255 "inline-c-cpp-" version ".tar.gz"))
6256 (sha256
6257 (base32
cae58e56 6258 "1sxwx9dh60qfpa72dymj015zwd6prhb70x5mkabqzi7nhg3aakln"))))
dddbc90c
RV
6259 (build-system haskell-build-system)
6260 (inputs
6261 `(("ghc-inline-c" ,ghc-inline-c)
6262 ("ghc-safe-exceptions" ,ghc-safe-exceptions)))
6263 (native-inputs
6264 `(("ghc-hspec" ,ghc-hspec)))
6265 (home-page "https://hackage.haskell.org/package/inline-c-cpp")
6266 (synopsis "Lets you embed C++ code into Haskell")
6267 (description
6268 "This package provides utilities to inline C++ code into Haskell using
6269@code{inline-c}.")
6270 (license license:expat)))
6271
6272(define-public ghc-integer-logarithms
6273 (package
6274 (name "ghc-integer-logarithms")
86a704db 6275 (version "1.0.3")
dddbc90c
RV
6276 (source
6277 (origin
6278 (method url-fetch)
6279 (uri (string-append "https://hackage.haskell.org/package/"
6280 "integer-logarithms/integer-logarithms-"
6281 version ".tar.gz"))
6282 (sha256
6283 (base32
86a704db 6284 "05pc5hws66csvcvfswlwcr2fplwn1lbssvwifjxkbbwqhq0n5qjs"))))
dddbc90c
RV
6285 (build-system haskell-build-system)
6286 (arguments
6287 `(#:phases
6288 (modify-phases %standard-phases
6289 (add-before 'configure 'update-constraints
6290 (lambda _
6291 (substitute* "integer-logarithms.cabal"
6292 (("tasty >= 0\\.10 && < 1\\.1")
6293 "tasty >= 0.10 && < 1.2")))))))
6294 (native-inputs
6295 `(("ghc-quickcheck" ,ghc-quickcheck)
6296 ("ghc-smallcheck" ,ghc-smallcheck)
6297 ("ghc-tasty" ,ghc-tasty)
6298 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
6299 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
6300 ("ghc-tasty-smallcheck" ,ghc-tasty-smallcheck)))
6301 (home-page "https://github.com/Bodigrim/integer-logarithms")
6302 (synopsis "Integer logarithms")
6303 (description
6304 "This package provides the following modules:
6305@code{Math.NumberTheory.Logarithms} and
6306@code{Math.NumberTheory.Powers.Integer} from the @code{arithmoi} package,
6307@code{GHC.Integer.Logarithms.Compat} and
6308@code{Math.NumberTheory.Power.Natural}, as well as some additional functions
6309in migrated modules.")
6310 (license license:expat)))
6311
6312(define-public ghc-integer-logarithms-bootstrap
6313 (package
6314 (inherit ghc-integer-logarithms)
6315 (name "ghc-integer-logarithms-bootstrap")
6316 (arguments `(#:tests? #f))
6317 (native-inputs '())
799d8d3c 6318 (properties '((hidden? #t)))))
dddbc90c
RV
6319
6320(define-public ghc-interpolate
6321 (package
6322 (name "ghc-interpolate")
6323 (version "0.2.0")
6324 (source
6325 (origin
6326 (method url-fetch)
6327 (uri (string-append "https://hackage.haskell.org/package/interpolate/"
6328 "interpolate-" version ".tar.gz"))
6329 (sha256
6330 (base32
6331 "1gkaj98yz363v38fv78sqby236mp8yqwqcilx7kr2b9z0w3204bf"))))
6332 (build-system haskell-build-system)
6333 (inputs
6334 `(("ghc-haskell-src-meta" ,ghc-haskell-src-meta)))
6335 (native-inputs
6336 `(("ghc-base-compat" ,ghc-base-compat)
6337 ("ghc-hspec" ,ghc-hspec)
6338 ("ghc-quickcheck" ,ghc-quickcheck)
6339 ("ghc-quickcheck-instances" ,ghc-quickcheck-instances)
6340 ("hspec-discover" ,hspec-discover)))
6341 (home-page "https://github.com/sol/interpolate")
6342 (synopsis "String interpolation library")
6343 (description "This package provides a string interpolation library for
6344Haskell.")
6345 (license license:expat)))
6346
6347(define-public ghc-intervalmap
6348 (package
6349 (name "ghc-intervalmap")
e4946e32 6350 (version "0.6.1.1")
dddbc90c
RV
6351 (source
6352 (origin
6353 (method url-fetch)
6354 (uri (string-append "https://hackage.haskell.org/package/IntervalMap/"
6355 "IntervalMap-" version ".tar.gz"))
6356 (sha256
6357 (base32
e4946e32 6358 "0vdlvxvhf7vjyv0mfn6jaj2i2gclqv8419ck32s2jxfcmki5m5g8"))))
dddbc90c
RV
6359 (build-system haskell-build-system)
6360 (native-inputs
6361 `(("ghc-quickcheck" ,ghc-quickcheck)))
6362 (home-page "http://www.chr-breitkopf.de/comp/IntervalMap")
6363 (synopsis "Containers for intervals, with efficient search")
6364 (description
6365 "This package provides ordered containers of intervals, with efficient
6366search for all keys containing a point or overlapping an interval. See the
6367example code on the home page for a quick introduction.")
6368 (license license:bsd-3)))
6369
f7ca1fa8
TS
6370(define-public ghc-intervals
6371 (package
6372 (name "ghc-intervals")
6373 (version "0.8.1")
6374 (source
6375 (origin
6376 (method url-fetch)
6377 (uri (string-append "https://hackage.haskell.org/package/"
6378 "intervals/intervals-" version ".tar.gz"))
6379 (sha256
6380 (base32
6381 "00vyxf3ba9d7aas3npfapr53w71fslgh69fczjb25axr66fvzqww"))))
6382 (build-system haskell-build-system)
6383 (inputs
6384 `(("ghc-distributive" ,ghc-distributive)))
6385 (native-inputs
6386 `(("cabal-doctest" ,cabal-doctest)
6387 ("ghc-doctest" ,ghc-doctest)
6388 ("ghc-quickcheck" ,ghc-quickcheck)))
6389 (arguments
6390 `(#:cabal-revision
6391 ("4" "1qx3q0v13l1zaln9zdk8chxpxhshbz5x0vqm0qda7d1kpv7h6a7r")))
6392 (home-page "https://github.com/ekmett/intervals")
6393 (synopsis "Interval arithmetic")
6394 (description "This library provides
6395@code{Numeric.Interval.Interval}, which represets a closed, convex set
6396of floating point values.")
6397 (license license:bsd-3)))
6398
dddbc90c
RV
6399(define-public ghc-invariant
6400 (package
6401 (name "ghc-invariant")
d3a0e0b4 6402 (version "0.5.3")
dddbc90c
RV
6403 (source
6404 (origin
6405 (method url-fetch)
6406 (uri (string-append
6407 "https://hackage.haskell.org/package/invariant/invariant-"
6408 version ".tar.gz"))
6409 (sha256
6410 (base32
d3a0e0b4 6411 "03245nhcqxx6b0yw81fzqaqd7cgllmx8awzhvs2xv7ys73pmsgnp"))))
dddbc90c
RV
6412 (build-system haskell-build-system)
6413 (inputs
6414 `(("ghc-bifunctors" ,ghc-bifunctors)
6415 ("ghc-comonad" ,ghc-comonad)
6416 ("ghc-contravariant" ,ghc-contravariant)
6417 ("ghc-profunctors" ,ghc-profunctors)
6418 ("ghc-semigroups" ,ghc-semigroups)
6419 ("ghc-statevar" ,ghc-statevar)
6420 ("ghc-tagged" ,ghc-tagged)
6421 ("ghc-th-abstraction" ,ghc-th-abstraction)
6422 ("ghc-transformers-compat" ,ghc-transformers-compat)
6423 ("ghc-unordered-containers" ,ghc-unordered-containers)))
6424 (native-inputs
6425 `(("ghc-hspec" ,ghc-hspec)
6426 ("ghc-quickcheck" ,ghc-quickcheck)
6427 ("hspec-discover" ,hspec-discover)))
6428 (home-page "https://github.com/nfrisby/invariant-functors")
6429 (synopsis "Haskell98 invariant functors")
6430 (description "Haskell98 invariant functors (also known as exponential
6431functors). For more information, see Edward Kmett's article
6432@uref{http://comonad.com/reader/2008/rotten-bananas/, Rotten Bananas}.")
6433 (license license:bsd-2)))
6434
6435(define-public ghc-io-streams
6436 (package
6437 (name "ghc-io-streams")
59e98d75 6438 (version "1.5.1.0")
dddbc90c
RV
6439 (source
6440 (origin
6441 (method url-fetch)
6442 (uri (string-append "https://hackage.haskell.org/package/"
6443 "io-streams/io-streams-" version ".tar.gz"))
6444 (sha256
6445 (base32
59e98d75 6446 "1c7byr943x41nxpc3bnz152fvfbmakafq2958wyf9qiyp2pz18la"))))
dddbc90c
RV
6447 (build-system haskell-build-system)
6448 (inputs
6449 `(("ghc-attoparsec" ,ghc-attoparsec)
6450 ("ghc-bytestring-builder" ,ghc-bytestring-builder)
6451 ("ghc-network" ,ghc-network)
6452 ("ghc-primitive" ,ghc-primitive)
6453 ("ghc-vector" ,ghc-vector)
6454 ("ghc-zlib-bindings" ,ghc-zlib-bindings)))
6455 (native-inputs
6456 `(("ghc-hunit" ,ghc-hunit)
6457 ("ghc-quickcheck" ,ghc-quickcheck)
6458 ("ghc-test-framework" ,ghc-test-framework)
6459 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
6460 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)
6461 ("ghc-zlib" ,ghc-zlib)))
3ef91e15 6462 (home-page "https://hackage.haskell.org/package/io-streams")
dddbc90c
RV
6463 (synopsis "Simple and composable stream I/O")
6464 (description "This library contains simple and easy-to-use
6465primitives for I/O using streams.")
6466 (license license:bsd-3)))
6467
6468(define-public ghc-io-streams-haproxy
6469 (package
6470 (name "ghc-io-streams-haproxy")
1a4fbc36 6471 (version "1.0.1.0")
dddbc90c
RV
6472 (source
6473 (origin
6474 (method url-fetch)
6475 (uri (string-append "https://hackage.haskell.org/package/"
6476 "io-streams-haproxy/io-streams-haproxy-"
6477 version ".tar.gz"))
6478 (sha256
6479 (base32
1a4fbc36 6480 "1dcn5hd4fiwyq7m01r6fi93vfvygca5s6mz87c78m0zyj29clkmp"))))
dddbc90c
RV
6481 (build-system haskell-build-system)
6482 (inputs
6483 `(("ghc-attoparsec" ,ghc-attoparsec)
6484 ("ghc-io-streams" ,ghc-io-streams)
6485 ("ghc-network" ,ghc-network)))
6486 (native-inputs
6487 `(("ghc-hunit" ,ghc-hunit)
6488 ("ghc-test-framework" ,ghc-test-framework)
6489 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)))
dddbc90c
RV
6490 (home-page "http://snapframework.com/")
6491 (synopsis "HAProxy protocol 1.5 support for io-streams")
6492 (description "HAProxy protocol version 1.5 support
6493(see @uref{http://haproxy.1wt.eu/download/1.5/doc/proxy-protocol.txt})
6494for applications using io-streams. The proxy protocol allows information
6495about a networked peer (like remote address and port) to be propagated
6496through a forwarding proxy that is configured to speak this protocol.")
6497 (license license:bsd-3)))
6498
6499(define-public ghc-iproute
6500 (package
6501 (name "ghc-iproute")
ec25d536 6502 (version "1.7.7")
dddbc90c
RV
6503 (source
6504 (origin
6505 (method url-fetch)
6506 (uri (string-append
6507 "https://hackage.haskell.org/package/iproute/iproute-"
6508 version
6509 ".tar.gz"))
6510 (sha256
6511 (base32
ec25d536 6512 "0gab5930nvzrpvisx3x43ydnp2rd4fbmy9cq1zpgqy1adx5gx8z6"))))
dddbc90c
RV
6513 (build-system haskell-build-system)
6514 (arguments `(#:tests? #f)) ; FIXME: Tests cannot find System.ByteOrder,
6515 ; exported by ghc-byteorder. Doctest issue.
6516 (inputs
6517 `(("ghc-appar" ,ghc-appar)
6518 ("ghc-byteorder" ,ghc-byteorder)
6519 ("ghc-network" ,ghc-network)
6520 ("ghc-safe" ,ghc-safe)))
6521 (home-page "https://www.mew.org/~kazu/proj/iproute/")
6522 (synopsis "IP routing table")
6523 (description "IP Routing Table is a tree of IP ranges to search one of
6524them on the longest match base. It is a kind of TRIE with one way branching
6525removed. Both IPv4 and IPv6 are supported.")
6526 (license license:bsd-3)))
6527
4828e54e
TS
6528(define-public ghc-ipynb
6529 (package
6530 (name "ghc-ipynb")
6531 (version "0.1")
6532 (source
6533 (origin
6534 (method url-fetch)
6535 (uri (string-append "https://hackage.haskell.org/package/"
6536 "ipynb/ipynb-" version ".tar.gz"))
6537 (sha256
6538 (base32
6539 "0daadhzil4q573mqb0rpvjzm0vpkzgzqcimw480qpvlh6rhppwj5"))))
6540 (build-system haskell-build-system)
6541 (inputs
6542 `(("ghc-unordered-containers" ,ghc-unordered-containers)
6543 ("ghc-base64-bytestring" ,ghc-base64-bytestring)
6544 ("ghc-aeson" ,ghc-aeson)
6545 ("ghc-semigroups" ,ghc-semigroups)))
6546 (native-inputs
6547 `(("ghc-tasty" ,ghc-tasty)
6548 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
6549 ("ghc-aeson-diff" ,ghc-aeson-diff)
6550 ("ghc-microlens-aeson" ,ghc-microlens-aeson)
6551 ("ghc-microlens" ,ghc-microlens)
6552 ("ghc-vector" ,ghc-vector)))
6553 (home-page "https://hackage.haskell.org/package/ipynb")
6554 (synopsis "Data structure for working with Jupyter notebooks")
6555 (description "This library defines a data structure for representing
6556Jupyter notebooks, along with @code{ToJSON} and @code{FromJSON}
6557instances for conversion to and from JSON .ipynb files.")
6558 (license license:bsd-3)))
6559
dddbc90c
RV
6560(define-public ghc-iwlib
6561 (package
6562 (name "ghc-iwlib")
6563 (version "0.1.0")
6564 (source
6565 (origin
6566 (method url-fetch)
6567 (uri (string-append "https://hackage.haskell.org/package/iwlib/iwlib-"
6568 version ".tar.gz"))
6569 (sha256
6570 (base32 "0khmfwql4vwj55idsxmhjhrbqzfir3g9wm5lmpvnf77mm95cfpdz"))))
6571 (build-system haskell-build-system)
54a5fd07
TS
6572 (arguments
6573 `(#:extra-directories ("wireless-tools")))
dddbc90c
RV
6574 (inputs
6575 `(("wireless-tools" ,wireless-tools)))
6576 (home-page "https://github.com/jaor/iwlib")
6577 (synopsis "Haskell binding to the iw wireless networking library")
6578 (description
6579 "IWlib is a thin Haskell binding to the iw C library. It provides
6580information about the current wireless network connections, and adapters on
6581supported systems.")
6582 (license license:bsd-3)))
6583
6584(define-public ghc-json
6585 (package
6586 (name "ghc-json")
0ad3d574 6587 (version "0.9.3")
dddbc90c
RV
6588 (source
6589 (origin
6590 (method url-fetch)
6591 (uri (string-append "https://hackage.haskell.org/package/json/"
6592 "json-" version ".tar.gz"))
6593 (sha256
6594 (base32
0ad3d574 6595 "1z8s3mfg76p2flqqd2wqsi96l5bg8k8w8m58zlv81pw3k7h1vbwb"))))
dddbc90c
RV
6596 (build-system haskell-build-system)
6597 (inputs
6598 `(("ghc-syb" ,ghc-syb)))
6599 (home-page "https://hackage.haskell.org/package/json")
6600 (synopsis "Serializes Haskell data to and from JSON")
6601 (description "This package provides a parser and pretty printer for
6602converting between Haskell values and JSON.
6603JSON (JavaScript Object Notation) is a lightweight data-interchange format.")
6604 (license license:bsd-3)))
6605
6606(define-public ghc-juicypixels
6607 (package
6608 (name "ghc-juicypixels")
b50b6004 6609 (version "3.3.4")
dddbc90c
RV
6610 (source (origin
6611 (method url-fetch)
6612 (uri (string-append "https://hackage.haskell.org/package/"
6613 "JuicyPixels/JuicyPixels-"
6614 version ".tar.gz"))
6615 (sha256
6616 (base32
b50b6004 6617 "0qacrnz2qcykj3f6c4k2p8qd31pa2slpv3ykfblgizrfh3401q6x"))))
dddbc90c 6618 (build-system haskell-build-system)
a023e7d0 6619 (outputs '("out" "static" "doc"))
dddbc90c
RV
6620 (inputs
6621 `(("ghc-zlib" ,ghc-zlib)
6622 ("ghc-vector" ,ghc-vector)
6623 ("ghc-primitive" ,ghc-primitive)
6624 ("ghc-mmap" ,ghc-mmap)))
6625 (home-page "https://github.com/Twinside/Juicy.Pixels")
6626 (synopsis "Picture loading and serialization library")
6627 (description
6628 "This library can load and store images in PNG, Bitmap, JPEG, Radiance,
6629TIFF and GIF formats.")
6630 (license license:bsd-3)))
6631
6632(define-public ghc-kan-extensions
6633 (package
6634 (name "ghc-kan-extensions")
6635 (version "5.2")
6636 (source
6637 (origin
6638 (method url-fetch)
6639 (uri (string-append
6640 "https://hackage.haskell.org/package/kan-extensions/kan-extensions-"
6641 version
6642 ".tar.gz"))
6643 (sha256
6644 (base32
6645 "1lyvyiwwh962j2nnnsqzlvp5zq6z8p3spvhmji99cjvldxc7wwkb"))))
6646 (build-system haskell-build-system)
6647 (inputs
6648 `(("ghc-adjunctions" ,ghc-adjunctions)
6649 ("ghc-comonad" ,ghc-comonad)
6650 ("ghc-contravariant" ,ghc-contravariant)
6651 ("ghc-distributive" ,ghc-distributive)
6652 ("ghc-free" ,ghc-free)
6653 ("ghc-invariant" ,ghc-invariant)
6654 ("ghc-semigroupoids" ,ghc-semigroupoids)
6655 ("ghc-tagged" ,ghc-tagged)
6656 ("ghc-transformers-compat" ,ghc-transformers-compat)))
6657 (home-page "https://github.com/ekmett/kan-extensions/")
6658 (synopsis "Kan extensions library")
6659 (description "This library provides Kan extensions, Kan lifts, various
6660forms of the Yoneda lemma, and (co)density (co)monads for Haskell.")
6661 (license license:bsd-3)))
6662
6663(define-public ghc-language-c
6664 (package
6665 (name "ghc-language-c")
4e1cf651 6666 (version "0.8.3")
dddbc90c
RV
6667 (source
6668 (origin
6669 (method url-fetch)
6670 (uri (string-append "https://hackage.haskell.org/package/"
6671 "language-c/language-c-" version ".tar.gz"))
6672 (sha256
6673 (base32
4e1cf651 6674 "0bi02jdirkys8v7flf39vrpla2a74z1z0sdhy9lb9v7cmcc6rmpk"))))
dddbc90c
RV
6675 (build-system haskell-build-system)
6676 (inputs `(("ghc-syb" ,ghc-syb)))
6677 (native-inputs
6678 `(("ghc-happy" ,ghc-happy)
6679 ("ghc-alex" ,ghc-alex)))
6680 (home-page "https://visq.github.io/language-c/")
6681 (synopsis "Analysis and generation of C code")
6682 (description
6683 "Language C is a Haskell library for the analysis and generation of C code.
6684It features a complete, well-tested parser and pretty printer for all of C99
6685and a large set of GNU extensions.")
6686 (license license:bsd-3)))
6687
6688(define-public ghc-language-glsl
6689 (package
6690 (name "ghc-language-glsl")
6691 (version "0.3.0")
6692 (source
6693 (origin
6694 (method url-fetch)
6695 (uri (string-append "https://hackage.haskell.org/package/"
6696 "language-glsl/language-glsl-" version ".tar.gz"))
6697 (sha256
6698 (base32
6699 "0hdg67ainlqpjjghg3qin6fg4p783m0zmjqh4rd5gyizwiplxkp1"))))
6700 (build-system haskell-build-system)
6701 (inputs `(("ghc-prettyclass" ,ghc-prettyclass)))
6702 (arguments
6703 `(#:tests? #f
6704 #:cabal-revision
6705 ("1" "10ac9pk4jy75k03j1ns4b5136l4kw8krr2d2nw2fdmpm5jzyghc5")))
3ef91e15 6706 (home-page "https://hackage.haskell.org/package/language-glsl")
dddbc90c
RV
6707 (synopsis "GLSL abstract syntax tree, parser, and pretty-printer")
6708 (description "This package is a Haskell library for the
6709representation, parsing, and pretty-printing of GLSL 1.50 code.")
6710 (license license:bsd-3)))
6711
6712(define-public ghc-language-haskell-extract
6713 (package
6714 (name "ghc-language-haskell-extract")
6715 (version "0.2.4")
6716 (source
6717 (origin
6718 (method url-fetch)
6719 (uri (string-append "https://hackage.haskell.org/package/"
6720 "language-haskell-extract-" version "/"
6721 "language-haskell-extract-" version ".tar.gz"))
6722 (sha256
6723 (base32
6724 "1nxcs7g8a1sp91bzpy4cj6s31k5pvc3gvig04cbrggv5cvjidnhl"))))
6725 (build-system haskell-build-system)
6726 (inputs
6727 `(("ghc-regex-posix" ,ghc-regex-posix)))
6728 (home-page "https://github.com/finnsson/template-helper")
6729 (synopsis "Haskell module to automatically extract functions from
6730the local code")
6731 (description "This package contains helper functions on top of
6732Template Haskell.
6733
6734For example, @code{functionExtractor} extracts all functions after a
6735regexp-pattern, which can be useful if you wish to extract all functions
6736beginning with @code{test} (for a test framework) or all functions beginning
6737with @code{wc} (for a web service).")
6738 (license license:bsd-3)))
6739
6740(define-public ghc-lens
6741 (package
6742 (name "ghc-lens")
262e6323 6743 (version "4.17.1")
dddbc90c
RV
6744 (source
6745 (origin
6746 (method url-fetch)
6747 (uri (string-append "https://hackage.haskell.org/package/lens/lens-"
6748 version ".tar.gz"))
6749 (sha256
6750 (base32
262e6323 6751 "1gpkc53l2cggnfrgg5k4ih82rycjbdvpj9pnbi5cq8ms0dbvs4a7"))))
dddbc90c 6752 (build-system haskell-build-system)
b35361e9 6753 (outputs '("out" "static" "doc"))
dddbc90c
RV
6754 (inputs
6755 `(("ghc-base-orphans" ,ghc-base-orphans)
6756 ("ghc-bifunctors" ,ghc-bifunctors)
6757 ("ghc-distributive" ,ghc-distributive)
6758 ("ghc-exceptions" ,ghc-exceptions)
6759 ("ghc-free" ,ghc-free)
6760 ("ghc-kan-extensions" ,ghc-kan-extensions)
6761 ("ghc-parallel" ,ghc-parallel)
6762 ("ghc-reflection" ,ghc-reflection)
6763 ("ghc-semigroupoids" ,ghc-semigroupoids)
6764 ("ghc-vector" ,ghc-vector)
6765 ("ghc-call-stack" ,ghc-call-stack)
6766 ("ghc-comonad" ,ghc-comonad)
6767 ("ghc-contravariant" ,ghc-contravariant)
6768 ("ghc-hashable" ,ghc-hashable)
6769 ("ghc-profunctors" ,ghc-profunctors)
6770 ("ghc-semigroups" ,ghc-semigroups)
6771 ("ghc-tagged" ,ghc-tagged)
6772 ("ghc-transformers-compat" ,ghc-transformers-compat)
6773 ("ghc-unordered-containers" ,ghc-unordered-containers)
6774 ("ghc-void" ,ghc-void)
6775 ("ghc-generic-deriving" ,ghc-generic-deriving)
6776 ("ghc-nats" ,ghc-nats)
6777 ("ghc-simple-reflect" ,ghc-simple-reflect)
6778 ("hlint" ,hlint)))
6779 (native-inputs
6780 `(("cabal-doctest" ,cabal-doctest)
6781 ("ghc-doctest" ,ghc-doctest)
6782 ("ghc-hunit" ,ghc-hunit)
6783 ("ghc-test-framework" ,ghc-test-framework)
6784 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
6785 ("ghc-test-framework-th" ,ghc-test-framework-th)
6786 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)
6787 ("ghc-quickcheck" ,ghc-quickcheck)))
6788 (home-page "https://github.com/ekmett/lens/")
6789 (synopsis "Lenses, Folds and Traversals")
6790 (description "This library provides @code{Control.Lens}. The combinators
6791in @code{Control.Lens} provide a highly generic toolbox for composing families
6792of getters, folds, isomorphisms, traversals, setters and lenses and their
6793indexed variants.")
6794 (license license:bsd-3)))
6795
bcd35444
JS
6796(define-public ghc-lens-family-core
6797 (package
6798 (name "ghc-lens-family-core")
6799 (version "1.2.3")
6800 (source
6801 (origin
6802 (method url-fetch)
6803 (uri (string-append
6804 "mirror://hackage/package/lens-family-core/lens-family-core-"
6805 version
6806 ".tar.gz"))
6807 (sha256
6808 (base32
6809 "009rf10pj1cb50v44cc1pq7qvfrmkkk9dikahs9qmvbvgl3mykwi"))))
6810 (build-system haskell-build-system)
6811 (home-page
6812 "http://hackage.haskell.org/package/lens-family-core")
6813 (synopsis "Haskell 98 Lens Families")
6814 (description
6815 "This package provides first class functional references. In addition to
6816the usual operations of getting, setting and composition, plus integration
6817with the state monad, lens families provide some unique features:
6818
6819@itemize
6820@item Polymorphic updating
6821@item Traversals
6822@item Cast projection functions to read-only lenses
6823@item Cast @code{toList} functions to read-only traversals
6824@item Cast semantic editor combinators to modify-only traversals
6825@end itemize
6826
6827For optimal first-class support use the lens-family package with rank 2/rank N
6828polymorphism. @code{Lens.Family.Clone} allows for first-class support of
6829lenses and traversals for those who require Haskell 98.")
6830 (license license:bsd-3)))
6831
dddbc90c
RV
6832(define-public ghc-libffi
6833 (package
6834 (name "ghc-libffi")
6835 (version "0.1")
6836 (source
6837 (origin
6838 (method url-fetch)
6839 (uri (string-append "https://hackage.haskell.org/package/"
6840 "libffi/libffi-" version ".tar.gz"))
6841 (sha256
6842 (base32
6843 "0g7jnhng3j7z5517aaqga0144aamibsbpgm3yynwyfzkq1kp0f28"))))
6844 (build-system haskell-build-system)
6845 (native-inputs `(("pkg-config" ,pkg-config)))
6846 (inputs `(("libffi" ,libffi)))
3ef91e15 6847 (home-page "https://hackage.haskell.org/package/libffi")
dddbc90c
RV
6848 (synopsis "Haskell binding to libffi")
6849 (description
6850 "A binding to libffi, allowing C functions of types only known at runtime
6851to be called from Haskell.")
6852 (license license:bsd-3)))
6853
6854(define-public ghc-libmpd
6855 (package
6856 (name "ghc-libmpd")
bbf9845f 6857 (version "0.9.0.10")
dddbc90c
RV
6858 (source
6859 (origin
6860 (method url-fetch)
6861 (uri (string-append
6862 "mirror://hackage/package/libmpd/libmpd-"
6863 version
6864 ".tar.gz"))
6865 (sha256
6866 (base32
bbf9845f 6867 "0vy287mn1vk8kvij5i3hc0p02l886cpsq5dds7kl6g520si3abkb"))))
dddbc90c
RV
6868 (build-system haskell-build-system)
6869 ;; Tests fail on i686.
6870 ;; See https://github.com/vimus/libmpd-haskell/issues/112
6871 (arguments `(#:tests? #f))
6872 (inputs
6873 `(("ghc-attoparsec" ,ghc-attoparsec)
6874 ("ghc-old-locale" ,ghc-old-locale)
6875 ("ghc-data-default-class" ,ghc-data-default-class)
6876 ("ghc-network" ,ghc-network)
bbf9845f 6877 ("ghc-safe-exceptions" ,ghc-safe-exceptions)
dddbc90c
RV
6878 ("ghc-utf8-string" ,ghc-utf8-string)))
6879 (native-inputs
6880 `(("ghc-quickcheck" ,ghc-quickcheck)
6881 ("ghc-hspec" ,ghc-hspec)
6882 ("hspec-discover" ,hspec-discover)))
6883 (home-page "https://github.com/vimus/libmpd-haskell")
6884 (synopsis "Haskell client library for the Music Player Daemon")
6885 (description "This package provides a pure Haskell client library for the
6886Music Player Daemon.")
6887 (license license:expat)))
6888
e34df1c3
TS
6889(define-public ghc-lib-parser
6890 (package
6891 (name "ghc-lib-parser")
6892 (version "8.8.0.20190424")
6893 (source
6894 (origin
6895 (method url-fetch)
6896 (uri (string-append "https://hackage.haskell.org/package/"
6897 "ghc-lib-parser/ghc-lib-parser-" version ".tar.gz"))
6898 (sha256
6899 (base32
6900 "12gsh994pr13bsybwlravmi21la66dyw74pk74yfw2pnz682wv10"))))
6901 (build-system haskell-build-system)
7e62ebb3 6902 (outputs '("out" "static" "doc")) ; documentation is 39M
e34df1c3
TS
6903 (native-inputs
6904 `(("ghc-alex" ,ghc-alex)
6905 ("ghc-happy" ,ghc-happy)))
6906 (home-page "https://github.com/digital-asset/ghc-lib")
6907 (synopsis "The GHC API, decoupled from GHC versions")
6908 (description "This library implements the GHC API. It is like the
6909compiler-provided @code{ghc} package, but it can be loaded on many
6910compiler versions.")
6911 (license license:bsd-3)))
6912
dddbc90c
RV
6913(define-public ghc-libxml
6914 (package
6915 (name "ghc-libxml")
6916 (version "0.1.1")
6917 (source
6918 (origin
6919 (method url-fetch)
6920 (uri (string-append "https://hackage.haskell.org/package/libxml/"
6921 "libxml-" version ".tar.gz"))
6922 (sha256
6923 (base32
6924 "01zvk86kg726lf2vnlr7dxiz7g3xwi5a4ak9gcfbwyhynkzjmsfi"))))
6925 (build-system haskell-build-system)
6926 (inputs
6927 `(("libxml2" ,libxml2)))
6928 (arguments
6929 `(#:configure-flags
6930 `(,(string-append "--extra-include-dirs="
6931 (assoc-ref %build-inputs "libxml2")
6932 "/include/libxml2"))))
6933 (home-page "https://hackage.haskell.org/package/libxml")
6934 (synopsis "Haskell bindings to libxml2")
6935 (description
6936 "This library provides minimal Haskell binding to libxml2.")
6937 (license license:bsd-3)))
6938
0c2d6fc2
TS
6939(define-public ghc-libyaml
6940 (package
6941 (name "ghc-libyaml")
6942 (version "0.1.1.0")
6943 (source
6944 (origin
6945 (method url-fetch)
6946 (uri (string-append "https://hackage.haskell.org/package/"
6947 "libyaml/libyaml-" version ".tar.gz"))
6948 (sha256
6949 (base32
6950 "0psznm9c3yjsyj9aj8m2svvv9m2v0x90hnwarcx5sbswyi3l00va"))
6951 (modules '((guix build utils)))
6952 (snippet
6953 ;; Delete bundled LibYAML.
6954 '(begin
6955 (delete-file-recursively "libyaml_src")
6956 #t))))
6957 (build-system haskell-build-system)
6958 (arguments
54a5fd07
TS
6959 `(#:configure-flags `("--flags=system-libyaml")
6960 #:extra-directories ("libyaml")))
0c2d6fc2
TS
6961 (inputs
6962 `(("ghc-conduit" ,ghc-conduit)
6963 ("ghc-resourcet" ,ghc-resourcet)
1b35d303 6964 ("libyaml" ,libyaml)))
0c2d6fc2
TS
6965 (home-page "https://github.com/snoyberg/yaml#readme")
6966 (synopsis "Low-level, streaming YAML interface.")
6967 (description "This package provides a Haskell wrapper over the
6968LibYAML C library.")
6969 (license license:bsd-3)))
6970
dddbc90c
RV
6971(define-public ghc-lifted-async
6972 (package
6973 (name "ghc-lifted-async")
b5b6d7ea 6974 (version "0.10.0.4")
dddbc90c
RV
6975 (source
6976 (origin
6977 (method url-fetch)
6978 (uri (string-append
6979 "https://hackage.haskell.org/package/lifted-async/lifted-async-"
6980 version ".tar.gz"))
6981 (sha256
6982 (base32
b5b6d7ea 6983 "0cwl1d0wjpdk0v1l1qxiqiksmak950c8gx169c1q77cg0z18ijf9"))))
dddbc90c
RV
6984 (build-system haskell-build-system)
6985 (inputs
6986 `(("ghc-async" ,ghc-async)
6987 ("ghc-lifted-base" ,ghc-lifted-base)
6988 ("ghc-transformers-base" ,ghc-transformers-base)
6989 ("ghc-monad-control" ,ghc-monad-control)
6990 ("ghc-constraints" ,ghc-constraints)
6991 ("ghc-hunit" ,ghc-hunit)
6992 ("ghc-tasty" ,ghc-tasty)
6993 ("ghc-tasty-expected-failure" ,ghc-tasty-expected-failure)
6994 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
6995 ("ghc-tasty-th" ,ghc-tasty-th)))
6996 (home-page "https://github.com/maoe/lifted-async")
6997 (synopsis "Run lifted IO operations asynchronously and wait for their results")
6998 (description
6999 "This package provides IO operations from @code{async} package lifted to any
7000instance of @code{MonadBase} or @code{MonadBaseControl}.")
7001 (license license:bsd-3)))
7002
7003(define-public ghc-lifted-base
7004 (package
7005 (name "ghc-lifted-base")
7006 (version "0.2.3.12")
7007 (source
7008 (origin
7009 (method url-fetch)
7010 (uri (string-append
7011 "https://hackage.haskell.org/package/lifted-base/lifted-base-"
7012 version
7013 ".tar.gz"))
7014 (sha256
7015 (base32
7016 "1i8p8d3rkdh21bhgjjh32vd7qqjr7jq7p59qds0aw2kmargsjd61"))))
7017 (build-system haskell-build-system)
7018 (arguments `(#:tests? #f)) ; FIXME: Missing testing libraries.
7019 (inputs
7020 `(("ghc-transformers-base" ,ghc-transformers-base)
7021 ("ghc-monad-control" ,ghc-monad-control)
7022 ("ghc-transformers-compat" ,ghc-transformers-compat)
7023 ("ghc-hunit" ,ghc-hunit)))
7024 (home-page "https://github.com/basvandijk/lifted-base")
7025 (synopsis "Lifted IO operations from the base library")
7026 (description "Lifted-base exports IO operations from the @code{base}
7027library lifted to any instance of @code{MonadBase} or @code{MonadBaseControl}.
7028Note that not all modules from @code{base} are converted yet. The package
7029includes a copy of the @code{monad-peel} test suite written by Anders
7030Kaseorg.")
7031 (license license:bsd-3)))
7032
7033(define-public ghc-linear
7034 (package
7035 (name "ghc-linear")
86526f37 7036 (version "1.20.9")
dddbc90c
RV
7037 (source
7038 (origin
7039 (method url-fetch)
7040 (uri (string-append "https://hackage.haskell.org/package/linear/"
7041 "linear-" version ".tar.gz"))
7042 (sha256
7043 (base32
86526f37 7044 "0h7yqigq593n7wsl7nz6a5f137wznm7y679wsii0ph0zsc4v5af5"))))
dddbc90c
RV
7045 (build-system haskell-build-system)
7046 (inputs
7047 `(("ghc-adjunctions" ,ghc-adjunctions)
7048 ("ghc-base-orphans" ,ghc-base-orphans)
7049 ("ghc-bytes" ,ghc-bytes)
7050 ("ghc-cereal" ,ghc-cereal)
7051 ("ghc-distributive" ,ghc-distributive)
7052 ("ghc-hashable" ,ghc-hashable)
7053 ("ghc-lens" ,ghc-lens)
7054 ("ghc-reflection" ,ghc-reflection)
7055 ("ghc-semigroups" ,ghc-semigroups)
7056 ("ghc-semigroupoids" ,ghc-semigroupoids)
7057 ("ghc-tagged" ,ghc-tagged)
7058 ("ghc-transformers-compat" ,ghc-transformers-compat)
7059 ("ghc-unordered-containers" ,ghc-unordered-containers)
7060 ("ghc-vector" ,ghc-vector)
7061 ("ghc-void" ,ghc-void)))
7062 (native-inputs
7063 `(("cabal-doctest" ,cabal-doctest)
7064 ("ghc-doctest" ,ghc-doctest)
7065 ("ghc-simple-reflect" ,ghc-simple-reflect)
7066 ("ghc-test-framework" ,ghc-test-framework)
7067 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
7068 ("ghc-hunit" ,ghc-hunit)))
702a1012 7069 (home-page "https://github.com/ekmett/linear/")
dddbc90c
RV
7070 (synopsis "Linear algebra library for Haskell")
7071 (description
7072 "This package provides types and combinators for linear algebra on free
7073vector spaces.")
7074 (license license:bsd-3)))
1307e4c7
JS
7075
7076(define-public ghc-listlike
7077 (package
7078 (name "ghc-listlike")
7079 (version "4.6.2")
7080 (source
7081 (origin
7082 (method url-fetch)
7083 (uri
7084 (string-append
7085 "https://hackage.haskell.org/package/ListLike/ListLike-"
7086 version ".tar.gz"))
7087 (sha256
7088 (base32
7089 "0m65x8yaq7q50gznln8mga2wrc8cvjx6gw9rim8s7xqcrx6y5zjh"))))
7090 (build-system haskell-build-system)
7091 (inputs
7092 `(("ghc-vector" ,ghc-vector)
7093 ("ghc-dlist" ,ghc-dlist)
7094 ("ghc-fmlist" ,ghc-fmlist)
7095 ("ghc-hunit" ,ghc-hunit)
7096 ("ghc-quickcheck" ,ghc-quickcheck)
7097 ("ghc-random" ,ghc-random)
7098 ("ghc-utf8-string" ,ghc-utf8-string)))
7099 (home-page "https://github.com/JohnLato/listlike")
7100 (synopsis "Generic support for list-like structures")
7101 (description "The ListLike module provides a common interface to the
7102various Haskell types that are list-like. Predefined interfaces include
7103standard Haskell lists, Arrays, ByteStrings, and lazy ByteStrings.
7104Custom types can easily be made ListLike instances as well.
7105
7106ListLike also provides for String-like types, such as String and
7107ByteString, for types that support input and output, and for types that
7108can handle infinite lists.")
7109 (license license:bsd-3)))
dddbc90c 7110
84436be0
J
7111(define-public ghc-llvm-hs-pure
7112 (package
7113 (name "ghc-llvm-hs-pure")
7114 (version "9.0.0")
7115 (source
7116 (origin
7117 (method url-fetch)
7118 (uri (string-append "https://hackage.haskell.org/package/llvm-hs-pure/"
7119 "llvm-hs-pure-" version ".tar.gz"))
7120 (sha256
7121 (base32
7122 "0pxb5ah8r5pzpz2ibqw3g9g1isigb4z7pbzfrwr8kmcjn74ab3kf"))))
7123 (build-system haskell-build-system)
7124 (inputs
7125 `(("ghc-attoparsec" ,ghc-attoparsec)
7126 ("ghc-fail" ,ghc-fail)
7127 ("ghc-unordered-containers" ,ghc-unordered-containers)))
7128 (native-inputs
7129 `(("ghc-tasty" ,ghc-tasty)
7130 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
7131 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
7132 (home-page "https://github.com/llvm-hs/llvm-hs/")
7133 (synopsis "Pure Haskell LLVM functionality (no FFI)")
7134 (description "llvm-hs-pure is a set of pure Haskell types and functions
7135for interacting with LLVM. It includes an algebraic datatype (ADT) to represent
7136LLVM IR. The llvm-hs package builds on this one with FFI bindings to LLVM, but
7137llvm-hs-pure does not require LLVM to be available.")
7138 (license license:bsd-3)))
7139
e3ee8023
J
7140(define-public ghc-llvm-hs
7141 (package
7142 (name "ghc-llvm-hs")
7143 (version "9.0.1")
7144 (source
7145 (origin
7146 (method url-fetch)
7147 (uri (string-append "https://hackage.haskell.org/package/llvm-hs/llvm-hs-"
7148 version ".tar.gz"))
7149 (sha256
7150 (base32
7151 "0723xgh45h9cyxmmjsvxnsp8bpn1ljy4qgh7a7vqq3sj9d6wzq00"))))
7152 (build-system haskell-build-system)
7153 (inputs
7154 `(("ghc-attoparsec" ,ghc-attoparsec)
7155 ("ghc-exceptions" ,ghc-exceptions)
7156 ("ghc-utf8-string" ,ghc-utf8-string)
7157 ("ghc-llvm-hs-pure" ,ghc-llvm-hs-pure)
7158 ("llvm" ,llvm-9)))
7159 (native-inputs
7160 `(("ghc-tasty" ,ghc-tasty)
7161 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
7162 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
7163 ("ghc-quickcheck" ,ghc-quickcheck)
7164 ("ghc-temporary" ,ghc-temporary)
7165 ("ghc-pretty-show" ,ghc-pretty-show)
7166 ("ghc-temporary" ,ghc-temporary)))
7167 (home-page "https://github.com/llvm-hs/llvm-hs/")
7168 (synopsis "General purpose LLVM bindings for Haskell")
7169 (description "llvm-hs is a set of Haskell bindings for LLVM. Unlike other
7170current Haskell bindings, it uses an algebraic datatype (ADT) to represent LLVM
7171IR, and so offers two advantages: it handles almost all of the stateful
7172complexities of using the LLVM API to build IR; and it supports moving IR not
7173only from Haskell into LLVM C++ objects, but the other direction - from LLVM C++
7174into Haskell.")
7175 (license license:bsd-3)))
7176
dddbc90c
RV
7177(define-public ghc-logging-facade
7178 (package
7179 (name "ghc-logging-facade")
7180 (version "0.3.0")
7181 (source (origin
7182 (method url-fetch)
7183 (uri (string-append "https://hackage.haskell.org/package/"
7184 "logging-facade/logging-facade-"
7185 version ".tar.gz"))
7186 (sha256
7187 (base32
7188 "0d0lwxxgd16is9aw6v3ps4r9prv3dj8xscmm45fvzq3nicjiawcf"))))
7189 (build-system haskell-build-system)
7190 (native-inputs
7191 `(("ghc-hspec" ,ghc-hspec)
7192 ("hspec-discover" ,hspec-discover)))
7193 (home-page "https://hackage.haskell.org/package/logging-facade")
7194 (synopsis "Simple logging abstraction that allows multiple back-ends")
7195 (description
7196 "This package provides a simple logging abstraction that allows multiple
7197back-ends.")
7198 (license license:expat)))
7199
7200(define-public ghc-logict
7201 (package
7202 (name "ghc-logict")
79d9326f 7203 (version "0.7.0.2")
dddbc90c
RV
7204 (source
7205 (origin
7206 (method url-fetch)
7207 (uri (string-append
7208 "https://hackage.haskell.org/package/logict/logict-"
7209 version
7210 ".tar.gz"))
7211 (sha256
7212 (base32
79d9326f 7213 "1xfgdsxg0lp8m0a2cb83rcxrnnc37asfikay2kydi933anh9ihfc"))))
dddbc90c 7214 (build-system haskell-build-system)
79d9326f
TS
7215 (native-inputs
7216 `(("ghc-tasty" ,ghc-tasty)
7217 ("ghc-tasty-hunit" ,ghc-tasty-hunit)))
dddbc90c
RV
7218 (home-page "http://code.haskell.org/~dolio/")
7219 (synopsis "Backtracking logic-programming monad")
7220 (description "This library provides a continuation-based, backtracking,
7221logic programming monad. An adaptation of the two-continuation implementation
7222found in the paper \"Backtracking, Interleaving, and Terminating Monad
7223Transformers\" available @uref{http://okmij.org/ftp/papers/LogicT.pdf,
7224online}.")
7225 (license license:bsd-3)))
7226
7227(define-public ghc-lzma
7228 (package
7229 (name "ghc-lzma")
7230 (version "0.0.0.3")
7231 (source
7232 (origin
7233 (method url-fetch)
7234 (uri (string-append "https://hackage.haskell.org/package/lzma/"
7235 "lzma-" version ".tar.gz"))
7236 (sha256
7237 (base32
7238 "0i416gqi8j55nd1pqbkxvf3f6hn6fjys6gq98lkkxphva71j30xg"))))
7239 (build-system haskell-build-system)
7240 (arguments
7241 '(#:tests? #f ; requires older versions of QuickCheck and tasty.
7242 #:cabal-revision
7243 ("3" "1sify6gnsalyp6dakfzi0mdy5jcz2kcp9jsdsgkmxd40nfzgd44m")))
7244 (native-inputs
7245 `(("ghc-hunit" ,ghc-hunit)
7246 ("ghc-quickcheck" ,ghc-quickcheck)
7247 ("ghc-tasty" ,ghc-tasty)
7248 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
7249 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
7250 (home-page "https://github.com/hvr/lzma")
7251 (synopsis "LZMA/XZ compression and decompression")
7252 (description
7253 "This package provides a pure interface for compressing and
7254decompressing LZMA streams of data represented as lazy @code{ByteString}s. A
7255monadic incremental interface is provided as well.")
7256 (license license:bsd-3)))
7257
7258(define-public ghc-lzma-conduit
7259 (package
7260 (name "ghc-lzma-conduit")
7261 (version "1.2.1")
7262 (source
7263 (origin
7264 (method url-fetch)
7265 (uri (string-append "https://hackage.haskell.org/package/lzma-conduit/"
7266 "lzma-conduit-" version ".tar.gz"))
7267 (sha256
7268 (base32
7269 "0hm72da7xk9l3zxjh274yg444vf405djxqbkf3q3p2qhicmxlmg9"))))
7270 (build-system haskell-build-system)
7271 (inputs
7272 `(("ghc-conduit" ,ghc-conduit)
7273 ("ghc-lzma" ,ghc-lzma)
7274 ("ghc-resourcet" ,ghc-resourcet)))
7275 (native-inputs
7276 `(("ghc-base-compat" ,ghc-base-compat)
7277 ("ghc-test-framework" ,ghc-test-framework)
7278 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
7279 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)
7280 ("ghc-hunit" ,ghc-hunit)
7281 ("ghc-quickcheck" ,ghc-quickcheck)))
7282 (home-page "https://github.com/alphaHeavy/lzma-conduit")
7283 (synopsis "Conduit interface for lzma/xz compression")
7284 (description
7285 "This package provides a @code{Conduit} interface for the LZMA
7286compression algorithm used in the @code{.xz} file format.")
7287 (license license:bsd-3)))
7288
e405912c
KM
7289(define-public ghc-magic
7290 (package
7291 (name "ghc-magic")
7292 (version "1.1")
7293 (source
7294 (origin
7295 (method url-fetch)
7296 (uri (string-append
7297 "https://hackage.haskell.org/package/magic/magic-"
7298 version ".tar.gz"))
7299 (sha256
7300 (base32
7301 "10p0gjjjwr1dda7hahwrwn5njbfhl67arq3v3nf1jr3vymlkn75j"))))
7302 (build-system haskell-build-system)
3ef91e15 7303 (home-page "https://hackage.haskell.org/package/magic")
e405912c
KM
7304 (synopsis "Interface to C file/magic library")
7305 (description
7306 "This package provides a full-featured binding to the C libmagic library.
7307With it, you can determine the type of a file by examining its contents rather
7308than its name.")
7309 (license license:bsd-3)))
7310
bcfe9dba
JS
7311(define-public ghc-managed
7312 (package
7313 (name "ghc-managed")
7314 (version "1.0.6")
7315 (source
7316 (origin
7317 (method url-fetch)
7318 (uri (string-append
7319 "mirror://hackage/package/managed/managed-"
7320 version
7321 ".tar.gz"))
7322 (sha256
7323 (base32
7324 "1kbrw99yh5x5blykmx2n88mplbbi4ss1ij5j17b7asw6q0ihm9zi"))))
7325 (build-system haskell-build-system)
7326 (home-page "http://hackage.haskell.org/package/managed")
7327 (synopsis "Monad for managed values")
7328 (description
7329 "In Haskell you very often acquire values using the with... idiom using
7330functions of type (a -> IO r) -> IO r. This idiom forms a Monad, which is a
7331special case of the ContT monad (from transformers) or the Codensity
7332monad (from kan-extensions). The main purpose behind this package is to
7333provide a restricted form of these monads specialized to this unusually common
7334case.
7335
7336The reason this package defines a specialized version of these types
7337is to:
7338
7339@itemize
7340@item be more beginner-friendly,
7341@item simplify inferred types and error messages, and:
7342@item provide some additional type class instances that would otherwise be
7343orphan instances
7344@end itemize")
7345 (license license:bsd-3)))
7346
dddbc90c
RV
7347(define-public ghc-markdown-unlit
7348 (package
7349 (name "ghc-markdown-unlit")
7350 (version "0.5.0")
7351 (source (origin
7352 (method url-fetch)
7353 (uri (string-append
7354 "mirror://hackage/package/markdown-unlit/"
7355 "markdown-unlit-" version ".tar.gz"))
7356 (sha256
7357 (base32
7358 "1gy79vr85vcp13rdjh0hz7zv6daqqffww4j0cqn2lpjjh9xhsbg7"))))
7359 (build-system haskell-build-system)
7360 (inputs
7361 `(("ghc-base-compat" ,ghc-base-compat)
7362 ("ghc-hspec" ,ghc-hspec)
7363 ("ghc-quickcheck" ,ghc-quickcheck)
7364 ("ghc-silently" ,ghc-silently)
7365 ("ghc-stringbuilder" ,ghc-stringbuilder)
7366 ("ghc-temporary" ,ghc-temporary)
7367 ("hspec-discover" ,hspec-discover)))
7368 (home-page "https://github.com/sol/markdown-unlit#readme")
7369 (synopsis "Literate Haskell support for Markdown")
7370 (description "This package allows you to have a README.md that at the
7371same time is a literate Haskell program.")
7372 (license license:expat)))
7373
7374(define-public ghc-math-functions
7375 (package
7376 (name "ghc-math-functions")
b45de2bf 7377 (version "0.3.3.0")
dddbc90c
RV
7378 (source
7379 (origin
7380 (method url-fetch)
7381 (uri (string-append "https://hackage.haskell.org/package/"
7382 "math-functions-" version "/"
7383 "math-functions-" version ".tar.gz"))
7384 (sha256
7385 (base32
b45de2bf 7386 "1s5nbs40sc3r4z08n0j8bw40cy0zkp03fjjn3p27zkd4fvm9kib3"))))
dddbc90c
RV
7387 (build-system haskell-build-system)
7388 (arguments `(#:tests? #f)) ; FIXME: 1 test fails.
7389 (inputs
b45de2bf
TS
7390 `(("ghc-data-default-class" ,ghc-data-default-class)
7391 ("ghc-vector" ,ghc-vector)
dddbc90c
RV
7392 ("ghc-vector-th-unbox" ,ghc-vector-th-unbox)))
7393 (native-inputs
7394 `(("ghc-hunit" ,ghc-hunit)
7395 ("ghc-quickcheck" ,ghc-quickcheck)
7396 ("ghc-erf" ,ghc-erf)
7397 ("ghc-test-framework" ,ghc-test-framework)
7398 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
7399 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
7400 (home-page "https://github.com/bos/math-functions")
7401 (synopsis "Special functions and Chebyshev polynomials for Haskell")
7402 (description "This Haskell library provides implementations of
7403special mathematical functions and Chebyshev polynomials. These
7404functions are often useful in statistical and numerical computing.")
7405 (license license:bsd-3)))
7406
7407(define-public ghc-megaparsec
7408 (package
7409 (name "ghc-megaparsec")
03b0c92e 7410 (version "7.0.5")
dddbc90c
RV
7411 (source
7412 (origin
7413 (method url-fetch)
7414 (uri (string-append "https://hackage.haskell.org/package/"
7415 "megaparsec/megaparsec-"
7416 version ".tar.gz"))
7417 (sha256
7418 (base32
03b0c92e 7419 "0bqx1icbmk8s7wmbcdzsgnlh607c7kzg8l80cp02dxr5valjxp7j"))))
dddbc90c 7420 (build-system haskell-build-system)
dddbc90c
RV
7421 (inputs
7422 `(("ghc-case-insensitive" ,ghc-case-insensitive)
7423 ("ghc-parser-combinators" ,ghc-parser-combinators)
7424 ("ghc-scientific" ,ghc-scientific)))
7425 (native-inputs
7426 `(("ghc-quickcheck" ,ghc-quickcheck)
7427 ("ghc-hspec" ,ghc-hspec)
7428 ("ghc-hspec-expectations" ,ghc-hspec-expectations)
7429 ("hspec-discover" ,hspec-discover)))
7430 (home-page "https://github.com/mrkkrp/megaparsec")
7431 (synopsis "Monadic parser combinators")
7432 (description
7433 "This is an industrial-strength monadic parser combinator library.
7434Megaparsec is a feature-rich package that strikes a nice balance between
7435speed, flexibility, and quality of parse errors.")
7436 (license license:bsd-2)))
7437
7438(define-public ghc-memory
7439 (package
7440 (name "ghc-memory")
d2c7d336 7441 (version "0.14.18")
dddbc90c
RV
7442 (source (origin
7443 (method url-fetch)
7444 (uri (string-append "https://hackage.haskell.org/package/"
7445 "memory/memory-" version ".tar.gz"))
7446 (sha256
7447 (base32
d2c7d336 7448 "01rmq3vagxzjmm96qnfxk4f0516cn12bp5m8inn8h5r918bqsigm"))))
dddbc90c
RV
7449 (build-system haskell-build-system)
7450 (inputs
7451 `(("ghc-basement" ,ghc-basement)
7452 ("ghc-foundation" ,ghc-foundation)))
7453 (native-inputs
7454 `(("ghc-tasty" ,ghc-tasty)
7455 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
7456 ("ghc-tasty-hunit" ,ghc-tasty-hunit)))
7457 (home-page "https://github.com/vincenthz/hs-memory")
7458 (synopsis "Memory abstractions for Haskell")
7459 (description
7460 "This package provides memory abstractions, such as chunk of memory,
7461polymorphic byte array management and manipulation functions. It contains a
7462polymorphic byte array abstraction and functions similar to strict ByteString,
7463different type of byte array abstraction, raw memory IO operations (memory
7464set, memory copy, ..) and more")
7465 (license license:bsd-3)))
7466
7467(define-public ghc-memotrie
7468 (package
7469 (name "ghc-memotrie")
7470 (version "0.6.9")
7471 (source
7472 (origin
7473 (method url-fetch)
7474 (uri (string-append
7475 "https://hackage.haskell.org/package/MemoTrie/MemoTrie-"
7476 version
7477 ".tar.gz"))
7478 (sha256
7479 (base32
7480 "157p0pi6rrq74a35mq6zkkycv4ah7xhkbrcmnkb9xf7pznw4aq0x"))))
7481 (build-system haskell-build-system)
7482 (inputs
7483 `(("ghc-newtype-generics" ,ghc-newtype-generics)))
7484 (home-page "https://github.com/conal/MemoTrie")
7485 (synopsis "Trie-based memo functions")
7486 (description "This package provides a functional library for creating
7487efficient memo functions using tries.")
7488 (license license:bsd-3)))
7489
7490(define-public ghc-microlens
7491 (package
7492 (name "ghc-microlens")
82478c58 7493 (version "0.4.10")
dddbc90c
RV
7494 (source
7495 (origin
7496 (method url-fetch)
7497 (uri (string-append "https://hackage.haskell.org/package/"
7498 "microlens-" version "/"
7499 "microlens-" version ".tar.gz"))
7500 (sha256
7501 (base32
82478c58 7502 "1v277yyy4p9q57xr2lfp6qs24agglfczmcabrapxrzci3jfshmcw"))))
dddbc90c
RV
7503 (build-system haskell-build-system)
7504 (home-page
7505 "https://github.com/aelve/microlens")
7506 (synopsis "Provides a tiny lens Haskell library with no dependencies")
7507 (description "This Haskell package provides a lens library, just like
7508@code{ghc-lens}, but smaller. It provides essential lenses and
7509traversals (like @code{_1} and @code{_Just}), as well as ones which are simply
7510nice to have (like @code{each}, @code{at}, and @code{ix}), and some
7511combinators (like @code{failing} and @code{singular}), but everything else is
7512stripped. As the result, this package has no dependencies.")
7513 (license license:bsd-3)))
7514
1cd3333e
TS
7515(define-public ghc-microlens-aeson
7516 (package
7517 (name "ghc-microlens-aeson")
7518 (version "2.3.0.4")
7519 (source
7520 (origin
7521 (method url-fetch)
7522 (uri (string-append "https://hackage.haskell.org/package/"
7523 "microlens-aeson/microlens-aeson-"
7524 version ".tar.gz"))
b4a00fec 7525 (patches (search-patches "ghc-microlens-aeson-fix-tests.patch"))
1cd3333e
TS
7526 (sha256
7527 (base32
7528 "0w630kk5bnily1qh41081gqgbwmslrh5ad21899gwnb2r3jripyw"))))
7529 (build-system haskell-build-system)
7530 (inputs
7531 `(("ghc-aeson" ,ghc-aeson)
7532 ("ghc-attoparsec" ,ghc-attoparsec)
7533 ("ghc-hashable" ,ghc-hashable)
7534 ("ghc-microlens" ,ghc-microlens)
7535 ("ghc-scientific" ,ghc-scientific)
7536 ("ghc-unordered-containers" ,ghc-unordered-containers)
7537 ("ghc-vector" ,ghc-vector)))
7538 (native-inputs
7539 `(("ghc-tasty" ,ghc-tasty)
7540 ("ghc-tasty-hunit" ,ghc-tasty-hunit)))
7541 (home-page "https://github.com/fosskers/microlens-aeson")
7542 (synopsis "Law-abiding lenses for Aeson, using microlens")
7543 (description "This library provides law-abiding lenses for Aeson, using
7544microlens.")
7545 (license license:expat)))
7546
dddbc90c
RV
7547(define-public ghc-microlens-ghc
7548 (package
7549 (name "ghc-microlens-ghc")
027beb55 7550 (version "0.4.10")
dddbc90c
RV
7551 (source
7552 (origin
7553 (method url-fetch)
7554 (uri (string-append
7555 "https://hackage.haskell.org/package/microlens-ghc/microlens-ghc-"
7556 version
7557 ".tar.gz"))
7558 (sha256
7559 (base32
027beb55 7560 "102dbrdsdadxbbhvx8avv1wbk84767a7lkb8ckp3zxk9g7qlly33"))))
dddbc90c
RV
7561 (build-system haskell-build-system)
7562 (inputs `(("ghc-microlens" ,ghc-microlens)))
7563 (home-page "https://github.com/monadfix/microlens")
7564 (synopsis "Use @code{microlens} with GHC libraries like @code{array}")
7565 (description "This library provides everything that @code{microlens}
7566provides plus instances to make @code{each}, @code{at}, and @code{ix}
7567usable with arrays, @code{ByteString}, and containers. This package is
7568a part of the @uref{http://hackage.haskell.org/package/microlens,
7569microlens} family; see the readme
7570@uref{https://github.com/aelve/microlens#readme, on Github}.")
7571 (license license:bsd-3)))
7572
7573(define-public ghc-microlens-mtl
7574 (package
7575 (name "ghc-microlens-mtl")
7576 (version "0.1.11.1")
7577 (source
7578 (origin
7579 (method url-fetch)
7580 (uri (string-append
7581 "https://hackage.haskell.org/package/microlens-mtl/microlens-mtl-"
7582 version
7583 ".tar.gz"))
7584 (sha256
7585 (base32
7586 "0l6z1gkzwcpv89bxf5vgfrjb6gq2pj7sjjc53nvi5b9alx34zryk"))))
7587 (build-system haskell-build-system)
7588 (inputs
7589 `(("ghc-microlens" ,ghc-microlens)
7590 ("ghc-transformers-compat" ,ghc-transformers-compat)))
7591 (home-page "https://github.com/monadfix/microlens")
7592 (synopsis
7593 "@code{microlens} support for Reader/Writer/State from mtl")
7594 (description
7595 "This package contains functions (like @code{view} or @code{+=}) which
7596work on @code{MonadReader}, @code{MonadWriter}, and @code{MonadState} from the
7597mtl package. This package is a part of the
7598@uref{http://hackage.haskell.org/package/microlens, microlens} family; see the
7599readme @uref{https://github.com/aelve/microlens#readme, on Github}.")
7600 (license license:bsd-3)))
7601
7602(define-public ghc-microlens-platform
7603 (package
7604 (name "ghc-microlens-platform")
85decc1f 7605 (version "0.3.11")
dddbc90c
RV
7606 (source
7607 (origin
7608 (method url-fetch)
7609 (uri (string-append
7610 "https://hackage.haskell.org/package/"
7611 "microlens-platform/microlens-platform-" version ".tar.gz"))
7612 (sha256
7613 (base32
85decc1f 7614 "18950lxgmsg5ksvyyi3zs1smjmb1qf1q73a3p3g44bh21miz0xwb"))))
dddbc90c
RV
7615 (build-system haskell-build-system)
7616 (inputs
7617 `(("ghc-hashable" ,ghc-hashable)
7618 ("ghc-microlens" ,ghc-microlens)
7619 ("ghc-microlens-ghc" ,ghc-microlens-ghc)
7620 ("ghc-microlens-mtl" ,ghc-microlens-mtl)
7621 ("ghc-microlens-th" ,ghc-microlens-th)
7622 ("ghc-unordered-containers" ,ghc-unordered-containers)
7623 ("ghc-vector" ,ghc-vector)))
7624 (home-page "https://github.com/monadfix/microlens")
7625 (synopsis "Feature-complete microlens")
7626 (description
7627 "This package exports a module which is the recommended starting point
7628for using @uref{http://hackage.haskell.org/package/microlens, microlens} if
7629you aren't trying to keep your dependencies minimal. By importing
7630@code{Lens.Micro.Platform} you get all functions and instances from
7631@uref{http://hackage.haskell.org/package/microlens, microlens},
7632@uref{http://hackage.haskell.org/package/microlens-th, microlens-th},
7633@uref{http://hackage.haskell.org/package/microlens-mtl, microlens-mtl},
7634@uref{http://hackage.haskell.org/package/microlens-ghc, microlens-ghc}, as
7635well as instances for @code{Vector}, @code{Text}, and @code{HashMap}. The
7636minor and major versions of @code{microlens-platform} are incremented whenever
7637the minor and major versions of any other @code{microlens} package are
7638incremented, so you can depend on the exact version of
7639@code{microlens-platform} without specifying the version of @code{microlens}
7640you need. This package is a part of the
7641@uref{http://hackage.haskell.org/package/microlens, microlens} family; see the
7642readme @uref{https://github.com/aelve/microlens#readme, on Github}.")
7643 (license license:bsd-3)))
7644
7645(define-public ghc-microlens-th
7646 (package
7647 (name "ghc-microlens-th")
7ae52867 7648 (version "0.4.2.3")
dddbc90c
RV
7649 (source
7650 (origin
7651 (method url-fetch)
7652 (uri (string-append "https://hackage.haskell.org/package/"
7653 "microlens-th-" version "/"
7654 "microlens-th-" version ".tar.gz"))
7655 (sha256
7656 (base32
7ae52867 7657 "13qw0pwcgd6f6i39rwgqwcwk1d4da5x7wv3gna7gdlxaq331h41j"))))
dddbc90c 7658 (build-system haskell-build-system)
7ae52867
TS
7659 (arguments
7660 `(#:cabal-revision
7661 ("1" "167in7b1qhgrspx81bdm2jyg9qji66sk7id282c0s99kmp0d01n6")))
dddbc90c
RV
7662 (inputs `(("ghc-microlens" ,ghc-microlens)
7663 ("ghc-th-abstraction" ,ghc-th-abstraction)))
7664 (home-page
7665 "https://github.com/aelve/microlens")
7666 (synopsis "Automatic generation of record lenses for
7667@code{ghc-microlens}")
7668 (description "This Haskell package lets you automatically generate lenses
7669for data types; code was extracted from the lens package, and therefore
7670generated lenses are fully compatible with ones generated by lens (and can be
7671used both from lens and microlens).")
7672 (license license:bsd-3)))
7673
7674(define-public ghc-missingh
7675 (package
7676 (name "ghc-missingh")
641207cb 7677 (version "1.4.1.0")
dddbc90c
RV
7678 (source
7679 (origin
7680 (method url-fetch)
7681 (uri (string-append "https://hackage.haskell.org/package/MissingH/"
7682 "MissingH-" version ".tar.gz"))
7683 (sha256
7684 (base32
641207cb 7685 "1jp0vk6w9a7fzrbxfhx773105jp2s1n50klq9ak6spfl7bgx5v29"))))
dddbc90c
RV
7686 (build-system haskell-build-system)
7687 ;; Tests require the unmaintained testpack package, which depends on the
7688 ;; outdated QuickCheck version 2.7, which can no longer be built with
7689 ;; recent versions of GHC and Haskell libraries.
7690 (arguments '(#:tests? #f))
7691 (inputs
7692 `(("ghc-network" ,ghc-network)
7693 ("ghc-hunit" ,ghc-hunit)
7694 ("ghc-regex-compat" ,ghc-regex-compat)
7695 ("ghc-hslogger" ,ghc-hslogger)
7696 ("ghc-random" ,ghc-random)
7697 ("ghc-old-time" ,ghc-old-time)
7698 ("ghc-old-locale" ,ghc-old-locale)))
7699 (native-inputs
7700 `(("ghc-errorcall-eq-instance" ,ghc-errorcall-eq-instance)
7701 ("ghc-quickcheck" ,ghc-quickcheck)
7702 ("ghc-hunit" ,ghc-hunit)))
f1841ccf
TGR
7703 ;; ‘Official’ <http://software.complete.org/missingh> redirects to a 404.
7704 (home-page "https://github.com/haskell-hvr/missingh")
dddbc90c
RV
7705 (synopsis "Large utility library")
7706 (description
7707 "MissingH is a library of all sorts of utility functions for Haskell
7708programmers. It is written in pure Haskell and thus should be extremely
7709portable and easy to use.")
7710 (license license:bsd-3)))
7711
7712(define-public ghc-mmap
7713 (package
7714 (name "ghc-mmap")
7715 (version "0.5.9")
7716 (source (origin
7717 (method url-fetch)
7718 (uri (string-append "https://hackage.haskell.org/package/"
7719 "mmap/mmap-" version ".tar.gz"))
7720 (sha256
7721 (base32
7722 "1y5mk3yf4b8r6rzmlx1xqn4skaigrqnv08sqq0v7r3nbw42bpz2q"))))
7723 (build-system haskell-build-system)
7724 (home-page "https://hackage.haskell.org/package/mmap")
7725 (synopsis "Memory mapped files for Haskell")
7726 (description
7727 "This library provides a wrapper to @code{mmap}, allowing files or
7728devices to be lazily loaded into memory as strict or lazy @code{ByteStrings},
7729@code{ForeignPtrs} or plain @code{Ptrs}, using the virtual memory subsystem to
7730do on-demand loading.")
7731 (license license:bsd-3)))
7732
7733(define-public ghc-mmorph
7734 (package
7735 (name "ghc-mmorph")
e0389704 7736 (version "1.1.3")
dddbc90c
RV
7737 (source
7738 (origin
7739 (method url-fetch)
7740 (uri (string-append
7741 "https://hackage.haskell.org/package/mmorph/mmorph-"
7742 version
7743 ".tar.gz"))
7744 (sha256
7745 (base32
e0389704 7746 "0rfsy9n9mlinpmqi2s17fhc67fzma2ig5fbmh6m5m830canzf8vr"))))
dddbc90c
RV
7747 (build-system haskell-build-system)
7748 (inputs
7749 `(("ghc-transformers-compat" ,ghc-transformers-compat)))
7750 (home-page "https://hackage.haskell.org/package/mmorph")
7751 (synopsis "Monad morphisms")
7752 (description
7753 "This library provides monad morphism utilities, most commonly used for
7754manipulating monad transformer stacks.")
7755 (license license:bsd-3)))
7756
7757(define-public ghc-mockery
7758 (package
7759 (name "ghc-mockery")
7760 (version "0.3.5")
7761 (source (origin
7762 (method url-fetch)
7763 (uri (string-append "https://hackage.haskell.org/package/"
7764 "mockery/mockery-" version ".tar.gz"))
7765 (sha256
7766 (base32
7767 "09ypgm3z69gq8mj6y66ss58kbjnk15r8frwcwbqcfbfksfnfv8dp"))))
7768 (build-system haskell-build-system)
7769 (inputs
7770 `(("ghc-temporary" ,ghc-temporary)
7771 ("ghc-logging-facade" ,ghc-logging-facade)
7772 ("ghc-base-compat" ,ghc-base-compat)))
7773 (native-inputs
7774 `(("ghc-hspec" ,ghc-hspec)
7775 ("hspec-discover" ,hspec-discover)))
7776 (home-page "https://hackage.haskell.org/package/mockery")
7777 (synopsis "Support functions for automated testing")
7778 (description
7779 "The mockery package provides support functions for automated testing.")
7780 (license license:expat)))
7781
7782(define-public ghc-monad-control
7783 (package
7784 (name "ghc-monad-control")
7785 (version "1.0.2.3")
7786 (source
7787 (origin
7788 (method url-fetch)
7789 (uri (string-append
7790 "https://hackage.haskell.org/package/monad-control"
7791 "/monad-control-" version ".tar.gz"))
7792 (sha256
7793 (base32
7794 "1c92833gr6cadidjdp8mlznkpp8lyxl0w3y7d19y8yi3klc3843c"))))
7795 (build-system haskell-build-system)
7796 (inputs
7797 `(("ghc-transformers-base" ,ghc-transformers-base)
7798 ("ghc-transformers-compat" ,ghc-transformers-compat)))
7799 (home-page "https://github.com/basvandijk/monad-control")
7800 (synopsis "Monad transformers to lift control operations like exception
7801catching")
7802 (description "This package defines the type class @code{MonadBaseControl},
7803a subset of @code{MonadBase} into which generic control operations such as
7804@code{catch} can be lifted from @code{IO} or any other base monad.")
7805 (license license:bsd-3)))
7806
7807(define-public ghc-monad-logger
7808 (package
7809 (name "ghc-monad-logger")
26980aae 7810 (version "0.3.30")
dddbc90c
RV
7811 (source
7812 (origin
7813 (method url-fetch)
7814 (uri (string-append "https://hackage.haskell.org/package/"
7815 "monad-logger-" version "/"
7816 "monad-logger-" version ".tar.gz"))
7817 (sha256
7818 (base32
26980aae 7819 "102l0v75hbvkmrypiyg4ybb6rbc7nij5nxs1aihmqfdpg04rkkp7"))))
dddbc90c
RV
7820 (build-system haskell-build-system)
7821 (inputs `(("ghc-transformers-compat" ,ghc-transformers-compat)
7822 ("ghc-stm-chans" ,ghc-stm-chans)
7823 ("ghc-lifted-base" ,ghc-lifted-base)
7824 ("ghc-resourcet" ,ghc-resourcet)
7825 ("ghc-conduit" ,ghc-conduit)
7826 ("ghc-conduit-extra" ,ghc-conduit-extra)
7827 ("ghc-fast-logger" ,ghc-fast-logger)
7828 ("ghc-transformers-base" ,ghc-transformers-base)
7829 ("ghc-monad-control" ,ghc-monad-control)
7830 ("ghc-monad-loops" ,ghc-monad-loops)
7831 ("ghc-blaze-builder" ,ghc-blaze-builder)
7832 ("ghc-exceptions" ,ghc-exceptions)))
7833 (home-page "https://github.com/kazu-yamamoto/logger")
7834 (synopsis "Provides a class of monads which can log messages for Haskell")
7835 (description "This Haskell package uses a monad transformer approach
7836for logging.
7837
7838This package provides Template Haskell functions for determining source
7839code locations of messages.")
7840 (license license:expat)))
7841
7842(define-public ghc-monad-loops
7843 (package
7844 (name "ghc-monad-loops")
7845 (version "0.4.3")
7846 (source
7847 (origin
7848 (method url-fetch)
7849 (uri (string-append "https://hackage.haskell.org/package/"
7850 "monad-loops-" version "/"
7851 "monad-loops-" version ".tar.gz"))
7852 (sha256
7853 (base32
7854 "062c2sn3hc8h50p1mhqkpyv6x8dydz2zh3ridvlfjq9nqimszaky"))))
7855 (build-system haskell-build-system)
7856 (native-inputs `(("ghc-tasty" ,ghc-tasty)
7857 ("ghc-tasty-hunit" ,ghc-tasty-hunit)))
7858 (home-page "https://github.com/mokus0/monad-loops")
7859 (synopsis "Monadic loops for Haskell")
7860 (description "This Haskell package provides some useful control
7861operators for looping.")
7862 (license license:public-domain)))
7863
7864(define-public ghc-monad-par
7865 (package
7866 (name "ghc-monad-par")
7867 (version "0.3.4.8")
7868 (source
7869 (origin
7870 (method url-fetch)
7871 (uri (string-append "https://hackage.haskell.org/package/"
7872 "monad-par-" version "/"
7873 "monad-par-" version ".tar.gz"))
faac56f3 7874 (patches (search-patches "ghc-monad-par-fix-tests.patch"))
dddbc90c
RV
7875 (sha256
7876 (base32
7877 "0ldrzqy24fsszvn2a2nr77m2ih7xm0h9bgkjyv1l274aj18xyk7q"))))
7878 (build-system haskell-build-system)
7879 (inputs `(("ghc-abstract-par" ,ghc-abstract-par)
7880 ("ghc-abstract-deque" ,ghc-abstract-deque)
7881 ("ghc-monad-par-extras" ,ghc-monad-par-extras)
7882 ("ghc-mwc-random" ,ghc-mwc-random)
7883 ("ghc-parallel" ,ghc-parallel)))
7884 (native-inputs `(("ghc-quickcheck" ,ghc-quickcheck)
7885 ("ghc-hunit" ,ghc-hunit)
7886 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
7887 ("ghc-test-framework-quickcheck2"
7888 ,ghc-test-framework-quickcheck2)
7889 ("ghc-test-framework" ,ghc-test-framework)
7890 ("ghc-test-framework-th" ,ghc-test-framework-th)))
7891 (home-page "https://github.com/simonmar/monad-par")
7892 (synopsis "Haskell library for parallel programming based on a monad")
7893 (description "The @code{Par} monad offers an API for parallel
7894programming. The library works for parallelising both pure and @code{IO}
7895computations, although only the pure version is deterministic. The default
7896implementation provides a work-stealing scheduler and supports forking tasks
7897that are much lighter weight than IO-threads.")
7898 (license license:bsd-3)))
7899
7900(define-public ghc-monad-par-extras
7901 (package
7902 (name "ghc-monad-par-extras")
7903 (version "0.3.3")
7904 (source
7905 (origin
7906 (method url-fetch)
7907 (uri (string-append "https://hackage.haskell.org/package/"
7908 "monad-par-extras-" version "/"
7909 "monad-par-extras-" version ".tar.gz"))
7910 (sha256
7911 (base32
7912 "0bl4bd6jzdc5zm20q1g67ppkfh6j6yn8fwj6msjayj621cck67p2"))))
7913 (build-system haskell-build-system)
7914 (inputs `(("ghc-abstract-par" ,ghc-abstract-par)
7915 ("ghc-cereal" ,ghc-cereal)
7916 ("ghc-random" ,ghc-random)))
7917 (home-page "https://github.com/simonmar/monad-par")
7918 (synopsis "Combinators and extra features for Par monads for Haskell")
7919 (description "This Haskell package provides additional data structures,
7920and other added capabilities layered on top of the @code{Par} monad.")
7921 (license license:bsd-3)))
7922
dddbc90c
RV
7923(define-public ghc-monadrandom
7924 (package
7925 (name "ghc-monadrandom")
7926 (version "0.5.1.1")
7927 (source
7928 (origin
7929 (method url-fetch)
7930 (uri (string-append "https://hackage.haskell.org/package/"
7931 "MonadRandom-" version "/"
7932 "MonadRandom-" version ".tar.gz"))
7933 (sha256
7934 (base32
7935 "0w44jl1n3kqvqaflh82l1wj3xxbhzfs3kf4m8rk7w6fgg8llmnmb"))))
7936 (build-system haskell-build-system)
7937 (inputs `(("ghc-transformers-compat" ,ghc-transformers-compat)
7938 ("ghc-primitive" ,ghc-primitive)
7939 ("ghc-fail" ,ghc-fail)
7940 ("ghc-random" ,ghc-random)))
7941 (home-page "https://github.com/byorgey/MonadRandom")
7942 (synopsis "Random-number generation monad for Haskell")
7943 (description "This Haskell package provides support for computations
7944which consume random values.")
7945 (license license:bsd-3)))
7946
7947(define-public ghc-monads-tf
7948 (package
7949 (name "ghc-monads-tf")
7950 (version "0.1.0.3")
7951 (source
7952 (origin
7953 (method url-fetch)
7954 (uri (string-append
7955 "https://hackage.haskell.org/package/monads-tf/monads-tf-"
7956 version ".tar.gz"))
7957 (sha256
7958 (base32
7959 "1wdhskwa6dw8qljbvwpyxj8ca6y95q2np7z4y4q6bpf4anmd5794"))))
7960 (build-system haskell-build-system)
7961 (home-page "https://hackage.haskell.org/package/monads-tf")
7962 (synopsis "Monad classes, using type families")
7963 (description
7964 "Monad classes using type families, with instances for various monad transformers,
7965inspired by the paper 'Functional Programming with Overloading and Higher-Order
7966Polymorphism', by Mark P Jones. This package is almost a compatible replacement for
7967the @code{mtl-tf} package.")
7968 (license license:bsd-3)))
7969
7970(define-public ghc-mono-traversable
7971 (package
7972 (name "ghc-mono-traversable")
23bb445b 7973 (version "1.0.13.0")
dddbc90c
RV
7974 (source
7975 (origin
7976 (method url-fetch)
7977 (uri (string-append "https://hackage.haskell.org/package/"
7978 "mono-traversable-" version "/"
7979 "mono-traversable-" version ".tar.gz"))
7980 (sha256
7981 (base32
23bb445b 7982 "1bqy982lpdb83lacfy76n8kqw5bvd31avxj25kg8gkgycdh0g0ma"))))
dddbc90c 7983 (build-system haskell-build-system)
3e6ecfeb 7984 (outputs '("out" "static" "doc"))
dddbc90c
RV
7985 (inputs `(("ghc-unordered-containers" ,ghc-unordered-containers)
7986 ("ghc-hashable" ,ghc-hashable)
7987 ("ghc-vector" ,ghc-vector)
7988 ("ghc-vector-algorithms" ,ghc-vector-algorithms)
7989 ("ghc-split" ,ghc-split)))
7990 (native-inputs `(("ghc-hspec" ,ghc-hspec)
7991 ("ghc-hunit" ,ghc-hunit)
7992 ("ghc-quickcheck" ,ghc-quickcheck)
7993 ("ghc-semigroups" ,ghc-semigroups)
7994 ("ghc-foldl" ,ghc-foldl)))
7995 (home-page "https://github.com/snoyberg/mono-traversable")
7996 (synopsis "Haskell classes for mapping, folding, and traversing monomorphic
7997containers")
7998 (description "This Haskell package provides Monomorphic variants of the
7999Functor, Foldable, and Traversable typeclasses. If you understand Haskell's
8000basic typeclasses, you understand mono-traversable. In addition to what
8001you are used to, it adds on an IsSequence typeclass and has code for marking
8002data structures as non-empty.")
8003 (license license:expat)))
8004
471e77cf
TS
8005(define-public ghc-monoid-extras
8006 (package
8007 (name "ghc-monoid-extras")
8008 (version "0.5.1")
8009 (source
8010 (origin
8011 (method url-fetch)
8012 (uri (string-append "https://hackage.haskell.org/package/"
8013 "monoid-extras/monoid-extras-" version ".tar.gz"))
8014 (sha256
8015 (base32
8016 "0xfrkgqn9d31z54l617m3w3kkd5m9vjb4yl247r3zzql3mpb1f37"))))
8017 (build-system haskell-build-system)
8018 (inputs
8019 `(("ghc-groups" ,ghc-groups)
8020 ("ghc-semigroups" ,ghc-semigroups)
8021 ("ghc-semigroupoids" ,ghc-semigroupoids)))
8022 (arguments
8023 `(#:cabal-revision
8024 ("1" "0b8x5d6vh7mpigvjvcd8f38a1nyzn1vfdqypslw7z9fgsr742913")))
8025 (home-page "https://hackage.haskell.org/package/monoid-extras")
8026 (synopsis "Various extra monoid-related definitions and utilities")
8027 (description "This package provides various extra monoid-related
8028definitions and utilities, such as monoid actions, monoid coproducts,
8029semi-direct products, \"deletable\" monoids, \"split\" monoids, and
8030\"cut\" monoids.")
8031 (license license:bsd-3)))
8032
4759b617
JS
8033(define-public ghc-mtl-compat
8034 (package
8035 (name "ghc-mtl-compat")
8036 (version "0.2.2")
8037 (source
8038 (origin
8039 (method url-fetch)
8040 (uri (string-append
8041 "mirror://hackage/package/mtl-compat/mtl-compat-"
8042 version
8043 ".tar.gz"))
8044 (sha256
8045 (base32
8046 "17iszr5yb4f17g8mq6i74hsamii8z6m2qfsmgzs78mhiwa7kjm8r"))))
8047 (build-system haskell-build-system)
8048 (home-page
8049 "https://github.com/haskell-compat/mtl-compat")
8050 (synopsis
8051 "Backported Control.Monad.Except module from mtl")
8052 (description
8053 "This package backports the Control.Monad.Except module from mtl (if
8054using mtl-2.2.0.1 or earlier), which reexports the ExceptT monad transformer
8055and the MonadError class.
8056
8057This package should only be used if there is a need to use the
8058Control.Monad.Except module specifically. If you just want the mtl class
8059instances for ExceptT, use transformers-compat instead, since mtl-compat does
8060nothing but reexport the instances from that package.
8061
8062Note that unlike how mtl-2.2 or later works, the Control.Monad.Except
8063module defined in this package exports all of ExceptT's monad class instances.
8064Therefore, you may have to declare @code{import Control.Monad.Except ()} at
8065the top of your file to get all of the ExceptT instances in scope.")
8066 (license license:bsd-3)))
8067
dddbc90c
RV
8068(define-public ghc-murmur-hash
8069 (package
8070 (name "ghc-murmur-hash")
8071 (version "0.1.0.9")
8072 (source
8073 (origin
8074 (method url-fetch)
8075 (uri (string-append "https://hackage.haskell.org/package/murmur-hash"
8076 "/murmur-hash-" version ".tar.gz"))
8077 (sha256
8078 (base32 "1bb58kfnzvx3mpc0rc0dhqc1fk36nm8prd6gvf20gk6lxaadpfc9"))))
8079 (build-system haskell-build-system)
8080 (home-page "https://github.com/nominolo/murmur-hash")
8081 (synopsis "MurmurHash2 implementation for Haskell")
8082 (description
8083 "This package provides an implementation of MurmurHash2, a good, fast,
8084general-purpose, non-cryptographic hashing function. See
8085@url{https://sites.google.com/site/murmurhash/} for details. This
8086implementation is pure Haskell, so it might be a bit slower than a C FFI
8087binding.")
8088 (license license:bsd-3)))
8089
8090(define-public ghc-mwc-random
8091 (package
8092 (name "ghc-mwc-random")
33268e2c 8093 (version "0.14.0.0")
dddbc90c
RV
8094 (source
8095 (origin
8096 (method url-fetch)
8097 (uri (string-append "https://hackage.haskell.org/package/"
8098 "mwc-random-" version "/"
8099 "mwc-random-" version ".tar.gz"))
8100 (sha256
8101 (base32
33268e2c 8102 "18pg24sw3b79b32cwx8q01q4k0lm34mwr3l6cdkchl8alvd0wdq0"))))
dddbc90c
RV
8103 (build-system haskell-build-system)
8104 (inputs
8105 `(("ghc-primitive" ,ghc-primitive)
8106 ("ghc-vector" ,ghc-vector)
8107 ("ghc-math-functions" ,ghc-math-functions)))
8108 (arguments
8109 `(#:tests? #f)) ; FIXME: Test-Suite `spec` fails.
8110 (native-inputs
8111 `(("ghc-hunit" ,ghc-hunit)
8112 ("ghc-quickcheck" ,ghc-quickcheck)
8113 ("ghc-test-framework" ,ghc-test-framework)
8114 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
8115 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
8116 (home-page "https://github.com/bos/mwc-random")
8117 (synopsis "Random number generation library for Haskell")
8118 (description "This Haskell package contains code for generating
8119high quality random numbers that follow either a uniform or normal
8120distribution. The generated numbers are suitable for use in
8121statistical applications.
8122
8123The uniform PRNG uses Marsaglia's MWC256 (also known as MWC8222)
8124multiply-with-carry generator, which has a period of 2^{8222} and
8125fares well in tests of randomness. It is also extremely fast,
8126between 2 and 3 times faster than the Mersenne Twister.")
8127 (license license:bsd-3)))
8128
8129(define-public ghc-nats
8130 (package
8131 (name "ghc-nats")
8132 (version "1.1.2")
8133 (source
8134 (origin
8135 (method url-fetch)
8136 (uri (string-append
8137 "https://hackage.haskell.org/package/nats/nats-"
8138 version
8139 ".tar.gz"))
8140 (sha256
8141 (base32
8142 "1v40drmhixck3pz3mdfghamh73l4rp71mzcviipv1y8jhrfxilmr"))))
8143 (build-system haskell-build-system)
8144 (arguments `(#:haddock? #f))
8145 (inputs
8146 `(("ghc-hashable" ,ghc-hashable)))
8147 (home-page "https://hackage.haskell.org/package/nats")
8148 (synopsis "Natural numbers")
8149 (description "This library provides the natural numbers for Haskell.")
8150 (license license:bsd-3)))
8151
8152(define-public ghc-nats-bootstrap
8153 (package
8154 (inherit ghc-nats)
8155 (name "ghc-nats-bootstrap")
8156 (inputs
8157 `(("ghc-hashable" ,ghc-hashable-bootstrap)))
8158 (properties '((hidden? #t)))))
8159
52915062
EF
8160(define-public ghc-ncurses
8161 (package
8162 (name "ghc-ncurses")
8163 (version "0.2.16")
8164 (source
8165 (origin
8166 (method url-fetch)
8167 (uri (string-append
8168 "https://hackage.haskell.org/package/ncurses/ncurses-"
8169 version ".tar.gz"))
8170 (sha256
8171 (base32
8172 "0gsyyaqyh5r9zc0rhwpj5spyd6i4w2vj61h4nihgmmh0yyqvf3z5"))))
8173 (build-system haskell-build-system)
8174 (arguments
54a5fd07
TS
8175 '(#:extra-directories ("ncurses")
8176 #:phases
52915062
EF
8177 (modify-phases %standard-phases
8178 (add-before 'build 'fix-includes
8179 (lambda _
8180 (substitute* '("cbits/hsncurses-shim.h"
8181 "lib/UI/NCurses.chs"
8182 "lib/UI/NCurses/Enums.chs"
8183 "lib/UI/NCurses/Panel.chs")
8184 (("<ncursesw/") "<"))
8185 #t)))
8186 #:cabal-revision
8187 ("1"
8188 "1wfdy716s5p1sqp2gsg43x8wch2dxg0vmbbndlb2h3d8c9jzxnca")))
8189 (inputs `(("ncurses" ,ncurses)))
8190 (native-inputs `(("ghc-c2hs" ,ghc-c2hs)))
8191 (home-page "https://john-millikin.com/software/haskell-ncurses/")
8192 (synopsis "Modernised bindings to GNU ncurses")
8193 (description "GNU ncurses is a library for creating command-line application
8194with pseudo-graphical interfaces. This package is a nice, modern binding to GNU
8195ncurses.")
8196 (license license:gpl3)))
8197
dddbc90c
RV
8198(define-public ghc-network
8199 (package
8200 (name "ghc-network")
d4473202 8201 (version "2.8.0.1")
534d6caa 8202 (outputs '("out" "static" "doc"))
dddbc90c
RV
8203 (source
8204 (origin
8205 (method url-fetch)
8206 (uri (string-append
8207 "https://hackage.haskell.org/package/network/network-"
8208 version
8209 ".tar.gz"))
8210 (sha256
8211 (base32
d4473202 8212 "0im8k51rw3ahmr23ny10pshwbz09jfg0fdpam0hzf2hgxnzmvxb1"))))
dddbc90c
RV
8213 (build-system haskell-build-system)
8214 ;; The regression tests depend on an unpublished module.
8215 (arguments `(#:tests? #f))
8216 (native-inputs
8217 `(("ghc-hunit" ,ghc-hunit)
8218 ("ghc-doctest" ,ghc-doctest)
8219 ("ghc-test-framework" ,ghc-test-framework)
8220 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)))
8221 (home-page "https://github.com/haskell/network")
8222 (synopsis "Low-level networking interface")
8223 (description
8224 "This package provides a low-level networking interface.")
8225 (license license:bsd-3)))
4780db2c 8226
30eebbe6
TS
8227(define-public ghc-network-bsd
8228 (package
8229 (name "ghc-network-bsd")
8230 (version "2.8.0.0")
8231 (source
8232 (origin
8233 (method url-fetch)
8234 (uri (string-append "https://hackage.haskell.org/package/"
8235 "network-bsd/network-bsd-" version ".tar.gz"))
8236 (sha256
8237 (base32
8238 "0dfbwgrr28y6ypw7p1ppqg7v746qf14569q4xazj4ahdjw2xkpi5"))))
8239 (build-system haskell-build-system)
8240 (inputs
8241 `(("ghc-network" ,ghc-network)))
8242 (home-page "https://github.com/haskell/network-bsd")
8243 (synopsis "POSIX network database (<netdb.h>) API")
8244 (description "This package provides Haskell bindings to the the POSIX
8245network database (<netdb.h>) API.")
8246 (license license:bsd-3)))
8247
096781a1
TS
8248(define-public ghc-network-byte-order
8249 (package
8250 (name "ghc-network-byte-order")
8251 (version "0.1.1.1")
8252 (source
8253 (origin
8254 (method url-fetch)
8255 (uri (string-append "https://hackage.haskell.org/package/"
8256 "network-byte-order/network-byte-order-"
8257 version ".tar.gz"))
8258 (sha256
8259 (base32
8260 "19cs6157amcc925vwr92q1azwwzkbam5g0k70i6qi80fhpikh37c"))))
8261 (build-system haskell-build-system)
8262 (native-inputs
8263 `(("ghc-doctest" ,ghc-doctest)))
3ef91e15 8264 (home-page "https://hackage.haskell.org/package/network-byte-order")
096781a1
TS
8265 (synopsis "Network byte order utilities")
8266 (description "This library provides peek and poke functions for network
8267byte order.")
8268 (license license:bsd-3)))
8269
dddbc90c
RV
8270(define-public ghc-network-info
8271 (package
8272 (name "ghc-network-info")
8273 (version "0.2.0.10")
8274 (source
8275 (origin
8276 (method url-fetch)
8277 (uri (string-append "https://hackage.haskell.org/package/"
8278 "network-info-" version "/"
8279 "network-info-" version ".tar.gz"))
8280 (sha256
8281 (base32
8282 "0anmgzcpnz7nw3n6vq0r25m1s9l2svpwi83wza0lzkrlbnbzd02n"))))
8283 (build-system haskell-build-system)
8284 (home-page "https://github.com/jystic/network-info")
8285 (synopsis "Access the local computer's basic network configuration")
8286 (description "This Haskell library provides simple read-only access to the
8287local computer's networking configuration. It is currently capable of
8288getting a list of all the network interfaces and their respective
8289IPv4, IPv6 and MAC addresses.")
8290 (license license:bsd-3)))
8291
8292(define-public ghc-network-uri
8293 (package
8294 (name "ghc-network-uri")
8295 (version "2.6.1.0")
534d6caa 8296 (outputs '("out" "static" "doc"))
dddbc90c
RV
8297 (source
8298 (origin
8299 (method url-fetch)
8300 (uri (string-append
8301 "https://hackage.haskell.org/package/network-uri/network-uri-"
8302 version
8303 ".tar.gz"))
8304 (sha256
8305 (base32
8306 "1w27zkvn39kjr9lmw9421y8w43h572ycsfafsb7kyvr3a4ihlgj2"))))
8307 (build-system haskell-build-system)
8308 (arguments
8309 `(#:tests? #f)) ; FIXME: currently missing libraries used for tests.
8310 (inputs
8311 `(("ghc-network" ,ghc-network)))
8312 (native-inputs
8313 `(("ghc-hunit" ,ghc-hunit)))
8314 (home-page
8315 "https://github.com/haskell/network-uri")
8316 (synopsis "Library for URI manipulation")
8317 (description "This package provides an URI manipulation interface. In
8318@code{network-2.6} the @code{Network.URI} module was split off from the
8319@code{network} package into this package.")
8320 (license license:bsd-3)))
8321
8322(define-public ghc-newtype-generics
8323 (package
8324 (name "ghc-newtype-generics")
c07e16dd 8325 (version "0.5.4")
dddbc90c
RV
8326 (source
8327 (origin
8328 (method url-fetch)
8329 (uri (string-append "https://hackage.haskell.org/package/"
8330 "newtype-generics/newtype-generics-"
8331 version ".tar.gz"))
8332 (sha256
8333 (base32
c07e16dd 8334 "0cprfg4n0z62cnix1qrbc79bfdd4s50b05fj9m9hk6vm1pc3szq0"))))
dddbc90c
RV
8335 (build-system haskell-build-system)
8336 (native-inputs
8337 `(("ghc-hspec" ,ghc-hspec)
8338 ("hspec-discover" ,hspec-discover)))
702a1012 8339 (home-page "https://github.com/sjakobi/newtype-generics")
dddbc90c
RV
8340 (synopsis "Typeclass and set of functions for working with newtypes")
8341 (description "The @code{Newtype} typeclass represents the packing and
8342unpacking of a newtype, and allows you to operate under that newtype with
8343functions such as @code{ala}. Generics support was added in version 0.4,
8344making this package a full replacement for the original newtype package,
8345and an alternative to newtype-th.")
8346 (license license:bsd-3)))
8347
6b652f5a
JS
8348(define-public ghc-non-negative
8349 (package
8350 (name "ghc-non-negative")
8351 (version "0.1.2")
8352 (source
8353 (origin
8354 (method url-fetch)
8355 (uri
8356 (string-append
8357 "https://hackage.haskell.org/package/non-negative/non-negative-"
8358 version ".tar.gz"))
8359 (sha256
8360 (base32
8361 "0f01q916dzkl1i0v15qrw9cviycki5g3fgi6x8gs45iwbzssq52n"))))
8362 (build-system haskell-build-system)
8363 (inputs
8364 `(("ghc-semigroups" ,ghc-semigroups)
8365 ("ghc-utility-ht" ,ghc-utility-ht)
8366 ("ghc-quickcheck" ,ghc-quickcheck)))
8367 (home-page "https://hackage.haskell.org/package/non-negative")
8368 (synopsis "Non-negative numbers class")
8369 (description "This library provides a class for non-negative numbers,
8370a wrapper which can turn any ordered numeric type into a member of that
8371class, and a lazy number type for non-negative numbers (a generalization
8372of Peano numbers).")
8373 (license license:gpl3+)))
8374
49bcca84
ASM
8375(define-public ghc-nonce
8376 (package
8377 (name "ghc-nonce")
8378 (version "1.0.7")
8379 (source
8380 (origin
8381 (method url-fetch)
8382 (uri (string-append
8383 "https://hackage.haskell.org/package/nonce/"
8384 "nonce-" version ".tar.gz"))
8385 (sha256
8386 (base32
8387 "1q9ph0aq51mvdvydnriqd12sfin36pfb8f588zgac1ybn8r64ksb"))))
8388 (build-system haskell-build-system)
8389 (inputs
8390 `(("ghc-base64-bytestring" ,ghc-base64-bytestring)
8391 ("ghc-entropy" ,ghc-entropy)
8392 ("ghc-unliftio" ,ghc-unliftio)
8393 ("ghc-unliftio-core" ,ghc-unliftio-core)))
8394 (home-page "https://github.com/prowdsponsor/nonce")
8395 (synopsis "Generate cryptographic nonces in Haskell")
8396 (description
8397 "A nonce is an arbitrary number used only once in a cryptographic
8398communication. This package contain helper functions for generating nonces.
8399There are many kinds of nonces used in different situations. It's not
8400guaranteed that by using the nonces from this package you won't have any
8401security issues. Please make sure that the nonces generated via this
8402package are usable on your design.")
8403 (license license:bsd-3)))
8404
194a82e6
TS
8405(define-public ghc-numeric-extras
8406 (package
8407 (name "ghc-numeric-extras")
8408 (version "0.1")
8409 (source
8410 (origin
8411 (method url-fetch)
8412 (uri (string-append "https://hackage.haskell.org/package/"
8413 "numeric-extras/numeric-extras-"
8414 version ".tar.gz"))
8415 (sha256
8416 (base32
8417 "1mk11c0gz1yjy5b8dvq6czfny57pln0bs7x28fz38qyr44872067"))))
8418 (build-system haskell-build-system)
8419 (home-page "https://github.com/ekmett/numeric-extras")
8420 (synopsis "Useful tools from the C standard library")
8421 (description "This library provides some useful tools from the C
8422standard library.")
8423 (license license:bsd-3)))
8424
dddbc90c
RV
8425(define-public ghc-objectname
8426 (package
8427 (name "ghc-objectname")
8428 (version "1.1.0.1")
8429 (source
8430 (origin
8431 (method url-fetch)
8432 (uri (string-append
8433 "https://hackage.haskell.org/package/ObjectName/ObjectName-"
8434 version
8435 ".tar.gz"))
8436 (sha256
8437 (base32
8438 "046jm94rmm46cicd31pl54vdvfjvhd9ffbfycy2lxzc0fliyznvj"))))
8439 (build-system haskell-build-system)
8440 (home-page "https://hackage.haskell.org/package/ObjectName")
8441 (synopsis "Helper library for Haskell OpenGL")
8442 (description "This tiny package contains the class ObjectName, which
8443corresponds to the general notion of explicitly handled identifiers for API
8444objects, e.g. a texture object name in OpenGL or a buffer object name in
8445OpenAL.")
8446 (license license:bsd-3)))
8447
8448(define-public ghc-old-locale
8449 (package
8450 (name "ghc-old-locale")
8451 (version "1.0.0.7")
8452 (source
8453 (origin
8454 (method url-fetch)
8455 (uri (string-append
8456 "https://hackage.haskell.org/package/old-locale/old-locale-"
8457 version
8458 ".tar.gz"))
8459 (sha256
8460 (base32 "0l3viphiszvz5wqzg7a45zp40grwlab941q5ay29iyw8p3v8pbyv"))))
8461 (build-system haskell-build-system)
8462 (arguments
8463 `(#:cabal-revision
8464 ("2" "04b9vn007hlvsrx4ksd3r8r3kbyaj2kvwxchdrmd4370qzi8p6gs")))
8465 (home-page "https://hackage.haskell.org/package/old-locale")
8466 (synopsis "Adapt to locale conventions")
8467 (description
8468 "This package provides the ability to adapt to locale conventions such as
8469date and time formats.")
8470 (license license:bsd-3)))
8471
8472(define-public ghc-old-time
8473 (package
8474 (name "ghc-old-time")
8475 (version "1.1.0.3")
8476 (source
8477 (origin
8478 (method url-fetch)
8479 (uri (string-append
8480 "https://hackage.haskell.org/package/old-time/old-time-"
8481 version
8482 ".tar.gz"))
8483 (sha256
8484 (base32
8485 "1h9b26s3kfh2k0ih4383w90ibji6n0iwamxp6rfp2lbq1y5ibjqw"))))
8486 (build-system haskell-build-system)
8487 (arguments
8488 `(#:cabal-revision
8489 ("2" "1j6ln1dkvhdvnwl33bp0xf9lhc4sybqk0aw42p8cq81xwwzbn7y9")))
8490 (inputs
8491 `(("ghc-old-locale" ,ghc-old-locale)))
8492 (home-page "https://hackage.haskell.org/package/old-time")
8493 (synopsis "Time compatibility library for Haskell")
8494 (description "Old-time is a package for backwards compatibility with the
8495old @code{time} library. For new projects, the newer
8496@uref{https://hackage.haskell.org/package/time, time library} is recommended.")
8497 (license license:bsd-3)))
8498
8499(define-public ghc-opengl
8500 (package
8501 (name "ghc-opengl")
79a06910 8502 (version "3.0.3.0")
dddbc90c
RV
8503 (source
8504 (origin
8505 (method url-fetch)
8506 (uri (string-append
8507 "https://hackage.haskell.org/package/OpenGL/OpenGL-"
8508 version
8509 ".tar.gz"))
8510 (sha256
8511 (base32
79a06910 8512 "069fg8jcxqq2z9iikynd8vi3jxm2b5y3qywdh4bdviyzab3zy1as"))))
dddbc90c 8513 (build-system haskell-build-system)
79a06910
TS
8514 (arguments
8515 `(#:cabal-revision
8516 ("1" "1748mrb6r9mpf5jbrx436lwbg8w6dadyy8dhxw2dwnrj5z7zf741")))
dddbc90c
RV
8517 (inputs
8518 `(("ghc-objectname" ,ghc-objectname)
8519 ("ghc-gluraw" ,ghc-gluraw)
8520 ("ghc-statevar" ,ghc-statevar)
8521 ("ghc-openglraw" ,ghc-openglraw)))
228d2901 8522 (home-page "https://wiki.haskell.org/Opengl")
dddbc90c
RV
8523 (synopsis "Haskell bindings for the OpenGL graphics system")
8524 (description "This package provides Haskell bindings for the OpenGL
8525graphics system (GL, version 4.5) and its accompanying utility library (GLU,
8526version 1.3).")
8527 (license license:bsd-3)))
8528
8529(define-public ghc-openglraw
8530 (package
8531 (name "ghc-openglraw")
15ebc815 8532 (version "3.3.3.0")
dddbc90c
RV
8533 (source
8534 (origin
8535 (method url-fetch)
8536 (uri (string-append
8537 "https://hackage.haskell.org/package/OpenGLRaw/OpenGLRaw-"
8538 version
8539 ".tar.gz"))
8540 (sha256
8541 (base32
15ebc815 8542 "0zgllb4bcash2i2cispa3j565aw3dpxs41ghmhpvyvi4a6xmyldx"))))
dddbc90c 8543 (build-system haskell-build-system)
54a5fd07
TS
8544 (arguments
8545 `(#:extra-directories ("glu")))
dddbc90c
RV
8546 (inputs
8547 `(("ghc-half" ,ghc-half)
8548 ("ghc-fixed" ,ghc-fixed)
8549 ("glu" ,glu)))
228d2901 8550 (home-page "https://wiki.haskell.org/Opengl")
dddbc90c
RV
8551 (synopsis "Raw Haskell bindings for the OpenGL graphics system")
8552 (description "OpenGLRaw is a raw Haskell binding for the OpenGL 4.5
8553graphics system and lots of OpenGL extensions. It is basically a 1:1 mapping
8554of OpenGL's C API, intended as a basis for a nicer interface. OpenGLRaw
8555offers access to all necessary functions, tokens and types plus a general
8556facility for loading extension entries. The module hierarchy closely mirrors
8557the naming structure of the OpenGL extensions, making it easy to find the
8558right module to import. All API entries are loaded dynamically, so no special
8559C header files are needed for building this package. If an API entry is not
8560found at runtime, a userError is thrown.")
8561 (license license:bsd-3)))
8562
8563(define-public ghc-operational
8564 (package
8565 (name "ghc-operational")
8566 (version "0.2.3.5")
8567 (source
8568 (origin
8569 (method url-fetch)
8570 (uri (string-append "https://hackage.haskell.org/package/operational/"
8571 "operational-" version ".tar.gz"))
8572 (sha256
8573 (base32
8574 "1x2abg2q9d26h1vzj40r6k7k3gqgappbs4g9d853vvg77837km4i"))))
8575 (build-system haskell-build-system)
8576 (inputs
8577 `(("ghc-random" ,ghc-random)))
8578 (home-page "http://wiki.haskell.org/Operational")
8579 (synopsis "Implementation of difficult monads made easy with operational semantics")
8580 (description
8581 "This library makes it easy to implement monads with tricky control
8582flow. This is useful for: writing web applications in a sequential style,
8583programming games with a uniform interface for human and AI players and easy
8584replay capababilities, implementing fast parser monads, designing monadic
8585DSLs, etc.")
8586 (license license:bsd-3)))
8587
6f1477d2
JS
8588(define-public ghc-optional-args
8589 (package
8590 (name "ghc-optional-args")
8591 (version "1.0.2")
8592 (source
8593 (origin
8594 (method url-fetch)
8595 (uri (string-append
8596 "mirror://hackage/package/optional-args/optional-args-"
8597 version
8598 ".tar.gz"))
8599 (sha256
8600 (base32
8601 "1r5hhn6xvc01grggxdyy48daibwzi0aikgidq0ahpa6bfynm8d1f"))))
8602 (build-system haskell-build-system)
8603 (home-page
8604 "http://hackage.haskell.org/package/optional-args")
8605 (synopsis "Optional function arguments")
8606 (description
8607 "This library provides a type for specifying @code{Optional} function
8608arguments.")
8609 (license license:bsd-3)))
8610
dddbc90c
RV
8611(define-public ghc-options
8612 (package
8613 (name "ghc-options")
8614 (version "1.2.1.1")
8615 (source
8616 (origin
8617 (method url-fetch)
8618 (uri (string-append
8619 "https://hackage.haskell.org/package/options/options-"
8620 version ".tar.gz"))
8621 (sha256
8622 (base32
8623 "0qjs0v1ny52w51n5582d4z8wy9h6n0zw1xb5dh686ff5wadflgi8"))))
8624 (build-system haskell-build-system)
24cf2a8b
TS
8625 (arguments
8626 `(#:phases
8627 (modify-phases %standard-phases
8628 (add-before 'configure 'update-constraints
8629 (lambda _
8630 (substitute* "options.cabal"
8631 (("chell >= 0\\.4 && < 0\\.5") "chell >= 0.4 && < 0.6"))
8632 #t)))))
dddbc90c
RV
8633 (inputs
8634 `(("ghc-monads-tf" ,ghc-monads-tf)
8635 ("ghc-chell" ,ghc-chell)
8636 ("ghc-chell-quickcheck" ,ghc-chell-quickcheck)))
8637 (home-page "https://john-millikin.com/software/haskell-options/")
8638 (synopsis "Powerful and easy-to-use command-line option parser")
8639 (description
8640 "The @code{options} package lets library and application developers
8641easily work with command-line options.")
8642 (license license:expat)))
8643
8644;; See ghc-system-filepath-bootstrap, chell and chell-quickcheck are required for tests.
8645(define ghc-options-bootstrap
8646 (package
8647 (name "ghc-options-bootstrap")
8648 (version "1.2.1.1")
8649 (source
8650 (origin
8651 (method url-fetch)
8652 (uri (string-append
8653 "https://hackage.haskell.org/package/options/options-"
8654 version ".tar.gz"))
8655 (sha256
8656 (base32
8657 "0qjs0v1ny52w51n5582d4z8wy9h6n0zw1xb5dh686ff5wadflgi8"))))
8658 (build-system haskell-build-system)
8659 (arguments
8660 `(#:tests? #f))
8661 (inputs
8662 `(("ghc-monads-tf" ,ghc-monads-tf)))
8663 (home-page "https://john-millikin.com/software/haskell-options/")
8664 (synopsis "Powerful and easy-to-use command-line option parser")
8665 (description
8666 "The @code{options} package lets library and application developers
8667easily work with command-line options.")
8668 (license license:expat)))
8669
8670
8671(define-public ghc-optparse-applicative
8672 (package
8673 (name "ghc-optparse-applicative")
74bf6965 8674 (version "0.14.3.0")
dddbc90c
RV
8675 (source
8676 (origin
8677 (method url-fetch)
8678 (uri (string-append
8679 "https://hackage.haskell.org/package/optparse-applicative"
8680 "/optparse-applicative-" version ".tar.gz"))
8681 (sha256
8682 (base32
74bf6965 8683 "0qvn1s7jwrabbpmqmh6d6iafln3v3h9ddmxj2y4m0njmzq166ivj"))))
dddbc90c 8684 (build-system haskell-build-system)
74bf6965
TS
8685 (arguments
8686 `(#:cabal-revision
8687 ("2" "1a08dqjly1xy730f6jf45frr8g8gap0n1vg9b0mpzpydv0kgzmrp")))
dddbc90c
RV
8688 (inputs
8689 `(("ghc-transformers-compat" ,ghc-transformers-compat)
8690 ("ghc-ansi-wl-pprint" ,ghc-ansi-wl-pprint)))
8691 (native-inputs
8692 `(("ghc-quickcheck" ,ghc-quickcheck)))
8693 (home-page "https://github.com/pcapriotti/optparse-applicative")
8694 (synopsis "Utilities and combinators for parsing command line options")
8695 (description "This package provides utilities and combinators for parsing
8696command line options in Haskell.")
8697 (license license:bsd-3)))
8698
d56c8120
NG
8699(define-public ghc-jira-wiki-markup
8700 (package
8701 (name "ghc-jira-wiki-markup")
8702 (version "1.0.0")
8703 (source
8704 (origin
8705 (method url-fetch)
8706 (uri (string-append
8707 "https://hackage.haskell.org/package/jira-wiki-markup/"
8708 "jira-wiki-markup-" version ".tar.gz"))
8709 (sha256
8710 (base32 "1sl2jjcsqg61si33mxjwpf8zdn56kbbgcwqqqzbgifx2qbv4wmf8"))))
8711 (build-system haskell-build-system)
8712 (native-inputs
8713 `(("ghc-tasty" ,ghc-tasty)
8714 ("ghc-tasty-hunit" ,ghc-tasty-hunit)))
8715 (home-page "https://github.com/tarleb/jira-wiki-markup")
8716 (synopsis "Handle Jira wiki markup")
8717 (description
8718 "Parse jira wiki text into an abstract syntax tree for easy transformation
8719to other formats.")
8720 (license license:expat)))
8721
20690771
NG
8722(define-public ghc-emojis
8723 (package
8724 (name "ghc-emojis")
8725 (version "0.1")
8726 (source
8727 (origin
8728 (method url-fetch)
8729 (uri (string-append
8730 "https://hackage.haskell.org/package/emojis/"
8731 "emojis-" version ".tar.gz"))
8732 (sha256
8733 (base32 "1c6zkj9gmk1y90gbdrn50hyp7mw1mggzhnr2khqd728ryipw60ss"))))
8734 (build-system haskell-build-system)
8735 (native-inputs
8736 `(("ghc-hunit" ,ghc-hunit)))
8737 (home-page "https://github.com/jgm/emojis#readme")
8738 (synopsis "Conversion between emoji characters and their names.")
8739 (description
8740 "This package provides functions for converting emoji names to emoji
8741characters and vice versa.
8742
8743How does it differ from the @code{emoji} package?
8744@itemize
8745@item It supports a fuller range of emojis, including all those supported by
8746GitHub
8747@item It supports lookup of emoji aliases from emoji
8748@item It uses Text rather than String
8749@item It has a lighter dependency footprint: in particular, it does not
8750require aeson
8751@item It does not require TemplateHaskell
8752@end itemize")
8753 (license license:bsd-3)))
8754
e90a06fc
NG
8755(define-public ghc-text-conversions
8756 (package
8757 (name "ghc-text-conversions")
8758 (version "0.3.0")
8759 (source
8760 (origin
8761 (method url-fetch)
8762 (uri (string-append
8763 "https://hackage.haskell.org/package/text-conversions/"
8764 "text-conversions-" version ".tar.gz"))
8765 (sha256
8766 (base32 "089c56vdj9xysqfr1hnvbnrghlg83q6w10xk02gflpsidcpvwmhp"))))
8767 (build-system haskell-build-system)
8768 (inputs
8769 `(("ghc-base16-bytestring" ,ghc-base16-bytestring)
8770 ("ghc-base64-bytestring" ,ghc-base64-bytestring)
8771 ("ghc-errors" ,ghc-errors)))
8772 (native-inputs
8773 `(("ghc-hspec" ,ghc-hspec)
27b09f3a 8774 ("hspec-discover" ,hspec-discover)))
e90a06fc
NG
8775 (home-page "https://github.com/cjdev/text-conversions#readme")
8776 (synopsis "Safe conversions between textual types")
8777 (description "Safe conversions between textual types")
8778 (license license:isc)))
8779
ba7cbae3
NG
8780(define-public ghc-doclayout
8781 (package
8782 (name "ghc-doclayout")
8783 (version "0.3")
8784 (source
8785 (origin
8786 (method url-fetch)
8787 (uri (string-append
8788 "https://hackage.haskell.org/package/doclayout/"
8789 "doclayout-" version ".tar.gz"))
8790 (sha256
8791 (base32 "1wmnwq28jcyd6c80srivsnd5znmyl9sgmwwnlk2crwiiwqadbal7"))))
8792 (build-system haskell-build-system)
8793 (inputs
8794 `(("ghc-safe" ,ghc-safe)))
8795 (native-inputs
8796 `(("ghc-tasty" ,ghc-tasty)
8797 ("ghc-tasty-golden" ,ghc-tasty-golden)
8798 ("ghc-tasty-hunit" ,ghc-tasty-hunit)))
8799 (home-page "https://github.com/jgm/doclayout")
8800 (synopsis "Pretty-printing library for laying out text documents")
8801 (description
8802 "doclayout is a pretty-printing library for laying out text documents,
8803with several features not present in pretty-printing libraries designed for
8804code. It was designed for use in @code{Pandoc}.")
8805 (license license:bsd-3)))
8806
dddbc90c
RV
8807(define-public ghc-pandoc
8808 (package
8809 (name "ghc-pandoc")
d9b1567a 8810 (version "2.7.3")
dddbc90c
RV
8811 (source
8812 (origin
8813 (method url-fetch)
8814 (uri (string-append "https://hackage.haskell.org/package/pandoc/pandoc-"
8815 version ".tar.gz"))
d9b1567a
TS
8816 (patches (search-patches "ghc-pandoc-fix-html-tests.patch"
8817 "ghc-pandoc-fix-latex-test.patch"))
dddbc90c
RV
8818 (sha256
8819 (base32
d9b1567a 8820 "0dpjrr40h54cljzhvixyym07z792a9izg6b9dmqpjlgcg4rj0xx8"))))
dddbc90c 8821 (build-system haskell-build-system)
c18e4f3e
RW
8822 (arguments
8823 `(#:phases
8824 (modify-phases %standard-phases
8825 (add-after 'unpack 'find-library
8826 (lambda _
8827 (substitute* "test/Tests/Command.hs"
8828 (("= dynlibEnv")
8829 (format #f "= [(\"LD_LIBRARY_PATH\" , \"~a/dist/build\")]"
8830 (getcwd))))
8831 #t)))))
8832 (outputs '("out" "static" "doc"))
dddbc90c
RV
8833 (inputs
8834 `(("ghc-aeson" ,ghc-aeson)
8835 ("ghc-aeson-pretty" ,ghc-aeson-pretty)
8836 ("ghc-base64-bytestring" ,ghc-base64-bytestring)
8837 ("ghc-blaze-html" ,ghc-blaze-html)
8838 ("ghc-blaze-markup" ,ghc-blaze-markup)
8839 ("ghc-cmark-gfm" ,ghc-cmark-gfm)
8840 ("ghc-data-default" ,ghc-data-default)
dddbc90c
RV
8841 ("ghc-diff" ,ghc-diff)
8842 ("ghc-doctemplates" ,ghc-doctemplates)
8843 ("ghc-executable-path" ,ghc-executable-path)
8844 ("ghc-glob" ,ghc-glob)
8845 ("ghc-haddock-library" ,ghc-haddock-library)
8846 ("ghc-hslua" ,ghc-hslua)
d9b1567a 8847 ("ghc-hslua-module-system" ,ghc-hslua-module-system)
dddbc90c 8848 ("ghc-hslua-module-text" ,ghc-hslua-module-text)
d9b1567a 8849 ("ghc-hsyaml" ,ghc-hsyaml)
dddbc90c
RV
8850 ("ghc-http" ,ghc-http)
8851 ("ghc-http-client" ,ghc-http-client)
8852 ("ghc-http-client-tls" ,ghc-http-client-tls)
8853 ("ghc-http-types" ,ghc-http-types)
d9b1567a 8854 ("ghc-ipynb" ,ghc-ipynb)
dddbc90c
RV
8855 ("ghc-juicypixels" ,ghc-juicypixels)
8856 ("ghc-network" ,ghc-network)
8857 ("ghc-network-uri" ,ghc-network-uri)
dddbc90c
RV
8858 ("ghc-pandoc-types" ,ghc-pandoc-types)
8859 ("ghc-random" ,ghc-random)
8860 ("ghc-scientific" ,ghc-scientific)
8861 ("ghc-sha" ,ghc-sha)
8862 ("ghc-skylighting" ,ghc-skylighting)
8863 ("ghc-split" ,ghc-split)
8864 ("ghc-syb" ,ghc-syb)
8865 ("ghc-tagsoup" ,ghc-tagsoup)
8866 ("ghc-temporary" ,ghc-temporary)
8867 ("ghc-texmath" ,ghc-texmath)
d9b1567a 8868 ("ghc-unicode-transforms" ,ghc-unicode-transforms)
dddbc90c
RV
8869 ("ghc-unordered-containers" ,ghc-unordered-containers)
8870 ("ghc-vector" ,ghc-vector)
8871 ("ghc-xml" ,ghc-xml)
dddbc90c
RV
8872 ("ghc-zip-archive" ,ghc-zip-archive)
8873 ("ghc-zlib" ,ghc-zlib)))
8874 (native-inputs
8875 `(("ghc-tasty" ,ghc-tasty)
8876 ("ghc-tasty-golden" ,ghc-tasty-golden)
8877 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
d9b1567a 8878 ("ghc-tasty-lua" ,ghc-tasty-lua)
dddbc90c
RV
8879 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
8880 ("ghc-quickcheck" ,ghc-quickcheck)
8881 ("ghc-hunit" ,ghc-hunit)))
8882 (home-page "https://pandoc.org")
8883 (synopsis "Conversion between markup formats")
8884 (description
8885 "Pandoc is a Haskell library for converting from one markup format to
8886another, and a command-line tool that uses this library. It can read and
8887write Markdown and (subsets of) other formats, such as HTML, reStructuredText,
8888LaTeX, DocBook, and many more.
8889
8890Pandoc extends standard Markdown syntax with footnotes, embedded LaTeX,
8891definition lists, tables, and other features. A compatibility mode is
8892provided for those who need a drop-in replacement for Markdown.pl.")
8893 (license license:gpl2+)))
8894
d4e4a382
RW
8895(define-public pandoc
8896 (package
8897 (inherit ghc-pandoc)
8898 (name "pandoc")
8899 (arguments
8900 `(#:configure-flags
8901 (list "-fstatic"
8902 ;; Do not build trypandoc; this is the default but it's better to
8903 ;; be explicit.
8904 "-f-trypandoc"
8905 ;; TODO: Without these we cannot link the Haskell libraries
8906 ;; statically. It would be nice if we could also build the
8907 ;; shared libraries.
8908 "--disable-shared"
8909 "--disable-executable-dynamic"
8910 ;; That's where we place all static libraries
8911 "--extra-lib-dirs=static-libs/"
8912 "--ghc-option=-static")
8913 #:modules ((guix build haskell-build-system)
8914 (guix build utils)
8915 (ice-9 match)
8916 (srfi srfi-1))
8917 #:phases
8918 (modify-phases %standard-phases
8919 (add-after 'unpack 'create-simple-paths-module
8920 (lambda* (#:key outputs #:allow-other-keys)
8921 (call-with-output-file "Paths_pandoc.hs"
8922 (lambda (port)
8923 (format port "\
8924{-# LANGUAGE CPP #-}
8925{-# LANGUAGE NoRebindableSyntax #-}
8926{-# OPTIONS_GHC -fno-warn-missing-import-lists #-}
8927module Paths_pandoc (version,getDataDir,getDataFileName) where
8928import Prelude
8929import Data.Version (Version(..))
8930import System.Info
8931version :: Version
8932version = Version [~a] []
8933
8934datadir :: FilePath
8935datadir = \"~a/share/\" ++
8936 arch ++ \"-\" ++
8937 os ++ \"-\" ++
8938 compilerName ++ \"-~a/pandoc-~a\"
8939
8940getDataDir :: IO FilePath
8941getDataDir = return datadir
8942
8943getDataFileName :: FilePath -> IO FilePath
8944getDataFileName name = do
8945 dir <- getDataDir
8946 return (dir ++ \"/\" ++ name)
8947"
8948 (string-map (lambda (chr) (if (eq? chr #\.) #\, chr))
8949 ,(package-version ghc-pandoc))
8950 (assoc-ref outputs "out")
8951 ,(package-version ghc)
8952 ,(package-version ghc-pandoc))))
8953 #t))
8954 (add-after 'unpack 'prepare-static-libraries
8955 (lambda* (#:key inputs #:allow-other-keys)
8956 (mkdir-p (string-append (getcwd) "/static-libs"))
8957 (for-each
8958 (lambda (input)
8959 (when (or (string-prefix? "static-" (car input))
8960 (string-prefix? "ghc" (car input)))
8961 (match (find-files (cdr input) "\\.a$")
8962 ((and (first . rest) libs)
8963 (for-each (lambda (lib)
8964 (let ((target (string-append (getcwd) "/static-libs/"
8965 (basename lib))))
8966 (unless (file-exists? target)
8967 (symlink first target))))
8968 libs))
8969 (_ #f))))
8970 inputs)
8971 #t))
8972 (delete 'check)
8973 (add-after 'install 'post-install-check
8974 (assoc-ref %standard-phases 'check)))))
8975 (outputs '("out" "lib" "static" "doc"))
8976 (inputs
8977 (let* ((direct-inputs (package-inputs ghc-pandoc))
8978 (all-static-inputs
8979 (map (lambda (pkg)
8980 (list (string-append "static-" (package-name pkg))
8981 pkg "static"))
8982 (delete-duplicates
8983 (append (map cadr direct-inputs)
8984 (filter (lambda (pkg)
8985 (string-prefix? "ghc-" (package-name pkg)))
8986 (package-closure
8987 (map cadr direct-inputs))))))))
8988 `(("zlib:static" ,zlib "static")
8989 ,@all-static-inputs
8990 ,@direct-inputs)))
8991 (native-inputs
8992 (let* ((direct-inputs (package-native-inputs ghc-pandoc))
8993 (all-static-inputs
8994 (map (lambda (pkg)
8995 (list (string-append "static-" (package-name pkg))
8996 pkg "static"))
8997 (delete-duplicates
8998 (append (map cadr direct-inputs)
8999 (filter (lambda (pkg)
9000 (string-prefix? "ghc-" (package-name pkg)))
9001 (package-closure
9002 (map cadr direct-inputs))))))))
9003 `(,@all-static-inputs
9004 ,@direct-inputs)))))
9005
dddbc90c
RV
9006(define-public ghc-pandoc-citeproc
9007 (package
9008 (name "ghc-pandoc-citeproc")
2da02d09 9009 (version "0.16.2")
dddbc90c
RV
9010 (source
9011 (origin
9012 (method url-fetch)
9013 (uri (string-append "https://hackage.haskell.org/package/"
9014 "pandoc-citeproc/pandoc-citeproc-"
9015 version ".tar.gz"))
9016 (sha256
9017 (base32
2da02d09 9018 "15mm17awgi1b5yazwhr5nh8b59qml1qk6pz6gpyijks70fq2arsv"))))
dddbc90c
RV
9019 (build-system haskell-build-system)
9020 (arguments
9021 `(#:phases
9022 (modify-phases %standard-phases
9023 ;; Many YAML tests (44) are failing do to changes in ghc-yaml:
9024 ;; <https://github.com/jgm/pandoc-citeproc/issues/342>.
9025 (add-before 'configure 'patch-tests
9026 (lambda _
9027 (substitute* "tests/test-pandoc-citeproc.hs"
9028 (("let allTests = citeprocTests \\+\\+ biblio2yamlTests")
9029 "let allTests = citeprocTests"))))
9030 ;; Tests need to be run after installation.
9031 (delete 'check)
9032 (add-after 'install 'post-install-check
9033 (assoc-ref %standard-phases 'check)))))
9034 (inputs
9035 `(("ghc-pandoc-types" ,ghc-pandoc-types)
9036 ("ghc-pandoc" ,ghc-pandoc)
9037 ("ghc-tagsoup" ,ghc-tagsoup)
9038 ("ghc-aeson" ,ghc-aeson)
9039 ("ghc-vector" ,ghc-vector)
9040 ("ghc-xml-conduit" ,ghc-xml-conduit)
9041 ("ghc-unordered-containers" ,ghc-unordered-containers)
9042 ("ghc-data-default" ,ghc-data-default)
9043 ("ghc-setenv" ,ghc-setenv)
9044 ("ghc-split" ,ghc-split)
9045 ("ghc-yaml" ,ghc-yaml)
9046 ("ghc-hs-bibutils" ,ghc-hs-bibutils)
9047 ("ghc-rfc5051" ,ghc-rfc5051)
9048 ("ghc-syb" ,ghc-syb)
9049 ("ghc-old-locale" ,ghc-old-locale)
9050 ("ghc-aeson-pretty" ,ghc-aeson-pretty)
9051 ("ghc-attoparsec" ,ghc-attoparsec)
9052 ("ghc-temporary" ,ghc-temporary)))
9053 (home-page "https://github.com/jgm/pandoc-citeproc")
9054 (synopsis "Library for using pandoc with citeproc")
9055 (description
9056 "The @code{pandoc-citeproc} library exports functions for using the
9057citeproc system with pandoc. It relies on @code{citeproc-hs}, a library for
9058rendering bibliographic reference citations into a variety of styles using a
9059macro language called @dfn{Citation Style Language} (CSL). This package also
9060contains an executable @code{pandoc-citeproc}, which works as a pandoc filter,
9061and also has a mode for converting bibliographic databases a YAML format
9062suitable for inclusion in pandoc YAML metadata.")
9063 (license license:bsd-3)))
9064
e380ef14
RW
9065(define-public pandoc-citeproc
9066 (package (inherit ghc-pandoc-citeproc)
9067 (name "pandoc-citeproc")
9068 (arguments
9069 `(#:configure-flags
9070 (list "-fstatic"
9071 "--disable-shared"
9072 "--disable-executable-dynamic"
9073 ;; That's where we place all static libraries
9074 "--extra-lib-dirs=static-libs/"
9075 "--ghc-option=-static")
9076 #:modules ((guix build haskell-build-system)
9077 (guix build utils)
9078 (ice-9 match)
9079 (srfi srfi-1))
9080 #:phases
9081 (modify-phases %standard-phases
9082 ;; Many YAML tests (44) are failing do to changes in ghc-yaml:
9083 ;; <https://github.com/jgm/pandoc-citeproc/issues/342>.
9084 (add-before 'configure 'patch-tests
9085 (lambda _
9086 (substitute* "tests/test-pandoc-citeproc.hs"
9087 (("let allTests = citeprocTests \\+\\+ biblio2yamlTests")
9088 "let allTests = citeprocTests"))))
9089 ;; Tests need to be run after installation.
9090 (delete 'check)
9091 (add-after 'install 'post-install-check
9092 (assoc-ref %standard-phases 'check))
9093 (add-after 'unpack 'create-simple-paths-module
9094 (lambda* (#:key outputs #:allow-other-keys)
9095 (call-with-output-file "Paths_pandoc_citeproc.hs"
9096 (lambda (port)
9097 (format port "\
9098{-# LANGUAGE CPP #-}
9099{-# LANGUAGE NoRebindableSyntax #-}
9100{-# OPTIONS_GHC -fno-warn-missing-import-lists #-}
9101module Paths_pandoc_citeproc (version,getDataFileName) where
9102import Prelude
9103import Data.Version (Version(..))
9104import System.Info
9105version :: Version
9106version = Version [~a] []
9107
9108datadir :: FilePath
9109datadir = \"~a/share/\" ++
9110 arch ++ \"-\" ++
9111 os ++ \"-\" ++
9112 compilerName ++ \"-~a/pandoc-citeproc-~a\"
9113
9114getDataDir :: IO FilePath
9115getDataDir = return datadir
9116
9117getDataFileName :: FilePath -> IO FilePath
9118getDataFileName name = do
9119 dir <- getDataDir
9120 return (dir ++ \"/\" ++ name)
9121"
9122 (string-map (lambda (chr) (if (eq? chr #\.) #\, chr))
9123 ,(package-version ghc-pandoc-citeproc))
9124 (assoc-ref outputs "out")
9125 ,(package-version ghc)
9126 ,(package-version ghc-pandoc-citeproc))))
9127 #t))
9128 (add-after 'unpack 'prepare-static-libraries
9129 (lambda* (#:key inputs #:allow-other-keys)
9130 (mkdir-p (string-append (getcwd) "/static-libs"))
9131 (for-each
9132 (lambda (input)
9133 (when (or (string-prefix? "static-" (car input))
9134 (string-prefix? "ghc" (car input)))
9135 (match (find-files (cdr input) "\\.a$")
9136 ((and (first . rest) libs)
9137 (for-each (lambda (lib)
9138 (let ((target (string-append (getcwd) "/static-libs/"
9139 (basename lib))))
9140 (unless (file-exists? target)
9141 (symlink first target))))
9142 libs))
9143 (_ #f))))
9144 inputs)
9145 #t)))))
9146 (inputs
9147 (let* ((direct-inputs
9148 (cons `("ghc-pandoc" ,pandoc)
9149 (alist-delete "ghc-pandoc"
9150 (package-inputs ghc-pandoc-citeproc))))
9151 (all-static-inputs
9152 (map (lambda (pkg)
9153 (list (string-append "static-" (package-name pkg))
9154 pkg "static"))
9155 (delete-duplicates
9156 (append (map cadr direct-inputs)
9157 (filter (lambda (pkg)
9158 (string-prefix? "ghc-" (package-name pkg)))
9159 (package-closure
9160 (map cadr direct-inputs))))))))
9161 `(("zlib:static" ,zlib "static")
9162 ("pandoc" ,pandoc "lib")
9163 ,@all-static-inputs
9164 ,@direct-inputs)))
9165 (synopsis "Pandoc filter for bibliographic references")))
9166
dddbc90c
RV
9167(define-public ghc-pandoc-types
9168 (package
9169 (name "ghc-pandoc-types")
0eaa88c8 9170 (version "1.17.6.1")
dddbc90c
RV
9171 (source (origin
9172 (method url-fetch)
9173 (uri (string-append "https://hackage.haskell.org/package/"
9174 "pandoc-types/pandoc-types-"
9175 version ".tar.gz"))
9176 (sha256
9177 (base32
0eaa88c8 9178 "1d6ygq991ddria71l7hg9yd7lq94sjy4m71rdws1v8hq943c4d0q"))))
dddbc90c 9179 (build-system haskell-build-system)
c7891956
RW
9180 (arguments
9181 `(#:phases
9182 (modify-phases %standard-phases
9183 ;; None of the directory names are actually used. By generating a
9184 ;; simpler module without references to store names we avoid
9185 ;; introducing references in the pandoc executable.
9186 (add-after 'unpack 'create-simple-paths-module
9187 (lambda _
9188 (call-with-output-file "Paths_pandoc_types.hs"
9189 (lambda (port)
9190 (format port "\
9191{-# LANGUAGE CPP #-}
9192{-# LANGUAGE NoRebindableSyntax #-}
9193{-# OPTIONS_GHC -fno-warn-missing-import-lists #-}
9194module Paths_pandoc_types (version) where
9195import Data.Version (Version(..))
9196version :: Version
9197version = Version [~a] []
9198" (string-map (lambda (chr) (if (eq? chr #\.) #\, chr)) ,version))))
9199 #t)))))
dddbc90c
RV
9200 (inputs
9201 `(("ghc-syb" ,ghc-syb)
9202 ("ghc-aeson" ,ghc-aeson)
9203 ("ghc-string-qq" ,ghc-string-qq)))
9204 (native-inputs
9205 `(("ghc-quickcheck" ,ghc-quickcheck)
9206 ("ghc-test-framework" ,ghc-test-framework)
9207 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
9208 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)
9209 ("ghc-hunit" ,ghc-hunit)))
d48b5c8a 9210 (home-page "https://johnmacfarlane.net/pandoc")
dddbc90c
RV
9211 (synopsis "Types for representing a structured document")
9212 (description
9213 "This module defines the @code{Pandoc} data structure, which is used by
9214pandoc to represent structured documents. It also provides functions for
9215building up, manipulating and serialising @code{Pandoc} structures.")
9216 (license license:bsd-3)))
9217
9218(define-public ghc-parallel
9219 (package
9220 (name "ghc-parallel")
9221 (version "3.2.2.0")
534d6caa 9222 (outputs '("out" "static" "doc"))
dddbc90c
RV
9223 (source
9224 (origin
9225 (method url-fetch)
9226 (uri (string-append
9227 "https://hackage.haskell.org/package/parallel/parallel-"
9228 version
9229 ".tar.gz"))
9230 (sha256
9231 (base32
9232 "1xkfi96w6yfpppd0nw1rnszdxmvifwzm699ilv6332ra3akm610p"))))
9233 (build-system haskell-build-system)
9234 (home-page "https://hackage.haskell.org/package/parallel")
9235 (synopsis "Parallel programming library")
9236 (description
9237 "This package provides a library for parallel programming.")
9238 (license license:bsd-3)))
9239
9240(define-public ghc-parsec-numbers
9241 (package
9242 (name "ghc-parsec-numbers")
9243 (version "0.1.0")
9244 (source
9245 (origin
9246 (method url-fetch)
9247 (uri (string-append "https://hackage.haskell.org/package/"
9248 "parsec-numbers/parsec-numbers-" version ".tar.gz"))
9249 (sha256
9250 (base32 "1gzy4v3r02kvdxvgg1nj83mmb6aph2v4ilf9c7y6nbvi2x49l0bp"))))
9251 (build-system haskell-build-system)
9252 (home-page "https://hackage.haskell.org/package/parsec-numbers")
9253 (synopsis "Utilities for parsing numbers from strings")
9254 (description
9255 "This package provides the number parsers without the need to use a large
9256(and unportable) token parser.")
9257 (license license:bsd-3)))
9258
9259(define-public ghc-parser-combinators
9260 (package
9261 (name "ghc-parser-combinators")
2f173160 9262 (version "1.1.0")
dddbc90c
RV
9263 (source
9264 (origin
9265 (method url-fetch)
9266 (uri (string-append "https://hackage.haskell.org/package/"
9267 "parser-combinators/parser-combinators-"
9268 version ".tar.gz"))
9269 (sha256
9270 (base32
2f173160 9271 "149yhbnrrl108h1jinrsxni3rwrldhphpk9bbmbpr90q5fbl4xmc"))))
dddbc90c
RV
9272 (build-system haskell-build-system)
9273 (home-page "https://github.com/mrkkrp/parser-combinators")
9274 (synopsis "Commonly useful parser combinators")
9275 (description
9276 "This is a lightweight package providing commonly useful parser
9277combinators.")
9278 (license license:bsd-3)))
9279
9280(define-public ghc-parsers
9281 (package
9282 (name "ghc-parsers")
6818f970 9283 (version "0.12.10")
dddbc90c
RV
9284 (source
9285 (origin
9286 (method url-fetch)
9287 (uri (string-append
9288 "https://hackage.haskell.org/package/parsers/parsers-"
9289 version
9290 ".tar.gz"))
9291 (sha256
9292 (base32
6818f970 9293 "0v0smxbzk1qpdfkfqqmrzd2dngv3vxba10mkjn9nfm6a309izf8p"))))
dddbc90c
RV
9294 (build-system haskell-build-system)
9295 (arguments `(#:tests? #f)) ; FIXME: Test fails with "cannot satisfy
9296 ; -package attoparsec-0.13.0.1"
9297 (inputs
9298 `(("ghc-base-orphans" ,ghc-base-orphans)
9299 ("ghc-attoparsec" ,ghc-attoparsec)
9300 ("ghc-scientific" ,ghc-scientific)
9301 ("ghc-charset" ,ghc-charset)
9302 ("ghc-unordered-containers" ,ghc-unordered-containers)))
9303 (home-page "https://github.com/ekmett/parsers/")
9304 (synopsis "Parsing combinators")
9305 (description "This library provides convenient combinators for working
9306with and building parsing combinator libraries. Given a few simple instances,
9307you get access to a large number of canned definitions. Instances exist for
9308the parsers provided by @code{parsec}, @code{attoparsec} and @code{base}'s
9309@code{Text.Read}.")
9310 (license license:bsd-3)))
9311
9312(define-public ghc-path
9313 (package
9314 (name "ghc-path")
9315 (version "0.6.1")
9316 (source
9317 (origin
9318 (method url-fetch)
9319 (uri (string-append
9320 "https://hackage.haskell.org/package/path/path-"
9321 version
9322 ".tar.gz"))
9323 (sha256
9324 (base32
9325 "0nayla4k1gb821k8y5b9miflv1bi8f0czf9rqr044nrr2dddi2sb"))))
9326 (build-system haskell-build-system)
9327 (arguments
9328 ;; TODO: There are some Windows-related tests and modules that need to be
9329 ;; danced around.
9330 `(#:tests? #f
9331 #:cabal-revision
9332 ("1" "05b1zwx2a893h4h5wvgpc5g5pyx71hfmx409rqisd8s1bq1hn463")))
9333 (inputs
9334 `(("ghc-aeson" ,ghc-aeson)
9335 ("ghc-exceptions" ,ghc-exceptions)
9336 ("ghc-hashable" ,ghc-hashable)))
9337 (native-inputs
9338 `(("ghc-hspec" ,ghc-hspec)
9339 ("ghc-quickcheck" ,ghc-quickcheck)
9340 ("ghc-genvalidity" ,ghc-genvalidity)
9341 ("ghc-genvalidity-property" ,ghc-genvalidity-property)
9342 ("ghc-hspec" ,ghc-hspec)
9343 ("ghc-validity" ,ghc-validity)))
9344 (home-page
3ef91e15 9345 "https://hackage.haskell.org/package/path")
dddbc90c
RV
9346 (synopsis "Support for well-typed paths")
9347 (description "This package introduces a type for paths upholding useful
9348invariants.")
9349 (license license:bsd-3)))
9350
9351(define-public ghc-path-io
9352 (package
9353 (name "ghc-path-io")
a06613ea 9354 (version "1.4.2")
dddbc90c
RV
9355 (source
9356 (origin
9357 (method url-fetch)
9358 (uri (string-append
9359 "https://hackage.haskell.org/package/path-io/path-io-"
9360 version
9361 ".tar.gz"))
9362 (sha256
9363 (base32
a06613ea 9364 "0jqx3mi4an4kb3kg78n1p3xrz832yrfrnvj795b0xhkv6h1z5ir3"))))
dddbc90c
RV
9365 (build-system haskell-build-system)
9366 (inputs
9367 `(("ghc-dlist" ,ghc-dlist)
9368 ("ghc-exceptions" ,ghc-exceptions)
9369 ("ghc-path" ,ghc-path)
9370 ("ghc-transformers-base" ,ghc-transformers-base)
9371 ("ghc-unix-compat" ,ghc-unix-compat)
9372 ("ghc-temporary" ,ghc-temporary)))
9373 (native-inputs
9374 `(("ghc-hspec" ,ghc-hspec)))
dddbc90c
RV
9375 (home-page
9376 "https://github.com/mrkkrp/path-io")
9377 (synopsis "Functions for manipulating well-typed paths")
9378 (description "This package provides an interface to the @code{directory}
9379package for users of @code{path}. It also implements some missing stuff like
9380recursive scanning and copying of directories, working with temporary
9381files/directories, and more.")
9382 (license license:bsd-3)))
9383
9384(define-public ghc-paths
9385 (package
9386 (name "ghc-paths")
9a8adeb1 9387 (version "0.1.0.12")
534d6caa 9388 (outputs '("out" "static" "doc"))
dddbc90c
RV
9389 (source
9390 (origin
9391 (method url-fetch)
9392 (uri (string-append
9393 "https://hackage.haskell.org/package/ghc-paths/ghc-paths-"
9394 version
9395 ".tar.gz"))
9396 (sha256
9397 (base32
9a8adeb1 9398 "1164w9pqnf7rjm05mmfjznz7rrn415blrkk1kjc0gjvks1vfdjvf"))))
dddbc90c
RV
9399 (build-system haskell-build-system)
9400 (home-page "https://github.com/simonmar/ghc-paths")
9401 (synopsis
9402 "Knowledge of GHC's installation directories")
9403 (description
9404 "Knowledge of GHC's installation directories.")
9405 (license license:bsd-3)))
9406
9407(define-public ghc-patience
9408 (package
9409 (name "ghc-patience")
484476f3 9410 (version "0.3")
dddbc90c
RV
9411 (source
9412 (origin
9413 (method url-fetch)
9414 (uri (string-append
9415 "https://hackage.haskell.org/package/patience/patience-"
9416 version ".tar.gz"))
9417 (sha256
9418 (base32
484476f3 9419 "1i1b37lgi31c17yrjyf8pdm4nf5lq8vw90z3rri78hf0k66d0p3i"))))
dddbc90c
RV
9420 (build-system haskell-build-system)
9421 (home-page "https://hackage.haskell.org/package/patience")
9422 (synopsis "Patience diff and longest increasing subsequence")
9423 (description
9424 "This library implements the 'patience diff' algorithm, as well as the
9425patience algorithm for the longest increasing subsequence problem.
9426Patience diff computes the difference between two lists, for example the lines
9427of two versions of a source file. It provides a good balance between
9428performance, nice output for humans, and simplicity of implementation.")
9429 (license license:bsd-3)))
9430
25a221a8
JS
9431(define-public ghc-pattern-arrows
9432 (package
9433 (name "ghc-pattern-arrows")
9434 (version "0.0.2")
9435 (source
9436 (origin
9437 (method url-fetch)
9438 (uri (string-append
9439 "mirror://hackage/package/pattern-arrows/pattern-arrows-"
9440 version
9441 ".tar.gz"))
9442 (sha256
9443 (base32
9444 "13q7bj19hd60rnjfc05wxlyck8llxy11z3mns8kxg197wxrdkhkg"))))
9445 (build-system haskell-build-system)
9446 (home-page
9447 "https://blog.functorial.com/posts/2013-10-27-Pretty-Printing-Arrows.html")
9448 (synopsis "Arrows for Pretty Printing")
9449 (description
9450 "A library for generating concise pretty printers based on precedence
9451rules.")
9452 (license license:expat)))
9453
dddbc90c
RV
9454(define-public ghc-pcre-light
9455 (package
9456 (name "ghc-pcre-light")
9457 (version "0.4.0.4")
9458 (source
9459 (origin
9460 (method url-fetch)
9461 (uri (string-append
9462 "https://hackage.haskell.org/package/pcre-light/pcre-light-"
9463 version
9464 ".tar.gz"))
9465 (sha256
9466 (base32
9467 "0xcyi1fivwg7a92mch5bcqzmrfxzqj42rmb3m8kgs61x4qwpxj82"))))
9468 (build-system haskell-build-system)
a928f35b
TS
9469 (arguments
9470 `(#:extra-directories ("pcre")))
dddbc90c
RV
9471 (inputs
9472 `(("pcre" ,pcre)))
9473 (native-inputs
9474 `(("pkg-config" ,pkg-config)))
9475 (home-page "https://github.com/Daniel-Diaz/pcre-light")
9476 (synopsis "Haskell library for Perl 5 compatible regular expressions")
9477 (description "This package provides a small, efficient, and portable regex
9478library for Perl 5 compatible regular expressions. The PCRE library is a set
9479of functions that implement regular expression pattern matching using the same
9480syntax and semantics as Perl 5.")
9481 (license license:bsd-3)))
9482
9483(define-public ghc-persistent
9484 (package
9485 (name "ghc-persistent")
8c9697a9 9486 (version "2.10.4")
dddbc90c
RV
9487 (source
9488 (origin
9489 (method url-fetch)
8c9697a9
ASM
9490 (uri (string-append
9491 "https://hackage.haskell.org/package/persistent/"
9492 "persistent-" version ".tar.gz"))
dddbc90c
RV
9493 (sha256
9494 (base32
8c9697a9 9495 "1cxswz72sqdg2z1nbpgp1k5qr41djgk8qbf8nz7wfppsrhacyffi"))))
dddbc90c 9496 (build-system haskell-build-system)
8c9697a9
ASM
9497 (inputs
9498 `(("ghc-aeson" ,ghc-aeson)
9499 ("ghc-attoparsec" ,ghc-attoparsec)
9500 ("ghc-base64-bytestring" ,ghc-base64-bytestring)
9501 ("ghc-blaze-html" ,ghc-blaze-html)
9502 ("ghc-conduit" ,ghc-conduit)
9503 ("ghc-fast-logger" ,ghc-fast-logger)
9504 ("ghc-http-api-data" ,ghc-http-api-data)
9505 ("ghc-monad-logger" ,ghc-monad-logger)
9506 ("ghc-path-pieces" ,ghc-path-pieces)
9507 ("ghc-resource-pool" ,ghc-resource-pool)
9508 ("ghc-resourcet" ,ghc-resourcet)
9509 ("ghc-scientific" ,ghc-scientific)
9510 ("ghc-silently" ,ghc-silently)
9511 ("ghc-unliftio-core" ,ghc-unliftio-core)
9512 ("ghc-unliftio" ,ghc-unliftio)
9513 ("ghc-unordered-containers"
9514 ,ghc-unordered-containers)
9515 ("ghc-vector" ,ghc-vector)))
dddbc90c
RV
9516 (native-inputs `(("ghc-hspec" ,ghc-hspec)))
9517 (home-page "https://www.yesodweb.com/book/persistent")
9518 (synopsis "Type-safe, multi-backend data serialization for Haskell")
9519 (description "This Haskell package allows Haskell programs to access data
9520storage systems like PostgreSQL, SQLite, MySQL and MongoDB in a type-safe
9521way.")
9522 (license license:expat)))
9523
9524(define-public ghc-persistent-sqlite
9525 (package
9526 (name "ghc-persistent-sqlite")
78858787 9527 (version "2.10.5.2")
dddbc90c
RV
9528 (source
9529 (origin
9530 (method url-fetch)
78858787
ASM
9531 (uri (string-append
9532 "https://hackage.haskell.org/package/persistent-sqlite/"
9533 "persistent-sqlite-" version ".tar.gz"))
dddbc90c
RV
9534 (sha256
9535 (base32
78858787 9536 "0agag3cgivl6mk38pqzr0qw5lxps9p2bgdwvi5658l46hs7bixxn"))))
dddbc90c 9537 (build-system haskell-build-system)
78858787
ASM
9538 (inputs
9539 `(("ghc-persistent" ,ghc-persistent)
9540 ("ghc-aeson" ,ghc-aeson)
9541 ("ghc-conduit" ,ghc-conduit)
9542 ("ghc-microlens-th" ,ghc-microlens-th)
9543 ("ghc-monad-logger" ,ghc-monad-logger)
9544 ("ghc-resource-pool" ,ghc-resource-pool)
9545 ("ghc-resourcet" ,ghc-resourcet)
9546 ("ghc-unliftio-core" ,ghc-unliftio-core)
9547 ("ghc-unordered-containers"
9548 ,ghc-unordered-containers)))
9549 (native-inputs
9550 `(("ghc-persistent-template"
9551 ,ghc-persistent-template)
9552 ("ghc-persistent-test" ,ghc-persistent-test)
9553 ("ghc-exceptions" ,ghc-exceptions)
9554 ("ghc-fast-logger" ,ghc-fast-logger)
9555 ("ghc-hspec" ,ghc-hspec)
9556 ("ghc-hunit" ,ghc-hunit)
9557 ("ghc-quickcheck" ,ghc-quickcheck)
9558 ("ghc-system-fileio" ,ghc-system-fileio)
9559 ("ghc-system-filepath" ,ghc-system-filepath)
9560 ("ghc-temporary" ,ghc-temporary)))
dddbc90c
RV
9561 (home-page
9562 "https://www.yesodweb.com/book/persistent")
9563 (synopsis "Backend for the persistent library using sqlite3")
9564 (description "This Haskell package includes a thin sqlite3 wrapper based
9565on the direct-sqlite package, as well as the entire C library, so there are no
9566system dependencies.")
9567 (license license:expat)))
9568
9569(define-public ghc-persistent-template
9570 (package
9571 (name "ghc-persistent-template")
d5378e98 9572 (version "2.8.0")
dddbc90c
RV
9573 (source
9574 (origin
9575 (method url-fetch)
d5378e98
ASM
9576 (uri (string-append
9577 "https://hackage.haskell.org/package/persistent-template/"
9578 "persistent-template-" version ".tar.gz"))
dddbc90c
RV
9579 (sha256
9580 (base32
d5378e98 9581 "16yjrl0gh4jbs4skr7iv6a55lny59bqhd6hjmvch1cl9j5d0c0g3"))))
dddbc90c 9582 (build-system haskell-build-system)
d5378e98
ASM
9583 (inputs
9584 `(("ghc-persistent" ,ghc-persistent)
9585 ("ghc-aeson" ,ghc-aeson)
9586 ("ghc-http-api-data" ,ghc-http-api-data)
9587 ("ghc-monad-control" ,ghc-monad-control)
9588 ("ghc-monad-logger" ,ghc-monad-logger)
9589 ("ghc-path-pieces" ,ghc-path-pieces)
9590 ("ghc-th-lift-instances" ,ghc-th-lift-instances)
9591 ("ghc-unordered-containers"
9592 ,ghc-unordered-containers)))
9593 (native-inputs
9594 `(("ghc-hspec" ,ghc-hspec)
9595 ("ghc-quickcheck" ,ghc-quickcheck)))
dddbc90c
RV
9596 (home-page "https://www.yesodweb.com/book/persistent")
9597 (synopsis "Type-safe, non-relational, multi-backend persistence")
9598 (description "This Haskell package provides interfaces and helper
9599functions for the ghc-persistent package.")
9600 (license license:expat)))
9601
ce32f7c7
ASM
9602(define-public ghc-persistent-test
9603 (package
9604 (name "ghc-persistent-test")
9605 (version "2.0.3.1")
9606 (source
9607 (origin
9608 (method url-fetch)
9609 (uri (string-append
9610 "https://hackage.haskell.org/package/persistent-test/"
9611 "persistent-test-" version ".tar.gz"))
9612 (sha256
9613 (base32
9614 "11aq5cy0n43jamf6mg4sr4300bc2zdbjxsczzxwjkb4hzs0ijsdv"))))
9615 (build-system haskell-build-system)
9616 (inputs
9617 `(("ghc-aeson" ,ghc-aeson)
9618 ("ghc-blaze-html" ,ghc-blaze-html)
9619 ("ghc-conduit" ,ghc-conduit)
9620 ("ghc-monad-control" ,ghc-monad-control)
9621 ("ghc-monad-logger" ,ghc-monad-logger)
9622 ("ghc-path-pieces" ,ghc-path-pieces)
9623 ("ghc-persistent" ,ghc-persistent)
9624 ("ghc-persistent-template" ,ghc-persistent-template)
9625 ("ghc-random" ,ghc-random)
9626 ("ghc-resourcet" ,ghc-resourcet)
9627 ("ghc-transformers-base" ,ghc-transformers-base)
9628 ("ghc-unliftio" ,ghc-unliftio)
9629 ("ghc-unliftio-core" ,ghc-unliftio-core)
9630 ("ghc-unordered-containers" ,ghc-unordered-containers)))
9631 (native-inputs
9632 `(("ghc-quickcheck" ,ghc-quickcheck)
9633 ("ghc-quickcheck-instances" ,ghc-quickcheck-instances)
9634 ("ghc-hspec" ,ghc-hspec)
9635 ("ghc-hspec-expectations" ,ghc-hspec-expectations)
9636 ("ghc-hunit" ,ghc-hunit)))
9637 (home-page "https://www.yesodweb.com/book/persistent")
9638 (synopsis "Tests for the Persistent database library")
9639 (description
9640 "This is only for use in developing libraries that should conform to
9641the persistent interface, not for users of the persistent suite of database
9642libraries.")
9643 (license license:expat)))
9644
0fb34235
JS
9645(define-public ghc-pgp-wordlist
9646 (package
9647 (name "ghc-pgp-wordlist")
9648 (version "0.1.0.3")
9649 (source
9650 (origin
9651 (method url-fetch)
9652 (uri (string-append
9653 "mirror://hackage/package/pgp-wordlist/pgp-wordlist-"
9654 version
9655 ".tar.gz"))
9656 (sha256
9657 (base32
9658 "15g6qh0fb7kjj3l0w8cama7cxgnhnhybw760md9yy7cqfq15cfzg"))))
9659 (build-system haskell-build-system)
9660 (inputs
9661 `(("ghc-vector" ,ghc-vector)))
9662 (native-inputs
9663 `(("ghc-hunit" ,ghc-hunit)
9664 ("ghc-tasty" ,ghc-tasty)
9665 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
9666 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
9667 ("ghc-doctest" ,ghc-doctest)))
9668 (home-page
9669 "https://github.com/quchen/pgp-wordlist")
9670 (synopsis
9671 "Translate between binary data and a human-readable collection of words")
9672 (description
9673 "The PGP Word List consists of two phonetic alphabets, each with one word
9674per possible byte value. A string of bytes is translated with these
9675alphabets, alternating between them at each byte.
9676
9677The PGP words corresponding to the bytes 5B 1D CA 6E are \"erase breakaway
9678spellbind headwaters\", for example.
9679
9680For further information, see
9681@url{http://en.wikipedia.org/wiki/PGP_word_list}.")
9682 (license license:bsd-3)))
9683
4639fa32
ASM
9684(define-public ghc-pipes
9685 (package
9686 (name "ghc-pipes")
9687 (version "4.3.13")
9688 (source
9689 (origin
9690 (method url-fetch)
9691 (uri (string-append
9692 "https://hackage.haskell.org/package/pipes/"
9693 "pipes-" version ".tar.gz"))
9694 (sha256
9695 (base32
9696 "1ch3xr5f5if0psd3lsyrpkwrgh36synnzqcpimghprys68l4zfkn"))))
9697 (build-system haskell-build-system)
9698 (inputs
9699 `(("ghc-exceptions" ,ghc-exceptions)
9700 ("ghc-mmorph" ,ghc-mmorph)
9701 ("ghc-void" ,ghc-void)
9702 ("ghc-semigroups" ,ghc-semigroups)))
9703 (native-inputs
9704 `(("ghc-quickcheck" ,ghc-quickcheck)
9705 ("ghc-test-framework" ,ghc-test-framework)
9706 ("ghc-test-framework-quickcheck2"
9707 ,ghc-test-framework-quickcheck2)))
9708 (home-page
9709 "https://hackage.haskell.org/package/pipes")
9710 (synopsis "Compositional pipelines")
9711 (description
9712 "A clean and powerful stream processing library that lets you build
9713and connect reusable streaming components. Advantages over traditional streaming
9714libraries:
9715@itemize
9716@item Concise API: Use simple commands like @code{for}, (@code{>->}), @code{await},
9717and @code{yield}
9718@item Blazing fast: Implementation tuned for speed, including shortcut fusion
9719@item Lightweight Dependency: pipes is small and compiles very rapidly, including
9720dependencies
9721@item Elegant semantics: Use practical category theory
9722@item ListT: Correct implementation of @code{ListT} that interconverts with pipes
9723@item Bidirectionality: Implement duplex channels
9724@end itemize")
9725 (license license:bsd-3)))
9726
451775a5
ASM
9727(define-public ghc-pointedlist
9728 (package
9729 (name "ghc-pointedlist")
9730 (version "0.6.1")
9731 (source
9732 (origin
9733 (method url-fetch)
9734 (uri (string-append
9735 "https://hackage.haskell.org/package/pointedlist/"
9736 "pointedlist-" version ".tar.gz"))
9737 (sha256
9738 (base32
9739 "16xsrzqql7i4z6a3xy07sqnbyqdmcar1jiacla58y4mvkkwb0g3l"))))
9740 (build-system haskell-build-system)
9741 (home-page
3ef91e15 9742 "https://hackage.haskell.org/package/pointedlist")
451775a5
ASM
9743 (synopsis
9744 "Zipper-like comonad which works as a list, tracking a position")
9745 (description
9746 "A PointedList tracks the position in a non-empty list which works
9747similarly to a zipper. A current item is always required, and therefore
9748the list may never be empty. A circular PointedList wraps around to the
9749other end when progressing past the actual edge.")
9750 (license license:bsd-3)))
9751
dddbc90c
RV
9752(define-public ghc-polyparse
9753 (package
9754 (name "ghc-polyparse")
9822b9ca 9755 (version "1.12.1")
dddbc90c
RV
9756 (source
9757 (origin
9758 (method url-fetch)
9759 (uri (string-append
9760 "https://hackage.haskell.org/package/polyparse/polyparse-"
9761 version
9762 ".tar.gz"))
9763 (sha256
9764 (base32
9822b9ca 9765 "19fs18g7fvfdkm9zy28cgighjcxfa6mcpqgyp6whmsjkb3h393fx"))))
dddbc90c
RV
9766 (build-system haskell-build-system)
9767 (home-page
9768 "http://code.haskell.org/~malcolm/polyparse/")
9769 (synopsis
9770 "Alternative parser combinator libraries")
9771 (description
9772 "This package provides a variety of alternative parser combinator
9773libraries, including the original HuttonMeijer set. The Poly sets have
9774features like good error reporting, arbitrary token type, running state, lazy
9775parsing, and so on. Finally, Text.Parse is a proposed replacement for the
9776standard Read class, for better deserialisation of Haskell values from
9777Strings.")
9778 (license license:lgpl2.1)))
9779
9780(define-public ghc-pqueue
9781 (package
9782 (name "ghc-pqueue")
142415b0 9783 (version "1.4.1.2")
dddbc90c
RV
9784 (source
9785 (origin
9786 (method url-fetch)
9787 (uri (string-append "https://hackage.haskell.org/package/"
9788 "pqueue/pqueue-" version ".tar.gz"))
9789 (sha256
9790 (base32
142415b0 9791 "1v4zhv2sc1zsw91hvnarkjhayx2dnf7ccxz6rrhsqpcs0szaranj"))))
dddbc90c
RV
9792 (build-system haskell-build-system)
9793 (native-inputs
9794 `(("ghc-quickcheck" ,ghc-quickcheck)))
9795 (home-page "https://hackage.haskell.org/package/pqueue")
9796 (synopsis "Reliable, persistent, fast priority queues")
9797 (description
9798 "This package provides a fast, reliable priority queue implementation
9799based on a binomial heap.")
9800 (license license:bsd-3)))
9801
9802(define-public ghc-prelude-extras
9803 (package
9804 (name "ghc-prelude-extras")
9805 (version "0.4.0.3")
9806 (source
9807 (origin
9808 (method url-fetch)
9809 (uri (string-append
9810 "https://hackage.haskell.org/package/prelude-extras/prelude-extras-"
9811 version
9812 ".tar.gz"))
9813 (sha256
9814 (base32
9815 "0xzqdf3nl2h0ra4gnslm1m1nsxlsgc0hh6ky3vn578vh11zhifq9"))))
9816 (build-system haskell-build-system)
9817 (home-page "https://github.com/ekmett/prelude-extras")
9818 (synopsis "Higher order versions of Prelude classes")
9819 (description "This library provides higher order versions of
9820@code{Prelude} classes to ease programming with polymorphic recursion and
9821reduce @code{UndecidableInstances}.")
9822 (license license:bsd-3)))
9823
9824(define-public ghc-prettyclass
9825 (package
9826 (name "ghc-prettyclass")
9827 (version "1.0.0.0")
9828 (source
9829 (origin
9830 (method url-fetch)
9831 (uri (string-append "https://hackage.haskell.org/package/"
9832 "prettyclass/prettyclass-" version ".tar.gz"))
9833 (sha256
9834 (base32
9835 "11l9ajci7nh1r547hx8hgxrhq8mh5gdq30pdf845wvilg9p48dz5"))))
9836 (build-system haskell-build-system)
3ef91e15 9837 (home-page "https://hackage.haskell.org/package/prettyclass")
dddbc90c
RV
9838 (synopsis "Pretty printing class similar to Show")
9839 (description "This package provides a pretty printing class similar
9840to @code{Show}, based on the HughesPJ pretty printing library. It
9841provides the pretty printing class and instances for the Prelude
9842types.")
9843 (license license:bsd-3)))
9844
2fad2bf7
JS
9845(define-public ghc-prettyprinter
9846 (package
9847 (name "ghc-prettyprinter")
9848 (version "1.2.1.1")
9849 (source
9850 (origin
9851 (method url-fetch)
9852 (uri (string-append
9853 "mirror://hackage/package/prettyprinter/prettyprinter-"
9854 version
9855 ".tar.gz"))
9856 (sha256
9857 (base32 "1p9c3q55hba4c0zyxc624g5df7wgsclpsmd8wqpdnmib882q9d1v"))))
9858 (build-system haskell-build-system)
9859 (native-inputs
9860 `(("ghc-doctest" ,ghc-doctest)
9861 ("ghc-pgp-wordlist" ,ghc-pgp-wordlist)
9862 ("ghc-tasty" ,ghc-tasty)
9863 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
9864 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
9865 (home-page "https://github.com/quchen/prettyprinter")
9866 (synopsis
9867 "Modern, easy to use, well-documented, extensible pretty-printer")
9868 (description
9869 "A prettyprinter/text rendering engine. Easy to use, well-documented,
9870ANSI terminal backend exists, HTML backend is trivial to implement, no name
9871clashes, @code{Text}-based, extensible.")
9872 (license license:bsd-2)))
9873
2496e49f
JS
9874(define-public ghc-prettyprinter-1.6
9875 (package
9876 (inherit ghc-prettyprinter)
9877 (version "1.6.1")
9878 (source
9879 (origin
9880 (method url-fetch)
9881 (uri (string-append
9882 "mirror://hackage/package/prettyprinter/prettyprinter-"
9883 version
9884 ".tar.gz"))
9885 (sha256
9886 (base32 "10fphxh8lvdaw7i8jyllwmj87w02db92mf99zfw5vddp9mv6b5rz"))))
9887 (inputs
9888 `(("ghc-quickckeck-instances" , ghc-quickcheck-instances)
9889 ,@(package-inputs ghc-prettyprinter)))))
9890
b4f24d66
JS
9891(define-public ghc-prettyprinter-ansi-terminal
9892 (package
9893 (name "ghc-prettyprinter-ansi-terminal")
9894 (version "1.1.1.2")
9895 (source
9896 (origin
9897 (method url-fetch)
9898 (uri (string-append
9899 "mirror://hackage/package/prettyprinter-ansi-terminal/"
9900 "prettyprinter-ansi-terminal-" version ".tar.gz"))
9901 (sha256
9902 (base32 "0ha6vz707qzb5ky7kdsnw2zgphg2dnxrpbrxy8gaw119vwhb9q6k"))))
9903 (build-system haskell-build-system)
9904 (inputs
9905 `(("ghc-ansi-terminal" ,ghc-ansi-terminal)
9906 ("ghc-prettyprinter" ,ghc-prettyprinter-1.6)))
9907 (native-inputs `(("ghc-doctest" ,ghc-doctest)))
9908 (home-page
9909 "https://github.com/quchen/prettyprinter")
9910 (synopsis
9911 "ANSI terminal backend for the prettyprinter package")
9912 (description "ANSI terminal backend for the prettyprinter package.")
9913 (license license:bsd-2)))
9914
dddbc90c
RV
9915(define-public ghc-pretty-hex
9916 (package
9917 (name "ghc-pretty-hex")
9918 (version "1.0")
9919 (source
9920 (origin
9921 (method url-fetch)
9922 (uri (string-append "https://hackage.haskell.org/package/"
9923 "pretty-hex-" version "/"
9924 "pretty-hex-" version ".tar.gz"))
9925 (sha256
9926 (base32
9927 "0ylwkvvjvmpprha9nx83xb8gkhyanhk5fffc0r7lb96n4ch5z6pz"))))
9928 (build-system haskell-build-system)
9929 (home-page "https://github.com/GaloisInc/hexdump")
9930 (synopsis "Haskell library for hex dumps of ByteStrings")
9931 (description "This Haskell library generates pretty hex dumps of
9932ByteStrings in the style of other common *nix hex dump tools.")
9933 (license license:bsd-3)))
9934
9935(define-public ghc-pretty-show
9936 (package
9937 (name "ghc-pretty-show")
7683a084 9938 (version "1.9.5")
dddbc90c
RV
9939 (source
9940 (origin
9941 (method url-fetch)
9942 (uri (string-append "https://hackage.haskell.org/package/pretty-show/"
9943 "pretty-show-" version ".tar.gz"))
9944 (sha256
9945 (base32
7683a084 9946 "0gs2pabi4qa4b0r5vffpf9b1cf5n9y2939a3lljjw7cmg6xvx5dh"))))
dddbc90c
RV
9947 (build-system haskell-build-system)
9948 (inputs
9949 `(("ghc-haskell-lexer" ,ghc-haskell-lexer)
9950 ("ghc-happy" ,ghc-happy)))
702a1012 9951 (home-page "https://wiki.github.com/yav/pretty-show")
dddbc90c
RV
9952 (synopsis "Tools for working with derived `Show` instances")
9953 (description
9954 "This package provides a library and an executable for working with
9955derived @code{Show} instances. By using the library, derived @code{Show}
9956instances can be parsed into a generic data structure. The @code{ppsh} tool
9957uses the library to produce human-readable versions of @code{Show} instances,
9958which can be quite handy for debugging Haskell programs. We can also render
9959complex generic values into an interactive Html page, for easier
9960examination.")
9961 (license license:expat)))
9962
f011e3d6
JS
9963(define-public ghc-pretty-simple
9964 (package
9965 (name "ghc-pretty-simple")
9966 (version "2.2.0.1")
9967 (source
9968 (origin
9969 (method url-fetch)
9970 (uri (string-append
9971 "mirror://hackage/package/pretty-simple/"
9972 "pretty-simple-" version ".tar.gz"))
9973 (sha256
9974 (base32 "0wsi9235ihm15s145lxi7325vv2k4bhighc5m88kn1lk0pl81aqq"))))
9975 (build-system haskell-build-system)
9976 (inputs
9977 `(("ghc-ansi-terminal" ,ghc-ansi-terminal)
9978 ("ghc-glob" ,ghc-glob)
9979 ("ghc-optparse-applicative" ,ghc-optparse-applicative)
9980 ("ghc-aeson" ,ghc-aeson)))
9981 (native-inputs
9982 `(("ghc-doctest" ,ghc-doctest)))
9983 (home-page "https://github.com/cdepillabout/pretty-simple")
9984 (synopsis "Pretty printer for data types with a 'Show' instance")
9985 (description
9986 "Pretty-simple is a pretty printer for Haskell data types that have a
9987Show instance.")
9988 (license license:bsd-3)))
9989
dddbc90c
RV
9990(define-public ghc-primitive
9991 (package
9992 (name "ghc-primitive")
9993 (version "0.6.4.0")
534d6caa 9994 (outputs '("out" "static" "doc"))
dddbc90c
RV
9995 (source
9996 (origin
9997 (method url-fetch)
9998 (uri (string-append
9999 "https://hackage.haskell.org/package/primitive/primitive-"
10000 version
10001 ".tar.gz"))
10002 (sha256
10003 (base32
10004 "0r0cda7acvplgwaxy69kviv4jp7kkfi038by68gj4yfx4iwszgjc"))))
10005 (build-system haskell-build-system)
6cf0daa4
TS
10006 (arguments
10007 `(#:cabal-revision
10008 ("1" "18a14k1yiam1m4l29rin9a0y53yp3nxvkz358nysld8aqwy2qsjv")))
dddbc90c
RV
10009 (home-page
10010 "https://github.com/haskell/primitive")
10011 (synopsis "Primitive memory-related operations")
10012 (description
10013 "This package provides various primitive memory-related operations.")
10014 (license license:bsd-3)))
10015
21f5b9a9
JS
10016(define-public ghc-process-extras
10017 (package
10018 (name "ghc-process-extras")
10019 (version "0.7.4")
10020 (source
10021 (origin
10022 (method url-fetch)
10023 (uri
10024 (string-append
10025 "https://hackage.haskell.org/package/process-extras/"
10026 "process-extras-" version ".tar.gz"))
10027 (sha256
10028 (base32
10029 "0klqgr37f1z2z6i0a9b0giapmq0p35l5k9kz1p7f0k1597w7agi9"))))
10030 (build-system haskell-build-system)
10031 (inputs
10032 `(("ghc-data-default" ,ghc-data-default)
10033 ("ghc-generic-deriving" ,ghc-generic-deriving)
10034 ("ghc-hunit" ,ghc-hunit)
10035 ("ghc-listlike" ,ghc-listlike)))
10036 (home-page "https://github.com/seereason/process-extras")
10037 (synopsis "Extra tools for managing processes")
f74b6983 10038 (description "This package extends
21f5b9a9
JS
10039@url{http://hackage.haskell.org/package/process}. It allows you to read
10040process input and output as ByteStrings or Text, or write your own
10041ProcessOutput instance. It also provides lazy process input and output,
10042and a ProcessMaker class for more flexibility in the process creation
10043API.")
10044 (license license:expat)))
10045
dddbc90c
RV
10046(define-public ghc-profunctors
10047 (package
10048 (name "ghc-profunctors")
899b5297 10049 (version "5.3")
dddbc90c
RV
10050 (source
10051 (origin
10052 (method url-fetch)
10053 (uri (string-append
10054 "https://hackage.haskell.org/package/profunctors/profunctors-"
10055 version
10056 ".tar.gz"))
10057 (sha256
10058 (base32
899b5297 10059 "1dx3nkc27yxsrbrhh3iwhq7dl1xn6bj7n62yx6nh8vmpbg62lqvl"))))
dddbc90c 10060 (build-system haskell-build-system)
1ad496e5 10061 (outputs '("out" "static" "doc"))
dddbc90c
RV
10062 (inputs
10063 `(("ghc-base-orphans" ,ghc-base-orphans)
10064 ("ghc-bifunctors" ,ghc-bifunctors)
10065 ("ghc-comonad" ,ghc-comonad)
10066 ("ghc-contravariant" ,ghc-contravariant)
10067 ("ghc-distributive" ,ghc-distributive)
10068 ("ghc-semigroups" ,ghc-semigroups)
10069 ("ghc-tagged" ,ghc-tagged)))
10070 (home-page "https://github.com/ekmett/profunctors/")
10071 (synopsis "Profunctors for Haskell")
10072 (description "This library provides profunctors for Haskell.")
10073 (license license:bsd-3)))
10074
fbe32d46
ASM
10075(define-public ghc-project-template
10076 (package
10077 (name "ghc-project-template")
10078 (version "0.2.0.1")
10079 (source
10080 (origin
10081 (method url-fetch)
10082 (uri (string-append
10083 "https://hackage.haskell.org/package/project-template/project-template-"
10084 version ".tar.gz"))
10085 (sha256
10086 (base32
10087 "1p69ww4rhah2qxragl615wl4a6mk4x9w09am8knmz3s4lxpljlpb"))))
10088 (build-system haskell-build-system)
10089 (inputs
10090 `(("ghc-base64-bytestring" ,ghc-base64-bytestring)
10091 ("ghc-conduit" ,ghc-conduit)
10092 ("ghc-conduit-extra" ,ghc-conduit-extra)
10093 ("ghc-resourcet" ,ghc-resourcet)))
10094 (native-inputs
10095 `(("ghc-hspec" ,ghc-hspec)
10096 ("hspec-discover" ,hspec-discover)
10097 ("ghc-quickcheck" ,ghc-quickcheck)))
10098 (arguments
10099 `(#:cabal-revision
10100 ("1"
10101 "0lq3sqnq0nr0gbvgzp0lqdl3j3mqdmdlf8xsw0j3pjh581xj3k0a")))
10102 (home-page "https://github.com/fpco/haskell-ide")
10103 (synopsis "Specify Haskell project templates and generate files")
10104 (description
10105 "Haskell library for both generating and consuming project templates.
10106
10107ost IDEs provide the concept of a project template: instead of writing all
10108of the code for a project from scratch, you select a template, answer a few
10109questions, and a bunch of files are automatically generated.
10110
10111project-template tries to provide a canonical Haskell library for implementing
10112the ideal templating system.")
10113 (license license:bsd-3)))
10114
8a6e745d
JS
10115(define-public ghc-protolude
10116 (package
10117 (name "ghc-protolude")
10118 (version "0.2.3")
10119 (source
10120 (origin
10121 (method url-fetch)
10122 (uri (string-append
10123 "mirror://hackage/package/protolude/protolude-"
10124 version
10125 ".tar.gz"))
10126 (sha256
10127 (base32
10128 "0zzkyxz0vmcbncpid7gp72fpjj0fla3gqhlfkij5c5lg12skjgfj"))))
10129 (build-system haskell-build-system)
10130 (inputs
10131 `(("ghc-async" ,ghc-async)
10132 ("ghc-hashable" ,ghc-hashable)
10133 ("ghc-mtl-compat" ,ghc-mtl-compat)
10134 ("ghc-transformers-compat" ,ghc-transformers-compat)))
10135 (home-page "https://github.com/protolude/protolude")
10136 (synopsis "Sensible set of defaults for writing custom Preludes")
10137 (description
10138 "Protolude gives you sensible defaults for writing custom Preludes to
10139replace the standard one provided by GHC.")
10140 (license license:expat)))
10141
cf123e32
MB
10142(define-public ghc-psqueue
10143 (package
10144 (name "ghc-psqueue")
10145 (version "1.1.0.1")
10146 (source (origin
10147 (method url-fetch)
10148 (uri (string-append "mirror://hackage/package/PSQueue-"
10149 version "/PSQueue-" version ".tar.gz"))
10150 (sha256
10151 (base32
10152 "1cik7sw10sacsijmfhghzy54gm1qcyxw14shlp86lx8z89kcnkza"))))
10153 (build-system haskell-build-system)
10154 (home-page "https://hackage.haskell.org/package/PSQueue")
10155 (synopsis "Priority search queue")
10156 (description
10157 "A @dfn{priority search queue} efficiently supports the operations of
10158both a search tree and a priority queue. A @code{Binding} is a product of
10159a key and a priority. Bindings can be inserted, deleted, modified and queried
10160in logarithmic time, and the binding with the least priority can be retrieved
10161in constant time. A queue can be built from a list of bindings, sorted by
10162keys, in linear time.")
10163 (license license:bsd-3)))
10164
dddbc90c
RV
10165(define-public ghc-psqueues
10166 (package
10167 (name "ghc-psqueues")
5d133942 10168 (version "0.2.7.2")
dddbc90c
RV
10169 (source
10170 (origin
10171 (method url-fetch)
10172 (uri (string-append "https://hackage.haskell.org/package/"
10173 "psqueues-" version "/"
10174 "psqueues-" version ".tar.gz"))
10175 (sha256
10176 (base32
5d133942 10177 "1yckx2csqswghiy9nfj03cybmza8104nmnpbpcc9ngwlbmakn9i6"))))
dddbc90c
RV
10178 (build-system haskell-build-system)
10179 (inputs
10180 `(("ghc-hashable" ,ghc-hashable)))
10181 (native-inputs
10182 `(("ghc-hunit" ,ghc-hunit)
10183 ("ghc-quickcheck" ,ghc-quickcheck)
10184 ("ghc-tagged" ,ghc-tagged)
5d133942
TS
10185 ("ghc-tasty" ,ghc-tasty)
10186 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
10187 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
dddbc90c
RV
10188 (home-page "https://github.com/jaspervdj/psqueues")
10189 (synopsis "Pure priority search queues")
10190 (description "The psqueues package provides
10191@uref{https://en.wikipedia.org/wiki/Priority_queue, Priority Search Queues} in
10192three different flavors:
10193
10194@itemize
10195@item @code{OrdPSQ k p v}, which uses the @code{Ord k} instance to provide
10196fast insertion, deletion and lookup. This implementation is based on Ralf
10197Hinze's @uref{http://citeseer.ist.psu.edu/hinze01simple.html, A Simple
10198Implementation Technique for Priority Search Queues}.
10199
10200Hence, it is similar to the @uref{https://hackage.haskell.org/package/PSQueue,
10201PSQueue} library, although it is considerably faster and provides a slightly
10202different API.
10203
10204@item @code{IntPSQ p v} is a far more efficient implementation. It fixes the
10205key type to @code{Int} and uses a
10206@code{https://en.wikipedia.org/wiki/Radix_tree, radix tree} (like @code{IntMap})
10207with an additional min-heap property.
10208
10209@item @code{HashPSQ k p v} is a fairly straightforward extension
10210of @code{IntPSQ}: it simply uses the keys' hashes as indices in the
10211@code{IntPSQ}. If there are any hash collisions, it uses an
10212@code{OrdPSQ} to resolve those. The performance of this implementation
10213is comparable to that of @code{IntPSQ}, but it is more widely
10214applicable since the keys are not restricted to @code{Int},
10215but rather to any @code{Hashable} datatype.
10216@end itemize
10217
10218Each of the three implementations provides the same API, so they can
10219be used interchangeably.
10220
10221Typical applications of Priority Search Queues include:
10222
10223@itemize
10224@item Caches, and more specifically LRU Caches;
10225@item Schedulers;
10226@item Pathfinding algorithms, such as Dijkstra's and A*.
10227@end itemize")
10228 (license license:bsd-3)))
b1dbc9f5
ASM
10229
10230(define-public ghc-pwstore-fast
10231 (package
10232 (name "ghc-pwstore-fast")
10233 (version "2.4.4")
10234 (source
10235 (origin
10236 (method url-fetch)
10237 (uri (string-append
10238 "https://hackage.haskell.org/package/pwstore-fast/"
10239 "pwstore-fast-" version ".tar.gz"))
10240 (sha256
10241 (base32
10242 "1cpvlwzg3qznhygrr78f75p65mnljd9v5cvnagfxjqppnrkay6bj"))))
10243 (build-system haskell-build-system)
10244 (inputs
10245 `(("ghc-base64-bytestring" ,ghc-base64-bytestring)
10246 ("ghc-cryptohash" ,ghc-cryptohash)
10247 ("ghc-random" ,ghc-random)
10248 ("ghc-byteable" ,ghc-byteable)))
10249 (home-page "https://github.com/PeterScott/pwstore")
10250 (synopsis "Secure password storage")
10251 (description
10252 "To store passwords securely, they should be salted, then hashed with
10253a slow hash function. This library uses PBKDF1-SHA256, and handles all the
10254details. It uses the cryptohash package for speed; if you need a pure
10255Haskell library, pwstore-purehaskell has the exact same API, but uses only
10256pure Haskell. It is about 25 times slower than this package, but still quite
10257usable.")
10258 (license license:bsd-3)))
dddbc90c
RV
10259
10260(define-public ghc-random
10261 (package
10262 (name "ghc-random")
10263 (version "1.1")
534d6caa 10264 (outputs '("out" "static" "doc"))
dddbc90c
RV
10265 (source
10266 (origin
10267 (method url-fetch)
10268 (uri (string-append
10269 "https://hackage.haskell.org/package/random/random-"
10270 version
10271 ".tar.gz"))
10272 (sha256
10273 (base32 "0nis3lbkp8vfx8pkr6v7b7kr5m334bzb0fk9vxqklnp2aw8a865p"))))
10274 (build-system haskell-build-system)
10275 (home-page "https://hackage.haskell.org/package/random")
10276 (synopsis "Random number library")
10277 (description "This package provides a basic random number generation
10278library, including the ability to split random number generators.")
10279 (license license:bsd-3)))
10280
10281(define-public ghc-raw-strings-qq
10282 (package
10283 (name "ghc-raw-strings-qq")
10284 (version "1.1")
10285 (source
10286 (origin
10287 (method url-fetch)
10288 (uri (string-append "https://hackage.haskell.org/package/"
10289 "raw-strings-qq/raw-strings-qq-"
10290 version ".tar.gz"))
10291 (sha256
10292 (base32
10293 "1lxy1wy3awf52968iy5y9r5z4qgnn2sxkdrh7js3m9gadb11w09f"))))
10294 (build-system haskell-build-system)
10295 (native-inputs `(("ghc-hunit" ,ghc-hunit)))
10296 (home-page "https://github.com/23Skidoo/raw-strings-qq")
10297 (synopsis "Raw string literals for Haskell")
10298 (description
10299 "This package provides a quasiquoter for raw string literals, i.e. string
10300literals that don't recognise the standard escape sequences. Basically, they
10301make your code more readable by freeing you from the responsibility to escape
10302backslashes. They are useful when working with regular expressions,
10303DOS/Windows paths and markup languages (such as XML).")
10304 (license license:bsd-3)))
10305
10306(define-public ghc-readable
10307 (package
10308 (name "ghc-readable")
10309 (version "0.3.1")
10310 (source
10311 (origin
10312 (method url-fetch)
10313 (uri (string-append "https://hackage.haskell.org/package/"
10314 "readable/readable-" version ".tar.gz"))
10315 (sha256
10316 (base32
10317 "1ja39cg26wy2fs00gi12x7iq5k8i366pbqi3p916skfa5jnkfc3h"))))
10318 (build-system haskell-build-system)
10319 (home-page "https://github.com/mightybyte/readable")
10320 (synopsis "Type class for reading from Text and ByteString")
10321 (description "This package provides a @code{Readable} type class for
10322reading data types from @code{ByteString} and @code{Text}. It also
10323includes efficient implementations for common data types.")
10324 (license license:bsd-3)))
10325
10326(define-public ghc-rebase
10327 (package
10328 (name "ghc-rebase")
8d2ae3fe 10329 (version "1.3.1.1")
dddbc90c
RV
10330 (source
10331 (origin
10332 (method url-fetch)
10333 (uri (string-append "https://hackage.haskell.org/package/"
10334 "rebase-" version "/"
10335 "rebase-" version ".tar.gz"))
10336 (sha256
10337 (base32
8d2ae3fe 10338 "0q4m2fa7wkgxs0grir8rlqwibasmi3s1x7c107ynndwfm62nzv0a"))))
dddbc90c 10339 (build-system haskell-build-system)
e396e936 10340 (outputs '("out" "static" "doc"))
dddbc90c
RV
10341 (inputs `(("ghc-hashable" ,ghc-hashable)
10342 ("ghc-vector" ,ghc-vector)
10343 ("ghc-unordered-containers" ,ghc-unordered-containers)
10344 ("ghc-scientific" ,ghc-scientific)
10345 ("ghc-uuid" ,ghc-uuid)
10346 ("ghc-dlist" ,ghc-dlist)
10347 ("ghc-void" ,ghc-void)
10348 ("ghc-bifunctors" ,ghc-bifunctors)
10349 ("ghc-profunctors" ,ghc-profunctors)
10350 ("ghc-contravariant" ,ghc-contravariant)
10351 ("ghc-contravariant-extras" ,ghc-contravariant-extras)
10352 ("ghc-semigroups" ,ghc-semigroups)
10353 ("ghc-either" ,ghc-either)
10354 ("ghc-fail" ,ghc-fail)
10355 ("ghc-base-prelude" ,ghc-base-prelude)))
10356 (home-page "https://github.com/nikita-volkov/rebase")
10357 (synopsis "Progressive alternative to the base package
10358for Haskell")
10359 (description "This Haskell package is intended for those who are
10360tired of keeping long lists of dependencies to the same essential libraries
10361in each package as well as the endless imports of the same APIs all over again.
10362
10363It also supports the modern tendencies in the language.
10364
10365To solve those problems this package does the following:
10366
10367@itemize
10368@item Reexport the original APIs under the @code{Rebase} namespace.
10369
10370@item Export all the possible non-conflicting symbols from the
10371@code{Rebase.Prelude} module.
10372
10373@item Give priority to the modern practices in the conflicting cases.
10374@end itemize
10375
10376The policy behind the package is only to reexport the non-ambiguous and
10377non-controversial APIs, which the community has obviously settled on.
10378The package is intended to rapidly evolve with the contribution from
10379the community, with the missing features being added with pull-requests.")
10380 (license license:expat)))
10381
10382(define-public ghc-reducers
10383 (package
10384 (name "ghc-reducers")
10385 (version "3.12.3")
10386 (source
10387 (origin
10388 (method url-fetch)
10389 (uri (string-append
10390 "https://hackage.haskell.org/package/reducers/reducers-"
10391 version
10392 ".tar.gz"))
10393 (sha256
10394 (base32
10395 "09wf8pl9ycglcv6qj5ba26gkg2s5iy81hsx9xp0q8na0cwvp71ki"))))
10396 (build-system haskell-build-system)
10397 (inputs
10398 `(("ghc-fingertree" ,ghc-fingertree)
10399 ("ghc-hashable" ,ghc-hashable)
10400 ("ghc-unordered-containers" ,ghc-unordered-containers)
10401 ("ghc-semigroupoids" ,ghc-semigroupoids)
10402 ("ghc-semigroups" ,ghc-semigroups)))
10403 (home-page "https://github.com/ekmett/reducers/")
10404 (synopsis "Semigroups, specialized containers and a general map/reduce framework")
10405 (description "This library provides various semigroups, specialized
10406containers and a general map/reduce framework for Haskell.")
10407 (license license:bsd-3)))
10408
10409(define-public ghc-refact
10410 (package
10411 (name "ghc-refact")
10412 (version "0.3.0.2")
10413 (source
10414 (origin
10415 (method url-fetch)
10416 (uri (string-append "https://hackage.haskell.org/package/"
10417 "refact/refact-"
10418 version ".tar.gz"))
10419 (sha256
10420 (base32
10421 "0v0zxcx29b8jxs2kgy9csykqcp8kzhdvyylw2xfwmj4pfxr2kl0a"))))
10422 (build-system haskell-build-system)
3ef91e15 10423 (home-page "https://hackage.haskell.org/package/refact")
dddbc90c
RV
10424 (synopsis "Specify refactorings to perform with apply-refact")
10425 (description
10426 "This library provides a datatype which can be interpreted by
10427@code{apply-refact}. It exists as a separate library so that applications can
10428specify refactorings without depending on GHC.")
10429 (license license:bsd-3)))
10430
10431(define-public ghc-reflection
10432 (package
10433 (name "ghc-reflection")
d215f1cc 10434 (version "2.1.5")
dddbc90c
RV
10435 (source
10436 (origin
10437 (method url-fetch)
10438 (uri (string-append
10439 "https://hackage.haskell.org/package/reflection/reflection-"
10440 version
10441 ".tar.gz"))
10442 (sha256
10443 (base32
d215f1cc 10444 "0xr947nj1vww5b8fwqmypxm3y3j5sxl4z8wnf834f83jzfzyjbi7"))))
dddbc90c
RV
10445 (build-system haskell-build-system)
10446 (inputs `(("ghc-tagged" ,ghc-tagged)))
d215f1cc
TS
10447 (native-inputs
10448 `(("ghc-hspec" ,ghc-hspec)
10449 ("ghc-quickcheck" ,ghc-quickcheck)
10450 ("hspec-discover" ,hspec-discover)))
dddbc90c
RV
10451 (home-page "https://github.com/ekmett/reflection")
10452 (synopsis "Reify arbitrary terms into types that can be reflected back
10453into terms")
10454 (description "This package addresses the 'configuration problem' which is
10455propagating configurations that are available at run-time, allowing multiple
10456configurations to coexist without resorting to mutable global variables or
10457@code{System.IO.Unsafe.unsafePerformIO}.")
10458 (license license:bsd-3)))
10459
10460(define-public ghc-regex
10461 (package
10462 (name "ghc-regex")
b9a5e634 10463 (version "1.0.2.0")
dddbc90c
RV
10464 (source
10465 (origin
10466 (method url-fetch)
10467 (uri (string-append "https://hackage.haskell.org/package/regex/"
10468 "regex-" version ".tar.gz"))
10469 (sha256
10470 (base32
b9a5e634 10471 "1f2z025hif1fr24b5khq3qxxyvpxrnhyx8xmbms332arw28rpkda"))))
dddbc90c
RV
10472 (build-system haskell-build-system)
10473 (arguments
10474 `(#:phases
10475 (modify-phases %standard-phases
10476 (add-after 'unpack 'relax-dependencies
10477 (lambda _
10478 (substitute* "regex.cabal"
10479 (("base-compat.*>=.*0.6.*")
10480 "base-compat >= 0.6\n")
10481 (("template-haskell.*>=.*2.7.*")
10482 "template-haskell >= 2.7\n"))
10483 #t)))))
10484 (inputs
10485 `(("ghc-base-compat" ,ghc-base-compat)
10486 ("ghc-hashable" ,ghc-hashable)
10487 ("ghc-regex-base" ,ghc-regex-base)
10488 ("ghc-regex-pcre-builtin" ,ghc-regex-pcre-builtin)
10489 ("ghc-regex-tdfa" ,ghc-regex-tdfa)
10490 ("ghc-regex-tdfa-text" ,ghc-regex-tdfa-text)
10491 ("ghc-time-locale-compat" ,ghc-time-locale-compat)
10492 ("ghc-unordered-containers" ,ghc-unordered-containers)
10493 ("ghc-utf8-string" ,ghc-utf8-string)))
10494 (home-page "http://regex.uk")
10495 (synopsis "Toolkit for regex-base")
10496 (description
10497 "This package provides a regular expression toolkit for @code{regex-base}
10498with compile-time checking of regular expression syntax, data types for
10499matches and captures, a text replacement toolkit, portable options, high-level
10500AWK-like tools for building text processing apps, regular expression macros
10501with parsers and test bench, comprehensive documentation, tutorials and
10502copious examples.")
10503 (license license:bsd-3)))
10504
10505(define-public ghc-regex-applicative
10506 (package
10507 (name "ghc-regex-applicative")
30f60e42 10508 (version "0.3.3.1")
dddbc90c
RV
10509 (source
10510 (origin
10511 (method url-fetch)
10512 (uri (string-append
10513 "https://hackage.haskell.org/package/regex-applicative/"
10514 "regex-applicative-" version ".tar.gz"))
10515 (sha256
10516 (base32
30f60e42 10517 "0p0anx5vamrhrdvviwkh2zn6pa3pv2bjb7nfyc7dvz2q7g14y1lg"))))
dddbc90c
RV
10518 (build-system haskell-build-system)
10519 (inputs
10520 `(("ghc-smallcheck" ,ghc-smallcheck)
10521 ("ghc-tasty" ,ghc-tasty)
10522 ("ghc-tasty-smallcheck" ,ghc-tasty-smallcheck)
10523 ("ghc-tasty-hunit" ,ghc-tasty-hunit)))
10524 (home-page "https://github.com/feuerbach/regex-applicative")
10525 (synopsis "Regex-based parsing with applicative interface")
10526 (description
10527 "@code{regex-applicative} is a Haskell library for parsing using
10528regular expressions. Parsers can be built using Applicative interface.")
10529 (license license:expat)))
10530
10531(define-public ghc-regex-base
10532 (package
10533 (name "ghc-regex-base")
10534 (version "0.93.2")
10535 (source
10536 (origin
10537 (method url-fetch)
10538 (uri (string-append
10539 "https://hackage.haskell.org/package/regex-base/regex-base-"
10540 version
10541 ".tar.gz"))
10542 (sha256
10543 (base32
10544 "0y1j4h2pg12c853nzmczs263di7xkkmlnsq5dlp5wgbgl49mgp10"))))
10545 (build-system haskell-build-system)
10546 (home-page
10547 "https://sourceforge.net/projects/lazy-regex")
10548 (synopsis "Replaces/Enhances Text.Regex")
10549 (description "@code{Text.Regex.Base} provides the interface API for
10550regex-posix, regex-pcre, regex-parsec, regex-tdfa, regex-dfa.")
10551 (license license:bsd-3)))
10552
10553(define-public ghc-regex-compat
10554 (package
10555 (name "ghc-regex-compat")
10556 (version "0.95.1")
10557 (source
10558 (origin
10559 (method url-fetch)
10560 (uri (string-append
10561 "https://hackage.haskell.org/package/regex-compat/regex-compat-"
10562 version
10563 ".tar.gz"))
10564 (sha256
10565 (base32
10566 "0fwmima3f04p9y4h3c23493n1xj629ia2dxaisqm6rynljjv2z6m"))))
10567 (build-system haskell-build-system)
10568 (inputs
10569 `(("ghc-regex-base" ,ghc-regex-base)
10570 ("ghc-regex-posix" ,ghc-regex-posix)))
10571 (home-page "https://sourceforge.net/projects/lazy-regex")
10572 (synopsis "Replaces/Enhances Text.Regex")
10573 (description "This library provides one module layer over
10574@code{regex-posix} to replace @code{Text.Regex}.")
10575 (license license:bsd-3)))
10576
10577(define-public ghc-regex-compat-tdfa
10578 (package
10579 (name "ghc-regex-compat-tdfa")
10580 (version "0.95.1.4")
10581 (source
10582 (origin
10583 (method url-fetch)
10584 (uri (string-append
10585 "https://hackage.haskell.org/package/regex-compat-tdfa/regex-compat-tdfa-"
10586 version ".tar.gz"))
10587 (sha256
10588 (base32
10589 "1p90fn90yhp7fvljjdqjp41cszidcfz4pw7fwvzyx4739b98x8sg"))))
10590 (build-system haskell-build-system)
10591 (inputs
10592 `(("ghc-regex-base" ,ghc-regex-base)
10593 ("ghc-regex-tdfa" ,ghc-regex-tdfa)))
10594 (home-page "https://hub.darcs.net/shelarcy/regex-compat-tdfa")
10595 (synopsis "Unicode Support version of Text.Regex, using regex-tdfa")
10596 (description
10597 "One module layer over @code{regex-tdfa} to replace @code{Text.Regex}.
10598@code{regex-compat} can't use Unicode characters correctly because of using regex-posix.
10599This is not good for Unicode users. This modified regex-compat uses regex-tdfa to solve
10600this problem.")
10601 (license license:bsd-3)))
10602
ddd79836
MB
10603(define-public ghc-regex-pcre
10604 (package
10605 (name "ghc-regex-pcre")
10606 (version "0.94.4")
10607 (source (origin
10608 (method url-fetch)
10609 (uri (string-append "https://hackage.haskell.org/package/"
10610 "regex-pcre/regex-pcre-" version ".tar.gz"))
10611 (sha256
10612 (base32
10613 "1h16w994g9s62iwkdqa7bar2n9cfixmkzz2rm8svm960qr57valf"))))
10614 (build-system haskell-build-system)
991ca499
TS
10615 (arguments
10616 `(#:extra-directories ("pcre")))
ddd79836
MB
10617 (inputs
10618 `(("ghc-regex-base" ,ghc-regex-base)
10619 ("pcre" ,pcre)))
10620 (home-page "https://hackage.haskell.org/package/regex-pcre")
10621 (synopsis "Enhancement of the builtin Text.Regex library")
10622 (description
10623 "This package is an enhancement of the @code{Text.Regex} library.
10624It wraps the @code{PCRE} C library providing Perl-compatible regular
10625expressions.")
10626 (license license:bsd-3)))
10627
dddbc90c
RV
10628(define-public ghc-regex-pcre-builtin
10629 (package
10630 (name "ghc-regex-pcre-builtin")
ee946143 10631 (version "0.94.5.8.8.35")
dddbc90c
RV
10632 (source (origin
10633 (method url-fetch)
10634 (uri (string-append "https://hackage.haskell.org/package/"
10635 "regex-pcre-builtin/regex-pcre-builtin-"
10636 version ".tar.gz"))
10637 (sha256
10638 (base32
ee946143 10639 "1s755qdg1mxrf125sh83bsc5kjkrj8fkq8wf6dg1jan86c7p7gl4"))))
dddbc90c
RV
10640 (build-system haskell-build-system)
10641 (inputs
10642 `(("ghc-regex-base" ,ghc-regex-base)))
4723766b 10643 (home-page "https://hackage.haskell.org/package/regex-pcre-builtin")
dddbc90c
RV
10644 (synopsis "Enhancement of the builtin Text.Regex library")
10645 (description
10646 "This package is an enhancement of the @code{Text.Regex} library,
10647providing the PCRE backend to accompany regex-base, with bundled code from
10648@url{https://www.pcre.org}.")
10649 (license license:bsd-3)))
10650
10651(define-public ghc-regex-posix
10652 (package
10653 (name "ghc-regex-posix")
10654 (version "0.95.2")
10655 (source
10656 (origin
10657 (method url-fetch)
10658 (uri (string-append
10659 "https://hackage.haskell.org/package/regex-posix/regex-posix-"
10660 version
10661 ".tar.gz"))
10662 (sha256
10663 (base32
10664 "0gkhzhj8nvfn1ija31c7xnl6p0gadwii9ihyp219ck2arlhrj0an"))))
10665 (build-system haskell-build-system)
10666 (inputs
10667 `(("ghc-regex-base" ,ghc-regex-base)))
10668 (home-page "https://sourceforge.net/projects/lazy-regex")
10669 (synopsis "POSIX regular expressions for Haskell")
10670 (description "This library provides the POSIX regex backend used by the
10671Haskell library @code{regex-base}.")
10672 (license license:bsd-3)))
10673
10674(define-public ghc-regex-tdfa
10675 (package
10676 (name "ghc-regex-tdfa")
ce684db0 10677 (version "1.2.3.2")
dddbc90c
RV
10678 (source
10679 (origin
10680 (method url-fetch)
10681 (uri (string-append
10682 "https://hackage.haskell.org/package/regex-tdfa/regex-tdfa-"
10683 version ".tar.gz"))
10684 (sha256
10685 (base32
ce684db0 10686 "03yhpqrqz977nwlnhnyz9dacnbzw8xb6j18h365rkgmbc05sb3hf"))))
dddbc90c 10687 (build-system haskell-build-system)
54c8209e 10688 (outputs '("out" "static" "doc"))
dddbc90c
RV
10689 (inputs
10690 `(("ghc-regex-base" ,ghc-regex-base)))
90b74c6f 10691 (home-page "https://github.com/haskell-hvr/regex-tdfa")
dddbc90c
RV
10692 (synopsis "POSIX extended regular expressions in Haskell.")
10693 (description
10694 "Regex-tdfa is a pure Haskell regular expression library implementing POSIX
10695extended regular expressions. It is a \"tagged\" DFA regex engine. It is
10696inspired by libtre.")
10697 (license license:bsd-3)))
10698
10699(define-public ghc-regex-tdfa-text
10700 (package
10701 (name "ghc-regex-tdfa-text")
10702 (version "1.0.0.3")
10703 (source
10704 (origin
10705 (method url-fetch)
10706 (uri (string-append
10707 "https://hackage.haskell.org/package/regex-tdfa-text/"
10708 "regex-tdfa-text-" version ".tar.gz"))
10709 (sha256
10710 (base32
10711 "0090g6lgbdm9lywpqm2d3724nnnh24nx3vnlqr96qc2w486pmmrq"))))
10712 (build-system haskell-build-system)
10713 (inputs
10714 `(("ghc-regex-base" ,ghc-regex-base)
10715 ("ghc-regex-tdfa" ,ghc-regex-tdfa)))
10716 (home-page
3ef91e15 10717 "https://hackage.haskell.org/package/regex-tdfa-text")
dddbc90c
RV
10718 (synopsis "Text interface for regex-tdfa")
10719 (description
10720 "This provides an extra text interface for regex-tdfa.")
10721 (license license:bsd-3)))
10722
798a2df4
JS
10723(define-public ghc-repline
10724 (package
10725 (name "ghc-repline")
10726 (version "0.2.0.0")
10727 (source
10728 (origin
10729 (method url-fetch)
10730 (uri (string-append
10731 "mirror://hackage/package/repline/repline-"
10732 version
10733 ".tar.gz"))
10734 (sha256
10735 (base32
10736 "1ph21kbbanlcs8n5lwk16g9vqkb98mkbz5mzwrp8j2rls2921izc"))))
10737 (build-system haskell-build-system)
10738 (home-page "https://github.com/sdiehl/repline")
10739 (synopsis "Haskeline wrapper for GHCi-like REPL interfaces")
10740 (description
10741 "Haskeline wrapper for GHCi-like REPL interfaces. Composable with
10742normal mtl transformers.")
10743 (license license:expat)))
10744
6c0858dd
JS
10745(define-public ghc-repline-0.3
10746 (package
10747 (inherit ghc-repline)
10748 (version "0.3.0.0")
10749 (source
10750 (origin
10751 (method url-fetch)
10752 (uri (string-append
10753 "mirror://hackage/package/repline/repline-"
10754 version
10755 ".tar.gz"))
10756 (sha256
10757 (base32
10758 "0niihfyggg2qisadg7w49cr5k5qyyynia93iip0ng2bbmzwi88g8"))))
10759 (inputs
10760 `(("ghc-exceptions" ,ghc-exceptions)
10761 ("ghc-haskeline" ,ghc-haskeline-0.8)))))
10762
dddbc90c
RV
10763(define-public ghc-rerebase
10764 (package
10765 (name "ghc-rerebase")
cdec7b8c 10766 (version "1.3.1.1")
dddbc90c
RV
10767 (source
10768 (origin
10769 (method url-fetch)
10770 (uri (string-append
10771 "https://hackage.haskell.org/package/rerebase/rerebase-"
10772 version ".tar.gz"))
10773 (sha256
10774 (base32
cdec7b8c 10775 "1jbqif6k249rkknm2zwk8v8jil3kgi9ar53358v8l4ffx346rm82"))))
dddbc90c 10776 (build-system haskell-build-system)
af2f91ec 10777 (outputs '("out" "static" "doc"))
dddbc90c
RV
10778 (inputs
10779 `(("ghc-rebase" ,ghc-rebase)))
10780 (home-page "https://github.com/nikita-volkov/rerebase")
10781 (synopsis "Reexports from ``base'' with many other standard libraries")
10782 (description "A rich drop-in replacement for @code{base}. For details and
10783documentation please visit @uref{https://github.com/nikita-volkov/rerebase,
10784the project's home page}.")
10785 (license license:expat)))
10786
10787(define-public ghc-resolv
10788 (package
10789 (name "ghc-resolv")
87309478 10790 (version "0.1.1.2")
dddbc90c
RV
10791 (source
10792 (origin
10793 (method url-fetch)
10794 (uri (string-append
10795 "https://hackage.haskell.org/package/resolv/resolv-"
10796 version ".tar.gz"))
10797 (sha256
10798 (base32
87309478 10799 "0wczdy3vmpfcfwjn1m95bygc5d83m97xxmavhdvy5ayn8c402fp4"))))
dddbc90c
RV
10800 (build-system haskell-build-system)
10801 (arguments
87309478
TS
10802 `(#:phases
10803 (modify-phases %standard-phases
10804 (add-before 'configure 'update-constraints
10805 (lambda _
10806 (substitute* "resolv.cabal"
10807 (("tasty >= 1\\.1 && < 1\\.2")
10808 "tasty >= 1.1 && < 1.3"))
10809 #t)))))
dddbc90c
RV
10810 (inputs
10811 `(("ghc-base16-bytestring" ,ghc-base16-bytestring)))
87309478
TS
10812 (native-inputs
10813 `(("ghc-tasty" ,ghc-tasty)
10814 ("ghc-tasty-hunit" ,ghc-tasty-hunit)))
dddbc90c
RV
10815 (home-page "https://github.com/haskell/hackage-security")
10816 (synopsis "Domain Name Service (DNS) lookup via @code{libresolv}")
10817 (description "This package implements an API for accessing the
10818@uref{https://tools.ietf.org/html/rfc1035, Domain Name Service (DNS)}
10819resolver service via the standard @code{libresolv} system library (whose
10820API is often available directly via the standard @code{libc} C library) on
10821Unix systems.")
10822 (license license:gpl3)))
10823
10824(define-public ghc-resource-pool
10825 (package
10826 (name "ghc-resource-pool")
10827 (version "0.2.3.2")
10828 (source
10829 (origin
10830 (method url-fetch)
10831 (uri (string-append "https://hackage.haskell.org/package/"
10832 "resource-pool-" version "/"
10833 "resource-pool-" version ".tar.gz"))
10834 (sha256
10835 (base32
10836 "04mw8b9djb14zp4rdi6h7mc3zizh597ffiinfbr4m0m8psifw9w6"))))
10837 (build-system haskell-build-system)
10838 (inputs `(("ghc-hashable" ,ghc-hashable)
10839 ("ghc-monad-control" ,ghc-monad-control)
10840 ("ghc-transformers-base" ,ghc-transformers-base)
10841 ("ghc-vector" ,ghc-vector)))
10842 (home-page "https://github.com/bos/pool")
10843 (synopsis "Striped resource pooling implementation in Haskell")
10844 (description "This Haskell package provides striped pooling abstraction
10845for managing flexibly-sized collections of resources such as database
10846connections.")
10847 (license license:bsd-3)))
10848
10849(define-public ghc-resourcet
10850 (package
10851 (name "ghc-resourcet")
9ac341ac 10852 (version "1.2.2")
dddbc90c
RV
10853 (source
10854 (origin
10855 (method url-fetch)
10856 (uri (string-append "https://hackage.haskell.org/package/resourcet/"
10857 "resourcet-" version ".tar.gz"))
10858 (sha256
10859 (base32
9ac341ac 10860 "1rfbfcv3r1h29y0yqr3x6a1s04lbc3vzm3jqnfg4f9rqp9d448qk"))))
dddbc90c
RV
10861 (build-system haskell-build-system)
10862 (inputs
10863 `(("ghc-transformers-base" ,ghc-transformers-base)
10864 ("ghc-monad-control" ,ghc-monad-control)
10865 ("ghc-transformers-compat" ,ghc-transformers-compat)
10866 ("ghc-mmorph" ,ghc-mmorph)
10867 ("ghc-exceptions" ,ghc-exceptions)
10868 ("ghc-unliftio-core" ,ghc-unliftio-core)))
10869 (native-inputs
10870 `(("ghc-lifted-base" ,ghc-lifted-base)
10871 ("ghc-hspec" ,ghc-hspec)))
10872 (home-page "https://github.com/snoyberg/conduit")
10873 (synopsis "Deterministic allocation and freeing of scarce resources")
10874 (description "ResourceT is a monad transformer which creates a region of
10875code where you can safely allocate resources.")
10876 (license license:bsd-3)))
10877
b9debc37
TS
10878(define-public ghc-retry
10879 (package
10880 (name "ghc-retry")
10881 (version "0.8.1.0")
10882 (source
10883 (origin
10884 (method url-fetch)
10885 (uri (string-append "https://hackage.haskell.org/package/"
10886 "retry/retry-" version ".tar.gz"))
10887 (sha256
10888 (base32
10889 "02k03r86amg1vbrsvb644342ym13d9jwkzki9sk93pdg5l8j35dj"))))
10890 (build-system haskell-build-system)
10891 (inputs
10892 `(("ghc-exceptions" ,ghc-exceptions)
10893 ("ghc-random" ,ghc-random)))
10894 (native-inputs
10895 `(("ghc-hunit" ,ghc-hunit)
10896 ("ghc-tasty" ,ghc-tasty)
10897 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
10898 ("ghc-tasty-hedgehog" ,ghc-tasty-hedgehog)
10899 ("ghc-hedgehog" ,ghc-hedgehog)))
702a1012 10900 (home-page "https://github.com/Soostone/retry")
b9debc37
TS
10901 (synopsis "Retry combinators for monadic actions that may fail")
10902 (description "This package exposes combinators that can wrap
10903arbitrary monadic actions. They run the action and potentially retry
10904running it with some configurable delay for a configurable number of
10905times. The purpose is to make it easier to work with IO and especially
10906network IO actions that often experience temporary failure and warrant
10907retrying of the original action. For example, a database query may time
10908out for a while, in which case we should hang back for a bit and retry
10909the query instead of simply raising an exception.")
10910 (license license:bsd-3)))
10911
dddbc90c
RV
10912(define-public ghc-rfc5051
10913 (package
10914 (name "ghc-rfc5051")
ec42ab7c 10915 (version "0.1.0.4")
dddbc90c
RV
10916 (source
10917 (origin
10918 (method url-fetch)
10919 (uri (string-append "https://hackage.haskell.org/package/rfc5051/"
10920 "rfc5051-" version ".tar.gz"))
10921 (sha256
10922 (base32
ec42ab7c 10923 "1lxkq414ni986ciml4gbvf463fn55z299knky7pq3ixb1qislpb1"))))
dddbc90c
RV
10924 (build-system haskell-build-system)
10925 (home-page "https://hackage.haskell.org/package/rfc5051")
10926 (synopsis "Simple unicode collation as per RFC5051")
10927 (description
10928 "This library implements @code{unicode-casemap}, the simple, non
10929locale-sensitive unicode collation algorithm described in RFC 5051. Proper
10930unicode collation can be done using @code{text-icu}, but that is a big
10931dependency that depends on a large C library, and @code{rfc5051} might be
10932better for some purposes.")
10933 (license license:bsd-3)))
10934
10935(define-public ghc-rio
10936 (package
10937 (name "ghc-rio")
8bda2fa7 10938 (version "0.1.12.0")
dddbc90c
RV
10939 (source
10940 (origin
10941 (method url-fetch)
10942 (uri (string-append
10943 "https://hackage.haskell.org/package/rio/rio-"
10944 version ".tar.gz"))
10945 (sha256
10946 (base32
8bda2fa7 10947 "0xzjkh6aavynpyskikhs8dmv0zhkiqiwz9zdn80zbd25b2182pif"))))
dddbc90c
RV
10948 (build-system haskell-build-system)
10949 (inputs
10950 `(("ghc-exceptions" ,ghc-exceptions)
10951 ("ghc-hashable" ,ghc-hashable)
10952 ("ghc-microlens" ,ghc-microlens)
10953 ("ghc-primitive" ,ghc-primitive)
10954 ("ghc-typed-process" ,ghc-typed-process)
10955 ("ghc-unliftio" ,ghc-unliftio)
10956 ("ghc-unordered-containers" ,ghc-unordered-containers)
10957 ("ghc-vector" ,ghc-vector)))
10958 (native-inputs
10959 `(("ghc-hspec" ,ghc-hspec)
10960 ("hspec-discover" ,hspec-discover)))
10961 (home-page "https://github.com/commercialhaskell/rio#readme")
10962 (synopsis "A standard library for Haskell")
10963 (description "This package works as a prelude replacement for Haskell,
10964providing more functionality and types out of the box than the standard
10965prelude (such as common data types like @code{ByteString} and
10966@code{Text}), as well as removing common ``gotchas'', like partial
10967functions and lazy I/O. The guiding principle here is:
10968@itemize
10969@item If something is safe to use in general and has no expected naming
10970conflicts, expose it.
10971@item If something should not always be used, or has naming conflicts,
10972expose it from another module in the hierarchy.
10973@end itemize")
10974 (license license:expat)))
10975
10976(define-public ghc-safe
10977 (package
10978 (name "ghc-safe")
10979 (version "0.3.17")
10980 (source
10981 (origin
10982 (method url-fetch)
10983 (uri (string-append
10984 "https://hackage.haskell.org/package/safe/safe-"
10985 version
10986 ".tar.gz"))
10987 (sha256
10988 (base32
10989 "0p3yaf5slvyz1cyy51jq64c5rlp8yzwim8iy2dlnk42if4gc9ibr"))))
10990 (build-system haskell-build-system)
10991 (native-inputs
10992 `(("ghc-quickcheck" ,ghc-quickcheck)))
10993 (home-page "https://github.com/ndmitchell/safe#readme")
10994 (synopsis "Library of safe (exception free) functions")
10995 (description "This library provides wrappers around @code{Prelude} and
10996@code{Data.List} functions, such as @code{head} and @code{!!}, that can throw
10997exceptions.")
10998 (license license:bsd-3)))
10999
11000(define-public ghc-safe-exceptions
11001 (package
11002 (name "ghc-safe-exceptions")
11003 (version "0.1.7.0")
11004 (source
11005 (origin
11006 (method url-fetch)
11007 (uri (string-append "https://hackage.haskell.org/package/"
11008 "safe-exceptions/safe-exceptions-"
11009 version ".tar.gz"))
11010 (sha256
11011 (base32
11012 "0sd0zfsm9pcll5bzzj523rbn45adjrnavdkz52hgmdjjgdcdrk8q"))))
11013 (build-system haskell-build-system)
11014 (arguments
11015 '(#:cabal-revision
11016 ("4" "0fid41gishzsyb47wzxhd5falandfirqcp760hcja81qjpfmqd32")))
11017 (inputs `(("ghc-exceptions" ,ghc-exceptions)))
11018 (native-inputs
11019 `(("ghc-hspec" ,ghc-hspec)
11020 ("ghc-void" ,ghc-void)
11021 ("hspec-discover" ,hspec-discover)))
11022 (home-page "https://github.com/fpco/safe-exceptions")
11023 (synopsis "Safe, consistent, and easy exception handling")
11024 (description "Runtime exceptions - as exposed in @code{base} by the
11025@code{Control.Exception} module - have long been an intimidating part of the
11026Haskell ecosystem. This package is intended to overcome this. It provides a
11027safe and simple API on top of the existing exception handling machinery. The
11028API is equivalent to the underlying implementation in terms of power but
11029encourages best practices to minimize the chances of getting the exception
11030handling wrong.")
11031 (license license:expat)))
11032
11033(define-public ghc-safeio
11034 (package
11035 (name "ghc-safeio")
11036 (version "0.0.5.0")
11037 (source
11038 (origin
11039 (method url-fetch)
11040 (uri (string-append "https://hackage.haskell.org/package/safeio/"
11041 "safeio-" version ".tar.gz"))
11042 (sha256
11043 (base32
11044 "04g3070cbjdqj0h9l9ii6470xcbn40xfv4fr89a8yvnkdim9nyfm"))))
11045 (build-system haskell-build-system)
11046 (inputs
11047 `(("ghc-conduit" ,ghc-conduit)
11048 ("ghc-conduit-combinators" ,ghc-conduit-combinators)
11049 ("ghc-exceptions" ,ghc-exceptions)
11050 ("ghc-resourcet" ,ghc-resourcet)))
11051 (native-inputs
11052 `(("ghc-hunit" ,ghc-hunit)
11053 ("ghc-test-framework" ,ghc-test-framework)
11054 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
11055 ("ghc-test-framework-th" ,ghc-test-framework-th)))
11056 (home-page "https://github.com/luispedro/safeio")
11057 (synopsis "Write output to disk atomically")
11058 (description
11059 "This package implements utilities to perform atomic output so as to
11060avoid the problem of partial intermediate files.")
11061 (license license:expat)))
11062
11063(define-public ghc-safesemaphore
11064 (package
11065 (name "ghc-safesemaphore")
11066 (version "0.10.1")
11067 (source
11068 (origin
11069 (method url-fetch)
11070 (uri (string-append "https://hackage.haskell.org/package/"
11071 "SafeSemaphore/SafeSemaphore-" version ".tar.gz"))
11072 (sha256
11073 (base32
11074 "0rpg9j6fy70i0b9dkrip9d6wim0nac0snp7qzbhykjkqlcvvgr91"))))
11075 (build-system haskell-build-system)
11076 (native-inputs
11077 `(("ghc-hunit" ,ghc-hunit)))
11078 (home-page "https://github.com/ChrisKuklewicz/SafeSemaphore")
11079 (synopsis "Exception safe semaphores")
11080 (description "This library provides exception safe semaphores that can be
11081used in place of @code{QSem}, @code{QSemN}, and @code{SampleVar}, all of which
11082are not exception safe and can be broken by @code{killThread}.")
11083 (license license:bsd-3)))
11084
11085(define-public ghc-sandi
11086 (package
11087 (name "ghc-sandi")
b867c2b0 11088 (version "0.5")
dddbc90c
RV
11089 (source
11090 (origin
11091 (method url-fetch)
11092 (uri (string-append
11093 "https://hackage.haskell.org/package/sandi/sandi-"
11094 version ".tar.gz"))
11095 (sha256
11096 (base32
b867c2b0 11097 "1ndgai8idlxyccvkz5zsgq06v58blc30i6hkky5b1sf5x6gs2h29"))))
dddbc90c
RV
11098 (build-system haskell-build-system)
11099 (inputs
11100 `(("ghc-stringsearch" ,ghc-stringsearch)
11101 ("ghc-conduit" ,ghc-conduit)
11102 ("ghc-exceptions" ,ghc-exceptions)
11103 ("ghc-hunit" ,ghc-hunit)
11104 ("ghc-tasty" ,ghc-tasty)
11105 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
11106 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
11107 ("ghc-tasty-th" ,ghc-tasty-th)))
11108 (home-page "https://hackage.haskell.org/package/sandi")
11109 (synopsis "Data encoding library")
11110 (description "Reasonably fast data encoding library.")
11111 (license license:bsd-3)))
11112
4da75228
ASM
11113(define-public ghc-say
11114 (package
11115 (name "ghc-say")
11116 (version "0.1.0.1")
11117 (source
11118 (origin
11119 (method url-fetch)
11120 (uri (string-append
11121 "https://hackage.haskell.org/package/say/say-"
11122 version
11123 ".tar.gz"))
11124 (sha256
11125 (base32
11126 "1r5kffjfwpas45g74sip8glrj1m9nygrnxjm7xgw898rq9pnafgn"))))
11127 (build-system haskell-build-system)
11128 (native-inputs
11129 `(("ghc-hspec" ,ghc-hspec)
11130 ("hspec-discover" ,hspec-discover)
11131 ("ghc-unliftio" ,ghc-unliftio)))
11132 (home-page "https://github.com/fpco/say")
11133 (synopsis
11134 "Send textual messages to a Handle in a thread-friendly way")
11135 (description
11136 "A thread safe API to write a line of textual data to a Handle, such
11137as sending some messages to the terminal - that has the following properties:
11138@itemize
11139@item Properly handle character encoding settings on the Handle
11140@item For reasonably sized messages, ensure that the entire message is written
11141 in one chunk to avoid interleaving data with other threads
11142@item Avoid unnecessary memory allocations and copies
11143@item Minimize locking.
11144@end itemize")
11145 (license license:expat)))
11146
dddbc90c
RV
11147(define-public ghc-scientific
11148 (package
11149 (name "ghc-scientific")
11150 (version "0.3.6.2")
11151 (source
11152 (origin
11153 (method url-fetch)
11154 (uri (string-append
11155 "https://hackage.haskell.org/package/scientific/scientific-"
11156 version
11157 ".tar.gz"))
11158 (sha256
11159 (base32
11160 "03ql2f0ac8bsl524idy9xxa3kxisb2sj3avflzw580j5hzy0m397"))))
11161 (build-system haskell-build-system)
11162 (inputs
11163 `(("ghc-integer-logarithms" ,ghc-integer-logarithms)
11164 ("ghc-hashable" ,ghc-hashable)
11165 ("ghc-primitive" ,ghc-primitive)))
11166 (native-inputs
11167 `(("ghc-tasty" ,ghc-tasty)
11168 ("ghc-tasty-ant-xml" ,ghc-tasty-ant-xml)
11169 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
11170 ("ghc-tasty-smallcheck" ,ghc-tasty-smallcheck)
11171 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
11172 ("ghc-smallcheck" ,ghc-smallcheck)
11173 ("ghc-quickcheck" ,ghc-quickcheck)))
11174 (home-page "https://github.com/basvandijk/scientific")
11175 (synopsis "Numbers represented using scientific notation")
11176 (description "This package provides @code{Data.Scientific}, which provides
11177the number type @code{Scientific}. Scientific numbers are arbitrary precision
11178and space efficient. They are represented using
11179@uref{https://en.wikipedia.org/wiki/Scientific_notation, scientific
11180notation}.")
11181 (license license:bsd-3)))
11182
11183(define-public ghc-scientific-bootstrap
11184 (package
11185 (inherit ghc-scientific)
11186 (name "ghc-scientific-bootstrap")
11187 (arguments `(#:tests? #f))
11188 (inputs
11189 `(("ghc-integer-logarithms" ,ghc-integer-logarithms-bootstrap)
11190 ("ghc-hashable" ,ghc-hashable)
11191 ("ghc-primitive" ,ghc-primitive)))
11192 (native-inputs '())
799d8d3c 11193 (properties '((hidden? #t)))))
dddbc90c
RV
11194
11195(define-public ghc-sdl
11196 (package
11197 (name "ghc-sdl")
11198 (version "0.6.7.0")
11199 (source
11200 (origin
11201 (method url-fetch)
11202 (uri (string-append
11203 "https://hackage.haskell.org/package/SDL/SDL-"
11204 version
11205 ".tar.gz"))
11206 (sha256
11207 (base32
11208 "00y67v80a8l09i3k76z09lg25kw72ivl09nag8ckdlk4a0cfnzfq"))))
11209 (build-system haskell-build-system)
11210 (inputs
11211 `(("sdl" ,sdl)))
11212 (home-page "https://hackage.haskell.org/package/SDL")
11213 (synopsis "LibSDL for Haskell")
11214 (description "Simple DirectMedia Layer (libSDL) is a cross-platform
11215multimedia library designed to provide low level access to audio, keyboard,
11216mouse, joystick, 3D hardware via OpenGL, and 2D video framebuffer. It is used
11217by MPEG playback software, emulators, and many popular games, including the
11218award winning Linux port of \"Civilization: Call To Power.\"")
11219 (license license:bsd-3)))
11220
1874cdc1
RV
11221(define-public ghc-sdl2
11222 (package
11223 (name "ghc-sdl2")
145148ca 11224 (version "2.5.0.0")
1874cdc1
RV
11225 (source
11226 (origin
11227 (method url-fetch)
11228 (uri (string-append "https://hackage.haskell.org/package/"
11229 "sdl2/sdl2-" version ".tar.gz"))
11230 (sha256
11231 (base32
145148ca 11232 "1x368yhdd55b3cvx8dvj1sj6nzygzigbhrwhssjs4k0rcxlwqfw8"))))
1874cdc1
RV
11233 (build-system haskell-build-system)
11234 (arguments '(#:tests? #f)) ; tests require graphical environment
11235 (inputs
11236 `(("ghc-exceptions" ,ghc-exceptions)
11237 ("ghc-linear" ,ghc-linear)
11238 ("ghc-statevar" ,ghc-statevar)
11239 ("ghc-vector" ,ghc-vector)
11240 ("sdl2" ,sdl2)))
11241 (native-inputs
11242 `(("ghc-weigh" ,ghc-weigh)
11243 ("pkg-config" ,pkg-config)))
35437dbf 11244 (home-page "https://hackage.haskell.org/package/sdl2")
1874cdc1
RV
11245 (synopsis "High- and low-level bindings to the SDL library")
11246 (description
11247 "This package contains bindings to the SDL 2 library, in both high- and
11248low-level forms. The @code{SDL} namespace contains high-level bindings, where
11249enumerations are split into sum types, and we perform automatic
11250error-checking. The @code{SDL.Raw} namespace contains an almost 1-1
11251translation of the C API into Haskell FFI calls. As such, this does not
11252contain sum types nor error checking. Thus this namespace is suitable for
11253building your own abstraction over SDL, but is not recommended for day-to-day
11254programming.")
11255 (license license:bsd-3)))
11256
11257(define-public ghc-sdl2-image
11258 (package
11259 (name "ghc-sdl2-image")
11260 (version "2.0.0")
11261 (source
11262 (origin
11263 (method url-fetch)
11264 (uri (string-append "https://hackage.haskell.org/package/sdl2-image/"
11265 "sdl2-image-" version ".tar.gz"))
11266 (sha256
11267 (base32
11268 "1pr6dkg73cy9z0w54lrkj9c5bhxj56nl92lxikjy8kz6nyr455rr"))))
11269 (build-system haskell-build-system)
11270 (inputs
11271 `(("ghc-sdl2" ,ghc-sdl2)
11272 ("sdl2-image" ,sdl2-image)))
11273 (native-inputs
11274 `(("pkg-config" ,pkg-config)))
3ef91e15 11275 (home-page "https://hackage.haskell.org/package/sdl2-image")
1874cdc1
RV
11276 (synopsis "Bindings to SDL2_image")
11277 (description "This package provides Haskell bindings to
11278@code{SDL2_image}.")
11279 (license license:expat)))
11280
11281(define-public ghc-sdl2-mixer
11282 (package
11283 (name "ghc-sdl2-mixer")
11284 (version "1.1.0")
11285 (source
11286 (origin
11287 (method url-fetch)
11288 (uri (string-append "https://hackage.haskell.org/package/sdl2-mixer/"
11289 "sdl2-mixer-" version ".tar.gz"))
11290 (sha256
11291 (base32
11292 "1k8avyccq5l9z7bwxigim312yaancxl1sr3q6a96bcm7pnhiak0g"))))
11293 (build-system haskell-build-system)
11294 (inputs
11295 `(("ghc-data-default-class" ,ghc-data-default-class)
11296 ("ghc-lifted-base" ,ghc-lifted-base)
11297 ("ghc-monad-control" ,ghc-monad-control)
11298 ("ghc-sdl2" ,ghc-sdl2)
11299 ("ghc-vector" ,ghc-vector)
11300 ("sdl2-mixer" ,sdl2-mixer)))
11301 (native-inputs
11302 `(("pkg-config" ,pkg-config)))
3ef91e15 11303 (home-page "https://hackage.haskell.org/package/sdl2-mixer")
1874cdc1
RV
11304 (synopsis "Bindings to SDL2 mixer")
11305 (description "This package provides Haskell bindings to
11306@code{SDL2_mixer}.")
11307 (license license:bsd-3)))
11308
dddbc90c
RV
11309(define-public ghc-sdl-image
11310 (package
11311 (name "ghc-sdl-image")
11312 (version "0.6.2.0")
11313 (source
11314 (origin
11315 (method url-fetch)
11316 (uri (string-append
11317 "https://hackage.haskell.org/package/SDL-image/SDL-image-"
11318 version
11319 ".tar.gz"))
11320 (sha256
11321 (base32
11322 "1gxwrvswgwjw6g7ym52gik22l9l3ljy592phv97jdmcf3gi6qcg1"))))
11323 (build-system haskell-build-system)
11324 (arguments
11325 `(#:configure-flags
11326 (let* ((sdl-image (assoc-ref %build-inputs "sdl-image"))
11327 (sdl-image-include (string-append sdl-image "/include/SDL")))
11328 (list (string-append "--extra-include-dirs=" sdl-image-include)))))
11329 (inputs
11330 `(("ghc-sdl" ,ghc-sdl)
11331 ("sdl-image" ,sdl-image)))
11332 (home-page "https://hackage.haskell.org/package/SDL-image")
11333 (synopsis "Haskell bindings to libSDL_image")
11334 (description "SDL_image is an image file loading library. It loads images
11335as SDL surfaces, and supports the following formats: BMP, GIF, JPEG, LBM, PCX,
11336PNG, PNM, TGA, TIFF, XCF, XPM, XV.")
11337 (license license:bsd-3)))
11338
11339(define-public ghc-sdl-mixer
11340 (package
11341 (name "ghc-sdl-mixer")
11342 (version "0.6.3.0")
11343 (source
11344 (origin
11345 (method url-fetch)
11346 (uri (string-append
11347 "https://hackage.haskell.org/package/SDL-mixer/SDL-mixer-"
11348 version
11349 ".tar.gz"))
11350 (sha256
11351 (base32
11352 "0k26hqgdh789ka3mv4dsk6rin6x6vwcs6hjmnsqq7j3mnrh1342r"))))
11353 (build-system haskell-build-system)
11354 (arguments
11355 `(#:configure-flags
11356 (let* ((sdl-mixer (assoc-ref %build-inputs "sdl-mixer"))
11357 (sdl-mixer-include (string-append sdl-mixer "/include/SDL")))
11358 (list (string-append "--extra-include-dirs=" sdl-mixer-include)))))
11359 (inputs
11360 `(("ghc-sdl" ,ghc-sdl)
11361 ("sdl-mixer" ,sdl-mixer)))
11362 (home-page "https://hackage.haskell.org/package/SDL-mixer")
11363 (synopsis "Haskell bindings to libSDL_mixer")
11364 (description "SDL_mixer is a sample multi-channel audio mixer library. It
11365supports any number of simultaneously playing channels of 16 bit stereo audio,
11366plus a single channel of music, mixed by the popular MikMod MOD, Timidity
11367MIDI, Ogg Vorbis, and SMPEG MP3 libraries.")
11368 (license license:bsd-3)))
11369
11370(define-public ghc-securemem
11371 (package
11372 (name "ghc-securemem")
11373 (version "0.1.10")
11374 (source
11375 (origin
11376 (method url-fetch)
11377 (uri (string-append "https://hackage.haskell.org/package/"
11378 "securemem-" version "/"
11379 "securemem-" version ".tar.gz"))
11380 (sha256
11381 (base32
11382 "19hnw2cfbsfjynxq1bq9f6djbxhsc1k751ml0y1ab3ah913mm29j"))))
11383 (build-system haskell-build-system)
11384 (inputs `(("ghc-byteable" ,ghc-byteable)
11385 ("ghc-memory" ,ghc-memory)))
11386 (home-page "https://github.com/vincenthz/hs-securemem")
11387 (synopsis "Auto-scrubbing and const-time-eq memory chunk abstraction for
11388Haskell")
11389 (description "SecureMem is similar to ByteString, except that it provides
11390a memory chunk that will be auto-scrubbed after it run out of scope.")
11391 (license license:bsd-3)))
11392
3cf7219c
JS
11393(define-public ghc-semialign
11394 (package
11395 (name "ghc-semialign")
11396 (version "1")
11397 (source
11398 (origin
11399 (method url-fetch)
11400 (uri (string-append
11401 "https://hackage.haskell.org/package/semialign/semialign-"
11402 version
11403 ".tar.gz"))
11404 (sha256
11405 (base32
11406 "004x0a80sqqdgvsyk4z0nasxpi6z3g1d8kgwj804bj9ka8dlc75m"))))
11407 (build-system haskell-build-system)
11408 (inputs
11409 `(("ghc-these" ,ghc-these)
11410 ("ghc-base-compat" ,ghc-base-compat)
11411 ("ghc-hashable" ,ghc-hashable)
11412 ("ghc-tagged" ,ghc-tagged)
11413 ("ghc-unordered-containers" ,ghc-unordered-containers)
11414 ("ghc-vector" ,ghc-vector)
11415 ("ghc-semigroupoids" ,ghc-semigroupoids)))
11416 (arguments
11417 `(#:cabal-revision
11418 ("1"
11419 "0qnqnyfng4kwy2h2anrcy5id2ijnawava3zcc5h5b8ri1y6ks6zi")))
11420 (home-page
11421 "https://github.com/isomorphism/these")
11422 (synopsis
11423 "Align and Zip type-classes from the common Semialign ancestor ")
11424 (description
11425 "The major use of @code{These} of this is provided by the
11426@code{align} member of @code{Semialign} class, representing a
11427generalized notion of \"zipping with padding\" that combines
11428structures without truncating to the size of the smaller input. It
11429turns out that @code{zip} operation fits well the @code{Semialign}
11430class, forming lattice-like structure.")
11431 (license license:bsd-3)))
11432
dddbc90c
RV
11433(define-public ghc-semigroupoids
11434 (package
11435 (name "ghc-semigroupoids")
a8aaadf2 11436 (version "5.3.3")
dddbc90c
RV
11437 (source
11438 (origin
11439 (method url-fetch)
11440 (uri (string-append
11441 "https://hackage.haskell.org/package/semigroupoids/semigroupoids-"
11442 version
11443 ".tar.gz"))
11444 (sha256
11445 (base32
a8aaadf2 11446 "016hc4imr9l4szs3p7f1aahvxr5wv4clvr3qzrm3nibssg5vrs61"))))
dddbc90c 11447 (build-system haskell-build-system)
95eb946b 11448 (outputs '("out" "static" "doc"))
dddbc90c
RV
11449 (inputs
11450 `(("ghc-base-orphans" ,ghc-base-orphans)
11451 ("ghc-transformers-compat" ,ghc-transformers-compat)
11452 ("ghc-bifunctors" ,ghc-bifunctors)
11453 ("ghc-comonad" ,ghc-comonad)
11454 ("ghc-contravariant" ,ghc-contravariant)
11455 ("ghc-distributive" ,ghc-distributive)
11456 ("ghc-hashable" ,ghc-hashable)
11457 ("ghc-semigroups" ,ghc-semigroups)
11458 ("ghc-tagged" ,ghc-tagged)
11459 ("ghc-unordered-containers" ,ghc-unordered-containers)))
11460 (native-inputs
11461 `(("cabal-doctest" ,cabal-doctest)
11462 ("ghc-doctest" ,ghc-doctest)))
11463 (home-page "https://github.com/ekmett/semigroupoids")
11464 (synopsis "Semigroupoids operations for Haskell")
11465 (description "This library provides a wide array of (semi)groupoids and
11466operations for working with them. A @code{Semigroupoid} is a @code{Category}
11467without the requirement of identity arrows for every object in the category.
11468A @code{Category} is any @code{Semigroupoid} for which the Yoneda lemma holds.
11469Finally, to work with these weaker structures it is beneficial to have
11470containers that can provide stronger guarantees about their contents, so
11471versions of @code{Traversable} and @code{Foldable} that can be folded with
11472just a @code{Semigroup} are added.")
11473 (license license:bsd-3)))
11474
11475(define-public ghc-semigroups
11476 (package
11477 (name "ghc-semigroups")
11478 (version "0.18.5")
11479 (source
11480 (origin
11481 (method url-fetch)
11482 (uri (string-append
11483 "https://hackage.haskell.org/package/semigroups/semigroups-"
11484 version
11485 ".tar.gz"))
11486 (sha256
11487 (base32
11488 "17g29h62g1k51ghhvzkw72zksjgi6vs6bfipkj81pqw1dsprcamb"))))
11489 (build-system haskell-build-system)
11490 (inputs
11491 `(("ghc-nats" ,ghc-nats)
11492 ("ghc-tagged" ,ghc-tagged)
11493 ("ghc-unordered-containers" ,ghc-unordered-containers)
11494 ("ghc-hashable" ,ghc-hashable)))
11495 (home-page "https://github.com/ekmett/semigroups/")
11496 (synopsis "Semigroup operations for Haskell")
11497 (description "This package provides semigroups for Haskell. In
11498mathematics, a semigroup is an algebraic structure consisting of a set
11499together with an associative binary operation. A semigroup generalizes a
11500monoid in that there might not exist an identity element. It
11501also (originally) generalized a group (a monoid with all inverses) to a type
11502where every element did not have to have an inverse, thus the name
11503semigroup.")
11504 (license license:bsd-3)))
11505
11506(define-public ghc-semigroups-bootstrap
11507 (package
11508 (inherit ghc-semigroups)
11509 (name "ghc-semigroups-bootstrap")
11510 (inputs
11511 `(("ghc-nats" ,ghc-nats-bootstrap)
11512 ("ghc-tagged" ,ghc-tagged)
11513 ("ghc-unordered-containers" ,ghc-unordered-containers-bootstrap)
11514 ("ghc-hashable" ,ghc-hashable-bootstrap)))
799d8d3c 11515 (properties '((hidden? #t)))))
dddbc90c 11516
47c526df
JS
11517(define-public ghc-serialise
11518 (package
11519 (name "ghc-serialise")
11520 (version "0.2.1.0")
11521 (source
11522 (origin
11523 (method url-fetch)
11524 (uri (string-append
11525 "mirror://hackage/package/serialise/serialise-"
11526 version
11527 ".tar.gz"))
11528 (sha256
11529 (base32
11530 "19ary6ivzk8z7wcxhm860qmh7pwqj0qjqzav1h42y85l608zqgh4"))))
11531 (build-system haskell-build-system)
11532 (inputs
11533 `(("ghc-cborg" ,ghc-cborg)
11534 ("ghc-half" ,ghc-half)
11535 ("ghc-hashable" ,ghc-hashable)
11536 ("ghc-primitive" ,ghc-primitive)
11537 ("ghc-unordered-containers" ,ghc-unordered-containers)
11538 ("ghc-vector" ,ghc-vector)))
11539 (native-inputs
11540 `(("ghc-quickcheck" ,ghc-quickcheck)
11541 ("ghc-tasty" ,ghc-tasty)
11542 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
11543 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
11544 ("ghc-quickcheck-instances" ,ghc-quickcheck-instances)))
11545 (arguments
11546 `(#:cabal-revision
11547 ("1" "1rknhad1i8bpknsnphmcmb6dnb48c2p2c13ia2qqch3hkhsvfpr6")))
11548 (home-page "https://github.com/well-typed/cborg")
11549 (synopsis "Binary serialisation library for Haskell values")
11550 (description
11551 "This package (formerly binary-serialise-cbor) provides pure,
11552efficient serialization of Haskell values directly into ByteStrings for
11553storage or transmission purposes. By providing a set of type class instances,
11554you can also serialise any custom data type you have as well.
11555
11556The underlying binary format used is the 'Concise Binary Object
11557Representation', or CBOR, specified in RFC 7049. As a result, serialised
11558Haskell values have implicit structure outside of the Haskell program itself,
11559meaning they can be inspected or analyzed without custom tools.
11560
11561An implementation of the standard bijection between CBOR and JSON is
11562provided by the https://hackage.haskell.org/package/cborg-json
11563package. Also see https://hackage.haskell.org/package/cbor-tool for a
11564convenient command-line utility for working with CBOR data.")
11565 (license license:bsd-3)))
11566
dddbc90c
RV
11567(define-public ghc-setenv
11568 (package
11569 (name "ghc-setenv")
11570 (version "0.1.1.3")
11571 (source
11572 (origin
11573 (method url-fetch)
11574 (uri (string-append
11575 "https://hackage.haskell.org/package/setenv/setenv-"
11576 version
11577 ".tar.gz"))
11578 (sha256
11579 (base32
11580 "0cnbgrvb9byyahb37zlqrj05rj25v190crgcw8wmlgf0mwwxyn73"))))
11581 (build-system haskell-build-system)
11582 (home-page "https://hackage.haskell.org/package/setenv")
11583 (synopsis "Library for setting environment variables")
11584 (description "This package provides a Haskell library for setting
11585environment variables.")
11586 (license license:expat)))
11587
11588(define-public ghc-setlocale
11589 (package
11590 (name "ghc-setlocale")
9d7cfc9b 11591 (version "1.0.0.9")
dddbc90c
RV
11592 (source (origin
11593 (method url-fetch)
11594 (uri (string-append
11595 "https://hackage.haskell.org/package/setlocale-"
11596 version "/setlocale-" version ".tar.gz"))
11597 (sha256
11598 (base32
9d7cfc9b 11599 "18b6xafspzxrmz5m9r9nzy3z053crqi59xc8n8aqd4gw0pvqdcrv"))))
dddbc90c
RV
11600 (build-system haskell-build-system)
11601 (home-page "https://hackage.haskell.org/package/setlocale")
11602 (synopsis "Haskell bindings to setlocale")
11603 (description "This package provides Haskell bindings to the
11604@code{setlocale} C function.")
11605 (license license:bsd-3)))
11606
11607(define-public ghc-shakespeare
11608 (package
11609 (name "ghc-shakespeare")
f680955f 11610 (version "2.0.22")
dddbc90c
RV
11611 (source
11612 (origin
11613 (method url-fetch)
11614 (uri (string-append "https://hackage.haskell.org/package/"
11615 "shakespeare-" version "/"
11616 "shakespeare-" version ".tar.gz"))
11617 (sha256
11618 (base32
f680955f 11619 "1mc1a0vv070gcawwcx6vzpj6gpfh1qnlqrndiyfic3p500y656vh"))))
dddbc90c
RV
11620 (build-system haskell-build-system)
11621 (inputs `(("ghc-aeson" ,ghc-aeson)
11622 ("ghc-blaze-markup" ,ghc-blaze-markup)
11623 ("ghc-blaze-html" ,ghc-blaze-html)
11624 ("ghc-exceptions" ,ghc-exceptions)
11625 ("ghc-vector" ,ghc-vector)
11626 ("ghc-unordered-containers" ,ghc-unordered-containers)
11627 ("ghc-scientific" ,ghc-scientific)))
11628 (native-inputs `(("ghc-hspec" ,ghc-hspec)
11629 ("ghc-hunit" ,ghc-hunit)
11630 ("hspec-discover" ,hspec-discover)))
11631 (home-page "https://www.yesodweb.com/book/shakespearean-templates")
11632 (synopsis "Family of type-safe template languages for Haskell")
11633 (description "This Haskell package provides a family of type-safe
11634templates with simple variable interpolation. Shakespeare templates can
11635be used inline with a quasi-quoter or in an external file and it
11636interpolates variables according to the type being inserted.")
11637 (license license:expat)))
11638
11639(define-public ghc-shelly
11640 (package
11641 (name "ghc-shelly")
11642 (version "1.8.1")
11643 (source
11644 (origin
11645 (method url-fetch)
11646 (uri (string-append
11647 "https://hackage.haskell.org/package/shelly/shelly-"
11648 version ".tar.gz"))
11649 (sha256
11650 (base32
11651 "023fbvbqs5gdwm30j5517gbdcc7fvz0md70dgwgpypkskj3i926y"))))
11652 (build-system haskell-build-system)
11653 (inputs
11654 `(("ghc-unix-compat" ,ghc-unix-compat)
11655 ("ghc-system-filepath-bootstrap" ,ghc-system-filepath-bootstrap)
11656 ("ghc-system-fileio-bootstrap" ,ghc-system-fileio-bootstrap)
11657 ("ghc-monad-control" ,ghc-monad-control)
11658 ("ghc-lifted-base" ,ghc-lifted-base)
11659 ("ghc-lifted-async" ,ghc-lifted-async)
11660 ("ghc-exceptions" ,ghc-exceptions)
11661 ("ghc-enclosed-exceptions" ,ghc-enclosed-exceptions)
11662 ("ghc-async" ,ghc-async)
11663 ("ghc-transformers-base" ,ghc-transformers-base)
11664 ("ghc-hunit" ,ghc-hunit)
11665 ("ghc-hspec" ,ghc-hspec)
11666 ("ghc-hspec-contrib" ,ghc-hspec-contrib)))
11667 (home-page "https://github.com/yesodweb/Shelly.hs")
11668 (synopsis "Shell-like (systems) programming in Haskell")
11669 (description
11670 "Shelly provides convenient systems programming in Haskell, similar in
11671spirit to POSIX shells. Shelly is originally forked from the Shellish package.")
11672 (license license:bsd-3)))
11673
11674(define-public ghc-silently
11675 (package
11676 (name "ghc-silently")
544bb369 11677 (version "1.2.5.1")
dddbc90c
RV
11678 (source
11679 (origin
11680 (method url-fetch)
11681 (uri (string-append
11682 "https://hackage.haskell.org/package/silently/silently-"
11683 version
11684 ".tar.gz"))
11685 (sha256
11686 (base32
544bb369 11687 "1lgs1gsr5dp0x21diqn4l03fxgai2kgdmj85gqp0iz3zykvbmjbz"))))
dddbc90c
RV
11688 (build-system haskell-build-system)
11689 (arguments `(#:tests? #f)) ;; circular dependency with nanospec
11690 ;; (inputs
11691 ;; `(("ghc-temporary" ,ghc-temporary)))
11692 (home-page "https://github.com/hspec/silently")
11693 (synopsis "Prevent writing to stdout")
11694 (description "This package provides functions to prevent or capture
11695writing to stdout and other handles.")
11696 (license license:bsd-3)))
11697
11698(define-public ghc-simple-reflect
11699 (package
11700 (name "ghc-simple-reflect")
11701 (version "0.3.3")
11702 (source
11703 (origin
11704 (method url-fetch)
11705 (uri (string-append
11706 "https://hackage.haskell.org/package/simple-reflect/simple-reflect-"
11707 version
11708 ".tar.gz"))
11709 (sha256
11710 (base32
11711 "0ayvrx5cm8n6db21jiyjmk5h93pw7cz1707hih09hlhk9jh5x0h7"))))
11712 (build-system haskell-build-system)
11713 (home-page
11714 "https://twanvl.nl/blog/haskell/simple-reflection-of-expressions")
11715 (synopsis
11716 "Simple reflection of expressions containing variables")
11717 (description
11718 "This package allows simple reflection of expressions containing
11719variables. Reflection here means that a Haskell expression is turned into a
11720string. The primary aim of this package is teaching and understanding; there
11721are no options for manipulating the reflected expressions beyond showing
11722them.")
11723 (license license:bsd-3)))
11724
11725(define-public ghc-simple-sendfile
11726 (package
11727 (name "ghc-simple-sendfile")
08f54390 11728 (version "0.2.30")
dddbc90c
RV
11729 (source
11730 (origin
11731 (method url-fetch)
11732 (uri (string-append "https://hackage.haskell.org/package/"
11733 "simple-sendfile-" version "/"
11734 "simple-sendfile-" version ".tar.gz"))
11735 (sha256
11736 (base32
08f54390 11737 "112j0qfsjazf9wg1zywf7hjybgsiywk9wkm27yi8xzv27hmlv1mn"))))
dddbc90c
RV
11738 (build-system haskell-build-system)
11739 (inputs
11740 `(("ghc-conduit" ,ghc-conduit)
11741 ("ghc-conduit-extra" ,ghc-conduit-extra)
11742 ("ghc-network" ,ghc-network)
11743 ("ghc-resourcet" ,ghc-resourcet)))
11744 (native-inputs
11745 `(("ghc-hspec" ,ghc-hspec)
11746 ("hspec-discover" ,hspec-discover)))
11747 (home-page "https://github.com/kazu-yamamoto/simple-sendfile")
11748 (synopsis "Cross platform library for the sendfile system call")
11749 (description "This library tries to call minimum system calls which
11750are the bottleneck of web servers.")
11751 (license license:bsd-3)))
11752
06966c05
TS
11753(define-public ghc-size-based
11754 (package
11755 (name "ghc-size-based")
11756 (version "0.1.2.0")
11757 (source
11758 (origin
11759 (method url-fetch)
11760 (uri (string-append "https://hackage.haskell.org/package/"
11761 "size-based/size-based-" version ".tar.gz"))
11762 (sha256
11763 (base32
11764 "06hmlic0n73ncwlkpx49xlv09bzsrr27ncnp5byhzlknak2gd7vp"))))
11765 (build-system haskell-build-system)
11766 (inputs
11767 `(("ghc-dictionary-sharing" ,ghc-dictionary-sharing)
11768 ("ghc-testing-type-modifiers" ,ghc-testing-type-modifiers)
11769 ("ghc-semigroups" ,ghc-semigroups)))
11770 (arguments
11771 `(#:cabal-revision
11772 ("1" "0kax1ypjyglkn6iff1x4yz12y7f2n249m95xvdhrc63hsa4xlcqv")))
11773 (home-page "https://hackage.haskell.org/package/size-based")
11774 (synopsis "Sized functors for size-based enumerations")
11775 (description "This library provides a framework for size-based
11776enumerations.")
11777 (license license:bsd-3)))
11778
dddbc90c
RV
11779(define-public ghc-skylighting-core
11780 (package
11781 (name "ghc-skylighting-core")
1826c2a8 11782 (version "0.8.2.1")
dddbc90c
RV
11783 (source (origin
11784 (method url-fetch)
11785 (uri (string-append "https://hackage.haskell.org/package/"
11786 "skylighting-core/skylighting-core-"
11787 version ".tar.gz"))
11788 (sha256
11789 (base32
1826c2a8 11790 "0hdchivb4af9w7v5v7lrwfwawd3kcwmpzk69m1vkkm3pis8lcr1s"))))
dddbc90c
RV
11791 (build-system haskell-build-system)
11792 (inputs
11793 `(("ghc-aeson" ,ghc-aeson)
11794 ("ghc-ansi-terminal" ,ghc-ansi-terminal)
11795 ("ghc-attoparsec" ,ghc-attoparsec)
11796 ("ghc-base64-bytestring" ,ghc-base64-bytestring)
11797 ("ghc-blaze-html" ,ghc-blaze-html)
11798 ("ghc-case-insensitive" ,ghc-case-insensitive)
11799 ("ghc-colour" ,ghc-colour)
11800 ("ghc-hxt" ,ghc-hxt)
11801 ("ghc-regex-pcre-builtin" ,ghc-regex-pcre-builtin)
11802 ("ghc-safe" ,ghc-safe)
11803 ("ghc-utf8-string" ,ghc-utf8-string)))
11804 (native-inputs
11805 `(("ghc-diff" ,ghc-diff)
11806 ("ghc-hunit" ,ghc-hunit)
11807 ("ghc-pretty-show" ,ghc-pretty-show)
11808 ("ghc-quickcheck" ,ghc-quickcheck)
11809 ("ghc-tasty" ,ghc-tasty)
11810 ("ghc-tasty-golden" ,ghc-tasty-golden)
11811 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
11812 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
11813 (home-page "https://github.com/jgm/skylighting")
11814 (synopsis "Syntax highlighting library")
11815 (description "Skylighting is a syntax highlighting library with support
11816for over one hundred languages. It derives its tokenizers from XML syntax
11817definitions used by KDE's @code{KSyntaxHighlighting} framework, so any syntax
11818supported by that framework can be added. An optional command-line program is
11819provided. Skylighting is intended to be the successor to highlighting-kate.")
11820 (license license:gpl2)))
11821
11822(define-public ghc-skylighting
11823 (package
11824 (inherit ghc-skylighting-core)
11825 (name "ghc-skylighting")
36c940cf 11826 (version "0.8.2.1")
dddbc90c
RV
11827 (source (origin
11828 (method url-fetch)
11829 (uri (string-append "https://hackage.haskell.org/package/skylighting-"
11830 version "/skylighting-" version ".tar.gz"))
11831 (sha256
11832 (base32
36c940cf 11833 "1xls8ycad77m55ax4hp55k60h3pi5sm3m32hycbc8baixbgfx5xz"))))
dddbc90c
RV
11834 (inputs
11835 `(("ghc-skylighting-core" ,ghc-skylighting-core)
11836 ,@(package-inputs ghc-skylighting-core)))))
11837
11838(define-public ghc-smallcheck
11839 (package
11840 (name "ghc-smallcheck")
11841 (version "1.1.5")
11842 (source
11843 (origin
11844 (method url-fetch)
11845 (uri (string-append
11846 "https://hackage.haskell.org/package/smallcheck/smallcheck-"
11847 version
11848 ".tar.gz"))
11849 (sha256
11850 (base32
11851 "195fj7w3v03d1y1nm2ylavzrwxjcdbq0lb6zsw1dwyx5jmwfc84h"))))
11852 (build-system haskell-build-system)
11853 (inputs
11854 `(("ghc-logict" ,ghc-logict)))
11855 (home-page
11856 "https://github.com/feuerbach/smallcheck")
11857 (synopsis "Property-based testing library")
a84be333 11858 (description "SmallCheck is a testing library that verifies
dddbc90c
RV
11859properties for all test cases up to some depth. The test cases are generated
11860automatically by SmallCheck.")
11861 (license license:bsd-3)))
11862
11863(define-public ghc-socks
11864 (package
11865 (name "ghc-socks")
ab761e9d 11866 (version "0.6.1")
dddbc90c
RV
11867 (source (origin
11868 (method url-fetch)
11869 (uri (string-append "https://hackage.haskell.org/package/"
11870 "socks/socks-" version ".tar.gz"))
11871 (sha256
11872 (base32
ab761e9d 11873 "0wvaxy3dkv97wrncjv1rxrmjr4014hgxz82kixvcwqdhidalfi3k"))))
dddbc90c
RV
11874 (build-system haskell-build-system)
11875 (inputs
11876 `(("ghc-cereal" ,ghc-cereal)
ab761e9d 11877 ("ghc-basement" ,ghc-basement)
dddbc90c
RV
11878 ("ghc-network" ,ghc-network)))
11879 (home-page "https://github.com/vincenthz/hs-socks")
11880 (synopsis "SOCKS proxy (version 5) implementation")
11881 (description
11882 "This library provides a SOCKS proxy (version 5) implementation.")
11883 (license license:bsd-3)))
11884
081d85d6
TS
11885(define-public ghc-sop-core
11886 (package
11887 (name "ghc-sop-core")
11888 (version "0.4.0.0")
11889 (source
11890 (origin
11891 (method url-fetch)
11892 (uri (string-append "https://hackage.haskell.org/package/"
11893 "sop-core/sop-core-" version ".tar.gz"))
11894 (sha256
11895 (base32
11896 "07ci2mh8cbjvipb576rxsj3iyhkj5c5dnsns4xkdppp2p3pv10d3"))))
11897 (build-system haskell-build-system)
3ef91e15 11898 (home-page "https://hackage.haskell.org/package/sop-core")
081d85d6
TS
11899 (synopsis "True Sums of Products")
11900 (description "This package provides an implementation of
11901@math{n}-ary sums and @math{n}-ary products. The module @code{Data.SOP}
11902is the main module of this library and contains more detailed
11903documentation. The main use case of this package is to serve as the
11904core of @url{https://hackage.haskell.org/package/generics-sop,
11905generics-sop}.")
11906 (license license:bsd-3)))
11907
4c77a1a0
JS
11908(define-public ghc-special-values
11909 (package
11910 (name "ghc-special-values")
11911 (version "0.1.0.0")
11912 (source
11913 (origin
11914 (method url-fetch)
11915 (uri (string-append
11916 "https://hackage.haskell.org/package/special-values/"
11917 "special-values-" version ".tar.gz"))
11918 (sha256
11919 (base32
11920 "1kkdw2c4d2hha99v9f89ahmifjxp7fxmxyfwq9a8xk6s0h9xs51w"))))
11921 (build-system haskell-build-system)
11922 (inputs
11923 `(("ghc-scientific" ,ghc-scientific)
11924 ("ghc-ieee754" ,ghc-ieee754)
11925 ("ghc-nats" ,ghc-nats)))
11926 (home-page
11927 "https://github.com/minad/special-values#readme")
11928 (synopsis "Typeclass providing special values")
11929 (description
11930 "Special values are provided by a SpecialValues typeclass. Those can be
11931used for example by QuickCheck, see quickcheck-special." )
11932 (license license:expat)))
11933
dddbc90c
RV
11934(define-public ghc-split
11935 (package
11936 (name "ghc-split")
11937 (version "0.2.3.3")
534d6caa 11938 (outputs '("out" "static" "doc"))
dddbc90c
RV
11939 (source
11940 (origin
11941 (method url-fetch)
11942 (uri (string-append
11943 "https://hackage.haskell.org/package/split/split-"
11944 version
11945 ".tar.gz"))
11946 (sha256
11947 (base32
11948 "04qlmkcyklznl03gsjg95b4nzb6i96gdapqg60rny9szgi7ngk8x"))))
11949 (build-system haskell-build-system)
9bbc21a7
TS
11950 (arguments
11951 `(#:cabal-revision
11952 ("2" "1c8bcssxq5rkxkixgms6w6x6lzf4n7cxk6cx6av1dp3lixdy9j34")))
dddbc90c
RV
11953 (native-inputs
11954 `(("ghc-quickcheck" ,ghc-quickcheck)))
11955 (home-page "https://hackage.haskell.org/package/split")
11956 (synopsis "Combinator library for splitting lists")
11957 (description "This package provides a collection of Haskell functions for
11958splitting lists into parts, akin to the @code{split} function found in several
11959mainstream languages.")
11960 (license license:bsd-3)))
11961
7799d17f 11962(define-public ghc-splitmix
49367c92 11963 (package
7799d17f 11964 (name "ghc-splitmix")
49367c92
TS
11965 (version "0.0.3")
11966 (source
11967 (origin
11968 (method url-fetch)
11969 (uri (string-append "https://hackage.haskell.org/package/"
11970 "splitmix/splitmix-" version ".tar.gz"))
11971 (sha256
11972 (base32
11973 "1k0amgkz7rvyz3lnw7m786ilnr1cibwhx9sc4qynq329gxan5r7w"))))
49367c92 11974 (build-system haskell-build-system)
49367c92
TS
11975 (inputs
11976 `(("ghc-random" ,ghc-random)))
7799d17f
TS
11977 (native-inputs
11978 `(("ghc-hunit" ,ghc-hunit)
11979 ("ghc-async" ,ghc-async)
11980 ("ghc-base-compat-batteries" ,ghc-base-compat-batteries)
11981 ("ghc-tf-random" ,ghc-tf-random)
11982 ("ghc-vector" ,ghc-vector)))
92a79fee 11983 (home-page "https://hackage.haskell.org/package/splitmix")
49367c92
TS
11984 (synopsis "Fast and splittable pseudorandom number generator")
11985 (description "This package provides a Pure Haskell implementation of the
11986SplitMix pseudorandom number generator. SplitMix is a \"splittable\"
11987pseudorandom number generator that is quite fast: 9 64-bit
11988arithmetic/logical operations per 64 bits generated. SplitMix is tested
11989with two standard statistical test suites (DieHarder and TestU01, this
11990implementation only using the former) and it appears to be adequate for
11991\"everyday\" use, such as Monte Carlo algorithms and randomized data
11992structures where speed is important. In particular, it @strong{should not
11993be used for cryptographic or security applications}, because generated
11994sequences of pseudorandom values are too predictable (the mixing functions
11995are easily inverted, and two successive outputs suffice to reconstruct the
11996internal state).")
11997 (license license:bsd-3)))
11998
7799d17f
TS
11999(define-public ghc-splitmix-bootstrap
12000 (package
12001 (inherit ghc-splitmix)
12002 (name "ghc-splitmix-bootstrap")
12003 (arguments `(#:tests? #f))
12004 (native-inputs '())
12005 (properties '((hidden? #t)))))
12006
a152258b
JS
12007(define-public ghc-spoon
12008 (package
12009 (name "ghc-spoon")
12010 (version "0.3.1")
12011 (source
12012 (origin
12013 (method url-fetch)
12014 (uri (string-append
12015 "https://hackage.haskell.org/package/spoon/spoon-"
12016 version
12017 ".tar.gz"))
12018 (sha256
12019 (base32
12020 "1m41k0mfy6fpfrv2ym4m5jsjaj9xdfl2iqpppd3c4d0fffv51cxr"))))
12021 (build-system haskell-build-system)
12022 (arguments
12023 `(#:cabal-revision
12024 ("1"
12025 "09s5jjcsg4g4qxchq9g2l4i9d5zh3rixpkbiysqcgl69kj8mwv74")))
12026 (home-page
12027 "http://hackage.haskell.org/package/spoon")
12028 (synopsis
12029 "Catch errors thrown from pure computations")
12030 (description
12031 "Takes an error-throwing expression and puts it back in the Maybe it
12032belongs in.
12033
12034Note that this suffers from the
12035@url{https://ghc.haskell.org/trac/ghc/ticket/5902}. Buyer beware.")
12036 (license license:bsd-3)))
12037
dddbc90c
RV
12038(define-public ghc-statevar
12039 (package
12040 (name "ghc-statevar")
19419709 12041 (version "1.2")
dddbc90c
RV
12042 (source
12043 (origin
12044 (method url-fetch)
12045 (uri (string-append
12046 "https://hackage.haskell.org/package/StateVar/StateVar-"
12047 version
12048 ".tar.gz"))
12049 (sha256
12050 (base32
19419709 12051 "12sz6zkc9j5z3lwrjvljrkfxa5vhwnir5wsarigz2f6d3w13dh5g"))))
dddbc90c
RV
12052 (build-system haskell-build-system)
12053 (home-page "https://hackage.haskell.org/package/StateVar")
12054 (synopsis "State variables for Haskell")
12055 (description "This package provides state variables, which are references
12056in the @code{IO} monad, like @code{IORef}s or parts of the OpenGL state.")
12057 (license license:bsd-3)))
12058
12059(define-public ghc-statistics
12060 (package
12061 (name "ghc-statistics")
60e78e68 12062 (version "0.15.1.1")
dddbc90c
RV
12063 (source
12064 (origin
12065 (method url-fetch)
12066 (uri (string-append "https://hackage.haskell.org/package/"
12067 "statistics-" version "/"
12068 "statistics-" version ".tar.gz"))
12069 (sha256
12070 (base32
60e78e68 12071 "015rn74f1glii26j4b2fh1fc63xvxzrh2xckiancz48kc8jdzabj"))))
dddbc90c
RV
12072 (build-system haskell-build-system)
12073 (arguments
60e78e68 12074 '(;; Two tests fail: "Discrete CDF is OK" and "Quantile is CDF inverse".
dddbc90c
RV
12075 #:tests? #f))
12076 (inputs
12077 `(("ghc-aeson" ,ghc-aeson)
60e78e68 12078 ("ghc-async" ,ghc-async)
dddbc90c 12079 ("ghc-base-orphans" ,ghc-base-orphans)
60e78e68 12080 ("ghc-dense-linear-algebra" ,ghc-dense-linear-algebra)
dddbc90c
RV
12081 ("ghc-math-functions" ,ghc-math-functions)
12082 ("ghc-monad-par" ,ghc-monad-par)
12083 ("ghc-mwc-random" ,ghc-mwc-random)
12084 ("ghc-primitive" ,ghc-primitive)
12085 ("ghc-vector" ,ghc-vector)
12086 ("ghc-vector-algorithms" ,ghc-vector-algorithms)
12087 ("ghc-vector-th-unbox" ,ghc-vector-th-unbox)
12088 ("ghc-vector-binary-instances" ,ghc-vector-binary-instances)))
12089 (native-inputs
12090 `(("ghc-hunit" ,ghc-hunit)
12091 ("ghc-quickcheck" ,ghc-quickcheck)
12092 ("ghc-ieee754" ,ghc-ieee754)
12093 ("ghc-test-framework" ,ghc-test-framework)
12094 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
12095 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
12096 (home-page "https://github.com/bos/mwc-random")
12097 (synopsis "Haskell library of statistical types, data, and functions")
12098 (description "This library provides a number of common functions
12099and types useful in statistics. We focus on high performance, numerical
12100robustness, and use of good algorithms. Where possible, we provide references
12101to the statistical literature.
12102
12103The library's facilities can be divided into four broad categories:
12104
12105@itemize
12106@item Working with widely used discrete and continuous probability
12107distributions. (There are dozens of exotic distributions in use; we focus
12108on the most common.)
12109
12110@item Computing with sample data: quantile estimation, kernel density
12111estimation, histograms, bootstrap methods, significance testing,
12112and regression and autocorrelation analysis.
12113
12114@item Random variate generation under several different distributions.
12115
12116@item Common statistical tests for significant differences between samples.
12117@end itemize")
12118 (license license:bsd-2)))
12119
12120(define-public ghc-stm-chans
12121 (package
12122 (name "ghc-stm-chans")
12123 (version "3.0.0.4")
12124 (source
12125 (origin
12126 (method url-fetch)
12127 (uri (string-append "https://hackage.haskell.org/package/"
12128 "stm-chans-" version "/"
12129 "stm-chans-" version ".tar.gz"))
12130 (sha256
12131 (base32
12132 "0f27sp09yha43xk9q55sc185jyjs5h7gq2dhsyx6bm9kz9dzqi13"))))
12133 (build-system haskell-build-system)
12134 (home-page "https://hackage.haskell.org/package/stm-chans")
12135 (synopsis "Additional types of channels for ghc-stm")
12136 (description "This Haskell package offers a collection of channel types,
12137similar to @code{Control.Concurrent.STM.@{TChan,TQueue@}} but with additional
12138features.")
12139 (license license:bsd-3)))
12140
12141(define-public ghc-stm-conduit
12142 (package
12143 (name "ghc-stm-conduit")
cd518e95 12144 (version "4.0.1")
dddbc90c
RV
12145 (source
12146 (origin
12147 (method url-fetch)
12148 (uri (string-append "https://hackage.haskell.org/package/stm-conduit/"
12149 "stm-conduit-" version ".tar.gz"))
12150 (sha256
12151 (base32
cd518e95 12152 "0hhlxvpp7mah8dcvkknh6skx44jfk3092zz2w52zlr255bkmn3p8"))))
dddbc90c
RV
12153 (build-system haskell-build-system)
12154 (inputs
12155 `(("ghc-stm-chans" ,ghc-stm-chans)
12156 ("ghc-cereal" ,ghc-cereal)
12157 ("ghc-cereal-conduit" ,ghc-cereal-conduit)
12158 ("ghc-conduit" ,ghc-conduit)
12159 ("ghc-conduit-extra" ,ghc-conduit-extra)
12160 ("ghc-exceptions" ,ghc-exceptions)
12161 ("ghc-resourcet" ,ghc-resourcet)
12162 ("ghc-async" ,ghc-async)
12163 ("ghc-monad-loops" ,ghc-monad-loops)
12164 ("ghc-unliftio" ,ghc-unliftio)))
12165 (native-inputs
12166 `(("ghc-doctest" ,ghc-doctest)
12167 ("ghc-quickcheck" ,ghc-quickcheck)
12168 ("ghc-hunit" ,ghc-hunit)
12169 ("ghc-test-framework" ,ghc-test-framework)
12170 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
12171 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
12172 (home-page "https://github.com/cgaebel/stm-conduit")
12173 (synopsis "Introduces conduits to channels and promotes using conduits concurrently")
12174 (description
12175 "This package provides two simple conduit wrappers around STM channels: a
12176source and a sink.")
12177 (license license:bsd-3)))
12178
12179(define-public ghc-stmonadtrans
12180 (package
12181 (name "ghc-stmonadtrans")
12182 (version "0.4.3")
12183 (source
12184 (origin
12185 (method url-fetch)
12186 (uri (string-append "https://hackage.haskell.org/package/STMonadTrans"
12187 "/STMonadTrans-" version ".tar.gz"))
12188 (sha256
12189 (base32 "1nr26fnmi5fdjc6d00w13kjhmfyvb5b837d0006w4dj0yxndaksp"))))
12190 (build-system haskell-build-system)
12191 (home-page "https://hackage.haskell.org/package/STMonadTrans")
12192 (synopsis "Monad transformer version of the ST monad")
12193 (description
12194 "This package provides a monad transformer version of the @code{ST} monad
12195for strict state threads.")
12196 (license license:bsd-3)))
12197
12198(define-public ghc-storable-complex
12199 (package
12200 (name "ghc-storable-complex")
4a35e3c3 12201 (version "0.2.3.0")
dddbc90c
RV
12202 (source
12203 (origin
12204 (method url-fetch)
12205 (uri (string-append
12206 "https://hackage.haskell.org/package/storable-complex/storable-complex-"
12207 version ".tar.gz"))
12208 (sha256
4a35e3c3 12209 (base32 "0fnwbfmd5vsaaqvf9182qdcjrzcfjd1zhdyvjwzifbwvn6r9kx4s"))))
dddbc90c 12210 (build-system haskell-build-system)
4a35e3c3
TS
12211 (inputs
12212 `(("ghc-base-orphans" ,ghc-base-orphans)))
dddbc90c
RV
12213 (home-page "https://github.com/cartazio/storable-complex")
12214 (synopsis "Haskell Storable instance for Complex")
12215 (description "This package provides a Haskell library including a
12216Storable instance for Complex which is binary compatible with C99, C++
12217and Fortran complex data types.")
12218 (license license:bsd-3)))
12219
ad80074a
JS
12220(define-public ghc-storable-record
12221 (package
12222 (name "ghc-storable-record")
12223 (version "0.0.4")
12224 (source
12225 (origin
12226 (method url-fetch)
12227 (uri
12228 (string-append
12229 "https://hackage.haskell.org/package/storable-record/"
12230 "storable-record-" version ".tar.gz"))
12231 (sha256
12232 (base32
12233 "0hjs1km0fc9ch0i1rbycxia5w3939hk4p4md73ikgg4aipqb5zyf"))))
12234 (build-system haskell-build-system)
12235 (inputs
12236 `(("ghc-semigroups" ,ghc-semigroups)
12237 ("ghc-utility-ht" ,ghc-utility-ht)
12238 ("ghc-storablevector" ,ghc-storablevector)
12239 ("ghc-timeit" ,ghc-timeit)))
12240 (home-page "https://hackage.haskell.org/package/storable-record")
12241 (synopsis "Elegant definition of Storable instances for records")
12242 (description "With this package you can build a Storable instance of
12243a record type from Storable instances of its elements in an elegant way.
12244It does not do any magic, just a bit arithmetic to compute the right
12245offsets, that would be otherwise done manually or by a preprocessor like
12246C2HS. There is no guarantee that the generated memory layout is
12247compatible with that of a corresponding C struct. However, the module
12248generates the smallest layout that is possible with respect to the
12249alignment of the record elements.")
12250 (license license:bsd-3)))
12251
55f4c653
JS
12252(define-public ghc-storable-tuple
12253 (package
12254 (name "ghc-storable-tuple")
12255 (version "0.0.3.3")
12256 (source
12257 (origin
12258 (method url-fetch)
12259 (uri
12260 (string-append
12261 "https://hackage.haskell.org/package/storable-tuple/"
12262 "storable-tuple-" version ".tar.gz"))
12263 (sha256
12264 (base32
12265 "0dfzhxgkn1l6ls7zh6iifhyvhm8l47n40z0ar23c6ibsa94w1ynw"))))
12266 (build-system haskell-build-system)
12267 (inputs
12268 `(("ghc-storable-record" ,ghc-storable-record)
12269 ("ghc-utility-ht" ,ghc-utility-ht)
12270 ("ghc-base-orphans" ,ghc-base-orphans)))
12271 (home-page "https://hackage.haskell.org/package/storable-tuple")
12272 (synopsis "Storable instance for pairs and triples")
12273 (description "This package provides a Storable instance for pairs
12274and triples which should be binary compatible with C99 and C++. The
12275only purpose of this package is to provide a standard location for this
12276instance so that other packages needing this instance can play nicely
12277together.")
12278 (license license:bsd-3)))
12279
bc06ca45
JS
12280(define-public ghc-storablevector
12281 (package
12282 (name "ghc-storablevector")
12283 (version "0.2.13")
12284 (source
12285 (origin
12286 (method url-fetch)
12287 (uri
12288 (string-append
12289 "https://hackage.haskell.org/package/storablevector/storablevector-"
12290 version ".tar.gz"))
12291 (sha256
12292 (base32
12293 "1zmr738vwnhnyxbikayqnaz31ilv2qlmscp6iqgl7adcfbal4dzq"))))
12294 (build-system haskell-build-system)
12295 (inputs
12296 `(("ghc-non-negative" ,ghc-non-negative)
12297 ("ghc-utility-ht" ,ghc-utility-ht)
12298 ("ghc-semigroups" ,ghc-semigroups)
12299 ("ghc-unsafe" ,ghc-unsafe)
12300 ("ghc-quickcheck" ,ghc-quickcheck)
12301 ("ghc-syb" ,ghc-syb)))
228d2901 12302 (home-page "https://wiki.haskell.org/Storable_Vector")
bc06ca45
JS
12303 (synopsis "Fast, packed, strict storable arrays with a list interface")
12304 (description "This library provides fast, packed, strict storable
12305arrays with a list interface, a chunky lazy list interface with variable
12306chunk size and an interface for write access via the ST monad. This is
12307much like bytestring and binary but can be used for every
12308@code{Foreign.Storable.Storable} type. See also
12309@url{http://hackage.haskell.org/package/vector}, a library with a
12310similar intention.
12311
12312This library does not do advanced fusion optimization, since especially
12313for lazy vectors this would either be incorrect or not applicable. See
12314@url{http://hackage.haskell.org/package/storablevector-streamfusion} for
12315a library that provides fusion with lazy lists.")
12316 (license license:bsd-3)))
12317
dddbc90c
RV
12318(define-public ghc-streaming-commons
12319 (package
12320 (name "ghc-streaming-commons")
12321 (version "0.2.1.1")
12322 (source
12323 (origin
12324 (method url-fetch)
12325 (uri (string-append "https://hackage.haskell.org/package/"
12326 "streaming-commons/streaming-commons-"
12327 version ".tar.gz"))
12328 (sha256
12329 (base32
12330 "1lmyx3wkjsayhy5yilzvy0kf8qwmycwlk26r1d8f3cxbfhkr7s52"))))
12331 (build-system haskell-build-system)
12332 (inputs
12333 `(("ghc-async" ,ghc-async)
12334 ("ghc-blaze-builder" ,ghc-blaze-builder)
12335 ("ghc-network" ,ghc-network)
12336 ("ghc-random" ,ghc-random)
12337 ("ghc-zlib" ,ghc-zlib)))
12338 (native-inputs
12339 `(("ghc-quickcheck" ,ghc-quickcheck)
12340 ("ghc-hspec" ,ghc-hspec)
12341 ("hspec-discover" ,hspec-discover)))
12342 (home-page "https://hackage.haskell.org/package/streaming-commons")
12343 (synopsis "Conduit and pipes needed by some streaming data libraries")
12344 (description "This package provides low-dependency functionality commonly
12345needed by various Haskell streaming data libraries, such as @code{conduit} and
12346@code{pipe}s.")
12347 (license license:expat)))
12348
12349(define-public ghc-strict
12350 (package
12351 (name "ghc-strict")
12352 (version "0.3.2")
12353 (source
12354 (origin
12355 (method url-fetch)
12356 (uri (string-append "https://hackage.haskell.org/package/strict/strict-"
12357 version ".tar.gz"))
12358 (sha256
12359 (base32 "08cjajqz9h47fkq98mlf3rc8n5ghbmnmgn8pfsl3bdldjdkmmlrc"))))
12360 (build-system haskell-build-system)
12361 (home-page "https://hackage.haskell.org/package/strict")
12362 (synopsis "Strict data types and String IO")
12363 (description
12364 "This package provides strict versions of some standard Haskell data
12365types, such as pairs, @code{Maybe} and @code{Either}. It also contains strict
12366IO operations.")
12367 (license license:bsd-3)))
12368
12369(define-public ghc-stringbuilder
12370 (package
12371 (name "ghc-stringbuilder")
12372 (version "0.5.1")
12373 (source
12374 (origin
12375 (method url-fetch)
12376 (uri (string-append
12377 "https://hackage.haskell.org/package/stringbuilder/stringbuilder-"
12378 version
12379 ".tar.gz"))
12380 (sha256
12381 (base32
12382 "1fh3csx1wcssn8xyvl4ip4aprh9l4qyz2kk8mgjvqvc0vb2bsy6q"))))
12383 (build-system haskell-build-system)
12384 (arguments `(#:tests? #f)) ; FIXME: circular dependencies with tests
12385 ; enabled
12386 (home-page "https://hackage.haskell.org/package/stringbuilder")
12387 (synopsis "Writer monad for multi-line string literals")
12388 (description "This package provides a writer monad for multi-line string
12389literals.")
12390 (license license:expat)))
12391
12392(define-public ghc-string-qq
12393 (package
12394 (name "ghc-string-qq")
4d6fddc3 12395 (version "0.0.4")
dddbc90c
RV
12396 (source
12397 (origin
12398 (method url-fetch)
12399 (uri (string-append
12400 "https://hackage.haskell.org/package/string-qq/string-qq-"
12401 version
12402 ".tar.gz"))
12403 (sha256
12404 (base32
4d6fddc3 12405 "0wfxkw4x6j6jq9nd82k83g2k3hskpsvk1dp4cpkshvjr4wg9qny8"))))
dddbc90c 12406 (build-system haskell-build-system)
4d6fddc3
TS
12407 (native-inputs
12408 `(("ghc-hunit" ,ghc-hunit)))
3ef91e15 12409 (home-page "https://hackage.haskell.org/package/string-qq")
dddbc90c
RV
12410 (synopsis
12411 "QuasiQuoter for non-interpolated strings, texts and bytestrings.")
12412 (description
12413 "This package provides a quasiquoter for non-interpolated strings, texts
12414and bytestrings.")
12415 (license license:public-domain)))
12416
12417(define-public ghc-stringsearch
12418 (package
12419 (name "ghc-stringsearch")
12420 (version "0.3.6.6")
12421 (source
12422 (origin
12423 (method url-fetch)
12424 (uri (string-append
12425 "https://hackage.haskell.org/package/stringsearch/stringsearch-"
12426 version
12427 ".tar.gz"))
12428 (sha256
12429 (base32
12430 "0jpy9xjcjdbpi3wk6mg7xwd7wfi2mma70p97v1ij5i8bj9qijpr9"))))
12431 (build-system haskell-build-system)
e2303abb
TS
12432 (arguments
12433 `(#:cabal-revision
12434 ("1" "0z5pz5dccapz9k39r2zmf056m0x2m2lj3jahhnw3mfxlmps07378")))
dddbc90c
RV
12435 (home-page "https://bitbucket.org/dafis/stringsearch")
12436 (synopsis "Fast searching, splitting and replacing of ByteStrings")
12437 (description "This package provides several functions to quickly search
12438for substrings in strict or lazy @code{ByteStrings}. It also provides
12439functions for breaking or splitting on substrings and replacing all
12440occurrences of a substring (the first in case of overlaps) with another.")
12441 (license license:bsd-3)))
12442
dcf3f8f4
TS
12443(define-public ghc-svg-builder
12444 (package
12445 (name "ghc-svg-builder")
12446 (version "0.1.1")
12447 (source
12448 (origin
12449 (method url-fetch)
12450 (uri (string-append "https://hackage.haskell.org/package/"
12451 "svg-builder/svg-builder-" version ".tar.gz"))
12452 (sha256
12453 (base32
12454 "1k420f497lzkymmxin88ql6ib8dziic43avykv31yq65rgrf7l2g"))))
12455 (build-system haskell-build-system)
12456 (inputs
12457 `(("ghc-blaze-builder" ,ghc-blaze-builder)
12458 ("ghc-hashable" ,ghc-hashable)
12459 ("ghc-unordered-containers" ,ghc-unordered-containers)))
12460 (arguments
12461 `(#:cabal-revision
12462 ("1" "1bhp9gvid2iis411k1vvyj5krzc4ahxcqcd9cwx9h37jxg180xw1")))
12463 (home-page "https://github.com/diagrams/svg-builder.git")
12464 (synopsis "Domain-specific language for building Scalable Vector Graphics")
12465 (description "Easy-to-write domain-specific language (DSL) for
12466building Scalable Vector Graphics (SVG).")
12467 (license license:bsd-3)))
12468
dddbc90c
RV
12469(define-public ghc-syb
12470 (package
12471 (name "ghc-syb")
07d65eef 12472 (version "0.7.1")
534d6caa 12473 (outputs '("out" "static" "doc"))
dddbc90c
RV
12474 (source
12475 (origin
12476 (method url-fetch)
12477 (uri (string-append
12478 "https://hackage.haskell.org/package/syb/syb-"
12479 version
12480 ".tar.gz"))
12481 (sha256
12482 (base32
07d65eef 12483 "0077vxzyi9ppbphi2ialac3p376k49qly1kskdgf57wdwix9qjp0"))))
dddbc90c
RV
12484 (build-system haskell-build-system)
12485 (inputs
12486 `(("ghc-hunit" ,ghc-hunit)))
12487 (home-page
12488 "http://www.cs.uu.nl/wiki/GenericProgramming/SYB")
12489 (synopsis "Scrap Your Boilerplate")
12490 (description "This package contains the generics system described in the
12491/Scrap Your Boilerplate/ papers (see
12492@uref{http://www.cs.uu.nl/wiki/GenericProgramming/SYB, the website}). It
12493defines the @code{Data} class of types permitting folding and unfolding of
12494constructor applications, instances of this class for primitive types, and a
12495variety of traversals.")
12496 (license license:bsd-3)))
12497
12498(define-public ghc-system-fileio
12499 (package
12500 (name "ghc-system-fileio")
dcfb99d4 12501 (version "0.3.16.4")
dddbc90c
RV
12502 (source
12503 (origin
12504 (method url-fetch)
12505 (uri (string-append
12506 "https://hackage.haskell.org/package/system-fileio/system-fileio-"
12507 version ".tar.gz"))
12508 (sha256
12509 (base32
dcfb99d4 12510 "1iy6g1f35gzyj12g9mdiw4zf75mmxpv1l8cyaldgyscsl648pr9l"))))
dddbc90c 12511 (build-system haskell-build-system)
dcfb99d4
TS
12512 (arguments
12513 `(#:phases
12514 (modify-phases %standard-phases
12515 (add-before 'configure 'update-constraints
12516 (lambda _
12517 (substitute* "system-fileio.cabal"
12518 (("chell >= 0\\.4 && < 0\\.5") "chell >= 0.4"))
12519 #t)))))
dddbc90c
RV
12520 (inputs
12521 `(("ghc-system-filepath" ,ghc-system-filepath)
12522 ("ghc-chell" ,ghc-chell)
12523 ("ghc-temporary" ,ghc-temporary)))
12524 (home-page "https://github.com/fpco/haskell-filesystem")
12525 (synopsis "Consistent file system interaction across GHC versions")
12526 (description
12527 "This is a small wrapper around the directory, unix, and Win32 packages,
12528for use with system-filepath. It provides a consistent API to the various
12529versions of these packages distributed with different versions of GHC.
12530In particular, this library supports working with POSIX files that have paths
12531which can't be decoded in the current locale encoding.")
12532 (license license:expat)))
12533
12534;; See ghc-system-filepath-bootstrap. In addition this package depends on
12535;; ghc-system-filepath.
12536(define ghc-system-fileio-bootstrap
12537 (package
12538 (name "ghc-system-fileio-bootstrap")
12539 (version "0.3.16.3")
12540 (source
12541 (origin
12542 (method url-fetch)
12543 (uri (string-append
12544 "https://hackage.haskell.org/package/system-fileio/system-fileio-"
12545 version ".tar.gz"))
12546 (sha256
12547 (base32
12548 "1484hcl27s2qcby8ws5djj11q9bz68bspcifz9h5gii2ndy70x9i"))))
12549 (build-system haskell-build-system)
12550 (arguments
12551 `(#:tests? #f))
12552 (inputs
12553 `(("ghc-system-filepath-bootstrap" ,ghc-system-filepath-bootstrap)
12554 ("ghc-temporary" ,ghc-temporary)))
12555 (home-page "https://github.com/fpco/haskell-filesystem")
12556 (synopsis "Consistent file system interaction across GHC versions")
12557 (description
12558 "This is a small wrapper around the directory, unix, and Win32 packages,
12559for use with system-filepath. It provides a consistent API to the various
12560versions of these packages distributed with different versions of GHC.
12561In particular, this library supports working with POSIX files that have paths
12562which can't be decoded in the current locale encoding.")
12563 (license license:expat)))
12564
12565
12566(define-public ghc-system-filepath
12567 (package
12568 (name "ghc-system-filepath")
12569 (version "0.4.14")
12570 (source
12571 (origin
12572 (method url-fetch)
12573 (uri (string-append
12574 "https://hackage.haskell.org/package/system-filepath/system-filepath-"
12575 version ".tar.gz"))
12576 (sha256
12577 (base32
12578 "14yras4pz2dh55xpwmazcgxijvi8913pjgzb9iw50mjq1lycwmhn"))))
12579 (build-system haskell-build-system)
12580 ;; FIXME: One of the tests fails:
12581 ;; [ FAIL ] tests.validity.posix
12582 ;; note: seed=7310214548328823169
12583 ;; *** Failed! Falsifiable (after 24 tests):
12584 ;; 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"
12585 (arguments `(#:tests? #f))
12586 (inputs
12587 `(("ghc-chell" ,ghc-chell)
12588 ("ghc-chell-quickcheck" ,ghc-chell-quickcheck)
12589 ("ghc-quickcheck" ,ghc-quickcheck)))
12590 (home-page "https://github.com/fpco/haskell-filesystem")
12591 (synopsis "High-level, byte-based file and directory path manipulations")
12592 (description
12593 "Provides a FilePath datatype and utility functions for operating on it.
12594Unlike the filepath package, this package does not simply reuse String,
12595increasing type safety.")
12596 (license license:expat)))
12597
12598;; Ghc-shelly depends on ghc-system-filepath and ghc-system-fileio, who in turn depend on
12599;; ghc-chell and ghc-chell-quickcheck for the test phase. Ghc-chell depends on ghc-options
12600;; which depends on ghc-chell and ghc-chell-quickcheck.
12601;; Therefore we bootstrap it with tests disabled.
12602(define ghc-system-filepath-bootstrap
12603 (package
12604 (name "ghc-system-filepath-bootstrap")
12605 (version "0.4.14")
12606 (source
12607 (origin
12608 (method url-fetch)
12609 (uri (string-append
12610 "https://hackage.haskell.org/package/system-filepath/system-filepath-"
12611 version ".tar.gz"))
12612 (sha256
12613 (base32
12614 "14yras4pz2dh55xpwmazcgxijvi8913pjgzb9iw50mjq1lycwmhn"))))
12615 (build-system haskell-build-system)
12616 (arguments
12617 `(#:tests? #f))
12618 (inputs
12619 `(("ghc-quickcheck" ,ghc-quickcheck)))
12620 (home-page "https://github.com/fpco/haskell-filesystem")
12621 (synopsis "High-level, byte-based file and directory path manipulations")
12622 (description
12623 "Provides a FilePath datatype and utility functions for operating on it.
12624Unlike the filepath package, this package does not simply reuse String,
12625increasing type safety.")
12626 (license license:expat)))
12627
12628
12629(define-public ghc-tagged
12630 (package
12631 (name "ghc-tagged")
f0f3756a 12632 (version "0.8.6")
dddbc90c
RV
12633 (source
12634 (origin
12635 (method url-fetch)
12636 (uri (string-append
12637 "https://hackage.haskell.org/package/tagged/tagged-"
12638 version
12639 ".tar.gz"))
12640 (sha256
12641 (base32
f0f3756a 12642 "1pciqzxf9ncv954v4r527xkxkn7r5hcr13mfw5dg1xjci3qdw5md"))))
dddbc90c
RV
12643 (build-system haskell-build-system)
12644 (arguments
12645 `(#:cabal-revision
f0f3756a 12646 ("1" "070xwfw7y81hd63il76dmwbdl9ca1rd07c54zynfx6vpr4wyx4vh")))
dddbc90c
RV
12647 (inputs
12648 `(("ghc-transformers-compat" ,ghc-transformers-compat)))
12649 (home-page "https://hackage.haskell.org/package/tagged")
12650 (synopsis "Haskell phantom types to avoid passing dummy arguments")
12651 (description "This library provides phantom types for Haskell 98, to avoid
12652having to unsafely pass dummy arguments.")
12653 (license license:bsd-3)))
12654
12655(define-public ghc-tar
12656 (package
12657 (name "ghc-tar")
ec83929f 12658 (version "0.5.1.1")
dddbc90c
RV
12659 (source
12660 (origin
12661 (method url-fetch)
12662 (uri (string-append
12663 "https://hackage.haskell.org/package/tar/tar-"
12664 version ".tar.gz"))
12665 (sha256
12666 (base32
ec83929f 12667 "1ppim7cgmn7ng8zbdrwkxhhizc30h15h1c9cdlzamc5jcagl915k"))))
dddbc90c
RV
12668 (build-system haskell-build-system)
12669 ;; FIXME: 2/24 tests fail.
12670 (arguments `(#:tests? #f))
12671 (inputs
12672 `(("ghc-bytestring-handle" ,ghc-bytestring-handle)
12673 ("ghc-quickcheck" ,ghc-quickcheck)
12674 ("ghc-tasty" ,ghc-tasty)
12675 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
12676 (home-page "https://hackage.haskell.org/package/tar")
12677 (synopsis "Reading, writing and manipulating \".tar\" archive files")
12678 (description
12679 "This library is for working with \\\"@.tar@\\\" archive files.
12680It can read and write a range of common variations of the tar archive format
12681including V7, POSIX USTAR and GNU formats. It provides support for packing and
12682unpacking portable archives. This makes it suitable for distribution but not
12683backup because details like file ownership and exact permissions are not
12684preserved. It also provides features for random access to archive content using
12685an index.")
12686 (license license:bsd-3)))
12687
f8d17902
TS
12688(define-public ghc-tar-conduit
12689 (package
12690 (name "ghc-tar-conduit")
12691 (version "0.3.2")
12692 (source
12693 (origin
12694 (method url-fetch)
12695 (uri (string-append "https://hackage.haskell.org/package/"
12696 "tar-conduit/tar-conduit-" version ".tar.gz"))
12697 (sha256
12698 (base32
12699 "0bgn3hyf20g1gfnzy8f41s7nj54kfcyjk2izw99svrw8f3dphi80"))))
12700 (build-system haskell-build-system)
12701 (inputs
12702 `(("ghc-conduit" ,ghc-conduit)
12703 ("ghc-conduit-combinators" ,ghc-conduit-combinators)
12704 ("ghc-safe-exceptions" ,ghc-safe-exceptions)))
12705 (native-inputs
12706 `(("ghc-quickcheck" ,ghc-quickcheck)
12707 ("ghc-conduit-extra" ,ghc-conduit-extra)
12708 ("ghc-hspec" ,ghc-hspec)
12709 ("ghc-hspec" ,ghc-hspec)
12710 ("ghc-weigh" ,ghc-weigh)))
12711 (home-page "https://github.com/snoyberg/tar-conduit#readme")
12712 (synopsis "Extract and create tar files using conduit for streaming")
12713 (description "This library provides a conduit-based, streaming
12714interface for extracting and creating tar files.")
12715 (license license:expat)))
12716
dddbc90c
RV
12717(define-public ghc-temporary
12718 (package
12719 (name "ghc-temporary")
12720 (version "1.3")
12721 (source
12722 (origin
12723 (method url-fetch)
12724 (uri (string-append
12725 "https://hackage.haskell.org/package/temporary/temporary-"
12726 version
12727 ".tar.gz"))
12728 (sha256
12729 (base32
12730 "144qhwfwg37l3k313raf4ssiz16jbgwlm1nf4flgqpsbd69jji4c"))))
12731 (build-system haskell-build-system)
12732 (inputs
12733 `(("ghc-exceptions" ,ghc-exceptions)
12734 ("ghc-random" ,ghc-random)))
12735 (native-inputs
12736 `(("ghc-base-compat" ,ghc-base-compat)
12737 ("ghc-tasty" ,ghc-tasty)
12738 ("ghc-tasty-hunit" ,ghc-tasty-hunit)))
12739 (home-page "https://www.github.com/batterseapower/temporary")
12740 (synopsis "Temporary file and directory support")
12741 (description "The functions for creating temporary files and directories
12742in the Haskelll base library are quite limited. This library just repackages
12743the Cabal implementations of its own temporary file and folder functions so
12744that you can use them without linking against Cabal or depending on it being
12745installed.")
12746 (license license:bsd-3)))
12747
12748(define-public ghc-temporary-rc
12749 (package
12750 (name "ghc-temporary-rc")
12751 (version "1.2.0.3")
12752 (source
12753 (origin
12754 (method url-fetch)
12755 (uri (string-append
12756 "https://hackage.haskell.org/package/temporary-rc/temporary-rc-"
12757 version
12758 ".tar.gz"))
12759 (sha256
12760 (base32
12761 "1nqih0qks439k3pr5kmbbc8rjdw730slrxlflqb27fbxbzb8skqs"))))
12762 (build-system haskell-build-system)
12763 (inputs `(("ghc-exceptions" ,ghc-exceptions)))
12764 (home-page
12765 "https://www.github.com/feuerbach/temporary")
12766 (synopsis
12767 "Portable temporary file and directory support")
12768 (description
12769 "The functions for creating temporary files and directories in the base
12770library are quite limited. The unixutils package contains some good ones, but
12771they aren't portable to Windows. This library just repackages the Cabal
12772implementations of its own temporary file and folder functions so that you can
12773use them without linking against Cabal or depending on it being installed.
12774This is a better maintained fork of the \"temporary\" package.")
12775 (license license:bsd-3)))
12776
12777(define-public ghc-terminal-size
12778 (package
12779 (name "ghc-terminal-size")
12780 (version "0.3.2.1")
12781 (source (origin
12782 (method url-fetch)
12783 (uri (string-append
12784 "https://hackage.haskell.org/package/terminal-size/"
12785 "terminal-size-" version ".tar.gz"))
12786 (sha256
12787 (base32
12788 "0n4nvj3dbj9gxfnprgish45asn9z4dipv9j98s8i7g2n8yb3xhmm"))))
12789 (build-system haskell-build-system)
12790 (home-page "https://hackage.haskell.org/package/terminal-size")
12791 (synopsis "Get terminal window height and width")
12792 (description "Get terminal window height and width without ncurses
12793dependency.")
12794 (license license:bsd-3)))
12795
12796(define-public ghc-texmath
12797 (package
12798 (name "ghc-texmath")
7fec7e66 12799 (version "0.11.3")
dddbc90c
RV
12800 (source (origin
12801 (method url-fetch)
12802 (uri (string-append "https://hackage.haskell.org/package/"
12803 "texmath/texmath-" version ".tar.gz"))
12804 (sha256
12805 (base32
7fec7e66 12806 "03rpxbp43bjs62mmw4hv4785n6f6nbf8kj2y9mma5nzk6i2xs09f"))))
dddbc90c
RV
12807 (build-system haskell-build-system)
12808 (inputs
12809 `(("ghc-syb" ,ghc-syb)
12810 ("ghc-network-uri" ,ghc-network-uri)
12811 ("ghc-split" ,ghc-split)
12812 ("ghc-temporary" ,ghc-temporary)
12813 ("ghc-utf8-string" ,ghc-utf8-string)
12814 ("ghc-xml" ,ghc-xml)
12815 ("ghc-pandoc-types" ,ghc-pandoc-types)))
12816 (home-page "https://github.com/jgm/texmath")
12817 (synopsis "Conversion between formats used to represent mathematics")
12818 (description
12819 "The texmath library provides functions to read and write TeX math,
12820presentation MathML, and OMML (Office Math Markup Language, used in Microsoft
12821Office). Support is also included for converting math formats to pandoc's
12822native format (allowing conversion, via pandoc, to a variety of different
12823markup formats). The TeX reader supports basic LaTeX and AMS extensions, and
12824it can parse and apply LaTeX macros.")
12825 (license license:gpl2+)))
12826
12827(define-public ghc-text-binary
12828 (package
12829 (name "ghc-text-binary")
12830 (version "0.2.1.1")
12831 (source
12832 (origin
12833 (method url-fetch)
12834 (uri (string-append "https://hackage.haskell.org/package/"
12835 "text-binary/text-binary-"
12836 version ".tar.gz"))
12837 (sha256
12838 (base32
12839 "18gl10pwg3qwsk0za3c70j4n6a9129wwf1b7d3a461h816yv55xn"))))
12840 (build-system haskell-build-system)
12841 (home-page "https://github.com/kawu/text-binary")
12842 (synopsis "Binary instances for text types")
12843 (description
12844 "This package provides a compatibility layer providing @code{Binary}
12845instances for strict and lazy text types for versions older than 1.2.1 of the
12846text package.")
12847 (license license:bsd-2)))
12848
714e5605
JS
12849(define-public ghc-text-manipulate
12850 (package
12851 (name "ghc-text-manipulate")
12852 (version "0.2.0.1")
12853 (source
12854 (origin
12855 (method url-fetch)
12856 (uri (string-append
12857 "https://hackage.haskell.org/package/text-manipulate"
12858 "/text-manipulate-"
12859 version
12860 ".tar.gz"))
12861 (sha256
12862 (base32
12863 "0bwxyjj3ll45srxhsp2ihikgqglvjc6m02ixr8xpvyqwkcfwgsg0"))))
12864 (build-system haskell-build-system)
12865 (native-inputs
12866 `(("ghc-tasty" ,ghc-tasty)
12867 ("ghc-tasty-hunit" ,ghc-tasty-hunit)))
12868 (home-page
12869 "https://github.com/brendanhay/text-manipulate")
12870 (synopsis
12871 "Case conversion, word boundary manipulation, and textual subjugation")
12872 (description
12873 "Manipulate identifiers and structurally non-complex pieces of text by
12874delimiting word boundaries via a combination of whitespace,
12875control-characters, and case-sensitivity.
12876
12877Has support for common idioms like casing of programmatic variable names,
12878taking, dropping, and splitting by word, and modifying the first character of
12879a piece of text.
12880
12881Caution: this library makes heavy use of the text library's internal loop
12882optimisation framework. Since internal modules are not guaranteed to have a
12883stable API there is potential for build breakage when the text dependency is
12884upgraded. Consider yourself warned!")
12885 (license license:mpl2.0)))
12886
bdc877c4
TS
12887(define-public ghc-text-metrics
12888 (package
12889 (name "ghc-text-metrics")
12890 (version "0.3.0")
12891 (source
12892 (origin
12893 (method url-fetch)
12894 (uri (string-append "https://hackage.haskell.org/package/"
12895 "text-metrics/text-metrics-" version ".tar.gz"))
12896 (sha256
12897 (base32
12898 "18mzxwkdvjp31r720ai9bnxr638qq8x3a2v408bz0d8f0rsayx1q"))))
12899 (build-system haskell-build-system)
12900 (inputs
12901 `(("ghc-vector" ,ghc-vector)))
12902 (native-inputs
12903 `(("ghc-quickcheck" ,ghc-quickcheck)
12904 ("ghc-hspec" ,ghc-hspec)))
12905 (arguments
12906 `(#:cabal-revision
12907 ("4" "017drxq9x56b345d8w5m8xdsi1zzs0z16pbdx8j35cd1lsnh3kf1")))
12908 (home-page "https://github.com/mrkkrp/text-metrics")
12909 (synopsis "Calculate various string metrics efficiently")
12910 (description "This library provides tools to calculate various
12911string metrics efficiently.")
12912 (license license:bsd-3)))
12913
dddbc90c
RV
12914(define-public ghc-tf-random
12915 (package
12916 (name "ghc-tf-random")
12917 (version "0.5")
534d6caa 12918 (outputs '("out" "static" "doc"))
dddbc90c
RV
12919 (source
12920 (origin
12921 (method url-fetch)
12922 (uri (string-append
12923 "https://hackage.haskell.org/package/tf-random/tf-random-"
12924 version
12925 ".tar.gz"))
12926 (sha256
12927 (base32 "0445r2nns6009fmq0xbfpyv7jpzwv0snccjdg7hwj4xk4z0cwc1f"))))
12928 (build-system haskell-build-system)
12929 (inputs
12930 `(("ghc-primitive" ,ghc-primitive)
12931 ("ghc-random" ,ghc-random)))
12932 (home-page "https://hackage.haskell.org/package/tf-random")
12933 (synopsis "High-quality splittable pseudorandom number generator")
12934 (description "This package contains an implementation of a high-quality
12935splittable pseudorandom number generator. The generator is based on a
12936cryptographic hash function built on top of the ThreeFish block cipher. See
12937the paper \"Splittable Pseudorandom Number Generators Using Cryptographic
12938Hashing\" by Claessen, Pałka for details and the rationale of the design.")
12939 (license license:bsd-3)))
12940
12941(define-public ghc-th-abstraction
12942 (package
12943 (name "ghc-th-abstraction")
1188eabb 12944 (version "0.3.1.0")
dddbc90c
RV
12945 (source
12946 (origin
12947 (method url-fetch)
12948 (uri (string-append "https://hackage.haskell.org/package/"
12949 "th-abstraction/th-abstraction-"
12950 version ".tar.gz"))
12951 (sha256
12952 (base32
1188eabb 12953 "1f81w0gshvc816cf9qz0f19jsrzh6wpzmmy317xrgn63dv61p7jb"))))
dddbc90c
RV
12954 (build-system haskell-build-system)
12955 (home-page "https://github.com/glguy/th-abstraction")
12956 (synopsis "Nicer interface for reified information about data types")
12957 (description
12958 "This package normalizes variations in the interface for inspecting
12959datatype information via Template Haskell so that packages and support a
12960single, easier to use informational datatype while supporting many versions of
12961Template Haskell.")
12962 (license license:isc)))
12963
12964(define-public ghc-th-expand-syns
12965 (package
12966 (name "ghc-th-expand-syns")
8c766600 12967 (version "0.4.5.0")
dddbc90c
RV
12968 (source (origin
12969 (method url-fetch)
12970 (uri (string-append "https://hackage.haskell.org/package/"
12971 "th-expand-syns/th-expand-syns-"
12972 version ".tar.gz"))
12973 (sha256
12974 (base32
8c766600 12975 "1p4wfyycan8zsp9wi7npx36qwbfsbcgdyxi3ii51scf69dkrx42y"))))
dddbc90c
RV
12976 (build-system haskell-build-system)
12977 (inputs
12978 `(("ghc-syb" ,ghc-syb)))
12979 (home-page "https://hackage.haskell.org/package/th-expand-syns")
12980 (synopsis "Expands type synonyms in Template Haskell ASTs")
12981 (description
12982 "This package enables users to expand type synonyms in Template Haskell
12983@dfn{abstract syntax trees} (ASTs).")
12984 (license license:bsd-3)))
12985
12986(define-public ghc-th-lift
12987 (package
12988 (name "ghc-th-lift")
bd76b20a 12989 (version "0.8.0.1")
dddbc90c
RV
12990 (source (origin
12991 (method url-fetch)
12992 (uri (string-append "https://hackage.haskell.org/package/"
12993 "th-lift/th-lift-" version ".tar.gz"))
12994 (sha256
12995 (base32
bd76b20a 12996 "1a6qlbdg15cfr5rvl9g3blgwx4v1p0xic0pzv13zx165xbc36ld0"))))
dddbc90c
RV
12997 (build-system haskell-build-system)
12998 (inputs
12999 `(("ghc-th-abstraction" ,ghc-th-abstraction)))
13000 (home-page "https://github.com/mboes/th-lift")
13001 (synopsis "Derive Template Haskell's Lift class for datatypes")
13002 (description
13003 "This is a Haskell library to derive Template Haskell's Lift class for
13004datatypes.")
13005 (license license:bsd-3)))
13006
13007(define-public ghc-th-lift-instances
13008 (package
13009 (name "ghc-th-lift-instances")
d3db399e 13010 (version "0.1.14")
dddbc90c
RV
13011 (source
13012 (origin
13013 (method url-fetch)
13014 (uri (string-append "https://hackage.haskell.org/package/"
13015 "th-lift-instances/th-lift-instances-"
13016 version ".tar.gz"))
13017 (sha256
13018 (base32
d3db399e 13019 "0r1b4jnvcj64wp4hfccwkl4a70n1p1q7qzyx6ax7cmd8k961jz78"))))
dddbc90c
RV
13020 (build-system haskell-build-system)
13021 (inputs
13022 `(("ghc-th-lift" ,ghc-th-lift)
13023 ("ghc-vector" ,ghc-vector)
13024 ("ghc-quickcheck" ,ghc-quickcheck)))
13025 (home-page "https://github.com/bennofs/th-lift-instances/")
13026 (synopsis "Lift instances for template-haskell for common data types.")
13027 (description "Most data types in the Haskell platform do not have Lift
13028instances. This package provides orphan instances for @code{containers},
13029@code{text}, @code{bytestring} and @code{vector}.")
13030 (license license:bsd-3)))
13031
13032(define-public ghc-th-orphans
13033 (package
13034 (name "ghc-th-orphans")
882b23e2 13035 (version "0.13.9")
dddbc90c
RV
13036 (source (origin
13037 (method url-fetch)
13038 (uri (string-append "https://hackage.haskell.org/package/"
13039 "th-orphans/th-orphans-" version ".tar.gz"))
13040 (sha256
13041 (base32
882b23e2 13042 "1xj1gssv77hdx1r3ndg8k49v3ipj3a6r7crkyvx13jrps3m6ng1z"))))
dddbc90c
RV
13043 (build-system haskell-build-system)
13044 (inputs
13045 `(("ghc-th-lift" ,ghc-th-lift)
13046 ("ghc-th-lift-instances" ,ghc-th-lift-instances)
13047 ("ghc-th-reify-many" ,ghc-th-reify-many)
13048 ("ghc-generic-deriving" ,ghc-generic-deriving)))
13049 (native-inputs
13050 `(("ghc-hspec" ,ghc-hspec)))
13051 (home-page "https://hackage.haskell.org/package/th-orphans")
13052 (synopsis "Orphan instances for TH datatypes")
13053 (description
13054 "This package provides orphan instances for Template Haskell datatypes. In particular,
13055instances for @code{Ord} and @code{Lift}, as well as a few missing @code{Show}
13056and @code{Eq} instances. These instances used to live in the haskell-src-meta
13057package, and that's where the version number started.")
13058 (license license:bsd-3)))
13059
20c440ea
JS
13060(define-public ghc-these
13061 (package
13062 (name "ghc-these")
13063 (version "1.0.1")
13064 (source
13065 (origin
13066 (method url-fetch)
13067 (uri (string-append
13068 "https://hackage.haskell.org/package/these/these-"
13069 version
13070 ".tar.gz"))
13071 (sha256
13072 (base32
13073 "1k0pi65g7cm9hzdw6my6bzz2zvddkmj1qs45ymqmi316bpiixk3r"))))
13074 (build-system haskell-build-system)
13075 (inputs
13076 `(("ghc-base-compat" ,ghc-base-compat)
13077 ("ghc-hashable" ,ghc-hashable)
13078 ("ghc-aeson" ,ghc-aeson)
13079 ("ghc-unordered-containers" ,ghc-unordered-containers)
13080 ("ghc-assoc" ,ghc-assoc)
13081 ("ghc-semigroupoids" ,ghc-semigroupoids)
13082 ("ghc-quickcheck" ,ghc-quickcheck)))
13083 (arguments
13084 `(#:cabal-revision
13085 ("1"
13086 "0923r86fnmgpx0msm68aszirh2n19nn5bccgjxfh2146jw4z7w3z")))
13087 (home-page
13088 "https://github.com/isomorphism/these")
13089 (synopsis "Either-or-both data type")
13090 (description
13091 "This package provides a data type @code{These a b} which can
13092hold a value of either type or values of each type. This is usually
13093thought of as an \"inclusive or\" type (contrasting @code{Either a b} as
13094\"exclusive or\") or as an \"outer join\" type (contrasting @code{(a, b)}
13095as \"inner join\").
13096
13097@code{data These a b = This a | That b | These a b}
13098
13099Since version 1, this package was split into parts:
13100
13101@itemize
13102@item
13103https://hackage.haskell.org/package/semialign For @code{Align} and
13104@code{Zip} type-classes.
13105@item
13106https://hackage.haskell.org/package/semialign-indexed For
13107@code{SemialignWithIndex} class, providing @code{ialignWith} and
13108@code{izipWith}
13109@item
13110https://hackage.haskell.org/package/these-lens For lens combinators.
13111@item
13112http://hackage.haskell.org/package/monad-chronicle For transformers
13113variant of @code{These}.
13114@end itemize")
13115 (license license:bsd-3)))
13116
dddbc90c
RV
13117(define-public ghc-threads
13118 (package
13119 (name "ghc-threads")
13120 (version "0.5.1.6")
13121 (source
13122 (origin
13123 (method url-fetch)
13124 (uri (string-append "https://hackage.haskell.org/package/"
13125 "threads/threads-" version ".tar.gz"))
13126 (sha256
13127 (base32
13128 "0bjnjhnq3km6xqk0fn1fgyz5xdw4h6lylbwwbcmkkfzwcz0c76hk"))))
13129 (build-system haskell-build-system)
13130 (native-inputs
13131 `(("ghc-concurrent-extra" ,ghc-concurrent-extra)
13132 ("ghc-hunit" ,ghc-hunit)
13133 ("ghc-test-framework" ,ghc-test-framework)
13134 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)))
13135 (home-page "https://github.com/basvandijk/threads")
13136 (synopsis "Fork threads and wait for their result")
13137 (description "This package provides functions to fork threads and
13138wait for their result, whether it's an exception or a normal value.
13139Besides waiting for the termination of a single thread this package also
13140provides functions to wait for a group of threads to terminate. This
bbf8bf31
RV
13141package is similar to the @code{threadmanager}, @code{async} and
13142@code{spawn} packages. The advantages of this package are:
13143
dddbc90c
RV
13144@itemize
13145@item Simpler API.
13146@item More efficient in both space and time.
13147@item No space-leak when forking a large number of threads.
13148@item Correct handling of asynchronous exceptions.
13149@item GHC specific functionality like @code{forkOn} and
13150@code{forkIOWithUnmask}.
13151@end itemize")
13152 (license license:bsd-3)))
13153
13154(define-public ghc-th-reify-many
13155 (package
13156 (name "ghc-th-reify-many")
32d4a6ae 13157 (version "0.1.9")
dddbc90c
RV
13158 (source (origin
13159 (method url-fetch)
13160 (uri (string-append "https://hackage.haskell.org/package/"
13161 "th-reify-many/th-reify-many-"
13162 version ".tar.gz"))
13163 (sha256
13164 (base32
32d4a6ae 13165 "0hxf56filzqnyrc8q7766vai80y6cgrrbrczx6n93caskl1dv2gq"))))
dddbc90c
RV
13166 (build-system haskell-build-system)
13167 (inputs
13168 `(("ghc-safe" ,ghc-safe)
13169 ("ghc-th-expand-syns" ,ghc-th-expand-syns)))
13170 (home-page "https://github.com/mgsloan/th-reify-many")
13171 (synopsis "Recurseively reify template haskell datatype info")
13172 (description
13173 "th-reify-many provides functions for recursively reifying top level
13174declarations. The main intended use case is for enumerating the names of
13175datatypes reachable from an initial datatype, and passing these names to some
13176function which generates instances.")
13177 (license license:bsd-3)))
13178
75cfc9a2
TS
13179(define-public ghc-time-compat
13180 (package
13181 (name "ghc-time-compat")
13182 (version "1.9.2.2")
13183 (source
13184 (origin
13185 (method url-fetch)
13186 (uri (string-append "https://hackage.haskell.org/package/"
13187 "time-compat/time-compat-" version ".tar.gz"))
13188 (sha256
13189 (base32
13190 "05va0rqs759vbridbcl6hksp967j9anjvys8vx72fnfkhlrn2s52"))))
13191 (build-system haskell-build-system)
13192 (inputs
13193 `(("ghc-base-orphans" ,ghc-base-orphans)))
13194 (native-inputs
13195 `(("ghc-hunit" ,ghc-hunit)
13196 ("ghc-base-compat" ,ghc-base-compat)
13197 ("ghc-quickcheck" ,ghc-quickcheck)
13198 ("ghc-tagged" ,ghc-tagged)
13199 ("ghc-tasty" ,ghc-tasty)
13200 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
13201 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
13202 (arguments
13203 `(#:cabal-revision
13204 ("1" "0k8ph4sydaiqp8dav4if6hpiaq8h1xsr93khmdr7a1mmfwdxr64r")))
13205 (home-page "https://github.com/phadej/time-compat")
13206 (synopsis "Compatibility package for time")
a8d73e69 13207 (description "This package tries to compat as many @code{time}
75cfc9a2
TS
13208features as possible.")
13209 (license license:bsd-3)))
13210
dddbc90c
RV
13211(define-public ghc-time-locale-compat
13212 (package
13213 (name "ghc-time-locale-compat")
13214 (version "0.1.1.5")
13215 (source
13216 (origin
13217 (method url-fetch)
13218 (uri (string-append "https://hackage.haskell.org/package/"
13219 "time-locale-compat/time-locale-compat-"
13220 version ".tar.gz"))
13221 (sha256
13222 (base32
13223 "0b2hmj8wwrfkndwzgm11qr496ca2ahwdxcj3m0ii91bxvrk1bzq7"))))
13224 (build-system haskell-build-system)
13225 (inputs `(("ghc-old-locale" ,ghc-old-locale)))
13226 (home-page "https://github.com/khibino/haskell-time-locale-compat")
13227 (synopsis "Compatibility of TimeLocale between old-locale and time-1.5")
13228 (description "This package contains a wrapped name module for
13229@code{TimeLocale}.")
13230 (license license:bsd-3)))
13231
c022a4d4
TS
13232(define-public ghc-time-manager
13233 (package
13234 (name "ghc-time-manager")
13235 (version "0.0.0")
13236 (source
13237 (origin
13238 (method url-fetch)
13239 (uri (string-append "https://hackage.haskell.org/package/"
13240 "time-manager/time-manager-" version ".tar.gz"))
13241 (sha256
13242 (base32
13243 "1nzwj0fxz370ks6vr1sylcidx33rnqq45y3q9yv9n4dj43nid9lh"))))
13244 (build-system haskell-build-system)
13245 (inputs
13246 `(("ghc-auto-update" ,ghc-auto-update)))
13247 (home-page "https://github.com/yesodweb/wai")
13248 (synopsis "Scalable timer")
13249 (description "This library contains scalable timer functions provided by a
13250timer manager.")
13251 (license license:expat)))
13252
7bbfa392
JS
13253(define-public ghc-timeit
13254 (package
13255 (name "ghc-timeit")
13256 (version "2.0")
13257 (source
13258 (origin
13259 (method url-fetch)
13260 (uri
13261 (string-append
13262 "https://hackage.haskell.org/package/timeit/timeit-"
13263 version ".tar.gz"))
13264 (sha256
13265 (base32
13266 "1sliqpvl501rlcj6s0lhmsf5ym24j4h881wzc1f1wdyvg3jz8kd1"))))
13267 (build-system haskell-build-system)
13268 (home-page "https://github.com/merijn/timeit")
13269 (synopsis "Time monadic computations with an IO base")
13270 (description "This package provides a simple wrapper to show the
13271used CPU time of monadic computation with an IO base.")
13272 (license license:bsd-3)))
13273
2ed8bd2d
JS
13274(define-public ghc-timezone-series
13275 (package
13276 (name "ghc-timezone-series")
13277 (version "0.1.9")
13278 (source
13279 (origin
13280 (method url-fetch)
13281 (uri
13282 (string-append
13283 "mirror://hackage/package/timezone-series/timezone-series-"
13284 version ".tar.gz"))
13285 (sha256
13286 (base32
13287 "1blwgnyzqn917rgqkl4dncv9whv3xmk0lav040qq0214vksmvlz5"))))
13288 (build-system haskell-build-system)
13289 (home-page "https://archives.haskell.org/projects.haskell.org/time-ng/")
13290 (synopsis "Enhanced timezone handling for Time")
13291 (description
13292 "This package endows @code{Data.Time}, from the time package, with several
13293data types and functions for enhanced processing of timezones. For one way to
13294create timezone series, see the ghc-timezone-olson package.")
13295 (license license:bsd-3)))
13296
ff0f5786
JS
13297(define-public ghc-timezone-olson
13298 (package
13299 (name "ghc-timezone-olson")
13300 (version "0.1.9")
13301 (source
13302 (origin
13303 (method url-fetch)
13304 (uri
13305 (string-append
13306 "mirror://hackage/package/timezone-olson/timezone-olson-"
13307 version ".tar.gz"))
13308 (sha256
13309 (base32
13310 "05abywx1nrcaz0nqzfy4zw62bc5qd7pdfnjvv4drxkwv084ha8rj"))))
13311 (build-system haskell-build-system)
13312 (inputs
13313 `(("ghc-timezone-series" ,ghc-timezone-series)
13314 ("ghc-extensible-exceptions" ,ghc-extensible-exceptions)))
13315 (home-page "https://archives.haskell.org/projects.haskell.org/time-ng/")
13316 (synopsis "Parser and renderer for binary Olson timezone files")
13317 (description
13318 "A parser and renderer for binary Olson timezone files whose format
13319is specified by the tzfile(5) man page on Unix-like systems. For more
13320information about this format, see
13321@url{http://www.iana.org/time-zones/repository/tz-link.html}. Functions
13322are provided for converting the parsed data into @code{TimeZoneSeries}
13323objects from the timezone-series package.")
13324 (license license:bsd-3)))
13325
dddbc90c
RV
13326(define-public ghc-tldr
13327 (package
13328 (name "ghc-tldr")
871ceb31 13329 (version "0.4.0.2")
dddbc90c
RV
13330 (source
13331 (origin
13332 (method url-fetch)
13333 (uri (string-append
13334 "https://hackage.haskell.org/package/tldr/tldr-"
13335 version
13336 ".tar.gz"))
13337 (sha256
13338 (base32
871ceb31 13339 "1zy9yyg7bxiyz1prkvrscggsb9p0f8y0nqxxxzlgzvnh2nmqf8f2"))))
dddbc90c
RV
13340 (build-system haskell-build-system)
13341 (inputs
13342 `(("ghc-cmark" ,ghc-cmark)
13343 ("ghc-optparse-applicative" ,ghc-optparse-applicative)
13344 ("ghc-typed-process" ,ghc-typed-process)
13345 ("ghc-semigroups" ,ghc-semigroups)))
13346 (native-inputs
13347 `(("ghc-tasty" ,ghc-tasty)
13348 ("ghc-tasty-golden" ,ghc-tasty-golden)))
13349 (home-page "https://github.com/psibi/tldr-hs#readme")
13350 (synopsis "Haskell tldr client")
13351 (description "This package provides the @command{tldr} command and a
13352Haskell client library allowing users to update and view @code{tldr} pages
13353from a shell. The @code{tldr} pages are a community effort to simplify the
13354man pages with practical examples.")
13355 (license license:bsd-3)))
13356
460e4e42
JS
13357(define-public ghc-transformers
13358 (package
13359 (name "ghc-transformers")
13360 (version "0.5.6.2")
13361 (source
13362 (origin
13363 (method url-fetch)
13364 (uri (string-append
13365 "mirror://hackage/package/transformers/transformers-"
13366 version
13367 ".tar.gz"))
13368 (sha256
13369 (base32
13370 "0v66j5k0xqk51pmca55wq192qyw2p43s2mgxlz4f95q2c1fpjs5n"))))
13371 (build-system haskell-build-system)
13372 (home-page
13373 "http://hackage.haskell.org/package/transformers")
13374 (synopsis "Concrete functor and monad transformers")
13375 (description
13376 "Transformers provides functor and monad transformers, inspired by the
13377paper \"Functional Programming with Overloading and Higher-Order
13378Polymorphism\", by Mark P Jones, in Advanced School of Functional Programming,
133791995 @url{http://web.cecs.pdx.edu/~mpj/pubs/springschool.html}.
13380
13381This package contains:
13382@itemize
13383@item the monad transformer class (in @code{Control.Monad.Trans.Class})
13384@item concrete functor and monad transformers, each with associated operations
13385and functions to lift operations associated with other transformers.
13386@end itemize
13387
13388This package can be used on its own in portable Haskell code, in which case
13389operations need to be manually lifted through transformer stacks (see
13390@code{Control.Monad.Trans.Class} for some examples). Alternatively, it can be
13391used with the non-portable monad classes in the mtl or monads-tf packages,
13392which automatically lift operations introduced by monad transformers through
13393other transformers.")
13394 (license license:bsd-3)))
13395
dddbc90c
RV
13396(define-public ghc-transformers-base
13397 (package
13398 (name "ghc-transformers-base")
13399 (version "0.4.5.2")
13400 (source
13401 (origin
13402 (method url-fetch)
13403 (uri (string-append
13404 "https://hackage.haskell.org/package/transformers-base/transformers-base-"
13405 version
13406 ".tar.gz"))
13407 (sha256
13408 (base32
13409 "1s256bi0yh0x2hp2gwd30f3mg1cv53zz397dv1yhfsnfzmihrj6h"))))
13410 (build-system haskell-build-system)
13411 (inputs
13412 `(("ghc-transformers-compat" ,ghc-transformers-compat)))
13413 (home-page
13414 "https://hackage.haskell.org/package/transformers-compat")
13415 (synopsis
13416 "Backported transformer library")
13417 (description
13418 "Backported versions of types that were added to transformers in
13419transformers 0.3 and 0.4 for users who need strict transformers 0.2 or 0.3
13420compatibility to run on old versions of the platform.")
13421 (license license:bsd-3)))
13422
13423(define-public ghc-transformers-compat
13424 (package
13425 (name "ghc-transformers-compat")
1c9c4d58 13426 (version "0.6.5")
dddbc90c
RV
13427 (source
13428 (origin
13429 (method url-fetch)
13430 (uri (string-append
13431 "https://hackage.haskell.org/package/transformers-compat"
13432 "/transformers-compat-" version ".tar.gz"))
13433 (sha256
13434 (base32
1c9c4d58 13435 "02v2fjbvcrlpvhcsssap8dy8y9pp95jykrlc5arm39sxa48wyrys"))))
dddbc90c
RV
13436 (build-system haskell-build-system)
13437 (home-page "https://github.com/ekmett/transformers-compat/")
13438 (synopsis "Small compatibility shim between transformers 0.3 and 0.4")
13439 (description "This package includes backported versions of types that were
13440added to transformers in transformers 0.3 and 0.4 for users who need strict
13441transformers 0.2 or 0.3 compatibility to run on old versions of the platform,
13442but also need those types.")
13443 (license license:bsd-3)))
13444
13445(define-public ghc-tree-diff
13446 (package
13447 (name "ghc-tree-diff")
b4e26067 13448 (version "0.1")
dddbc90c
RV
13449 (source
13450 (origin
13451 (method url-fetch)
13452 (uri (string-append
13453 "https://hackage.haskell.org/package/tree-diff/tree-diff-"
13454 version
13455 ".tar.gz"))
13456 (sha256
13457 (base32
b4e26067 13458 "1156nbqn0pn9lp4zjsy4vv5g5wmy4zxwmbqdgvq349rydynh3ng3"))))
dddbc90c 13459 (build-system haskell-build-system)
dddbc90c
RV
13460 (inputs
13461 `(("ghc-aeson" ,ghc-aeson)
13462 ("ghc-ansi-wl-pprint" ,ghc-ansi-wl-pprint)
13463 ("ghc-ansi-terminal" ,ghc-ansi-terminal)
13464 ("ghc-base-compat" ,ghc-base-compat)
b4e26067 13465 ("ghc-bytestring-builder" ,ghc-bytestring-builder)
dddbc90c 13466 ("ghc-hashable" ,ghc-hashable)
dddbc90c
RV
13467 ("ghc-parsers" ,ghc-parsers)
13468 ("ghc-quickcheck" ,ghc-quickcheck)
13469 ("ghc-scientific" ,ghc-scientific)
13470 ("ghc-tagged" ,ghc-tagged)
13471 ("ghc-unordered-containers" ,ghc-unordered-containers)
13472 ("ghc-uuid-types" ,ghc-uuid-types)
13473 ("ghc-vector" ,ghc-vector)))
13474 (native-inputs
13475 `(("ghc-base-compat" ,ghc-base-compat)
13476 ("ghc-quickcheck" ,ghc-quickcheck)
13477 ("ghc-ansi-terminal" ,ghc-ansi-terminal)
13478 ("ghc-ansi-wl-pprint" ,ghc-ansi-wl-pprint)
13479 ("ghc-trifecta" ,ghc-trifecta)
13480 ("ghc-tasty" ,ghc-tasty)
13481 ("ghc-tasty-golden" ,ghc-tasty-golden)
13482 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
13483 (home-page "https://github.com/phadej/tree-diff")
13484 (synopsis "Compute difference between (expression) trees")
13485 (description "This Haskell library provides a function for computing
13486the difference between (expression) trees. It also provides a way to
13487compute the difference between arbitrary abstract datatypes (ADTs) using
13488@code{Generics}-derivable helpers.")
13489 (license license:bsd-3)))
13490
13491(define-public ghc-trifecta
13492 (package
13493 (name "ghc-trifecta")
13494 (version "2")
13495 (source (origin
13496 (method url-fetch)
13497 (uri (string-append
13498 "https://hackage.haskell.org/package/trifecta/"
13499 "trifecta-" version ".tar.gz"))
13500 (sha256
13501 (base32
13502 "0hznd8i65s81xy13i2qc7cvipw3lfb2yhkv53apbdsh6sbljz5sk"))))
13503 (build-system haskell-build-system)
5ffe8cfd
TS
13504 (arguments
13505 `(#:tests? #f ; doctest suite fails to build on i686
13506 #:cabal-revision
13507 ("4" "0xbwyvwl6f2zylk60f2akwgq03qv49113xil7b1z1s3vlwbn5aj1")))
dddbc90c
RV
13508 (inputs
13509 `(("ghc-reducers" ,ghc-reducers)
13510 ("ghc-semigroups" ,ghc-semigroups)
13511 ("ghc-ansi-wl-pprint" ,ghc-ansi-wl-pprint)
13512 ("ghc-ansi-terminal" ,ghc-ansi-terminal)
13513 ("ghc-blaze-builder" ,ghc-blaze-builder)
13514 ("ghc-blaze-html" ,ghc-blaze-html)
13515 ("ghc-blaze-markup" ,ghc-blaze-markup)
13516 ("ghc-charset" ,ghc-charset)
13517 ("ghc-comonad" ,ghc-comonad)
13518 ("ghc-fingertree" ,ghc-fingertree)
13519 ("ghc-hashable" ,ghc-hashable)
13520 ("ghc-lens" ,ghc-lens)
13521 ("ghc-parsers" ,ghc-parsers)
13522 ("ghc-profunctors" ,ghc-profunctors)
13523 ("ghc-unordered-containers" ,ghc-unordered-containers)
13524 ("ghc-utf8-string" ,ghc-utf8-string)))
13525 (native-inputs
13526 `(("cabal-doctest" ,cabal-doctest)
13527 ("ghc-doctest" ,ghc-doctest)
13528 ("ghc-quickcheck" ,ghc-quickcheck)))
13529 (home-page "https://github.com/ekmett/trifecta/")
13530 (synopsis "Parser combinator library with convenient diagnostics")
13531 (description "Trifecta is a modern parser combinator library for Haskell,
13532with slicing and Clang-style colored diagnostics.")
13533 (license license:bsd-3)))
13534
13535(define-public ghc-tuple-th
13536 (package
13537 (name "ghc-tuple-th")
13538 (version "0.2.5")
13539 (source
13540 (origin
13541 (method url-fetch)
13542 (uri (string-append "https://hackage.haskell.org/package/"
13543 "tuple-th-" version "/"
13544 "tuple-th-" version ".tar.gz"))
13545 (sha256
13546 (base32
13547 "1mrl4vvxmby7sf1paf7hklzidnr6wq55822i73smqyz0xpf3gsjn"))))
13548 (build-system haskell-build-system)
13549 (home-page "https://github.com/DanielSchuessler/tuple-th")
13550 (synopsis "Generate utility functions for tuples of statically known size
13551for Haskell")
13552 (description "This Haskell package contains Template Haskell functions for
13553generating functions similar to those in @code{Data.List} for tuples of
13554statically known size.")
13555 (license license:bsd-3)))
13556
9f776fe2
JS
13557(define-public ghc-turtle
13558 (package
13559 (name "ghc-turtle")
13560 (version "1.5.15")
13561 (source
13562 (origin
13563 (method url-fetch)
13564 (uri (string-append
13565 "mirror://hackage/package/turtle/turtle-"
13566 version
13567 ".tar.gz"))
13568 (sha256
13569 (base32
13570 "0yckgsc2a4g5x867gni80ldp226bsnhncfbil4ql6v2zwm4r8p7f"))))
13571 (build-system haskell-build-system)
13572 (inputs
13573 `(("ghc-ansi-wl-pprint" ,ghc-ansi-wl-pprint)
13574 ("ghc-async" ,ghc-async)
13575 ("ghc-clock" ,ghc-clock)
13576 ("ghc-exceptions" ,ghc-exceptions)
13577 ("ghc-foldl" ,ghc-foldl)
13578 ("ghc-hostname" ,ghc-hostname)
13579 ("ghc-managed" ,ghc-managed)
13580 ("ghc-semigroups" ,ghc-semigroups)
13581 ("ghc-system-filepath" ,ghc-system-filepath)
13582 ("ghc-system-fileio" ,ghc-system-fileio)
13583 ("ghc-streaming-commons" ,ghc-streaming-commons)
13584 ("ghc-temporary" ,ghc-temporary)
13585 ("ghc-optparse-applicative" ,ghc-optparse-applicative)
13586 ("ghc-optional-args" ,ghc-optional-args)
13587 ("ghc-unix-compat" ,ghc-unix-compat)))
13588 (native-inputs
13589 `(("ghc-doctest" ,ghc-doctest)
13590 ("ghc-fail" ,ghc-fail)))
13591 (arguments
13592 `(#:cabal-revision
13593 ("1" "02q1rv7zx31xz9wnmcqwd4w3iw7623p07iyi21zr0cqlignic5pg")))
13594 (home-page
13595 "http://hackage.haskell.org/package/turtle")
13596 (synopsis "Shell programming, Haskell-style")
13597 (description
13598 "Turtle is a reimplementation of the Unix command line environment in
13599Haskell so that you can use Haskell as both a shell and a scripting
13600language. Features include:
13601
13602@itemize
13603@item Batteries included: Command an extended suite of predefined utilities.
13604@item Interoperability: You can still run external shell commands.
13605@item Portability: Works on Windows, OS X, and Linux.
13606@item Exception safety: Safely acquire and release resources.
13607@item Streaming: Transform or fold command output in constant space.
13608@item Patterns: Use typed regular expressions that can parse structured values.
13609@item Formatting: Type-safe printf-style text formatting.
13610@item Modern: Supports text and system-filepath.
13611@end itemize
13612
13613Read \"Turtle.Tutorial\" for a detailed tutorial or \"Turtle.Prelude\" for a
13614quick-start guide. Turtle is designed to be beginner-friendly, but as a
13615result lacks certain features, like tracing commands. If you feel comfortable
13616using turtle then you should also check out the Shelly library which provides
13617similar functionality.")
13618 (license license:bsd-3)))
13619
dddbc90c
RV
13620(define-public ghc-typed-process
13621 (package
13622 (name "ghc-typed-process")
72fb84a5 13623 (version "0.2.6.0")
dddbc90c
RV
13624 (source
13625 (origin
13626 (method url-fetch)
13627 (uri (string-append "https://hackage.haskell.org/package/"
13628 "typed-process/typed-process-"
13629 version ".tar.gz"))
13630 (sha256
13631 (base32
72fb84a5 13632 "1cf2pfym8zdxvvy7xv72ixj7wy3rjrdss6f57k1ysgs66cgsi8ii"))))
dddbc90c
RV
13633 (build-system haskell-build-system)
13634 (inputs
72fb84a5
TS
13635 `(("ghc-async" ,ghc-async)
13636 ("ghc-unliftio-core" ,ghc-unliftio-core)))
dddbc90c
RV
13637 (native-inputs
13638 `(("ghc-base64-bytestring" ,ghc-base64-bytestring)
13639 ("ghc-hspec" ,ghc-hspec)
13640 ("hspec-discover" ,hspec-discover)
13641 ("ghc-temporary" ,ghc-temporary)))
13642 (home-page "https://haskell-lang.org/library/typed-process")
13643 (synopsis "Run external processes with strong typing of streams")
13644 (description
13645 "This library provides the ability to launch and interact with external
13646processes. It wraps around the @code{process} library, and intends to improve
13647upon it.")
13648 (license license:expat)))
13649
d392f803
AG
13650(define-public ghc-unagi-chan
13651 (package
13652 (name "ghc-unagi-chan")
13653 (version "0.4.1.2")
13654 (source
13655 (origin
13656 (method url-fetch)
13657 (uri (string-append "https://hackage.haskell.org/package/unagi-chan"
13658 "/unagi-chan-" version ".tar.gz"))
13659 (sha256
13660 (base32
13661 "1lnl5n4jnjmm4chp461glcwkrrw63rjz3fvprwxcy3lkpbkrqvgn"))))
13662 (build-system haskell-build-system)
13663 (inputs
13664 `(("ghc-atomic-primops" ,ghc-atomic-primops)
13665 ("ghc-primitive" ,ghc-primitive)))
13666 (arguments
13667 `(#:tests? #f ; FIXME: Tests expect primitive 0.7
13668 #:cabal-revision
13669 ("1"
13670 "09pqi867wskwgc5lpn197f895mbn1174ydgllvcppcsmrz2b6yr6")))
3ef91e15 13671 (home-page "https://hackage.haskell.org/package/unagi-chan")
d392f803
AG
13672 (synopsis "Fast concurrent queues with a Chan-like API, and more")
13673 (description
13674 "This library provides implementations of concurrent FIFO queues (for
13675both general boxed and primitive unboxed values) that are fast, perform well
13676under contention, and offer a Chan-like interface. The library may be of
13677limited usefulness outside of x86 architectures where the fetch-and-add
13678instruction is not available.")
13679 (license license:bsd-3)))
13680
dddbc90c
RV
13681(define-public ghc-unbounded-delays
13682 (package
13683 (name "ghc-unbounded-delays")
13684 (version "0.1.1.0")
13685 (source
13686 (origin
13687 (method url-fetch)
13688 (uri (string-append
13689 "https://hackage.haskell.org/package/unbounded-delays/unbounded-delays-"
13690 version
13691 ".tar.gz"))
13692 (sha256
13693 (base32
13694 "1ir9fghbrc214c97bwafk5ck6cacxz1pdnq4i18p604d1b8zg9wa"))))
13695 (build-system haskell-build-system)
13696 (home-page "https://github.com/basvandijk/unbounded-delays")
13697 (synopsis "Unbounded thread delays and timeouts")
13698 (description "The @code{threadDelay} and @code{timeout} functions from the
13699Haskell base library use the bounded @code{Int} type for specifying the delay
13700or timeout period. This package provides alternative functions which use the
13701unbounded @code{Integer} type.")
13702 (license license:bsd-3)))
13703
13704(define-public ghc-unexceptionalio
13705 (package
13706 (name "ghc-unexceptionalio")
13707 (version "0.4.0")
13708 (source
13709 (origin
13710 (method url-fetch)
13711 (uri (string-append "https://hackage.haskell.org/package/"
13712 "unexceptionalio-" version "/" "unexceptionalio-"
13713 version ".tar.gz"))
13714 (sha256 (base32 "09gynk472l7nn5l2w320n4dwigwp0wh0shfp6dyw6r5h2jdxz18p"))))
13715 (build-system haskell-build-system)
13716 (home-page "https://github.com/singpolyma/unexceptionalio")
13717 (synopsis "IO without any non-error, synchronous exceptions")
13718 (description "When you've caught all the exceptions that can be
13719handled safely, this is what you're left with.")
13720 (license license:isc)))
13721
b69d4aa7
TS
13722(define-public ghc-unicode-transforms
13723 (package
13724 (name "ghc-unicode-transforms")
13725 (version "0.3.6")
13726 (source
13727 (origin
13728 (method url-fetch)
13729 (uri (string-append "https://hackage.haskell.org/package/"
13730 "unicode-transforms/unicode-transforms-"
13731 version ".tar.gz"))
13732 (sha256
13733 (base32
13734 "1akscvyssif4hki3g6hy0jmjyr8cqly1whzvzj0km2b3qh0x09l3"))))
13735 (build-system haskell-build-system)
13736 (inputs
13737 `(("ghc-bitarray" ,ghc-bitarray)))
13738 (native-inputs
13739 `(("ghc-quickcheck" ,ghc-quickcheck)
13740 ("ghc-getopt-generics" ,ghc-getopt-generics)
13741 ("ghc-split" ,ghc-split)))
13742 (home-page "https://github.com/composewell/unicode-transforms")
13743 (synopsis "Unicode normalization")
13744 (description "This library provides tools for fast Unicode 12.1.0
13745normalization in Haskell (normalization forms C, KC, D, and KD).")
13746 (license license:bsd-3)))
13747
dddbc90c
RV
13748(define-public ghc-union-find
13749 (package
13750 (name "ghc-union-find")
13751 (version "0.2")
13752 (source (origin
13753 (method url-fetch)
13754 (uri (string-append
13755 "https://hackage.haskell.org/package/union-find/union-find-"
13756 version ".tar.gz"))
13757 (sha256
13758 (base32
13759 "1v7hj42j9w6jlzi56jg8rh4p58gfs1c5dx30wd1qqvn0p0mnihp6"))))
13760 (build-system haskell-build-system)
13761 (home-page "https://github.com/nominolo/union-find")
13762 (synopsis "Efficient union and equivalence testing of sets")
13763 (description
13764 "The Union/Find algorithm implements these operations in (effectively)
13765constant-time:
13766@enumerate
13767@item Check whether two elements are in the same equivalence class.
13768@item Create a union of two equivalence classes.
13769@item Look up the descriptor of the equivalence class.
13770@end enumerate\n")
13771 (license license:bsd-3)))
13772
13773(define-public ghc-uniplate
13774 (package
13775 (name "ghc-uniplate")
13776 (version "1.6.12")
13777 (source
13778 (origin
13779 (method url-fetch)
13780 (uri (string-append
13781 "https://hackage.haskell.org/package/uniplate/uniplate-"
13782 version
13783 ".tar.gz"))
13784 (sha256
13785 (base32
13786 "1dx8f9aw27fz8kw0ad1nm6355w5rdl7bjvb427v2bsgnng30pipw"))))
13787 (build-system haskell-build-system)
13788 (inputs
13789 `(("ghc-syb" ,ghc-syb)
13790 ("ghc-hashable" ,ghc-hashable)
13791 ("ghc-unordered-containers" ,ghc-unordered-containers)))
f5d88758 13792 (home-page "https://github.com/ndmitchell/uniplate")
dddbc90c
RV
13793 (synopsis "Simple, concise and fast generic operations")
13794 (description "Uniplate is a library for writing simple and concise generic
13795operations. Uniplate has similar goals to the original Scrap Your Boilerplate
13796work, but is substantially simpler and faster.")
13797 (license license:bsd-3)))
13798
13799(define-public ghc-unix-compat
13800 (package
13801 (name "ghc-unix-compat")
bc82e9f5 13802 (version "0.5.2")
dddbc90c
RV
13803 (source
13804 (origin
13805 (method url-fetch)
13806 (uri (string-append
13807 "https://hackage.haskell.org/package/unix-compat/unix-compat-"
13808 version
13809 ".tar.gz"))
13810 (sha256
13811 (base32
bc82e9f5 13812 "1a8brv9fax76b1fymslzyghwa6ma8yijiyyhn12msl3i5x24x6k5"))))
dddbc90c
RV
13813 (build-system haskell-build-system)
13814 (home-page
13815 "https://github.com/jystic/unix-compat")
13816 (synopsis "Portable POSIX-compatibility layer")
13817 (description
13818 "This package provides portable implementations of parts of the unix
13819package. This package re-exports the unix package when available. When it
13820isn't available, portable implementations are used.")
13821 (license license:bsd-3)))
13822
13823(define-public ghc-unix-time
13824 (package
13825 (name "ghc-unix-time")
fad9cff2 13826 (version "0.4.7")
dddbc90c
RV
13827 (source
13828 (origin
13829 (method url-fetch)
13830 (uri (string-append
13831 "https://hackage.haskell.org/package/unix-time/unix-time-"
13832 version
13833 ".tar.gz"))
13834 (sha256
13835 (base32
fad9cff2 13836 "02fyh298lm8jsg52i3z0ikazwz477ljqjmhnqr2d88grmn5ky8qr"))))
dddbc90c
RV
13837 (build-system haskell-build-system)
13838 (arguments
13839 `(#:tests? #f)) ; FIXME: Test fails with "System.Time not found". This
13840 ; is weird, that should be provided by GHC 7.10.2.
13841 (inputs
13842 `(("ghc-old-time" ,ghc-old-time)
13843 ("ghc-old-locale" ,ghc-old-locale)))
13844 (home-page "https://hackage.haskell.org/package/unix-time")
13845 (synopsis "Unix time parser/formatter and utilities")
13846 (description "This library provides fast parsing and formatting utilities
13847for Unix time in Haskell.")
13848 (license license:bsd-3)))
13849
13850(define-public ghc-unliftio
13851 (package
13852 (name "ghc-unliftio")
a4084db1 13853 (version "0.2.12")
dddbc90c
RV
13854 (source
13855 (origin
13856 (method url-fetch)
13857 (uri (string-append
13858 "https://hackage.haskell.org/package/unliftio/unliftio-"
13859 version
13860 ".tar.gz"))
13861 (sha256
13862 (base32
a4084db1 13863 "02gy1zrxgzg4xmzm8lafsf1nyr3as1q20r8ld73xg3q7rkag9acg"))))
dddbc90c
RV
13864 (build-system haskell-build-system)
13865 (arguments `(#:tests? #f)) ; FIXME: hspec-discover not in PATH
2b3466de 13866 (outputs '("out" "static" "doc"))
dddbc90c
RV
13867 (inputs
13868 `(("ghc-async" ,ghc-async)
13869 ("ghc-unliftio-core" ,ghc-unliftio-core)))
13870 (native-inputs `(("ghc-hspec" ,ghc-hspec)))
13871 (home-page "https://github.com/fpco/unliftio")
13872 (synopsis "Provides MonadUnliftIO typecplass for unlifting monads to
13873IO (batteries included)")
13874 (description "This Haskell package provides the core @code{MonadUnliftIO}
13875typeclass, a number of common instances, and a collection of common functions
13876working with it.")
13877 (license license:expat)))
13878
13879(define-public ghc-unliftio-core
13880 (package
13881 (name "ghc-unliftio-core")
2ae42618 13882 (version "0.1.2.0")
dddbc90c
RV
13883 (source
13884 (origin
13885 (method url-fetch)
13886 (uri (string-append "https://hackage.haskell.org/package/"
13887 "unliftio-core-" version "/"
13888 "unliftio-core-" version ".tar.gz"))
13889 (sha256
13890 (base32
2ae42618 13891 "0y3siyx3drkw7igs380a87h8qfbbgcyxxlcnshp698hcc4yqphr4"))))
dddbc90c
RV
13892 (build-system haskell-build-system)
13893 (arguments
13894 `(#:cabal-revision
2ae42618 13895 ("2" "0jqrjjbgicx48wzcjxs1xmih48ay79rhmrz6081dldlfxynli6vz")))
dddbc90c
RV
13896 (home-page
13897 "https://github.com/fpco/unliftio/tree/master/unliftio-core#readme")
13898 (synopsis "The MonadUnliftIO typeclass for unlifting monads to IO")
13899 (description "This Haskell package provides the core @code{MonadUnliftIO}
13900typeclass, instances for base and transformers, and basic utility
13901functions.")
13902 (license license:expat)))
13903
13904(define-public ghc-unordered-containers
13905 (package
13906 (name "ghc-unordered-containers")
ca01f8d3 13907 (version "0.2.10.0")
534d6caa 13908 (outputs '("out" "static" "doc"))
dddbc90c
RV
13909 (source
13910 (origin
13911 (method url-fetch)
13912 (uri (string-append
13913 "https://hackage.haskell.org/package/unordered-containers"
13914 "/unordered-containers-" version ".tar.gz"))
13915 (sha256
13916 (base32
ca01f8d3 13917 "0wy5hfrs880hh8hvp648bl07ws777n3kkmczzdszr7papnyigwb5"))))
dddbc90c
RV
13918 (build-system haskell-build-system)
13919 (inputs
13920 `(("ghc-chasingbottoms" ,ghc-chasingbottoms)
13921 ("ghc-hunit" ,ghc-hunit)
13922 ("ghc-quickcheck" ,ghc-quickcheck)
13923 ("ghc-test-framework" ,ghc-test-framework)
13924 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
13925 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)
13926 ("ghc-hashable" ,ghc-hashable)))
13927 (home-page
13928 "https://github.com/tibbe/unordered-containers")
13929 (synopsis
13930 "Efficient hashing-based container types")
13931 (description
13932 "Efficient hashing-based container types. The containers have been
13933optimized for performance critical use, both in terms of large data quantities
13934and high speed.")
13935 (license license:bsd-3)))
13936
13937(define-public ghc-unordered-containers-bootstrap
13938 (package
13939 (inherit ghc-unordered-containers)
13940 (name "ghc-unordered-containers-bootstrap")
13941 (arguments `(#:tests? #f))
13942 (inputs
13943 `(("ghc-hashable" ,ghc-hashable-bootstrap)))
799d8d3c 13944 (properties '((hidden? #t)))))
dddbc90c 13945
a52f4c57
JS
13946(define-public ghc-unsafe
13947 (package
13948 (name "ghc-unsafe")
13949 (version "0.0")
13950 (source
13951 (origin
13952 (method url-fetch)
13953 (uri
13954 (string-append
13955 "https://hackage.haskell.org/package/unsafe/unsafe-"
13956 version ".tar.gz"))
13957 (sha256
13958 (base32
13959 "0hc6xr1i3hkz25gdgfx1jqgpsc9mwa05bkfynp0mcfdlyz6782nz"))))
13960 (build-system haskell-build-system)
13961 (home-page "https://hackage.haskell.org/package/unsafe")
13962 (synopsis "Unified interface to unsafe functions")
13963 (description "Safe Haskell introduced the notion of safe and unsafe
13964modules. In order to make as many as possible modules ``safe'', the
13965well-known unsafe functions were moved to distinguished modules. This
13966makes it hard to write packages that work with both old and new versions
13967of GHC. This package provides a single module System.Unsafe that
13968exports the unsafe functions from the base package. It provides them in
13969a style ready for qualification, that is, you should import them by
13970@code{import qualified System.Unsafe as Unsafe}.")
13971 (license license:bsd-3)))
13972
dddbc90c
RV
13973(define-public ghc-uri-bytestring
13974 (package
13975 (name "ghc-uri-bytestring")
d35ffd39 13976 (version "0.3.2.2")
dddbc90c
RV
13977 (source
13978 (origin
13979 (method url-fetch)
13980 (uri (string-append "https://hackage.haskell.org/package/"
13981 "uri-bytestring-" version "/"
13982 "uri-bytestring-" version ".tar.gz"))
13983 (sha256
13984 (base32
d35ffd39 13985 "0spzv3mwlpxiamd7347sxwcy2xri16ak1y7p1v4fisnvq4jprm67"))))
dddbc90c
RV
13986 (build-system haskell-build-system)
13987 (inputs `(("ghc-attoparsec" ,ghc-attoparsec)
dddbc90c
RV
13988 ("ghc-blaze-builder" ,ghc-blaze-builder)
13989 ("ghc-th-lift-instances" ,ghc-th-lift-instances)))
d35ffd39 13990 (native-inputs `(("ghc-hunit" ,ghc-hunit)
dddbc90c
RV
13991 ("ghc-tasty" ,ghc-tasty)
13992 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
d35ffd39
TS
13993 ("ghc-hedgehog" ,ghc-hedgehog)
13994 ("ghc-tasty-hedgehog" ,ghc-tasty-hedgehog)
dddbc90c 13995 ("ghc-base-compat" ,ghc-base-compat)
dddbc90c 13996 ("ghc-semigroups" ,ghc-semigroups)
d35ffd39 13997 ("ghc-safe" ,ghc-safe)))
dddbc90c
RV
13998 (home-page "https://github.com/Soostone/uri-bytestring")
13999 (synopsis "Haskell URI parsing as ByteStrings")
14000 (description "This Haskell package aims to be an RFC3986 compliant URI
14001parser that uses ByteStrings for parsing and representing the URI data.")
14002 (license license:bsd-3)))
14003
d7ad0823
JS
14004(define-public ghc-utf8-light
14005 (package
14006 (name "ghc-utf8-light")
14007 (version "0.4.2")
14008 (source
14009 (origin
14010 (method url-fetch)
14011 (uri (string-append
14012 "mirror://hackage/package/utf8-light/utf8-light-"
14013 version
14014 ".tar.gz"))
14015 (sha256
14016 (base32
14017 "0rwyc5z331yfnm4hpx0sph6i1zvkd1z10vvglhnp0vc9wy644k0q"))))
14018 (build-system haskell-build-system)
14019 (home-page
14020 "http://hackage.haskell.org/package/utf8-light")
14021 (synopsis "Lightweight unicode support for Haskell")
14022 (description
14023 "This package profides a class for encoding and decoding UTF8 strings
14024with instances for several common types. It also includes several functions
14025for working with UTF8. It aims to be lightweight, depending only on Base and
14026including only one module.")
14027 (license license:bsd-3)))
14028
dddbc90c
RV
14029(define-public ghc-utf8-string
14030 (package
14031 (name "ghc-utf8-string")
14032 (version "1.0.1.1")
14033 (source
14034 (origin
14035 (method url-fetch)
14036 (uri (string-append
14037 "https://hackage.haskell.org/package/utf8-string/utf8-string-"
14038 version
14039 ".tar.gz"))
14040 (sha256
14041 (base32 "0h7imvxkahiy8pzr8cpsimifdfvv18lizrb33k6mnq70rcx9w2zv"))))
14042 (build-system haskell-build-system)
14043 (arguments
14044 `(#:cabal-revision
14045 ("3" "02vhj5gykkqa2dyn7s6gn8is1b5fdn9xcqqvlls268g7cpv6rk38")))
14046 (home-page "https://github.com/glguy/utf8-string/")
14047 (synopsis "Support for reading and writing UTF8 Strings")
14048 (description
14049 "A UTF8 layer for Strings. The utf8-string package provides operations
14050for encoding UTF8 strings to Word8 lists and back, and for reading and writing
14051UTF8 without truncation.")
14052 (license license:bsd-3)))
14053
14054(define-public ghc-utility-ht
14055 (package
14056 (name "ghc-utility-ht")
14057 (version "0.0.14")
14058 (home-page "https://hackage.haskell.org/package/utility-ht")
14059 (source
14060 (origin
14061 (method url-fetch)
14062 (uri (string-append home-page "/utility-ht-" version ".tar.gz"))
14063 (sha256
14064 (base32 "1a7bgk7wv7sqbxbiv7kankiimr3wij7zdm7s83zwsf886ghyxhk9"))))
14065 (build-system haskell-build-system)
14066 (inputs `(("ghc-quickcheck" ,ghc-quickcheck)))
14067 (synopsis "Haskell helper functions for Lists, Maybes, Tuples, Functions")
14068 (description "This package includes Hakell modules providing various
14069helper functions for Lists, Maybes, Tuples, Functions.")
14070 (license license:bsd-3)))
14071
14072(define-public ghc-uuid
14073 (package
14074 (name "ghc-uuid")
14075 (version "1.3.13")
14076 (source
14077 (origin
14078 (method url-fetch)
14079 (uri (string-append "https://hackage.haskell.org/package/"
14080 "uuid-" version "/"
14081 "uuid-" version ".tar.gz"))
14082 (sha256
14083 (base32
14084 "09xhk42yhxvqmka0iqrv3338asncz8cap3j0ic0ps896f2581b6z"))))
14085 (build-system haskell-build-system)
14086 (arguments
14087 `(#:cabal-revision
14088 ("2" "0m185q62jkfb5jsv358nxbnrkv8y8hd0qqvgvh22wvc5g9ipz0r9")
14089 #:phases
14090 (modify-phases %standard-phases
14091 (add-before 'configure 'strip-test-framework-constraints
14092 (lambda _
14093 (substitute* "uuid.cabal"
14094 (("HUnit >= 1\\.2 && < 1\\.4") "HUnit")
14095 (("QuickCheck >= 2\\.4 && < 2\\.10") "QuickCheck")
14096 (("tasty >= 0\\.10 && < 0\\.12") "tasty")
14097 (("tasty-hunit == 0\\.9\\.\\*") "tasty-hunit")
14098 (("tasty-quickcheck == 0\\.8\\.\\*") "tasty-quickcheck")))))))
14099 (inputs `(("ghc-cryptohash-sha1" ,ghc-cryptohash-sha1)
14100 ("ghc-cryptohash-md5" ,ghc-cryptohash-md5)
14101 ("ghc-entropy" ,ghc-entropy)
14102 ("ghc-network-info" ,ghc-network-info)
14103 ("ghc-random" ,ghc-random)
14104 ("ghc-uuid-types" ,ghc-uuid-types)))
14105 (native-inputs `(("ghc-hunit" ,ghc-hunit)
14106 ("ghc-quickcheck" ,ghc-quickcheck)
14107 ("ghc-tasty" ,ghc-tasty)
14108 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
14109 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
14110 (home-page "https://github.com/hvr/uuid")
14111 (synopsis "Haskell library to create, compare, parse, and print UUIDs")
14112 (description "This Haskell library provides utilities creating, comparing,
14113parsing and printing @dfn{Universally Unique Identifiers} or UUIDs.")
14114 (license license:bsd-3)))
14115
14116(define-public ghc-uuid-types
14117 (package
14118 (name "ghc-uuid-types")
14119 (version "1.0.3")
14120 (source
14121 (origin
14122 (method url-fetch)
14123 (uri (string-append "https://hackage.haskell.org/package/"
14124 "uuid-types-" version "/"
14125 "uuid-types-" version ".tar.gz"))
14126 (sha256
14127 (base32
14128 "1zdka5jnm1h6k36w3nr647yf3b5lqb336g3fkprhd6san9x52xlj"))))
14129 (build-system haskell-build-system)
14130 (arguments
14131 `(#:phases
14132 (modify-phases %standard-phases
14133 (add-before 'configure 'strip-test-framework-constraints
14134 (lambda _
14135 (substitute* "uuid-types.cabal"
14136 (("HUnit >=1\\.2 && < 1\\.4") "HUnit")
14137 (("QuickCheck >=2\\.4 && < 2\\.9") "QuickCheck")
14138 (("tasty >= 0\\.10 && < 0\\.12") "tasty")
14139 (("tasty-hunit == 0\\.9\\.\\*") "tasty-hunit")
14140 (("tasty-quickcheck == 0\\.8\\.\\*") "tasty-quickcheck")))))))
14141 (inputs `(("ghc-hashable" ,ghc-hashable)
14142 ("ghc-random" ,ghc-random)))
14143 (native-inputs `(("ghc-hunit" ,ghc-hunit)
14144 ("ghc-quickcheck" ,ghc-quickcheck)
14145 ("ghc-tasty" ,ghc-tasty)
14146 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
14147 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
14148 (home-page "https://github.com/hvr/uuid")
14149 (synopsis "Haskell type definitions for UUIDs")
14150 (description "This Haskell library contains type definitions for
14151@dfn{Universally Unique Identifiers} or
14152@uref{https://en.wikipedia.org/wiki/UUID, UUIDs}, and basic conversion
14153functions.")
14154 (license license:bsd-3)))
14155
14156(define-public ghc-validation
14157 (package
14158 (name "ghc-validation")
08397fde 14159 (version "1.1")
dddbc90c
RV
14160 (source
14161 (origin
14162 (method url-fetch)
14163 (uri (string-append
14164 "mirror://hackage/package/validation/validation-"
14165 version
14166 ".tar.gz"))
14167 (sha256
14168 (base32
08397fde 14169 "1acj7mh3581ks405xswxw6667z7y1y0slisg6jvp6chc191ji9l5"))))
dddbc90c
RV
14170 (build-system haskell-build-system)
14171 (arguments
14172 `(#:cabal-revision
08397fde 14173 ("1" "1rrjg9z399k6pb55nv85mlr5bkmdqbjwkvl1cy7ydccdx6ks4syp")))
dddbc90c
RV
14174 (inputs
14175 `(("ghc-semigroups" ,ghc-semigroups)
14176 ("ghc-semigroupoids" ,ghc-semigroupoids)
14177 ("ghc-bifunctors" ,ghc-bifunctors)
14178 ("ghc-lens" ,ghc-lens)))
14179 (native-inputs
14180 `(("ghc-hedgehog" ,ghc-hedgehog)
14181 ("ghc-hunit" ,ghc-hunit)))
14182 (home-page "https://github.com/qfpl/validation")
14183 (synopsis
14184 "Data-type like Either but with an accumulating Applicative")
14185 (description
14186 "A data-type like Either but with differing properties and type-class
14187instances.
14188
14189Library support is provided for this different representation, including
14190@code{lens}-related functions for converting between each and abstracting over
14191their similarities.
14192
14193The @code{Validation} data type is isomorphic to @code{Either}, but has an
14194instance of @code{Applicative} that accumulates on the error side. That is to
14195say, if two (or more) errors are encountered, they are appended using a
14196@{Semigroup} operation.
14197
14198As a consequence of this @code{Applicative} instance, there is no
14199corresponding @code{Bind} or @code{Monad} instance. @code{Validation} is an
14200example of, \"An applicative functor that is not a monad.\"")
14201 (license license:bsd-3)))
14202
14203(define-public ghc-validity
14204 (package
14205 (name "ghc-validity")
3f1ba75d 14206 (version "0.9.0.2")
dddbc90c
RV
14207 (source
14208 (origin
14209 (method url-fetch)
14210 (uri (string-append
14211 "https://hackage.haskell.org/package/validity/validity-"
14212 version
14213 ".tar.gz"))
14214 (sha256
14215 (base32
3f1ba75d 14216 "1aa93lp1pqwv7vhx19nazlig8qhbp3psblbz360s5lii3s5rli2v"))))
dddbc90c
RV
14217 (build-system haskell-build-system)
14218 (native-inputs `(("ghc-hspec" ,ghc-hspec)
14219 ("hspec-discover" ,hspec-discover)))
14220 (home-page
14221 "https://github.com/NorfairKing/validity")
14222 (synopsis "Validity typeclass")
14223 (description
14224 "Values of custom types usually have invariants imposed upon them. This
14225package provides the @code{Validity} type class, which makes these invariants
14226explicit by providing a function to check whether the invariants hold.")
14227 (license license:expat)))
14228
14229(define-public ghc-vault
14230 (package
14231 (name "ghc-vault")
b40a436e 14232 (version "0.3.1.3")
dddbc90c
RV
14233 (source
14234 (origin
14235 (method url-fetch)
14236 (uri (string-append
14237 "https://hackage.haskell.org/package/vault/vault-"
14238 version
14239 ".tar.gz"))
14240 (sha256
14241 (base32
b40a436e 14242 "0vdm472vn734xa27jjm2mjacl37mxiqaaahvm4hzqjgyh4cqq377"))))
dddbc90c
RV
14243 (build-system haskell-build-system)
14244 (inputs
14245 `(("ghc-unordered-containers" ,ghc-unordered-containers)
14246 ("ghc-hashable" ,ghc-hashable)
b40a436e 14247 ("ghc-semigroups" ,ghc-semigroups)))
dddbc90c
RV
14248 (home-page
14249 "https://github.com/HeinrichApfelmus/vault")
14250 (synopsis "Persistent store for arbitrary values")
14251 (description "This package provides vaults for Haskell. A vault is a
14252persistent store for values of arbitrary types. It's like having first-class
14253access to the storage space behind @code{IORefs}. The data structure is
14254analogous to a bank vault, where you can access different bank boxes with
14255different keys; hence the name. Also provided is a @code{locker} type,
14256representing a store for a single element.")
14257 (license license:bsd-3)))
14258
14259(define-public ghc-vector
14260 (package
14261 (name "ghc-vector")
3ad67f6b 14262 (version "0.12.0.3")
534d6caa 14263 (outputs '("out" "static" "doc"))
dddbc90c
RV
14264 (source
14265 (origin
14266 (method url-fetch)
14267 (uri (string-append
14268 "https://hackage.haskell.org/package/vector/vector-"
14269 version
14270 ".tar.gz"))
14271 (sha256
14272 (base32
3ad67f6b 14273 "1a756s4w759ji3als5alfxwlckh5zcmykfg9rll4mlr2knzvz8mq"))))
dddbc90c
RV
14274 (build-system haskell-build-system)
14275 ;; FIXME: To simplify upgrading all Haskell packages, we leave the tests
14276 ;; disabled for now.
14277 (arguments
3ad67f6b 14278 `(#:tests? #f))
dddbc90c
RV
14279 (inputs
14280 `(("ghc-primitive" ,ghc-primitive)
14281 ("ghc-random" ,ghc-random)
14282 ("ghc-quickcheck" ,ghc-quickcheck)
14283 ;; ("ghc-hunit" ,ghc-hunit)
14284 ;; ("ghc-test-framework" ,ghc-test-framework)
14285 ;; ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
14286 ;; ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)
14287 ))
14288 (home-page "https://github.com/haskell/vector")
14289 (synopsis "Efficient Arrays")
14290 (description "This library provides an efficient implementation of
14291Int-indexed arrays (both mutable and immutable), with a powerful loop
14292optimisation framework.")
14293 (license license:bsd-3)))
14294
14295(define-public ghc-vector-algorithms
14296 (package
14297 (name "ghc-vector-algorithms")
e71f316f 14298 (version "0.8.0.1")
dddbc90c
RV
14299 (source
14300 (origin
14301 (method url-fetch)
14302 (uri (string-append "https://hackage.haskell.org/package/"
14303 "vector-algorithms-" version "/"
14304 "vector-algorithms-" version ".tar.gz"))
14305 (sha256
14306 (base32
e71f316f 14307 "1zip8r7hh5g12xrjvhbg38z6hfxy7l6h6pl88qcqc0ygdmwdxg0m"))))
dddbc90c
RV
14308 (build-system haskell-build-system)
14309 (inputs
14310 `(("ghc-vector" ,ghc-vector)))
14311 (native-inputs
14312 `(("ghc-quickcheck" ,ghc-quickcheck)))
14313 (home-page "https://github.com/bos/math-functions")
14314 (synopsis "Algorithms for vector arrays in Haskell")
14315 (description "This Haskell library algorithms for vector arrays.")
14316 (license license:bsd-3)))
14317
14318(define-public ghc-vector-binary-instances
14319 (package
14320 (name "ghc-vector-binary-instances")
ca0701ef 14321 (version "0.2.5.1")
dddbc90c
RV
14322 (source
14323 (origin
14324 (method url-fetch)
14325 (uri (string-append
14326 "https://hackage.haskell.org/package/"
14327 "vector-binary-instances/vector-binary-instances-"
14328 version ".tar.gz"))
14329 (sha256
14330 (base32
ca0701ef 14331 "04n5cqm1v95pw1bp68l9drjkxqiy2vswxdq0fy1rqcgxisgvji9r"))))
dddbc90c 14332 (build-system haskell-build-system)
dddbc90c
RV
14333 (inputs
14334 `(("ghc-vector" ,ghc-vector)))
14335 (native-inputs
14336 `(("ghc-tasty" ,ghc-tasty)
14337 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
14338 (home-page "https://github.com/bos/vector-binary-instances")
14339 (synopsis "Instances of Data.Binary and Data.Serialize for vector")
14340 (description "This library provides instances of @code{Binary} for the
14341types defined in the @code{vector} package, making it easy to serialize
14342vectors to and from disk. We use the generic interface to vectors, so all
14343vector types are supported. Specific instances are provided for unboxed,
14344boxed and storable vectors.")
14345 (license license:bsd-3)))
14346
14347(define-public ghc-vector-builder
14348 (package
14349 (name "ghc-vector-builder")
1fc05441 14350 (version "0.3.8")
dddbc90c
RV
14351 (source
14352 (origin
14353 (method url-fetch)
14354 (uri (string-append "https://hackage.haskell.org/package/"
14355 "vector-builder-" version "/"
14356 "vector-builder-" version ".tar.gz"))
14357 (sha256
14358 (base32
1fc05441 14359 "0ww0l52p8s6gmh985adnjbvm1vrqpqbm08qdcrvxwhhcqmxgv6m3"))))
dddbc90c
RV
14360 (build-system haskell-build-system)
14361 (inputs `(("ghc-vector" ,ghc-vector)
14362 ("ghc-semigroups" ,ghc-semigroups)
14363 ("ghc-base-prelude" ,ghc-base-prelude)))
14364 (native-inputs `(("ghc-attoparsec" ,ghc-attoparsec)
14365 ("ghc-tasty" ,ghc-tasty)
14366 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
14367 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
14368 ("ghc-hunit" ,ghc-hunit)
14369 ("ghc-quickcheck-instances" ,ghc-quickcheck-instances)
14370 ("ghc-rerebase" ,ghc-rerebase)))
14371 (home-page "https://github.com/nikita-volkov/vector-builder")
14372 (synopsis "Vector builder for Haskell")
14373 (description "This Haskell package provides an API for constructing vectors.
14374It provides the composable @code{Builder} abstraction, which has instances of the
14375@code{Monoid} and @code{Semigroup} classes.
14376
14377You would first use the @code{Builder} abstraction to specify the structure of
14378the vector; then you can execute the builder to actually produce the
14379vector. ")
14380 (license license:expat)))
14381
14382(define-public ghc-vector-th-unbox
14383 (package
14384 (name "ghc-vector-th-unbox")
63056e61 14385 (version "0.2.1.7")
dddbc90c
RV
14386 (source
14387 (origin
14388 (method url-fetch)
14389 (uri (string-append "https://hackage.haskell.org/package/"
14390 "vector-th-unbox-" version "/"
14391 "vector-th-unbox-" version ".tar.gz"))
14392 (sha256
14393 (base32
63056e61 14394 "0q8dqnbv1c2gi7jjdhqj14abj1vik23ki6lq4iz2sz18yc7q69fi"))))
dddbc90c
RV
14395 (build-system haskell-build-system)
14396 (inputs
14397 `(("ghc-vector" ,ghc-vector)
14398 ("ghc-data-default" ,ghc-data-default)))
14399 (home-page "https://github.com/liyang/vector-th-unbox")
14400 (synopsis "Deriver for Data.Vector.Unboxed using Template Haskell")
14401 (description "This Haskell library provides a Template Haskell
14402deriver for unboxed vectors, given a pair of coercion functions to
14403and from some existing type with an Unbox instance.")
14404 (license license:bsd-3)))
14405
14406(define-public ghc-void
14407 (package
14408 (name "ghc-void")
51889121 14409 (version "0.7.3")
dddbc90c
RV
14410 (source
14411 (origin
14412 (method url-fetch)
14413 (uri (string-append
14414 "https://hackage.haskell.org/package/void/void-"
14415 version
14416 ".tar.gz"))
14417 (sha256
14418 (base32
51889121 14419 "05vk3x1r9a2pqnzfji475m5gdih2im1h7rbi2sc67p1pvj6pbbsk"))))
dddbc90c
RV
14420 (build-system haskell-build-system)
14421 (inputs
14422 `(("ghc-semigroups" ,ghc-semigroups)
14423 ("ghc-hashable" ,ghc-hashable)))
14424 (home-page "https://github.com/ekmett/void")
14425 (synopsis
14426 "Logically uninhabited data type")
14427 (description
14428 "A Haskell 98 logically uninhabited data type, used to indicate that a
14429given term should not exist.")
14430 (license license:bsd-3)))
14431
14432(define-public ghc-wave
14433 (package
14434 (name "ghc-wave")
1631a0f7 14435 (version "0.2.0")
dddbc90c
RV
14436 (source (origin
14437 (method url-fetch)
14438 (uri (string-append
14439 "https://hackage.haskell.org/package/wave/wave-"
14440 version
14441 ".tar.gz"))
14442 (sha256
14443 (base32
1631a0f7 14444 "149kgwngq3qxc7gxpkqb16j669j0wpv2f3gnvfwp58yg6m4259ki"))))
dddbc90c
RV
14445 (build-system haskell-build-system)
14446 (arguments
14447 '(#:phases
14448 (modify-phases %standard-phases
14449 (add-before 'configure 'update-constraints
14450 (lambda _
14451 (substitute* "wave.cabal"
14452 (("temporary.* < 1\\.3")
14453 "temporary >= 1.1 && < 1.4")))))))
14454 (inputs
14455 `(("ghc-cereal" ,ghc-cereal)
14456 ("ghc-data-default-class"
14457 ,ghc-data-default-class)
14458 ("ghc-quickcheck" ,ghc-quickcheck)
14459 ("ghc-temporary" ,ghc-temporary)))
14460 (native-inputs
14461 `(("hspec-discover" ,hspec-discover)
14462 ("ghc-hspec" ,ghc-hspec)))
14463 (home-page "https://github.com/mrkkrp/wave")
14464 (synopsis "Work with WAVE and RF64 files in Haskell")
14465 (description "This package allows you to work with WAVE and RF64
14466files in Haskell.")
14467 (license license:bsd-3)))
14468
14469(define-public ghc-wcwidth
14470 (package
14471 (name "ghc-wcwidth")
14472 (version "0.0.2")
14473 (source
14474 (origin
14475 (method url-fetch)
14476 (uri (string-append "https://hackage.haskell.org/package/wcwidth/wcwidth-"
14477 version ".tar.gz"))
14478 (sha256
14479 (base32
14480 "1n1fq7v64b59ajf5g50iqj9sa34wm7s2j3viay0kxpmvlcv8gipz"))))
14481 (build-system haskell-build-system)
14482 (inputs
14483 `(("ghc-setlocale" ,ghc-setlocale)
14484 ("ghc-utf8-string" ,ghc-utf8-string)
14485 ("ghc-attoparsec" ,ghc-attoparsec)))
14486 (home-page "https://github.com/solidsnack/wcwidth/")
14487 (synopsis "Haskell bindings to wcwidth")
14488 (description "This package provides Haskell bindings to your system's
14489native wcwidth and a command line tool to examine the widths assigned by it.
14490The command line tool can compile a width table to Haskell code that assigns
14491widths to the Char type.")
14492 (license license:bsd-3)))
14493
14494(define-public ghc-wcwidth-bootstrap
14495 (package
14496 (inherit ghc-wcwidth)
14497 (name "ghc-wcwidth-bootstrap")
14498 (inputs
14499 `(("ghc-setlocale" ,ghc-setlocale)
14500 ("ghc-utf8-string" ,ghc-utf8-string)
14501 ("ghc-attoparsec" ,ghc-attoparsec-bootstrap)))
799d8d3c 14502 (properties '((hidden? #t)))))
dddbc90c
RV
14503
14504(define-public ghc-weigh
14505 (package
14506 (name "ghc-weigh")
b6d9777f 14507 (version "0.0.14")
dddbc90c
RV
14508 (source
14509 (origin
14510 (method url-fetch)
14511 (uri (string-append "https://hackage.haskell.org/package/weigh/"
14512 "weigh-" version ".tar.gz"))
14513 (sha256
14514 (base32
b6d9777f 14515 "0l85marb5rl9nr1c0id42dnr5i9fk1jciy5h6lywhb34w3hbj61g"))))
dddbc90c
RV
14516 (build-system haskell-build-system)
14517 (inputs
14518 `(("ghc-split" ,ghc-split)
14519 ("ghc-temporary" ,ghc-temporary)))
14520 (home-page "https://github.com/fpco/weigh#readme")
14521 (synopsis "Measure allocations of a Haskell functions/values")
14522 (description "This package provides tools to measure the memory usage of a
14523Haskell value or function.")
14524 (license license:bsd-3)))
14525
14526(define-public ghc-wl-pprint
14527 (package
14528 (name "ghc-wl-pprint")
14529 (version "1.2.1")
14530 (source (origin
14531 (method url-fetch)
14532 (uri (string-append
14533 "https://hackage.haskell.org/package/wl-pprint/wl-pprint-"
14534 version ".tar.gz"))
14535 (sha256
14536 (base32
14537 "0kn7y8pdrv8f87zhd5mifcl8fy3b2zvnzmzwhdqhxxlyzwiq6z0c"))))
14538 (build-system haskell-build-system)
14539 (home-page "https://hackage.haskell.org/package/wl-pprint")
14540 (synopsis "Wadler/Leijen pretty printer")
14541 (description
14542 "This is a pretty printing library based on Wadler's paper @i{A Prettier
14543Printer}. This version allows the library user to declare overlapping
14544instances of the @code{Pretty} class.")
14545 (license license:bsd-3)))
14546
14547(define-public ghc-wl-pprint-annotated
14548 (package
14549 (name "ghc-wl-pprint-annotated")
14550 (version "0.1.0.1")
14551 (source
14552 (origin
14553 (method url-fetch)
14554 (uri (string-append
14555 "mirror://hackage/package/wl-pprint-annotated/wl-pprint-annotated-"
14556 version
14557 ".tar.gz"))
14558 (sha256
14559 (base32
14560 "1br7qyf27iza213inwhf9bm2k6in0zbmfw6w4clqlc9f9cj2nrkb"))))
14561 (build-system haskell-build-system)
14562 (native-inputs
14563 `(("ghc-tasty" ,ghc-tasty)
14564 ("ghc-tasty-hunit" ,ghc-tasty-hunit)))
14565 (home-page
14566 "https://github.com/minad/wl-pprint-annotated#readme")
14567 (synopsis
14568 "Wadler/Leijen pretty printer with annotation support")
14569 (description
14570 "Annotations are useful for coloring. This is a limited version of
14571@code{wl-pprint-extras} without support for point effects and without the free
14572monad. Like in @code{annotated-wl-pprint}, only annotations are supported.
14573Compared to @code{annotated-wl-pprint} this library provides a slightly
14574modernized interface.")
14575 (license license:bsd-3)))
14576
14577(define-public ghc-wl-pprint-text
14578 (package
14579 (name "ghc-wl-pprint-text")
14580 (version "1.2.0.0")
14581 (source
14582 (origin
14583 (method url-fetch)
14584 (uri (string-append
14585 "https://hackage.haskell.org/package/wl-pprint-text/wl-pprint-text-"
14586 version ".tar.gz"))
14587 (sha256
14588 (base32
14589 "0g3w92rad6x5appfb22rbzcas2ix2h0hy91sdxhq8a4a5cnlrpa0"))))
14590 (build-system haskell-build-system)
14591 (inputs
14592 `(("ghc-base-compat" ,ghc-base-compat)))
14593 (home-page "https://hackage.haskell.org/package/wl-pprint-text")
14594 (synopsis "Wadler/Leijen Pretty Printer for Text values")
14595 (description
14596 "A clone of wl-pprint for use with the text library.")
14597 (license license:bsd-3)))
14598
14599(define-public ghc-word8
14600 (package
14601 (name "ghc-word8")
14602 (version "0.1.3")
14603 (source
14604 (origin
14605 (method url-fetch)
14606 (uri (string-append
14607 "https://hackage.haskell.org/package/word8/word8-"
14608 version
14609 ".tar.gz"))
14610 (sha256
14611 (base32
14612 "12jx7f13d2h1djq4fh4dyrab61sm49mj1w61j3rzp2vjfm696c16"))))
14613 (build-system haskell-build-system)
14614 (native-inputs
14615 `(("ghc-hspec" ,ghc-hspec)
14616 ("hspec-discover" ,hspec-discover)))
14617 (home-page "https://hackage.haskell.org/package/word8")
14618 (synopsis "Word8 library for Haskell")
14619 (description "Word8 library to be used with @code{Data.ByteString}.")
14620 (license license:bsd-3)))
14621
14622(define-public ghc-x11
14623 (package
14624 (name "ghc-x11")
6c4581a3 14625 (version "1.9.1")
dddbc90c
RV
14626 (source
14627 (origin
14628 (method url-fetch)
14629 (uri (string-append "https://hackage.haskell.org/package/X11/"
14630 "X11-" version ".tar.gz"))
14631 (sha256
6c4581a3 14632 (base32 "0gg6852mrlgl8zng1j84fismz7k81jr5fk92glgkscf8q6ryg0bm"))))
dddbc90c 14633 (build-system haskell-build-system)
54a5fd07
TS
14634 (arguments
14635 `(#:extra-directories
14636 ("libx11" "libxrandr" "libxinerama" "libxscrnsaver")))
dddbc90c
RV
14637 (inputs
14638 `(("libx11" ,libx11)
14639 ("libxrandr" ,libxrandr)
14640 ("libxinerama" ,libxinerama)
14641 ("libxscrnsaver" ,libxscrnsaver)
14642 ("ghc-data-default" ,ghc-data-default)))
14643 (home-page "https://github.com/haskell-pkg-janitors/X11")
14644 (synopsis "Bindings to the X11 graphics library")
14645 (description
14646 "This package provides Haskell bindings to the X11 graphics library. The
14647bindings are a direct translation of the C bindings.")
14648 (license license:bsd-3)))
14649
14650(define-public ghc-x11-xft
14651 (package
14652 (name "ghc-x11-xft")
14653 (version "0.3.1")
14654 (source
14655 (origin
14656 (method url-fetch)
14657 (uri (string-append "https://hackage.haskell.org/package/X11-xft/"
14658 "X11-xft-" version ".tar.gz"))
14659 (sha256
14660 (base32 "1lgqb0s2qfwwgbvwxhjbi23rbwamzdi0l0slfr20c3jpcbp3zfjf"))))
54a5fd07
TS
14661 (arguments
14662 `(#:extra-directories ("libx11" "libxft" "xorgproto")))
dddbc90c
RV
14663 (inputs
14664 `(("ghc-x11" ,ghc-x11)
14665 ("ghc-utf8-string" ,ghc-utf8-string)
14666 ("libx11" ,libx11)
14667 ("libxft" ,libxft)
14668 ("xorgproto" ,xorgproto)))
14669 (native-inputs
14670 `(("pkg-config" ,pkg-config)))
14671 (build-system haskell-build-system)
14672 (home-page "https://hackage.haskell.org/package/X11-xft")
14673 (synopsis "Bindings to Xft")
14674 (description
14675 "Bindings to the Xft, X Free Type interface library, and some Xrender
14676parts.")
14677 (license license:lgpl2.1)))
14678
14679(define-public ghc-xdg-basedir
14680 (package
14681 (name "ghc-xdg-basedir")
14682 (version "0.2.2")
14683 (source
14684 (origin
14685 (method url-fetch)
14686 (uri (string-append
14687 "https://hackage.haskell.org/package/xdg-basedir/"
14688 "xdg-basedir-" version ".tar.gz"))
14689 (sha256
14690 (base32
14691 "0azlzaxp2dn4l1nr7shsxah2magk1szf6fx0mv75az00qsjw6qg4"))))
14692 (build-system haskell-build-system)
702a1012 14693 (home-page "https://github.com/willdonnelly/xdg-basedir")
dddbc90c
RV
14694 (synopsis "XDG Base Directory library for Haskell")
14695 (description "This package provides a library implementing the XDG Base Directory spec.")
14696 (license license:bsd-3)))
14697
14698(define-public ghc-xml
14699 (package
14700 (name "ghc-xml")
14701 (version "1.3.14")
14702 (source
14703 (origin
14704 (method url-fetch)
14705 (uri (string-append
14706 "https://hackage.haskell.org/package/xml/xml-"
14707 version
14708 ".tar.gz"))
14709 (sha256
14710 (base32
14711 "0g814lj7vaxvib2g3r734221k80k7ap9czv9hinifn8syals3l9j"))))
14712 (build-system haskell-build-system)
2b62f5d0 14713 (home-page "https://github.com/GaloisInc/xml")
dddbc90c
RV
14714 (synopsis "Simple XML library for Haskell")
14715 (description "This package provides a simple XML library for Haskell.")
14716 (license license:bsd-3)))
14717
14718(define-public ghc-xml-conduit
14719 (package
14720 (name "ghc-xml-conduit")
14721 (version "1.8.0.1")
14722 (source
14723 (origin
14724 (method url-fetch)
14725 (uri (string-append "https://hackage.haskell.org/package/xml-conduit/"
14726 "xml-conduit-" version ".tar.gz"))
14727 (sha256
14728 (base32
14729 "177gmyigxql1pn3ncz0r8annwv5cbxnihbgrrg1dhm4gmc9jy2wq"))))
14730 (build-system haskell-build-system)
14731 (inputs
14732 `(("ghc-conduit" ,ghc-conduit)
14733 ("ghc-conduit-extra" ,ghc-conduit-extra)
14734 ("ghc-doctest" ,ghc-doctest)
14735 ("ghc-resourcet" ,ghc-resourcet)
14736 ("ghc-xml-types" ,ghc-xml-types)
14737 ("ghc-attoparsec" ,ghc-attoparsec)
14738 ("ghc-data-default-class" ,ghc-data-default-class)
14739 ("ghc-blaze-markup" ,ghc-blaze-markup)
14740 ("ghc-blaze-html" ,ghc-blaze-html)
14741 ("ghc-monad-control" ,ghc-monad-control)
14742 ("ghc-hspec" ,ghc-hspec)
14743 ("ghc-hunit" ,ghc-hunit)))
14744 (home-page "https://github.com/snoyberg/xml")
14745 (synopsis "Utilities for dealing with XML with the conduit package")
14746 (description
14747 "This package provides pure-Haskell utilities for dealing with XML with
14748the @code{conduit} package.")
14749 (license license:expat)))
14750
14751(define-public ghc-xml-types
14752 (package
14753 (name "ghc-xml-types")
14754 (version "0.3.6")
14755 (source
14756 (origin
14757 (method url-fetch)
14758 (uri (string-append "https://hackage.haskell.org/package/xml-types/"
14759 "xml-types-" version ".tar.gz"))
14760 (sha256
14761 (base32
14762 "1jgqxsa9p2q3h6nymbfmvhldqrqlwrhrzmwadlyc0li50x0d8dwr"))))
14763 (build-system haskell-build-system)
14764 (home-page "https://john-millikin.com/software/haskell-xml/")
14765 (synopsis "Basic types for representing XML")
14766 (description "This package provides basic types for representing XML
14767documents.")
14768 (license license:expat)))
14769
7f89dfc9
KM
14770(define-public ghc-xml-hamlet
14771 (package
14772 (name "ghc-xml-hamlet")
14773 (version "0.5.0.1")
14774 (source
14775 (origin
14776 (method url-fetch)
14777 (uri (string-append "https://hackage.haskell.org/package/xml-hamlet/"
14778 "xml-hamlet-" version ".tar.gz"))
14779 (sha256
14780 (base32 "0jrhcjy7ww59dafg857f2g2df1fw2jmbwcs1q379ph0pc5rxj3lj"))))
14781 (build-system haskell-build-system)
14782 (inputs
14783 `(("ghc-shakespeare" ,ghc-shakespeare)
14784 ("ghc-xml-conduit" ,ghc-xml-conduit)))
14785 (native-inputs
14786 `(("ghc-hspec" ,ghc-hspec)
14787 ("ghc-hunit" ,ghc-hunit)))
14788 (home-page "https://www.yesodweb.com/")
14789 (synopsis "Hamlet-style quasiquoter for XML content")
14790 (description "This package provides a type-safe tool for generating XML
14791code via quasi-quoting built on top of @code{ghc-shakespeare}.")
14792 (license license:bsd-3)))
14793
dddbc90c
RV
14794(define-public ghc-yaml
14795 (package
14796 (name "ghc-yaml")
b58e5b84 14797 (version "0.11.1.2")
dddbc90c
RV
14798 (source (origin
14799 (method url-fetch)
14800 (uri (string-append "https://hackage.haskell.org/package/"
14801 "yaml/yaml-" version ".tar.gz"))
14802 (sha256
14803 (base32
b58e5b84 14804 "028pz77n92l6kjgjv263h4b6yhw1iibdbf3a3dkn5qnz537xpzhc"))))
dddbc90c 14805 (build-system haskell-build-system)
dddbc90c
RV
14806 (inputs
14807 `(("ghc-conduit" ,ghc-conduit)
14808 ("ghc-resourcet" ,ghc-resourcet)
14809 ("ghc-aeson" ,ghc-aeson)
14810 ("ghc-unordered-containers" ,ghc-unordered-containers)
14811 ("ghc-vector" ,ghc-vector)
14812 ("ghc-attoparsec" ,ghc-attoparsec)
14813 ("ghc-scientific" ,ghc-scientific)
14814 ("ghc-semigroups" ,ghc-semigroups)
14815 ("ghc-temporary" ,ghc-temporary)
14816 ("ghc-enclosed-exceptions" ,ghc-enclosed-exceptions)
b58e5b84
TS
14817 ("ghc-base-compat" ,ghc-base-compat)
14818 ("ghc-libyaml" ,ghc-libyaml)))
dddbc90c
RV
14819 (native-inputs
14820 `(("ghc-hspec" ,ghc-hspec)
14821 ("ghc-hunit" ,ghc-hunit)
14822 ("hspec-discover" ,hspec-discover)
b58e5b84
TS
14823 ("ghc-mockery" ,ghc-mockery)
14824 ("ghc-raw-strings-qq" ,ghc-raw-strings-qq)))
dddbc90c
RV
14825 (home-page "https://github.com/snoyberg/yaml/")
14826 (synopsis "Parsing and rendering YAML documents")
14827 (description
14828 "This package provides a library to parse and render YAML documents.")
14829 (license license:bsd-3)))
14830
14831(define-public ghc-zip-archive
14832 (package
14833 (name "ghc-zip-archive")
93c1fdd3 14834 (version "0.4.1")
dddbc90c
RV
14835 (source
14836 (origin
14837 (method url-fetch)
14838 (uri (string-append
14839 "https://hackage.haskell.org/package/zip-archive/zip-archive-"
14840 version
14841 ".tar.gz"))
14842 (sha256
14843 (base32
93c1fdd3 14844 "1cdix5mnxrbs7b2kivhdydhfzgxidd9dqlw71mdw5p21cabwkmf5"))))
dddbc90c 14845 (build-system haskell-build-system)
93c1fdd3
TS
14846 (arguments
14847 `(#:phases
14848 (modify-phases %standard-phases
14849 (add-before 'check 'set-PATH-for-tests
14850 (lambda* (#:key inputs #:allow-other-keys)
14851 (let ((unzip (assoc-ref inputs "unzip"))
14852 (which (assoc-ref inputs "which"))
14853 (path (getenv "PATH")))
14854 (setenv "PATH" (string-append unzip "/bin:" which "/bin:" path))
14855 #t))))))
dddbc90c
RV
14856 (inputs
14857 `(("ghc-digest" ,ghc-digest)
14858 ("ghc-temporary" ,ghc-temporary)
14859 ("ghc-zlib" ,ghc-zlib)))
14860 (native-inputs
14861 `(("ghc-hunit" ,ghc-hunit)
93c1fdd3
TS
14862 ("unzip" ,unzip)
14863 ("which" ,which)))
dddbc90c
RV
14864 (home-page "https://hackage.haskell.org/package/zip-archive")
14865 (synopsis "Zip archive library for Haskell")
14866 (description "The zip-archive library provides functions for creating,
14867modifying, and extracting files from zip archives in Haskell.")
14868 (license license:bsd-3)))
14869
14870(define-public ghc-zlib
14871 (package
14872 (name "ghc-zlib")
bf12089a 14873 (version "0.6.2.1")
534d6caa 14874 (outputs '("out" "static" "doc"))
dddbc90c
RV
14875 (source
14876 (origin
14877 (method url-fetch)
14878 (uri (string-append
14879 "https://hackage.haskell.org/package/zlib/zlib-"
14880 version
14881 ".tar.gz"))
14882 (sha256
14883 (base32
bf12089a 14884 "1l11jraslcrp9d4wnhwfyhwk4fsiq1aq8i6vj81vcq1m2zzi1y7h"))))
dddbc90c
RV
14885 (build-system haskell-build-system)
14886 (arguments
54a5fd07
TS
14887 `(#:extra-directories ("zlib")
14888 #:phases
dddbc90c
RV
14889 (modify-phases %standard-phases
14890 (add-before 'configure 'strip-test-framework-constraints
14891 (lambda _
14892 (substitute* "zlib.cabal"
14893 (("tasty >= 0\\.8 && < 0\\.12") "tasty")
14894 (("tasty-hunit >= 0\\.8 && < 0\\.10") "tasty-hunit")
14895 (("tasty-quickcheck == 0\\.8\\.\\*") "tasty-quickcheck")))))))
14896 (inputs `(("zlib" ,zlib)))
14897 (native-inputs
14898 `(("ghc-quickcheck" ,ghc-quickcheck)
14899 ("ghc-tasty" ,ghc-tasty)
14900 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
14901 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
14902 (home-page "https://hackage.haskell.org/package/zlib")
14903 (synopsis
14904 "Compression and decompression in the gzip and zlib formats")
14905 (description
14906 "This package provides a pure interface for compressing and decompressing
14907streams of data represented as lazy @code{ByteString}s. It uses the zlib C
14908library so it has high performance. It supports the @code{zlib}, @code{gzip}
14909and @code{raw} compression formats. It provides a convenient high level API
14910suitable for most tasks and for the few cases where more control is needed it
14911provides access to the full zlib feature set.")
bbf8bf31 14912 (license license:bsd-3)))
14e41996
RV
14913
14914(define-public ghc-zlib-bindings
14915 (package
14916 (name "ghc-zlib-bindings")
14917 (version "0.1.1.5")
14918 (source
14919 (origin
14920 (method url-fetch)
14921 (uri (string-append "https://hackage.haskell.org/package/"
14922 "zlib-bindings/zlib-bindings-" version ".tar.gz"))
14923 (sha256
14924 (base32
14925 "02ciywlz4wdlymgc3jsnicz9kzvymjw1www2163gxidnz4wb8fy8"))))
14926 (build-system haskell-build-system)
14927 (inputs
14928 `(("ghc-zlib" ,ghc-zlib)))
14929 (native-inputs
14930 `(("ghc-hspec" ,ghc-hspec)
14931 ("ghc-quickcheck" ,ghc-quickcheck)))
14932 (arguments
14933 `(#:cabal-revision
14934 ("2" "0fq49694gqkab8m0vq4i879blswczwd66n7xh4r4gwiahf0ryvqc")))
14935 (home-page "https://github.com/snapframework/zlib-bindings")
14936 (synopsis "Low-level bindings to the @code{zlib} package")
14937 (description "This package provides low-level bindings to the
14938@code{zlib} package.")
14939 (license license:bsd-3)))
8428e92c
TS
14940
14941(define-public ghc-zstd
14942 (package
14943 (name "ghc-zstd")
14944 (version "0.1.1.2")
14945 (source
14946 (origin
14947 (method url-fetch)
14948 (uri (string-append "https://hackage.haskell.org/package/"
14949 "zstd/zstd-" version ".tar.gz"))
14950 (sha256
14951 (base32
14952 "147s496zvw13akxqzg65mgfvk3bvhrcilxgf8n786prxg5cm4jz2"))))
14953 (build-system haskell-build-system)
14954 (native-inputs
14955 `(("ghc-quickcheck" ,ghc-quickcheck)
14956 ("ghc-test-framework" ,ghc-test-framework)
14957 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
14958 (home-page "https://github.com/luispedro/hs-zstd")
14959 (synopsis "Haskell bindings to the Zstandard compression algorithm")
14960 (description "This library provides Haskell bindings to the
14961Zstandard compression algorithm, a fast lossless compression algorithm
14962targeting real-time compression scenarios at zlib-level and better
14963compression ratios.")
14964 (license license:bsd-3)))