gnu: ghc-libmpd-haskell: Disable tests.
[jackhill/guix/guix.git] / gnu / packages / haskell.scm
1 ;;; GNU Guix --- Functional package management for GNU
2 ;;; Copyright © 2015, 2016 Federico Beffa <beffa@fbengineering.ch>
3 ;;; Copyright © 2015 Siniša Biđin <sinisa@bidin.eu>
4 ;;; Copyright © 2015 Paul van der Walt <paul@denknerd.org>
5 ;;; Copyright © 2015, 2019 Eric Bavier <bavier@member.fsf.org>
6 ;;; Copyright © 2016, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
7 ;;; Copyright © 2016, 2017 ng0 <ng0@n0.is>
8 ;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
9 ;;; Copyright © 2015, 2016, 2017, 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
10 ;;; Copyright © 2016, 2017 David Craven <david@craven.ch>
11 ;;; Copyright © 2017 Danny Milosavljevic <dannym@scratchpost.org>
12 ;;; Copyright © 2017 Peter Mikkelsen <petermikkelsen10@gmail.com>
13 ;;; Copyright © 2017, 2018 Alex Vong <alexvong1995@gmail.com>
14 ;;; Copyright © 2017 rsiddharth <s@ricketyspace.net>
15 ;;; Copyright © 2017, 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
16 ;;; Copyright © 2018 Tonton <tonton@riseup.net>
17 ;;; Copyright © 2018, 2019 Timothy Sample <samplet@ngyro.com>
18 ;;; Copyright © 2018 Arun Isaac <arunisaac@systemreboot.net>
19 ;;; Copyright © 2018, 2019 Gabriel Hondet <gabrielhondet@gmail.com>
20 ;;; Copyright © 2019 Robert Vollmert <rob@vllmrt.net>
21 ;;; Copyright © 2019 Jacob MacDonald <jaccarmac@gmail.com>
22 ;;;
23 ;;; This file is part of GNU Guix.
24 ;;;
25 ;;; GNU Guix is free software; you can redistribute it and/or modify it
26 ;;; under the terms of the GNU General Public License as published by
27 ;;; the Free Software Foundation; either version 3 of the License, or (at
28 ;;; your option) any later version.
29 ;;;
30 ;;; GNU Guix is distributed in the hope that it will be useful, but
31 ;;; WITHOUT ANY WARRANTY; without even the implied warranty of
32 ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
33 ;;; GNU General Public License for more details.
34 ;;;
35 ;;; You should have received a copy of the GNU General Public License
36 ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
37
38 (define-module (gnu packages haskell)
39 #:use-module (gnu packages)
40 #:use-module (gnu packages base)
41 #:use-module (gnu packages bootstrap)
42 #:use-module (gnu packages check)
43 #:use-module (gnu packages compression)
44 #:use-module (gnu packages elf)
45 #:use-module (gnu packages emacs)
46 #:use-module (gnu packages gcc)
47 #:use-module (gnu packages ghostscript)
48 #:use-module (gnu packages gl)
49 #:use-module (gnu packages graphviz)
50 #:use-module (gnu packages gtk)
51 #:use-module (gnu packages haskell-check)
52 #:use-module (gnu packages haskell-crypto)
53 #:use-module (gnu packages haskell-web)
54 #:use-module (gnu packages libffi)
55 #:use-module (gnu packages linux)
56 #:use-module (gnu packages lisp)
57 #:use-module (gnu packages lua)
58 #:use-module (gnu packages maths)
59 #:use-module (gnu packages multiprecision)
60 #:use-module (gnu packages ncurses)
61 #:use-module (gnu packages pcre)
62 #:use-module (gnu packages perl)
63 #:use-module (gnu packages pkg-config)
64 #:use-module (gnu packages python)
65 #:use-module (gnu packages sdl)
66 #:use-module (gnu packages tls)
67 #:use-module (gnu packages xml)
68 #:use-module (gnu packages xorg)
69 #:use-module (guix build-system gnu)
70 #:use-module (guix build-system haskell)
71 #:use-module (guix download)
72 #:use-module (guix git-download)
73 #:use-module ((guix licenses) #:prefix license:)
74 #:use-module (guix packages)
75 #:use-module (guix utils)
76 #:use-module (ice-9 match)
77 #:use-module (ice-9 regex)
78 #:use-module ((srfi srfi-1) #:select (alist-delete)))
79
80 (define-public cl-yale-haskell
81 (let ((commit "85f94c72a16c5f70301dd8db04cde9de2d7dd270")
82 (revision "1"))
83 (package
84 (name "cl-yale-haskell")
85 (version (string-append "2.0.5-" revision "." (string-take commit 9)))
86 (source (origin
87 (method git-fetch)
88 (uri (git-reference
89 (url "https://git.elephly.net/software/yale-haskell.git")
90 (commit commit)))
91 (file-name (string-append "yale-haskell-" commit "-checkout"))
92 (sha256
93 (base32
94 "0bal3m6ryrjamz5p93bhs9rp5msk8k7lpcqr44wd7xs9b9k8w74g"))))
95 (build-system gnu-build-system)
96 (arguments
97 `(#:tests? #f ; no tests
98 ;; Stripping binaries leads to a broken executable lisp system image.
99 #:strip-binaries? #f
100 #:make-flags
101 (list (string-append "PREFIX=" (assoc-ref %outputs "out")))
102 #:phases
103 (modify-phases %standard-phases
104 (replace 'configure
105 (lambda _
106 (setenv "PRELUDE" "./progs/prelude")
107 (setenv "HASKELL_LIBRARY" "./progs/lib")
108 (setenv "PRELUDEBIN" "./progs/prelude/clisp")
109 (setenv "HASKELLPROG" "./bin/clisp-haskell")
110 #t)))))
111 (inputs
112 `(("clisp" ,clisp)))
113 (home-page "https://git.elephly.net/software/yale-haskell.git")
114 (synopsis "Port of the Yale Haskell system to CLISP")
115 (description "This package provides the Yale Haskell system running on
116 top of CLISP.")
117 (license license:bsd-4))))
118
119 (define ghc-bootstrap-x86_64-7.8.4
120 (origin
121 (method url-fetch)
122 (uri
123 "https://www.haskell.org/ghc/dist/7.8.4/ghc-7.8.4-x86_64-unknown-linux-deb7.tar.xz")
124 (sha256
125 (base32
126 "13azsl53xgj20mi1hj9x0xb32vvcvs6cpmvwx6znxhas7blh0bpn"))))
127
128 (define ghc-bootstrap-i686-7.8.4
129 (origin
130 (method url-fetch)
131 (uri
132 "https://www.haskell.org/ghc/dist/7.8.4/ghc-7.8.4-i386-unknown-linux-deb7.tar.xz")
133 (sha256
134 (base32
135 "0wj5s435j0zgww70bj1d3f6wvnnpzlxwvwcyh2qv4qjq5z8j64kg"))))
136
137 ;; 43 tests out of 3965 fail.
138 ;;
139 ;; Most of them do not appear to be serious:
140 ;;
141 ;; - some tests generate files referring to "/bin/sh" and "/bin/ls". I've not
142 ;; figured out how these references are generated.
143 ;;
144 ;; - Some tests allocate more memory than expected (ca. 3% above upper limit)
145 ;;
146 ;; - Some tests try to load unavailable libriries: Control.Concurrent.STM,
147 ;; Data.Vector, Control.Monad.State.
148 ;;
149 ;; - Test posix010 tries to check the existence of a user on the system:
150 ;; getUserEntryForName: does not exist (no such user)
151 (define-public ghc-7
152 (package
153 (name "ghc")
154 (version "7.10.2")
155 (source
156 (origin
157 (method url-fetch)
158 (uri (string-append "https://www.haskell.org/ghc/dist/"
159 version "/" name "-" version "-src.tar.xz"))
160 (sha256
161 (base32
162 "1x8m4rp2v7ydnrz6z9g8x7z3x3d3pxhv2pixy7i7hkbqbdsp7kal"))))
163 (build-system gnu-build-system)
164 (supported-systems '("i686-linux" "x86_64-linux"))
165 (outputs '("out" "doc"))
166 (inputs
167 `(("gmp" ,gmp)
168 ("ncurses" ,ncurses)
169 ("libffi" ,libffi)
170 ("ghc-testsuite"
171 ,(origin
172 (method url-fetch)
173 (uri (string-append
174 "https://www.haskell.org/ghc/dist/"
175 version "/" name "-" version "-testsuite.tar.xz"))
176 (sha256
177 (base32
178 "0qp9da9ar87zbyn6wjgacd2ic1vgzbi3cklxnhsmjqyafv9qaj4b"))))))
179 (native-inputs
180 `(("perl" ,perl)
181 ("python" ,python-2) ; for tests (fails with python-3)
182 ("ghostscript" ,ghostscript) ; for tests
183 ("patchelf" ,patchelf)
184 ;; GHC is built with GHC. Therefore we need bootstrap binaries.
185 ("ghc-binary"
186 ,(if (string-match "x86_64" (or (%current-target-system) (%current-system)))
187 ghc-bootstrap-x86_64-7.8.4
188 ghc-bootstrap-i686-7.8.4))))
189 (arguments
190 `(#:test-target "test"
191 ;; We get a smaller number of test failures by disabling parallel test
192 ;; execution.
193 #:parallel-tests? #f
194
195 ;; The DSOs use $ORIGIN to refer to each other, but (guix build
196 ;; gremlin) doesn't support it yet, so skip this phase.
197 #:validate-runpath? #f
198
199 ;; Don't pass --build=<triplet>, because the configure script
200 ;; auto-detects slightly different triplets for --host and --target and
201 ;; then complains that they don't match.
202 #:build #f
203
204 #:modules ((guix build gnu-build-system)
205 (guix build utils)
206 (guix build rpath)
207 (srfi srfi-26)
208 (srfi srfi-1))
209 #:imported-modules (,@%gnu-build-system-modules
210 (guix build rpath))
211 #:configure-flags
212 (list
213 (string-append "--with-gmp-libraries="
214 (assoc-ref %build-inputs "gmp") "/lib")
215 (string-append "--with-gmp-includes="
216 (assoc-ref %build-inputs "gmp") "/include")
217 "--with-system-libffi"
218 (string-append "--with-ffi-libraries="
219 (assoc-ref %build-inputs "libffi") "/lib")
220 (string-append "--with-ffi-includes="
221 (assoc-ref %build-inputs "libffi") "/include"))
222 ;; FIXME: The user-guide needs dblatex, docbook-xsl and docbook-utils.
223 ;; Currently we do not have the last one.
224 ;; #:make-flags
225 ;; (list "BUILD_DOCBOOK_HTML = YES")
226 #:phases
227 (let* ((ghc-bootstrap-path
228 (string-append (getcwd) "/" ,name "-" ,version "/ghc-bin"))
229 (ghc-bootstrap-prefix
230 (string-append ghc-bootstrap-path "/usr" )))
231 (alist-cons-after
232 'unpack-bin 'unpack-testsuite-and-fix-bins
233 (lambda* (#:key inputs outputs #:allow-other-keys)
234 (with-directory-excursion ".."
235 (copy-file (assoc-ref inputs "ghc-testsuite")
236 "ghc-testsuite.tar.xz")
237 (system* "tar" "xvf" "ghc-testsuite.tar.xz"))
238 (substitute*
239 (list "testsuite/timeout/Makefile"
240 "testsuite/timeout/timeout.py"
241 "testsuite/timeout/timeout.hs"
242 "testsuite/tests/rename/prog006/Setup.lhs"
243 "testsuite/tests/programs/life_space_leak/life.test"
244 "libraries/process/System/Process/Internals.hs"
245 "libraries/unix/cbits/execvpe.c")
246 (("/bin/sh") (which "sh"))
247 (("/bin/rm") "rm"))
248 #t)
249 (alist-cons-after
250 'unpack 'unpack-bin
251 (lambda* (#:key inputs outputs #:allow-other-keys)
252 (mkdir-p ghc-bootstrap-prefix)
253 (with-directory-excursion ghc-bootstrap-path
254 (copy-file (assoc-ref inputs "ghc-binary")
255 "ghc-bin.tar.xz")
256 (zero? (system* "tar" "xvf" "ghc-bin.tar.xz"))))
257 (alist-cons-before
258 'install-bin 'configure-bin
259 (lambda* (#:key inputs outputs #:allow-other-keys)
260 (let* ((binaries
261 (list
262 "./utils/ghc-pwd/dist-install/build/tmp/ghc-pwd"
263 "./utils/hpc/dist-install/build/tmp/hpc"
264 "./utils/haddock/dist/build/tmp/haddock"
265 "./utils/hsc2hs/dist-install/build/tmp/hsc2hs"
266 "./utils/runghc/dist-install/build/tmp/runghc"
267 "./utils/ghc-cabal/dist-install/build/tmp/ghc-cabal"
268 "./utils/hp2ps/dist/build/tmp/hp2ps"
269 "./utils/ghc-pkg/dist-install/build/tmp/ghc-pkg"
270 "./utils/unlit/dist/build/tmp/unlit"
271 "./ghc/stage2/build/tmp/ghc-stage2"))
272 (gmp (assoc-ref inputs "gmp"))
273 (gmp-lib (string-append gmp "/lib"))
274 (gmp-include (string-append gmp "/include"))
275 (ncurses-lib
276 (string-append (assoc-ref inputs "ncurses") "/lib"))
277 (ld-so (string-append (assoc-ref inputs "libc")
278 ,(glibc-dynamic-linker)))
279 (libtinfo-dir
280 (string-append ghc-bootstrap-prefix
281 "/lib/ghc-7.8.4/terminfo-0.4.0.0")))
282 (with-directory-excursion
283 (string-append ghc-bootstrap-path "/ghc-7.8.4")
284 (setenv "CONFIG_SHELL" (which "bash"))
285 (setenv "LD_LIBRARY_PATH" gmp-lib)
286 ;; The binaries have "/lib64/ld-linux-x86-64.so.2" hardcoded.
287 (for-each
288 (cut system* "patchelf" "--set-interpreter" ld-so <>)
289 binaries)
290 ;; The binaries include a reference to libtinfo.so.5 which
291 ;; is a subset of libncurses.so.5. We create a symlink in a
292 ;; directory included in the bootstrap binaries rpath.
293 (mkdir-p libtinfo-dir)
294 (symlink
295 (string-append ncurses-lib "/libncursesw.so."
296 ;; Extract "6.0" from "6.0-20170930" if a
297 ;; dash-separated version tag exists.
298 ,(let* ((v (package-version ncurses))
299 (d (or (string-index v #\-)
300 (string-length v))))
301 (version-major+minor (string-take v d))))
302 (string-append libtinfo-dir "/libtinfo.so.5"))
303
304 (setenv "PATH"
305 (string-append (getenv "PATH") ":"
306 ghc-bootstrap-prefix "/bin"))
307 (system*
308 (string-append (getcwd) "/configure")
309 (string-append "--prefix=" ghc-bootstrap-prefix)
310 (string-append "--with-gmp-libraries=" gmp-lib)
311 (string-append "--with-gmp-includes=" gmp-include)))))
312 (alist-cons-before
313 'configure 'install-bin
314 (lambda* (#:key inputs outputs #:allow-other-keys)
315 (with-directory-excursion
316 (string-append ghc-bootstrap-path "/ghc-7.8.4")
317 (zero? (system* "make" "install"))))
318 %standard-phases)))))))
319 (native-search-paths (list (search-path-specification
320 (variable "GHC_PACKAGE_PATH")
321 (files (list
322 (string-append "lib/ghc-" version)))
323 (file-pattern ".*\\.conf\\.d$")
324 (file-type 'directory))))
325 (home-page "https://www.haskell.org/ghc")
326 (synopsis "The Glasgow Haskell Compiler")
327 (description
328 "The Glasgow Haskell Compiler (GHC) is a state-of-the-art compiler and
329 interactive environment for the functional language Haskell.")
330 (license license:bsd-3)))
331
332 (define-public ghc-8.0
333 (package
334 (name "ghc")
335 (version "8.0.2")
336 (source
337 (origin
338 (method url-fetch)
339 (uri (string-append "https://www.haskell.org/ghc/dist/"
340 version "/" name "-" version "-src.tar.xz"))
341 (sha256
342 (base32 "1c8qc4fhkycynk4g1f9hvk53dj6a1vvqi6bklqznns6hw59m8qhi"))
343 (patches
344 (search-patches
345 "ghc-dont-pass-linker-flags-via-response-files.patch"
346 "ghc-8.0-fall-back-to-madv_dontneed.patch"))))
347 (build-system gnu-build-system)
348 (supported-systems '("i686-linux" "x86_64-linux"))
349 (outputs '("out" "doc"))
350 (inputs
351 `(("gmp" ,gmp)
352 ("ncurses" ,ncurses)
353 ("libffi" ,libffi)
354 ("ghc-testsuite"
355 ,(origin
356 (method url-fetch)
357 (uri (string-append
358 "https://www.haskell.org/ghc/dist/"
359 version "/" name "-" version "-testsuite.tar.xz"))
360 (sha256
361 (base32 "1wjc3x68l305bl1h1ijd3yhqp2vqj83lkp3kqbr94qmmkqlms8sj"))))))
362 (native-inputs
363 `(("perl" ,perl)
364 ("python" ,python-2) ; for tests
365 ("ghostscript" ,ghostscript) ; for tests
366 ;; GHC is built with GHC.
367 ("ghc-bootstrap" ,ghc-7)))
368 (arguments
369 `(#:test-target "test"
370 ;; We get a smaller number of test failures by disabling parallel test
371 ;; execution.
372 #:parallel-tests? #f
373
374 ;; The DSOs use $ORIGIN to refer to each other, but (guix build
375 ;; gremlin) doesn't support it yet, so skip this phase.
376 #:validate-runpath? #f
377
378 ;; Don't pass --build=<triplet>, because the configure script
379 ;; auto-detects slightly different triplets for --host and --target and
380 ;; then complains that they don't match.
381 #:build #f
382
383 #:configure-flags
384 (list
385 (string-append "--with-gmp-libraries="
386 (assoc-ref %build-inputs "gmp") "/lib")
387 (string-append "--with-gmp-includes="
388 (assoc-ref %build-inputs "gmp") "/include")
389 "--with-system-libffi"
390 (string-append "--with-ffi-libraries="
391 (assoc-ref %build-inputs "libffi") "/lib")
392 (string-append "--with-ffi-includes="
393 (assoc-ref %build-inputs "libffi") "/include")
394 (string-append "--with-curses-libraries="
395 (assoc-ref %build-inputs "ncurses") "/lib")
396 (string-append "--with-curses-includes="
397 (assoc-ref %build-inputs "ncurses") "/include"))
398 #:phases
399 (modify-phases %standard-phases
400 (add-after 'unpack 'unpack-testsuite
401 (lambda* (#:key inputs #:allow-other-keys)
402 (with-directory-excursion ".."
403 (copy-file (assoc-ref inputs "ghc-testsuite")
404 "ghc-testsuite.tar.xz")
405 (zero? (system* "tar" "xvf" "ghc-testsuite.tar.xz")))))
406 (add-before 'build 'fix-lib-paths
407 (lambda _
408 (substitute*
409 (list "libraries/process/System/Process/Posix.hs"
410 "libraries/process/tests/process001.hs"
411 "libraries/process/tests/process002.hs"
412 "libraries/unix/cbits/execvpe.c")
413 (("/bin/sh") (which "sh"))
414 (("/bin/ls") (which "ls")))
415 #t))
416 (add-before 'build 'fix-environment
417 (lambda _
418 (unsetenv "GHC_PACKAGE_PATH")
419 (setenv "CONFIG_SHELL" (which "bash"))
420 #t))
421 (add-before 'check 'fix-testsuite
422 (lambda _
423 (substitute*
424 (list "testsuite/timeout/Makefile"
425 "testsuite/timeout/timeout.py"
426 "testsuite/timeout/timeout.hs"
427 "testsuite/tests/programs/life_space_leak/life.test")
428 (("/bin/sh") (which "sh"))
429 (("/bin/rm") "rm"))
430 #t)))))
431 (native-search-paths (list (search-path-specification
432 (variable "GHC_PACKAGE_PATH")
433 (files (list
434 (string-append "lib/ghc-" version)))
435 (file-pattern ".*\\.conf\\.d$")
436 (file-type 'directory))))
437 (home-page "https://www.haskell.org/ghc")
438 (synopsis "The Glasgow Haskell Compiler")
439 (description
440 "The Glasgow Haskell Compiler (GHC) is a state-of-the-art compiler and
441 interactive environment for the functional language Haskell.")
442 (license license:bsd-3)))
443
444 (define-public ghc-8.4
445 (package (inherit ghc-8.0)
446 (name "ghc")
447 (version "8.4.3")
448 (source
449 (origin
450 (method url-fetch)
451 (uri (string-append "https://www.haskell.org/ghc/dist/"
452 version "/" name "-" version "-src.tar.xz"))
453 (sha256
454 (base32 "1mk046vb561j75saz05rghhbkps46ym5aci4264dwc2qk3dayixf"))))
455 (inputs
456 `(("gmp" ,gmp)
457 ("ncurses" ,ncurses)
458 ("libffi" ,libffi)
459 ("target-binutils" ,binutils)
460 ("target-gcc" ,gcc)
461 ("target-ld-wrapper" ,(make-ld-wrapper "ld-wrapper"
462 #:binutils binutils))))
463 (native-inputs
464 `(("perl" ,perl)
465 ("python" ,python) ; for tests
466 ("ghostscript" ,ghostscript) ; for tests
467 ;; GHC 8.4.3 is built with GHC 8.
468 ("ghc-bootstrap" ,ghc-8.0)
469 ("ghc-testsuite"
470 ,(origin
471 (method url-fetch)
472 (uri (string-append
473 "https://www.haskell.org/ghc/dist/"
474 version "/" name "-" version "-testsuite.tar.xz"))
475 (sha256
476 (base32
477 "1z55b1z0m3plqd2d1ks6w5wvx7igm7zsk3i4v7cms003z0as0hzz"))))))
478 (arguments
479 `(#:test-target "test"
480 ;; We get a smaller number of test failures by disabling parallel test
481 ;; execution.
482 #:parallel-tests? #f
483
484 ;; The DSOs use $ORIGIN to refer to each other, but (guix build
485 ;; gremlin) doesn't support it yet, so skip this phase.
486 #:validate-runpath? #f
487
488 ;; Don't pass --build=<triplet>, because the configure script
489 ;; auto-detects slightly different triplets for --host and --target and
490 ;; then complains that they don't match.
491 #:build #f
492
493 #:configure-flags
494 (list
495 (string-append "--with-gmp-libraries="
496 (assoc-ref %build-inputs "gmp") "/lib")
497 (string-append "--with-gmp-includes="
498 (assoc-ref %build-inputs "gmp") "/include")
499 "--with-system-libffi"
500 (string-append "--with-ffi-libraries="
501 (assoc-ref %build-inputs "libffi") "/lib")
502 (string-append "--with-ffi-includes="
503 (assoc-ref %build-inputs "libffi") "/include")
504 (string-append "--with-curses-libraries="
505 (assoc-ref %build-inputs "ncurses") "/lib")
506 (string-append "--with-curses-includes="
507 (assoc-ref %build-inputs "ncurses") "/include"))
508 #:phases
509 (modify-phases %standard-phases
510 (add-after 'unpack 'unpack-testsuite
511 (lambda* (#:key inputs #:allow-other-keys)
512 (invoke "tar" "xvf"
513 (assoc-ref inputs "ghc-testsuite")
514 "--strip-components=1")
515 #t))
516 ;; This phase patches the 'ghc-pkg' command so that it sorts the list
517 ;; of packages in the binary cache it generates.
518 (add-before 'build 'fix-ghc-pkg-nondeterminism
519 (lambda _
520 (substitute* "utils/ghc-pkg/Main.hs"
521 (("confs = map \\(path </>\\) \\$ filter \\(\".conf\" `isSuffixOf`\\) fs")
522 "confs = map (path </>) $ filter (\".conf\" `isSuffixOf`) (sort fs)"))
523 #t))
524 (add-after 'unpack-testsuite 'fix-shell-wrappers
525 (lambda _
526 (substitute* '("driver/ghci/ghc.mk"
527 "utils/mkdirhier/ghc.mk"
528 "rules/shell-wrapper.mk")
529 (("echo '#!/bin/sh'")
530 (format #f "echo '#!~a'" (which "sh"))))
531 #t))
532 ;; This is necessary because the configure system no longer uses
533 ;; “AC_PATH_” but “AC_CHECK_”, setting the variables to just the
534 ;; plain command names.
535 (add-before 'configure 'set-target-programs
536 (lambda* (#:key inputs #:allow-other-keys)
537 (let ((binutils (assoc-ref inputs "target-binutils"))
538 (gcc (assoc-ref inputs "target-gcc"))
539 (ld-wrapper (assoc-ref inputs "target-ld-wrapper")))
540 (setenv "CC" (string-append gcc "/bin/gcc"))
541 (setenv "CXX" (string-append gcc "/bin/g++"))
542 (setenv "LD" (string-append ld-wrapper "/bin/ld"))
543 (setenv "NM" (string-append binutils "/bin/nm"))
544 (setenv "RANLIB" (string-append binutils "/bin/ranlib"))
545 (setenv "STRIP" (string-append binutils "/bin/strip"))
546 ;; The 'ar' command does not follow the same pattern.
547 (setenv "fp_prog_ar" (string-append binutils "/bin/ar"))
548 #t)))
549 (add-before 'build 'fix-references
550 (lambda _
551 (substitute* '("testsuite/timeout/Makefile"
552 "testsuite/timeout/timeout.py"
553 "testsuite/timeout/timeout.hs"
554 "testsuite/tests/programs/life_space_leak/life.test"
555 ;; libraries
556 "libraries/process/System/Process/Posix.hs"
557 "libraries/process/tests/process001.hs"
558 "libraries/process/tests/process002.hs"
559 "libraries/unix/cbits/execvpe.c")
560 (("/bin/sh") (which "sh"))
561 (("/bin/ls") (which "ls"))
562 (("/bin/rm") "rm"))
563 #t))
564 (add-before 'build 'fix-environment
565 (lambda _
566 (unsetenv "GHC_PACKAGE_PATH")
567 (setenv "CONFIG_SHELL" (which "bash"))
568 #t)))))
569 (native-search-paths (list (search-path-specification
570 (variable "GHC_PACKAGE_PATH")
571 (files (list
572 (string-append "lib/ghc-" version)))
573 (file-pattern ".*\\.conf\\.d$")
574 (file-type 'directory))))))
575
576 (define-public ghc-8.6
577 (package (inherit ghc-8.4)
578 (name "ghc")
579 (version "8.6.5")
580 (source
581 (origin
582 (method url-fetch)
583 (uri (string-append "https://www.haskell.org/ghc/dist/"
584 version "/" name "-" version "-src.tar.xz"))
585 (sha256
586 (base32 "0qg3zsmbk4rkwkc3jpas3zs74qaxmw4sp4v1mhsbj0a0dzls2jjd"))))
587 (native-inputs
588 `(;; GHC 8.6.5 must be built with GHC >= 8.2.
589 ("ghc-bootstrap" ,ghc-8.4)
590 ("ghc-testsuite"
591 ,(origin
592 (method url-fetch)
593 (uri (string-append
594 "https://www.haskell.org/ghc/dist/"
595 version "/" name "-" version "-testsuite.tar.xz"))
596 (sha256
597 (base32
598 "0pw9r91g2np3i806g2f4f8z4jfdd7mx226cmdizk4swa7av1qf91"))))
599 ,@(filter (match-lambda
600 (("ghc-bootstrap" . _) #f)
601 (("ghc-testsuite" . _) #f)
602 (_ #t))
603 (package-native-inputs ghc-8.4))))
604 (arguments
605 (substitute-keyword-arguments (package-arguments ghc-8.4)
606 ((#:make-flags make-flags ''())
607 `(cons "EXTRA_RUNTEST_OPTS=--skip-perf-tests"
608 ,make-flags))
609 ((#:phases phases '%standard-phases)
610 `(modify-phases ,phases
611 ;; These two tests refer to the root user, which doesn't exist
612 ;; (see <https://bugs.gnu.org/36692>).
613 (add-after 'unpack-testsuite 'skip-tests
614 (lambda _
615 (substitute* "libraries/unix/tests/all.T"
616 (("^test\\('T8108'") "# guix skipped: test('T8108'"))
617 (substitute* "libraries/unix/tests/libposix/all.T"
618 (("^test\\('posix010'") "# guix skipped: test('posix010'"))
619 #t))))))))
620
621 (define-public ghc-8 ghc-8.4)
622
623 (define-public ghc ghc-8)
624
625 (define-public ghc-hostname
626 (package
627 (name "ghc-hostname")
628 (version "1.0")
629 (source
630 (origin
631 (method url-fetch)
632 (uri (string-append "https://hackage.haskell.org/package/hostname/"
633 "hostname-" version ".tar.gz"))
634 (sha256
635 (base32
636 "0p6gm4328946qxc295zb6vhwhf07l1fma82vd0siylnsnsqxlhwv"))))
637 (build-system haskell-build-system)
638 (home-page "https://hackage.haskell.org/package/hostname")
639 (synopsis "Hostname in Haskell")
640 (description "Network.HostName is a simple package providing a means to
641 determine the hostname.")
642 (license license:bsd-3)))
643
644 (define-public ghc-convertible
645 (package
646 (name "ghc-convertible")
647 (version "1.1.1.0")
648 (source
649 (origin
650 (method url-fetch)
651 (uri (string-append "https://hackage.haskell.org/package/convertible/"
652 "convertible-" version ".tar.gz"))
653 (sha256
654 (base32
655 "0v18ap1mccnndgxmbfgyjdicg8jlss01bd5fq8a576dr0h4sgyg9"))))
656 (build-system haskell-build-system)
657 (inputs
658 `(("ghc-old-time" ,ghc-old-time)
659 ("ghc-old-locale" ,ghc-old-locale)))
660 (home-page "https://hackage.haskell.org/package/convertible")
661 (synopsis "Typeclasses and instances for converting between types")
662 (description
663 "This package provides a typeclass with a single function that is
664 designed to help convert between different types: numeric values, dates and
665 times, and the like. The conversions perform bounds checking and return a
666 pure @code{Either} value. This means that you need not remember which specific
667 function performs the conversion you desire.")
668 (license license:bsd-3)))
669
670 (define-public ghc-double-conversion
671 (package
672 (name "ghc-double-conversion")
673 (version "2.0.2.0")
674 (source
675 (origin
676 (method url-fetch)
677 (uri (string-append "https://hackage.haskell.org/package/"
678 "double-conversion/double-conversion-"
679 version ".tar.gz"))
680 (sha256
681 (base32
682 "0sx2kc1gw72mjvd8vph8bbjw5whfxfv92rsdhjg1c0al75rf3ka4"))))
683 (build-system haskell-build-system)
684 (native-inputs
685 `(("ghc-hunit" ,ghc-hunit)
686 ("ghc-test-framework" ,ghc-test-framework)
687 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
688 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
689 (home-page "https://github.com/bos/double-conversion")
690 (synopsis "Fast conversion between double precision floating point and text")
691 (description
692 "This package provides a library that performs fast, accurate conversion
693 between double precision floating point and text.")
694 (license license:bsd-3)))
695
696 (define-public ghc-libxml
697 (package
698 (name "ghc-libxml")
699 (version "0.1.1")
700 (source
701 (origin
702 (method url-fetch)
703 (uri (string-append "https://hackage.haskell.org/package/libxml/"
704 "libxml-" version ".tar.gz"))
705 (sha256
706 (base32
707 "01zvk86kg726lf2vnlr7dxiz7g3xwi5a4ak9gcfbwyhynkzjmsfi"))))
708 (build-system haskell-build-system)
709 (inputs
710 `(("libxml2" ,libxml2)))
711 (arguments
712 `(#:configure-flags
713 `(,(string-append "--extra-include-dirs="
714 (assoc-ref %build-inputs "libxml2")
715 "/include/libxml2"))))
716 (home-page "https://hackage.haskell.org/package/libxml")
717 (synopsis "Haskell bindings to libxml2")
718 (description
719 "This library provides minimal Haskell binding to libxml2.")
720 (license license:bsd-3)))
721
722 (define-public ghc-prelude-extras
723 (package
724 (name "ghc-prelude-extras")
725 (version "0.4.0.3")
726 (source
727 (origin
728 (method url-fetch)
729 (uri (string-append
730 "https://hackage.haskell.org/package/prelude-extras/prelude-extras-"
731 version
732 ".tar.gz"))
733 (sha256
734 (base32
735 "0xzqdf3nl2h0ra4gnslm1m1nsxlsgc0hh6ky3vn578vh11zhifq9"))))
736 (build-system haskell-build-system)
737 (home-page "https://github.com/ekmett/prelude-extras")
738 (synopsis "Higher order versions of Prelude classes")
739 (description "This library provides higher order versions of
740 @code{Prelude} classes to ease programming with polymorphic recursion and
741 reduce @code{UndecidableInstances}.")
742 (license license:bsd-3)))
743
744 (define-public ghc-data-default
745 (package
746 (name "ghc-data-default")
747 (version "0.7.1.1")
748 (source
749 (origin
750 (method url-fetch)
751 (uri (string-append
752 "https://hackage.haskell.org/package/data-default/data-default-"
753 version
754 ".tar.gz"))
755 (sha256
756 (base32 "04d5n8ybmcxba9qb6h389w9zfq1lvj81b82jh6maqp6pkhkmvydh"))))
757 (build-system haskell-build-system)
758 (inputs
759 `(("ghc-data-default-class"
760 ,ghc-data-default-class)
761 ("ghc-data-default-instances-base"
762 ,ghc-data-default-instances-base)
763 ("ghc-data-default-instances-containers"
764 ,ghc-data-default-instances-containers)
765 ("ghc-data-default-instances-dlist"
766 ,ghc-data-default-instances-dlist)
767 ("ghc-data-default-instances-old-locale"
768 ,ghc-data-default-instances-old-locale)))
769 (home-page "https://hackage.haskell.org/package/data-default")
770 (synopsis "Types with default values")
771 (description
772 "This package defines a class for types with a default value, and
773 provides instances for types from the base, containers, dlist and old-locale
774 packages.")
775 (license license:bsd-3)))
776
777 (define-public ghc-data-default-class
778 (package
779 (name "ghc-data-default-class")
780 (version "0.1.2.0")
781 (source
782 (origin
783 (method url-fetch)
784 (uri (string-append
785 "https://hackage.haskell.org/package/data-default-class/"
786 "data-default-class-" version ".tar.gz"))
787 (sha256
788 (base32 "0miyjz8d4jyvqf2vp60lyfbnflx6cj2k8apmm9ly1hq0y0iv80ag"))))
789 (build-system haskell-build-system)
790 (home-page "https://hackage.haskell.org/package/data-default-class")
791 (synopsis "Types with default values")
792 (description
793 "This package defines a class for types with default values.")
794 (license license:bsd-3)))
795
796 (define-public ghc-data-default-instances-base
797 (package
798 (name "ghc-data-default-instances-base")
799 (version "0.1.0.1")
800 (source
801 (origin
802 (method url-fetch)
803 (uri (string-append
804 "https://hackage.haskell.org/package/"
805 "data-default-instances-base/"
806 "data-default-instances-base-" version ".tar.gz"))
807 (sha256
808 (base32 "0ym1sw3ssdzzifxxhh76qlv8kkmb2iclc158incv1dklyr9y8kw4"))))
809 (build-system haskell-build-system)
810 (inputs
811 `(("ghc-data-default-class" ,ghc-data-default-class)))
812 (home-page "https://hackage.haskell.org/package/data-default-instances-base")
813 (synopsis "Default instances for types in base")
814 (description
815 "This package provides default instances for types from the base
816 package.")
817 (license license:bsd-3)))
818
819 (define-public ghc-data-default-instances-containers
820 (package
821 (name "ghc-data-default-instances-containers")
822 (version "0.0.1")
823 (source
824 (origin
825 (method url-fetch)
826 (uri (string-append
827 "https://hackage.haskell.org/package/"
828 "data-default-instances-containers/"
829 "data-default-instances-containers-" version ".tar.gz"))
830 (sha256
831 (base32 "06h8xka031w752a7cjlzghvr8adqbl95xj9z5zc1b62w02phfpm5"))))
832 (build-system haskell-build-system)
833 (inputs
834 `(("ghc-data-default-class" ,ghc-data-default-class)))
835 (home-page "https://hackage.haskell.org/package/data-default-instances-containers")
836 (synopsis "Default instances for types in containers")
837 (description "Provides default instances for types from the containers
838 package.")
839 (license license:bsd-3)))
840
841 (define-public ghc-data-default-instances-dlist
842 (package
843 (name "ghc-data-default-instances-dlist")
844 (version "0.0.1")
845 (source
846 (origin
847 (method url-fetch)
848 (uri (string-append
849 "https://hackage.haskell.org/package/"
850 "data-default-instances-dlist/"
851 "data-default-instances-dlist-" version ".tar.gz"))
852 (sha256
853 (base32 "0narkdqiprhgayjiawrr4390h4rq4pl2pb6mvixbv2phrc8kfs3x"))))
854 (build-system haskell-build-system)
855 (inputs
856 `(("ghc-data-default-class" ,ghc-data-default-class)
857 ("ghc-dlist" ,ghc-dlist)))
858 (home-page "https://hackage.haskell.org/package/data-default-instances-dlist")
859 (synopsis "Default instances for types in dlist")
860 (description "Provides default instances for types from the dlist
861 package.")
862 (license license:bsd-3)))
863
864 (define-public ghc-code-page
865 (package
866 (name "ghc-code-page")
867 (version "0.1.3")
868 (source
869 (origin
870 (method url-fetch)
871 (uri (string-append
872 "https://hackage.haskell.org/package/code-page/code-page-"
873 version ".tar.gz"))
874 (sha256
875 (base32
876 "1491frk4jx6dlhifky9dvcxbsbcfssrz979a5hp5zn061rh8cp76"))))
877 (build-system haskell-build-system)
878 (home-page "https://github.com/RyanGlScott/code-page")
879 (synopsis "Windows code page library for Haskell")
880 (description "A cross-platform library with functions for adjusting
881 code pages on Windows. On all other operating systems, the library does
882 nothing.")
883 (license license:bsd-3)))
884
885 (define-public ghc-libffi
886 (package
887 (name "ghc-libffi")
888 (version "0.1")
889 (source
890 (origin
891 (method url-fetch)
892 (uri (string-append "https://hackage.haskell.org/package/"
893 "libffi/libffi-" version ".tar.gz"))
894 (sha256
895 (base32
896 "0g7jnhng3j7z5517aaqga0144aamibsbpgm3yynwyfzkq1kp0f28"))))
897 (build-system haskell-build-system)
898 (native-inputs `(("pkg-config" ,pkg-config)))
899 (inputs `(("libffi" ,libffi)))
900 (home-page "http://hackage.haskell.org/package/libffi")
901 (synopsis "Haskell binding to libffi")
902 (description
903 "A binding to libffi, allowing C functions of types only known at runtime
904 to be called from Haskell.")
905 (license license:bsd-3)))
906
907 (define-public ghc-newtype-generics
908 (package
909 (name "ghc-newtype-generics")
910 (version "0.5.3")
911 (source
912 (origin
913 (method url-fetch)
914 (uri (string-append "https://hackage.haskell.org/package/"
915 "newtype-generics/newtype-generics-"
916 version ".tar.gz"))
917 (sha256
918 (base32
919 "0igyisw2djg19v9vkna1rwf47k97mvkvk4bbkmswznvbm00z15gj"))))
920 (build-system haskell-build-system)
921 (native-inputs
922 `(("ghc-hspec" ,ghc-hspec)
923 ("hspec-discover" ,hspec-discover)))
924 (home-page "http://github.com/sjakobi/newtype-generics")
925 (synopsis "Typeclass and set of functions for working with newtypes")
926 (description "The @code{Newtype} typeclass represents the packing and
927 unpacking of a newtype, and allows you to operate under that newtype with
928 functions such as @code{ala}. Generics support was added in version 0.4,
929 making this package a full replacement for the original newtype package,
930 and an alternative to newtype-th.")
931 (license license:bsd-3)))
932
933 (define-public ghc-memotrie
934 (package
935 (name "ghc-memotrie")
936 (version "0.6.9")
937 (source
938 (origin
939 (method url-fetch)
940 (uri (string-append
941 "https://hackage.haskell.org/package/MemoTrie/MemoTrie-"
942 version
943 ".tar.gz"))
944 (sha256
945 (base32
946 "157p0pi6rrq74a35mq6zkkycv4ah7xhkbrcmnkb9xf7pznw4aq0x"))))
947 (build-system haskell-build-system)
948 (inputs
949 `(("ghc-newtype-generics" ,ghc-newtype-generics)))
950 (home-page "https://github.com/conal/MemoTrie")
951 (synopsis "Trie-based memo functions")
952 (description "This package provides a functional library for creating
953 efficient memo functions using tries.")
954 (license license:bsd-3)))
955
956 (define-public ghc-tree-diff
957 (package
958 (name "ghc-tree-diff")
959 (version "0.0.1")
960 (source
961 (origin
962 (method url-fetch)
963 (uri (string-append
964 "https://hackage.haskell.org/package/tree-diff/tree-diff-"
965 version
966 ".tar.gz"))
967 (sha256
968 (base32
969 "049v44c520jy3icxlnrvbdblh3mjmvd7m6qmkzxbzkf02x63xqmz"))))
970 (build-system haskell-build-system)
971 (arguments
972 `(#:cabal-revision
973 ("4" "1rqxxyj6hqllahs11693g855cxz8mgnb490s7j1ksd300i5xgjsp")
974 #:phases
975 (modify-phases %standard-phases
976 (add-before 'configure 'update-constraints
977 (lambda _
978 (substitute* "tree-diff.cabal"
979 (("trifecta >=1\\.7\\.1\\.1 && <1\\.8")
980 "trifecta >=1.7.1.1 && <=2")))))))
981 (inputs
982 `(("ghc-aeson" ,ghc-aeson)
983 ("ghc-ansi-wl-pprint" ,ghc-ansi-wl-pprint)
984 ("ghc-ansi-terminal" ,ghc-ansi-terminal)
985 ("ghc-base-compat" ,ghc-base-compat)
986 ("ghc-generics-sop" ,ghc-generics-sop)
987 ("ghc-hashable" ,ghc-hashable)
988 ("ghc-memotrie" ,ghc-memotrie)
989 ("ghc-parsers" ,ghc-parsers)
990 ("ghc-quickcheck" ,ghc-quickcheck)
991 ("ghc-scientific" ,ghc-scientific)
992 ("ghc-tagged" ,ghc-tagged)
993 ("ghc-unordered-containers" ,ghc-unordered-containers)
994 ("ghc-uuid-types" ,ghc-uuid-types)
995 ("ghc-vector" ,ghc-vector)))
996 (native-inputs
997 `(("ghc-base-compat" ,ghc-base-compat)
998 ("ghc-quickcheck" ,ghc-quickcheck)
999 ("ghc-ansi-terminal" ,ghc-ansi-terminal)
1000 ("ghc-ansi-wl-pprint" ,ghc-ansi-wl-pprint)
1001 ("ghc-trifecta" ,ghc-trifecta)
1002 ("ghc-tasty" ,ghc-tasty)
1003 ("ghc-tasty-golden" ,ghc-tasty-golden)
1004 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
1005 (home-page "https://github.com/phadej/tree-diff")
1006 (synopsis "Compute difference between (expression) trees")
1007 (description "This Haskell library provides a function for computing
1008 the difference between (expression) trees. It also provides a way to
1009 compute the difference between arbitrary abstract datatypes (ADTs) using
1010 @code{Generics}-derivable helpers.")
1011 (license license:bsd-3)))
1012
1013 (define-public ghc-haddock-library
1014 (package
1015 (name "ghc-haddock-library")
1016 (version "1.5.0.1")
1017 (source
1018 (origin
1019 (method url-fetch)
1020 (uri (string-append
1021 "https://hackage.haskell.org/package/haddock-library/haddock-library-"
1022 version
1023 ".tar.gz"))
1024 (sha256
1025 (base32
1026 "1cmbg8l5xrwpliclwy3l057raypjqy0hsg1h1743ahaj8gq10b7z"))
1027 (patches (search-patches
1028 "ghc-haddock-library-unbundle.patch"))
1029 (modules '((guix build utils)))
1030 (snippet '(begin
1031 (delete-file-recursively "vendor")
1032 #t))))
1033 (build-system haskell-build-system)
1034 (arguments
1035 `(#:phases
1036 (modify-phases %standard-phases
1037 (add-before 'configure 'relax-test-suite-dependencies
1038 (lambda _
1039 (substitute* "haddock-library.cabal"
1040 (("base-compat\\s*\\^>= 0\\.9\\.3") "base-compat")
1041 (("hspec\\s*\\^>= 2\\.4\\.4") "hspec"))))
1042 ;; The release tarball does not contain the "fixtures/examples"
1043 ;; directory, which is required for testing. In the upstream
1044 ;; repository, the directory exists and is populated. Here, we
1045 ;; create an empty directory to placate the tests.
1046 (add-before 'check 'add-examples-directory
1047 (lambda _
1048 (mkdir "fixtures/examples")
1049 #t)))))
1050 (native-inputs
1051 `(("ghc-base-compat" ,ghc-base-compat)
1052 ("ghc-hspec" ,ghc-hspec)
1053 ("ghc-optparse-applicative" ,ghc-optparse-applicative)
1054 ("ghc-quickcheck" ,ghc-quickcheck)
1055 ("ghc-tree-diff" ,ghc-tree-diff)
1056 ("hspec-discover" ,hspec-discover)))
1057 (home-page "https://www.haskell.org/haddock/")
1058 (synopsis "Library exposing some functionality of Haddock")
1059 (description
1060 "Haddock is a documentation-generation tool for Haskell libraries. These
1061 modules expose some functionality of it without pulling in the GHC dependency.
1062 Please note that the API is likely to change so specify upper bounds in your
1063 project if you can't release often. For interacting with Haddock itself, see
1064 the ‘haddock’ package.")
1065 (license license:bsd-3)))
1066
1067 (define-public ghc-haddock-api
1068 (package
1069 (name "ghc-haddock-api")
1070 (version "2.19.0.1")
1071 (source
1072 (origin
1073 (method url-fetch)
1074 (uri (string-append
1075 "https://hackage.haskell.org/package/haddock-api/haddock-api-"
1076 version
1077 ".tar.gz"))
1078 (sha256
1079 (base32
1080 "0c6i7sljp7myz25d90gyw68a90i5jcrkajkxcciikp2hjirfaas3"))))
1081 (build-system haskell-build-system)
1082 (arguments
1083 `(#:phases
1084 (modify-phases %standard-phases
1085 (add-before 'configure 'update-constraints
1086 (lambda _
1087 (substitute* "haddock-api.cabal"
1088 (("Cabal \\^>= 2\\.0\\.0")
1089 "Cabal ^>= 2.2.0")
1090 (("hspec \\^>= 2\\.4\\.4")
1091 "hspec >= 2.4.4 && < 2.6")))))))
1092 (inputs
1093 `(("ghc-paths" ,ghc-paths)
1094 ("ghc-haddock-library" ,ghc-haddock-library)))
1095 (native-inputs
1096 `(("ghc-quickcheck" ,ghc-quickcheck)
1097 ("ghc-hspec" ,ghc-hspec)
1098 ("hspec-discover" ,hspec-discover)))
1099 (home-page "https://www.haskell.org/haddock/")
1100 (synopsis "API for documentation-generation tool Haddock")
1101 (description "This package provides an API to Haddock, the
1102 documentation-generation tool for Haskell libraries.")
1103 (license license:bsd-3)))
1104
1105 (define-public ghc-haddock
1106 (package
1107 (name "ghc-haddock")
1108 (version "2.19.0.1")
1109 (source
1110 (origin
1111 (method url-fetch)
1112 (uri (string-append
1113 "https://hackage.haskell.org/package/haddock/haddock-"
1114 version
1115 ".tar.gz"))
1116 (sha256
1117 (base32
1118 "1g1j9j0hf2yhyyh0gwz6bzbvfvliqz9x8a8hnkmwghm7w3xa6sb7"))))
1119 (build-system haskell-build-system)
1120 (arguments
1121 `(#:phases
1122 (modify-phases %standard-phases
1123 ;; There are four test suites that require the ghc-haddock-test
1124 ;; package, which no longer builds with GHC 8.4.3. This phase
1125 ;; removes these four test suites from the Cabal file, so that we
1126 ;; do not need ghc-haddock-test as an input.
1127 (add-before 'configure 'remove-haddock-test-test-suites
1128 (lambda _
1129 (use-modules (ice-9 rdelim))
1130 (with-atomic-file-replacement "haddock.cabal"
1131 (lambda (in out)
1132 (let loop ((line (read-line in 'concat)) (deleting? #f))
1133 (cond
1134 ((eof-object? line) #t)
1135 ((string-every char-set:whitespace line)
1136 (unless deleting? (display line out))
1137 (loop (read-line in 'concat) #f))
1138 ((member line '("test-suite html-test\n"
1139 "test-suite hypsrc-test\n"
1140 "test-suite latex-test\n"
1141 "test-suite hoogle-test\n"))
1142 (loop (read-line in 'concat) #t))
1143 (else
1144 (unless deleting? (display line out))
1145 (loop (read-line in 'concat) deleting?)))))))))))
1146 (inputs `(("ghc-haddock-api" ,ghc-haddock-api)))
1147 (native-inputs
1148 `(("ghc-hspec" ,ghc-hspec)))
1149 (home-page "https://www.haskell.org/haddock/")
1150 (synopsis
1151 "Documentation-generation tool for Haskell libraries")
1152 (description
1153 "Haddock is a documentation-generation tool for Haskell libraries.")
1154 (license license:bsd-3)))
1155
1156 (define-public ghc-simple-reflect
1157 (package
1158 (name "ghc-simple-reflect")
1159 (version "0.3.3")
1160 (source
1161 (origin
1162 (method url-fetch)
1163 (uri (string-append
1164 "https://hackage.haskell.org/package/simple-reflect/simple-reflect-"
1165 version
1166 ".tar.gz"))
1167 (sha256
1168 (base32
1169 "0ayvrx5cm8n6db21jiyjmk5h93pw7cz1707hih09hlhk9jh5x0h7"))))
1170 (build-system haskell-build-system)
1171 (home-page
1172 "https://twanvl.nl/blog/haskell/simple-reflection-of-expressions")
1173 (synopsis
1174 "Simple reflection of expressions containing variables")
1175 (description
1176 "This package allows simple reflection of expressions containing
1177 variables. Reflection here means that a Haskell expression is turned into a
1178 string. The primary aim of this package is teaching and understanding; there
1179 are no options for manipulating the reflected expressions beyond showing
1180 them.")
1181 (license license:bsd-3)))
1182
1183 (define-public ghc-haskell-src
1184 (package
1185 (name "ghc-haskell-src")
1186 (version "1.0.3.0")
1187 (source
1188 (origin
1189 (method url-fetch)
1190 (uri (string-append
1191 "https://hackage.haskell.org/package/haskell-src/haskell-src-"
1192 version
1193 ".tar.gz"))
1194 (sha256
1195 (base32
1196 "1g4dj1f0j68bhn4ixfac63wjzy6gsp6kwgxryb1k5nl3i0g99d5l"))))
1197 (build-system haskell-build-system)
1198 (inputs
1199 `(("ghc-happy" ,ghc-happy)
1200 ("ghc-syb" ,ghc-syb)))
1201 (home-page
1202 "https://hackage.haskell.org/package/haskell-src")
1203 (synopsis
1204 "Support for manipulating Haskell source code")
1205 (description
1206 "The @code{haskell-src} package provides support for manipulating Haskell
1207 source code. The package provides a lexer, parser and pretty-printer, and a
1208 definition of a Haskell abstract syntax tree (AST). Common uses of this
1209 package are to parse or generate Haskell 98 code.")
1210 (license license:bsd-3)))
1211
1212 (define-public ghc-alex
1213 (package
1214 (name "ghc-alex")
1215 (version "3.2.4")
1216 (source
1217 (origin
1218 (method url-fetch)
1219 (uri (string-append
1220 "https://hackage.haskell.org/package/alex/alex-"
1221 version
1222 ".tar.gz"))
1223 (sha256
1224 (base32
1225 "0cpjixgsr0b2x4s6hz4aa6gnmjw9i7xd9nlfi8m37zqlidq4v3nm"))))
1226 (build-system haskell-build-system)
1227 (arguments
1228 `(#:phases
1229 (modify-phases %standard-phases
1230 (add-before 'check 'set-check-variables
1231 (lambda _
1232 (setenv "PATH" (string-append (getcwd) "/dist/build/alex:"
1233 (getenv "PATH")))
1234 (setenv "alex_datadir" (string-append (getcwd) "/data"))
1235 #t)))))
1236 (inputs `(("ghc-quickcheck" ,ghc-quickcheck)))
1237 (native-inputs
1238 `(("which" ,which)))
1239 (home-page "https://www.haskell.org/alex/")
1240 (synopsis
1241 "Tool for generating lexical analysers in Haskell")
1242 (description
1243 "Alex is a tool for generating lexical analysers in Haskell. It takes a
1244 description of tokens based on regular expressions and generates a Haskell
1245 module containing code for scanning text efficiently. It is similar to the
1246 tool lex or flex for C/C++.")
1247 (license license:bsd-3)))
1248
1249 (define-public ghc-cgi
1250 (package
1251 (name "ghc-cgi")
1252 (version "3001.3.0.2")
1253 (source
1254 (origin
1255 (method url-fetch)
1256 (uri (string-append
1257 "https://hackage.haskell.org/package/cgi/cgi-"
1258 version
1259 ".tar.gz"))
1260 (sha256
1261 (base32
1262 "1hbpplss1m4rdpm4ibip6fpimlhssqa14fl338kl2jbc463i64cj"))))
1263 (build-system haskell-build-system)
1264 (arguments
1265 `(#:phases
1266 (modify-phases %standard-phases
1267 (add-before 'configure 'update-constraints
1268 (lambda _
1269 (substitute* "cgi.cabal"
1270 (("exceptions < 0\\.9")
1271 "exceptions < 0.11")
1272 (("time >= 1\\.5 && < 1\\.7")
1273 "time >= 1.5 && < 1.9")
1274 (("doctest >= 0\\.8 && < 0\\.12")
1275 "doctest >= 0.8 && < 0.17")
1276 (("QuickCheck >= 2\\.8\\.1 && < 2\\.10")
1277 "QuickCheck >= 2.8.1 && < 2.12")))))))
1278 (inputs
1279 `(("ghc-exceptions" ,ghc-exceptions)
1280 ("ghc-multipart" ,ghc-multipart)
1281 ("ghc-network-uri" ,ghc-network-uri)
1282 ("ghc-network" ,ghc-network)))
1283 (native-inputs
1284 `(("ghc-doctest" ,ghc-doctest)
1285 ("ghc-quickcheck" ,ghc-quickcheck)))
1286 (home-page
1287 "https://github.com/cheecheeo/haskell-cgi")
1288 (synopsis "Library for writing CGI programs")
1289 (description
1290 "This is a Haskell library for writing CGI programs.")
1291 (license license:bsd-3)))
1292
1293 (define-public ghc-cmdargs
1294 (package
1295 (name "ghc-cmdargs")
1296 (version "0.10.20")
1297 (source
1298 (origin
1299 (method url-fetch)
1300 (uri (string-append
1301 "https://hackage.haskell.org/package/cmdargs/cmdargs-"
1302 version ".tar.gz"))
1303 (sha256
1304 (base32
1305 "0cbkmgrcnwgigg6z88y3c09gm7g6dwm7gzbgr53h8k1xik29s9hf"))))
1306 (build-system haskell-build-system)
1307 (home-page
1308 "http://community.haskell.org/~ndm/cmdargs/")
1309 (synopsis "Command line argument processing")
1310 (description
1311 "This library provides an easy way to define command line parsers.")
1312 (license license:bsd-3)))
1313
1314 (define-public ghc-concatenative
1315 (package
1316 (name "ghc-concatenative")
1317 (version "1.0.1")
1318 (source (origin
1319 (method url-fetch)
1320 (uri (string-append
1321 "https://hackage.haskell.org/package/concatenative/concatenative-"
1322 version ".tar.gz"))
1323 (sha256
1324 (base32
1325 "05xwqvcdnk8bsyj698ab9jxpa1nk23pf3m7wi9mwmw0q8n99fngd"))))
1326 (build-system haskell-build-system)
1327 (home-page
1328 "https://patch-tag.com/r/salazar/concatenative/snapshot/current/content/pretty")
1329 (synopsis "Library for postfix control flow")
1330 (description
1331 "Concatenative gives Haskell Factor-style combinators and arrows for
1332 postfix notation. For more information on stack based languages, see
1333 @uref{https://concatenative.org}.")
1334 (license license:bsd-3)))
1335
1336 (define-public ghc-happy
1337 (package
1338 (name "ghc-happy")
1339 (version "1.19.9")
1340 (source
1341 (origin
1342 (method url-fetch)
1343 (uri (string-append
1344 "https://hackage.haskell.org/package/happy/happy-"
1345 version
1346 ".tar.gz"))
1347 (sha256
1348 (base32
1349 "138xpxdb7x62lpmgmb6b3v3vgdqqvqn4273jaap3mjmc2gla709y"))))
1350 (build-system haskell-build-system)
1351 (arguments
1352 `(#:phases
1353 (modify-phases %standard-phases
1354 (add-after 'unpack 'skip-test-issue93
1355 (lambda _
1356 ;; Tests run out of memory on a system with 2GB of available RAM,
1357 ;; in 'issue93.a.hs' and 'issue93.n.hs'.
1358 (substitute* "tests/Makefile"
1359 ((" issue93.y ") " "))
1360 #t)))))
1361 (home-page "https://hackage.haskell.org/package/happy")
1362 (synopsis "Parser generator for Haskell")
1363 (description "Happy is a parser generator for Haskell. Given a grammar
1364 specification in BNF, Happy generates Haskell code to parse the grammar.
1365 Happy works in a similar way to the yacc tool for C.")
1366 (license license:bsd-3)))
1367
1368 (define-public ghc-haskell-lexer
1369 (package
1370 (name "ghc-haskell-lexer")
1371 (version "1.0.2")
1372 (source
1373 (origin
1374 (method url-fetch)
1375 (uri (string-append
1376 "https://hackage.haskell.org/package/haskell-lexer/haskell-lexer-"
1377 version ".tar.gz"))
1378 (sha256
1379 (base32 "1wyxd8x33x4v5vxyzkhm610pl86gbkc8y439092fr1735q9g7kfq"))))
1380 (build-system haskell-build-system)
1381 (home-page "http://hackage.haskell.org/package/haskell-lexer")
1382 (synopsis "Fully compliant Haskell 98 lexer")
1383 (description
1384 "This package provides a fully compliant Haskell 98 lexer.")
1385 (license license:bsd-3)))
1386
1387 (define-public ghc-pretty-show
1388 (package
1389 (name "ghc-pretty-show")
1390 (version "1.7")
1391 (source
1392 (origin
1393 (method url-fetch)
1394 (uri (string-append "https://hackage.haskell.org/package/pretty-show/"
1395 "pretty-show-" version ".tar.gz"))
1396 (sha256
1397 (base32
1398 "0br7pkxqqqhby2j2v1g847lgqsrasx56g1jw3dhmjh4flzs6warq"))))
1399 (build-system haskell-build-system)
1400 (inputs
1401 `(("ghc-haskell-lexer" ,ghc-haskell-lexer)
1402 ("ghc-happy" ,ghc-happy)))
1403 (home-page "http://wiki.github.com/yav/pretty-show")
1404 (synopsis "Tools for working with derived `Show` instances")
1405 (description
1406 "This package provides a library and an executable for working with
1407 derived @code{Show} instances. By using the library, derived @code{Show}
1408 instances can be parsed into a generic data structure. The @code{ppsh} tool
1409 uses the library to produce human-readable versions of @code{Show} instances,
1410 which can be quite handy for debugging Haskell programs. We can also render
1411 complex generic values into an interactive Html page, for easier
1412 examination.")
1413 (license license:expat)))
1414
1415 (define-public ghc-haskell-src-exts
1416 (package
1417 (name "ghc-haskell-src-exts")
1418 (version "1.20.2")
1419 (source
1420 (origin
1421 (method url-fetch)
1422 (uri (string-append
1423 "https://hackage.haskell.org/package/haskell-src-exts/haskell-src-exts-"
1424 version
1425 ".tar.gz"))
1426 (sha256
1427 (base32
1428 "1sm3z4v1p5yffg01ldgavz71s3bvfhjfa13k428rk14bpkl8crlz"))))
1429 (build-system haskell-build-system)
1430 (inputs
1431 `(("cpphs" ,cpphs)
1432 ("ghc-happy" ,ghc-happy)
1433 ("ghc-pretty-show" ,ghc-pretty-show)))
1434 (native-inputs
1435 `(("ghc-smallcheck" ,ghc-smallcheck)
1436 ("ghc-tasty" ,ghc-tasty)
1437 ("ghc-tasty-smallcheck" ,ghc-tasty-smallcheck)
1438 ("ghc-tasty-golden" ,ghc-tasty-golden)))
1439 (home-page "https://github.com/haskell-suite/haskell-src-exts")
1440 (synopsis "Library for manipulating Haskell source")
1441 (description "Haskell-Source with Extensions (HSE, haskell-src-exts) is an
1442 extension of the standard @code{haskell-src} package, and handles most
1443 registered syntactic extensions to Haskell. All extensions implemented in GHC
1444 are supported. Apart from these standard extensions, it also handles regular
1445 patterns as per the HaRP extension as well as HSX-style embedded XML syntax.")
1446 (license license:bsd-3)))
1447
1448 (define-public ghc-haskell-src-exts-util
1449 (package
1450 (name "ghc-haskell-src-exts-util")
1451 (version "0.2.3")
1452 (source
1453 (origin
1454 (method url-fetch)
1455 (uri (string-append "https://hackage.haskell.org/package/"
1456 "haskell-src-exts-util/haskell-src-exts-util-"
1457 version ".tar.gz"))
1458 (sha256
1459 (base32
1460 "1803718paq89f8pdck4mb88hv2k1ah9lxzq0lgjgwi9n88ryycz8"))))
1461 (build-system haskell-build-system)
1462 (inputs
1463 `(("ghc-data-default" ,ghc-data-default)
1464 ("ghc-haskell-src-exts" ,ghc-haskell-src-exts)
1465 ("ghc-semigroups" ,ghc-semigroups)
1466 ("ghc-uniplate" ,ghc-uniplate)))
1467 (home-page "https://github.com/pepeiborra/haskell-src-exts-util")
1468 (synopsis "Helper functions for working with haskell-src-exts trees")
1469 (description
1470 "This package provides helper functions for working with
1471 @code{haskell-src-exts} trees.")
1472 (license license:bsd-3)))
1473
1474 (define-public ghc-refact
1475 (package
1476 (name "ghc-refact")
1477 (version "0.3.0.2")
1478 (source
1479 (origin
1480 (method url-fetch)
1481 (uri (string-append "https://hackage.haskell.org/package/"
1482 "refact/refact-"
1483 version ".tar.gz"))
1484 (sha256
1485 (base32
1486 "0v0zxcx29b8jxs2kgy9csykqcp8kzhdvyylw2xfwmj4pfxr2kl0a"))))
1487 (build-system haskell-build-system)
1488 (home-page "http://hackage.haskell.org/package/refact")
1489 (synopsis "Specify refactorings to perform with apply-refact")
1490 (description
1491 "This library provides a datatype which can be interpreted by
1492 @code{apply-refact}. It exists as a separate library so that applications can
1493 specify refactorings without depending on GHC.")
1494 (license license:bsd-3)))
1495
1496 (define-public hlint
1497 (package
1498 (name "hlint")
1499 (version "2.1.10")
1500 (source
1501 (origin
1502 (method url-fetch)
1503 (uri (string-append
1504 "https://hackage.haskell.org/package/" name
1505 "/" name "-" version ".tar.gz"))
1506 (sha256
1507 (base32
1508 "19as2m9g75cr6n1agzvsij0cvqhb0wbjlk31w4y5d5mns87dki0w"))))
1509 (build-system haskell-build-system)
1510 (inputs
1511 `(("cpphs" ,cpphs)
1512 ("ghc-unordered-containers" ,ghc-unordered-containers)
1513 ("ghc-yaml" ,ghc-yaml)
1514 ("ghc-vector" ,ghc-vector)
1515 ("ghc-data-default" ,ghc-data-default)
1516 ("ghc-cmdargs" ,ghc-cmdargs)
1517 ("ghc-haskell-src-exts" ,ghc-haskell-src-exts)
1518 ("ghc-haskell-src-exts-util" ,ghc-haskell-src-exts-util)
1519 ("ghc-uniplate" ,ghc-uniplate)
1520 ("ghc-ansi-terminal" ,ghc-ansi-terminal)
1521 ("ghc-extra" ,ghc-extra)
1522 ("ghc-refact" ,ghc-refact)
1523 ("ghc-aeson" ,ghc-aeson)
1524 ("hscolour" ,hscolour)))
1525 (home-page "http://community.haskell.org/~ndm/hlint/")
1526 (synopsis "Suggest improvements for Haskell source code")
1527 (description "HLint reads Haskell programs and suggests changes that
1528 hopefully make them easier to read. HLint also makes it easy to disable
1529 unwanted suggestions, and to add your own custom suggestions.")
1530 (license license:bsd-3)))
1531
1532 (define-public ghc-resourcet
1533 (package
1534 (name "ghc-resourcet")
1535 (version "1.2.1")
1536 (source
1537 (origin
1538 (method url-fetch)
1539 (uri (string-append "https://hackage.haskell.org/package/resourcet/"
1540 "resourcet-" version ".tar.gz"))
1541 (sha256
1542 (base32
1543 "0rzjzh34s36ssign7akqjnwnjxf11c3511wk7ky0xxy0dqmc2rg7"))))
1544 (build-system haskell-build-system)
1545 (inputs
1546 `(("ghc-transformers-base" ,ghc-transformers-base)
1547 ("ghc-monad-control" ,ghc-monad-control)
1548 ("ghc-transformers-compat" ,ghc-transformers-compat)
1549 ("ghc-mmorph" ,ghc-mmorph)
1550 ("ghc-exceptions" ,ghc-exceptions)
1551 ("ghc-unliftio-core" ,ghc-unliftio-core)))
1552 (native-inputs
1553 `(("ghc-lifted-base" ,ghc-lifted-base)
1554 ("ghc-hspec" ,ghc-hspec)))
1555 (home-page "https://github.com/snoyberg/conduit")
1556 (synopsis "Deterministic allocation and freeing of scarce resources")
1557 (description "ResourceT is a monad transformer which creates a region of
1558 code where you can safely allocate resources.")
1559 (license license:bsd-3)))
1560
1561 (define-public ghc-objectname
1562 (package
1563 (name "ghc-objectname")
1564 (version "1.1.0.1")
1565 (source
1566 (origin
1567 (method url-fetch)
1568 (uri (string-append
1569 "https://hackage.haskell.org/package/ObjectName/ObjectName-"
1570 version
1571 ".tar.gz"))
1572 (sha256
1573 (base32
1574 "046jm94rmm46cicd31pl54vdvfjvhd9ffbfycy2lxzc0fliyznvj"))))
1575 (build-system haskell-build-system)
1576 (home-page "https://hackage.haskell.org/package/ObjectName")
1577 (synopsis "Helper library for Haskell OpenGL")
1578 (description "This tiny package contains the class ObjectName, which
1579 corresponds to the general notion of explicitly handled identifiers for API
1580 objects, e.g. a texture object name in OpenGL or a buffer object name in
1581 OpenAL.")
1582 (license license:bsd-3)))
1583
1584 (define-public ghc-sdl
1585 (package
1586 (name "ghc-sdl")
1587 (version "0.6.7.0")
1588 (source
1589 (origin
1590 (method url-fetch)
1591 (uri (string-append
1592 "https://hackage.haskell.org/package/SDL/SDL-"
1593 version
1594 ".tar.gz"))
1595 (sha256
1596 (base32
1597 "00y67v80a8l09i3k76z09lg25kw72ivl09nag8ckdlk4a0cfnzfq"))))
1598 (build-system haskell-build-system)
1599 (inputs
1600 `(("sdl" ,sdl)))
1601 (home-page "https://hackage.haskell.org/package/SDL")
1602 (synopsis "LibSDL for Haskell")
1603 (description "Simple DirectMedia Layer (libSDL) is a cross-platform
1604 multimedia library designed to provide low level access to audio, keyboard,
1605 mouse, joystick, 3D hardware via OpenGL, and 2D video framebuffer. It is used
1606 by MPEG playback software, emulators, and many popular games, including the
1607 award winning Linux port of \"Civilization: Call To Power.\"")
1608 (license license:bsd-3)))
1609
1610 (define-public ghc-sdl-mixer
1611 (package
1612 (name "ghc-sdl-mixer")
1613 (version "0.6.3.0")
1614 (source
1615 (origin
1616 (method url-fetch)
1617 (uri (string-append
1618 "https://hackage.haskell.org/package/SDL-mixer/SDL-mixer-"
1619 version
1620 ".tar.gz"))
1621 (sha256
1622 (base32
1623 "0k26hqgdh789ka3mv4dsk6rin6x6vwcs6hjmnsqq7j3mnrh1342r"))))
1624 (build-system haskell-build-system)
1625 (arguments
1626 `(#:configure-flags
1627 (let* ((sdl-mixer (assoc-ref %build-inputs "sdl-mixer"))
1628 (sdl-mixer-include (string-append sdl-mixer "/include/SDL")))
1629 (list (string-append "--extra-include-dirs=" sdl-mixer-include)))))
1630 (inputs
1631 `(("ghc-sdl" ,ghc-sdl)
1632 ("sdl-mixer" ,sdl-mixer)))
1633 (home-page "https://hackage.haskell.org/package/SDL-mixer")
1634 (synopsis "Haskell bindings to libSDL_mixer")
1635 (description "SDL_mixer is a sample multi-channel audio mixer library. It
1636 supports any number of simultaneously playing channels of 16 bit stereo audio,
1637 plus a single channel of music, mixed by the popular MikMod MOD, Timidity
1638 MIDI, Ogg Vorbis, and SMPEG MP3 libraries.")
1639 (license license:bsd-3)))
1640
1641 (define-public ghc-sdl-image
1642 (package
1643 (name "ghc-sdl-image")
1644 (version "0.6.2.0")
1645 (source
1646 (origin
1647 (method url-fetch)
1648 (uri (string-append
1649 "https://hackage.haskell.org/package/SDL-image/SDL-image-"
1650 version
1651 ".tar.gz"))
1652 (sha256
1653 (base32
1654 "1gxwrvswgwjw6g7ym52gik22l9l3ljy592phv97jdmcf3gi6qcg1"))))
1655 (build-system haskell-build-system)
1656 (arguments
1657 `(#:configure-flags
1658 (let* ((sdl-image (assoc-ref %build-inputs "sdl-image"))
1659 (sdl-image-include (string-append sdl-image "/include/SDL")))
1660 (list (string-append "--extra-include-dirs=" sdl-image-include)))))
1661 (inputs
1662 `(("ghc-sdl" ,ghc-sdl)
1663 ("sdl-image" ,sdl-image)))
1664 (home-page "https://hackage.haskell.org/package/SDL-image")
1665 (synopsis "Haskell bindings to libSDL_image")
1666 (description "SDL_image is an image file loading library. It loads images
1667 as SDL surfaces, and supports the following formats: BMP, GIF, JPEG, LBM, PCX,
1668 PNG, PNM, TGA, TIFF, XCF, XPM, XV.")
1669 (license license:bsd-3)))
1670
1671 (define-public ghc-half
1672 (package
1673 (name "ghc-half")
1674 (version "0.3")
1675 (source
1676 (origin
1677 (method url-fetch)
1678 (uri (string-append
1679 "https://hackage.haskell.org/package/half/half-"
1680 version ".tar.gz"))
1681 (sha256
1682 (base32
1683 "14r0nx8hm5fic9gz0ybjjw4kyc758zfgvhhwvzsshpx5caq6zch6"))))
1684 (build-system haskell-build-system)
1685 (native-inputs
1686 `(("ghc-hspec" ,ghc-hspec)
1687 ("ghc-quickcheck" ,ghc-quickcheck)))
1688 (home-page "https://github.com/ekmett/half")
1689 (synopsis "Half-precision floating-point computations")
1690 (description "This library provides a half-precision floating-point
1691 computation library for Haskell.")
1692 (license license:bsd-3)))
1693
1694 (define-public ghc-fixed
1695 (package
1696 (name "ghc-fixed")
1697 (version "0.2.1.1")
1698 (source
1699 (origin
1700 (method url-fetch)
1701 (uri (string-append "https://hackage.haskell.org/package/fixed/fixed-"
1702 version ".tar.gz"))
1703 (sha256
1704 (base32
1705 "1qhmwx8iqshns0crmr9d2f8hm65jxbcp3dvv0c39v34ra7if3a94"))))
1706 (build-system haskell-build-system)
1707 (home-page "https://github.com/ekmett/fixed")
1708 (synopsis "Signed 15.16 precision fixed point arithmetic")
1709 (description
1710 "This package provides functions for signed 15.16 precision fixed point
1711 arithmetic.")
1712 (license license:bsd-3)))
1713
1714 (define-public ghc-openglraw
1715 (package
1716 (name "ghc-openglraw")
1717 (version "3.3.1.0")
1718 (source
1719 (origin
1720 (method url-fetch)
1721 (uri (string-append
1722 "https://hackage.haskell.org/package/OpenGLRaw/OpenGLRaw-"
1723 version
1724 ".tar.gz"))
1725 (sha256
1726 (base32
1727 "1x8w3x308jldj2c1xqcq3a3sc2jc06pdpgqkgjsmixi1skv4a1vb"))))
1728 (build-system haskell-build-system)
1729 (inputs
1730 `(("ghc-half" ,ghc-half)
1731 ("ghc-fixed" ,ghc-fixed)
1732 ("glu" ,glu)))
1733 (home-page "https://www.haskell.org/haskellwiki/Opengl")
1734 (synopsis "Raw Haskell bindings for the OpenGL graphics system")
1735 (description "OpenGLRaw is a raw Haskell binding for the OpenGL 4.5
1736 graphics system and lots of OpenGL extensions. It is basically a 1:1 mapping
1737 of OpenGL's C API, intended as a basis for a nicer interface. OpenGLRaw
1738 offers access to all necessary functions, tokens and types plus a general
1739 facility for loading extension entries. The module hierarchy closely mirrors
1740 the naming structure of the OpenGL extensions, making it easy to find the
1741 right module to import. All API entries are loaded dynamically, so no special
1742 C header files are needed for building this package. If an API entry is not
1743 found at runtime, a userError is thrown.")
1744 (license license:bsd-3)))
1745
1746 (define-public ghc-glut
1747 (package
1748 (name "ghc-glut")
1749 (version "2.7.0.14")
1750 (source
1751 (origin
1752 (method url-fetch)
1753 (uri (string-append
1754 "https://hackage.haskell.org/package/GLUT/GLUT-"
1755 version
1756 ".tar.gz"))
1757 (sha256
1758 (base32
1759 "01i162fly4q1751fp60lgkzlb8kr0qqbvmxj74zc6skb19qggy2w"))))
1760 (build-system haskell-build-system)
1761 (inputs
1762 `(("ghc-statevar" ,ghc-statevar)
1763 ("ghc-opengl" ,ghc-opengl)
1764 ("ghc-openglraw" ,ghc-openglraw)
1765 ("freeglut" ,freeglut)))
1766 (home-page "https://www.haskell.org/haskellwiki/Opengl")
1767 (synopsis "Haskell bindings for the OpenGL Utility Toolkit")
1768 (description "This library provides Haskell bindings for the OpenGL
1769 Utility Toolkit, a window system-independent toolkit for writing OpenGL
1770 programs.")
1771 (license license:bsd-3)))
1772
1773 (define-public ghc-gluraw
1774 (package
1775 (name "ghc-gluraw")
1776 (version "2.0.0.4")
1777 (source
1778 (origin
1779 (method url-fetch)
1780 (uri (string-append
1781 "https://hackage.haskell.org/package/GLURaw/GLURaw-"
1782 version
1783 ".tar.gz"))
1784 (sha256
1785 (base32
1786 "1i2xi35n5z0d372px9mh6cyhgg1m0cfaiy3fnspkf6kbn9fgsqxq"))))
1787 (build-system haskell-build-system)
1788 (inputs
1789 `(("ghc-openglraw" ,ghc-openglraw)))
1790 (home-page "https://www.haskell.org/haskellwiki/Opengl")
1791 (synopsis "Raw Haskell bindings GLU")
1792 (description "GLURaw is a raw Haskell binding for the GLU 1.3 OpenGL
1793 utility library. It is basically a 1:1 mapping of GLU's C API, intended as a
1794 basis for a nicer interface.")
1795 (license license:bsd-3)))
1796
1797 (define-public ghc-opengl
1798 (package
1799 (name "ghc-opengl")
1800 (version "3.0.2.2")
1801 (source
1802 (origin
1803 (method url-fetch)
1804 (uri (string-append
1805 "https://hackage.haskell.org/package/OpenGL/OpenGL-"
1806 version
1807 ".tar.gz"))
1808 (sha256
1809 (base32
1810 "19vxwvx2n8zq2klj176l25n2b64ybp0b8mhm4p46gvpcivz41fjc"))))
1811 (build-system haskell-build-system)
1812 (inputs
1813 `(("ghc-objectname" ,ghc-objectname)
1814 ("ghc-gluraw" ,ghc-gluraw)
1815 ("ghc-statevar" ,ghc-statevar)
1816 ("ghc-openglraw" ,ghc-openglraw)))
1817 (home-page "https://www.haskell.org/haskellwiki/Opengl")
1818 (synopsis "Haskell bindings for the OpenGL graphics system")
1819 (description "This package provides Haskell bindings for the OpenGL
1820 graphics system (GL, version 4.5) and its accompanying utility library (GLU,
1821 version 1.3).")
1822 (license license:bsd-3)))
1823
1824 (define-public ghc-streaming-commons
1825 (package
1826 (name "ghc-streaming-commons")
1827 (version "0.2.1.1")
1828 (source
1829 (origin
1830 (method url-fetch)
1831 (uri (string-append "https://hackage.haskell.org/package/"
1832 "streaming-commons/streaming-commons-"
1833 version ".tar.gz"))
1834 (sha256
1835 (base32
1836 "1lmyx3wkjsayhy5yilzvy0kf8qwmycwlk26r1d8f3cxbfhkr7s52"))))
1837 (build-system haskell-build-system)
1838 (inputs
1839 `(("ghc-async" ,ghc-async)
1840 ("ghc-blaze-builder" ,ghc-blaze-builder)
1841 ("ghc-network" ,ghc-network)
1842 ("ghc-random" ,ghc-random)
1843 ("ghc-zlib" ,ghc-zlib)))
1844 (native-inputs
1845 `(("ghc-quickcheck" ,ghc-quickcheck)
1846 ("ghc-hspec" ,ghc-hspec)
1847 ("hspec-discover" ,hspec-discover)))
1848 (home-page "https://hackage.haskell.org/package/streaming-commons")
1849 (synopsis "Conduit and pipes needed by some streaming data libraries")
1850 (description "This package provides low-dependency functionality commonly
1851 needed by various Haskell streaming data libraries, such as @code{conduit} and
1852 @code{pipe}s.")
1853 (license license:expat)))
1854
1855 (define-public cpphs
1856 (package
1857 (name "cpphs")
1858 (version "1.20.8")
1859 (source
1860 (origin
1861 (method url-fetch)
1862 (uri (string-append
1863 "https://hackage.haskell.org/package/" name "/"
1864 name "-" version ".tar.gz"))
1865 (sha256
1866 (base32
1867 "1bh524asqhk9v1s0wvipl0hgn7l63iy3js867yv0z3h5v2kn8vg5"))))
1868 (build-system haskell-build-system)
1869 (inputs
1870 `(("ghc-polyparse" ,ghc-polyparse)
1871 ("ghc-old-locale" ,ghc-old-locale)
1872 ("ghc-old-time" ,ghc-old-time)))
1873 (home-page "http://projects.haskell.org/cpphs/")
1874 (synopsis "Liberalised re-implementation of cpp, the C pre-processor")
1875 (description "Cpphs is a re-implementation of the C pre-processor that is
1876 both more compatible with Haskell, and itself written in Haskell so that it
1877 can be distributed with compilers. This version of the C pre-processor is
1878 pretty-much feature-complete and compatible with traditional (K&R)
1879 pre-processors. Additional features include: a plain-text mode; an option to
1880 unlit literate code files; and an option to turn off macro-expansion.")
1881 (license (list license:lgpl2.1+ license:gpl3+))))
1882
1883 (define-public ghc-reflection
1884 (package
1885 (name "ghc-reflection")
1886 (version "2.1.4")
1887 (source
1888 (origin
1889 (method url-fetch)
1890 (uri (string-append
1891 "https://hackage.haskell.org/package/reflection/reflection-"
1892 version
1893 ".tar.gz"))
1894 (sha256
1895 (base32
1896 "0kf4a5ijw6jfnfibjcrpdy9vzh1n6v2pxia8dhyyqdissiwc8bzj"))))
1897 (build-system haskell-build-system)
1898 (inputs `(("ghc-tagged" ,ghc-tagged)))
1899 (home-page "https://github.com/ekmett/reflection")
1900 (synopsis "Reify arbitrary terms into types that can be reflected back
1901 into terms")
1902 (description "This package addresses the 'configuration problem' which is
1903 propagating configurations that are available at run-time, allowing multiple
1904 configurations to coexist without resorting to mutable global variables or
1905 @code{System.IO.Unsafe.unsafePerformIO}.")
1906 (license license:bsd-3)))
1907
1908 (define-public ghc-old-locale
1909 (package
1910 (name "ghc-old-locale")
1911 (version "1.0.0.7")
1912 (source
1913 (origin
1914 (method url-fetch)
1915 (uri (string-append
1916 "https://hackage.haskell.org/package/old-locale/old-locale-"
1917 version
1918 ".tar.gz"))
1919 (sha256
1920 (base32 "0l3viphiszvz5wqzg7a45zp40grwlab941q5ay29iyw8p3v8pbyv"))))
1921 (build-system haskell-build-system)
1922 (arguments
1923 `(#:cabal-revision
1924 ("2" "04b9vn007hlvsrx4ksd3r8r3kbyaj2kvwxchdrmd4370qzi8p6gs")))
1925 (home-page "https://hackage.haskell.org/package/old-locale")
1926 (synopsis "Adapt to locale conventions")
1927 (description
1928 "This package provides the ability to adapt to locale conventions such as
1929 date and time formats.")
1930 (license license:bsd-3)))
1931
1932 (define-public ghc-old-time
1933 (package
1934 (name "ghc-old-time")
1935 (version "1.1.0.3")
1936 (source
1937 (origin
1938 (method url-fetch)
1939 (uri (string-append
1940 "https://hackage.haskell.org/package/old-time/old-time-"
1941 version
1942 ".tar.gz"))
1943 (sha256
1944 (base32
1945 "1h9b26s3kfh2k0ih4383w90ibji6n0iwamxp6rfp2lbq1y5ibjqw"))))
1946 (build-system haskell-build-system)
1947 (arguments
1948 `(#:cabal-revision
1949 ("2" "1j6ln1dkvhdvnwl33bp0xf9lhc4sybqk0aw42p8cq81xwwzbn7y9")))
1950 (inputs
1951 `(("ghc-old-locale" ,ghc-old-locale)))
1952 (home-page "https://hackage.haskell.org/package/old-time")
1953 (synopsis "Time compatibility library for Haskell")
1954 (description "Old-time is a package for backwards compatibility with the
1955 old @code{time} library. For new projects, the newer
1956 @uref{https://hackage.haskell.org/package/time, time library} is recommended.")
1957 (license license:bsd-3)))
1958
1959 (define-public ghc-data-default-instances-old-locale
1960 (package
1961 (name "ghc-data-default-instances-old-locale")
1962 (version "0.0.1")
1963 (source
1964 (origin
1965 (method url-fetch)
1966 (uri (string-append
1967 "https://hackage.haskell.org/package/"
1968 "data-default-instances-old-locale/"
1969 "data-default-instances-old-locale-" version ".tar.gz"))
1970 (sha256
1971 (base32 "00h81i5phib741yj517p8mbnc48myvfj8axzsw44k34m48lv1lv0"))))
1972 (build-system haskell-build-system)
1973 (inputs
1974 `(("ghc-data-default-class" ,ghc-data-default-class)
1975 ("ghc-old-locale" ,ghc-old-locale)))
1976 (home-page
1977 "https://hackage.haskell.org/package/data-default-instances-old-locale")
1978 (synopsis "Default instances for types in old-locale")
1979 (description "Provides Default instances for types from the old-locale
1980 package.")
1981 (license license:bsd-3)))
1982
1983 (define-public ghc-dlist
1984 (package
1985 (name "ghc-dlist")
1986 (version "0.8.0.4")
1987 (source
1988 (origin
1989 (method url-fetch)
1990 (uri (string-append
1991 "https://hackage.haskell.org/package/dlist/dlist-"
1992 version
1993 ".tar.gz"))
1994 (sha256
1995 (base32 "0yirrh0s6acjy9hhvf5fqg2d6q5y6gm9xs04v6w1imndh1xqdwdc"))))
1996 (build-system haskell-build-system)
1997 (inputs
1998 `(("ghc-quickcheck" ,ghc-quickcheck)))
1999 (home-page "https://github.com/spl/dlist")
2000 (synopsis "Difference lists")
2001 (description
2002 "Difference lists are a list-like type supporting O(1) append. This is
2003 particularly useful for efficient logging and pretty printing (e.g. with the
2004 Writer monad), where list append quickly becomes too expensive.")
2005 (license license:bsd-3)))
2006
2007 (define-public ghc-extensible-exceptions
2008 (package
2009 (name "ghc-extensible-exceptions")
2010 (version "0.1.1.4")
2011 (source
2012 (origin
2013 (method url-fetch)
2014 (uri (string-append "https://hackage.haskell.org/package/"
2015 "extensible-exceptions/extensible-exceptions-"
2016 version ".tar.gz"))
2017 (sha256
2018 (base32 "1273nqws9ij1rp1bsq5jc7k2jxpqa0svawdbim05lf302y0firbc"))))
2019 (build-system haskell-build-system)
2020 (home-page "https://hackage.haskell.org/package/extensible-exceptions")
2021 (synopsis "Extensible exceptions for Haskell")
2022 (description
2023 "This package provides extensible exceptions for both new and old
2024 versions of GHC (i.e., < 6.10).")
2025 (license license:bsd-3)))
2026
2027 (define-public ghc-echo
2028 (package
2029 (name "ghc-echo")
2030 (version "0.1.3")
2031 (source
2032 (origin
2033 (method url-fetch)
2034 (uri (string-append
2035 "https://hackage.haskell.org/package/echo/echo-"
2036 version ".tar.gz"))
2037 (sha256
2038 (base32
2039 "1vw5ykpwhr39wc0hhcgq3r8dh59zq6ib4zxbz1qd2wl21wqhfkvh"))))
2040 (build-system haskell-build-system)
2041 (arguments
2042 `(#:cabal-revision
2043 ("1" "0br8wfiybcw5hand4imiw0i5hacdmrax1dv8g95f35gazffbx42l")))
2044 (home-page "https://github.com/RyanGlScott/echo")
2045 (synopsis "Echo terminal input portably")
2046 (description "The @code{base} library exposes the @code{hGetEcho} and
2047 @code{hSetEcho} functions for querying and setting echo status, but
2048 unfortunately, neither function works with MinTTY consoles on Windows.
2049 This library provides an alternative interface which works with both
2050 MinTTY and other consoles.")
2051 (license license:bsd-3)))
2052
2053 (define-public ghc-hackage-security
2054 (package
2055 (name "ghc-hackage-security")
2056 (version "0.5.3.0")
2057 (source
2058 (origin
2059 (method url-fetch)
2060 (uri (string-append "https://hackage.haskell.org/package/"
2061 "hackage-security/hackage-security-"
2062 version ".tar.gz"))
2063 (sha256
2064 (base32
2065 "08bwawc7ramgdh54vcly2m9pvfchp0ahhs8117jajni6x4bnx66v"))))
2066 (build-system haskell-build-system)
2067 (arguments
2068 `(#:tests? #f)) ; Tests fail because of framework updates.
2069 (inputs
2070 `(("ghc-base16-bytestring" ,ghc-base16-bytestring)
2071 ("ghc-base64-bytestring" ,ghc-base64-bytestring)
2072 ("ghc-cryptohash-sha256" ,ghc-cryptohash-sha256)
2073 ("ghc-ed25519" ,ghc-ed25519)
2074 ("ghc-network" ,ghc-network)
2075 ("ghc-network-uri" ,ghc-network-uri)
2076 ("ghc-tar" ,ghc-tar)
2077 ("ghc-zlib" ,ghc-zlib)))
2078 (native-inputs
2079 `(("ghc-network-uri" ,ghc-network-uri)
2080 ("ghc-quickcheck" ,ghc-quickcheck)
2081 ("ghc-tar" ,ghc-tar)
2082 ("ghc-tasty" ,ghc-tasty)
2083 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
2084 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
2085 ("ghc-temporary" ,ghc-temporary)
2086 ("ghc-zlib" ,ghc-zlib)))
2087 (home-page "https://github.com/haskell/hackage-security")
2088 (synopsis "Hackage security library")
2089 (description "This Hackage security library provides both server and
2090 client utilities for securing @uref{http://hackage.haskell.org/, the
2091 Hackage package server}. It is based on
2092 @uref{http://theupdateframework.com/, The Update Framework}, a set of
2093 recommendations developed by security researchers at various universities
2094 in the US as well as developers on the @uref{https://www.torproject.org/,
2095 Tor project}.")
2096 (license license:bsd-3)))
2097
2098 (define-public ghc-resolv
2099 (package
2100 (name "ghc-resolv")
2101 (version "0.1.1.1")
2102 (source
2103 (origin
2104 (method url-fetch)
2105 (uri (string-append
2106 "https://hackage.haskell.org/package/resolv/resolv-"
2107 version ".tar.gz"))
2108 (sha256
2109 (base32
2110 "0wh7wj56l3f2bylz563g5g04a4nydj8acv60hpwa7k3mn792xca9"))))
2111 (build-system haskell-build-system)
2112 (arguments
2113 `(#:cabal-revision
2114 ("1" "15ay4n3x8c09cb3h4z1nan84yd3n9zpgvi6h114hk98bq10k8mma")
2115 #:tests? #f)) ; The required test frameworks are too old.
2116 (inputs
2117 `(("ghc-base16-bytestring" ,ghc-base16-bytestring)))
2118 (home-page "https://github.com/haskell/hackage-security")
2119 (synopsis "Domain Name Service (DNS) lookup via @code{libresolv}")
2120 (description "This package implements an API for accessing the
2121 @uref{https://tools.ietf.org/html/rfc1035, Domain Name Service (DNS)}
2122 resolver service via the standard @code{libresolv} system library (whose
2123 API is often available directly via the standard @code{libc} C library) on
2124 Unix systems.")
2125 (license license:gpl3)))
2126
2127 (define-public cabal-install
2128 (package
2129 (name "cabal-install")
2130 (version "2.2.0.0")
2131 (source
2132 (origin
2133 (method url-fetch)
2134 (uri (string-append
2135 "https://hackage.haskell.org/package/cabal-install/cabal-install-"
2136 version
2137 ".tar.gz"))
2138 (sha256
2139 (base32 "1nd3ch7qr4dpfxhgkcq2lnhvszx2kjgnn1kwb44vk9y5jgfs4mn8"))))
2140 (arguments `(#:tests? #f)) ; FIXME: testing libraries are missing.
2141 (build-system haskell-build-system)
2142 (inputs
2143 `(("ghc-async" ,ghc-async)
2144 ("ghc-base16-bytestring" ,ghc-base16-bytestring)
2145 ("ghc-cryptohash-sha256" ,ghc-cryptohash-sha256)
2146 ("ghc-echo" ,ghc-echo)
2147 ("ghc-edit-distance" ,ghc-edit-distance)
2148 ("ghc-hackage-security" ,ghc-hackage-security)
2149 ("ghc-hashable" ,ghc-hashable)
2150 ("ghc-http" ,ghc-http)
2151 ("ghc-network-uri" ,ghc-network-uri)
2152 ("ghc-network" ,ghc-network)
2153 ("ghc-random" ,ghc-random)
2154 ("ghc-resolv" ,ghc-resolv)
2155 ("ghc-tar" ,ghc-tar)
2156 ("ghc-zlib" ,ghc-zlib)))
2157 (home-page "https://www.haskell.org/cabal/")
2158 (synopsis "Command-line interface for Cabal and Hackage")
2159 (description
2160 "The cabal command-line program simplifies the process of managing
2161 Haskell software by automating the fetching, configuration, compilation and
2162 installation of Haskell libraries and programs.")
2163 (license license:bsd-3)))
2164
2165 (define-public cabal-doctest
2166 (package
2167 (name "cabal-doctest")
2168 (version "1.0.6")
2169 (source
2170 (origin
2171 (method url-fetch)
2172 (uri (string-append "https://hackage.haskell.org/package/"
2173 "cabal-doctest/cabal-doctest-"
2174 version ".tar.gz"))
2175 (sha256
2176 (base32
2177 "0bgd4jdmzxq5y465r4sf4jv2ix73yvblnr4c9wyazazafddamjny"))))
2178 (build-system haskell-build-system)
2179 (arguments
2180 `(#:cabal-revision
2181 ("1" "1bk85avgc93yvcggwbk01fy8nvg6753wgmaanhkry0hz55h7mpld")))
2182 (home-page "https://github.com/phadej/cabal-doctest")
2183 (synopsis "Setup.hs helper for running doctests")
2184 (description
2185 "To properly work, the @code{doctest} package needs plenty of
2186 configuration. This library provides the common bits for writing custom
2187 @file{Setup.hs} files.")
2188 (license license:bsd-3)))
2189
2190 (define-public ghc-parsec-numbers
2191 (package
2192 (name "ghc-parsec-numbers")
2193 (version "0.1.0")
2194 (source
2195 (origin
2196 (method url-fetch)
2197 (uri (string-append "https://hackage.haskell.org/package/"
2198 "parsec-numbers/parsec-numbers-" version ".tar.gz"))
2199 (sha256
2200 (base32 "1gzy4v3r02kvdxvgg1nj83mmb6aph2v4ilf9c7y6nbvi2x49l0bp"))))
2201 (build-system haskell-build-system)
2202 (home-page "https://hackage.haskell.org/package/parsec-numbers")
2203 (synopsis "Utilities for parsing numbers from strings")
2204 (description
2205 "This package provides the number parsers without the need to use a large
2206 (and unportable) token parser.")
2207 (license license:bsd-3)))
2208
2209 (define-public ghc-paths
2210 (package
2211 (name "ghc-paths")
2212 (version "0.1.0.9")
2213 (outputs '("out" "doc"))
2214 (source
2215 (origin
2216 (method url-fetch)
2217 (uri (string-append
2218 "https://hackage.haskell.org/package/ghc-paths/ghc-paths-"
2219 version
2220 ".tar.gz"))
2221 (sha256
2222 (base32
2223 "0ibrr1dxa35xx20cpp8jzgfak1rdmy344dfwq4vlq013c6w8z9mg"))))
2224 (build-system haskell-build-system)
2225 (home-page "https://github.com/simonmar/ghc-paths")
2226 (synopsis
2227 "Knowledge of GHC's installation directories")
2228 (description
2229 "Knowledge of GHC's installation directories.")
2230 (license license:bsd-3)))
2231
2232 (define-public ghc-utf8-string
2233 (package
2234 (name "ghc-utf8-string")
2235 (version "1.0.1.1")
2236 (source
2237 (origin
2238 (method url-fetch)
2239 (uri (string-append
2240 "https://hackage.haskell.org/package/utf8-string/utf8-string-"
2241 version
2242 ".tar.gz"))
2243 (sha256
2244 (base32 "0h7imvxkahiy8pzr8cpsimifdfvv18lizrb33k6mnq70rcx9w2zv"))))
2245 (build-system haskell-build-system)
2246 (arguments
2247 `(#:cabal-revision
2248 ("3" "02vhj5gykkqa2dyn7s6gn8is1b5fdn9xcqqvlls268g7cpv6rk38")))
2249 (home-page "https://github.com/glguy/utf8-string/")
2250 (synopsis "Support for reading and writing UTF8 Strings")
2251 (description
2252 "A UTF8 layer for Strings. The utf8-string package provides operations
2253 for encoding UTF8 strings to Word8 lists and back, and for reading and writing
2254 UTF8 without truncation.")
2255 (license license:bsd-3)))
2256
2257 (define-public ghc-setenv
2258 (package
2259 (name "ghc-setenv")
2260 (version "0.1.1.3")
2261 (source
2262 (origin
2263 (method url-fetch)
2264 (uri (string-append
2265 "https://hackage.haskell.org/package/setenv/setenv-"
2266 version
2267 ".tar.gz"))
2268 (sha256
2269 (base32
2270 "0cnbgrvb9byyahb37zlqrj05rj25v190crgcw8wmlgf0mwwxyn73"))))
2271 (build-system haskell-build-system)
2272 (home-page "https://hackage.haskell.org/package/setenv")
2273 (synopsis "Library for setting environment variables")
2274 (description "This package provides a Haskell library for setting
2275 environment variables.")
2276 (license license:expat)))
2277
2278 (define-public ghc-setlocale
2279 (package
2280 (name "ghc-setlocale")
2281 (version "1.0.0.8")
2282 (source (origin
2283 (method url-fetch)
2284 (uri (string-append
2285 "https://hackage.haskell.org/package/setlocale-"
2286 version "/setlocale-" version ".tar.gz"))
2287 (sha256
2288 (base32
2289 "0sdrsmkhw08483d73ysgm2926fdbhii61br03lqpqw0lfzj4ilbd"))))
2290 (build-system haskell-build-system)
2291 (home-page "https://hackage.haskell.org/package/setlocale")
2292 (synopsis "Haskell bindings to setlocale")
2293 (description "This package provides Haskell bindings to the
2294 @code{setlocale} C function.")
2295 (license license:bsd-3)))
2296
2297 (define-public ghc-x11
2298 (package
2299 (name "ghc-x11")
2300 (version "1.9")
2301 (source
2302 (origin
2303 (method url-fetch)
2304 (uri (string-append "https://hackage.haskell.org/package/X11/"
2305 "X11-" version ".tar.gz"))
2306 (sha256
2307 (base32 "1f8dy6ckkyvpcv7zlniyv01cqjb9lgqscm8pml58cvwc7n38w4qh"))))
2308 (build-system haskell-build-system)
2309 (inputs
2310 `(("libx11" ,libx11)
2311 ("libxrandr" ,libxrandr)
2312 ("libxinerama" ,libxinerama)
2313 ("libxscrnsaver" ,libxscrnsaver)
2314 ("ghc-data-default" ,ghc-data-default)))
2315 (home-page "https://github.com/haskell-pkg-janitors/X11")
2316 (synopsis "Bindings to the X11 graphics library")
2317 (description
2318 "This package provides Haskell bindings to the X11 graphics library. The
2319 bindings are a direct translation of the C bindings.")
2320 (license license:bsd-3)))
2321
2322 (define-public ghc-x11-xft
2323 (package
2324 (name "ghc-x11-xft")
2325 (version "0.3.1")
2326 (source
2327 (origin
2328 (method url-fetch)
2329 (uri (string-append "https://hackage.haskell.org/package/X11-xft/"
2330 "X11-xft-" version ".tar.gz"))
2331 (sha256
2332 (base32 "1lgqb0s2qfwwgbvwxhjbi23rbwamzdi0l0slfr20c3jpcbp3zfjf"))))
2333 (inputs
2334 `(("ghc-x11" ,ghc-x11)
2335 ("ghc-utf8-string" ,ghc-utf8-string)
2336 ("libx11" ,libx11)
2337 ("libxft" ,libxft)
2338 ("xorgproto" ,xorgproto)))
2339 (native-inputs
2340 `(("pkg-config" ,pkg-config)))
2341 (build-system haskell-build-system)
2342 (home-page "https://hackage.haskell.org/package/X11-xft")
2343 (synopsis "Bindings to Xft")
2344 (description
2345 "Bindings to the Xft, X Free Type interface library, and some Xrender
2346 parts.")
2347 (license license:lgpl2.1)))
2348
2349 (define-public ghc-stringbuilder
2350 (package
2351 (name "ghc-stringbuilder")
2352 (version "0.5.1")
2353 (source
2354 (origin
2355 (method url-fetch)
2356 (uri (string-append
2357 "https://hackage.haskell.org/package/stringbuilder/stringbuilder-"
2358 version
2359 ".tar.gz"))
2360 (sha256
2361 (base32
2362 "1fh3csx1wcssn8xyvl4ip4aprh9l4qyz2kk8mgjvqvc0vb2bsy6q"))))
2363 (build-system haskell-build-system)
2364 (arguments `(#:tests? #f)) ; FIXME: circular dependencies with tests
2365 ; enabled
2366 (home-page "https://hackage.haskell.org/package/stringbuilder")
2367 (synopsis "Writer monad for multi-line string literals")
2368 (description "This package provides a writer monad for multi-line string
2369 literals.")
2370 (license license:expat)))
2371
2372 (define-public ghc-zlib
2373 (package
2374 (name "ghc-zlib")
2375 (version "0.6.2")
2376 (outputs '("out" "doc"))
2377 (source
2378 (origin
2379 (method url-fetch)
2380 (uri (string-append
2381 "https://hackage.haskell.org/package/zlib/zlib-"
2382 version
2383 ".tar.gz"))
2384 (sha256
2385 (base32
2386 "1vbzf0awb6zb456xf48za1kl22018646cfzq4frvxgb9ay97vk0d"))))
2387 (build-system haskell-build-system)
2388 (arguments
2389 `(#:phases
2390 (modify-phases %standard-phases
2391 (add-before 'configure 'strip-test-framework-constraints
2392 (lambda _
2393 (substitute* "zlib.cabal"
2394 (("tasty >= 0\\.8 && < 0\\.12") "tasty")
2395 (("tasty-hunit >= 0\\.8 && < 0\\.10") "tasty-hunit")
2396 (("tasty-quickcheck == 0\\.8\\.\\*") "tasty-quickcheck")))))))
2397 (inputs `(("zlib" ,zlib)))
2398 (native-inputs
2399 `(("ghc-quickcheck" ,ghc-quickcheck)
2400 ("ghc-tasty" ,ghc-tasty)
2401 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
2402 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
2403 (home-page "https://hackage.haskell.org/package/zlib")
2404 (synopsis
2405 "Compression and decompression in the gzip and zlib formats")
2406 (description
2407 "This package provides a pure interface for compressing and decompressing
2408 streams of data represented as lazy @code{ByteString}s. It uses the zlib C
2409 library so it has high performance. It supports the @code{zlib}, @code{gzip}
2410 and @code{raw} compression formats. It provides a convenient high level API
2411 suitable for most tasks and for the few cases where more control is needed it
2412 provides access to the full zlib feature set.")
2413 (license license:bsd-3)))
2414
2415 (define-public ghc-parallel
2416 (package
2417 (name "ghc-parallel")
2418 (version "3.2.2.0")
2419 (outputs '("out" "doc"))
2420 (source
2421 (origin
2422 (method url-fetch)
2423 (uri (string-append
2424 "https://hackage.haskell.org/package/parallel/parallel-"
2425 version
2426 ".tar.gz"))
2427 (sha256
2428 (base32
2429 "1xkfi96w6yfpppd0nw1rnszdxmvifwzm699ilv6332ra3akm610p"))))
2430 (build-system haskell-build-system)
2431 (home-page "https://hackage.haskell.org/package/parallel")
2432 (synopsis "Parallel programming library")
2433 (description
2434 "This package provides a library for parallel programming.")
2435 (license license:bsd-3)))
2436
2437 (define-public ghc-safesemaphore
2438 (package
2439 (name "ghc-safesemaphore")
2440 (version "0.10.1")
2441 (source
2442 (origin
2443 (method url-fetch)
2444 (uri (string-append "https://hackage.haskell.org/package/"
2445 "SafeSemaphore/SafeSemaphore-" version ".tar.gz"))
2446 (sha256
2447 (base32
2448 "0rpg9j6fy70i0b9dkrip9d6wim0nac0snp7qzbhykjkqlcvvgr91"))))
2449 (build-system haskell-build-system)
2450 (native-inputs
2451 `(("ghc-hunit" ,ghc-hunit)))
2452 (home-page "https://github.com/ChrisKuklewicz/SafeSemaphore")
2453 (synopsis "Exception safe semaphores")
2454 (description "This library provides exception safe semaphores that can be
2455 used in place of @code{QSem}, @code{QSemN}, and @code{SampleVar}, all of which
2456 are not exception safe and can be broken by @code{killThread}.")
2457 (license license:bsd-3)))
2458
2459 (define-public ghc-text-binary
2460 (package
2461 (name "ghc-text-binary")
2462 (version "0.2.1.1")
2463 (source
2464 (origin
2465 (method url-fetch)
2466 (uri (string-append "https://hackage.haskell.org/package/"
2467 "text-binary/text-binary-"
2468 version ".tar.gz"))
2469 (sha256
2470 (base32
2471 "18gl10pwg3qwsk0za3c70j4n6a9129wwf1b7d3a461h816yv55xn"))))
2472 (build-system haskell-build-system)
2473 (home-page "https://github.com/kawu/text-binary")
2474 (synopsis "Binary instances for text types")
2475 (description
2476 "This package provides a compatibility layer providing @code{Binary}
2477 instances for strict and lazy text types for versions older than 1.2.1 of the
2478 text package.")
2479 (license license:bsd-2)))
2480
2481 (define-public ghc-strict
2482 (package
2483 (name "ghc-strict")
2484 (version "0.3.2")
2485 (source
2486 (origin
2487 (method url-fetch)
2488 (uri (string-append "https://hackage.haskell.org/package/strict/strict-"
2489 version ".tar.gz"))
2490 (sha256
2491 (base32 "08cjajqz9h47fkq98mlf3rc8n5ghbmnmgn8pfsl3bdldjdkmmlrc"))))
2492 (build-system haskell-build-system)
2493 (home-page "https://hackage.haskell.org/package/strict")
2494 (synopsis "Strict data types and String IO")
2495 (description
2496 "This package provides strict versions of some standard Haskell data
2497 types, such as pairs, @code{Maybe} and @code{Either}. It also contains strict
2498 IO operations.")
2499 (license license:bsd-3)))
2500
2501 (define-public ghc-hashable
2502 (package
2503 (name "ghc-hashable")
2504 (version "1.2.7.0")
2505 (outputs '("out" "doc"))
2506 (source
2507 (origin
2508 (method url-fetch)
2509 (uri (string-append
2510 "https://hackage.haskell.org/package/hashable/hashable-"
2511 version
2512 ".tar.gz"))
2513 (sha256
2514 (base32
2515 "1gra8gq3kb7b2sd845h55yxlrfqx3ii004c6vjhga8v0b30fzdgc"))))
2516 (build-system haskell-build-system)
2517 (inputs
2518 `(("ghc-random" ,ghc-random)))
2519 (native-inputs
2520 `(("ghc-test-framework" ,ghc-test-framework)
2521 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
2522 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)
2523 ("ghc-hunit" ,ghc-hunit)
2524 ("ghc-quickcheck" ,ghc-quickcheck)))
2525 (home-page "https://github.com/tibbe/hashable")
2526 (synopsis "Class for types that can be converted to a hash value")
2527 (description
2528 "This package defines a class, @code{Hashable}, for types that can be
2529 converted to a hash value. This class exists for the benefit of hashing-based
2530 data structures. The package provides instances for basic types and a way to
2531 combine hash values.")
2532 (license license:bsd-3)))
2533
2534 (define-public ghc-hashable-bootstrap
2535 (package
2536 (inherit ghc-hashable)
2537 (name "ghc-hashable-bootstrap")
2538 (arguments `(#:tests? #f))
2539 (native-inputs '())
2540 (properties '((hidden? #t)))))
2541
2542 (define-public ghc-hashable-time
2543 (package
2544 (name "ghc-hashable-time")
2545 (version "0.2.0.1")
2546 (source
2547 (origin
2548 (method url-fetch)
2549 (uri (string-append
2550 "https://hackage.haskell.org/package/hashable-time/hashable-time-"
2551 version
2552 ".tar.gz"))
2553 (sha256
2554 (base32
2555 "0k932nyd08l3xxbh2g3n76py2f4kd9yw4s5a065vjz0xp6wjnxdm"))))
2556 (build-system haskell-build-system)
2557 (arguments
2558 `(#:cabal-revision
2559 ("1" "0rv40xkg3gj8jnqsry1gq3f5s5la6d5arg8fzkirnwdpcgha1as6")))
2560 (inputs `(("ghc-hashable" ,ghc-hashable)))
2561 (home-page "http://hackage.haskell.org/package/hashable-time")
2562 (synopsis "Hashable instances for Data.Time")
2563 (description
2564 "This package provides @code{Hashable} instances for types in
2565 @code{Data.Time}.")
2566 (license license:bsd-3)))
2567
2568 (define-public ghc-data-hash
2569 (package
2570 (name "ghc-data-hash")
2571 (version "0.2.0.1")
2572 (source
2573 (origin
2574 (method url-fetch)
2575 (uri (string-append "https://hackage.haskell.org/package/data-hash"
2576 "/data-hash-" version ".tar.gz"))
2577 (sha256
2578 (base32 "1ghbqvc48gf9p8wiy71hdpaj7by3b9cw6wgwi3qqz8iw054xs5wi"))))
2579 (build-system haskell-build-system)
2580 (inputs
2581 `(("ghc-quickcheck" ,ghc-quickcheck)
2582 ("ghc-test-framework" ,ghc-test-framework)
2583 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
2584 (home-page "https://hackage.haskell.org/package/data-hash")
2585 (synopsis "Combinators for building fast hashing functions")
2586 (description
2587 "This package provides combinators for building fast hashing functions.
2588 It includes hashing functions for all basic Haskell98 types.")
2589 (license license:bsd-3)))
2590
2591 (define-public ghc-murmur-hash
2592 (package
2593 (name "ghc-murmur-hash")
2594 (version "0.1.0.9")
2595 (source
2596 (origin
2597 (method url-fetch)
2598 (uri (string-append "https://hackage.haskell.org/package/murmur-hash"
2599 "/murmur-hash-" version ".tar.gz"))
2600 (sha256
2601 (base32 "1bb58kfnzvx3mpc0rc0dhqc1fk36nm8prd6gvf20gk6lxaadpfc9"))))
2602 (build-system haskell-build-system)
2603 (home-page "https://github.com/nominolo/murmur-hash")
2604 (synopsis "MurmurHash2 implementation for Haskell")
2605 (description
2606 "This package provides an implementation of MurmurHash2, a good, fast,
2607 general-purpose, non-cryptographic hashing function. See
2608 @url{https://sites.google.com/site/murmurhash/} for details. This
2609 implementation is pure Haskell, so it might be a bit slower than a C FFI
2610 binding.")
2611 (license license:bsd-3)))
2612
2613 (define-public ghc-random
2614 (package
2615 (name "ghc-random")
2616 (version "1.1")
2617 (outputs '("out" "doc"))
2618 (source
2619 (origin
2620 (method url-fetch)
2621 (uri (string-append
2622 "https://hackage.haskell.org/package/random/random-"
2623 version
2624 ".tar.gz"))
2625 (sha256
2626 (base32 "0nis3lbkp8vfx8pkr6v7b7kr5m334bzb0fk9vxqklnp2aw8a865p"))))
2627 (build-system haskell-build-system)
2628 (home-page "https://hackage.haskell.org/package/random")
2629 (synopsis "Random number library")
2630 (description "This package provides a basic random number generation
2631 library, including the ability to split random number generators.")
2632 (license license:bsd-3)))
2633
2634 (define-public ghc-primitive
2635 (package
2636 (name "ghc-primitive")
2637 (version "0.6.4.0")
2638 (outputs '("out" "doc"))
2639 (source
2640 (origin
2641 (method url-fetch)
2642 (uri (string-append
2643 "https://hackage.haskell.org/package/primitive/primitive-"
2644 version
2645 ".tar.gz"))
2646 (sha256
2647 (base32
2648 "0r0cda7acvplgwaxy69kviv4jp7kkfi038by68gj4yfx4iwszgjc"))))
2649 (build-system haskell-build-system)
2650 (home-page
2651 "https://github.com/haskell/primitive")
2652 (synopsis "Primitive memory-related operations")
2653 (description
2654 "This package provides various primitive memory-related operations.")
2655 (license license:bsd-3)))
2656
2657 (define-public ghc-tf-random
2658 (package
2659 (name "ghc-tf-random")
2660 (version "0.5")
2661 (outputs '("out" "doc"))
2662 (source
2663 (origin
2664 (method url-fetch)
2665 (uri (string-append
2666 "https://hackage.haskell.org/package/tf-random/tf-random-"
2667 version
2668 ".tar.gz"))
2669 (sha256
2670 (base32 "0445r2nns6009fmq0xbfpyv7jpzwv0snccjdg7hwj4xk4z0cwc1f"))))
2671 (build-system haskell-build-system)
2672 (inputs
2673 `(("ghc-primitive" ,ghc-primitive)
2674 ("ghc-random" ,ghc-random)))
2675 (home-page "https://hackage.haskell.org/package/tf-random")
2676 (synopsis "High-quality splittable pseudorandom number generator")
2677 (description "This package contains an implementation of a high-quality
2678 splittable pseudorandom number generator. The generator is based on a
2679 cryptographic hash function built on top of the ThreeFish block cipher. See
2680 the paper \"Splittable Pseudorandom Number Generators Using Cryptographic
2681 Hashing\" by Claessen, Pałka for details and the rationale of the design.")
2682 (license license:bsd-3)))
2683
2684 (define-public ghc-transformers-base
2685 (package
2686 (name "ghc-transformers-base")
2687 (version "0.4.5.2")
2688 (source
2689 (origin
2690 (method url-fetch)
2691 (uri (string-append
2692 "https://hackage.haskell.org/package/transformers-base/transformers-base-"
2693 version
2694 ".tar.gz"))
2695 (sha256
2696 (base32
2697 "1s256bi0yh0x2hp2gwd30f3mg1cv53zz397dv1yhfsnfzmihrj6h"))))
2698 (build-system haskell-build-system)
2699 (inputs
2700 `(("ghc-transformers-compat" ,ghc-transformers-compat)))
2701 (home-page
2702 "https://hackage.haskell.org/package/transformers-compat")
2703 (synopsis
2704 "Backported transformer library")
2705 (description
2706 "Backported versions of types that were added to transformers in
2707 transformers 0.3 and 0.4 for users who need strict transformers 0.2 or 0.3
2708 compatibility to run on old versions of the platform.")
2709 (license license:bsd-3)))
2710
2711 (define-public ghc-transformers-compat
2712 (package
2713 (name "ghc-transformers-compat")
2714 (version "0.6.2")
2715 (source
2716 (origin
2717 (method url-fetch)
2718 (uri (string-append
2719 "https://hackage.haskell.org/package/transformers-compat"
2720 "/transformers-compat-" version ".tar.gz"))
2721 (sha256
2722 (base32
2723 "1gp4a8kvniwgm8947ghb4iwv4b7wd6ry4kvv4nfnym4agf5j41nw"))))
2724 (build-system haskell-build-system)
2725 (home-page "https://github.com/ekmett/transformers-compat/")
2726 (synopsis "Small compatibility shim between transformers 0.3 and 0.4")
2727 (description "This package includes backported versions of types that were
2728 added to transformers in transformers 0.3 and 0.4 for users who need strict
2729 transformers 0.2 or 0.3 compatibility to run on old versions of the platform,
2730 but also need those types.")
2731 (license license:bsd-3)))
2732
2733 (define-public ghc-unix-time
2734 (package
2735 (name "ghc-unix-time")
2736 (version "0.3.8")
2737 (source
2738 (origin
2739 (method url-fetch)
2740 (uri (string-append
2741 "https://hackage.haskell.org/package/unix-time/unix-time-"
2742 version
2743 ".tar.gz"))
2744 (sha256
2745 (base32
2746 "051slgpid5cxiaw203ky0ql3823h28fcjs08axkzd4265wrvv8fw"))))
2747 (build-system haskell-build-system)
2748 (arguments
2749 `(#:tests? #f)) ; FIXME: Test fails with "System.Time not found". This
2750 ; is weird, that should be provided by GHC 7.10.2.
2751 (inputs
2752 `(("ghc-old-time" ,ghc-old-time)
2753 ("ghc-old-locale" ,ghc-old-locale)))
2754 (home-page "https://hackage.haskell.org/package/unix-time")
2755 (synopsis "Unix time parser/formatter and utilities")
2756 (description "This library provides fast parsing and formatting utilities
2757 for Unix time in Haskell.")
2758 (license license:bsd-3)))
2759
2760 (define-public ghc-unix-compat
2761 (package
2762 (name "ghc-unix-compat")
2763 (version "0.5.1")
2764 (source
2765 (origin
2766 (method url-fetch)
2767 (uri (string-append
2768 "https://hackage.haskell.org/package/unix-compat/unix-compat-"
2769 version
2770 ".tar.gz"))
2771 (sha256
2772 (base32
2773 "0llwl7rp63fy2ychwdclz1afj45pbin5pfl01dvn6rwhvmwhr7d3"))))
2774 (build-system haskell-build-system)
2775 (home-page
2776 "https://github.com/jystic/unix-compat")
2777 (synopsis "Portable POSIX-compatibility layer")
2778 (description
2779 "This package provides portable implementations of parts of the unix
2780 package. This package re-exports the unix package when available. When it
2781 isn't available, portable implementations are used.")
2782 (license license:bsd-3)))
2783
2784 (define-public ghc-indents
2785 (package
2786 (name "ghc-indents")
2787 (version "0.5.0.0")
2788 (source (origin
2789 (method url-fetch)
2790 (uri (string-append
2791 "https://hackage.haskell.org/package/indents/indents-"
2792 version ".tar.gz"))
2793 (sha256
2794 (base32
2795 "1ly3v41jacc6lrsvg4j3m5a6zs90gr8dyif5m6bf34hj1k5cgg0n"))))
2796 (build-system haskell-build-system)
2797 ;; This package needs an older version of tasty.
2798 (arguments '(#:tests? #f))
2799 (inputs
2800 `(("ghc-concatenative" ,ghc-concatenative)))
2801 (native-inputs
2802 `(("ghc-tasty" ,ghc-tasty)
2803 ("ghc-tasty-hunit" ,ghc-tasty-hunit)))
2804 (home-page "http://patch-tag.com/r/salazar/indents")
2805 (synopsis "Indentation sensitive parser-combinators for parsec")
2806 (description
2807 "This library provides functions for use in parsing indentation sensitive
2808 contexts. It parses blocks of lines all indented to the same level as well as
2809 lines continued at an indented level below.")
2810 (license license:bsd-3)))
2811
2812 (define-public ghc-iproute
2813 (package
2814 (name "ghc-iproute")
2815 (version "1.7.5")
2816 (source
2817 (origin
2818 (method url-fetch)
2819 (uri (string-append
2820 "https://hackage.haskell.org/package/iproute/iproute-"
2821 version
2822 ".tar.gz"))
2823 (sha256
2824 (base32
2825 "1vw1nm3s8vz1hqnjnqd3wh5rr4q3m2r4izn5ynhf93h9185qwqzd"))))
2826 (build-system haskell-build-system)
2827 (arguments `(#:tests? #f)) ; FIXME: Tests cannot find System.ByteOrder,
2828 ; exported by ghc-byteorder. Doctest issue.
2829 (inputs
2830 `(("ghc-appar" ,ghc-appar)
2831 ("ghc-byteorder" ,ghc-byteorder)
2832 ("ghc-network" ,ghc-network)
2833 ("ghc-safe" ,ghc-safe)))
2834 (home-page "https://www.mew.org/~kazu/proj/iproute/")
2835 (synopsis "IP routing table")
2836 (description "IP Routing Table is a tree of IP ranges to search one of
2837 them on the longest match base. It is a kind of TRIE with one way branching
2838 removed. Both IPv4 and IPv6 are supported.")
2839 (license license:bsd-3)))
2840
2841 (define-public ghc-iwlib
2842 (package
2843 (name "ghc-iwlib")
2844 (version "0.1.0")
2845 (source
2846 (origin
2847 (method url-fetch)
2848 (uri (string-append "https://hackage.haskell.org/package/iwlib/iwlib-"
2849 version ".tar.gz"))
2850 (sha256
2851 (base32 "0khmfwql4vwj55idsxmhjhrbqzfir3g9wm5lmpvnf77mm95cfpdz"))))
2852 (build-system haskell-build-system)
2853 (inputs
2854 `(("wireless-tools" ,wireless-tools)))
2855 (home-page "https://github.com/jaor/iwlib")
2856 (synopsis "Haskell binding to the iw wireless networking library")
2857 (description
2858 "IWlib is a thin Haskell binding to the iw C library. It provides
2859 information about the current wireless network connections, and adapters on
2860 supported systems.")
2861 (license license:bsd-3)))
2862
2863 (define-public ghc-regex-base
2864 (package
2865 (name "ghc-regex-base")
2866 (version "0.93.2")
2867 (source
2868 (origin
2869 (method url-fetch)
2870 (uri (string-append
2871 "https://hackage.haskell.org/package/regex-base/regex-base-"
2872 version
2873 ".tar.gz"))
2874 (sha256
2875 (base32
2876 "0y1j4h2pg12c853nzmczs263di7xkkmlnsq5dlp5wgbgl49mgp10"))))
2877 (build-system haskell-build-system)
2878 (home-page
2879 "https://sourceforge.net/projects/lazy-regex")
2880 (synopsis "Replaces/Enhances Text.Regex")
2881 (description "@code{Text.Regex.Base} provides the interface API for
2882 regex-posix, regex-pcre, regex-parsec, regex-tdfa, regex-dfa.")
2883 (license license:bsd-3)))
2884
2885 (define-public ghc-regex-posix
2886 (package
2887 (name "ghc-regex-posix")
2888 (version "0.95.2")
2889 (source
2890 (origin
2891 (method url-fetch)
2892 (uri (string-append
2893 "https://hackage.haskell.org/package/regex-posix/regex-posix-"
2894 version
2895 ".tar.gz"))
2896 (sha256
2897 (base32
2898 "0gkhzhj8nvfn1ija31c7xnl6p0gadwii9ihyp219ck2arlhrj0an"))))
2899 (build-system haskell-build-system)
2900 (inputs
2901 `(("ghc-regex-base" ,ghc-regex-base)))
2902 (home-page "https://sourceforge.net/projects/lazy-regex")
2903 (synopsis "POSIX regular expressions for Haskell")
2904 (description "This library provides the POSIX regex backend used by the
2905 Haskell library @code{regex-base}.")
2906 (license license:bsd-3)))
2907
2908 (define-public ghc-regex-compat
2909 (package
2910 (name "ghc-regex-compat")
2911 (version "0.95.1")
2912 (source
2913 (origin
2914 (method url-fetch)
2915 (uri (string-append
2916 "https://hackage.haskell.org/package/regex-compat/regex-compat-"
2917 version
2918 ".tar.gz"))
2919 (sha256
2920 (base32
2921 "0fwmima3f04p9y4h3c23493n1xj629ia2dxaisqm6rynljjv2z6m"))))
2922 (build-system haskell-build-system)
2923 (inputs
2924 `(("ghc-regex-base" ,ghc-regex-base)
2925 ("ghc-regex-posix" ,ghc-regex-posix)))
2926 (home-page "https://sourceforge.net/projects/lazy-regex")
2927 (synopsis "Replaces/Enhances Text.Regex")
2928 (description "This library provides one module layer over
2929 @code{regex-posix} to replace @code{Text.Regex}.")
2930 (license license:bsd-3)))
2931
2932 (define-public ghc-regex-tdfa-text
2933 (package
2934 (name "ghc-regex-tdfa-text")
2935 (version "1.0.0.3")
2936 (source
2937 (origin
2938 (method url-fetch)
2939 (uri (string-append
2940 "https://hackage.haskell.org/package/regex-tdfa-text/"
2941 "regex-tdfa-text-" version ".tar.gz"))
2942 (sha256
2943 (base32
2944 "0090g6lgbdm9lywpqm2d3724nnnh24nx3vnlqr96qc2w486pmmrq"))))
2945 (build-system haskell-build-system)
2946 (inputs
2947 `(("ghc-regex-base" ,ghc-regex-base)
2948 ("ghc-regex-tdfa" ,ghc-regex-tdfa)))
2949 (home-page
2950 "http://hackage.haskell.org/package/regex-tdfa-text")
2951 (synopsis "Text interface for regex-tdfa")
2952 (description
2953 "This provides an extra text interface for regex-tdfa.")
2954 (license license:bsd-3)))
2955
2956 (define-public ghc-regex
2957 (package
2958 (name "ghc-regex")
2959 (version "1.0.1.3")
2960 (source
2961 (origin
2962 (method url-fetch)
2963 (uri (string-append "https://hackage.haskell.org/package/regex/"
2964 "regex-" version ".tar.gz"))
2965 (sha256
2966 (base32
2967 "1sjkpkgv4phy5b5v2lr89x4vx4dh44pj0sbvlsp6n86w9v6v4jwb"))))
2968 (build-system haskell-build-system)
2969 (arguments
2970 `(#:phases
2971 (modify-phases %standard-phases
2972 (add-after 'unpack 'relax-dependencies
2973 (lambda _
2974 (substitute* "regex.cabal"
2975 (("base-compat.*>=.*0.6.*")
2976 "base-compat >= 0.6\n")
2977 (("template-haskell.*>=.*2.7.*")
2978 "template-haskell >= 2.7\n"))
2979 #t)))))
2980 (inputs
2981 `(("ghc-base-compat" ,ghc-base-compat)
2982 ("ghc-hashable" ,ghc-hashable)
2983 ("ghc-regex-base" ,ghc-regex-base)
2984 ("ghc-regex-pcre-builtin" ,ghc-regex-pcre-builtin)
2985 ("ghc-regex-tdfa" ,ghc-regex-tdfa)
2986 ("ghc-regex-tdfa-text" ,ghc-regex-tdfa-text)
2987 ("ghc-time-locale-compat" ,ghc-time-locale-compat)
2988 ("ghc-unordered-containers" ,ghc-unordered-containers)
2989 ("ghc-utf8-string" ,ghc-utf8-string)))
2990 (home-page "http://regex.uk")
2991 (synopsis "Toolkit for regex-base")
2992 (description
2993 "This package provides a regular expression toolkit for @code{regex-base}
2994 with compile-time checking of regular expression syntax, data types for
2995 matches and captures, a text replacement toolkit, portable options, high-level
2996 AWK-like tools for building text processing apps, regular expression macros
2997 with parsers and test bench, comprehensive documentation, tutorials and
2998 copious examples.")
2999 (license license:bsd-3)))
3000
3001 (define-public ghc-parsers
3002 (package
3003 (name "ghc-parsers")
3004 (version "0.12.9")
3005 (source
3006 (origin
3007 (method url-fetch)
3008 (uri (string-append
3009 "https://hackage.haskell.org/package/parsers/parsers-"
3010 version
3011 ".tar.gz"))
3012 (sha256
3013 (base32
3014 "1r05sc1mcglk8w596kq9a1brfn9c2vll8lq16j07ln0vsz4jzrc1"))))
3015 (build-system haskell-build-system)
3016 (arguments `(#:tests? #f)) ; FIXME: Test fails with "cannot satisfy
3017 ; -package attoparsec-0.13.0.1"
3018 (inputs
3019 `(("ghc-base-orphans" ,ghc-base-orphans)
3020 ("ghc-attoparsec" ,ghc-attoparsec)
3021 ("ghc-scientific" ,ghc-scientific)
3022 ("ghc-charset" ,ghc-charset)
3023 ("ghc-unordered-containers" ,ghc-unordered-containers)))
3024 (home-page "https://github.com/ekmett/parsers/")
3025 (synopsis "Parsing combinators")
3026 (description "This library provides convenient combinators for working
3027 with and building parsing combinator libraries. Given a few simple instances,
3028 you get access to a large number of canned definitions. Instances exist for
3029 the parsers provided by @code{parsec}, @code{attoparsec} and @code{base}'s
3030 @code{Text.Read}.")
3031 (license license:bsd-3)))
3032
3033 (define-public ghc-trifecta
3034 (package
3035 (name "ghc-trifecta")
3036 (version "2")
3037 (source (origin
3038 (method url-fetch)
3039 (uri (string-append
3040 "https://hackage.haskell.org/package/trifecta/"
3041 "trifecta-" version ".tar.gz"))
3042 (sha256
3043 (base32
3044 "0hznd8i65s81xy13i2qc7cvipw3lfb2yhkv53apbdsh6sbljz5sk"))))
3045 (build-system haskell-build-system)
3046 (inputs
3047 `(("ghc-reducers" ,ghc-reducers)
3048 ("ghc-semigroups" ,ghc-semigroups)
3049 ("ghc-ansi-wl-pprint" ,ghc-ansi-wl-pprint)
3050 ("ghc-ansi-terminal" ,ghc-ansi-terminal)
3051 ("ghc-blaze-builder" ,ghc-blaze-builder)
3052 ("ghc-blaze-html" ,ghc-blaze-html)
3053 ("ghc-blaze-markup" ,ghc-blaze-markup)
3054 ("ghc-charset" ,ghc-charset)
3055 ("ghc-comonad" ,ghc-comonad)
3056 ("ghc-fingertree" ,ghc-fingertree)
3057 ("ghc-hashable" ,ghc-hashable)
3058 ("ghc-lens" ,ghc-lens)
3059 ("ghc-parsers" ,ghc-parsers)
3060 ("ghc-profunctors" ,ghc-profunctors)
3061 ("ghc-unordered-containers" ,ghc-unordered-containers)
3062 ("ghc-utf8-string" ,ghc-utf8-string)))
3063 (native-inputs
3064 `(("cabal-doctest" ,cabal-doctest)
3065 ("ghc-doctest" ,ghc-doctest)
3066 ("ghc-quickcheck" ,ghc-quickcheck)))
3067 (home-page "https://github.com/ekmett/trifecta/")
3068 (synopsis "Parser combinator library with convenient diagnostics")
3069 (description "Trifecta is a modern parser combinator library for Haskell,
3070 with slicing and Clang-style colored diagnostics.")
3071 (license license:bsd-3)))
3072
3073 (define-public ghc-time-locale-compat
3074 (package
3075 (name "ghc-time-locale-compat")
3076 (version "0.1.1.5")
3077 (source
3078 (origin
3079 (method url-fetch)
3080 (uri (string-append "https://hackage.haskell.org/package/"
3081 "time-locale-compat/time-locale-compat-"
3082 version ".tar.gz"))
3083 (sha256
3084 (base32
3085 "0b2hmj8wwrfkndwzgm11qr496ca2ahwdxcj3m0ii91bxvrk1bzq7"))))
3086 (build-system haskell-build-system)
3087 (inputs `(("ghc-old-locale" ,ghc-old-locale)))
3088 (home-page "https://github.com/khibino/haskell-time-locale-compat")
3089 (synopsis "Compatibility of TimeLocale between old-locale and time-1.5")
3090 (description "This package contains a wrapped name module for
3091 @code{TimeLocale}.")
3092 (license license:bsd-3)))
3093
3094 (define-public ghc-attoparsec
3095 (package
3096 (name "ghc-attoparsec")
3097 (version "0.13.2.2")
3098 (source
3099 (origin
3100 (method url-fetch)
3101 (uri (string-append
3102 "https://hackage.haskell.org/package/attoparsec/attoparsec-"
3103 version
3104 ".tar.gz"))
3105 (sha256
3106 (base32
3107 "0j6qcwd146yzlkc9mcvzvnixsyl65n2a68l28322q5v9p4g4g4yx"))))
3108 (build-system haskell-build-system)
3109 (arguments
3110 `(#:phases
3111 (modify-phases %standard-phases
3112 (add-after 'unpack 'patch-for-newer-quickcheck
3113 (lambda _
3114 (substitute* "attoparsec.cabal"
3115 (("QuickCheck >= 2\\.7 && < 2\\.10")
3116 "QuickCheck >= 2.7 && < 2.12"))
3117 ;; This test fails because of the newer QuickCheck:
3118 ;; <https://github.com/bos/attoparsec/issues/134>.
3119 (substitute* "tests/QC/ByteString.hs"
3120 ((", testProperty \"satisfyWith\" satisfyWith")
3121 "")))))))
3122 (inputs
3123 `(("ghc-scientific" ,ghc-scientific)))
3124 (native-inputs
3125 `(("ghc-tasty" ,ghc-tasty)
3126 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
3127 ("ghc-quickcheck" ,ghc-quickcheck)
3128 ("ghc-quickcheck-unicode" ,ghc-quickcheck-unicode)
3129 ("ghc-vector" ,ghc-vector)))
3130 (home-page "https://github.com/bos/attoparsec")
3131 (synopsis "Fast combinator parsing for bytestrings and text")
3132 (description "This library provides a fast parser combinator library,
3133 aimed particularly at dealing efficiently with network protocols and
3134 complicated text/binary file formats.")
3135 (license license:bsd-3)))
3136
3137 (define-public ghc-attoparsec-bootstrap
3138 (package
3139 (inherit ghc-attoparsec)
3140 (name "ghc-attoparsec-bootstrap")
3141 (arguments `(#:tests? #f))
3142 (inputs
3143 `(("ghc-scientific" ,ghc-scientific-bootstrap)))
3144 (native-inputs '())
3145 (properties '(hidden? #t))))
3146
3147 (define-public ghc-zip-archive
3148 (package
3149 (name "ghc-zip-archive")
3150 (version "0.3.3")
3151 (source
3152 (origin
3153 (method url-fetch)
3154 (uri (string-append
3155 "https://hackage.haskell.org/package/zip-archive/zip-archive-"
3156 version
3157 ".tar.gz"))
3158 (sha256
3159 (base32
3160 "0kf8xyac168bng8a0za2jwrbss7a4ralvci9g54hnvl0gkkxx2lq"))))
3161 (build-system haskell-build-system)
3162 (inputs
3163 `(("ghc-digest" ,ghc-digest)
3164 ("ghc-temporary" ,ghc-temporary)
3165 ("ghc-zlib" ,ghc-zlib)))
3166 (native-inputs
3167 `(("ghc-hunit" ,ghc-hunit)
3168 ("unzip" ,unzip)))
3169 (home-page "https://hackage.haskell.org/package/zip-archive")
3170 (synopsis "Zip archive library for Haskell")
3171 (description "The zip-archive library provides functions for creating,
3172 modifying, and extracting files from zip archives in Haskell.")
3173 (license license:bsd-3)))
3174
3175 (define-public ghc-distributive
3176 (package
3177 (name "ghc-distributive")
3178 (version "0.5.3")
3179 (source
3180 (origin
3181 (method url-fetch)
3182 (uri (string-append
3183 "https://hackage.haskell.org/package/distributive/distributive-"
3184 version
3185 ".tar.gz"))
3186 (sha256
3187 (base32
3188 "0y566r97sfyvhsmd4yxiz4ns2mqgwf5bdbp56wgxl6wlkidq0wwi"))))
3189 (build-system haskell-build-system)
3190 (arguments
3191 `(#:cabal-revision
3192 ("6" "06bd38rf31yrvvy989r44pm0id3dsxwcp6nxg7wk6ccj3n2b8rzk")))
3193 (inputs
3194 `(("ghc-tagged" ,ghc-tagged)
3195 ("ghc-base-orphans" ,ghc-base-orphans)
3196 ("ghc-transformers-compat" ,ghc-transformers-compat)
3197 ("ghc-semigroups" ,ghc-semigroups)
3198 ("ghc-generic-deriving" ,ghc-generic-deriving)))
3199 (native-inputs
3200 `(("cabal-doctest" ,cabal-doctest)
3201 ("ghc-doctest" ,ghc-doctest)
3202 ("ghc-hspec" ,ghc-hspec)
3203 ("hspec-discover" ,hspec-discover)))
3204 (home-page "https://github.com/ekmett/distributive/")
3205 (synopsis "Distributive functors for Haskell")
3206 (description "This package provides distributive functors for Haskell.
3207 Dual to @code{Traversable}.")
3208 (license license:bsd-3)))
3209
3210 (define-public ghc-cereal
3211 (package
3212 (name "ghc-cereal")
3213 (version "0.5.7.0")
3214 (source
3215 (origin
3216 (method url-fetch)
3217 (uri (string-append
3218 "https://hackage.haskell.org/package/cereal/cereal-"
3219 version
3220 ".tar.gz"))
3221 (sha256
3222 (base32
3223 "1j7imh2mzqcljld7sx0av69699955rpy3hzivi5723i6a9nszgbs"))))
3224 (build-system haskell-build-system)
3225 (native-inputs
3226 `(("ghc-quickcheck" ,ghc-quickcheck)
3227 ("ghc-fail" ,ghc-fail)
3228 ("ghc-test-framework" ,ghc-test-framework)
3229 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
3230 (home-page "https://hackage.haskell.org/package/cereal")
3231 (synopsis "Binary serialization library")
3232 (description "This package provides a binary serialization library,
3233 similar to @code{binary}, that introduces an @code{isolate} primitive for
3234 parser isolation, and labeled blocks for better error messages.")
3235 (license license:bsd-3)))
3236
3237 (define-public ghc-comonad
3238 (package
3239 (name "ghc-comonad")
3240 (version "5.0.4")
3241 (source
3242 (origin
3243 (method url-fetch)
3244 (uri (string-append
3245 "https://hackage.haskell.org/package/comonad/comonad-"
3246 version
3247 ".tar.gz"))
3248 (sha256
3249 (base32
3250 "09g870c4flp4k3fgbibsd0mmfjani1qcpbcl685v8x89kxzrva3q"))))
3251 (build-system haskell-build-system)
3252 (native-inputs
3253 `(("cabal-doctest" ,cabal-doctest)
3254 ("ghc-doctest" ,ghc-doctest)))
3255 (inputs
3256 `(("ghc-contravariant" ,ghc-contravariant)
3257 ("ghc-distributive" ,ghc-distributive)
3258 ("ghc-semigroups" ,ghc-semigroups)
3259 ("ghc-tagged" ,ghc-tagged)
3260 ("ghc-transformers-compat" ,ghc-transformers-compat)))
3261 (home-page "https://github.com/ekmett/comonad/")
3262 (synopsis "Comonads for Haskell")
3263 (description "This library provides @code{Comonad}s for Haskell.")
3264 (license license:bsd-3)))
3265
3266 (define-public hscolour
3267 (package
3268 (name "hscolour")
3269 (version "1.24.4")
3270 (source
3271 (origin
3272 (method url-fetch)
3273 (uri (string-append
3274 "https://hackage.haskell.org/package/hscolour/hscolour-"
3275 version
3276 ".tar.gz"))
3277 (sha256
3278 (base32
3279 "079jwph4bwllfp03yfr26s5zc6m6kw3nhb1cggrifh99haq34cr4"))))
3280 (build-system haskell-build-system)
3281 (home-page "https://hackage.haskell.org/package/hscolour")
3282 (synopsis "Script to colourise Haskell code")
3283 (description "HSColour is a small Haskell script to colourise Haskell
3284 code. It currently has six output formats: ANSI terminal codes (optionally
3285 XTerm-256colour codes), HTML 3.2 with font tags, HTML 4.01 with CSS, HTML 4.01
3286 with CSS and mouseover annotations, XHTML 1.0 with inline CSS styling, LaTeX,
3287 and mIRC chat codes.")
3288 (license license:bsd-3)))
3289
3290 (define-public ghc-polyparse
3291 (package
3292 (name "ghc-polyparse")
3293 (version "1.12")
3294 (source
3295 (origin
3296 (method url-fetch)
3297 (uri (string-append
3298 "https://hackage.haskell.org/package/polyparse/polyparse-"
3299 version
3300 ".tar.gz"))
3301 (sha256
3302 (base32
3303 "05dya1vdvq29hkhkdlsglzhw7bdn51rvs1javs0q75nf99c66k7m"))))
3304 (build-system haskell-build-system)
3305 (home-page
3306 "http://code.haskell.org/~malcolm/polyparse/")
3307 (synopsis
3308 "Alternative parser combinator libraries")
3309 (description
3310 "This package provides a variety of alternative parser combinator
3311 libraries, including the original HuttonMeijer set. The Poly sets have
3312 features like good error reporting, arbitrary token type, running state, lazy
3313 parsing, and so on. Finally, Text.Parse is a proposed replacement for the
3314 standard Read class, for better deserialisation of Haskell values from
3315 Strings.")
3316 (license license:lgpl2.1)))
3317
3318 (define-public ghc-extra
3319 (package
3320 (name "ghc-extra")
3321 (version "1.6.9")
3322 (source
3323 (origin
3324 (method url-fetch)
3325 (uri (string-append
3326 "https://hackage.haskell.org/package/extra/extra-"
3327 version
3328 ".tar.gz"))
3329 (sha256
3330 (base32
3331 "0xxcpb00pgwi9cmy6a7ghh6rblxry42p8pz5ssfgj20fs1xwzj1b"))))
3332 (build-system haskell-build-system)
3333 (inputs
3334 `(("ghc-clock" ,ghc-clock)
3335 ("ghc-quickcheck" ,ghc-quickcheck)))
3336 (home-page "https://github.com/ndmitchell/extra")
3337 (synopsis "Extra Haskell functions")
3338 (description "This library provides extra functions for the standard
3339 Haskell libraries. Most functions are simple additions, filling out missing
3340 functionality. A few functions are available in later versions of GHC, but
3341 this package makes them available back to GHC 7.2.")
3342 (license license:bsd-3)))
3343
3344 (define-public ghc-profunctors
3345 (package
3346 (name "ghc-profunctors")
3347 (version "5.2.2")
3348 (source
3349 (origin
3350 (method url-fetch)
3351 (uri (string-append
3352 "https://hackage.haskell.org/package/profunctors/profunctors-"
3353 version
3354 ".tar.gz"))
3355 (sha256
3356 (base32
3357 "0s1pwjidbn761xk43pmzyvn99hm3psdifjd78ylki7f97aiyd0g9"))))
3358 (build-system haskell-build-system)
3359 (arguments
3360 `(#:cabal-revision
3361 ("2" "1ywlg9z8nlhd2avgb8c6gbkv8zyk7hvc25926bafyg0m0k8y1amq")))
3362 (inputs
3363 `(("ghc-base-orphans" ,ghc-base-orphans)
3364 ("ghc-bifunctors" ,ghc-bifunctors)
3365 ("ghc-comonad" ,ghc-comonad)
3366 ("ghc-contravariant" ,ghc-contravariant)
3367 ("ghc-distributive" ,ghc-distributive)
3368 ("ghc-semigroups" ,ghc-semigroups)
3369 ("ghc-tagged" ,ghc-tagged)))
3370 (home-page "https://github.com/ekmett/profunctors/")
3371 (synopsis "Profunctors for Haskell")
3372 (description "This library provides profunctors for Haskell.")
3373 (license license:bsd-3)))
3374
3375 (define-public ghc-reducers
3376 (package
3377 (name "ghc-reducers")
3378 (version "3.12.3")
3379 (source
3380 (origin
3381 (method url-fetch)
3382 (uri (string-append
3383 "https://hackage.haskell.org/package/reducers/reducers-"
3384 version
3385 ".tar.gz"))
3386 (sha256
3387 (base32
3388 "09wf8pl9ycglcv6qj5ba26gkg2s5iy81hsx9xp0q8na0cwvp71ki"))))
3389 (build-system haskell-build-system)
3390 (inputs
3391 `(("ghc-fingertree" ,ghc-fingertree)
3392 ("ghc-hashable" ,ghc-hashable)
3393 ("ghc-unordered-containers" ,ghc-unordered-containers)
3394 ("ghc-semigroupoids" ,ghc-semigroupoids)
3395 ("ghc-semigroups" ,ghc-semigroups)))
3396 (home-page "https://github.com/ekmett/reducers/")
3397 (synopsis "Semigroups, specialized containers and a general map/reduce framework")
3398 (description "This library provides various semigroups, specialized
3399 containers and a general map/reduce framework for Haskell.")
3400 (license license:bsd-3)))
3401
3402 (define-public ghc-appar
3403 (package
3404 (name "ghc-appar")
3405 (version "0.1.4")
3406 (source
3407 (origin
3408 (method url-fetch)
3409 (uri (string-append
3410 "https://hackage.haskell.org/package/appar/appar-"
3411 version
3412 ".tar.gz"))
3413 (sha256
3414 (base32
3415 "09jb9ij78fdkz2qk66rw99q19qnm504dpv0yq0pjsl6xwjmndsjq"))))
3416 (build-system haskell-build-system)
3417 (home-page
3418 "https://hackage.haskell.org/package/appar")
3419 (synopsis "Simple applicative parser")
3420 (description "This package provides a simple applicative parser in Parsec
3421 style.")
3422 (license license:bsd-3)))
3423
3424 (define-public ghc-safe
3425 (package
3426 (name "ghc-safe")
3427 (version "0.3.17")
3428 (source
3429 (origin
3430 (method url-fetch)
3431 (uri (string-append
3432 "https://hackage.haskell.org/package/safe/safe-"
3433 version
3434 ".tar.gz"))
3435 (sha256
3436 (base32
3437 "0p3yaf5slvyz1cyy51jq64c5rlp8yzwim8iy2dlnk42if4gc9ibr"))))
3438 (build-system haskell-build-system)
3439 (native-inputs
3440 `(("ghc-quickcheck" ,ghc-quickcheck)))
3441 (home-page "https://github.com/ndmitchell/safe#readme")
3442 (synopsis "Library of safe (exception free) functions")
3443 (description "This library provides wrappers around @code{Prelude} and
3444 @code{Data.List} functions, such as @code{head} and @code{!!}, that can throw
3445 exceptions.")
3446 (license license:bsd-3)))
3447
3448 (define-public ghc-generic-deriving
3449 (package
3450 (name "ghc-generic-deriving")
3451 (version "1.12.2")
3452 (source
3453 (origin
3454 (method url-fetch)
3455 (uri (string-append
3456 "https://hackage.haskell.org/package/generic-deriving/generic-deriving-"
3457 version
3458 ".tar.gz"))
3459 (sha256
3460 (base32
3461 "1i7d6cpj9yhaqb79zays3nqchhaacacjz9bkc0zlwj73y5gvi22n"))))
3462 (build-system haskell-build-system)
3463 (inputs
3464 `(("ghc-th-abstraction" ,ghc-th-abstraction)))
3465 (native-inputs
3466 `(("ghc-hspec" ,ghc-hspec)
3467 ("hspec-discover" ,hspec-discover)))
3468 (home-page "https://hackage.haskell.org/package/generic-deriving")
3469 (synopsis "Generalise the deriving mechanism to arbitrary classes")
3470 (description "This package provides functionality for generalising the
3471 deriving mechanism in Haskell to arbitrary classes.")
3472 (license license:bsd-3)))
3473
3474 (define-public ghc-pcre-light
3475 (package
3476 (name "ghc-pcre-light")
3477 (version "0.4.0.4")
3478 (source
3479 (origin
3480 (method url-fetch)
3481 (uri (string-append
3482 "https://hackage.haskell.org/package/pcre-light/pcre-light-"
3483 version
3484 ".tar.gz"))
3485 (sha256
3486 (base32
3487 "0xcyi1fivwg7a92mch5bcqzmrfxzqj42rmb3m8kgs61x4qwpxj82"))))
3488 (build-system haskell-build-system)
3489 (inputs
3490 `(("pcre" ,pcre)))
3491 (native-inputs
3492 `(("pkg-config" ,pkg-config)))
3493 (home-page "https://github.com/Daniel-Diaz/pcre-light")
3494 (synopsis "Haskell library for Perl 5 compatible regular expressions")
3495 (description "This package provides a small, efficient, and portable regex
3496 library for Perl 5 compatible regular expressions. The PCRE library is a set
3497 of functions that implement regular expression pattern matching using the same
3498 syntax and semantics as Perl 5.")
3499 (license license:bsd-3)))
3500
3501 (define-public ghc-logict
3502 (package
3503 (name "ghc-logict")
3504 (version "0.6.0.2")
3505 (source
3506 (origin
3507 (method url-fetch)
3508 (uri (string-append
3509 "https://hackage.haskell.org/package/logict/logict-"
3510 version
3511 ".tar.gz"))
3512 (sha256
3513 (base32
3514 "07hnirv6snnym2r7iijlfz00b60jpy2856zvqxh989q0in7bd0hi"))))
3515 (build-system haskell-build-system)
3516 (home-page "http://code.haskell.org/~dolio/")
3517 (synopsis "Backtracking logic-programming monad")
3518 (description "This library provides a continuation-based, backtracking,
3519 logic programming monad. An adaptation of the two-continuation implementation
3520 found in the paper \"Backtracking, Interleaving, and Terminating Monad
3521 Transformers\" available @uref{http://okmij.org/ftp/papers/LogicT.pdf,
3522 online}.")
3523 (license license:bsd-3)))
3524
3525 (define-public ghc-xml
3526 (package
3527 (name "ghc-xml")
3528 (version "1.3.14")
3529 (source
3530 (origin
3531 (method url-fetch)
3532 (uri (string-append
3533 "https://hackage.haskell.org/package/xml/xml-"
3534 version
3535 ".tar.gz"))
3536 (sha256
3537 (base32
3538 "0g814lj7vaxvib2g3r734221k80k7ap9czv9hinifn8syals3l9j"))))
3539 (build-system haskell-build-system)
3540 (home-page "http://code.galois.com")
3541 (synopsis "Simple XML library for Haskell")
3542 (description "This package provides a simple XML library for Haskell.")
3543 (license license:bsd-3)))
3544
3545 (define-public ghc-feed
3546 (package
3547 (name "ghc-feed")
3548 (version "1.0.0.0")
3549 (source
3550 (origin
3551 (method url-fetch)
3552 (uri (string-append "https://hackage.haskell.org/package/"
3553 "feed/feed-" version ".tar.gz"))
3554 (sha256
3555 (base32
3556 "05rgg7x1984mgfhkmz792xj8lhwjgznixhygzr8blf517lns2nck"))))
3557 (build-system haskell-build-system)
3558 (arguments
3559 `(#:cabal-revision
3560 ("4" "0baavcavm3ywykcr9cm07aqr7sna98jba2n68lyn3kany8ri214d")))
3561 (inputs
3562 `(("ghc-base-compat" ,ghc-base-compat)
3563 ("ghc-old-locale" ,ghc-old-locale)
3564 ("ghc-old-time" ,ghc-old-time)
3565 ("ghc-safe" ,ghc-safe)
3566 ("ghc-time-locale-compat" ,ghc-time-locale-compat)
3567 ("ghc-utf8-string" ,ghc-utf8-string)
3568 ("ghc-xml-conduit" ,ghc-xml-conduit)
3569 ("ghc-xml-types" ,ghc-xml-types)))
3570 (native-inputs
3571 `(("ghc-hunit" ,ghc-hunit)
3572 ("ghc-test-framework" ,ghc-test-framework)
3573 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)))
3574 (home-page "https://github.com/bergmark/feed")
3575 (synopsis "Haskell package for handling various syndication formats")
3576 (description "This Haskell package includes tools for generating and
3577 consuming feeds in both RSS (Really Simple Syndication) and Atom format.")
3578 (license license:bsd-3)))
3579
3580 (define-public ghc-exceptions
3581 (package
3582 (name "ghc-exceptions")
3583 (version "0.10.0")
3584 (source
3585 (origin
3586 (method url-fetch)
3587 (uri (string-append
3588 "https://hackage.haskell.org/package/exceptions/exceptions-"
3589 version
3590 ".tar.gz"))
3591 (sha256
3592 (base32
3593 "1ms9zansv0pwzwdjncvx4kf18lnkjy2p61hvjhvxmjx5bqp93p8y"))))
3594 (build-system haskell-build-system)
3595 (native-inputs
3596 `(("ghc-quickcheck" ,ghc-quickcheck)
3597 ("ghc-test-framework" ,ghc-test-framework)
3598 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
3599 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
3600 (inputs
3601 `(("ghc-transformers-compat" ,ghc-transformers-compat)))
3602 (home-page "https://github.com/ekmett/exceptions/")
3603 (synopsis "Extensible optionally-pure exceptions")
3604 (description "This library provides extensible optionally-pure exceptions
3605 for Haskell.")
3606 (license license:bsd-3)))
3607
3608 (define-public ghc-temporary
3609 (package
3610 (name "ghc-temporary")
3611 (version "1.3")
3612 (source
3613 (origin
3614 (method url-fetch)
3615 (uri (string-append
3616 "https://hackage.haskell.org/package/temporary/temporary-"
3617 version
3618 ".tar.gz"))
3619 (sha256
3620 (base32
3621 "144qhwfwg37l3k313raf4ssiz16jbgwlm1nf4flgqpsbd69jji4c"))))
3622 (build-system haskell-build-system)
3623 (inputs
3624 `(("ghc-exceptions" ,ghc-exceptions)
3625 ("ghc-random" ,ghc-random)))
3626 (native-inputs
3627 `(("ghc-base-compat" ,ghc-base-compat)
3628 ("ghc-tasty" ,ghc-tasty)
3629 ("ghc-tasty-hunit" ,ghc-tasty-hunit)))
3630 (home-page "https://www.github.com/batterseapower/temporary")
3631 (synopsis "Temporary file and directory support")
3632 (description "The functions for creating temporary files and directories
3633 in the Haskelll base library are quite limited. This library just repackages
3634 the Cabal implementations of its own temporary file and folder functions so
3635 that you can use them without linking against Cabal or depending on it being
3636 installed.")
3637 (license license:bsd-3)))
3638
3639 (define-public ghc-temporary-rc
3640 (package
3641 (name "ghc-temporary-rc")
3642 (version "1.2.0.3")
3643 (source
3644 (origin
3645 (method url-fetch)
3646 (uri (string-append
3647 "https://hackage.haskell.org/package/temporary-rc/temporary-rc-"
3648 version
3649 ".tar.gz"))
3650 (sha256
3651 (base32
3652 "1nqih0qks439k3pr5kmbbc8rjdw730slrxlflqb27fbxbzb8skqs"))))
3653 (build-system haskell-build-system)
3654 (inputs `(("ghc-exceptions" ,ghc-exceptions)))
3655 (home-page
3656 "https://www.github.com/feuerbach/temporary")
3657 (synopsis
3658 "Portable temporary file and directory support")
3659 (description
3660 "The functions for creating temporary files and directories in the base
3661 library are quite limited. The unixutils package contains some good ones, but
3662 they aren't portable to Windows. This library just repackages the Cabal
3663 implementations of its own temporary file and folder functions so that you can
3664 use them without linking against Cabal or depending on it being installed.
3665 This is a better maintained fork of the \"temporary\" package.")
3666 (license license:bsd-3)))
3667
3668 (define-public ghc-smallcheck
3669 (package
3670 (name "ghc-smallcheck")
3671 (version "1.1.5")
3672 (source
3673 (origin
3674 (method url-fetch)
3675 (uri (string-append
3676 "https://hackage.haskell.org/package/smallcheck/smallcheck-"
3677 version
3678 ".tar.gz"))
3679 (sha256
3680 (base32
3681 "195fj7w3v03d1y1nm2ylavzrwxjcdbq0lb6zsw1dwyx5jmwfc84h"))))
3682 (build-system haskell-build-system)
3683 (inputs
3684 `(("ghc-logict" ,ghc-logict)))
3685 (home-page
3686 "https://github.com/feuerbach/smallcheck")
3687 (synopsis "Property-based testing library")
3688 (description "SmallCheck is a testing library that allows to verify
3689 properties for all test cases up to some depth. The test cases are generated
3690 automatically by SmallCheck.")
3691 (license license:bsd-3)))
3692
3693 (define-public ghc-silently
3694 (package
3695 (name "ghc-silently")
3696 (version "1.2.5")
3697 (source
3698 (origin
3699 (method url-fetch)
3700 (uri (string-append
3701 "https://hackage.haskell.org/package/silently/silently-"
3702 version
3703 ".tar.gz"))
3704 (sha256
3705 (base32
3706 "0f9qm3f7y0hpxn6mddhhg51mm1r134qkvd2kr8r6192ka1ijbxnf"))))
3707 (build-system haskell-build-system)
3708 (arguments `(#:tests? #f)) ;; circular dependency with nanospec
3709 ;; (inputs
3710 ;; `(("ghc-temporary" ,ghc-temporary)))
3711 (home-page "https://github.com/hspec/silently")
3712 (synopsis "Prevent writing to stdout")
3713 (description "This package provides functions to prevent or capture
3714 writing to stdout and other handles.")
3715 (license license:bsd-3)))
3716
3717 (define-public ghc-case-insensitive
3718 (package
3719 (name "ghc-case-insensitive")
3720 (version "1.2.0.11")
3721 (outputs '("out" "doc"))
3722 (source
3723 (origin
3724 (method url-fetch)
3725 (uri (string-append
3726 "https://hackage.haskell.org/package/case-insensitive/case-insensitive-"
3727 version
3728 ".tar.gz"))
3729 (sha256
3730 (base32
3731 "1qrpxfirsxckg7jv28f5ah2qc8lh95hp7rnqkbqs1ahcwlbnvkm7"))))
3732 (build-system haskell-build-system)
3733 ;; these inputs are necessary to use this library
3734 (inputs
3735 `(("ghc-hashable" ,ghc-hashable)))
3736 (arguments
3737 `(#:tests? #f)) ; FIXME: currently missing libraries used for tests.
3738 (home-page
3739 "https://github.com/basvandijk/case-insensitive")
3740 (synopsis "Case insensitive string comparison")
3741 (description
3742 "The module @code{Data.CaseInsensitive} provides the @code{CI} type
3743 constructor which can be parameterised by a string-like type like:
3744 @code{String}, @code{ByteString}, @code{Text}, etc. Comparisons of values of
3745 the resulting type will be insensitive to cases.")
3746 (license license:bsd-3)))
3747
3748 (define-public ghc-syb
3749 (package
3750 (name "ghc-syb")
3751 (version "0.7")
3752 (outputs '("out" "doc"))
3753 (source
3754 (origin
3755 (method url-fetch)
3756 (uri (string-append
3757 "https://hackage.haskell.org/package/syb/syb-"
3758 version
3759 ".tar.gz"))
3760 (sha256
3761 (base32
3762 "1da2zz7gqm4xbkx5vpd74dayx1svaxyl145fl14mq15lbb77sxdq"))))
3763 (build-system haskell-build-system)
3764 (inputs
3765 `(("ghc-hunit" ,ghc-hunit)))
3766 (home-page
3767 "http://www.cs.uu.nl/wiki/GenericProgramming/SYB")
3768 (synopsis "Scrap Your Boilerplate")
3769 (description "This package contains the generics system described in the
3770 /Scrap Your Boilerplate/ papers (see
3771 @uref{http://www.cs.uu.nl/wiki/GenericProgramming/SYB, the website}). It
3772 defines the @code{Data} class of types permitting folding and unfolding of
3773 constructor applications, instances of this class for primitive types, and a
3774 variety of traversals.")
3775 (license license:bsd-3)))
3776
3777 (define-public ghc-fgl
3778 (package
3779 (name "ghc-fgl")
3780 (version "5.6.0.0")
3781 (outputs '("out" "doc"))
3782 (source
3783 (origin
3784 (method url-fetch)
3785 (uri (string-append
3786 "https://hackage.haskell.org/package/fgl/fgl-"
3787 version
3788 ".tar.gz"))
3789 (sha256
3790 (base32
3791 "1i6cp4b3w7sjk7y1dq3fh6bci2sm5h3lnbbaw9ln19nwncg2wwll"))))
3792 (build-system haskell-build-system)
3793 (arguments
3794 `(#:phases
3795 (modify-phases %standard-phases
3796 (add-before 'configure 'update-constraints
3797 (lambda _
3798 (substitute* "fgl.cabal"
3799 (("QuickCheck >= 2\\.8 && < 2\\.10")
3800 "QuickCheck >= 2.8 && < 2.12")
3801 (("hspec >= 2\\.1 && < 2\\.5")
3802 "hspec >= 2.1 && < 2.6")))))))
3803 (inputs
3804 `(("ghc-hspec" ,ghc-hspec)
3805 ("ghc-quickcheck" ,ghc-quickcheck)))
3806 (home-page "https://web.engr.oregonstate.edu/~erwig/fgl/haskell")
3807 (synopsis
3808 "Martin Erwig's Functional Graph Library")
3809 (description "The functional graph library, FGL, is a collection of type
3810 and function definitions to address graph problems. The basis of the library
3811 is an inductive definition of graphs in the style of algebraic data types that
3812 encourages inductive, recursive definitions of graph algorithms.")
3813 (license license:bsd-3)))
3814
3815 (define-public ghc-chasingbottoms
3816 (package
3817 (name "ghc-chasingbottoms")
3818 (version "1.3.1.4")
3819 (source
3820 (origin
3821 (method url-fetch)
3822 (uri (string-append "https://hackage.haskell.org/package/ChasingBottoms/"
3823 "ChasingBottoms-" version ".tar.gz"))
3824 (sha256
3825 (base32
3826 "06cynx6hcbfpky7qq3b3mjjgwbnaxkwin3znbwq4b9ikiw0ng633"))))
3827 (build-system haskell-build-system)
3828 (inputs
3829 `(("ghc-quickcheck" ,ghc-quickcheck)
3830 ("ghc-random" ,ghc-random)
3831 ("ghc-syb" ,ghc-syb)))
3832 (home-page "https://hackage.haskell.org/package/ChasingBottoms")
3833 (synopsis "Testing of partial and infinite values in Haskell")
3834 (description
3835 ;; FIXME: There should be a @comma{} in the uref text, but it is not
3836 ;; rendered properly.
3837 "This is a library for testing code involving bottoms or infinite values.
3838 For the underlying theory and a larger example involving use of QuickCheck,
3839 see the article
3840 @uref{http://www.cse.chalmers.se/~nad/publications/danielsson-jansson-mpc2004.html,
3841 \"Chasing Bottoms A Case Study in Program Verification in the Presence of
3842 Partial and Infinite Values\"}.")
3843 (license license:expat)))
3844
3845 (define-public ghc-unordered-containers
3846 (package
3847 (name "ghc-unordered-containers")
3848 (version "0.2.9.0")
3849 (outputs '("out" "doc"))
3850 (source
3851 (origin
3852 (method url-fetch)
3853 (uri (string-append
3854 "https://hackage.haskell.org/package/unordered-containers"
3855 "/unordered-containers-" version ".tar.gz"))
3856 (sha256
3857 (base32
3858 "0l4264p0av12cc6i8gls13q8y27x12z2ar4x34n3x59y99fcnc37"))))
3859 (build-system haskell-build-system)
3860 (inputs
3861 `(("ghc-chasingbottoms" ,ghc-chasingbottoms)
3862 ("ghc-hunit" ,ghc-hunit)
3863 ("ghc-quickcheck" ,ghc-quickcheck)
3864 ("ghc-test-framework" ,ghc-test-framework)
3865 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
3866 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)
3867 ("ghc-hashable" ,ghc-hashable)))
3868 (home-page
3869 "https://github.com/tibbe/unordered-containers")
3870 (synopsis
3871 "Efficient hashing-based container types")
3872 (description
3873 "Efficient hashing-based container types. The containers have been
3874 optimized for performance critical use, both in terms of large data quantities
3875 and high speed.")
3876 (license license:bsd-3)))
3877
3878 (define-public ghc-unordered-containers-bootstrap
3879 (package
3880 (inherit ghc-unordered-containers)
3881 (name "ghc-unordered-containers-bootstrap")
3882 (arguments `(#:tests? #f))
3883 (inputs
3884 `(("ghc-hashable" ,ghc-hashable-bootstrap)))
3885 (properties '(hidden? #t))))
3886
3887 (define-public ghc-uniplate
3888 (package
3889 (name "ghc-uniplate")
3890 (version "1.6.12")
3891 (source
3892 (origin
3893 (method url-fetch)
3894 (uri (string-append
3895 "https://hackage.haskell.org/package/uniplate/uniplate-"
3896 version
3897 ".tar.gz"))
3898 (sha256
3899 (base32
3900 "1dx8f9aw27fz8kw0ad1nm6355w5rdl7bjvb427v2bsgnng30pipw"))))
3901 (build-system haskell-build-system)
3902 (inputs
3903 `(("ghc-syb" ,ghc-syb)
3904 ("ghc-hashable" ,ghc-hashable)
3905 ("ghc-unordered-containers" ,ghc-unordered-containers)))
3906 (home-page "http://community.haskell.org/~ndm/uniplate/")
3907 (synopsis "Simple, concise and fast generic operations")
3908 (description "Uniplate is a library for writing simple and concise generic
3909 operations. Uniplate has similar goals to the original Scrap Your Boilerplate
3910 work, but is substantially simpler and faster.")
3911 (license license:bsd-3)))
3912
3913 (define-public ghc-base64-bytestring
3914 (package
3915 (name "ghc-base64-bytestring")
3916 (version "1.0.0.2")
3917 (source
3918 (origin
3919 (method url-fetch)
3920 (uri (string-append
3921 "https://hackage.haskell.org/package/base64-bytestring/base64-bytestring-"
3922 version
3923 ".tar.gz"))
3924 (sha256
3925 (base32 "13305brzlac24pifiqd5a2z10c6k6amhpdy9cc0z5ryrkgnm8dhr"))))
3926 (build-system haskell-build-system)
3927 (arguments `(#:tests? #f)) ; FIXME: testing libraries are missing.
3928 (home-page "https://github.com/bos/base64-bytestring")
3929 (synopsis "Base64 encoding and decoding for ByteStrings")
3930 (description "This library provides fast base64 encoding and decoding for
3931 Haskell @code{ByteString}s.")
3932 (license license:bsd-3)))
3933
3934 (define-public ghc-annotated-wl-pprint
3935 (package
3936 (name "ghc-annotated-wl-pprint")
3937 (version "0.7.0")
3938 (source
3939 (origin
3940 (method url-fetch)
3941 (uri (string-append
3942 "https://hackage.haskell.org/package/annotated-wl-pprint"
3943 "/annotated-wl-pprint-" version
3944 ".tar.gz"))
3945 (sha256
3946 (base32
3947 "061xfz6qany3wf95csl8dcik2pz22cn8iv1qchhm16isw5zjs9hc"))))
3948 (build-system haskell-build-system)
3949 (home-page
3950 "https://github.com/david-christiansen/annotated-wl-pprint")
3951 (synopsis
3952 "The Wadler/Leijen Pretty Printer, with annotation support")
3953 (description "This is a modified version of wl-pprint, which was based on
3954 Wadler's paper \"A Prettier Printer\". This version allows the library user
3955 to annotate the text with semantic information, which can later be rendered in
3956 a variety of ways.")
3957 (license license:bsd-3)))
3958
3959 (define-public ghc-wl-pprint
3960 (package
3961 (name "ghc-wl-pprint")
3962 (version "1.2.1")
3963 (source (origin
3964 (method url-fetch)
3965 (uri (string-append
3966 "https://hackage.haskell.org/package/wl-pprint/wl-pprint-"
3967 version ".tar.gz"))
3968 (sha256
3969 (base32
3970 "0kn7y8pdrv8f87zhd5mifcl8fy3b2zvnzmzwhdqhxxlyzwiq6z0c"))))
3971 (build-system haskell-build-system)
3972 (home-page "https://hackage.haskell.org/package/wl-pprint")
3973 (synopsis "Wadler/Leijen pretty printer")
3974 (description
3975 "This is a pretty printing library based on Wadler's paper @i{A Prettier
3976 Printer}. This version allows the library user to declare overlapping
3977 instances of the @code{Pretty} class.")
3978 (license license:bsd-3)))
3979
3980 (define-public ghc-ansi-wl-pprint
3981 (package
3982 (name "ghc-ansi-wl-pprint")
3983 (version "0.6.8.2")
3984 (source
3985 (origin
3986 (method url-fetch)
3987 (uri (string-append "https://hackage.haskell.org/package/"
3988 "ansi-wl-pprint/ansi-wl-pprint-"
3989 version ".tar.gz"))
3990 (sha256
3991 (base32
3992 "0gnb4mkqryv08vncxnj0bzwcnd749613yw3cxfzw6y3nsldp4c56"))))
3993 (build-system haskell-build-system)
3994 (inputs
3995 `(("ghc-ansi-terminal" ,ghc-ansi-terminal)))
3996 (home-page "https://github.com/ekmett/ansi-wl-pprint")
3997 (synopsis "Wadler/Leijen Pretty Printer for colored ANSI terminal output")
3998 (description "This is a pretty printing library based on Wadler's paper
3999 \"A Prettier Printer\". It has been enhanced with support for ANSI terminal
4000 colored output using the ansi-terminal package.")
4001 (license license:bsd-3)))
4002
4003 (define-public ghc-split
4004 (package
4005 (name "ghc-split")
4006 (version "0.2.3.3")
4007 (outputs '("out" "doc"))
4008 (source
4009 (origin
4010 (method url-fetch)
4011 (uri (string-append
4012 "https://hackage.haskell.org/package/split/split-"
4013 version
4014 ".tar.gz"))
4015 (sha256
4016 (base32
4017 "04qlmkcyklznl03gsjg95b4nzb6i96gdapqg60rny9szgi7ngk8x"))))
4018 (build-system haskell-build-system)
4019 (native-inputs
4020 `(("ghc-quickcheck" ,ghc-quickcheck)))
4021 (home-page "https://hackage.haskell.org/package/split")
4022 (synopsis "Combinator library for splitting lists")
4023 (description "This package provides a collection of Haskell functions for
4024 splitting lists into parts, akin to the @code{split} function found in several
4025 mainstream languages.")
4026 (license license:bsd-3)))
4027
4028 (define-public ghc-parser-combinators
4029 (package
4030 (name "ghc-parser-combinators")
4031 (version "1.0.0")
4032 (source
4033 (origin
4034 (method url-fetch)
4035 (uri (string-append "https://hackage.haskell.org/package/"
4036 "parser-combinators/parser-combinators-"
4037 version ".tar.gz"))
4038 (sha256
4039 (base32
4040 "1pwfdsklqwvaynwpdzmx1bs35mp6dpsyaqdnzxnqcrxwf5h8sk75"))))
4041 (build-system haskell-build-system)
4042 (home-page "https://github.com/mrkkrp/parser-combinators")
4043 (synopsis "Commonly useful parser combinators")
4044 (description
4045 "This is a lightweight package providing commonly useful parser
4046 combinators.")
4047 (license license:bsd-3)))
4048
4049 (define-public ghc-megaparsec
4050 (package
4051 (name "ghc-megaparsec")
4052 (version "6.5.0")
4053 (source
4054 (origin
4055 (method url-fetch)
4056 (uri (string-append "https://hackage.haskell.org/package/"
4057 "megaparsec/megaparsec-"
4058 version ".tar.gz"))
4059 (sha256
4060 (base32
4061 "12iggy7qpf8x93jm64zf0g215xwy779bqyfyjk2bhmxqqr1yzgdy"))))
4062 (build-system haskell-build-system)
4063 (arguments
4064 `(#:cabal-revision
4065 ("4" "0ij3asi5vwlhbgwsy6nhli9a0qb7926mg809fsgyl1rnhs9fvpx1")))
4066 (inputs
4067 `(("ghc-case-insensitive" ,ghc-case-insensitive)
4068 ("ghc-parser-combinators" ,ghc-parser-combinators)
4069 ("ghc-scientific" ,ghc-scientific)))
4070 (native-inputs
4071 `(("ghc-quickcheck" ,ghc-quickcheck)
4072 ("ghc-hspec" ,ghc-hspec)
4073 ("ghc-hspec-expectations" ,ghc-hspec-expectations)
4074 ("hspec-discover" ,hspec-discover)))
4075 (home-page "https://github.com/mrkkrp/megaparsec")
4076 (synopsis "Monadic parser combinators")
4077 (description
4078 "This is an industrial-strength monadic parser combinator library.
4079 Megaparsec is a feature-rich package that strikes a nice balance between
4080 speed, flexibility, and quality of parse errors.")
4081 (license license:bsd-2)))
4082
4083 (define-public ghc-vector
4084 (package
4085 (name "ghc-vector")
4086 (version "0.12.0.1")
4087 (outputs '("out" "doc"))
4088 (source
4089 (origin
4090 (method url-fetch)
4091 (uri (string-append
4092 "https://hackage.haskell.org/package/vector/vector-"
4093 version
4094 ".tar.gz"))
4095 (sha256
4096 (base32
4097 "0yrx2ypiaxahvaz84af5bi855hd3107kxkbqc8km29nsp5wyw05i"))))
4098 (build-system haskell-build-system)
4099 ;; FIXME: To simplify upgrading all Haskell packages, we leave the tests
4100 ;; disabled for now.
4101 (arguments
4102 `(#:cabal-revision
4103 ("3" "0y5rh8k710i2a3p1h2rghvr5cfg78p5h0kbfi7ifxqqf6pzlyr1x")
4104 #:tests? #f))
4105 (inputs
4106 `(("ghc-primitive" ,ghc-primitive)
4107 ("ghc-random" ,ghc-random)
4108 ("ghc-quickcheck" ,ghc-quickcheck)
4109 ;; ("ghc-hunit" ,ghc-hunit)
4110 ;; ("ghc-test-framework" ,ghc-test-framework)
4111 ;; ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
4112 ;; ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)
4113 ))
4114 (home-page "https://github.com/haskell/vector")
4115 (synopsis "Efficient Arrays")
4116 (description "This library provides an efficient implementation of
4117 Int-indexed arrays (both mutable and immutable), with a powerful loop
4118 optimisation framework.")
4119 (license license:bsd-3)))
4120
4121 (define-public ghc-vector-binary-instances
4122 (package
4123 (name "ghc-vector-binary-instances")
4124 (version "0.2.4")
4125 (source
4126 (origin
4127 (method url-fetch)
4128 (uri (string-append
4129 "https://hackage.haskell.org/package/"
4130 "vector-binary-instances/vector-binary-instances-"
4131 version ".tar.gz"))
4132 (sha256
4133 (base32
4134 "1y236jb72iab9ska1mc48z6yb0xgwmj45laaqdyjxksd84z7hbrb"))))
4135 (build-system haskell-build-system)
4136 (arguments
4137 `(#:cabal-revision
4138 ("1" "196frl4akhfk7xf1nxzn8lmq99dxhzhsimanswn9yy7ym8zhki4i")))
4139 (inputs
4140 `(("ghc-vector" ,ghc-vector)))
4141 (native-inputs
4142 `(("ghc-tasty" ,ghc-tasty)
4143 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
4144 (home-page "https://github.com/bos/vector-binary-instances")
4145 (synopsis "Instances of Data.Binary and Data.Serialize for vector")
4146 (description "This library provides instances of @code{Binary} for the
4147 types defined in the @code{vector} package, making it easy to serialize
4148 vectors to and from disk. We use the generic interface to vectors, so all
4149 vector types are supported. Specific instances are provided for unboxed,
4150 boxed and storable vectors.")
4151 (license license:bsd-3)))
4152
4153 (define-public ghc-bloomfilter
4154 (package
4155 (name "ghc-bloomfilter")
4156 (version "2.0.1.0")
4157 (source
4158 (origin
4159 (method url-fetch)
4160 (uri (string-append "https://hackage.haskell.org/package/"
4161 "bloomfilter/bloomfilter-" version ".tar.gz"))
4162 (sha256
4163 (base32
4164 "03vrmncg1c10a2wcg5skq30m1yiknn7nwxz2gblyyfaxglshspkc"))))
4165 (build-system haskell-build-system)
4166 (native-inputs
4167 `(("ghc-quickcheck" ,ghc-quickcheck)
4168 ("ghc-random" ,ghc-random)
4169 ("ghc-test-framework" ,ghc-test-framework)
4170 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
4171 (home-page "https://github.com/bos/bloomfilter")
4172 (synopsis "Pure and impure Bloom filter implementations")
4173 (description "This package provides both mutable and immutable Bloom
4174 filter data types, along with a family of hash functions and an easy-to-use
4175 interface.")
4176 (license license:bsd-3)))
4177
4178 (define-public ghc-network
4179 (package
4180 (name "ghc-network")
4181 (version "2.6.3.6")
4182 (outputs '("out" "doc"))
4183 (source
4184 (origin
4185 (method url-fetch)
4186 (uri (string-append
4187 "https://hackage.haskell.org/package/network/network-"
4188 version
4189 ".tar.gz"))
4190 (sha256
4191 (base32
4192 "198mam7ahny48p9fajznbqq16a8ya2gw0xm3gnm1si1rmc4hdplv"))))
4193 (build-system haskell-build-system)
4194 ;; The regression tests depend on an unpublished module.
4195 (arguments `(#:tests? #f))
4196 (native-inputs
4197 `(("ghc-hunit" ,ghc-hunit)
4198 ("ghc-doctest" ,ghc-doctest)
4199 ("ghc-test-framework" ,ghc-test-framework)
4200 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)))
4201 (home-page "https://github.com/haskell/network")
4202 (synopsis "Low-level networking interface")
4203 (description
4204 "This package provides a low-level networking interface.")
4205 (license license:bsd-3)))
4206
4207 (define-public ghc-network-uri
4208 (package
4209 (name "ghc-network-uri")
4210 (version "2.6.1.0")
4211 (outputs '("out" "doc"))
4212 (source
4213 (origin
4214 (method url-fetch)
4215 (uri (string-append
4216 "https://hackage.haskell.org/package/network-uri/network-uri-"
4217 version
4218 ".tar.gz"))
4219 (sha256
4220 (base32
4221 "1w27zkvn39kjr9lmw9421y8w43h572ycsfafsb7kyvr3a4ihlgj2"))))
4222 (build-system haskell-build-system)
4223 (arguments
4224 `(#:tests? #f)) ; FIXME: currently missing libraries used for tests.
4225 (inputs
4226 `(("ghc-network" ,ghc-network)))
4227 (native-inputs
4228 `(("ghc-hunit" ,ghc-hunit)))
4229 (home-page
4230 "https://github.com/haskell/network-uri")
4231 (synopsis "Library for URI manipulation")
4232 (description "This package provides an URI manipulation interface. In
4233 @code{network-2.6} the @code{Network.URI} module was split off from the
4234 @code{network} package into this package.")
4235 (license license:bsd-3)))
4236
4237 (define-public ghc-ansi-terminal
4238 (package
4239 (name "ghc-ansi-terminal")
4240 (version "0.8.0.4")
4241 (source
4242 (origin
4243 (method url-fetch)
4244 (uri (string-append
4245 "https://hackage.haskell.org/package/ansi-terminal/ansi-terminal-"
4246 version
4247 ".tar.gz"))
4248 (sha256
4249 (base32
4250 "0428gq8m3fdnb7ldcsyk97qcch76hcxbgh2666p6f76fs2qbhg7b"))))
4251 (build-system haskell-build-system)
4252 (inputs
4253 `(("ghc-colour" ,ghc-colour)))
4254 (home-page "https://github.com/feuerbach/ansi-terminal")
4255 (synopsis "ANSI terminal support for Haskell")
4256 (description "This package provides ANSI terminal support for Haskell. It
4257 allows cursor movement, screen clearing, color output showing or hiding the
4258 cursor, and changing the title.")
4259 (license license:bsd-3)))
4260
4261 (define-public ghc-vault
4262 (package
4263 (name "ghc-vault")
4264 (version "0.3.1.2")
4265 (source
4266 (origin
4267 (method url-fetch)
4268 (uri (string-append
4269 "https://hackage.haskell.org/package/vault/vault-"
4270 version
4271 ".tar.gz"))
4272 (sha256
4273 (base32
4274 "072mbrihsdsb8c6xvg6lvk0rqjgvxvi8qkg4n6wwym5hq0pfa04y"))))
4275 (build-system haskell-build-system)
4276 (inputs
4277 `(("ghc-unordered-containers" ,ghc-unordered-containers)
4278 ("ghc-hashable" ,ghc-hashable)
4279 ("ghc-semigroupoids" ,ghc-semigroupoids)))
4280 (home-page
4281 "https://github.com/HeinrichApfelmus/vault")
4282 (synopsis "Persistent store for arbitrary values")
4283 (description "This package provides vaults for Haskell. A vault is a
4284 persistent store for values of arbitrary types. It's like having first-class
4285 access to the storage space behind @code{IORefs}. The data structure is
4286 analogous to a bank vault, where you can access different bank boxes with
4287 different keys; hence the name. Also provided is a @code{locker} type,
4288 representing a store for a single element.")
4289 (license license:bsd-3)))
4290
4291 (define-public ghc-edisonapi
4292 (package
4293 (name "ghc-edisonapi")
4294 (version "1.3.1")
4295 (source
4296 (origin
4297 (method url-fetch)
4298 (uri (string-append "https://hackage.haskell.org/package/EdisonAPI"
4299 "/EdisonAPI-" version ".tar.gz"))
4300 (sha256
4301 (base32 "0vmmlsj8ggbpwx6fkf5fvb6jp0zpx6iba6b28m80lllr2p8bi8wm"))))
4302 (build-system haskell-build-system)
4303 (home-page "http://rwd.rdockins.name/edison/home/")
4304 (synopsis "Library of efficient, purely-functional data structures (API)")
4305 (description
4306 "Edison is a library of purely functional data structures written by
4307 Chris Okasaki. It is named after Thomas Alva Edison and for the mnemonic
4308 value EDiSon (Efficient Data Structures). Edison provides several families of
4309 abstractions, each with multiple implementations. The main abstractions
4310 provided by Edison are: Sequences such as stacks, queues, and dequeues;
4311 Collections such as sets, bags and heaps; and Associative Collections such as
4312 finite maps and priority queues where the priority and element are distinct.")
4313 (license license:expat)))
4314
4315 (define-public ghc-edisoncore
4316 (package
4317 (name "ghc-edisoncore")
4318 (version "1.3.2.1")
4319 (source
4320 (origin
4321 (method url-fetch)
4322 (uri (string-append "https://hackage.haskell.org/package/EdisonCore"
4323 "/EdisonCore-" version ".tar.gz"))
4324 (sha256
4325 (base32 "0fgj5iwiv3v2gdgx7kjcr15dcs4x1kvmjspp3p99wyhh0x6h3ikk"))))
4326 (build-system haskell-build-system)
4327 (inputs
4328 `(("ghc-quickcheck" ,ghc-quickcheck)
4329 ("ghc-edisonapi" ,ghc-edisonapi)))
4330 (home-page "http://rwd.rdockins.name/edison/home/")
4331 (synopsis "Library of efficient, purely-functional data structures")
4332 (description
4333 "This package provides the core Edison data structure implementations,
4334 including multiple sequence, set, bag, and finite map concrete implementations
4335 with various performance characteristics.")
4336 (license license:expat)))
4337
4338 (define-public ghc-mmorph
4339 (package
4340 (name "ghc-mmorph")
4341 (version "1.1.2")
4342 (source
4343 (origin
4344 (method url-fetch)
4345 (uri (string-append
4346 "https://hackage.haskell.org/package/mmorph/mmorph-"
4347 version
4348 ".tar.gz"))
4349 (sha256
4350 (base32
4351 "1gjz1ib968lqybma7my1n19qq6cdj6a7nskrlnwy4jy9jrwzs2n9"))))
4352 (build-system haskell-build-system)
4353 (inputs
4354 `(("ghc-transformers-compat" ,ghc-transformers-compat)))
4355 (home-page "https://hackage.haskell.org/package/mmorph")
4356 (synopsis "Monad morphisms")
4357 (description
4358 "This library provides monad morphism utilities, most commonly used for
4359 manipulating monad transformer stacks.")
4360 (license license:bsd-3)))
4361
4362 (define-public ghc-ifelse
4363 (package
4364 (name "ghc-ifelse")
4365 (version "0.85")
4366 (source
4367 (origin
4368 (method url-fetch)
4369 (uri (string-append "https://hackage.haskell.org/package/"
4370 "IfElse/IfElse-" version ".tar.gz"))
4371 (sha256
4372 (base32
4373 "1kfx1bwfjczj93a8yqz1n8snqiq5655qgzwv1lrycry8wb1vzlwa"))))
4374 (build-system haskell-build-system)
4375 (home-page "http://hackage.haskell.org/package/IfElse")
4376 (synopsis "Monadic control flow with anaphoric variants")
4377 (description "This library provides functions for control flow inside of
4378 monads with anaphoric variants on @code{if} and @code{when} and a C-like
4379 @code{switch} function.")
4380 (license license:bsd-3)))
4381
4382 (define-public ghc-monad-control
4383 (package
4384 (name "ghc-monad-control")
4385 (version "1.0.2.3")
4386 (source
4387 (origin
4388 (method url-fetch)
4389 (uri (string-append
4390 "https://hackage.haskell.org/package/monad-control"
4391 "/monad-control-" version ".tar.gz"))
4392 (sha256
4393 (base32
4394 "1c92833gr6cadidjdp8mlznkpp8lyxl0w3y7d19y8yi3klc3843c"))))
4395 (build-system haskell-build-system)
4396 (inputs
4397 `(("ghc-transformers-base" ,ghc-transformers-base)
4398 ("ghc-transformers-compat" ,ghc-transformers-compat)))
4399 (home-page "https://github.com/basvandijk/monad-control")
4400 (synopsis "Monad transformers to lift control operations like exception
4401 catching")
4402 (description "This package defines the type class @code{MonadBaseControl},
4403 a subset of @code{MonadBase} into which generic control operations such as
4404 @code{catch} can be lifted from @code{IO} or any other base monad.")
4405 (license license:bsd-3)))
4406
4407 (define-public ghc-fail
4408 (package
4409 (name "ghc-fail")
4410 (version "4.9.0.0")
4411 (source
4412 (origin
4413 (method url-fetch)
4414 (uri (string-append "https://hackage.haskell.org/package/fail/fail-"
4415 version ".tar.gz"))
4416 (sha256
4417 (base32 "18nlj6xvnggy61gwbyrpmvbdkq928wv0wx2zcsljb52kbhddnp3d"))))
4418 (build-system haskell-build-system)
4419 (arguments `(#:haddock? #f)) ; Package contains no documentation.
4420 (home-page "https://prime.haskell.org/wiki/Libraries/Proposals/MonadFail")
4421 (synopsis "Forward-compatible MonadFail class")
4422 (description
4423 "This package contains the @code{Control.Monad.Fail} module providing the
4424 @uref{https://prime.haskell.org/wiki/Libraries/Proposals/MonadFail, MonadFail}
4425 class that became available in
4426 @uref{https://hackage.haskell.org/package/base-4.9.0.0, base-4.9.0.0} for
4427 older @code{base} package versions. This package turns into an empty package
4428 when used with GHC versions which already provide the
4429 @code{Control.Monad.Fail} module.")
4430 (license license:bsd-3)))
4431
4432 (define-public ghc-monadplus
4433 (package
4434 (name "ghc-monadplus")
4435 (version "1.4.2")
4436 (source
4437 (origin
4438 (method url-fetch)
4439 (uri (string-append "https://hackage.haskell.org/package/monadplus"
4440 "/monadplus-" version ".tar.gz"))
4441 (sha256
4442 (base32 "15b5320wdpmdp5slpphnc1x4rhjch3igw245dp2jxbqyvchdavin"))))
4443 (build-system haskell-build-system)
4444 (home-page "https://hackage.haskell.org/package/monadplus")
4445 (synopsis "Filtering and folding over arbitrary MonadPlus instances")
4446 (description
4447 "This package generalizes many common stream operations such as
4448 @code{filter}, @code{catMaybes} etc, enabling filtering and folding over
4449 arbitrary @code{MonadPlus} instances.")
4450 (license license:bsd-3)))
4451
4452 (define-public ghc-byteorder
4453 (package
4454 (name "ghc-byteorder")
4455 (version "1.0.4")
4456 (source
4457 (origin
4458 (method url-fetch)
4459 (uri (string-append
4460 "https://hackage.haskell.org/package/byteorder/byteorder-"
4461 version
4462 ".tar.gz"))
4463 (sha256
4464 (base32
4465 "06995paxbxk8lldvarqpb3ygcjbg4v8dk4scib1rjzwlhssvn85x"))))
4466 (build-system haskell-build-system)
4467 (home-page
4468 "http://community.haskell.org/~aslatter/code/byteorder")
4469 (synopsis
4470 "Exposes the native endianness of the system")
4471 (description
4472 "This package is for working with the native byte-ordering of the
4473 system.")
4474 (license license:bsd-3)))
4475
4476 (define-public ghc-base-compat
4477 (package
4478 (name "ghc-base-compat")
4479 (version "0.10.4")
4480 (source
4481 (origin
4482 (method url-fetch)
4483 (uri (string-append
4484 "https://hackage.haskell.org/package/base-compat/base-compat-"
4485 version
4486 ".tar.gz"))
4487 (sha256
4488 (base32
4489 "0ksp990gxs731mq19rzbxrbs43nazfljjc8krlx5bjqblw3kfs8d"))))
4490 (build-system haskell-build-system)
4491 (native-inputs
4492 `(("ghc-quickcheck" ,ghc-quickcheck)
4493 ("ghc-hspec" ,ghc-hspec)
4494 ("hspec-discover" ,hspec-discover)))
4495 (home-page "https://hackage.haskell.org/package/base-compat")
4496 (synopsis "Haskell compiler compatibility library")
4497 (description "This library provides functions available in later versions
4498 of base to a wider range of compilers, without requiring the use of CPP
4499 pragmas in your code.")
4500 (license license:bsd-3)))
4501
4502 (define-public ghc-blaze-builder
4503 (package
4504 (name "ghc-blaze-builder")
4505 (version "0.4.1.0")
4506 (source
4507 (origin
4508 (method url-fetch)
4509 (uri (string-append
4510 "https://hackage.haskell.org/package/blaze-builder/blaze-builder-"
4511 version
4512 ".tar.gz"))
4513 (sha256
4514 (base32
4515 "05681dih2d8s96an945wkbwl05w8ddbcfx8n3r3ck79ydyb8pz4i"))))
4516 (build-system haskell-build-system)
4517 (arguments `(#:tests? #f)) ; FIXME: Missing test libraries.
4518 (inputs
4519 `(("ghc-utf8-string" ,ghc-utf8-string)))
4520 (home-page "https://github.com/lpsmith/blaze-builder")
4521 (synopsis "Efficient buffered output")
4522 (description "This library provides an implementation of the older
4523 @code{blaze-builder} interface in terms of the new builder that shipped with
4524 @code{bytestring-0.10.4.0}. This implementation is mostly intended as a
4525 bridge to the new builder, so that code that uses the old interface can
4526 interoperate with code that uses the new implementation.")
4527 (license license:bsd-3)))
4528
4529 (define-public ghc-blaze-markup
4530 (package
4531 (name "ghc-blaze-markup")
4532 (version "0.8.2.1")
4533 (source
4534 (origin
4535 (method url-fetch)
4536 (uri (string-append "https://hackage.haskell.org/package/"
4537 "blaze-markup/blaze-markup-"
4538 version ".tar.gz"))
4539 (sha256
4540 (base32
4541 "0ih1c3qahkdgzbqihdhny5s313l2m66fbb88w8jbx7yz56y7rawh"))))
4542 (build-system haskell-build-system)
4543 (arguments
4544 `(#:phases
4545 (modify-phases %standard-phases
4546 (add-before 'configure 'update-constraints
4547 (lambda _
4548 (substitute* "blaze-markup.cabal"
4549 (("tasty >= 1\\.0 && < 1\\.1")
4550 "tasty >= 1.0 && < 1.2")))))))
4551 (inputs
4552 `(("ghc-blaze-builder" ,ghc-blaze-builder)))
4553 (native-inputs
4554 `(("ghc-hunit" ,ghc-hunit)
4555 ("ghc-quickcheck" ,ghc-quickcheck)
4556 ("ghc-tasty" ,ghc-tasty)
4557 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
4558 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
4559 (home-page "https://jaspervdj.be/blaze")
4560 (synopsis "Fast markup combinator library for Haskell")
4561 (description "This library provides core modules of a markup combinator
4562 library for Haskell.")
4563 (license license:bsd-3)))
4564
4565 (define-public ghc-easy-file
4566 (package
4567 (name "ghc-easy-file")
4568 (version "0.2.2")
4569 (source
4570 (origin
4571 (method url-fetch)
4572 (uri (string-append
4573 "https://hackage.haskell.org/package/easy-file/easy-file-"
4574 version
4575 ".tar.gz"))
4576 (sha256
4577 (base32
4578 "0zmlcz723051qpn8l8vi51c5rx1blwrw4094jcshkmj8p9r2xxaj"))))
4579 (build-system haskell-build-system)
4580 (home-page
4581 "https://github.com/kazu-yamamoto/easy-file")
4582 (synopsis "File handling library for Haskell")
4583 (description "This library provides file handling utilities for Haskell.")
4584 (license license:bsd-3)))
4585
4586 (define-public ghc-async
4587 (package
4588 (name "ghc-async")
4589 (version "2.2.1")
4590 (source
4591 (origin
4592 (method url-fetch)
4593 (uri (string-append
4594 "https://hackage.haskell.org/package/async/async-"
4595 version
4596 ".tar.gz"))
4597 (sha256
4598 (base32
4599 "09whscli1q5z7lzyq9rfk0bq1ydplh6pjmc6qv0x668k5818c2wg"))))
4600 (build-system haskell-build-system)
4601 (inputs
4602 `(("ghc-hashable" ,ghc-hashable)
4603 ("ghc-hunit" ,ghc-hunit)
4604 ("ghc-test-framework" ,ghc-test-framework)
4605 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)))
4606 (home-page "https://github.com/simonmar/async")
4607 (synopsis "Library to run IO operations asynchronously")
4608 (description "Async provides a library to run IO operations
4609 asynchronously, and wait for their results. It is a higher-level interface
4610 over threads in Haskell, in which @code{Async a} is a concurrent thread that
4611 will eventually deliver a value of type @code{a}.")
4612 (license license:bsd-3)))
4613
4614 (define-public ghc-fingertree
4615 (package
4616 (name "ghc-fingertree")
4617 (version "0.1.4.1")
4618 (source
4619 (origin
4620 (method url-fetch)
4621 (uri (string-append
4622 "https://hackage.haskell.org/package/fingertree/fingertree-"
4623 version ".tar.gz"))
4624 (sha256
4625 (base32
4626 "192fyzv0pn1437wdpqg1l80rswkk4rw3w61r4bq7dhv354bdqy4p"))))
4627 (build-system haskell-build-system)
4628 (native-inputs
4629 `(("ghc-hunit" ,ghc-hunit)
4630 ("ghc-quickcheck" ,ghc-quickcheck)
4631 ("ghc-test-framework" ,ghc-test-framework)
4632 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
4633 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
4634 (home-page "https://hackage.haskell.org/package/fingertree")
4635 (synopsis "Generic finger-tree structure")
4636 (description "This library provides finger trees, a general sequence
4637 representation with arbitrary annotations, for use as a base for
4638 implementations of various collection types. It includes examples, as
4639 described in section 4 of Ralf Hinze and Ross Paterson, \"Finger trees: a
4640 simple general-purpose data structure\".")
4641 (license license:bsd-3)))
4642
4643 (define-public ghc-optparse-applicative
4644 (package
4645 (name "ghc-optparse-applicative")
4646 (version "0.14.2.0")
4647 (source
4648 (origin
4649 (method url-fetch)
4650 (uri (string-append
4651 "https://hackage.haskell.org/package/optparse-applicative"
4652 "/optparse-applicative-" version ".tar.gz"))
4653 (sha256
4654 (base32
4655 "0c3z1mvynlyv1garjbdmdd3npm40dabgm75js4r07cf766c1wd71"))))
4656 (build-system haskell-build-system)
4657 (inputs
4658 `(("ghc-transformers-compat" ,ghc-transformers-compat)
4659 ("ghc-ansi-wl-pprint" ,ghc-ansi-wl-pprint)))
4660 (native-inputs
4661 `(("ghc-quickcheck" ,ghc-quickcheck)))
4662 (home-page "https://github.com/pcapriotti/optparse-applicative")
4663 (synopsis "Utilities and combinators for parsing command line options")
4664 (description "This package provides utilities and combinators for parsing
4665 command line options in Haskell.")
4666 (license license:bsd-3)))
4667
4668 (define-public ghc-base-orphans
4669 (package
4670 (name "ghc-base-orphans")
4671 (version "0.7")
4672 (source
4673 (origin
4674 (method url-fetch)
4675 (uri (string-append
4676 "https://hackage.haskell.org/package/base-orphans/base-orphans-"
4677 version
4678 ".tar.gz"))
4679 (sha256
4680 (base32
4681 "057f9npnqk71ccfh95djfkpd54dzazphj06grwxa3fyhwcwxrb8a"))))
4682 (build-system haskell-build-system)
4683 (native-inputs
4684 `(("ghc-quickcheck" ,ghc-quickcheck)
4685 ("ghc-hspec" ,ghc-hspec)
4686 ("hspec-discover" ,hspec-discover)))
4687 (home-page "https://hackage.haskell.org/package/base-orphans")
4688 (synopsis "Orphan instances for backwards compatibility")
4689 (description "This package defines orphan instances that mimic instances
4690 available in later versions of base to a wider (older) range of compilers.")
4691 (license license:bsd-3)))
4692
4693 (define-public ghc-auto-update
4694 (package
4695 (name "ghc-auto-update")
4696 (version "0.1.4")
4697 (source
4698 (origin
4699 (method url-fetch)
4700 (uri (string-append
4701 "https://hackage.haskell.org/package/auto-update/auto-update-"
4702 version
4703 ".tar.gz"))
4704 (sha256
4705 (base32
4706 "09dlh2alsx2mw5kvj931yhbj0aw7jmly2cm9xbscm2sf098w35jy"))))
4707 (build-system haskell-build-system)
4708 (home-page "https://github.com/yesodweb/wai")
4709 (synopsis "Efficiently run periodic, on-demand actions")
4710 (description "This library provides mechanisms to efficiently run
4711 periodic, on-demand actions in Haskell.")
4712 (license license:expat)))
4713
4714 (define-public ghc-tagged
4715 (package
4716 (name "ghc-tagged")
4717 (version "0.8.5")
4718 (source
4719 (origin
4720 (method url-fetch)
4721 (uri (string-append
4722 "https://hackage.haskell.org/package/tagged/tagged-"
4723 version
4724 ".tar.gz"))
4725 (sha256
4726 (base32
4727 "16cdzh0bw16nvjnyyy5j9s60malhz4nnazw96vxb0xzdap4m2z74"))))
4728 (build-system haskell-build-system)
4729 (arguments
4730 `(#:cabal-revision
4731 ("2" "0r2knfcq0b4s652vlvlnfwxlc2mkc2ra9kl8bp4zdn1awmfy0ia5")))
4732 (inputs
4733 `(("ghc-transformers-compat" ,ghc-transformers-compat)))
4734 (home-page "https://hackage.haskell.org/package/tagged")
4735 (synopsis "Haskell phantom types to avoid passing dummy arguments")
4736 (description "This library provides phantom types for Haskell 98, to avoid
4737 having to unsafely pass dummy arguments.")
4738 (license license:bsd-3)))
4739
4740 (define-public ghc-unbounded-delays
4741 (package
4742 (name "ghc-unbounded-delays")
4743 (version "0.1.1.0")
4744 (source
4745 (origin
4746 (method url-fetch)
4747 (uri (string-append
4748 "https://hackage.haskell.org/package/unbounded-delays/unbounded-delays-"
4749 version
4750 ".tar.gz"))
4751 (sha256
4752 (base32
4753 "1ir9fghbrc214c97bwafk5ck6cacxz1pdnq4i18p604d1b8zg9wa"))))
4754 (build-system haskell-build-system)
4755 (home-page "https://github.com/basvandijk/unbounded-delays")
4756 (synopsis "Unbounded thread delays and timeouts")
4757 (description "The @code{threadDelay} and @code{timeout} functions from the
4758 Haskell base library use the bounded @code{Int} type for specifying the delay
4759 or timeout period. This package provides alternative functions which use the
4760 unbounded @code{Integer} type.")
4761 (license license:bsd-3)))
4762
4763 (define-public ghc-clock
4764 (package
4765 (name "ghc-clock")
4766 (version "0.7.2")
4767 (source
4768 (origin
4769 (method url-fetch)
4770 (uri (string-append
4771 "https://hackage.haskell.org/package/"
4772 "clock/"
4773 "clock-" version ".tar.gz"))
4774 (sha256
4775 (base32 "07v91s20halsqjmziqb1sqjp2sjpckl9by7y28aaklwqi2bh2rl8"))))
4776 (build-system haskell-build-system)
4777 (inputs
4778 `(("ghc-tasty" ,ghc-tasty)
4779 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
4780 (home-page "https://hackage.haskell.org/package/clock")
4781 (synopsis "High-resolution clock for Haskell")
4782 (description "A package for convenient access to high-resolution clock and
4783 timer functions of different operating systems via a unified API.")
4784 (license license:bsd-3)))
4785
4786 ;; This package builds `clock` without tests, since the tests rely on tasty
4787 ;; and tasty-quickcheck, which in turn require clock to build.
4788 (define-public ghc-clock-bootstrap
4789 (package
4790 (inherit ghc-clock)
4791 (name "ghc-clock-bootstrap")
4792 (arguments '(#:tests? #f))
4793 (inputs '())
4794 (properties '((hidden? #t)))))
4795
4796 (define-public ghc-charset
4797 (package
4798 (name "ghc-charset")
4799 (version "0.3.7.1")
4800 (source
4801 (origin
4802 (method url-fetch)
4803 (uri (string-append
4804 "https://hackage.haskell.org/package/charset/charset-"
4805 version
4806 ".tar.gz"))
4807 (sha256
4808 (base32
4809 "1gn0m96qpjww8hpp2g1as5yy0wcwy4iq73h3kz6g0yxxhcl5sh9x"))))
4810 (build-system haskell-build-system)
4811 (inputs
4812 `(("ghc-semigroups" ,ghc-semigroups)
4813 ("ghc-unordered-containers" ,ghc-unordered-containers)))
4814 (home-page "https://github.com/ekmett/charset")
4815 (synopsis "Fast unicode character sets for Haskell")
4816 (description "This package provides fast unicode character sets for
4817 Haskell, based on complemented PATRICIA tries.")
4818 (license license:bsd-3)))
4819
4820 (define-public ghc-bytestring-builder
4821 (package
4822 (name "ghc-bytestring-builder")
4823 (version "0.10.8.1.0")
4824 (source
4825 (origin
4826 (method url-fetch)
4827 (uri (string-append
4828 "https://hackage.haskell.org/package/bytestring-builder"
4829 "/bytestring-builder-" version ".tar.gz"))
4830 (sha256
4831 (base32
4832 "1hnvjac28y44yn78c9vdp1zvrknvlw98ky3g4n5vivr16rvh8x3d"))))
4833 (build-system haskell-build-system)
4834 (arguments `(#:haddock? #f)) ; Package contains no documentation.
4835 (home-page "https://hackage.haskell.org/package/bytestring-builder")
4836 (synopsis "The new bytestring builder, packaged outside of GHC")
4837 (description "This package provides the bytestring builder that is
4838 debuting in bytestring-0.10.4.0, which should be shipping with GHC 7.8.
4839 Compatibility package for older packages.")
4840 (license license:bsd-3)))
4841
4842 (define-public ghc-nats
4843 (package
4844 (name "ghc-nats")
4845 (version "1.1.2")
4846 (source
4847 (origin
4848 (method url-fetch)
4849 (uri (string-append
4850 "https://hackage.haskell.org/package/nats/nats-"
4851 version
4852 ".tar.gz"))
4853 (sha256
4854 (base32
4855 "1v40drmhixck3pz3mdfghamh73l4rp71mzcviipv1y8jhrfxilmr"))))
4856 (build-system haskell-build-system)
4857 (arguments `(#:haddock? #f))
4858 (inputs
4859 `(("ghc-hashable" ,ghc-hashable)))
4860 (home-page "https://hackage.haskell.org/package/nats")
4861 (synopsis "Natural numbers")
4862 (description "This library provides the natural numbers for Haskell.")
4863 (license license:bsd-3)))
4864
4865 (define-public ghc-nats-bootstrap
4866 (package
4867 (inherit ghc-nats)
4868 (name "ghc-nats-bootstrap")
4869 (inputs
4870 `(("ghc-hashable" ,ghc-hashable-bootstrap)))
4871 (properties '((hidden? #t)))))
4872
4873 (define-public ghc-void
4874 (package
4875 (name "ghc-void")
4876 (version "0.7.2")
4877 (source
4878 (origin
4879 (method url-fetch)
4880 (uri (string-append
4881 "https://hackage.haskell.org/package/void/void-"
4882 version
4883 ".tar.gz"))
4884 (sha256
4885 (base32
4886 "0aygw0yb1h3yhmfl3bkwh5d3h0l4mmsxz7j53vdm6jryl1kgxzyk"))))
4887 (build-system haskell-build-system)
4888 (inputs
4889 `(("ghc-semigroups" ,ghc-semigroups)
4890 ("ghc-hashable" ,ghc-hashable)))
4891 (home-page "https://github.com/ekmett/void")
4892 (synopsis
4893 "Logically uninhabited data type")
4894 (description
4895 "A Haskell 98 logically uninhabited data type, used to indicate that a
4896 given term should not exist.")
4897 (license license:bsd-3)))
4898
4899 (define-public ghc-invariant
4900 (package
4901 (name "ghc-invariant")
4902 (version "0.5.1")
4903 (source
4904 (origin
4905 (method url-fetch)
4906 (uri (string-append
4907 "https://hackage.haskell.org/package/invariant/invariant-"
4908 version ".tar.gz"))
4909 (sha256
4910 (base32
4911 "0aqj7z55632qdg45074kgn9qfdxzb0a2f8lgjzr0l0i4mm2rr37b"))))
4912 (build-system haskell-build-system)
4913 (inputs
4914 `(("ghc-bifunctors" ,ghc-bifunctors)
4915 ("ghc-comonad" ,ghc-comonad)
4916 ("ghc-contravariant" ,ghc-contravariant)
4917 ("ghc-profunctors" ,ghc-profunctors)
4918 ("ghc-semigroups" ,ghc-semigroups)
4919 ("ghc-statevar" ,ghc-statevar)
4920 ("ghc-tagged" ,ghc-tagged)
4921 ("ghc-th-abstraction" ,ghc-th-abstraction)
4922 ("ghc-transformers-compat" ,ghc-transformers-compat)
4923 ("ghc-unordered-containers" ,ghc-unordered-containers)))
4924 (native-inputs
4925 `(("ghc-hspec" ,ghc-hspec)
4926 ("ghc-quickcheck" ,ghc-quickcheck)
4927 ("hspec-discover" ,hspec-discover)))
4928 (home-page "https://github.com/nfrisby/invariant-functors")
4929 (synopsis "Haskell98 invariant functors")
4930 (description "Haskell98 invariant functors (also known as exponential
4931 functors). For more information, see Edward Kmett's article
4932 @uref{http://comonad.com/reader/2008/rotten-bananas/, Rotten Bananas}.")
4933 (license license:bsd-2)))
4934
4935 (define-public ghc-kan-extensions
4936 (package
4937 (name "ghc-kan-extensions")
4938 (version "5.2")
4939 (source
4940 (origin
4941 (method url-fetch)
4942 (uri (string-append
4943 "https://hackage.haskell.org/package/kan-extensions/kan-extensions-"
4944 version
4945 ".tar.gz"))
4946 (sha256
4947 (base32
4948 "1lyvyiwwh962j2nnnsqzlvp5zq6z8p3spvhmji99cjvldxc7wwkb"))))
4949 (build-system haskell-build-system)
4950 (inputs
4951 `(("ghc-adjunctions" ,ghc-adjunctions)
4952 ("ghc-comonad" ,ghc-comonad)
4953 ("ghc-contravariant" ,ghc-contravariant)
4954 ("ghc-distributive" ,ghc-distributive)
4955 ("ghc-free" ,ghc-free)
4956 ("ghc-invariant" ,ghc-invariant)
4957 ("ghc-semigroupoids" ,ghc-semigroupoids)
4958 ("ghc-tagged" ,ghc-tagged)
4959 ("ghc-transformers-compat" ,ghc-transformers-compat)))
4960 (home-page "https://github.com/ekmett/kan-extensions/")
4961 (synopsis "Kan extensions library")
4962 (description "This library provides Kan extensions, Kan lifts, various
4963 forms of the Yoneda lemma, and (co)density (co)monads for Haskell.")
4964 (license license:bsd-3)))
4965
4966 (define-public ghc-call-stack
4967 (package
4968 (name "ghc-call-stack")
4969 (version "0.1.0")
4970 (source
4971 (origin
4972 (method url-fetch)
4973 (uri (string-append "https://hackage.haskell.org/package/"
4974 "call-stack/call-stack-"
4975 version ".tar.gz"))
4976 (sha256
4977 (base32
4978 "1qmihf5jafmc79sk52l6gpx75f5bnla2lp62kh3p34x3j84mwpzj"))))
4979 (build-system haskell-build-system)
4980 (inputs `(("ghc-nanospec" ,ghc-nanospec)))
4981 (home-page "https://github.com/sol/call-stack#readme")
4982 (synopsis "Use GHC call-stacks in a backward compatible way")
4983 (description "This package provides a compatibility layer for using GHC
4984 call stacks with different versions of the compiler.")
4985 (license license:expat)))
4986
4987 ;; This is used as an input to ghc-hunit. We cannot use ghc-call-stack there,
4988 ;; because it depends on ghc-nanospec, which depends on ghc-hunit.
4989 (define-public ghc-call-stack-boot
4990 (hidden-package
4991 (package
4992 (inherit ghc-call-stack)
4993 (arguments '(#:tests? #f))
4994 (inputs '()))))
4995
4996 (define-public ghc-statevar
4997 (package
4998 (name "ghc-statevar")
4999 (version "1.1.1.1")
5000 (source
5001 (origin
5002 (method url-fetch)
5003 (uri (string-append
5004 "https://hackage.haskell.org/package/StateVar/StateVar-"
5005 version
5006 ".tar.gz"))
5007 (sha256
5008 (base32
5009 "08r2iw0gdmfs4f6wraaq19vfmkjdbics3dbhw39y7mdjd98kcr7b"))))
5010 (build-system haskell-build-system)
5011 (home-page "https://hackage.haskell.org/package/StateVar")
5012 (synopsis "State variables for Haskell")
5013 (description "This package provides state variables, which are references
5014 in the @code{IO} monad, like @code{IORef}s or parts of the OpenGL state.")
5015 (license license:bsd-3)))
5016
5017 (define-public ghc-lens
5018 (package
5019 (name "ghc-lens")
5020 (version "4.16.1")
5021 (source
5022 (origin
5023 (method url-fetch)
5024 (uri (string-append "https://hackage.haskell.org/package/lens/lens-"
5025 version ".tar.gz"))
5026 (sha256
5027 (base32
5028 "1im4drhbydbawd6i0jsrzpqihnmx4ywpkg7yg94ddwsw3mxwkgpm"))))
5029 (build-system haskell-build-system)
5030 (arguments
5031 `(#:cabal-revision
5032 ("2" "11h83lj5mba4grhz1qx3irz10ysm9c3k7k6i6xv2cr60q8xin3ri")))
5033 (inputs
5034 `(("ghc-base-orphans" ,ghc-base-orphans)
5035 ("ghc-bifunctors" ,ghc-bifunctors)
5036 ("ghc-distributive" ,ghc-distributive)
5037 ("ghc-exceptions" ,ghc-exceptions)
5038 ("ghc-free" ,ghc-free)
5039 ("ghc-kan-extensions" ,ghc-kan-extensions)
5040 ("ghc-parallel" ,ghc-parallel)
5041 ("ghc-reflection" ,ghc-reflection)
5042 ("ghc-semigroupoids" ,ghc-semigroupoids)
5043 ("ghc-vector" ,ghc-vector)
5044 ("ghc-call-stack" ,ghc-call-stack)
5045 ("ghc-comonad" ,ghc-comonad)
5046 ("ghc-contravariant" ,ghc-contravariant)
5047 ("ghc-hashable" ,ghc-hashable)
5048 ("ghc-profunctors" ,ghc-profunctors)
5049 ("ghc-semigroups" ,ghc-semigroups)
5050 ("ghc-tagged" ,ghc-tagged)
5051 ("ghc-transformers-compat" ,ghc-transformers-compat)
5052 ("ghc-unordered-containers" ,ghc-unordered-containers)
5053 ("ghc-void" ,ghc-void)
5054 ("ghc-generic-deriving" ,ghc-generic-deriving)
5055 ("ghc-nats" ,ghc-nats)
5056 ("ghc-simple-reflect" ,ghc-simple-reflect)
5057 ("hlint" ,hlint)))
5058 (native-inputs
5059 `(("cabal-doctest" ,cabal-doctest)
5060 ("ghc-doctest" ,ghc-doctest)
5061 ("ghc-hunit" ,ghc-hunit)
5062 ("ghc-test-framework" ,ghc-test-framework)
5063 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
5064 ("ghc-test-framework-th" ,ghc-test-framework-th)
5065 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)
5066 ("ghc-quickcheck" ,ghc-quickcheck)))
5067 (home-page "https://github.com/ekmett/lens/")
5068 (synopsis "Lenses, Folds and Traversals")
5069 (description "This library provides @code{Control.Lens}. The combinators
5070 in @code{Control.Lens} provide a highly generic toolbox for composing families
5071 of getters, folds, isomorphisms, traversals, setters and lenses and their
5072 indexed variants.")
5073 (license license:bsd-3)))
5074
5075 (define-public ghc-cheapskate
5076 (package
5077 (name "ghc-cheapskate")
5078 (version "0.1.1")
5079 (source
5080 (origin
5081 (method url-fetch)
5082 (uri (string-append
5083 "https://hackage.haskell.org/package/cheapskate/cheapskate-"
5084 version
5085 ".tar.gz"))
5086 (sha256
5087 (base32
5088 "1hiqi7h76shjzs2zj0j8g6wnq2hbiq1hmfafdazr97fba2zl2432"))))
5089 (build-system haskell-build-system)
5090 (inputs
5091 `(("ghc-blaze-html" ,ghc-blaze-html)
5092 ("ghc-xss-sanitize" ,ghc-xss-sanitize)
5093 ("ghc-data-default" ,ghc-data-default)
5094 ("ghc-syb" ,ghc-syb)
5095 ("ghc-uniplate" ,ghc-uniplate)))
5096 (home-page "https://github.com/jgm/cheapskate")
5097 (synopsis "Experimental markdown processor")
5098 (description "Cheapskate is an experimental Markdown processor in pure
5099 Haskell. It aims to process Markdown efficiently and in the most forgiving
5100 possible way. It is designed to deal with any input, including garbage, with
5101 linear performance. Output is sanitized by default for protection against
5102 cross-site scripting (@dfn{XSS}) attacks.")
5103 (license license:bsd-3)))
5104
5105 (define-public ghc-bifunctors
5106 (package
5107 (name "ghc-bifunctors")
5108 (version "5.5.3")
5109 (source
5110 (origin
5111 (method url-fetch)
5112 (uri (string-append
5113 "https://hackage.haskell.org/package/bifunctors/bifunctors-"
5114 version
5115 ".tar.gz"))
5116 (sha256
5117 (base32
5118 "1jn9rxg643xnlhrknmjz88nblcpsr45xwjkwwnn5nxpasa7m4d6l"))))
5119 (build-system haskell-build-system)
5120 (inputs
5121 `(("ghc-base-orphans" ,ghc-base-orphans)
5122 ("ghc-comonad" ,ghc-comonad)
5123 ("ghc-th-abstraction" ,ghc-th-abstraction)
5124 ("ghc-transformers-compat" ,ghc-transformers-compat)
5125 ("ghc-tagged" ,ghc-tagged)
5126 ("ghc-semigroups" ,ghc-semigroups)))
5127 (native-inputs
5128 `(("ghc-hspec" ,ghc-hspec)
5129 ("hspec-discover" ,hspec-discover)
5130 ("ghc-quickcheck" ,ghc-quickcheck)))
5131 (home-page "https://github.com/ekmett/bifunctors/")
5132 (synopsis "Bifunctors for Haskell")
5133 (description "This package provides bifunctors for Haskell.")
5134 (license license:bsd-3)))
5135
5136 (define-public ghc-semigroupoids
5137 (package
5138 (name "ghc-semigroupoids")
5139 (version "5.2.2")
5140 (source
5141 (origin
5142 (method url-fetch)
5143 (uri (string-append
5144 "https://hackage.haskell.org/package/semigroupoids/semigroupoids-"
5145 version
5146 ".tar.gz"))
5147 (sha256
5148 (base32
5149 "17i96y4iqj8clcs090lf6k0ij3j16nj14vsfwz0mm9nd6i4gbpp4"))))
5150 (build-system haskell-build-system)
5151 (arguments
5152 `(#:cabal-revision
5153 ("4" "0pqfrxzypjq6z8lgdkzq4vhcyqkpk5326hny0r6snpc3gm78r4ij")))
5154 (inputs
5155 `(("ghc-base-orphans" ,ghc-base-orphans)
5156 ("ghc-transformers-compat" ,ghc-transformers-compat)
5157 ("ghc-bifunctors" ,ghc-bifunctors)
5158 ("ghc-comonad" ,ghc-comonad)
5159 ("ghc-contravariant" ,ghc-contravariant)
5160 ("ghc-distributive" ,ghc-distributive)
5161 ("ghc-hashable" ,ghc-hashable)
5162 ("ghc-semigroups" ,ghc-semigroups)
5163 ("ghc-tagged" ,ghc-tagged)
5164 ("ghc-unordered-containers" ,ghc-unordered-containers)))
5165 (native-inputs
5166 `(("cabal-doctest" ,cabal-doctest)
5167 ("ghc-doctest" ,ghc-doctest)))
5168 (home-page "https://github.com/ekmett/semigroupoids")
5169 (synopsis "Semigroupoids operations for Haskell")
5170 (description "This library provides a wide array of (semi)groupoids and
5171 operations for working with them. A @code{Semigroupoid} is a @code{Category}
5172 without the requirement of identity arrows for every object in the category.
5173 A @code{Category} is any @code{Semigroupoid} for which the Yoneda lemma holds.
5174 Finally, to work with these weaker structures it is beneficial to have
5175 containers that can provide stronger guarantees about their contents, so
5176 versions of @code{Traversable} and @code{Foldable} that can be folded with
5177 just a @code{Semigroup} are added.")
5178 (license license:bsd-3)))
5179
5180 (define-public ghc-contravariant
5181 (package
5182 (name "ghc-contravariant")
5183 (version "1.4.1")
5184 (source
5185 (origin
5186 (method url-fetch)
5187 (uri (string-append
5188 "https://hackage.haskell.org/package/contravariant/contravariant-"
5189 version
5190 ".tar.gz"))
5191 (sha256
5192 (base32
5193 "1vfhk8c5cxmmakx7rflap1ipkx5q0j5vnlrcz7yz6y53kxhksgf9"))))
5194 (build-system haskell-build-system)
5195 (inputs
5196 `(("ghc-void" ,ghc-void)
5197 ("ghc-transformers-compat" ,ghc-transformers-compat)
5198 ("ghc-statevar" ,ghc-statevar)
5199 ("ghc-semigroups" ,ghc-semigroups)))
5200 (home-page
5201 "https://github.com/ekmett/contravariant/")
5202 (synopsis "Contravariant functors")
5203 (description "Contravariant functors for Haskell.")
5204 (license license:bsd-3)))
5205
5206 (define-public ghc-semigroups
5207 (package
5208 (name "ghc-semigroups")
5209 (version "0.18.5")
5210 (source
5211 (origin
5212 (method url-fetch)
5213 (uri (string-append
5214 "https://hackage.haskell.org/package/semigroups/semigroups-"
5215 version
5216 ".tar.gz"))
5217 (sha256
5218 (base32
5219 "17g29h62g1k51ghhvzkw72zksjgi6vs6bfipkj81pqw1dsprcamb"))))
5220 (build-system haskell-build-system)
5221 (inputs
5222 `(("ghc-nats" ,ghc-nats)
5223 ("ghc-tagged" ,ghc-tagged)
5224 ("ghc-unordered-containers" ,ghc-unordered-containers)
5225 ("ghc-hashable" ,ghc-hashable)))
5226 (home-page "https://github.com/ekmett/semigroups/")
5227 (synopsis "Semigroup operations for Haskell")
5228 (description "This package provides semigroups for Haskell. In
5229 mathematics, a semigroup is an algebraic structure consisting of a set
5230 together with an associative binary operation. A semigroup generalizes a
5231 monoid in that there might not exist an identity element. It
5232 also (originally) generalized a group (a monoid with all inverses) to a type
5233 where every element did not have to have an inverse, thus the name
5234 semigroup.")
5235 (license license:bsd-3)))
5236
5237 (define-public ghc-semigroups-bootstrap
5238 (package
5239 (inherit ghc-semigroups)
5240 (name "ghc-semigroups-bootstrap")
5241 (inputs
5242 `(("ghc-nats" ,ghc-nats-bootstrap)
5243 ("ghc-tagged" ,ghc-tagged)
5244 ("ghc-unordered-containers" ,ghc-unordered-containers-bootstrap)
5245 ("ghc-hashable" ,ghc-hashable-bootstrap)))
5246 (properties '(hidden? #t))))
5247
5248 (define-public ghc-free
5249 (package
5250 (name "ghc-free")
5251 (version "5.0.2")
5252 (source
5253 (origin
5254 (method url-fetch)
5255 (uri (string-append
5256 "https://hackage.haskell.org/package/free/free-"
5257 version
5258 ".tar.gz"))
5259 (sha256
5260 (base32
5261 "15m3n9vhz7z3kzv1w3wlfa3x8jp4cbrkwmrcjr7jlx39iqffn1gg"))))
5262 (build-system haskell-build-system)
5263 (inputs
5264 `(("ghc-prelude-extras" ,ghc-prelude-extras)
5265 ("ghc-profunctors" ,ghc-profunctors)
5266 ("ghc-exceptions" ,ghc-exceptions)
5267 ("ghc-bifunctors" ,ghc-bifunctors)
5268 ("ghc-comonad" ,ghc-comonad)
5269 ("ghc-distributive" ,ghc-distributive)
5270 ("ghc-semigroupoids" ,ghc-semigroupoids)
5271 ("ghc-semigroups" ,ghc-semigroups)
5272 ("ghc-transformers-base" ,ghc-transformers-base)
5273 ("ghc-transformers-compat" ,ghc-transformers-compat)))
5274 (home-page "https://github.com/ekmett/free/")
5275 (synopsis "Unrestricted monads for Haskell")
5276 (description "This library provides free monads, which are useful for many
5277 tree-like structures and domain specific languages. If @code{f} is a
5278 @code{Functor} then the free @code{Monad} on @code{f} is the type of trees
5279 whose nodes are labeled with the constructors of @code{f}. The word \"free\"
5280 is used in the sense of \"unrestricted\" rather than \"zero-cost\": @code{Free
5281 f} makes no constraining assumptions beyond those given by @code{f} and the
5282 definition of @code{Monad}.")
5283 (license license:bsd-3)))
5284
5285 (define-public ghc-adjunctions
5286 (package
5287 (name "ghc-adjunctions")
5288 (version "4.4")
5289 (source
5290 (origin
5291 (method url-fetch)
5292 (uri (string-append
5293 "https://hackage.haskell.org/package/adjunctions/adjunctions-"
5294 version
5295 ".tar.gz"))
5296 (sha256
5297 (base32
5298 "1sbal7cbhm12crfnfhkk322jnzgx7lhw3jzq0p463bipagsjwz2h"))))
5299 (build-system haskell-build-system)
5300 (inputs
5301 `(("ghc-profunctors" ,ghc-profunctors)
5302 ("ghc-comonad" ,ghc-comonad)
5303 ("ghc-contravariant" ,ghc-contravariant)
5304 ("ghc-distributive" ,ghc-distributive)
5305 ("ghc-free" ,ghc-free)
5306 ("ghc-tagged" ,ghc-tagged)
5307 ("ghc-semigroupoids" ,ghc-semigroupoids)
5308 ("ghc-semigroups" ,ghc-semigroups)
5309 ("ghc-transformers-compat" ,ghc-transformers-compat)
5310 ("ghc-void" ,ghc-void)))
5311 (native-inputs
5312 `(("ghc-generic-deriving" ,ghc-generic-deriving)
5313 ("ghc-hspec" ,ghc-hspec)
5314 ("hspec-discover" ,hspec-discover)))
5315 (home-page "https://github.com/ekmett/adjunctions/")
5316 (synopsis "Adjunctions and representable functors")
5317 (description "This library provides adjunctions and representable functors
5318 for Haskell.")
5319 (license license:bsd-3)))
5320
5321 (define-public ghc-equivalence
5322 (package
5323 (name "ghc-equivalence")
5324 (version "0.3.2")
5325 (source
5326 (origin
5327 (method url-fetch)
5328 (uri (string-append "https://hackage.haskell.org/package/equivalence"
5329 "/equivalence-" version ".tar.gz"))
5330 (sha256
5331 (base32 "0a85bdyyvjqs5z4kfhhf758210k9gi9dv42ik66a3jl0z7aix8kx"))))
5332 (build-system haskell-build-system)
5333 (inputs
5334 `(("ghc-stmonadtrans" ,ghc-stmonadtrans)
5335 ("ghc-transformers-compat" ,ghc-transformers-compat)
5336 ("ghc-quickcheck" ,ghc-quickcheck)
5337 ("ghc-test-framework" ,ghc-test-framework)
5338 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
5339 (home-page "https://github.com/pa-ba/equivalence")
5340 (synopsis "Maintaining an equivalence relation implemented as union-find")
5341 (description
5342 "This is an implementation of Tarjan's Union-Find algorithm (Robert E.@:
5343 Tarjan. \"Efficiency of a Good But Not Linear Set Union Algorithm\",JACM
5344 22(2), 1975) in order to maintain an equivalence relation. This
5345 implementation is a port of the @code{union-find} package using the @code{ST}
5346 monad transformer (instead of the IO monad).")
5347 (license license:bsd-3)))
5348
5349 (define-public ghc-fast-logger
5350 (package
5351 (name "ghc-fast-logger")
5352 (version "2.4.11")
5353 (source
5354 (origin
5355 (method url-fetch)
5356 (uri (string-append
5357 "https://hackage.haskell.org/package/fast-logger/fast-logger-"
5358 version
5359 ".tar.gz"))
5360 (sha256
5361 (base32
5362 "1ad2vq4nifdxshqk9yrmghqizhkgybfz134kpr6padglb2mxxrdv"))))
5363 (build-system haskell-build-system)
5364 (inputs
5365 `(("ghc-auto-update" ,ghc-auto-update)
5366 ("ghc-easy-file" ,ghc-easy-file)
5367 ("ghc-unix-time" ,ghc-unix-time)))
5368 (native-inputs
5369 `(("hspec-discover" ,hspec-discover)
5370 ("ghc-hspec" ,ghc-hspec)))
5371 (home-page "https://hackage.haskell.org/package/fast-logger")
5372 (synopsis "Fast logging system")
5373 (description "This library provides a fast logging system for Haskell.")
5374 (license license:bsd-3)))
5375
5376 (define-public ghc-doctest
5377 (package
5378 (name "ghc-doctest")
5379 (version "0.16.0")
5380 (source
5381 (origin
5382 (method url-fetch)
5383 (uri (string-append
5384 "https://hackage.haskell.org/package/doctest/doctest-"
5385 version
5386 ".tar.gz"))
5387 (sha256
5388 (base32
5389 "0hkccch65s3kp0b36h7bqhilnpi4bx8kngncm7ma9vbd3dwacjdv"))))
5390 (build-system haskell-build-system)
5391 (arguments `(#:tests? #f)) ; FIXME: missing test framework
5392 (inputs
5393 `(("ghc-syb" ,ghc-syb)
5394 ("ghc-paths" ,ghc-paths)
5395 ("ghc-base-compat" ,ghc-base-compat)
5396 ("ghc-code-page" ,ghc-code-page)
5397 ("ghc-hunit" ,ghc-hunit)
5398 ("ghc-hspec" ,ghc-hspec)
5399 ("ghc-quickcheck" ,ghc-quickcheck)
5400 ("ghc-stringbuilder" ,ghc-stringbuilder)
5401 ("ghc-silently" ,ghc-silently)
5402 ("ghc-setenv" ,ghc-setenv)))
5403 (home-page
5404 "https://github.com/sol/doctest#readme")
5405 (synopsis "Test interactive Haskell examples")
5406 (description "The doctest program checks examples in source code comments.
5407 It is modeled after doctest for Python, see
5408 @uref{https://docs.python.org/library/doctest.html, the Doctest website}.")
5409 (license license:expat)))
5410
5411 (define-public ghc-lifted-base
5412 (package
5413 (name "ghc-lifted-base")
5414 (version "0.2.3.12")
5415 (source
5416 (origin
5417 (method url-fetch)
5418 (uri (string-append
5419 "https://hackage.haskell.org/package/lifted-base/lifted-base-"
5420 version
5421 ".tar.gz"))
5422 (sha256
5423 (base32
5424 "1i8p8d3rkdh21bhgjjh32vd7qqjr7jq7p59qds0aw2kmargsjd61"))))
5425 (build-system haskell-build-system)
5426 (arguments `(#:tests? #f)) ; FIXME: Missing testing libraries.
5427 (inputs
5428 `(("ghc-transformers-base" ,ghc-transformers-base)
5429 ("ghc-monad-control" ,ghc-monad-control)
5430 ("ghc-transformers-compat" ,ghc-transformers-compat)
5431 ("ghc-hunit" ,ghc-hunit)))
5432 (home-page "https://github.com/basvandijk/lifted-base")
5433 (synopsis "Lifted IO operations from the base library")
5434 (description "Lifted-base exports IO operations from the @code{base}
5435 library lifted to any instance of @code{MonadBase} or @code{MonadBaseControl}.
5436 Note that not all modules from @code{base} are converted yet. The package
5437 includes a copy of the @code{monad-peel} test suite written by Anders
5438 Kaseorg.")
5439 (license license:bsd-3)))
5440
5441 (define-public ghc-word8
5442 (package
5443 (name "ghc-word8")
5444 (version "0.1.3")
5445 (source
5446 (origin
5447 (method url-fetch)
5448 (uri (string-append
5449 "https://hackage.haskell.org/package/word8/word8-"
5450 version
5451 ".tar.gz"))
5452 (sha256
5453 (base32
5454 "12jx7f13d2h1djq4fh4dyrab61sm49mj1w61j3rzp2vjfm696c16"))))
5455 (build-system haskell-build-system)
5456 (native-inputs
5457 `(("ghc-hspec" ,ghc-hspec)
5458 ("hspec-discover" ,hspec-discover)))
5459 (home-page "https://hackage.haskell.org/package/word8")
5460 (synopsis "Word8 library for Haskell")
5461 (description "Word8 library to be used with @code{Data.ByteString}.")
5462 (license license:bsd-3)))
5463
5464 (define-public ghc-stringsearch
5465 (package
5466 (name "ghc-stringsearch")
5467 (version "0.3.6.6")
5468 (source
5469 (origin
5470 (method url-fetch)
5471 (uri (string-append
5472 "https://hackage.haskell.org/package/stringsearch/stringsearch-"
5473 version
5474 ".tar.gz"))
5475 (sha256
5476 (base32
5477 "0jpy9xjcjdbpi3wk6mg7xwd7wfi2mma70p97v1ij5i8bj9qijpr9"))))
5478 (build-system haskell-build-system)
5479 (home-page "https://bitbucket.org/dafis/stringsearch")
5480 (synopsis "Fast searching, splitting and replacing of ByteStrings")
5481 (description "This package provides several functions to quickly search
5482 for substrings in strict or lazy @code{ByteStrings}. It also provides
5483 functions for breaking or splitting on substrings and replacing all
5484 occurrences of a substring (the first in case of overlaps) with another.")
5485 (license license:bsd-3)))
5486
5487 (define-public ghc-integer-logarithms
5488 (package
5489 (name "ghc-integer-logarithms")
5490 (version "1.0.2.1")
5491 (source
5492 (origin
5493 (method url-fetch)
5494 (uri (string-append "https://hackage.haskell.org/package/"
5495 "integer-logarithms/integer-logarithms-"
5496 version ".tar.gz"))
5497 (sha256
5498 (base32
5499 "1wj8kgjg5bn2yrs4zh9qfjv85cx6w998j9pi39yrbv305944mb9j"))))
5500 (build-system haskell-build-system)
5501 (arguments
5502 `(#:phases
5503 (modify-phases %standard-phases
5504 (add-before 'configure 'update-constraints
5505 (lambda _
5506 (substitute* "integer-logarithms.cabal"
5507 (("tasty >= 0\\.10 && < 1\\.1")
5508 "tasty >= 0.10 && < 1.2")))))))
5509 (native-inputs
5510 `(("ghc-quickcheck" ,ghc-quickcheck)
5511 ("ghc-smallcheck" ,ghc-smallcheck)
5512 ("ghc-tasty" ,ghc-tasty)
5513 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
5514 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
5515 ("ghc-tasty-smallcheck" ,ghc-tasty-smallcheck)))
5516 (home-page "https://github.com/Bodigrim/integer-logarithms")
5517 (synopsis "Integer logarithms")
5518 (description
5519 "This package provides the following modules:
5520 @code{Math.NumberTheory.Logarithms} and
5521 @code{Math.NumberTheory.Powers.Integer} from the @code{arithmoi} package,
5522 @code{GHC.Integer.Logarithms.Compat} and
5523 @code{Math.NumberTheory.Power.Natural}, as well as some additional functions
5524 in migrated modules.")
5525 (license license:expat)))
5526
5527 (define-public ghc-integer-logarithms-bootstrap
5528 (package
5529 (inherit ghc-integer-logarithms)
5530 (name "ghc-integer-logarithms-bootstrap")
5531 (arguments `(#:tests? #f))
5532 (native-inputs '())
5533 (properties '(hidden? #t))))
5534
5535 (define-public ghc-scientific
5536 (package
5537 (name "ghc-scientific")
5538 (version "0.3.6.2")
5539 (source
5540 (origin
5541 (method url-fetch)
5542 (uri (string-append
5543 "https://hackage.haskell.org/package/scientific/scientific-"
5544 version
5545 ".tar.gz"))
5546 (sha256
5547 (base32
5548 "03ql2f0ac8bsl524idy9xxa3kxisb2sj3avflzw580j5hzy0m397"))))
5549 (build-system haskell-build-system)
5550 (inputs
5551 `(("ghc-integer-logarithms" ,ghc-integer-logarithms)
5552 ("ghc-hashable" ,ghc-hashable)
5553 ("ghc-primitive" ,ghc-primitive)))
5554 (native-inputs
5555 `(("ghc-tasty" ,ghc-tasty)
5556 ("ghc-tasty-ant-xml" ,ghc-tasty-ant-xml)
5557 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
5558 ("ghc-tasty-smallcheck" ,ghc-tasty-smallcheck)
5559 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
5560 ("ghc-smallcheck" ,ghc-smallcheck)
5561 ("ghc-quickcheck" ,ghc-quickcheck)))
5562 (home-page "https://github.com/basvandijk/scientific")
5563 (synopsis "Numbers represented using scientific notation")
5564 (description "This package provides @code{Data.Scientific}, which provides
5565 the number type @code{Scientific}. Scientific numbers are arbitrary precision
5566 and space efficient. They are represented using
5567 @uref{https://en.wikipedia.org/wiki/Scientific_notation, scientific
5568 notation}.")
5569 (license license:bsd-3)))
5570
5571 (define-public ghc-scientific-bootstrap
5572 (package
5573 (inherit ghc-scientific)
5574 (name "ghc-scientific-bootstrap")
5575 (arguments `(#:tests? #f))
5576 (inputs
5577 `(("ghc-integer-logarithms" ,ghc-integer-logarithms-bootstrap)
5578 ("ghc-hashable" ,ghc-hashable)
5579 ("ghc-primitive" ,ghc-primitive)))
5580 (native-inputs '())
5581 (properties '(hidden? #t))))
5582
5583 (define-public ghc-boxes
5584 (package
5585 (name "ghc-boxes")
5586 (version "0.1.5")
5587 (source
5588 (origin
5589 (method url-fetch)
5590 (uri (string-append "https://hackage.haskell.org/package/boxes/boxes-"
5591 version ".tar.gz"))
5592 (sha256
5593 (base32 "1hsnmw95i58d4bkpxby3ddsj1cawypw4mdyb18m393s5i8p7iq9q"))))
5594 (build-system haskell-build-system)
5595 (inputs
5596 `(("ghc-split" ,ghc-split)
5597 ("ghc-quickcheck" ,ghc-quickcheck)))
5598 (home-page "https://hackage.haskell.org/package/boxes")
5599 (synopsis "2D text pretty-printing library")
5600 (description
5601 "Boxes is a pretty-printing library for laying out text in two dimensions,
5602 using a simple box model.")
5603 (license license:bsd-3)))
5604
5605 (define-public ghc-deepseq-generics
5606 (package
5607 (name "ghc-deepseq-generics")
5608 (version "0.2.0.0")
5609 (source (origin
5610 (method url-fetch)
5611 (uri (string-append "https://hackage.haskell.org/package/"
5612 "deepseq-generics/deepseq-generics-"
5613 version ".tar.gz"))
5614 (sha256
5615 (base32
5616 "17bwghc15mc9pchfd1w46jh2p3wzc86aj6a537wqwxn08rayzcxh"))))
5617 (build-system haskell-build-system)
5618 (arguments
5619 `(#:cabal-revision
5620 ("2" "1pnidf8w8x0w5fsqgv8hhrw07slmhxwy5x4fikgk0bd6k76aqicb")))
5621 (native-inputs
5622 `(("ghc-hunit" ,ghc-hunit)
5623 ("ghc-test-framework" ,ghc-test-framework)
5624 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)))
5625 (home-page "https://github.com/hvr/deepseq-generics")
5626 (synopsis "Generic RNF implementation")
5627 (description
5628 "This package provides a @code{GHC.Generics}-based
5629 @code{Control.DeepSeq.Generics.genericRnf} function which can be used for
5630 providing an @code{rnf} implementation.")
5631 (license license:bsd-3)))
5632
5633 (define-public ghc-string-qq
5634 (package
5635 (name "ghc-string-qq")
5636 (version "0.0.2")
5637 (source
5638 (origin
5639 (method url-fetch)
5640 (uri (string-append
5641 "https://hackage.haskell.org/package/string-qq/string-qq-"
5642 version
5643 ".tar.gz"))
5644 (sha256
5645 (base32
5646 "0662m3i5xrdrr95w829bszkhp88mj9iy1zya54vk2sl5hz9wlmwp"))))
5647 (build-system haskell-build-system)
5648 (home-page "http://hackage.haskell.org/package/string-qq")
5649 (synopsis
5650 "QuasiQuoter for non-interpolated strings, texts and bytestrings.")
5651 (description
5652 "This package provides a quasiquoter for non-interpolated strings, texts
5653 and bytestrings.")
5654 (license license:public-domain)))
5655
5656 (define-public ghc-pandoc-types
5657 (package
5658 (name "ghc-pandoc-types")
5659 (version "1.17.5.1")
5660 (source (origin
5661 (method url-fetch)
5662 (uri (string-append "https://hackage.haskell.org/package/"
5663 "pandoc-types/pandoc-types-"
5664 version ".tar.gz"))
5665 (sha256
5666 (base32
5667 "1q6v2bynij724fv347mhqxdscwifzrx5jb9mq80608qf638fn717"))))
5668 (build-system haskell-build-system)
5669 (inputs
5670 `(("ghc-syb" ,ghc-syb)
5671 ("ghc-aeson" ,ghc-aeson)
5672 ("ghc-string-qq" ,ghc-string-qq)))
5673 (native-inputs
5674 `(("ghc-quickcheck" ,ghc-quickcheck)
5675 ("ghc-test-framework" ,ghc-test-framework)
5676 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
5677 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)
5678 ("ghc-hunit" ,ghc-hunit)))
5679 (home-page "http://johnmacfarlane.net/pandoc")
5680 (synopsis "Types for representing a structured document")
5681 (description
5682 "This module defines the @code{Pandoc} data structure, which is used by
5683 pandoc to represent structured documents. It also provides functions for
5684 building up, manipulating and serialising @code{Pandoc} structures.")
5685 (license license:bsd-3)))
5686
5687 (define-public ghc-texmath
5688 (package
5689 (name "ghc-texmath")
5690 (version "0.11.0.1")
5691 (source (origin
5692 (method url-fetch)
5693 (uri (string-append "https://hackage.haskell.org/package/"
5694 "texmath/texmath-" version ".tar.gz"))
5695 (sha256
5696 (base32
5697 "11dc09hfnyfsz20ch2c867w0zdgjkzq41506lm61i3dk87ngdisf"))))
5698 (build-system haskell-build-system)
5699 (inputs
5700 `(("ghc-syb" ,ghc-syb)
5701 ("ghc-network-uri" ,ghc-network-uri)
5702 ("ghc-split" ,ghc-split)
5703 ("ghc-temporary" ,ghc-temporary)
5704 ("ghc-utf8-string" ,ghc-utf8-string)
5705 ("ghc-xml" ,ghc-xml)
5706 ("ghc-pandoc-types" ,ghc-pandoc-types)))
5707 (home-page "https://github.com/jgm/texmath")
5708 (synopsis "Conversion between formats used to represent mathematics")
5709 (description
5710 "The texmath library provides functions to read and write TeX math,
5711 presentation MathML, and OMML (Office Math Markup Language, used in Microsoft
5712 Office). Support is also included for converting math formats to pandoc's
5713 native format (allowing conversion, via pandoc, to a variety of different
5714 markup formats). The TeX reader supports basic LaTeX and AMS extensions, and
5715 it can parse and apply LaTeX macros.")
5716 (license license:gpl2+)))
5717
5718 (define-public ghc-regex-pcre-builtin
5719 (package
5720 (name "ghc-regex-pcre-builtin")
5721 (version "0.94.4.8.8.35")
5722 (source (origin
5723 (method url-fetch)
5724 (uri (string-append "https://hackage.haskell.org/package/"
5725 "regex-pcre-builtin/regex-pcre-builtin-"
5726 version ".tar.gz"))
5727 (sha256
5728 (base32
5729 "0y7as9wqlkykpipka2cfdhmcnin345q01pp0wsva8fwmvsavdl8b"))))
5730 (build-system haskell-build-system)
5731 (inputs
5732 `(("ghc-regex-base" ,ghc-regex-base)))
5733 (home-page "https://hackage.haskell.org/package/regex-pcre")
5734 (synopsis "Enhancement of the builtin Text.Regex library")
5735 (description
5736 "This package is an enhancement of the @code{Text.Regex} library,
5737 providing the PCRE backend to accompany regex-base, with bundled code from
5738 @url{https://www.pcre.org}.")
5739 (license license:bsd-3)))
5740
5741 (define-public ghc-diff
5742 (package
5743 (name "ghc-diff")
5744 (version "0.3.4")
5745 (source (origin
5746 (method url-fetch)
5747 (uri (string-append "https://hackage.haskell.org/package/"
5748 "Diff/Diff-" version ".tar.gz"))
5749 (sha256
5750 (base32
5751 "0bqcdvhxx8dmqc3793m6axg813wv9ldz2j37f1wygbbrbbndmdvp"))))
5752 (build-system haskell-build-system)
5753 (native-inputs
5754 `(("ghc-quickcheck" ,ghc-quickcheck)
5755 ("ghc-test-framework" ,ghc-test-framework)
5756 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
5757 (home-page "https://hub.darcs.net/sterlingclover/Diff")
5758 (synopsis "O(ND) diff algorithm in Haskell")
5759 (description
5760 "This package provides an implementation of the standard diff algorithm,
5761 and utilities for pretty printing.")
5762 (license license:bsd-3)))
5763
5764 (define-public ghc-highlighting-kate
5765 (package
5766 (name "ghc-highlighting-kate")
5767 (version "0.6.4")
5768 (source (origin
5769 (method url-fetch)
5770 (uri (string-append "https://hackage.haskell.org/package/"
5771 "highlighting-kate/highlighting-kate-"
5772 version ".tar.gz"))
5773 (sha256
5774 (base32
5775 "1bqv00gfmrsf0jjr4qf3lhshvfkyzmhbi3pjb6mafbnsyn2k7f6q"))))
5776 (build-system haskell-build-system)
5777 (inputs
5778 `(("ghc-diff" ,ghc-diff)
5779 ("ghc-regex-pcre-builtin" ,ghc-regex-pcre-builtin)))
5780 (native-inputs
5781 `(("ghc-blaze-html" ,ghc-blaze-html)
5782 ("ghc-utf8-string" ,ghc-utf8-string)))
5783 (home-page "https://github.com/jgm/highlighting-kate")
5784 (synopsis "Syntax highlighting library")
5785 (description
5786 "Highlighting-kate is a syntax highlighting library with support for
5787 nearly one hundred languages. The syntax parsers are automatically generated
5788 from @uref{https://kate-editor.org/, Kate syntax descriptions}, so any syntax
5789 supported by Kate can be added. An (optional) command-line program is
5790 provided, along with a utility for generating new parsers from Kate XML syntax
5791 descriptions.")
5792 (license license:gpl2+)))
5793
5794 (define-public ghc-cmark
5795 (package
5796 (name "ghc-cmark")
5797 (version "0.5.6")
5798 (source (origin
5799 (method url-fetch)
5800 ;; XXX As of version 0.5.6, this package bundles libcmark 0.28.0.
5801 ;; See cbits/cmark_version.h.
5802 (uri (string-append "https://hackage.haskell.org/package/"
5803 "cmark/cmark-" version ".tar.gz"))
5804 (sha256
5805 (base32
5806 "1c1j3a8b9qx5zk9myqm3gap8ymz7fipwrdmyfsq9wkkdr9x4np45"))))
5807 (build-system haskell-build-system)
5808 (native-inputs
5809 `(("ghc-hunit" ,ghc-hunit)))
5810 (home-page "https://github.com/jgm/commonmark-hs")
5811 (synopsis "Fast, accurate CommonMark (Markdown) parser and renderer")
5812 (description
5813 "This package provides Haskell bindings for
5814 @uref{https://github.com/jgm/cmark, libcmark}, the reference parser for
5815 CommonMark, a fully specified variant of Markdown. It includes bundled libcmark
5816 sources, and does not require prior installation of the C library.")
5817 (license license:bsd-3)))
5818
5819 (define-public ghc-cmark-gfm
5820 (package
5821 (name "ghc-cmark-gfm")
5822 (version "0.1.5")
5823 (source
5824 (origin
5825 (method url-fetch)
5826 (uri (string-append "https://hackage.haskell.org/package/"
5827 "cmark-gfm/cmark-gfm-"
5828 version ".tar.gz"))
5829 (sha256
5830 (base32
5831 "13b0mqks5c1q989slgsa3ixr5vvkfyic4ynzgv00kgl5qrs7hqk7"))))
5832 (build-system haskell-build-system)
5833 (native-inputs
5834 `(("ghc-hunit" ,ghc-hunit)))
5835 (home-page "https://github.com/kivikakk/cmark-gfm-hs")
5836 (synopsis
5837 "Fast, accurate GitHub Flavored Markdown parser and renderer")
5838 (description
5839 "This package provides Haskell bindings for libcmark-gfm, the reference
5840 parser for GitHub Flavored Markdown, a fully specified variant of Markdown.
5841 It includes sources for libcmark-gfm and does not require prior installation
5842 of the C library.")
5843 (license license:bsd-3)))
5844
5845 (define-public ghc-executable-path
5846 (package
5847 (name "ghc-executable-path")
5848 (version "0.0.3.1")
5849 (source (origin
5850 (method url-fetch)
5851 (uri (string-append "https://hackage.haskell.org/package/"
5852 "executable-path/executable-path-"
5853 version ".tar.gz"))
5854 (sha256
5855 (base32
5856 "0vxwmnsvx13cawcyhbyljkds0l1vr996ijldycx7nj0asjv45iww"))))
5857 (build-system haskell-build-system)
5858 (home-page "https://hackage.haskell.org/package/executable-path")
5859 (synopsis "Find out the full path of the executable")
5860 (description
5861 "The documentation of @code{System.Environment.getProgName} says that
5862 \"However, this is hard-to-impossible to implement on some non-Unix OSes, so
5863 instead, for maximum portability, we just return the leafname of the program
5864 as invoked.\" This library tries to provide the missing path.")
5865 (license license:public-domain)))
5866
5867 (define-public ghc-enclosed-exceptions
5868 (package
5869 (name "ghc-enclosed-exceptions")
5870 (version "1.0.3")
5871 (source (origin
5872 (method url-fetch)
5873 (uri (string-append "https://hackage.haskell.org/package/"
5874 "enclosed-exceptions/enclosed-exceptions-"
5875 version ".tar.gz"))
5876 (sha256
5877 (base32
5878 "1fghjj7nkiddrf03ks8brjpr5x25yi9fs7xg6adbi4mc2gqr6vdg"))))
5879 (build-system haskell-build-system)
5880 ;; FIXME: one of the tests blocks forever:
5881 ;; "thread blocked indefinitely in an MVar operation"
5882 (arguments '(#:tests? #f))
5883 (inputs
5884 `(("ghc-lifted-base" ,ghc-lifted-base)
5885 ("ghc-monad-control" ,ghc-monad-control)
5886 ("ghc-async" ,ghc-async)
5887 ("ghc-transformers-base" ,ghc-transformers-base)))
5888 (native-inputs
5889 `(("ghc-hspec" ,ghc-hspec)
5890 ("ghc-quickcheck" ,ghc-quickcheck)))
5891 (home-page "https://github.com/jcristovao/enclosed-exceptions")
5892 (synopsis "Catch all exceptions from within an enclosed computation")
5893 (description
5894 "This library implements a technique to catch all exceptions raised
5895 within an enclosed computation, while remaining responsive to (external)
5896 asynchronous exceptions.")
5897 (license license:expat)))
5898
5899 (define-public ghc-th-abstraction
5900 (package
5901 (name "ghc-th-abstraction")
5902 (version "0.2.8.0")
5903 (source
5904 (origin
5905 (method url-fetch)
5906 (uri (string-append "https://hackage.haskell.org/package/"
5907 "th-abstraction/th-abstraction-"
5908 version ".tar.gz"))
5909 (sha256
5910 (base32
5911 "0n17w4q2ykd0nica4sck2wng6md56rfad8x0icl0l8vnzb9nn4ya"))))
5912 (build-system haskell-build-system)
5913 (home-page "https://github.com/glguy/th-abstraction")
5914 (synopsis "Nicer interface for reified information about data types")
5915 (description
5916 "This package normalizes variations in the interface for inspecting
5917 datatype information via Template Haskell so that packages and support a
5918 single, easier to use informational datatype while supporting many versions of
5919 Template Haskell.")
5920 (license license:isc)))
5921
5922 (define-public ghc-th-lift
5923 (package
5924 (name "ghc-th-lift")
5925 (version "0.7.11")
5926 (source (origin
5927 (method url-fetch)
5928 (uri (string-append "https://hackage.haskell.org/package/"
5929 "th-lift/th-lift-" version ".tar.gz"))
5930 (sha256
5931 (base32
5932 "131360zxb0hazbqwbkk6ab2p77jkxr79bwwm618mrwrwkm3x2g6m"))))
5933 (build-system haskell-build-system)
5934 (inputs
5935 `(("ghc-th-abstraction" ,ghc-th-abstraction)))
5936 (home-page "https://github.com/mboes/th-lift")
5937 (synopsis "Derive Template Haskell's Lift class for datatypes")
5938 (description
5939 "This is a Haskell library to derive Template Haskell's Lift class for
5940 datatypes.")
5941 (license license:bsd-3)))
5942
5943 (define-public ghc-th-lift-instances
5944 (package
5945 (name "ghc-th-lift-instances")
5946 (version "0.1.11")
5947 (source
5948 (origin
5949 (method url-fetch)
5950 (uri (string-append "https://hackage.haskell.org/package/"
5951 "th-lift-instances/th-lift-instances-"
5952 version ".tar.gz"))
5953 (sha256
5954 (base32
5955 "1f56cp6ckcalld5jchv0kxpjkwcsixd7smd0g7r8cg67ppx6m90x"))))
5956 (build-system haskell-build-system)
5957 (inputs
5958 `(("ghc-th-lift" ,ghc-th-lift)
5959 ("ghc-vector" ,ghc-vector)
5960 ("ghc-quickcheck" ,ghc-quickcheck)))
5961 (home-page "https://github.com/bennofs/th-lift-instances/")
5962 (synopsis "Lift instances for template-haskell for common data types.")
5963 (description "Most data types in the Haskell platform do not have Lift
5964 instances. This package provides orphan instances for @code{containers},
5965 @code{text}, @code{bytestring} and @code{vector}.")
5966 (license license:bsd-3)))
5967
5968 (define-public ghc-th-expand-syns
5969 (package
5970 (name "ghc-th-expand-syns")
5971 (version "0.4.4.0")
5972 (source (origin
5973 (method url-fetch)
5974 (uri (string-append "https://hackage.haskell.org/package/"
5975 "th-expand-syns/th-expand-syns-"
5976 version ".tar.gz"))
5977 (sha256
5978 (base32
5979 "01prlvh3py5hq5ccjidfyp9ixq2zd88dkbsidyjrpkja6v8m43yc"))))
5980 (build-system haskell-build-system)
5981 (inputs
5982 `(("ghc-syb" ,ghc-syb)))
5983 (home-page "https://hackage.haskell.org/package/th-expand-syns")
5984 (synopsis "Expands type synonyms in Template Haskell ASTs")
5985 (description
5986 "This package enables users to expand type synonyms in Template Haskell
5987 @dfn{abstract syntax trees} (ASTs).")
5988 (license license:bsd-3)))
5989
5990 (define-public ghc-th-reify-many
5991 (package
5992 (name "ghc-th-reify-many")
5993 (version "0.1.8")
5994 (source (origin
5995 (method url-fetch)
5996 (uri (string-append "https://hackage.haskell.org/package/"
5997 "th-reify-many/th-reify-many-"
5998 version ".tar.gz"))
5999 (sha256
6000 (base32
6001 "0hzy6hvhvcd6i60vx5cp2b7ggmnnjh9rx4h8bm8xw4grglcaxjnf"))))
6002 (build-system haskell-build-system)
6003 (inputs
6004 `(("ghc-safe" ,ghc-safe)
6005 ("ghc-th-expand-syns" ,ghc-th-expand-syns)))
6006 (home-page "https://github.com/mgsloan/th-reify-many")
6007 (synopsis "Recurseively reify template haskell datatype info")
6008 (description
6009 "th-reify-many provides functions for recursively reifying top level
6010 declarations. The main intended use case is for enumerating the names of
6011 datatypes reachable from an initial datatype, and passing these names to some
6012 function which generates instances.")
6013 (license license:bsd-3)))
6014
6015 (define-public ghc-th-orphans
6016 (package
6017 (name "ghc-th-orphans")
6018 (version "0.13.6")
6019 (source (origin
6020 (method url-fetch)
6021 (uri (string-append "https://hackage.haskell.org/package/"
6022 "th-orphans/th-orphans-" version ".tar.gz"))
6023 (sha256
6024 (base32
6025 "0sfl3pn9kq9da3ji3lsgzgzy82vz6yvsg80dmakc1jvk7awycibp"))))
6026 (build-system haskell-build-system)
6027 (inputs
6028 `(("ghc-th-lift" ,ghc-th-lift)
6029 ("ghc-th-lift-instances" ,ghc-th-lift-instances)
6030 ("ghc-th-reify-many" ,ghc-th-reify-many)
6031 ("ghc-generic-deriving" ,ghc-generic-deriving)))
6032 (native-inputs
6033 `(("ghc-hspec" ,ghc-hspec)))
6034 (home-page "https://hackage.haskell.org/package/th-orphans")
6035 (synopsis "Orphan instances for TH datatypes")
6036 (description
6037 "This package provides orphan instances for Template Haskell datatypes. In particular,
6038 instances for @code{Ord} and @code{Lift}, as well as a few missing @code{Show}
6039 and @code{Eq} instances. These instances used to live in the haskell-src-meta
6040 package, and that's where the version number started.")
6041 (license license:bsd-3)))
6042
6043 (define-public ghc-geniplate-mirror
6044 (package
6045 (name "ghc-geniplate-mirror")
6046 (version "0.7.6")
6047 (source
6048 (origin
6049 (method url-fetch)
6050 (uri (string-append "https://hackage.haskell.org/package"
6051 "/geniplate-mirror"
6052 "/geniplate-mirror-" version ".tar.gz"))
6053 (sha256
6054 (base32 "1y0m0bw5zpm1y1y6d9qmxj3swl8j8hlw1shxbr5awycf6k884ssb"))))
6055 (build-system haskell-build-system)
6056 (home-page "https://github.com/danr/geniplate")
6057 (synopsis "Use Template Haskell to generate Uniplate-like functions")
6058 (description
6059 "Use Template Haskell to generate Uniplate-like functions. This is a
6060 maintained mirror of the @uref{https://hackage.haskell.org/package/geniplate,
6061 geniplate} package, written by Lennart Augustsson.")
6062 (license license:bsd-3)))
6063
6064 (define-public ghc-gitrev
6065 (package
6066 (name "ghc-gitrev")
6067 (version "1.3.1")
6068 (source
6069 (origin
6070 (method url-fetch)
6071 (uri (string-append "https://hackage.haskell.org/package/gitrev/gitrev-"
6072 version ".tar.gz"))
6073 (sha256
6074 (base32 "0cl3lfm6k1h8fxp2vxa6ihfp4v8igkz9h35iwyq2frzm4kdn96d8"))))
6075 (build-system haskell-build-system)
6076 (inputs `(("ghc-base-compat" ,ghc-base-compat)))
6077 (home-page "https://github.com/acfoltzer/gitrev")
6078 (synopsis "Compile git revision info into Haskell projects")
6079 (description
6080 "This package provides some handy Template Haskell splices for including
6081 the current git hash and branch in the code of your project. This is useful
6082 for including in panic messages, @command{--version} output, or diagnostic
6083 info for more informative bug reports.")
6084 (license license:bsd-3)))
6085
6086 (define-public ghc-haskell-src-meta
6087 (package
6088 (name "ghc-haskell-src-meta")
6089 (version "0.8.0.3")
6090 (source (origin
6091 (method url-fetch)
6092 (uri (string-append "https://hackage.haskell.org/package/"
6093 "haskell-src-meta/haskell-src-meta-"
6094 version ".tar.gz"))
6095 (sha256
6096 (base32
6097 "08jq156zv4m0fjq6712n99c1jwxnpa6kj6sq8ch0r1l0a1ay6ww4"))))
6098 (build-system haskell-build-system)
6099 (inputs
6100 `(("ghc-haskell-src-exts" ,ghc-haskell-src-exts)
6101 ("ghc-syb" ,ghc-syb)
6102 ("ghc-th-orphans" ,ghc-th-orphans)))
6103 (native-inputs
6104 `(("ghc-hunit" ,ghc-hunit)
6105 ("ghc-test-framework" ,ghc-test-framework)
6106 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)))
6107 (home-page "https://hackage.haskell.org/package/haskell-src-meta")
6108 (synopsis "Parse source to template-haskell abstract syntax")
6109 (description
6110 "This package provides tools to parse Haskell sources to the
6111 template-haskell abstract syntax.")
6112 (license license:bsd-3)))
6113
6114 (define-public ghc-conduit
6115 (package
6116 (name "ghc-conduit")
6117 (version "1.3.0.3")
6118 (source (origin
6119 (method url-fetch)
6120 (uri (string-append "https://hackage.haskell.org/package/"
6121 "conduit/conduit-" version ".tar.gz"))
6122 (sha256
6123 (base32
6124 "1sangm0qqi9dzlq95746a3kl14k8b09592a423shxjf2a0b1yx5v"))))
6125 (build-system haskell-build-system)
6126 (inputs
6127 `(("ghc-exceptions" ,ghc-exceptions)
6128 ("ghc-lifted-base" ,ghc-lifted-base)
6129 ("ghc-mono-traversable" ,ghc-mono-traversable)
6130 ("ghc-mmorph" ,ghc-mmorph)
6131 ("ghc-resourcet" ,ghc-resourcet)
6132 ("ghc-silently" ,ghc-silently)
6133 ("ghc-transformers-base" ,ghc-transformers-base)
6134 ("ghc-unliftio" ,ghc-unliftio)
6135 ("ghc-unliftio-core" ,ghc-unliftio-core)
6136 ("ghc-vector" ,ghc-vector)
6137 ("ghc-void" ,ghc-void)))
6138 (native-inputs
6139 `(("ghc-quickcheck" ,ghc-quickcheck)
6140 ("ghc-hspec" ,ghc-hspec)
6141 ("ghc-safe" ,ghc-safe)
6142 ("ghc-split" ,ghc-split)))
6143 (home-page "https://github.com/snoyberg/conduit")
6144 (synopsis "Streaming data library ")
6145 (description
6146 "The conduit package is a solution to the streaming data problem,
6147 allowing for production, transformation, and consumption of streams of data
6148 in constant memory. It is an alternative to lazy I/O which guarantees
6149 deterministic resource handling, and fits in the same general solution
6150 space as enumerator/iteratee and pipes.")
6151 (license license:expat)))
6152
6153 (define-public ghc-logging-facade
6154 (package
6155 (name "ghc-logging-facade")
6156 (version "0.3.0")
6157 (source (origin
6158 (method url-fetch)
6159 (uri (string-append "https://hackage.haskell.org/package/"
6160 "logging-facade/logging-facade-"
6161 version ".tar.gz"))
6162 (sha256
6163 (base32
6164 "0d0lwxxgd16is9aw6v3ps4r9prv3dj8xscmm45fvzq3nicjiawcf"))))
6165 (build-system haskell-build-system)
6166 (native-inputs
6167 `(("ghc-hspec" ,ghc-hspec)
6168 ("hspec-discover" ,hspec-discover)))
6169 (home-page "https://hackage.haskell.org/package/logging-facade")
6170 (synopsis "Simple logging abstraction that allows multiple back-ends")
6171 (description
6172 "This package provides a simple logging abstraction that allows multiple
6173 back-ends.")
6174 (license license:expat)))
6175
6176 (define-public ghc-mockery
6177 (package
6178 (name "ghc-mockery")
6179 (version "0.3.5")
6180 (source (origin
6181 (method url-fetch)
6182 (uri (string-append "https://hackage.haskell.org/package/"
6183 "mockery/mockery-" version ".tar.gz"))
6184 (sha256
6185 (base32
6186 "09ypgm3z69gq8mj6y66ss58kbjnk15r8frwcwbqcfbfksfnfv8dp"))))
6187 (build-system haskell-build-system)
6188 (inputs
6189 `(("ghc-temporary" ,ghc-temporary)
6190 ("ghc-logging-facade" ,ghc-logging-facade)
6191 ("ghc-base-compat" ,ghc-base-compat)))
6192 (native-inputs
6193 `(("ghc-hspec" ,ghc-hspec)
6194 ("hspec-discover" ,hspec-discover)))
6195 (home-page "https://hackage.haskell.org/package/mockery")
6196 (synopsis "Support functions for automated testing")
6197 (description
6198 "The mockery package provides support functions for automated testing.")
6199 (license license:expat)))
6200
6201 (define-public ghc-yaml
6202 (package
6203 (name "ghc-yaml")
6204 (version "0.8.32")
6205 (source (origin
6206 (method url-fetch)
6207 (uri (string-append "https://hackage.haskell.org/package/"
6208 "yaml/yaml-" version ".tar.gz"))
6209 (sha256
6210 (base32
6211 "0cbsyh4ilvjzq1q7pxls43k6pdqxg1l85xzibcwpbvmlvrizh86w"))))
6212 (build-system haskell-build-system)
6213 (inputs
6214 `(("ghc-conduit" ,ghc-conduit)
6215 ("ghc-resourcet" ,ghc-resourcet)
6216 ("ghc-aeson" ,ghc-aeson)
6217 ("ghc-unordered-containers" ,ghc-unordered-containers)
6218 ("ghc-vector" ,ghc-vector)
6219 ("ghc-attoparsec" ,ghc-attoparsec)
6220 ("ghc-scientific" ,ghc-scientific)
6221 ("ghc-semigroups" ,ghc-semigroups)
6222 ("ghc-temporary" ,ghc-temporary)
6223 ("ghc-enclosed-exceptions" ,ghc-enclosed-exceptions)
6224 ("ghc-base-compat" ,ghc-base-compat)))
6225 (native-inputs
6226 `(("ghc-hspec" ,ghc-hspec)
6227 ("ghc-hunit" ,ghc-hunit)
6228 ("hspec-discover" ,hspec-discover)
6229 ("ghc-mockery" ,ghc-mockery)))
6230 (home-page "https://github.com/snoyberg/yaml/")
6231 (synopsis "Parsing and rendering YAML documents")
6232 (description
6233 "This package provides a library to parse and render YAML documents.")
6234 (license license:bsd-3)))
6235
6236 (define-public ghc-filemanip
6237 (package
6238 (name "ghc-filemanip")
6239 (version "0.3.6.3")
6240 (source (origin
6241 (method url-fetch)
6242 (uri (string-append "https://hackage.haskell.org/package/"
6243 "filemanip/filemanip-" version ".tar.gz"))
6244 (sha256
6245 (base32
6246 "0ilqr8jv41zxcj5qyicg29m8s30b9v70x6f9h2h2rw5ap8bxldl8"))))
6247 (build-system haskell-build-system)
6248 (inputs
6249 `(("ghc-unix-compat" ,ghc-unix-compat)))
6250 (home-page "https://github.com/bos/filemanip")
6251 (synopsis "File and directory manipulation for Haskell")
6252 (description
6253 "This package provides a Haskell library for working with files and
6254 directories. It includes code for pattern matching, finding files, modifying
6255 file contents, and more.")
6256 (license license:bsd-3)))
6257
6258 (define-public ghc-mmap
6259 (package
6260 (name "ghc-mmap")
6261 (version "0.5.9")
6262 (source (origin
6263 (method url-fetch)
6264 (uri (string-append "https://hackage.haskell.org/package/"
6265 "mmap/mmap-" version ".tar.gz"))
6266 (sha256
6267 (base32
6268 "1y5mk3yf4b8r6rzmlx1xqn4skaigrqnv08sqq0v7r3nbw42bpz2q"))))
6269 (build-system haskell-build-system)
6270 (home-page "https://hackage.haskell.org/package/mmap")
6271 (synopsis "Memory mapped files for Haskell")
6272 (description
6273 "This library provides a wrapper to @code{mmap}, allowing files or
6274 devices to be lazily loaded into memory as strict or lazy @code{ByteStrings},
6275 @code{ForeignPtrs} or plain @code{Ptrs}, using the virtual memory subsystem to
6276 do on-demand loading.")
6277 (license license:bsd-3)))
6278
6279 (define-public ghc-juicypixels
6280 (package
6281 (name "ghc-juicypixels")
6282 (version "3.2.9.5")
6283 (source (origin
6284 (method url-fetch)
6285 (uri (string-append "https://hackage.haskell.org/package/"
6286 "JuicyPixels/JuicyPixels-"
6287 version ".tar.gz"))
6288 (sha256
6289 (base32
6290 "0mf3ihr0xy2wc2wzb9a17g0n3p60x7pvm8akwpvhdy8klvs6r744"))))
6291 (build-system haskell-build-system)
6292 (inputs
6293 `(("ghc-zlib" ,ghc-zlib)
6294 ("ghc-vector" ,ghc-vector)
6295 ("ghc-primitive" ,ghc-primitive)
6296 ("ghc-mmap" ,ghc-mmap)))
6297 (home-page "https://github.com/Twinside/Juicy.Pixels")
6298 (synopsis "Picture loading and serialization library")
6299 (description
6300 "This library can load and store images in PNG, Bitmap, JPEG, Radiance,
6301 TIFF and GIF formats.")
6302 (license license:bsd-3)))
6303
6304 (define-public ghc-hslua
6305 (package
6306 (name "ghc-hslua")
6307 (version "0.9.5.2")
6308 (source (origin
6309 (method url-fetch)
6310 (uri (string-append "https://hackage.haskell.org/package/"
6311 "hslua/hslua-" version ".tar.gz"))
6312 (sha256
6313 (base32
6314 "1rdvv01p214zfjh6fcqjjgqwi8y42wad6cqzhlcv5gvclzw2ck8f"))))
6315 (build-system haskell-build-system)
6316 (arguments
6317 `(#:configure-flags '("-fsystem-lua")))
6318 (inputs
6319 `(("lua" ,lua)
6320 ("ghc-exceptions" ,ghc-exceptions)
6321 ("ghc-fail" ,ghc-fail)))
6322 (native-inputs
6323 `(("ghc-tasty" ,ghc-tasty)
6324 ("ghc-tasty-expected-failure" ,ghc-tasty-expected-failure)
6325 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
6326 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
6327 ("ghc-quickcheck" ,ghc-quickcheck)
6328 ("ghc-quickcheck-instances" ,ghc-quickcheck-instances)))
6329 (home-page "https://hackage.haskell.org/package/hslua")
6330 (synopsis "Lua language interpreter embedding in Haskell")
6331 (description
6332 "The Scripting.Lua module is a wrapper of the Lua language interpreter as
6333 described in @url{https://www.lua.org/}.")
6334 (license license:expat)))
6335
6336 (define-public ghc-hslua-module-text
6337 (package
6338 (name "ghc-hslua-module-text")
6339 (version "0.1.2.1")
6340 (source
6341 (origin
6342 (method url-fetch)
6343 (uri (string-append "https://hackage.haskell.org/package/"
6344 "hslua-module-text/hslua-module-text-"
6345 version ".tar.gz"))
6346 (sha256
6347 (base32
6348 "0bcfpb1dhnxp0gr376ai4w7vczr9zrjl1r3r6w7kcxivfkwq9cxf"))))
6349 (build-system haskell-build-system)
6350 (arguments
6351 `(#:cabal-revision
6352 ("1" "0vajlsd7y6pwa08635q0cx8z5c1c55bk7fvavw7g2vmyvxqjzx6n")))
6353 (inputs
6354 `(("ghc-hslua" ,ghc-hslua)))
6355 (native-inputs
6356 `(("ghc-tasty" ,ghc-tasty)
6357 ("ghc-tasty-hunit" ,ghc-tasty-hunit)))
6358 (home-page "https://github.com/hslua/hslua-module-text")
6359 (synopsis "Lua module for text")
6360 (description
6361 "This package provides a UTF-8 aware subset of Lua's @code{string} module
6362 for Haskell. The functions provided by this module are @code{upper},
6363 @code{lower}, @code{len}, @code{reverse}, and @code{sub}.")
6364 (license license:expat)))
6365
6366 (define-public ghc-byteable
6367 (package
6368 (name "ghc-byteable")
6369 (version "0.1.1")
6370 (source (origin
6371 (method url-fetch)
6372 (uri (string-append "https://hackage.haskell.org/package/"
6373 "byteable/byteable-" version ".tar.gz"))
6374 (sha256
6375 (base32
6376 "1qizg0kxxjqnd3cbrjhhidk5pbbciz0pb3z5kzikjjxnnnhk8fr4"))))
6377 (build-system haskell-build-system)
6378 (home-page "https://github.com/vincenthz/hs-byteable")
6379 (synopsis "Type class for sequence of bytes")
6380 (description
6381 "This package provides an abstract class to manipulate sequence of bytes.
6382 The use case of this class is abstracting manipulation of types that are just
6383 wrapping a bytestring with stronger and more meaniful name.")
6384 (license license:bsd-3)))
6385
6386 (define-public ghc-hourglass
6387 (package
6388 (name "ghc-hourglass")
6389 (version "0.2.12")
6390 (source (origin
6391 (method url-fetch)
6392 (uri (string-append "https://hackage.haskell.org/package/"
6393 "hourglass/hourglass-" version ".tar.gz"))
6394 (sha256
6395 (base32
6396 "0jnay5j13vpz6i1rkaj3j0d9v8jfpri499xn3l7wd01f81f5ncs4"))))
6397 (build-system haskell-build-system)
6398 (inputs
6399 `(("ghc-old-locale" ,ghc-old-locale)))
6400 (native-inputs
6401 `(("ghc-tasty" ,ghc-tasty)
6402 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
6403 ("ghc-tasty-hunit" ,ghc-tasty-hunit)))
6404 (home-page "https://github.com/vincenthz/hs-hourglass")
6405 (synopsis "Simple time-related library for Haskell")
6406 (description
6407 "This is a simple time library providing a simple but powerful and
6408 performant API. The backbone of the library are the @code{Timeable} and
6409 @code{Time} type classes. Each @code{Timeable} instances can be converted to
6410 a type that has a @code{Time} instances, and thus are different
6411 representations of current time.")
6412 (license license:bsd-3)))
6413
6414 (define-public ghc-edit-distance
6415 (package
6416 (name "ghc-edit-distance")
6417 (version "0.2.2.1")
6418 (source
6419 (origin
6420 (method url-fetch)
6421 (uri (string-append "https://hackage.haskell.org/package/edit-distance"
6422 "/edit-distance-" version ".tar.gz"))
6423 (sha256
6424 (base32 "0jkca97zyv23yyilp3jydcrzxqhyk27swhzh82llvban5zp8b21y"))))
6425 (build-system haskell-build-system)
6426 (arguments
6427 `(#:phases
6428 (modify-phases %standard-phases
6429 (add-before 'configure 'update-constraints
6430 (lambda _
6431 (substitute* "edit-distance.cabal"
6432 (("QuickCheck >= 2\\.4 && <2\\.9")
6433 "QuickCheck >= 2.4 && < 2.12")))))))
6434 (inputs
6435 `(("ghc-random" ,ghc-random)
6436 ("ghc-test-framework" ,ghc-test-framework)
6437 ("ghc-quickcheck" ,ghc-quickcheck)
6438 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
6439 (home-page "https://github.com/phadej/edit-distance")
6440 (synopsis "Levenshtein and restricted Damerau-Levenshtein edit distances")
6441 (description
6442 "This package provides optimized functions to determine the edit
6443 distances for fuzzy matching, including Levenshtein and restricted
6444 Damerau-Levenshtein algorithms.")
6445 (license license:bsd-3)))
6446
6447 (define-public ghc-memory
6448 (package
6449 (name "ghc-memory")
6450 (version "0.14.16")
6451 (source (origin
6452 (method url-fetch)
6453 (uri (string-append "https://hackage.haskell.org/package/"
6454 "memory/memory-" version ".tar.gz"))
6455 (sha256
6456 (base32
6457 "03rbszi5d4z9rlbfv8ydrl1xf84xsh8z57g07f7j9qccn9587c3v"))))
6458 (build-system haskell-build-system)
6459 (inputs
6460 `(("ghc-basement" ,ghc-basement)
6461 ("ghc-foundation" ,ghc-foundation)))
6462 (native-inputs
6463 `(("ghc-tasty" ,ghc-tasty)
6464 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
6465 ("ghc-tasty-hunit" ,ghc-tasty-hunit)))
6466 (home-page "https://github.com/vincenthz/hs-memory")
6467 (synopsis "Memory abstractions for Haskell")
6468 (description
6469 "This package provides memory abstractions, such as chunk of memory,
6470 polymorphic byte array management and manipulation functions. It contains a
6471 polymorphic byte array abstraction and functions similar to strict ByteString,
6472 different type of byte array abstraction, raw memory IO operations (memory
6473 set, memory copy, ..) and more")
6474 (license license:bsd-3)))
6475
6476 (define-public ghc-socks
6477 (package
6478 (name "ghc-socks")
6479 (version "0.5.6")
6480 (source (origin
6481 (method url-fetch)
6482 (uri (string-append "https://hackage.haskell.org/package/"
6483 "socks/socks-" version ".tar.gz"))
6484 (sha256
6485 (base32
6486 "0f44qy74i0n6ll3jym0a2ipafkpw1h67amcpqmj8iq95h21wsqzs"))))
6487 (build-system haskell-build-system)
6488 (inputs
6489 `(("ghc-cereal" ,ghc-cereal)
6490 ("ghc-network" ,ghc-network)))
6491 (home-page "https://github.com/vincenthz/hs-socks")
6492 (synopsis "SOCKS proxy (version 5) implementation")
6493 (description
6494 "This library provides a SOCKS proxy (version 5) implementation.")
6495 (license license:bsd-3)))
6496
6497 (define-public ghc-connection
6498 (package
6499 (name "ghc-connection")
6500 (version "0.2.8")
6501 (source (origin
6502 (method url-fetch)
6503 (uri (string-append "https://hackage.haskell.org/package/"
6504 "connection/connection-"
6505 version ".tar.gz"))
6506 (sha256
6507 (base32
6508 "1swkb9w5vx9ph7x55y51dc0srj2z27nd9ibgn8c0qcl6hx7g9cbh"))))
6509 (build-system haskell-build-system)
6510 (inputs
6511 `(("ghc-byteable" ,ghc-byteable)
6512 ("ghc-data-default-class" ,ghc-data-default-class)
6513 ("ghc-network" ,ghc-network)
6514 ("ghc-tls" ,ghc-tls)
6515 ("ghc-socks" ,ghc-socks)
6516 ("ghc-x509" ,ghc-x509)
6517 ("ghc-x509-store" ,ghc-x509-store)
6518 ("ghc-x509-system" ,ghc-x509-system)
6519 ("ghc-x509-validation" ,ghc-x509-validation)))
6520 (home-page "https://github.com/vincenthz/hs-connection")
6521 (synopsis "Simple and easy network connections API")
6522 (description
6523 "This package provides a simple network library for all your connection
6524 needs. It provides a very simple API to create sockets to a destination with
6525 the choice of SSL/TLS, and SOCKS.")
6526 (license license:bsd-3)))
6527
6528 (define-public ghc-skylighting-core
6529 (package
6530 (name "ghc-skylighting-core")
6531 (version "0.7.2")
6532 (source (origin
6533 (method url-fetch)
6534 (uri (string-append "https://hackage.haskell.org/package/"
6535 "skylighting-core/skylighting-core-"
6536 version ".tar.gz"))
6537 (sha256
6538 (base32
6539 "066fwmwsd7xcvwlinfk2izlzq0xp8697i6lnbgsbl71jdybyackq"))))
6540 (build-system haskell-build-system)
6541 (inputs
6542 `(("ghc-aeson" ,ghc-aeson)
6543 ("ghc-ansi-terminal" ,ghc-ansi-terminal)
6544 ("ghc-attoparsec" ,ghc-attoparsec)
6545 ("ghc-base64-bytestring" ,ghc-base64-bytestring)
6546 ("ghc-blaze-html" ,ghc-blaze-html)
6547 ("ghc-case-insensitive" ,ghc-case-insensitive)
6548 ("ghc-colour" ,ghc-colour)
6549 ("ghc-hxt" ,ghc-hxt)
6550 ("ghc-regex-pcre-builtin" ,ghc-regex-pcre-builtin)
6551 ("ghc-safe" ,ghc-safe)
6552 ("ghc-utf8-string" ,ghc-utf8-string)))
6553 (native-inputs
6554 `(("ghc-diff" ,ghc-diff)
6555 ("ghc-hunit" ,ghc-hunit)
6556 ("ghc-pretty-show" ,ghc-pretty-show)
6557 ("ghc-quickcheck" ,ghc-quickcheck)
6558 ("ghc-tasty" ,ghc-tasty)
6559 ("ghc-tasty-golden" ,ghc-tasty-golden)
6560 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
6561 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
6562 (home-page "https://github.com/jgm/skylighting")
6563 (synopsis "Syntax highlighting library")
6564 (description "Skylighting is a syntax highlighting library with support
6565 for over one hundred languages. It derives its tokenizers from XML syntax
6566 definitions used by KDE's @code{KSyntaxHighlighting} framework, so any syntax
6567 supported by that framework can be added. An optional command-line program is
6568 provided. Skylighting is intended to be the successor to highlighting-kate.")
6569 (license license:gpl2)))
6570
6571 (define-public ghc-skylighting
6572 (package
6573 (inherit ghc-skylighting-core)
6574 (name "ghc-skylighting")
6575 (version "0.7.2")
6576 (source (origin
6577 (method url-fetch)
6578 (uri (string-append "https://hackage.haskell.org/package/skylighting-"
6579 version "/skylighting-" version ".tar.gz"))
6580 (sha256
6581 (base32
6582 "1rh3z1a7a4clvksdw1qlpmhxqkfahwypi70k91whgfamzsqpxdch"))))
6583 (inputs
6584 `(("ghc-skylighting-core" ,ghc-skylighting-core)
6585 ,@(package-inputs ghc-skylighting-core)))))
6586
6587 (define-public ghc-doctemplates
6588 (package
6589 (name "ghc-doctemplates")
6590 (version "0.2.2.1")
6591 (source
6592 (origin
6593 (method url-fetch)
6594 (uri (string-append "https://hackage.haskell.org/package/"
6595 "doctemplates/doctemplates-"
6596 version ".tar.gz"))
6597 (sha256
6598 (base32
6599 "1gyckfg3kgvzhxw14i7iwrw0crygvsp86sy53bbr1yn7bxbgn33b"))))
6600 (build-system haskell-build-system)
6601 (inputs
6602 `(("ghc-aeson" ,ghc-aeson)
6603 ("ghc-blaze-markup" ,ghc-blaze-markup)
6604 ("ghc-blaze-html" ,ghc-blaze-html)
6605 ("ghc-vector" ,ghc-vector)
6606 ("ghc-unordered-containers" ,ghc-unordered-containers)
6607 ("ghc-scientific" ,ghc-scientific)))
6608 (native-inputs
6609 `(("ghc-hspec" ,ghc-hspec)))
6610 (home-page "https://github.com/jgm/doctemplates#readme")
6611 (synopsis "Pandoc-style document templates")
6612 (description
6613 "This package provides a simple text templating system used by pandoc.")
6614 (license license:bsd-3)))
6615
6616 (define-public ghc-pandoc
6617 (package
6618 (name "ghc-pandoc")
6619 (version "2.2.1")
6620 (source
6621 (origin
6622 (method url-fetch)
6623 (uri (string-append "https://hackage.haskell.org/package/pandoc/pandoc-"
6624 version ".tar.gz"))
6625 (sha256
6626 (base32
6627 "1dqin92w513l7whg5wdgrngnxsj5mb8gppfvn7kjgyv2pdgpy0zy"))))
6628 (build-system haskell-build-system)
6629 (arguments
6630 `(#:phases
6631 (modify-phases %standard-phases
6632 (add-before 'configure 'update-constraints
6633 (lambda _
6634 (substitute* "pandoc.cabal"
6635 (("tasty >= 0\\.11 && < 1\\.1")
6636 "tasty >= 0.11 && < 1.1.1"))))
6637 (add-before 'configure 'patch-tests
6638 (lambda _
6639 ;; These tests fail benignly and have been adjusted upstream:
6640 ;; <https://github.com/commercialhaskell/stackage/issues/3719>.
6641 (substitute* "test/Tests/Old.hs"
6642 (("lhsWriterTests \"html\"") "[]")))))))
6643 (inputs
6644 `(("ghc-aeson" ,ghc-aeson)
6645 ("ghc-aeson-pretty" ,ghc-aeson-pretty)
6646 ("ghc-base64-bytestring" ,ghc-base64-bytestring)
6647 ("ghc-blaze-html" ,ghc-blaze-html)
6648 ("ghc-blaze-markup" ,ghc-blaze-markup)
6649 ("ghc-cmark-gfm" ,ghc-cmark-gfm)
6650 ("ghc-data-default" ,ghc-data-default)
6651 ("ghc-deepseq-generics" ,ghc-deepseq-generics)
6652 ("ghc-diff" ,ghc-diff)
6653 ("ghc-doctemplates" ,ghc-doctemplates)
6654 ("ghc-executable-path" ,ghc-executable-path)
6655 ("ghc-glob" ,ghc-glob)
6656 ("ghc-haddock-library" ,ghc-haddock-library)
6657 ("ghc-hslua" ,ghc-hslua)
6658 ("ghc-hslua-module-text" ,ghc-hslua-module-text)
6659 ("ghc-http" ,ghc-http)
6660 ("ghc-http-client" ,ghc-http-client)
6661 ("ghc-http-client-tls" ,ghc-http-client-tls)
6662 ("ghc-http-types" ,ghc-http-types)
6663 ("ghc-juicypixels" ,ghc-juicypixels)
6664 ("ghc-network" ,ghc-network)
6665 ("ghc-network-uri" ,ghc-network-uri)
6666 ("ghc-old-locale" ,ghc-old-locale)
6667 ("ghc-pandoc-types" ,ghc-pandoc-types)
6668 ("ghc-random" ,ghc-random)
6669 ("ghc-scientific" ,ghc-scientific)
6670 ("ghc-sha" ,ghc-sha)
6671 ("ghc-skylighting" ,ghc-skylighting)
6672 ("ghc-split" ,ghc-split)
6673 ("ghc-syb" ,ghc-syb)
6674 ("ghc-tagsoup" ,ghc-tagsoup)
6675 ("ghc-temporary" ,ghc-temporary)
6676 ("ghc-texmath" ,ghc-texmath)
6677 ("ghc-unordered-containers" ,ghc-unordered-containers)
6678 ("ghc-vector" ,ghc-vector)
6679 ("ghc-xml" ,ghc-xml)
6680 ("ghc-yaml" ,ghc-yaml)
6681 ("ghc-zip-archive" ,ghc-zip-archive)
6682 ("ghc-zlib" ,ghc-zlib)))
6683 (native-inputs
6684 `(("ghc-tasty" ,ghc-tasty)
6685 ("ghc-tasty-golden" ,ghc-tasty-golden)
6686 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
6687 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
6688 ("ghc-quickcheck" ,ghc-quickcheck)
6689 ("ghc-hunit" ,ghc-hunit)))
6690 (home-page "https://pandoc.org")
6691 (synopsis "Conversion between markup formats")
6692 (description
6693 "Pandoc is a Haskell library for converting from one markup format to
6694 another, and a command-line tool that uses this library. It can read and
6695 write Markdown and (subsets of) other formats, such as HTML, reStructuredText,
6696 LaTeX, DocBook, and many more.
6697
6698 Pandoc extends standard Markdown syntax with footnotes, embedded LaTeX,
6699 definition lists, tables, and other features. A compatibility mode is
6700 provided for those who need a drop-in replacement for Markdown.pl.")
6701 (license license:gpl2+)))
6702
6703 (define-public ghc-hs-bibutils
6704 (package
6705 (name "ghc-hs-bibutils")
6706 (version "6.6.0.0")
6707 (source
6708 (origin
6709 (method url-fetch)
6710 (uri (string-append
6711 "https://hackage.haskell.org/package/hs-bibutils/hs-bibutils-"
6712 version ".tar.gz"))
6713 (sha256
6714 (base32
6715 "0n2sz2zl4naspryd49ii858qkjp2lapns5a2gr8zm6vvn5sh1f0l"))))
6716 (build-system haskell-build-system)
6717 (inputs `(("ghc-syb" ,ghc-syb)))
6718 (home-page "https://hackage.haskell.org/package/hs-bibutils")
6719 (synopsis "Haskell bindings to bibutils")
6720 (description
6721 "This package provides Haskell bindings to @code{bibutils}, a library
6722 that interconverts between various bibliography formats using a common
6723 MODS-format XML intermediate.")
6724 (license license:gpl2+)))
6725
6726 (define-public ghc-rfc5051
6727 (package
6728 (name "ghc-rfc5051")
6729 (version "0.1.0.3")
6730 (source
6731 (origin
6732 (method url-fetch)
6733 (uri (string-append "https://hackage.haskell.org/package/rfc5051/"
6734 "rfc5051-" version ".tar.gz"))
6735 (sha256
6736 (base32
6737 "0av4c3qvwbkbzrjrrg601ay9pds7wscqqp2lc2z78mv2lllap3g3"))))
6738 (build-system haskell-build-system)
6739 (home-page "https://hackage.haskell.org/package/rfc5051")
6740 (synopsis "Simple unicode collation as per RFC5051")
6741 (description
6742 "This library implements @code{unicode-casemap}, the simple, non
6743 locale-sensitive unicode collation algorithm described in RFC 5051. Proper
6744 unicode collation can be done using @code{text-icu}, but that is a big
6745 dependency that depends on a large C library, and @code{rfc5051} might be
6746 better for some purposes.")
6747 (license license:bsd-3)))
6748
6749 (define-public ghc-typed-process
6750 (package
6751 (name "ghc-typed-process")
6752 (version "0.2.3.0")
6753 (source
6754 (origin
6755 (method url-fetch)
6756 (uri (string-append "https://hackage.haskell.org/package/"
6757 "typed-process/typed-process-"
6758 version ".tar.gz"))
6759 (sha256
6760 (base32
6761 "0j36vrc9w841m5qbwqra1lwiznx31xfnhin1sm8x2c2739csbpn0"))))
6762 (build-system haskell-build-system)
6763 (inputs
6764 `(("ghc-async" ,ghc-async)))
6765 (native-inputs
6766 `(("ghc-base64-bytestring" ,ghc-base64-bytestring)
6767 ("ghc-hspec" ,ghc-hspec)
6768 ("hspec-discover" ,hspec-discover)
6769 ("ghc-temporary" ,ghc-temporary)))
6770 (home-page "https://haskell-lang.org/library/typed-process")
6771 (synopsis "Run external processes with strong typing of streams")
6772 (description
6773 "This library provides the ability to launch and interact with external
6774 processes. It wraps around the @code{process} library, and intends to improve
6775 upon it.")
6776 (license license:expat)))
6777
6778 (define-public ghc-conduit-extra
6779 (package
6780 (name "ghc-conduit-extra")
6781 (version "1.3.1.1")
6782 (source
6783 (origin
6784 (method url-fetch)
6785 (uri (string-append "https://hackage.haskell.org/package/"
6786 "conduit-extra/conduit-extra-"
6787 version ".tar.gz"))
6788 (sha256
6789 (base32
6790 "0jaj350vv6mbb26gdwcqz4gwzfzrjydv5pis2da49wz1npbakcfw"))))
6791 (build-system haskell-build-system)
6792 (inputs
6793 `(("ghc-conduit" ,ghc-conduit)
6794 ("ghc-exceptions" ,ghc-exceptions)
6795 ("ghc-monad-control" ,ghc-monad-control)
6796 ("ghc-transformers-base" ,ghc-transformers-base)
6797 ("ghc-typed-process" ,ghc-typed-process)
6798 ("ghc-async" ,ghc-async)
6799 ("ghc-attoparsec" ,ghc-attoparsec)
6800 ("ghc-blaze-builder" ,ghc-blaze-builder)
6801 ("ghc-network" ,ghc-network)
6802 ("ghc-primitive" ,ghc-primitive)
6803 ("ghc-resourcet" ,ghc-resourcet)
6804 ("ghc-streaming-commons" ,ghc-streaming-commons)
6805 ("ghc-hspec" ,ghc-hspec)
6806 ("ghc-bytestring-builder" ,ghc-bytestring-builder)
6807 ("ghc-quickcheck" ,ghc-quickcheck)))
6808 (native-inputs
6809 `(("hspec-discover" ,hspec-discover)))
6810 (home-page "https://github.com/snoyberg/conduit")
6811 (synopsis "Conduit adapters for common libraries")
6812 (description
6813 "The @code{conduit} package itself maintains relative small dependencies.
6814 The purpose of this package is to collect commonly used utility functions
6815 wrapping other library dependencies, without depending on heavier-weight
6816 dependencies. The basic idea is that this package should only depend on
6817 @code{haskell-platform} packages and @code{conduit}.")
6818 (license license:expat)))
6819
6820 (define-public ghc-xml-types
6821 (package
6822 (name "ghc-xml-types")
6823 (version "0.3.6")
6824 (source
6825 (origin
6826 (method url-fetch)
6827 (uri (string-append "https://hackage.haskell.org/package/xml-types/"
6828 "xml-types-" version ".tar.gz"))
6829 (sha256
6830 (base32
6831 "1jgqxsa9p2q3h6nymbfmvhldqrqlwrhrzmwadlyc0li50x0d8dwr"))))
6832 (build-system haskell-build-system)
6833 (home-page "https://john-millikin.com/software/haskell-xml/")
6834 (synopsis "Basic types for representing XML")
6835 (description "This package provides basic types for representing XML
6836 documents.")
6837 (license license:expat)))
6838
6839 (define-public ghc-xml-conduit
6840 (package
6841 (name "ghc-xml-conduit")
6842 (version "1.8.0.1")
6843 (source
6844 (origin
6845 (method url-fetch)
6846 (uri (string-append "https://hackage.haskell.org/package/xml-conduit/"
6847 "xml-conduit-" version ".tar.gz"))
6848 (sha256
6849 (base32
6850 "177gmyigxql1pn3ncz0r8annwv5cbxnihbgrrg1dhm4gmc9jy2wq"))))
6851 (build-system haskell-build-system)
6852 (inputs
6853 `(("ghc-conduit" ,ghc-conduit)
6854 ("ghc-conduit-extra" ,ghc-conduit-extra)
6855 ("ghc-doctest" ,ghc-doctest)
6856 ("ghc-resourcet" ,ghc-resourcet)
6857 ("ghc-xml-types" ,ghc-xml-types)
6858 ("ghc-attoparsec" ,ghc-attoparsec)
6859 ("ghc-data-default-class" ,ghc-data-default-class)
6860 ("ghc-blaze-markup" ,ghc-blaze-markup)
6861 ("ghc-blaze-html" ,ghc-blaze-html)
6862 ("ghc-monad-control" ,ghc-monad-control)
6863 ("ghc-hspec" ,ghc-hspec)
6864 ("ghc-hunit" ,ghc-hunit)))
6865 (home-page "https://github.com/snoyberg/xml")
6866 (synopsis "Utilities for dealing with XML with the conduit package")
6867 (description
6868 "This package provides pure-Haskell utilities for dealing with XML with
6869 the @code{conduit} package.")
6870 (license license:expat)))
6871
6872 (define-public ghc-pandoc-citeproc
6873 (package
6874 (name "ghc-pandoc-citeproc")
6875 (version "0.14.3.1")
6876 (source
6877 (origin
6878 (method url-fetch)
6879 (uri (string-append "https://hackage.haskell.org/package/"
6880 "pandoc-citeproc/pandoc-citeproc-"
6881 version ".tar.gz"))
6882 (sha256
6883 (base32
6884 "0yj6rckwsc9vig40cm15ry0j3d01xpk04qma9n4byhal6v4b5h22"))))
6885 (build-system haskell-build-system)
6886 (arguments
6887 `(#:phases
6888 (modify-phases %standard-phases
6889 ;; Many YAML tests (44) are failing do to changes in ghc-yaml:
6890 ;; <https://github.com/jgm/pandoc-citeproc/issues/342>.
6891 (add-before 'configure 'patch-tests
6892 (lambda _
6893 (substitute* "tests/test-pandoc-citeproc.hs"
6894 (("let allTests = citeprocTests \\+\\+ biblio2yamlTests")
6895 "let allTests = citeprocTests"))))
6896 ;; Tests need to be run after installation.
6897 (delete 'check)
6898 (add-after 'install 'post-install-check
6899 (assoc-ref %standard-phases 'check)))))
6900 (inputs
6901 `(("ghc-pandoc-types" ,ghc-pandoc-types)
6902 ("ghc-pandoc" ,ghc-pandoc)
6903 ("ghc-tagsoup" ,ghc-tagsoup)
6904 ("ghc-aeson" ,ghc-aeson)
6905 ("ghc-vector" ,ghc-vector)
6906 ("ghc-xml-conduit" ,ghc-xml-conduit)
6907 ("ghc-unordered-containers" ,ghc-unordered-containers)
6908 ("ghc-data-default" ,ghc-data-default)
6909 ("ghc-setenv" ,ghc-setenv)
6910 ("ghc-split" ,ghc-split)
6911 ("ghc-yaml" ,ghc-yaml)
6912 ("ghc-hs-bibutils" ,ghc-hs-bibutils)
6913 ("ghc-rfc5051" ,ghc-rfc5051)
6914 ("ghc-syb" ,ghc-syb)
6915 ("ghc-old-locale" ,ghc-old-locale)
6916 ("ghc-aeson-pretty" ,ghc-aeson-pretty)
6917 ("ghc-attoparsec" ,ghc-attoparsec)
6918 ("ghc-temporary" ,ghc-temporary)))
6919 (home-page "https://github.com/jgm/pandoc-citeproc")
6920 (synopsis "Library for using pandoc with citeproc")
6921 (description
6922 "The @code{pandoc-citeproc} library exports functions for using the
6923 citeproc system with pandoc. It relies on @code{citeproc-hs}, a library for
6924 rendering bibliographic reference citations into a variety of styles using a
6925 macro language called @dfn{Citation Style Language} (CSL). This package also
6926 contains an executable @code{pandoc-citeproc}, which works as a pandoc filter,
6927 and also has a mode for converting bibliographic databases a YAML format
6928 suitable for inclusion in pandoc YAML metadata.")
6929 (license license:bsd-3)))
6930
6931 (define-public ghc-union-find
6932 (package
6933 (name "ghc-union-find")
6934 (version "0.2")
6935 (source (origin
6936 (method url-fetch)
6937 (uri (string-append
6938 "https://hackage.haskell.org/package/union-find/union-find-"
6939 version ".tar.gz"))
6940 (sha256
6941 (base32
6942 "1v7hj42j9w6jlzi56jg8rh4p58gfs1c5dx30wd1qqvn0p0mnihp6"))))
6943 (build-system haskell-build-system)
6944 (home-page "https://github.com/nominolo/union-find")
6945 (synopsis "Efficient union and equivalence testing of sets")
6946 (description
6947 "The Union/Find algorithm implements these operations in (effectively)
6948 constant-time:
6949 @enumerate
6950 @item Check whether two elements are in the same equivalence class.
6951 @item Create a union of two equivalence classes.
6952 @item Look up the descriptor of the equivalence class.
6953 @end enumerate\n")
6954 (license license:bsd-3)))
6955
6956 (define-public ghc-base16-bytestring
6957 (package
6958 (name "ghc-base16-bytestring")
6959 (version "0.1.1.6")
6960 (source
6961 (origin
6962 (method url-fetch)
6963 (uri (string-append
6964 "https://hackage.haskell.org/package/base16-bytestring/"
6965 "base16-bytestring-" version ".tar.gz"))
6966 (sha256
6967 (base32
6968 "0jf40m3yijqw6wd1rwwvviww46fasphaay9m9rgqyhf5aahnbzjs"))))
6969 (build-system haskell-build-system)
6970 (home-page "https://github.com/bos/base16-bytestring")
6971 (synopsis "Fast base16 (hex) encoding and decoding for ByteStrings")
6972 (description
6973 "This package provides a Haskell library for working with base16-encoded
6974 data quickly and efficiently, using the ByteString type.")
6975 (license license:bsd-3)))
6976
6977 (define-public ghc-data-ordlist
6978 (package
6979 (name "ghc-data-ordlist")
6980 (version "0.4.7.0")
6981 (source
6982 (origin
6983 (method url-fetch)
6984 (uri (string-append
6985 "https://hackage.haskell.org/package/data-ordlist/data-ordlist-"
6986 version ".tar.gz"))
6987 (sha256
6988 (base32
6989 "03a9ix1fcx08viwv2jg5ndw1qbkydyyrmjvqr9wasmcik9x1wv3g"))))
6990 (build-system haskell-build-system)
6991 (home-page "https://hackage.haskell.org/package/data-ordlist")
6992 (synopsis "Set and bag operations on ordered lists")
6993 (description
6994 "This module provides set and multiset operations on ordered lists.")
6995 (license license:bsd-3)))
6996
6997 (define-public ghc-regex-applicative
6998 (package
6999 (name "ghc-regex-applicative")
7000 (version "0.3.3")
7001 (source
7002 (origin
7003 (method url-fetch)
7004 (uri (string-append
7005 "https://hackage.haskell.org/package/regex-applicative/"
7006 "regex-applicative-" version ".tar.gz"))
7007 (sha256
7008 (base32
7009 "1riv7jqf26lbv4rm54sd6mrx8xdh4dvh4xbzymzdfdw13k6a4nb6"))))
7010 (build-system haskell-build-system)
7011 (inputs
7012 `(("ghc-smallcheck" ,ghc-smallcheck)
7013 ("ghc-tasty" ,ghc-tasty)
7014 ("ghc-tasty-smallcheck" ,ghc-tasty-smallcheck)
7015 ("ghc-tasty-hunit" ,ghc-tasty-hunit)))
7016 (home-page "https://github.com/feuerbach/regex-applicative")
7017 (synopsis "Regex-based parsing with applicative interface")
7018 (description
7019 "@code{regex-applicative} is a Haskell library for parsing using
7020 regular expressions. Parsers can be built using Applicative interface.")
7021 (license license:expat)))
7022
7023 (define-public ghc-regex-tdfa
7024 (package
7025 (name "ghc-regex-tdfa")
7026 (version "1.2.3.1")
7027 (source
7028 (origin
7029 (method url-fetch)
7030 (uri (string-append
7031 "https://hackage.haskell.org/package/regex-tdfa/regex-tdfa-"
7032 version ".tar.gz"))
7033 (sha256
7034 (base32
7035 "0l7ajnh4hpgggf2a1r9dg0hx2fy679vd2kada5y7r02hy3nfxala"))))
7036 (build-system haskell-build-system)
7037 (inputs
7038 `(("ghc-regex-base" ,ghc-regex-base)))
7039 (home-page "https://github.com/ChrisKuklewicz/regex-tdfa")
7040 (synopsis "POSIX extended regular expressions in Haskell.")
7041 (description
7042 "Regex-tdfa is a pure Haskell regular expression library implementing POSIX
7043 extended regular expressions. It is a \"tagged\" DFA regex engine. It is
7044 inspired by libtre.")
7045 (license license:bsd-3)))
7046
7047 (define-public ghc-regex-compat-tdfa
7048 (package
7049 (name "ghc-regex-compat-tdfa")
7050 (version "0.95.1.4")
7051 (source
7052 (origin
7053 (method url-fetch)
7054 (uri (string-append
7055 "https://hackage.haskell.org/package/regex-compat-tdfa/regex-compat-tdfa-"
7056 version ".tar.gz"))
7057 (sha256
7058 (base32
7059 "1p90fn90yhp7fvljjdqjp41cszidcfz4pw7fwvzyx4739b98x8sg"))))
7060 (build-system haskell-build-system)
7061 (inputs
7062 `(("ghc-regex-base" ,ghc-regex-base)
7063 ("ghc-regex-tdfa" ,ghc-regex-tdfa)))
7064 (home-page "https://hub.darcs.net/shelarcy/regex-compat-tdfa")
7065 (synopsis "Unicode Support version of Text.Regex, using regex-tdfa")
7066 (description
7067 "One module layer over @code{regex-tdfa} to replace @code{Text.Regex}.
7068 @code{regex-compat} can't use Unicode characters correctly because of using regex-posix.
7069 This is not good for Unicode users. This modified regex-compat uses regex-tdfa to solve
7070 this problem.")
7071 (license license:bsd-3)))
7072
7073 (define-public ghc-sandi
7074 (package
7075 (name "ghc-sandi")
7076 (version "0.4.2")
7077 (source
7078 (origin
7079 (method url-fetch)
7080 (uri (string-append
7081 "https://hackage.haskell.org/package/sandi/sandi-"
7082 version ".tar.gz"))
7083 (sha256
7084 (base32
7085 "0dvkpk91n9kz2ha04rvp231ra9sgd1ilyc1qkzf9l03iir7zrh9b"))))
7086 (build-system haskell-build-system)
7087 (inputs
7088 `(("ghc-stringsearch" ,ghc-stringsearch)
7089 ("ghc-conduit" ,ghc-conduit)
7090 ("ghc-exceptions" ,ghc-exceptions)
7091 ("ghc-hunit" ,ghc-hunit)
7092 ("ghc-tasty" ,ghc-tasty)
7093 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
7094 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
7095 ("ghc-tasty-th" ,ghc-tasty-th)))
7096 (home-page "https://hackage.haskell.org/package/sandi")
7097 (synopsis "Data encoding library")
7098 (description "Reasonably fast data encoding library.")
7099 (license license:bsd-3)))
7100
7101 (define-public ghc-bytestring-handle
7102 (package
7103 (name "ghc-bytestring-handle")
7104 (version "0.1.0.6")
7105 (source
7106 (origin
7107 (method url-fetch)
7108 (uri (string-append
7109 "https://hackage.haskell.org/package/bytestring-handle/bytestring-handle-"
7110 version ".tar.gz"))
7111 (sha256
7112 (base32
7113 "18f17aja1ivhr3zyg2cccn2m03hdn5jf5410dndkhf12gvgiqs7y"))))
7114 (build-system haskell-build-system)
7115 (arguments
7116 `(#:phases
7117 (modify-phases %standard-phases
7118 (add-before 'configure 'update-constraints
7119 (lambda _
7120 (substitute* "bytestring-handle.cabal"
7121 (("QuickCheck >= 2\\.1\\.2 && < 2\\.11")
7122 "QuickCheck >= 2.1.2 && < 2.12")
7123 (("base >= 4\\.2 && < 4\\.11")
7124 "base >= 4.2 && < 4.12")))))))
7125 (inputs
7126 `(("ghc-hunit" ,ghc-hunit)
7127 ("ghc-quickcheck" ,ghc-quickcheck)
7128 ("ghc-test-framework" ,ghc-test-framework)
7129 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
7130 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
7131 (home-page "https://hub.darcs.net/ganesh/bytestring-handle")
7132 (synopsis "ByteString-backed Handles")
7133 (description "ByteString-backed Handles") ; There is no description
7134 (license license:bsd-3)))
7135
7136 (define-public ghc-tar
7137 (package
7138 (name "ghc-tar")
7139 (version "0.5.1.0")
7140 (source
7141 (origin
7142 (method url-fetch)
7143 (uri (string-append
7144 "https://hackage.haskell.org/package/tar/tar-"
7145 version ".tar.gz"))
7146 (sha256
7147 (base32
7148 "0s2brvaxg5fki2jdkccmnpssiy6a3wjh24p6a3dkkdvjcixnk7f8"))))
7149 (build-system haskell-build-system)
7150 ;; FIXME: 2/24 tests fail.
7151 (arguments `(#:tests? #f))
7152 (inputs
7153 `(("ghc-bytestring-handle" ,ghc-bytestring-handle)
7154 ("ghc-quickcheck" ,ghc-quickcheck)
7155 ("ghc-tasty" ,ghc-tasty)
7156 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
7157 (home-page "https://hackage.haskell.org/package/tar")
7158 (synopsis "Reading, writing and manipulating \".tar\" archive files")
7159 (description
7160 "This library is for working with \\\"@.tar@\\\" archive files.
7161 It can read and write a range of common variations of the tar archive format
7162 including V7, POSIX USTAR and GNU formats. It provides support for packing and
7163 unpacking portable archives. This makes it suitable for distribution but not
7164 backup because details like file ownership and exact permissions are not
7165 preserved. It also provides features for random access to archive content using
7166 an index.")
7167 (license license:bsd-3)))
7168
7169 (define-public ghc-stmonadtrans
7170 (package
7171 (name "ghc-stmonadtrans")
7172 (version "0.4.3")
7173 (source
7174 (origin
7175 (method url-fetch)
7176 (uri (string-append "https://hackage.haskell.org/package/STMonadTrans"
7177 "/STMonadTrans-" version ".tar.gz"))
7178 (sha256
7179 (base32 "1nr26fnmi5fdjc6d00w13kjhmfyvb5b837d0006w4dj0yxndaksp"))))
7180 (build-system haskell-build-system)
7181 (home-page "https://hackage.haskell.org/package/STMonadTrans")
7182 (synopsis "Monad transformer version of the ST monad")
7183 (description
7184 "This package provides a monad transformer version of the @code{ST} monad
7185 for strict state threads.")
7186 (license license:bsd-3)))
7187
7188 (define-public ghc-findbin
7189 (package
7190 (name "ghc-findbin")
7191 (version "0.0.5")
7192 (source
7193 (origin
7194 (method url-fetch)
7195 (uri (string-append
7196 "https://hackage.haskell.org/package/FindBin/FindBin-"
7197 version ".tar.gz"))
7198 (sha256
7199 (base32
7200 "197xvn05yysmibm1p5wzxfa256lvpbknr5d1l2ws6g40w1kpk717"))))
7201 (build-system haskell-build-system)
7202 (home-page "https://github.com/audreyt/findbin")
7203 (synopsis "Get the absolute path of the running program")
7204 (description
7205 "This module locates the full directory of the running program, to allow
7206 the use of paths relative to it. FindBin supports invocation of Haskell
7207 programs via \"ghci\", via \"runhaskell/runghc\", as well as compiled as
7208 an executable.")
7209 (license license:bsd-3)))
7210
7211 (define-public ghc-patience
7212 (package
7213 (name "ghc-patience")
7214 (version "0.1.1")
7215 (source
7216 (origin
7217 (method url-fetch)
7218 (uri (string-append
7219 "https://hackage.haskell.org/package/patience/patience-"
7220 version ".tar.gz"))
7221 (sha256
7222 (base32
7223 "0qyv20gqy9pb1acy700ahv70lc6vprcwb26cc7fcpcs4scsc7irm"))))
7224 (build-system haskell-build-system)
7225 (home-page "https://hackage.haskell.org/package/patience")
7226 (synopsis "Patience diff and longest increasing subsequence")
7227 (description
7228 "This library implements the 'patience diff' algorithm, as well as the
7229 patience algorithm for the longest increasing subsequence problem.
7230 Patience diff computes the difference between two lists, for example the lines
7231 of two versions of a source file. It provides a good balance between
7232 performance, nice output for humans, and simplicity of implementation.")
7233 (license license:bsd-3)))
7234
7235 (define-public ghc-monads-tf
7236 (package
7237 (name "ghc-monads-tf")
7238 (version "0.1.0.3")
7239 (source
7240 (origin
7241 (method url-fetch)
7242 (uri (string-append
7243 "https://hackage.haskell.org/package/monads-tf/monads-tf-"
7244 version ".tar.gz"))
7245 (sha256
7246 (base32
7247 "1wdhskwa6dw8qljbvwpyxj8ca6y95q2np7z4y4q6bpf4anmd5794"))))
7248 (build-system haskell-build-system)
7249 (home-page "https://hackage.haskell.org/package/monads-tf")
7250 (synopsis "Monad classes, using type families")
7251 (description
7252 "Monad classes using type families, with instances for various monad transformers,
7253 inspired by the paper 'Functional Programming with Overloading and Higher-Order
7254 Polymorphism', by Mark P Jones. This package is almost a compatible replacement for
7255 the @code{mtl-tf} package.")
7256 (license license:bsd-3)))
7257
7258 (define-public ghc-colour
7259 (package
7260 (name "ghc-colour")
7261 (version "2.3.4")
7262 (source
7263 (origin
7264 (method url-fetch)
7265 (uri (string-append
7266 "https://hackage.haskell.org/package/colour/colour-"
7267 version ".tar.gz"))
7268 (sha256
7269 (base32
7270 "1sy51nz096sv91nxqk6yk7b92b5a40axv9183xakvki2nc09yhqg"))))
7271 (arguments
7272 ;; The tests for this package have the following dependency cycle:
7273 ;; ghc-test-framework -> ghc-ansi-terminal -> ghc-colour.
7274 `(#:tests? #f))
7275 (build-system haskell-build-system)
7276 (home-page "https://www.haskell.org/haskellwiki/Colour")
7277 (synopsis "Model for human colour perception")
7278 (description
7279 "This package provides a data type for colours and transparency.
7280 Colours can be blended and composed. Various colour spaces are
7281 supported. A module of colour names (\"Data.Colour.Names\") is provided.")
7282 (license license:expat)))
7283
7284 (define-public ghc-wl-pprint-text
7285 (package
7286 (name "ghc-wl-pprint-text")
7287 (version "1.2.0.0")
7288 (source
7289 (origin
7290 (method url-fetch)
7291 (uri (string-append
7292 "https://hackage.haskell.org/package/wl-pprint-text/wl-pprint-text-"
7293 version ".tar.gz"))
7294 (sha256
7295 (base32
7296 "0g3w92rad6x5appfb22rbzcas2ix2h0hy91sdxhq8a4a5cnlrpa0"))))
7297 (build-system haskell-build-system)
7298 (inputs
7299 `(("ghc-base-compat" ,ghc-base-compat)))
7300 (home-page "https://hackage.haskell.org/package/wl-pprint-text")
7301 (synopsis "Wadler/Leijen Pretty Printer for Text values")
7302 (description
7303 "A clone of wl-pprint for use with the text library.")
7304 (license license:bsd-3)))
7305
7306 (define-public ghc-fgl-arbitrary
7307 (package
7308 (name "ghc-fgl-arbitrary")
7309 (version "0.2.0.3")
7310 (source
7311 (origin
7312 (method url-fetch)
7313 (uri (string-append
7314 "https://hackage.haskell.org/package/fgl-arbitrary/fgl-arbitrary-"
7315 version ".tar.gz"))
7316 (sha256
7317 (base32
7318 "0ln1szgfy8fa78l3issq4fx3aqnnd54w3cb4wssrfi48vd5rkfjm"))))
7319 (build-system haskell-build-system)
7320 (arguments
7321 `(#:phases
7322 (modify-phases %standard-phases
7323 (add-before 'configure 'update-constraints
7324 (lambda _
7325 (substitute* "fgl-arbitrary.cabal"
7326 (("QuickCheck >= 2\\.3 && < 2\\.10")
7327 "QuickCheck >= 2.3 && < 2.12")
7328 (("hspec >= 2\\.1 && < 2\\.5")
7329 "hspec >= 2.1 && < 2.6")))))))
7330 (inputs
7331 `(("ghc-fgl" ,ghc-fgl)
7332 ("ghc-quickcheck" ,ghc-quickcheck)
7333 ("ghc-hspec" ,ghc-hspec)))
7334 (home-page "https://hackage.haskell.org/package/fgl-arbitrary")
7335 (synopsis "QuickCheck support for fgl")
7336 (description
7337 "Provides Arbitrary instances for fgl graphs to avoid adding a
7338 QuickCheck dependency for fgl whilst still making the instances
7339 available to others. Also available are non-fgl-specific functions
7340 for generating graph-like data structures.")
7341 (license license:bsd-3)))
7342
7343 (define-public ghc-graphviz
7344 (package
7345 (name "ghc-graphviz")
7346 (version "2999.20.0.2")
7347 (source (origin
7348 (method url-fetch)
7349 (uri (string-append "https://hackage.haskell.org/package/"
7350 "graphviz/graphviz-" version ".tar.gz"))
7351 (sha256
7352 (base32
7353 "0kj7ap0gnliviq2p8lscw1m06capnsa90vpvcys24nqy5nw2wrp7"))))
7354 (build-system haskell-build-system)
7355 (inputs
7356 `(("ghc-quickcheck" ,ghc-quickcheck)
7357 ("ghc-colour" ,ghc-colour)
7358 ("ghc-dlist" ,ghc-dlist)
7359 ("ghc-fgl" ,ghc-fgl)
7360 ("ghc-fgl-arbitrary" ,ghc-fgl-arbitrary)
7361 ("ghc-polyparse" ,ghc-polyparse)
7362 ("ghc-temporary" ,ghc-temporary)
7363 ("ghc-wl-pprint-text" ,ghc-wl-pprint-text)))
7364 (native-inputs
7365 `(("ghc-hspec" ,ghc-hspec)
7366 ("graphviz" ,graphviz)
7367 ("hspec-discover" ,hspec-discover)))
7368 (home-page "https://hackage.haskell.org/package/graphviz")
7369 (synopsis "Bindings to Graphviz for graph visualisation")
7370 (description
7371 "This library provides bindings for the Dot language used by
7372 the @uref{https://graphviz.org/, Graphviz} suite of programs for
7373 visualising graphs, as well as functions to call those programs.
7374 Main features of the graphviz library include:
7375
7376 @enumerate
7377 @item Almost complete coverage of all Graphviz attributes and syntax
7378 @item Support for specifying clusters
7379 @item The ability to use a custom node type
7380 @item Functions for running a Graphviz layout tool with all specified output types
7381 @item Generate and parse Dot code with two options: strict and liberal
7382 @item Functions to convert FGL graphs and other graph-like data structures
7383 @item Round-trip support for passing an FGL graph through Graphviz to augment node
7384 and edge labels with positional information, etc.
7385 @end enumerate\n")
7386 (license license:bsd-3)))
7387
7388 (define-public ghc-constraints
7389 (package
7390 (name "ghc-constraints")
7391 (version "0.10.1")
7392 (source
7393 (origin
7394 (method url-fetch)
7395 (uri (string-append
7396 "https://hackage.haskell.org/package/constraints/constraints-"
7397 version ".tar.gz"))
7398 (sha256
7399 (base32
7400 "1xy3vv78jxc17hm0z7qqspxjwv7l2jbcbj670yrl2f053qkfr02q"))))
7401 (build-system haskell-build-system)
7402 (inputs
7403 `(("ghc-hashable" ,ghc-hashable)
7404 ("ghc-semigroups" ,ghc-semigroups)
7405 ("ghc-transformers-compat" ,ghc-transformers-compat)))
7406 (native-inputs
7407 `(("ghc-hspec" ,ghc-hspec)
7408 ("hspec-discover" ,hspec-discover)))
7409 (home-page "https://github.com/ekmett/constraints/")
7410 (synopsis "Constraint manipulation")
7411 (description
7412 "GHC 7.4 gave us the ability to talk about @code{ConstraintKinds}.
7413 They stopped crashing the compiler in GHC 7.6. This package provides
7414 a vocabulary for working with them.")
7415 (license license:bsd-3)))
7416
7417 (define-public ghc-lifted-async
7418 (package
7419 (name "ghc-lifted-async")
7420 (version "0.10.0.2")
7421 (source
7422 (origin
7423 (method url-fetch)
7424 (uri (string-append
7425 "https://hackage.haskell.org/package/lifted-async/lifted-async-"
7426 version ".tar.gz"))
7427 (sha256
7428 (base32
7429 "1073r512c1x2m1v0jar9bwqg656slg7jd1jhsyj6m8awgx1l1mwf"))))
7430 (build-system haskell-build-system)
7431 (inputs
7432 `(("ghc-async" ,ghc-async)
7433 ("ghc-lifted-base" ,ghc-lifted-base)
7434 ("ghc-transformers-base" ,ghc-transformers-base)
7435 ("ghc-monad-control" ,ghc-monad-control)
7436 ("ghc-constraints" ,ghc-constraints)
7437 ("ghc-hunit" ,ghc-hunit)
7438 ("ghc-tasty" ,ghc-tasty)
7439 ("ghc-tasty-expected-failure" ,ghc-tasty-expected-failure)
7440 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
7441 ("ghc-tasty-th" ,ghc-tasty-th)))
7442 (home-page "https://github.com/maoe/lifted-async")
7443 (synopsis "Run lifted IO operations asynchronously and wait for their results")
7444 (description
7445 "This package provides IO operations from @code{async} package lifted to any
7446 instance of @code{MonadBase} or @code{MonadBaseControl}.")
7447 (license license:bsd-3)))
7448
7449 ;; Ghc-shelly depends on ghc-system-filepath and ghc-system-fileio, who in turn depend on
7450 ;; ghc-chell and ghc-chell-quickcheck for the test phase. Ghc-chell depends on ghc-options
7451 ;; which depends on ghc-chell and ghc-chell-quickcheck.
7452 ;; Therefore we bootstrap it with tests disabled.
7453 (define ghc-system-filepath-bootstrap
7454 (package
7455 (name "ghc-system-filepath-bootstrap")
7456 (version "0.4.14")
7457 (source
7458 (origin
7459 (method url-fetch)
7460 (uri (string-append
7461 "https://hackage.haskell.org/package/system-filepath/system-filepath-"
7462 version ".tar.gz"))
7463 (sha256
7464 (base32
7465 "14yras4pz2dh55xpwmazcgxijvi8913pjgzb9iw50mjq1lycwmhn"))))
7466 (build-system haskell-build-system)
7467 (arguments
7468 `(#:tests? #f))
7469 (inputs
7470 `(("ghc-quickcheck" ,ghc-quickcheck)))
7471 (home-page "https://github.com/fpco/haskell-filesystem")
7472 (synopsis "High-level, byte-based file and directory path manipulations")
7473 (description
7474 "Provides a FilePath datatype and utility functions for operating on it.
7475 Unlike the filepath package, this package does not simply reuse String,
7476 increasing type safety.")
7477 (license license:expat)))
7478
7479 ;; See ghc-system-filepath-bootstrap. In addition this package depends on
7480 ;; ghc-system-filepath.
7481 (define ghc-system-fileio-bootstrap
7482 (package
7483 (name "ghc-system-fileio-bootstrap")
7484 (version "0.3.16.3")
7485 (source
7486 (origin
7487 (method url-fetch)
7488 (uri (string-append
7489 "https://hackage.haskell.org/package/system-fileio/system-fileio-"
7490 version ".tar.gz"))
7491 (sha256
7492 (base32
7493 "1484hcl27s2qcby8ws5djj11q9bz68bspcifz9h5gii2ndy70x9i"))))
7494 (build-system haskell-build-system)
7495 (arguments
7496 `(#:tests? #f))
7497 (inputs
7498 `(("ghc-system-filepath-bootstrap" ,ghc-system-filepath-bootstrap)
7499 ("ghc-temporary" ,ghc-temporary)))
7500 (home-page "https://github.com/fpco/haskell-filesystem")
7501 (synopsis "Consistent file system interaction across GHC versions")
7502 (description
7503 "This is a small wrapper around the directory, unix, and Win32 packages,
7504 for use with system-filepath. It provides a consistent API to the various
7505 versions of these packages distributed with different versions of GHC.
7506 In particular, this library supports working with POSIX files that have paths
7507 which can't be decoded in the current locale encoding.")
7508 (license license:expat)))
7509
7510 (define-public ghc-shelly
7511 (package
7512 (name "ghc-shelly")
7513 (version "1.8.1")
7514 (source
7515 (origin
7516 (method url-fetch)
7517 (uri (string-append
7518 "https://hackage.haskell.org/package/shelly/shelly-"
7519 version ".tar.gz"))
7520 (sha256
7521 (base32
7522 "023fbvbqs5gdwm30j5517gbdcc7fvz0md70dgwgpypkskj3i926y"))))
7523 (build-system haskell-build-system)
7524 (inputs
7525 `(("ghc-unix-compat" ,ghc-unix-compat)
7526 ("ghc-system-filepath-bootstrap" ,ghc-system-filepath-bootstrap)
7527 ("ghc-system-fileio-bootstrap" ,ghc-system-fileio-bootstrap)
7528 ("ghc-monad-control" ,ghc-monad-control)
7529 ("ghc-lifted-base" ,ghc-lifted-base)
7530 ("ghc-lifted-async" ,ghc-lifted-async)
7531 ("ghc-exceptions" ,ghc-exceptions)
7532 ("ghc-enclosed-exceptions" ,ghc-enclosed-exceptions)
7533 ("ghc-async" ,ghc-async)
7534 ("ghc-transformers-base" ,ghc-transformers-base)
7535 ("ghc-hunit" ,ghc-hunit)
7536 ("ghc-hspec" ,ghc-hspec)
7537 ("ghc-hspec-contrib" ,ghc-hspec-contrib)))
7538 (home-page "https://github.com/yesodweb/Shelly.hs")
7539 (synopsis "Shell-like (systems) programming in Haskell")
7540 (description
7541 "Shelly provides convenient systems programming in Haskell, similar in
7542 spirit to POSIX shells. Shelly is originally forked from the Shellish package.")
7543 (license license:bsd-3)))
7544
7545 ;; See ghc-system-filepath-bootstrap, chell and chell-quickcheck are required for tests.
7546 (define ghc-options-bootstrap
7547 (package
7548 (name "ghc-options-bootstrap")
7549 (version "1.2.1.1")
7550 (source
7551 (origin
7552 (method url-fetch)
7553 (uri (string-append
7554 "https://hackage.haskell.org/package/options/options-"
7555 version ".tar.gz"))
7556 (sha256
7557 (base32
7558 "0qjs0v1ny52w51n5582d4z8wy9h6n0zw1xb5dh686ff5wadflgi8"))))
7559 (build-system haskell-build-system)
7560 (arguments
7561 `(#:tests? #f))
7562 (inputs
7563 `(("ghc-monads-tf" ,ghc-monads-tf)))
7564 (home-page "https://john-millikin.com/software/haskell-options/")
7565 (synopsis "Powerful and easy-to-use command-line option parser")
7566 (description
7567 "The @code{options} package lets library and application developers
7568 easily work with command-line options.")
7569 (license license:expat)))
7570
7571 (define-public ghc-chell
7572 (package
7573 (name "ghc-chell")
7574 (version "0.4.0.2")
7575 (source
7576 (origin
7577 (method url-fetch)
7578 (uri (string-append
7579 "https://hackage.haskell.org/package/chell/chell-"
7580 version ".tar.gz"))
7581 (sha256
7582 (base32
7583 "10ingy9qnbmc8cqh4i9pskcw43l0mzk8f3d76b3qz3fig5ary3j9"))))
7584 (build-system haskell-build-system)
7585 (inputs
7586 `(("ghc-options-bootstrap" ,ghc-options-bootstrap)
7587 ("ghc-patience" ,ghc-patience)
7588 ("ghc-random" ,ghc-random)
7589 ("ghc-ansi-terminal" ,ghc-ansi-terminal)))
7590 (home-page "https://john-millikin.com/software/chell/")
7591 (synopsis "Simple and intuitive library for automated testing")
7592 (description
7593 "Chell is a simple and intuitive library for automated testing.
7594 It natively supports assertion-based testing, and can use companion
7595 libraries such as @code{chell-quickcheck} to support more complex
7596 testing strategies.")
7597 (license license:expat)))
7598
7599 (define ghc-chell-quickcheck-bootstrap
7600 (package
7601 (name "ghc-chell-quickcheck-bootstrap")
7602 (version "0.2.5.1")
7603 (source
7604 (origin
7605 (method url-fetch)
7606 (uri (string-append
7607 "https://hackage.haskell.org/package/chell-quickcheck/"
7608 "chell-quickcheck-" version ".tar.gz"))
7609 (sha256
7610 (base32
7611 "1iicsys9igx7m7n4l2b8djardmjy2ah5ibzp7kzs758h460fq53a"))))
7612 (build-system haskell-build-system)
7613 (inputs
7614 `(("ghc-chell" ,ghc-chell)
7615 ("ghc-random" ,ghc-random)
7616 ("ghc-quickcheck" ,ghc-quickcheck)))
7617 (arguments
7618 `(#:tests? #f
7619 #:phases
7620 (modify-phases %standard-phases
7621 (add-before 'configure 'update-constraints
7622 (lambda _
7623 (substitute* "chell-quickcheck.cabal"
7624 (("QuickCheck >= 2\\.3 && < 2\\.11")
7625 "QuickCheck >= 2.3 && < 2.12")))))))
7626 (home-page "https://john-millikin.com/software/chell/")
7627 (synopsis "QuickCheck support for the Chell testing library")
7628 (description "More complex tests for @code{chell}.")
7629 (license license:expat)))
7630
7631 (define-public ghc-chell-quickcheck
7632 (package
7633 (name "ghc-chell-quickcheck")
7634 (version "0.2.5.1")
7635 (source
7636 (origin
7637 (method url-fetch)
7638 (uri (string-append
7639 "https://hackage.haskell.org/package/chell-quickcheck/"
7640 "chell-quickcheck-" version ".tar.gz"))
7641 (sha256
7642 (base32
7643 "1iicsys9igx7m7n4l2b8djardmjy2ah5ibzp7kzs758h460fq53a"))))
7644 (build-system haskell-build-system)
7645 (arguments
7646 `(#:phases
7647 (modify-phases %standard-phases
7648 (add-before 'configure 'update-constraints
7649 (lambda _
7650 (substitute* "chell-quickcheck.cabal"
7651 (("QuickCheck >= 2\\.3 && < 2\\.11")
7652 "QuickCheck >= 2.3 && < 2.12")))))))
7653 (inputs
7654 `(("ghc-chell" ,ghc-chell)
7655 ("ghc-chell-quickcheck-bootstrap" ,ghc-chell-quickcheck-bootstrap)
7656 ("ghc-random" ,ghc-random)
7657 ("ghc-quickcheck" ,ghc-quickcheck)))
7658 (home-page "https://john-millikin.com/software/chell/")
7659 (synopsis "QuickCheck support for the Chell testing library")
7660 (description "More complex tests for @code{chell}.")
7661 (license license:expat)))
7662
7663 (define-public ghc-options
7664 (package
7665 (name "ghc-options")
7666 (version "1.2.1.1")
7667 (source
7668 (origin
7669 (method url-fetch)
7670 (uri (string-append
7671 "https://hackage.haskell.org/package/options/options-"
7672 version ".tar.gz"))
7673 (sha256
7674 (base32
7675 "0qjs0v1ny52w51n5582d4z8wy9h6n0zw1xb5dh686ff5wadflgi8"))))
7676 (build-system haskell-build-system)
7677 (inputs
7678 `(("ghc-monads-tf" ,ghc-monads-tf)
7679 ("ghc-chell" ,ghc-chell)
7680 ("ghc-chell-quickcheck" ,ghc-chell-quickcheck)))
7681 (home-page "https://john-millikin.com/software/haskell-options/")
7682 (synopsis "Powerful and easy-to-use command-line option parser")
7683 (description
7684 "The @code{options} package lets library and application developers
7685 easily work with command-line options.")
7686 (license license:expat)))
7687
7688 (define-public ghc-system-filepath
7689 (package
7690 (name "ghc-system-filepath")
7691 (version "0.4.14")
7692 (source
7693 (origin
7694 (method url-fetch)
7695 (uri (string-append
7696 "https://hackage.haskell.org/package/system-filepath/system-filepath-"
7697 version ".tar.gz"))
7698 (sha256
7699 (base32
7700 "14yras4pz2dh55xpwmazcgxijvi8913pjgzb9iw50mjq1lycwmhn"))))
7701 (build-system haskell-build-system)
7702 ;; FIXME: One of the tests fails:
7703 ;; [ FAIL ] tests.validity.posix
7704 ;; note: seed=7310214548328823169
7705 ;; *** Failed! Falsifiable (after 24 tests):
7706 ;; 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"
7707 (arguments `(#:tests? #f))
7708 (inputs
7709 `(("ghc-chell" ,ghc-chell)
7710 ("ghc-chell-quickcheck" ,ghc-chell-quickcheck)
7711 ("ghc-quickcheck" ,ghc-quickcheck)))
7712 (home-page "https://github.com/fpco/haskell-filesystem")
7713 (synopsis "High-level, byte-based file and directory path manipulations")
7714 (description
7715 "Provides a FilePath datatype and utility functions for operating on it.
7716 Unlike the filepath package, this package does not simply reuse String,
7717 increasing type safety.")
7718 (license license:expat)))
7719
7720 (define-public ghc-system-fileio
7721 (package
7722 (name "ghc-system-fileio")
7723 (version "0.3.16.3")
7724 (source
7725 (origin
7726 (method url-fetch)
7727 (uri (string-append
7728 "https://hackage.haskell.org/package/system-fileio/system-fileio-"
7729 version ".tar.gz"))
7730 (sha256
7731 (base32
7732 "1484hcl27s2qcby8ws5djj11q9bz68bspcifz9h5gii2ndy70x9i"))))
7733 (build-system haskell-build-system)
7734 (inputs
7735 `(("ghc-system-filepath" ,ghc-system-filepath)
7736 ("ghc-chell" ,ghc-chell)
7737 ("ghc-temporary" ,ghc-temporary)))
7738 (home-page "https://github.com/fpco/haskell-filesystem")
7739 (synopsis "Consistent file system interaction across GHC versions")
7740 (description
7741 "This is a small wrapper around the directory, unix, and Win32 packages,
7742 for use with system-filepath. It provides a consistent API to the various
7743 versions of these packages distributed with different versions of GHC.
7744 In particular, this library supports working with POSIX files that have paths
7745 which can't be decoded in the current locale encoding.")
7746 (license license:expat)))
7747
7748 (define-public ghc-storable-complex
7749 (package
7750 (name "ghc-storable-complex")
7751 (version "0.2.2")
7752 (source
7753 (origin
7754 (method url-fetch)
7755 (uri (string-append
7756 "https://hackage.haskell.org/package/storable-complex/storable-complex-"
7757 version ".tar.gz"))
7758 (sha256
7759 (base32 "01kwwkpbfjrv26vj83cd92px5qbq1bpgxj0r45534aksqhany1xb"))))
7760 (build-system haskell-build-system)
7761 (home-page "https://github.com/cartazio/storable-complex")
7762 (synopsis "Haskell Storable instance for Complex")
7763 (description "This package provides a Haskell library including a
7764 Storable instance for Complex which is binary compatible with C99, C++
7765 and Fortran complex data types.")
7766 (license license:bsd-3)))
7767
7768 (define-public ghc-hmatrix
7769 (package
7770 (name "ghc-hmatrix")
7771 (version "0.19.0.0")
7772 (source
7773 (origin
7774 (method url-fetch)
7775 (uri (string-append
7776 "https://hackage.haskell.org/package/hmatrix/hmatrix-"
7777 version ".tar.gz"))
7778 (sha256
7779 (base32 "10jd69nby29dggghcyjk6ykyr5wrn97nrv1dkpyrp0y5xm12xssj"))))
7780 (build-system haskell-build-system)
7781 (inputs
7782 `(("ghc-random" ,ghc-random)
7783 ("ghc-split" ,ghc-split)
7784 ("ghc-storable-complex" ,ghc-storable-complex)
7785 ("ghc-semigroups" ,ghc-semigroups)
7786 ("ghc-vector" ,ghc-vector)
7787 ;;("openblas" ,openblas)
7788 ("lapack" ,lapack)))
7789 ;; Guix's OpenBLAS is built with the flag "NO_LAPACK=1" which
7790 ;; disables inclusion of the LAPACK functions.
7791 ;; (arguments `(#:configure-flags '("--flags=openblas")))
7792 (home-page "https://github.com/albertoruiz/hmatrix")
7793 (synopsis "Haskell numeric linear algebra library")
7794 (description "The HMatrix package provices a Haskell library for
7795 dealing with linear systems, matrix decompositions, and other
7796 numerical computations based on BLAS and LAPACK.")
7797 (license license:bsd-3)))
7798
7799 (define-public ghc-hmatrix-gsl
7800 (package
7801 (name "ghc-hmatrix-gsl")
7802 (version "0.19.0.1")
7803 (source
7804 (origin
7805 (method url-fetch)
7806 (uri (string-append
7807 "https://hackage.haskell.org/package/hmatrix-gsl/hmatrix-gsl-"
7808 version ".tar.gz"))
7809 (sha256
7810 (base32 "0v6dla426x4ywaq59jm89ql1i42n39iw6z0j378xwb676v9kfxhm"))))
7811 (build-system haskell-build-system)
7812 (inputs
7813 `(("ghc-hmatrix" ,ghc-hmatrix)
7814 ("ghc-vector" ,ghc-vector)
7815 ("ghc-random" ,ghc-random)
7816 ("gsl" ,gsl)))
7817 (native-inputs `(("pkg-config" ,pkg-config)))
7818 (home-page "https://github.com/albertoruiz/hmatrix")
7819 (synopsis "Haskell GSL binding")
7820 (description "This Haskell library provides a purely functional
7821 interface to selected numerical computations, internally implemented
7822 using GSL.")
7823 (license license:gpl3+)))
7824
7825 (define-public ghc-hmatrix-special
7826 (package
7827 (name "ghc-hmatrix-special")
7828 (version "0.19.0.0")
7829 (source
7830 (origin
7831 (method url-fetch)
7832 (uri
7833 (string-append
7834 "https://hackage.haskell.org/package/hmatrix-special/hmatrix-special-"
7835 version ".tar.gz"))
7836 (sha256
7837 (base32 "1mywr61kr852sbff26n9x95kswx9l4ycbv6s68qsbkh02xzqq7qz"))))
7838 (build-system haskell-build-system)
7839 (inputs
7840 `(("ghc-hmatrix" ,ghc-hmatrix)
7841 ("ghc-hmatrix-gsl" ,ghc-hmatrix-gsl)))
7842 (home-page "https://github.com/albertoruiz/hmatrix")
7843 (synopsis "Haskell interface to GSL special functions")
7844 (description "This library provides an interface to GSL special
7845 functions for Haskell.")
7846 (license license:gpl3+)))
7847
7848 (define-public ghc-hmatrix-gsl-stats
7849 (package
7850 (name "ghc-hmatrix-gsl-stats")
7851 (version "0.4.1.7")
7852 (source
7853 (origin
7854 (method url-fetch)
7855 (uri
7856 (string-append
7857 "https://hackage.haskell.org/package/hmatrix-gsl-stats/hmatrix-gsl-stats-"
7858 version ".tar.gz"))
7859 (sha256
7860 (base32 "1gslgk58lzin43cvbpivhw7nrn9qyaa6qwhy1z9ypvyal5p8n3sa"))))
7861 (build-system haskell-build-system)
7862 (inputs
7863 `(("ghc-vector" ,ghc-vector)
7864 ("ghc-storable-complex" ,ghc-storable-complex)
7865 ("ghc-hmatrix" ,ghc-hmatrix)
7866 ("gsl" ,gsl)))
7867 (native-inputs `(("pkg-config" ,pkg-config)))
7868 (home-page "http://code.haskell.org/hmatrix-gsl-stats")
7869 (synopsis "GSL Statistics interface for Haskell")
7870 (description "This Haskell library provides a purely functional
7871 interface for statistics based on hmatrix and GSL.")
7872 (license license:bsd-3)))
7873
7874 (define-public ghc-easyplot
7875 (package
7876 (name "ghc-easyplot")
7877 (version "1.0")
7878 (source
7879 (origin
7880 (method url-fetch)
7881 (uri (string-append
7882 "https://hackage.haskell.org/package/easyplot/easyplot-"
7883 version ".tar.gz"))
7884 (sha256
7885 (base32 "18kndgvdj2apjpfga6fp7m16y1gx8zrwp3c5vfj03sx4v6jvciqk"))))
7886 (build-system haskell-build-system)
7887 (propagated-inputs `(("gnuplot" ,gnuplot)))
7888 (arguments
7889 `(#:phases (modify-phases %standard-phases
7890 (add-after 'unpack 'fix-setup-suffix
7891 (lambda _ (rename-file "Setup.lhs" "Setup.hs") #t)))))
7892 (home-page "https://hub.darcs.net/scravy/easyplot")
7893 (synopsis "Haskell plotting library based on gnuplot")
7894 (description "This package provides a plotting library for
7895 Haskell, using gnuplot for rendering.")
7896 (license license:expat)))
7897
7898 (define-public ghc-hashtables
7899 (package
7900 (name "ghc-hashtables")
7901 (version "1.2.3.1")
7902 (source
7903 (origin
7904 (method url-fetch)
7905 (uri (string-append
7906 "https://hackage.haskell.org/package/hashtables/hashtables-"
7907 version ".tar.gz"))
7908 (sha256
7909 (base32 "1giw9caajr07slf09j7zry9b0kvm4yj9q78zy1mawzi6gk3wglcg"))))
7910 (build-system haskell-build-system)
7911 (inputs
7912 `(("ghc-hashable" ,ghc-hashable)
7913 ("ghc-primitive" ,ghc-primitive)
7914 ("ghc-vector" ,ghc-vector)))
7915 (home-page "https://github.com/gregorycollins/hashtables")
7916 (synopsis "Haskell Mutable hash tables in the ST monad")
7917 (description "This package provides a Haskell library including a
7918 couple of different implementations of mutable hash tables in the ST
7919 monad, as well as a typeclass abstracting their common operations, and
7920 a set of wrappers to use the hash tables in the IO monad.")
7921 (license license:bsd-3)))
7922
7923 (define-public ghc-data-accessor
7924 (package
7925 (name "ghc-data-accessor")
7926 (version "0.2.2.7")
7927 (source
7928 (origin
7929 (method url-fetch)
7930 (uri (string-append
7931 "mirror://hackage/package/data-accessor/data-accessor-"
7932 version ".tar.gz"))
7933 (sha256
7934 (base32 "1vf2g1gac3rm32g97rl0fll51m88q7ry4m6khnl5j47qsmx24r9l"))))
7935 (build-system haskell-build-system)
7936 (home-page "https://www.haskell.org/haskellwiki/Record_access")
7937 (synopsis
7938 "Haskell utilities for accessing and manipulating fields of records")
7939 (description "This package provides Haskell modules for accessing and
7940 manipulating fields of records.")
7941 (license license:bsd-3)))
7942
7943 (define-public ghc-data-accessor-transformers
7944 (package
7945 (name "ghc-data-accessor-transformers")
7946 (version "0.2.1.7")
7947 (source
7948 (origin
7949 (method url-fetch)
7950 (uri (string-append
7951 "mirror://hackage/package/data-accessor-transformers/"
7952 "data-accessor-transformers-" version ".tar.gz"))
7953 (sha256
7954 (base32 "0yp030vafbpddl27m606aibbbr5ar5j5bsv4bksscz3cq4yq5j10"))))
7955 (build-system haskell-build-system)
7956 (inputs `(("ghc-data-accessor" ,ghc-data-accessor)))
7957 (home-page "https://www.haskell.org/haskellwiki/Record_access")
7958 (synopsis "Use Accessor to access state in transformers State monad")
7959 (description "This package provides Haskell modules to allow use of
7960 Accessor to access state in transformers State monad.")
7961 (license license:bsd-3)))
7962
7963 (define-public ghc-utility-ht
7964 (package
7965 (name "ghc-utility-ht")
7966 (version "0.0.14")
7967 (home-page "https://hackage.haskell.org/package/utility-ht")
7968 (source
7969 (origin
7970 (method url-fetch)
7971 (uri (string-append home-page "/utility-ht-" version ".tar.gz"))
7972 (sha256
7973 (base32 "1a7bgk7wv7sqbxbiv7kankiimr3wij7zdm7s83zwsf886ghyxhk9"))))
7974 (build-system haskell-build-system)
7975 (inputs `(("ghc-quickcheck" ,ghc-quickcheck)))
7976 (synopsis "Haskell helper functions for Lists, Maybes, Tuples, Functions")
7977 (description "This package includes Hakell modules providing various
7978 helper functions for Lists, Maybes, Tuples, Functions.")
7979 (license license:bsd-3)))
7980
7981 (define-public ghc-gnuplot
7982 (package
7983 (name "ghc-gnuplot")
7984 (version "0.5.5.2")
7985 (source
7986 (origin
7987 (method url-fetch)
7988 (uri (string-append
7989 "mirror://hackage/package/gnuplot/gnuplot-"
7990 version ".tar.gz"))
7991 (sha256
7992 (base32 "1mlppnc13ygjzmf6ldydys4wvy35yb3xjwwfgf9rbi7nfcqjr6mn"))))
7993 (build-system haskell-build-system)
7994 (inputs
7995 `(("ghc-temporary" ,ghc-temporary)
7996 ("ghc-utility-ht" ,ghc-utility-ht)
7997 ("ghc-data-accessor-transformers" ,ghc-data-accessor-transformers)
7998 ("ghc-data-accessor" ,ghc-data-accessor)
7999 ("ghc-semigroups" ,ghc-semigroups)
8000 ("gnuplot" ,gnuplot)))
8001 (arguments
8002 `(#:phases
8003 (modify-phases %standard-phases
8004 (add-before 'configure 'fix-path-to-gnuplot
8005 (lambda* (#:key inputs #:allow-other-keys)
8006 (let ((gnuplot (assoc-ref inputs "gnuplot")))
8007 (substitute* "os/generic/Graphics/Gnuplot/Private/OS.hs"
8008 (("(gnuplotName = ).*$" all cmd)
8009 (string-append cmd "\"" gnuplot "/bin/gnuplot\"")))))))))
8010 (home-page "https://www.haskell.org/haskellwiki/Gnuplot")
8011 (synopsis "2D and 3D plots using gnuplot")
8012 (description "This package provides a Haskell module for creating 2D and
8013 3D plots using gnuplot.")
8014 (license license:bsd-3)))
8015
8016 (define-public ghc-hinotify
8017 (package
8018 (name "ghc-hinotify")
8019 (version "0.3.10")
8020 (source (origin
8021 (method url-fetch)
8022 (uri (string-append
8023 "https://hackage.haskell.org/package/hinotify/"
8024 "hinotify-" version ".tar.gz"))
8025 (sha256
8026 (base32
8027 "17ax3n68a5c2ddazp86aciliskrh6znd3bnry0wcllmb6dbpsaxg"))))
8028 (build-system haskell-build-system)
8029 (inputs
8030 `(("ghc-async" ,ghc-async)))
8031 (home-page "https://github.com/kolmodin/hinotify.git")
8032 (synopsis "Haskell binding to inotify")
8033 (description "This library provides a wrapper to the Linux kernel's inotify
8034 feature, allowing applications to subscribe to notifications when a file is
8035 accessed or modified.")
8036 (license license:bsd-3)))
8037
8038 (define-public ghc-fsnotify
8039 (package
8040 (name "ghc-fsnotify")
8041 (version "0.3.0.1")
8042 (source (origin
8043 (method url-fetch)
8044 (uri (string-append
8045 "https://hackage.haskell.org/package/fsnotify/"
8046 "fsnotify-" version ".tar.gz"))
8047 (sha256
8048 (base32
8049 "19bdbz9wb9jvln6yg6qm0hz0w84bypvkxf0wjhgrgd52f9gidlny"))))
8050 (build-system haskell-build-system)
8051 (inputs
8052 `(("ghc-async" ,ghc-async)
8053 ("ghc-unix-compat" ,ghc-unix-compat)
8054 ("ghc-hinotify" ,ghc-hinotify)
8055 ("ghc-tasty" ,ghc-tasty)
8056 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
8057 ("ghc-random" ,ghc-random)
8058 ("ghc-shelly" ,ghc-shelly)
8059 ("ghc-temporary" ,ghc-temporary)))
8060 (home-page "https://github.com/haskell-fswatch/hfsnotify")
8061 (synopsis "Cross platform library for file change notification.")
8062 (description "Cross platform library for file creation, modification, and
8063 deletion notification. This library builds upon existing libraries for platform
8064 specific Windows, Mac, and Linux file system event notification.")
8065 (license license:bsd-3)))
8066
8067 (define-public ghc-ieee754
8068 (package
8069 (name "ghc-ieee754")
8070 (version "0.8.0")
8071 (source (origin
8072 (method url-fetch)
8073 (uri (string-append
8074 "https://hackage.haskell.org/package/ieee754/"
8075 "ieee754-" version ".tar.gz"))
8076 (sha256
8077 (base32
8078 "1lcs521g9lzy9d7337vg4w7q7s8500rfqy7rcifcz6pm6yfgyb8f"))))
8079 (build-system haskell-build-system)
8080 (home-page "https://github.com/patperry/hs-ieee754")
8081 (synopsis "Utilities for dealing with IEEE floating point numbers")
8082 (description "Utilities for dealing with IEEE floating point numbers,
8083 ported from the Tango math library; approximate and exact equality comparisons
8084 for general types.")
8085 (license license:bsd-3)))
8086
8087 (define-public ghc-terminal-size
8088 (package
8089 (name "ghc-terminal-size")
8090 (version "0.3.2.1")
8091 (source (origin
8092 (method url-fetch)
8093 (uri (string-append
8094 "https://hackage.haskell.org/package/terminal-size/"
8095 "terminal-size-" version ".tar.gz"))
8096 (sha256
8097 (base32
8098 "0n4nvj3dbj9gxfnprgish45asn9z4dipv9j98s8i7g2n8yb3xhmm"))))
8099 (build-system haskell-build-system)
8100 (home-page "https://hackage.haskell.org/package/terminal-size")
8101 (synopsis "Get terminal window height and width")
8102 (description "Get terminal window height and width without ncurses
8103 dependency.")
8104 (license license:bsd-3)))
8105
8106 (define-public ghc-language-c
8107 (package
8108 (name "ghc-language-c")
8109 (version "0.8.1")
8110 (source
8111 (origin
8112 (method url-fetch)
8113 (uri (string-append "https://hackage.haskell.org/package/"
8114 "language-c/language-c-" version ".tar.gz"))
8115 (sha256
8116 (base32
8117 "0sdkjj0hq8p69fcdm6ljbjkjvrsrb8a6rl5dq6dj6byj32ajrm3d"))))
8118 (build-system haskell-build-system)
8119 (inputs `(("ghc-syb" ,ghc-syb)))
8120 (native-inputs
8121 `(("ghc-happy" ,ghc-happy)
8122 ("ghc-alex" ,ghc-alex)))
8123 (home-page "https://visq.github.io/language-c/")
8124 (synopsis "Analysis and generation of C code")
8125 (description
8126 "Language C is a Haskell library for the analysis and generation of C code.
8127 It features a complete, well-tested parser and pretty printer for all of C99
8128 and a large set of GNU extensions.")
8129 (license license:bsd-3)))
8130
8131 (define-public ghc-markdown-unlit
8132 (package
8133 (name "ghc-markdown-unlit")
8134 (version "0.5.0")
8135 (source (origin
8136 (method url-fetch)
8137 (uri (string-append
8138 "mirror://hackage/package/markdown-unlit/"
8139 "markdown-unlit-" version ".tar.gz"))
8140 (sha256
8141 (base32
8142 "1gy79vr85vcp13rdjh0hz7zv6daqqffww4j0cqn2lpjjh9xhsbg7"))))
8143 (build-system haskell-build-system)
8144 (inputs
8145 `(("ghc-base-compat" ,ghc-base-compat)
8146 ("ghc-hspec" ,ghc-hspec)
8147 ("ghc-quickcheck" ,ghc-quickcheck)
8148 ("ghc-silently" ,ghc-silently)
8149 ("ghc-stringbuilder" ,ghc-stringbuilder)
8150 ("ghc-temporary" ,ghc-temporary)
8151 ("hspec-discover" ,hspec-discover)))
8152 (home-page "https://github.com/sol/markdown-unlit#readme")
8153 (synopsis "Literate Haskell support for Markdown")
8154 (description "This package allows you to have a README.md that at the
8155 same time is a literate Haskell program.")
8156 (license license:expat)))
8157
8158 (define-public corrode
8159 (let ((commit "b6699fb2fa552a07c6091276285a44133e5c9789"))
8160 (package
8161 (name "corrode")
8162 (version (string-append "0.0.1-" (string-take commit 7)))
8163 (source
8164 (origin
8165 (method git-fetch)
8166 (uri (git-reference
8167 (url "https://github.com/jameysharp/corrode.git")
8168 (commit "b6699fb2fa552a07c6091276285a44133e5c9789")))
8169 (file-name
8170 (string-append name "-" version "-checkout"))
8171 (sha256
8172 (base32 "02v0yyj6sk4gpg2222wzsdqjxn8w66scbnf6b20x0kbmc69qcz4r"))))
8173 (build-system haskell-build-system)
8174 (inputs
8175 `(("ghc-language-c" ,ghc-language-c)
8176 ("ghc-markdown-unlit" ,ghc-markdown-unlit)))
8177 (home-page "https://github.com/jameysharp/corrode")
8178 (synopsis "Automatic semantics-preserving translation from C to Rust")
8179 (description
8180 "This program reads a C source file and prints an equivalent module in
8181 Rust syntax. It is intended to be useful for two different purposes:
8182
8183 @enumerate
8184 @item Partial automation for migrating legacy code that was implemented in C.
8185 @item A new, complementary approach to static analysis for C programs.
8186 @end enumerate\n")
8187 (license license:gpl2+))))
8188
8189 (define-public ghc-wave
8190 (package
8191 (name "ghc-wave")
8192 (version "0.1.5")
8193 (source (origin
8194 (method url-fetch)
8195 (uri (string-append
8196 "https://hackage.haskell.org/package/wave/wave-"
8197 version
8198 ".tar.gz"))
8199 (sha256
8200 (base32
8201 "03zycmwrchhqvi37fdvlzz2d1vl4hy0i8xyys1zznw38qfq0h2i5"))))
8202 (build-system haskell-build-system)
8203 (arguments
8204 '(#:phases
8205 (modify-phases %standard-phases
8206 (add-before 'configure 'update-constraints
8207 (lambda _
8208 (substitute* "wave.cabal"
8209 (("temporary.* < 1\\.3")
8210 "temporary >= 1.1 && < 1.4")))))))
8211 (inputs
8212 `(("ghc-cereal" ,ghc-cereal)
8213 ("ghc-data-default-class"
8214 ,ghc-data-default-class)
8215 ("ghc-quickcheck" ,ghc-quickcheck)
8216 ("ghc-temporary" ,ghc-temporary)))
8217 (native-inputs
8218 `(("hspec-discover" ,hspec-discover)
8219 ("ghc-hspec" ,ghc-hspec)))
8220 (home-page "https://github.com/mrkkrp/wave")
8221 (synopsis "Work with WAVE and RF64 files in Haskell")
8222 (description "This package allows you to work with WAVE and RF64
8223 files in Haskell.")
8224 (license license:bsd-3)))
8225
8226 (define-public ghc-hslogger
8227 (package
8228 (name "ghc-hslogger")
8229 (version "1.2.10")
8230 (source
8231 (origin
8232 (method url-fetch)
8233 (uri (string-append "https://hackage.haskell.org/package/"
8234 "hslogger-" version "/" "hslogger-"
8235 version ".tar.gz"))
8236 (sha256 (base32
8237 "0as5gvlh6pi2gflakp695qnlizyyp059dqrhvjl4gjxalja6xjnp"))))
8238 (build-system haskell-build-system)
8239 (inputs
8240 `(("ghc-network" ,ghc-network)
8241 ("ghc-old-locale" ,ghc-old-locale)))
8242 (native-inputs
8243 `(("ghc-hunit" ,ghc-hunit)))
8244 (home-page "https://software.complete.org/hslogger")
8245 (synopsis "Logging framework for Haskell, similar to Python's logging module")
8246 (description "Hslogger lets each log message have a priority and source be
8247 associated with it. The programmer can then define global handlers that route
8248 or filter messages based on the priority and source. It also has a syslog
8249 handler built in.")
8250 (license license:bsd-3)))
8251
8252 (define-public ghc-unexceptionalio
8253 (package
8254 (name "ghc-unexceptionalio")
8255 (version "0.4.0")
8256 (source
8257 (origin
8258 (method url-fetch)
8259 (uri (string-append "https://hackage.haskell.org/package/"
8260 "unexceptionalio-" version "/" "unexceptionalio-"
8261 version ".tar.gz"))
8262 (sha256 (base32 "09gynk472l7nn5l2w320n4dwigwp0wh0shfp6dyw6r5h2jdxz18p"))))
8263 (build-system haskell-build-system)
8264 (home-page "https://github.com/singpolyma/unexceptionalio")
8265 (synopsis "IO without any non-error, synchronous exceptions")
8266 (description "When you've caught all the exceptions that can be
8267 handled safely, this is what you're left with.")
8268 (license license:isc)))
8269
8270 (define-public ghc-json
8271 (package
8272 (name "ghc-json")
8273 (version "0.9.2")
8274 (source
8275 (origin
8276 (method url-fetch)
8277 (uri (string-append "https://hackage.haskell.org/package/json/"
8278 "json-" version ".tar.gz"))
8279 (sha256
8280 (base32
8281 "13kkfgx58z18jphbg56jn08jn72wi3kvfndlwwx87hqwg7x1dfz6"))))
8282 (build-system haskell-build-system)
8283 (inputs
8284 `(("ghc-syb" ,ghc-syb)))
8285 (home-page "https://hackage.haskell.org/package/json")
8286 (synopsis "Serializes Haskell data to and from JSON")
8287 (description "This package provides a parser and pretty printer for
8288 converting between Haskell values and JSON.
8289 JSON (JavaScript Object Notation) is a lightweight data-interchange format.")
8290 (license license:bsd-3)))
8291
8292 (define-public ghc-esqueleto
8293 (let ((version "2.5.3")
8294 (revision "1")
8295 (commit "b81e0d951e510ebffca03c5a58658ad884cc6fbd"))
8296 (package
8297 (name "ghc-esqueleto")
8298 (version (git-version version revision commit))
8299 (source
8300 (origin
8301 (method git-fetch)
8302 (uri (git-reference
8303 (url "https://github.com/bitemyapp/esqueleto")
8304 (commit commit)))
8305 (file-name (git-file-name name version))
8306 (sha256
8307 (base32
8308 "0lz1qxms7cfg5p3j37inlych0r2fwhm8xbarcys3df9m7jy9nixa"))))
8309 (build-system haskell-build-system)
8310 (arguments
8311 `(#:haddock? #f ; Haddock reports an internal error.
8312 #:phases
8313 (modify-phases %standard-phases
8314 ;; This package normally runs tests for the MySQL, PostgreSQL, and
8315 ;; SQLite backends. Since we only have Haskell packages for
8316 ;; SQLite, we remove the other two test suites. FIXME: Add the
8317 ;; other backends and run all three test suites.
8318 (add-before 'configure 'remove-non-sqlite-test-suites
8319 (lambda _
8320 (use-modules (ice-9 rdelim))
8321 (with-atomic-file-replacement "esqueleto.cabal"
8322 (lambda (in out)
8323 (let loop ((line (read-line in 'concat)) (deleting? #f))
8324 (cond
8325 ((eof-object? line) #t)
8326 ((string-every char-set:whitespace line)
8327 (unless deleting? (display line out))
8328 (loop (read-line in 'concat) #f))
8329 ((member line '("test-suite mysql\n"
8330 "test-suite postgresql\n"))
8331 (loop (read-line in 'concat) #t))
8332 (else
8333 (unless deleting? (display line out))
8334 (loop (read-line in 'concat) deleting?)))))))))))
8335 (inputs
8336 `(("ghc-blaze-html" ,ghc-blaze-html)
8337 ("ghc-conduit" ,ghc-conduit)
8338 ("ghc-monad-logger" ,ghc-monad-logger)
8339 ("ghc-persistent" ,ghc-persistent)
8340 ("ghc-resourcet" ,ghc-resourcet)
8341 ("ghc-tagged" ,ghc-tagged)
8342 ("ghc-unliftio" ,ghc-unliftio)
8343 ("ghc-unordered-containers" ,ghc-unordered-containers)))
8344 (native-inputs
8345 `(("ghc-hspec" ,ghc-hspec)
8346 ("ghc-persistent-sqlite" ,ghc-persistent-sqlite)
8347 ("ghc-persistent-template" ,ghc-persistent-template)))
8348 (home-page "https://github.com/bitemyapp/esqueleto")
8349 (synopsis "Type-safe embedded domain specific language for SQL queries")
8350 (description "This library provides a type-safe embedded domain specific
8351 language (EDSL) for SQL queries that works with SQL backends as provided by
8352 @code{ghc-persistent}. Its language closely resembles SQL, so you don't have
8353 to learn new concepts, just new syntax, and it's fairly easy to predict the
8354 generated SQL and optimize it for your backend.")
8355 (license license:bsd-3))))
8356
8357 (define-public shellcheck
8358 (package
8359 (name "shellcheck")
8360 (version "0.5.0")
8361 (source
8362 (origin
8363 (method url-fetch)
8364 (uri (string-append
8365 "https://hackage.haskell.org/package/ShellCheck/ShellCheck-"
8366 version ".tar.gz"))
8367 (sha256
8368 (base32
8369 "0z1hscbr11hwkq8k1v0vaa947hb9m6k4cm831jk1gpj8dxrk151b"))
8370 (file-name (string-append name "-" version ".tar.gz"))))
8371 (build-system haskell-build-system)
8372 (inputs
8373 `(("ghc-aeson" ,ghc-aeson)
8374 ("ghc-quickcheck" ,ghc-quickcheck)
8375 ("ghc-regex-tdfa" ,ghc-regex-tdfa)))
8376 (home-page "https://github.com/koalaman/shellcheck")
8377 (synopsis "Static analysis for shell scripts")
8378 (description "@code{shellcheck} provides static analysis for
8379 @command{bash} and @command{sh} shell scripts.
8380 It gives warnings and suggestions in order to:
8381
8382 @enumerate
8383 @item Point out and clarify typical beginner's syntax issues that cause
8384 a shell to give cryptic error messages.
8385 @item Point out and clarify typical intermediate level semantic problems
8386 that cause a shell to behave strangely and counter-intuitively.
8387 @item Point out subtle caveats, corner cases and pitfalls that may cause an
8388 advanced user's otherwise working script to fail under future circumstances.
8389 @end enumerate")
8390 (license license:gpl3+)))
8391
8392 (define-public ghc-simple-sendfile
8393 (package
8394 (name "ghc-simple-sendfile")
8395 (version "0.2.27")
8396 (source
8397 (origin
8398 (method url-fetch)
8399 (uri (string-append "https://hackage.haskell.org/package/"
8400 "simple-sendfile-" version "/"
8401 "simple-sendfile-" version ".tar.gz"))
8402 (sha256
8403 (base32
8404 "1bwwqzcm56m2w4ymsa054sxmpbj76h9pvb0jf8zxp8lr41cp51gn"))))
8405 (build-system haskell-build-system)
8406 (inputs
8407 `(("ghc-conduit" ,ghc-conduit)
8408 ("ghc-conduit-extra" ,ghc-conduit-extra)
8409 ("ghc-network" ,ghc-network)
8410 ("ghc-resourcet" ,ghc-resourcet)))
8411 (native-inputs
8412 `(("ghc-hspec" ,ghc-hspec)
8413 ("hspec-discover" ,hspec-discover)))
8414 (home-page "https://github.com/kazu-yamamoto/simple-sendfile")
8415 (synopsis "Cross platform library for the sendfile system call")
8416 (description "This library tries to call minimum system calls which
8417 are the bottleneck of web servers.")
8418 (license license:bsd-3)))
8419
8420 (define-public ghc-hex
8421 (package
8422 (name "ghc-hex")
8423 (version "0.1.2")
8424 (source
8425 (origin
8426 (method url-fetch)
8427 (uri (string-append "https://hackage.haskell.org/package/"
8428 "hex-" version "/"
8429 "hex-" version ".tar.gz"))
8430 (sha256
8431 (base32
8432 "1v31xiaivrrn0q2jz8919wvkjplv1kxna5ajhsj701fqxm1i5vhj"))))
8433 (build-system haskell-build-system)
8434 (home-page "https://hackage.haskell.org/package/hex")
8435 (synopsis "Convert strings into hexadecimal and back")
8436 (description "This package provides conversion functions between
8437 bytestrings and their hexademical representation.")
8438 (license license:bsd-3)))
8439
8440 (define-public ghc-psqueues
8441 (package
8442 (name "ghc-psqueues")
8443 (version "0.2.7.0")
8444 (source
8445 (origin
8446 (method url-fetch)
8447 (uri (string-append "https://hackage.haskell.org/package/"
8448 "psqueues-" version "/"
8449 "psqueues-" version ".tar.gz"))
8450 (sha256
8451 (base32
8452 "1sjgc9bxh63kkdp59nbirx3xazr02ia5yhp4f4a0jnq1hj465wsc"))))
8453 (build-system haskell-build-system)
8454 (inputs
8455 `(("ghc-hashable" ,ghc-hashable)))
8456 (native-inputs
8457 `(("ghc-hunit" ,ghc-hunit)
8458 ("ghc-quickcheck" ,ghc-quickcheck)
8459 ("ghc-tagged" ,ghc-tagged)
8460 ("ghc-test-framework" ,ghc-test-framework)
8461 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
8462 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
8463 (home-page "https://github.com/jaspervdj/psqueues")
8464 (synopsis "Pure priority search queues")
8465 (description "The psqueues package provides
8466 @uref{https://en.wikipedia.org/wiki/Priority_queue, Priority Search Queues} in
8467 three different flavors:
8468
8469 @itemize
8470 @item @code{OrdPSQ k p v}, which uses the @code{Ord k} instance to provide
8471 fast insertion, deletion and lookup. This implementation is based on Ralf
8472 Hinze's @uref{http://citeseer.ist.psu.edu/hinze01simple.html, A Simple
8473 Implementation Technique for Priority Search Queues}.
8474
8475 Hence, it is similar to the @uref{https://hackage.haskell.org/package/PSQueue,
8476 PSQueue} library, although it is considerably faster and provides a slightly
8477 different API.
8478
8479 @item @code{IntPSQ p v} is a far more efficient implementation. It fixes the
8480 key type to @code{Int} and uses a
8481 @code{https://en.wikipedia.org/wiki/Radix_tree, radix tree} (like @code{IntMap})
8482 with an additional min-heap property.
8483
8484 @item @code{HashPSQ k p v} is a fairly straightforward extension
8485 of @code{IntPSQ}: it simply uses the keys' hashes as indices in the
8486 @code{IntPSQ}. If there are any hash collisions, it uses an
8487 @code{OrdPSQ} to resolve those. The performance of this implementation
8488 is comparable to that of @code{IntPSQ}, but it is more widely
8489 applicable since the keys are not restricted to @code{Int},
8490 but rather to any @code{Hashable} datatype.
8491 @end itemize
8492
8493 Each of the three implementations provides the same API, so they can
8494 be used interchangeably.
8495
8496 Typical applications of Priority Search Queues include:
8497
8498 @itemize
8499 @item Caches, and more specifically LRU Caches;
8500 @item Schedulers;
8501 @item Pathfinding algorithms, such as Dijkstra's and A*.
8502 @end itemize")
8503 (license license:bsd-3)))
8504
8505 (define-public ghc-glob
8506 (package
8507 (name "ghc-glob")
8508 (version "0.9.2")
8509 (source
8510 (origin
8511 (method url-fetch)
8512 (uri (string-append "https://hackage.haskell.org/package/"
8513 "Glob-" version "/"
8514 "Glob-" version ".tar.gz"))
8515 (sha256
8516 (base32
8517 "1rbwcq9w9951qsnp13vqcm9r01yax2yh1wk8s4zxa3ckk9717iwg"))))
8518 (build-system haskell-build-system)
8519 (inputs
8520 `(("ghc-dlist" ,ghc-dlist)
8521 ("ghc-semigroups" ,ghc-semigroups)
8522 ("ghc-transformers-compat" ,ghc-transformers-compat)))
8523 (native-inputs
8524 `(("ghc-hunit" ,ghc-hunit)
8525 ("ghc-quickcheck" ,ghc-quickcheck)
8526 ("ghc-test-framework" ,ghc-test-framework)
8527 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
8528 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
8529 (home-page "http://iki.fi/matti.niemenmaa/glob/")
8530 (synopsis "Haskell library matching glob patterns against file paths")
8531 (description "This package provides a Haskell library for @dfn{globbing}:
8532 matching patterns against file paths.")
8533 (license license:bsd-3)))
8534
8535 (define-public ghc-errors
8536 (package
8537 (name "ghc-errors")
8538 (version "2.3.0")
8539 (source
8540 (origin
8541 (method url-fetch)
8542 (uri (string-append "https://hackage.haskell.org/package/"
8543 "errors-" version "/"
8544 "errors-" version ".tar.gz"))
8545 (sha256
8546 (base32
8547 "0x8znwn31qcx6kqx99wp7bc86kckfb39ncz3zxvj1s07kxlfawk7"))))
8548 (build-system haskell-build-system)
8549 (inputs
8550 `(("ghc-exceptions" ,ghc-exceptions)
8551 ("ghc-transformers-compat" ,ghc-transformers-compat)
8552 ("ghc-unexceptionalio" ,ghc-unexceptionalio)
8553 ("ghc-safe" ,ghc-safe)))
8554 (home-page "https://github.com/gabriel439/haskell-errors-library")
8555 (synopsis "Error handling library for Haskell")
8556 (description "This library encourages an error-handling style that
8557 directly uses the type system, rather than out-of-band exceptions.")
8558 (license license:bsd-3)))
8559
8560 (define-public ghc-vector-th-unbox
8561 (package
8562 (name "ghc-vector-th-unbox")
8563 (version "0.2.1.6")
8564 (source
8565 (origin
8566 (method url-fetch)
8567 (uri (string-append "https://hackage.haskell.org/package/"
8568 "vector-th-unbox-" version "/"
8569 "vector-th-unbox-" version ".tar.gz"))
8570 (sha256
8571 (base32
8572 "0d82x55f5vvr1jvaia382m23rs690lg55pvavv8f4ph0y6kd91xy"))))
8573 (build-system haskell-build-system)
8574 (inputs
8575 `(("ghc-vector" ,ghc-vector)
8576 ("ghc-data-default" ,ghc-data-default)))
8577 (home-page "https://github.com/liyang/vector-th-unbox")
8578 (synopsis "Deriver for Data.Vector.Unboxed using Template Haskell")
8579 (description "This Haskell library provides a Template Haskell
8580 deriver for unboxed vectors, given a pair of coercion functions to
8581 and from some existing type with an Unbox instance.")
8582 (license license:bsd-3)))
8583
8584 (define-public ghc-erf
8585 (package
8586 (name "ghc-erf")
8587 (version "2.0.0.0")
8588 (source
8589 (origin
8590 (method url-fetch)
8591 (uri (string-append "https://hackage.haskell.org/package/"
8592 "erf-" version "/"
8593 "erf-" version ".tar.gz"))
8594 (sha256
8595 (base32
8596 "0dxk2r32ajmmc05vaxcp0yw6vgv4lkbmh8jcshncn98xgsfbgw14"))))
8597 (build-system haskell-build-system)
8598 (home-page "https://hackage.haskell.org/package/erf")
8599 (synopsis "The error function, erf, and related functions for Haskell")
8600 (description "This Haskell library provides a type class for the
8601 error function, erf, and related functions. Instances for Float and
8602 Double.")
8603 (license license:bsd-3)))
8604
8605 (define-public ghc-math-functions
8606 (package
8607 (name "ghc-math-functions")
8608 (version "0.2.1.0")
8609 (source
8610 (origin
8611 (method url-fetch)
8612 (uri (string-append "https://hackage.haskell.org/package/"
8613 "math-functions-" version "/"
8614 "math-functions-" version ".tar.gz"))
8615 (sha256
8616 (base32
8617 "1sv5vabsx332v1lpb6v3jv4zrzvpx1n7yprzd8wlcda5vsc5a6zp"))))
8618 (build-system haskell-build-system)
8619 (arguments `(#:tests? #f)) ; FIXME: 1 test fails.
8620 (inputs
8621 `(("ghc-vector" ,ghc-vector)
8622 ("ghc-vector-th-unbox" ,ghc-vector-th-unbox)))
8623 (native-inputs
8624 `(("ghc-hunit" ,ghc-hunit)
8625 ("ghc-quickcheck" ,ghc-quickcheck)
8626 ("ghc-erf" ,ghc-erf)
8627 ("ghc-test-framework" ,ghc-test-framework)
8628 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
8629 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
8630 (home-page "https://github.com/bos/math-functions")
8631 (synopsis "Special functions and Chebyshev polynomials for Haskell")
8632 (description "This Haskell library provides implementations of
8633 special mathematical functions and Chebyshev polynomials. These
8634 functions are often useful in statistical and numerical computing.")
8635 (license license:bsd-3)))
8636
8637 (define-public ghc-mwc-random
8638 (package
8639 (name "ghc-mwc-random")
8640 (version "0.13.6.0")
8641 (source
8642 (origin
8643 (method url-fetch)
8644 (uri (string-append "https://hackage.haskell.org/package/"
8645 "mwc-random-" version "/"
8646 "mwc-random-" version ".tar.gz"))
8647 (sha256
8648 (base32
8649 "05j7yh0hh9nxic3dijmzv44kc6gzclvamdph7sq7w19wq57k6pq6"))))
8650 (build-system haskell-build-system)
8651 (inputs
8652 `(("ghc-primitive" ,ghc-primitive)
8653 ("ghc-vector" ,ghc-vector)
8654 ("ghc-math-functions" ,ghc-math-functions)))
8655 (arguments
8656 `(#:tests? #f)) ; FIXME: Test-Suite `spec` fails.
8657 (native-inputs
8658 `(("ghc-hunit" ,ghc-hunit)
8659 ("ghc-quickcheck" ,ghc-quickcheck)
8660 ("ghc-test-framework" ,ghc-test-framework)
8661 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
8662 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
8663 (home-page "https://github.com/bos/mwc-random")
8664 (synopsis "Random number generation library for Haskell")
8665 (description "This Haskell package contains code for generating
8666 high quality random numbers that follow either a uniform or normal
8667 distribution. The generated numbers are suitable for use in
8668 statistical applications.
8669
8670 The uniform PRNG uses Marsaglia's MWC256 (also known as MWC8222)
8671 multiply-with-carry generator, which has a period of 2^{8222} and
8672 fares well in tests of randomness. It is also extremely fast,
8673 between 2 and 3 times faster than the Mersenne Twister.")
8674 (license license:bsd-3)))
8675
8676 (define-public ghc-vector-algorithms
8677 (package
8678 (name "ghc-vector-algorithms")
8679 (version "0.7.0.4")
8680 (source
8681 (origin
8682 (method url-fetch)
8683 (uri (string-append "https://hackage.haskell.org/package/"
8684 "vector-algorithms-" version "/"
8685 "vector-algorithms-" version ".tar.gz"))
8686 (sha256
8687 (base32
8688 "0mfa8ig9v69l41p2vb5jl4qmaln5y1rlzarr2mlgm8g1nvq8qqdg"))))
8689 (build-system haskell-build-system)
8690 (inputs
8691 `(("ghc-vector" ,ghc-vector)))
8692 (native-inputs
8693 `(("ghc-quickcheck" ,ghc-quickcheck)))
8694 (home-page "https://github.com/bos/math-functions")
8695 (synopsis "Algorithms for vector arrays in Haskell")
8696 (description "This Haskell library algorithms for vector arrays.")
8697 (license license:bsd-3)))
8698
8699 (define-public ghc-language-haskell-extract
8700 (package
8701 (name "ghc-language-haskell-extract")
8702 (version "0.2.4")
8703 (source
8704 (origin
8705 (method url-fetch)
8706 (uri (string-append "https://hackage.haskell.org/package/"
8707 "language-haskell-extract-" version "/"
8708 "language-haskell-extract-" version ".tar.gz"))
8709 (sha256
8710 (base32
8711 "1nxcs7g8a1sp91bzpy4cj6s31k5pvc3gvig04cbrggv5cvjidnhl"))))
8712 (build-system haskell-build-system)
8713 (inputs
8714 `(("ghc-regex-posix" ,ghc-regex-posix)))
8715 (home-page "https://github.com/finnsson/template-helper")
8716 (synopsis "Haskell module to automatically extract functions from
8717 the local code")
8718 (description "This package contains helper functions on top of
8719 Template Haskell.
8720
8721 For example, @code{functionExtractor} extracts all functions after a
8722 regexp-pattern, which can be useful if you wish to extract all functions
8723 beginning with @code{test} (for a test framework) or all functions beginning
8724 with @code{wc} (for a web service).")
8725 (license license:bsd-3)))
8726
8727 (define-public ghc-abstract-par
8728 (package
8729 (name "ghc-abstract-par")
8730 (version "0.3.3")
8731 (source
8732 (origin
8733 (method url-fetch)
8734 (uri (string-append "https://hackage.haskell.org/package/"
8735 "abstract-par-" version "/"
8736 "abstract-par-" version ".tar.gz"))
8737 (sha256
8738 (base32
8739 "0q6qsniw4wks2pw6wzncb1p1j3k6al5njnvm2v5n494hplwqg2i4"))))
8740 (build-system haskell-build-system)
8741 (home-page "https://github.com/simonmar/monad-par")
8742 (synopsis "Abstract parallelization interface for Haskell")
8743 (description "This Haskell package is an abstract interface
8744 only. It provides a number of type clasess, but not an
8745 implementation. The type classes separate different levels
8746 of @code{Par} functionality. See the @code{Control.Monad.Par.Class}
8747 module for more details.")
8748 (license license:bsd-3)))
8749
8750 (define-public ghc-monad-par-extras
8751 (package
8752 (name "ghc-monad-par-extras")
8753 (version "0.3.3")
8754 (source
8755 (origin
8756 (method url-fetch)
8757 (uri (string-append "https://hackage.haskell.org/package/"
8758 "monad-par-extras-" version "/"
8759 "monad-par-extras-" version ".tar.gz"))
8760 (sha256
8761 (base32
8762 "0bl4bd6jzdc5zm20q1g67ppkfh6j6yn8fwj6msjayj621cck67p2"))))
8763 (build-system haskell-build-system)
8764 (inputs `(("ghc-abstract-par" ,ghc-abstract-par)
8765 ("ghc-cereal" ,ghc-cereal)
8766 ("ghc-random" ,ghc-random)))
8767 (home-page "https://github.com/simonmar/monad-par")
8768 (synopsis "Combinators and extra features for Par monads for Haskell")
8769 (description "This Haskell package provides additional data structures,
8770 and other added capabilities layered on top of the @code{Par} monad.")
8771 (license license:bsd-3)))
8772
8773 (define-public ghc-abstract-deque
8774 (package
8775 (name "ghc-abstract-deque")
8776 (version "0.3")
8777 (source
8778 (origin
8779 (method url-fetch)
8780 (uri (string-append "https://hackage.haskell.org/package/"
8781 "abstract-deque-" version "/"
8782 "abstract-deque-" version ".tar.gz"))
8783 (sha256
8784 (base32
8785 "18jwswjxwzc9bjiy4ds6hw2a74ki797jmfcifxd2ga4kh7ri1ah9"))))
8786 (build-system haskell-build-system)
8787 (inputs `(("ghc-random" ,ghc-random)))
8788 (home-page "https://github.com/rrnewton/haskell-lockfree/wiki")
8789 (synopsis "Abstract, parameterized interface to mutable Deques for Haskell")
8790 (description "This Haskell package provides an abstract interface to
8791 highly-parameterizable queues/deques.
8792
8793 Background: There exists a feature space for queues that extends between:
8794
8795 @itemize
8796 @item Simple, single-ended, non-concurrent, bounded queues
8797
8798 @item Double-ended, thread-safe, growable queues with important points
8799 in between (such as the queues used for work stealing).
8800 @end itemize
8801
8802 This package includes an interface for Deques that allows the programmer
8803 to use a single API for all of the above, while using the type system to
8804 select an efficient implementation given the requirements (using type families).
8805
8806 This package also includes a simple reference implementation based on
8807 @code{IORef} and @code{Data.Sequence}.")
8808 (license license:bsd-3)))
8809
8810 (define-public ghc-monad-par
8811 (package
8812 (name "ghc-monad-par")
8813 (version "0.3.4.8")
8814 (source
8815 (origin
8816 (method url-fetch)
8817 (uri (string-append "https://hackage.haskell.org/package/"
8818 "monad-par-" version "/"
8819 "monad-par-" version ".tar.gz"))
8820 (sha256
8821 (base32
8822 "0ldrzqy24fsszvn2a2nr77m2ih7xm0h9bgkjyv1l274aj18xyk7q"))))
8823 (build-system haskell-build-system)
8824 (inputs `(("ghc-abstract-par" ,ghc-abstract-par)
8825 ("ghc-abstract-deque" ,ghc-abstract-deque)
8826 ("ghc-monad-par-extras" ,ghc-monad-par-extras)
8827 ("ghc-mwc-random" ,ghc-mwc-random)
8828 ("ghc-parallel" ,ghc-parallel)))
8829 (native-inputs `(("ghc-quickcheck" ,ghc-quickcheck)
8830 ("ghc-hunit" ,ghc-hunit)
8831 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
8832 ("ghc-test-framework-quickcheck2"
8833 ,ghc-test-framework-quickcheck2)
8834 ("ghc-test-framework" ,ghc-test-framework)
8835 ("ghc-test-framework-th" ,ghc-test-framework-th)))
8836 (home-page "https://github.com/simonmar/monad-par")
8837 (synopsis "Haskell library for parallel programming based on a monad")
8838 (description "The @code{Par} monad offers an API for parallel
8839 programming. The library works for parallelising both pure and @code{IO}
8840 computations, although only the pure version is deterministic. The default
8841 implementation provides a work-stealing scheduler and supports forking tasks
8842 that are much lighter weight than IO-threads.")
8843 (license license:bsd-3)))
8844
8845 (define-public ghc-statistics
8846 (package
8847 (name "ghc-statistics")
8848 (version "0.14.0.2")
8849 (source
8850 (origin
8851 (method url-fetch)
8852 (uri (string-append "https://hackage.haskell.org/package/"
8853 "statistics-" version "/"
8854 "statistics-" version ".tar.gz"))
8855 (sha256
8856 (base32
8857 "0y27gafkib0x0fn39qfn2rkgsfrm09ng35sbb5dwr7rclhnxz59l"))))
8858 (build-system haskell-build-system)
8859 (arguments
8860 '(#:cabal-revision
8861 ("2" "1bx70yqkn62ii17fjv3pig4hklrzkqd09zj67zzjiyjzmn04fir3")
8862 ;; Two tests fail: "Discrete CDF is OK" and "Quantile is CDF inverse".
8863 #:tests? #f))
8864 (inputs
8865 `(("ghc-aeson" ,ghc-aeson)
8866 ("ghc-base-orphans" ,ghc-base-orphans)
8867 ("ghc-erf" ,ghc-erf)
8868 ("ghc-math-functions" ,ghc-math-functions)
8869 ("ghc-monad-par" ,ghc-monad-par)
8870 ("ghc-mwc-random" ,ghc-mwc-random)
8871 ("ghc-primitive" ,ghc-primitive)
8872 ("ghc-vector" ,ghc-vector)
8873 ("ghc-vector-algorithms" ,ghc-vector-algorithms)
8874 ("ghc-vector-th-unbox" ,ghc-vector-th-unbox)
8875 ("ghc-vector-binary-instances" ,ghc-vector-binary-instances)))
8876 (native-inputs
8877 `(("ghc-hunit" ,ghc-hunit)
8878 ("ghc-quickcheck" ,ghc-quickcheck)
8879 ("ghc-ieee754" ,ghc-ieee754)
8880 ("ghc-test-framework" ,ghc-test-framework)
8881 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
8882 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
8883 (home-page "https://github.com/bos/mwc-random")
8884 (synopsis "Haskell library of statistical types, data, and functions")
8885 (description "This library provides a number of common functions
8886 and types useful in statistics. We focus on high performance, numerical
8887 robustness, and use of good algorithms. Where possible, we provide references
8888 to the statistical literature.
8889
8890 The library's facilities can be divided into four broad categories:
8891
8892 @itemize
8893 @item Working with widely used discrete and continuous probability
8894 distributions. (There are dozens of exotic distributions in use; we focus
8895 on the most common.)
8896
8897 @item Computing with sample data: quantile estimation, kernel density
8898 estimation, histograms, bootstrap methods, significance testing,
8899 and regression and autocorrelation analysis.
8900
8901 @item Random variate generation under several different distributions.
8902
8903 @item Common statistical tests for significant differences between samples.
8904 @end itemize")
8905 (license license:bsd-2)))
8906
8907 (define-public ghc-chunked-data
8908 (package
8909 (name "ghc-chunked-data")
8910 (version "0.3.1")
8911 (source
8912 (origin
8913 (method url-fetch)
8914 (uri (string-append "https://hackage.haskell.org/package/"
8915 "chunked-data-" version "/"
8916 "chunked-data-" version ".tar.gz"))
8917 (sha256
8918 (base32
8919 "16m7y7fwrirbjbqqcsfmr4yxa9qvfax6r7pw0zl9ky71ms0wa47p"))))
8920 (build-system haskell-build-system)
8921 (inputs `(("ghc-vector" ,ghc-vector)
8922 ("ghc-semigroups" ,ghc-semigroups)))
8923 (home-page "https://github.com/snoyberg/mono-traversable")
8924 (synopsis "Typeclasses for dealing with various chunked data
8925 representations for Haskell")
8926 (description "This Haskell package was originally present in
8927 classy-prelude.")
8928 (license license:expat)))
8929
8930 (define-public ghc-base-prelude
8931 (package
8932 (name "ghc-base-prelude")
8933 (version "1.3")
8934 (source
8935 (origin
8936 (method url-fetch)
8937 (uri (string-append "https://hackage.haskell.org/package/"
8938 "base-prelude-" version "/"
8939 "base-prelude-" version ".tar.gz"))
8940 (sha256
8941 (base32
8942 "1zk728sd09hh2r4xwz4lazsrrgg5cshydn64932sm0vckplndk73"))))
8943 (build-system haskell-build-system)
8944 (home-page "https://github.com/nikita-volkov/base-prelude")
8945 (synopsis "The most complete prelude formed solely from the Haskell's base
8946 package")
8947 (description "This Haskell package aims to reexport all the non-conflicting
8948 and most general definitions from the \"base\" package.
8949
8950 This includes APIs for applicatives, arrows, monoids, foldables, traversables,
8951 exceptions, generics, ST, MVars and STM.
8952
8953 This package will never have any dependencies other than \"base\".
8954
8955 Versioning policy:
8956
8957 The versioning policy of this package deviates from PVP in the sense
8958 that its exports in part are transitively determined by the version of \"base\".
8959 Therefore it's recommended for the users of @code{ghc-base-prelude} to specify
8960 the bounds of \"base\" as well.")
8961 (license license:expat)))
8962
8963 (define-public ghc-tuple-th
8964 (package
8965 (name "ghc-tuple-th")
8966 (version "0.2.5")
8967 (source
8968 (origin
8969 (method url-fetch)
8970 (uri (string-append "https://hackage.haskell.org/package/"
8971 "tuple-th-" version "/"
8972 "tuple-th-" version ".tar.gz"))
8973 (sha256
8974 (base32
8975 "1mrl4vvxmby7sf1paf7hklzidnr6wq55822i73smqyz0xpf3gsjn"))))
8976 (build-system haskell-build-system)
8977 (home-page "https://github.com/DanielSchuessler/tuple-th")
8978 (synopsis "Generate utility functions for tuples of statically known size
8979 for Haskell")
8980 (description "This Haskell package contains Template Haskell functions for
8981 generating functions similar to those in @code{Data.List} for tuples of
8982 statically known size.")
8983 (license license:bsd-3)))
8984
8985 (define-public ghc-contravariant-extras
8986 (package
8987 (name "ghc-contravariant-extras")
8988 (version "0.3.4")
8989 (source
8990 (origin
8991 (method url-fetch)
8992 (uri (string-append "https://hackage.haskell.org/package/"
8993 "contravariant-extras-" version "/"
8994 "contravariant-extras-" version ".tar.gz"))
8995 (sha256
8996 (base32
8997 "0gg62ccl94kvh7mnvdq09pifqxjx2kgs189si90nmg44bafj7a9n"))))
8998 (build-system haskell-build-system)
8999 (inputs
9000 `(("ghc-tuple-th" ,ghc-tuple-th)
9001 ("ghc-contravariant" ,ghc-contravariant)
9002 ("ghc-base-prelude" ,ghc-base-prelude)
9003 ("ghc-semigroups" ,ghc-semigroups)))
9004 (home-page "https://github.com/nikita-volkov/contravariant-extras")
9005 (synopsis "Extras for the @code{ghc-contravariant} Haskell package")
9006 (description "This Haskell package provides extras for the
9007 @code{ghc-contravariant} package.")
9008 (license license:expat)))
9009
9010 (define-public ghc-monadrandom
9011 (package
9012 (name "ghc-monadrandom")
9013 (version "0.5.1.1")
9014 (source
9015 (origin
9016 (method url-fetch)
9017 (uri (string-append "https://hackage.haskell.org/package/"
9018 "MonadRandom-" version "/"
9019 "MonadRandom-" version ".tar.gz"))
9020 (sha256
9021 (base32
9022 "0w44jl1n3kqvqaflh82l1wj3xxbhzfs3kf4m8rk7w6fgg8llmnmb"))))
9023 (build-system haskell-build-system)
9024 (inputs `(("ghc-transformers-compat" ,ghc-transformers-compat)
9025 ("ghc-primitive" ,ghc-primitive)
9026 ("ghc-fail" ,ghc-fail)
9027 ("ghc-random" ,ghc-random)))
9028 (home-page "https://github.com/byorgey/MonadRandom")
9029 (synopsis "Random-number generation monad for Haskell")
9030 (description "This Haskell package provides support for computations
9031 which consume random values.")
9032 (license license:bsd-3)))
9033
9034 (define-public ghc-either
9035 (package
9036 (name "ghc-either")
9037 (version "5.0.1")
9038 (source
9039 (origin
9040 (method url-fetch)
9041 (uri (string-append "https://hackage.haskell.org/package/"
9042 "either-" version "/"
9043 "either-" version ".tar.gz"))
9044 (sha256
9045 (base32
9046 "064hjfld7dkzs78sy30k5qkiva3hx24rax6dvzz5ygr2c0zypdkc"))))
9047 (build-system haskell-build-system)
9048 (inputs `(("ghc-bifunctors" ,ghc-bifunctors)
9049 ("ghc-exceptions" ,ghc-exceptions)
9050 ("ghc-free" ,ghc-free)
9051 ("ghc-monad-control" ,ghc-monad-control)
9052 ("ghc-manodrandom" ,ghc-monadrandom)
9053 ("ghc-mmorph" ,ghc-mmorph)
9054 ("ghc-profunctors" ,ghc-profunctors)
9055 ("ghc-semigroups" ,ghc-semigroups)
9056 ("ghc-semigroupoids" ,ghc-semigroupoids)
9057 ("ghc-transformers-base" ,ghc-transformers-base)))
9058 (native-inputs
9059 `(("ghc-quickcheck" ,ghc-quickcheck)
9060 ("ghc-test-framework" ,ghc-test-framework)
9061 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
9062 (home-page "https://github.com/ekmett/either")
9063 (synopsis "Provides an either monad transformer for Haskell")
9064 (description "This Haskell package provides an either monad transformer.")
9065 (license license:bsd-3)))
9066
9067 (define-public ghc-pretty-hex
9068 (package
9069 (name "ghc-pretty-hex")
9070 (version "1.0")
9071 (source
9072 (origin
9073 (method url-fetch)
9074 (uri (string-append "https://hackage.haskell.org/package/"
9075 "pretty-hex-" version "/"
9076 "pretty-hex-" version ".tar.gz"))
9077 (sha256
9078 (base32
9079 "0ylwkvvjvmpprha9nx83xb8gkhyanhk5fffc0r7lb96n4ch5z6pz"))))
9080 (build-system haskell-build-system)
9081 (home-page "https://github.com/GaloisInc/hexdump")
9082 (synopsis "Haskell library for hex dumps of ByteStrings")
9083 (description "This Haskell library generates pretty hex dumps of
9084 ByteStrings in the style of other common *nix hex dump tools.")
9085 (license license:bsd-3)))
9086
9087 (define-public ghc-network-info
9088 (package
9089 (name "ghc-network-info")
9090 (version "0.2.0.10")
9091 (source
9092 (origin
9093 (method url-fetch)
9094 (uri (string-append "https://hackage.haskell.org/package/"
9095 "network-info-" version "/"
9096 "network-info-" version ".tar.gz"))
9097 (sha256
9098 (base32
9099 "0anmgzcpnz7nw3n6vq0r25m1s9l2svpwi83wza0lzkrlbnbzd02n"))))
9100 (build-system haskell-build-system)
9101 (home-page "https://github.com/jystic/network-info")
9102 (synopsis "Access the local computer's basic network configuration")
9103 (description "This Haskell library provides simple read-only access to the
9104 local computer's networking configuration. It is currently capable of
9105 getting a list of all the network interfaces and their respective
9106 IPv4, IPv6 and MAC addresses.")
9107 (license license:bsd-3)))
9108
9109 (define-public ghc-uuid-types
9110 (package
9111 (name "ghc-uuid-types")
9112 (version "1.0.3")
9113 (source
9114 (origin
9115 (method url-fetch)
9116 (uri (string-append "https://hackage.haskell.org/package/"
9117 "uuid-types-" version "/"
9118 "uuid-types-" version ".tar.gz"))
9119 (sha256
9120 (base32
9121 "1zdka5jnm1h6k36w3nr647yf3b5lqb336g3fkprhd6san9x52xlj"))))
9122 (build-system haskell-build-system)
9123 (arguments
9124 `(#:phases
9125 (modify-phases %standard-phases
9126 (add-before 'configure 'strip-test-framework-constraints
9127 (lambda _
9128 (substitute* "uuid-types.cabal"
9129 (("HUnit >=1\\.2 && < 1\\.4") "HUnit")
9130 (("QuickCheck >=2\\.4 && < 2\\.9") "QuickCheck")
9131 (("tasty >= 0\\.10 && < 0\\.12") "tasty")
9132 (("tasty-hunit == 0\\.9\\.\\*") "tasty-hunit")
9133 (("tasty-quickcheck == 0\\.8\\.\\*") "tasty-quickcheck")))))))
9134 (inputs `(("ghc-hashable" ,ghc-hashable)
9135 ("ghc-random" ,ghc-random)))
9136 (native-inputs `(("ghc-hunit" ,ghc-hunit)
9137 ("ghc-quickcheck" ,ghc-quickcheck)
9138 ("ghc-tasty" ,ghc-tasty)
9139 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
9140 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
9141 (home-page "https://github.com/hvr/uuid")
9142 (synopsis "Haskell type definitions for UUIDs")
9143 (description "This Haskell library contains type definitions for
9144 @dfn{Universally Unique Identifiers} or
9145 @uref{https://en.wikipedia.org/wiki/UUID, UUIDs}, and basic conversion
9146 functions.")
9147 (license license:bsd-3)))
9148
9149 (define-public ghc-uuid
9150 (package
9151 (name "ghc-uuid")
9152 (version "1.3.13")
9153 (source
9154 (origin
9155 (method url-fetch)
9156 (uri (string-append "https://hackage.haskell.org/package/"
9157 "uuid-" version "/"
9158 "uuid-" version ".tar.gz"))
9159 (sha256
9160 (base32
9161 "09xhk42yhxvqmka0iqrv3338asncz8cap3j0ic0ps896f2581b6z"))))
9162 (build-system haskell-build-system)
9163 (arguments
9164 `(#:cabal-revision
9165 ("2" "0m185q62jkfb5jsv358nxbnrkv8y8hd0qqvgvh22wvc5g9ipz0r9")
9166 #:phases
9167 (modify-phases %standard-phases
9168 (add-before 'configure 'strip-test-framework-constraints
9169 (lambda _
9170 (substitute* "uuid.cabal"
9171 (("HUnit >= 1\\.2 && < 1\\.4") "HUnit")
9172 (("QuickCheck >= 2\\.4 && < 2\\.10") "QuickCheck")
9173 (("tasty >= 0\\.10 && < 0\\.12") "tasty")
9174 (("tasty-hunit == 0\\.9\\.\\*") "tasty-hunit")
9175 (("tasty-quickcheck == 0\\.8\\.\\*") "tasty-quickcheck")))))))
9176 (inputs `(("ghc-cryptohash-sha1" ,ghc-cryptohash-sha1)
9177 ("ghc-cryptohash-md5" ,ghc-cryptohash-md5)
9178 ("ghc-entropy" ,ghc-entropy)
9179 ("ghc-network-info" ,ghc-network-info)
9180 ("ghc-random" ,ghc-random)
9181 ("ghc-uuid-types" ,ghc-uuid-types)))
9182 (native-inputs `(("ghc-hunit" ,ghc-hunit)
9183 ("ghc-quickcheck" ,ghc-quickcheck)
9184 ("ghc-tasty" ,ghc-tasty)
9185 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
9186 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
9187 (home-page "https://github.com/hvr/uuid")
9188 (synopsis "Haskell library to create, compare, parse, and print UUIDs")
9189 (description "This Haskell library provides utilities creating, comparing,
9190 parsing and printing @dfn{Universally Unique Identifiers} or UUIDs.")
9191 (license license:bsd-3)))
9192
9193 (define-public ghc-rebase
9194 (package
9195 (name "ghc-rebase")
9196 (version "1.2.4")
9197 (source
9198 (origin
9199 (method url-fetch)
9200 (uri (string-append "https://hackage.haskell.org/package/"
9201 "rebase-" version "/"
9202 "rebase-" version ".tar.gz"))
9203 (sha256
9204 (base32
9205 "1gah2qwfpzwamnikbc5h4nv6dgvv9h16di9ka7946za3nibyasya"))))
9206 (build-system haskell-build-system)
9207 (inputs `(("ghc-hashable" ,ghc-hashable)
9208 ("ghc-vector" ,ghc-vector)
9209 ("ghc-unordered-containers" ,ghc-unordered-containers)
9210 ("ghc-scientific" ,ghc-scientific)
9211 ("ghc-uuid" ,ghc-uuid)
9212 ("ghc-dlist" ,ghc-dlist)
9213 ("ghc-void" ,ghc-void)
9214 ("ghc-bifunctors" ,ghc-bifunctors)
9215 ("ghc-profunctors" ,ghc-profunctors)
9216 ("ghc-contravariant" ,ghc-contravariant)
9217 ("ghc-contravariant-extras" ,ghc-contravariant-extras)
9218 ("ghc-semigroups" ,ghc-semigroups)
9219 ("ghc-either" ,ghc-either)
9220 ("ghc-fail" ,ghc-fail)
9221 ("ghc-base-prelude" ,ghc-base-prelude)))
9222 (home-page "https://github.com/nikita-volkov/rebase")
9223 (synopsis "Progressive alternative to the base package
9224 for Haskell")
9225 (description "This Haskell package is intended for those who are
9226 tired of keeping long lists of dependencies to the same essential libraries
9227 in each package as well as the endless imports of the same APIs all over again.
9228
9229 It also supports the modern tendencies in the language.
9230
9231 To solve those problems this package does the following:
9232
9233 @itemize
9234 @item Reexport the original APIs under the @code{Rebase} namespace.
9235
9236 @item Export all the possible non-conflicting symbols from the
9237 @code{Rebase.Prelude} module.
9238
9239 @item Give priority to the modern practices in the conflicting cases.
9240 @end itemize
9241
9242 The policy behind the package is only to reexport the non-ambiguous and
9243 non-controversial APIs, which the community has obviously settled on.
9244 The package is intended to rapidly evolve with the contribution from
9245 the community, with the missing features being added with pull-requests.")
9246 (license license:expat)))
9247
9248 (define-public ghc-rerebase
9249 (package
9250 (name "ghc-rerebase")
9251 (version "1.2.2")
9252 (source
9253 (origin
9254 (method url-fetch)
9255 (uri (string-append
9256 "https://hackage.haskell.org/package/rerebase/rerebase-"
9257 version ".tar.gz"))
9258 (sha256
9259 (base32
9260 "11v6rmz7ql2rdx6mhb3lsal952lwihclfhh0m7fcnii5br0906ks"))))
9261 (build-system haskell-build-system)
9262 (inputs
9263 `(("ghc-rebase" ,ghc-rebase)))
9264 (home-page "https://github.com/nikita-volkov/rerebase")
9265 (synopsis "Reexports from ``base'' with many other standard libraries")
9266 (description "A rich drop-in replacement for @code{base}. For details and
9267 documentation please visit @uref{https://github.com/nikita-volkov/rerebase,
9268 the project's home page}.")
9269 (license license:expat)))
9270
9271 (define-public ghc-vector-builder
9272 (package
9273 (name "ghc-vector-builder")
9274 (version "0.3.6")
9275 (source
9276 (origin
9277 (method url-fetch)
9278 (uri (string-append "https://hackage.haskell.org/package/"
9279 "vector-builder-" version "/"
9280 "vector-builder-" version ".tar.gz"))
9281 (sha256
9282 (base32
9283 "06d2pa1fb3ydrl7l6rjazqyxv5i73v65x2f5fp0ypjxfbm6jsmn8"))))
9284 (build-system haskell-build-system)
9285 (inputs `(("ghc-vector" ,ghc-vector)
9286 ("ghc-semigroups" ,ghc-semigroups)
9287 ("ghc-base-prelude" ,ghc-base-prelude)))
9288 (native-inputs `(("ghc-attoparsec" ,ghc-attoparsec)
9289 ("ghc-tasty" ,ghc-tasty)
9290 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
9291 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
9292 ("ghc-hunit" ,ghc-hunit)
9293 ("ghc-quickcheck-instances" ,ghc-quickcheck-instances)
9294 ("ghc-rerebase" ,ghc-rerebase)))
9295 (home-page "https://github.com/nikita-volkov/vector-builder")
9296 (synopsis "Vector builder for Haskell")
9297 (description "This Haskell package provides an API for constructing vectors.
9298 It provides the composable @code{Builder} abstraction, which has instances of the
9299 @code{Monoid} and @code{Semigroup} classes.
9300
9301 You would first use the @code{Builder} abstraction to specify the structure of
9302 the vector; then you can execute the builder to actually produce the
9303 vector. ")
9304 (license license:expat)))
9305
9306 (define-public ghc-foldl
9307 (package
9308 (name "ghc-foldl")
9309 (version "1.4.3")
9310 (source
9311 (origin
9312 (method url-fetch)
9313 (uri (string-append "https://hackage.haskell.org/package/"
9314 "foldl-" version "/"
9315 "foldl-" version ".tar.gz"))
9316 (sha256
9317 (base32
9318 "13n0ca3hw5jzqf6rxsdbhbwkn61a9zlm13f0f205s60j3sc72jzk"))))
9319 (build-system haskell-build-system)
9320 (inputs `(("ghc-mwc-randam" ,ghc-mwc-random)
9321 ("ghc-primitive" ,ghc-primitive)
9322 ("ghc-vector" ,ghc-vector)
9323 ("ghc-unordered-containers" ,ghc-unordered-containers)
9324 ("ghc-hashable" ,ghc-hashable)
9325 ("ghc-contravariant" ,ghc-contravariant)
9326 ("ghc-semigroups" ,ghc-semigroups)
9327 ("ghc-profunctors" ,ghc-profunctors)
9328 ("ghc-semigroupoids" ,ghc-semigroupoids)
9329 ("ghc-comonad" ,ghc-comonad)
9330 ("ghc-vector-builder" ,ghc-vector-builder)))
9331 (home-page "https://github.com/Gabriel439/Haskell-Foldl-Library")
9332 (synopsis "Composable, streaming, and efficient left folds for Haskell")
9333 (description "This Haskell library provides strict left folds that stream
9334 in constant memory, and you can combine folds using @code{Applicative} style
9335 to derive new folds. Derived folds still traverse the container just once
9336 and are often as efficient as hand-written folds.")
9337 (license license:bsd-3)))
9338
9339 (define-public ghc-mono-traversable
9340 (package
9341 (name "ghc-mono-traversable")
9342 (version "1.0.9.0")
9343 (source
9344 (origin
9345 (method url-fetch)
9346 (uri (string-append "https://hackage.haskell.org/package/"
9347 "mono-traversable-" version "/"
9348 "mono-traversable-" version ".tar.gz"))
9349 (sha256
9350 (base32
9351 "0180ks0dyvpk1r20w5jw2w2n79mjnk69n9vhspaxzlyxqgim5psa"))))
9352 (build-system haskell-build-system)
9353 (inputs `(("ghc-unordered-containers" ,ghc-unordered-containers)
9354 ("ghc-hashable" ,ghc-hashable)
9355 ("ghc-vector" ,ghc-vector)
9356 ("ghc-vector-algorithms" ,ghc-vector-algorithms)
9357 ("ghc-split" ,ghc-split)))
9358 (native-inputs `(("ghc-hspec" ,ghc-hspec)
9359 ("ghc-hunit" ,ghc-hunit)
9360 ("ghc-quickcheck" ,ghc-quickcheck)
9361 ("ghc-semigroups" ,ghc-semigroups)
9362 ("ghc-foldl" ,ghc-foldl)))
9363 (home-page "https://github.com/snoyberg/mono-traversable")
9364 (synopsis "Haskell classes for mapping, folding, and traversing monomorphic
9365 containers")
9366 (description "This Haskell package provides Monomorphic variants of the
9367 Functor, Foldable, and Traversable typeclasses. If you understand Haskell's
9368 basic typeclasses, you understand mono-traversable. In addition to what
9369 you are used to, it adds on an IsSequence typeclass and has code for marking
9370 data structures as non-empty.")
9371 (license license:expat)))
9372
9373 (define-public ghc-conduit-combinators
9374 (package
9375 (name "ghc-conduit-combinators")
9376 (version "1.3.0")
9377 (source
9378 (origin
9379 (method url-fetch)
9380 (uri (string-append "https://hackage.haskell.org/package/"
9381 "conduit-combinators-" version "/"
9382 "conduit-combinators-" version ".tar.gz"))
9383 (sha256
9384 (base32
9385 "1lz70vwp4y4lpsivxl0cshq7aq3968rh48r6rjvpyaj2l0bdj5wp"))))
9386 (build-system haskell-build-system)
9387 (inputs `(("ghc-conduit" ,ghc-conduit)
9388 ("ghc-conduit-extra" ,ghc-conduit-extra)
9389 ("ghc-transformers-base" ,ghc-transformers-base)
9390 ("ghc-primitive" ,ghc-primitive)
9391 ("ghc-vector" ,ghc-vector)
9392 ("ghc-void" ,ghc-void)
9393 ("ghc-mwc-random" ,ghc-mwc-random)
9394 ("ghc-unix-compat" ,ghc-unix-compat)
9395 ("ghc-base16-bytestring" ,ghc-base16-bytestring)
9396 ("ghc-base64-bytestring" ,ghc-base64-bytestring)
9397 ("ghc-resourcet" ,ghc-resourcet)
9398 ("ghc-monad-control" ,ghc-monad-control)
9399 ("ghc-chunked-data" ,ghc-chunked-data)
9400 ("ghc-mono-traversable" ,ghc-mono-traversable)))
9401 (native-inputs `(("ghc-hspec" ,ghc-hspec)
9402 ("ghc-silently" ,ghc-silently)
9403 ("ghc-safe" ,ghc-safe)
9404 ("ghc-quickcheck" ,ghc-quickcheck)))
9405 (home-page "https://github.com/snoyberg/mono-traversable")
9406 (synopsis "Commonly used conduit functions, for both chunked and
9407 unchunked data")
9408 (description "This Haskell package provides a replacement for Data.Conduit.List,
9409 as well as a convenient Conduit module.")
9410 (license license:expat)))
9411
9412 (define-public ghc-aws
9413 (package
9414 (name "ghc-aws")
9415 (version "0.20")
9416 (source
9417 (origin
9418 (method url-fetch)
9419 (uri (string-append "https://hackage.haskell.org/package/"
9420 "aws-" version "/aws-" version ".tar.gz"))
9421 (sha256 (base32
9422 "0pwpabmypi1w8rni9qfwabgn95jks4h8dyw6889mn8xzsrhdhyf0"))))
9423 (build-system haskell-build-system)
9424 (arguments `(#:tests? #f)) ; Tests require AWS credentials.
9425 (inputs
9426 `(("ghc-aeson" ,ghc-aeson)
9427 ("ghc-attoparsec" ,ghc-attoparsec)
9428 ("ghc-base16-bytestring" ,ghc-base16-bytestring)
9429 ("ghc-base64-bytestring" ,ghc-base64-bytestring)
9430 ("ghc-blaze-builder" ,ghc-blaze-builder)
9431 ("ghc-byteable" ,ghc-byteable)
9432 ("ghc-case-insensitive" ,ghc-case-insensitive)
9433 ("ghc-cereal" ,ghc-cereal)
9434 ("ghc-conduit" ,ghc-conduit)
9435 ("ghc-conduit-extra" ,ghc-conduit-extra)
9436 ("ghc-cryptonite" ,ghc-cryptonite)
9437 ("ghc-data-default" ,ghc-data-default)
9438 ("ghc-http-conduit" ,ghc-http-conduit)
9439 ("ghc-http-types" ,ghc-http-types)
9440 ("ghc-lifted-base" ,ghc-lifted-base)
9441 ("ghc-monad-control" ,ghc-monad-control)
9442 ("ghc-network" ,ghc-network)
9443 ("ghc-old-locale" ,ghc-old-locale)
9444 ("ghc-safe" ,ghc-safe)
9445 ("ghc-scientific" ,ghc-scientific)
9446 ("ghc-tagged" ,ghc-tagged)
9447 ("ghc-unordered-containers" ,ghc-unordered-containers)
9448 ("ghc-utf8-string" ,ghc-utf8-string)
9449 ("ghc-vector" ,ghc-vector)
9450 ("ghc-xml-conduit" ,ghc-xml-conduit)))
9451 (native-inputs
9452 `(("ghc-quickcheck" ,ghc-quickcheck)
9453 ("ghc-errors" ,ghc-errors)
9454 ("ghc-http-client" ,ghc-http-client)
9455 ("ghc-http-client-tls" ,ghc-http-client-tls)
9456 ("ghc-quickcheck-instances" ,ghc-quickcheck-instances)
9457 ("ghc-tasty" ,ghc-tasty)
9458 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
9459 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
9460 ("ghc-conduit-combinators" ,ghc-conduit-combinators)))
9461 (home-page "https://github.com/aristidb/aws")
9462 (synopsis "Amazon Web Services for Haskell")
9463 (description "This package attempts to provide support for using
9464 Amazon Web Services like S3 (storage), SQS (queuing) and others to
9465 Haskell programmers. The ultimate goal is to support all Amazon
9466 Web Services.")
9467 (license license:bsd-3)))
9468
9469 (define-public ghc-basement
9470 (package
9471 (name "ghc-basement")
9472 (version "0.0.8")
9473 (source
9474 (origin
9475 (method url-fetch)
9476 (uri (string-append "https://hackage.haskell.org/package/"
9477 "basement/basement-" version ".tar.gz"))
9478 (sha256
9479 (base32
9480 "194jw567di4q2758943q9rrwkbf9gl261my7qc21i9xhyabipx67"))))
9481 (build-system haskell-build-system)
9482 (home-page "https://github.com/haskell-foundation/foundation")
9483 (synopsis "Basic primitives for Foundation starter pack")
9484 (description
9485 "This package contains basic primitives for the Foundation set of
9486 packages.")
9487 (license license:bsd-3)))
9488
9489 (define-public ghc-foundation
9490 (package
9491 (name "ghc-foundation")
9492 (version "0.0.21")
9493 (source
9494 (origin
9495 (method url-fetch)
9496 (uri (string-append "https://hackage.haskell.org/package/"
9497 "foundation/foundation-" version ".tar.gz"))
9498 (sha256
9499 (base32
9500 "1q43y8wfj0wf9gdq2kzphwjwq6m5pvryy1lqgk954aq5z3ks1lsf"))))
9501 (build-system haskell-build-system)
9502 (inputs `(("ghc-basement" ,ghc-basement)))
9503 (home-page "https://github.com/haskell-foundation/foundation")
9504 (synopsis "Alternative prelude with batteries and no dependencies")
9505 (description
9506 "This package provides a custom prelude with no dependencies apart from
9507 the base package.
9508
9509 Foundation has the following goals:
9510
9511 @enumerate
9512 @item provide a base like sets of modules that provide a consistent set of
9513 features and bugfixes across multiple versions of GHC (unlike base).
9514 @item provide a better and more efficient prelude than base's prelude.
9515 @item be self-sufficient: no external dependencies apart from base;
9516 @item provide better data-types: packed unicode string by default, arrays;
9517 @item Numerical classes that better represent mathematical things (no more
9518 all-in-one @code{Num});
9519 @item I/O system with less lazy IO.
9520 @end enumerate\n")
9521 (license license:bsd-3)))
9522
9523 (define-public ghc-stm-chans
9524 (package
9525 (name "ghc-stm-chans")
9526 (version "3.0.0.4")
9527 (source
9528 (origin
9529 (method url-fetch)
9530 (uri (string-append "https://hackage.haskell.org/package/"
9531 "stm-chans-" version "/"
9532 "stm-chans-" version ".tar.gz"))
9533 (sha256
9534 (base32
9535 "0f27sp09yha43xk9q55sc185jyjs5h7gq2dhsyx6bm9kz9dzqi13"))))
9536 (build-system haskell-build-system)
9537 (home-page "https://hackage.haskell.org/package/stm-chans")
9538 (synopsis "Additional types of channels for ghc-stm")
9539 (description "This Haskell package offers a collection of channel types,
9540 similar to @code{Control.Concurrent.STM.@{TChan,TQueue@}} but with additional
9541 features.")
9542 (license license:bsd-3)))
9543
9544 (define-public ghc-monad-loops
9545 (package
9546 (name "ghc-monad-loops")
9547 (version "0.4.3")
9548 (source
9549 (origin
9550 (method url-fetch)
9551 (uri (string-append "https://hackage.haskell.org/package/"
9552 "monad-loops-" version "/"
9553 "monad-loops-" version ".tar.gz"))
9554 (sha256
9555 (base32
9556 "062c2sn3hc8h50p1mhqkpyv6x8dydz2zh3ridvlfjq9nqimszaky"))))
9557 (build-system haskell-build-system)
9558 (native-inputs `(("ghc-tasty" ,ghc-tasty)
9559 ("ghc-tasty-hunit" ,ghc-tasty-hunit)))
9560 (home-page "https://github.com/mokus0/monad-loops")
9561 (synopsis "Monadic loops for Haskell")
9562 (description "This Haskell package provides some useful control
9563 operators for looping.")
9564 (license license:public-domain)))
9565
9566 (define-public ghc-monad-logger
9567 (package
9568 (name "ghc-monad-logger")
9569 (version "0.3.29")
9570 (source
9571 (origin
9572 (method url-fetch)
9573 (uri (string-append "https://hackage.haskell.org/package/"
9574 "monad-logger-" version "/"
9575 "monad-logger-" version ".tar.gz"))
9576 (sha256
9577 (base32
9578 "1z516s4pa9n94zf0l45mylssg07xr1d1m6zrz900p0iv3vfd07mv"))))
9579 (build-system haskell-build-system)
9580 (inputs `(("ghc-transformers-compat" ,ghc-transformers-compat)
9581 ("ghc-stm-chans" ,ghc-stm-chans)
9582 ("ghc-lifted-base" ,ghc-lifted-base)
9583 ("ghc-resourcet" ,ghc-resourcet)
9584 ("ghc-conduit" ,ghc-conduit)
9585 ("ghc-conduit-extra" ,ghc-conduit-extra)
9586 ("ghc-fast-logger" ,ghc-fast-logger)
9587 ("ghc-transformers-base" ,ghc-transformers-base)
9588 ("ghc-monad-control" ,ghc-monad-control)
9589 ("ghc-monad-loops" ,ghc-monad-loops)
9590 ("ghc-blaze-builder" ,ghc-blaze-builder)
9591 ("ghc-exceptions" ,ghc-exceptions)))
9592 (home-page "https://github.com/kazu-yamamoto/logger")
9593 (synopsis "Provides a class of monads which can log messages for Haskell")
9594 (description "This Haskell package uses a monad transformer approach
9595 for logging.
9596
9597 This package provides Template Haskell functions for determining source
9598 code locations of messages.")
9599 (license license:expat)))
9600
9601 (define-public ghc-shakespeare
9602 (package
9603 (name "ghc-shakespeare")
9604 (version "2.0.15")
9605 (source
9606 (origin
9607 (method url-fetch)
9608 (uri (string-append "https://hackage.haskell.org/package/"
9609 "shakespeare-" version "/"
9610 "shakespeare-" version ".tar.gz"))
9611 (sha256
9612 (base32
9613 "1vk4b19zvwy4mpwaq9z3l3kfmz75gfyf7alhh0y112gspgpccm23"))))
9614 (build-system haskell-build-system)
9615 (inputs `(("ghc-aeson" ,ghc-aeson)
9616 ("ghc-blaze-markup" ,ghc-blaze-markup)
9617 ("ghc-blaze-html" ,ghc-blaze-html)
9618 ("ghc-exceptions" ,ghc-exceptions)
9619 ("ghc-vector" ,ghc-vector)
9620 ("ghc-unordered-containers" ,ghc-unordered-containers)
9621 ("ghc-scientific" ,ghc-scientific)))
9622 (native-inputs `(("ghc-hspec" ,ghc-hspec)
9623 ("ghc-hunit" ,ghc-hunit)
9624 ("hspec-discover" ,hspec-discover)))
9625 (home-page "https://www.yesodweb.com/book/shakespearean-templates")
9626 (synopsis "Family of type-safe template languages for Haskell")
9627 (description "This Haskell package provides a family of type-safe
9628 templates with simple variable interpolation. Shakespeare templates can
9629 be used inline with a quasi-quoter or in an external file and it
9630 interpolates variables according to the type being inserted.")
9631 (license license:expat)))
9632
9633 (define-public ghc-securemem
9634 (package
9635 (name "ghc-securemem")
9636 (version "0.1.10")
9637 (source
9638 (origin
9639 (method url-fetch)
9640 (uri (string-append "https://hackage.haskell.org/package/"
9641 "securemem-" version "/"
9642 "securemem-" version ".tar.gz"))
9643 (sha256
9644 (base32
9645 "19hnw2cfbsfjynxq1bq9f6djbxhsc1k751ml0y1ab3ah913mm29j"))))
9646 (build-system haskell-build-system)
9647 (inputs `(("ghc-byteable" ,ghc-byteable)
9648 ("ghc-memory" ,ghc-memory)))
9649 (home-page "https://github.com/vincenthz/hs-securemem")
9650 (synopsis "Auto-scrubbing and const-time-eq memory chunk abstraction for
9651 Haskell")
9652 (description "SecureMem is similar to ByteString, except that it provides
9653 a memory chunk that will be auto-scrubbed after it run out of scope.")
9654 (license license:bsd-3)))
9655
9656 (define-public ghc-resource-pool
9657 (package
9658 (name "ghc-resource-pool")
9659 (version "0.2.3.2")
9660 (source
9661 (origin
9662 (method url-fetch)
9663 (uri (string-append "https://hackage.haskell.org/package/"
9664 "resource-pool-" version "/"
9665 "resource-pool-" version ".tar.gz"))
9666 (sha256
9667 (base32
9668 "04mw8b9djb14zp4rdi6h7mc3zizh597ffiinfbr4m0m8psifw9w6"))))
9669 (build-system haskell-build-system)
9670 (inputs `(("ghc-hashable" ,ghc-hashable)
9671 ("ghc-monad-control" ,ghc-monad-control)
9672 ("ghc-transformers-base" ,ghc-transformers-base)
9673 ("ghc-vector" ,ghc-vector)))
9674 (home-page "https://github.com/bos/pool")
9675 (synopsis "Striped resource pooling implementation in Haskell")
9676 (description "This Haskell package provides striped pooling abstraction
9677 for managing flexibly-sized collections of resources such as database
9678 connections.")
9679 (license license:bsd-3)))
9680
9681 (define-public ghc-attoparsec-iso8601
9682 (package
9683 (name "ghc-attoparsec-iso8601")
9684 (version "1.0.0.0")
9685 (source
9686 (origin
9687 (method url-fetch)
9688 (uri (string-append "https://hackage.haskell.org/package/"
9689 "attoparsec-iso8601-" version "/"
9690 "attoparsec-iso8601-" version ".tar.gz"))
9691 (sha256
9692 (base32
9693 "12l55b76bhya9q89mfmqmy6sl5v39b6gzrw5rf3f70vkb23nsv5a"))))
9694 (build-system haskell-build-system)
9695 (arguments
9696 `(#:cabal-revision
9697 ("1" "06f7pgmmc8456p3hc1y23kz1y127gfczy7s00wz1rls9g2sm2vi4")))
9698 (inputs `(("ghc-attoparsec" ,ghc-attoparsec)
9699 ("ghc-base-compat" ,ghc-base-compat)))
9700 (home-page "https://github.com/bos/aeson")
9701 (synopsis "Parse ISO 8601 dates")
9702 (description "Haskell library for parsing of ISO 8601 dates, originally
9703 from aeson.")
9704 (license license:bsd-3)))
9705
9706 (define-public ghc-generics-sop
9707 (package
9708 (name "ghc-generics-sop")
9709 (version "0.3.2.0")
9710 (source
9711 (origin
9712 (method url-fetch)
9713 (uri (string-append "https://hackage.haskell.org/package/"
9714 "generics-sop-" version "/"
9715 "generics-sop-" version ".tar.gz"))
9716 (sha256
9717 (base32
9718 "168v62i845jh9jbfaz3ldz8svz4wmzq9mf2vhb7pxlnbkk8fqq1h"))))
9719 (build-system haskell-build-system)
9720 (inputs `(("ghc-transformers-compat" ,ghc-transformers-compat)))
9721 (home-page "https://github.com/well-typed/generics-sop")
9722 (synopsis "Generic Programming using True Sums of Products for Haskell")
9723 (description "This Haskell package supports the definition of generic
9724 functions. Datatypes are viewed in a uniform, structured way: the choice
9725 between constructors is represented using an n-ary sum, and the arguments of
9726 each constructor are represented using an n-ary product.")
9727 (license license:bsd-3)))
9728
9729 (define-public ghc-uri-bytestring
9730 (package
9731 (name "ghc-uri-bytestring")
9732 (version "0.3.2.0")
9733 (source
9734 (origin
9735 (method url-fetch)
9736 (uri (string-append "https://hackage.haskell.org/package/"
9737 "uri-bytestring-" version "/"
9738 "uri-bytestring-" version ".tar.gz"))
9739 (sha256
9740 (base32
9741 "1q04j5ybvk37zk2m0bkjwyhblz0ymdj0cn4rvsvdca1ikn5xdv5c"))))
9742 (build-system haskell-build-system)
9743 (inputs `(("ghc-attoparsec" ,ghc-attoparsec)
9744 ("ghc-fail" ,ghc-fail)
9745 ("ghc-blaze-builder" ,ghc-blaze-builder)
9746 ("ghc-th-lift-instances" ,ghc-th-lift-instances)))
9747 (native-inputs `(("ghc-attoparsec" ,ghc-attoparsec)
9748 ("ghc-hunit" ,ghc-hunit)
9749 ("ghc-quickcheck" ,ghc-quickcheck)
9750 ("ghc-tasty" ,ghc-tasty)
9751 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
9752 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
9753 ("ghc-base-compat" ,ghc-base-compat)
9754 ("ghc-quickcheck-instances" ,ghc-quickcheck-instances)
9755 ("ghc-semigroups" ,ghc-semigroups)
9756 ("ghc-generics-sop" ,ghc-generics-sop)))
9757 (home-page "https://github.com/Soostone/uri-bytestring")
9758 (synopsis "Haskell URI parsing as ByteStrings")
9759 (description "This Haskell package aims to be an RFC3986 compliant URI
9760 parser that uses ByteStrings for parsing and representing the URI data.")
9761 (license license:bsd-3)))
9762
9763 (define-public ghc-http-api-data
9764 (package
9765 (name "ghc-http-api-data")
9766 (version "0.3.8.1")
9767 (source
9768 (origin
9769 (method url-fetch)
9770 (uri (string-append "https://hackage.haskell.org/package/"
9771 "http-api-data-" version "/"
9772 "http-api-data-" version ".tar.gz"))
9773 (sha256
9774 (base32
9775 "1cq6459b8wz6nvkvpi89dg189n5q2xdq4rdq435hf150555vmskf"))))
9776 (build-system haskell-build-system)
9777 (arguments `(#:tests? #f)) ; FIXME: Tests require QuickCheck >= 2.9
9778 (inputs `(("ghc-attoparsec" ,ghc-attoparsec)
9779 ("ghc-attoparsec-iso8601" ,ghc-attoparsec-iso8601)
9780 ("ghc-hashable" ,ghc-hashable)
9781 ("ghc-http-types" ,ghc-http-types)
9782 ("ghc-time-locale-compat" ,ghc-time-locale-compat)
9783 ("ghc-unordered-containers" ,ghc-unordered-containers)
9784 ("ghc-uri-bytestring" ,ghc-uri-bytestring)
9785 ("ghc-uuid-types" ,ghc-uuid-types)))
9786 (home-page "https://github.com/fizruk/http-api-data")
9787 (synopsis "Convert to/from HTTP API data like URL pieces, headers and
9788 query parameters")
9789 (description "This Haskell package defines typeclasses used for converting
9790 Haskell data types to and from HTTP API data.")
9791 (license license:bsd-3)))
9792
9793 (define-public ghc-persistent
9794 (package
9795 (name "ghc-persistent")
9796 (version "2.8.2")
9797 (source
9798 (origin
9799 (method url-fetch)
9800 (uri (string-append "https://hackage.haskell.org/package/"
9801 "persistent-" version "/"
9802 "persistent-" version ".tar.gz"))
9803 (sha256
9804 (base32
9805 "1h0yijbf1yiwl50klyafy4ln99j8bib4kgbzviw7fc4y4mwv4sv9"))))
9806 (build-system haskell-build-system)
9807 (inputs `(("ghc-old-locale" ,ghc-old-locale)
9808 ("ghc-conduit" ,ghc-conduit)
9809 ("ghc-resourcet" ,ghc-resourcet)
9810 ("ghc-exceptions" ,ghc-exceptions)
9811 ("ghc-monad-control" ,ghc-monad-control)
9812 ("ghc-lifted-base" ,ghc-lifted-base)
9813 ("ghc-resource-pool" ,ghc-resource-pool)
9814 ("ghc-path-pieces" ,ghc-path-pieces)
9815 ("ghc-http-api-data" ,ghc-http-api-data)
9816 ("ghc-aeson" ,ghc-aeson)
9817 ("ghc-monad-logger" ,ghc-monad-logger)
9818 ("ghc-transformers-base" ,ghc-transformers-base)
9819 ("ghc-base64-bytestring" ,ghc-base64-bytestring)
9820 ("ghc-unordered-containers" ,ghc-unordered-containers)
9821 ("ghc-vector" ,ghc-vector)
9822 ("ghc-attoparsec" ,ghc-attoparsec)
9823 ("ghc-haskell-src-meta" ,ghc-haskell-src-meta)
9824 ("ghc-blaze-html" ,ghc-blaze-html)
9825 ("ghc-blaze-markup" ,ghc-blaze-markup)
9826 ("ghc-silently" ,ghc-silently)
9827 ("ghc-fast-logger" ,ghc-fast-logger)
9828 ("ghc-scientific" ,ghc-scientific)
9829 ("ghc-tagged" ,ghc-tagged)
9830 ("ghc-void" ,ghc-void)))
9831 (native-inputs `(("ghc-hspec" ,ghc-hspec)))
9832 (home-page "https://www.yesodweb.com/book/persistent")
9833 (synopsis "Type-safe, multi-backend data serialization for Haskell")
9834 (description "This Haskell package allows Haskell programs to access data
9835 storage systems like PostgreSQL, SQLite, MySQL and MongoDB in a type-safe
9836 way.")
9837 (license license:expat)))
9838
9839 (define-public ghc-aeson-compat
9840 (package
9841 (name "ghc-aeson-compat")
9842 (version "0.3.8")
9843 (source
9844 (origin
9845 (method url-fetch)
9846 (uri (string-append "https://hackage.haskell.org/package/"
9847 "aeson-compat-" version "/"
9848 "aeson-compat-" version ".tar.gz"))
9849 (sha256
9850 (base32
9851 "0j4v13pgk21zy8hqkbx8hw0n05jdl17qphxz9rj4h333pr547r3i"))))
9852 (build-system haskell-build-system)
9853 (arguments `(#:tests? #f)) ; FIXME: Tests require QuickCheck >= 2.10
9854 (inputs `(("ghc-base-compat" ,ghc-base-compat)
9855 ("ghc-aeson" ,ghc-aeson)
9856 ("ghc-attoparsec" ,ghc-attoparsec)
9857 ("ghc-attoparsec" ,ghc-attoparsec-iso8601)
9858 ("ghc-exceptions" ,ghc-exceptions)
9859 ("ghc-hashable" ,ghc-hashable)
9860 ("ghc-scientific" ,ghc-scientific)
9861 ("ghc-time-locale-compat" ,ghc-time-locale-compat)
9862 ("ghc-unordered-containers" ,ghc-unordered-containers)
9863 ("ghc-vector" ,ghc-vector)
9864 ("ghc-tagged" ,ghc-tagged)
9865 ("ghc-semigroups" ,ghc-semigroups)
9866 ("ghc-nats" ,ghc-nats)))
9867 (home-page "https://github.com/phadej/aeson-compat")
9868 (synopsis "Compatibility layer for ghc-aeson")
9869 (description "This Haskell package provides compatibility layer for
9870 ghc-aeson.")
9871 (license license:bsd-3)))
9872
9873 (define-public ghc-persistent-template
9874 (package
9875 (name "ghc-persistent-template")
9876 (version "2.5.4")
9877 (source
9878 (origin
9879 (method url-fetch)
9880 (uri (string-append "https://hackage.haskell.org/package/"
9881 "persistent-template-" version "/"
9882 "persistent-template-" version ".tar.gz"))
9883 (sha256
9884 (base32
9885 "008afcy7zbw7bzp9jww8gdldb51kfm0fg4p0x4xcp61gx4679bjc"))))
9886 (build-system haskell-build-system)
9887 (arguments
9888 `(#:cabal-revision
9889 ("2" "03qgwk32krldph3blw5agiqcpccr3649hajyn8wm9k71zz82dpn6")))
9890 (inputs `(("ghc-persistent" ,ghc-persistent)
9891 ("ghc-monad-control" ,ghc-monad-control)
9892 ("ghc-aeson" ,ghc-aeson)
9893 ("ghc-aeson-compat" ,ghc-aeson-compat)
9894 ("ghc-monad-logger" ,ghc-monad-logger)
9895 ("ghc-unordered-containers" ,ghc-unordered-containers)
9896 ("ghc-tagged" ,ghc-tagged)
9897 ("ghc-path-pieces" ,ghc-path-pieces)
9898 ("ghc-http-api-data" ,ghc-http-api-data)))
9899 (native-inputs `(("ghc-hspec" ,ghc-hspec)
9900 ("ghc-quickcheck" ,ghc-quickcheck)))
9901 (home-page "https://www.yesodweb.com/book/persistent")
9902 (synopsis "Type-safe, non-relational, multi-backend persistence")
9903 (description "This Haskell package provides interfaces and helper
9904 functions for the ghc-persistent package.")
9905 (license license:expat)))
9906
9907 (define-public ghc-unliftio-core
9908 (package
9909 (name "ghc-unliftio-core")
9910 (version "0.1.1.0")
9911 (source
9912 (origin
9913 (method url-fetch)
9914 (uri (string-append "https://hackage.haskell.org/package/"
9915 "unliftio-core-" version "/"
9916 "unliftio-core-" version ".tar.gz"))
9917 (sha256
9918 (base32
9919 "1193fplsjm1lcr05xwvkj1rsyzx74i755f6kw3ikmxbsv0bv0l3m"))))
9920 (build-system haskell-build-system)
9921 (arguments
9922 `(#:cabal-revision
9923 ("1" "16bjwcsaghqqmyi69rq65dn3ydifyfaabq3ns37apdm00mwqbcj2")))
9924 (home-page
9925 "https://github.com/fpco/unliftio/tree/master/unliftio-core#readme")
9926 (synopsis "The MonadUnliftIO typeclass for unlifting monads to IO")
9927 (description "This Haskell package provides the core @code{MonadUnliftIO}
9928 typeclass, instances for base and transformers, and basic utility
9929 functions.")
9930 (license license:expat)))
9931
9932 (define-public ghc-microlens
9933 (package
9934 (name "ghc-microlens")
9935 (version "0.4.9.1")
9936 (source
9937 (origin
9938 (method url-fetch)
9939 (uri (string-append "https://hackage.haskell.org/package/"
9940 "microlens-" version "/"
9941 "microlens-" version ".tar.gz"))
9942 (sha256
9943 (base32
9944 "0j2nzf0vpx2anvsrg2w0vy2z4jn3kkcs2n6glkzblhn1j9piqh51"))))
9945 (build-system haskell-build-system)
9946 (home-page
9947 "https://github.com/aelve/microlens")
9948 (synopsis "Provides a tiny lens Haskell library with no dependencies")
9949 (description "This Haskell package provides a lens library, just like
9950 @code{ghc-lens}, but smaller. It provides essential lenses and
9951 traversals (like @code{_1} and @code{_Just}), as well as ones which are simply
9952 nice to have (like @code{each}, @code{at}, and @code{ix}), and some
9953 combinators (like @code{failing} and @code{singular}), but everything else is
9954 stripped. As the result, this package has no dependencies.")
9955 (license license:bsd-3)))
9956
9957 (define-public ghc-microlens-th
9958 (package
9959 (name "ghc-microlens-th")
9960 (version "0.4.2.2")
9961 (source
9962 (origin
9963 (method url-fetch)
9964 (uri (string-append "https://hackage.haskell.org/package/"
9965 "microlens-th-" version "/"
9966 "microlens-th-" version ".tar.gz"))
9967 (sha256
9968 (base32
9969 "02nj7lnl61yffi3c6wn341arxhld5r0vj6nzcb5zmqjhnqsv8c05"))))
9970 (build-system haskell-build-system)
9971 (inputs `(("ghc-microlens" ,ghc-microlens)
9972 ("ghc-th-abstraction" ,ghc-th-abstraction)))
9973 (home-page
9974 "https://github.com/aelve/microlens")
9975 (synopsis "Automatic generation of record lenses for
9976 @code{ghc-microlens}")
9977 (description "This Haskell package lets you automatically generate lenses
9978 for data types; code was extracted from the lens package, and therefore
9979 generated lenses are fully compatible with ones generated by lens (and can be
9980 used both from lens and microlens).")
9981 (license license:bsd-3)))
9982
9983 (define-public ghc-unliftio
9984 (package
9985 (name "ghc-unliftio")
9986 (version "0.2.7.0")
9987 (source
9988 (origin
9989 (method url-fetch)
9990 (uri (string-append
9991 "https://hackage.haskell.org/package/unliftio/unliftio-"
9992 version
9993 ".tar.gz"))
9994 (sha256
9995 (base32
9996 "0qql93lq5w7qghl454cc3s1i8v1jb4h08n82fqkw0kli4g3g9njs"))))
9997 (build-system haskell-build-system)
9998 (arguments `(#:tests? #f)) ; FIXME: hspec-discover not in PATH
9999 (inputs
10000 `(("ghc-async" ,ghc-async)
10001 ("ghc-unliftio-core" ,ghc-unliftio-core)))
10002 (native-inputs `(("ghc-hspec" ,ghc-hspec)))
10003 (home-page "https://github.com/fpco/unliftio")
10004 (synopsis "Provides MonadUnliftIO typecplass for unlifting monads to
10005 IO (batteries included)")
10006 (description "This Haskell package provides the core @code{MonadUnliftIO}
10007 typeclass, a number of common instances, and a collection of common functions
10008 working with it.")
10009 (license license:expat)))
10010
10011 (define-public ghc-persistent-sqlite
10012 (package
10013 (name "ghc-persistent-sqlite")
10014 (version "2.8.2")
10015 (source
10016 (origin
10017 (method url-fetch)
10018 (uri (string-append "https://hackage.haskell.org/package/"
10019 "persistent-sqlite-" version "/"
10020 "persistent-sqlite-" version ".tar.gz"))
10021 (sha256
10022 (base32
10023 "1chbmvjz46smhgnzhha3bbkhys3fys6dip1jr4v7xp1jf78zbyp6"))))
10024 (build-system haskell-build-system)
10025 (inputs `(("ghc-persistent" ,ghc-persistent)
10026 ("ghc-unliftio-core" ,ghc-unliftio-core)
10027 ("ghc-aeson" ,ghc-aeson)
10028 ("ghc-conduit" ,ghc-conduit)
10029 ("ghc-monad-logger" ,ghc-monad-logger)
10030 ("ghc-microlens-th" ,ghc-microlens-th)
10031 ("ghc-resourcet" ,ghc-resourcet)
10032 ("ghc-old-locale" ,ghc-old-locale)
10033 ("ghc-resource-pool" ,ghc-resource-pool)
10034 ("ghc-unordered-containers" ,ghc-unordered-containers)))
10035 (native-inputs `(("ghc-hspec" ,ghc-hspec)
10036 ("ghc-persistent-template" ,ghc-persistent-template)
10037 ("ghc-temporary" ,ghc-temporary)))
10038 (home-page
10039 "https://www.yesodweb.com/book/persistent")
10040 (synopsis "Backend for the persistent library using sqlite3")
10041 (description "This Haskell package includes a thin sqlite3 wrapper based
10042 on the direct-sqlite package, as well as the entire C library, so there are no
10043 system dependencies.")
10044 (license license:expat)))
10045
10046 (define-public ghc-email-validate
10047 (package
10048 (name "ghc-email-validate")
10049 (version "2.3.2.6")
10050 (source
10051 (origin
10052 (method url-fetch)
10053 (uri (string-append
10054 "https://hackage.haskell.org/package/"
10055 "email-validate/email-validate-"
10056 version
10057 ".tar.gz"))
10058 (sha256
10059 (base32
10060 "0chgylvc8xmhp933rdbmpg5sv4y7yg2h6kbf0ip1dzmbd5p55pa5"))))
10061 (build-system haskell-build-system)
10062 (inputs
10063 `(("ghc-attoparsec" ,ghc-attoparsec)
10064 ("ghc-hspec" ,ghc-hspec)
10065 ("ghc-quickcheck" ,ghc-quickcheck)
10066 ("ghc-doctest" ,ghc-doctest)))
10067 (home-page
10068 "https://github.com/Porges/email-validate-hs")
10069 (synopsis "Email address validator for Haskell")
10070 (description
10071 "This Haskell package provides a validator that can validate an email
10072 address string against RFC 5322.")
10073 (license license:bsd-3)))
10074
10075 (define-public ghc-bytes
10076 (package
10077 (name "ghc-bytes")
10078 (version "0.15.5")
10079 (source
10080 (origin
10081 (method url-fetch)
10082 (uri
10083 (string-append "https://hackage.haskell.org/package/bytes-"
10084 version "/bytes-"
10085 version ".tar.gz"))
10086 (file-name (string-append name "-" version ".tar.gz"))
10087 (sha256
10088 (base32
10089 "063il2vrn0p88r9gzndh4ijs0mxj37khkc9ym9bqdsv7ngk3b683"))))
10090 (build-system haskell-build-system)
10091 (inputs `(("ghc-cereal" ,ghc-cereal)
10092 ("cabal-doctest" ,cabal-doctest)
10093 ("ghc-doctest" ,ghc-doctest)
10094 ("ghc-scientific" ,ghc-scientific)
10095 ("ghc-transformers-compat" ,ghc-transformers-compat)
10096 ("ghc-unordered-containers" ,ghc-unordered-containers)
10097 ("ghc-void" ,ghc-void)
10098 ("ghc-vector" ,ghc-vector)))
10099 (synopsis "Serialization between @code{binary} and @code{cereal}")
10100 (description "This package provides a simple compatibility shim that lets
10101 you work with both @code{binary} and @code{cereal} with one chunk of
10102 serialization code.")
10103 (home-page "https://hackage.haskell.org/package/bytes")
10104 (license license:bsd-3)))
10105
10106 (define-public ghc-disk-free-space
10107 (package
10108 (name "ghc-disk-free-space")
10109 (version "0.1.0.1")
10110 (source
10111 (origin
10112 (method url-fetch)
10113 (uri (string-append "https://hackage.haskell.org/package/"
10114 "disk-free-space/disk-free-space-"
10115 version ".tar.gz"))
10116 (sha256
10117 (base32
10118 "07rqj8k1vh3cykq9yidpjxhgh1f7vgmjs6y1nv5kq2217ff4yypi"))))
10119 (build-system haskell-build-system)
10120 (home-page "https://github.com/redneb/disk-free-space")
10121 (synopsis "Retrieve information about disk space usage")
10122 (description "A cross-platform library for retrieving information about
10123 disk space usage.")
10124 (license license:bsd-3)))
10125
10126 (define-public ghc-xdg-basedir
10127 (package
10128 (name "ghc-xdg-basedir")
10129 (version "0.2.2")
10130 (source
10131 (origin
10132 (method url-fetch)
10133 (uri (string-append
10134 "https://hackage.haskell.org/package/xdg-basedir/"
10135 "xdg-basedir-" version ".tar.gz"))
10136 (sha256
10137 (base32
10138 "0azlzaxp2dn4l1nr7shsxah2magk1szf6fx0mv75az00qsjw6qg4"))))
10139 (build-system haskell-build-system)
10140 (home-page "http://github.com/willdonnelly/xdg-basedir")
10141 (synopsis "XDG Base Directory library for Haskell")
10142 (description "This package provides a library implementing the XDG Base Directory spec.")
10143 (license license:bsd-3)))
10144
10145 (define-public ghc-errorcall-eq-instance
10146 (package
10147 (name "ghc-errorcall-eq-instance")
10148 (version "0.3.0")
10149 (source
10150 (origin
10151 (method url-fetch)
10152 (uri (string-append "https://hackage.haskell.org/package/"
10153 "errorcall-eq-instance/errorcall-eq-instance-"
10154 version ".tar.gz"))
10155 (sha256
10156 (base32
10157 "0hqw82m8bbrxy5vgdwb83bhzdx070ibqrm9rshyja7cb808ahijm"))))
10158 (build-system haskell-build-system)
10159 (inputs
10160 `(("ghc-base-orphans" ,ghc-base-orphans)))
10161 (native-inputs
10162 `(("ghc-quickcheck" ,ghc-quickcheck)
10163 ("ghc-hspec" ,ghc-hspec)
10164 ("hspec-discover" ,hspec-discover)))
10165 (home-page "http://hackage.haskell.org/package/errorcall-eq-instance")
10166 (synopsis "Orphan Eq instance for ErrorCall")
10167 (description
10168 "Prior to @code{base-4.7.0.0} there was no @code{Eq} instance for @code{ErrorCall}.
10169 This package provides an orphan instance.")
10170 (license license:expat)))
10171
10172 (define-public ghc-missingh
10173 (package
10174 (name "ghc-missingh")
10175 (version "1.4.0.1")
10176 (source
10177 (origin
10178 (method url-fetch)
10179 (uri (string-append "https://hackage.haskell.org/package/MissingH/"
10180 "MissingH-" version ".tar.gz"))
10181 (sha256
10182 (base32
10183 "0wcvgrmav480w7nf4bl14yi0jq2yzanysxwzwas9hpb28vyjlgr8"))))
10184 (build-system haskell-build-system)
10185 ;; Tests require the unmaintained testpack package, which depends on the
10186 ;; outdated QuickCheck version 2.7, which can no longer be built with
10187 ;; recent versions of GHC and Haskell libraries.
10188 (arguments '(#:tests? #f))
10189 (inputs
10190 `(("ghc-network" ,ghc-network)
10191 ("ghc-hunit" ,ghc-hunit)
10192 ("ghc-regex-compat" ,ghc-regex-compat)
10193 ("ghc-hslogger" ,ghc-hslogger)
10194 ("ghc-random" ,ghc-random)
10195 ("ghc-old-time" ,ghc-old-time)
10196 ("ghc-old-locale" ,ghc-old-locale)))
10197 (native-inputs
10198 `(("ghc-errorcall-eq-instance" ,ghc-errorcall-eq-instance)
10199 ("ghc-quickcheck" ,ghc-quickcheck)
10200 ("ghc-hunit" ,ghc-hunit)))
10201 (home-page "http://software.complete.org/missingh")
10202 (synopsis "Large utility library")
10203 (description
10204 "MissingH is a library of all sorts of utility functions for Haskell
10205 programmers. It is written in pure Haskell and thus should be extremely
10206 portable and easy to use.")
10207 (license license:bsd-3)))
10208
10209 (define-public ghc-intervalmap
10210 (package
10211 (name "ghc-intervalmap")
10212 (version "0.6.0.0")
10213 (source
10214 (origin
10215 (method url-fetch)
10216 (uri (string-append "https://hackage.haskell.org/package/IntervalMap/"
10217 "IntervalMap-" version ".tar.gz"))
10218 (sha256
10219 (base32
10220 "06hin9wf1by8aqa7820fsi2339bh82184frkwz3jsb9sqa0hszcg"))))
10221 (build-system haskell-build-system)
10222 (native-inputs
10223 `(("ghc-quickcheck" ,ghc-quickcheck)))
10224 (home-page "http://www.chr-breitkopf.de/comp/IntervalMap")
10225 (synopsis "Containers for intervals, with efficient search")
10226 (description
10227 "This package provides ordered containers of intervals, with efficient
10228 search for all keys containing a point or overlapping an interval. See the
10229 example code on the home page for a quick introduction.")
10230 (license license:bsd-3)))
10231
10232 (define-public ghc-operational
10233 (package
10234 (name "ghc-operational")
10235 (version "0.2.3.5")
10236 (source
10237 (origin
10238 (method url-fetch)
10239 (uri (string-append "https://hackage.haskell.org/package/operational/"
10240 "operational-" version ".tar.gz"))
10241 (sha256
10242 (base32
10243 "1x2abg2q9d26h1vzj40r6k7k3gqgappbs4g9d853vvg77837km4i"))))
10244 (build-system haskell-build-system)
10245 (inputs
10246 `(("ghc-random" ,ghc-random)))
10247 (home-page "http://wiki.haskell.org/Operational")
10248 (synopsis "Implementation of difficult monads made easy with operational semantics")
10249 (description
10250 "This library makes it easy to implement monads with tricky control
10251 flow. This is useful for: writing web applications in a sequential style,
10252 programming games with a uniform interface for human and AI players and easy
10253 replay capababilities, implementing fast parser monads, designing monadic
10254 DSLs, etc.")
10255 (license license:bsd-3)))
10256
10257 (define-public ghc-gtk2hs-buildtools
10258 (package
10259 (name "ghc-gtk2hs-buildtools")
10260 (version "0.13.4.0")
10261 (source
10262 (origin
10263 (method url-fetch)
10264 (uri (string-append "https://hackage.haskell.org/package/"
10265 "gtk2hs-buildtools/gtk2hs-buildtools-"
10266 version ".tar.gz"))
10267 (sha256
10268 (base32
10269 "0yg6xmylgpylmnh5g33qwwn5x9bqckdvvv4czqzd9vrr12lnnghg"))))
10270 (build-system haskell-build-system)
10271 (inputs
10272 `(("ghc-random" ,ghc-random)
10273 ("ghc-hashtables" ,ghc-hashtables)))
10274 (native-inputs
10275 `(("ghc-alex" ,ghc-alex)
10276 ("ghc-happy" ,ghc-happy)))
10277 (home-page "http://projects.haskell.org/gtk2hs/")
10278 (synopsis "Tools to build the Gtk2Hs suite of user interface libraries")
10279 (description
10280 "This package provides a set of helper programs necessary to build the
10281 Gtk2Hs suite of libraries. These tools include a modified c2hs binding tool
10282 that is used to generate FFI declarations, a tool to build a type hierarchy
10283 that mirrors the C type hierarchy of GObjects found in glib, and a generator
10284 for signal declarations that are used to call back from C to Haskell. These
10285 tools are not needed to actually run Gtk2Hs programs.")
10286 (license license:gpl2)))
10287
10288 (define-public ghc-chart
10289 (package
10290 (name "ghc-chart")
10291 (version "1.9")
10292 (source
10293 (origin
10294 (method url-fetch)
10295 (uri (string-append "https://hackage.haskell.org/package/Chart/"
10296 "Chart-" version ".tar.gz"))
10297 (sha256
10298 (base32
10299 "1f5azj17y8xsb3gjhf7gg1gnnlq12rxkmfjmgcly314d7vghs05z"))))
10300 (build-system haskell-build-system)
10301 (inputs
10302 `(("ghc-old-locale" ,ghc-old-locale)
10303 ("ghc-lens" ,ghc-lens)
10304 ("ghc-colour" ,ghc-colour)
10305 ("ghc-data-default-class" ,ghc-data-default-class)
10306 ("ghc-operational" ,ghc-operational)
10307 ("ghc-vector" ,ghc-vector)))
10308 (home-page "https://github.com/timbod7/haskell-chart/wiki")
10309 (synopsis "Library for generating 2D charts and plots")
10310 (description
10311 "This package provides a library for generating 2D charts and plots, with
10312 backends provided by the @code{Cairo} and @code{Diagrams} libraries.")
10313 (license license:bsd-3)))
10314
10315 (define-public ghc-wcwidth
10316 (package
10317 (name "ghc-wcwidth")
10318 (version "0.0.2")
10319 (source
10320 (origin
10321 (method url-fetch)
10322 (uri (string-append "https://hackage.haskell.org/package/wcwidth/wcwidth-"
10323 version ".tar.gz"))
10324 (sha256
10325 (base32
10326 "1n1fq7v64b59ajf5g50iqj9sa34wm7s2j3viay0kxpmvlcv8gipz"))))
10327 (build-system haskell-build-system)
10328 (inputs
10329 `(("ghc-setlocale" ,ghc-setlocale)
10330 ("ghc-utf8-string" ,ghc-utf8-string)
10331 ("ghc-attoparsec" ,ghc-attoparsec)))
10332 (home-page "https://github.com/solidsnack/wcwidth/")
10333 (synopsis "Haskell bindings to wcwidth")
10334 (description "This package provides Haskell bindings to your system's
10335 native wcwidth and a command line tool to examine the widths assigned by it.
10336 The command line tool can compile a width table to Haskell code that assigns
10337 widths to the Char type.")
10338 (license license:bsd-3)))
10339
10340 (define-public ghc-wcwidth-bootstrap
10341 (package
10342 (inherit ghc-wcwidth)
10343 (name "ghc-wcwidth-bootstrap")
10344 (inputs
10345 `(("ghc-setlocale" ,ghc-setlocale)
10346 ("ghc-utf8-string" ,ghc-utf8-string)
10347 ("ghc-attoparsec" ,ghc-attoparsec-bootstrap)))
10348 (properties '(hidden? #t))))
10349
10350 (define-public ghc-rio
10351 (package
10352 (name "ghc-rio")
10353 (version "0.1.5.0")
10354 (source
10355 (origin
10356 (method url-fetch)
10357 (uri (string-append
10358 "https://hackage.haskell.org/package/rio/rio-"
10359 version ".tar.gz"))
10360 (sha256
10361 (base32
10362 "064h8a4hp53a479d3ak0vmqbx8hi0cpg7zn4wp23rjy26dka8p7g"))))
10363 (build-system haskell-build-system)
10364 (inputs
10365 `(("ghc-exceptions" ,ghc-exceptions)
10366 ("ghc-hashable" ,ghc-hashable)
10367 ("ghc-microlens" ,ghc-microlens)
10368 ("ghc-primitive" ,ghc-primitive)
10369 ("ghc-typed-process" ,ghc-typed-process)
10370 ("ghc-unliftio" ,ghc-unliftio)
10371 ("ghc-unordered-containers" ,ghc-unordered-containers)
10372 ("ghc-vector" ,ghc-vector)))
10373 (native-inputs
10374 `(("ghc-hspec" ,ghc-hspec)
10375 ("hspec-discover" ,hspec-discover)))
10376 (home-page "https://github.com/commercialhaskell/rio#readme")
10377 (synopsis "A standard library for Haskell")
10378 (description "This package works as a prelude replacement for Haskell,
10379 providing more functionality and types out of the box than the standard
10380 prelude (such as common data types like @code{ByteString} and
10381 @code{Text}), as well as removing common ``gotchas'', like partial
10382 functions and lazy I/O. The guiding principle here is:
10383 @itemize
10384 @item If something is safe to use in general and has no expected naming
10385 conflicts, expose it.
10386 @item If something should not always be used, or has naming conflicts,
10387 expose it from another module in the hierarchy.
10388 @end itemize")
10389 (license license:expat)))
10390
10391 (define-public ghc-cairo
10392 (package
10393 (name "ghc-cairo")
10394 (version "0.13.5.0")
10395 (source
10396 (origin
10397 (method url-fetch)
10398 (uri (string-append "https://hackage.haskell.org/package/cairo/"
10399 "cairo-" version ".tar.gz"))
10400 (sha256
10401 (base32
10402 "1wxylv4d8120ri0vgar168ikqa9m6533ipdwi38qlmxmw20ws2j2"))))
10403 (build-system haskell-build-system)
10404 (arguments
10405 `(#:modules ((guix build haskell-build-system)
10406 (guix build utils)
10407 (ice-9 match)
10408 (srfi srfi-26))
10409 #:phases
10410 (modify-phases %standard-phases
10411 ;; FIXME: This is a copy of the standard configure phase with a tiny
10412 ;; difference: this package needs the -package-db flag to be passed
10413 ;; to "runhaskell" in addition to the "configure" action, because it
10414 ;; depends on gtk2hs-buildtools, which provide setup hooks. Without
10415 ;; this option the Setup.hs file cannot be evaluated. The
10416 ;; haskell-build-system should be changed to pass "-package-db" to
10417 ;; "runhaskell" in any case.
10418 (replace 'configure
10419 (lambda* (#:key outputs inputs tests? (configure-flags '())
10420 #:allow-other-keys)
10421 (let* ((out (assoc-ref outputs "out"))
10422 (name-version (strip-store-file-name out))
10423 (input-dirs (match inputs
10424 (((_ . dir) ...)
10425 dir)
10426 (_ '())))
10427 (ghc-path (getenv "GHC_PACKAGE_PATH"))
10428 (params (append `(,(string-append "--prefix=" out))
10429 `(,(string-append "--libdir=" out "/lib"))
10430 `(,(string-append "--bindir=" out "/bin"))
10431 `(,(string-append
10432 "--docdir=" out
10433 "/share/doc/" name-version))
10434 '("--libsubdir=$compiler/$pkg-$version")
10435 '("--package-db=../package.conf.d")
10436 '("--global")
10437 `(,@(map
10438 (cut string-append "--extra-include-dirs=" <>)
10439 (search-path-as-list '("include") input-dirs)))
10440 `(,@(map
10441 (cut string-append "--extra-lib-dirs=" <>)
10442 (search-path-as-list '("lib") input-dirs)))
10443 (if tests?
10444 '("--enable-tests")
10445 '())
10446 configure-flags)))
10447 (unsetenv "GHC_PACKAGE_PATH")
10448 (apply invoke "runhaskell" "-package-db=../package.conf.d"
10449 "Setup.hs" "configure" params)
10450 (setenv "GHC_PACKAGE_PATH" ghc-path)
10451 #t))))))
10452 (inputs
10453 `(("ghc-utf8-string" ,ghc-utf8-string)
10454 ("cairo" ,cairo)))
10455 (native-inputs
10456 `(("ghc-gtk2hs-buildtools" ,ghc-gtk2hs-buildtools)
10457 ("pkg-config" ,pkg-config)))
10458 (home-page "http://projects.haskell.org/gtk2hs/")
10459 (synopsis "Haskell bindings to the Cairo vector graphics library")
10460 (description
10461 "Cairo is a library to render high quality vector graphics. There exist
10462 various backends that allows rendering to Gtk windows, PDF, PS, PNG and SVG
10463 documents, amongst others.")
10464 (license license:bsd-3)))
10465
10466 (define-public ghc-chart-cairo
10467 (package
10468 (name "ghc-chart-cairo")
10469 (version "1.9")
10470 (source
10471 (origin
10472 (method url-fetch)
10473 (uri (string-append "https://hackage.haskell.org/package/Chart-cairo/"
10474 "Chart-cairo-" version ".tar.gz"))
10475 (sha256
10476 (base32
10477 "0iany6lfyfb1cw0pxfs5aw5k0a6x41m6ql9ad9w59biwdckbsyqr"))))
10478 (build-system haskell-build-system)
10479 (inputs
10480 `(("ghc-old-locale" ,ghc-old-locale)
10481 ("ghc-cairo" ,ghc-cairo)
10482 ("ghc-colour" ,ghc-colour)
10483 ("ghc-data-default-class" ,ghc-data-default-class)
10484 ("ghc-operational" ,ghc-operational)
10485 ("ghc-lens" ,ghc-lens)
10486 ("ghc-chart" ,ghc-chart)))
10487 (home-page "https://github.com/timbod7/haskell-chart/wiki")
10488 (synopsis "Cairo backend for Charts")
10489 (description "This package provides a Cairo vector graphics rendering
10490 backend for the Charts library.")
10491 (license license:bsd-3)))
10492
10493 (define-public ghc-atomic-write
10494 (package
10495 (name "ghc-atomic-write")
10496 (version "0.2.0.5")
10497 (source
10498 (origin
10499 (method url-fetch)
10500 (uri (string-append
10501 "https://hackage.haskell.org/package/atomic-write/atomic-write-"
10502 version
10503 ".tar.gz"))
10504 (sha256
10505 (base32
10506 "1iaq0hprxcv0sl1sgwcgmm87zraf738va1bciwnx2jkk3k1v9iyv"))))
10507 (build-system haskell-build-system)
10508 (inputs
10509 `(("ghc-temporary" ,ghc-temporary)
10510 ("ghc-unix-compat" ,ghc-unix-compat)))
10511 (native-inputs
10512 `(("ghc-temporary" ,ghc-temporary)
10513 ("ghc-unix-compat" ,ghc-unix-compat)
10514 ("ghc-hspec" ,ghc-hspec)
10515 ("hspec-discover" ,hspec-discover)))
10516 (home-page "https://github.com/stackbuilders/atomic-write")
10517 (synopsis "Atomically write to a file")
10518 (description
10519 "Atomically write to a file on POSIX-compliant systems while preserving
10520 permissions. @code{mv} is an atomic operation. This makes it simple to write
10521 to a file atomically just by using the @code{mv} operation. However, this
10522 will destroy the permissions on the original file. This library preserves
10523 permissions while atomically writing to a file.")
10524 (license license:expat)))
10525
10526 (define-public ghc-cereal-conduit
10527 (package
10528 (name "ghc-cereal-conduit")
10529 (version "0.8.0")
10530 (source
10531 (origin
10532 (method url-fetch)
10533 (uri (string-append "https://hackage.haskell.org/package/"
10534 "cereal-conduit/cereal-conduit-"
10535 version ".tar.gz"))
10536 (sha256
10537 (base32
10538 "1srr7agvgfw78q5s1npjq5sgynvhjgllpihiv37ylkwqm4c4ap6r"))))
10539 (build-system haskell-build-system)
10540 (inputs
10541 `(("ghc-conduit" ,ghc-conduit)
10542 ("ghc-resourcet" ,ghc-resourcet)
10543 ("ghc-cereal" ,ghc-cereal)))
10544 (native-inputs
10545 `(("ghc-hunit" ,ghc-hunit)))
10546 (home-page "https://github.com/snoyberg/conduit")
10547 (synopsis "Turn Data.Serialize Gets and Puts into Sources, Sinks, and Conduits")
10548 (description
10549 "This package turn @code{Data.Serialize} @code{Gets} and @code{Puts} into
10550 @code{Sources}, @code{Sinks}, and @code{Conduits}.")
10551 (license license:bsd-3)))
10552
10553 (define-public ghc-lzma
10554 (package
10555 (name "ghc-lzma")
10556 (version "0.0.0.3")
10557 (source
10558 (origin
10559 (method url-fetch)
10560 (uri (string-append "https://hackage.haskell.org/package/lzma/"
10561 "lzma-" version ".tar.gz"))
10562 (sha256
10563 (base32
10564 "0i416gqi8j55nd1pqbkxvf3f6hn6fjys6gq98lkkxphva71j30xg"))))
10565 (build-system haskell-build-system)
10566 (arguments
10567 '(#:tests? #f ; requires older versions of QuickCheck and tasty.
10568 #:cabal-revision
10569 ("3" "1sify6gnsalyp6dakfzi0mdy5jcz2kcp9jsdsgkmxd40nfzgd44m")))
10570 (native-inputs
10571 `(("ghc-hunit" ,ghc-hunit)
10572 ("ghc-quickcheck" ,ghc-quickcheck)
10573 ("ghc-tasty" ,ghc-tasty)
10574 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
10575 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
10576 (home-page "https://github.com/hvr/lzma")
10577 (synopsis "LZMA/XZ compression and decompression")
10578 (description
10579 "This package provides a pure interface for compressing and
10580 decompressing LZMA streams of data represented as lazy @code{ByteString}s. A
10581 monadic incremental interface is provided as well.")
10582 (license license:bsd-3)))
10583
10584 (define-public ghc-stm-conduit
10585 (package
10586 (name "ghc-stm-conduit")
10587 (version "4.0.0")
10588 (source
10589 (origin
10590 (method url-fetch)
10591 (uri (string-append "https://hackage.haskell.org/package/stm-conduit/"
10592 "stm-conduit-" version ".tar.gz"))
10593 (sha256
10594 (base32
10595 "0paapljn7nqfzrx889y0n8sszci38mdiaxkgr0bb00ph9246rr7z"))))
10596 (build-system haskell-build-system)
10597 (inputs
10598 `(("ghc-stm-chans" ,ghc-stm-chans)
10599 ("ghc-cereal" ,ghc-cereal)
10600 ("ghc-cereal-conduit" ,ghc-cereal-conduit)
10601 ("ghc-conduit" ,ghc-conduit)
10602 ("ghc-conduit-extra" ,ghc-conduit-extra)
10603 ("ghc-exceptions" ,ghc-exceptions)
10604 ("ghc-resourcet" ,ghc-resourcet)
10605 ("ghc-async" ,ghc-async)
10606 ("ghc-monad-loops" ,ghc-monad-loops)
10607 ("ghc-unliftio" ,ghc-unliftio)))
10608 (native-inputs
10609 `(("ghc-doctest" ,ghc-doctest)
10610 ("ghc-quickcheck" ,ghc-quickcheck)
10611 ("ghc-hunit" ,ghc-hunit)
10612 ("ghc-test-framework" ,ghc-test-framework)
10613 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
10614 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
10615 (home-page "https://github.com/cgaebel/stm-conduit")
10616 (synopsis "Introduces conduits to channels and promotes using conduits concurrently")
10617 (description
10618 "This package provides two simple conduit wrappers around STM channels: a
10619 source and a sink.")
10620 (license license:bsd-3)))
10621
10622 (define-public ghc-bindings-dsl
10623 (package
10624 (name "ghc-bindings-dsl")
10625 (version "1.0.25")
10626 (source
10627 (origin
10628 (method url-fetch)
10629 (uri (string-append "https://hackage.haskell.org/package/bindings-DSL/"
10630 "bindings-DSL-" version ".tar.gz"))
10631 (sha256
10632 (base32
10633 "0kqrd78nspl3lk4a0fqn47d8dirjg3b24dkvkigcrlb81hw35pk3"))))
10634 (build-system haskell-build-system)
10635 (home-page "https://github.com/jwiegley/bindings-dsl/wiki")
10636 (synopsis "FFI domain specific language, on top of hsc2hs")
10637 (description
10638 "This is a set of macros to be used when writing Haskell FFI. They were
10639 designed to be able to fully describe C interfaces, so that @code{hsc2hs} can
10640 extract from them all Haskell code needed to mimic such interfaces. All
10641 Haskell names used are automatically derived from C names, structures are
10642 mapped to Haskell instances of @code{Storable}, and there are also macros you
10643 can use with C code to help write bindings to inline functions or macro
10644 functions.")
10645 (license license:bsd-3)))
10646
10647 (define-public ghc-lzma-conduit
10648 (package
10649 (name "ghc-lzma-conduit")
10650 (version "1.2.1")
10651 (source
10652 (origin
10653 (method url-fetch)
10654 (uri (string-append "https://hackage.haskell.org/package/lzma-conduit/"
10655 "lzma-conduit-" version ".tar.gz"))
10656 (sha256
10657 (base32
10658 "0hm72da7xk9l3zxjh274yg444vf405djxqbkf3q3p2qhicmxlmg9"))))
10659 (build-system haskell-build-system)
10660 (inputs
10661 `(("ghc-conduit" ,ghc-conduit)
10662 ("ghc-lzma" ,ghc-lzma)
10663 ("ghc-resourcet" ,ghc-resourcet)))
10664 (native-inputs
10665 `(("ghc-base-compat" ,ghc-base-compat)
10666 ("ghc-test-framework" ,ghc-test-framework)
10667 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
10668 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)
10669 ("ghc-hunit" ,ghc-hunit)
10670 ("ghc-quickcheck" ,ghc-quickcheck)))
10671 (home-page "https://github.com/alphaHeavy/lzma-conduit")
10672 (synopsis "Conduit interface for lzma/xz compression")
10673 (description
10674 "This package provides a @code{Conduit} interface for the LZMA
10675 compression algorithm used in the @code{.xz} file format.")
10676 (license license:bsd-3)))
10677
10678 (define-public ghc-bzlib-conduit
10679 (package
10680 (name "ghc-bzlib-conduit")
10681 (version "0.3.0.1")
10682 (source
10683 (origin
10684 (method url-fetch)
10685 (uri (string-append "https://hackage.haskell.org/package/bzlib-conduit/"
10686 "bzlib-conduit-" version ".tar.gz"))
10687 (sha256
10688 (base32
10689 "0fd2hnr782s7qgipazg2yxwia9qqhkvm9bcm90773c3zkxa13n23"))))
10690 (build-system haskell-build-system)
10691 (inputs
10692 `(("ghc-bindings-dsl" ,ghc-bindings-dsl)
10693 ("ghc-conduit" ,ghc-conduit)
10694 ("ghc-data-default-class" ,ghc-data-default-class)
10695 ("ghc-resourcet" ,ghc-resourcet)))
10696 (native-inputs
10697 `(("ghc-hspec" ,ghc-hspec)
10698 ("ghc-random" ,ghc-random)))
10699 (home-page "https://github.com/snoyberg/bzlib-conduit")
10700 (synopsis "Streaming compression/decompression via conduits")
10701 (description
10702 "This package provides Haskell bindings to bzlib and Conduit support for
10703 streaming compression and decompression.")
10704 (license license:bsd-3)))
10705
10706 (define-public ghc-pqueue
10707 (package
10708 (name "ghc-pqueue")
10709 (version "1.4.1.1")
10710 (source
10711 (origin
10712 (method url-fetch)
10713 (uri (string-append "https://hackage.haskell.org/package/"
10714 "pqueue/pqueue-" version ".tar.gz"))
10715 (sha256
10716 (base32
10717 "1zvwm1zcqqq5n101s1brjhgbay8rf9fviq6gxbplf40i63m57p1x"))))
10718 (build-system haskell-build-system)
10719 (native-inputs
10720 `(("ghc-quickcheck" ,ghc-quickcheck)))
10721 (home-page "https://hackage.haskell.org/package/pqueue")
10722 (synopsis "Reliable, persistent, fast priority queues")
10723 (description
10724 "This package provides a fast, reliable priority queue implementation
10725 based on a binomial heap.")
10726 (license license:bsd-3)))
10727
10728 (define-public ghc-conduit-algorithms
10729 (package
10730 (name "ghc-conduit-algorithms")
10731 (version "0.0.8.1")
10732 (source
10733 (origin
10734 (method url-fetch)
10735 (uri (string-append "https://hackage.haskell.org/package/"
10736 "conduit-algorithms/conduit-algorithms-"
10737 version ".tar.gz"))
10738 (sha256
10739 (base32
10740 "07gx2q3d1bbfw14q41rmqg0i4m018pci10lswc0k1ij6lw7sb9fd"))))
10741 (build-system haskell-build-system)
10742 (inputs
10743 `(("ghc-async" ,ghc-async)
10744 ("ghc-bzlib-conduit" ,ghc-bzlib-conduit)
10745 ("ghc-conduit" ,ghc-conduit)
10746 ("ghc-conduit-combinators" ,ghc-conduit-combinators)
10747 ("ghc-conduit-extra" ,ghc-conduit-extra)
10748 ("ghc-exceptions" ,ghc-exceptions)
10749 ("ghc-lzma-conduit" ,ghc-lzma-conduit)
10750 ("ghc-monad-control" ,ghc-monad-control)
10751 ("ghc-pqueue" ,ghc-pqueue)
10752 ("ghc-resourcet" ,ghc-resourcet)
10753 ("ghc-stm-conduit" ,ghc-stm-conduit)
10754 ("ghc-streaming-commons" ,ghc-streaming-commons)
10755 ("ghc-unliftio-core" ,ghc-unliftio-core)
10756 ("ghc-vector" ,ghc-vector)))
10757 (native-inputs
10758 `(("ghc-hunit" ,ghc-hunit)
10759 ("ghc-test-framework" ,ghc-test-framework)
10760 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
10761 ("ghc-test-framework-th" ,ghc-test-framework-th)))
10762 (home-page "https://github.com/luispedro/conduit-algorithms#readme")
10763 (synopsis "Conduit-based algorithms")
10764 (description
10765 "This package provides algorithms on @code{Conduits}, including higher
10766 level asynchronous processing and some other utilities.")
10767 (license license:expat)))
10768
10769 (define-public ghc-interpolate
10770 (package
10771 (name "ghc-interpolate")
10772 (version "0.2.0")
10773 (source
10774 (origin
10775 (method url-fetch)
10776 (uri (string-append "https://hackage.haskell.org/package/interpolate/"
10777 "interpolate-" version ".tar.gz"))
10778 (sha256
10779 (base32
10780 "1gkaj98yz363v38fv78sqby236mp8yqwqcilx7kr2b9z0w3204bf"))))
10781 (build-system haskell-build-system)
10782 (inputs
10783 `(("ghc-haskell-src-meta" ,ghc-haskell-src-meta)))
10784 (native-inputs
10785 `(("ghc-base-compat" ,ghc-base-compat)
10786 ("ghc-hspec" ,ghc-hspec)
10787 ("ghc-quickcheck" ,ghc-quickcheck)
10788 ("ghc-quickcheck-instances" ,ghc-quickcheck-instances)
10789 ("hspec-discover" ,hspec-discover)))
10790 (home-page "https://github.com/sol/interpolate")
10791 (synopsis "String interpolation library")
10792 (description "This package provides a string interpolation library for
10793 Haskell.")
10794 (license license:expat)))
10795
10796 (define-public ghc-hpack
10797 (package
10798 (name "ghc-hpack")
10799 (version "0.28.2")
10800 (source
10801 (origin
10802 (method url-fetch)
10803 (uri (string-append "https://hackage.haskell.org/package/hpack/"
10804 "hpack-" version ".tar.gz"))
10805 (sha256
10806 (base32
10807 "18w0h76jdp3mk9vin8da9iz3cwhcxmw787xy8wlh8bxcpcr16q5r"))))
10808 (build-system haskell-build-system)
10809 (inputs
10810 `(("ghc-aeson" ,ghc-aeson)
10811 ("ghc-bifunctors" ,ghc-bifunctors)
10812 ("ghc-cryptonite" ,ghc-cryptonite)
10813 ("ghc-glob" ,ghc-glob)
10814 ("ghc-http-client" ,ghc-http-client)
10815 ("ghc-http-client-tls" ,ghc-http-client-tls)
10816 ("ghc-http-types" ,ghc-http-types)
10817 ("ghc-scientific" ,ghc-scientific)
10818 ("ghc-unordered-containers" ,ghc-unordered-containers)
10819 ("ghc-vector" ,ghc-vector)
10820 ("ghc-yaml" ,ghc-yaml)))
10821 (native-inputs
10822 `(("ghc-hspec" ,ghc-hspec)
10823 ("ghc-hunit" ,ghc-hunit)
10824 ("ghc-interpolate" ,ghc-interpolate)
10825 ("ghc-mockery" ,ghc-mockery)
10826 ("ghc-quickcheck" ,ghc-quickcheck)
10827 ("ghc-temporary" ,ghc-temporary)
10828 ("hspec-discover" ,hspec-discover)))
10829 (home-page "https://github.com/sol/hpack")
10830 (synopsis "Tools for an alternative Haskell package format")
10831 (description
10832 "Hpack is a format for Haskell packages. It is an alternative to the
10833 Cabal package format and follows different design principles. Hpack packages
10834 are described in a file named @code{package.yaml}. Both @code{cabal2nix} and
10835 @code{stack} support @code{package.yaml} natively. For other build tools the
10836 @code{hpack} executable can be used to generate a @code{.cabal} file from
10837 @code{package.yaml}.")
10838 (license license:expat)))
10839
10840 (define-public ghc-raw-strings-qq
10841 (package
10842 (name "ghc-raw-strings-qq")
10843 (version "1.1")
10844 (source
10845 (origin
10846 (method url-fetch)
10847 (uri (string-append "https://hackage.haskell.org/package/"
10848 "raw-strings-qq/raw-strings-qq-"
10849 version ".tar.gz"))
10850 (sha256
10851 (base32
10852 "1lxy1wy3awf52968iy5y9r5z4qgnn2sxkdrh7js3m9gadb11w09f"))))
10853 (build-system haskell-build-system)
10854 (native-inputs `(("ghc-hunit" ,ghc-hunit)))
10855 (home-page "https://github.com/23Skidoo/raw-strings-qq")
10856 (synopsis "Raw string literals for Haskell")
10857 (description
10858 "This package provides a quasiquoter for raw string literals, i.e. string
10859 literals that don't recognise the standard escape sequences. Basically, they
10860 make your code more readable by freeing you from the responsibility to escape
10861 backslashes. They are useful when working with regular expressions,
10862 DOS/Windows paths and markup languages (such as XML).")
10863 (license license:bsd-3)))
10864
10865 (define-public ghc-inline-c
10866 (package
10867 (name "ghc-inline-c")
10868 (version "0.6.1.0")
10869 (source
10870 (origin
10871 (method url-fetch)
10872 (uri (string-append "https://hackage.haskell.org/package/inline-c/"
10873 "inline-c-" version ".tar.gz"))
10874 (sha256
10875 (base32
10876 "0vbfrsqsi7mdziqsnj68bsqlwbqxxhvrmy9rv6w8z18d1m8w3n6h"))))
10877 (build-system haskell-build-system)
10878 (inputs
10879 `(("ghc-ansi-wl-pprint" ,ghc-ansi-wl-pprint)
10880 ("ghc-cryptohash" ,ghc-cryptohash)
10881 ("ghc-hashable" ,ghc-hashable)
10882 ("ghc-parsers" ,ghc-parsers)
10883 ("ghc-unordered-containers" ,ghc-unordered-containers)
10884 ("ghc-vector" ,ghc-vector)))
10885 (native-inputs
10886 `(("ghc-quickcheck" ,ghc-quickcheck)
10887 ("ghc-hspec" ,ghc-hspec)
10888 ("ghc-raw-strings-qq" ,ghc-raw-strings-qq)
10889 ("ghc-regex-posix" ,ghc-regex-posix)))
10890 (home-page "http://hackage.haskell.org/package/inline-c")
10891 (synopsis "Write Haskell source files including C code inline")
10892 (description
10893 "inline-c lets you seamlessly call C libraries and embed high-performance
10894 inline C code in Haskell modules. Haskell and C can be freely intermixed in
10895 the same source file, and data passed to and from code in either language with
10896 minimal overhead. No FFI required.")
10897 (license license:expat)))
10898
10899 (define-public ghc-weigh
10900 (package
10901 (name "ghc-weigh")
10902 (version "0.0.12")
10903 (source
10904 (origin
10905 (method url-fetch)
10906 (uri (string-append "https://hackage.haskell.org/package/weigh/"
10907 "weigh-" version ".tar.gz"))
10908 (sha256
10909 (base32
10910 "0zw2a997gxgdzqmd7j730kxgynzmjvvlkw84dajmfzf1v9pbij7x"))))
10911 (build-system haskell-build-system)
10912 (inputs
10913 `(("ghc-split" ,ghc-split)
10914 ("ghc-temporary" ,ghc-temporary)))
10915 (home-page "https://github.com/fpco/weigh#readme")
10916 (synopsis "Measure allocations of a Haskell functions/values")
10917 (description "This package provides tools to measure the memory usage of a
10918 Haskell value or function.")
10919 (license license:bsd-3)))
10920
10921 (define-public ghc-linear
10922 (package
10923 (name "ghc-linear")
10924 (version "1.20.8")
10925 (source
10926 (origin
10927 (method url-fetch)
10928 (uri (string-append "https://hackage.haskell.org/package/linear/"
10929 "linear-" version ".tar.gz"))
10930 (sha256
10931 (base32
10932 "046vkvxlb0s286qr55s0c6db0rlwbm1cmlmwhrrkqbkzhfcipgay"))))
10933 (build-system haskell-build-system)
10934 (inputs
10935 `(("ghc-adjunctions" ,ghc-adjunctions)
10936 ("ghc-base-orphans" ,ghc-base-orphans)
10937 ("ghc-bytes" ,ghc-bytes)
10938 ("ghc-cereal" ,ghc-cereal)
10939 ("ghc-distributive" ,ghc-distributive)
10940 ("ghc-hashable" ,ghc-hashable)
10941 ("ghc-lens" ,ghc-lens)
10942 ("ghc-reflection" ,ghc-reflection)
10943 ("ghc-semigroups" ,ghc-semigroups)
10944 ("ghc-semigroupoids" ,ghc-semigroupoids)
10945 ("ghc-tagged" ,ghc-tagged)
10946 ("ghc-transformers-compat" ,ghc-transformers-compat)
10947 ("ghc-unordered-containers" ,ghc-unordered-containers)
10948 ("ghc-vector" ,ghc-vector)
10949 ("ghc-void" ,ghc-void)))
10950 (native-inputs
10951 `(("cabal-doctest" ,cabal-doctest)
10952 ("ghc-doctest" ,ghc-doctest)
10953 ("ghc-simple-reflect" ,ghc-simple-reflect)
10954 ("ghc-test-framework" ,ghc-test-framework)
10955 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
10956 ("ghc-hunit" ,ghc-hunit)))
10957 (home-page "http://github.com/ekmett/linear/")
10958 (synopsis "Linear algebra library for Haskell")
10959 (description
10960 "This package provides types and combinators for linear algebra on free
10961 vector spaces.")
10962 (license license:bsd-3)))
10963
10964 (define-public ghc-safe-exceptions
10965 (package
10966 (name "ghc-safe-exceptions")
10967 (version "0.1.7.0")
10968 (source
10969 (origin
10970 (method url-fetch)
10971 (uri (string-append "https://hackage.haskell.org/package/"
10972 "safe-exceptions/safe-exceptions-"
10973 version ".tar.gz"))
10974 (sha256
10975 (base32
10976 "0sd0zfsm9pcll5bzzj523rbn45adjrnavdkz52hgmdjjgdcdrk8q"))))
10977 (build-system haskell-build-system)
10978 (arguments
10979 '(#:cabal-revision
10980 ("4" "0fid41gishzsyb47wzxhd5falandfirqcp760hcja81qjpfmqd32")))
10981 (inputs `(("ghc-exceptions" ,ghc-exceptions)))
10982 (native-inputs
10983 `(("ghc-hspec" ,ghc-hspec)
10984 ("ghc-void" ,ghc-void)
10985 ("hspec-discover" ,hspec-discover)))
10986 (home-page "https://github.com/fpco/safe-exceptions")
10987 (synopsis "Safe, consistent, and easy exception handling")
10988 (description "Runtime exceptions - as exposed in @code{base} by the
10989 @code{Control.Exception} module - have long been an intimidating part of the
10990 Haskell ecosystem. This package is intended to overcome this. It provides a
10991 safe and simple API on top of the existing exception handling machinery. The
10992 API is equivalent to the underlying implementation in terms of power but
10993 encourages best practices to minimize the chances of getting the exception
10994 handling wrong.")
10995 (license license:expat)))
10996
10997 (define-public ghc-inline-c-cpp
10998 (package
10999 (name "ghc-inline-c-cpp")
11000 (version "0.2.2.1")
11001 (source
11002 (origin
11003 (method url-fetch)
11004 (uri (string-append "https://hackage.haskell.org/package/inline-c-cpp/"
11005 "inline-c-cpp-" version ".tar.gz"))
11006 (sha256
11007 (base32
11008 "1rk7fmpkmxw9hhwr8df29kadnf0ybnwj64ggdbnsdrpfyhnkisci"))))
11009 (build-system haskell-build-system)
11010 (inputs
11011 `(("ghc-inline-c" ,ghc-inline-c)
11012 ("ghc-safe-exceptions" ,ghc-safe-exceptions)))
11013 (native-inputs
11014 `(("ghc-hspec" ,ghc-hspec)))
11015 (home-page "https://hackage.haskell.org/package/inline-c-cpp")
11016 (synopsis "Lets you embed C++ code into Haskell")
11017 (description
11018 "This package provides utilities to inline C++ code into Haskell using
11019 @code{inline-c}.")
11020 (license license:expat)))
11021
11022 (define-public ghc-bytestring-lexing
11023 (package
11024 (name "ghc-bytestring-lexing")
11025 (version "0.5.0.2")
11026 (source
11027 (origin
11028 (method url-fetch)
11029 (uri (string-append "https://hackage.haskell.org/package/"
11030 "bytestring-lexing/bytestring-lexing-"
11031 version ".tar.gz"))
11032 (sha256
11033 (base32
11034 "0wrzniawhgpphc6yx1v972gyqxdbv0pizaz9bafahrshyb9svy81"))))
11035 (build-system haskell-build-system)
11036 (home-page "http://code.haskell.org/~wren/")
11037 (synopsis "Parse and produce literals from strict or lazy bytestrings")
11038 (description
11039 "This package provides tools to parse and produce literals efficiently
11040 from strict or lazy bytestrings.")
11041 (license license:bsd-2)))
11042
11043 (define-public ghc-configurator
11044 (package
11045 (name "ghc-configurator")
11046 (version "0.3.0.0")
11047 (source
11048 (origin
11049 (method url-fetch)
11050 (uri (string-append "https://hackage.haskell.org/package/"
11051 "configurator/configurator-"
11052 version ".tar.gz"))
11053 (sha256
11054 (base32
11055 "1d1iq1knwiq6ia5g64rw5hqm6dakz912qj13r89737rfcxmrkfbf"))))
11056 (build-system haskell-build-system)
11057 (inputs
11058 `(("ghc-attoparsec" ,ghc-attoparsec)
11059 ("ghc-hashable" ,ghc-hashable)
11060 ("ghc-unix-compat" ,ghc-unix-compat)
11061 ("ghc-unordered-containers" ,ghc-unordered-containers)))
11062 (native-inputs
11063 `(("ghc-hunit" ,ghc-hunit)
11064 ("ghc-test-framework" ,ghc-test-framework)
11065 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)))
11066 (home-page "http://github.com/bos/configurator")
11067 (synopsis "Configuration management")
11068 (description
11069 "This package provides a configuration management library for programs
11070 and daemons. The features include:
11071
11072 @enumerate
11073 @item Automatic, dynamic reloading in response to modifications to
11074 configuration files.
11075 @item A simple, but flexible, configuration language, supporting several of
11076 the most commonly needed types of data, along with interpolation of strings
11077 from the configuration or the system environment (e.g. @code{$(HOME)}).
11078 @item Subscription-based notification of changes to configuration properties.
11079 @item An @code{import} directive allows the configuration of a complex
11080 application to be split across several smaller files, or common configuration
11081 data to be shared across several applications.
11082 @end enumerate\n")
11083 (license license:bsd-3)))
11084
11085 (define-public ghc-file-embed
11086 (package
11087 (name "ghc-file-embed")
11088 (version "0.0.10.1")
11089 (source
11090 (origin
11091 (method url-fetch)
11092 (uri (string-append "https://hackage.haskell.org/package/file-embed/"
11093 "file-embed-" version ".tar.gz"))
11094 (sha256
11095 (base32
11096 "0lj164cnzqyd487mli91nnr7137a4h4qsasfwsnsh77sx12fpk9k"))))
11097 (build-system haskell-build-system)
11098 (home-page "https://github.com/snoyberg/file-embed")
11099 (synopsis "Use Template Haskell to embed file contents directly")
11100 (description
11101 "This package allows you to use Template Haskell to read a file or all
11102 the files in a directory, and turn them into @code{(path, bytestring)} pairs
11103 embedded in your Haskell code.")
11104 (license license:bsd-3)))
11105
11106 (define-public ghc-safeio
11107 (package
11108 (name "ghc-safeio")
11109 (version "0.0.5.0")
11110 (source
11111 (origin
11112 (method url-fetch)
11113 (uri (string-append "https://hackage.haskell.org/package/safeio/"
11114 "safeio-" version ".tar.gz"))
11115 (sha256
11116 (base32
11117 "04g3070cbjdqj0h9l9ii6470xcbn40xfv4fr89a8yvnkdim9nyfm"))))
11118 (build-system haskell-build-system)
11119 (inputs
11120 `(("ghc-conduit" ,ghc-conduit)
11121 ("ghc-conduit-combinators" ,ghc-conduit-combinators)
11122 ("ghc-exceptions" ,ghc-exceptions)
11123 ("ghc-resourcet" ,ghc-resourcet)))
11124 (native-inputs
11125 `(("ghc-hunit" ,ghc-hunit)
11126 ("ghc-test-framework" ,ghc-test-framework)
11127 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
11128 ("ghc-test-framework-th" ,ghc-test-framework-th)))
11129 (home-page "https://github.com/luispedro/safeio")
11130 (synopsis "Write output to disk atomically")
11131 (description
11132 "This package implements utilities to perform atomic output so as to
11133 avoid the problem of partial intermediate files.")
11134 (license license:expat)))
11135
11136 (define-public ghc-tldr
11137 (package
11138 (name "ghc-tldr")
11139 (version "0.4.0.1")
11140 (source
11141 (origin
11142 (method url-fetch)
11143 (uri (string-append
11144 "https://hackage.haskell.org/package/tldr/tldr-"
11145 version
11146 ".tar.gz"))
11147 (sha256
11148 (base32
11149 "0nc581y9jjzwd8l88g48c72mla7k6q1w102akl7gl5jsk9ljamd3"))))
11150 (build-system haskell-build-system)
11151 (inputs
11152 `(("ghc-cmark" ,ghc-cmark)
11153 ("ghc-optparse-applicative" ,ghc-optparse-applicative)
11154 ("ghc-typed-process" ,ghc-typed-process)
11155 ("ghc-semigroups" ,ghc-semigroups)))
11156 (native-inputs
11157 `(("ghc-tasty" ,ghc-tasty)
11158 ("ghc-tasty-golden" ,ghc-tasty-golden)))
11159 (home-page "https://github.com/psibi/tldr-hs#readme")
11160 (synopsis "Haskell tldr client")
11161 (description "This package provides the @command{tldr} command and a
11162 Haskell client library allowing users to update and view @code{tldr} pages
11163 from a shell. The @code{tldr} pages are a community effort to simplify the
11164 man pages with practical examples.")
11165 (license license:bsd-3)))
11166
11167 (define-public ghc-c2hs
11168 (package
11169 (name "ghc-c2hs")
11170 (version "0.28.6")
11171 (source
11172 (origin
11173 (method url-fetch)
11174 (uri (string-append
11175 "https://hackage.haskell.org/package/c2hs/c2hs-"
11176 version
11177 ".tar.gz"))
11178 (sha256
11179 (base32
11180 "1nplgxfin139x12sb656f5870rpdclrhzi8mq8pry035qld15pci"))))
11181 (build-system haskell-build-system)
11182 (inputs
11183 `(("ghc-language-c" ,ghc-language-c)
11184 ("ghc-dlist" ,ghc-dlist)))
11185 (native-inputs
11186 `(("ghc-test-framework" ,ghc-test-framework)
11187 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
11188 ("ghc-hunit" ,ghc-hunit)
11189 ("ghc-shelly" ,ghc-shelly)
11190 ("gcc" ,gcc)))
11191 (arguments
11192 `(;; XXX: Test failures are induced by a parse error in <bits/floatn.h>
11193 ;; of glibc 2.28.
11194 #:tests? #f
11195
11196 #:phases
11197 (modify-phases %standard-phases
11198 (add-before 'check 'set-cc
11199 ;; add a cc executable in the path, needed for some tests to pass
11200 (lambda* (#:key inputs #:allow-other-keys)
11201 (let ((gcc (assoc-ref inputs "gcc"))
11202 (tmpbin (tmpnam))
11203 (curpath (getenv "PATH")))
11204 (mkdir-p tmpbin)
11205 (symlink (which "gcc") (string-append tmpbin "/cc"))
11206 (setenv "PATH" (string-append tmpbin ":" curpath)))
11207 #t))
11208 (add-after 'check 'remove-cc
11209 ;; clean the tmp dir made in 'set-cc
11210 (lambda _
11211 (let* ((cc-path (which "cc"))
11212 (cc-dir (dirname cc-path)))
11213 (delete-file-recursively cc-dir)
11214 #t))))))
11215 (home-page "https://github.com/haskell/c2hs")
11216 (synopsis "Create Haskell bindings to C libraries")
11217 (description "C->Haskell assists in the development of Haskell bindings to
11218 C libraries. It extracts interface information from C header files and
11219 generates Haskell code with foreign imports and marshaling. Unlike writing
11220 foreign imports by hand (or using hsc2hs), this ensures that C functions are
11221 imported with the correct Haskell types.")
11222 (license license:gpl2)))
11223
11224 (define-public ghc-libmpd
11225 (package
11226 (name "ghc-libmpd")
11227 (version "0.9.0.9")
11228 (source
11229 (origin
11230 (method url-fetch)
11231 (uri (string-append
11232 "mirror://hackage/package/libmpd/libmpd-"
11233 version
11234 ".tar.gz"))
11235 (sha256
11236 (base32
11237 "1931m23iqb4wddpdidm4ph746zpaw41kkjzmb074j7yyfpk7x1jv"))))
11238 (build-system haskell-build-system)
11239 ;; Tests fail on i686.
11240 ;; See https://github.com/vimus/libmpd-haskell/issues/112
11241 (arguments `(#:tests? #f))
11242 (inputs
11243 `(("ghc-attoparsec" ,ghc-attoparsec)
11244 ("ghc-old-locale" ,ghc-old-locale)
11245 ("ghc-data-default-class" ,ghc-data-default-class)
11246 ("ghc-network" ,ghc-network)
11247 ("ghc-utf8-string" ,ghc-utf8-string)))
11248 (native-inputs
11249 `(("ghc-quickcheck" ,ghc-quickcheck)
11250 ("ghc-hspec" ,ghc-hspec)
11251 ("hspec-discover" ,hspec-discover)))
11252 (home-page "https://github.com/vimus/libmpd-haskell")
11253 (synopsis "Haskell client library for the Music Player Daemon")
11254 (description "This package provides a pure Haskell client library for the
11255 Music Player Daemon.")
11256 (license license:expat)))
11257
11258 (define-public ghc-alsa-core
11259 (package
11260 (name "ghc-alsa-core")
11261 (version "0.5.0.1")
11262 (source
11263 (origin
11264 (method url-fetch)
11265 (uri (string-append
11266 "mirror://hackage/package/alsa-core/alsa-core-"
11267 version
11268 ".tar.gz"))
11269 (sha256
11270 (base32
11271 "1avh4a419h9d2zsslg6j8hm87ppgsgqafz8ll037rk2yy1g4jl7b"))))
11272 (build-system haskell-build-system)
11273 (inputs
11274 `(("ghc-extensible-exceptions" ,ghc-extensible-exceptions)
11275 ("alsa-lib" ,alsa-lib)))
11276 (native-inputs
11277 `(("pkg-config" ,pkg-config)))
11278 (home-page "http://www.haskell.org/haskellwiki/ALSA")
11279 (synopsis "Binding to the ALSA Library API (Exceptions)")
11280 (description "This package provides access to ALSA infrastructure, that is
11281 needed by both alsa-seq and alsa-pcm.")
11282 (license license:bsd-3)))
11283
11284 (define-public ghc-base-unicode-symbols
11285 (package
11286 (name "ghc-base-unicode-symbols")
11287 (version "0.2.3")
11288 (source
11289 (origin
11290 (method url-fetch)
11291 (uri (string-append
11292 "mirror://hackage/package/base-unicode-symbols/base-unicode-symbols-"
11293 version
11294 ".tar.gz"))
11295 (sha256
11296 (base32
11297 "1ia6li7qjg1zkak4gf6mnbshw45mq9bfjr0jch58ds0lscmvwyzf"))))
11298 (build-system haskell-build-system)
11299 (home-page "http://www.haskell.org/haskellwiki/Unicode-symbols")
11300 (synopsis "Unicode alternatives for common functions and operators")
11301 (description "This package defines new symbols for a number of functions,
11302 operators and types in the base package. All symbols are documented with
11303 their actual definition and information regarding their Unicode code point.
11304 They should be completely interchangeable with their definitions. For
11305 further Unicode goodness you can enable the @code{UnicodeSyntax}
11306 @url{https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/glasgow_exs.html#unicode-syntax,
11307 language extension}. This extension enables Unicode characters to be used to
11308 stand for certain ASCII character sequences, i.e. → instead of @code{->},
11309 ∀ instead of @code{forall} and many others.")
11310 (license license:bsd-3)))
11311
11312 (define-public ghc-genvalidity
11313 (package
11314 (name "ghc-genvalidity")
11315 (version "0.5.1.0")
11316 (source
11317 (origin
11318 (method url-fetch)
11319 (uri (string-append
11320 "https://hackage.haskell.org/package/genvalidity/genvalidity-"
11321 version
11322 ".tar.gz"))
11323 (sha256
11324 (base32
11325 "17ykq38j9a2lzir6dqz5jgy6ndaafrpkhqhcg96c5ppg7wcxaaj0"))))
11326 (build-system haskell-build-system)
11327 (inputs
11328 `(("ghc-quickcheck" ,ghc-quickcheck)
11329 ("ghc-validity" ,ghc-validity)))
11330 (native-inputs
11331 `(("ghc-hspec" ,ghc-hspec)
11332 ("hspec-discover" ,hspec-discover)
11333 ("ghc-hspec-core" ,ghc-hspec-core)))
11334 (home-page
11335 "https://github.com/NorfairKing/validity")
11336 (synopsis
11337 "Testing utilities for the @code{validity} library")
11338 (description
11339 "This package provides testing utilities that are useful in conjunction
11340 with the @code{Validity} typeclass.")
11341 (license license:expat)))
11342
11343 (define-public ghc-genvalidity-property
11344 (package
11345 (name "ghc-genvalidity-property")
11346 (version "0.2.1.1")
11347 (source
11348 (origin
11349 (method url-fetch)
11350 (uri (string-append
11351 "https://hackage.haskell.org/package/"
11352 "genvalidity-property/genvalidity-property-"
11353 version
11354 ".tar.gz"))
11355 (sha256
11356 (base32
11357 "0cjw5i2pydidda9bnp6x37ylhxdk9g874x5sadr6sscg5kq85a1b"))))
11358 (build-system haskell-build-system)
11359 (inputs
11360 `(("ghc-quickcheck" ,ghc-quickcheck)
11361 ("ghc-genvalidity" ,ghc-genvalidity)
11362 ("ghc-hspec" ,ghc-hspec)
11363 ("hspec-discover" ,hspec-discover)
11364 ("ghc-validity" ,ghc-validity)))
11365 (native-inputs `(("ghc-doctest" ,ghc-doctest)))
11366 (home-page
11367 "https://github.com/NorfairKing/validity")
11368 (synopsis
11369 "Standard properties for functions on @code{Validity} types")
11370 (description
11371 "This package supplements the @code{Validity} typeclass with standard
11372 properties for functions operating on them.")
11373 (license license:expat)))
11374
11375 (define-public ghc-validity
11376 (package
11377 (name "ghc-validity")
11378 (version "0.7.0.0")
11379 (source
11380 (origin
11381 (method url-fetch)
11382 (uri (string-append
11383 "https://hackage.haskell.org/package/validity/validity-"
11384 version
11385 ".tar.gz"))
11386 (sha256
11387 (base32
11388 "0xribw98amafihw87ddajk6vlirp7w9b26lrnjgq7jfm4710j95f"))))
11389 (build-system haskell-build-system)
11390 (native-inputs `(("ghc-hspec" ,ghc-hspec)
11391 ("hspec-discover" ,hspec-discover)))
11392 (home-page
11393 "https://github.com/NorfairKing/validity")
11394 (synopsis "Validity typeclass")
11395 (description
11396 "Values of custom types usually have invariants imposed upon them. This
11397 package provides the @code{Validity} type class, which makes these invariants
11398 explicit by providing a function to check whether the invariants hold.")
11399 (license license:expat)))
11400
11401 (define-public ghc-path
11402 (package
11403 (name "ghc-path")
11404 (version "0.6.1")
11405 (source
11406 (origin
11407 (method url-fetch)
11408 (uri (string-append
11409 "https://hackage.haskell.org/package/path/path-"
11410 version
11411 ".tar.gz"))
11412 (sha256
11413 (base32
11414 "0nayla4k1gb821k8y5b9miflv1bi8f0czf9rqr044nrr2dddi2sb"))))
11415 (build-system haskell-build-system)
11416 (arguments
11417 ;; TODO: There are some Windows-related tests and modules that need to be
11418 ;; danced around.
11419 `(#:tests? #f
11420 #:cabal-revision
11421 ("1" "05b1zwx2a893h4h5wvgpc5g5pyx71hfmx409rqisd8s1bq1hn463")))
11422 (inputs
11423 `(("ghc-aeson" ,ghc-aeson)
11424 ("ghc-exceptions" ,ghc-exceptions)
11425 ("ghc-hashable" ,ghc-hashable)))
11426 (native-inputs
11427 `(("ghc-hspec" ,ghc-hspec)
11428 ("ghc-quickcheck" ,ghc-quickcheck)
11429 ("ghc-genvalidity" ,ghc-genvalidity)
11430 ("ghc-genvalidity-property" ,ghc-genvalidity-property)
11431 ("ghc-hspec" ,ghc-hspec)
11432 ("ghc-validity" ,ghc-validity)))
11433 (home-page
11434 "http://hackage.haskell.org/package/path")
11435 (synopsis "Support for well-typed paths")
11436 (description "This package introduces a type for paths upholding useful
11437 invariants.")
11438 (license license:bsd-3)))
11439
11440 (define-public ghc-path-io
11441 (package
11442 (name "ghc-path-io")
11443 (version "1.3.3")
11444 (source
11445 (origin
11446 (method url-fetch)
11447 (uri (string-append
11448 "https://hackage.haskell.org/package/path-io/path-io-"
11449 version
11450 ".tar.gz"))
11451 (sha256
11452 (base32
11453 "1g9m3qliqjk1img894wsb89diym5zrq51qkkrwhz4sbm9a8hbv1a"))))
11454 (build-system haskell-build-system)
11455 (inputs
11456 `(("ghc-dlist" ,ghc-dlist)
11457 ("ghc-exceptions" ,ghc-exceptions)
11458 ("ghc-path" ,ghc-path)
11459 ("ghc-transformers-base" ,ghc-transformers-base)
11460 ("ghc-unix-compat" ,ghc-unix-compat)
11461 ("ghc-temporary" ,ghc-temporary)))
11462 (native-inputs
11463 `(("ghc-hspec" ,ghc-hspec)))
11464 (arguments
11465 `(#:cabal-revision
11466 ("3" "1h9hsibbflkxpjl2fqamqiv3x3gasf51apnmklrs9l9x8r32hzcc")))
11467 (home-page
11468 "https://github.com/mrkkrp/path-io")
11469 (synopsis "Functions for manipulating well-typed paths")
11470 (description "This package provides an interface to the @code{directory}
11471 package for users of @code{path}. It also implements some missing stuff like
11472 recursive scanning and copying of directories, working with temporary
11473 files/directories, and more.")
11474 (license license:bsd-3)))
11475
11476 (define-public ghc-hindent
11477 (package
11478 (name "ghc-hindent")
11479 (version "5.3.0")
11480 (source
11481 (origin
11482 (method url-fetch)
11483 (uri (string-append
11484 "https://hackage.haskell.org/package/hindent/hindent-"
11485 version
11486 ".tar.gz"))
11487 (sha256
11488 (base32
11489 "0wkfik7mvqskk23kyh7ybgnlh3j9j1ym7d3ncahsbli9w654b7xg"))))
11490 (build-system haskell-build-system)
11491 (arguments
11492 `(#:modules ((guix build haskell-build-system)
11493 (guix build utils)
11494 (guix build emacs-utils))
11495 #:imported-modules (,@%haskell-build-system-modules
11496 (guix build emacs-utils))
11497 #:phases
11498 (modify-phases %standard-phases
11499 (add-after 'install 'emacs-install
11500 (lambda* (#:key inputs outputs #:allow-other-keys)
11501 (let* ((out (assoc-ref outputs "out"))
11502 (elisp-file "elisp/hindent.el")
11503 (dest (string-append out "/share/emacs/site-lisp"
11504 "/guix.d/hindent-" ,version))
11505 (emacs (string-append (assoc-ref inputs "emacs")
11506 "/bin/emacs")))
11507 (make-file-writable elisp-file)
11508 (emacs-substitute-variables elisp-file
11509 ("hindent-process-path"
11510 (string-append out "/bin/hindent")))
11511 (install-file elisp-file dest)
11512 (emacs-generate-autoloads "hindent" dest)))))))
11513 (inputs
11514 `(("ghc-haskell-src-exts" ,ghc-haskell-src-exts)
11515 ("ghc-monad-loops" ,ghc-monad-loops)
11516 ("ghc-utf8-string" ,ghc-utf8-string)
11517 ("ghc-exceptions" ,ghc-exceptions)
11518 ("ghc-yaml" ,ghc-yaml)
11519 ("ghc-unix-compat" ,ghc-unix-compat)
11520 ("ghc-path" ,ghc-path)
11521 ("ghc-path-io" ,ghc-path-io)
11522 ("ghc-optparse-applicative" ,ghc-optparse-applicative)))
11523 (native-inputs
11524 `(("ghc-hspec" ,ghc-hspec)
11525 ("ghc-diff" ,ghc-diff)
11526 ("emacs" ,emacs-minimal)))
11527 (home-page
11528 "https://github.com/commercialhaskell/hindent")
11529 (synopsis "Extensible Haskell pretty printer")
11530 (description
11531 "This package provides automatic formatting for Haskell files. Both a
11532 library and an executable.")
11533 (license license:bsd-3)))
11534
11535 (define-public ghc-descriptive
11536 (package
11537 (name "ghc-descriptive")
11538 (version "0.9.5")
11539 (source
11540 (origin
11541 (method url-fetch)
11542 (uri (string-append
11543 "https://hackage.haskell.org/package/descriptive/descriptive-"
11544 version
11545 ".tar.gz"))
11546 (sha256
11547 (base32
11548 "0y5693zm2kvqjilybbmrcv1g6n6x2p6zjgi0k0axjw1sdhh1g237"))))
11549 (build-system haskell-build-system)
11550 (inputs
11551 `(("ghc-aeson" ,ghc-aeson)
11552 ("ghc-bifunctors" ,ghc-bifunctors)
11553 ("ghc-scientific" ,ghc-scientific)
11554 ("ghc-vector" ,ghc-vector)))
11555 (native-inputs
11556 `(("ghc-hunit" ,ghc-hunit)
11557 ("ghc-hspec" ,ghc-hspec)))
11558 (home-page
11559 "https://github.com/chrisdone/descriptive")
11560 (synopsis
11561 "Self-describing consumers/parsers: forms, cmd-line args, JSON, etc.")
11562 (description
11563 "This package provides datatypes and functions for creating consumers
11564 and parsers with useful semantics.")
11565 (license license:bsd-3)))
11566
11567 (define-public ghc-exactprint
11568 (package
11569 (name "ghc-exactprint")
11570 (version "0.5.6.1")
11571 (source
11572 (origin
11573 (method url-fetch)
11574 (uri (string-append
11575 "https://hackage.haskell.org/package/"
11576 "ghc-exactprint/ghc-exactprint-" version ".tar.gz"))
11577 (sha256
11578 (base32
11579 "141k6qiys0m0r4br7ikp4i546vs3xcil9cwglzcdfcbnb5nj1z87"))))
11580 (build-system haskell-build-system)
11581 (inputs
11582 `(("ghc-paths" ,ghc-paths)
11583 ("ghc-syb" ,ghc-syb)
11584 ("ghc-free" ,ghc-free)))
11585 (native-inputs
11586 `(("ghc-hunit" ,ghc-hunit)
11587 ("ghc-diff" ,ghc-diff)
11588 ("ghc-silently" ,ghc-silently)
11589 ("ghc-filemanip" ,ghc-filemanip)))
11590 (home-page
11591 "http://hackage.haskell.org/package/ghc-exactprint")
11592 (synopsis "ExactPrint for GHC")
11593 (description
11594 "Using the API Annotations available from GHC 7.10.2, this library
11595 provides a means to round-trip any code that can be compiled by GHC, currently
11596 excluding @file{.lhs} files.")
11597 (license license:bsd-3)))
11598
11599 (define-public ghc-microlens-mtl
11600 (package
11601 (name "ghc-microlens-mtl")
11602 (version "0.1.11.1")
11603 (source
11604 (origin
11605 (method url-fetch)
11606 (uri (string-append
11607 "https://hackage.haskell.org/package/microlens-mtl/microlens-mtl-"
11608 version
11609 ".tar.gz"))
11610 (sha256
11611 (base32
11612 "0l6z1gkzwcpv89bxf5vgfrjb6gq2pj7sjjc53nvi5b9alx34zryk"))))
11613 (build-system haskell-build-system)
11614 (inputs
11615 `(("ghc-microlens" ,ghc-microlens)
11616 ("ghc-transformers-compat" ,ghc-transformers-compat)))
11617 (home-page "https://github.com/monadfix/microlens")
11618 (synopsis
11619 "@code{microlens} support for Reader/Writer/State from mtl")
11620 (description
11621 "This package contains functions (like @code{view} or @code{+=}) which
11622 work on @code{MonadReader}, @code{MonadWriter}, and @code{MonadState} from the
11623 mtl package. This package is a part of the
11624 @uref{http://hackage.haskell.org/package/microlens, microlens} family; see the
11625 readme @uref{https://github.com/aelve/microlens#readme, on Github}.")
11626 (license license:bsd-3)))
11627
11628 (define-public ghc-microlens-ghc
11629 (package
11630 (name "ghc-microlens-ghc")
11631 (version "0.4.9.1")
11632 (source
11633 (origin
11634 (method url-fetch)
11635 (uri (string-append
11636 "https://hackage.haskell.org/package/microlens-ghc/microlens-ghc-"
11637 version
11638 ".tar.gz"))
11639 (sha256
11640 (base32
11641 "03iwgg8zww9irv59l70c8yy7vzxir1zf66y12210xk91k5hq6jrj"))))
11642 (build-system haskell-build-system)
11643 (inputs `(("ghc-microlens" ,ghc-microlens)))
11644 (home-page "https://github.com/monadfix/microlens")
11645 (synopsis "Use @code{microlens} with GHC libraries like @code{array}")
11646 (description "This library provides everything that @code{microlens}
11647 provides plus instances to make @code{each}, @code{at}, and @code{ix}
11648 usable with arrays, @code{ByteString}, and containers. This package is
11649 a part of the @uref{http://hackage.haskell.org/package/microlens,
11650 microlens} family; see the readme
11651 @uref{https://github.com/aelve/microlens#readme, on Github}.")
11652 (license license:bsd-3)))
11653
11654 (define-public ghc-microlens-platform
11655 (package
11656 (name "ghc-microlens-platform")
11657 (version "0.3.10")
11658 (source
11659 (origin
11660 (method url-fetch)
11661 (uri (string-append
11662 "https://hackage.haskell.org/package/"
11663 "microlens-platform/microlens-platform-" version ".tar.gz"))
11664 (sha256
11665 (base32
11666 "1d4nhmgf9jq0ixc7qhwm7aaw3xdr0nalw58d0ydsydgf02cyazwv"))))
11667 (build-system haskell-build-system)
11668 (inputs
11669 `(("ghc-hashable" ,ghc-hashable)
11670 ("ghc-microlens" ,ghc-microlens)
11671 ("ghc-microlens-ghc" ,ghc-microlens-ghc)
11672 ("ghc-microlens-mtl" ,ghc-microlens-mtl)
11673 ("ghc-microlens-th" ,ghc-microlens-th)
11674 ("ghc-unordered-containers" ,ghc-unordered-containers)
11675 ("ghc-vector" ,ghc-vector)))
11676 (home-page "https://github.com/monadfix/microlens")
11677 (synopsis "Feature-complete microlens")
11678 (description
11679 "This package exports a module which is the recommended starting point
11680 for using @uref{http://hackage.haskell.org/package/microlens, microlens} if
11681 you aren't trying to keep your dependencies minimal. By importing
11682 @code{Lens.Micro.Platform} you get all functions and instances from
11683 @uref{http://hackage.haskell.org/package/microlens, microlens},
11684 @uref{http://hackage.haskell.org/package/microlens-th, microlens-th},
11685 @uref{http://hackage.haskell.org/package/microlens-mtl, microlens-mtl},
11686 @uref{http://hackage.haskell.org/package/microlens-ghc, microlens-ghc}, as
11687 well as instances for @code{Vector}, @code{Text}, and @code{HashMap}. The
11688 minor and major versions of @code{microlens-platform} are incremented whenever
11689 the minor and major versions of any other @code{microlens} package are
11690 incremented, so you can depend on the exact version of
11691 @code{microlens-platform} without specifying the version of @code{microlens}
11692 you need. This package is a part of the
11693 @uref{http://hackage.haskell.org/package/microlens, microlens} family; see the
11694 readme @uref{https://github.com/aelve/microlens#readme, on Github}.")
11695 (license license:bsd-3)))
11696
11697 (define-public ghc-hasktags
11698 (package
11699 (name "ghc-hasktags")
11700 (version "0.71.2")
11701 (source
11702 (origin
11703 (method url-fetch)
11704 (uri (string-append
11705 "https://hackage.haskell.org/package/hasktags/hasktags-"
11706 version
11707 ".tar.gz"))
11708 (sha256
11709 (base32
11710 "1s2k9qrgy1jily96img2pmn7g35mwnnfiw6si3aw32jfhg5zsh1c"))))
11711 (build-system haskell-build-system)
11712 (inputs
11713 `(("ghc-system-filepath" ,ghc-system-filepath)
11714 ("ghc-optparse-applicative" ,ghc-optparse-applicative)))
11715 (native-inputs
11716 `(("ghc-json" ,ghc-json)
11717 ("ghc-utf8-string" ,ghc-utf8-string)
11718 ("ghc-microlens-platform" ,ghc-microlens-platform)
11719 ("ghc-hunit" ,ghc-hunit)))
11720 (home-page "http://github.com/MarcWeber/hasktags")
11721 (synopsis "Make @code{Ctags} and @code{Etags} files for Haskell programs")
11722 (description
11723 "This package provides a means of generating tag files for Emacs and
11724 Vim.")
11725 (license license:bsd-3)))
11726
11727 (define-public ghc-stylish-haskell
11728 (package
11729 (name "ghc-stylish-haskell")
11730 (version "0.9.2.1")
11731 (source
11732 (origin
11733 (method url-fetch)
11734 (uri (string-append
11735 "mirror://hackage/package/stylish-haskell/stylish-haskell-"
11736 version
11737 ".tar.gz"))
11738 (sha256
11739 (base32
11740 "1ls11fdx6snvfx8yykpidz142zzxwi5bazl49hgfqlwx50rqcp7w"))))
11741 (build-system haskell-build-system)
11742 (inputs
11743 `(("ghc-aeson" ,ghc-aeson)
11744 ("ghc-file-embed" ,ghc-file-embed)
11745 ("ghc-haskell-src-exts" ,ghc-haskell-src-exts)
11746 ("ghc-semigroups" ,ghc-semigroups)
11747 ("ghc-syb" ,ghc-syb)
11748 ("ghc-yaml" ,ghc-yaml)
11749 ("ghc-strict" ,ghc-strict)
11750 ("ghc-optparse-applicative"
11751 ,ghc-optparse-applicative)))
11752 (native-inputs
11753 `(("ghc-hunit" ,ghc-hunit)
11754 ("ghc-test-framework" ,ghc-test-framework)
11755 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)))
11756 (home-page "https://github.com/jaspervdj/stylish-haskell")
11757 (synopsis "Haskell code prettifier")
11758 (description "Stylish-haskell is a Haskell code prettifier. The goal is
11759 not to format all of the code in a file, to avoid \"getting in the way\".
11760 However, this tool can e.g. clean up import statements and help doing various
11761 tasks that get tedious very quickly. It can
11762 @itemize
11763 @item
11764 Align and sort @code{import} statements
11765 @item
11766 Group and wrap @code{{-# LANGUAGE #-}} pragmas, remove (some) redundant
11767 pragmas
11768 @item
11769 Remove trailing whitespaces
11770 @item
11771 Align branches in @code{case} and fields in records
11772 @item
11773 Convert line endings (customisable)
11774 @item
11775 Replace tabs by four spaces (turned off by default)
11776 @item
11777 Replace some ASCII sequences by their Unicode equivalent (turned off by
11778 default)
11779 @end itemize")
11780 (license license:bsd-3)))
11781
11782 (define-public ghc-validation
11783 (package
11784 (name "ghc-validation")
11785 (version "1")
11786 (source
11787 (origin
11788 (method url-fetch)
11789 (uri (string-append
11790 "mirror://hackage/package/validation/validation-"
11791 version
11792 ".tar.gz"))
11793 (sha256
11794 (base32
11795 "08drmdvyzg2frbb26icy1mlz52xv0l6gi3v8gb7xp0vrcci5libh"))))
11796 (build-system haskell-build-system)
11797 (arguments
11798 `(#:cabal-revision
11799 ("1" "1x1g4nannz81j1h64l1m3ancc96zc57d1bjhj1wk7bwn1xxbi5h3")))
11800 (inputs
11801 `(("ghc-semigroups" ,ghc-semigroups)
11802 ("ghc-semigroupoids" ,ghc-semigroupoids)
11803 ("ghc-bifunctors" ,ghc-bifunctors)
11804 ("ghc-lens" ,ghc-lens)))
11805 (native-inputs
11806 `(("ghc-hedgehog" ,ghc-hedgehog)
11807 ("ghc-hunit" ,ghc-hunit)))
11808 (home-page "https://github.com/qfpl/validation")
11809 (synopsis
11810 "Data-type like Either but with an accumulating Applicative")
11811 (description
11812 "A data-type like Either but with differing properties and type-class
11813 instances.
11814
11815 Library support is provided for this different representation, including
11816 @code{lens}-related functions for converting between each and abstracting over
11817 their similarities.
11818
11819 The @code{Validation} data type is isomorphic to @code{Either}, but has an
11820 instance of @code{Applicative} that accumulates on the error side. That is to
11821 say, if two (or more) errors are encountered, they are appended using a
11822 @{Semigroup} operation.
11823
11824 As a consequence of this @code{Applicative} instance, there is no
11825 corresponding @code{Bind} or @code{Monad} instance. @code{Validation} is an
11826 example of, \"An applicative functor that is not a monad.\"")
11827 (license license:bsd-3)))
11828
11829 (define-public ghc-concurrent-output
11830 (package
11831 (name "ghc-concurrent-output")
11832 (version "1.10.9")
11833 (source
11834 (origin
11835 (method url-fetch)
11836 (uri (string-append
11837 "mirror://hackage/package/concurrent-output/concurrent-output-"
11838 version
11839 ".tar.gz"))
11840 (sha256
11841 (base32
11842 "0mwf155w89nbbkjln7hhbn8k3f8p0ylcvgrg31cm7ijpx4499i4c"))))
11843 (build-system haskell-build-system)
11844 (inputs
11845 `(("ghc-async" ,ghc-async)
11846 ("ghc-exceptions" ,ghc-exceptions)
11847 ("ghc-ansi-terminal" ,ghc-ansi-terminal)
11848 ("ghc-terminal-size" ,ghc-terminal-size)))
11849 (home-page
11850 "https://hackage.haskell.org/package/concurrent-output")
11851 (synopsis
11852 "Ungarble output from several threads or commands")
11853 (description
11854 "Lets multiple threads and external processes concurrently output to the
11855 console, without it getting all garbled up.
11856
11857 Built on top of that is a way of defining multiple output regions, which are
11858 automatically laid out on the screen and can be individually updated by
11859 concurrent threads. Can be used for progress displays etc.")
11860 (license license:bsd-2)))
11861
11862 (define-public ghc-wl-pprint-annotated
11863 (package
11864 (name "ghc-wl-pprint-annotated")
11865 (version "0.1.0.1")
11866 (source
11867 (origin
11868 (method url-fetch)
11869 (uri (string-append
11870 "mirror://hackage/package/wl-pprint-annotated/wl-pprint-annotated-"
11871 version
11872 ".tar.gz"))
11873 (sha256
11874 (base32
11875 "1br7qyf27iza213inwhf9bm2k6in0zbmfw6w4clqlc9f9cj2nrkb"))))
11876 (build-system haskell-build-system)
11877 (native-inputs
11878 `(("ghc-tasty" ,ghc-tasty)
11879 ("ghc-tasty-hunit" ,ghc-tasty-hunit)))
11880 (home-page
11881 "https://github.com/minad/wl-pprint-annotated#readme")
11882 (synopsis
11883 "Wadler/Leijen pretty printer with annotation support")
11884 (description
11885 "Annotations are useful for coloring. This is a limited version of
11886 @code{wl-pprint-extras} without support for point effects and without the free
11887 monad. Like in @code{annotated-wl-pprint}, only annotations are supported.
11888 Compared to @code{annotated-wl-pprint} this library provides a slightly
11889 modernized interface.")
11890 (license license:bsd-3)))
11891 ;;; haskell.scm ends here