gnu: ghc-time-locale-compat: Update to 0.1.1.5.
[jackhill/guix/guix.git] / gnu / packages / haskell.scm
CommitLineData
246b3437 1;;; GNU Guix --- Functional package management for GNU
95595618 2;;; Copyright © 2015, 2016 Federico Beffa <beffa@fbengineering.ch>
df1db767 3;;; Copyright © 2015 Siniša Biđin <sinisa@bidin.eu>
0e03d76a 4;;; Copyright © 2015 Paul van der Walt <paul@denknerd.org>
ccd7b308 5;;; Copyright © 2015 Eric Bavier <bavier@member.fsf.org>
ae785e5e 6;;; Copyright © 2016, 2018 Ludovic Courtès <ludo@gnu.org>
4a78fd46 7;;; Copyright © 2016, 2017 Nils Gillmann <ng0@n0.is>
7531b1fc 8;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
b90f72dc 9;;; Copyright © 2015, 2016, 2017, 2018 Ricardo Wurmus <rekado@elephly.net>
c7a7129c 10;;; Copyright © 2016, 2017 David Craven <david@craven.ch>
ee719fba 11;;; Copyright © 2017 Danny Milosavljevic <dannym@scratchpost.org>
df7309fc 12;;; Copyright © 2017 Peter Mikkelsen <petermikkelsen10@gmail.com>
98b90194 13;;; Copyright © 2017, 2018 Alex Vong <alexvong1995@gmail.com>
78d8b8f3 14;;; Copyright © 2017 rsiddharth <s@ricketyspace.net>
a9717a52 15;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
e5d92c1c 16;;; Copyright © 2018 Tonton <tonton@riseup.net>
4c798726 17;;; Copyright © 2018 Timothy Sample <samplet@ngyro.com>
b1a16000 18;;; Copyright © 2018 Arun Isaac <arunisaac@systemreboot.net>
246b3437
FB
19;;;
20;;; This file is part of GNU Guix.
21;;;
22;;; GNU Guix is free software; you can redistribute it and/or modify it
23;;; under the terms of the GNU General Public License as published by
24;;; the Free Software Foundation; either version 3 of the License, or (at
25;;; your option) any later version.
26;;;
27;;; GNU Guix is distributed in the hope that it will be useful, but
28;;; WITHOUT ANY WARRANTY; without even the implied warranty of
29;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
30;;; GNU General Public License for more details.
31;;;
32;;; You should have received a copy of the GNU General Public License
33;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
34
35(define-module (gnu packages haskell)
d8e85b20 36 #:use-module (gnu packages)
9587544b 37 #:use-module (gnu packages base)
c0d5b645 38 #:use-module (gnu packages bootstrap)
ac257f12 39 #:use-module (gnu packages check)
3d3613d5 40 #:use-module (gnu packages compression)
246b3437 41 #:use-module (gnu packages elf)
600621a1 42 #:use-module (gnu packages gcc)
246b3437 43 #:use-module (gnu packages ghostscript)
c0d5b645 44 #:use-module (gnu packages gl)
f797a0e9 45 #:use-module (gnu packages graphviz)
a06b9b50 46 #:use-module (gnu packages haskell-check)
f24eba89 47 #:use-module (gnu packages haskell-crypto)
44b7374a 48 #:use-module (gnu packages haskell-web)
c0d5b645 49 #:use-module (gnu packages libffi)
a7101996 50 #:use-module (gnu packages linux)
95e654ae 51 #:use-module (gnu packages lisp)
ac5d633a 52 #:use-module (gnu packages lua)
95595618 53 #:use-module (gnu packages maths)
246b3437
FB
54 #:use-module (gnu packages multiprecision)
55 #:use-module (gnu packages ncurses)
b10f7be3 56 #:use-module (gnu packages pcre)
c0d5b645
DC
57 #:use-module (gnu packages perl)
58 #:use-module (gnu packages pkg-config)
59 #:use-module (gnu packages python)
60 #:use-module (gnu packages sdl)
587d1752 61 #:use-module (gnu packages tls)
793bcc19 62 #:use-module (gnu packages xml)
c0d5b645 63 #:use-module (gnu packages xorg)
c0d5b645
DC
64 #:use-module (guix build-system gnu)
65 #:use-module (guix build-system haskell)
66 #:use-module (guix download)
ee719fba 67 #:use-module (guix git-download)
c0d5b645
DC
68 #:use-module ((guix licenses) #:prefix license:)
69 #:use-module (guix packages)
70 #:use-module (guix utils)
8e3149ee
RW
71 #:use-module (ice-9 regex)
72 #:use-module ((srfi srfi-1) #:select (alist-delete)))
246b3437 73
95e654ae
RW
74(define-public cl-yale-haskell
75 (let ((commit "85f94c72a16c5f70301dd8db04cde9de2d7dd270")
76 (revision "1"))
77 (package
78 (name "cl-yale-haskell")
79 (version (string-append "2.0.5-" revision "." (string-take commit 9)))
80 (source (origin
81 (method git-fetch)
82 (uri (git-reference
98b90194 83 (url "https://git.elephly.net/software/yale-haskell.git")
95e654ae
RW
84 (commit commit)))
85 (file-name (string-append "yale-haskell-" commit "-checkout"))
86 (sha256
87 (base32
88 "0bal3m6ryrjamz5p93bhs9rp5msk8k7lpcqr44wd7xs9b9k8w74g"))))
89 (build-system gnu-build-system)
90 (arguments
91 `(#:tests? #f ; no tests
92 ;; Stripping binaries leads to a broken executable lisp system image.
93 #:strip-binaries? #f
94 #:make-flags
95 (list (string-append "PREFIX=" (assoc-ref %outputs "out")))
96 #:phases
97 (modify-phases %standard-phases
98 (replace 'configure
99 (lambda _
100 (setenv "PRELUDE" "./progs/prelude")
101 (setenv "HASKELL_LIBRARY" "./progs/lib")
102 (setenv "PRELUDEBIN" "./progs/prelude/clisp")
103 (setenv "HASKELLPROG" "./bin/clisp-haskell")
104 #t)))))
105 (inputs
106 `(("clisp" ,clisp)))
98b90194 107 (home-page "https://git.elephly.net/software/yale-haskell.git")
95e654ae
RW
108 (synopsis "Port of the Yale Haskell system to CLISP")
109 (description "This package provides the Yale Haskell system running on
110top of CLISP.")
111 (license license:bsd-4))))
112
5868a8bf 113(define ghc-bootstrap-x86_64-7.8.4
246b3437
FB
114 (origin
115 (method url-fetch)
5868a8bf
FB
116 (uri
117 "https://www.haskell.org/ghc/dist/7.8.4/ghc-7.8.4-x86_64-unknown-linux-deb7.tar.xz")
246b3437
FB
118 (sha256
119 (base32
5868a8bf
FB
120 "13azsl53xgj20mi1hj9x0xb32vvcvs6cpmvwx6znxhas7blh0bpn"))))
121
122(define ghc-bootstrap-i686-7.8.4
123 (origin
124 (method url-fetch)
125 (uri
126 "https://www.haskell.org/ghc/dist/7.8.4/ghc-7.8.4-i386-unknown-linux-deb7.tar.xz")
127 (sha256
128 (base32
129 "0wj5s435j0zgww70bj1d3f6wvnnpzlxwvwcyh2qv4qjq5z8j64kg"))))
246b3437
FB
130
131;; 43 tests out of 3965 fail.
132;;
133;; Most of them do not appear to be serious:
134;;
135;; - some tests generate files referring to "/bin/sh" and "/bin/ls". I've not
136;; figured out how these references are generated.
137;;
138;; - Some tests allocate more memory than expected (ca. 3% above upper limit)
139;;
140;; - Some tests try to load unavailable libriries: Control.Concurrent.STM,
141;; Data.Vector, Control.Monad.State.
142;;
143;; - Test posix010 tries to check the existence of a user on the system:
144;; getUserEntryForName: does not exist (no such user)
e2dc97d6 145(define-public ghc-7
246b3437
FB
146 (package
147 (name "ghc")
0e03d76a 148 (version "7.10.2")
246b3437
FB
149 (source
150 (origin
151 (method url-fetch)
152 (uri (string-append "https://www.haskell.org/ghc/dist/"
153 version "/" name "-" version "-src.tar.xz"))
154 (sha256
155 (base32
0e03d76a 156 "1x8m4rp2v7ydnrz6z9g8x7z3x3d3pxhv2pixy7i7hkbqbdsp7kal"))))
246b3437
FB
157 (build-system gnu-build-system)
158 (supported-systems '("i686-linux" "x86_64-linux"))
159 (outputs '("out" "doc"))
160 (inputs
161 `(("gmp" ,gmp)
162 ("ncurses" ,ncurses)
163 ("libffi" ,libffi)
246b3437
FB
164 ("ghc-testsuite"
165 ,(origin
166 (method url-fetch)
167 (uri (string-append
168 "https://www.haskell.org/ghc/dist/"
169 version "/" name "-" version "-testsuite.tar.xz"))
170 (sha256
171 (base32
0e03d76a 172 "0qp9da9ar87zbyn6wjgacd2ic1vgzbi3cklxnhsmjqyafv9qaj4b"))))))
246b3437
FB
173 (native-inputs
174 `(("perl" ,perl)
175 ("python" ,python-2) ; for tests (fails with python-3)
176 ("ghostscript" ,ghostscript) ; for tests
177 ("patchelf" ,patchelf)
178 ;; GHC is built with GHC. Therefore we need bootstrap binaries.
5868a8bf
FB
179 ("ghc-binary"
180 ,(if (string-match "x86_64" (or (%current-target-system) (%current-system)))
181 ghc-bootstrap-x86_64-7.8.4
182 ghc-bootstrap-i686-7.8.4))))
246b3437
FB
183 (arguments
184 `(#:test-target "test"
185 ;; We get a smaller number of test failures by disabling parallel test
186 ;; execution.
187 #:parallel-tests? #f
fb799cb7
LC
188
189 ;; The DSOs use $ORIGIN to refer to each other, but (guix build
190 ;; gremlin) doesn't support it yet, so skip this phase.
191 #:validate-runpath? #f
192
bbd19615
MW
193 ;; Don't pass --build=<triplet>, because the configure script
194 ;; auto-detects slightly different triplets for --host and --target and
195 ;; then complains that they don't match.
196 #:build #f
197
246b3437
FB
198 #:modules ((guix build gnu-build-system)
199 (guix build utils)
200 (guix build rpath)
201 (srfi srfi-26)
202 (srfi srfi-1))
caaf1933 203 #:imported-modules (,@%gnu-build-system-modules
246b3437
FB
204 (guix build rpath))
205 #:configure-flags
206 (list
207 (string-append "--with-gmp-libraries="
208 (assoc-ref %build-inputs "gmp") "/lib")
209 (string-append "--with-gmp-includes="
210 (assoc-ref %build-inputs "gmp") "/include")
211 "--with-system-libffi"
212 (string-append "--with-ffi-libraries="
213 (assoc-ref %build-inputs "libffi") "/lib")
214 (string-append "--with-ffi-includes="
215 (assoc-ref %build-inputs "libffi") "/include"))
216 ;; FIXME: The user-guide needs dblatex, docbook-xsl and docbook-utils.
217 ;; Currently we do not have the last one.
218 ;; #:make-flags
219 ;; (list "BUILD_DOCBOOK_HTML = YES")
220 #:phases
221 (let* ((ghc-bootstrap-path
222 (string-append (getcwd) "/" ,name "-" ,version "/ghc-bin"))
223 (ghc-bootstrap-prefix
224 (string-append ghc-bootstrap-path "/usr" )))
225 (alist-cons-after
48d21d6c 226 'unpack-bin 'unpack-testsuite-and-fix-bins
246b3437
FB
227 (lambda* (#:key inputs outputs #:allow-other-keys)
228 (with-directory-excursion ".."
229 (copy-file (assoc-ref inputs "ghc-testsuite")
230 "ghc-testsuite.tar.xz")
231 (system* "tar" "xvf" "ghc-testsuite.tar.xz"))
246b3437
FB
232 (substitute*
233 (list "testsuite/timeout/Makefile"
234 "testsuite/timeout/timeout.py"
235 "testsuite/timeout/timeout.hs"
236 "testsuite/tests/rename/prog006/Setup.lhs"
48d21d6c
EB
237 "testsuite/tests/programs/life_space_leak/life.test"
238 "libraries/process/System/Process/Internals.hs"
239 "libraries/unix/cbits/execvpe.c")
246b3437
FB
240 (("/bin/sh") (which "sh"))
241 (("/bin/rm") "rm"))
242 #t)
243 (alist-cons-after
244 'unpack 'unpack-bin
245 (lambda* (#:key inputs outputs #:allow-other-keys)
246 (mkdir-p ghc-bootstrap-prefix)
247 (with-directory-excursion ghc-bootstrap-path
248 (copy-file (assoc-ref inputs "ghc-binary")
249 "ghc-bin.tar.xz")
250 (zero? (system* "tar" "xvf" "ghc-bin.tar.xz"))))
251 (alist-cons-before
252 'install-bin 'configure-bin
253 (lambda* (#:key inputs outputs #:allow-other-keys)
254 (let* ((binaries
255 (list
256 "./utils/ghc-pwd/dist-install/build/tmp/ghc-pwd"
257 "./utils/hpc/dist-install/build/tmp/hpc"
258 "./utils/haddock/dist/build/tmp/haddock"
259 "./utils/hsc2hs/dist-install/build/tmp/hsc2hs"
260 "./utils/runghc/dist-install/build/tmp/runghc"
261 "./utils/ghc-cabal/dist-install/build/tmp/ghc-cabal"
262 "./utils/hp2ps/dist/build/tmp/hp2ps"
263 "./utils/ghc-pkg/dist-install/build/tmp/ghc-pkg"
264 "./utils/unlit/dist/build/tmp/unlit"
265 "./ghc/stage2/build/tmp/ghc-stage2"))
266 (gmp (assoc-ref inputs "gmp"))
267 (gmp-lib (string-append gmp "/lib"))
268 (gmp-include (string-append gmp "/include"))
269 (ncurses-lib
270 (string-append (assoc-ref inputs "ncurses") "/lib"))
271 (ld-so (string-append (assoc-ref inputs "libc")
272 ,(glibc-dynamic-linker)))
273 (libtinfo-dir
274 (string-append ghc-bootstrap-prefix
275 "/lib/ghc-7.8.4/terminfo-0.4.0.0")))
276 (with-directory-excursion
0e03d76a 277 (string-append ghc-bootstrap-path "/ghc-7.8.4")
246b3437
FB
278 (setenv "CONFIG_SHELL" (which "bash"))
279 (setenv "LD_LIBRARY_PATH" gmp-lib)
280 ;; The binaries have "/lib64/ld-linux-x86-64.so.2" hardcoded.
281 (for-each
282 (cut system* "patchelf" "--set-interpreter" ld-so <>)
283 binaries)
284 ;; The binaries include a reference to libtinfo.so.5 which
285 ;; is a subset of libncurses.so.5. We create a symlink in a
286 ;; directory included in the bootstrap binaries rpath.
287 (mkdir-p libtinfo-dir)
288 (symlink
289 (string-append ncurses-lib "/libncursesw.so."
74733195
RW
290 ;; Extract "6.0" from "6.0-20170930" if a
291 ;; dash-separated version tag exists.
ae785e5e 292 ,(let* ((v (package-version ncurses))
74733195
RW
293 (d (or (string-index v #\-)
294 (string-length v))))
ae785e5e 295 (version-major+minor (string-take v d))))
246b3437 296 (string-append libtinfo-dir "/libtinfo.so.5"))
ae785e5e 297
246b3437
FB
298 (setenv "PATH"
299 (string-append (getenv "PATH") ":"
300 ghc-bootstrap-prefix "/bin"))
301 (system*
302 (string-append (getcwd) "/configure")
303 (string-append "--prefix=" ghc-bootstrap-prefix)
304 (string-append "--with-gmp-libraries=" gmp-lib)
305 (string-append "--with-gmp-includes=" gmp-include)))))
306 (alist-cons-before
307 'configure 'install-bin
308 (lambda* (#:key inputs outputs #:allow-other-keys)
309 (with-directory-excursion
0e03d76a 310 (string-append ghc-bootstrap-path "/ghc-7.8.4")
246b3437
FB
311 (zero? (system* "make" "install"))))
312 %standard-phases)))))))
e17d5133
EB
313 (native-search-paths (list (search-path-specification
314 (variable "GHC_PACKAGE_PATH")
315 (files (list
316 (string-append "lib/ghc-" version)))
317 (file-pattern ".*\\.conf\\.d$")
318 (file-type 'directory))))
246b3437
FB
319 (home-page "https://www.haskell.org/ghc")
320 (synopsis "The Glasgow Haskell Compiler")
7d95c000
FB
321 (description
322 "The Glasgow Haskell Compiler (GHC) is a state-of-the-art compiler and
323interactive environment for the functional language Haskell.")
324 (license license:bsd-3)))
325
9587544b 326(define-public ghc-8.0
7d95c000
FB
327 (package
328 (name "ghc")
d8e85b20 329 (version "8.0.2")
7d95c000
FB
330 (source
331 (origin
332 (method url-fetch)
333 (uri (string-append "https://www.haskell.org/ghc/dist/"
334 version "/" name "-" version "-src.tar.xz"))
335 (sha256
d8e85b20
FB
336 (base32 "1c8qc4fhkycynk4g1f9hvk53dj6a1vvqi6bklqznns6hw59m8qhi"))
337 (patches
338 (search-patches
f6cccefe
DM
339 "ghc-dont-pass-linker-flags-via-response-files.patch"
340 "ghc-8.0-fall-back-to-madv_dontneed.patch"))))
7d95c000
FB
341 (build-system gnu-build-system)
342 (supported-systems '("i686-linux" "x86_64-linux"))
343 (outputs '("out" "doc"))
344 (inputs
345 `(("gmp" ,gmp)
346 ("ncurses" ,ncurses)
347 ("libffi" ,libffi)
7d95c000
FB
348 ("ghc-testsuite"
349 ,(origin
350 (method url-fetch)
351 (uri (string-append
352 "https://www.haskell.org/ghc/dist/"
353 version "/" name "-" version "-testsuite.tar.xz"))
354 (sha256
d8e85b20 355 (base32 "1wjc3x68l305bl1h1ijd3yhqp2vqj83lkp3kqbr94qmmkqlms8sj"))))))
7d95c000
FB
356 (native-inputs
357 `(("perl" ,perl)
358 ("python" ,python-2) ; for tests
359 ("ghostscript" ,ghostscript) ; for tests
360 ;; GHC is built with GHC.
e2dc97d6 361 ("ghc-bootstrap" ,ghc-7)))
7d95c000
FB
362 (arguments
363 `(#:test-target "test"
364 ;; We get a smaller number of test failures by disabling parallel test
365 ;; execution.
366 #:parallel-tests? #f
367
368 ;; The DSOs use $ORIGIN to refer to each other, but (guix build
369 ;; gremlin) doesn't support it yet, so skip this phase.
370 #:validate-runpath? #f
371
372 ;; Don't pass --build=<triplet>, because the configure script
373 ;; auto-detects slightly different triplets for --host and --target and
374 ;; then complains that they don't match.
375 #:build #f
376
7d95c000
FB
377 #:configure-flags
378 (list
379 (string-append "--with-gmp-libraries="
380 (assoc-ref %build-inputs "gmp") "/lib")
381 (string-append "--with-gmp-includes="
382 (assoc-ref %build-inputs "gmp") "/include")
383 "--with-system-libffi"
384 (string-append "--with-ffi-libraries="
385 (assoc-ref %build-inputs "libffi") "/lib")
386 (string-append "--with-ffi-includes="
387 (assoc-ref %build-inputs "libffi") "/include")
388 (string-append "--with-curses-libraries="
389 (assoc-ref %build-inputs "ncurses") "/lib")
390 (string-append "--with-curses-includes="
391 (assoc-ref %build-inputs "ncurses") "/include"))
392 #:phases
393 (modify-phases %standard-phases
394 (add-after 'unpack 'unpack-testsuite
395 (lambda* (#:key inputs #:allow-other-keys)
396 (with-directory-excursion ".."
397 (copy-file (assoc-ref inputs "ghc-testsuite")
398 "ghc-testsuite.tar.xz")
399 (zero? (system* "tar" "xvf" "ghc-testsuite.tar.xz")))))
400 (add-before 'build 'fix-lib-paths
401 (lambda _
402 (substitute*
403 (list "libraries/process/System/Process/Posix.hs"
404 "libraries/process/tests/process001.hs"
405 "libraries/process/tests/process002.hs"
406 "libraries/unix/cbits/execvpe.c")
407 (("/bin/sh") (which "sh"))
408 (("/bin/ls") (which "ls")))
409 #t))
410 (add-before 'build 'fix-environment
411 (lambda _
412 (unsetenv "GHC_PACKAGE_PATH")
413 (setenv "CONFIG_SHELL" (which "bash"))
414 #t))
415 (add-before 'check 'fix-testsuite
416 (lambda _
417 (substitute*
418 (list "testsuite/timeout/Makefile"
419 "testsuite/timeout/timeout.py"
420 "testsuite/timeout/timeout.hs"
421 "testsuite/tests/programs/life_space_leak/life.test")
422 (("/bin/sh") (which "sh"))
423 (("/bin/rm") "rm"))
d8e85b20 424 #t)))))
7d95c000
FB
425 (native-search-paths (list (search-path-specification
426 (variable "GHC_PACKAGE_PATH")
427 (files (list
428 (string-append "lib/ghc-" version)))
429 (file-pattern ".*\\.conf\\.d$")
430 (file-type 'directory))))
431 (home-page "https://www.haskell.org/ghc")
432 (synopsis "The Glasgow Haskell Compiler")
246b3437
FB
433 (description
434 "The Glasgow Haskell Compiler (GHC) is a state-of-the-art compiler and
435interactive environment for the functional language Haskell.")
3ac73271 436 (license license:bsd-3)))
246b3437 437
9587544b
RW
438(define-public ghc-8
439 (package (inherit ghc-8.0)
440 (name "ghc")
441 (version "8.4.3")
442 (source
443 (origin
444 (method url-fetch)
445 (uri (string-append "https://www.haskell.org/ghc/dist/"
446 version "/" name "-" version "-src.tar.xz"))
447 (sha256
448 (base32 "1mk046vb561j75saz05rghhbkps46ym5aci4264dwc2qk3dayixf"))))
449 (inputs
450 `(("gmp" ,gmp)
451 ("ncurses" ,ncurses)
452 ("libffi" ,libffi)
453 ("target-binutils" ,binutils)
454 ("target-gcc" ,gcc)
455 ("target-ld-wrapper" ,(make-ld-wrapper "ld-wrapper"
456 #:binutils binutils))))
457 (native-inputs
458 `(("perl" ,perl)
459 ("python" ,python) ; for tests
460 ("ghostscript" ,ghostscript) ; for tests
461 ;; GHC 8.4.3 is built with GHC 8.
462 ("ghc-bootstrap" ,ghc-8.0)
463 ("ghc-testsuite"
464 ,(origin
465 (method url-fetch)
466 (uri (string-append
467 "https://www.haskell.org/ghc/dist/"
468 version "/" name "-" version "-testsuite.tar.xz"))
469 (sha256
470 (base32
471 "1z55b1z0m3plqd2d1ks6w5wvx7igm7zsk3i4v7cms003z0as0hzz"))))))
472 (arguments
473 `(#:test-target "test"
474 ;; We get a smaller number of test failures by disabling parallel test
475 ;; execution.
476 #:parallel-tests? #f
477
478 ;; The DSOs use $ORIGIN to refer to each other, but (guix build
479 ;; gremlin) doesn't support it yet, so skip this phase.
480 #:validate-runpath? #f
481
482 ;; Don't pass --build=<triplet>, because the configure script
483 ;; auto-detects slightly different triplets for --host and --target and
484 ;; then complains that they don't match.
485 #:build #f
486
487 #:configure-flags
488 (list
489 (string-append "--with-gmp-libraries="
490 (assoc-ref %build-inputs "gmp") "/lib")
491 (string-append "--with-gmp-includes="
492 (assoc-ref %build-inputs "gmp") "/include")
493 "--with-system-libffi"
494 (string-append "--with-ffi-libraries="
495 (assoc-ref %build-inputs "libffi") "/lib")
496 (string-append "--with-ffi-includes="
497 (assoc-ref %build-inputs "libffi") "/include")
498 (string-append "--with-curses-libraries="
499 (assoc-ref %build-inputs "ncurses") "/lib")
500 (string-append "--with-curses-includes="
501 (assoc-ref %build-inputs "ncurses") "/include"))
502 #:phases
503 (modify-phases %standard-phases
504 (add-after 'unpack 'unpack-testsuite
505 (lambda* (#:key inputs #:allow-other-keys)
506 (invoke "tar" "xvf"
507 (assoc-ref inputs "ghc-testsuite")
508 "--strip-components=1")
509 #t))
510 (add-after 'unpack-testsuite 'fix-shell-wrappers
511 (lambda _
512 (substitute* '("driver/ghci/ghc.mk"
513 "utils/mkdirhier/ghc.mk"
514 "rules/shell-wrapper.mk")
515 (("echo '#!/bin/sh'")
516 (format #f "echo '#!~a'" (which "sh"))))
517 #t))
518 ;; This is necessary because the configure system no longer uses
519 ;; “AC_PATH_” but “AC_CHECK_”, setting the variables to just the
520 ;; plain command names.
521 (add-before 'configure 'set-target-programs
522 (lambda* (#:key inputs #:allow-other-keys)
523 (let ((binutils (assoc-ref inputs "target-binutils"))
524 (gcc (assoc-ref inputs "target-gcc"))
525 (ld-wrapper (assoc-ref inputs "target-ld-wrapper")))
526 (setenv "CC" (string-append gcc "/bin/gcc"))
527 (setenv "CXX" (string-append gcc "/bin/g++"))
528 (setenv "LD" (string-append ld-wrapper "/bin/ld"))
529 (setenv "NM" (string-append binutils "/bin/nm"))
530 (setenv "RANLIB" (string-append binutils "/bin/ranlib"))
531 (setenv "STRIP" (string-append binutils "/bin/strip"))
532 ;; The 'ar' command does not follow the same pattern.
533 (setenv "fp_prog_ar" (string-append binutils "/bin/ar"))
534 #t)))
535 (add-before 'build 'fix-references
536 (lambda _
537 (substitute* '("testsuite/timeout/Makefile"
538 "testsuite/timeout/timeout.py"
539 "testsuite/timeout/timeout.hs"
540 "testsuite/tests/programs/life_space_leak/life.test"
541 ;; libraries
542 "libraries/process/System/Process/Posix.hs"
543 "libraries/process/tests/process001.hs"
544 "libraries/process/tests/process002.hs"
545 "libraries/unix/cbits/execvpe.c")
546 (("/bin/sh") (which "sh"))
547 (("/bin/ls") (which "ls"))
548 (("/bin/rm") "rm"))
549 #t))
550 (add-before 'build 'fix-environment
551 (lambda _
552 (unsetenv "GHC_PACKAGE_PATH")
553 (setenv "CONFIG_SHELL" (which "bash"))
554 #t)))))
555 (native-search-paths (list (search-path-specification
556 (variable "GHC_PACKAGE_PATH")
557 (files (list
558 (string-append "lib/ghc-" version)))
559 (file-pattern ".*\\.conf\\.d$")
560 (file-type 'directory))))))
561
dde15fea 562(define-public ghc ghc-8)
e2dc97d6 563
ccd7b308
EB
564(define-public ghc-hostname
565 (package
566 (name "ghc-hostname")
567 (version "1.0")
568 (source
569 (origin
570 (method url-fetch)
612fddec 571 (uri (string-append "https://hackage.haskell.org/package/hostname/"
ccd7b308
EB
572 "hostname-" version ".tar.gz"))
573 (sha256
574 (base32
575 "0p6gm4328946qxc295zb6vhwhf07l1fma82vd0siylnsnsqxlhwv"))))
576 (build-system haskell-build-system)
577 (home-page "https://hackage.haskell.org/package/hostname")
578 (synopsis "Hostname in Haskell")
579 (description "Network.HostName is a simple package providing a means to
580determine the hostname.")
3ac73271 581 (license license:bsd-3)))
ccd7b308 582
f8362eac
RW
583(define-public ghc-convertible
584 (package
585 (name "ghc-convertible")
586 (version "1.1.1.0")
587 (source
588 (origin
589 (method url-fetch)
590 (uri (string-append "https://hackage.haskell.org/package/convertible/"
591 "convertible-" version ".tar.gz"))
592 (sha256
593 (base32
594 "0v18ap1mccnndgxmbfgyjdicg8jlss01bd5fq8a576dr0h4sgyg9"))))
595 (build-system haskell-build-system)
596 (inputs
597 `(("ghc-old-time" ,ghc-old-time)
598 ("ghc-old-locale" ,ghc-old-locale)
f8362eac
RW
599 ("ghc-text" ,ghc-text)))
600 (home-page "https://hackage.haskell.org/package/convertible")
601 (synopsis "Typeclasses and instances for converting between types")
602 (description
603 "This package provides a typeclass with a single function that is
604designed to help convert between different types: numeric values, dates and
605times, and the like. The conversions perform bounds checking and return a
606pure @code{Either} value. This means that you need not remember which specific
607function performs the conversion you desire.")
608 (license license:bsd-3)))
609
de866854
RW
610(define-public ghc-double-conversion
611 (package
612 (name "ghc-double-conversion")
613 (version "2.0.2.0")
614 (source
615 (origin
616 (method url-fetch)
617 (uri (string-append "https://hackage.haskell.org/package/"
618 "double-conversion/double-conversion-"
619 version ".tar.gz"))
620 (sha256
621 (base32
622 "0sx2kc1gw72mjvd8vph8bbjw5whfxfv92rsdhjg1c0al75rf3ka4"))))
623 (build-system haskell-build-system)
624 (inputs `(("ghc-text" ,ghc-text)))
625 (native-inputs
626 `(("ghc-hunit" ,ghc-hunit)
627 ("ghc-test-framework" ,ghc-test-framework)
628 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
629 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
630 (home-page "https://github.com/bos/double-conversion")
631 (synopsis "Fast conversion between double precision floating point and text")
632 (description
633 "This package provides a library that performs fast, accurate conversion
634between double precision floating point and text.")
635 (license license:bsd-3)))
636
1472ba25
EB
637(define-public ghc-libxml
638 (package
639 (name "ghc-libxml")
640 (version "0.1.1")
641 (source
642 (origin
643 (method url-fetch)
98b90194 644 (uri (string-append "https://hackage.haskell.org/package/libxml/"
1472ba25
EB
645 "libxml-" version ".tar.gz"))
646 (sha256
647 (base32
648 "01zvk86kg726lf2vnlr7dxiz7g3xwi5a4ak9gcfbwyhynkzjmsfi"))))
649 (build-system haskell-build-system)
650 (inputs
f54f0475 651 `(("libxml2" ,libxml2)))
1472ba25
EB
652 (arguments
653 `(#:configure-flags
654 `(,(string-append "--extra-include-dirs="
655 (assoc-ref %build-inputs "libxml2")
656 "/include/libxml2"))))
98b90194 657 (home-page "https://hackage.haskell.org/package/libxml")
1472ba25
EB
658 (synopsis "Haskell bindings to libxml2")
659 (description
660 "This library provides minimal Haskell binding to libxml2.")
3ac73271 661 (license license:bsd-3)))
1472ba25 662
1e473fb8
PW
663(define-public ghc-prelude-extras
664 (package
665 (name "ghc-prelude-extras")
29466a9b 666 (version "0.4.0.3")
1e473fb8
PW
667 (source
668 (origin
669 (method url-fetch)
670 (uri (string-append
612fddec 671 "https://hackage.haskell.org/package/prelude-extras/prelude-extras-"
1e473fb8
PW
672 version
673 ".tar.gz"))
674 (sha256
675 (base32
29466a9b 676 "0xzqdf3nl2h0ra4gnslm1m1nsxlsgc0hh6ky3vn578vh11zhifq9"))))
1e473fb8 677 (build-system haskell-build-system)
612fddec 678 (home-page "https://github.com/ekmett/prelude-extras")
1e473fb8
PW
679 (synopsis "Higher order versions of Prelude classes")
680 (description "This library provides higher order versions of
681@code{Prelude} classes to ease programming with polymorphic recursion and
682reduce @code{UndecidableInstances}.")
3ac73271 683 (license license:bsd-3)))
1e473fb8 684
1c77d0ca
SB
685(define-public ghc-data-default
686 (package
687 (name "ghc-data-default")
f9cb5105 688 (version "0.7.1.1")
1c77d0ca
SB
689 (source
690 (origin
691 (method url-fetch)
692 (uri (string-append
612fddec 693 "https://hackage.haskell.org/package/data-default/data-default-"
1c77d0ca
SB
694 version
695 ".tar.gz"))
696 (sha256
f9cb5105 697 (base32 "04d5n8ybmcxba9qb6h389w9zfq1lvj81b82jh6maqp6pkhkmvydh"))))
1c77d0ca 698 (build-system haskell-build-system)
2d47cee2 699 (inputs
1c77d0ca
SB
700 `(("ghc-data-default-class"
701 ,ghc-data-default-class)
702 ("ghc-data-default-instances-base"
703 ,ghc-data-default-instances-base)
704 ("ghc-data-default-instances-containers"
705 ,ghc-data-default-instances-containers)
706 ("ghc-data-default-instances-dlist"
707 ,ghc-data-default-instances-dlist)
708 ("ghc-data-default-instances-old-locale"
709 ,ghc-data-default-instances-old-locale)))
612fddec 710 (home-page "https://hackage.haskell.org/package/data-default")
1c77d0ca
SB
711 (synopsis "Types with default values")
712 (description
713 "This package defines a class for types with a default value, and
714provides instances for types from the base, containers, dlist and old-locale
715packages.")
3ac73271 716 (license license:bsd-3)))
1c77d0ca 717
5079a0af
SB
718(define-public ghc-data-default-class
719 (package
720 (name "ghc-data-default-class")
f378ea16 721 (version "0.1.2.0")
5079a0af
SB
722 (source
723 (origin
724 (method url-fetch)
725 (uri (string-append
612fddec 726 "https://hackage.haskell.org/package/data-default-class/"
5079a0af
SB
727 "data-default-class-" version ".tar.gz"))
728 (sha256
f378ea16 729 (base32 "0miyjz8d4jyvqf2vp60lyfbnflx6cj2k8apmm9ly1hq0y0iv80ag"))))
5079a0af 730 (build-system haskell-build-system)
612fddec 731 (home-page "https://hackage.haskell.org/package/data-default-class")
5079a0af
SB
732 (synopsis "Types with default values")
733 (description
734 "This package defines a class for types with default values.")
3ac73271 735 (license license:bsd-3)))
5079a0af 736
9deb95aa
SB
737(define-public ghc-data-default-instances-base
738 (package
739 (name "ghc-data-default-instances-base")
64a6954b 740 (version "0.1.0.1")
9deb95aa
SB
741 (source
742 (origin
743 (method url-fetch)
744 (uri (string-append
612fddec 745 "https://hackage.haskell.org/package/"
9deb95aa
SB
746 "data-default-instances-base/"
747 "data-default-instances-base-" version ".tar.gz"))
748 (sha256
64a6954b 749 (base32 "0ym1sw3ssdzzifxxhh76qlv8kkmb2iclc158incv1dklyr9y8kw4"))))
9deb95aa 750 (build-system haskell-build-system)
2d47cee2 751 (inputs
9deb95aa 752 `(("ghc-data-default-class" ,ghc-data-default-class)))
612fddec 753 (home-page "https://hackage.haskell.org/package/data-default-instances-base")
9deb95aa
SB
754 (synopsis "Default instances for types in base")
755 (description
756 "This package provides default instances for types from the base
757package.")
3ac73271 758 (license license:bsd-3)))
9deb95aa 759
77a23be2
SB
760(define-public ghc-data-default-instances-containers
761 (package
762 (name "ghc-data-default-instances-containers")
763 (version "0.0.1")
764 (source
765 (origin
766 (method url-fetch)
767 (uri (string-append
612fddec 768 "https://hackage.haskell.org/package/"
77a23be2
SB
769 "data-default-instances-containers/"
770 "data-default-instances-containers-" version ".tar.gz"))
771 (sha256
772 (base32 "06h8xka031w752a7cjlzghvr8adqbl95xj9z5zc1b62w02phfpm5"))))
773 (build-system haskell-build-system)
2d47cee2 774 (inputs
77a23be2 775 `(("ghc-data-default-class" ,ghc-data-default-class)))
612fddec 776 (home-page "https://hackage.haskell.org/package/data-default-instances-containers")
77a23be2
SB
777 (synopsis "Default instances for types in containers")
778 (description "Provides default instances for types from the containers
779package.")
3ac73271 780 (license license:bsd-3)))
77a23be2 781
4271d134
SB
782(define-public ghc-data-default-instances-dlist
783 (package
784 (name "ghc-data-default-instances-dlist")
785 (version "0.0.1")
786 (source
787 (origin
788 (method url-fetch)
789 (uri (string-append
612fddec 790 "https://hackage.haskell.org/package/"
4271d134
SB
791 "data-default-instances-dlist/"
792 "data-default-instances-dlist-" version ".tar.gz"))
793 (sha256
794 (base32 "0narkdqiprhgayjiawrr4390h4rq4pl2pb6mvixbv2phrc8kfs3x"))))
795 (build-system haskell-build-system)
2d47cee2 796 (inputs
4271d134
SB
797 `(("ghc-data-default-class" ,ghc-data-default-class)
798 ("ghc-dlist" ,ghc-dlist)))
612fddec 799 (home-page "https://hackage.haskell.org/package/data-default-instances-dlist")
4271d134
SB
800 (synopsis "Default instances for types in dlist")
801 (description "Provides default instances for types from the dlist
802package.")
3ac73271 803 (license license:bsd-3)))
4271d134 804
df7309fc
PM
805(define-public ghc-code-page
806 (package
807 (name "ghc-code-page")
808 (version "0.1.3")
809 (source
810 (origin
811 (method url-fetch)
812 (uri (string-append
813 "https://hackage.haskell.org/package/code-page/code-page-"
814 version ".tar.gz"))
815 (sha256
816 (base32
817 "1491frk4jx6dlhifky9dvcxbsbcfssrz979a5hp5zn061rh8cp76"))))
818 (build-system haskell-build-system)
819 (home-page "https://github.com/RyanGlScott/code-page")
820 (synopsis "Windows code page library for Haskell")
821 (description "A cross-platform library with functions for adjusting
822code pages on Windows. On all other operating systems, the library does
823nothing.")
824 (license license:bsd-3)))
825
56b3bc56 826(define-public ghc-haddock-library
eb6ae860 827 (package
56b3bc56 828 (name "ghc-haddock-library")
354902e4 829 (version "1.4.3")
eb6ae860
SB
830 (source
831 (origin
832 (method url-fetch)
833 (uri (string-append
612fddec 834 "https://hackage.haskell.org/package/haddock-library/haddock-library-"
eb6ae860
SB
835 version
836 ".tar.gz"))
837 (sha256
56b3bc56 838 (base32
354902e4 839 "0ns4bpf6whmcfl0cm2gx2c73if416x4q3ac4l4qm8w84h0zpcr7p"))))
eb6ae860 840 (build-system haskell-build-system)
56b3bc56 841 (inputs
354902e4
RW
842 `(("ghc-base-compat" ,ghc-base-compat)))
843 (native-inputs
844 `(("hspec-discover" ,hspec-discover)
56b3bc56
PW
845 ("ghc-hspec" ,ghc-hspec)
846 ("ghc-quickcheck" ,ghc-quickcheck)))
98b90194 847 (home-page "https://www.haskell.org/haddock/")
354902e4 848 (synopsis "Library exposing some functionality of Haddock")
eb6ae860 849 (description
56b3bc56
PW
850 "Haddock is a documentation-generation tool for Haskell libraries. These
851modules expose some functionality of it without pulling in the GHC dependency.
852Please note that the API is likely to change so specify upper bounds in your
853project if you can't release often. For interacting with Haddock itself, see
854the ‘haddock’ package.")
3ac73271 855 (license license:bsd-3)))
eb6ae860 856
735bd9c9 857(define-public ghc-haddock-api
05b964ae 858 (package
735bd9c9 859 (name "ghc-haddock-api")
a559c26c
RW
860 ;; This is the last version to be supported by Cabal < 2.0
861 (version "2.17.4")
05b964ae
SB
862 (source
863 (origin
864 (method url-fetch)
735bd9c9 865 (uri (string-append
612fddec 866 "https://hackage.haskell.org/package/haddock-api/haddock-api-"
735bd9c9
PW
867 version
868 ".tar.gz"))
05b964ae 869 (sha256
735bd9c9 870 (base32
a559c26c 871 "00fn6pzgg8xjbaw12d76jdqh2dbc5xy7miyz0x6kidvvar7i35ss"))))
05b964ae 872 (build-system haskell-build-system)
2d47cee2 873 (inputs
735bd9c9
PW
874 `(("ghc-paths" ,ghc-paths)
875 ("ghc-haddock-library" ,ghc-haddock-library)))
a559c26c
RW
876 (native-inputs
877 `(("ghc-quickcheck" ,ghc-quickcheck)
878 ("ghc-hspec" ,ghc-hspec)
879 ("hspec-discover" ,hspec-discover)))
98b90194 880 (home-page "https://www.haskell.org/haddock/")
735bd9c9
PW
881 (synopsis "API for documentation-generation tool Haddock")
882 (description "This package provides an API to Haddock, the
883documentation-generation tool for Haskell libraries.")
3ac73271 884 (license license:bsd-3)))
05b964ae 885
35182fa2
RW
886(define-public ghc-haddock-test
887 (package
888 (name "ghc-haddock-test")
889 (version "0.0.1")
890 (source
891 (origin
892 (method url-fetch)
893 (uri (string-append "https://hackage.haskell.org/package/"
894 "haddock-test/haddock-test-"
895 version ".tar.gz"))
896 (sha256
897 (base32
898 "1ax8fnfrwx66csj952f3virxzapipan9da7z5l1zc12nqkifbs7w"))))
899 (build-system haskell-build-system)
900 (inputs
901 `(("ghc-xml" ,ghc-xml)
902 ("ghc-syb" ,ghc-syb)))
903 (home-page "http://www.haskell.org/haddock/")
904 (synopsis "Test utilities for Haddock")
905 (description "This package provides test utilities for Haddock.")
906 (license license:bsd-3)))
907
e0492a8d 908(define-public ghc-haddock
7d5baa30 909 (package
e0492a8d 910 (name "ghc-haddock")
613845d0 911 (version "2.17.4")
7d5baa30
FB
912 (source
913 (origin
914 (method url-fetch)
915 (uri (string-append
612fddec 916 "https://hackage.haskell.org/package/haddock/haddock-"
7d5baa30
FB
917 version
918 ".tar.gz"))
919 (sha256
920 (base32
613845d0 921 "1z3h3v7w84dzsm47iavdppc2w899mr4c1agq9fzghgz902i0a655"))))
7d5baa30 922 (build-system haskell-build-system)
613845d0
RW
923 ;; FIXME: Tests fail with this error:
924 ;; driver-test/Main.hs:4:1: error:
925 ;; Failed to load interface for ‘ResponseFileSpec’
926 (arguments `(#:tests? #f))
e0492a8d 927 (inputs `(("ghc-haddock-api" ,ghc-haddock-api)))
613845d0
RW
928 (native-inputs
929 `(("ghc-hspec" ,ghc-hspec)
930 ("ghc-haddock-test" ,ghc-haddock-test)))
98b90194 931 (home-page "https://www.haskell.org/haddock/")
7d5baa30 932 (synopsis
e0492a8d 933 "Documentation-generation tool for Haskell libraries")
7d5baa30 934 (description
e0492a8d 935 "Haddock is a documentation-generation tool for Haskell libraries.")
3ac73271 936 (license license:bsd-3)))
7d5baa30 937
6729152d 938(define-public ghc-simple-reflect
0939da6e 939 (package
6729152d 940 (name "ghc-simple-reflect")
c2e393cc 941 (version "0.3.3")
0939da6e
FB
942 (source
943 (origin
944 (method url-fetch)
945 (uri (string-append
612fddec 946 "https://hackage.haskell.org/package/simple-reflect/simple-reflect-"
0939da6e
FB
947 version
948 ".tar.gz"))
949 (sha256
950 (base32
c2e393cc 951 "0ayvrx5cm8n6db21jiyjmk5h93pw7cz1707hih09hlhk9jh5x0h7"))))
0939da6e 952 (build-system haskell-build-system)
6729152d 953 (home-page
98b90194 954 "https://twanvl.nl/blog/haskell/simple-reflection-of-expressions")
0939da6e 955 (synopsis
6729152d 956 "Simple reflection of expressions containing variables")
0939da6e 957 (description
6729152d
PW
958 "This package allows simple reflection of expressions containing
959variables. Reflection here means that a Haskell expression is turned into a
960string. The primary aim of this package is teaching and understanding; there
961are no options for manipulating the reflected expressions beyond showing
962them.")
3ac73271 963 (license license:bsd-3)))
0939da6e 964
e0d17b84 965(define-public ghc-haskell-src
3d3613d5 966 (package
e0d17b84
PW
967 (name "ghc-haskell-src")
968 (version "1.0.2.0")
3d3613d5
FB
969 (source
970 (origin
971 (method url-fetch)
972 (uri (string-append
612fddec 973 "https://hackage.haskell.org/package/haskell-src/haskell-src-"
3d3613d5
FB
974 version
975 ".tar.gz"))
976 (sha256
977 (base32
e0d17b84 978 "19lilhpwnjb7cks9fq1ipnc8f7dwxy0ri3dgjkdxs3i355byw99a"))))
3d3613d5 979 (build-system haskell-build-system)
e0d17b84
PW
980 (inputs
981 `(("ghc-happy" ,ghc-happy)
982 ("ghc-syb" ,ghc-syb)))
983 (home-page
612fddec 984 "https://hackage.haskell.org/package/haskell-src")
3d3613d5 985 (synopsis
e0d17b84 986 "Support for manipulating Haskell source code")
3d3613d5 987 (description
e0d17b84
PW
988 "The 'haskell-src' package provides support for manipulating Haskell
989source code. The package provides a lexer, parser and pretty-printer, and a
990definition of a Haskell abstract syntax tree (AST). Common uses of this
991package are to parse or generate Haskell 98 code.")
3ac73271 992 (license license:bsd-3)))
3d3613d5 993
e40b2543 994(define-public ghc-alex
a39f3936 995 (package
e40b2543 996 (name "ghc-alex")
8301d739 997 (version "3.2.3")
a39f3936
FB
998 (source
999 (origin
1000 (method url-fetch)
1001 (uri (string-append
612fddec 1002 "https://hackage.haskell.org/package/alex/alex-"
a39f3936
FB
1003 version
1004 ".tar.gz"))
1005 (sha256
1006 (base32
8301d739 1007 "0bi1cs9b8ir33h1fl6x2xw4ymygapqbr713ridpf7rmk2wa7jqqs"))))
a39f3936 1008 (build-system haskell-build-system)
e40b2543 1009 (inputs `(("ghc-quickcheck" ,ghc-quickcheck)))
98b90194 1010 (home-page "https://www.haskell.org/alex/")
e40b2543
PW
1011 (synopsis
1012 "Tool for generating lexical analysers in Haskell")
a39f3936 1013 (description
e40b2543
PW
1014 "Alex is a tool for generating lexical analysers in Haskell. It takes a
1015description of tokens based on regular expressions and generates a Haskell
1016module containing code for scanning text efficiently. It is similar to the
1017tool lex or flex for C/C++.")
3ac73271 1018 (license license:bsd-3)))
a39f3936 1019
1f477b59 1020(define-public ghc-cgi
e916e211 1021 (package
1f477b59 1022 (name "ghc-cgi")
22b439db 1023 (version "3001.3.0.2")
e916e211
FB
1024 (source
1025 (origin
1026 (method url-fetch)
1027 (uri (string-append
612fddec 1028 "https://hackage.haskell.org/package/cgi/cgi-"
e916e211
FB
1029 version
1030 ".tar.gz"))
1031 (sha256
1032 (base32
22b439db 1033 "1hbpplss1m4rdpm4ibip6fpimlhssqa14fl338kl2jbc463i64cj"))))
e916e211 1034 (build-system haskell-build-system)
22b439db
RW
1035 (arguments
1036 `(#:configure-flags (list "--allow-newer=QuickCheck")))
1f477b59
PW
1037 (inputs
1038 `(("ghc-parsec" ,ghc-parsec)
1f477b59
PW
1039 ("ghc-exceptions" ,ghc-exceptions)
1040 ("ghc-multipart" ,ghc-multipart)
1041 ("ghc-network-uri" ,ghc-network-uri)
f54f0475 1042 ("ghc-network" ,ghc-network)))
22b439db
RW
1043 (native-inputs
1044 `(("ghc-doctest" ,ghc-doctest)
1045 ("ghc-quickcheck" ,ghc-quickcheck)))
1f477b59
PW
1046 (home-page
1047 "https://github.com/cheecheeo/haskell-cgi")
1048 (synopsis "Library for writing CGI programs")
e916e211 1049 (description
1f477b59 1050 "This is a Haskell library for writing CGI programs.")
3ac73271 1051 (license license:bsd-3)))
e916e211 1052
0ba56364 1053(define-public ghc-cmdargs
deb36de0 1054 (package
0ba56364 1055 (name "ghc-cmdargs")
0ff8558a 1056 (version "0.10.20")
deb36de0
FB
1057 (source
1058 (origin
1059 (method url-fetch)
1060 (uri (string-append
612fddec 1061 "https://hackage.haskell.org/package/cmdargs/cmdargs-"
bfd2ebda 1062 version ".tar.gz"))
deb36de0
FB
1063 (sha256
1064 (base32
0ff8558a 1065 "0cbkmgrcnwgigg6z88y3c09gm7g6dwm7gzbgr53h8k1xik29s9hf"))))
deb36de0 1066 (build-system haskell-build-system)
0ba56364
PW
1067 (home-page
1068 "http://community.haskell.org/~ndm/cmdargs/")
1069 (synopsis "Command line argument processing")
deb36de0 1070 (description
0ba56364 1071 "This library provides an easy way to define command line parsers.")
3ac73271 1072 (license license:bsd-3)))
deb36de0 1073
839415ec
LC
1074(define-public ghc-concatenative
1075 (package
1076 (name "ghc-concatenative")
1077 (version "1.0.1")
1078 (source (origin
1079 (method url-fetch)
1080 (uri (string-append
612fddec 1081 "https://hackage.haskell.org/package/concatenative/concatenative-"
839415ec
LC
1082 version ".tar.gz"))
1083 (sha256
1084 (base32
1085 "05xwqvcdnk8bsyj698ab9jxpa1nk23pf3m7wi9mwmw0q8n99fngd"))))
1086 (build-system haskell-build-system)
1087 (home-page
1088 "https://patch-tag.com/r/salazar/concatenative/snapshot/current/content/pretty")
1089 (synopsis "Library for postfix control flow")
1090 (description
1091 "Concatenative gives Haskell Factor-style combinators and arrows for
1092postfix notation. For more information on stack based languages, see
98b90194 1093@uref{https://concatenative.org}.")
839415ec
LC
1094 (license license:bsd-3)))
1095
81da1a45 1096(define-public ghc-happy
775be802 1097 (package
81da1a45 1098 (name "ghc-happy")
a3aaf87a 1099 (version "1.19.9")
775be802
FB
1100 (source
1101 (origin
1102 (method url-fetch)
1103 (uri (string-append
612fddec 1104 "https://hackage.haskell.org/package/happy/happy-"
775be802
FB
1105 version
1106 ".tar.gz"))
1107 (sha256
1108 (base32
a3aaf87a 1109 "138xpxdb7x62lpmgmb6b3v3vgdqqvqn4273jaap3mjmc2gla709y"))))
775be802 1110 (build-system haskell-build-system)
81da1a45
PW
1111 (home-page "https://hackage.haskell.org/package/happy")
1112 (synopsis "Parser generator for Haskell")
1113 (description "Happy is a parser generator for Haskell. Given a grammar
1114specification in BNF, Happy generates Haskell code to parse the grammar.
1115Happy works in a similar way to the yacc tool for C.")
3ac73271 1116 (license license:bsd-3)))
775be802 1117
b9a64a36
RW
1118(define-public ghc-haskell-lexer
1119 (package
1120 (name "ghc-haskell-lexer")
1121 (version "1.0.1")
1122 (source
1123 (origin
1124 (method url-fetch)
1125 (uri (string-append
1126 "https://hackage.haskell.org/package/haskell-lexer/haskell-lexer-"
1127 version ".tar.gz"))
1128 (sha256
1129 (base32
1130 "0rj3r1pk88hh3sk3mj61whp8czz5kpxhbc78xlr04bxwqjrjmm6p"))))
1131 (build-system haskell-build-system)
1132 (home-page "http://hackage.haskell.org/package/haskell-lexer")
1133 (synopsis "Fully compliant Haskell 98 lexer")
1134 (description
1135 "This package provides a fully compliant Haskell 98 lexer.")
1136 (license license:bsd-3)))
1137
f30b7538
RW
1138(define-public ghc-pretty-show
1139 (package
1140 (name "ghc-pretty-show")
6b19c5a4 1141 (version "1.7")
f30b7538
RW
1142 (source
1143 (origin
1144 (method url-fetch)
1145 (uri (string-append "https://hackage.haskell.org/package/pretty-show/"
1146 "pretty-show-" version ".tar.gz"))
1147 (sha256
1148 (base32
6b19c5a4 1149 "0br7pkxqqqhby2j2v1g847lgqsrasx56g1jw3dhmjh4flzs6warq"))))
f30b7538
RW
1150 (build-system haskell-build-system)
1151 (inputs
1152 `(("ghc-haskell-lexer" ,ghc-haskell-lexer)
1153 ("ghc-happy" ,ghc-happy)))
1154 (home-page "http://wiki.github.com/yav/pretty-show")
1155 (synopsis "Tools for working with derived `Show` instances")
1156 (description
1157 "This package provides a library and an executable for working with
1158derived @code{Show} instances. By using the library, derived @code{Show}
1159instances can be parsed into a generic data structure. The @code{ppsh} tool
1160uses the library to produce human-readable versions of @code{Show} instances,
1161which can be quite handy for debugging Haskell programs. We can also render
1162complex generic values into an interactive Html page, for easier
1163examination.")
1164 (license license:expat)))
1165
e0ba59a9
RW
1166(define-public ghc-pretty-show-for-haskell-src-exts
1167 (package (inherit ghc-pretty-show)
1168 (name "ghc-pretty-show")
1169 (version "1.6.10")
1170 (source
1171 (origin
1172 (method url-fetch)
1173 (uri (string-append "https://hackage.haskell.org/package/pretty-show/"
1174 "pretty-show-" version ".tar.gz"))
1175 (sha256
1176 (base32
1177 "133s4l1gk46saf6ycm785rswycy8g3j0qqrv93b5wp8cp50kd0ww"))))))
1178
6ff19687 1179(define-public ghc-haskell-src-exts
c3b90c0e 1180 (package
6ff19687 1181 (name "ghc-haskell-src-exts")
f707b243 1182 (version "1.20.1")
c3b90c0e
FB
1183 (source
1184 (origin
1185 (method url-fetch)
1186 (uri (string-append
612fddec 1187 "https://hackage.haskell.org/package/haskell-src-exts/haskell-src-exts-"
c3b90c0e
FB
1188 version
1189 ".tar.gz"))
1190 (sha256
1191 (base32
f707b243 1192 "1jsjl9hja2dpcfq4mzlfpwyr6axwnwgacfb7aa070kz4lbygzaa8"))))
c3b90c0e 1193 (build-system haskell-build-system)
2d47cee2 1194 (inputs
6ff19687 1195 `(("cpphs" ,cpphs)
6ff19687 1196 ("ghc-happy" ,ghc-happy)
f707b243 1197 ("ghc-pretty-show" ,ghc-pretty-show-for-haskell-src-exts)))
172bb3b8
RW
1198 (native-inputs
1199 `(("ghc-smallcheck" ,ghc-smallcheck)
1200 ("ghc-tasty" ,ghc-tasty)
1201 ("ghc-tasty-smallcheck" ,ghc-tasty-smallcheck)
1202 ("ghc-tasty-golden" ,ghc-tasty-golden)))
6ff19687
PW
1203 (home-page "https://github.com/haskell-suite/haskell-src-exts")
1204 (synopsis "Library for manipulating Haskell source")
1205 (description "Haskell-Source with Extensions (HSE, haskell-src-exts) is an
1206extension of the standard @code{haskell-src} package, and handles most
1207registered syntactic extensions to Haskell. All extensions implemented in GHC
1208are supported. Apart from these standard extensions, it also handles regular
1209patterns as per the HaRP extension as well as HSX-style embedded XML syntax.")
3ac73271 1210 (license license:bsd-3)))
c3b90c0e 1211
3657bd1f
RW
1212(define-public ghc-haskell-src-exts-util
1213 (package
1214 (name "ghc-haskell-src-exts-util")
1215 (version "0.2.2")
1216 (source
1217 (origin
1218 (method url-fetch)
1219 (uri (string-append "https://hackage.haskell.org/package/"
1220 "haskell-src-exts-util/haskell-src-exts-util-"
1221 version ".tar.gz"))
1222 (sha256
1223 (base32
1224 "14rhwcrdz3kfb69c64qn8kybl7wnpajrjlfz5p95ca4bva4mwclg"))))
1225 (build-system haskell-build-system)
1226 (inputs
1227 `(("ghc-data-default" ,ghc-data-default)
1228 ("ghc-haskell-src-exts" ,ghc-haskell-src-exts)
1229 ("ghc-semigroups" ,ghc-semigroups)
1230 ("ghc-uniplate" ,ghc-uniplate)))
1231 (home-page "https://github.com/pepeiborra/haskell-src-exts-util")
1232 (synopsis "Helper functions for working with haskell-src-exts trees")
1233 (description
1234 "This package provides helper functions for working with
1235@code{haskell-src-exts} trees.")
1236 (license license:bsd-3)))
1237
b28f0ffa
RW
1238(define-public ghc-refact
1239 (package
1240 (name "ghc-refact")
1241 (version "0.3.0.2")
1242 (source
1243 (origin
1244 (method url-fetch)
1245 (uri (string-append "https://hackage.haskell.org/package/"
1246 "refact/refact-"
1247 version ".tar.gz"))
1248 (sha256
1249 (base32
1250 "0v0zxcx29b8jxs2kgy9csykqcp8kzhdvyylw2xfwmj4pfxr2kl0a"))))
1251 (build-system haskell-build-system)
1252 (home-page "http://hackage.haskell.org/package/refact")
1253 (synopsis "Specify refactorings to perform with apply-refact")
1254 (description
1255 "This library provides a datatype which can be interpreted by
add928d3 1256@code{apply-refact}. It exists as a separate library so that applications can
b28f0ffa
RW
1257specify refactorings without depending on GHC.")
1258 (license license:bsd-3)))
1259
6397aef0 1260(define-public hlint
df596b94 1261 (package
6397aef0 1262 (name "hlint")
5b367a1a 1263 (version "2.1.1")
df596b94
FB
1264 (source
1265 (origin
1266 (method url-fetch)
1267 (uri (string-append
612fddec 1268 "https://hackage.haskell.org/package/" name
6397aef0 1269 "/" name "-" version ".tar.gz"))
df596b94 1270 (sha256
6397aef0 1271 (base32
5b367a1a 1272 "0mmfavd158l5ig5wb1b1zbhbraj8hhqvbk4mg85n6c8ndpr4grd4"))))
df596b94 1273 (build-system haskell-build-system)
6397aef0
PW
1274 (inputs
1275 `(("cpphs" ,cpphs)
780185cc
RW
1276 ("ghc-unordered-containers" ,ghc-unordered-containers)
1277 ("ghc-yaml" ,ghc-yaml)
1278 ("ghc-vector" ,ghc-vector)
1279 ("ghc-text" ,ghc-text)
1280 ("ghc-data-default" ,ghc-data-default)
6397aef0
PW
1281 ("ghc-cmdargs" ,ghc-cmdargs)
1282 ("ghc-haskell-src-exts" ,ghc-haskell-src-exts)
780185cc 1283 ("ghc-haskell-src-exts-util" ,ghc-haskell-src-exts-util)
6397aef0
PW
1284 ("ghc-uniplate" ,ghc-uniplate)
1285 ("ghc-ansi-terminal" ,ghc-ansi-terminal)
1286 ("ghc-extra" ,ghc-extra)
780185cc
RW
1287 ("ghc-refact" ,ghc-refact)
1288 ("ghc-aeson" ,ghc-aeson)
6397aef0
PW
1289 ("hscolour" ,hscolour)))
1290 (home-page "http://community.haskell.org/~ndm/hlint/")
1291 (synopsis "Suggest improvements for Haskell source code")
1292 (description "HLint reads Haskell programs and suggests changes that
1293hopefully make them easier to read. HLint also makes it easy to disable
1294unwanted suggestions, and to add your own custom suggestions.")
3ac73271 1295 (license license:bsd-3)))
4af803a7 1296
85b2a2f5 1297(define-public ghc-resourcet
4af803a7 1298 (package
85b2a2f5 1299 (name "ghc-resourcet")
990cd5ef 1300 (version "1.2.1")
4af803a7
FB
1301 (source
1302 (origin
1303 (method url-fetch)
990cd5ef
RW
1304 (uri (string-append "https://hackage.haskell.org/package/resourcet/"
1305 "resourcet-" version ".tar.gz"))
4af803a7
FB
1306 (sha256
1307 (base32
990cd5ef 1308 "0rzjzh34s36ssign7akqjnwnjxf11c3511wk7ky0xxy0dqmc2rg7"))))
4af803a7 1309 (build-system haskell-build-system)
2d47cee2 1310 (inputs
85b2a2f5
PW
1311 `(("ghc-transformers-base" ,ghc-transformers-base)
1312 ("ghc-monad-control" ,ghc-monad-control)
1313 ("ghc-transformers-compat" ,ghc-transformers-compat)
85b2a2f5 1314 ("ghc-mmorph" ,ghc-mmorph)
990cd5ef
RW
1315 ("ghc-exceptions" ,ghc-exceptions)
1316 ("ghc-unliftio-core" ,ghc-unliftio-core)))
2d47cee2 1317 (native-inputs
85b2a2f5
PW
1318 `(("ghc-lifted-base" ,ghc-lifted-base)
1319 ("ghc-hspec" ,ghc-hspec)))
612fddec 1320 (home-page "https://github.com/snoyberg/conduit")
85b2a2f5
PW
1321 (synopsis "Deterministic allocation and freeing of scarce resources")
1322 (description "ResourceT is a monad transformer which creates a region of
1323code where you can safely allocate resources.")
3ac73271 1324 (license license:bsd-3)))
4af803a7 1325
74fa80ee 1326(define-public ghc-objectname
dc0ae39a 1327 (package
74fa80ee 1328 (name "ghc-objectname")
1d9d3ec2 1329 (version "1.1.0.1")
dc0ae39a
FB
1330 (source
1331 (origin
1332 (method url-fetch)
1333 (uri (string-append
612fddec 1334 "https://hackage.haskell.org/package/ObjectName/ObjectName-"
dc0ae39a
FB
1335 version
1336 ".tar.gz"))
1337 (sha256
1338 (base32
1d9d3ec2 1339 "046jm94rmm46cicd31pl54vdvfjvhd9ffbfycy2lxzc0fliyznvj"))))
dc0ae39a 1340 (build-system haskell-build-system)
74fa80ee
PW
1341 (home-page "https://hackage.haskell.org/package/ObjectName")
1342 (synopsis "Helper library for Haskell OpenGL")
1343 (description "This tiny package contains the class ObjectName, which
1344corresponds to the general notion of explicitly handled identifiers for API
1345objects, e.g. a texture object name in OpenGL or a buffer object name in
1346OpenAL.")
3ac73271 1347 (license license:bsd-3)))
dc0ae39a 1348
b784e8c5 1349(define-public ghc-sdl
7a1e8c74 1350 (package
b784e8c5 1351 (name "ghc-sdl")
30a8c0d8 1352 (version "0.6.7.0")
7a1e8c74
FB
1353 (source
1354 (origin
1355 (method url-fetch)
1356 (uri (string-append
612fddec 1357 "https://hackage.haskell.org/package/SDL/SDL-"
7a1e8c74
FB
1358 version
1359 ".tar.gz"))
1360 (sha256
1361 (base32
30a8c0d8 1362 "00y67v80a8l09i3k76z09lg25kw72ivl09nag8ckdlk4a0cfnzfq"))))
7a1e8c74
FB
1363 (build-system haskell-build-system)
1364 (inputs
b784e8c5
PW
1365 `(("sdl" ,sdl)))
1366 (home-page "https://hackage.haskell.org/package/SDL")
1367 (synopsis "LibSDL for Haskell")
1368 (description "Simple DirectMedia Layer (libSDL) is a cross-platform
1369multimedia library designed to provide low level access to audio, keyboard,
1370mouse, joystick, 3D hardware via OpenGL, and 2D video framebuffer. It is used
1371by MPEG playback software, emulators, and many popular games, including the
1372award winning Linux port of \"Civilization: Call To Power.\"")
3ac73271 1373 (license license:bsd-3)))
7a1e8c74 1374
224a0ddb 1375(define-public ghc-sdl-mixer
eaa3088e 1376 (package
224a0ddb 1377 (name "ghc-sdl-mixer")
214fae87 1378 (version "0.6.3.0")
eaa3088e
FB
1379 (source
1380 (origin
1381 (method url-fetch)
1382 (uri (string-append
612fddec 1383 "https://hackage.haskell.org/package/SDL-mixer/SDL-mixer-"
eaa3088e
FB
1384 version
1385 ".tar.gz"))
1386 (sha256
1387 (base32
214fae87 1388 "0k26hqgdh789ka3mv4dsk6rin6x6vwcs6hjmnsqq7j3mnrh1342r"))))
eaa3088e 1389 (build-system haskell-build-system)
224a0ddb
PW
1390 (arguments
1391 `(#:configure-flags
1392 (let* ((sdl-mixer (assoc-ref %build-inputs "sdl-mixer"))
1393 (sdl-mixer-include (string-append sdl-mixer "/include/SDL")))
fd59d2ee 1394 (list (string-append "--extra-include-dirs=" sdl-mixer-include)))))
eaa3088e 1395 (inputs
2d47cee2
RW
1396 `(("ghc-sdl" ,ghc-sdl)
1397 ("sdl-mixer" ,sdl-mixer)))
612fddec 1398 (home-page "https://hackage.haskell.org/package/SDL-mixer")
224a0ddb
PW
1399 (synopsis "Haskell bindings to libSDL_mixer")
1400 (description "SDL_mixer is a sample multi-channel audio mixer library. It
1401supports any number of simultaneously playing channels of 16 bit stereo audio,
1402plus a single channel of music, mixed by the popular MikMod MOD, Timidity
1403MIDI, Ogg Vorbis, and SMPEG MP3 libraries.")
3ac73271 1404 (license license:bsd-3)))
eaa3088e 1405
c783cac0 1406(define-public ghc-sdl-image
61c02099 1407 (package
c783cac0 1408 (name "ghc-sdl-image")
cfd1a7d0 1409 (version "0.6.2.0")
61c02099
FB
1410 (source
1411 (origin
1412 (method url-fetch)
1413 (uri (string-append
612fddec 1414 "https://hackage.haskell.org/package/SDL-image/SDL-image-"
61c02099
FB
1415 version
1416 ".tar.gz"))
1417 (sha256
1418 (base32
cfd1a7d0 1419 "1gxwrvswgwjw6g7ym52gik22l9l3ljy592phv97jdmcf3gi6qcg1"))))
61c02099 1420 (build-system haskell-build-system)
61c02099 1421 (arguments
c783cac0
PW
1422 `(#:configure-flags
1423 (let* ((sdl-image (assoc-ref %build-inputs "sdl-image"))
1424 (sdl-image-include (string-append sdl-image "/include/SDL")))
fd59d2ee 1425 (list (string-append "--extra-include-dirs=" sdl-image-include)))))
c783cac0 1426 (inputs
2d47cee2
RW
1427 `(("ghc-sdl" ,ghc-sdl)
1428 ("sdl-image" ,sdl-image)))
612fddec 1429 (home-page "https://hackage.haskell.org/package/SDL-image")
c783cac0
PW
1430 (synopsis "Haskell bindings to libSDL_image")
1431 (description "SDL_image is an image file loading library. It loads images
1432as SDL surfaces, and supports the following formats: BMP, GIF, JPEG, LBM, PCX,
1433PNG, PNM, TGA, TIFF, XCF, XPM, XV.")
3ac73271 1434 (license license:bsd-3)))
61c02099 1435
22db3ce7 1436(define-public ghc-half
c5043f4a 1437 (package
22db3ce7 1438 (name "ghc-half")
f1c2aed7 1439 (version "0.2.2.3")
c5043f4a
FB
1440 (source
1441 (origin
1442 (method url-fetch)
1443 (uri (string-append
612fddec 1444 "https://hackage.haskell.org/package/half/half-"
f1c2aed7 1445 version ".tar.gz"))
c5043f4a
FB
1446 (sha256
1447 (base32
f1c2aed7 1448 "0p4sb7vv9cljv48wlx65wgdnkryrk5d6yfh7g4yrm20w1p449hl5"))))
c5043f4a 1449 (build-system haskell-build-system)
612fddec 1450 (home-page "https://github.com/ekmett/half")
22db3ce7
PW
1451 (synopsis "Half-precision floating-point computations")
1452 (description "This library provides a half-precision floating-point
1453computation library for Haskell.")
3ac73271 1454 (license license:bsd-3)))
c5043f4a 1455
0ffea6f2
RW
1456(define-public ghc-fixed
1457 (package
1458 (name "ghc-fixed")
1459 (version "0.2.1.1")
1460 (source
1461 (origin
1462 (method url-fetch)
1463 (uri (string-append "https://hackage.haskell.org/package/fixed/fixed-"
1464 version ".tar.gz"))
1465 (sha256
1466 (base32
1467 "1qhmwx8iqshns0crmr9d2f8hm65jxbcp3dvv0c39v34ra7if3a94"))))
1468 (build-system haskell-build-system)
1469 (home-page "https://github.com/ekmett/fixed")
1470 (synopsis "Signed 15.16 precision fixed point arithmetic")
1471 (description
1472 "This package provides functions for signed 15.16 precision fixed point
1473arithmetic.")
1474 (license license:bsd-3)))
1475
c480b85e 1476(define-public ghc-openglraw
01a687da 1477 (package
c480b85e 1478 (name "ghc-openglraw")
e80e97b5 1479 (version "3.2.7.0")
01a687da
FB
1480 (source
1481 (origin
1482 (method url-fetch)
1483 (uri (string-append
612fddec 1484 "https://hackage.haskell.org/package/OpenGLRaw/OpenGLRaw-"
01a687da
FB
1485 version
1486 ".tar.gz"))
1487 (sha256
1488 (base32
e80e97b5 1489 "024aln102d1mmsdalq9jd5mmwjbnrb8gxcak73lybrc7q87kswk2"))))
01a687da
FB
1490 (build-system haskell-build-system)
1491 (inputs
c480b85e 1492 `(("ghc-half" ,ghc-half)
e80e97b5 1493 ("ghc-fixed" ,ghc-fixed)
c480b85e
PW
1494 ("glu" ,glu)
1495 ("ghc-text" ,ghc-text)))
98b90194 1496 (home-page "https://www.haskell.org/haskellwiki/Opengl")
c480b85e
PW
1497 (synopsis "Raw Haskell bindings for the OpenGL graphics system")
1498 (description "OpenGLRaw is a raw Haskell binding for the OpenGL 4.5
1499graphics system and lots of OpenGL extensions. It is basically a 1:1 mapping
1500of OpenGL's C API, intended as a basis for a nicer interface. OpenGLRaw
1501offers access to all necessary functions, tokens and types plus a general
1502facility for loading extension entries. The module hierarchy closely mirrors
1503the naming structure of the OpenGL extensions, making it easy to find the
1504right module to import. All API entries are loaded dynamically, so no special
1505C header files are needed for building this package. If an API entry is not
1506found at runtime, a userError is thrown.")
3ac73271 1507 (license license:bsd-3)))
01a687da 1508
bce03084 1509(define-public ghc-glut
d692228e 1510 (package
bce03084 1511 (name "ghc-glut")
8951861c 1512 (version "2.7.0.10")
d692228e
FB
1513 (source
1514 (origin
1515 (method url-fetch)
1516 (uri (string-append
612fddec 1517 "https://hackage.haskell.org/package/GLUT/GLUT-"
d692228e
FB
1518 version
1519 ".tar.gz"))
1520 (sha256
1521 (base32
8951861c 1522 "0sbm943bg896nf3qjmlnsg3zzrr3pl330rzh9g0hwv47nzwwn4ab"))))
d692228e 1523 (build-system haskell-build-system)
2d47cee2 1524 (inputs
bce03084 1525 `(("ghc-statevar" ,ghc-statevar)
2d47cee2 1526 ("ghc-opengl" ,ghc-opengl)
dd169b73 1527 ("ghc-openglraw" ,ghc-openglraw)
bce03084 1528 ("freeglut" ,freeglut)))
98b90194 1529 (home-page "https://www.haskell.org/haskellwiki/Opengl")
bce03084
PW
1530 (synopsis "Haskell bindings for the OpenGL Utility Toolkit")
1531 (description "This library provides Haskell bindings for the OpenGL
1532Utility Toolkit, a window system-independent toolkit for writing OpenGL
1533programs.")
3ac73271 1534 (license license:bsd-3)))
d692228e 1535
894562e3 1536(define-public ghc-gluraw
fa468e87 1537 (package
894562e3 1538 (name "ghc-gluraw")
a36c03b2 1539 (version "2.0.0.2")
fa468e87
FB
1540 (source
1541 (origin
1542 (method url-fetch)
1543 (uri (string-append
612fddec 1544 "https://hackage.haskell.org/package/GLURaw/GLURaw-"
fa468e87
FB
1545 version
1546 ".tar.gz"))
1547 (sha256
894562e3 1548 (base32
a36c03b2 1549 "1phmvxr0kkxq89ykmr8rj77inj8dvcxd6h72z1ncdgdazfz3sjw8"))))
fa468e87 1550 (build-system haskell-build-system)
2d47cee2 1551 (inputs
894562e3 1552 `(("ghc-openglraw" ,ghc-openglraw)))
98b90194 1553 (home-page "https://www.haskell.org/haskellwiki/Opengl")
894562e3
PW
1554 (synopsis "Raw Haskell bindings GLU")
1555 (description "GLURaw is a raw Haskell binding for the GLU 1.3 OpenGL
1556utility library. It is basically a 1:1 mapping of GLU's C API, intended as a
1557basis for a nicer interface.")
3ac73271 1558 (license license:bsd-3)))
fa468e87 1559
fe28ba70 1560(define-public ghc-opengl
f50fc138 1561 (package
fe28ba70 1562 (name "ghc-opengl")
aad2e837 1563 (version "3.0.1.0")
f50fc138
FB
1564 (source
1565 (origin
1566 (method url-fetch)
1567 (uri (string-append
612fddec 1568 "https://hackage.haskell.org/package/OpenGL/OpenGL-"
f50fc138
FB
1569 version
1570 ".tar.gz"))
1571 (sha256
1572 (base32
aad2e837 1573 "1nm2mzrn1h2nnfs9vl5p088hqpll7rdvcsyqsn8q641im9jhqp7l"))))
f50fc138 1574 (build-system haskell-build-system)
2d47cee2 1575 (inputs
fe28ba70
PW
1576 `(("ghc-text" ,ghc-text)
1577 ("ghc-objectname" ,ghc-objectname)
1578 ("ghc-gluraw" ,ghc-gluraw)
1579 ("ghc-statevar" ,ghc-statevar)
1580 ("ghc-openglraw" ,ghc-openglraw)))
98b90194 1581 (home-page "https://www.haskell.org/haskellwiki/Opengl")
fe28ba70
PW
1582 (synopsis "Haskell bindings for the OpenGL graphics system")
1583 (description "This package provides Haskell bindings for the OpenGL
1584graphics system (GL, version 4.5) and its accompanying utility library (GLU,
1585version 1.3).")
3ac73271 1586 (license license:bsd-3)))
f50fc138 1587
f550db48 1588(define-public ghc-streaming-commons
abfed253 1589 (package
f550db48 1590 (name "ghc-streaming-commons")
c437b800 1591 (version "0.2.1.0")
abfed253
FB
1592 (source
1593 (origin
1594 (method url-fetch)
c437b800
RW
1595 (uri (string-append "https://hackage.haskell.org/package/"
1596 "streaming-commons/streaming-commons-"
1597 version ".tar.gz"))
abfed253
FB
1598 (sha256
1599 (base32
c437b800 1600 "13fn6qmpiggwpn8lczyydgp77cyzfypwds7wxskrwir4i5cgxlfq"))))
abfed253
FB
1601 (build-system haskell-build-system)
1602 (inputs
c437b800
RW
1603 `(("ghc-async" ,ghc-async)
1604 ("ghc-blaze-builder" ,ghc-blaze-builder)
2d47cee2
RW
1605 ("ghc-network" ,ghc-network)
1606 ("ghc-random" ,ghc-random)
f550db48
PW
1607 ("ghc-stm" ,ghc-stm)
1608 ("ghc-text" ,ghc-text)
f550db48 1609 ("ghc-zlib" ,ghc-zlib)))
2d47cee2
RW
1610 (native-inputs
1611 `(("ghc-quickcheck" ,ghc-quickcheck)
1612 ("ghc-hspec" ,ghc-hspec)
1613 ("hspec-discover" ,hspec-discover)))
f550db48
PW
1614 (home-page "https://hackage.haskell.org/package/streaming-commons")
1615 (synopsis "Conduit and pipes needed by some streaming data libraries")
b90f72dc
RW
1616 (description "This package provides low-dependency functionality commonly
1617needed by various Haskell streaming data libraries, such as @code{conduit} and
f550db48 1618@code{pipe}s.")
b90f72dc 1619 (license license:expat)))
abfed253 1620
78249cc0 1621(define-public cpphs
9ce031c5 1622 (package
78249cc0 1623 (name "cpphs")
c12562e1 1624 (version "1.20.8")
9ce031c5
FB
1625 (source
1626 (origin
1627 (method url-fetch)
1628 (uri (string-append
612fddec 1629 "https://hackage.haskell.org/package/" name "/"
78249cc0
PW
1630 name "-" version ".tar.gz"))
1631 (sha256
1632 (base32
c12562e1 1633 "1bh524asqhk9v1s0wvipl0hgn7l63iy3js867yv0z3h5v2kn8vg5"))))
78249cc0 1634 (build-system haskell-build-system)
2d47cee2 1635 (inputs
78249cc0
PW
1636 `(("ghc-polyparse" ,ghc-polyparse)
1637 ("ghc-old-locale" ,ghc-old-locale)
1638 ("ghc-old-time" ,ghc-old-time)))
1639 (home-page "http://projects.haskell.org/cpphs/")
1640 (synopsis "Liberalised re-implementation of cpp, the C pre-processor")
1641 (description "Cpphs is a re-implementation of the C pre-processor that is
1642both more compatible with Haskell, and itself written in Haskell so that it
1643can be distributed with compilers. This version of the C pre-processor is
1644pretty-much feature-complete and compatible with traditional (K&R)
1645pre-processors. Additional features include: a plain-text mode; an option to
1646unlit literate code files; and an option to turn off macro-expansion.")
3ac73271 1647 (license (list license:lgpl2.1+ license:gpl3+))))
78249cc0 1648
865ac573
PW
1649(define-public ghc-reflection
1650 (package
1651 (name "ghc-reflection")
fd4f26ee 1652 (version "2.1.2")
865ac573
PW
1653 (source
1654 (origin
1655 (method url-fetch)
1656 (uri (string-append
612fddec 1657 "https://hackage.haskell.org/package/reflection/reflection-"
9ce031c5
FB
1658 version
1659 ".tar.gz"))
1660 (sha256
1661 (base32
fd4f26ee 1662 "0f9w0akbm6p8h7kzgcd2f6nnpw1wy84pqn45vfz1ch5j0hn8h2d9"))))
9ce031c5 1663 (build-system haskell-build-system)
865ac573 1664 (inputs `(("ghc-tagged" ,ghc-tagged)))
612fddec 1665 (home-page "https://github.com/ekmett/reflection")
865ac573
PW
1666 (synopsis "Reify arbitrary terms into types that can be reflected back
1667into terms")
1668 (description "This package addresses the 'configuration problem' which is
1669propogating configurations that are available at run-time, allowing multiple
1670configurations to coexist without resorting to mutable global variables or
1671@code{System.IO.Unsafe.unsafePerformIO}.")
3ac73271 1672 (license license:bsd-3)))
9ce031c5 1673
6a0add9c 1674(define-public ghc-old-locale
a231ef7e 1675 (package
6a0add9c
PW
1676 (name "ghc-old-locale")
1677 (version "1.0.0.7")
a231ef7e
FB
1678 (source
1679 (origin
1680 (method url-fetch)
1681 (uri (string-append
612fddec 1682 "https://hackage.haskell.org/package/old-locale/old-locale-"
a231ef7e
FB
1683 version
1684 ".tar.gz"))
1685 (sha256
6a0add9c 1686 (base32 "0l3viphiszvz5wqzg7a45zp40grwlab941q5ay29iyw8p3v8pbyv"))))
a231ef7e 1687 (build-system haskell-build-system)
afff0b6d 1688 (arguments
12eb67dc
TS
1689 `(#:cabal-revision
1690 ("2" "04b9vn007hlvsrx4ksd3r8r3kbyaj2kvwxchdrmd4370qzi8p6gs")))
612fddec 1691 (home-page "https://hackage.haskell.org/package/old-locale")
6a0add9c
PW
1692 (synopsis "Adapt to locale conventions")
1693 (description
1694 "This package provides the ability to adapt to locale conventions such as
1695date and time formats.")
3ac73271 1696 (license license:bsd-3)))
6a0add9c 1697
7ae4c102
PW
1698(define-public ghc-old-time
1699 (package
1700 (name "ghc-old-time")
1701 (version "1.1.0.3")
1702 (source
1703 (origin
1704 (method url-fetch)
1705 (uri (string-append
612fddec 1706 "https://hackage.haskell.org/package/old-time/old-time-"
7ae4c102
PW
1707 version
1708 ".tar.gz"))
1709 (sha256
1710 (base32
1711 "1h9b26s3kfh2k0ih4383w90ibji6n0iwamxp6rfp2lbq1y5ibjqw"))))
1712 (build-system haskell-build-system)
037181ed 1713 (arguments
e3777511
TS
1714 `(#:cabal-revision
1715 ("2" "1j6ln1dkvhdvnwl33bp0xf9lhc4sybqk0aw42p8cq81xwwzbn7y9")))
2d47cee2 1716 (inputs
7ae4c102 1717 `(("ghc-old-locale" ,ghc-old-locale)))
612fddec 1718 (home-page "https://hackage.haskell.org/package/old-time")
7ae4c102
PW
1719 (synopsis "Time compatibility library for Haskell")
1720 (description "Old-time is a package for backwards compatibility with the
1721old @code{time} library. For new projects, the newer
612fddec 1722@uref{https://hackage.haskell.org/package/time, time library} is recommended.")
3ac73271 1723 (license license:bsd-3)))
7ae4c102 1724
684f29ab
SB
1725(define-public ghc-data-default-instances-old-locale
1726 (package
1727 (name "ghc-data-default-instances-old-locale")
1728 (version "0.0.1")
1729 (source
1730 (origin
1731 (method url-fetch)
1732 (uri (string-append
612fddec 1733 "https://hackage.haskell.org/package/"
684f29ab
SB
1734 "data-default-instances-old-locale/"
1735 "data-default-instances-old-locale-" version ".tar.gz"))
1736 (sha256
1737 (base32 "00h81i5phib741yj517p8mbnc48myvfj8axzsw44k34m48lv1lv0"))))
1738 (build-system haskell-build-system)
2d47cee2 1739 (inputs
6a0add9c
PW
1740 `(("ghc-data-default-class" ,ghc-data-default-class)
1741 ("ghc-old-locale" ,ghc-old-locale)))
684f29ab 1742 (home-page
612fddec 1743 "https://hackage.haskell.org/package/data-default-instances-old-locale")
684f29ab
SB
1744 (synopsis "Default instances for types in old-locale")
1745 (description "Provides Default instances for types from the old-locale
1746 package.")
3ac73271 1747 (license license:bsd-3)))
684f29ab 1748
eb6ae860
SB
1749(define-public ghc-dlist
1750 (package
1751 (name "ghc-dlist")
40a6d7a2 1752 (version "0.8.0.4")
eb6ae860
SB
1753 (source
1754 (origin
1755 (method url-fetch)
1756 (uri (string-append
612fddec 1757 "https://hackage.haskell.org/package/dlist/dlist-"
eb6ae860
SB
1758 version
1759 ".tar.gz"))
1760 (sha256
40a6d7a2 1761 (base32 "0yirrh0s6acjy9hhvf5fqg2d6q5y6gm9xs04v6w1imndh1xqdwdc"))))
eb6ae860 1762 (build-system haskell-build-system)
409ec7c0
PW
1763 (inputs
1764 `(("ghc-quickcheck" ,ghc-quickcheck)))
eb6ae860
SB
1765 (home-page "https://github.com/spl/dlist")
1766 (synopsis "Difference lists")
1767 (description
1768 "Difference lists are a list-like type supporting O(1) append. This is
1769particularly useful for efficient logging and pretty printing (e.g. with the
1770Writer monad), where list append quickly becomes too expensive.")
3ac73271 1771 (license license:bsd-3)))
eb6ae860 1772
05b964ae
SB
1773(define-public ghc-extensible-exceptions
1774 (package
1775 (name "ghc-extensible-exceptions")
1776 (version "0.1.1.4")
1777 (source
1778 (origin
1779 (method url-fetch)
612fddec 1780 (uri (string-append "https://hackage.haskell.org/package/"
05b964ae
SB
1781 "extensible-exceptions/extensible-exceptions-"
1782 version ".tar.gz"))
1783 (sha256
1784 (base32 "1273nqws9ij1rp1bsq5jc7k2jxpqa0svawdbim05lf302y0firbc"))))
1785 (build-system haskell-build-system)
612fddec 1786 (home-page "https://hackage.haskell.org/package/extensible-exceptions")
05b964ae
SB
1787 (synopsis "Extensible exceptions for Haskell")
1788 (description
1789 "This package provides extensible exceptions for both new and old
1790versions of GHC (i.e., < 6.10).")
3ac73271 1791 (license license:bsd-3)))
05b964ae 1792
df1db767
SB
1793(define-public cabal-install
1794 (package
1795 (name "cabal-install")
35a9b5c7 1796 (version "1.22.6.0")
df1db767
SB
1797 (source
1798 (origin
1799 (method url-fetch)
1800 (uri (string-append
612fddec 1801 "https://hackage.haskell.org/package/cabal-install/cabal-install-"
df1db767
SB
1802 version
1803 ".tar.gz"))
1804 (sha256
35a9b5c7 1805 (base32 "1d5h7h2wjwc2s3dvsvzjgmmfrfl2312ym2h6kyjgm9wnaqw9w8wx"))))
df1db767
SB
1806 (arguments `(#:tests? #f)) ; FIXME: testing libraries are missing.
1807 (build-system haskell-build-system)
2d47cee2 1808 (inputs
df1db767 1809 `(("ghc-http" ,ghc-http)
df1db767
SB
1810 ("ghc-network-uri" ,ghc-network-uri)
1811 ("ghc-network" ,ghc-network)
1812 ("ghc-random" ,ghc-random)
1813 ("ghc-stm" ,ghc-stm)
1814 ("ghc-zlib" ,ghc-zlib)))
98b90194 1815 (home-page "https://www.haskell.org/cabal/")
df1db767
SB
1816 (synopsis "Command-line interface for Cabal and Hackage")
1817 (description
1818 "The cabal command-line program simplifies the process of managing
1819Haskell software by automating the fetching, configuration, compilation and
1820installation of Haskell libraries and programs.")
3ac73271 1821 (license license:bsd-3)))
df1db767 1822
3168796a
RW
1823(define-public cabal-doctest
1824 (package
1825 (name "cabal-doctest")
1826 (version "1.0.6")
1827 (source
1828 (origin
1829 (method url-fetch)
1830 (uri (string-append "https://hackage.haskell.org/package/"
1831 "cabal-doctest/cabal-doctest-"
1832 version ".tar.gz"))
1833 (sha256
1834 (base32
1835 "0bgd4jdmzxq5y465r4sf4jv2ix73yvblnr4c9wyazazafddamjny"))))
1836 (build-system haskell-build-system)
988dee48
TS
1837 (arguments
1838 `(#:cabal-revision
1839 ("1" "1bk85avgc93yvcggwbk01fy8nvg6753wgmaanhkry0hz55h7mpld")))
3168796a
RW
1840 (home-page "https://github.com/phadej/cabal-doctest")
1841 (synopsis "Setup.hs helper for running doctests")
1842 (description
1843 "To properly work, the @code{doctest} package needs plenty of
1844configuration. This library provides the common bits for writing custom
1845@file{Setup.hs} files.")
1846 (license license:bsd-3)))
1847
fe0fb890
TGR
1848(define-public ghc-parsec-numbers
1849 (package
1850 (name "ghc-parsec-numbers")
1851 (version "0.1.0")
1852 (source
1853 (origin
1854 (method url-fetch)
1855 (uri (string-append "https://hackage.haskell.org/package/"
1856 "parsec-numbers/parsec-numbers-" version ".tar.gz"))
1857 (sha256
1858 (base32 "1gzy4v3r02kvdxvgg1nj83mmb6aph2v4ilf9c7y6nbvi2x49l0bp"))))
1859 (build-system haskell-build-system)
1860 (inputs
1861 `(("ghc-parsec" ,ghc-parsec)))
95bf0780 1862 (home-page "https://hackage.haskell.org/package/parsec-numbers")
fe0fb890
TGR
1863 (synopsis "Utilities for parsing numbers from strings")
1864 (description
1865 "This package provides the number parsers without the need to use a large
1866(and unportable) token parser.")
1867 (license license:bsd-3)))
1868
0939da6e
FB
1869(define-public ghc-paths
1870 (package
1871 (name "ghc-paths")
1872 (version "0.1.0.9")
1873 (outputs '("out" "doc"))
1874 (source
1875 (origin
1876 (method url-fetch)
1877 (uri (string-append
612fddec 1878 "https://hackage.haskell.org/package/ghc-paths/ghc-paths-"
0939da6e
FB
1879 version
1880 ".tar.gz"))
1881 (sha256
1882 (base32
1883 "0ibrr1dxa35xx20cpp8jzgfak1rdmy344dfwq4vlq013c6w8z9mg"))))
1884 (build-system haskell-build-system)
1885 (home-page "https://github.com/simonmar/ghc-paths")
1886 (synopsis
1887 "Knowledge of GHC's installation directories")
1888 (description
1889 "Knowledge of GHC's installation directories.")
3ac73271 1890 (license license:bsd-3)))
0939da6e 1891
7fc7186e
SB
1892(define-public ghc-utf8-string
1893 (package
1894 (name "ghc-utf8-string")
ac426aa5 1895 (version "1.0.1.1")
7fc7186e
SB
1896 (source
1897 (origin
1898 (method url-fetch)
1899 (uri (string-append
612fddec 1900 "https://hackage.haskell.org/package/utf8-string/utf8-string-"
7fc7186e
SB
1901 version
1902 ".tar.gz"))
1903 (sha256
ac426aa5 1904 (base32 "0h7imvxkahiy8pzr8cpsimifdfvv18lizrb33k6mnq70rcx9w2zv"))))
7fc7186e 1905 (build-system haskell-build-system)
4fe3ce82 1906 (arguments
c325dde2
TS
1907 `(#:cabal-revision
1908 ("3" "02vhj5gykkqa2dyn7s6gn8is1b5fdn9xcqqvlls268g7cpv6rk38")))
612fddec 1909 (home-page "https://github.com/glguy/utf8-string/")
7fc7186e
SB
1910 (synopsis "Support for reading and writing UTF8 Strings")
1911 (description
ac426aa5 1912 "A UTF8 layer for Strings. The utf8-string package provides operations
7fc7186e
SB
1913for encoding UTF8 strings to Word8 lists and back, and for reading and writing
1914UTF8 without truncation.")
3ac73271 1915 (license license:bsd-3)))
7fc7186e 1916
a45a15df
PW
1917(define-public ghc-setenv
1918 (package
1919 (name "ghc-setenv")
1920 (version "0.1.1.3")
1921 (source
1922 (origin
1923 (method url-fetch)
1924 (uri (string-append
612fddec 1925 "https://hackage.haskell.org/package/setenv/setenv-"
a45a15df
PW
1926 version
1927 ".tar.gz"))
1928 (sha256
1929 (base32
1930 "0cnbgrvb9byyahb37zlqrj05rj25v190crgcw8wmlgf0mwwxyn73"))))
1931 (build-system haskell-build-system)
612fddec 1932 (home-page "https://hackage.haskell.org/package/setenv")
a45a15df
PW
1933 (synopsis "Library for setting environment variables")
1934 (description "This package provides a Haskell library for setting
1935environment variables.")
3ac73271 1936 (license license:expat)))
a45a15df 1937
c7bdb413
MM
1938(define-public ghc-setlocale
1939 (package
1940 (name "ghc-setlocale")
42f2732e 1941 (version "1.0.0.8")
c7bdb413
MM
1942 (source (origin
1943 (method url-fetch)
1944 (uri (string-append
1945 "https://hackage.haskell.org/package/setlocale-"
1946 version "/setlocale-" version ".tar.gz"))
1947 (sha256
1948 (base32
42f2732e 1949 "0sdrsmkhw08483d73ysgm2926fdbhii61br03lqpqw0lfzj4ilbd"))))
c7bdb413
MM
1950 (build-system haskell-build-system)
1951 (home-page "https://hackage.haskell.org/package/setlocale")
1952 (synopsis "Haskell bindings to setlocale")
1953 (description "This package provides Haskell bindings to the
1954@code{setlocale} C function.")
1955 (license license:bsd-3)))
1956
720fb41c
SB
1957(define-public ghc-x11
1958 (package
1959 (name "ghc-x11")
48ca045c 1960 (version "1.8")
720fb41c
SB
1961 (source
1962 (origin
1963 (method url-fetch)
612fddec 1964 (uri (string-append "https://hackage.haskell.org/package/X11/"
720fb41c
SB
1965 "X11-" version ".tar.gz"))
1966 (sha256
48ca045c 1967 (base32 "13lxq36856fzp61y4api78vssykyh8fm2aplr0nsj18ymdm1c6sl"))))
720fb41c
SB
1968 (build-system haskell-build-system)
1969 (inputs
1970 `(("libx11" ,libx11)
1971 ("libxrandr" ,libxrandr)
1972 ("libxinerama" ,libxinerama)
2d47cee2
RW
1973 ("libxscrnsaver" ,libxscrnsaver)
1974 ("ghc-data-default" ,ghc-data-default)))
720fb41c
SB
1975 (home-page "https://github.com/haskell-pkg-janitors/X11")
1976 (synopsis "Bindings to the X11 graphics library")
1977 (description
1978 "This package provides Haskell bindings to the X11 graphics library. The
1979bindings are a direct translation of the C bindings.")
3ac73271 1980 (license license:bsd-3)))
720fb41c 1981
c34507d6
SB
1982(define-public ghc-x11-xft
1983 (package
1984 (name "ghc-x11-xft")
1985 (version "0.3.1")
1986 (source
1987 (origin
1988 (method url-fetch)
612fddec 1989 (uri (string-append "https://hackage.haskell.org/package/X11-xft/"
c34507d6
SB
1990 "X11-xft-" version ".tar.gz"))
1991 (sha256
1992 (base32 "1lgqb0s2qfwwgbvwxhjbi23rbwamzdi0l0slfr20c3jpcbp3zfjf"))))
c34507d6 1993 (inputs
2d47cee2
RW
1994 `(("ghc-x11" ,ghc-x11)
1995 ("ghc-utf8-string" ,ghc-utf8-string)
1996 ("libx11" ,libx11)
c34507d6 1997 ("libxft" ,libxft)
6a6db57f 1998 ("xorgproto" ,xorgproto)))
c34507d6
SB
1999 (native-inputs
2000 `(("pkg-config" ,pkg-config)))
2001 (build-system haskell-build-system)
612fddec 2002 (home-page "https://hackage.haskell.org/package/X11-xft")
c34507d6
SB
2003 (synopsis "Bindings to Xft")
2004 (description
2005 "Bindings to the Xft, X Free Type interface library, and some Xrender
2006parts.")
3ac73271 2007 (license license:lgpl2.1)))
c34507d6 2008
318f9d88
PW
2009(define-public ghc-stringbuilder
2010 (package
2011 (name "ghc-stringbuilder")
4112a2e7 2012 (version "0.5.1")
318f9d88
PW
2013 (source
2014 (origin
2015 (method url-fetch)
2016 (uri (string-append
612fddec 2017 "https://hackage.haskell.org/package/stringbuilder/stringbuilder-"
318f9d88
PW
2018 version
2019 ".tar.gz"))
2020 (sha256
2021 (base32
4112a2e7 2022 "1fh3csx1wcssn8xyvl4ip4aprh9l4qyz2kk8mgjvqvc0vb2bsy6q"))))
318f9d88
PW
2023 (build-system haskell-build-system)
2024 (arguments `(#:tests? #f)) ; FIXME: circular dependencies with tests
2025 ; enabled
612fddec 2026 (home-page "https://hackage.haskell.org/package/stringbuilder")
318f9d88
PW
2027 (synopsis "Writer monad for multi-line string literals")
2028 (description "This package provides a writer monad for multi-line string
2029literals.")
3ac73271 2030 (license license:expat)))
318f9d88 2031
3d3613d5
FB
2032(define-public ghc-zlib
2033 (package
2034 (name "ghc-zlib")
d3c7e708 2035 (version "0.6.2")
3d3613d5
FB
2036 (outputs '("out" "doc"))
2037 (source
2038 (origin
2039 (method url-fetch)
2040 (uri (string-append
612fddec 2041 "https://hackage.haskell.org/package/zlib/zlib-"
3d3613d5
FB
2042 version
2043 ".tar.gz"))
2044 (sha256
2045 (base32
d3c7e708 2046 "1vbzf0awb6zb456xf48za1kl22018646cfzq4frvxgb9ay97vk0d"))))
3d3613d5 2047 (build-system haskell-build-system)
e09ef4fc
TS
2048 (arguments
2049 `(#:phases
2050 (modify-phases %standard-phases
2051 (add-before 'configure 'strip-test-framework-constraints
2052 (lambda _
2053 (substitute* "zlib.cabal"
2054 (("tasty >= 0\\.8 && < 0\\.12") "tasty")
2055 (("tasty-hunit >= 0\\.8 && < 0\\.10") "tasty-hunit")
2056 (("tasty-quickcheck == 0\\.8\\.\\*") "tasty-quickcheck")))))))
3d3613d5 2057 (inputs `(("zlib" ,zlib)))
906a396b
AI
2058 (native-inputs
2059 `(("ghc-quickcheck" ,ghc-quickcheck)
2060 ("ghc-tasty" ,ghc-tasty)
2061 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
2062 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
612fddec 2063 (home-page "https://hackage.haskell.org/package/zlib")
3d3613d5
FB
2064 (synopsis
2065 "Compression and decompression in the gzip and zlib formats")
2066 (description
2067 "This package provides a pure interface for compressing and decompressing
2068streams of data represented as lazy 'ByteString's. It uses the zlib C library
2069so it has high performance. It supports the 'zlib', 'gzip' and 'raw'
2070compression formats. It provides a convenient high level API suitable for
2071most tasks and for the few cases where more control is needed it provides
2072access to the full zlib feature set.")
3ac73271 2073 (license license:bsd-3)))
3d3613d5 2074
a39f3936
FB
2075(define-public ghc-stm
2076 (package
2077 (name "ghc-stm")
567bf5b9 2078 (version "2.4.5.0")
a39f3936
FB
2079 (outputs '("out" "doc"))
2080 (source
2081 (origin
2082 (method url-fetch)
2083 (uri (string-append
612fddec 2084 "https://hackage.haskell.org/package/stm/stm-"
a39f3936
FB
2085 version
2086 ".tar.gz"))
2087 (sha256
2088 (base32
567bf5b9 2089 "19sr11a0hqikhvf561b38phz6k3zg9s157a0f5ffvghk7wcdpmri"))))
a39f3936 2090 (build-system haskell-build-system)
612fddec 2091 (home-page "https://hackage.haskell.org/package/stm")
a39f3936
FB
2092 (synopsis "Software Transactional Memory")
2093 (description
567bf5b9
RW
2094 "Software Transactional Memory, or STM, is an abstraction for concurrent
2095communication. The main benefits of STM are composability and modularity.
2096That is, using STM you can write concurrent abstractions that can be easily
2097composed with any other abstraction built using STM, without exposing the
2098details of how your abstraction ensures safety. This is typically not the
2099case with other forms of concurrent communication, such as locks or
2100@code{MVar}s.")
3ac73271 2101 (license license:bsd-3)))
a39f3936 2102
e916e211
FB
2103(define-public ghc-parallel
2104 (package
2105 (name "ghc-parallel")
62f97b12 2106 (version "3.2.2.0")
e916e211
FB
2107 (outputs '("out" "doc"))
2108 (source
2109 (origin
2110 (method url-fetch)
2111 (uri (string-append
612fddec 2112 "https://hackage.haskell.org/package/parallel/parallel-"
e916e211
FB
2113 version
2114 ".tar.gz"))
2115 (sha256
2116 (base32
62f97b12 2117 "1xkfi96w6yfpppd0nw1rnszdxmvifwzm699ilv6332ra3akm610p"))))
e916e211 2118 (build-system haskell-build-system)
612fddec 2119 (home-page "https://hackage.haskell.org/package/parallel")
e916e211
FB
2120 (synopsis "Parallel programming library")
2121 (description
2122 "This package provides a library for parallel programming.")
3ac73271 2123 (license license:bsd-3)))
e916e211 2124
6950a450
TS
2125(define-public ghc-safesemaphore
2126 (package
2127 (name "ghc-safesemaphore")
2128 (version "0.10.1")
2129 (source
2130 (origin
2131 (method url-fetch)
2132 (uri (string-append "https://hackage.haskell.org/package/"
2133 "SafeSemaphore/SafeSemaphore-" version ".tar.gz"))
2134 (sha256
2135 (base32
2136 "0rpg9j6fy70i0b9dkrip9d6wim0nac0snp7qzbhykjkqlcvvgr91"))))
2137 (build-system haskell-build-system)
2138 (inputs
2139 `(("ghc-stm" ,ghc-stm)))
2140 (native-inputs
2141 `(("ghc-hunit" ,ghc-hunit)))
2142 (home-page "https://github.com/ChrisKuklewicz/SafeSemaphore")
2143 (synopsis "Exception safe semaphores")
2144 (description "This library provides exception safe semaphores that can be
2145used in place of @code{QSem}, @code{QSemN}, and @code{SampleVar}, all of which
2146are not exception safe and can be broken by @code{killThread}.")
2147 (license license:bsd-3)))
2148
deb36de0
FB
2149(define-public ghc-text
2150 (package
2151 (name "ghc-text")
44f717ef 2152 (version "1.2.3.0")
deb36de0
FB
2153 (outputs '("out" "doc"))
2154 (source
2155 (origin
2156 (method url-fetch)
2157 (uri (string-append
612fddec 2158 "https://hackage.haskell.org/package/text/text-"
deb36de0
FB
2159 version
2160 ".tar.gz"))
2161 (sha256
2162 (base32
44f717ef 2163 "06iir7q99rnffzxi8gagn8w1k9m49368sbidgz634fv1gxib3q10"))))
deb36de0 2164 (build-system haskell-build-system)
5e3840e2
RW
2165 ;; The test dependencies depend on ghc-text: ghc-test-framework -> ghc-xml -> ghc-text
2166 (arguments `(#:tests? #f))
2167 (inputs
2168 `(("ghc-random" ,ghc-random)))
deb36de0 2169 (home-page "https://github.com/bos/text")
1eefe4a8 2170 (synopsis "Efficient packed Unicode text type library")
deb36de0
FB
2171 (description
2172 "An efficient packed, immutable Unicode text type (both strict and
2173lazy), with a powerful loop fusion optimization framework.
2174
2175The 'Text' type represents Unicode character strings, in a time and
1eefe4a8 2176space-efficient manner. This package provides text processing
deb36de0
FB
2177capabilities that are optimized for performance critical use, both
2178in terms of large data quantities and high speed.")
3ac73271 2179 (license license:bsd-3)))
deb36de0 2180
f941a52a
RW
2181(define-public ghc-text-binary
2182 (package
2183 (name "ghc-text-binary")
2184 (version "0.2.1.1")
2185 (source
2186 (origin
2187 (method url-fetch)
2188 (uri (string-append "https://hackage.haskell.org/package/"
2189 "text-binary/text-binary-"
2190 version ".tar.gz"))
2191 (sha256
2192 (base32
2193 "18gl10pwg3qwsk0za3c70j4n6a9129wwf1b7d3a461h816yv55xn"))))
2194 (build-system haskell-build-system)
2195 (inputs `(("ghc-text" ,ghc-text)))
2196 (home-page "https://github.com/kawu/text-binary")
2197 (synopsis "Binary instances for text types")
2198 (description
2199 "This package provides a compatibility layer providing @code{Binary}
2200instances for strict and lazy text types for versions older than 1.2.1 of the
2201text package.")
2202 (license license:bsd-2)))
2203
f99a57dc
AV
2204(define-public ghc-strict
2205 (package
2206 (name "ghc-strict")
2207 (version "0.3.2")
2208 (source
2209 (origin
2210 (method url-fetch)
2211 (uri (string-append "https://hackage.haskell.org/package/strict/strict-"
2212 version ".tar.gz"))
2213 (sha256
2214 (base32 "08cjajqz9h47fkq98mlf3rc8n5ghbmnmgn8pfsl3bdldjdkmmlrc"))))
2215 (build-system haskell-build-system)
2216 (home-page "https://hackage.haskell.org/package/strict")
2217 (synopsis "Strict data types and String IO")
2218 (description
2219 "This package provides strict versions of some standard Haskell data
2220types, such as pairs, @code{Maybe} and @code{Either}. It also contains strict
2221IO operations.")
2222 (license license:bsd-3)))
2223
775be802
FB
2224(define-public ghc-hashable
2225 (package
2226 (name "ghc-hashable")
c165ff9c 2227 (version "1.2.6.1")
775be802
FB
2228 (outputs '("out" "doc"))
2229 (source
2230 (origin
2231 (method url-fetch)
2232 (uri (string-append
612fddec 2233 "https://hackage.haskell.org/package/hashable/hashable-"
775be802
FB
2234 version
2235 ".tar.gz"))
2236 (sha256
2237 (base32
c165ff9c 2238 "0ymv2mcrrgbdc2w39rib171fwnhg7fgp0sy4h8amrh1vw64qgjll"))))
775be802 2239 (build-system haskell-build-system)
2d47cee2 2240 (inputs
c165ff9c
RW
2241 `(("ghc-text" ,ghc-text)
2242 ("ghc-random" ,ghc-random)))
2243 (native-inputs
2244 `(("ghc-test-framework" ,ghc-test-framework)
2245 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
2246 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)
2247 ("ghc-hunit" ,ghc-hunit)
2248 ("ghc-quickcheck" ,ghc-quickcheck)))
612fddec 2249 (home-page "https://github.com/tibbe/hashable")
c165ff9c 2250 (synopsis "Class for types that can be converted to a hash value")
775be802 2251 (description
c165ff9c 2252 "This package defines a class, @code{Hashable}, for types that can be
775be802
FB
2253converted to a hash value. This class exists for the benefit of hashing-based
2254data structures. The package provides instances for basic types and a way to
2255combine hash values.")
3ac73271 2256 (license license:bsd-3)))
775be802 2257
82674ed9
RW
2258(define-public ghc-hashable-time
2259 (package
2260 (name "ghc-hashable-time")
2261 (version "0.2.0.1")
2262 (source
2263 (origin
2264 (method url-fetch)
2265 (uri (string-append
2266 "https://hackage.haskell.org/package/hashable-time/hashable-time-"
2267 version
2268 ".tar.gz"))
2269 (sha256
2270 (base32
2271 "0k932nyd08l3xxbh2g3n76py2f4kd9yw4s5a065vjz0xp6wjnxdm"))))
2272 (build-system haskell-build-system)
2273 (inputs `(("ghc-hashable" ,ghc-hashable)))
2274 (home-page "http://hackage.haskell.org/package/hashable-time")
2275 (synopsis "Hashable instances for Data.Time")
2276 (description
2277 "This package provides @code{Hashable} instances for types in
2278@code{Data.Time}.")
2279 (license license:bsd-3)))
2280
ca48a345
AV
2281(define-public ghc-data-hash
2282 (package
2283 (name "ghc-data-hash")
2284 (version "0.2.0.1")
2285 (source
2286 (origin
2287 (method url-fetch)
2288 (uri (string-append "https://hackage.haskell.org/package/data-hash"
2289 "/data-hash-" version ".tar.gz"))
2290 (sha256
2291 (base32 "1ghbqvc48gf9p8wiy71hdpaj7by3b9cw6wgwi3qqz8iw054xs5wi"))))
2292 (build-system haskell-build-system)
2293 (inputs
2294 `(("ghc-quickcheck" ,ghc-quickcheck)
2295 ("ghc-test-framework" ,ghc-test-framework)
2296 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
2297 (home-page "https://hackage.haskell.org/package/data-hash")
2298 (synopsis "Combinators for building fast hashing functions")
2299 (description
2300 "This package provides combinators for building fast hashing functions.
2301It includes hashing functions for all basic Haskell98 types.")
2302 (license license:bsd-3)))
2303
a623fd7f
AV
2304(define-public ghc-murmur-hash
2305 (package
2306 (name "ghc-murmur-hash")
2307 (version "0.1.0.9")
2308 (source
2309 (origin
2310 (method url-fetch)
2311 (uri (string-append "https://hackage.haskell.org/package/murmur-hash"
2312 "/murmur-hash-" version ".tar.gz"))
2313 (sha256
2314 (base32 "1bb58kfnzvx3mpc0rc0dhqc1fk36nm8prd6gvf20gk6lxaadpfc9"))))
2315 (build-system haskell-build-system)
2316 (home-page "https://github.com/nominolo/murmur-hash")
2317 (synopsis "MurmurHash2 implementation for Haskell")
2318 (description
2319 "This package provides an implementation of MurmurHash2, a good, fast,
2320general-purpose, non-cryptographic hashing function. See
2321@url{https://sites.google.com/site/murmurhash/} for details. This
2322implementation is pure Haskell, so it might be a bit slower than a C FFI
2323binding.")
2324 (license license:bsd-3)))
2325
df596b94
FB
2326(define-public ghc-random
2327 (package
2328 (name "ghc-random")
2329 (version "1.1")
2330 (outputs '("out" "doc"))
2331 (source
2332 (origin
2333 (method url-fetch)
2334 (uri (string-append
612fddec 2335 "https://hackage.haskell.org/package/random/random-"
df596b94
FB
2336 version
2337 ".tar.gz"))
2338 (sha256
2339 (base32 "0nis3lbkp8vfx8pkr6v7b7kr5m334bzb0fk9vxqklnp2aw8a865p"))))
2340 (build-system haskell-build-system)
612fddec 2341 (home-page "https://hackage.haskell.org/package/random")
df596b94
FB
2342 (synopsis "Random number library")
2343 (description "This package provides a basic random number generation
2344library, including the ability to split random number generators.")
3ac73271 2345 (license license:bsd-3)))
4af803a7
FB
2346
2347(define-public ghc-primitive
2348 (package
2349 (name "ghc-primitive")
49e5432b 2350 (version "0.6.3.0")
4af803a7
FB
2351 (outputs '("out" "doc"))
2352 (source
2353 (origin
2354 (method url-fetch)
2355 (uri (string-append
612fddec 2356 "https://hackage.haskell.org/package/primitive/primitive-"
4af803a7
FB
2357 version
2358 ".tar.gz"))
2359 (sha256
2360 (base32
49e5432b 2361 "0mcmbnj08wd6zfwn7xk6zf5hy5zwbla5v78pw0dpymqg9s0gzpnd"))))
4af803a7
FB
2362 (build-system haskell-build-system)
2363 (home-page
2364 "https://github.com/haskell/primitive")
2365 (synopsis "Primitive memory-related operations")
2366 (description
2367 "This package provides various primitive memory-related operations.")
3ac73271 2368 (license license:bsd-3)))
4af803a7 2369
c272160a
FB
2370(define-public ghc-tf-random
2371 (package
2372 (name "ghc-tf-random")
2373 (version "0.5")
2374 (outputs '("out" "doc"))
2375 (source
2376 (origin
2377 (method url-fetch)
2378 (uri (string-append
612fddec 2379 "https://hackage.haskell.org/package/tf-random/tf-random-"
c272160a
FB
2380 version
2381 ".tar.gz"))
2382 (sha256
2383 (base32 "0445r2nns6009fmq0xbfpyv7jpzwv0snccjdg7hwj4xk4z0cwc1f"))))
2384 (build-system haskell-build-system)
2d47cee2 2385 (inputs
c272160a
FB
2386 `(("ghc-primitive" ,ghc-primitive)
2387 ("ghc-random" ,ghc-random)))
612fddec 2388 (home-page "https://hackage.haskell.org/package/tf-random")
c272160a
FB
2389 (synopsis "High-quality splittable pseudorandom number generator")
2390 (description "This package contains an implementation of a high-quality
2391splittable pseudorandom number generator. The generator is based on a
2392cryptographic hash function built on top of the ThreeFish block cipher. See
2393the paper \"Splittable Pseudorandom Number Generators Using Cryptographic
2394Hashing\" by Claessen, Pałka for details and the rationale of the design.")
3ac73271 2395 (license license:bsd-3)))
c272160a 2396
c27f3ace
PW
2397(define-public ghc-transformers-base
2398 (package
2399 (name "ghc-transformers-base")
2400 (version "0.4.4")
2401 (source
2402 (origin
2403 (method url-fetch)
2404 (uri (string-append
612fddec 2405 "https://hackage.haskell.org/package/transformers-base/transformers-base-"
c27f3ace
PW
2406 version
2407 ".tar.gz"))
2408 (sha256
2409 (base32
2410 "11r3slgpgpra6zi2kjg3g60gvv17b1fh6qxipcpk8n86qx7lk8va"))))
2411 (build-system haskell-build-system)
c27f3ace 2412 (inputs
2d47cee2
RW
2413 `(("ghc-stm" ,ghc-stm)
2414 ("ghc-transformers-compat" ,ghc-transformers-compat)))
c27f3ace 2415 (home-page
612fddec 2416 "https://hackage.haskell.org/package/transformers-compat")
c27f3ace
PW
2417 (synopsis
2418 "Backported transformer library")
2419 (description
2420 "Backported versions of types that were added to transformers in
2421transformers 0.3 and 0.4 for users who need strict transformers 0.2 or 0.3
2422compatibility to run on old versions of the platform.")
3ac73271 2423 (license license:bsd-3)))
c27f3ace 2424
379a5ad5
PW
2425(define-public ghc-transformers-compat
2426 (package
2427 (name "ghc-transformers-compat")
d7f14885 2428 (version "0.6.2")
379a5ad5
PW
2429 (source
2430 (origin
2431 (method url-fetch)
2432 (uri (string-append
612fddec 2433 "https://hackage.haskell.org/package/transformers-compat"
379a5ad5
PW
2434 "/transformers-compat-" version ".tar.gz"))
2435 (sha256
2436 (base32
d7f14885 2437 "1gp4a8kvniwgm8947ghb4iwv4b7wd6ry4kvv4nfnym4agf5j41nw"))))
379a5ad5 2438 (build-system haskell-build-system)
612fddec 2439 (home-page "https://github.com/ekmett/transformers-compat/")
379a5ad5
PW
2440 (synopsis "Small compatibility shim between transformers 0.3 and 0.4")
2441 (description "This package includes backported versions of types that were
2442added to transformers in transformers 0.3 and 0.4 for users who need strict
2443transformers 0.2 or 0.3 compatibility to run on old versions of the platform,
2444but also need those types.")
3ac73271 2445 (license license:bsd-3)))
379a5ad5 2446
5ef40cb2
PW
2447(define-public ghc-unix-time
2448 (package
2449 (name "ghc-unix-time")
5b4f6170 2450 (version "0.3.7")
5ef40cb2
PW
2451 (source
2452 (origin
2453 (method url-fetch)
2454 (uri (string-append
612fddec 2455 "https://hackage.haskell.org/package/unix-time/unix-time-"
5ef40cb2
PW
2456 version
2457 ".tar.gz"))
2458 (sha256
2459 (base32
5b4f6170 2460 "1qdlc9raih8s0m3x8x3n7q3ngh4faw2alv9l78sp6gnx648k0c8i"))))
5ef40cb2
PW
2461 (build-system haskell-build-system)
2462 (arguments
fd59d2ee
PW
2463 `(#:tests? #f)) ; FIXME: Test fails with "System.Time not found". This
2464 ; is weird, that should be provided by GHC 7.10.2.
2d47cee2 2465 (inputs
5ef40cb2
PW
2466 `(("ghc-old-time" ,ghc-old-time)
2467 ("ghc-old-locale" ,ghc-old-locale)))
612fddec 2468 (home-page "https://hackage.haskell.org/package/unix-time")
5ef40cb2
PW
2469 (synopsis "Unix time parser/formatter and utilities")
2470 (description "This library provides fast parsing and formatting utilities
2471for Unix time in Haskell.")
3ac73271 2472 (license license:bsd-3)))
5ef40cb2 2473
801cc88d
PW
2474(define-public ghc-unix-compat
2475 (package
2476 (name "ghc-unix-compat")
32a9a380 2477 (version "0.5.1")
801cc88d
PW
2478 (source
2479 (origin
2480 (method url-fetch)
2481 (uri (string-append
612fddec 2482 "https://hackage.haskell.org/package/unix-compat/unix-compat-"
801cc88d
PW
2483 version
2484 ".tar.gz"))
2485 (sha256
2486 (base32
32a9a380 2487 "0llwl7rp63fy2ychwdclz1afj45pbin5pfl01dvn6rwhvmwhr7d3"))))
801cc88d
PW
2488 (build-system haskell-build-system)
2489 (home-page
612fddec 2490 "https://github.com/jystic/unix-compat")
801cc88d
PW
2491 (synopsis "Portable POSIX-compatibility layer")
2492 (description
2493 "This package provides portable implementations of parts of the unix
2494package. This package re-exports the unix package when available. When it
2495isn't available, portable implementations are used.")
3ac73271 2496 (license license:bsd-3)))
801cc88d 2497
b6bfa2ca
LC
2498(define-public ghc-indents
2499 (package
2500 (name "ghc-indents")
2501 (version "0.3.3")
2502 (source (origin
2503 (method url-fetch)
2504 (uri (string-append
612fddec 2505 "https://hackage.haskell.org/package/indents/indents-"
b6bfa2ca
LC
2506 version ".tar.gz"))
2507 (sha256
2508 (base32
2509 "16lz21bp9j14xilnq8yym22p3saxvc9fsgfcf5awn2a6i6n527xn"))))
2510 (build-system haskell-build-system)
2511 (inputs
2512 `(("ghc-parsec" ,ghc-parsec)
f54f0475 2513 ("ghc-concatenative" ,ghc-concatenative)))
b6bfa2ca
LC
2514 (home-page "http://patch-tag.com/r/salazar/indents")
2515 (synopsis "Indentation sensitive parser-combinators for parsec")
2516 (description
2517 "This library provides functions for use in parsing indentation sensitive
2518contexts. It parses blocks of lines all indented to the same level as well as
2519lines continued at an indented level below.")
2520 (license license:bsd-3)))
2521
685502dc
PW
2522(define-public ghc-iproute
2523 (package
2524 (name "ghc-iproute")
1cc0942f 2525 (version "1.7.1")
685502dc
PW
2526 (source
2527 (origin
2528 (method url-fetch)
2529 (uri (string-append
612fddec 2530 "https://hackage.haskell.org/package/iproute/iproute-"
685502dc
PW
2531 version
2532 ".tar.gz"))
2533 (sha256
2534 (base32
1cc0942f 2535 "1viyxq3m1aifl05w0hxwrhhhcfpmvwz4ymil2gngi4nfm0yd1f2p"))))
685502dc
PW
2536 (build-system haskell-build-system)
2537 (arguments `(#:tests? #f)) ; FIXME: Tests cannot find System.ByteOrder,
2538 ; exported by ghc-byteorder. Doctest issue.
685502dc 2539 (inputs
2d47cee2
RW
2540 `(("ghc-appar" ,ghc-appar)
2541 ("ghc-byteorder" ,ghc-byteorder)
2542 ("ghc-network" ,ghc-network)
685502dc 2543 ("ghc-safe" ,ghc-safe)))
e427a0e4 2544 (home-page "https://www.mew.org/~kazu/proj/iproute/")
685502dc
PW
2545 (synopsis "IP routing table")
2546 (description "IP Routing Table is a tree of IP ranges to search one of
2547them on the longest match base. It is a kind of TRIE with one way branching
2548removed. Both IPv4 and IPv6 are supported.")
3ac73271 2549 (license license:bsd-3)))
685502dc 2550
a7101996
TGR
2551(define-public ghc-iwlib
2552 (package
2553 (name "ghc-iwlib")
2554 (version "0.1.0")
2555 (source
2556 (origin
2557 (method url-fetch)
2558 (uri (string-append "https://hackage.haskell.org/package/iwlib/iwlib-"
2559 version ".tar.gz"))
2560 (sha256
2561 (base32 "0khmfwql4vwj55idsxmhjhrbqzfir3g9wm5lmpvnf77mm95cfpdz"))))
2562 (build-system haskell-build-system)
2563 (inputs
2564 `(("wireless-tools" ,wireless-tools)))
2565 (home-page "https://github.com/jaor/iwlib")
2566 (synopsis "Haskell binding to the iw wireless networking library")
2567 (description
2568 "IWlib is a thin Haskell binding to the iw C library. It provides
2569information about the current wireless network connections, and adapters on
2570supported systems.")
2571 (license license:bsd-3)))
2572
9d5f0399
PW
2573(define-public ghc-regex-base
2574 (package
2575 (name "ghc-regex-base")
2576 (version "0.93.2")
2577 (source
2578 (origin
2579 (method url-fetch)
2580 (uri (string-append
612fddec 2581 "https://hackage.haskell.org/package/regex-base/regex-base-"
9d5f0399
PW
2582 version
2583 ".tar.gz"))
2584 (sha256
2585 (base32
2586 "0y1j4h2pg12c853nzmczs263di7xkkmlnsq5dlp5wgbgl49mgp10"))))
2587 (build-system haskell-build-system)
9d5f0399 2588 (home-page
3b3b60d0 2589 "https://sourceforge.net/projects/lazy-regex")
9d5f0399
PW
2590 (synopsis "Replaces/Enhances Text.Regex")
2591 (description "@code{Text.Regex.Base} provides the interface API for
2592regex-posix, regex-pcre, regex-parsec, regex-tdfa, regex-dfa.")
3ac73271 2593 (license license:bsd-3)))
9d5f0399 2594
e422279b
PW
2595(define-public ghc-regex-posix
2596 (package
2597 (name "ghc-regex-posix")
2598 (version "0.95.2")
2599 (source
2600 (origin
2601 (method url-fetch)
2602 (uri (string-append
612fddec 2603 "https://hackage.haskell.org/package/regex-posix/regex-posix-"
e422279b
PW
2604 version
2605 ".tar.gz"))
2606 (sha256
2607 (base32
2608 "0gkhzhj8nvfn1ija31c7xnl6p0gadwii9ihyp219ck2arlhrj0an"))))
2609 (build-system haskell-build-system)
2d47cee2 2610 (inputs
0eeaa169 2611 `(("ghc-regex-base" ,ghc-regex-base)))
3b3b60d0 2612 (home-page "https://sourceforge.net/projects/lazy-regex")
e422279b
PW
2613 (synopsis "POSIX regular expressions for Haskell")
2614 (description "This library provides the POSIX regex backend used by the
2615Haskell library @code{regex-base}.")
3ac73271 2616 (license license:bsd-3)))
e422279b 2617
25d51164
PW
2618(define-public ghc-regex-compat
2619 (package
2620 (name "ghc-regex-compat")
2621 (version "0.95.1")
2622 (source
2623 (origin
2624 (method url-fetch)
2625 (uri (string-append
612fddec 2626 "https://hackage.haskell.org/package/regex-compat/regex-compat-"
25d51164
PW
2627 version
2628 ".tar.gz"))
2629 (sha256
2630 (base32
2631 "0fwmima3f04p9y4h3c23493n1xj629ia2dxaisqm6rynljjv2z6m"))))
2632 (build-system haskell-build-system)
2633 (inputs
2634 `(("ghc-regex-base" ,ghc-regex-base)
2635 ("ghc-regex-posix" ,ghc-regex-posix)))
3b3b60d0 2636 (home-page "https://sourceforge.net/projects/lazy-regex")
25d51164
PW
2637 (synopsis "Replaces/Enhances Text.Regex")
2638 (description "This library provides one module layer over
2639@code{regex-posix} to replace @code{Text.Regex}.")
3ac73271 2640 (license license:bsd-3)))
25d51164 2641
34128d2b
PW
2642(define-public ghc-regex-tdfa-rc
2643 (package
2644 (name "ghc-regex-tdfa-rc")
2645 (version "1.1.8.3")
2646 (source
2647 (origin
2648 (method url-fetch)
2649 (uri (string-append
612fddec 2650 "https://hackage.haskell.org/package/regex-tdfa-rc/regex-tdfa-rc-"
34128d2b
PW
2651 version
2652 ".tar.gz"))
2653 (sha256
2654 (base32
2655 "1vi11i23gkkjg6193ak90g55akj69bhahy542frkwb68haky4pp3"))))
2656 (build-system haskell-build-system)
34128d2b 2657 (inputs
2d47cee2 2658 `(("ghc-regex-base" ,ghc-regex-base)
f54f0475 2659 ("ghc-parsec" ,ghc-parsec)))
34128d2b 2660 (home-page
612fddec 2661 "https://hackage.haskell.org/package/regex-tdfa")
34128d2b
PW
2662 (synopsis "Tagged DFA regex engine for Haskell")
2663 (description "A new all-Haskell \"tagged\" DFA regex engine, inspired by
2664@code{libtre} (fork by Roman Cheplyaka).")
3ac73271 2665 (license license:bsd-3)))
34128d2b 2666
e73ed2a1
DM
2667(define-public ghc-regex-tdfa-text
2668 (package
2669 (name "ghc-regex-tdfa-text")
2670 (version "1.0.0.3")
2671 (source
2672 (origin
2673 (method url-fetch)
2674 (uri (string-append
2675 "https://hackage.haskell.org/package/regex-tdfa-text/"
2676 "regex-tdfa-text-" version ".tar.gz"))
2677 (sha256
2678 (base32
2679 "0090g6lgbdm9lywpqm2d3724nnnh24nx3vnlqr96qc2w486pmmrq"))))
2680 (build-system haskell-build-system)
2681 (inputs
2682 `(("ghc-text" ,ghc-text)
2683 ("ghc-regex-base" ,ghc-regex-base)
2684 ("ghc-regex-tdfa" ,ghc-regex-tdfa)))
2685 (home-page
2686 "http://hackage.haskell.org/package/regex-tdfa-text")
2687 (synopsis "Text interface for regex-tdfa")
2688 (description
2689 "This provides an extra text interface for regex-tdfa.")
2690 (license license:bsd-3)))
2691
7e2c8cb5
RW
2692(define-public ghc-regex
2693 (package
2694 (name "ghc-regex")
2695 (version "1.0.1.3")
2696 (source
2697 (origin
2698 (method url-fetch)
2699 (uri (string-append "https://hackage.haskell.org/package/regex/"
2700 "regex-" version ".tar.gz"))
2701 (sha256
2702 (base32
2703 "1sjkpkgv4phy5b5v2lr89x4vx4dh44pj0sbvlsp6n86w9v6v4jwb"))))
2704 (build-system haskell-build-system)
2705 (inputs
2706 `(("ghc-base-compat" ,ghc-base-compat)
2707 ("ghc-hashable" ,ghc-hashable)
2708 ("ghc-regex-base" ,ghc-regex-base)
2709 ("ghc-regex-pcre-builtin" ,ghc-regex-pcre-builtin)
2710 ("ghc-regex-tdfa" ,ghc-regex-tdfa)
2711 ("ghc-regex-tdfa-text" ,ghc-regex-tdfa-text)
2712 ("ghc-text" ,ghc-text)
2713 ("ghc-time-locale-compat" ,ghc-time-locale-compat)
2714 ("ghc-unordered-containers" ,ghc-unordered-containers)
2715 ("ghc-utf8-string" ,ghc-utf8-string)))
2716 (home-page "http://regex.uk")
2717 (synopsis "Toolkit for regex-base")
2718 (description
2719 "This package provides a regular expression toolkit for @code{regex-base}
2720with compile-time checking of regular expression syntax, data types for
2721matches and captures, a text replacement toolkit, portable options, high-level
2722AWK-like tools for building text processing apps, regular expression macros
2723with parsers and test bench, comprehensive documentation, tutorials and
2724copious examples.")
2725 (license license:bsd-3)))
2726
e372520e
PW
2727(define-public ghc-parsers
2728 (package
2729 (name "ghc-parsers")
fef57b73 2730 (version "0.12.4")
e372520e
PW
2731 (source
2732 (origin
2733 (method url-fetch)
2734 (uri (string-append
612fddec 2735 "https://hackage.haskell.org/package/parsers/parsers-"
e372520e
PW
2736 version
2737 ".tar.gz"))
2738 (sha256
2739 (base32
fef57b73 2740 "07najh7f9y3ahh42z96sw4hnd0kc4x3wm0xlf739y0gh81ys5097"))))
e372520e
PW
2741 (build-system haskell-build-system)
2742 (arguments `(#:tests? #f)) ; FIXME: Test fails with "cannot satisfy
2743 ; -package attoparsec-0.13.0.1"
2d47cee2 2744 (inputs
e372520e
PW
2745 `(("ghc-base-orphans" ,ghc-base-orphans)
2746 ("ghc-attoparsec" ,ghc-attoparsec)
2747 ("ghc-parsec" ,ghc-parsec)
2748 ("ghc-scientific" ,ghc-scientific)
2d47cee2
RW
2749 ("ghc-charset" ,ghc-charset)
2750 ("ghc-text" ,ghc-text)
e372520e 2751 ("ghc-unordered-containers" ,ghc-unordered-containers)))
612fddec 2752 (home-page "https://github.com/ekmett/parsers/")
e372520e
PW
2753 (synopsis "Parsing combinators")
2754 (description "This library provides convenient combinators for working
2755with and building parsing combinator libraries. Given a few simple instances,
2756you get access to a large number of canned definitions. Instances exist for
2757the parsers provided by @code{parsec}, @code{attoparsec} and @code{base}'s
2758@code{Text.Read}.")
3ac73271 2759 (license license:bsd-3)))
e372520e 2760
93248cfd
PW
2761(define-public ghc-trifecta
2762 (package
2763 (name "ghc-trifecta")
183d1b1a 2764 (version "1.7.1.1")
3ea25176
DC
2765 (source (origin
2766 (method url-fetch)
2767 (uri (string-append
2768 "https://hackage.haskell.org/package/trifecta/"
2769 "trifecta-" version ".tar.gz"))
2770 (sha256
2771 (base32
183d1b1a 2772 "13n6a3fdxngnzsjnhfrzigv1c2g0xm6lqkjcnirpc37sd0rpby31"))))
93248cfd 2773 (build-system haskell-build-system)
2d47cee2 2774 (inputs
183d1b1a
RW
2775 `(("ghc-doctest" ,ghc-doctest-0.13)
2776 ("ghc-reducers" ,ghc-reducers)
2d47cee2
RW
2777 ("ghc-semigroups" ,ghc-semigroups)
2778 ("ghc-ansi-wl-pprint" ,ghc-ansi-wl-pprint)
93248cfd
PW
2779 ("ghc-ansi-terminal" ,ghc-ansi-terminal)
2780 ("ghc-blaze-builder" ,ghc-blaze-builder)
2781 ("ghc-blaze-html" ,ghc-blaze-html)
2782 ("ghc-blaze-markup" ,ghc-blaze-markup)
3ea25176
DC
2783 ("ghc-charset" ,ghc-charset)
2784 ("ghc-comonad" ,ghc-comonad)
2785 ("ghc-doctest" ,ghc-doctest)
93248cfd
PW
2786 ("ghc-fingertree" ,ghc-fingertree)
2787 ("ghc-hashable" ,ghc-hashable)
3ea25176 2788 ("ghc-lens" ,ghc-lens)
93248cfd 2789 ("ghc-parsers" ,ghc-parsers)
3ea25176
DC
2790 ("ghc-profunctors" ,ghc-profunctors)
2791 ("ghc-quickcheck" ,ghc-quickcheck)
93248cfd
PW
2792 ("ghc-unordered-containers" ,ghc-unordered-containers)
2793 ("ghc-utf8-string" ,ghc-utf8-string)))
183d1b1a
RW
2794 (native-inputs
2795 `(("cabal-doctest" ,cabal-doctest)))
612fddec 2796 (home-page "https://github.com/ekmett/trifecta/")
93248cfd
PW
2797 (synopsis "Parser combinator library with convenient diagnostics")
2798 (description "Trifecta is a modern parser combinator library for Haskell,
2799with slicing and Clang-style colored diagnostics.")
3ac73271 2800 (license license:bsd-3)))
93248cfd 2801
5e51bcf7
RW
2802(define-public ghc-time-locale-compat
2803 (package
2804 (name "ghc-time-locale-compat")
9b6d49e8 2805 (version "0.1.1.5")
5e51bcf7
RW
2806 (source
2807 (origin
2808 (method url-fetch)
2809 (uri (string-append "https://hackage.haskell.org/package/"
2810 "time-locale-compat/time-locale-compat-"
2811 version ".tar.gz"))
2812 (sha256
2813 (base32
9b6d49e8 2814 "0b2hmj8wwrfkndwzgm11qr496ca2ahwdxcj3m0ii91bxvrk1bzq7"))))
5e51bcf7
RW
2815 (build-system haskell-build-system)
2816 (inputs `(("ghc-old-locale" ,ghc-old-locale)))
2817 (home-page "https://github.com/khibino/haskell-time-locale-compat")
2818 (synopsis "Compatibility of TimeLocale between old-locale and time-1.5")
2819 (description "This package contains a wrapped name module for
2820@code{TimeLocale}.")
2821 (license license:bsd-3)))
2822
bc74e0e1
PW
2823(define-public ghc-attoparsec
2824 (package
2825 (name "ghc-attoparsec")
1b1a1067 2826 (version "0.13.2.2")
bc74e0e1
PW
2827 (source
2828 (origin
2829 (method url-fetch)
2830 (uri (string-append
612fddec 2831 "https://hackage.haskell.org/package/attoparsec/attoparsec-"
bc74e0e1
PW
2832 version
2833 ".tar.gz"))
2834 (sha256
2835 (base32
1b1a1067 2836 "0j6qcwd146yzlkc9mcvzvnixsyl65n2a68l28322q5v9p4g4g4yx"))))
bc74e0e1 2837 (build-system haskell-build-system)
1b1a1067
RW
2838 ;; FIXME: at least on test fails with QuickCheck > 2.9.2. Once upstream
2839 ;; has updated the tests to work with a later version of QuickCheck we can
2840 ;; re-enable them.
2841 (arguments `(#:tests? #f))
bc74e0e1 2842 (inputs
f9f4578b 2843 `(("ghc-scientific" ,ghc-scientific)
2d47cee2
RW
2844 ("ghc-text" ,ghc-text)))
2845 (native-inputs
1b1a1067
RW
2846 `(("ghc-tasty" ,ghc-tasty)
2847 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
2848 ("ghc-quickcheck" ,ghc-quickcheck)
19206f5e 2849 ("ghc-quickcheck-unicode" ,ghc-quickcheck-unicode)
bc74e0e1
PW
2850 ("ghc-vector" ,ghc-vector)))
2851 (home-page "https://github.com/bos/attoparsec")
2852 (synopsis "Fast combinator parsing for bytestrings and text")
2853 (description "This library provides a fast parser combinator library,
2854aimed particularly at dealing efficiently with network protocols and
2855complicated text/binary file formats.")
3ac73271 2856 (license license:bsd-3)))
bc74e0e1 2857
ca41c155
PW
2858(define-public ghc-zip-archive
2859 (package
2860 (name "ghc-zip-archive")
2025964b 2861 (version "0.3.0.5")
ca41c155
PW
2862 (source
2863 (origin
2864 (method url-fetch)
2865 (uri (string-append
612fddec 2866 "https://hackage.haskell.org/package/zip-archive/zip-archive-"
ca41c155
PW
2867 version
2868 ".tar.gz"))
2869 (sha256
2870 (base32
2025964b 2871 "1iwpzjck4jg9bz1yqky051i2wljsqc14q5zbi10dydfp8ip3d0yw"))))
ca41c155 2872 (build-system haskell-build-system)
ca41c155 2873 (inputs
2d47cee2
RW
2874 `(("ghc-old-time" ,ghc-old-time)
2875 ("ghc-digest" ,ghc-digest)
ca41c155 2876 ("zip" ,zip)
2025964b 2877 ("ghc-temporary" ,ghc-temporary)
ca41c155
PW
2878 ("ghc-text" ,ghc-text)
2879 ("ghc-zlib" ,ghc-zlib)))
2d47cee2
RW
2880 (native-inputs
2881 `(("ghc-hunit" ,ghc-hunit)))
ca41c155
PW
2882 (home-page "https://hackage.haskell.org/package/zip-archive")
2883 (synopsis "Zip archive library for Haskell")
2884 (description "The zip-archive library provides functions for creating,
2885modifying, and extracting files from zip archives in Haskell.")
3ac73271 2886 (license license:bsd-3)))
ca41c155 2887
fa4f5024
PW
2888(define-public ghc-distributive
2889 (package
2890 (name "ghc-distributive")
c2d30e31 2891 (version "0.5.3")
fa4f5024
PW
2892 (source
2893 (origin
2894 (method url-fetch)
2895 (uri (string-append
612fddec 2896 "https://hackage.haskell.org/package/distributive/distributive-"
fa4f5024
PW
2897 version
2898 ".tar.gz"))
2899 (sha256
2900 (base32
c2d30e31 2901 "0y566r97sfyvhsmd4yxiz4ns2mqgwf5bdbp56wgxl6wlkidq0wwi"))))
fa4f5024 2902 (build-system haskell-build-system)
2d47cee2 2903 (inputs
fa4f5024 2904 `(("ghc-tagged" ,ghc-tagged)
c2d30e31
RW
2905 ("ghc-base-orphans" ,ghc-base-orphans)
2906 ("ghc-transformers-compat" ,ghc-transformers-compat)
2907 ("ghc-semigroups" ,ghc-semigroups)
2908 ("ghc-generic-deriving" ,ghc-generic-deriving)))
2909 (native-inputs
2910 `(("cabal-doctest" ,cabal-doctest)
2911 ("ghc-doctest" ,ghc-doctest-0.12)
2912 ("ghc-hspec" ,ghc-hspec)
2913 ("hspec-discover" ,hspec-discover)))
612fddec 2914 (home-page "https://github.com/ekmett/distributive/")
fa4f5024
PW
2915 (synopsis "Distributive functors for Haskell")
2916 (description "This package provides distributive functors for Haskell.
2917Dual to @code{Traversable}.")
3ac73271 2918 (license license:bsd-3)))
fa4f5024 2919
10e61452
PW
2920(define-public ghc-cereal
2921 (package
2922 (name "ghc-cereal")
3295a6da 2923 (version "0.5.3.0")
10e61452
PW
2924 (source
2925 (origin
2926 (method url-fetch)
2927 (uri (string-append
612fddec 2928 "https://hackage.haskell.org/package/cereal/cereal-"
10e61452
PW
2929 version
2930 ".tar.gz"))
2931 (sha256
2932 (base32
3295a6da 2933 "1x4aib7nnaf4x2b9zlndq5n5zsqniw78jifkf55nhnbmvryf05n3"))))
10e61452 2934 (build-system haskell-build-system)
3295a6da
RW
2935 (native-inputs
2936 `(("ghc-quickcheck" ,ghc-quickcheck)
2937 ("ghc-fail" ,ghc-fail)
2938 ("ghc-test-framework" ,ghc-test-framework)
2939 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
612fddec 2940 (home-page "https://hackage.haskell.org/package/cereal")
10e61452
PW
2941 (synopsis "Binary serialization library")
2942 (description "This package provides a binary serialization library,
2943similar to @code{binary}, that introduces an @code{isolate} primitive for
2944parser isolation, and labeled blocks for better error messages.")
3ac73271 2945 (license license:bsd-3)))
10e61452 2946
40b56b52
PW
2947(define-public ghc-comonad
2948 (package
2949 (name "ghc-comonad")
4854c7be 2950 (version "5")
40b56b52
PW
2951 (source
2952 (origin
2953 (method url-fetch)
2954 (uri (string-append
612fddec 2955 "https://hackage.haskell.org/package/comonad/comonad-"
40b56b52
PW
2956 version
2957 ".tar.gz"))
2958 (sha256
2959 (base32
4854c7be 2960 "0anb36m9z52y9xsipxzj9w1b41b2rj8r389cxd6d20dplnfv3rbq"))))
40b56b52 2961 (build-system haskell-build-system)
bdd4aa16
TGR
2962 (native-inputs
2963 `(("ghc-doctest" ,ghc-doctest)))
40b56b52 2964 (inputs
7e95d0fd
TGR
2965 `(("ghc-contravariant" ,ghc-contravariant)
2966 ("ghc-distributive" ,ghc-distributive)
2d47cee2 2967 ("ghc-semigroups" ,ghc-semigroups)
40b56b52 2968 ("ghc-tagged" ,ghc-tagged)
7e95d0fd 2969 ("ghc-transformers-compat" ,ghc-transformers-compat)))
612fddec 2970 (home-page "https://github.com/ekmett/comonad/")
40b56b52
PW
2971 (synopsis "Comonads for Haskell")
2972 (description "This library provides @code{Comonad}s for Haskell.")
3ac73271 2973 (license license:bsd-3)))
40b56b52 2974
ce78a0f5
PW
2975(define-public hscolour
2976 (package
2977 (name "hscolour")
8642b86a 2978 (version "1.24.4")
ce78a0f5
PW
2979 (source
2980 (origin
2981 (method url-fetch)
2982 (uri (string-append
612fddec 2983 "https://hackage.haskell.org/package/hscolour/hscolour-"
ce78a0f5
PW
2984 version
2985 ".tar.gz"))
2986 (sha256
2987 (base32
8642b86a 2988 "079jwph4bwllfp03yfr26s5zc6m6kw3nhb1cggrifh99haq34cr4"))))
ce78a0f5
PW
2989 (build-system haskell-build-system)
2990 (home-page "https://hackage.haskell.org/package/hscolour")
2991 (synopsis "Script to colourise Haskell code")
2992 (description "HSColour is a small Haskell script to colourise Haskell
2993code. It currently has six output formats: ANSI terminal codes (optionally
2994XTerm-256colour codes), HTML 3.2 with font tags, HTML 4.01 with CSS, HTML 4.01
2995with CSS and mouseover annotations, XHTML 1.0 with inline CSS styling, LaTeX,
2996and mIRC chat codes.")
3ac73271 2997 (license license:bsd-3)))
ce78a0f5 2998
47038762
PW
2999(define-public ghc-polyparse
3000 (package
3001 (name "ghc-polyparse")
7fb6eb17 3002 (version "1.12")
47038762
PW
3003 (source
3004 (origin
3005 (method url-fetch)
3006 (uri (string-append
612fddec 3007 "https://hackage.haskell.org/package/polyparse/polyparse-"
47038762
PW
3008 version
3009 ".tar.gz"))
3010 (sha256
3011 (base32
7fb6eb17 3012 "05dya1vdvq29hkhkdlsglzhw7bdn51rvs1javs0q75nf99c66k7m"))))
47038762 3013 (build-system haskell-build-system)
2d47cee2 3014 (inputs
47038762
PW
3015 `(("ghc-text" ,ghc-text)))
3016 (home-page
3017 "http://code.haskell.org/~malcolm/polyparse/")
3018 (synopsis
3019 "Alternative parser combinator libraries")
3020 (description
3021 "This package provides a variety of alternative parser combinator
3022libraries, including the original HuttonMeijer set. The Poly sets have
3023features like good error reporting, arbitrary token type, running state, lazy
3024parsing, and so on. Finally, Text.Parse is a proposed replacement for the
3025standard Read class, for better deserialisation of Haskell values from
3026Strings.")
3ac73271 3027 (license license:lgpl2.1)))
47038762 3028
fad564ec
PW
3029(define-public ghc-extra
3030 (package
3031 (name "ghc-extra")
7d4de988 3032 (version "1.6.3")
fad564ec
PW
3033 (source
3034 (origin
3035 (method url-fetch)
3036 (uri (string-append
612fddec 3037 "https://hackage.haskell.org/package/extra/extra-"
fad564ec
PW
3038 version
3039 ".tar.gz"))
3040 (sha256
3041 (base32
7d4de988 3042 "06ds0jlx6sljwdf63l154qbzia9mnsri79i9qm3xikky3nj9ia1m"))))
fad564ec 3043 (build-system haskell-build-system)
7d4de988
RW
3044 (inputs
3045 `(("ghc-clock" ,ghc-clock)
3046 ("ghc-quickcheck" ,ghc-quickcheck)))
fad564ec
PW
3047 (home-page "https://github.com/ndmitchell/extra")
3048 (synopsis "Extra Haskell functions")
3049 (description "This library provides extra functions for the standard
3050Haskell libraries. Most functions are simple additions, filling out missing
3051functionality. A few functions are available in later versions of GHC, but
3052this package makes them available back to GHC 7.2.")
3ac73271 3053 (license license:bsd-3)))
fad564ec 3054
f221841c
PW
3055(define-public ghc-profunctors
3056 (package
3057 (name "ghc-profunctors")
4a1b5600 3058 (version "5.2.2")
f221841c
PW
3059 (source
3060 (origin
3061 (method url-fetch)
3062 (uri (string-append
612fddec 3063 "https://hackage.haskell.org/package/profunctors/profunctors-"
f221841c
PW
3064 version
3065 ".tar.gz"))
3066 (sha256
3067 (base32
4a1b5600 3068 "0s1pwjidbn761xk43pmzyvn99hm3psdifjd78ylki7f97aiyd0g9"))))
f221841c 3069 (build-system haskell-build-system)
f221841c 3070 (inputs
4a1b5600
RW
3071 `(("ghc-base-orphans" ,ghc-base-orphans)
3072 ("ghc-bifunctors" ,ghc-bifunctors)
2d47cee2 3073 ("ghc-comonad" ,ghc-comonad)
4a1b5600
RW
3074 ("ghc-contravariant" ,ghc-contravariant)
3075 ("ghc-distributive" ,ghc-distributive)
3076 ("ghc-semigroups" ,ghc-semigroups)
f221841c 3077 ("ghc-tagged" ,ghc-tagged)))
612fddec 3078 (home-page "https://github.com/ekmett/profunctors/")
f221841c
PW
3079 (synopsis "Profunctors for Haskell")
3080 (description "This library provides profunctors for Haskell.")
3ac73271 3081 (license license:bsd-3)))
f221841c 3082
d2639cbc
PW
3083(define-public ghc-reducers
3084 (package
3085 (name "ghc-reducers")
2815963b 3086 (version "3.12.2")
d2639cbc
PW
3087 (source
3088 (origin
3089 (method url-fetch)
3090 (uri (string-append
612fddec 3091 "https://hackage.haskell.org/package/reducers/reducers-"
d2639cbc
PW
3092 version
3093 ".tar.gz"))
3094 (sha256
3095 (base32
2815963b 3096 "1gbaa5x4zbvnbklcb0d4q4m8hk6w0gz4s0c4m288czi1nw43dl65"))))
d2639cbc 3097 (build-system haskell-build-system)
d2639cbc
PW
3098 (inputs
3099 `(("ghc-fingertree" ,ghc-fingertree)
3100 ("ghc-hashable" ,ghc-hashable)
3101 ("ghc-text" ,ghc-text)
3102 ("ghc-unordered-containers" ,ghc-unordered-containers)
2d47cee2 3103 ("ghc-semigroupoids" ,ghc-semigroupoids)
d2639cbc 3104 ("ghc-semigroups" ,ghc-semigroups)))
612fddec 3105 (home-page "https://github.com/ekmett/reducers/")
d2639cbc
PW
3106 (synopsis "Semigroups, specialized containers and a general map/reduce framework")
3107 (description "This library provides various semigroups, specialized
3108containers and a general map/reduce framework for Haskell.")
3ac73271 3109 (license license:bsd-3)))
d2639cbc 3110
76ae28f1
PW
3111(define-public ghc-appar
3112 (package
3113 (name "ghc-appar")
3114 (version "0.1.4")
3115 (source
3116 (origin
3117 (method url-fetch)
3118 (uri (string-append
612fddec 3119 "https://hackage.haskell.org/package/appar/appar-"
76ae28f1
PW
3120 version
3121 ".tar.gz"))
3122 (sha256
3123 (base32
3124 "09jb9ij78fdkz2qk66rw99q19qnm504dpv0yq0pjsl6xwjmndsjq"))))
3125 (build-system haskell-build-system)
3126 (home-page
612fddec 3127 "https://hackage.haskell.org/package/appar")
76ae28f1
PW
3128 (synopsis "Simple applicative parser")
3129 (description "This package provides a simple applicative parser in Parsec
3130style.")
3ac73271 3131 (license license:bsd-3)))
76ae28f1 3132
78c5b39d
PW
3133(define-public ghc-safe
3134 (package
3135 (name "ghc-safe")
3136 (version "0.3.9")
3137 (source
3138 (origin
3139 (method url-fetch)
3140 (uri (string-append
612fddec 3141 "https://hackage.haskell.org/package/safe/safe-"
78c5b39d
PW
3142 version
3143 ".tar.gz"))
3144 (sha256
3145 (base32
3146 "1jdnp5zhvalf1xy8i872n29nljfjz6lnl9ghj80ffisrnnkrwcfh"))))
3147 (build-system haskell-build-system)
3148 (home-page "https://github.com/ndmitchell/safe#readme")
3149 (synopsis "Library of safe (exception free) functions")
3150 (description "This library provides wrappers around @code{Prelude} and
3151@code{Data.List} functions, such as @code{head} and @code{!!}, that can throw
3152exceptions.")
3ac73271 3153 (license license:bsd-3)))
78c5b39d 3154
476f7bab
PW
3155(define-public ghc-generic-deriving
3156 (package
3157 (name "ghc-generic-deriving")
24857542 3158 (version "1.11.1")
476f7bab
PW
3159 (source
3160 (origin
3161 (method url-fetch)
3162 (uri (string-append
612fddec 3163 "https://hackage.haskell.org/package/generic-deriving/generic-deriving-"
476f7bab
PW
3164 version
3165 ".tar.gz"))
3166 (sha256
3167 (base32
24857542 3168 "1sdh5hpcwvh3b6zvgfk3pr3hla8p88l82njnih880c0gk5zl53dk"))))
476f7bab 3169 (build-system haskell-build-system)
24857542
RW
3170 (native-inputs
3171 `(("ghc-hspec" ,ghc-hspec)
3172 ("hspec-discover" ,hspec-discover)))
476f7bab
PW
3173 (home-page "https://hackage.haskell.org/package/generic-deriving")
3174 (synopsis "Generalise the deriving mechanism to arbitrary classes")
3175 (description "This package provides functionality for generalising the
3176deriving mechanism in Haskell to arbitrary classes.")
3ac73271 3177 (license license:bsd-3)))
476f7bab 3178
b10f7be3
PW
3179(define-public ghc-pcre-light
3180 (package
3181 (name "ghc-pcre-light")
eff94e6b 3182 (version "0.4.0.4")
b10f7be3
PW
3183 (source
3184 (origin
3185 (method url-fetch)
3186 (uri (string-append
612fddec 3187 "https://hackage.haskell.org/package/pcre-light/pcre-light-"
b10f7be3
PW
3188 version
3189 ".tar.gz"))
3190 (sha256
3191 (base32
eff94e6b 3192 "0xcyi1fivwg7a92mch5bcqzmrfxzqj42rmb3m8kgs61x4qwpxj82"))))
b10f7be3
PW
3193 (build-system haskell-build-system)
3194 (inputs
3195 `(("pcre" ,pcre)))
eff94e6b
RW
3196 (native-inputs
3197 `(("pkg-config" ,pkg-config)))
b10f7be3
PW
3198 (home-page "https://github.com/Daniel-Diaz/pcre-light")
3199 (synopsis "Haskell library for Perl 5 compatible regular expressions")
3200 (description "This package provides a small, efficient, and portable regex
3201library for Perl 5 compatible regular expressions. The PCRE library is a set
3202of functions that implement regular expression pattern matching using the same
3203syntax and semantics as Perl 5.")
3ac73271 3204 (license license:bsd-3)))
b10f7be3 3205
748463be
PW
3206(define-public ghc-logict
3207 (package
3208 (name "ghc-logict")
3209 (version "0.6.0.2")
3210 (source
3211 (origin
3212 (method url-fetch)
3213 (uri (string-append
612fddec 3214 "https://hackage.haskell.org/package/logict/logict-"
748463be
PW
3215 version
3216 ".tar.gz"))
3217 (sha256
3218 (base32
3219 "07hnirv6snnym2r7iijlfz00b60jpy2856zvqxh989q0in7bd0hi"))))
3220 (build-system haskell-build-system)
748463be
PW
3221 (home-page "http://code.haskell.org/~dolio/")
3222 (synopsis "Backtracking logic-programming monad")
3223 (description "This library provides a continuation-based, backtracking,
3224logic programming monad. An adaptation of the two-continuation implementation
3225found in the paper \"Backtracking, Interleaving, and Terminating Monad
3226Transformers\" available @uref{http://okmij.org/ftp/papers/LogicT.pdf,
3227online}.")
3ac73271 3228 (license license:bsd-3)))
748463be 3229
d10fed28
PW
3230(define-public ghc-xml
3231 (package
3232 (name "ghc-xml")
3233 (version "1.3.14")
3234 (source
3235 (origin
3236 (method url-fetch)
3237 (uri (string-append
612fddec 3238 "https://hackage.haskell.org/package/xml/xml-"
d10fed28
PW
3239 version
3240 ".tar.gz"))
3241 (sha256
3242 (base32
3243 "0g814lj7vaxvib2g3r734221k80k7ap9czv9hinifn8syals3l9j"))))
3244 (build-system haskell-build-system)
2d47cee2 3245 (inputs
d10fed28
PW
3246 `(("ghc-text" ,ghc-text)))
3247 (home-page "http://code.galois.com")
3248 (synopsis "Simple XML library for Haskell")
3249 (description "This package provides a simple XML library for Haskell.")
3ac73271 3250 (license license:bsd-3)))
d10fed28 3251
e3aae496
TS
3252(define-public ghc-feed
3253 (package
3254 (name "ghc-feed")
3255 (version "0.3.12.0")
3256 (source
3257 (origin
3258 (method url-fetch)
3259 (uri (string-append "https://hackage.haskell.org/package/"
3260 "feed/feed-" version ".tar.gz"))
3261 (sha256
3262 (base32
3263 "0hkrsinspg70bbm3hwqdrvivws6zya1hyk0a3awpaz82j4xnlbfc"))))
3264 (build-system haskell-build-system)
3265 (inputs
3266 `(("ghc-old-locale" ,ghc-old-locale)
3267 ("ghc-old-time" ,ghc-old-time)
3268 ("ghc-time-locale-compat" ,ghc-time-locale-compat)
3269 ("ghc-utf8-string" ,ghc-utf8-string)
3270 ("ghc-xml" ,ghc-xml)))
3271 (native-inputs
3272 `(("ghc-hunit" ,ghc-hunit)
3273 ("ghc-test-framework" ,ghc-test-framework)
3274 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)))
3275 (home-page "https://github.com/bergmark/feed")
3276 (synopsis "Haskell package for handling various syndication formats")
3277 (description "This Haskell package includes tools for generating and
3278consuming feeds in both RSS (Really Simple Syndication) and Atom format.")
3279 (license license:bsd-3)))
3280
31cac1ee
PW
3281(define-public ghc-exceptions
3282 (package
3283 (name "ghc-exceptions")
092ab12f 3284 (version "0.8.3")
31cac1ee
PW
3285 (source
3286 (origin
3287 (method url-fetch)
3288 (uri (string-append
612fddec 3289 "https://hackage.haskell.org/package/exceptions/exceptions-"
31cac1ee
PW
3290 version
3291 ".tar.gz"))
3292 (sha256
3293 (base32
092ab12f 3294 "1gl7xzffsqmigam6zg0jsglncgzxqafld2p6kb7ccp9xirzdjsjd"))))
31cac1ee 3295 (build-system haskell-build-system)
e2d3e4d6
RW
3296 (arguments
3297 `(#:configure-flags (list "--allow-newer=QuickCheck")))
e1e80388
TGR
3298 (native-inputs
3299 `(("ghc-test-framework" ,ghc-test-framework)
3300 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
2d47cee2 3301 (inputs
31cac1ee 3302 `(("ghc-stm" ,ghc-stm)
31cac1ee 3303 ("ghc-transformers-compat" ,ghc-transformers-compat)))
612fddec 3304 (home-page "https://github.com/ekmett/exceptions/")
31cac1ee
PW
3305 (synopsis "Extensible optionally-pure exceptions")
3306 (description "This library provides extensible optionally-pure exceptions
3307for Haskell.")
3ac73271 3308 (license license:bsd-3)))
31cac1ee 3309
5257c341
PW
3310(define-public ghc-temporary
3311 (package
3312 (name "ghc-temporary")
de428d4d 3313 (version "1.2.0.4")
5257c341
PW
3314 (source
3315 (origin
3316 (method url-fetch)
3317 (uri (string-append
612fddec 3318 "https://hackage.haskell.org/package/temporary/temporary-"
5257c341
PW
3319 version
3320 ".tar.gz"))
3321 (sha256
3322 (base32
de428d4d 3323 "0qk741yqnpd69sksgks2vb7zi50rglp9m498lzw4sh268a017rsi"))))
5257c341 3324 (build-system haskell-build-system)
2d47cee2 3325 (inputs `(("ghc-exceptions" ,ghc-exceptions)))
98b90194 3326 (home-page "https://www.github.com/batterseapower/temporary")
5257c341
PW
3327 (synopsis "Temporary file and directory support")
3328 (description "The functions for creating temporary files and directories
3329in the Haskelll base library are quite limited. This library just repackages
3330the Cabal implementations of its own temporary file and folder functions so
3331that you can use them without linking against Cabal or depending on it being
3332installed.")
3ac73271 3333 (license license:bsd-3)))
5257c341 3334
fa67563c
PW
3335(define-public ghc-temporary-rc
3336 (package
3337 (name "ghc-temporary-rc")
3338 (version "1.2.0.3")
3339 (source
3340 (origin
3341 (method url-fetch)
3342 (uri (string-append
612fddec 3343 "https://hackage.haskell.org/package/temporary-rc/temporary-rc-"
fa67563c
PW
3344 version
3345 ".tar.gz"))
3346 (sha256
3347 (base32
3348 "1nqih0qks439k3pr5kmbbc8rjdw730slrxlflqb27fbxbzb8skqs"))))
3349 (build-system haskell-build-system)
2d47cee2 3350 (inputs `(("ghc-exceptions" ,ghc-exceptions)))
fa67563c 3351 (home-page
98b90194 3352 "https://www.github.com/feuerbach/temporary")
fa67563c
PW
3353 (synopsis
3354 "Portable temporary file and directory support")
3355 (description
3356 "The functions for creating temporary files and directories in the base
3357library are quite limited. The unixutils package contains some good ones, but
3358they aren't portable to Windows. This library just repackages the Cabal
3359implementations of its own temporary file and folder functions so that you can
3360use them without linking against Cabal or depending on it being installed.
3361This is a better maintained fork of the \"temporary\" package.")
3ac73271 3362 (license license:bsd-3)))
fa67563c 3363
b53fa046
PW
3364(define-public ghc-smallcheck
3365 (package
3366 (name "ghc-smallcheck")
b625f3a5 3367 (version "1.1.5")
b53fa046
PW
3368 (source
3369 (origin
3370 (method url-fetch)
3371 (uri (string-append
612fddec 3372 "https://hackage.haskell.org/package/smallcheck/smallcheck-"
b53fa046
PW
3373 version
3374 ".tar.gz"))
3375 (sha256
3376 (base32
b625f3a5 3377 "195fj7w3v03d1y1nm2ylavzrwxjcdbq0lb6zsw1dwyx5jmwfc84h"))))
b53fa046 3378 (build-system haskell-build-system)
b53fa046 3379 (inputs
f54f0475 3380 `(("ghc-logict" ,ghc-logict)))
b53fa046
PW
3381 (home-page
3382 "https://github.com/feuerbach/smallcheck")
3383 (synopsis "Property-based testing library")
3384 (description "SmallCheck is a testing library that allows to verify
3385properties for all test cases up to some depth. The test cases are generated
3386automatically by SmallCheck.")
3ac73271 3387 (license license:bsd-3)))
b53fa046 3388
acd881a4
PW
3389(define-public ghc-silently
3390 (package
3391 (name "ghc-silently")
3392 (version "1.2.5")
3393 (source
3394 (origin
3395 (method url-fetch)
3396 (uri (string-append
612fddec 3397 "https://hackage.haskell.org/package/silently/silently-"
acd881a4
PW
3398 version
3399 ".tar.gz"))
3400 (sha256
3401 (base32
3402 "0f9qm3f7y0hpxn6mddhhg51mm1r134qkvd2kr8r6192ka1ijbxnf"))))
3403 (build-system haskell-build-system)
3404 (arguments `(#:tests? #f)) ;; circular dependency with nanospec
3405 ;; (inputs
3406 ;; `(("ghc-temporary" ,ghc-temporary)))
3407 (home-page "https://github.com/hspec/silently")
3408 (synopsis "Prevent writing to stdout")
3409 (description "This package provides functions to prevent or capture
3410writing to stdout and other handles.")
3ac73271 3411 (license license:bsd-3)))
acd881a4 3412
7a1e8c74
FB
3413(define-public ghc-case-insensitive
3414 (package
3415 (name "ghc-case-insensitive")
fc9dd558 3416 (version "1.2.0.7")
7a1e8c74
FB
3417 (outputs '("out" "doc"))
3418 (source
3419 (origin
3420 (method url-fetch)
3421 (uri (string-append
612fddec 3422 "https://hackage.haskell.org/package/case-insensitive/case-insensitive-"
7a1e8c74
FB
3423 version
3424 ".tar.gz"))
3425 (sha256
3426 (base32
fc9dd558 3427 "1j6ahvrz1g5q89y2difyk838yhwjc8z67zr0v2z512qdznc3h38n"))))
7a1e8c74
FB
3428 (build-system haskell-build-system)
3429 (inputs
3430 `(("ghc-hunit" ,ghc-hunit)))
3431 ;; these inputs are necessary to use this library
2d47cee2 3432 (inputs
7a1e8c74
FB
3433 `(("ghc-text" ,ghc-text)
3434 ("ghc-hashable" ,ghc-hashable)))
3435 (arguments
3436 `(#:tests? #f)) ; FIXME: currently missing libraries used for tests.
3437 (home-page
3438 "https://github.com/basvandijk/case-insensitive")
3439 (synopsis "Case insensitive string comparison")
3440 (description
3441 "The module 'Data.CaseInsensitive' provides the 'CI' type constructor
3442which can be parameterised by a string-like type like: 'String', 'ByteString',
3443'Text', etc.. Comparisons of values of the resulting type will be insensitive
3444to cases.")
3ac73271 3445 (license license:bsd-3)))
7a1e8c74 3446
eaa3088e
FB
3447(define-public ghc-syb
3448 (package
3449 (name "ghc-syb")
a306190f 3450 (version "0.6")
eaa3088e
FB
3451 (outputs '("out" "doc"))
3452 (source
3453 (origin
3454 (method url-fetch)
3455 (uri (string-append
612fddec 3456 "https://hackage.haskell.org/package/syb/syb-"
eaa3088e
FB
3457 version
3458 ".tar.gz"))
3459 (sha256
3460 (base32
a306190f 3461 "1p3cnqjm13677r4a966zffzhi9b3a321aln8zs8ckqj0d9z1z3d3"))))
eaa3088e
FB
3462 (build-system haskell-build-system)
3463 (inputs
f54f0475 3464 `(("ghc-hunit" ,ghc-hunit)))
eaa3088e
FB
3465 (home-page
3466 "http://www.cs.uu.nl/wiki/GenericProgramming/SYB")
3467 (synopsis "Scrap Your Boilerplate")
a306190f 3468 (description "This package contains the generics system described in the
eaa3088e 3469/Scrap Your Boilerplate/ papers (see
a306190f
PW
3470@uref{http://www.cs.uu.nl/wiki/GenericProgramming/SYB, the website}). It
3471defines the 'Data' class of types permitting folding and unfolding of
3472constructor applications, instances of this class for primitive types, and a
3473variety of traversals.")
3ac73271 3474 (license license:bsd-3)))
eaa3088e 3475
c5043f4a
FB
3476(define-public ghc-fgl
3477 (package
3478 (name "ghc-fgl")
b1a16000 3479 (version "5.6.0.0")
c5043f4a
FB
3480 (outputs '("out" "doc"))
3481 (source
3482 (origin
3483 (method url-fetch)
3484 (uri (string-append
612fddec 3485 "https://hackage.haskell.org/package/fgl/fgl-"
c5043f4a
FB
3486 version
3487 ".tar.gz"))
3488 (sha256
3489 (base32
b1a16000 3490 "1i6cp4b3w7sjk7y1dq3fh6bci2sm5h3lnbbaw9ln19nwncg2wwll"))))
c5043f4a 3491 (build-system haskell-build-system)
c0a541cb 3492 (arguments
b1a16000
AI
3493 `(#:configure-flags (list "--allow-newer=QuickCheck"
3494 "--allow-newer=hspec")))
ce242fd0 3495 (inputs
f54f0475 3496 `(("ghc-hspec" ,ghc-hspec)
ce242fd0 3497 ("ghc-quickcheck" ,ghc-quickcheck)))
98b90194 3498 (home-page "https://web.engr.oregonstate.edu/~erwig/fgl/haskell")
c5043f4a
FB
3499 (synopsis
3500 "Martin Erwig's Functional Graph Library")
3501 (description "The functional graph library, FGL, is a collection of type
3502and function definitions to address graph problems. The basis of the library
3503is an inductive definition of graphs in the style of algebraic data types that
3504encourages inductive, recursive definitions of graph algorithms.")
3ac73271 3505 (license license:bsd-3)))
c5043f4a 3506
4eca62be
EB
3507(define-public ghc-chasingbottoms
3508 (package
3509 (name "ghc-chasingbottoms")
2c72272a 3510 (version "1.3.1.3")
4eca62be
EB
3511 (source
3512 (origin
3513 (method url-fetch)
612fddec 3514 (uri (string-append "https://hackage.haskell.org/package/ChasingBottoms/"
4eca62be
EB
3515 "ChasingBottoms-" version ".tar.gz"))
3516 (sha256
3517 (base32
2c72272a 3518 "04jwwjs22mqc4hvpp4c3gpb79inrrq5sapks5khknspv2hslm61q"))))
4eca62be 3519 (build-system haskell-build-system)
2d47cee2 3520 (inputs
f54f0475 3521 `(("ghc-quickcheck" ,ghc-quickcheck)
4eca62be
EB
3522 ("ghc-random" ,ghc-random)
3523 ("ghc-syb" ,ghc-syb)))
612fddec 3524 (home-page "https://hackage.haskell.org/package/ChasingBottoms")
4eca62be
EB
3525 (synopsis "Testing of partial and infinite values in Haskell")
3526 (description
3527 ;; FIXME: There should be a @comma{} in the uref text, but it is not
3528 ;; rendered properly.
3529 "This is a library for testing code involving bottoms or infinite values.
3530For the underlying theory and a larger example involving use of QuickCheck,
3531see the article
3532@uref{http://www.cse.chalmers.se/~nad/publications/danielsson-jansson-mpc2004.html,
3533\"Chasing Bottoms A Case Study in Program Verification in the Presence of
3534Partial and Infinite Values\"}.")
3ac73271 3535 (license license:expat)))
4eca62be 3536
01a687da
FB
3537(define-public ghc-unordered-containers
3538 (package
3539 (name "ghc-unordered-containers")
426f92ba 3540 (version "0.2.7.1")
01a687da
FB
3541 (outputs '("out" "doc"))
3542 (source
3543 (origin
3544 (method url-fetch)
3545 (uri (string-append
612fddec 3546 "https://hackage.haskell.org/package/unordered-containers"
0e03d76a 3547 "/unordered-containers-" version ".tar.gz"))
01a687da
FB
3548 (sha256
3549 (base32
426f92ba 3550 "00npqiphivjp2d7ryqsdavfn4m5v3w1lq2azhdsrfh0wsvqpg4ig"))))
01a687da
FB
3551 (build-system haskell-build-system)
3552 (inputs
c3c61a78
EB
3553 `(("ghc-chasingbottoms" ,ghc-chasingbottoms)
3554 ("ghc-hunit" ,ghc-hunit)
3555 ("ghc-quickcheck" ,ghc-quickcheck)
3556 ("ghc-test-framework" ,ghc-test-framework)
3557 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
2d47cee2
RW
3558 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)
3559 ("ghc-hashable" ,ghc-hashable)))
01a687da
FB
3560 (home-page
3561 "https://github.com/tibbe/unordered-containers")
3562 (synopsis
3563 "Efficient hashing-based container types")
3564 (description
3565 "Efficient hashing-based container types. The containers have been
3566optimized for performance critical use, both in terms of large data quantities
3567and high speed.")
3ac73271 3568 (license license:bsd-3)))
01a687da 3569
10de4306
PW
3570(define-public ghc-uniplate
3571 (package
3572 (name "ghc-uniplate")
3573 (version "1.6.12")
3574 (source
3575 (origin
3576 (method url-fetch)
3577 (uri (string-append
612fddec 3578 "https://hackage.haskell.org/package/uniplate/uniplate-"
10de4306
PW
3579 version
3580 ".tar.gz"))
3581 (sha256
3582 (base32
3583 "1dx8f9aw27fz8kw0ad1nm6355w5rdl7bjvb427v2bsgnng30pipw"))))
3584 (build-system haskell-build-system)
2d47cee2 3585 (inputs
10de4306
PW
3586 `(("ghc-syb" ,ghc-syb)
3587 ("ghc-hashable" ,ghc-hashable)
3588 ("ghc-unordered-containers" ,ghc-unordered-containers)))
3589 (home-page "http://community.haskell.org/~ndm/uniplate/")
3590 (synopsis "Simple, concise and fast generic operations")
3591 (description "Uniplate is a library for writing simple and concise generic
3592operations. Uniplate has similar goals to the original Scrap Your Boilerplate
3593work, but is substantially simpler and faster.")
3ac73271 3594 (license license:bsd-3)))
10de4306 3595
3410470d
PW
3596(define-public ghc-base64-bytestring
3597 (package
3598 (name "ghc-base64-bytestring")
3599 (version "1.0.0.1")
3600 (source
3601 (origin
3602 (method url-fetch)
3603 (uri (string-append
612fddec 3604 "https://hackage.haskell.org/package/base64-bytestring/base64-bytestring-"
3410470d
PW
3605 version
3606 ".tar.gz"))
3607 (sha256
3608 (base32
3609 "0l1v4ddjdsgi9nqzyzcxxj76rwar3lzx8gmwf2r54bqan3san9db"))))
3610 (build-system haskell-build-system)
3611 (arguments `(#:tests? #f)) ; FIXME: testing libraries are missing.
3612 (home-page "https://github.com/bos/base64-bytestring")
3613 (synopsis "Base64 encoding and decoding for ByteStrings")
3614 (description "This library provides fast base64 encoding and decoding for
3615Haskell @code{ByteString}s.")
3ac73271 3616 (license license:bsd-3)))
3410470d 3617
4e125497
PW
3618(define-public ghc-annotated-wl-pprint
3619 (package
3620 (name "ghc-annotated-wl-pprint")
3621 (version "0.7.0")
3622 (source
3623 (origin
3624 (method url-fetch)
3625 (uri (string-append
612fddec 3626 "https://hackage.haskell.org/package/annotated-wl-pprint"
4e125497
PW
3627 "/annotated-wl-pprint-" version
3628 ".tar.gz"))
3629 (sha256
3630 (base32
3631 "061xfz6qany3wf95csl8dcik2pz22cn8iv1qchhm16isw5zjs9hc"))))
3632 (build-system haskell-build-system)
3633 (home-page
3634 "https://github.com/david-christiansen/annotated-wl-pprint")
3635 (synopsis
3636 "The Wadler/Leijen Pretty Printer, with annotation support")
3637 (description "This is a modified version of wl-pprint, which was based on
3638Wadler's paper \"A Prettier Printer\". This version allows the library user
3639to annotate the text with semantic information, which can later be rendered in
3640a variety of ways.")
3ac73271 3641 (license license:bsd-3)))
4e125497 3642
febf7ef6
LC
3643(define-public ghc-wl-pprint
3644 (package
3645 (name "ghc-wl-pprint")
061832f1 3646 (version "1.2.1")
febf7ef6
LC
3647 (source (origin
3648 (method url-fetch)
3649 (uri (string-append
612fddec 3650 "https://hackage.haskell.org/package/wl-pprint/wl-pprint-"
febf7ef6
LC
3651 version ".tar.gz"))
3652 (sha256
3653 (base32
061832f1 3654 "0kn7y8pdrv8f87zhd5mifcl8fy3b2zvnzmzwhdqhxxlyzwiq6z0c"))))
febf7ef6 3655 (build-system haskell-build-system)
612fddec 3656 (home-page "https://hackage.haskell.org/package/wl-pprint")
febf7ef6
LC
3657 (synopsis "Wadler/Leijen pretty printer")
3658 (description
3659 "This is a pretty printing library based on Wadler's paper @i{A Prettier
3660Printer}. This version allows the library user to declare overlapping
3661instances of the @code{Pretty} class.")
3662 (license license:bsd-3)))
3663
e9333348
PW
3664(define-public ghc-ansi-wl-pprint
3665 (package
3666 (name "ghc-ansi-wl-pprint")
05916da7 3667 (version "0.6.8.2")
e9333348
PW
3668 (source
3669 (origin
3670 (method url-fetch)
05916da7
RW
3671 (uri (string-append "https://hackage.haskell.org/package/"
3672 "ansi-wl-pprint/ansi-wl-pprint-"
3673 version ".tar.gz"))
e9333348
PW
3674 (sha256
3675 (base32
05916da7 3676 "0gnb4mkqryv08vncxnj0bzwcnd749613yw3cxfzw6y3nsldp4c56"))))
e9333348 3677 (build-system haskell-build-system)
2d47cee2 3678 (inputs
e9333348 3679 `(("ghc-ansi-terminal" ,ghc-ansi-terminal)))
612fddec 3680 (home-page "https://github.com/ekmett/ansi-wl-pprint")
e9333348
PW
3681 (synopsis "Wadler/Leijen Pretty Printer for colored ANSI terminal output")
3682 (description "This is a pretty printing library based on Wadler's paper
3683\"A Prettier Printer\". It has been enhanced with support for ANSI terminal
3684colored output using the ansi-terminal package.")
3ac73271 3685 (license license:bsd-3)))
e9333348 3686
d692228e
FB
3687(define-public ghc-split
3688 (package
3689 (name "ghc-split")
86e9076d 3690 (version "0.2.3.1")
d692228e
FB
3691 (outputs '("out" "doc"))
3692 (source
3693 (origin
3694 (method url-fetch)
3695 (uri (string-append
612fddec 3696 "https://hackage.haskell.org/package/split/split-"
d692228e
FB
3697 version
3698 ".tar.gz"))
3699 (sha256
3700 (base32
86e9076d 3701 "12660m16c6sib3laaxn6w9s453pyx1b49myrmzfij372vq5bc5bn"))))
d692228e 3702 (build-system haskell-build-system)
86e9076d 3703 (native-inputs
d692228e 3704 `(("ghc-quickcheck" ,ghc-quickcheck)))
612fddec 3705 (home-page "https://hackage.haskell.org/package/split")
565f040d
PW
3706 (synopsis "Combinator library for splitting lists")
3707 (description "This package provides a collection of Haskell functions for
3708splitting lists into parts, akin to the @code{split} function found in several
3709mainstream languages.")
3ac73271 3710 (license license:bsd-3)))
d692228e 3711
fa468e87
FB
3712(define-public ghc-parsec
3713 (package
3714 (name "ghc-parsec")
e2439904 3715 (version "3.1.11")
fa468e87
FB
3716 (outputs '("out" "doc"))
3717 (source
3718 (origin
3719 (method url-fetch)
3720 (uri (string-append
612fddec 3721 "https://hackage.haskell.org/package/parsec/parsec-"
fa468e87
FB
3722 version
3723 ".tar.gz"))
3724 (sha256
e2439904 3725 (base32 "0vk7q9j2128q191zf1sg0ylj9s9djwayqk9747k0a5fin4f2b1vg"))))
fa468e87 3726 (build-system haskell-build-system)
2d47cee2 3727 (native-inputs
fa468e87 3728 `(("ghc-hunit" ,ghc-hunit)))
2d47cee2 3729 (inputs
f54f0475 3730 `(("ghc-text" ,ghc-text)))
fa468e87
FB
3731 (arguments
3732 `(#:tests? #f)) ; FIXME: currently missing libraries used for tests.
3733 (home-page
3734 "https://github.com/aslatter/parsec")
3735 (synopsis "Monadic parser combinators")
3736 (description "Parsec is a parser library. It is simple, safe, well
3737documented, has extensive libraries, good error messages, and is fast. It is
3738defined as a monad transformer that can be stacked on arbitrary monads, and it
3739is also parametric in the input stream type.")
3ac73271 3740 (license license:bsd-3)))
fa468e87 3741
aeecabd4
RW
3742(define-public ghc-parser-combinators
3743 (package
3744 (name "ghc-parser-combinators")
e2182202 3745 (version "1.0.0")
aeecabd4
RW
3746 (source
3747 (origin
3748 (method url-fetch)
3749 (uri (string-append "https://hackage.haskell.org/package/"
3750 "parser-combinators/parser-combinators-"
3751 version ".tar.gz"))
3752 (sha256
3753 (base32
e2182202 3754 "1pwfdsklqwvaynwpdzmx1bs35mp6dpsyaqdnzxnqcrxwf5h8sk75"))))
aeecabd4
RW
3755 (build-system haskell-build-system)
3756 (home-page "https://github.com/mrkkrp/parser-combinators")
3757 (synopsis "Commonly useful parser combinators")
3758 (description
3759 "This is a lightweight package providing commonly useful parser
3760combinators.")
3761 (license license:bsd-3)))
3762
ad5de226
RW
3763(define-public ghc-megaparsec
3764 (package
3765 (name "ghc-megaparsec")
3766 (version "6.4.0")
3767 (source
3768 (origin
3769 (method url-fetch)
3770 (uri (string-append "https://hackage.haskell.org/package/"
3771 "megaparsec/megaparsec-"
3772 version ".tar.gz"))
3773 (sha256
3774 (base32
3775 "0h9azhs0dfrc359vrbd1jljrg3yfdbwd4p62cxqkn7mnh8913jpd"))))
3776 (build-system haskell-build-system)
3777 (inputs
3778 `(("ghc-case-insensitive" ,ghc-case-insensitive)
ad5de226
RW
3779 ("ghc-parser-combinators" ,ghc-parser-combinators)
3780 ("ghc-scientific" ,ghc-scientific)
3781 ("ghc-text" ,ghc-text)))
3782 (native-inputs
3783 `(("ghc-quickcheck" ,ghc-quickcheck)
3784 ("ghc-hspec" ,ghc-hspec)
3785 ("ghc-hspec-expectations" ,ghc-hspec-expectations)
3786 ("hspec-discover" ,hspec-discover)))
3787 (home-page "https://github.com/mrkkrp/megaparsec")
3788 (synopsis "Monadic parser combinators")
3789 (description
3790 "This is an industrial-strength monadic parser combinator library.
3791Megaparsec is a feature-rich package that strikes a nice balance between
3792speed, flexibility, and quality of parse errors.")
3793 (license license:bsd-2)))
3794
f50fc138
FB
3795(define-public ghc-vector
3796 (package
3797 (name "ghc-vector")
4c8a1f40 3798 (version "0.12.0.1")
f50fc138
FB
3799 (outputs '("out" "doc"))
3800 (source
3801 (origin
3802 (method url-fetch)
3803 (uri (string-append
612fddec 3804 "https://hackage.haskell.org/package/vector/vector-"
f50fc138
FB
3805 version
3806 ".tar.gz"))
3807 (sha256
3808 (base32
4c8a1f40 3809 "0yrx2ypiaxahvaz84af5bi855hd3107kxkbqc8km29nsp5wyw05i"))))
f50fc138 3810 (build-system haskell-build-system)
4c8a1f40
RW
3811 ;; FIXME: To simplify upgrading all Haskell packages, we leave the tests
3812 ;; disabled for now.
3813 (arguments `(#:tests? #f))
e881752c 3814 (inputs
2d47cee2 3815 `(("ghc-primitive" ,ghc-primitive)
4c8a1f40
RW
3816 ("ghc-random" ,ghc-random)
3817 ("ghc-quickcheck" ,ghc-quickcheck)
3818 ;; ("ghc-hunit" ,ghc-hunit)
3819 ;; ("ghc-test-framework" ,ghc-test-framework)
3820 ;; ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
3821 ;; ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)
3822 ))
f50fc138
FB
3823 (home-page "https://github.com/haskell/vector")
3824 (synopsis "Efficient Arrays")
0b61d503
PW
3825 (description "This library provides an efficient implementation of
3826Int-indexed arrays (both mutable and immutable), with a powerful loop
3827optimisation framework.")
3ac73271 3828 (license license:bsd-3)))
f50fc138 3829
576cdc5a
PW
3830(define-public ghc-vector-binary-instances
3831 (package
3832 (name "ghc-vector-binary-instances")
a7c0b95a 3833 (version "0.2.4")
576cdc5a
PW
3834 (source
3835 (origin
3836 (method url-fetch)
3837 (uri (string-append
612fddec 3838 "https://hackage.haskell.org/package/"
576cdc5a
PW
3839 "vector-binary-instances/vector-binary-instances-"
3840 version ".tar.gz"))
3841 (sha256
3842 (base32
a7c0b95a 3843 "1y236jb72iab9ska1mc48z6yb0xgwmj45laaqdyjxksd84z7hbrb"))))
576cdc5a 3844 (build-system haskell-build-system)
576cdc5a 3845 (inputs
a7c0b95a
RW
3846 `(("ghc-vector" ,ghc-vector)))
3847 (native-inputs
3848 `(("ghc-tasty" ,ghc-tasty)
3849 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
576cdc5a
PW
3850 (home-page "https://github.com/bos/vector-binary-instances")
3851 (synopsis "Instances of Data.Binary and Data.Serialize for vector")
3852 (description "This library provides instances of @code{Binary} for the
3853types defined in the @code{vector} package, making it easy to serialize
3854vectors to and from disk. We use the generic interface to vectors, so all
3855vector types are supported. Specific instances are provided for unboxed,
3856boxed and storable vectors.")
3ac73271 3857 (license license:bsd-3)))
576cdc5a 3858
4c798726
TS
3859(define-public ghc-bloomfilter
3860 (package
3861 (name "ghc-bloomfilter")
3862 (version "2.0.1.0")
3863 (source
3864 (origin
3865 (method url-fetch)
3866 (uri (string-append "https://hackage.haskell.org/package/"
3867 "bloomfilter/bloomfilter-" version ".tar.gz"))
3868 (sha256
3869 (base32
3870 "03vrmncg1c10a2wcg5skq30m1yiknn7nwxz2gblyyfaxglshspkc"))))
3871 (build-system haskell-build-system)
3872 (native-inputs
3873 `(("ghc-quickcheck" ,ghc-quickcheck)
3874 ("ghc-random" ,ghc-random)
3875 ("ghc-test-framework" ,ghc-test-framework)
3876 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
3877 (home-page "https://github.com/bos/bloomfilter")
3878 (synopsis "Pure and impure Bloom filter implementations")
3879 (description "This package provides both mutable and immutable Bloom
3880filter data types, along with a family of hash functions and an easy-to-use
3881interface.")
3882 (license license:bsd-3)))
3883
abfed253
FB
3884(define-public ghc-network
3885 (package
3886 (name "ghc-network")
2f430bf8 3887 (version "2.6.3.1")
abfed253
FB
3888 (outputs '("out" "doc"))
3889 (source
3890 (origin
3891 (method url-fetch)
3892 (uri (string-append
612fddec 3893 "https://hackage.haskell.org/package/network/network-"
abfed253
FB
3894 version
3895 ".tar.gz"))
3896 (sha256
3897 (base32
2f430bf8 3898 "1rl2gl37cf4k0ddsq93q15fwdz1l25nhl4w205krbh7d5dg5y12p"))))
abfed253 3899 (build-system haskell-build-system)
2f430bf8
RW
3900 ;; The regression tests depend on an unpublished module.
3901 (arguments `(#:tests? #f))
3902 (native-inputs
3903 `(("ghc-hunit" ,ghc-hunit)
3904 ("ghc-doctest" ,ghc-doctest)
3905 ("ghc-test-framework" ,ghc-test-framework)
3906 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)))
abfed253
FB
3907 (home-page "https://github.com/haskell/network")
3908 (synopsis "Low-level networking interface")
3909 (description
3910 "This package provides a low-level networking interface.")
3ac73271 3911 (license license:bsd-3)))
abfed253 3912
9ce031c5
FB
3913(define-public ghc-network-uri
3914 (package
3915 (name "ghc-network-uri")
29addb27 3916 (version "2.6.1.0")
9ce031c5
FB
3917 (outputs '("out" "doc"))
3918 (source
3919 (origin
3920 (method url-fetch)
3921 (uri (string-append
612fddec 3922 "https://hackage.haskell.org/package/network-uri/network-uri-"
9ce031c5
FB
3923 version
3924 ".tar.gz"))
3925 (sha256
3926 (base32
29addb27 3927 "1w27zkvn39kjr9lmw9421y8w43h572ycsfafsb7kyvr3a4ihlgj2"))))
9ce031c5 3928 (build-system haskell-build-system)
9ce031c5
FB
3929 (arguments
3930 `(#:tests? #f)) ; FIXME: currently missing libraries used for tests.
2d47cee2
RW
3931 (native-inputs
3932 `(("ghc-hunit" ,ghc-hunit)))
3933 (inputs
3934 `(("ghc-parsec" ,ghc-parsec)
3935 ("ghc-network" ,ghc-network)))
9ce031c5
FB
3936 (home-page
3937 "https://github.com/haskell/network-uri")
e881752c
AK
3938 (synopsis "Library for URI manipulation")
3939 (description "This package provides an URI manipulation interface. In
9ce031c5
FB
3940'network-2.6' the 'Network.URI' module was split off from the 'network'
3941package into this package.")
3ac73271 3942 (license license:bsd-3)))
9ce031c5 3943
cd27b23d
PW
3944(define-public ghc-ansi-terminal
3945 (package
3946 (name "ghc-ansi-terminal")
ecefe4ce 3947 (version "0.8.0.4")
cd27b23d
PW
3948 (source
3949 (origin
3950 (method url-fetch)
3951 (uri (string-append
612fddec 3952 "https://hackage.haskell.org/package/ansi-terminal/ansi-terminal-"
cd27b23d
PW
3953 version
3954 ".tar.gz"))
3955 (sha256
3956 (base32
ecefe4ce 3957 "0428gq8m3fdnb7ldcsyk97qcch76hcxbgh2666p6f76fs2qbhg7b"))))
cd27b23d 3958 (build-system haskell-build-system)
ecefe4ce
TS
3959 (inputs
3960 `(("ghc-colour" ,ghc-colour)))
cd27b23d
PW
3961 (home-page "https://github.com/feuerbach/ansi-terminal")
3962 (synopsis "ANSI terminal support for Haskell")
3963 (description "This package provides ANSI terminal support for Haskell. It
3964allows cursor movement, screen clearing, color output showing or hiding the
3965cursor, and changing the title.")
3ac73271 3966 (license license:bsd-3)))
cd27b23d 3967
6ecc4723
PW
3968(define-public ghc-vault
3969 (package
3970 (name "ghc-vault")
a25d3035 3971 (version "0.3.0.6")
6ecc4723
PW
3972 (source
3973 (origin
3974 (method url-fetch)
3975 (uri (string-append
612fddec 3976 "https://hackage.haskell.org/package/vault/vault-"
6ecc4723
PW
3977 version
3978 ".tar.gz"))
3979 (sha256
3980 (base32
a25d3035 3981 "0j7gcs440q7qlgzi2hn36crgp2c0w69k40g6vj9hxlm31zk3shqb"))))
6ecc4723 3982 (build-system haskell-build-system)
2d47cee2 3983 (inputs
6ecc4723
PW
3984 `(("ghc-unordered-containers" ,ghc-unordered-containers)
3985 ("ghc-hashable" ,ghc-hashable)))
3986 (home-page
3987 "https://github.com/HeinrichApfelmus/vault")
3988 (synopsis "Persistent store for arbitrary values")
3989 (description "This package provides vaults for Haskell. A vault is a
3990persistent store for values of arbitrary types. It's like having first-class
3991access to the storage space behind @code{IORefs}. The data structure is
3992analogous to a bank vault, where you can access different bank boxes with
3993different keys; hence the name. Also provided is a @code{locker} type,
3994representing a store for a single element.")
3ac73271 3995 (license license:bsd-3)))
6ecc4723 3996
212ae095
AV
3997(define-public ghc-edisonapi
3998 (package
3999 (name "ghc-edisonapi")
4000 (version "1.3.1")
4001 (source
4002 (origin
4003 (method url-fetch)
4004 (uri (string-append "https://hackage.haskell.org/package/EdisonAPI"
4005 "/EdisonAPI-" version ".tar.gz"))
4006 (sha256
4007 (base32 "0vmmlsj8ggbpwx6fkf5fvb6jp0zpx6iba6b28m80lllr2p8bi8wm"))))
4008 (build-system haskell-build-system)
212ae095
AV
4009 (home-page "http://rwd.rdockins.name/edison/home/")
4010 (synopsis "Library of efficient, purely-functional data structures (API)")
4011 (description
4012 "Edison is a library of purely functional data structures written by
4013Chris Okasaki. It is named after Thomas Alva Edison and for the mnemonic
4014value EDiSon (Efficient Data Structures). Edison provides several families of
4015abstractions, each with multiple implementations. The main abstractions
4016provided by Edison are: Sequences such as stacks, queues, and dequeues;
4017Collections such as sets, bags and heaps; and Associative Collections such as
4018finite maps and priority queues where the priority and element are distinct.")
4019 (license license:expat)))
4020
1eced2a7
AV
4021(define-public ghc-edisoncore
4022 (package
4023 (name "ghc-edisoncore")
4024 (version "1.3.1.1")
4025 (source
4026 (origin
4027 (method url-fetch)
4028 (uri (string-append "https://hackage.haskell.org/package/EdisonCore"
4029 "/EdisonCore-" version ".tar.gz"))
4030 (sha256
4031 (base32 "06shxmcqxcahcn6zgl64vlqix4fnq53d97drcgsh94qp7gp201ry"))))
4032 (build-system haskell-build-system)
4033 (inputs
f54f0475 4034 `(("ghc-quickcheck" ,ghc-quickcheck)
1eced2a7
AV
4035 ("ghc-edisonapi" ,ghc-edisonapi)))
4036 (home-page "http://rwd.rdockins.name/edison/home/")
e695d79d 4037 (synopsis "Library of efficient, purely-functional data structures")
1eced2a7
AV
4038 (description
4039 "This package provides the core Edison data structure implementations,
4040including multiple sequence, set, bag, and finite map concrete implementations
4041with various performance characteristics.")
4042 (license license:expat)))
4043
899916b5
PW
4044(define-public ghc-mmorph
4045 (package
4046 (name "ghc-mmorph")
8b5d1142 4047 (version "1.1.2")
899916b5
PW
4048 (source
4049 (origin
4050 (method url-fetch)
4051 (uri (string-append
612fddec 4052 "https://hackage.haskell.org/package/mmorph/mmorph-"
899916b5
PW
4053 version
4054 ".tar.gz"))
4055 (sha256
4056 (base32
8b5d1142 4057 "1gjz1ib968lqybma7my1n19qq6cdj6a7nskrlnwy4jy9jrwzs2n9"))))
899916b5 4058 (build-system haskell-build-system)
aebb8db2 4059 (inputs
f54f0475 4060 `(("ghc-transformers-compat" ,ghc-transformers-compat)))
aebb8db2 4061 (home-page "https://hackage.haskell.org/package/mmorph")
899916b5
PW
4062 (synopsis "Monad morphisms")
4063 (description
4064 "This library provides monad morphism utilities, most commonly used for
4065manipulating monad transformer stacks.")
3ac73271 4066 (license license:bsd-3)))
899916b5 4067
a39e6fae
TS
4068(define-public ghc-ifelse
4069 (package
4070 (name "ghc-ifelse")
4071 (version "0.85")
4072 (source
4073 (origin
4074 (method url-fetch)
4075 (uri (string-append "https://hackage.haskell.org/package/"
4076 "IfElse/IfElse-" version ".tar.gz"))
4077 (sha256
4078 (base32
4079 "1kfx1bwfjczj93a8yqz1n8snqiq5655qgzwv1lrycry8wb1vzlwa"))))
4080 (build-system haskell-build-system)
a39e6fae
TS
4081 (home-page "http://hackage.haskell.org/package/IfElse")
4082 (synopsis "Monadic control flow with anaphoric variants")
4083 (description "This library provides functions for control flow inside of
4084monads with anaphoric variants on @code{if} and @code{when} and a C-like
4085@code{switch} function.")
4086 (license license:bsd-3)))
4087
85160205
PW
4088(define-public ghc-monad-control
4089 (package
4090 (name "ghc-monad-control")
009d0f6d 4091 (version "1.0.1.0")
85160205
PW
4092 (source
4093 (origin
4094 (method url-fetch)
4095 (uri (string-append
612fddec 4096 "https://hackage.haskell.org/package/monad-control"
85160205
PW
4097 "/monad-control-" version ".tar.gz"))
4098 (sha256
4099 (base32
009d0f6d 4100 "1x018gi5irznx5rgzmkr2nrgh26r8cvqwkcfc6n6y05pdjf21c6l"))))
85160205 4101 (build-system haskell-build-system)
2d47cee2 4102 (inputs
85160205
PW
4103 `(("ghc-stm" ,ghc-stm)
4104 ("ghc-transformers-base" ,ghc-transformers-base)
4105 ("ghc-transformers-compat" ,ghc-transformers-compat)))
4106 (home-page "https://github.com/basvandijk/monad-control")
4107 (synopsis "Monad transformers to lift control operations like exception
4108catching")
4109 (description "This package defines the type class @code{MonadBaseControl},
4110a subset of @code{MonadBase} into which generic control operations such as
4111@code{catch} can be lifted from @code{IO} or any other base monad.")
3ac73271 4112 (license license:bsd-3)))
85160205 4113
005a08e3
AV
4114(define-public ghc-fail
4115 (package
4116 (name "ghc-fail")
4117 (version "4.9.0.0")
4118 (source
4119 (origin
4120 (method url-fetch)
4121 (uri (string-append "https://hackage.haskell.org/package/fail/fail-"
4122 version ".tar.gz"))
4123 (sha256
4124 (base32 "18nlj6xvnggy61gwbyrpmvbdkq928wv0wx2zcsljb52kbhddnp3d"))))
4125 (build-system haskell-build-system)
57184328 4126 (arguments `(#:haddock? #f)) ; Package contains no documentation.
005a08e3
AV
4127 (home-page "https://prime.haskell.org/wiki/Libraries/Proposals/MonadFail")
4128 (synopsis "Forward-compatible MonadFail class")
4129 (description
4130 "This package contains the @code{Control.Monad.Fail} module providing the
4131@uref{https://prime.haskell.org/wiki/Libraries/Proposals/MonadFail, MonadFail}
4132class that became available in
4133@uref{https://hackage.haskell.org/package/base-4.9.0.0, base-4.9.0.0} for
4134older @code{base} package versions. This package turns into an empty package
4135when used with GHC versions which already provide the
4136@code{Control.Monad.Fail} module.")
4137 (license license:bsd-3)))
4138
298af2a8
AV
4139(define-public ghc-monadplus
4140 (package
4141 (name "ghc-monadplus")
4142 (version "1.4.2")
4143 (source
4144 (origin
4145 (method url-fetch)
4146 (uri (string-append "https://hackage.haskell.org/package/monadplus"
4147 "/monadplus-" version ".tar.gz"))
4148 (sha256
4149 (base32 "15b5320wdpmdp5slpphnc1x4rhjch3igw245dp2jxbqyvchdavin"))))
4150 (build-system haskell-build-system)
4151 (home-page "https://hackage.haskell.org/package/monadplus")
4152 (synopsis "Filtering and folding over arbitrary MonadPlus instances")
4153 (description
4154 "This package generalizes many common stream operations such as
4155@code{filter}, @code{catMaybes} etc, enabling filtering and folding over
4156arbitrary @code{MonadPlus} instances.")
4157 (license license:bsd-3)))
4158
27e7c8b6
PW
4159(define-public ghc-byteorder
4160 (package
4161 (name "ghc-byteorder")
4162 (version "1.0.4")
4163 (source
4164 (origin
4165 (method url-fetch)
4166 (uri (string-append
612fddec 4167 "https://hackage.haskell.org/package/byteorder/byteorder-"
27e7c8b6
PW
4168 version
4169 ".tar.gz"))
4170 (sha256
4171 (base32
4172 "06995paxbxk8lldvarqpb3ygcjbg4v8dk4scib1rjzwlhssvn85x"))))
4173 (build-system haskell-build-system)
4174 (home-page
4175 "http://community.haskell.org/~aslatter/code/byteorder")
4176 (synopsis
4177 "Exposes the native endianness of the system")
4178 (description
4179 "This package is for working with the native byte-ordering of the
4180system.")
3ac73271 4181 (license license:bsd-3)))
27e7c8b6 4182
71470edd
PW
4183(define-public ghc-base-compat
4184 (package
4185 (name "ghc-base-compat")
90708323 4186 (version "0.9.3")
71470edd
PW
4187 (source
4188 (origin
4189 (method url-fetch)
4190 (uri (string-append
612fddec 4191 "https://hackage.haskell.org/package/base-compat/base-compat-"
71470edd
PW
4192 version
4193 ".tar.gz"))
4194 (sha256
4195 (base32
90708323 4196 "0452l6zf6fjhy4kxqwv6i6hhg6yfx4wcg450k3axpyj30l7jnq3x"))))
71470edd 4197 (build-system haskell-build-system)
2d47cee2 4198 (native-inputs
71470edd 4199 `(("ghc-quickcheck" ,ghc-quickcheck)
2d47cee2
RW
4200 ("ghc-hspec" ,ghc-hspec)
4201 ("hspec-discover" ,hspec-discover)))
71470edd
PW
4202 (home-page "https://hackage.haskell.org/package/base-compat")
4203 (synopsis "Haskell compiler compatibility library")
4204 (description "This library provides functions available in later versions
4205of base to a wider range of compilers, without requiring the use of CPP
4206pragmas in your code.")
3ac73271 4207 (license license:bsd-3)))
71470edd 4208
94e1dc7a
PW
4209(define-public ghc-blaze-builder
4210 (package
4211 (name "ghc-blaze-builder")
3f691f71 4212 (version "0.4.0.2")
94e1dc7a
PW
4213 (source
4214 (origin
4215 (method url-fetch)
4216 (uri (string-append
612fddec 4217 "https://hackage.haskell.org/package/blaze-builder/blaze-builder-"
94e1dc7a
PW
4218 version
4219 ".tar.gz"))
4220 (sha256
4221 (base32
3f691f71 4222 "1m33y6p5xldni8p4fzg8fmsyqvkfmnimdamr1xjnsmgm3dkf9lws"))))
94e1dc7a
PW
4223 (build-system haskell-build-system)
4224 (arguments `(#:tests? #f)) ; FIXME: Missing test libraries.
2d47cee2 4225 (inputs
94e1dc7a
PW
4226 `(("ghc-text" ,ghc-text)
4227 ("ghc-utf8-string" ,ghc-utf8-string)))
612fddec 4228 (home-page "https://github.com/lpsmith/blaze-builder")
94e1dc7a
PW
4229 (synopsis "Efficient buffered output")
4230 (description "This library provides an implementation of the older
4231@code{blaze-builder} interface in terms of the new builder that shipped with
4232@code{bytestring-0.10.4.0}. This implementation is mostly intended as a
4233bridge to the new builder, so that code that uses the old interface can
4234interoperate with code that uses the new implementation.")
3ac73271 4235 (license license:bsd-3)))
94e1dc7a 4236
a311f5d0
PW
4237(define-public ghc-blaze-markup
4238 (package
4239 (name "ghc-blaze-markup")
969d0c64 4240 (version "0.8.2.0")
a311f5d0
PW
4241 (source
4242 (origin
4243 (method url-fetch)
969d0c64
RW
4244 (uri (string-append "https://hackage.haskell.org/package/"
4245 "blaze-markup/blaze-markup-"
4246 version ".tar.gz"))
a311f5d0
PW
4247 (sha256
4248 (base32
969d0c64 4249 "0m3h3ryxj5r74mv5g5dnfq5jbbwmvkl7ray18vi20d5vd93sydj4"))))
a311f5d0 4250 (build-system haskell-build-system)
2d47cee2 4251 (inputs
a311f5d0
PW
4252 `(("ghc-blaze-builder" ,ghc-blaze-builder)
4253 ("ghc-text" ,ghc-text)))
969d0c64
RW
4254 (native-inputs
4255 `(("ghc-hunit" ,ghc-hunit)
4256 ("ghc-quickcheck" ,ghc-quickcheck)
4257 ("ghc-tasty" ,ghc-tasty)
4258 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
4259 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
98b90194 4260 (home-page "https://jaspervdj.be/blaze")
a311f5d0
PW
4261 (synopsis "Fast markup combinator library for Haskell")
4262 (description "This library provides core modules of a markup combinator
4263library for Haskell.")
3ac73271 4264 (license license:bsd-3)))
a311f5d0 4265
9525e25f
PW
4266(define-public ghc-easy-file
4267 (package
4268 (name "ghc-easy-file")
7d887a2c 4269 (version "0.2.2")
9525e25f
PW
4270 (source
4271 (origin
4272 (method url-fetch)
4273 (uri (string-append
612fddec 4274 "https://hackage.haskell.org/package/easy-file/easy-file-"
9525e25f
PW
4275 version
4276 ".tar.gz"))
4277 (sha256
4278 (base32
7d887a2c 4279 "0zmlcz723051qpn8l8vi51c5rx1blwrw4094jcshkmj8p9r2xxaj"))))
9525e25f
PW
4280 (build-system haskell-build-system)
4281 (home-page
612fddec 4282 "https://github.com/kazu-yamamoto/easy-file")
9525e25f
PW
4283 (synopsis "File handling library for Haskell")
4284 (description "This library provides file handling utilities for Haskell.")
3ac73271 4285 (license license:bsd-3)))
9525e25f 4286
e2fcaff2
PW
4287(define-public ghc-async
4288 (package
4289 (name "ghc-async")
1740cb77 4290 (version "2.1.1.1")
e2fcaff2
PW
4291 (source
4292 (origin
4293 (method url-fetch)
4294 (uri (string-append
612fddec 4295 "https://hackage.haskell.org/package/async/async-"
e2fcaff2
PW
4296 version
4297 ".tar.gz"))
4298 (sha256
4299 (base32
1740cb77 4300 "1qj4fp1ynwg0l453gmm27vgkzb5k5m2hzdlg5rdqi9kf8rqy90yd"))))
e2fcaff2 4301 (build-system haskell-build-system)
e1c1b71c 4302 (inputs
2d47cee2
RW
4303 `(("ghc-stm" ,ghc-stm)
4304 ("ghc-hunit" ,ghc-hunit)
e1c1b71c
EB
4305 ("ghc-test-framework" ,ghc-test-framework)
4306 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)))
e2fcaff2
PW
4307 (home-page "https://github.com/simonmar/async")
4308 (synopsis "Library to run IO operations asynchronously")
4309 (description "Async provides a library to run IO operations
554093b7 4310asynchronously, and wait for their results. It is a higher-level interface
e2fcaff2
PW
4311over threads in Haskell, in which @code{Async a} is a concurrent thread that
4312will eventually deliver a value of type @code{a}.")
3ac73271 4313 (license license:bsd-3)))
e2fcaff2 4314
49465144
PW
4315(define-public ghc-fingertree
4316 (package
4317 (name "ghc-fingertree")
35deff72 4318 (version "0.1.3.0")
49465144
PW
4319 (source
4320 (origin
4321 (method url-fetch)
4322 (uri (string-append
612fddec 4323 "https://hackage.haskell.org/package/fingertree/fingertree-"
35deff72 4324 version ".tar.gz"))
49465144
PW
4325 (sha256
4326 (base32
35deff72 4327 "1ryjj7qrx70ckcjlr02x9zh86kfp76azbxq05r7hawqkaqg44sfs"))))
49465144 4328 (build-system haskell-build-system)
ffe8c06e
TGR
4329 (native-inputs
4330 `(("ghc-hunit" ,ghc-hunit)
4331 ("ghc-quickcheck" ,ghc-quickcheck)
4332 ("ghc-test-framework" ,ghc-test-framework)
4333 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
4334 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
612fddec 4335 (home-page "https://hackage.haskell.org/package/fingertree")
49465144
PW
4336 (synopsis "Generic finger-tree structure")
4337 (description "This library provides finger trees, a general sequence
4338representation with arbitrary annotations, for use as a base for
4339implementations of various collection types. It includes examples, as
4340described in section 4 of Ralf Hinze and Ross Paterson, \"Finger trees: a
4341simple general-purpose data structure\".")
3ac73271 4342 (license license:bsd-3)))
49465144 4343
918f690a
PW
4344(define-public ghc-optparse-applicative
4345 (package
4346 (name "ghc-optparse-applicative")
3c300542 4347 (version "0.14.2.0")
918f690a
PW
4348 (source
4349 (origin
4350 (method url-fetch)
4351 (uri (string-append
612fddec 4352 "https://hackage.haskell.org/package/optparse-applicative"
918f690a
PW
4353 "/optparse-applicative-" version ".tar.gz"))
4354 (sha256
4355 (base32
3c300542
AI
4356 "0c3z1mvynlyv1garjbdmdd3npm40dabgm75js4r07cf766c1wd71"))))
4357 (build-system haskell-build-system)
2d47cee2 4358 (inputs
918f690a
PW
4359 `(("ghc-transformers-compat" ,ghc-transformers-compat)
4360 ("ghc-ansi-wl-pprint" ,ghc-ansi-wl-pprint)))
7c86efe7
RW
4361 (native-inputs
4362 `(("ghc-quickcheck" ,ghc-quickcheck)))
918f690a
PW
4363 (home-page "https://github.com/pcapriotti/optparse-applicative")
4364 (synopsis "Utilities and combinators for parsing command line options")
4365 (description "This package provides utilities and combinators for parsing
4366command line options in Haskell.")
3ac73271 4367 (license license:bsd-3)))
918f690a 4368
09fb622c
PW
4369(define-public ghc-base-orphans
4370 (package
4371 (name "ghc-base-orphans")
8184b0f9 4372 (version "0.6")
09fb622c
PW
4373 (source
4374 (origin
4375 (method url-fetch)
4376 (uri (string-append
612fddec 4377 "https://hackage.haskell.org/package/base-orphans/base-orphans-"
09fb622c
PW
4378 version
4379 ".tar.gz"))
4380 (sha256
4381 (base32
8184b0f9 4382 "03mdww5j0gwai7aqlx3m71ldmjcr99jzpkcclzjfclk6a6kjla67"))))
09fb622c 4383 (build-system haskell-build-system)
2d47cee2 4384 (native-inputs
09fb622c 4385 `(("ghc-quickcheck" ,ghc-quickcheck)
2d47cee2
RW
4386 ("ghc-hspec" ,ghc-hspec)
4387 ("hspec-discover" ,hspec-discover)))
09fb622c
PW
4388 (home-page "https://hackage.haskell.org/package/base-orphans")
4389 (synopsis "Orphan instances for backwards compatibility")
4390 (description "This package defines orphan instances that mimic instances
4391available in later versions of base to a wider (older) range of compilers.")
3ac73271 4392 (license license:bsd-3)))
09fb622c 4393
bc0fb230
PW
4394(define-public ghc-auto-update
4395 (package
4396 (name "ghc-auto-update")
a8e5513c 4397 (version "0.1.4")
bc0fb230
PW
4398 (source
4399 (origin
4400 (method url-fetch)
4401 (uri (string-append
612fddec 4402 "https://hackage.haskell.org/package/auto-update/auto-update-"
bc0fb230
PW
4403 version
4404 ".tar.gz"))
4405 (sha256
4406 (base32
a8e5513c 4407 "09dlh2alsx2mw5kvj931yhbj0aw7jmly2cm9xbscm2sf098w35jy"))))
bc0fb230
PW
4408 (build-system haskell-build-system)
4409 (home-page "https://github.com/yesodweb/wai")
4410 (synopsis "Efficiently run periodic, on-demand actions")
4411 (description "This library provides mechanisms to efficiently run
4412periodic, on-demand actions in Haskell.")
3ac73271 4413 (license license:expat)))
bc0fb230 4414
7f0d5857
PW
4415(define-public ghc-tagged
4416 (package
4417 (name "ghc-tagged")
93303a3a 4418 (version "0.8.5")
7f0d5857
PW
4419 (source
4420 (origin
4421 (method url-fetch)
4422 (uri (string-append
612fddec 4423 "https://hackage.haskell.org/package/tagged/tagged-"
7f0d5857
PW
4424 version
4425 ".tar.gz"))
4426 (sha256
4427 (base32
93303a3a 4428 "16cdzh0bw16nvjnyyy5j9s60malhz4nnazw96vxb0xzdap4m2z74"))))
7f0d5857 4429 (build-system haskell-build-system)
70ee3228
TS
4430 (arguments
4431 `(#:cabal-revision
4432 ("2" "0r2knfcq0b4s652vlvlnfwxlc2mkc2ra9kl8bp4zdn1awmfy0ia5")))
93303a3a
RW
4433 (inputs
4434 `(("ghc-transformers-compat" ,ghc-transformers-compat)))
7f0d5857
PW
4435 (home-page "https://hackage.haskell.org/package/tagged")
4436 (synopsis "Haskell phantom types to avoid passing dummy arguments")
4437 (description "This library provides phantom types for Haskell 98, to avoid
4438having to unsafely pass dummy arguments.")
3ac73271 4439 (license license:bsd-3)))
7f0d5857 4440
a24ec6f2
PW
4441(define-public ghc-unbounded-delays
4442 (package
4443 (name "ghc-unbounded-delays")
58c102e0 4444 (version "0.1.1.0")
a24ec6f2
PW
4445 (source
4446 (origin
4447 (method url-fetch)
4448 (uri (string-append
612fddec 4449 "https://hackage.haskell.org/package/unbounded-delays/unbounded-delays-"
a24ec6f2
PW
4450 version
4451 ".tar.gz"))
4452 (sha256
4453 (base32
58c102e0 4454 "1ir9fghbrc214c97bwafk5ck6cacxz1pdnq4i18p604d1b8zg9wa"))))
a24ec6f2
PW
4455 (build-system haskell-build-system)
4456 (home-page "https://github.com/basvandijk/unbounded-delays")
4457 (synopsis "Unbounded thread delays and timeouts")
4458 (description "The @code{threadDelay} and @code{timeout} functions from the
4459Haskell base library use the bounded @code{Int} type for specifying the delay
4460or timeout period. This package provides alternative functions which use the
4461unbounded @code{Integer} type.")
3ac73271 4462 (license license:bsd-3)))
a24ec6f2 4463
f4e5c04e
PW
4464(define-public ghc-clock
4465 (package
4466 (name "ghc-clock")
615abb95 4467 (version "0.7.2")
f4e5c04e
PW
4468 (source
4469 (origin
4470 (method url-fetch)
4471 (uri (string-append
612fddec 4472 "https://hackage.haskell.org/package/"
f4e5c04e
PW
4473 "clock/"
4474 "clock-" version ".tar.gz"))
4475 (sha256
615abb95 4476 (base32 "07v91s20halsqjmziqb1sqjp2sjpckl9by7y28aaklwqi2bh2rl8"))))
f4e5c04e
PW
4477 (build-system haskell-build-system)
4478 (inputs
4479 `(("ghc-tasty" ,ghc-tasty)
4480 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
4481 (home-page "https://hackage.haskell.org/package/clock")
3f2ce1dc
PW
4482 (synopsis "High-resolution clock for Haskell")
4483 (description "A package for convenient access to high-resolution clock and
4484timer functions of different operating systems via a unified API.")
3ac73271 4485 (license license:bsd-3)))
3f2ce1dc 4486
6ffc5be7
PW
4487(define-public ghc-charset
4488 (package
4489 (name "ghc-charset")
4490 (version "0.3.7.1")
4491 (source
4492 (origin
4493 (method url-fetch)
4494 (uri (string-append
612fddec 4495 "https://hackage.haskell.org/package/charset/charset-"
6ffc5be7
PW
4496 version
4497 ".tar.gz"))
4498 (sha256
4499 (base32
4500 "1gn0m96qpjww8hpp2g1as5yy0wcwy4iq73h3kz6g0yxxhcl5sh9x"))))
4501 (build-system haskell-build-system)
6ffc5be7 4502 (inputs
2d47cee2
RW
4503 `(("ghc-semigroups" ,ghc-semigroups)
4504 ("ghc-unordered-containers" ,ghc-unordered-containers)))
612fddec 4505 (home-page "https://github.com/ekmett/charset")
6ffc5be7
PW
4506 (synopsis "Fast unicode character sets for Haskell")
4507 (description "This package provides fast unicode character sets for
4508Haskell, based on complemented PATRICIA tries.")
3ac73271 4509 (license license:bsd-3)))
6ffc5be7 4510
d76bf618
PW
4511(define-public ghc-bytestring-builder
4512 (package
4513 (name "ghc-bytestring-builder")
934dc8d2 4514 (version "0.10.8.1.0")
d76bf618
PW
4515 (source
4516 (origin
4517 (method url-fetch)
4518 (uri (string-append
612fddec 4519 "https://hackage.haskell.org/package/bytestring-builder"
d76bf618
PW
4520 "/bytestring-builder-" version ".tar.gz"))
4521 (sha256
4522 (base32
934dc8d2 4523 "1hnvjac28y44yn78c9vdp1zvrknvlw98ky3g4n5vivr16rvh8x3d"))))
d76bf618
PW
4524 (build-system haskell-build-system)
4525 (arguments `(#:haddock? #f)) ; Package contains no documentation.
612fddec 4526 (home-page "https://hackage.haskell.org/package/bytestring-builder")
d76bf618
PW
4527 (synopsis "The new bytestring builder, packaged outside of GHC")
4528 (description "This package provides the bytestring builder that is
4529debuting in bytestring-0.10.4.0, which should be shipping with GHC 7.8.
4530Compatibility package for older packages.")
3ac73271 4531 (license license:bsd-3)))
d76bf618 4532
878535bd
PW
4533(define-public ghc-nats
4534 (package
4535 (name "ghc-nats")
0798fddf 4536 (version "1.1.1")
878535bd
PW
4537 (source
4538 (origin
4539 (method url-fetch)
4540 (uri (string-append
612fddec 4541 "https://hackage.haskell.org/package/nats/nats-"
878535bd
PW
4542 version
4543 ".tar.gz"))
4544 (sha256
4545 (base32
0798fddf 4546 "1kfl2yy97nb7q0j17v96rl73xvi3z4db9bk0xychc76dax41n78k"))))
878535bd
PW
4547 (build-system haskell-build-system)
4548 (arguments `(#:haddock? #f))
4549 (inputs
4550 `(("ghc-hashable" ,ghc-hashable)))
4551 (home-page "https://hackage.haskell.org/package/nats")
4552 (synopsis "Natural numbers")
4553 (description "This library provides the natural numbers for Haskell.")
3ac73271 4554 (license license:bsd-3)))
878535bd 4555
03f6074b
PW
4556(define-public ghc-void
4557 (package
4558 (name "ghc-void")
4559 (version "0.7.1")
4560 (source
4561 (origin
4562 (method url-fetch)
4563 (uri (string-append
612fddec 4564 "https://hackage.haskell.org/package/void/void-"
03f6074b
PW
4565 version
4566 ".tar.gz"))
4567 (sha256
4568 (base32
4569 "1x15x2axz84ndw2bf60vjqljhrb0w95lddaljsxrl0hcd29zvw69"))))
4570 (build-system haskell-build-system)
03f6074b 4571 (inputs
2d47cee2
RW
4572 `(("ghc-semigroups" ,ghc-semigroups)
4573 ("ghc-hashable" ,ghc-hashable)))
612fddec 4574 (home-page "https://github.com/ekmett/void")
03f6074b
PW
4575 (synopsis
4576 "Logically uninhabited data type")
4577 (description
4578 "A Haskell 98 logically uninhabited data type, used to indicate that a
4579given term should not exist.")
3ac73271 4580 (license license:bsd-3)))
03f6074b 4581
5125f63f
PW
4582(define-public ghc-kan-extensions
4583 (package
4584 (name "ghc-kan-extensions")
88da6cdb 4585 (version "5.0.1")
5125f63f
PW
4586 (source
4587 (origin
4588 (method url-fetch)
4589 (uri (string-append
612fddec 4590 "https://hackage.haskell.org/package/kan-extensions/kan-extensions-"
5125f63f
PW
4591 version
4592 ".tar.gz"))
4593 (sha256
4594 (base32
88da6cdb 4595 "1qm0kf4krmyjbjynn96ab0h3q117vwcia5nin7n2b8b4f3jrzph1"))))
5125f63f 4596 (build-system haskell-build-system)
5125f63f 4597 (inputs
2d47cee2
RW
4598 `(("ghc-adjunctions" ,ghc-adjunctions)
4599 ("ghc-comonad" ,ghc-comonad)
5125f63f
PW
4600 ("ghc-contravariant" ,ghc-contravariant)
4601 ("ghc-distributive" ,ghc-distributive)
4602 ("ghc-free" ,ghc-free)
5125f63f
PW
4603 ("ghc-semigroupoids" ,ghc-semigroupoids)
4604 ("ghc-tagged" ,ghc-tagged)))
612fddec 4605 (home-page "https://github.com/ekmett/kan-extensions/")
5125f63f
PW
4606 (synopsis "Kan extensions library")
4607 (description "This library provides Kan extensions, Kan lifts, various
4608forms of the Yoneda lemma, and (co)density (co)monads for Haskell.")
3ac73271 4609 (license license:bsd-3)))
5125f63f 4610
32ddba78
RW
4611(define-public ghc-call-stack
4612 (package
4613 (name "ghc-call-stack")
4614 (version "0.1.0")
4615 (source
4616 (origin
4617 (method url-fetch)
4618 (uri (string-append "https://hackage.haskell.org/package/"
4619 "call-stack/call-stack-"
4620 version ".tar.gz"))
4621 (sha256
4622 (base32
4623 "1qmihf5jafmc79sk52l6gpx75f5bnla2lp62kh3p34x3j84mwpzj"))))
4624 (build-system haskell-build-system)
4625 (inputs `(("ghc-nanospec" ,ghc-nanospec)))
4626 (home-page "https://github.com/sol/call-stack#readme")
4627 (synopsis "Use GHC call-stacks in a backward compatible way")
4628 (description "This package provides a compatibility layer for using GHC
4629call stacks with different versions of the compiler.")
4630 (license license:expat)))
4631
e42e9024
RW
4632;; This is used as an input to ghc-hunit. We cannot use ghc-call-stack there,
4633;; because it depends on ghc-nanospec, which depends on ghc-hunit.
4634(define-public ghc-call-stack-boot
4635 (package
4636 (inherit ghc-call-stack)
4637 (arguments '(#:tests? #f))
4638 (inputs '())))
4639
f271524a
PW
4640(define-public ghc-statevar
4641 (package
4642 (name "ghc-statevar")
c9fa2a28 4643 (version "1.1.1.1")
f271524a
PW
4644 (source
4645 (origin
4646 (method url-fetch)
4647 (uri (string-append
612fddec 4648 "https://hackage.haskell.org/package/StateVar/StateVar-"
f271524a
PW
4649 version
4650 ".tar.gz"))
4651 (sha256
4652 (base32
c9fa2a28 4653 "08r2iw0gdmfs4f6wraaq19vfmkjdbics3dbhw39y7mdjd98kcr7b"))))
f271524a 4654 (build-system haskell-build-system)
2d47cee2 4655 (inputs
f271524a 4656 `(("ghc-stm" ,ghc-stm)))
612fddec 4657 (home-page "https://hackage.haskell.org/package/StateVar")
f271524a
PW
4658 (synopsis "State variables for Haskell")
4659 (description "This package provides state variables, which are references
4660in the @code{IO} monad, like @code{IORef}s or parts of the OpenGL state.")
3ac73271 4661 (license license:bsd-3)))
f271524a 4662
e1a35c39
PW
4663(define-public ghc-lens
4664 (package
4665 (name "ghc-lens")
38646a62 4666 (version "4.15.4")
e1a35c39
PW
4667 (source
4668 (origin
4669 (method url-fetch)
38646a62
RW
4670 (uri (string-append "https://hackage.haskell.org/package/lens/lens-"
4671 version ".tar.gz"))
e1a35c39
PW
4672 (sha256
4673 (base32
38646a62 4674 "1lkwlnhgpgnsz046mw4qs0fa7h4l012gilrr3nf3spllsy3pnbkl"))))
e1a35c39 4675 (build-system haskell-build-system)
2d47cee2 4676 (inputs
e1a35c39
PW
4677 `(("ghc-base-orphans" ,ghc-base-orphans)
4678 ("ghc-bifunctors" ,ghc-bifunctors)
38646a62 4679 ("ghc-doctest" ,ghc-doctest-0.13)
e1a35c39
PW
4680 ("ghc-distributive" ,ghc-distributive)
4681 ("ghc-exceptions" ,ghc-exceptions)
4682 ("ghc-free" ,ghc-free)
4683 ("ghc-kan-extensions" ,ghc-kan-extensions)
4684 ("ghc-parallel" ,ghc-parallel)
4685 ("ghc-reflection" ,ghc-reflection)
4686 ("ghc-semigroupoids" ,ghc-semigroupoids)
2d47cee2 4687 ("ghc-vector" ,ghc-vector)
38646a62 4688 ("ghc-call-stack" ,ghc-call-stack)
2d47cee2 4689 ("ghc-comonad" ,ghc-comonad)
e1a35c39
PW
4690 ("ghc-contravariant" ,ghc-contravariant)
4691 ("ghc-hashable" ,ghc-hashable)
e1a35c39
PW
4692 ("ghc-profunctors" ,ghc-profunctors)
4693 ("ghc-semigroups" ,ghc-semigroups)
4694 ("ghc-tagged" ,ghc-tagged)
4695 ("ghc-text" ,ghc-text)
4696 ("ghc-transformers-compat" ,ghc-transformers-compat)
4697 ("ghc-unordered-containers" ,ghc-unordered-containers)
4698 ("ghc-void" ,ghc-void)
4699 ("ghc-generic-deriving" ,ghc-generic-deriving)
4700 ("ghc-nats" ,ghc-nats)
4701 ("ghc-simple-reflect" ,ghc-simple-reflect)
4702 ("hlint" ,hlint)))
38646a62
RW
4703 (native-inputs
4704 `(("cabal-doctest" ,cabal-doctest)
4705 ("ghc-hunit" ,ghc-hunit)
4706 ("ghc-test-framework" ,ghc-test-framework)
4707 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
4708 ("ghc-test-framework-th" ,ghc-test-framework-th)
4709 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)
4710 ("ghc-quickcheck" ,ghc-quickcheck)))
612fddec 4711 (home-page "https://github.com/ekmett/lens/")
e1a35c39
PW
4712 (synopsis "Lenses, Folds and Traversals")
4713 (description "This library provides @code{Control.Lens}. The combinators
4714in @code{Control.Lens} provide a highly generic toolbox for composing families
4715of getters, folds, isomorphisms, traversals, setters and lenses and their
4716indexed variants.")
3ac73271 4717 (license license:bsd-3)))
e1a35c39 4718
d7e67cf1
PW
4719(define-public ghc-cheapskate
4720 (package
4721 (name "ghc-cheapskate")
e1358124 4722 (version "0.1.1")
d7e67cf1
PW
4723 (source
4724 (origin
4725 (method url-fetch)
4726 (uri (string-append
612fddec 4727 "https://hackage.haskell.org/package/cheapskate/cheapskate-"
d7e67cf1
PW
4728 version
4729 ".tar.gz"))
4730 (sha256
4731 (base32
e1358124 4732 "1hiqi7h76shjzs2zj0j8g6wnq2hbiq1hmfafdazr97fba2zl2432"))))
d7e67cf1 4733 (build-system haskell-build-system)
d7e67cf1 4734 (inputs
f54f0475 4735 `(("ghc-text" ,ghc-text)
751de3d6 4736 ("ghc-blaze-html" ,ghc-blaze-html)
e1358124 4737 ("ghc-xss-sanitize" ,ghc-xss-sanitize)
2d47cee2 4738 ("ghc-data-default" ,ghc-data-default)
d7e67cf1 4739 ("ghc-syb" ,ghc-syb)
e1358124 4740 ("ghc-uniplate" ,ghc-uniplate)))
612fddec 4741 (home-page "https://github.com/jgm/cheapskate")
d7e67cf1
PW
4742 (synopsis "Experimental markdown processor")
4743 (description "Cheapskate is an experimental Markdown processor in pure
4744Haskell. It aims to process Markdown efficiently and in the most forgiving
4745possible way. It is designed to deal with any input, including garbage, with
4d9cdf3c
TGR
4746linear performance. Output is sanitized by default for protection against
4747cross-site scripting (@dfn{XSS}) attacks.")
3ac73271 4748 (license license:bsd-3)))
d7e67cf1 4749
4f997551
PW
4750(define-public ghc-bifunctors
4751 (package
4752 (name "ghc-bifunctors")
7044882c 4753 (version "5.5.2")
4f997551
PW
4754 (source
4755 (origin
4756 (method url-fetch)
4757 (uri (string-append
612fddec 4758 "https://hackage.haskell.org/package/bifunctors/bifunctors-"
4f997551
PW
4759 version
4760 ".tar.gz"))
4761 (sha256
4762 (base32
7044882c 4763 "04fbsysm6zl8kmvqgffmrqa9bxl9dl2gibrd51asqzg737mb4ark"))))
4f997551
PW
4764 (build-system haskell-build-system)
4765 (inputs
7044882c
RW
4766 `(("ghc-base-orphans" ,ghc-base-orphans)
4767 ("ghc-comonad" ,ghc-comonad)
4768 ("ghc-th-abstraction" ,ghc-th-abstraction)
4769 ("ghc-transformers-compat" ,ghc-transformers-compat)
4770 ("ghc-tagged" ,ghc-tagged)
4f997551 4771 ("ghc-semigroups" ,ghc-semigroups)))
7044882c
RW
4772 (native-inputs
4773 `(("ghc-hspec" ,ghc-hspec)
4774 ("hspec-discover" ,hspec-discover)
4775 ("ghc-quickcheck" ,ghc-quickcheck)))
612fddec 4776 (home-page "https://github.com/ekmett/bifunctors/")
4f997551
PW
4777 (synopsis "Bifunctors for Haskell")
4778 (description "This package provides bifunctors for Haskell.")
3ac73271 4779 (license license:bsd-3)))
4f997551 4780
aee98223
PW
4781(define-public ghc-semigroupoids
4782 (package
4783 (name "ghc-semigroupoids")
416092e7 4784 (version "5.1")
aee98223
PW
4785 (source
4786 (origin
4787 (method url-fetch)
4788 (uri (string-append
612fddec 4789 "https://hackage.haskell.org/package/semigroupoids/semigroupoids-"
aee98223
PW
4790 version
4791 ".tar.gz"))
4792 (sha256
4793 (base32
416092e7 4794 "0dgqc59p4xx5cl8qkpm6sn4wd3n59rq7l6din76hf10bnklqrb0n"))))
aee98223 4795 (build-system haskell-build-system)
2d47cee2
RW
4796 (arguments `(#:tests? #f)) ; FIXME: doctest packagedb propagation problem.
4797 (inputs
aee98223
PW
4798 `(("ghc-base-orphans" ,ghc-base-orphans)
4799 ("ghc-transformers-compat" ,ghc-transformers-compat)
4800 ("ghc-bifunctors" ,ghc-bifunctors)
4801 ("ghc-comonad" ,ghc-comonad)
4802 ("ghc-contravariant" ,ghc-contravariant)
2d47cee2
RW
4803 ("ghc-distributive" ,ghc-distributive)
4804 ("ghc-semigroups" ,ghc-semigroups)
aee98223 4805 ("ghc-tagged" ,ghc-tagged)))
612fddec 4806 (home-page "https://github.com/ekmett/semigroupoids")
aee98223
PW
4807 (synopsis "Semigroupoids operations for Haskell")
4808 (description "This library provides a wide array of (semi)groupoids and
4809operations for working with them. A @code{Semigroupoid} is a @code{Category}
4810without the requirement of identity arrows for every object in the category.
4811A @code{Category} is any @code{Semigroupoid} for which the Yoneda lemma holds.
4812Finally, to work with these weaker structures it is beneficial to have
4813containers that can provide stronger guarantees about their contents, so
4814versions of @code{Traversable} and @code{Foldable} that can be folded with
4815just a @code{Semigroup} are added.")
3ac73271 4816 (license license:bsd-3)))
aee98223 4817
624efe73
PW
4818(define-public ghc-contravariant
4819 (package
4820 (name "ghc-contravariant")
ab880e6e 4821 (version "1.4")
624efe73
PW
4822 (source
4823 (origin
4824 (method url-fetch)
4825 (uri (string-append
612fddec 4826 "https://hackage.haskell.org/package/contravariant/contravariant-"
624efe73
PW
4827 version
4828 ".tar.gz"))
4829 (sha256
4830 (base32
ab880e6e 4831 "117fff8kkrvlmr8cb2jpj71z7lf2pdiyks6ilyx89mry6zqnsrp1"))))
624efe73 4832 (build-system haskell-build-system)
2d47cee2 4833 (inputs
624efe73
PW
4834 `(("ghc-void" ,ghc-void)
4835 ("ghc-transformers-compat" ,ghc-transformers-compat)
2d47cee2
RW
4836 ("ghc-statevar" ,ghc-statevar)
4837 ("ghc-semigroups" ,ghc-semigroups)))
624efe73 4838 (home-page
612fddec 4839 "https://github.com/ekmett/contravariant/")
624efe73
PW
4840 (synopsis "Contravariant functors")
4841 (description "Contravariant functors for Haskell.")
3ac73271 4842 (license license:bsd-3)))
624efe73 4843
946fa8c9
PW
4844(define-public ghc-semigroups
4845 (package
4846 (name "ghc-semigroups")
35c99a1f 4847 (version "0.18.2")
946fa8c9
PW
4848 (source
4849 (origin
4850 (method url-fetch)
4851 (uri (string-append
612fddec 4852 "https://hackage.haskell.org/package/semigroups/semigroups-"
946fa8c9
PW
4853 version
4854 ".tar.gz"))
4855 (sha256
4856 (base32
35c99a1f 4857 "1r6hsn3am3dpf4rprrj4m04d9318v9iq02bin0pl29dg4a3gzjax"))))
946fa8c9 4858 (build-system haskell-build-system)
2d47cee2 4859 (inputs
946fa8c9
PW
4860 `(("ghc-nats" ,ghc-nats)
4861 ("ghc-tagged" ,ghc-tagged)
2d47cee2
RW
4862 ("ghc-unordered-containers" ,ghc-unordered-containers)
4863 ("ghc-text" ,ghc-text)
946fa8c9 4864 ("ghc-hashable" ,ghc-hashable)))
612fddec 4865 (home-page "https://github.com/ekmett/semigroups/")
946fa8c9
PW
4866 (synopsis "Semigroup operations for Haskell")
4867 (description "This package provides semigroups for Haskell. In
4868mathematics, a semigroup is an algebraic structure consisting of a set
4869together with an associative binary operation. A semigroup generalizes a
4870monoid in that there might not exist an identity element. It
4871also (originally) generalized a group (a monoid with all inverses) to a type
4872where every element did not have to have an inverse, thus the name
4873semigroup.")
3ac73271 4874 (license license:bsd-3)))
946fa8c9 4875
dc2e8ab7
PW
4876(define-public ghc-free
4877 (package
4878 (name "ghc-free")
c18f82db 4879 (version "4.12.4")
dc2e8ab7
PW
4880 (source
4881 (origin
4882 (method url-fetch)
4883 (uri (string-append
612fddec 4884 "https://hackage.haskell.org/package/free/free-"
dc2e8ab7
PW
4885 version
4886 ".tar.gz"))
4887 (sha256
4888 (base32
c18f82db 4889 "1147s393442xf4gkpbq0rd1p286vmykgx85mxhk5d1c7wfm4bzn9"))))
dc2e8ab7 4890 (build-system haskell-build-system)
2d47cee2 4891 (inputs
dc2e8ab7
PW
4892 `(("ghc-prelude-extras" ,ghc-prelude-extras)
4893 ("ghc-profunctors" ,ghc-profunctors)
2d47cee2
RW
4894 ("ghc-exceptions" ,ghc-exceptions)
4895 ("ghc-bifunctors" ,ghc-bifunctors)
dc2e8ab7
PW
4896 ("ghc-comonad" ,ghc-comonad)
4897 ("ghc-distributive" ,ghc-distributive)
dc2e8ab7
PW
4898 ("ghc-semigroupoids" ,ghc-semigroupoids)
4899 ("ghc-semigroups" ,ghc-semigroups)))
612fddec 4900 (home-page "https://github.com/ekmett/free/")
dc2e8ab7
PW
4901 (synopsis "Unrestricted monads for Haskell")
4902 (description "This library provides free monads, which are useful for many
4903tree-like structures and domain specific languages. If @code{f} is a
4904@code{Functor} then the free @code{Monad} on @code{f} is the type of trees
4905whose nodes are labeled with the constructors of @code{f}. The word \"free\"
4906is used in the sense of \"unrestricted\" rather than \"zero-cost\": @code{Free
4907f} makes no constraining assumptions beyond those given by @code{f} and the
4908definition of @code{Monad}.")
3ac73271 4909 (license license:bsd-3)))
dc2e8ab7 4910
52db0e13
PW
4911(define-public ghc-adjunctions
4912 (package
4913 (name "ghc-adjunctions")
3f229b1b 4914 (version "4.3")
52db0e13
PW
4915 (source
4916 (origin
4917 (method url-fetch)
4918 (uri (string-append
612fddec 4919 "https://hackage.haskell.org/package/adjunctions/adjunctions-"
52db0e13
PW
4920 version
4921 ".tar.gz"))
4922 (sha256
4923 (base32
3f229b1b 4924 "1k1ykisf96i4g2zm47c45md7p42c4vsp9r73392pz1g8mx7s2j5r"))))
52db0e13 4925 (build-system haskell-build-system)
52db0e13 4926 (inputs
2d47cee2
RW
4927 `(("ghc-profunctors" ,ghc-profunctors)
4928 ("ghc-comonad" ,ghc-comonad)
52db0e13
PW
4929 ("ghc-contravariant" ,ghc-contravariant)
4930 ("ghc-distributive" ,ghc-distributive)
4931 ("ghc-free" ,ghc-free)
52db0e13
PW
4932 ("ghc-tagged" ,ghc-tagged)
4933 ("ghc-semigroupoids" ,ghc-semigroupoids)
4934 ("ghc-semigroups" ,ghc-semigroups)
4935 ("ghc-void" ,ghc-void)))
612fddec 4936 (home-page "https://github.com/ekmett/adjunctions/")
52db0e13
PW
4937 (synopsis "Adjunctions and representable functors")
4938 (description "This library provides adjunctions and representable functors
4939for Haskell.")
3ac73271 4940 (license license:bsd-3)))
52db0e13 4941
96f23b62
AV
4942(define-public ghc-equivalence
4943 (package
4944 (name "ghc-equivalence")
4945 (version "0.3.2")
4946 (source
4947 (origin
4948 (method url-fetch)
4949 (uri (string-append "https://hackage.haskell.org/package/equivalence"
4950 "/equivalence-" version ".tar.gz"))
4951 (sha256
4952 (base32 "0a85bdyyvjqs5z4kfhhf758210k9gi9dv42ik66a3jl0z7aix8kx"))))
4953 (build-system haskell-build-system)
4954 (inputs
f54f0475 4955 `(("ghc-stmonadtrans" ,ghc-stmonadtrans)
96f23b62
AV
4956 ("ghc-transformers-compat" ,ghc-transformers-compat)
4957 ("ghc-quickcheck" ,ghc-quickcheck)
4958 ("ghc-test-framework" ,ghc-test-framework)
4959 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
4960 (home-page "https://github.com/pa-ba/equivalence")
4961 (synopsis "Maintaining an equivalence relation implemented as union-find")
4962 (description
4963 "This is an implementation of Tarjan's Union-Find algorithm (Robert E.@:
4964Tarjan. \"Efficiency of a Good But Not Linear Set Union Algorithm\",JACM
496522(2), 1975) in order to maintain an equivalence relation. This
4966implementation is a port of the @code{union-find} package using the @code{ST}
4967monad transformer (instead of the IO monad).")
4968 (license license:bsd-3)))
4969
cc553d02
PW
4970(define-public ghc-fast-logger
4971 (package
4972 (name "ghc-fast-logger")
05c08ec9 4973 (version "2.4.11")
cc553d02
PW
4974 (source
4975 (origin
4976 (method url-fetch)
4977 (uri (string-append
612fddec 4978 "https://hackage.haskell.org/package/fast-logger/fast-logger-"
cc553d02
PW
4979 version
4980 ".tar.gz"))
4981 (sha256
4982 (base32
05c08ec9 4983 "1ad2vq4nifdxshqk9yrmghqizhkgybfz134kpr6padglb2mxxrdv"))))
cc553d02 4984 (build-system haskell-build-system)
cc553d02 4985 (inputs
05c08ec9
RW
4986 `(("ghc-auto-update" ,ghc-auto-update)
4987 ("ghc-easy-file" ,ghc-easy-file)
4988 ("ghc-text" ,ghc-text)
4989 ("ghc-unix-time" ,ghc-unix-time)))
2d47cee2
RW
4990 (native-inputs
4991 `(("hspec-discover" ,hspec-discover)
4992 ("ghc-hspec" ,ghc-hspec)))
cc553d02
PW
4993 (home-page "https://hackage.haskell.org/package/fast-logger")
4994 (synopsis "Fast logging system")
4995 (description "This library provides a fast logging system for Haskell.")
3ac73271 4996 (license license:bsd-3)))
cc553d02 4997
cb2119e4
PW
4998(define-public ghc-doctest
4999 (package
5000 (name "ghc-doctest")
f212b628 5001 (version "0.11.0")
cb2119e4
PW
5002 (source
5003 (origin
5004 (method url-fetch)
5005 (uri (string-append
612fddec 5006 "https://hackage.haskell.org/package/doctest/doctest-"
cb2119e4
PW
5007 version
5008 ".tar.gz"))
5009 (sha256
5010 (base32
f212b628 5011 "0xv4vx1r3mk7cmiwywzrq25545cx3i7imhcx33mk47r88j5c49fj"))))
cb2119e4
PW
5012 (build-system haskell-build-system)
5013 (arguments `(#:tests? #f)) ; FIXME: missing test framework
cb2119e4 5014 (inputs
2d47cee2
RW
5015 `(("ghc-syb" ,ghc-syb)
5016 ("ghc-paths" ,ghc-paths)
5017 ("ghc-base-compat" ,ghc-base-compat)
cb2119e4
PW
5018 ("ghc-hunit" ,ghc-hunit)
5019 ("ghc-hspec" ,ghc-hspec)
5020 ("ghc-quickcheck" ,ghc-quickcheck)
5021 ("ghc-stringbuilder" ,ghc-stringbuilder)
5022 ("ghc-silently" ,ghc-silently)
5023 ("ghc-setenv" ,ghc-setenv)))
5024 (home-page
5025 "https://github.com/sol/doctest#readme")
5026 (synopsis "Test interactive Haskell examples")
5027 (description "The doctest program checks examples in source code comments.
5028It is modeled after doctest for Python, see
98b90194 5029@uref{https://docs.python.org/library/doctest.html, the Doctest website}.")
3ac73271 5030 (license license:expat)))
cb2119e4 5031
41faaff1
RW
5032(define-public ghc-doctest-0.12
5033 (package (inherit ghc-doctest)
5034 (name "ghc-doctest")
5035 (version "0.12.0")
5036 (source
5037 (origin
5038 (method url-fetch)
5039 (uri (string-append
5040 "https://hackage.haskell.org/package/doctest/doctest-"
5041 version
5042 ".tar.gz"))
5043 (sha256
5044 (base32
5045 "13h549cpgcvb7c54c7wif28g5wak84dxc3ais0hlqhzk1q6la91a"))))
5046 (inputs
5047 `(("ghc-code-page" ,ghc-code-page)
5048 ,@(package-inputs ghc-doctest)))))
5049
83d43619
RW
5050(define-public ghc-doctest-0.13
5051 (package (inherit ghc-doctest-0.12)
5052 (name "ghc-doctest")
5053 (version "0.13.0")
5054 (source
5055 (origin
5056 (method url-fetch)
5057 (uri (string-append "https://hackage.haskell.org/package/"
5058 "doctest/doctest-" version ".tar.gz"))
5059 (sha256
5060 (base32
5061 "08g3nmpqbnbkxc95d65hkhfabwax10qrq51vlynr342npn40mn2b"))))))
5062
6f5e312e
PW
5063(define-public ghc-lifted-base
5064 (package
5065 (name "ghc-lifted-base")
2e67886e 5066 (version "0.2.3.8")
6f5e312e
PW
5067 (source
5068 (origin
5069 (method url-fetch)
5070 (uri (string-append
612fddec 5071 "https://hackage.haskell.org/package/lifted-base/lifted-base-"
6f5e312e
PW
5072 version
5073 ".tar.gz"))
5074 (sha256
5075 (base32
2e67886e 5076 "17yz4n7q96x4cp8vxai8csn2vmpigxvipkfh48arahf91f0xy18n"))))
6f5e312e
PW
5077 (build-system haskell-build-system)
5078 (arguments `(#:tests? #f)) ; FIXME: Missing testing libraries.
6f5e312e 5079 (inputs
2d47cee2
RW
5080 `(("ghc-transformers-base" ,ghc-transformers-base)
5081 ("ghc-monad-control" ,ghc-monad-control)
5082 ("ghc-transformers-compat" ,ghc-transformers-compat)
6f5e312e
PW
5083 ("ghc-hunit" ,ghc-hunit)))
5084 (home-page "https://github.com/basvandijk/lifted-base")
5085 (synopsis "Lifted IO operations from the base library")
5086 (description "Lifted-base exports IO operations from the @code{base}
5087library lifted to any instance of @code{MonadBase} or @code{MonadBaseControl}.
5088Note that not all modules from @code{base} are converted yet. The package
5089includes a copy of the @code{monad-peel} test suite written by Anders
5090Kaseorg.")
3ac73271 5091 (license license:bsd-3)))
6f5e312e 5092
281bc4fd
PW
5093(define-public ghc-word8
5094 (package
5095 (name "ghc-word8")
bc819cdf 5096 (version "0.1.3")
281bc4fd
PW
5097 (source
5098 (origin
5099 (method url-fetch)
5100 (uri (string-append
612fddec 5101 "https://hackage.haskell.org/package/word8/word8-"
281bc4fd
PW
5102 version
5103 ".tar.gz"))
5104 (sha256
5105 (base32
bc819cdf 5106 "12jx7f13d2h1djq4fh4dyrab61sm49mj1w61j3rzp2vjfm696c16"))))
281bc4fd 5107 (build-system haskell-build-system)
2d47cee2
RW
5108 (native-inputs
5109 `(("ghc-hspec" ,ghc-hspec)
5110 ("hspec-discover" ,hspec-discover)))
612fddec 5111 (home-page "https://hackage.haskell.org/package/word8")
281bc4fd
PW
5112 (synopsis "Word8 library for Haskell")
5113 (description "Word8 library to be used with @code{Data.ByteString}.")
3ac73271 5114 (license license:bsd-3)))
281bc4fd 5115
fa709a2f
PW
5116(define-public ghc-stringsearch
5117 (package
5118 (name "ghc-stringsearch")
5119 (version "0.3.6.6")
5120 (source
5121 (origin
5122 (method url-fetch)
5123 (uri (string-append
612fddec 5124 "https://hackage.haskell.org/package/stringsearch/stringsearch-"
fa709a2f
PW
5125 version
5126 ".tar.gz"))
5127 (sha256
5128 (base32
5129 "0jpy9xjcjdbpi3wk6mg7xwd7wfi2mma70p97v1ij5i8bj9qijpr9"))))
5130 (build-system haskell-build-system)
5131 (home-page "https://bitbucket.org/dafis/stringsearch")
5132 (synopsis "Fast searching, splitting and replacing of ByteStrings")
5133 (description "This package provides several functions to quickly search
5134for substrings in strict or lazy @code{ByteStrings}. It also provides
5135functions for breaking or splitting on substrings and replacing all
5136occurrences of a substring (the first in case of overlaps) with another.")
3ac73271 5137 (license license:bsd-3)))
fa709a2f 5138
d0f4853a
RW
5139(define-public ghc-integer-logarithms
5140 (package
5141 (name "ghc-integer-logarithms")
7550f4b0 5142 (version "1.0.2.1")
d0f4853a
RW
5143 (source
5144 (origin
5145 (method url-fetch)
5146 (uri (string-append "https://hackage.haskell.org/package/"
5147 "integer-logarithms/integer-logarithms-"
5148 version ".tar.gz"))
5149 (sha256
5150 (base32
7550f4b0 5151 "1wj8kgjg5bn2yrs4zh9qfjv85cx6w998j9pi39yrbv305944mb9j"))))
d0f4853a 5152 (build-system haskell-build-system)
6300ba5b
AI
5153 (arguments
5154 `(#:configure-flags (list "--allow-newer=tasty")))
7550f4b0
AI
5155 (native-inputs
5156 `(("ghc-quickcheck" ,ghc-quickcheck)
5157 ("ghc-smallcheck" ,ghc-smallcheck)
5158 ("ghc-tasty" ,ghc-tasty)
d0f4853a 5159 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
7550f4b0
AI
5160 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
5161 ("ghc-tasty-smallcheck" ,ghc-tasty-smallcheck)))
5162 (home-page "https://github.com/Bodigrim/integer-logarithms")
d0f4853a
RW
5163 (synopsis "Integer logarithms")
5164 (description
5165 "This package provides the following modules:
5166@code{Math.NumberTheory.Logarithms} and
5167@code{Math.NumberTheory.Powers.Integer} from the @code{arithmoi} package,
5168@code{GHC.Integer.Logarithms.Compat} and
5169@code{Math.NumberTheory.Power.Natural}, as well as some additional functions
5170in migrated modules.")
5171 (license license:expat)))
5172
a43a38a1
PW
5173(define-public ghc-scientific
5174 (package
5175 (name "ghc-scientific")
2cad58ca 5176 (version "0.3.6.2")
a43a38a1
PW
5177 (source
5178 (origin
5179 (method url-fetch)
5180 (uri (string-append
612fddec 5181 "https://hackage.haskell.org/package/scientific/scientific-"
a43a38a1
PW
5182 version
5183 ".tar.gz"))
5184 (sha256
5185 (base32
2cad58ca 5186 "03ql2f0ac8bsl524idy9xxa3kxisb2sj3avflzw580j5hzy0m397"))))
a43a38a1 5187 (build-system haskell-build-system)
a43a38a1 5188 (inputs
f9f4578b 5189 `(("ghc-integer-logarithms" ,ghc-integer-logarithms)
2d47cee2 5190 ("ghc-text" ,ghc-text)
a5044b6a 5191 ("ghc-hashable" ,ghc-hashable)
2cad58ca
AI
5192 ("ghc-primitive" ,ghc-primitive)))
5193 (native-inputs
5194 `(("ghc-tasty" ,ghc-tasty)
a43a38a1
PW
5195 ("ghc-tasty-ant-xml" ,ghc-tasty-ant-xml)
5196 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
5197 ("ghc-tasty-smallcheck" ,ghc-tasty-smallcheck)
5198 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
5199 ("ghc-smallcheck" ,ghc-smallcheck)
5200 ("ghc-quickcheck" ,ghc-quickcheck)))
5201 (home-page "https://github.com/basvandijk/scientific")
5202 (synopsis "Numbers represented using scientific notation")
5203 (description "This package provides @code{Data.Scientific}, which provides
5204the number type @code{Scientific}. Scientific numbers are arbitrary precision
5205and space efficient. They are represented using
98b90194 5206@uref{https://en.wikipedia.org/wiki/Scientific_notation, scientific
a43a38a1 5207notation}.")
3ac73271 5208 (license license:bsd-3)))
a43a38a1 5209
3f8b8e73
AV
5210(define-public ghc-boxes
5211 (package
5212 (name "ghc-boxes")
5213 (version "0.1.4")
5214 (source
5215 (origin
5216 (method url-fetch)
5217 (uri (string-append "https://hackage.haskell.org/package/boxes/boxes-"
5218 version ".tar.gz"))
5219 (sha256
5220 (base32 "1n7xiplzd3s1a39nizwjcgsh3wi2348mp21c3fk19v98ialfjgjf"))))
5221 (build-system haskell-build-system)
5222 (inputs
5223 `(("ghc-split" ,ghc-split)
5224 ("ghc-quickcheck" ,ghc-quickcheck)))
5225 (home-page "https://hackage.haskell.org/package/boxes")
5226 (synopsis "2D text pretty-printing library")
5227 (description
5228 "Boxes is a pretty-printing library for laying out text in two dimensions,
5229using a simple box model.")
5230 (license license:bsd-3)))
2aa0bada 5231
4cbd9f59
RW
5232(define-public ghc-deepseq-generics
5233 (package
5234 (name "ghc-deepseq-generics")
59e08129 5235 (version "0.2.0.0")
4cbd9f59
RW
5236 (source (origin
5237 (method url-fetch)
612fddec 5238 (uri (string-append "https://hackage.haskell.org/package/"
4cbd9f59
RW
5239 "deepseq-generics/deepseq-generics-"
5240 version ".tar.gz"))
5241 (sha256
5242 (base32
59e08129 5243 "17bwghc15mc9pchfd1w46jh2p3wzc86aj6a537wqwxn08rayzcxh"))))
4cbd9f59 5244 (build-system haskell-build-system)
4cbd9f59
RW
5245 (native-inputs
5246 `(("ghc-hunit" ,ghc-hunit)
5247 ("ghc-test-framework" ,ghc-test-framework)
5248 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)))
5249 (home-page "https://github.com/hvr/deepseq-generics")
5250 (synopsis "Generic RNF implementation")
5251 (description
5252 "This package provides a @code{GHC.Generics}-based
5253@code{Control.DeepSeq.Generics.genericRnf} function which can be used for
5254providing an 'rnf' implementation.")
3ac73271 5255 (license license:bsd-3)))
4cbd9f59 5256
e0894701
RW
5257(define-public ghc-string-qq
5258 (package
5259 (name "ghc-string-qq")
5260 (version "0.0.2")
5261 (source
5262 (origin
5263 (method url-fetch)
5264 (uri (string-append
5265 "https://hackage.haskell.org/package/string-qq/string-qq-"
5266 version
5267 ".tar.gz"))
5268 (sha256
5269 (base32
5270 "0662m3i5xrdrr95w829bszkhp88mj9iy1zya54vk2sl5hz9wlmwp"))))
5271 (build-system haskell-build-system)
5272 (home-page "http://hackage.haskell.org/package/string-qq")
5273 (synopsis
5274 "QuasiQuoter for non-interpolated strings, texts and bytestrings.")
5275 (description
5276 "This package provides a quasiquoter for non-interpolated strings, texts
5277and bytestrings.")
5278 (license license:public-domain)))
5279
8164d58e
RW
5280(define-public ghc-pandoc-types
5281 (package
5282 (name "ghc-pandoc-types")
cdad36c3 5283 (version "1.17.5.1")
8164d58e
RW
5284 (source (origin
5285 (method url-fetch)
612fddec 5286 (uri (string-append "https://hackage.haskell.org/package/"
8164d58e
RW
5287 "pandoc-types/pandoc-types-"
5288 version ".tar.gz"))
5289 (sha256
5290 (base32
cdad36c3 5291 "1q6v2bynij724fv347mhqxdscwifzrx5jb9mq80608qf638fn717"))))
8164d58e 5292 (build-system haskell-build-system)
9d087076
RW
5293 (arguments
5294 `(#:configure-flags (list "--allow-newer=QuickCheck")))
2d47cee2 5295 (inputs
8164d58e
RW
5296 `(("ghc-syb" ,ghc-syb)
5297 ("ghc-aeson" ,ghc-aeson)
9d087076
RW
5298 ("ghc-string-qq" ,ghc-string-qq)))
5299 (native-inputs
5300 `(("ghc-quickcheck" ,ghc-quickcheck)
5301 ("ghc-test-framework" ,ghc-test-framework)
5302 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
5303 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)
5304 ("ghc-hunit" ,ghc-hunit)))
8164d58e
RW
5305 (home-page "http://johnmacfarlane.net/pandoc")
5306 (synopsis "Types for representing a structured document")
5307 (description
5308 "This module defines the @code{Pandoc} data structure, which is used by
5309pandoc to represent structured documents. It also provides functions for
5310building up, manipulating and serialising @code{Pandoc} structures.")
3ac73271 5311 (license license:bsd-3)))
8164d58e 5312
0f1fef71
RW
5313(define-public ghc-pandoc-types-for-pandoc-1
5314 (package (inherit ghc-pandoc-types)
5315 (version "1.17.0.5")
5316 (source (origin
5317 (method url-fetch)
5318 (uri (string-append "https://hackage.haskell.org/package/"
5319 "pandoc-types/pandoc-types-"
5320 version ".tar.gz"))
5321 (sha256
5322 (base32
5323 "1csipjdq00iiq77k2wlrg4i7afrzlh8nl585q785xzw7nn45b0n8"))))
7ad3d4fd
RW
5324 (arguments
5325 `(#:configure-flags (list "--allow-newer=QuickCheck"
5326 "--allow-newer=HUnit")))
0f1fef71
RW
5327 (inputs
5328 `(("ghc-syb" ,ghc-syb)
5329 ("ghc-aeson" ,ghc-aeson-for-pandoc-1)
5330 ("ghc-string-qq" ,ghc-string-qq)))))
5331
ef2861b1
RW
5332(define-public ghc-texmath
5333 (package
5334 (name "ghc-texmath")
cfac79ba 5335 (version "0.11.0.1")
ef2861b1
RW
5336 (source (origin
5337 (method url-fetch)
612fddec 5338 (uri (string-append "https://hackage.haskell.org/package/"
ef2861b1
RW
5339 "texmath/texmath-" version ".tar.gz"))
5340 (sha256
5341 (base32
cfac79ba 5342 "11dc09hfnyfsz20ch2c867w0zdgjkzq41506lm61i3dk87ngdisf"))))
ef2861b1 5343 (build-system haskell-build-system)
2d47cee2 5344 (inputs
ef2861b1
RW
5345 `(("ghc-syb" ,ghc-syb)
5346 ("ghc-network-uri" ,ghc-network-uri)
5347 ("ghc-split" ,ghc-split)
5348 ("ghc-temporary" ,ghc-temporary)
5349 ("ghc-utf8-string" ,ghc-utf8-string)
5350 ("ghc-xml" ,ghc-xml)
5351 ("ghc-parsec" ,ghc-parsec)
ef2861b1 5352 ("ghc-pandoc-types" ,ghc-pandoc-types)))
612fddec 5353 (home-page "https://github.com/jgm/texmath")
ef2861b1
RW
5354 (synopsis "Conversion between formats used to represent mathematics")
5355 (description
5356 "The texmath library provides functions to read and write TeX math,
5357presentation MathML, and OMML (Office Math Markup Language, used in Microsoft
5358Office). Support is also included for converting math formats to pandoc's
5359native format (allowing conversion, via pandoc, to a variety of different
5360markup formats). The TeX reader supports basic LaTeX and AMS extensions, and
5361it can parse and apply LaTeX macros.")
3ac73271 5362 (license license:gpl2+)))
ef2861b1 5363
dcf8e2ab
RW
5364(define-public ghc-texmath-for-pandoc-1
5365 (package (inherit ghc-texmath)
5366 (version "0.9.4.4")
5367 (source (origin
5368 (method url-fetch)
5369 (uri (string-append "https://hackage.haskell.org/package/"
5370 "texmath/texmath-" version ".tar.gz"))
5371 (sha256
5372 (base32
5373 "129q33m56diiv35kdwfb07838wrg0mm88kxdqxfyl1zvf9nzkqkd"))))
5374 (inputs
f54f0475 5375 `(("ghc-network-uri" ,ghc-network-uri)
dcf8e2ab
RW
5376 ("ghc-pandoc-types" ,ghc-pandoc-types-for-pandoc-1)
5377 ("ghc-parsec" ,ghc-parsec)
5378 ("ghc-split" ,ghc-split)
5379 ("ghc-syb" ,ghc-syb)
5380 ("ghc-temporary" ,ghc-temporary)
5381 ("ghc-utf8-string" ,ghc-utf8-string)
5382 ("ghc-xml" ,ghc-xml)))))
5383
a54d11b5
RW
5384(define-public ghc-regex-pcre-builtin
5385 (package
5386 (name "ghc-regex-pcre-builtin")
5387 (version "0.94.4.8.8.35")
5388 (source (origin
5389 (method url-fetch)
612fddec 5390 (uri (string-append "https://hackage.haskell.org/package/"
a54d11b5
RW
5391 "regex-pcre-builtin/regex-pcre-builtin-"
5392 version ".tar.gz"))
5393 (sha256
5394 (base32
5395 "0y7as9wqlkykpipka2cfdhmcnin345q01pp0wsva8fwmvsavdl8b"))))
5396 (build-system haskell-build-system)
2d47cee2 5397 (inputs
a54d11b5 5398 `(("ghc-regex-base" ,ghc-regex-base)))
612fddec 5399 (home-page "https://hackage.haskell.org/package/regex-pcre")
a54d11b5
RW
5400 (synopsis "Enhancement of the builtin Text.Regex library")
5401 (description
5402 "This package is an enhancement of the @code{Text.Regex} library,
5403providing the PCRE backend to accompany regex-base, with bundled code from
98b90194 5404@url{https://www.pcre.org}.")
3ac73271 5405 (license license:bsd-3)))
a54d11b5 5406
05245dc9
RW
5407(define-public ghc-diff
5408 (package
5409 (name "ghc-diff")
307a0dce 5410 (version "0.3.4")
05245dc9
RW
5411 (source (origin
5412 (method url-fetch)
612fddec 5413 (uri (string-append "https://hackage.haskell.org/package/"
05245dc9
RW
5414 "Diff/Diff-" version ".tar.gz"))
5415 (sha256
5416 (base32
307a0dce 5417 "0bqcdvhxx8dmqc3793m6axg813wv9ldz2j37f1wygbbrbbndmdvp"))))
05245dc9 5418 (build-system haskell-build-system)
307a0dce
RW
5419 (native-inputs
5420 `(("ghc-quickcheck" ,ghc-quickcheck)
5421 ("ghc-test-framework" ,ghc-test-framework)
5422 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
98b90194 5423 (home-page "https://hub.darcs.net/sterlingclover/Diff")
05245dc9
RW
5424 (synopsis "O(ND) diff algorithm in Haskell")
5425 (description
5426 "This package provides an implementation of the standard diff algorithm,
5427and utilities for pretty printing.")
3ac73271 5428 (license license:bsd-3)))
05245dc9 5429
66c480b6
RW
5430(define-public ghc-highlighting-kate
5431 (package
5432 (name "ghc-highlighting-kate")
8f1e2dca 5433 (version "0.6.3")
66c480b6
RW
5434 (source (origin
5435 (method url-fetch)
612fddec 5436 (uri (string-append "https://hackage.haskell.org/package/"
66c480b6
RW
5437 "highlighting-kate/highlighting-kate-"
5438 version ".tar.gz"))
5439 (sha256
5440 (base32
8f1e2dca 5441 "03c4flh4h1jd48bx0qmplax3q8w6wj1dhbh6j0xhaf5h95fbinki"))))
66c480b6 5442 (build-system haskell-build-system)
2d47cee2 5443 (inputs
66c480b6
RW
5444 `(("ghc-diff" ,ghc-diff)
5445 ("ghc-regex-pcre-builtin" ,ghc-regex-pcre-builtin)))
5446 (native-inputs
5447 `(("ghc-parsec" ,ghc-parsec)
5448 ("ghc-blaze-html" ,ghc-blaze-html)
f54f0475 5449 ("ghc-utf8-string" ,ghc-utf8-string)))
612fddec 5450 (home-page "https://github.com/jgm/highlighting-kate")
66c480b6
RW
5451 (synopsis "Syntax highlighting library")
5452 (description
5453 "Highlighting-kate is a syntax highlighting library with support for
5454nearly one hundred languages. The syntax parsers are automatically generated
98b90194 5455from @uref{https://kate-editor.org/, Kate syntax descriptions}, so any syntax
66c480b6
RW
5456supported by Kate can be added. An (optional) command-line program is
5457provided, along with a utility for generating new parsers from Kate XML syntax
5458descriptions.")
3ac73271 5459 (license license:gpl2+)))
66c480b6 5460
31be270b
RW
5461(define-public ghc-cmark
5462 (package
5463 (name "ghc-cmark")
b8490856 5464 (version "0.5.6")
31be270b
RW
5465 (source (origin
5466 (method url-fetch)
b8490856
TGR
5467 ;; XXX As of version 0.5.6, this package bundles libcmark 0.28.0.
5468 ;; See cbits/cmark_version.h.
612fddec 5469 (uri (string-append "https://hackage.haskell.org/package/"
31be270b
RW
5470 "cmark/cmark-" version ".tar.gz"))
5471 (sha256
5472 (base32
b8490856 5473 "1c1j3a8b9qx5zk9myqm3gap8ymz7fipwrdmyfsq9wkkdr9x4np45"))))
31be270b 5474 (build-system haskell-build-system)
2d47cee2 5475 (inputs
31be270b
RW
5476 `(("ghc-text" ,ghc-text)))
5477 (native-inputs
5478 `(("ghc-hunit" ,ghc-hunit)))
5479 (home-page "https://github.com/jgm/commonmark-hs")
5480 (synopsis "Fast, accurate CommonMark (Markdown) parser and renderer")
5481 (description
5482 "This package provides Haskell bindings for
5483@uref{https://github.com/jgm/cmark, libcmark}, the reference parser for
b8490856
TGR
5484CommonMark, a fully specified variant of Markdown. It includes bundled libcmark
5485sources, and does not require prior installation of the C library.")
3ac73271 5486 (license license:bsd-3)))
31be270b 5487
0ba94011
RW
5488(define-public ghc-cmark-gfm
5489 (package
5490 (name "ghc-cmark-gfm")
5491 (version "0.1.3")
5492 (source
5493 (origin
5494 (method url-fetch)
5495 (uri (string-append "https://hackage.haskell.org/package/"
5496 "cmark-gfm/cmark-gfm-"
5497 version ".tar.gz"))
5498 (sha256
5499 (base32
5500 "1fkisbrydmdx5h8yad09fzk8h1b1j53r02g7vb81izgdwj9b673k"))))
5501 (build-system haskell-build-system)
5502 (inputs
5503 `(("ghc-text" ,ghc-text)))
5504 (native-inputs
5505 `(("ghc-hunit" ,ghc-hunit)))
5506 (home-page "https://github.com/kivikakk/cmark-gfm-hs")
5507 (synopsis
5508 "Fast, accurate GitHub Flavored Markdown parser and renderer")
5509 (description
5510 "This package provides Haskell bindings for libcmark-gfm, the reference
5511parser for GitHub Flavored Markdown, a fully specified variant of Markdown.
5512It includes sources for libcmark-gfm and does not require prior installation
5513of the C library.")
5514 (license license:bsd-3)))
5515
25b20a9c
RW
5516(define-public ghc-executable-path
5517 (package
5518 (name "ghc-executable-path")
1c42bd13 5519 (version "0.0.3.1")
25b20a9c
RW
5520 (source (origin
5521 (method url-fetch)
612fddec 5522 (uri (string-append "https://hackage.haskell.org/package/"
25b20a9c
RW
5523 "executable-path/executable-path-"
5524 version ".tar.gz"))
5525 (sha256
5526 (base32
1c42bd13 5527 "0vxwmnsvx13cawcyhbyljkds0l1vr996ijldycx7nj0asjv45iww"))))
25b20a9c 5528 (build-system haskell-build-system)
612fddec 5529 (home-page "https://hackage.haskell.org/package/executable-path")
25b20a9c
RW
5530 (synopsis "Find out the full path of the executable")
5531 (description
5532 "The documentation of @code{System.Environment.getProgName} says that
5533\"However, this is hard-to-impossible to implement on some non-Unix OSes, so
5534instead, for maximum portability, we just return the leafname of the program
5535as invoked.\" This library tries to provide the missing path.")
3ac73271 5536 (license license:public-domain)))
25b20a9c 5537
5de6eedc
RW
5538(define-public ghc-enclosed-exceptions
5539 (package
5540 (name "ghc-enclosed-exceptions")
376a6df4 5541 (version "1.0.3")
5de6eedc
RW
5542 (source (origin
5543 (method url-fetch)
612fddec 5544 (uri (string-append "https://hackage.haskell.org/package/"
5de6eedc
RW
5545 "enclosed-exceptions/enclosed-exceptions-"
5546 version ".tar.gz"))
5547 (sha256
5548 (base32
376a6df4 5549 "1fghjj7nkiddrf03ks8brjpr5x25yi9fs7xg6adbi4mc2gqr6vdg"))))
5de6eedc 5550 (build-system haskell-build-system)
376a6df4
RW
5551 ;; FIXME: one of the tests blocks forever:
5552 ;; "thread blocked indefinitely in an MVar operation"
5553 (arguments '(#:tests? #f))
2d47cee2 5554 (inputs
5de6eedc
RW
5555 `(("ghc-lifted-base" ,ghc-lifted-base)
5556 ("ghc-monad-control" ,ghc-monad-control)
5557 ("ghc-async" ,ghc-async)
5558 ("ghc-transformers-base" ,ghc-transformers-base)))
5559 (native-inputs
5560 `(("ghc-hspec" ,ghc-hspec)
5561 ("ghc-quickcheck" ,ghc-quickcheck)))
5562 (home-page "https://github.com/jcristovao/enclosed-exceptions")
5563 (synopsis "Catch all exceptions from within an enclosed computation")
5564 (description
5565 "This library implements a technique to catch all exceptions raised
5566within an enclosed computation, while remaining responsive to (external)
5567asynchronous exceptions.")
3ac73271 5568 (license license:expat)))
5de6eedc 5569
74d9f72e
RW
5570(define-public ghc-packedstring
5571 (package
5572 (name "ghc-packedstring")
5573 (version "0.1.0.1")
5574 (source (origin
5575 (method url-fetch)
612fddec 5576 (uri (string-append "https://hackage.haskell.org/package/"
74d9f72e
RW
5577 "packedstring/packedstring-"
5578 version ".tar.gz"))
5579 (sha256
5580 (base32
5581 "1x78pzzdlnpcmh9p37rlf8m5cxf3yqm2alf3whl4zpr9w25r0qj8"))))
5582 (build-system haskell-build-system)
5583 (arguments
5584 `(#:phases
5585 (modify-phases %standard-phases
5586 (add-after 'unpack 'enable-extension
5587 (lambda _
5588 ;; This package won't compile without the StandaloneDeriving
5589 ;; extension.
5590 (substitute* "packedstring.cabal"
5591 (("CPP") "CPP, StandaloneDeriving"))
5592 #t)))))
612fddec 5593 (home-page "https://hackage.haskell.org/package/packedstring")
74d9f72e
RW
5594 (synopsis "Library for packed strings")
5595 (description
5596 "This deprecated library provides an implementation of packed strings.")
3ac73271 5597 (license license:bsd-3)))
74d9f72e 5598
9dfc79b3
RW
5599(define-public ghc-th-abstraction
5600 (package
5601 (name "ghc-th-abstraction")
5fe52835 5602 (version "0.2.8.0")
9dfc79b3
RW
5603 (source
5604 (origin
5605 (method url-fetch)
5606 (uri (string-append "https://hackage.haskell.org/package/"
5607 "th-abstraction/th-abstraction-"
5608 version ".tar.gz"))
5609 (sha256
5610 (base32
5fe52835 5611 "0n17w4q2ykd0nica4sck2wng6md56rfad8x0icl0l8vnzb9nn4ya"))))
9dfc79b3
RW
5612 (build-system haskell-build-system)
5613 (home-page "https://github.com/glguy/th-abstraction")
5614 (synopsis "Nicer interface for reified information about data types")
5615 (description
5616 "This package normalizes variations in the interface for inspecting
5617datatype information via Template Haskell so that packages and support a
5618single, easier to use informational datatype while supporting many versions of
5619Template Haskell.")
5620 (license license:isc)))
5621
1777e1f2
RW
5622(define-public ghc-th-lift
5623 (package
5624 (name "ghc-th-lift")
08c3993f 5625 (version "0.7.11")
1777e1f2
RW
5626 (source (origin
5627 (method url-fetch)
612fddec 5628 (uri (string-append "https://hackage.haskell.org/package/"
1777e1f2
RW
5629 "th-lift/th-lift-" version ".tar.gz"))
5630 (sha256
5631 (base32
08c3993f 5632 "131360zxb0hazbqwbkk6ab2p77jkxr79bwwm618mrwrwkm3x2g6m"))))
1777e1f2 5633 (build-system haskell-build-system)
08c3993f
TS
5634 (inputs
5635 `(("ghc-th-abstraction" ,ghc-th-abstraction)))
612fddec 5636 (home-page "https://github.com/mboes/th-lift")
1777e1f2
RW
5637 (synopsis "Derive Template Haskell's Lift class for datatypes")
5638 (description
5639 "This is a Haskell library to derive Template Haskell's Lift class for
5640datatypes.")
3ac73271 5641 (license license:bsd-3)))
1777e1f2 5642
a6d1c4e7
RW
5643(define-public ghc-th-lift-instances
5644 (package
5645 (name "ghc-th-lift-instances")
5646 (version "0.1.11")
5647 (source
5648 (origin
5649 (method url-fetch)
5650 (uri (string-append "https://hackage.haskell.org/package/"
5651 "th-lift-instances/th-lift-instances-"
5652 version ".tar.gz"))
5653 (sha256
5654 (base32
5655 "1f56cp6ckcalld5jchv0kxpjkwcsixd7smd0g7r8cg67ppx6m90x"))))
5656 (build-system haskell-build-system)
5657 (inputs
5658 `(("ghc-th-lift" ,ghc-th-lift)
5659 ("ghc-vector" ,ghc-vector)
5660 ("ghc-text" ,ghc-text)
5661 ("ghc-quickcheck" ,ghc-quickcheck)))
5662 (home-page "https://github.com/bennofs/th-lift-instances/")
5663 (synopsis "Lift instances for template-haskell for common data types.")
5664 (description "Most data types in the Haskell platform do not have Lift
5665instances. This package provides orphan instances for @code{containers},
5666@code{text}, @code{bytestring} and @code{vector}.")
5667 (license license:bsd-3)))
5668
25101be9
RW
5669(define-public ghc-th-expand-syns
5670 (package
5671 (name "ghc-th-expand-syns")
165e5f6e 5672 (version "0.4.0.0")
25101be9
RW
5673 (source (origin
5674 (method url-fetch)
612fddec 5675 (uri (string-append "https://hackage.haskell.org/package/"
25101be9
RW
5676 "th-expand-syns/th-expand-syns-"
5677 version ".tar.gz"))
5678 (sha256
5679 (base32
165e5f6e 5680 "1sjy7a17zwyvlbkc8gklii67sy78wpnw35fyb00lsbnpk4cryd2r"))))
25101be9 5681 (build-system haskell-build-system)
2d47cee2 5682 (inputs
25101be9 5683 `(("ghc-syb" ,ghc-syb)))
612fddec 5684 (home-page "https://hackage.haskell.org/package/th-expand-syns")
25101be9
RW
5685 (synopsis "Expands type synonyms in Template Haskell ASTs")
5686 (description
5687 "This package enables users to expand type synonyms in Template Haskell
5688@dfn{abstract syntax trees} (ASTs).")
3ac73271 5689 (license license:bsd-3)))
25101be9 5690
536b84a8
RW
5691(define-public ghc-th-reify-many
5692 (package
5693 (name "ghc-th-reify-many")
9e21b4a8 5694 (version "0.1.6")
536b84a8
RW
5695 (source (origin
5696 (method url-fetch)
612fddec 5697 (uri (string-append "https://hackage.haskell.org/package/"
536b84a8
RW
5698 "th-reify-many/th-reify-many-"
5699 version ".tar.gz"))
5700 (sha256
5701 (base32
9e21b4a8 5702 "1b76zjxkj0v0n8zj9l0nwav2irm0c43rx6qjihfw8klmmxvx59df"))))
536b84a8 5703 (build-system haskell-build-system)
2d47cee2 5704 (inputs
f54f0475 5705 `(("ghc-safe" ,ghc-safe)
536b84a8 5706 ("ghc-th-expand-syns" ,ghc-th-expand-syns)))
612fddec 5707 (home-page "https://github.com/mgsloan/th-reify-many")
536b84a8
RW
5708 (synopsis "Recurseively reify template haskell datatype info")
5709 (description
5710 "th-reify-many provides functions for recursively reifying top level
5711declarations. The main intended use case is for enumerating the names of
5712datatypes reachable from an initial datatype, and passing these names to some
5713function which generates instances.")
3ac73271 5714 (license license:bsd-3)))
536b84a8 5715
2e677251
RW
5716(define-public ghc-th-orphans
5717 (package
5718 (name "ghc-th-orphans")
080778a0 5719 (version "0.13.2")
2e677251
RW
5720 (source (origin
5721 (method url-fetch)
612fddec 5722 (uri (string-append "https://hackage.haskell.org/package/"
2e677251
RW
5723 "th-orphans/th-orphans-" version ".tar.gz"))
5724 (sha256
5725 (base32
080778a0 5726 "0102vkyzpgnp2fys8pvw4khrhrh2y1b8dp1slgvn020vg4s351mc"))))
2e677251 5727 (build-system haskell-build-system)
2d47cee2 5728 (inputs
2e677251 5729 `(("ghc-th-lift" ,ghc-th-lift)
080778a0 5730 ("ghc-th-lift-instances" ,ghc-th-lift-instances)
2e677251 5731 ("ghc-th-reify-many" ,ghc-th-reify-many)
2e677251
RW
5732 ("ghc-generic-deriving" ,ghc-generic-deriving)))
5733 (native-inputs
5734 `(("ghc-hspec" ,ghc-hspec)))
612fddec 5735 (home-page "https://hackage.haskell.org/package/th-orphans")
2e677251
RW
5736 (synopsis "Orphan instances for TH datatypes")
5737 (description
5738 "This package provides orphan instances for Template Haskell datatypes. In particular,
5739instances for @code{Ord} and @code{Lift}, as well as a few missing @code{Show}
5740and @code{Eq} instances. These instances used to live in the haskell-src-meta
5741package, and that's where the version number started.")
3ac73271 5742 (license license:bsd-3)))
2e677251 5743
e0ca14c7
AV
5744(define-public ghc-geniplate-mirror
5745 (package
5746 (name "ghc-geniplate-mirror")
6b850af4 5747 (version "0.7.6")
e0ca14c7
AV
5748 (source
5749 (origin
5750 (method url-fetch)
5751 (uri (string-append "https://hackage.haskell.org/package"
5752 "/geniplate-mirror"
5753 "/geniplate-mirror-" version ".tar.gz"))
5754 (sha256
6b850af4 5755 (base32 "1y0m0bw5zpm1y1y6d9qmxj3swl8j8hlw1shxbr5awycf6k884ssb"))))
e0ca14c7 5756 (build-system haskell-build-system)
e0ca14c7
AV
5757 (home-page "https://github.com/danr/geniplate")
5758 (synopsis "Use Template Haskell to generate Uniplate-like functions")
5759 (description
5760 "Use Template Haskell to generate Uniplate-like functions. This is a
5761maintained mirror of the @uref{https://hackage.haskell.org/package/geniplate,
5762geniplate} package, written by Lennart Augustsson.")
5763 (license license:bsd-3)))
5764
af4db693
AV
5765(define-public ghc-gitrev
5766 (package
5767 (name "ghc-gitrev")
5768 (version "1.3.1")
5769 (source
5770 (origin
5771 (method url-fetch)
5772 (uri (string-append "https://hackage.haskell.org/package/gitrev/gitrev-"
5773 version ".tar.gz"))
5774 (sha256
5775 (base32 "0cl3lfm6k1h8fxp2vxa6ihfp4v8igkz9h35iwyq2frzm4kdn96d8"))))
5776 (build-system haskell-build-system)
5777 (inputs `(("ghc-base-compat" ,ghc-base-compat)))
5778 (home-page "https://github.com/acfoltzer/gitrev")
5779 (synopsis "Compile git revision info into Haskell projects")
5780 (description
5781 "This package provides some handy Template Haskell splices for including
5782the current git hash and branch in the code of your project. This is useful
5783for including in panic messages, @command{--version} output, or diagnostic
5784info for more informative bug reports.")
5785 (license license:bsd-3)))
5786
3611fc7b
RW
5787(define-public ghc-haskell-src-meta
5788 (package
5789 (name "ghc-haskell-src-meta")
db6dbe19 5790 (version "0.8.0.2")
3611fc7b
RW
5791 (source (origin
5792 (method url-fetch)
612fddec 5793 (uri (string-append "https://hackage.haskell.org/package/"
3611fc7b
RW
5794 "haskell-src-meta/haskell-src-meta-"
5795 version ".tar.gz"))
5796 (sha256
5797 (base32
db6dbe19 5798 "12rc4v5dbbbcwdp7j8isvnm9vqpazv124j5kdfwlgwgwjhxi8ysb"))))
3611fc7b 5799 (build-system haskell-build-system)
2d47cee2 5800 (inputs
3611fc7b
RW
5801 `(("ghc-haskell-src-exts" ,ghc-haskell-src-exts)
5802 ("ghc-syb" ,ghc-syb)
5803 ("ghc-th-orphans" ,ghc-th-orphans)))
db6dbe19
RW
5804 (native-inputs
5805 `(("ghc-hunit" ,ghc-hunit)
5806 ("ghc-test-framework" ,ghc-test-framework)
5807 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)))
612fddec 5808 (home-page "https://hackage.haskell.org/package/haskell-src-meta")
3611fc7b
RW
5809 (synopsis "Parse source to template-haskell abstract syntax")
5810 (description
5811 "This package provides tools to parse Haskell sources to the
5812template-haskell abstract syntax.")
3ac73271 5813 (license license:bsd-3)))
3611fc7b 5814
b55630a3
RW
5815(define-public ghc-conduit
5816 (package
5817 (name "ghc-conduit")
5cb46200 5818 (version "1.3.0.3")
b55630a3
RW
5819 (source (origin
5820 (method url-fetch)
612fddec 5821 (uri (string-append "https://hackage.haskell.org/package/"
b55630a3
RW
5822 "conduit/conduit-" version ".tar.gz"))
5823 (sha256
5824 (base32
5cb46200 5825 "1sangm0qqi9dzlq95746a3kl14k8b09592a423shxjf2a0b1yx5v"))))
b55630a3 5826 (build-system haskell-build-system)
2d47cee2 5827 (inputs
b55630a3
RW
5828 `(("ghc-exceptions" ,ghc-exceptions)
5829 ("ghc-lifted-base" ,ghc-lifted-base)
5cb46200 5830 ("ghc-mono-traversable" ,ghc-mono-traversable)
b55630a3 5831 ("ghc-mmorph" ,ghc-mmorph)
b55630a3 5832 ("ghc-resourcet" ,ghc-resourcet)
5cb46200 5833 ("ghc-silently" ,ghc-silently)
b55630a3 5834 ("ghc-transformers-base" ,ghc-transformers-base)
5cb46200
RW
5835 ("ghc-unliftio" ,ghc-unliftio)
5836 ("ghc-unliftio-core" ,ghc-unliftio-core)
5837 ("ghc-vector" ,ghc-vector)
b55630a3
RW
5838 ("ghc-void" ,ghc-void)))
5839 (native-inputs
5840 `(("ghc-quickcheck" ,ghc-quickcheck)
5841 ("ghc-hspec" ,ghc-hspec)
7bc18f41 5842 ("ghc-safe" ,ghc-safe)
5843 ("ghc-split" ,ghc-split)))
b55630a3
RW
5844 (home-page "https://github.com/snoyberg/conduit")
5845 (synopsis "Streaming data library ")
5846 (description
463c39c3 5847 "The conduit package is a solution to the streaming data problem,
5848allowing for production, transformation, and consumption of streams of data
5849in constant memory. It is an alternative to lazy I/O which guarantees
5850deterministic resource handling, and fits in the same general solution
5851space as enumerator/iteratee and pipes.")
3ac73271 5852 (license license:expat)))
b55630a3 5853
1c17529f
RW
5854(define-public ghc-logging-facade
5855 (package
5856 (name "ghc-logging-facade")
38697357 5857 (version "0.1.1")
1c17529f
RW
5858 (source (origin
5859 (method url-fetch)
612fddec 5860 (uri (string-append "https://hackage.haskell.org/package/"
1c17529f
RW
5861 "logging-facade/logging-facade-"
5862 version ".tar.gz"))
5863 (sha256
5864 (base32
38697357 5865 "18ldv6rsff480rqpbs3iabjpvn1fhw0i2a0g80jnhxg9ajfz5yb0"))))
1c17529f
RW
5866 (build-system haskell-build-system)
5867 (native-inputs
2d47cee2
RW
5868 `(("ghc-hspec" ,ghc-hspec)
5869 ("hspec-discover" ,hspec-discover)))
612fddec 5870 (home-page "https://hackage.haskell.org/package/logging-facade")
1c17529f
RW
5871 (synopsis "Simple logging abstraction that allows multiple back-ends")
5872 (description
5873 "This package provides a simple logging abstraction that allows multiple
5874back-ends.")
3ac73271 5875 (license license:expat)))
1c17529f 5876
9efdbb72
RW
5877(define-public ghc-mockery
5878 (package
5879 (name "ghc-mockery")
1e521705 5880 (version "0.3.3")
9efdbb72
RW
5881 (source (origin
5882 (method url-fetch)
612fddec 5883 (uri (string-append "https://hackage.haskell.org/package/"
9efdbb72
RW
5884 "mockery/mockery-" version ".tar.gz"))
5885 (sha256
5886 (base32
1e521705 5887 "1m7sq2vclgir3qbpngzl3g87ks4034blwwf7p3h02c0jlcwpl5b1"))))
9efdbb72 5888 (build-system haskell-build-system)
2d47cee2 5889 (inputs
9efdbb72 5890 `(("ghc-temporary" ,ghc-temporary)
1e521705
RW
5891 ("ghc-logging-facade" ,ghc-logging-facade)
5892 ("ghc-base-compat" ,ghc-base-compat)))
9efdbb72 5893 (native-inputs
2d47cee2
RW
5894 `(("ghc-hspec" ,ghc-hspec)
5895 ("hspec-discover" ,hspec-discover)))
612fddec 5896 (home-page "https://hackage.haskell.org/package/mockery")
9efdbb72
RW
5897 (synopsis "Support functions for automated testing")
5898 (description
5899 "The mockery package provides support functions for automated testing.")
3ac73271 5900 (license license:expat)))
9efdbb72 5901
132133c1
RW
5902(define-public ghc-yaml
5903 (package
5904 (name "ghc-yaml")
fe4f81bc 5905 (version "0.8.28")
132133c1
RW
5906 (source (origin
5907 (method url-fetch)
612fddec 5908 (uri (string-append "https://hackage.haskell.org/package/"
132133c1
RW
5909 "yaml/yaml-" version ".tar.gz"))
5910 (sha256
5911 (base32
fe4f81bc 5912 "0swgkzkfrwj0ac7lssn8rnrdfmh3lcsdn5fbq2iwv55di6jbc0pp"))))
132133c1 5913 (build-system haskell-build-system)
2d47cee2 5914 (inputs
132133c1
RW
5915 `(("ghc-conduit" ,ghc-conduit)
5916 ("ghc-resourcet" ,ghc-resourcet)
5917 ("ghc-aeson" ,ghc-aeson)
5918 ("ghc-unordered-containers" ,ghc-unordered-containers)
5919 ("ghc-vector" ,ghc-vector)
5920 ("ghc-text" ,ghc-text)
5921 ("ghc-attoparsec" ,ghc-attoparsec)
5922 ("ghc-scientific" ,ghc-scientific)
fe4f81bc
RW
5923 ("ghc-semigroups" ,ghc-semigroups)
5924 ("ghc-temporary" ,ghc-temporary)
132133c1 5925 ("ghc-enclosed-exceptions" ,ghc-enclosed-exceptions)
132133c1
RW
5926 ("ghc-base-compat" ,ghc-base-compat)))
5927 (native-inputs
5928 `(("ghc-hspec" ,ghc-hspec)
5929 ("ghc-hunit" ,ghc-hunit)
2d47cee2 5930 ("hspec-discover" ,hspec-discover)
132133c1 5931 ("ghc-mockery" ,ghc-mockery)))
612fddec 5932 (home-page "https://github.com/snoyberg/yaml/")
132133c1
RW
5933 (synopsis "Parsing and rendering YAML documents")
5934 (description
5935 "This package provides a library to parse and render YAML documents.")
3ac73271 5936 (license license:bsd-3)))
132133c1 5937
8e3149ee
RW
5938(define-public ghc-yaml-for-pandoc-1
5939 (package (inherit ghc-yaml)
5940 (inputs
5941 `(("ghc-aeson" ,ghc-aeson-for-pandoc-1)
5942 ,@(alist-delete "ghc-aeson" (package-inputs ghc-yaml))))))
5943
fcacbec3
RW
5944(define-public ghc-filemanip
5945 (package
5946 (name "ghc-filemanip")
5947 (version "0.3.6.3")
5948 (source (origin
5949 (method url-fetch)
612fddec 5950 (uri (string-append "https://hackage.haskell.org/package/"
fcacbec3
RW
5951 "filemanip/filemanip-" version ".tar.gz"))
5952 (sha256
5953 (base32
5954 "0ilqr8jv41zxcj5qyicg29m8s30b9v70x6f9h2h2rw5ap8bxldl8"))))
5955 (build-system haskell-build-system)
2d47cee2 5956 (inputs
f54f0475 5957 `(("ghc-unix-compat" ,ghc-unix-compat)))
fcacbec3
RW
5958 (home-page "https://github.com/bos/filemanip")
5959 (synopsis "File and directory manipulation for Haskell")
5960 (description
5961 "This package provides a Haskell library for working with files and
5962directories. It includes code for pattern matching, finding files, modifying
5963file contents, and more.")
3ac73271 5964 (license license:bsd-3)))
fcacbec3 5965
348519e1
RW
5966(define-public ghc-mmap
5967 (package
5968 (name "ghc-mmap")
5969 (version "0.5.9")
5970 (source (origin
5971 (method url-fetch)
612fddec 5972 (uri (string-append "https://hackage.haskell.org/package/"
348519e1
RW
5973 "mmap/mmap-" version ".tar.gz"))
5974 (sha256
5975 (base32
5976 "1y5mk3yf4b8r6rzmlx1xqn4skaigrqnv08sqq0v7r3nbw42bpz2q"))))
5977 (build-system haskell-build-system)
612fddec 5978 (home-page "https://hackage.haskell.org/package/mmap")
348519e1
RW
5979 (synopsis "Memory mapped files for Haskell")
5980 (description
5981 "This library provides a wrapper to @code{mmap}, allowing files or
5982devices to be lazily loaded into memory as strict or lazy @code{ByteStrings},
5983@code{ForeignPtrs} or plain @code{Ptrs}, using the virtual memory subsystem to
5984do on-demand loading.")
3ac73271 5985 (license license:bsd-3)))
348519e1 5986
12676ce8
RW
5987(define-public ghc-juicypixels
5988 (package
5989 (name "ghc-juicypixels")
7a1bc3b9 5990 (version "3.2.9.3")
12676ce8
RW
5991 (source (origin
5992 (method url-fetch)
612fddec 5993 (uri (string-append "https://hackage.haskell.org/package/"
12676ce8
RW
5994 "JuicyPixels/JuicyPixels-"
5995 version ".tar.gz"))
5996 (sha256
5997 (base32
7a1bc3b9 5998 "14s57fgf6kd5n5al2kcvk1aaxbq1ph0r5h8blflrjkx83yl6r8yn"))))
12676ce8 5999 (build-system haskell-build-system)
2d47cee2 6000 (inputs
f54f0475 6001 `(("ghc-zlib" ,ghc-zlib)
12676ce8
RW
6002 ("ghc-vector" ,ghc-vector)
6003 ("ghc-primitive" ,ghc-primitive)
6004 ("ghc-mmap" ,ghc-mmap)))
6005 (home-page "https://github.com/Twinside/Juicy.Pixels")
6006 (synopsis "Picture loading and serialization library")
6007 (description
6008 "This library can load and store images in PNG, Bitmap, JPEG, Radiance,
6009TIFF and GIF formats.")
3ac73271 6010 (license license:bsd-3)))
12676ce8 6011
ac5d633a
RW
6012(define-public ghc-hslua
6013 (package
6014 (name "ghc-hslua")
e045c014 6015 (version "0.9.5")
ac5d633a
RW
6016 (source (origin
6017 (method url-fetch)
612fddec 6018 (uri (string-append "https://hackage.haskell.org/package/"
ac5d633a
RW
6019 "hslua/hslua-" version ".tar.gz"))
6020 (sha256
6021 (base32
e045c014 6022 "1j2zk7f7nyywg2b0n6kb2yf6ljc7cn2sk9jz0h76g3ag2b70l12n"))))
ac5d633a 6023 (build-system haskell-build-system)
a231ef7e 6024 (arguments
ac5d633a
RW
6025 `(#:configure-flags '("-fsystem-lua")))
6026 (inputs
e045c014
RW
6027 `(("lua" ,lua)
6028 ("ghc-exceptions" ,ghc-exceptions)
6029 ("ghc-fail" ,ghc-fail)
2d47cee2 6030 ("ghc-text" ,ghc-text)))
ac5d633a 6031 (native-inputs
e045c014
RW
6032 `(("ghc-tasty" ,ghc-tasty)
6033 ("ghc-tasty-expected-failure" ,ghc-tasty-expected-failure)
6034 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
6035 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
ac5d633a
RW
6036 ("ghc-quickcheck" ,ghc-quickcheck)
6037 ("ghc-quickcheck-instances" ,ghc-quickcheck-instances)))
612fddec 6038 (home-page "https://hackage.haskell.org/package/hslua")
ac5d633a 6039 (synopsis "Lua language interpreter embedding in Haskell")
a231ef7e 6040 (description
ac5d633a 6041 "The Scripting.Lua module is a wrapper of the Lua language interpreter as
98b90194 6042described in @url{https://www.lua.org/}.")
3ac73271 6043 (license license:expat)))
ac5d633a 6044
f45c86b5
RW
6045(define-public ghc-hslua-for-pandoc-1
6046 (package (inherit ghc-hslua)
6047 (version "0.4.1")
6048 (source (origin
6049 (method url-fetch)
6050 (uri (string-append "https://hackage.haskell.org/package/"
6051 "hslua/hslua-" version ".tar.gz"))
6052 (sha256
6053 (base32
6054 "0gqp6qhp4v24kzv2j49kgk7bxqzw0w10x0zr0r2j9wkfavqb9wid"))))
6055 (inputs
6056 `(("lua" ,lua-5.1)
6057 ("ghc-text" ,ghc-text)))
6058 (native-inputs
6059 `(("ghc-quickcheck" ,ghc-quickcheck)
6060 ("ghc-quickcheck-instances" ,ghc-quickcheck-instances)
6061 ("ghc-hspec" ,ghc-hspec)
6062 ("ghc-hspec-contrib" ,ghc-hspec-contrib)
6063 ("ghc-hunit" ,ghc-hunit)
6064 ("hspec-discover" ,hspec-discover)))))
6065
8045d84d
RW
6066(define-public ghc-hslua-module-text
6067 (package
6068 (name "ghc-hslua-module-text")
6069 (version "0.1.2.1")
6070 (source
6071 (origin
6072 (method url-fetch)
6073 (uri (string-append "https://hackage.haskell.org/package/"
6074 "hslua-module-text/hslua-module-text-"
6075 version ".tar.gz"))
6076 (sha256
6077 (base32
6078 "0bcfpb1dhnxp0gr376ai4w7vczr9zrjl1r3r6w7kcxivfkwq9cxf"))))
6079 (build-system haskell-build-system)
6080 (inputs
6081 `(("ghc-hslua" ,ghc-hslua)
6082 ("ghc-text" ,ghc-text)))
6083 (native-inputs
6084 `(("ghc-tasty" ,ghc-tasty)
6085 ("ghc-tasty-hunit" ,ghc-tasty-hunit)))
6086 (home-page "https://github.com/hslua/hslua-module-text")
6087 (synopsis "Lua module for text")
6088 (description
6089 "This package provides a UTF-8 aware subset of Lua's @code{string} module
6090for Haskell. The functions provided by this module are @code{upper},
6091@code{lower}, @code{len}, @code{reverse}, and @code{sub}.")
6092 (license license:expat)))
6093
51c05fcf
RW
6094(define-public ghc-byteable
6095 (package
6096 (name "ghc-byteable")
6097 (version "0.1.1")
6098 (source (origin
6099 (method url-fetch)
612fddec 6100 (uri (string-append "https://hackage.haskell.org/package/"
51c05fcf
RW
6101 "byteable/byteable-" version ".tar.gz"))
6102 (sha256
6103 (base32
6104 "1qizg0kxxjqnd3cbrjhhidk5pbbciz0pb3z5kzikjjxnnnhk8fr4"))))
6105 (build-system haskell-build-system)
612fddec 6106 (home-page "https://github.com/vincenthz/hs-byteable")
51c05fcf
RW
6107 (synopsis "Type class for sequence of bytes")
6108 (description
6109 "This package provides an abstract class to manipulate sequence of bytes.
6110The use case of this class is abstracting manipulation of types that are just
6111wrapping a bytestring with stronger and more meaniful name.")
3ac73271 6112 (license license:bsd-3)))
51c05fcf 6113
45813e67
RW
6114(define-public ghc-hourglass
6115 (package
6116 (name "ghc-hourglass")
3a4181df 6117 (version "0.2.10")
45813e67
RW
6118 (source (origin
6119 (method url-fetch)
612fddec 6120 (uri (string-append "https://hackage.haskell.org/package/"
45813e67
RW
6121 "hourglass/hourglass-" version ".tar.gz"))
6122 (sha256
6123 (base32
3a4181df 6124 "104d1yd84hclprg740nkz60vx589mnm094zriw6zczbgg8nkclym"))))
45813e67 6125 (build-system haskell-build-system)
2d47cee2 6126 (inputs
f54f0475 6127 `(("ghc-old-locale" ,ghc-old-locale)))
45813e67
RW
6128 (native-inputs
6129 `(("ghc-tasty" ,ghc-tasty)
6130 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
6131 ("ghc-tasty-hunit" ,ghc-tasty-hunit)))
6132 (home-page "https://github.com/vincenthz/hs-hourglass")
6133 (synopsis "Simple time-related library for Haskell")
6134 (description
6135 "This is a simple time library providing a simple but powerful and
6136performant API. The backbone of the library are the @code{Timeable} and
6137@code{Time} type classes. Each @code{Timeable} instances can be converted to
6138a type that has a @code{Time} instances, and thus are different
6139representations of current time.")
3ac73271 6140 (license license:bsd-3)))
45813e67 6141
be04f802
AV
6142(define-public ghc-edit-distance
6143 (package
6144 (name "ghc-edit-distance")
6145 (version "0.2.2.1")
6146 (source
6147 (origin
6148 (method url-fetch)
6149 (uri (string-append "https://hackage.haskell.org/package/edit-distance"
6150 "/edit-distance-" version ".tar.gz"))
6151 (sha256
6152 (base32 "0jkca97zyv23yyilp3jydcrzxqhyk27swhzh82llvban5zp8b21y"))))
6153 (build-system haskell-build-system)
9f29ecc1
AW
6154 (arguments
6155 `(#:configure-flags (list "--allow-newer=QuickCheck")))
be04f802
AV
6156 (inputs
6157 `(("ghc-random" ,ghc-random)
6158 ("ghc-test-framework" ,ghc-test-framework)
6159 ("ghc-quickcheck" ,ghc-quickcheck)
6160 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
6161 (home-page "https://github.com/phadej/edit-distance")
6162 (synopsis "Levenshtein and restricted Damerau-Levenshtein edit distances")
6163 (description
6164 "This package provides optimized functions to determine the edit
6165distances for fuzzy matching, including Levenshtein and restricted
6166Damerau-Levenshtein algorithms.")
6167 (license license:bsd-3)))
6168
4dc2deb9
RW
6169(define-public ghc-memory
6170 (package
6171 (name "ghc-memory")
150e8e25 6172 (version "0.14.16")
4dc2deb9
RW
6173 (source (origin
6174 (method url-fetch)
612fddec 6175 (uri (string-append "https://hackage.haskell.org/package/"
4dc2deb9
RW
6176 "memory/memory-" version ".tar.gz"))
6177 (sha256
6178 (base32
150e8e25 6179 "03rbszi5d4z9rlbfv8ydrl1xf84xsh8z57g07f7j9qccn9587c3v"))))
4dc2deb9 6180 (build-system haskell-build-system)
150e8e25
RW
6181 (inputs
6182 `(("ghc-basement" ,ghc-basement)
6183 ("ghc-foundation" ,ghc-foundation)))
4dc2deb9
RW
6184 (native-inputs
6185 `(("ghc-tasty" ,ghc-tasty)
6186 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
6187 ("ghc-tasty-hunit" ,ghc-tasty-hunit)))
6188 (home-page "https://github.com/vincenthz/hs-memory")
6189 (synopsis "Memory abstractions for Haskell")
6190 (description
6191 "This package provides memory abstractions, such as chunk of memory,
6192polymorphic byte array management and manipulation functions. It contains a
6193polymorphic byte array abstraction and functions similar to strict ByteString,
6194different type of byte array abstraction, raw memory IO operations (memory
6195set, memory copy, ..) and more")
3ac73271 6196 (license license:bsd-3)))
4dc2deb9 6197
dcc5cf1d
RW
6198(define-public ghc-socks
6199 (package
6200 (name "ghc-socks")
15009c14 6201 (version "0.5.5")
dcc5cf1d
RW
6202 (source (origin
6203 (method url-fetch)
612fddec 6204 (uri (string-append "https://hackage.haskell.org/package/"
dcc5cf1d
RW
6205 "socks/socks-" version ".tar.gz"))
6206 (sha256
6207 (base32
15009c14 6208 "0s689w1hh9g8ifl75xhzbv96ir07hwn04b4lgvbxzl8swa9ylir6"))))
dcc5cf1d 6209 (build-system haskell-build-system)
2d47cee2 6210 (inputs
dcc5cf1d
RW
6211 `(("ghc-cereal" ,ghc-cereal)
6212 ("ghc-network" ,ghc-network)))
612fddec 6213 (home-page "https://github.com/vincenthz/hs-socks")
66e07664 6214 (synopsis "SOCKS proxy (version 5) implementation")
dcc5cf1d
RW
6215 (description
6216 "This library provides a SOCKS proxy (version 5) implementation.")
3ac73271 6217 (license license:bsd-3)))
dcc5cf1d 6218
86dd2ce0
RW
6219(define-public ghc-connection
6220 (package
6221 (name "ghc-connection")
e41fad21 6222 (version "0.2.6")
86dd2ce0
RW
6223 (source (origin
6224 (method url-fetch)
612fddec 6225 (uri (string-append "https://hackage.haskell.org/package/"
86dd2ce0
RW
6226 "connection/connection-"
6227 version ".tar.gz"))
6228 (sha256
6229 (base32
e41fad21 6230 "1c1prsgad669cmf6qrqlb5hmh0dnam2imijqzpwcr4ja14l6rh83"))))
86dd2ce0 6231 (build-system haskell-build-system)
2d47cee2 6232 (inputs
86dd2ce0
RW
6233 `(("ghc-byteable" ,ghc-byteable)
6234 ("ghc-data-default-class" ,ghc-data-default-class)
6235 ("ghc-network" ,ghc-network)
6236 ("ghc-tls" ,ghc-tls)
6237 ("ghc-socks" ,ghc-socks)
6238 ("ghc-x509" ,ghc-x509)
6239 ("ghc-x509-store" ,ghc-x509-store)
6240 ("ghc-x509-system" ,ghc-x509-system)
6241 ("ghc-x509-validation" ,ghc-x509-validation)))
612fddec 6242 (home-page "https://github.com/vincenthz/hs-connection")
86dd2ce0
RW
6243 (synopsis "Simple and easy network connections API")
6244 (description
6245 "This package provides a simple network library for all your connection
6246needs. It provides a very simple API to create sockets to a destination with
6247the choice of SSL/TLS, and SOCKS.")
3ac73271 6248 (license license:bsd-3)))
86dd2ce0 6249
14e9a397
RW
6250(define-public ghc-skylighting
6251 (package
6252 (name "ghc-skylighting")
6253 (version "0.5.1")
6254 (source (origin
6255 (method url-fetch)
6256 (uri (string-append "https://hackage.haskell.org/package/skylighting-"
6257 version "/skylighting-" version ".tar.gz"))
6258 (sha256
6259 (base32
6260 "0l5lhhqqlfaq1fs7pn3n3b25kmazk8p4ahwvhagbrhcbm5hsigdg"))))
6261 (build-system haskell-build-system)
6262 (inputs
6263 `(("ghc-aeson" ,ghc-aeson)
6264 ("ghc-ansi-terminal" ,ghc-ansi-terminal)
6265 ("ghc-attoparsec" ,ghc-attoparsec)
6266 ("ghc-base64-bytestring" ,ghc-base64-bytestring)
6267 ("ghc-blaze-html" ,ghc-blaze-html)
6268 ("ghc-case-insensitive" ,ghc-case-insensitive)
6269 ("ghc-colour" ,ghc-colour)
6270 ("ghc-diff" ,ghc-diff)
6271 ("ghc-hxt" ,ghc-hxt)
14e9a397
RW
6272 ("ghc-pretty-show" ,ghc-pretty-show)
6273 ("ghc-regex-pcre-builtin" ,ghc-regex-pcre-builtin)
6274 ("ghc-safe" ,ghc-safe)
6275 ("ghc-text" ,ghc-text)
6276 ("ghc-utf8-string" ,ghc-utf8-string)))
6277 (native-inputs
6278 `(("ghc-hunit" ,ghc-hunit)
6279 ("ghc-quickcheck" ,ghc-quickcheck)
6280 ("ghc-tasty" ,ghc-tasty)
6281 ("ghc-tasty-golden" ,ghc-tasty-golden)
6282 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
6283 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
6284 (home-page "https://hackage.haskell.org/package/skylighting")
6285 (synopsis "Syntax highlighting library")
6286 (description "Skylighting is a syntax highlighting library with support
6287for over one hundred languages. It derives its tokenizers from XML syntax
6288definitions used by KDE's @code{KSyntaxHighlighting} framework, so any syntax
6289supported by that framework can be added. An optional command-line program is
6290provided. Skylighting is intended to be the successor to highlighting-kate.")
6291 (license license:gpl2)))
6292
08eaa0d8
RW
6293(define-public ghc-skylighting-for-pandoc-1
6294 (package (inherit ghc-skylighting)
6295 (version "0.1.1.5")
6296 (source (origin
6297 (method git-fetch)
6298 ;; We take the sources from Github, because the tarball on
6299 ;; hackage does not include the XML files.
6300 (uri (git-reference
6301 (url "https://github.com/jgm/skylighting.git")
6302 (commit version)))
6303 (file-name (string-append "ghc-skylighting-" version "-checkout"))
6304 (sha256
6305 (base32
6306 "0z3yv8v2fqqgv6lsf0ff3ld0h2vkg97b2jiry9wn2f1rizwdqmzl"))))
6307 (arguments
6308 `(#:configure-flags '("-fbootstrap")
6309 #:phases
6310 (modify-phases %standard-phases
6311 ;; After building the skylighting-extract tool we use it to generate
6312 ;; syntax source files from the included XML files. These are then
6313 ;; added to the skylighting.cabal file.
6314 (add-after 'build 'extract-xml
6315 (lambda _
6316 (make-file-writable "skylighting.cabal")
6317 (apply invoke "./dist/build/skylighting-extract/skylighting-extract"
6318 (find-files "xml" "\\.xml$"))
6319 #t))
6320 ;; Reconfigure without bootstrap flag
6321 (add-after 'extract-xml 'configure-again
6322 (lambda* (#:key outputs inputs tests? #:allow-other-keys)
6323 ((assoc-ref %standard-phases 'configure)
6324 #:outputs outputs
6325 #:inputs inputs
6326 #:tests? tests?
6327 #:configure-flags '("-f-bootstrap"))))
6328 (add-after 'configure-again 'build-again
6329 (assoc-ref %standard-phases 'build)))))
6330 (inputs
6331 `(("ghc-aeson" ,ghc-aeson-for-pandoc-1)
6332 ("ghc-ansi-terminal" ,ghc-ansi-terminal)
6333 ("ghc-blaze-html" ,ghc-blaze-html)
6334 ("ghc-case-insensitive" ,ghc-case-insensitive)
6335 ("ghc-diff" ,ghc-diff)
6336 ("ghc-hxt" ,ghc-hxt)
08eaa0d8
RW
6337 ("ghc-pretty-show" ,ghc-pretty-show)
6338 ("ghc-regex-pcre-builtin" ,ghc-regex-pcre-builtin)
6339 ("ghc-safe" ,ghc-safe)
6340 ("ghc-text" ,ghc-text)
6341 ("ghc-utf8-string" ,ghc-utf8-string)))))
6342
4012ea04
RW
6343(define-public ghc-doctemplates
6344 (package
6345 (name "ghc-doctemplates")
6346 (version "0.2.1")
6347 (source
6348 (origin
6349 (method url-fetch)
6350 (uri (string-append "https://hackage.haskell.org/package/"
6351 "doctemplates/doctemplates-"
6352 version ".tar.gz"))
6353 (sha256
6354 (base32
6355 "1bfs2kl5j5al2w2y4qpbn68p0xsnb65r7h51l356kpkzc326646p"))))
6356 (build-system haskell-build-system)
6357 (inputs
6358 `(("ghc-aeson" ,ghc-aeson)
6359 ("ghc-blaze-markup" ,ghc-blaze-markup)
6360 ("ghc-blaze-html" ,ghc-blaze-html)
6361 ("ghc-text" ,ghc-text)
6362 ("ghc-vector" ,ghc-vector)
6363 ("ghc-parsec" ,ghc-parsec)
6364 ("ghc-unordered-containers" ,ghc-unordered-containers)
6365 ("ghc-scientific" ,ghc-scientific)))
6366 (native-inputs
6367 `(("ghc-hspec" ,ghc-hspec)))
6368 (home-page "https://github.com/jgm/doctemplates#readme")
6369 (synopsis "Pandoc-style document templates")
6370 (description
6371 "This package provides a simple text templating system used by pandoc.")
6372 (license license:bsd-3)))
6c055278
RW
6373
6374(define-public ghc-doctemplates-for-pandoc-1
6375 (package (inherit ghc-doctemplates)
6376 (version "0.1.0.2")
6377 (source
6378 (origin
6379 (method url-fetch)
6380 (uri (string-append "https://hackage.haskell.org/package/"
6381 "doctemplates/doctemplates-"
6382 version ".tar.gz"))
6383 (sha256
6384 (base32
6385 "0swal6rjya1293mwvl63jch5fx9ghpsil7qs4v7rpansa0izalmp"))))
6386 (build-system haskell-build-system)
6387 (inputs
6388 `(("ghc-aeson" ,ghc-aeson-for-pandoc-1)
6389 ("ghc-blaze-markup" ,ghc-blaze-markup)
6390 ("ghc-blaze-html" ,ghc-blaze-html)
6391 ("ghc-text" ,ghc-text)
6392 ("ghc-vector" ,ghc-vector)
6393 ("ghc-parsec" ,ghc-parsec)
6394 ("ghc-unordered-containers" ,ghc-unordered-containers)
6395 ("ghc-scientific" ,ghc-scientific)))))
4012ea04 6396
85538709
RW
6397(define-public ghc-pandoc
6398 (package
6399 (name "ghc-pandoc")
970481f1 6400 (version "2.2.1")
85538709
RW
6401 (source
6402 (origin
6403 (method url-fetch)
612fddec 6404 (uri (string-append "https://hackage.haskell.org/package/pandoc/pandoc-"
85538709
RW
6405 version ".tar.gz"))
6406 (sha256
6407 (base32
970481f1 6408 "1dqin92w513l7whg5wdgrngnxsj5mb8gppfvn7kjgyv2pdgpy0zy"))))
85538709 6409 (build-system haskell-build-system)
2d47cee2 6410 (inputs
1afa5abb
RW
6411 `(("ghc-aeson" ,ghc-aeson)
6412 ("ghc-aeson-pretty" ,ghc-aeson-pretty)
85538709 6413 ("ghc-base64-bytestring" ,ghc-base64-bytestring)
85538709
RW
6414 ("ghc-blaze-html" ,ghc-blaze-html)
6415 ("ghc-blaze-markup" ,ghc-blaze-markup)
1afa5abb
RW
6416 ("ghc-cmark-gfm" ,ghc-cmark-gfm)
6417 ("ghc-data-default" ,ghc-data-default)
85538709 6418 ("ghc-deepseq-generics" ,ghc-deepseq-generics)
1afa5abb
RW
6419 ("ghc-diff" ,ghc-diff)
6420 ("ghc-doctemplates" ,ghc-doctemplates)
6421 ("ghc-executable-path" ,ghc-executable-path)
6422 ("ghc-glob" ,ghc-glob)
6423 ("ghc-haddock-library" ,ghc-haddock-library)
6424 ("ghc-hslua" ,ghc-hslua)
6425 ("ghc-hslua-module-text" ,ghc-hslua-module-text)
6426 ("ghc-http" ,ghc-http)
85538709
RW
6427 ("ghc-http-client" ,ghc-http-client)
6428 ("ghc-http-client-tls" ,ghc-http-client-tls)
6429 ("ghc-http-types" ,ghc-http-types)
1afa5abb 6430 ("ghc-juicypixels" ,ghc-juicypixels)
1afa5abb
RW
6431 ("ghc-network" ,ghc-network)
6432 ("ghc-network-uri" ,ghc-network-uri)
6433 ("ghc-old-locale" ,ghc-old-locale)
6434 ("ghc-pandoc-types" ,ghc-pandoc-types)
6435 ("ghc-parsec" ,ghc-parsec)
6436 ("ghc-random" ,ghc-random)
6437 ("ghc-scientific" ,ghc-scientific)
6438 ("ghc-sha" ,ghc-sha)
6439 ("ghc-skylighting" ,ghc-skylighting)
6440 ("ghc-split" ,ghc-split)
6441 ("ghc-syb" ,ghc-syb)
6442 ("ghc-tagsoup" ,ghc-tagsoup)
6443 ("ghc-temporary" ,ghc-temporary)
6444 ("ghc-texmath" ,ghc-texmath)
6445 ("ghc-text" ,ghc-text)
6446 ("ghc-unordered-containers" ,ghc-unordered-containers)
6447 ("ghc-vector" ,ghc-vector)
6448 ("ghc-xml" ,ghc-xml)
6449 ("ghc-yaml" ,ghc-yaml)
6450 ("ghc-zip-archive" ,ghc-zip-archive)
6451 ("ghc-zlib" ,ghc-zlib)))
85538709 6452 (native-inputs
1afa5abb
RW
6453 `(("ghc-tasty" ,ghc-tasty)
6454 ("ghc-tasty-golden" ,ghc-tasty-golden)
6455 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
6456 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
85538709
RW
6457 ("ghc-quickcheck" ,ghc-quickcheck)
6458 ("ghc-hunit" ,ghc-hunit)))
98b90194 6459 (home-page "https://pandoc.org")
85538709
RW
6460 (synopsis "Conversion between markup formats")
6461 (description
6462 "Pandoc is a Haskell library for converting from one markup format to
6463another, and a command-line tool that uses this library. It can read and
6464write Markdown and (subsets of) other formats, such as HTML, reStructuredText,
6465LaTeX, DocBook, and many more.
6466
6467Pandoc extends standard Markdown syntax with footnotes, embedded LaTeX,
6468definition lists, tables, and other features. A compatibility mode is
6469provided for those who need a drop-in replacement for Markdown.pl.")
3ac73271 6470 (license license:gpl2+)))
85538709 6471
8b1e1e4c
RW
6472;; This is the last version of Pandoc 1.x, which is preferred for Rmarkdown.
6473(define-public ghc-pandoc-1
6474 (package (inherit ghc-pandoc)
6475 (version "1.19.2.4")
6476 (source
6477 (origin
6478 (method url-fetch)
6479 (uri (string-append "https://hackage.haskell.org/package/pandoc/pandoc-"
6480 version ".tar.gz"))
6481 (sha256
6482 (base32
6483 "0mim429mpakrcnm50csxyqk3ljcx2l26r5grk6w9isnggwgqrq5v"))))
6484 (arguments
6485 `(#:configure-flags (list "--allow-newer=skylighting")))
6486 (inputs
6487 `(("ghc-aeson" ,ghc-aeson-for-pandoc-1)
6488 ("ghc-ansi-terminal" ,ghc-ansi-terminal)
6489 ("ghc-base64-bytestring" ,ghc-base64-bytestring)
6490 ("ghc-blaze-html" ,ghc-blaze-html)
6491 ("ghc-blaze-markup" ,ghc-blaze-markup)
6492 ("ghc-cmark" ,ghc-cmark)
6493 ("ghc-data-default" ,ghc-data-default)
6494 ("ghc-deepseq-generics" ,ghc-deepseq-generics)
6495 ("ghc-diff" ,ghc-diff)
6496 ("ghc-doctemplates" ,ghc-doctemplates-for-pandoc-1)
6497 ("ghc-executable-path" ,ghc-executable-path)
6498 ("ghc-extensible-exceptions" ,ghc-extensible-exceptions)
6499 ("ghc-filemanip" ,ghc-filemanip)
6500 ("ghc-haddock-library" ,ghc-haddock-library)
6501 ("ghc-hslua" ,ghc-hslua-for-pandoc-1)
6502 ("ghc-http" ,ghc-http)
6503 ("ghc-http-client" ,ghc-http-client)
6504 ("ghc-http-client-tls" ,ghc-http-client-tls)
6505 ("ghc-http-types" ,ghc-http-types)
6506 ("ghc-juicypixels" ,ghc-juicypixels)
8b1e1e4c
RW
6507 ("ghc-network" ,ghc-network)
6508 ("ghc-network-uri" ,ghc-network-uri)
6509 ("ghc-old-time" ,ghc-old-time)
6510 ("ghc-pandoc-types" ,ghc-pandoc-types-for-pandoc-1)
6511 ("ghc-parsec" ,ghc-parsec)
6512 ("ghc-random" ,ghc-random)
6513 ("ghc-scientific" ,ghc-scientific)
6514 ("ghc-sha" ,ghc-sha)
6515 ("ghc-skylighting" ,ghc-skylighting-for-pandoc-1)
6516 ("ghc-syb" ,ghc-syb)
6517 ("ghc-tagsoup" ,ghc-tagsoup)
6518 ("ghc-temporary" ,ghc-temporary)
6519 ("ghc-texmath" ,ghc-texmath-for-pandoc-1)
6520 ("ghc-text" ,ghc-text)
6521 ("ghc-unordered-containers" ,ghc-unordered-containers)
6522 ("ghc-vector" ,ghc-vector)
6523 ("ghc-xml" ,ghc-xml)
6524 ("ghc-yaml" ,ghc-yaml-for-pandoc-1)
6525 ("ghc-zip-archive" ,ghc-zip-archive)
6526 ("ghc-zlib" ,ghc-zlib)))
6527 (native-inputs
6528 `(("ghc-test-framework" ,ghc-test-framework)
6529 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
6530 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))))
6531
37e02bf6
RW
6532(define-public ghc-hs-bibutils
6533 (package
6534 (name "ghc-hs-bibutils")
1ddcb5e3 6535 (version "6.2.0.1")
37e02bf6
RW
6536 (source
6537 (origin
6538 (method url-fetch)
6539 (uri (string-append
6540 "https://hackage.haskell.org/package/hs-bibutils/hs-bibutils-"
6541 version ".tar.gz"))
6542 (sha256
6543 (base32
1ddcb5e3 6544 "0c56sjgg82kjcg5rrplnyn7vf02ccsj3kkcbgc87zxlv0j880rjb"))))
37e02bf6
RW
6545 (build-system haskell-build-system)
6546 (inputs `(("ghc-syb" ,ghc-syb)))
6547 (home-page "https://hackage.haskell.org/package/hs-bibutils")
6548 (synopsis "Haskell bindings to bibutils")
6549 (description
6550 "This package provides Haskell bindings to @code{bibutils}, a library
6551that interconverts between various bibliography formats using a common
6552MODS-format XML intermediate.")
6553 (license license:gpl2+)))
6554
9ce764b6
RW
6555(define-public ghc-rfc5051
6556 (package
6557 (name "ghc-rfc5051")
6558 (version "0.1.0.3")
6559 (source
6560 (origin
6561 (method url-fetch)
6562 (uri (string-append "https://hackage.haskell.org/package/rfc5051/"
6563 "rfc5051-" version ".tar.gz"))
6564 (sha256
6565 (base32
6566 "0av4c3qvwbkbzrjrrg601ay9pds7wscqqp2lc2z78mv2lllap3g3"))))
6567 (build-system haskell-build-system)
98b90194 6568 (home-page "https://hackage.haskell.org/package/rfc5051")
9ce764b6
RW
6569 (synopsis "Simple unicode collation as per RFC5051")
6570 (description
6571 "This library implements @code{unicode-casemap}, the simple, non
6572locale-sensitive unicode collation algorithm described in RFC 5051. Proper
6573unicode collation can be done using @code{text-icu}, but that is a big
6574dependency that depends on a large C library, and @code{rfc5051} might be
6575better for some purposes.")
6576 (license license:bsd-3)))
6577
d5040b44
RW
6578(define-public ghc-typed-process
6579 (package
6580 (name "ghc-typed-process")
6581 (version "0.2.2.0")
6582 (source
6583 (origin
6584 (method url-fetch)
6585 (uri (string-append "https://hackage.haskell.org/package/"
6586 "typed-process/typed-process-"
6587 version ".tar.gz"))
6588 (sha256
6589 (base32
6590 "0c6gvgvjyncbni9a5bvpbglknd4yclr3d3hfg9bhgahmkj40dva2"))))
6591 (build-system haskell-build-system)
6592 (inputs
6593 `(("ghc-async" ,ghc-async)
6594 ("ghc-stm" ,ghc-stm)))
6595 (native-inputs
6596 `(("ghc-base64-bytestring" ,ghc-base64-bytestring)
6597 ("ghc-hspec" ,ghc-hspec)
6598 ("hspec-discover" ,hspec-discover)
6599 ("ghc-temporary" ,ghc-temporary)))
6600 (home-page "https://haskell-lang.org/library/typed-process")
6601 (synopsis "Run external processes with strong typing of streams")
6602 (description
6603 "This library provides the ability to launch and interact with external
6604processes. It wraps around the @code{process} library, and intends to improve
6605upon it.")
6606 (license license:expat)))
6607
1aa45bbf
RW
6608(define-public ghc-conduit-extra
6609 (package
6610 (name "ghc-conduit-extra")
c106c48e 6611 (version "1.3.0")
1aa45bbf
RW
6612 (source
6613 (origin
6614 (method url-fetch)
6615 (uri (string-append "https://hackage.haskell.org/package/"
6616 "conduit-extra/conduit-extra-"
6617 version ".tar.gz"))
6618 (sha256
6619 (base32
c106c48e 6620 "1bi2b6kdzy5f9glq46jzsk02has95jkxqz0cchpbmnakzhjwjh9c"))))
1aa45bbf
RW
6621 (build-system haskell-build-system)
6622 (inputs
6623 `(("ghc-conduit" ,ghc-conduit)
6624 ("ghc-exceptions" ,ghc-exceptions)
6625 ("ghc-monad-control" ,ghc-monad-control)
6626 ("ghc-text" ,ghc-text)
6627 ("ghc-transformers-base" ,ghc-transformers-base)
c106c48e 6628 ("ghc-typed-process" ,ghc-typed-process)
1aa45bbf
RW
6629 ("ghc-async" ,ghc-async)
6630 ("ghc-attoparsec" ,ghc-attoparsec)
6631 ("ghc-blaze-builder" ,ghc-blaze-builder)
6632 ("ghc-network" ,ghc-network)
6633 ("ghc-primitive" ,ghc-primitive)
6634 ("ghc-resourcet" ,ghc-resourcet)
6635 ("ghc-stm" ,ghc-stm)
6636 ("ghc-streaming-commons" ,ghc-streaming-commons)
6637 ("ghc-hspec" ,ghc-hspec)
6638 ("ghc-bytestring-builder" ,ghc-bytestring-builder)
6639 ("ghc-quickcheck" ,ghc-quickcheck)))
6640 (native-inputs
6641 `(("hspec-discover" ,hspec-discover)))
7bf837fd 6642 (home-page "https://github.com/snoyberg/conduit")
1aa45bbf
RW
6643 (synopsis "Conduit adapters for common libraries")
6644 (description
6645 "The @code{conduit} package itself maintains relative small dependencies.
6646The purpose of this package is to collect commonly used utility functions
6647wrapping other library dependencies, without depending on heavier-weight
6648dependencies. The basic idea is that this package should only depend on
6649@code{haskell-platform} packages and @code{conduit}.")
6650 (license license:expat)))
6651
e9ef2c51
RW
6652(define-public ghc-xml-types
6653 (package
6654 (name "ghc-xml-types")
6655 (version "0.3.6")
6656 (source
6657 (origin
6658 (method url-fetch)
6659 (uri (string-append "https://hackage.haskell.org/package/xml-types/"
6660 "xml-types-" version ".tar.gz"))
6661 (sha256
6662 (base32
6663 "1jgqxsa9p2q3h6nymbfmvhldqrqlwrhrzmwadlyc0li50x0d8dwr"))))
6664 (build-system haskell-build-system)
6665 (inputs `(("ghc-text" ,ghc-text)))
6666 (home-page "https://john-millikin.com/software/haskell-xml/")
6667 (synopsis "Basic types for representing XML")
6668 (description "This package provides basic types for representing XML
6669documents.")
6670 (license license:expat)))
6671
bfdfb0f6
RW
6672(define-public ghc-xml-conduit
6673 (package
6674 (name "ghc-xml-conduit")
e30397dd 6675 (version "1.8.0.1")
bfdfb0f6
RW
6676 (source
6677 (origin
6678 (method url-fetch)
6679 (uri (string-append "https://hackage.haskell.org/package/xml-conduit/"
6680 "xml-conduit-" version ".tar.gz"))
6681 (sha256
6682 (base32
e30397dd 6683 "177gmyigxql1pn3ncz0r8annwv5cbxnihbgrrg1dhm4gmc9jy2wq"))))
bfdfb0f6
RW
6684 (build-system haskell-build-system)
6685 (inputs
6686 `(("ghc-conduit" ,ghc-conduit)
6687 ("ghc-conduit-extra" ,ghc-conduit-extra)
e30397dd 6688 ("ghc-doctest" ,ghc-doctest)
bfdfb0f6
RW
6689 ("ghc-resourcet" ,ghc-resourcet)
6690 ("ghc-text" ,ghc-text)
6691 ("ghc-xml-types" ,ghc-xml-types)
6692 ("ghc-attoparsec" ,ghc-attoparsec)
29a26386 6693 ("ghc-data-default-class" ,ghc-data-default-class)
bfdfb0f6
RW
6694 ("ghc-blaze-markup" ,ghc-blaze-markup)
6695 ("ghc-blaze-html" ,ghc-blaze-html)
bfdfb0f6
RW
6696 ("ghc-monad-control" ,ghc-monad-control)
6697 ("ghc-hspec" ,ghc-hspec)
6698 ("ghc-hunit" ,ghc-hunit)))
7bf837fd 6699 (home-page "https://github.com/snoyberg/xml")
bfdfb0f6
RW
6700 (synopsis "Utilities for dealing with XML with the conduit package")
6701 (description
6702 "This package provides pure-Haskell utilities for dealing with XML with
6703the @code{conduit} package.")
6704 (license license:expat)))
6705
eb0ff8a3
RW
6706(define-public ghc-pandoc-citeproc
6707 (package
6708 (name "ghc-pandoc-citeproc")
a235ea4f 6709 (version "0.14.3.1")
eb0ff8a3
RW
6710 (source
6711 (origin
6712 (method url-fetch)
6713 (uri (string-append "https://hackage.haskell.org/package/"
6714 "pandoc-citeproc/pandoc-citeproc-"
6715 version ".tar.gz"))
6716 (sha256
6717 (base32
a235ea4f 6718 "0yj6rckwsc9vig40cm15ry0j3d01xpk04qma9n4byhal6v4b5h22"))))
eb0ff8a3
RW
6719 (build-system haskell-build-system)
6720 (arguments
6721 `(#:phases
6722 (modify-phases %standard-phases
6723 ;; Tests need to be run after installation.
6724 (delete 'check)
6725 (add-after 'install 'post-install-check
6726 (assoc-ref %standard-phases 'check)))))
6727 (inputs
f54f0475 6728 `(("ghc-pandoc-types" ,ghc-pandoc-types)
eb0ff8a3
RW
6729 ("ghc-pandoc" ,ghc-pandoc)
6730 ("ghc-tagsoup" ,ghc-tagsoup)
6731 ("ghc-aeson" ,ghc-aeson)
6732 ("ghc-text" ,ghc-text)
6733 ("ghc-vector" ,ghc-vector)
6734 ("ghc-xml-conduit" ,ghc-xml-conduit)
6735 ("ghc-unordered-containers" ,ghc-unordered-containers)
6736 ("ghc-data-default" ,ghc-data-default)
6737 ("ghc-setenv" ,ghc-setenv)
6738 ("ghc-split" ,ghc-split)
6739 ("ghc-yaml" ,ghc-yaml)
6740 ("ghc-hs-bibutils" ,ghc-hs-bibutils)
6741 ("ghc-rfc5051" ,ghc-rfc5051)
6742 ("ghc-syb" ,ghc-syb)
6743 ("ghc-parsec" ,ghc-parsec)
6744 ("ghc-old-locale" ,ghc-old-locale)
6745 ("ghc-aeson-pretty" ,ghc-aeson-pretty)
6746 ("ghc-attoparsec" ,ghc-attoparsec)
6747 ("ghc-temporary" ,ghc-temporary)))
6748 (home-page "https://github.com/jgm/pandoc-citeproc")
6749 (synopsis "Library for using pandoc with citeproc")
6750 (description
6751 "The @code{pandoc-citeproc} library exports functions for using the
6752citeproc system with pandoc. It relies on @code{citeproc-hs}, a library for
6753rendering bibliographic reference citations into a variety of styles using a
6754macro language called @dfn{Citation Style Language} (CSL). This package also
6755contains an executable @code{pandoc-citeproc}, which works as a pandoc filter,
6756and also has a mode for converting bibliographic databases a YAML format
6757suitable for inclusion in pandoc YAML metadata.")
6758 (license license:bsd-3)))
6759
8c6117ee
RW
6760(define-public ghc-pandoc-citeproc-with-pandoc-1
6761 (let ((for-pandoc-1
6762 (package-input-rewriting
6763 `((,ghc-aeson . ,ghc-aeson-for-pandoc-1)
6764 (,ghc-yaml . ,ghc-yaml-for-pandoc-1)
6765 (,ghc-texmath . ,ghc-texmath-for-pandoc-1)
6766 (,ghc-pandoc-types . ,ghc-pandoc-types-for-pandoc-1)
6767 (,ghc-hslua . ,ghc-hslua-for-pandoc-1)
6768 (,ghc-skylighting . ,ghc-skylighting-for-pandoc-1)
6769 (,ghc-doctemplates . ,ghc-doctemplates-for-pandoc-1)
6770 (,ghc-pandoc . ,ghc-pandoc-1)))))
6771 (for-pandoc-1 ghc-pandoc-citeproc)))
6772
abbf2623
LC
6773(define-public ghc-union-find
6774 (package
6775 (name "ghc-union-find")
6776 (version "0.2")
6777 (source (origin
6778 (method url-fetch)
6779 (uri (string-append
612fddec 6780 "https://hackage.haskell.org/package/union-find/union-find-"
abbf2623
LC
6781 version ".tar.gz"))
6782 (sha256
6783 (base32
6784 "1v7hj42j9w6jlzi56jg8rh4p58gfs1c5dx30wd1qqvn0p0mnihp6"))))
6785 (build-system haskell-build-system)
612fddec 6786 (home-page "https://github.com/nominolo/union-find")
abbf2623
LC
6787 (synopsis "Efficient union and equivalence testing of sets")
6788 (description
6789 "The Union/Find algorithm implements these operations in (effectively)
6790constant-time:
6791@enumerate
6792@item Check whether two elements are in the same equivalence class.
6793@item Create a union of two equivalence classes.
6794@item Look up the descriptor of the equivalence class.
6795@end enumerate\n")
6796 (license license:bsd-3)))
6797
cc5e16a7 6798(define-public ghc-base16-bytestring
6799 (package
6800 (name "ghc-base16-bytestring")
6801 (version "0.1.1.6")
6802 (source
6803 (origin
6804 (method url-fetch)
6805 (uri (string-append
6806 "https://hackage.haskell.org/package/base16-bytestring/"
6807 "base16-bytestring-" version ".tar.gz"))
6808 (sha256
6809 (base32
6810 "0jf40m3yijqw6wd1rwwvviww46fasphaay9m9rgqyhf5aahnbzjs"))))
6811 (build-system haskell-build-system)
7bf837fd 6812 (home-page "https://github.com/bos/base16-bytestring")
cc5e16a7 6813 (synopsis "Fast base16 (hex) encoding and decoding for ByteStrings")
6814 (description
6815 "This package provides a Haskell library for working with base16-encoded
6816data quickly and efficiently, using the ByteString type.")
6817 (license license:bsd-3)))
6818
7c14128d 6819(define-public ghc-data-ordlist
6820 (package
6821 (name "ghc-data-ordlist")
6822 (version "0.4.7.0")
6823 (source
6824 (origin
6825 (method url-fetch)
6826 (uri (string-append
6827 "https://hackage.haskell.org/package/data-ordlist/data-ordlist-"
6828 version ".tar.gz"))
6829 (sha256
6830 (base32
6831 "03a9ix1fcx08viwv2jg5ndw1qbkydyyrmjvqr9wasmcik9x1wv3g"))))
6832 (build-system haskell-build-system)
98b90194 6833 (home-page "https://hackage.haskell.org/package/data-ordlist")
7c14128d 6834 (synopsis "Set and bag operations on ordered lists")
6835 (description
6836 "This module provides set and multiset operations on ordered lists.")
6837 (license license:bsd-3)))
6838
d58dc851 6839(define-public ghc-regex-applicative
6840 (package
6841 (name "ghc-regex-applicative")
6842 (version "0.3.3")
6843 (source
6844 (origin
6845 (method url-fetch)
6846 (uri (string-append
6847 "https://hackage.haskell.org/package/regex-applicative/"
6848 "regex-applicative-" version ".tar.gz"))
6849 (sha256
6850 (base32
6851 "1riv7jqf26lbv4rm54sd6mrx8xdh4dvh4xbzymzdfdw13k6a4nb6"))))
6852 (build-system haskell-build-system)
6853 (inputs
6854 `(("ghc-smallcheck" ,ghc-smallcheck)
6855 ("ghc-tasty" ,ghc-tasty)
6856 ("ghc-tasty-smallcheck" ,ghc-tasty-smallcheck)
6857 ("ghc-tasty-hunit" ,ghc-tasty-hunit)))
6858 (home-page "https://github.com/feuerbach/regex-applicative")
6859 (synopsis "Regex-based parsing with applicative interface")
6860 (description
6861 "@code{regex-applicative} is a Haskell library for parsing using
6862regular expressions. Parsers can be built using Applicative interface.")
6863 (license license:expat)))
6864
7e444dba 6865(define-public ghc-regex-tdfa
6866 (package
6867 (name "ghc-regex-tdfa")
6868 (version "1.2.2")
6869 (source
6870 (origin
6871 (method url-fetch)
6872 (uri (string-append
6873 "https://hackage.haskell.org/package/regex-tdfa/regex-tdfa-"
6874 version ".tar.gz"))
6875 (sha256
6876 (base32
6877 "0f8x8wyr6m21g8dnxvnvalz5bsq37l125l6qhs0fscbvprsxc4nb"))))
6878 (build-system haskell-build-system)
6879 (inputs
f54f0475 6880 `(("ghc-parsec" ,ghc-parsec)
7e444dba 6881 ("ghc-regex-base" ,ghc-regex-base)))
6882 (home-page "https://github.com/ChrisKuklewicz/regex-tdfa")
6883 (synopsis "POSIX extended regular expressions in Haskell.")
6884 (description
6885 "Regex-tdfa is a pure Haskell regular expression library implementing POSIX
6886extended regular expressions. It is a \"tagged\" DFA regex engine. It is
6887inspired by libtre.")
6888 (license license:bsd-3)))
6889
fe3c62c7 6890(define-public ghc-regex-compat-tdfa
6891 (package
6892 (name "ghc-regex-compat-tdfa")
6893 (version "0.95.1.4")
6894 (source
6895 (origin
6896 (method url-fetch)
6897 (uri (string-append
6898 "https://hackage.haskell.org/package/regex-compat-tdfa/regex-compat-tdfa-"
6899 version ".tar.gz"))
6900 (sha256
6901 (base32
6902 "1p90fn90yhp7fvljjdqjp41cszidcfz4pw7fwvzyx4739b98x8sg"))))
6903 (build-system haskell-build-system)
6904 (inputs
6905 `(("ghc-regex-base" ,ghc-regex-base)
6906 ("ghc-regex-tdfa" ,ghc-regex-tdfa)))
98b90194 6907 (home-page "https://hub.darcs.net/shelarcy/regex-compat-tdfa")
fe3c62c7 6908 (synopsis "Unicode Support version of Text.Regex, using regex-tdfa")
6909 (description
6910 "One module layer over @code{regex-tdfa} to replace @code{Text.Regex}.
6911@code{regex-compat} can't use Unicode characters correctly because of using regex-posix.
6912This is not good for Unicode users. This modified regex-compat uses regex-tdfa to solve
6913this problem.")
6914 (license license:bsd-3)))
6915
e9e519be 6916(define-public ghc-sandi
6917 (package
6918 (name "ghc-sandi")
66dbe158 6919 (version "0.4.2")
e9e519be 6920 (source
6921 (origin
6922 (method url-fetch)
6923 (uri (string-append
6924 "https://hackage.haskell.org/package/sandi/sandi-"
6925 version ".tar.gz"))
6926 (sha256
6927 (base32
66dbe158 6928 "0dvkpk91n9kz2ha04rvp231ra9sgd1ilyc1qkzf9l03iir7zrh9b"))))
e9e519be 6929 (build-system haskell-build-system)
6930 (inputs
6931 `(("ghc-stringsearch" ,ghc-stringsearch)
6932 ("ghc-conduit" ,ghc-conduit)
6933 ("ghc-exceptions" ,ghc-exceptions)
6934 ("ghc-hunit" ,ghc-hunit)
6935 ("ghc-tasty" ,ghc-tasty)
6936 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
6937 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
6938 ("ghc-tasty-th" ,ghc-tasty-th)))
98b90194 6939 (home-page "https://hackage.haskell.org/package/sandi")
e9e519be 6940 (synopsis "Data encoding library")
6941 (description "Reasonably fast data encoding library.")
6942 (license license:bsd-3)))
6943
a71f8617 6944(define-public ghc-bytestring-handle
6945 (package
6946 (name "ghc-bytestring-handle")
39bcc932 6947 (version "0.1.0.6")
a71f8617 6948 (source
6949 (origin
6950 (method url-fetch)
6951 (uri (string-append
6952 "https://hackage.haskell.org/package/bytestring-handle/bytestring-handle-"
6953 version ".tar.gz"))
6954 (sha256
6955 (base32
39bcc932 6956 "18f17aja1ivhr3zyg2cccn2m03hdn5jf5410dndkhf12gvgiqs7y"))))
a71f8617 6957 (build-system haskell-build-system)
6958 (inputs
6bfcb59d
TGR
6959 `(("ghc-hunit" ,ghc-hunit)
6960 ("ghc-quickcheck" ,ghc-quickcheck)
6961 ("ghc-test-framework" ,ghc-test-framework)
a71f8617 6962 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
6bfcb59d 6963 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
98b90194 6964 (home-page "https://hub.darcs.net/ganesh/bytestring-handle")
a71f8617 6965 (synopsis "ByteString-backed Handles")
6966 (description "ByteString-backed Handles") ; There is no description
6967 (license license:bsd-3)))
6968
f8270331 6969(define-public ghc-tar
6970 (package
6971 (name "ghc-tar")
6972 (version "0.5.0.3")
6973 (source
6974 (origin
6975 (method url-fetch)
6976 (uri (string-append
6977 "https://hackage.haskell.org/package/tar/tar-"
6978 version ".tar.gz"))
6979 (sha256
6980 (base32
6981 "18qq94j9bm91iswnxq2dm5dws5c7wm4k01q2rpf8py35cf3svnfq"))))
6982 (build-system haskell-build-system)
f25c95d3
RW
6983 ;; FIXME: 2/24 tests fail.
6984 (arguments `(#:tests? #f))
f8270331 6985 (inputs
6986 `(("ghc-bytestring-handle" ,ghc-bytestring-handle)
6987 ("ghc-quickcheck" ,ghc-quickcheck)
6988 ("ghc-tasty" ,ghc-tasty)
473cd277 6989 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
98b90194 6990 (home-page "https://hackage.haskell.org/package/tar")
f8270331 6991 (synopsis "Reading, writing and manipulating \".tar\" archive files")
6992 (description
6993 "This library is for working with \\\"@.tar@\\\" archive files.
6994It can read and write a range of common variations of the tar archive format
6995including V7, POSIX USTAR and GNU formats. It provides support for packing and
6996unpacking portable archives. This makes it suitable for distribution but not
6997backup because details like file ownership and exact permissions are not
6998preserved. It also provides features for random access to archive content using
6999an index.")
7000 (license license:bsd-3)))
7001
867ed977
AV
7002(define-public ghc-stmonadtrans
7003 (package
7004 (name "ghc-stmonadtrans")
7005 (version "0.4.3")
7006 (source
7007 (origin
7008 (method url-fetch)
7009 (uri (string-append "https://hackage.haskell.org/package/STMonadTrans"
7010 "/STMonadTrans-" version ".tar.gz"))
7011 (sha256
7012 (base32 "1nr26fnmi5fdjc6d00w13kjhmfyvb5b837d0006w4dj0yxndaksp"))))
7013 (build-system haskell-build-system)
867ed977
AV
7014 (home-page "https://hackage.haskell.org/package/STMonadTrans")
7015 (synopsis "Monad transformer version of the ST monad")
7016 (description
7017 "This package provides a monad transformer version of the @code{ST} monad
7018for strict state threads.")
7019 (license license:bsd-3)))
7020
027b7976 7021(define-public ghc-findbin
7022 (package
7023 (name "ghc-findbin")
7024 (version "0.0.5")
7025 (source
7026 (origin
7027 (method url-fetch)
7028 (uri (string-append
7029 "https://hackage.haskell.org/package/FindBin/FindBin-"
7030 version ".tar.gz"))
7031 (sha256
7032 (base32
7033 "197xvn05yysmibm1p5wzxfa256lvpbknr5d1l2ws6g40w1kpk717"))))
7034 (build-system haskell-build-system)
7035 (home-page "https://github.com/audreyt/findbin")
7036 (synopsis "Get the absolute path of the running program")
7037 (description
7038 "This module locates the full directory of the running program, to allow
7039the use of paths relative to it. FindBin supports invocation of Haskell
7040programs via \"ghci\", via \"runhaskell/runghc\", as well as compiled as
7041an executable.")
7042 (license license:bsd-3)))
7043
d52ca22a 7044(define-public ghc-patience
7045 (package
7046 (name "ghc-patience")
7047 (version "0.1.1")
7048 (source
7049 (origin
7050 (method url-fetch)
7051 (uri (string-append
7052 "https://hackage.haskell.org/package/patience/patience-"
7053 version ".tar.gz"))
7054 (sha256
7055 (base32
7056 "0qyv20gqy9pb1acy700ahv70lc6vprcwb26cc7fcpcs4scsc7irm"))))
7057 (build-system haskell-build-system)
98b90194 7058 (home-page "https://hackage.haskell.org/package/patience")
d52ca22a 7059 (synopsis "Patience diff and longest increasing subsequence")
7060 (description
7061 "This library implements the 'patience diff' algorithm, as well as the
7062patience algorithm for the longest increasing subsequence problem.
7063Patience diff computes the difference between two lists, for example the lines
7064of two versions of a source file. It provides a good balance between
7065performance, nice output for humans, and simplicity of implementation.")
7066 (license license:bsd-3)))
7067
41167bd2 7068(define-public ghc-monads-tf
7069 (package
7070 (name "ghc-monads-tf")
7071 (version "0.1.0.3")
7072 (source
7073 (origin
7074 (method url-fetch)
7075 (uri (string-append
7076 "https://hackage.haskell.org/package/monads-tf/monads-tf-"
7077 version ".tar.gz"))
7078 (sha256
7079 (base32
7080 "1wdhskwa6dw8qljbvwpyxj8ca6y95q2np7z4y4q6bpf4anmd5794"))))
7081 (build-system haskell-build-system)
98b90194 7082 (home-page "https://hackage.haskell.org/package/monads-tf")
41167bd2 7083 (synopsis "Monad classes, using type families")
7084 (description
7085 "Monad classes using type families, with instances for various monad transformers,
7086inspired by the paper 'Functional Programming with Overloading and Higher-Order
7087Polymorphism', by Mark P Jones. This package is almost a compatible replacement for
7088the @code{mtl-tf} package.")
7089 (license license:bsd-3)))
7090
e1a56bb2 7091(define-public ghc-colour
7092(package
7093 (name "ghc-colour")
d05d03dd 7094 (version "2.3.4")
e1a56bb2 7095 (source
7096 (origin
7097 (method url-fetch)
7098 (uri (string-append
7099 "https://hackage.haskell.org/package/colour/colour-"
7100 version ".tar.gz"))
7101 (sha256
7102 (base32
d05d03dd
TS
7103 "1sy51nz096sv91nxqk6yk7b92b5a40axv9183xakvki2nc09yhqg"))))
7104 (arguments
7105 ;; The tests for this package have the following dependency cycle:
7106 ;; ghc-test-framework -> ghc-ansi-terminal -> ghc-colour.
7107 `(#:tests? #f))
e1a56bb2 7108 (build-system haskell-build-system)
98b90194 7109 (home-page "https://www.haskell.org/haskellwiki/Colour")
e1a56bb2 7110 (synopsis "Model for human colour perception")
7111 (description
7112 "This package provides a data type for colours and transparency.
7113Colours can be blended and composed. Various colour spaces are
7114supported. A module of colour names (\"Data.Colour.Names\") is provided.")
7115 (license license:expat)))
7116
6e0741f7 7117(define-public ghc-wl-pprint-text
7118 (package
7119 (name "ghc-wl-pprint-text")
e173a95f 7120 (version "1.2.0.0")
6e0741f7 7121 (source
7122 (origin
7123 (method url-fetch)
7124 (uri (string-append
7125 "https://hackage.haskell.org/package/wl-pprint-text/wl-pprint-text-"
7126 version ".tar.gz"))
7127 (sha256
7128 (base32
e173a95f 7129 "0g3w92rad6x5appfb22rbzcas2ix2h0hy91sdxhq8a4a5cnlrpa0"))))
6e0741f7 7130 (build-system haskell-build-system)
7131 (inputs
e173a95f
AI
7132 `(("ghc-base-compat" ,ghc-base-compat)
7133 ("ghc-text" ,ghc-text)))
98b90194 7134 (home-page "https://hackage.haskell.org/package/wl-pprint-text")
6e0741f7 7135 (synopsis "Wadler/Leijen Pretty Printer for Text values")
7136 (description
7137 "A clone of wl-pprint for use with the text library.")
7138 (license license:bsd-3)))
7139
d4cca6b0 7140(define-public ghc-fgl-arbitrary
7141 (package
7142 (name "ghc-fgl-arbitrary")
d4fd8ee4 7143 (version "0.2.0.3")
d4cca6b0 7144 (source
7145 (origin
7146 (method url-fetch)
7147 (uri (string-append
7148 "https://hackage.haskell.org/package/fgl-arbitrary/fgl-arbitrary-"
7149 version ".tar.gz"))
7150 (sha256
7151 (base32
d4fd8ee4 7152 "0ln1szgfy8fa78l3issq4fx3aqnnd54w3cb4wssrfi48vd5rkfjm"))))
d4cca6b0 7153 (build-system haskell-build-system)
54afb52e 7154 (arguments
a3ab433a
AI
7155 `(#:configure-flags (list "--allow-newer=QuickCheck"
7156 "--allow-newer=hspec")))
d4cca6b0 7157 (inputs
7158 `(("ghc-fgl" ,ghc-fgl)
7159 ("ghc-quickcheck" ,ghc-quickcheck)
7160 ("ghc-hspec" ,ghc-hspec)))
98b90194 7161 (home-page "https://hackage.haskell.org/package/fgl-arbitrary")
d4cca6b0 7162 (synopsis "QuickCheck support for fgl")
7163 (description
7164 "Provides Arbitrary instances for fgl graphs to avoid adding a
7165QuickCheck dependency for fgl whilst still making the instances
7166available to others. Also available are non-fgl-specific functions
7167for generating graph-like data structures.")
7168 (license license:bsd-3)))
7169
3db88277 7170(define-public ghc-graphviz
7171 (package
7172 (name "ghc-graphviz")
f797a0e9 7173 (version "2999.20.0.2")
3db88277 7174 (source (origin
7175 (method url-fetch)
7176 (uri (string-append "https://hackage.haskell.org/package/"
7177 "graphviz/graphviz-" version ".tar.gz"))
7178 (sha256
7179 (base32
f797a0e9 7180 "0kj7ap0gnliviq2p8lscw1m06capnsa90vpvcys24nqy5nw2wrp7"))))
3db88277 7181 (build-system haskell-build-system)
4b1f2166
RW
7182 (arguments
7183 `(#:configure-flags (list "--allow-newer=QuickCheck")))
3db88277 7184 (inputs
7185 `(("ghc-quickcheck" ,ghc-quickcheck)
7186 ("ghc-colour" ,ghc-colour)
7187 ("ghc-dlist" ,ghc-dlist)
7188 ("ghc-fgl" ,ghc-fgl)
7189 ("ghc-fgl-arbitrary" ,ghc-fgl-arbitrary)
7190 ("ghc-polyparse" ,ghc-polyparse)
7191 ("ghc-temporary" ,ghc-temporary)
7192 ("ghc-text" ,ghc-text)
7193 ("ghc-wl-pprint-text" ,ghc-wl-pprint-text)))
f797a0e9
AI
7194 (native-inputs
7195 `(("ghc-hspec" ,ghc-hspec)
7196 ("graphviz" ,graphviz)
7197 ("hspec-discover" ,hspec-discover)))
3db88277 7198 (home-page "https://hackage.haskell.org/package/graphviz")
7199 (synopsis "Bindings to Graphviz for graph visualisation")
7200 (description
7201 "This library provides bindings for the Dot language used by
98b90194 7202the @uref{https://graphviz.org/, Graphviz} suite of programs for
3db88277 7203visualising graphs, as well as functions to call those programs.
7204Main features of the graphviz library include:
7205
7206@enumerate
7207@item Almost complete coverage of all Graphviz attributes and syntax
7208@item Support for specifying clusters
7209@item The ability to use a custom node type
7210@item Functions for running a Graphviz layout tool with all specified output types
7211@item Generate and parse Dot code with two options: strict and liberal
7212@item Functions to convert FGL graphs and other graph-like data structures
7213@item Round-trip support for passing an FGL graph through Graphviz to augment node
7214and edge labels with positional information, etc.
7215@end enumerate\n")
7216 (license license:bsd-3)))
7217
6aab9ba6 7218(define-public ghc-constraints
7219 (package
7220 (name "ghc-constraints")
7221 (version "0.8")
7222 (source
7223 (origin
7224 (method url-fetch)
7225 (uri (string-append
7226 "https://hackage.haskell.org/package/constraints/constraints-"
7227 version ".tar.gz"))
7228 (sha256
7229 (base32
7230 "120mmv9rwbahslisc1z8zx9lw7v6hl5fzid4l0hiy5as6ijqgl2c"))))
7231 (build-system haskell-build-system)
7232 (inputs
7233 `(("ghc-hashable" ,ghc-hashable)
6aab9ba6 7234 ("ghc-transformers-compat" ,ghc-transformers-compat)))
7bf837fd 7235 (home-page "https://github.com/ekmett/constraints/")
6aab9ba6 7236 (synopsis "Constraint manipulation")
7237 (description
7238 "GHC 7.4 gave us the ability to talk about @code{ConstraintKinds}.
7239They stopped crashing the compiler in GHC 7.6. This package provides
7240a vocabulary for working with them.")
7241 (license license:bsd-3)))
7242
2b41f4af 7243(define-public ghc-lifted-async
7244 (package
7245 (name "ghc-lifted-async")
7246 (version "0.9.0")
7247 (source
7248 (origin
7249 (method url-fetch)
7250 (uri (string-append
7251 "https://hackage.haskell.org/package/lifted-async/lifted-async-"
7252 version ".tar.gz"))
7253 (sha256
7254 (base32
7255 "00fnwfcnc6niq9jbbb9rap9rkdgv5qhcglwanzc5fi8834j94c1r"))))
7256 (build-system haskell-build-system)
7257 (inputs
7258 `(("ghc-async" ,ghc-async)
7259 ("ghc-lifted-base" ,ghc-lifted-base)
7260 ("ghc-transformers-base" ,ghc-transformers-base)
7261 ("ghc-monad-control" ,ghc-monad-control)
7262 ("ghc-constraints" ,ghc-constraints)
7263 ("ghc-hunit" ,ghc-hunit)
2b41f4af 7264 ("ghc-tasty" ,ghc-tasty)
7265 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
7266 ("ghc-tasty-th" ,ghc-tasty-th)))
7267 (home-page "https://github.com/maoe/lifted-async")
7268 (synopsis "Run lifted IO operations asynchronously and wait for their results")
7269 (description
7270 "This package provides IO operations from @code{async} package lifted to any
7271instance of @code{MonadBase} or @code{MonadBaseControl}.")
7272 (license license:bsd-3)))
7273
ddd5955b 7274;; Ghc-shelly depends on ghc-system-filepath and ghc-system-fileio, who in turn depend on
7275;; ghc-chell and ghc-chell-quickcheck for the test phase. Ghc-chell depends on ghc-options
7276;; which depends on ghc-chell and ghc-chell-quickcheck.
7277;; Therefore we bootstrap it with tests disabled.
7278(define ghc-system-filepath-bootstrap
7279 (package
7280 (name "ghc-system-filepath-bootstrap")
7281 (version "0.4.13.4")
7282 (source
7283 (origin
7284 (method url-fetch)
7285 (uri (string-append
7286 "https://hackage.haskell.org/package/system-filepath/system-filepath-"
7287 version ".tar.gz"))
7288 (sha256
7289 (base32
7290 "1yy5zsmmimhg6iaw9fmpwrxvxrgi5s6bfyqfihdsnx4bjvn7sp9l"))))
7291 (build-system haskell-build-system)
7292 (arguments
7293 `(#:tests? #f))
7294 (inputs
7295 `(("ghc-text" ,ghc-text)
7296 ("ghc-quickcheck" ,ghc-quickcheck)))
7297 (home-page "https://github.com/fpco/haskell-filesystem")
7298 (synopsis "High-level, byte-based file and directory path manipulations")
7299 (description
7300 "Provides a FilePath datatype and utility functions for operating on it.
7301Unlike the filepath package, this package does not simply reuse String,
7302increasing type safety.")
7303 (license license:expat)))
7304
3f7aa102 7305;; See ghc-system-filepath-bootstrap. In addition this package depends on
7306;; ghc-system-filepath.
7307(define ghc-system-fileio-bootstrap
7308 (package
7309 (name "ghc-system-fileio-bootstrap")
7310 (version "0.3.16.3")
7311 (source
7312 (origin
7313 (method url-fetch)
7314 (uri (string-append
7315 "https://hackage.haskell.org/package/system-fileio/system-fileio-"
7316 version ".tar.gz"))
7317 (sha256
7318 (base32
7319 "1484hcl27s2qcby8ws5djj11q9bz68bspcifz9h5gii2ndy70x9i"))))
7320 (build-system haskell-build-system)
7321 (arguments
7322 `(#:tests? #f))
7323 (inputs
7324 `(("ghc-system-filepath-bootstrap" ,ghc-system-filepath-bootstrap)
7325 ("ghc-text" ,ghc-text)
7326 ("ghc-temporary" ,ghc-temporary)))
7327 (home-page "https://github.com/fpco/haskell-filesystem")
162a1374 7328 (synopsis "Consistent file system interaction across GHC versions")
3f7aa102 7329 (description
7330 "This is a small wrapper around the directory, unix, and Win32 packages,
7331for use with system-filepath. It provides a consistent API to the various
7332versions of these packages distributed with different versions of GHC.
7333In particular, this library supports working with POSIX files that have paths
7334which can't be decoded in the current locale encoding.")
7335 (license license:expat)))
7336
25b3bdb5 7337(define-public ghc-shelly
7338 (package
7339 (name "ghc-shelly")
c4348ca7 7340 (version "1.8.1")
25b3bdb5 7341 (source
7342 (origin
7343 (method url-fetch)
7344 (uri (string-append
7345 "https://hackage.haskell.org/package/shelly/shelly-"
7346 version ".tar.gz"))
7347 (sha256
7348 (base32
c4348ca7 7349 "023fbvbqs5gdwm30j5517gbdcc7fvz0md70dgwgpypkskj3i926y"))))
25b3bdb5 7350 (build-system haskell-build-system)
7351 (inputs
f54f0475 7352 `(("ghc-unix-compat" ,ghc-unix-compat)
25b3bdb5 7353 ("ghc-system-filepath-bootstrap" ,ghc-system-filepath-bootstrap)
7354 ("ghc-system-fileio-bootstrap" ,ghc-system-fileio-bootstrap)
7355 ("ghc-monad-control" ,ghc-monad-control)
7356 ("ghc-lifted-base" ,ghc-lifted-base)
7357 ("ghc-lifted-async" ,ghc-lifted-async)
7358 ("ghc-exceptions" ,ghc-exceptions)
7359 ("ghc-enclosed-exceptions" ,ghc-enclosed-exceptions)
7360 ("ghc-text" ,ghc-text)
7361 ("ghc-async" ,ghc-async)
7362 ("ghc-transformers-base" ,ghc-transformers-base)
7363 ("ghc-hunit" ,ghc-hunit)
c4348ca7
AI
7364 ("ghc-hspec" ,ghc-hspec)
7365 ("ghc-hspec-contrib" ,ghc-hspec-contrib)))
25b3bdb5 7366 (home-page "https://github.com/yesodweb/Shelly.hs")
7367 (synopsis "Shell-like (systems) programming in Haskell")
7368 (description
7369 "Shelly provides convenient systems programming in Haskell, similar in
7370spirit to POSIX shells. Shelly is originally forked from the Shellish package.")
7371 (license license:bsd-3)))
7372
7e06c4aa 7373;; See ghc-system-filepath-bootstrap, chell and chell-quickcheck are required for tests.
7374(define ghc-options-bootstrap
7375 (package
7376 (name "ghc-options-bootstrap")
7377 (version "1.2.1.1")
7378 (source
7379 (origin
7380 (method url-fetch)
7381 (uri (string-append
7382 "https://hackage.haskell.org/package/options/options-"
7383 version ".tar.gz"))
7384 (sha256
7385 (base32
7386 "0qjs0v1ny52w51n5582d4z8wy9h6n0zw1xb5dh686ff5wadflgi8"))))
7387 (build-system haskell-build-system)
7388 (arguments
7389 `(#:tests? #f))
7390 (inputs
7391 `(("ghc-monads-tf" ,ghc-monads-tf)))
7392 (home-page "https://john-millikin.com/software/haskell-options/")
7393 (synopsis "Powerful and easy-to-use command-line option parser")
7394 (description
7395 "The @code{options} package lets library and application developers
7396easily work with command-line options.")
7397 (license license:expat)))
7398
8ea94489 7399(define-public ghc-chell
7400 (package
7401 (name "ghc-chell")
7402 (version "0.4.0.1")
7403 (source
7404 (origin
7405 (method url-fetch)
7406 (uri (string-append
7407 "https://hackage.haskell.org/package/chell/chell-"
7408 version ".tar.gz"))
7409 (sha256
7410 (base32
7411 "0lb95abzxl4a87nfqxsxpb3a39pd52cci43hcvj8615hyhqvs2jz"))))
7412 (build-system haskell-build-system)
7413 (inputs
7414 `(("ghc-options-bootstrap" ,ghc-options-bootstrap)
7415 ("ghc-patience" ,ghc-patience)
7416 ("ghc-random" ,ghc-random)
7417 ("ghc-text" ,ghc-text)
7418 ("ghc-ansi-terminal" ,ghc-ansi-terminal)))
7419 (home-page "https://john-millikin.com/software/chell/")
7420 (synopsis "Simple and intuitive library for automated testing")
7421 (description
7422 "Chell is a simple and intuitive library for automated testing.
7423It natively supports assertion-based testing, and can use companion
7424libraries such as @code{chell-quickcheck} to support more complex
7425testing strategies.")
7426 (license license:expat)))
7427
475d3668 7428(define ghc-chell-quickcheck-bootstrap
7429 (package
7430 (name "ghc-chell-quickcheck-bootstrap")
a9717a52 7431 (version "0.2.5.1")
475d3668 7432 (source
7433 (origin
7434 (method url-fetch)
7435 (uri (string-append
a9717a52
TGR
7436 "https://hackage.haskell.org/package/chell-quickcheck/"
7437 "chell-quickcheck-" version ".tar.gz"))
475d3668 7438 (sha256
7439 (base32
a9717a52 7440 "1iicsys9igx7m7n4l2b8djardmjy2ah5ibzp7kzs758h460fq53a"))))
475d3668 7441 (build-system haskell-build-system)
7442 (inputs
7443 `(("ghc-chell" ,ghc-chell)
7444 ("ghc-random" ,ghc-random)
7445 ("ghc-quickcheck" ,ghc-quickcheck)))
7446 (arguments
7447 `(#:tests? #f))
7448 (home-page "https://john-millikin.com/software/chell/")
7449 (synopsis "QuickCheck support for the Chell testing library")
7450 (description "More complex tests for @code{chell}.")
7451 (license license:expat)))
7452
c92d944c 7453(define-public ghc-chell-quickcheck
7454 (package
7455 (name "ghc-chell-quickcheck")
a9717a52 7456 (version "0.2.5.1")
c92d944c 7457 (source
7458 (origin
7459 (method url-fetch)
7460 (uri (string-append
a9717a52
TGR
7461 "https://hackage.haskell.org/package/chell-quickcheck/"
7462 "chell-quickcheck-" version ".tar.gz"))
c92d944c 7463 (sha256
7464 (base32
a9717a52 7465 "1iicsys9igx7m7n4l2b8djardmjy2ah5ibzp7kzs758h460fq53a"))))
c92d944c 7466 (build-system haskell-build-system)
7467 (inputs
7468 `(("ghc-chell" ,ghc-chell)
7469 ("ghc-chell-quickcheck-bootstrap" ,ghc-chell-quickcheck-bootstrap)
7470 ("ghc-random" ,ghc-random)
7471 ("ghc-quickcheck" ,ghc-quickcheck)))
7472 (home-page "https://john-millikin.com/software/chell/")
7473 (synopsis "QuickCheck support for the Chell testing library")
7474 (description "More complex tests for @code{chell}.")
7475 (license license:expat)))
7476
58c85b1f 7477(define-public ghc-options
7478 (package
7479 (name "ghc-options")
7480 (version "1.2.1.1")
7481 (source
7482 (origin
7483 (method url-fetch)
7484 (uri (string-append
7485 "https://hackage.haskell.org/package/options/options-"
7486 version ".tar.gz"))
7487 (sha256
7488 (base32
7489 "0qjs0v1ny52w51n5582d4z8wy9h6n0zw1xb5dh686ff5wadflgi8"))))
7490 (build-system haskell-build-system)
7491 (inputs
7492 `(("ghc-monads-tf" ,ghc-monads-tf)
7493 ("ghc-chell" ,ghc-chell)
7494 ("ghc-chell-quickcheck" ,ghc-chell-quickcheck)))
7495 (home-page "https://john-millikin.com/software/haskell-options/")
7496 (synopsis "Powerful and easy-to-use command-line option parser")
7497 (description
7498 "The @code{options} package lets library and application developers
7499easily work with command-line options.")
7500 (license license:expat)))
7501
23feb6e4 7502(define-public ghc-system-filepath
7503 (package
7504 (name "ghc-system-filepath")
1b58d289 7505 (version "0.4.14")
23feb6e4 7506 (source
7507 (origin
7508 (method url-fetch)
7509 (uri (string-append
7510 "https://hackage.haskell.org/package/system-filepath/system-filepath-"
7511 version ".tar.gz"))
7512 (sha256
7513 (base32
1b58d289 7514 "14yras4pz2dh55xpwmazcgxijvi8913pjgzb9iw50mjq1lycwmhn"))))
23feb6e4 7515 (build-system haskell-build-system)
1b58d289
RW
7516 ;; FIXME: One of the tests fails:
7517 ;; [ FAIL ] tests.validity.posix
7518 ;; note: seed=7310214548328823169
7519 ;; *** Failed! Falsifiable (after 24 tests):
7520 ;; 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"
7521 (arguments `(#:tests? #f))
23feb6e4 7522 (inputs
7523 `(("ghc-text" ,ghc-text)
7524 ("ghc-chell" ,ghc-chell)
7525 ("ghc-chell-quickcheck" ,ghc-chell-quickcheck)
7526 ("ghc-quickcheck" ,ghc-quickcheck)))
7527 (home-page "https://github.com/fpco/haskell-filesystem")
7528 (synopsis "High-level, byte-based file and directory path manipulations")
7529 (description
7530 "Provides a FilePath datatype and utility functions for operating on it.
7531Unlike the filepath package, this package does not simply reuse String,
7532increasing type safety.")
7533 (license license:expat)))
7534
10a03d66 7535(define-public ghc-system-fileio
7536 (package
7537 (name "ghc-system-fileio")
7538 (version "0.3.16.3")
7539 (source
7540 (origin
7541 (method url-fetch)
7542 (uri (string-append
7543 "https://hackage.haskell.org/package/system-fileio/system-fileio-"
7544 version ".tar.gz"))
7545 (sha256
7546 (base32
7547 "1484hcl27s2qcby8ws5djj11q9bz68bspcifz9h5gii2ndy70x9i"))))
7548 (build-system haskell-build-system)
7549 (inputs
7550 `(("ghc-system-filepath" ,ghc-system-filepath)
7551 ("ghc-text" ,ghc-text)
7552 ("ghc-chell" ,ghc-chell)
7553 ("ghc-temporary" ,ghc-temporary)))
7554 (home-page "https://github.com/fpco/haskell-filesystem")
162a1374 7555 (synopsis "Consistent file system interaction across GHC versions")
10a03d66 7556 (description
7557 "This is a small wrapper around the directory, unix, and Win32 packages,
7558for use with system-filepath. It provides a consistent API to the various
7559versions of these packages distributed with different versions of GHC.
7560In particular, this library supports working with POSIX files that have paths
7561which can't be decoded in the current locale encoding.")
7562 (license license:expat)))
725dddd7
FB
7563
7564(define-public ghc-storable-complex
7565 (package
7566 (name "ghc-storable-complex")
7567 (version "0.2.2")
7568 (source
7569 (origin
7570 (method url-fetch)
7571 (uri (string-append
98b90194 7572 "https://hackage.haskell.org/package/storable-complex/storable-complex-"
725dddd7
FB
7573 version ".tar.gz"))
7574 (sha256
7575 (base32 "01kwwkpbfjrv26vj83cd92px5qbq1bpgxj0r45534aksqhany1xb"))))
7576 (build-system haskell-build-system)
7577 (home-page "https://github.com/cartazio/storable-complex")
7578 (synopsis "Haskell Storable instance for Complex")
7579 (description "This package provides a Haskell library including a
7580Storable instance for Complex which is binary compatible with C99, C++
7581and Fortran complex data types.")
7582 (license license:bsd-3)))
7583
95595618
FB
7584(define-public ghc-hmatrix
7585 (package
7586 (name "ghc-hmatrix")
621fe476 7587 (version "0.18.1.0")
95595618
FB
7588 (source
7589 (origin
7590 (method url-fetch)
7591 (uri (string-append
98b90194 7592 "https://hackage.haskell.org/package/hmatrix/hmatrix-"
95595618
FB
7593 version ".tar.gz"))
7594 (sha256
621fe476 7595 (base32 "07zkwvg872hfk6jyn4s54ws8mvclynazaxf7fsbqi16dmf9dn61c"))))
95595618
FB
7596 (build-system haskell-build-system)
7597 (inputs
7598 `(("ghc-random" ,ghc-random)
7599 ("ghc-split" ,ghc-split)
7600 ("ghc-storable-complex" ,ghc-storable-complex)
7601 ("ghc-vector" ,ghc-vector)
7602 ;;("openblas" ,openblas)
7603 ("lapack" ,lapack)))
7604 ;; Guix's OpenBLAS is built with the flag "NO_LAPACK=1" which
7605 ;; disables inclusion of the LAPACK functions.
7606 ;; (arguments `(#:configure-flags '("--flags=openblas")))
7607 (home-page "https://github.com/albertoruiz/hmatrix")
7608 (synopsis "Haskell numeric linear algebra library")
7609 (description "The HMatrix package provices a Haskell library for
7610dealing with linear systems, matrix decompositions, and other
7611numerical computations based on BLAS and LAPACK.")
7612 (license license:bsd-3)))
7613
932104ab
FB
7614(define-public ghc-hmatrix-gsl
7615 (package
7616 (name "ghc-hmatrix-gsl")
e72a77e1 7617 (version "0.18.0.1")
932104ab
FB
7618 (source
7619 (origin
7620 (method url-fetch)
7621 (uri (string-append
98b90194 7622 "https://hackage.haskell.org/package/hmatrix-gsl/hmatrix-gsl-"
932104ab
FB
7623 version ".tar.gz"))
7624 (sha256
e72a77e1 7625 (base32 "0mflm7zg6c6a5vy092pa429rzpyv5drc1589r3x4fbmvcyqc79gx"))))
932104ab
FB
7626 (build-system haskell-build-system)
7627 (inputs
7628 `(("ghc-hmatrix" ,ghc-hmatrix)
7629 ("ghc-vector" ,ghc-vector)
7630 ("ghc-random" ,ghc-random)
7631 ("gsl" ,gsl)))
7632 (native-inputs `(("pkg-config" ,pkg-config)))
7633 (home-page "https://github.com/albertoruiz/hmatrix")
7634 (synopsis "Haskell GSL binding")
7635 (description "This Haskell library provides a purely functional
7636interface to selected numerical computations, internally implemented
7637using GSL.")
7638 (license license:gpl3+)))
7639
271a5365
FB
7640(define-public ghc-hmatrix-special
7641 (package
7642 (name "ghc-hmatrix-special")
15eef66e 7643 (version "0.4.0.1")
271a5365
FB
7644 (source
7645 (origin
7646 (method url-fetch)
7647 (uri
7648 (string-append
98b90194 7649 "https://hackage.haskell.org/package/hmatrix-special/hmatrix-special-"
271a5365
FB
7650 version ".tar.gz"))
7651 (sha256
15eef66e 7652 (base32 "0kpcqdchi7ikzhqacy4rh4dxz3v37paxyb84wqa66sysb72wkabj"))))
271a5365
FB
7653 (build-system haskell-build-system)
7654 (inputs
7655 `(("ghc-hmatrix" ,ghc-hmatrix)
7656 ("ghc-hmatrix-gsl" ,ghc-hmatrix-gsl)))
7657 (home-page "https://github.com/albertoruiz/hmatrix")
7658 (synopsis "Haskell interface to GSL special functions")
7659 (description "This library provides an interface to GSL special
7660functions for Haskell.")
7661 (license license:gpl3+)))
7662
4225c711
FB
7663(define-public ghc-hmatrix-gsl-stats
7664 (package
7665 (name "ghc-hmatrix-gsl-stats")
26d6539b 7666 (version "0.4.1.7")
4225c711
FB
7667 (source
7668 (origin
7669 (method url-fetch)
7670 (uri
7671 (string-append
98b90194 7672 "https://hackage.haskell.org/package/hmatrix-gsl-stats/hmatrix-gsl-stats-"
4225c711
FB
7673 version ".tar.gz"))
7674 (sha256
26d6539b 7675 (base32 "1gslgk58lzin43cvbpivhw7nrn9qyaa6qwhy1z9ypvyal5p8n3sa"))))
4225c711
FB
7676 (build-system haskell-build-system)
7677 (inputs
7678 `(("ghc-vector" ,ghc-vector)
7679 ("ghc-storable-complex" ,ghc-storable-complex)
7680 ("ghc-hmatrix" ,ghc-hmatrix)
7681 ("gsl" ,gsl)))
7682 (native-inputs `(("pkg-config" ,pkg-config)))
7683 (home-page "http://code.haskell.org/hmatrix-gsl-stats")
7684 (synopsis "GSL Statistics interface for Haskell")
7685 (description "This Haskell library provides a purely functional
7686interface for statistics based on hmatrix and GSL.")
7687 (license license:bsd-3)))
7688
db61a009
FB
7689(define-public ghc-easyplot
7690 (package
7691 (name "ghc-easyplot")
7692 (version "1.0")
7693 (source
7694 (origin
7695 (method url-fetch)
7696 (uri (string-append
98b90194 7697 "https://hackage.haskell.org/package/easyplot/easyplot-"
db61a009
FB
7698 version ".tar.gz"))
7699 (sha256
7700 (base32 "18kndgvdj2apjpfga6fp7m16y1gx8zrwp3c5vfj03sx4v6jvciqk"))))
7701 (build-system haskell-build-system)
7702 (propagated-inputs `(("gnuplot" ,gnuplot)))
7703 (arguments
7704 `(#:phases (modify-phases %standard-phases
7705 (add-after 'unpack 'fix-setup-suffix
7706 (lambda _ (rename-file "Setup.lhs" "Setup.hs") #t)))))
98b90194 7707 (home-page "https://hub.darcs.net/scravy/easyplot")
db61a009
FB
7708 (synopsis "Haskell plotting library based on gnuplot")
7709 (description "This package provides a plotting library for
7710Haskell, using gnuplot for rendering.")
7711 (license license:expat)))
7712
1bd00f17
FB
7713(define-public ghc-hashtables
7714 (package
7715 (name "ghc-hashtables")
7716 (version "1.2.1.0")
7717 (source
7718 (origin
7719 (method url-fetch)
7720 (uri (string-append
98b90194 7721 "https://hackage.haskell.org/package/hashtables/hashtables-"
1bd00f17
FB
7722 version ".tar.gz"))
7723 (sha256
7724 (base32 "1b6w9xznk42732vpd8ili60k12yq190xnajgga0iwbdpyg424lgg"))))
7725 (build-system haskell-build-system)
abfec9b3
AW
7726 (arguments
7727 `(#:configure-flags (list "--allow-newer=vector")))
1bd00f17
FB
7728 (inputs
7729 `(("ghc-hashable" ,ghc-hashable)
7730 ("ghc-primitive" ,ghc-primitive)
7731 ("ghc-vector" ,ghc-vector)))
7bf837fd 7732 (home-page "https://github.com/gregorycollins/hashtables")
1bd00f17
FB
7733 (synopsis "Haskell Mutable hash tables in the ST monad")
7734 (description "This package provides a Haskell library including a
7735couple of different implementations of mutable hash tables in the ST
7736monad, as well as a typeclass abstracting their common operations, and
7737a set of wrappers to use the hash tables in the IO monad.")
7738 (license license:bsd-3)))
7739
505e0150
FB
7740(define-public ghc-data-accessor
7741 (package
7742 (name "ghc-data-accessor")
7743 (version "0.2.2.7")
7744 (source
7745 (origin
7746 (method url-fetch)
7747 (uri (string-append
6846f084 7748 "mirror://hackage/package/data-accessor/data-accessor-"
505e0150
FB
7749 version ".tar.gz"))
7750 (sha256
7751 (base32 "1vf2g1gac3rm32g97rl0fll51m88q7ry4m6khnl5j47qsmx24r9l"))))
7752 (build-system haskell-build-system)
98b90194 7753 (home-page "https://www.haskell.org/haskellwiki/Record_access")
505e0150
FB
7754 (synopsis
7755 "Haskell utilities for accessing and manipulating fields of records")
7756 (description "This package provides Haskell modules for accessing and
7757manipulating fields of records.")
7758 (license license:bsd-3)))
7759
81a11919
FB
7760(define-public ghc-data-accessor-transformers
7761 (package
7762 (name "ghc-data-accessor-transformers")
7763 (version "0.2.1.7")
7764 (source
7765 (origin
7766 (method url-fetch)
7767 (uri (string-append
6846f084
EF
7768 "mirror://hackage/package/data-accessor-transformers/"
7769 "data-accessor-transformers-" version ".tar.gz"))
81a11919
FB
7770 (sha256
7771 (base32 "0yp030vafbpddl27m606aibbbr5ar5j5bsv4bksscz3cq4yq5j10"))))
7772 (build-system haskell-build-system)
7773 (inputs `(("ghc-data-accessor" ,ghc-data-accessor)))
98b90194 7774 (home-page "https://www.haskell.org/haskellwiki/Record_access")
81a11919
FB
7775 (synopsis "Use Accessor to access state in transformers State monad")
7776 (description "This package provides Haskell modules to allow use of
7777Accessor to access state in transformers State monad.")
7778 (license license:bsd-3)))
7779
a5cbef03
FB
7780(define-public ghc-utility-ht
7781 (package
7782 (name "ghc-utility-ht")
7783 (version "0.0.12")
7784 (home-page "https://hackage.haskell.org/package/utility-ht")
7785 (source
7786 (origin
7787 (method url-fetch)
7788 (uri (string-append home-page "/utility-ht-" version ".tar.gz"))
7789 (sha256
7790 (base32 "1vq5bd51rl9l5lgfmaqxgiggddk38hzgngcj7qgrqnalcd1myi54"))))
7791 (build-system haskell-build-system)
7792 (inputs `(("ghc-quickcheck" ,ghc-quickcheck)))
7793 (synopsis "Haskell helper functions for Lists, Maybes, Tuples, Functions")
7794 (description "This package includes Hakell modules providing various
7795helper functions for Lists, Maybes, Tuples, Functions.")
7796 (license license:bsd-3)))
7797
1a86b671
FB
7798(define-public ghc-gnuplot
7799 (package
7800 (name "ghc-gnuplot")
7801 (version "0.5.4.1")
7802 (source
7803 (origin
7804 (method url-fetch)
7805 (uri (string-append
6846f084 7806 "mirror://hackage/package/gnuplot/gnuplot-"
1a86b671
FB
7807 version ".tar.gz"))
7808 (sha256
7809 (base32 "1xz8prw9xjk0rsyrkp9bsmxykzrbhpv9qhhkdapy75mdbmgwjm7s"))))
7810 (build-system haskell-build-system)
7811 (inputs
7812 `(("ghc-temporary" ,ghc-temporary)
7813 ("ghc-utility-ht" ,ghc-utility-ht)
7814 ("ghc-data-accessor-transformers" ,ghc-data-accessor-transformers)
7815 ("ghc-data-accessor" ,ghc-data-accessor)
7816 ("gnuplot" ,gnuplot)))
7817 (arguments
7818 `(#:phases
7819 (modify-phases %standard-phases
7820 (add-before 'configure 'fix-path-to-gnuplot
7821 (lambda* (#:key inputs #:allow-other-keys)
7822 (let ((gnuplot (assoc-ref inputs "gnuplot")))
7823 (substitute* "os/generic/Graphics/Gnuplot/Private/OS.hs"
7824 (("(gnuplotName = ).*$" all cmd)
7825 (string-append cmd "\"" gnuplot "/bin/gnuplot\"")))))))))
98b90194 7826 (home-page "https://www.haskell.org/haskellwiki/Gnuplot")
1a86b671
FB
7827 (synopsis "2D and 3D plots using gnuplot")
7828 (description "This package provides a Haskell module for creating 2D and
78293D plots using gnuplot.")
7830 (license license:bsd-3)))
7831
f63981de
DC
7832(define-public ghc-hinotify
7833 (package
7834 (name "ghc-hinotify")
7835 (version "0.3.8.1")
7836 (source (origin
7837 (method url-fetch)
7838 (uri (string-append
7839 "https://hackage.haskell.org/package/hinotify/"
7840 "hinotify-" version ".tar.gz"))
7841 (sha256
7842 (base32
7843 "03c1f4d7x805zdiq2w26kl09xrfjw19saycdkhnixzv2qcr6xm1p"))))
7844 (build-system haskell-build-system)
7845 (home-page "https://github.com/kolmodin/hinotify.git")
7846 (synopsis "Haskell binding to inotify")
7847 (description "This library provides a wrapper to the Linux kernel's inotify
7848feature, allowing applications to subscribe to notifications when a file is
7849accessed or modified.")
7850 (license license:bsd-3)))
7851
b7f96285
DC
7852(define-public ghc-fsnotify
7853 (package
7854 (name "ghc-fsnotify")
7855 (version "0.2.1")
7856 (source (origin
7857 (method url-fetch)
7858 (uri (string-append
7859 "https://hackage.haskell.org/package/fsnotify/"
7860 "fsnotify-" version ".tar.gz"))
7861 (sha256
7862 (base32
7863 "0asl313a52qx2w6dw25g845683xsl840bwjh118nkwi5v1xipkzb"))))
7864 (build-system haskell-build-system)
7865 (inputs
7866 `(("ghc-text" ,ghc-text)
7867 ("ghc-async" ,ghc-async)
7868 ("ghc-unix-compat" ,ghc-unix-compat)
7869 ("ghc-hinotify" ,ghc-hinotify)
7870 ("ghc-tasty" ,ghc-tasty)
7871 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
7872 ("ghc-temporary-rc" ,ghc-temporary-rc)))
7873 (home-page "https://github.com/haskell-fswatch/hfsnotify")
7874 (synopsis "Cross platform library for file change notification.")
7875 (description "Cross platform library for file creation, modification, and
7876deletion notification. This library builds upon existing libraries for platform
162a1374 7877specific Windows, Mac, and Linux file system event notification.")
b7f96285
DC
7878 (license license:bsd-3)))
7879
5e6cafe1
DC
7880(define-public ghc-ieee754
7881 (package
7882 (name "ghc-ieee754")
99596250 7883 (version "0.8.0")
5e6cafe1
DC
7884 (source (origin
7885 (method url-fetch)
7886 (uri (string-append
7887 "https://hackage.haskell.org/package/ieee754/"
7888 "ieee754-" version ".tar.gz"))
7889 (sha256
7890 (base32
99596250 7891 "1lcs521g9lzy9d7337vg4w7q7s8500rfqy7rcifcz6pm6yfgyb8f"))))
5e6cafe1 7892 (build-system haskell-build-system)
7bf837fd 7893 (home-page "https://github.com/patperry/hs-ieee754")
5e6cafe1
DC
7894 (synopsis "Utilities for dealing with IEEE floating point numbers")
7895 (description "Utilities for dealing with IEEE floating point numbers,
7896ported from the Tango math library; approximate and exact equality comparisons
7897for general types.")
7898 (license license:bsd-3)))
7899
4e05c326
DC
7900(define-public ghc-terminal-size
7901 (package
7902 (name "ghc-terminal-size")
7903 (version "0.3.2.1")
7904 (source (origin
7905 (method url-fetch)
7906 (uri (string-append
7907 "https://hackage.haskell.org/package/terminal-size/"
7908 "terminal-size-" version ".tar.gz"))
7909 (sha256
7910 (base32
7911 "0n4nvj3dbj9gxfnprgish45asn9z4dipv9j98s8i7g2n8yb3xhmm"))))
7912 (build-system haskell-build-system)
98b90194 7913 (home-page "https://hackage.haskell.org/package/terminal-size")
4e05c326
DC
7914 (synopsis "Get terminal window height and width")
7915 (description "Get terminal window height and width without ncurses
7916dependency.")
7917 (license license:bsd-3)))
7918
2d2388e2
DM
7919(define-public ghc-language-c
7920 (package
de793e9a
RW
7921 (name "ghc-language-c")
7922 (version "0.5.0")
7923 (source
2d2388e2
DM
7924 (origin
7925 (method url-fetch)
de793e9a
RW
7926 (uri (string-append "https://hackage.haskell.org/package/"
7927 "language-c/language-c-" version ".tar.gz"))
2d2388e2 7928 (sha256
de793e9a
RW
7929 (base32
7930 "08i2bl7jmmymn2sldzlbz6ig7lx3wfwhlpadzibs3fx72z08pmc6"))))
7931 (build-system haskell-build-system)
7932 (inputs `(("ghc-syb" ,ghc-syb)))
7933 (native-inputs
2d2388e2
DM
7934 `(("ghc-happy" ,ghc-happy)
7935 ("ghc-alex" ,ghc-alex)))
98b90194 7936 (home-page "https://visq.github.io/language-c/")
de793e9a
RW
7937 (synopsis "Analysis and generation of C code")
7938 (description
7939 "Language C is a Haskell library for the analysis and generation of C code.
7940It features a complete, well-tested parser and pretty printer for all of C99
2d2388e2 7941and a large set of GNU extensions.")
de793e9a 7942 (license license:bsd-3)))
2d2388e2 7943
6c8a387a
DM
7944(define-public ghc-markdown-unlit
7945 (package
7946 (name "ghc-markdown-unlit")
7947 (version "0.4.0")
7948 (source (origin
7949 (method url-fetch)
7950 (uri (string-append
7951 "mirror://hackage/package/markdown-unlit/"
7952 "markdown-unlit-" version ".tar.gz"))
7953 (sha256
7954 (base32
7955 "1kj2bffl7ndd8ygwwa3r1mbpwbxbfhyfgnbla8k8g9i6ffp0qrbw"))))
7956 (build-system haskell-build-system)
7957 (inputs
7958 `(("ghc-base-compat" ,ghc-base-compat)
7959 ("ghc-hspec" ,ghc-hspec)
7960 ("ghc-quickcheck" ,ghc-quickcheck)
7961 ("ghc-silently" ,ghc-silently)
7962 ("ghc-stringbuilder" ,ghc-stringbuilder)
7963 ("ghc-temporary" ,ghc-temporary)
7964 ("hspec-discover" ,hspec-discover)))
7965 (home-page "https://github.com/sol/markdown-unlit#readme")
7966 (synopsis "Literate Haskell support for Markdown")
7967 (description "This package allows you to have a README.md that at the
7968same time is a literate Haskell program.")
7969 (license license:expat)))
7970
ee719fba
DM
7971(define-public corrode
7972 (let ((commit "b6699fb2fa552a07c6091276285a44133e5c9789"))
7973 (package
7974 (name "corrode")
7975 (version (string-append "0.0.1-" (string-take commit 7)))
7976 (source
7977 (origin
7978 (method git-fetch)
7979 (uri (git-reference
7980 (url "https://github.com/jameysharp/corrode.git")
7981 (commit "b6699fb2fa552a07c6091276285a44133e5c9789")))
7982 (file-name
7983 (string-append name "-" version "-checkout"))
7984 (sha256
7985 (base32 "02v0yyj6sk4gpg2222wzsdqjxn8w66scbnf6b20x0kbmc69qcz4r"))))
7986 (build-system haskell-build-system)
7987 (inputs
7988 `(("ghc-language-c" ,ghc-language-c)
7989 ("ghc-markdown-unlit" ,ghc-markdown-unlit)))
7990 (home-page "https://github.com/jameysharp/corrode")
7991 (synopsis "Automatic semantics-preserving translation from C to Rust")
7992 (description
7993 "This program reads a C source file and prints an equivalent module in
7994Rust syntax. It is intended to be useful for two different purposes:
7995
7996@enumerate
7997@item Partial automation for migrating legacy code that was implemented in C.
7998@item A new, complementary approach to static analysis for C programs.
7999@end enumerate\n")
8000 (license license:gpl2+))))
8001
90762815
DM
8002(define-public ghc-wave
8003 (package
8004 (name "ghc-wave")
8005 (version "0.1.4")
8006 (source (origin
8007 (method url-fetch)
8008 (uri (string-append
8009 "https://hackage.haskell.org/package/wave/wave-"
8010 version
8011 ".tar.gz"))
8012 (sha256
8013 (base32
8014 "1g5nmqfk6p25v9ismwz4i66ay91bd1qh39xwj0hm4z6a5mw8frk8"))))
8015 (build-system haskell-build-system)
8016 (inputs
8017 `(("ghc-cereal" ,ghc-cereal)
8018 ("ghc-data-default-class"
8019 ,ghc-data-default-class)
8020 ("ghc-quickcheck" ,ghc-quickcheck)
8021 ("ghc-temporary" ,ghc-temporary)))
8022 (native-inputs
8023 `(("hspec-discover" ,hspec-discover)
8024 ("ghc-hspec" ,ghc-hspec)))
8025 (home-page "https://github.com/mrkkrp/wave")
8026 (synopsis "Work with WAVE and RF64 files in Haskell")
8027 (description "This package allows you to work with WAVE and RF64
8028files in Haskell.")
8029 (license license:bsd-3)))
8030
5f622de1 8031(define-public ghc-hslogger
8032 (package
8033 (name "ghc-hslogger")
8034 (version "1.2.10")
8035 (source
8036 (origin
8037 (method url-fetch)
8038 (uri (string-append "https://hackage.haskell.org/package/"
8039 "hslogger-" version "/" "hslogger-"
8040 version ".tar.gz"))
8041 (sha256 (base32
8042 "0as5gvlh6pi2gflakp695qnlizyyp059dqrhvjl4gjxalja6xjnp"))))
8043 (build-system haskell-build-system)
8044 (inputs
f54f0475 8045 `(("ghc-network" ,ghc-network)
831cb419 8046 ("ghc-old-locale" ,ghc-old-locale)))
5f622de1 8047 (native-inputs
8048 `(("ghc-hunit" ,ghc-hunit)))
98b90194 8049 (home-page "https://software.complete.org/hslogger")
5f622de1 8050 (synopsis "Logging framework for Haskell, similar to Python's logging module")
8051 (description "Hslogger lets each log message have a priority and source be
8052associated with it. The programmer can then define global handlers that route
8053or filter messages based on the priority and source. It also has a syslog
8054handler built in.")
8055 (license license:bsd-3)))
8056
a1563803 8057(define-public ghc-unexceptionalio
8058 (package
8059 (name "ghc-unexceptionalio")
06dae8ff 8060 (version "0.4.0")
a1563803 8061 (source
8062 (origin
8063 (method url-fetch)
8064 (uri (string-append "https://hackage.haskell.org/package/"
8065 "unexceptionalio-" version "/" "unexceptionalio-"
8066 version ".tar.gz"))
06dae8ff 8067 (sha256 (base32 "09gynk472l7nn5l2w320n4dwigwp0wh0shfp6dyw6r5h2jdxz18p"))))
a1563803 8068 (build-system haskell-build-system)
8069 (home-page "https://github.com/singpolyma/unexceptionalio")
8070 (synopsis "IO without any non-error, synchronous exceptions")
8071 (description "When you've caught all the exceptions that can be
8072handled safely, this is what you're left with.")
8073 (license license:isc)))
8074
6f8016f4
DM
8075(define-public ghc-json
8076 (package
8077 (name "ghc-json")
8078 (version "0.9.1")
8079 (source
8080 (origin
8081 (method url-fetch)
8082 (uri (string-append "https://hackage.haskell.org/package/json/"
8083 "json-" version ".tar.gz"))
8084 (sha256
8085 (base32
8086 "18l5027vc68hnnxrxlnyl59vkkg95a92m1zzms0dqiby2r6pxdcn"))))
8087 (build-system haskell-build-system)
8088 (inputs
8089 `(("ghc-syb" ,ghc-syb)
6f8016f4
DM
8090 ("ghc-text" ,ghc-text)
8091 ("ghc-parsec" ,ghc-parsec)))
98b90194 8092 (home-page "https://hackage.haskell.org/package/json")
6f8016f4
DM
8093 (synopsis "Serializes Haskell data to and from JSON")
8094 (description "This package provides a parser and pretty printer for
8095converting between Haskell values and JSON.
8096JSON (JavaScript Object Notation) is a lightweight data-interchange format.")
8097 (license license:bsd-3)))
8098
92c2097b
TS
8099(define-public ghc-esqueleto
8100 (package
8101 (name "ghc-esqueleto")
8102 (version "2.5.3")
8103 (source
8104 (origin
8105 (method url-fetch)
8106 (uri (string-append "https://hackage.haskell.org/package/"
8107 "esqueleto/esqueleto-" version ".tar.gz"))
8108 (sha256
8109 (base32
8110 "10n49rzqmblky7pwjnysalyy6nacmxfms8dqbsdv6hlyzr8pb69x"))))
8111 (build-system haskell-build-system)
8112 (inputs
8113 `(("ghc-blaze-html" ,ghc-blaze-html)
8114 ("ghc-conduit" ,ghc-conduit)
8115 ("ghc-monad-logger" ,ghc-monad-logger)
8116 ("ghc-persistent" ,ghc-persistent)
8117 ("ghc-resourcet" ,ghc-resourcet)
8118 ("ghc-tagged" ,ghc-tagged)
8119 ("ghc-text" ,ghc-text)
8120 ("ghc-unordered-containers" ,ghc-unordered-containers)))
8121 (native-inputs
8122 `(("ghc-hspec" ,ghc-hspec)
8123 ("ghc-hunit" ,ghc-hunit)
8124 ("ghc-monad-control" ,ghc-monad-control)
8125 ("ghc-persistent-sqlite" ,ghc-persistent-sqlite)
8126 ("ghc-persistent-template" ,ghc-persistent-template)
8127 ("ghc-quickcheck" ,ghc-quickcheck)))
8128 (home-page "https://github.com/bitemyapp/esqueleto")
8129 (synopsis "Type-safe embedded domain specific language for SQL queries")
8130 (description "This library provides a type-safe embedded domain specific
8131language (EDSL) for SQL queries that works with SQL backends as provided by
8132@code{ghc-persistent}. Its language closely resembles SQL, so you don't have
8133to learn new concepts, just new syntax, and it's fairly easy to predict the
8134generated SQL and optimize it for your backend.")
8135 (license license:bsd-3)))
8136
7e58cbbb
DM
8137(define-public shellcheck
8138 (package
8139 (name "shellcheck")
49d3d1d9 8140 (version "0.4.6")
7e58cbbb
DM
8141 (source
8142 (origin
8143 (method url-fetch)
8144 (uri (string-append "https://github.com/koalaman/shellcheck/archive/"
8145 "v" version ".tar.gz"))
8146 (sha256
8147 (base32
49d3d1d9 8148 "1qkd69lc34n3l23ss9rq1azvx49bfq4hi4bmaj76rgxybscxhg0w"))
7e58cbbb
DM
8149 (file-name (string-append name "-" version ".tar.gz"))))
8150 (build-system haskell-build-system)
8151 (inputs
8152 `(("ghc-quickcheck" ,ghc-quickcheck)
8153 ("ghc-json" ,ghc-json)
7e58cbbb
DM
8154 ("ghc-parsec" ,ghc-parsec)
8155 ("ghc-regex-tdfa" ,ghc-regex-tdfa)))
8156 (home-page "https://github.com/koalaman/shellcheck")
8157 (synopsis "Static analysis for shell scripts")
8158 (description "@code{shellcheck} provides static analysis for
8159@command{bash} and @command{sh} shell scripts.
8160It gives warnings and suggestions in order to:
8161
8162@enumerate
8163@item Point out and clarify typical beginner's syntax issues that cause
8164a shell to give cryptic error messages.
8165@item Point out and clarify typical intermediate level semantic problems
8166that cause a shell to behave strangely and counter-intuitively.
8167@item Point out subtle caveats, corner cases and pitfalls that may cause an
8168advanced user's otherwise working script to fail under future circumstances.
8169@end enumerate")
8170 (license license:gpl3+)))
8171
789dc568 8172(define-public ghc-simple-sendfile
8173 (package
8174 (name "ghc-simple-sendfile")
8175 (version "0.2.25")
8176 (source
8177 (origin
8178 (method url-fetch)
8179 (uri (string-append "https://hackage.haskell.org/package/"
8180 "simple-sendfile-" version "/"
8181 "simple-sendfile-" version ".tar.gz"))
8182 (sha256
8183 (base32
8184 "0k99j9xfcf83c55jmn202hdinhjaa4yn3dal4rvjk2w2rlhqirha"))))
8185 (build-system haskell-build-system)
8186 (inputs
8187 `(("ghc-conduit" ,ghc-conduit)
8188 ("ghc-conduit-extra" ,ghc-conduit-extra)
8189 ("ghc-network" ,ghc-network)
8190 ("ghc-resourcet" ,ghc-resourcet)))
8191 (native-inputs
8192 `(("ghc-hspec" ,ghc-hspec)
8193 ("hspec-discover" ,hspec-discover)))
8194 (home-page "https://github.com/kazu-yamamoto/simple-sendfile")
8195 (synopsis "Cross platform library for the sendfile system call")
8196 (description "This library tries to call minimum system calls which
8197are the bottleneck of web servers.")
8198 (license license:bsd-3)))
8199
59b340a5 8200(define-public ghc-hex
8201 (package
8202 (name "ghc-hex")
8203 (version "0.1.2")
8204 (source
8205 (origin
8206 (method url-fetch)
8207 (uri (string-append "https://hackage.haskell.org/package/"
8208 "hex-" version "/"
8209 "hex-" version ".tar.gz"))
8210 (sha256
8211 (base32
8212 "1v31xiaivrrn0q2jz8919wvkjplv1kxna5ajhsj701fqxm1i5vhj"))))
8213 (build-system haskell-build-system)
98b90194 8214 (home-page "https://hackage.haskell.org/package/hex")
59b340a5 8215 (synopsis "Convert strings into hexadecimal and back")
8216 (description "This package provides conversion functions between
8217bytestrings and their hexademical representation.")
8218 (license license:bsd-3)))
8219
aba85f8c 8220(define-public ghc-psqueues
8221 (package
8222 (name "ghc-psqueues")
20c902f0 8223 (version "0.2.6.0")
aba85f8c 8224 (source
8225 (origin
8226 (method url-fetch)
8227 (uri (string-append "https://hackage.haskell.org/package/"
8228 "psqueues-" version "/"
8229 "psqueues-" version ".tar.gz"))
8230 (sha256
8231 (base32
20c902f0 8232 "0n39s1i88j6s7vvsdhpbhcr3gpbwlzabwcc3nbd7nqb4kb4i0sls"))))
aba85f8c 8233 (build-system haskell-build-system)
1ea39719
TS
8234 (arguments
8235 `(#:configure-flags (list "--allow-newer=QuickCheck")))
aba85f8c 8236 (inputs
8237 `(("ghc-hashable" ,ghc-hashable)))
8238 (native-inputs
8239 `(("ghc-hunit" ,ghc-hunit)
8240 ("ghc-quickcheck" ,ghc-quickcheck)
8241 ("ghc-tagged" ,ghc-tagged)
8242 ("ghc-test-framework" ,ghc-test-framework)
8243 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
8244 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
20c902f0 8245 (home-page "https://github.com/jaspervdj/psqueues")
aba85f8c 8246 (synopsis "Pure priority search queues")
8247 (description "The psqueues package provides
98b90194 8248@uref{https://en.wikipedia.org/wiki/Priority_queue, Priority Search Queues} in
aba85f8c 8249three different flavors:
8250
8251@itemize
8252@item @code{OrdPSQ k p v}, which uses the @code{Ord k} instance to provide
8253fast insertion, deletion and lookup. This implementation is based on Ralf
8254Hinze's @uref{http://citeseer.ist.psu.edu/hinze01simple.html, A Simple
8255Implementation Technique for Priority Search Queues}.
8256
98b90194 8257Hence, it is similar to the @uref{https://hackage.haskell.org/package/PSQueue,
aba85f8c 8258PSQueue} library, although it is considerably faster and provides a slightly
8259different API.
8260
8261@item @code{IntPSQ p v} is a far more efficient implementation. It fixes the
8262key type to @code{Int} and uses a
98b90194 8263@code{https://en.wikipedia.org/wiki/Radix_tree, radix tree} (like @code{IntMap})
a5f89a63 8264with an additional min-heap property.
aba85f8c 8265
8266@item @code{HashPSQ k p v} is a fairly straightforward extension
8267of @code{IntPSQ}: it simply uses the keys' hashes as indices in the
8268@code{IntPSQ}. If there are any hash collisions, it uses an
8269@code{OrdPSQ} to resolve those. The performance of this implementation
8270is comparable to that of @code{IntPSQ}, but it is more widely
8271applicable since the keys are not restricted to @code{Int},
8272but rather to any @code{Hashable} datatype.
8273@end itemize
8274
8275Each of the three implementations provides the same API, so they can
8276be used interchangeably.
8277
8278Typical applications of Priority Search Queues include:
8279
8280@itemize
8281@item Caches, and more specifically LRU Caches;
8282@item Schedulers;
8283@item Pathfinding algorithms, such as Dijkstra's and A*.
8284@end itemize")
8285 (license license:bsd-3)))
8286
4031fb60 8287(define-public ghc-glob
8288 (package
8289 (name "ghc-glob")
c0fc5003 8290 (version "0.9.1")
4031fb60 8291 (source
8292 (origin
8293 (method url-fetch)
8294 (uri (string-append "https://hackage.haskell.org/package/"
8295 "Glob-" version "/"
8296 "Glob-" version ".tar.gz"))
8297 (sha256
8298 (base32
c0fc5003 8299 "0rzmsknl02p332dxmm36fyrz3dpma7bchn0ymyjipxvqil20pjw0"))))
4031fb60 8300 (build-system haskell-build-system)
8301 (inputs
8302 `(("ghc-dlist" ,ghc-dlist)
8303 ("ghc-semigroups" ,ghc-semigroups)
8304 ("ghc-transformers-compat" ,ghc-transformers-compat)))
8305 (native-inputs
8306 `(("ghc-hunit" ,ghc-hunit)
8307 ("ghc-quickcheck" ,ghc-quickcheck)
8308 ("ghc-test-framework" ,ghc-test-framework)
8309 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
8310 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
8311 (home-page "http://iki.fi/matti.niemenmaa/glob/")
8312 (synopsis "Haskell library matching glob patterns against file paths")
581a006b 8313 (description "This package provides a Haskell library for @dfn{globbing}:
4031fb60 8314matching patterns against file paths.")
8315 (license license:bsd-3)))
8316
78d8b8f3 8317(define-public ghc-errors
8318 (package
8319 (name "ghc-errors")
8320 (version "2.2.2")
8321 (source
8322 (origin
8323 (method url-fetch)
8324 (uri (string-append "https://hackage.haskell.org/package/"
8325 "errors-" version "/"
8326 "errors-" version ".tar.gz"))
8327 (sha256
8328 (base32
8329 "13sflhglcm5skwrxb48fw96skdcx7ydiy4zg22200733pxhjncpn"))))
8330 (build-system haskell-build-system)
8331 (inputs
8332 `(("ghc-exceptions" ,ghc-exceptions)
8333 ("ghc-text" ,ghc-text)
8334 ("ghc-transformers-compat" ,ghc-transformers-compat)
8335 ("ghc-unexceptionalio" ,ghc-unexceptionalio)
8336 ("ghc-safe" ,ghc-safe)))
8337 (home-page "https://github.com/gabriel439/haskell-errors-library")
8338 (synopsis "Error handling library for Haskell")
8339 (description "This library encourages an error-handling style that
8340directly uses the type system, rather than out-of-band exceptions.")
8341 (license license:bsd-3)))
8342
c1274a0b 8343(define-public ghc-vector-th-unbox
8344 (package
8345 (name "ghc-vector-th-unbox")
8346 (version "0.2.1.6")
8347 (source
8348 (origin
8349 (method url-fetch)
8350 (uri (string-append "https://hackage.haskell.org/package/"
8351 "vector-th-unbox-" version "/"
8352 "vector-th-unbox-" version ".tar.gz"))
8353 (sha256
8354 (base32
8355 "0d82x55f5vvr1jvaia382m23rs690lg55pvavv8f4ph0y6kd91xy"))))
8356 (build-system haskell-build-system)
8357 (inputs
8358 `(("ghc-vector" ,ghc-vector)
8359 ("ghc-data-default" ,ghc-data-default)))
8360 (home-page "https://github.com/liyang/vector-th-unbox")
8361 (synopsis "Deriver for Data.Vector.Unboxed using Template Haskell")
8362 (description "This Haskell library provides a Template Haskell
8363deriver for unboxed vectors, given a pair of coercion functions to
8364and from some existing type with an Unbox instance.")
8365 (license license:bsd-3)))
8366
bdd7e395 8367(define-public ghc-erf
8368 (package
8369 (name "ghc-erf")
8370 (version "2.0.0.0")
8371 (source
8372 (origin
8373 (method url-fetch)
8374 (uri (string-append "https://hackage.haskell.org/package/"
8375 "erf-" version "/"
8376 "erf-" version ".tar.gz"))
8377 (sha256
8378 (base32
8379 "0dxk2r32ajmmc05vaxcp0yw6vgv4lkbmh8jcshncn98xgsfbgw14"))))
8380 (build-system haskell-build-system)
8381 (home-page "https://hackage.haskell.org/package/erf")
8382 (synopsis "The error function, erf, and related functions for Haskell")
8383 (description "This Haskell library provides a type class for the
8384error function, erf, and related functions. Instances for Float and
8385Double.")
8386 (license license:bsd-3)))
8387
a51ba897 8388(define-public ghc-math-functions
8389 (package
8390 (name "ghc-math-functions")
8391 (version "0.2.1.0")
8392 (source
8393 (origin
8394 (method url-fetch)
8395 (uri (string-append "https://hackage.haskell.org/package/"
8396 "math-functions-" version "/"
8397 "math-functions-" version ".tar.gz"))
8398 (sha256
8399 (base32
8400 "1sv5vabsx332v1lpb6v3jv4zrzvpx1n7yprzd8wlcda5vsc5a6zp"))))
8401 (build-system haskell-build-system)
fc3ef1e2 8402 (arguments `(#:tests? #f)) ; FIXME: 1 test fails.
a51ba897 8403 (inputs
8404 `(("ghc-vector" ,ghc-vector)
8405 ("ghc-vector-th-unbox" ,ghc-vector-th-unbox)))
8406 (native-inputs
8407 `(("ghc-hunit" ,ghc-hunit)
8408 ("ghc-quickcheck" ,ghc-quickcheck)
8409 ("ghc-erf" ,ghc-erf)
8410 ("ghc-test-framework" ,ghc-test-framework)
8411 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
8412 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
8413 (home-page "https://github.com/bos/math-functions")
8414 (synopsis "Special functions and Chebyshev polynomials for Haskell")
8415 (description "This Haskell library provides implementations of
8416special mathematical functions and Chebyshev polynomials. These
8417functions are often useful in statistical and numerical computing.")
8418 (license license:bsd-3)))
8419
1a2a247b 8420(define-public ghc-mwc-random
8421 (package
8422 (name "ghc-mwc-random")
8423 (version "0.13.6.0")
8424 (source
8425 (origin
8426 (method url-fetch)
8427 (uri (string-append "https://hackage.haskell.org/package/"
8428 "mwc-random-" version "/"
8429 "mwc-random-" version ".tar.gz"))
8430 (sha256
8431 (base32
8432 "05j7yh0hh9nxic3dijmzv44kc6gzclvamdph7sq7w19wq57k6pq6"))))
8433 (build-system haskell-build-system)
8434 (inputs
8435 `(("ghc-primitive" ,ghc-primitive)
8436 ("ghc-vector" ,ghc-vector)
8437 ("ghc-math-functions" ,ghc-math-functions)))
8438 (arguments
8439 `(#:tests? #f)) ; FIXME: Test-Suite `spec` fails.
8440 (native-inputs
8441 `(("ghc-hunit" ,ghc-hunit)
8442 ("ghc-quickcheck" ,ghc-quickcheck)
8443 ("ghc-test-framework" ,ghc-test-framework)
8444 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
8445 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
8446 (home-page "https://github.com/bos/mwc-random")
8447 (synopsis "Random number generation library for Haskell")
8448 (description "This Haskell package contains code for generating
8449high quality random numbers that follow either a uniform or normal
8450distribution. The generated numbers are suitable for use in
8451statistical applications.
8452
8453The uniform PRNG uses Marsaglia's MWC256 (also known as MWC8222)
8454multiply-with-carry generator, which has a period of 2^{8222} and
8455fares well in tests of randomness. It is also extremely fast,
8456between 2 and 3 times faster than the Mersenne Twister.")
8457 (license license:bsd-3)))
8458
30aede1b 8459(define-public ghc-vector-algorithms
8460 (package
8461 (name "ghc-vector-algorithms")
8462 (version "0.7.0.1")
8463 (source
8464 (origin
8465 (method url-fetch)
8466 (uri (string-append "https://hackage.haskell.org/package/"
8467 "vector-algorithms-" version "/"
8468 "vector-algorithms-" version ".tar.gz"))
8469 (sha256
8470 (base32
8471 "0w4hf598lpxfg58rnimcqxrbnpqq2jmpjx82qa5md3q6r90hlipd"))))
8472 (build-system haskell-build-system)
178bd681
RW
8473 ;; The limits have been adjusted in a revision of the cabal file.
8474 (arguments
8475 '(#:configure-flags (list "--allow-newer=vector")
8476 #:phases
8477 (modify-phases %standard-phases
8478 ;; The tests cannot be built due to type errors.
8479 (add-after 'unpack 'do-not-build-quickcheck-tests
8480 (lambda _
8481 (substitute* "vector-algorithms.cabal"
8482 (("\\!flag\\(properties\\)") "True"))
8483 #t)))))
30aede1b 8484 (inputs
8485 `(("ghc-vector" ,ghc-vector)
30aede1b 8486 ("ghc-mwc-random" ,ghc-mwc-random)))
8487 (native-inputs
8488 `(("ghc-quickcheck" ,ghc-quickcheck)))
8489 (home-page "https://github.com/bos/math-functions")
8490 (synopsis "Algorithms for vector arrays in Haskell")
8491 (description "This Haskell library algorithms for vector arrays.")
8492 (license license:bsd-3)))
8493
897d4f28 8494(define-public ghc-language-haskell-extract
8495 (package
8496 (name "ghc-language-haskell-extract")
8497 (version "0.2.4")
8498 (source
8499 (origin
8500 (method url-fetch)
8501 (uri (string-append "https://hackage.haskell.org/package/"
8502 "language-haskell-extract-" version "/"
8503 "language-haskell-extract-" version ".tar.gz"))
8504 (sha256
8505 (base32
8506 "1nxcs7g8a1sp91bzpy4cj6s31k5pvc3gvig04cbrggv5cvjidnhl"))))
8507 (build-system haskell-build-system)
8508 (inputs
8509 `(("ghc-regex-posix" ,ghc-regex-posix)))
8510 (home-page "https://github.com/finnsson/template-helper")
8511 (synopsis "Haskell module to automatically extract functions from
8512the local code")
8513 (description "This package contains helper functions on top of
8514Template Haskell.
8515
8516For example, @code{functionExtractor} extracts all functions after a
8517regexp-pattern, which can be useful if you wish to extract all functions
8518beginning with @code{test} (for a test framework) or all functions beginning
8519with @code{wc} (for a web service).")
8520 (license license:bsd-3)))
8521
97b26920 8522(define-public ghc-abstract-par
8523 (package
8524 (name "ghc-abstract-par")
8525 (version "0.3.3")
8526 (source
8527 (origin
8528 (method url-fetch)
8529 (uri (string-append "https://hackage.haskell.org/package/"
8530 "abstract-par-" version "/"
8531 "abstract-par-" version ".tar.gz"))
8532 (sha256
8533 (base32
8534 "0q6qsniw4wks2pw6wzncb1p1j3k6al5njnvm2v5n494hplwqg2i4"))))
8535 (build-system haskell-build-system)
8536 (home-page "https://github.com/simonmar/monad-par")
8537 (synopsis "Abstract parallelization interface for Haskell")
8538 (description "This Haskell package is an abstract interface
8539only. It provides a number of type clasess, but not an
8540implementation. The type classes separate different levels
8541of @code{Par} functionality. See the @code{Control.Monad.Par.Class}
8542module for more details.")
8543 (license license:bsd-3)))
8544
59551881 8545(define-public ghc-monad-par-extras
8546 (package
8547 (name "ghc-monad-par-extras")
8548 (version "0.3.3")
8549 (source
8550 (origin
8551 (method url-fetch)
8552 (uri (string-append "https://hackage.haskell.org/package/"
8553 "monad-par-extras-" version "/"
8554 "monad-par-extras-" version ".tar.gz"))
8555 (sha256
8556 (base32
8557 "0bl4bd6jzdc5zm20q1g67ppkfh6j6yn8fwj6msjayj621cck67p2"))))
8558 (build-system haskell-build-system)
8559 (inputs `(("ghc-abstract-par" ,ghc-abstract-par)
8560 ("ghc-cereal" ,ghc-cereal)
f54f0475 8561 ("ghc-random" ,ghc-random)))
59551881 8562 (home-page "https://github.com/simonmar/monad-par")
8563 (synopsis "Combinators and extra features for Par monads for Haskell")
8564 (description "This Haskell package provides additional data structures,
8565and other added capabilities layered on top of the @code{Par} monad.")
8566 (license license:bsd-3)))
8567
f978e2ac 8568(define-public ghc-abstract-deque
8569 (package
8570 (name "ghc-abstract-deque")
8571 (version "0.3")
8572 (source
8573 (origin
8574 (method url-fetch)
8575 (uri (string-append "https://hackage.haskell.org/package/"
8576 "abstract-deque-" version "/"
8577 "abstract-deque-" version ".tar.gz"))
8578 (sha256
8579 (base32
8580 "18jwswjxwzc9bjiy4ds6hw2a74ki797jmfcifxd2ga4kh7ri1ah9"))))
8581 (build-system haskell-build-system)
8582 (inputs `(("ghc-random" ,ghc-random)))
8583 (home-page "https://github.com/rrnewton/haskell-lockfree/wiki")
8584 (synopsis "Abstract, parameterized interface to mutable Deques for Haskell")
8585 (description "This Haskell package provides an abstract interface to
8586highly-parameterizable queues/deques.
8587
8588Background: There exists a feature space for queues that extends between:
8589
8590@itemize
8591@item Simple, single-ended, non-concurrent, bounded queues
8592
467834d5
TGR
8593@item Double-ended, thread-safe, growable queues with important points
8594in between (such as the queues used for work stealing).
f978e2ac 8595@end itemize
8596
8597This package includes an interface for Deques that allows the programmer
467834d5 8598to use a single API for all of the above, while using the type system to
f978e2ac 8599select an efficient implementation given the requirements (using type families).
8600
8601This package also includes a simple reference implementation based on
8602@code{IORef} and @code{Data.Sequence}.")
8603 (license license:bsd-3)))
8604
608bf276 8605(define-public ghc-monad-par
8606 (package
8607 (name "ghc-monad-par")
8608 (version "0.3.4.8")
8609 (source
8610 (origin
8611 (method url-fetch)
8612 (uri (string-append "https://hackage.haskell.org/package/"
8613 "monad-par-" version "/"
8614 "monad-par-" version ".tar.gz"))
8615 (sha256
8616 (base32
8617 "0ldrzqy24fsszvn2a2nr77m2ih7xm0h9bgkjyv1l274aj18xyk7q"))))
8618 (build-system haskell-build-system)
8619 (inputs `(("ghc-abstract-par" ,ghc-abstract-par)
8620 ("ghc-abstract-deque" ,ghc-abstract-deque)
8621 ("ghc-monad-par-extras" ,ghc-monad-par-extras)
8622 ("ghc-mwc-random" ,ghc-mwc-random)
f54f0475 8623 ("ghc-parallel" ,ghc-parallel)))
608bf276 8624 (native-inputs `(("ghc-quickcheck" ,ghc-quickcheck)
8625 ("ghc-hunit" ,ghc-hunit)
8626 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
8627 ("ghc-test-framework-quickcheck2"
8628 ,ghc-test-framework-quickcheck2)
8629 ("ghc-test-framework" ,ghc-test-framework)
8630 ("ghc-test-framework-th" ,ghc-test-framework-th)))
8631 (home-page "https://github.com/simonmar/monad-par")
8632 (synopsis "Haskell library for parallel programming based on a monad")
8633 (description "The @code{Par} monad offers an API for parallel
8634programming. The library works for parallelising both pure and @code{IO}
8635computations, although only the pure version is deterministic. The default
8636implementation provides a work-stealing scheduler and supports forking tasks
8637that are much lighter weight than IO-threads.")
8638 (license license:bsd-3)))
8639
0c717284 8640(define-public ghc-statistics
8641 (package
8642 (name "ghc-statistics")
8643 (version "0.14.0.2")
8644 (source
8645 (origin
8646 (method url-fetch)
8647 (uri (string-append "https://hackage.haskell.org/package/"
8648 "statistics-" version "/"
8649 "statistics-" version ".tar.gz"))
8650 (sha256
8651 (base32
8652 "0y27gafkib0x0fn39qfn2rkgsfrm09ng35sbb5dwr7rclhnxz59l"))))
8653 (build-system haskell-build-system)
8654 (inputs
8655 `(("ghc-aeson" ,ghc-aeson)
8656 ("ghc-base-orphans" ,ghc-base-orphans)
8657 ("ghc-erf" ,ghc-erf)
8658 ("ghc-math-functions" ,ghc-math-functions)
8659 ("ghc-monad-par" ,ghc-monad-par)
8660 ("ghc-mwc-random" ,ghc-mwc-random)
8661 ("ghc-primitive" ,ghc-primitive)
8662 ("ghc-vector" ,ghc-vector)
8663 ("ghc-vector-algorithms" ,ghc-vector-algorithms)
8664 ("ghc-vector-th-unbox" ,ghc-vector-th-unbox)
8665 ("ghc-vector-binary-instances" ,ghc-vector-binary-instances)))
8666 (native-inputs
8667 `(("ghc-hunit" ,ghc-hunit)
8668 ("ghc-quickcheck" ,ghc-quickcheck)
c695fb76 8669 ("ghc-ieee754" ,ghc-ieee754)
0c717284 8670 ("ghc-test-framework" ,ghc-test-framework)
8671 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
8672 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
8673 (arguments
8674 `(#:tests? #f)) ; FIXME: Test-Suite `spec` fails.
8675 (home-page "https://github.com/bos/mwc-random")
8676 (synopsis "Haskell library of statistical types, data, and functions")
8677 (description "This library provides a number of common functions
8678and types useful in statistics. We focus on high performance, numerical
8679robustness, and use of good algorithms. Where possible, we provide references
8680to the statistical literature.
8681
8682The library's facilities can be divided into four broad categories:
8683
8684@itemize
8685@item Working with widely used discrete and continuous probability
8686distributions. (There are dozens of exotic distributions in use; we focus
8687on the most common.)
8688
8689@item Computing with sample data: quantile estimation, kernel density
8690estimation, histograms, bootstrap methods, significance testing,
8691and regression and autocorrelation analysis.
8692
8693@item Random variate generation under several different distributions.
8694
8695@item Common statistical tests for significant differences between samples.
8696@end itemize")
8697 (license license:bsd-2)))
8698
371ad40c 8699(define-public ghc-chunked-data
8700 (package
8701 (name "ghc-chunked-data")
8702 (version "0.3.0")
8703 (source
8704 (origin
8705 (method url-fetch)
8706 (uri (string-append "https://hackage.haskell.org/package/"
8707 "chunked-data-" version "/"
8708 "chunked-data-" version ".tar.gz"))
8709 (sha256
8710 (base32
8711 "0bszq6fijnr4pmadzz89smj7kfmzx0ca3wd9ga8gv0in9jk9vgp1"))))
8712 (build-system haskell-build-system)
8713 (inputs `(("ghc-vector" ,ghc-vector)
d6e559ab 8714 ("ghc-semigroups" ,ghc-semigroups)
8715 ("ghc-text" ,ghc-text)))
371ad40c 8716 (home-page "https://github.com/snoyberg/mono-traversable")
8717 (synopsis "Typeclasses for dealing with various chunked data
8718representations for Haskell")
8719 (description "This Haskell package was originally present in
8720classy-prelude.")
8721 (license license:expat)))
8722
ac4cb8fd 8723(define-public ghc-base-prelude
8724 (package
8725 (name "ghc-base-prelude")
d3cc0eb2 8726 (version "1.3")
ac4cb8fd 8727 (source
8728 (origin
8729 (method url-fetch)
8730 (uri (string-append "https://hackage.haskell.org/package/"
8731 "base-prelude-" version "/"
8732 "base-prelude-" version ".tar.gz"))
8733 (sha256
8734 (base32
d3cc0eb2 8735 "1zk728sd09hh2r4xwz4lazsrrgg5cshydn64932sm0vckplndk73"))))
ac4cb8fd 8736 (build-system haskell-build-system)
8737 (home-page "https://github.com/nikita-volkov/base-prelude")
8738 (synopsis "The most complete prelude formed solely from the Haskell's base
8739package")
8740 (description "This Haskell package aims to reexport all the non-conflicting
8741and most general definitions from the \"base\" package.
8742
8743This includes APIs for applicatives, arrows, monoids, foldables, traversables,
8744exceptions, generics, ST, MVars and STM.
8745
8746This package will never have any dependencies other than \"base\".
8747
8748Versioning policy:
8749
8750The versioning policy of this package deviates from PVP in the sense
8751that its exports in part are transitively determined by the version of \"base\".
8752Therefore it's recommended for the users of @code{ghc-base-prelude} to specify
8753the bounds of \"base\" as well.")
8754 (license license:expat)))
8755
e329bacb 8756(define-public ghc-tuple-th
8757 (package
8758 (name "ghc-tuple-th")
8759 (version "0.2.5")
8760 (source
8761 (origin
8762 (method url-fetch)
8763 (uri (string-append "https://hackage.haskell.org/package/"
8764 "tuple-th-" version "/"
8765 "tuple-th-" version ".tar.gz"))
8766 (sha256
8767 (base32
8768 "1mrl4vvxmby7sf1paf7hklzidnr6wq55822i73smqyz0xpf3gsjn"))))
8769 (build-system haskell-build-system)
8770 (home-page "https://github.com/DanielSchuessler/tuple-th")
8771 (synopsis "Generate utility functions for tuples of statically known size
8772for Haskell")
8773 (description "This Haskell package contains Template Haskell functions for
8774generating functions similar to those in @code{Data.List} for tuples of
8775statically known size.")
8776 (license license:bsd-3)))
8777
4562c8c8 8778(define-public ghc-contravariant-extras
8779 (package
8780 (name "ghc-contravariant-extras")
8781 (version "0.3.3.1")
8782 (source
8783 (origin
8784 (method url-fetch)
8785 (uri (string-append "https://hackage.haskell.org/package/"
8786 "contravariant-extras-" version "/"
8787 "contravariant-extras-" version ".tar.gz"))
8788 (sha256
8789 (base32
8790 "1mbrgjybdx8fjdck4ldwi8955w4qnmm0ql56zix7dyn0s7s9spgk"))))
8791 (build-system haskell-build-system)
8792 (inputs `(("ghc-tuple-th" ,ghc-tuple-th)
8793 ("ghc-contravariant" ,ghc-contravariant)
c695fb76 8794 ("ghc-base-prelude" ,ghc-base-prelude)))
4562c8c8 8795 (home-page "https://github.com/nikita-volkov/contravariant-extras")
8796 (synopsis "Extras for the @code{ghc-contravariant} Haskell package")
8797 (description "This Haskell package provides extras for the
8798@code{ghc-contravariant} package.")
8799 (license license:expat)))
8800
87129984 8801(define-public ghc-monadrandom
8802 (package
8803 (name "ghc-monadrandom")
d58fda7d 8804 (version "0.5.1.1")
87129984 8805 (source
8806 (origin
8807 (method url-fetch)
8808 (uri (string-append "https://hackage.haskell.org/package/"
8809 "MonadRandom-" version "/"
8810 "MonadRandom-" version ".tar.gz"))
8811 (sha256
8812 (base32
d58fda7d 8813 "0w44jl1n3kqvqaflh82l1wj3xxbhzfs3kf4m8rk7w6fgg8llmnmb"))))
87129984 8814 (build-system haskell-build-system)
8815 (inputs `(("ghc-transformers-compat" ,ghc-transformers-compat)
87129984 8816 ("ghc-primitive" ,ghc-primitive)
8817 ("ghc-fail" ,ghc-fail)
8818 ("ghc-random" ,ghc-random)))
8819 (home-page "https://github.com/byorgey/MonadRandom")
8820 (synopsis "Random-number generation monad for Haskell")
8821 (description "This Haskell package provides support for computations
8822which consume random values.")
8823 (license license:bsd-3)))
8824
16d4125e 8825(define-public ghc-either
8826 (package
8827 (name "ghc-either")
8828 (version "4.4.1.1")
8829 (source
8830 (origin
8831 (method url-fetch)
8832 (uri (string-append "https://hackage.haskell.org/package/"
8833 "either-" version "/"
8834 "either-" version ".tar.gz"))
8835 (sha256
8836 (base32
8837 "1lrlwqqnm6ibfcydlv5qvvssw7bm0c6yypy0rayjzv1znq7wp1xh"))))
8838 (build-system haskell-build-system)
8839 (inputs `(("ghc-bifunctors" ,ghc-bifunctors)
8840 ("ghc-exceptions" ,ghc-exceptions)
8841 ("ghc-free" ,ghc-free)
8842 ("ghc-monad-control" ,ghc-monad-control)
8843 ("ghc-manodrandom" ,ghc-monadrandom)
16d4125e 8844 ("ghc-mmorph" ,ghc-mmorph)
8845 ("ghc-profunctors" ,ghc-profunctors)
8846 ("ghc-semigroups" ,ghc-semigroups)
8847 ("ghc-semigroupoids" ,ghc-semigroupoids)
8848 ("ghc-transformers-base" ,ghc-transformers-base)))
8849 (home-page "https://github.com/ekmett/either")
8850 (synopsis "Provides an either monad transformer for Haskell")
8851 (description "This Haskell package provides an either monad transformer.")
8852 (license license:bsd-3)))
933e7804 8853
f78ed5d5 8854(define-public ghc-pretty-hex
8855 (package
8856 (name "ghc-pretty-hex")
8857 (version "1.0")
8858 (source
8859 (origin
8860 (method url-fetch)
8861 (uri (string-append "https://hackage.haskell.org/package/"
8862 "pretty-hex-" version "/"
8863 "pretty-hex-" version ".tar.gz"))
8864 (sha256
8865 (base32
8866 "0ylwkvvjvmpprha9nx83xb8gkhyanhk5fffc0r7lb96n4ch5z6pz"))))
8867 (build-system haskell-build-system)
8868 (home-page "https://github.com/GaloisInc/hexdump")
8869 (synopsis "Haskell library for hex dumps of ByteStrings")
8870 (description "This Haskell library generates pretty hex dumps of
8871ByteStrings in the style of other common *nix hex dump tools.")
8872 (license license:bsd-3)))
8873
6eda2635 8874(define-public ghc-network-info
8875 (package
8876 (name "ghc-network-info")
e433898d 8877 (version "0.2.0.10")
6eda2635 8878 (source
8879 (origin
8880 (method url-fetch)
8881 (uri (string-append "https://hackage.haskell.org/package/"
8882 "network-info-" version "/"
8883 "network-info-" version ".tar.gz"))
8884 (sha256
8885 (base32
e433898d 8886 "0anmgzcpnz7nw3n6vq0r25m1s9l2svpwi83wza0lzkrlbnbzd02n"))))
6eda2635 8887 (build-system haskell-build-system)
8888 (home-page "https://github.com/jystic/network-info")
8889 (synopsis "Access the local computer's basic network configuration")
8890 (description "This Haskell library provides simple read-only access to the
8891local computer's networking configuration. It is currently capable of
8892getting a list of all the network interfaces and their respective
8893IPv4, IPv6 and MAC addresses.")
8894 (license license:bsd-3)))
8895
b999b009 8896(define-public ghc-uuid-types
8897 (package
8898 (name "ghc-uuid-types")
8899 (version "1.0.3")
8900 (source
8901 (origin
8902 (method url-fetch)
8903 (uri (string-append "https://hackage.haskell.org/package/"
8904 "uuid-types-" version "/"
8905 "uuid-types-" version ".tar.gz"))
8906 (sha256
8907 (base32
8908 "1zdka5jnm1h6k36w3nr647yf3b5lqb336g3fkprhd6san9x52xlj"))))
8909 (build-system haskell-build-system)
b1c5c8de 8910 (arguments
d9c36e5b
RW
8911 `(#:configure-flags (list "--allow-newer=QuickCheck"
8912 "--allow-newer=HUnit")))
b999b009 8913 (inputs `(("ghc-hashable" ,ghc-hashable)
8914 ("ghc-random" ,ghc-random)
8915 ("ghc-text" ,ghc-text)))
8916 (native-inputs `(("ghc-hunit" ,ghc-hunit)
8917 ("ghc-quickcheck" ,ghc-quickcheck)
8918 ("ghc-tasty" ,ghc-tasty)
8919 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
8920 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
8921 (home-page "https://github.com/hvr/uuid")
8922 (synopsis "Haskell type definitions for UUIDs")
8923 (description "This Haskell library contains type definitions for
8924@dfn{Universally Unique Identifiers} or
98b90194 8925@uref{https://en.wikipedia.org/wiki/UUID, UUIDs}, and basic conversion
b999b009 8926functions.")
8927 (license license:bsd-3)))
8928
24535a3d 8929(define-public ghc-uuid
8930 (package
8931 (name "ghc-uuid")
8932 (version "1.3.13")
8933 (source
8934 (origin
8935 (method url-fetch)
8936 (uri (string-append "https://hackage.haskell.org/package/"
8937 "uuid-" version "/"
8938 "uuid-" version ".tar.gz"))
8939 (sha256
8940 (base32
8941 "09xhk42yhxvqmka0iqrv3338asncz8cap3j0ic0ps896f2581b6z"))))
8942 (build-system haskell-build-system)
1debc5b9 8943 (arguments
5c51cdb9
RW
8944 `(#:configure-flags (list "--allow-newer=QuickCheck"
8945 "--allow-newer=HUnit")))
24535a3d 8946 (inputs `(("ghc-cryptohash-sha1" ,ghc-cryptohash-sha1)
8947 ("ghc-cryptohash-md5" ,ghc-cryptohash-md5)
8948 ("ghc-entropy" ,ghc-entropy)
8949 ("ghc-network-info" ,ghc-network-info)
8950 ("ghc-random" ,ghc-random)
8951 ("ghc-text" ,ghc-text)
8952 ("ghc-uuid-types" ,ghc-uuid-types)))
8953 (native-inputs `(("ghc-hunit" ,ghc-hunit)
8954 ("ghc-quickcheck" ,ghc-quickcheck)
8955 ("ghc-tasty" ,ghc-tasty)
8956 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
8957 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
8958 (home-page "https://github.com/hvr/uuid")
8959 (synopsis "Haskell library to create, compare, parse, and print UUIDs")
8960 (description "This Haskell library provides utilities creating, comparing,
8961parsing and printing @dfn{Universally Unique Identifiers} or UUIDs.")
8962 (license license:bsd-3)))
8963
33109c82 8964(define-public ghc-rebase
8965 (package
8966 (name "ghc-rebase")
8967 (version "1.1")
8968 (source
8969 (origin
8970 (method url-fetch)
8971 (uri (string-append "https://hackage.haskell.org/package/"
8972 "rebase-" version "/"
8973 "rebase-" version ".tar.gz"))
8974 (sha256
8975 (base32
8976 "1qkhnpcc4g2vd6jmbf3b6psqkan6hyawqzrwzqdd931hsb02l6ia"))))
8977 (build-system haskell-build-system)
8978 (inputs `(("ghc-stm" ,ghc-stm)
8979 ("ghc-hashable" ,ghc-hashable)
8980 ("ghc-vector" ,ghc-vector)
8981 ("ghc-unordered-containers" ,ghc-unordered-containers)
8982 ("ghc-text" ,ghc-text)
8983 ("ghc-scientific" ,ghc-scientific)
8984 ("ghc-uuid" ,ghc-uuid)
8985 ("ghc-dlist" ,ghc-dlist)
8986 ("ghc-void" ,ghc-void)
8987 ("ghc-bifunctors" ,ghc-bifunctors)
8988 ("ghc-profunctors" ,ghc-profunctors)
8989 ("ghc-contravariant" ,ghc-contravariant)
8990 ("ghc-contravariant-extras" ,ghc-contravariant-extras)
8991 ("ghc-semigroups" ,ghc-semigroups)
33109c82 8992 ("ghc-either" ,ghc-either)
8993 ("ghc-fail" ,ghc-fail)
8994 ("ghc-base-prelude" ,ghc-base-prelude)))
8995 (home-page "https://github.com/nikita-volkov/rebase")
8996 (synopsis "Progressive alternative to the base package
8997for Haskell")
8998 (description "This Haskell package is intended for those who are
8999tired of keeping long lists of dependencies to the same essential libraries
9000in each package as well as the endless imports of the same APIs all over again.
9001
9002It also supports the modern tendencies in the language.
9003
9004To solve those problems this package does the following:
9005
9006@itemize
9007@item Reexport the original APIs under the @code{Rebase} namespace.
9008
9009@item Export all the possible non-conflicting symbols from the
9010@code{Rebase.Prelude} module.
9011
9012@item Give priority to the modern practices in the conflicting cases.
9013@end itemize
9014
9015The policy behind the package is only to reexport the non-ambiguous and
9016non-controversial APIs, which the community has obviously settled on.
9017The package is intended to rapidly evolve with the contribution from
9018the community, with the missing features being added with pull-requests.")
9019 (license license:expat)))
9020
1896a252 9021(define-public ghc-vector-builder
9022 (package
9023 (name "ghc-vector-builder")
9024 (version "0.3.1")
9025 (source
9026 (origin
9027 (method url-fetch)
9028 (uri (string-append "https://hackage.haskell.org/package/"
9029 "vector-builder-" version "/"
9030 "vector-builder-" version ".tar.gz"))
9031 (sha256
9032 (base32
9033 "1l6sfgd2s107zkp1qd1w6jdjcbznp31769qf99pxar087f697wvp"))))
9034 (build-system haskell-build-system)
9035 (inputs `(("ghc-vector" ,ghc-vector)
9036 ("ghc-semigroups" ,ghc-semigroups)
9037 ("ghc-base-prelude" ,ghc-base-prelude)))
9038 (native-inputs `(("ghc-tasty" ,ghc-tasty)
9039 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
9040 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
9041 ("ghc-hunit" ,ghc-hunit)
9042 ("ghc-quickcheck-instances" ,ghc-quickcheck-instances)
9043 ("ghc-rebase" ,ghc-rebase)))
9044 (home-page "https://github.com/nikita-volkov/vector-builder")
9045 (synopsis "Vector builder for Haskell")
9046 (description "This Haskell package provides an API for constructing vectors.
9047It provides the composable @code{Builder} abstraction, which has instances of the
9048@code{Monoid} and @code{Semigroup} classes.
9049
9050You would first use the @code{Builder} abstraction to specify the structure of
9051the vector; then you can execute the builder to actually produce the
9052vector. ")
9053 (license license:expat)))
9054
f6094850 9055(define-public ghc-foldl
9056 (package
9057 (name "ghc-foldl")
93e8c799 9058 (version "1.3.5")
f6094850 9059 (source
9060 (origin
9061 (method url-fetch)
9062 (uri (string-append "https://hackage.haskell.org/package/"
9063 "foldl-" version "/"
9064 "foldl-" version ".tar.gz"))
9065 (sha256
9066 (base32
93e8c799 9067 "10qsp7dj2xsq4q2xm6x6b12y5pq32qf7my41hnkmdwwbccvhdxb2"))))
f6094850 9068 (build-system haskell-build-system)
9069 (inputs `(("ghc-mwc-randam" ,ghc-mwc-random)
9070 ("ghc-primitive" ,ghc-primitive)
9071 ("ghc-text" ,ghc-text)
9072 ("ghc-vector" ,ghc-vector)
9073 ("ghc-unordered-containers" ,ghc-unordered-containers)
9074 ("ghc-hashable" ,ghc-hashable)
9075 ("ghc-contravariant" ,ghc-contravariant)
9076 ("ghc-profunctors" ,ghc-profunctors)
9077 ("ghc-comonad" ,ghc-comonad)
9078 ("ghc-vector-builder" ,ghc-vector-builder)))
9079 (home-page "https://github.com/Gabriel439/Haskell-Foldl-Library")
9080 (synopsis "Composable, streaming, and efficient left folds for Haskell")
9081 (description "This Haskell library provides strict left folds that stream
9082in constant memory, and you can combine folds using @code{Applicative} style
9083to derive new folds. Derived folds still traverse the container just once
9084and are often as efficient as hand-written folds.")
9085 (license license:bsd-3)))
9086
ed4cc0c5 9087(define-public ghc-mono-traversable
9088 (package
9089 (name "ghc-mono-traversable")
74b30be0 9090 (version "1.0.9.0")
ed4cc0c5 9091 (source
9092 (origin
9093 (method url-fetch)
9094 (uri (string-append "https://hackage.haskell.org/package/"
9095 "mono-traversable-" version "/"
9096 "mono-traversable-" version ".tar.gz"))
9097 (sha256
9098 (base32
74b30be0 9099 "0180ks0dyvpk1r20w5jw2w2n79mjnk69n9vhspaxzlyxqgim5psa"))))
ed4cc0c5 9100 (build-system haskell-build-system)
9101 (inputs `(("ghc-unordered-containers" ,ghc-unordered-containers)
9102 ("ghc-hashable" ,ghc-hashable)
9103 ("ghc-text" ,ghc-text)
9104 ("ghc-vector" ,ghc-vector)
9105 ("ghc-vector-algorithms" ,ghc-vector-algorithms)
9106 ("ghc-split" ,ghc-split)))
9107 (native-inputs `(("ghc-hspec" ,ghc-hspec)
c695fb76 9108 ("ghc-hunit" ,ghc-hunit)
ed4cc0c5 9109 ("ghc-quickcheck" ,ghc-quickcheck)
9110 ("ghc-semigroups" ,ghc-semigroups)
9111 ("ghc-foldl" ,ghc-foldl)))
9112 (home-page "https://github.com/snoyberg/mono-traversable")
9113 (synopsis "Haskell classes for mapping, folding, and traversing monomorphic
9114containers")
9115 (description "This Haskell package provides Monomorphic variants of the
9116Functor, Foldable, and Traversable typeclasses. If you understand Haskell's
9117basic typeclasses, you understand mono-traversable. In addition to what
9118you are used to, it adds on an IsSequence typeclass and has code for marking
9119data structures as non-empty.")
9120 (license license:expat)))
9121
95fb25bf 9122(define-public ghc-conduit-combinators
9123 (package
9124 (name "ghc-conduit-combinators")
37d79707 9125 (version "1.3.0")
95fb25bf 9126 (source
9127 (origin
9128 (method url-fetch)
9129 (uri (string-append "https://hackage.haskell.org/package/"
9130 "conduit-combinators-" version "/"
9131 "conduit-combinators-" version ".tar.gz"))
9132 (sha256
9133 (base32
37d79707 9134 "1lz70vwp4y4lpsivxl0cshq7aq3968rh48r6rjvpyaj2l0bdj5wp"))))
95fb25bf 9135 (build-system haskell-build-system)
9136 (inputs `(("ghc-conduit" ,ghc-conduit)
9137 ("ghc-conduit-extra" ,ghc-conduit-extra)
9138 ("ghc-transformers-base" ,ghc-transformers-base)
9139 ("ghc-primitive" ,ghc-primitive)
9140 ("ghc-vector" ,ghc-vector)
9141 ("ghc-text" ,ghc-text)
9142 ("ghc-void" ,ghc-void)
9143 ("ghc-mwc-random" ,ghc-mwc-random)
9144 ("ghc-unix-compat" ,ghc-unix-compat)
9145 ("ghc-base16-bytestring" ,ghc-base16-bytestring)
9146 ("ghc-base64-bytestring" ,ghc-base64-bytestring)
9147 ("ghc-resourcet" ,ghc-resourcet)
9148 ("ghc-monad-control" ,ghc-monad-control)
9149 ("ghc-chunked-data" ,ghc-chunked-data)
9150 ("ghc-mono-traversable" ,ghc-mono-traversable)))
9151 (native-inputs `(("ghc-hspec" ,ghc-hspec)
9152 ("ghc-silently" ,ghc-silently)
95fb25bf 9153 ("ghc-safe" ,ghc-safe)
9154 ("ghc-quickcheck" ,ghc-quickcheck)))
9155 (home-page "https://github.com/snoyberg/mono-traversable")
9156 (synopsis "Commonly used conduit functions, for both chunked and
9157unchunked data")
9158 (description "This Haskell package provides a replacement for Data.Conduit.List,
9159as well as a convenient Conduit module.")
9160 (license license:expat)))
9161
3a784700 9162(define-public ghc-aws
9163 (package
9164 (name "ghc-aws")
0faddfc3 9165 (version "0.18")
3a784700 9166 (source
9167 (origin
9168 (method url-fetch)
9169 (uri (string-append "https://hackage.haskell.org/package/"
9170 "aws-" version "/aws-" version ".tar.gz"))
9171 (sha256 (base32
0faddfc3 9172 "0h7473wkvc5xjzx5fd5k5fp70rjq5gqmn1cpy95mswvvfsq3irxj"))))
3a784700 9173 (build-system haskell-build-system)
9174 (arguments `(#:tests? #f)) ; Tests require AWS credentials.
9175 (inputs
9176 `(("ghc-aeson" ,ghc-aeson)
9177 ("ghc-attoparsec" ,ghc-attoparsec)
9178 ("ghc-base16-bytestring" ,ghc-base16-bytestring)
9179 ("ghc-base64-bytestring" ,ghc-base64-bytestring)
9180 ("ghc-blaze-builder" ,ghc-blaze-builder)
9181 ("ghc-byteable" ,ghc-byteable)
9182 ("ghc-case-insensitive" ,ghc-case-insensitive)
9183 ("ghc-cereal" ,ghc-cereal)
9184 ("ghc-conduit" ,ghc-conduit)
9185 ("ghc-conduit-extra" ,ghc-conduit-extra)
0faddfc3 9186 ("ghc-cryptonite" ,ghc-cryptonite)
3a784700 9187 ("ghc-data-default" ,ghc-data-default)
9188 ("ghc-http-conduit" ,ghc-http-conduit)
9189 ("ghc-http-types" ,ghc-http-types)
9190 ("ghc-monad-control" ,ghc-monad-control)
3a784700 9191 ("ghc-network" ,ghc-network)
9192 ("ghc-old-locale" ,ghc-old-locale)
9193 ("ghc-safe" ,ghc-safe)
9194 ("ghc-scientific" ,ghc-scientific)
9195 ("ghc-tagged" ,ghc-tagged)
9196 ("ghc-text" ,ghc-text)
9197 ("ghc-unordered-containers" ,ghc-unordered-containers)
9198 ("ghc-utf8-string" ,ghc-utf8-string)
9199 ("ghc-vector" ,ghc-vector)
9200 ("ghc-xml-conduit" ,ghc-xml-conduit)))
9201 (native-inputs
9202 `(("ghc-quickcheck" ,ghc-quickcheck)
9203 ("ghc-errors" ,ghc-errors)
9204 ("ghc-http-client" ,ghc-http-client)
9205 ("ghc-http-client-tls" ,ghc-http-client-tls)
9206 ("ghc-quickcheck-instances" ,ghc-quickcheck-instances)
9207 ("ghc-tasty" ,ghc-tasty)
9208 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
9209 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
9210 ("ghc-conduit-combinators" ,ghc-conduit-combinators)))
9211 (home-page "https://github.com/aristidb/aws")
9212 (synopsis "Amazon Web Services for Haskell")
9213 (description "This package attempts to provide support for using
9214Amazon Web Services like S3 (storage), SQS (queuing) and others to
9215Haskell programmers. The ultimate goal is to support all Amazon
9216Web Services.")
9217 (license license:bsd-3)))
9218
da5fe92a
RW
9219(define-public ghc-basement
9220 (package
9221 (name "ghc-basement")
6bacde7c 9222 (version "0.0.8")
da5fe92a
RW
9223 (source
9224 (origin
9225 (method url-fetch)
9226 (uri (string-append "https://hackage.haskell.org/package/"
9227 "basement/basement-" version ".tar.gz"))
9228 (sha256
9229 (base32
6bacde7c 9230 "194jw567di4q2758943q9rrwkbf9gl261my7qc21i9xhyabipx67"))))
da5fe92a
RW
9231 (build-system haskell-build-system)
9232 (home-page "https://github.com/haskell-foundation/foundation")
9233 (synopsis "Basic primitives for Foundation starter pack")
9234 (description
9235 "This package contains basic primitives for the Foundation set of
9236packages.")
9237 (license license:bsd-3)))
9238
635cc8fe
RW
9239(define-public ghc-foundation
9240 (package
9241 (name "ghc-foundation")
95415545 9242 (version "0.0.21")
635cc8fe
RW
9243 (source
9244 (origin
9245 (method url-fetch)
9246 (uri (string-append "https://hackage.haskell.org/package/"
9247 "foundation/foundation-" version ".tar.gz"))
9248 (sha256
9249 (base32
95415545 9250 "1q43y8wfj0wf9gdq2kzphwjwq6m5pvryy1lqgk954aq5z3ks1lsf"))))
635cc8fe 9251 (build-system haskell-build-system)
95415545
TS
9252 (arguments
9253 `(#:phases
9254 (modify-phases %standard-phases
9255 (add-after 'unpack 'add-setup-script
9256 (lambda _
9257 ;; The usual "Setup.hs" script is missing from the source.
9258 (with-output-to-file "Setup.hs"
9259 (lambda ()
9260 (format #t "import Distribution.Simple~%")
9261 (format #t "main = defaultMain~%"))))))))
635cc8fe
RW
9262 (inputs `(("ghc-basement" ,ghc-basement)))
9263 (home-page "https://github.com/haskell-foundation/foundation")
9264 (synopsis "Alternative prelude with batteries and no dependencies")
9265 (description
9266 "This package provides a custom prelude with no dependencies apart from
9267the base package.
9268
9269Foundation has the following goals:
9270
9271@enumerate
9272@item provide a base like sets of modules that provide a consistent set of
9273 features and bugfixes across multiple versions of GHC (unlike base).
9274@item provide a better and more efficient prelude than base's prelude.
9275@item be self-sufficient: no external dependencies apart from base;
9276@item provide better data-types: packed unicode string by default, arrays;
9277@item Numerical classes that better represent mathematical things (no more
9278 all-in-one @code{Num});
9279@item I/O system with less lazy IO.
9280@end enumerate\n")
9281 (license license:bsd-3)))
9282
bb87be09 9283(define-public ghc-stm-chans
9284 (package
9285 (name "ghc-stm-chans")
9286 (version "3.0.0.4")
9287 (source
9288 (origin
9289 (method url-fetch)
9290 (uri (string-append "https://hackage.haskell.org/package/"
9291 "stm-chans-" version "/"
9292 "stm-chans-" version ".tar.gz"))
9293 (sha256
9294 (base32
9295 "0f27sp09yha43xk9q55sc185jyjs5h7gq2dhsyx6bm9kz9dzqi13"))))
9296 (build-system haskell-build-system)
9297 (inputs `(("ghc-stm" ,ghc-stm)))
9298 (home-page "https://hackage.haskell.org/package/stm-chans")
9299 (synopsis "Additional types of channels for ghc-stm")
9300 (description "This Haskell package offers a collection of channel types,
9301similar to @code{Control.Concurrent.STM.@{TChan,TQueue@}} but with additional
9302features.")
9303 (license license:bsd-3)))
9304
fddb41f2 9305(define-public ghc-monad-loops
9306 (package
9307 (name "ghc-monad-loops")
9308 (version "0.4.3")
9309 (source
9310 (origin
9311 (method url-fetch)
9312 (uri (string-append "https://hackage.haskell.org/package/"
9313 "monad-loops-" version "/"
9314 "monad-loops-" version ".tar.gz"))
9315 (sha256
9316 (base32
9317 "062c2sn3hc8h50p1mhqkpyv6x8dydz2zh3ridvlfjq9nqimszaky"))))
9318 (build-system haskell-build-system)
9319 (native-inputs `(("ghc-tasty" ,ghc-tasty)
9320 ("ghc-tasty-hunit" ,ghc-tasty-hunit)))
9321 (home-page "https://github.com/mokus0/monad-loops")
9322 (synopsis "Monadic loops for Haskell")
9323 (description "This Haskell package provides some useful control
9324operators for looping.")
9325 (license license:public-domain)))
9326
fe9b5eff 9327(define-public ghc-monad-logger
9328 (package
9329 (name "ghc-monad-logger")
9330 (version "0.3.25.1")
9331 (source
9332 (origin
9333 (method url-fetch)
9334 (uri (string-append "https://hackage.haskell.org/package/"
9335 "monad-logger-" version "/"
9336 "monad-logger-" version ".tar.gz"))
9337 (sha256
9338 (base32
9339 "0yv4fsi566zrn30j2g5l901lyqgmflhvzy4hji7ikcbh5d45m920"))))
9340 (build-system haskell-build-system)
9341 (inputs `(("ghc-transformers-compat" ,ghc-transformers-compat)
9342 ("ghc-text" ,ghc-text)
9343 ("ghc-stm" ,ghc-stm)
9344 ("ghc-stm-chans" ,ghc-stm-chans)
9345 ("ghc-lifted-base" ,ghc-lifted-base)
9346 ("ghc-resourcet" ,ghc-resourcet)
9347 ("ghc-conduit" ,ghc-conduit)
9348 ("ghc-conduit-extra" ,ghc-conduit-extra)
9349 ("ghc-fast-logger" ,ghc-fast-logger)
9350 ("ghc-transformers-base" ,ghc-transformers-base)
9351 ("ghc-monad-control" ,ghc-monad-control)
9352 ("ghc-monad-loops" ,ghc-monad-loops)
fe9b5eff 9353 ("ghc-blaze-builder" ,ghc-blaze-builder)
9354 ("ghc-exceptions" ,ghc-exceptions)))
9355 (home-page "https://github.com/kazu-yamamoto/logger")
9356 (synopsis "Provides a class of monads which can log messages for Haskell")
9357 (description "This Haskell package uses a monad transformer approach
9358for logging.
9359
9360This package provides Template Haskell functions for determining source
9361code locations of messages.")
9362 (license license:expat)))
9363
b2b4575d 9364(define-public ghc-shakespeare
9365 (package
9366 (name "ghc-shakespeare")
9367 (version "2.0.14")
9368 (source
9369 (origin
9370 (method url-fetch)
9371 (uri (string-append "https://hackage.haskell.org/package/"
9372 "shakespeare-" version "/"
9373 "shakespeare-" version ".tar.gz"))
9374 (sha256
9375 (base32
9376 "0j5zx8ka7d7scvb9shm7k3376qzl3k4kpim9aqqfs6n86901zpl4"))))
9377 (build-system haskell-build-system)
9378 (inputs `(("ghc-parsec" ,ghc-parsec)
9379 ("ghc-text" ,ghc-text)
9380 ("ghc-aeson" ,ghc-aeson)
9381 ("ghc-blaze-markup" ,ghc-blaze-markup)
9382 ("ghc-blaze-html" ,ghc-blaze-html)
9383 ("ghc-exceptions" ,ghc-exceptions)
9384 ("ghc-vector" ,ghc-vector)
9385 ("ghc-unordered-containers" ,ghc-unordered-containers)
9386 ("ghc-scientific" ,ghc-scientific)))
9387 (native-inputs `(("ghc-hspec" ,ghc-hspec)
9388 ("ghc-hunit" ,ghc-hunit)
9389 ("hspec-discover" ,hspec-discover)))
9390 (home-page "https://www.yesodweb.com/book/shakespearean-templates")
9391 (synopsis "Family of type-safe template languages for Haskell")
9392 (description "This Haskell package provides a family of type-safe
9393templates with simple variable interpolation. Shakespeare templates can
9394be used inline with a quasi-quoter or in an external file and it
9395interpolates variables according to the type being inserted.")
9396 (license license:expat)))
9397
54f3536d 9398(define-public ghc-securemem
9399 (package
9400 (name "ghc-securemem")
9401 (version "0.1.9")
9402 (source
9403 (origin
9404 (method url-fetch)
9405 (uri (string-append "https://hackage.haskell.org/package/"
9406 "securemem-" version "/"
9407 "securemem-" version ".tar.gz"))
9408 (sha256
9409 (base32
9410 "0dkhhjxa7njc3qbgvd5a23rkvr39vj2kn2a9nk6yjg7a8b2hvdpy"))))
9411 (build-system haskell-build-system)
9412 (inputs `(("ghc-byteable" ,ghc-byteable)
9413 ("ghc-memory" ,ghc-memory)))
9414 (home-page "https://github.com/vincenthz/hs-securemem")
9415 (synopsis "Auto-scrubbing and const-time-eq memory chunk abstraction for
9416Haskell")
9417 (description "SecureMem is similar to ByteString, except that it provides
9418a memory chunk that will be auto-scrubbed after it run out of scope.")
9419 (license license:bsd-3)))
9420
d96a1bfe 9421(define-public ghc-resource-pool
9422 (package
9423 (name "ghc-resource-pool")
9424 (version "0.2.3.2")
9425 (source
9426 (origin
9427 (method url-fetch)
9428 (uri (string-append "https://hackage.haskell.org/package/"
9429 "resource-pool-" version "/"
9430 "resource-pool-" version ".tar.gz"))
9431 (sha256
9432 (base32
9433 "04mw8b9djb14zp4rdi6h7mc3zizh597ffiinfbr4m0m8psifw9w6"))))
9434 (build-system haskell-build-system)
9435 (inputs `(("ghc-hashable" ,ghc-hashable)
9436 ("ghc-monad-control" ,ghc-monad-control)
9437 ("ghc-transformers-base" ,ghc-transformers-base)
9438 ("ghc-stm" ,ghc-stm)
9439 ("ghc-vector" ,ghc-vector)))
9440 (home-page "https://github.com/bos/pool")
9441 (synopsis "Striped resource pooling implementation in Haskell")
9442 (description "This Haskell package provides striped pooling abstraction
9443for managing flexibly-sized collections of resources such as database
9444connections.")
9445 (license license:bsd-3)))
9446
ac7cdb40 9447(define-public ghc-attoparsec-iso8601
9448 (package
9449 (name "ghc-attoparsec-iso8601")
9450 (version "1.0.0.0")
9451 (source
9452 (origin
9453 (method url-fetch)
9454 (uri (string-append "https://hackage.haskell.org/package/"
9455 "attoparsec-iso8601-" version "/"
9456 "attoparsec-iso8601-" version ".tar.gz"))
9457 (sha256
9458 (base32
9459 "12l55b76bhya9q89mfmqmy6sl5v39b6gzrw5rf3f70vkb23nsv5a"))))
9460 (build-system haskell-build-system)
9461 (inputs `(("ghc-attoparsec" ,ghc-attoparsec)
9462 ("ghc-base-compat" ,ghc-base-compat)
9463 ("ghc-text" ,ghc-text)))
9464 (home-page "https://github.com/bos/aeson")
9465 (synopsis "Parse ISO 8601 dates")
9466 (description "Haskell library for parsing of ISO 8601 dates, originally
9467from aeson.")
9468 (license license:bsd-3)))
9469
e99bd15c 9470(define-public ghc-generics-sop
9471 (package
9472 (name "ghc-generics-sop")
acf13271 9473 (version "0.3.2.0")
e99bd15c 9474 (source
9475 (origin
9476 (method url-fetch)
9477 (uri (string-append "https://hackage.haskell.org/package/"
9478 "generics-sop-" version "/"
9479 "generics-sop-" version ".tar.gz"))
9480 (sha256
9481 (base32
acf13271 9482 "168v62i845jh9jbfaz3ldz8svz4wmzq9mf2vhb7pxlnbkk8fqq1h"))))
e99bd15c 9483 (build-system haskell-build-system)
9484 (inputs `(("ghc-transformers-compat" ,ghc-transformers-compat)))
9485 (home-page "https://github.com/well-typed/generics-sop")
9486 (synopsis "Generic Programming using True Sums of Products for Haskell")
9487 (description "This Haskell package supports the definition of generic
9488functions. Datatypes are viewed in a uniform, structured way: the choice
9489between constructors is represented using an n-ary sum, and the arguments of
9490each constructor are represented using an n-ary product.")
9491 (license license:bsd-3)))
9492
8ecefe72 9493(define-public ghc-uri-bytestring
9494 (package
9495 (name "ghc-uri-bytestring")
9496 (version "0.3.1.0")
9497 (source
9498 (origin
9499 (method url-fetch)
9500 (uri (string-append "https://hackage.haskell.org/package/"
9501 "uri-bytestring-" version "/"
9502 "uri-bytestring-" version ".tar.gz"))
9503 (sha256
9504 (base32
9505 "04qjv1sgyrdg538290p9hqnvyxnahvr5cjwl8vm1rn9j0fv3ymq9"))))
9506 (build-system haskell-build-system)
9507 (inputs `(("ghc-attoparsec" ,ghc-attoparsec)
9508 ("ghc-fail" ,ghc-fail)
9509 ("ghc-blaze-builder" ,ghc-blaze-builder)
9510 ("ghc-th-lift-instances" ,ghc-th-lift-instances)))
9511 (native-inputs `(("ghc-attoparsec" ,ghc-attoparsec)
9512 ("ghc-hunit" ,ghc-hunit)
9513 ("ghc-quickcheck" ,ghc-quickcheck)
9514 ("ghc-tasty" ,ghc-tasty)
9515 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
9516 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
9517 ("ghc-base-compat" ,ghc-base-compat)
9518 ("ghc-quickcheck-instances" ,ghc-quickcheck-instances)
9519 ("ghc-semigroups" ,ghc-semigroups)
9520 ("ghc-generics-sop" ,ghc-generics-sop)))
9521 (home-page "https://github.com/Soostone/uri-bytestring")
9522 (synopsis "Haskell URI parsing as ByteStrings")
9523 (description "This Haskell package aims to be an RFC3986 compliant URI
9524parser that uses ByteStrings for parsing and representing the URI data.")
9525 (license license:bsd-3)))
9526
b6d8ea42 9527(define-public ghc-http-api-data
9528 (package
9529 (name "ghc-http-api-data")
9530 (version "0.3.7.1")
9531 (source
9532 (origin
9533 (method url-fetch)
9534 (uri (string-append "https://hackage.haskell.org/package/"
9535 "http-api-data-" version "/"
9536 "http-api-data-" version ".tar.gz"))
9537 (sha256
9538 (base32
9539 "1zbmf0kkfsw7pfznisi205gh7jd284gfarxsyiavd2iw26akwqwc"))))
9540 (build-system haskell-build-system)
9541 (arguments `(#:tests? #f)) ; FIXME: Tests require QuickCheck >= 2.9
9542 (inputs `(("ghc-attoparsec" ,ghc-attoparsec)
9543 ("ghc-attoparsec-iso8601" ,ghc-attoparsec-iso8601)
9544 ("ghc-hashable" ,ghc-hashable)
9545 ("ghc-http-types" ,ghc-http-types)
9546 ("ghc-text" ,ghc-text)
9547 ("ghc-time-locale-compat" ,ghc-time-locale-compat)
9548 ("ghc-unordered-containers" ,ghc-unordered-containers)
9549 ("ghc-uri-bytestring" ,ghc-uri-bytestring)
9550 ("ghc-uuid-types" ,ghc-uuid-types)))
9551 (home-page "https://github.com/fizruk/http-api-data")
9552 (synopsis "Convert to/from HTTP API data like URL pieces, headers and
9553query parameters")
9554 (description "This Haskell package defines typeclasses used for converting
9555Haskell data types to and from HTTP API data.")
9556 (license license:bsd-3)))
9557
104e179d 9558(define-public ghc-persistent
9559 (package
9560 (name "ghc-persistent")
9561 (version "2.7.3.1")
9562 (source
9563 (origin
9564 (method url-fetch)
9565 (uri (string-append "https://hackage.haskell.org/package/"
9566 "persistent-" version "/"
9567 "persistent-" version ".tar.gz"))
9568 (sha256
9569 (base32
9570 "1jbvavdvr9qz5ld7vf6l1jgiadhmxx6zc4vqsdk9ivfq6d5wlg1p"))))
9571 (build-system haskell-build-system)
9572 (inputs `(("ghc-old-locale" ,ghc-old-locale)
9573 ("ghc-text" ,ghc-text)
9574 ("ghc-conduit" ,ghc-conduit)
9575 ("ghc-resourcet" ,ghc-resourcet)
9576 ("ghc-exceptions" ,ghc-exceptions)
9577 ("ghc-monad-control" ,ghc-monad-control)
9578 ("ghc-lifted-base" ,ghc-lifted-base)
9579 ("ghc-resource-pool" ,ghc-resource-pool)
9580 ("ghc-path-pieces" ,ghc-path-pieces)
9581 ("ghc-http-api-data" ,ghc-http-api-data)
9582 ("ghc-aeson" ,ghc-aeson)
9583 ("ghc-monad-logger" ,ghc-monad-logger)
9584 ("ghc-transformers-base" ,ghc-transformers-base)
9585 ("ghc-base64-bytestring" ,ghc-base64-bytestring)
9586 ("ghc-unordered-containers" ,ghc-unordered-containers)
9587 ("ghc-vector" ,ghc-vector)
9588 ("ghc-attoparsec" ,ghc-attoparsec)
9589 ("ghc-haskell-src-meta" ,ghc-haskell-src-meta)
9590 ("ghc-blaze-html" ,ghc-blaze-html)
9591 ("ghc-blaze-markup" ,ghc-blaze-markup)
9592 ("ghc-silently" ,ghc-silently)
104e179d 9593 ("ghc-fast-logger" ,ghc-fast-logger)
9594 ("ghc-scientific" ,ghc-scientific)
9595 ("ghc-tagged" ,ghc-tagged)))
9596 (native-inputs `(("ghc-hspec" ,ghc-hspec)))
9597 (home-page "https://www.yesodweb.com/book/persistent")
9598 (synopsis "Type-safe, multi-backend data serialization for Haskell")
9599 (description "This Haskell package allows Haskell programs to access data
9600storage sytems like PostgreSQL, SQLite, MySQL and MongoDB in a type-safe
9601way.")
9602 (license license:expat)))
9603
0f163f65 9604(define-public ghc-aeson-compat
9605 (package
9606 (name "ghc-aeson-compat")
9607 (version "0.3.7.1")
9608 (source
9609 (origin
9610 (method url-fetch)
9611 (uri (string-append "https://hackage.haskell.org/package/"
9612 "aeson-compat-" version "/"
9613 "aeson-compat-" version ".tar.gz"))
9614 (sha256
9615 (base32
9616 "1jya3lm9imclhb8qqihv39hhb62vvs3qpws7pc5fc23vwg0hsx2r"))))
9617 (build-system haskell-build-system)
9618 (arguments `(#:tests? #f)) ; FIXME: Tests require QuickCheck >= 2.10
9619 (inputs `(("ghc-base-compat" ,ghc-base-compat)
9620 ("ghc-aeson" ,ghc-aeson)
9621 ("ghc-attoparsec" ,ghc-attoparsec)
9622 ("ghc-attoparsec" ,ghc-attoparsec-iso8601)
9623 ("ghc-exceptions" ,ghc-exceptions)
9624 ("ghc-hashable" ,ghc-hashable)
9625 ("ghc-scientific" ,ghc-scientific)
9626 ("ghc-text" ,ghc-text)
9627 ("ghc-time-locale-compat" ,ghc-time-locale-compat)
9628 ("ghc-unordered-containers" ,ghc-unordered-containers)
9629 ("ghc-vector" ,ghc-vector)
9630 ("ghc-tagged" ,ghc-tagged)
9631 ("ghc-semigroups" ,ghc-semigroups)
9632 ("ghc-nats" ,ghc-nats)))
9633 (home-page "https://github.com/phadej/aeson-compat")
9634 (synopsis "Compatibility layer for ghc-aeson")
9635 (description "This Haskell package provides compatibility layer for
9636ghc-aeson.")
9637 (license license:bsd-3)))
9638
8434594d 9639(define-public ghc-persistent-template
9640 (package
9641 (name "ghc-persistent-template")
9642 (version "2.5.3.1")
9643 (source
9644 (origin
9645 (method url-fetch)
9646 (uri (string-append "https://hackage.haskell.org/package/"
9647 "persistent-template-" version "/"
9648 "persistent-template-" version ".tar.gz"))
9649 (sha256
9650 (base32
9651 "0449piw3n02q7dag7k1pakfmzmf3ms4wk1qmnagczpm1ckajinwd"))))
9652 (build-system haskell-build-system)
9653 (inputs `(("ghc-persistent" ,ghc-persistent)
9654 ("ghc-monad-control" ,ghc-monad-control)
9655 ("ghc-text" ,ghc-text)
9656 ("ghc-aeson" ,ghc-aeson)
9657 ("ghc-aeson-compat" ,ghc-aeson-compat)
9658 ("ghc-monad-logger" ,ghc-monad-logger)
9659 ("ghc-unordered-containers" ,ghc-unordered-containers)
9660 ("ghc-tagged" ,ghc-tagged)
9661 ("ghc-path-pieces" ,ghc-path-pieces)
9662 ("ghc-http-api-data" ,ghc-http-api-data)))
9663 (native-inputs `(("ghc-hspec" ,ghc-hspec)
9664 ("ghc-quickcheck" ,ghc-quickcheck)))
9665 (home-page "https://www.yesodweb.com/book/persistent")
9666 (synopsis "Type-safe, non-relational, multi-backend persistence")
9667 (description "This Haskell package provides interfaces and helper
9668functions for the ghc-persistent package.")
9669 (license license:expat)))
9670
d5c34f9b 9671(define-public ghc-unliftio-core
9672 (package
9673 (name "ghc-unliftio-core")
9674 (version "0.1.1.0")
9675 (source
9676 (origin
9677 (method url-fetch)
9678 (uri (string-append "https://hackage.haskell.org/package/"
9679 "unliftio-core-" version "/"
9680 "unliftio-core-" version ".tar.gz"))
9681 (sha256
9682 (base32
9683 "1193fplsjm1lcr05xwvkj1rsyzx74i755f6kw3ikmxbsv0bv0l3m"))))
9684 (build-system haskell-build-system)
f871a555
TS
9685 (arguments
9686 `(#:cabal-revision
9687 ("1" "16bjwcsaghqqmyi69rq65dn3ydifyfaabq3ns37apdm00mwqbcj2")))
d5c34f9b 9688 (home-page
9689 "https://github.com/fpco/unliftio/tree/master/unliftio-core#readme")
9690 (synopsis "The MonadUnliftIO typeclass for unlifting monads to IO")
9691 (description "This Haskell package provides the core @code{MonadUnliftIO}
9692typeclass, instances for base and transformers, and basic utility
9693functions.")
9694 (license license:expat)))
9695
1c225fab 9696(define-public ghc-microlens
9697 (package
9698 (name "ghc-microlens")
f06b5f23 9699 (version "0.4.9.1")
1c225fab 9700 (source
9701 (origin
9702 (method url-fetch)
9703 (uri (string-append "https://hackage.haskell.org/package/"
9704 "microlens-" version "/"
9705 "microlens-" version ".tar.gz"))
9706 (sha256
9707 (base32
f06b5f23 9708 "0j2nzf0vpx2anvsrg2w0vy2z4jn3kkcs2n6glkzblhn1j9piqh51"))))
1c225fab 9709 (build-system haskell-build-system)
9710 (home-page
9711 "https://github.com/aelve/microlens")
9712 (synopsis "Provides a tiny lens Haskell library with no dependencies")
9713 (description "This Haskell package provides a lens library, just like
9714@code{ghc-lens}, but smaller. It provides essential lenses and
9715traversals (like @code{_1} and @code{_Just}), as well as ones which are simply
9716nice to have (like @code{each}, @code{at}, and @code{ix}), and some
9717combinators (like @code{failing} and @code{singular}), but everything else is
9718stripped. As the result, this package has no dependencies.")
9719 (license license:bsd-3)))
9720
82e0b0e2 9721(define-public ghc-microlens-th
9722 (package
9723 (name "ghc-microlens-th")
c1812226 9724 (version "0.4.2.2")
82e0b0e2 9725 (source
9726 (origin
9727 (method url-fetch)
9728 (uri (string-append "https://hackage.haskell.org/package/"
9729 "microlens-th-" version "/"
9730 "microlens-th-" version ".tar.gz"))
9731 (sha256
9732 (base32
c1812226 9733 "02nj7lnl61yffi3c6wn341arxhld5r0vj6nzcb5zmqjhnqsv8c05"))))
82e0b0e2 9734 (build-system haskell-build-system)
c1812226
TS
9735 (inputs `(("ghc-microlens" ,ghc-microlens)
9736 ("ghc-th-abstraction" ,ghc-th-abstraction)))
82e0b0e2 9737 (home-page
9738 "https://github.com/aelve/microlens")
9739 (synopsis "Automatic generation of record lenses for
9740@code{ghc-microlens}")
9741 (description "This Haskell package lets you automatically generate lenses
9742for data types; code was extracted from the lens package, and therefore
9743generated lenses are fully compatible with ones generated by lens (and can be
9744used both from lens and microlens).")
9745 (license license:bsd-3)))
9746
e85c58ed 9747(define-public ghc-unliftio
9748 (package
9749 (name "ghc-unliftio")
9750 (version "0.2.4.0")
9751 (source
9752 (origin
9753 (method url-fetch)
9754 (uri (string-append
9755 "https://hackage.haskell.org/package/unliftio/unliftio-"
9756 version
9757 ".tar.gz"))
9758 (sha256
9759 (base32
9760 "0vpncmwaq5zb6bziqfns4qdgxmq8ky0rlxna2yngxp170s5zxx9z"))))
9761 (build-system haskell-build-system)
9762 (arguments `(#:tests? #f)) ; FIXME: hspec-discover not in PATH
9763 (inputs
9764 `(("ghc-async" ,ghc-async)
9765 ("ghc-stm" ,ghc-stm)
9766 ("ghc-unliftio-core" ,ghc-unliftio-core)))
9767 (native-inputs `(("ghc-hspec" ,ghc-hspec)))
9768 (home-page "https://github.com/fpco/unliftio")
9769 (synopsis "Provides MonadUnliftIO typecplass for unlifting monads to
9770IO (batteries included)")
9771 (description "This Haskell package provides the core @code{MonadUnliftIO}
9772typeclass, a number of common instances, and a collection of common functions
9773working with it.")
9774 (license license:expat)))
9775
e01a8fcc 9776(define-public ghc-persistent-sqlite
9777 (package
9778 (name "ghc-persistent-sqlite")
9779 (version "2.6.4")
9780 (source
9781 (origin
9782 (method url-fetch)
9783 (uri (string-append "https://hackage.haskell.org/package/"
9784 "persistent-sqlite-" version "/"
9785 "persistent-sqlite-" version ".tar.gz"))
9786 (sha256
9787 (base32
9788 "16mc2ra0hbyyc8ckjlxxc11bpskdymbr8c3g6ih6wzik639xprbm"))))
9789 (build-system haskell-build-system)
9790 (inputs `(("ghc-persistent" ,ghc-persistent)
9791 ("ghc-unliftio-core" ,ghc-unliftio-core)
9792 ("ghc-aeson" ,ghc-aeson)
9793 ("ghc-conduit" ,ghc-conduit)
9794 ("ghc-monad-logger" ,ghc-monad-logger)
9795 ("ghc-microlens-th" ,ghc-microlens-th)
9796 ("ghc-resourcet" ,ghc-resourcet)
9797 ("ghc-old-locale" ,ghc-old-locale)
9798 ("ghc-resource-pool" ,ghc-resource-pool)
9799 ("ghc-unordered-containers" ,ghc-unordered-containers)))
9800 (native-inputs `(("ghc-hspec" ,ghc-hspec)
9801 ("ghc-persistent-template" ,ghc-persistent-template)
9802 ("ghc-temporary" ,ghc-temporary)
9803 ("ghc-text" ,ghc-text)))
9804 (home-page
9805 "https://www.yesodweb.com/book/persistent")
9806 (synopsis "Backend for the persistent library using sqlite3")
9807 (description "This Haskell package includes a thin sqlite3 wrapper based
9808on the direct-sqlite package, as well as the entire C library, so there are no
9809system dependencies.")
9810 (license license:expat)))
9811
b50e1c89 9812(define-public ghc-email-validate
9813 (package
9814 (name "ghc-email-validate")
9815 (version "2.3.2.1")
9816 (source
9817 (origin
9818 (method url-fetch)
9819 (uri (string-append
9820 "https://hackage.haskell.org/package/"
9821 "email-validate/email-validate-"
9822 version
9823 ".tar.gz"))
9824 (sha256
9825 (base32
9826 "0qvxysiap3r4mi3xff5nsk9qv6diqxfgwj186bypbamzvzlz0lav"))))
9827 (build-system haskell-build-system)
9828 (inputs
9829 `(("ghc-attoparsec" ,ghc-attoparsec)
9830 ("ghc-hspec" ,ghc-hspec)
9831 ("ghc-quickcheck" ,ghc-quickcheck)
9832 ("ghc-doctest" ,ghc-doctest)))
9833 (home-page
9834 "https://github.com/Porges/email-validate-hs")
9835 (synopsis "Email address validator for Haskell")
9836 (description
9837 "This Haskell package provides a validator that can validate an email
9838address string against RFC 5322.")
9839 (license license:bsd-3)))
9840
6c4ae173 9841(define-public ghc-semigroupoids-5.2.2
e5d92c1c 9842 (package
6c4ae173
T
9843 (inherit ghc-semigroupoids)
9844 (name "ghc-semigroupoids")
9845 (version "5.2.2")
9846 (source (origin
9847 (method url-fetch)
9848 (uri (string-append "https://hackage.haskell.org/package/"
9849 "semigroupoids-" version "/semigroupoids-"
9850 version ".tar.gz"))
9851 (sha256
9852 (base32
9853 "17i96y4iqj8clcs090lf6k0ij3j16nj14vsfwz0mm9nd6i4gbpp4"))))
9854 (inputs `(("ghc-unordered-containers" ,ghc-unordered-containers)
9855 ,@(package-inputs ghc-semigroupoids)))))
e5d92c1c 9856
dea5c0b8 9857(define-public ghc-bytes
7d4e377f 9858 (package
dea5c0b8
T
9859 (name "ghc-bytes")
9860 (version "0.15.4")
7d4e377f
T
9861 (source
9862 (origin
9863 (method url-fetch)
9864 (uri
dea5c0b8
T
9865 (string-append "https://hackage.haskell.org/package/bytes-"
9866 version "/bytes-"
7d4e377f
T
9867 version ".tar.gz"))
9868 (file-name (string-append name "-" version ".tar.gz"))
9869 (sha256
9870 (base32
dea5c0b8 9871 "121x3iqlm8pghw8cd9g30cnqbl7jrdpfjxdanmqdqllajw6xivrm"))))
7d4e377f 9872 (build-system haskell-build-system)
dea5c0b8
T
9873 (inputs `(("ghc-cereal" ,ghc-cereal)
9874 ("cabal-doctest" ,cabal-doctest)
9875 ("ghc-doctest" ,ghc-doctest-0.13)
dea5c0b8
T
9876 ("ghc-scientific" ,ghc-scientific)
9877 ("ghc-text" ,ghc-text)
9878 ("ghc-transformers-compat" ,ghc-transformers-compat)
9879 ("ghc-unordered-containers" ,ghc-unordered-containers)
9880 ("ghc-void" ,ghc-void)
9881 ("ghc-vector" ,ghc-vector)))
9882 (synopsis "Serialization between @code{binary} and @code{cereal}")
9883 (description "This package provides a simple compatibility shim that lets
9884you work with both @code{binary} and @code{cereal} with one chunk of
9885serialization code.")
9886 (home-page "https://hackage.haskell.org/package/bytes")
7d4e377f
T
9887 (license license:bsd-3)))
9888
4e5d9bf2
TS
9889(define-public ghc-disk-free-space
9890 (package
9891 (name "ghc-disk-free-space")
9892 (version "0.1.0.1")
9893 (source
9894 (origin
9895 (method url-fetch)
9896 (uri (string-append "https://hackage.haskell.org/package/"
9897 "disk-free-space/disk-free-space-"
9898 version ".tar.gz"))
9899 (sha256
9900 (base32
9901 "07rqj8k1vh3cykq9yidpjxhgh1f7vgmjs6y1nv5kq2217ff4yypi"))))
9902 (build-system haskell-build-system)
9903 (home-page "https://github.com/redneb/disk-free-space")
9904 (synopsis "Retrieve information about disk space usage")
9905 (description "A cross-platform library for retrieving information about
9906disk space usage.")
9907 (license license:bsd-3)))
9908
66413378
DM
9909(define-public ghc-xdg-basedir
9910 (package
9911 (name "ghc-xdg-basedir")
9912 (version "0.2.2")
9913 (source
9914 (origin
9915 (method url-fetch)
9916 (uri (string-append
9917 "https://hackage.haskell.org/package/xdg-basedir/"
9918 "xdg-basedir-" version ".tar.gz"))
9919 (sha256
9920 (base32
9921 "0azlzaxp2dn4l1nr7shsxah2magk1szf6fx0mv75az00qsjw6qg4"))))
9922 (build-system haskell-build-system)
9923 (home-page "http://github.com/willdonnelly/xdg-basedir")
9924 (synopsis "XDG Base Directory library for Haskell")
9925 (description "This package provides a library implementing the XDG Base Directory spec.")
9926 (license license:bsd-3)))
9927
19395aec
RW
9928(define-public ghc-errorcall-eq-instance
9929 (package
9930 (name "ghc-errorcall-eq-instance")
9931 (version "0.3.0")
9932 (source
9933 (origin
9934 (method url-fetch)
9935 (uri (string-append "https://hackage.haskell.org/package/"
9936 "errorcall-eq-instance/errorcall-eq-instance-"
9937 version ".tar.gz"))
9938 (sha256
9939 (base32
9940 "0hqw82m8bbrxy5vgdwb83bhzdx070ibqrm9rshyja7cb808ahijm"))))
9941 (build-system haskell-build-system)
9942 (inputs
9943 `(("ghc-base-orphans" ,ghc-base-orphans)))
9944 (native-inputs
9945 `(("ghc-quickcheck" ,ghc-quickcheck)
9946 ("ghc-hspec" ,ghc-hspec)
9947 ("hspec-discover" ,hspec-discover)))
9948 (home-page "http://hackage.haskell.org/package/errorcall-eq-instance")
9949 (synopsis "Orphan Eq instance for ErrorCall")
9950 (description
9951 "Prior to @code{base-4.7.0.0} there was no @code{Eq} instance for @code{ErrorCall}.
9952This package provides an orphan instance.")
9953 (license license:expat)))
9954
ea6ffd3c
RW
9955(define-public ghc-missingh
9956 (package
9957 (name "ghc-missingh")
9958 (version "1.4.0.1")
9959 (source
9960 (origin
9961 (method url-fetch)
9962 (uri (string-append "https://hackage.haskell.org/package/MissingH/"
9963 "MissingH-" version ".tar.gz"))
9964 (sha256
9965 (base32
9966 "0wcvgrmav480w7nf4bl14yi0jq2yzanysxwzwas9hpb28vyjlgr8"))))
9967 (build-system haskell-build-system)
9968 ;; Tests require the unmaintained testpack package, which depends on the
9969 ;; outdated QuickCheck version 2.7, which can no longer be built with
9970 ;; recent versions of GHC and Haskell libraries.
9971 (arguments '(#:tests? #f))
9972 (inputs
9973 `(("ghc-network" ,ghc-network)
9974 ("ghc-parsec" ,ghc-parsec)
ea6ffd3c
RW
9975 ("ghc-hunit" ,ghc-hunit)
9976 ("ghc-regex-compat" ,ghc-regex-compat)
9977 ("ghc-hslogger" ,ghc-hslogger)
9978 ("ghc-random" ,ghc-random)
9979 ("ghc-old-time" ,ghc-old-time)
9980 ("ghc-old-locale" ,ghc-old-locale)))
9981 (native-inputs
9982 `(("ghc-errorcall-eq-instance" ,ghc-errorcall-eq-instance)
9983 ("ghc-quickcheck" ,ghc-quickcheck)
9984 ("ghc-hunit" ,ghc-hunit)))
9985 (home-page "http://software.complete.org/missingh")
9986 (synopsis "Large utility library")
9987 (description
9988 "MissingH is a library of all sorts of utility functions for Haskell
9989programmers. It is written in pure Haskell and thus should be extremely
9990portable and easy to use.")
9991 (license license:bsd-3)))
9992
657d220d
RW
9993(define-public ghc-intervalmap
9994 (package
9995 (name "ghc-intervalmap")
9996 (version "0.6.0.0")
9997 (source
9998 (origin
9999 (method url-fetch)
10000 (uri (string-append "https://hackage.haskell.org/package/IntervalMap/"
10001 "IntervalMap-" version ".tar.gz"))
10002 (sha256
10003 (base32
10004 "06hin9wf1by8aqa7820fsi2339bh82184frkwz3jsb9sqa0hszcg"))))
10005 (build-system haskell-build-system)
10006 (native-inputs
10007 `(("ghc-quickcheck" ,ghc-quickcheck)))
10008 (home-page "http://www.chr-breitkopf.de/comp/IntervalMap")
10009 (synopsis "Containers for intervals, with efficient search")
10010 (description
10011 "This package provides ordered containers of intervals, with efficient
10012search for all keys containing a point or overlapping an interval. See the
10013example code on the home page for a quick introduction.")
10014 (license license:bsd-3)))
10015
2e72967b
RW
10016(define-public ghc-operational
10017 (package
10018 (name "ghc-operational")
10019 (version "0.2.3.5")
10020 (source
10021 (origin
10022 (method url-fetch)
10023 (uri (string-append "https://hackage.haskell.org/package/operational/"
10024 "operational-" version ".tar.gz"))
10025 (sha256
10026 (base32
10027 "1x2abg2q9d26h1vzj40r6k7k3gqgappbs4g9d853vvg77837km4i"))))
10028 (build-system haskell-build-system)
10029 (inputs
f54f0475 10030 `(("ghc-random" ,ghc-random)))
2e72967b
RW
10031 (home-page "http://wiki.haskell.org/Operational")
10032 (synopsis "Implementation of difficult monads made easy with operational semantics")
10033 (description
10034 "This library makes it easy to implement monads with tricky control
10035flow. This is useful for: writing web applications in a sequential style,
10036programming games with a uniform interface for human and AI players and easy
10037replay capababilities, implementing fast parser monads, designing monadic
10038DSLs, etc.")
10039 (license license:bsd-3)))
10040
cd447603
RW
10041(define-public ghc-gtk2hs-buildtools
10042 (package
10043 (name "ghc-gtk2hs-buildtools")
10044 (version "0.13.4.0")
10045 (source
10046 (origin
10047 (method url-fetch)
10048 (uri (string-append "https://hackage.haskell.org/package/"
10049 "gtk2hs-buildtools/gtk2hs-buildtools-"
10050 version ".tar.gz"))
10051 (sha256
10052 (base32
10053 "0yg6xmylgpylmnh5g33qwwn5x9bqckdvvv4czqzd9vrr12lnnghg"))))
10054 (build-system haskell-build-system)
10055 (inputs
10056 `(("ghc-random" ,ghc-random)
10057 ("ghc-hashtables" ,ghc-hashtables)))
10058 (native-inputs
10059 `(("ghc-alex" ,ghc-alex)
10060 ("ghc-happy" ,ghc-happy)))
10061 (home-page "http://projects.haskell.org/gtk2hs/")
10062 (synopsis "Tools to build the Gtk2Hs suite of user interface libraries")
10063 (description
10064 "This package provides a set of helper programs necessary to build the
10065Gtk2Hs suite of libraries. These tools include a modified c2hs binding tool
10066that is used to generate FFI declarations, a tool to build a type hierarchy
10067that mirrors the C type hierarchy of GObjects found in glib, and a generator
10068for signal declarations that are used to call back from C to Haskell. These
10069tools are not needed to actually run Gtk2Hs programs.")
10070 (license license:gpl2)))
10071
42744c1d
RW
10072(define-public ghc-chart
10073 (package
10074 (name "ghc-chart")
10075 (version "1.8.3")
10076 (source
10077 (origin
10078 (method url-fetch)
10079 (uri (string-append "https://hackage.haskell.org/package/Chart/"
10080 "Chart-" version ".tar.gz"))
10081 (sha256
10082 (base32
10083 "13s64fhb2pmkdmx5bkgbgcn25qjihs364fvr47a1dw25f804kiy1"))))
10084 (build-system haskell-build-system)
10085 (inputs
10086 `(("ghc-old-locale" ,ghc-old-locale)
42744c1d
RW
10087 ("ghc-lens" ,ghc-lens)
10088 ("ghc-colour" ,ghc-colour)
10089 ("ghc-data-default-class" ,ghc-data-default-class)
10090 ("ghc-operational" ,ghc-operational)
10091 ("ghc-vector" ,ghc-vector)))
10092 (home-page "https://github.com/timbod7/haskell-chart/wiki")
10093 (synopsis "Library for generating 2D charts and plots")
10094 (description
10095 "This package provides a library for generating 2D charts and plots, with
10096backends provided by the @code{Cairo} and @code{Diagrams} libraries.")
10097 (license license:bsd-3)))
10098
9c4b522f
AI
10099(define-public ghc-wcwidth
10100 (package
10101 (name "ghc-wcwidth")
10102 (version "0.0.2")
10103 (source
10104 (origin
10105 (method url-fetch)
10106 (uri (string-append "https://hackage.haskell.org/package/wcwidth/wcwidth-"
10107 version ".tar.gz"))
10108 (sha256
10109 (base32
10110 "1n1fq7v64b59ajf5g50iqj9sa34wm7s2j3viay0kxpmvlcv8gipz"))))
10111 (build-system haskell-build-system)
10112 (inputs
10113 `(("ghc-setlocale" ,ghc-setlocale)
10114 ("ghc-utf8-string" ,ghc-utf8-string)
f9f4578b 10115 ("ghc-attoparsec" ,ghc-attoparsec)))
9c4b522f
AI
10116 (home-page "https://github.com/solidsnack/wcwidth/")
10117 (synopsis "Haskell bindings to wcwidth")
10118 (description "This package provides Haskell bindings to your system's
10119native wcwidth and a command line tool to examine the widths assigned by it.
10120The command line tool can compile a width table to Haskell code that assigns
10121widths to the Char type.")
10122 (license license:bsd-3)))
10123
246b3437 10124;;; haskell.scm ends here