Merge branch 'master' into staging
[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>
c00d001d 30;;; Copyright © 2020 Christopher Lemmer Webber <cwebber@dustycloud.org>
6b34d01c
RV
31;;;
32;;; This file is part of GNU Guix.
33;;;
34;;; GNU Guix is free software; you can redistribute it and/or modify it
35;;; under the terms of the GNU General Public License as published by
36;;; the Free Software Foundation; either version 3 of the License, or (at
37;;; your option) any later version.
38;;;
39;;; GNU Guix is distributed in the hope that it will be useful, but
40;;; WITHOUT ANY WARRANTY; without even the implied warranty of
41;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
42;;; GNU General Public License for more details.
43;;;
44;;; You should have received a copy of the GNU General Public License
45;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
46
47(define-module (gnu packages haskell-xyz)
48 #:use-module (gnu packages)
dddbc90c
RV
49 #:use-module (gnu packages base)
50 #:use-module (gnu packages compression)
51 #:use-module (gnu packages emacs)
dddbc90c
RV
52 #:use-module (gnu packages gl)
53 #:use-module (gnu packages graphviz)
54 #:use-module (gnu packages gtk)
d4e4a382 55 #:use-module (gnu packages haskell)
dddbc90c 56 #:use-module (gnu packages haskell-apps)
efb96749 57 #:use-module (gnu packages haskell-check)
dddbc90c
RV
58 #:use-module (gnu packages haskell-crypto)
59 #:use-module (gnu packages haskell-web)
60 #:use-module (gnu packages libffi)
61 #:use-module (gnu packages linux)
e3ee8023 62 #:use-module (gnu packages llvm)
dddbc90c
RV
63 #:use-module (gnu packages lua)
64 #:use-module (gnu packages maths)
49e29df5 65 #:use-module (gnu packages ncurses)
dddbc90c
RV
66 #:use-module (gnu packages pcre)
67 #:use-module (gnu packages pkg-config)
68 #:use-module (gnu packages sdl)
0c2d6fc2 69 #:use-module (gnu packages web)
dddbc90c
RV
70 #:use-module (gnu packages xml)
71 #:use-module (gnu packages xorg)
6b34d01c
RV
72 #:use-module (guix build-system haskell)
73 #:use-module (guix download)
dddbc90c 74 #:use-module (guix git-download)
4780db2c 75 #:use-module (guix utils)
6b34d01c 76 #:use-module ((guix licenses) #:prefix license:)
d4e4a382
RW
77 #:use-module (guix packages)
78 #:use-module (srfi srfi-1))
6b34d01c 79
dddbc90c 80(define-public ghc-abstract-deque
efb96749 81 (package
dddbc90c
RV
82 (name "ghc-abstract-deque")
83 (version "0.3")
efb96749
RV
84 (source
85 (origin
86 (method url-fetch)
87 (uri (string-append "https://hackage.haskell.org/package/"
dddbc90c
RV
88 "abstract-deque-" version "/"
89 "abstract-deque-" version ".tar.gz"))
efb96749
RV
90 (sha256
91 (base32
dddbc90c 92 "18jwswjxwzc9bjiy4ds6hw2a74ki797jmfcifxd2ga4kh7ri1ah9"))))
efb96749 93 (build-system haskell-build-system)
dddbc90c
RV
94 (inputs `(("ghc-random" ,ghc-random)))
95 (home-page "https://github.com/rrnewton/haskell-lockfree/wiki")
96 (synopsis "Abstract, parameterized interface to mutable Deques for Haskell")
97 (description "This Haskell package provides an abstract interface to
98highly-parameterizable queues/deques.
99
100Background: There exists a feature space for queues that extends between:
efb96749
RV
101
102@itemize
dddbc90c
RV
103@item Simple, single-ended, non-concurrent, bounded queues
104
105@item Double-ended, thread-safe, growable queues with important points
106in between (such as the queues used for work stealing).
efb96749
RV
107@end itemize
108
dddbc90c
RV
109This package includes an interface for Deques that allows the programmer
110to use a single API for all of the above, while using the type system to
111select an efficient implementation given the requirements (using type families).
efb96749 112
dddbc90c
RV
113This package also includes a simple reference implementation based on
114@code{IORef} and @code{Data.Sequence}.")
efb96749
RV
115 (license license:bsd-3)))
116
dddbc90c 117(define-public ghc-abstract-par
658dbc7f 118 (package
dddbc90c
RV
119 (name "ghc-abstract-par")
120 (version "0.3.3")
658dbc7f
RV
121 (source
122 (origin
123 (method url-fetch)
124 (uri (string-append "https://hackage.haskell.org/package/"
dddbc90c
RV
125 "abstract-par-" version "/"
126 "abstract-par-" version ".tar.gz"))
658dbc7f
RV
127 (sha256
128 (base32
dddbc90c
RV
129 "0q6qsniw4wks2pw6wzncb1p1j3k6al5njnvm2v5n494hplwqg2i4"))))
130 (build-system haskell-build-system)
131 (home-page "https://github.com/simonmar/monad-par")
132 (synopsis "Abstract parallelization interface for Haskell")
133 (description "This Haskell package is an abstract interface
134only. It provides a number of type clasess, but not an
135implementation. The type classes separate different levels
136of @code{Par} functionality. See the @code{Control.Monad.Par.Class}
137module for more details.")
138 (license license:bsd-3)))
139
d8b88d74
TS
140(define-public ghc-active
141 (package
142 (name "ghc-active")
143 (version "0.2.0.14")
144 (source
145 (origin
146 (method url-fetch)
147 (uri (string-append "https://hackage.haskell.org/package/"
148 "active/active-" version ".tar.gz"))
149 (sha256
150 (base32
151 "0x3b4ln6csa554qls28wbxvclkbdz3yi60i1m0q5ing0cs16fifz"))))
152 (build-system haskell-build-system)
153 (inputs
154 `(("ghc-vector" ,ghc-vector)
155 ("ghc-semigroups" ,ghc-semigroups)
156 ("ghc-semigroupoids" ,ghc-semigroupoids)
157 ("ghc-lens" ,ghc-lens)
158 ("ghc-linear" ,ghc-linear)))
159 (native-inputs
160 `(("ghc-quickcheck" ,ghc-quickcheck)))
161 (home-page "https://hackage.haskell.org/package/active")
162 (synopsis "Abstractions for animation")
163 (description "This package defines an @code{Active} abstraction for
164time-varying values with finite start and end times. It is used for
165describing animations within the
166@url{https://archives.haskell.org/projects.haskell.org/diagrams/,
167diagrams framework}.")
168 (license license:bsd-3)))
169
dddbc90c
RV
170(define-public ghc-adjunctions
171 (package
172 (name "ghc-adjunctions")
173 (version "4.4")
174 (source
175 (origin
176 (method url-fetch)
177 (uri (string-append
178 "https://hackage.haskell.org/package/adjunctions/adjunctions-"
179 version
180 ".tar.gz"))
181 (sha256
182 (base32
183 "1sbal7cbhm12crfnfhkk322jnzgx7lhw3jzq0p463bipagsjwz2h"))))
658dbc7f 184 (build-system haskell-build-system)
a78262be
TS
185 (arguments
186 `(#:cabal-revision
187 ("2" "1yfsjx7dqikg3hvld7i91xfsg5lawmr5980lvfd794sybmgxsf17")))
658dbc7f 188 (inputs
dddbc90c
RV
189 `(("ghc-profunctors" ,ghc-profunctors)
190 ("ghc-comonad" ,ghc-comonad)
191 ("ghc-contravariant" ,ghc-contravariant)
192 ("ghc-distributive" ,ghc-distributive)
193 ("ghc-free" ,ghc-free)
194 ("ghc-tagged" ,ghc-tagged)
195 ("ghc-semigroupoids" ,ghc-semigroupoids)
196 ("ghc-semigroups" ,ghc-semigroups)
197 ("ghc-transformers-compat" ,ghc-transformers-compat)
198 ("ghc-void" ,ghc-void)))
658dbc7f 199 (native-inputs
dddbc90c
RV
200 `(("ghc-generic-deriving" ,ghc-generic-deriving)
201 ("ghc-hspec" ,ghc-hspec)
202 ("hspec-discover" ,hspec-discover)))
203 (home-page "https://github.com/ekmett/adjunctions/")
204 (synopsis "Adjunctions and representable functors")
205 (description "This library provides adjunctions and representable functors
206for Haskell.")
207 (license license:bsd-3)))
208
209(define-public ghc-aeson-compat
210 (package
211 (name "ghc-aeson-compat")
0bafb755 212 (version "0.3.9")
dddbc90c
RV
213 (source
214 (origin
215 (method url-fetch)
216 (uri (string-append "https://hackage.haskell.org/package/"
217 "aeson-compat-" version "/"
218 "aeson-compat-" version ".tar.gz"))
219 (sha256
220 (base32
0bafb755 221 "1j13gykv4ryvmr14w5blz0nnpdb4p0hpa27wahw3mhb1lwdr8hz0"))))
dddbc90c
RV
222 (build-system haskell-build-system)
223 (arguments `(#:tests? #f)) ; FIXME: Tests require QuickCheck >= 2.10
224 (inputs `(("ghc-base-compat" ,ghc-base-compat)
225 ("ghc-aeson" ,ghc-aeson)
226 ("ghc-attoparsec" ,ghc-attoparsec)
227 ("ghc-attoparsec" ,ghc-attoparsec-iso8601)
228 ("ghc-exceptions" ,ghc-exceptions)
229 ("ghc-hashable" ,ghc-hashable)
230 ("ghc-scientific" ,ghc-scientific)
231 ("ghc-time-locale-compat" ,ghc-time-locale-compat)
232 ("ghc-unordered-containers" ,ghc-unordered-containers)
233 ("ghc-vector" ,ghc-vector)
234 ("ghc-tagged" ,ghc-tagged)
235 ("ghc-semigroups" ,ghc-semigroups)
236 ("ghc-nats" ,ghc-nats)))
237 (home-page "https://github.com/phadej/aeson-compat")
238 (synopsis "Compatibility layer for ghc-aeson")
239 (description "This Haskell package provides compatibility layer for
240ghc-aeson.")
241 (license license:bsd-3)))
242
cbc6f861
TS
243(define-public ghc-aeson-diff
244 (package
245 (name "ghc-aeson-diff")
246 (version "1.1.0.7")
247 (source
248 (origin
249 (method url-fetch)
250 (uri (string-append "https://hackage.haskell.org/package/"
251 "aeson-diff/aeson-diff-" version ".tar.gz"))
252 (sha256
253 (base32
254 "01d48pd7d1mb9cd5yxfajln8rmjdjq8ch91s0lav4qw1azv6vp2r"))))
255 (build-system haskell-build-system)
256 (inputs
257 `(("ghc-aeson" ,ghc-aeson)
258 ("ghc-edit-distance-vector" ,ghc-edit-distance-vector)
259 ("ghc-hashable" ,ghc-hashable)
260 ("ghc-scientific" ,ghc-scientific)
261 ("ghc-unordered-containers" ,ghc-unordered-containers)
262 ("ghc-vector" ,ghc-vector)
263 ("ghc-semigroups" ,ghc-semigroups)
264 ("ghc-optparse-applicative" ,ghc-optparse-applicative)))
265 (native-inputs
266 `(("ghc-quickcheck" ,ghc-quickcheck)
267 ("ghc-quickcheck-instances" ,ghc-quickcheck-instances)
268 ("ghc-glob" ,ghc-glob)
269 ("ghc-quickcheck" ,ghc-quickcheck)
270 ("ghc-quickcheck-instances" ,ghc-quickcheck-instances)
271 ("ghc-quickcheck" ,ghc-quickcheck)
272 ("ghc-doctest" ,ghc-doctest)
273 ("hlint" ,hlint)))
274 (home-page "https://github.com/thsutton/aeson-diff")
275 (synopsis "Extract and apply patches to JSON documents")
276 (description "This is a small library for working with changes to JSON
277documents. It includes a library and two command-line executables in the
278style of the @command{diff} and @command{patch} commands available on many
279systems.")
280 (license license:bsd-3)))
281
dddbc90c
RV
282(define-public ghc-alex
283 (package
284 (name "ghc-alex")
285 (version "3.2.4")
286 (source
287 (origin
288 (method url-fetch)
289 (uri (string-append
290 "https://hackage.haskell.org/package/alex/alex-"
291 version
292 ".tar.gz"))
293 (sha256
294 (base32
295 "0cpjixgsr0b2x4s6hz4aa6gnmjw9i7xd9nlfi8m37zqlidq4v3nm"))))
296 (build-system haskell-build-system)
658dbc7f 297 (arguments
dddbc90c
RV
298 `(#:phases
299 (modify-phases %standard-phases
300 (add-before 'check 'set-check-variables
301 (lambda _
302 (setenv "PATH" (string-append (getcwd) "/dist/build/alex:"
303 (getenv "PATH")))
304 (setenv "alex_datadir" (string-append (getcwd) "/data"))
305 #t)))))
306 (inputs `(("ghc-quickcheck" ,ghc-quickcheck)))
307 (native-inputs
308 `(("which" ,which)))
309 (home-page "https://www.haskell.org/alex/")
310 (synopsis
311 "Tool for generating lexical analysers in Haskell")
312 (description
313 "Alex is a tool for generating lexical analysers in Haskell. It takes a
314description of tokens based on regular expressions and generates a Haskell
315module containing code for scanning text efficiently. It is similar to the
316tool lex or flex for C/C++.")
658dbc7f
RV
317 (license license:bsd-3)))
318
dddbc90c 319(define-public ghc-alsa-core
7b01a977 320 (package
dddbc90c
RV
321 (name "ghc-alsa-core")
322 (version "0.5.0.1")
323 (source
324 (origin
325 (method url-fetch)
326 (uri (string-append
327 "mirror://hackage/package/alsa-core/alsa-core-"
328 version
329 ".tar.gz"))
330 (sha256
331 (base32
332 "1avh4a419h9d2zsslg6j8hm87ppgsgqafz8ll037rk2yy1g4jl7b"))))
333 (build-system haskell-build-system)
54a5fd07
TS
334 (arguments
335 `(#:extra-directories ("alsa-lib")))
dddbc90c
RV
336 (inputs
337 `(("ghc-extensible-exceptions" ,ghc-extensible-exceptions)
338 ("alsa-lib" ,alsa-lib)))
339 (native-inputs
340 `(("pkg-config" ,pkg-config)))
228d2901 341 (home-page "https://wiki.haskell.org/ALSA")
dddbc90c
RV
342 (synopsis "Binding to the ALSA Library API (Exceptions)")
343 (description "This package provides access to ALSA infrastructure, that is
344needed by both alsa-seq and alsa-pcm.")
345 (license license:bsd-3)))
346
f2ed1e6d
JS
347(define-public ghc-alsa-mixer
348 (package
349 (name "ghc-alsa-mixer")
350 (version "0.3.0")
351 (source
352 (origin
353 (method url-fetch)
354 (uri
355 (string-append
356 "mirror://hackage/package/alsa-mixer/alsa-mixer-"
357 version ".tar.gz"))
358 (sha256
359 (base32
360 "00ny2p3276jilidjs44npc8zmbhynz3f2lpmlwwl6swwx5yijsnb"))))
361 (build-system haskell-build-system)
362 (inputs `(("ghc-alsa-core" ,ghc-alsa-core)))
363 (native-inputs `(("ghc-c2hs" ,ghc-c2hs)))
364 (home-page "https://github.com/ttuegel/alsa-mixer")
365 (synopsis "Bindings to the ALSA simple mixer API")
366 (description
367 "This package provides bindings to the ALSA simple mixer API.")
368 (license license:bsd-3)))
369
dddbc90c
RV
370(define-public ghc-annotated-wl-pprint
371 (package
372 (name "ghc-annotated-wl-pprint")
373 (version "0.7.0")
374 (source
375 (origin
376 (method url-fetch)
377 (uri (string-append
378 "https://hackage.haskell.org/package/annotated-wl-pprint"
379 "/annotated-wl-pprint-" version
380 ".tar.gz"))
381 (sha256
382 (base32
383 "061xfz6qany3wf95csl8dcik2pz22cn8iv1qchhm16isw5zjs9hc"))))
384 (build-system haskell-build-system)
385 (home-page
386 "https://github.com/david-christiansen/annotated-wl-pprint")
387 (synopsis
388 "The Wadler/Leijen Pretty Printer, with annotation support")
389 (description "This is a modified version of wl-pprint, which was based on
390Wadler's paper \"A Prettier Printer\". This version allows the library user
391to annotate the text with semantic information, which can later be rendered in
392a variety of ways.")
393 (license license:bsd-3)))
394
395(define-public ghc-ansi-terminal
396 (package
397 (name "ghc-ansi-terminal")
f1b4a73f 398 (version "0.9.1")
dddbc90c
RV
399 (source
400 (origin
401 (method url-fetch)
402 (uri (string-append
403 "https://hackage.haskell.org/package/ansi-terminal/ansi-terminal-"
404 version
405 ".tar.gz"))
406 (sha256
407 (base32
f1b4a73f 408 "1yr0ld0kqns3w3j9gl62bdwshvyazidx4dv1qkvq19ivnf08w23l"))))
dddbc90c
RV
409 (build-system haskell-build-system)
410 (inputs
411 `(("ghc-colour" ,ghc-colour)))
412 (home-page "https://github.com/feuerbach/ansi-terminal")
413 (synopsis "ANSI terminal support for Haskell")
414 (description "This package provides ANSI terminal support for Haskell. It
415allows cursor movement, screen clearing, color output showing or hiding the
416cursor, and changing the title.")
417 (license license:bsd-3)))
418
419(define-public ghc-ansi-wl-pprint
420 (package
421 (name "ghc-ansi-wl-pprint")
c38746eb 422 (version "0.6.9")
7b01a977
RV
423 (source
424 (origin
425 (method url-fetch)
426 (uri (string-append "https://hackage.haskell.org/package/"
dddbc90c 427 "ansi-wl-pprint/ansi-wl-pprint-"
7b01a977
RV
428 version ".tar.gz"))
429 (sha256
430 (base32
c38746eb 431 "1b2fg8px98dzbaqyns10kvs8kn6cl1hdq5wb9saz40izrpkyicm7"))))
7b01a977
RV
432 (build-system haskell-build-system)
433 (inputs
dddbc90c
RV
434 `(("ghc-ansi-terminal" ,ghc-ansi-terminal)))
435 (home-page "https://github.com/ekmett/ansi-wl-pprint")
436 (synopsis "Wadler/Leijen Pretty Printer for colored ANSI terminal output")
437 (description "This is a pretty printing library based on Wadler's paper
438\"A Prettier Printer\". It has been enhanced with support for ANSI terminal
439colored output using the ansi-terminal package.")
440 (license license:bsd-3)))
441
442(define-public ghc-appar
443 (package
444 (name "ghc-appar")
1159d1a5 445 (version "0.1.8")
dddbc90c
RV
446 (source
447 (origin
448 (method url-fetch)
449 (uri (string-append
450 "https://hackage.haskell.org/package/appar/appar-"
451 version
452 ".tar.gz"))
453 (sha256
454 (base32
1159d1a5 455 "07v3h766q9mnhphsm53718h1lds147ix7dj15kc5hnsj4vffvkn4"))))
dddbc90c
RV
456 (build-system haskell-build-system)
457 (home-page
458 "https://hackage.haskell.org/package/appar")
459 (synopsis "Simple applicative parser")
460 (description "This package provides a simple applicative parser in Parsec
461style.")
462 (license license:bsd-3)))
463
af369394
JS
464(define-public ghc-assoc
465 (package
466 (name "ghc-assoc")
467 (version "1.0.1")
468 (source
469 (origin
470 (method url-fetch)
471 (uri (string-append
472 "https://hackage.haskell.org/package/assoc/assoc-"
473 version
474 ".tar.gz"))
475 (sha256
476 (base32
477 "1m9n4vp190bvn2wcrd4ggfwa9pi93jp0zgx02mdgywn2zfidw020"))))
478 (build-system haskell-build-system)
479 (inputs
480 `(("ghc-bifunctors" ,ghc-bifunctors)
481 ("ghc-tagged" ,ghc-tagged)))
482 (home-page
483 "http://hackage.haskell.org/package/assoc")
484 (synopsis
485 "Swap and assoc: Symmetric and Semigroupy Bifunctors")
486 (description
487 "Provides generalisations of @code{swap :: (a,b) -> (b,a)} and
488@code{assoc :: ((a,b),c) -> (a,(b,c))} to @code{Bifunctor}s supporting
489similar operations (e.g. @code{Either}, @code{These}).")
490 (license license:bsd-3)))
491
dddbc90c
RV
492(define-public ghc-async
493 (package
494 (name "ghc-async")
048ef066 495 (version "2.2.2")
dddbc90c
RV
496 (source
497 (origin
498 (method url-fetch)
499 (uri (string-append
500 "https://hackage.haskell.org/package/async/async-"
501 version
502 ".tar.gz"))
503 (sha256
504 (base32
048ef066 505 "1zxvfcyy4sg8lmzphi5dgnavksj5pav6rbvd5kc48lf4hanb2jjb"))))
dddbc90c
RV
506 (build-system haskell-build-system)
507 (inputs
508 `(("ghc-hashable" ,ghc-hashable)
509 ("ghc-hunit" ,ghc-hunit)
7b01a977
RV
510 ("ghc-test-framework" ,ghc-test-framework)
511 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)))
dddbc90c
RV
512 (home-page "https://github.com/simonmar/async")
513 (synopsis "Library to run IO operations asynchronously")
514 (description "Async provides a library to run IO operations
515asynchronously, and wait for their results. It is a higher-level interface
516over threads in Haskell, in which @code{Async a} is a concurrent thread that
517will eventually deliver a value of type @code{a}.")
7b01a977
RV
518 (license license:bsd-3)))
519
9ad9ec2e
AG
520(define-public ghc-atomic-primops
521 (package
522 (name "ghc-atomic-primops")
af16c6b0 523 (version "0.8.3")
9ad9ec2e
AG
524 (source
525 (origin
526 (method url-fetch)
527 (uri (string-append "https://hackage.haskell.org/package/atomic-primops"
528 "/atomic-primops-" version ".tar.gz"))
529 (sha256
530 (base32
af16c6b0 531 "03n5dmyplrqgbyf8dr91izkxci7gkl3i3fnp82i5ld869zrgjfh0"))))
9ad9ec2e
AG
532 (build-system haskell-build-system)
533 (inputs `(("ghc-primitive" ,ghc-primitive)))
534 (home-page "https://github.com/rrnewton/haskell-lockfree/wiki")
535 (synopsis "Safe approach to CAS and other atomic ops")
536 (description
537 "GHC 7.4 introduced a new @code{casMutVar} PrimOp which is difficult to
538use safely, because pointer equality is a highly unstable property in Haskell.
539This library provides a safer method based on the concept of @code{Ticket}s.")
540 (license license:bsd-3)))
541
dddbc90c 542(define-public ghc-atomic-write
79fcc5e5 543 (package
dddbc90c 544 (name "ghc-atomic-write")
c09d1e62 545 (version "0.2.0.6")
79fcc5e5
RV
546 (source
547 (origin
548 (method url-fetch)
dddbc90c
RV
549 (uri (string-append
550 "https://hackage.haskell.org/package/atomic-write/atomic-write-"
551 version
552 ".tar.gz"))
79fcc5e5
RV
553 (sha256
554 (base32
c09d1e62 555 "1xs3shwnlj8hmnm3q6jc8nv78z0481i5n4hrqqdmbpx8grvlnqyl"))))
dddbc90c
RV
556 (build-system haskell-build-system)
557 (inputs
558 `(("ghc-temporary" ,ghc-temporary)
559 ("ghc-unix-compat" ,ghc-unix-compat)))
560 (native-inputs
561 `(("ghc-temporary" ,ghc-temporary)
562 ("ghc-unix-compat" ,ghc-unix-compat)
563 ("ghc-hspec" ,ghc-hspec)
564 ("hspec-discover" ,hspec-discover)))
565 (home-page "https://github.com/stackbuilders/atomic-write")
566 (synopsis "Atomically write to a file")
567 (description
568 "Atomically write to a file on POSIX-compliant systems while preserving
569permissions. @code{mv} is an atomic operation. This makes it simple to write
570to a file atomically just by using the @code{mv} operation. However, this
571will destroy the permissions on the original file. This library preserves
572permissions while atomically writing to a file.")
573 (license license:expat)))
574
b7250901
JS
575(define-public ghc-atomic-write-0.2.0.7
576 (package
577 (inherit ghc-atomic-write)
578 (version "0.2.0.7")
579 (source
580 (origin
581 (inherit (package-source ghc-atomic-write))
582 (uri (string-append
583 "https://hackage.haskell.org/package/atomic-write/atomic-write-"
584 version
585 ".tar.gz"))
586 (sha256
587 (base32
588 "03cn3ii74h0w3g4h78xsx9v2sn58r3qsr2dbdwq340xwhiwcgxdm"))))))
589
dddbc90c
RV
590(define-public ghc-attoparsec
591 (package
592 (name "ghc-attoparsec")
511c3204 593 (version "0.13.2.3")
dddbc90c
RV
594 (source
595 (origin
596 (method url-fetch)
597 (uri (string-append
598 "https://hackage.haskell.org/package/attoparsec/attoparsec-"
599 version
600 ".tar.gz"))
601 (sha256
602 (base32
511c3204 603 "1ngjn9h5n0vyki0m2jir4mg85875ysswy9hznpmj1r856mqwc6ix"))))
79fcc5e5 604 (build-system haskell-build-system)
79fcc5e5 605 (arguments
dddbc90c
RV
606 `(#:phases
607 (modify-phases %standard-phases
608 (add-after 'unpack 'patch-for-newer-quickcheck
609 (lambda _
610 (substitute* "attoparsec.cabal"
611 (("QuickCheck >= 2\\.7 && < 2\\.10")
612 "QuickCheck >= 2.7 && < 2.12"))
613 ;; This test fails because of the newer QuickCheck:
614 ;; <https://github.com/bos/attoparsec/issues/134>.
615 (substitute* "tests/QC/ByteString.hs"
616 ((", testProperty \"satisfyWith\" satisfyWith")
617 "")))))))
618 (inputs
619 `(("ghc-scientific" ,ghc-scientific)))
620 (native-inputs
621 `(("ghc-tasty" ,ghc-tasty)
622 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
623 ("ghc-quickcheck" ,ghc-quickcheck)
624 ("ghc-quickcheck-unicode" ,ghc-quickcheck-unicode)
625 ("ghc-vector" ,ghc-vector)))
626 (home-page "https://github.com/bos/attoparsec")
627 (synopsis "Fast combinator parsing for bytestrings and text")
628 (description "This library provides a fast parser combinator library,
629aimed particularly at dealing efficiently with network protocols and
630complicated text/binary file formats.")
79fcc5e5
RV
631 (license license:bsd-3)))
632
dddbc90c 633(define-public ghc-attoparsec-bootstrap
6b34d01c 634 (package
dddbc90c
RV
635 (inherit ghc-attoparsec)
636 (name "ghc-attoparsec-bootstrap")
637 (arguments `(#:tests? #f))
638 (inputs
639 `(("ghc-scientific" ,ghc-scientific-bootstrap)))
640 (native-inputs '())
799d8d3c 641 (properties '((hidden? #t)))))
dddbc90c
RV
642
643(define-public ghc-attoparsec-iso8601
644 (package
645 (name "ghc-attoparsec-iso8601")
97f267c8 646 (version "1.0.1.0")
6b34d01c
RV
647 (source
648 (origin
649 (method url-fetch)
650 (uri (string-append "https://hackage.haskell.org/package/"
dddbc90c
RV
651 "attoparsec-iso8601-" version "/"
652 "attoparsec-iso8601-" version ".tar.gz"))
6b34d01c
RV
653 (sha256
654 (base32
97f267c8 655 "0hj10w15qp2z5bz2v4xahhmbgzclpyfi5l2sv97wqycysg9gp7s9"))))
6b34d01c 656 (build-system haskell-build-system)
dddbc90c
RV
657 (arguments
658 `(#:cabal-revision
97f267c8 659 ("1" "1rjhscmczgs1bwyqx7lvkm8py3ylxjd2797mrzgnq60fvm292750")))
dddbc90c
RV
660 (inputs `(("ghc-attoparsec" ,ghc-attoparsec)
661 ("ghc-base-compat" ,ghc-base-compat)))
662 (home-page "https://github.com/bos/aeson")
663 (synopsis "Parse ISO 8601 dates")
664 (description "Haskell library for parsing of ISO 8601 dates, originally
665from aeson.")
6b34d01c 666 (license license:bsd-3)))
b57e99f5 667
dddbc90c 668(define-public ghc-auto-update
b57e99f5 669 (package
dddbc90c 670 (name "ghc-auto-update")
11b1b6cd 671 (version "0.1.6")
dddbc90c
RV
672 (source
673 (origin
674 (method url-fetch)
675 (uri (string-append
676 "https://hackage.haskell.org/package/auto-update/auto-update-"
677 version
678 ".tar.gz"))
679 (sha256
680 (base32
11b1b6cd 681 "1i36xc2i34aync8271x3pv515l3zb53i518dybn8ghqkhzf27q7l"))))
dddbc90c 682 (build-system haskell-build-system)
11b1b6cd
TS
683 (native-inputs
684 `(("ghc-hspec" ,ghc-hspec)
685 ("ghc-hunit" ,ghc-hunit)
686 ("ghc-retry" ,ghc-retry)
687 ("hspec-discover" ,hspec-discover)))
dddbc90c
RV
688 (home-page "https://github.com/yesodweb/wai")
689 (synopsis "Efficiently run periodic, on-demand actions")
690 (description "This library provides mechanisms to efficiently run
691periodic, on-demand actions in Haskell.")
692 (license license:expat)))
693
694(define-public ghc-aws
695 (package
696 (name "ghc-aws")
697 (version "0.20")
b57e99f5
RV
698 (source
699 (origin
700 (method url-fetch)
701 (uri (string-append "https://hackage.haskell.org/package/"
dddbc90c
RV
702 "aws-" version "/aws-" version ".tar.gz"))
703 (sha256 (base32
704 "0pwpabmypi1w8rni9qfwabgn95jks4h8dyw6889mn8xzsrhdhyf0"))))
705 (build-system haskell-build-system)
706 (arguments `(#:tests? #f)) ; Tests require AWS credentials.
707 (inputs
708 `(("ghc-aeson" ,ghc-aeson)
709 ("ghc-attoparsec" ,ghc-attoparsec)
710 ("ghc-base16-bytestring" ,ghc-base16-bytestring)
711 ("ghc-base64-bytestring" ,ghc-base64-bytestring)
712 ("ghc-blaze-builder" ,ghc-blaze-builder)
713 ("ghc-byteable" ,ghc-byteable)
714 ("ghc-case-insensitive" ,ghc-case-insensitive)
715 ("ghc-cereal" ,ghc-cereal)
716 ("ghc-conduit" ,ghc-conduit)
717 ("ghc-conduit-extra" ,ghc-conduit-extra)
718 ("ghc-cryptonite" ,ghc-cryptonite)
719 ("ghc-data-default" ,ghc-data-default)
720 ("ghc-http-conduit" ,ghc-http-conduit)
721 ("ghc-http-types" ,ghc-http-types)
722 ("ghc-lifted-base" ,ghc-lifted-base)
723 ("ghc-monad-control" ,ghc-monad-control)
724 ("ghc-network" ,ghc-network)
725 ("ghc-old-locale" ,ghc-old-locale)
726 ("ghc-safe" ,ghc-safe)
727 ("ghc-scientific" ,ghc-scientific)
728 ("ghc-tagged" ,ghc-tagged)
729 ("ghc-unordered-containers" ,ghc-unordered-containers)
730 ("ghc-utf8-string" ,ghc-utf8-string)
731 ("ghc-vector" ,ghc-vector)
732 ("ghc-xml-conduit" ,ghc-xml-conduit)))
733 (native-inputs
734 `(("ghc-quickcheck" ,ghc-quickcheck)
735 ("ghc-errors" ,ghc-errors)
736 ("ghc-http-client" ,ghc-http-client)
737 ("ghc-http-client-tls" ,ghc-http-client-tls)
738 ("ghc-quickcheck-instances" ,ghc-quickcheck-instances)
739 ("ghc-tasty" ,ghc-tasty)
740 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
741 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
742 ("ghc-conduit-combinators" ,ghc-conduit-combinators)))
743 (home-page "https://github.com/aristidb/aws")
744 (synopsis "Amazon Web Services for Haskell")
745 (description "This package attempts to provide support for using
746Amazon Web Services like S3 (storage), SQS (queuing) and others to
747Haskell programmers. The ultimate goal is to support all Amazon
748Web Services.")
749 (license license:bsd-3)))
750
751(define-public ghc-base16-bytestring
752 (package
753 (name "ghc-base16-bytestring")
754 (version "0.1.1.6")
755 (source
756 (origin
757 (method url-fetch)
758 (uri (string-append
759 "https://hackage.haskell.org/package/base16-bytestring/"
760 "base16-bytestring-" version ".tar.gz"))
b57e99f5
RV
761 (sha256
762 (base32
dddbc90c 763 "0jf40m3yijqw6wd1rwwvviww46fasphaay9m9rgqyhf5aahnbzjs"))))
b57e99f5 764 (build-system haskell-build-system)
dddbc90c
RV
765 (home-page "https://github.com/bos/base16-bytestring")
766 (synopsis "Fast base16 (hex) encoding and decoding for ByteStrings")
767 (description
768 "This package provides a Haskell library for working with base16-encoded
769data quickly and efficiently, using the ByteString type.")
b57e99f5 770 (license license:bsd-3)))
bbf8bf31 771
dddbc90c 772(define-public ghc-base64-bytestring
bbf8bf31 773 (package
dddbc90c
RV
774 (name "ghc-base64-bytestring")
775 (version "1.0.0.2")
bbf8bf31
RV
776 (source
777 (origin
778 (method url-fetch)
dddbc90c
RV
779 (uri (string-append
780 "https://hackage.haskell.org/package/base64-bytestring/base64-bytestring-"
781 version
782 ".tar.gz"))
783 (sha256
784 (base32 "13305brzlac24pifiqd5a2z10c6k6amhpdy9cc0z5ryrkgnm8dhr"))))
785 (build-system haskell-build-system)
786 (arguments `(#:tests? #f)) ; FIXME: testing libraries are missing.
787 (home-page "https://github.com/bos/base64-bytestring")
788 (synopsis "Base64 encoding and decoding for ByteStrings")
789 (description "This library provides fast base64 encoding and decoding for
790Haskell @code{ByteString}s.")
791 (license license:bsd-3)))
792
793(define-public ghc-base-compat
794 (package
795 (name "ghc-base-compat")
4daaa371 796 (version "0.10.5")
dddbc90c
RV
797 (source
798 (origin
799 (method url-fetch)
800 (uri (string-append
801 "https://hackage.haskell.org/package/base-compat/base-compat-"
802 version
803 ".tar.gz"))
bbf8bf31
RV
804 (sha256
805 (base32
4daaa371 806 "0hgvlqcr852hfp52jp99snhbj550mvxxpi8qn15d8ml9aqhyl2lr"))))
bbf8bf31 807 (build-system haskell-build-system)
e2b021df 808 (outputs '("out" "static" "doc"))
bbf8bf31 809 (native-inputs
dddbc90c
RV
810 `(("ghc-quickcheck" ,ghc-quickcheck)
811 ("ghc-hspec" ,ghc-hspec)
812 ("hspec-discover" ,hspec-discover)))
813 (home-page "https://hackage.haskell.org/package/base-compat")
814 (synopsis "Haskell compiler compatibility library")
815 (description "This library provides functions available in later versions
816of base to a wider range of compilers, without requiring the use of CPP
817pragmas in your code.")
818 (license license:bsd-3)))
819
f9d78c7f
TS
820(define-public ghc-base-compat-batteries
821 (package
822 (name "ghc-base-compat-batteries")
823 (version "0.10.5")
824 (source
825 (origin
826 (method url-fetch)
827 (uri (string-append "https://hackage.haskell.org/package/"
828 "base-compat-batteries/base-compat-batteries-"
829 version ".tar.gz"))
830 (sha256
831 (base32
832 "1vkhc639vqiv5p39jn1v312z32i7yk5q2lf0ap4jxl1v8p8wyp8p"))))
833 (build-system haskell-build-system)
834 (inputs
835 `(("ghc-base-compat" ,ghc-base-compat)))
836 (native-inputs
837 `(("ghc-hspec" ,ghc-hspec)
838 ("ghc-quickcheck" ,ghc-quickcheck)
839 ("hspec-discover" ,hspec-discover)))
840 (arguments
841 `(#:cabal-revision
842 ("1" "15sn2qc8k0hxbb2nai341kkrci98hlhzcj2ci087m0zxcg5jcdbp")))
3ef91e15 843 (home-page "https://hackage.haskell.org/package/base-compat-batteries")
f9d78c7f
TS
844 (synopsis "base-compat with extra batteries")
845 (description "This library provides functions available in later
846versions of @code{base} to a wider range of compilers, without requiring
847you to use CPP pragmas in your code. This package provides the same API
848as the @code{base-compat} library, but depends on compatibility
849packages (such as @code{semigroups}) to offer a wider support window
850than @code{base-compat}, which has no dependencies.")
851 (license license:expat)))
852
dddbc90c
RV
853(define-public ghc-basement
854 (package
855 (name "ghc-basement")
8b56c1fd 856 (version "0.0.11")
dddbc90c
RV
857 (source
858 (origin
859 (method url-fetch)
860 (uri (string-append "https://hackage.haskell.org/package/"
861 "basement/basement-" version ".tar.gz"))
862 (sha256
863 (base32
8b56c1fd 864 "0srlws74yiraqaapgcjd9p5d1fwb3zr9swcz74jpjm55fls2nn37"))))
dddbc90c 865 (build-system haskell-build-system)
05f7f8be 866 (outputs '("out" "static" "doc"))
dddbc90c
RV
867 (home-page "https://github.com/haskell-foundation/foundation")
868 (synopsis "Basic primitives for Foundation starter pack")
869 (description
870 "This package contains basic primitives for the Foundation set of
871packages.")
872 (license license:bsd-3)))
873
874(define-public ghc-base-orphans
875 (package
876 (name "ghc-base-orphans")
780477fb 877 (version "0.8.1")
dddbc90c
RV
878 (source
879 (origin
880 (method url-fetch)
881 (uri (string-append
882 "https://hackage.haskell.org/package/base-orphans/base-orphans-"
883 version
884 ".tar.gz"))
885 (sha256
886 (base32
780477fb 887 "1nwr9av27i9p72k0sn96mw3ywdczw65dy5gd5wxpabhhxlxdcas4"))))
dddbc90c
RV
888 (build-system haskell-build-system)
889 (native-inputs
890 `(("ghc-quickcheck" ,ghc-quickcheck)
891 ("ghc-hspec" ,ghc-hspec)
892 ("hspec-discover" ,hspec-discover)))
893 (home-page "https://hackage.haskell.org/package/base-orphans")
894 (synopsis "Orphan instances for backwards compatibility")
895 (description "This package defines orphan instances that mimic instances
896available in later versions of base to a wider (older) range of compilers.")
897 (license license:bsd-3)))
898
899(define-public ghc-base-prelude
900 (package
901 (name "ghc-base-prelude")
902 (version "1.3")
903 (source
904 (origin
905 (method url-fetch)
906 (uri (string-append "https://hackage.haskell.org/package/"
907 "base-prelude-" version "/"
908 "base-prelude-" version ".tar.gz"))
909 (sha256
910 (base32
911 "1zk728sd09hh2r4xwz4lazsrrgg5cshydn64932sm0vckplndk73"))))
912 (build-system haskell-build-system)
3d7ee2f8 913 (outputs '("out" "static" "doc"))
dddbc90c
RV
914 (home-page "https://github.com/nikita-volkov/base-prelude")
915 (synopsis "The most complete prelude formed solely from the Haskell's base
916package")
917 (description "This Haskell package aims to reexport all the non-conflicting
918and most general definitions from the \"base\" package.
919
920This includes APIs for applicatives, arrows, monoids, foldables, traversables,
921exceptions, generics, ST, MVars and STM.
922
923This package will never have any dependencies other than \"base\".
924
925Versioning policy:
926
927The versioning policy of this package deviates from PVP in the sense
928that its exports in part are transitively determined by the version of \"base\".
929Therefore it's recommended for the users of @code{ghc-base-prelude} to specify
930the bounds of \"base\" as well.")
931 (license license:expat)))
932
933(define-public ghc-base-unicode-symbols
934 (package
935 (name "ghc-base-unicode-symbols")
936 (version "0.2.3")
937 (source
938 (origin
939 (method url-fetch)
940 (uri (string-append
941 "mirror://hackage/package/base-unicode-symbols/base-unicode-symbols-"
942 version
943 ".tar.gz"))
944 (sha256
945 (base32
946 "1ia6li7qjg1zkak4gf6mnbshw45mq9bfjr0jch58ds0lscmvwyzf"))))
947 (build-system haskell-build-system)
228d2901 948 (home-page "https://wiki.haskell.org/Unicode-symbols")
dddbc90c
RV
949 (synopsis "Unicode alternatives for common functions and operators")
950 (description "This package defines new symbols for a number of functions,
951operators and types in the base package. All symbols are documented with
952their actual definition and information regarding their Unicode code point.
953They should be completely interchangeable with their definitions. For
954further Unicode goodness you can enable the @code{UnicodeSyntax}
955@url{https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/glasgow_exs.html#unicode-syntax,
956language extension}. This extension enables Unicode characters to be used to
957stand for certain ASCII character sequences, i.e. → instead of @code{->},
958∀ instead of @code{forall} and many others.")
959 (license license:bsd-3)))
960
ec8491b0
ASM
961(define-public ghc-basic-prelude
962 (package
963 (name "ghc-basic-prelude")
964 (version "0.7.0")
965 (source
966 (origin
967 (method url-fetch)
968 (uri (string-append
969 "https://hackage.haskell.org/package/basic-prelude/"
970 "basic-prelude-" version ".tar.gz"))
971 (sha256
972 (base32
973 "0yckmnvm6i4vw0mykj4fzl4ldsf67v8d2h0vp1bakyj84n4myx8h"))))
974 (build-system haskell-build-system)
975 (inputs
976 `(("ghc-hashable" ,ghc-hashable)
977 ("ghc-unordered-containers"
978 ,ghc-unordered-containers)
979 ("ghc-vector" ,ghc-vector)))
980 (home-page "https://github.com/snoyberg/basic-prelude#readme")
981 (synopsis "Enhanced core prelude; a common foundation for alternate preludes")
982 (description
983 "The premise of basic-prelude is that there are a lot of very commonly
984desired features missing from the standard Prelude, such as commonly used
985operators (<$> and >=>, for instance) and imports for common datatypes
986(e.g., ByteString and Vector). At the same time, there are lots of other
987components which are more debatable, such as providing polymorphic versions
988of common functions.
989
990So basic-prelude is intended to give a common foundation for a number of
991alternate preludes. The package provides two modules: CorePrelude provides
992the common ground for other preludes to build on top of, while BasicPrelude
993exports CorePrelude together with commonly used list functions to provide a
994drop-in replacement for the standard Prelude.
995
996Users wishing to have an improved Prelude can use BasicPrelude. Developers
997wishing to create a new prelude should use CorePrelude.")
998 (license license:expat)))
999
7d06279e
KM
1000(define-public ghc-bencode
1001 (package
1002 (name "ghc-bencode")
1003 (version "0.6.1.1")
1004 (source
1005 (origin
1006 (method url-fetch)
1007 (uri (string-append
1008 "https://hackage.haskell.org/package/bencode/bencode-"
1009 version ".tar.gz"))
1010 (sha256
1011 (base32 "0znv0y3b3zm5jvhlvj5f5s7y93db67j9yd59w1bnrw2pqv30gqaq"))))
1012 (build-system haskell-build-system)
1013 (inputs
1014 `(("ghc-transformers-compat" ,ghc-transformers-compat)))
1015 (native-inputs
1016 `(("ghc-hspec" ,ghc-hspec)
1017 ("ghc-quickcheck" ,ghc-quickcheck)))
1018 (home-page "https://hackage.haskell.org/package/bencode")
1019 (synopsis "Parsers and printers for bencoded data")
1020 (description
1021 "This library provides parsers and printers for bencoded data. Bencode
1022is the encoding used by the peer-to-peer file sharing system BitTorrent for
1023storing and transmitting loosely structured data.")
1024 (license license:bsd-3)))
1025
dddbc90c
RV
1026(define-public ghc-bifunctors
1027 (package
1028 (name "ghc-bifunctors")
0beaec66 1029 (version "5.5.5")
dddbc90c
RV
1030 (source
1031 (origin
1032 (method url-fetch)
1033 (uri (string-append
1034 "https://hackage.haskell.org/package/bifunctors/bifunctors-"
1035 version
1036 ".tar.gz"))
1037 (sha256
1038 (base32
0beaec66 1039 "0rn47q8dzv0g1fyams99p4py6q0asxdc50q9k0nj497brk738xcb"))))
dddbc90c
RV
1040 (build-system haskell-build-system)
1041 (inputs
1042 `(("ghc-base-orphans" ,ghc-base-orphans)
1043 ("ghc-comonad" ,ghc-comonad)
1044 ("ghc-th-abstraction" ,ghc-th-abstraction)
1045 ("ghc-transformers-compat" ,ghc-transformers-compat)
1046 ("ghc-tagged" ,ghc-tagged)
1047 ("ghc-semigroups" ,ghc-semigroups)))
1048 (native-inputs
1049 `(("ghc-hspec" ,ghc-hspec)
1050 ("hspec-discover" ,hspec-discover)
1051 ("ghc-quickcheck" ,ghc-quickcheck)))
1052 (home-page "https://github.com/ekmett/bifunctors/")
1053 (synopsis "Bifunctors for Haskell")
1054 (description "This package provides bifunctors for Haskell.")
1055 (license license:bsd-3)))
1056
1057(define-public ghc-bindings-dsl
1058 (package
1059 (name "ghc-bindings-dsl")
1060 (version "1.0.25")
1061 (source
1062 (origin
1063 (method url-fetch)
1064 (uri (string-append "https://hackage.haskell.org/package/bindings-DSL/"
1065 "bindings-DSL-" version ".tar.gz"))
1066 (sha256
1067 (base32
1068 "0kqrd78nspl3lk4a0fqn47d8dirjg3b24dkvkigcrlb81hw35pk3"))))
1069 (build-system haskell-build-system)
1070 (home-page "https://github.com/jwiegley/bindings-dsl/wiki")
1071 (synopsis "FFI domain specific language, on top of hsc2hs")
1072 (description
1073 "This is a set of macros to be used when writing Haskell FFI. They were
1074designed to be able to fully describe C interfaces, so that @code{hsc2hs} can
1075extract from them all Haskell code needed to mimic such interfaces. All
1076Haskell names used are automatically derived from C names, structures are
1077mapped to Haskell instances of @code{Storable}, and there are also macros you
1078can use with C code to help write bindings to inline functions or macro
1079functions.")
1080 (license license:bsd-3)))
1081
64f42786
TS
1082(define-public ghc-bitarray
1083 (package
1084 (name "ghc-bitarray")
1085 (version "0.0.1.1")
1086 (source
1087 (origin
1088 (method url-fetch)
1089 (uri (string-append "https://hackage.haskell.org/package/"
1090 "bitarray/bitarray-" version ".tar.gz"))
1091 (sha256
1092 (base32
1093 "00nqd62cbh42qqqvcl6iv1i9kbv0f0mkiygv4j70wfh5cl86yzxj"))))
1094 (build-system haskell-build-system)
1095 (arguments
1096 `(#:cabal-revision
1097 ("1" "10fk92v9afjqk43zi621jxl0n8kci0xjj32lz3vqa9xbh67zjz45")))
1098 (home-page "https://hackage.haskell.org/package/bitarray")
1099 (synopsis "Mutable and immutable bit arrays")
1100 (description "The package provides mutable and immutable bit arrays.")
1101 (license license:bsd-3)))
1102
dddbc90c
RV
1103(define-public ghc-blaze-builder
1104 (package
1105 (name "ghc-blaze-builder")
1106 (version "0.4.1.0")
1107 (source
1108 (origin
1109 (method url-fetch)
1110 (uri (string-append
1111 "https://hackage.haskell.org/package/blaze-builder/blaze-builder-"
1112 version
1113 ".tar.gz"))
1114 (sha256
1115 (base32
1116 "05681dih2d8s96an945wkbwl05w8ddbcfx8n3r3ck79ydyb8pz4i"))))
1117 (build-system haskell-build-system)
1118 (arguments `(#:tests? #f)) ; FIXME: Missing test libraries.
1119 (inputs
1120 `(("ghc-utf8-string" ,ghc-utf8-string)))
1121 (home-page "https://github.com/lpsmith/blaze-builder")
1122 (synopsis "Efficient buffered output")
1123 (description "This library provides an implementation of the older
1124@code{blaze-builder} interface in terms of the new builder that shipped with
1125@code{bytestring-0.10.4.0}. This implementation is mostly intended as a
1126bridge to the new builder, so that code that uses the old interface can
1127interoperate with code that uses the new implementation.")
1128 (license license:bsd-3)))
1129
1130(define-public ghc-blaze-markup
1131 (package
1132 (name "ghc-blaze-markup")
7d30fcf3 1133 (version "0.8.2.3")
dddbc90c
RV
1134 (source
1135 (origin
1136 (method url-fetch)
1137 (uri (string-append "https://hackage.haskell.org/package/"
1138 "blaze-markup/blaze-markup-"
1139 version ".tar.gz"))
1140 (sha256
1141 (base32
7d30fcf3 1142 "1g9m7ansj7fdyzhz1wqkbzn5amjm50vjgjdwkbjc5qqhagnv1y3j"))))
dddbc90c
RV
1143 (build-system haskell-build-system)
1144 (arguments
1145 `(#:phases
1146 (modify-phases %standard-phases
1147 (add-before 'configure 'update-constraints
1148 (lambda _
1149 (substitute* "blaze-markup.cabal"
1150 (("tasty >= 1\\.0 && < 1\\.1")
1151 "tasty >= 1.0 && < 1.2")))))))
1152 (inputs
1153 `(("ghc-blaze-builder" ,ghc-blaze-builder)))
1154 (native-inputs
1155 `(("ghc-hunit" ,ghc-hunit)
1156 ("ghc-quickcheck" ,ghc-quickcheck)
1157 ("ghc-tasty" ,ghc-tasty)
1158 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
1159 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
1160 (home-page "https://jaspervdj.be/blaze")
1161 (synopsis "Fast markup combinator library for Haskell")
1162 (description "This library provides core modules of a markup combinator
1163library for Haskell.")
1164 (license license:bsd-3)))
1165
1166(define-public ghc-bloomfilter
1167 (package
1168 (name "ghc-bloomfilter")
1169 (version "2.0.1.0")
1170 (source
1171 (origin
1172 (method url-fetch)
1173 (uri (string-append "https://hackage.haskell.org/package/"
1174 "bloomfilter/bloomfilter-" version ".tar.gz"))
1175 (sha256
1176 (base32
1177 "03vrmncg1c10a2wcg5skq30m1yiknn7nwxz2gblyyfaxglshspkc"))))
1178 (build-system haskell-build-system)
1179 (native-inputs
1180 `(("ghc-quickcheck" ,ghc-quickcheck)
1181 ("ghc-random" ,ghc-random)
1182 ("ghc-test-framework" ,ghc-test-framework)
1183 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
1184 (home-page "https://github.com/bos/bloomfilter")
1185 (synopsis "Pure and impure Bloom filter implementations")
1186 (description "This package provides both mutable and immutable Bloom
1187filter data types, along with a family of hash functions and an easy-to-use
1188interface.")
1189 (license license:bsd-3)))
1190
1191(define-public ghc-boxes
1192 (package
1193 (name "ghc-boxes")
1194 (version "0.1.5")
1195 (source
1196 (origin
1197 (method url-fetch)
1198 (uri (string-append "https://hackage.haskell.org/package/boxes/boxes-"
1199 version ".tar.gz"))
1200 (sha256
1201 (base32 "1hsnmw95i58d4bkpxby3ddsj1cawypw4mdyb18m393s5i8p7iq9q"))))
1202 (build-system haskell-build-system)
1203 (inputs
1204 `(("ghc-split" ,ghc-split)
1205 ("ghc-quickcheck" ,ghc-quickcheck)))
1206 (home-page "https://hackage.haskell.org/package/boxes")
1207 (synopsis "2D text pretty-printing library")
1208 (description
1209 "Boxes is a pretty-printing library for laying out text in two dimensions,
1210using a simple box model.")
1211 (license license:bsd-3)))
1212
1213(define-public ghc-byteable
1214 (package
1215 (name "ghc-byteable")
1216 (version "0.1.1")
1217 (source (origin
1218 (method url-fetch)
1219 (uri (string-append "https://hackage.haskell.org/package/"
1220 "byteable/byteable-" version ".tar.gz"))
1221 (sha256
1222 (base32
1223 "1qizg0kxxjqnd3cbrjhhidk5pbbciz0pb3z5kzikjjxnnnhk8fr4"))))
1224 (build-system haskell-build-system)
1225 (home-page "https://github.com/vincenthz/hs-byteable")
1226 (synopsis "Type class for sequence of bytes")
1227 (description
1228 "This package provides an abstract class to manipulate sequence of bytes.
1229The use case of this class is abstracting manipulation of types that are just
1230wrapping a bytestring with stronger and more meaniful name.")
1231 (license license:bsd-3)))
1232
1233(define-public ghc-byteorder
1234 (package
1235 (name "ghc-byteorder")
1236 (version "1.0.4")
1237 (source
1238 (origin
1239 (method url-fetch)
1240 (uri (string-append
1241 "https://hackage.haskell.org/package/byteorder/byteorder-"
1242 version
1243 ".tar.gz"))
1244 (sha256
1245 (base32
1246 "06995paxbxk8lldvarqpb3ygcjbg4v8dk4scib1rjzwlhssvn85x"))))
1247 (build-system haskell-build-system)
1248 (home-page
1249 "http://community.haskell.org/~aslatter/code/byteorder")
1250 (synopsis
1251 "Exposes the native endianness of the system")
1252 (description
1253 "This package is for working with the native byte-ordering of the
1254system.")
1255 (license license:bsd-3)))
1256
1257(define-public ghc-bytes
1258 (package
1259 (name "ghc-bytes")
1260 (version "0.15.5")
1261 (source
1262 (origin
1263 (method url-fetch)
1264 (uri
1265 (string-append "https://hackage.haskell.org/package/bytes-"
1266 version "/bytes-"
1267 version ".tar.gz"))
1268 (file-name (string-append name "-" version ".tar.gz"))
1269 (sha256
1270 (base32
1271 "063il2vrn0p88r9gzndh4ijs0mxj37khkc9ym9bqdsv7ngk3b683"))))
1272 (build-system haskell-build-system)
1273 (inputs `(("ghc-cereal" ,ghc-cereal)
1274 ("cabal-doctest" ,cabal-doctest)
1275 ("ghc-doctest" ,ghc-doctest)
1276 ("ghc-scientific" ,ghc-scientific)
1277 ("ghc-transformers-compat" ,ghc-transformers-compat)
1278 ("ghc-unordered-containers" ,ghc-unordered-containers)
1279 ("ghc-void" ,ghc-void)
1280 ("ghc-vector" ,ghc-vector)))
1281 (synopsis "Serialization between @code{binary} and @code{cereal}")
1282 (description "This package provides a simple compatibility shim that lets
1283you work with both @code{binary} and @code{cereal} with one chunk of
1284serialization code.")
1285 (home-page "https://hackage.haskell.org/package/bytes")
1286 (license license:bsd-3)))
1287
1288(define-public ghc-bytestring-builder
1289 (package
1290 (name "ghc-bytestring-builder")
13ac8a7f 1291 (version "0.10.8.2.0")
dddbc90c
RV
1292 (source
1293 (origin
1294 (method url-fetch)
1295 (uri (string-append
1296 "https://hackage.haskell.org/package/bytestring-builder"
1297 "/bytestring-builder-" version ".tar.gz"))
1298 (sha256
1299 (base32
13ac8a7f 1300 "0grcrgwwwcvwrs9az7l4d3kf0lsqfa9qpmjzf6iyanvwn9nyzyi7"))))
dddbc90c
RV
1301 (build-system haskell-build-system)
1302 (arguments `(#:haddock? #f)) ; Package contains no documentation.
1303 (home-page "https://hackage.haskell.org/package/bytestring-builder")
1304 (synopsis "The new bytestring builder, packaged outside of GHC")
1305 (description "This package provides the bytestring builder that is
1306debuting in bytestring-0.10.4.0, which should be shipping with GHC 7.8.
1307Compatibility package for older packages.")
1308 (license license:bsd-3)))
1309
1310(define-public ghc-bytestring-handle
1311 (package
1312 (name "ghc-bytestring-handle")
1313 (version "0.1.0.6")
1314 (source
1315 (origin
1316 (method url-fetch)
1317 (uri (string-append
1318 "https://hackage.haskell.org/package/bytestring-handle/bytestring-handle-"
1319 version ".tar.gz"))
1320 (sha256
1321 (base32
1322 "18f17aja1ivhr3zyg2cccn2m03hdn5jf5410dndkhf12gvgiqs7y"))))
1323 (build-system haskell-build-system)
1324 (arguments
853748c4
TS
1325 `(#:cabal-revision
1326 ("1" "0x11aj6w1lijh84jcdq1qgyvdnc7i9ivbyq4wf9rxicg57viisz9")
1327 #:phases
dddbc90c
RV
1328 (modify-phases %standard-phases
1329 (add-before 'configure 'update-constraints
1330 (lambda _
1331 (substitute* "bytestring-handle.cabal"
1332 (("QuickCheck >= 2\\.1\\.2 && < 2\\.11")
853748c4 1333 "QuickCheck >= 2.1.2 && < 2.14")))))))
dddbc90c
RV
1334 (inputs
1335 `(("ghc-hunit" ,ghc-hunit)
1336 ("ghc-quickcheck" ,ghc-quickcheck)
1337 ("ghc-test-framework" ,ghc-test-framework)
1338 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
1339 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
1340 (home-page "https://hub.darcs.net/ganesh/bytestring-handle")
1341 (synopsis "ByteString-backed Handles")
1342 (description "ByteString-backed Handles") ; There is no description
1343 (license license:bsd-3)))
1344
1345(define-public ghc-bytestring-lexing
1346 (package
1347 (name "ghc-bytestring-lexing")
1348 (version "0.5.0.2")
1349 (source
1350 (origin
1351 (method url-fetch)
1352 (uri (string-append "https://hackage.haskell.org/package/"
1353 "bytestring-lexing/bytestring-lexing-"
1354 version ".tar.gz"))
1355 (sha256
1356 (base32
1357 "0wrzniawhgpphc6yx1v972gyqxdbv0pizaz9bafahrshyb9svy81"))))
1358 (build-system haskell-build-system)
1359 (home-page "http://code.haskell.org/~wren/")
1360 (synopsis "Parse and produce literals from strict or lazy bytestrings")
1361 (description
1362 "This package provides tools to parse and produce literals efficiently
1363from strict or lazy bytestrings.")
1364 (license license:bsd-2)))
1365
1366(define-public ghc-bzlib-conduit
1367 (package
1368 (name "ghc-bzlib-conduit")
5fba8d6d 1369 (version "0.3.0.2")
dddbc90c
RV
1370 (source
1371 (origin
1372 (method url-fetch)
1373 (uri (string-append "https://hackage.haskell.org/package/bzlib-conduit/"
1374 "bzlib-conduit-" version ".tar.gz"))
1375 (sha256
1376 (base32
5fba8d6d 1377 "0a21zin5plsl37hkxh2jv8cxwyjrbs2fy7n5cyrzgdaa7lmp6b7b"))))
dddbc90c
RV
1378 (build-system haskell-build-system)
1379 (inputs
1380 `(("ghc-bindings-dsl" ,ghc-bindings-dsl)
1381 ("ghc-conduit" ,ghc-conduit)
1382 ("ghc-data-default-class" ,ghc-data-default-class)
1383 ("ghc-resourcet" ,ghc-resourcet)))
1384 (native-inputs
1385 `(("ghc-hspec" ,ghc-hspec)
1386 ("ghc-random" ,ghc-random)))
1387 (home-page "https://github.com/snoyberg/bzlib-conduit")
1388 (synopsis "Streaming compression/decompression via conduits")
1389 (description
1390 "This package provides Haskell bindings to bzlib and Conduit support for
1391streaming compression and decompression.")
1392 (license license:bsd-3)))
1393
1394(define-public ghc-c2hs
1395 (package
1396 (name "ghc-c2hs")
1397 (version "0.28.6")
1398 (source
1399 (origin
1400 (method url-fetch)
1401 (uri (string-append
1402 "https://hackage.haskell.org/package/c2hs/c2hs-"
1403 version
1404 ".tar.gz"))
1405 (sha256
1406 (base32
1407 "1nplgxfin139x12sb656f5870rpdclrhzi8mq8pry035qld15pci"))))
1408 (build-system haskell-build-system)
1409 (inputs
1410 `(("ghc-language-c" ,ghc-language-c)
1411 ("ghc-dlist" ,ghc-dlist)))
1412 (native-inputs
1413 `(("ghc-test-framework" ,ghc-test-framework)
1414 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
1415 ("ghc-hunit" ,ghc-hunit)
a723d36d 1416 ("ghc-shelly" ,ghc-shelly)))
dddbc90c 1417 (arguments
bfebc598 1418 `(#:phases
dddbc90c
RV
1419 (modify-phases %standard-phases
1420 (add-before 'check 'set-cc
1421 ;; add a cc executable in the path, needed for some tests to pass
1422 (lambda* (#:key inputs #:allow-other-keys)
1423 (let ((gcc (assoc-ref inputs "gcc"))
1424 (tmpbin (tmpnam))
1425 (curpath (getenv "PATH")))
1426 (mkdir-p tmpbin)
1427 (symlink (which "gcc") (string-append tmpbin "/cc"))
1428 (setenv "PATH" (string-append tmpbin ":" curpath)))
1429 #t))
1430 (add-after 'check 'remove-cc
1431 ;; clean the tmp dir made in 'set-cc
1432 (lambda _
1433 (let* ((cc-path (which "cc"))
1434 (cc-dir (dirname cc-path)))
1435 (delete-file-recursively cc-dir)
1436 #t))))))
1437 (home-page "https://github.com/haskell/c2hs")
1438 (synopsis "Create Haskell bindings to C libraries")
1439 (description "C->Haskell assists in the development of Haskell bindings to
1440C libraries. It extracts interface information from C header files and
1441generates Haskell code with foreign imports and marshaling. Unlike writing
1442foreign imports by hand (or using hsc2hs), this ensures that C functions are
1443imported with the correct Haskell types.")
1444 (license license:gpl2)))
1445
1446(define-public ghc-cairo
1447 (package
1448 (name "ghc-cairo")
1449 (version "0.13.5.0")
1450 (source
1451 (origin
1452 (method url-fetch)
1453 (uri (string-append "https://hackage.haskell.org/package/cairo/"
1454 "cairo-" version ".tar.gz"))
1455 (sha256
1456 (base32
1457 "1wxylv4d8120ri0vgar168ikqa9m6533ipdwi38qlmxmw20ws2j2"))))
1458 (build-system haskell-build-system)
1459 (arguments
1460 `(#:modules ((guix build haskell-build-system)
1461 (guix build utils)
1462 (ice-9 match)
1463 (srfi srfi-26))
1464 #:phases
1465 (modify-phases %standard-phases
1466 ;; FIXME: This is a copy of the standard configure phase with a tiny
1467 ;; difference: this package needs the -package-db flag to be passed
1468 ;; to "runhaskell" in addition to the "configure" action, because it
1469 ;; depends on gtk2hs-buildtools, which provide setup hooks. Without
1470 ;; this option the Setup.hs file cannot be evaluated. The
1471 ;; haskell-build-system should be changed to pass "-package-db" to
1472 ;; "runhaskell" in any case.
1473 (replace 'configure
1474 (lambda* (#:key outputs inputs tests? (configure-flags '())
1475 #:allow-other-keys)
1476 (let* ((out (assoc-ref outputs "out"))
1477 (name-version (strip-store-file-name out))
1478 (input-dirs (match inputs
1479 (((_ . dir) ...)
1480 dir)
1481 (_ '())))
1482 (ghc-path (getenv "GHC_PACKAGE_PATH"))
1483 (params (append `(,(string-append "--prefix=" out))
1484 `(,(string-append "--libdir=" out "/lib"))
1485 `(,(string-append "--bindir=" out "/bin"))
1486 `(,(string-append
1487 "--docdir=" out
1488 "/share/doc/" name-version))
1489 '("--libsubdir=$compiler/$pkg-$version")
1490 '("--package-db=../package.conf.d")
1491 '("--global")
1492 `(,@(map
1493 (cut string-append "--extra-include-dirs=" <>)
1494 (search-path-as-list '("include") input-dirs)))
1495 `(,@(map
1496 (cut string-append "--extra-lib-dirs=" <>)
1497 (search-path-as-list '("lib") input-dirs)))
1498 (if tests?
1499 '("--enable-tests")
1500 '())
1501 configure-flags)))
1502 (unsetenv "GHC_PACKAGE_PATH")
1503 (apply invoke "runhaskell" "-package-db=../package.conf.d"
1504 "Setup.hs" "configure" params)
1505 (setenv "GHC_PACKAGE_PATH" ghc-path)
1506 #t))))))
1507 (inputs
1508 `(("ghc-utf8-string" ,ghc-utf8-string)
1509 ("cairo" ,cairo)))
1510 (native-inputs
1511 `(("ghc-gtk2hs-buildtools" ,ghc-gtk2hs-buildtools)
1512 ("pkg-config" ,pkg-config)))
1513 (home-page "http://projects.haskell.org/gtk2hs/")
1514 (synopsis "Haskell bindings to the Cairo vector graphics library")
1515 (description
1516 "Cairo is a library to render high quality vector graphics. There exist
1517various backends that allows rendering to Gtk windows, PDF, PS, PNG and SVG
1518documents, amongst others.")
1519 (license license:bsd-3)))
1520
1521(define-public ghc-call-stack
1522 (package
1523 (name "ghc-call-stack")
1524 (version "0.1.0")
1525 (source
1526 (origin
1527 (method url-fetch)
1528 (uri (string-append "https://hackage.haskell.org/package/"
1529 "call-stack/call-stack-"
1530 version ".tar.gz"))
1531 (sha256
1532 (base32
1533 "1qmihf5jafmc79sk52l6gpx75f5bnla2lp62kh3p34x3j84mwpzj"))))
1534 (build-system haskell-build-system)
1535 (inputs `(("ghc-nanospec" ,ghc-nanospec)))
1536 (home-page "https://github.com/sol/call-stack#readme")
1537 (synopsis "Use GHC call-stacks in a backward compatible way")
1538 (description "This package provides a compatibility layer for using GHC
1539call stacks with different versions of the compiler.")
1540 (license license:expat)))
1541
1542;; This is used as an input to ghc-hunit. We cannot use ghc-call-stack there,
1543;; because it depends on ghc-nanospec, which depends on ghc-hunit.
1544(define-public ghc-call-stack-boot
1545 (hidden-package
1546 (package
1547 (inherit ghc-call-stack)
1548 (arguments '(#:tests? #f))
1549 (inputs '()))))
1550
1551(define-public ghc-case-insensitive
1552 (package
1553 (name "ghc-case-insensitive")
1554 (version "1.2.0.11")
534d6caa 1555 (outputs '("out" "static" "doc"))
dddbc90c
RV
1556 (source
1557 (origin
1558 (method url-fetch)
1559 (uri (string-append
1560 "https://hackage.haskell.org/package/case-insensitive/case-insensitive-"
1561 version
1562 ".tar.gz"))
1563 (sha256
1564 (base32
1565 "1qrpxfirsxckg7jv28f5ah2qc8lh95hp7rnqkbqs1ahcwlbnvkm7"))))
1566 (build-system haskell-build-system)
1567 ;; these inputs are necessary to use this library
1568 (inputs
1569 `(("ghc-hashable" ,ghc-hashable)))
1570 (arguments
1571 `(#:tests? #f)) ; FIXME: currently missing libraries used for tests.
1572 (home-page
1573 "https://github.com/basvandijk/case-insensitive")
1574 (synopsis "Case insensitive string comparison")
1575 (description
1576 "The module @code{Data.CaseInsensitive} provides the @code{CI} type
1577constructor which can be parameterised by a string-like type like:
1578@code{String}, @code{ByteString}, @code{Text}, etc. Comparisons of values of
1579the resulting type will be insensitive to cases.")
1580 (license license:bsd-3)))
1581
1748f1b8
CH
1582(define-public ghc-cassava
1583 (package
1584 (name "ghc-cassava")
1585 (version "0.5.2.0")
1586 (source
1587 (origin
1588 (method url-fetch)
1589 (uri (string-append
1590 "https://hackage.haskell.org/package/cassava/cassava-"
1591 version
1592 ".tar.gz"))
1593 (sha256
1594 (base32
1595 "01h1zrdqb313cjd4rqm1107azzx4czqi018c2djf66a5i7ajl3dk"))))
1596 (build-system haskell-build-system)
1597 (inputs
1598 `(("ghc-attoparsec" ,ghc-attoparsec)
1599 ("ghc-hashable" ,ghc-hashable)
1600 ("ghc-scientific" ,ghc-scientific)
1601 ("ghc-unordered-containers" ,ghc-unordered-containers)
1602 ("ghc-vector" ,ghc-vector)
1603 ("ghc-only" ,ghc-only)
1604 ("ghc-text-short" ,ghc-text-short)
1605 ("ghc-bytestring-builder" ,ghc-bytestring-builder)))
1606 (native-inputs
1607 `(("ghc-hunit" ,ghc-hunit)
1608 ("ghc-quickcheck" ,ghc-quickcheck)
1609 ("ghc-quickcheck-instances" ,ghc-quickcheck-instances)
1610 ("ghc-test-framework" ,ghc-test-framework)
1611 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
1612 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
1613 (arguments
1614 `(#:cabal-revision
1615 ("1"
1616 "1ph8rf91z4nf1ryrh9s4gd1kq98jlgk2manwddkpch8k0n9xvfk4")
1617 #:configure-flags '("--flags=-bytestring--lt-0_10_4")))
1618 (home-page "https://github.com/haskell-hvr/cassava")
1619 (synopsis "CSV parsing and encoding library")
1620 (description
1621 "@code{cassava} is a library for parsing and encoding
1622@url{https://tools.ietf.org/html/rfc4180, RFC 4180} compliant @url{https://
1623en.wikipedia.org/wiki/Comma-separated_values, comma-separated values (CSV)}
1624data, which is a textual line-oriented format commonly used for exchanging
1625tabular data.
1626
1627@code{cassava}'s API includes support for:
1628
1629@itemize @bullet
1630
1631@item
1632Index-based record-conversion
1633@item
1634Name-based record-conversion
1635@item
1636Typeclass directed conversion of fields and records
1637@item
1638Built-in field-conversion instances for standard types
1639@item
1640Customizable record-conversion instance derivation via GHC generics
1641@item
1642Low-level @url{https://hackage.haskell.org/package/bytestring), bytestring}
1643builders (see @url{https://hackage.haskell.org/package/cassava-0.5.2.0/docs/
1644Data-Csv-Builder.html, Data.Csv.Builder})
1645@item
1646Incremental decoding and encoding API (see @url{https://hackage.haskell.org/
1647package/cassava-0.5.2.0/docs/Data-Csv-Incremental.html, Data.Csv.Incremental})
1648@item
1649Streaming API for constant-space decoding (see @url{https://hackage.haskell.org/
1650package/cassava-0.5.2.0/docs/Data-Csv-Streaming.html, Data.Csv.Streaming})
1651@end itemize
1652
1653Moreover, this library is designed to be easy to use; for instance, here's a
1654very simple example of encoding CSV data:
1655
1656@verbatim
1657>>> Data.Csv.encode [(\"John\",27),(\"Jane\",28)]
1658\"John,27\r\nJane,28\r\n\"
1659@end verbatim
1660")
1661 (license license:bsd-3)))
1662
aa8f4009
CH
1663(define-public ghc-cassava-megaparsec
1664 (package
1665 (name "ghc-cassava-megaparsec")
1666 (version "2.0.2")
1667 (source
1668 (origin
1669 (method url-fetch)
1670 (uri (string-append
1671 "https://hackage.haskell.org/package/cassava-megaparsec/"
1672 "cassava-megaparsec-"
1673 version
1674 ".tar.gz"))
1675 (sha256
1676 (base32
1677 "03x1462agrfdagklp8c89b8p4z2hd8nbf6d3895sz770zjkawda7"))))
1678 (build-system haskell-build-system)
1679 (inputs
1680 `(("ghc-cassava" ,ghc-cassava)
1681 ("ghc-megaparsec" ,ghc-megaparsec)
1682 ("ghc-unordered-containers" ,ghc-unordered-containers)
1683 ("ghc-vector" ,ghc-vector)))
1684 (native-inputs
1685 `(("ghc-hspec" ,ghc-hspec)
1686 ("ghc-hspec-megaparsec" ,ghc-hspec-megaparsec)))
1687 (home-page "https://github.com/stackbuilders/cassava-megaparsec")
1688 (synopsis "Megaparsec parser for CSV files that plays nicely with Cassava")
1689 (description
1690 "Alternative parser for the Cassava package written with Megaparsec that
1691provides for better error messages at the expense of some speed.")
1692 (license license:expat)))
1693
6ba536a1
JS
1694(define-public ghc-cborg
1695 (package
1696 (name "ghc-cborg")
1697 (version "0.2.2.0")
1698 (source
1699 (origin
1700 (method url-fetch)
1701 (uri (string-append
1702 "mirror://hackage/package/cborg/cborg-"
1703 version
1704 ".tar.gz"))
1705 (sha256
1706 (base32
1707 "1rdnvy0w17s70ikmbyrnwax5rvqh19l95sh8i7ipgxi23z1r0bp1"))))
1708 (build-system haskell-build-system)
1709 (inputs
1710 `(("ghc-half" ,ghc-half)
1711 ("ghc-primitive" ,ghc-primitive)))
1712 (native-inputs
1713 `(("ghc-aeson" ,ghc-aeson)
1714 ("ghc-base64-bytestring" ,ghc-base64-bytestring)
1715 ("ghc-base16-bytestring" ,ghc-base16-bytestring)
1716 ("ghc-fail" ,ghc-fail)
1717 ("ghc-quickcheck" ,ghc-quickcheck)
1718 ("ghc-scientific" ,ghc-scientific)
1719 ("ghc-tasty" ,ghc-tasty)
1720 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
1721 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
1722 ("ghc-vector" ,ghc-vector)))
1723 (home-page "http://hackage.haskell.org/package/cborg")
1724 (synopsis "Concise Binary Object Representation")
1725 (description
1726 "This package (formerly binary-serialise-cbor) provides an
1727efficient implementation of the Concise Binary Object
1728Representation (CBOR), as specified by RFC 7049 at
1729https://tools.ietf.org/html/rfc7049.
1730
1731If you are looking for a library for serialisation of Haskell values, have a
1732look at the @url{https://hackage.haskell.org/package/serialise} package, which
1733is built upon this library.
1734
1735An implementation of the standard bijection between CBOR and JSON is provided
1736by the @url{https://hackage.haskell.org/package/cborg-json} package.
1737
1738Also see @code{https://hackage.haskell.org/package/cbor-tool} for a convenient
1739command-line utility for working with CBOR data.")
1740 (license license:bsd-3)))
1741
5434fec9
JS
1742(define-public ghc-cborg-json
1743 (package
1744 (name "ghc-cborg-json")
1745 (version "0.2.2.0")
1746 (source
1747 (origin
1748 (method url-fetch)
1749 (uri (string-append
1750 "mirror://hackage/package/cborg-json/cborg-json-"
1751 version
1752 ".tar.gz"))
1753 (sha256
1754 (base32 "0ysilz7rrjk94sqr3a61s98hr9qfi1xg13bskmlpc6mpgi2s4s5b"))))
1755 (build-system haskell-build-system)
1756 (inputs
1757 `(("ghc-aeson" ,ghc-aeson)
1758 ("ghc-aeson-pretty" ,ghc-aeson-pretty)
1759 ("ghc-unordered-containers" ,ghc-unordered-containers)
1760 ("ghc-scientific" ,ghc-scientific)
1761 ("ghc-vector" ,ghc-vector)
1762 ("ghc-cborg" ,ghc-cborg)))
1763 (home-page "https://github.com/well-typed/cborg")
1764 (synopsis "A library for encoding JSON as CBOR")
1765 (description
1766 "This package implements the bijection between JSON and CBOR
1767defined in the CBOR specification, RFC 7049.")
1768 (license license:bsd-3)))
1769
dddbc90c
RV
1770(define-public ghc-cereal
1771 (package
1772 (name "ghc-cereal")
bd95427e 1773 (version "0.5.8.1")
dddbc90c
RV
1774 (source
1775 (origin
1776 (method url-fetch)
1777 (uri (string-append
1778 "https://hackage.haskell.org/package/cereal/cereal-"
1779 version
1780 ".tar.gz"))
1781 (sha256
1782 (base32
bd95427e 1783 "1mqvd1iwzr50az4y24332x3g3wsrzw8j1iwph02vr7jbjfn8i7id"))))
dddbc90c
RV
1784 (build-system haskell-build-system)
1785 (native-inputs
1786 `(("ghc-quickcheck" ,ghc-quickcheck)
1787 ("ghc-fail" ,ghc-fail)
1788 ("ghc-test-framework" ,ghc-test-framework)
1789 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
1790 (home-page "https://hackage.haskell.org/package/cereal")
1791 (synopsis "Binary serialization library")
1792 (description "This package provides a binary serialization library,
1793similar to @code{binary}, that introduces an @code{isolate} primitive for
1794parser isolation, and labeled blocks for better error messages.")
1795 (license license:bsd-3)))
1796
1797(define-public ghc-cereal-conduit
1798 (package
1799 (name "ghc-cereal-conduit")
1800 (version "0.8.0")
1801 (source
1802 (origin
1803 (method url-fetch)
1804 (uri (string-append "https://hackage.haskell.org/package/"
1805 "cereal-conduit/cereal-conduit-"
1806 version ".tar.gz"))
1807 (sha256
1808 (base32
1809 "1srr7agvgfw78q5s1npjq5sgynvhjgllpihiv37ylkwqm4c4ap6r"))))
1810 (build-system haskell-build-system)
1811 (inputs
1812 `(("ghc-conduit" ,ghc-conduit)
1813 ("ghc-resourcet" ,ghc-resourcet)
1814 ("ghc-cereal" ,ghc-cereal)))
1815 (native-inputs
1816 `(("ghc-hunit" ,ghc-hunit)))
1817 (home-page "https://github.com/snoyberg/conduit")
1818 (synopsis "Turn Data.Serialize Gets and Puts into Sources, Sinks, and Conduits")
1819 (description
1820 "This package turn @code{Data.Serialize} @code{Gets} and @code{Puts} into
1821@code{Sources}, @code{Sinks}, and @code{Conduits}.")
1822 (license license:bsd-3)))
1823
1824(define-public ghc-cgi
1825 (package
1826 (name "ghc-cgi")
b6b2c218 1827 (version "3001.4.0.0")
dddbc90c
RV
1828 (source
1829 (origin
1830 (method url-fetch)
1831 (uri (string-append
1832 "https://hackage.haskell.org/package/cgi/cgi-"
1833 version
1834 ".tar.gz"))
1835 (sha256
1836 (base32
b6b2c218 1837 "1d0nh5ymkqskkp4yn0gfz4mff8i0cxyw1wws8xxp6k1mg1ywa25k"))))
dddbc90c 1838 (build-system haskell-build-system)
dddbc90c
RV
1839 (inputs
1840 `(("ghc-exceptions" ,ghc-exceptions)
1841 ("ghc-multipart" ,ghc-multipart)
1842 ("ghc-network-uri" ,ghc-network-uri)
1843 ("ghc-network" ,ghc-network)))
1844 (native-inputs
1845 `(("ghc-doctest" ,ghc-doctest)
1846 ("ghc-quickcheck" ,ghc-quickcheck)))
1847 (home-page
1848 "https://github.com/cheecheeo/haskell-cgi")
1849 (synopsis "Library for writing CGI programs")
1850 (description
1851 "This is a Haskell library for writing CGI programs.")
1852 (license license:bsd-3)))
1853
1854(define-public ghc-charset
1855 (package
1856 (name "ghc-charset")
1857 (version "0.3.7.1")
1858 (source
1859 (origin
1860 (method url-fetch)
1861 (uri (string-append
1862 "https://hackage.haskell.org/package/charset/charset-"
1863 version
1864 ".tar.gz"))
1865 (sha256
1866 (base32
1867 "1gn0m96qpjww8hpp2g1as5yy0wcwy4iq73h3kz6g0yxxhcl5sh9x"))))
1868 (build-system haskell-build-system)
35ee173c
TS
1869 (arguments
1870 `(#:cabal-revision
1871 ("1" "1z6nxw2g9vgsjq0g159sk8mwj68lwzxzi5iv5ynha0h85jcqxszy")))
dddbc90c
RV
1872 (inputs
1873 `(("ghc-semigroups" ,ghc-semigroups)
1874 ("ghc-unordered-containers" ,ghc-unordered-containers)))
1875 (home-page "https://github.com/ekmett/charset")
1876 (synopsis "Fast unicode character sets for Haskell")
1877 (description "This package provides fast unicode character sets for
1878Haskell, based on complemented PATRICIA tries.")
1879 (license license:bsd-3)))
1880
1881(define-public ghc-chart
1882 (package
1883 (name "ghc-chart")
6cd84b98 1884 (version "1.9.1")
dddbc90c
RV
1885 (source
1886 (origin
1887 (method url-fetch)
1888 (uri (string-append "https://hackage.haskell.org/package/Chart/"
1889 "Chart-" version ".tar.gz"))
1890 (sha256
1891 (base32
6cd84b98 1892 "1pn735k9ifxlb9mdh8xy7wi22cxni8xyr28n8zx9w0j6vprcg89l"))))
dddbc90c
RV
1893 (build-system haskell-build-system)
1894 (inputs
1895 `(("ghc-old-locale" ,ghc-old-locale)
1896 ("ghc-lens" ,ghc-lens)
1897 ("ghc-colour" ,ghc-colour)
1898 ("ghc-data-default-class" ,ghc-data-default-class)
1899 ("ghc-operational" ,ghc-operational)
1900 ("ghc-vector" ,ghc-vector)))
1901 (home-page "https://github.com/timbod7/haskell-chart/wiki")
1902 (synopsis "Library for generating 2D charts and plots")
1903 (description
1904 "This package provides a library for generating 2D charts and plots, with
1905backends provided by the @code{Cairo} and @code{Diagrams} libraries.")
1906 (license license:bsd-3)))
1907
1908(define-public ghc-chart-cairo
1909 (package
1910 (name "ghc-chart-cairo")
5cf9264d 1911 (version "1.9.1")
dddbc90c
RV
1912 (source
1913 (origin
1914 (method url-fetch)
1915 (uri (string-append "https://hackage.haskell.org/package/Chart-cairo/"
1916 "Chart-cairo-" version ".tar.gz"))
1917 (sha256
1918 (base32
5cf9264d 1919 "0hknj4rsjf2m8p5pyq5zff8ai7v80yvmxb5c6n0bkgxs4317nbl9"))))
dddbc90c
RV
1920 (build-system haskell-build-system)
1921 (inputs
1922 `(("ghc-old-locale" ,ghc-old-locale)
1923 ("ghc-cairo" ,ghc-cairo)
1924 ("ghc-colour" ,ghc-colour)
1925 ("ghc-data-default-class" ,ghc-data-default-class)
1926 ("ghc-operational" ,ghc-operational)
1927 ("ghc-lens" ,ghc-lens)
1928 ("ghc-chart" ,ghc-chart)))
1929 (home-page "https://github.com/timbod7/haskell-chart/wiki")
1930 (synopsis "Cairo backend for Charts")
1931 (description "This package provides a Cairo vector graphics rendering
1932backend for the Charts library.")
1933 (license license:bsd-3)))
1934
1935(define-public ghc-chasingbottoms
1936 (package
1937 (name "ghc-chasingbottoms")
1f67853e 1938 (version "1.3.1.7")
dddbc90c
RV
1939 (source
1940 (origin
1941 (method url-fetch)
1942 (uri (string-append "https://hackage.haskell.org/package/ChasingBottoms/"
1943 "ChasingBottoms-" version ".tar.gz"))
1944 (sha256
1945 (base32
1f67853e 1946 "0ziiqfsvv1ypdra6kd0bhbsl852i0wqn43jkfii38yl879cdacan"))))
dddbc90c
RV
1947 (build-system haskell-build-system)
1948 (inputs
1949 `(("ghc-quickcheck" ,ghc-quickcheck)
1950 ("ghc-random" ,ghc-random)
1951 ("ghc-syb" ,ghc-syb)))
1952 (home-page "https://hackage.haskell.org/package/ChasingBottoms")
1953 (synopsis "Testing of partial and infinite values in Haskell")
1954 (description
1955 ;; FIXME: There should be a @comma{} in the uref text, but it is not
1956 ;; rendered properly.
1957 "This is a library for testing code involving bottoms or infinite values.
1958For the underlying theory and a larger example involving use of QuickCheck,
1959see the article
1960@uref{http://www.cse.chalmers.se/~nad/publications/danielsson-jansson-mpc2004.html,
1961\"Chasing Bottoms A Case Study in Program Verification in the Presence of
1962Partial and Infinite Values\"}.")
1963 (license license:expat)))
1964
1965(define-public ghc-cheapskate
1966 (package
1967 (name "ghc-cheapskate")
5e18bb9e 1968 (version "0.1.1.1")
dddbc90c
RV
1969 (source
1970 (origin
1971 (method url-fetch)
1972 (uri (string-append
1973 "https://hackage.haskell.org/package/cheapskate/cheapskate-"
1974 version
1975 ".tar.gz"))
1976 (sha256
1977 (base32
5e18bb9e 1978 "0qnyd8bni2rby6b02ff4bvfdhm1hwc8vzpmnms84jgrlg1lly3fm"))))
dddbc90c
RV
1979 (build-system haskell-build-system)
1980 (inputs
1981 `(("ghc-blaze-html" ,ghc-blaze-html)
1982 ("ghc-xss-sanitize" ,ghc-xss-sanitize)
1983 ("ghc-data-default" ,ghc-data-default)
1984 ("ghc-syb" ,ghc-syb)
1985 ("ghc-uniplate" ,ghc-uniplate)))
1986 (home-page "https://github.com/jgm/cheapskate")
1987 (synopsis "Experimental markdown processor")
1988 (description "Cheapskate is an experimental Markdown processor in pure
1989Haskell. It aims to process Markdown efficiently and in the most forgiving
1990possible way. It is designed to deal with any input, including garbage, with
1991linear performance. Output is sanitized by default for protection against
1992cross-site scripting (@dfn{XSS}) attacks.")
1993 (license license:bsd-3)))
1994
1995(define-public ghc-chell
1996 (package
1997 (name "ghc-chell")
acdd03be 1998 (version "0.5")
dddbc90c
RV
1999 (source
2000 (origin
2001 (method url-fetch)
2002 (uri (string-append
2003 "https://hackage.haskell.org/package/chell/chell-"
2004 version ".tar.gz"))
2005 (sha256
2006 (base32
acdd03be 2007 "1i845isfbk0yq852am9bqmxfpfkpnlha8nfidffsv4gw2p8gg6fg"))))
dddbc90c 2008 (build-system haskell-build-system)
acdd03be
TS
2009 (arguments
2010 `(#:cabal-revision
2011 ("1" "1q93wrw03ix4cmnkz3lzkixcvvizw6i2ia2zifdfak1dvxnblxk0")))
dddbc90c
RV
2012 (inputs
2013 `(("ghc-options-bootstrap" ,ghc-options-bootstrap)
2014 ("ghc-patience" ,ghc-patience)
2015 ("ghc-random" ,ghc-random)
2016 ("ghc-ansi-terminal" ,ghc-ansi-terminal)))
2017 (home-page "https://john-millikin.com/software/chell/")
2018 (synopsis "Simple and intuitive library for automated testing")
2019 (description
2020 "Chell is a simple and intuitive library for automated testing.
2021It natively supports assertion-based testing, and can use companion
2022libraries such as @code{chell-quickcheck} to support more complex
2023testing strategies.")
2024 (license license:expat)))
2025
2026(define-public ghc-chell-quickcheck
2027 (package
2028 (name "ghc-chell-quickcheck")
e0e21831 2029 (version "0.2.5.2")
dddbc90c
RV
2030 (source
2031 (origin
2032 (method url-fetch)
2033 (uri (string-append
2034 "https://hackage.haskell.org/package/chell-quickcheck/"
2035 "chell-quickcheck-" version ".tar.gz"))
2036 (sha256
2037 (base32
e0e21831 2038 "0n8c57n88r2bx0bh8nabsz07m42rh23ahs3hgyzf8gr76l08zq03"))))
dddbc90c
RV
2039 (build-system haskell-build-system)
2040 (arguments
2041 `(#:phases
2042 (modify-phases %standard-phases
2043 (add-before 'configure 'update-constraints
2044 (lambda _
2045 (substitute* "chell-quickcheck.cabal"
e0e21831
TS
2046 (("QuickCheck >= 2\\.3 && < 2\\.13")
2047 "QuickCheck >= 2.3 && < 2.14")))))))
dddbc90c
RV
2048 (inputs
2049 `(("ghc-chell" ,ghc-chell)
2050 ("ghc-chell-quickcheck-bootstrap" ,ghc-chell-quickcheck-bootstrap)
2051 ("ghc-random" ,ghc-random)
2052 ("ghc-quickcheck" ,ghc-quickcheck)))
2053 (home-page "https://john-millikin.com/software/chell/")
2054 (synopsis "QuickCheck support for the Chell testing library")
2055 (description "More complex tests for @code{chell}.")
2056 (license license:expat)))
2057
2058(define ghc-chell-quickcheck-bootstrap
2059 (package
2060 (name "ghc-chell-quickcheck-bootstrap")
e0e21831 2061 (version "0.2.5.2")
dddbc90c
RV
2062 (source
2063 (origin
2064 (method url-fetch)
2065 (uri (string-append
2066 "https://hackage.haskell.org/package/chell-quickcheck/"
2067 "chell-quickcheck-" version ".tar.gz"))
2068 (sha256
2069 (base32
e0e21831 2070 "0n8c57n88r2bx0bh8nabsz07m42rh23ahs3hgyzf8gr76l08zq03"))))
dddbc90c
RV
2071 (build-system haskell-build-system)
2072 (inputs
2073 `(("ghc-chell" ,ghc-chell)
2074 ("ghc-random" ,ghc-random)
2075 ("ghc-quickcheck" ,ghc-quickcheck)))
2076 (arguments
2077 `(#:tests? #f
2078 #:phases
2079 (modify-phases %standard-phases
2080 (add-before 'configure 'update-constraints
2081 (lambda _
2082 (substitute* "chell-quickcheck.cabal"
e0e21831
TS
2083 (("QuickCheck >= 2\\.3 && < 2\\.13")
2084 "QuickCheck >= 2.3 && < 2.14")))))))
dddbc90c
RV
2085 (home-page "https://john-millikin.com/software/chell/")
2086 (synopsis "QuickCheck support for the Chell testing library")
2087 (description "More complex tests for @code{chell}.")
2088 (license license:expat)))
2089
2090(define-public ghc-chunked-data
2091 (package
2092 (name "ghc-chunked-data")
2093 (version "0.3.1")
2094 (source
2095 (origin
2096 (method url-fetch)
2097 (uri (string-append "https://hackage.haskell.org/package/"
2098 "chunked-data-" version "/"
2099 "chunked-data-" version ".tar.gz"))
2100 (sha256
2101 (base32
2102 "16m7y7fwrirbjbqqcsfmr4yxa9qvfax6r7pw0zl9ky71ms0wa47p"))))
2103 (build-system haskell-build-system)
2104 (inputs `(("ghc-vector" ,ghc-vector)
2105 ("ghc-semigroups" ,ghc-semigroups)))
2106 (home-page "https://github.com/snoyberg/mono-traversable")
2107 (synopsis "Typeclasses for dealing with various chunked data
2108representations for Haskell")
2109 (description "This Haskell package was originally present in
2110classy-prelude.")
2111 (license license:expat)))
2112
2113(define-public ghc-clock
2114 (package
2115 (name "ghc-clock")
0841b6f2 2116 (version "0.8")
dddbc90c
RV
2117 (source
2118 (origin
2119 (method url-fetch)
2120 (uri (string-append
2121 "https://hackage.haskell.org/package/"
2122 "clock/"
2123 "clock-" version ".tar.gz"))
2124 (sha256
0841b6f2 2125 (base32 "0539w9bjw6xbfv9v6aq9hijszxqdnqhilwpbwpql1400ji95r8q8"))))
dddbc90c
RV
2126 (build-system haskell-build-system)
2127 (inputs
2128 `(("ghc-tasty" ,ghc-tasty)
2129 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
2130 (home-page "https://hackage.haskell.org/package/clock")
2131 (synopsis "High-resolution clock for Haskell")
2132 (description "A package for convenient access to high-resolution clock and
2133timer functions of different operating systems via a unified API.")
2134 (license license:bsd-3)))
2135
2136;; This package builds `clock` without tests, since the tests rely on tasty
2137;; and tasty-quickcheck, which in turn require clock to build.
2138(define-public ghc-clock-bootstrap
2139 (package
2140 (inherit ghc-clock)
2141 (name "ghc-clock-bootstrap")
2142 (arguments '(#:tests? #f))
2143 (inputs '())
2144 (properties '((hidden? #t)))))
2145
2146(define-public ghc-cmark
2147 (package
2148 (name "ghc-cmark")
6bdd36c0 2149 (version "0.6")
dddbc90c
RV
2150 (source (origin
2151 (method url-fetch)
6bdd36c0 2152 ;; XXX As of version 0.6, this package bundles libcmark 0.28.0.
dddbc90c
RV
2153 ;; See cbits/cmark_version.h.
2154 (uri (string-append "https://hackage.haskell.org/package/"
2155 "cmark/cmark-" version ".tar.gz"))
2156 (sha256
2157 (base32
6bdd36c0 2158 "1p41z6z8dqxk62287lvhhg4ayy9laai9ljh4azsnzb029v6mbv0d"))))
dddbc90c
RV
2159 (build-system haskell-build-system)
2160 (native-inputs
2161 `(("ghc-hunit" ,ghc-hunit)))
2162 (home-page "https://github.com/jgm/commonmark-hs")
2163 (synopsis "Fast, accurate CommonMark (Markdown) parser and renderer")
2164 (description
2165 "This package provides Haskell bindings for
2166@uref{https://github.com/jgm/cmark, libcmark}, the reference parser for
2167CommonMark, a fully specified variant of Markdown. It includes bundled libcmark
2168sources, and does not require prior installation of the C library.")
2169 (license license:bsd-3)))
2170
2171(define-public ghc-cmark-gfm
2172 (package
2173 (name "ghc-cmark-gfm")
24fc8dae 2174 (version "0.2.0")
dddbc90c
RV
2175 (source
2176 (origin
2177 (method url-fetch)
2178 (uri (string-append "https://hackage.haskell.org/package/"
2179 "cmark-gfm/cmark-gfm-"
2180 version ".tar.gz"))
2181 (sha256
2182 (base32
24fc8dae 2183 "03xflrkyw84qv3yjly5iks9311bqv5cmrmsylr763v4ph0fn7rjq"))))
dddbc90c
RV
2184 (build-system haskell-build-system)
2185 (native-inputs
2186 `(("ghc-hunit" ,ghc-hunit)))
2187 (home-page "https://github.com/kivikakk/cmark-gfm-hs")
2188 (synopsis
2189 "Fast, accurate GitHub Flavored Markdown parser and renderer")
2190 (description
2191 "This package provides Haskell bindings for libcmark-gfm, the reference
2192parser for GitHub Flavored Markdown, a fully specified variant of Markdown.
2193It includes sources for libcmark-gfm and does not require prior installation
2194of the C library.")
2195 (license license:bsd-3)))
2196
2197(define-public ghc-cmdargs
2198 (package
2199 (name "ghc-cmdargs")
2200 (version "0.10.20")
2201 (source
2202 (origin
2203 (method url-fetch)
2204 (uri (string-append
2205 "https://hackage.haskell.org/package/cmdargs/cmdargs-"
2206 version ".tar.gz"))
2207 (sha256
2208 (base32
2209 "0cbkmgrcnwgigg6z88y3c09gm7g6dwm7gzbgr53h8k1xik29s9hf"))))
2210 (build-system haskell-build-system)
3e545443 2211 (outputs '("out" "static" "doc"))
dddbc90c
RV
2212 (home-page
2213 "http://community.haskell.org/~ndm/cmdargs/")
2214 (synopsis "Command line argument processing")
2215 (description
2216 "This library provides an easy way to define command line parsers.")
2217 (license license:bsd-3)))
2218
2219(define-public ghc-code-page
2220 (package
2221 (name "ghc-code-page")
f6bb6519 2222 (version "0.2")
dddbc90c
RV
2223 (source
2224 (origin
2225 (method url-fetch)
2226 (uri (string-append
2227 "https://hackage.haskell.org/package/code-page/code-page-"
2228 version ".tar.gz"))
2229 (sha256
2230 (base32
f6bb6519 2231 "0i0qbrbhvrwkbikqb7hh7yxaipaavwzvyrw211d0vkz99f62mqxz"))))
dddbc90c
RV
2232 (build-system haskell-build-system)
2233 (home-page "https://github.com/RyanGlScott/code-page")
2234 (synopsis "Windows code page library for Haskell")
2235 (description "A cross-platform library with functions for adjusting
2236code pages on Windows. On all other operating systems, the library does
2237nothing.")
2238 (license license:bsd-3)))
2239
2240(define-public ghc-colour
2241(package
2242 (name "ghc-colour")
bc9d1af9 2243 (version "2.3.5")
dddbc90c
RV
2244 (source
2245 (origin
2246 (method url-fetch)
2247 (uri (string-append
2248 "https://hackage.haskell.org/package/colour/colour-"
2249 version ".tar.gz"))
2250 (sha256
2251 (base32
bc9d1af9 2252 "1rq4l46jx4lpdppy71wf7m1n7pw2jwy788rm35ycwzb1g4clg39v"))))
dddbc90c
RV
2253 (arguments
2254 ;; The tests for this package have the following dependency cycle:
2255 ;; ghc-test-framework -> ghc-ansi-terminal -> ghc-colour.
2256 `(#:tests? #f))
2257 (build-system haskell-build-system)
228d2901 2258 (home-page "https://wiki.haskell.org/Colour")
dddbc90c
RV
2259 (synopsis "Model for human colour perception")
2260 (description
2261 "This package provides a data type for colours and transparency.
2262Colours can be blended and composed. Various colour spaces are
2263supported. A module of colour names (\"Data.Colour.Names\") is provided.")
2264 (license license:expat)))
2265
2266(define-public ghc-comonad
2267 (package
2268 (name "ghc-comonad")
1a825512 2269 (version "5.0.5")
dddbc90c
RV
2270 (source
2271 (origin
2272 (method url-fetch)
2273 (uri (string-append
2274 "https://hackage.haskell.org/package/comonad/comonad-"
2275 version
2276 ".tar.gz"))
2277 (sha256
2278 (base32
1a825512 2279 "1l7snp2mszgnjgd0nc9kzfyd13vla0rlazqi03rwx2akcxk14n3c"))))
dddbc90c
RV
2280 (build-system haskell-build-system)
2281 (native-inputs
2282 `(("cabal-doctest" ,cabal-doctest)
2283 ("ghc-doctest" ,ghc-doctest)))
2284 (inputs
2285 `(("ghc-contravariant" ,ghc-contravariant)
2286 ("ghc-distributive" ,ghc-distributive)
2287 ("ghc-semigroups" ,ghc-semigroups)
2288 ("ghc-tagged" ,ghc-tagged)
2289 ("ghc-transformers-compat" ,ghc-transformers-compat)))
2290 (home-page "https://github.com/ekmett/comonad/")
2291 (synopsis "Comonads for Haskell")
2292 (description "This library provides @code{Comonad}s for Haskell.")
2293 (license license:bsd-3)))
2294
2295(define-public ghc-concatenative
2296 (package
2297 (name "ghc-concatenative")
2298 (version "1.0.1")
2299 (source (origin
2300 (method url-fetch)
2301 (uri (string-append
2302 "https://hackage.haskell.org/package/concatenative/concatenative-"
2303 version ".tar.gz"))
2304 (sha256
2305 (base32
2306 "05xwqvcdnk8bsyj698ab9jxpa1nk23pf3m7wi9mwmw0q8n99fngd"))))
2307 (build-system haskell-build-system)
2308 (home-page
2309 "https://patch-tag.com/r/salazar/concatenative/snapshot/current/content/pretty")
2310 (synopsis "Library for postfix control flow")
2311 (description
2312 "Concatenative gives Haskell Factor-style combinators and arrows for
2313postfix notation. For more information on stack based languages, see
2314@uref{https://concatenative.org}.")
2315 (license license:bsd-3)))
2316
2317(define-public ghc-concurrent-extra
2318 (package
2319 (name "ghc-concurrent-extra")
2320 (version "0.7.0.12")
2321 (source
2322 (origin
2323 (method url-fetch)
2324 (uri (string-append "https://hackage.haskell.org/package/"
2325 "concurrent-extra/concurrent-extra-"
2326 version ".tar.gz"))
2327 (sha256
2328 (base32
2329 "1y8xk460fvnw0idzdiylmm874sjny4q9jxb1js9fjz8lw2wns3h4"))))
2330 (build-system haskell-build-system)
2331 (arguments
2332 ;; XXX: The ReadWriteLock 'stressTest' fails.
2333 `(#:tests? #f))
2334 (inputs
2335 `(("ghc-unbounded-delays" ,ghc-unbounded-delays)))
2336 (native-inputs
2337 `(("ghc-async" ,ghc-async)
2338 ("ghc-hunit" ,ghc-hunit)
2339 ("ghc-random" ,ghc-random)
2340 ("ghc-test-framework" ,ghc-test-framework)
2341 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)))
2342 (home-page "https://github.com/basvandijk/concurrent-extra")
2343 (synopsis "Extra concurrency primitives")
2344 (description "This Haskell library offers (among other things) the
2345following selection of synchronisation primitives:
2346
2347@itemize
2348@item @code{Broadcast}: Wake multiple threads by broadcasting a value.
2349@item @code{Event}: Wake multiple threads by signalling an event.
2350@item @code{Lock}: Enforce exclusive access to a resource. Also known
2351as a binary semaphore or mutex. The package additionally provides an
2352alternative that works in the STM monad.
2353@item @code{RLock}: A lock which can be acquired multiple times by the
2354same thread. Also known as a reentrant mutex.
2355@item @code{ReadWriteLock}: Multiple-reader, single-writer locks. Used
2356to protect shared resources which may be concurrently read, but only
2357sequentially written.
2358@item @code{ReadWriteVar}: Concurrent read, sequential write variables.
2359@end itemize
2360
2361Please consult the API documentation of the individual modules for more
2362detailed information.
2363
2364This package was inspired by the concurrency libraries of Java and
2365Python.")
2366 (license license:bsd-3)))
2367
2368(define-public ghc-concurrent-output
2369 (package
2370 (name "ghc-concurrent-output")
4fce0a4a 2371 (version "1.10.11")
dddbc90c
RV
2372 (source
2373 (origin
2374 (method url-fetch)
2375 (uri (string-append
2376 "mirror://hackage/package/concurrent-output/concurrent-output-"
2377 version
2378 ".tar.gz"))
2379 (sha256
2380 (base32
4fce0a4a 2381 "1d1aaqg5814k59b0iws3fh06p3g2siaj922gkhs75qgncj0my2p3"))))
dddbc90c
RV
2382 (build-system haskell-build-system)
2383 (inputs
2384 `(("ghc-async" ,ghc-async)
2385 ("ghc-exceptions" ,ghc-exceptions)
2386 ("ghc-ansi-terminal" ,ghc-ansi-terminal)
2387 ("ghc-terminal-size" ,ghc-terminal-size)))
2388 (home-page
2389 "https://hackage.haskell.org/package/concurrent-output")
2390 (synopsis
2391 "Ungarble output from several threads or commands")
2392 (description
2393 "Lets multiple threads and external processes concurrently output to the
2394console, without it getting all garbled up.
2395
2396Built on top of that is a way of defining multiple output regions, which are
2397automatically laid out on the screen and can be individually updated by
2398concurrent threads. Can be used for progress displays etc.")
2399 (license license:bsd-2)))
2400
2401(define-public ghc-conduit
2402 (package
2403 (name "ghc-conduit")
1ac981d4 2404 (version "1.3.1.1")
dddbc90c
RV
2405 (source (origin
2406 (method url-fetch)
2407 (uri (string-append "https://hackage.haskell.org/package/"
2408 "conduit/conduit-" version ".tar.gz"))
2409 (sha256
2410 (base32
1ac981d4 2411 "18izjgff4pmrknc8py06yvg3g6x27nx0rzmlwjxcflwm5v4szpw4"))))
dddbc90c 2412 (build-system haskell-build-system)
20e5edb1 2413 (outputs '("out" "static" "doc"))
dddbc90c
RV
2414 (inputs
2415 `(("ghc-exceptions" ,ghc-exceptions)
2416 ("ghc-lifted-base" ,ghc-lifted-base)
2417 ("ghc-mono-traversable" ,ghc-mono-traversable)
2418 ("ghc-mmorph" ,ghc-mmorph)
2419 ("ghc-resourcet" ,ghc-resourcet)
2420 ("ghc-silently" ,ghc-silently)
2421 ("ghc-transformers-base" ,ghc-transformers-base)
2422 ("ghc-unliftio" ,ghc-unliftio)
2423 ("ghc-unliftio-core" ,ghc-unliftio-core)
2424 ("ghc-vector" ,ghc-vector)
2425 ("ghc-void" ,ghc-void)))
2426 (native-inputs
2427 `(("ghc-quickcheck" ,ghc-quickcheck)
2428 ("ghc-hspec" ,ghc-hspec)
2429 ("ghc-safe" ,ghc-safe)
2430 ("ghc-split" ,ghc-split)))
2431 (home-page "https://github.com/snoyberg/conduit")
2432 (synopsis "Streaming data library ")
2433 (description
2434 "The conduit package is a solution to the streaming data problem,
2435allowing for production, transformation, and consumption of streams of data
2436in constant memory. It is an alternative to lazy I/O which guarantees
2437deterministic resource handling, and fits in the same general solution
2438space as enumerator/iteratee and pipes.")
2439 (license license:expat)))
2440
2441(define-public ghc-conduit-algorithms
2442 (package
2443 (name "ghc-conduit-algorithms")
503b74ae 2444 (version "0.0.11.0")
dddbc90c
RV
2445 (source
2446 (origin
2447 (method url-fetch)
2448 (uri (string-append "https://hackage.haskell.org/package/"
2449 "conduit-algorithms/conduit-algorithms-"
2450 version ".tar.gz"))
2451 (sha256
2452 (base32
503b74ae 2453 "0c1jwz30kkvimx7lb61782yk0kyfamrf5bqc3g1h7g51lk8bbv9i"))))
dddbc90c
RV
2454 (build-system haskell-build-system)
2455 (inputs
2456 `(("ghc-async" ,ghc-async)
2457 ("ghc-bzlib-conduit" ,ghc-bzlib-conduit)
2458 ("ghc-conduit" ,ghc-conduit)
2459 ("ghc-conduit-combinators" ,ghc-conduit-combinators)
2460 ("ghc-conduit-extra" ,ghc-conduit-extra)
503b74ae 2461 ("ghc-conduit-zstd" ,ghc-conduit-zstd)
dddbc90c
RV
2462 ("ghc-exceptions" ,ghc-exceptions)
2463 ("ghc-lzma-conduit" ,ghc-lzma-conduit)
2464 ("ghc-monad-control" ,ghc-monad-control)
2465 ("ghc-pqueue" ,ghc-pqueue)
2466 ("ghc-resourcet" ,ghc-resourcet)
2467 ("ghc-stm-conduit" ,ghc-stm-conduit)
2468 ("ghc-streaming-commons" ,ghc-streaming-commons)
2469 ("ghc-unliftio-core" ,ghc-unliftio-core)
2470 ("ghc-vector" ,ghc-vector)))
2471 (native-inputs
2472 `(("ghc-hunit" ,ghc-hunit)
2473 ("ghc-test-framework" ,ghc-test-framework)
2474 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
2475 ("ghc-test-framework-th" ,ghc-test-framework-th)))
2476 (home-page "https://github.com/luispedro/conduit-algorithms#readme")
2477 (synopsis "Conduit-based algorithms")
2478 (description
2479 "This package provides algorithms on @code{Conduits}, including higher
2480level asynchronous processing and some other utilities.")
2481 (license license:expat)))
2482
2483(define-public ghc-conduit-combinators
2484 (package
2485 (name "ghc-conduit-combinators")
2486 (version "1.3.0")
2487 (source
2488 (origin
2489 (method url-fetch)
2490 (uri (string-append "https://hackage.haskell.org/package/"
2491 "conduit-combinators-" version "/"
2492 "conduit-combinators-" version ".tar.gz"))
2493 (sha256
2494 (base32
2495 "1lz70vwp4y4lpsivxl0cshq7aq3968rh48r6rjvpyaj2l0bdj5wp"))))
2496 (build-system haskell-build-system)
2497 (inputs `(("ghc-conduit" ,ghc-conduit)
2498 ("ghc-conduit-extra" ,ghc-conduit-extra)
2499 ("ghc-transformers-base" ,ghc-transformers-base)
2500 ("ghc-primitive" ,ghc-primitive)
2501 ("ghc-vector" ,ghc-vector)
2502 ("ghc-void" ,ghc-void)
2503 ("ghc-mwc-random" ,ghc-mwc-random)
2504 ("ghc-unix-compat" ,ghc-unix-compat)
2505 ("ghc-base16-bytestring" ,ghc-base16-bytestring)
2506 ("ghc-base64-bytestring" ,ghc-base64-bytestring)
2507 ("ghc-resourcet" ,ghc-resourcet)
2508 ("ghc-monad-control" ,ghc-monad-control)
2509 ("ghc-chunked-data" ,ghc-chunked-data)
2510 ("ghc-mono-traversable" ,ghc-mono-traversable)))
2511 (native-inputs `(("ghc-hspec" ,ghc-hspec)
2512 ("ghc-silently" ,ghc-silently)
2513 ("ghc-safe" ,ghc-safe)
2514 ("ghc-quickcheck" ,ghc-quickcheck)))
2515 (home-page "https://github.com/snoyberg/mono-traversable")
2516 (synopsis "Commonly used conduit functions, for both chunked and
2517unchunked data")
2518 (description "This Haskell package provides a replacement for Data.Conduit.List,
2519as well as a convenient Conduit module.")
2520 (license license:expat)))
2521
2522(define-public ghc-conduit-extra
2523 (package
2524 (name "ghc-conduit-extra")
151774d9 2525 (version "1.3.4")
dddbc90c
RV
2526 (source
2527 (origin
2528 (method url-fetch)
2529 (uri (string-append "https://hackage.haskell.org/package/"
2530 "conduit-extra/conduit-extra-"
2531 version ".tar.gz"))
2532 (sha256
2533 (base32
151774d9 2534 "1d853d39vj5pb8yxfcsnjwdzqzkm34ixzbnba8bslpihb7182wxi"))))
dddbc90c
RV
2535 (build-system haskell-build-system)
2536 (inputs
2537 `(("ghc-conduit" ,ghc-conduit)
2538 ("ghc-exceptions" ,ghc-exceptions)
2539 ("ghc-monad-control" ,ghc-monad-control)
2540 ("ghc-transformers-base" ,ghc-transformers-base)
2541 ("ghc-typed-process" ,ghc-typed-process)
2542 ("ghc-async" ,ghc-async)
2543 ("ghc-attoparsec" ,ghc-attoparsec)
2544 ("ghc-blaze-builder" ,ghc-blaze-builder)
2545 ("ghc-network" ,ghc-network)
2546 ("ghc-primitive" ,ghc-primitive)
2547 ("ghc-resourcet" ,ghc-resourcet)
2548 ("ghc-streaming-commons" ,ghc-streaming-commons)
2549 ("ghc-hspec" ,ghc-hspec)
2550 ("ghc-bytestring-builder" ,ghc-bytestring-builder)
2551 ("ghc-quickcheck" ,ghc-quickcheck)))
2552 (native-inputs
2553 `(("hspec-discover" ,hspec-discover)))
2554 (home-page "https://github.com/snoyberg/conduit")
2555 (synopsis "Conduit adapters for common libraries")
2556 (description
2557 "The @code{conduit} package itself maintains relative small dependencies.
2558The purpose of this package is to collect commonly used utility functions
2559wrapping other library dependencies, without depending on heavier-weight
2560dependencies. The basic idea is that this package should only depend on
2561@code{haskell-platform} packages and @code{conduit}.")
2562 (license license:expat)))
2563
b59c3518
TS
2564(define-public ghc-conduit-zstd
2565 (package
2566 (name "ghc-conduit-zstd")
2567 (version "0.0.1.1")
2568 (source
2569 (origin
2570 (method url-fetch)
2571 (uri (string-append "https://hackage.haskell.org/package/"
2572 "conduit-zstd/conduit-zstd-" version ".tar.gz"))
2573 (sha256
2574 (base32
2575 "04h7w2903hgw4gjcx2pg29yinnmfapawvc19hd3r57rr12fzb0c6"))))
2576 (build-system haskell-build-system)
2577 (inputs
2578 `(("ghc-conduit" ,ghc-conduit)
2579 ("ghc-zstd" ,ghc-zstd)))
2580 (native-inputs
2581 `(("ghc-hunit" ,ghc-hunit)
2582 ("ghc-conduit-combinators" ,ghc-conduit-combinators)
2583 ("ghc-conduit-extra" ,ghc-conduit-extra)
2584 ("ghc-test-framework" ,ghc-test-framework)
2585 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
2586 ("ghc-test-framework-th" ,ghc-test-framework-th)))
2587 (home-page "https://github.com/luispedro/conduit-zstd#readme")
2588 (synopsis "Conduit-based ZStd Compression")
2589 (description "Zstandard compression packaged as a conduit. This is
2590a very thin wrapper around the
2591@url{https://github.com/facebookexperimental/hs-zstd/, official hs-zstd
2592interface}.")
2593 (license license:expat)))
2594
dddbc90c
RV
2595(define-public ghc-configurator
2596 (package
2597 (name "ghc-configurator")
2598 (version "0.3.0.0")
2599 (source
2600 (origin
2601 (method url-fetch)
2602 (uri (string-append "https://hackage.haskell.org/package/"
2603 "configurator/configurator-"
2604 version ".tar.gz"))
2605 (sha256
2606 (base32
2607 "1d1iq1knwiq6ia5g64rw5hqm6dakz912qj13r89737rfcxmrkfbf"))))
2608 (build-system haskell-build-system)
2609 (inputs
2610 `(("ghc-attoparsec" ,ghc-attoparsec)
2611 ("ghc-hashable" ,ghc-hashable)
2612 ("ghc-unix-compat" ,ghc-unix-compat)
2613 ("ghc-unordered-containers" ,ghc-unordered-containers)))
2614 (native-inputs
2615 `(("ghc-hunit" ,ghc-hunit)
2616 ("ghc-test-framework" ,ghc-test-framework)
2617 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)))
702a1012 2618 (home-page "https://github.com/bos/configurator")
dddbc90c
RV
2619 (synopsis "Configuration management")
2620 (description
2621 "This package provides a configuration management library for programs
2622and daemons. The features include:
2623
2624@enumerate
2625@item Automatic, dynamic reloading in response to modifications to
2626 configuration files.
2627@item A simple, but flexible, configuration language, supporting several of
2628 the most commonly needed types of data, along with interpolation of strings
2629 from the configuration or the system environment (e.g. @code{$(HOME)}).
2630@item Subscription-based notification of changes to configuration properties.
2631@item An @code{import} directive allows the configuration of a complex
2632 application to be split across several smaller files, or common configuration
2633 data to be shared across several applications.
2634@end enumerate\n")
2635 (license license:bsd-3)))
2636
2637(define-public ghc-connection
2638 (package
2639 (name "ghc-connection")
6ee0d258 2640 (version "0.3.1")
dddbc90c
RV
2641 (source (origin
2642 (method url-fetch)
2643 (uri (string-append "https://hackage.haskell.org/package/"
2644 "connection/connection-"
2645 version ".tar.gz"))
2646 (sha256
2647 (base32
6ee0d258 2648 "1nbmafhlg0wy4aa3p7amjddbamdz6avzrxn4py3lvhrjqn4raxax"))))
dddbc90c
RV
2649 (build-system haskell-build-system)
2650 (inputs
2651 `(("ghc-byteable" ,ghc-byteable)
2652 ("ghc-data-default-class" ,ghc-data-default-class)
2653 ("ghc-network" ,ghc-network)
2654 ("ghc-tls" ,ghc-tls)
2655 ("ghc-socks" ,ghc-socks)
2656 ("ghc-x509" ,ghc-x509)
2657 ("ghc-x509-store" ,ghc-x509-store)
2658 ("ghc-x509-system" ,ghc-x509-system)
2659 ("ghc-x509-validation" ,ghc-x509-validation)))
2660 (home-page "https://github.com/vincenthz/hs-connection")
2661 (synopsis "Simple and easy network connections API")
2662 (description
2663 "This package provides a simple network library for all your connection
2664needs. It provides a very simple API to create sockets to a destination with
2665the choice of SSL/TLS, and SOCKS.")
2666 (license license:bsd-3)))
2667
2668(define-public ghc-constraints
2669 (package
2670 (name "ghc-constraints")
2671 (version "0.10.1")
2672 (source
2673 (origin
2674 (method url-fetch)
2675 (uri (string-append
2676 "https://hackage.haskell.org/package/constraints/constraints-"
2677 version ".tar.gz"))
2678 (sha256
2679 (base32
2680 "1xy3vv78jxc17hm0z7qqspxjwv7l2jbcbj670yrl2f053qkfr02q"))))
2681 (build-system haskell-build-system)
2682 (inputs
2683 `(("ghc-hashable" ,ghc-hashable)
2684 ("ghc-semigroups" ,ghc-semigroups)
2685 ("ghc-transformers-compat" ,ghc-transformers-compat)))
2686 (native-inputs
2687 `(("ghc-hspec" ,ghc-hspec)
2688 ("hspec-discover" ,hspec-discover)))
2689 (home-page "https://github.com/ekmett/constraints/")
2690 (synopsis "Constraint manipulation")
2691 (description
2692 "GHC 7.4 gave us the ability to talk about @code{ConstraintKinds}.
2693They stopped crashing the compiler in GHC 7.6. This package provides
2694a vocabulary for working with them.")
2695 (license license:bsd-3)))
2696
2697(define-public ghc-contravariant
2698 (package
2699 (name "ghc-contravariant")
e7b35ff0 2700 (version "1.5.2")
dddbc90c
RV
2701 (source
2702 (origin
2703 (method url-fetch)
2704 (uri (string-append
2705 "https://hackage.haskell.org/package/contravariant/contravariant-"
2706 version
2707 ".tar.gz"))
2708 (sha256
2709 (base32
e7b35ff0 2710 "0366gl62wwwdbl9i6kqy60asf60876k55v91la6bmhnwwcj2q9n4"))))
dddbc90c
RV
2711 (build-system haskell-build-system)
2712 (inputs
2713 `(("ghc-void" ,ghc-void)
2714 ("ghc-transformers-compat" ,ghc-transformers-compat)
2715 ("ghc-statevar" ,ghc-statevar)
2716 ("ghc-semigroups" ,ghc-semigroups)))
2717 (home-page
2718 "https://github.com/ekmett/contravariant/")
2719 (synopsis "Contravariant functors")
2720 (description "Contravariant functors for Haskell.")
2721 (license license:bsd-3)))
2722
2723(define-public ghc-contravariant-extras
2724 (package
2725 (name "ghc-contravariant-extras")
2726 (version "0.3.4")
2727 (source
2728 (origin
2729 (method url-fetch)
2730 (uri (string-append "https://hackage.haskell.org/package/"
2731 "contravariant-extras-" version "/"
2732 "contravariant-extras-" version ".tar.gz"))
2733 (sha256
2734 (base32
2735 "0gg62ccl94kvh7mnvdq09pifqxjx2kgs189si90nmg44bafj7a9n"))))
2736 (build-system haskell-build-system)
f3aca086
TS
2737 (arguments
2738 `(#:cabal-revision
2739 ("1" "1h2955ahga6i4fn7k8v66l03v77p6fhsac6ck8gpabkc08ij60wp")))
dddbc90c
RV
2740 (inputs
2741 `(("ghc-tuple-th" ,ghc-tuple-th)
2742 ("ghc-contravariant" ,ghc-contravariant)
2743 ("ghc-base-prelude" ,ghc-base-prelude)
2744 ("ghc-semigroups" ,ghc-semigroups)))
2745 (home-page "https://github.com/nikita-volkov/contravariant-extras")
2746 (synopsis "Extras for the @code{ghc-contravariant} Haskell package")
2747 (description "This Haskell package provides extras for the
2748@code{ghc-contravariant} package.")
2749 (license license:expat)))
2750
7f2a5650
CH
2751(define-public ghc-control-monad-free
2752 (package
2753 (name "ghc-control-monad-free")
2754 (version "0.6.2")
2755 (source
2756 (origin
2757 (method url-fetch)
2758 (uri (string-append
2759 "https://hackage.haskell.org/"
2760 "package/control-monad-free/control-monad-free-"
2761 version
2762 ".tar.gz"))
2763 (sha256
2764 (base32
2765 "1habgf7byffqf1rqjkzpihvdhclaafgqsqpfpwp3fgpj5ayk1j33"))))
2766 (build-system haskell-build-system)
2767 (home-page "https://github.com/pepeiborra/control-monad-free")
2768 (synopsis "Free monads and monad transformers")
2769 (description
2770 "This package provides datatypes to construct Free monads, Free monad
2771transformers, and useful instances. In addition it provides the constructs to
2772avoid quadratic complexity of left associative bind, as explained in:
2773
2774@itemize @bullet
2775@item
2776Janis Voigtlander, @cite{Asymptotic Improvement of Computations over
2777Free Monads, MPC'08}
2778@end itemize")
2779 (license license:public-domain)))
2780
dddbc90c
RV
2781(define-public ghc-convertible
2782 (package
2783 (name "ghc-convertible")
2784 (version "1.1.1.0")
2785 (source
2786 (origin
2787 (method url-fetch)
2788 (uri (string-append "https://hackage.haskell.org/package/convertible/"
2789 "convertible-" version ".tar.gz"))
2790 (sha256
2791 (base32
2792 "0v18ap1mccnndgxmbfgyjdicg8jlss01bd5fq8a576dr0h4sgyg9"))))
2793 (build-system haskell-build-system)
2794 (inputs
2795 `(("ghc-old-time" ,ghc-old-time)
2796 ("ghc-old-locale" ,ghc-old-locale)))
2797 (home-page "https://hackage.haskell.org/package/convertible")
2798 (synopsis "Typeclasses and instances for converting between types")
2799 (description
2800 "This package provides a typeclass with a single function that is
2801designed to help convert between different types: numeric values, dates and
2802times, and the like. The conversions perform bounds checking and return a
2803pure @code{Either} value. This means that you need not remember which specific
2804function performs the conversion you desire.")
2805 (license license:bsd-3)))
2806
0ff9a717
CH
2807(define-public ghc-csv
2808 (package
2809 (name "ghc-csv")
2810 (version "0.1.2")
2811 (source
2812 (origin
2813 (method url-fetch)
2814 (uri (string-append
2815 "https://hackage.haskell.org/package/csv/csv-"
2816 version
2817 ".tar.gz"))
2818 (sha256
2819 (base32
2820 "00767ai09wm7f0yzmpqck3cpgxncpr9djnmmz5l17ajz69139x4c"))))
2821 (build-system haskell-build-system)
2822 (home-page "http://hackage.haskell.org/package/csv")
2823 (synopsis "CSV loader and dumper")
2824 (description
2825 "This library parses and dumps documents that are formatted according to
2826RFC 4180, @cite{The common Format and MIME Type for Comma-Separated
2827Values (CSV) Files}. This format is used, among many other things, as a
2828lingua franca for spreadsheets, and for certain web services.")
2829 (license license:expat)))
2830
dddbc90c
RV
2831(define-public ghc-data-accessor
2832 (package
2833 (name "ghc-data-accessor")
6dcca515 2834 (version "0.2.2.8")
dddbc90c
RV
2835 (source
2836 (origin
2837 (method url-fetch)
2838 (uri (string-append
2839 "mirror://hackage/package/data-accessor/data-accessor-"
2840 version ".tar.gz"))
2841 (sha256
6dcca515 2842 (base32 "1fq4gygxbz0bd0mzgvc1sl3m4gjnsv8nbgpnmdpa29zj5lb9agxc"))))
dddbc90c 2843 (build-system haskell-build-system)
228d2901 2844 (home-page "https://wiki.haskell.org/Record_access")
dddbc90c
RV
2845 (synopsis
2846 "Haskell utilities for accessing and manipulating fields of records")
2847 (description "This package provides Haskell modules for accessing and
2848manipulating fields of records.")
2849 (license license:bsd-3)))
2850
2851(define-public ghc-data-accessor-transformers
2852 (package
2853 (name "ghc-data-accessor-transformers")
2854 (version "0.2.1.7")
2855 (source
2856 (origin
2857 (method url-fetch)
2858 (uri (string-append
2859 "mirror://hackage/package/data-accessor-transformers/"
2860 "data-accessor-transformers-" version ".tar.gz"))
2861 (sha256
2862 (base32 "0yp030vafbpddl27m606aibbbr5ar5j5bsv4bksscz3cq4yq5j10"))))
2863 (build-system haskell-build-system)
2864 (inputs `(("ghc-data-accessor" ,ghc-data-accessor)))
228d2901 2865 (home-page "https://wiki.haskell.org/Record_access")
dddbc90c
RV
2866 (synopsis "Use Accessor to access state in transformers State monad")
2867 (description "This package provides Haskell modules to allow use of
2868Accessor to access state in transformers State monad.")
2869 (license license:bsd-3)))
2870
2871(define-public ghc-data-default
2872 (package
2873 (name "ghc-data-default")
2874 (version "0.7.1.1")
2875 (source
2876 (origin
2877 (method url-fetch)
2878 (uri (string-append
2879 "https://hackage.haskell.org/package/data-default/data-default-"
2880 version
2881 ".tar.gz"))
2882 (sha256
2883 (base32 "04d5n8ybmcxba9qb6h389w9zfq1lvj81b82jh6maqp6pkhkmvydh"))))
2884 (build-system haskell-build-system)
2885 (inputs
2886 `(("ghc-data-default-class"
2887 ,ghc-data-default-class)
2888 ("ghc-data-default-instances-base"
2889 ,ghc-data-default-instances-base)
2890 ("ghc-data-default-instances-containers"
2891 ,ghc-data-default-instances-containers)
2892 ("ghc-data-default-instances-dlist"
2893 ,ghc-data-default-instances-dlist)
2894 ("ghc-data-default-instances-old-locale"
2895 ,ghc-data-default-instances-old-locale)))
2896 (home-page "https://hackage.haskell.org/package/data-default")
2897 (synopsis "Types with default values")
2898 (description
2899 "This package defines a class for types with a default value, and
2900provides instances for types from the base, containers, dlist and old-locale
2901packages.")
2902 (license license:bsd-3)))
2903
2904(define-public ghc-data-default-class
2905 (package
2906 (name "ghc-data-default-class")
2907 (version "0.1.2.0")
2908 (source
2909 (origin
2910 (method url-fetch)
2911 (uri (string-append
2912 "https://hackage.haskell.org/package/data-default-class/"
2913 "data-default-class-" version ".tar.gz"))
2914 (sha256
2915 (base32 "0miyjz8d4jyvqf2vp60lyfbnflx6cj2k8apmm9ly1hq0y0iv80ag"))))
2916 (build-system haskell-build-system)
2917 (home-page "https://hackage.haskell.org/package/data-default-class")
2918 (synopsis "Types with default values")
2919 (description
2920 "This package defines a class for types with default values.")
2921 (license license:bsd-3)))
2922
2923(define-public ghc-data-default-instances-base
2924 (package
2925 (name "ghc-data-default-instances-base")
2926 (version "0.1.0.1")
2927 (source
2928 (origin
2929 (method url-fetch)
2930 (uri (string-append
2931 "https://hackage.haskell.org/package/"
2932 "data-default-instances-base/"
2933 "data-default-instances-base-" version ".tar.gz"))
2934 (sha256
2935 (base32 "0ym1sw3ssdzzifxxhh76qlv8kkmb2iclc158incv1dklyr9y8kw4"))))
2936 (build-system haskell-build-system)
2937 (inputs
2938 `(("ghc-data-default-class" ,ghc-data-default-class)))
2939 (home-page "https://hackage.haskell.org/package/data-default-instances-base")
2940 (synopsis "Default instances for types in base")
2941 (description
2942 "This package provides default instances for types from the base
2943package.")
2944 (license license:bsd-3)))
2945
2946(define-public ghc-data-default-instances-containers
2947 (package
2948 (name "ghc-data-default-instances-containers")
2949 (version "0.0.1")
2950 (source
2951 (origin
2952 (method url-fetch)
2953 (uri (string-append
2954 "https://hackage.haskell.org/package/"
2955 "data-default-instances-containers/"
2956 "data-default-instances-containers-" version ".tar.gz"))
2957 (sha256
2958 (base32 "06h8xka031w752a7cjlzghvr8adqbl95xj9z5zc1b62w02phfpm5"))))
2959 (build-system haskell-build-system)
2960 (inputs
2961 `(("ghc-data-default-class" ,ghc-data-default-class)))
2962 (home-page "https://hackage.haskell.org/package/data-default-instances-containers")
2963 (synopsis "Default instances for types in containers")
2964 (description "Provides default instances for types from the containers
2965package.")
2966 (license license:bsd-3)))
2967
2968(define-public ghc-data-default-instances-dlist
2969 (package
2970 (name "ghc-data-default-instances-dlist")
2971 (version "0.0.1")
2972 (source
2973 (origin
2974 (method url-fetch)
2975 (uri (string-append
2976 "https://hackage.haskell.org/package/"
2977 "data-default-instances-dlist/"
2978 "data-default-instances-dlist-" version ".tar.gz"))
2979 (sha256
2980 (base32 "0narkdqiprhgayjiawrr4390h4rq4pl2pb6mvixbv2phrc8kfs3x"))))
2981 (build-system haskell-build-system)
2982 (inputs
2983 `(("ghc-data-default-class" ,ghc-data-default-class)
2984 ("ghc-dlist" ,ghc-dlist)))
2985 (home-page "https://hackage.haskell.org/package/data-default-instances-dlist")
2986 (synopsis "Default instances for types in dlist")
2987 (description "Provides default instances for types from the dlist
2988package.")
2989 (license license:bsd-3)))
2990
2991(define-public ghc-data-default-instances-old-locale
2992 (package
2993 (name "ghc-data-default-instances-old-locale")
2994 (version "0.0.1")
2995 (source
2996 (origin
2997 (method url-fetch)
2998 (uri (string-append
2999 "https://hackage.haskell.org/package/"
3000 "data-default-instances-old-locale/"
3001 "data-default-instances-old-locale-" version ".tar.gz"))
3002 (sha256
3003 (base32 "00h81i5phib741yj517p8mbnc48myvfj8axzsw44k34m48lv1lv0"))))
3004 (build-system haskell-build-system)
3005 (inputs
3006 `(("ghc-data-default-class" ,ghc-data-default-class)
3007 ("ghc-old-locale" ,ghc-old-locale)))
3008 (home-page
3009 "https://hackage.haskell.org/package/data-default-instances-old-locale")
3010 (synopsis "Default instances for types in old-locale")
3011 (description "Provides Default instances for types from the old-locale
3012 package.")
3013 (license license:bsd-3)))
3014
82c36002
JS
3015(define-public ghc-data-fix
3016 (package
3017 (name "ghc-data-fix")
3018 (version "0.2.0")
3019 (source
3020 (origin
3021 (method url-fetch)
3022 (uri (string-append
3023 "mirror://hackage/package/data-fix/"
3024 "data-fix-" version ".tar.gz"))
3025 (sha256
3026 (base32 "14hk6hq5hdb3l5bhmzhw086jpzlvp9qbw9dzw30wlz5jbh2ihmvy"))))
3027 (build-system haskell-build-system)
3028 (home-page "https://github.com/spell-music/data-fix")
3029 (synopsis "Fixpoint data types")
3030 (description
3031 "Fixpoint types and recursion schemes. If you define your AST as
3032fixpoint type, you get fold and unfold operations for free.
3033
3034Thanks for contribution to: Matej Kollar, Herbert Valerio Riedel")
3035 (license license:bsd-3)))
3036
dddbc90c
RV
3037(define-public ghc-data-hash
3038 (package
3039 (name "ghc-data-hash")
3040 (version "0.2.0.1")
3041 (source
3042 (origin
3043 (method url-fetch)
3044 (uri (string-append "https://hackage.haskell.org/package/data-hash"
3045 "/data-hash-" version ".tar.gz"))
3046 (sha256
3047 (base32 "1ghbqvc48gf9p8wiy71hdpaj7by3b9cw6wgwi3qqz8iw054xs5wi"))))
3048 (build-system haskell-build-system)
3049 (inputs
3050 `(("ghc-quickcheck" ,ghc-quickcheck)
3051 ("ghc-test-framework" ,ghc-test-framework)
3052 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
3053 (home-page "https://hackage.haskell.org/package/data-hash")
3054 (synopsis "Combinators for building fast hashing functions")
3055 (description
3056 "This package provides combinators for building fast hashing functions.
3057It includes hashing functions for all basic Haskell98 types.")
3058 (license license:bsd-3)))
3059
3060(define-public ghc-data-ordlist
3061 (package
3062 (name "ghc-data-ordlist")
3063 (version "0.4.7.0")
3064 (source
3065 (origin
3066 (method url-fetch)
3067 (uri (string-append
3068 "https://hackage.haskell.org/package/data-ordlist/data-ordlist-"
3069 version ".tar.gz"))
3070 (sha256
3071 (base32
3072 "03a9ix1fcx08viwv2jg5ndw1qbkydyyrmjvqr9wasmcik9x1wv3g"))))
3073 (build-system haskell-build-system)
3074 (home-page "https://hackage.haskell.org/package/data-ordlist")
3075 (synopsis "Set and bag operations on ordered lists")
3076 (description
3077 "This module provides set and multiset operations on ordered lists.")
3078 (license license:bsd-3)))
3079
d05f32d6
JS
3080(define-public ghc-dbus
3081 (package
3082 (name "ghc-dbus")
3083 (version "1.2.7")
3084 (source
3085 (origin
3086 (method url-fetch)
3087 (uri
3088 (string-append
3089 "mirror://hackage/package/dbus/dbus-"
3090 version ".tar.gz"))
3091 (sha256
3092 (base32
3093 "0ypkjlw9fn65g7p28kb3p82glk7qs7p7vyffccw7qxa3z57s12w5"))))
3094 (build-system haskell-build-system)
3095 (inputs
3096 `(("ghc-cereal" ,ghc-cereal)
3097 ("ghc-conduit" ,ghc-conduit)
3098 ("ghc-exceptions" ,ghc-exceptions)
3099 ("ghc-lens" ,ghc-lens)
3100 ("ghc-network" ,ghc-network)
3101 ("ghc-random" ,ghc-random)
3102 ("ghc-split" ,ghc-split)
3103 ("ghc-th-lift" ,ghc-th-lift)
3104 ("ghc-vector" ,ghc-vector)
3105 ("ghc-xml-conduit" ,ghc-xml-conduit)
3106 ("ghc-xml-types" ,ghc-xml-types)))
3107 (native-inputs
3108 `(("ghc-extra" ,ghc-extra)
3109 ("ghc-quickcheck" ,ghc-quickcheck)
3110 ("ghc-resourcet" ,ghc-resourcet)
3111 ("ghc-tasty" ,ghc-tasty)
3112 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
3113 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
3114 ;; FIXME - Some tests try to talk to network.
3115 (arguments `(#:tests? #f))
3116 (home-page "https://github.com/rblaze/haskell-dbus")
3117 (synopsis "Client library for the D-Bus IPC system")
3118 (description
3119 "D-Bus is a simple, message-based protocol for inter-process
3120communication, which allows applications to interact with other parts
3121of the machine and the user's session using remote procedure
3122calls. D-Bus is a essential part of the modern Linux desktop, where
3123it replaces earlier protocols such as CORBA and DCOP. This library
3124is an implementation of the D-Bus protocol in Haskell. It can be used
3125to add D-Bus support to Haskell applications, without the awkward
3126interfaces common to foreign bindings.")
3127 (license license:asl2.0)))
3128
9b3b327a
CH
3129(define-public ghc-decimal
3130 (package
3131 (name "ghc-decimal")
3132 (version "0.5.1")
3133 (source
3134 (origin
3135 (method url-fetch)
3136 (uri (string-append
3137 "https://hackage.haskell.org/package/Decimal/Decimal-"
3138 version
3139 ".tar.gz"))
3140 (sha256
3141 (base32
3142 "0k7kh05mr2f54w1lpgq1nln0h8k6s6h99dyp5jzsb9cfbb3aap2p"))))
3143 (build-system haskell-build-system)
3144 (native-inputs
3145 `(("ghc-hunit" ,ghc-hunit)
3146 ("ghc-quickcheck" ,ghc-quickcheck)
3147 ("ghc-test-framework" ,ghc-test-framework)
3148 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)
3149 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)))
3150 (home-page "https://github.com/PaulJohnson/Haskell-Decimal")
3151 (synopsis "Decimal numbers with variable precision")
3152 (description
3153 "A decimal number has an integer mantissa and a negative exponent.
3154The exponent can be interpreted as the number of decimal places in the
3155value.")
3156 (license license:bsd-3)))
3157
dddbc90c
RV
3158(define-public ghc-deepseq-generics
3159 (package
3160 (name "ghc-deepseq-generics")
3161 (version "0.2.0.0")
3162 (source (origin
3163 (method url-fetch)
3164 (uri (string-append "https://hackage.haskell.org/package/"
3165 "deepseq-generics/deepseq-generics-"
3166 version ".tar.gz"))
3167 (sha256
3168 (base32
3169 "17bwghc15mc9pchfd1w46jh2p3wzc86aj6a537wqwxn08rayzcxh"))))
3170 (build-system haskell-build-system)
3171 (arguments
3172 `(#:cabal-revision
490ceae4 3173 ("4" "0928s2qnbqsjzrm94x88rvmvbigfmhcyp4m73gw6asinp2qg1kii")))
dddbc90c
RV
3174 (native-inputs
3175 `(("ghc-hunit" ,ghc-hunit)
3176 ("ghc-test-framework" ,ghc-test-framework)
3177 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)))
3178 (home-page "https://github.com/hvr/deepseq-generics")
3179 (synopsis "Generic RNF implementation")
3180 (description
3181 "This package provides a @code{GHC.Generics}-based
3182@code{Control.DeepSeq.Generics.genericRnf} function which can be used for
3183providing an @code{rnf} implementation.")
3184 (license license:bsd-3)))
3185
e924e17e
TS
3186(define-public ghc-dense-linear-algebra
3187 (package
3188 (name "ghc-dense-linear-algebra")
3189 (version "0.1.0.0")
3190 (source
3191 (origin
3192 (method url-fetch)
3193 (uri (string-append "https://hackage.haskell.org/package/"
3194 "dense-linear-algebra/dense-linear-algebra-"
3195 version ".tar.gz"))
3196 (sha256
3197 (base32
3198 "1m7jjxahqxj7ilic3r9806mwp5rnnsmn8vvipkmk40xl65wplxzp"))))
3199 (build-system haskell-build-system)
3200 (inputs
3201 `(("ghc-math-functions" ,ghc-math-functions)
3202 ("ghc-primitive" ,ghc-primitive)
3203 ("ghc-vector" ,ghc-vector)
3204 ("ghc-vector-algorithms" ,ghc-vector-algorithms)
3205 ("ghc-vector-th-unbox" ,ghc-vector-th-unbox)
3206 ("ghc-vector-binary-instances" ,ghc-vector-binary-instances)))
3207 (native-inputs
3208 `(("ghc-hspec" ,ghc-hspec)
3209 ("ghc-quickcheck" ,ghc-quickcheck)))
50153437 3210 (home-page "https://hackage.haskell.org/package/dense-linear-algebra")
e924e17e
TS
3211 (synopsis "Simple and incomplete implementation of linear algebra")
3212 (description "This library is simply a collection of linear-algebra
3213related modules split from the statistics library.")
3214 (license license:bsd-2)))
3215
dddbc90c
RV
3216(define-public ghc-descriptive
3217 (package
3218 (name "ghc-descriptive")
3219 (version "0.9.5")
3220 (source
3221 (origin
3222 (method url-fetch)
3223 (uri (string-append
3224 "https://hackage.haskell.org/package/descriptive/descriptive-"
3225 version
3226 ".tar.gz"))
3227 (sha256
3228 (base32
3229 "0y5693zm2kvqjilybbmrcv1g6n6x2p6zjgi0k0axjw1sdhh1g237"))))
3230 (build-system haskell-build-system)
3231 (inputs
3232 `(("ghc-aeson" ,ghc-aeson)
3233 ("ghc-bifunctors" ,ghc-bifunctors)
3234 ("ghc-scientific" ,ghc-scientific)
3235 ("ghc-vector" ,ghc-vector)))
3236 (native-inputs
3237 `(("ghc-hunit" ,ghc-hunit)
3238 ("ghc-hspec" ,ghc-hspec)))
3239 (home-page
3240 "https://github.com/chrisdone/descriptive")
3241 (synopsis
3242 "Self-describing consumers/parsers: forms, cmd-line args, JSON, etc.")
3243 (description
3244 "This package provides datatypes and functions for creating consumers
3245and parsers with useful semantics.")
3246 (license license:bsd-3)))
3247
1859c94a
TS
3248(define-public ghc-diagrams-core
3249 (package
3250 (name "ghc-diagrams-core")
3251 (version "1.4.2")
3252 (source
3253 (origin
3254 (method url-fetch)
3255 (uri (string-append "https://hackage.haskell.org/package/"
3256 "diagrams-core/diagrams-core-" version ".tar.gz"))
3257 (sha256
3258 (base32
3259 "0qgb43vy23g4fxh3nmxfq6jyp34imqvkhgflaa6rz0iq6d60gl43"))))
3260 (build-system haskell-build-system)
3261 (inputs
3262 `(("ghc-unordered-containers" ,ghc-unordered-containers)
3263 ("ghc-semigroups" ,ghc-semigroups)
3264 ("ghc-monoid-extras" ,ghc-monoid-extras)
3265 ("ghc-dual-tree" ,ghc-dual-tree)
3266 ("ghc-lens" ,ghc-lens)
3267 ("ghc-linear" ,ghc-linear)
3268 ("ghc-adjunctions" ,ghc-adjunctions)
3269 ("ghc-distributive" ,ghc-distributive)
3270 ("ghc-profunctors" ,ghc-profunctors)))
3271 (home-page "https://archives.haskell.org/projects.haskell.org/diagrams/")
3272 (synopsis "Core libraries for diagrams embedded domain-specific language")
3273 (description "This package provides the core modules underlying
3274diagrams, an embedded domain-specific language for compositional,
3275declarative drawing.")
3276 (license license:bsd-3)))
3277
f9f1a630
TS
3278(define-public ghc-diagrams-lib
3279 (package
3280 (name "ghc-diagrams-lib")
3281 (version "1.4.2.3")
3282 (source
3283 (origin
3284 (method url-fetch)
3285 (uri (string-append "https://hackage.haskell.org/package/"
3286 "diagrams-lib/diagrams-lib-" version ".tar.gz"))
3287 (sha256
3288 (base32
3289 "175yzi5kw4yd8ykdkpf64q85c7j3p89l90m3h6qcsx9ipv6av9r5"))))
3290 (build-system haskell-build-system)
3291 (inputs
3292 `(("ghc-semigroups" ,ghc-semigroups)
3293 ("ghc-monoid-extras" ,ghc-monoid-extras)
3294 ("ghc-dual-tree" ,ghc-dual-tree)
3295 ("ghc-diagrams-core" ,ghc-diagrams-core)
3296 ("ghc-diagrams-solve" ,ghc-diagrams-solve)
3297 ("ghc-active" ,ghc-active)
3298 ("ghc-colour" ,ghc-colour)
3299 ("ghc-data-default-class" ,ghc-data-default-class)
3300 ("ghc-fingertree" ,ghc-fingertree)
3301 ("ghc-intervals" ,ghc-intervals)
3302 ("ghc-lens" ,ghc-lens)
3303 ("ghc-tagged" ,ghc-tagged)
3304 ("ghc-optparse-applicative" ,ghc-optparse-applicative)
3305 ("ghc-juicypixels" ,ghc-juicypixels)
3306 ("ghc-hashable" ,ghc-hashable)
3307 ("ghc-linear" ,ghc-linear)
3308 ("ghc-adjunctions" ,ghc-adjunctions)
3309 ("ghc-distributive" ,ghc-distributive)
3310 ("ghc-fsnotify" ,ghc-fsnotify)
3311 ("ghc-unordered-containers" ,ghc-unordered-containers)
3312 ("ghc-profunctors" ,ghc-profunctors)
3313 ("ghc-exceptions" ,ghc-exceptions)
3314 ("ghc-cereal" ,ghc-cereal)))
3315 (native-inputs
3316 `(("ghc-tasty" ,ghc-tasty)
3317 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
3318 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
3319 ("ghc-numeric-extras" ,ghc-numeric-extras)))
3320 (arguments
3321 `(#:cabal-revision
3322 ("3" "157y2qdsh0aczs81vzlm377mks976mpv6y3aqnchwsnr7apzp8ai")))
3323 (home-page "https://archives.haskell.org/projects.haskell.org/diagrams/")
3324 (synopsis "Embedded domain-specific language for declarative graphics")
3325 (description "Diagrams is a flexible, extensible embedded
3326domain-specific language (EDSL) for creating graphics of many types.
3327Graphics can be created in arbitrary vector spaces and rendered with
3328multiple backends. This package provides a standard library of
3329primitives and operations for creating diagrams.")
3330 (license license:bsd-3)))
3331
fd33ffa0
TS
3332(define-public ghc-diagrams-solve
3333 (package
3334 (name "ghc-diagrams-solve")
3335 (version "0.1.1")
3336 (source
3337 (origin
3338 (method url-fetch)
3339 (uri (string-append "https://hackage.haskell.org/package/"
3340 "diagrams-solve/diagrams-solve-"
3341 version ".tar.gz"))
3342 (sha256
3343 (base32
3344 "17agchqkmj14b17sw50kzxq4hm056g5d8yy0wnqn5w8h1d0my7x4"))))
3345 (build-system haskell-build-system)
3346 (native-inputs
3347 `(("ghc-tasty" ,ghc-tasty)
3348 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
3349 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
3350 (arguments
3351 `(#:cabal-revision
3352 ("5" "1yl8cs05fzqcz49p601am1ij66m9pa70yamhfxgcvya2pf8nimlf")))
3353 (home-page "https://archives.haskell.org/projects.haskell.org/diagrams/")
3354 (synopsis "Pure Haskell solver routines used by diagrams")
3355 (description "This library provides Pure Haskell solver routines for
3356use by the
3357@url{https://archives.haskell.org/projects.haskell.org/diagrams/,
3358diagrams framework}. It currently includes routines for finding real
3359roots of low-degree (@math{n < 5}) polynomials, and solving tridiagonal
3360and cyclic tridiagonal linear systems.")
3361 (license license:bsd-3)))
3362
74be1cb7
TS
3363(define-public ghc-diagrams-svg
3364 (package
3365 (name "ghc-diagrams-svg")
3366 (version "1.4.2")
3367 (source
3368 (origin
3369 (method url-fetch)
3370 (uri (string-append "https://hackage.haskell.org/package/"
3371 "diagrams-svg/diagrams-svg-" version ".tar.gz"))
3372 (sha256
3373 (base32
3374 "1lnyxx45yawqas7hmvvannwaa3ycf1l9g40lsl2m8sl2ja6vcmal"))))
3375 (build-system haskell-build-system)
3376 (inputs
3377 `(("ghc-base64-bytestring" ,ghc-base64-bytestring)
3378 ("ghc-colour" ,ghc-colour)
3379 ("ghc-diagrams-core" ,ghc-diagrams-core)
3380 ("ghc-diagrams-lib" ,ghc-diagrams-lib)
3381 ("ghc-monoid-extras" ,ghc-monoid-extras)
3382 ("ghc-svg-builder" ,ghc-svg-builder)
3383 ("ghc-juicypixels" ,ghc-juicypixels)
3384 ("ghc-split" ,ghc-split)
3385 ("ghc-lens" ,ghc-lens)
3386 ("ghc-hashable" ,ghc-hashable)
3387 ("ghc-optparse-applicative" ,ghc-optparse-applicative)
3388 ("ghc-semigroups" ,ghc-semigroups)))
3389 (arguments
3390 `(#:cabal-revision
3391 ("2" "15sn85xaachw4cj56w61bjcwrbf4qmnkfl8mbgdapxi5k0y4f2qv")))
3392 (home-page "https://archives.haskell.org/projects.haskell.org/diagrams/")
3393 (synopsis "Scalable Vector Grpahics backend for the diagrams framework")
3394 (description "This package provides a modular backend for rendering
3395diagrams created with the diagrams embedded domain-specific
3396language (EDSL) to Scalable Vector Graphics (SVG) files.")
3397 (license license:bsd-3)))
3398
4eb9a167
TS
3399(define-public ghc-dictionary-sharing
3400 (package
3401 (name "ghc-dictionary-sharing")
3402 (version "0.1.0.0")
3403 (source
3404 (origin
3405 (method url-fetch)
3406 (uri (string-append "https://hackage.haskell.org/package/"
3407 "dictionary-sharing/dictionary-sharing-"
3408 version ".tar.gz"))
3409 (sha256
3410 (base32
3411 "00aspv943qdqhlk39mbk00kb1dsa5r0caj8sslrn81fnsn252fwc"))))
3412 (build-system haskell-build-system)
3413 (arguments
3414 `(#:cabal-revision
3415 ("3" "1mn7jcc7h3b8f1pn9zigqp6mc2n0qb66lms5qnrx4zswdv5w9439")))
3416 (home-page "https://hackage.haskell.org/package/dictionary-sharing")
3417 (synopsis "Sharing/memoization of class members")
3418 (description "This library provides tools for ensuring that class
3419members are shared.")
3420 (license license:bsd-3)))
3421
dddbc90c
RV
3422(define-public ghc-diff
3423 (package
3424 (name "ghc-diff")
3425 (version "0.3.4")
3426 (source (origin
3427 (method url-fetch)
3428 (uri (string-append "https://hackage.haskell.org/package/"
3429 "Diff/Diff-" version ".tar.gz"))
a531ff94 3430 (patches (search-patches "ghc-diff-swap-cover-args.patch"))
dddbc90c
RV
3431 (sha256
3432 (base32
3433 "0bqcdvhxx8dmqc3793m6axg813wv9ldz2j37f1wygbbrbbndmdvp"))))
3434 (build-system haskell-build-system)
3435 (native-inputs
3436 `(("ghc-quickcheck" ,ghc-quickcheck)
3437 ("ghc-test-framework" ,ghc-test-framework)
3438 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
3439 (home-page "https://hub.darcs.net/sterlingclover/Diff")
3440 (synopsis "O(ND) diff algorithm in Haskell")
3441 (description
3442 "This package provides an implementation of the standard diff algorithm,
3443and utilities for pretty printing.")
3444 (license license:bsd-3)))
3445
3446(define-public ghc-disk-free-space
3447 (package
3448 (name "ghc-disk-free-space")
3449 (version "0.1.0.1")
3450 (source
3451 (origin
3452 (method url-fetch)
3453 (uri (string-append "https://hackage.haskell.org/package/"
3454 "disk-free-space/disk-free-space-"
3455 version ".tar.gz"))
3456 (sha256
3457 (base32
3458 "07rqj8k1vh3cykq9yidpjxhgh1f7vgmjs6y1nv5kq2217ff4yypi"))))
3459 (build-system haskell-build-system)
3460 (home-page "https://github.com/redneb/disk-free-space")
3461 (synopsis "Retrieve information about disk space usage")
3462 (description "A cross-platform library for retrieving information about
3463disk space usage.")
3464 (license license:bsd-3)))
3465
3466(define-public ghc-distributive
3467 (package
3468 (name "ghc-distributive")
78215a14 3469 (version "0.6.2")
dddbc90c
RV
3470 (source
3471 (origin
3472 (method url-fetch)
3473 (uri (string-append
3474 "https://hackage.haskell.org/package/distributive/distributive-"
3475 version
3476 ".tar.gz"))
3477 (sha256
3478 (base32
78215a14 3479 "1j93zkfffm6s16kgr0j0z87y5ds28rw0r2gyc5ncwcylvrqy4kl2"))))
dddbc90c 3480 (build-system haskell-build-system)
dddbc90c
RV
3481 (inputs
3482 `(("ghc-tagged" ,ghc-tagged)
3483 ("ghc-base-orphans" ,ghc-base-orphans)
3484 ("ghc-transformers-compat" ,ghc-transformers-compat)
3485 ("ghc-semigroups" ,ghc-semigroups)
3486 ("ghc-generic-deriving" ,ghc-generic-deriving)))
3487 (native-inputs
3488 `(("cabal-doctest" ,cabal-doctest)
3489 ("ghc-doctest" ,ghc-doctest)
3490 ("ghc-hspec" ,ghc-hspec)
3491 ("hspec-discover" ,hspec-discover)))
3492 (home-page "https://github.com/ekmett/distributive/")
3493 (synopsis "Distributive functors for Haskell")
3494 (description "This package provides distributive functors for Haskell.
3495Dual to @code{Traversable}.")
3496 (license license:bsd-3)))
3497
3498(define-public ghc-dlist
3499 (package
3500 (name "ghc-dlist")
197ddf33 3501 (version "0.8.0.7")
dddbc90c
RV
3502 (source
3503 (origin
3504 (method url-fetch)
3505 (uri (string-append
3506 "https://hackage.haskell.org/package/dlist/dlist-"
3507 version
3508 ".tar.gz"))
3509 (sha256
197ddf33 3510 (base32 "0b5spkzvj2kx8pk86xz0djkxs13j7dryf5fl16dk4mlp1wh6mh53"))))
dddbc90c
RV
3511 (build-system haskell-build-system)
3512 (inputs
3513 `(("ghc-quickcheck" ,ghc-quickcheck)))
3514 (home-page "https://github.com/spl/dlist")
3515 (synopsis "Difference lists")
3516 (description
3517 "Difference lists are a list-like type supporting O(1) append. This is
3518particularly useful for efficient logging and pretty printing (e.g. with the
3519Writer monad), where list append quickly becomes too expensive.")
3520 (license license:bsd-3)))
3521
3522(define-public ghc-doctemplates
3523 (package
3524 (name "ghc-doctemplates")
3525 (version "0.2.2.1")
3526 (source
3527 (origin
3528 (method url-fetch)
3529 (uri (string-append "https://hackage.haskell.org/package/"
3530 "doctemplates/doctemplates-"
3531 version ".tar.gz"))
3532 (sha256
3533 (base32
3534 "1gyckfg3kgvzhxw14i7iwrw0crygvsp86sy53bbr1yn7bxbgn33b"))))
3535 (build-system haskell-build-system)
3536 (inputs
3537 `(("ghc-aeson" ,ghc-aeson)
3538 ("ghc-blaze-markup" ,ghc-blaze-markup)
3539 ("ghc-blaze-html" ,ghc-blaze-html)
3540 ("ghc-vector" ,ghc-vector)
3541 ("ghc-unordered-containers" ,ghc-unordered-containers)
3542 ("ghc-scientific" ,ghc-scientific)))
3543 (native-inputs
3544 `(("ghc-hspec" ,ghc-hspec)))
3545 (home-page "https://github.com/jgm/doctemplates#readme")
3546 (synopsis "Pandoc-style document templates")
3547 (description
3548 "This package provides a simple text templating system used by pandoc.")
3549 (license license:bsd-3)))
3550
3551(define-public ghc-doctest
3552 (package
3553 (name "ghc-doctest")
232eab1d 3554 (version "0.16.3")
dddbc90c
RV
3555 (source
3556 (origin
3557 (method url-fetch)
3558 (uri (string-append
3559 "https://hackage.haskell.org/package/doctest/doctest-"
3560 version
3561 ".tar.gz"))
3562 (sha256
3563 (base32
232eab1d 3564 "1y1l7aa80qkib1z8lsizgg7fpfdmdwhxvi5m255a42jdkjgn5sfg"))))
dddbc90c
RV
3565 (build-system haskell-build-system)
3566 (arguments `(#:tests? #f)) ; FIXME: missing test framework
3567 (inputs
232eab1d 3568 `(("ghc-base-compat" ,ghc-base-compat)
dddbc90c 3569 ("ghc-code-page" ,ghc-code-page)
232eab1d
CH
3570 ("ghc-paths" ,ghc-paths)
3571 ("ghc-syb" ,ghc-syb)))
3572 (native-inputs
3573 `(("ghc-hunit" ,ghc-hunit)
dddbc90c 3574 ("ghc-quickcheck" ,ghc-quickcheck)
232eab1d
CH
3575 ("ghc-hspec" ,ghc-hspec)
3576 ("ghc-hspec-core" ,ghc-hspec-core)
3577 ("ghc-mockery" ,ghc-mockery)
3578 ("ghc-setenv" ,ghc-setenv)
dddbc90c 3579 ("ghc-silently" ,ghc-silently)
232eab1d 3580 ("ghc-stringbuilder" ,ghc-stringbuilder)))
dddbc90c
RV
3581 (home-page
3582 "https://github.com/sol/doctest#readme")
3583 (synopsis "Test interactive Haskell examples")
3584 (description "The doctest program checks examples in source code comments.
3585It is modeled after doctest for Python, see
3586@uref{https://docs.python.org/library/doctest.html, the Doctest website}.")
3587 (license license:expat)))
3588
2b2c8911
JS
3589(define-public ghc-dotgen
3590 (package
3591 (name "ghc-dotgen")
3592 (version "0.4.2")
3593 (source
3594 (origin
3595 (method url-fetch)
3596 (uri (string-append
3597 "mirror://hackage/package/dotgen/dotgen-"
3598 version
3599 ".tar.gz"))
3600 (sha256
3601 (base32
3602 "148q93qsmqgr5pzdwvpjqfd6bdm1pwzcp2rblfwswx2x8c5f43fg"))))
3603 (build-system haskell-build-system)
3604 (home-page "https://github.com/ku-fpg/dotgen")
3605 (synopsis
3606 "Simple interface for building .dot graph files")
3607 (description
3608 "This package provides a simple interface for building .dot graph
3609files, for input into the dot and graphviz tools. It includes a
3610monadic interface for building graphs.")
3611 (license license:bsd-3)))
3612
dddbc90c
RV
3613(define-public ghc-double-conversion
3614 (package
3615 (name "ghc-double-conversion")
3616 (version "2.0.2.0")
3617 (source
3618 (origin
3619 (method url-fetch)
3620 (uri (string-append "https://hackage.haskell.org/package/"
3621 "double-conversion/double-conversion-"
3622 version ".tar.gz"))
3623 (sha256
3624 (base32
3625 "0sx2kc1gw72mjvd8vph8bbjw5whfxfv92rsdhjg1c0al75rf3ka4"))))
3626 (build-system haskell-build-system)
3627 (native-inputs
3628 `(("ghc-hunit" ,ghc-hunit)
3629 ("ghc-test-framework" ,ghc-test-framework)
3630 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
3631 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
3632 (home-page "https://github.com/bos/double-conversion")
3633 (synopsis "Fast conversion between double precision floating point and text")
3634 (description
3635 "This package provides a library that performs fast, accurate conversion
3636between double precision floating point and text.")
3637 (license license:bsd-3)))
3638
577a78b7
TS
3639(define-public ghc-dual-tree
3640 (package
3641 (name "ghc-dual-tree")
3642 (version "0.2.2.1")
3643 (source
3644 (origin
3645 (method url-fetch)
3646 (uri (string-append "https://hackage.haskell.org/package/"
3647 "dual-tree/dual-tree-" version ".tar.gz"))
3648 (sha256
3649 (base32
3650 "17kdfnf0df0z5pkiifxrlmyd1xd7hjjaazd2kzyajl0gd00vbszx"))))
3651 (build-system haskell-build-system)
3652 (inputs
3653 `(("ghc-semigroups" ,ghc-semigroups)
3654 ("ghc-newtype-generics" ,ghc-newtype-generics)
3655 ("ghc-monoid-extras" ,ghc-monoid-extras)))
3656 (native-inputs
3657 `(("ghc-quickcheck" ,ghc-quickcheck)
3658 ("ghc-testing-feat" ,ghc-testing-feat)))
3659 (home-page "https://hackage.haskell.org/package/dual-tree")
3660 (synopsis "Rose trees with cached and accumulating monoidal annotations")
3661 (description "Rose (@math{n}-ary) trees with both upwards- (i.e.
3662cached) and downwards-traveling (i.e. accumulating) monoidal
3663annotations. This is used as the core data structure underlying the
3664@url{https://archives.haskell.org/projects.haskell.org/diagrams/,
3665diagrams framework}, but potentially has other applications as well.")
3666 (license license:bsd-3)))
3667
dddbc90c
RV
3668(define-public ghc-easy-file
3669 (package
3670 (name "ghc-easy-file")
3671 (version "0.2.2")
3672 (source
3673 (origin
3674 (method url-fetch)
3675 (uri (string-append
3676 "https://hackage.haskell.org/package/easy-file/easy-file-"
3677 version
3678 ".tar.gz"))
3679 (sha256
3680 (base32
3681 "0zmlcz723051qpn8l8vi51c5rx1blwrw4094jcshkmj8p9r2xxaj"))))
3682 (build-system haskell-build-system)
3683 (home-page
3684 "https://github.com/kazu-yamamoto/easy-file")
3685 (synopsis "File handling library for Haskell")
3686 (description "This library provides file handling utilities for Haskell.")
3687 (license license:bsd-3)))
3688
3689(define-public ghc-easyplot
3690 (package
3691 (name "ghc-easyplot")
3692 (version "1.0")
3693 (source
3694 (origin
3695 (method url-fetch)
3696 (uri (string-append
3697 "https://hackage.haskell.org/package/easyplot/easyplot-"
3698 version ".tar.gz"))
3699 (sha256
3700 (base32 "18kndgvdj2apjpfga6fp7m16y1gx8zrwp3c5vfj03sx4v6jvciqk"))))
3701 (build-system haskell-build-system)
3702 (propagated-inputs `(("gnuplot" ,gnuplot)))
3703 (arguments
3704 `(#:phases (modify-phases %standard-phases
3705 (add-after 'unpack 'fix-setup-suffix
3706 (lambda _ (rename-file "Setup.lhs" "Setup.hs") #t)))))
3707 (home-page "https://hub.darcs.net/scravy/easyplot")
3708 (synopsis "Haskell plotting library based on gnuplot")
3709 (description "This package provides a plotting library for
3710Haskell, using gnuplot for rendering.")
3711 (license license:expat)))
3712
3713(define-public ghc-echo
3714 (package
3715 (name "ghc-echo")
3716 (version "0.1.3")
3717 (source
3718 (origin
3719 (method url-fetch)
3720 (uri (string-append
3721 "https://hackage.haskell.org/package/echo/echo-"
3722 version ".tar.gz"))
3723 (sha256
3724 (base32
3725 "1vw5ykpwhr39wc0hhcgq3r8dh59zq6ib4zxbz1qd2wl21wqhfkvh"))))
3726 (build-system haskell-build-system)
3727 (arguments
3728 `(#:cabal-revision
3729 ("1" "0br8wfiybcw5hand4imiw0i5hacdmrax1dv8g95f35gazffbx42l")))
3730 (home-page "https://github.com/RyanGlScott/echo")
3731 (synopsis "Echo terminal input portably")
3732 (description "The @code{base} library exposes the @code{hGetEcho} and
3733@code{hSetEcho} functions for querying and setting echo status, but
3734unfortunately, neither function works with MinTTY consoles on Windows.
3735This library provides an alternative interface which works with both
3736MinTTY and other consoles.")
3737 (license license:bsd-3)))
3738
3739(define-public ghc-edisonapi
3740 (package
3741 (name "ghc-edisonapi")
3742 (version "1.3.1")
3743 (source
3744 (origin
3745 (method url-fetch)
3746 (uri (string-append "https://hackage.haskell.org/package/EdisonAPI"
3747 "/EdisonAPI-" version ".tar.gz"))
3748 (sha256
3749 (base32 "0vmmlsj8ggbpwx6fkf5fvb6jp0zpx6iba6b28m80lllr2p8bi8wm"))))
3750 (build-system haskell-build-system)
3751 (home-page "http://rwd.rdockins.name/edison/home/")
3752 (synopsis "Library of efficient, purely-functional data structures (API)")
3753 (description
3754 "Edison is a library of purely functional data structures written by
3755Chris Okasaki. It is named after Thomas Alva Edison and for the mnemonic
3756value EDiSon (Efficient Data Structures). Edison provides several families of
3757abstractions, each with multiple implementations. The main abstractions
3758provided by Edison are: Sequences such as stacks, queues, and dequeues;
3759Collections such as sets, bags and heaps; and Associative Collections such as
3760finite maps and priority queues where the priority and element are distinct.")
3761 (license license:expat)))
3762
3763(define-public ghc-edisoncore
3764 (package
3765 (name "ghc-edisoncore")
3766 (version "1.3.2.1")
3767 (source
3768 (origin
3769 (method url-fetch)
3770 (uri (string-append "https://hackage.haskell.org/package/EdisonCore"
3771 "/EdisonCore-" version ".tar.gz"))
3772 (sha256
3773 (base32 "0fgj5iwiv3v2gdgx7kjcr15dcs4x1kvmjspp3p99wyhh0x6h3ikk"))))
3774 (build-system haskell-build-system)
3775 (inputs
3776 `(("ghc-quickcheck" ,ghc-quickcheck)
3777 ("ghc-edisonapi" ,ghc-edisonapi)))
3778 (home-page "http://rwd.rdockins.name/edison/home/")
3779 (synopsis "Library of efficient, purely-functional data structures")
3780 (description
3781 "This package provides the core Edison data structure implementations,
3782including multiple sequence, set, bag, and finite map concrete implementations
3783with various performance characteristics.")
3784 (license license:expat)))
3785
3786(define-public ghc-edit-distance
3787 (package
3788 (name "ghc-edit-distance")
3789 (version "0.2.2.1")
3790 (source
3791 (origin
3792 (method url-fetch)
3793 (uri (string-append "https://hackage.haskell.org/package/edit-distance"
3794 "/edit-distance-" version ".tar.gz"))
3795 (sha256
3796 (base32 "0jkca97zyv23yyilp3jydcrzxqhyk27swhzh82llvban5zp8b21y"))))
3797 (build-system haskell-build-system)
3798 (arguments
3799 `(#:phases
3800 (modify-phases %standard-phases
3801 (add-before 'configure 'update-constraints
3802 (lambda _
3803 (substitute* "edit-distance.cabal"
3804 (("QuickCheck >= 2\\.4 && <2\\.9")
d7d143e5 3805 "QuickCheck >= 2.4 && < 2.14")))))))
dddbc90c
RV
3806 (inputs
3807 `(("ghc-random" ,ghc-random)
3808 ("ghc-test-framework" ,ghc-test-framework)
3809 ("ghc-quickcheck" ,ghc-quickcheck)
3810 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
3811 (home-page "https://github.com/phadej/edit-distance")
3812 (synopsis "Levenshtein and restricted Damerau-Levenshtein edit distances")
3813 (description
3814 "This package provides optimized functions to determine the edit
3815distances for fuzzy matching, including Levenshtein and restricted
3816Damerau-Levenshtein algorithms.")
3817 (license license:bsd-3)))
3818
3ebae41f
TS
3819(define-public ghc-edit-distance-vector
3820 (package
3821 (name "ghc-edit-distance-vector")
3822 (version "1.0.0.4")
3823 (source
3824 (origin
3825 (method url-fetch)
3826 (uri (string-append "https://hackage.haskell.org/package/"
3827 "edit-distance-vector/edit-distance-vector-"
3828 version ".tar.gz"))
3829 (sha256
3830 (base32
3831 "07qgc8dyi9kkzkd3xcd78wdlljy0xwhz65b4r2qg2piidpcdvpxp"))))
3832 (build-system haskell-build-system)
3833 (inputs
3834 `(("ghc-vector" ,ghc-vector)))
3835 (native-inputs
3836 `(("ghc-quickcheck" ,ghc-quickcheck)
3837 ("ghc-quickcheck-instances" ,ghc-quickcheck-instances)))
3838 (home-page "https://github.com/thsutton/edit-distance-vector")
3839 (synopsis "Calculate edit distances and edit scripts between vectors")
3840 (description "This package provides implementation of the
3841Wagner-Fischer dynamic programming algorithm to find the optimal edit
3842script and cost between two sequences. The implementation in this
3843package is specialised to sequences represented with @code{Data.Vector}
3844but is otherwise agnostic to:
3845@itemize
3846@item The type of values in the vectors;
3847@item The type representing edit operations; and
3848@item The type representing the cost of operations.
3849@end itemize")
3850 (license license:bsd-3)) )
3851
dddbc90c
RV
3852(define-public ghc-either
3853 (package
3854 (name "ghc-either")
a3fd4dc7 3855 (version "5.0.1.1")
dddbc90c
RV
3856 (source
3857 (origin
3858 (method url-fetch)
3859 (uri (string-append "https://hackage.haskell.org/package/"
3860 "either-" version "/"
3861 "either-" version ".tar.gz"))
3862 (sha256
3863 (base32
a3fd4dc7 3864 "09yzki8ss56xhy9vggdw1rls86b2kf55hjl5wi0vbv02d8fxahq2"))))
dddbc90c
RV
3865 (build-system haskell-build-system)
3866 (inputs `(("ghc-bifunctors" ,ghc-bifunctors)
3867 ("ghc-exceptions" ,ghc-exceptions)
3868 ("ghc-free" ,ghc-free)
3869 ("ghc-monad-control" ,ghc-monad-control)
3870 ("ghc-manodrandom" ,ghc-monadrandom)
3871 ("ghc-mmorph" ,ghc-mmorph)
3872 ("ghc-profunctors" ,ghc-profunctors)
3873 ("ghc-semigroups" ,ghc-semigroups)
3874 ("ghc-semigroupoids" ,ghc-semigroupoids)
3875 ("ghc-transformers-base" ,ghc-transformers-base)))
3876 (native-inputs
3877 `(("ghc-quickcheck" ,ghc-quickcheck)
3878 ("ghc-test-framework" ,ghc-test-framework)
3879 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
3880 (home-page "https://github.com/ekmett/either")
3881 (synopsis "Provides an either monad transformer for Haskell")
3882 (description "This Haskell package provides an either monad transformer.")
3883 (license license:bsd-3)))
3884
3885(define-public ghc-email-validate
3886 (package
3887 (name "ghc-email-validate")
a4fe1c64 3888 (version "2.3.2.12")
dddbc90c
RV
3889 (source
3890 (origin
3891 (method url-fetch)
3892 (uri (string-append
3893 "https://hackage.haskell.org/package/"
3894 "email-validate/email-validate-"
3895 version
3896 ".tar.gz"))
3897 (sha256
3898 (base32
a4fe1c64 3899 "0ar3cfjia3x11chb7w60mi7hp5djanms883ddk875l6lifr2lyqf"))))
dddbc90c
RV
3900 (build-system haskell-build-system)
3901 (inputs
3902 `(("ghc-attoparsec" ,ghc-attoparsec)
3903 ("ghc-hspec" ,ghc-hspec)
3904 ("ghc-quickcheck" ,ghc-quickcheck)
3905 ("ghc-doctest" ,ghc-doctest)))
3906 (home-page
3907 "https://github.com/Porges/email-validate-hs")
3908 (synopsis "Email address validator for Haskell")
3909 (description
3910 "This Haskell package provides a validator that can validate an email
3911address string against RFC 5322.")
3912 (license license:bsd-3)))
3913
3914(define-public ghc-enclosed-exceptions
3915 (package
3916 (name "ghc-enclosed-exceptions")
3917 (version "1.0.3")
3918 (source (origin
3919 (method url-fetch)
3920 (uri (string-append "https://hackage.haskell.org/package/"
3921 "enclosed-exceptions/enclosed-exceptions-"
3922 version ".tar.gz"))
3923 (sha256
3924 (base32
3925 "1fghjj7nkiddrf03ks8brjpr5x25yi9fs7xg6adbi4mc2gqr6vdg"))))
3926 (build-system haskell-build-system)
3927 ;; FIXME: one of the tests blocks forever:
3928 ;; "thread blocked indefinitely in an MVar operation"
3929 (arguments '(#:tests? #f))
3930 (inputs
3931 `(("ghc-lifted-base" ,ghc-lifted-base)
3932 ("ghc-monad-control" ,ghc-monad-control)
3933 ("ghc-async" ,ghc-async)
3934 ("ghc-transformers-base" ,ghc-transformers-base)))
3935 (native-inputs
3936 `(("ghc-hspec" ,ghc-hspec)
3937 ("ghc-quickcheck" ,ghc-quickcheck)))
3938 (home-page "https://github.com/jcristovao/enclosed-exceptions")
3939 (synopsis "Catch all exceptions from within an enclosed computation")
3940 (description
3941 "This library implements a technique to catch all exceptions raised
3942within an enclosed computation, while remaining responsive to (external)
3943asynchronous exceptions.")
3944 (license license:expat)))
3945
3946(define-public ghc-equivalence
3947 (package
3948 (name "ghc-equivalence")
801cf5b1 3949 (version "0.3.5")
dddbc90c
RV
3950 (source
3951 (origin
3952 (method url-fetch)
3953 (uri (string-append "https://hackage.haskell.org/package/equivalence"
3954 "/equivalence-" version ".tar.gz"))
3955 (sha256
801cf5b1 3956 (base32 "167njzd1cf32aa7br90rjafrxy6hw3fxkk8awifqbxjrcwm5maqp"))))
dddbc90c
RV
3957 (build-system haskell-build-system)
3958 (inputs
3959 `(("ghc-stmonadtrans" ,ghc-stmonadtrans)
3960 ("ghc-transformers-compat" ,ghc-transformers-compat)
801cf5b1
TS
3961 ("ghc-fail" ,ghc-fail)
3962 ("ghc-quickcheck" ,ghc-quickcheck)))
dddbc90c
RV
3963 (home-page "https://github.com/pa-ba/equivalence")
3964 (synopsis "Maintaining an equivalence relation implemented as union-find")
3965 (description
3966 "This is an implementation of Tarjan's Union-Find algorithm (Robert E.@:
3967Tarjan. \"Efficiency of a Good But Not Linear Set Union Algorithm\",JACM
396822(2), 1975) in order to maintain an equivalence relation. This
3969implementation is a port of the @code{union-find} package using the @code{ST}
3970monad transformer (instead of the IO monad).")
3971 (license license:bsd-3)))
3972
3973(define-public ghc-erf
3974 (package
3975 (name "ghc-erf")
3976 (version "2.0.0.0")
3977 (source
3978 (origin
3979 (method url-fetch)
3980 (uri (string-append "https://hackage.haskell.org/package/"
3981 "erf-" version "/"
3982 "erf-" version ".tar.gz"))
3983 (sha256
3984 (base32
3985 "0dxk2r32ajmmc05vaxcp0yw6vgv4lkbmh8jcshncn98xgsfbgw14"))))
3986 (build-system haskell-build-system)
3987 (home-page "https://hackage.haskell.org/package/erf")
3988 (synopsis "The error function, erf, and related functions for Haskell")
3989 (description "This Haskell library provides a type class for the
3990error function, erf, and related functions. Instances for Float and
3991Double.")
3992 (license license:bsd-3)))
3993
3994(define-public ghc-errorcall-eq-instance
3995 (package
3996 (name "ghc-errorcall-eq-instance")
3997 (version "0.3.0")
3998 (source
3999 (origin
4000 (method url-fetch)
4001 (uri (string-append "https://hackage.haskell.org/package/"
4002 "errorcall-eq-instance/errorcall-eq-instance-"
4003 version ".tar.gz"))
4004 (sha256
4005 (base32
4006 "0hqw82m8bbrxy5vgdwb83bhzdx070ibqrm9rshyja7cb808ahijm"))))
4007 (build-system haskell-build-system)
4008 (inputs
4009 `(("ghc-base-orphans" ,ghc-base-orphans)))
4010 (native-inputs
4011 `(("ghc-quickcheck" ,ghc-quickcheck)
4012 ("ghc-hspec" ,ghc-hspec)
4013 ("hspec-discover" ,hspec-discover)))
3ef91e15 4014 (home-page "https://hackage.haskell.org/package/errorcall-eq-instance")
dddbc90c
RV
4015 (synopsis "Orphan Eq instance for ErrorCall")
4016 (description
4017 "Prior to @code{base-4.7.0.0} there was no @code{Eq} instance for @code{ErrorCall}.
4018This package provides an orphan instance.")
4019 (license license:expat)))
4020
4021(define-public ghc-errors
4022 (package
4023 (name "ghc-errors")
4024 (version "2.3.0")
4025 (source
4026 (origin
4027 (method url-fetch)
4028 (uri (string-append "https://hackage.haskell.org/package/"
4029 "errors-" version "/"
4030 "errors-" version ".tar.gz"))
4031 (sha256
4032 (base32
4033 "0x8znwn31qcx6kqx99wp7bc86kckfb39ncz3zxvj1s07kxlfawk7"))))
4034 (build-system haskell-build-system)
4035 (inputs
4036 `(("ghc-exceptions" ,ghc-exceptions)
4037 ("ghc-transformers-compat" ,ghc-transformers-compat)
4038 ("ghc-unexceptionalio" ,ghc-unexceptionalio)
4039 ("ghc-safe" ,ghc-safe)))
4040 (home-page "https://github.com/gabriel439/haskell-errors-library")
4041 (synopsis "Error handling library for Haskell")
4042 (description "This library encourages an error-handling style that
4043directly uses the type system, rather than out-of-band exceptions.")
4044 (license license:bsd-3)))
4045
4046(define-public ghc-esqueleto
2648b604
TS
4047 (package
4048 (name "ghc-esqueleto")
2f6ad77b 4049 (version "3.3.1.1")
2648b604
TS
4050 (source
4051 (origin
4052 (method url-fetch)
4053 (uri (string-append "https://hackage.haskell.org/package/"
4054 "esqueleto/esqueleto-" version ".tar.gz"))
4055 (sha256
4056 (base32
2f6ad77b 4057 "1qi28ma8j5kfygjxnixlazxsyrkdqv8ljz3icwqi5dlscsnj6v3v"))))
2648b604
TS
4058 (build-system haskell-build-system)
4059 (arguments
4060 `(#:haddock? #f ; Haddock reports an internal error.
4061 #:phases
4062 (modify-phases %standard-phases
4063 ;; This package normally runs tests for the MySQL, PostgreSQL, and
4064 ;; SQLite backends. Since we only have Haskell packages for
4065 ;; SQLite, we remove the other two test suites. FIXME: Add the
4066 ;; other backends and run all three test suites.
4067 (add-before 'configure 'remove-non-sqlite-test-suites
4068 (lambda _
4069 (use-modules (ice-9 rdelim))
4070 (with-atomic-file-replacement "esqueleto.cabal"
4071 (lambda (in out)
4072 (let loop ((line (read-line in 'concat)) (deleting? #f))
4073 (cond
4074 ((eof-object? line) #t)
4075 ((string-every char-set:whitespace line)
4076 (unless deleting? (display line out))
4077 (loop (read-line in 'concat) #f))
4078 ((member line '("test-suite mysql\n"
4079 "test-suite postgresql\n"))
4080 (loop (read-line in 'concat) #t))
4081 (else
4082 (unless deleting? (display line out))
4083 (loop (read-line in 'concat) deleting?)))))))))))
4084 (inputs
4085 `(("ghc-blaze-html" ,ghc-blaze-html)
4086 ("ghc-conduit" ,ghc-conduit)
4087 ("ghc-monad-logger" ,ghc-monad-logger)
4088 ("ghc-persistent" ,ghc-persistent)
4089 ("ghc-resourcet" ,ghc-resourcet)
4090 ("ghc-tagged" ,ghc-tagged)
4091 ("ghc-unliftio" ,ghc-unliftio)
4092 ("ghc-unordered-containers" ,ghc-unordered-containers)))
4093 (native-inputs
4094 `(("ghc-hspec" ,ghc-hspec)
4095 ("ghc-persistent-sqlite" ,ghc-persistent-sqlite)
4096 ("ghc-persistent-template" ,ghc-persistent-template)))
4097 (home-page "https://github.com/bitemyapp/esqueleto")
4098 (synopsis "Type-safe embedded domain specific language for SQL queries")
4099 (description "This library provides a type-safe embedded domain specific
dddbc90c
RV
4100language (EDSL) for SQL queries that works with SQL backends as provided by
4101@code{ghc-persistent}. Its language closely resembles SQL, so you don't have
4102to learn new concepts, just new syntax, and it's fairly easy to predict the
4103generated SQL and optimize it for your backend.")
2648b604 4104 (license license:bsd-3)))
dddbc90c
RV
4105
4106(define-public ghc-exactprint
4107 (package
4108 (name "ghc-exactprint")
50614014 4109 (version "0.6.1")
dddbc90c
RV
4110 (source
4111 (origin
4112 (method url-fetch)
4113 (uri (string-append
4114 "https://hackage.haskell.org/package/"
4115 "ghc-exactprint/ghc-exactprint-" version ".tar.gz"))
4116 (sha256
4117 (base32
50614014 4118 "12nqpqmi9c57a3hgpfy8q073zryz66ylmcvf29hyffpj7vmmnvhl"))))
dddbc90c
RV
4119 (build-system haskell-build-system)
4120 (inputs
4121 `(("ghc-paths" ,ghc-paths)
4122 ("ghc-syb" ,ghc-syb)
4123 ("ghc-free" ,ghc-free)))
4124 (native-inputs
4125 `(("ghc-hunit" ,ghc-hunit)
4126 ("ghc-diff" ,ghc-diff)
4127 ("ghc-silently" ,ghc-silently)
4128 ("ghc-filemanip" ,ghc-filemanip)))
4129 (home-page
3ef91e15 4130 "https://hackage.haskell.org/package/ghc-exactprint")
dddbc90c
RV
4131 (synopsis "ExactPrint for GHC")
4132 (description
4133 "Using the API Annotations available from GHC 7.10.2, this library
4134provides a means to round-trip any code that can be compiled by GHC, currently
4135excluding @file{.lhs} files.")
4136 (license license:bsd-3)))
4137
4138(define-public ghc-exceptions
4139 (package
4140 (name "ghc-exceptions")
46d3e65b 4141 (version "0.10.3")
dddbc90c
RV
4142 (source
4143 (origin
4144 (method url-fetch)
4145 (uri (string-append
4146 "https://hackage.haskell.org/package/exceptions/exceptions-"
4147 version
4148 ".tar.gz"))
4149 (sha256
4150 (base32
46d3e65b 4151 "1w25j4ys5s6v239vbqlbipm9fdwxl1j2ap2lzms7f7rgnik5ir24"))))
dddbc90c
RV
4152 (build-system haskell-build-system)
4153 (native-inputs
4154 `(("ghc-quickcheck" ,ghc-quickcheck)
4155 ("ghc-test-framework" ,ghc-test-framework)
4156 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
4157 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
4158 (inputs
4159 `(("ghc-transformers-compat" ,ghc-transformers-compat)))
4160 (home-page "https://github.com/ekmett/exceptions/")
4161 (synopsis "Extensible optionally-pure exceptions")
4162 (description "This library provides extensible optionally-pure exceptions
4163for Haskell.")
4164 (license license:bsd-3)))
4165
4166(define-public ghc-executable-path
4167 (package
4168 (name "ghc-executable-path")
4169 (version "0.0.3.1")
4170 (source (origin
4171 (method url-fetch)
4172 (uri (string-append "https://hackage.haskell.org/package/"
4173 "executable-path/executable-path-"
4174 version ".tar.gz"))
4175 (sha256
4176 (base32
4177 "0vxwmnsvx13cawcyhbyljkds0l1vr996ijldycx7nj0asjv45iww"))))
4178 (build-system haskell-build-system)
4179 (home-page "https://hackage.haskell.org/package/executable-path")
4180 (synopsis "Find out the full path of the executable")
4181 (description
4182 "The documentation of @code{System.Environment.getProgName} says that
4183\"However, this is hard-to-impossible to implement on some non-Unix OSes, so
4184instead, for maximum portability, we just return the leafname of the program
4185as invoked.\" This library tries to provide the missing path.")
4186 (license license:public-domain)))
4187
4188(define-public ghc-extensible-exceptions
4189 (package
4190 (name "ghc-extensible-exceptions")
4191 (version "0.1.1.4")
4192 (source
4193 (origin
4194 (method url-fetch)
4195 (uri (string-append "https://hackage.haskell.org/package/"
4196 "extensible-exceptions/extensible-exceptions-"
4197 version ".tar.gz"))
4198 (sha256
4199 (base32 "1273nqws9ij1rp1bsq5jc7k2jxpqa0svawdbim05lf302y0firbc"))))
4200 (build-system haskell-build-system)
4201 (home-page "https://hackage.haskell.org/package/extensible-exceptions")
4202 (synopsis "Extensible exceptions for Haskell")
4203 (description
4204 "This package provides extensible exceptions for both new and old
4205versions of GHC (i.e., < 6.10).")
4206 (license license:bsd-3)))
4207
4208(define-public ghc-extra
4209 (package
4210 (name "ghc-extra")
0cec5c4e 4211 (version "1.6.21")
dddbc90c
RV
4212 (source
4213 (origin
4214 (method url-fetch)
4215 (uri (string-append
4216 "https://hackage.haskell.org/package/extra/extra-"
4217 version
4218 ".tar.gz"))
4219 (sha256
4220 (base32
0cec5c4e 4221 "1gjx98w4w61g043k6rzc8i34cbxpcigi8lb6i7pp1vwp8w8jm5vl"))))
dddbc90c
RV
4222 (build-system haskell-build-system)
4223 (inputs
4224 `(("ghc-clock" ,ghc-clock)
10650c44 4225 ("ghc-semigroups" ,ghc-semigroups)
b431f6c9
ASM
4226 ("ghc-quickcheck" ,ghc-quickcheck)
4227 ("ghc-quickcheck-instances" ,ghc-quickcheck-instances)))
dddbc90c
RV
4228 (home-page "https://github.com/ndmitchell/extra")
4229 (synopsis "Extra Haskell functions")
4230 (description "This library provides extra functions for the standard
4231Haskell libraries. Most functions are simple additions, filling out missing
4232functionality. A few functions are available in later versions of GHC, but
4233this package makes them available back to GHC 7.2.")
4234 (license license:bsd-3)))
4235
4236(define-public ghc-fail
4237 (package
4238 (name "ghc-fail")
4239 (version "4.9.0.0")
4240 (source
4241 (origin
4242 (method url-fetch)
4243 (uri (string-append "https://hackage.haskell.org/package/fail/fail-"
4244 version ".tar.gz"))
4245 (sha256
4246 (base32 "18nlj6xvnggy61gwbyrpmvbdkq928wv0wx2zcsljb52kbhddnp3d"))))
4247 (build-system haskell-build-system)
4248 (arguments `(#:haddock? #f)) ; Package contains no documentation.
4249 (home-page "https://prime.haskell.org/wiki/Libraries/Proposals/MonadFail")
4250 (synopsis "Forward-compatible MonadFail class")
4251 (description
4252 "This package contains the @code{Control.Monad.Fail} module providing the
4253@uref{https://prime.haskell.org/wiki/Libraries/Proposals/MonadFail, MonadFail}
4254class that became available in
4255@uref{https://hackage.haskell.org/package/base-4.9.0.0, base-4.9.0.0} for
4256older @code{base} package versions. This package turns into an empty package
4257when used with GHC versions which already provide the
4258@code{Control.Monad.Fail} module.")
4259 (license license:bsd-3)))
4260
4261(define-public ghc-fast-logger
4262 (package
4263 (name "ghc-fast-logger")
d443a52a 4264 (version "2.4.17")
dddbc90c
RV
4265 (source
4266 (origin
4267 (method url-fetch)
4268 (uri (string-append
4269 "https://hackage.haskell.org/package/fast-logger/fast-logger-"
4270 version
4271 ".tar.gz"))
4272 (sha256
4273 (base32
d443a52a 4274 "02mxb1ckvx1s2r2m11l5i2l5rdl7232p0f61af6773haykjp0qxk"))))
dddbc90c
RV
4275 (build-system haskell-build-system)
4276 (inputs
4277 `(("ghc-auto-update" ,ghc-auto-update)
4278 ("ghc-easy-file" ,ghc-easy-file)
d443a52a
TS
4279 ("ghc-unix-time" ,ghc-unix-time)
4280 ("ghc-unix-compat" ,ghc-unix-compat)))
dddbc90c
RV
4281 (native-inputs
4282 `(("hspec-discover" ,hspec-discover)
4283 ("ghc-hspec" ,ghc-hspec)))
4284 (home-page "https://hackage.haskell.org/package/fast-logger")
4285 (synopsis "Fast logging system")
4286 (description "This library provides a fast logging system for Haskell.")
4287 (license license:bsd-3)))
4288
4289(define-public ghc-feed
4290 (package
4291 (name "ghc-feed")
a41c16dc 4292 (version "1.2.0.1")
dddbc90c
RV
4293 (source
4294 (origin
4295 (method url-fetch)
4296 (uri (string-append "https://hackage.haskell.org/package/"
4297 "feed/feed-" version ".tar.gz"))
4298 (sha256
4299 (base32
a41c16dc 4300 "004lwdng4slj6yl8mgscr3cgj0zzc8hzkf4450dby2l6cardg4w0"))))
dddbc90c 4301 (build-system haskell-build-system)
dddbc90c
RV
4302 (inputs
4303 `(("ghc-base-compat" ,ghc-base-compat)
4304 ("ghc-old-locale" ,ghc-old-locale)
4305 ("ghc-old-time" ,ghc-old-time)
4306 ("ghc-safe" ,ghc-safe)
4307 ("ghc-time-locale-compat" ,ghc-time-locale-compat)
4308 ("ghc-utf8-string" ,ghc-utf8-string)
4309 ("ghc-xml-conduit" ,ghc-xml-conduit)
4310 ("ghc-xml-types" ,ghc-xml-types)))
4311 (native-inputs
4312 `(("ghc-hunit" ,ghc-hunit)
a41c16dc 4313 ("ghc-markdown-unlit" ,ghc-markdown-unlit)
dddbc90c
RV
4314 ("ghc-test-framework" ,ghc-test-framework)
4315 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)))
4316 (home-page "https://github.com/bergmark/feed")
4317 (synopsis "Haskell package for handling various syndication formats")
4318 (description "This Haskell package includes tools for generating and
4319consuming feeds in both RSS (Really Simple Syndication) and Atom format.")
4320 (license license:bsd-3)))
4321
4322(define-public ghc-fgl
4323 (package
4324 (name "ghc-fgl")
17482b26 4325 (version "5.7.0.1")
534d6caa 4326 (outputs '("out" "static" "doc"))
dddbc90c
RV
4327 (source
4328 (origin
4329 (method url-fetch)
4330 (uri (string-append
4331 "https://hackage.haskell.org/package/fgl/fgl-"
4332 version
4333 ".tar.gz"))
4334 (sha256
4335 (base32
17482b26 4336 "04793yh778ck3kz1z2svnfdwwls2kisbnky4lzvf4zjfgpv7mkpz"))))
dddbc90c
RV
4337 (build-system haskell-build-system)
4338 (arguments
4339 `(#:phases
4340 (modify-phases %standard-phases
4341 (add-before 'configure 'update-constraints
4342 (lambda _
4343 (substitute* "fgl.cabal"
17482b26
TS
4344 (("QuickCheck >= 2\\.8 && < 2\\.13")
4345 "QuickCheck >= 2.8 && < 2.14")
4346 (("hspec >= 2\\.1 && < 2\\.7")
4347 "hspec >= 2.1 && < 2.8")))))))
dddbc90c
RV
4348 (inputs
4349 `(("ghc-hspec" ,ghc-hspec)
4350 ("ghc-quickcheck" ,ghc-quickcheck)))
4351 (home-page "https://web.engr.oregonstate.edu/~erwig/fgl/haskell")
4352 (synopsis
4353 "Martin Erwig's Functional Graph Library")
4354 (description "The functional graph library, FGL, is a collection of type
4355and function definitions to address graph problems. The basis of the library
4356is an inductive definition of graphs in the style of algebraic data types that
4357encourages inductive, recursive definitions of graph algorithms.")
4358 (license license:bsd-3)))
4359
4360(define-public ghc-fgl-arbitrary
4361 (package
4362 (name "ghc-fgl-arbitrary")
4363 (version "0.2.0.3")
4364 (source
4365 (origin
4366 (method url-fetch)
4367 (uri (string-append
4368 "https://hackage.haskell.org/package/fgl-arbitrary/fgl-arbitrary-"
4369 version ".tar.gz"))
4370 (sha256
4371 (base32
4372 "0ln1szgfy8fa78l3issq4fx3aqnnd54w3cb4wssrfi48vd5rkfjm"))))
4373 (build-system haskell-build-system)
4374 (arguments
4375 `(#:phases
4376 (modify-phases %standard-phases
4377 (add-before 'configure 'update-constraints
4378 (lambda _
4379 (substitute* "fgl-arbitrary.cabal"
4380 (("QuickCheck >= 2\\.3 && < 2\\.10")
4a0ffae5 4381 "QuickCheck >= 2.3 && < 2.14")
dddbc90c 4382 (("hspec >= 2\\.1 && < 2\\.5")
4a0ffae5 4383 "hspec >= 2.1 && < 2.8")))))))
dddbc90c
RV
4384 (inputs
4385 `(("ghc-fgl" ,ghc-fgl)
4386 ("ghc-quickcheck" ,ghc-quickcheck)
4387 ("ghc-hspec" ,ghc-hspec)))
4388 (home-page "https://hackage.haskell.org/package/fgl-arbitrary")
4389 (synopsis "QuickCheck support for fgl")
4390 (description
4391 "Provides Arbitrary instances for fgl graphs to avoid adding a
4392QuickCheck dependency for fgl whilst still making the instances
4393available to others. Also available are non-fgl-specific functions
4394for generating graph-like data structures.")
4395 (license license:bsd-3)))
4396
4397(define-public ghc-file-embed
4398 (package
4399 (name "ghc-file-embed")
b5920d50 4400 (version "0.0.11")
dddbc90c
RV
4401 (source
4402 (origin
4403 (method url-fetch)
4404 (uri (string-append "https://hackage.haskell.org/package/file-embed/"
4405 "file-embed-" version ".tar.gz"))
4406 (sha256
4407 (base32
b5920d50 4408 "0l6dkwccbzzyx8rcav03lya2334dgi3vfwk96h7l93l0fc4x19gf"))))
dddbc90c
RV
4409 (build-system haskell-build-system)
4410 (home-page "https://github.com/snoyberg/file-embed")
4411 (synopsis "Use Template Haskell to embed file contents directly")
4412 (description
4413 "This package allows you to use Template Haskell to read a file or all
4414the files in a directory, and turn them into @code{(path, bytestring)} pairs
4415embedded in your Haskell code.")
4416 (license license:bsd-3)))
4417
4418(define-public ghc-filemanip
4419 (package
4420 (name "ghc-filemanip")
4421 (version "0.3.6.3")
4422 (source (origin
4423 (method url-fetch)
4424 (uri (string-append "https://hackage.haskell.org/package/"
4425 "filemanip/filemanip-" version ".tar.gz"))
4426 (sha256
4427 (base32
4428 "0ilqr8jv41zxcj5qyicg29m8s30b9v70x6f9h2h2rw5ap8bxldl8"))))
4429 (build-system haskell-build-system)
4430 (inputs
4431 `(("ghc-unix-compat" ,ghc-unix-compat)))
4432 (home-page "https://github.com/bos/filemanip")
4433 (synopsis "File and directory manipulation for Haskell")
4434 (description
4435 "This package provides a Haskell library for working with files and
4436directories. It includes code for pattern matching, finding files, modifying
4437file contents, and more.")
4438 (license license:bsd-3)))
4439
bb62932a
KM
4440(define-public ghc-filepath-bytestring
4441 (package
4442 (name "ghc-filepath-bytestring")
e2879805 4443 (version "1.4.2.1.6")
bb62932a
KM
4444 (source
4445 (origin
4446 (method url-fetch)
4447 (uri (string-append
4448 "https://hackage.haskell.org/package/filepath-bytestring/"
4449 "filepath-bytestring-" version ".tar.gz"))
4450 (sha256
4451 (base32
e2879805 4452 "11xrrzdkm5i96dazbz0gi1qp8nnj2lwbnxzwy7f4cnahskz4f4g7"))))
bb62932a
KM
4453 (build-system haskell-build-system)
4454 (native-inputs
4455 `(("ghc-quickcheck" ,ghc-quickcheck)))
3ef91e15 4456 (home-page "https://hackage.haskell.org/package/filepath-bytestring")
bb62932a
KM
4457 (synopsis "Library for manipulating RawFilePaths in a cross-platform way")
4458 (description "This package provides a drop-in replacement for the standard
4459@code{filepath} library, operating on @code{RawFilePath} values rather than
4460@code{FilePath} values to get the speed benefits of using @code{ByteStrings}.")
4461 (license license:bsd-3)))
4462
dddbc90c
RV
4463(define-public ghc-findbin
4464 (package
4465 (name "ghc-findbin")
4466 (version "0.0.5")
4467 (source
4468 (origin
4469 (method url-fetch)
4470 (uri (string-append
4471 "https://hackage.haskell.org/package/FindBin/FindBin-"
4472 version ".tar.gz"))
4473 (sha256
4474 (base32
4475 "197xvn05yysmibm1p5wzxfa256lvpbknr5d1l2ws6g40w1kpk717"))))
4476 (build-system haskell-build-system)
4477 (home-page "https://github.com/audreyt/findbin")
4478 (synopsis "Get the absolute path of the running program")
4479 (description
4480 "This module locates the full directory of the running program, to allow
4481the use of paths relative to it. FindBin supports invocation of Haskell
4482programs via \"ghci\", via \"runhaskell/runghc\", as well as compiled as
4483an executable.")
4484 (license license:bsd-3)))
4485
4486(define-public ghc-fingertree
4487 (package
4488 (name "ghc-fingertree")
aac14fdc 4489 (version "0.1.4.2")
dddbc90c
RV
4490 (source
4491 (origin
4492 (method url-fetch)
4493 (uri (string-append
4494 "https://hackage.haskell.org/package/fingertree/fingertree-"
4495 version ".tar.gz"))
4496 (sha256
4497 (base32
aac14fdc 4498 "0zvandj8fysck7ygpn0dw5bhrhmj1s63i326nalxbfkh2ls4iacm"))))
dddbc90c
RV
4499 (build-system haskell-build-system)
4500 (native-inputs
4501 `(("ghc-hunit" ,ghc-hunit)
4502 ("ghc-quickcheck" ,ghc-quickcheck)
4503 ("ghc-test-framework" ,ghc-test-framework)
4504 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
4505 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
4506 (home-page "https://hackage.haskell.org/package/fingertree")
4507 (synopsis "Generic finger-tree structure")
4508 (description "This library provides finger trees, a general sequence
4509representation with arbitrary annotations, for use as a base for
4510implementations of various collection types. It includes examples, as
4511described in section 4 of Ralf Hinze and Ross Paterson, \"Finger trees: a
4512simple general-purpose data structure\".")
4513 (license license:bsd-3)))
4514
4515(define-public ghc-fixed
4516 (package
4517 (name "ghc-fixed")
099dda5b 4518 (version "0.3")
dddbc90c
RV
4519 (source
4520 (origin
4521 (method url-fetch)
4522 (uri (string-append "https://hackage.haskell.org/package/fixed/fixed-"
4523 version ".tar.gz"))
4524 (sha256
4525 (base32
099dda5b 4526 "10l2sh179xarb774q92cff2gkb20rsrlilfwp1fk61rzmz9yn64j"))))
dddbc90c
RV
4527 (build-system haskell-build-system)
4528 (home-page "https://github.com/ekmett/fixed")
4529 (synopsis "Signed 15.16 precision fixed point arithmetic")
4530 (description
4531 "This package provides functions for signed 15.16 precision fixed point
4532arithmetic.")
4533 (license license:bsd-3)))
4534
f169f713
JS
4535(define-public ghc-fmlist
4536 (package
4537 (name "ghc-fmlist")
fe9b83a6 4538 (version "0.9.3")
f169f713
JS
4539 (source
4540 (origin
4541 (method url-fetch)
4542 (uri
4543 (string-append
4544 "https://hackage.haskell.org/package/fmlist/fmlist-"
4545 version ".tar.gz"))
4546 (sha256
4547 (base32
fe9b83a6 4548 "1w9nhm2zybdx4c1lalkajwqr8wcs731lfjld2r8gknd7y96x8pwf"))))
f169f713
JS
4549 (build-system haskell-build-system)
4550 (home-page "https://github.com/sjoerdvisscher/fmlist")
4551 (synopsis "FoldMap lists")
4552 (description "FoldMap lists are lists represented by their
4553@code{foldMap} function. FoldMap lists have @math{O(1)} cons, snoc and
4554append, just like DLists, but other operations might have favorable
4555performance characteristics as well. These wild claims are still
4556completely unverified though.")
4557 (license license:bsd-3)))
4558
dddbc90c
RV
4559(define-public ghc-foldl
4560 (package
4561 (name "ghc-foldl")
26c4104f 4562 (version "1.4.5")
dddbc90c
RV
4563 (source
4564 (origin
4565 (method url-fetch)
4566 (uri (string-append "https://hackage.haskell.org/package/"
4567 "foldl-" version "/"
4568 "foldl-" version ".tar.gz"))
4569 (sha256
4570 (base32
26c4104f 4571 "19qjmzc7gaxfwgqbgy0kq4vhbxvh3qjnwsxnc7pzwws2if5bv80b"))))
dddbc90c 4572 (build-system haskell-build-system)
b3c79a83 4573 (outputs '("out" "static" "doc"))
dddbc90c
RV
4574 (inputs `(("ghc-mwc-randam" ,ghc-mwc-random)
4575 ("ghc-primitive" ,ghc-primitive)
4576 ("ghc-vector" ,ghc-vector)
4577 ("ghc-unordered-containers" ,ghc-unordered-containers)
4578 ("ghc-hashable" ,ghc-hashable)
4579 ("ghc-contravariant" ,ghc-contravariant)
4580 ("ghc-semigroups" ,ghc-semigroups)
4581 ("ghc-profunctors" ,ghc-profunctors)
4582 ("ghc-semigroupoids" ,ghc-semigroupoids)
4583 ("ghc-comonad" ,ghc-comonad)
4584 ("ghc-vector-builder" ,ghc-vector-builder)))
4585 (home-page "https://github.com/Gabriel439/Haskell-Foldl-Library")
4586 (synopsis "Composable, streaming, and efficient left folds for Haskell")
4587 (description "This Haskell library provides strict left folds that stream
4588in constant memory, and you can combine folds using @code{Applicative} style
4589to derive new folds. Derived folds still traverse the container just once
4590and are often as efficient as hand-written folds.")
4591 (license license:bsd-3)))
4592
4593(define-public ghc-foundation
4594 (package
4595 (name "ghc-foundation")
0a702df9 4596 (version "0.0.25")
dddbc90c
RV
4597 (source
4598 (origin
4599 (method url-fetch)
4600 (uri (string-append "https://hackage.haskell.org/package/"
4601 "foundation/foundation-" version ".tar.gz"))
4602 (sha256
4603 (base32
0a702df9 4604 "0q6kx57ygmznlpf8n499hid4x6mj3180paijx0a8dgi9hh7man61"))))
dddbc90c 4605 (build-system haskell-build-system)
59cd7518
TS
4606 (arguments
4607 `(#:phases
4608 (modify-phases %standard-phases
4609 ;; This test is broken. For details, see
4610 ;; https://github.com/haskell-foundation/foundation/issues/530
4611 (add-after 'unpack 'patch-tests
4612 (lambda _
4613 (substitute* "tests/Test/Foundation/Number.hs"
4614 ((", testDividible proxy") ""))
4615 #t)))))
6a7fb828 4616 (outputs '("out" "static" "doc"))
dddbc90c
RV
4617 (inputs `(("ghc-basement" ,ghc-basement)))
4618 (home-page "https://github.com/haskell-foundation/foundation")
4619 (synopsis "Alternative prelude with batteries and no dependencies")
4620 (description
4621 "This package provides a custom prelude with no dependencies apart from
4622the base package.
4623
4624Foundation has the following goals:
4625
4626@enumerate
4627@item provide a base like sets of modules that provide a consistent set of
4628 features and bugfixes across multiple versions of GHC (unlike base).
4629@item provide a better and more efficient prelude than base's prelude.
4630@item be self-sufficient: no external dependencies apart from base;
4631@item provide better data-types: packed unicode string by default, arrays;
4632@item Numerical classes that better represent mathematical things (no more
4633 all-in-one @code{Num});
4634@item I/O system with less lazy IO.
4635@end enumerate\n")
4636 (license license:bsd-3)))
4637
4638(define-public ghc-free
4639 (package
4640 (name "ghc-free")
4081565d 4641 (version "5.1.2")
dddbc90c
RV
4642 (source
4643 (origin
4644 (method url-fetch)
4645 (uri (string-append
4646 "https://hackage.haskell.org/package/free/free-"
4647 version
4648 ".tar.gz"))
4649 (sha256
4650 (base32
4081565d 4651 "0vlf3f2ckl3cr7z2zl8c9c8qkdlfgvmh04gxkp2fg0z9dz80nlyb"))))
dddbc90c 4652 (build-system haskell-build-system)
91769cee 4653 (outputs '("out" "static" "doc"))
dddbc90c
RV
4654 (inputs
4655 `(("ghc-prelude-extras" ,ghc-prelude-extras)
4656 ("ghc-profunctors" ,ghc-profunctors)
4657 ("ghc-exceptions" ,ghc-exceptions)
4658 ("ghc-bifunctors" ,ghc-bifunctors)
4659 ("ghc-comonad" ,ghc-comonad)
4660 ("ghc-distributive" ,ghc-distributive)
4661 ("ghc-semigroupoids" ,ghc-semigroupoids)
4662 ("ghc-semigroups" ,ghc-semigroups)
4663 ("ghc-transformers-base" ,ghc-transformers-base)
4664 ("ghc-transformers-compat" ,ghc-transformers-compat)))
4665 (home-page "https://github.com/ekmett/free/")
4666 (synopsis "Unrestricted monads for Haskell")
4667 (description "This library provides free monads, which are useful for many
4668tree-like structures and domain specific languages. If @code{f} is a
4669@code{Functor} then the free @code{Monad} on @code{f} is the type of trees
4670whose nodes are labeled with the constructors of @code{f}. The word \"free\"
4671is used in the sense of \"unrestricted\" rather than \"zero-cost\": @code{Free
4672f} makes no constraining assumptions beyond those given by @code{f} and the
4673definition of @code{Monad}.")
4674 (license license:bsd-3)))
4675
4676(define-public ghc-fsnotify
4677 (package
4678 (name "ghc-fsnotify")
4679 (version "0.3.0.1")
4680 (source (origin
4681 (method url-fetch)
4682 (uri (string-append
4683 "https://hackage.haskell.org/package/fsnotify/"
4684 "fsnotify-" version ".tar.gz"))
4685 (sha256
4686 (base32
4687 "19bdbz9wb9jvln6yg6qm0hz0w84bypvkxf0wjhgrgd52f9gidlny"))))
4688 (build-system haskell-build-system)
4689 (inputs
4690 `(("ghc-async" ,ghc-async)
4691 ("ghc-unix-compat" ,ghc-unix-compat)
4692 ("ghc-hinotify" ,ghc-hinotify)
4693 ("ghc-tasty" ,ghc-tasty)
4694 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
4695 ("ghc-random" ,ghc-random)
4696 ("ghc-shelly" ,ghc-shelly)
4697 ("ghc-temporary" ,ghc-temporary)))
4698 (home-page "https://github.com/haskell-fswatch/hfsnotify")
4699 (synopsis "Cross platform library for file change notification.")
4700 (description "Cross platform library for file creation, modification, and
4701deletion notification. This library builds upon existing libraries for platform
4702specific Windows, Mac, and Linux file system event notification.")
4703 (license license:bsd-3)))
4704
4705(define-public ghc-generic-deriving
4706 (package
4707 (name "ghc-generic-deriving")
55c1e6be 4708 (version "1.12.4")
dddbc90c
RV
4709 (source
4710 (origin
4711 (method url-fetch)
4712 (uri (string-append
4713 "https://hackage.haskell.org/package/generic-deriving/generic-deriving-"
4714 version
4715 ".tar.gz"))
4716 (sha256
4717 (base32
55c1e6be 4718 "0vdg9qdq35jl3m11a87wk8cq1y71qm4i1g1b2pxki0wk70yw20a4"))))
dddbc90c 4719 (build-system haskell-build-system)
32bb6b41 4720 (outputs '("out" "static" "doc"))
dddbc90c
RV
4721 (inputs
4722 `(("ghc-th-abstraction" ,ghc-th-abstraction)))
4723 (native-inputs
4724 `(("ghc-hspec" ,ghc-hspec)
4725 ("hspec-discover" ,hspec-discover)))
4726 (home-page "https://hackage.haskell.org/package/generic-deriving")
4727 (synopsis "Generalise the deriving mechanism to arbitrary classes")
4728 (description "This package provides functionality for generalising the
4729deriving mechanism in Haskell to arbitrary classes.")
4730 (license license:bsd-3)))
4731
89e9082e
JS
4732(define-public ghc-generic-random
4733 (package
4734 (name "ghc-generic-random")
4735 (version "1.2.0.0")
4736 (source
4737 (origin
4738 (method url-fetch)
4739 (uri (string-append
4740 "https://hackage.haskell.org/package/generic-random/"
4741 "generic-random-" version ".tar.gz"))
4742 (sha256
4743 (base32 "130lmblycxnpqbsl7vf6a90zccibnvcb5zaclfajcn3by39007lv"))))
4744 (build-system haskell-build-system)
4745 (inputs `(("ghc-quickcheck" ,ghc-quickcheck)))
4746 (native-inputs
4747 `(("ghc-inspection-testing" ,ghc-inspection-testing)))
4748 (arguments
4749 `(#:cabal-revision
4750 ("1" "1d0hx41r7yq2a86ydnfh2fv540ah8cz05l071s2z4wxcjw0ymyn4")))
4751 (home-page
4752 "https://github.com/lysxia/generic-random")
4753 (synopsis
4754 "Generic random generators for QuickCheck")
4755 (description
4756 "Derive instances of @code{Arbitrary} for QuickCheck, with various options
4757to customize implementations.
4758
4759Automating the arbitrary boilerplate also ensures that when a type changes to
4760have more or fewer constructors, then the generator either fixes itself to
4761generate that new case (when using the uniform distribution) or causes a
4762compilation error so you remember to fix it (when using an explicit
4763distribution).
4764
4765This package also offers a simple (optional) strategy to ensure termination
4766for recursive types: make @code{Test.QuickCheck.Gen}'s size parameter decrease
4767at every recursive call; when it reaches zero, sample directly from a
4768trivially terminating generator given explicitly (@code{genericArbitraryRec}
4769and @code{withBaseCase}) or implicitly (@code{genericArbitrary'}).")
4770 (license license:expat)))
4771
23e4b264
JS
4772(define-public ghc-generic-random-1.3.0.1
4773 (package
4774 (inherit ghc-generic-random)
4775 (version "1.3.0.1")
4776 (source
4777 (origin
4778 (method url-fetch)
4779 (uri (string-append
4780 "https://hackage.haskell.org/package/generic-random/"
4781 "generic-random-" version ".tar.gz"))
4782 (sha256
4783 (base32 "0d9w7xcmsb31b95fr9d5jwbsajcl1yi4347dlbw4bybil2vjwd7k"))))
4784 (arguments '())))
4785
dddbc90c
RV
4786(define-public ghc-generics-sop
4787 (package
4788 (name "ghc-generics-sop")
3ed40e10 4789 (version "0.4.0.1")
dddbc90c
RV
4790 (source
4791 (origin
4792 (method url-fetch)
4793 (uri (string-append "https://hackage.haskell.org/package/"
4794 "generics-sop-" version "/"
4795 "generics-sop-" version ".tar.gz"))
4796 (sha256
4797 (base32
3ed40e10 4798 "160knr2phnzh2gldfv954lz029jzc7y8kz5xpmbf4z3vb5ngm6fw"))))
dddbc90c 4799 (build-system haskell-build-system)
80e0a085 4800 (outputs '("out" "static" "doc"))
3ed40e10
TS
4801 (inputs
4802 `(("ghc-sop-core" ,ghc-sop-core)
4803 ("ghc-transformers-compat" ,ghc-transformers-compat)))
dddbc90c
RV
4804 (home-page "https://github.com/well-typed/generics-sop")
4805 (synopsis "Generic Programming using True Sums of Products for Haskell")
4806 (description "This Haskell package supports the definition of generic
4807functions. Datatypes are viewed in a uniform, structured way: the choice
4808between constructors is represented using an n-ary sum, and the arguments of
4809each constructor are represented using an n-ary product.")
4810 (license license:bsd-3)))
4811
4812(define-public ghc-geniplate-mirror
4813 (package
4814 (name "ghc-geniplate-mirror")
4815 (version "0.7.6")
4816 (source
4817 (origin
4818 (method url-fetch)
4819 (uri (string-append "https://hackage.haskell.org/package"
4820 "/geniplate-mirror"
4821 "/geniplate-mirror-" version ".tar.gz"))
4822 (sha256
4823 (base32 "1y0m0bw5zpm1y1y6d9qmxj3swl8j8hlw1shxbr5awycf6k884ssb"))))
4824 (build-system haskell-build-system)
74a7dd7f
TS
4825 (arguments
4826 `(#:cabal-revision
4827 ("2" "03fg4vfm1wgq4mylggawdx0bfvbbjmdn700sqx7v3hk1bx0kjfzh")))
dddbc90c
RV
4828 (home-page "https://github.com/danr/geniplate")
4829 (synopsis "Use Template Haskell to generate Uniplate-like functions")
4830 (description
4831 "Use Template Haskell to generate Uniplate-like functions. This is a
4832maintained mirror of the @uref{https://hackage.haskell.org/package/geniplate,
4833geniplate} package, written by Lennart Augustsson.")
4834 (license license:bsd-3)))
4835
4836(define-public ghc-genvalidity
4837 (package
4838 (name "ghc-genvalidity")
920f44a1 4839 (version "0.8.0.0")
dddbc90c
RV
4840 (source
4841 (origin
4842 (method url-fetch)
4843 (uri (string-append
4844 "https://hackage.haskell.org/package/genvalidity/genvalidity-"
4845 version
4846 ".tar.gz"))
4847 (sha256
4848 (base32
920f44a1 4849 "0w38aq9hfyymidncgkrs6yvja7j573d9sap5qfg5rz910fhsij9a"))))
dddbc90c
RV
4850 (build-system haskell-build-system)
4851 (inputs
4852 `(("ghc-quickcheck" ,ghc-quickcheck)
4853 ("ghc-validity" ,ghc-validity)))
4854 (native-inputs
4855 `(("ghc-hspec" ,ghc-hspec)
4856 ("hspec-discover" ,hspec-discover)
4857 ("ghc-hspec-core" ,ghc-hspec-core)))
4858 (home-page
4859 "https://github.com/NorfairKing/validity")
4860 (synopsis
4861 "Testing utilities for the @code{validity} library")
4862 (description
4863 "This package provides testing utilities that are useful in conjunction
4864with the @code{Validity} typeclass.")
4865 (license license:expat)))
4866
4867(define-public ghc-genvalidity-property
4868 (package
4869 (name "ghc-genvalidity-property")
e4ede35b 4870 (version "0.4.0.0")
dddbc90c
RV
4871 (source
4872 (origin
4873 (method url-fetch)
4874 (uri (string-append
4875 "https://hackage.haskell.org/package/"
4876 "genvalidity-property/genvalidity-property-"
4877 version
4878 ".tar.gz"))
4879 (sha256
4880 (base32
e4ede35b 4881 "0zayycx62226w54rvkxwhvqhznsr33dk3ds55yyqrfqbnhvph1s9"))))
dddbc90c
RV
4882 (build-system haskell-build-system)
4883 (inputs
4884 `(("ghc-quickcheck" ,ghc-quickcheck)
4885 ("ghc-genvalidity" ,ghc-genvalidity)
4886 ("ghc-hspec" ,ghc-hspec)
4887 ("hspec-discover" ,hspec-discover)
4888 ("ghc-validity" ,ghc-validity)))
4889 (native-inputs `(("ghc-doctest" ,ghc-doctest)))
4890 (home-page
4891 "https://github.com/NorfairKing/validity")
4892 (synopsis
4893 "Standard properties for functions on @code{Validity} types")
4894 (description
4895 "This package supplements the @code{Validity} typeclass with standard
4896properties for functions operating on them.")
4897 (license license:expat)))
4898
e71fb573
TS
4899(define-public ghc-getopt-generics
4900 (package
4901 (name "ghc-getopt-generics")
4902 (version "0.13.0.4")
4903 (source
4904 (origin
4905 (method url-fetch)
4906 (uri (string-append "https://hackage.haskell.org/package/"
4907 "getopt-generics/getopt-generics-"
4908 version ".tar.gz"))
4909 (sha256
4910 (base32
4911 "1rszkcn1rg38wf35538ljk5bbqjc57y9sb3a0al7qxm82gy8yigr"))))
4912 (build-system haskell-build-system)
4913 (inputs
4914 `(("ghc-base-compat" ,ghc-base-compat)
4915 ("ghc-base-orphans" ,ghc-base-orphans)
4916 ("ghc-generics-sop" ,ghc-generics-sop)
4917 ("ghc-tagged" ,ghc-tagged)))
4918 (native-inputs
4919 `(("ghc-quickcheck" ,ghc-quickcheck)
4920 ("ghc-hspec" ,ghc-hspec)
4921 ("ghc-safe" ,ghc-safe)
4922 ("ghc-silently" ,ghc-silently)
4923 ("hspec-discover" ,hspec-discover)))
4924 (home-page "https://github.com/soenkehahn/getopt-generics")
4925 (synopsis "Create command line interfaces with ease")
4926 (description "This library provides tools to create command line
4927interfaces with ease.")
4928 (license license:bsd-3)))
4929
dddbc90c
RV
4930(define-public ghc-gitrev
4931 (package
4932 (name "ghc-gitrev")
4933 (version "1.3.1")
4934 (source
4935 (origin
4936 (method url-fetch)
4937 (uri (string-append "https://hackage.haskell.org/package/gitrev/gitrev-"
4938 version ".tar.gz"))
4939 (sha256
4940 (base32 "0cl3lfm6k1h8fxp2vxa6ihfp4v8igkz9h35iwyq2frzm4kdn96d8"))))
4941 (build-system haskell-build-system)
4942 (inputs `(("ghc-base-compat" ,ghc-base-compat)))
4943 (home-page "https://github.com/acfoltzer/gitrev")
4944 (synopsis "Compile git revision info into Haskell projects")
4945 (description
4946 "This package provides some handy Template Haskell splices for including
4947the current git hash and branch in the code of your project. This is useful
4948for including in panic messages, @command{--version} output, or diagnostic
4949info for more informative bug reports.")
4950 (license license:bsd-3)))
4951
4952(define-public ghc-glob
4953 (package
4954 (name "ghc-glob")
b900f486 4955 (version "0.10.0")
dddbc90c
RV
4956 (source
4957 (origin
4958 (method url-fetch)
4959 (uri (string-append "https://hackage.haskell.org/package/"
4960 "Glob-" version "/"
4961 "Glob-" version ".tar.gz"))
4962 (sha256
4963 (base32
b900f486 4964 "0953f91f62ncna402vsrfzdcyxhdpjna3bgdw017kad0dfymacs7"))))
dddbc90c
RV
4965 (build-system haskell-build-system)
4966 (inputs
4967 `(("ghc-dlist" ,ghc-dlist)
4968 ("ghc-semigroups" ,ghc-semigroups)
4969 ("ghc-transformers-compat" ,ghc-transformers-compat)))
4970 (native-inputs
4971 `(("ghc-hunit" ,ghc-hunit)
4972 ("ghc-quickcheck" ,ghc-quickcheck)
4973 ("ghc-test-framework" ,ghc-test-framework)
4974 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
4975 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
4976 (home-page "http://iki.fi/matti.niemenmaa/glob/")
4977 (synopsis "Haskell library matching glob patterns against file paths")
4978 (description "This package provides a Haskell library for @dfn{globbing}:
4979matching patterns against file paths.")
4980 (license license:bsd-3)))
4981
4982(define-public ghc-gluraw
4983 (package
4984 (name "ghc-gluraw")
4985 (version "2.0.0.4")
4986 (source
4987 (origin
4988 (method url-fetch)
4989 (uri (string-append
4990 "https://hackage.haskell.org/package/GLURaw/GLURaw-"
4991 version
4992 ".tar.gz"))
4993 (sha256
4994 (base32
4995 "1i2xi35n5z0d372px9mh6cyhgg1m0cfaiy3fnspkf6kbn9fgsqxq"))))
4996 (build-system haskell-build-system)
4997 (inputs
4998 `(("ghc-openglraw" ,ghc-openglraw)))
228d2901 4999 (home-page "https://wiki.haskell.org/Opengl")
dddbc90c
RV
5000 (synopsis "Raw Haskell bindings GLU")
5001 (description "GLURaw is a raw Haskell binding for the GLU 1.3 OpenGL
5002utility library. It is basically a 1:1 mapping of GLU's C API, intended as a
5003basis for a nicer interface.")
5004 (license license:bsd-3)))
5005
5006(define-public ghc-glut
5007 (package
5008 (name "ghc-glut")
8284bd09 5009 (version "2.7.0.15")
dddbc90c
RV
5010 (source
5011 (origin
5012 (method url-fetch)
5013 (uri (string-append
5014 "https://hackage.haskell.org/package/GLUT/GLUT-"
5015 version
5016 ".tar.gz"))
5017 (sha256
5018 (base32
8284bd09 5019 "0271vnf6wllhxjwy0m348x90kv27aybxcbqkkglmd5w4cpwjg5g9"))))
dddbc90c
RV
5020 (build-system haskell-build-system)
5021 (inputs
5022 `(("ghc-statevar" ,ghc-statevar)
5023 ("ghc-opengl" ,ghc-opengl)
5024 ("ghc-openglraw" ,ghc-openglraw)
5025 ("freeglut" ,freeglut)))
228d2901 5026 (home-page "https://wiki.haskell.org/Opengl")
dddbc90c
RV
5027 (synopsis "Haskell bindings for the OpenGL Utility Toolkit")
5028 (description "This library provides Haskell bindings for the OpenGL
5029Utility Toolkit, a window system-independent toolkit for writing OpenGL
5030programs.")
5031 (license license:bsd-3)))
5032
5033(define-public ghc-gnuplot
5034 (package
5035 (name "ghc-gnuplot")
d34860c7 5036 (version "0.5.6")
dddbc90c
RV
5037 (source
5038 (origin
5039 (method url-fetch)
5040 (uri (string-append
5041 "mirror://hackage/package/gnuplot/gnuplot-"
5042 version ".tar.gz"))
5043 (sha256
d34860c7 5044 (base32 "1g6xgnlkh17avivn1rlq7l2nvs26dvrbx4rkfld0bf6kyqaqwrgp"))))
dddbc90c
RV
5045 (build-system haskell-build-system)
5046 (inputs
5047 `(("ghc-temporary" ,ghc-temporary)
5048 ("ghc-utility-ht" ,ghc-utility-ht)
5049 ("ghc-data-accessor-transformers" ,ghc-data-accessor-transformers)
5050 ("ghc-data-accessor" ,ghc-data-accessor)
5051 ("ghc-semigroups" ,ghc-semigroups)
5052 ("gnuplot" ,gnuplot)))
5053 (arguments
5054 `(#:phases
5055 (modify-phases %standard-phases
5056 (add-before 'configure 'fix-path-to-gnuplot
5057 (lambda* (#:key inputs #:allow-other-keys)
5058 (let ((gnuplot (assoc-ref inputs "gnuplot")))
5059 (substitute* "os/generic/Graphics/Gnuplot/Private/OS.hs"
5060 (("(gnuplotName = ).*$" all cmd)
5061 (string-append cmd "\"" gnuplot "/bin/gnuplot\"")))))))))
228d2901 5062 (home-page "https://wiki.haskell.org/Gnuplot")
dddbc90c
RV
5063 (synopsis "2D and 3D plots using gnuplot")
5064 (description "This package provides a Haskell module for creating 2D and
50653D plots using gnuplot.")
5066 (license license:bsd-3)))
5067
5068(define-public ghc-graphviz
5069 (package
5070 (name "ghc-graphviz")
c264bd42 5071 (version "2999.20.0.3")
dddbc90c
RV
5072 (source (origin
5073 (method url-fetch)
5074 (uri (string-append "https://hackage.haskell.org/package/"
5075 "graphviz/graphviz-" version ".tar.gz"))
5076 (sha256
5077 (base32
c264bd42 5078 "04k26zw61nfv1pkd00iaq89pgsaiym0sf4cbzkmm2k2fj5xa587g"))))
dddbc90c 5079 (build-system haskell-build-system)
c264bd42
TS
5080 (arguments
5081 `(#:phases
5082 (modify-phases %standard-phases
5083 (add-before 'configure 'update-constraints
5084 (lambda _
5085 (substitute* "graphviz.cabal"
5086 (("QuickCheck >= 2\\.3 && < 2\\.13")
5087 "QuickCheck >= 2.3 && < 2.14")
5088 (("hspec >= 2\\.1 && < 2\\.7")
5089 "hspec >= 2.1 && < 2.8")))))))
dddbc90c
RV
5090 (inputs
5091 `(("ghc-quickcheck" ,ghc-quickcheck)
5092 ("ghc-colour" ,ghc-colour)
5093 ("ghc-dlist" ,ghc-dlist)
5094 ("ghc-fgl" ,ghc-fgl)
5095 ("ghc-fgl-arbitrary" ,ghc-fgl-arbitrary)
5096 ("ghc-polyparse" ,ghc-polyparse)
5097 ("ghc-temporary" ,ghc-temporary)
5098 ("ghc-wl-pprint-text" ,ghc-wl-pprint-text)))
5099 (native-inputs
5100 `(("ghc-hspec" ,ghc-hspec)
5101 ("graphviz" ,graphviz)
5102 ("hspec-discover" ,hspec-discover)))
5103 (home-page "https://hackage.haskell.org/package/graphviz")
5104 (synopsis "Bindings to Graphviz for graph visualisation")
5105 (description
5106 "This library provides bindings for the Dot language used by
5107the @uref{https://graphviz.org/, Graphviz} suite of programs for
5108visualising graphs, as well as functions to call those programs.
5109Main features of the graphviz library include:
5110
5111@enumerate
5112@item Almost complete coverage of all Graphviz attributes and syntax
5113@item Support for specifying clusters
5114@item The ability to use a custom node type
5115@item Functions for running a Graphviz layout tool with all specified output types
5116@item Generate and parse Dot code with two options: strict and liberal
5117@item Functions to convert FGL graphs and other graph-like data structures
5118@item Round-trip support for passing an FGL graph through Graphviz to augment node
5119and edge labels with positional information, etc.
5120@end enumerate\n")
5121 (license license:bsd-3)))
5122
f3e18645
TS
5123(define-public ghc-groups
5124 (package
5125 (name "ghc-groups")
5126 (version "0.4.1.0")
5127 (source
5128 (origin
5129 (method url-fetch)
5130 (uri (string-append "https://hackage.haskell.org/package/"
5131 "groups/groups-" version ".tar.gz"))
5132 (sha256
5133 (base32
5134 "0ggkygkyxw5ga4cza82bjvdraavl294k0h6b62d2px7z3nvqhifx"))))
5135 (build-system haskell-build-system)
5136 (home-page "https://hackage.haskell.org/package/groups")
5137 (synopsis "Haskell 98 groups")
5138 (description "This package provides Haskell 98 groups. A group is a
5139monoid with invertibility.")
5140 (license license:bsd-3)))
5141
dddbc90c
RV
5142(define-public ghc-gtk2hs-buildtools
5143 (package
5144 (name "ghc-gtk2hs-buildtools")
b79b43d4 5145 (version "0.13.5.4")
dddbc90c
RV
5146 (source
5147 (origin
5148 (method url-fetch)
5149 (uri (string-append "https://hackage.haskell.org/package/"
5150 "gtk2hs-buildtools/gtk2hs-buildtools-"
5151 version ".tar.gz"))
5152 (sha256
5153 (base32
b79b43d4 5154 "1flxsacxwmabzzalhn8558kmj95z01c0lmikrn56nxh7p62nxm25"))))
dddbc90c
RV
5155 (build-system haskell-build-system)
5156 (inputs
5157 `(("ghc-random" ,ghc-random)
5158 ("ghc-hashtables" ,ghc-hashtables)))
5159 (native-inputs
5160 `(("ghc-alex" ,ghc-alex)
5161 ("ghc-happy" ,ghc-happy)))
5162 (home-page "http://projects.haskell.org/gtk2hs/")
5163 (synopsis "Tools to build the Gtk2Hs suite of user interface libraries")
5164 (description
5165 "This package provides a set of helper programs necessary to build the
5166Gtk2Hs suite of libraries. These tools include a modified c2hs binding tool
5167that is used to generate FFI declarations, a tool to build a type hierarchy
5168that mirrors the C type hierarchy of GObjects found in glib, and a generator
5169for signal declarations that are used to call back from C to Haskell. These
5170tools are not needed to actually run Gtk2Hs programs.")
5171 (license license:gpl2)))
5172
5173(define-public ghc-hackage-security
5174 (package
5175 (name "ghc-hackage-security")
5176 (version "0.5.3.0")
5177 (source
5178 (origin
5179 (method url-fetch)
5180 (uri (string-append "https://hackage.haskell.org/package/"
5181 "hackage-security/hackage-security-"
5182 version ".tar.gz"))
5183 (sha256
5184 (base32
5185 "08bwawc7ramgdh54vcly2m9pvfchp0ahhs8117jajni6x4bnx66v"))))
5186 (build-system haskell-build-system)
5187 (arguments
034380f3
TS
5188 `(#:cabal-revision
5189 ("6" "1xs2nkzlvkdz8g27yzfxbjdbdadfmgiydnlpn5dm77cg18r495ay")
5190 #:tests? #f)) ; Tests fail because of framework updates.
dddbc90c
RV
5191 (inputs
5192 `(("ghc-base16-bytestring" ,ghc-base16-bytestring)
5193 ("ghc-base64-bytestring" ,ghc-base64-bytestring)
5194 ("ghc-cryptohash-sha256" ,ghc-cryptohash-sha256)
5195 ("ghc-ed25519" ,ghc-ed25519)
5196 ("ghc-network" ,ghc-network)
5197 ("ghc-network-uri" ,ghc-network-uri)
5198 ("ghc-tar" ,ghc-tar)
5199 ("ghc-zlib" ,ghc-zlib)))
5200 (native-inputs
5201 `(("ghc-network-uri" ,ghc-network-uri)
5202 ("ghc-quickcheck" ,ghc-quickcheck)
5203 ("ghc-tar" ,ghc-tar)
5204 ("ghc-tasty" ,ghc-tasty)
5205 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
5206 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
5207 ("ghc-temporary" ,ghc-temporary)
5208 ("ghc-zlib" ,ghc-zlib)))
5209 (home-page "https://github.com/haskell/hackage-security")
5210 (synopsis "Hackage security library")
5211 (description "This Hackage security library provides both server and
5212client utilities for securing @uref{http://hackage.haskell.org/, the
5213Hackage package server}. It is based on
5214@uref{http://theupdateframework.com/, The Update Framework}, a set of
5215recommendations developed by security researchers at various universities
5216in the US as well as developers on the @uref{https://www.torproject.org/,
5217Tor project}.")
5218 (license license:bsd-3)))
5219
5220(define-public ghc-haddock
5221 (package
5222 (name "ghc-haddock")
b0d34d23 5223 (version "2.22.0")
dddbc90c
RV
5224 (source
5225 (origin
5226 (method url-fetch)
5227 (uri (string-append
5228 "https://hackage.haskell.org/package/haddock/haddock-"
5229 version
5230 ".tar.gz"))
5231 (sha256
5232 (base32
b0d34d23 5233 "1k42z2zh550rl93c8pa9cg2xsanp6wvb031xvan6cmngnplmdib6"))))
dddbc90c
RV
5234 (build-system haskell-build-system)
5235 (arguments
5236 `(#:phases
5237 (modify-phases %standard-phases
b0d34d23
TS
5238 ;; The release tarball for 2.22.0 is missing the test data for
5239 ;; the Hoogle test, causing it to fail. This is fixed in the
5240 ;; next release, but for now we disable it.
5241 (add-before 'configure 'remove-hoogle-test
dddbc90c
RV
5242 (lambda _
5243 (use-modules (ice-9 rdelim))
5244 (with-atomic-file-replacement "haddock.cabal"
5245 (lambda (in out)
5246 (let loop ((line (read-line in 'concat)) (deleting? #f))
5247 (cond
5248 ((eof-object? line) #t)
5249 ((string-every char-set:whitespace line)
5250 (unless deleting? (display line out))
5251 (loop (read-line in 'concat) #f))
b0d34d23 5252 ((string=? line "test-suite hoogle-test\n")
dddbc90c
RV
5253 (loop (read-line in 'concat) #t))
5254 (else
5255 (unless deleting? (display line out))
b0d34d23
TS
5256 (loop (read-line in 'concat) deleting?))))))))
5257 (add-before 'check 'add-haddock-to-path
5258 (lambda _
5259 (setenv "PATH" (string-append (getcwd) "/dist/build/haddock"
5260 ":" (getenv "PATH")))
5261 #t)))))
dddbc90c
RV
5262 (inputs `(("ghc-haddock-api" ,ghc-haddock-api)))
5263 (native-inputs
b0d34d23
TS
5264 `(("ghc-haddock-test" ,ghc-haddock-test)
5265 ("ghc-hspec" ,ghc-hspec)))
dddbc90c
RV
5266 (home-page "https://www.haskell.org/haddock/")
5267 (synopsis
5268 "Documentation-generation tool for Haskell libraries")
5269 (description
5270 "Haddock is a documentation-generation tool for Haskell libraries.")
5271 (license license:bsd-3)))
5272
5273(define-public ghc-haddock-api
5274 (package
5275 (name "ghc-haddock-api")
1b84d8ef 5276 (version "2.22.0")
dddbc90c
RV
5277 (source
5278 (origin
5279 (method url-fetch)
5280 (uri (string-append
5281 "https://hackage.haskell.org/package/haddock-api/haddock-api-"
5282 version
5283 ".tar.gz"))
1b84d8ef 5284 (patches (search-patches "ghc-haddock-api-fix-haddock.patch"))
dddbc90c
RV
5285 (sha256
5286 (base32
1b84d8ef 5287 "149q4zlf4m7wcrr4af2n2flh0jxjsypshbc229vsj1m0kmz4z014"))))
dddbc90c
RV
5288 (build-system haskell-build-system)
5289 (arguments
5290 `(#:phases
5291 (modify-phases %standard-phases
5292 (add-before 'configure 'update-constraints
5293 (lambda _
5294 (substitute* "haddock-api.cabal"
1b84d8ef
TS
5295 (("QuickCheck \\^>= 2\\.11")
5296 "QuickCheck ^>= 2.13")
5297 (("hspec >= 2\\.4\\.4 && < 2\\.6")
5298 "hspec >= 2.4.4 && < 2.8")))))))
dddbc90c
RV
5299 (inputs
5300 `(("ghc-paths" ,ghc-paths)
5301 ("ghc-haddock-library" ,ghc-haddock-library)))
5302 (native-inputs
5303 `(("ghc-quickcheck" ,ghc-quickcheck)
5304 ("ghc-hspec" ,ghc-hspec)
5305 ("hspec-discover" ,hspec-discover)))
5306 (home-page "https://www.haskell.org/haddock/")
5307 (synopsis "API for documentation-generation tool Haddock")
5308 (description "This package provides an API to Haddock, the
5309documentation-generation tool for Haskell libraries.")
5310 (license license:bsd-3)))
5311
5312(define-public ghc-haddock-library
5313 (package
5314 (name "ghc-haddock-library")
10707d57 5315 (version "1.7.0")
dddbc90c
RV
5316 (source
5317 (origin
5318 (method url-fetch)
5319 (uri (string-append
5320 "https://hackage.haskell.org/package/haddock-library/haddock-library-"
5321 version
5322 ".tar.gz"))
5323 (sha256
5324 (base32
10707d57 5325 "04fhcjk0pvsaqvsgp2w06cv2qvshq1xs1bwc157q4lmkgr57khp7"))))
dddbc90c
RV
5326 (build-system haskell-build-system)
5327 (arguments
5328 `(#:phases
5329 (modify-phases %standard-phases
10707d57
TS
5330 ;; Since there is no revised Cabal file upstream, we have to
5331 ;; patch it manually.
dddbc90c
RV
5332 (add-before 'configure 'relax-test-suite-dependencies
5333 (lambda _
5334 (substitute* "haddock-library.cabal"
10707d57
TS
5335 (("hspec\\s*>= 2.4.4 && < 2.6") "hspec")
5336 (("QuickCheck\\s*\\^>= 2.11") "QuickCheck"))
dddbc90c
RV
5337 #t)))))
5338 (native-inputs
5339 `(("ghc-base-compat" ,ghc-base-compat)
5340 ("ghc-hspec" ,ghc-hspec)
5341 ("ghc-optparse-applicative" ,ghc-optparse-applicative)
5342 ("ghc-quickcheck" ,ghc-quickcheck)
5343 ("ghc-tree-diff" ,ghc-tree-diff)
5344 ("hspec-discover" ,hspec-discover)))
5345 (home-page "https://www.haskell.org/haddock/")
5346 (synopsis "Library exposing some functionality of Haddock")
5347 (description
5348 "Haddock is a documentation-generation tool for Haskell libraries. These
5349modules expose some functionality of it without pulling in the GHC dependency.
5350Please note that the API is likely to change so specify upper bounds in your
5351project if you can't release often. For interacting with Haddock itself, see
5352the ‘haddock’ package.")
5353 (license license:bsd-3)))
5354
b0d34d23
TS
5355;; This package is needed for testing 'ghc-haddock'. It is no longer
5356;; published to Hackage, but it is maintained in the Haddock Git
5357;; repository.
5358(define ghc-haddock-test
5359 (package
5360 (name "ghc-haddock-test")
5361 (version "2.22.0")
5362 (source
5363 (origin
5364 (method git-fetch)
5365 (uri (git-reference
b0e7b699 5366 (url "https://github.com/haskell/haddock")
b0d34d23
TS
5367 (commit (string-append "haddock-" version "-release"))))
5368 (file-name (git-file-name name version))
5369 (sha256
5370 (base32
5371 "1ywxmqqan10gs0ppybdmdgsmvkzkpw7yirj2rw4qylg3x49a9zca"))))
5372 (build-system haskell-build-system)
5373 (arguments
5374 `(#:phases
5375 (modify-phases %standard-phases
5376 (add-after 'unpack 'change-directory
5377 (lambda _
5378 (chdir "haddock-test"))))))
5379 (inputs
5380 `(("ghc-syb" ,ghc-syb)
5381 ("ghc-xml" ,ghc-xml)))
228d2901 5382 (home-page "https://www.haskell.org/haddock/")
b0d34d23
TS
5383 (synopsis "Test utilities for Haddock")
5384 (description "This package provides test utilities for Haddock.")
5385 (license license:bsd-3)
5386 (properties '((hidden? #t)))))
5387
dddbc90c
RV
5388(define-public ghc-half
5389 (package
5390 (name "ghc-half")
5391 (version "0.3")
5392 (source
5393 (origin
5394 (method url-fetch)
5395 (uri (string-append
5396 "https://hackage.haskell.org/package/half/half-"
5397 version ".tar.gz"))
5398 (sha256
5399 (base32
5400 "14r0nx8hm5fic9gz0ybjjw4kyc758zfgvhhwvzsshpx5caq6zch6"))))
5401 (build-system haskell-build-system)
5402 (native-inputs
5403 `(("ghc-hspec" ,ghc-hspec)
5404 ("ghc-quickcheck" ,ghc-quickcheck)))
5405 (home-page "https://github.com/ekmett/half")
5406 (synopsis "Half-precision floating-point computations")
5407 (description "This library provides a half-precision floating-point
5408computation library for Haskell.")
5409 (license license:bsd-3)))
5410
5411(define-public ghc-happy
5412 (package
5413 (name "ghc-happy")
90e7b0e4 5414 (version "1.19.12")
dddbc90c
RV
5415 (source
5416 (origin
5417 (method url-fetch)
5418 (uri (string-append
5419 "https://hackage.haskell.org/package/happy/happy-"
5420 version
5421 ".tar.gz"))
5422 (sha256
5423 (base32
90e7b0e4 5424 "03xlmq6qmdx4zvzw8bp33kd9g7yvcq5cz4wg50xilw812kj276pv"))))
dddbc90c
RV
5425 (build-system haskell-build-system)
5426 (arguments
5427 `(#:phases
5428 (modify-phases %standard-phases
5429 (add-after 'unpack 'skip-test-issue93
5430 (lambda _
5431 ;; Tests run out of memory on a system with 2GB of available RAM,
5432 ;; in 'issue93.a.hs' and 'issue93.n.hs'.
5433 (substitute* "tests/Makefile"
5434 ((" issue93.y ") " "))
5435 #t)))))
5436 (home-page "https://hackage.haskell.org/package/happy")
5437 (synopsis "Parser generator for Haskell")
5438 (description "Happy is a parser generator for Haskell. Given a grammar
5439specification in BNF, Happy generates Haskell code to parse the grammar.
5440Happy works in a similar way to the yacc tool for C.")
5441 (license license:bsd-3)))
5442
5443(define-public ghc-hashable
5444 (package
5445 (name "ghc-hashable")
5446 (version "1.2.7.0")
534d6caa 5447 (outputs '("out" "static" "doc"))
dddbc90c
RV
5448 (source
5449 (origin
5450 (method url-fetch)
5451 (uri (string-append
5452 "https://hackage.haskell.org/package/hashable/hashable-"
5453 version
5454 ".tar.gz"))
5455 (sha256
5456 (base32
5457 "1gra8gq3kb7b2sd845h55yxlrfqx3ii004c6vjhga8v0b30fzdgc"))))
5458 (build-system haskell-build-system)
65a16a45
TS
5459 (arguments
5460 `(#:cabal-revision
5461 ("1" "197063dpl0wn67dp7a06yc2hxp81n24ykk7klbjx0fndm5n87dh3")))
dddbc90c
RV
5462 (inputs
5463 `(("ghc-random" ,ghc-random)))
5464 (native-inputs
5465 `(("ghc-test-framework" ,ghc-test-framework)
5466 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
5467 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)
5468 ("ghc-hunit" ,ghc-hunit)
5469 ("ghc-quickcheck" ,ghc-quickcheck)))
5470 (home-page "https://github.com/tibbe/hashable")
5471 (synopsis "Class for types that can be converted to a hash value")
5472 (description
5473 "This package defines a class, @code{Hashable}, for types that can be
5474converted to a hash value. This class exists for the benefit of hashing-based
5475data structures. The package provides instances for basic types and a way to
5476combine hash values.")
5477 (license license:bsd-3)))
5478
5479(define-public ghc-hashable-bootstrap
5480 (package
5481 (inherit ghc-hashable)
5482 (name "ghc-hashable-bootstrap")
65a16a45
TS
5483 (arguments
5484 `(#:tests? #f
5485 ,@(package-arguments ghc-hashable)))
dddbc90c
RV
5486 (native-inputs '())
5487 (properties '((hidden? #t)))))
5488
5489(define-public ghc-hashable-time
5490 (package
5491 (name "ghc-hashable-time")
f5051e31 5492 (version "0.2.0.2")
dddbc90c
RV
5493 (source
5494 (origin
5495 (method url-fetch)
5496 (uri (string-append
5497 "https://hackage.haskell.org/package/hashable-time/hashable-time-"
5498 version
5499 ".tar.gz"))
5500 (sha256
5501 (base32
f5051e31 5502 "1q7y4plqqwy5286hhx2fygn12h8lqk0y047b597sbdckskxzfqgs"))))
dddbc90c
RV
5503 (build-system haskell-build-system)
5504 (arguments
5505 `(#:cabal-revision
f5051e31 5506 ("2" "006phc5y9rrvsshdcmjmhxzxh8dpgs685mpqbkjm9c40xb1ydjbz")))
dddbc90c 5507 (inputs `(("ghc-hashable" ,ghc-hashable)))
3b02036e 5508 (home-page "https://hackage.haskell.org/package/hashable-time")
dddbc90c
RV
5509 (synopsis "Hashable instances for Data.Time")
5510 (description
5511 "This package provides @code{Hashable} instances for types in
5512@code{Data.Time}.")
5513 (license license:bsd-3)))
5514
5515(define-public ghc-hashtables
5516 (package
5517 (name "ghc-hashtables")
19edf0d0 5518 (version "1.2.3.4")
dddbc90c
RV
5519 (source
5520 (origin
5521 (method url-fetch)
5522 (uri (string-append
5523 "https://hackage.haskell.org/package/hashtables/hashtables-"
5524 version ".tar.gz"))
5525 (sha256
19edf0d0 5526 (base32 "1rjmxnr30g4hygiywkpz5p9sanh0abs7ap4zc1kgd8zv04kycp0j"))))
dddbc90c
RV
5527 (build-system haskell-build-system)
5528 (inputs
5529 `(("ghc-hashable" ,ghc-hashable)
5530 ("ghc-primitive" ,ghc-primitive)
5531 ("ghc-vector" ,ghc-vector)))
5532 (home-page "https://github.com/gregorycollins/hashtables")
5533 (synopsis "Haskell Mutable hash tables in the ST monad")
5534 (description "This package provides a Haskell library including a
5535couple of different implementations of mutable hash tables in the ST
5536monad, as well as a typeclass abstracting their common operations, and
5537a set of wrappers to use the hash tables in the IO monad.")
5538 (license license:bsd-3)))
5539
dd26713e
JS
5540(define-public ghc-haskeline-0.8
5541 (package
5542 (name "ghc-haskeline")
5543 (version "0.8.0.0")
5544 (source
5545 (origin
5546 (method url-fetch)
5547 (uri (string-append
5548 "https://hackage.haskell.org/package/haskeline/haskeline-"
5549 version
5550 ".tar.gz"))
5551 (sha256
5552 (base32
5553 "0gqsa5s0drim9m42hv4wrq61mnvcdylxysfxfw3acncwilfrn9pb"))))
5554 (build-system haskell-build-system)
5555 (inputs `(("ghc-exceptions" ,ghc-exceptions)))
5556 (native-inputs `(("ghc-hunit" ,ghc-hunit)))
5557 ;; FIXME: Tests failing
5558 (arguments `(#:tests? #f))
5559 (home-page "https://github.com/judah/haskeline")
5560 (synopsis
5561 "Command-line interface for user input, written in Haskell")
5562 (description
5563 "Haskeline provides a user interface for line input in command-line
5564programs. This library is similar in purpose to readline, but since it is
5565written in Haskell it is (hopefully) more easily used in other Haskell
5566programs.
5567
5568Haskeline runs both on POSIX-compatible systems and on Windows.")
5569 (license license:bsd-3)))
5570
dddbc90c
RV
5571(define-public ghc-haskell-lexer
5572 (package
5573 (name "ghc-haskell-lexer")
5574 (version "1.0.2")
5575 (source
5576 (origin
5577 (method url-fetch)
5578 (uri (string-append
5579 "https://hackage.haskell.org/package/haskell-lexer/haskell-lexer-"
5580 version ".tar.gz"))
5581 (sha256
5582 (base32 "1wyxd8x33x4v5vxyzkhm610pl86gbkc8y439092fr1735q9g7kfq"))))
5583 (build-system haskell-build-system)
3ef91e15 5584 (home-page "https://hackage.haskell.org/package/haskell-lexer")
dddbc90c
RV
5585 (synopsis "Fully compliant Haskell 98 lexer")
5586 (description
5587 "This package provides a fully compliant Haskell 98 lexer.")
5588 (license license:bsd-3)))
5589
5590(define-public ghc-haskell-src
5591 (package
5592 (name "ghc-haskell-src")
5593 (version "1.0.3.0")
5594 (source
5595 (origin
5596 (method url-fetch)
5597 (uri (string-append
5598 "https://hackage.haskell.org/package/haskell-src/haskell-src-"
5599 version
5600 ".tar.gz"))
5601 (sha256
5602 (base32
5603 "1g4dj1f0j68bhn4ixfac63wjzy6gsp6kwgxryb1k5nl3i0g99d5l"))))
5604 (build-system haskell-build-system)
5605 (inputs
5606 `(("ghc-happy" ,ghc-happy)
5607 ("ghc-syb" ,ghc-syb)))
5608 (home-page
5609 "https://hackage.haskell.org/package/haskell-src")
5610 (synopsis
5611 "Support for manipulating Haskell source code")
5612 (description
5613 "The @code{haskell-src} package provides support for manipulating Haskell
5614source code. The package provides a lexer, parser and pretty-printer, and a
5615definition of a Haskell abstract syntax tree (AST). Common uses of this
5616package are to parse or generate Haskell 98 code.")
5617 (license license:bsd-3)))
5618
5619(define-public ghc-haskell-src-exts
5620 (package
5621 (name "ghc-haskell-src-exts")
37a05591 5622 (version "1.21.1")
dddbc90c
RV
5623 (source
5624 (origin
5625 (method url-fetch)
5626 (uri (string-append
5627 "https://hackage.haskell.org/package/haskell-src-exts/haskell-src-exts-"
5628 version
5629 ".tar.gz"))
5630 (sha256
5631 (base32
37a05591 5632 "0q1y8n3d82gid9bcx8wxsqqmj9mq11fg3gp5yzpfbw958dhi3j9f"))))
dddbc90c 5633 (build-system haskell-build-system)
cad59e53 5634 (outputs '("out" "static" "doc"))
dddbc90c
RV
5635 (inputs
5636 `(("cpphs" ,cpphs)
5637 ("ghc-happy" ,ghc-happy)
5638 ("ghc-pretty-show" ,ghc-pretty-show)))
5639 (native-inputs
5640 `(("ghc-smallcheck" ,ghc-smallcheck)
5641 ("ghc-tasty" ,ghc-tasty)
5642 ("ghc-tasty-smallcheck" ,ghc-tasty-smallcheck)
5643 ("ghc-tasty-golden" ,ghc-tasty-golden)))
5644 (home-page "https://github.com/haskell-suite/haskell-src-exts")
5645 (synopsis "Library for manipulating Haskell source")
5646 (description "Haskell-Source with Extensions (HSE, haskell-src-exts) is an
5647extension of the standard @code{haskell-src} package, and handles most
5648registered syntactic extensions to Haskell. All extensions implemented in GHC
5649are supported. Apart from these standard extensions, it also handles regular
5650patterns as per the HaRP extension as well as HSX-style embedded XML syntax.")
5651 (license license:bsd-3)))
5652
5653(define-public ghc-haskell-src-exts-util
5654 (package
5655 (name "ghc-haskell-src-exts-util")
77355bdf 5656 (version "0.2.5")
dddbc90c
RV
5657 (source
5658 (origin
5659 (method url-fetch)
5660 (uri (string-append "https://hackage.haskell.org/package/"
5661 "haskell-src-exts-util/haskell-src-exts-util-"
5662 version ".tar.gz"))
5663 (sha256
5664 (base32
77355bdf 5665 "0fvqi72m74p7q5sbpy8m2chm8a1lgy10mfrcxcz8wrh59vngj0n8"))))
dddbc90c
RV
5666 (build-system haskell-build-system)
5667 (inputs
5668 `(("ghc-data-default" ,ghc-data-default)
5669 ("ghc-haskell-src-exts" ,ghc-haskell-src-exts)
5670 ("ghc-semigroups" ,ghc-semigroups)
5671 ("ghc-uniplate" ,ghc-uniplate)))
5672 (home-page "https://github.com/pepeiborra/haskell-src-exts-util")
5673 (synopsis "Helper functions for working with haskell-src-exts trees")
5674 (description
5675 "This package provides helper functions for working with
5676@code{haskell-src-exts} trees.")
5677 (license license:bsd-3)))
5678
5679(define-public ghc-haskell-src-meta
5680 (package
5681 (name "ghc-haskell-src-meta")
e94b3c72 5682 (version "0.8.3")
dddbc90c
RV
5683 (source (origin
5684 (method url-fetch)
5685 (uri (string-append "https://hackage.haskell.org/package/"
5686 "haskell-src-meta/haskell-src-meta-"
5687 version ".tar.gz"))
5688 (sha256
5689 (base32
e94b3c72 5690 "17znnaqj2hnnfyc9p9xjzbs97h2jh1h4f4qbw648y3xa14wx5ra9"))))
dddbc90c
RV
5691 (build-system haskell-build-system)
5692 (inputs
5693 `(("ghc-haskell-src-exts" ,ghc-haskell-src-exts)
5694 ("ghc-syb" ,ghc-syb)
5695 ("ghc-th-orphans" ,ghc-th-orphans)))
5696 (native-inputs
5697 `(("ghc-hunit" ,ghc-hunit)
e94b3c72
TS
5698 ("ghc-tasty" ,ghc-tasty)
5699 ("ghc-tasty-hunit" ,ghc-tasty-hunit)))
dddbc90c
RV
5700 (home-page "https://hackage.haskell.org/package/haskell-src-meta")
5701 (synopsis "Parse source to template-haskell abstract syntax")
5702 (description
5703 "This package provides tools to parse Haskell sources to the
5704template-haskell abstract syntax.")
5705 (license license:bsd-3)))
5706
5707(define-public ghc-hasktags
5708 (package
5709 (name "ghc-hasktags")
5710 (version "0.71.2")
5711 (source
5712 (origin
5713 (method url-fetch)
5714 (uri (string-append
5715 "https://hackage.haskell.org/package/hasktags/hasktags-"
5716 version
5717 ".tar.gz"))
5718 (sha256
5719 (base32
5720 "1s2k9qrgy1jily96img2pmn7g35mwnnfiw6si3aw32jfhg5zsh1c"))))
5721 (build-system haskell-build-system)
5722 (inputs
5723 `(("ghc-system-filepath" ,ghc-system-filepath)
5724 ("ghc-optparse-applicative" ,ghc-optparse-applicative)))
5725 (native-inputs
5726 `(("ghc-json" ,ghc-json)
5727 ("ghc-utf8-string" ,ghc-utf8-string)
5728 ("ghc-microlens-platform" ,ghc-microlens-platform)
5729 ("ghc-hunit" ,ghc-hunit)))
702a1012 5730 (home-page "https://github.com/MarcWeber/hasktags")
dddbc90c
RV
5731 (synopsis "Make @code{Ctags} and @code{Etags} files for Haskell programs")
5732 (description
5733 "This package provides a means of generating tag files for Emacs and
5734Vim.")
5735 (license license:bsd-3)))
5736
5737(define-public ghc-hex
5738 (package
5739 (name "ghc-hex")
5740 (version "0.1.2")
5741 (source
5742 (origin
5743 (method url-fetch)
5744 (uri (string-append "https://hackage.haskell.org/package/"
5745 "hex-" version "/"
5746 "hex-" version ".tar.gz"))
5747 (sha256
5748 (base32
5749 "1v31xiaivrrn0q2jz8919wvkjplv1kxna5ajhsj701fqxm1i5vhj"))))
5750 (build-system haskell-build-system)
5751 (home-page "https://hackage.haskell.org/package/hex")
5752 (synopsis "Convert strings into hexadecimal and back")
7230f6d5
TGR
5753 (description "This package converts between bytestrings and their
5754hexadecimal string representation.")
dddbc90c
RV
5755 (license license:bsd-3)))
5756
5757(define-public ghc-highlighting-kate
5758 (package
5759 (name "ghc-highlighting-kate")
5760 (version "0.6.4")
5761 (source (origin
5762 (method url-fetch)
5763 (uri (string-append "https://hackage.haskell.org/package/"
5764 "highlighting-kate/highlighting-kate-"
5765 version ".tar.gz"))
5766 (sha256
5767 (base32
5768 "1bqv00gfmrsf0jjr4qf3lhshvfkyzmhbi3pjb6mafbnsyn2k7f6q"))))
5769 (build-system haskell-build-system)
5770 (inputs
5771 `(("ghc-diff" ,ghc-diff)
5772 ("ghc-regex-pcre-builtin" ,ghc-regex-pcre-builtin)))
5773 (native-inputs
5774 `(("ghc-blaze-html" ,ghc-blaze-html)
5775 ("ghc-utf8-string" ,ghc-utf8-string)))
5776 (home-page "https://github.com/jgm/highlighting-kate")
5777 (synopsis "Syntax highlighting library")
5778 (description
5779 "Highlighting-kate is a syntax highlighting library with support for
5780nearly one hundred languages. The syntax parsers are automatically generated
5781from @uref{https://kate-editor.org/, Kate syntax descriptions}, so any syntax
5782supported by Kate can be added. An (optional) command-line program is
5783provided, along with a utility for generating new parsers from Kate XML syntax
5784descriptions.")
5785 (license license:gpl2+)))
5786
5787(define-public ghc-hindent
5788 (package
5789 (name "ghc-hindent")
f545f894 5790 (version "5.3.1")
dddbc90c
RV
5791 (source
5792 (origin
5793 (method url-fetch)
5794 (uri (string-append
5795 "https://hackage.haskell.org/package/hindent/hindent-"
5796 version
5797 ".tar.gz"))
5798 (sha256
5799 (base32
f545f894 5800 "008s8zm9qs972b7v5kkmr8l3i9kc6zm7yj33mkw6dv69b7h3c01l"))))
dddbc90c
RV
5801 (build-system haskell-build-system)
5802 (arguments
5803 `(#:modules ((guix build haskell-build-system)
5804 (guix build utils)
5805 (guix build emacs-utils))
5806 #:imported-modules (,@%haskell-build-system-modules
5807 (guix build emacs-utils))
5808 #:phases
5809 (modify-phases %standard-phases
5810 (add-after 'install 'emacs-install
5811 (lambda* (#:key inputs outputs #:allow-other-keys)
5812 (let* ((out (assoc-ref outputs "out"))
5813 (elisp-file "elisp/hindent.el")
d53e87cf 5814 (dest (string-append out "/share/emacs/site-lisp"))
dddbc90c
RV
5815 (emacs (string-append (assoc-ref inputs "emacs")
5816 "/bin/emacs")))
5817 (make-file-writable elisp-file)
5818 (emacs-substitute-variables elisp-file
5819 ("hindent-process-path"
5820 (string-append out "/bin/hindent")))
5821 (install-file elisp-file dest)
5822 (emacs-generate-autoloads "hindent" dest)))))))
5823 (inputs
5824 `(("ghc-haskell-src-exts" ,ghc-haskell-src-exts)
5825 ("ghc-monad-loops" ,ghc-monad-loops)
5826 ("ghc-utf8-string" ,ghc-utf8-string)
5827 ("ghc-exceptions" ,ghc-exceptions)
5828 ("ghc-yaml" ,ghc-yaml)
5829 ("ghc-unix-compat" ,ghc-unix-compat)
5830 ("ghc-path" ,ghc-path)
5831 ("ghc-path-io" ,ghc-path-io)
5832 ("ghc-optparse-applicative" ,ghc-optparse-applicative)))
5833 (native-inputs
5834 `(("ghc-hspec" ,ghc-hspec)
5835 ("ghc-diff" ,ghc-diff)
5836 ("emacs" ,emacs-minimal)))
5837 (home-page
5838 "https://github.com/commercialhaskell/hindent")
5839 (synopsis "Extensible Haskell pretty printer")
5840 (description
5841 "This package provides automatic formatting for Haskell files. Both a
5842library and an executable.")
5843 (license license:bsd-3)))
5844
5845(define-public ghc-hinotify
5846 (package
5847 (name "ghc-hinotify")
c2342abb 5848 (version "0.4")
dddbc90c
RV
5849 (source (origin
5850 (method url-fetch)
5851 (uri (string-append
5852 "https://hackage.haskell.org/package/hinotify/"
5853 "hinotify-" version ".tar.gz"))
5854 (sha256
5855 (base32
c2342abb 5856 "1x1lm685ws2q0z0ibwq6x3l72xh67mj06s36xiga3al48d92q63x"))))
dddbc90c
RV
5857 (build-system haskell-build-system)
5858 (inputs
5859 `(("ghc-async" ,ghc-async)))
5860 (home-page "https://github.com/kolmodin/hinotify.git")
5861 (synopsis "Haskell binding to inotify")
5862 (description "This library provides a wrapper to the Linux kernel's inotify
5863feature, allowing applications to subscribe to notifications when a file is
5864accessed or modified.")
5865 (license license:bsd-3)))
5866
d6108968
CH
5867(define-public ghc-hledger-lib
5868 (package
5869 (name "ghc-hledger-lib")
5870 (version "1.19.1")
5871 (source
5872 (origin
5873 (method url-fetch)
5874 (uri (string-append
5875 "https://hackage.haskell.org/package/hledger-lib/hledger-lib-"
5876 version
5877 ".tar.gz"))
5878 (sha256
5879 (base32
5880 "0py11011r358nmnvwwkc8mlx6mpy36jm8sqlr4i8ihx3x0zjdgya"))))
5881 (build-system haskell-build-system)
5882 (inputs
5883 `(("ghc-decimal" ,ghc-decimal)
5884 ("ghc-glob" ,ghc-glob)
5885 ("ghc-aeson" ,ghc-aeson)
5886 ("ghc-aeson-pretty" ,ghc-aeson-pretty)
5887 ("ghc-ansi-terminal" ,ghc-ansi-terminal)
5888 ("ghc-base-compat-batteries" ,ghc-base-compat-batteries)
5889 ("ghc-blaze-markup" ,ghc-blaze-markup)
5890 ("ghc-call-stack" ,ghc-call-stack)
5891 ("ghc-cassava" ,ghc-cassava)
5892 ("ghc-cassava-megaparsec" ,ghc-cassava-megaparsec)
5893 ("ghc-cmdargs" ,ghc-cmdargs)
5894 ("ghc-data-default" ,ghc-data-default)
5895 ("ghc-extra" ,ghc-extra)
5896 ("ghc-fgl" ,ghc-fgl)
5897 ("ghc-file-embed" ,ghc-file-embed)
5898 ("ghc-hashtables" ,ghc-hashtables)
5899 ("ghc-megaparsec" ,ghc-megaparsec)
5900 ("ghc-old-time" ,ghc-old-time)
5901 ("ghc-parser-combinators" ,ghc-parser-combinators)
5902 ("ghc-pretty-show" ,ghc-pretty-show)
5903 ("ghc-regex-tdfa" ,ghc-regex-tdfa)
5904 ("ghc-safe" ,ghc-safe)
5905 ("ghc-split" ,ghc-split)
5906 ("ghc-tabular" ,ghc-tabular)
5907 ("ghc-tasty" ,ghc-tasty)
5908 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
5909 ("ghc-timeit" ,ghc-timeit)
5910 ("ghc-uglymemo" ,ghc-uglymemo)
5911 ("ghc-unordered-containers" ,ghc-unordered-containers)
5912 ("ghc-utf8-string" ,ghc-utf8-string)))
5913 (native-inputs
5914 `(("ghc-doctest" ,ghc-doctest)))
5915 (home-page "https://hledger.org")
5916 (synopsis "Reusable library providing the core functionality of hledger")
5917 (description
5918 "A reusable library containing hledger's core functionality.
5919This is used by most hledger* packages so that they support the same common
5920file formats, command line options, reports etc.
5921
5922hledger is a robust, cross-platform set of tools for tracking money, time, or
5923any other commodity, using double-entry accounting and a simple, editable file
5924format, with command-line, terminal and web interfaces. It is a Haskell
5925rewrite of Ledger, and one of the leading implementations of Plain Text
5926Accounting.")
5927 (license license:gpl3)))
5928
dddbc90c
RV
5929(define-public ghc-hmatrix
5930 (package
5931 (name "ghc-hmatrix")
65e29ed1 5932 (version "0.20.0.0")
dddbc90c
RV
5933 (source
5934 (origin
5935 (method url-fetch)
5936 (uri (string-append
5937 "https://hackage.haskell.org/package/hmatrix/hmatrix-"
5938 version ".tar.gz"))
5939 (sha256
65e29ed1 5940 (base32 "1sqy1aci5zfagkb34mz3xdil7cl96z4b4cx28cha54vc5sx1lhpg"))))
dddbc90c 5941 (build-system haskell-build-system)
54a5fd07
TS
5942 (arguments
5943 `(#:extra-directories ("lapack")))
dddbc90c
RV
5944 (inputs
5945 `(("ghc-random" ,ghc-random)
5946 ("ghc-split" ,ghc-split)
5947 ("ghc-storable-complex" ,ghc-storable-complex)
5948 ("ghc-semigroups" ,ghc-semigroups)
5949 ("ghc-vector" ,ghc-vector)
5950 ;;("openblas" ,openblas)
5951 ("lapack" ,lapack)))
5952 ;; Guix's OpenBLAS is built with the flag "NO_LAPACK=1" which
5953 ;; disables inclusion of the LAPACK functions.
5954 ;; (arguments `(#:configure-flags '("--flags=openblas")))
5955 (home-page "https://github.com/albertoruiz/hmatrix")
5956 (synopsis "Haskell numeric linear algebra library")
5957 (description "The HMatrix package provices a Haskell library for
5958dealing with linear systems, matrix decompositions, and other
5959numerical computations based on BLAS and LAPACK.")
5960 (license license:bsd-3)))
5961
5962(define-public ghc-hmatrix-gsl
5963 (package
5964 (name "ghc-hmatrix-gsl")
5965 (version "0.19.0.1")
5966 (source
5967 (origin
5968 (method url-fetch)
5969 (uri (string-append
5970 "https://hackage.haskell.org/package/hmatrix-gsl/hmatrix-gsl-"
5971 version ".tar.gz"))
5972 (sha256
5973 (base32 "0v6dla426x4ywaq59jm89ql1i42n39iw6z0j378xwb676v9kfxhm"))))
5974 (build-system haskell-build-system)
54a5fd07
TS
5975 (arguments
5976 `(#:extra-directories ("gsl")))
dddbc90c
RV
5977 (inputs
5978 `(("ghc-hmatrix" ,ghc-hmatrix)
5979 ("ghc-vector" ,ghc-vector)
5980 ("ghc-random" ,ghc-random)
5981 ("gsl" ,gsl)))
5982 (native-inputs `(("pkg-config" ,pkg-config)))
5983 (home-page "https://github.com/albertoruiz/hmatrix")
5984 (synopsis "Haskell GSL binding")
5985 (description "This Haskell library provides a purely functional
5986interface to selected numerical computations, internally implemented
5987using GSL.")
5988 (license license:gpl3+)))
5989
5990(define-public ghc-hmatrix-gsl-stats
5991 (package
5992 (name "ghc-hmatrix-gsl-stats")
e9b359f5 5993 (version "0.4.1.8")
dddbc90c
RV
5994 (source
5995 (origin
5996 (method url-fetch)
5997 (uri
5998 (string-append
5999 "https://hackage.haskell.org/package/hmatrix-gsl-stats/hmatrix-gsl-stats-"
6000 version ".tar.gz"))
6001 (sha256
e9b359f5 6002 (base32 "1cq049sj3q5r06x7i35hqrkf2jc4p4kfi9zv0jmi2vp7w4644i5q"))))
dddbc90c
RV
6003 (build-system haskell-build-system)
6004 (inputs
6005 `(("ghc-vector" ,ghc-vector)
6006 ("ghc-storable-complex" ,ghc-storable-complex)
6007 ("ghc-hmatrix" ,ghc-hmatrix)
6008 ("gsl" ,gsl)))
6009 (native-inputs `(("pkg-config" ,pkg-config)))
6010 (home-page "http://code.haskell.org/hmatrix-gsl-stats")
6011 (synopsis "GSL Statistics interface for Haskell")
6012 (description "This Haskell library provides a purely functional
6013interface for statistics based on hmatrix and GSL.")
6014 (license license:bsd-3)))
6015
6016(define-public ghc-hmatrix-special
6017 (package
6018 (name "ghc-hmatrix-special")
6019 (version "0.19.0.0")
6020 (source
6021 (origin
6022 (method url-fetch)
6023 (uri
6024 (string-append
6025 "https://hackage.haskell.org/package/hmatrix-special/hmatrix-special-"
6026 version ".tar.gz"))
6027 (sha256
6028 (base32 "1mywr61kr852sbff26n9x95kswx9l4ycbv6s68qsbkh02xzqq7qz"))))
6029 (build-system haskell-build-system)
6030 (inputs
6031 `(("ghc-hmatrix" ,ghc-hmatrix)
6032 ("ghc-hmatrix-gsl" ,ghc-hmatrix-gsl)))
6033 (home-page "https://github.com/albertoruiz/hmatrix")
6034 (synopsis "Haskell interface to GSL special functions")
6035 (description "This library provides an interface to GSL special
6036functions for Haskell.")
6037 (license license:gpl3+)))
6038
6039(define-public ghc-hostname
6040 (package
6041 (name "ghc-hostname")
6042 (version "1.0")
6043 (source
6044 (origin
6045 (method url-fetch)
6046 (uri (string-append "https://hackage.haskell.org/package/hostname/"
6047 "hostname-" version ".tar.gz"))
6048 (sha256
6049 (base32
6050 "0p6gm4328946qxc295zb6vhwhf07l1fma82vd0siylnsnsqxlhwv"))))
6051 (build-system haskell-build-system)
6052 (home-page "https://hackage.haskell.org/package/hostname")
6053 (synopsis "Hostname in Haskell")
6054 (description "Network.HostName is a simple package providing a means to
6055determine the hostname.")
6056 (license license:bsd-3)))
6057
6058(define-public ghc-hourglass
6059 (package
6060 (name "ghc-hourglass")
6061 (version "0.2.12")
6062 (source (origin
6063 (method url-fetch)
6064 (uri (string-append "https://hackage.haskell.org/package/"
6065 "hourglass/hourglass-" version ".tar.gz"))
6066 (sha256
6067 (base32
6068 "0jnay5j13vpz6i1rkaj3j0d9v8jfpri499xn3l7wd01f81f5ncs4"))))
6069 (build-system haskell-build-system)
6070 (inputs
6071 `(("ghc-old-locale" ,ghc-old-locale)))
6072 (native-inputs
6073 `(("ghc-tasty" ,ghc-tasty)
6074 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
6075 ("ghc-tasty-hunit" ,ghc-tasty-hunit)))
6076 (home-page "https://github.com/vincenthz/hs-hourglass")
6077 (synopsis "Simple time-related library for Haskell")
6078 (description
6079 "This is a simple time library providing a simple but powerful and
6080performant API. The backbone of the library are the @code{Timeable} and
6081@code{Time} type classes. Each @code{Timeable} instances can be converted to
6082a type that has a @code{Time} instances, and thus are different
6083representations of current time.")
6084 (license license:bsd-3)))
6085
6086(define-public ghc-hpack
6087 (package
6088 (name "ghc-hpack")
06344a3a 6089 (version "0.31.2")
dddbc90c
RV
6090 (source
6091 (origin
6092 (method url-fetch)
6093 (uri (string-append "https://hackage.haskell.org/package/hpack/"
6094 "hpack-" version ".tar.gz"))
06344a3a 6095 (patches (search-patches "ghc-hpack-fix-tests.patch"))
dddbc90c
RV
6096 (sha256
6097 (base32
06344a3a 6098 "1l2d6185lawwhsj70swxkvcacm0hvcn9qsrlx4ph4gs6k578603g"))))
dddbc90c
RV
6099 (build-system haskell-build-system)
6100 (inputs
6101 `(("ghc-aeson" ,ghc-aeson)
6102 ("ghc-bifunctors" ,ghc-bifunctors)
6103 ("ghc-cryptonite" ,ghc-cryptonite)
6104 ("ghc-glob" ,ghc-glob)
6105 ("ghc-http-client" ,ghc-http-client)
6106 ("ghc-http-client-tls" ,ghc-http-client-tls)
6107 ("ghc-http-types" ,ghc-http-types)
06344a3a 6108 ("ghc-infer-license" ,ghc-infer-license)
dddbc90c
RV
6109 ("ghc-scientific" ,ghc-scientific)
6110 ("ghc-unordered-containers" ,ghc-unordered-containers)
6111 ("ghc-vector" ,ghc-vector)
6112 ("ghc-yaml" ,ghc-yaml)))
6113 (native-inputs
6114 `(("ghc-hspec" ,ghc-hspec)
6115 ("ghc-hunit" ,ghc-hunit)
6116 ("ghc-interpolate" ,ghc-interpolate)
6117 ("ghc-mockery" ,ghc-mockery)
6118 ("ghc-quickcheck" ,ghc-quickcheck)
6119 ("ghc-temporary" ,ghc-temporary)
6120 ("hspec-discover" ,hspec-discover)))
6121 (home-page "https://github.com/sol/hpack")
6122 (synopsis "Tools for an alternative Haskell package format")
6123 (description
6124 "Hpack is a format for Haskell packages. It is an alternative to the
6125Cabal package format and follows different design principles. Hpack packages
6126are described in a file named @code{package.yaml}. Both @code{cabal2nix} and
6127@code{stack} support @code{package.yaml} natively. For other build tools the
6128@code{hpack} executable can be used to generate a @code{.cabal} file from
6129@code{package.yaml}.")
6130 (license license:expat)))
6131
e16f7de8
CH
6132(define-public ghc-hspec-megaparsec
6133 (package
6134 (name "ghc-hspec-megaparsec")
6135 (version "2.0.1")
6136 (source
6137 (origin
6138 (method url-fetch)
6139 (uri (string-append
6140 "https://hackage.haskell.org/"
6141 "package/hspec-megaparsec/hspec-megaparsec-"
6142 version
6143 ".tar.gz"))
6144 (sha256
6145 (base32
6146 "0w8nn2rh01lkiwsiyqh3gviklhfmy0245rakj94dmliyljw8skfg"))))
6147 (build-system haskell-build-system)
6148 (inputs
6149 `(("ghc-hspec-expectations" ,ghc-hspec-expectations)
6150 ("ghc-megaparsec" ,ghc-megaparsec)))
6151 (native-inputs
6152 `(("ghc-hspec" ,ghc-hspec)))
6153 (home-page "https://github.com/mrkkrp/hspec-megaparsec")
6154 (synopsis "Utility functions for testing Megaparsec parsers with Hspec")
6155 (description
6156 "Provides a small set of helper functions for testing Megaparsec parsers
6157with Hspec.")
6158 (license license:bsd-3)))
6159
dddbc90c
RV
6160(define-public ghc-hs-bibutils
6161 (package
6162 (name "ghc-hs-bibutils")
ebcb4f23 6163 (version "6.7.0.0")
dddbc90c
RV
6164 (source
6165 (origin
6166 (method url-fetch)
6167 (uri (string-append
6168 "https://hackage.haskell.org/package/hs-bibutils/hs-bibutils-"
6169 version ".tar.gz"))
6170 (sha256
6171 (base32
ebcb4f23 6172 "1qfyssl76lm4g09yxr3y10kmf8cnzls46g5h0ijk0wpk9wlhbln5"))))
dddbc90c
RV
6173 (build-system haskell-build-system)
6174 (inputs `(("ghc-syb" ,ghc-syb)))
6175 (home-page "https://hackage.haskell.org/package/hs-bibutils")
6176 (synopsis "Haskell bindings to bibutils")
6177 (description
6178 "This package provides Haskell bindings to @code{bibutils}, a library
6179that interconverts between various bibliography formats using a common
6180MODS-format XML intermediate.")
6181 (license license:gpl2+)))
6182
6183(define-public ghc-hslogger
6184 (package
6185 (name "ghc-hslogger")
e5ccc5f7 6186 (version "1.2.12")
dddbc90c
RV
6187 (source
6188 (origin
6189 (method url-fetch)
6190 (uri (string-append "https://hackage.haskell.org/package/"
6191 "hslogger-" version "/" "hslogger-"
6192 version ".tar.gz"))
6193 (sha256 (base32
e5ccc5f7 6194 "0ykcsk7wqygvrg60r5kpl6xfinr706al8pfyk5wj67wjs24lqypr"))))
dddbc90c
RV
6195 (build-system haskell-build-system)
6196 (inputs
6197 `(("ghc-network" ,ghc-network)
6198 ("ghc-old-locale" ,ghc-old-locale)))
6199 (native-inputs
6200 `(("ghc-hunit" ,ghc-hunit)))
6201 (home-page "https://software.complete.org/hslogger")
6202 (synopsis "Logging framework for Haskell, similar to Python's logging module")
6203 (description "Hslogger lets each log message have a priority and source be
6204associated with it. The programmer can then define global handlers that route
6205or filter messages based on the priority and source. It also has a syslog
6206handler built in.")
6207 (license license:bsd-3)))
6208
6209(define-public ghc-hslua
6210 (package
6211 (name "ghc-hslua")
cc784d7b 6212 (version "1.0.3.2")
dddbc90c
RV
6213 (source (origin
6214 (method url-fetch)
6215 (uri (string-append "https://hackage.haskell.org/package/"
6216 "hslua/hslua-" version ".tar.gz"))
6217 (sha256
6218 (base32
cc784d7b 6219 "183bgl5jcx5y2r94lviqfw0a5w9089nxjd1z40k8vx9y2h60pm6j"))))
dddbc90c
RV
6220 (build-system haskell-build-system)
6221 (arguments
54a5fd07
TS
6222 `(#:configure-flags '("-fsystem-lua")
6223 #:extra-directories ("lua")))
dddbc90c
RV
6224 (inputs
6225 `(("lua" ,lua)
6226 ("ghc-exceptions" ,ghc-exceptions)
6227 ("ghc-fail" ,ghc-fail)))
6228 (native-inputs
6229 `(("ghc-tasty" ,ghc-tasty)
6230 ("ghc-tasty-expected-failure" ,ghc-tasty-expected-failure)
6231 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
6232 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
6233 ("ghc-quickcheck" ,ghc-quickcheck)
6234 ("ghc-quickcheck-instances" ,ghc-quickcheck-instances)))
6235 (home-page "https://hackage.haskell.org/package/hslua")
6236 (synopsis "Lua language interpreter embedding in Haskell")
6237 (description
6238 "The Scripting.Lua module is a wrapper of the Lua language interpreter as
6239described in @url{https://www.lua.org/}.")
6240 (license license:expat)))
6241
ff303e4e
TS
6242(define-public ghc-hslua-module-system
6243 (package
6244 (name "ghc-hslua-module-system")
6245 (version "0.2.1")
6246 (source
6247 (origin
6248 (method url-fetch)
6249 (uri (string-append "https://hackage.haskell.org/package/"
6250 "hslua-module-system/hslua-module-system-"
6251 version ".tar.gz"))
6252 (sha256
6253 (base32
6254 "1m7wz3g5c34pyizqw5mllzhsy2vziddhlbhjfwdvd7nhd3p4v3hh"))))
6255 (build-system haskell-build-system)
6256 (inputs
6257 `(("ghc-exceptions" ,ghc-exceptions)
6258 ("ghc-hslua" ,ghc-hslua)
6259 ("ghc-temporary" ,ghc-temporary)))
6260 (native-inputs
6261 `(("ghc-tasty" ,ghc-tasty)
6262 ("ghc-tasty-hunit" ,ghc-tasty-hunit)))
6263 (home-page "https://github.com/hslua/hslua-module-system")
6264 (synopsis "Lua module wrapper around Haskell's System module")
6265 (description "This library provides access to system information and
6266functionality to Lua scripts via Haskell's @code{System} module. Intended
6267usage for this package is to preload it by adding the loader function to
6268@code{package.preload}. Note that the Lua @code{package} library must have
6269already been loaded before the loader can be added.")
6270 (license license:expat)))
6271
dddbc90c
RV
6272(define-public ghc-hslua-module-text
6273 (package
6274 (name "ghc-hslua-module-text")
ecaf0b0c 6275 (version "0.2.1")
dddbc90c
RV
6276 (source
6277 (origin
6278 (method url-fetch)
6279 (uri (string-append "https://hackage.haskell.org/package/"
6280 "hslua-module-text/hslua-module-text-"
6281 version ".tar.gz"))
6282 (sha256
6283 (base32
ecaf0b0c 6284 "1ikdwvvxhbd5wmfr85dzs2ccamh9rbbpgy899z7s1vlv5q1dj0hk"))))
dddbc90c 6285 (build-system haskell-build-system)
dddbc90c
RV
6286 (inputs
6287 `(("ghc-hslua" ,ghc-hslua)))
6288 (native-inputs
6289 `(("ghc-tasty" ,ghc-tasty)
6290 ("ghc-tasty-hunit" ,ghc-tasty-hunit)))
6291 (home-page "https://github.com/hslua/hslua-module-text")
6292 (synopsis "Lua module for text")
6293 (description
6294 "This package provides a UTF-8 aware subset of Lua's @code{string} module
6295for Haskell. The functions provided by this module are @code{upper},
6296@code{lower}, @code{len}, @code{reverse}, and @code{sub}.")
6297 (license license:expat)))
6298
fac520bf
TS
6299(define-public ghc-hsyaml
6300 (package
6301 (name "ghc-hsyaml")
6302 (version "0.1.2.0")
6303 (source
6304 (origin
6305 (method url-fetch)
6306 (uri (string-append "https://hackage.haskell.org/package/"
6307 "HsYAML/HsYAML-" version ".tar.gz"))
6308 (sha256
6309 (base32
6310 "1pajfhj16559v64ixm8j7bvxdqmxg6c3c0z3wz7in8ckswgzfp54"))))
6311 (build-system haskell-build-system)
6312 (arguments
6313 `(#:cabal-revision
6314 ("1" "0j6qmmcz5yqh89hs2cq453maix50q61vl2h0ahj5lg02bygn42cf")))
6315 (home-page "https://github.com/haskell-hvr/HsYAML")
6316 (synopsis "Pure Haskell YAML 1.2 parser")
6317 (description "This library provides a
6318@url{http://yaml.org/spec/1.2/spec.html, YAML 1.2} parser implementation
6319for Haskell. Its features include:
6320
6321@itemize
6322@item Pure Haskell implementation with small dependency footprint and
6323emphasis on strict compliance with the YAML 1.2 specification.
6324
6325@item Direct decoding to native Haskell types via (aeson-inspired)
6326typeclass-based API (see @code{Data.YAML}).
6327
6328@item Support for constructing custom YAML node graph
6329representation (including support for cyclic YAML data structures).
6330
6331@item Support for the standard (untyped) @emph{Failsafe}, (strict)
6332@emph{JSON}, and (flexible) @emph{Core} ``schemas'' providing implicit
6333typing rules as defined in the YAML 1.2 specification (including support
6334for user-defined custom schemas).
6335
6336@item Event-based API resembling LibYAML's Event-based API (see
6337@code{Data.YAML.Event}).
6338
6339@item Low-level API access to lexical token-based scanner (see
6340@code{Data.YAML.Token}).
6341@end itemize")
6342 (license license:gpl2+)))
6343
dddbc90c
RV
6344(define-public ghc-http-api-data
6345 (package
6346 (name "ghc-http-api-data")
a57236eb 6347 (version "0.4.1")
dddbc90c
RV
6348 (source
6349 (origin
6350 (method url-fetch)
6351 (uri (string-append "https://hackage.haskell.org/package/"
6352 "http-api-data-" version "/"
6353 "http-api-data-" version ".tar.gz"))
6354 (sha256
6355 (base32
a57236eb 6356 "1ps4bvln43gz72dr9mc3c9n1rn38c4rz6m49vxzz9nz6jz1978rv"))))
dddbc90c 6357 (build-system haskell-build-system)
dddbc90c
RV
6358 (inputs `(("ghc-attoparsec" ,ghc-attoparsec)
6359 ("ghc-attoparsec-iso8601" ,ghc-attoparsec-iso8601)
a57236eb 6360 ("ghc-cookie" ,ghc-cookie)
dddbc90c
RV
6361 ("ghc-hashable" ,ghc-hashable)
6362 ("ghc-http-types" ,ghc-http-types)
a57236eb 6363 ("ghc-time-compat" ,ghc-time-compat)
dddbc90c 6364 ("ghc-unordered-containers" ,ghc-unordered-containers)
dddbc90c 6365 ("ghc-uuid-types" ,ghc-uuid-types)))
a57236eb
TS
6366 (native-inputs
6367 `(("cabal-doctest" ,cabal-doctest)
6368 ("ghc-nats" ,ghc-nats)
6369 ("ghc-hunit" ,ghc-hunit)
6370 ("ghc-hspec" ,ghc-hspec)
6371 ("ghc-quickcheck" ,ghc-quickcheck)
6372 ("ghc-quickcheck-instances" ,ghc-quickcheck-instances)
6373 ("ghc-doctest" ,ghc-doctest)
6374 ("hspec-discover" ,hspec-discover)))
dddbc90c
RV
6375 (home-page "https://github.com/fizruk/http-api-data")
6376 (synopsis "Convert to/from HTTP API data like URL pieces, headers and
6377query parameters")
6378 (description "This Haskell package defines typeclasses used for converting
6379Haskell data types to and from HTTP API data.")
6380 (license license:bsd-3)))
6381
6382(define-public ghc-ieee754
6383 (package
6384 (name "ghc-ieee754")
6385 (version "0.8.0")
6386 (source (origin
6387 (method url-fetch)
6388 (uri (string-append
6389 "https://hackage.haskell.org/package/ieee754/"
6390 "ieee754-" version ".tar.gz"))
6391 (sha256
6392 (base32
6393 "1lcs521g9lzy9d7337vg4w7q7s8500rfqy7rcifcz6pm6yfgyb8f"))))
6394 (build-system haskell-build-system)
6395 (home-page "https://github.com/patperry/hs-ieee754")
6396 (synopsis "Utilities for dealing with IEEE floating point numbers")
6397 (description "Utilities for dealing with IEEE floating point numbers,
6398ported from the Tango math library; approximate and exact equality comparisons
6399for general types.")
6400 (license license:bsd-3)))
6401
6402(define-public ghc-ifelse
6403 (package
6404 (name "ghc-ifelse")
6405 (version "0.85")
6406 (source
6407 (origin
6408 (method url-fetch)
6409 (uri (string-append "https://hackage.haskell.org/package/"
6410 "IfElse/IfElse-" version ".tar.gz"))
6411 (sha256
6412 (base32
6413 "1kfx1bwfjczj93a8yqz1n8snqiq5655qgzwv1lrycry8wb1vzlwa"))))
6414 (build-system haskell-build-system)
3ef91e15 6415 (home-page "https://hackage.haskell.org/package/IfElse")
dddbc90c
RV
6416 (synopsis "Monadic control flow with anaphoric variants")
6417 (description "This library provides functions for control flow inside of
6418monads with anaphoric variants on @code{if} and @code{when} and a C-like
6419@code{switch} function.")
6420 (license license:bsd-3)))
6421
6422(define-public ghc-indents
6423 (package
6424 (name "ghc-indents")
d66473fb 6425 (version "0.5.0.1")
dddbc90c
RV
6426 (source (origin
6427 (method url-fetch)
6428 (uri (string-append
6429 "https://hackage.haskell.org/package/indents/indents-"
6430 version ".tar.gz"))
6431 (sha256
6432 (base32
d66473fb 6433 "0dpcwiz0dwn5aqdsc50plfaawh86adhf7jx5dsmhn5q5nz32qn51"))))
dddbc90c
RV
6434 (build-system haskell-build-system)
6435 ;; This package needs an older version of tasty.
6436 (arguments '(#:tests? #f))
6437 (inputs
6438 `(("ghc-concatenative" ,ghc-concatenative)))
6439 (native-inputs
6440 `(("ghc-tasty" ,ghc-tasty)
6441 ("ghc-tasty-hunit" ,ghc-tasty-hunit)))
6442 (home-page "http://patch-tag.com/r/salazar/indents")
6443 (synopsis "Indentation sensitive parser-combinators for parsec")
6444 (description
6445 "This library provides functions for use in parsing indentation sensitive
6446contexts. It parses blocks of lines all indented to the same level as well as
6447lines continued at an indented level below.")
6448 (license license:bsd-3)))
6449
1f656b17
TS
6450(define-public ghc-infer-license
6451 (package
6452 (name "ghc-infer-license")
6453 (version "0.2.0")
6454 (source
6455 (origin
6456 (method url-fetch)
6457 (uri (string-append "https://hackage.haskell.org/package/"
6458 "infer-license/infer-license-" version ".tar.gz"))
6459 (sha256
6460 (base32
6461 "0wlfm6bf55kfvm74xar9lmjg5v1103rs9m3grw1rq5bmcmhzxrhj"))))
6462 (build-system haskell-build-system)
6463 (inputs
6464 `(("ghc-text-metrics" ,ghc-text-metrics)))
6465 (native-inputs
6466 `(("ghc-hspec" ,ghc-hspec)
6467 ("hspec-discover" ,hspec-discover)))
3ef91e15 6468 (home-page "https://hackage.haskell.org/package/infer-license")
1f656b17
TS
6469 (synopsis "Infer software license from a given license file")
6470 (description "This library provides tools to infer a software
6471license from a given license file.")
6472 (license license:expat)))
6473
dddbc90c
RV
6474(define-public ghc-inline-c
6475 (package
6476 (name "ghc-inline-c")
55ec98f2 6477 (version "0.7.0.1")
dddbc90c
RV
6478 (source
6479 (origin
6480 (method url-fetch)
6481 (uri (string-append "https://hackage.haskell.org/package/inline-c/"
6482 "inline-c-" version ".tar.gz"))
6483 (sha256
6484 (base32
55ec98f2 6485 "19scbviwiv1fbsdcjji3dscjg7w0xa8r97xwkqqrwm7zhvrg5wns"))))
dddbc90c
RV
6486 (build-system haskell-build-system)
6487 (inputs
6488 `(("ghc-ansi-wl-pprint" ,ghc-ansi-wl-pprint)
6489 ("ghc-cryptohash" ,ghc-cryptohash)
6490 ("ghc-hashable" ,ghc-hashable)
6491 ("ghc-parsers" ,ghc-parsers)
6492 ("ghc-unordered-containers" ,ghc-unordered-containers)
6493 ("ghc-vector" ,ghc-vector)))
6494 (native-inputs
6495 `(("ghc-quickcheck" ,ghc-quickcheck)
6496 ("ghc-hspec" ,ghc-hspec)
6497 ("ghc-raw-strings-qq" ,ghc-raw-strings-qq)
6498 ("ghc-regex-posix" ,ghc-regex-posix)))
3ef91e15 6499 (home-page "https://hackage.haskell.org/package/inline-c")
dddbc90c
RV
6500 (synopsis "Write Haskell source files including C code inline")
6501 (description
6502 "inline-c lets you seamlessly call C libraries and embed high-performance
6503inline C code in Haskell modules. Haskell and C can be freely intermixed in
6504the same source file, and data passed to and from code in either language with
6505minimal overhead. No FFI required.")
6506 (license license:expat)))
6507
6508(define-public ghc-inline-c-cpp
6509 (package
6510 (name "ghc-inline-c-cpp")
cae58e56 6511 (version "0.3.0.3")
dddbc90c
RV
6512 (source
6513 (origin
6514 (method url-fetch)
6515 (uri (string-append "https://hackage.haskell.org/package/inline-c-cpp/"
6516 "inline-c-cpp-" version ".tar.gz"))
6517 (sha256
6518 (base32
cae58e56 6519 "1sxwx9dh60qfpa72dymj015zwd6prhb70x5mkabqzi7nhg3aakln"))))
dddbc90c
RV
6520 (build-system haskell-build-system)
6521 (inputs
6522 `(("ghc-inline-c" ,ghc-inline-c)
6523 ("ghc-safe-exceptions" ,ghc-safe-exceptions)))
6524 (native-inputs
6525 `(("ghc-hspec" ,ghc-hspec)))
6526 (home-page "https://hackage.haskell.org/package/inline-c-cpp")
6527 (synopsis "Lets you embed C++ code into Haskell")
6528 (description
6529 "This package provides utilities to inline C++ code into Haskell using
6530@code{inline-c}.")
6531 (license license:expat)))
6532
6533(define-public ghc-integer-logarithms
6534 (package
6535 (name "ghc-integer-logarithms")
86a704db 6536 (version "1.0.3")
dddbc90c
RV
6537 (source
6538 (origin
6539 (method url-fetch)
6540 (uri (string-append "https://hackage.haskell.org/package/"
6541 "integer-logarithms/integer-logarithms-"
6542 version ".tar.gz"))
6543 (sha256
6544 (base32
86a704db 6545 "05pc5hws66csvcvfswlwcr2fplwn1lbssvwifjxkbbwqhq0n5qjs"))))
dddbc90c
RV
6546 (build-system haskell-build-system)
6547 (arguments
6548 `(#:phases
6549 (modify-phases %standard-phases
6550 (add-before 'configure 'update-constraints
6551 (lambda _
6552 (substitute* "integer-logarithms.cabal"
6553 (("tasty >= 0\\.10 && < 1\\.1")
6554 "tasty >= 0.10 && < 1.2")))))))
6555 (native-inputs
6556 `(("ghc-quickcheck" ,ghc-quickcheck)
6557 ("ghc-smallcheck" ,ghc-smallcheck)
6558 ("ghc-tasty" ,ghc-tasty)
6559 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
6560 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
6561 ("ghc-tasty-smallcheck" ,ghc-tasty-smallcheck)))
6562 (home-page "https://github.com/Bodigrim/integer-logarithms")
6563 (synopsis "Integer logarithms")
6564 (description
6565 "This package provides the following modules:
6566@code{Math.NumberTheory.Logarithms} and
6567@code{Math.NumberTheory.Powers.Integer} from the @code{arithmoi} package,
6568@code{GHC.Integer.Logarithms.Compat} and
6569@code{Math.NumberTheory.Power.Natural}, as well as some additional functions
6570in migrated modules.")
6571 (license license:expat)))
6572
6573(define-public ghc-integer-logarithms-bootstrap
6574 (package
6575 (inherit ghc-integer-logarithms)
6576 (name "ghc-integer-logarithms-bootstrap")
6577 (arguments `(#:tests? #f))
6578 (native-inputs '())
799d8d3c 6579 (properties '((hidden? #t)))))
dddbc90c
RV
6580
6581(define-public ghc-interpolate
6582 (package
6583 (name "ghc-interpolate")
6584 (version "0.2.0")
6585 (source
6586 (origin
6587 (method url-fetch)
6588 (uri (string-append "https://hackage.haskell.org/package/interpolate/"
6589 "interpolate-" version ".tar.gz"))
6590 (sha256
6591 (base32
6592 "1gkaj98yz363v38fv78sqby236mp8yqwqcilx7kr2b9z0w3204bf"))))
6593 (build-system haskell-build-system)
6594 (inputs
6595 `(("ghc-haskell-src-meta" ,ghc-haskell-src-meta)))
6596 (native-inputs
6597 `(("ghc-base-compat" ,ghc-base-compat)
6598 ("ghc-hspec" ,ghc-hspec)
6599 ("ghc-quickcheck" ,ghc-quickcheck)
6600 ("ghc-quickcheck-instances" ,ghc-quickcheck-instances)
6601 ("hspec-discover" ,hspec-discover)))
6602 (home-page "https://github.com/sol/interpolate")
6603 (synopsis "String interpolation library")
6604 (description "This package provides a string interpolation library for
6605Haskell.")
6606 (license license:expat)))
6607
6608(define-public ghc-intervalmap
6609 (package
6610 (name "ghc-intervalmap")
e4946e32 6611 (version "0.6.1.1")
dddbc90c
RV
6612 (source
6613 (origin
6614 (method url-fetch)
6615 (uri (string-append "https://hackage.haskell.org/package/IntervalMap/"
6616 "IntervalMap-" version ".tar.gz"))
6617 (sha256
6618 (base32
e4946e32 6619 "0vdlvxvhf7vjyv0mfn6jaj2i2gclqv8419ck32s2jxfcmki5m5g8"))))
dddbc90c
RV
6620 (build-system haskell-build-system)
6621 (native-inputs
6622 `(("ghc-quickcheck" ,ghc-quickcheck)))
6623 (home-page "http://www.chr-breitkopf.de/comp/IntervalMap")
6624 (synopsis "Containers for intervals, with efficient search")
6625 (description
6626 "This package provides ordered containers of intervals, with efficient
6627search for all keys containing a point or overlapping an interval. See the
6628example code on the home page for a quick introduction.")
6629 (license license:bsd-3)))
6630
f7ca1fa8
TS
6631(define-public ghc-intervals
6632 (package
6633 (name "ghc-intervals")
6634 (version "0.8.1")
6635 (source
6636 (origin
6637 (method url-fetch)
6638 (uri (string-append "https://hackage.haskell.org/package/"
6639 "intervals/intervals-" version ".tar.gz"))
6640 (sha256
6641 (base32
6642 "00vyxf3ba9d7aas3npfapr53w71fslgh69fczjb25axr66fvzqww"))))
6643 (build-system haskell-build-system)
6644 (inputs
6645 `(("ghc-distributive" ,ghc-distributive)))
6646 (native-inputs
6647 `(("cabal-doctest" ,cabal-doctest)
6648 ("ghc-doctest" ,ghc-doctest)
6649 ("ghc-quickcheck" ,ghc-quickcheck)))
6650 (arguments
6651 `(#:cabal-revision
6652 ("4" "1qx3q0v13l1zaln9zdk8chxpxhshbz5x0vqm0qda7d1kpv7h6a7r")))
6653 (home-page "https://github.com/ekmett/intervals")
6654 (synopsis "Interval arithmetic")
6655 (description "This library provides
6656@code{Numeric.Interval.Interval}, which represets a closed, convex set
6657of floating point values.")
6658 (license license:bsd-3)))
6659
dddbc90c
RV
6660(define-public ghc-invariant
6661 (package
6662 (name "ghc-invariant")
d3a0e0b4 6663 (version "0.5.3")
dddbc90c
RV
6664 (source
6665 (origin
6666 (method url-fetch)
6667 (uri (string-append
6668 "https://hackage.haskell.org/package/invariant/invariant-"
6669 version ".tar.gz"))
6670 (sha256
6671 (base32
d3a0e0b4 6672 "03245nhcqxx6b0yw81fzqaqd7cgllmx8awzhvs2xv7ys73pmsgnp"))))
dddbc90c
RV
6673 (build-system haskell-build-system)
6674 (inputs
6675 `(("ghc-bifunctors" ,ghc-bifunctors)
6676 ("ghc-comonad" ,ghc-comonad)
6677 ("ghc-contravariant" ,ghc-contravariant)
6678 ("ghc-profunctors" ,ghc-profunctors)
6679 ("ghc-semigroups" ,ghc-semigroups)
6680 ("ghc-statevar" ,ghc-statevar)
6681 ("ghc-tagged" ,ghc-tagged)
6682 ("ghc-th-abstraction" ,ghc-th-abstraction)
6683 ("ghc-transformers-compat" ,ghc-transformers-compat)
6684 ("ghc-unordered-containers" ,ghc-unordered-containers)))
6685 (native-inputs
6686 `(("ghc-hspec" ,ghc-hspec)
6687 ("ghc-quickcheck" ,ghc-quickcheck)
6688 ("hspec-discover" ,hspec-discover)))
6689 (home-page "https://github.com/nfrisby/invariant-functors")
6690 (synopsis "Haskell98 invariant functors")
6691 (description "Haskell98 invariant functors (also known as exponential
6692functors). For more information, see Edward Kmett's article
6693@uref{http://comonad.com/reader/2008/rotten-bananas/, Rotten Bananas}.")
6694 (license license:bsd-2)))
6695
6696(define-public ghc-io-streams
6697 (package
6698 (name "ghc-io-streams")
59e98d75 6699 (version "1.5.1.0")
dddbc90c
RV
6700 (source
6701 (origin
6702 (method url-fetch)
6703 (uri (string-append "https://hackage.haskell.org/package/"
6704 "io-streams/io-streams-" version ".tar.gz"))
6705 (sha256
6706 (base32
59e98d75 6707 "1c7byr943x41nxpc3bnz152fvfbmakafq2958wyf9qiyp2pz18la"))))
dddbc90c
RV
6708 (build-system haskell-build-system)
6709 (inputs
6710 `(("ghc-attoparsec" ,ghc-attoparsec)
6711 ("ghc-bytestring-builder" ,ghc-bytestring-builder)
6712 ("ghc-network" ,ghc-network)
6713 ("ghc-primitive" ,ghc-primitive)
6714 ("ghc-vector" ,ghc-vector)
6715 ("ghc-zlib-bindings" ,ghc-zlib-bindings)))
6716 (native-inputs
6717 `(("ghc-hunit" ,ghc-hunit)
6718 ("ghc-quickcheck" ,ghc-quickcheck)
6719 ("ghc-test-framework" ,ghc-test-framework)
6720 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
6721 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)
6722 ("ghc-zlib" ,ghc-zlib)))
3ef91e15 6723 (home-page "https://hackage.haskell.org/package/io-streams")
dddbc90c
RV
6724 (synopsis "Simple and composable stream I/O")
6725 (description "This library contains simple and easy-to-use
6726primitives for I/O using streams.")
6727 (license license:bsd-3)))
6728
6729(define-public ghc-io-streams-haproxy
6730 (package
6731 (name "ghc-io-streams-haproxy")
1a4fbc36 6732 (version "1.0.1.0")
dddbc90c
RV
6733 (source
6734 (origin
6735 (method url-fetch)
6736 (uri (string-append "https://hackage.haskell.org/package/"
6737 "io-streams-haproxy/io-streams-haproxy-"
6738 version ".tar.gz"))
6739 (sha256
6740 (base32
1a4fbc36 6741 "1dcn5hd4fiwyq7m01r6fi93vfvygca5s6mz87c78m0zyj29clkmp"))))
dddbc90c
RV
6742 (build-system haskell-build-system)
6743 (inputs
6744 `(("ghc-attoparsec" ,ghc-attoparsec)
6745 ("ghc-io-streams" ,ghc-io-streams)
6746 ("ghc-network" ,ghc-network)))
6747 (native-inputs
6748 `(("ghc-hunit" ,ghc-hunit)
6749 ("ghc-test-framework" ,ghc-test-framework)
6750 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)))
dddbc90c
RV
6751 (home-page "http://snapframework.com/")
6752 (synopsis "HAProxy protocol 1.5 support for io-streams")
6753 (description "HAProxy protocol version 1.5 support
6754(see @uref{http://haproxy.1wt.eu/download/1.5/doc/proxy-protocol.txt})
6755for applications using io-streams. The proxy protocol allows information
6756about a networked peer (like remote address and port) to be propagated
6757through a forwarding proxy that is configured to speak this protocol.")
6758 (license license:bsd-3)))
6759
6760(define-public ghc-iproute
6761 (package
6762 (name "ghc-iproute")
ec25d536 6763 (version "1.7.7")
dddbc90c
RV
6764 (source
6765 (origin
6766 (method url-fetch)
6767 (uri (string-append
6768 "https://hackage.haskell.org/package/iproute/iproute-"
6769 version
6770 ".tar.gz"))
6771 (sha256
6772 (base32
ec25d536 6773 "0gab5930nvzrpvisx3x43ydnp2rd4fbmy9cq1zpgqy1adx5gx8z6"))))
dddbc90c
RV
6774 (build-system haskell-build-system)
6775 (arguments `(#:tests? #f)) ; FIXME: Tests cannot find System.ByteOrder,
6776 ; exported by ghc-byteorder. Doctest issue.
6777 (inputs
6778 `(("ghc-appar" ,ghc-appar)
6779 ("ghc-byteorder" ,ghc-byteorder)
6780 ("ghc-network" ,ghc-network)
6781 ("ghc-safe" ,ghc-safe)))
6782 (home-page "https://www.mew.org/~kazu/proj/iproute/")
6783 (synopsis "IP routing table")
6784 (description "IP Routing Table is a tree of IP ranges to search one of
6785them on the longest match base. It is a kind of TRIE with one way branching
6786removed. Both IPv4 and IPv6 are supported.")
6787 (license license:bsd-3)))
6788
4828e54e
TS
6789(define-public ghc-ipynb
6790 (package
6791 (name "ghc-ipynb")
6792 (version "0.1")
6793 (source
6794 (origin
6795 (method url-fetch)
6796 (uri (string-append "https://hackage.haskell.org/package/"
6797 "ipynb/ipynb-" version ".tar.gz"))
6798 (sha256
6799 (base32
6800 "0daadhzil4q573mqb0rpvjzm0vpkzgzqcimw480qpvlh6rhppwj5"))))
6801 (build-system haskell-build-system)
6802 (inputs
6803 `(("ghc-unordered-containers" ,ghc-unordered-containers)
6804 ("ghc-base64-bytestring" ,ghc-base64-bytestring)
6805 ("ghc-aeson" ,ghc-aeson)
6806 ("ghc-semigroups" ,ghc-semigroups)))
6807 (native-inputs
6808 `(("ghc-tasty" ,ghc-tasty)
6809 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
6810 ("ghc-aeson-diff" ,ghc-aeson-diff)
6811 ("ghc-microlens-aeson" ,ghc-microlens-aeson)
6812 ("ghc-microlens" ,ghc-microlens)
6813 ("ghc-vector" ,ghc-vector)))
6814 (home-page "https://hackage.haskell.org/package/ipynb")
6815 (synopsis "Data structure for working with Jupyter notebooks")
6816 (description "This library defines a data structure for representing
6817Jupyter notebooks, along with @code{ToJSON} and @code{FromJSON}
6818instances for conversion to and from JSON .ipynb files.")
6819 (license license:bsd-3)))
6820
dddbc90c
RV
6821(define-public ghc-iwlib
6822 (package
6823 (name "ghc-iwlib")
6824 (version "0.1.0")
6825 (source
6826 (origin
6827 (method url-fetch)
6828 (uri (string-append "https://hackage.haskell.org/package/iwlib/iwlib-"
6829 version ".tar.gz"))
6830 (sha256
6831 (base32 "0khmfwql4vwj55idsxmhjhrbqzfir3g9wm5lmpvnf77mm95cfpdz"))))
6832 (build-system haskell-build-system)
54a5fd07
TS
6833 (arguments
6834 `(#:extra-directories ("wireless-tools")))
dddbc90c
RV
6835 (inputs
6836 `(("wireless-tools" ,wireless-tools)))
6837 (home-page "https://github.com/jaor/iwlib")
6838 (synopsis "Haskell binding to the iw wireless networking library")
6839 (description
6840 "IWlib is a thin Haskell binding to the iw C library. It provides
6841information about the current wireless network connections, and adapters on
6842supported systems.")
6843 (license license:bsd-3)))
6844
6845(define-public ghc-json
6846 (package
6847 (name "ghc-json")
0ad3d574 6848 (version "0.9.3")
dddbc90c
RV
6849 (source
6850 (origin
6851 (method url-fetch)
6852 (uri (string-append "https://hackage.haskell.org/package/json/"
6853 "json-" version ".tar.gz"))
6854 (sha256
6855 (base32
0ad3d574 6856 "1z8s3mfg76p2flqqd2wqsi96l5bg8k8w8m58zlv81pw3k7h1vbwb"))))
dddbc90c
RV
6857 (build-system haskell-build-system)
6858 (inputs
6859 `(("ghc-syb" ,ghc-syb)))
6860 (home-page "https://hackage.haskell.org/package/json")
6861 (synopsis "Serializes Haskell data to and from JSON")
6862 (description "This package provides a parser and pretty printer for
6863converting between Haskell values and JSON.
6864JSON (JavaScript Object Notation) is a lightweight data-interchange format.")
6865 (license license:bsd-3)))
6866
6867(define-public ghc-juicypixels
6868 (package
6869 (name "ghc-juicypixels")
b50b6004 6870 (version "3.3.4")
dddbc90c
RV
6871 (source (origin
6872 (method url-fetch)
6873 (uri (string-append "https://hackage.haskell.org/package/"
6874 "JuicyPixels/JuicyPixels-"
6875 version ".tar.gz"))
6876 (sha256
6877 (base32
b50b6004 6878 "0qacrnz2qcykj3f6c4k2p8qd31pa2slpv3ykfblgizrfh3401q6x"))))
dddbc90c 6879 (build-system haskell-build-system)
a023e7d0 6880 (outputs '("out" "static" "doc"))
dddbc90c
RV
6881 (inputs
6882 `(("ghc-zlib" ,ghc-zlib)
6883 ("ghc-vector" ,ghc-vector)
6884 ("ghc-primitive" ,ghc-primitive)
6885 ("ghc-mmap" ,ghc-mmap)))
6886 (home-page "https://github.com/Twinside/Juicy.Pixels")
6887 (synopsis "Picture loading and serialization library")
6888 (description
6889 "This library can load and store images in PNG, Bitmap, JPEG, Radiance,
6890TIFF and GIF formats.")
6891 (license license:bsd-3)))
6892
6893(define-public ghc-kan-extensions
6894 (package
6895 (name "ghc-kan-extensions")
6896 (version "5.2")
6897 (source
6898 (origin
6899 (method url-fetch)
6900 (uri (string-append
6901 "https://hackage.haskell.org/package/kan-extensions/kan-extensions-"
6902 version
6903 ".tar.gz"))
6904 (sha256
6905 (base32
6906 "1lyvyiwwh962j2nnnsqzlvp5zq6z8p3spvhmji99cjvldxc7wwkb"))))
6907 (build-system haskell-build-system)
6908 (inputs
6909 `(("ghc-adjunctions" ,ghc-adjunctions)
6910 ("ghc-comonad" ,ghc-comonad)
6911 ("ghc-contravariant" ,ghc-contravariant)
6912 ("ghc-distributive" ,ghc-distributive)
6913 ("ghc-free" ,ghc-free)
6914 ("ghc-invariant" ,ghc-invariant)
6915 ("ghc-semigroupoids" ,ghc-semigroupoids)
6916 ("ghc-tagged" ,ghc-tagged)
6917 ("ghc-transformers-compat" ,ghc-transformers-compat)))
6918 (home-page "https://github.com/ekmett/kan-extensions/")
6919 (synopsis "Kan extensions library")
6920 (description "This library provides Kan extensions, Kan lifts, various
6921forms of the Yoneda lemma, and (co)density (co)monads for Haskell.")
6922 (license license:bsd-3)))
6923
6924(define-public ghc-language-c
6925 (package
6926 (name "ghc-language-c")
4e1cf651 6927 (version "0.8.3")
dddbc90c
RV
6928 (source
6929 (origin
6930 (method url-fetch)
6931 (uri (string-append "https://hackage.haskell.org/package/"
6932 "language-c/language-c-" version ".tar.gz"))
6933 (sha256
6934 (base32
4e1cf651 6935 "0bi02jdirkys8v7flf39vrpla2a74z1z0sdhy9lb9v7cmcc6rmpk"))))
dddbc90c
RV
6936 (build-system haskell-build-system)
6937 (inputs `(("ghc-syb" ,ghc-syb)))
6938 (native-inputs
6939 `(("ghc-happy" ,ghc-happy)
6940 ("ghc-alex" ,ghc-alex)))
6941 (home-page "https://visq.github.io/language-c/")
6942 (synopsis "Analysis and generation of C code")
6943 (description
6944 "Language C is a Haskell library for the analysis and generation of C code.
6945It features a complete, well-tested parser and pretty printer for all of C99
6946and a large set of GNU extensions.")
6947 (license license:bsd-3)))
6948
6949(define-public ghc-language-glsl
6950 (package
6951 (name "ghc-language-glsl")
6952 (version "0.3.0")
6953 (source
6954 (origin
6955 (method url-fetch)
6956 (uri (string-append "https://hackage.haskell.org/package/"
6957 "language-glsl/language-glsl-" version ".tar.gz"))
6958 (sha256
6959 (base32
6960 "0hdg67ainlqpjjghg3qin6fg4p783m0zmjqh4rd5gyizwiplxkp1"))))
6961 (build-system haskell-build-system)
6962 (inputs `(("ghc-prettyclass" ,ghc-prettyclass)))
6963 (arguments
6964 `(#:tests? #f
6965 #:cabal-revision
6966 ("1" "10ac9pk4jy75k03j1ns4b5136l4kw8krr2d2nw2fdmpm5jzyghc5")))
3ef91e15 6967 (home-page "https://hackage.haskell.org/package/language-glsl")
dddbc90c
RV
6968 (synopsis "GLSL abstract syntax tree, parser, and pretty-printer")
6969 (description "This package is a Haskell library for the
6970representation, parsing, and pretty-printing of GLSL 1.50 code.")
6971 (license license:bsd-3)))
6972
6973(define-public ghc-language-haskell-extract
6974 (package
6975 (name "ghc-language-haskell-extract")
6976 (version "0.2.4")
6977 (source
6978 (origin
6979 (method url-fetch)
6980 (uri (string-append "https://hackage.haskell.org/package/"
6981 "language-haskell-extract-" version "/"
6982 "language-haskell-extract-" version ".tar.gz"))
6983 (sha256
6984 (base32
6985 "1nxcs7g8a1sp91bzpy4cj6s31k5pvc3gvig04cbrggv5cvjidnhl"))))
6986 (build-system haskell-build-system)
6987 (inputs
6988 `(("ghc-regex-posix" ,ghc-regex-posix)))
6989 (home-page "https://github.com/finnsson/template-helper")
6990 (synopsis "Haskell module to automatically extract functions from
6991the local code")
6992 (description "This package contains helper functions on top of
6993Template Haskell.
6994
6995For example, @code{functionExtractor} extracts all functions after a
6996regexp-pattern, which can be useful if you wish to extract all functions
6997beginning with @code{test} (for a test framework) or all functions beginning
6998with @code{wc} (for a web service).")
6999 (license license:bsd-3)))
7000
7001(define-public ghc-lens
7002 (package
7003 (name "ghc-lens")
262e6323 7004 (version "4.17.1")
dddbc90c
RV
7005 (source
7006 (origin
7007 (method url-fetch)
7008 (uri (string-append "https://hackage.haskell.org/package/lens/lens-"
7009 version ".tar.gz"))
7010 (sha256
7011 (base32
262e6323 7012 "1gpkc53l2cggnfrgg5k4ih82rycjbdvpj9pnbi5cq8ms0dbvs4a7"))))
dddbc90c 7013 (build-system haskell-build-system)
b35361e9 7014 (outputs '("out" "static" "doc"))
dddbc90c
RV
7015 (inputs
7016 `(("ghc-base-orphans" ,ghc-base-orphans)
7017 ("ghc-bifunctors" ,ghc-bifunctors)
7018 ("ghc-distributive" ,ghc-distributive)
7019 ("ghc-exceptions" ,ghc-exceptions)
7020 ("ghc-free" ,ghc-free)
7021 ("ghc-kan-extensions" ,ghc-kan-extensions)
7022 ("ghc-parallel" ,ghc-parallel)
7023 ("ghc-reflection" ,ghc-reflection)
7024 ("ghc-semigroupoids" ,ghc-semigroupoids)
7025 ("ghc-vector" ,ghc-vector)
7026 ("ghc-call-stack" ,ghc-call-stack)
7027 ("ghc-comonad" ,ghc-comonad)
7028 ("ghc-contravariant" ,ghc-contravariant)
7029 ("ghc-hashable" ,ghc-hashable)
7030 ("ghc-profunctors" ,ghc-profunctors)
7031 ("ghc-semigroups" ,ghc-semigroups)
7032 ("ghc-tagged" ,ghc-tagged)
7033 ("ghc-transformers-compat" ,ghc-transformers-compat)
7034 ("ghc-unordered-containers" ,ghc-unordered-containers)
7035 ("ghc-void" ,ghc-void)
7036 ("ghc-generic-deriving" ,ghc-generic-deriving)
7037 ("ghc-nats" ,ghc-nats)
7038 ("ghc-simple-reflect" ,ghc-simple-reflect)
7039 ("hlint" ,hlint)))
7040 (native-inputs
7041 `(("cabal-doctest" ,cabal-doctest)
7042 ("ghc-doctest" ,ghc-doctest)
7043 ("ghc-hunit" ,ghc-hunit)
7044 ("ghc-test-framework" ,ghc-test-framework)
7045 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
7046 ("ghc-test-framework-th" ,ghc-test-framework-th)
7047 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)
7048 ("ghc-quickcheck" ,ghc-quickcheck)))
7049 (home-page "https://github.com/ekmett/lens/")
7050 (synopsis "Lenses, Folds and Traversals")
7051 (description "This library provides @code{Control.Lens}. The combinators
7052in @code{Control.Lens} provide a highly generic toolbox for composing families
7053of getters, folds, isomorphisms, traversals, setters and lenses and their
7054indexed variants.")
7055 (license license:bsd-3)))
7056
bcd35444
JS
7057(define-public ghc-lens-family-core
7058 (package
7059 (name "ghc-lens-family-core")
7060 (version "1.2.3")
7061 (source
7062 (origin
7063 (method url-fetch)
7064 (uri (string-append
7065 "mirror://hackage/package/lens-family-core/lens-family-core-"
7066 version
7067 ".tar.gz"))
7068 (sha256
7069 (base32
7070 "009rf10pj1cb50v44cc1pq7qvfrmkkk9dikahs9qmvbvgl3mykwi"))))
7071 (build-system haskell-build-system)
7072 (home-page
7073 "http://hackage.haskell.org/package/lens-family-core")
7074 (synopsis "Haskell 98 Lens Families")
7075 (description
7076 "This package provides first class functional references. In addition to
7077the usual operations of getting, setting and composition, plus integration
7078with the state monad, lens families provide some unique features:
7079
7080@itemize
7081@item Polymorphic updating
7082@item Traversals
7083@item Cast projection functions to read-only lenses
7084@item Cast @code{toList} functions to read-only traversals
7085@item Cast semantic editor combinators to modify-only traversals
7086@end itemize
7087
7088For optimal first-class support use the lens-family package with rank 2/rank N
7089polymorphism. @code{Lens.Family.Clone} allows for first-class support of
7090lenses and traversals for those who require Haskell 98.")
7091 (license license:bsd-3)))
7092
dddbc90c
RV
7093(define-public ghc-libffi
7094 (package
7095 (name "ghc-libffi")
7096 (version "0.1")
7097 (source
7098 (origin
7099 (method url-fetch)
7100 (uri (string-append "https://hackage.haskell.org/package/"
7101 "libffi/libffi-" version ".tar.gz"))
7102 (sha256
7103 (base32
7104 "0g7jnhng3j7z5517aaqga0144aamibsbpgm3yynwyfzkq1kp0f28"))))
7105 (build-system haskell-build-system)
7106 (native-inputs `(("pkg-config" ,pkg-config)))
7107 (inputs `(("libffi" ,libffi)))
3ef91e15 7108 (home-page "https://hackage.haskell.org/package/libffi")
dddbc90c
RV
7109 (synopsis "Haskell binding to libffi")
7110 (description
7111 "A binding to libffi, allowing C functions of types only known at runtime
7112to be called from Haskell.")
7113 (license license:bsd-3)))
7114
7115(define-public ghc-libmpd
7116 (package
7117 (name "ghc-libmpd")
bbf9845f 7118 (version "0.9.0.10")
dddbc90c
RV
7119 (source
7120 (origin
7121 (method url-fetch)
7122 (uri (string-append
7123 "mirror://hackage/package/libmpd/libmpd-"
7124 version
7125 ".tar.gz"))
7126 (sha256
7127 (base32
bbf9845f 7128 "0vy287mn1vk8kvij5i3hc0p02l886cpsq5dds7kl6g520si3abkb"))))
dddbc90c
RV
7129 (build-system haskell-build-system)
7130 ;; Tests fail on i686.
7131 ;; See https://github.com/vimus/libmpd-haskell/issues/112
7132 (arguments `(#:tests? #f))
7133 (inputs
7134 `(("ghc-attoparsec" ,ghc-attoparsec)
7135 ("ghc-old-locale" ,ghc-old-locale)
7136 ("ghc-data-default-class" ,ghc-data-default-class)
7137 ("ghc-network" ,ghc-network)
bbf9845f 7138 ("ghc-safe-exceptions" ,ghc-safe-exceptions)
dddbc90c
RV
7139 ("ghc-utf8-string" ,ghc-utf8-string)))
7140 (native-inputs
7141 `(("ghc-quickcheck" ,ghc-quickcheck)
7142 ("ghc-hspec" ,ghc-hspec)
7143 ("hspec-discover" ,hspec-discover)))
7144 (home-page "https://github.com/vimus/libmpd-haskell")
7145 (synopsis "Haskell client library for the Music Player Daemon")
7146 (description "This package provides a pure Haskell client library for the
7147Music Player Daemon.")
7148 (license license:expat)))
7149
e34df1c3
TS
7150(define-public ghc-lib-parser
7151 (package
7152 (name "ghc-lib-parser")
7153 (version "8.8.0.20190424")
7154 (source
7155 (origin
7156 (method url-fetch)
7157 (uri (string-append "https://hackage.haskell.org/package/"
7158 "ghc-lib-parser/ghc-lib-parser-" version ".tar.gz"))
7159 (sha256
7160 (base32
7161 "12gsh994pr13bsybwlravmi21la66dyw74pk74yfw2pnz682wv10"))))
7162 (build-system haskell-build-system)
7e62ebb3 7163 (outputs '("out" "static" "doc")) ; documentation is 39M
e34df1c3
TS
7164 (native-inputs
7165 `(("ghc-alex" ,ghc-alex)
7166 ("ghc-happy" ,ghc-happy)))
7167 (home-page "https://github.com/digital-asset/ghc-lib")
7168 (synopsis "The GHC API, decoupled from GHC versions")
7169 (description "This library implements the GHC API. It is like the
7170compiler-provided @code{ghc} package, but it can be loaded on many
7171compiler versions.")
7172 (license license:bsd-3)))
7173
dddbc90c
RV
7174(define-public ghc-libxml
7175 (package
7176 (name "ghc-libxml")
7177 (version "0.1.1")
7178 (source
7179 (origin
7180 (method url-fetch)
7181 (uri (string-append "https://hackage.haskell.org/package/libxml/"
7182 "libxml-" version ".tar.gz"))
7183 (sha256
7184 (base32
7185 "01zvk86kg726lf2vnlr7dxiz7g3xwi5a4ak9gcfbwyhynkzjmsfi"))))
7186 (build-system haskell-build-system)
7187 (inputs
7188 `(("libxml2" ,libxml2)))
7189 (arguments
7190 `(#:configure-flags
7191 `(,(string-append "--extra-include-dirs="
7192 (assoc-ref %build-inputs "libxml2")
7193 "/include/libxml2"))))
7194 (home-page "https://hackage.haskell.org/package/libxml")
7195 (synopsis "Haskell bindings to libxml2")
7196 (description
7197 "This library provides minimal Haskell binding to libxml2.")
7198 (license license:bsd-3)))
7199
0c2d6fc2
TS
7200(define-public ghc-libyaml
7201 (package
7202 (name "ghc-libyaml")
7203 (version "0.1.1.0")
7204 (source
7205 (origin
7206 (method url-fetch)
7207 (uri (string-append "https://hackage.haskell.org/package/"
7208 "libyaml/libyaml-" version ".tar.gz"))
7209 (sha256
7210 (base32
7211 "0psznm9c3yjsyj9aj8m2svvv9m2v0x90hnwarcx5sbswyi3l00va"))
7212 (modules '((guix build utils)))
7213 (snippet
7214 ;; Delete bundled LibYAML.
7215 '(begin
7216 (delete-file-recursively "libyaml_src")
7217 #t))))
7218 (build-system haskell-build-system)
7219 (arguments
54a5fd07
TS
7220 `(#:configure-flags `("--flags=system-libyaml")
7221 #:extra-directories ("libyaml")))
0c2d6fc2
TS
7222 (inputs
7223 `(("ghc-conduit" ,ghc-conduit)
7224 ("ghc-resourcet" ,ghc-resourcet)
1b35d303 7225 ("libyaml" ,libyaml)))
0c2d6fc2
TS
7226 (home-page "https://github.com/snoyberg/yaml#readme")
7227 (synopsis "Low-level, streaming YAML interface.")
7228 (description "This package provides a Haskell wrapper over the
7229LibYAML C library.")
7230 (license license:bsd-3)))
7231
dddbc90c
RV
7232(define-public ghc-lifted-async
7233 (package
7234 (name "ghc-lifted-async")
b5b6d7ea 7235 (version "0.10.0.4")
dddbc90c
RV
7236 (source
7237 (origin
7238 (method url-fetch)
7239 (uri (string-append
7240 "https://hackage.haskell.org/package/lifted-async/lifted-async-"
7241 version ".tar.gz"))
7242 (sha256
7243 (base32
b5b6d7ea 7244 "0cwl1d0wjpdk0v1l1qxiqiksmak950c8gx169c1q77cg0z18ijf9"))))
dddbc90c
RV
7245 (build-system haskell-build-system)
7246 (inputs
7247 `(("ghc-async" ,ghc-async)
7248 ("ghc-lifted-base" ,ghc-lifted-base)
7249 ("ghc-transformers-base" ,ghc-transformers-base)
7250 ("ghc-monad-control" ,ghc-monad-control)
7251 ("ghc-constraints" ,ghc-constraints)
7252 ("ghc-hunit" ,ghc-hunit)
7253 ("ghc-tasty" ,ghc-tasty)
7254 ("ghc-tasty-expected-failure" ,ghc-tasty-expected-failure)
7255 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
7256 ("ghc-tasty-th" ,ghc-tasty-th)))
7257 (home-page "https://github.com/maoe/lifted-async")
7258 (synopsis "Run lifted IO operations asynchronously and wait for their results")
7259 (description
7260 "This package provides IO operations from @code{async} package lifted to any
7261instance of @code{MonadBase} or @code{MonadBaseControl}.")
7262 (license license:bsd-3)))
7263
7264(define-public ghc-lifted-base
7265 (package
7266 (name "ghc-lifted-base")
7267 (version "0.2.3.12")
7268 (source
7269 (origin
7270 (method url-fetch)
7271 (uri (string-append
7272 "https://hackage.haskell.org/package/lifted-base/lifted-base-"
7273 version
7274 ".tar.gz"))
7275 (sha256
7276 (base32
7277 "1i8p8d3rkdh21bhgjjh32vd7qqjr7jq7p59qds0aw2kmargsjd61"))))
7278 (build-system haskell-build-system)
7279 (arguments `(#:tests? #f)) ; FIXME: Missing testing libraries.
7280 (inputs
7281 `(("ghc-transformers-base" ,ghc-transformers-base)
7282 ("ghc-monad-control" ,ghc-monad-control)
7283 ("ghc-transformers-compat" ,ghc-transformers-compat)
7284 ("ghc-hunit" ,ghc-hunit)))
7285 (home-page "https://github.com/basvandijk/lifted-base")
7286 (synopsis "Lifted IO operations from the base library")
7287 (description "Lifted-base exports IO operations from the @code{base}
7288library lifted to any instance of @code{MonadBase} or @code{MonadBaseControl}.
7289Note that not all modules from @code{base} are converted yet. The package
7290includes a copy of the @code{monad-peel} test suite written by Anders
7291Kaseorg.")
7292 (license license:bsd-3)))
7293
7294(define-public ghc-linear
7295 (package
7296 (name "ghc-linear")
86526f37 7297 (version "1.20.9")
dddbc90c
RV
7298 (source
7299 (origin
7300 (method url-fetch)
7301 (uri (string-append "https://hackage.haskell.org/package/linear/"
7302 "linear-" version ".tar.gz"))
7303 (sha256
7304 (base32
86526f37 7305 "0h7yqigq593n7wsl7nz6a5f137wznm7y679wsii0ph0zsc4v5af5"))))
dddbc90c
RV
7306 (build-system haskell-build-system)
7307 (inputs
7308 `(("ghc-adjunctions" ,ghc-adjunctions)
7309 ("ghc-base-orphans" ,ghc-base-orphans)
7310 ("ghc-bytes" ,ghc-bytes)
7311 ("ghc-cereal" ,ghc-cereal)
7312 ("ghc-distributive" ,ghc-distributive)
7313 ("ghc-hashable" ,ghc-hashable)
7314 ("ghc-lens" ,ghc-lens)
7315 ("ghc-reflection" ,ghc-reflection)
7316 ("ghc-semigroups" ,ghc-semigroups)
7317 ("ghc-semigroupoids" ,ghc-semigroupoids)
7318 ("ghc-tagged" ,ghc-tagged)
7319 ("ghc-transformers-compat" ,ghc-transformers-compat)
7320 ("ghc-unordered-containers" ,ghc-unordered-containers)
7321 ("ghc-vector" ,ghc-vector)
7322 ("ghc-void" ,ghc-void)))
7323 (native-inputs
7324 `(("cabal-doctest" ,cabal-doctest)
7325 ("ghc-doctest" ,ghc-doctest)
7326 ("ghc-simple-reflect" ,ghc-simple-reflect)
7327 ("ghc-test-framework" ,ghc-test-framework)
7328 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
7329 ("ghc-hunit" ,ghc-hunit)))
702a1012 7330 (home-page "https://github.com/ekmett/linear/")
dddbc90c
RV
7331 (synopsis "Linear algebra library for Haskell")
7332 (description
7333 "This package provides types and combinators for linear algebra on free
7334vector spaces.")
7335 (license license:bsd-3)))
1307e4c7
JS
7336
7337(define-public ghc-listlike
7338 (package
7339 (name "ghc-listlike")
7340 (version "4.6.2")
7341 (source
7342 (origin
7343 (method url-fetch)
7344 (uri
7345 (string-append
7346 "https://hackage.haskell.org/package/ListLike/ListLike-"
7347 version ".tar.gz"))
7348 (sha256
7349 (base32
7350 "0m65x8yaq7q50gznln8mga2wrc8cvjx6gw9rim8s7xqcrx6y5zjh"))))
7351 (build-system haskell-build-system)
7352 (inputs
7353 `(("ghc-vector" ,ghc-vector)
7354 ("ghc-dlist" ,ghc-dlist)
7355 ("ghc-fmlist" ,ghc-fmlist)
7356 ("ghc-hunit" ,ghc-hunit)
7357 ("ghc-quickcheck" ,ghc-quickcheck)
7358 ("ghc-random" ,ghc-random)
7359 ("ghc-utf8-string" ,ghc-utf8-string)))
7360 (home-page "https://github.com/JohnLato/listlike")
7361 (synopsis "Generic support for list-like structures")
7362 (description "The ListLike module provides a common interface to the
7363various Haskell types that are list-like. Predefined interfaces include
7364standard Haskell lists, Arrays, ByteStrings, and lazy ByteStrings.
7365Custom types can easily be made ListLike instances as well.
7366
7367ListLike also provides for String-like types, such as String and
7368ByteString, for types that support input and output, and for types that
7369can handle infinite lists.")
7370 (license license:bsd-3)))
dddbc90c 7371
84436be0
J
7372(define-public ghc-llvm-hs-pure
7373 (package
7374 (name "ghc-llvm-hs-pure")
7375 (version "9.0.0")
7376 (source
7377 (origin
7378 (method url-fetch)
7379 (uri (string-append "https://hackage.haskell.org/package/llvm-hs-pure/"
7380 "llvm-hs-pure-" version ".tar.gz"))
7381 (sha256
7382 (base32
7383 "0pxb5ah8r5pzpz2ibqw3g9g1isigb4z7pbzfrwr8kmcjn74ab3kf"))))
7384 (build-system haskell-build-system)
7385 (inputs
7386 `(("ghc-attoparsec" ,ghc-attoparsec)
7387 ("ghc-fail" ,ghc-fail)
7388 ("ghc-unordered-containers" ,ghc-unordered-containers)))
7389 (native-inputs
7390 `(("ghc-tasty" ,ghc-tasty)
7391 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
7392 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
7393 (home-page "https://github.com/llvm-hs/llvm-hs/")
7394 (synopsis "Pure Haskell LLVM functionality (no FFI)")
7395 (description "llvm-hs-pure is a set of pure Haskell types and functions
7396for interacting with LLVM. It includes an algebraic datatype (ADT) to represent
7397LLVM IR. The llvm-hs package builds on this one with FFI bindings to LLVM, but
7398llvm-hs-pure does not require LLVM to be available.")
7399 (license license:bsd-3)))
7400
e3ee8023
J
7401(define-public ghc-llvm-hs
7402 (package
7403 (name "ghc-llvm-hs")
7404 (version "9.0.1")
7405 (source
7406 (origin
7407 (method url-fetch)
7408 (uri (string-append "https://hackage.haskell.org/package/llvm-hs/llvm-hs-"
7409 version ".tar.gz"))
7410 (sha256
7411 (base32
7412 "0723xgh45h9cyxmmjsvxnsp8bpn1ljy4qgh7a7vqq3sj9d6wzq00"))))
7413 (build-system haskell-build-system)
7414 (inputs
7415 `(("ghc-attoparsec" ,ghc-attoparsec)
7416 ("ghc-exceptions" ,ghc-exceptions)
7417 ("ghc-utf8-string" ,ghc-utf8-string)
7418 ("ghc-llvm-hs-pure" ,ghc-llvm-hs-pure)
7419 ("llvm" ,llvm-9)))
7420 (native-inputs
7421 `(("ghc-tasty" ,ghc-tasty)
7422 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
7423 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
7424 ("ghc-quickcheck" ,ghc-quickcheck)
7425 ("ghc-temporary" ,ghc-temporary)
7426 ("ghc-pretty-show" ,ghc-pretty-show)
7427 ("ghc-temporary" ,ghc-temporary)))
7428 (home-page "https://github.com/llvm-hs/llvm-hs/")
7429 (synopsis "General purpose LLVM bindings for Haskell")
7430 (description "llvm-hs is a set of Haskell bindings for LLVM. Unlike other
7431current Haskell bindings, it uses an algebraic datatype (ADT) to represent LLVM
7432IR, and so offers two advantages: it handles almost all of the stateful
7433complexities of using the LLVM API to build IR; and it supports moving IR not
7434only from Haskell into LLVM C++ objects, but the other direction - from LLVM C++
7435into Haskell.")
7436 (license license:bsd-3)))
7437
dddbc90c
RV
7438(define-public ghc-logging-facade
7439 (package
7440 (name "ghc-logging-facade")
7441 (version "0.3.0")
7442 (source (origin
7443 (method url-fetch)
7444 (uri (string-append "https://hackage.haskell.org/package/"
7445 "logging-facade/logging-facade-"
7446 version ".tar.gz"))
7447 (sha256
7448 (base32
7449 "0d0lwxxgd16is9aw6v3ps4r9prv3dj8xscmm45fvzq3nicjiawcf"))))
7450 (build-system haskell-build-system)
7451 (native-inputs
7452 `(("ghc-hspec" ,ghc-hspec)
7453 ("hspec-discover" ,hspec-discover)))
7454 (home-page "https://hackage.haskell.org/package/logging-facade")
7455 (synopsis "Simple logging abstraction that allows multiple back-ends")
7456 (description
7457 "This package provides a simple logging abstraction that allows multiple
7458back-ends.")
7459 (license license:expat)))
7460
7461(define-public ghc-logict
7462 (package
7463 (name "ghc-logict")
79d9326f 7464 (version "0.7.0.2")
dddbc90c
RV
7465 (source
7466 (origin
7467 (method url-fetch)
7468 (uri (string-append
7469 "https://hackage.haskell.org/package/logict/logict-"
7470 version
7471 ".tar.gz"))
7472 (sha256
7473 (base32
79d9326f 7474 "1xfgdsxg0lp8m0a2cb83rcxrnnc37asfikay2kydi933anh9ihfc"))))
dddbc90c 7475 (build-system haskell-build-system)
79d9326f
TS
7476 (native-inputs
7477 `(("ghc-tasty" ,ghc-tasty)
7478 ("ghc-tasty-hunit" ,ghc-tasty-hunit)))
dddbc90c
RV
7479 (home-page "http://code.haskell.org/~dolio/")
7480 (synopsis "Backtracking logic-programming monad")
7481 (description "This library provides a continuation-based, backtracking,
7482logic programming monad. An adaptation of the two-continuation implementation
7483found in the paper \"Backtracking, Interleaving, and Terminating Monad
7484Transformers\" available @uref{http://okmij.org/ftp/papers/LogicT.pdf,
7485online}.")
7486 (license license:bsd-3)))
7487
27baf2a1
CH
7488(define-public ghc-lucid
7489 (package
7490 (name "ghc-lucid")
7491 (version "2.9.12")
7492 (source
7493 (origin
7494 (method url-fetch)
7495 (uri (string-append
7496 "https://hackage.haskell.org/package/lucid/lucid-"
7497 version
7498 ".tar.gz"))
7499 (sha256
7500 (base32
7501 "156wniydd1hlb7rygbm95zln8ky8lai8rn2apkkv0rax9cdw6jrh"))))
7502 (build-system haskell-build-system)
7503 (inputs
7504 `(("ghc-blaze-builder" ,ghc-blaze-builder)
7505 ("ghc-hashable" ,ghc-hashable)
7506 ("ghc-mmorph" ,ghc-mmorph)
7507 ("ghc-unordered-containers" ,ghc-unordered-containers)))
7508 (native-inputs
7509 `(("ghc-hunit" ,ghc-hunit)
7510 ("ghc-hspec" ,ghc-hspec)
7511 ("ghc-bifunctors" ,ghc-bifunctors)))
7512 (arguments
7513 `(#:cabal-revision
7514 ("1"
7515 "1f0whk5ncanxfjjanrf6rqyncig2xgc5mh2j0sqy3nrlyjr9aqq9")))
7516 (home-page "https://github.com/chrisdone/lucid")
7517 (synopsis "Haskell DSL for rendering HTML")
7518 (description "Clear to write, read and edit Haskell DSL for HTML.
7519
7520@itemize @bullet
7521@item
7522Names are consistent, and do not conflict with base or are keywords
7523(all have suffix @code{-}).
7524@item
7525Same combinator can be used for attributes and elements
7526(e.g. @code{style_}).
7527@end itemize")
7528 (license license:bsd-3)))
7529
dddbc90c
RV
7530(define-public ghc-lzma
7531 (package
7532 (name "ghc-lzma")
7533 (version "0.0.0.3")
7534 (source
7535 (origin
7536 (method url-fetch)
7537 (uri (string-append "https://hackage.haskell.org/package/lzma/"
7538 "lzma-" version ".tar.gz"))
7539 (sha256
7540 (base32
7541 "0i416gqi8j55nd1pqbkxvf3f6hn6fjys6gq98lkkxphva71j30xg"))))
7542 (build-system haskell-build-system)
7543 (arguments
7544 '(#:tests? #f ; requires older versions of QuickCheck and tasty.
7545 #:cabal-revision
7546 ("3" "1sify6gnsalyp6dakfzi0mdy5jcz2kcp9jsdsgkmxd40nfzgd44m")))
7547 (native-inputs
7548 `(("ghc-hunit" ,ghc-hunit)
7549 ("ghc-quickcheck" ,ghc-quickcheck)
7550 ("ghc-tasty" ,ghc-tasty)
7551 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
7552 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
7553 (home-page "https://github.com/hvr/lzma")
7554 (synopsis "LZMA/XZ compression and decompression")
7555 (description
7556 "This package provides a pure interface for compressing and
7557decompressing LZMA streams of data represented as lazy @code{ByteString}s. A
7558monadic incremental interface is provided as well.")
7559 (license license:bsd-3)))
7560
7561(define-public ghc-lzma-conduit
7562 (package
7563 (name "ghc-lzma-conduit")
7564 (version "1.2.1")
7565 (source
7566 (origin
7567 (method url-fetch)
7568 (uri (string-append "https://hackage.haskell.org/package/lzma-conduit/"
7569 "lzma-conduit-" version ".tar.gz"))
7570 (sha256
7571 (base32
7572 "0hm72da7xk9l3zxjh274yg444vf405djxqbkf3q3p2qhicmxlmg9"))))
7573 (build-system haskell-build-system)
7574 (inputs
7575 `(("ghc-conduit" ,ghc-conduit)
7576 ("ghc-lzma" ,ghc-lzma)
7577 ("ghc-resourcet" ,ghc-resourcet)))
7578 (native-inputs
7579 `(("ghc-base-compat" ,ghc-base-compat)
7580 ("ghc-test-framework" ,ghc-test-framework)
7581 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
7582 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)
7583 ("ghc-hunit" ,ghc-hunit)
7584 ("ghc-quickcheck" ,ghc-quickcheck)))
7585 (home-page "https://github.com/alphaHeavy/lzma-conduit")
7586 (synopsis "Conduit interface for lzma/xz compression")
7587 (description
7588 "This package provides a @code{Conduit} interface for the LZMA
7589compression algorithm used in the @code{.xz} file format.")
7590 (license license:bsd-3)))
7591
e405912c
KM
7592(define-public ghc-magic
7593 (package
7594 (name "ghc-magic")
7595 (version "1.1")
7596 (source
7597 (origin
7598 (method url-fetch)
7599 (uri (string-append
7600 "https://hackage.haskell.org/package/magic/magic-"
7601 version ".tar.gz"))
7602 (sha256
7603 (base32
7604 "10p0gjjjwr1dda7hahwrwn5njbfhl67arq3v3nf1jr3vymlkn75j"))))
7605 (build-system haskell-build-system)
3ef91e15 7606 (home-page "https://hackage.haskell.org/package/magic")
e405912c
KM
7607 (synopsis "Interface to C file/magic library")
7608 (description
7609 "This package provides a full-featured binding to the C libmagic library.
7610With it, you can determine the type of a file by examining its contents rather
7611than its name.")
7612 (license license:bsd-3)))
7613
bcfe9dba
JS
7614(define-public ghc-managed
7615 (package
7616 (name "ghc-managed")
7617 (version "1.0.6")
7618 (source
7619 (origin
7620 (method url-fetch)
7621 (uri (string-append
7622 "mirror://hackage/package/managed/managed-"
7623 version
7624 ".tar.gz"))
7625 (sha256
7626 (base32
7627 "1kbrw99yh5x5blykmx2n88mplbbi4ss1ij5j17b7asw6q0ihm9zi"))))
7628 (build-system haskell-build-system)
7629 (home-page "http://hackage.haskell.org/package/managed")
7630 (synopsis "Monad for managed values")
7631 (description
7632 "In Haskell you very often acquire values using the with... idiom using
7633functions of type (a -> IO r) -> IO r. This idiom forms a Monad, which is a
7634special case of the ContT monad (from transformers) or the Codensity
7635monad (from kan-extensions). The main purpose behind this package is to
7636provide a restricted form of these monads specialized to this unusually common
7637case.
7638
7639The reason this package defines a specialized version of these types
7640is to:
7641
7642@itemize
7643@item be more beginner-friendly,
7644@item simplify inferred types and error messages, and:
7645@item provide some additional type class instances that would otherwise be
7646orphan instances
7647@end itemize")
7648 (license license:bsd-3)))
7649
dddbc90c
RV
7650(define-public ghc-markdown-unlit
7651 (package
7652 (name "ghc-markdown-unlit")
7653 (version "0.5.0")
7654 (source (origin
7655 (method url-fetch)
7656 (uri (string-append
7657 "mirror://hackage/package/markdown-unlit/"
7658 "markdown-unlit-" version ".tar.gz"))
7659 (sha256
7660 (base32
7661 "1gy79vr85vcp13rdjh0hz7zv6daqqffww4j0cqn2lpjjh9xhsbg7"))))
7662 (build-system haskell-build-system)
7663 (inputs
7664 `(("ghc-base-compat" ,ghc-base-compat)
7665 ("ghc-hspec" ,ghc-hspec)
7666 ("ghc-quickcheck" ,ghc-quickcheck)
7667 ("ghc-silently" ,ghc-silently)
7668 ("ghc-stringbuilder" ,ghc-stringbuilder)
7669 ("ghc-temporary" ,ghc-temporary)
7670 ("hspec-discover" ,hspec-discover)))
7671 (home-page "https://github.com/sol/markdown-unlit#readme")
7672 (synopsis "Literate Haskell support for Markdown")
7673 (description "This package allows you to have a README.md that at the
7674same time is a literate Haskell program.")
7675 (license license:expat)))
7676
7677(define-public ghc-math-functions
7678 (package
7679 (name "ghc-math-functions")
b45de2bf 7680 (version "0.3.3.0")
dddbc90c
RV
7681 (source
7682 (origin
7683 (method url-fetch)
7684 (uri (string-append "https://hackage.haskell.org/package/"
7685 "math-functions-" version "/"
7686 "math-functions-" version ".tar.gz"))
7687 (sha256
7688 (base32
b45de2bf 7689 "1s5nbs40sc3r4z08n0j8bw40cy0zkp03fjjn3p27zkd4fvm9kib3"))))
dddbc90c
RV
7690 (build-system haskell-build-system)
7691 (arguments `(#:tests? #f)) ; FIXME: 1 test fails.
7692 (inputs
b45de2bf
TS
7693 `(("ghc-data-default-class" ,ghc-data-default-class)
7694 ("ghc-vector" ,ghc-vector)
dddbc90c
RV
7695 ("ghc-vector-th-unbox" ,ghc-vector-th-unbox)))
7696 (native-inputs
7697 `(("ghc-hunit" ,ghc-hunit)
7698 ("ghc-quickcheck" ,ghc-quickcheck)
7699 ("ghc-erf" ,ghc-erf)
7700 ("ghc-test-framework" ,ghc-test-framework)
7701 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
7702 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
7703 (home-page "https://github.com/bos/math-functions")
7704 (synopsis "Special functions and Chebyshev polynomials for Haskell")
7705 (description "This Haskell library provides implementations of
7706special mathematical functions and Chebyshev polynomials. These
7707functions are often useful in statistical and numerical computing.")
7708 (license license:bsd-3)))
7709
7710(define-public ghc-megaparsec
7711 (package
7712 (name "ghc-megaparsec")
03b0c92e 7713 (version "7.0.5")
dddbc90c
RV
7714 (source
7715 (origin
7716 (method url-fetch)
7717 (uri (string-append "https://hackage.haskell.org/package/"
7718 "megaparsec/megaparsec-"
7719 version ".tar.gz"))
7720 (sha256
7721 (base32
03b0c92e 7722 "0bqx1icbmk8s7wmbcdzsgnlh607c7kzg8l80cp02dxr5valjxp7j"))))
dddbc90c 7723 (build-system haskell-build-system)
dddbc90c
RV
7724 (inputs
7725 `(("ghc-case-insensitive" ,ghc-case-insensitive)
7726 ("ghc-parser-combinators" ,ghc-parser-combinators)
7727 ("ghc-scientific" ,ghc-scientific)))
7728 (native-inputs
7729 `(("ghc-quickcheck" ,ghc-quickcheck)
7730 ("ghc-hspec" ,ghc-hspec)
7731 ("ghc-hspec-expectations" ,ghc-hspec-expectations)
7732 ("hspec-discover" ,hspec-discover)))
7733 (home-page "https://github.com/mrkkrp/megaparsec")
7734 (synopsis "Monadic parser combinators")
7735 (description
7736 "This is an industrial-strength monadic parser combinator library.
7737Megaparsec is a feature-rich package that strikes a nice balance between
7738speed, flexibility, and quality of parse errors.")
7739 (license license:bsd-2)))
7740
7741(define-public ghc-memory
7742 (package
7743 (name "ghc-memory")
d2c7d336 7744 (version "0.14.18")
dddbc90c
RV
7745 (source (origin
7746 (method url-fetch)
7747 (uri (string-append "https://hackage.haskell.org/package/"
7748 "memory/memory-" version ".tar.gz"))
7749 (sha256
7750 (base32
d2c7d336 7751 "01rmq3vagxzjmm96qnfxk4f0516cn12bp5m8inn8h5r918bqsigm"))))
dddbc90c
RV
7752 (build-system haskell-build-system)
7753 (inputs
7754 `(("ghc-basement" ,ghc-basement)
7755 ("ghc-foundation" ,ghc-foundation)))
7756 (native-inputs
7757 `(("ghc-tasty" ,ghc-tasty)
7758 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
7759 ("ghc-tasty-hunit" ,ghc-tasty-hunit)))
7760 (home-page "https://github.com/vincenthz/hs-memory")
7761 (synopsis "Memory abstractions for Haskell")
7762 (description
7763 "This package provides memory abstractions, such as chunk of memory,
7764polymorphic byte array management and manipulation functions. It contains a
7765polymorphic byte array abstraction and functions similar to strict ByteString,
7766different type of byte array abstraction, raw memory IO operations (memory
7767set, memory copy, ..) and more")
7768 (license license:bsd-3)))
7769
7770(define-public ghc-memotrie
7771 (package
7772 (name "ghc-memotrie")
7773 (version "0.6.9")
7774 (source
7775 (origin
7776 (method url-fetch)
7777 (uri (string-append
7778 "https://hackage.haskell.org/package/MemoTrie/MemoTrie-"
7779 version
7780 ".tar.gz"))
7781 (sha256
7782 (base32
7783 "157p0pi6rrq74a35mq6zkkycv4ah7xhkbrcmnkb9xf7pznw4aq0x"))))
7784 (build-system haskell-build-system)
7785 (inputs
7786 `(("ghc-newtype-generics" ,ghc-newtype-generics)))
7787 (home-page "https://github.com/conal/MemoTrie")
7788 (synopsis "Trie-based memo functions")
7789 (description "This package provides a functional library for creating
7790efficient memo functions using tries.")
7791 (license license:bsd-3)))
7792
7793(define-public ghc-microlens
7794 (package
7795 (name "ghc-microlens")
82478c58 7796 (version "0.4.10")
dddbc90c
RV
7797 (source
7798 (origin
7799 (method url-fetch)
7800 (uri (string-append "https://hackage.haskell.org/package/"
7801 "microlens-" version "/"
7802 "microlens-" version ".tar.gz"))
7803 (sha256
7804 (base32
82478c58 7805 "1v277yyy4p9q57xr2lfp6qs24agglfczmcabrapxrzci3jfshmcw"))))
dddbc90c
RV
7806 (build-system haskell-build-system)
7807 (home-page
7808 "https://github.com/aelve/microlens")
7809 (synopsis "Provides a tiny lens Haskell library with no dependencies")
7810 (description "This Haskell package provides a lens library, just like
7811@code{ghc-lens}, but smaller. It provides essential lenses and
7812traversals (like @code{_1} and @code{_Just}), as well as ones which are simply
7813nice to have (like @code{each}, @code{at}, and @code{ix}), and some
7814combinators (like @code{failing} and @code{singular}), but everything else is
7815stripped. As the result, this package has no dependencies.")
7816 (license license:bsd-3)))
7817
1cd3333e
TS
7818(define-public ghc-microlens-aeson
7819 (package
7820 (name "ghc-microlens-aeson")
7821 (version "2.3.0.4")
7822 (source
7823 (origin
7824 (method url-fetch)
7825 (uri (string-append "https://hackage.haskell.org/package/"
7826 "microlens-aeson/microlens-aeson-"
7827 version ".tar.gz"))
b4a00fec 7828 (patches (search-patches "ghc-microlens-aeson-fix-tests.patch"))
1cd3333e
TS
7829 (sha256
7830 (base32
7831 "0w630kk5bnily1qh41081gqgbwmslrh5ad21899gwnb2r3jripyw"))))
7832 (build-system haskell-build-system)
7833 (inputs
7834 `(("ghc-aeson" ,ghc-aeson)
7835 ("ghc-attoparsec" ,ghc-attoparsec)
7836 ("ghc-hashable" ,ghc-hashable)
7837 ("ghc-microlens" ,ghc-microlens)
7838 ("ghc-scientific" ,ghc-scientific)
7839 ("ghc-unordered-containers" ,ghc-unordered-containers)
7840 ("ghc-vector" ,ghc-vector)))
7841 (native-inputs
7842 `(("ghc-tasty" ,ghc-tasty)
7843 ("ghc-tasty-hunit" ,ghc-tasty-hunit)))
7844 (home-page "https://github.com/fosskers/microlens-aeson")
7845 (synopsis "Law-abiding lenses for Aeson, using microlens")
7846 (description "This library provides law-abiding lenses for Aeson, using
7847microlens.")
7848 (license license:expat)))
7849
dddbc90c
RV
7850(define-public ghc-microlens-ghc
7851 (package
7852 (name "ghc-microlens-ghc")
027beb55 7853 (version "0.4.10")
dddbc90c
RV
7854 (source
7855 (origin
7856 (method url-fetch)
7857 (uri (string-append
7858 "https://hackage.haskell.org/package/microlens-ghc/microlens-ghc-"
7859 version
7860 ".tar.gz"))
7861 (sha256
7862 (base32
027beb55 7863 "102dbrdsdadxbbhvx8avv1wbk84767a7lkb8ckp3zxk9g7qlly33"))))
dddbc90c
RV
7864 (build-system haskell-build-system)
7865 (inputs `(("ghc-microlens" ,ghc-microlens)))
7866 (home-page "https://github.com/monadfix/microlens")
7867 (synopsis "Use @code{microlens} with GHC libraries like @code{array}")
7868 (description "This library provides everything that @code{microlens}
7869provides plus instances to make @code{each}, @code{at}, and @code{ix}
7870usable with arrays, @code{ByteString}, and containers. This package is
7871a part of the @uref{http://hackage.haskell.org/package/microlens,
7872microlens} family; see the readme
7873@uref{https://github.com/aelve/microlens#readme, on Github}.")
7874 (license license:bsd-3)))
7875
7876(define-public ghc-microlens-mtl
7877 (package
7878 (name "ghc-microlens-mtl")
7879 (version "0.1.11.1")
7880 (source
7881 (origin
7882 (method url-fetch)
7883 (uri (string-append
7884 "https://hackage.haskell.org/package/microlens-mtl/microlens-mtl-"
7885 version
7886 ".tar.gz"))
7887 (sha256
7888 (base32
7889 "0l6z1gkzwcpv89bxf5vgfrjb6gq2pj7sjjc53nvi5b9alx34zryk"))))
7890 (build-system haskell-build-system)
7891 (inputs
7892 `(("ghc-microlens" ,ghc-microlens)
7893 ("ghc-transformers-compat" ,ghc-transformers-compat)))
7894 (home-page "https://github.com/monadfix/microlens")
7895 (synopsis
7896 "@code{microlens} support for Reader/Writer/State from mtl")
7897 (description
7898 "This package contains functions (like @code{view} or @code{+=}) which
7899work on @code{MonadReader}, @code{MonadWriter}, and @code{MonadState} from the
7900mtl package. This package is a part of the
7901@uref{http://hackage.haskell.org/package/microlens, microlens} family; see the
7902readme @uref{https://github.com/aelve/microlens#readme, on Github}.")
7903 (license license:bsd-3)))
7904
7905(define-public ghc-microlens-platform
7906 (package
7907 (name "ghc-microlens-platform")
85decc1f 7908 (version "0.3.11")
dddbc90c
RV
7909 (source
7910 (origin
7911 (method url-fetch)
7912 (uri (string-append
7913 "https://hackage.haskell.org/package/"
7914 "microlens-platform/microlens-platform-" version ".tar.gz"))
7915 (sha256
7916 (base32
85decc1f 7917 "18950lxgmsg5ksvyyi3zs1smjmb1qf1q73a3p3g44bh21miz0xwb"))))
dddbc90c
RV
7918 (build-system haskell-build-system)
7919 (inputs
7920 `(("ghc-hashable" ,ghc-hashable)
7921 ("ghc-microlens" ,ghc-microlens)
7922 ("ghc-microlens-ghc" ,ghc-microlens-ghc)
7923 ("ghc-microlens-mtl" ,ghc-microlens-mtl)
7924 ("ghc-microlens-th" ,ghc-microlens-th)
7925 ("ghc-unordered-containers" ,ghc-unordered-containers)
7926 ("ghc-vector" ,ghc-vector)))
7927 (home-page "https://github.com/monadfix/microlens")
7928 (synopsis "Feature-complete microlens")
7929 (description
7930 "This package exports a module which is the recommended starting point
7931for using @uref{http://hackage.haskell.org/package/microlens, microlens} if
7932you aren't trying to keep your dependencies minimal. By importing
7933@code{Lens.Micro.Platform} you get all functions and instances from
7934@uref{http://hackage.haskell.org/package/microlens, microlens},
7935@uref{http://hackage.haskell.org/package/microlens-th, microlens-th},
7936@uref{http://hackage.haskell.org/package/microlens-mtl, microlens-mtl},
7937@uref{http://hackage.haskell.org/package/microlens-ghc, microlens-ghc}, as
7938well as instances for @code{Vector}, @code{Text}, and @code{HashMap}. The
7939minor and major versions of @code{microlens-platform} are incremented whenever
7940the minor and major versions of any other @code{microlens} package are
7941incremented, so you can depend on the exact version of
7942@code{microlens-platform} without specifying the version of @code{microlens}
7943you need. This package is a part of the
7944@uref{http://hackage.haskell.org/package/microlens, microlens} family; see the
7945readme @uref{https://github.com/aelve/microlens#readme, on Github}.")
7946 (license license:bsd-3)))
7947
7948(define-public ghc-microlens-th
7949 (package
7950 (name "ghc-microlens-th")
7ae52867 7951 (version "0.4.2.3")
dddbc90c
RV
7952 (source
7953 (origin
7954 (method url-fetch)
7955 (uri (string-append "https://hackage.haskell.org/package/"
7956 "microlens-th-" version "/"
7957 "microlens-th-" version ".tar.gz"))
7958 (sha256
7959 (base32
7ae52867 7960 "13qw0pwcgd6f6i39rwgqwcwk1d4da5x7wv3gna7gdlxaq331h41j"))))
dddbc90c 7961 (build-system haskell-build-system)
7ae52867
TS
7962 (arguments
7963 `(#:cabal-revision
7964 ("1" "167in7b1qhgrspx81bdm2jyg9qji66sk7id282c0s99kmp0d01n6")))
dddbc90c
RV
7965 (inputs `(("ghc-microlens" ,ghc-microlens)
7966 ("ghc-th-abstraction" ,ghc-th-abstraction)))
7967 (home-page
7968 "https://github.com/aelve/microlens")
7969 (synopsis "Automatic generation of record lenses for
7970@code{ghc-microlens}")
7971 (description "This Haskell package lets you automatically generate lenses
7972for data types; code was extracted from the lens package, and therefore
7973generated lenses are fully compatible with ones generated by lens (and can be
7974used both from lens and microlens).")
7975 (license license:bsd-3)))
7976
7977(define-public ghc-missingh
7978 (package
7979 (name "ghc-missingh")
641207cb 7980 (version "1.4.1.0")
dddbc90c
RV
7981 (source
7982 (origin
7983 (method url-fetch)
7984 (uri (string-append "https://hackage.haskell.org/package/MissingH/"
7985 "MissingH-" version ".tar.gz"))
7986 (sha256
7987 (base32
641207cb 7988 "1jp0vk6w9a7fzrbxfhx773105jp2s1n50klq9ak6spfl7bgx5v29"))))
dddbc90c
RV
7989 (build-system haskell-build-system)
7990 ;; Tests require the unmaintained testpack package, which depends on the
7991 ;; outdated QuickCheck version 2.7, which can no longer be built with
7992 ;; recent versions of GHC and Haskell libraries.
7993 (arguments '(#:tests? #f))
7994 (inputs
7995 `(("ghc-network" ,ghc-network)
7996 ("ghc-hunit" ,ghc-hunit)
7997 ("ghc-regex-compat" ,ghc-regex-compat)
7998 ("ghc-hslogger" ,ghc-hslogger)
7999 ("ghc-random" ,ghc-random)
8000 ("ghc-old-time" ,ghc-old-time)
8001 ("ghc-old-locale" ,ghc-old-locale)))
8002 (native-inputs
8003 `(("ghc-errorcall-eq-instance" ,ghc-errorcall-eq-instance)
8004 ("ghc-quickcheck" ,ghc-quickcheck)
8005 ("ghc-hunit" ,ghc-hunit)))
f1841ccf
TGR
8006 ;; ‘Official’ <http://software.complete.org/missingh> redirects to a 404.
8007 (home-page "https://github.com/haskell-hvr/missingh")
dddbc90c
RV
8008 (synopsis "Large utility library")
8009 (description
8010 "MissingH is a library of all sorts of utility functions for Haskell
8011programmers. It is written in pure Haskell and thus should be extremely
8012portable and easy to use.")
8013 (license license:bsd-3)))
8014
8015(define-public ghc-mmap
8016 (package
8017 (name "ghc-mmap")
8018 (version "0.5.9")
8019 (source (origin
8020 (method url-fetch)
8021 (uri (string-append "https://hackage.haskell.org/package/"
8022 "mmap/mmap-" version ".tar.gz"))
8023 (sha256
8024 (base32
8025 "1y5mk3yf4b8r6rzmlx1xqn4skaigrqnv08sqq0v7r3nbw42bpz2q"))))
8026 (build-system haskell-build-system)
8027 (home-page "https://hackage.haskell.org/package/mmap")
8028 (synopsis "Memory mapped files for Haskell")
8029 (description
8030 "This library provides a wrapper to @code{mmap}, allowing files or
8031devices to be lazily loaded into memory as strict or lazy @code{ByteStrings},
8032@code{ForeignPtrs} or plain @code{Ptrs}, using the virtual memory subsystem to
8033do on-demand loading.")
8034 (license license:bsd-3)))
8035
8036(define-public ghc-mmorph
8037 (package
8038 (name "ghc-mmorph")
e0389704 8039 (version "1.1.3")
dddbc90c
RV
8040 (source
8041 (origin
8042 (method url-fetch)
8043 (uri (string-append
8044 "https://hackage.haskell.org/package/mmorph/mmorph-"
8045 version
8046 ".tar.gz"))
8047 (sha256
8048 (base32
e0389704 8049 "0rfsy9n9mlinpmqi2s17fhc67fzma2ig5fbmh6m5m830canzf8vr"))))
dddbc90c
RV
8050 (build-system haskell-build-system)
8051 (inputs
8052 `(("ghc-transformers-compat" ,ghc-transformers-compat)))
8053 (home-page "https://hackage.haskell.org/package/mmorph")
8054 (synopsis "Monad morphisms")
8055 (description
8056 "This library provides monad morphism utilities, most commonly used for
8057manipulating monad transformer stacks.")
8058 (license license:bsd-3)))
8059
8060(define-public ghc-mockery
8061 (package
8062 (name "ghc-mockery")
8063 (version "0.3.5")
8064 (source (origin
8065 (method url-fetch)
8066 (uri (string-append "https://hackage.haskell.org/package/"
8067 "mockery/mockery-" version ".tar.gz"))
8068 (sha256
8069 (base32
8070 "09ypgm3z69gq8mj6y66ss58kbjnk15r8frwcwbqcfbfksfnfv8dp"))))
8071 (build-system haskell-build-system)
8072 (inputs
8073 `(("ghc-temporary" ,ghc-temporary)
8074 ("ghc-logging-facade" ,ghc-logging-facade)
8075 ("ghc-base-compat" ,ghc-base-compat)))
8076 (native-inputs
8077 `(("ghc-hspec" ,ghc-hspec)
8078 ("hspec-discover" ,hspec-discover)))
8079 (home-page "https://hackage.haskell.org/package/mockery")
8080 (synopsis "Support functions for automated testing")
8081 (description
8082 "The mockery package provides support functions for automated testing.")
8083 (license license:expat)))
8084
8085(define-public ghc-monad-control
8086 (package
8087 (name "ghc-monad-control")
8088 (version "1.0.2.3")
8089 (source
8090 (origin
8091 (method url-fetch)
8092 (uri (string-append
8093 "https://hackage.haskell.org/package/monad-control"
8094 "/monad-control-" version ".tar.gz"))
8095 (sha256
8096 (base32
8097 "1c92833gr6cadidjdp8mlznkpp8lyxl0w3y7d19y8yi3klc3843c"))))
8098 (build-system haskell-build-system)
8099 (inputs
8100 `(("ghc-transformers-base" ,ghc-transformers-base)
8101 ("ghc-transformers-compat" ,ghc-transformers-compat)))
8102 (home-page "https://github.com/basvandijk/monad-control")
8103 (synopsis "Monad transformers to lift control operations like exception
8104catching")
8105 (description "This package defines the type class @code{MonadBaseControl},
8106a subset of @code{MonadBase} into which generic control operations such as
8107@code{catch} can be lifted from @code{IO} or any other base monad.")
8108 (license license:bsd-3)))
8109
8110(define-public ghc-monad-logger
8111 (package
8112 (name "ghc-monad-logger")
26980aae 8113 (version "0.3.30")
dddbc90c
RV
8114 (source
8115 (origin
8116 (method url-fetch)
8117 (uri (string-append "https://hackage.haskell.org/package/"
8118 "monad-logger-" version "/"
8119 "monad-logger-" version ".tar.gz"))
8120 (sha256
8121 (base32
26980aae 8122 "102l0v75hbvkmrypiyg4ybb6rbc7nij5nxs1aihmqfdpg04rkkp7"))))
dddbc90c
RV
8123 (build-system haskell-build-system)
8124 (inputs `(("ghc-transformers-compat" ,ghc-transformers-compat)
8125 ("ghc-stm-chans" ,ghc-stm-chans)
8126 ("ghc-lifted-base" ,ghc-lifted-base)
8127 ("ghc-resourcet" ,ghc-resourcet)
8128 ("ghc-conduit" ,ghc-conduit)
8129 ("ghc-conduit-extra" ,ghc-conduit-extra)
8130 ("ghc-fast-logger" ,ghc-fast-logger)
8131 ("ghc-transformers-base" ,ghc-transformers-base)
8132 ("ghc-monad-control" ,ghc-monad-control)
8133 ("ghc-monad-loops" ,ghc-monad-loops)
8134 ("ghc-blaze-builder" ,ghc-blaze-builder)
8135 ("ghc-exceptions" ,ghc-exceptions)))
8136 (home-page "https://github.com/kazu-yamamoto/logger")
8137 (synopsis "Provides a class of monads which can log messages for Haskell")
8138 (description "This Haskell package uses a monad transformer approach
8139for logging.
8140
8141This package provides Template Haskell functions for determining source
8142code locations of messages.")
8143 (license license:expat)))
8144
8145(define-public ghc-monad-loops
8146 (package
8147 (name "ghc-monad-loops")
8148 (version "0.4.3")
8149 (source
8150 (origin
8151 (method url-fetch)
8152 (uri (string-append "https://hackage.haskell.org/package/"
8153 "monad-loops-" version "/"
8154 "monad-loops-" version ".tar.gz"))
8155 (sha256
8156 (base32
8157 "062c2sn3hc8h50p1mhqkpyv6x8dydz2zh3ridvlfjq9nqimszaky"))))
8158 (build-system haskell-build-system)
8159 (native-inputs `(("ghc-tasty" ,ghc-tasty)
8160 ("ghc-tasty-hunit" ,ghc-tasty-hunit)))
8161 (home-page "https://github.com/mokus0/monad-loops")
8162 (synopsis "Monadic loops for Haskell")
8163 (description "This Haskell package provides some useful control
8164operators for looping.")
8165 (license license:public-domain)))
8166
8167(define-public ghc-monad-par
8168 (package
8169 (name "ghc-monad-par")
8170 (version "0.3.4.8")
8171 (source
8172 (origin
8173 (method url-fetch)
8174 (uri (string-append "https://hackage.haskell.org/package/"
8175 "monad-par-" version "/"
8176 "monad-par-" version ".tar.gz"))
faac56f3 8177 (patches (search-patches "ghc-monad-par-fix-tests.patch"))
dddbc90c
RV
8178 (sha256
8179 (base32
8180 "0ldrzqy24fsszvn2a2nr77m2ih7xm0h9bgkjyv1l274aj18xyk7q"))))
8181 (build-system haskell-build-system)
8182 (inputs `(("ghc-abstract-par" ,ghc-abstract-par)
8183 ("ghc-abstract-deque" ,ghc-abstract-deque)
8184 ("ghc-monad-par-extras" ,ghc-monad-par-extras)
8185 ("ghc-mwc-random" ,ghc-mwc-random)
8186 ("ghc-parallel" ,ghc-parallel)))
8187 (native-inputs `(("ghc-quickcheck" ,ghc-quickcheck)
8188 ("ghc-hunit" ,ghc-hunit)
8189 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
8190 ("ghc-test-framework-quickcheck2"
8191 ,ghc-test-framework-quickcheck2)
8192 ("ghc-test-framework" ,ghc-test-framework)
8193 ("ghc-test-framework-th" ,ghc-test-framework-th)))
8194 (home-page "https://github.com/simonmar/monad-par")
8195 (synopsis "Haskell library for parallel programming based on a monad")
8196 (description "The @code{Par} monad offers an API for parallel
8197programming. The library works for parallelising both pure and @code{IO}
8198computations, although only the pure version is deterministic. The default
8199implementation provides a work-stealing scheduler and supports forking tasks
8200that are much lighter weight than IO-threads.")
8201 (license license:bsd-3)))
8202
8203(define-public ghc-monad-par-extras
8204 (package
8205 (name "ghc-monad-par-extras")
8206 (version "0.3.3")
8207 (source
8208 (origin
8209 (method url-fetch)
8210 (uri (string-append "https://hackage.haskell.org/package/"
8211 "monad-par-extras-" version "/"
8212 "monad-par-extras-" version ".tar.gz"))
8213 (sha256
8214 (base32
8215 "0bl4bd6jzdc5zm20q1g67ppkfh6j6yn8fwj6msjayj621cck67p2"))))
8216 (build-system haskell-build-system)
8217 (inputs `(("ghc-abstract-par" ,ghc-abstract-par)
8218 ("ghc-cereal" ,ghc-cereal)
8219 ("ghc-random" ,ghc-random)))
8220 (home-page "https://github.com/simonmar/monad-par")
8221 (synopsis "Combinators and extra features for Par monads for Haskell")
8222 (description "This Haskell package provides additional data structures,
8223and other added capabilities layered on top of the @code{Par} monad.")
8224 (license license:bsd-3)))
8225
dddbc90c
RV
8226(define-public ghc-monadrandom
8227 (package
8228 (name "ghc-monadrandom")
8229 (version "0.5.1.1")
8230 (source
8231 (origin
8232 (method url-fetch)
8233 (uri (string-append "https://hackage.haskell.org/package/"
8234 "MonadRandom-" version "/"
8235 "MonadRandom-" version ".tar.gz"))
8236 (sha256
8237 (base32
8238 "0w44jl1n3kqvqaflh82l1wj3xxbhzfs3kf4m8rk7w6fgg8llmnmb"))))
8239 (build-system haskell-build-system)
8240 (inputs `(("ghc-transformers-compat" ,ghc-transformers-compat)
8241 ("ghc-primitive" ,ghc-primitive)
8242 ("ghc-fail" ,ghc-fail)
8243 ("ghc-random" ,ghc-random)))
8244 (home-page "https://github.com/byorgey/MonadRandom")
8245 (synopsis "Random-number generation monad for Haskell")
8246 (description "This Haskell package provides support for computations
8247which consume random values.")
8248 (license license:bsd-3)))
8249
8250(define-public ghc-monads-tf
8251 (package
8252 (name "ghc-monads-tf")
8253 (version "0.1.0.3")
8254 (source
8255 (origin
8256 (method url-fetch)
8257 (uri (string-append
8258 "https://hackage.haskell.org/package/monads-tf/monads-tf-"
8259 version ".tar.gz"))
8260 (sha256
8261 (base32
8262 "1wdhskwa6dw8qljbvwpyxj8ca6y95q2np7z4y4q6bpf4anmd5794"))))
8263 (build-system haskell-build-system)
8264 (home-page "https://hackage.haskell.org/package/monads-tf")
8265 (synopsis "Monad classes, using type families")
8266 (description
8267 "Monad classes using type families, with instances for various monad transformers,
8268inspired by the paper 'Functional Programming with Overloading and Higher-Order
8269Polymorphism', by Mark P Jones. This package is almost a compatible replacement for
8270the @code{mtl-tf} package.")
8271 (license license:bsd-3)))
8272
8273(define-public ghc-mono-traversable
8274 (package
8275 (name "ghc-mono-traversable")
23bb445b 8276 (version "1.0.13.0")
dddbc90c
RV
8277 (source
8278 (origin
8279 (method url-fetch)
8280 (uri (string-append "https://hackage.haskell.org/package/"
8281 "mono-traversable-" version "/"
8282 "mono-traversable-" version ".tar.gz"))
8283 (sha256
8284 (base32
23bb445b 8285 "1bqy982lpdb83lacfy76n8kqw5bvd31avxj25kg8gkgycdh0g0ma"))))
dddbc90c 8286 (build-system haskell-build-system)
3e6ecfeb 8287 (outputs '("out" "static" "doc"))
dddbc90c
RV
8288 (inputs `(("ghc-unordered-containers" ,ghc-unordered-containers)
8289 ("ghc-hashable" ,ghc-hashable)
8290 ("ghc-vector" ,ghc-vector)
8291 ("ghc-vector-algorithms" ,ghc-vector-algorithms)
8292 ("ghc-split" ,ghc-split)))
8293 (native-inputs `(("ghc-hspec" ,ghc-hspec)
8294 ("ghc-hunit" ,ghc-hunit)
8295 ("ghc-quickcheck" ,ghc-quickcheck)
8296 ("ghc-semigroups" ,ghc-semigroups)
8297 ("ghc-foldl" ,ghc-foldl)))
8298 (home-page "https://github.com/snoyberg/mono-traversable")
8299 (synopsis "Haskell classes for mapping, folding, and traversing monomorphic
8300containers")
8301 (description "This Haskell package provides Monomorphic variants of the
8302Functor, Foldable, and Traversable typeclasses. If you understand Haskell's
8303basic typeclasses, you understand mono-traversable. In addition to what
8304you are used to, it adds on an IsSequence typeclass and has code for marking
8305data structures as non-empty.")
8306 (license license:expat)))
8307
471e77cf
TS
8308(define-public ghc-monoid-extras
8309 (package
8310 (name "ghc-monoid-extras")
8311 (version "0.5.1")
8312 (source
8313 (origin
8314 (method url-fetch)
8315 (uri (string-append "https://hackage.haskell.org/package/"
8316 "monoid-extras/monoid-extras-" version ".tar.gz"))
8317 (sha256
8318 (base32
8319 "0xfrkgqn9d31z54l617m3w3kkd5m9vjb4yl247r3zzql3mpb1f37"))))
8320 (build-system haskell-build-system)
8321 (inputs
8322 `(("ghc-groups" ,ghc-groups)
8323 ("ghc-semigroups" ,ghc-semigroups)
8324 ("ghc-semigroupoids" ,ghc-semigroupoids)))
8325 (arguments
8326 `(#:cabal-revision
8327 ("1" "0b8x5d6vh7mpigvjvcd8f38a1nyzn1vfdqypslw7z9fgsr742913")))
8328 (home-page "https://hackage.haskell.org/package/monoid-extras")
8329 (synopsis "Various extra monoid-related definitions and utilities")
8330 (description "This package provides various extra monoid-related
8331definitions and utilities, such as monoid actions, monoid coproducts,
8332semi-direct products, \"deletable\" monoids, \"split\" monoids, and
8333\"cut\" monoids.")
8334 (license license:bsd-3)))
8335
c00d001d
CLW
8336(define-public ghc-mountpoints
8337 (package
8338 (name "ghc-mountpoints")
8339 (version "1.0.2")
8340 (source
8341 (origin
8342 (method url-fetch)
8343 (uri (string-append
8344 "https://hackage.haskell.org/package/mountpoints/mountpoints-"
8345 version
8346 ".tar.gz"))
8347 (sha256
8348 (base32
8349 "1hnm31pqcffphyc463wf0vbik9fzm5lb2r4wjdc1y4dqzmjdzz37"))))
8350 (build-system haskell-build-system)
8351 (home-page
8352 "http://hackage.haskell.org/package/mountpoints")
8353 (synopsis "Haskell library for listing mount points")
8354 (description "This library provides Haskell bindings for checking
8355currently mounted filesystems.")
8356 (license license:lgpl2.1+)))
8357
4759b617
JS
8358(define-public ghc-mtl-compat
8359 (package
8360 (name "ghc-mtl-compat")
8361 (version "0.2.2")
8362 (source
8363 (origin
8364 (method url-fetch)
8365 (uri (string-append
8366 "mirror://hackage/package/mtl-compat/mtl-compat-"
8367 version
8368 ".tar.gz"))
8369 (sha256
8370 (base32
8371 "17iszr5yb4f17g8mq6i74hsamii8z6m2qfsmgzs78mhiwa7kjm8r"))))
8372 (build-system haskell-build-system)
8373 (home-page
8374 "https://github.com/haskell-compat/mtl-compat")
8375 (synopsis
8376 "Backported Control.Monad.Except module from mtl")
8377 (description
8378 "This package backports the Control.Monad.Except module from mtl (if
8379using mtl-2.2.0.1 or earlier), which reexports the ExceptT monad transformer
8380and the MonadError class.
8381
8382This package should only be used if there is a need to use the
8383Control.Monad.Except module specifically. If you just want the mtl class
8384instances for ExceptT, use transformers-compat instead, since mtl-compat does
8385nothing but reexport the instances from that package.
8386
8387Note that unlike how mtl-2.2 or later works, the Control.Monad.Except
8388module defined in this package exports all of ExceptT's monad class instances.
8389Therefore, you may have to declare @code{import Control.Monad.Except ()} at
8390the top of your file to get all of the ExceptT instances in scope.")
8391 (license license:bsd-3)))
8392
dddbc90c
RV
8393(define-public ghc-murmur-hash
8394 (package
8395 (name "ghc-murmur-hash")
8396 (version "0.1.0.9")
8397 (source
8398 (origin
8399 (method url-fetch)
8400 (uri (string-append "https://hackage.haskell.org/package/murmur-hash"
8401 "/murmur-hash-" version ".tar.gz"))
8402 (sha256
8403 (base32 "1bb58kfnzvx3mpc0rc0dhqc1fk36nm8prd6gvf20gk6lxaadpfc9"))))
8404 (build-system haskell-build-system)
8405 (home-page "https://github.com/nominolo/murmur-hash")
8406 (synopsis "MurmurHash2 implementation for Haskell")
8407 (description
8408 "This package provides an implementation of MurmurHash2, a good, fast,
8409general-purpose, non-cryptographic hashing function. See
8410@url{https://sites.google.com/site/murmurhash/} for details. This
8411implementation is pure Haskell, so it might be a bit slower than a C FFI
8412binding.")
8413 (license license:bsd-3)))
8414
8415(define-public ghc-mwc-random
8416 (package
8417 (name "ghc-mwc-random")
33268e2c 8418 (version "0.14.0.0")
dddbc90c
RV
8419 (source
8420 (origin
8421 (method url-fetch)
8422 (uri (string-append "https://hackage.haskell.org/package/"
8423 "mwc-random-" version "/"
8424 "mwc-random-" version ".tar.gz"))
8425 (sha256
8426 (base32
33268e2c 8427 "18pg24sw3b79b32cwx8q01q4k0lm34mwr3l6cdkchl8alvd0wdq0"))))
dddbc90c
RV
8428 (build-system haskell-build-system)
8429 (inputs
8430 `(("ghc-primitive" ,ghc-primitive)
8431 ("ghc-vector" ,ghc-vector)
8432 ("ghc-math-functions" ,ghc-math-functions)))
8433 (arguments
8434 `(#:tests? #f)) ; FIXME: Test-Suite `spec` fails.
8435 (native-inputs
8436 `(("ghc-hunit" ,ghc-hunit)
8437 ("ghc-quickcheck" ,ghc-quickcheck)
8438 ("ghc-test-framework" ,ghc-test-framework)
8439 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
8440 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
8441 (home-page "https://github.com/bos/mwc-random")
8442 (synopsis "Random number generation library for Haskell")
8443 (description "This Haskell package contains code for generating
8444high quality random numbers that follow either a uniform or normal
8445distribution. The generated numbers are suitable for use in
8446statistical applications.
8447
8448The uniform PRNG uses Marsaglia's MWC256 (also known as MWC8222)
8449multiply-with-carry generator, which has a period of 2^{8222} and
8450fares well in tests of randomness. It is also extremely fast,
8451between 2 and 3 times faster than the Mersenne Twister.")
8452 (license license:bsd-3)))
8453
8454(define-public ghc-nats
8455 (package
8456 (name "ghc-nats")
8457 (version "1.1.2")
8458 (source
8459 (origin
8460 (method url-fetch)
8461 (uri (string-append
8462 "https://hackage.haskell.org/package/nats/nats-"
8463 version
8464 ".tar.gz"))
8465 (sha256
8466 (base32
8467 "1v40drmhixck3pz3mdfghamh73l4rp71mzcviipv1y8jhrfxilmr"))))
8468 (build-system haskell-build-system)
8469 (arguments `(#:haddock? #f))
8470 (inputs
8471 `(("ghc-hashable" ,ghc-hashable)))
8472 (home-page "https://hackage.haskell.org/package/nats")
8473 (synopsis "Natural numbers")
8474 (description "This library provides the natural numbers for Haskell.")
8475 (license license:bsd-3)))
8476
8477(define-public ghc-nats-bootstrap
8478 (package
8479 (inherit ghc-nats)
8480 (name "ghc-nats-bootstrap")
8481 (inputs
8482 `(("ghc-hashable" ,ghc-hashable-bootstrap)))
8483 (properties '((hidden? #t)))))
8484
52915062
EF
8485(define-public ghc-ncurses
8486 (package
8487 (name "ghc-ncurses")
8488 (version "0.2.16")
8489 (source
8490 (origin
8491 (method url-fetch)
8492 (uri (string-append
8493 "https://hackage.haskell.org/package/ncurses/ncurses-"
8494 version ".tar.gz"))
8495 (sha256
8496 (base32
8497 "0gsyyaqyh5r9zc0rhwpj5spyd6i4w2vj61h4nihgmmh0yyqvf3z5"))))
8498 (build-system haskell-build-system)
8499 (arguments
54a5fd07
TS
8500 '(#:extra-directories ("ncurses")
8501 #:phases
52915062
EF
8502 (modify-phases %standard-phases
8503 (add-before 'build 'fix-includes
8504 (lambda _
8505 (substitute* '("cbits/hsncurses-shim.h"
8506 "lib/UI/NCurses.chs"
8507 "lib/UI/NCurses/Enums.chs"
8508 "lib/UI/NCurses/Panel.chs")
8509 (("<ncursesw/") "<"))
8510 #t)))
8511 #:cabal-revision
8512 ("1"
8513 "1wfdy716s5p1sqp2gsg43x8wch2dxg0vmbbndlb2h3d8c9jzxnca")))
8514 (inputs `(("ncurses" ,ncurses)))
8515 (native-inputs `(("ghc-c2hs" ,ghc-c2hs)))
8516 (home-page "https://john-millikin.com/software/haskell-ncurses/")
8517 (synopsis "Modernised bindings to GNU ncurses")
8518 (description "GNU ncurses is a library for creating command-line application
8519with pseudo-graphical interfaces. This package is a nice, modern binding to GNU
8520ncurses.")
8521 (license license:gpl3)))
8522
dddbc90c
RV
8523(define-public ghc-network
8524 (package
8525 (name "ghc-network")
d4473202 8526 (version "2.8.0.1")
534d6caa 8527 (outputs '("out" "static" "doc"))
dddbc90c
RV
8528 (source
8529 (origin
8530 (method url-fetch)
8531 (uri (string-append
8532 "https://hackage.haskell.org/package/network/network-"
8533 version
8534 ".tar.gz"))
8535 (sha256
8536 (base32
d4473202 8537 "0im8k51rw3ahmr23ny10pshwbz09jfg0fdpam0hzf2hgxnzmvxb1"))))
dddbc90c
RV
8538 (build-system haskell-build-system)
8539 ;; The regression tests depend on an unpublished module.
8540 (arguments `(#:tests? #f))
8541 (native-inputs
8542 `(("ghc-hunit" ,ghc-hunit)
8543 ("ghc-doctest" ,ghc-doctest)
8544 ("ghc-test-framework" ,ghc-test-framework)
8545 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)))
8546 (home-page "https://github.com/haskell/network")
8547 (synopsis "Low-level networking interface")
8548 (description
8549 "This package provides a low-level networking interface.")
8550 (license license:bsd-3)))
4780db2c 8551
30eebbe6
TS
8552(define-public ghc-network-bsd
8553 (package
8554 (name "ghc-network-bsd")
8555 (version "2.8.0.0")
8556 (source
8557 (origin
8558 (method url-fetch)
8559 (uri (string-append "https://hackage.haskell.org/package/"
8560 "network-bsd/network-bsd-" version ".tar.gz"))
8561 (sha256
8562 (base32
8563 "0dfbwgrr28y6ypw7p1ppqg7v746qf14569q4xazj4ahdjw2xkpi5"))))
8564 (build-system haskell-build-system)
8565 (inputs
8566 `(("ghc-network" ,ghc-network)))
8567 (home-page "https://github.com/haskell/network-bsd")
8568 (synopsis "POSIX network database (<netdb.h>) API")
8569 (description "This package provides Haskell bindings to the the POSIX
8570network database (<netdb.h>) API.")
8571 (license license:bsd-3)))
8572
096781a1
TS
8573(define-public ghc-network-byte-order
8574 (package
8575 (name "ghc-network-byte-order")
8576 (version "0.1.1.1")
8577 (source
8578 (origin
8579 (method url-fetch)
8580 (uri (string-append "https://hackage.haskell.org/package/"
8581 "network-byte-order/network-byte-order-"
8582 version ".tar.gz"))
8583 (sha256
8584 (base32
8585 "19cs6157amcc925vwr92q1azwwzkbam5g0k70i6qi80fhpikh37c"))))
8586 (build-system haskell-build-system)
8587 (native-inputs
8588 `(("ghc-doctest" ,ghc-doctest)))
3ef91e15 8589 (home-page "https://hackage.haskell.org/package/network-byte-order")
096781a1
TS
8590 (synopsis "Network byte order utilities")
8591 (description "This library provides peek and poke functions for network
8592byte order.")
8593 (license license:bsd-3)))
8594
dddbc90c
RV
8595(define-public ghc-network-info
8596 (package
8597 (name "ghc-network-info")
8598 (version "0.2.0.10")
8599 (source
8600 (origin
8601 (method url-fetch)
8602 (uri (string-append "https://hackage.haskell.org/package/"
8603 "network-info-" version "/"
8604 "network-info-" version ".tar.gz"))
8605 (sha256
8606 (base32
8607 "0anmgzcpnz7nw3n6vq0r25m1s9l2svpwi83wza0lzkrlbnbzd02n"))))
8608 (build-system haskell-build-system)
8609 (home-page "https://github.com/jystic/network-info")
8610 (synopsis "Access the local computer's basic network configuration")
8611 (description "This Haskell library provides simple read-only access to the
8612local computer's networking configuration. It is currently capable of
8613getting a list of all the network interfaces and their respective
8614IPv4, IPv6 and MAC addresses.")
8615 (license license:bsd-3)))
8616
161e1019
CLW
8617(define-public ghc-network-multicast
8618 (package
8619 (name "ghc-network-multicast")
8620 (version "0.3.2")
8621 (source
8622 (origin
8623 (method url-fetch)
8624 (uri (string-append
8625 "https://hackage.haskell.org/package/network-multicast/network-multicast-"
8626 version
8627 ".tar.gz"))
8628 (sha256
8629 (base32
8630 "0whvi0pbwjy6dbwfdf9rv1j3yr3lcmfp3q7a8pwq63g537l4l2l3"))))
8631 (build-system haskell-build-system)
8632 (inputs
8633 `(("ghc-network" ,ghc-network)
8634 ("ghc-network-bsd" ,ghc-network-bsd)))
8635 (home-page
8636 "http://hackage.haskell.org/package/network-multicast")
8637 (synopsis "Simple multicast library for Haskell")
8638 (description
8639 "This package provides the Network.Multicast Haskell module for
8640sending UDP datagrams over multicast (class D) addresses.")
8641 ;; Note that this is technically under CC0 1.0 and Expat, though it's not
8642 ;; totally clear what the breakdown is. Since CC0 1.0 is effectively
8643 ;; "public domain with a minimal fallback license", figuring marking it
8644 ;; as effectively Expat is probably correct.
8645 (license license:expat)))
8646
dddbc90c
RV
8647(define-public ghc-network-uri
8648 (package
8649 (name "ghc-network-uri")
8650 (version "2.6.1.0")
534d6caa 8651 (outputs '("out" "static" "doc"))
dddbc90c
RV
8652 (source
8653 (origin
8654 (method url-fetch)
8655 (uri (string-append
8656 "https://hackage.haskell.org/package/network-uri/network-uri-"
8657 version
8658 ".tar.gz"))
8659 (sha256
8660 (base32
8661 "1w27zkvn39kjr9lmw9421y8w43h572ycsfafsb7kyvr3a4ihlgj2"))))
8662 (build-system haskell-build-system)
8663 (arguments
8664 `(#:tests? #f)) ; FIXME: currently missing libraries used for tests.
8665 (inputs
8666 `(("ghc-network" ,ghc-network)))
8667 (native-inputs
8668 `(("ghc-hunit" ,ghc-hunit)))
8669 (home-page
8670 "https://github.com/haskell/network-uri")
8671 (synopsis "Library for URI manipulation")
8672 (description "This package provides an URI manipulation interface. In
8673@code{network-2.6} the @code{Network.URI} module was split off from the
8674@code{network} package into this package.")
8675 (license license:bsd-3)))
8676
8677(define-public ghc-newtype-generics
8678 (package
8679 (name "ghc-newtype-generics")
c07e16dd 8680 (version "0.5.4")
dddbc90c
RV
8681 (source
8682 (origin
8683 (method url-fetch)
8684 (uri (string-append "https://hackage.haskell.org/package/"
8685 "newtype-generics/newtype-generics-"
8686 version ".tar.gz"))
8687 (sha256
8688 (base32
c07e16dd 8689 "0cprfg4n0z62cnix1qrbc79bfdd4s50b05fj9m9hk6vm1pc3szq0"))))
dddbc90c
RV
8690 (build-system haskell-build-system)
8691 (native-inputs
8692 `(("ghc-hspec" ,ghc-hspec)
8693 ("hspec-discover" ,hspec-discover)))
702a1012 8694 (home-page "https://github.com/sjakobi/newtype-generics")
dddbc90c
RV
8695 (synopsis "Typeclass and set of functions for working with newtypes")
8696 (description "The @code{Newtype} typeclass represents the packing and
8697unpacking of a newtype, and allows you to operate under that newtype with
8698functions such as @code{ala}. Generics support was added in version 0.4,
8699making this package a full replacement for the original newtype package,
8700and an alternative to newtype-th.")
8701 (license license:bsd-3)))
8702
6b652f5a
JS
8703(define-public ghc-non-negative
8704 (package
8705 (name "ghc-non-negative")
8706 (version "0.1.2")
8707 (source
8708 (origin
8709 (method url-fetch)
8710 (uri
8711 (string-append
8712 "https://hackage.haskell.org/package/non-negative/non-negative-"
8713 version ".tar.gz"))
8714 (sha256
8715 (base32
8716 "0f01q916dzkl1i0v15qrw9cviycki5g3fgi6x8gs45iwbzssq52n"))))
8717 (build-system haskell-build-system)
8718 (inputs
8719 `(("ghc-semigroups" ,ghc-semigroups)
8720 ("ghc-utility-ht" ,ghc-utility-ht)
8721 ("ghc-quickcheck" ,ghc-quickcheck)))
8722 (home-page "https://hackage.haskell.org/package/non-negative")
8723 (synopsis "Non-negative numbers class")
8724 (description "This library provides a class for non-negative numbers,
8725a wrapper which can turn any ordered numeric type into a member of that
8726class, and a lazy number type for non-negative numbers (a generalization
8727of Peano numbers).")
8728 (license license:gpl3+)))
8729
49bcca84
ASM
8730(define-public ghc-nonce
8731 (package
8732 (name "ghc-nonce")
8733 (version "1.0.7")
8734 (source
8735 (origin
8736 (method url-fetch)
8737 (uri (string-append
8738 "https://hackage.haskell.org/package/nonce/"
8739 "nonce-" version ".tar.gz"))
8740 (sha256
8741 (base32
8742 "1q9ph0aq51mvdvydnriqd12sfin36pfb8f588zgac1ybn8r64ksb"))))
8743 (build-system haskell-build-system)
8744 (inputs
8745 `(("ghc-base64-bytestring" ,ghc-base64-bytestring)
8746 ("ghc-entropy" ,ghc-entropy)
8747 ("ghc-unliftio" ,ghc-unliftio)
8748 ("ghc-unliftio-core" ,ghc-unliftio-core)))
8749 (home-page "https://github.com/prowdsponsor/nonce")
8750 (synopsis "Generate cryptographic nonces in Haskell")
8751 (description
8752 "A nonce is an arbitrary number used only once in a cryptographic
8753communication. This package contain helper functions for generating nonces.
8754There are many kinds of nonces used in different situations. It's not
8755guaranteed that by using the nonces from this package you won't have any
8756security issues. Please make sure that the nonces generated via this
8757package are usable on your design.")
8758 (license license:bsd-3)))
8759
194a82e6
TS
8760(define-public ghc-numeric-extras
8761 (package
8762 (name "ghc-numeric-extras")
8763 (version "0.1")
8764 (source
8765 (origin
8766 (method url-fetch)
8767 (uri (string-append "https://hackage.haskell.org/package/"
8768 "numeric-extras/numeric-extras-"
8769 version ".tar.gz"))
8770 (sha256
8771 (base32
8772 "1mk11c0gz1yjy5b8dvq6czfny57pln0bs7x28fz38qyr44872067"))))
8773 (build-system haskell-build-system)
8774 (home-page "https://github.com/ekmett/numeric-extras")
8775 (synopsis "Useful tools from the C standard library")
8776 (description "This library provides some useful tools from the C
8777standard library.")
8778 (license license:bsd-3)))
8779
dddbc90c
RV
8780(define-public ghc-objectname
8781 (package
8782 (name "ghc-objectname")
8783 (version "1.1.0.1")
8784 (source
8785 (origin
8786 (method url-fetch)
8787 (uri (string-append
8788 "https://hackage.haskell.org/package/ObjectName/ObjectName-"
8789 version
8790 ".tar.gz"))
8791 (sha256
8792 (base32
8793 "046jm94rmm46cicd31pl54vdvfjvhd9ffbfycy2lxzc0fliyznvj"))))
8794 (build-system haskell-build-system)
8795 (home-page "https://hackage.haskell.org/package/ObjectName")
8796 (synopsis "Helper library for Haskell OpenGL")
8797 (description "This tiny package contains the class ObjectName, which
8798corresponds to the general notion of explicitly handled identifiers for API
8799objects, e.g. a texture object name in OpenGL or a buffer object name in
8800OpenAL.")
8801 (license license:bsd-3)))
8802
8803(define-public ghc-old-locale
8804 (package
8805 (name "ghc-old-locale")
8806 (version "1.0.0.7")
8807 (source
8808 (origin
8809 (method url-fetch)
8810 (uri (string-append
8811 "https://hackage.haskell.org/package/old-locale/old-locale-"
8812 version
8813 ".tar.gz"))
8814 (sha256
8815 (base32 "0l3viphiszvz5wqzg7a45zp40grwlab941q5ay29iyw8p3v8pbyv"))))
8816 (build-system haskell-build-system)
8817 (arguments
8818 `(#:cabal-revision
8819 ("2" "04b9vn007hlvsrx4ksd3r8r3kbyaj2kvwxchdrmd4370qzi8p6gs")))
8820 (home-page "https://hackage.haskell.org/package/old-locale")
8821 (synopsis "Adapt to locale conventions")
8822 (description
8823 "This package provides the ability to adapt to locale conventions such as
8824date and time formats.")
8825 (license license:bsd-3)))
8826
8827(define-public ghc-old-time
8828 (package
8829 (name "ghc-old-time")
8830 (version "1.1.0.3")
8831 (source
8832 (origin
8833 (method url-fetch)
8834 (uri (string-append
8835 "https://hackage.haskell.org/package/old-time/old-time-"
8836 version
8837 ".tar.gz"))
8838 (sha256
8839 (base32
8840 "1h9b26s3kfh2k0ih4383w90ibji6n0iwamxp6rfp2lbq1y5ibjqw"))))
8841 (build-system haskell-build-system)
8842 (arguments
8843 `(#:cabal-revision
8844 ("2" "1j6ln1dkvhdvnwl33bp0xf9lhc4sybqk0aw42p8cq81xwwzbn7y9")))
8845 (inputs
8846 `(("ghc-old-locale" ,ghc-old-locale)))
8847 (home-page "https://hackage.haskell.org/package/old-time")
8848 (synopsis "Time compatibility library for Haskell")
8849 (description "Old-time is a package for backwards compatibility with the
8850old @code{time} library. For new projects, the newer
8851@uref{https://hackage.haskell.org/package/time, time library} is recommended.")
8852 (license license:bsd-3)))
8853
21c21133
CH
8854(define-public ghc-only
8855 (package
8856 (name "ghc-only")
8857 (version "0.1")
8858 (source
8859 (origin
8860 (method url-fetch)
8861 (uri (string-append
8862 "https://hackage.haskell.org/package/Only/Only-"
8863 version
8864 ".tar.gz"))
8865 (sha256
8866 (base32
8867 "0rdj3a629fk2vp121jq8mf2smkblrz5w3cxhlsyx6my2x29s2ymb"))))
8868 (build-system haskell-build-system)
8869 (arguments
8870 `(#:cabal-revision
8871 ("1"
8872 "1ahk7p34kmh041mz7lyc10nhcxgv2i4z8nvzxvqm2x34gslmsbzr")))
8873 (home-page "https://hackage.haskell.org/package/Only")
8874 (synopsis "The 1-tuple type or single-value collection")
8875 (description
8876 "This package provides a canonical anonymous 1-tuple type missing from
8877Haskell for attaching typeclass instances.
8878
8879There is also the @url{https://hackage.haskell.org/package/OneTuple, OneTuple
8880package} which by using a boxed @code{data}-type provides a 1-tuple type which
8881has laziness properties which are more faithful to the ones of Haskell's
8882native tuples; whereas the primary purpose of @code{Only} is to provide the
8883traditionally so named type-wrapper for attaching typeclass instances.")
8884 (license license:bsd-3)))
8885
dddbc90c
RV
8886(define-public ghc-opengl
8887 (package
8888 (name "ghc-opengl")
79a06910 8889 (version "3.0.3.0")
dddbc90c
RV
8890 (source
8891 (origin
8892 (method url-fetch)
8893 (uri (string-append
8894 "https://hackage.haskell.org/package/OpenGL/OpenGL-"
8895 version
8896 ".tar.gz"))
8897 (sha256
8898 (base32
79a06910 8899 "069fg8jcxqq2z9iikynd8vi3jxm2b5y3qywdh4bdviyzab3zy1as"))))
dddbc90c 8900 (build-system haskell-build-system)
79a06910
TS
8901 (arguments
8902 `(#:cabal-revision
8903 ("1" "1748mrb6r9mpf5jbrx436lwbg8w6dadyy8dhxw2dwnrj5z7zf741")))
dddbc90c
RV
8904 (inputs
8905 `(("ghc-objectname" ,ghc-objectname)
8906 ("ghc-gluraw" ,ghc-gluraw)
8907 ("ghc-statevar" ,ghc-statevar)
8908 ("ghc-openglraw" ,ghc-openglraw)))
228d2901 8909 (home-page "https://wiki.haskell.org/Opengl")
dddbc90c
RV
8910 (synopsis "Haskell bindings for the OpenGL graphics system")
8911 (description "This package provides Haskell bindings for the OpenGL
8912graphics system (GL, version 4.5) and its accompanying utility library (GLU,
8913version 1.3).")
8914 (license license:bsd-3)))
8915
8916(define-public ghc-openglraw
8917 (package
8918 (name "ghc-openglraw")
15ebc815 8919 (version "3.3.3.0")
dddbc90c
RV
8920 (source
8921 (origin
8922 (method url-fetch)
8923 (uri (string-append
8924 "https://hackage.haskell.org/package/OpenGLRaw/OpenGLRaw-"
8925 version
8926 ".tar.gz"))
8927 (sha256
8928 (base32
15ebc815 8929 "0zgllb4bcash2i2cispa3j565aw3dpxs41ghmhpvyvi4a6xmyldx"))))
dddbc90c 8930 (build-system haskell-build-system)
54a5fd07
TS
8931 (arguments
8932 `(#:extra-directories ("glu")))
dddbc90c
RV
8933 (inputs
8934 `(("ghc-half" ,ghc-half)
8935 ("ghc-fixed" ,ghc-fixed)
8936 ("glu" ,glu)))
228d2901 8937 (home-page "https://wiki.haskell.org/Opengl")
dddbc90c
RV
8938 (synopsis "Raw Haskell bindings for the OpenGL graphics system")
8939 (description "OpenGLRaw is a raw Haskell binding for the OpenGL 4.5
8940graphics system and lots of OpenGL extensions. It is basically a 1:1 mapping
8941of OpenGL's C API, intended as a basis for a nicer interface. OpenGLRaw
8942offers access to all necessary functions, tokens and types plus a general
8943facility for loading extension entries. The module hierarchy closely mirrors
8944the naming structure of the OpenGL extensions, making it easy to find the
8945right module to import. All API entries are loaded dynamically, so no special
8946C header files are needed for building this package. If an API entry is not
8947found at runtime, a userError is thrown.")
8948 (license license:bsd-3)))
8949
8950(define-public ghc-operational
8951 (package
8952 (name "ghc-operational")
8953 (version "0.2.3.5")
8954 (source
8955 (origin
8956 (method url-fetch)
8957 (uri (string-append "https://hackage.haskell.org/package/operational/"
8958 "operational-" version ".tar.gz"))
8959 (sha256
8960 (base32
8961 "1x2abg2q9d26h1vzj40r6k7k3gqgappbs4g9d853vvg77837km4i"))))
8962 (build-system haskell-build-system)
8963 (inputs
8964 `(("ghc-random" ,ghc-random)))
8965 (home-page "http://wiki.haskell.org/Operational")
8966 (synopsis "Implementation of difficult monads made easy with operational semantics")
8967 (description
8968 "This library makes it easy to implement monads with tricky control
8969flow. This is useful for: writing web applications in a sequential style,
8970programming games with a uniform interface for human and AI players and easy
8971replay capababilities, implementing fast parser monads, designing monadic
8972DSLs, etc.")
8973 (license license:bsd-3)))
8974
6f1477d2
JS
8975(define-public ghc-optional-args
8976 (package
8977 (name "ghc-optional-args")
8978 (version "1.0.2")
8979 (source
8980 (origin
8981 (method url-fetch)
8982 (uri (string-append
8983 "mirror://hackage/package/optional-args/optional-args-"
8984 version
8985 ".tar.gz"))
8986 (sha256
8987 (base32
8988 "1r5hhn6xvc01grggxdyy48daibwzi0aikgidq0ahpa6bfynm8d1f"))))
8989 (build-system haskell-build-system)
8990 (home-page
8991 "http://hackage.haskell.org/package/optional-args")
8992 (synopsis "Optional function arguments")
8993 (description
8994 "This library provides a type for specifying @code{Optional} function
8995arguments.")
8996 (license license:bsd-3)))
8997
dddbc90c
RV
8998(define-public ghc-options
8999 (package
9000 (name "ghc-options")
9001 (version "1.2.1.1")
9002 (source
9003 (origin
9004 (method url-fetch)
9005 (uri (string-append
9006 "https://hackage.haskell.org/package/options/options-"
9007 version ".tar.gz"))
9008 (sha256
9009 (base32
9010 "0qjs0v1ny52w51n5582d4z8wy9h6n0zw1xb5dh686ff5wadflgi8"))))
9011 (build-system haskell-build-system)
24cf2a8b
TS
9012 (arguments
9013 `(#:phases
9014 (modify-phases %standard-phases
9015 (add-before 'configure 'update-constraints
9016 (lambda _
9017 (substitute* "options.cabal"
9018 (("chell >= 0\\.4 && < 0\\.5") "chell >= 0.4 && < 0.6"))
9019 #t)))))
dddbc90c
RV
9020 (inputs
9021 `(("ghc-monads-tf" ,ghc-monads-tf)
9022 ("ghc-chell" ,ghc-chell)
9023 ("ghc-chell-quickcheck" ,ghc-chell-quickcheck)))
9024 (home-page "https://john-millikin.com/software/haskell-options/")
9025 (synopsis "Powerful and easy-to-use command-line option parser")
9026 (description
9027 "The @code{options} package lets library and application developers
9028easily work with command-line options.")
9029 (license license:expat)))
9030
9031;; See ghc-system-filepath-bootstrap, chell and chell-quickcheck are required for tests.
9032(define ghc-options-bootstrap
9033 (package
9034 (name "ghc-options-bootstrap")
9035 (version "1.2.1.1")
9036 (source
9037 (origin
9038 (method url-fetch)
9039 (uri (string-append
9040 "https://hackage.haskell.org/package/options/options-"
9041 version ".tar.gz"))
9042 (sha256
9043 (base32
9044 "0qjs0v1ny52w51n5582d4z8wy9h6n0zw1xb5dh686ff5wadflgi8"))))
9045 (build-system haskell-build-system)
9046 (arguments
9047 `(#:tests? #f))
9048 (inputs
9049 `(("ghc-monads-tf" ,ghc-monads-tf)))
9050 (home-page "https://john-millikin.com/software/haskell-options/")
9051 (synopsis "Powerful and easy-to-use command-line option parser")
9052 (description
9053 "The @code{options} package lets library and application developers
9054easily work with command-line options.")
9055 (license license:expat)))
9056
9057
9058(define-public ghc-optparse-applicative
9059 (package
9060 (name "ghc-optparse-applicative")
74bf6965 9061 (version "0.14.3.0")
dddbc90c
RV
9062 (source
9063 (origin
9064 (method url-fetch)
9065 (uri (string-append
9066 "https://hackage.haskell.org/package/optparse-applicative"
9067 "/optparse-applicative-" version ".tar.gz"))
9068 (sha256
9069 (base32
74bf6965 9070 "0qvn1s7jwrabbpmqmh6d6iafln3v3h9ddmxj2y4m0njmzq166ivj"))))
dddbc90c 9071 (build-system haskell-build-system)
74bf6965
TS
9072 (arguments
9073 `(#:cabal-revision
9074 ("2" "1a08dqjly1xy730f6jf45frr8g8gap0n1vg9b0mpzpydv0kgzmrp")))
dddbc90c
RV
9075 (inputs
9076 `(("ghc-transformers-compat" ,ghc-transformers-compat)
9077 ("ghc-ansi-wl-pprint" ,ghc-ansi-wl-pprint)))
9078 (native-inputs
9079 `(("ghc-quickcheck" ,ghc-quickcheck)))
9080 (home-page "https://github.com/pcapriotti/optparse-applicative")
9081 (synopsis "Utilities and combinators for parsing command line options")
9082 (description "This package provides utilities and combinators for parsing
9083command line options in Haskell.")
9084 (license license:bsd-3)))
9085
d56c8120
NG
9086(define-public ghc-jira-wiki-markup
9087 (package
9088 (name "ghc-jira-wiki-markup")
9089 (version "1.0.0")
9090 (source
9091 (origin
9092 (method url-fetch)
9093 (uri (string-append
9094 "https://hackage.haskell.org/package/jira-wiki-markup/"
9095 "jira-wiki-markup-" version ".tar.gz"))
9096 (sha256
9097 (base32 "1sl2jjcsqg61si33mxjwpf8zdn56kbbgcwqqqzbgifx2qbv4wmf8"))))
9098 (build-system haskell-build-system)
9099 (native-inputs
9100 `(("ghc-tasty" ,ghc-tasty)
9101 ("ghc-tasty-hunit" ,ghc-tasty-hunit)))
9102 (home-page "https://github.com/tarleb/jira-wiki-markup")
9103 (synopsis "Handle Jira wiki markup")
9104 (description
9105 "Parse jira wiki text into an abstract syntax tree for easy transformation
9106to other formats.")
9107 (license license:expat)))
9108
20690771
NG
9109(define-public ghc-emojis
9110 (package
9111 (name "ghc-emojis")
9112 (version "0.1")
9113 (source
9114 (origin
9115 (method url-fetch)
9116 (uri (string-append
9117 "https://hackage.haskell.org/package/emojis/"
9118 "emojis-" version ".tar.gz"))
9119 (sha256
9120 (base32 "1c6zkj9gmk1y90gbdrn50hyp7mw1mggzhnr2khqd728ryipw60ss"))))
9121 (build-system haskell-build-system)
9122 (native-inputs
9123 `(("ghc-hunit" ,ghc-hunit)))
9124 (home-page "https://github.com/jgm/emojis#readme")
9125 (synopsis "Conversion between emoji characters and their names.")
9126 (description
9127 "This package provides functions for converting emoji names to emoji
9128characters and vice versa.
9129
9130How does it differ from the @code{emoji} package?
9131@itemize
9132@item It supports a fuller range of emojis, including all those supported by
9133GitHub
9134@item It supports lookup of emoji aliases from emoji
9135@item It uses Text rather than String
9136@item It has a lighter dependency footprint: in particular, it does not
9137require aeson
9138@item It does not require TemplateHaskell
9139@end itemize")
9140 (license license:bsd-3)))
9141
e90a06fc
NG
9142(define-public ghc-text-conversions
9143 (package
9144 (name "ghc-text-conversions")
9145 (version "0.3.0")
9146 (source
9147 (origin
9148 (method url-fetch)
9149 (uri (string-append
9150 "https://hackage.haskell.org/package/text-conversions/"
9151 "text-conversions-" version ".tar.gz"))
9152 (sha256
9153 (base32 "089c56vdj9xysqfr1hnvbnrghlg83q6w10xk02gflpsidcpvwmhp"))))
9154 (build-system haskell-build-system)
9155 (inputs
9156 `(("ghc-base16-bytestring" ,ghc-base16-bytestring)
9157 ("ghc-base64-bytestring" ,ghc-base64-bytestring)
9158 ("ghc-errors" ,ghc-errors)))
9159 (native-inputs
9160 `(("ghc-hspec" ,ghc-hspec)
27b09f3a 9161 ("hspec-discover" ,hspec-discover)))
e90a06fc
NG
9162 (home-page "https://github.com/cjdev/text-conversions#readme")
9163 (synopsis "Safe conversions between textual types")
9164 (description "Safe conversions between textual types")
9165 (license license:isc)))
9166
aeb94a1f
CH
9167(define-public ghc-text-short
9168 (package
9169 (name "ghc-text-short")
9170 (version "0.1.3")
9171 (source
9172 (origin
9173 (method url-fetch)
9174 (uri (string-append
9175 "https://hackage.haskell.org/package/text-short/text-short-"
9176 version
9177 ".tar.gz"))
9178 (sha256
9179 (base32
9180 "0xyrxlb602z8bc9sr2y1fag0x56a20yj5qrkvy7iwc6hnznrynxz"))))
9181 (build-system haskell-build-system)
9182 (inputs `(("ghc-hashable" ,ghc-hashable)))
9183 (native-inputs
9184 `(("ghc-tasty" ,ghc-tasty)
9185 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
9186 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
9187 ("ghc-quickcheck-instances"
9188 ,ghc-quickcheck-instances)))
9189 (arguments
9190 `(#:cabal-revision
9191 ("2"
9192 "17cb7p0qywf2dsrq3g8qb3ssknd9wl5k0nc2pxz9gc3l8rxpkw51")))
9193 (home-page "https://hackage.haskell.org/package/text-short")
9194 (synopsis "Memory-efficient representation of Unicode text strings")
9195 (description "This package provides the @code{ShortText} type which
2faef3cb 9196is suitable for keeping many short strings in memory. This is similar
aeb94a1f
CH
9197to how @code{ShortByteString} relates to @code{ByteString}.
9198
9199The main difference between @code{Text} and @code{ShortText} is that
9200@code{ShortText} uses UTF-8 instead of UTF-16 internally and also doesn't
9201support zero-copy slicing (thereby saving 2 words). Consequently, the memory
9202footprint of a (boxed) @{ShortText} value is 4 words (2 words when unboxed)
9203plus the length of the UTF-8 encoded payload.")
9204 (license license:bsd-3)))
9205
ba7cbae3
NG
9206(define-public ghc-doclayout
9207 (package
9208 (name "ghc-doclayout")
9209 (version "0.3")
9210 (source
9211 (origin
9212 (method url-fetch)
9213 (uri (string-append
9214 "https://hackage.haskell.org/package/doclayout/"
9215 "doclayout-" version ".tar.gz"))
9216 (sha256
9217 (base32 "1wmnwq28jcyd6c80srivsnd5znmyl9sgmwwnlk2crwiiwqadbal7"))))
9218 (build-system haskell-build-system)
9219 (inputs
9220 `(("ghc-safe" ,ghc-safe)))
9221 (native-inputs
9222 `(("ghc-tasty" ,ghc-tasty)
9223 ("ghc-tasty-golden" ,ghc-tasty-golden)
9224 ("ghc-tasty-hunit" ,ghc-tasty-hunit)))
9225 (home-page "https://github.com/jgm/doclayout")
9226 (synopsis "Pretty-printing library for laying out text documents")
9227 (description
9228 "doclayout is a pretty-printing library for laying out text documents,
9229with several features not present in pretty-printing libraries designed for
9230code. It was designed for use in @code{Pandoc}.")
9231 (license license:bsd-3)))
9232
dddbc90c
RV
9233(define-public ghc-pandoc
9234 (package
9235 (name "ghc-pandoc")
d9b1567a 9236 (version "2.7.3")
dddbc90c
RV
9237 (source
9238 (origin
9239 (method url-fetch)
9240 (uri (string-append "https://hackage.haskell.org/package/pandoc/pandoc-"
9241 version ".tar.gz"))
d9b1567a
TS
9242 (patches (search-patches "ghc-pandoc-fix-html-tests.patch"
9243 "ghc-pandoc-fix-latex-test.patch"))
dddbc90c
RV
9244 (sha256
9245 (base32
d9b1567a 9246 "0dpjrr40h54cljzhvixyym07z792a9izg6b9dmqpjlgcg4rj0xx8"))))
dddbc90c 9247 (build-system haskell-build-system)
c18e4f3e
RW
9248 (arguments
9249 `(#:phases
9250 (modify-phases %standard-phases
9251 (add-after 'unpack 'find-library
9252 (lambda _
9253 (substitute* "test/Tests/Command.hs"
9254 (("= dynlibEnv")
9255 (format #f "= [(\"LD_LIBRARY_PATH\" , \"~a/dist/build\")]"
9256 (getcwd))))
9257 #t)))))
9258 (outputs '("out" "static" "doc"))
dddbc90c
RV
9259 (inputs
9260 `(("ghc-aeson" ,ghc-aeson)
9261 ("ghc-aeson-pretty" ,ghc-aeson-pretty)
9262 ("ghc-base64-bytestring" ,ghc-base64-bytestring)
9263 ("ghc-blaze-html" ,ghc-blaze-html)
9264 ("ghc-blaze-markup" ,ghc-blaze-markup)
9265 ("ghc-cmark-gfm" ,ghc-cmark-gfm)
9266 ("ghc-data-default" ,ghc-data-default)
dddbc90c
RV
9267 ("ghc-diff" ,ghc-diff)
9268 ("ghc-doctemplates" ,ghc-doctemplates)
9269 ("ghc-executable-path" ,ghc-executable-path)
9270 ("ghc-glob" ,ghc-glob)
9271 ("ghc-haddock-library" ,ghc-haddock-library)
9272 ("ghc-hslua" ,ghc-hslua)
d9b1567a 9273 ("ghc-hslua-module-system" ,ghc-hslua-module-system)
dddbc90c 9274 ("ghc-hslua-module-text" ,ghc-hslua-module-text)
d9b1567a 9275 ("ghc-hsyaml" ,ghc-hsyaml)
dddbc90c
RV
9276 ("ghc-http" ,ghc-http)
9277 ("ghc-http-client" ,ghc-http-client)
9278 ("ghc-http-client-tls" ,ghc-http-client-tls)
9279 ("ghc-http-types" ,ghc-http-types)
d9b1567a 9280 ("ghc-ipynb" ,ghc-ipynb)
dddbc90c
RV
9281 ("ghc-juicypixels" ,ghc-juicypixels)
9282 ("ghc-network" ,ghc-network)
9283 ("ghc-network-uri" ,ghc-network-uri)
dddbc90c
RV
9284 ("ghc-pandoc-types" ,ghc-pandoc-types)
9285 ("ghc-random" ,ghc-random)
9286 ("ghc-scientific" ,ghc-scientific)
9287 ("ghc-sha" ,ghc-sha)
9288 ("ghc-skylighting" ,ghc-skylighting)
9289 ("ghc-split" ,ghc-split)
9290 ("ghc-syb" ,ghc-syb)
9291 ("ghc-tagsoup" ,ghc-tagsoup)
9292 ("ghc-temporary" ,ghc-temporary)
9293 ("ghc-texmath" ,ghc-texmath)
d9b1567a 9294 ("ghc-unicode-transforms" ,ghc-unicode-transforms)
dddbc90c
RV
9295 ("ghc-unordered-containers" ,ghc-unordered-containers)
9296 ("ghc-vector" ,ghc-vector)
9297 ("ghc-xml" ,ghc-xml)
dddbc90c
RV
9298 ("ghc-zip-archive" ,ghc-zip-archive)
9299 ("ghc-zlib" ,ghc-zlib)))
9300 (native-inputs
9301 `(("ghc-tasty" ,ghc-tasty)
9302 ("ghc-tasty-golden" ,ghc-tasty-golden)
9303 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
d9b1567a 9304 ("ghc-tasty-lua" ,ghc-tasty-lua)
dddbc90c
RV
9305 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
9306 ("ghc-quickcheck" ,ghc-quickcheck)
9307 ("ghc-hunit" ,ghc-hunit)))
9308 (home-page "https://pandoc.org")
9309 (synopsis "Conversion between markup formats")
9310 (description
9311 "Pandoc is a Haskell library for converting from one markup format to
9312another, and a command-line tool that uses this library. It can read and
9313write Markdown and (subsets of) other formats, such as HTML, reStructuredText,
9314LaTeX, DocBook, and many more.
9315
9316Pandoc extends standard Markdown syntax with footnotes, embedded LaTeX,
9317definition lists, tables, and other features. A compatibility mode is
9318provided for those who need a drop-in replacement for Markdown.pl.")
9319 (license license:gpl2+)))
9320
d4e4a382
RW
9321(define-public pandoc
9322 (package
9323 (inherit ghc-pandoc)
9324 (name "pandoc")
9325 (arguments
9326 `(#:configure-flags
9327 (list "-fstatic"
9328 ;; Do not build trypandoc; this is the default but it's better to
9329 ;; be explicit.
9330 "-f-trypandoc"
9331 ;; TODO: Without these we cannot link the Haskell libraries
9332 ;; statically. It would be nice if we could also build the
9333 ;; shared libraries.
9334 "--disable-shared"
9335 "--disable-executable-dynamic"
9336 ;; That's where we place all static libraries
9337 "--extra-lib-dirs=static-libs/"
9338 "--ghc-option=-static")
9339 #:modules ((guix build haskell-build-system)
9340 (guix build utils)
9341 (ice-9 match)
9342 (srfi srfi-1))
9343 #:phases
9344 (modify-phases %standard-phases
9345 (add-after 'unpack 'create-simple-paths-module
9346 (lambda* (#:key outputs #:allow-other-keys)
9347 (call-with-output-file "Paths_pandoc.hs"
9348 (lambda (port)
9349 (format port "\
9350{-# LANGUAGE CPP #-}
9351{-# LANGUAGE NoRebindableSyntax #-}
9352{-# OPTIONS_GHC -fno-warn-missing-import-lists #-}
9353module Paths_pandoc (version,getDataDir,getDataFileName) where
9354import Prelude
9355import Data.Version (Version(..))
9356import System.Info
9357version :: Version
9358version = Version [~a] []
9359
9360datadir :: FilePath
9361datadir = \"~a/share/\" ++
9362 arch ++ \"-\" ++
9363 os ++ \"-\" ++
9364 compilerName ++ \"-~a/pandoc-~a\"
9365
9366getDataDir :: IO FilePath
9367getDataDir = return datadir
9368
9369getDataFileName :: FilePath -> IO FilePath
9370getDataFileName name = do
9371 dir <- getDataDir
9372 return (dir ++ \"/\" ++ name)
9373"
9374 (string-map (lambda (chr) (if (eq? chr #\.) #\, chr))
9375 ,(package-version ghc-pandoc))
9376 (assoc-ref outputs "out")
9377 ,(package-version ghc)
9378 ,(package-version ghc-pandoc))))
9379 #t))
9380 (add-after 'unpack 'prepare-static-libraries
9381 (lambda* (#:key inputs #:allow-other-keys)
9382 (mkdir-p (string-append (getcwd) "/static-libs"))
9383 (for-each
9384 (lambda (input)
9385 (when (or (string-prefix? "static-" (car input))
9386 (string-prefix? "ghc" (car input)))
9387 (match (find-files (cdr input) "\\.a$")
9388 ((and (first . rest) libs)
9389 (for-each (lambda (lib)
9390 (let ((target (string-append (getcwd) "/static-libs/"
9391 (basename lib))))
9392 (unless (file-exists? target)
9393 (symlink first target))))
9394 libs))
9395 (_ #f))))
9396 inputs)
9397 #t))
9398 (delete 'check)
9399 (add-after 'install 'post-install-check
9400 (assoc-ref %standard-phases 'check)))))
9401 (outputs '("out" "lib" "static" "doc"))
9402 (inputs
9403 (let* ((direct-inputs (package-inputs ghc-pandoc))
9404 (all-static-inputs
9405 (map (lambda (pkg)
9406 (list (string-append "static-" (package-name pkg))
9407 pkg "static"))
9408 (delete-duplicates
9409 (append (map cadr direct-inputs)
9410 (filter (lambda (pkg)
9411 (string-prefix? "ghc-" (package-name pkg)))
9412 (package-closure
9413 (map cadr direct-inputs))))))))
9414 `(("zlib:static" ,zlib "static")
9415 ,@all-static-inputs
9416 ,@direct-inputs)))
9417 (native-inputs
9418 (let* ((direct-inputs (package-native-inputs ghc-pandoc))
9419 (all-static-inputs
9420 (map (lambda (pkg)
9421 (list (string-append "static-" (package-name pkg))
9422 pkg "static"))
9423 (delete-duplicates
9424 (append (map cadr direct-inputs)
9425 (filter (lambda (pkg)
9426 (string-prefix? "ghc-" (package-name pkg)))
9427 (package-closure
9428 (map cadr direct-inputs))))))))
9429 `(,@all-static-inputs
9430 ,@direct-inputs)))))
9431
dddbc90c
RV
9432(define-public ghc-pandoc-citeproc
9433 (package
9434 (name "ghc-pandoc-citeproc")
2da02d09 9435 (version "0.16.2")
dddbc90c
RV
9436 (source
9437 (origin
9438 (method url-fetch)
9439 (uri (string-append "https://hackage.haskell.org/package/"
9440 "pandoc-citeproc/pandoc-citeproc-"
9441 version ".tar.gz"))
9442 (sha256
9443 (base32
2da02d09 9444 "15mm17awgi1b5yazwhr5nh8b59qml1qk6pz6gpyijks70fq2arsv"))))
dddbc90c
RV
9445 (build-system haskell-build-system)
9446 (arguments
9447 `(#:phases
9448 (modify-phases %standard-phases
9449 ;; Many YAML tests (44) are failing do to changes in ghc-yaml:
9450 ;; <https://github.com/jgm/pandoc-citeproc/issues/342>.
9451 (add-before 'configure 'patch-tests
9452 (lambda _
9453 (substitute* "tests/test-pandoc-citeproc.hs"
9454 (("let allTests = citeprocTests \\+\\+ biblio2yamlTests")
9455 "let allTests = citeprocTests"))))
9456 ;; Tests need to be run after installation.
9457 (delete 'check)
9458 (add-after 'install 'post-install-check
9459 (assoc-ref %standard-phases 'check)))))
9460 (inputs
9461 `(("ghc-pandoc-types" ,ghc-pandoc-types)
9462 ("ghc-pandoc" ,ghc-pandoc)
9463 ("ghc-tagsoup" ,ghc-tagsoup)
9464 ("ghc-aeson" ,ghc-aeson)
9465 ("ghc-vector" ,ghc-vector)
9466 ("ghc-xml-conduit" ,ghc-xml-conduit)
9467 ("ghc-unordered-containers" ,ghc-unordered-containers)
9468 ("ghc-data-default" ,ghc-data-default)
9469 ("ghc-setenv" ,ghc-setenv)
9470 ("ghc-split" ,ghc-split)
9471 ("ghc-yaml" ,ghc-yaml)
9472 ("ghc-hs-bibutils" ,ghc-hs-bibutils)
9473 ("ghc-rfc5051" ,ghc-rfc5051)
9474 ("ghc-syb" ,ghc-syb)
9475 ("ghc-old-locale" ,ghc-old-locale)
9476 ("ghc-aeson-pretty" ,ghc-aeson-pretty)
9477 ("ghc-attoparsec" ,ghc-attoparsec)
9478 ("ghc-temporary" ,ghc-temporary)))
9479 (home-page "https://github.com/jgm/pandoc-citeproc")
9480 (synopsis "Library for using pandoc with citeproc")
9481 (description
9482 "The @code{pandoc-citeproc} library exports functions for using the
9483citeproc system with pandoc. It relies on @code{citeproc-hs}, a library for
9484rendering bibliographic reference citations into a variety of styles using a
9485macro language called @dfn{Citation Style Language} (CSL). This package also
9486contains an executable @code{pandoc-citeproc}, which works as a pandoc filter,
9487and also has a mode for converting bibliographic databases a YAML format
9488suitable for inclusion in pandoc YAML metadata.")
9489 (license license:bsd-3)))
9490
e380ef14
RW
9491(define-public pandoc-citeproc
9492 (package (inherit ghc-pandoc-citeproc)
9493 (name "pandoc-citeproc")
9494 (arguments
9495 `(#:configure-flags
9496 (list "-fstatic"
9497 "--disable-shared"
9498 "--disable-executable-dynamic"
9499 ;; That's where we place all static libraries
9500 "--extra-lib-dirs=static-libs/"
9501 "--ghc-option=-static")
9502 #:modules ((guix build haskell-build-system)
9503 (guix build utils)
9504 (ice-9 match)
9505 (srfi srfi-1))
9506 #:phases
9507 (modify-phases %standard-phases
9508 ;; Many YAML tests (44) are failing do to changes in ghc-yaml:
9509 ;; <https://github.com/jgm/pandoc-citeproc/issues/342>.
9510 (add-before 'configure 'patch-tests
9511 (lambda _
9512 (substitute* "tests/test-pandoc-citeproc.hs"
9513 (("let allTests = citeprocTests \\+\\+ biblio2yamlTests")
9514 "let allTests = citeprocTests"))))
9515 ;; Tests need to be run after installation.
9516 (delete 'check)
9517 (add-after 'install 'post-install-check
9518 (assoc-ref %standard-phases 'check))
9519 (add-after 'unpack 'create-simple-paths-module
9520 (lambda* (#:key outputs #:allow-other-keys)
9521 (call-with-output-file "Paths_pandoc_citeproc.hs"
9522 (lambda (port)
9523 (format port "\
9524{-# LANGUAGE CPP #-}
9525{-# LANGUAGE NoRebindableSyntax #-}
9526{-# OPTIONS_GHC -fno-warn-missing-import-lists #-}
9527module Paths_pandoc_citeproc (version,getDataFileName) where
9528import Prelude
9529import Data.Version (Version(..))
9530import System.Info
9531version :: Version
9532version = Version [~a] []
9533
9534datadir :: FilePath
9535datadir = \"~a/share/\" ++
9536 arch ++ \"-\" ++
9537 os ++ \"-\" ++
9538 compilerName ++ \"-~a/pandoc-citeproc-~a\"
9539
9540getDataDir :: IO FilePath
9541getDataDir = return datadir
9542
9543getDataFileName :: FilePath -> IO FilePath
9544getDataFileName name = do
9545 dir <- getDataDir
9546 return (dir ++ \"/\" ++ name)
9547"
9548 (string-map (lambda (chr) (if (eq? chr #\.) #\, chr))
9549 ,(package-version ghc-pandoc-citeproc))
9550 (assoc-ref outputs "out")
9551 ,(package-version ghc)
9552 ,(package-version ghc-pandoc-citeproc))))
9553 #t))
9554 (add-after 'unpack 'prepare-static-libraries
9555 (lambda* (#:key inputs #:allow-other-keys)
9556 (mkdir-p (string-append (getcwd) "/static-libs"))
9557 (for-each
9558 (lambda (input)
9559 (when (or (string-prefix? "static-" (car input))
9560 (string-prefix? "ghc" (car input)))
9561 (match (find-files (cdr input) "\\.a$")
9562 ((and (first . rest) libs)
9563 (for-each (lambda (lib)
9564 (let ((target (string-append (getcwd) "/static-libs/"
9565 (basename lib))))
9566 (unless (file-exists? target)
9567 (symlink first target))))
9568 libs))
9569 (_ #f))))
9570 inputs)
9571 #t)))))
9572 (inputs
9573 (let* ((direct-inputs
9574 (cons `("ghc-pandoc" ,pandoc)
9575 (alist-delete "ghc-pandoc"
9576 (package-inputs ghc-pandoc-citeproc))))
9577 (all-static-inputs
9578 (map (lambda (pkg)
9579 (list (string-append "static-" (package-name pkg))
9580 pkg "static"))
9581 (delete-duplicates
9582 (append (map cadr direct-inputs)
9583 (filter (lambda (pkg)
9584 (string-prefix? "ghc-" (package-name pkg)))
9585 (package-closure
9586 (map cadr direct-inputs))))))))
9587 `(("zlib:static" ,zlib "static")
9588 ("pandoc" ,pandoc "lib")
9589 ,@all-static-inputs
9590 ,@direct-inputs)))
9591 (synopsis "Pandoc filter for bibliographic references")))
9592
dddbc90c
RV
9593(define-public ghc-pandoc-types
9594 (package
9595 (name "ghc-pandoc-types")
0eaa88c8 9596 (version "1.17.6.1")
dddbc90c
RV
9597 (source (origin
9598 (method url-fetch)
9599 (uri (string-append "https://hackage.haskell.org/package/"
9600 "pandoc-types/pandoc-types-"
9601 version ".tar.gz"))
9602 (sha256
9603 (base32
0eaa88c8 9604 "1d6ygq991ddria71l7hg9yd7lq94sjy4m71rdws1v8hq943c4d0q"))))
dddbc90c 9605 (build-system haskell-build-system)
c7891956
RW
9606 (arguments
9607 `(#:phases
9608 (modify-phases %standard-phases
9609 ;; None of the directory names are actually used. By generating a
9610 ;; simpler module without references to store names we avoid
9611 ;; introducing references in the pandoc executable.
9612 (add-after 'unpack 'create-simple-paths-module
9613 (lambda _
9614 (call-with-output-file "Paths_pandoc_types.hs"
9615 (lambda (port)
9616 (format port "\
9617{-# LANGUAGE CPP #-}
9618{-# LANGUAGE NoRebindableSyntax #-}
9619{-# OPTIONS_GHC -fno-warn-missing-import-lists #-}
9620module Paths_pandoc_types (version) where
9621import Data.Version (Version(..))
9622version :: Version
9623version = Version [~a] []
9624" (string-map (lambda (chr) (if (eq? chr #\.) #\, chr)) ,version))))
9625 #t)))))
dddbc90c
RV
9626 (inputs
9627 `(("ghc-syb" ,ghc-syb)
9628 ("ghc-aeson" ,ghc-aeson)
9629 ("ghc-string-qq" ,ghc-string-qq)))
9630 (native-inputs
9631 `(("ghc-quickcheck" ,ghc-quickcheck)
9632 ("ghc-test-framework" ,ghc-test-framework)
9633 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
9634 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)
9635 ("ghc-hunit" ,ghc-hunit)))
d48b5c8a 9636 (home-page "https://johnmacfarlane.net/pandoc")
dddbc90c
RV
9637 (synopsis "Types for representing a structured document")
9638 (description
9639 "This module defines the @code{Pandoc} data structure, which is used by
9640pandoc to represent structured documents. It also provides functions for
9641building up, manipulating and serialising @code{Pandoc} structures.")
9642 (license license:bsd-3)))
9643
9644(define-public ghc-parallel
9645 (package
9646 (name "ghc-parallel")
9647 (version "3.2.2.0")
534d6caa 9648 (outputs '("out" "static" "doc"))
dddbc90c
RV
9649 (source
9650 (origin
9651 (method url-fetch)
9652 (uri (string-append
9653 "https://hackage.haskell.org/package/parallel/parallel-"
9654 version
9655 ".tar.gz"))
9656 (sha256
9657 (base32
9658 "1xkfi96w6yfpppd0nw1rnszdxmvifwzm699ilv6332ra3akm610p"))))
9659 (build-system haskell-build-system)
9660 (home-page "https://hackage.haskell.org/package/parallel")
9661 (synopsis "Parallel programming library")
9662 (description
9663 "This package provides a library for parallel programming.")
9664 (license license:bsd-3)))
9665
9666(define-public ghc-parsec-numbers
9667 (package
9668 (name "ghc-parsec-numbers")
9669 (version "0.1.0")
9670 (source
9671 (origin
9672 (method url-fetch)
9673 (uri (string-append "https://hackage.haskell.org/package/"
9674 "parsec-numbers/parsec-numbers-" version ".tar.gz"))
9675 (sha256
9676 (base32 "1gzy4v3r02kvdxvgg1nj83mmb6aph2v4ilf9c7y6nbvi2x49l0bp"))))
9677 (build-system haskell-build-system)
9678 (home-page "https://hackage.haskell.org/package/parsec-numbers")
9679 (synopsis "Utilities for parsing numbers from strings")
9680 (description
9681 "This package provides the number parsers without the need to use a large
9682(and unportable) token parser.")
9683 (license license:bsd-3)))
9684
9685(define-public ghc-parser-combinators
9686 (package
9687 (name "ghc-parser-combinators")
2f173160 9688 (version "1.1.0")
dddbc90c
RV
9689 (source
9690 (origin
9691 (method url-fetch)
9692 (uri (string-append "https://hackage.haskell.org/package/"
9693 "parser-combinators/parser-combinators-"
9694 version ".tar.gz"))
9695 (sha256
9696 (base32
2f173160 9697 "149yhbnrrl108h1jinrsxni3rwrldhphpk9bbmbpr90q5fbl4xmc"))))
dddbc90c
RV
9698 (build-system haskell-build-system)
9699 (home-page "https://github.com/mrkkrp/parser-combinators")
9700 (synopsis "Commonly useful parser combinators")
9701 (description
9702 "This is a lightweight package providing commonly useful parser
9703combinators.")
9704 (license license:bsd-3)))
9705
9706(define-public ghc-parsers
9707 (package
9708 (name "ghc-parsers")
6818f970 9709 (version "0.12.10")
dddbc90c
RV
9710 (source
9711 (origin
9712 (method url-fetch)
9713 (uri (string-append
9714 "https://hackage.haskell.org/package/parsers/parsers-"
9715 version
9716 ".tar.gz"))
9717 (sha256
9718 (base32
6818f970 9719 "0v0smxbzk1qpdfkfqqmrzd2dngv3vxba10mkjn9nfm6a309izf8p"))))
dddbc90c
RV
9720 (build-system haskell-build-system)
9721 (arguments `(#:tests? #f)) ; FIXME: Test fails with "cannot satisfy
9722 ; -package attoparsec-0.13.0.1"
9723 (inputs
9724 `(("ghc-base-orphans" ,ghc-base-orphans)
9725 ("ghc-attoparsec" ,ghc-attoparsec)
9726 ("ghc-scientific" ,ghc-scientific)
9727 ("ghc-charset" ,ghc-charset)
9728 ("ghc-unordered-containers" ,ghc-unordered-containers)))
9729 (home-page "https://github.com/ekmett/parsers/")
9730 (synopsis "Parsing combinators")
9731 (description "This library provides convenient combinators for working
9732with and building parsing combinator libraries. Given a few simple instances,
9733you get access to a large number of canned definitions. Instances exist for
9734the parsers provided by @code{parsec}, @code{attoparsec} and @code{base}'s
9735@code{Text.Read}.")
9736 (license license:bsd-3)))
9737
9738(define-public ghc-path
9739 (package
9740 (name "ghc-path")
9741 (version "0.6.1")
9742 (source
9743 (origin
9744 (method url-fetch)
9745 (uri (string-append
9746 "https://hackage.haskell.org/package/path/path-"
9747 version
9748 ".tar.gz"))
9749 (sha256
9750 (base32
9751 "0nayla4k1gb821k8y5b9miflv1bi8f0czf9rqr044nrr2dddi2sb"))))
9752 (build-system haskell-build-system)
9753 (arguments
9754 ;; TODO: There are some Windows-related tests and modules that need to be
9755 ;; danced around.
9756 `(#:tests? #f
9757 #:cabal-revision
9758 ("1" "05b1zwx2a893h4h5wvgpc5g5pyx71hfmx409rqisd8s1bq1hn463")))
9759 (inputs
9760 `(("ghc-aeson" ,ghc-aeson)
9761 ("ghc-exceptions" ,ghc-exceptions)
9762 ("ghc-hashable" ,ghc-hashable)))
9763 (native-inputs
9764 `(("ghc-hspec" ,ghc-hspec)
9765 ("ghc-quickcheck" ,ghc-quickcheck)
9766 ("ghc-genvalidity" ,ghc-genvalidity)
9767 ("ghc-genvalidity-property" ,ghc-genvalidity-property)
9768 ("ghc-hspec" ,ghc-hspec)
9769 ("ghc-validity" ,ghc-validity)))
9770 (home-page
3ef91e15 9771 "https://hackage.haskell.org/package/path")
dddbc90c
RV
9772 (synopsis "Support for well-typed paths")
9773 (description "This package introduces a type for paths upholding useful
9774invariants.")
9775 (license license:bsd-3)))
9776
9777(define-public ghc-path-io
9778 (package
9779 (name "ghc-path-io")
a06613ea 9780 (version "1.4.2")
dddbc90c
RV
9781 (source
9782 (origin
9783 (method url-fetch)
9784 (uri (string-append
9785 "https://hackage.haskell.org/package/path-io/path-io-"
9786 version
9787 ".tar.gz"))
9788 (sha256
9789 (base32
a06613ea 9790 "0jqx3mi4an4kb3kg78n1p3xrz832yrfrnvj795b0xhkv6h1z5ir3"))))
dddbc90c
RV
9791 (build-system haskell-build-system)
9792 (inputs
9793 `(("ghc-dlist" ,ghc-dlist)
9794 ("ghc-exceptions" ,ghc-exceptions)
9795 ("ghc-path" ,ghc-path)
9796 ("ghc-transformers-base" ,ghc-transformers-base)
9797 ("ghc-unix-compat" ,ghc-unix-compat)
9798 ("ghc-temporary" ,ghc-temporary)))
9799 (native-inputs
9800 `(("ghc-hspec" ,ghc-hspec)))
dddbc90c
RV
9801 (home-page
9802 "https://github.com/mrkkrp/path-io")
9803 (synopsis "Functions for manipulating well-typed paths")
9804 (description "This package provides an interface to the @code{directory}
9805package for users of @code{path}. It also implements some missing stuff like
9806recursive scanning and copying of directories, working with temporary
9807files/directories, and more.")
9808 (license license:bsd-3)))
9809
9810(define-public ghc-paths
9811 (package
9812 (name "ghc-paths")
9a8adeb1 9813 (version "0.1.0.12")
534d6caa 9814 (outputs '("out" "static" "doc"))
dddbc90c
RV
9815 (source
9816 (origin
9817 (method url-fetch)
9818 (uri (string-append
9819 "https://hackage.haskell.org/package/ghc-paths/ghc-paths-"
9820 version
9821 ".tar.gz"))
9822 (sha256
9823 (base32
9a8adeb1 9824 "1164w9pqnf7rjm05mmfjznz7rrn415blrkk1kjc0gjvks1vfdjvf"))))
dddbc90c
RV
9825 (build-system haskell-build-system)
9826 (home-page "https://github.com/simonmar/ghc-paths")
9827 (synopsis
9828 "Knowledge of GHC's installation directories")
9829 (description
9830 "Knowledge of GHC's installation directories.")
9831 (license license:bsd-3)))
9832
9833(define-public ghc-patience
9834 (package
9835 (name "ghc-patience")
484476f3 9836 (version "0.3")
dddbc90c
RV
9837 (source
9838 (origin
9839 (method url-fetch)
9840 (uri (string-append
9841 "https://hackage.haskell.org/package/patience/patience-"
9842 version ".tar.gz"))
9843 (sha256
9844 (base32
484476f3 9845 "1i1b37lgi31c17yrjyf8pdm4nf5lq8vw90z3rri78hf0k66d0p3i"))))
dddbc90c
RV
9846 (build-system haskell-build-system)
9847 (home-page "https://hackage.haskell.org/package/patience")
9848 (synopsis "Patience diff and longest increasing subsequence")
9849 (description
9850 "This library implements the 'patience diff' algorithm, as well as the
9851patience algorithm for the longest increasing subsequence problem.
9852Patience diff computes the difference between two lists, for example the lines
9853of two versions of a source file. It provides a good balance between
9854performance, nice output for humans, and simplicity of implementation.")
9855 (license license:bsd-3)))
9856
25a221a8
JS
9857(define-public ghc-pattern-arrows
9858 (package
9859 (name "ghc-pattern-arrows")
9860 (version "0.0.2")
9861 (source
9862 (origin
9863 (method url-fetch)
9864 (uri (string-append
9865 "mirror://hackage/package/pattern-arrows/pattern-arrows-"
9866 version
9867 ".tar.gz"))
9868 (sha256
9869 (base32
9870 "13q7bj19hd60rnjfc05wxlyck8llxy11z3mns8kxg197wxrdkhkg"))))
9871 (build-system haskell-build-system)
9872 (home-page
9873 "https://blog.functorial.com/posts/2013-10-27-Pretty-Printing-Arrows.html")
9874 (synopsis "Arrows for Pretty Printing")
9875 (description
9876 "A library for generating concise pretty printers based on precedence
9877rules.")
9878 (license license:expat)))
9879
dddbc90c
RV
9880(define-public ghc-pcre-light
9881 (package
9882 (name "ghc-pcre-light")
9883 (version "0.4.0.4")
9884 (source
9885 (origin
9886 (method url-fetch)
9887 (uri (string-append
9888 "https://hackage.haskell.org/package/pcre-light/pcre-light-"
9889 version
9890 ".tar.gz"))
9891 (sha256
9892 (base32
9893 "0xcyi1fivwg7a92mch5bcqzmrfxzqj42rmb3m8kgs61x4qwpxj82"))))
9894 (build-system haskell-build-system)
a928f35b
TS
9895 (arguments
9896 `(#:extra-directories ("pcre")))
dddbc90c
RV
9897 (inputs
9898 `(("pcre" ,pcre)))
9899 (native-inputs
9900 `(("pkg-config" ,pkg-config)))
9901 (home-page "https://github.com/Daniel-Diaz/pcre-light")
9902 (synopsis "Haskell library for Perl 5 compatible regular expressions")
9903 (description "This package provides a small, efficient, and portable regex
9904library for Perl 5 compatible regular expressions. The PCRE library is a set
9905of functions that implement regular expression pattern matching using the same
9906syntax and semantics as Perl 5.")
9907 (license license:bsd-3)))
9908
9909(define-public ghc-persistent
9910 (package
9911 (name "ghc-persistent")
8c9697a9 9912 (version "2.10.4")
dddbc90c
RV
9913 (source
9914 (origin
9915 (method url-fetch)
8c9697a9
ASM
9916 (uri (string-append
9917 "https://hackage.haskell.org/package/persistent/"
9918 "persistent-" version ".tar.gz"))
dddbc90c
RV
9919 (sha256
9920 (base32
8c9697a9 9921 "1cxswz72sqdg2z1nbpgp1k5qr41djgk8qbf8nz7wfppsrhacyffi"))))
dddbc90c 9922 (build-system haskell-build-system)
8c9697a9
ASM
9923 (inputs
9924 `(("ghc-aeson" ,ghc-aeson)
9925 ("ghc-attoparsec" ,ghc-attoparsec)
9926 ("ghc-base64-bytestring" ,ghc-base64-bytestring)
9927 ("ghc-blaze-html" ,ghc-blaze-html)
9928 ("ghc-conduit" ,ghc-conduit)
9929 ("ghc-fast-logger" ,ghc-fast-logger)
9930 ("ghc-http-api-data" ,ghc-http-api-data)
9931 ("ghc-monad-logger" ,ghc-monad-logger)
9932 ("ghc-path-pieces" ,ghc-path-pieces)
9933 ("ghc-resource-pool" ,ghc-resource-pool)
9934 ("ghc-resourcet" ,ghc-resourcet)
9935 ("ghc-scientific" ,ghc-scientific)
9936 ("ghc-silently" ,ghc-silently)
9937 ("ghc-unliftio-core" ,ghc-unliftio-core)
9938 ("ghc-unliftio" ,ghc-unliftio)
9939 ("ghc-unordered-containers"
9940 ,ghc-unordered-containers)
9941 ("ghc-vector" ,ghc-vector)))
dddbc90c
RV
9942 (native-inputs `(("ghc-hspec" ,ghc-hspec)))
9943 (home-page "https://www.yesodweb.com/book/persistent")
9944 (synopsis "Type-safe, multi-backend data serialization for Haskell")
9945 (description "This Haskell package allows Haskell programs to access data
9946storage systems like PostgreSQL, SQLite, MySQL and MongoDB in a type-safe
9947way.")
9948 (license license:expat)))
9949
9950(define-public ghc-persistent-sqlite
9951 (package
9952 (name "ghc-persistent-sqlite")
78858787 9953 (version "2.10.5.2")
dddbc90c
RV
9954 (source
9955 (origin
9956 (method url-fetch)
78858787
ASM
9957 (uri (string-append
9958 "https://hackage.haskell.org/package/persistent-sqlite/"
9959 "persistent-sqlite-" version ".tar.gz"))
dddbc90c
RV
9960 (sha256
9961 (base32
78858787 9962 "0agag3cgivl6mk38pqzr0qw5lxps9p2bgdwvi5658l46hs7bixxn"))))
dddbc90c 9963 (build-system haskell-build-system)
78858787
ASM
9964 (inputs
9965 `(("ghc-persistent" ,ghc-persistent)
9966 ("ghc-aeson" ,ghc-aeson)
9967 ("ghc-conduit" ,ghc-conduit)
9968 ("ghc-microlens-th" ,ghc-microlens-th)
9969 ("ghc-monad-logger" ,ghc-monad-logger)
9970 ("ghc-resource-pool" ,ghc-resource-pool)
9971 ("ghc-resourcet" ,ghc-resourcet)
9972 ("ghc-unliftio-core" ,ghc-unliftio-core)
9973 ("ghc-unordered-containers"
9974 ,ghc-unordered-containers)))
9975 (native-inputs
9976 `(("ghc-persistent-template"
9977 ,ghc-persistent-template)
9978 ("ghc-persistent-test" ,ghc-persistent-test)
9979 ("ghc-exceptions" ,ghc-exceptions)
9980 ("ghc-fast-logger" ,ghc-fast-logger)
9981 ("ghc-hspec" ,ghc-hspec)
9982 ("ghc-hunit" ,ghc-hunit)
9983 ("ghc-quickcheck" ,ghc-quickcheck)
9984 ("ghc-system-fileio" ,ghc-system-fileio)
9985 ("ghc-system-filepath" ,ghc-system-filepath)
9986 ("ghc-temporary" ,ghc-temporary)))
dddbc90c
RV
9987 (home-page
9988 "https://www.yesodweb.com/book/persistent")
9989 (synopsis "Backend for the persistent library using sqlite3")
9990 (description "This Haskell package includes a thin sqlite3 wrapper based
9991on the direct-sqlite package, as well as the entire C library, so there are no
9992system dependencies.")
9993 (license license:expat)))
9994
9995(define-public ghc-persistent-template
9996 (package
9997 (name "ghc-persistent-template")
d5378e98 9998 (version "2.8.0")
dddbc90c
RV
9999 (source
10000 (origin
10001 (method url-fetch)
d5378e98
ASM
10002 (uri (string-append
10003 "https://hackage.haskell.org/package/persistent-template/"
10004 "persistent-template-" version ".tar.gz"))
dddbc90c
RV
10005 (sha256
10006 (base32
d5378e98 10007 "16yjrl0gh4jbs4skr7iv6a55lny59bqhd6hjmvch1cl9j5d0c0g3"))))
dddbc90c 10008 (build-system haskell-build-system)
d5378e98
ASM
10009 (inputs
10010 `(("ghc-persistent" ,ghc-persistent)
10011 ("ghc-aeson" ,ghc-aeson)
10012 ("ghc-http-api-data" ,ghc-http-api-data)
10013 ("ghc-monad-control" ,ghc-monad-control)
10014 ("ghc-monad-logger" ,ghc-monad-logger)
10015 ("ghc-path-pieces" ,ghc-path-pieces)
10016 ("ghc-th-lift-instances" ,ghc-th-lift-instances)
10017 ("ghc-unordered-containers"
10018 ,ghc-unordered-containers)))
10019 (native-inputs
10020 `(("ghc-hspec" ,ghc-hspec)
10021 ("ghc-quickcheck" ,ghc-quickcheck)))
dddbc90c
RV
10022 (home-page "https://www.yesodweb.com/book/persistent")
10023 (synopsis "Type-safe, non-relational, multi-backend persistence")
10024 (description "This Haskell package provides interfaces and helper
10025functions for the ghc-persistent package.")
10026 (license license:expat)))
10027
ce32f7c7
ASM
10028(define-public ghc-persistent-test
10029 (package
10030 (name "ghc-persistent-test")
10031 (version "2.0.3.1")
10032 (source
10033 (origin
10034 (method url-fetch)
10035 (uri (string-append
10036 "https://hackage.haskell.org/package/persistent-test/"
10037 "persistent-test-" version ".tar.gz"))
10038 (sha256
10039 (base32
10040 "11aq5cy0n43jamf6mg4sr4300bc2zdbjxsczzxwjkb4hzs0ijsdv"))))
10041 (build-system haskell-build-system)
10042 (inputs
10043 `(("ghc-aeson" ,ghc-aeson)
10044 ("ghc-blaze-html" ,ghc-blaze-html)
10045 ("ghc-conduit" ,ghc-conduit)
10046 ("ghc-monad-control" ,ghc-monad-control)
10047 ("ghc-monad-logger" ,ghc-monad-logger)
10048 ("ghc-path-pieces" ,ghc-path-pieces)
10049 ("ghc-persistent" ,ghc-persistent)
10050 ("ghc-persistent-template" ,ghc-persistent-template)
10051 ("ghc-random" ,ghc-random)
10052 ("ghc-resourcet" ,ghc-resourcet)
10053 ("ghc-transformers-base" ,ghc-transformers-base)
10054 ("ghc-unliftio" ,ghc-unliftio)
10055 ("ghc-unliftio-core" ,ghc-unliftio-core)
10056 ("ghc-unordered-containers" ,ghc-unordered-containers)))
10057 (native-inputs
10058 `(("ghc-quickcheck" ,ghc-quickcheck)
10059 ("ghc-quickcheck-instances" ,ghc-quickcheck-instances)
10060 ("ghc-hspec" ,ghc-hspec)
10061 ("ghc-hspec-expectations" ,ghc-hspec-expectations)
10062 ("ghc-hunit" ,ghc-hunit)))
10063 (home-page "https://www.yesodweb.com/book/persistent")
10064 (synopsis "Tests for the Persistent database library")
10065 (description
10066 "This is only for use in developing libraries that should conform to
10067the persistent interface, not for users of the persistent suite of database
10068libraries.")
10069 (license license:expat)))
10070
0fb34235
JS
10071(define-public ghc-pgp-wordlist
10072 (package
10073 (name "ghc-pgp-wordlist")
10074 (version "0.1.0.3")
10075 (source
10076 (origin
10077 (method url-fetch)
10078 (uri (string-append
10079 "mirror://hackage/package/pgp-wordlist/pgp-wordlist-"
10080 version
10081 ".tar.gz"))
10082 (sha256
10083 (base32
10084 "15g6qh0fb7kjj3l0w8cama7cxgnhnhybw760md9yy7cqfq15cfzg"))))
10085 (build-system haskell-build-system)
10086 (inputs
10087 `(("ghc-vector" ,ghc-vector)))
10088 (native-inputs
10089 `(("ghc-hunit" ,ghc-hunit)
10090 ("ghc-tasty" ,ghc-tasty)
10091 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
10092 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
10093 ("ghc-doctest" ,ghc-doctest)))
10094 (home-page
10095 "https://github.com/quchen/pgp-wordlist")
10096 (synopsis
10097 "Translate between binary data and a human-readable collection of words")
10098 (description
10099 "The PGP Word List consists of two phonetic alphabets, each with one word
10100per possible byte value. A string of bytes is translated with these
10101alphabets, alternating between them at each byte.
10102
10103The PGP words corresponding to the bytes 5B 1D CA 6E are \"erase breakaway
10104spellbind headwaters\", for example.
10105
10106For further information, see
10107@url{http://en.wikipedia.org/wiki/PGP_word_list}.")
10108 (license license:bsd-3)))
10109
4639fa32
ASM
10110(define-public ghc-pipes
10111 (package
10112 (name "ghc-pipes")
10113 (version "4.3.13")
10114 (source
10115 (origin
10116 (method url-fetch)
10117 (uri (string-append
10118 "https://hackage.haskell.org/package/pipes/"
10119 "pipes-" version ".tar.gz"))
10120 (sha256
10121 (base32
10122 "1ch3xr5f5if0psd3lsyrpkwrgh36synnzqcpimghprys68l4zfkn"))))
10123 (build-system haskell-build-system)
10124 (inputs
10125 `(("ghc-exceptions" ,ghc-exceptions)
10126 ("ghc-mmorph" ,ghc-mmorph)
10127 ("ghc-void" ,ghc-void)
10128 ("ghc-semigroups" ,ghc-semigroups)))
10129 (native-inputs
10130 `(("ghc-quickcheck" ,ghc-quickcheck)
10131 ("ghc-test-framework" ,ghc-test-framework)
10132 ("ghc-test-framework-quickcheck2"
10133 ,ghc-test-framework-quickcheck2)))
10134 (home-page
10135 "https://hackage.haskell.org/package/pipes")
10136 (synopsis "Compositional pipelines")
10137 (description
10138 "A clean and powerful stream processing library that lets you build
10139and connect reusable streaming components. Advantages over traditional streaming
10140libraries:
10141@itemize
10142@item Concise API: Use simple commands like @code{for}, (@code{>->}), @code{await},
10143and @code{yield}
10144@item Blazing fast: Implementation tuned for speed, including shortcut fusion
10145@item Lightweight Dependency: pipes is small and compiles very rapidly, including
10146dependencies
10147@item Elegant semantics: Use practical category theory
10148@item ListT: Correct implementation of @code{ListT} that interconverts with pipes
10149@item Bidirectionality: Implement duplex channels
10150@end itemize")
10151 (license license:bsd-3)))
10152
451775a5
ASM
10153(define-public ghc-pointedlist
10154 (package
10155 (name "ghc-pointedlist")
10156 (version "0.6.1")
10157 (source
10158 (origin
10159 (method url-fetch)
10160 (uri (string-append
10161 "https://hackage.haskell.org/package/pointedlist/"
10162 "pointedlist-" version ".tar.gz"))
10163 (sha256
10164 (base32
10165 "16xsrzqql7i4z6a3xy07sqnbyqdmcar1jiacla58y4mvkkwb0g3l"))))
10166 (build-system haskell-build-system)
10167 (home-page
3ef91e15 10168 "https://hackage.haskell.org/package/pointedlist")
451775a5
ASM
10169 (synopsis
10170 "Zipper-like comonad which works as a list, tracking a position")
10171 (description
10172 "A PointedList tracks the position in a non-empty list which works
10173similarly to a zipper. A current item is always required, and therefore
10174the list may never be empty. A circular PointedList wraps around to the
10175other end when progressing past the actual edge.")
10176 (license license:bsd-3)))
10177
dddbc90c
RV
10178(define-public ghc-polyparse
10179 (package
10180 (name "ghc-polyparse")
9822b9ca 10181 (version "1.12.1")
dddbc90c
RV
10182 (source
10183 (origin
10184 (method url-fetch)
10185 (uri (string-append
10186 "https://hackage.haskell.org/package/polyparse/polyparse-"
10187 version
10188 ".tar.gz"))
10189 (sha256
10190 (base32
9822b9ca 10191 "19fs18g7fvfdkm9zy28cgighjcxfa6mcpqgyp6whmsjkb3h393fx"))))
dddbc90c
RV
10192 (build-system haskell-build-system)
10193 (home-page
10194 "http://code.haskell.org/~malcolm/polyparse/")
10195 (synopsis
10196 "Alternative parser combinator libraries")
10197 (description
10198 "This package provides a variety of alternative parser combinator
10199libraries, including the original HuttonMeijer set. The Poly sets have
10200features like good error reporting, arbitrary token type, running state, lazy
10201parsing, and so on. Finally, Text.Parse is a proposed replacement for the
10202standard Read class, for better deserialisation of Haskell values from
10203Strings.")
10204 (license license:lgpl2.1)))
10205
10206(define-public ghc-pqueue
10207 (package
10208 (name "ghc-pqueue")
142415b0 10209 (version "1.4.1.2")
dddbc90c
RV
10210 (source
10211 (origin
10212 (method url-fetch)
10213 (uri (string-append "https://hackage.haskell.org/package/"
10214 "pqueue/pqueue-" version ".tar.gz"))
10215 (sha256
10216 (base32
142415b0 10217 "1v4zhv2sc1zsw91hvnarkjhayx2dnf7ccxz6rrhsqpcs0szaranj"))))
dddbc90c
RV
10218 (build-system haskell-build-system)
10219 (native-inputs
10220 `(("ghc-quickcheck" ,ghc-quickcheck)))
10221 (home-page "https://hackage.haskell.org/package/pqueue")
10222 (synopsis "Reliable, persistent, fast priority queues")
10223 (description
10224 "This package provides a fast, reliable priority queue implementation
10225based on a binomial heap.")
10226 (license license:bsd-3)))
10227
10228(define-public ghc-prelude-extras
10229 (package
10230 (name "ghc-prelude-extras")
10231 (version "0.4.0.3")
10232 (source
10233 (origin
10234 (method url-fetch)
10235 (uri (string-append
10236 "https://hackage.haskell.org/package/prelude-extras/prelude-extras-"
10237 version
10238 ".tar.gz"))
10239 (sha256
10240 (base32
10241 "0xzqdf3nl2h0ra4gnslm1m1nsxlsgc0hh6ky3vn578vh11zhifq9"))))
10242 (build-system haskell-build-system)
10243 (home-page "https://github.com/ekmett/prelude-extras")
10244 (synopsis "Higher order versions of Prelude classes")
10245 (description "This library provides higher order versions of
10246@code{Prelude} classes to ease programming with polymorphic recursion and
10247reduce @code{UndecidableInstances}.")
10248 (license license:bsd-3)))
10249
10250(define-public ghc-prettyclass
10251 (package
10252 (name "ghc-prettyclass")
10253 (version "1.0.0.0")
10254 (source
10255 (origin
10256 (method url-fetch)
10257 (uri (string-append "https://hackage.haskell.org/package/"
10258 "prettyclass/prettyclass-" version ".tar.gz"))
10259 (sha256
10260 (base32
10261 "11l9ajci7nh1r547hx8hgxrhq8mh5gdq30pdf845wvilg9p48dz5"))))
10262 (build-system haskell-build-system)
3ef91e15 10263 (home-page "https://hackage.haskell.org/package/prettyclass")
dddbc90c
RV
10264 (synopsis "Pretty printing class similar to Show")
10265 (description "This package provides a pretty printing class similar
10266to @code{Show}, based on the HughesPJ pretty printing library. It
10267provides the pretty printing class and instances for the Prelude
10268types.")
10269 (license license:bsd-3)))
10270
2fad2bf7
JS
10271(define-public ghc-prettyprinter
10272 (package
10273 (name "ghc-prettyprinter")
10274 (version "1.2.1.1")
10275 (source
10276 (origin
10277 (method url-fetch)
10278 (uri (string-append
10279 "mirror://hackage/package/prettyprinter/prettyprinter-"
10280 version
10281 ".tar.gz"))
10282 (sha256
10283 (base32 "1p9c3q55hba4c0zyxc624g5df7wgsclpsmd8wqpdnmib882q9d1v"))))
10284 (build-system haskell-build-system)
10285 (native-inputs
10286 `(("ghc-doctest" ,ghc-doctest)
10287 ("ghc-pgp-wordlist" ,ghc-pgp-wordlist)
10288 ("ghc-tasty" ,ghc-tasty)
10289 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
10290 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
10291 (home-page "https://github.com/quchen/prettyprinter")
10292 (synopsis
10293 "Modern, easy to use, well-documented, extensible pretty-printer")
10294 (description
10295 "A prettyprinter/text rendering engine. Easy to use, well-documented,
10296ANSI terminal backend exists, HTML backend is trivial to implement, no name
10297clashes, @code{Text}-based, extensible.")
10298 (license license:bsd-2)))
10299
2496e49f
JS
10300(define-public ghc-prettyprinter-1.6
10301 (package
10302 (inherit ghc-prettyprinter)
10303 (version "1.6.1")
10304 (source
10305 (origin
10306 (method url-fetch)
10307 (uri (string-append
10308 "mirror://hackage/package/prettyprinter/prettyprinter-"
10309 version
10310 ".tar.gz"))
10311 (sha256
10312 (base32 "10fphxh8lvdaw7i8jyllwmj87w02db92mf99zfw5vddp9mv6b5rz"))))
10313 (inputs
10314 `(("ghc-quickckeck-instances" , ghc-quickcheck-instances)
10315 ,@(package-inputs ghc-prettyprinter)))))
10316
b4f24d66
JS
10317(define-public ghc-prettyprinter-ansi-terminal
10318 (package
10319 (name "ghc-prettyprinter-ansi-terminal")
10320 (version "1.1.1.2")
10321 (source
10322 (origin
10323 (method url-fetch)
10324 (uri (string-append
10325 "mirror://hackage/package/prettyprinter-ansi-terminal/"
10326 "prettyprinter-ansi-terminal-" version ".tar.gz"))
10327 (sha256
10328 (base32 "0ha6vz707qzb5ky7kdsnw2zgphg2dnxrpbrxy8gaw119vwhb9q6k"))))
10329 (build-system haskell-build-system)
10330 (inputs
10331 `(("ghc-ansi-terminal" ,ghc-ansi-terminal)
10332 ("ghc-prettyprinter" ,ghc-prettyprinter-1.6)))
10333 (native-inputs `(("ghc-doctest" ,ghc-doctest)))
10334 (home-page
10335 "https://github.com/quchen/prettyprinter")
10336 (synopsis
10337 "ANSI terminal backend for the prettyprinter package")
10338 (description "ANSI terminal backend for the prettyprinter package.")
10339 (license license:bsd-2)))
10340
dddbc90c
RV
10341(define-public ghc-pretty-hex
10342 (package
10343 (name "ghc-pretty-hex")
10344 (version "1.0")
10345 (source
10346 (origin
10347 (method url-fetch)
10348 (uri (string-append "https://hackage.haskell.org/package/"
10349 "pretty-hex-" version "/"
10350 "pretty-hex-" version ".tar.gz"))
10351 (sha256
10352 (base32
10353 "0ylwkvvjvmpprha9nx83xb8gkhyanhk5fffc0r7lb96n4ch5z6pz"))))
10354 (build-system haskell-build-system)
10355 (home-page "https://github.com/GaloisInc/hexdump")
10356 (synopsis "Haskell library for hex dumps of ByteStrings")
10357 (description "This Haskell library generates pretty hex dumps of
10358ByteStrings in the style of other common *nix hex dump tools.")
10359 (license license:bsd-3)))
10360
10361(define-public ghc-pretty-show
10362 (package
10363 (name "ghc-pretty-show")
7683a084 10364 (version "1.9.5")
dddbc90c
RV
10365 (source
10366 (origin
10367 (method url-fetch)
10368 (uri (string-append "https://hackage.haskell.org/package/pretty-show/"
10369 "pretty-show-" version ".tar.gz"))
10370 (sha256
10371 (base32
7683a084 10372 "0gs2pabi4qa4b0r5vffpf9b1cf5n9y2939a3lljjw7cmg6xvx5dh"))))
dddbc90c
RV
10373 (build-system haskell-build-system)
10374 (inputs
10375 `(("ghc-haskell-lexer" ,ghc-haskell-lexer)
10376 ("ghc-happy" ,ghc-happy)))
702a1012 10377 (home-page "https://wiki.github.com/yav/pretty-show")
dddbc90c
RV
10378 (synopsis "Tools for working with derived `Show` instances")
10379 (description
10380 "This package provides a library and an executable for working with
10381derived @code{Show} instances. By using the library, derived @code{Show}
10382instances can be parsed into a generic data structure. The @code{ppsh} tool
10383uses the library to produce human-readable versions of @code{Show} instances,
10384which can be quite handy for debugging Haskell programs. We can also render
10385complex generic values into an interactive Html page, for easier
10386examination.")
10387 (license license:expat)))
10388
f011e3d6
JS
10389(define-public ghc-pretty-simple
10390 (package
10391 (name "ghc-pretty-simple")
10392 (version "2.2.0.1")
10393 (source
10394 (origin
10395 (method url-fetch)
10396 (uri (string-append
10397 "mirror://hackage/package/pretty-simple/"
10398 "pretty-simple-" version ".tar.gz"))
10399 (sha256
10400 (base32 "0wsi9235ihm15s145lxi7325vv2k4bhighc5m88kn1lk0pl81aqq"))))
10401 (build-system haskell-build-system)
10402 (inputs
10403 `(("ghc-ansi-terminal" ,ghc-ansi-terminal)
10404 ("ghc-glob" ,ghc-glob)
10405 ("ghc-optparse-applicative" ,ghc-optparse-applicative)
10406 ("ghc-aeson" ,ghc-aeson)))
10407 (native-inputs
10408 `(("ghc-doctest" ,ghc-doctest)))
10409 (home-page "https://github.com/cdepillabout/pretty-simple")
10410 (synopsis "Pretty printer for data types with a 'Show' instance")
10411 (description
10412 "Pretty-simple is a pretty printer for Haskell data types that have a
10413Show instance.")
10414 (license license:bsd-3)))
10415
dddbc90c
RV
10416(define-public ghc-primitive
10417 (package
10418 (name "ghc-primitive")
10419 (version "0.6.4.0")
534d6caa 10420 (outputs '("out" "static" "doc"))
dddbc90c
RV
10421 (source
10422 (origin
10423 (method url-fetch)
10424 (uri (string-append
10425 "https://hackage.haskell.org/package/primitive/primitive-"
10426 version
10427 ".tar.gz"))
10428 (sha256
10429 (base32
10430 "0r0cda7acvplgwaxy69kviv4jp7kkfi038by68gj4yfx4iwszgjc"))))
10431 (build-system haskell-build-system)
6cf0daa4
TS
10432 (arguments
10433 `(#:cabal-revision
10434 ("1" "18a14k1yiam1m4l29rin9a0y53yp3nxvkz358nysld8aqwy2qsjv")))
dddbc90c
RV
10435 (home-page
10436 "https://github.com/haskell/primitive")
10437 (synopsis "Primitive memory-related operations")
10438 (description
10439 "This package provides various primitive memory-related operations.")
10440 (license license:bsd-3)))
10441
21f5b9a9
JS
10442(define-public ghc-process-extras
10443 (package
10444 (name "ghc-process-extras")
10445 (version "0.7.4")
10446 (source
10447 (origin
10448 (method url-fetch)
10449 (uri
10450 (string-append
10451 "https://hackage.haskell.org/package/process-extras/"
10452 "process-extras-" version ".tar.gz"))
10453 (sha256
10454 (base32
10455 "0klqgr37f1z2z6i0a9b0giapmq0p35l5k9kz1p7f0k1597w7agi9"))))
10456 (build-system haskell-build-system)
10457 (inputs
10458 `(("ghc-data-default" ,ghc-data-default)
10459 ("ghc-generic-deriving" ,ghc-generic-deriving)
10460 ("ghc-hunit" ,ghc-hunit)
10461 ("ghc-listlike" ,ghc-listlike)))
10462 (home-page "https://github.com/seereason/process-extras")
10463 (synopsis "Extra tools for managing processes")
f74b6983 10464 (description "This package extends
21f5b9a9
JS
10465@url{http://hackage.haskell.org/package/process}. It allows you to read
10466process input and output as ByteStrings or Text, or write your own
10467ProcessOutput instance. It also provides lazy process input and output,
10468and a ProcessMaker class for more flexibility in the process creation
10469API.")
10470 (license license:expat)))
10471
dddbc90c
RV
10472(define-public ghc-profunctors
10473 (package
10474 (name "ghc-profunctors")
899b5297 10475 (version "5.3")
dddbc90c
RV
10476 (source
10477 (origin
10478 (method url-fetch)
10479 (uri (string-append
10480 "https://hackage.haskell.org/package/profunctors/profunctors-"
10481 version
10482 ".tar.gz"))
10483 (sha256
10484 (base32
899b5297 10485 "1dx3nkc27yxsrbrhh3iwhq7dl1xn6bj7n62yx6nh8vmpbg62lqvl"))))
dddbc90c 10486 (build-system haskell-build-system)
1ad496e5 10487 (outputs '("out" "static" "doc"))
dddbc90c
RV
10488 (inputs
10489 `(("ghc-base-orphans" ,ghc-base-orphans)
10490 ("ghc-bifunctors" ,ghc-bifunctors)
10491 ("ghc-comonad" ,ghc-comonad)
10492 ("ghc-contravariant" ,ghc-contravariant)
10493 ("ghc-distributive" ,ghc-distributive)
10494 ("ghc-semigroups" ,ghc-semigroups)
10495 ("ghc-tagged" ,ghc-tagged)))
10496 (home-page "https://github.com/ekmett/profunctors/")
10497 (synopsis "Profunctors for Haskell")
10498 (description "This library provides profunctors for Haskell.")
10499 (license license:bsd-3)))
10500
fbe32d46
ASM
10501(define-public ghc-project-template
10502 (package
10503 (name "ghc-project-template")
10504 (version "0.2.0.1")
10505 (source
10506 (origin
10507 (method url-fetch)
10508 (uri (string-append
10509 "https://hackage.haskell.org/package/project-template/project-template-"
10510 version ".tar.gz"))
10511 (sha256
10512 (base32
10513 "1p69ww4rhah2qxragl615wl4a6mk4x9w09am8knmz3s4lxpljlpb"))))
10514 (build-system haskell-build-system)
10515 (inputs
10516 `(("ghc-base64-bytestring" ,ghc-base64-bytestring)
10517 ("ghc-conduit" ,ghc-conduit)
10518 ("ghc-conduit-extra" ,ghc-conduit-extra)
10519 ("ghc-resourcet" ,ghc-resourcet)))
10520 (native-inputs
10521 `(("ghc-hspec" ,ghc-hspec)
10522 ("hspec-discover" ,hspec-discover)
10523 ("ghc-quickcheck" ,ghc-quickcheck)))
10524 (arguments
10525 `(#:cabal-revision
10526 ("1"
10527 "0lq3sqnq0nr0gbvgzp0lqdl3j3mqdmdlf8xsw0j3pjh581xj3k0a")))
10528 (home-page "https://github.com/fpco/haskell-ide")
10529 (synopsis "Specify Haskell project templates and generate files")
10530 (description
10531 "Haskell library for both generating and consuming project templates.
10532
10533ost IDEs provide the concept of a project template: instead of writing all
10534of the code for a project from scratch, you select a template, answer a few
10535questions, and a bunch of files are automatically generated.
10536
10537project-template tries to provide a canonical Haskell library for implementing
10538the ideal templating system.")
10539 (license license:bsd-3)))
10540
8a6e745d
JS
10541(define-public ghc-protolude
10542 (package
10543 (name "ghc-protolude")
10544 (version "0.2.3")
10545 (source
10546 (origin
10547 (method url-fetch)
10548 (uri (string-append
10549 "mirror://hackage/package/protolude/protolude-"
10550 version
10551 ".tar.gz"))
10552 (sha256
10553 (base32
10554 "0zzkyxz0vmcbncpid7gp72fpjj0fla3gqhlfkij5c5lg12skjgfj"))))
10555 (build-system haskell-build-system)
10556 (inputs
10557 `(("ghc-async" ,ghc-async)
10558 ("ghc-hashable" ,ghc-hashable)
10559 ("ghc-mtl-compat" ,ghc-mtl-compat)
10560 ("ghc-transformers-compat" ,ghc-transformers-compat)))
10561 (home-page "https://github.com/protolude/protolude")
10562 (synopsis "Sensible set of defaults for writing custom Preludes")
10563 (description
10564 "Protolude gives you sensible defaults for writing custom Preludes to
10565replace the standard one provided by GHC.")
10566 (license license:expat)))
10567
cf123e32
MB
10568(define-public ghc-psqueue
10569 (package
10570 (name "ghc-psqueue")
10571 (version "1.1.0.1")
10572 (source (origin
10573 (method url-fetch)
10574 (uri (string-append "mirror://hackage/package/PSQueue-"
10575 version "/PSQueue-" version ".tar.gz"))
10576 (sha256
10577 (base32
10578 "1cik7sw10sacsijmfhghzy54gm1qcyxw14shlp86lx8z89kcnkza"))))
10579 (build-system haskell-build-system)
10580 (home-page "https://hackage.haskell.org/package/PSQueue")
10581 (synopsis "Priority search queue")
10582 (description
10583 "A @dfn{priority search queue} efficiently supports the operations of
10584both a search tree and a priority queue. A @code{Binding} is a product of
10585a key and a priority. Bindings can be inserted, deleted, modified and queried
10586in logarithmic time, and the binding with the least priority can be retrieved
10587in constant time. A queue can be built from a list of bindings, sorted by
10588keys, in linear time.")
10589 (license license:bsd-3)))
10590
dddbc90c
RV
10591(define-public ghc-psqueues
10592 (package
10593 (name "ghc-psqueues")
5d133942 10594 (version "0.2.7.2")
dddbc90c
RV
10595 (source
10596 (origin
10597 (method url-fetch)
10598 (uri (string-append "https://hackage.haskell.org/package/"
10599 "psqueues-" version "/"
10600 "psqueues-" version ".tar.gz"))
10601 (sha256
10602 (base32
5d133942 10603 "1yckx2csqswghiy9nfj03cybmza8104nmnpbpcc9ngwlbmakn9i6"))))
dddbc90c
RV
10604 (build-system haskell-build-system)
10605 (inputs
10606 `(("ghc-hashable" ,ghc-hashable)))
10607 (native-inputs
10608 `(("ghc-hunit" ,ghc-hunit)
10609 ("ghc-quickcheck" ,ghc-quickcheck)
10610 ("ghc-tagged" ,ghc-tagged)
5d133942
TS
10611 ("ghc-tasty" ,ghc-tasty)
10612 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
10613 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
dddbc90c
RV
10614 (home-page "https://github.com/jaspervdj/psqueues")
10615 (synopsis "Pure priority search queues")
10616 (description "The psqueues package provides
10617@uref{https://en.wikipedia.org/wiki/Priority_queue, Priority Search Queues} in
10618three different flavors:
10619
10620@itemize
10621@item @code{OrdPSQ k p v}, which uses the @code{Ord k} instance to provide
10622fast insertion, deletion and lookup. This implementation is based on Ralf
10623Hinze's @uref{http://citeseer.ist.psu.edu/hinze01simple.html, A Simple
10624Implementation Technique for Priority Search Queues}.
10625
10626Hence, it is similar to the @uref{https://hackage.haskell.org/package/PSQueue,
10627PSQueue} library, although it is considerably faster and provides a slightly
10628different API.
10629
10630@item @code{IntPSQ p v} is a far more efficient implementation. It fixes the
10631key type to @code{Int} and uses a
10632@code{https://en.wikipedia.org/wiki/Radix_tree, radix tree} (like @code{IntMap})
10633with an additional min-heap property.
10634
10635@item @code{HashPSQ k p v} is a fairly straightforward extension
10636of @code{IntPSQ}: it simply uses the keys' hashes as indices in the
10637@code{IntPSQ}. If there are any hash collisions, it uses an
10638@code{OrdPSQ} to resolve those. The performance of this implementation
10639is comparable to that of @code{IntPSQ}, but it is more widely
10640applicable since the keys are not restricted to @code{Int},
10641but rather to any @code{Hashable} datatype.
10642@end itemize
10643
10644Each of the three implementations provides the same API, so they can
10645be used interchangeably.
10646
10647Typical applications of Priority Search Queues include:
10648
10649@itemize
10650@item Caches, and more specifically LRU Caches;
10651@item Schedulers;
10652@item Pathfinding algorithms, such as Dijkstra's and A*.
10653@end itemize")
10654 (license license:bsd-3)))
b1dbc9f5
ASM
10655
10656(define-public ghc-pwstore-fast
10657 (package
10658 (name "ghc-pwstore-fast")
10659 (version "2.4.4")
10660 (source
10661 (origin
10662 (method url-fetch)
10663 (uri (string-append
10664 "https://hackage.haskell.org/package/pwstore-fast/"
10665 "pwstore-fast-" version ".tar.gz"))
10666 (sha256
10667 (base32
10668 "1cpvlwzg3qznhygrr78f75p65mnljd9v5cvnagfxjqppnrkay6bj"))))
10669 (build-system haskell-build-system)
10670 (inputs
10671 `(("ghc-base64-bytestring" ,ghc-base64-bytestring)
10672 ("ghc-cryptohash" ,ghc-cryptohash)
10673 ("ghc-random" ,ghc-random)
10674 ("ghc-byteable" ,ghc-byteable)))
10675 (home-page "https://github.com/PeterScott/pwstore")
10676 (synopsis "Secure password storage")
10677 (description
10678 "To store passwords securely, they should be salted, then hashed with
10679a slow hash function. This library uses PBKDF1-SHA256, and handles all the
10680details. It uses the cryptohash package for speed; if you need a pure
10681Haskell library, pwstore-purehaskell has the exact same API, but uses only
10682pure Haskell. It is about 25 times slower than this package, but still quite
10683usable.")
10684 (license license:bsd-3)))
dddbc90c
RV
10685
10686(define-public ghc-random
10687 (package
10688 (name "ghc-random")
10689 (version "1.1")
534d6caa 10690 (outputs '("out" "static" "doc"))
dddbc90c
RV
10691 (source
10692 (origin
10693 (method url-fetch)
10694 (uri (string-append
10695 "https://hackage.haskell.org/package/random/random-"
10696 version
10697 ".tar.gz"))
10698 (sha256
10699 (base32 "0nis3lbkp8vfx8pkr6v7b7kr5m334bzb0fk9vxqklnp2aw8a865p"))))
10700 (build-system haskell-build-system)
10701 (home-page "https://hackage.haskell.org/package/random")
10702 (synopsis "Random number library")
10703 (description "This package provides a basic random number generation
10704library, including the ability to split random number generators.")
10705 (license license:bsd-3)))
10706
10707(define-public ghc-raw-strings-qq
10708 (package
10709 (name "ghc-raw-strings-qq")
10710 (version "1.1")
10711 (source
10712 (origin
10713 (method url-fetch)
10714 (uri (string-append "https://hackage.haskell.org/package/"
10715 "raw-strings-qq/raw-strings-qq-"
10716 version ".tar.gz"))
10717 (sha256
10718 (base32
10719 "1lxy1wy3awf52968iy5y9r5z4qgnn2sxkdrh7js3m9gadb11w09f"))))
10720 (build-system haskell-build-system)
10721 (native-inputs `(("ghc-hunit" ,ghc-hunit)))
10722 (home-page "https://github.com/23Skidoo/raw-strings-qq")
10723 (synopsis "Raw string literals for Haskell")
10724 (description
10725 "This package provides a quasiquoter for raw string literals, i.e. string
10726literals that don't recognise the standard escape sequences. Basically, they
10727make your code more readable by freeing you from the responsibility to escape
10728backslashes. They are useful when working with regular expressions,
10729DOS/Windows paths and markup languages (such as XML).")
10730 (license license:bsd-3)))
10731
10732(define-public ghc-readable
10733 (package
10734 (name "ghc-readable")
10735 (version "0.3.1")
10736 (source
10737 (origin
10738 (method url-fetch)
10739 (uri (string-append "https://hackage.haskell.org/package/"
10740 "readable/readable-" version ".tar.gz"))
10741 (sha256
10742 (base32
10743 "1ja39cg26wy2fs00gi12x7iq5k8i366pbqi3p916skfa5jnkfc3h"))))
10744 (build-system haskell-build-system)
10745 (home-page "https://github.com/mightybyte/readable")
10746 (synopsis "Type class for reading from Text and ByteString")
10747 (description "This package provides a @code{Readable} type class for
10748reading data types from @code{ByteString} and @code{Text}. It also
10749includes efficient implementations for common data types.")
10750 (license license:bsd-3)))
10751
10752(define-public ghc-rebase
10753 (package
10754 (name "ghc-rebase")
8d2ae3fe 10755 (version "1.3.1.1")
dddbc90c
RV
10756 (source
10757 (origin
10758 (method url-fetch)
10759 (uri (string-append "https://hackage.haskell.org/package/"
10760 "rebase-" version "/"
10761 "rebase-" version ".tar.gz"))
10762 (sha256
10763 (base32
8d2ae3fe 10764 "0q4m2fa7wkgxs0grir8rlqwibasmi3s1x7c107ynndwfm62nzv0a"))))
dddbc90c 10765 (build-system haskell-build-system)
e396e936 10766 (outputs '("out" "static" "doc"))
dddbc90c
RV
10767 (inputs `(("ghc-hashable" ,ghc-hashable)
10768 ("ghc-vector" ,ghc-vector)
10769 ("ghc-unordered-containers" ,ghc-unordered-containers)
10770 ("ghc-scientific" ,ghc-scientific)
10771 ("ghc-uuid" ,ghc-uuid)
10772 ("ghc-dlist" ,ghc-dlist)
10773 ("ghc-void" ,ghc-void)
10774 ("ghc-bifunctors" ,ghc-bifunctors)
10775 ("ghc-profunctors" ,ghc-profunctors)
10776 ("ghc-contravariant" ,ghc-contravariant)
10777 ("ghc-contravariant-extras" ,ghc-contravariant-extras)
10778 ("ghc-semigroups" ,ghc-semigroups)
10779 ("ghc-either" ,ghc-either)
10780 ("ghc-fail" ,ghc-fail)
10781 ("ghc-base-prelude" ,ghc-base-prelude)))
10782 (home-page "https://github.com/nikita-volkov/rebase")
10783 (synopsis "Progressive alternative to the base package
10784for Haskell")
10785 (description "This Haskell package is intended for those who are
10786tired of keeping long lists of dependencies to the same essential libraries
10787in each package as well as the endless imports of the same APIs all over again.
10788
10789It also supports the modern tendencies in the language.
10790
10791To solve those problems this package does the following:
10792
10793@itemize
10794@item Reexport the original APIs under the @code{Rebase} namespace.
10795
10796@item Export all the possible non-conflicting symbols from the
10797@code{Rebase.Prelude} module.
10798
10799@item Give priority to the modern practices in the conflicting cases.
10800@end itemize
10801
10802The policy behind the package is only to reexport the non-ambiguous and
10803non-controversial APIs, which the community has obviously settled on.
10804The package is intended to rapidly evolve with the contribution from
10805the community, with the missing features being added with pull-requests.")
10806 (license license:expat)))
10807
10808(define-public ghc-reducers
10809 (package
10810 (name "ghc-reducers")
10811 (version "3.12.3")
10812 (source
10813 (origin
10814 (method url-fetch)
10815 (uri (string-append
10816 "https://hackage.haskell.org/package/reducers/reducers-"
10817 version
10818 ".tar.gz"))
10819 (sha256
10820 (base32
10821 "09wf8pl9ycglcv6qj5ba26gkg2s5iy81hsx9xp0q8na0cwvp71ki"))))
10822 (build-system haskell-build-system)
10823 (inputs
10824 `(("ghc-fingertree" ,ghc-fingertree)
10825 ("ghc-hashable" ,ghc-hashable)
10826 ("ghc-unordered-containers" ,ghc-unordered-containers)
10827 ("ghc-semigroupoids" ,ghc-semigroupoids)
10828 ("ghc-semigroups" ,ghc-semigroups)))
10829 (home-page "https://github.com/ekmett/reducers/")
10830 (synopsis "Semigroups, specialized containers and a general map/reduce framework")
10831 (description "This library provides various semigroups, specialized
10832containers and a general map/reduce framework for Haskell.")
10833 (license license:bsd-3)))
10834
10835(define-public ghc-refact
10836 (package
10837 (name "ghc-refact")
10838 (version "0.3.0.2")
10839 (source
10840 (origin
10841 (method url-fetch)
10842 (uri (string-append "https://hackage.haskell.org/package/"
10843 "refact/refact-"
10844 version ".tar.gz"))
10845 (sha256
10846 (base32
10847 "0v0zxcx29b8jxs2kgy9csykqcp8kzhdvyylw2xfwmj4pfxr2kl0a"))))
10848 (build-system haskell-build-system)
3ef91e15 10849 (home-page "https://hackage.haskell.org/package/refact")
dddbc90c
RV
10850 (synopsis "Specify refactorings to perform with apply-refact")
10851 (description
10852 "This library provides a datatype which can be interpreted by
10853@code{apply-refact}. It exists as a separate library so that applications can
10854specify refactorings without depending on GHC.")
10855 (license license:bsd-3)))
10856
10857(define-public ghc-reflection
10858 (package
10859 (name "ghc-reflection")
d215f1cc 10860 (version "2.1.5")
dddbc90c
RV
10861 (source
10862 (origin
10863 (method url-fetch)
10864 (uri (string-append
10865 "https://hackage.haskell.org/package/reflection/reflection-"
10866 version
10867 ".tar.gz"))
10868 (sha256
10869 (base32
d215f1cc 10870 "0xr947nj1vww5b8fwqmypxm3y3j5sxl4z8wnf834f83jzfzyjbi7"))))
dddbc90c
RV
10871 (build-system haskell-build-system)
10872 (inputs `(("ghc-tagged" ,ghc-tagged)))
d215f1cc
TS
10873 (native-inputs
10874 `(("ghc-hspec" ,ghc-hspec)
10875 ("ghc-quickcheck" ,ghc-quickcheck)
10876 ("hspec-discover" ,hspec-discover)))
dddbc90c
RV
10877 (home-page "https://github.com/ekmett/reflection")
10878 (synopsis "Reify arbitrary terms into types that can be reflected back
10879into terms")
10880 (description "This package addresses the 'configuration problem' which is
10881propagating configurations that are available at run-time, allowing multiple
10882configurations to coexist without resorting to mutable global variables or
10883@code{System.IO.Unsafe.unsafePerformIO}.")
10884 (license license:bsd-3)))
10885
10886(define-public ghc-regex
10887 (package
10888 (name "ghc-regex")
b9a5e634 10889 (version "1.0.2.0")
dddbc90c
RV
10890 (source
10891 (origin
10892 (method url-fetch)
10893 (uri (string-append "https://hackage.haskell.org/package/regex/"
10894 "regex-" version ".tar.gz"))
10895 (sha256
10896 (base32
b9a5e634 10897 "1f2z025hif1fr24b5khq3qxxyvpxrnhyx8xmbms332arw28rpkda"))))
dddbc90c
RV
10898 (build-system haskell-build-system)
10899 (arguments
10900 `(#:phases
10901 (modify-phases %standard-phases
10902 (add-after 'unpack 'relax-dependencies
10903 (lambda _
10904 (substitute* "regex.cabal"
10905 (("base-compat.*>=.*0.6.*")
10906 "base-compat >= 0.6\n")
10907 (("template-haskell.*>=.*2.7.*")
10908 "template-haskell >= 2.7\n"))
10909 #t)))))
10910 (inputs
10911 `(("ghc-base-compat" ,ghc-base-compat)
10912 ("ghc-hashable" ,ghc-hashable)
10913 ("ghc-regex-base" ,ghc-regex-base)
10914 ("ghc-regex-pcre-builtin" ,ghc-regex-pcre-builtin)
10915 ("ghc-regex-tdfa" ,ghc-regex-tdfa)
10916 ("ghc-regex-tdfa-text" ,ghc-regex-tdfa-text)
10917 ("ghc-time-locale-compat" ,ghc-time-locale-compat)
10918 ("ghc-unordered-containers" ,ghc-unordered-containers)
10919 ("ghc-utf8-string" ,ghc-utf8-string)))
10920 (home-page "http://regex.uk")
10921 (synopsis "Toolkit for regex-base")
10922 (description
10923 "This package provides a regular expression toolkit for @code{regex-base}
10924with compile-time checking of regular expression syntax, data types for
10925matches and captures, a text replacement toolkit, portable options, high-level
10926AWK-like tools for building text processing apps, regular expression macros
10927with parsers and test bench, comprehensive documentation, tutorials and
10928copious examples.")
10929 (license license:bsd-3)))
10930
10931(define-public ghc-regex-applicative
10932 (package
10933 (name "ghc-regex-applicative")
30f60e42 10934 (version "0.3.3.1")
dddbc90c
RV
10935 (source
10936 (origin
10937 (method url-fetch)
10938 (uri (string-append
10939 "https://hackage.haskell.org/package/regex-applicative/"
10940 "regex-applicative-" version ".tar.gz"))
10941 (sha256
10942 (base32
30f60e42 10943 "0p0anx5vamrhrdvviwkh2zn6pa3pv2bjb7nfyc7dvz2q7g14y1lg"))))
dddbc90c
RV
10944 (build-system haskell-build-system)
10945 (inputs
10946 `(("ghc-smallcheck" ,ghc-smallcheck)
10947 ("ghc-tasty" ,ghc-tasty)
10948 ("ghc-tasty-smallcheck" ,ghc-tasty-smallcheck)
10949 ("ghc-tasty-hunit" ,ghc-tasty-hunit)))
10950 (home-page "https://github.com/feuerbach/regex-applicative")
10951 (synopsis "Regex-based parsing with applicative interface")
10952 (description
10953 "@code{regex-applicative} is a Haskell library for parsing using
10954regular expressions. Parsers can be built using Applicative interface.")
10955 (license license:expat)))
10956
10957(define-public ghc-regex-base
10958 (package
10959 (name "ghc-regex-base")
10960 (version "0.93.2")
10961 (source
10962 (origin
10963 (method url-fetch)
10964 (uri (string-append
10965 "https://hackage.haskell.org/package/regex-base/regex-base-"
10966 version
10967 ".tar.gz"))
10968 (sha256
10969 (base32
10970 "0y1j4h2pg12c853nzmczs263di7xkkmlnsq5dlp5wgbgl49mgp10"))))
10971 (build-system haskell-build-system)
10972 (home-page
10973 "https://sourceforge.net/projects/lazy-regex")
10974 (synopsis "Replaces/Enhances Text.Regex")
10975 (description "@code{Text.Regex.Base} provides the interface API for
10976regex-posix, regex-pcre, regex-parsec, regex-tdfa, regex-dfa.")
10977 (license license:bsd-3)))
10978
10979(define-public ghc-regex-compat
10980 (package
10981 (name "ghc-regex-compat")
10982 (version "0.95.1")
10983 (source
10984 (origin
10985 (method url-fetch)
10986 (uri (string-append
10987 "https://hackage.haskell.org/package/regex-compat/regex-compat-"
10988 version
10989 ".tar.gz"))
10990 (sha256
10991 (base32
10992 "0fwmima3f04p9y4h3c23493n1xj629ia2dxaisqm6rynljjv2z6m"))))
10993 (build-system haskell-build-system)
10994 (inputs
10995 `(("ghc-regex-base" ,ghc-regex-base)
10996 ("ghc-regex-posix" ,ghc-regex-posix)))
10997 (home-page "https://sourceforge.net/projects/lazy-regex")
10998 (synopsis "Replaces/Enhances Text.Regex")
10999 (description "This library provides one module layer over
11000@code{regex-posix} to replace @code{Text.Regex}.")
11001 (license license:bsd-3)))
11002
11003(define-public ghc-regex-compat-tdfa
11004 (package
11005 (name "ghc-regex-compat-tdfa")
11006 (version "0.95.1.4")
11007 (source
11008 (origin
11009 (method url-fetch)
11010 (uri (string-append
11011 "https://hackage.haskell.org/package/regex-compat-tdfa/regex-compat-tdfa-"
11012 version ".tar.gz"))
11013 (sha256
11014 (base32
11015 "1p90fn90yhp7fvljjdqjp41cszidcfz4pw7fwvzyx4739b98x8sg"))))
11016 (build-system haskell-build-system)
11017 (inputs
11018 `(("ghc-regex-base" ,ghc-regex-base)
11019 ("ghc-regex-tdfa" ,ghc-regex-tdfa)))
11020 (home-page "https://hub.darcs.net/shelarcy/regex-compat-tdfa")
11021 (synopsis "Unicode Support version of Text.Regex, using regex-tdfa")
11022 (description
11023 "One module layer over @code{regex-tdfa} to replace @code{Text.Regex}.
11024@code{regex-compat} can't use Unicode characters correctly because of using regex-posix.
11025This is not good for Unicode users. This modified regex-compat uses regex-tdfa to solve
11026this problem.")
11027 (license license:bsd-3)))
11028
ddd79836
MB
11029(define-public ghc-regex-pcre
11030 (package
11031 (name "ghc-regex-pcre")
11032 (version "0.94.4")
11033 (source (origin
11034 (method url-fetch)
11035 (uri (string-append "https://hackage.haskell.org/package/"
11036 "regex-pcre/regex-pcre-" version ".tar.gz"))
11037 (sha256
11038 (base32
11039 "1h16w994g9s62iwkdqa7bar2n9cfixmkzz2rm8svm960qr57valf"))))
11040 (build-system haskell-build-system)
991ca499
TS
11041 (arguments
11042 `(#:extra-directories ("pcre")))
ddd79836
MB
11043 (inputs
11044 `(("ghc-regex-base" ,ghc-regex-base)
11045 ("pcre" ,pcre)))
11046 (home-page "https://hackage.haskell.org/package/regex-pcre")
11047 (synopsis "Enhancement of the builtin Text.Regex library")
11048 (description
11049 "This package is an enhancement of the @code{Text.Regex} library.
11050It wraps the @code{PCRE} C library providing Perl-compatible regular
11051expressions.")
11052 (license license:bsd-3)))
11053
dddbc90c
RV
11054(define-public ghc-regex-pcre-builtin
11055 (package
11056 (name "ghc-regex-pcre-builtin")
ee946143 11057 (version "0.94.5.8.8.35")
dddbc90c
RV
11058 (source (origin
11059 (method url-fetch)
11060 (uri (string-append "https://hackage.haskell.org/package/"
11061 "regex-pcre-builtin/regex-pcre-builtin-"
11062 version ".tar.gz"))
11063 (sha256
11064 (base32
ee946143 11065 "1s755qdg1mxrf125sh83bsc5kjkrj8fkq8wf6dg1jan86c7p7gl4"))))
dddbc90c
RV
11066 (build-system haskell-build-system)
11067 (inputs
11068 `(("ghc-regex-base" ,ghc-regex-base)))
4723766b 11069 (home-page "https://hackage.haskell.org/package/regex-pcre-builtin")
dddbc90c
RV
11070 (synopsis "Enhancement of the builtin Text.Regex library")
11071 (description
11072 "This package is an enhancement of the @code{Text.Regex} library,
11073providing the PCRE backend to accompany regex-base, with bundled code from
11074@url{https://www.pcre.org}.")
11075 (license license:bsd-3)))
11076
11077(define-public ghc-regex-posix
11078 (package
11079 (name "ghc-regex-posix")
11080 (version "0.95.2")
11081 (source
11082 (origin
11083 (method url-fetch)
11084 (uri (string-append
11085 "https://hackage.haskell.org/package/regex-posix/regex-posix-"
11086 version
11087 ".tar.gz"))
11088 (sha256
11089 (base32
11090 "0gkhzhj8nvfn1ija31c7xnl6p0gadwii9ihyp219ck2arlhrj0an"))))
11091 (build-system haskell-build-system)
11092 (inputs
11093 `(("ghc-regex-base" ,ghc-regex-base)))
11094 (home-page "https://sourceforge.net/projects/lazy-regex")
11095 (synopsis "POSIX regular expressions for Haskell")
11096 (description "This library provides the POSIX regex backend used by the
11097Haskell library @code{regex-base}.")
11098 (license license:bsd-3)))
11099
11100(define-public ghc-regex-tdfa
11101 (package
11102 (name "ghc-regex-tdfa")
ce684db0 11103 (version "1.2.3.2")
dddbc90c
RV
11104 (source
11105 (origin
11106 (method url-fetch)
11107 (uri (string-append
11108 "https://hackage.haskell.org/package/regex-tdfa/regex-tdfa-"
11109 version ".tar.gz"))
11110 (sha256
11111 (base32
ce684db0 11112 "03yhpqrqz977nwlnhnyz9dacnbzw8xb6j18h365rkgmbc05sb3hf"))))
dddbc90c 11113 (build-system haskell-build-system)
54c8209e 11114 (outputs '("out" "static" "doc"))
dddbc90c
RV
11115 (inputs
11116 `(("ghc-regex-base" ,ghc-regex-base)))
90b74c6f 11117 (home-page "https://github.com/haskell-hvr/regex-tdfa")
dddbc90c
RV
11118 (synopsis "POSIX extended regular expressions in Haskell.")
11119 (description
11120 "Regex-tdfa is a pure Haskell regular expression library implementing POSIX
11121extended regular expressions. It is a \"tagged\" DFA regex engine. It is
11122inspired by libtre.")
11123 (license license:bsd-3)))
11124
11125(define-public ghc-regex-tdfa-text
11126 (package
11127 (name "ghc-regex-tdfa-text")
11128 (version "1.0.0.3")
11129 (source
11130 (origin
11131 (method url-fetch)
11132 (uri (string-append
11133 "https://hackage.haskell.org/package/regex-tdfa-text/"
11134 "regex-tdfa-text-" version ".tar.gz"))
11135 (sha256
11136 (base32
11137 "0090g6lgbdm9lywpqm2d3724nnnh24nx3vnlqr96qc2w486pmmrq"))))
11138 (build-system haskell-build-system)
11139 (inputs
11140 `(("ghc-regex-base" ,ghc-regex-base)
11141 ("ghc-regex-tdfa" ,ghc-regex-tdfa)))
11142 (home-page
3ef91e15 11143 "https://hackage.haskell.org/package/regex-tdfa-text")
dddbc90c
RV
11144 (synopsis "Text interface for regex-tdfa")
11145 (description
11146 "This provides an extra text interface for regex-tdfa.")
11147 (license license:bsd-3)))
11148
798a2df4
JS
11149(define-public ghc-repline
11150 (package
11151 (name "ghc-repline")
11152 (version "0.2.0.0")
11153 (source
11154 (origin
11155 (method url-fetch)
11156 (uri (string-append
11157 "mirror://hackage/package/repline/repline-"
11158 version
11159 ".tar.gz"))
11160 (sha256
11161 (base32
11162 "1ph21kbbanlcs8n5lwk16g9vqkb98mkbz5mzwrp8j2rls2921izc"))))
11163 (build-system haskell-build-system)
11164 (home-page "https://github.com/sdiehl/repline")
11165 (synopsis "Haskeline wrapper for GHCi-like REPL interfaces")
11166 (description
11167 "Haskeline wrapper for GHCi-like REPL interfaces. Composable with
11168normal mtl transformers.")
11169 (license license:expat)))
11170
6c0858dd
JS
11171(define-public ghc-repline-0.3
11172 (package
11173 (inherit ghc-repline)
11174 (version "0.3.0.0")
11175 (source
11176 (origin
11177 (method url-fetch)
11178 (uri (string-append
11179 "mirror://hackage/package/repline/repline-"
11180 version
11181 ".tar.gz"))
11182 (sha256
11183 (base32
11184 "0niihfyggg2qisadg7w49cr5k5qyyynia93iip0ng2bbmzwi88g8"))))
11185 (inputs
11186 `(("ghc-exceptions" ,ghc-exceptions)
11187 ("ghc-haskeline" ,ghc-haskeline-0.8)))))
11188
dddbc90c
RV
11189(define-public ghc-rerebase
11190 (package
11191 (name "ghc-rerebase")
cdec7b8c 11192 (version "1.3.1.1")
dddbc90c
RV
11193 (source
11194 (origin
11195 (method url-fetch)
11196 (uri (string-append
11197 "https://hackage.haskell.org/package/rerebase/rerebase-"
11198 version ".tar.gz"))
11199 (sha256
11200 (base32
cdec7b8c 11201 "1jbqif6k249rkknm2zwk8v8jil3kgi9ar53358v8l4ffx346rm82"))))
dddbc90c 11202 (build-system haskell-build-system)
af2f91ec 11203 (outputs '("out" "static" "doc"))
dddbc90c
RV
11204 (inputs
11205 `(("ghc-rebase" ,ghc-rebase)))
11206 (home-page "https://github.com/nikita-volkov/rerebase")
11207 (synopsis "Reexports from ``base'' with many other standard libraries")
11208 (description "A rich drop-in replacement for @code{base}. For details and
11209documentation please visit @uref{https://github.com/nikita-volkov/rerebase,
11210the project's home page}.")
11211 (license license:expat)))
11212
11213(define-public ghc-resolv
11214 (package
11215 (name "ghc-resolv")
87309478 11216 (version "0.1.1.2")
dddbc90c
RV
11217 (source
11218 (origin
11219 (method url-fetch)
11220 (uri (string-append
11221 "https://hackage.haskell.org/package/resolv/resolv-"
11222 version ".tar.gz"))
11223 (sha256
11224 (base32
87309478 11225 "0wczdy3vmpfcfwjn1m95bygc5d83m97xxmavhdvy5ayn8c402fp4"))))
dddbc90c
RV
11226 (build-system haskell-build-system)
11227 (arguments
87309478
TS
11228 `(#:phases
11229 (modify-phases %standard-phases
11230 (add-before 'configure 'update-constraints
11231 (lambda _
11232 (substitute* "resolv.cabal"
11233 (("tasty >= 1\\.1 && < 1\\.2")
11234 "tasty >= 1.1 && < 1.3"))
11235 #t)))))
dddbc90c
RV
11236 (inputs
11237 `(("ghc-base16-bytestring" ,ghc-base16-bytestring)))
87309478
TS
11238 (native-inputs
11239 `(("ghc-tasty" ,ghc-tasty)
11240 ("ghc-tasty-hunit" ,ghc-tasty-hunit)))
dddbc90c
RV
11241 (home-page "https://github.com/haskell/hackage-security")
11242 (synopsis "Domain Name Service (DNS) lookup via @code{libresolv}")
11243 (description "This package implements an API for accessing the
11244@uref{https://tools.ietf.org/html/rfc1035, Domain Name Service (DNS)}
11245resolver service via the standard @code{libresolv} system library (whose
11246API is often available directly via the standard @code{libc} C library) on
11247Unix systems.")
11248 (license license:gpl3)))
11249
11250(define-public ghc-resource-pool
11251 (package
11252 (name "ghc-resource-pool")
11253 (version "0.2.3.2")
11254 (source
11255 (origin
11256 (method url-fetch)
11257 (uri (string-append "https://hackage.haskell.org/package/"
11258 "resource-pool-" version "/"
11259 "resource-pool-" version ".tar.gz"))
11260 (sha256
11261 (base32
11262 "04mw8b9djb14zp4rdi6h7mc3zizh597ffiinfbr4m0m8psifw9w6"))))
11263 (build-system haskell-build-system)
11264 (inputs `(("ghc-hashable" ,ghc-hashable)
11265 ("ghc-monad-control" ,ghc-monad-control)
11266 ("ghc-transformers-base" ,ghc-transformers-base)
11267 ("ghc-vector" ,ghc-vector)))
11268 (home-page "https://github.com/bos/pool")
11269 (synopsis "Striped resource pooling implementation in Haskell")
11270 (description "This Haskell package provides striped pooling abstraction
11271for managing flexibly-sized collections of resources such as database
11272connections.")
11273 (license license:bsd-3)))
11274
11275(define-public ghc-resourcet
11276 (package
11277 (name "ghc-resourcet")
9ac341ac 11278 (version "1.2.2")
dddbc90c
RV
11279 (source
11280 (origin
11281 (method url-fetch)
11282 (uri (string-append "https://hackage.haskell.org/package/resourcet/"
11283 "resourcet-" version ".tar.gz"))
11284 (sha256
11285 (base32
9ac341ac 11286 "1rfbfcv3r1h29y0yqr3x6a1s04lbc3vzm3jqnfg4f9rqp9d448qk"))))
dddbc90c
RV
11287 (build-system haskell-build-system)
11288 (inputs
11289 `(("ghc-transformers-base" ,ghc-transformers-base)
11290 ("ghc-monad-control" ,ghc-monad-control)
11291 ("ghc-transformers-compat" ,ghc-transformers-compat)
11292 ("ghc-mmorph" ,ghc-mmorph)
11293 ("ghc-exceptions" ,ghc-exceptions)
11294 ("ghc-unliftio-core" ,ghc-unliftio-core)))
11295 (native-inputs
11296 `(("ghc-lifted-base" ,ghc-lifted-base)
11297 ("ghc-hspec" ,ghc-hspec)))
11298 (home-page "https://github.com/snoyberg/conduit")
11299 (synopsis "Deterministic allocation and freeing of scarce resources")
11300 (description "ResourceT is a monad transformer which creates a region of
11301code where you can safely allocate resources.")
11302 (license license:bsd-3)))
11303
b9debc37
TS
11304(define-public ghc-retry
11305 (package
11306 (name "ghc-retry")
11307 (version "0.8.1.0")
11308 (source
11309 (origin
11310 (method url-fetch)
11311 (uri (string-append "https://hackage.haskell.org/package/"
11312 "retry/retry-" version ".tar.gz"))
11313 (sha256
11314 (base32
11315 "02k03r86amg1vbrsvb644342ym13d9jwkzki9sk93pdg5l8j35dj"))))
11316 (build-system haskell-build-system)
11317 (inputs
11318 `(("ghc-exceptions" ,ghc-exceptions)
11319 ("ghc-random" ,ghc-random)))
11320 (native-inputs
11321 `(("ghc-hunit" ,ghc-hunit)
11322 ("ghc-tasty" ,ghc-tasty)
11323 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
11324 ("ghc-tasty-hedgehog" ,ghc-tasty-hedgehog)
11325 ("ghc-hedgehog" ,ghc-hedgehog)))
702a1012 11326 (home-page "https://github.com/Soostone/retry")
b9debc37
TS
11327 (synopsis "Retry combinators for monadic actions that may fail")
11328 (description "This package exposes combinators that can wrap
11329arbitrary monadic actions. They run the action and potentially retry
11330running it with some configurable delay for a configurable number of
11331times. The purpose is to make it easier to work with IO and especially
11332network IO actions that often experience temporary failure and warrant
11333retrying of the original action. For example, a database query may time
11334out for a while, in which case we should hang back for a bit and retry
11335the query instead of simply raising an exception.")
11336 (license license:bsd-3)))
11337
dddbc90c
RV
11338(define-public ghc-rfc5051
11339 (package
11340 (name "ghc-rfc5051")
ec42ab7c 11341 (version "0.1.0.4")
dddbc90c
RV
11342 (source
11343 (origin
11344 (method url-fetch)
11345 (uri (string-append "https://hackage.haskell.org/package/rfc5051/"
11346 "rfc5051-" version ".tar.gz"))
11347 (sha256
11348 (base32
ec42ab7c 11349 "1lxkq414ni986ciml4gbvf463fn55z299knky7pq3ixb1qislpb1"))))
dddbc90c
RV
11350 (build-system haskell-build-system)
11351 (home-page "https://hackage.haskell.org/package/rfc5051")
11352 (synopsis "Simple unicode collation as per RFC5051")
11353 (description
11354 "This library implements @code{unicode-casemap}, the simple, non
11355locale-sensitive unicode collation algorithm described in RFC 5051. Proper
11356unicode collation can be done using @code{text-icu}, but that is a big
11357dependency that depends on a large C library, and @code{rfc5051} might be
11358better for some purposes.")
11359 (license license:bsd-3)))
11360
11361(define-public ghc-rio
11362 (package
11363 (name "ghc-rio")
8bda2fa7 11364 (version "0.1.12.0")
dddbc90c
RV
11365 (source
11366 (origin
11367 (method url-fetch)
11368 (uri (string-append
11369 "https://hackage.haskell.org/package/rio/rio-"
11370 version ".tar.gz"))
11371 (sha256
11372 (base32
8bda2fa7 11373 "0xzjkh6aavynpyskikhs8dmv0zhkiqiwz9zdn80zbd25b2182pif"))))
dddbc90c
RV
11374 (build-system haskell-build-system)
11375 (inputs
11376 `(("ghc-exceptions" ,ghc-exceptions)
11377 ("ghc-hashable" ,ghc-hashable)
11378 ("ghc-microlens" ,ghc-microlens)
11379 ("ghc-primitive" ,ghc-primitive)
11380 ("ghc-typed-process" ,ghc-typed-process)
11381 ("ghc-unliftio" ,ghc-unliftio)
11382 ("ghc-unordered-containers" ,ghc-unordered-containers)
11383 ("ghc-vector" ,ghc-vector)))
11384 (native-inputs
11385 `(("ghc-hspec" ,ghc-hspec)
11386 ("hspec-discover" ,hspec-discover)))
11387 (home-page "https://github.com/commercialhaskell/rio#readme")
11388 (synopsis "A standard library for Haskell")
11389 (description "This package works as a prelude replacement for Haskell,
11390providing more functionality and types out of the box than the standard
11391prelude (such as common data types like @code{ByteString} and
11392@code{Text}), as well as removing common ``gotchas'', like partial
11393functions and lazy I/O. The guiding principle here is:
11394@itemize
11395@item If something is safe to use in general and has no expected naming
11396conflicts, expose it.
11397@item If something should not always be used, or has naming conflicts,
11398expose it from another module in the hierarchy.
11399@end itemize")
11400 (license license:expat)))
11401
11402(define-public ghc-safe
11403 (package
11404 (name "ghc-safe")
11405 (version "0.3.17")
11406 (source
11407 (origin
11408 (method url-fetch)
11409 (uri (string-append
11410 "https://hackage.haskell.org/package/safe/safe-"
11411 version
11412 ".tar.gz"))
11413 (sha256
11414 (base32
11415 "0p3yaf5slvyz1cyy51jq64c5rlp8yzwim8iy2dlnk42if4gc9ibr"))))
11416 (build-system haskell-build-system)
11417 (native-inputs
11418 `(("ghc-quickcheck" ,ghc-quickcheck)))
11419 (home-page "https://github.com/ndmitchell/safe#readme")
11420 (synopsis "Library of safe (exception free) functions")
11421 (description "This library provides wrappers around @code{Prelude} and
11422@code{Data.List} functions, such as @code{head} and @code{!!}, that can throw
11423exceptions.")
11424 (license license:bsd-3)))
11425
11426(define-public ghc-safe-exceptions
11427 (package
11428 (name "ghc-safe-exceptions")
11429 (version "0.1.7.0")
11430 (source
11431 (origin
11432 (method url-fetch)
11433 (uri (string-append "https://hackage.haskell.org/package/"
11434 "safe-exceptions/safe-exceptions-"
11435 version ".tar.gz"))
11436 (sha256
11437 (base32
11438 "0sd0zfsm9pcll5bzzj523rbn45adjrnavdkz52hgmdjjgdcdrk8q"))))
11439 (build-system haskell-build-system)
11440 (arguments
11441 '(#:cabal-revision
11442 ("4" "0fid41gishzsyb47wzxhd5falandfirqcp760hcja81qjpfmqd32")))
11443 (inputs `(("ghc-exceptions" ,ghc-exceptions)))
11444 (native-inputs
11445 `(("ghc-hspec" ,ghc-hspec)
11446 ("ghc-void" ,ghc-void)
11447 ("hspec-discover" ,hspec-discover)))
11448 (home-page "https://github.com/fpco/safe-exceptions")
11449 (synopsis "Safe, consistent, and easy exception handling")
11450 (description "Runtime exceptions - as exposed in @code{base} by the
11451@code{Control.Exception} module - have long been an intimidating part of the
11452Haskell ecosystem. This package is intended to overcome this. It provides a
11453safe and simple API on top of the existing exception handling machinery. The
11454API is equivalent to the underlying implementation in terms of power but
11455encourages best practices to minimize the chances of getting the exception
11456handling wrong.")
11457 (license license:expat)))
11458
11459(define-public ghc-safeio
11460 (package
11461 (name "ghc-safeio")
11462 (version "0.0.5.0")
11463 (source
11464 (origin
11465 (method url-fetch)
11466 (uri (string-append "https://hackage.haskell.org/package/safeio/"
11467 "safeio-" version ".tar.gz"))
11468 (sha256
11469 (base32
11470 "04g3070cbjdqj0h9l9ii6470xcbn40xfv4fr89a8yvnkdim9nyfm"))))
11471 (build-system haskell-build-system)
11472 (inputs
11473 `(("ghc-conduit" ,ghc-conduit)
11474 ("ghc-conduit-combinators" ,ghc-conduit-combinators)
11475 ("ghc-exceptions" ,ghc-exceptions)
11476 ("ghc-resourcet" ,ghc-resourcet)))
11477 (native-inputs
11478 `(("ghc-hunit" ,ghc-hunit)
11479 ("ghc-test-framework" ,ghc-test-framework)
11480 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
11481 ("ghc-test-framework-th" ,ghc-test-framework-th)))
11482 (home-page "https://github.com/luispedro/safeio")
11483 (synopsis "Write output to disk atomically")
11484 (description
11485 "This package implements utilities to perform atomic output so as to
11486avoid the problem of partial intermediate files.")
11487 (license license:expat)))
11488
11489(define-public ghc-safesemaphore
11490 (package
11491 (name "ghc-safesemaphore")
11492 (version "0.10.1")
11493 (source
11494 (origin
11495 (method url-fetch)
11496 (uri (string-append "https://hackage.haskell.org/package/"
11497 "SafeSemaphore/SafeSemaphore-" version ".tar.gz"))
11498 (sha256
11499 (base32
11500 "0rpg9j6fy70i0b9dkrip9d6wim0nac0snp7qzbhykjkqlcvvgr91"))))
11501 (build-system haskell-build-system)
11502 (native-inputs
11503 `(("ghc-hunit" ,ghc-hunit)))
11504 (home-page "https://github.com/ChrisKuklewicz/SafeSemaphore")
11505 (synopsis "Exception safe semaphores")
11506 (description "This library provides exception safe semaphores that can be
11507used in place of @code{QSem}, @code{QSemN}, and @code{SampleVar}, all of which
11508are not exception safe and can be broken by @code{killThread}.")
11509 (license license:bsd-3)))
11510
11511(define-public ghc-sandi
11512 (package
11513 (name "ghc-sandi")
b867c2b0 11514 (version "0.5")
dddbc90c
RV
11515 (source
11516 (origin
11517 (method url-fetch)
11518 (uri (string-append
11519 "https://hackage.haskell.org/package/sandi/sandi-"
11520 version ".tar.gz"))
11521 (sha256
11522 (base32
b867c2b0 11523 "1ndgai8idlxyccvkz5zsgq06v58blc30i6hkky5b1sf5x6gs2h29"))))
dddbc90c
RV
11524 (build-system haskell-build-system)
11525 (inputs
11526 `(("ghc-stringsearch" ,ghc-stringsearch)
11527 ("ghc-conduit" ,ghc-conduit)
11528 ("ghc-exceptions" ,ghc-exceptions)
11529 ("ghc-hunit" ,ghc-hunit)
11530 ("ghc-tasty" ,ghc-tasty)
11531 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
11532 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
11533 ("ghc-tasty-th" ,ghc-tasty-th)))
11534 (home-page "https://hackage.haskell.org/package/sandi")
11535 (synopsis "Data encoding library")
11536 (description "Reasonably fast data encoding library.")
11537 (license license:bsd-3)))
11538
4da75228
ASM
11539(define-public ghc-say
11540 (package
11541 (name "ghc-say")
11542 (version "0.1.0.1")
11543 (source
11544 (origin
11545 (method url-fetch)
11546 (uri (string-append
11547 "https://hackage.haskell.org/package/say/say-"
11548 version
11549 ".tar.gz"))
11550 (sha256
11551 (base32
11552 "1r5kffjfwpas45g74sip8glrj1m9nygrnxjm7xgw898rq9pnafgn"))))
11553 (build-system haskell-build-system)
11554 (native-inputs
11555 `(("ghc-hspec" ,ghc-hspec)
11556 ("hspec-discover" ,hspec-discover)
11557 ("ghc-unliftio" ,ghc-unliftio)))
11558 (home-page "https://github.com/fpco/say")
11559 (synopsis
11560 "Send textual messages to a Handle in a thread-friendly way")
11561 (description
11562 "A thread safe API to write a line of textual data to a Handle, such
11563as sending some messages to the terminal - that has the following properties:
11564@itemize
11565@item Properly handle character encoding settings on the Handle
11566@item For reasonably sized messages, ensure that the entire message is written
11567 in one chunk to avoid interleaving data with other threads
11568@item Avoid unnecessary memory allocations and copies
11569@item Minimize locking.
11570@end itemize")
11571 (license license:expat)))
11572
dddbc90c
RV
11573(define-public ghc-scientific
11574 (package
11575 (name "ghc-scientific")
11576 (version "0.3.6.2")
11577 (source
11578 (origin
11579 (method url-fetch)
11580 (uri (string-append
11581 "https://hackage.haskell.org/package/scientific/scientific-"
11582 version
11583 ".tar.gz"))
11584 (sha256
11585 (base32
11586 "03ql2f0ac8bsl524idy9xxa3kxisb2sj3avflzw580j5hzy0m397"))))
11587 (build-system haskell-build-system)
11588 (inputs
11589 `(("ghc-integer-logarithms" ,ghc-integer-logarithms)
11590 ("ghc-hashable" ,ghc-hashable)
11591 ("ghc-primitive" ,ghc-primitive)))
11592 (native-inputs
11593 `(("ghc-tasty" ,ghc-tasty)
11594 ("ghc-tasty-ant-xml" ,ghc-tasty-ant-xml)
11595 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
11596 ("ghc-tasty-smallcheck" ,ghc-tasty-smallcheck)
11597 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
11598 ("ghc-smallcheck" ,ghc-smallcheck)
11599 ("ghc-quickcheck" ,ghc-quickcheck)))
11600 (home-page "https://github.com/basvandijk/scientific")
11601 (synopsis "Numbers represented using scientific notation")
11602 (description "This package provides @code{Data.Scientific}, which provides
11603the number type @code{Scientific}. Scientific numbers are arbitrary precision
11604and space efficient. They are represented using
11605@uref{https://en.wikipedia.org/wiki/Scientific_notation, scientific
11606notation}.")
11607 (license license:bsd-3)))
11608
11609(define-public ghc-scientific-bootstrap
11610 (package
11611 (inherit ghc-scientific)
11612 (name "ghc-scientific-bootstrap")
11613 (arguments `(#:tests? #f))
11614 (inputs
11615 `(("ghc-integer-logarithms" ,ghc-integer-logarithms-bootstrap)
11616 ("ghc-hashable" ,ghc-hashable)
11617 ("ghc-primitive" ,ghc-primitive)))
11618 (native-inputs '())
799d8d3c 11619 (properties '((hidden? #t)))))
dddbc90c
RV
11620
11621(define-public ghc-sdl
11622 (package
11623 (name "ghc-sdl")
11624 (version "0.6.7.0")
11625 (source
11626 (origin
11627 (method url-fetch)
11628 (uri (string-append
11629 "https://hackage.haskell.org/package/SDL/SDL-"
11630 version
11631 ".tar.gz"))
11632 (sha256
11633 (base32
11634 "00y67v80a8l09i3k76z09lg25kw72ivl09nag8ckdlk4a0cfnzfq"))))
11635 (build-system haskell-build-system)
11636 (inputs
11637 `(("sdl" ,sdl)))
11638 (home-page "https://hackage.haskell.org/package/SDL")
11639 (synopsis "LibSDL for Haskell")
11640 (description "Simple DirectMedia Layer (libSDL) is a cross-platform
11641multimedia library designed to provide low level access to audio, keyboard,
11642mouse, joystick, 3D hardware via OpenGL, and 2D video framebuffer. It is used
11643by MPEG playback software, emulators, and many popular games, including the
11644award winning Linux port of \"Civilization: Call To Power.\"")
11645 (license license:bsd-3)))
11646
1874cdc1
RV
11647(define-public ghc-sdl2
11648 (package
11649 (name "ghc-sdl2")
145148ca 11650 (version "2.5.0.0")
1874cdc1
RV
11651 (source
11652 (origin
11653 (method url-fetch)
11654 (uri (string-append "https://hackage.haskell.org/package/"
11655 "sdl2/sdl2-" version ".tar.gz"))
11656 (sha256
11657 (base32
145148ca 11658 "1x368yhdd55b3cvx8dvj1sj6nzygzigbhrwhssjs4k0rcxlwqfw8"))))
1874cdc1
RV
11659 (build-system haskell-build-system)
11660 (arguments '(#:tests? #f)) ; tests require graphical environment
11661 (inputs
11662 `(("ghc-exceptions" ,ghc-exceptions)
11663 ("ghc-linear" ,ghc-linear)
11664 ("ghc-statevar" ,ghc-statevar)
11665 ("ghc-vector" ,ghc-vector)
11666 ("sdl2" ,sdl2)))
11667 (native-inputs
11668 `(("ghc-weigh" ,ghc-weigh)
11669 ("pkg-config" ,pkg-config)))
35437dbf 11670 (home-page "https://hackage.haskell.org/package/sdl2")
1874cdc1
RV
11671 (synopsis "High- and low-level bindings to the SDL library")
11672 (description
11673 "This package contains bindings to the SDL 2 library, in both high- and
11674low-level forms. The @code{SDL} namespace contains high-level bindings, where
11675enumerations are split into sum types, and we perform automatic
11676error-checking. The @code{SDL.Raw} namespace contains an almost 1-1
11677translation of the C API into Haskell FFI calls. As such, this does not
11678contain sum types nor error checking. Thus this namespace is suitable for
11679building your own abstraction over SDL, but is not recommended for day-to-day
11680programming.")
11681 (license license:bsd-3)))
11682
11683(define-public ghc-sdl2-image
11684 (package
11685 (name "ghc-sdl2-image")
11686 (version "2.0.0")
11687 (source
11688 (origin
11689 (method url-fetch)
11690 (uri (string-append "https://hackage.haskell.org/package/sdl2-image/"
11691 "sdl2-image-" version ".tar.gz"))
11692 (sha256
11693 (base32
11694 "1pr6dkg73cy9z0w54lrkj9c5bhxj56nl92lxikjy8kz6nyr455rr"))))
11695 (build-system haskell-build-system)
11696 (inputs
11697 `(("ghc-sdl2" ,ghc-sdl2)
11698 ("sdl2-image" ,sdl2-image)))
11699 (native-inputs
11700 `(("pkg-config" ,pkg-config)))
3ef91e15 11701 (home-page "https://hackage.haskell.org/package/sdl2-image")
1874cdc1
RV
11702 (synopsis "Bindings to SDL2_image")
11703 (description "This package provides Haskell bindings to
11704@code{SDL2_image}.")
11705 (license license:expat)))
11706
11707(define-public ghc-sdl2-mixer
11708 (package
11709 (name "ghc-sdl2-mixer")
11710 (version "1.1.0")
11711 (source
11712 (origin
11713 (method url-fetch)
11714 (uri (string-append "https://hackage.haskell.org/package/sdl2-mixer/"
11715 "sdl2-mixer-" version ".tar.gz"))
11716 (sha256
11717 (base32
11718 "1k8avyccq5l9z7bwxigim312yaancxl1sr3q6a96bcm7pnhiak0g"))))
11719 (build-system haskell-build-system)
11720 (inputs
11721 `(("ghc-data-default-class" ,ghc-data-default-class)
11722 ("ghc-lifted-base" ,ghc-lifted-base)
11723 ("ghc-monad-control" ,ghc-monad-control)
11724 ("ghc-sdl2" ,ghc-sdl2)
11725 ("ghc-vector" ,ghc-vector)
11726 ("sdl2-mixer" ,sdl2-mixer)))
11727 (native-inputs
11728 `(("pkg-config" ,pkg-config)))
3ef91e15 11729 (home-page "https://hackage.haskell.org/package/sdl2-mixer")
1874cdc1
RV
11730 (synopsis "Bindings to SDL2 mixer")
11731 (description "This package provides Haskell bindings to
11732@code{SDL2_mixer}.")
11733 (license license:bsd-3)))
11734
dddbc90c
RV
11735(define-public ghc-sdl-image
11736 (package
11737 (name "ghc-sdl-image")
11738 (version "0.6.2.0")
11739 (source
11740 (origin
11741 (method url-fetch)
11742 (uri (string-append
11743 "https://hackage.haskell.org/package/SDL-image/SDL-image-"
11744 version
11745 ".tar.gz"))
11746 (sha256
11747 (base32
11748 "1gxwrvswgwjw6g7ym52gik22l9l3ljy592phv97jdmcf3gi6qcg1"))))
11749 (build-system haskell-build-system)
11750 (arguments
11751 `(#:configure-flags
11752 (let* ((sdl-image (assoc-ref %build-inputs "sdl-image"))
11753 (sdl-image-include (string-append sdl-image "/include/SDL")))
11754 (list (string-append "--extra-include-dirs=" sdl-image-include)))))
11755 (inputs
11756 `(("ghc-sdl" ,ghc-sdl)
11757 ("sdl-image" ,sdl-image)))
11758 (home-page "https://hackage.haskell.org/package/SDL-image")
11759 (synopsis "Haskell bindings to libSDL_image")
11760 (description "SDL_image is an image file loading library. It loads images
11761as SDL surfaces, and supports the following formats: BMP, GIF, JPEG, LBM, PCX,
11762PNG, PNM, TGA, TIFF, XCF, XPM, XV.")
11763 (license license:bsd-3)))
11764
11765(define-public ghc-sdl-mixer
11766 (package
11767 (name "ghc-sdl-mixer")
11768 (version "0.6.3.0")
11769 (source
11770 (origin
11771 (method url-fetch)
11772 (uri (string-append
11773 "https://hackage.haskell.org/package/SDL-mixer/SDL-mixer-"
11774 version
11775 ".tar.gz"))
11776 (sha256
11777 (base32
11778 "0k26hqgdh789ka3mv4dsk6rin6x6vwcs6hjmnsqq7j3mnrh1342r"))))
11779 (build-system haskell-build-system)
11780 (arguments
11781 `(#:configure-flags
11782 (let* ((sdl-mixer (assoc-ref %build-inputs "sdl-mixer"))
11783 (sdl-mixer-include (string-append sdl-mixer "/include/SDL")))
11784 (list (string-append "--extra-include-dirs=" sdl-mixer-include)))))
11785 (inputs
11786 `(("ghc-sdl" ,ghc-sdl)
11787 ("sdl-mixer" ,sdl-mixer)))
11788 (home-page "https://hackage.haskell.org/package/SDL-mixer")
11789 (synopsis "Haskell bindings to libSDL_mixer")
11790 (description "SDL_mixer is a sample multi-channel audio mixer library. It
11791supports any number of simultaneously playing channels of 16 bit stereo audio,
11792plus a single channel of music, mixed by the popular MikMod MOD, Timidity
11793MIDI, Ogg Vorbis, and SMPEG MP3 libraries.")
11794 (license license:bsd-3)))
11795
11796(define-public ghc-securemem
11797 (package
11798 (name "ghc-securemem")
11799 (version "0.1.10")
11800 (source
11801 (origin
11802 (method url-fetch)
11803 (uri (string-append "https://hackage.haskell.org/package/"
11804 "securemem-" version "/"
11805 "securemem-" version ".tar.gz"))
11806 (sha256
11807 (base32
11808 "19hnw2cfbsfjynxq1bq9f6djbxhsc1k751ml0y1ab3ah913mm29j"))))
11809 (build-system haskell-build-system)
11810 (inputs `(("ghc-byteable" ,ghc-byteable)
11811 ("ghc-memory" ,ghc-memory)))
11812 (home-page "https://github.com/vincenthz/hs-securemem")
11813 (synopsis "Auto-scrubbing and const-time-eq memory chunk abstraction for
11814Haskell")
11815 (description "SecureMem is similar to ByteString, except that it provides
11816a memory chunk that will be auto-scrubbed after it run out of scope.")
11817 (license license:bsd-3)))
11818
3cf7219c
JS
11819(define-public ghc-semialign
11820 (package
11821 (name "ghc-semialign")
11822 (version "1")
11823 (source
11824 (origin
11825 (method url-fetch)
11826 (uri (string-append
11827 "https://hackage.haskell.org/package/semialign/semialign-"
11828 version
11829 ".tar.gz"))
11830 (sha256
11831 (base32
11832 "004x0a80sqqdgvsyk4z0nasxpi6z3g1d8kgwj804bj9ka8dlc75m"))))
11833 (build-system haskell-build-system)
11834 (inputs
11835 `(("ghc-these" ,ghc-these)
11836 ("ghc-base-compat" ,ghc-base-compat)
11837 ("ghc-hashable" ,ghc-hashable)
11838 ("ghc-tagged" ,ghc-tagged)
11839 ("ghc-unordered-containers" ,ghc-unordered-containers)
11840 ("ghc-vector" ,ghc-vector)
11841 ("ghc-semigroupoids" ,ghc-semigroupoids)))
11842 (arguments
11843 `(#:cabal-revision
11844 ("1"
11845 "0qnqnyfng4kwy2h2anrcy5id2ijnawava3zcc5h5b8ri1y6ks6zi")))
11846 (home-page
11847 "https://github.com/isomorphism/these")
11848 (synopsis
11849 "Align and Zip type-classes from the common Semialign ancestor ")
11850 (description
11851 "The major use of @code{These} of this is provided by the
11852@code{align} member of @code{Semialign} class, representing a
11853generalized notion of \"zipping with padding\" that combines
11854structures without truncating to the size of the smaller input. It
11855turns out that @code{zip} operation fits well the @code{Semialign}
11856class, forming lattice-like structure.")
11857 (license license:bsd-3)))
11858
dddbc90c
RV
11859(define-public ghc-semigroupoids
11860 (package
11861 (name "ghc-semigroupoids")
a8aaadf2 11862 (version "5.3.3")
dddbc90c
RV
11863 (source
11864 (origin
11865 (method url-fetch)
11866 (uri (string-append
11867 "https://hackage.haskell.org/package/semigroupoids/semigroupoids-"
11868 version
11869 ".tar.gz"))
11870 (sha256
11871 (base32
a8aaadf2 11872 "016hc4imr9l4szs3p7f1aahvxr5wv4clvr3qzrm3nibssg5vrs61"))))
dddbc90c 11873 (build-system haskell-build-system)
95eb946b 11874 (outputs '("out" "static" "doc"))
dddbc90c
RV
11875 (inputs
11876 `(("ghc-base-orphans" ,ghc-base-orphans)
11877 ("ghc-transformers-compat" ,ghc-transformers-compat)
11878 ("ghc-bifunctors" ,ghc-bifunctors)
11879 ("ghc-comonad" ,ghc-comonad)
11880 ("ghc-contravariant" ,ghc-contravariant)
11881 ("ghc-distributive" ,ghc-distributive)
11882 ("ghc-hashable" ,ghc-hashable)
11883 ("ghc-semigroups" ,ghc-semigroups)
11884 ("ghc-tagged" ,ghc-tagged)
11885 ("ghc-unordered-containers" ,ghc-unordered-containers)))
11886 (native-inputs
11887 `(("cabal-doctest" ,cabal-doctest)
11888 ("ghc-doctest" ,ghc-doctest)))
11889 (home-page "https://github.com/ekmett/semigroupoids")
11890 (synopsis "Semigroupoids operations for Haskell")
11891 (description "This library provides a wide array of (semi)groupoids and
11892operations for working with them. A @code{Semigroupoid} is a @code{Category}
11893without the requirement of identity arrows for every object in the category.
11894A @code{Category} is any @code{Semigroupoid} for which the Yoneda lemma holds.
11895Finally, to work with these weaker structures it is beneficial to have
11896containers that can provide stronger guarantees about their contents, so
11897versions of @code{Traversable} and @code{Foldable} that can be folded with
11898just a @code{Semigroup} are added.")
11899 (license license:bsd-3)))
11900
11901(define-public ghc-semigroups
11902 (package
11903 (name "ghc-semigroups")
11904 (version "0.18.5")
11905 (source
11906 (origin
11907 (method url-fetch)
11908 (uri (string-append
11909 "https://hackage.haskell.org/package/semigroups/semigroups-"
11910 version
11911 ".tar.gz"))
11912 (sha256
11913 (base32
11914 "17g29h62g1k51ghhvzkw72zksjgi6vs6bfipkj81pqw1dsprcamb"))))
11915 (build-system haskell-build-system)
11916 (inputs
11917 `(("ghc-nats" ,ghc-nats)
11918 ("ghc-tagged" ,ghc-tagged)
11919 ("ghc-unordered-containers" ,ghc-unordered-containers)
11920 ("ghc-hashable" ,ghc-hashable)))
11921 (home-page "https://github.com/ekmett/semigroups/")
11922 (synopsis "Semigroup operations for Haskell")
11923 (description "This package provides semigroups for Haskell. In
11924mathematics, a semigroup is an algebraic structure consisting of a set
11925together with an associative binary operation. A semigroup generalizes a
11926monoid in that there might not exist an identity element. It
11927also (originally) generalized a group (a monoid with all inverses) to a type
11928where every element did not have to have an inverse, thus the name
11929semigroup.")
11930 (license license:bsd-3)))
11931
11932(define-public ghc-semigroups-bootstrap
11933 (package
11934 (inherit ghc-semigroups)
11935 (name "ghc-semigroups-bootstrap")
11936 (inputs
11937 `(("ghc-nats" ,ghc-nats-bootstrap)
11938 ("ghc-tagged" ,ghc-tagged)
11939 ("ghc-unordered-containers" ,ghc-unordered-containers-bootstrap)
11940 ("ghc-hashable" ,ghc-hashable-bootstrap)))
799d8d3c 11941 (properties '((hidden? #t)))))
dddbc90c 11942
47c526df
JS
11943(define-public ghc-serialise
11944 (package
11945 (name "ghc-serialise")
11946 (version "0.2.1.0")
11947 (source
11948 (origin
11949 (method url-fetch)
11950 (uri (string-append
11951 "mirror://hackage/package/serialise/serialise-"
11952 version
11953 ".tar.gz"))
11954 (sha256
11955 (base32
11956 "19ary6ivzk8z7wcxhm860qmh7pwqj0qjqzav1h42y85l608zqgh4"))))
11957 (build-system haskell-build-system)
11958 (inputs
11959 `(("ghc-cborg" ,ghc-cborg)
11960 ("ghc-half" ,ghc-half)
11961 ("ghc-hashable" ,ghc-hashable)
11962 ("ghc-primitive" ,ghc-primitive)
11963 ("ghc-unordered-containers" ,ghc-unordered-containers)
11964 ("ghc-vector" ,ghc-vector)))
11965 (native-inputs
11966 `(("ghc-quickcheck" ,ghc-quickcheck)
11967 ("ghc-tasty" ,ghc-tasty)
11968 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
11969 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
11970 ("ghc-quickcheck-instances" ,ghc-quickcheck-instances)))
11971 (arguments
11972 `(#:cabal-revision
11973 ("1" "1rknhad1i8bpknsnphmcmb6dnb48c2p2c13ia2qqch3hkhsvfpr6")))
11974 (home-page "https://github.com/well-typed/cborg")
11975 (synopsis "Binary serialisation library for Haskell values")
11976 (description
11977 "This package (formerly binary-serialise-cbor) provides pure,
11978efficient serialization of Haskell values directly into ByteStrings for
11979storage or transmission purposes. By providing a set of type class instances,
11980you can also serialise any custom data type you have as well.
11981
11982The underlying binary format used is the 'Concise Binary Object
11983Representation', or CBOR, specified in RFC 7049. As a result, serialised
11984Haskell values have implicit structure outside of the Haskell program itself,
11985meaning they can be inspected or analyzed without custom tools.
11986
11987An implementation of the standard bijection between CBOR and JSON is
11988provided by the https://hackage.haskell.org/package/cborg-json
11989package. Also see https://hackage.haskell.org/package/cbor-tool for a
11990convenient command-line utility for working with CBOR data.")
11991 (license license:bsd-3)))
11992
dddbc90c
RV
11993(define-public ghc-setenv
11994 (package
11995 (name "ghc-setenv")
11996 (version "0.1.1.3")
11997 (source
11998 (origin
11999 (method url-fetch)
12000 (uri (string-append
12001 "https://hackage.haskell.org/package/setenv/setenv-"
12002 version
12003 ".tar.gz"))
12004 (sha256
12005 (base32
12006 "0cnbgrvb9byyahb37zlqrj05rj25v190crgcw8wmlgf0mwwxyn73"))))
12007 (build-system haskell-build-system)
12008 (home-page "https://hackage.haskell.org/package/setenv")
12009 (synopsis "Library for setting environment variables")
12010 (description "This package provides a Haskell library for setting
12011environment variables.")
12012 (license license:expat)))
12013
12014(define-public ghc-setlocale
12015 (package
12016 (name "ghc-setlocale")
9d7cfc9b 12017 (version "1.0.0.9")
dddbc90c
RV
12018 (source (origin
12019 (method url-fetch)
12020 (uri (string-append
12021 "https://hackage.haskell.org/package/setlocale-"
12022 version "/setlocale-" version ".tar.gz"))
12023 (sha256
12024 (base32
9d7cfc9b 12025 "18b6xafspzxrmz5m9r9nzy3z053crqi59xc8n8aqd4gw0pvqdcrv"))))
dddbc90c
RV
12026 (build-system haskell-build-system)
12027 (home-page "https://hackage.haskell.org/package/setlocale")
12028 (synopsis "Haskell bindings to setlocale")
12029 (description "This package provides Haskell bindings to the
12030@code{setlocale} C function.")
12031 (license license:bsd-3)))
12032
12033(define-public ghc-shakespeare
12034 (package
12035 (name "ghc-shakespeare")
f680955f 12036 (version "2.0.22")
dddbc90c
RV
12037 (source
12038 (origin
12039 (method url-fetch)
12040 (uri (string-append "https://hackage.haskell.org/package/"
12041 "shakespeare-" version "/"
12042 "shakespeare-" version ".tar.gz"))
12043 (sha256
12044 (base32
f680955f 12045 "1mc1a0vv070gcawwcx6vzpj6gpfh1qnlqrndiyfic3p500y656vh"))))
dddbc90c
RV
12046 (build-system haskell-build-system)
12047 (inputs `(("ghc-aeson" ,ghc-aeson)
12048 ("ghc-blaze-markup" ,ghc-blaze-markup)
12049 ("ghc-blaze-html" ,ghc-blaze-html)
12050 ("ghc-exceptions" ,ghc-exceptions)
12051 ("ghc-vector" ,ghc-vector)
12052 ("ghc-unordered-containers" ,ghc-unordered-containers)
12053 ("ghc-scientific" ,ghc-scientific)))
12054 (native-inputs `(("ghc-hspec" ,ghc-hspec)
12055 ("ghc-hunit" ,ghc-hunit)
12056 ("hspec-discover" ,hspec-discover)))
12057 (home-page "https://www.yesodweb.com/book/shakespearean-templates")
12058 (synopsis "Family of type-safe template languages for Haskell")
12059 (description "This Haskell package provides a family of type-safe
12060templates with simple variable interpolation. Shakespeare templates can
12061be used inline with a quasi-quoter or in an external file and it
12062interpolates variables according to the type being inserted.")
12063 (license license:expat)))
12064
12065(define-public ghc-shelly
12066 (package
12067 (name "ghc-shelly")
12068 (version "1.8.1")
12069 (source
12070 (origin
12071 (method url-fetch)
12072 (uri (string-append
12073 "https://hackage.haskell.org/package/shelly/shelly-"
12074 version ".tar.gz"))
12075 (sha256
12076 (base32
12077 "023fbvbqs5gdwm30j5517gbdcc7fvz0md70dgwgpypkskj3i926y"))))
12078 (build-system haskell-build-system)
12079 (inputs
12080 `(("ghc-unix-compat" ,ghc-unix-compat)
12081 ("ghc-system-filepath-bootstrap" ,ghc-system-filepath-bootstrap)
12082 ("ghc-system-fileio-bootstrap" ,ghc-system-fileio-bootstrap)
12083 ("ghc-monad-control" ,ghc-monad-control)
12084 ("ghc-lifted-base" ,ghc-lifted-base)
12085 ("ghc-lifted-async" ,ghc-lifted-async)
12086 ("ghc-exceptions" ,ghc-exceptions)
12087 ("ghc-enclosed-exceptions" ,ghc-enclosed-exceptions)
12088 ("ghc-async" ,ghc-async)
12089 ("ghc-transformers-base" ,ghc-transformers-base)
12090 ("ghc-hunit" ,ghc-hunit)
12091 ("ghc-hspec" ,ghc-hspec)
12092 ("ghc-hspec-contrib" ,ghc-hspec-contrib)))
12093 (home-page "https://github.com/yesodweb/Shelly.hs")
12094 (synopsis "Shell-like (systems) programming in Haskell")
12095 (description
12096 "Shelly provides convenient systems programming in Haskell, similar in
12097spirit to POSIX shells. Shelly is originally forked from the Shellish package.")
12098 (license license:bsd-3)))
12099
12100(define-public ghc-silently
12101 (package
12102 (name "ghc-silently")
544bb369 12103 (version "1.2.5.1")
dddbc90c
RV
12104 (source
12105 (origin
12106 (method url-fetch)
12107 (uri (string-append
12108 "https://hackage.haskell.org/package/silently/silently-"
12109 version
12110 ".tar.gz"))
12111 (sha256
12112 (base32
544bb369 12113 "1lgs1gsr5dp0x21diqn4l03fxgai2kgdmj85gqp0iz3zykvbmjbz"))))
dddbc90c
RV
12114 (build-system haskell-build-system)
12115 (arguments `(#:tests? #f)) ;; circular dependency with nanospec
12116 ;; (inputs
12117 ;; `(("ghc-temporary" ,ghc-temporary)))
12118 (home-page "https://github.com/hspec/silently")
12119 (synopsis "Prevent writing to stdout")
12120 (description "This package provides functions to prevent or capture
12121writing to stdout and other handles.")
12122 (license license:bsd-3)))
12123
12124(define-public ghc-simple-reflect
12125 (package
12126 (name "ghc-simple-reflect")
12127 (version "0.3.3")
12128 (source
12129 (origin
12130 (method url-fetch)
12131 (uri (string-append
12132 "https://hackage.haskell.org/package/simple-reflect/simple-reflect-"
12133 version
12134 ".tar.gz"))
12135 (sha256
12136 (base32
12137 "0ayvrx5cm8n6db21jiyjmk5h93pw7cz1707hih09hlhk9jh5x0h7"))))
12138 (build-system haskell-build-system)
12139 (home-page
12140 "https://twanvl.nl/blog/haskell/simple-reflection-of-expressions")
12141 (synopsis
12142 "Simple reflection of expressions containing variables")
12143 (description
12144 "This package allows simple reflection of expressions containing
12145variables. Reflection here means that a Haskell expression is turned into a
12146string. The primary aim of this package is teaching and understanding; there
12147are no options for manipulating the reflected expressions beyond showing
12148them.")
12149 (license license:bsd-3)))
12150
12151(define-public ghc-simple-sendfile
12152 (package
12153 (name "ghc-simple-sendfile")
08f54390 12154 (version "0.2.30")
dddbc90c
RV
12155 (source
12156 (origin
12157 (method url-fetch)
12158 (uri (string-append "https://hackage.haskell.org/package/"
12159 "simple-sendfile-" version "/"
12160 "simple-sendfile-" version ".tar.gz"))
12161 (sha256
12162 (base32
08f54390 12163 "112j0qfsjazf9wg1zywf7hjybgsiywk9wkm27yi8xzv27hmlv1mn"))))
dddbc90c
RV
12164 (build-system haskell-build-system)
12165 (inputs
12166 `(("ghc-conduit" ,ghc-conduit)
12167 ("ghc-conduit-extra" ,ghc-conduit-extra)
12168 ("ghc-network" ,ghc-network)
12169 ("ghc-resourcet" ,ghc-resourcet)))
12170 (native-inputs
12171 `(("ghc-hspec" ,ghc-hspec)
12172 ("hspec-discover" ,hspec-discover)))
12173 (home-page "https://github.com/kazu-yamamoto/simple-sendfile")
12174 (synopsis "Cross platform library for the sendfile system call")
12175 (description "This library tries to call minimum system calls which
12176are the bottleneck of web servers.")
12177 (license license:bsd-3)))
12178
06966c05
TS
12179(define-public ghc-size-based
12180 (package
12181 (name "ghc-size-based")
12182 (version "0.1.2.0")
12183 (source
12184 (origin
12185 (method url-fetch)
12186 (uri (string-append "https://hackage.haskell.org/package/"
12187 "size-based/size-based-" version ".tar.gz"))
12188 (sha256
12189 (base32
12190 "06hmlic0n73ncwlkpx49xlv09bzsrr27ncnp5byhzlknak2gd7vp"))))
12191 (build-system haskell-build-system)
12192 (inputs
12193 `(("ghc-dictionary-sharing" ,ghc-dictionary-sharing)
12194 ("ghc-testing-type-modifiers" ,ghc-testing-type-modifiers)
12195 ("ghc-semigroups" ,ghc-semigroups)))
12196 (arguments
12197 `(#:cabal-revision
12198 ("1" "0kax1ypjyglkn6iff1x4yz12y7f2n249m95xvdhrc63hsa4xlcqv")))
12199 (home-page "https://hackage.haskell.org/package/size-based")
12200 (synopsis "Sized functors for size-based enumerations")
12201 (description "This library provides a framework for size-based
12202enumerations.")
12203 (license license:bsd-3)))
12204
dddbc90c
RV
12205(define-public ghc-skylighting-core
12206 (package
12207 (name "ghc-skylighting-core")
1826c2a8 12208 (version "0.8.2.1")
dddbc90c
RV
12209 (source (origin
12210 (method url-fetch)
12211 (uri (string-append "https://hackage.haskell.org/package/"
12212 "skylighting-core/skylighting-core-"
12213 version ".tar.gz"))
12214 (sha256
12215 (base32
1826c2a8 12216 "0hdchivb4af9w7v5v7lrwfwawd3kcwmpzk69m1vkkm3pis8lcr1s"))))
dddbc90c
RV
12217 (build-system haskell-build-system)
12218 (inputs
12219 `(("ghc-aeson" ,ghc-aeson)
12220 ("ghc-ansi-terminal" ,ghc-ansi-terminal)
12221 ("ghc-attoparsec" ,ghc-attoparsec)
12222 ("ghc-base64-bytestring" ,ghc-base64-bytestring)
12223 ("ghc-blaze-html" ,ghc-blaze-html)
12224 ("ghc-case-insensitive" ,ghc-case-insensitive)
12225 ("ghc-colour" ,ghc-colour)
12226 ("ghc-hxt" ,ghc-hxt)
12227 ("ghc-regex-pcre-builtin" ,ghc-regex-pcre-builtin)
12228 ("ghc-safe" ,ghc-safe)
12229 ("ghc-utf8-string" ,ghc-utf8-string)))
12230 (native-inputs
12231 `(("ghc-diff" ,ghc-diff)
12232 ("ghc-hunit" ,ghc-hunit)
12233 ("ghc-pretty-show" ,ghc-pretty-show)
12234 ("ghc-quickcheck" ,ghc-quickcheck)
12235 ("ghc-tasty" ,ghc-tasty)
12236 ("ghc-tasty-golden" ,ghc-tasty-golden)
12237 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
12238 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
12239 (home-page "https://github.com/jgm/skylighting")
12240 (synopsis "Syntax highlighting library")
12241 (description "Skylighting is a syntax highlighting library with support
12242for over one hundred languages. It derives its tokenizers from XML syntax
12243definitions used by KDE's @code{KSyntaxHighlighting} framework, so any syntax
12244supported by that framework can be added. An optional command-line program is
12245provided. Skylighting is intended to be the successor to highlighting-kate.")
12246 (license license:gpl2)))
12247
12248(define-public ghc-skylighting
12249 (package
12250 (inherit ghc-skylighting-core)
12251 (name "ghc-skylighting")
36c940cf 12252 (version "0.8.2.1")
dddbc90c
RV
12253 (source (origin
12254 (method url-fetch)
12255 (uri (string-append "https://hackage.haskell.org/package/skylighting-"
12256 version "/skylighting-" version ".tar.gz"))
12257 (sha256
12258 (base32
36c940cf 12259 "1xls8ycad77m55ax4hp55k60h3pi5sm3m32hycbc8baixbgfx5xz"))))
dddbc90c
RV
12260 (inputs
12261 `(("ghc-skylighting-core" ,ghc-skylighting-core)
12262 ,@(package-inputs ghc-skylighting-core)))))
12263
12264(define-public ghc-smallcheck
12265 (package
12266 (name "ghc-smallcheck")
12267 (version "1.1.5")
12268 (source
12269 (origin
12270 (method url-fetch)
12271 (uri (string-append
12272 "https://hackage.haskell.org/package/smallcheck/smallcheck-"
12273 version
12274 ".tar.gz"))
12275 (sha256
12276 (base32
12277 "195fj7w3v03d1y1nm2ylavzrwxjcdbq0lb6zsw1dwyx5jmwfc84h"))))
12278 (build-system haskell-build-system)
12279 (inputs
12280 `(("ghc-logict" ,ghc-logict)))
12281 (home-page
12282 "https://github.com/feuerbach/smallcheck")
12283 (synopsis "Property-based testing library")
a84be333 12284 (description "SmallCheck is a testing library that verifies
dddbc90c
RV
12285properties for all test cases up to some depth. The test cases are generated
12286automatically by SmallCheck.")
12287 (license license:bsd-3)))
12288
12289(define-public ghc-socks
12290 (package
12291 (name "ghc-socks")
ab761e9d 12292 (version "0.6.1")
dddbc90c
RV
12293 (source (origin
12294 (method url-fetch)
12295 (uri (string-append "https://hackage.haskell.org/package/"
12296 "socks/socks-" version ".tar.gz"))
12297 (sha256
12298 (base32
ab761e9d 12299 "0wvaxy3dkv97wrncjv1rxrmjr4014hgxz82kixvcwqdhidalfi3k"))))
dddbc90c
RV
12300 (build-system haskell-build-system)
12301 (inputs
12302 `(("ghc-cereal" ,ghc-cereal)
ab761e9d 12303 ("ghc-basement" ,ghc-basement)
dddbc90c
RV
12304 ("ghc-network" ,ghc-network)))
12305 (home-page "https://github.com/vincenthz/hs-socks")
12306 (synopsis "SOCKS proxy (version 5) implementation")
12307 (description
12308 "This library provides a SOCKS proxy (version 5) implementation.")
12309 (license license:bsd-3)))
12310
081d85d6
TS
12311(define-public ghc-sop-core
12312 (package
12313 (name "ghc-sop-core")
12314 (version "0.4.0.0")
12315 (source
12316 (origin
12317 (method url-fetch)
12318 (uri (string-append "https://hackage.haskell.org/package/"
12319 "sop-core/sop-core-" version ".tar.gz"))
12320 (sha256
12321 (base32
12322 "07ci2mh8cbjvipb576rxsj3iyhkj5c5dnsns4xkdppp2p3pv10d3"))))
12323 (build-system haskell-build-system)
3ef91e15 12324 (home-page "https://hackage.haskell.org/package/sop-core")
081d85d6
TS
12325 (synopsis "True Sums of Products")
12326 (description "This package provides an implementation of
12327@math{n}-ary sums and @math{n}-ary products. The module @code{Data.SOP}
12328is the main module of this library and contains more detailed
12329documentation. The main use case of this package is to serve as the
12330core of @url{https://hackage.haskell.org/package/generics-sop,
12331generics-sop}.")
12332 (license license:bsd-3)))
12333
4c77a1a0
JS
12334(define-public ghc-special-values
12335 (package
12336 (name "ghc-special-values")
12337 (version "0.1.0.0")
12338 (source
12339 (origin
12340 (method url-fetch)
12341 (uri (string-append
12342 "https://hackage.haskell.org/package/special-values/"
12343 "special-values-" version ".tar.gz"))
12344 (sha256
12345 (base32
12346 "1kkdw2c4d2hha99v9f89ahmifjxp7fxmxyfwq9a8xk6s0h9xs51w"))))
12347 (build-system haskell-build-system)
12348 (inputs
12349 `(("ghc-scientific" ,ghc-scientific)
12350 ("ghc-ieee754" ,ghc-ieee754)
12351 ("ghc-nats" ,ghc-nats)))
12352 (home-page
12353 "https://github.com/minad/special-values#readme")
12354 (synopsis "Typeclass providing special values")
12355 (description
12356 "Special values are provided by a SpecialValues typeclass. Those can be
12357used for example by QuickCheck, see quickcheck-special." )
12358 (license license:expat)))
12359
dddbc90c
RV
12360(define-public ghc-split
12361 (package
12362 (name "ghc-split")
12363 (version "0.2.3.3")
534d6caa 12364 (outputs '("out" "static" "doc"))
dddbc90c
RV
12365 (source
12366 (origin
12367 (method url-fetch)
12368 (uri (string-append
12369 "https://hackage.haskell.org/package/split/split-"
12370 version
12371 ".tar.gz"))
12372 (sha256
12373 (base32
12374 "04qlmkcyklznl03gsjg95b4nzb6i96gdapqg60rny9szgi7ngk8x"))))
12375 (build-system haskell-build-system)
9bbc21a7
TS
12376 (arguments
12377 `(#:cabal-revision
12378 ("2" "1c8bcssxq5rkxkixgms6w6x6lzf4n7cxk6cx6av1dp3lixdy9j34")))
dddbc90c
RV
12379 (native-inputs
12380 `(("ghc-quickcheck" ,ghc-quickcheck)))
12381 (home-page "https://hackage.haskell.org/package/split")
12382 (synopsis "Combinator library for splitting lists")
12383 (description "This package provides a collection of Haskell functions for
12384splitting lists into parts, akin to the @code{split} function found in several
12385mainstream languages.")
12386 (license license:bsd-3)))
12387
7799d17f 12388(define-public ghc-splitmix
49367c92 12389 (package
7799d17f 12390 (name "ghc-splitmix")
49367c92
TS
12391 (version "0.0.3")
12392 (source
12393 (origin
12394 (method url-fetch)
12395 (uri (string-append "https://hackage.haskell.org/package/"
12396 "splitmix/splitmix-" version ".tar.gz"))
12397 (sha256
12398 (base32
12399 "1k0amgkz7rvyz3lnw7m786ilnr1cibwhx9sc4qynq329gxan5r7w"))))
49367c92 12400 (build-system haskell-build-system)
49367c92
TS
12401 (inputs
12402 `(("ghc-random" ,ghc-random)))
7799d17f
TS
12403 (native-inputs
12404 `(("ghc-hunit" ,ghc-hunit)
12405 ("ghc-async" ,ghc-async)
12406 ("ghc-base-compat-batteries" ,ghc-base-compat-batteries)
12407 ("ghc-tf-random" ,ghc-tf-random)
12408 ("ghc-vector" ,ghc-vector)))
92a79fee 12409 (home-page "https://hackage.haskell.org/package/splitmix")
49367c92
TS
12410 (synopsis "Fast and splittable pseudorandom number generator")
12411 (description "This package provides a Pure Haskell implementation of the
12412SplitMix pseudorandom number generator. SplitMix is a \"splittable\"
12413pseudorandom number generator that is quite fast: 9 64-bit
12414arithmetic/logical operations per 64 bits generated. SplitMix is tested
12415with two standard statistical test suites (DieHarder and TestU01, this
12416implementation only using the former) and it appears to be adequate for
12417\"everyday\" use, such as Monte Carlo algorithms and randomized data
12418structures where speed is important. In particular, it @strong{should not
12419be used for cryptographic or security applications}, because generated
12420sequences of pseudorandom values are too predictable (the mixing functions
12421are easily inverted, and two successive outputs suffice to reconstruct the
12422internal state).")
12423 (license license:bsd-3)))
12424
7799d17f
TS
12425(define-public ghc-splitmix-bootstrap
12426 (package
12427 (inherit ghc-splitmix)
12428 (name "ghc-splitmix-bootstrap")
12429 (arguments `(#:tests? #f))
12430 (native-inputs '())
12431 (properties '((hidden? #t)))))
12432
a152258b
JS
12433(define-public ghc-spoon
12434 (package
12435 (name "ghc-spoon")
12436 (version "0.3.1")
12437 (source
12438 (origin
12439 (method url-fetch)
12440 (uri (string-append
12441 "https://hackage.haskell.org/package/spoon/spoon-"
12442 version
12443 ".tar.gz"))
12444 (sha256
12445 (base32
12446 "1m41k0mfy6fpfrv2ym4m5jsjaj9xdfl2iqpppd3c4d0fffv51cxr"))))
12447 (build-system haskell-build-system)
12448 (arguments
12449 `(#:cabal-revision
12450 ("1"
12451 "09s5jjcsg4g4qxchq9g2l4i9d5zh3rixpkbiysqcgl69kj8mwv74")))
12452 (home-page
12453 "http://hackage.haskell.org/package/spoon")
12454 (synopsis
12455 "Catch errors thrown from pure computations")
12456 (description
12457 "Takes an error-throwing expression and puts it back in the Maybe it
12458belongs in.
12459
12460Note that this suffers from the
12461@url{https://ghc.haskell.org/trac/ghc/ticket/5902}. Buyer beware.")
12462 (license license:bsd-3)))
12463
dddbc90c
RV
12464(define-public ghc-statevar
12465 (package
12466 (name "ghc-statevar")
19419709 12467 (version "1.2")
dddbc90c
RV
12468 (source
12469 (origin
12470 (method url-fetch)
12471 (uri (string-append
12472 "https://hackage.haskell.org/package/StateVar/StateVar-"
12473 version
12474 ".tar.gz"))
12475 (sha256
12476 (base32
19419709 12477 "12sz6zkc9j5z3lwrjvljrkfxa5vhwnir5wsarigz2f6d3w13dh5g"))))
dddbc90c
RV
12478 (build-system haskell-build-system)
12479 (home-page "https://hackage.haskell.org/package/StateVar")
12480 (synopsis "State variables for Haskell")
12481 (description "This package provides state variables, which are references
12482in the @code{IO} monad, like @code{IORef}s or parts of the OpenGL state.")
12483 (license license:bsd-3)))
12484
12485(define-public ghc-statistics
12486 (package
12487 (name "ghc-statistics")
60e78e68 12488 (version "0.15.1.1")
dddbc90c
RV
12489 (source
12490 (origin
12491 (method url-fetch)
12492 (uri (string-append "https://hackage.haskell.org/package/"
12493 "statistics-" version "/"
12494 "statistics-" version ".tar.gz"))
12495 (sha256
12496 (base32
60e78e68 12497 "015rn74f1glii26j4b2fh1fc63xvxzrh2xckiancz48kc8jdzabj"))))
dddbc90c
RV
12498 (build-system haskell-build-system)
12499 (arguments
60e78e68 12500 '(;; Two tests fail: "Discrete CDF is OK" and "Quantile is CDF inverse".
dddbc90c
RV
12501 #:tests? #f))
12502 (inputs
12503 `(("ghc-aeson" ,ghc-aeson)
60e78e68 12504 ("ghc-async" ,ghc-async)
dddbc90c 12505 ("ghc-base-orphans" ,ghc-base-orphans)
60e78e68 12506 ("ghc-dense-linear-algebra" ,ghc-dense-linear-algebra)
dddbc90c
RV
12507 ("ghc-math-functions" ,ghc-math-functions)
12508 ("ghc-monad-par" ,ghc-monad-par)
12509 ("ghc-mwc-random" ,ghc-mwc-random)
12510 ("ghc-primitive" ,ghc-primitive)
12511 ("ghc-vector" ,ghc-vector)
12512 ("ghc-vector-algorithms" ,ghc-vector-algorithms)
12513 ("ghc-vector-th-unbox" ,ghc-vector-th-unbox)
12514 ("ghc-vector-binary-instances" ,ghc-vector-binary-instances)))
12515 (native-inputs
12516 `(("ghc-hunit" ,ghc-hunit)
12517 ("ghc-quickcheck" ,ghc-quickcheck)
12518 ("ghc-ieee754" ,ghc-ieee754)
12519 ("ghc-test-framework" ,ghc-test-framework)
12520 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
12521 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
12522 (home-page "https://github.com/bos/mwc-random")
12523 (synopsis "Haskell library of statistical types, data, and functions")
12524 (description "This library provides a number of common functions
12525and types useful in statistics. We focus on high performance, numerical
12526robustness, and use of good algorithms. Where possible, we provide references
12527to the statistical literature.
12528
12529The library's facilities can be divided into four broad categories:
12530
12531@itemize
12532@item Working with widely used discrete and continuous probability
12533distributions. (There are dozens of exotic distributions in use; we focus
12534on the most common.)
12535
12536@item Computing with sample data: quantile estimation, kernel density
12537estimation, histograms, bootstrap methods, significance testing,
12538and regression and autocorrelation analysis.
12539
12540@item Random variate generation under several different distributions.
12541
12542@item Common statistical tests for significant differences between samples.
12543@end itemize")
12544 (license license:bsd-2)))
12545
12546(define-public ghc-stm-chans
12547 (package
12548 (name "ghc-stm-chans")
12549 (version "3.0.0.4")
12550 (source
12551 (origin
12552 (method url-fetch)
12553 (uri (string-append "https://hackage.haskell.org/package/"
12554 "stm-chans-" version "/"
12555 "stm-chans-" version ".tar.gz"))
12556 (sha256
12557 (base32
12558 "0f27sp09yha43xk9q55sc185jyjs5h7gq2dhsyx6bm9kz9dzqi13"))))
12559 (build-system haskell-build-system)
12560 (home-page "https://hackage.haskell.org/package/stm-chans")
12561 (synopsis "Additional types of channels for ghc-stm")
12562 (description "This Haskell package offers a collection of channel types,
12563similar to @code{Control.Concurrent.STM.@{TChan,TQueue@}} but with additional
12564features.")
12565 (license license:bsd-3)))
12566
12567(define-public ghc-stm-conduit
12568 (package
12569 (name "ghc-stm-conduit")
cd518e95 12570 (version "4.0.1")
dddbc90c
RV
12571 (source
12572 (origin
12573 (method url-fetch)
12574 (uri (string-append "https://hackage.haskell.org/package/stm-conduit/"
12575 "stm-conduit-" version ".tar.gz"))
12576 (sha256
12577 (base32
cd518e95 12578 "0hhlxvpp7mah8dcvkknh6skx44jfk3092zz2w52zlr255bkmn3p8"))))
dddbc90c
RV
12579 (build-system haskell-build-system)
12580 (inputs
12581 `(("ghc-stm-chans" ,ghc-stm-chans)
12582 ("ghc-cereal" ,ghc-cereal)
12583 ("ghc-cereal-conduit" ,ghc-cereal-conduit)
12584 ("ghc-conduit" ,ghc-conduit)
12585 ("ghc-conduit-extra" ,ghc-conduit-extra)
12586 ("ghc-exceptions" ,ghc-exceptions)
12587 ("ghc-resourcet" ,ghc-resourcet)
12588 ("ghc-async" ,ghc-async)
12589 ("ghc-monad-loops" ,ghc-monad-loops)
12590 ("ghc-unliftio" ,ghc-unliftio)))
12591 (native-inputs
12592 `(("ghc-doctest" ,ghc-doctest)
12593 ("ghc-quickcheck" ,ghc-quickcheck)
12594 ("ghc-hunit" ,ghc-hunit)
12595 ("ghc-test-framework" ,ghc-test-framework)
12596 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
12597 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
12598 (home-page "https://github.com/cgaebel/stm-conduit")
12599 (synopsis "Introduces conduits to channels and promotes using conduits concurrently")
12600 (description
12601 "This package provides two simple conduit wrappers around STM channels: a
12602source and a sink.")
12603 (license license:bsd-3)))
12604
12605(define-public ghc-stmonadtrans
12606 (package
12607 (name "ghc-stmonadtrans")
12608 (version "0.4.3")
12609 (source
12610 (origin
12611 (method url-fetch)
12612 (uri (string-append "https://hackage.haskell.org/package/STMonadTrans"
12613 "/STMonadTrans-" version ".tar.gz"))
12614 (sha256
12615 (base32 "1nr26fnmi5fdjc6d00w13kjhmfyvb5b837d0006w4dj0yxndaksp"))))
12616 (build-system haskell-build-system)
12617 (home-page "https://hackage.haskell.org/package/STMonadTrans")
12618 (synopsis "Monad transformer version of the ST monad")
12619 (description
12620 "This package provides a monad transformer version of the @code{ST} monad
12621for strict state threads.")
12622 (license license:bsd-3)))
12623
12624(define-public ghc-storable-complex
12625 (package
12626 (name "ghc-storable-complex")
4a35e3c3 12627 (version "0.2.3.0")
dddbc90c
RV
12628 (source
12629 (origin
12630 (method url-fetch)
12631 (uri (string-append
12632 "https://hackage.haskell.org/package/storable-complex/storable-complex-"
12633 version ".tar.gz"))
12634 (sha256
4a35e3c3 12635 (base32 "0fnwbfmd5vsaaqvf9182qdcjrzcfjd1zhdyvjwzifbwvn6r9kx4s"))))
dddbc90c 12636 (build-system haskell-build-system)
4a35e3c3
TS
12637 (inputs
12638 `(("ghc-base-orphans" ,ghc-base-orphans)))
dddbc90c
RV
12639 (home-page "https://github.com/cartazio/storable-complex")
12640 (synopsis "Haskell Storable instance for Complex")
12641 (description "This package provides a Haskell library including a
12642Storable instance for Complex which is binary compatible with C99, C++
12643and Fortran complex data types.")
12644 (license license:bsd-3)))
12645
ad80074a
JS
12646(define-public ghc-storable-record
12647 (package
12648 (name "ghc-storable-record")
12649 (version "0.0.4")
12650 (source
12651 (origin
12652 (method url-fetch)
12653 (uri
12654 (string-append
12655 "https://hackage.haskell.org/package/storable-record/"
12656 "storable-record-" version ".tar.gz"))
12657 (sha256
12658 (base32
12659 "0hjs1km0fc9ch0i1rbycxia5w3939hk4p4md73ikgg4aipqb5zyf"))))
12660 (build-system haskell-build-system)
12661 (inputs
12662 `(("ghc-semigroups" ,ghc-semigroups)
12663 ("ghc-utility-ht" ,ghc-utility-ht)
12664 ("ghc-storablevector" ,ghc-storablevector)
12665 ("ghc-timeit" ,ghc-timeit)))
12666 (home-page "https://hackage.haskell.org/package/storable-record")
12667 (synopsis "Elegant definition of Storable instances for records")
12668 (description "With this package you can build a Storable instance of
12669a record type from Storable instances of its elements in an elegant way.
12670It does not do any magic, just a bit arithmetic to compute the right
12671offsets, that would be otherwise done manually or by a preprocessor like
12672C2HS. There is no guarantee that the generated memory layout is
12673compatible with that of a corresponding C struct. However, the module
12674generates the smallest layout that is possible with respect to the
12675alignment of the record elements.")
12676 (license license:bsd-3)))
12677
55f4c653
JS
12678(define-public ghc-storable-tuple
12679 (package
12680 (name "ghc-storable-tuple")
12681 (version "0.0.3.3")
12682 (source
12683 (origin
12684 (method url-fetch)
12685 (uri
12686 (string-append
12687 "https://hackage.haskell.org/package/storable-tuple/"
12688 "storable-tuple-" version ".tar.gz"))
12689 (sha256
12690 (base32
12691 "0dfzhxgkn1l6ls7zh6iifhyvhm8l47n40z0ar23c6ibsa94w1ynw"))))
12692 (build-system haskell-build-system)
12693 (inputs
12694 `(("ghc-storable-record" ,ghc-storable-record)
12695 ("ghc-utility-ht" ,ghc-utility-ht)
12696 ("ghc-base-orphans" ,ghc-base-orphans)))
12697 (home-page "https://hackage.haskell.org/package/storable-tuple")
12698 (synopsis "Storable instance for pairs and triples")
12699 (description "This package provides a Storable instance for pairs
12700and triples which should be binary compatible with C99 and C++. The
12701only purpose of this package is to provide a standard location for this
12702instance so that other packages needing this instance can play nicely
12703together.")
12704 (license license:bsd-3)))
12705
bc06ca45
JS
12706(define-public ghc-storablevector
12707 (package
12708 (name "ghc-storablevector")
12709 (version "0.2.13")
12710 (source
12711 (origin
12712 (method url-fetch)
12713 (uri
12714 (string-append
12715 "https://hackage.haskell.org/package/storablevector/storablevector-"
12716 version ".tar.gz"))
12717 (sha256
12718 (base32
12719 "1zmr738vwnhnyxbikayqnaz31ilv2qlmscp6iqgl7adcfbal4dzq"))))
12720 (build-system haskell-build-system)
12721 (inputs
12722 `(("ghc-non-negative" ,ghc-non-negative)
12723 ("ghc-utility-ht" ,ghc-utility-ht)
12724 ("ghc-semigroups" ,ghc-semigroups)
12725 ("ghc-unsafe" ,ghc-unsafe)
12726 ("ghc-quickcheck" ,ghc-quickcheck)
12727 ("ghc-syb" ,ghc-syb)))
228d2901 12728 (home-page "https://wiki.haskell.org/Storable_Vector")
bc06ca45
JS
12729 (synopsis "Fast, packed, strict storable arrays with a list interface")
12730 (description "This library provides fast, packed, strict storable
12731arrays with a list interface, a chunky lazy list interface with variable
12732chunk size and an interface for write access via the ST monad. This is
12733much like bytestring and binary but can be used for every
12734@code{Foreign.Storable.Storable} type. See also
12735@url{http://hackage.haskell.org/package/vector}, a library with a
12736similar intention.
12737
12738This library does not do advanced fusion optimization, since especially
12739for lazy vectors this would either be incorrect or not applicable. See
12740@url{http://hackage.haskell.org/package/storablevector-streamfusion} for
12741a library that provides fusion with lazy lists.")
12742 (license license:bsd-3)))
12743
dddbc90c
RV
12744(define-public ghc-streaming-commons
12745 (package
12746 (name "ghc-streaming-commons")
12747 (version "0.2.1.1")
12748 (source
12749 (origin
12750 (method url-fetch)
12751 (uri (string-append "https://hackage.haskell.org/package/"
12752 "streaming-commons/streaming-commons-"
12753 version ".tar.gz"))
12754 (sha256
12755 (base32
12756 "1lmyx3wkjsayhy5yilzvy0kf8qwmycwlk26r1d8f3cxbfhkr7s52"))))
12757 (build-system haskell-build-system)
12758 (inputs
12759 `(("ghc-async" ,ghc-async)
12760 ("ghc-blaze-builder" ,ghc-blaze-builder)
12761 ("ghc-network" ,ghc-network)
12762 ("ghc-random" ,ghc-random)
12763 ("ghc-zlib" ,ghc-zlib)))
12764 (native-inputs
12765 `(("ghc-quickcheck" ,ghc-quickcheck)
12766 ("ghc-hspec" ,ghc-hspec)
12767 ("hspec-discover" ,hspec-discover)))
12768 (home-page "https://hackage.haskell.org/package/streaming-commons")
12769 (synopsis "Conduit and pipes needed by some streaming data libraries")
12770 (description "This package provides low-dependency functionality commonly
12771needed by various Haskell streaming data libraries, such as @code{conduit} and
12772@code{pipe}s.")
12773 (license license:expat)))
12774
12775(define-public ghc-strict
12776 (package
12777 (name "ghc-strict")
12778 (version "0.3.2")
12779 (source
12780 (origin
12781 (method url-fetch)
12782 (uri (string-append "https://hackage.haskell.org/package/strict/strict-"
12783 version ".tar.gz"))
12784 (sha256
12785 (base32 "08cjajqz9h47fkq98mlf3rc8n5ghbmnmgn8pfsl3bdldjdkmmlrc"))))
12786 (build-system haskell-build-system)
12787 (home-page "https://hackage.haskell.org/package/strict")
12788 (synopsis "Strict data types and String IO")
12789 (description
12790 "This package provides strict versions of some standard Haskell data
12791types, such as pairs, @code{Maybe} and @code{Either}. It also contains strict
12792IO operations.")
12793 (license license:bsd-3)))
12794
12795(define-public ghc-stringbuilder
12796 (package
12797 (name "ghc-stringbuilder")
12798 (version "0.5.1")
12799 (source
12800 (origin
12801 (method url-fetch)
12802 (uri (string-append
12803 "https://hackage.haskell.org/package/stringbuilder/stringbuilder-"
12804 version
12805 ".tar.gz"))
12806 (sha256
12807 (base32
12808 "1fh3csx1wcssn8xyvl4ip4aprh9l4qyz2kk8mgjvqvc0vb2bsy6q"))))
12809 (build-system haskell-build-system)
12810 (arguments `(#:tests? #f)) ; FIXME: circular dependencies with tests
12811 ; enabled
12812 (home-page "https://hackage.haskell.org/package/stringbuilder")
12813 (synopsis "Writer monad for multi-line string literals")
12814 (description "This package provides a writer monad for multi-line string
12815literals.")
12816 (license license:expat)))
12817
12818(define-public ghc-string-qq
12819 (package
12820 (name "ghc-string-qq")
4d6fddc3 12821 (version "0.0.4")
dddbc90c
RV
12822 (source
12823 (origin
12824 (method url-fetch)
12825 (uri (string-append
12826 "https://hackage.haskell.org/package/string-qq/string-qq-"
12827 version
12828 ".tar.gz"))
12829 (sha256
12830 (base32
4d6fddc3 12831 "0wfxkw4x6j6jq9nd82k83g2k3hskpsvk1dp4cpkshvjr4wg9qny8"))))
dddbc90c 12832 (build-system haskell-build-system)
4d6fddc3
TS
12833 (native-inputs
12834 `(("ghc-hunit" ,ghc-hunit)))
3ef91e15 12835 (home-page "https://hackage.haskell.org/package/string-qq")
dddbc90c
RV
12836 (synopsis
12837 "QuasiQuoter for non-interpolated strings, texts and bytestrings.")
12838 (description
12839 "This package provides a quasiquoter for non-interpolated strings, texts
12840and bytestrings.")
12841 (license license:public-domain)))
12842
12843(define-public ghc-stringsearch
12844 (package
12845 (name "ghc-stringsearch")
12846 (version "0.3.6.6")
12847 (source
12848 (origin
12849 (method url-fetch)
12850 (uri (string-append
12851 "https://hackage.haskell.org/package/stringsearch/stringsearch-"
12852 version
12853 ".tar.gz"))
12854 (sha256
12855 (base32
12856 "0jpy9xjcjdbpi3wk6mg7xwd7wfi2mma70p97v1ij5i8bj9qijpr9"))))
12857 (build-system haskell-build-system)
e2303abb
TS
12858 (arguments
12859 `(#:cabal-revision
12860 ("1" "0z5pz5dccapz9k39r2zmf056m0x2m2lj3jahhnw3mfxlmps07378")))
dddbc90c
RV
12861 (home-page "https://bitbucket.org/dafis/stringsearch")
12862 (synopsis "Fast searching, splitting and replacing of ByteStrings")
12863 (description "This package provides several functions to quickly search
12864for substrings in strict or lazy @code{ByteStrings}. It also provides
12865functions for breaking or splitting on substrings and replacing all
12866occurrences of a substring (the first in case of overlaps) with another.")
12867 (license license:bsd-3)))
12868
dcf3f8f4
TS
12869(define-public ghc-svg-builder
12870 (package
12871 (name "ghc-svg-builder")
12872 (version "0.1.1")
12873 (source
12874 (origin
12875 (method url-fetch)
12876 (uri (string-append "https://hackage.haskell.org/package/"
12877 "svg-builder/svg-builder-" version ".tar.gz"))
12878 (sha256
12879 (base32
12880 "1k420f497lzkymmxin88ql6ib8dziic43avykv31yq65rgrf7l2g"))))
12881 (build-system haskell-build-system)
12882 (inputs
12883 `(("ghc-blaze-builder" ,ghc-blaze-builder)
12884 ("ghc-hashable" ,ghc-hashable)
12885 ("ghc-unordered-containers" ,ghc-unordered-containers)))
12886 (arguments
12887 `(#:cabal-revision
12888 ("1" "1bhp9gvid2iis411k1vvyj5krzc4ahxcqcd9cwx9h37jxg180xw1")))
12889 (home-page "https://github.com/diagrams/svg-builder.git")
12890 (synopsis "Domain-specific language for building Scalable Vector Graphics")
12891 (description "Easy-to-write domain-specific language (DSL) for
12892building Scalable Vector Graphics (SVG).")
12893 (license license:bsd-3)))
12894
dddbc90c
RV
12895(define-public ghc-syb
12896 (package
12897 (name "ghc-syb")
07d65eef 12898 (version "0.7.1")
534d6caa 12899 (outputs '("out" "static" "doc"))
dddbc90c
RV
12900 (source
12901 (origin
12902 (method url-fetch)
12903 (uri (string-append
12904 "https://hackage.haskell.org/package/syb/syb-"
12905 version
12906 ".tar.gz"))
12907 (sha256
12908 (base32
07d65eef 12909 "0077vxzyi9ppbphi2ialac3p376k49qly1kskdgf57wdwix9qjp0"))))
dddbc90c
RV
12910 (build-system haskell-build-system)
12911 (inputs
12912 `(("ghc-hunit" ,ghc-hunit)))
12913 (home-page
12914 "http://www.cs.uu.nl/wiki/GenericProgramming/SYB")
12915 (synopsis "Scrap Your Boilerplate")
12916 (description "This package contains the generics system described in the
12917/Scrap Your Boilerplate/ papers (see
12918@uref{http://www.cs.uu.nl/wiki/GenericProgramming/SYB, the website}). It
12919defines the @code{Data} class of types permitting folding and unfolding of
12920constructor applications, instances of this class for primitive types, and a
12921variety of traversals.")
12922 (license license:bsd-3)))
12923
12924(define-public ghc-system-fileio
12925 (package
12926 (name "ghc-system-fileio")
dcfb99d4 12927 (version "0.3.16.4")
dddbc90c
RV
12928 (source
12929 (origin
12930 (method url-fetch)
12931 (uri (string-append
12932 "https://hackage.haskell.org/package/system-fileio/system-fileio-"
12933 version ".tar.gz"))
12934 (sha256
12935 (base32
dcfb99d4 12936 "1iy6g1f35gzyj12g9mdiw4zf75mmxpv1l8cyaldgyscsl648pr9l"))))
dddbc90c 12937 (build-system haskell-build-system)
dcfb99d4
TS
12938 (arguments
12939 `(#:phases
12940 (modify-phases %standard-phases
12941 (add-before 'configure 'update-constraints
12942 (lambda _
12943 (substitute* "system-fileio.cabal"
12944 (("chell >= 0\\.4 && < 0\\.5") "chell >= 0.4"))
12945 #t)))))
dddbc90c
RV
12946 (inputs
12947 `(("ghc-system-filepath" ,ghc-system-filepath)
12948 ("ghc-chell" ,ghc-chell)
12949 ("ghc-temporary" ,ghc-temporary)))
12950 (home-page "https://github.com/fpco/haskell-filesystem")
12951 (synopsis "Consistent file system interaction across GHC versions")
12952 (description
12953 "This is a small wrapper around the directory, unix, and Win32 packages,
12954for use with system-filepath. It provides a consistent API to the various
12955versions of these packages distributed with different versions of GHC.
12956In particular, this library supports working with POSIX files that have paths
12957which can't be decoded in the current locale encoding.")
12958 (license license:expat)))
12959
12960;; See ghc-system-filepath-bootstrap. In addition this package depends on
12961;; ghc-system-filepath.
12962(define ghc-system-fileio-bootstrap
12963 (package
12964 (name "ghc-system-fileio-bootstrap")
12965 (version "0.3.16.3")
12966 (source
12967 (origin
12968 (method url-fetch)
12969 (uri (string-append
12970 "https://hackage.haskell.org/package/system-fileio/system-fileio-"
12971 version ".tar.gz"))
12972 (sha256
12973 (base32
12974 "1484hcl27s2qcby8ws5djj11q9bz68bspcifz9h5gii2ndy70x9i"))))
12975 (build-system haskell-build-system)
12976 (arguments
12977 `(#:tests? #f))
12978 (inputs
12979 `(("ghc-system-filepath-bootstrap" ,ghc-system-filepath-bootstrap)
12980 ("ghc-temporary" ,ghc-temporary)))
12981 (home-page "https://github.com/fpco/haskell-filesystem")
12982 (synopsis "Consistent file system interaction across GHC versions")
12983 (description
12984 "This is a small wrapper around the directory, unix, and Win32 packages,
12985for use with system-filepath. It provides a consistent API to the various
12986versions of these packages distributed with different versions of GHC.
12987In particular, this library supports working with POSIX files that have paths
12988which can't be decoded in the current locale encoding.")
12989 (license license:expat)))
12990
12991
12992(define-public ghc-system-filepath
12993 (package
12994 (name "ghc-system-filepath")
12995 (version "0.4.14")
12996 (source
12997 (origin
12998 (method url-fetch)
12999 (uri (string-append
13000 "https://hackage.haskell.org/package/system-filepath/system-filepath-"
13001 version ".tar.gz"))
13002 (sha256
13003 (base32
13004 "14yras4pz2dh55xpwmazcgxijvi8913pjgzb9iw50mjq1lycwmhn"))))
13005 (build-system haskell-build-system)
13006 ;; FIXME: One of the tests fails:
13007 ;; [ FAIL ] tests.validity.posix
13008 ;; note: seed=7310214548328823169
13009 ;; *** Failed! Falsifiable (after 24 tests):
13010 ;; 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"
13011 (arguments `(#:tests? #f))
13012 (inputs
13013 `(("ghc-chell" ,ghc-chell)
13014 ("ghc-chell-quickcheck" ,ghc-chell-quickcheck)
13015 ("ghc-quickcheck" ,ghc-quickcheck)))
13016 (home-page "https://github.com/fpco/haskell-filesystem")
13017 (synopsis "High-level, byte-based file and directory path manipulations")
13018 (description
13019 "Provides a FilePath datatype and utility functions for operating on it.
13020Unlike the filepath package, this package does not simply reuse String,
13021increasing type safety.")
13022 (license license:expat)))
13023
13024;; Ghc-shelly depends on ghc-system-filepath and ghc-system-fileio, who in turn depend on
13025;; ghc-chell and ghc-chell-quickcheck for the test phase. Ghc-chell depends on ghc-options
13026;; which depends on ghc-chell and ghc-chell-quickcheck.
13027;; Therefore we bootstrap it with tests disabled.
13028(define ghc-system-filepath-bootstrap
13029 (package
13030 (name "ghc-system-filepath-bootstrap")
13031 (version "0.4.14")
13032 (source
13033 (origin
13034 (method url-fetch)
13035 (uri (string-append
13036 "https://hackage.haskell.org/package/system-filepath/system-filepath-"
13037 version ".tar.gz"))
13038 (sha256
13039 (base32
13040 "14yras4pz2dh55xpwmazcgxijvi8913pjgzb9iw50mjq1lycwmhn"))))
13041 (build-system haskell-build-system)
13042 (arguments
13043 `(#:tests? #f))
13044 (inputs
13045 `(("ghc-quickcheck" ,ghc-quickcheck)))
13046 (home-page "https://github.com/fpco/haskell-filesystem")
13047 (synopsis "High-level, byte-based file and directory path manipulations")
13048 (description
13049 "Provides a FilePath datatype and utility functions for operating on it.
13050Unlike the filepath package, this package does not simply reuse String,
13051increasing type safety.")
13052 (license license:expat)))
13053
094a9d7a
CH
13054(define-public ghc-tabular
13055 (package
13056 (name "ghc-tabular")
13057 (version "0.2.2.8")
13058 (source
13059 (origin
13060 (method url-fetch)
13061 (uri (string-append
13062 "https://hackage.haskell.org/package/tabular/tabular-"
13063 version
13064 ".tar.gz"))
13065 (sha256
13066 (base32
13067 "0z936gh8n8i8qdkagyxwd9gqq13skd5fv013vdvwsibrxkm0czfb"))))
13068 (build-system haskell-build-system)
13069 (inputs
13070 `(("ghc-csv" ,ghc-csv)
13071 ("ghc-html" ,ghc-html)))
13072 (home-page "https://github.com/bgamari/tabular")
13073 (synopsis "Two-dimensional data tables with rendering functions")
13074 (description
13075 "Tabular provides a Haskell representation of two-dimensional data
13076tables, the kind that you might find in a spreadsheet or or a research report.
13077It also comes with some default rendering functions for turning those tables
13078into ASCII art, simple text with an arbitrary delimiter, CSV, HTML or LaTeX.
13079
13080Below is an example of the kind of output this library produces. The tabular
13081package can group rows and columns, each group having one of three
13082separators (no line, single line, double line) between its members.
13083
13084@example
13085
13086 || memtest 1 | memtest 2 || time test | time test 2
13087====++===========+===========++=============+============
13088A 1 || hog | terrible || slow | slower
13089A 2 || pig | not bad || fast | slowest
13090----++-----------+-----------++-------------+------------
13091B 1 || good | awful || intolerable | bearable
13092B 2 || better | no chance || crawling | amazing
13093B 3 || meh | well... || worst ever | ok
13094
13095@end example")
13096 (license license:bsd-3)))
dddbc90c
RV
13097
13098(define-public ghc-tagged
13099 (package
13100 (name "ghc-tagged")
f0f3756a 13101 (version "0.8.6")
dddbc90c
RV
13102 (source
13103 (origin
13104 (method url-fetch)
13105 (uri (string-append
13106 "https://hackage.haskell.org/package/tagged/tagged-"
13107 version
13108 ".tar.gz"))
13109 (sha256
13110 (base32
f0f3756a 13111 "1pciqzxf9ncv954v4r527xkxkn7r5hcr13mfw5dg1xjci3qdw5md"))))
dddbc90c
RV
13112 (build-system haskell-build-system)
13113 (arguments
13114 `(#:cabal-revision
f0f3756a 13115 ("1" "070xwfw7y81hd63il76dmwbdl9ca1rd07c54zynfx6vpr4wyx4vh")))
dddbc90c
RV
13116 (inputs
13117 `(("ghc-transformers-compat" ,ghc-transformers-compat)))
13118 (home-page "https://hackage.haskell.org/package/tagged")
13119 (synopsis "Haskell phantom types to avoid passing dummy arguments")
13120 (description "This library provides phantom types for Haskell 98, to avoid
13121having to unsafely pass dummy arguments.")
13122 (license license:bsd-3)))
13123
13124(define-public ghc-tar
13125 (package
13126 (name "ghc-tar")
ec83929f 13127 (version "0.5.1.1")
dddbc90c
RV
13128 (source
13129 (origin
13130 (method url-fetch)
13131 (uri (string-append
13132 "https://hackage.haskell.org/package/tar/tar-"
13133 version ".tar.gz"))
13134 (sha256
13135 (base32
ec83929f 13136 "1ppim7cgmn7ng8zbdrwkxhhizc30h15h1c9cdlzamc5jcagl915k"))))
dddbc90c
RV
13137 (build-system haskell-build-system)
13138 ;; FIXME: 2/24 tests fail.
13139 (arguments `(#:tests? #f))
13140 (inputs
13141 `(("ghc-bytestring-handle" ,ghc-bytestring-handle)
13142 ("ghc-quickcheck" ,ghc-quickcheck)
13143 ("ghc-tasty" ,ghc-tasty)
13144 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
13145 (home-page "https://hackage.haskell.org/package/tar")
13146 (synopsis "Reading, writing and manipulating \".tar\" archive files")
13147 (description
13148 "This library is for working with \\\"@.tar@\\\" archive files.
13149It can read and write a range of common variations of the tar archive format
13150including V7, POSIX USTAR and GNU formats. It provides support for packing and
13151unpacking portable archives. This makes it suitable for distribution but not
13152backup because details like file ownership and exact permissions are not
13153preserved. It also provides features for random access to archive content using
13154an index.")
13155 (license license:bsd-3)))
13156
f8d17902
TS
13157(define-public ghc-tar-conduit
13158 (package
13159 (name "ghc-tar-conduit")
13160 (version "0.3.2")
13161 (source
13162 (origin
13163 (method url-fetch)
13164 (uri (string-append "https://hackage.haskell.org/package/"
13165 "tar-conduit/tar-conduit-" version ".tar.gz"))
13166 (sha256
13167 (base32
13168 "0bgn3hyf20g1gfnzy8f41s7nj54kfcyjk2izw99svrw8f3dphi80"))))
13169 (build-system haskell-build-system)
13170 (inputs
13171 `(("ghc-conduit" ,ghc-conduit)
13172 ("ghc-conduit-combinators" ,ghc-conduit-combinators)
13173 ("ghc-safe-exceptions" ,ghc-safe-exceptions)))
13174 (native-inputs
13175 `(("ghc-quickcheck" ,ghc-quickcheck)
13176 ("ghc-conduit-extra" ,ghc-conduit-extra)
13177 ("ghc-hspec" ,ghc-hspec)
13178 ("ghc-hspec" ,ghc-hspec)
13179 ("ghc-weigh" ,ghc-weigh)))
13180 (home-page "https://github.com/snoyberg/tar-conduit#readme")
13181 (synopsis "Extract and create tar files using conduit for streaming")
13182 (description "This library provides a conduit-based, streaming
13183interface for extracting and creating tar files.")
13184 (license license:expat)))
13185
dddbc90c
RV
13186(define-public ghc-temporary
13187 (package
13188 (name "ghc-temporary")
13189 (version "1.3")
13190 (source
13191 (origin
13192 (method url-fetch)
13193 (uri (string-append
13194 "https://hackage.haskell.org/package/temporary/temporary-"
13195 version
13196 ".tar.gz"))
13197 (sha256
13198 (base32
13199 "144qhwfwg37l3k313raf4ssiz16jbgwlm1nf4flgqpsbd69jji4c"))))
13200 (build-system haskell-build-system)
13201 (inputs
13202 `(("ghc-exceptions" ,ghc-exceptions)
13203 ("ghc-random" ,ghc-random)))
13204 (native-inputs
13205 `(("ghc-base-compat" ,ghc-base-compat)
13206 ("ghc-tasty" ,ghc-tasty)
13207 ("ghc-tasty-hunit" ,ghc-tasty-hunit)))
13208 (home-page "https://www.github.com/batterseapower/temporary")
13209 (synopsis "Temporary file and directory support")
13210 (description "The functions for creating temporary files and directories
13211in the Haskelll base library are quite limited. This library just repackages
13212the Cabal implementations of its own temporary file and folder functions so
13213that you can use them without linking against Cabal or depending on it being
13214installed.")
13215 (license license:bsd-3)))
13216
13217(define-public ghc-temporary-rc
13218 (package
13219 (name "ghc-temporary-rc")
13220 (version "1.2.0.3")
13221 (source
13222 (origin
13223 (method url-fetch)
13224 (uri (string-append
13225 "https://hackage.haskell.org/package/temporary-rc/temporary-rc-"
13226 version
13227 ".tar.gz"))
13228 (sha256
13229 (base32
13230 "1nqih0qks439k3pr5kmbbc8rjdw730slrxlflqb27fbxbzb8skqs"))))
13231 (build-system haskell-build-system)
13232 (inputs `(("ghc-exceptions" ,ghc-exceptions)))
13233 (home-page
13234 "https://www.github.com/feuerbach/temporary")
13235 (synopsis
13236 "Portable temporary file and directory support")
13237 (description
13238 "The functions for creating temporary files and directories in the base
13239library are quite limited. The unixutils package contains some good ones, but
13240they aren't portable to Windows. This library just repackages the Cabal
13241implementations of its own temporary file and folder functions so that you can
13242use them without linking against Cabal or depending on it being installed.
13243This is a better maintained fork of the \"temporary\" package.")
13244 (license license:bsd-3)))
13245
13246(define-public ghc-terminal-size
13247 (package
13248 (name "ghc-terminal-size")
13249 (version "0.3.2.1")
13250 (source (origin
13251 (method url-fetch)
13252 (uri (string-append
13253 "https://hackage.haskell.org/package/terminal-size/"
13254 "terminal-size-" version ".tar.gz"))
13255 (sha256
13256 (base32
13257 "0n4nvj3dbj9gxfnprgish45asn9z4dipv9j98s8i7g2n8yb3xhmm"))))
13258 (build-system haskell-build-system)
13259 (home-page "https://hackage.haskell.org/package/terminal-size")
13260 (synopsis "Get terminal window height and width")
13261 (description "Get terminal window height and width without ncurses
13262dependency.")
13263 (license license:bsd-3)))
13264
13265(define-public ghc-texmath
13266 (package
13267 (name "ghc-texmath")
7fec7e66 13268 (version "0.11.3")
dddbc90c
RV
13269 (source (origin
13270 (method url-fetch)
13271 (uri (string-append "https://hackage.haskell.org/package/"
13272 "texmath/texmath-" version ".tar.gz"))
13273 (sha256
13274 (base32
7fec7e66 13275 "03rpxbp43bjs62mmw4hv4785n6f6nbf8kj2y9mma5nzk6i2xs09f"))))
dddbc90c
RV
13276 (build-system haskell-build-system)
13277 (inputs
13278 `(("ghc-syb" ,ghc-syb)
13279 ("ghc-network-uri" ,ghc-network-uri)
13280 ("ghc-split" ,ghc-split)
13281 ("ghc-temporary" ,ghc-temporary)
13282 ("ghc-utf8-string" ,ghc-utf8-string)
13283 ("ghc-xml" ,ghc-xml)
13284 ("ghc-pandoc-types" ,ghc-pandoc-types)))
13285 (home-page "https://github.com/jgm/texmath")
13286 (synopsis "Conversion between formats used to represent mathematics")
13287 (description
13288 "The texmath library provides functions to read and write TeX math,
13289presentation MathML, and OMML (Office Math Markup Language, used in Microsoft
13290Office). Support is also included for converting math formats to pandoc's
13291native format (allowing conversion, via pandoc, to a variety of different
13292markup formats). The TeX reader supports basic LaTeX and AMS extensions, and
13293it can parse and apply LaTeX macros.")
13294 (license license:gpl2+)))
13295
13296(define-public ghc-text-binary
13297 (package
13298 (name "ghc-text-binary")
13299 (version "0.2.1.1")
13300 (source
13301 (origin
13302 (method url-fetch)
13303 (uri (string-append "https://hackage.haskell.org/package/"
13304 "text-binary/text-binary-"
13305 version ".tar.gz"))
13306 (sha256
13307 (base32
13308 "18gl10pwg3qwsk0za3c70j4n6a9129wwf1b7d3a461h816yv55xn"))))
13309 (build-system haskell-build-system)
13310 (home-page "https://github.com/kawu/text-binary")
13311 (synopsis "Binary instances for text types")
13312 (description
13313 "This package provides a compatibility layer providing @code{Binary}
13314instances for strict and lazy text types for versions older than 1.2.1 of the
13315text package.")
13316 (license license:bsd-2)))
13317
714e5605
JS
13318(define-public ghc-text-manipulate
13319 (package
13320 (name "ghc-text-manipulate")
13321 (version "0.2.0.1")
13322 (source
13323 (origin
13324 (method url-fetch)
13325 (uri (string-append
13326 "https://hackage.haskell.org/package/text-manipulate"
13327 "/text-manipulate-"
13328 version
13329 ".tar.gz"))
13330 (sha256
13331 (base32
13332 "0bwxyjj3ll45srxhsp2ihikgqglvjc6m02ixr8xpvyqwkcfwgsg0"))))
13333 (build-system haskell-build-system)
13334 (native-inputs
13335 `(("ghc-tasty" ,ghc-tasty)
13336 ("ghc-tasty-hunit" ,ghc-tasty-hunit)))
13337 (home-page
13338 "https://github.com/brendanhay/text-manipulate")
13339 (synopsis
13340 "Case conversion, word boundary manipulation, and textual subjugation")
13341 (description
13342 "Manipulate identifiers and structurally non-complex pieces of text by
13343delimiting word boundaries via a combination of whitespace,
13344control-characters, and case-sensitivity.
13345
13346Has support for common idioms like casing of programmatic variable names,
13347taking, dropping, and splitting by word, and modifying the first character of
13348a piece of text.
13349
13350Caution: this library makes heavy use of the text library's internal loop
13351optimisation framework. Since internal modules are not guaranteed to have a
13352stable API there is potential for build breakage when the text dependency is
13353upgraded. Consider yourself warned!")
13354 (license license:mpl2.0)))
13355
bdc877c4
TS
13356(define-public ghc-text-metrics
13357 (package
13358 (name "ghc-text-metrics")
13359 (version "0.3.0")
13360 (source
13361 (origin
13362 (method url-fetch)
13363 (uri (string-append "https://hackage.haskell.org/package/"
13364 "text-metrics/text-metrics-" version ".tar.gz"))
13365 (sha256
13366 (base32
13367 "18mzxwkdvjp31r720ai9bnxr638qq8x3a2v408bz0d8f0rsayx1q"))))
13368 (build-system haskell-build-system)
13369 (inputs
13370 `(("ghc-vector" ,ghc-vector)))
13371 (native-inputs
13372 `(("ghc-quickcheck" ,ghc-quickcheck)
13373 ("ghc-hspec" ,ghc-hspec)))
13374 (arguments
13375 `(#:cabal-revision
13376 ("4" "017drxq9x56b345d8w5m8xdsi1zzs0z16pbdx8j35cd1lsnh3kf1")))
13377 (home-page "https://github.com/mrkkrp/text-metrics")
13378 (synopsis "Calculate various string metrics efficiently")
13379 (description "This library provides tools to calculate various
13380string metrics efficiently.")
13381 (license license:bsd-3)))
13382
dddbc90c
RV
13383(define-public ghc-tf-random
13384 (package
13385 (name "ghc-tf-random")
13386 (version "0.5")
534d6caa 13387 (outputs '("out" "static" "doc"))
dddbc90c
RV
13388 (source
13389 (origin
13390 (method url-fetch)
13391 (uri (string-append
13392 "https://hackage.haskell.org/package/tf-random/tf-random-"
13393 version
13394 ".tar.gz"))
13395 (sha256
13396 (base32 "0445r2nns6009fmq0xbfpyv7jpzwv0snccjdg7hwj4xk4z0cwc1f"))))
13397 (build-system haskell-build-system)
13398 (inputs
13399 `(("ghc-primitive" ,ghc-primitive)
13400 ("ghc-random" ,ghc-random)))
13401 (home-page "https://hackage.haskell.org/package/tf-random")
13402 (synopsis "High-quality splittable pseudorandom number generator")
13403 (description "This package contains an implementation of a high-quality
13404splittable pseudorandom number generator. The generator is based on a
13405cryptographic hash function built on top of the ThreeFish block cipher. See
13406the paper \"Splittable Pseudorandom Number Generators Using Cryptographic
13407Hashing\" by Claessen, Pałka for details and the rationale of the design.")
13408 (license license:bsd-3)))
13409
13410(define-public ghc-th-abstraction
13411 (package
13412 (name "ghc-th-abstraction")
1188eabb 13413 (version "0.3.1.0")
dddbc90c
RV
13414 (source
13415 (origin
13416 (method url-fetch)
13417 (uri (string-append "https://hackage.haskell.org/package/"
13418 "th-abstraction/th-abstraction-"
13419 version ".tar.gz"))
13420 (sha256
13421 (base32
1188eabb 13422 "1f81w0gshvc816cf9qz0f19jsrzh6wpzmmy317xrgn63dv61p7jb"))))
dddbc90c
RV
13423 (build-system haskell-build-system)
13424 (home-page "https://github.com/glguy/th-abstraction")
13425 (synopsis "Nicer interface for reified information about data types")
13426 (description
13427 "This package normalizes variations in the interface for inspecting
13428datatype information via Template Haskell so that packages and support a
13429single, easier to use informational datatype while supporting many versions of
13430Template Haskell.")
13431 (license license:isc)))
13432
13433(define-public ghc-th-expand-syns
13434 (package
13435 (name "ghc-th-expand-syns")
8c766600 13436 (version "0.4.5.0")
dddbc90c
RV
13437 (source (origin
13438 (method url-fetch)
13439 (uri (string-append "https://hackage.haskell.org/package/"
13440 "th-expand-syns/th-expand-syns-"
13441 version ".tar.gz"))
13442 (sha256
13443 (base32
8c766600 13444 "1p4wfyycan8zsp9wi7npx36qwbfsbcgdyxi3ii51scf69dkrx42y"))))
dddbc90c
RV
13445 (build-system haskell-build-system)
13446 (inputs
13447 `(("ghc-syb" ,ghc-syb)))
13448 (home-page "https://hackage.haskell.org/package/th-expand-syns")
13449 (synopsis "Expands type synonyms in Template Haskell ASTs")
13450 (description
13451 "This package enables users to expand type synonyms in Template Haskell
13452@dfn{abstract syntax trees} (ASTs).")
13453 (license license:bsd-3)))
13454
13455(define-public ghc-th-lift
13456 (package
13457 (name "ghc-th-lift")
bd76b20a 13458 (version "0.8.0.1")
dddbc90c
RV
13459 (source (origin
13460 (method url-fetch)
13461 (uri (string-append "https://hackage.haskell.org/package/"
13462 "th-lift/th-lift-" version ".tar.gz"))
13463 (sha256
13464 (base32
bd76b20a 13465 "1a6qlbdg15cfr5rvl9g3blgwx4v1p0xic0pzv13zx165xbc36ld0"))))
dddbc90c
RV
13466 (build-system haskell-build-system)
13467 (inputs
13468 `(("ghc-th-abstraction" ,ghc-th-abstraction)))
13469 (home-page "https://github.com/mboes/th-lift")
13470 (synopsis "Derive Template Haskell's Lift class for datatypes")
13471 (description
13472 "This is a Haskell library to derive Template Haskell's Lift class for
13473datatypes.")
13474 (license license:bsd-3)))
13475
13476(define-public ghc-th-lift-instances
13477 (package
13478 (name "ghc-th-lift-instances")
d3db399e 13479 (version "0.1.14")
dddbc90c
RV
13480 (source
13481 (origin
13482 (method url-fetch)
13483 (uri (string-append "https://hackage.haskell.org/package/"
13484 "th-lift-instances/th-lift-instances-"
13485 version ".tar.gz"))
13486 (sha256
13487 (base32
d3db399e 13488 "0r1b4jnvcj64wp4hfccwkl4a70n1p1q7qzyx6ax7cmd8k961jz78"))))
dddbc90c
RV
13489 (build-system haskell-build-system)
13490 (inputs
13491 `(("ghc-th-lift" ,ghc-th-lift)
13492 ("ghc-vector" ,ghc-vector)
13493 ("ghc-quickcheck" ,ghc-quickcheck)))
13494 (home-page "https://github.com/bennofs/th-lift-instances/")
13495 (synopsis "Lift instances for template-haskell for common data types.")
13496 (description "Most data types in the Haskell platform do not have Lift
13497instances. This package provides orphan instances for @code{containers},
13498@code{text}, @code{bytestring} and @code{vector}.")
13499 (license license:bsd-3)))
13500
13501(define-public ghc-th-orphans
13502 (package
13503 (name "ghc-th-orphans")
882b23e2 13504 (version "0.13.9")
dddbc90c
RV
13505 (source (origin
13506 (method url-fetch)
13507 (uri (string-append "https://hackage.haskell.org/package/"
13508 "th-orphans/th-orphans-" version ".tar.gz"))
13509 (sha256
13510 (base32
882b23e2 13511 "1xj1gssv77hdx1r3ndg8k49v3ipj3a6r7crkyvx13jrps3m6ng1z"))))
dddbc90c
RV
13512 (build-system haskell-build-system)
13513 (inputs
13514 `(("ghc-th-lift" ,ghc-th-lift)
13515 ("ghc-th-lift-instances" ,ghc-th-lift-instances)
13516 ("ghc-th-reify-many" ,ghc-th-reify-many)
13517 ("ghc-generic-deriving" ,ghc-generic-deriving)))
13518 (native-inputs
13519 `(("ghc-hspec" ,ghc-hspec)))
13520 (home-page "https://hackage.haskell.org/package/th-orphans")
13521 (synopsis "Orphan instances for TH datatypes")
13522 (description
13523 "This package provides orphan instances for Template Haskell datatypes. In particular,
13524instances for @code{Ord} and @code{Lift}, as well as a few missing @code{Show}
13525and @code{Eq} instances. These instances used to live in the haskell-src-meta
13526package, and that's where the version number started.")
13527 (license license:bsd-3)))
13528
20c440ea
JS
13529(define-public ghc-these
13530 (package
13531 (name "ghc-these")
13532 (version "1.0.1")
13533 (source
13534 (origin
13535 (method url-fetch)
13536 (uri (string-append
13537 "https://hackage.haskell.org/package/these/these-"
13538 version
13539 ".tar.gz"))
13540 (sha256
13541 (base32
13542 "1k0pi65g7cm9hzdw6my6bzz2zvddkmj1qs45ymqmi316bpiixk3r"))))
13543 (build-system haskell-build-system)
13544 (inputs
13545 `(("ghc-base-compat" ,ghc-base-compat)
13546 ("ghc-hashable" ,ghc-hashable)
13547 ("ghc-aeson" ,ghc-aeson)
13548 ("ghc-unordered-containers" ,ghc-unordered-containers)
13549 ("ghc-assoc" ,ghc-assoc)
13550 ("ghc-semigroupoids" ,ghc-semigroupoids)
13551 ("ghc-quickcheck" ,ghc-quickcheck)))
13552 (arguments
13553 `(#:cabal-revision
13554 ("1"
13555 "0923r86fnmgpx0msm68aszirh2n19nn5bccgjxfh2146jw4z7w3z")))
13556 (home-page
13557 "https://github.com/isomorphism/these")
13558 (synopsis "Either-or-both data type")
13559 (description
13560 "This package provides a data type @code{These a b} which can
13561hold a value of either type or values of each type. This is usually
13562thought of as an \"inclusive or\" type (contrasting @code{Either a b} as
13563\"exclusive or\") or as an \"outer join\" type (contrasting @code{(a, b)}
13564as \"inner join\").
13565
13566@code{data These a b = This a | That b | These a b}
13567
13568Since version 1, this package was split into parts:
13569
13570@itemize
13571@item
13572https://hackage.haskell.org/package/semialign For @code{Align} and
13573@code{Zip} type-classes.
13574@item
13575https://hackage.haskell.org/package/semialign-indexed For
13576@code{SemialignWithIndex} class, providing @code{ialignWith} and
13577@code{izipWith}
13578@item
13579https://hackage.haskell.org/package/these-lens For lens combinators.
13580@item
13581http://hackage.haskell.org/package/monad-chronicle For transformers
13582variant of @code{These}.
13583@end itemize")
13584 (license license:bsd-3)))
13585
dddbc90c
RV
13586(define-public ghc-threads
13587 (package
13588 (name "ghc-threads")
13589 (version "0.5.1.6")
13590 (source
13591 (origin
13592 (method url-fetch)
13593 (uri (string-append "https://hackage.haskell.org/package/"
13594 "threads/threads-" version ".tar.gz"))
13595 (sha256
13596 (base32
13597 "0bjnjhnq3km6xqk0fn1fgyz5xdw4h6lylbwwbcmkkfzwcz0c76hk"))))
13598 (build-system haskell-build-system)
13599 (native-inputs
13600 `(("ghc-concurrent-extra" ,ghc-concurrent-extra)
13601 ("ghc-hunit" ,ghc-hunit)
13602 ("ghc-test-framework" ,ghc-test-framework)
13603 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)))
13604 (home-page "https://github.com/basvandijk/threads")
13605 (synopsis "Fork threads and wait for their result")
13606 (description "This package provides functions to fork threads and
13607wait for their result, whether it's an exception or a normal value.
13608Besides waiting for the termination of a single thread this package also
13609provides functions to wait for a group of threads to terminate. This
bbf8bf31
RV
13610package is similar to the @code{threadmanager}, @code{async} and
13611@code{spawn} packages. The advantages of this package are:
13612
dddbc90c
RV
13613@itemize
13614@item Simpler API.
13615@item More efficient in both space and time.
13616@item No space-leak when forking a large number of threads.
13617@item Correct handling of asynchronous exceptions.
13618@item GHC specific functionality like @code{forkOn} and
13619@code{forkIOWithUnmask}.
13620@end itemize")
13621 (license license:bsd-3)))
13622
13623(define-public ghc-th-reify-many
13624 (package
13625 (name "ghc-th-reify-many")
32d4a6ae 13626 (version "0.1.9")
dddbc90c
RV
13627 (source (origin
13628 (method url-fetch)
13629 (uri (string-append "https://hackage.haskell.org/package/"
13630 "th-reify-many/th-reify-many-"
13631 version ".tar.gz"))
13632 (sha256
13633 (base32
32d4a6ae 13634 "0hxf56filzqnyrc8q7766vai80y6cgrrbrczx6n93caskl1dv2gq"))))
dddbc90c
RV
13635 (build-system haskell-build-system)
13636 (inputs
13637 `(("ghc-safe" ,ghc-safe)
13638 ("ghc-th-expand-syns" ,ghc-th-expand-syns)))
13639 (home-page "https://github.com/mgsloan/th-reify-many")
13640 (synopsis "Recurseively reify template haskell datatype info")
13641 (description
13642 "th-reify-many provides functions for recursively reifying top level
13643declarations. The main intended use case is for enumerating the names of
13644datatypes reachable from an initial datatype, and passing these names to some
13645function which generates instances.")
13646 (license license:bsd-3)))
13647
75cfc9a2
TS
13648(define-public ghc-time-compat
13649 (package
13650 (name "ghc-time-compat")
13651 (version "1.9.2.2")
13652 (source
13653 (origin
13654 (method url-fetch)
13655 (uri (string-append "https://hackage.haskell.org/package/"
13656 "time-compat/time-compat-" version ".tar.gz"))
13657 (sha256
13658 (base32
13659 "05va0rqs759vbridbcl6hksp967j9anjvys8vx72fnfkhlrn2s52"))))
13660 (build-system haskell-build-system)
13661 (inputs
13662 `(("ghc-base-orphans" ,ghc-base-orphans)))
13663 (native-inputs
13664 `(("ghc-hunit" ,ghc-hunit)
13665 ("ghc-base-compat" ,ghc-base-compat)
13666 ("ghc-quickcheck" ,ghc-quickcheck)
13667 ("ghc-tagged" ,ghc-tagged)
13668 ("ghc-tasty" ,ghc-tasty)
13669 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
13670 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
13671 (arguments
13672 `(#:cabal-revision
13673 ("1" "0k8ph4sydaiqp8dav4if6hpiaq8h1xsr93khmdr7a1mmfwdxr64r")))
13674 (home-page "https://github.com/phadej/time-compat")
13675 (synopsis "Compatibility package for time")
a8d73e69 13676 (description "This package tries to compat as many @code{time}
75cfc9a2
TS
13677features as possible.")
13678 (license license:bsd-3)))
13679
dddbc90c
RV
13680(define-public ghc-time-locale-compat
13681 (package
13682 (name "ghc-time-locale-compat")
13683 (version "0.1.1.5")
13684 (source
13685 (origin
13686 (method url-fetch)
13687 (uri (string-append "https://hackage.haskell.org/package/"
13688 "time-locale-compat/time-locale-compat-"
13689 version ".tar.gz"))
13690 (sha256
13691 (base32
13692 "0b2hmj8wwrfkndwzgm11qr496ca2ahwdxcj3m0ii91bxvrk1bzq7"))))
13693 (build-system haskell-build-system)
13694 (inputs `(("ghc-old-locale" ,ghc-old-locale)))
13695 (home-page "https://github.com/khibino/haskell-time-locale-compat")
13696 (synopsis "Compatibility of TimeLocale between old-locale and time-1.5")
13697 (description "This package contains a wrapped name module for
13698@code{TimeLocale}.")
13699 (license license:bsd-3)))
13700
c022a4d4
TS
13701(define-public ghc-time-manager
13702 (package
13703 (name "ghc-time-manager")
13704 (version "0.0.0")
13705 (source
13706 (origin
13707 (method url-fetch)
13708 (uri (string-append "https://hackage.haskell.org/package/"
13709 "time-manager/time-manager-" version ".tar.gz"))
13710 (sha256
13711 (base32
13712 "1nzwj0fxz370ks6vr1sylcidx33rnqq45y3q9yv9n4dj43nid9lh"))))
13713 (build-system haskell-build-system)
13714 (inputs
13715 `(("ghc-auto-update" ,ghc-auto-update)))
13716 (home-page "https://github.com/yesodweb/wai")
13717 (synopsis "Scalable timer")
13718 (description "This library contains scalable timer functions provided by a
13719timer manager.")
13720 (license license:expat)))
13721
7bbfa392
JS
13722(define-public ghc-timeit
13723 (package
13724 (name "ghc-timeit")
13725 (version "2.0")
13726 (source
13727 (origin
13728 (method url-fetch)
13729 (uri
13730 (string-append
13731 "https://hackage.haskell.org/package/timeit/timeit-"
13732 version ".tar.gz"))
13733 (sha256
13734 (base32
13735 "1sliqpvl501rlcj6s0lhmsf5ym24j4h881wzc1f1wdyvg3jz8kd1"))))
13736 (build-system haskell-build-system)
13737 (home-page "https://github.com/merijn/timeit")
13738 (synopsis "Time monadic computations with an IO base")
13739 (description "This package provides a simple wrapper to show the
13740used CPU time of monadic computation with an IO base.")
13741 (license license:bsd-3)))
13742
2ed8bd2d
JS
13743(define-public ghc-timezone-series
13744 (package
13745 (name "ghc-timezone-series")
13746 (version "0.1.9")
13747 (source
13748 (origin
13749 (method url-fetch)
13750 (uri
13751 (string-append
13752 "mirror://hackage/package/timezone-series/timezone-series-"
13753 version ".tar.gz"))
13754 (sha256
13755 (base32
13756 "1blwgnyzqn917rgqkl4dncv9whv3xmk0lav040qq0214vksmvlz5"))))
13757 (build-system haskell-build-system)
13758 (home-page "https://archives.haskell.org/projects.haskell.org/time-ng/")
13759 (synopsis "Enhanced timezone handling for Time")
13760 (description
13761 "This package endows @code{Data.Time}, from the time package, with several
13762data types and functions for enhanced processing of timezones. For one way to
13763create timezone series, see the ghc-timezone-olson package.")
13764 (license license:bsd-3)))
13765
ff0f5786
JS
13766(define-public ghc-timezone-olson
13767 (package
13768 (name "ghc-timezone-olson")
13769 (version "0.1.9")
13770 (source
13771 (origin
13772 (method url-fetch)
13773 (uri
13774 (string-append
13775 "mirror://hackage/package/timezone-olson/timezone-olson-"
13776 version ".tar.gz"))
13777 (sha256
13778 (base32
13779 "05abywx1nrcaz0nqzfy4zw62bc5qd7pdfnjvv4drxkwv084ha8rj"))))
13780 (build-system haskell-build-system)
13781 (inputs
13782 `(("ghc-timezone-series" ,ghc-timezone-series)
13783 ("ghc-extensible-exceptions" ,ghc-extensible-exceptions)))
13784 (home-page "https://archives.haskell.org/projects.haskell.org/time-ng/")
13785 (synopsis "Parser and renderer for binary Olson timezone files")
13786 (description
13787 "A parser and renderer for binary Olson timezone files whose format
13788is specified by the tzfile(5) man page on Unix-like systems. For more
13789information about this format, see
13790@url{http://www.iana.org/time-zones/repository/tz-link.html}. Functions
13791are provided for converting the parsed data into @code{TimeZoneSeries}
13792objects from the timezone-series package.")
13793 (license license:bsd-3)))
13794
dddbc90c
RV
13795(define-public ghc-tldr
13796 (package
13797 (name "ghc-tldr")
871ceb31 13798 (version "0.4.0.2")
dddbc90c
RV
13799 (source
13800 (origin
13801 (method url-fetch)
13802 (uri (string-append
13803 "https://hackage.haskell.org/package/tldr/tldr-"
13804 version
13805 ".tar.gz"))
13806 (sha256
13807 (base32
871ceb31 13808 "1zy9yyg7bxiyz1prkvrscggsb9p0f8y0nqxxxzlgzvnh2nmqf8f2"))))
dddbc90c
RV
13809 (build-system haskell-build-system)
13810 (inputs
13811 `(("ghc-cmark" ,ghc-cmark)
13812 ("ghc-optparse-applicative" ,ghc-optparse-applicative)
13813 ("ghc-typed-process" ,ghc-typed-process)
13814 ("ghc-semigroups" ,ghc-semigroups)))
13815 (native-inputs
13816 `(("ghc-tasty" ,ghc-tasty)
13817 ("ghc-tasty-golden" ,ghc-tasty-golden)))
13818 (home-page "https://github.com/psibi/tldr-hs#readme")
13819 (synopsis "Haskell tldr client")
13820 (description "This package provides the @command{tldr} command and a
13821Haskell client library allowing users to update and view @code{tldr} pages
13822from a shell. The @code{tldr} pages are a community effort to simplify the
13823man pages with practical examples.")
13824 (license license:bsd-3)))
13825
283b1bec
KM
13826(define-public ghc-torrent
13827 (package
13828 (name "ghc-torrent")
13829 (version "10000.1.1")
13830 (source
13831 (origin
13832 (method url-fetch)
13833 (uri (string-append
13834 "https://hackage.haskell.org/package/torrent/torrent-"
13835 version ".tar.gz"))
13836 (sha256
13837 (base32 "0m7s0q7f8c7glxzqhf2j86ch5xhk6jnzwwsa4mkywag22119c290"))))
13838 (build-system haskell-build-system)
13839 (inputs
13840 `(("ghc-bencode" ,ghc-bencode)
13841 ("ghc-syb" ,ghc-syb)))
13842 (home-page "https://hackage.haskell.org/package/torrent")
13843 (synopsis "BitTorrent file parser and generator")
13844 (description "This library provides support for parsing and generating
13845BitTorrent files.")
13846 (license license:bsd-3)))
13847
460e4e42
JS
13848(define-public ghc-transformers
13849 (package
13850 (name "ghc-transformers")
13851 (version "0.5.6.2")
13852 (source
13853 (origin
13854 (method url-fetch)
13855 (uri (string-append
13856 "mirror://hackage/package/transformers/transformers-"
13857 version
13858 ".tar.gz"))
13859 (sha256
13860 (base32
13861 "0v66j5k0xqk51pmca55wq192qyw2p43s2mgxlz4f95q2c1fpjs5n"))))
13862 (build-system haskell-build-system)
13863 (home-page
13864 "http://hackage.haskell.org/package/transformers")
13865 (synopsis "Concrete functor and monad transformers")
13866 (description
13867 "Transformers provides functor and monad transformers, inspired by the
13868paper \"Functional Programming with Overloading and Higher-Order
13869Polymorphism\", by Mark P Jones, in Advanced School of Functional Programming,
138701995 @url{http://web.cecs.pdx.edu/~mpj/pubs/springschool.html}.
13871
13872This package contains:
13873@itemize
13874@item the monad transformer class (in @code{Control.Monad.Trans.Class})
13875@item concrete functor and monad transformers, each with associated operations
13876and functions to lift operations associated with other transformers.
13877@end itemize
13878
13879This package can be used on its own in portable Haskell code, in which case
13880operations need to be manually lifted through transformer stacks (see
13881@code{Control.Monad.Trans.Class} for some examples). Alternatively, it can be
13882used with the non-portable monad classes in the mtl or monads-tf packages,
13883which automatically lift operations introduced by monad transformers through
13884other transformers.")
13885 (license license:bsd-3)))
13886
dddbc90c
RV
13887(define-public ghc-transformers-base
13888 (package
13889 (name "ghc-transformers-base")
13890 (version "0.4.5.2")
13891 (source
13892 (origin
13893 (method url-fetch)
13894 (uri (string-append
13895 "https://hackage.haskell.org/package/transformers-base/transformers-base-"
13896 version
13897 ".tar.gz"))
13898 (sha256
13899 (base32
13900 "1s256bi0yh0x2hp2gwd30f3mg1cv53zz397dv1yhfsnfzmihrj6h"))))
13901 (build-system haskell-build-system)
13902 (inputs
13903 `(("ghc-transformers-compat" ,ghc-transformers-compat)))
13904 (home-page
13905 "https://hackage.haskell.org/package/transformers-compat")
13906 (synopsis
13907 "Backported transformer library")
13908 (description
13909 "Backported versions of types that were added to transformers in
13910transformers 0.3 and 0.4 for users who need strict transformers 0.2 or 0.3
13911compatibility to run on old versions of the platform.")
13912 (license license:bsd-3)))
13913
13914(define-public ghc-transformers-compat
13915 (package
13916 (name "ghc-transformers-compat")
1c9c4d58 13917 (version "0.6.5")
dddbc90c
RV
13918 (source
13919 (origin
13920 (method url-fetch)
13921 (uri (string-append
13922 "https://hackage.haskell.org/package/transformers-compat"
13923 "/transformers-compat-" version ".tar.gz"))
13924 (sha256
13925 (base32
1c9c4d58 13926 "02v2fjbvcrlpvhcsssap8dy8y9pp95jykrlc5arm39sxa48wyrys"))))
dddbc90c
RV
13927 (build-system haskell-build-system)
13928 (home-page "https://github.com/ekmett/transformers-compat/")
13929 (synopsis "Small compatibility shim between transformers 0.3 and 0.4")
13930 (description "This package includes backported versions of types that were
13931added to transformers in transformers 0.3 and 0.4 for users who need strict
13932transformers 0.2 or 0.3 compatibility to run on old versions of the platform,
13933but also need those types.")
13934 (license license:bsd-3)))
13935
13936(define-public ghc-tree-diff
13937 (package
13938 (name "ghc-tree-diff")
b4e26067 13939 (version "0.1")
dddbc90c
RV
13940 (source
13941 (origin
13942 (method url-fetch)
13943 (uri (string-append
13944 "https://hackage.haskell.org/package/tree-diff/tree-diff-"
13945 version
13946 ".tar.gz"))
13947 (sha256
13948 (base32
b4e26067 13949 "1156nbqn0pn9lp4zjsy4vv5g5wmy4zxwmbqdgvq349rydynh3ng3"))))
dddbc90c 13950 (build-system haskell-build-system)
dddbc90c
RV
13951 (inputs
13952 `(("ghc-aeson" ,ghc-aeson)
13953 ("ghc-ansi-wl-pprint" ,ghc-ansi-wl-pprint)
13954 ("ghc-ansi-terminal" ,ghc-ansi-terminal)
13955 ("ghc-base-compat" ,ghc-base-compat)
b4e26067 13956 ("ghc-bytestring-builder" ,ghc-bytestring-builder)
dddbc90c 13957 ("ghc-hashable" ,ghc-hashable)
dddbc90c
RV
13958 ("ghc-parsers" ,ghc-parsers)
13959 ("ghc-quickcheck" ,ghc-quickcheck)
13960 ("ghc-scientific" ,ghc-scientific)
13961 ("ghc-tagged" ,ghc-tagged)
13962 ("ghc-unordered-containers" ,ghc-unordered-containers)
13963 ("ghc-uuid-types" ,ghc-uuid-types)
13964 ("ghc-vector" ,ghc-vector)))
13965 (native-inputs
13966 `(("ghc-base-compat" ,ghc-base-compat)
13967 ("ghc-quickcheck" ,ghc-quickcheck)
13968 ("ghc-ansi-terminal" ,ghc-ansi-terminal)
13969 ("ghc-ansi-wl-pprint" ,ghc-ansi-wl-pprint)
13970 ("ghc-trifecta" ,ghc-trifecta)
13971 ("ghc-tasty" ,ghc-tasty)
13972 ("ghc-tasty-golden" ,ghc-tasty-golden)
13973 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
13974 (home-page "https://github.com/phadej/tree-diff")
13975 (synopsis "Compute difference between (expression) trees")
13976 (description "This Haskell library provides a function for computing
13977the difference between (expression) trees. It also provides a way to
13978compute the difference between arbitrary abstract datatypes (ADTs) using
13979@code{Generics}-derivable helpers.")
13980 (license license:bsd-3)))
13981
13982(define-public ghc-trifecta
13983 (package
13984 (name "ghc-trifecta")
13985 (version "2")
13986 (source (origin
13987 (method url-fetch)
13988 (uri (string-append
13989 "https://hackage.haskell.org/package/trifecta/"
13990 "trifecta-" version ".tar.gz"))
13991 (sha256
13992 (base32
13993 "0hznd8i65s81xy13i2qc7cvipw3lfb2yhkv53apbdsh6sbljz5sk"))))
13994 (build-system haskell-build-system)
5ffe8cfd
TS
13995 (arguments
13996 `(#:tests? #f ; doctest suite fails to build on i686
13997 #:cabal-revision
13998 ("4" "0xbwyvwl6f2zylk60f2akwgq03qv49113xil7b1z1s3vlwbn5aj1")))
dddbc90c
RV
13999 (inputs
14000 `(("ghc-reducers" ,ghc-reducers)
14001 ("ghc-semigroups" ,ghc-semigroups)
14002 ("ghc-ansi-wl-pprint" ,ghc-ansi-wl-pprint)
14003 ("ghc-ansi-terminal" ,ghc-ansi-terminal)
14004 ("ghc-blaze-builder" ,ghc-blaze-builder)
14005 ("ghc-blaze-html" ,ghc-blaze-html)
14006 ("ghc-blaze-markup" ,ghc-blaze-markup)
14007 ("ghc-charset" ,ghc-charset)
14008 ("ghc-comonad" ,ghc-comonad)
14009 ("ghc-fingertree" ,ghc-fingertree)
14010 ("ghc-hashable" ,ghc-hashable)
14011 ("ghc-lens" ,ghc-lens)
14012 ("ghc-parsers" ,ghc-parsers)
14013 ("ghc-profunctors" ,ghc-profunctors)
14014 ("ghc-unordered-containers" ,ghc-unordered-containers)
14015 ("ghc-utf8-string" ,ghc-utf8-string)))
14016 (native-inputs
14017 `(("cabal-doctest" ,cabal-doctest)
14018 ("ghc-doctest" ,ghc-doctest)
14019 ("ghc-quickcheck" ,ghc-quickcheck)))
14020 (home-page "https://github.com/ekmett/trifecta/")
14021 (synopsis "Parser combinator library with convenient diagnostics")
14022 (description "Trifecta is a modern parser combinator library for Haskell,
14023with slicing and Clang-style colored diagnostics.")
14024 (license license:bsd-3)))
14025
14026(define-public ghc-tuple-th
14027 (package
14028 (name "ghc-tuple-th")
14029 (version "0.2.5")
14030 (source
14031 (origin
14032 (method url-fetch)
14033 (uri (string-append "https://hackage.haskell.org/package/"
14034 "tuple-th-" version "/"
14035 "tuple-th-" version ".tar.gz"))
14036 (sha256
14037 (base32
14038 "1mrl4vvxmby7sf1paf7hklzidnr6wq55822i73smqyz0xpf3gsjn"))))
14039 (build-system haskell-build-system)
14040 (home-page "https://github.com/DanielSchuessler/tuple-th")
14041 (synopsis "Generate utility functions for tuples of statically known size
14042for Haskell")
14043 (description "This Haskell package contains Template Haskell functions for
14044generating functions similar to those in @code{Data.List} for tuples of
14045statically known size.")
14046 (license license:bsd-3)))
14047
9f776fe2
JS
14048(define-public ghc-turtle
14049 (package
14050 (name "ghc-turtle")
14051 (version "1.5.15")
14052 (source
14053 (origin
14054 (method url-fetch)
14055 (uri (string-append
14056 "mirror://hackage/package/turtle/turtle-"
14057 version
14058 ".tar.gz"))
14059 (sha256
14060 (base32
14061 "0yckgsc2a4g5x867gni80ldp226bsnhncfbil4ql6v2zwm4r8p7f"))))
14062 (build-system haskell-build-system)
14063 (inputs
14064 `(("ghc-ansi-wl-pprint" ,ghc-ansi-wl-pprint)
14065 ("ghc-async" ,ghc-async)
14066 ("ghc-clock" ,ghc-clock)
14067 ("ghc-exceptions" ,ghc-exceptions)
14068 ("ghc-foldl" ,ghc-foldl)
14069 ("ghc-hostname" ,ghc-hostname)
14070 ("ghc-managed" ,ghc-managed)
14071 ("ghc-semigroups" ,ghc-semigroups)
14072 ("ghc-system-filepath" ,ghc-system-filepath)
14073 ("ghc-system-fileio" ,ghc-system-fileio)
14074 ("ghc-streaming-commons" ,ghc-streaming-commons)
14075 ("ghc-temporary" ,ghc-temporary)
14076 ("ghc-optparse-applicative" ,ghc-optparse-applicative)
14077 ("ghc-optional-args" ,ghc-optional-args)
14078 ("ghc-unix-compat" ,ghc-unix-compat)))
14079 (native-inputs
14080 `(("ghc-doctest" ,ghc-doctest)
14081 ("ghc-fail" ,ghc-fail)))
14082 (arguments
14083 `(#:cabal-revision
14084 ("1" "02q1rv7zx31xz9wnmcqwd4w3iw7623p07iyi21zr0cqlignic5pg")))
14085 (home-page
14086 "http://hackage.haskell.org/package/turtle")
14087 (synopsis "Shell programming, Haskell-style")
14088 (description
14089 "Turtle is a reimplementation of the Unix command line environment in
14090Haskell so that you can use Haskell as both a shell and a scripting
14091language. Features include:
14092
14093@itemize
14094@item Batteries included: Command an extended suite of predefined utilities.
14095@item Interoperability: You can still run external shell commands.
14096@item Portability: Works on Windows, OS X, and Linux.
14097@item Exception safety: Safely acquire and release resources.
14098@item Streaming: Transform or fold command output in constant space.
14099@item Patterns: Use typed regular expressions that can parse structured values.
14100@item Formatting: Type-safe printf-style text formatting.
14101@item Modern: Supports text and system-filepath.
14102@end itemize
14103
14104Read \"Turtle.Tutorial\" for a detailed tutorial or \"Turtle.Prelude\" for a
14105quick-start guide. Turtle is designed to be beginner-friendly, but as a
14106result lacks certain features, like tracing commands. If you feel comfortable
14107using turtle then you should also check out the Shelly library which provides
14108similar functionality.")
14109 (license license:bsd-3)))
14110
dddbc90c
RV
14111(define-public ghc-typed-process
14112 (package
14113 (name "ghc-typed-process")
72fb84a5 14114 (version "0.2.6.0")
dddbc90c
RV
14115 (source
14116 (origin
14117 (method url-fetch)
14118 (uri (string-append "https://hackage.haskell.org/package/"
14119 "typed-process/typed-process-"
14120 version ".tar.gz"))
14121 (sha256
14122 (base32
72fb84a5 14123 "1cf2pfym8zdxvvy7xv72ixj7wy3rjrdss6f57k1ysgs66cgsi8ii"))))
dddbc90c
RV
14124 (build-system haskell-build-system)
14125 (inputs
72fb84a5
TS
14126 `(("ghc-async" ,ghc-async)
14127 ("ghc-unliftio-core" ,ghc-unliftio-core)))
dddbc90c
RV
14128 (native-inputs
14129 `(("ghc-base64-bytestring" ,ghc-base64-bytestring)
14130 ("ghc-hspec" ,ghc-hspec)
14131 ("hspec-discover" ,hspec-discover)
14132 ("ghc-temporary" ,ghc-temporary)))
14133 (home-page "https://haskell-lang.org/library/typed-process")
14134 (synopsis "Run external processes with strong typing of streams")
14135 (description
14136 "This library provides the ability to launch and interact with external
14137processes. It wraps around the @code{process} library, and intends to improve
14138upon it.")
14139 (license license:expat)))
14140
3a09211c
CH
14141(define-public ghc-uglymemo
14142 (package
14143 (name "ghc-uglymemo")
14144 (version "0.1.0.1")
14145 (source
14146 (origin
14147 (method url-fetch)
14148 (uri (string-append
14149 "https://hackage.haskell.org/package/uglymemo/uglymemo-"
14150 version
14151 ".tar.gz"))
14152 (sha256
14153 (base32
14154 "0ixqg5d0ly1r18jbgaa89i6kjzgi6c5hanw1b1y8c5fbq14yz2gy"))))
14155 (build-system haskell-build-system)
14156 (home-page "https://hackage.haskell.org/package/uglymemo")
14157 (synopsis "Simple memoization function for Haskell")
14158 (description
14159 "This package provides a simple (but internally ugly) memoization
14160function.")
14161 (license license:public-domain)))
14162
d392f803
AG
14163(define-public ghc-unagi-chan
14164 (package
14165 (name "ghc-unagi-chan")
14166 (version "0.4.1.2")
14167 (source
14168 (origin
14169 (method url-fetch)
14170 (uri (string-append "https://hackage.haskell.org/package/unagi-chan"
14171 "/unagi-chan-" version ".tar.gz"))
14172 (sha256
14173 (base32
14174 "1lnl5n4jnjmm4chp461glcwkrrw63rjz3fvprwxcy3lkpbkrqvgn"))))
14175 (build-system haskell-build-system)
14176 (inputs
14177 `(("ghc-atomic-primops" ,ghc-atomic-primops)
14178 ("ghc-primitive" ,ghc-primitive)))
14179 (arguments
14180 `(#:tests? #f ; FIXME: Tests expect primitive 0.7
14181 #:cabal-revision
14182 ("1"
14183 "09pqi867wskwgc5lpn197f895mbn1174ydgllvcppcsmrz2b6yr6")))
3ef91e15 14184 (home-page "https://hackage.haskell.org/package/unagi-chan")
d392f803
AG
14185 (synopsis "Fast concurrent queues with a Chan-like API, and more")
14186 (description
14187 "This library provides implementations of concurrent FIFO queues (for
14188both general boxed and primitive unboxed values) that are fast, perform well
14189under contention, and offer a Chan-like interface. The library may be of
14190limited usefulness outside of x86 architectures where the fetch-and-add
14191instruction is not available.")
14192 (license license:bsd-3)))
14193
dddbc90c
RV
14194(define-public ghc-unbounded-delays
14195 (package
14196 (name "ghc-unbounded-delays")
14197 (version "0.1.1.0")
14198 (source
14199 (origin
14200 (method url-fetch)
14201 (uri (string-append
14202 "https://hackage.haskell.org/package/unbounded-delays/unbounded-delays-"
14203 version
14204 ".tar.gz"))
14205 (sha256
14206 (base32
14207 "1ir9fghbrc214c97bwafk5ck6cacxz1pdnq4i18p604d1b8zg9wa"))))
14208 (build-system haskell-build-system)
14209 (home-page "https://github.com/basvandijk/unbounded-delays")
14210 (synopsis "Unbounded thread delays and timeouts")
14211 (description "The @code{threadDelay} and @code{timeout} functions from the
14212Haskell base library use the bounded @code{Int} type for specifying the delay
14213or timeout period. This package provides alternative functions which use the
14214unbounded @code{Integer} type.")
14215 (license license:bsd-3)))
14216
14217(define-public ghc-unexceptionalio
14218 (package
14219 (name "ghc-unexceptionalio")
14220 (version "0.4.0")
14221 (source
14222 (origin
14223 (method url-fetch)
14224 (uri (string-append "https://hackage.haskell.org/package/"
14225 "unexceptionalio-" version "/" "unexceptionalio-"
14226 version ".tar.gz"))
14227 (sha256 (base32 "09gynk472l7nn5l2w320n4dwigwp0wh0shfp6dyw6r5h2jdxz18p"))))
14228 (build-system haskell-build-system)
14229 (home-page "https://github.com/singpolyma/unexceptionalio")
14230 (synopsis "IO without any non-error, synchronous exceptions")
14231 (description "When you've caught all the exceptions that can be
14232handled safely, this is what you're left with.")
14233 (license license:isc)))
14234
b69d4aa7
TS
14235(define-public ghc-unicode-transforms
14236 (package
14237 (name "ghc-unicode-transforms")
14238 (version "0.3.6")
14239 (source
14240 (origin
14241 (method url-fetch)
14242 (uri (string-append "https://hackage.haskell.org/package/"
14243 "unicode-transforms/unicode-transforms-"
14244 version ".tar.gz"))
14245 (sha256
14246 (base32
14247 "1akscvyssif4hki3g6hy0jmjyr8cqly1whzvzj0km2b3qh0x09l3"))))
14248 (build-system haskell-build-system)
14249 (inputs
14250 `(("ghc-bitarray" ,ghc-bitarray)))
14251 (native-inputs
14252 `(("ghc-quickcheck" ,ghc-quickcheck)
14253 ("ghc-getopt-generics" ,ghc-getopt-generics)
14254 ("ghc-split" ,ghc-split)))
14255 (home-page "https://github.com/composewell/unicode-transforms")
14256 (synopsis "Unicode normalization")
14257 (description "This library provides tools for fast Unicode 12.1.0
14258normalization in Haskell (normalization forms C, KC, D, and KD).")
14259 (license license:bsd-3)))
14260
dddbc90c
RV
14261(define-public ghc-union-find
14262 (package
14263 (name "ghc-union-find")
14264 (version "0.2")
14265 (source (origin
14266 (method url-fetch)
14267 (uri (string-append
14268 "https://hackage.haskell.org/package/union-find/union-find-"
14269 version ".tar.gz"))
14270 (sha256
14271 (base32
14272 "1v7hj42j9w6jlzi56jg8rh4p58gfs1c5dx30wd1qqvn0p0mnihp6"))))
14273 (build-system haskell-build-system)
14274 (home-page "https://github.com/nominolo/union-find")
14275 (synopsis "Efficient union and equivalence testing of sets")
14276 (description
14277 "The Union/Find algorithm implements these operations in (effectively)
14278constant-time:
14279@enumerate
14280@item Check whether two elements are in the same equivalence class.
14281@item Create a union of two equivalence classes.
14282@item Look up the descriptor of the equivalence class.
14283@end enumerate\n")
14284 (license license:bsd-3)))
14285
14286(define-public ghc-uniplate
14287 (package
14288 (name "ghc-uniplate")
14289 (version "1.6.12")
14290 (source
14291 (origin
14292 (method url-fetch)
14293 (uri (string-append
14294 "https://hackage.haskell.org/package/uniplate/uniplate-"
14295 version
14296 ".tar.gz"))
14297 (sha256
14298 (base32
14299 "1dx8f9aw27fz8kw0ad1nm6355w5rdl7bjvb427v2bsgnng30pipw"))))
14300 (build-system haskell-build-system)
14301 (inputs
14302 `(("ghc-syb" ,ghc-syb)
14303 ("ghc-hashable" ,ghc-hashable)
14304 ("ghc-unordered-containers" ,ghc-unordered-containers)))
f5d88758 14305 (home-page "https://github.com/ndmitchell/uniplate")
dddbc90c
RV
14306 (synopsis "Simple, concise and fast generic operations")
14307 (description "Uniplate is a library for writing simple and concise generic
14308operations. Uniplate has similar goals to the original Scrap Your Boilerplate
14309work, but is substantially simpler and faster.")
14310 (license license:bsd-3)))
14311
14312(define-public ghc-unix-compat
14313 (package
14314 (name "ghc-unix-compat")
bc82e9f5 14315 (version "0.5.2")
dddbc90c
RV
14316 (source
14317 (origin
14318 (method url-fetch)
14319 (uri (string-append
14320 "https://hackage.haskell.org/package/unix-compat/unix-compat-"
14321 version
14322 ".tar.gz"))
14323 (sha256
14324 (base32
bc82e9f5 14325 "1a8brv9fax76b1fymslzyghwa6ma8yijiyyhn12msl3i5x24x6k5"))))
dddbc90c
RV
14326 (build-system haskell-build-system)
14327 (home-page
14328 "https://github.com/jystic/unix-compat")
14329 (synopsis "Portable POSIX-compatibility layer")
14330 (description
14331 "This package provides portable implementations of parts of the unix
14332package. This package re-exports the unix package when available. When it
14333isn't available, portable implementations are used.")
14334 (license license:bsd-3)))
14335
14336(define-public ghc-unix-time
14337 (package
14338 (name "ghc-unix-time")
fad9cff2 14339 (version "0.4.7")
dddbc90c
RV
14340 (source
14341 (origin
14342 (method url-fetch)
14343 (uri (string-append
14344 "https://hackage.haskell.org/package/unix-time/unix-time-"
14345 version
14346 ".tar.gz"))
14347 (sha256
14348 (base32
fad9cff2 14349 "02fyh298lm8jsg52i3z0ikazwz477ljqjmhnqr2d88grmn5ky8qr"))))
dddbc90c
RV
14350 (build-system haskell-build-system)
14351 (arguments
14352 `(#:tests? #f)) ; FIXME: Test fails with "System.Time not found". This
14353 ; is weird, that should be provided by GHC 7.10.2.
14354 (inputs
14355 `(("ghc-old-time" ,ghc-old-time)
14356 ("ghc-old-locale" ,ghc-old-locale)))
14357 (home-page "https://hackage.haskell.org/package/unix-time")
14358 (synopsis "Unix time parser/formatter and utilities")
14359 (description "This library provides fast parsing and formatting utilities
14360for Unix time in Haskell.")
14361 (license license:bsd-3)))
14362
14363(define-public ghc-unliftio
14364 (package
14365 (name "ghc-unliftio")
a4084db1 14366 (version "0.2.12")
dddbc90c
RV
14367 (source
14368 (origin
14369 (method url-fetch)
14370 (uri (string-append
14371 "https://hackage.haskell.org/package/unliftio/unliftio-"
14372 version
14373 ".tar.gz"))
14374 (sha256
14375 (base32
a4084db1 14376 "02gy1zrxgzg4xmzm8lafsf1nyr3as1q20r8ld73xg3q7rkag9acg"))))
dddbc90c
RV
14377 (build-system haskell-build-system)
14378 (arguments `(#:tests? #f)) ; FIXME: hspec-discover not in PATH
2b3466de 14379 (outputs '("out" "static" "doc"))
dddbc90c
RV
14380 (inputs
14381 `(("ghc-async" ,ghc-async)
14382 ("ghc-unliftio-core" ,ghc-unliftio-core)))
14383 (native-inputs `(("ghc-hspec" ,ghc-hspec)))
14384 (home-page "https://github.com/fpco/unliftio")
14385 (synopsis "Provides MonadUnliftIO typecplass for unlifting monads to
14386IO (batteries included)")
14387 (description "This Haskell package provides the core @code{MonadUnliftIO}
14388typeclass, a number of common instances, and a collection of common functions
14389working with it.")
14390 (license license:expat)))
14391
14392(define-public ghc-unliftio-core
14393 (package
14394 (name "ghc-unliftio-core")
2ae42618 14395 (version "0.1.2.0")
dddbc90c
RV
14396 (source
14397 (origin
14398 (method url-fetch)
14399 (uri (string-append "https://hackage.haskell.org/package/"
14400 "unliftio-core-" version "/"
14401 "unliftio-core-" version ".tar.gz"))
14402 (sha256
14403 (base32
2ae42618 14404 "0y3siyx3drkw7igs380a87h8qfbbgcyxxlcnshp698hcc4yqphr4"))))
dddbc90c
RV
14405 (build-system haskell-build-system)
14406 (arguments
14407 `(#:cabal-revision
2ae42618 14408 ("2" "0jqrjjbgicx48wzcjxs1xmih48ay79rhmrz6081dldlfxynli6vz")))
dddbc90c
RV
14409 (home-page
14410 "https://github.com/fpco/unliftio/tree/master/unliftio-core#readme")
14411 (synopsis "The MonadUnliftIO typeclass for unlifting monads to IO")
14412 (description "This Haskell package provides the core @code{MonadUnliftIO}
14413typeclass, instances for base and transformers, and basic utility
14414functions.")
14415 (license license:expat)))
14416
14417(define-public ghc-unordered-containers
14418 (package
14419 (name "ghc-unordered-containers")
ca01f8d3 14420 (version "0.2.10.0")
534d6caa 14421 (outputs '("out" "static" "doc"))
dddbc90c
RV
14422 (source
14423 (origin
14424 (method url-fetch)
14425 (uri (string-append
14426 "https://hackage.haskell.org/package/unordered-containers"
14427 "/unordered-containers-" version ".tar.gz"))
14428 (sha256
14429 (base32
ca01f8d3 14430 "0wy5hfrs880hh8hvp648bl07ws777n3kkmczzdszr7papnyigwb5"))))
dddbc90c
RV
14431 (build-system haskell-build-system)
14432 (inputs
14433 `(("ghc-chasingbottoms" ,ghc-chasingbottoms)
14434 ("ghc-hunit" ,ghc-hunit)
14435 ("ghc-quickcheck" ,ghc-quickcheck)
14436 ("ghc-test-framework" ,ghc-test-framework)
14437 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
14438 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)
14439 ("ghc-hashable" ,ghc-hashable)))
14440 (home-page
14441 "https://github.com/tibbe/unordered-containers")
14442 (synopsis
14443 "Efficient hashing-based container types")
14444 (description
14445 "Efficient hashing-based container types. The containers have been
14446optimized for performance critical use, both in terms of large data quantities
14447and high speed.")
14448 (license license:bsd-3)))
14449
14450(define-public ghc-unordered-containers-bootstrap
14451 (package
14452 (inherit ghc-unordered-containers)
14453 (name "ghc-unordered-containers-bootstrap")
14454 (arguments `(#:tests? #f))
14455 (inputs
14456 `(("ghc-hashable" ,ghc-hashable-bootstrap)))
799d8d3c 14457 (properties '((hidden? #t)))))
dddbc90c 14458
a52f4c57
JS
14459(define-public ghc-unsafe
14460 (package
14461 (name "ghc-unsafe")
14462 (version "0.0")
14463 (source
14464 (origin
14465 (method url-fetch)
14466 (uri
14467 (string-append
14468 "https://hackage.haskell.org/package/unsafe/unsafe-"
14469 version ".tar.gz"))
14470 (sha256
14471 (base32
14472 "0hc6xr1i3hkz25gdgfx1jqgpsc9mwa05bkfynp0mcfdlyz6782nz"))))
14473 (build-system haskell-build-system)
14474 (home-page "https://hackage.haskell.org/package/unsafe")
14475 (synopsis "Unified interface to unsafe functions")
14476 (description "Safe Haskell introduced the notion of safe and unsafe
14477modules. In order to make as many as possible modules ``safe'', the
14478well-known unsafe functions were moved to distinguished modules. This
14479makes it hard to write packages that work with both old and new versions
14480of GHC. This package provides a single module System.Unsafe that
14481exports the unsafe functions from the base package. It provides them in
14482a style ready for qualification, that is, you should import them by
14483@code{import qualified System.Unsafe as Unsafe}.")
14484 (license license:bsd-3)))
14485
dddbc90c
RV
14486(define-public ghc-uri-bytestring
14487 (package
14488 (name "ghc-uri-bytestring")
d35ffd39 14489 (version "0.3.2.2")
dddbc90c
RV
14490 (source
14491 (origin
14492 (method url-fetch)
14493 (uri (string-append "https://hackage.haskell.org/package/"
14494 "uri-bytestring-" version "/"
14495 "uri-bytestring-" version ".tar.gz"))
14496 (sha256
14497 (base32
d35ffd39 14498 "0spzv3mwlpxiamd7347sxwcy2xri16ak1y7p1v4fisnvq4jprm67"))))
dddbc90c
RV
14499 (build-system haskell-build-system)
14500 (inputs `(("ghc-attoparsec" ,ghc-attoparsec)
dddbc90c
RV
14501 ("ghc-blaze-builder" ,ghc-blaze-builder)
14502 ("ghc-th-lift-instances" ,ghc-th-lift-instances)))
d35ffd39 14503 (native-inputs `(("ghc-hunit" ,ghc-hunit)
dddbc90c
RV
14504 ("ghc-tasty" ,ghc-tasty)
14505 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
d35ffd39
TS
14506 ("ghc-hedgehog" ,ghc-hedgehog)
14507 ("ghc-tasty-hedgehog" ,ghc-tasty-hedgehog)
dddbc90c 14508 ("ghc-base-compat" ,ghc-base-compat)
dddbc90c 14509 ("ghc-semigroups" ,ghc-semigroups)
d35ffd39 14510 ("ghc-safe" ,ghc-safe)))
dddbc90c
RV
14511 (home-page "https://github.com/Soostone/uri-bytestring")
14512 (synopsis "Haskell URI parsing as ByteStrings")
14513 (description "This Haskell package aims to be an RFC3986 compliant URI
14514parser that uses ByteStrings for parsing and representing the URI data.")
14515 (license license:bsd-3)))
14516
d7ad0823
JS
14517(define-public ghc-utf8-light
14518 (package
14519 (name "ghc-utf8-light")
14520 (version "0.4.2")
14521 (source
14522 (origin
14523 (method url-fetch)
14524 (uri (string-append
14525 "mirror://hackage/package/utf8-light/utf8-light-"
14526 version
14527 ".tar.gz"))
14528 (sha256
14529 (base32
14530 "0rwyc5z331yfnm4hpx0sph6i1zvkd1z10vvglhnp0vc9wy644k0q"))))
14531 (build-system haskell-build-system)
14532 (home-page
14533 "http://hackage.haskell.org/package/utf8-light")
14534 (synopsis "Lightweight unicode support for Haskell")
14535 (description
14536 "This package profides a class for encoding and decoding UTF8 strings
14537with instances for several common types. It also includes several functions
14538for working with UTF8. It aims to be lightweight, depending only on Base and
14539including only one module.")
14540 (license license:bsd-3)))
14541
dddbc90c
RV
14542(define-public ghc-utf8-string
14543 (package
14544 (name "ghc-utf8-string")
14545 (version "1.0.1.1")
14546 (source
14547 (origin
14548 (method url-fetch)
14549 (uri (string-append
14550 "https://hackage.haskell.org/package/utf8-string/utf8-string-"
14551 version
14552 ".tar.gz"))
14553 (sha256
14554 (base32 "0h7imvxkahiy8pzr8cpsimifdfvv18lizrb33k6mnq70rcx9w2zv"))))
14555 (build-system haskell-build-system)
14556 (arguments
14557 `(#:cabal-revision
14558 ("3" "02vhj5gykkqa2dyn7s6gn8is1b5fdn9xcqqvlls268g7cpv6rk38")))
14559 (home-page "https://github.com/glguy/utf8-string/")
14560 (synopsis "Support for reading and writing UTF8 Strings")
14561 (description
14562 "A UTF8 layer for Strings. The utf8-string package provides operations
14563for encoding UTF8 strings to Word8 lists and back, and for reading and writing
14564UTF8 without truncation.")
14565 (license license:bsd-3)))
14566
14567(define-public ghc-utility-ht
14568 (package
14569 (name "ghc-utility-ht")
14570 (version "0.0.14")
14571 (home-page "https://hackage.haskell.org/package/utility-ht")
14572 (source
14573 (origin
14574 (method url-fetch)
14575 (uri (string-append home-page "/utility-ht-" version ".tar.gz"))
14576 (sha256
14577 (base32 "1a7bgk7wv7sqbxbiv7kankiimr3wij7zdm7s83zwsf886ghyxhk9"))))
14578 (build-system haskell-build-system)
14579 (inputs `(("ghc-quickcheck" ,ghc-quickcheck)))
14580 (synopsis "Haskell helper functions for Lists, Maybes, Tuples, Functions")
14581 (description "This package includes Hakell modules providing various
14582helper functions for Lists, Maybes, Tuples, Functions.")
14583 (license license:bsd-3)))
14584
14585(define-public ghc-uuid
14586 (package
14587 (name "ghc-uuid")
14588 (version "1.3.13")
14589 (source
14590 (origin
14591 (method url-fetch)
14592 (uri (string-append "https://hackage.haskell.org/package/"
14593 "uuid-" version "/"
14594 "uuid-" version ".tar.gz"))
14595 (sha256
14596 (base32
14597 "09xhk42yhxvqmka0iqrv3338asncz8cap3j0ic0ps896f2581b6z"))))
14598 (build-system haskell-build-system)
14599 (arguments
14600 `(#:cabal-revision
14601 ("2" "0m185q62jkfb5jsv358nxbnrkv8y8hd0qqvgvh22wvc5g9ipz0r9")
14602 #:phases
14603 (modify-phases %standard-phases
14604 (add-before 'configure 'strip-test-framework-constraints
14605 (lambda _
14606 (substitute* "uuid.cabal"
14607 (("HUnit >= 1\\.2 && < 1\\.4") "HUnit")
14608 (("QuickCheck >= 2\\.4 && < 2\\.10") "QuickCheck")
14609 (("tasty >= 0\\.10 && < 0\\.12") "tasty")
14610 (("tasty-hunit == 0\\.9\\.\\*") "tasty-hunit")
14611 (("tasty-quickcheck == 0\\.8\\.\\*") "tasty-quickcheck")))))))
14612 (inputs `(("ghc-cryptohash-sha1" ,ghc-cryptohash-sha1)
14613 ("ghc-cryptohash-md5" ,ghc-cryptohash-md5)
14614 ("ghc-entropy" ,ghc-entropy)
14615 ("ghc-network-info" ,ghc-network-info)
14616 ("ghc-random" ,ghc-random)
14617 ("ghc-uuid-types" ,ghc-uuid-types)))
14618 (native-inputs `(("ghc-hunit" ,ghc-hunit)
14619 ("ghc-quickcheck" ,ghc-quickcheck)
14620 ("ghc-tasty" ,ghc-tasty)
14621 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
14622 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
14623 (home-page "https://github.com/hvr/uuid")
14624 (synopsis "Haskell library to create, compare, parse, and print UUIDs")
14625 (description "This Haskell library provides utilities creating, comparing,
14626parsing and printing @dfn{Universally Unique Identifiers} or UUIDs.")
14627 (license license:bsd-3)))
14628
14629(define-public ghc-uuid-types
14630 (package
14631 (name "ghc-uuid-types")
14632 (version "1.0.3")
14633 (source
14634 (origin
14635 (method url-fetch)
14636 (uri (string-append "https://hackage.haskell.org/package/"
14637 "uuid-types-" version "/"
14638 "uuid-types-" version ".tar.gz"))
14639 (sha256
14640 (base32
14641 "1zdka5jnm1h6k36w3nr647yf3b5lqb336g3fkprhd6san9x52xlj"))))
14642 (build-system haskell-build-system)
14643 (arguments
14644 `(#:phases
14645 (modify-phases %standard-phases
14646 (add-before 'configure 'strip-test-framework-constraints
14647 (lambda _
14648 (substitute* "uuid-types.cabal"
14649 (("HUnit >=1\\.2 && < 1\\.4") "HUnit")
14650 (("QuickCheck >=2\\.4 && < 2\\.9") "QuickCheck")
14651 (("tasty >= 0\\.10 && < 0\\.12") "tasty")
14652 (("tasty-hunit == 0\\.9\\.\\*") "tasty-hunit")
14653 (("tasty-quickcheck == 0\\.8\\.\\*") "tasty-quickcheck")))))))
14654 (inputs `(("ghc-hashable" ,ghc-hashable)
14655 ("ghc-random" ,ghc-random)))
14656 (native-inputs `(("ghc-hunit" ,ghc-hunit)
14657 ("ghc-quickcheck" ,ghc-quickcheck)
14658 ("ghc-tasty" ,ghc-tasty)
14659 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
14660 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
14661 (home-page "https://github.com/hvr/uuid")
14662 (synopsis "Haskell type definitions for UUIDs")
14663 (description "This Haskell library contains type definitions for
14664@dfn{Universally Unique Identifiers} or
14665@uref{https://en.wikipedia.org/wiki/UUID, UUIDs}, and basic conversion
14666functions.")
14667 (license license:bsd-3)))
14668
14669(define-public ghc-validation
14670 (package
14671 (name "ghc-validation")
08397fde 14672 (version "1.1")
dddbc90c
RV
14673 (source
14674 (origin
14675 (method url-fetch)
14676 (uri (string-append
14677 "mirror://hackage/package/validation/validation-"
14678 version
14679 ".tar.gz"))
14680 (sha256
14681 (base32
08397fde 14682 "1acj7mh3581ks405xswxw6667z7y1y0slisg6jvp6chc191ji9l5"))))
dddbc90c
RV
14683 (build-system haskell-build-system)
14684 (arguments
14685 `(#:cabal-revision
08397fde 14686 ("1" "1rrjg9z399k6pb55nv85mlr5bkmdqbjwkvl1cy7ydccdx6ks4syp")))
dddbc90c
RV
14687 (inputs
14688 `(("ghc-semigroups" ,ghc-semigroups)
14689 ("ghc-semigroupoids" ,ghc-semigroupoids)
14690 ("ghc-bifunctors" ,ghc-bifunctors)
14691 ("ghc-lens" ,ghc-lens)))
14692 (native-inputs
14693 `(("ghc-hedgehog" ,ghc-hedgehog)
14694 ("ghc-hunit" ,ghc-hunit)))
14695 (home-page "https://github.com/qfpl/validation")
14696 (synopsis
14697 "Data-type like Either but with an accumulating Applicative")
14698 (description
14699 "A data-type like Either but with differing properties and type-class
14700instances.
14701
14702Library support is provided for this different representation, including
14703@code{lens}-related functions for converting between each and abstracting over
14704their similarities.
14705
14706The @code{Validation} data type is isomorphic to @code{Either}, but has an
14707instance of @code{Applicative} that accumulates on the error side. That is to
14708say, if two (or more) errors are encountered, they are appended using a
14709@{Semigroup} operation.
14710
14711As a consequence of this @code{Applicative} instance, there is no
14712corresponding @code{Bind} or @code{Monad} instance. @code{Validation} is an
14713example of, \"An applicative functor that is not a monad.\"")
14714 (license license:bsd-3)))
14715
14716(define-public ghc-validity
14717 (package
14718 (name "ghc-validity")
3f1ba75d 14719 (version "0.9.0.2")
dddbc90c
RV
14720 (source
14721 (origin
14722 (method url-fetch)
14723 (uri (string-append
14724 "https://hackage.haskell.org/package/validity/validity-"
14725 version
14726 ".tar.gz"))
14727 (sha256
14728 (base32
3f1ba75d 14729 "1aa93lp1pqwv7vhx19nazlig8qhbp3psblbz360s5lii3s5rli2v"))))
dddbc90c
RV
14730 (build-system haskell-build-system)
14731 (native-inputs `(("ghc-hspec" ,ghc-hspec)
14732 ("hspec-discover" ,hspec-discover)))
14733 (home-page
14734 "https://github.com/NorfairKing/validity")
14735 (synopsis "Validity typeclass")
14736 (description
14737 "Values of custom types usually have invariants imposed upon them. This
14738package provides the @code{Validity} type class, which makes these invariants
14739explicit by providing a function to check whether the invariants hold.")
14740 (license license:expat)))
14741
14742(define-public ghc-vault
14743 (package
14744 (name "ghc-vault")
b40a436e 14745 (version "0.3.1.3")
dddbc90c
RV
14746 (source
14747 (origin
14748 (method url-fetch)
14749 (uri (string-append
14750 "https://hackage.haskell.org/package/vault/vault-"
14751 version
14752 ".tar.gz"))
14753 (sha256
14754 (base32
b40a436e 14755 "0vdm472vn734xa27jjm2mjacl37mxiqaaahvm4hzqjgyh4cqq377"))))
dddbc90c
RV
14756 (build-system haskell-build-system)
14757 (inputs
14758 `(("ghc-unordered-containers" ,ghc-unordered-containers)
14759 ("ghc-hashable" ,ghc-hashable)
b40a436e 14760 ("ghc-semigroups" ,ghc-semigroups)))
dddbc90c
RV
14761 (home-page
14762 "https://github.com/HeinrichApfelmus/vault")
14763 (synopsis "Persistent store for arbitrary values")
14764 (description "This package provides vaults for Haskell. A vault is a
14765persistent store for values of arbitrary types. It's like having first-class
14766access to the storage space behind @code{IORefs}. The data structure is
14767analogous to a bank vault, where you can access different bank boxes with
14768different keys; hence the name. Also provided is a @code{locker} type,
14769representing a store for a single element.")
14770 (license license:bsd-3)))
14771
14772(define-public ghc-vector
14773 (package
14774 (name "ghc-vector")
3ad67f6b 14775 (version "0.12.0.3")
534d6caa 14776 (outputs '("out" "static" "doc"))
dddbc90c
RV
14777 (source
14778 (origin
14779 (method url-fetch)
14780 (uri (string-append
14781 "https://hackage.haskell.org/package/vector/vector-"
14782 version
14783 ".tar.gz"))
14784 (sha256
14785 (base32
3ad67f6b 14786 "1a756s4w759ji3als5alfxwlckh5zcmykfg9rll4mlr2knzvz8mq"))))
dddbc90c
RV
14787 (build-system haskell-build-system)
14788 ;; FIXME: To simplify upgrading all Haskell packages, we leave the tests
14789 ;; disabled for now.
14790 (arguments
3ad67f6b 14791 `(#:tests? #f))
dddbc90c
RV
14792 (inputs
14793 `(("ghc-primitive" ,ghc-primitive)
14794 ("ghc-random" ,ghc-random)
14795 ("ghc-quickcheck" ,ghc-quickcheck)
14796 ;; ("ghc-hunit" ,ghc-hunit)
14797 ;; ("ghc-test-framework" ,ghc-test-framework)
14798 ;; ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
14799 ;; ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)
14800 ))
14801 (home-page "https://github.com/haskell/vector")
14802 (synopsis "Efficient Arrays")
14803 (description "This library provides an efficient implementation of
14804Int-indexed arrays (both mutable and immutable), with a powerful loop
14805optimisation framework.")
14806 (license license:bsd-3)))
14807
14808(define-public ghc-vector-algorithms
14809 (package
14810 (name "ghc-vector-algorithms")
e71f316f 14811 (version "0.8.0.1")
dddbc90c
RV
14812 (source
14813 (origin
14814 (method url-fetch)
14815 (uri (string-append "https://hackage.haskell.org/package/"
14816 "vector-algorithms-" version "/"
14817 "vector-algorithms-" version ".tar.gz"))
14818 (sha256
14819 (base32
e71f316f 14820 "1zip8r7hh5g12xrjvhbg38z6hfxy7l6h6pl88qcqc0ygdmwdxg0m"))))
dddbc90c
RV
14821 (build-system haskell-build-system)
14822 (inputs
14823 `(("ghc-vector" ,ghc-vector)))
14824 (native-inputs
14825 `(("ghc-quickcheck" ,ghc-quickcheck)))
14826 (home-page "https://github.com/bos/math-functions")
14827 (synopsis "Algorithms for vector arrays in Haskell")
14828 (description "This Haskell library algorithms for vector arrays.")
14829 (license license:bsd-3)))
14830
14831(define-public ghc-vector-binary-instances
14832 (package
14833 (name "ghc-vector-binary-instances")
ca0701ef 14834 (version "0.2.5.1")
dddbc90c
RV
14835 (source
14836 (origin
14837 (method url-fetch)
14838 (uri (string-append
14839 "https://hackage.haskell.org/package/"
14840 "vector-binary-instances/vector-binary-instances-"
14841 version ".tar.gz"))
14842 (sha256
14843 (base32
ca0701ef 14844 "04n5cqm1v95pw1bp68l9drjkxqiy2vswxdq0fy1rqcgxisgvji9r"))))
dddbc90c 14845 (build-system haskell-build-system)
dddbc90c
RV
14846 (inputs
14847 `(("ghc-vector" ,ghc-vector)))
14848 (native-inputs
14849 `(("ghc-tasty" ,ghc-tasty)
14850 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
14851 (home-page "https://github.com/bos/vector-binary-instances")
14852 (synopsis "Instances of Data.Binary and Data.Serialize for vector")
14853 (description "This library provides instances of @code{Binary} for the
14854types defined in the @code{vector} package, making it easy to serialize
14855vectors to and from disk. We use the generic interface to vectors, so all
14856vector types are supported. Specific instances are provided for unboxed,
14857boxed and storable vectors.")
14858 (license license:bsd-3)))
14859
14860(define-public ghc-vector-builder
14861 (package
14862 (name "ghc-vector-builder")
1fc05441 14863 (version "0.3.8")
dddbc90c
RV
14864 (source
14865 (origin
14866 (method url-fetch)
14867 (uri (string-append "https://hackage.haskell.org/package/"
14868 "vector-builder-" version "/"
14869 "vector-builder-" version ".tar.gz"))
14870 (sha256
14871 (base32
1fc05441 14872 "0ww0l52p8s6gmh985adnjbvm1vrqpqbm08qdcrvxwhhcqmxgv6m3"))))
dddbc90c
RV
14873 (build-system haskell-build-system)
14874 (inputs `(("ghc-vector" ,ghc-vector)
14875 ("ghc-semigroups" ,ghc-semigroups)
14876 ("ghc-base-prelude" ,ghc-base-prelude)))
14877 (native-inputs `(("ghc-attoparsec" ,ghc-attoparsec)
14878 ("ghc-tasty" ,ghc-tasty)
14879 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
14880 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
14881 ("ghc-hunit" ,ghc-hunit)
14882 ("ghc-quickcheck-instances" ,ghc-quickcheck-instances)
14883 ("ghc-rerebase" ,ghc-rerebase)))
14884 (home-page "https://github.com/nikita-volkov/vector-builder")
14885 (synopsis "Vector builder for Haskell")
14886 (description "This Haskell package provides an API for constructing vectors.
14887It provides the composable @code{Builder} abstraction, which has instances of the
14888@code{Monoid} and @code{Semigroup} classes.
14889
14890You would first use the @code{Builder} abstraction to specify the structure of
14891the vector; then you can execute the builder to actually produce the
14892vector. ")
14893 (license license:expat)))
14894
14895(define-public ghc-vector-th-unbox
14896 (package
14897 (name "ghc-vector-th-unbox")
63056e61 14898 (version "0.2.1.7")
dddbc90c
RV
14899 (source
14900 (origin
14901 (method url-fetch)
14902 (uri (string-append "https://hackage.haskell.org/package/"
14903 "vector-th-unbox-" version "/"
14904 "vector-th-unbox-" version ".tar.gz"))
14905 (sha256
14906 (base32
63056e61 14907 "0q8dqnbv1c2gi7jjdhqj14abj1vik23ki6lq4iz2sz18yc7q69fi"))))
dddbc90c
RV
14908 (build-system haskell-build-system)
14909 (inputs
14910 `(("ghc-vector" ,ghc-vector)
14911 ("ghc-data-default" ,ghc-data-default)))
14912 (home-page "https://github.com/liyang/vector-th-unbox")
14913 (synopsis "Deriver for Data.Vector.Unboxed using Template Haskell")
14914 (description "This Haskell library provides a Template Haskell
14915deriver for unboxed vectors, given a pair of coercion functions to
14916and from some existing type with an Unbox instance.")
14917 (license license:bsd-3)))
14918
14919(define-public ghc-void
14920 (package
14921 (name "ghc-void")
51889121 14922 (version "0.7.3")
dddbc90c
RV
14923 (source
14924 (origin
14925 (method url-fetch)
14926 (uri (string-append
14927 "https://hackage.haskell.org/package/void/void-"
14928 version
14929 ".tar.gz"))
14930 (sha256
14931 (base32
51889121 14932 "05vk3x1r9a2pqnzfji475m5gdih2im1h7rbi2sc67p1pvj6pbbsk"))))
dddbc90c
RV
14933 (build-system haskell-build-system)
14934 (inputs
14935 `(("ghc-semigroups" ,ghc-semigroups)
14936 ("ghc-hashable" ,ghc-hashable)))
14937 (home-page "https://github.com/ekmett/void")
14938 (synopsis
14939 "Logically uninhabited data type")
14940 (description
14941 "A Haskell 98 logically uninhabited data type, used to indicate that a
14942given term should not exist.")
14943 (license license:bsd-3)))
14944
14945(define-public ghc-wave
14946 (package
14947 (name "ghc-wave")
1631a0f7 14948 (version "0.2.0")
dddbc90c
RV
14949 (source (origin
14950 (method url-fetch)
14951 (uri (string-append
14952 "https://hackage.haskell.org/package/wave/wave-"
14953 version
14954 ".tar.gz"))
14955 (sha256
14956 (base32
1631a0f7 14957 "149kgwngq3qxc7gxpkqb16j669j0wpv2f3gnvfwp58yg6m4259ki"))))
dddbc90c
RV
14958 (build-system haskell-build-system)
14959 (arguments
14960 '(#:phases
14961 (modify-phases %standard-phases
14962 (add-before 'configure 'update-constraints
14963 (lambda _
14964 (substitute* "wave.cabal"
14965 (("temporary.* < 1\\.3")
14966 "temporary >= 1.1 && < 1.4")))))))
14967 (inputs
14968 `(("ghc-cereal" ,ghc-cereal)
14969 ("ghc-data-default-class"
14970 ,ghc-data-default-class)
14971 ("ghc-quickcheck" ,ghc-quickcheck)
14972 ("ghc-temporary" ,ghc-temporary)))
14973 (native-inputs
14974 `(("hspec-discover" ,hspec-discover)
14975 ("ghc-hspec" ,ghc-hspec)))
14976 (home-page "https://github.com/mrkkrp/wave")
14977 (synopsis "Work with WAVE and RF64 files in Haskell")
14978 (description "This package allows you to work with WAVE and RF64
14979files in Haskell.")
14980 (license license:bsd-3)))
14981
14982(define-public ghc-wcwidth
14983 (package
14984 (name "ghc-wcwidth")
14985 (version "0.0.2")
14986 (source
14987 (origin
14988 (method url-fetch)
14989 (uri (string-append "https://hackage.haskell.org/package/wcwidth/wcwidth-"
14990 version ".tar.gz"))
14991 (sha256
14992 (base32
14993 "1n1fq7v64b59ajf5g50iqj9sa34wm7s2j3viay0kxpmvlcv8gipz"))))
14994 (build-system haskell-build-system)
14995 (inputs
14996 `(("ghc-setlocale" ,ghc-setlocale)
14997 ("ghc-utf8-string" ,ghc-utf8-string)
14998 ("ghc-attoparsec" ,ghc-attoparsec)))
14999 (home-page "https://github.com/solidsnack/wcwidth/")
15000 (synopsis "Haskell bindings to wcwidth")
15001 (description "This package provides Haskell bindings to your system's
15002native wcwidth and a command line tool to examine the widths assigned by it.
15003The command line tool can compile a width table to Haskell code that assigns
15004widths to the Char type.")
15005 (license license:bsd-3)))
15006
15007(define-public ghc-wcwidth-bootstrap
15008 (package
15009 (inherit ghc-wcwidth)
15010 (name "ghc-wcwidth-bootstrap")
15011 (inputs
15012 `(("ghc-setlocale" ,ghc-setlocale)
15013 ("ghc-utf8-string" ,ghc-utf8-string)
15014 ("ghc-attoparsec" ,ghc-attoparsec-bootstrap)))
799d8d3c 15015 (properties '((hidden? #t)))))
dddbc90c
RV
15016
15017(define-public ghc-weigh
15018 (package
15019 (name "ghc-weigh")
b6d9777f 15020 (version "0.0.14")
dddbc90c
RV
15021 (source
15022 (origin
15023 (method url-fetch)
15024 (uri (string-append "https://hackage.haskell.org/package/weigh/"
15025 "weigh-" version ".tar.gz"))
15026 (sha256
15027 (base32
b6d9777f 15028 "0l85marb5rl9nr1c0id42dnr5i9fk1jciy5h6lywhb34w3hbj61g"))))
dddbc90c
RV
15029 (build-system haskell-build-system)
15030 (inputs
15031 `(("ghc-split" ,ghc-split)
15032 ("ghc-temporary" ,ghc-temporary)))
15033 (home-page "https://github.com/fpco/weigh#readme")
15034 (synopsis "Measure allocations of a Haskell functions/values")
15035 (description "This package provides tools to measure the memory usage of a
15036Haskell value or function.")
15037 (license license:bsd-3)))
15038
f2a8aea1
CH
15039(define-public ghc-wizards
15040 (package
15041 (name "ghc-wizards")
15042 (version "1.0.3")
15043 (source
15044 (origin
15045 (method url-fetch)
15046 (uri (string-append
15047 "https://hackage.haskell.org/package/wizards/wizards-"
15048 version
15049 ".tar.gz"))
15050 (sha256
15051 (base32
15052 "1clvbd1ckhvy29qrbmpkn7bya7300fq6znnps23nn3nxyrxhsr85"))))
15053 (build-system haskell-build-system)
15054 (inputs
15055 `(("ghc-control-monad-free" ,ghc-control-monad-free)))
15056 (arguments
15057 `(#:cabal-revision
15058 ("1"
15059 "095qd17zrdhqmcvmslbyzfa5sh9glvvsnsvnlz31gzsmi8nnsgim")))
15060 (home-page "http://hackage.haskell.org/package/wizards")
15061 (synopsis "High level, generic library for interrogative user interfaces")
15062 (description
15063 "@code{wizards} is a package designed for the quick and painless
15064development of @emph{interrogative} programs, which revolve around a dialogue
15065with the user, who is asked a series of questions in a sequence much like an
15066installation wizard.
15067
15068Everything from interactive system scripts, to installation wizards, to
15069full-blown shells can be implemented with the support of @code{wizards}.
15070
15071It is developed transparently on top of a free monad, which separates out the
15072semantics of the program from any particular interface. A variety of backends
15073exist, including console-based @code{System.Console.Wizard.Haskeline} and
15074@code{System.Console.Wizard.BasicIO}, and the pure
15075@code{System.Console.Wizard.Pure}. It is also possible to write your own
15076backends, or extend existing back-ends with new features. While both built-in
15077IO backends operate on a console, there is no reason why @code{wizards} cannot
15078also be used for making GUI wizard interfaces.")
15079 (license license:bsd-3)))
15080
dddbc90c
RV
15081(define-public ghc-wl-pprint
15082 (package
15083 (name "ghc-wl-pprint")
15084 (version "1.2.1")
15085 (source (origin
15086 (method url-fetch)
15087 (uri (string-append
15088 "https://hackage.haskell.org/package/wl-pprint/wl-pprint-"
15089 version ".tar.gz"))
15090 (sha256
15091 (base32
15092 "0kn7y8pdrv8f87zhd5mifcl8fy3b2zvnzmzwhdqhxxlyzwiq6z0c"))))
15093 (build-system haskell-build-system)
15094 (home-page "https://hackage.haskell.org/package/wl-pprint")
15095 (synopsis "Wadler/Leijen pretty printer")
15096 (description
15097 "This is a pretty printing library based on Wadler's paper @i{A Prettier
15098Printer}. This version allows the library user to declare overlapping
15099instances of the @code{Pretty} class.")
15100 (license license:bsd-3)))
15101
15102(define-public ghc-wl-pprint-annotated
15103 (package
15104 (name "ghc-wl-pprint-annotated")
15105 (version "0.1.0.1")
15106 (source
15107 (origin
15108 (method url-fetch)
15109 (uri (string-append
15110 "mirror://hackage/package/wl-pprint-annotated/wl-pprint-annotated-"
15111 version
15112 ".tar.gz"))
15113 (sha256
15114 (base32
15115 "1br7qyf27iza213inwhf9bm2k6in0zbmfw6w4clqlc9f9cj2nrkb"))))
15116 (build-system haskell-build-system)
15117 (native-inputs
15118 `(("ghc-tasty" ,ghc-tasty)
15119 ("ghc-tasty-hunit" ,ghc-tasty-hunit)))
15120 (home-page
15121 "https://github.com/minad/wl-pprint-annotated#readme")
15122 (synopsis
15123 "Wadler/Leijen pretty printer with annotation support")
15124 (description
15125 "Annotations are useful for coloring. This is a limited version of
15126@code{wl-pprint-extras} without support for point effects and without the free
15127monad. Like in @code{annotated-wl-pprint}, only annotations are supported.
15128Compared to @code{annotated-wl-pprint} this library provides a slightly
15129modernized interface.")
15130 (license license:bsd-3)))
15131
15132(define-public ghc-wl-pprint-text
15133 (package
15134 (name "ghc-wl-pprint-text")
15135 (version "1.2.0.0")
15136 (source
15137 (origin
15138 (method url-fetch)
15139 (uri (string-append
15140 "https://hackage.haskell.org/package/wl-pprint-text/wl-pprint-text-"
15141 version ".tar.gz"))
15142 (sha256
15143 (base32
15144 "0g3w92rad6x5appfb22rbzcas2ix2h0hy91sdxhq8a4a5cnlrpa0"))))
15145 (build-system haskell-build-system)
15146 (inputs
15147 `(("ghc-base-compat" ,ghc-base-compat)))
15148 (home-page "https://hackage.haskell.org/package/wl-pprint-text")
15149 (synopsis "Wadler/Leijen Pretty Printer for Text values")
15150 (description
15151 "A clone of wl-pprint for use with the text library.")
15152 (license license:bsd-3)))
15153
15154(define-public ghc-word8
15155 (package
15156 (name "ghc-word8")
15157 (version "0.1.3")
15158 (source
15159 (origin
15160 (method url-fetch)
15161 (uri (string-append
15162 "https://hackage.haskell.org/package/word8/word8-"
15163 version
15164 ".tar.gz"))
15165 (sha256
15166 (base32
15167 "12jx7f13d2h1djq4fh4dyrab61sm49mj1w61j3rzp2vjfm696c16"))))
15168 (build-system haskell-build-system)
15169 (native-inputs
15170 `(("ghc-hspec" ,ghc-hspec)
15171 ("hspec-discover" ,hspec-discover)))
15172 (home-page "https://hackage.haskell.org/package/word8")
15173 (synopsis "Word8 library for Haskell")
15174 (description "Word8 library to be used with @code{Data.ByteString}.")
15175 (license license:bsd-3)))
15176
15177(define-public ghc-x11
15178 (package
15179 (name "ghc-x11")
6c4581a3 15180 (version "1.9.1")
dddbc90c
RV
15181 (source
15182 (origin
15183 (method url-fetch)
15184 (uri (string-append "https://hackage.haskell.org/package/X11/"
15185 "X11-" version ".tar.gz"))
15186 (sha256
6c4581a3 15187 (base32 "0gg6852mrlgl8zng1j84fismz7k81jr5fk92glgkscf8q6ryg0bm"))))
dddbc90c 15188 (build-system haskell-build-system)
54a5fd07
TS
15189 (arguments
15190 `(#:extra-directories
15191 ("libx11" "libxrandr" "libxinerama" "libxscrnsaver")))
dddbc90c
RV
15192 (inputs
15193 `(("libx11" ,libx11)
15194 ("libxrandr" ,libxrandr)
15195 ("libxinerama" ,libxinerama)
15196 ("libxscrnsaver" ,libxscrnsaver)
15197 ("ghc-data-default" ,ghc-data-default)))
15198 (home-page "https://github.com/haskell-pkg-janitors/X11")
15199 (synopsis "Bindings to the X11 graphics library")
15200 (description
15201 "This package provides Haskell bindings to the X11 graphics library. The
15202bindings are a direct translation of the C bindings.")
15203 (license license:bsd-3)))
15204
15205(define-public ghc-x11-xft
15206 (package
15207 (name "ghc-x11-xft")
15208 (version "0.3.1")
15209 (source
15210 (origin
15211 (method url-fetch)
15212 (uri (string-append "https://hackage.haskell.org/package/X11-xft/"
15213 "X11-xft-" version ".tar.gz"))
15214 (sha256
15215 (base32 "1lgqb0s2qfwwgbvwxhjbi23rbwamzdi0l0slfr20c3jpcbp3zfjf"))))
54a5fd07
TS
15216 (arguments
15217 `(#:extra-directories ("libx11" "libxft" "xorgproto")))
dddbc90c
RV
15218 (inputs
15219 `(("ghc-x11" ,ghc-x11)
15220 ("ghc-utf8-string" ,ghc-utf8-string)
15221 ("libx11" ,libx11)
15222 ("libxft" ,libxft)
15223 ("xorgproto" ,xorgproto)))
15224 (native-inputs
15225 `(("pkg-config" ,pkg-config)))
15226 (build-system haskell-build-system)
15227 (home-page "https://hackage.haskell.org/package/X11-xft")
15228 (synopsis "Bindings to Xft")
15229 (description
15230 "Bindings to the Xft, X Free Type interface library, and some Xrender
15231parts.")
15232 (license license:lgpl2.1)))
15233
15234(define-public ghc-xdg-basedir
15235 (package
15236 (name "ghc-xdg-basedir")
15237 (version "0.2.2")
15238 (source
15239 (origin
15240 (method url-fetch)
15241 (uri (string-append
15242 "https://hackage.haskell.org/package/xdg-basedir/"
15243 "xdg-basedir-" version ".tar.gz"))
15244 (sha256
15245 (base32
15246 "0azlzaxp2dn4l1nr7shsxah2magk1szf6fx0mv75az00qsjw6qg4"))))
15247 (build-system haskell-build-system)
702a1012 15248 (home-page "https://github.com/willdonnelly/xdg-basedir")
dddbc90c
RV
15249 (synopsis "XDG Base Directory library for Haskell")
15250 (description "This package provides a library implementing the XDG Base Directory spec.")
15251 (license license:bsd-3)))
15252
15253(define-public ghc-xml
15254 (package
15255 (name "ghc-xml")
15256 (version "1.3.14")
15257 (source
15258 (origin
15259 (method url-fetch)
15260 (uri (string-append
15261 "https://hackage.haskell.org/package/xml/xml-"
15262 version
15263 ".tar.gz"))
15264 (sha256
15265 (base32
15266 "0g814lj7vaxvib2g3r734221k80k7ap9czv9hinifn8syals3l9j"))))
15267 (build-system haskell-build-system)
2b62f5d0 15268 (home-page "https://github.com/GaloisInc/xml")
dddbc90c
RV
15269 (synopsis "Simple XML library for Haskell")
15270 (description "This package provides a simple XML library for Haskell.")
15271 (license license:bsd-3)))
15272
15273(define-public ghc-xml-conduit
15274 (package
15275 (name "ghc-xml-conduit")
15276 (version "1.8.0.1")
15277 (source
15278 (origin
15279 (method url-fetch)
15280 (uri (string-append "https://hackage.haskell.org/package/xml-conduit/"
15281 "xml-conduit-" version ".tar.gz"))
15282 (sha256
15283 (base32
15284 "177gmyigxql1pn3ncz0r8annwv5cbxnihbgrrg1dhm4gmc9jy2wq"))))
15285 (build-system haskell-build-system)
15286 (inputs
15287 `(("ghc-conduit" ,ghc-conduit)
15288 ("ghc-conduit-extra" ,ghc-conduit-extra)
15289 ("ghc-doctest" ,ghc-doctest)
15290 ("ghc-resourcet" ,ghc-resourcet)
15291 ("ghc-xml-types" ,ghc-xml-types)
15292 ("ghc-attoparsec" ,ghc-attoparsec)
15293 ("ghc-data-default-class" ,ghc-data-default-class)
15294 ("ghc-blaze-markup" ,ghc-blaze-markup)
15295 ("ghc-blaze-html" ,ghc-blaze-html)
15296 ("ghc-monad-control" ,ghc-monad-control)
15297 ("ghc-hspec" ,ghc-hspec)
15298 ("ghc-hunit" ,ghc-hunit)))
15299 (home-page "https://github.com/snoyberg/xml")
15300 (synopsis "Utilities for dealing with XML with the conduit package")
15301 (description
15302 "This package provides pure-Haskell utilities for dealing with XML with
15303the @code{conduit} package.")
15304 (license license:expat)))
15305
15306(define-public ghc-xml-types
15307 (package
15308 (name "ghc-xml-types")
15309 (version "0.3.6")
15310 (source
15311 (origin
15312 (method url-fetch)
15313 (uri (string-append "https://hackage.haskell.org/package/xml-types/"
15314 "xml-types-" version ".tar.gz"))
15315 (sha256
15316 (base32
15317 "1jgqxsa9p2q3h6nymbfmvhldqrqlwrhrzmwadlyc0li50x0d8dwr"))))
15318 (build-system haskell-build-system)
15319 (home-page "https://john-millikin.com/software/haskell-xml/")
15320 (synopsis "Basic types for representing XML")
15321 (description "This package provides basic types for representing XML
15322documents.")
15323 (license license:expat)))
15324
7f89dfc9
KM
15325(define-public ghc-xml-hamlet
15326 (package
15327 (name "ghc-xml-hamlet")
15328 (version "0.5.0.1")
15329 (source
15330 (origin
15331 (method url-fetch)
15332 (uri (string-append "https://hackage.haskell.org/package/xml-hamlet/"
15333 "xml-hamlet-" version ".tar.gz"))
15334 (sha256
15335 (base32 "0jrhcjy7ww59dafg857f2g2df1fw2jmbwcs1q379ph0pc5rxj3lj"))))
15336 (build-system haskell-build-system)
15337 (inputs
15338 `(("ghc-shakespeare" ,ghc-shakespeare)
15339 ("ghc-xml-conduit" ,ghc-xml-conduit)))
15340 (native-inputs
15341 `(("ghc-hspec" ,ghc-hspec)
15342 ("ghc-hunit" ,ghc-hunit)))
15343 (home-page "https://www.yesodweb.com/")
15344 (synopsis "Hamlet-style quasiquoter for XML content")
15345 (description "This package provides a type-safe tool for generating XML
15346code via quasi-quoting built on top of @code{ghc-shakespeare}.")
15347 (license license:bsd-3)))
15348
dddbc90c
RV
15349(define-public ghc-yaml
15350 (package
15351 (name "ghc-yaml")
b58e5b84 15352 (version "0.11.1.2")
dddbc90c
RV
15353 (source (origin
15354 (method url-fetch)
15355 (uri (string-append "https://hackage.haskell.org/package/"
15356 "yaml/yaml-" version ".tar.gz"))
15357 (sha256
15358 (base32
b58e5b84 15359 "028pz77n92l6kjgjv263h4b6yhw1iibdbf3a3dkn5qnz537xpzhc"))))
dddbc90c 15360 (build-system haskell-build-system)
dddbc90c
RV
15361 (inputs
15362 `(("ghc-conduit" ,ghc-conduit)
15363 ("ghc-resourcet" ,ghc-resourcet)
15364 ("ghc-aeson" ,ghc-aeson)
15365 ("ghc-unordered-containers" ,ghc-unordered-containers)
15366 ("ghc-vector" ,ghc-vector)
15367 ("ghc-attoparsec" ,ghc-attoparsec)
15368 ("ghc-scientific" ,ghc-scientific)
15369 ("ghc-semigroups" ,ghc-semigroups)
15370 ("ghc-temporary" ,ghc-temporary)
15371 ("ghc-enclosed-exceptions" ,ghc-enclosed-exceptions)
b58e5b84
TS
15372 ("ghc-base-compat" ,ghc-base-compat)
15373 ("ghc-libyaml" ,ghc-libyaml)))
dddbc90c
RV
15374 (native-inputs
15375 `(("ghc-hspec" ,ghc-hspec)
15376 ("ghc-hunit" ,ghc-hunit)
15377 ("hspec-discover" ,hspec-discover)
b58e5b84
TS
15378 ("ghc-mockery" ,ghc-mockery)
15379 ("ghc-raw-strings-qq" ,ghc-raw-strings-qq)))
dddbc90c
RV
15380 (home-page "https://github.com/snoyberg/yaml/")
15381 (synopsis "Parsing and rendering YAML documents")
15382 (description
15383 "This package provides a library to parse and render YAML documents.")
15384 (license license:bsd-3)))
15385
15386(define-public ghc-zip-archive
15387 (package
15388 (name "ghc-zip-archive")
93c1fdd3 15389 (version "0.4.1")
dddbc90c
RV
15390 (source
15391 (origin
15392 (method url-fetch)
15393 (uri (string-append
15394 "https://hackage.haskell.org/package/zip-archive/zip-archive-"
15395 version
15396 ".tar.gz"))
15397 (sha256
15398 (base32
93c1fdd3 15399 "1cdix5mnxrbs7b2kivhdydhfzgxidd9dqlw71mdw5p21cabwkmf5"))))
dddbc90c 15400 (build-system haskell-build-system)
93c1fdd3
TS
15401 (arguments
15402 `(#:phases
15403 (modify-phases %standard-phases
15404 (add-before 'check 'set-PATH-for-tests
15405 (lambda* (#:key inputs #:allow-other-keys)
15406 (let ((unzip (assoc-ref inputs "unzip"))
15407 (which (assoc-ref inputs "which"))
15408 (path (getenv "PATH")))
15409 (setenv "PATH" (string-append unzip "/bin:" which "/bin:" path))
15410 #t))))))
dddbc90c
RV
15411 (inputs
15412 `(("ghc-digest" ,ghc-digest)
15413 ("ghc-temporary" ,ghc-temporary)
15414 ("ghc-zlib" ,ghc-zlib)))
15415 (native-inputs
15416 `(("ghc-hunit" ,ghc-hunit)
93c1fdd3
TS
15417 ("unzip" ,unzip)
15418 ("which" ,which)))
dddbc90c
RV
15419 (home-page "https://hackage.haskell.org/package/zip-archive")
15420 (synopsis "Zip archive library for Haskell")
15421 (description "The zip-archive library provides functions for creating,
15422modifying, and extracting files from zip archives in Haskell.")
15423 (license license:bsd-3)))
15424
15425(define-public ghc-zlib
15426 (package
15427 (name "ghc-zlib")
bf12089a 15428 (version "0.6.2.1")
534d6caa 15429 (outputs '("out" "static" "doc"))
dddbc90c
RV
15430 (source
15431 (origin
15432 (method url-fetch)
15433 (uri (string-append
15434 "https://hackage.haskell.org/package/zlib/zlib-"
15435 version
15436 ".tar.gz"))
15437 (sha256
15438 (base32
bf12089a 15439 "1l11jraslcrp9d4wnhwfyhwk4fsiq1aq8i6vj81vcq1m2zzi1y7h"))))
dddbc90c
RV
15440 (build-system haskell-build-system)
15441 (arguments
54a5fd07
TS
15442 `(#:extra-directories ("zlib")
15443 #:phases
dddbc90c
RV
15444 (modify-phases %standard-phases
15445 (add-before 'configure 'strip-test-framework-constraints
15446 (lambda _
15447 (substitute* "zlib.cabal"
15448 (("tasty >= 0\\.8 && < 0\\.12") "tasty")
15449 (("tasty-hunit >= 0\\.8 && < 0\\.10") "tasty-hunit")
15450 (("tasty-quickcheck == 0\\.8\\.\\*") "tasty-quickcheck")))))))
15451 (inputs `(("zlib" ,zlib)))
15452 (native-inputs
15453 `(("ghc-quickcheck" ,ghc-quickcheck)
15454 ("ghc-tasty" ,ghc-tasty)
15455 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
15456 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
15457 (home-page "https://hackage.haskell.org/package/zlib")
15458 (synopsis
15459 "Compression and decompression in the gzip and zlib formats")
15460 (description
15461 "This package provides a pure interface for compressing and decompressing
15462streams of data represented as lazy @code{ByteString}s. It uses the zlib C
15463library so it has high performance. It supports the @code{zlib}, @code{gzip}
15464and @code{raw} compression formats. It provides a convenient high level API
15465suitable for most tasks and for the few cases where more control is needed it
15466provides access to the full zlib feature set.")
bbf8bf31 15467 (license license:bsd-3)))
14e41996
RV
15468
15469(define-public ghc-zlib-bindings
15470 (package
15471 (name "ghc-zlib-bindings")
15472 (version "0.1.1.5")
15473 (source
15474 (origin
15475 (method url-fetch)
15476 (uri (string-append "https://hackage.haskell.org/package/"
15477 "zlib-bindings/zlib-bindings-" version ".tar.gz"))
15478 (sha256
15479 (base32
15480 "02ciywlz4wdlymgc3jsnicz9kzvymjw1www2163gxidnz4wb8fy8"))))
15481 (build-system haskell-build-system)
15482 (inputs
15483 `(("ghc-zlib" ,ghc-zlib)))
15484 (native-inputs
15485 `(("ghc-hspec" ,ghc-hspec)
15486 ("ghc-quickcheck" ,ghc-quickcheck)))
15487 (arguments
15488 `(#:cabal-revision
15489 ("2" "0fq49694gqkab8m0vq4i879blswczwd66n7xh4r4gwiahf0ryvqc")))
15490 (home-page "https://github.com/snapframework/zlib-bindings")
15491 (synopsis "Low-level bindings to the @code{zlib} package")
15492 (description "This package provides low-level bindings to the
15493@code{zlib} package.")
15494 (license license:bsd-3)))
8428e92c
TS
15495
15496(define-public ghc-zstd
15497 (package
15498 (name "ghc-zstd")
15499 (version "0.1.1.2")
15500 (source
15501 (origin
15502 (method url-fetch)
15503 (uri (string-append "https://hackage.haskell.org/package/"
15504 "zstd/zstd-" version ".tar.gz"))
15505 (sha256
15506 (base32
15507 "147s496zvw13akxqzg65mgfvk3bvhrcilxgf8n786prxg5cm4jz2"))))
15508 (build-system haskell-build-system)
15509 (native-inputs
15510 `(("ghc-quickcheck" ,ghc-quickcheck)
15511 ("ghc-test-framework" ,ghc-test-framework)
15512 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
15513 (home-page "https://github.com/luispedro/hs-zstd")
15514 (synopsis "Haskell bindings to the Zstandard compression algorithm")
15515 (description "This library provides Haskell bindings to the
15516Zstandard compression algorithm, a fast lossless compression algorithm
15517targeting real-time compression scenarios at zlib-level and better
15518compression ratios.")
15519 (license license:bsd-3)))