gnu: Add ghc-validation.
[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 gcc)
46 #:use-module (gnu packages ghostscript)
47 #:use-module (gnu packages gl)
48 #:use-module (gnu packages graphviz)
49 #:use-module (gnu packages gtk)
50 #:use-module (gnu packages haskell-check)
51 #:use-module (gnu packages haskell-crypto)
52 #:use-module (gnu packages haskell-web)
53 #:use-module (gnu packages libffi)
54 #:use-module (gnu packages linux)
55 #:use-module (gnu packages lisp)
56 #:use-module (gnu packages lua)
57 #:use-module (gnu packages maths)
58 #:use-module (gnu packages multiprecision)
59 #:use-module (gnu packages ncurses)
60 #:use-module (gnu packages pcre)
61 #:use-module (gnu packages perl)
62 #:use-module (gnu packages pkg-config)
63 #:use-module (gnu packages python)
64 #:use-module (gnu packages sdl)
65 #:use-module (gnu packages tls)
66 #:use-module (gnu packages xml)
67 #:use-module (gnu packages xorg)
68 #:use-module (guix build-system gnu)
69 #:use-module (guix build-system haskell)
70 #:use-module (guix download)
71 #:use-module (guix git-download)
72 #:use-module ((guix licenses) #:prefix license:)
73 #:use-module (guix packages)
74 #:use-module (guix utils)
75 #:use-module (ice-9 regex)
76 #:use-module ((srfi srfi-1) #:select (alist-delete)))
77
78 (define-public cl-yale-haskell
79 (let ((commit "85f94c72a16c5f70301dd8db04cde9de2d7dd270")
80 (revision "1"))
81 (package
82 (name "cl-yale-haskell")
83 (version (string-append "2.0.5-" revision "." (string-take commit 9)))
84 (source (origin
85 (method git-fetch)
86 (uri (git-reference
87 (url "https://git.elephly.net/software/yale-haskell.git")
88 (commit commit)))
89 (file-name (string-append "yale-haskell-" commit "-checkout"))
90 (sha256
91 (base32
92 "0bal3m6ryrjamz5p93bhs9rp5msk8k7lpcqr44wd7xs9b9k8w74g"))))
93 (build-system gnu-build-system)
94 (arguments
95 `(#:tests? #f ; no tests
96 ;; Stripping binaries leads to a broken executable lisp system image.
97 #:strip-binaries? #f
98 #:make-flags
99 (list (string-append "PREFIX=" (assoc-ref %outputs "out")))
100 #:phases
101 (modify-phases %standard-phases
102 (replace 'configure
103 (lambda _
104 (setenv "PRELUDE" "./progs/prelude")
105 (setenv "HASKELL_LIBRARY" "./progs/lib")
106 (setenv "PRELUDEBIN" "./progs/prelude/clisp")
107 (setenv "HASKELLPROG" "./bin/clisp-haskell")
108 #t)))))
109 (inputs
110 `(("clisp" ,clisp)))
111 (home-page "https://git.elephly.net/software/yale-haskell.git")
112 (synopsis "Port of the Yale Haskell system to CLISP")
113 (description "This package provides the Yale Haskell system running on
114 top of CLISP.")
115 (license license:bsd-4))))
116
117 (define ghc-bootstrap-x86_64-7.8.4
118 (origin
119 (method url-fetch)
120 (uri
121 "https://www.haskell.org/ghc/dist/7.8.4/ghc-7.8.4-x86_64-unknown-linux-deb7.tar.xz")
122 (sha256
123 (base32
124 "13azsl53xgj20mi1hj9x0xb32vvcvs6cpmvwx6znxhas7blh0bpn"))))
125
126 (define ghc-bootstrap-i686-7.8.4
127 (origin
128 (method url-fetch)
129 (uri
130 "https://www.haskell.org/ghc/dist/7.8.4/ghc-7.8.4-i386-unknown-linux-deb7.tar.xz")
131 (sha256
132 (base32
133 "0wj5s435j0zgww70bj1d3f6wvnnpzlxwvwcyh2qv4qjq5z8j64kg"))))
134
135 ;; 43 tests out of 3965 fail.
136 ;;
137 ;; Most of them do not appear to be serious:
138 ;;
139 ;; - some tests generate files referring to "/bin/sh" and "/bin/ls". I've not
140 ;; figured out how these references are generated.
141 ;;
142 ;; - Some tests allocate more memory than expected (ca. 3% above upper limit)
143 ;;
144 ;; - Some tests try to load unavailable libriries: Control.Concurrent.STM,
145 ;; Data.Vector, Control.Monad.State.
146 ;;
147 ;; - Test posix010 tries to check the existence of a user on the system:
148 ;; getUserEntryForName: does not exist (no such user)
149 (define-public ghc-7
150 (package
151 (name "ghc")
152 (version "7.10.2")
153 (source
154 (origin
155 (method url-fetch)
156 (uri (string-append "https://www.haskell.org/ghc/dist/"
157 version "/" name "-" version "-src.tar.xz"))
158 (sha256
159 (base32
160 "1x8m4rp2v7ydnrz6z9g8x7z3x3d3pxhv2pixy7i7hkbqbdsp7kal"))))
161 (build-system gnu-build-system)
162 (supported-systems '("i686-linux" "x86_64-linux"))
163 (outputs '("out" "doc"))
164 (inputs
165 `(("gmp" ,gmp)
166 ("ncurses" ,ncurses)
167 ("libffi" ,libffi)
168 ("ghc-testsuite"
169 ,(origin
170 (method url-fetch)
171 (uri (string-append
172 "https://www.haskell.org/ghc/dist/"
173 version "/" name "-" version "-testsuite.tar.xz"))
174 (sha256
175 (base32
176 "0qp9da9ar87zbyn6wjgacd2ic1vgzbi3cklxnhsmjqyafv9qaj4b"))))))
177 (native-inputs
178 `(("perl" ,perl)
179 ("python" ,python-2) ; for tests (fails with python-3)
180 ("ghostscript" ,ghostscript) ; for tests
181 ("patchelf" ,patchelf)
182 ;; GHC is built with GHC. Therefore we need bootstrap binaries.
183 ("ghc-binary"
184 ,(if (string-match "x86_64" (or (%current-target-system) (%current-system)))
185 ghc-bootstrap-x86_64-7.8.4
186 ghc-bootstrap-i686-7.8.4))))
187 (arguments
188 `(#:test-target "test"
189 ;; We get a smaller number of test failures by disabling parallel test
190 ;; execution.
191 #:parallel-tests? #f
192
193 ;; The DSOs use $ORIGIN to refer to each other, but (guix build
194 ;; gremlin) doesn't support it yet, so skip this phase.
195 #:validate-runpath? #f
196
197 ;; Don't pass --build=<triplet>, because the configure script
198 ;; auto-detects slightly different triplets for --host and --target and
199 ;; then complains that they don't match.
200 #:build #f
201
202 #:modules ((guix build gnu-build-system)
203 (guix build utils)
204 (guix build rpath)
205 (srfi srfi-26)
206 (srfi srfi-1))
207 #:imported-modules (,@%gnu-build-system-modules
208 (guix build rpath))
209 #:configure-flags
210 (list
211 (string-append "--with-gmp-libraries="
212 (assoc-ref %build-inputs "gmp") "/lib")
213 (string-append "--with-gmp-includes="
214 (assoc-ref %build-inputs "gmp") "/include")
215 "--with-system-libffi"
216 (string-append "--with-ffi-libraries="
217 (assoc-ref %build-inputs "libffi") "/lib")
218 (string-append "--with-ffi-includes="
219 (assoc-ref %build-inputs "libffi") "/include"))
220 ;; FIXME: The user-guide needs dblatex, docbook-xsl and docbook-utils.
221 ;; Currently we do not have the last one.
222 ;; #:make-flags
223 ;; (list "BUILD_DOCBOOK_HTML = YES")
224 #:phases
225 (let* ((ghc-bootstrap-path
226 (string-append (getcwd) "/" ,name "-" ,version "/ghc-bin"))
227 (ghc-bootstrap-prefix
228 (string-append ghc-bootstrap-path "/usr" )))
229 (alist-cons-after
230 'unpack-bin 'unpack-testsuite-and-fix-bins
231 (lambda* (#:key inputs outputs #:allow-other-keys)
232 (with-directory-excursion ".."
233 (copy-file (assoc-ref inputs "ghc-testsuite")
234 "ghc-testsuite.tar.xz")
235 (system* "tar" "xvf" "ghc-testsuite.tar.xz"))
236 (substitute*
237 (list "testsuite/timeout/Makefile"
238 "testsuite/timeout/timeout.py"
239 "testsuite/timeout/timeout.hs"
240 "testsuite/tests/rename/prog006/Setup.lhs"
241 "testsuite/tests/programs/life_space_leak/life.test"
242 "libraries/process/System/Process/Internals.hs"
243 "libraries/unix/cbits/execvpe.c")
244 (("/bin/sh") (which "sh"))
245 (("/bin/rm") "rm"))
246 #t)
247 (alist-cons-after
248 'unpack 'unpack-bin
249 (lambda* (#:key inputs outputs #:allow-other-keys)
250 (mkdir-p ghc-bootstrap-prefix)
251 (with-directory-excursion ghc-bootstrap-path
252 (copy-file (assoc-ref inputs "ghc-binary")
253 "ghc-bin.tar.xz")
254 (zero? (system* "tar" "xvf" "ghc-bin.tar.xz"))))
255 (alist-cons-before
256 'install-bin 'configure-bin
257 (lambda* (#:key inputs outputs #:allow-other-keys)
258 (let* ((binaries
259 (list
260 "./utils/ghc-pwd/dist-install/build/tmp/ghc-pwd"
261 "./utils/hpc/dist-install/build/tmp/hpc"
262 "./utils/haddock/dist/build/tmp/haddock"
263 "./utils/hsc2hs/dist-install/build/tmp/hsc2hs"
264 "./utils/runghc/dist-install/build/tmp/runghc"
265 "./utils/ghc-cabal/dist-install/build/tmp/ghc-cabal"
266 "./utils/hp2ps/dist/build/tmp/hp2ps"
267 "./utils/ghc-pkg/dist-install/build/tmp/ghc-pkg"
268 "./utils/unlit/dist/build/tmp/unlit"
269 "./ghc/stage2/build/tmp/ghc-stage2"))
270 (gmp (assoc-ref inputs "gmp"))
271 (gmp-lib (string-append gmp "/lib"))
272 (gmp-include (string-append gmp "/include"))
273 (ncurses-lib
274 (string-append (assoc-ref inputs "ncurses") "/lib"))
275 (ld-so (string-append (assoc-ref inputs "libc")
276 ,(glibc-dynamic-linker)))
277 (libtinfo-dir
278 (string-append ghc-bootstrap-prefix
279 "/lib/ghc-7.8.4/terminfo-0.4.0.0")))
280 (with-directory-excursion
281 (string-append ghc-bootstrap-path "/ghc-7.8.4")
282 (setenv "CONFIG_SHELL" (which "bash"))
283 (setenv "LD_LIBRARY_PATH" gmp-lib)
284 ;; The binaries have "/lib64/ld-linux-x86-64.so.2" hardcoded.
285 (for-each
286 (cut system* "patchelf" "--set-interpreter" ld-so <>)
287 binaries)
288 ;; The binaries include a reference to libtinfo.so.5 which
289 ;; is a subset of libncurses.so.5. We create a symlink in a
290 ;; directory included in the bootstrap binaries rpath.
291 (mkdir-p libtinfo-dir)
292 (symlink
293 (string-append ncurses-lib "/libncursesw.so."
294 ;; Extract "6.0" from "6.0-20170930" if a
295 ;; dash-separated version tag exists.
296 ,(let* ((v (package-version ncurses))
297 (d (or (string-index v #\-)
298 (string-length v))))
299 (version-major+minor (string-take v d))))
300 (string-append libtinfo-dir "/libtinfo.so.5"))
301
302 (setenv "PATH"
303 (string-append (getenv "PATH") ":"
304 ghc-bootstrap-prefix "/bin"))
305 (system*
306 (string-append (getcwd) "/configure")
307 (string-append "--prefix=" ghc-bootstrap-prefix)
308 (string-append "--with-gmp-libraries=" gmp-lib)
309 (string-append "--with-gmp-includes=" gmp-include)))))
310 (alist-cons-before
311 'configure 'install-bin
312 (lambda* (#:key inputs outputs #:allow-other-keys)
313 (with-directory-excursion
314 (string-append ghc-bootstrap-path "/ghc-7.8.4")
315 (zero? (system* "make" "install"))))
316 %standard-phases)))))))
317 (native-search-paths (list (search-path-specification
318 (variable "GHC_PACKAGE_PATH")
319 (files (list
320 (string-append "lib/ghc-" version)))
321 (file-pattern ".*\\.conf\\.d$")
322 (file-type 'directory))))
323 (home-page "https://www.haskell.org/ghc")
324 (synopsis "The Glasgow Haskell Compiler")
325 (description
326 "The Glasgow Haskell Compiler (GHC) is a state-of-the-art compiler and
327 interactive environment for the functional language Haskell.")
328 (license license:bsd-3)))
329
330 (define-public ghc-8.0
331 (package
332 (name "ghc")
333 (version "8.0.2")
334 (source
335 (origin
336 (method url-fetch)
337 (uri (string-append "https://www.haskell.org/ghc/dist/"
338 version "/" name "-" version "-src.tar.xz"))
339 (sha256
340 (base32 "1c8qc4fhkycynk4g1f9hvk53dj6a1vvqi6bklqznns6hw59m8qhi"))
341 (patches
342 (search-patches
343 "ghc-dont-pass-linker-flags-via-response-files.patch"
344 "ghc-8.0-fall-back-to-madv_dontneed.patch"))))
345 (build-system gnu-build-system)
346 (supported-systems '("i686-linux" "x86_64-linux"))
347 (outputs '("out" "doc"))
348 (inputs
349 `(("gmp" ,gmp)
350 ("ncurses" ,ncurses)
351 ("libffi" ,libffi)
352 ("ghc-testsuite"
353 ,(origin
354 (method url-fetch)
355 (uri (string-append
356 "https://www.haskell.org/ghc/dist/"
357 version "/" name "-" version "-testsuite.tar.xz"))
358 (sha256
359 (base32 "1wjc3x68l305bl1h1ijd3yhqp2vqj83lkp3kqbr94qmmkqlms8sj"))))))
360 (native-inputs
361 `(("perl" ,perl)
362 ("python" ,python-2) ; for tests
363 ("ghostscript" ,ghostscript) ; for tests
364 ;; GHC is built with GHC.
365 ("ghc-bootstrap" ,ghc-7)))
366 (arguments
367 `(#:test-target "test"
368 ;; We get a smaller number of test failures by disabling parallel test
369 ;; execution.
370 #:parallel-tests? #f
371
372 ;; The DSOs use $ORIGIN to refer to each other, but (guix build
373 ;; gremlin) doesn't support it yet, so skip this phase.
374 #:validate-runpath? #f
375
376 ;; Don't pass --build=<triplet>, because the configure script
377 ;; auto-detects slightly different triplets for --host and --target and
378 ;; then complains that they don't match.
379 #:build #f
380
381 #:configure-flags
382 (list
383 (string-append "--with-gmp-libraries="
384 (assoc-ref %build-inputs "gmp") "/lib")
385 (string-append "--with-gmp-includes="
386 (assoc-ref %build-inputs "gmp") "/include")
387 "--with-system-libffi"
388 (string-append "--with-ffi-libraries="
389 (assoc-ref %build-inputs "libffi") "/lib")
390 (string-append "--with-ffi-includes="
391 (assoc-ref %build-inputs "libffi") "/include")
392 (string-append "--with-curses-libraries="
393 (assoc-ref %build-inputs "ncurses") "/lib")
394 (string-append "--with-curses-includes="
395 (assoc-ref %build-inputs "ncurses") "/include"))
396 #:phases
397 (modify-phases %standard-phases
398 (add-after 'unpack 'unpack-testsuite
399 (lambda* (#:key inputs #:allow-other-keys)
400 (with-directory-excursion ".."
401 (copy-file (assoc-ref inputs "ghc-testsuite")
402 "ghc-testsuite.tar.xz")
403 (zero? (system* "tar" "xvf" "ghc-testsuite.tar.xz")))))
404 (add-before 'build 'fix-lib-paths
405 (lambda _
406 (substitute*
407 (list "libraries/process/System/Process/Posix.hs"
408 "libraries/process/tests/process001.hs"
409 "libraries/process/tests/process002.hs"
410 "libraries/unix/cbits/execvpe.c")
411 (("/bin/sh") (which "sh"))
412 (("/bin/ls") (which "ls")))
413 #t))
414 (add-before 'build 'fix-environment
415 (lambda _
416 (unsetenv "GHC_PACKAGE_PATH")
417 (setenv "CONFIG_SHELL" (which "bash"))
418 #t))
419 (add-before 'check 'fix-testsuite
420 (lambda _
421 (substitute*
422 (list "testsuite/timeout/Makefile"
423 "testsuite/timeout/timeout.py"
424 "testsuite/timeout/timeout.hs"
425 "testsuite/tests/programs/life_space_leak/life.test")
426 (("/bin/sh") (which "sh"))
427 (("/bin/rm") "rm"))
428 #t)))))
429 (native-search-paths (list (search-path-specification
430 (variable "GHC_PACKAGE_PATH")
431 (files (list
432 (string-append "lib/ghc-" version)))
433 (file-pattern ".*\\.conf\\.d$")
434 (file-type 'directory))))
435 (home-page "https://www.haskell.org/ghc")
436 (synopsis "The Glasgow Haskell Compiler")
437 (description
438 "The Glasgow Haskell Compiler (GHC) is a state-of-the-art compiler and
439 interactive environment for the functional language Haskell.")
440 (license license:bsd-3)))
441
442 (define-public ghc-8
443 (package (inherit ghc-8.0)
444 (name "ghc")
445 (version "8.4.3")
446 (source
447 (origin
448 (method url-fetch)
449 (uri (string-append "https://www.haskell.org/ghc/dist/"
450 version "/" name "-" version "-src.tar.xz"))
451 (sha256
452 (base32 "1mk046vb561j75saz05rghhbkps46ym5aci4264dwc2qk3dayixf"))))
453 (inputs
454 `(("gmp" ,gmp)
455 ("ncurses" ,ncurses)
456 ("libffi" ,libffi)
457 ("target-binutils" ,binutils)
458 ("target-gcc" ,gcc)
459 ("target-ld-wrapper" ,(make-ld-wrapper "ld-wrapper"
460 #:binutils binutils))))
461 (native-inputs
462 `(("perl" ,perl)
463 ("python" ,python) ; for tests
464 ("ghostscript" ,ghostscript) ; for tests
465 ;; GHC 8.4.3 is built with GHC 8.
466 ("ghc-bootstrap" ,ghc-8.0)
467 ("ghc-testsuite"
468 ,(origin
469 (method url-fetch)
470 (uri (string-append
471 "https://www.haskell.org/ghc/dist/"
472 version "/" name "-" version "-testsuite.tar.xz"))
473 (sha256
474 (base32
475 "1z55b1z0m3plqd2d1ks6w5wvx7igm7zsk3i4v7cms003z0as0hzz"))))))
476 (arguments
477 `(#:test-target "test"
478 ;; We get a smaller number of test failures by disabling parallel test
479 ;; execution.
480 #:parallel-tests? #f
481
482 ;; The DSOs use $ORIGIN to refer to each other, but (guix build
483 ;; gremlin) doesn't support it yet, so skip this phase.
484 #:validate-runpath? #f
485
486 ;; Don't pass --build=<triplet>, because the configure script
487 ;; auto-detects slightly different triplets for --host and --target and
488 ;; then complains that they don't match.
489 #:build #f
490
491 #:configure-flags
492 (list
493 (string-append "--with-gmp-libraries="
494 (assoc-ref %build-inputs "gmp") "/lib")
495 (string-append "--with-gmp-includes="
496 (assoc-ref %build-inputs "gmp") "/include")
497 "--with-system-libffi"
498 (string-append "--with-ffi-libraries="
499 (assoc-ref %build-inputs "libffi") "/lib")
500 (string-append "--with-ffi-includes="
501 (assoc-ref %build-inputs "libffi") "/include")
502 (string-append "--with-curses-libraries="
503 (assoc-ref %build-inputs "ncurses") "/lib")
504 (string-append "--with-curses-includes="
505 (assoc-ref %build-inputs "ncurses") "/include"))
506 #:phases
507 (modify-phases %standard-phases
508 (add-after 'unpack 'unpack-testsuite
509 (lambda* (#:key inputs #:allow-other-keys)
510 (invoke "tar" "xvf"
511 (assoc-ref inputs "ghc-testsuite")
512 "--strip-components=1")
513 #t))
514 ;; This phase patches the 'ghc-pkg' command so that it sorts the list
515 ;; of packages in the binary cache it generates.
516 (add-before 'build 'fix-ghc-pkg-nondeterminism
517 (lambda _
518 (substitute* "utils/ghc-pkg/Main.hs"
519 (("confs = map \\(path </>\\) \\$ filter \\(\".conf\" `isSuffixOf`\\) fs")
520 "confs = map (path </>) $ filter (\".conf\" `isSuffixOf`) (sort fs)"))
521 #t))
522 (add-after 'unpack-testsuite 'fix-shell-wrappers
523 (lambda _
524 (substitute* '("driver/ghci/ghc.mk"
525 "utils/mkdirhier/ghc.mk"
526 "rules/shell-wrapper.mk")
527 (("echo '#!/bin/sh'")
528 (format #f "echo '#!~a'" (which "sh"))))
529 #t))
530 ;; This is necessary because the configure system no longer uses
531 ;; “AC_PATH_” but “AC_CHECK_”, setting the variables to just the
532 ;; plain command names.
533 (add-before 'configure 'set-target-programs
534 (lambda* (#:key inputs #:allow-other-keys)
535 (let ((binutils (assoc-ref inputs "target-binutils"))
536 (gcc (assoc-ref inputs "target-gcc"))
537 (ld-wrapper (assoc-ref inputs "target-ld-wrapper")))
538 (setenv "CC" (string-append gcc "/bin/gcc"))
539 (setenv "CXX" (string-append gcc "/bin/g++"))
540 (setenv "LD" (string-append ld-wrapper "/bin/ld"))
541 (setenv "NM" (string-append binutils "/bin/nm"))
542 (setenv "RANLIB" (string-append binutils "/bin/ranlib"))
543 (setenv "STRIP" (string-append binutils "/bin/strip"))
544 ;; The 'ar' command does not follow the same pattern.
545 (setenv "fp_prog_ar" (string-append binutils "/bin/ar"))
546 #t)))
547 (add-before 'build 'fix-references
548 (lambda _
549 (substitute* '("testsuite/timeout/Makefile"
550 "testsuite/timeout/timeout.py"
551 "testsuite/timeout/timeout.hs"
552 "testsuite/tests/programs/life_space_leak/life.test"
553 ;; libraries
554 "libraries/process/System/Process/Posix.hs"
555 "libraries/process/tests/process001.hs"
556 "libraries/process/tests/process002.hs"
557 "libraries/unix/cbits/execvpe.c")
558 (("/bin/sh") (which "sh"))
559 (("/bin/ls") (which "ls"))
560 (("/bin/rm") "rm"))
561 #t))
562 (add-before 'build 'fix-environment
563 (lambda _
564 (unsetenv "GHC_PACKAGE_PATH")
565 (setenv "CONFIG_SHELL" (which "bash"))
566 #t)))))
567 (native-search-paths (list (search-path-specification
568 (variable "GHC_PACKAGE_PATH")
569 (files (list
570 (string-append "lib/ghc-" version)))
571 (file-pattern ".*\\.conf\\.d$")
572 (file-type 'directory))))))
573
574 (define-public ghc ghc-8)
575
576 (define-public ghc-hostname
577 (package
578 (name "ghc-hostname")
579 (version "1.0")
580 (source
581 (origin
582 (method url-fetch)
583 (uri (string-append "https://hackage.haskell.org/package/hostname/"
584 "hostname-" version ".tar.gz"))
585 (sha256
586 (base32
587 "0p6gm4328946qxc295zb6vhwhf07l1fma82vd0siylnsnsqxlhwv"))))
588 (build-system haskell-build-system)
589 (home-page "https://hackage.haskell.org/package/hostname")
590 (synopsis "Hostname in Haskell")
591 (description "Network.HostName is a simple package providing a means to
592 determine the hostname.")
593 (license license:bsd-3)))
594
595 (define-public ghc-convertible
596 (package
597 (name "ghc-convertible")
598 (version "1.1.1.0")
599 (source
600 (origin
601 (method url-fetch)
602 (uri (string-append "https://hackage.haskell.org/package/convertible/"
603 "convertible-" version ".tar.gz"))
604 (sha256
605 (base32
606 "0v18ap1mccnndgxmbfgyjdicg8jlss01bd5fq8a576dr0h4sgyg9"))))
607 (build-system haskell-build-system)
608 (inputs
609 `(("ghc-old-time" ,ghc-old-time)
610 ("ghc-old-locale" ,ghc-old-locale)
611 ("ghc-text" ,ghc-text)))
612 (home-page "https://hackage.haskell.org/package/convertible")
613 (synopsis "Typeclasses and instances for converting between types")
614 (description
615 "This package provides a typeclass with a single function that is
616 designed to help convert between different types: numeric values, dates and
617 times, and the like. The conversions perform bounds checking and return a
618 pure @code{Either} value. This means that you need not remember which specific
619 function performs the conversion you desire.")
620 (license license:bsd-3)))
621
622 (define-public ghc-double-conversion
623 (package
624 (name "ghc-double-conversion")
625 (version "2.0.2.0")
626 (source
627 (origin
628 (method url-fetch)
629 (uri (string-append "https://hackage.haskell.org/package/"
630 "double-conversion/double-conversion-"
631 version ".tar.gz"))
632 (sha256
633 (base32
634 "0sx2kc1gw72mjvd8vph8bbjw5whfxfv92rsdhjg1c0al75rf3ka4"))))
635 (build-system haskell-build-system)
636 (inputs `(("ghc-text" ,ghc-text)))
637 (native-inputs
638 `(("ghc-hunit" ,ghc-hunit)
639 ("ghc-test-framework" ,ghc-test-framework)
640 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
641 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
642 (home-page "https://github.com/bos/double-conversion")
643 (synopsis "Fast conversion between double precision floating point and text")
644 (description
645 "This package provides a library that performs fast, accurate conversion
646 between double precision floating point and text.")
647 (license license:bsd-3)))
648
649 (define-public ghc-libxml
650 (package
651 (name "ghc-libxml")
652 (version "0.1.1")
653 (source
654 (origin
655 (method url-fetch)
656 (uri (string-append "https://hackage.haskell.org/package/libxml/"
657 "libxml-" version ".tar.gz"))
658 (sha256
659 (base32
660 "01zvk86kg726lf2vnlr7dxiz7g3xwi5a4ak9gcfbwyhynkzjmsfi"))))
661 (build-system haskell-build-system)
662 (inputs
663 `(("libxml2" ,libxml2)))
664 (arguments
665 `(#:configure-flags
666 `(,(string-append "--extra-include-dirs="
667 (assoc-ref %build-inputs "libxml2")
668 "/include/libxml2"))))
669 (home-page "https://hackage.haskell.org/package/libxml")
670 (synopsis "Haskell bindings to libxml2")
671 (description
672 "This library provides minimal Haskell binding to libxml2.")
673 (license license:bsd-3)))
674
675 (define-public ghc-prelude-extras
676 (package
677 (name "ghc-prelude-extras")
678 (version "0.4.0.3")
679 (source
680 (origin
681 (method url-fetch)
682 (uri (string-append
683 "https://hackage.haskell.org/package/prelude-extras/prelude-extras-"
684 version
685 ".tar.gz"))
686 (sha256
687 (base32
688 "0xzqdf3nl2h0ra4gnslm1m1nsxlsgc0hh6ky3vn578vh11zhifq9"))))
689 (build-system haskell-build-system)
690 (home-page "https://github.com/ekmett/prelude-extras")
691 (synopsis "Higher order versions of Prelude classes")
692 (description "This library provides higher order versions of
693 @code{Prelude} classes to ease programming with polymorphic recursion and
694 reduce @code{UndecidableInstances}.")
695 (license license:bsd-3)))
696
697 (define-public ghc-data-default
698 (package
699 (name "ghc-data-default")
700 (version "0.7.1.1")
701 (source
702 (origin
703 (method url-fetch)
704 (uri (string-append
705 "https://hackage.haskell.org/package/data-default/data-default-"
706 version
707 ".tar.gz"))
708 (sha256
709 (base32 "04d5n8ybmcxba9qb6h389w9zfq1lvj81b82jh6maqp6pkhkmvydh"))))
710 (build-system haskell-build-system)
711 (inputs
712 `(("ghc-data-default-class"
713 ,ghc-data-default-class)
714 ("ghc-data-default-instances-base"
715 ,ghc-data-default-instances-base)
716 ("ghc-data-default-instances-containers"
717 ,ghc-data-default-instances-containers)
718 ("ghc-data-default-instances-dlist"
719 ,ghc-data-default-instances-dlist)
720 ("ghc-data-default-instances-old-locale"
721 ,ghc-data-default-instances-old-locale)))
722 (home-page "https://hackage.haskell.org/package/data-default")
723 (synopsis "Types with default values")
724 (description
725 "This package defines a class for types with a default value, and
726 provides instances for types from the base, containers, dlist and old-locale
727 packages.")
728 (license license:bsd-3)))
729
730 (define-public ghc-data-default-class
731 (package
732 (name "ghc-data-default-class")
733 (version "0.1.2.0")
734 (source
735 (origin
736 (method url-fetch)
737 (uri (string-append
738 "https://hackage.haskell.org/package/data-default-class/"
739 "data-default-class-" version ".tar.gz"))
740 (sha256
741 (base32 "0miyjz8d4jyvqf2vp60lyfbnflx6cj2k8apmm9ly1hq0y0iv80ag"))))
742 (build-system haskell-build-system)
743 (home-page "https://hackage.haskell.org/package/data-default-class")
744 (synopsis "Types with default values")
745 (description
746 "This package defines a class for types with default values.")
747 (license license:bsd-3)))
748
749 (define-public ghc-data-default-instances-base
750 (package
751 (name "ghc-data-default-instances-base")
752 (version "0.1.0.1")
753 (source
754 (origin
755 (method url-fetch)
756 (uri (string-append
757 "https://hackage.haskell.org/package/"
758 "data-default-instances-base/"
759 "data-default-instances-base-" version ".tar.gz"))
760 (sha256
761 (base32 "0ym1sw3ssdzzifxxhh76qlv8kkmb2iclc158incv1dklyr9y8kw4"))))
762 (build-system haskell-build-system)
763 (inputs
764 `(("ghc-data-default-class" ,ghc-data-default-class)))
765 (home-page "https://hackage.haskell.org/package/data-default-instances-base")
766 (synopsis "Default instances for types in base")
767 (description
768 "This package provides default instances for types from the base
769 package.")
770 (license license:bsd-3)))
771
772 (define-public ghc-data-default-instances-containers
773 (package
774 (name "ghc-data-default-instances-containers")
775 (version "0.0.1")
776 (source
777 (origin
778 (method url-fetch)
779 (uri (string-append
780 "https://hackage.haskell.org/package/"
781 "data-default-instances-containers/"
782 "data-default-instances-containers-" version ".tar.gz"))
783 (sha256
784 (base32 "06h8xka031w752a7cjlzghvr8adqbl95xj9z5zc1b62w02phfpm5"))))
785 (build-system haskell-build-system)
786 (inputs
787 `(("ghc-data-default-class" ,ghc-data-default-class)))
788 (home-page "https://hackage.haskell.org/package/data-default-instances-containers")
789 (synopsis "Default instances for types in containers")
790 (description "Provides default instances for types from the containers
791 package.")
792 (license license:bsd-3)))
793
794 (define-public ghc-data-default-instances-dlist
795 (package
796 (name "ghc-data-default-instances-dlist")
797 (version "0.0.1")
798 (source
799 (origin
800 (method url-fetch)
801 (uri (string-append
802 "https://hackage.haskell.org/package/"
803 "data-default-instances-dlist/"
804 "data-default-instances-dlist-" version ".tar.gz"))
805 (sha256
806 (base32 "0narkdqiprhgayjiawrr4390h4rq4pl2pb6mvixbv2phrc8kfs3x"))))
807 (build-system haskell-build-system)
808 (inputs
809 `(("ghc-data-default-class" ,ghc-data-default-class)
810 ("ghc-dlist" ,ghc-dlist)))
811 (home-page "https://hackage.haskell.org/package/data-default-instances-dlist")
812 (synopsis "Default instances for types in dlist")
813 (description "Provides default instances for types from the dlist
814 package.")
815 (license license:bsd-3)))
816
817 (define-public ghc-code-page
818 (package
819 (name "ghc-code-page")
820 (version "0.1.3")
821 (source
822 (origin
823 (method url-fetch)
824 (uri (string-append
825 "https://hackage.haskell.org/package/code-page/code-page-"
826 version ".tar.gz"))
827 (sha256
828 (base32
829 "1491frk4jx6dlhifky9dvcxbsbcfssrz979a5hp5zn061rh8cp76"))))
830 (build-system haskell-build-system)
831 (home-page "https://github.com/RyanGlScott/code-page")
832 (synopsis "Windows code page library for Haskell")
833 (description "A cross-platform library with functions for adjusting
834 code pages on Windows. On all other operating systems, the library does
835 nothing.")
836 (license license:bsd-3)))
837
838 (define-public ghc-libffi
839 (package
840 (name "ghc-libffi")
841 (version "0.1")
842 (source
843 (origin
844 (method url-fetch)
845 (uri (string-append "https://hackage.haskell.org/package/"
846 "libffi/libffi-" version ".tar.gz"))
847 (sha256
848 (base32
849 "0g7jnhng3j7z5517aaqga0144aamibsbpgm3yynwyfzkq1kp0f28"))))
850 (build-system haskell-build-system)
851 (native-inputs `(("pkg-config" ,pkg-config)))
852 (inputs `(("libffi" ,libffi)))
853 (home-page "http://hackage.haskell.org/package/libffi")
854 (synopsis "Haskell binding to libffi")
855 (description
856 "A binding to libffi, allowing C functions of types only known at runtime
857 to be called from Haskell.")
858 (license license:bsd-3)))
859
860 (define-public ghc-newtype-generics
861 (package
862 (name "ghc-newtype-generics")
863 (version "0.5.3")
864 (source
865 (origin
866 (method url-fetch)
867 (uri (string-append "https://hackage.haskell.org/package/"
868 "newtype-generics/newtype-generics-"
869 version ".tar.gz"))
870 (sha256
871 (base32
872 "0igyisw2djg19v9vkna1rwf47k97mvkvk4bbkmswznvbm00z15gj"))))
873 (build-system haskell-build-system)
874 (native-inputs
875 `(("ghc-hspec" ,ghc-hspec)
876 ("hspec-discover" ,hspec-discover)))
877 (home-page "http://github.com/sjakobi/newtype-generics")
878 (synopsis "Typeclass and set of functions for working with newtypes")
879 (description "The @code{Newtype} typeclass represents the packing and
880 unpacking of a newtype, and allows you to operate under that newtype with
881 functions such as @code{ala}. Generics support was added in version 0.4,
882 making this package a full replacement for the original newtype package,
883 and an alternative to newtype-th.")
884 (license license:bsd-3)))
885
886 (define-public ghc-memotrie
887 (package
888 (name "ghc-memotrie")
889 (version "0.6.9")
890 (source
891 (origin
892 (method url-fetch)
893 (uri (string-append
894 "https://hackage.haskell.org/package/MemoTrie/MemoTrie-"
895 version
896 ".tar.gz"))
897 (sha256
898 (base32
899 "157p0pi6rrq74a35mq6zkkycv4ah7xhkbrcmnkb9xf7pznw4aq0x"))))
900 (build-system haskell-build-system)
901 (inputs
902 `(("ghc-newtype-generics" ,ghc-newtype-generics)))
903 (home-page "https://github.com/conal/MemoTrie")
904 (synopsis "Trie-based memo functions")
905 (description "This package provides a functional library for creating
906 efficient memo functions using tries.")
907 (license license:bsd-3)))
908
909 (define-public ghc-tree-diff
910 (package
911 (name "ghc-tree-diff")
912 (version "0.0.1")
913 (source
914 (origin
915 (method url-fetch)
916 (uri (string-append
917 "https://hackage.haskell.org/package/tree-diff/tree-diff-"
918 version
919 ".tar.gz"))
920 (sha256
921 (base32
922 "049v44c520jy3icxlnrvbdblh3mjmvd7m6qmkzxbzkf02x63xqmz"))))
923 (build-system haskell-build-system)
924 (arguments
925 `(#:cabal-revision
926 ("4" "1rqxxyj6hqllahs11693g855cxz8mgnb490s7j1ksd300i5xgjsp")
927 #:phases
928 (modify-phases %standard-phases
929 (add-before 'configure 'update-constraints
930 (lambda _
931 (substitute* "tree-diff.cabal"
932 (("trifecta >=1\\.7\\.1\\.1 && <1\\.8")
933 "trifecta >=1.7.1.1 && <=2")))))))
934 (inputs
935 `(("ghc-aeson" ,ghc-aeson)
936 ("ghc-ansi-wl-pprint" ,ghc-ansi-wl-pprint)
937 ("ghc-ansi-terminal" ,ghc-ansi-terminal)
938 ("ghc-base-compat" ,ghc-base-compat)
939 ("ghc-generics-sop" ,ghc-generics-sop)
940 ("ghc-hashable" ,ghc-hashable)
941 ("ghc-memotrie" ,ghc-memotrie)
942 ("ghc-parsec" ,ghc-parsec)
943 ("ghc-parsers" ,ghc-parsers)
944 ("ghc-quickcheck" ,ghc-quickcheck)
945 ("ghc-scientific" ,ghc-scientific)
946 ("ghc-tagged" ,ghc-tagged)
947 ("ghc-text" ,ghc-text)
948 ("ghc-unordered-containers" ,ghc-unordered-containers)
949 ("ghc-uuid-types" ,ghc-uuid-types)
950 ("ghc-vector" ,ghc-vector)))
951 (native-inputs
952 `(("ghc-base-compat" ,ghc-base-compat)
953 ("ghc-quickcheck" ,ghc-quickcheck)
954 ("ghc-ansi-terminal" ,ghc-ansi-terminal)
955 ("ghc-ansi-wl-pprint" ,ghc-ansi-wl-pprint)
956 ("ghc-parsec" ,ghc-parsec)
957 ("ghc-trifecta" ,ghc-trifecta)
958 ("ghc-tasty" ,ghc-tasty)
959 ("ghc-tasty-golden" ,ghc-tasty-golden)
960 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
961 (home-page "https://github.com/phadej/tree-diff")
962 (synopsis "Compute difference between (expression) trees")
963 (description "This Haskell library provides a function for computing
964 the difference between (expression) trees. It also provides a way to
965 compute the difference between arbitrary abstract datatypes (ADTs) using
966 @code{Generics}-derivable helpers.")
967 (license license:bsd-3)))
968
969 (define-public ghc-haddock-library
970 (package
971 (name "ghc-haddock-library")
972 (version "1.5.0.1")
973 (source
974 (origin
975 (method url-fetch)
976 (uri (string-append
977 "https://hackage.haskell.org/package/haddock-library/haddock-library-"
978 version
979 ".tar.gz"))
980 (sha256
981 (base32
982 "1cmbg8l5xrwpliclwy3l057raypjqy0hsg1h1743ahaj8gq10b7z"))
983 (patches (search-patches
984 "ghc-haddock-library-unbundle.patch"))
985 (modules '((guix build utils)))
986 (snippet '(begin
987 (delete-file-recursively "vendor")
988 #t))))
989 (build-system haskell-build-system)
990 (arguments
991 `(#:phases
992 (modify-phases %standard-phases
993 (add-before 'configure 'relax-test-suite-dependencies
994 (lambda _
995 (substitute* "haddock-library.cabal"
996 (("base-compat\\s*\\^>= 0\\.9\\.3") "base-compat")
997 (("hspec\\s*\\^>= 2\\.4\\.4") "hspec"))))
998 ;; The release tarball does not contain the "fixtures/examples"
999 ;; directory, which is required for testing. In the upstream
1000 ;; repository, the directory exists and is populated. Here, we
1001 ;; create an empty directory to placate the tests.
1002 (add-before 'check 'add-examples-directory
1003 (lambda _
1004 (mkdir "fixtures/examples")
1005 #t)))))
1006 (native-inputs
1007 `(("ghc-base-compat" ,ghc-base-compat)
1008 ("ghc-hspec" ,ghc-hspec)
1009 ("ghc-optparse-applicative" ,ghc-optparse-applicative)
1010 ("ghc-quickcheck" ,ghc-quickcheck)
1011 ("ghc-tree-diff" ,ghc-tree-diff)
1012 ("hspec-discover" ,hspec-discover)))
1013 (home-page "https://www.haskell.org/haddock/")
1014 (synopsis "Library exposing some functionality of Haddock")
1015 (description
1016 "Haddock is a documentation-generation tool for Haskell libraries. These
1017 modules expose some functionality of it without pulling in the GHC dependency.
1018 Please note that the API is likely to change so specify upper bounds in your
1019 project if you can't release often. For interacting with Haddock itself, see
1020 the ‘haddock’ package.")
1021 (license license:bsd-3)))
1022
1023 (define-public ghc-haddock-api
1024 (package
1025 (name "ghc-haddock-api")
1026 (version "2.19.0.1")
1027 (source
1028 (origin
1029 (method url-fetch)
1030 (uri (string-append
1031 "https://hackage.haskell.org/package/haddock-api/haddock-api-"
1032 version
1033 ".tar.gz"))
1034 (sha256
1035 (base32
1036 "0c6i7sljp7myz25d90gyw68a90i5jcrkajkxcciikp2hjirfaas3"))))
1037 (build-system haskell-build-system)
1038 (arguments
1039 `(#:phases
1040 (modify-phases %standard-phases
1041 (add-before 'configure 'update-constraints
1042 (lambda _
1043 (substitute* "haddock-api.cabal"
1044 (("Cabal \\^>= 2\\.0\\.0")
1045 "Cabal ^>= 2.2.0")
1046 (("hspec \\^>= 2\\.4\\.4")
1047 "hspec >= 2.4.4 && < 2.6")))))))
1048 (inputs
1049 `(("ghc-paths" ,ghc-paths)
1050 ("ghc-haddock-library" ,ghc-haddock-library)))
1051 (native-inputs
1052 `(("ghc-quickcheck" ,ghc-quickcheck)
1053 ("ghc-hspec" ,ghc-hspec)
1054 ("hspec-discover" ,hspec-discover)))
1055 (home-page "https://www.haskell.org/haddock/")
1056 (synopsis "API for documentation-generation tool Haddock")
1057 (description "This package provides an API to Haddock, the
1058 documentation-generation tool for Haskell libraries.")
1059 (license license:bsd-3)))
1060
1061 (define-public ghc-haddock-test
1062 (package
1063 (name "ghc-haddock-test")
1064 (version "0.0.1")
1065 (source
1066 (origin
1067 (method url-fetch)
1068 (uri (string-append "https://hackage.haskell.org/package/"
1069 "haddock-test/haddock-test-"
1070 version ".tar.gz"))
1071 (sha256
1072 (base32
1073 "1ax8fnfrwx66csj952f3virxzapipan9da7z5l1zc12nqkifbs7w"))))
1074 (build-system haskell-build-system)
1075 (inputs
1076 `(("ghc-xml" ,ghc-xml)
1077 ("ghc-syb" ,ghc-syb)))
1078 (home-page "http://www.haskell.org/haddock/")
1079 (synopsis "Test utilities for Haddock")
1080 (description "This package provides test utilities for Haddock.")
1081 (license license:bsd-3)))
1082
1083 (define-public ghc-haddock
1084 (package
1085 (name "ghc-haddock")
1086 (version "2.19.0.1")
1087 (source
1088 (origin
1089 (method url-fetch)
1090 (uri (string-append
1091 "https://hackage.haskell.org/package/haddock/haddock-"
1092 version
1093 ".tar.gz"))
1094 (sha256
1095 (base32
1096 "1g1j9j0hf2yhyyh0gwz6bzbvfvliqz9x8a8hnkmwghm7w3xa6sb7"))))
1097 (build-system haskell-build-system)
1098 (arguments
1099 `(#:phases
1100 (modify-phases %standard-phases
1101 ;; There are four test suites that require the ghc-haddock-test
1102 ;; package, which no longer builds with GHC 8.4.3. This phase
1103 ;; removes these four test suites from the Cabal file, so that we
1104 ;; do not need ghc-haddock-test as an input.
1105 (add-before 'configure 'remove-haddock-test-test-suites
1106 (lambda _
1107 (use-modules (ice-9 rdelim))
1108 (with-atomic-file-replacement "haddock.cabal"
1109 (lambda (in out)
1110 (let loop ((line (read-line in 'concat)) (deleting? #f))
1111 (cond
1112 ((eof-object? line) #t)
1113 ((string-every char-set:whitespace line)
1114 (unless deleting? (display line out))
1115 (loop (read-line in 'concat) #f))
1116 ((member line '("test-suite html-test\n"
1117 "test-suite hypsrc-test\n"
1118 "test-suite latex-test\n"
1119 "test-suite hoogle-test\n"))
1120 (loop (read-line in 'concat) #t))
1121 (else
1122 (unless deleting? (display line out))
1123 (loop (read-line in 'concat) deleting?)))))))))))
1124 (inputs `(("ghc-haddock-api" ,ghc-haddock-api)))
1125 (native-inputs
1126 `(("ghc-hspec" ,ghc-hspec)))
1127 (home-page "https://www.haskell.org/haddock/")
1128 (synopsis
1129 "Documentation-generation tool for Haskell libraries")
1130 (description
1131 "Haddock is a documentation-generation tool for Haskell libraries.")
1132 (license license:bsd-3)))
1133
1134 (define-public ghc-simple-reflect
1135 (package
1136 (name "ghc-simple-reflect")
1137 (version "0.3.3")
1138 (source
1139 (origin
1140 (method url-fetch)
1141 (uri (string-append
1142 "https://hackage.haskell.org/package/simple-reflect/simple-reflect-"
1143 version
1144 ".tar.gz"))
1145 (sha256
1146 (base32
1147 "0ayvrx5cm8n6db21jiyjmk5h93pw7cz1707hih09hlhk9jh5x0h7"))))
1148 (build-system haskell-build-system)
1149 (home-page
1150 "https://twanvl.nl/blog/haskell/simple-reflection-of-expressions")
1151 (synopsis
1152 "Simple reflection of expressions containing variables")
1153 (description
1154 "This package allows simple reflection of expressions containing
1155 variables. Reflection here means that a Haskell expression is turned into a
1156 string. The primary aim of this package is teaching and understanding; there
1157 are no options for manipulating the reflected expressions beyond showing
1158 them.")
1159 (license license:bsd-3)))
1160
1161 (define-public ghc-haskell-src
1162 (package
1163 (name "ghc-haskell-src")
1164 (version "1.0.3.0")
1165 (source
1166 (origin
1167 (method url-fetch)
1168 (uri (string-append
1169 "https://hackage.haskell.org/package/haskell-src/haskell-src-"
1170 version
1171 ".tar.gz"))
1172 (sha256
1173 (base32
1174 "1g4dj1f0j68bhn4ixfac63wjzy6gsp6kwgxryb1k5nl3i0g99d5l"))))
1175 (build-system haskell-build-system)
1176 (inputs
1177 `(("ghc-happy" ,ghc-happy)
1178 ("ghc-syb" ,ghc-syb)))
1179 (home-page
1180 "https://hackage.haskell.org/package/haskell-src")
1181 (synopsis
1182 "Support for manipulating Haskell source code")
1183 (description
1184 "The @code{haskell-src} package provides support for manipulating Haskell
1185 source code. The package provides a lexer, parser and pretty-printer, and a
1186 definition of a Haskell abstract syntax tree (AST). Common uses of this
1187 package are to parse or generate Haskell 98 code.")
1188 (license license:bsd-3)))
1189
1190 (define-public ghc-alex
1191 (package
1192 (name "ghc-alex")
1193 (version "3.2.4")
1194 (source
1195 (origin
1196 (method url-fetch)
1197 (uri (string-append
1198 "https://hackage.haskell.org/package/alex/alex-"
1199 version
1200 ".tar.gz"))
1201 (sha256
1202 (base32
1203 "0cpjixgsr0b2x4s6hz4aa6gnmjw9i7xd9nlfi8m37zqlidq4v3nm"))))
1204 (build-system haskell-build-system)
1205 (arguments
1206 `(#:phases
1207 (modify-phases %standard-phases
1208 (add-before 'check 'set-check-variables
1209 (lambda _
1210 (setenv "PATH" (string-append (getcwd) "/dist/build/alex:"
1211 (getenv "PATH")))
1212 (setenv "alex_datadir" (string-append (getcwd) "/data"))
1213 #t)))))
1214 (inputs `(("ghc-quickcheck" ,ghc-quickcheck)))
1215 (native-inputs
1216 `(("which" ,which)))
1217 (home-page "https://www.haskell.org/alex/")
1218 (synopsis
1219 "Tool for generating lexical analysers in Haskell")
1220 (description
1221 "Alex is a tool for generating lexical analysers in Haskell. It takes a
1222 description of tokens based on regular expressions and generates a Haskell
1223 module containing code for scanning text efficiently. It is similar to the
1224 tool lex or flex for C/C++.")
1225 (license license:bsd-3)))
1226
1227 (define-public ghc-cgi
1228 (package
1229 (name "ghc-cgi")
1230 (version "3001.3.0.2")
1231 (source
1232 (origin
1233 (method url-fetch)
1234 (uri (string-append
1235 "https://hackage.haskell.org/package/cgi/cgi-"
1236 version
1237 ".tar.gz"))
1238 (sha256
1239 (base32
1240 "1hbpplss1m4rdpm4ibip6fpimlhssqa14fl338kl2jbc463i64cj"))))
1241 (build-system haskell-build-system)
1242 (arguments
1243 `(#:phases
1244 (modify-phases %standard-phases
1245 (add-before 'configure 'update-constraints
1246 (lambda _
1247 (substitute* "cgi.cabal"
1248 (("exceptions < 0\\.9")
1249 "exceptions < 0.11")
1250 (("time >= 1\\.5 && < 1\\.7")
1251 "time >= 1.5 && < 1.9")
1252 (("doctest >= 0\\.8 && < 0\\.12")
1253 "doctest >= 0.8 && < 0.17")
1254 (("QuickCheck >= 2\\.8\\.1 && < 2\\.10")
1255 "QuickCheck >= 2.8.1 && < 2.12")))))))
1256 (inputs
1257 `(("ghc-parsec" ,ghc-parsec)
1258 ("ghc-exceptions" ,ghc-exceptions)
1259 ("ghc-multipart" ,ghc-multipart)
1260 ("ghc-network-uri" ,ghc-network-uri)
1261 ("ghc-network" ,ghc-network)))
1262 (native-inputs
1263 `(("ghc-doctest" ,ghc-doctest)
1264 ("ghc-quickcheck" ,ghc-quickcheck)))
1265 (home-page
1266 "https://github.com/cheecheeo/haskell-cgi")
1267 (synopsis "Library for writing CGI programs")
1268 (description
1269 "This is a Haskell library for writing CGI programs.")
1270 (license license:bsd-3)))
1271
1272 (define-public ghc-cmdargs
1273 (package
1274 (name "ghc-cmdargs")
1275 (version "0.10.20")
1276 (source
1277 (origin
1278 (method url-fetch)
1279 (uri (string-append
1280 "https://hackage.haskell.org/package/cmdargs/cmdargs-"
1281 version ".tar.gz"))
1282 (sha256
1283 (base32
1284 "0cbkmgrcnwgigg6z88y3c09gm7g6dwm7gzbgr53h8k1xik29s9hf"))))
1285 (build-system haskell-build-system)
1286 (home-page
1287 "http://community.haskell.org/~ndm/cmdargs/")
1288 (synopsis "Command line argument processing")
1289 (description
1290 "This library provides an easy way to define command line parsers.")
1291 (license license:bsd-3)))
1292
1293 (define-public ghc-concatenative
1294 (package
1295 (name "ghc-concatenative")
1296 (version "1.0.1")
1297 (source (origin
1298 (method url-fetch)
1299 (uri (string-append
1300 "https://hackage.haskell.org/package/concatenative/concatenative-"
1301 version ".tar.gz"))
1302 (sha256
1303 (base32
1304 "05xwqvcdnk8bsyj698ab9jxpa1nk23pf3m7wi9mwmw0q8n99fngd"))))
1305 (build-system haskell-build-system)
1306 (home-page
1307 "https://patch-tag.com/r/salazar/concatenative/snapshot/current/content/pretty")
1308 (synopsis "Library for postfix control flow")
1309 (description
1310 "Concatenative gives Haskell Factor-style combinators and arrows for
1311 postfix notation. For more information on stack based languages, see
1312 @uref{https://concatenative.org}.")
1313 (license license:bsd-3)))
1314
1315 (define-public ghc-happy
1316 (package
1317 (name "ghc-happy")
1318 (version "1.19.9")
1319 (source
1320 (origin
1321 (method url-fetch)
1322 (uri (string-append
1323 "https://hackage.haskell.org/package/happy/happy-"
1324 version
1325 ".tar.gz"))
1326 (sha256
1327 (base32
1328 "138xpxdb7x62lpmgmb6b3v3vgdqqvqn4273jaap3mjmc2gla709y"))))
1329 (build-system haskell-build-system)
1330 (arguments
1331 `(#:phases
1332 (modify-phases %standard-phases
1333 (add-after 'unpack 'skip-test-issue93
1334 (lambda _
1335 ;; Tests run out of memory on a system with 2GB of available RAM,
1336 ;; in 'issue93.a.hs' and 'issue93.n.hs'.
1337 (substitute* "tests/Makefile"
1338 ((" issue93.y ") " "))
1339 #t)))))
1340 (home-page "https://hackage.haskell.org/package/happy")
1341 (synopsis "Parser generator for Haskell")
1342 (description "Happy is a parser generator for Haskell. Given a grammar
1343 specification in BNF, Happy generates Haskell code to parse the grammar.
1344 Happy works in a similar way to the yacc tool for C.")
1345 (license license:bsd-3)))
1346
1347 (define-public ghc-haskell-lexer
1348 (package
1349 (name "ghc-haskell-lexer")
1350 (version "1.0.2")
1351 (source
1352 (origin
1353 (method url-fetch)
1354 (uri (string-append
1355 "https://hackage.haskell.org/package/haskell-lexer/haskell-lexer-"
1356 version ".tar.gz"))
1357 (sha256
1358 (base32 "1wyxd8x33x4v5vxyzkhm610pl86gbkc8y439092fr1735q9g7kfq"))))
1359 (build-system haskell-build-system)
1360 (home-page "http://hackage.haskell.org/package/haskell-lexer")
1361 (synopsis "Fully compliant Haskell 98 lexer")
1362 (description
1363 "This package provides a fully compliant Haskell 98 lexer.")
1364 (license license:bsd-3)))
1365
1366 (define-public ghc-pretty-show
1367 (package
1368 (name "ghc-pretty-show")
1369 (version "1.7")
1370 (source
1371 (origin
1372 (method url-fetch)
1373 (uri (string-append "https://hackage.haskell.org/package/pretty-show/"
1374 "pretty-show-" version ".tar.gz"))
1375 (sha256
1376 (base32
1377 "0br7pkxqqqhby2j2v1g847lgqsrasx56g1jw3dhmjh4flzs6warq"))))
1378 (build-system haskell-build-system)
1379 (inputs
1380 `(("ghc-haskell-lexer" ,ghc-haskell-lexer)
1381 ("ghc-happy" ,ghc-happy)))
1382 (home-page "http://wiki.github.com/yav/pretty-show")
1383 (synopsis "Tools for working with derived `Show` instances")
1384 (description
1385 "This package provides a library and an executable for working with
1386 derived @code{Show} instances. By using the library, derived @code{Show}
1387 instances can be parsed into a generic data structure. The @code{ppsh} tool
1388 uses the library to produce human-readable versions of @code{Show} instances,
1389 which can be quite handy for debugging Haskell programs. We can also render
1390 complex generic values into an interactive Html page, for easier
1391 examination.")
1392 (license license:expat)))
1393
1394 (define-public ghc-haskell-src-exts
1395 (package
1396 (name "ghc-haskell-src-exts")
1397 (version "1.20.2")
1398 (source
1399 (origin
1400 (method url-fetch)
1401 (uri (string-append
1402 "https://hackage.haskell.org/package/haskell-src-exts/haskell-src-exts-"
1403 version
1404 ".tar.gz"))
1405 (sha256
1406 (base32
1407 "1sm3z4v1p5yffg01ldgavz71s3bvfhjfa13k428rk14bpkl8crlz"))))
1408 (build-system haskell-build-system)
1409 (inputs
1410 `(("cpphs" ,cpphs)
1411 ("ghc-happy" ,ghc-happy)
1412 ("ghc-pretty-show" ,ghc-pretty-show)))
1413 (native-inputs
1414 `(("ghc-smallcheck" ,ghc-smallcheck)
1415 ("ghc-tasty" ,ghc-tasty)
1416 ("ghc-tasty-smallcheck" ,ghc-tasty-smallcheck)
1417 ("ghc-tasty-golden" ,ghc-tasty-golden)))
1418 (home-page "https://github.com/haskell-suite/haskell-src-exts")
1419 (synopsis "Library for manipulating Haskell source")
1420 (description "Haskell-Source with Extensions (HSE, haskell-src-exts) is an
1421 extension of the standard @code{haskell-src} package, and handles most
1422 registered syntactic extensions to Haskell. All extensions implemented in GHC
1423 are supported. Apart from these standard extensions, it also handles regular
1424 patterns as per the HaRP extension as well as HSX-style embedded XML syntax.")
1425 (license license:bsd-3)))
1426
1427 (define-public ghc-haskell-src-exts-util
1428 (package
1429 (name "ghc-haskell-src-exts-util")
1430 (version "0.2.3")
1431 (source
1432 (origin
1433 (method url-fetch)
1434 (uri (string-append "https://hackage.haskell.org/package/"
1435 "haskell-src-exts-util/haskell-src-exts-util-"
1436 version ".tar.gz"))
1437 (sha256
1438 (base32
1439 "1803718paq89f8pdck4mb88hv2k1ah9lxzq0lgjgwi9n88ryycz8"))))
1440 (build-system haskell-build-system)
1441 (inputs
1442 `(("ghc-data-default" ,ghc-data-default)
1443 ("ghc-haskell-src-exts" ,ghc-haskell-src-exts)
1444 ("ghc-semigroups" ,ghc-semigroups)
1445 ("ghc-uniplate" ,ghc-uniplate)))
1446 (home-page "https://github.com/pepeiborra/haskell-src-exts-util")
1447 (synopsis "Helper functions for working with haskell-src-exts trees")
1448 (description
1449 "This package provides helper functions for working with
1450 @code{haskell-src-exts} trees.")
1451 (license license:bsd-3)))
1452
1453 (define-public ghc-refact
1454 (package
1455 (name "ghc-refact")
1456 (version "0.3.0.2")
1457 (source
1458 (origin
1459 (method url-fetch)
1460 (uri (string-append "https://hackage.haskell.org/package/"
1461 "refact/refact-"
1462 version ".tar.gz"))
1463 (sha256
1464 (base32
1465 "0v0zxcx29b8jxs2kgy9csykqcp8kzhdvyylw2xfwmj4pfxr2kl0a"))))
1466 (build-system haskell-build-system)
1467 (home-page "http://hackage.haskell.org/package/refact")
1468 (synopsis "Specify refactorings to perform with apply-refact")
1469 (description
1470 "This library provides a datatype which can be interpreted by
1471 @code{apply-refact}. It exists as a separate library so that applications can
1472 specify refactorings without depending on GHC.")
1473 (license license:bsd-3)))
1474
1475 (define-public hlint
1476 (package
1477 (name "hlint")
1478 (version "2.1.10")
1479 (source
1480 (origin
1481 (method url-fetch)
1482 (uri (string-append
1483 "https://hackage.haskell.org/package/" name
1484 "/" name "-" version ".tar.gz"))
1485 (sha256
1486 (base32
1487 "19as2m9g75cr6n1agzvsij0cvqhb0wbjlk31w4y5d5mns87dki0w"))))
1488 (build-system haskell-build-system)
1489 (inputs
1490 `(("cpphs" ,cpphs)
1491 ("ghc-unordered-containers" ,ghc-unordered-containers)
1492 ("ghc-yaml" ,ghc-yaml)
1493 ("ghc-vector" ,ghc-vector)
1494 ("ghc-text" ,ghc-text)
1495 ("ghc-data-default" ,ghc-data-default)
1496 ("ghc-cmdargs" ,ghc-cmdargs)
1497 ("ghc-haskell-src-exts" ,ghc-haskell-src-exts)
1498 ("ghc-haskell-src-exts-util" ,ghc-haskell-src-exts-util)
1499 ("ghc-uniplate" ,ghc-uniplate)
1500 ("ghc-ansi-terminal" ,ghc-ansi-terminal)
1501 ("ghc-extra" ,ghc-extra)
1502 ("ghc-refact" ,ghc-refact)
1503 ("ghc-aeson" ,ghc-aeson)
1504 ("hscolour" ,hscolour)))
1505 (home-page "http://community.haskell.org/~ndm/hlint/")
1506 (synopsis "Suggest improvements for Haskell source code")
1507 (description "HLint reads Haskell programs and suggests changes that
1508 hopefully make them easier to read. HLint also makes it easy to disable
1509 unwanted suggestions, and to add your own custom suggestions.")
1510 (license license:bsd-3)))
1511
1512 (define-public ghc-resourcet
1513 (package
1514 (name "ghc-resourcet")
1515 (version "1.2.1")
1516 (source
1517 (origin
1518 (method url-fetch)
1519 (uri (string-append "https://hackage.haskell.org/package/resourcet/"
1520 "resourcet-" version ".tar.gz"))
1521 (sha256
1522 (base32
1523 "0rzjzh34s36ssign7akqjnwnjxf11c3511wk7ky0xxy0dqmc2rg7"))))
1524 (build-system haskell-build-system)
1525 (inputs
1526 `(("ghc-transformers-base" ,ghc-transformers-base)
1527 ("ghc-monad-control" ,ghc-monad-control)
1528 ("ghc-transformers-compat" ,ghc-transformers-compat)
1529 ("ghc-mmorph" ,ghc-mmorph)
1530 ("ghc-exceptions" ,ghc-exceptions)
1531 ("ghc-unliftio-core" ,ghc-unliftio-core)))
1532 (native-inputs
1533 `(("ghc-lifted-base" ,ghc-lifted-base)
1534 ("ghc-hspec" ,ghc-hspec)))
1535 (home-page "https://github.com/snoyberg/conduit")
1536 (synopsis "Deterministic allocation and freeing of scarce resources")
1537 (description "ResourceT is a monad transformer which creates a region of
1538 code where you can safely allocate resources.")
1539 (license license:bsd-3)))
1540
1541 (define-public ghc-objectname
1542 (package
1543 (name "ghc-objectname")
1544 (version "1.1.0.1")
1545 (source
1546 (origin
1547 (method url-fetch)
1548 (uri (string-append
1549 "https://hackage.haskell.org/package/ObjectName/ObjectName-"
1550 version
1551 ".tar.gz"))
1552 (sha256
1553 (base32
1554 "046jm94rmm46cicd31pl54vdvfjvhd9ffbfycy2lxzc0fliyznvj"))))
1555 (build-system haskell-build-system)
1556 (home-page "https://hackage.haskell.org/package/ObjectName")
1557 (synopsis "Helper library for Haskell OpenGL")
1558 (description "This tiny package contains the class ObjectName, which
1559 corresponds to the general notion of explicitly handled identifiers for API
1560 objects, e.g. a texture object name in OpenGL or a buffer object name in
1561 OpenAL.")
1562 (license license:bsd-3)))
1563
1564 (define-public ghc-sdl
1565 (package
1566 (name "ghc-sdl")
1567 (version "0.6.7.0")
1568 (source
1569 (origin
1570 (method url-fetch)
1571 (uri (string-append
1572 "https://hackage.haskell.org/package/SDL/SDL-"
1573 version
1574 ".tar.gz"))
1575 (sha256
1576 (base32
1577 "00y67v80a8l09i3k76z09lg25kw72ivl09nag8ckdlk4a0cfnzfq"))))
1578 (build-system haskell-build-system)
1579 (inputs
1580 `(("sdl" ,sdl)))
1581 (home-page "https://hackage.haskell.org/package/SDL")
1582 (synopsis "LibSDL for Haskell")
1583 (description "Simple DirectMedia Layer (libSDL) is a cross-platform
1584 multimedia library designed to provide low level access to audio, keyboard,
1585 mouse, joystick, 3D hardware via OpenGL, and 2D video framebuffer. It is used
1586 by MPEG playback software, emulators, and many popular games, including the
1587 award winning Linux port of \"Civilization: Call To Power.\"")
1588 (license license:bsd-3)))
1589
1590 (define-public ghc-sdl-mixer
1591 (package
1592 (name "ghc-sdl-mixer")
1593 (version "0.6.3.0")
1594 (source
1595 (origin
1596 (method url-fetch)
1597 (uri (string-append
1598 "https://hackage.haskell.org/package/SDL-mixer/SDL-mixer-"
1599 version
1600 ".tar.gz"))
1601 (sha256
1602 (base32
1603 "0k26hqgdh789ka3mv4dsk6rin6x6vwcs6hjmnsqq7j3mnrh1342r"))))
1604 (build-system haskell-build-system)
1605 (arguments
1606 `(#:configure-flags
1607 (let* ((sdl-mixer (assoc-ref %build-inputs "sdl-mixer"))
1608 (sdl-mixer-include (string-append sdl-mixer "/include/SDL")))
1609 (list (string-append "--extra-include-dirs=" sdl-mixer-include)))))
1610 (inputs
1611 `(("ghc-sdl" ,ghc-sdl)
1612 ("sdl-mixer" ,sdl-mixer)))
1613 (home-page "https://hackage.haskell.org/package/SDL-mixer")
1614 (synopsis "Haskell bindings to libSDL_mixer")
1615 (description "SDL_mixer is a sample multi-channel audio mixer library. It
1616 supports any number of simultaneously playing channels of 16 bit stereo audio,
1617 plus a single channel of music, mixed by the popular MikMod MOD, Timidity
1618 MIDI, Ogg Vorbis, and SMPEG MP3 libraries.")
1619 (license license:bsd-3)))
1620
1621 (define-public ghc-sdl-image
1622 (package
1623 (name "ghc-sdl-image")
1624 (version "0.6.2.0")
1625 (source
1626 (origin
1627 (method url-fetch)
1628 (uri (string-append
1629 "https://hackage.haskell.org/package/SDL-image/SDL-image-"
1630 version
1631 ".tar.gz"))
1632 (sha256
1633 (base32
1634 "1gxwrvswgwjw6g7ym52gik22l9l3ljy592phv97jdmcf3gi6qcg1"))))
1635 (build-system haskell-build-system)
1636 (arguments
1637 `(#:configure-flags
1638 (let* ((sdl-image (assoc-ref %build-inputs "sdl-image"))
1639 (sdl-image-include (string-append sdl-image "/include/SDL")))
1640 (list (string-append "--extra-include-dirs=" sdl-image-include)))))
1641 (inputs
1642 `(("ghc-sdl" ,ghc-sdl)
1643 ("sdl-image" ,sdl-image)))
1644 (home-page "https://hackage.haskell.org/package/SDL-image")
1645 (synopsis "Haskell bindings to libSDL_image")
1646 (description "SDL_image is an image file loading library. It loads images
1647 as SDL surfaces, and supports the following formats: BMP, GIF, JPEG, LBM, PCX,
1648 PNG, PNM, TGA, TIFF, XCF, XPM, XV.")
1649 (license license:bsd-3)))
1650
1651 (define-public ghc-half
1652 (package
1653 (name "ghc-half")
1654 (version "0.3")
1655 (source
1656 (origin
1657 (method url-fetch)
1658 (uri (string-append
1659 "https://hackage.haskell.org/package/half/half-"
1660 version ".tar.gz"))
1661 (sha256
1662 (base32
1663 "14r0nx8hm5fic9gz0ybjjw4kyc758zfgvhhwvzsshpx5caq6zch6"))))
1664 (build-system haskell-build-system)
1665 (native-inputs
1666 `(("ghc-hspec" ,ghc-hspec)
1667 ("ghc-quickcheck" ,ghc-quickcheck)))
1668 (home-page "https://github.com/ekmett/half")
1669 (synopsis "Half-precision floating-point computations")
1670 (description "This library provides a half-precision floating-point
1671 computation library for Haskell.")
1672 (license license:bsd-3)))
1673
1674 (define-public ghc-fixed
1675 (package
1676 (name "ghc-fixed")
1677 (version "0.2.1.1")
1678 (source
1679 (origin
1680 (method url-fetch)
1681 (uri (string-append "https://hackage.haskell.org/package/fixed/fixed-"
1682 version ".tar.gz"))
1683 (sha256
1684 (base32
1685 "1qhmwx8iqshns0crmr9d2f8hm65jxbcp3dvv0c39v34ra7if3a94"))))
1686 (build-system haskell-build-system)
1687 (home-page "https://github.com/ekmett/fixed")
1688 (synopsis "Signed 15.16 precision fixed point arithmetic")
1689 (description
1690 "This package provides functions for signed 15.16 precision fixed point
1691 arithmetic.")
1692 (license license:bsd-3)))
1693
1694 (define-public ghc-openglraw
1695 (package
1696 (name "ghc-openglraw")
1697 (version "3.3.1.0")
1698 (source
1699 (origin
1700 (method url-fetch)
1701 (uri (string-append
1702 "https://hackage.haskell.org/package/OpenGLRaw/OpenGLRaw-"
1703 version
1704 ".tar.gz"))
1705 (sha256
1706 (base32
1707 "1x8w3x308jldj2c1xqcq3a3sc2jc06pdpgqkgjsmixi1skv4a1vb"))))
1708 (build-system haskell-build-system)
1709 (inputs
1710 `(("ghc-half" ,ghc-half)
1711 ("ghc-fixed" ,ghc-fixed)
1712 ("glu" ,glu)
1713 ("ghc-text" ,ghc-text)))
1714 (home-page "https://www.haskell.org/haskellwiki/Opengl")
1715 (synopsis "Raw Haskell bindings for the OpenGL graphics system")
1716 (description "OpenGLRaw is a raw Haskell binding for the OpenGL 4.5
1717 graphics system and lots of OpenGL extensions. It is basically a 1:1 mapping
1718 of OpenGL's C API, intended as a basis for a nicer interface. OpenGLRaw
1719 offers access to all necessary functions, tokens and types plus a general
1720 facility for loading extension entries. The module hierarchy closely mirrors
1721 the naming structure of the OpenGL extensions, making it easy to find the
1722 right module to import. All API entries are loaded dynamically, so no special
1723 C header files are needed for building this package. If an API entry is not
1724 found at runtime, a userError is thrown.")
1725 (license license:bsd-3)))
1726
1727 (define-public ghc-glut
1728 (package
1729 (name "ghc-glut")
1730 (version "2.7.0.14")
1731 (source
1732 (origin
1733 (method url-fetch)
1734 (uri (string-append
1735 "https://hackage.haskell.org/package/GLUT/GLUT-"
1736 version
1737 ".tar.gz"))
1738 (sha256
1739 (base32
1740 "01i162fly4q1751fp60lgkzlb8kr0qqbvmxj74zc6skb19qggy2w"))))
1741 (build-system haskell-build-system)
1742 (inputs
1743 `(("ghc-statevar" ,ghc-statevar)
1744 ("ghc-opengl" ,ghc-opengl)
1745 ("ghc-openglraw" ,ghc-openglraw)
1746 ("freeglut" ,freeglut)))
1747 (home-page "https://www.haskell.org/haskellwiki/Opengl")
1748 (synopsis "Haskell bindings for the OpenGL Utility Toolkit")
1749 (description "This library provides Haskell bindings for the OpenGL
1750 Utility Toolkit, a window system-independent toolkit for writing OpenGL
1751 programs.")
1752 (license license:bsd-3)))
1753
1754 (define-public ghc-gluraw
1755 (package
1756 (name "ghc-gluraw")
1757 (version "2.0.0.4")
1758 (source
1759 (origin
1760 (method url-fetch)
1761 (uri (string-append
1762 "https://hackage.haskell.org/package/GLURaw/GLURaw-"
1763 version
1764 ".tar.gz"))
1765 (sha256
1766 (base32
1767 "1i2xi35n5z0d372px9mh6cyhgg1m0cfaiy3fnspkf6kbn9fgsqxq"))))
1768 (build-system haskell-build-system)
1769 (inputs
1770 `(("ghc-openglraw" ,ghc-openglraw)))
1771 (home-page "https://www.haskell.org/haskellwiki/Opengl")
1772 (synopsis "Raw Haskell bindings GLU")
1773 (description "GLURaw is a raw Haskell binding for the GLU 1.3 OpenGL
1774 utility library. It is basically a 1:1 mapping of GLU's C API, intended as a
1775 basis for a nicer interface.")
1776 (license license:bsd-3)))
1777
1778 (define-public ghc-opengl
1779 (package
1780 (name "ghc-opengl")
1781 (version "3.0.2.2")
1782 (source
1783 (origin
1784 (method url-fetch)
1785 (uri (string-append
1786 "https://hackage.haskell.org/package/OpenGL/OpenGL-"
1787 version
1788 ".tar.gz"))
1789 (sha256
1790 (base32
1791 "19vxwvx2n8zq2klj176l25n2b64ybp0b8mhm4p46gvpcivz41fjc"))))
1792 (build-system haskell-build-system)
1793 (inputs
1794 `(("ghc-text" ,ghc-text)
1795 ("ghc-objectname" ,ghc-objectname)
1796 ("ghc-gluraw" ,ghc-gluraw)
1797 ("ghc-statevar" ,ghc-statevar)
1798 ("ghc-openglraw" ,ghc-openglraw)))
1799 (home-page "https://www.haskell.org/haskellwiki/Opengl")
1800 (synopsis "Haskell bindings for the OpenGL graphics system")
1801 (description "This package provides Haskell bindings for the OpenGL
1802 graphics system (GL, version 4.5) and its accompanying utility library (GLU,
1803 version 1.3).")
1804 (license license:bsd-3)))
1805
1806 (define-public ghc-streaming-commons
1807 (package
1808 (name "ghc-streaming-commons")
1809 (version "0.2.1.1")
1810 (source
1811 (origin
1812 (method url-fetch)
1813 (uri (string-append "https://hackage.haskell.org/package/"
1814 "streaming-commons/streaming-commons-"
1815 version ".tar.gz"))
1816 (sha256
1817 (base32
1818 "1lmyx3wkjsayhy5yilzvy0kf8qwmycwlk26r1d8f3cxbfhkr7s52"))))
1819 (build-system haskell-build-system)
1820 (inputs
1821 `(("ghc-async" ,ghc-async)
1822 ("ghc-blaze-builder" ,ghc-blaze-builder)
1823 ("ghc-network" ,ghc-network)
1824 ("ghc-random" ,ghc-random)
1825 ("ghc-stm" ,ghc-stm)
1826 ("ghc-text" ,ghc-text)
1827 ("ghc-zlib" ,ghc-zlib)))
1828 (native-inputs
1829 `(("ghc-quickcheck" ,ghc-quickcheck)
1830 ("ghc-hspec" ,ghc-hspec)
1831 ("hspec-discover" ,hspec-discover)))
1832 (home-page "https://hackage.haskell.org/package/streaming-commons")
1833 (synopsis "Conduit and pipes needed by some streaming data libraries")
1834 (description "This package provides low-dependency functionality commonly
1835 needed by various Haskell streaming data libraries, such as @code{conduit} and
1836 @code{pipe}s.")
1837 (license license:expat)))
1838
1839 (define-public cpphs
1840 (package
1841 (name "cpphs")
1842 (version "1.20.8")
1843 (source
1844 (origin
1845 (method url-fetch)
1846 (uri (string-append
1847 "https://hackage.haskell.org/package/" name "/"
1848 name "-" version ".tar.gz"))
1849 (sha256
1850 (base32
1851 "1bh524asqhk9v1s0wvipl0hgn7l63iy3js867yv0z3h5v2kn8vg5"))))
1852 (build-system haskell-build-system)
1853 (inputs
1854 `(("ghc-polyparse" ,ghc-polyparse)
1855 ("ghc-old-locale" ,ghc-old-locale)
1856 ("ghc-old-time" ,ghc-old-time)))
1857 (home-page "http://projects.haskell.org/cpphs/")
1858 (synopsis "Liberalised re-implementation of cpp, the C pre-processor")
1859 (description "Cpphs is a re-implementation of the C pre-processor that is
1860 both more compatible with Haskell, and itself written in Haskell so that it
1861 can be distributed with compilers. This version of the C pre-processor is
1862 pretty-much feature-complete and compatible with traditional (K&R)
1863 pre-processors. Additional features include: a plain-text mode; an option to
1864 unlit literate code files; and an option to turn off macro-expansion.")
1865 (license (list license:lgpl2.1+ license:gpl3+))))
1866
1867 (define-public ghc-reflection
1868 (package
1869 (name "ghc-reflection")
1870 (version "2.1.4")
1871 (source
1872 (origin
1873 (method url-fetch)
1874 (uri (string-append
1875 "https://hackage.haskell.org/package/reflection/reflection-"
1876 version
1877 ".tar.gz"))
1878 (sha256
1879 (base32
1880 "0kf4a5ijw6jfnfibjcrpdy9vzh1n6v2pxia8dhyyqdissiwc8bzj"))))
1881 (build-system haskell-build-system)
1882 (inputs `(("ghc-tagged" ,ghc-tagged)))
1883 (home-page "https://github.com/ekmett/reflection")
1884 (synopsis "Reify arbitrary terms into types that can be reflected back
1885 into terms")
1886 (description "This package addresses the 'configuration problem' which is
1887 propagating configurations that are available at run-time, allowing multiple
1888 configurations to coexist without resorting to mutable global variables or
1889 @code{System.IO.Unsafe.unsafePerformIO}.")
1890 (license license:bsd-3)))
1891
1892 (define-public ghc-old-locale
1893 (package
1894 (name "ghc-old-locale")
1895 (version "1.0.0.7")
1896 (source
1897 (origin
1898 (method url-fetch)
1899 (uri (string-append
1900 "https://hackage.haskell.org/package/old-locale/old-locale-"
1901 version
1902 ".tar.gz"))
1903 (sha256
1904 (base32 "0l3viphiszvz5wqzg7a45zp40grwlab941q5ay29iyw8p3v8pbyv"))))
1905 (build-system haskell-build-system)
1906 (arguments
1907 `(#:cabal-revision
1908 ("2" "04b9vn007hlvsrx4ksd3r8r3kbyaj2kvwxchdrmd4370qzi8p6gs")))
1909 (home-page "https://hackage.haskell.org/package/old-locale")
1910 (synopsis "Adapt to locale conventions")
1911 (description
1912 "This package provides the ability to adapt to locale conventions such as
1913 date and time formats.")
1914 (license license:bsd-3)))
1915
1916 (define-public ghc-old-time
1917 (package
1918 (name "ghc-old-time")
1919 (version "1.1.0.3")
1920 (source
1921 (origin
1922 (method url-fetch)
1923 (uri (string-append
1924 "https://hackage.haskell.org/package/old-time/old-time-"
1925 version
1926 ".tar.gz"))
1927 (sha256
1928 (base32
1929 "1h9b26s3kfh2k0ih4383w90ibji6n0iwamxp6rfp2lbq1y5ibjqw"))))
1930 (build-system haskell-build-system)
1931 (arguments
1932 `(#:cabal-revision
1933 ("2" "1j6ln1dkvhdvnwl33bp0xf9lhc4sybqk0aw42p8cq81xwwzbn7y9")))
1934 (inputs
1935 `(("ghc-old-locale" ,ghc-old-locale)))
1936 (home-page "https://hackage.haskell.org/package/old-time")
1937 (synopsis "Time compatibility library for Haskell")
1938 (description "Old-time is a package for backwards compatibility with the
1939 old @code{time} library. For new projects, the newer
1940 @uref{https://hackage.haskell.org/package/time, time library} is recommended.")
1941 (license license:bsd-3)))
1942
1943 (define-public ghc-data-default-instances-old-locale
1944 (package
1945 (name "ghc-data-default-instances-old-locale")
1946 (version "0.0.1")
1947 (source
1948 (origin
1949 (method url-fetch)
1950 (uri (string-append
1951 "https://hackage.haskell.org/package/"
1952 "data-default-instances-old-locale/"
1953 "data-default-instances-old-locale-" version ".tar.gz"))
1954 (sha256
1955 (base32 "00h81i5phib741yj517p8mbnc48myvfj8axzsw44k34m48lv1lv0"))))
1956 (build-system haskell-build-system)
1957 (inputs
1958 `(("ghc-data-default-class" ,ghc-data-default-class)
1959 ("ghc-old-locale" ,ghc-old-locale)))
1960 (home-page
1961 "https://hackage.haskell.org/package/data-default-instances-old-locale")
1962 (synopsis "Default instances for types in old-locale")
1963 (description "Provides Default instances for types from the old-locale
1964 package.")
1965 (license license:bsd-3)))
1966
1967 (define-public ghc-dlist
1968 (package
1969 (name "ghc-dlist")
1970 (version "0.8.0.4")
1971 (source
1972 (origin
1973 (method url-fetch)
1974 (uri (string-append
1975 "https://hackage.haskell.org/package/dlist/dlist-"
1976 version
1977 ".tar.gz"))
1978 (sha256
1979 (base32 "0yirrh0s6acjy9hhvf5fqg2d6q5y6gm9xs04v6w1imndh1xqdwdc"))))
1980 (build-system haskell-build-system)
1981 (inputs
1982 `(("ghc-quickcheck" ,ghc-quickcheck)))
1983 (home-page "https://github.com/spl/dlist")
1984 (synopsis "Difference lists")
1985 (description
1986 "Difference lists are a list-like type supporting O(1) append. This is
1987 particularly useful for efficient logging and pretty printing (e.g. with the
1988 Writer monad), where list append quickly becomes too expensive.")
1989 (license license:bsd-3)))
1990
1991 (define-public ghc-extensible-exceptions
1992 (package
1993 (name "ghc-extensible-exceptions")
1994 (version "0.1.1.4")
1995 (source
1996 (origin
1997 (method url-fetch)
1998 (uri (string-append "https://hackage.haskell.org/package/"
1999 "extensible-exceptions/extensible-exceptions-"
2000 version ".tar.gz"))
2001 (sha256
2002 (base32 "1273nqws9ij1rp1bsq5jc7k2jxpqa0svawdbim05lf302y0firbc"))))
2003 (build-system haskell-build-system)
2004 (home-page "https://hackage.haskell.org/package/extensible-exceptions")
2005 (synopsis "Extensible exceptions for Haskell")
2006 (description
2007 "This package provides extensible exceptions for both new and old
2008 versions of GHC (i.e., < 6.10).")
2009 (license license:bsd-3)))
2010
2011 (define-public ghc-echo
2012 (package
2013 (name "ghc-echo")
2014 (version "0.1.3")
2015 (source
2016 (origin
2017 (method url-fetch)
2018 (uri (string-append
2019 "https://hackage.haskell.org/package/echo/echo-"
2020 version ".tar.gz"))
2021 (sha256
2022 (base32
2023 "1vw5ykpwhr39wc0hhcgq3r8dh59zq6ib4zxbz1qd2wl21wqhfkvh"))))
2024 (build-system haskell-build-system)
2025 (arguments
2026 `(#:cabal-revision
2027 ("1" "0br8wfiybcw5hand4imiw0i5hacdmrax1dv8g95f35gazffbx42l")))
2028 (home-page "https://github.com/RyanGlScott/echo")
2029 (synopsis "Echo terminal input portably")
2030 (description "The @code{base} library exposes the @code{hGetEcho} and
2031 @code{hSetEcho} functions for querying and setting echo status, but
2032 unfortunately, neither function works with MinTTY consoles on Windows.
2033 This library provides an alternative interface which works with both
2034 MinTTY and other consoles.")
2035 (license license:bsd-3)))
2036
2037 (define-public ghc-hackage-security
2038 (package
2039 (name "ghc-hackage-security")
2040 (version "0.5.3.0")
2041 (source
2042 (origin
2043 (method url-fetch)
2044 (uri (string-append "https://hackage.haskell.org/package/"
2045 "hackage-security/hackage-security-"
2046 version ".tar.gz"))
2047 (sha256
2048 (base32
2049 "08bwawc7ramgdh54vcly2m9pvfchp0ahhs8117jajni6x4bnx66v"))))
2050 (build-system haskell-build-system)
2051 (arguments
2052 `(#:tests? #f)) ; Tests fail because of framework updates.
2053 (inputs
2054 `(("ghc-base16-bytestring" ,ghc-base16-bytestring)
2055 ("ghc-base64-bytestring" ,ghc-base64-bytestring)
2056 ("ghc-cryptohash-sha256" ,ghc-cryptohash-sha256)
2057 ("ghc-ed25519" ,ghc-ed25519)
2058 ("ghc-network" ,ghc-network)
2059 ("ghc-network-uri" ,ghc-network-uri)
2060 ("ghc-parsec" ,ghc-parsec)
2061 ("ghc-tar" ,ghc-tar)
2062 ("ghc-zlib" ,ghc-zlib)))
2063 (native-inputs
2064 `(("ghc-network-uri" ,ghc-network-uri)
2065 ("ghc-quickcheck" ,ghc-quickcheck)
2066 ("ghc-tar" ,ghc-tar)
2067 ("ghc-tasty" ,ghc-tasty)
2068 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
2069 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
2070 ("ghc-temporary" ,ghc-temporary)
2071 ("ghc-zlib" ,ghc-zlib)))
2072 (home-page "https://github.com/haskell/hackage-security")
2073 (synopsis "Hackage security library")
2074 (description "This Hackage security library provides both server and
2075 client utilities for securing @uref{http://hackage.haskell.org/, the
2076 Hackage package server}. It is based on
2077 @uref{http://theupdateframework.com/, The Update Framework}, a set of
2078 recommendations developed by security researchers at various universities
2079 in the US as well as developers on the @uref{https://www.torproject.org/,
2080 Tor project}.")
2081 (license license:bsd-3)))
2082
2083 (define-public ghc-resolv
2084 (package
2085 (name "ghc-resolv")
2086 (version "0.1.1.1")
2087 (source
2088 (origin
2089 (method url-fetch)
2090 (uri (string-append
2091 "https://hackage.haskell.org/package/resolv/resolv-"
2092 version ".tar.gz"))
2093 (sha256
2094 (base32
2095 "0wh7wj56l3f2bylz563g5g04a4nydj8acv60hpwa7k3mn792xca9"))))
2096 (build-system haskell-build-system)
2097 (arguments
2098 `(#:cabal-revision
2099 ("1" "15ay4n3x8c09cb3h4z1nan84yd3n9zpgvi6h114hk98bq10k8mma")
2100 #:tests? #f)) ; The required test frameworks are too old.
2101 (inputs
2102 `(("ghc-base16-bytestring" ,ghc-base16-bytestring)))
2103 (home-page "https://github.com/haskell/hackage-security")
2104 (synopsis "Domain Name Service (DNS) lookup via @code{libresolv}")
2105 (description "This package implements an API for accessing the
2106 @uref{https://tools.ietf.org/html/rfc1035, Domain Name Service (DNS)}
2107 resolver service via the standard @code{libresolv} system library (whose
2108 API is often available directly via the standard @code{libc} C library) on
2109 Unix systems.")
2110 (license license:gpl3)))
2111
2112 (define-public cabal-install
2113 (package
2114 (name "cabal-install")
2115 (version "2.2.0.0")
2116 (source
2117 (origin
2118 (method url-fetch)
2119 (uri (string-append
2120 "https://hackage.haskell.org/package/cabal-install/cabal-install-"
2121 version
2122 ".tar.gz"))
2123 (sha256
2124 (base32 "1nd3ch7qr4dpfxhgkcq2lnhvszx2kjgnn1kwb44vk9y5jgfs4mn8"))))
2125 (arguments `(#:tests? #f)) ; FIXME: testing libraries are missing.
2126 (build-system haskell-build-system)
2127 (inputs
2128 `(("ghc-async" ,ghc-async)
2129 ("ghc-base16-bytestring" ,ghc-base16-bytestring)
2130 ("ghc-cryptohash-sha256" ,ghc-cryptohash-sha256)
2131 ("ghc-echo" ,ghc-echo)
2132 ("ghc-edit-distance" ,ghc-edit-distance)
2133 ("ghc-hackage-security" ,ghc-hackage-security)
2134 ("ghc-hashable" ,ghc-hashable)
2135 ("ghc-http" ,ghc-http)
2136 ("ghc-network-uri" ,ghc-network-uri)
2137 ("ghc-network" ,ghc-network)
2138 ("ghc-random" ,ghc-random)
2139 ("ghc-resolv" ,ghc-resolv)
2140 ("ghc-stm" ,ghc-stm)
2141 ("ghc-tar" ,ghc-tar)
2142 ("ghc-zlib" ,ghc-zlib)))
2143 (home-page "https://www.haskell.org/cabal/")
2144 (synopsis "Command-line interface for Cabal and Hackage")
2145 (description
2146 "The cabal command-line program simplifies the process of managing
2147 Haskell software by automating the fetching, configuration, compilation and
2148 installation of Haskell libraries and programs.")
2149 (license license:bsd-3)))
2150
2151 (define-public cabal-doctest
2152 (package
2153 (name "cabal-doctest")
2154 (version "1.0.6")
2155 (source
2156 (origin
2157 (method url-fetch)
2158 (uri (string-append "https://hackage.haskell.org/package/"
2159 "cabal-doctest/cabal-doctest-"
2160 version ".tar.gz"))
2161 (sha256
2162 (base32
2163 "0bgd4jdmzxq5y465r4sf4jv2ix73yvblnr4c9wyazazafddamjny"))))
2164 (build-system haskell-build-system)
2165 (arguments
2166 `(#:cabal-revision
2167 ("1" "1bk85avgc93yvcggwbk01fy8nvg6753wgmaanhkry0hz55h7mpld")))
2168 (home-page "https://github.com/phadej/cabal-doctest")
2169 (synopsis "Setup.hs helper for running doctests")
2170 (description
2171 "To properly work, the @code{doctest} package needs plenty of
2172 configuration. This library provides the common bits for writing custom
2173 @file{Setup.hs} files.")
2174 (license license:bsd-3)))
2175
2176 (define-public ghc-parsec-numbers
2177 (package
2178 (name "ghc-parsec-numbers")
2179 (version "0.1.0")
2180 (source
2181 (origin
2182 (method url-fetch)
2183 (uri (string-append "https://hackage.haskell.org/package/"
2184 "parsec-numbers/parsec-numbers-" version ".tar.gz"))
2185 (sha256
2186 (base32 "1gzy4v3r02kvdxvgg1nj83mmb6aph2v4ilf9c7y6nbvi2x49l0bp"))))
2187 (build-system haskell-build-system)
2188 (inputs
2189 `(("ghc-parsec" ,ghc-parsec)))
2190 (home-page "https://hackage.haskell.org/package/parsec-numbers")
2191 (synopsis "Utilities for parsing numbers from strings")
2192 (description
2193 "This package provides the number parsers without the need to use a large
2194 (and unportable) token parser.")
2195 (license license:bsd-3)))
2196
2197 (define-public ghc-paths
2198 (package
2199 (name "ghc-paths")
2200 (version "0.1.0.9")
2201 (outputs '("out" "doc"))
2202 (source
2203 (origin
2204 (method url-fetch)
2205 (uri (string-append
2206 "https://hackage.haskell.org/package/ghc-paths/ghc-paths-"
2207 version
2208 ".tar.gz"))
2209 (sha256
2210 (base32
2211 "0ibrr1dxa35xx20cpp8jzgfak1rdmy344dfwq4vlq013c6w8z9mg"))))
2212 (build-system haskell-build-system)
2213 (home-page "https://github.com/simonmar/ghc-paths")
2214 (synopsis
2215 "Knowledge of GHC's installation directories")
2216 (description
2217 "Knowledge of GHC's installation directories.")
2218 (license license:bsd-3)))
2219
2220 (define-public ghc-utf8-string
2221 (package
2222 (name "ghc-utf8-string")
2223 (version "1.0.1.1")
2224 (source
2225 (origin
2226 (method url-fetch)
2227 (uri (string-append
2228 "https://hackage.haskell.org/package/utf8-string/utf8-string-"
2229 version
2230 ".tar.gz"))
2231 (sha256
2232 (base32 "0h7imvxkahiy8pzr8cpsimifdfvv18lizrb33k6mnq70rcx9w2zv"))))
2233 (build-system haskell-build-system)
2234 (arguments
2235 `(#:cabal-revision
2236 ("3" "02vhj5gykkqa2dyn7s6gn8is1b5fdn9xcqqvlls268g7cpv6rk38")))
2237 (home-page "https://github.com/glguy/utf8-string/")
2238 (synopsis "Support for reading and writing UTF8 Strings")
2239 (description
2240 "A UTF8 layer for Strings. The utf8-string package provides operations
2241 for encoding UTF8 strings to Word8 lists and back, and for reading and writing
2242 UTF8 without truncation.")
2243 (license license:bsd-3)))
2244
2245 (define-public ghc-setenv
2246 (package
2247 (name "ghc-setenv")
2248 (version "0.1.1.3")
2249 (source
2250 (origin
2251 (method url-fetch)
2252 (uri (string-append
2253 "https://hackage.haskell.org/package/setenv/setenv-"
2254 version
2255 ".tar.gz"))
2256 (sha256
2257 (base32
2258 "0cnbgrvb9byyahb37zlqrj05rj25v190crgcw8wmlgf0mwwxyn73"))))
2259 (build-system haskell-build-system)
2260 (home-page "https://hackage.haskell.org/package/setenv")
2261 (synopsis "Library for setting environment variables")
2262 (description "This package provides a Haskell library for setting
2263 environment variables.")
2264 (license license:expat)))
2265
2266 (define-public ghc-setlocale
2267 (package
2268 (name "ghc-setlocale")
2269 (version "1.0.0.8")
2270 (source (origin
2271 (method url-fetch)
2272 (uri (string-append
2273 "https://hackage.haskell.org/package/setlocale-"
2274 version "/setlocale-" version ".tar.gz"))
2275 (sha256
2276 (base32
2277 "0sdrsmkhw08483d73ysgm2926fdbhii61br03lqpqw0lfzj4ilbd"))))
2278 (build-system haskell-build-system)
2279 (home-page "https://hackage.haskell.org/package/setlocale")
2280 (synopsis "Haskell bindings to setlocale")
2281 (description "This package provides Haskell bindings to the
2282 @code{setlocale} C function.")
2283 (license license:bsd-3)))
2284
2285 (define-public ghc-x11
2286 (package
2287 (name "ghc-x11")
2288 (version "1.9")
2289 (source
2290 (origin
2291 (method url-fetch)
2292 (uri (string-append "https://hackage.haskell.org/package/X11/"
2293 "X11-" version ".tar.gz"))
2294 (sha256
2295 (base32 "1f8dy6ckkyvpcv7zlniyv01cqjb9lgqscm8pml58cvwc7n38w4qh"))))
2296 (build-system haskell-build-system)
2297 (inputs
2298 `(("libx11" ,libx11)
2299 ("libxrandr" ,libxrandr)
2300 ("libxinerama" ,libxinerama)
2301 ("libxscrnsaver" ,libxscrnsaver)
2302 ("ghc-data-default" ,ghc-data-default)))
2303 (home-page "https://github.com/haskell-pkg-janitors/X11")
2304 (synopsis "Bindings to the X11 graphics library")
2305 (description
2306 "This package provides Haskell bindings to the X11 graphics library. The
2307 bindings are a direct translation of the C bindings.")
2308 (license license:bsd-3)))
2309
2310 (define-public ghc-x11-xft
2311 (package
2312 (name "ghc-x11-xft")
2313 (version "0.3.1")
2314 (source
2315 (origin
2316 (method url-fetch)
2317 (uri (string-append "https://hackage.haskell.org/package/X11-xft/"
2318 "X11-xft-" version ".tar.gz"))
2319 (sha256
2320 (base32 "1lgqb0s2qfwwgbvwxhjbi23rbwamzdi0l0slfr20c3jpcbp3zfjf"))))
2321 (inputs
2322 `(("ghc-x11" ,ghc-x11)
2323 ("ghc-utf8-string" ,ghc-utf8-string)
2324 ("libx11" ,libx11)
2325 ("libxft" ,libxft)
2326 ("xorgproto" ,xorgproto)))
2327 (native-inputs
2328 `(("pkg-config" ,pkg-config)))
2329 (build-system haskell-build-system)
2330 (home-page "https://hackage.haskell.org/package/X11-xft")
2331 (synopsis "Bindings to Xft")
2332 (description
2333 "Bindings to the Xft, X Free Type interface library, and some Xrender
2334 parts.")
2335 (license license:lgpl2.1)))
2336
2337 (define-public ghc-stringbuilder
2338 (package
2339 (name "ghc-stringbuilder")
2340 (version "0.5.1")
2341 (source
2342 (origin
2343 (method url-fetch)
2344 (uri (string-append
2345 "https://hackage.haskell.org/package/stringbuilder/stringbuilder-"
2346 version
2347 ".tar.gz"))
2348 (sha256
2349 (base32
2350 "1fh3csx1wcssn8xyvl4ip4aprh9l4qyz2kk8mgjvqvc0vb2bsy6q"))))
2351 (build-system haskell-build-system)
2352 (arguments `(#:tests? #f)) ; FIXME: circular dependencies with tests
2353 ; enabled
2354 (home-page "https://hackage.haskell.org/package/stringbuilder")
2355 (synopsis "Writer monad for multi-line string literals")
2356 (description "This package provides a writer monad for multi-line string
2357 literals.")
2358 (license license:expat)))
2359
2360 (define-public ghc-zlib
2361 (package
2362 (name "ghc-zlib")
2363 (version "0.6.2")
2364 (outputs '("out" "doc"))
2365 (source
2366 (origin
2367 (method url-fetch)
2368 (uri (string-append
2369 "https://hackage.haskell.org/package/zlib/zlib-"
2370 version
2371 ".tar.gz"))
2372 (sha256
2373 (base32
2374 "1vbzf0awb6zb456xf48za1kl22018646cfzq4frvxgb9ay97vk0d"))))
2375 (build-system haskell-build-system)
2376 (arguments
2377 `(#:phases
2378 (modify-phases %standard-phases
2379 (add-before 'configure 'strip-test-framework-constraints
2380 (lambda _
2381 (substitute* "zlib.cabal"
2382 (("tasty >= 0\\.8 && < 0\\.12") "tasty")
2383 (("tasty-hunit >= 0\\.8 && < 0\\.10") "tasty-hunit")
2384 (("tasty-quickcheck == 0\\.8\\.\\*") "tasty-quickcheck")))))))
2385 (inputs `(("zlib" ,zlib)))
2386 (native-inputs
2387 `(("ghc-quickcheck" ,ghc-quickcheck)
2388 ("ghc-tasty" ,ghc-tasty)
2389 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
2390 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
2391 (home-page "https://hackage.haskell.org/package/zlib")
2392 (synopsis
2393 "Compression and decompression in the gzip and zlib formats")
2394 (description
2395 "This package provides a pure interface for compressing and decompressing
2396 streams of data represented as lazy @code{ByteString}s. It uses the zlib C
2397 library so it has high performance. It supports the @code{zlib}, @code{gzip}
2398 and @code{raw} compression formats. It provides a convenient high level API
2399 suitable for most tasks and for the few cases where more control is needed it
2400 provides access to the full zlib feature set.")
2401 (license license:bsd-3)))
2402
2403 (define-public ghc-stm
2404 (package
2405 (name "ghc-stm")
2406 (version "2.4.5.0")
2407 (outputs '("out" "doc"))
2408 (source
2409 (origin
2410 (method url-fetch)
2411 (uri (string-append
2412 "https://hackage.haskell.org/package/stm/stm-"
2413 version
2414 ".tar.gz"))
2415 (sha256
2416 (base32
2417 "19sr11a0hqikhvf561b38phz6k3zg9s157a0f5ffvghk7wcdpmri"))))
2418 (build-system haskell-build-system)
2419 (home-page "https://hackage.haskell.org/package/stm")
2420 (synopsis "Software Transactional Memory")
2421 (description
2422 "Software Transactional Memory, or STM, is an abstraction for concurrent
2423 communication. The main benefits of STM are composability and modularity.
2424 That is, using STM you can write concurrent abstractions that can be easily
2425 composed with any other abstraction built using STM, without exposing the
2426 details of how your abstraction ensures safety. This is typically not the
2427 case with other forms of concurrent communication, such as locks or
2428 @code{MVar}s.")
2429 (license license:bsd-3)))
2430
2431 (define-public ghc-parallel
2432 (package
2433 (name "ghc-parallel")
2434 (version "3.2.2.0")
2435 (outputs '("out" "doc"))
2436 (source
2437 (origin
2438 (method url-fetch)
2439 (uri (string-append
2440 "https://hackage.haskell.org/package/parallel/parallel-"
2441 version
2442 ".tar.gz"))
2443 (sha256
2444 (base32
2445 "1xkfi96w6yfpppd0nw1rnszdxmvifwzm699ilv6332ra3akm610p"))))
2446 (build-system haskell-build-system)
2447 (home-page "https://hackage.haskell.org/package/parallel")
2448 (synopsis "Parallel programming library")
2449 (description
2450 "This package provides a library for parallel programming.")
2451 (license license:bsd-3)))
2452
2453 (define-public ghc-safesemaphore
2454 (package
2455 (name "ghc-safesemaphore")
2456 (version "0.10.1")
2457 (source
2458 (origin
2459 (method url-fetch)
2460 (uri (string-append "https://hackage.haskell.org/package/"
2461 "SafeSemaphore/SafeSemaphore-" version ".tar.gz"))
2462 (sha256
2463 (base32
2464 "0rpg9j6fy70i0b9dkrip9d6wim0nac0snp7qzbhykjkqlcvvgr91"))))
2465 (build-system haskell-build-system)
2466 (inputs
2467 `(("ghc-stm" ,ghc-stm)))
2468 (native-inputs
2469 `(("ghc-hunit" ,ghc-hunit)))
2470 (home-page "https://github.com/ChrisKuklewicz/SafeSemaphore")
2471 (synopsis "Exception safe semaphores")
2472 (description "This library provides exception safe semaphores that can be
2473 used in place of @code{QSem}, @code{QSemN}, and @code{SampleVar}, all of which
2474 are not exception safe and can be broken by @code{killThread}.")
2475 (license license:bsd-3)))
2476
2477 (define-public ghc-text
2478 (package
2479 (name "ghc-text")
2480 (version "1.2.3.0")
2481 (outputs '("out" "doc"))
2482 (source
2483 (origin
2484 (method url-fetch)
2485 (uri (string-append
2486 "https://hackage.haskell.org/package/text/text-"
2487 version
2488 ".tar.gz"))
2489 (sha256
2490 (base32
2491 "06iir7q99rnffzxi8gagn8w1k9m49368sbidgz634fv1gxib3q10"))))
2492 (build-system haskell-build-system)
2493 ;; The test dependencies depend on ghc-text: ghc-test-framework -> ghc-xml -> ghc-text
2494 (arguments `(#:tests? #f))
2495 (inputs
2496 `(("ghc-random" ,ghc-random)))
2497 (home-page "https://github.com/bos/text")
2498 (synopsis "Efficient packed Unicode text type library")
2499 (description
2500 "An efficient packed, immutable Unicode text type (both strict and
2501 lazy), with a powerful loop fusion optimization framework.
2502
2503 The @code{Text} type represents Unicode character strings, in a time and
2504 space-efficient manner. This package provides text processing
2505 capabilities that are optimized for performance critical use, both
2506 in terms of large data quantities and high speed.")
2507 (license license:bsd-3)))
2508
2509 (define-public ghc-text-binary
2510 (package
2511 (name "ghc-text-binary")
2512 (version "0.2.1.1")
2513 (source
2514 (origin
2515 (method url-fetch)
2516 (uri (string-append "https://hackage.haskell.org/package/"
2517 "text-binary/text-binary-"
2518 version ".tar.gz"))
2519 (sha256
2520 (base32
2521 "18gl10pwg3qwsk0za3c70j4n6a9129wwf1b7d3a461h816yv55xn"))))
2522 (build-system haskell-build-system)
2523 (inputs `(("ghc-text" ,ghc-text)))
2524 (home-page "https://github.com/kawu/text-binary")
2525 (synopsis "Binary instances for text types")
2526 (description
2527 "This package provides a compatibility layer providing @code{Binary}
2528 instances for strict and lazy text types for versions older than 1.2.1 of the
2529 text package.")
2530 (license license:bsd-2)))
2531
2532 (define-public ghc-strict
2533 (package
2534 (name "ghc-strict")
2535 (version "0.3.2")
2536 (source
2537 (origin
2538 (method url-fetch)
2539 (uri (string-append "https://hackage.haskell.org/package/strict/strict-"
2540 version ".tar.gz"))
2541 (sha256
2542 (base32 "08cjajqz9h47fkq98mlf3rc8n5ghbmnmgn8pfsl3bdldjdkmmlrc"))))
2543 (build-system haskell-build-system)
2544 (home-page "https://hackage.haskell.org/package/strict")
2545 (synopsis "Strict data types and String IO")
2546 (description
2547 "This package provides strict versions of some standard Haskell data
2548 types, such as pairs, @code{Maybe} and @code{Either}. It also contains strict
2549 IO operations.")
2550 (license license:bsd-3)))
2551
2552 (define-public ghc-hashable
2553 (package
2554 (name "ghc-hashable")
2555 (version "1.2.7.0")
2556 (outputs '("out" "doc"))
2557 (source
2558 (origin
2559 (method url-fetch)
2560 (uri (string-append
2561 "https://hackage.haskell.org/package/hashable/hashable-"
2562 version
2563 ".tar.gz"))
2564 (sha256
2565 (base32
2566 "1gra8gq3kb7b2sd845h55yxlrfqx3ii004c6vjhga8v0b30fzdgc"))))
2567 (build-system haskell-build-system)
2568 (inputs
2569 `(("ghc-text" ,ghc-text)
2570 ("ghc-random" ,ghc-random)))
2571 (native-inputs
2572 `(("ghc-test-framework" ,ghc-test-framework)
2573 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
2574 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)
2575 ("ghc-hunit" ,ghc-hunit)
2576 ("ghc-quickcheck" ,ghc-quickcheck)))
2577 (home-page "https://github.com/tibbe/hashable")
2578 (synopsis "Class for types that can be converted to a hash value")
2579 (description
2580 "This package defines a class, @code{Hashable}, for types that can be
2581 converted to a hash value. This class exists for the benefit of hashing-based
2582 data structures. The package provides instances for basic types and a way to
2583 combine hash values.")
2584 (license license:bsd-3)))
2585
2586 (define-public ghc-hashable-bootstrap
2587 (package
2588 (inherit ghc-hashable)
2589 (name "ghc-hashable-bootstrap")
2590 (arguments `(#:tests? #f))
2591 (native-inputs '())
2592 (properties '((hidden? #t)))))
2593
2594 (define-public ghc-hashable-time
2595 (package
2596 (name "ghc-hashable-time")
2597 (version "0.2.0.1")
2598 (source
2599 (origin
2600 (method url-fetch)
2601 (uri (string-append
2602 "https://hackage.haskell.org/package/hashable-time/hashable-time-"
2603 version
2604 ".tar.gz"))
2605 (sha256
2606 (base32
2607 "0k932nyd08l3xxbh2g3n76py2f4kd9yw4s5a065vjz0xp6wjnxdm"))))
2608 (build-system haskell-build-system)
2609 (arguments
2610 `(#:cabal-revision
2611 ("1" "0rv40xkg3gj8jnqsry1gq3f5s5la6d5arg8fzkirnwdpcgha1as6")))
2612 (inputs `(("ghc-hashable" ,ghc-hashable)))
2613 (home-page "http://hackage.haskell.org/package/hashable-time")
2614 (synopsis "Hashable instances for Data.Time")
2615 (description
2616 "This package provides @code{Hashable} instances for types in
2617 @code{Data.Time}.")
2618 (license license:bsd-3)))
2619
2620 (define-public ghc-data-hash
2621 (package
2622 (name "ghc-data-hash")
2623 (version "0.2.0.1")
2624 (source
2625 (origin
2626 (method url-fetch)
2627 (uri (string-append "https://hackage.haskell.org/package/data-hash"
2628 "/data-hash-" version ".tar.gz"))
2629 (sha256
2630 (base32 "1ghbqvc48gf9p8wiy71hdpaj7by3b9cw6wgwi3qqz8iw054xs5wi"))))
2631 (build-system haskell-build-system)
2632 (inputs
2633 `(("ghc-quickcheck" ,ghc-quickcheck)
2634 ("ghc-test-framework" ,ghc-test-framework)
2635 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
2636 (home-page "https://hackage.haskell.org/package/data-hash")
2637 (synopsis "Combinators for building fast hashing functions")
2638 (description
2639 "This package provides combinators for building fast hashing functions.
2640 It includes hashing functions for all basic Haskell98 types.")
2641 (license license:bsd-3)))
2642
2643 (define-public ghc-murmur-hash
2644 (package
2645 (name "ghc-murmur-hash")
2646 (version "0.1.0.9")
2647 (source
2648 (origin
2649 (method url-fetch)
2650 (uri (string-append "https://hackage.haskell.org/package/murmur-hash"
2651 "/murmur-hash-" version ".tar.gz"))
2652 (sha256
2653 (base32 "1bb58kfnzvx3mpc0rc0dhqc1fk36nm8prd6gvf20gk6lxaadpfc9"))))
2654 (build-system haskell-build-system)
2655 (home-page "https://github.com/nominolo/murmur-hash")
2656 (synopsis "MurmurHash2 implementation for Haskell")
2657 (description
2658 "This package provides an implementation of MurmurHash2, a good, fast,
2659 general-purpose, non-cryptographic hashing function. See
2660 @url{https://sites.google.com/site/murmurhash/} for details. This
2661 implementation is pure Haskell, so it might be a bit slower than a C FFI
2662 binding.")
2663 (license license:bsd-3)))
2664
2665 (define-public ghc-random
2666 (package
2667 (name "ghc-random")
2668 (version "1.1")
2669 (outputs '("out" "doc"))
2670 (source
2671 (origin
2672 (method url-fetch)
2673 (uri (string-append
2674 "https://hackage.haskell.org/package/random/random-"
2675 version
2676 ".tar.gz"))
2677 (sha256
2678 (base32 "0nis3lbkp8vfx8pkr6v7b7kr5m334bzb0fk9vxqklnp2aw8a865p"))))
2679 (build-system haskell-build-system)
2680 (home-page "https://hackage.haskell.org/package/random")
2681 (synopsis "Random number library")
2682 (description "This package provides a basic random number generation
2683 library, including the ability to split random number generators.")
2684 (license license:bsd-3)))
2685
2686 (define-public ghc-primitive
2687 (package
2688 (name "ghc-primitive")
2689 (version "0.6.3.0")
2690 (outputs '("out" "doc"))
2691 (source
2692 (origin
2693 (method url-fetch)
2694 (uri (string-append
2695 "https://hackage.haskell.org/package/primitive/primitive-"
2696 version
2697 ".tar.gz"))
2698 (sha256
2699 (base32
2700 "0mcmbnj08wd6zfwn7xk6zf5hy5zwbla5v78pw0dpymqg9s0gzpnd"))))
2701 (build-system haskell-build-system)
2702 (home-page
2703 "https://github.com/haskell/primitive")
2704 (synopsis "Primitive memory-related operations")
2705 (description
2706 "This package provides various primitive memory-related operations.")
2707 (license license:bsd-3)))
2708
2709 (define-public ghc-tf-random
2710 (package
2711 (name "ghc-tf-random")
2712 (version "0.5")
2713 (outputs '("out" "doc"))
2714 (source
2715 (origin
2716 (method url-fetch)
2717 (uri (string-append
2718 "https://hackage.haskell.org/package/tf-random/tf-random-"
2719 version
2720 ".tar.gz"))
2721 (sha256
2722 (base32 "0445r2nns6009fmq0xbfpyv7jpzwv0snccjdg7hwj4xk4z0cwc1f"))))
2723 (build-system haskell-build-system)
2724 (inputs
2725 `(("ghc-primitive" ,ghc-primitive)
2726 ("ghc-random" ,ghc-random)))
2727 (home-page "https://hackage.haskell.org/package/tf-random")
2728 (synopsis "High-quality splittable pseudorandom number generator")
2729 (description "This package contains an implementation of a high-quality
2730 splittable pseudorandom number generator. The generator is based on a
2731 cryptographic hash function built on top of the ThreeFish block cipher. See
2732 the paper \"Splittable Pseudorandom Number Generators Using Cryptographic
2733 Hashing\" by Claessen, Pałka for details and the rationale of the design.")
2734 (license license:bsd-3)))
2735
2736 (define-public ghc-transformers-base
2737 (package
2738 (name "ghc-transformers-base")
2739 (version "0.4.5.2")
2740 (source
2741 (origin
2742 (method url-fetch)
2743 (uri (string-append
2744 "https://hackage.haskell.org/package/transformers-base/transformers-base-"
2745 version
2746 ".tar.gz"))
2747 (sha256
2748 (base32
2749 "1s256bi0yh0x2hp2gwd30f3mg1cv53zz397dv1yhfsnfzmihrj6h"))))
2750 (build-system haskell-build-system)
2751 (inputs
2752 `(("ghc-stm" ,ghc-stm)
2753 ("ghc-transformers-compat" ,ghc-transformers-compat)))
2754 (home-page
2755 "https://hackage.haskell.org/package/transformers-compat")
2756 (synopsis
2757 "Backported transformer library")
2758 (description
2759 "Backported versions of types that were added to transformers in
2760 transformers 0.3 and 0.4 for users who need strict transformers 0.2 or 0.3
2761 compatibility to run on old versions of the platform.")
2762 (license license:bsd-3)))
2763
2764 (define-public ghc-transformers-compat
2765 (package
2766 (name "ghc-transformers-compat")
2767 (version "0.6.2")
2768 (source
2769 (origin
2770 (method url-fetch)
2771 (uri (string-append
2772 "https://hackage.haskell.org/package/transformers-compat"
2773 "/transformers-compat-" version ".tar.gz"))
2774 (sha256
2775 (base32
2776 "1gp4a8kvniwgm8947ghb4iwv4b7wd6ry4kvv4nfnym4agf5j41nw"))))
2777 (build-system haskell-build-system)
2778 (home-page "https://github.com/ekmett/transformers-compat/")
2779 (synopsis "Small compatibility shim between transformers 0.3 and 0.4")
2780 (description "This package includes backported versions of types that were
2781 added to transformers in transformers 0.3 and 0.4 for users who need strict
2782 transformers 0.2 or 0.3 compatibility to run on old versions of the platform,
2783 but also need those types.")
2784 (license license:bsd-3)))
2785
2786 (define-public ghc-unix-time
2787 (package
2788 (name "ghc-unix-time")
2789 (version "0.3.8")
2790 (source
2791 (origin
2792 (method url-fetch)
2793 (uri (string-append
2794 "https://hackage.haskell.org/package/unix-time/unix-time-"
2795 version
2796 ".tar.gz"))
2797 (sha256
2798 (base32
2799 "051slgpid5cxiaw203ky0ql3823h28fcjs08axkzd4265wrvv8fw"))))
2800 (build-system haskell-build-system)
2801 (arguments
2802 `(#:tests? #f)) ; FIXME: Test fails with "System.Time not found". This
2803 ; is weird, that should be provided by GHC 7.10.2.
2804 (inputs
2805 `(("ghc-old-time" ,ghc-old-time)
2806 ("ghc-old-locale" ,ghc-old-locale)))
2807 (home-page "https://hackage.haskell.org/package/unix-time")
2808 (synopsis "Unix time parser/formatter and utilities")
2809 (description "This library provides fast parsing and formatting utilities
2810 for Unix time in Haskell.")
2811 (license license:bsd-3)))
2812
2813 (define-public ghc-unix-compat
2814 (package
2815 (name "ghc-unix-compat")
2816 (version "0.5.1")
2817 (source
2818 (origin
2819 (method url-fetch)
2820 (uri (string-append
2821 "https://hackage.haskell.org/package/unix-compat/unix-compat-"
2822 version
2823 ".tar.gz"))
2824 (sha256
2825 (base32
2826 "0llwl7rp63fy2ychwdclz1afj45pbin5pfl01dvn6rwhvmwhr7d3"))))
2827 (build-system haskell-build-system)
2828 (home-page
2829 "https://github.com/jystic/unix-compat")
2830 (synopsis "Portable POSIX-compatibility layer")
2831 (description
2832 "This package provides portable implementations of parts of the unix
2833 package. This package re-exports the unix package when available. When it
2834 isn't available, portable implementations are used.")
2835 (license license:bsd-3)))
2836
2837 (define-public ghc-indents
2838 (package
2839 (name "ghc-indents")
2840 (version "0.5.0.0")
2841 (source (origin
2842 (method url-fetch)
2843 (uri (string-append
2844 "https://hackage.haskell.org/package/indents/indents-"
2845 version ".tar.gz"))
2846 (sha256
2847 (base32
2848 "1ly3v41jacc6lrsvg4j3m5a6zs90gr8dyif5m6bf34hj1k5cgg0n"))))
2849 (build-system haskell-build-system)
2850 ;; This package needs an older version of tasty.
2851 (arguments '(#:tests? #f))
2852 (inputs
2853 `(("ghc-parsec" ,ghc-parsec)
2854 ("ghc-concatenative" ,ghc-concatenative)))
2855 (native-inputs
2856 `(("ghc-tasty" ,ghc-tasty)
2857 ("ghc-tasty-hunit" ,ghc-tasty-hunit)))
2858 (home-page "http://patch-tag.com/r/salazar/indents")
2859 (synopsis "Indentation sensitive parser-combinators for parsec")
2860 (description
2861 "This library provides functions for use in parsing indentation sensitive
2862 contexts. It parses blocks of lines all indented to the same level as well as
2863 lines continued at an indented level below.")
2864 (license license:bsd-3)))
2865
2866 (define-public ghc-iproute
2867 (package
2868 (name "ghc-iproute")
2869 (version "1.7.5")
2870 (source
2871 (origin
2872 (method url-fetch)
2873 (uri (string-append
2874 "https://hackage.haskell.org/package/iproute/iproute-"
2875 version
2876 ".tar.gz"))
2877 (sha256
2878 (base32
2879 "1vw1nm3s8vz1hqnjnqd3wh5rr4q3m2r4izn5ynhf93h9185qwqzd"))))
2880 (build-system haskell-build-system)
2881 (arguments `(#:tests? #f)) ; FIXME: Tests cannot find System.ByteOrder,
2882 ; exported by ghc-byteorder. Doctest issue.
2883 (inputs
2884 `(("ghc-appar" ,ghc-appar)
2885 ("ghc-byteorder" ,ghc-byteorder)
2886 ("ghc-network" ,ghc-network)
2887 ("ghc-safe" ,ghc-safe)))
2888 (home-page "https://www.mew.org/~kazu/proj/iproute/")
2889 (synopsis "IP routing table")
2890 (description "IP Routing Table is a tree of IP ranges to search one of
2891 them on the longest match base. It is a kind of TRIE with one way branching
2892 removed. Both IPv4 and IPv6 are supported.")
2893 (license license:bsd-3)))
2894
2895 (define-public ghc-iwlib
2896 (package
2897 (name "ghc-iwlib")
2898 (version "0.1.0")
2899 (source
2900 (origin
2901 (method url-fetch)
2902 (uri (string-append "https://hackage.haskell.org/package/iwlib/iwlib-"
2903 version ".tar.gz"))
2904 (sha256
2905 (base32 "0khmfwql4vwj55idsxmhjhrbqzfir3g9wm5lmpvnf77mm95cfpdz"))))
2906 (build-system haskell-build-system)
2907 (inputs
2908 `(("wireless-tools" ,wireless-tools)))
2909 (home-page "https://github.com/jaor/iwlib")
2910 (synopsis "Haskell binding to the iw wireless networking library")
2911 (description
2912 "IWlib is a thin Haskell binding to the iw C library. It provides
2913 information about the current wireless network connections, and adapters on
2914 supported systems.")
2915 (license license:bsd-3)))
2916
2917 (define-public ghc-regex-base
2918 (package
2919 (name "ghc-regex-base")
2920 (version "0.93.2")
2921 (source
2922 (origin
2923 (method url-fetch)
2924 (uri (string-append
2925 "https://hackage.haskell.org/package/regex-base/regex-base-"
2926 version
2927 ".tar.gz"))
2928 (sha256
2929 (base32
2930 "0y1j4h2pg12c853nzmczs263di7xkkmlnsq5dlp5wgbgl49mgp10"))))
2931 (build-system haskell-build-system)
2932 (home-page
2933 "https://sourceforge.net/projects/lazy-regex")
2934 (synopsis "Replaces/Enhances Text.Regex")
2935 (description "@code{Text.Regex.Base} provides the interface API for
2936 regex-posix, regex-pcre, regex-parsec, regex-tdfa, regex-dfa.")
2937 (license license:bsd-3)))
2938
2939 (define-public ghc-regex-posix
2940 (package
2941 (name "ghc-regex-posix")
2942 (version "0.95.2")
2943 (source
2944 (origin
2945 (method url-fetch)
2946 (uri (string-append
2947 "https://hackage.haskell.org/package/regex-posix/regex-posix-"
2948 version
2949 ".tar.gz"))
2950 (sha256
2951 (base32
2952 "0gkhzhj8nvfn1ija31c7xnl6p0gadwii9ihyp219ck2arlhrj0an"))))
2953 (build-system haskell-build-system)
2954 (inputs
2955 `(("ghc-regex-base" ,ghc-regex-base)))
2956 (home-page "https://sourceforge.net/projects/lazy-regex")
2957 (synopsis "POSIX regular expressions for Haskell")
2958 (description "This library provides the POSIX regex backend used by the
2959 Haskell library @code{regex-base}.")
2960 (license license:bsd-3)))
2961
2962 (define-public ghc-regex-compat
2963 (package
2964 (name "ghc-regex-compat")
2965 (version "0.95.1")
2966 (source
2967 (origin
2968 (method url-fetch)
2969 (uri (string-append
2970 "https://hackage.haskell.org/package/regex-compat/regex-compat-"
2971 version
2972 ".tar.gz"))
2973 (sha256
2974 (base32
2975 "0fwmima3f04p9y4h3c23493n1xj629ia2dxaisqm6rynljjv2z6m"))))
2976 (build-system haskell-build-system)
2977 (inputs
2978 `(("ghc-regex-base" ,ghc-regex-base)
2979 ("ghc-regex-posix" ,ghc-regex-posix)))
2980 (home-page "https://sourceforge.net/projects/lazy-regex")
2981 (synopsis "Replaces/Enhances Text.Regex")
2982 (description "This library provides one module layer over
2983 @code{regex-posix} to replace @code{Text.Regex}.")
2984 (license license:bsd-3)))
2985
2986 (define-public ghc-regex-tdfa-rc
2987 (package
2988 (name "ghc-regex-tdfa-rc")
2989 (version "1.1.8.3")
2990 (source
2991 (origin
2992 (method url-fetch)
2993 (uri (string-append
2994 "https://hackage.haskell.org/package/regex-tdfa-rc/regex-tdfa-rc-"
2995 version
2996 ".tar.gz"))
2997 (sha256
2998 (base32
2999 "1vi11i23gkkjg6193ak90g55akj69bhahy542frkwb68haky4pp3"))))
3000 (build-system haskell-build-system)
3001 (inputs
3002 `(("ghc-regex-base" ,ghc-regex-base)
3003 ("ghc-parsec" ,ghc-parsec)))
3004 (home-page
3005 "https://hackage.haskell.org/package/regex-tdfa")
3006 (synopsis "Tagged DFA regex engine for Haskell")
3007 (description "A new all-Haskell \"tagged\" DFA regex engine, inspired by
3008 @code{libtre} (fork by Roman Cheplyaka).")
3009 (license license:bsd-3)))
3010
3011 (define-public ghc-regex-tdfa-text
3012 (package
3013 (name "ghc-regex-tdfa-text")
3014 (version "1.0.0.3")
3015 (source
3016 (origin
3017 (method url-fetch)
3018 (uri (string-append
3019 "https://hackage.haskell.org/package/regex-tdfa-text/"
3020 "regex-tdfa-text-" version ".tar.gz"))
3021 (sha256
3022 (base32
3023 "0090g6lgbdm9lywpqm2d3724nnnh24nx3vnlqr96qc2w486pmmrq"))))
3024 (build-system haskell-build-system)
3025 (inputs
3026 `(("ghc-text" ,ghc-text)
3027 ("ghc-regex-base" ,ghc-regex-base)
3028 ("ghc-regex-tdfa" ,ghc-regex-tdfa)))
3029 (home-page
3030 "http://hackage.haskell.org/package/regex-tdfa-text")
3031 (synopsis "Text interface for regex-tdfa")
3032 (description
3033 "This provides an extra text interface for regex-tdfa.")
3034 (license license:bsd-3)))
3035
3036 (define-public ghc-regex
3037 (package
3038 (name "ghc-regex")
3039 (version "1.0.1.3")
3040 (source
3041 (origin
3042 (method url-fetch)
3043 (uri (string-append "https://hackage.haskell.org/package/regex/"
3044 "regex-" version ".tar.gz"))
3045 (sha256
3046 (base32
3047 "1sjkpkgv4phy5b5v2lr89x4vx4dh44pj0sbvlsp6n86w9v6v4jwb"))))
3048 (build-system haskell-build-system)
3049 (arguments
3050 `(#:phases
3051 (modify-phases %standard-phases
3052 (add-after 'unpack 'relax-dependencies
3053 (lambda _
3054 (substitute* "regex.cabal"
3055 (("base-compat.*>=.*0.6.*")
3056 "base-compat >= 0.6\n")
3057 (("template-haskell.*>=.*2.7.*")
3058 "template-haskell >= 2.7\n"))
3059 #t)))))
3060 (inputs
3061 `(("ghc-base-compat" ,ghc-base-compat)
3062 ("ghc-hashable" ,ghc-hashable)
3063 ("ghc-regex-base" ,ghc-regex-base)
3064 ("ghc-regex-pcre-builtin" ,ghc-regex-pcre-builtin)
3065 ("ghc-regex-tdfa" ,ghc-regex-tdfa)
3066 ("ghc-regex-tdfa-text" ,ghc-regex-tdfa-text)
3067 ("ghc-text" ,ghc-text)
3068 ("ghc-time-locale-compat" ,ghc-time-locale-compat)
3069 ("ghc-unordered-containers" ,ghc-unordered-containers)
3070 ("ghc-utf8-string" ,ghc-utf8-string)))
3071 (home-page "http://regex.uk")
3072 (synopsis "Toolkit for regex-base")
3073 (description
3074 "This package provides a regular expression toolkit for @code{regex-base}
3075 with compile-time checking of regular expression syntax, data types for
3076 matches and captures, a text replacement toolkit, portable options, high-level
3077 AWK-like tools for building text processing apps, regular expression macros
3078 with parsers and test bench, comprehensive documentation, tutorials and
3079 copious examples.")
3080 (license license:bsd-3)))
3081
3082 (define-public ghc-parsers
3083 (package
3084 (name "ghc-parsers")
3085 (version "0.12.9")
3086 (source
3087 (origin
3088 (method url-fetch)
3089 (uri (string-append
3090 "https://hackage.haskell.org/package/parsers/parsers-"
3091 version
3092 ".tar.gz"))
3093 (sha256
3094 (base32
3095 "1r05sc1mcglk8w596kq9a1brfn9c2vll8lq16j07ln0vsz4jzrc1"))))
3096 (build-system haskell-build-system)
3097 (arguments `(#:tests? #f)) ; FIXME: Test fails with "cannot satisfy
3098 ; -package attoparsec-0.13.0.1"
3099 (inputs
3100 `(("ghc-base-orphans" ,ghc-base-orphans)
3101 ("ghc-attoparsec" ,ghc-attoparsec)
3102 ("ghc-parsec" ,ghc-parsec)
3103 ("ghc-scientific" ,ghc-scientific)
3104 ("ghc-charset" ,ghc-charset)
3105 ("ghc-text" ,ghc-text)
3106 ("ghc-unordered-containers" ,ghc-unordered-containers)))
3107 (home-page "https://github.com/ekmett/parsers/")
3108 (synopsis "Parsing combinators")
3109 (description "This library provides convenient combinators for working
3110 with and building parsing combinator libraries. Given a few simple instances,
3111 you get access to a large number of canned definitions. Instances exist for
3112 the parsers provided by @code{parsec}, @code{attoparsec} and @code{base}'s
3113 @code{Text.Read}.")
3114 (license license:bsd-3)))
3115
3116 (define-public ghc-trifecta
3117 (package
3118 (name "ghc-trifecta")
3119 (version "2")
3120 (source (origin
3121 (method url-fetch)
3122 (uri (string-append
3123 "https://hackage.haskell.org/package/trifecta/"
3124 "trifecta-" version ".tar.gz"))
3125 (sha256
3126 (base32
3127 "0hznd8i65s81xy13i2qc7cvipw3lfb2yhkv53apbdsh6sbljz5sk"))))
3128 (build-system haskell-build-system)
3129 (inputs
3130 `(("ghc-reducers" ,ghc-reducers)
3131 ("ghc-semigroups" ,ghc-semigroups)
3132 ("ghc-ansi-wl-pprint" ,ghc-ansi-wl-pprint)
3133 ("ghc-ansi-terminal" ,ghc-ansi-terminal)
3134 ("ghc-blaze-builder" ,ghc-blaze-builder)
3135 ("ghc-blaze-html" ,ghc-blaze-html)
3136 ("ghc-blaze-markup" ,ghc-blaze-markup)
3137 ("ghc-charset" ,ghc-charset)
3138 ("ghc-comonad" ,ghc-comonad)
3139 ("ghc-fingertree" ,ghc-fingertree)
3140 ("ghc-hashable" ,ghc-hashable)
3141 ("ghc-lens" ,ghc-lens)
3142 ("ghc-parsers" ,ghc-parsers)
3143 ("ghc-profunctors" ,ghc-profunctors)
3144 ("ghc-unordered-containers" ,ghc-unordered-containers)
3145 ("ghc-utf8-string" ,ghc-utf8-string)))
3146 (native-inputs
3147 `(("cabal-doctest" ,cabal-doctest)
3148 ("ghc-doctest" ,ghc-doctest)
3149 ("ghc-quickcheck" ,ghc-quickcheck)))
3150 (home-page "https://github.com/ekmett/trifecta/")
3151 (synopsis "Parser combinator library with convenient diagnostics")
3152 (description "Trifecta is a modern parser combinator library for Haskell,
3153 with slicing and Clang-style colored diagnostics.")
3154 (license license:bsd-3)))
3155
3156 (define-public ghc-time-locale-compat
3157 (package
3158 (name "ghc-time-locale-compat")
3159 (version "0.1.1.5")
3160 (source
3161 (origin
3162 (method url-fetch)
3163 (uri (string-append "https://hackage.haskell.org/package/"
3164 "time-locale-compat/time-locale-compat-"
3165 version ".tar.gz"))
3166 (sha256
3167 (base32
3168 "0b2hmj8wwrfkndwzgm11qr496ca2ahwdxcj3m0ii91bxvrk1bzq7"))))
3169 (build-system haskell-build-system)
3170 (inputs `(("ghc-old-locale" ,ghc-old-locale)))
3171 (home-page "https://github.com/khibino/haskell-time-locale-compat")
3172 (synopsis "Compatibility of TimeLocale between old-locale and time-1.5")
3173 (description "This package contains a wrapped name module for
3174 @code{TimeLocale}.")
3175 (license license:bsd-3)))
3176
3177 (define-public ghc-attoparsec
3178 (package
3179 (name "ghc-attoparsec")
3180 (version "0.13.2.2")
3181 (source
3182 (origin
3183 (method url-fetch)
3184 (uri (string-append
3185 "https://hackage.haskell.org/package/attoparsec/attoparsec-"
3186 version
3187 ".tar.gz"))
3188 (sha256
3189 (base32
3190 "0j6qcwd146yzlkc9mcvzvnixsyl65n2a68l28322q5v9p4g4g4yx"))))
3191 (build-system haskell-build-system)
3192 (arguments
3193 `(#:phases
3194 (modify-phases %standard-phases
3195 (add-after 'unpack 'patch-for-newer-quickcheck
3196 (lambda _
3197 (substitute* "attoparsec.cabal"
3198 (("QuickCheck >= 2\\.7 && < 2\\.10")
3199 "QuickCheck >= 2.7 && < 2.12"))
3200 ;; This test fails because of the newer QuickCheck:
3201 ;; <https://github.com/bos/attoparsec/issues/134>.
3202 (substitute* "tests/QC/ByteString.hs"
3203 ((", testProperty \"satisfyWith\" satisfyWith")
3204 "")))))))
3205 (inputs
3206 `(("ghc-scientific" ,ghc-scientific)
3207 ("ghc-text" ,ghc-text)))
3208 (native-inputs
3209 `(("ghc-tasty" ,ghc-tasty)
3210 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
3211 ("ghc-quickcheck" ,ghc-quickcheck)
3212 ("ghc-quickcheck-unicode" ,ghc-quickcheck-unicode)
3213 ("ghc-vector" ,ghc-vector)))
3214 (home-page "https://github.com/bos/attoparsec")
3215 (synopsis "Fast combinator parsing for bytestrings and text")
3216 (description "This library provides a fast parser combinator library,
3217 aimed particularly at dealing efficiently with network protocols and
3218 complicated text/binary file formats.")
3219 (license license:bsd-3)))
3220
3221 (define-public ghc-attoparsec-bootstrap
3222 (package
3223 (inherit ghc-attoparsec)
3224 (name "ghc-attoparsec-bootstrap")
3225 (arguments `(#:tests? #f))
3226 (inputs
3227 `(("ghc-scientific" ,ghc-scientific-bootstrap)
3228 ("ghc-text" ,ghc-text)))
3229 (native-inputs '())
3230 (properties '(hidden? #t))))
3231
3232 (define-public ghc-zip-archive
3233 (package
3234 (name "ghc-zip-archive")
3235 (version "0.3.3")
3236 (source
3237 (origin
3238 (method url-fetch)
3239 (uri (string-append
3240 "https://hackage.haskell.org/package/zip-archive/zip-archive-"
3241 version
3242 ".tar.gz"))
3243 (sha256
3244 (base32
3245 "0kf8xyac168bng8a0za2jwrbss7a4ralvci9g54hnvl0gkkxx2lq"))))
3246 (build-system haskell-build-system)
3247 (inputs
3248 `(("ghc-digest" ,ghc-digest)
3249 ("ghc-temporary" ,ghc-temporary)
3250 ("ghc-text" ,ghc-text)
3251 ("ghc-zlib" ,ghc-zlib)))
3252 (native-inputs
3253 `(("ghc-hunit" ,ghc-hunit)
3254 ("unzip" ,unzip)))
3255 (home-page "https://hackage.haskell.org/package/zip-archive")
3256 (synopsis "Zip archive library for Haskell")
3257 (description "The zip-archive library provides functions for creating,
3258 modifying, and extracting files from zip archives in Haskell.")
3259 (license license:bsd-3)))
3260
3261 (define-public ghc-distributive
3262 (package
3263 (name "ghc-distributive")
3264 (version "0.5.3")
3265 (source
3266 (origin
3267 (method url-fetch)
3268 (uri (string-append
3269 "https://hackage.haskell.org/package/distributive/distributive-"
3270 version
3271 ".tar.gz"))
3272 (sha256
3273 (base32
3274 "0y566r97sfyvhsmd4yxiz4ns2mqgwf5bdbp56wgxl6wlkidq0wwi"))))
3275 (build-system haskell-build-system)
3276 (arguments
3277 `(#:cabal-revision
3278 ("6" "06bd38rf31yrvvy989r44pm0id3dsxwcp6nxg7wk6ccj3n2b8rzk")))
3279 (inputs
3280 `(("ghc-tagged" ,ghc-tagged)
3281 ("ghc-base-orphans" ,ghc-base-orphans)
3282 ("ghc-transformers-compat" ,ghc-transformers-compat)
3283 ("ghc-semigroups" ,ghc-semigroups)
3284 ("ghc-generic-deriving" ,ghc-generic-deriving)))
3285 (native-inputs
3286 `(("cabal-doctest" ,cabal-doctest)
3287 ("ghc-doctest" ,ghc-doctest)
3288 ("ghc-hspec" ,ghc-hspec)
3289 ("hspec-discover" ,hspec-discover)))
3290 (home-page "https://github.com/ekmett/distributive/")
3291 (synopsis "Distributive functors for Haskell")
3292 (description "This package provides distributive functors for Haskell.
3293 Dual to @code{Traversable}.")
3294 (license license:bsd-3)))
3295
3296 (define-public ghc-cereal
3297 (package
3298 (name "ghc-cereal")
3299 (version "0.5.7.0")
3300 (source
3301 (origin
3302 (method url-fetch)
3303 (uri (string-append
3304 "https://hackage.haskell.org/package/cereal/cereal-"
3305 version
3306 ".tar.gz"))
3307 (sha256
3308 (base32
3309 "1j7imh2mzqcljld7sx0av69699955rpy3hzivi5723i6a9nszgbs"))))
3310 (build-system haskell-build-system)
3311 (native-inputs
3312 `(("ghc-quickcheck" ,ghc-quickcheck)
3313 ("ghc-fail" ,ghc-fail)
3314 ("ghc-test-framework" ,ghc-test-framework)
3315 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
3316 (home-page "https://hackage.haskell.org/package/cereal")
3317 (synopsis "Binary serialization library")
3318 (description "This package provides a binary serialization library,
3319 similar to @code{binary}, that introduces an @code{isolate} primitive for
3320 parser isolation, and labeled blocks for better error messages.")
3321 (license license:bsd-3)))
3322
3323 (define-public ghc-comonad
3324 (package
3325 (name "ghc-comonad")
3326 (version "5.0.4")
3327 (source
3328 (origin
3329 (method url-fetch)
3330 (uri (string-append
3331 "https://hackage.haskell.org/package/comonad/comonad-"
3332 version
3333 ".tar.gz"))
3334 (sha256
3335 (base32
3336 "09g870c4flp4k3fgbibsd0mmfjani1qcpbcl685v8x89kxzrva3q"))))
3337 (build-system haskell-build-system)
3338 (native-inputs
3339 `(("cabal-doctest" ,cabal-doctest)
3340 ("ghc-doctest" ,ghc-doctest)))
3341 (inputs
3342 `(("ghc-contravariant" ,ghc-contravariant)
3343 ("ghc-distributive" ,ghc-distributive)
3344 ("ghc-semigroups" ,ghc-semigroups)
3345 ("ghc-tagged" ,ghc-tagged)
3346 ("ghc-transformers-compat" ,ghc-transformers-compat)))
3347 (home-page "https://github.com/ekmett/comonad/")
3348 (synopsis "Comonads for Haskell")
3349 (description "This library provides @code{Comonad}s for Haskell.")
3350 (license license:bsd-3)))
3351
3352 (define-public hscolour
3353 (package
3354 (name "hscolour")
3355 (version "1.24.4")
3356 (source
3357 (origin
3358 (method url-fetch)
3359 (uri (string-append
3360 "https://hackage.haskell.org/package/hscolour/hscolour-"
3361 version
3362 ".tar.gz"))
3363 (sha256
3364 (base32
3365 "079jwph4bwllfp03yfr26s5zc6m6kw3nhb1cggrifh99haq34cr4"))))
3366 (build-system haskell-build-system)
3367 (home-page "https://hackage.haskell.org/package/hscolour")
3368 (synopsis "Script to colourise Haskell code")
3369 (description "HSColour is a small Haskell script to colourise Haskell
3370 code. It currently has six output formats: ANSI terminal codes (optionally
3371 XTerm-256colour codes), HTML 3.2 with font tags, HTML 4.01 with CSS, HTML 4.01
3372 with CSS and mouseover annotations, XHTML 1.0 with inline CSS styling, LaTeX,
3373 and mIRC chat codes.")
3374 (license license:bsd-3)))
3375
3376 (define-public ghc-polyparse
3377 (package
3378 (name "ghc-polyparse")
3379 (version "1.12")
3380 (source
3381 (origin
3382 (method url-fetch)
3383 (uri (string-append
3384 "https://hackage.haskell.org/package/polyparse/polyparse-"
3385 version
3386 ".tar.gz"))
3387 (sha256
3388 (base32
3389 "05dya1vdvq29hkhkdlsglzhw7bdn51rvs1javs0q75nf99c66k7m"))))
3390 (build-system haskell-build-system)
3391 (inputs
3392 `(("ghc-text" ,ghc-text)))
3393 (home-page
3394 "http://code.haskell.org/~malcolm/polyparse/")
3395 (synopsis
3396 "Alternative parser combinator libraries")
3397 (description
3398 "This package provides a variety of alternative parser combinator
3399 libraries, including the original HuttonMeijer set. The Poly sets have
3400 features like good error reporting, arbitrary token type, running state, lazy
3401 parsing, and so on. Finally, Text.Parse is a proposed replacement for the
3402 standard Read class, for better deserialisation of Haskell values from
3403 Strings.")
3404 (license license:lgpl2.1)))
3405
3406 (define-public ghc-extra
3407 (package
3408 (name "ghc-extra")
3409 (version "1.6.9")
3410 (source
3411 (origin
3412 (method url-fetch)
3413 (uri (string-append
3414 "https://hackage.haskell.org/package/extra/extra-"
3415 version
3416 ".tar.gz"))
3417 (sha256
3418 (base32
3419 "0xxcpb00pgwi9cmy6a7ghh6rblxry42p8pz5ssfgj20fs1xwzj1b"))))
3420 (build-system haskell-build-system)
3421 (inputs
3422 `(("ghc-clock" ,ghc-clock)
3423 ("ghc-quickcheck" ,ghc-quickcheck)))
3424 (home-page "https://github.com/ndmitchell/extra")
3425 (synopsis "Extra Haskell functions")
3426 (description "This library provides extra functions for the standard
3427 Haskell libraries. Most functions are simple additions, filling out missing
3428 functionality. A few functions are available in later versions of GHC, but
3429 this package makes them available back to GHC 7.2.")
3430 (license license:bsd-3)))
3431
3432 (define-public ghc-profunctors
3433 (package
3434 (name "ghc-profunctors")
3435 (version "5.2.2")
3436 (source
3437 (origin
3438 (method url-fetch)
3439 (uri (string-append
3440 "https://hackage.haskell.org/package/profunctors/profunctors-"
3441 version
3442 ".tar.gz"))
3443 (sha256
3444 (base32
3445 "0s1pwjidbn761xk43pmzyvn99hm3psdifjd78ylki7f97aiyd0g9"))))
3446 (build-system haskell-build-system)
3447 (arguments
3448 `(#:cabal-revision
3449 ("2" "1ywlg9z8nlhd2avgb8c6gbkv8zyk7hvc25926bafyg0m0k8y1amq")))
3450 (inputs
3451 `(("ghc-base-orphans" ,ghc-base-orphans)
3452 ("ghc-bifunctors" ,ghc-bifunctors)
3453 ("ghc-comonad" ,ghc-comonad)
3454 ("ghc-contravariant" ,ghc-contravariant)
3455 ("ghc-distributive" ,ghc-distributive)
3456 ("ghc-semigroups" ,ghc-semigroups)
3457 ("ghc-tagged" ,ghc-tagged)))
3458 (home-page "https://github.com/ekmett/profunctors/")
3459 (synopsis "Profunctors for Haskell")
3460 (description "This library provides profunctors for Haskell.")
3461 (license license:bsd-3)))
3462
3463 (define-public ghc-reducers
3464 (package
3465 (name "ghc-reducers")
3466 (version "3.12.3")
3467 (source
3468 (origin
3469 (method url-fetch)
3470 (uri (string-append
3471 "https://hackage.haskell.org/package/reducers/reducers-"
3472 version
3473 ".tar.gz"))
3474 (sha256
3475 (base32
3476 "09wf8pl9ycglcv6qj5ba26gkg2s5iy81hsx9xp0q8na0cwvp71ki"))))
3477 (build-system haskell-build-system)
3478 (inputs
3479 `(("ghc-fingertree" ,ghc-fingertree)
3480 ("ghc-hashable" ,ghc-hashable)
3481 ("ghc-text" ,ghc-text)
3482 ("ghc-unordered-containers" ,ghc-unordered-containers)
3483 ("ghc-semigroupoids" ,ghc-semigroupoids)
3484 ("ghc-semigroups" ,ghc-semigroups)))
3485 (home-page "https://github.com/ekmett/reducers/")
3486 (synopsis "Semigroups, specialized containers and a general map/reduce framework")
3487 (description "This library provides various semigroups, specialized
3488 containers and a general map/reduce framework for Haskell.")
3489 (license license:bsd-3)))
3490
3491 (define-public ghc-appar
3492 (package
3493 (name "ghc-appar")
3494 (version "0.1.4")
3495 (source
3496 (origin
3497 (method url-fetch)
3498 (uri (string-append
3499 "https://hackage.haskell.org/package/appar/appar-"
3500 version
3501 ".tar.gz"))
3502 (sha256
3503 (base32
3504 "09jb9ij78fdkz2qk66rw99q19qnm504dpv0yq0pjsl6xwjmndsjq"))))
3505 (build-system haskell-build-system)
3506 (home-page
3507 "https://hackage.haskell.org/package/appar")
3508 (synopsis "Simple applicative parser")
3509 (description "This package provides a simple applicative parser in Parsec
3510 style.")
3511 (license license:bsd-3)))
3512
3513 (define-public ghc-safe
3514 (package
3515 (name "ghc-safe")
3516 (version "0.3.17")
3517 (source
3518 (origin
3519 (method url-fetch)
3520 (uri (string-append
3521 "https://hackage.haskell.org/package/safe/safe-"
3522 version
3523 ".tar.gz"))
3524 (sha256
3525 (base32
3526 "0p3yaf5slvyz1cyy51jq64c5rlp8yzwim8iy2dlnk42if4gc9ibr"))))
3527 (build-system haskell-build-system)
3528 (native-inputs
3529 `(("ghc-quickcheck" ,ghc-quickcheck)))
3530 (home-page "https://github.com/ndmitchell/safe#readme")
3531 (synopsis "Library of safe (exception free) functions")
3532 (description "This library provides wrappers around @code{Prelude} and
3533 @code{Data.List} functions, such as @code{head} and @code{!!}, that can throw
3534 exceptions.")
3535 (license license:bsd-3)))
3536
3537 (define-public ghc-generic-deriving
3538 (package
3539 (name "ghc-generic-deriving")
3540 (version "1.12.2")
3541 (source
3542 (origin
3543 (method url-fetch)
3544 (uri (string-append
3545 "https://hackage.haskell.org/package/generic-deriving/generic-deriving-"
3546 version
3547 ".tar.gz"))
3548 (sha256
3549 (base32
3550 "1i7d6cpj9yhaqb79zays3nqchhaacacjz9bkc0zlwj73y5gvi22n"))))
3551 (build-system haskell-build-system)
3552 (inputs
3553 `(("ghc-th-abstraction" ,ghc-th-abstraction)))
3554 (native-inputs
3555 `(("ghc-hspec" ,ghc-hspec)
3556 ("hspec-discover" ,hspec-discover)))
3557 (home-page "https://hackage.haskell.org/package/generic-deriving")
3558 (synopsis "Generalise the deriving mechanism to arbitrary classes")
3559 (description "This package provides functionality for generalising the
3560 deriving mechanism in Haskell to arbitrary classes.")
3561 (license license:bsd-3)))
3562
3563 (define-public ghc-pcre-light
3564 (package
3565 (name "ghc-pcre-light")
3566 (version "0.4.0.4")
3567 (source
3568 (origin
3569 (method url-fetch)
3570 (uri (string-append
3571 "https://hackage.haskell.org/package/pcre-light/pcre-light-"
3572 version
3573 ".tar.gz"))
3574 (sha256
3575 (base32
3576 "0xcyi1fivwg7a92mch5bcqzmrfxzqj42rmb3m8kgs61x4qwpxj82"))))
3577 (build-system haskell-build-system)
3578 (inputs
3579 `(("pcre" ,pcre)))
3580 (native-inputs
3581 `(("pkg-config" ,pkg-config)))
3582 (home-page "https://github.com/Daniel-Diaz/pcre-light")
3583 (synopsis "Haskell library for Perl 5 compatible regular expressions")
3584 (description "This package provides a small, efficient, and portable regex
3585 library for Perl 5 compatible regular expressions. The PCRE library is a set
3586 of functions that implement regular expression pattern matching using the same
3587 syntax and semantics as Perl 5.")
3588 (license license:bsd-3)))
3589
3590 (define-public ghc-logict
3591 (package
3592 (name "ghc-logict")
3593 (version "0.6.0.2")
3594 (source
3595 (origin
3596 (method url-fetch)
3597 (uri (string-append
3598 "https://hackage.haskell.org/package/logict/logict-"
3599 version
3600 ".tar.gz"))
3601 (sha256
3602 (base32
3603 "07hnirv6snnym2r7iijlfz00b60jpy2856zvqxh989q0in7bd0hi"))))
3604 (build-system haskell-build-system)
3605 (home-page "http://code.haskell.org/~dolio/")
3606 (synopsis "Backtracking logic-programming monad")
3607 (description "This library provides a continuation-based, backtracking,
3608 logic programming monad. An adaptation of the two-continuation implementation
3609 found in the paper \"Backtracking, Interleaving, and Terminating Monad
3610 Transformers\" available @uref{http://okmij.org/ftp/papers/LogicT.pdf,
3611 online}.")
3612 (license license:bsd-3)))
3613
3614 (define-public ghc-xml
3615 (package
3616 (name "ghc-xml")
3617 (version "1.3.14")
3618 (source
3619 (origin
3620 (method url-fetch)
3621 (uri (string-append
3622 "https://hackage.haskell.org/package/xml/xml-"
3623 version
3624 ".tar.gz"))
3625 (sha256
3626 (base32
3627 "0g814lj7vaxvib2g3r734221k80k7ap9czv9hinifn8syals3l9j"))))
3628 (build-system haskell-build-system)
3629 (inputs
3630 `(("ghc-text" ,ghc-text)))
3631 (home-page "http://code.galois.com")
3632 (synopsis "Simple XML library for Haskell")
3633 (description "This package provides a simple XML library for Haskell.")
3634 (license license:bsd-3)))
3635
3636 (define-public ghc-feed
3637 (package
3638 (name "ghc-feed")
3639 (version "1.0.0.0")
3640 (source
3641 (origin
3642 (method url-fetch)
3643 (uri (string-append "https://hackage.haskell.org/package/"
3644 "feed/feed-" version ".tar.gz"))
3645 (sha256
3646 (base32
3647 "05rgg7x1984mgfhkmz792xj8lhwjgznixhygzr8blf517lns2nck"))))
3648 (build-system haskell-build-system)
3649 (arguments
3650 `(#:cabal-revision
3651 ("4" "0baavcavm3ywykcr9cm07aqr7sna98jba2n68lyn3kany8ri214d")))
3652 (inputs
3653 `(("ghc-base-compat" ,ghc-base-compat)
3654 ("ghc-old-locale" ,ghc-old-locale)
3655 ("ghc-old-time" ,ghc-old-time)
3656 ("ghc-safe" ,ghc-safe)
3657 ("ghc-text" ,ghc-text)
3658 ("ghc-time-locale-compat" ,ghc-time-locale-compat)
3659 ("ghc-utf8-string" ,ghc-utf8-string)
3660 ("ghc-xml-conduit" ,ghc-xml-conduit)
3661 ("ghc-xml-types" ,ghc-xml-types)))
3662 (native-inputs
3663 `(("ghc-hunit" ,ghc-hunit)
3664 ("ghc-test-framework" ,ghc-test-framework)
3665 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)))
3666 (home-page "https://github.com/bergmark/feed")
3667 (synopsis "Haskell package for handling various syndication formats")
3668 (description "This Haskell package includes tools for generating and
3669 consuming feeds in both RSS (Really Simple Syndication) and Atom format.")
3670 (license license:bsd-3)))
3671
3672 (define-public ghc-exceptions
3673 (package
3674 (name "ghc-exceptions")
3675 (version "0.10.0")
3676 (source
3677 (origin
3678 (method url-fetch)
3679 (uri (string-append
3680 "https://hackage.haskell.org/package/exceptions/exceptions-"
3681 version
3682 ".tar.gz"))
3683 (sha256
3684 (base32
3685 "1ms9zansv0pwzwdjncvx4kf18lnkjy2p61hvjhvxmjx5bqp93p8y"))))
3686 (build-system haskell-build-system)
3687 (native-inputs
3688 `(("ghc-quickcheck" ,ghc-quickcheck)
3689 ("ghc-test-framework" ,ghc-test-framework)
3690 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
3691 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
3692 (inputs
3693 `(("ghc-stm" ,ghc-stm)
3694 ("ghc-transformers-compat" ,ghc-transformers-compat)))
3695 (home-page "https://github.com/ekmett/exceptions/")
3696 (synopsis "Extensible optionally-pure exceptions")
3697 (description "This library provides extensible optionally-pure exceptions
3698 for Haskell.")
3699 (license license:bsd-3)))
3700
3701 (define-public ghc-temporary
3702 (package
3703 (name "ghc-temporary")
3704 (version "1.3")
3705 (source
3706 (origin
3707 (method url-fetch)
3708 (uri (string-append
3709 "https://hackage.haskell.org/package/temporary/temporary-"
3710 version
3711 ".tar.gz"))
3712 (sha256
3713 (base32
3714 "144qhwfwg37l3k313raf4ssiz16jbgwlm1nf4flgqpsbd69jji4c"))))
3715 (build-system haskell-build-system)
3716 (inputs
3717 `(("ghc-exceptions" ,ghc-exceptions)
3718 ("ghc-random" ,ghc-random)))
3719 (native-inputs
3720 `(("ghc-base-compat" ,ghc-base-compat)
3721 ("ghc-tasty" ,ghc-tasty)
3722 ("ghc-tasty-hunit" ,ghc-tasty-hunit)))
3723 (home-page "https://www.github.com/batterseapower/temporary")
3724 (synopsis "Temporary file and directory support")
3725 (description "The functions for creating temporary files and directories
3726 in the Haskelll base library are quite limited. This library just repackages
3727 the Cabal implementations of its own temporary file and folder functions so
3728 that you can use them without linking against Cabal or depending on it being
3729 installed.")
3730 (license license:bsd-3)))
3731
3732 (define-public ghc-temporary-rc
3733 (package
3734 (name "ghc-temporary-rc")
3735 (version "1.2.0.3")
3736 (source
3737 (origin
3738 (method url-fetch)
3739 (uri (string-append
3740 "https://hackage.haskell.org/package/temporary-rc/temporary-rc-"
3741 version
3742 ".tar.gz"))
3743 (sha256
3744 (base32
3745 "1nqih0qks439k3pr5kmbbc8rjdw730slrxlflqb27fbxbzb8skqs"))))
3746 (build-system haskell-build-system)
3747 (inputs `(("ghc-exceptions" ,ghc-exceptions)))
3748 (home-page
3749 "https://www.github.com/feuerbach/temporary")
3750 (synopsis
3751 "Portable temporary file and directory support")
3752 (description
3753 "The functions for creating temporary files and directories in the base
3754 library are quite limited. The unixutils package contains some good ones, but
3755 they aren't portable to Windows. This library just repackages the Cabal
3756 implementations of its own temporary file and folder functions so that you can
3757 use them without linking against Cabal or depending on it being installed.
3758 This is a better maintained fork of the \"temporary\" package.")
3759 (license license:bsd-3)))
3760
3761 (define-public ghc-smallcheck
3762 (package
3763 (name "ghc-smallcheck")
3764 (version "1.1.5")
3765 (source
3766 (origin
3767 (method url-fetch)
3768 (uri (string-append
3769 "https://hackage.haskell.org/package/smallcheck/smallcheck-"
3770 version
3771 ".tar.gz"))
3772 (sha256
3773 (base32
3774 "195fj7w3v03d1y1nm2ylavzrwxjcdbq0lb6zsw1dwyx5jmwfc84h"))))
3775 (build-system haskell-build-system)
3776 (inputs
3777 `(("ghc-logict" ,ghc-logict)))
3778 (home-page
3779 "https://github.com/feuerbach/smallcheck")
3780 (synopsis "Property-based testing library")
3781 (description "SmallCheck is a testing library that allows to verify
3782 properties for all test cases up to some depth. The test cases are generated
3783 automatically by SmallCheck.")
3784 (license license:bsd-3)))
3785
3786 (define-public ghc-silently
3787 (package
3788 (name "ghc-silently")
3789 (version "1.2.5")
3790 (source
3791 (origin
3792 (method url-fetch)
3793 (uri (string-append
3794 "https://hackage.haskell.org/package/silently/silently-"
3795 version
3796 ".tar.gz"))
3797 (sha256
3798 (base32
3799 "0f9qm3f7y0hpxn6mddhhg51mm1r134qkvd2kr8r6192ka1ijbxnf"))))
3800 (build-system haskell-build-system)
3801 (arguments `(#:tests? #f)) ;; circular dependency with nanospec
3802 ;; (inputs
3803 ;; `(("ghc-temporary" ,ghc-temporary)))
3804 (home-page "https://github.com/hspec/silently")
3805 (synopsis "Prevent writing to stdout")
3806 (description "This package provides functions to prevent or capture
3807 writing to stdout and other handles.")
3808 (license license:bsd-3)))
3809
3810 (define-public ghc-case-insensitive
3811 (package
3812 (name "ghc-case-insensitive")
3813 (version "1.2.0.11")
3814 (outputs '("out" "doc"))
3815 (source
3816 (origin
3817 (method url-fetch)
3818 (uri (string-append
3819 "https://hackage.haskell.org/package/case-insensitive/case-insensitive-"
3820 version
3821 ".tar.gz"))
3822 (sha256
3823 (base32
3824 "1qrpxfirsxckg7jv28f5ah2qc8lh95hp7rnqkbqs1ahcwlbnvkm7"))))
3825 (build-system haskell-build-system)
3826 ;; these inputs are necessary to use this library
3827 (inputs
3828 `(("ghc-text" ,ghc-text)
3829 ("ghc-hashable" ,ghc-hashable)))
3830 (arguments
3831 `(#:tests? #f)) ; FIXME: currently missing libraries used for tests.
3832 (home-page
3833 "https://github.com/basvandijk/case-insensitive")
3834 (synopsis "Case insensitive string comparison")
3835 (description
3836 "The module @code{Data.CaseInsensitive} provides the @code{CI} type
3837 constructor which can be parameterised by a string-like type like:
3838 @code{String}, @code{ByteString}, @code{Text}, etc. Comparisons of values of
3839 the resulting type will be insensitive to cases.")
3840 (license license:bsd-3)))
3841
3842 (define-public ghc-syb
3843 (package
3844 (name "ghc-syb")
3845 (version "0.7")
3846 (outputs '("out" "doc"))
3847 (source
3848 (origin
3849 (method url-fetch)
3850 (uri (string-append
3851 "https://hackage.haskell.org/package/syb/syb-"
3852 version
3853 ".tar.gz"))
3854 (sha256
3855 (base32
3856 "1da2zz7gqm4xbkx5vpd74dayx1svaxyl145fl14mq15lbb77sxdq"))))
3857 (build-system haskell-build-system)
3858 (inputs
3859 `(("ghc-hunit" ,ghc-hunit)))
3860 (home-page
3861 "http://www.cs.uu.nl/wiki/GenericProgramming/SYB")
3862 (synopsis "Scrap Your Boilerplate")
3863 (description "This package contains the generics system described in the
3864 /Scrap Your Boilerplate/ papers (see
3865 @uref{http://www.cs.uu.nl/wiki/GenericProgramming/SYB, the website}). It
3866 defines the @code{Data} class of types permitting folding and unfolding of
3867 constructor applications, instances of this class for primitive types, and a
3868 variety of traversals.")
3869 (license license:bsd-3)))
3870
3871 (define-public ghc-fgl
3872 (package
3873 (name "ghc-fgl")
3874 (version "5.6.0.0")
3875 (outputs '("out" "doc"))
3876 (source
3877 (origin
3878 (method url-fetch)
3879 (uri (string-append
3880 "https://hackage.haskell.org/package/fgl/fgl-"
3881 version
3882 ".tar.gz"))
3883 (sha256
3884 (base32
3885 "1i6cp4b3w7sjk7y1dq3fh6bci2sm5h3lnbbaw9ln19nwncg2wwll"))))
3886 (build-system haskell-build-system)
3887 (arguments
3888 `(#:phases
3889 (modify-phases %standard-phases
3890 (add-before 'configure 'update-constraints
3891 (lambda _
3892 (substitute* "fgl.cabal"
3893 (("QuickCheck >= 2\\.8 && < 2\\.10")
3894 "QuickCheck >= 2.8 && < 2.12")
3895 (("hspec >= 2\\.1 && < 2\\.5")
3896 "hspec >= 2.1 && < 2.6")))))))
3897 (inputs
3898 `(("ghc-hspec" ,ghc-hspec)
3899 ("ghc-quickcheck" ,ghc-quickcheck)))
3900 (home-page "https://web.engr.oregonstate.edu/~erwig/fgl/haskell")
3901 (synopsis
3902 "Martin Erwig's Functional Graph Library")
3903 (description "The functional graph library, FGL, is a collection of type
3904 and function definitions to address graph problems. The basis of the library
3905 is an inductive definition of graphs in the style of algebraic data types that
3906 encourages inductive, recursive definitions of graph algorithms.")
3907 (license license:bsd-3)))
3908
3909 (define-public ghc-chasingbottoms
3910 (package
3911 (name "ghc-chasingbottoms")
3912 (version "1.3.1.4")
3913 (source
3914 (origin
3915 (method url-fetch)
3916 (uri (string-append "https://hackage.haskell.org/package/ChasingBottoms/"
3917 "ChasingBottoms-" version ".tar.gz"))
3918 (sha256
3919 (base32
3920 "06cynx6hcbfpky7qq3b3mjjgwbnaxkwin3znbwq4b9ikiw0ng633"))))
3921 (build-system haskell-build-system)
3922 (inputs
3923 `(("ghc-quickcheck" ,ghc-quickcheck)
3924 ("ghc-random" ,ghc-random)
3925 ("ghc-syb" ,ghc-syb)))
3926 (home-page "https://hackage.haskell.org/package/ChasingBottoms")
3927 (synopsis "Testing of partial and infinite values in Haskell")
3928 (description
3929 ;; FIXME: There should be a @comma{} in the uref text, but it is not
3930 ;; rendered properly.
3931 "This is a library for testing code involving bottoms or infinite values.
3932 For the underlying theory and a larger example involving use of QuickCheck,
3933 see the article
3934 @uref{http://www.cse.chalmers.se/~nad/publications/danielsson-jansson-mpc2004.html,
3935 \"Chasing Bottoms A Case Study in Program Verification in the Presence of
3936 Partial and Infinite Values\"}.")
3937 (license license:expat)))
3938
3939 (define-public ghc-unordered-containers
3940 (package
3941 (name "ghc-unordered-containers")
3942 (version "0.2.9.0")
3943 (outputs '("out" "doc"))
3944 (source
3945 (origin
3946 (method url-fetch)
3947 (uri (string-append
3948 "https://hackage.haskell.org/package/unordered-containers"
3949 "/unordered-containers-" version ".tar.gz"))
3950 (sha256
3951 (base32
3952 "0l4264p0av12cc6i8gls13q8y27x12z2ar4x34n3x59y99fcnc37"))))
3953 (build-system haskell-build-system)
3954 (inputs
3955 `(("ghc-chasingbottoms" ,ghc-chasingbottoms)
3956 ("ghc-hunit" ,ghc-hunit)
3957 ("ghc-quickcheck" ,ghc-quickcheck)
3958 ("ghc-test-framework" ,ghc-test-framework)
3959 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
3960 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)
3961 ("ghc-hashable" ,ghc-hashable)))
3962 (home-page
3963 "https://github.com/tibbe/unordered-containers")
3964 (synopsis
3965 "Efficient hashing-based container types")
3966 (description
3967 "Efficient hashing-based container types. The containers have been
3968 optimized for performance critical use, both in terms of large data quantities
3969 and high speed.")
3970 (license license:bsd-3)))
3971
3972 (define-public ghc-unordered-containers-bootstrap
3973 (package
3974 (inherit ghc-unordered-containers)
3975 (name "ghc-unordered-containers-bootstrap")
3976 (arguments `(#:tests? #f))
3977 (inputs
3978 `(("ghc-hashable" ,ghc-hashable-bootstrap)))
3979 (properties '(hidden? #t))))
3980
3981 (define-public ghc-uniplate
3982 (package
3983 (name "ghc-uniplate")
3984 (version "1.6.12")
3985 (source
3986 (origin
3987 (method url-fetch)
3988 (uri (string-append
3989 "https://hackage.haskell.org/package/uniplate/uniplate-"
3990 version
3991 ".tar.gz"))
3992 (sha256
3993 (base32
3994 "1dx8f9aw27fz8kw0ad1nm6355w5rdl7bjvb427v2bsgnng30pipw"))))
3995 (build-system haskell-build-system)
3996 (inputs
3997 `(("ghc-syb" ,ghc-syb)
3998 ("ghc-hashable" ,ghc-hashable)
3999 ("ghc-unordered-containers" ,ghc-unordered-containers)))
4000 (home-page "http://community.haskell.org/~ndm/uniplate/")
4001 (synopsis "Simple, concise and fast generic operations")
4002 (description "Uniplate is a library for writing simple and concise generic
4003 operations. Uniplate has similar goals to the original Scrap Your Boilerplate
4004 work, but is substantially simpler and faster.")
4005 (license license:bsd-3)))
4006
4007 (define-public ghc-base64-bytestring
4008 (package
4009 (name "ghc-base64-bytestring")
4010 (version "1.0.0.2")
4011 (source
4012 (origin
4013 (method url-fetch)
4014 (uri (string-append
4015 "https://hackage.haskell.org/package/base64-bytestring/base64-bytestring-"
4016 version
4017 ".tar.gz"))
4018 (sha256
4019 (base32 "13305brzlac24pifiqd5a2z10c6k6amhpdy9cc0z5ryrkgnm8dhr"))))
4020 (build-system haskell-build-system)
4021 (arguments `(#:tests? #f)) ; FIXME: testing libraries are missing.
4022 (home-page "https://github.com/bos/base64-bytestring")
4023 (synopsis "Base64 encoding and decoding for ByteStrings")
4024 (description "This library provides fast base64 encoding and decoding for
4025 Haskell @code{ByteString}s.")
4026 (license license:bsd-3)))
4027
4028 (define-public ghc-annotated-wl-pprint
4029 (package
4030 (name "ghc-annotated-wl-pprint")
4031 (version "0.7.0")
4032 (source
4033 (origin
4034 (method url-fetch)
4035 (uri (string-append
4036 "https://hackage.haskell.org/package/annotated-wl-pprint"
4037 "/annotated-wl-pprint-" version
4038 ".tar.gz"))
4039 (sha256
4040 (base32
4041 "061xfz6qany3wf95csl8dcik2pz22cn8iv1qchhm16isw5zjs9hc"))))
4042 (build-system haskell-build-system)
4043 (home-page
4044 "https://github.com/david-christiansen/annotated-wl-pprint")
4045 (synopsis
4046 "The Wadler/Leijen Pretty Printer, with annotation support")
4047 (description "This is a modified version of wl-pprint, which was based on
4048 Wadler's paper \"A Prettier Printer\". This version allows the library user
4049 to annotate the text with semantic information, which can later be rendered in
4050 a variety of ways.")
4051 (license license:bsd-3)))
4052
4053 (define-public ghc-wl-pprint
4054 (package
4055 (name "ghc-wl-pprint")
4056 (version "1.2.1")
4057 (source (origin
4058 (method url-fetch)
4059 (uri (string-append
4060 "https://hackage.haskell.org/package/wl-pprint/wl-pprint-"
4061 version ".tar.gz"))
4062 (sha256
4063 (base32
4064 "0kn7y8pdrv8f87zhd5mifcl8fy3b2zvnzmzwhdqhxxlyzwiq6z0c"))))
4065 (build-system haskell-build-system)
4066 (home-page "https://hackage.haskell.org/package/wl-pprint")
4067 (synopsis "Wadler/Leijen pretty printer")
4068 (description
4069 "This is a pretty printing library based on Wadler's paper @i{A Prettier
4070 Printer}. This version allows the library user to declare overlapping
4071 instances of the @code{Pretty} class.")
4072 (license license:bsd-3)))
4073
4074 (define-public ghc-ansi-wl-pprint
4075 (package
4076 (name "ghc-ansi-wl-pprint")
4077 (version "0.6.8.2")
4078 (source
4079 (origin
4080 (method url-fetch)
4081 (uri (string-append "https://hackage.haskell.org/package/"
4082 "ansi-wl-pprint/ansi-wl-pprint-"
4083 version ".tar.gz"))
4084 (sha256
4085 (base32
4086 "0gnb4mkqryv08vncxnj0bzwcnd749613yw3cxfzw6y3nsldp4c56"))))
4087 (build-system haskell-build-system)
4088 (inputs
4089 `(("ghc-ansi-terminal" ,ghc-ansi-terminal-0.8)))
4090 (home-page "https://github.com/ekmett/ansi-wl-pprint")
4091 (synopsis "Wadler/Leijen Pretty Printer for colored ANSI terminal output")
4092 (description "This is a pretty printing library based on Wadler's paper
4093 \"A Prettier Printer\". It has been enhanced with support for ANSI terminal
4094 colored output using the ansi-terminal package.")
4095 (license license:bsd-3)))
4096
4097 (define-public ghc-split
4098 (package
4099 (name "ghc-split")
4100 (version "0.2.3.3")
4101 (outputs '("out" "doc"))
4102 (source
4103 (origin
4104 (method url-fetch)
4105 (uri (string-append
4106 "https://hackage.haskell.org/package/split/split-"
4107 version
4108 ".tar.gz"))
4109 (sha256
4110 (base32
4111 "04qlmkcyklznl03gsjg95b4nzb6i96gdapqg60rny9szgi7ngk8x"))))
4112 (build-system haskell-build-system)
4113 (native-inputs
4114 `(("ghc-quickcheck" ,ghc-quickcheck)))
4115 (home-page "https://hackage.haskell.org/package/split")
4116 (synopsis "Combinator library for splitting lists")
4117 (description "This package provides a collection of Haskell functions for
4118 splitting lists into parts, akin to the @code{split} function found in several
4119 mainstream languages.")
4120 (license license:bsd-3)))
4121
4122 (define-public ghc-parsec
4123 (package
4124 (name "ghc-parsec")
4125 (version "3.1.13.0")
4126 (outputs '("out" "doc"))
4127 (source
4128 (origin
4129 (method url-fetch)
4130 (uri (string-append
4131 "https://hackage.haskell.org/package/parsec/parsec-"
4132 version
4133 ".tar.gz"))
4134 (sha256
4135 (base32 "1wc09pyn70p8z6llink10c8pqbh6ikyk554911yfwxv1g91swqbq"))))
4136 (build-system haskell-build-system)
4137 (native-inputs
4138 `(("ghc-hunit" ,ghc-hunit)))
4139 (inputs
4140 `(("ghc-text" ,ghc-text)))
4141 (arguments
4142 `(#:tests? #f)) ; FIXME: currently missing libraries used for tests.
4143 (home-page
4144 "https://github.com/aslatter/parsec")
4145 (synopsis "Monadic parser combinators")
4146 (description "Parsec is a parser library. It is simple, safe, well
4147 documented, has extensive libraries, good error messages, and is fast. It is
4148 defined as a monad transformer that can be stacked on arbitrary monads, and it
4149 is also parametric in the input stream type.")
4150 (license license:bsd-3)))
4151
4152 (define-public ghc-parser-combinators
4153 (package
4154 (name "ghc-parser-combinators")
4155 (version "1.0.0")
4156 (source
4157 (origin
4158 (method url-fetch)
4159 (uri (string-append "https://hackage.haskell.org/package/"
4160 "parser-combinators/parser-combinators-"
4161 version ".tar.gz"))
4162 (sha256
4163 (base32
4164 "1pwfdsklqwvaynwpdzmx1bs35mp6dpsyaqdnzxnqcrxwf5h8sk75"))))
4165 (build-system haskell-build-system)
4166 (home-page "https://github.com/mrkkrp/parser-combinators")
4167 (synopsis "Commonly useful parser combinators")
4168 (description
4169 "This is a lightweight package providing commonly useful parser
4170 combinators.")
4171 (license license:bsd-3)))
4172
4173 (define-public ghc-megaparsec
4174 (package
4175 (name "ghc-megaparsec")
4176 (version "6.5.0")
4177 (source
4178 (origin
4179 (method url-fetch)
4180 (uri (string-append "https://hackage.haskell.org/package/"
4181 "megaparsec/megaparsec-"
4182 version ".tar.gz"))
4183 (sha256
4184 (base32
4185 "12iggy7qpf8x93jm64zf0g215xwy779bqyfyjk2bhmxqqr1yzgdy"))))
4186 (build-system haskell-build-system)
4187 (arguments
4188 `(#:cabal-revision
4189 ("4" "0ij3asi5vwlhbgwsy6nhli9a0qb7926mg809fsgyl1rnhs9fvpx1")))
4190 (inputs
4191 `(("ghc-case-insensitive" ,ghc-case-insensitive)
4192 ("ghc-parser-combinators" ,ghc-parser-combinators)
4193 ("ghc-scientific" ,ghc-scientific)
4194 ("ghc-text" ,ghc-text)))
4195 (native-inputs
4196 `(("ghc-quickcheck" ,ghc-quickcheck)
4197 ("ghc-hspec" ,ghc-hspec)
4198 ("ghc-hspec-expectations" ,ghc-hspec-expectations)
4199 ("hspec-discover" ,hspec-discover)))
4200 (home-page "https://github.com/mrkkrp/megaparsec")
4201 (synopsis "Monadic parser combinators")
4202 (description
4203 "This is an industrial-strength monadic parser combinator library.
4204 Megaparsec is a feature-rich package that strikes a nice balance between
4205 speed, flexibility, and quality of parse errors.")
4206 (license license:bsd-2)))
4207
4208 (define-public ghc-vector
4209 (package
4210 (name "ghc-vector")
4211 (version "0.12.0.1")
4212 (outputs '("out" "doc"))
4213 (source
4214 (origin
4215 (method url-fetch)
4216 (uri (string-append
4217 "https://hackage.haskell.org/package/vector/vector-"
4218 version
4219 ".tar.gz"))
4220 (sha256
4221 (base32
4222 "0yrx2ypiaxahvaz84af5bi855hd3107kxkbqc8km29nsp5wyw05i"))))
4223 (build-system haskell-build-system)
4224 ;; FIXME: To simplify upgrading all Haskell packages, we leave the tests
4225 ;; disabled for now.
4226 (arguments
4227 `(#:cabal-revision
4228 ("3" "0y5rh8k710i2a3p1h2rghvr5cfg78p5h0kbfi7ifxqqf6pzlyr1x")
4229 #:tests? #f))
4230 (inputs
4231 `(("ghc-primitive" ,ghc-primitive)
4232 ("ghc-random" ,ghc-random)
4233 ("ghc-quickcheck" ,ghc-quickcheck)
4234 ;; ("ghc-hunit" ,ghc-hunit)
4235 ;; ("ghc-test-framework" ,ghc-test-framework)
4236 ;; ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
4237 ;; ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)
4238 ))
4239 (home-page "https://github.com/haskell/vector")
4240 (synopsis "Efficient Arrays")
4241 (description "This library provides an efficient implementation of
4242 Int-indexed arrays (both mutable and immutable), with a powerful loop
4243 optimisation framework.")
4244 (license license:bsd-3)))
4245
4246 (define-public ghc-vector-binary-instances
4247 (package
4248 (name "ghc-vector-binary-instances")
4249 (version "0.2.4")
4250 (source
4251 (origin
4252 (method url-fetch)
4253 (uri (string-append
4254 "https://hackage.haskell.org/package/"
4255 "vector-binary-instances/vector-binary-instances-"
4256 version ".tar.gz"))
4257 (sha256
4258 (base32
4259 "1y236jb72iab9ska1mc48z6yb0xgwmj45laaqdyjxksd84z7hbrb"))))
4260 (build-system haskell-build-system)
4261 (arguments
4262 `(#:cabal-revision
4263 ("1" "196frl4akhfk7xf1nxzn8lmq99dxhzhsimanswn9yy7ym8zhki4i")))
4264 (inputs
4265 `(("ghc-vector" ,ghc-vector)))
4266 (native-inputs
4267 `(("ghc-tasty" ,ghc-tasty)
4268 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
4269 (home-page "https://github.com/bos/vector-binary-instances")
4270 (synopsis "Instances of Data.Binary and Data.Serialize for vector")
4271 (description "This library provides instances of @code{Binary} for the
4272 types defined in the @code{vector} package, making it easy to serialize
4273 vectors to and from disk. We use the generic interface to vectors, so all
4274 vector types are supported. Specific instances are provided for unboxed,
4275 boxed and storable vectors.")
4276 (license license:bsd-3)))
4277
4278 (define-public ghc-bloomfilter
4279 (package
4280 (name "ghc-bloomfilter")
4281 (version "2.0.1.0")
4282 (source
4283 (origin
4284 (method url-fetch)
4285 (uri (string-append "https://hackage.haskell.org/package/"
4286 "bloomfilter/bloomfilter-" version ".tar.gz"))
4287 (sha256
4288 (base32
4289 "03vrmncg1c10a2wcg5skq30m1yiknn7nwxz2gblyyfaxglshspkc"))))
4290 (build-system haskell-build-system)
4291 (native-inputs
4292 `(("ghc-quickcheck" ,ghc-quickcheck)
4293 ("ghc-random" ,ghc-random)
4294 ("ghc-test-framework" ,ghc-test-framework)
4295 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
4296 (home-page "https://github.com/bos/bloomfilter")
4297 (synopsis "Pure and impure Bloom filter implementations")
4298 (description "This package provides both mutable and immutable Bloom
4299 filter data types, along with a family of hash functions and an easy-to-use
4300 interface.")
4301 (license license:bsd-3)))
4302
4303 (define-public ghc-network
4304 (package
4305 (name "ghc-network")
4306 (version "2.6.3.6")
4307 (outputs '("out" "doc"))
4308 (source
4309 (origin
4310 (method url-fetch)
4311 (uri (string-append
4312 "https://hackage.haskell.org/package/network/network-"
4313 version
4314 ".tar.gz"))
4315 (sha256
4316 (base32
4317 "198mam7ahny48p9fajznbqq16a8ya2gw0xm3gnm1si1rmc4hdplv"))))
4318 (build-system haskell-build-system)
4319 ;; The regression tests depend on an unpublished module.
4320 (arguments `(#:tests? #f))
4321 (native-inputs
4322 `(("ghc-hunit" ,ghc-hunit)
4323 ("ghc-doctest" ,ghc-doctest)
4324 ("ghc-test-framework" ,ghc-test-framework)
4325 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)))
4326 (home-page "https://github.com/haskell/network")
4327 (synopsis "Low-level networking interface")
4328 (description
4329 "This package provides a low-level networking interface.")
4330 (license license:bsd-3)))
4331
4332 (define-public ghc-network-uri
4333 (package
4334 (name "ghc-network-uri")
4335 (version "2.6.1.0")
4336 (outputs '("out" "doc"))
4337 (source
4338 (origin
4339 (method url-fetch)
4340 (uri (string-append
4341 "https://hackage.haskell.org/package/network-uri/network-uri-"
4342 version
4343 ".tar.gz"))
4344 (sha256
4345 (base32
4346 "1w27zkvn39kjr9lmw9421y8w43h572ycsfafsb7kyvr3a4ihlgj2"))))
4347 (build-system haskell-build-system)
4348 (arguments
4349 `(#:tests? #f)) ; FIXME: currently missing libraries used for tests.
4350 (native-inputs
4351 `(("ghc-hunit" ,ghc-hunit)))
4352 (inputs
4353 `(("ghc-parsec" ,ghc-parsec)
4354 ("ghc-network" ,ghc-network)))
4355 (home-page
4356 "https://github.com/haskell/network-uri")
4357 (synopsis "Library for URI manipulation")
4358 (description "This package provides an URI manipulation interface. In
4359 @code{network-2.6} the @code{Network.URI} module was split off from the
4360 @code{network} package into this package.")
4361 (license license:bsd-3)))
4362
4363 (define-public ghc-ansi-terminal
4364 (package
4365 (name "ghc-ansi-terminal")
4366 (version "0.9.1")
4367 (source
4368 (origin
4369 (method url-fetch)
4370 (uri (string-append
4371 "https://hackage.haskell.org/package/ansi-terminal/ansi-terminal-"
4372 version
4373 ".tar.gz"))
4374 (sha256
4375 (base32
4376 "1yr0ld0kqns3w3j9gl62bdwshvyazidx4dv1qkvq19ivnf08w23l"))))
4377 (build-system haskell-build-system)
4378 (inputs
4379 `(("ghc-colour" ,ghc-colour)))
4380 (home-page "https://github.com/feuerbach/ansi-terminal")
4381 (synopsis "ANSI terminal support for Haskell")
4382 (description "This package provides ANSI terminal support for Haskell. It
4383 allows cursor movement, screen clearing, color output showing or hiding the
4384 cursor, and changing the title.")
4385 (license license:bsd-3)))
4386
4387 (define-public ghc-ansi-terminal-0.8
4388 (package (inherit ghc-ansi-terminal)
4389 (name "ghc-ansi-terminal")
4390 (version "0.8.0.4")
4391 (source
4392 (origin
4393 (method url-fetch)
4394 (uri (string-append
4395 "https://hackage.haskell.org/package/ansi-terminal/ansi-terminal-"
4396 version
4397 ".tar.gz"))
4398 (sha256
4399 (base32
4400 "0428gq8m3fdnb7ldcsyk97qcch76hcxbgh2666p6f76fs2qbhg7b"))))))
4401
4402 (define-public ghc-vault
4403 (package
4404 (name "ghc-vault")
4405 (version "0.3.1.2")
4406 (source
4407 (origin
4408 (method url-fetch)
4409 (uri (string-append
4410 "https://hackage.haskell.org/package/vault/vault-"
4411 version
4412 ".tar.gz"))
4413 (sha256
4414 (base32
4415 "072mbrihsdsb8c6xvg6lvk0rqjgvxvi8qkg4n6wwym5hq0pfa04y"))))
4416 (build-system haskell-build-system)
4417 (inputs
4418 `(("ghc-unordered-containers" ,ghc-unordered-containers)
4419 ("ghc-hashable" ,ghc-hashable)
4420 ("ghc-semigroupoids" ,ghc-semigroupoids)))
4421 (home-page
4422 "https://github.com/HeinrichApfelmus/vault")
4423 (synopsis "Persistent store for arbitrary values")
4424 (description "This package provides vaults for Haskell. A vault is a
4425 persistent store for values of arbitrary types. It's like having first-class
4426 access to the storage space behind @code{IORefs}. The data structure is
4427 analogous to a bank vault, where you can access different bank boxes with
4428 different keys; hence the name. Also provided is a @code{locker} type,
4429 representing a store for a single element.")
4430 (license license:bsd-3)))
4431
4432 (define-public ghc-edisonapi
4433 (package
4434 (name "ghc-edisonapi")
4435 (version "1.3.1")
4436 (source
4437 (origin
4438 (method url-fetch)
4439 (uri (string-append "https://hackage.haskell.org/package/EdisonAPI"
4440 "/EdisonAPI-" version ".tar.gz"))
4441 (sha256
4442 (base32 "0vmmlsj8ggbpwx6fkf5fvb6jp0zpx6iba6b28m80lllr2p8bi8wm"))))
4443 (build-system haskell-build-system)
4444 (home-page "http://rwd.rdockins.name/edison/home/")
4445 (synopsis "Library of efficient, purely-functional data structures (API)")
4446 (description
4447 "Edison is a library of purely functional data structures written by
4448 Chris Okasaki. It is named after Thomas Alva Edison and for the mnemonic
4449 value EDiSon (Efficient Data Structures). Edison provides several families of
4450 abstractions, each with multiple implementations. The main abstractions
4451 provided by Edison are: Sequences such as stacks, queues, and dequeues;
4452 Collections such as sets, bags and heaps; and Associative Collections such as
4453 finite maps and priority queues where the priority and element are distinct.")
4454 (license license:expat)))
4455
4456 (define-public ghc-edisoncore
4457 (package
4458 (name "ghc-edisoncore")
4459 (version "1.3.2.1")
4460 (source
4461 (origin
4462 (method url-fetch)
4463 (uri (string-append "https://hackage.haskell.org/package/EdisonCore"
4464 "/EdisonCore-" version ".tar.gz"))
4465 (sha256
4466 (base32 "0fgj5iwiv3v2gdgx7kjcr15dcs4x1kvmjspp3p99wyhh0x6h3ikk"))))
4467 (build-system haskell-build-system)
4468 (inputs
4469 `(("ghc-quickcheck" ,ghc-quickcheck)
4470 ("ghc-edisonapi" ,ghc-edisonapi)))
4471 (home-page "http://rwd.rdockins.name/edison/home/")
4472 (synopsis "Library of efficient, purely-functional data structures")
4473 (description
4474 "This package provides the core Edison data structure implementations,
4475 including multiple sequence, set, bag, and finite map concrete implementations
4476 with various performance characteristics.")
4477 (license license:expat)))
4478
4479 (define-public ghc-mmorph
4480 (package
4481 (name "ghc-mmorph")
4482 (version "1.1.2")
4483 (source
4484 (origin
4485 (method url-fetch)
4486 (uri (string-append
4487 "https://hackage.haskell.org/package/mmorph/mmorph-"
4488 version
4489 ".tar.gz"))
4490 (sha256
4491 (base32
4492 "1gjz1ib968lqybma7my1n19qq6cdj6a7nskrlnwy4jy9jrwzs2n9"))))
4493 (build-system haskell-build-system)
4494 (inputs
4495 `(("ghc-transformers-compat" ,ghc-transformers-compat)))
4496 (home-page "https://hackage.haskell.org/package/mmorph")
4497 (synopsis "Monad morphisms")
4498 (description
4499 "This library provides monad morphism utilities, most commonly used for
4500 manipulating monad transformer stacks.")
4501 (license license:bsd-3)))
4502
4503 (define-public ghc-ifelse
4504 (package
4505 (name "ghc-ifelse")
4506 (version "0.85")
4507 (source
4508 (origin
4509 (method url-fetch)
4510 (uri (string-append "https://hackage.haskell.org/package/"
4511 "IfElse/IfElse-" version ".tar.gz"))
4512 (sha256
4513 (base32
4514 "1kfx1bwfjczj93a8yqz1n8snqiq5655qgzwv1lrycry8wb1vzlwa"))))
4515 (build-system haskell-build-system)
4516 (home-page "http://hackage.haskell.org/package/IfElse")
4517 (synopsis "Monadic control flow with anaphoric variants")
4518 (description "This library provides functions for control flow inside of
4519 monads with anaphoric variants on @code{if} and @code{when} and a C-like
4520 @code{switch} function.")
4521 (license license:bsd-3)))
4522
4523 (define-public ghc-monad-control
4524 (package
4525 (name "ghc-monad-control")
4526 (version "1.0.2.3")
4527 (source
4528 (origin
4529 (method url-fetch)
4530 (uri (string-append
4531 "https://hackage.haskell.org/package/monad-control"
4532 "/monad-control-" version ".tar.gz"))
4533 (sha256
4534 (base32
4535 "1c92833gr6cadidjdp8mlznkpp8lyxl0w3y7d19y8yi3klc3843c"))))
4536 (build-system haskell-build-system)
4537 (inputs
4538 `(("ghc-stm" ,ghc-stm)
4539 ("ghc-transformers-base" ,ghc-transformers-base)
4540 ("ghc-transformers-compat" ,ghc-transformers-compat)))
4541 (home-page "https://github.com/basvandijk/monad-control")
4542 (synopsis "Monad transformers to lift control operations like exception
4543 catching")
4544 (description "This package defines the type class @code{MonadBaseControl},
4545 a subset of @code{MonadBase} into which generic control operations such as
4546 @code{catch} can be lifted from @code{IO} or any other base monad.")
4547 (license license:bsd-3)))
4548
4549 (define-public ghc-fail
4550 (package
4551 (name "ghc-fail")
4552 (version "4.9.0.0")
4553 (source
4554 (origin
4555 (method url-fetch)
4556 (uri (string-append "https://hackage.haskell.org/package/fail/fail-"
4557 version ".tar.gz"))
4558 (sha256
4559 (base32 "18nlj6xvnggy61gwbyrpmvbdkq928wv0wx2zcsljb52kbhddnp3d"))))
4560 (build-system haskell-build-system)
4561 (arguments `(#:haddock? #f)) ; Package contains no documentation.
4562 (home-page "https://prime.haskell.org/wiki/Libraries/Proposals/MonadFail")
4563 (synopsis "Forward-compatible MonadFail class")
4564 (description
4565 "This package contains the @code{Control.Monad.Fail} module providing the
4566 @uref{https://prime.haskell.org/wiki/Libraries/Proposals/MonadFail, MonadFail}
4567 class that became available in
4568 @uref{https://hackage.haskell.org/package/base-4.9.0.0, base-4.9.0.0} for
4569 older @code{base} package versions. This package turns into an empty package
4570 when used with GHC versions which already provide the
4571 @code{Control.Monad.Fail} module.")
4572 (license license:bsd-3)))
4573
4574 (define-public ghc-monadplus
4575 (package
4576 (name "ghc-monadplus")
4577 (version "1.4.2")
4578 (source
4579 (origin
4580 (method url-fetch)
4581 (uri (string-append "https://hackage.haskell.org/package/monadplus"
4582 "/monadplus-" version ".tar.gz"))
4583 (sha256
4584 (base32 "15b5320wdpmdp5slpphnc1x4rhjch3igw245dp2jxbqyvchdavin"))))
4585 (build-system haskell-build-system)
4586 (home-page "https://hackage.haskell.org/package/monadplus")
4587 (synopsis "Filtering and folding over arbitrary MonadPlus instances")
4588 (description
4589 "This package generalizes many common stream operations such as
4590 @code{filter}, @code{catMaybes} etc, enabling filtering and folding over
4591 arbitrary @code{MonadPlus} instances.")
4592 (license license:bsd-3)))
4593
4594 (define-public ghc-byteorder
4595 (package
4596 (name "ghc-byteorder")
4597 (version "1.0.4")
4598 (source
4599 (origin
4600 (method url-fetch)
4601 (uri (string-append
4602 "https://hackage.haskell.org/package/byteorder/byteorder-"
4603 version
4604 ".tar.gz"))
4605 (sha256
4606 (base32
4607 "06995paxbxk8lldvarqpb3ygcjbg4v8dk4scib1rjzwlhssvn85x"))))
4608 (build-system haskell-build-system)
4609 (home-page
4610 "http://community.haskell.org/~aslatter/code/byteorder")
4611 (synopsis
4612 "Exposes the native endianness of the system")
4613 (description
4614 "This package is for working with the native byte-ordering of the
4615 system.")
4616 (license license:bsd-3)))
4617
4618 (define-public ghc-base-compat
4619 (package
4620 (name "ghc-base-compat")
4621 (version "0.10.4")
4622 (source
4623 (origin
4624 (method url-fetch)
4625 (uri (string-append
4626 "https://hackage.haskell.org/package/base-compat/base-compat-"
4627 version
4628 ".tar.gz"))
4629 (sha256
4630 (base32
4631 "0ksp990gxs731mq19rzbxrbs43nazfljjc8krlx5bjqblw3kfs8d"))))
4632 (build-system haskell-build-system)
4633 (native-inputs
4634 `(("ghc-quickcheck" ,ghc-quickcheck)
4635 ("ghc-hspec" ,ghc-hspec)
4636 ("hspec-discover" ,hspec-discover)))
4637 (home-page "https://hackage.haskell.org/package/base-compat")
4638 (synopsis "Haskell compiler compatibility library")
4639 (description "This library provides functions available in later versions
4640 of base to a wider range of compilers, without requiring the use of CPP
4641 pragmas in your code.")
4642 (license license:bsd-3)))
4643
4644 (define-public ghc-blaze-builder
4645 (package
4646 (name "ghc-blaze-builder")
4647 (version "0.4.1.0")
4648 (source
4649 (origin
4650 (method url-fetch)
4651 (uri (string-append
4652 "https://hackage.haskell.org/package/blaze-builder/blaze-builder-"
4653 version
4654 ".tar.gz"))
4655 (sha256
4656 (base32
4657 "05681dih2d8s96an945wkbwl05w8ddbcfx8n3r3ck79ydyb8pz4i"))))
4658 (build-system haskell-build-system)
4659 (arguments `(#:tests? #f)) ; FIXME: Missing test libraries.
4660 (inputs
4661 `(("ghc-text" ,ghc-text)
4662 ("ghc-utf8-string" ,ghc-utf8-string)))
4663 (home-page "https://github.com/lpsmith/blaze-builder")
4664 (synopsis "Efficient buffered output")
4665 (description "This library provides an implementation of the older
4666 @code{blaze-builder} interface in terms of the new builder that shipped with
4667 @code{bytestring-0.10.4.0}. This implementation is mostly intended as a
4668 bridge to the new builder, so that code that uses the old interface can
4669 interoperate with code that uses the new implementation.")
4670 (license license:bsd-3)))
4671
4672 (define-public ghc-blaze-markup
4673 (package
4674 (name "ghc-blaze-markup")
4675 (version "0.8.2.1")
4676 (source
4677 (origin
4678 (method url-fetch)
4679 (uri (string-append "https://hackage.haskell.org/package/"
4680 "blaze-markup/blaze-markup-"
4681 version ".tar.gz"))
4682 (sha256
4683 (base32
4684 "0ih1c3qahkdgzbqihdhny5s313l2m66fbb88w8jbx7yz56y7rawh"))))
4685 (build-system haskell-build-system)
4686 (arguments
4687 `(#:phases
4688 (modify-phases %standard-phases
4689 (add-before 'configure 'update-constraints
4690 (lambda _
4691 (substitute* "blaze-markup.cabal"
4692 (("tasty >= 1\\.0 && < 1\\.1")
4693 "tasty >= 1.0 && < 1.2")))))))
4694 (inputs
4695 `(("ghc-blaze-builder" ,ghc-blaze-builder)
4696 ("ghc-text" ,ghc-text)))
4697 (native-inputs
4698 `(("ghc-hunit" ,ghc-hunit)
4699 ("ghc-quickcheck" ,ghc-quickcheck)
4700 ("ghc-tasty" ,ghc-tasty)
4701 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
4702 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
4703 (home-page "https://jaspervdj.be/blaze")
4704 (synopsis "Fast markup combinator library for Haskell")
4705 (description "This library provides core modules of a markup combinator
4706 library for Haskell.")
4707 (license license:bsd-3)))
4708
4709 (define-public ghc-easy-file
4710 (package
4711 (name "ghc-easy-file")
4712 (version "0.2.2")
4713 (source
4714 (origin
4715 (method url-fetch)
4716 (uri (string-append
4717 "https://hackage.haskell.org/package/easy-file/easy-file-"
4718 version
4719 ".tar.gz"))
4720 (sha256
4721 (base32
4722 "0zmlcz723051qpn8l8vi51c5rx1blwrw4094jcshkmj8p9r2xxaj"))))
4723 (build-system haskell-build-system)
4724 (home-page
4725 "https://github.com/kazu-yamamoto/easy-file")
4726 (synopsis "File handling library for Haskell")
4727 (description "This library provides file handling utilities for Haskell.")
4728 (license license:bsd-3)))
4729
4730 (define-public ghc-async
4731 (package
4732 (name "ghc-async")
4733 (version "2.2.1")
4734 (source
4735 (origin
4736 (method url-fetch)
4737 (uri (string-append
4738 "https://hackage.haskell.org/package/async/async-"
4739 version
4740 ".tar.gz"))
4741 (sha256
4742 (base32
4743 "09whscli1q5z7lzyq9rfk0bq1ydplh6pjmc6qv0x668k5818c2wg"))))
4744 (build-system haskell-build-system)
4745 (inputs
4746 `(("ghc-stm" ,ghc-stm)
4747 ("ghc-hashable" ,ghc-hashable)
4748 ("ghc-hunit" ,ghc-hunit)
4749 ("ghc-test-framework" ,ghc-test-framework)
4750 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)))
4751 (home-page "https://github.com/simonmar/async")
4752 (synopsis "Library to run IO operations asynchronously")
4753 (description "Async provides a library to run IO operations
4754 asynchronously, and wait for their results. It is a higher-level interface
4755 over threads in Haskell, in which @code{Async a} is a concurrent thread that
4756 will eventually deliver a value of type @code{a}.")
4757 (license license:bsd-3)))
4758
4759 (define-public ghc-fingertree
4760 (package
4761 (name "ghc-fingertree")
4762 (version "0.1.4.1")
4763 (source
4764 (origin
4765 (method url-fetch)
4766 (uri (string-append
4767 "https://hackage.haskell.org/package/fingertree/fingertree-"
4768 version ".tar.gz"))
4769 (sha256
4770 (base32
4771 "192fyzv0pn1437wdpqg1l80rswkk4rw3w61r4bq7dhv354bdqy4p"))))
4772 (build-system haskell-build-system)
4773 (native-inputs
4774 `(("ghc-hunit" ,ghc-hunit)
4775 ("ghc-quickcheck" ,ghc-quickcheck)
4776 ("ghc-test-framework" ,ghc-test-framework)
4777 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
4778 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
4779 (home-page "https://hackage.haskell.org/package/fingertree")
4780 (synopsis "Generic finger-tree structure")
4781 (description "This library provides finger trees, a general sequence
4782 representation with arbitrary annotations, for use as a base for
4783 implementations of various collection types. It includes examples, as
4784 described in section 4 of Ralf Hinze and Ross Paterson, \"Finger trees: a
4785 simple general-purpose data structure\".")
4786 (license license:bsd-3)))
4787
4788 (define-public ghc-optparse-applicative
4789 (package
4790 (name "ghc-optparse-applicative")
4791 (version "0.14.2.0")
4792 (source
4793 (origin
4794 (method url-fetch)
4795 (uri (string-append
4796 "https://hackage.haskell.org/package/optparse-applicative"
4797 "/optparse-applicative-" version ".tar.gz"))
4798 (sha256
4799 (base32
4800 "0c3z1mvynlyv1garjbdmdd3npm40dabgm75js4r07cf766c1wd71"))))
4801 (build-system haskell-build-system)
4802 (inputs
4803 `(("ghc-transformers-compat" ,ghc-transformers-compat)
4804 ("ghc-ansi-wl-pprint" ,ghc-ansi-wl-pprint)))
4805 (native-inputs
4806 `(("ghc-quickcheck" ,ghc-quickcheck)))
4807 (home-page "https://github.com/pcapriotti/optparse-applicative")
4808 (synopsis "Utilities and combinators for parsing command line options")
4809 (description "This package provides utilities and combinators for parsing
4810 command line options in Haskell.")
4811 (license license:bsd-3)))
4812
4813 (define-public ghc-base-orphans
4814 (package
4815 (name "ghc-base-orphans")
4816 (version "0.7")
4817 (source
4818 (origin
4819 (method url-fetch)
4820 (uri (string-append
4821 "https://hackage.haskell.org/package/base-orphans/base-orphans-"
4822 version
4823 ".tar.gz"))
4824 (sha256
4825 (base32
4826 "057f9npnqk71ccfh95djfkpd54dzazphj06grwxa3fyhwcwxrb8a"))))
4827 (build-system haskell-build-system)
4828 (native-inputs
4829 `(("ghc-quickcheck" ,ghc-quickcheck)
4830 ("ghc-hspec" ,ghc-hspec)
4831 ("hspec-discover" ,hspec-discover)))
4832 (home-page "https://hackage.haskell.org/package/base-orphans")
4833 (synopsis "Orphan instances for backwards compatibility")
4834 (description "This package defines orphan instances that mimic instances
4835 available in later versions of base to a wider (older) range of compilers.")
4836 (license license:bsd-3)))
4837
4838 (define-public ghc-auto-update
4839 (package
4840 (name "ghc-auto-update")
4841 (version "0.1.4")
4842 (source
4843 (origin
4844 (method url-fetch)
4845 (uri (string-append
4846 "https://hackage.haskell.org/package/auto-update/auto-update-"
4847 version
4848 ".tar.gz"))
4849 (sha256
4850 (base32
4851 "09dlh2alsx2mw5kvj931yhbj0aw7jmly2cm9xbscm2sf098w35jy"))))
4852 (build-system haskell-build-system)
4853 (home-page "https://github.com/yesodweb/wai")
4854 (synopsis "Efficiently run periodic, on-demand actions")
4855 (description "This library provides mechanisms to efficiently run
4856 periodic, on-demand actions in Haskell.")
4857 (license license:expat)))
4858
4859 (define-public ghc-tagged
4860 (package
4861 (name "ghc-tagged")
4862 (version "0.8.5")
4863 (source
4864 (origin
4865 (method url-fetch)
4866 (uri (string-append
4867 "https://hackage.haskell.org/package/tagged/tagged-"
4868 version
4869 ".tar.gz"))
4870 (sha256
4871 (base32
4872 "16cdzh0bw16nvjnyyy5j9s60malhz4nnazw96vxb0xzdap4m2z74"))))
4873 (build-system haskell-build-system)
4874 (arguments
4875 `(#:cabal-revision
4876 ("2" "0r2knfcq0b4s652vlvlnfwxlc2mkc2ra9kl8bp4zdn1awmfy0ia5")))
4877 (inputs
4878 `(("ghc-transformers-compat" ,ghc-transformers-compat)))
4879 (home-page "https://hackage.haskell.org/package/tagged")
4880 (synopsis "Haskell phantom types to avoid passing dummy arguments")
4881 (description "This library provides phantom types for Haskell 98, to avoid
4882 having to unsafely pass dummy arguments.")
4883 (license license:bsd-3)))
4884
4885 (define-public ghc-unbounded-delays
4886 (package
4887 (name "ghc-unbounded-delays")
4888 (version "0.1.1.0")
4889 (source
4890 (origin
4891 (method url-fetch)
4892 (uri (string-append
4893 "https://hackage.haskell.org/package/unbounded-delays/unbounded-delays-"
4894 version
4895 ".tar.gz"))
4896 (sha256
4897 (base32
4898 "1ir9fghbrc214c97bwafk5ck6cacxz1pdnq4i18p604d1b8zg9wa"))))
4899 (build-system haskell-build-system)
4900 (home-page "https://github.com/basvandijk/unbounded-delays")
4901 (synopsis "Unbounded thread delays and timeouts")
4902 (description "The @code{threadDelay} and @code{timeout} functions from the
4903 Haskell base library use the bounded @code{Int} type for specifying the delay
4904 or timeout period. This package provides alternative functions which use the
4905 unbounded @code{Integer} type.")
4906 (license license:bsd-3)))
4907
4908 (define-public ghc-clock
4909 (package
4910 (name "ghc-clock")
4911 (version "0.7.2")
4912 (source
4913 (origin
4914 (method url-fetch)
4915 (uri (string-append
4916 "https://hackage.haskell.org/package/"
4917 "clock/"
4918 "clock-" version ".tar.gz"))
4919 (sha256
4920 (base32 "07v91s20halsqjmziqb1sqjp2sjpckl9by7y28aaklwqi2bh2rl8"))))
4921 (build-system haskell-build-system)
4922 (inputs
4923 `(("ghc-tasty" ,ghc-tasty)
4924 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
4925 (home-page "https://hackage.haskell.org/package/clock")
4926 (synopsis "High-resolution clock for Haskell")
4927 (description "A package for convenient access to high-resolution clock and
4928 timer functions of different operating systems via a unified API.")
4929 (license license:bsd-3)))
4930
4931 (define-public ghc-charset
4932 (package
4933 (name "ghc-charset")
4934 (version "0.3.7.1")
4935 (source
4936 (origin
4937 (method url-fetch)
4938 (uri (string-append
4939 "https://hackage.haskell.org/package/charset/charset-"
4940 version
4941 ".tar.gz"))
4942 (sha256
4943 (base32
4944 "1gn0m96qpjww8hpp2g1as5yy0wcwy4iq73h3kz6g0yxxhcl5sh9x"))))
4945 (build-system haskell-build-system)
4946 (inputs
4947 `(("ghc-semigroups" ,ghc-semigroups)
4948 ("ghc-unordered-containers" ,ghc-unordered-containers)))
4949 (home-page "https://github.com/ekmett/charset")
4950 (synopsis "Fast unicode character sets for Haskell")
4951 (description "This package provides fast unicode character sets for
4952 Haskell, based on complemented PATRICIA tries.")
4953 (license license:bsd-3)))
4954
4955 (define-public ghc-bytestring-builder
4956 (package
4957 (name "ghc-bytestring-builder")
4958 (version "0.10.8.1.0")
4959 (source
4960 (origin
4961 (method url-fetch)
4962 (uri (string-append
4963 "https://hackage.haskell.org/package/bytestring-builder"
4964 "/bytestring-builder-" version ".tar.gz"))
4965 (sha256
4966 (base32
4967 "1hnvjac28y44yn78c9vdp1zvrknvlw98ky3g4n5vivr16rvh8x3d"))))
4968 (build-system haskell-build-system)
4969 (arguments `(#:haddock? #f)) ; Package contains no documentation.
4970 (home-page "https://hackage.haskell.org/package/bytestring-builder")
4971 (synopsis "The new bytestring builder, packaged outside of GHC")
4972 (description "This package provides the bytestring builder that is
4973 debuting in bytestring-0.10.4.0, which should be shipping with GHC 7.8.
4974 Compatibility package for older packages.")
4975 (license license:bsd-3)))
4976
4977 (define-public ghc-nats
4978 (package
4979 (name "ghc-nats")
4980 (version "1.1.2")
4981 (source
4982 (origin
4983 (method url-fetch)
4984 (uri (string-append
4985 "https://hackage.haskell.org/package/nats/nats-"
4986 version
4987 ".tar.gz"))
4988 (sha256
4989 (base32
4990 "1v40drmhixck3pz3mdfghamh73l4rp71mzcviipv1y8jhrfxilmr"))))
4991 (build-system haskell-build-system)
4992 (arguments `(#:haddock? #f))
4993 (inputs
4994 `(("ghc-hashable" ,ghc-hashable)))
4995 (home-page "https://hackage.haskell.org/package/nats")
4996 (synopsis "Natural numbers")
4997 (description "This library provides the natural numbers for Haskell.")
4998 (license license:bsd-3)))
4999
5000 (define-public ghc-nats-bootstrap
5001 (package
5002 (inherit ghc-nats)
5003 (name "ghc-nats-bootstrap")
5004 (inputs
5005 `(("ghc-hashable" ,ghc-hashable-bootstrap)))
5006 (properties '((hidden? #t)))))
5007
5008 (define-public ghc-void
5009 (package
5010 (name "ghc-void")
5011 (version "0.7.2")
5012 (source
5013 (origin
5014 (method url-fetch)
5015 (uri (string-append
5016 "https://hackage.haskell.org/package/void/void-"
5017 version
5018 ".tar.gz"))
5019 (sha256
5020 (base32
5021 "0aygw0yb1h3yhmfl3bkwh5d3h0l4mmsxz7j53vdm6jryl1kgxzyk"))))
5022 (build-system haskell-build-system)
5023 (inputs
5024 `(("ghc-semigroups" ,ghc-semigroups)
5025 ("ghc-hashable" ,ghc-hashable)))
5026 (home-page "https://github.com/ekmett/void")
5027 (synopsis
5028 "Logically uninhabited data type")
5029 (description
5030 "A Haskell 98 logically uninhabited data type, used to indicate that a
5031 given term should not exist.")
5032 (license license:bsd-3)))
5033
5034 (define-public ghc-invariant
5035 (package
5036 (name "ghc-invariant")
5037 (version "0.5.1")
5038 (source
5039 (origin
5040 (method url-fetch)
5041 (uri (string-append
5042 "https://hackage.haskell.org/package/invariant/invariant-"
5043 version ".tar.gz"))
5044 (sha256
5045 (base32
5046 "0aqj7z55632qdg45074kgn9qfdxzb0a2f8lgjzr0l0i4mm2rr37b"))))
5047 (build-system haskell-build-system)
5048 (inputs
5049 `(("ghc-bifunctors" ,ghc-bifunctors)
5050 ("ghc-comonad" ,ghc-comonad)
5051 ("ghc-contravariant" ,ghc-contravariant)
5052 ("ghc-profunctors" ,ghc-profunctors)
5053 ("ghc-semigroups" ,ghc-semigroups)
5054 ("ghc-statevar" ,ghc-statevar)
5055 ("ghc-stm" ,ghc-stm)
5056 ("ghc-tagged" ,ghc-tagged)
5057 ("ghc-th-abstraction" ,ghc-th-abstraction)
5058 ("ghc-transformers-compat" ,ghc-transformers-compat)
5059 ("ghc-unordered-containers" ,ghc-unordered-containers)))
5060 (native-inputs
5061 `(("ghc-hspec" ,ghc-hspec)
5062 ("ghc-quickcheck" ,ghc-quickcheck)
5063 ("hspec-discover" ,hspec-discover)))
5064 (home-page "https://github.com/nfrisby/invariant-functors")
5065 (synopsis "Haskell98 invariant functors")
5066 (description "Haskell98 invariant functors (also known as exponential
5067 functors). For more information, see Edward Kmett's article
5068 @uref{http://comonad.com/reader/2008/rotten-bananas/, Rotten Bananas}.")
5069 (license license:bsd-2)))
5070
5071 (define-public ghc-kan-extensions
5072 (package
5073 (name "ghc-kan-extensions")
5074 (version "5.2")
5075 (source
5076 (origin
5077 (method url-fetch)
5078 (uri (string-append
5079 "https://hackage.haskell.org/package/kan-extensions/kan-extensions-"
5080 version
5081 ".tar.gz"))
5082 (sha256
5083 (base32
5084 "1lyvyiwwh962j2nnnsqzlvp5zq6z8p3spvhmji99cjvldxc7wwkb"))))
5085 (build-system haskell-build-system)
5086 (inputs
5087 `(("ghc-adjunctions" ,ghc-adjunctions)
5088 ("ghc-comonad" ,ghc-comonad)
5089 ("ghc-contravariant" ,ghc-contravariant)
5090 ("ghc-distributive" ,ghc-distributive)
5091 ("ghc-free" ,ghc-free)
5092 ("ghc-invariant" ,ghc-invariant)
5093 ("ghc-semigroupoids" ,ghc-semigroupoids)
5094 ("ghc-tagged" ,ghc-tagged)
5095 ("ghc-transformers-compat" ,ghc-transformers-compat)))
5096 (home-page "https://github.com/ekmett/kan-extensions/")
5097 (synopsis "Kan extensions library")
5098 (description "This library provides Kan extensions, Kan lifts, various
5099 forms of the Yoneda lemma, and (co)density (co)monads for Haskell.")
5100 (license license:bsd-3)))
5101
5102 (define-public ghc-call-stack
5103 (package
5104 (name "ghc-call-stack")
5105 (version "0.1.0")
5106 (source
5107 (origin
5108 (method url-fetch)
5109 (uri (string-append "https://hackage.haskell.org/package/"
5110 "call-stack/call-stack-"
5111 version ".tar.gz"))
5112 (sha256
5113 (base32
5114 "1qmihf5jafmc79sk52l6gpx75f5bnla2lp62kh3p34x3j84mwpzj"))))
5115 (build-system haskell-build-system)
5116 (inputs `(("ghc-nanospec" ,ghc-nanospec)))
5117 (home-page "https://github.com/sol/call-stack#readme")
5118 (synopsis "Use GHC call-stacks in a backward compatible way")
5119 (description "This package provides a compatibility layer for using GHC
5120 call stacks with different versions of the compiler.")
5121 (license license:expat)))
5122
5123 ;; This is used as an input to ghc-hunit. We cannot use ghc-call-stack there,
5124 ;; because it depends on ghc-nanospec, which depends on ghc-hunit.
5125 (define-public ghc-call-stack-boot
5126 (hidden-package
5127 (package
5128 (inherit ghc-call-stack)
5129 (arguments '(#:tests? #f))
5130 (inputs '()))))
5131
5132 (define-public ghc-statevar
5133 (package
5134 (name "ghc-statevar")
5135 (version "1.1.1.1")
5136 (source
5137 (origin
5138 (method url-fetch)
5139 (uri (string-append
5140 "https://hackage.haskell.org/package/StateVar/StateVar-"
5141 version
5142 ".tar.gz"))
5143 (sha256
5144 (base32
5145 "08r2iw0gdmfs4f6wraaq19vfmkjdbics3dbhw39y7mdjd98kcr7b"))))
5146 (build-system haskell-build-system)
5147 (inputs
5148 `(("ghc-stm" ,ghc-stm)))
5149 (home-page "https://hackage.haskell.org/package/StateVar")
5150 (synopsis "State variables for Haskell")
5151 (description "This package provides state variables, which are references
5152 in the @code{IO} monad, like @code{IORef}s or parts of the OpenGL state.")
5153 (license license:bsd-3)))
5154
5155 (define-public ghc-lens
5156 (package
5157 (name "ghc-lens")
5158 (version "4.16.1")
5159 (source
5160 (origin
5161 (method url-fetch)
5162 (uri (string-append "https://hackage.haskell.org/package/lens/lens-"
5163 version ".tar.gz"))
5164 (sha256
5165 (base32
5166 "1im4drhbydbawd6i0jsrzpqihnmx4ywpkg7yg94ddwsw3mxwkgpm"))))
5167 (build-system haskell-build-system)
5168 (arguments
5169 `(#:cabal-revision
5170 ("2" "11h83lj5mba4grhz1qx3irz10ysm9c3k7k6i6xv2cr60q8xin3ri")))
5171 (inputs
5172 `(("ghc-base-orphans" ,ghc-base-orphans)
5173 ("ghc-bifunctors" ,ghc-bifunctors)
5174 ("ghc-distributive" ,ghc-distributive)
5175 ("ghc-exceptions" ,ghc-exceptions)
5176 ("ghc-free" ,ghc-free)
5177 ("ghc-kan-extensions" ,ghc-kan-extensions)
5178 ("ghc-parallel" ,ghc-parallel)
5179 ("ghc-reflection" ,ghc-reflection)
5180 ("ghc-semigroupoids" ,ghc-semigroupoids)
5181 ("ghc-vector" ,ghc-vector)
5182 ("ghc-call-stack" ,ghc-call-stack)
5183 ("ghc-comonad" ,ghc-comonad)
5184 ("ghc-contravariant" ,ghc-contravariant)
5185 ("ghc-hashable" ,ghc-hashable)
5186 ("ghc-profunctors" ,ghc-profunctors)
5187 ("ghc-semigroups" ,ghc-semigroups)
5188 ("ghc-tagged" ,ghc-tagged)
5189 ("ghc-text" ,ghc-text)
5190 ("ghc-transformers-compat" ,ghc-transformers-compat)
5191 ("ghc-unordered-containers" ,ghc-unordered-containers)
5192 ("ghc-void" ,ghc-void)
5193 ("ghc-generic-deriving" ,ghc-generic-deriving)
5194 ("ghc-nats" ,ghc-nats)
5195 ("ghc-simple-reflect" ,ghc-simple-reflect)
5196 ("hlint" ,hlint)))
5197 (native-inputs
5198 `(("cabal-doctest" ,cabal-doctest)
5199 ("ghc-doctest" ,ghc-doctest)
5200 ("ghc-hunit" ,ghc-hunit)
5201 ("ghc-test-framework" ,ghc-test-framework)
5202 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
5203 ("ghc-test-framework-th" ,ghc-test-framework-th)
5204 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)
5205 ("ghc-quickcheck" ,ghc-quickcheck)))
5206 (home-page "https://github.com/ekmett/lens/")
5207 (synopsis "Lenses, Folds and Traversals")
5208 (description "This library provides @code{Control.Lens}. The combinators
5209 in @code{Control.Lens} provide a highly generic toolbox for composing families
5210 of getters, folds, isomorphisms, traversals, setters and lenses and their
5211 indexed variants.")
5212 (license license:bsd-3)))
5213
5214 (define-public ghc-cheapskate
5215 (package
5216 (name "ghc-cheapskate")
5217 (version "0.1.1")
5218 (source
5219 (origin
5220 (method url-fetch)
5221 (uri (string-append
5222 "https://hackage.haskell.org/package/cheapskate/cheapskate-"
5223 version
5224 ".tar.gz"))
5225 (sha256
5226 (base32
5227 "1hiqi7h76shjzs2zj0j8g6wnq2hbiq1hmfafdazr97fba2zl2432"))))
5228 (build-system haskell-build-system)
5229 (inputs
5230 `(("ghc-text" ,ghc-text)
5231 ("ghc-blaze-html" ,ghc-blaze-html)
5232 ("ghc-xss-sanitize" ,ghc-xss-sanitize)
5233 ("ghc-data-default" ,ghc-data-default)
5234 ("ghc-syb" ,ghc-syb)
5235 ("ghc-uniplate" ,ghc-uniplate)))
5236 (home-page "https://github.com/jgm/cheapskate")
5237 (synopsis "Experimental markdown processor")
5238 (description "Cheapskate is an experimental Markdown processor in pure
5239 Haskell. It aims to process Markdown efficiently and in the most forgiving
5240 possible way. It is designed to deal with any input, including garbage, with
5241 linear performance. Output is sanitized by default for protection against
5242 cross-site scripting (@dfn{XSS}) attacks.")
5243 (license license:bsd-3)))
5244
5245 (define-public ghc-bifunctors
5246 (package
5247 (name "ghc-bifunctors")
5248 (version "5.5.3")
5249 (source
5250 (origin
5251 (method url-fetch)
5252 (uri (string-append
5253 "https://hackage.haskell.org/package/bifunctors/bifunctors-"
5254 version
5255 ".tar.gz"))
5256 (sha256
5257 (base32
5258 "1jn9rxg643xnlhrknmjz88nblcpsr45xwjkwwnn5nxpasa7m4d6l"))))
5259 (build-system haskell-build-system)
5260 (inputs
5261 `(("ghc-base-orphans" ,ghc-base-orphans)
5262 ("ghc-comonad" ,ghc-comonad)
5263 ("ghc-th-abstraction" ,ghc-th-abstraction)
5264 ("ghc-transformers-compat" ,ghc-transformers-compat)
5265 ("ghc-tagged" ,ghc-tagged)
5266 ("ghc-semigroups" ,ghc-semigroups)))
5267 (native-inputs
5268 `(("ghc-hspec" ,ghc-hspec)
5269 ("hspec-discover" ,hspec-discover)
5270 ("ghc-quickcheck" ,ghc-quickcheck)))
5271 (home-page "https://github.com/ekmett/bifunctors/")
5272 (synopsis "Bifunctors for Haskell")
5273 (description "This package provides bifunctors for Haskell.")
5274 (license license:bsd-3)))
5275
5276 (define-public ghc-semigroupoids
5277 (package
5278 (name "ghc-semigroupoids")
5279 (version "5.2.2")
5280 (source
5281 (origin
5282 (method url-fetch)
5283 (uri (string-append
5284 "https://hackage.haskell.org/package/semigroupoids/semigroupoids-"
5285 version
5286 ".tar.gz"))
5287 (sha256
5288 (base32
5289 "17i96y4iqj8clcs090lf6k0ij3j16nj14vsfwz0mm9nd6i4gbpp4"))))
5290 (build-system haskell-build-system)
5291 (arguments
5292 `(#:cabal-revision
5293 ("4" "0pqfrxzypjq6z8lgdkzq4vhcyqkpk5326hny0r6snpc3gm78r4ij")))
5294 (inputs
5295 `(("ghc-base-orphans" ,ghc-base-orphans)
5296 ("ghc-transformers-compat" ,ghc-transformers-compat)
5297 ("ghc-bifunctors" ,ghc-bifunctors)
5298 ("ghc-comonad" ,ghc-comonad)
5299 ("ghc-contravariant" ,ghc-contravariant)
5300 ("ghc-distributive" ,ghc-distributive)
5301 ("ghc-hashable" ,ghc-hashable)
5302 ("ghc-semigroups" ,ghc-semigroups)
5303 ("ghc-tagged" ,ghc-tagged)
5304 ("ghc-unordered-containers" ,ghc-unordered-containers)))
5305 (native-inputs
5306 `(("cabal-doctest" ,cabal-doctest)
5307 ("ghc-doctest" ,ghc-doctest)))
5308 (home-page "https://github.com/ekmett/semigroupoids")
5309 (synopsis "Semigroupoids operations for Haskell")
5310 (description "This library provides a wide array of (semi)groupoids and
5311 operations for working with them. A @code{Semigroupoid} is a @code{Category}
5312 without the requirement of identity arrows for every object in the category.
5313 A @code{Category} is any @code{Semigroupoid} for which the Yoneda lemma holds.
5314 Finally, to work with these weaker structures it is beneficial to have
5315 containers that can provide stronger guarantees about their contents, so
5316 versions of @code{Traversable} and @code{Foldable} that can be folded with
5317 just a @code{Semigroup} are added.")
5318 (license license:bsd-3)))
5319
5320 (define-public ghc-contravariant
5321 (package
5322 (name "ghc-contravariant")
5323 (version "1.4.1")
5324 (source
5325 (origin
5326 (method url-fetch)
5327 (uri (string-append
5328 "https://hackage.haskell.org/package/contravariant/contravariant-"
5329 version
5330 ".tar.gz"))
5331 (sha256
5332 (base32
5333 "1vfhk8c5cxmmakx7rflap1ipkx5q0j5vnlrcz7yz6y53kxhksgf9"))))
5334 (build-system haskell-build-system)
5335 (inputs
5336 `(("ghc-void" ,ghc-void)
5337 ("ghc-transformers-compat" ,ghc-transformers-compat)
5338 ("ghc-statevar" ,ghc-statevar)
5339 ("ghc-semigroups" ,ghc-semigroups)))
5340 (home-page
5341 "https://github.com/ekmett/contravariant/")
5342 (synopsis "Contravariant functors")
5343 (description "Contravariant functors for Haskell.")
5344 (license license:bsd-3)))
5345
5346 (define-public ghc-semigroups
5347 (package
5348 (name "ghc-semigroups")
5349 (version "0.18.5")
5350 (source
5351 (origin
5352 (method url-fetch)
5353 (uri (string-append
5354 "https://hackage.haskell.org/package/semigroups/semigroups-"
5355 version
5356 ".tar.gz"))
5357 (sha256
5358 (base32
5359 "17g29h62g1k51ghhvzkw72zksjgi6vs6bfipkj81pqw1dsprcamb"))))
5360 (build-system haskell-build-system)
5361 (inputs
5362 `(("ghc-nats" ,ghc-nats)
5363 ("ghc-tagged" ,ghc-tagged)
5364 ("ghc-unordered-containers" ,ghc-unordered-containers)
5365 ("ghc-text" ,ghc-text)
5366 ("ghc-hashable" ,ghc-hashable)))
5367 (home-page "https://github.com/ekmett/semigroups/")
5368 (synopsis "Semigroup operations for Haskell")
5369 (description "This package provides semigroups for Haskell. In
5370 mathematics, a semigroup is an algebraic structure consisting of a set
5371 together with an associative binary operation. A semigroup generalizes a
5372 monoid in that there might not exist an identity element. It
5373 also (originally) generalized a group (a monoid with all inverses) to a type
5374 where every element did not have to have an inverse, thus the name
5375 semigroup.")
5376 (license license:bsd-3)))
5377
5378 (define-public ghc-semigroups-bootstrap
5379 (package
5380 (inherit ghc-semigroups)
5381 (name "ghc-semigroups-bootstrap")
5382 (inputs
5383 `(("ghc-nats" ,ghc-nats-bootstrap)
5384 ("ghc-tagged" ,ghc-tagged)
5385 ("ghc-unordered-containers" ,ghc-unordered-containers-bootstrap)
5386 ("ghc-text" ,ghc-text)
5387 ("ghc-hashable" ,ghc-hashable-bootstrap)))
5388 (properties '(hidden? #t))))
5389
5390 (define-public ghc-free
5391 (package
5392 (name "ghc-free")
5393 (version "5.0.2")
5394 (source
5395 (origin
5396 (method url-fetch)
5397 (uri (string-append
5398 "https://hackage.haskell.org/package/free/free-"
5399 version
5400 ".tar.gz"))
5401 (sha256
5402 (base32
5403 "15m3n9vhz7z3kzv1w3wlfa3x8jp4cbrkwmrcjr7jlx39iqffn1gg"))))
5404 (build-system haskell-build-system)
5405 (inputs
5406 `(("ghc-prelude-extras" ,ghc-prelude-extras)
5407 ("ghc-profunctors" ,ghc-profunctors)
5408 ("ghc-exceptions" ,ghc-exceptions)
5409 ("ghc-bifunctors" ,ghc-bifunctors)
5410 ("ghc-comonad" ,ghc-comonad)
5411 ("ghc-distributive" ,ghc-distributive)
5412 ("ghc-semigroupoids" ,ghc-semigroupoids)
5413 ("ghc-semigroups" ,ghc-semigroups)
5414 ("ghc-transformers-base" ,ghc-transformers-base)
5415 ("ghc-transformers-compat" ,ghc-transformers-compat)))
5416 (home-page "https://github.com/ekmett/free/")
5417 (synopsis "Unrestricted monads for Haskell")
5418 (description "This library provides free monads, which are useful for many
5419 tree-like structures and domain specific languages. If @code{f} is a
5420 @code{Functor} then the free @code{Monad} on @code{f} is the type of trees
5421 whose nodes are labeled with the constructors of @code{f}. The word \"free\"
5422 is used in the sense of \"unrestricted\" rather than \"zero-cost\": @code{Free
5423 f} makes no constraining assumptions beyond those given by @code{f} and the
5424 definition of @code{Monad}.")
5425 (license license:bsd-3)))
5426
5427 (define-public ghc-adjunctions
5428 (package
5429 (name "ghc-adjunctions")
5430 (version "4.4")
5431 (source
5432 (origin
5433 (method url-fetch)
5434 (uri (string-append
5435 "https://hackage.haskell.org/package/adjunctions/adjunctions-"
5436 version
5437 ".tar.gz"))
5438 (sha256
5439 (base32
5440 "1sbal7cbhm12crfnfhkk322jnzgx7lhw3jzq0p463bipagsjwz2h"))))
5441 (build-system haskell-build-system)
5442 (inputs
5443 `(("ghc-profunctors" ,ghc-profunctors)
5444 ("ghc-comonad" ,ghc-comonad)
5445 ("ghc-contravariant" ,ghc-contravariant)
5446 ("ghc-distributive" ,ghc-distributive)
5447 ("ghc-free" ,ghc-free)
5448 ("ghc-tagged" ,ghc-tagged)
5449 ("ghc-semigroupoids" ,ghc-semigroupoids)
5450 ("ghc-semigroups" ,ghc-semigroups)
5451 ("ghc-transformers-compat" ,ghc-transformers-compat)
5452 ("ghc-void" ,ghc-void)))
5453 (native-inputs
5454 `(("ghc-generic-deriving" ,ghc-generic-deriving)
5455 ("ghc-hspec" ,ghc-hspec)
5456 ("hspec-discover" ,hspec-discover)))
5457 (home-page "https://github.com/ekmett/adjunctions/")
5458 (synopsis "Adjunctions and representable functors")
5459 (description "This library provides adjunctions and representable functors
5460 for Haskell.")
5461 (license license:bsd-3)))
5462
5463 (define-public ghc-equivalence
5464 (package
5465 (name "ghc-equivalence")
5466 (version "0.3.2")
5467 (source
5468 (origin
5469 (method url-fetch)
5470 (uri (string-append "https://hackage.haskell.org/package/equivalence"
5471 "/equivalence-" version ".tar.gz"))
5472 (sha256
5473 (base32 "0a85bdyyvjqs5z4kfhhf758210k9gi9dv42ik66a3jl0z7aix8kx"))))
5474 (build-system haskell-build-system)
5475 (inputs
5476 `(("ghc-stmonadtrans" ,ghc-stmonadtrans)
5477 ("ghc-transformers-compat" ,ghc-transformers-compat)
5478 ("ghc-quickcheck" ,ghc-quickcheck)
5479 ("ghc-test-framework" ,ghc-test-framework)
5480 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
5481 (home-page "https://github.com/pa-ba/equivalence")
5482 (synopsis "Maintaining an equivalence relation implemented as union-find")
5483 (description
5484 "This is an implementation of Tarjan's Union-Find algorithm (Robert E.@:
5485 Tarjan. \"Efficiency of a Good But Not Linear Set Union Algorithm\",JACM
5486 22(2), 1975) in order to maintain an equivalence relation. This
5487 implementation is a port of the @code{union-find} package using the @code{ST}
5488 monad transformer (instead of the IO monad).")
5489 (license license:bsd-3)))
5490
5491 (define-public ghc-fast-logger
5492 (package
5493 (name "ghc-fast-logger")
5494 (version "2.4.11")
5495 (source
5496 (origin
5497 (method url-fetch)
5498 (uri (string-append
5499 "https://hackage.haskell.org/package/fast-logger/fast-logger-"
5500 version
5501 ".tar.gz"))
5502 (sha256
5503 (base32
5504 "1ad2vq4nifdxshqk9yrmghqizhkgybfz134kpr6padglb2mxxrdv"))))
5505 (build-system haskell-build-system)
5506 (inputs
5507 `(("ghc-auto-update" ,ghc-auto-update)
5508 ("ghc-easy-file" ,ghc-easy-file)
5509 ("ghc-text" ,ghc-text)
5510 ("ghc-unix-time" ,ghc-unix-time)))
5511 (native-inputs
5512 `(("hspec-discover" ,hspec-discover)
5513 ("ghc-hspec" ,ghc-hspec)))
5514 (home-page "https://hackage.haskell.org/package/fast-logger")
5515 (synopsis "Fast logging system")
5516 (description "This library provides a fast logging system for Haskell.")
5517 (license license:bsd-3)))
5518
5519 (define-public ghc-doctest
5520 (package
5521 (name "ghc-doctest")
5522 (version "0.16.0")
5523 (source
5524 (origin
5525 (method url-fetch)
5526 (uri (string-append
5527 "https://hackage.haskell.org/package/doctest/doctest-"
5528 version
5529 ".tar.gz"))
5530 (sha256
5531 (base32
5532 "0hkccch65s3kp0b36h7bqhilnpi4bx8kngncm7ma9vbd3dwacjdv"))))
5533 (build-system haskell-build-system)
5534 (arguments `(#:tests? #f)) ; FIXME: missing test framework
5535 (inputs
5536 `(("ghc-syb" ,ghc-syb)
5537 ("ghc-paths" ,ghc-paths)
5538 ("ghc-base-compat" ,ghc-base-compat)
5539 ("ghc-code-page" ,ghc-code-page)
5540 ("ghc-hunit" ,ghc-hunit)
5541 ("ghc-hspec" ,ghc-hspec)
5542 ("ghc-quickcheck" ,ghc-quickcheck)
5543 ("ghc-stringbuilder" ,ghc-stringbuilder)
5544 ("ghc-silently" ,ghc-silently)
5545 ("ghc-setenv" ,ghc-setenv)))
5546 (home-page
5547 "https://github.com/sol/doctest#readme")
5548 (synopsis "Test interactive Haskell examples")
5549 (description "The doctest program checks examples in source code comments.
5550 It is modeled after doctest for Python, see
5551 @uref{https://docs.python.org/library/doctest.html, the Doctest website}.")
5552 (license license:expat)))
5553
5554 (define-public ghc-lifted-base
5555 (package
5556 (name "ghc-lifted-base")
5557 (version "0.2.3.12")
5558 (source
5559 (origin
5560 (method url-fetch)
5561 (uri (string-append
5562 "https://hackage.haskell.org/package/lifted-base/lifted-base-"
5563 version
5564 ".tar.gz"))
5565 (sha256
5566 (base32
5567 "1i8p8d3rkdh21bhgjjh32vd7qqjr7jq7p59qds0aw2kmargsjd61"))))
5568 (build-system haskell-build-system)
5569 (arguments `(#:tests? #f)) ; FIXME: Missing testing libraries.
5570 (inputs
5571 `(("ghc-transformers-base" ,ghc-transformers-base)
5572 ("ghc-monad-control" ,ghc-monad-control)
5573 ("ghc-transformers-compat" ,ghc-transformers-compat)
5574 ("ghc-hunit" ,ghc-hunit)))
5575 (home-page "https://github.com/basvandijk/lifted-base")
5576 (synopsis "Lifted IO operations from the base library")
5577 (description "Lifted-base exports IO operations from the @code{base}
5578 library lifted to any instance of @code{MonadBase} or @code{MonadBaseControl}.
5579 Note that not all modules from @code{base} are converted yet. The package
5580 includes a copy of the @code{monad-peel} test suite written by Anders
5581 Kaseorg.")
5582 (license license:bsd-3)))
5583
5584 (define-public ghc-word8
5585 (package
5586 (name "ghc-word8")
5587 (version "0.1.3")
5588 (source
5589 (origin
5590 (method url-fetch)
5591 (uri (string-append
5592 "https://hackage.haskell.org/package/word8/word8-"
5593 version
5594 ".tar.gz"))
5595 (sha256
5596 (base32
5597 "12jx7f13d2h1djq4fh4dyrab61sm49mj1w61j3rzp2vjfm696c16"))))
5598 (build-system haskell-build-system)
5599 (native-inputs
5600 `(("ghc-hspec" ,ghc-hspec)
5601 ("hspec-discover" ,hspec-discover)))
5602 (home-page "https://hackage.haskell.org/package/word8")
5603 (synopsis "Word8 library for Haskell")
5604 (description "Word8 library to be used with @code{Data.ByteString}.")
5605 (license license:bsd-3)))
5606
5607 (define-public ghc-stringsearch
5608 (package
5609 (name "ghc-stringsearch")
5610 (version "0.3.6.6")
5611 (source
5612 (origin
5613 (method url-fetch)
5614 (uri (string-append
5615 "https://hackage.haskell.org/package/stringsearch/stringsearch-"
5616 version
5617 ".tar.gz"))
5618 (sha256
5619 (base32
5620 "0jpy9xjcjdbpi3wk6mg7xwd7wfi2mma70p97v1ij5i8bj9qijpr9"))))
5621 (build-system haskell-build-system)
5622 (home-page "https://bitbucket.org/dafis/stringsearch")
5623 (synopsis "Fast searching, splitting and replacing of ByteStrings")
5624 (description "This package provides several functions to quickly search
5625 for substrings in strict or lazy @code{ByteStrings}. It also provides
5626 functions for breaking or splitting on substrings and replacing all
5627 occurrences of a substring (the first in case of overlaps) with another.")
5628 (license license:bsd-3)))
5629
5630 (define-public ghc-integer-logarithms
5631 (package
5632 (name "ghc-integer-logarithms")
5633 (version "1.0.2.1")
5634 (source
5635 (origin
5636 (method url-fetch)
5637 (uri (string-append "https://hackage.haskell.org/package/"
5638 "integer-logarithms/integer-logarithms-"
5639 version ".tar.gz"))
5640 (sha256
5641 (base32
5642 "1wj8kgjg5bn2yrs4zh9qfjv85cx6w998j9pi39yrbv305944mb9j"))))
5643 (build-system haskell-build-system)
5644 (arguments
5645 `(#:phases
5646 (modify-phases %standard-phases
5647 (add-before 'configure 'update-constraints
5648 (lambda _
5649 (substitute* "integer-logarithms.cabal"
5650 (("tasty >= 0\\.10 && < 1\\.1")
5651 "tasty >= 0.10 && < 1.2")))))))
5652 (native-inputs
5653 `(("ghc-quickcheck" ,ghc-quickcheck)
5654 ("ghc-smallcheck" ,ghc-smallcheck)
5655 ("ghc-tasty" ,ghc-tasty)
5656 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
5657 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
5658 ("ghc-tasty-smallcheck" ,ghc-tasty-smallcheck)))
5659 (home-page "https://github.com/Bodigrim/integer-logarithms")
5660 (synopsis "Integer logarithms")
5661 (description
5662 "This package provides the following modules:
5663 @code{Math.NumberTheory.Logarithms} and
5664 @code{Math.NumberTheory.Powers.Integer} from the @code{arithmoi} package,
5665 @code{GHC.Integer.Logarithms.Compat} and
5666 @code{Math.NumberTheory.Power.Natural}, as well as some additional functions
5667 in migrated modules.")
5668 (license license:expat)))
5669
5670 (define-public ghc-integer-logarithms-bootstrap
5671 (package
5672 (inherit ghc-integer-logarithms)
5673 (name "ghc-integer-logarithms-bootstrap")
5674 (arguments `(#:tests? #f))
5675 (native-inputs '())
5676 (properties '(hidden? #t))))
5677
5678 (define-public ghc-scientific
5679 (package
5680 (name "ghc-scientific")
5681 (version "0.3.6.2")
5682 (source
5683 (origin
5684 (method url-fetch)
5685 (uri (string-append
5686 "https://hackage.haskell.org/package/scientific/scientific-"
5687 version
5688 ".tar.gz"))
5689 (sha256
5690 (base32
5691 "03ql2f0ac8bsl524idy9xxa3kxisb2sj3avflzw580j5hzy0m397"))))
5692 (build-system haskell-build-system)
5693 (inputs
5694 `(("ghc-integer-logarithms" ,ghc-integer-logarithms)
5695 ("ghc-text" ,ghc-text)
5696 ("ghc-hashable" ,ghc-hashable)
5697 ("ghc-primitive" ,ghc-primitive)))
5698 (native-inputs
5699 `(("ghc-tasty" ,ghc-tasty)
5700 ("ghc-tasty-ant-xml" ,ghc-tasty-ant-xml)
5701 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
5702 ("ghc-tasty-smallcheck" ,ghc-tasty-smallcheck)
5703 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
5704 ("ghc-smallcheck" ,ghc-smallcheck)
5705 ("ghc-quickcheck" ,ghc-quickcheck)))
5706 (home-page "https://github.com/basvandijk/scientific")
5707 (synopsis "Numbers represented using scientific notation")
5708 (description "This package provides @code{Data.Scientific}, which provides
5709 the number type @code{Scientific}. Scientific numbers are arbitrary precision
5710 and space efficient. They are represented using
5711 @uref{https://en.wikipedia.org/wiki/Scientific_notation, scientific
5712 notation}.")
5713 (license license:bsd-3)))
5714
5715 (define-public ghc-scientific-bootstrap
5716 (package
5717 (inherit ghc-scientific)
5718 (name "ghc-scientific-bootstrap")
5719 (arguments `(#:tests? #f))
5720 (inputs
5721 `(("ghc-integer-logarithms" ,ghc-integer-logarithms-bootstrap)
5722 ("ghc-text" ,ghc-text)
5723 ("ghc-hashable" ,ghc-hashable)
5724 ("ghc-primitive" ,ghc-primitive)))
5725 (native-inputs '())
5726 (properties '(hidden? #t))))
5727
5728 (define-public ghc-boxes
5729 (package
5730 (name "ghc-boxes")
5731 (version "0.1.5")
5732 (source
5733 (origin
5734 (method url-fetch)
5735 (uri (string-append "https://hackage.haskell.org/package/boxes/boxes-"
5736 version ".tar.gz"))
5737 (sha256
5738 (base32 "1hsnmw95i58d4bkpxby3ddsj1cawypw4mdyb18m393s5i8p7iq9q"))))
5739 (build-system haskell-build-system)
5740 (inputs
5741 `(("ghc-split" ,ghc-split)
5742 ("ghc-quickcheck" ,ghc-quickcheck)))
5743 (home-page "https://hackage.haskell.org/package/boxes")
5744 (synopsis "2D text pretty-printing library")
5745 (description
5746 "Boxes is a pretty-printing library for laying out text in two dimensions,
5747 using a simple box model.")
5748 (license license:bsd-3)))
5749
5750 (define-public ghc-deepseq-generics
5751 (package
5752 (name "ghc-deepseq-generics")
5753 (version "0.2.0.0")
5754 (source (origin
5755 (method url-fetch)
5756 (uri (string-append "https://hackage.haskell.org/package/"
5757 "deepseq-generics/deepseq-generics-"
5758 version ".tar.gz"))
5759 (sha256
5760 (base32
5761 "17bwghc15mc9pchfd1w46jh2p3wzc86aj6a537wqwxn08rayzcxh"))))
5762 (build-system haskell-build-system)
5763 (arguments
5764 `(#:cabal-revision
5765 ("2" "1pnidf8w8x0w5fsqgv8hhrw07slmhxwy5x4fikgk0bd6k76aqicb")))
5766 (native-inputs
5767 `(("ghc-hunit" ,ghc-hunit)
5768 ("ghc-test-framework" ,ghc-test-framework)
5769 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)))
5770 (home-page "https://github.com/hvr/deepseq-generics")
5771 (synopsis "Generic RNF implementation")
5772 (description
5773 "This package provides a @code{GHC.Generics}-based
5774 @code{Control.DeepSeq.Generics.genericRnf} function which can be used for
5775 providing an @code{rnf} implementation.")
5776 (license license:bsd-3)))
5777
5778 (define-public ghc-string-qq
5779 (package
5780 (name "ghc-string-qq")
5781 (version "0.0.2")
5782 (source
5783 (origin
5784 (method url-fetch)
5785 (uri (string-append
5786 "https://hackage.haskell.org/package/string-qq/string-qq-"
5787 version
5788 ".tar.gz"))
5789 (sha256
5790 (base32
5791 "0662m3i5xrdrr95w829bszkhp88mj9iy1zya54vk2sl5hz9wlmwp"))))
5792 (build-system haskell-build-system)
5793 (home-page "http://hackage.haskell.org/package/string-qq")
5794 (synopsis
5795 "QuasiQuoter for non-interpolated strings, texts and bytestrings.")
5796 (description
5797 "This package provides a quasiquoter for non-interpolated strings, texts
5798 and bytestrings.")
5799 (license license:public-domain)))
5800
5801 (define-public ghc-pandoc-types
5802 (package
5803 (name "ghc-pandoc-types")
5804 (version "1.17.5.1")
5805 (source (origin
5806 (method url-fetch)
5807 (uri (string-append "https://hackage.haskell.org/package/"
5808 "pandoc-types/pandoc-types-"
5809 version ".tar.gz"))
5810 (sha256
5811 (base32
5812 "1q6v2bynij724fv347mhqxdscwifzrx5jb9mq80608qf638fn717"))))
5813 (build-system haskell-build-system)
5814 (inputs
5815 `(("ghc-syb" ,ghc-syb)
5816 ("ghc-aeson" ,ghc-aeson)
5817 ("ghc-string-qq" ,ghc-string-qq)))
5818 (native-inputs
5819 `(("ghc-quickcheck" ,ghc-quickcheck)
5820 ("ghc-test-framework" ,ghc-test-framework)
5821 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
5822 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)
5823 ("ghc-hunit" ,ghc-hunit)))
5824 (home-page "http://johnmacfarlane.net/pandoc")
5825 (synopsis "Types for representing a structured document")
5826 (description
5827 "This module defines the @code{Pandoc} data structure, which is used by
5828 pandoc to represent structured documents. It also provides functions for
5829 building up, manipulating and serialising @code{Pandoc} structures.")
5830 (license license:bsd-3)))
5831
5832 (define-public ghc-texmath
5833 (package
5834 (name "ghc-texmath")
5835 (version "0.11.0.1")
5836 (source (origin
5837 (method url-fetch)
5838 (uri (string-append "https://hackage.haskell.org/package/"
5839 "texmath/texmath-" version ".tar.gz"))
5840 (sha256
5841 (base32
5842 "11dc09hfnyfsz20ch2c867w0zdgjkzq41506lm61i3dk87ngdisf"))))
5843 (build-system haskell-build-system)
5844 (inputs
5845 `(("ghc-syb" ,ghc-syb)
5846 ("ghc-network-uri" ,ghc-network-uri)
5847 ("ghc-split" ,ghc-split)
5848 ("ghc-temporary" ,ghc-temporary)
5849 ("ghc-utf8-string" ,ghc-utf8-string)
5850 ("ghc-xml" ,ghc-xml)
5851 ("ghc-parsec" ,ghc-parsec)
5852 ("ghc-pandoc-types" ,ghc-pandoc-types)))
5853 (home-page "https://github.com/jgm/texmath")
5854 (synopsis "Conversion between formats used to represent mathematics")
5855 (description
5856 "The texmath library provides functions to read and write TeX math,
5857 presentation MathML, and OMML (Office Math Markup Language, used in Microsoft
5858 Office). Support is also included for converting math formats to pandoc's
5859 native format (allowing conversion, via pandoc, to a variety of different
5860 markup formats). The TeX reader supports basic LaTeX and AMS extensions, and
5861 it can parse and apply LaTeX macros.")
5862 (license license:gpl2+)))
5863
5864 (define-public ghc-regex-pcre-builtin
5865 (package
5866 (name "ghc-regex-pcre-builtin")
5867 (version "0.94.4.8.8.35")
5868 (source (origin
5869 (method url-fetch)
5870 (uri (string-append "https://hackage.haskell.org/package/"
5871 "regex-pcre-builtin/regex-pcre-builtin-"
5872 version ".tar.gz"))
5873 (sha256
5874 (base32
5875 "0y7as9wqlkykpipka2cfdhmcnin345q01pp0wsva8fwmvsavdl8b"))))
5876 (build-system haskell-build-system)
5877 (inputs
5878 `(("ghc-regex-base" ,ghc-regex-base)))
5879 (home-page "https://hackage.haskell.org/package/regex-pcre")
5880 (synopsis "Enhancement of the builtin Text.Regex library")
5881 (description
5882 "This package is an enhancement of the @code{Text.Regex} library,
5883 providing the PCRE backend to accompany regex-base, with bundled code from
5884 @url{https://www.pcre.org}.")
5885 (license license:bsd-3)))
5886
5887 (define-public ghc-diff
5888 (package
5889 (name "ghc-diff")
5890 (version "0.3.4")
5891 (source (origin
5892 (method url-fetch)
5893 (uri (string-append "https://hackage.haskell.org/package/"
5894 "Diff/Diff-" version ".tar.gz"))
5895 (sha256
5896 (base32
5897 "0bqcdvhxx8dmqc3793m6axg813wv9ldz2j37f1wygbbrbbndmdvp"))))
5898 (build-system haskell-build-system)
5899 (native-inputs
5900 `(("ghc-quickcheck" ,ghc-quickcheck)
5901 ("ghc-test-framework" ,ghc-test-framework)
5902 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
5903 (home-page "https://hub.darcs.net/sterlingclover/Diff")
5904 (synopsis "O(ND) diff algorithm in Haskell")
5905 (description
5906 "This package provides an implementation of the standard diff algorithm,
5907 and utilities for pretty printing.")
5908 (license license:bsd-3)))
5909
5910 (define-public ghc-highlighting-kate
5911 (package
5912 (name "ghc-highlighting-kate")
5913 (version "0.6.4")
5914 (source (origin
5915 (method url-fetch)
5916 (uri (string-append "https://hackage.haskell.org/package/"
5917 "highlighting-kate/highlighting-kate-"
5918 version ".tar.gz"))
5919 (sha256
5920 (base32
5921 "1bqv00gfmrsf0jjr4qf3lhshvfkyzmhbi3pjb6mafbnsyn2k7f6q"))))
5922 (build-system haskell-build-system)
5923 (inputs
5924 `(("ghc-diff" ,ghc-diff)
5925 ("ghc-regex-pcre-builtin" ,ghc-regex-pcre-builtin)))
5926 (native-inputs
5927 `(("ghc-parsec" ,ghc-parsec)
5928 ("ghc-blaze-html" ,ghc-blaze-html)
5929 ("ghc-utf8-string" ,ghc-utf8-string)))
5930 (home-page "https://github.com/jgm/highlighting-kate")
5931 (synopsis "Syntax highlighting library")
5932 (description
5933 "Highlighting-kate is a syntax highlighting library with support for
5934 nearly one hundred languages. The syntax parsers are automatically generated
5935 from @uref{https://kate-editor.org/, Kate syntax descriptions}, so any syntax
5936 supported by Kate can be added. An (optional) command-line program is
5937 provided, along with a utility for generating new parsers from Kate XML syntax
5938 descriptions.")
5939 (license license:gpl2+)))
5940
5941 (define-public ghc-cmark
5942 (package
5943 (name "ghc-cmark")
5944 (version "0.5.6")
5945 (source (origin
5946 (method url-fetch)
5947 ;; XXX As of version 0.5.6, this package bundles libcmark 0.28.0.
5948 ;; See cbits/cmark_version.h.
5949 (uri (string-append "https://hackage.haskell.org/package/"
5950 "cmark/cmark-" version ".tar.gz"))
5951 (sha256
5952 (base32
5953 "1c1j3a8b9qx5zk9myqm3gap8ymz7fipwrdmyfsq9wkkdr9x4np45"))))
5954 (build-system haskell-build-system)
5955 (inputs
5956 `(("ghc-text" ,ghc-text)))
5957 (native-inputs
5958 `(("ghc-hunit" ,ghc-hunit)))
5959 (home-page "https://github.com/jgm/commonmark-hs")
5960 (synopsis "Fast, accurate CommonMark (Markdown) parser and renderer")
5961 (description
5962 "This package provides Haskell bindings for
5963 @uref{https://github.com/jgm/cmark, libcmark}, the reference parser for
5964 CommonMark, a fully specified variant of Markdown. It includes bundled libcmark
5965 sources, and does not require prior installation of the C library.")
5966 (license license:bsd-3)))
5967
5968 (define-public ghc-cmark-gfm
5969 (package
5970 (name "ghc-cmark-gfm")
5971 (version "0.1.5")
5972 (source
5973 (origin
5974 (method url-fetch)
5975 (uri (string-append "https://hackage.haskell.org/package/"
5976 "cmark-gfm/cmark-gfm-"
5977 version ".tar.gz"))
5978 (sha256
5979 (base32
5980 "13b0mqks5c1q989slgsa3ixr5vvkfyic4ynzgv00kgl5qrs7hqk7"))))
5981 (build-system haskell-build-system)
5982 (inputs
5983 `(("ghc-text" ,ghc-text)))
5984 (native-inputs
5985 `(("ghc-hunit" ,ghc-hunit)))
5986 (home-page "https://github.com/kivikakk/cmark-gfm-hs")
5987 (synopsis
5988 "Fast, accurate GitHub Flavored Markdown parser and renderer")
5989 (description
5990 "This package provides Haskell bindings for libcmark-gfm, the reference
5991 parser for GitHub Flavored Markdown, a fully specified variant of Markdown.
5992 It includes sources for libcmark-gfm and does not require prior installation
5993 of the C library.")
5994 (license license:bsd-3)))
5995
5996 (define-public ghc-executable-path
5997 (package
5998 (name "ghc-executable-path")
5999 (version "0.0.3.1")
6000 (source (origin
6001 (method url-fetch)
6002 (uri (string-append "https://hackage.haskell.org/package/"
6003 "executable-path/executable-path-"
6004 version ".tar.gz"))
6005 (sha256
6006 (base32
6007 "0vxwmnsvx13cawcyhbyljkds0l1vr996ijldycx7nj0asjv45iww"))))
6008 (build-system haskell-build-system)
6009 (home-page "https://hackage.haskell.org/package/executable-path")
6010 (synopsis "Find out the full path of the executable")
6011 (description
6012 "The documentation of @code{System.Environment.getProgName} says that
6013 \"However, this is hard-to-impossible to implement on some non-Unix OSes, so
6014 instead, for maximum portability, we just return the leafname of the program
6015 as invoked.\" This library tries to provide the missing path.")
6016 (license license:public-domain)))
6017
6018 (define-public ghc-enclosed-exceptions
6019 (package
6020 (name "ghc-enclosed-exceptions")
6021 (version "1.0.3")
6022 (source (origin
6023 (method url-fetch)
6024 (uri (string-append "https://hackage.haskell.org/package/"
6025 "enclosed-exceptions/enclosed-exceptions-"
6026 version ".tar.gz"))
6027 (sha256
6028 (base32
6029 "1fghjj7nkiddrf03ks8brjpr5x25yi9fs7xg6adbi4mc2gqr6vdg"))))
6030 (build-system haskell-build-system)
6031 ;; FIXME: one of the tests blocks forever:
6032 ;; "thread blocked indefinitely in an MVar operation"
6033 (arguments '(#:tests? #f))
6034 (inputs
6035 `(("ghc-lifted-base" ,ghc-lifted-base)
6036 ("ghc-monad-control" ,ghc-monad-control)
6037 ("ghc-async" ,ghc-async)
6038 ("ghc-transformers-base" ,ghc-transformers-base)))
6039 (native-inputs
6040 `(("ghc-hspec" ,ghc-hspec)
6041 ("ghc-quickcheck" ,ghc-quickcheck)))
6042 (home-page "https://github.com/jcristovao/enclosed-exceptions")
6043 (synopsis "Catch all exceptions from within an enclosed computation")
6044 (description
6045 "This library implements a technique to catch all exceptions raised
6046 within an enclosed computation, while remaining responsive to (external)
6047 asynchronous exceptions.")
6048 (license license:expat)))
6049
6050 (define-public ghc-packedstring
6051 (package
6052 (name "ghc-packedstring")
6053 (version "0.1.0.1")
6054 (source (origin
6055 (method url-fetch)
6056 (uri (string-append "https://hackage.haskell.org/package/"
6057 "packedstring/packedstring-"
6058 version ".tar.gz"))
6059 (sha256
6060 (base32
6061 "1x78pzzdlnpcmh9p37rlf8m5cxf3yqm2alf3whl4zpr9w25r0qj8"))))
6062 (build-system haskell-build-system)
6063 (arguments
6064 `(#:phases
6065 (modify-phases %standard-phases
6066 (add-after 'unpack 'enable-extension
6067 (lambda _
6068 ;; This package won't compile without the StandaloneDeriving
6069 ;; extension.
6070 (substitute* "packedstring.cabal"
6071 (("CPP") "CPP, StandaloneDeriving"))
6072 #t)))))
6073 (home-page "https://hackage.haskell.org/package/packedstring")
6074 (synopsis "Library for packed strings")
6075 (description
6076 "This deprecated library provides an implementation of packed strings.")
6077 (license license:bsd-3)))
6078
6079 (define-public ghc-th-abstraction
6080 (package
6081 (name "ghc-th-abstraction")
6082 (version "0.2.8.0")
6083 (source
6084 (origin
6085 (method url-fetch)
6086 (uri (string-append "https://hackage.haskell.org/package/"
6087 "th-abstraction/th-abstraction-"
6088 version ".tar.gz"))
6089 (sha256
6090 (base32
6091 "0n17w4q2ykd0nica4sck2wng6md56rfad8x0icl0l8vnzb9nn4ya"))))
6092 (build-system haskell-build-system)
6093 (home-page "https://github.com/glguy/th-abstraction")
6094 (synopsis "Nicer interface for reified information about data types")
6095 (description
6096 "This package normalizes variations in the interface for inspecting
6097 datatype information via Template Haskell so that packages and support a
6098 single, easier to use informational datatype while supporting many versions of
6099 Template Haskell.")
6100 (license license:isc)))
6101
6102 (define-public ghc-th-lift
6103 (package
6104 (name "ghc-th-lift")
6105 (version "0.7.11")
6106 (source (origin
6107 (method url-fetch)
6108 (uri (string-append "https://hackage.haskell.org/package/"
6109 "th-lift/th-lift-" version ".tar.gz"))
6110 (sha256
6111 (base32
6112 "131360zxb0hazbqwbkk6ab2p77jkxr79bwwm618mrwrwkm3x2g6m"))))
6113 (build-system haskell-build-system)
6114 (inputs
6115 `(("ghc-th-abstraction" ,ghc-th-abstraction)))
6116 (home-page "https://github.com/mboes/th-lift")
6117 (synopsis "Derive Template Haskell's Lift class for datatypes")
6118 (description
6119 "This is a Haskell library to derive Template Haskell's Lift class for
6120 datatypes.")
6121 (license license:bsd-3)))
6122
6123 (define-public ghc-th-lift-instances
6124 (package
6125 (name "ghc-th-lift-instances")
6126 (version "0.1.11")
6127 (source
6128 (origin
6129 (method url-fetch)
6130 (uri (string-append "https://hackage.haskell.org/package/"
6131 "th-lift-instances/th-lift-instances-"
6132 version ".tar.gz"))
6133 (sha256
6134 (base32
6135 "1f56cp6ckcalld5jchv0kxpjkwcsixd7smd0g7r8cg67ppx6m90x"))))
6136 (build-system haskell-build-system)
6137 (inputs
6138 `(("ghc-th-lift" ,ghc-th-lift)
6139 ("ghc-vector" ,ghc-vector)
6140 ("ghc-text" ,ghc-text)
6141 ("ghc-quickcheck" ,ghc-quickcheck)))
6142 (home-page "https://github.com/bennofs/th-lift-instances/")
6143 (synopsis "Lift instances for template-haskell for common data types.")
6144 (description "Most data types in the Haskell platform do not have Lift
6145 instances. This package provides orphan instances for @code{containers},
6146 @code{text}, @code{bytestring} and @code{vector}.")
6147 (license license:bsd-3)))
6148
6149 (define-public ghc-th-expand-syns
6150 (package
6151 (name "ghc-th-expand-syns")
6152 (version "0.4.4.0")
6153 (source (origin
6154 (method url-fetch)
6155 (uri (string-append "https://hackage.haskell.org/package/"
6156 "th-expand-syns/th-expand-syns-"
6157 version ".tar.gz"))
6158 (sha256
6159 (base32
6160 "01prlvh3py5hq5ccjidfyp9ixq2zd88dkbsidyjrpkja6v8m43yc"))))
6161 (build-system haskell-build-system)
6162 (inputs
6163 `(("ghc-syb" ,ghc-syb)))
6164 (home-page "https://hackage.haskell.org/package/th-expand-syns")
6165 (synopsis "Expands type synonyms in Template Haskell ASTs")
6166 (description
6167 "This package enables users to expand type synonyms in Template Haskell
6168 @dfn{abstract syntax trees} (ASTs).")
6169 (license license:bsd-3)))
6170
6171 (define-public ghc-th-reify-many
6172 (package
6173 (name "ghc-th-reify-many")
6174 (version "0.1.8")
6175 (source (origin
6176 (method url-fetch)
6177 (uri (string-append "https://hackage.haskell.org/package/"
6178 "th-reify-many/th-reify-many-"
6179 version ".tar.gz"))
6180 (sha256
6181 (base32
6182 "0hzy6hvhvcd6i60vx5cp2b7ggmnnjh9rx4h8bm8xw4grglcaxjnf"))))
6183 (build-system haskell-build-system)
6184 (inputs
6185 `(("ghc-safe" ,ghc-safe)
6186 ("ghc-th-expand-syns" ,ghc-th-expand-syns)))
6187 (home-page "https://github.com/mgsloan/th-reify-many")
6188 (synopsis "Recurseively reify template haskell datatype info")
6189 (description
6190 "th-reify-many provides functions for recursively reifying top level
6191 declarations. The main intended use case is for enumerating the names of
6192 datatypes reachable from an initial datatype, and passing these names to some
6193 function which generates instances.")
6194 (license license:bsd-3)))
6195
6196 (define-public ghc-th-orphans
6197 (package
6198 (name "ghc-th-orphans")
6199 (version "0.13.6")
6200 (source (origin
6201 (method url-fetch)
6202 (uri (string-append "https://hackage.haskell.org/package/"
6203 "th-orphans/th-orphans-" version ".tar.gz"))
6204 (sha256
6205 (base32
6206 "0sfl3pn9kq9da3ji3lsgzgzy82vz6yvsg80dmakc1jvk7awycibp"))))
6207 (build-system haskell-build-system)
6208 (inputs
6209 `(("ghc-th-lift" ,ghc-th-lift)
6210 ("ghc-th-lift-instances" ,ghc-th-lift-instances)
6211 ("ghc-th-reify-many" ,ghc-th-reify-many)
6212 ("ghc-generic-deriving" ,ghc-generic-deriving)))
6213 (native-inputs
6214 `(("ghc-hspec" ,ghc-hspec)))
6215 (home-page "https://hackage.haskell.org/package/th-orphans")
6216 (synopsis "Orphan instances for TH datatypes")
6217 (description
6218 "This package provides orphan instances for Template Haskell datatypes. In particular,
6219 instances for @code{Ord} and @code{Lift}, as well as a few missing @code{Show}
6220 and @code{Eq} instances. These instances used to live in the haskell-src-meta
6221 package, and that's where the version number started.")
6222 (license license:bsd-3)))
6223
6224 (define-public ghc-geniplate-mirror
6225 (package
6226 (name "ghc-geniplate-mirror")
6227 (version "0.7.6")
6228 (source
6229 (origin
6230 (method url-fetch)
6231 (uri (string-append "https://hackage.haskell.org/package"
6232 "/geniplate-mirror"
6233 "/geniplate-mirror-" version ".tar.gz"))
6234 (sha256
6235 (base32 "1y0m0bw5zpm1y1y6d9qmxj3swl8j8hlw1shxbr5awycf6k884ssb"))))
6236 (build-system haskell-build-system)
6237 (home-page "https://github.com/danr/geniplate")
6238 (synopsis "Use Template Haskell to generate Uniplate-like functions")
6239 (description
6240 "Use Template Haskell to generate Uniplate-like functions. This is a
6241 maintained mirror of the @uref{https://hackage.haskell.org/package/geniplate,
6242 geniplate} package, written by Lennart Augustsson.")
6243 (license license:bsd-3)))
6244
6245 (define-public ghc-gitrev
6246 (package
6247 (name "ghc-gitrev")
6248 (version "1.3.1")
6249 (source
6250 (origin
6251 (method url-fetch)
6252 (uri (string-append "https://hackage.haskell.org/package/gitrev/gitrev-"
6253 version ".tar.gz"))
6254 (sha256
6255 (base32 "0cl3lfm6k1h8fxp2vxa6ihfp4v8igkz9h35iwyq2frzm4kdn96d8"))))
6256 (build-system haskell-build-system)
6257 (inputs `(("ghc-base-compat" ,ghc-base-compat)))
6258 (home-page "https://github.com/acfoltzer/gitrev")
6259 (synopsis "Compile git revision info into Haskell projects")
6260 (description
6261 "This package provides some handy Template Haskell splices for including
6262 the current git hash and branch in the code of your project. This is useful
6263 for including in panic messages, @command{--version} output, or diagnostic
6264 info for more informative bug reports.")
6265 (license license:bsd-3)))
6266
6267 (define-public ghc-haskell-src-meta
6268 (package
6269 (name "ghc-haskell-src-meta")
6270 (version "0.8.0.3")
6271 (source (origin
6272 (method url-fetch)
6273 (uri (string-append "https://hackage.haskell.org/package/"
6274 "haskell-src-meta/haskell-src-meta-"
6275 version ".tar.gz"))
6276 (sha256
6277 (base32
6278 "08jq156zv4m0fjq6712n99c1jwxnpa6kj6sq8ch0r1l0a1ay6ww4"))))
6279 (build-system haskell-build-system)
6280 (inputs
6281 `(("ghc-haskell-src-exts" ,ghc-haskell-src-exts)
6282 ("ghc-syb" ,ghc-syb)
6283 ("ghc-th-orphans" ,ghc-th-orphans)))
6284 (native-inputs
6285 `(("ghc-hunit" ,ghc-hunit)
6286 ("ghc-test-framework" ,ghc-test-framework)
6287 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)))
6288 (home-page "https://hackage.haskell.org/package/haskell-src-meta")
6289 (synopsis "Parse source to template-haskell abstract syntax")
6290 (description
6291 "This package provides tools to parse Haskell sources to the
6292 template-haskell abstract syntax.")
6293 (license license:bsd-3)))
6294
6295 (define-public ghc-conduit
6296 (package
6297 (name "ghc-conduit")
6298 (version "1.3.0.3")
6299 (source (origin
6300 (method url-fetch)
6301 (uri (string-append "https://hackage.haskell.org/package/"
6302 "conduit/conduit-" version ".tar.gz"))
6303 (sha256
6304 (base32
6305 "1sangm0qqi9dzlq95746a3kl14k8b09592a423shxjf2a0b1yx5v"))))
6306 (build-system haskell-build-system)
6307 (inputs
6308 `(("ghc-exceptions" ,ghc-exceptions)
6309 ("ghc-lifted-base" ,ghc-lifted-base)
6310 ("ghc-mono-traversable" ,ghc-mono-traversable)
6311 ("ghc-mmorph" ,ghc-mmorph)
6312 ("ghc-resourcet" ,ghc-resourcet)
6313 ("ghc-silently" ,ghc-silently)
6314 ("ghc-transformers-base" ,ghc-transformers-base)
6315 ("ghc-unliftio" ,ghc-unliftio)
6316 ("ghc-unliftio-core" ,ghc-unliftio-core)
6317 ("ghc-vector" ,ghc-vector)
6318 ("ghc-void" ,ghc-void)))
6319 (native-inputs
6320 `(("ghc-quickcheck" ,ghc-quickcheck)
6321 ("ghc-hspec" ,ghc-hspec)
6322 ("ghc-safe" ,ghc-safe)
6323 ("ghc-split" ,ghc-split)))
6324 (home-page "https://github.com/snoyberg/conduit")
6325 (synopsis "Streaming data library ")
6326 (description
6327 "The conduit package is a solution to the streaming data problem,
6328 allowing for production, transformation, and consumption of streams of data
6329 in constant memory. It is an alternative to lazy I/O which guarantees
6330 deterministic resource handling, and fits in the same general solution
6331 space as enumerator/iteratee and pipes.")
6332 (license license:expat)))
6333
6334 (define-public ghc-logging-facade
6335 (package
6336 (name "ghc-logging-facade")
6337 (version "0.3.0")
6338 (source (origin
6339 (method url-fetch)
6340 (uri (string-append "https://hackage.haskell.org/package/"
6341 "logging-facade/logging-facade-"
6342 version ".tar.gz"))
6343 (sha256
6344 (base32
6345 "0d0lwxxgd16is9aw6v3ps4r9prv3dj8xscmm45fvzq3nicjiawcf"))))
6346 (build-system haskell-build-system)
6347 (native-inputs
6348 `(("ghc-hspec" ,ghc-hspec)
6349 ("hspec-discover" ,hspec-discover)))
6350 (home-page "https://hackage.haskell.org/package/logging-facade")
6351 (synopsis "Simple logging abstraction that allows multiple back-ends")
6352 (description
6353 "This package provides a simple logging abstraction that allows multiple
6354 back-ends.")
6355 (license license:expat)))
6356
6357 (define-public ghc-mockery
6358 (package
6359 (name "ghc-mockery")
6360 (version "0.3.5")
6361 (source (origin
6362 (method url-fetch)
6363 (uri (string-append "https://hackage.haskell.org/package/"
6364 "mockery/mockery-" version ".tar.gz"))
6365 (sha256
6366 (base32
6367 "09ypgm3z69gq8mj6y66ss58kbjnk15r8frwcwbqcfbfksfnfv8dp"))))
6368 (build-system haskell-build-system)
6369 (inputs
6370 `(("ghc-temporary" ,ghc-temporary)
6371 ("ghc-logging-facade" ,ghc-logging-facade)
6372 ("ghc-base-compat" ,ghc-base-compat)))
6373 (native-inputs
6374 `(("ghc-hspec" ,ghc-hspec)
6375 ("hspec-discover" ,hspec-discover)))
6376 (home-page "https://hackage.haskell.org/package/mockery")
6377 (synopsis "Support functions for automated testing")
6378 (description
6379 "The mockery package provides support functions for automated testing.")
6380 (license license:expat)))
6381
6382 (define-public ghc-yaml
6383 (package
6384 (name "ghc-yaml")
6385 (version "0.8.32")
6386 (source (origin
6387 (method url-fetch)
6388 (uri (string-append "https://hackage.haskell.org/package/"
6389 "yaml/yaml-" version ".tar.gz"))
6390 (sha256
6391 (base32
6392 "0cbsyh4ilvjzq1q7pxls43k6pdqxg1l85xzibcwpbvmlvrizh86w"))))
6393 (build-system haskell-build-system)
6394 (inputs
6395 `(("ghc-conduit" ,ghc-conduit)
6396 ("ghc-resourcet" ,ghc-resourcet)
6397 ("ghc-aeson" ,ghc-aeson)
6398 ("ghc-unordered-containers" ,ghc-unordered-containers)
6399 ("ghc-vector" ,ghc-vector)
6400 ("ghc-text" ,ghc-text)
6401 ("ghc-attoparsec" ,ghc-attoparsec)
6402 ("ghc-scientific" ,ghc-scientific)
6403 ("ghc-semigroups" ,ghc-semigroups)
6404 ("ghc-temporary" ,ghc-temporary)
6405 ("ghc-enclosed-exceptions" ,ghc-enclosed-exceptions)
6406 ("ghc-base-compat" ,ghc-base-compat)))
6407 (native-inputs
6408 `(("ghc-hspec" ,ghc-hspec)
6409 ("ghc-hunit" ,ghc-hunit)
6410 ("hspec-discover" ,hspec-discover)
6411 ("ghc-mockery" ,ghc-mockery)))
6412 (home-page "https://github.com/snoyberg/yaml/")
6413 (synopsis "Parsing and rendering YAML documents")
6414 (description
6415 "This package provides a library to parse and render YAML documents.")
6416 (license license:bsd-3)))
6417
6418 (define-public ghc-filemanip
6419 (package
6420 (name "ghc-filemanip")
6421 (version "0.3.6.3")
6422 (source (origin
6423 (method url-fetch)
6424 (uri (string-append "https://hackage.haskell.org/package/"
6425 "filemanip/filemanip-" version ".tar.gz"))
6426 (sha256
6427 (base32
6428 "0ilqr8jv41zxcj5qyicg29m8s30b9v70x6f9h2h2rw5ap8bxldl8"))))
6429 (build-system haskell-build-system)
6430 (inputs
6431 `(("ghc-unix-compat" ,ghc-unix-compat)))
6432 (home-page "https://github.com/bos/filemanip")
6433 (synopsis "File and directory manipulation for Haskell")
6434 (description
6435 "This package provides a Haskell library for working with files and
6436 directories. It includes code for pattern matching, finding files, modifying
6437 file contents, and more.")
6438 (license license:bsd-3)))
6439
6440 (define-public ghc-mmap
6441 (package
6442 (name "ghc-mmap")
6443 (version "0.5.9")
6444 (source (origin
6445 (method url-fetch)
6446 (uri (string-append "https://hackage.haskell.org/package/"
6447 "mmap/mmap-" version ".tar.gz"))
6448 (sha256
6449 (base32
6450 "1y5mk3yf4b8r6rzmlx1xqn4skaigrqnv08sqq0v7r3nbw42bpz2q"))))
6451 (build-system haskell-build-system)
6452 (home-page "https://hackage.haskell.org/package/mmap")
6453 (synopsis "Memory mapped files for Haskell")
6454 (description
6455 "This library provides a wrapper to @code{mmap}, allowing files or
6456 devices to be lazily loaded into memory as strict or lazy @code{ByteStrings},
6457 @code{ForeignPtrs} or plain @code{Ptrs}, using the virtual memory subsystem to
6458 do on-demand loading.")
6459 (license license:bsd-3)))
6460
6461 (define-public ghc-juicypixels
6462 (package
6463 (name "ghc-juicypixels")
6464 (version "3.2.9.5")
6465 (source (origin
6466 (method url-fetch)
6467 (uri (string-append "https://hackage.haskell.org/package/"
6468 "JuicyPixels/JuicyPixels-"
6469 version ".tar.gz"))
6470 (sha256
6471 (base32
6472 "0mf3ihr0xy2wc2wzb9a17g0n3p60x7pvm8akwpvhdy8klvs6r744"))))
6473 (build-system haskell-build-system)
6474 (inputs
6475 `(("ghc-zlib" ,ghc-zlib)
6476 ("ghc-vector" ,ghc-vector)
6477 ("ghc-primitive" ,ghc-primitive)
6478 ("ghc-mmap" ,ghc-mmap)))
6479 (home-page "https://github.com/Twinside/Juicy.Pixels")
6480 (synopsis "Picture loading and serialization library")
6481 (description
6482 "This library can load and store images in PNG, Bitmap, JPEG, Radiance,
6483 TIFF and GIF formats.")
6484 (license license:bsd-3)))
6485
6486 (define-public ghc-hslua
6487 (package
6488 (name "ghc-hslua")
6489 (version "0.9.5.2")
6490 (source (origin
6491 (method url-fetch)
6492 (uri (string-append "https://hackage.haskell.org/package/"
6493 "hslua/hslua-" version ".tar.gz"))
6494 (sha256
6495 (base32
6496 "1rdvv01p214zfjh6fcqjjgqwi8y42wad6cqzhlcv5gvclzw2ck8f"))))
6497 (build-system haskell-build-system)
6498 (arguments
6499 `(#:configure-flags '("-fsystem-lua")))
6500 (inputs
6501 `(("lua" ,lua)
6502 ("ghc-exceptions" ,ghc-exceptions)
6503 ("ghc-fail" ,ghc-fail)
6504 ("ghc-text" ,ghc-text)))
6505 (native-inputs
6506 `(("ghc-tasty" ,ghc-tasty)
6507 ("ghc-tasty-expected-failure" ,ghc-tasty-expected-failure)
6508 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
6509 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
6510 ("ghc-quickcheck" ,ghc-quickcheck)
6511 ("ghc-quickcheck-instances" ,ghc-quickcheck-instances)))
6512 (home-page "https://hackage.haskell.org/package/hslua")
6513 (synopsis "Lua language interpreter embedding in Haskell")
6514 (description
6515 "The Scripting.Lua module is a wrapper of the Lua language interpreter as
6516 described in @url{https://www.lua.org/}.")
6517 (license license:expat)))
6518
6519 (define-public ghc-hslua-module-text
6520 (package
6521 (name "ghc-hslua-module-text")
6522 (version "0.1.2.1")
6523 (source
6524 (origin
6525 (method url-fetch)
6526 (uri (string-append "https://hackage.haskell.org/package/"
6527 "hslua-module-text/hslua-module-text-"
6528 version ".tar.gz"))
6529 (sha256
6530 (base32
6531 "0bcfpb1dhnxp0gr376ai4w7vczr9zrjl1r3r6w7kcxivfkwq9cxf"))))
6532 (build-system haskell-build-system)
6533 (arguments
6534 `(#:cabal-revision
6535 ("1" "0vajlsd7y6pwa08635q0cx8z5c1c55bk7fvavw7g2vmyvxqjzx6n")))
6536 (inputs
6537 `(("ghc-hslua" ,ghc-hslua)
6538 ("ghc-text" ,ghc-text)))
6539 (native-inputs
6540 `(("ghc-tasty" ,ghc-tasty)
6541 ("ghc-tasty-hunit" ,ghc-tasty-hunit)))
6542 (home-page "https://github.com/hslua/hslua-module-text")
6543 (synopsis "Lua module for text")
6544 (description
6545 "This package provides a UTF-8 aware subset of Lua's @code{string} module
6546 for Haskell. The functions provided by this module are @code{upper},
6547 @code{lower}, @code{len}, @code{reverse}, and @code{sub}.")
6548 (license license:expat)))
6549
6550 (define-public ghc-byteable
6551 (package
6552 (name "ghc-byteable")
6553 (version "0.1.1")
6554 (source (origin
6555 (method url-fetch)
6556 (uri (string-append "https://hackage.haskell.org/package/"
6557 "byteable/byteable-" version ".tar.gz"))
6558 (sha256
6559 (base32
6560 "1qizg0kxxjqnd3cbrjhhidk5pbbciz0pb3z5kzikjjxnnnhk8fr4"))))
6561 (build-system haskell-build-system)
6562 (home-page "https://github.com/vincenthz/hs-byteable")
6563 (synopsis "Type class for sequence of bytes")
6564 (description
6565 "This package provides an abstract class to manipulate sequence of bytes.
6566 The use case of this class is abstracting manipulation of types that are just
6567 wrapping a bytestring with stronger and more meaniful name.")
6568 (license license:bsd-3)))
6569
6570 (define-public ghc-hourglass
6571 (package
6572 (name "ghc-hourglass")
6573 (version "0.2.12")
6574 (source (origin
6575 (method url-fetch)
6576 (uri (string-append "https://hackage.haskell.org/package/"
6577 "hourglass/hourglass-" version ".tar.gz"))
6578 (sha256
6579 (base32
6580 "0jnay5j13vpz6i1rkaj3j0d9v8jfpri499xn3l7wd01f81f5ncs4"))))
6581 (build-system haskell-build-system)
6582 (inputs
6583 `(("ghc-old-locale" ,ghc-old-locale)))
6584 (native-inputs
6585 `(("ghc-tasty" ,ghc-tasty)
6586 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
6587 ("ghc-tasty-hunit" ,ghc-tasty-hunit)))
6588 (home-page "https://github.com/vincenthz/hs-hourglass")
6589 (synopsis "Simple time-related library for Haskell")
6590 (description
6591 "This is a simple time library providing a simple but powerful and
6592 performant API. The backbone of the library are the @code{Timeable} and
6593 @code{Time} type classes. Each @code{Timeable} instances can be converted to
6594 a type that has a @code{Time} instances, and thus are different
6595 representations of current time.")
6596 (license license:bsd-3)))
6597
6598 (define-public ghc-edit-distance
6599 (package
6600 (name "ghc-edit-distance")
6601 (version "0.2.2.1")
6602 (source
6603 (origin
6604 (method url-fetch)
6605 (uri (string-append "https://hackage.haskell.org/package/edit-distance"
6606 "/edit-distance-" version ".tar.gz"))
6607 (sha256
6608 (base32 "0jkca97zyv23yyilp3jydcrzxqhyk27swhzh82llvban5zp8b21y"))))
6609 (build-system haskell-build-system)
6610 (arguments
6611 `(#:phases
6612 (modify-phases %standard-phases
6613 (add-before 'configure 'update-constraints
6614 (lambda _
6615 (substitute* "edit-distance.cabal"
6616 (("QuickCheck >= 2\\.4 && <2\\.9")
6617 "QuickCheck >= 2.4 && < 2.12")))))))
6618 (inputs
6619 `(("ghc-random" ,ghc-random)
6620 ("ghc-test-framework" ,ghc-test-framework)
6621 ("ghc-quickcheck" ,ghc-quickcheck)
6622 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
6623 (home-page "https://github.com/phadej/edit-distance")
6624 (synopsis "Levenshtein and restricted Damerau-Levenshtein edit distances")
6625 (description
6626 "This package provides optimized functions to determine the edit
6627 distances for fuzzy matching, including Levenshtein and restricted
6628 Damerau-Levenshtein algorithms.")
6629 (license license:bsd-3)))
6630
6631 (define-public ghc-memory
6632 (package
6633 (name "ghc-memory")
6634 (version "0.14.16")
6635 (source (origin
6636 (method url-fetch)
6637 (uri (string-append "https://hackage.haskell.org/package/"
6638 "memory/memory-" version ".tar.gz"))
6639 (sha256
6640 (base32
6641 "03rbszi5d4z9rlbfv8ydrl1xf84xsh8z57g07f7j9qccn9587c3v"))))
6642 (build-system haskell-build-system)
6643 (inputs
6644 `(("ghc-basement" ,ghc-basement)
6645 ("ghc-foundation" ,ghc-foundation)))
6646 (native-inputs
6647 `(("ghc-tasty" ,ghc-tasty)
6648 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
6649 ("ghc-tasty-hunit" ,ghc-tasty-hunit)))
6650 (home-page "https://github.com/vincenthz/hs-memory")
6651 (synopsis "Memory abstractions for Haskell")
6652 (description
6653 "This package provides memory abstractions, such as chunk of memory,
6654 polymorphic byte array management and manipulation functions. It contains a
6655 polymorphic byte array abstraction and functions similar to strict ByteString,
6656 different type of byte array abstraction, raw memory IO operations (memory
6657 set, memory copy, ..) and more")
6658 (license license:bsd-3)))
6659
6660 (define-public ghc-socks
6661 (package
6662 (name "ghc-socks")
6663 (version "0.5.6")
6664 (source (origin
6665 (method url-fetch)
6666 (uri (string-append "https://hackage.haskell.org/package/"
6667 "socks/socks-" version ".tar.gz"))
6668 (sha256
6669 (base32
6670 "0f44qy74i0n6ll3jym0a2ipafkpw1h67amcpqmj8iq95h21wsqzs"))))
6671 (build-system haskell-build-system)
6672 (inputs
6673 `(("ghc-cereal" ,ghc-cereal)
6674 ("ghc-network" ,ghc-network)))
6675 (home-page "https://github.com/vincenthz/hs-socks")
6676 (synopsis "SOCKS proxy (version 5) implementation")
6677 (description
6678 "This library provides a SOCKS proxy (version 5) implementation.")
6679 (license license:bsd-3)))
6680
6681 (define-public ghc-connection
6682 (package
6683 (name "ghc-connection")
6684 (version "0.2.8")
6685 (source (origin
6686 (method url-fetch)
6687 (uri (string-append "https://hackage.haskell.org/package/"
6688 "connection/connection-"
6689 version ".tar.gz"))
6690 (sha256
6691 (base32
6692 "1swkb9w5vx9ph7x55y51dc0srj2z27nd9ibgn8c0qcl6hx7g9cbh"))))
6693 (build-system haskell-build-system)
6694 (inputs
6695 `(("ghc-byteable" ,ghc-byteable)
6696 ("ghc-data-default-class" ,ghc-data-default-class)
6697 ("ghc-network" ,ghc-network)
6698 ("ghc-tls" ,ghc-tls)
6699 ("ghc-socks" ,ghc-socks)
6700 ("ghc-x509" ,ghc-x509)
6701 ("ghc-x509-store" ,ghc-x509-store)
6702 ("ghc-x509-system" ,ghc-x509-system)
6703 ("ghc-x509-validation" ,ghc-x509-validation)))
6704 (home-page "https://github.com/vincenthz/hs-connection")
6705 (synopsis "Simple and easy network connections API")
6706 (description
6707 "This package provides a simple network library for all your connection
6708 needs. It provides a very simple API to create sockets to a destination with
6709 the choice of SSL/TLS, and SOCKS.")
6710 (license license:bsd-3)))
6711
6712 (define-public ghc-skylighting-core
6713 (package
6714 (name "ghc-skylighting-core")
6715 (version "0.7.2")
6716 (source (origin
6717 (method url-fetch)
6718 (uri (string-append "https://hackage.haskell.org/package/"
6719 "skylighting-core/skylighting-core-"
6720 version ".tar.gz"))
6721 (sha256
6722 (base32
6723 "066fwmwsd7xcvwlinfk2izlzq0xp8697i6lnbgsbl71jdybyackq"))))
6724 (build-system haskell-build-system)
6725 (inputs
6726 `(("ghc-aeson" ,ghc-aeson)
6727 ("ghc-ansi-terminal" ,ghc-ansi-terminal)
6728 ("ghc-attoparsec" ,ghc-attoparsec)
6729 ("ghc-base64-bytestring" ,ghc-base64-bytestring)
6730 ("ghc-blaze-html" ,ghc-blaze-html)
6731 ("ghc-case-insensitive" ,ghc-case-insensitive)
6732 ("ghc-colour" ,ghc-colour)
6733 ("ghc-hxt" ,ghc-hxt)
6734 ("ghc-regex-pcre-builtin" ,ghc-regex-pcre-builtin)
6735 ("ghc-safe" ,ghc-safe)
6736 ("ghc-text" ,ghc-text)
6737 ("ghc-utf8-string" ,ghc-utf8-string)))
6738 (native-inputs
6739 `(("ghc-diff" ,ghc-diff)
6740 ("ghc-hunit" ,ghc-hunit)
6741 ("ghc-pretty-show" ,ghc-pretty-show)
6742 ("ghc-quickcheck" ,ghc-quickcheck)
6743 ("ghc-tasty" ,ghc-tasty)
6744 ("ghc-tasty-golden" ,ghc-tasty-golden)
6745 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
6746 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
6747 (home-page "https://github.com/jgm/skylighting")
6748 (synopsis "Syntax highlighting library")
6749 (description "Skylighting is a syntax highlighting library with support
6750 for over one hundred languages. It derives its tokenizers from XML syntax
6751 definitions used by KDE's @code{KSyntaxHighlighting} framework, so any syntax
6752 supported by that framework can be added. An optional command-line program is
6753 provided. Skylighting is intended to be the successor to highlighting-kate.")
6754 (license license:gpl2)))
6755
6756 (define-public ghc-skylighting
6757 (package
6758 (inherit ghc-skylighting-core)
6759 (name "ghc-skylighting")
6760 (version "0.7.2")
6761 (source (origin
6762 (method url-fetch)
6763 (uri (string-append "https://hackage.haskell.org/package/skylighting-"
6764 version "/skylighting-" version ".tar.gz"))
6765 (sha256
6766 (base32
6767 "1rh3z1a7a4clvksdw1qlpmhxqkfahwypi70k91whgfamzsqpxdch"))))
6768 (inputs
6769 `(("ghc-skylighting-core" ,ghc-skylighting-core)
6770 ,@(package-inputs ghc-skylighting-core)))))
6771
6772 (define-public ghc-doctemplates
6773 (package
6774 (name "ghc-doctemplates")
6775 (version "0.2.2.1")
6776 (source
6777 (origin
6778 (method url-fetch)
6779 (uri (string-append "https://hackage.haskell.org/package/"
6780 "doctemplates/doctemplates-"
6781 version ".tar.gz"))
6782 (sha256
6783 (base32
6784 "1gyckfg3kgvzhxw14i7iwrw0crygvsp86sy53bbr1yn7bxbgn33b"))))
6785 (build-system haskell-build-system)
6786 (inputs
6787 `(("ghc-aeson" ,ghc-aeson)
6788 ("ghc-blaze-markup" ,ghc-blaze-markup)
6789 ("ghc-blaze-html" ,ghc-blaze-html)
6790 ("ghc-text" ,ghc-text)
6791 ("ghc-vector" ,ghc-vector)
6792 ("ghc-parsec" ,ghc-parsec)
6793 ("ghc-unordered-containers" ,ghc-unordered-containers)
6794 ("ghc-scientific" ,ghc-scientific)))
6795 (native-inputs
6796 `(("ghc-hspec" ,ghc-hspec)))
6797 (home-page "https://github.com/jgm/doctemplates#readme")
6798 (synopsis "Pandoc-style document templates")
6799 (description
6800 "This package provides a simple text templating system used by pandoc.")
6801 (license license:bsd-3)))
6802
6803 (define-public ghc-pandoc
6804 (package
6805 (name "ghc-pandoc")
6806 (version "2.2.1")
6807 (source
6808 (origin
6809 (method url-fetch)
6810 (uri (string-append "https://hackage.haskell.org/package/pandoc/pandoc-"
6811 version ".tar.gz"))
6812 (sha256
6813 (base32
6814 "1dqin92w513l7whg5wdgrngnxsj5mb8gppfvn7kjgyv2pdgpy0zy"))))
6815 (build-system haskell-build-system)
6816 (arguments
6817 `(#:phases
6818 (modify-phases %standard-phases
6819 (add-before 'configure 'update-constraints
6820 (lambda _
6821 (substitute* "pandoc.cabal"
6822 (("tasty >= 0\\.11 && < 1\\.1")
6823 "tasty >= 0.11 && < 1.1.1"))))
6824 (add-before 'configure 'patch-tests
6825 (lambda _
6826 ;; These tests fail benignly and have been adjusted upstream:
6827 ;; <https://github.com/commercialhaskell/stackage/issues/3719>.
6828 (substitute* "test/Tests/Old.hs"
6829 (("lhsWriterTests \"html\"") "[]")))))))
6830 (inputs
6831 `(("ghc-aeson" ,ghc-aeson)
6832 ("ghc-aeson-pretty" ,ghc-aeson-pretty)
6833 ("ghc-base64-bytestring" ,ghc-base64-bytestring)
6834 ("ghc-blaze-html" ,ghc-blaze-html)
6835 ("ghc-blaze-markup" ,ghc-blaze-markup)
6836 ("ghc-cmark-gfm" ,ghc-cmark-gfm)
6837 ("ghc-data-default" ,ghc-data-default)
6838 ("ghc-deepseq-generics" ,ghc-deepseq-generics)
6839 ("ghc-diff" ,ghc-diff)
6840 ("ghc-doctemplates" ,ghc-doctemplates)
6841 ("ghc-executable-path" ,ghc-executable-path)
6842 ("ghc-glob" ,ghc-glob)
6843 ("ghc-haddock-library" ,ghc-haddock-library)
6844 ("ghc-hslua" ,ghc-hslua)
6845 ("ghc-hslua-module-text" ,ghc-hslua-module-text)
6846 ("ghc-http" ,ghc-http)
6847 ("ghc-http-client" ,ghc-http-client)
6848 ("ghc-http-client-tls" ,ghc-http-client-tls)
6849 ("ghc-http-types" ,ghc-http-types)
6850 ("ghc-juicypixels" ,ghc-juicypixels)
6851 ("ghc-network" ,ghc-network)
6852 ("ghc-network-uri" ,ghc-network-uri)
6853 ("ghc-old-locale" ,ghc-old-locale)
6854 ("ghc-pandoc-types" ,ghc-pandoc-types)
6855 ("ghc-parsec" ,ghc-parsec)
6856 ("ghc-random" ,ghc-random)
6857 ("ghc-scientific" ,ghc-scientific)
6858 ("ghc-sha" ,ghc-sha)
6859 ("ghc-skylighting" ,ghc-skylighting)
6860 ("ghc-split" ,ghc-split)
6861 ("ghc-syb" ,ghc-syb)
6862 ("ghc-tagsoup" ,ghc-tagsoup)
6863 ("ghc-temporary" ,ghc-temporary)
6864 ("ghc-texmath" ,ghc-texmath)
6865 ("ghc-text" ,ghc-text)
6866 ("ghc-unordered-containers" ,ghc-unordered-containers)
6867 ("ghc-vector" ,ghc-vector)
6868 ("ghc-xml" ,ghc-xml)
6869 ("ghc-yaml" ,ghc-yaml)
6870 ("ghc-zip-archive" ,ghc-zip-archive)
6871 ("ghc-zlib" ,ghc-zlib)))
6872 (native-inputs
6873 `(("ghc-tasty" ,ghc-tasty)
6874 ("ghc-tasty-golden" ,ghc-tasty-golden)
6875 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
6876 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
6877 ("ghc-quickcheck" ,ghc-quickcheck)
6878 ("ghc-hunit" ,ghc-hunit)))
6879 (home-page "https://pandoc.org")
6880 (synopsis "Conversion between markup formats")
6881 (description
6882 "Pandoc is a Haskell library for converting from one markup format to
6883 another, and a command-line tool that uses this library. It can read and
6884 write Markdown and (subsets of) other formats, such as HTML, reStructuredText,
6885 LaTeX, DocBook, and many more.
6886
6887 Pandoc extends standard Markdown syntax with footnotes, embedded LaTeX,
6888 definition lists, tables, and other features. A compatibility mode is
6889 provided for those who need a drop-in replacement for Markdown.pl.")
6890 (license license:gpl2+)))
6891
6892 (define-public ghc-hs-bibutils
6893 (package
6894 (name "ghc-hs-bibutils")
6895 (version "6.6.0.0")
6896 (source
6897 (origin
6898 (method url-fetch)
6899 (uri (string-append
6900 "https://hackage.haskell.org/package/hs-bibutils/hs-bibutils-"
6901 version ".tar.gz"))
6902 (sha256
6903 (base32
6904 "0n2sz2zl4naspryd49ii858qkjp2lapns5a2gr8zm6vvn5sh1f0l"))))
6905 (build-system haskell-build-system)
6906 (inputs `(("ghc-syb" ,ghc-syb)))
6907 (home-page "https://hackage.haskell.org/package/hs-bibutils")
6908 (synopsis "Haskell bindings to bibutils")
6909 (description
6910 "This package provides Haskell bindings to @code{bibutils}, a library
6911 that interconverts between various bibliography formats using a common
6912 MODS-format XML intermediate.")
6913 (license license:gpl2+)))
6914
6915 (define-public ghc-rfc5051
6916 (package
6917 (name "ghc-rfc5051")
6918 (version "0.1.0.3")
6919 (source
6920 (origin
6921 (method url-fetch)
6922 (uri (string-append "https://hackage.haskell.org/package/rfc5051/"
6923 "rfc5051-" version ".tar.gz"))
6924 (sha256
6925 (base32
6926 "0av4c3qvwbkbzrjrrg601ay9pds7wscqqp2lc2z78mv2lllap3g3"))))
6927 (build-system haskell-build-system)
6928 (home-page "https://hackage.haskell.org/package/rfc5051")
6929 (synopsis "Simple unicode collation as per RFC5051")
6930 (description
6931 "This library implements @code{unicode-casemap}, the simple, non
6932 locale-sensitive unicode collation algorithm described in RFC 5051. Proper
6933 unicode collation can be done using @code{text-icu}, but that is a big
6934 dependency that depends on a large C library, and @code{rfc5051} might be
6935 better for some purposes.")
6936 (license license:bsd-3)))
6937
6938 (define-public ghc-typed-process
6939 (package
6940 (name "ghc-typed-process")
6941 (version "0.2.3.0")
6942 (source
6943 (origin
6944 (method url-fetch)
6945 (uri (string-append "https://hackage.haskell.org/package/"
6946 "typed-process/typed-process-"
6947 version ".tar.gz"))
6948 (sha256
6949 (base32
6950 "0j36vrc9w841m5qbwqra1lwiznx31xfnhin1sm8x2c2739csbpn0"))))
6951 (build-system haskell-build-system)
6952 (inputs
6953 `(("ghc-async" ,ghc-async)
6954 ("ghc-stm" ,ghc-stm)))
6955 (native-inputs
6956 `(("ghc-base64-bytestring" ,ghc-base64-bytestring)
6957 ("ghc-hspec" ,ghc-hspec)
6958 ("hspec-discover" ,hspec-discover)
6959 ("ghc-temporary" ,ghc-temporary)))
6960 (home-page "https://haskell-lang.org/library/typed-process")
6961 (synopsis "Run external processes with strong typing of streams")
6962 (description
6963 "This library provides the ability to launch and interact with external
6964 processes. It wraps around the @code{process} library, and intends to improve
6965 upon it.")
6966 (license license:expat)))
6967
6968 (define-public ghc-conduit-extra
6969 (package
6970 (name "ghc-conduit-extra")
6971 (version "1.3.1.1")
6972 (source
6973 (origin
6974 (method url-fetch)
6975 (uri (string-append "https://hackage.haskell.org/package/"
6976 "conduit-extra/conduit-extra-"
6977 version ".tar.gz"))
6978 (sha256
6979 (base32
6980 "0jaj350vv6mbb26gdwcqz4gwzfzrjydv5pis2da49wz1npbakcfw"))))
6981 (build-system haskell-build-system)
6982 (inputs
6983 `(("ghc-conduit" ,ghc-conduit)
6984 ("ghc-exceptions" ,ghc-exceptions)
6985 ("ghc-monad-control" ,ghc-monad-control)
6986 ("ghc-text" ,ghc-text)
6987 ("ghc-transformers-base" ,ghc-transformers-base)
6988 ("ghc-typed-process" ,ghc-typed-process)
6989 ("ghc-async" ,ghc-async)
6990 ("ghc-attoparsec" ,ghc-attoparsec)
6991 ("ghc-blaze-builder" ,ghc-blaze-builder)
6992 ("ghc-network" ,ghc-network)
6993 ("ghc-primitive" ,ghc-primitive)
6994 ("ghc-resourcet" ,ghc-resourcet)
6995 ("ghc-stm" ,ghc-stm)
6996 ("ghc-streaming-commons" ,ghc-streaming-commons)
6997 ("ghc-hspec" ,ghc-hspec)
6998 ("ghc-bytestring-builder" ,ghc-bytestring-builder)
6999 ("ghc-quickcheck" ,ghc-quickcheck)))
7000 (native-inputs
7001 `(("hspec-discover" ,hspec-discover)))
7002 (home-page "https://github.com/snoyberg/conduit")
7003 (synopsis "Conduit adapters for common libraries")
7004 (description
7005 "The @code{conduit} package itself maintains relative small dependencies.
7006 The purpose of this package is to collect commonly used utility functions
7007 wrapping other library dependencies, without depending on heavier-weight
7008 dependencies. The basic idea is that this package should only depend on
7009 @code{haskell-platform} packages and @code{conduit}.")
7010 (license license:expat)))
7011
7012 (define-public ghc-xml-types
7013 (package
7014 (name "ghc-xml-types")
7015 (version "0.3.6")
7016 (source
7017 (origin
7018 (method url-fetch)
7019 (uri (string-append "https://hackage.haskell.org/package/xml-types/"
7020 "xml-types-" version ".tar.gz"))
7021 (sha256
7022 (base32
7023 "1jgqxsa9p2q3h6nymbfmvhldqrqlwrhrzmwadlyc0li50x0d8dwr"))))
7024 (build-system haskell-build-system)
7025 (inputs `(("ghc-text" ,ghc-text)))
7026 (home-page "https://john-millikin.com/software/haskell-xml/")
7027 (synopsis "Basic types for representing XML")
7028 (description "This package provides basic types for representing XML
7029 documents.")
7030 (license license:expat)))
7031
7032 (define-public ghc-xml-conduit
7033 (package
7034 (name "ghc-xml-conduit")
7035 (version "1.8.0.1")
7036 (source
7037 (origin
7038 (method url-fetch)
7039 (uri (string-append "https://hackage.haskell.org/package/xml-conduit/"
7040 "xml-conduit-" version ".tar.gz"))
7041 (sha256
7042 (base32
7043 "177gmyigxql1pn3ncz0r8annwv5cbxnihbgrrg1dhm4gmc9jy2wq"))))
7044 (build-system haskell-build-system)
7045 (inputs
7046 `(("ghc-conduit" ,ghc-conduit)
7047 ("ghc-conduit-extra" ,ghc-conduit-extra)
7048 ("ghc-doctest" ,ghc-doctest)
7049 ("ghc-resourcet" ,ghc-resourcet)
7050 ("ghc-text" ,ghc-text)
7051 ("ghc-xml-types" ,ghc-xml-types)
7052 ("ghc-attoparsec" ,ghc-attoparsec)
7053 ("ghc-data-default-class" ,ghc-data-default-class)
7054 ("ghc-blaze-markup" ,ghc-blaze-markup)
7055 ("ghc-blaze-html" ,ghc-blaze-html)
7056 ("ghc-monad-control" ,ghc-monad-control)
7057 ("ghc-hspec" ,ghc-hspec)
7058 ("ghc-hunit" ,ghc-hunit)))
7059 (home-page "https://github.com/snoyberg/xml")
7060 (synopsis "Utilities for dealing with XML with the conduit package")
7061 (description
7062 "This package provides pure-Haskell utilities for dealing with XML with
7063 the @code{conduit} package.")
7064 (license license:expat)))
7065
7066 (define-public ghc-pandoc-citeproc
7067 (package
7068 (name "ghc-pandoc-citeproc")
7069 (version "0.14.3.1")
7070 (source
7071 (origin
7072 (method url-fetch)
7073 (uri (string-append "https://hackage.haskell.org/package/"
7074 "pandoc-citeproc/pandoc-citeproc-"
7075 version ".tar.gz"))
7076 (sha256
7077 (base32
7078 "0yj6rckwsc9vig40cm15ry0j3d01xpk04qma9n4byhal6v4b5h22"))))
7079 (build-system haskell-build-system)
7080 (arguments
7081 `(#:phases
7082 (modify-phases %standard-phases
7083 ;; Many YAML tests (44) are failing do to changes in ghc-yaml:
7084 ;; <https://github.com/jgm/pandoc-citeproc/issues/342>.
7085 (add-before 'configure 'patch-tests
7086 (lambda _
7087 (substitute* "tests/test-pandoc-citeproc.hs"
7088 (("let allTests = citeprocTests \\+\\+ biblio2yamlTests")
7089 "let allTests = citeprocTests"))))
7090 ;; Tests need to be run after installation.
7091 (delete 'check)
7092 (add-after 'install 'post-install-check
7093 (assoc-ref %standard-phases 'check)))))
7094 (inputs
7095 `(("ghc-pandoc-types" ,ghc-pandoc-types)
7096 ("ghc-pandoc" ,ghc-pandoc)
7097 ("ghc-tagsoup" ,ghc-tagsoup)
7098 ("ghc-aeson" ,ghc-aeson)
7099 ("ghc-text" ,ghc-text)
7100 ("ghc-vector" ,ghc-vector)
7101 ("ghc-xml-conduit" ,ghc-xml-conduit)
7102 ("ghc-unordered-containers" ,ghc-unordered-containers)
7103 ("ghc-data-default" ,ghc-data-default)
7104 ("ghc-setenv" ,ghc-setenv)
7105 ("ghc-split" ,ghc-split)
7106 ("ghc-yaml" ,ghc-yaml)
7107 ("ghc-hs-bibutils" ,ghc-hs-bibutils)
7108 ("ghc-rfc5051" ,ghc-rfc5051)
7109 ("ghc-syb" ,ghc-syb)
7110 ("ghc-parsec" ,ghc-parsec)
7111 ("ghc-old-locale" ,ghc-old-locale)
7112 ("ghc-aeson-pretty" ,ghc-aeson-pretty)
7113 ("ghc-attoparsec" ,ghc-attoparsec)
7114 ("ghc-temporary" ,ghc-temporary)))
7115 (home-page "https://github.com/jgm/pandoc-citeproc")
7116 (synopsis "Library for using pandoc with citeproc")
7117 (description
7118 "The @code{pandoc-citeproc} library exports functions for using the
7119 citeproc system with pandoc. It relies on @code{citeproc-hs}, a library for
7120 rendering bibliographic reference citations into a variety of styles using a
7121 macro language called @dfn{Citation Style Language} (CSL). This package also
7122 contains an executable @code{pandoc-citeproc}, which works as a pandoc filter,
7123 and also has a mode for converting bibliographic databases a YAML format
7124 suitable for inclusion in pandoc YAML metadata.")
7125 (license license:bsd-3)))
7126
7127 (define-public ghc-union-find
7128 (package
7129 (name "ghc-union-find")
7130 (version "0.2")
7131 (source (origin
7132 (method url-fetch)
7133 (uri (string-append
7134 "https://hackage.haskell.org/package/union-find/union-find-"
7135 version ".tar.gz"))
7136 (sha256
7137 (base32
7138 "1v7hj42j9w6jlzi56jg8rh4p58gfs1c5dx30wd1qqvn0p0mnihp6"))))
7139 (build-system haskell-build-system)
7140 (home-page "https://github.com/nominolo/union-find")
7141 (synopsis "Efficient union and equivalence testing of sets")
7142 (description
7143 "The Union/Find algorithm implements these operations in (effectively)
7144 constant-time:
7145 @enumerate
7146 @item Check whether two elements are in the same equivalence class.
7147 @item Create a union of two equivalence classes.
7148 @item Look up the descriptor of the equivalence class.
7149 @end enumerate\n")
7150 (license license:bsd-3)))
7151
7152 (define-public ghc-base16-bytestring
7153 (package
7154 (name "ghc-base16-bytestring")
7155 (version "0.1.1.6")
7156 (source
7157 (origin
7158 (method url-fetch)
7159 (uri (string-append
7160 "https://hackage.haskell.org/package/base16-bytestring/"
7161 "base16-bytestring-" version ".tar.gz"))
7162 (sha256
7163 (base32
7164 "0jf40m3yijqw6wd1rwwvviww46fasphaay9m9rgqyhf5aahnbzjs"))))
7165 (build-system haskell-build-system)
7166 (home-page "https://github.com/bos/base16-bytestring")
7167 (synopsis "Fast base16 (hex) encoding and decoding for ByteStrings")
7168 (description
7169 "This package provides a Haskell library for working with base16-encoded
7170 data quickly and efficiently, using the ByteString type.")
7171 (license license:bsd-3)))
7172
7173 (define-public ghc-data-ordlist
7174 (package
7175 (name "ghc-data-ordlist")
7176 (version "0.4.7.0")
7177 (source
7178 (origin
7179 (method url-fetch)
7180 (uri (string-append
7181 "https://hackage.haskell.org/package/data-ordlist/data-ordlist-"
7182 version ".tar.gz"))
7183 (sha256
7184 (base32
7185 "03a9ix1fcx08viwv2jg5ndw1qbkydyyrmjvqr9wasmcik9x1wv3g"))))
7186 (build-system haskell-build-system)
7187 (home-page "https://hackage.haskell.org/package/data-ordlist")
7188 (synopsis "Set and bag operations on ordered lists")
7189 (description
7190 "This module provides set and multiset operations on ordered lists.")
7191 (license license:bsd-3)))
7192
7193 (define-public ghc-regex-applicative
7194 (package
7195 (name "ghc-regex-applicative")
7196 (version "0.3.3")
7197 (source
7198 (origin
7199 (method url-fetch)
7200 (uri (string-append
7201 "https://hackage.haskell.org/package/regex-applicative/"
7202 "regex-applicative-" version ".tar.gz"))
7203 (sha256
7204 (base32
7205 "1riv7jqf26lbv4rm54sd6mrx8xdh4dvh4xbzymzdfdw13k6a4nb6"))))
7206 (build-system haskell-build-system)
7207 (inputs
7208 `(("ghc-smallcheck" ,ghc-smallcheck)
7209 ("ghc-tasty" ,ghc-tasty)
7210 ("ghc-tasty-smallcheck" ,ghc-tasty-smallcheck)
7211 ("ghc-tasty-hunit" ,ghc-tasty-hunit)))
7212 (home-page "https://github.com/feuerbach/regex-applicative")
7213 (synopsis "Regex-based parsing with applicative interface")
7214 (description
7215 "@code{regex-applicative} is a Haskell library for parsing using
7216 regular expressions. Parsers can be built using Applicative interface.")
7217 (license license:expat)))
7218
7219 (define-public ghc-regex-tdfa
7220 (package
7221 (name "ghc-regex-tdfa")
7222 (version "1.2.3.1")
7223 (source
7224 (origin
7225 (method url-fetch)
7226 (uri (string-append
7227 "https://hackage.haskell.org/package/regex-tdfa/regex-tdfa-"
7228 version ".tar.gz"))
7229 (sha256
7230 (base32
7231 "0l7ajnh4hpgggf2a1r9dg0hx2fy679vd2kada5y7r02hy3nfxala"))))
7232 (build-system haskell-build-system)
7233 (inputs
7234 `(("ghc-parsec" ,ghc-parsec)
7235 ("ghc-regex-base" ,ghc-regex-base)))
7236 (home-page "https://github.com/ChrisKuklewicz/regex-tdfa")
7237 (synopsis "POSIX extended regular expressions in Haskell.")
7238 (description
7239 "Regex-tdfa is a pure Haskell regular expression library implementing POSIX
7240 extended regular expressions. It is a \"tagged\" DFA regex engine. It is
7241 inspired by libtre.")
7242 (license license:bsd-3)))
7243
7244 (define-public ghc-regex-compat-tdfa
7245 (package
7246 (name "ghc-regex-compat-tdfa")
7247 (version "0.95.1.4")
7248 (source
7249 (origin
7250 (method url-fetch)
7251 (uri (string-append
7252 "https://hackage.haskell.org/package/regex-compat-tdfa/regex-compat-tdfa-"
7253 version ".tar.gz"))
7254 (sha256
7255 (base32
7256 "1p90fn90yhp7fvljjdqjp41cszidcfz4pw7fwvzyx4739b98x8sg"))))
7257 (build-system haskell-build-system)
7258 (inputs
7259 `(("ghc-regex-base" ,ghc-regex-base)
7260 ("ghc-regex-tdfa" ,ghc-regex-tdfa)))
7261 (home-page "https://hub.darcs.net/shelarcy/regex-compat-tdfa")
7262 (synopsis "Unicode Support version of Text.Regex, using regex-tdfa")
7263 (description
7264 "One module layer over @code{regex-tdfa} to replace @code{Text.Regex}.
7265 @code{regex-compat} can't use Unicode characters correctly because of using regex-posix.
7266 This is not good for Unicode users. This modified regex-compat uses regex-tdfa to solve
7267 this problem.")
7268 (license license:bsd-3)))
7269
7270 (define-public ghc-sandi
7271 (package
7272 (name "ghc-sandi")
7273 (version "0.4.2")
7274 (source
7275 (origin
7276 (method url-fetch)
7277 (uri (string-append
7278 "https://hackage.haskell.org/package/sandi/sandi-"
7279 version ".tar.gz"))
7280 (sha256
7281 (base32
7282 "0dvkpk91n9kz2ha04rvp231ra9sgd1ilyc1qkzf9l03iir7zrh9b"))))
7283 (build-system haskell-build-system)
7284 (inputs
7285 `(("ghc-stringsearch" ,ghc-stringsearch)
7286 ("ghc-conduit" ,ghc-conduit)
7287 ("ghc-exceptions" ,ghc-exceptions)
7288 ("ghc-hunit" ,ghc-hunit)
7289 ("ghc-tasty" ,ghc-tasty)
7290 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
7291 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
7292 ("ghc-tasty-th" ,ghc-tasty-th)))
7293 (home-page "https://hackage.haskell.org/package/sandi")
7294 (synopsis "Data encoding library")
7295 (description "Reasonably fast data encoding library.")
7296 (license license:bsd-3)))
7297
7298 (define-public ghc-bytestring-handle
7299 (package
7300 (name "ghc-bytestring-handle")
7301 (version "0.1.0.6")
7302 (source
7303 (origin
7304 (method url-fetch)
7305 (uri (string-append
7306 "https://hackage.haskell.org/package/bytestring-handle/bytestring-handle-"
7307 version ".tar.gz"))
7308 (sha256
7309 (base32
7310 "18f17aja1ivhr3zyg2cccn2m03hdn5jf5410dndkhf12gvgiqs7y"))))
7311 (build-system haskell-build-system)
7312 (arguments
7313 `(#:phases
7314 (modify-phases %standard-phases
7315 (add-before 'configure 'update-constraints
7316 (lambda _
7317 (substitute* "bytestring-handle.cabal"
7318 (("QuickCheck >= 2\\.1\\.2 && < 2\\.11")
7319 "QuickCheck >= 2.1.2 && < 2.12")
7320 (("base >= 4\\.2 && < 4\\.11")
7321 "base >= 4.2 && < 4.12")))))))
7322 (inputs
7323 `(("ghc-hunit" ,ghc-hunit)
7324 ("ghc-quickcheck" ,ghc-quickcheck)
7325 ("ghc-test-framework" ,ghc-test-framework)
7326 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
7327 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
7328 (home-page "https://hub.darcs.net/ganesh/bytestring-handle")
7329 (synopsis "ByteString-backed Handles")
7330 (description "ByteString-backed Handles") ; There is no description
7331 (license license:bsd-3)))
7332
7333 (define-public ghc-tar
7334 (package
7335 (name "ghc-tar")
7336 (version "0.5.1.0")
7337 (source
7338 (origin
7339 (method url-fetch)
7340 (uri (string-append
7341 "https://hackage.haskell.org/package/tar/tar-"
7342 version ".tar.gz"))
7343 (sha256
7344 (base32
7345 "0s2brvaxg5fki2jdkccmnpssiy6a3wjh24p6a3dkkdvjcixnk7f8"))))
7346 (build-system haskell-build-system)
7347 ;; FIXME: 2/24 tests fail.
7348 (arguments `(#:tests? #f))
7349 (inputs
7350 `(("ghc-bytestring-handle" ,ghc-bytestring-handle)
7351 ("ghc-quickcheck" ,ghc-quickcheck)
7352 ("ghc-tasty" ,ghc-tasty)
7353 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
7354 (home-page "https://hackage.haskell.org/package/tar")
7355 (synopsis "Reading, writing and manipulating \".tar\" archive files")
7356 (description
7357 "This library is for working with \\\"@.tar@\\\" archive files.
7358 It can read and write a range of common variations of the tar archive format
7359 including V7, POSIX USTAR and GNU formats. It provides support for packing and
7360 unpacking portable archives. This makes it suitable for distribution but not
7361 backup because details like file ownership and exact permissions are not
7362 preserved. It also provides features for random access to archive content using
7363 an index.")
7364 (license license:bsd-3)))
7365
7366 (define-public ghc-stmonadtrans
7367 (package
7368 (name "ghc-stmonadtrans")
7369 (version "0.4.3")
7370 (source
7371 (origin
7372 (method url-fetch)
7373 (uri (string-append "https://hackage.haskell.org/package/STMonadTrans"
7374 "/STMonadTrans-" version ".tar.gz"))
7375 (sha256
7376 (base32 "1nr26fnmi5fdjc6d00w13kjhmfyvb5b837d0006w4dj0yxndaksp"))))
7377 (build-system haskell-build-system)
7378 (home-page "https://hackage.haskell.org/package/STMonadTrans")
7379 (synopsis "Monad transformer version of the ST monad")
7380 (description
7381 "This package provides a monad transformer version of the @code{ST} monad
7382 for strict state threads.")
7383 (license license:bsd-3)))
7384
7385 (define-public ghc-findbin
7386 (package
7387 (name "ghc-findbin")
7388 (version "0.0.5")
7389 (source
7390 (origin
7391 (method url-fetch)
7392 (uri (string-append
7393 "https://hackage.haskell.org/package/FindBin/FindBin-"
7394 version ".tar.gz"))
7395 (sha256
7396 (base32
7397 "197xvn05yysmibm1p5wzxfa256lvpbknr5d1l2ws6g40w1kpk717"))))
7398 (build-system haskell-build-system)
7399 (home-page "https://github.com/audreyt/findbin")
7400 (synopsis "Get the absolute path of the running program")
7401 (description
7402 "This module locates the full directory of the running program, to allow
7403 the use of paths relative to it. FindBin supports invocation of Haskell
7404 programs via \"ghci\", via \"runhaskell/runghc\", as well as compiled as
7405 an executable.")
7406 (license license:bsd-3)))
7407
7408 (define-public ghc-patience
7409 (package
7410 (name "ghc-patience")
7411 (version "0.1.1")
7412 (source
7413 (origin
7414 (method url-fetch)
7415 (uri (string-append
7416 "https://hackage.haskell.org/package/patience/patience-"
7417 version ".tar.gz"))
7418 (sha256
7419 (base32
7420 "0qyv20gqy9pb1acy700ahv70lc6vprcwb26cc7fcpcs4scsc7irm"))))
7421 (build-system haskell-build-system)
7422 (home-page "https://hackage.haskell.org/package/patience")
7423 (synopsis "Patience diff and longest increasing subsequence")
7424 (description
7425 "This library implements the 'patience diff' algorithm, as well as the
7426 patience algorithm for the longest increasing subsequence problem.
7427 Patience diff computes the difference between two lists, for example the lines
7428 of two versions of a source file. It provides a good balance between
7429 performance, nice output for humans, and simplicity of implementation.")
7430 (license license:bsd-3)))
7431
7432 (define-public ghc-monads-tf
7433 (package
7434 (name "ghc-monads-tf")
7435 (version "0.1.0.3")
7436 (source
7437 (origin
7438 (method url-fetch)
7439 (uri (string-append
7440 "https://hackage.haskell.org/package/monads-tf/monads-tf-"
7441 version ".tar.gz"))
7442 (sha256
7443 (base32
7444 "1wdhskwa6dw8qljbvwpyxj8ca6y95q2np7z4y4q6bpf4anmd5794"))))
7445 (build-system haskell-build-system)
7446 (home-page "https://hackage.haskell.org/package/monads-tf")
7447 (synopsis "Monad classes, using type families")
7448 (description
7449 "Monad classes using type families, with instances for various monad transformers,
7450 inspired by the paper 'Functional Programming with Overloading and Higher-Order
7451 Polymorphism', by Mark P Jones. This package is almost a compatible replacement for
7452 the @code{mtl-tf} package.")
7453 (license license:bsd-3)))
7454
7455 (define-public ghc-colour
7456 (package
7457 (name "ghc-colour")
7458 (version "2.3.4")
7459 (source
7460 (origin
7461 (method url-fetch)
7462 (uri (string-append
7463 "https://hackage.haskell.org/package/colour/colour-"
7464 version ".tar.gz"))
7465 (sha256
7466 (base32
7467 "1sy51nz096sv91nxqk6yk7b92b5a40axv9183xakvki2nc09yhqg"))))
7468 (arguments
7469 ;; The tests for this package have the following dependency cycle:
7470 ;; ghc-test-framework -> ghc-ansi-terminal -> ghc-colour.
7471 `(#:tests? #f))
7472 (build-system haskell-build-system)
7473 (home-page "https://www.haskell.org/haskellwiki/Colour")
7474 (synopsis "Model for human colour perception")
7475 (description
7476 "This package provides a data type for colours and transparency.
7477 Colours can be blended and composed. Various colour spaces are
7478 supported. A module of colour names (\"Data.Colour.Names\") is provided.")
7479 (license license:expat)))
7480
7481 (define-public ghc-wl-pprint-text
7482 (package
7483 (name "ghc-wl-pprint-text")
7484 (version "1.2.0.0")
7485 (source
7486 (origin
7487 (method url-fetch)
7488 (uri (string-append
7489 "https://hackage.haskell.org/package/wl-pprint-text/wl-pprint-text-"
7490 version ".tar.gz"))
7491 (sha256
7492 (base32
7493 "0g3w92rad6x5appfb22rbzcas2ix2h0hy91sdxhq8a4a5cnlrpa0"))))
7494 (build-system haskell-build-system)
7495 (inputs
7496 `(("ghc-base-compat" ,ghc-base-compat)
7497 ("ghc-text" ,ghc-text)))
7498 (home-page "https://hackage.haskell.org/package/wl-pprint-text")
7499 (synopsis "Wadler/Leijen Pretty Printer for Text values")
7500 (description
7501 "A clone of wl-pprint for use with the text library.")
7502 (license license:bsd-3)))
7503
7504 (define-public ghc-fgl-arbitrary
7505 (package
7506 (name "ghc-fgl-arbitrary")
7507 (version "0.2.0.3")
7508 (source
7509 (origin
7510 (method url-fetch)
7511 (uri (string-append
7512 "https://hackage.haskell.org/package/fgl-arbitrary/fgl-arbitrary-"
7513 version ".tar.gz"))
7514 (sha256
7515 (base32
7516 "0ln1szgfy8fa78l3issq4fx3aqnnd54w3cb4wssrfi48vd5rkfjm"))))
7517 (build-system haskell-build-system)
7518 (arguments
7519 `(#:phases
7520 (modify-phases %standard-phases
7521 (add-before 'configure 'update-constraints
7522 (lambda _
7523 (substitute* "fgl-arbitrary.cabal"
7524 (("QuickCheck >= 2\\.3 && < 2\\.10")
7525 "QuickCheck >= 2.3 && < 2.12")
7526 (("hspec >= 2\\.1 && < 2\\.5")
7527 "hspec >= 2.1 && < 2.6")))))))
7528 (inputs
7529 `(("ghc-fgl" ,ghc-fgl)
7530 ("ghc-quickcheck" ,ghc-quickcheck)
7531 ("ghc-hspec" ,ghc-hspec)))
7532 (home-page "https://hackage.haskell.org/package/fgl-arbitrary")
7533 (synopsis "QuickCheck support for fgl")
7534 (description
7535 "Provides Arbitrary instances for fgl graphs to avoid adding a
7536 QuickCheck dependency for fgl whilst still making the instances
7537 available to others. Also available are non-fgl-specific functions
7538 for generating graph-like data structures.")
7539 (license license:bsd-3)))
7540
7541 (define-public ghc-graphviz
7542 (package
7543 (name "ghc-graphviz")
7544 (version "2999.20.0.2")
7545 (source (origin
7546 (method url-fetch)
7547 (uri (string-append "https://hackage.haskell.org/package/"
7548 "graphviz/graphviz-" version ".tar.gz"))
7549 (sha256
7550 (base32
7551 "0kj7ap0gnliviq2p8lscw1m06capnsa90vpvcys24nqy5nw2wrp7"))))
7552 (build-system haskell-build-system)
7553 (inputs
7554 `(("ghc-quickcheck" ,ghc-quickcheck)
7555 ("ghc-colour" ,ghc-colour)
7556 ("ghc-dlist" ,ghc-dlist)
7557 ("ghc-fgl" ,ghc-fgl)
7558 ("ghc-fgl-arbitrary" ,ghc-fgl-arbitrary)
7559 ("ghc-polyparse" ,ghc-polyparse)
7560 ("ghc-temporary" ,ghc-temporary)
7561 ("ghc-text" ,ghc-text)
7562 ("ghc-wl-pprint-text" ,ghc-wl-pprint-text)))
7563 (native-inputs
7564 `(("ghc-hspec" ,ghc-hspec)
7565 ("graphviz" ,graphviz)
7566 ("hspec-discover" ,hspec-discover)))
7567 (home-page "https://hackage.haskell.org/package/graphviz")
7568 (synopsis "Bindings to Graphviz for graph visualisation")
7569 (description
7570 "This library provides bindings for the Dot language used by
7571 the @uref{https://graphviz.org/, Graphviz} suite of programs for
7572 visualising graphs, as well as functions to call those programs.
7573 Main features of the graphviz library include:
7574
7575 @enumerate
7576 @item Almost complete coverage of all Graphviz attributes and syntax
7577 @item Support for specifying clusters
7578 @item The ability to use a custom node type
7579 @item Functions for running a Graphviz layout tool with all specified output types
7580 @item Generate and parse Dot code with two options: strict and liberal
7581 @item Functions to convert FGL graphs and other graph-like data structures
7582 @item Round-trip support for passing an FGL graph through Graphviz to augment node
7583 and edge labels with positional information, etc.
7584 @end enumerate\n")
7585 (license license:bsd-3)))
7586
7587 (define-public ghc-constraints
7588 (package
7589 (name "ghc-constraints")
7590 (version "0.10.1")
7591 (source
7592 (origin
7593 (method url-fetch)
7594 (uri (string-append
7595 "https://hackage.haskell.org/package/constraints/constraints-"
7596 version ".tar.gz"))
7597 (sha256
7598 (base32
7599 "1xy3vv78jxc17hm0z7qqspxjwv7l2jbcbj670yrl2f053qkfr02q"))))
7600 (build-system haskell-build-system)
7601 (inputs
7602 `(("ghc-hashable" ,ghc-hashable)
7603 ("ghc-semigroups" ,ghc-semigroups)
7604 ("ghc-transformers-compat" ,ghc-transformers-compat)))
7605 (native-inputs
7606 `(("ghc-hspec" ,ghc-hspec)
7607 ("hspec-discover" ,hspec-discover)))
7608 (home-page "https://github.com/ekmett/constraints/")
7609 (synopsis "Constraint manipulation")
7610 (description
7611 "GHC 7.4 gave us the ability to talk about @code{ConstraintKinds}.
7612 They stopped crashing the compiler in GHC 7.6. This package provides
7613 a vocabulary for working with them.")
7614 (license license:bsd-3)))
7615
7616 (define-public ghc-lifted-async
7617 (package
7618 (name "ghc-lifted-async")
7619 (version "0.10.0.2")
7620 (source
7621 (origin
7622 (method url-fetch)
7623 (uri (string-append
7624 "https://hackage.haskell.org/package/lifted-async/lifted-async-"
7625 version ".tar.gz"))
7626 (sha256
7627 (base32
7628 "1073r512c1x2m1v0jar9bwqg656slg7jd1jhsyj6m8awgx1l1mwf"))))
7629 (build-system haskell-build-system)
7630 (inputs
7631 `(("ghc-async" ,ghc-async)
7632 ("ghc-lifted-base" ,ghc-lifted-base)
7633 ("ghc-transformers-base" ,ghc-transformers-base)
7634 ("ghc-monad-control" ,ghc-monad-control)
7635 ("ghc-constraints" ,ghc-constraints)
7636 ("ghc-hunit" ,ghc-hunit)
7637 ("ghc-tasty" ,ghc-tasty)
7638 ("ghc-tasty-expected-failure" ,ghc-tasty-expected-failure)
7639 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
7640 ("ghc-tasty-th" ,ghc-tasty-th)))
7641 (home-page "https://github.com/maoe/lifted-async")
7642 (synopsis "Run lifted IO operations asynchronously and wait for their results")
7643 (description
7644 "This package provides IO operations from @code{async} package lifted to any
7645 instance of @code{MonadBase} or @code{MonadBaseControl}.")
7646 (license license:bsd-3)))
7647
7648 ;; Ghc-shelly depends on ghc-system-filepath and ghc-system-fileio, who in turn depend on
7649 ;; ghc-chell and ghc-chell-quickcheck for the test phase. Ghc-chell depends on ghc-options
7650 ;; which depends on ghc-chell and ghc-chell-quickcheck.
7651 ;; Therefore we bootstrap it with tests disabled.
7652 (define ghc-system-filepath-bootstrap
7653 (package
7654 (name "ghc-system-filepath-bootstrap")
7655 (version "0.4.14")
7656 (source
7657 (origin
7658 (method url-fetch)
7659 (uri (string-append
7660 "https://hackage.haskell.org/package/system-filepath/system-filepath-"
7661 version ".tar.gz"))
7662 (sha256
7663 (base32
7664 "14yras4pz2dh55xpwmazcgxijvi8913pjgzb9iw50mjq1lycwmhn"))))
7665 (build-system haskell-build-system)
7666 (arguments
7667 `(#:tests? #f))
7668 (inputs
7669 `(("ghc-text" ,ghc-text)
7670 ("ghc-quickcheck" ,ghc-quickcheck)))
7671 (home-page "https://github.com/fpco/haskell-filesystem")
7672 (synopsis "High-level, byte-based file and directory path manipulations")
7673 (description
7674 "Provides a FilePath datatype and utility functions for operating on it.
7675 Unlike the filepath package, this package does not simply reuse String,
7676 increasing type safety.")
7677 (license license:expat)))
7678
7679 ;; See ghc-system-filepath-bootstrap. In addition this package depends on
7680 ;; ghc-system-filepath.
7681 (define ghc-system-fileio-bootstrap
7682 (package
7683 (name "ghc-system-fileio-bootstrap")
7684 (version "0.3.16.3")
7685 (source
7686 (origin
7687 (method url-fetch)
7688 (uri (string-append
7689 "https://hackage.haskell.org/package/system-fileio/system-fileio-"
7690 version ".tar.gz"))
7691 (sha256
7692 (base32
7693 "1484hcl27s2qcby8ws5djj11q9bz68bspcifz9h5gii2ndy70x9i"))))
7694 (build-system haskell-build-system)
7695 (arguments
7696 `(#:tests? #f))
7697 (inputs
7698 `(("ghc-system-filepath-bootstrap" ,ghc-system-filepath-bootstrap)
7699 ("ghc-text" ,ghc-text)
7700 ("ghc-temporary" ,ghc-temporary)))
7701 (home-page "https://github.com/fpco/haskell-filesystem")
7702 (synopsis "Consistent file system interaction across GHC versions")
7703 (description
7704 "This is a small wrapper around the directory, unix, and Win32 packages,
7705 for use with system-filepath. It provides a consistent API to the various
7706 versions of these packages distributed with different versions of GHC.
7707 In particular, this library supports working with POSIX files that have paths
7708 which can't be decoded in the current locale encoding.")
7709 (license license:expat)))
7710
7711 (define-public ghc-shelly
7712 (package
7713 (name "ghc-shelly")
7714 (version "1.8.1")
7715 (source
7716 (origin
7717 (method url-fetch)
7718 (uri (string-append
7719 "https://hackage.haskell.org/package/shelly/shelly-"
7720 version ".tar.gz"))
7721 (sha256
7722 (base32
7723 "023fbvbqs5gdwm30j5517gbdcc7fvz0md70dgwgpypkskj3i926y"))))
7724 (build-system haskell-build-system)
7725 (inputs
7726 `(("ghc-unix-compat" ,ghc-unix-compat)
7727 ("ghc-system-filepath-bootstrap" ,ghc-system-filepath-bootstrap)
7728 ("ghc-system-fileio-bootstrap" ,ghc-system-fileio-bootstrap)
7729 ("ghc-monad-control" ,ghc-monad-control)
7730 ("ghc-lifted-base" ,ghc-lifted-base)
7731 ("ghc-lifted-async" ,ghc-lifted-async)
7732 ("ghc-exceptions" ,ghc-exceptions)
7733 ("ghc-enclosed-exceptions" ,ghc-enclosed-exceptions)
7734 ("ghc-text" ,ghc-text)
7735 ("ghc-async" ,ghc-async)
7736 ("ghc-transformers-base" ,ghc-transformers-base)
7737 ("ghc-hunit" ,ghc-hunit)
7738 ("ghc-hspec" ,ghc-hspec)
7739 ("ghc-hspec-contrib" ,ghc-hspec-contrib)))
7740 (home-page "https://github.com/yesodweb/Shelly.hs")
7741 (synopsis "Shell-like (systems) programming in Haskell")
7742 (description
7743 "Shelly provides convenient systems programming in Haskell, similar in
7744 spirit to POSIX shells. Shelly is originally forked from the Shellish package.")
7745 (license license:bsd-3)))
7746
7747 ;; See ghc-system-filepath-bootstrap, chell and chell-quickcheck are required for tests.
7748 (define ghc-options-bootstrap
7749 (package
7750 (name "ghc-options-bootstrap")
7751 (version "1.2.1.1")
7752 (source
7753 (origin
7754 (method url-fetch)
7755 (uri (string-append
7756 "https://hackage.haskell.org/package/options/options-"
7757 version ".tar.gz"))
7758 (sha256
7759 (base32
7760 "0qjs0v1ny52w51n5582d4z8wy9h6n0zw1xb5dh686ff5wadflgi8"))))
7761 (build-system haskell-build-system)
7762 (arguments
7763 `(#:tests? #f))
7764 (inputs
7765 `(("ghc-monads-tf" ,ghc-monads-tf)))
7766 (home-page "https://john-millikin.com/software/haskell-options/")
7767 (synopsis "Powerful and easy-to-use command-line option parser")
7768 (description
7769 "The @code{options} package lets library and application developers
7770 easily work with command-line options.")
7771 (license license:expat)))
7772
7773 (define-public ghc-chell
7774 (package
7775 (name "ghc-chell")
7776 (version "0.4.0.2")
7777 (source
7778 (origin
7779 (method url-fetch)
7780 (uri (string-append
7781 "https://hackage.haskell.org/package/chell/chell-"
7782 version ".tar.gz"))
7783 (sha256
7784 (base32
7785 "10ingy9qnbmc8cqh4i9pskcw43l0mzk8f3d76b3qz3fig5ary3j9"))))
7786 (build-system haskell-build-system)
7787 (inputs
7788 `(("ghc-options-bootstrap" ,ghc-options-bootstrap)
7789 ("ghc-patience" ,ghc-patience)
7790 ("ghc-random" ,ghc-random)
7791 ("ghc-text" ,ghc-text)
7792 ("ghc-ansi-terminal" ,ghc-ansi-terminal)))
7793 (home-page "https://john-millikin.com/software/chell/")
7794 (synopsis "Simple and intuitive library for automated testing")
7795 (description
7796 "Chell is a simple and intuitive library for automated testing.
7797 It natively supports assertion-based testing, and can use companion
7798 libraries such as @code{chell-quickcheck} to support more complex
7799 testing strategies.")
7800 (license license:expat)))
7801
7802 (define ghc-chell-quickcheck-bootstrap
7803 (package
7804 (name "ghc-chell-quickcheck-bootstrap")
7805 (version "0.2.5.1")
7806 (source
7807 (origin
7808 (method url-fetch)
7809 (uri (string-append
7810 "https://hackage.haskell.org/package/chell-quickcheck/"
7811 "chell-quickcheck-" version ".tar.gz"))
7812 (sha256
7813 (base32
7814 "1iicsys9igx7m7n4l2b8djardmjy2ah5ibzp7kzs758h460fq53a"))))
7815 (build-system haskell-build-system)
7816 (inputs
7817 `(("ghc-chell" ,ghc-chell)
7818 ("ghc-random" ,ghc-random)
7819 ("ghc-quickcheck" ,ghc-quickcheck)))
7820 (arguments
7821 `(#:tests? #f
7822 #:phases
7823 (modify-phases %standard-phases
7824 (add-before 'configure 'update-constraints
7825 (lambda _
7826 (substitute* "chell-quickcheck.cabal"
7827 (("QuickCheck >= 2\\.3 && < 2\\.11")
7828 "QuickCheck >= 2.3 && < 2.12")))))))
7829 (home-page "https://john-millikin.com/software/chell/")
7830 (synopsis "QuickCheck support for the Chell testing library")
7831 (description "More complex tests for @code{chell}.")
7832 (license license:expat)))
7833
7834 (define-public ghc-chell-quickcheck
7835 (package
7836 (name "ghc-chell-quickcheck")
7837 (version "0.2.5.1")
7838 (source
7839 (origin
7840 (method url-fetch)
7841 (uri (string-append
7842 "https://hackage.haskell.org/package/chell-quickcheck/"
7843 "chell-quickcheck-" version ".tar.gz"))
7844 (sha256
7845 (base32
7846 "1iicsys9igx7m7n4l2b8djardmjy2ah5ibzp7kzs758h460fq53a"))))
7847 (build-system haskell-build-system)
7848 (arguments
7849 `(#:phases
7850 (modify-phases %standard-phases
7851 (add-before 'configure 'update-constraints
7852 (lambda _
7853 (substitute* "chell-quickcheck.cabal"
7854 (("QuickCheck >= 2\\.3 && < 2\\.11")
7855 "QuickCheck >= 2.3 && < 2.12")))))))
7856 (inputs
7857 `(("ghc-chell" ,ghc-chell)
7858 ("ghc-chell-quickcheck-bootstrap" ,ghc-chell-quickcheck-bootstrap)
7859 ("ghc-random" ,ghc-random)
7860 ("ghc-quickcheck" ,ghc-quickcheck)))
7861 (home-page "https://john-millikin.com/software/chell/")
7862 (synopsis "QuickCheck support for the Chell testing library")
7863 (description "More complex tests for @code{chell}.")
7864 (license license:expat)))
7865
7866 (define-public ghc-options
7867 (package
7868 (name "ghc-options")
7869 (version "1.2.1.1")
7870 (source
7871 (origin
7872 (method url-fetch)
7873 (uri (string-append
7874 "https://hackage.haskell.org/package/options/options-"
7875 version ".tar.gz"))
7876 (sha256
7877 (base32
7878 "0qjs0v1ny52w51n5582d4z8wy9h6n0zw1xb5dh686ff5wadflgi8"))))
7879 (build-system haskell-build-system)
7880 (inputs
7881 `(("ghc-monads-tf" ,ghc-monads-tf)
7882 ("ghc-chell" ,ghc-chell)
7883 ("ghc-chell-quickcheck" ,ghc-chell-quickcheck)))
7884 (home-page "https://john-millikin.com/software/haskell-options/")
7885 (synopsis "Powerful and easy-to-use command-line option parser")
7886 (description
7887 "The @code{options} package lets library and application developers
7888 easily work with command-line options.")
7889 (license license:expat)))
7890
7891 (define-public ghc-system-filepath
7892 (package
7893 (name "ghc-system-filepath")
7894 (version "0.4.14")
7895 (source
7896 (origin
7897 (method url-fetch)
7898 (uri (string-append
7899 "https://hackage.haskell.org/package/system-filepath/system-filepath-"
7900 version ".tar.gz"))
7901 (sha256
7902 (base32
7903 "14yras4pz2dh55xpwmazcgxijvi8913pjgzb9iw50mjq1lycwmhn"))))
7904 (build-system haskell-build-system)
7905 ;; FIXME: One of the tests fails:
7906 ;; [ FAIL ] tests.validity.posix
7907 ;; note: seed=7310214548328823169
7908 ;; *** Failed! Falsifiable (after 24 tests):
7909 ;; 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"
7910 (arguments `(#:tests? #f))
7911 (inputs
7912 `(("ghc-text" ,ghc-text)
7913 ("ghc-chell" ,ghc-chell)
7914 ("ghc-chell-quickcheck" ,ghc-chell-quickcheck)
7915 ("ghc-quickcheck" ,ghc-quickcheck)))
7916 (home-page "https://github.com/fpco/haskell-filesystem")
7917 (synopsis "High-level, byte-based file and directory path manipulations")
7918 (description
7919 "Provides a FilePath datatype and utility functions for operating on it.
7920 Unlike the filepath package, this package does not simply reuse String,
7921 increasing type safety.")
7922 (license license:expat)))
7923
7924 (define-public ghc-system-fileio
7925 (package
7926 (name "ghc-system-fileio")
7927 (version "0.3.16.3")
7928 (source
7929 (origin
7930 (method url-fetch)
7931 (uri (string-append
7932 "https://hackage.haskell.org/package/system-fileio/system-fileio-"
7933 version ".tar.gz"))
7934 (sha256
7935 (base32
7936 "1484hcl27s2qcby8ws5djj11q9bz68bspcifz9h5gii2ndy70x9i"))))
7937 (build-system haskell-build-system)
7938 (inputs
7939 `(("ghc-system-filepath" ,ghc-system-filepath)
7940 ("ghc-text" ,ghc-text)
7941 ("ghc-chell" ,ghc-chell)
7942 ("ghc-temporary" ,ghc-temporary)))
7943 (home-page "https://github.com/fpco/haskell-filesystem")
7944 (synopsis "Consistent file system interaction across GHC versions")
7945 (description
7946 "This is a small wrapper around the directory, unix, and Win32 packages,
7947 for use with system-filepath. It provides a consistent API to the various
7948 versions of these packages distributed with different versions of GHC.
7949 In particular, this library supports working with POSIX files that have paths
7950 which can't be decoded in the current locale encoding.")
7951 (license license:expat)))
7952
7953 (define-public ghc-storable-complex
7954 (package
7955 (name "ghc-storable-complex")
7956 (version "0.2.2")
7957 (source
7958 (origin
7959 (method url-fetch)
7960 (uri (string-append
7961 "https://hackage.haskell.org/package/storable-complex/storable-complex-"
7962 version ".tar.gz"))
7963 (sha256
7964 (base32 "01kwwkpbfjrv26vj83cd92px5qbq1bpgxj0r45534aksqhany1xb"))))
7965 (build-system haskell-build-system)
7966 (home-page "https://github.com/cartazio/storable-complex")
7967 (synopsis "Haskell Storable instance for Complex")
7968 (description "This package provides a Haskell library including a
7969 Storable instance for Complex which is binary compatible with C99, C++
7970 and Fortran complex data types.")
7971 (license license:bsd-3)))
7972
7973 (define-public ghc-hmatrix
7974 (package
7975 (name "ghc-hmatrix")
7976 (version "0.19.0.0")
7977 (source
7978 (origin
7979 (method url-fetch)
7980 (uri (string-append
7981 "https://hackage.haskell.org/package/hmatrix/hmatrix-"
7982 version ".tar.gz"))
7983 (sha256
7984 (base32 "10jd69nby29dggghcyjk6ykyr5wrn97nrv1dkpyrp0y5xm12xssj"))))
7985 (build-system haskell-build-system)
7986 (inputs
7987 `(("ghc-random" ,ghc-random)
7988 ("ghc-split" ,ghc-split)
7989 ("ghc-storable-complex" ,ghc-storable-complex)
7990 ("ghc-semigroups" ,ghc-semigroups)
7991 ("ghc-vector" ,ghc-vector)
7992 ;;("openblas" ,openblas)
7993 ("lapack" ,lapack)))
7994 ;; Guix's OpenBLAS is built with the flag "NO_LAPACK=1" which
7995 ;; disables inclusion of the LAPACK functions.
7996 ;; (arguments `(#:configure-flags '("--flags=openblas")))
7997 (home-page "https://github.com/albertoruiz/hmatrix")
7998 (synopsis "Haskell numeric linear algebra library")
7999 (description "The HMatrix package provices a Haskell library for
8000 dealing with linear systems, matrix decompositions, and other
8001 numerical computations based on BLAS and LAPACK.")
8002 (license license:bsd-3)))
8003
8004 (define-public ghc-hmatrix-gsl
8005 (package
8006 (name "ghc-hmatrix-gsl")
8007 (version "0.19.0.1")
8008 (source
8009 (origin
8010 (method url-fetch)
8011 (uri (string-append
8012 "https://hackage.haskell.org/package/hmatrix-gsl/hmatrix-gsl-"
8013 version ".tar.gz"))
8014 (sha256
8015 (base32 "0v6dla426x4ywaq59jm89ql1i42n39iw6z0j378xwb676v9kfxhm"))))
8016 (build-system haskell-build-system)
8017 (inputs
8018 `(("ghc-hmatrix" ,ghc-hmatrix)
8019 ("ghc-vector" ,ghc-vector)
8020 ("ghc-random" ,ghc-random)
8021 ("gsl" ,gsl)))
8022 (native-inputs `(("pkg-config" ,pkg-config)))
8023 (home-page "https://github.com/albertoruiz/hmatrix")
8024 (synopsis "Haskell GSL binding")
8025 (description "This Haskell library provides a purely functional
8026 interface to selected numerical computations, internally implemented
8027 using GSL.")
8028 (license license:gpl3+)))
8029
8030 (define-public ghc-hmatrix-special
8031 (package
8032 (name "ghc-hmatrix-special")
8033 (version "0.19.0.0")
8034 (source
8035 (origin
8036 (method url-fetch)
8037 (uri
8038 (string-append
8039 "https://hackage.haskell.org/package/hmatrix-special/hmatrix-special-"
8040 version ".tar.gz"))
8041 (sha256
8042 (base32 "1mywr61kr852sbff26n9x95kswx9l4ycbv6s68qsbkh02xzqq7qz"))))
8043 (build-system haskell-build-system)
8044 (inputs
8045 `(("ghc-hmatrix" ,ghc-hmatrix)
8046 ("ghc-hmatrix-gsl" ,ghc-hmatrix-gsl)))
8047 (home-page "https://github.com/albertoruiz/hmatrix")
8048 (synopsis "Haskell interface to GSL special functions")
8049 (description "This library provides an interface to GSL special
8050 functions for Haskell.")
8051 (license license:gpl3+)))
8052
8053 (define-public ghc-hmatrix-gsl-stats
8054 (package
8055 (name "ghc-hmatrix-gsl-stats")
8056 (version "0.4.1.7")
8057 (source
8058 (origin
8059 (method url-fetch)
8060 (uri
8061 (string-append
8062 "https://hackage.haskell.org/package/hmatrix-gsl-stats/hmatrix-gsl-stats-"
8063 version ".tar.gz"))
8064 (sha256
8065 (base32 "1gslgk58lzin43cvbpivhw7nrn9qyaa6qwhy1z9ypvyal5p8n3sa"))))
8066 (build-system haskell-build-system)
8067 (inputs
8068 `(("ghc-vector" ,ghc-vector)
8069 ("ghc-storable-complex" ,ghc-storable-complex)
8070 ("ghc-hmatrix" ,ghc-hmatrix)
8071 ("gsl" ,gsl)))
8072 (native-inputs `(("pkg-config" ,pkg-config)))
8073 (home-page "http://code.haskell.org/hmatrix-gsl-stats")
8074 (synopsis "GSL Statistics interface for Haskell")
8075 (description "This Haskell library provides a purely functional
8076 interface for statistics based on hmatrix and GSL.")
8077 (license license:bsd-3)))
8078
8079 (define-public ghc-easyplot
8080 (package
8081 (name "ghc-easyplot")
8082 (version "1.0")
8083 (source
8084 (origin
8085 (method url-fetch)
8086 (uri (string-append
8087 "https://hackage.haskell.org/package/easyplot/easyplot-"
8088 version ".tar.gz"))
8089 (sha256
8090 (base32 "18kndgvdj2apjpfga6fp7m16y1gx8zrwp3c5vfj03sx4v6jvciqk"))))
8091 (build-system haskell-build-system)
8092 (propagated-inputs `(("gnuplot" ,gnuplot)))
8093 (arguments
8094 `(#:phases (modify-phases %standard-phases
8095 (add-after 'unpack 'fix-setup-suffix
8096 (lambda _ (rename-file "Setup.lhs" "Setup.hs") #t)))))
8097 (home-page "https://hub.darcs.net/scravy/easyplot")
8098 (synopsis "Haskell plotting library based on gnuplot")
8099 (description "This package provides a plotting library for
8100 Haskell, using gnuplot for rendering.")
8101 (license license:expat)))
8102
8103 (define-public ghc-hashtables
8104 (package
8105 (name "ghc-hashtables")
8106 (version "1.2.3.1")
8107 (source
8108 (origin
8109 (method url-fetch)
8110 (uri (string-append
8111 "https://hackage.haskell.org/package/hashtables/hashtables-"
8112 version ".tar.gz"))
8113 (sha256
8114 (base32 "1giw9caajr07slf09j7zry9b0kvm4yj9q78zy1mawzi6gk3wglcg"))))
8115 (build-system haskell-build-system)
8116 (inputs
8117 `(("ghc-hashable" ,ghc-hashable)
8118 ("ghc-primitive" ,ghc-primitive)
8119 ("ghc-vector" ,ghc-vector)))
8120 (home-page "https://github.com/gregorycollins/hashtables")
8121 (synopsis "Haskell Mutable hash tables in the ST monad")
8122 (description "This package provides a Haskell library including a
8123 couple of different implementations of mutable hash tables in the ST
8124 monad, as well as a typeclass abstracting their common operations, and
8125 a set of wrappers to use the hash tables in the IO monad.")
8126 (license license:bsd-3)))
8127
8128 (define-public ghc-data-accessor
8129 (package
8130 (name "ghc-data-accessor")
8131 (version "0.2.2.7")
8132 (source
8133 (origin
8134 (method url-fetch)
8135 (uri (string-append
8136 "mirror://hackage/package/data-accessor/data-accessor-"
8137 version ".tar.gz"))
8138 (sha256
8139 (base32 "1vf2g1gac3rm32g97rl0fll51m88q7ry4m6khnl5j47qsmx24r9l"))))
8140 (build-system haskell-build-system)
8141 (home-page "https://www.haskell.org/haskellwiki/Record_access")
8142 (synopsis
8143 "Haskell utilities for accessing and manipulating fields of records")
8144 (description "This package provides Haskell modules for accessing and
8145 manipulating fields of records.")
8146 (license license:bsd-3)))
8147
8148 (define-public ghc-data-accessor-transformers
8149 (package
8150 (name "ghc-data-accessor-transformers")
8151 (version "0.2.1.7")
8152 (source
8153 (origin
8154 (method url-fetch)
8155 (uri (string-append
8156 "mirror://hackage/package/data-accessor-transformers/"
8157 "data-accessor-transformers-" version ".tar.gz"))
8158 (sha256
8159 (base32 "0yp030vafbpddl27m606aibbbr5ar5j5bsv4bksscz3cq4yq5j10"))))
8160 (build-system haskell-build-system)
8161 (inputs `(("ghc-data-accessor" ,ghc-data-accessor)))
8162 (home-page "https://www.haskell.org/haskellwiki/Record_access")
8163 (synopsis "Use Accessor to access state in transformers State monad")
8164 (description "This package provides Haskell modules to allow use of
8165 Accessor to access state in transformers State monad.")
8166 (license license:bsd-3)))
8167
8168 (define-public ghc-utility-ht
8169 (package
8170 (name "ghc-utility-ht")
8171 (version "0.0.14")
8172 (home-page "https://hackage.haskell.org/package/utility-ht")
8173 (source
8174 (origin
8175 (method url-fetch)
8176 (uri (string-append home-page "/utility-ht-" version ".tar.gz"))
8177 (sha256
8178 (base32 "1a7bgk7wv7sqbxbiv7kankiimr3wij7zdm7s83zwsf886ghyxhk9"))))
8179 (build-system haskell-build-system)
8180 (inputs `(("ghc-quickcheck" ,ghc-quickcheck)))
8181 (synopsis "Haskell helper functions for Lists, Maybes, Tuples, Functions")
8182 (description "This package includes Hakell modules providing various
8183 helper functions for Lists, Maybes, Tuples, Functions.")
8184 (license license:bsd-3)))
8185
8186 (define-public ghc-gnuplot
8187 (package
8188 (name "ghc-gnuplot")
8189 (version "0.5.5.2")
8190 (source
8191 (origin
8192 (method url-fetch)
8193 (uri (string-append
8194 "mirror://hackage/package/gnuplot/gnuplot-"
8195 version ".tar.gz"))
8196 (sha256
8197 (base32 "1mlppnc13ygjzmf6ldydys4wvy35yb3xjwwfgf9rbi7nfcqjr6mn"))))
8198 (build-system haskell-build-system)
8199 (inputs
8200 `(("ghc-temporary" ,ghc-temporary)
8201 ("ghc-utility-ht" ,ghc-utility-ht)
8202 ("ghc-data-accessor-transformers" ,ghc-data-accessor-transformers)
8203 ("ghc-data-accessor" ,ghc-data-accessor)
8204 ("ghc-semigroups" ,ghc-semigroups)
8205 ("gnuplot" ,gnuplot)))
8206 (arguments
8207 `(#:phases
8208 (modify-phases %standard-phases
8209 (add-before 'configure 'fix-path-to-gnuplot
8210 (lambda* (#:key inputs #:allow-other-keys)
8211 (let ((gnuplot (assoc-ref inputs "gnuplot")))
8212 (substitute* "os/generic/Graphics/Gnuplot/Private/OS.hs"
8213 (("(gnuplotName = ).*$" all cmd)
8214 (string-append cmd "\"" gnuplot "/bin/gnuplot\"")))))))))
8215 (home-page "https://www.haskell.org/haskellwiki/Gnuplot")
8216 (synopsis "2D and 3D plots using gnuplot")
8217 (description "This package provides a Haskell module for creating 2D and
8218 3D plots using gnuplot.")
8219 (license license:bsd-3)))
8220
8221 (define-public ghc-hinotify
8222 (package
8223 (name "ghc-hinotify")
8224 (version "0.3.10")
8225 (source (origin
8226 (method url-fetch)
8227 (uri (string-append
8228 "https://hackage.haskell.org/package/hinotify/"
8229 "hinotify-" version ".tar.gz"))
8230 (sha256
8231 (base32
8232 "17ax3n68a5c2ddazp86aciliskrh6znd3bnry0wcllmb6dbpsaxg"))))
8233 (build-system haskell-build-system)
8234 (inputs
8235 `(("ghc-async" ,ghc-async)))
8236 (home-page "https://github.com/kolmodin/hinotify.git")
8237 (synopsis "Haskell binding to inotify")
8238 (description "This library provides a wrapper to the Linux kernel's inotify
8239 feature, allowing applications to subscribe to notifications when a file is
8240 accessed or modified.")
8241 (license license:bsd-3)))
8242
8243 (define-public ghc-fsnotify
8244 (package
8245 (name "ghc-fsnotify")
8246 (version "0.3.0.1")
8247 (source (origin
8248 (method url-fetch)
8249 (uri (string-append
8250 "https://hackage.haskell.org/package/fsnotify/"
8251 "fsnotify-" version ".tar.gz"))
8252 (sha256
8253 (base32
8254 "19bdbz9wb9jvln6yg6qm0hz0w84bypvkxf0wjhgrgd52f9gidlny"))))
8255 (build-system haskell-build-system)
8256 (inputs
8257 `(("ghc-text" ,ghc-text)
8258 ("ghc-async" ,ghc-async)
8259 ("ghc-unix-compat" ,ghc-unix-compat)
8260 ("ghc-hinotify" ,ghc-hinotify)
8261 ("ghc-tasty" ,ghc-tasty)
8262 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
8263 ("ghc-random" ,ghc-random)
8264 ("ghc-shelly" ,ghc-shelly)
8265 ("ghc-temporary" ,ghc-temporary)))
8266 (home-page "https://github.com/haskell-fswatch/hfsnotify")
8267 (synopsis "Cross platform library for file change notification.")
8268 (description "Cross platform library for file creation, modification, and
8269 deletion notification. This library builds upon existing libraries for platform
8270 specific Windows, Mac, and Linux file system event notification.")
8271 (license license:bsd-3)))
8272
8273 (define-public ghc-ieee754
8274 (package
8275 (name "ghc-ieee754")
8276 (version "0.8.0")
8277 (source (origin
8278 (method url-fetch)
8279 (uri (string-append
8280 "https://hackage.haskell.org/package/ieee754/"
8281 "ieee754-" version ".tar.gz"))
8282 (sha256
8283 (base32
8284 "1lcs521g9lzy9d7337vg4w7q7s8500rfqy7rcifcz6pm6yfgyb8f"))))
8285 (build-system haskell-build-system)
8286 (home-page "https://github.com/patperry/hs-ieee754")
8287 (synopsis "Utilities for dealing with IEEE floating point numbers")
8288 (description "Utilities for dealing with IEEE floating point numbers,
8289 ported from the Tango math library; approximate and exact equality comparisons
8290 for general types.")
8291 (license license:bsd-3)))
8292
8293 (define-public ghc-terminal-size
8294 (package
8295 (name "ghc-terminal-size")
8296 (version "0.3.2.1")
8297 (source (origin
8298 (method url-fetch)
8299 (uri (string-append
8300 "https://hackage.haskell.org/package/terminal-size/"
8301 "terminal-size-" version ".tar.gz"))
8302 (sha256
8303 (base32
8304 "0n4nvj3dbj9gxfnprgish45asn9z4dipv9j98s8i7g2n8yb3xhmm"))))
8305 (build-system haskell-build-system)
8306 (home-page "https://hackage.haskell.org/package/terminal-size")
8307 (synopsis "Get terminal window height and width")
8308 (description "Get terminal window height and width without ncurses
8309 dependency.")
8310 (license license:bsd-3)))
8311
8312 (define-public ghc-language-c
8313 (package
8314 (name "ghc-language-c")
8315 (version "0.8.1")
8316 (source
8317 (origin
8318 (method url-fetch)
8319 (uri (string-append "https://hackage.haskell.org/package/"
8320 "language-c/language-c-" version ".tar.gz"))
8321 (sha256
8322 (base32
8323 "0sdkjj0hq8p69fcdm6ljbjkjvrsrb8a6rl5dq6dj6byj32ajrm3d"))))
8324 (build-system haskell-build-system)
8325 (inputs `(("ghc-syb" ,ghc-syb)))
8326 (native-inputs
8327 `(("ghc-happy" ,ghc-happy)
8328 ("ghc-alex" ,ghc-alex)))
8329 (home-page "https://visq.github.io/language-c/")
8330 (synopsis "Analysis and generation of C code")
8331 (description
8332 "Language C is a Haskell library for the analysis and generation of C code.
8333 It features a complete, well-tested parser and pretty printer for all of C99
8334 and a large set of GNU extensions.")
8335 (license license:bsd-3)))
8336
8337 (define-public ghc-markdown-unlit
8338 (package
8339 (name "ghc-markdown-unlit")
8340 (version "0.5.0")
8341 (source (origin
8342 (method url-fetch)
8343 (uri (string-append
8344 "mirror://hackage/package/markdown-unlit/"
8345 "markdown-unlit-" version ".tar.gz"))
8346 (sha256
8347 (base32
8348 "1gy79vr85vcp13rdjh0hz7zv6daqqffww4j0cqn2lpjjh9xhsbg7"))))
8349 (build-system haskell-build-system)
8350 (inputs
8351 `(("ghc-base-compat" ,ghc-base-compat)
8352 ("ghc-hspec" ,ghc-hspec)
8353 ("ghc-quickcheck" ,ghc-quickcheck)
8354 ("ghc-silently" ,ghc-silently)
8355 ("ghc-stringbuilder" ,ghc-stringbuilder)
8356 ("ghc-temporary" ,ghc-temporary)
8357 ("hspec-discover" ,hspec-discover)))
8358 (home-page "https://github.com/sol/markdown-unlit#readme")
8359 (synopsis "Literate Haskell support for Markdown")
8360 (description "This package allows you to have a README.md that at the
8361 same time is a literate Haskell program.")
8362 (license license:expat)))
8363
8364 (define-public corrode
8365 (let ((commit "b6699fb2fa552a07c6091276285a44133e5c9789"))
8366 (package
8367 (name "corrode")
8368 (version (string-append "0.0.1-" (string-take commit 7)))
8369 (source
8370 (origin
8371 (method git-fetch)
8372 (uri (git-reference
8373 (url "https://github.com/jameysharp/corrode.git")
8374 (commit "b6699fb2fa552a07c6091276285a44133e5c9789")))
8375 (file-name
8376 (string-append name "-" version "-checkout"))
8377 (sha256
8378 (base32 "02v0yyj6sk4gpg2222wzsdqjxn8w66scbnf6b20x0kbmc69qcz4r"))))
8379 (build-system haskell-build-system)
8380 (inputs
8381 `(("ghc-language-c" ,ghc-language-c)
8382 ("ghc-markdown-unlit" ,ghc-markdown-unlit)))
8383 (home-page "https://github.com/jameysharp/corrode")
8384 (synopsis "Automatic semantics-preserving translation from C to Rust")
8385 (description
8386 "This program reads a C source file and prints an equivalent module in
8387 Rust syntax. It is intended to be useful for two different purposes:
8388
8389 @enumerate
8390 @item Partial automation for migrating legacy code that was implemented in C.
8391 @item A new, complementary approach to static analysis for C programs.
8392 @end enumerate\n")
8393 (license license:gpl2+))))
8394
8395 (define-public ghc-wave
8396 (package
8397 (name "ghc-wave")
8398 (version "0.1.5")
8399 (source (origin
8400 (method url-fetch)
8401 (uri (string-append
8402 "https://hackage.haskell.org/package/wave/wave-"
8403 version
8404 ".tar.gz"))
8405 (sha256
8406 (base32
8407 "03zycmwrchhqvi37fdvlzz2d1vl4hy0i8xyys1zznw38qfq0h2i5"))))
8408 (build-system haskell-build-system)
8409 (arguments
8410 '(#:phases
8411 (modify-phases %standard-phases
8412 (add-before 'configure 'update-constraints
8413 (lambda _
8414 (substitute* "wave.cabal"
8415 (("temporary.* < 1\\.3")
8416 "temporary >= 1.1 && < 1.4")))))))
8417 (inputs
8418 `(("ghc-cereal" ,ghc-cereal)
8419 ("ghc-data-default-class"
8420 ,ghc-data-default-class)
8421 ("ghc-quickcheck" ,ghc-quickcheck)
8422 ("ghc-temporary" ,ghc-temporary)))
8423 (native-inputs
8424 `(("hspec-discover" ,hspec-discover)
8425 ("ghc-hspec" ,ghc-hspec)))
8426 (home-page "https://github.com/mrkkrp/wave")
8427 (synopsis "Work with WAVE and RF64 files in Haskell")
8428 (description "This package allows you to work with WAVE and RF64
8429 files in Haskell.")
8430 (license license:bsd-3)))
8431
8432 (define-public ghc-hslogger
8433 (package
8434 (name "ghc-hslogger")
8435 (version "1.2.10")
8436 (source
8437 (origin
8438 (method url-fetch)
8439 (uri (string-append "https://hackage.haskell.org/package/"
8440 "hslogger-" version "/" "hslogger-"
8441 version ".tar.gz"))
8442 (sha256 (base32
8443 "0as5gvlh6pi2gflakp695qnlizyyp059dqrhvjl4gjxalja6xjnp"))))
8444 (build-system haskell-build-system)
8445 (inputs
8446 `(("ghc-network" ,ghc-network)
8447 ("ghc-old-locale" ,ghc-old-locale)))
8448 (native-inputs
8449 `(("ghc-hunit" ,ghc-hunit)))
8450 (home-page "https://software.complete.org/hslogger")
8451 (synopsis "Logging framework for Haskell, similar to Python's logging module")
8452 (description "Hslogger lets each log message have a priority and source be
8453 associated with it. The programmer can then define global handlers that route
8454 or filter messages based on the priority and source. It also has a syslog
8455 handler built in.")
8456 (license license:bsd-3)))
8457
8458 (define-public ghc-unexceptionalio
8459 (package
8460 (name "ghc-unexceptionalio")
8461 (version "0.4.0")
8462 (source
8463 (origin
8464 (method url-fetch)
8465 (uri (string-append "https://hackage.haskell.org/package/"
8466 "unexceptionalio-" version "/" "unexceptionalio-"
8467 version ".tar.gz"))
8468 (sha256 (base32 "09gynk472l7nn5l2w320n4dwigwp0wh0shfp6dyw6r5h2jdxz18p"))))
8469 (build-system haskell-build-system)
8470 (home-page "https://github.com/singpolyma/unexceptionalio")
8471 (synopsis "IO without any non-error, synchronous exceptions")
8472 (description "When you've caught all the exceptions that can be
8473 handled safely, this is what you're left with.")
8474 (license license:isc)))
8475
8476 (define-public ghc-json
8477 (package
8478 (name "ghc-json")
8479 (version "0.9.2")
8480 (source
8481 (origin
8482 (method url-fetch)
8483 (uri (string-append "https://hackage.haskell.org/package/json/"
8484 "json-" version ".tar.gz"))
8485 (sha256
8486 (base32
8487 "13kkfgx58z18jphbg56jn08jn72wi3kvfndlwwx87hqwg7x1dfz6"))))
8488 (build-system haskell-build-system)
8489 (inputs
8490 `(("ghc-syb" ,ghc-syb)
8491 ("ghc-text" ,ghc-text)
8492 ("ghc-parsec" ,ghc-parsec)))
8493 (home-page "https://hackage.haskell.org/package/json")
8494 (synopsis "Serializes Haskell data to and from JSON")
8495 (description "This package provides a parser and pretty printer for
8496 converting between Haskell values and JSON.
8497 JSON (JavaScript Object Notation) is a lightweight data-interchange format.")
8498 (license license:bsd-3)))
8499
8500 (define-public ghc-esqueleto
8501 (let ((version "2.5.3")
8502 (revision "1")
8503 (commit "b81e0d951e510ebffca03c5a58658ad884cc6fbd"))
8504 (package
8505 (name "ghc-esqueleto")
8506 (version (git-version version revision commit))
8507 (source
8508 (origin
8509 (method git-fetch)
8510 (uri (git-reference
8511 (url "https://github.com/bitemyapp/esqueleto")
8512 (commit commit)))
8513 (file-name (git-file-name name version))
8514 (sha256
8515 (base32
8516 "0lz1qxms7cfg5p3j37inlych0r2fwhm8xbarcys3df9m7jy9nixa"))))
8517 (build-system haskell-build-system)
8518 (arguments
8519 `(#:haddock? #f ; Haddock reports an internal error.
8520 #:phases
8521 (modify-phases %standard-phases
8522 ;; This package normally runs tests for the MySQL, PostgreSQL, and
8523 ;; SQLite backends. Since we only have Haskell packages for
8524 ;; SQLite, we remove the other two test suites. FIXME: Add the
8525 ;; other backends and run all three test suites.
8526 (add-before 'configure 'remove-non-sqlite-test-suites
8527 (lambda _
8528 (use-modules (ice-9 rdelim))
8529 (with-atomic-file-replacement "esqueleto.cabal"
8530 (lambda (in out)
8531 (let loop ((line (read-line in 'concat)) (deleting? #f))
8532 (cond
8533 ((eof-object? line) #t)
8534 ((string-every char-set:whitespace line)
8535 (unless deleting? (display line out))
8536 (loop (read-line in 'concat) #f))
8537 ((member line '("test-suite mysql\n"
8538 "test-suite postgresql\n"))
8539 (loop (read-line in 'concat) #t))
8540 (else
8541 (unless deleting? (display line out))
8542 (loop (read-line in 'concat) deleting?)))))))))))
8543 (inputs
8544 `(("ghc-blaze-html" ,ghc-blaze-html)
8545 ("ghc-conduit" ,ghc-conduit)
8546 ("ghc-monad-logger" ,ghc-monad-logger)
8547 ("ghc-persistent" ,ghc-persistent)
8548 ("ghc-resourcet" ,ghc-resourcet)
8549 ("ghc-tagged" ,ghc-tagged)
8550 ("ghc-text" ,ghc-text)
8551 ("ghc-unliftio" ,ghc-unliftio)
8552 ("ghc-unordered-containers" ,ghc-unordered-containers)))
8553 (native-inputs
8554 `(("ghc-hspec" ,ghc-hspec)
8555 ("ghc-persistent-sqlite" ,ghc-persistent-sqlite)
8556 ("ghc-persistent-template" ,ghc-persistent-template)))
8557 (home-page "https://github.com/bitemyapp/esqueleto")
8558 (synopsis "Type-safe embedded domain specific language for SQL queries")
8559 (description "This library provides a type-safe embedded domain specific
8560 language (EDSL) for SQL queries that works with SQL backends as provided by
8561 @code{ghc-persistent}. Its language closely resembles SQL, so you don't have
8562 to learn new concepts, just new syntax, and it's fairly easy to predict the
8563 generated SQL and optimize it for your backend.")
8564 (license license:bsd-3))))
8565
8566 (define-public shellcheck
8567 (package
8568 (name "shellcheck")
8569 (version "0.5.0")
8570 (source
8571 (origin
8572 (method url-fetch)
8573 (uri (string-append
8574 "https://hackage.haskell.org/package/ShellCheck/ShellCheck-"
8575 version ".tar.gz"))
8576 (sha256
8577 (base32
8578 "0z1hscbr11hwkq8k1v0vaa947hb9m6k4cm831jk1gpj8dxrk151b"))
8579 (file-name (string-append name "-" version ".tar.gz"))))
8580 (build-system haskell-build-system)
8581 (inputs
8582 `(("ghc-aeson" ,ghc-aeson)
8583 ("ghc-quickcheck" ,ghc-quickcheck)
8584 ("ghc-parsec" ,ghc-parsec)
8585 ("ghc-regex-tdfa" ,ghc-regex-tdfa)))
8586 (home-page "https://github.com/koalaman/shellcheck")
8587 (synopsis "Static analysis for shell scripts")
8588 (description "@code{shellcheck} provides static analysis for
8589 @command{bash} and @command{sh} shell scripts.
8590 It gives warnings and suggestions in order to:
8591
8592 @enumerate
8593 @item Point out and clarify typical beginner's syntax issues that cause
8594 a shell to give cryptic error messages.
8595 @item Point out and clarify typical intermediate level semantic problems
8596 that cause a shell to behave strangely and counter-intuitively.
8597 @item Point out subtle caveats, corner cases and pitfalls that may cause an
8598 advanced user's otherwise working script to fail under future circumstances.
8599 @end enumerate")
8600 (license license:gpl3+)))
8601
8602 (define-public ghc-simple-sendfile
8603 (package
8604 (name "ghc-simple-sendfile")
8605 (version "0.2.27")
8606 (source
8607 (origin
8608 (method url-fetch)
8609 (uri (string-append "https://hackage.haskell.org/package/"
8610 "simple-sendfile-" version "/"
8611 "simple-sendfile-" version ".tar.gz"))
8612 (sha256
8613 (base32
8614 "1bwwqzcm56m2w4ymsa054sxmpbj76h9pvb0jf8zxp8lr41cp51gn"))))
8615 (build-system haskell-build-system)
8616 (inputs
8617 `(("ghc-conduit" ,ghc-conduit)
8618 ("ghc-conduit-extra" ,ghc-conduit-extra)
8619 ("ghc-network" ,ghc-network)
8620 ("ghc-resourcet" ,ghc-resourcet)))
8621 (native-inputs
8622 `(("ghc-hspec" ,ghc-hspec)
8623 ("hspec-discover" ,hspec-discover)))
8624 (home-page "https://github.com/kazu-yamamoto/simple-sendfile")
8625 (synopsis "Cross platform library for the sendfile system call")
8626 (description "This library tries to call minimum system calls which
8627 are the bottleneck of web servers.")
8628 (license license:bsd-3)))
8629
8630 (define-public ghc-hex
8631 (package
8632 (name "ghc-hex")
8633 (version "0.1.2")
8634 (source
8635 (origin
8636 (method url-fetch)
8637 (uri (string-append "https://hackage.haskell.org/package/"
8638 "hex-" version "/"
8639 "hex-" version ".tar.gz"))
8640 (sha256
8641 (base32
8642 "1v31xiaivrrn0q2jz8919wvkjplv1kxna5ajhsj701fqxm1i5vhj"))))
8643 (build-system haskell-build-system)
8644 (home-page "https://hackage.haskell.org/package/hex")
8645 (synopsis "Convert strings into hexadecimal and back")
8646 (description "This package provides conversion functions between
8647 bytestrings and their hexademical representation.")
8648 (license license:bsd-3)))
8649
8650 (define-public ghc-psqueues
8651 (package
8652 (name "ghc-psqueues")
8653 (version "0.2.7.0")
8654 (source
8655 (origin
8656 (method url-fetch)
8657 (uri (string-append "https://hackage.haskell.org/package/"
8658 "psqueues-" version "/"
8659 "psqueues-" version ".tar.gz"))
8660 (sha256
8661 (base32
8662 "1sjgc9bxh63kkdp59nbirx3xazr02ia5yhp4f4a0jnq1hj465wsc"))))
8663 (build-system haskell-build-system)
8664 (inputs
8665 `(("ghc-hashable" ,ghc-hashable)))
8666 (native-inputs
8667 `(("ghc-hunit" ,ghc-hunit)
8668 ("ghc-quickcheck" ,ghc-quickcheck)
8669 ("ghc-tagged" ,ghc-tagged)
8670 ("ghc-test-framework" ,ghc-test-framework)
8671 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
8672 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
8673 (home-page "https://github.com/jaspervdj/psqueues")
8674 (synopsis "Pure priority search queues")
8675 (description "The psqueues package provides
8676 @uref{https://en.wikipedia.org/wiki/Priority_queue, Priority Search Queues} in
8677 three different flavors:
8678
8679 @itemize
8680 @item @code{OrdPSQ k p v}, which uses the @code{Ord k} instance to provide
8681 fast insertion, deletion and lookup. This implementation is based on Ralf
8682 Hinze's @uref{http://citeseer.ist.psu.edu/hinze01simple.html, A Simple
8683 Implementation Technique for Priority Search Queues}.
8684
8685 Hence, it is similar to the @uref{https://hackage.haskell.org/package/PSQueue,
8686 PSQueue} library, although it is considerably faster and provides a slightly
8687 different API.
8688
8689 @item @code{IntPSQ p v} is a far more efficient implementation. It fixes the
8690 key type to @code{Int} and uses a
8691 @code{https://en.wikipedia.org/wiki/Radix_tree, radix tree} (like @code{IntMap})
8692 with an additional min-heap property.
8693
8694 @item @code{HashPSQ k p v} is a fairly straightforward extension
8695 of @code{IntPSQ}: it simply uses the keys' hashes as indices in the
8696 @code{IntPSQ}. If there are any hash collisions, it uses an
8697 @code{OrdPSQ} to resolve those. The performance of this implementation
8698 is comparable to that of @code{IntPSQ}, but it is more widely
8699 applicable since the keys are not restricted to @code{Int},
8700 but rather to any @code{Hashable} datatype.
8701 @end itemize
8702
8703 Each of the three implementations provides the same API, so they can
8704 be used interchangeably.
8705
8706 Typical applications of Priority Search Queues include:
8707
8708 @itemize
8709 @item Caches, and more specifically LRU Caches;
8710 @item Schedulers;
8711 @item Pathfinding algorithms, such as Dijkstra's and A*.
8712 @end itemize")
8713 (license license:bsd-3)))
8714
8715 (define-public ghc-glob
8716 (package
8717 (name "ghc-glob")
8718 (version "0.9.2")
8719 (source
8720 (origin
8721 (method url-fetch)
8722 (uri (string-append "https://hackage.haskell.org/package/"
8723 "Glob-" version "/"
8724 "Glob-" version ".tar.gz"))
8725 (sha256
8726 (base32
8727 "1rbwcq9w9951qsnp13vqcm9r01yax2yh1wk8s4zxa3ckk9717iwg"))))
8728 (build-system haskell-build-system)
8729 (inputs
8730 `(("ghc-dlist" ,ghc-dlist)
8731 ("ghc-semigroups" ,ghc-semigroups)
8732 ("ghc-transformers-compat" ,ghc-transformers-compat)))
8733 (native-inputs
8734 `(("ghc-hunit" ,ghc-hunit)
8735 ("ghc-quickcheck" ,ghc-quickcheck)
8736 ("ghc-test-framework" ,ghc-test-framework)
8737 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
8738 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
8739 (home-page "http://iki.fi/matti.niemenmaa/glob/")
8740 (synopsis "Haskell library matching glob patterns against file paths")
8741 (description "This package provides a Haskell library for @dfn{globbing}:
8742 matching patterns against file paths.")
8743 (license license:bsd-3)))
8744
8745 (define-public ghc-errors
8746 (package
8747 (name "ghc-errors")
8748 (version "2.3.0")
8749 (source
8750 (origin
8751 (method url-fetch)
8752 (uri (string-append "https://hackage.haskell.org/package/"
8753 "errors-" version "/"
8754 "errors-" version ".tar.gz"))
8755 (sha256
8756 (base32
8757 "0x8znwn31qcx6kqx99wp7bc86kckfb39ncz3zxvj1s07kxlfawk7"))))
8758 (build-system haskell-build-system)
8759 (inputs
8760 `(("ghc-exceptions" ,ghc-exceptions)
8761 ("ghc-text" ,ghc-text)
8762 ("ghc-transformers-compat" ,ghc-transformers-compat)
8763 ("ghc-unexceptionalio" ,ghc-unexceptionalio)
8764 ("ghc-safe" ,ghc-safe)))
8765 (home-page "https://github.com/gabriel439/haskell-errors-library")
8766 (synopsis "Error handling library for Haskell")
8767 (description "This library encourages an error-handling style that
8768 directly uses the type system, rather than out-of-band exceptions.")
8769 (license license:bsd-3)))
8770
8771 (define-public ghc-vector-th-unbox
8772 (package
8773 (name "ghc-vector-th-unbox")
8774 (version "0.2.1.6")
8775 (source
8776 (origin
8777 (method url-fetch)
8778 (uri (string-append "https://hackage.haskell.org/package/"
8779 "vector-th-unbox-" version "/"
8780 "vector-th-unbox-" version ".tar.gz"))
8781 (sha256
8782 (base32
8783 "0d82x55f5vvr1jvaia382m23rs690lg55pvavv8f4ph0y6kd91xy"))))
8784 (build-system haskell-build-system)
8785 (inputs
8786 `(("ghc-vector" ,ghc-vector)
8787 ("ghc-data-default" ,ghc-data-default)))
8788 (home-page "https://github.com/liyang/vector-th-unbox")
8789 (synopsis "Deriver for Data.Vector.Unboxed using Template Haskell")
8790 (description "This Haskell library provides a Template Haskell
8791 deriver for unboxed vectors, given a pair of coercion functions to
8792 and from some existing type with an Unbox instance.")
8793 (license license:bsd-3)))
8794
8795 (define-public ghc-erf
8796 (package
8797 (name "ghc-erf")
8798 (version "2.0.0.0")
8799 (source
8800 (origin
8801 (method url-fetch)
8802 (uri (string-append "https://hackage.haskell.org/package/"
8803 "erf-" version "/"
8804 "erf-" version ".tar.gz"))
8805 (sha256
8806 (base32
8807 "0dxk2r32ajmmc05vaxcp0yw6vgv4lkbmh8jcshncn98xgsfbgw14"))))
8808 (build-system haskell-build-system)
8809 (home-page "https://hackage.haskell.org/package/erf")
8810 (synopsis "The error function, erf, and related functions for Haskell")
8811 (description "This Haskell library provides a type class for the
8812 error function, erf, and related functions. Instances for Float and
8813 Double.")
8814 (license license:bsd-3)))
8815
8816 (define-public ghc-math-functions
8817 (package
8818 (name "ghc-math-functions")
8819 (version "0.2.1.0")
8820 (source
8821 (origin
8822 (method url-fetch)
8823 (uri (string-append "https://hackage.haskell.org/package/"
8824 "math-functions-" version "/"
8825 "math-functions-" version ".tar.gz"))
8826 (sha256
8827 (base32
8828 "1sv5vabsx332v1lpb6v3jv4zrzvpx1n7yprzd8wlcda5vsc5a6zp"))))
8829 (build-system haskell-build-system)
8830 (arguments `(#:tests? #f)) ; FIXME: 1 test fails.
8831 (inputs
8832 `(("ghc-vector" ,ghc-vector)
8833 ("ghc-vector-th-unbox" ,ghc-vector-th-unbox)))
8834 (native-inputs
8835 `(("ghc-hunit" ,ghc-hunit)
8836 ("ghc-quickcheck" ,ghc-quickcheck)
8837 ("ghc-erf" ,ghc-erf)
8838 ("ghc-test-framework" ,ghc-test-framework)
8839 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
8840 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
8841 (home-page "https://github.com/bos/math-functions")
8842 (synopsis "Special functions and Chebyshev polynomials for Haskell")
8843 (description "This Haskell library provides implementations of
8844 special mathematical functions and Chebyshev polynomials. These
8845 functions are often useful in statistical and numerical computing.")
8846 (license license:bsd-3)))
8847
8848 (define-public ghc-mwc-random
8849 (package
8850 (name "ghc-mwc-random")
8851 (version "0.13.6.0")
8852 (source
8853 (origin
8854 (method url-fetch)
8855 (uri (string-append "https://hackage.haskell.org/package/"
8856 "mwc-random-" version "/"
8857 "mwc-random-" version ".tar.gz"))
8858 (sha256
8859 (base32
8860 "05j7yh0hh9nxic3dijmzv44kc6gzclvamdph7sq7w19wq57k6pq6"))))
8861 (build-system haskell-build-system)
8862 (inputs
8863 `(("ghc-primitive" ,ghc-primitive)
8864 ("ghc-vector" ,ghc-vector)
8865 ("ghc-math-functions" ,ghc-math-functions)))
8866 (arguments
8867 `(#:tests? #f)) ; FIXME: Test-Suite `spec` fails.
8868 (native-inputs
8869 `(("ghc-hunit" ,ghc-hunit)
8870 ("ghc-quickcheck" ,ghc-quickcheck)
8871 ("ghc-test-framework" ,ghc-test-framework)
8872 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
8873 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
8874 (home-page "https://github.com/bos/mwc-random")
8875 (synopsis "Random number generation library for Haskell")
8876 (description "This Haskell package contains code for generating
8877 high quality random numbers that follow either a uniform or normal
8878 distribution. The generated numbers are suitable for use in
8879 statistical applications.
8880
8881 The uniform PRNG uses Marsaglia's MWC256 (also known as MWC8222)
8882 multiply-with-carry generator, which has a period of 2^{8222} and
8883 fares well in tests of randomness. It is also extremely fast,
8884 between 2 and 3 times faster than the Mersenne Twister.")
8885 (license license:bsd-3)))
8886
8887 (define-public ghc-vector-algorithms
8888 (package
8889 (name "ghc-vector-algorithms")
8890 (version "0.7.0.4")
8891 (source
8892 (origin
8893 (method url-fetch)
8894 (uri (string-append "https://hackage.haskell.org/package/"
8895 "vector-algorithms-" version "/"
8896 "vector-algorithms-" version ".tar.gz"))
8897 (sha256
8898 (base32
8899 "0mfa8ig9v69l41p2vb5jl4qmaln5y1rlzarr2mlgm8g1nvq8qqdg"))))
8900 (build-system haskell-build-system)
8901 (inputs
8902 `(("ghc-vector" ,ghc-vector)))
8903 (native-inputs
8904 `(("ghc-quickcheck" ,ghc-quickcheck)))
8905 (home-page "https://github.com/bos/math-functions")
8906 (synopsis "Algorithms for vector arrays in Haskell")
8907 (description "This Haskell library algorithms for vector arrays.")
8908 (license license:bsd-3)))
8909
8910 (define-public ghc-language-haskell-extract
8911 (package
8912 (name "ghc-language-haskell-extract")
8913 (version "0.2.4")
8914 (source
8915 (origin
8916 (method url-fetch)
8917 (uri (string-append "https://hackage.haskell.org/package/"
8918 "language-haskell-extract-" version "/"
8919 "language-haskell-extract-" version ".tar.gz"))
8920 (sha256
8921 (base32
8922 "1nxcs7g8a1sp91bzpy4cj6s31k5pvc3gvig04cbrggv5cvjidnhl"))))
8923 (build-system haskell-build-system)
8924 (inputs
8925 `(("ghc-regex-posix" ,ghc-regex-posix)))
8926 (home-page "https://github.com/finnsson/template-helper")
8927 (synopsis "Haskell module to automatically extract functions from
8928 the local code")
8929 (description "This package contains helper functions on top of
8930 Template Haskell.
8931
8932 For example, @code{functionExtractor} extracts all functions after a
8933 regexp-pattern, which can be useful if you wish to extract all functions
8934 beginning with @code{test} (for a test framework) or all functions beginning
8935 with @code{wc} (for a web service).")
8936 (license license:bsd-3)))
8937
8938 (define-public ghc-abstract-par
8939 (package
8940 (name "ghc-abstract-par")
8941 (version "0.3.3")
8942 (source
8943 (origin
8944 (method url-fetch)
8945 (uri (string-append "https://hackage.haskell.org/package/"
8946 "abstract-par-" version "/"
8947 "abstract-par-" version ".tar.gz"))
8948 (sha256
8949 (base32
8950 "0q6qsniw4wks2pw6wzncb1p1j3k6al5njnvm2v5n494hplwqg2i4"))))
8951 (build-system haskell-build-system)
8952 (home-page "https://github.com/simonmar/monad-par")
8953 (synopsis "Abstract parallelization interface for Haskell")
8954 (description "This Haskell package is an abstract interface
8955 only. It provides a number of type clasess, but not an
8956 implementation. The type classes separate different levels
8957 of @code{Par} functionality. See the @code{Control.Monad.Par.Class}
8958 module for more details.")
8959 (license license:bsd-3)))
8960
8961 (define-public ghc-monad-par-extras
8962 (package
8963 (name "ghc-monad-par-extras")
8964 (version "0.3.3")
8965 (source
8966 (origin
8967 (method url-fetch)
8968 (uri (string-append "https://hackage.haskell.org/package/"
8969 "monad-par-extras-" version "/"
8970 "monad-par-extras-" version ".tar.gz"))
8971 (sha256
8972 (base32
8973 "0bl4bd6jzdc5zm20q1g67ppkfh6j6yn8fwj6msjayj621cck67p2"))))
8974 (build-system haskell-build-system)
8975 (inputs `(("ghc-abstract-par" ,ghc-abstract-par)
8976 ("ghc-cereal" ,ghc-cereal)
8977 ("ghc-random" ,ghc-random)))
8978 (home-page "https://github.com/simonmar/monad-par")
8979 (synopsis "Combinators and extra features for Par monads for Haskell")
8980 (description "This Haskell package provides additional data structures,
8981 and other added capabilities layered on top of the @code{Par} monad.")
8982 (license license:bsd-3)))
8983
8984 (define-public ghc-abstract-deque
8985 (package
8986 (name "ghc-abstract-deque")
8987 (version "0.3")
8988 (source
8989 (origin
8990 (method url-fetch)
8991 (uri (string-append "https://hackage.haskell.org/package/"
8992 "abstract-deque-" version "/"
8993 "abstract-deque-" version ".tar.gz"))
8994 (sha256
8995 (base32
8996 "18jwswjxwzc9bjiy4ds6hw2a74ki797jmfcifxd2ga4kh7ri1ah9"))))
8997 (build-system haskell-build-system)
8998 (inputs `(("ghc-random" ,ghc-random)))
8999 (home-page "https://github.com/rrnewton/haskell-lockfree/wiki")
9000 (synopsis "Abstract, parameterized interface to mutable Deques for Haskell")
9001 (description "This Haskell package provides an abstract interface to
9002 highly-parameterizable queues/deques.
9003
9004 Background: There exists a feature space for queues that extends between:
9005
9006 @itemize
9007 @item Simple, single-ended, non-concurrent, bounded queues
9008
9009 @item Double-ended, thread-safe, growable queues with important points
9010 in between (such as the queues used for work stealing).
9011 @end itemize
9012
9013 This package includes an interface for Deques that allows the programmer
9014 to use a single API for all of the above, while using the type system to
9015 select an efficient implementation given the requirements (using type families).
9016
9017 This package also includes a simple reference implementation based on
9018 @code{IORef} and @code{Data.Sequence}.")
9019 (license license:bsd-3)))
9020
9021 (define-public ghc-monad-par
9022 (package
9023 (name "ghc-monad-par")
9024 (version "0.3.4.8")
9025 (source
9026 (origin
9027 (method url-fetch)
9028 (uri (string-append "https://hackage.haskell.org/package/"
9029 "monad-par-" version "/"
9030 "monad-par-" version ".tar.gz"))
9031 (sha256
9032 (base32
9033 "0ldrzqy24fsszvn2a2nr77m2ih7xm0h9bgkjyv1l274aj18xyk7q"))))
9034 (build-system haskell-build-system)
9035 (inputs `(("ghc-abstract-par" ,ghc-abstract-par)
9036 ("ghc-abstract-deque" ,ghc-abstract-deque)
9037 ("ghc-monad-par-extras" ,ghc-monad-par-extras)
9038 ("ghc-mwc-random" ,ghc-mwc-random)
9039 ("ghc-parallel" ,ghc-parallel)))
9040 (native-inputs `(("ghc-quickcheck" ,ghc-quickcheck)
9041 ("ghc-hunit" ,ghc-hunit)
9042 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
9043 ("ghc-test-framework-quickcheck2"
9044 ,ghc-test-framework-quickcheck2)
9045 ("ghc-test-framework" ,ghc-test-framework)
9046 ("ghc-test-framework-th" ,ghc-test-framework-th)))
9047 (home-page "https://github.com/simonmar/monad-par")
9048 (synopsis "Haskell library for parallel programming based on a monad")
9049 (description "The @code{Par} monad offers an API for parallel
9050 programming. The library works for parallelising both pure and @code{IO}
9051 computations, although only the pure version is deterministic. The default
9052 implementation provides a work-stealing scheduler and supports forking tasks
9053 that are much lighter weight than IO-threads.")
9054 (license license:bsd-3)))
9055
9056 (define-public ghc-statistics
9057 (package
9058 (name "ghc-statistics")
9059 (version "0.14.0.2")
9060 (source
9061 (origin
9062 (method url-fetch)
9063 (uri (string-append "https://hackage.haskell.org/package/"
9064 "statistics-" version "/"
9065 "statistics-" version ".tar.gz"))
9066 (sha256
9067 (base32
9068 "0y27gafkib0x0fn39qfn2rkgsfrm09ng35sbb5dwr7rclhnxz59l"))))
9069 (build-system haskell-build-system)
9070 (arguments
9071 '(#:cabal-revision
9072 ("2" "1bx70yqkn62ii17fjv3pig4hklrzkqd09zj67zzjiyjzmn04fir3")
9073 ;; Two tests fail: "Discrete CDF is OK" and "Quantile is CDF inverse".
9074 #:tests? #f))
9075 (inputs
9076 `(("ghc-aeson" ,ghc-aeson)
9077 ("ghc-base-orphans" ,ghc-base-orphans)
9078 ("ghc-erf" ,ghc-erf)
9079 ("ghc-math-functions" ,ghc-math-functions)
9080 ("ghc-monad-par" ,ghc-monad-par)
9081 ("ghc-mwc-random" ,ghc-mwc-random)
9082 ("ghc-primitive" ,ghc-primitive)
9083 ("ghc-vector" ,ghc-vector)
9084 ("ghc-vector-algorithms" ,ghc-vector-algorithms)
9085 ("ghc-vector-th-unbox" ,ghc-vector-th-unbox)
9086 ("ghc-vector-binary-instances" ,ghc-vector-binary-instances)))
9087 (native-inputs
9088 `(("ghc-hunit" ,ghc-hunit)
9089 ("ghc-quickcheck" ,ghc-quickcheck)
9090 ("ghc-ieee754" ,ghc-ieee754)
9091 ("ghc-test-framework" ,ghc-test-framework)
9092 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
9093 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
9094 (home-page "https://github.com/bos/mwc-random")
9095 (synopsis "Haskell library of statistical types, data, and functions")
9096 (description "This library provides a number of common functions
9097 and types useful in statistics. We focus on high performance, numerical
9098 robustness, and use of good algorithms. Where possible, we provide references
9099 to the statistical literature.
9100
9101 The library's facilities can be divided into four broad categories:
9102
9103 @itemize
9104 @item Working with widely used discrete and continuous probability
9105 distributions. (There are dozens of exotic distributions in use; we focus
9106 on the most common.)
9107
9108 @item Computing with sample data: quantile estimation, kernel density
9109 estimation, histograms, bootstrap methods, significance testing,
9110 and regression and autocorrelation analysis.
9111
9112 @item Random variate generation under several different distributions.
9113
9114 @item Common statistical tests for significant differences between samples.
9115 @end itemize")
9116 (license license:bsd-2)))
9117
9118 (define-public ghc-chunked-data
9119 (package
9120 (name "ghc-chunked-data")
9121 (version "0.3.1")
9122 (source
9123 (origin
9124 (method url-fetch)
9125 (uri (string-append "https://hackage.haskell.org/package/"
9126 "chunked-data-" version "/"
9127 "chunked-data-" version ".tar.gz"))
9128 (sha256
9129 (base32
9130 "16m7y7fwrirbjbqqcsfmr4yxa9qvfax6r7pw0zl9ky71ms0wa47p"))))
9131 (build-system haskell-build-system)
9132 (inputs `(("ghc-vector" ,ghc-vector)
9133 ("ghc-semigroups" ,ghc-semigroups)
9134 ("ghc-text" ,ghc-text)))
9135 (home-page "https://github.com/snoyberg/mono-traversable")
9136 (synopsis "Typeclasses for dealing with various chunked data
9137 representations for Haskell")
9138 (description "This Haskell package was originally present in
9139 classy-prelude.")
9140 (license license:expat)))
9141
9142 (define-public ghc-base-prelude
9143 (package
9144 (name "ghc-base-prelude")
9145 (version "1.3")
9146 (source
9147 (origin
9148 (method url-fetch)
9149 (uri (string-append "https://hackage.haskell.org/package/"
9150 "base-prelude-" version "/"
9151 "base-prelude-" version ".tar.gz"))
9152 (sha256
9153 (base32
9154 "1zk728sd09hh2r4xwz4lazsrrgg5cshydn64932sm0vckplndk73"))))
9155 (build-system haskell-build-system)
9156 (home-page "https://github.com/nikita-volkov/base-prelude")
9157 (synopsis "The most complete prelude formed solely from the Haskell's base
9158 package")
9159 (description "This Haskell package aims to reexport all the non-conflicting
9160 and most general definitions from the \"base\" package.
9161
9162 This includes APIs for applicatives, arrows, monoids, foldables, traversables,
9163 exceptions, generics, ST, MVars and STM.
9164
9165 This package will never have any dependencies other than \"base\".
9166
9167 Versioning policy:
9168
9169 The versioning policy of this package deviates from PVP in the sense
9170 that its exports in part are transitively determined by the version of \"base\".
9171 Therefore it's recommended for the users of @code{ghc-base-prelude} to specify
9172 the bounds of \"base\" as well.")
9173 (license license:expat)))
9174
9175 (define-public ghc-tuple-th
9176 (package
9177 (name "ghc-tuple-th")
9178 (version "0.2.5")
9179 (source
9180 (origin
9181 (method url-fetch)
9182 (uri (string-append "https://hackage.haskell.org/package/"
9183 "tuple-th-" version "/"
9184 "tuple-th-" version ".tar.gz"))
9185 (sha256
9186 (base32
9187 "1mrl4vvxmby7sf1paf7hklzidnr6wq55822i73smqyz0xpf3gsjn"))))
9188 (build-system haskell-build-system)
9189 (home-page "https://github.com/DanielSchuessler/tuple-th")
9190 (synopsis "Generate utility functions for tuples of statically known size
9191 for Haskell")
9192 (description "This Haskell package contains Template Haskell functions for
9193 generating functions similar to those in @code{Data.List} for tuples of
9194 statically known size.")
9195 (license license:bsd-3)))
9196
9197 (define-public ghc-contravariant-extras
9198 (package
9199 (name "ghc-contravariant-extras")
9200 (version "0.3.4")
9201 (source
9202 (origin
9203 (method url-fetch)
9204 (uri (string-append "https://hackage.haskell.org/package/"
9205 "contravariant-extras-" version "/"
9206 "contravariant-extras-" version ".tar.gz"))
9207 (sha256
9208 (base32
9209 "0gg62ccl94kvh7mnvdq09pifqxjx2kgs189si90nmg44bafj7a9n"))))
9210 (build-system haskell-build-system)
9211 (inputs
9212 `(("ghc-tuple-th" ,ghc-tuple-th)
9213 ("ghc-contravariant" ,ghc-contravariant)
9214 ("ghc-base-prelude" ,ghc-base-prelude)
9215 ("ghc-semigroups" ,ghc-semigroups)))
9216 (home-page "https://github.com/nikita-volkov/contravariant-extras")
9217 (synopsis "Extras for the @code{ghc-contravariant} Haskell package")
9218 (description "This Haskell package provides extras for the
9219 @code{ghc-contravariant} package.")
9220 (license license:expat)))
9221
9222 (define-public ghc-monadrandom
9223 (package
9224 (name "ghc-monadrandom")
9225 (version "0.5.1.1")
9226 (source
9227 (origin
9228 (method url-fetch)
9229 (uri (string-append "https://hackage.haskell.org/package/"
9230 "MonadRandom-" version "/"
9231 "MonadRandom-" version ".tar.gz"))
9232 (sha256
9233 (base32
9234 "0w44jl1n3kqvqaflh82l1wj3xxbhzfs3kf4m8rk7w6fgg8llmnmb"))))
9235 (build-system haskell-build-system)
9236 (inputs `(("ghc-transformers-compat" ,ghc-transformers-compat)
9237 ("ghc-primitive" ,ghc-primitive)
9238 ("ghc-fail" ,ghc-fail)
9239 ("ghc-random" ,ghc-random)))
9240 (home-page "https://github.com/byorgey/MonadRandom")
9241 (synopsis "Random-number generation monad for Haskell")
9242 (description "This Haskell package provides support for computations
9243 which consume random values.")
9244 (license license:bsd-3)))
9245
9246 (define-public ghc-either
9247 (package
9248 (name "ghc-either")
9249 (version "5.0.1")
9250 (source
9251 (origin
9252 (method url-fetch)
9253 (uri (string-append "https://hackage.haskell.org/package/"
9254 "either-" version "/"
9255 "either-" version ".tar.gz"))
9256 (sha256
9257 (base32
9258 "064hjfld7dkzs78sy30k5qkiva3hx24rax6dvzz5ygr2c0zypdkc"))))
9259 (build-system haskell-build-system)
9260 (inputs `(("ghc-bifunctors" ,ghc-bifunctors)
9261 ("ghc-exceptions" ,ghc-exceptions)
9262 ("ghc-free" ,ghc-free)
9263 ("ghc-monad-control" ,ghc-monad-control)
9264 ("ghc-manodrandom" ,ghc-monadrandom)
9265 ("ghc-mmorph" ,ghc-mmorph)
9266 ("ghc-profunctors" ,ghc-profunctors)
9267 ("ghc-semigroups" ,ghc-semigroups)
9268 ("ghc-semigroupoids" ,ghc-semigroupoids)
9269 ("ghc-transformers-base" ,ghc-transformers-base)))
9270 (native-inputs
9271 `(("ghc-quickcheck" ,ghc-quickcheck)
9272 ("ghc-test-framework" ,ghc-test-framework)
9273 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
9274 (home-page "https://github.com/ekmett/either")
9275 (synopsis "Provides an either monad transformer for Haskell")
9276 (description "This Haskell package provides an either monad transformer.")
9277 (license license:bsd-3)))
9278
9279 (define-public ghc-pretty-hex
9280 (package
9281 (name "ghc-pretty-hex")
9282 (version "1.0")
9283 (source
9284 (origin
9285 (method url-fetch)
9286 (uri (string-append "https://hackage.haskell.org/package/"
9287 "pretty-hex-" version "/"
9288 "pretty-hex-" version ".tar.gz"))
9289 (sha256
9290 (base32
9291 "0ylwkvvjvmpprha9nx83xb8gkhyanhk5fffc0r7lb96n4ch5z6pz"))))
9292 (build-system haskell-build-system)
9293 (home-page "https://github.com/GaloisInc/hexdump")
9294 (synopsis "Haskell library for hex dumps of ByteStrings")
9295 (description "This Haskell library generates pretty hex dumps of
9296 ByteStrings in the style of other common *nix hex dump tools.")
9297 (license license:bsd-3)))
9298
9299 (define-public ghc-network-info
9300 (package
9301 (name "ghc-network-info")
9302 (version "0.2.0.10")
9303 (source
9304 (origin
9305 (method url-fetch)
9306 (uri (string-append "https://hackage.haskell.org/package/"
9307 "network-info-" version "/"
9308 "network-info-" version ".tar.gz"))
9309 (sha256
9310 (base32
9311 "0anmgzcpnz7nw3n6vq0r25m1s9l2svpwi83wza0lzkrlbnbzd02n"))))
9312 (build-system haskell-build-system)
9313 (home-page "https://github.com/jystic/network-info")
9314 (synopsis "Access the local computer's basic network configuration")
9315 (description "This Haskell library provides simple read-only access to the
9316 local computer's networking configuration. It is currently capable of
9317 getting a list of all the network interfaces and their respective
9318 IPv4, IPv6 and MAC addresses.")
9319 (license license:bsd-3)))
9320
9321 (define-public ghc-uuid-types
9322 (package
9323 (name "ghc-uuid-types")
9324 (version "1.0.3")
9325 (source
9326 (origin
9327 (method url-fetch)
9328 (uri (string-append "https://hackage.haskell.org/package/"
9329 "uuid-types-" version "/"
9330 "uuid-types-" version ".tar.gz"))
9331 (sha256
9332 (base32
9333 "1zdka5jnm1h6k36w3nr647yf3b5lqb336g3fkprhd6san9x52xlj"))))
9334 (build-system haskell-build-system)
9335 (arguments
9336 `(#:phases
9337 (modify-phases %standard-phases
9338 (add-before 'configure 'strip-test-framework-constraints
9339 (lambda _
9340 (substitute* "uuid-types.cabal"
9341 (("HUnit >=1\\.2 && < 1\\.4") "HUnit")
9342 (("QuickCheck >=2\\.4 && < 2\\.9") "QuickCheck")
9343 (("tasty >= 0\\.10 && < 0\\.12") "tasty")
9344 (("tasty-hunit == 0\\.9\\.\\*") "tasty-hunit")
9345 (("tasty-quickcheck == 0\\.8\\.\\*") "tasty-quickcheck")))))))
9346 (inputs `(("ghc-hashable" ,ghc-hashable)
9347 ("ghc-random" ,ghc-random)
9348 ("ghc-text" ,ghc-text)))
9349 (native-inputs `(("ghc-hunit" ,ghc-hunit)
9350 ("ghc-quickcheck" ,ghc-quickcheck)
9351 ("ghc-tasty" ,ghc-tasty)
9352 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
9353 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
9354 (home-page "https://github.com/hvr/uuid")
9355 (synopsis "Haskell type definitions for UUIDs")
9356 (description "This Haskell library contains type definitions for
9357 @dfn{Universally Unique Identifiers} or
9358 @uref{https://en.wikipedia.org/wiki/UUID, UUIDs}, and basic conversion
9359 functions.")
9360 (license license:bsd-3)))
9361
9362 (define-public ghc-uuid
9363 (package
9364 (name "ghc-uuid")
9365 (version "1.3.13")
9366 (source
9367 (origin
9368 (method url-fetch)
9369 (uri (string-append "https://hackage.haskell.org/package/"
9370 "uuid-" version "/"
9371 "uuid-" version ".tar.gz"))
9372 (sha256
9373 (base32
9374 "09xhk42yhxvqmka0iqrv3338asncz8cap3j0ic0ps896f2581b6z"))))
9375 (build-system haskell-build-system)
9376 (arguments
9377 `(#:cabal-revision
9378 ("2" "0m185q62jkfb5jsv358nxbnrkv8y8hd0qqvgvh22wvc5g9ipz0r9")
9379 #:phases
9380 (modify-phases %standard-phases
9381 (add-before 'configure 'strip-test-framework-constraints
9382 (lambda _
9383 (substitute* "uuid.cabal"
9384 (("HUnit >= 1\\.2 && < 1\\.4") "HUnit")
9385 (("QuickCheck >= 2\\.4 && < 2\\.10") "QuickCheck")
9386 (("tasty >= 0\\.10 && < 0\\.12") "tasty")
9387 (("tasty-hunit == 0\\.9\\.\\*") "tasty-hunit")
9388 (("tasty-quickcheck == 0\\.8\\.\\*") "tasty-quickcheck")))))))
9389 (inputs `(("ghc-cryptohash-sha1" ,ghc-cryptohash-sha1)
9390 ("ghc-cryptohash-md5" ,ghc-cryptohash-md5)
9391 ("ghc-entropy" ,ghc-entropy)
9392 ("ghc-network-info" ,ghc-network-info)
9393 ("ghc-random" ,ghc-random)
9394 ("ghc-text" ,ghc-text)
9395 ("ghc-uuid-types" ,ghc-uuid-types)))
9396 (native-inputs `(("ghc-hunit" ,ghc-hunit)
9397 ("ghc-quickcheck" ,ghc-quickcheck)
9398 ("ghc-tasty" ,ghc-tasty)
9399 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
9400 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
9401 (home-page "https://github.com/hvr/uuid")
9402 (synopsis "Haskell library to create, compare, parse, and print UUIDs")
9403 (description "This Haskell library provides utilities creating, comparing,
9404 parsing and printing @dfn{Universally Unique Identifiers} or UUIDs.")
9405 (license license:bsd-3)))
9406
9407 (define-public ghc-rebase
9408 (package
9409 (name "ghc-rebase")
9410 (version "1.2.4")
9411 (source
9412 (origin
9413 (method url-fetch)
9414 (uri (string-append "https://hackage.haskell.org/package/"
9415 "rebase-" version "/"
9416 "rebase-" version ".tar.gz"))
9417 (sha256
9418 (base32
9419 "1gah2qwfpzwamnikbc5h4nv6dgvv9h16di9ka7946za3nibyasya"))))
9420 (build-system haskell-build-system)
9421 (inputs `(("ghc-stm" ,ghc-stm)
9422 ("ghc-hashable" ,ghc-hashable)
9423 ("ghc-vector" ,ghc-vector)
9424 ("ghc-unordered-containers" ,ghc-unordered-containers)
9425 ("ghc-text" ,ghc-text)
9426 ("ghc-scientific" ,ghc-scientific)
9427 ("ghc-uuid" ,ghc-uuid)
9428 ("ghc-dlist" ,ghc-dlist)
9429 ("ghc-void" ,ghc-void)
9430 ("ghc-bifunctors" ,ghc-bifunctors)
9431 ("ghc-profunctors" ,ghc-profunctors)
9432 ("ghc-contravariant" ,ghc-contravariant)
9433 ("ghc-contravariant-extras" ,ghc-contravariant-extras)
9434 ("ghc-semigroups" ,ghc-semigroups)
9435 ("ghc-either" ,ghc-either)
9436 ("ghc-fail" ,ghc-fail)
9437 ("ghc-base-prelude" ,ghc-base-prelude)))
9438 (home-page "https://github.com/nikita-volkov/rebase")
9439 (synopsis "Progressive alternative to the base package
9440 for Haskell")
9441 (description "This Haskell package is intended for those who are
9442 tired of keeping long lists of dependencies to the same essential libraries
9443 in each package as well as the endless imports of the same APIs all over again.
9444
9445 It also supports the modern tendencies in the language.
9446
9447 To solve those problems this package does the following:
9448
9449 @itemize
9450 @item Reexport the original APIs under the @code{Rebase} namespace.
9451
9452 @item Export all the possible non-conflicting symbols from the
9453 @code{Rebase.Prelude} module.
9454
9455 @item Give priority to the modern practices in the conflicting cases.
9456 @end itemize
9457
9458 The policy behind the package is only to reexport the non-ambiguous and
9459 non-controversial APIs, which the community has obviously settled on.
9460 The package is intended to rapidly evolve with the contribution from
9461 the community, with the missing features being added with pull-requests.")
9462 (license license:expat)))
9463
9464 (define-public ghc-rerebase
9465 (package
9466 (name "ghc-rerebase")
9467 (version "1.2.2")
9468 (source
9469 (origin
9470 (method url-fetch)
9471 (uri (string-append
9472 "https://hackage.haskell.org/package/rerebase/rerebase-"
9473 version ".tar.gz"))
9474 (sha256
9475 (base32
9476 "11v6rmz7ql2rdx6mhb3lsal952lwihclfhh0m7fcnii5br0906ks"))))
9477 (build-system haskell-build-system)
9478 (inputs
9479 `(("ghc-rebase" ,ghc-rebase)))
9480 (home-page "https://github.com/nikita-volkov/rerebase")
9481 (synopsis "Reexports from ``base'' with many other standard libraries")
9482 (description "A rich drop-in replacement for @code{base}. For details and
9483 documentation please visit @uref{https://github.com/nikita-volkov/rerebase,
9484 the project's home page}.")
9485 (license license:expat)))
9486
9487 (define-public ghc-vector-builder
9488 (package
9489 (name "ghc-vector-builder")
9490 (version "0.3.6")
9491 (source
9492 (origin
9493 (method url-fetch)
9494 (uri (string-append "https://hackage.haskell.org/package/"
9495 "vector-builder-" version "/"
9496 "vector-builder-" version ".tar.gz"))
9497 (sha256
9498 (base32
9499 "06d2pa1fb3ydrl7l6rjazqyxv5i73v65x2f5fp0ypjxfbm6jsmn8"))))
9500 (build-system haskell-build-system)
9501 (inputs `(("ghc-vector" ,ghc-vector)
9502 ("ghc-semigroups" ,ghc-semigroups)
9503 ("ghc-base-prelude" ,ghc-base-prelude)))
9504 (native-inputs `(("ghc-attoparsec" ,ghc-attoparsec)
9505 ("ghc-tasty" ,ghc-tasty)
9506 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
9507 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
9508 ("ghc-hunit" ,ghc-hunit)
9509 ("ghc-quickcheck-instances" ,ghc-quickcheck-instances)
9510 ("ghc-rerebase" ,ghc-rerebase)))
9511 (home-page "https://github.com/nikita-volkov/vector-builder")
9512 (synopsis "Vector builder for Haskell")
9513 (description "This Haskell package provides an API for constructing vectors.
9514 It provides the composable @code{Builder} abstraction, which has instances of the
9515 @code{Monoid} and @code{Semigroup} classes.
9516
9517 You would first use the @code{Builder} abstraction to specify the structure of
9518 the vector; then you can execute the builder to actually produce the
9519 vector. ")
9520 (license license:expat)))
9521
9522 (define-public ghc-foldl
9523 (package
9524 (name "ghc-foldl")
9525 (version "1.4.3")
9526 (source
9527 (origin
9528 (method url-fetch)
9529 (uri (string-append "https://hackage.haskell.org/package/"
9530 "foldl-" version "/"
9531 "foldl-" version ".tar.gz"))
9532 (sha256
9533 (base32
9534 "13n0ca3hw5jzqf6rxsdbhbwkn61a9zlm13f0f205s60j3sc72jzk"))))
9535 (build-system haskell-build-system)
9536 (inputs `(("ghc-mwc-randam" ,ghc-mwc-random)
9537 ("ghc-primitive" ,ghc-primitive)
9538 ("ghc-text" ,ghc-text)
9539 ("ghc-vector" ,ghc-vector)
9540 ("ghc-unordered-containers" ,ghc-unordered-containers)
9541 ("ghc-hashable" ,ghc-hashable)
9542 ("ghc-contravariant" ,ghc-contravariant)
9543 ("ghc-semigroups" ,ghc-semigroups)
9544 ("ghc-profunctors" ,ghc-profunctors)
9545 ("ghc-semigroupoids" ,ghc-semigroupoids)
9546 ("ghc-comonad" ,ghc-comonad)
9547 ("ghc-vector-builder" ,ghc-vector-builder)))
9548 (home-page "https://github.com/Gabriel439/Haskell-Foldl-Library")
9549 (synopsis "Composable, streaming, and efficient left folds for Haskell")
9550 (description "This Haskell library provides strict left folds that stream
9551 in constant memory, and you can combine folds using @code{Applicative} style
9552 to derive new folds. Derived folds still traverse the container just once
9553 and are often as efficient as hand-written folds.")
9554 (license license:bsd-3)))
9555
9556 (define-public ghc-mono-traversable
9557 (package
9558 (name "ghc-mono-traversable")
9559 (version "1.0.9.0")
9560 (source
9561 (origin
9562 (method url-fetch)
9563 (uri (string-append "https://hackage.haskell.org/package/"
9564 "mono-traversable-" version "/"
9565 "mono-traversable-" version ".tar.gz"))
9566 (sha256
9567 (base32
9568 "0180ks0dyvpk1r20w5jw2w2n79mjnk69n9vhspaxzlyxqgim5psa"))))
9569 (build-system haskell-build-system)
9570 (inputs `(("ghc-unordered-containers" ,ghc-unordered-containers)
9571 ("ghc-hashable" ,ghc-hashable)
9572 ("ghc-text" ,ghc-text)
9573 ("ghc-vector" ,ghc-vector)
9574 ("ghc-vector-algorithms" ,ghc-vector-algorithms)
9575 ("ghc-split" ,ghc-split)))
9576 (native-inputs `(("ghc-hspec" ,ghc-hspec)
9577 ("ghc-hunit" ,ghc-hunit)
9578 ("ghc-quickcheck" ,ghc-quickcheck)
9579 ("ghc-semigroups" ,ghc-semigroups)
9580 ("ghc-foldl" ,ghc-foldl)))
9581 (home-page "https://github.com/snoyberg/mono-traversable")
9582 (synopsis "Haskell classes for mapping, folding, and traversing monomorphic
9583 containers")
9584 (description "This Haskell package provides Monomorphic variants of the
9585 Functor, Foldable, and Traversable typeclasses. If you understand Haskell's
9586 basic typeclasses, you understand mono-traversable. In addition to what
9587 you are used to, it adds on an IsSequence typeclass and has code for marking
9588 data structures as non-empty.")
9589 (license license:expat)))
9590
9591 (define-public ghc-conduit-combinators
9592 (package
9593 (name "ghc-conduit-combinators")
9594 (version "1.3.0")
9595 (source
9596 (origin
9597 (method url-fetch)
9598 (uri (string-append "https://hackage.haskell.org/package/"
9599 "conduit-combinators-" version "/"
9600 "conduit-combinators-" version ".tar.gz"))
9601 (sha256
9602 (base32
9603 "1lz70vwp4y4lpsivxl0cshq7aq3968rh48r6rjvpyaj2l0bdj5wp"))))
9604 (build-system haskell-build-system)
9605 (inputs `(("ghc-conduit" ,ghc-conduit)
9606 ("ghc-conduit-extra" ,ghc-conduit-extra)
9607 ("ghc-transformers-base" ,ghc-transformers-base)
9608 ("ghc-primitive" ,ghc-primitive)
9609 ("ghc-vector" ,ghc-vector)
9610 ("ghc-text" ,ghc-text)
9611 ("ghc-void" ,ghc-void)
9612 ("ghc-mwc-random" ,ghc-mwc-random)
9613 ("ghc-unix-compat" ,ghc-unix-compat)
9614 ("ghc-base16-bytestring" ,ghc-base16-bytestring)
9615 ("ghc-base64-bytestring" ,ghc-base64-bytestring)
9616 ("ghc-resourcet" ,ghc-resourcet)
9617 ("ghc-monad-control" ,ghc-monad-control)
9618 ("ghc-chunked-data" ,ghc-chunked-data)
9619 ("ghc-mono-traversable" ,ghc-mono-traversable)))
9620 (native-inputs `(("ghc-hspec" ,ghc-hspec)
9621 ("ghc-silently" ,ghc-silently)
9622 ("ghc-safe" ,ghc-safe)
9623 ("ghc-quickcheck" ,ghc-quickcheck)))
9624 (home-page "https://github.com/snoyberg/mono-traversable")
9625 (synopsis "Commonly used conduit functions, for both chunked and
9626 unchunked data")
9627 (description "This Haskell package provides a replacement for Data.Conduit.List,
9628 as well as a convenient Conduit module.")
9629 (license license:expat)))
9630
9631 (define-public ghc-aws
9632 (package
9633 (name "ghc-aws")
9634 (version "0.20")
9635 (source
9636 (origin
9637 (method url-fetch)
9638 (uri (string-append "https://hackage.haskell.org/package/"
9639 "aws-" version "/aws-" version ".tar.gz"))
9640 (sha256 (base32
9641 "0pwpabmypi1w8rni9qfwabgn95jks4h8dyw6889mn8xzsrhdhyf0"))))
9642 (build-system haskell-build-system)
9643 (arguments `(#:tests? #f)) ; Tests require AWS credentials.
9644 (inputs
9645 `(("ghc-aeson" ,ghc-aeson)
9646 ("ghc-attoparsec" ,ghc-attoparsec)
9647 ("ghc-base16-bytestring" ,ghc-base16-bytestring)
9648 ("ghc-base64-bytestring" ,ghc-base64-bytestring)
9649 ("ghc-blaze-builder" ,ghc-blaze-builder)
9650 ("ghc-byteable" ,ghc-byteable)
9651 ("ghc-case-insensitive" ,ghc-case-insensitive)
9652 ("ghc-cereal" ,ghc-cereal)
9653 ("ghc-conduit" ,ghc-conduit)
9654 ("ghc-conduit-extra" ,ghc-conduit-extra)
9655 ("ghc-cryptonite" ,ghc-cryptonite)
9656 ("ghc-data-default" ,ghc-data-default)
9657 ("ghc-http-conduit" ,ghc-http-conduit)
9658 ("ghc-http-types" ,ghc-http-types)
9659 ("ghc-lifted-base" ,ghc-lifted-base)
9660 ("ghc-monad-control" ,ghc-monad-control)
9661 ("ghc-network" ,ghc-network)
9662 ("ghc-old-locale" ,ghc-old-locale)
9663 ("ghc-safe" ,ghc-safe)
9664 ("ghc-scientific" ,ghc-scientific)
9665 ("ghc-tagged" ,ghc-tagged)
9666 ("ghc-text" ,ghc-text)
9667 ("ghc-unordered-containers" ,ghc-unordered-containers)
9668 ("ghc-utf8-string" ,ghc-utf8-string)
9669 ("ghc-vector" ,ghc-vector)
9670 ("ghc-xml-conduit" ,ghc-xml-conduit)))
9671 (native-inputs
9672 `(("ghc-quickcheck" ,ghc-quickcheck)
9673 ("ghc-errors" ,ghc-errors)
9674 ("ghc-http-client" ,ghc-http-client)
9675 ("ghc-http-client-tls" ,ghc-http-client-tls)
9676 ("ghc-quickcheck-instances" ,ghc-quickcheck-instances)
9677 ("ghc-tasty" ,ghc-tasty)
9678 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
9679 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
9680 ("ghc-conduit-combinators" ,ghc-conduit-combinators)))
9681 (home-page "https://github.com/aristidb/aws")
9682 (synopsis "Amazon Web Services for Haskell")
9683 (description "This package attempts to provide support for using
9684 Amazon Web Services like S3 (storage), SQS (queuing) and others to
9685 Haskell programmers. The ultimate goal is to support all Amazon
9686 Web Services.")
9687 (license license:bsd-3)))
9688
9689 (define-public ghc-basement
9690 (package
9691 (name "ghc-basement")
9692 (version "0.0.8")
9693 (source
9694 (origin
9695 (method url-fetch)
9696 (uri (string-append "https://hackage.haskell.org/package/"
9697 "basement/basement-" version ".tar.gz"))
9698 (sha256
9699 (base32
9700 "194jw567di4q2758943q9rrwkbf9gl261my7qc21i9xhyabipx67"))))
9701 (build-system haskell-build-system)
9702 (home-page "https://github.com/haskell-foundation/foundation")
9703 (synopsis "Basic primitives for Foundation starter pack")
9704 (description
9705 "This package contains basic primitives for the Foundation set of
9706 packages.")
9707 (license license:bsd-3)))
9708
9709 (define-public ghc-foundation
9710 (package
9711 (name "ghc-foundation")
9712 (version "0.0.21")
9713 (source
9714 (origin
9715 (method url-fetch)
9716 (uri (string-append "https://hackage.haskell.org/package/"
9717 "foundation/foundation-" version ".tar.gz"))
9718 (sha256
9719 (base32
9720 "1q43y8wfj0wf9gdq2kzphwjwq6m5pvryy1lqgk954aq5z3ks1lsf"))))
9721 (build-system haskell-build-system)
9722 (inputs `(("ghc-basement" ,ghc-basement)))
9723 (home-page "https://github.com/haskell-foundation/foundation")
9724 (synopsis "Alternative prelude with batteries and no dependencies")
9725 (description
9726 "This package provides a custom prelude with no dependencies apart from
9727 the base package.
9728
9729 Foundation has the following goals:
9730
9731 @enumerate
9732 @item provide a base like sets of modules that provide a consistent set of
9733 features and bugfixes across multiple versions of GHC (unlike base).
9734 @item provide a better and more efficient prelude than base's prelude.
9735 @item be self-sufficient: no external dependencies apart from base;
9736 @item provide better data-types: packed unicode string by default, arrays;
9737 @item Numerical classes that better represent mathematical things (no more
9738 all-in-one @code{Num});
9739 @item I/O system with less lazy IO.
9740 @end enumerate\n")
9741 (license license:bsd-3)))
9742
9743 (define-public ghc-stm-chans
9744 (package
9745 (name "ghc-stm-chans")
9746 (version "3.0.0.4")
9747 (source
9748 (origin
9749 (method url-fetch)
9750 (uri (string-append "https://hackage.haskell.org/package/"
9751 "stm-chans-" version "/"
9752 "stm-chans-" version ".tar.gz"))
9753 (sha256
9754 (base32
9755 "0f27sp09yha43xk9q55sc185jyjs5h7gq2dhsyx6bm9kz9dzqi13"))))
9756 (build-system haskell-build-system)
9757 (inputs `(("ghc-stm" ,ghc-stm)))
9758 (home-page "https://hackage.haskell.org/package/stm-chans")
9759 (synopsis "Additional types of channels for ghc-stm")
9760 (description "This Haskell package offers a collection of channel types,
9761 similar to @code{Control.Concurrent.STM.@{TChan,TQueue@}} but with additional
9762 features.")
9763 (license license:bsd-3)))
9764
9765 (define-public ghc-monad-loops
9766 (package
9767 (name "ghc-monad-loops")
9768 (version "0.4.3")
9769 (source
9770 (origin
9771 (method url-fetch)
9772 (uri (string-append "https://hackage.haskell.org/package/"
9773 "monad-loops-" version "/"
9774 "monad-loops-" version ".tar.gz"))
9775 (sha256
9776 (base32
9777 "062c2sn3hc8h50p1mhqkpyv6x8dydz2zh3ridvlfjq9nqimszaky"))))
9778 (build-system haskell-build-system)
9779 (native-inputs `(("ghc-tasty" ,ghc-tasty)
9780 ("ghc-tasty-hunit" ,ghc-tasty-hunit)))
9781 (home-page "https://github.com/mokus0/monad-loops")
9782 (synopsis "Monadic loops for Haskell")
9783 (description "This Haskell package provides some useful control
9784 operators for looping.")
9785 (license license:public-domain)))
9786
9787 (define-public ghc-monad-logger
9788 (package
9789 (name "ghc-monad-logger")
9790 (version "0.3.29")
9791 (source
9792 (origin
9793 (method url-fetch)
9794 (uri (string-append "https://hackage.haskell.org/package/"
9795 "monad-logger-" version "/"
9796 "monad-logger-" version ".tar.gz"))
9797 (sha256
9798 (base32
9799 "1z516s4pa9n94zf0l45mylssg07xr1d1m6zrz900p0iv3vfd07mv"))))
9800 (build-system haskell-build-system)
9801 (inputs `(("ghc-transformers-compat" ,ghc-transformers-compat)
9802 ("ghc-text" ,ghc-text)
9803 ("ghc-stm" ,ghc-stm)
9804 ("ghc-stm-chans" ,ghc-stm-chans)
9805 ("ghc-lifted-base" ,ghc-lifted-base)
9806 ("ghc-resourcet" ,ghc-resourcet)
9807 ("ghc-conduit" ,ghc-conduit)
9808 ("ghc-conduit-extra" ,ghc-conduit-extra)
9809 ("ghc-fast-logger" ,ghc-fast-logger)
9810 ("ghc-transformers-base" ,ghc-transformers-base)
9811 ("ghc-monad-control" ,ghc-monad-control)
9812 ("ghc-monad-loops" ,ghc-monad-loops)
9813 ("ghc-blaze-builder" ,ghc-blaze-builder)
9814 ("ghc-exceptions" ,ghc-exceptions)))
9815 (home-page "https://github.com/kazu-yamamoto/logger")
9816 (synopsis "Provides a class of monads which can log messages for Haskell")
9817 (description "This Haskell package uses a monad transformer approach
9818 for logging.
9819
9820 This package provides Template Haskell functions for determining source
9821 code locations of messages.")
9822 (license license:expat)))
9823
9824 (define-public ghc-shakespeare
9825 (package
9826 (name "ghc-shakespeare")
9827 (version "2.0.15")
9828 (source
9829 (origin
9830 (method url-fetch)
9831 (uri (string-append "https://hackage.haskell.org/package/"
9832 "shakespeare-" version "/"
9833 "shakespeare-" version ".tar.gz"))
9834 (sha256
9835 (base32
9836 "1vk4b19zvwy4mpwaq9z3l3kfmz75gfyf7alhh0y112gspgpccm23"))))
9837 (build-system haskell-build-system)
9838 (inputs `(("ghc-parsec" ,ghc-parsec)
9839 ("ghc-text" ,ghc-text)
9840 ("ghc-aeson" ,ghc-aeson)
9841 ("ghc-blaze-markup" ,ghc-blaze-markup)
9842 ("ghc-blaze-html" ,ghc-blaze-html)
9843 ("ghc-exceptions" ,ghc-exceptions)
9844 ("ghc-vector" ,ghc-vector)
9845 ("ghc-unordered-containers" ,ghc-unordered-containers)
9846 ("ghc-scientific" ,ghc-scientific)))
9847 (native-inputs `(("ghc-hspec" ,ghc-hspec)
9848 ("ghc-hunit" ,ghc-hunit)
9849 ("hspec-discover" ,hspec-discover)))
9850 (home-page "https://www.yesodweb.com/book/shakespearean-templates")
9851 (synopsis "Family of type-safe template languages for Haskell")
9852 (description "This Haskell package provides a family of type-safe
9853 templates with simple variable interpolation. Shakespeare templates can
9854 be used inline with a quasi-quoter or in an external file and it
9855 interpolates variables according to the type being inserted.")
9856 (license license:expat)))
9857
9858 (define-public ghc-securemem
9859 (package
9860 (name "ghc-securemem")
9861 (version "0.1.10")
9862 (source
9863 (origin
9864 (method url-fetch)
9865 (uri (string-append "https://hackage.haskell.org/package/"
9866 "securemem-" version "/"
9867 "securemem-" version ".tar.gz"))
9868 (sha256
9869 (base32
9870 "19hnw2cfbsfjynxq1bq9f6djbxhsc1k751ml0y1ab3ah913mm29j"))))
9871 (build-system haskell-build-system)
9872 (inputs `(("ghc-byteable" ,ghc-byteable)
9873 ("ghc-memory" ,ghc-memory)))
9874 (home-page "https://github.com/vincenthz/hs-securemem")
9875 (synopsis "Auto-scrubbing and const-time-eq memory chunk abstraction for
9876 Haskell")
9877 (description "SecureMem is similar to ByteString, except that it provides
9878 a memory chunk that will be auto-scrubbed after it run out of scope.")
9879 (license license:bsd-3)))
9880
9881 (define-public ghc-resource-pool
9882 (package
9883 (name "ghc-resource-pool")
9884 (version "0.2.3.2")
9885 (source
9886 (origin
9887 (method url-fetch)
9888 (uri (string-append "https://hackage.haskell.org/package/"
9889 "resource-pool-" version "/"
9890 "resource-pool-" version ".tar.gz"))
9891 (sha256
9892 (base32
9893 "04mw8b9djb14zp4rdi6h7mc3zizh597ffiinfbr4m0m8psifw9w6"))))
9894 (build-system haskell-build-system)
9895 (inputs `(("ghc-hashable" ,ghc-hashable)
9896 ("ghc-monad-control" ,ghc-monad-control)
9897 ("ghc-transformers-base" ,ghc-transformers-base)
9898 ("ghc-stm" ,ghc-stm)
9899 ("ghc-vector" ,ghc-vector)))
9900 (home-page "https://github.com/bos/pool")
9901 (synopsis "Striped resource pooling implementation in Haskell")
9902 (description "This Haskell package provides striped pooling abstraction
9903 for managing flexibly-sized collections of resources such as database
9904 connections.")
9905 (license license:bsd-3)))
9906
9907 (define-public ghc-attoparsec-iso8601
9908 (package
9909 (name "ghc-attoparsec-iso8601")
9910 (version "1.0.0.0")
9911 (source
9912 (origin
9913 (method url-fetch)
9914 (uri (string-append "https://hackage.haskell.org/package/"
9915 "attoparsec-iso8601-" version "/"
9916 "attoparsec-iso8601-" version ".tar.gz"))
9917 (sha256
9918 (base32
9919 "12l55b76bhya9q89mfmqmy6sl5v39b6gzrw5rf3f70vkb23nsv5a"))))
9920 (build-system haskell-build-system)
9921 (arguments
9922 `(#:cabal-revision
9923 ("1" "06f7pgmmc8456p3hc1y23kz1y127gfczy7s00wz1rls9g2sm2vi4")))
9924 (inputs `(("ghc-attoparsec" ,ghc-attoparsec)
9925 ("ghc-base-compat" ,ghc-base-compat)
9926 ("ghc-text" ,ghc-text)))
9927 (home-page "https://github.com/bos/aeson")
9928 (synopsis "Parse ISO 8601 dates")
9929 (description "Haskell library for parsing of ISO 8601 dates, originally
9930 from aeson.")
9931 (license license:bsd-3)))
9932
9933 (define-public ghc-generics-sop
9934 (package
9935 (name "ghc-generics-sop")
9936 (version "0.3.2.0")
9937 (source
9938 (origin
9939 (method url-fetch)
9940 (uri (string-append "https://hackage.haskell.org/package/"
9941 "generics-sop-" version "/"
9942 "generics-sop-" version ".tar.gz"))
9943 (sha256
9944 (base32
9945 "168v62i845jh9jbfaz3ldz8svz4wmzq9mf2vhb7pxlnbkk8fqq1h"))))
9946 (build-system haskell-build-system)
9947 (inputs `(("ghc-transformers-compat" ,ghc-transformers-compat)))
9948 (home-page "https://github.com/well-typed/generics-sop")
9949 (synopsis "Generic Programming using True Sums of Products for Haskell")
9950 (description "This Haskell package supports the definition of generic
9951 functions. Datatypes are viewed in a uniform, structured way: the choice
9952 between constructors is represented using an n-ary sum, and the arguments of
9953 each constructor are represented using an n-ary product.")
9954 (license license:bsd-3)))
9955
9956 (define-public ghc-uri-bytestring
9957 (package
9958 (name "ghc-uri-bytestring")
9959 (version "0.3.2.0")
9960 (source
9961 (origin
9962 (method url-fetch)
9963 (uri (string-append "https://hackage.haskell.org/package/"
9964 "uri-bytestring-" version "/"
9965 "uri-bytestring-" version ".tar.gz"))
9966 (sha256
9967 (base32
9968 "1q04j5ybvk37zk2m0bkjwyhblz0ymdj0cn4rvsvdca1ikn5xdv5c"))))
9969 (build-system haskell-build-system)
9970 (inputs `(("ghc-attoparsec" ,ghc-attoparsec)
9971 ("ghc-fail" ,ghc-fail)
9972 ("ghc-blaze-builder" ,ghc-blaze-builder)
9973 ("ghc-th-lift-instances" ,ghc-th-lift-instances)))
9974 (native-inputs `(("ghc-attoparsec" ,ghc-attoparsec)
9975 ("ghc-hunit" ,ghc-hunit)
9976 ("ghc-quickcheck" ,ghc-quickcheck)
9977 ("ghc-tasty" ,ghc-tasty)
9978 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
9979 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
9980 ("ghc-base-compat" ,ghc-base-compat)
9981 ("ghc-quickcheck-instances" ,ghc-quickcheck-instances)
9982 ("ghc-semigroups" ,ghc-semigroups)
9983 ("ghc-generics-sop" ,ghc-generics-sop)))
9984 (home-page "https://github.com/Soostone/uri-bytestring")
9985 (synopsis "Haskell URI parsing as ByteStrings")
9986 (description "This Haskell package aims to be an RFC3986 compliant URI
9987 parser that uses ByteStrings for parsing and representing the URI data.")
9988 (license license:bsd-3)))
9989
9990 (define-public ghc-http-api-data
9991 (package
9992 (name "ghc-http-api-data")
9993 (version "0.3.8.1")
9994 (source
9995 (origin
9996 (method url-fetch)
9997 (uri (string-append "https://hackage.haskell.org/package/"
9998 "http-api-data-" version "/"
9999 "http-api-data-" version ".tar.gz"))
10000 (sha256
10001 (base32
10002 "1cq6459b8wz6nvkvpi89dg189n5q2xdq4rdq435hf150555vmskf"))))
10003 (build-system haskell-build-system)
10004 (arguments `(#:tests? #f)) ; FIXME: Tests require QuickCheck >= 2.9
10005 (inputs `(("ghc-attoparsec" ,ghc-attoparsec)
10006 ("ghc-attoparsec-iso8601" ,ghc-attoparsec-iso8601)
10007 ("ghc-hashable" ,ghc-hashable)
10008 ("ghc-http-types" ,ghc-http-types)
10009 ("ghc-text" ,ghc-text)
10010 ("ghc-time-locale-compat" ,ghc-time-locale-compat)
10011 ("ghc-unordered-containers" ,ghc-unordered-containers)
10012 ("ghc-uri-bytestring" ,ghc-uri-bytestring)
10013 ("ghc-uuid-types" ,ghc-uuid-types)))
10014 (home-page "https://github.com/fizruk/http-api-data")
10015 (synopsis "Convert to/from HTTP API data like URL pieces, headers and
10016 query parameters")
10017 (description "This Haskell package defines typeclasses used for converting
10018 Haskell data types to and from HTTP API data.")
10019 (license license:bsd-3)))
10020
10021 (define-public ghc-persistent
10022 (package
10023 (name "ghc-persistent")
10024 (version "2.8.2")
10025 (source
10026 (origin
10027 (method url-fetch)
10028 (uri (string-append "https://hackage.haskell.org/package/"
10029 "persistent-" version "/"
10030 "persistent-" version ".tar.gz"))
10031 (sha256
10032 (base32
10033 "1h0yijbf1yiwl50klyafy4ln99j8bib4kgbzviw7fc4y4mwv4sv9"))))
10034 (build-system haskell-build-system)
10035 (inputs `(("ghc-old-locale" ,ghc-old-locale)
10036 ("ghc-text" ,ghc-text)
10037 ("ghc-conduit" ,ghc-conduit)
10038 ("ghc-resourcet" ,ghc-resourcet)
10039 ("ghc-exceptions" ,ghc-exceptions)
10040 ("ghc-monad-control" ,ghc-monad-control)
10041 ("ghc-lifted-base" ,ghc-lifted-base)
10042 ("ghc-resource-pool" ,ghc-resource-pool)
10043 ("ghc-path-pieces" ,ghc-path-pieces)
10044 ("ghc-http-api-data" ,ghc-http-api-data)
10045 ("ghc-aeson" ,ghc-aeson)
10046 ("ghc-monad-logger" ,ghc-monad-logger)
10047 ("ghc-transformers-base" ,ghc-transformers-base)
10048 ("ghc-base64-bytestring" ,ghc-base64-bytestring)
10049 ("ghc-unordered-containers" ,ghc-unordered-containers)
10050 ("ghc-vector" ,ghc-vector)
10051 ("ghc-attoparsec" ,ghc-attoparsec)
10052 ("ghc-haskell-src-meta" ,ghc-haskell-src-meta)
10053 ("ghc-blaze-html" ,ghc-blaze-html)
10054 ("ghc-blaze-markup" ,ghc-blaze-markup)
10055 ("ghc-silently" ,ghc-silently)
10056 ("ghc-fast-logger" ,ghc-fast-logger)
10057 ("ghc-scientific" ,ghc-scientific)
10058 ("ghc-tagged" ,ghc-tagged)
10059 ("ghc-void" ,ghc-void)))
10060 (native-inputs `(("ghc-hspec" ,ghc-hspec)))
10061 (home-page "https://www.yesodweb.com/book/persistent")
10062 (synopsis "Type-safe, multi-backend data serialization for Haskell")
10063 (description "This Haskell package allows Haskell programs to access data
10064 storage systems like PostgreSQL, SQLite, MySQL and MongoDB in a type-safe
10065 way.")
10066 (license license:expat)))
10067
10068 (define-public ghc-aeson-compat
10069 (package
10070 (name "ghc-aeson-compat")
10071 (version "0.3.8")
10072 (source
10073 (origin
10074 (method url-fetch)
10075 (uri (string-append "https://hackage.haskell.org/package/"
10076 "aeson-compat-" version "/"
10077 "aeson-compat-" version ".tar.gz"))
10078 (sha256
10079 (base32
10080 "0j4v13pgk21zy8hqkbx8hw0n05jdl17qphxz9rj4h333pr547r3i"))))
10081 (build-system haskell-build-system)
10082 (arguments `(#:tests? #f)) ; FIXME: Tests require QuickCheck >= 2.10
10083 (inputs `(("ghc-base-compat" ,ghc-base-compat)
10084 ("ghc-aeson" ,ghc-aeson)
10085 ("ghc-attoparsec" ,ghc-attoparsec)
10086 ("ghc-attoparsec" ,ghc-attoparsec-iso8601)
10087 ("ghc-exceptions" ,ghc-exceptions)
10088 ("ghc-hashable" ,ghc-hashable)
10089 ("ghc-scientific" ,ghc-scientific)
10090 ("ghc-text" ,ghc-text)
10091 ("ghc-time-locale-compat" ,ghc-time-locale-compat)
10092 ("ghc-unordered-containers" ,ghc-unordered-containers)
10093 ("ghc-vector" ,ghc-vector)
10094 ("ghc-tagged" ,ghc-tagged)
10095 ("ghc-semigroups" ,ghc-semigroups)
10096 ("ghc-nats" ,ghc-nats)))
10097 (home-page "https://github.com/phadej/aeson-compat")
10098 (synopsis "Compatibility layer for ghc-aeson")
10099 (description "This Haskell package provides compatibility layer for
10100 ghc-aeson.")
10101 (license license:bsd-3)))
10102
10103 (define-public ghc-persistent-template
10104 (package
10105 (name "ghc-persistent-template")
10106 (version "2.5.4")
10107 (source
10108 (origin
10109 (method url-fetch)
10110 (uri (string-append "https://hackage.haskell.org/package/"
10111 "persistent-template-" version "/"
10112 "persistent-template-" version ".tar.gz"))
10113 (sha256
10114 (base32
10115 "008afcy7zbw7bzp9jww8gdldb51kfm0fg4p0x4xcp61gx4679bjc"))))
10116 (build-system haskell-build-system)
10117 (arguments
10118 `(#:cabal-revision
10119 ("2" "03qgwk32krldph3blw5agiqcpccr3649hajyn8wm9k71zz82dpn6")))
10120 (inputs `(("ghc-persistent" ,ghc-persistent)
10121 ("ghc-monad-control" ,ghc-monad-control)
10122 ("ghc-text" ,ghc-text)
10123 ("ghc-aeson" ,ghc-aeson)
10124 ("ghc-aeson-compat" ,ghc-aeson-compat)
10125 ("ghc-monad-logger" ,ghc-monad-logger)
10126 ("ghc-unordered-containers" ,ghc-unordered-containers)
10127 ("ghc-tagged" ,ghc-tagged)
10128 ("ghc-path-pieces" ,ghc-path-pieces)
10129 ("ghc-http-api-data" ,ghc-http-api-data)))
10130 (native-inputs `(("ghc-hspec" ,ghc-hspec)
10131 ("ghc-quickcheck" ,ghc-quickcheck)))
10132 (home-page "https://www.yesodweb.com/book/persistent")
10133 (synopsis "Type-safe, non-relational, multi-backend persistence")
10134 (description "This Haskell package provides interfaces and helper
10135 functions for the ghc-persistent package.")
10136 (license license:expat)))
10137
10138 (define-public ghc-unliftio-core
10139 (package
10140 (name "ghc-unliftio-core")
10141 (version "0.1.1.0")
10142 (source
10143 (origin
10144 (method url-fetch)
10145 (uri (string-append "https://hackage.haskell.org/package/"
10146 "unliftio-core-" version "/"
10147 "unliftio-core-" version ".tar.gz"))
10148 (sha256
10149 (base32
10150 "1193fplsjm1lcr05xwvkj1rsyzx74i755f6kw3ikmxbsv0bv0l3m"))))
10151 (build-system haskell-build-system)
10152 (arguments
10153 `(#:cabal-revision
10154 ("1" "16bjwcsaghqqmyi69rq65dn3ydifyfaabq3ns37apdm00mwqbcj2")))
10155 (home-page
10156 "https://github.com/fpco/unliftio/tree/master/unliftio-core#readme")
10157 (synopsis "The MonadUnliftIO typeclass for unlifting monads to IO")
10158 (description "This Haskell package provides the core @code{MonadUnliftIO}
10159 typeclass, instances for base and transformers, and basic utility
10160 functions.")
10161 (license license:expat)))
10162
10163 (define-public ghc-microlens
10164 (package
10165 (name "ghc-microlens")
10166 (version "0.4.9.1")
10167 (source
10168 (origin
10169 (method url-fetch)
10170 (uri (string-append "https://hackage.haskell.org/package/"
10171 "microlens-" version "/"
10172 "microlens-" version ".tar.gz"))
10173 (sha256
10174 (base32
10175 "0j2nzf0vpx2anvsrg2w0vy2z4jn3kkcs2n6glkzblhn1j9piqh51"))))
10176 (build-system haskell-build-system)
10177 (home-page
10178 "https://github.com/aelve/microlens")
10179 (synopsis "Provides a tiny lens Haskell library with no dependencies")
10180 (description "This Haskell package provides a lens library, just like
10181 @code{ghc-lens}, but smaller. It provides essential lenses and
10182 traversals (like @code{_1} and @code{_Just}), as well as ones which are simply
10183 nice to have (like @code{each}, @code{at}, and @code{ix}), and some
10184 combinators (like @code{failing} and @code{singular}), but everything else is
10185 stripped. As the result, this package has no dependencies.")
10186 (license license:bsd-3)))
10187
10188 (define-public ghc-microlens-th
10189 (package
10190 (name "ghc-microlens-th")
10191 (version "0.4.2.2")
10192 (source
10193 (origin
10194 (method url-fetch)
10195 (uri (string-append "https://hackage.haskell.org/package/"
10196 "microlens-th-" version "/"
10197 "microlens-th-" version ".tar.gz"))
10198 (sha256
10199 (base32
10200 "02nj7lnl61yffi3c6wn341arxhld5r0vj6nzcb5zmqjhnqsv8c05"))))
10201 (build-system haskell-build-system)
10202 (inputs `(("ghc-microlens" ,ghc-microlens)
10203 ("ghc-th-abstraction" ,ghc-th-abstraction)))
10204 (home-page
10205 "https://github.com/aelve/microlens")
10206 (synopsis "Automatic generation of record lenses for
10207 @code{ghc-microlens}")
10208 (description "This Haskell package lets you automatically generate lenses
10209 for data types; code was extracted from the lens package, and therefore
10210 generated lenses are fully compatible with ones generated by lens (and can be
10211 used both from lens and microlens).")
10212 (license license:bsd-3)))
10213
10214 (define-public ghc-unliftio
10215 (package
10216 (name "ghc-unliftio")
10217 (version "0.2.7.0")
10218 (source
10219 (origin
10220 (method url-fetch)
10221 (uri (string-append
10222 "https://hackage.haskell.org/package/unliftio/unliftio-"
10223 version
10224 ".tar.gz"))
10225 (sha256
10226 (base32
10227 "0qql93lq5w7qghl454cc3s1i8v1jb4h08n82fqkw0kli4g3g9njs"))))
10228 (build-system haskell-build-system)
10229 (arguments `(#:tests? #f)) ; FIXME: hspec-discover not in PATH
10230 (inputs
10231 `(("ghc-async" ,ghc-async)
10232 ("ghc-stm" ,ghc-stm)
10233 ("ghc-unliftio-core" ,ghc-unliftio-core)))
10234 (native-inputs `(("ghc-hspec" ,ghc-hspec)))
10235 (home-page "https://github.com/fpco/unliftio")
10236 (synopsis "Provides MonadUnliftIO typecplass for unlifting monads to
10237 IO (batteries included)")
10238 (description "This Haskell package provides the core @code{MonadUnliftIO}
10239 typeclass, a number of common instances, and a collection of common functions
10240 working with it.")
10241 (license license:expat)))
10242
10243 (define-public ghc-persistent-sqlite
10244 (package
10245 (name "ghc-persistent-sqlite")
10246 (version "2.8.2")
10247 (source
10248 (origin
10249 (method url-fetch)
10250 (uri (string-append "https://hackage.haskell.org/package/"
10251 "persistent-sqlite-" version "/"
10252 "persistent-sqlite-" version ".tar.gz"))
10253 (sha256
10254 (base32
10255 "1chbmvjz46smhgnzhha3bbkhys3fys6dip1jr4v7xp1jf78zbyp6"))))
10256 (build-system haskell-build-system)
10257 (inputs `(("ghc-persistent" ,ghc-persistent)
10258 ("ghc-unliftio-core" ,ghc-unliftio-core)
10259 ("ghc-aeson" ,ghc-aeson)
10260 ("ghc-conduit" ,ghc-conduit)
10261 ("ghc-monad-logger" ,ghc-monad-logger)
10262 ("ghc-microlens-th" ,ghc-microlens-th)
10263 ("ghc-resourcet" ,ghc-resourcet)
10264 ("ghc-old-locale" ,ghc-old-locale)
10265 ("ghc-resource-pool" ,ghc-resource-pool)
10266 ("ghc-unordered-containers" ,ghc-unordered-containers)))
10267 (native-inputs `(("ghc-hspec" ,ghc-hspec)
10268 ("ghc-persistent-template" ,ghc-persistent-template)
10269 ("ghc-temporary" ,ghc-temporary)
10270 ("ghc-text" ,ghc-text)))
10271 (home-page
10272 "https://www.yesodweb.com/book/persistent")
10273 (synopsis "Backend for the persistent library using sqlite3")
10274 (description "This Haskell package includes a thin sqlite3 wrapper based
10275 on the direct-sqlite package, as well as the entire C library, so there are no
10276 system dependencies.")
10277 (license license:expat)))
10278
10279 (define-public ghc-email-validate
10280 (package
10281 (name "ghc-email-validate")
10282 (version "2.3.2.6")
10283 (source
10284 (origin
10285 (method url-fetch)
10286 (uri (string-append
10287 "https://hackage.haskell.org/package/"
10288 "email-validate/email-validate-"
10289 version
10290 ".tar.gz"))
10291 (sha256
10292 (base32
10293 "0chgylvc8xmhp933rdbmpg5sv4y7yg2h6kbf0ip1dzmbd5p55pa5"))))
10294 (build-system haskell-build-system)
10295 (inputs
10296 `(("ghc-attoparsec" ,ghc-attoparsec)
10297 ("ghc-hspec" ,ghc-hspec)
10298 ("ghc-quickcheck" ,ghc-quickcheck)
10299 ("ghc-doctest" ,ghc-doctest)))
10300 (home-page
10301 "https://github.com/Porges/email-validate-hs")
10302 (synopsis "Email address validator for Haskell")
10303 (description
10304 "This Haskell package provides a validator that can validate an email
10305 address string against RFC 5322.")
10306 (license license:bsd-3)))
10307
10308 (define-public ghc-bytes
10309 (package
10310 (name "ghc-bytes")
10311 (version "0.15.5")
10312 (source
10313 (origin
10314 (method url-fetch)
10315 (uri
10316 (string-append "https://hackage.haskell.org/package/bytes-"
10317 version "/bytes-"
10318 version ".tar.gz"))
10319 (file-name (string-append name "-" version ".tar.gz"))
10320 (sha256
10321 (base32
10322 "063il2vrn0p88r9gzndh4ijs0mxj37khkc9ym9bqdsv7ngk3b683"))))
10323 (build-system haskell-build-system)
10324 (inputs `(("ghc-cereal" ,ghc-cereal)
10325 ("cabal-doctest" ,cabal-doctest)
10326 ("ghc-doctest" ,ghc-doctest)
10327 ("ghc-scientific" ,ghc-scientific)
10328 ("ghc-text" ,ghc-text)
10329 ("ghc-transformers-compat" ,ghc-transformers-compat)
10330 ("ghc-unordered-containers" ,ghc-unordered-containers)
10331 ("ghc-void" ,ghc-void)
10332 ("ghc-vector" ,ghc-vector)))
10333 (synopsis "Serialization between @code{binary} and @code{cereal}")
10334 (description "This package provides a simple compatibility shim that lets
10335 you work with both @code{binary} and @code{cereal} with one chunk of
10336 serialization code.")
10337 (home-page "https://hackage.haskell.org/package/bytes")
10338 (license license:bsd-3)))
10339
10340 (define-public ghc-disk-free-space
10341 (package
10342 (name "ghc-disk-free-space")
10343 (version "0.1.0.1")
10344 (source
10345 (origin
10346 (method url-fetch)
10347 (uri (string-append "https://hackage.haskell.org/package/"
10348 "disk-free-space/disk-free-space-"
10349 version ".tar.gz"))
10350 (sha256
10351 (base32
10352 "07rqj8k1vh3cykq9yidpjxhgh1f7vgmjs6y1nv5kq2217ff4yypi"))))
10353 (build-system haskell-build-system)
10354 (home-page "https://github.com/redneb/disk-free-space")
10355 (synopsis "Retrieve information about disk space usage")
10356 (description "A cross-platform library for retrieving information about
10357 disk space usage.")
10358 (license license:bsd-3)))
10359
10360 (define-public ghc-xdg-basedir
10361 (package
10362 (name "ghc-xdg-basedir")
10363 (version "0.2.2")
10364 (source
10365 (origin
10366 (method url-fetch)
10367 (uri (string-append
10368 "https://hackage.haskell.org/package/xdg-basedir/"
10369 "xdg-basedir-" version ".tar.gz"))
10370 (sha256
10371 (base32
10372 "0azlzaxp2dn4l1nr7shsxah2magk1szf6fx0mv75az00qsjw6qg4"))))
10373 (build-system haskell-build-system)
10374 (home-page "http://github.com/willdonnelly/xdg-basedir")
10375 (synopsis "XDG Base Directory library for Haskell")
10376 (description "This package provides a library implementing the XDG Base Directory spec.")
10377 (license license:bsd-3)))
10378
10379 (define-public ghc-errorcall-eq-instance
10380 (package
10381 (name "ghc-errorcall-eq-instance")
10382 (version "0.3.0")
10383 (source
10384 (origin
10385 (method url-fetch)
10386 (uri (string-append "https://hackage.haskell.org/package/"
10387 "errorcall-eq-instance/errorcall-eq-instance-"
10388 version ".tar.gz"))
10389 (sha256
10390 (base32
10391 "0hqw82m8bbrxy5vgdwb83bhzdx070ibqrm9rshyja7cb808ahijm"))))
10392 (build-system haskell-build-system)
10393 (inputs
10394 `(("ghc-base-orphans" ,ghc-base-orphans)))
10395 (native-inputs
10396 `(("ghc-quickcheck" ,ghc-quickcheck)
10397 ("ghc-hspec" ,ghc-hspec)
10398 ("hspec-discover" ,hspec-discover)))
10399 (home-page "http://hackage.haskell.org/package/errorcall-eq-instance")
10400 (synopsis "Orphan Eq instance for ErrorCall")
10401 (description
10402 "Prior to @code{base-4.7.0.0} there was no @code{Eq} instance for @code{ErrorCall}.
10403 This package provides an orphan instance.")
10404 (license license:expat)))
10405
10406 (define-public ghc-missingh
10407 (package
10408 (name "ghc-missingh")
10409 (version "1.4.0.1")
10410 (source
10411 (origin
10412 (method url-fetch)
10413 (uri (string-append "https://hackage.haskell.org/package/MissingH/"
10414 "MissingH-" version ".tar.gz"))
10415 (sha256
10416 (base32
10417 "0wcvgrmav480w7nf4bl14yi0jq2yzanysxwzwas9hpb28vyjlgr8"))))
10418 (build-system haskell-build-system)
10419 ;; Tests require the unmaintained testpack package, which depends on the
10420 ;; outdated QuickCheck version 2.7, which can no longer be built with
10421 ;; recent versions of GHC and Haskell libraries.
10422 (arguments '(#:tests? #f))
10423 (inputs
10424 `(("ghc-network" ,ghc-network)
10425 ("ghc-parsec" ,ghc-parsec)
10426 ("ghc-hunit" ,ghc-hunit)
10427 ("ghc-regex-compat" ,ghc-regex-compat)
10428 ("ghc-hslogger" ,ghc-hslogger)
10429 ("ghc-random" ,ghc-random)
10430 ("ghc-old-time" ,ghc-old-time)
10431 ("ghc-old-locale" ,ghc-old-locale)))
10432 (native-inputs
10433 `(("ghc-errorcall-eq-instance" ,ghc-errorcall-eq-instance)
10434 ("ghc-quickcheck" ,ghc-quickcheck)
10435 ("ghc-hunit" ,ghc-hunit)))
10436 (home-page "http://software.complete.org/missingh")
10437 (synopsis "Large utility library")
10438 (description
10439 "MissingH is a library of all sorts of utility functions for Haskell
10440 programmers. It is written in pure Haskell and thus should be extremely
10441 portable and easy to use.")
10442 (license license:bsd-3)))
10443
10444 (define-public ghc-intervalmap
10445 (package
10446 (name "ghc-intervalmap")
10447 (version "0.6.0.0")
10448 (source
10449 (origin
10450 (method url-fetch)
10451 (uri (string-append "https://hackage.haskell.org/package/IntervalMap/"
10452 "IntervalMap-" version ".tar.gz"))
10453 (sha256
10454 (base32
10455 "06hin9wf1by8aqa7820fsi2339bh82184frkwz3jsb9sqa0hszcg"))))
10456 (build-system haskell-build-system)
10457 (native-inputs
10458 `(("ghc-quickcheck" ,ghc-quickcheck)))
10459 (home-page "http://www.chr-breitkopf.de/comp/IntervalMap")
10460 (synopsis "Containers for intervals, with efficient search")
10461 (description
10462 "This package provides ordered containers of intervals, with efficient
10463 search for all keys containing a point or overlapping an interval. See the
10464 example code on the home page for a quick introduction.")
10465 (license license:bsd-3)))
10466
10467 (define-public ghc-operational
10468 (package
10469 (name "ghc-operational")
10470 (version "0.2.3.5")
10471 (source
10472 (origin
10473 (method url-fetch)
10474 (uri (string-append "https://hackage.haskell.org/package/operational/"
10475 "operational-" version ".tar.gz"))
10476 (sha256
10477 (base32
10478 "1x2abg2q9d26h1vzj40r6k7k3gqgappbs4g9d853vvg77837km4i"))))
10479 (build-system haskell-build-system)
10480 (inputs
10481 `(("ghc-random" ,ghc-random)))
10482 (home-page "http://wiki.haskell.org/Operational")
10483 (synopsis "Implementation of difficult monads made easy with operational semantics")
10484 (description
10485 "This library makes it easy to implement monads with tricky control
10486 flow. This is useful for: writing web applications in a sequential style,
10487 programming games with a uniform interface for human and AI players and easy
10488 replay capababilities, implementing fast parser monads, designing monadic
10489 DSLs, etc.")
10490 (license license:bsd-3)))
10491
10492 (define-public ghc-gtk2hs-buildtools
10493 (package
10494 (name "ghc-gtk2hs-buildtools")
10495 (version "0.13.4.0")
10496 (source
10497 (origin
10498 (method url-fetch)
10499 (uri (string-append "https://hackage.haskell.org/package/"
10500 "gtk2hs-buildtools/gtk2hs-buildtools-"
10501 version ".tar.gz"))
10502 (sha256
10503 (base32
10504 "0yg6xmylgpylmnh5g33qwwn5x9bqckdvvv4czqzd9vrr12lnnghg"))))
10505 (build-system haskell-build-system)
10506 (inputs
10507 `(("ghc-random" ,ghc-random)
10508 ("ghc-hashtables" ,ghc-hashtables)))
10509 (native-inputs
10510 `(("ghc-alex" ,ghc-alex)
10511 ("ghc-happy" ,ghc-happy)))
10512 (home-page "http://projects.haskell.org/gtk2hs/")
10513 (synopsis "Tools to build the Gtk2Hs suite of user interface libraries")
10514 (description
10515 "This package provides a set of helper programs necessary to build the
10516 Gtk2Hs suite of libraries. These tools include a modified c2hs binding tool
10517 that is used to generate FFI declarations, a tool to build a type hierarchy
10518 that mirrors the C type hierarchy of GObjects found in glib, and a generator
10519 for signal declarations that are used to call back from C to Haskell. These
10520 tools are not needed to actually run Gtk2Hs programs.")
10521 (license license:gpl2)))
10522
10523 (define-public ghc-chart
10524 (package
10525 (name "ghc-chart")
10526 (version "1.9")
10527 (source
10528 (origin
10529 (method url-fetch)
10530 (uri (string-append "https://hackage.haskell.org/package/Chart/"
10531 "Chart-" version ".tar.gz"))
10532 (sha256
10533 (base32
10534 "1f5azj17y8xsb3gjhf7gg1gnnlq12rxkmfjmgcly314d7vghs05z"))))
10535 (build-system haskell-build-system)
10536 (inputs
10537 `(("ghc-old-locale" ,ghc-old-locale)
10538 ("ghc-lens" ,ghc-lens)
10539 ("ghc-colour" ,ghc-colour)
10540 ("ghc-data-default-class" ,ghc-data-default-class)
10541 ("ghc-operational" ,ghc-operational)
10542 ("ghc-vector" ,ghc-vector)))
10543 (home-page "https://github.com/timbod7/haskell-chart/wiki")
10544 (synopsis "Library for generating 2D charts and plots")
10545 (description
10546 "This package provides a library for generating 2D charts and plots, with
10547 backends provided by the @code{Cairo} and @code{Diagrams} libraries.")
10548 (license license:bsd-3)))
10549
10550 (define-public ghc-wcwidth
10551 (package
10552 (name "ghc-wcwidth")
10553 (version "0.0.2")
10554 (source
10555 (origin
10556 (method url-fetch)
10557 (uri (string-append "https://hackage.haskell.org/package/wcwidth/wcwidth-"
10558 version ".tar.gz"))
10559 (sha256
10560 (base32
10561 "1n1fq7v64b59ajf5g50iqj9sa34wm7s2j3viay0kxpmvlcv8gipz"))))
10562 (build-system haskell-build-system)
10563 (inputs
10564 `(("ghc-setlocale" ,ghc-setlocale)
10565 ("ghc-utf8-string" ,ghc-utf8-string)
10566 ("ghc-attoparsec" ,ghc-attoparsec)))
10567 (home-page "https://github.com/solidsnack/wcwidth/")
10568 (synopsis "Haskell bindings to wcwidth")
10569 (description "This package provides Haskell bindings to your system's
10570 native wcwidth and a command line tool to examine the widths assigned by it.
10571 The command line tool can compile a width table to Haskell code that assigns
10572 widths to the Char type.")
10573 (license license:bsd-3)))
10574
10575 (define-public ghc-wcwidth-bootstrap
10576 (package
10577 (inherit ghc-wcwidth)
10578 (name "ghc-wcwidth-bootstrap")
10579 (inputs
10580 `(("ghc-setlocale" ,ghc-setlocale)
10581 ("ghc-utf8-string" ,ghc-utf8-string)
10582 ("ghc-attoparsec" ,ghc-attoparsec-bootstrap)))
10583 (properties '(hidden? #t))))
10584
10585 (define-public ghc-rio
10586 (package
10587 (name "ghc-rio")
10588 (version "0.1.5.0")
10589 (source
10590 (origin
10591 (method url-fetch)
10592 (uri (string-append
10593 "https://hackage.haskell.org/package/rio/rio-"
10594 version ".tar.gz"))
10595 (sha256
10596 (base32
10597 "064h8a4hp53a479d3ak0vmqbx8hi0cpg7zn4wp23rjy26dka8p7g"))))
10598 (build-system haskell-build-system)
10599 (inputs
10600 `(("ghc-exceptions" ,ghc-exceptions)
10601 ("ghc-hashable" ,ghc-hashable)
10602 ("ghc-microlens" ,ghc-microlens)
10603 ("ghc-primitive" ,ghc-primitive)
10604 ("ghc-text" ,ghc-text)
10605 ("ghc-typed-process" ,ghc-typed-process)
10606 ("ghc-unliftio" ,ghc-unliftio)
10607 ("ghc-unordered-containers" ,ghc-unordered-containers)
10608 ("ghc-vector" ,ghc-vector)))
10609 (native-inputs
10610 `(("ghc-hspec" ,ghc-hspec)
10611 ("hspec-discover" ,hspec-discover)))
10612 (home-page "https://github.com/commercialhaskell/rio#readme")
10613 (synopsis "A standard library for Haskell")
10614 (description "This package works as a prelude replacement for Haskell,
10615 providing more functionality and types out of the box than the standard
10616 prelude (such as common data types like @code{ByteString} and
10617 @code{Text}), as well as removing common ``gotchas'', like partial
10618 functions and lazy I/O. The guiding principle here is:
10619 @itemize
10620 @item If something is safe to use in general and has no expected naming
10621 conflicts, expose it.
10622 @item If something should not always be used, or has naming conflicts,
10623 expose it from another module in the hierarchy.
10624 @end itemize")
10625 (license license:expat)))
10626
10627 (define-public ghc-cairo
10628 (package
10629 (name "ghc-cairo")
10630 (version "0.13.5.0")
10631 (source
10632 (origin
10633 (method url-fetch)
10634 (uri (string-append "https://hackage.haskell.org/package/cairo/"
10635 "cairo-" version ".tar.gz"))
10636 (sha256
10637 (base32
10638 "1wxylv4d8120ri0vgar168ikqa9m6533ipdwi38qlmxmw20ws2j2"))))
10639 (build-system haskell-build-system)
10640 (arguments
10641 `(#:modules ((guix build haskell-build-system)
10642 (guix build utils)
10643 (ice-9 match)
10644 (srfi srfi-26))
10645 #:phases
10646 (modify-phases %standard-phases
10647 ;; FIXME: This is a copy of the standard configure phase with a tiny
10648 ;; difference: this package needs the -package-db flag to be passed
10649 ;; to "runhaskell" in addition to the "configure" action, because it
10650 ;; depends on gtk2hs-buildtools, which provide setup hooks. Without
10651 ;; this option the Setup.hs file cannot be evaluated. The
10652 ;; haskell-build-system should be changed to pass "-package-db" to
10653 ;; "runhaskell" in any case.
10654 (replace 'configure
10655 (lambda* (#:key outputs inputs tests? (configure-flags '())
10656 #:allow-other-keys)
10657 (let* ((out (assoc-ref outputs "out"))
10658 (name-version (strip-store-file-name out))
10659 (input-dirs (match inputs
10660 (((_ . dir) ...)
10661 dir)
10662 (_ '())))
10663 (ghc-path (getenv "GHC_PACKAGE_PATH"))
10664 (params (append `(,(string-append "--prefix=" out))
10665 `(,(string-append "--libdir=" out "/lib"))
10666 `(,(string-append "--bindir=" out "/bin"))
10667 `(,(string-append
10668 "--docdir=" out
10669 "/share/doc/" name-version))
10670 '("--libsubdir=$compiler/$pkg-$version")
10671 '("--package-db=../package.conf.d")
10672 '("--global")
10673 `(,@(map
10674 (cut string-append "--extra-include-dirs=" <>)
10675 (search-path-as-list '("include") input-dirs)))
10676 `(,@(map
10677 (cut string-append "--extra-lib-dirs=" <>)
10678 (search-path-as-list '("lib") input-dirs)))
10679 (if tests?
10680 '("--enable-tests")
10681 '())
10682 configure-flags)))
10683 (unsetenv "GHC_PACKAGE_PATH")
10684 (apply invoke "runhaskell" "-package-db=../package.conf.d"
10685 "Setup.hs" "configure" params)
10686 (setenv "GHC_PACKAGE_PATH" ghc-path)
10687 #t))))))
10688 (inputs
10689 `(("ghc-utf8-string" ,ghc-utf8-string)
10690 ("ghc-text" ,ghc-text)
10691 ("cairo" ,cairo)))
10692 (native-inputs
10693 `(("ghc-gtk2hs-buildtools" ,ghc-gtk2hs-buildtools)
10694 ("pkg-config" ,pkg-config)))
10695 (home-page "http://projects.haskell.org/gtk2hs/")
10696 (synopsis "Haskell bindings to the Cairo vector graphics library")
10697 (description
10698 "Cairo is a library to render high quality vector graphics. There exist
10699 various backends that allows rendering to Gtk windows, PDF, PS, PNG and SVG
10700 documents, amongst others.")
10701 (license license:bsd-3)))
10702
10703 (define-public ghc-chart-cairo
10704 (package
10705 (name "ghc-chart-cairo")
10706 (version "1.9")
10707 (source
10708 (origin
10709 (method url-fetch)
10710 (uri (string-append "https://hackage.haskell.org/package/Chart-cairo/"
10711 "Chart-cairo-" version ".tar.gz"))
10712 (sha256
10713 (base32
10714 "0iany6lfyfb1cw0pxfs5aw5k0a6x41m6ql9ad9w59biwdckbsyqr"))))
10715 (build-system haskell-build-system)
10716 (inputs
10717 `(("ghc-old-locale" ,ghc-old-locale)
10718 ("ghc-cairo" ,ghc-cairo)
10719 ("ghc-colour" ,ghc-colour)
10720 ("ghc-data-default-class" ,ghc-data-default-class)
10721 ("ghc-operational" ,ghc-operational)
10722 ("ghc-lens" ,ghc-lens)
10723 ("ghc-chart" ,ghc-chart)))
10724 (home-page "https://github.com/timbod7/haskell-chart/wiki")
10725 (synopsis "Cairo backend for Charts")
10726 (description "This package provides a Cairo vector graphics rendering
10727 backend for the Charts library.")
10728 (license license:bsd-3)))
10729
10730 (define-public ghc-atomic-write
10731 (package
10732 (name "ghc-atomic-write")
10733 (version "0.2.0.5")
10734 (source
10735 (origin
10736 (method url-fetch)
10737 (uri (string-append
10738 "https://hackage.haskell.org/package/atomic-write/atomic-write-"
10739 version
10740 ".tar.gz"))
10741 (sha256
10742 (base32
10743 "1iaq0hprxcv0sl1sgwcgmm87zraf738va1bciwnx2jkk3k1v9iyv"))))
10744 (build-system haskell-build-system)
10745 (inputs
10746 `(("ghc-temporary" ,ghc-temporary)
10747 ("ghc-unix-compat" ,ghc-unix-compat)
10748 ("ghc-text" ,ghc-text)))
10749 (native-inputs
10750 `(("ghc-temporary" ,ghc-temporary)
10751 ("ghc-unix-compat" ,ghc-unix-compat)
10752 ("ghc-text" ,ghc-text)
10753 ("ghc-hspec" ,ghc-hspec)
10754 ("hspec-discover" ,hspec-discover)))
10755 (home-page "https://github.com/stackbuilders/atomic-write")
10756 (synopsis "Atomically write to a file")
10757 (description
10758 "Atomically write to a file on POSIX-compliant systems while preserving
10759 permissions. @code{mv} is an atomic operation. This makes it simple to write
10760 to a file atomically just by using the @code{mv} operation. However, this
10761 will destroy the permissions on the original file. This library preserves
10762 permissions while atomically writing to a file.")
10763 (license license:expat)))
10764
10765 (define-public ghc-cereal-conduit
10766 (package
10767 (name "ghc-cereal-conduit")
10768 (version "0.8.0")
10769 (source
10770 (origin
10771 (method url-fetch)
10772 (uri (string-append "https://hackage.haskell.org/package/"
10773 "cereal-conduit/cereal-conduit-"
10774 version ".tar.gz"))
10775 (sha256
10776 (base32
10777 "1srr7agvgfw78q5s1npjq5sgynvhjgllpihiv37ylkwqm4c4ap6r"))))
10778 (build-system haskell-build-system)
10779 (inputs
10780 `(("ghc-conduit" ,ghc-conduit)
10781 ("ghc-resourcet" ,ghc-resourcet)
10782 ("ghc-cereal" ,ghc-cereal)))
10783 (native-inputs
10784 `(("ghc-hunit" ,ghc-hunit)))
10785 (home-page "https://github.com/snoyberg/conduit")
10786 (synopsis "Turn Data.Serialize Gets and Puts into Sources, Sinks, and Conduits")
10787 (description
10788 "This package turn @code{Data.Serialize} @code{Gets} and @code{Puts} into
10789 @code{Sources}, @code{Sinks}, and @code{Conduits}.")
10790 (license license:bsd-3)))
10791
10792 (define-public ghc-lzma
10793 (package
10794 (name "ghc-lzma")
10795 (version "0.0.0.3")
10796 (source
10797 (origin
10798 (method url-fetch)
10799 (uri (string-append "https://hackage.haskell.org/package/lzma/"
10800 "lzma-" version ".tar.gz"))
10801 (sha256
10802 (base32
10803 "0i416gqi8j55nd1pqbkxvf3f6hn6fjys6gq98lkkxphva71j30xg"))))
10804 (build-system haskell-build-system)
10805 (arguments
10806 '(#:tests? #f ; requires older versions of QuickCheck and tasty.
10807 #:cabal-revision
10808 ("3" "1sify6gnsalyp6dakfzi0mdy5jcz2kcp9jsdsgkmxd40nfzgd44m")))
10809 (native-inputs
10810 `(("ghc-hunit" ,ghc-hunit)
10811 ("ghc-quickcheck" ,ghc-quickcheck)
10812 ("ghc-tasty" ,ghc-tasty)
10813 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
10814 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
10815 (home-page "https://github.com/hvr/lzma")
10816 (synopsis "LZMA/XZ compression and decompression")
10817 (description
10818 "This package provides a pure interface for compressing and
10819 decompressing LZMA streams of data represented as lazy @code{ByteString}s. A
10820 monadic incremental interface is provided as well.")
10821 (license license:bsd-3)))
10822
10823 (define-public ghc-stm-conduit
10824 (package
10825 (name "ghc-stm-conduit")
10826 (version "4.0.0")
10827 (source
10828 (origin
10829 (method url-fetch)
10830 (uri (string-append "https://hackage.haskell.org/package/stm-conduit/"
10831 "stm-conduit-" version ".tar.gz"))
10832 (sha256
10833 (base32
10834 "0paapljn7nqfzrx889y0n8sszci38mdiaxkgr0bb00ph9246rr7z"))))
10835 (build-system haskell-build-system)
10836 (inputs
10837 `(("ghc-stm" ,ghc-stm)
10838 ("ghc-stm-chans" ,ghc-stm-chans)
10839 ("ghc-cereal" ,ghc-cereal)
10840 ("ghc-cereal-conduit" ,ghc-cereal-conduit)
10841 ("ghc-conduit" ,ghc-conduit)
10842 ("ghc-conduit-extra" ,ghc-conduit-extra)
10843 ("ghc-exceptions" ,ghc-exceptions)
10844 ("ghc-resourcet" ,ghc-resourcet)
10845 ("ghc-async" ,ghc-async)
10846 ("ghc-monad-loops" ,ghc-monad-loops)
10847 ("ghc-unliftio" ,ghc-unliftio)))
10848 (native-inputs
10849 `(("ghc-doctest" ,ghc-doctest)
10850 ("ghc-quickcheck" ,ghc-quickcheck)
10851 ("ghc-hunit" ,ghc-hunit)
10852 ("ghc-test-framework" ,ghc-test-framework)
10853 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
10854 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
10855 (home-page "https://github.com/cgaebel/stm-conduit")
10856 (synopsis "Introduces conduits to channels and promotes using conduits concurrently")
10857 (description
10858 "This package provides two simple conduit wrappers around STM channels: a
10859 source and a sink.")
10860 (license license:bsd-3)))
10861
10862 (define-public ghc-bindings-dsl
10863 (package
10864 (name "ghc-bindings-dsl")
10865 (version "1.0.25")
10866 (source
10867 (origin
10868 (method url-fetch)
10869 (uri (string-append "https://hackage.haskell.org/package/bindings-DSL/"
10870 "bindings-DSL-" version ".tar.gz"))
10871 (sha256
10872 (base32
10873 "0kqrd78nspl3lk4a0fqn47d8dirjg3b24dkvkigcrlb81hw35pk3"))))
10874 (build-system haskell-build-system)
10875 (home-page "https://github.com/jwiegley/bindings-dsl/wiki")
10876 (synopsis "FFI domain specific language, on top of hsc2hs")
10877 (description
10878 "This is a set of macros to be used when writing Haskell FFI. They were
10879 designed to be able to fully describe C interfaces, so that @code{hsc2hs} can
10880 extract from them all Haskell code needed to mimic such interfaces. All
10881 Haskell names used are automatically derived from C names, structures are
10882 mapped to Haskell instances of @code{Storable}, and there are also macros you
10883 can use with C code to help write bindings to inline functions or macro
10884 functions.")
10885 (license license:bsd-3)))
10886
10887 (define-public ghc-lzma-conduit
10888 (package
10889 (name "ghc-lzma-conduit")
10890 (version "1.2.1")
10891 (source
10892 (origin
10893 (method url-fetch)
10894 (uri (string-append "https://hackage.haskell.org/package/lzma-conduit/"
10895 "lzma-conduit-" version ".tar.gz"))
10896 (sha256
10897 (base32
10898 "0hm72da7xk9l3zxjh274yg444vf405djxqbkf3q3p2qhicmxlmg9"))))
10899 (build-system haskell-build-system)
10900 (inputs
10901 `(("ghc-conduit" ,ghc-conduit)
10902 ("ghc-lzma" ,ghc-lzma)
10903 ("ghc-resourcet" ,ghc-resourcet)))
10904 (native-inputs
10905 `(("ghc-base-compat" ,ghc-base-compat)
10906 ("ghc-test-framework" ,ghc-test-framework)
10907 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
10908 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)
10909 ("ghc-hunit" ,ghc-hunit)
10910 ("ghc-quickcheck" ,ghc-quickcheck)))
10911 (home-page "https://github.com/alphaHeavy/lzma-conduit")
10912 (synopsis "Conduit interface for lzma/xz compression")
10913 (description
10914 "This package provides a @code{Conduit} interface for the LZMA
10915 compression algorithm used in the @code{.xz} file format.")
10916 (license license:bsd-3)))
10917
10918 (define-public ghc-bzlib-conduit
10919 (package
10920 (name "ghc-bzlib-conduit")
10921 (version "0.3.0.1")
10922 (source
10923 (origin
10924 (method url-fetch)
10925 (uri (string-append "https://hackage.haskell.org/package/bzlib-conduit/"
10926 "bzlib-conduit-" version ".tar.gz"))
10927 (sha256
10928 (base32
10929 "0fd2hnr782s7qgipazg2yxwia9qqhkvm9bcm90773c3zkxa13n23"))))
10930 (build-system haskell-build-system)
10931 (inputs
10932 `(("ghc-bindings-dsl" ,ghc-bindings-dsl)
10933 ("ghc-conduit" ,ghc-conduit)
10934 ("ghc-data-default-class" ,ghc-data-default-class)
10935 ("ghc-resourcet" ,ghc-resourcet)))
10936 (native-inputs
10937 `(("ghc-hspec" ,ghc-hspec)
10938 ("ghc-random" ,ghc-random)))
10939 (home-page "https://github.com/snoyberg/bzlib-conduit")
10940 (synopsis "Streaming compression/decompression via conduits")
10941 (description
10942 "This package provides Haskell bindings to bzlib and Conduit support for
10943 streaming compression and decompression.")
10944 (license license:bsd-3)))
10945
10946 (define-public ghc-pqueue
10947 (package
10948 (name "ghc-pqueue")
10949 (version "1.4.1.1")
10950 (source
10951 (origin
10952 (method url-fetch)
10953 (uri (string-append "https://hackage.haskell.org/package/"
10954 "pqueue/pqueue-" version ".tar.gz"))
10955 (sha256
10956 (base32
10957 "1zvwm1zcqqq5n101s1brjhgbay8rf9fviq6gxbplf40i63m57p1x"))))
10958 (build-system haskell-build-system)
10959 (native-inputs
10960 `(("ghc-quickcheck" ,ghc-quickcheck)))
10961 (home-page "https://hackage.haskell.org/package/pqueue")
10962 (synopsis "Reliable, persistent, fast priority queues")
10963 (description
10964 "This package provides a fast, reliable priority queue implementation
10965 based on a binomial heap.")
10966 (license license:bsd-3)))
10967
10968 (define-public ghc-conduit-algorithms
10969 (package
10970 (name "ghc-conduit-algorithms")
10971 (version "0.0.8.1")
10972 (source
10973 (origin
10974 (method url-fetch)
10975 (uri (string-append "https://hackage.haskell.org/package/"
10976 "conduit-algorithms/conduit-algorithms-"
10977 version ".tar.gz"))
10978 (sha256
10979 (base32
10980 "07gx2q3d1bbfw14q41rmqg0i4m018pci10lswc0k1ij6lw7sb9fd"))))
10981 (build-system haskell-build-system)
10982 (inputs
10983 `(("ghc-async" ,ghc-async)
10984 ("ghc-bzlib-conduit" ,ghc-bzlib-conduit)
10985 ("ghc-conduit" ,ghc-conduit)
10986 ("ghc-conduit-combinators" ,ghc-conduit-combinators)
10987 ("ghc-conduit-extra" ,ghc-conduit-extra)
10988 ("ghc-exceptions" ,ghc-exceptions)
10989 ("ghc-lzma-conduit" ,ghc-lzma-conduit)
10990 ("ghc-monad-control" ,ghc-monad-control)
10991 ("ghc-pqueue" ,ghc-pqueue)
10992 ("ghc-resourcet" ,ghc-resourcet)
10993 ("ghc-stm" ,ghc-stm)
10994 ("ghc-stm-conduit" ,ghc-stm-conduit)
10995 ("ghc-streaming-commons" ,ghc-streaming-commons)
10996 ("ghc-unliftio-core" ,ghc-unliftio-core)
10997 ("ghc-vector" ,ghc-vector)))
10998 (native-inputs
10999 `(("ghc-hunit" ,ghc-hunit)
11000 ("ghc-test-framework" ,ghc-test-framework)
11001 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
11002 ("ghc-test-framework-th" ,ghc-test-framework-th)))
11003 (home-page "https://github.com/luispedro/conduit-algorithms#readme")
11004 (synopsis "Conduit-based algorithms")
11005 (description
11006 "This package provides algorithms on @code{Conduits}, including higher
11007 level asynchronous processing and some other utilities.")
11008 (license license:expat)))
11009
11010 (define-public ghc-interpolate
11011 (package
11012 (name "ghc-interpolate")
11013 (version "0.2.0")
11014 (source
11015 (origin
11016 (method url-fetch)
11017 (uri (string-append "https://hackage.haskell.org/package/interpolate/"
11018 "interpolate-" version ".tar.gz"))
11019 (sha256
11020 (base32
11021 "1gkaj98yz363v38fv78sqby236mp8yqwqcilx7kr2b9z0w3204bf"))))
11022 (build-system haskell-build-system)
11023 (inputs
11024 `(("ghc-haskell-src-meta" ,ghc-haskell-src-meta)))
11025 (native-inputs
11026 `(("ghc-base-compat" ,ghc-base-compat)
11027 ("ghc-hspec" ,ghc-hspec)
11028 ("ghc-quickcheck" ,ghc-quickcheck)
11029 ("ghc-quickcheck-instances" ,ghc-quickcheck-instances)
11030 ("ghc-text" ,ghc-text)
11031 ("hspec-discover" ,hspec-discover)))
11032 (home-page "https://github.com/sol/interpolate")
11033 (synopsis "String interpolation library")
11034 (description "This package provides a string interpolation library for
11035 Haskell.")
11036 (license license:expat)))
11037
11038 (define-public ghc-hpack
11039 (package
11040 (name "ghc-hpack")
11041 (version "0.28.2")
11042 (source
11043 (origin
11044 (method url-fetch)
11045 (uri (string-append "https://hackage.haskell.org/package/hpack/"
11046 "hpack-" version ".tar.gz"))
11047 (sha256
11048 (base32
11049 "18w0h76jdp3mk9vin8da9iz3cwhcxmw787xy8wlh8bxcpcr16q5r"))))
11050 (build-system haskell-build-system)
11051 (inputs
11052 `(("ghc-aeson" ,ghc-aeson)
11053 ("ghc-bifunctors" ,ghc-bifunctors)
11054 ("ghc-cryptonite" ,ghc-cryptonite)
11055 ("ghc-glob" ,ghc-glob)
11056 ("ghc-http-client" ,ghc-http-client)
11057 ("ghc-http-client-tls" ,ghc-http-client-tls)
11058 ("ghc-http-types" ,ghc-http-types)
11059 ("ghc-scientific" ,ghc-scientific)
11060 ("ghc-text" ,ghc-text)
11061 ("ghc-unordered-containers" ,ghc-unordered-containers)
11062 ("ghc-vector" ,ghc-vector)
11063 ("ghc-yaml" ,ghc-yaml)))
11064 (native-inputs
11065 `(("ghc-hspec" ,ghc-hspec)
11066 ("ghc-hunit" ,ghc-hunit)
11067 ("ghc-interpolate" ,ghc-interpolate)
11068 ("ghc-mockery" ,ghc-mockery)
11069 ("ghc-quickcheck" ,ghc-quickcheck)
11070 ("ghc-temporary" ,ghc-temporary)
11071 ("hspec-discover" ,hspec-discover)))
11072 (home-page "https://github.com/sol/hpack")
11073 (synopsis "Tools for an alternative Haskell package format")
11074 (description
11075 "Hpack is a format for Haskell packages. It is an alternative to the
11076 Cabal package format and follows different design principles. Hpack packages
11077 are described in a file named @code{package.yaml}. Both @code{cabal2nix} and
11078 @code{stack} support @code{package.yaml} natively. For other build tools the
11079 @code{hpack} executable can be used to generate a @code{.cabal} file from
11080 @code{package.yaml}.")
11081 (license license:expat)))
11082
11083 (define-public ghc-raw-strings-qq
11084 (package
11085 (name "ghc-raw-strings-qq")
11086 (version "1.1")
11087 (source
11088 (origin
11089 (method url-fetch)
11090 (uri (string-append "https://hackage.haskell.org/package/"
11091 "raw-strings-qq/raw-strings-qq-"
11092 version ".tar.gz"))
11093 (sha256
11094 (base32
11095 "1lxy1wy3awf52968iy5y9r5z4qgnn2sxkdrh7js3m9gadb11w09f"))))
11096 (build-system haskell-build-system)
11097 (native-inputs `(("ghc-hunit" ,ghc-hunit)))
11098 (home-page "https://github.com/23Skidoo/raw-strings-qq")
11099 (synopsis "Raw string literals for Haskell")
11100 (description
11101 "This package provides a quasiquoter for raw string literals, i.e. string
11102 literals that don't recognise the standard escape sequences. Basically, they
11103 make your code more readable by freeing you from the responsibility to escape
11104 backslashes. They are useful when working with regular expressions,
11105 DOS/Windows paths and markup languages (such as XML).")
11106 (license license:bsd-3)))
11107
11108 (define-public ghc-inline-c
11109 (package
11110 (name "ghc-inline-c")
11111 (version "0.6.1.0")
11112 (source
11113 (origin
11114 (method url-fetch)
11115 (uri (string-append "https://hackage.haskell.org/package/inline-c/"
11116 "inline-c-" version ".tar.gz"))
11117 (sha256
11118 (base32
11119 "0vbfrsqsi7mdziqsnj68bsqlwbqxxhvrmy9rv6w8z18d1m8w3n6h"))))
11120 (build-system haskell-build-system)
11121 (inputs
11122 `(("ghc-ansi-wl-pprint" ,ghc-ansi-wl-pprint)
11123 ("ghc-cryptohash" ,ghc-cryptohash)
11124 ("ghc-hashable" ,ghc-hashable)
11125 ("ghc-parsec" ,ghc-parsec)
11126 ("ghc-parsers" ,ghc-parsers)
11127 ("ghc-unordered-containers" ,ghc-unordered-containers)
11128 ("ghc-vector" ,ghc-vector)))
11129 (native-inputs
11130 `(("ghc-quickcheck" ,ghc-quickcheck)
11131 ("ghc-hspec" ,ghc-hspec)
11132 ("ghc-raw-strings-qq" ,ghc-raw-strings-qq)
11133 ("ghc-regex-posix" ,ghc-regex-posix)))
11134 (home-page "http://hackage.haskell.org/package/inline-c")
11135 (synopsis "Write Haskell source files including C code inline")
11136 (description
11137 "inline-c lets you seamlessly call C libraries and embed high-performance
11138 inline C code in Haskell modules. Haskell and C can be freely intermixed in
11139 the same source file, and data passed to and from code in either language with
11140 minimal overhead. No FFI required.")
11141 (license license:expat)))
11142
11143 (define-public ghc-weigh
11144 (package
11145 (name "ghc-weigh")
11146 (version "0.0.12")
11147 (source
11148 (origin
11149 (method url-fetch)
11150 (uri (string-append "https://hackage.haskell.org/package/weigh/"
11151 "weigh-" version ".tar.gz"))
11152 (sha256
11153 (base32
11154 "0zw2a997gxgdzqmd7j730kxgynzmjvvlkw84dajmfzf1v9pbij7x"))))
11155 (build-system haskell-build-system)
11156 (inputs
11157 `(("ghc-split" ,ghc-split)
11158 ("ghc-temporary" ,ghc-temporary)))
11159 (home-page "https://github.com/fpco/weigh#readme")
11160 (synopsis "Measure allocations of a Haskell functions/values")
11161 (description "This package provides tools to measure the memory usage of a
11162 Haskell value or function.")
11163 (license license:bsd-3)))
11164
11165 (define-public ghc-linear
11166 (package
11167 (name "ghc-linear")
11168 (version "1.20.8")
11169 (source
11170 (origin
11171 (method url-fetch)
11172 (uri (string-append "https://hackage.haskell.org/package/linear/"
11173 "linear-" version ".tar.gz"))
11174 (sha256
11175 (base32
11176 "046vkvxlb0s286qr55s0c6db0rlwbm1cmlmwhrrkqbkzhfcipgay"))))
11177 (build-system haskell-build-system)
11178 (inputs
11179 `(("ghc-adjunctions" ,ghc-adjunctions)
11180 ("ghc-base-orphans" ,ghc-base-orphans)
11181 ("ghc-bytes" ,ghc-bytes)
11182 ("ghc-cereal" ,ghc-cereal)
11183 ("ghc-distributive" ,ghc-distributive)
11184 ("ghc-hashable" ,ghc-hashable)
11185 ("ghc-lens" ,ghc-lens)
11186 ("ghc-reflection" ,ghc-reflection)
11187 ("ghc-semigroups" ,ghc-semigroups)
11188 ("ghc-semigroupoids" ,ghc-semigroupoids)
11189 ("ghc-tagged" ,ghc-tagged)
11190 ("ghc-transformers-compat" ,ghc-transformers-compat)
11191 ("ghc-unordered-containers" ,ghc-unordered-containers)
11192 ("ghc-vector" ,ghc-vector)
11193 ("ghc-void" ,ghc-void)))
11194 (native-inputs
11195 `(("cabal-doctest" ,cabal-doctest)
11196 ("ghc-doctest" ,ghc-doctest)
11197 ("ghc-simple-reflect" ,ghc-simple-reflect)
11198 ("ghc-test-framework" ,ghc-test-framework)
11199 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
11200 ("ghc-hunit" ,ghc-hunit)))
11201 (home-page "http://github.com/ekmett/linear/")
11202 (synopsis "Linear algebra library for Haskell")
11203 (description
11204 "This package provides types and combinators for linear algebra on free
11205 vector spaces.")
11206 (license license:bsd-3)))
11207
11208 (define-public ghc-safe-exceptions
11209 (package
11210 (name "ghc-safe-exceptions")
11211 (version "0.1.7.0")
11212 (source
11213 (origin
11214 (method url-fetch)
11215 (uri (string-append "https://hackage.haskell.org/package/"
11216 "safe-exceptions/safe-exceptions-"
11217 version ".tar.gz"))
11218 (sha256
11219 (base32
11220 "0sd0zfsm9pcll5bzzj523rbn45adjrnavdkz52hgmdjjgdcdrk8q"))))
11221 (build-system haskell-build-system)
11222 (arguments
11223 '(#:cabal-revision
11224 ("4" "0fid41gishzsyb47wzxhd5falandfirqcp760hcja81qjpfmqd32")))
11225 (inputs `(("ghc-exceptions" ,ghc-exceptions)))
11226 (native-inputs
11227 `(("ghc-hspec" ,ghc-hspec)
11228 ("ghc-void" ,ghc-void)
11229 ("hspec-discover" ,hspec-discover)))
11230 (home-page "https://github.com/fpco/safe-exceptions")
11231 (synopsis "Safe, consistent, and easy exception handling")
11232 (description "Runtime exceptions - as exposed in @code{base} by the
11233 @code{Control.Exception} module - have long been an intimidating part of the
11234 Haskell ecosystem. This package is intended to overcome this. It provides a
11235 safe and simple API on top of the existing exception handling machinery. The
11236 API is equivalent to the underlying implementation in terms of power but
11237 encourages best practices to minimize the chances of getting the exception
11238 handling wrong.")
11239 (license license:expat)))
11240
11241 (define-public ghc-inline-c-cpp
11242 (package
11243 (name "ghc-inline-c-cpp")
11244 (version "0.2.2.1")
11245 (source
11246 (origin
11247 (method url-fetch)
11248 (uri (string-append "https://hackage.haskell.org/package/inline-c-cpp/"
11249 "inline-c-cpp-" version ".tar.gz"))
11250 (sha256
11251 (base32
11252 "1rk7fmpkmxw9hhwr8df29kadnf0ybnwj64ggdbnsdrpfyhnkisci"))))
11253 (build-system haskell-build-system)
11254 (inputs
11255 `(("ghc-inline-c" ,ghc-inline-c)
11256 ("ghc-safe-exceptions" ,ghc-safe-exceptions)))
11257 (native-inputs
11258 `(("ghc-hspec" ,ghc-hspec)))
11259 (home-page "https://hackage.haskell.org/package/inline-c-cpp")
11260 (synopsis "Lets you embed C++ code into Haskell")
11261 (description
11262 "This package provides utilities to inline C++ code into Haskell using
11263 @code{inline-c}.")
11264 (license license:expat)))
11265
11266 (define-public ghc-bytestring-lexing
11267 (package
11268 (name "ghc-bytestring-lexing")
11269 (version "0.5.0.2")
11270 (source
11271 (origin
11272 (method url-fetch)
11273 (uri (string-append "https://hackage.haskell.org/package/"
11274 "bytestring-lexing/bytestring-lexing-"
11275 version ".tar.gz"))
11276 (sha256
11277 (base32
11278 "0wrzniawhgpphc6yx1v972gyqxdbv0pizaz9bafahrshyb9svy81"))))
11279 (build-system haskell-build-system)
11280 (home-page "http://code.haskell.org/~wren/")
11281 (synopsis "Parse and produce literals from strict or lazy bytestrings")
11282 (description
11283 "This package provides tools to parse and produce literals efficiently
11284 from strict or lazy bytestrings.")
11285 (license license:bsd-2)))
11286
11287 (define-public ghc-configurator
11288 (package
11289 (name "ghc-configurator")
11290 (version "0.3.0.0")
11291 (source
11292 (origin
11293 (method url-fetch)
11294 (uri (string-append "https://hackage.haskell.org/package/"
11295 "configurator/configurator-"
11296 version ".tar.gz"))
11297 (sha256
11298 (base32
11299 "1d1iq1knwiq6ia5g64rw5hqm6dakz912qj13r89737rfcxmrkfbf"))))
11300 (build-system haskell-build-system)
11301 (inputs
11302 `(("ghc-attoparsec" ,ghc-attoparsec)
11303 ("ghc-hashable" ,ghc-hashable)
11304 ("ghc-text" ,ghc-text)
11305 ("ghc-unix-compat" ,ghc-unix-compat)
11306 ("ghc-unordered-containers" ,ghc-unordered-containers)))
11307 (native-inputs
11308 `(("ghc-hunit" ,ghc-hunit)
11309 ("ghc-test-framework" ,ghc-test-framework)
11310 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)))
11311 (home-page "http://github.com/bos/configurator")
11312 (synopsis "Configuration management")
11313 (description
11314 "This package provides a configuration management library for programs
11315 and daemons. The features include:
11316
11317 @enumerate
11318 @item Automatic, dynamic reloading in response to modifications to
11319 configuration files.
11320 @item A simple, but flexible, configuration language, supporting several of
11321 the most commonly needed types of data, along with interpolation of strings
11322 from the configuration or the system environment (e.g. @code{$(HOME)}).
11323 @item Subscription-based notification of changes to configuration properties.
11324 @item An @code{import} directive allows the configuration of a complex
11325 application to be split across several smaller files, or common configuration
11326 data to be shared across several applications.
11327 @end enumerate\n")
11328 (license license:bsd-3)))
11329
11330 (define-public ghc-file-embed
11331 (package
11332 (name "ghc-file-embed")
11333 (version "0.0.10.1")
11334 (source
11335 (origin
11336 (method url-fetch)
11337 (uri (string-append "https://hackage.haskell.org/package/file-embed/"
11338 "file-embed-" version ".tar.gz"))
11339 (sha256
11340 (base32
11341 "0lj164cnzqyd487mli91nnr7137a4h4qsasfwsnsh77sx12fpk9k"))))
11342 (build-system haskell-build-system)
11343 (home-page "https://github.com/snoyberg/file-embed")
11344 (synopsis "Use Template Haskell to embed file contents directly")
11345 (description
11346 "This package allows you to use Template Haskell to read a file or all
11347 the files in a directory, and turn them into @code{(path, bytestring)} pairs
11348 embedded in your Haskell code.")
11349 (license license:bsd-3)))
11350
11351 (define-public ghc-safeio
11352 (package
11353 (name "ghc-safeio")
11354 (version "0.0.5.0")
11355 (source
11356 (origin
11357 (method url-fetch)
11358 (uri (string-append "https://hackage.haskell.org/package/safeio/"
11359 "safeio-" version ".tar.gz"))
11360 (sha256
11361 (base32
11362 "04g3070cbjdqj0h9l9ii6470xcbn40xfv4fr89a8yvnkdim9nyfm"))))
11363 (build-system haskell-build-system)
11364 (inputs
11365 `(("ghc-conduit" ,ghc-conduit)
11366 ("ghc-conduit-combinators" ,ghc-conduit-combinators)
11367 ("ghc-exceptions" ,ghc-exceptions)
11368 ("ghc-resourcet" ,ghc-resourcet)))
11369 (native-inputs
11370 `(("ghc-hunit" ,ghc-hunit)
11371 ("ghc-test-framework" ,ghc-test-framework)
11372 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
11373 ("ghc-test-framework-th" ,ghc-test-framework-th)))
11374 (home-page "https://github.com/luispedro/safeio")
11375 (synopsis "Write output to disk atomically")
11376 (description
11377 "This package implements utilities to perform atomic output so as to
11378 avoid the problem of partial intermediate files.")
11379 (license license:expat)))
11380
11381 (define-public ghc-tldr
11382 (package
11383 (name "ghc-tldr")
11384 (version "0.4.0.1")
11385 (source
11386 (origin
11387 (method url-fetch)
11388 (uri (string-append
11389 "https://hackage.haskell.org/package/tldr/tldr-"
11390 version
11391 ".tar.gz"))
11392 (sha256
11393 (base32
11394 "0nc581y9jjzwd8l88g48c72mla7k6q1w102akl7gl5jsk9ljamd3"))))
11395 (build-system haskell-build-system)
11396 (inputs
11397 `(("ghc-cmark" ,ghc-cmark)
11398 ("ghc-optparse-applicative" ,ghc-optparse-applicative)
11399 ("ghc-typed-process" ,ghc-typed-process)
11400 ("ghc-semigroups" ,ghc-semigroups)))
11401 (native-inputs
11402 `(("ghc-tasty" ,ghc-tasty)
11403 ("ghc-tasty-golden" ,ghc-tasty-golden)))
11404 (home-page "https://github.com/psibi/tldr-hs#readme")
11405 (synopsis "Haskell tldr client")
11406 (description "This package provides the @command{tldr} command and a
11407 Haskell client library allowing users to update and view @code{tldr} pages
11408 from a shell. The @code{tldr} pages are a community effort to simplify the
11409 man pages with practical examples.")
11410 (license license:bsd-3)))
11411
11412 (define-public ghc-c2hs
11413 (package
11414 (name "ghc-c2hs")
11415 (version "0.28.6")
11416 (source
11417 (origin
11418 (method url-fetch)
11419 (uri (string-append
11420 "https://hackage.haskell.org/package/c2hs/c2hs-"
11421 version
11422 ".tar.gz"))
11423 (sha256
11424 (base32
11425 "1nplgxfin139x12sb656f5870rpdclrhzi8mq8pry035qld15pci"))))
11426 (build-system haskell-build-system)
11427 (inputs
11428 `(("ghc-language-c" ,ghc-language-c)
11429 ("ghc-dlist" ,ghc-dlist)))
11430 (native-inputs
11431 `(("ghc-test-framework" ,ghc-test-framework)
11432 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
11433 ("ghc-hunit" ,ghc-hunit)
11434 ("ghc-shelly" ,ghc-shelly)
11435 ("ghc-text" ,ghc-text)
11436 ("gcc" ,gcc)))
11437 (arguments
11438 `(;; XXX: Test failures are induced by a parse error in <bits/floatn.h>
11439 ;; of glibc 2.28.
11440 #:tests? #f
11441
11442 #:phases
11443 (modify-phases %standard-phases
11444 (add-before 'check 'set-cc
11445 ;; add a cc executable in the path, needed for some tests to pass
11446 (lambda* (#:key inputs #:allow-other-keys)
11447 (let ((gcc (assoc-ref inputs "gcc"))
11448 (tmpbin (tmpnam))
11449 (curpath (getenv "PATH")))
11450 (mkdir-p tmpbin)
11451 (symlink (which "gcc") (string-append tmpbin "/cc"))
11452 (setenv "PATH" (string-append tmpbin ":" curpath)))
11453 #t))
11454 (add-after 'check 'remove-cc
11455 ;; clean the tmp dir made in 'set-cc
11456 (lambda _
11457 (let* ((cc-path (which "cc"))
11458 (cc-dir (dirname cc-path)))
11459 (delete-file-recursively cc-dir)
11460 #t))))))
11461 (home-page "https://github.com/haskell/c2hs")
11462 (synopsis "Create Haskell bindings to C libraries")
11463 (description "C->Haskell assists in the development of Haskell bindings to
11464 C libraries. It extracts interface information from C header files and
11465 generates Haskell code with foreign imports and marshaling. Unlike writing
11466 foreign imports by hand (or using hsc2hs), this ensures that C functions are
11467 imported with the correct Haskell types.")
11468 (license license:gpl2)))
11469
11470 (define-public ghc-libmpd
11471 (package
11472 (name "ghc-libmpd")
11473 (version "0.9.0.9")
11474 (source
11475 (origin
11476 (method url-fetch)
11477 (uri (string-append
11478 "mirror://hackage/package/libmpd/libmpd-"
11479 version
11480 ".tar.gz"))
11481 (sha256
11482 (base32
11483 "1931m23iqb4wddpdidm4ph746zpaw41kkjzmb074j7yyfpk7x1jv"))))
11484 (build-system haskell-build-system)
11485 (inputs
11486 `(("ghc-attoparsec" ,ghc-attoparsec)
11487 ("ghc-old-locale" ,ghc-old-locale)
11488 ("ghc-text" ,ghc-text)
11489 ("ghc-data-default-class" ,ghc-data-default-class)
11490 ("ghc-network" ,ghc-network)
11491 ("ghc-utf8-string" ,ghc-utf8-string)))
11492 (native-inputs
11493 `(("ghc-quickcheck" ,ghc-quickcheck)
11494 ("ghc-hspec" ,ghc-hspec)
11495 ("hspec-discover" ,hspec-discover)))
11496 (home-page "https://github.com/vimus/libmpd-haskell")
11497 (synopsis "Haskell client library for the Music Player Daemon")
11498 (description "This package provides a pure Haskell client library for the
11499 Music Player Daemon.")
11500 (license license:expat)))
11501
11502 (define-public ghc-alsa-core
11503 (package
11504 (name "ghc-alsa-core")
11505 (version "0.5.0.1")
11506 (source
11507 (origin
11508 (method url-fetch)
11509 (uri (string-append
11510 "mirror://hackage/package/alsa-core/alsa-core-"
11511 version
11512 ".tar.gz"))
11513 (sha256
11514 (base32
11515 "1avh4a419h9d2zsslg6j8hm87ppgsgqafz8ll037rk2yy1g4jl7b"))))
11516 (build-system haskell-build-system)
11517 (inputs
11518 `(("ghc-extensible-exceptions" ,ghc-extensible-exceptions)
11519 ("alsa-lib" ,alsa-lib)))
11520 (native-inputs
11521 `(("pkg-config" ,pkg-config)))
11522 (home-page "http://www.haskell.org/haskellwiki/ALSA")
11523 (synopsis "Binding to the ALSA Library API (Exceptions)")
11524 (description "This package provides access to ALSA infrastructure, that is
11525 needed by both alsa-seq and alsa-pcm.")
11526 (license license:bsd-3)))
11527
11528 (define-public ghc-base-unicode-symbols
11529 (package
11530 (name "ghc-base-unicode-symbols")
11531 (version "0.2.3")
11532 (source
11533 (origin
11534 (method url-fetch)
11535 (uri (string-append
11536 "mirror://hackage/package/base-unicode-symbols/base-unicode-symbols-"
11537 version
11538 ".tar.gz"))
11539 (sha256
11540 (base32
11541 "1ia6li7qjg1zkak4gf6mnbshw45mq9bfjr0jch58ds0lscmvwyzf"))))
11542 (build-system haskell-build-system)
11543 (home-page "http://www.haskell.org/haskellwiki/Unicode-symbols")
11544 (synopsis "Unicode alternatives for common functions and operators")
11545 (description "This package defines new symbols for a number of functions,
11546 operators and types in the base package. All symbols are documented with
11547 their actual definition and information regarding their Unicode code point.
11548 They should be completely interchangeable with their definitions. For
11549 further Unicode goodness you can enable the @code{UnicodeSyntax}
11550 @url{https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/glasgow_exs.html#unicode-syntax,
11551 language extension}. This extension enables Unicode characters to be used to
11552 stand for certain ASCII character sequences, i.e. → instead of @code{->},
11553 ∀ instead of @code{forall} and many others.")
11554 (license license:bsd-3)))
11555
11556 (define-public ghc-stylish-haskell
11557 (package
11558 (name "ghc-stylish-haskell")
11559 (version "0.9.2.1")
11560 (source
11561 (origin
11562 (method url-fetch)
11563 (uri (string-append
11564 "mirror://hackage/package/stylish-haskell/stylish-haskell-"
11565 version
11566 ".tar.gz"))
11567 (sha256
11568 (base32
11569 "1ls11fdx6snvfx8yykpidz142zzxwi5bazl49hgfqlwx50rqcp7w"))))
11570 (build-system haskell-build-system)
11571 (inputs
11572 `(("ghc-aeson" ,ghc-aeson)
11573 ("ghc-file-embed" ,ghc-file-embed)
11574 ("ghc-haskell-src-exts" ,ghc-haskell-src-exts)
11575 ("ghc-semigroups" ,ghc-semigroups)
11576 ("ghc-syb" ,ghc-syb)
11577 ("ghc-yaml" ,ghc-yaml)
11578 ("ghc-strict" ,ghc-strict)
11579 ("ghc-optparse-applicative"
11580 ,ghc-optparse-applicative)))
11581 (native-inputs
11582 `(("ghc-hunit" ,ghc-hunit)
11583 ("ghc-test-framework" ,ghc-test-framework)
11584 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)))
11585 (home-page "https://github.com/jaspervdj/stylish-haskell")
11586 (synopsis "Haskell code prettifier")
11587 (description "Stylish-haskell is a Haskell code prettifier. The goal is
11588 not to format all of the code in a file, to avoid \"getting in the way\".
11589 However, this tool can e.g. clean up import statements and help doing various
11590 tasks that get tedious very quickly. It can
11591 @itemize
11592 @item
11593 Align and sort @code{import} statements
11594 @item
11595 Group and wrap @code{{-# LANGUAGE #-}} pragmas, remove (some) redundant
11596 pragmas
11597 @item
11598 Remove trailing whitespaces
11599 @item
11600 Align branches in @code{case} and fields in records
11601 @item
11602 Convert line endings (customisable)
11603 @item
11604 Replace tabs by four spaces (turned off by default)
11605 @item
11606 Replace some ASCII sequences by their Unicode equivalent (turned off by
11607 default)
11608 @end itemize")
11609 (license license:bsd-3)))
11610
11611 (define-public ghc-validation
11612 (package
11613 (name "ghc-validation")
11614 (version "1.1")
11615 (source
11616 (origin
11617 (method url-fetch)
11618 (uri (string-append
11619 "mirror://hackage/package/validation/validation-"
11620 version
11621 ".tar.gz"))
11622 (sha256
11623 (base32
11624 "1acj7mh3581ks405xswxw6667z7y1y0slisg6jvp6chc191ji9l5"))))
11625 (build-system haskell-build-system)
11626 (arguments
11627 `(#:phases
11628 (modify-phases %standard-phases
11629 (add-after 'unpack 'add-setup-script
11630 (lambda _
11631 ;; The usual "Setup.hs" script is missing from the source.
11632 (with-output-to-file "Setup.hs"
11633 (lambda ()
11634 (format #t "import Distribution.Simple~%")
11635 (format #t "main = defaultMain~%"))))))))
11636 (inputs
11637 `(("ghc-semigroups" ,ghc-semigroups)
11638 ("ghc-semigroupoids" ,ghc-semigroupoids)
11639 ("ghc-bifunctors" ,ghc-bifunctors)
11640 ("ghc-lens" ,ghc-lens)))
11641 (native-inputs
11642 `(("ghc-hedgehog" ,ghc-hedgehog)
11643 ("ghc-hunit" ,ghc-hunit)))
11644 (home-page "https://github.com/qfpl/validation")
11645 (synopsis
11646 "Data-type like Either but with an accumulating Applicative")
11647 (description
11648 "A data-type like Either but with differing properties and type-class
11649 instances.
11650
11651 Library support is provided for this different representation, including
11652 @code{lens}-related functions for converting between each and abstracting over
11653 their similarities.
11654
11655 The @code{Validation} data type is isomorphic to @code{Either}, but has an
11656 instance of @code{Applicative} that accumulates on the error side. That is to
11657 say, if two (or more) errors are encountered, they are appended using a
11658 @{Semigroup} operation.
11659
11660 As a consequence of this @code{Applicative} instance, there is no
11661 corresponding @code{Bind} or @code{Monad} instance. @code{Validation} is an
11662 example of, \"An applicative functor that is not a monad.\"")
11663 (license license:bsd-3)))
11664
11665 (define-public ghc-concurrent-output
11666 (package
11667 (name "ghc-concurrent-output")
11668 (version "1.10.10")
11669 (source
11670 (origin
11671 (method url-fetch)
11672 (uri (string-append
11673 "mirror://hackage/package/concurrent-output/concurrent-output-"
11674 version
11675 ".tar.gz"))
11676 (sha256
11677 (base32
11678 "1wnjxnwbc3l853kiiijagzjyb6fmhz3lmkwls24plbximl1qrr22"))))
11679 (build-system haskell-build-system)
11680 (inputs
11681 `(("ghc-async" ,ghc-async)
11682 ("ghc-stm" ,ghc-stm)
11683 ("ghc-exceptions" ,ghc-exceptions)
11684 ("ghc-ansi-terminal" ,ghc-ansi-terminal)
11685 ("ghc-terminal-size" ,ghc-terminal-size)))
11686 (home-page
11687 "https://hackage.haskell.org/package/concurrent-output")
11688 (synopsis
11689 "Ungarble output from several threads or commands")
11690 (description
11691 "Lets multiple threads and external processes concurrently output to the
11692 console, without it getting all garbled up.
11693
11694 Built on top of that is a way of defining multiple output regions, which are
11695 automatically laid out on the screen and can be individually updated by
11696 concurrent threads. Can be used for progress displays etc.")
11697 (license license:bsd-2)))
11698
11699 (define-public ghc-wl-pprint-annotated
11700 (package
11701 (name "ghc-wl-pprint-annotated")
11702 (version "0.1.0.1")
11703 (source
11704 (origin
11705 (method url-fetch)
11706 (uri (string-append
11707 "mirror://hackage/package/wl-pprint-annotated/wl-pprint-annotated-"
11708 version
11709 ".tar.gz"))
11710 (sha256
11711 (base32
11712 "1br7qyf27iza213inwhf9bm2k6in0zbmfw6w4clqlc9f9cj2nrkb"))))
11713 (build-system haskell-build-system)
11714 (native-inputs
11715 `(("ghc-tasty" ,ghc-tasty)
11716 ("ghc-tasty-hunit" ,ghc-tasty-hunit)))
11717 (home-page
11718 "https://github.com/minad/wl-pprint-annotated#readme")
11719 (synopsis
11720 "Wadler/Leijen pretty printer with annotation support")
11721 (description
11722 "Annotations are useful for coloring. This is a limited version of
11723 @code{wl-pprint-extras} without support for point effects and without the free
11724 monad. Like in @code{annotated-wl-pprint}, only annotations are supported.
11725 Compared to @code{annotated-wl-pprint} this library provides a slightly
11726 modernized interface.")
11727 (license license:bsd-3)))
11728 ;;; haskell.scm ends here