gnu: ghc-json: Update to 0.9.2.
[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 Eric Bavier <bavier@member.fsf.org>
6 ;;; Copyright © 2016, 2018 Ludovic Courtès <ludo@gnu.org>
7 ;;; Copyright © 2016, 2017 Nils Gillmann <ng0@n0.is>
8 ;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
9 ;;; Copyright © 2015, 2016, 2017, 2018 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 Tobias Geerinckx-Rice <me@tobias.gr>
16 ;;; Copyright © 2018 Tonton <tonton@riseup.net>
17 ;;; Copyright © 2018 Timothy Sample <samplet@ngyro.com>
18 ;;; Copyright © 2018 Arun Isaac <arunisaac@systemreboot.net>
19 ;;;
20 ;;; This file is part of GNU Guix.
21 ;;;
22 ;;; GNU Guix is free software; you can redistribute it and/or modify it
23 ;;; under the terms of the GNU General Public License as published by
24 ;;; the Free Software Foundation; either version 3 of the License, or (at
25 ;;; your option) any later version.
26 ;;;
27 ;;; GNU Guix is distributed in the hope that it will be useful, but
28 ;;; WITHOUT ANY WARRANTY; without even the implied warranty of
29 ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
30 ;;; GNU General Public License for more details.
31 ;;;
32 ;;; You should have received a copy of the GNU General Public License
33 ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
34
35 (define-module (gnu packages haskell)
36 #:use-module (gnu packages)
37 #:use-module (gnu packages base)
38 #:use-module (gnu packages bootstrap)
39 #:use-module (gnu packages check)
40 #:use-module (gnu packages compression)
41 #:use-module (gnu packages elf)
42 #:use-module (gnu packages gcc)
43 #:use-module (gnu packages ghostscript)
44 #:use-module (gnu packages gl)
45 #:use-module (gnu packages graphviz)
46 #:use-module (gnu packages haskell-check)
47 #:use-module (gnu packages haskell-crypto)
48 #:use-module (gnu packages haskell-web)
49 #:use-module (gnu packages libffi)
50 #:use-module (gnu packages linux)
51 #:use-module (gnu packages lisp)
52 #:use-module (gnu packages lua)
53 #:use-module (gnu packages maths)
54 #:use-module (gnu packages multiprecision)
55 #:use-module (gnu packages ncurses)
56 #:use-module (gnu packages pcre)
57 #:use-module (gnu packages perl)
58 #:use-module (gnu packages pkg-config)
59 #:use-module (gnu packages python)
60 #:use-module (gnu packages sdl)
61 #:use-module (gnu packages tls)
62 #:use-module (gnu packages xml)
63 #:use-module (gnu packages xorg)
64 #:use-module (guix build-system gnu)
65 #:use-module (guix build-system haskell)
66 #:use-module (guix download)
67 #:use-module (guix git-download)
68 #:use-module ((guix licenses) #:prefix license:)
69 #:use-module (guix packages)
70 #:use-module (guix utils)
71 #:use-module (ice-9 regex)
72 #:use-module ((srfi srfi-1) #:select (alist-delete)))
73
74 (define-public cl-yale-haskell
75 (let ((commit "85f94c72a16c5f70301dd8db04cde9de2d7dd270")
76 (revision "1"))
77 (package
78 (name "cl-yale-haskell")
79 (version (string-append "2.0.5-" revision "." (string-take commit 9)))
80 (source (origin
81 (method git-fetch)
82 (uri (git-reference
83 (url "https://git.elephly.net/software/yale-haskell.git")
84 (commit commit)))
85 (file-name (string-append "yale-haskell-" commit "-checkout"))
86 (sha256
87 (base32
88 "0bal3m6ryrjamz5p93bhs9rp5msk8k7lpcqr44wd7xs9b9k8w74g"))))
89 (build-system gnu-build-system)
90 (arguments
91 `(#:tests? #f ; no tests
92 ;; Stripping binaries leads to a broken executable lisp system image.
93 #:strip-binaries? #f
94 #:make-flags
95 (list (string-append "PREFIX=" (assoc-ref %outputs "out")))
96 #:phases
97 (modify-phases %standard-phases
98 (replace 'configure
99 (lambda _
100 (setenv "PRELUDE" "./progs/prelude")
101 (setenv "HASKELL_LIBRARY" "./progs/lib")
102 (setenv "PRELUDEBIN" "./progs/prelude/clisp")
103 (setenv "HASKELLPROG" "./bin/clisp-haskell")
104 #t)))))
105 (inputs
106 `(("clisp" ,clisp)))
107 (home-page "https://git.elephly.net/software/yale-haskell.git")
108 (synopsis "Port of the Yale Haskell system to CLISP")
109 (description "This package provides the Yale Haskell system running on
110 top of CLISP.")
111 (license license:bsd-4))))
112
113 (define ghc-bootstrap-x86_64-7.8.4
114 (origin
115 (method url-fetch)
116 (uri
117 "https://www.haskell.org/ghc/dist/7.8.4/ghc-7.8.4-x86_64-unknown-linux-deb7.tar.xz")
118 (sha256
119 (base32
120 "13azsl53xgj20mi1hj9x0xb32vvcvs6cpmvwx6znxhas7blh0bpn"))))
121
122 (define ghc-bootstrap-i686-7.8.4
123 (origin
124 (method url-fetch)
125 (uri
126 "https://www.haskell.org/ghc/dist/7.8.4/ghc-7.8.4-i386-unknown-linux-deb7.tar.xz")
127 (sha256
128 (base32
129 "0wj5s435j0zgww70bj1d3f6wvnnpzlxwvwcyh2qv4qjq5z8j64kg"))))
130
131 ;; 43 tests out of 3965 fail.
132 ;;
133 ;; Most of them do not appear to be serious:
134 ;;
135 ;; - some tests generate files referring to "/bin/sh" and "/bin/ls". I've not
136 ;; figured out how these references are generated.
137 ;;
138 ;; - Some tests allocate more memory than expected (ca. 3% above upper limit)
139 ;;
140 ;; - Some tests try to load unavailable libriries: Control.Concurrent.STM,
141 ;; Data.Vector, Control.Monad.State.
142 ;;
143 ;; - Test posix010 tries to check the existence of a user on the system:
144 ;; getUserEntryForName: does not exist (no such user)
145 (define-public ghc-7
146 (package
147 (name "ghc")
148 (version "7.10.2")
149 (source
150 (origin
151 (method url-fetch)
152 (uri (string-append "https://www.haskell.org/ghc/dist/"
153 version "/" name "-" version "-src.tar.xz"))
154 (sha256
155 (base32
156 "1x8m4rp2v7ydnrz6z9g8x7z3x3d3pxhv2pixy7i7hkbqbdsp7kal"))))
157 (build-system gnu-build-system)
158 (supported-systems '("i686-linux" "x86_64-linux"))
159 (outputs '("out" "doc"))
160 (inputs
161 `(("gmp" ,gmp)
162 ("ncurses" ,ncurses)
163 ("libffi" ,libffi)
164 ("ghc-testsuite"
165 ,(origin
166 (method url-fetch)
167 (uri (string-append
168 "https://www.haskell.org/ghc/dist/"
169 version "/" name "-" version "-testsuite.tar.xz"))
170 (sha256
171 (base32
172 "0qp9da9ar87zbyn6wjgacd2ic1vgzbi3cklxnhsmjqyafv9qaj4b"))))))
173 (native-inputs
174 `(("perl" ,perl)
175 ("python" ,python-2) ; for tests (fails with python-3)
176 ("ghostscript" ,ghostscript) ; for tests
177 ("patchelf" ,patchelf)
178 ;; GHC is built with GHC. Therefore we need bootstrap binaries.
179 ("ghc-binary"
180 ,(if (string-match "x86_64" (or (%current-target-system) (%current-system)))
181 ghc-bootstrap-x86_64-7.8.4
182 ghc-bootstrap-i686-7.8.4))))
183 (arguments
184 `(#:test-target "test"
185 ;; We get a smaller number of test failures by disabling parallel test
186 ;; execution.
187 #:parallel-tests? #f
188
189 ;; The DSOs use $ORIGIN to refer to each other, but (guix build
190 ;; gremlin) doesn't support it yet, so skip this phase.
191 #:validate-runpath? #f
192
193 ;; Don't pass --build=<triplet>, because the configure script
194 ;; auto-detects slightly different triplets for --host and --target and
195 ;; then complains that they don't match.
196 #:build #f
197
198 #:modules ((guix build gnu-build-system)
199 (guix build utils)
200 (guix build rpath)
201 (srfi srfi-26)
202 (srfi srfi-1))
203 #:imported-modules (,@%gnu-build-system-modules
204 (guix build rpath))
205 #:configure-flags
206 (list
207 (string-append "--with-gmp-libraries="
208 (assoc-ref %build-inputs "gmp") "/lib")
209 (string-append "--with-gmp-includes="
210 (assoc-ref %build-inputs "gmp") "/include")
211 "--with-system-libffi"
212 (string-append "--with-ffi-libraries="
213 (assoc-ref %build-inputs "libffi") "/lib")
214 (string-append "--with-ffi-includes="
215 (assoc-ref %build-inputs "libffi") "/include"))
216 ;; FIXME: The user-guide needs dblatex, docbook-xsl and docbook-utils.
217 ;; Currently we do not have the last one.
218 ;; #:make-flags
219 ;; (list "BUILD_DOCBOOK_HTML = YES")
220 #:phases
221 (let* ((ghc-bootstrap-path
222 (string-append (getcwd) "/" ,name "-" ,version "/ghc-bin"))
223 (ghc-bootstrap-prefix
224 (string-append ghc-bootstrap-path "/usr" )))
225 (alist-cons-after
226 'unpack-bin 'unpack-testsuite-and-fix-bins
227 (lambda* (#:key inputs outputs #:allow-other-keys)
228 (with-directory-excursion ".."
229 (copy-file (assoc-ref inputs "ghc-testsuite")
230 "ghc-testsuite.tar.xz")
231 (system* "tar" "xvf" "ghc-testsuite.tar.xz"))
232 (substitute*
233 (list "testsuite/timeout/Makefile"
234 "testsuite/timeout/timeout.py"
235 "testsuite/timeout/timeout.hs"
236 "testsuite/tests/rename/prog006/Setup.lhs"
237 "testsuite/tests/programs/life_space_leak/life.test"
238 "libraries/process/System/Process/Internals.hs"
239 "libraries/unix/cbits/execvpe.c")
240 (("/bin/sh") (which "sh"))
241 (("/bin/rm") "rm"))
242 #t)
243 (alist-cons-after
244 'unpack 'unpack-bin
245 (lambda* (#:key inputs outputs #:allow-other-keys)
246 (mkdir-p ghc-bootstrap-prefix)
247 (with-directory-excursion ghc-bootstrap-path
248 (copy-file (assoc-ref inputs "ghc-binary")
249 "ghc-bin.tar.xz")
250 (zero? (system* "tar" "xvf" "ghc-bin.tar.xz"))))
251 (alist-cons-before
252 'install-bin 'configure-bin
253 (lambda* (#:key inputs outputs #:allow-other-keys)
254 (let* ((binaries
255 (list
256 "./utils/ghc-pwd/dist-install/build/tmp/ghc-pwd"
257 "./utils/hpc/dist-install/build/tmp/hpc"
258 "./utils/haddock/dist/build/tmp/haddock"
259 "./utils/hsc2hs/dist-install/build/tmp/hsc2hs"
260 "./utils/runghc/dist-install/build/tmp/runghc"
261 "./utils/ghc-cabal/dist-install/build/tmp/ghc-cabal"
262 "./utils/hp2ps/dist/build/tmp/hp2ps"
263 "./utils/ghc-pkg/dist-install/build/tmp/ghc-pkg"
264 "./utils/unlit/dist/build/tmp/unlit"
265 "./ghc/stage2/build/tmp/ghc-stage2"))
266 (gmp (assoc-ref inputs "gmp"))
267 (gmp-lib (string-append gmp "/lib"))
268 (gmp-include (string-append gmp "/include"))
269 (ncurses-lib
270 (string-append (assoc-ref inputs "ncurses") "/lib"))
271 (ld-so (string-append (assoc-ref inputs "libc")
272 ,(glibc-dynamic-linker)))
273 (libtinfo-dir
274 (string-append ghc-bootstrap-prefix
275 "/lib/ghc-7.8.4/terminfo-0.4.0.0")))
276 (with-directory-excursion
277 (string-append ghc-bootstrap-path "/ghc-7.8.4")
278 (setenv "CONFIG_SHELL" (which "bash"))
279 (setenv "LD_LIBRARY_PATH" gmp-lib)
280 ;; The binaries have "/lib64/ld-linux-x86-64.so.2" hardcoded.
281 (for-each
282 (cut system* "patchelf" "--set-interpreter" ld-so <>)
283 binaries)
284 ;; The binaries include a reference to libtinfo.so.5 which
285 ;; is a subset of libncurses.so.5. We create a symlink in a
286 ;; directory included in the bootstrap binaries rpath.
287 (mkdir-p libtinfo-dir)
288 (symlink
289 (string-append ncurses-lib "/libncursesw.so."
290 ;; Extract "6.0" from "6.0-20170930" if a
291 ;; dash-separated version tag exists.
292 ,(let* ((v (package-version ncurses))
293 (d (or (string-index v #\-)
294 (string-length v))))
295 (version-major+minor (string-take v d))))
296 (string-append libtinfo-dir "/libtinfo.so.5"))
297
298 (setenv "PATH"
299 (string-append (getenv "PATH") ":"
300 ghc-bootstrap-prefix "/bin"))
301 (system*
302 (string-append (getcwd) "/configure")
303 (string-append "--prefix=" ghc-bootstrap-prefix)
304 (string-append "--with-gmp-libraries=" gmp-lib)
305 (string-append "--with-gmp-includes=" gmp-include)))))
306 (alist-cons-before
307 'configure 'install-bin
308 (lambda* (#:key inputs outputs #:allow-other-keys)
309 (with-directory-excursion
310 (string-append ghc-bootstrap-path "/ghc-7.8.4")
311 (zero? (system* "make" "install"))))
312 %standard-phases)))))))
313 (native-search-paths (list (search-path-specification
314 (variable "GHC_PACKAGE_PATH")
315 (files (list
316 (string-append "lib/ghc-" version)))
317 (file-pattern ".*\\.conf\\.d$")
318 (file-type 'directory))))
319 (home-page "https://www.haskell.org/ghc")
320 (synopsis "The Glasgow Haskell Compiler")
321 (description
322 "The Glasgow Haskell Compiler (GHC) is a state-of-the-art compiler and
323 interactive environment for the functional language Haskell.")
324 (license license:bsd-3)))
325
326 (define-public ghc-8.0
327 (package
328 (name "ghc")
329 (version "8.0.2")
330 (source
331 (origin
332 (method url-fetch)
333 (uri (string-append "https://www.haskell.org/ghc/dist/"
334 version "/" name "-" version "-src.tar.xz"))
335 (sha256
336 (base32 "1c8qc4fhkycynk4g1f9hvk53dj6a1vvqi6bklqznns6hw59m8qhi"))
337 (patches
338 (search-patches
339 "ghc-dont-pass-linker-flags-via-response-files.patch"
340 "ghc-8.0-fall-back-to-madv_dontneed.patch"))))
341 (build-system gnu-build-system)
342 (supported-systems '("i686-linux" "x86_64-linux"))
343 (outputs '("out" "doc"))
344 (inputs
345 `(("gmp" ,gmp)
346 ("ncurses" ,ncurses)
347 ("libffi" ,libffi)
348 ("ghc-testsuite"
349 ,(origin
350 (method url-fetch)
351 (uri (string-append
352 "https://www.haskell.org/ghc/dist/"
353 version "/" name "-" version "-testsuite.tar.xz"))
354 (sha256
355 (base32 "1wjc3x68l305bl1h1ijd3yhqp2vqj83lkp3kqbr94qmmkqlms8sj"))))))
356 (native-inputs
357 `(("perl" ,perl)
358 ("python" ,python-2) ; for tests
359 ("ghostscript" ,ghostscript) ; for tests
360 ;; GHC is built with GHC.
361 ("ghc-bootstrap" ,ghc-7)))
362 (arguments
363 `(#:test-target "test"
364 ;; We get a smaller number of test failures by disabling parallel test
365 ;; execution.
366 #:parallel-tests? #f
367
368 ;; The DSOs use $ORIGIN to refer to each other, but (guix build
369 ;; gremlin) doesn't support it yet, so skip this phase.
370 #:validate-runpath? #f
371
372 ;; Don't pass --build=<triplet>, because the configure script
373 ;; auto-detects slightly different triplets for --host and --target and
374 ;; then complains that they don't match.
375 #:build #f
376
377 #:configure-flags
378 (list
379 (string-append "--with-gmp-libraries="
380 (assoc-ref %build-inputs "gmp") "/lib")
381 (string-append "--with-gmp-includes="
382 (assoc-ref %build-inputs "gmp") "/include")
383 "--with-system-libffi"
384 (string-append "--with-ffi-libraries="
385 (assoc-ref %build-inputs "libffi") "/lib")
386 (string-append "--with-ffi-includes="
387 (assoc-ref %build-inputs "libffi") "/include")
388 (string-append "--with-curses-libraries="
389 (assoc-ref %build-inputs "ncurses") "/lib")
390 (string-append "--with-curses-includes="
391 (assoc-ref %build-inputs "ncurses") "/include"))
392 #:phases
393 (modify-phases %standard-phases
394 (add-after 'unpack 'unpack-testsuite
395 (lambda* (#:key inputs #:allow-other-keys)
396 (with-directory-excursion ".."
397 (copy-file (assoc-ref inputs "ghc-testsuite")
398 "ghc-testsuite.tar.xz")
399 (zero? (system* "tar" "xvf" "ghc-testsuite.tar.xz")))))
400 (add-before 'build 'fix-lib-paths
401 (lambda _
402 (substitute*
403 (list "libraries/process/System/Process/Posix.hs"
404 "libraries/process/tests/process001.hs"
405 "libraries/process/tests/process002.hs"
406 "libraries/unix/cbits/execvpe.c")
407 (("/bin/sh") (which "sh"))
408 (("/bin/ls") (which "ls")))
409 #t))
410 (add-before 'build 'fix-environment
411 (lambda _
412 (unsetenv "GHC_PACKAGE_PATH")
413 (setenv "CONFIG_SHELL" (which "bash"))
414 #t))
415 (add-before 'check 'fix-testsuite
416 (lambda _
417 (substitute*
418 (list "testsuite/timeout/Makefile"
419 "testsuite/timeout/timeout.py"
420 "testsuite/timeout/timeout.hs"
421 "testsuite/tests/programs/life_space_leak/life.test")
422 (("/bin/sh") (which "sh"))
423 (("/bin/rm") "rm"))
424 #t)))))
425 (native-search-paths (list (search-path-specification
426 (variable "GHC_PACKAGE_PATH")
427 (files (list
428 (string-append "lib/ghc-" version)))
429 (file-pattern ".*\\.conf\\.d$")
430 (file-type 'directory))))
431 (home-page "https://www.haskell.org/ghc")
432 (synopsis "The Glasgow Haskell Compiler")
433 (description
434 "The Glasgow Haskell Compiler (GHC) is a state-of-the-art compiler and
435 interactive environment for the functional language Haskell.")
436 (license license:bsd-3)))
437
438 (define-public ghc-8
439 (package (inherit ghc-8.0)
440 (name "ghc")
441 (version "8.4.3")
442 (source
443 (origin
444 (method url-fetch)
445 (uri (string-append "https://www.haskell.org/ghc/dist/"
446 version "/" name "-" version "-src.tar.xz"))
447 (sha256
448 (base32 "1mk046vb561j75saz05rghhbkps46ym5aci4264dwc2qk3dayixf"))))
449 (inputs
450 `(("gmp" ,gmp)
451 ("ncurses" ,ncurses)
452 ("libffi" ,libffi)
453 ("target-binutils" ,binutils)
454 ("target-gcc" ,gcc)
455 ("target-ld-wrapper" ,(make-ld-wrapper "ld-wrapper"
456 #:binutils binutils))))
457 (native-inputs
458 `(("perl" ,perl)
459 ("python" ,python) ; for tests
460 ("ghostscript" ,ghostscript) ; for tests
461 ;; GHC 8.4.3 is built with GHC 8.
462 ("ghc-bootstrap" ,ghc-8.0)
463 ("ghc-testsuite"
464 ,(origin
465 (method url-fetch)
466 (uri (string-append
467 "https://www.haskell.org/ghc/dist/"
468 version "/" name "-" version "-testsuite.tar.xz"))
469 (sha256
470 (base32
471 "1z55b1z0m3plqd2d1ks6w5wvx7igm7zsk3i4v7cms003z0as0hzz"))))))
472 (arguments
473 `(#:test-target "test"
474 ;; We get a smaller number of test failures by disabling parallel test
475 ;; execution.
476 #:parallel-tests? #f
477
478 ;; The DSOs use $ORIGIN to refer to each other, but (guix build
479 ;; gremlin) doesn't support it yet, so skip this phase.
480 #:validate-runpath? #f
481
482 ;; Don't pass --build=<triplet>, because the configure script
483 ;; auto-detects slightly different triplets for --host and --target and
484 ;; then complains that they don't match.
485 #:build #f
486
487 #:configure-flags
488 (list
489 (string-append "--with-gmp-libraries="
490 (assoc-ref %build-inputs "gmp") "/lib")
491 (string-append "--with-gmp-includes="
492 (assoc-ref %build-inputs "gmp") "/include")
493 "--with-system-libffi"
494 (string-append "--with-ffi-libraries="
495 (assoc-ref %build-inputs "libffi") "/lib")
496 (string-append "--with-ffi-includes="
497 (assoc-ref %build-inputs "libffi") "/include")
498 (string-append "--with-curses-libraries="
499 (assoc-ref %build-inputs "ncurses") "/lib")
500 (string-append "--with-curses-includes="
501 (assoc-ref %build-inputs "ncurses") "/include"))
502 #:phases
503 (modify-phases %standard-phases
504 (add-after 'unpack 'unpack-testsuite
505 (lambda* (#:key inputs #:allow-other-keys)
506 (invoke "tar" "xvf"
507 (assoc-ref inputs "ghc-testsuite")
508 "--strip-components=1")
509 #t))
510 (add-after 'unpack-testsuite 'fix-shell-wrappers
511 (lambda _
512 (substitute* '("driver/ghci/ghc.mk"
513 "utils/mkdirhier/ghc.mk"
514 "rules/shell-wrapper.mk")
515 (("echo '#!/bin/sh'")
516 (format #f "echo '#!~a'" (which "sh"))))
517 #t))
518 ;; This is necessary because the configure system no longer uses
519 ;; “AC_PATH_” but “AC_CHECK_”, setting the variables to just the
520 ;; plain command names.
521 (add-before 'configure 'set-target-programs
522 (lambda* (#:key inputs #:allow-other-keys)
523 (let ((binutils (assoc-ref inputs "target-binutils"))
524 (gcc (assoc-ref inputs "target-gcc"))
525 (ld-wrapper (assoc-ref inputs "target-ld-wrapper")))
526 (setenv "CC" (string-append gcc "/bin/gcc"))
527 (setenv "CXX" (string-append gcc "/bin/g++"))
528 (setenv "LD" (string-append ld-wrapper "/bin/ld"))
529 (setenv "NM" (string-append binutils "/bin/nm"))
530 (setenv "RANLIB" (string-append binutils "/bin/ranlib"))
531 (setenv "STRIP" (string-append binutils "/bin/strip"))
532 ;; The 'ar' command does not follow the same pattern.
533 (setenv "fp_prog_ar" (string-append binutils "/bin/ar"))
534 #t)))
535 (add-before 'build 'fix-references
536 (lambda _
537 (substitute* '("testsuite/timeout/Makefile"
538 "testsuite/timeout/timeout.py"
539 "testsuite/timeout/timeout.hs"
540 "testsuite/tests/programs/life_space_leak/life.test"
541 ;; libraries
542 "libraries/process/System/Process/Posix.hs"
543 "libraries/process/tests/process001.hs"
544 "libraries/process/tests/process002.hs"
545 "libraries/unix/cbits/execvpe.c")
546 (("/bin/sh") (which "sh"))
547 (("/bin/ls") (which "ls"))
548 (("/bin/rm") "rm"))
549 #t))
550 (add-before 'build 'fix-environment
551 (lambda _
552 (unsetenv "GHC_PACKAGE_PATH")
553 (setenv "CONFIG_SHELL" (which "bash"))
554 #t)))))
555 (native-search-paths (list (search-path-specification
556 (variable "GHC_PACKAGE_PATH")
557 (files (list
558 (string-append "lib/ghc-" version)))
559 (file-pattern ".*\\.conf\\.d$")
560 (file-type 'directory))))))
561
562 (define-public ghc ghc-8)
563
564 (define-public ghc-hostname
565 (package
566 (name "ghc-hostname")
567 (version "1.0")
568 (source
569 (origin
570 (method url-fetch)
571 (uri (string-append "https://hackage.haskell.org/package/hostname/"
572 "hostname-" version ".tar.gz"))
573 (sha256
574 (base32
575 "0p6gm4328946qxc295zb6vhwhf07l1fma82vd0siylnsnsqxlhwv"))))
576 (build-system haskell-build-system)
577 (home-page "https://hackage.haskell.org/package/hostname")
578 (synopsis "Hostname in Haskell")
579 (description "Network.HostName is a simple package providing a means to
580 determine the hostname.")
581 (license license:bsd-3)))
582
583 (define-public ghc-convertible
584 (package
585 (name "ghc-convertible")
586 (version "1.1.1.0")
587 (source
588 (origin
589 (method url-fetch)
590 (uri (string-append "https://hackage.haskell.org/package/convertible/"
591 "convertible-" version ".tar.gz"))
592 (sha256
593 (base32
594 "0v18ap1mccnndgxmbfgyjdicg8jlss01bd5fq8a576dr0h4sgyg9"))))
595 (build-system haskell-build-system)
596 (inputs
597 `(("ghc-old-time" ,ghc-old-time)
598 ("ghc-old-locale" ,ghc-old-locale)
599 ("ghc-text" ,ghc-text)))
600 (home-page "https://hackage.haskell.org/package/convertible")
601 (synopsis "Typeclasses and instances for converting between types")
602 (description
603 "This package provides a typeclass with a single function that is
604 designed to help convert between different types: numeric values, dates and
605 times, and the like. The conversions perform bounds checking and return a
606 pure @code{Either} value. This means that you need not remember which specific
607 function performs the conversion you desire.")
608 (license license:bsd-3)))
609
610 (define-public ghc-double-conversion
611 (package
612 (name "ghc-double-conversion")
613 (version "2.0.2.0")
614 (source
615 (origin
616 (method url-fetch)
617 (uri (string-append "https://hackage.haskell.org/package/"
618 "double-conversion/double-conversion-"
619 version ".tar.gz"))
620 (sha256
621 (base32
622 "0sx2kc1gw72mjvd8vph8bbjw5whfxfv92rsdhjg1c0al75rf3ka4"))))
623 (build-system haskell-build-system)
624 (inputs `(("ghc-text" ,ghc-text)))
625 (native-inputs
626 `(("ghc-hunit" ,ghc-hunit)
627 ("ghc-test-framework" ,ghc-test-framework)
628 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
629 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
630 (home-page "https://github.com/bos/double-conversion")
631 (synopsis "Fast conversion between double precision floating point and text")
632 (description
633 "This package provides a library that performs fast, accurate conversion
634 between double precision floating point and text.")
635 (license license:bsd-3)))
636
637 (define-public ghc-libxml
638 (package
639 (name "ghc-libxml")
640 (version "0.1.1")
641 (source
642 (origin
643 (method url-fetch)
644 (uri (string-append "https://hackage.haskell.org/package/libxml/"
645 "libxml-" version ".tar.gz"))
646 (sha256
647 (base32
648 "01zvk86kg726lf2vnlr7dxiz7g3xwi5a4ak9gcfbwyhynkzjmsfi"))))
649 (build-system haskell-build-system)
650 (inputs
651 `(("libxml2" ,libxml2)))
652 (arguments
653 `(#:configure-flags
654 `(,(string-append "--extra-include-dirs="
655 (assoc-ref %build-inputs "libxml2")
656 "/include/libxml2"))))
657 (home-page "https://hackage.haskell.org/package/libxml")
658 (synopsis "Haskell bindings to libxml2")
659 (description
660 "This library provides minimal Haskell binding to libxml2.")
661 (license license:bsd-3)))
662
663 (define-public ghc-prelude-extras
664 (package
665 (name "ghc-prelude-extras")
666 (version "0.4.0.3")
667 (source
668 (origin
669 (method url-fetch)
670 (uri (string-append
671 "https://hackage.haskell.org/package/prelude-extras/prelude-extras-"
672 version
673 ".tar.gz"))
674 (sha256
675 (base32
676 "0xzqdf3nl2h0ra4gnslm1m1nsxlsgc0hh6ky3vn578vh11zhifq9"))))
677 (build-system haskell-build-system)
678 (home-page "https://github.com/ekmett/prelude-extras")
679 (synopsis "Higher order versions of Prelude classes")
680 (description "This library provides higher order versions of
681 @code{Prelude} classes to ease programming with polymorphic recursion and
682 reduce @code{UndecidableInstances}.")
683 (license license:bsd-3)))
684
685 (define-public ghc-data-default
686 (package
687 (name "ghc-data-default")
688 (version "0.7.1.1")
689 (source
690 (origin
691 (method url-fetch)
692 (uri (string-append
693 "https://hackage.haskell.org/package/data-default/data-default-"
694 version
695 ".tar.gz"))
696 (sha256
697 (base32 "04d5n8ybmcxba9qb6h389w9zfq1lvj81b82jh6maqp6pkhkmvydh"))))
698 (build-system haskell-build-system)
699 (inputs
700 `(("ghc-data-default-class"
701 ,ghc-data-default-class)
702 ("ghc-data-default-instances-base"
703 ,ghc-data-default-instances-base)
704 ("ghc-data-default-instances-containers"
705 ,ghc-data-default-instances-containers)
706 ("ghc-data-default-instances-dlist"
707 ,ghc-data-default-instances-dlist)
708 ("ghc-data-default-instances-old-locale"
709 ,ghc-data-default-instances-old-locale)))
710 (home-page "https://hackage.haskell.org/package/data-default")
711 (synopsis "Types with default values")
712 (description
713 "This package defines a class for types with a default value, and
714 provides instances for types from the base, containers, dlist and old-locale
715 packages.")
716 (license license:bsd-3)))
717
718 (define-public ghc-data-default-class
719 (package
720 (name "ghc-data-default-class")
721 (version "0.1.2.0")
722 (source
723 (origin
724 (method url-fetch)
725 (uri (string-append
726 "https://hackage.haskell.org/package/data-default-class/"
727 "data-default-class-" version ".tar.gz"))
728 (sha256
729 (base32 "0miyjz8d4jyvqf2vp60lyfbnflx6cj2k8apmm9ly1hq0y0iv80ag"))))
730 (build-system haskell-build-system)
731 (home-page "https://hackage.haskell.org/package/data-default-class")
732 (synopsis "Types with default values")
733 (description
734 "This package defines a class for types with default values.")
735 (license license:bsd-3)))
736
737 (define-public ghc-data-default-instances-base
738 (package
739 (name "ghc-data-default-instances-base")
740 (version "0.1.0.1")
741 (source
742 (origin
743 (method url-fetch)
744 (uri (string-append
745 "https://hackage.haskell.org/package/"
746 "data-default-instances-base/"
747 "data-default-instances-base-" version ".tar.gz"))
748 (sha256
749 (base32 "0ym1sw3ssdzzifxxhh76qlv8kkmb2iclc158incv1dklyr9y8kw4"))))
750 (build-system haskell-build-system)
751 (inputs
752 `(("ghc-data-default-class" ,ghc-data-default-class)))
753 (home-page "https://hackage.haskell.org/package/data-default-instances-base")
754 (synopsis "Default instances for types in base")
755 (description
756 "This package provides default instances for types from the base
757 package.")
758 (license license:bsd-3)))
759
760 (define-public ghc-data-default-instances-containers
761 (package
762 (name "ghc-data-default-instances-containers")
763 (version "0.0.1")
764 (source
765 (origin
766 (method url-fetch)
767 (uri (string-append
768 "https://hackage.haskell.org/package/"
769 "data-default-instances-containers/"
770 "data-default-instances-containers-" version ".tar.gz"))
771 (sha256
772 (base32 "06h8xka031w752a7cjlzghvr8adqbl95xj9z5zc1b62w02phfpm5"))))
773 (build-system haskell-build-system)
774 (inputs
775 `(("ghc-data-default-class" ,ghc-data-default-class)))
776 (home-page "https://hackage.haskell.org/package/data-default-instances-containers")
777 (synopsis "Default instances for types in containers")
778 (description "Provides default instances for types from the containers
779 package.")
780 (license license:bsd-3)))
781
782 (define-public ghc-data-default-instances-dlist
783 (package
784 (name "ghc-data-default-instances-dlist")
785 (version "0.0.1")
786 (source
787 (origin
788 (method url-fetch)
789 (uri (string-append
790 "https://hackage.haskell.org/package/"
791 "data-default-instances-dlist/"
792 "data-default-instances-dlist-" version ".tar.gz"))
793 (sha256
794 (base32 "0narkdqiprhgayjiawrr4390h4rq4pl2pb6mvixbv2phrc8kfs3x"))))
795 (build-system haskell-build-system)
796 (inputs
797 `(("ghc-data-default-class" ,ghc-data-default-class)
798 ("ghc-dlist" ,ghc-dlist)))
799 (home-page "https://hackage.haskell.org/package/data-default-instances-dlist")
800 (synopsis "Default instances for types in dlist")
801 (description "Provides default instances for types from the dlist
802 package.")
803 (license license:bsd-3)))
804
805 (define-public ghc-code-page
806 (package
807 (name "ghc-code-page")
808 (version "0.1.3")
809 (source
810 (origin
811 (method url-fetch)
812 (uri (string-append
813 "https://hackage.haskell.org/package/code-page/code-page-"
814 version ".tar.gz"))
815 (sha256
816 (base32
817 "1491frk4jx6dlhifky9dvcxbsbcfssrz979a5hp5zn061rh8cp76"))))
818 (build-system haskell-build-system)
819 (home-page "https://github.com/RyanGlScott/code-page")
820 (synopsis "Windows code page library for Haskell")
821 (description "A cross-platform library with functions for adjusting
822 code pages on Windows. On all other operating systems, the library does
823 nothing.")
824 (license license:bsd-3)))
825
826 (define-public ghc-haddock-library
827 (package
828 (name "ghc-haddock-library")
829 (version "1.4.3")
830 (source
831 (origin
832 (method url-fetch)
833 (uri (string-append
834 "https://hackage.haskell.org/package/haddock-library/haddock-library-"
835 version
836 ".tar.gz"))
837 (sha256
838 (base32
839 "0ns4bpf6whmcfl0cm2gx2c73if416x4q3ac4l4qm8w84h0zpcr7p"))))
840 (build-system haskell-build-system)
841 (inputs
842 `(("ghc-base-compat" ,ghc-base-compat)))
843 (native-inputs
844 `(("hspec-discover" ,hspec-discover)
845 ("ghc-hspec" ,ghc-hspec)
846 ("ghc-quickcheck" ,ghc-quickcheck)))
847 (home-page "https://www.haskell.org/haddock/")
848 (synopsis "Library exposing some functionality of Haddock")
849 (description
850 "Haddock is a documentation-generation tool for Haskell libraries. These
851 modules expose some functionality of it without pulling in the GHC dependency.
852 Please note that the API is likely to change so specify upper bounds in your
853 project if you can't release often. For interacting with Haddock itself, see
854 the ‘haddock’ package.")
855 (license license:bsd-3)))
856
857 (define-public ghc-haddock-api
858 (package
859 (name "ghc-haddock-api")
860 ;; This is the last version to be supported by Cabal < 2.0
861 (version "2.17.4")
862 (source
863 (origin
864 (method url-fetch)
865 (uri (string-append
866 "https://hackage.haskell.org/package/haddock-api/haddock-api-"
867 version
868 ".tar.gz"))
869 (sha256
870 (base32
871 "00fn6pzgg8xjbaw12d76jdqh2dbc5xy7miyz0x6kidvvar7i35ss"))))
872 (build-system haskell-build-system)
873 (inputs
874 `(("ghc-paths" ,ghc-paths)
875 ("ghc-haddock-library" ,ghc-haddock-library)))
876 (native-inputs
877 `(("ghc-quickcheck" ,ghc-quickcheck)
878 ("ghc-hspec" ,ghc-hspec)
879 ("hspec-discover" ,hspec-discover)))
880 (home-page "https://www.haskell.org/haddock/")
881 (synopsis "API for documentation-generation tool Haddock")
882 (description "This package provides an API to Haddock, the
883 documentation-generation tool for Haskell libraries.")
884 (license license:bsd-3)))
885
886 (define-public ghc-haddock-test
887 (package
888 (name "ghc-haddock-test")
889 (version "0.0.1")
890 (source
891 (origin
892 (method url-fetch)
893 (uri (string-append "https://hackage.haskell.org/package/"
894 "haddock-test/haddock-test-"
895 version ".tar.gz"))
896 (sha256
897 (base32
898 "1ax8fnfrwx66csj952f3virxzapipan9da7z5l1zc12nqkifbs7w"))))
899 (build-system haskell-build-system)
900 (inputs
901 `(("ghc-xml" ,ghc-xml)
902 ("ghc-syb" ,ghc-syb)))
903 (home-page "http://www.haskell.org/haddock/")
904 (synopsis "Test utilities for Haddock")
905 (description "This package provides test utilities for Haddock.")
906 (license license:bsd-3)))
907
908 (define-public ghc-haddock
909 (package
910 (name "ghc-haddock")
911 (version "2.17.4")
912 (source
913 (origin
914 (method url-fetch)
915 (uri (string-append
916 "https://hackage.haskell.org/package/haddock/haddock-"
917 version
918 ".tar.gz"))
919 (sha256
920 (base32
921 "1z3h3v7w84dzsm47iavdppc2w899mr4c1agq9fzghgz902i0a655"))))
922 (build-system haskell-build-system)
923 ;; FIXME: Tests fail with this error:
924 ;; driver-test/Main.hs:4:1: error:
925 ;; Failed to load interface for ‘ResponseFileSpec’
926 (arguments `(#:tests? #f))
927 (inputs `(("ghc-haddock-api" ,ghc-haddock-api)))
928 (native-inputs
929 `(("ghc-hspec" ,ghc-hspec)
930 ("ghc-haddock-test" ,ghc-haddock-test)))
931 (home-page "https://www.haskell.org/haddock/")
932 (synopsis
933 "Documentation-generation tool for Haskell libraries")
934 (description
935 "Haddock is a documentation-generation tool for Haskell libraries.")
936 (license license:bsd-3)))
937
938 (define-public ghc-simple-reflect
939 (package
940 (name "ghc-simple-reflect")
941 (version "0.3.3")
942 (source
943 (origin
944 (method url-fetch)
945 (uri (string-append
946 "https://hackage.haskell.org/package/simple-reflect/simple-reflect-"
947 version
948 ".tar.gz"))
949 (sha256
950 (base32
951 "0ayvrx5cm8n6db21jiyjmk5h93pw7cz1707hih09hlhk9jh5x0h7"))))
952 (build-system haskell-build-system)
953 (home-page
954 "https://twanvl.nl/blog/haskell/simple-reflection-of-expressions")
955 (synopsis
956 "Simple reflection of expressions containing variables")
957 (description
958 "This package allows simple reflection of expressions containing
959 variables. Reflection here means that a Haskell expression is turned into a
960 string. The primary aim of this package is teaching and understanding; there
961 are no options for manipulating the reflected expressions beyond showing
962 them.")
963 (license license:bsd-3)))
964
965 (define-public ghc-haskell-src
966 (package
967 (name "ghc-haskell-src")
968 (version "1.0.3.0")
969 (source
970 (origin
971 (method url-fetch)
972 (uri (string-append
973 "https://hackage.haskell.org/package/haskell-src/haskell-src-"
974 version
975 ".tar.gz"))
976 (sha256
977 (base32
978 "1g4dj1f0j68bhn4ixfac63wjzy6gsp6kwgxryb1k5nl3i0g99d5l"))))
979 (build-system haskell-build-system)
980 (inputs
981 `(("ghc-happy" ,ghc-happy)
982 ("ghc-syb" ,ghc-syb)))
983 (home-page
984 "https://hackage.haskell.org/package/haskell-src")
985 (synopsis
986 "Support for manipulating Haskell source code")
987 (description
988 "The 'haskell-src' package provides support for manipulating Haskell
989 source code. The package provides a lexer, parser and pretty-printer, and a
990 definition of a Haskell abstract syntax tree (AST). Common uses of this
991 package are to parse or generate Haskell 98 code.")
992 (license license:bsd-3)))
993
994 (define-public ghc-alex
995 (package
996 (name "ghc-alex")
997 (version "3.2.4")
998 (source
999 (origin
1000 (method url-fetch)
1001 (uri (string-append
1002 "https://hackage.haskell.org/package/alex/alex-"
1003 version
1004 ".tar.gz"))
1005 (sha256
1006 (base32
1007 "0cpjixgsr0b2x4s6hz4aa6gnmjw9i7xd9nlfi8m37zqlidq4v3nm"))))
1008 (build-system haskell-build-system)
1009 (arguments
1010 `(#:phases
1011 (modify-phases %standard-phases
1012 (add-before 'check 'set-check-variables
1013 (lambda _
1014 (setenv "PATH" (string-append (getcwd) "/dist/build/alex:"
1015 (getenv "PATH")))
1016 (setenv "alex_datadir" (string-append (getcwd) "/data"))
1017 #t)))))
1018 (inputs `(("ghc-quickcheck" ,ghc-quickcheck)))
1019 (native-inputs
1020 `(("which" ,which)))
1021 (home-page "https://www.haskell.org/alex/")
1022 (synopsis
1023 "Tool for generating lexical analysers in Haskell")
1024 (description
1025 "Alex is a tool for generating lexical analysers in Haskell. It takes a
1026 description of tokens based on regular expressions and generates a Haskell
1027 module containing code for scanning text efficiently. It is similar to the
1028 tool lex or flex for C/C++.")
1029 (license license:bsd-3)))
1030
1031 (define-public ghc-cgi
1032 (package
1033 (name "ghc-cgi")
1034 (version "3001.3.0.2")
1035 (source
1036 (origin
1037 (method url-fetch)
1038 (uri (string-append
1039 "https://hackage.haskell.org/package/cgi/cgi-"
1040 version
1041 ".tar.gz"))
1042 (sha256
1043 (base32
1044 "1hbpplss1m4rdpm4ibip6fpimlhssqa14fl338kl2jbc463i64cj"))))
1045 (build-system haskell-build-system)
1046 (arguments
1047 `(#:configure-flags (list "--allow-newer=QuickCheck")))
1048 (inputs
1049 `(("ghc-parsec" ,ghc-parsec)
1050 ("ghc-exceptions" ,ghc-exceptions)
1051 ("ghc-multipart" ,ghc-multipart)
1052 ("ghc-network-uri" ,ghc-network-uri)
1053 ("ghc-network" ,ghc-network)))
1054 (native-inputs
1055 `(("ghc-doctest" ,ghc-doctest)
1056 ("ghc-quickcheck" ,ghc-quickcheck)))
1057 (home-page
1058 "https://github.com/cheecheeo/haskell-cgi")
1059 (synopsis "Library for writing CGI programs")
1060 (description
1061 "This is a Haskell library for writing CGI programs.")
1062 (license license:bsd-3)))
1063
1064 (define-public ghc-cmdargs
1065 (package
1066 (name "ghc-cmdargs")
1067 (version "0.10.20")
1068 (source
1069 (origin
1070 (method url-fetch)
1071 (uri (string-append
1072 "https://hackage.haskell.org/package/cmdargs/cmdargs-"
1073 version ".tar.gz"))
1074 (sha256
1075 (base32
1076 "0cbkmgrcnwgigg6z88y3c09gm7g6dwm7gzbgr53h8k1xik29s9hf"))))
1077 (build-system haskell-build-system)
1078 (home-page
1079 "http://community.haskell.org/~ndm/cmdargs/")
1080 (synopsis "Command line argument processing")
1081 (description
1082 "This library provides an easy way to define command line parsers.")
1083 (license license:bsd-3)))
1084
1085 (define-public ghc-concatenative
1086 (package
1087 (name "ghc-concatenative")
1088 (version "1.0.1")
1089 (source (origin
1090 (method url-fetch)
1091 (uri (string-append
1092 "https://hackage.haskell.org/package/concatenative/concatenative-"
1093 version ".tar.gz"))
1094 (sha256
1095 (base32
1096 "05xwqvcdnk8bsyj698ab9jxpa1nk23pf3m7wi9mwmw0q8n99fngd"))))
1097 (build-system haskell-build-system)
1098 (home-page
1099 "https://patch-tag.com/r/salazar/concatenative/snapshot/current/content/pretty")
1100 (synopsis "Library for postfix control flow")
1101 (description
1102 "Concatenative gives Haskell Factor-style combinators and arrows for
1103 postfix notation. For more information on stack based languages, see
1104 @uref{https://concatenative.org}.")
1105 (license license:bsd-3)))
1106
1107 (define-public ghc-happy
1108 (package
1109 (name "ghc-happy")
1110 (version "1.19.9")
1111 (source
1112 (origin
1113 (method url-fetch)
1114 (uri (string-append
1115 "https://hackage.haskell.org/package/happy/happy-"
1116 version
1117 ".tar.gz"))
1118 (sha256
1119 (base32
1120 "138xpxdb7x62lpmgmb6b3v3vgdqqvqn4273jaap3mjmc2gla709y"))))
1121 (build-system haskell-build-system)
1122 (home-page "https://hackage.haskell.org/package/happy")
1123 (synopsis "Parser generator for Haskell")
1124 (description "Happy is a parser generator for Haskell. Given a grammar
1125 specification in BNF, Happy generates Haskell code to parse the grammar.
1126 Happy works in a similar way to the yacc tool for C.")
1127 (license license:bsd-3)))
1128
1129 (define-public ghc-haskell-lexer
1130 (package
1131 (name "ghc-haskell-lexer")
1132 (version "1.0.1")
1133 (source
1134 (origin
1135 (method url-fetch)
1136 (uri (string-append
1137 "https://hackage.haskell.org/package/haskell-lexer/haskell-lexer-"
1138 version ".tar.gz"))
1139 (sha256
1140 (base32
1141 "0rj3r1pk88hh3sk3mj61whp8czz5kpxhbc78xlr04bxwqjrjmm6p"))))
1142 (build-system haskell-build-system)
1143 (home-page "http://hackage.haskell.org/package/haskell-lexer")
1144 (synopsis "Fully compliant Haskell 98 lexer")
1145 (description
1146 "This package provides a fully compliant Haskell 98 lexer.")
1147 (license license:bsd-3)))
1148
1149 (define-public ghc-pretty-show
1150 (package
1151 (name "ghc-pretty-show")
1152 (version "1.7")
1153 (source
1154 (origin
1155 (method url-fetch)
1156 (uri (string-append "https://hackage.haskell.org/package/pretty-show/"
1157 "pretty-show-" version ".tar.gz"))
1158 (sha256
1159 (base32
1160 "0br7pkxqqqhby2j2v1g847lgqsrasx56g1jw3dhmjh4flzs6warq"))))
1161 (build-system haskell-build-system)
1162 (inputs
1163 `(("ghc-haskell-lexer" ,ghc-haskell-lexer)
1164 ("ghc-happy" ,ghc-happy)))
1165 (home-page "http://wiki.github.com/yav/pretty-show")
1166 (synopsis "Tools for working with derived `Show` instances")
1167 (description
1168 "This package provides a library and an executable for working with
1169 derived @code{Show} instances. By using the library, derived @code{Show}
1170 instances can be parsed into a generic data structure. The @code{ppsh} tool
1171 uses the library to produce human-readable versions of @code{Show} instances,
1172 which can be quite handy for debugging Haskell programs. We can also render
1173 complex generic values into an interactive Html page, for easier
1174 examination.")
1175 (license license:expat)))
1176
1177 (define-public ghc-pretty-show-for-haskell-src-exts
1178 (package (inherit ghc-pretty-show)
1179 (name "ghc-pretty-show")
1180 (version "1.6.10")
1181 (source
1182 (origin
1183 (method url-fetch)
1184 (uri (string-append "https://hackage.haskell.org/package/pretty-show/"
1185 "pretty-show-" version ".tar.gz"))
1186 (sha256
1187 (base32
1188 "133s4l1gk46saf6ycm785rswycy8g3j0qqrv93b5wp8cp50kd0ww"))))))
1189
1190 (define-public ghc-haskell-src-exts
1191 (package
1192 (name "ghc-haskell-src-exts")
1193 (version "1.20.1")
1194 (source
1195 (origin
1196 (method url-fetch)
1197 (uri (string-append
1198 "https://hackage.haskell.org/package/haskell-src-exts/haskell-src-exts-"
1199 version
1200 ".tar.gz"))
1201 (sha256
1202 (base32
1203 "1jsjl9hja2dpcfq4mzlfpwyr6axwnwgacfb7aa070kz4lbygzaa8"))))
1204 (build-system haskell-build-system)
1205 (inputs
1206 `(("cpphs" ,cpphs)
1207 ("ghc-happy" ,ghc-happy)
1208 ("ghc-pretty-show" ,ghc-pretty-show-for-haskell-src-exts)))
1209 (native-inputs
1210 `(("ghc-smallcheck" ,ghc-smallcheck)
1211 ("ghc-tasty" ,ghc-tasty)
1212 ("ghc-tasty-smallcheck" ,ghc-tasty-smallcheck)
1213 ("ghc-tasty-golden" ,ghc-tasty-golden)))
1214 (home-page "https://github.com/haskell-suite/haskell-src-exts")
1215 (synopsis "Library for manipulating Haskell source")
1216 (description "Haskell-Source with Extensions (HSE, haskell-src-exts) is an
1217 extension of the standard @code{haskell-src} package, and handles most
1218 registered syntactic extensions to Haskell. All extensions implemented in GHC
1219 are supported. Apart from these standard extensions, it also handles regular
1220 patterns as per the HaRP extension as well as HSX-style embedded XML syntax.")
1221 (license license:bsd-3)))
1222
1223 (define-public ghc-haskell-src-exts-util
1224 (package
1225 (name "ghc-haskell-src-exts-util")
1226 (version "0.2.2")
1227 (source
1228 (origin
1229 (method url-fetch)
1230 (uri (string-append "https://hackage.haskell.org/package/"
1231 "haskell-src-exts-util/haskell-src-exts-util-"
1232 version ".tar.gz"))
1233 (sha256
1234 (base32
1235 "14rhwcrdz3kfb69c64qn8kybl7wnpajrjlfz5p95ca4bva4mwclg"))))
1236 (build-system haskell-build-system)
1237 (inputs
1238 `(("ghc-data-default" ,ghc-data-default)
1239 ("ghc-haskell-src-exts" ,ghc-haskell-src-exts)
1240 ("ghc-semigroups" ,ghc-semigroups)
1241 ("ghc-uniplate" ,ghc-uniplate)))
1242 (home-page "https://github.com/pepeiborra/haskell-src-exts-util")
1243 (synopsis "Helper functions for working with haskell-src-exts trees")
1244 (description
1245 "This package provides helper functions for working with
1246 @code{haskell-src-exts} trees.")
1247 (license license:bsd-3)))
1248
1249 (define-public ghc-refact
1250 (package
1251 (name "ghc-refact")
1252 (version "0.3.0.2")
1253 (source
1254 (origin
1255 (method url-fetch)
1256 (uri (string-append "https://hackage.haskell.org/package/"
1257 "refact/refact-"
1258 version ".tar.gz"))
1259 (sha256
1260 (base32
1261 "0v0zxcx29b8jxs2kgy9csykqcp8kzhdvyylw2xfwmj4pfxr2kl0a"))))
1262 (build-system haskell-build-system)
1263 (home-page "http://hackage.haskell.org/package/refact")
1264 (synopsis "Specify refactorings to perform with apply-refact")
1265 (description
1266 "This library provides a datatype which can be interpreted by
1267 @code{apply-refact}. It exists as a separate library so that applications can
1268 specify refactorings without depending on GHC.")
1269 (license license:bsd-3)))
1270
1271 (define-public hlint
1272 (package
1273 (name "hlint")
1274 (version "2.1.1")
1275 (source
1276 (origin
1277 (method url-fetch)
1278 (uri (string-append
1279 "https://hackage.haskell.org/package/" name
1280 "/" name "-" version ".tar.gz"))
1281 (sha256
1282 (base32
1283 "0mmfavd158l5ig5wb1b1zbhbraj8hhqvbk4mg85n6c8ndpr4grd4"))))
1284 (build-system haskell-build-system)
1285 (inputs
1286 `(("cpphs" ,cpphs)
1287 ("ghc-unordered-containers" ,ghc-unordered-containers)
1288 ("ghc-yaml" ,ghc-yaml)
1289 ("ghc-vector" ,ghc-vector)
1290 ("ghc-text" ,ghc-text)
1291 ("ghc-data-default" ,ghc-data-default)
1292 ("ghc-cmdargs" ,ghc-cmdargs)
1293 ("ghc-haskell-src-exts" ,ghc-haskell-src-exts)
1294 ("ghc-haskell-src-exts-util" ,ghc-haskell-src-exts-util)
1295 ("ghc-uniplate" ,ghc-uniplate)
1296 ("ghc-ansi-terminal" ,ghc-ansi-terminal)
1297 ("ghc-extra" ,ghc-extra)
1298 ("ghc-refact" ,ghc-refact)
1299 ("ghc-aeson" ,ghc-aeson)
1300 ("hscolour" ,hscolour)))
1301 (home-page "http://community.haskell.org/~ndm/hlint/")
1302 (synopsis "Suggest improvements for Haskell source code")
1303 (description "HLint reads Haskell programs and suggests changes that
1304 hopefully make them easier to read. HLint also makes it easy to disable
1305 unwanted suggestions, and to add your own custom suggestions.")
1306 (license license:bsd-3)))
1307
1308 (define-public ghc-resourcet
1309 (package
1310 (name "ghc-resourcet")
1311 (version "1.2.1")
1312 (source
1313 (origin
1314 (method url-fetch)
1315 (uri (string-append "https://hackage.haskell.org/package/resourcet/"
1316 "resourcet-" version ".tar.gz"))
1317 (sha256
1318 (base32
1319 "0rzjzh34s36ssign7akqjnwnjxf11c3511wk7ky0xxy0dqmc2rg7"))))
1320 (build-system haskell-build-system)
1321 (inputs
1322 `(("ghc-transformers-base" ,ghc-transformers-base)
1323 ("ghc-monad-control" ,ghc-monad-control)
1324 ("ghc-transformers-compat" ,ghc-transformers-compat)
1325 ("ghc-mmorph" ,ghc-mmorph)
1326 ("ghc-exceptions" ,ghc-exceptions)
1327 ("ghc-unliftio-core" ,ghc-unliftio-core)))
1328 (native-inputs
1329 `(("ghc-lifted-base" ,ghc-lifted-base)
1330 ("ghc-hspec" ,ghc-hspec)))
1331 (home-page "https://github.com/snoyberg/conduit")
1332 (synopsis "Deterministic allocation and freeing of scarce resources")
1333 (description "ResourceT is a monad transformer which creates a region of
1334 code where you can safely allocate resources.")
1335 (license license:bsd-3)))
1336
1337 (define-public ghc-objectname
1338 (package
1339 (name "ghc-objectname")
1340 (version "1.1.0.1")
1341 (source
1342 (origin
1343 (method url-fetch)
1344 (uri (string-append
1345 "https://hackage.haskell.org/package/ObjectName/ObjectName-"
1346 version
1347 ".tar.gz"))
1348 (sha256
1349 (base32
1350 "046jm94rmm46cicd31pl54vdvfjvhd9ffbfycy2lxzc0fliyznvj"))))
1351 (build-system haskell-build-system)
1352 (home-page "https://hackage.haskell.org/package/ObjectName")
1353 (synopsis "Helper library for Haskell OpenGL")
1354 (description "This tiny package contains the class ObjectName, which
1355 corresponds to the general notion of explicitly handled identifiers for API
1356 objects, e.g. a texture object name in OpenGL or a buffer object name in
1357 OpenAL.")
1358 (license license:bsd-3)))
1359
1360 (define-public ghc-sdl
1361 (package
1362 (name "ghc-sdl")
1363 (version "0.6.7.0")
1364 (source
1365 (origin
1366 (method url-fetch)
1367 (uri (string-append
1368 "https://hackage.haskell.org/package/SDL/SDL-"
1369 version
1370 ".tar.gz"))
1371 (sha256
1372 (base32
1373 "00y67v80a8l09i3k76z09lg25kw72ivl09nag8ckdlk4a0cfnzfq"))))
1374 (build-system haskell-build-system)
1375 (inputs
1376 `(("sdl" ,sdl)))
1377 (home-page "https://hackage.haskell.org/package/SDL")
1378 (synopsis "LibSDL for Haskell")
1379 (description "Simple DirectMedia Layer (libSDL) is a cross-platform
1380 multimedia library designed to provide low level access to audio, keyboard,
1381 mouse, joystick, 3D hardware via OpenGL, and 2D video framebuffer. It is used
1382 by MPEG playback software, emulators, and many popular games, including the
1383 award winning Linux port of \"Civilization: Call To Power.\"")
1384 (license license:bsd-3)))
1385
1386 (define-public ghc-sdl-mixer
1387 (package
1388 (name "ghc-sdl-mixer")
1389 (version "0.6.3.0")
1390 (source
1391 (origin
1392 (method url-fetch)
1393 (uri (string-append
1394 "https://hackage.haskell.org/package/SDL-mixer/SDL-mixer-"
1395 version
1396 ".tar.gz"))
1397 (sha256
1398 (base32
1399 "0k26hqgdh789ka3mv4dsk6rin6x6vwcs6hjmnsqq7j3mnrh1342r"))))
1400 (build-system haskell-build-system)
1401 (arguments
1402 `(#:configure-flags
1403 (let* ((sdl-mixer (assoc-ref %build-inputs "sdl-mixer"))
1404 (sdl-mixer-include (string-append sdl-mixer "/include/SDL")))
1405 (list (string-append "--extra-include-dirs=" sdl-mixer-include)))))
1406 (inputs
1407 `(("ghc-sdl" ,ghc-sdl)
1408 ("sdl-mixer" ,sdl-mixer)))
1409 (home-page "https://hackage.haskell.org/package/SDL-mixer")
1410 (synopsis "Haskell bindings to libSDL_mixer")
1411 (description "SDL_mixer is a sample multi-channel audio mixer library. It
1412 supports any number of simultaneously playing channels of 16 bit stereo audio,
1413 plus a single channel of music, mixed by the popular MikMod MOD, Timidity
1414 MIDI, Ogg Vorbis, and SMPEG MP3 libraries.")
1415 (license license:bsd-3)))
1416
1417 (define-public ghc-sdl-image
1418 (package
1419 (name "ghc-sdl-image")
1420 (version "0.6.2.0")
1421 (source
1422 (origin
1423 (method url-fetch)
1424 (uri (string-append
1425 "https://hackage.haskell.org/package/SDL-image/SDL-image-"
1426 version
1427 ".tar.gz"))
1428 (sha256
1429 (base32
1430 "1gxwrvswgwjw6g7ym52gik22l9l3ljy592phv97jdmcf3gi6qcg1"))))
1431 (build-system haskell-build-system)
1432 (arguments
1433 `(#:configure-flags
1434 (let* ((sdl-image (assoc-ref %build-inputs "sdl-image"))
1435 (sdl-image-include (string-append sdl-image "/include/SDL")))
1436 (list (string-append "--extra-include-dirs=" sdl-image-include)))))
1437 (inputs
1438 `(("ghc-sdl" ,ghc-sdl)
1439 ("sdl-image" ,sdl-image)))
1440 (home-page "https://hackage.haskell.org/package/SDL-image")
1441 (synopsis "Haskell bindings to libSDL_image")
1442 (description "SDL_image is an image file loading library. It loads images
1443 as SDL surfaces, and supports the following formats: BMP, GIF, JPEG, LBM, PCX,
1444 PNG, PNM, TGA, TIFF, XCF, XPM, XV.")
1445 (license license:bsd-3)))
1446
1447 (define-public ghc-half
1448 (package
1449 (name "ghc-half")
1450 (version "0.2.2.3")
1451 (source
1452 (origin
1453 (method url-fetch)
1454 (uri (string-append
1455 "https://hackage.haskell.org/package/half/half-"
1456 version ".tar.gz"))
1457 (sha256
1458 (base32
1459 "0p4sb7vv9cljv48wlx65wgdnkryrk5d6yfh7g4yrm20w1p449hl5"))))
1460 (build-system haskell-build-system)
1461 (home-page "https://github.com/ekmett/half")
1462 (synopsis "Half-precision floating-point computations")
1463 (description "This library provides a half-precision floating-point
1464 computation library for Haskell.")
1465 (license license:bsd-3)))
1466
1467 (define-public ghc-fixed
1468 (package
1469 (name "ghc-fixed")
1470 (version "0.2.1.1")
1471 (source
1472 (origin
1473 (method url-fetch)
1474 (uri (string-append "https://hackage.haskell.org/package/fixed/fixed-"
1475 version ".tar.gz"))
1476 (sha256
1477 (base32
1478 "1qhmwx8iqshns0crmr9d2f8hm65jxbcp3dvv0c39v34ra7if3a94"))))
1479 (build-system haskell-build-system)
1480 (home-page "https://github.com/ekmett/fixed")
1481 (synopsis "Signed 15.16 precision fixed point arithmetic")
1482 (description
1483 "This package provides functions for signed 15.16 precision fixed point
1484 arithmetic.")
1485 (license license:bsd-3)))
1486
1487 (define-public ghc-openglraw
1488 (package
1489 (name "ghc-openglraw")
1490 (version "3.2.7.0")
1491 (source
1492 (origin
1493 (method url-fetch)
1494 (uri (string-append
1495 "https://hackage.haskell.org/package/OpenGLRaw/OpenGLRaw-"
1496 version
1497 ".tar.gz"))
1498 (sha256
1499 (base32
1500 "024aln102d1mmsdalq9jd5mmwjbnrb8gxcak73lybrc7q87kswk2"))))
1501 (build-system haskell-build-system)
1502 (inputs
1503 `(("ghc-half" ,ghc-half)
1504 ("ghc-fixed" ,ghc-fixed)
1505 ("glu" ,glu)
1506 ("ghc-text" ,ghc-text)))
1507 (home-page "https://www.haskell.org/haskellwiki/Opengl")
1508 (synopsis "Raw Haskell bindings for the OpenGL graphics system")
1509 (description "OpenGLRaw is a raw Haskell binding for the OpenGL 4.5
1510 graphics system and lots of OpenGL extensions. It is basically a 1:1 mapping
1511 of OpenGL's C API, intended as a basis for a nicer interface. OpenGLRaw
1512 offers access to all necessary functions, tokens and types plus a general
1513 facility for loading extension entries. The module hierarchy closely mirrors
1514 the naming structure of the OpenGL extensions, making it easy to find the
1515 right module to import. All API entries are loaded dynamically, so no special
1516 C header files are needed for building this package. If an API entry is not
1517 found at runtime, a userError is thrown.")
1518 (license license:bsd-3)))
1519
1520 (define-public ghc-glut
1521 (package
1522 (name "ghc-glut")
1523 (version "2.7.0.10")
1524 (source
1525 (origin
1526 (method url-fetch)
1527 (uri (string-append
1528 "https://hackage.haskell.org/package/GLUT/GLUT-"
1529 version
1530 ".tar.gz"))
1531 (sha256
1532 (base32
1533 "0sbm943bg896nf3qjmlnsg3zzrr3pl330rzh9g0hwv47nzwwn4ab"))))
1534 (build-system haskell-build-system)
1535 (inputs
1536 `(("ghc-statevar" ,ghc-statevar)
1537 ("ghc-opengl" ,ghc-opengl)
1538 ("ghc-openglraw" ,ghc-openglraw)
1539 ("freeglut" ,freeglut)))
1540 (home-page "https://www.haskell.org/haskellwiki/Opengl")
1541 (synopsis "Haskell bindings for the OpenGL Utility Toolkit")
1542 (description "This library provides Haskell bindings for the OpenGL
1543 Utility Toolkit, a window system-independent toolkit for writing OpenGL
1544 programs.")
1545 (license license:bsd-3)))
1546
1547 (define-public ghc-gluraw
1548 (package
1549 (name "ghc-gluraw")
1550 (version "2.0.0.2")
1551 (source
1552 (origin
1553 (method url-fetch)
1554 (uri (string-append
1555 "https://hackage.haskell.org/package/GLURaw/GLURaw-"
1556 version
1557 ".tar.gz"))
1558 (sha256
1559 (base32
1560 "1phmvxr0kkxq89ykmr8rj77inj8dvcxd6h72z1ncdgdazfz3sjw8"))))
1561 (build-system haskell-build-system)
1562 (inputs
1563 `(("ghc-openglraw" ,ghc-openglraw)))
1564 (home-page "https://www.haskell.org/haskellwiki/Opengl")
1565 (synopsis "Raw Haskell bindings GLU")
1566 (description "GLURaw is a raw Haskell binding for the GLU 1.3 OpenGL
1567 utility library. It is basically a 1:1 mapping of GLU's C API, intended as a
1568 basis for a nicer interface.")
1569 (license license:bsd-3)))
1570
1571 (define-public ghc-opengl
1572 (package
1573 (name "ghc-opengl")
1574 (version "3.0.1.0")
1575 (source
1576 (origin
1577 (method url-fetch)
1578 (uri (string-append
1579 "https://hackage.haskell.org/package/OpenGL/OpenGL-"
1580 version
1581 ".tar.gz"))
1582 (sha256
1583 (base32
1584 "1nm2mzrn1h2nnfs9vl5p088hqpll7rdvcsyqsn8q641im9jhqp7l"))))
1585 (build-system haskell-build-system)
1586 (inputs
1587 `(("ghc-text" ,ghc-text)
1588 ("ghc-objectname" ,ghc-objectname)
1589 ("ghc-gluraw" ,ghc-gluraw)
1590 ("ghc-statevar" ,ghc-statevar)
1591 ("ghc-openglraw" ,ghc-openglraw)))
1592 (home-page "https://www.haskell.org/haskellwiki/Opengl")
1593 (synopsis "Haskell bindings for the OpenGL graphics system")
1594 (description "This package provides Haskell bindings for the OpenGL
1595 graphics system (GL, version 4.5) and its accompanying utility library (GLU,
1596 version 1.3).")
1597 (license license:bsd-3)))
1598
1599 (define-public ghc-streaming-commons
1600 (package
1601 (name "ghc-streaming-commons")
1602 (version "0.2.1.0")
1603 (source
1604 (origin
1605 (method url-fetch)
1606 (uri (string-append "https://hackage.haskell.org/package/"
1607 "streaming-commons/streaming-commons-"
1608 version ".tar.gz"))
1609 (sha256
1610 (base32
1611 "13fn6qmpiggwpn8lczyydgp77cyzfypwds7wxskrwir4i5cgxlfq"))))
1612 (build-system haskell-build-system)
1613 (inputs
1614 `(("ghc-async" ,ghc-async)
1615 ("ghc-blaze-builder" ,ghc-blaze-builder)
1616 ("ghc-network" ,ghc-network)
1617 ("ghc-random" ,ghc-random)
1618 ("ghc-stm" ,ghc-stm)
1619 ("ghc-text" ,ghc-text)
1620 ("ghc-zlib" ,ghc-zlib)))
1621 (native-inputs
1622 `(("ghc-quickcheck" ,ghc-quickcheck)
1623 ("ghc-hspec" ,ghc-hspec)
1624 ("hspec-discover" ,hspec-discover)))
1625 (home-page "https://hackage.haskell.org/package/streaming-commons")
1626 (synopsis "Conduit and pipes needed by some streaming data libraries")
1627 (description "This package provides low-dependency functionality commonly
1628 needed by various Haskell streaming data libraries, such as @code{conduit} and
1629 @code{pipe}s.")
1630 (license license:expat)))
1631
1632 (define-public cpphs
1633 (package
1634 (name "cpphs")
1635 (version "1.20.8")
1636 (source
1637 (origin
1638 (method url-fetch)
1639 (uri (string-append
1640 "https://hackage.haskell.org/package/" name "/"
1641 name "-" version ".tar.gz"))
1642 (sha256
1643 (base32
1644 "1bh524asqhk9v1s0wvipl0hgn7l63iy3js867yv0z3h5v2kn8vg5"))))
1645 (build-system haskell-build-system)
1646 (inputs
1647 `(("ghc-polyparse" ,ghc-polyparse)
1648 ("ghc-old-locale" ,ghc-old-locale)
1649 ("ghc-old-time" ,ghc-old-time)))
1650 (home-page "http://projects.haskell.org/cpphs/")
1651 (synopsis "Liberalised re-implementation of cpp, the C pre-processor")
1652 (description "Cpphs is a re-implementation of the C pre-processor that is
1653 both more compatible with Haskell, and itself written in Haskell so that it
1654 can be distributed with compilers. This version of the C pre-processor is
1655 pretty-much feature-complete and compatible with traditional (K&R)
1656 pre-processors. Additional features include: a plain-text mode; an option to
1657 unlit literate code files; and an option to turn off macro-expansion.")
1658 (license (list license:lgpl2.1+ license:gpl3+))))
1659
1660 (define-public ghc-reflection
1661 (package
1662 (name "ghc-reflection")
1663 (version "2.1.4")
1664 (source
1665 (origin
1666 (method url-fetch)
1667 (uri (string-append
1668 "https://hackage.haskell.org/package/reflection/reflection-"
1669 version
1670 ".tar.gz"))
1671 (sha256
1672 (base32
1673 "0kf4a5ijw6jfnfibjcrpdy9vzh1n6v2pxia8dhyyqdissiwc8bzj"))))
1674 (build-system haskell-build-system)
1675 (inputs `(("ghc-tagged" ,ghc-tagged)))
1676 (home-page "https://github.com/ekmett/reflection")
1677 (synopsis "Reify arbitrary terms into types that can be reflected back
1678 into terms")
1679 (description "This package addresses the 'configuration problem' which is
1680 propogating configurations that are available at run-time, allowing multiple
1681 configurations to coexist without resorting to mutable global variables or
1682 @code{System.IO.Unsafe.unsafePerformIO}.")
1683 (license license:bsd-3)))
1684
1685 (define-public ghc-old-locale
1686 (package
1687 (name "ghc-old-locale")
1688 (version "1.0.0.7")
1689 (source
1690 (origin
1691 (method url-fetch)
1692 (uri (string-append
1693 "https://hackage.haskell.org/package/old-locale/old-locale-"
1694 version
1695 ".tar.gz"))
1696 (sha256
1697 (base32 "0l3viphiszvz5wqzg7a45zp40grwlab941q5ay29iyw8p3v8pbyv"))))
1698 (build-system haskell-build-system)
1699 (arguments
1700 `(#:cabal-revision
1701 ("2" "04b9vn007hlvsrx4ksd3r8r3kbyaj2kvwxchdrmd4370qzi8p6gs")))
1702 (home-page "https://hackage.haskell.org/package/old-locale")
1703 (synopsis "Adapt to locale conventions")
1704 (description
1705 "This package provides the ability to adapt to locale conventions such as
1706 date and time formats.")
1707 (license license:bsd-3)))
1708
1709 (define-public ghc-old-time
1710 (package
1711 (name "ghc-old-time")
1712 (version "1.1.0.3")
1713 (source
1714 (origin
1715 (method url-fetch)
1716 (uri (string-append
1717 "https://hackage.haskell.org/package/old-time/old-time-"
1718 version
1719 ".tar.gz"))
1720 (sha256
1721 (base32
1722 "1h9b26s3kfh2k0ih4383w90ibji6n0iwamxp6rfp2lbq1y5ibjqw"))))
1723 (build-system haskell-build-system)
1724 (arguments
1725 `(#:cabal-revision
1726 ("2" "1j6ln1dkvhdvnwl33bp0xf9lhc4sybqk0aw42p8cq81xwwzbn7y9")))
1727 (inputs
1728 `(("ghc-old-locale" ,ghc-old-locale)))
1729 (home-page "https://hackage.haskell.org/package/old-time")
1730 (synopsis "Time compatibility library for Haskell")
1731 (description "Old-time is a package for backwards compatibility with the
1732 old @code{time} library. For new projects, the newer
1733 @uref{https://hackage.haskell.org/package/time, time library} is recommended.")
1734 (license license:bsd-3)))
1735
1736 (define-public ghc-data-default-instances-old-locale
1737 (package
1738 (name "ghc-data-default-instances-old-locale")
1739 (version "0.0.1")
1740 (source
1741 (origin
1742 (method url-fetch)
1743 (uri (string-append
1744 "https://hackage.haskell.org/package/"
1745 "data-default-instances-old-locale/"
1746 "data-default-instances-old-locale-" version ".tar.gz"))
1747 (sha256
1748 (base32 "00h81i5phib741yj517p8mbnc48myvfj8axzsw44k34m48lv1lv0"))))
1749 (build-system haskell-build-system)
1750 (inputs
1751 `(("ghc-data-default-class" ,ghc-data-default-class)
1752 ("ghc-old-locale" ,ghc-old-locale)))
1753 (home-page
1754 "https://hackage.haskell.org/package/data-default-instances-old-locale")
1755 (synopsis "Default instances for types in old-locale")
1756 (description "Provides Default instances for types from the old-locale
1757 package.")
1758 (license license:bsd-3)))
1759
1760 (define-public ghc-dlist
1761 (package
1762 (name "ghc-dlist")
1763 (version "0.8.0.4")
1764 (source
1765 (origin
1766 (method url-fetch)
1767 (uri (string-append
1768 "https://hackage.haskell.org/package/dlist/dlist-"
1769 version
1770 ".tar.gz"))
1771 (sha256
1772 (base32 "0yirrh0s6acjy9hhvf5fqg2d6q5y6gm9xs04v6w1imndh1xqdwdc"))))
1773 (build-system haskell-build-system)
1774 (inputs
1775 `(("ghc-quickcheck" ,ghc-quickcheck)))
1776 (home-page "https://github.com/spl/dlist")
1777 (synopsis "Difference lists")
1778 (description
1779 "Difference lists are a list-like type supporting O(1) append. This is
1780 particularly useful for efficient logging and pretty printing (e.g. with the
1781 Writer monad), where list append quickly becomes too expensive.")
1782 (license license:bsd-3)))
1783
1784 (define-public ghc-extensible-exceptions
1785 (package
1786 (name "ghc-extensible-exceptions")
1787 (version "0.1.1.4")
1788 (source
1789 (origin
1790 (method url-fetch)
1791 (uri (string-append "https://hackage.haskell.org/package/"
1792 "extensible-exceptions/extensible-exceptions-"
1793 version ".tar.gz"))
1794 (sha256
1795 (base32 "1273nqws9ij1rp1bsq5jc7k2jxpqa0svawdbim05lf302y0firbc"))))
1796 (build-system haskell-build-system)
1797 (home-page "https://hackage.haskell.org/package/extensible-exceptions")
1798 (synopsis "Extensible exceptions for Haskell")
1799 (description
1800 "This package provides extensible exceptions for both new and old
1801 versions of GHC (i.e., < 6.10).")
1802 (license license:bsd-3)))
1803
1804 (define-public cabal-install
1805 (package
1806 (name "cabal-install")
1807 (version "1.22.6.0")
1808 (source
1809 (origin
1810 (method url-fetch)
1811 (uri (string-append
1812 "https://hackage.haskell.org/package/cabal-install/cabal-install-"
1813 version
1814 ".tar.gz"))
1815 (sha256
1816 (base32 "1d5h7h2wjwc2s3dvsvzjgmmfrfl2312ym2h6kyjgm9wnaqw9w8wx"))))
1817 (arguments `(#:tests? #f)) ; FIXME: testing libraries are missing.
1818 (build-system haskell-build-system)
1819 (inputs
1820 `(("ghc-http" ,ghc-http)
1821 ("ghc-network-uri" ,ghc-network-uri)
1822 ("ghc-network" ,ghc-network)
1823 ("ghc-random" ,ghc-random)
1824 ("ghc-stm" ,ghc-stm)
1825 ("ghc-zlib" ,ghc-zlib)))
1826 (home-page "https://www.haskell.org/cabal/")
1827 (synopsis "Command-line interface for Cabal and Hackage")
1828 (description
1829 "The cabal command-line program simplifies the process of managing
1830 Haskell software by automating the fetching, configuration, compilation and
1831 installation of Haskell libraries and programs.")
1832 (license license:bsd-3)))
1833
1834 (define-public cabal-doctest
1835 (package
1836 (name "cabal-doctest")
1837 (version "1.0.6")
1838 (source
1839 (origin
1840 (method url-fetch)
1841 (uri (string-append "https://hackage.haskell.org/package/"
1842 "cabal-doctest/cabal-doctest-"
1843 version ".tar.gz"))
1844 (sha256
1845 (base32
1846 "0bgd4jdmzxq5y465r4sf4jv2ix73yvblnr4c9wyazazafddamjny"))))
1847 (build-system haskell-build-system)
1848 (arguments
1849 `(#:cabal-revision
1850 ("1" "1bk85avgc93yvcggwbk01fy8nvg6753wgmaanhkry0hz55h7mpld")))
1851 (home-page "https://github.com/phadej/cabal-doctest")
1852 (synopsis "Setup.hs helper for running doctests")
1853 (description
1854 "To properly work, the @code{doctest} package needs plenty of
1855 configuration. This library provides the common bits for writing custom
1856 @file{Setup.hs} files.")
1857 (license license:bsd-3)))
1858
1859 (define-public ghc-parsec-numbers
1860 (package
1861 (name "ghc-parsec-numbers")
1862 (version "0.1.0")
1863 (source
1864 (origin
1865 (method url-fetch)
1866 (uri (string-append "https://hackage.haskell.org/package/"
1867 "parsec-numbers/parsec-numbers-" version ".tar.gz"))
1868 (sha256
1869 (base32 "1gzy4v3r02kvdxvgg1nj83mmb6aph2v4ilf9c7y6nbvi2x49l0bp"))))
1870 (build-system haskell-build-system)
1871 (inputs
1872 `(("ghc-parsec" ,ghc-parsec)))
1873 (home-page "https://hackage.haskell.org/package/parsec-numbers")
1874 (synopsis "Utilities for parsing numbers from strings")
1875 (description
1876 "This package provides the number parsers without the need to use a large
1877 (and unportable) token parser.")
1878 (license license:bsd-3)))
1879
1880 (define-public ghc-paths
1881 (package
1882 (name "ghc-paths")
1883 (version "0.1.0.9")
1884 (outputs '("out" "doc"))
1885 (source
1886 (origin
1887 (method url-fetch)
1888 (uri (string-append
1889 "https://hackage.haskell.org/package/ghc-paths/ghc-paths-"
1890 version
1891 ".tar.gz"))
1892 (sha256
1893 (base32
1894 "0ibrr1dxa35xx20cpp8jzgfak1rdmy344dfwq4vlq013c6w8z9mg"))))
1895 (build-system haskell-build-system)
1896 (home-page "https://github.com/simonmar/ghc-paths")
1897 (synopsis
1898 "Knowledge of GHC's installation directories")
1899 (description
1900 "Knowledge of GHC's installation directories.")
1901 (license license:bsd-3)))
1902
1903 (define-public ghc-utf8-string
1904 (package
1905 (name "ghc-utf8-string")
1906 (version "1.0.1.1")
1907 (source
1908 (origin
1909 (method url-fetch)
1910 (uri (string-append
1911 "https://hackage.haskell.org/package/utf8-string/utf8-string-"
1912 version
1913 ".tar.gz"))
1914 (sha256
1915 (base32 "0h7imvxkahiy8pzr8cpsimifdfvv18lizrb33k6mnq70rcx9w2zv"))))
1916 (build-system haskell-build-system)
1917 (arguments
1918 `(#:cabal-revision
1919 ("3" "02vhj5gykkqa2dyn7s6gn8is1b5fdn9xcqqvlls268g7cpv6rk38")))
1920 (home-page "https://github.com/glguy/utf8-string/")
1921 (synopsis "Support for reading and writing UTF8 Strings")
1922 (description
1923 "A UTF8 layer for Strings. The utf8-string package provides operations
1924 for encoding UTF8 strings to Word8 lists and back, and for reading and writing
1925 UTF8 without truncation.")
1926 (license license:bsd-3)))
1927
1928 (define-public ghc-setenv
1929 (package
1930 (name "ghc-setenv")
1931 (version "0.1.1.3")
1932 (source
1933 (origin
1934 (method url-fetch)
1935 (uri (string-append
1936 "https://hackage.haskell.org/package/setenv/setenv-"
1937 version
1938 ".tar.gz"))
1939 (sha256
1940 (base32
1941 "0cnbgrvb9byyahb37zlqrj05rj25v190crgcw8wmlgf0mwwxyn73"))))
1942 (build-system haskell-build-system)
1943 (home-page "https://hackage.haskell.org/package/setenv")
1944 (synopsis "Library for setting environment variables")
1945 (description "This package provides a Haskell library for setting
1946 environment variables.")
1947 (license license:expat)))
1948
1949 (define-public ghc-setlocale
1950 (package
1951 (name "ghc-setlocale")
1952 (version "1.0.0.8")
1953 (source (origin
1954 (method url-fetch)
1955 (uri (string-append
1956 "https://hackage.haskell.org/package/setlocale-"
1957 version "/setlocale-" version ".tar.gz"))
1958 (sha256
1959 (base32
1960 "0sdrsmkhw08483d73ysgm2926fdbhii61br03lqpqw0lfzj4ilbd"))))
1961 (build-system haskell-build-system)
1962 (home-page "https://hackage.haskell.org/package/setlocale")
1963 (synopsis "Haskell bindings to setlocale")
1964 (description "This package provides Haskell bindings to the
1965 @code{setlocale} C function.")
1966 (license license:bsd-3)))
1967
1968 (define-public ghc-x11
1969 (package
1970 (name "ghc-x11")
1971 (version "1.8")
1972 (source
1973 (origin
1974 (method url-fetch)
1975 (uri (string-append "https://hackage.haskell.org/package/X11/"
1976 "X11-" version ".tar.gz"))
1977 (sha256
1978 (base32 "13lxq36856fzp61y4api78vssykyh8fm2aplr0nsj18ymdm1c6sl"))))
1979 (build-system haskell-build-system)
1980 (inputs
1981 `(("libx11" ,libx11)
1982 ("libxrandr" ,libxrandr)
1983 ("libxinerama" ,libxinerama)
1984 ("libxscrnsaver" ,libxscrnsaver)
1985 ("ghc-data-default" ,ghc-data-default)))
1986 (home-page "https://github.com/haskell-pkg-janitors/X11")
1987 (synopsis "Bindings to the X11 graphics library")
1988 (description
1989 "This package provides Haskell bindings to the X11 graphics library. The
1990 bindings are a direct translation of the C bindings.")
1991 (license license:bsd-3)))
1992
1993 (define-public ghc-x11-xft
1994 (package
1995 (name "ghc-x11-xft")
1996 (version "0.3.1")
1997 (source
1998 (origin
1999 (method url-fetch)
2000 (uri (string-append "https://hackage.haskell.org/package/X11-xft/"
2001 "X11-xft-" version ".tar.gz"))
2002 (sha256
2003 (base32 "1lgqb0s2qfwwgbvwxhjbi23rbwamzdi0l0slfr20c3jpcbp3zfjf"))))
2004 (inputs
2005 `(("ghc-x11" ,ghc-x11)
2006 ("ghc-utf8-string" ,ghc-utf8-string)
2007 ("libx11" ,libx11)
2008 ("libxft" ,libxft)
2009 ("xorgproto" ,xorgproto)))
2010 (native-inputs
2011 `(("pkg-config" ,pkg-config)))
2012 (build-system haskell-build-system)
2013 (home-page "https://hackage.haskell.org/package/X11-xft")
2014 (synopsis "Bindings to Xft")
2015 (description
2016 "Bindings to the Xft, X Free Type interface library, and some Xrender
2017 parts.")
2018 (license license:lgpl2.1)))
2019
2020 (define-public ghc-stringbuilder
2021 (package
2022 (name "ghc-stringbuilder")
2023 (version "0.5.1")
2024 (source
2025 (origin
2026 (method url-fetch)
2027 (uri (string-append
2028 "https://hackage.haskell.org/package/stringbuilder/stringbuilder-"
2029 version
2030 ".tar.gz"))
2031 (sha256
2032 (base32
2033 "1fh3csx1wcssn8xyvl4ip4aprh9l4qyz2kk8mgjvqvc0vb2bsy6q"))))
2034 (build-system haskell-build-system)
2035 (arguments `(#:tests? #f)) ; FIXME: circular dependencies with tests
2036 ; enabled
2037 (home-page "https://hackage.haskell.org/package/stringbuilder")
2038 (synopsis "Writer monad for multi-line string literals")
2039 (description "This package provides a writer monad for multi-line string
2040 literals.")
2041 (license license:expat)))
2042
2043 (define-public ghc-zlib
2044 (package
2045 (name "ghc-zlib")
2046 (version "0.6.2")
2047 (outputs '("out" "doc"))
2048 (source
2049 (origin
2050 (method url-fetch)
2051 (uri (string-append
2052 "https://hackage.haskell.org/package/zlib/zlib-"
2053 version
2054 ".tar.gz"))
2055 (sha256
2056 (base32
2057 "1vbzf0awb6zb456xf48za1kl22018646cfzq4frvxgb9ay97vk0d"))))
2058 (build-system haskell-build-system)
2059 (arguments
2060 `(#:phases
2061 (modify-phases %standard-phases
2062 (add-before 'configure 'strip-test-framework-constraints
2063 (lambda _
2064 (substitute* "zlib.cabal"
2065 (("tasty >= 0\\.8 && < 0\\.12") "tasty")
2066 (("tasty-hunit >= 0\\.8 && < 0\\.10") "tasty-hunit")
2067 (("tasty-quickcheck == 0\\.8\\.\\*") "tasty-quickcheck")))))))
2068 (inputs `(("zlib" ,zlib)))
2069 (native-inputs
2070 `(("ghc-quickcheck" ,ghc-quickcheck)
2071 ("ghc-tasty" ,ghc-tasty)
2072 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
2073 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
2074 (home-page "https://hackage.haskell.org/package/zlib")
2075 (synopsis
2076 "Compression and decompression in the gzip and zlib formats")
2077 (description
2078 "This package provides a pure interface for compressing and decompressing
2079 streams of data represented as lazy 'ByteString's. It uses the zlib C library
2080 so it has high performance. It supports the 'zlib', 'gzip' and 'raw'
2081 compression formats. It provides a convenient high level API suitable for
2082 most tasks and for the few cases where more control is needed it provides
2083 access to the full zlib feature set.")
2084 (license license:bsd-3)))
2085
2086 (define-public ghc-stm
2087 (package
2088 (name "ghc-stm")
2089 (version "2.4.5.0")
2090 (outputs '("out" "doc"))
2091 (source
2092 (origin
2093 (method url-fetch)
2094 (uri (string-append
2095 "https://hackage.haskell.org/package/stm/stm-"
2096 version
2097 ".tar.gz"))
2098 (sha256
2099 (base32
2100 "19sr11a0hqikhvf561b38phz6k3zg9s157a0f5ffvghk7wcdpmri"))))
2101 (build-system haskell-build-system)
2102 (home-page "https://hackage.haskell.org/package/stm")
2103 (synopsis "Software Transactional Memory")
2104 (description
2105 "Software Transactional Memory, or STM, is an abstraction for concurrent
2106 communication. The main benefits of STM are composability and modularity.
2107 That is, using STM you can write concurrent abstractions that can be easily
2108 composed with any other abstraction built using STM, without exposing the
2109 details of how your abstraction ensures safety. This is typically not the
2110 case with other forms of concurrent communication, such as locks or
2111 @code{MVar}s.")
2112 (license license:bsd-3)))
2113
2114 (define-public ghc-parallel
2115 (package
2116 (name "ghc-parallel")
2117 (version "3.2.2.0")
2118 (outputs '("out" "doc"))
2119 (source
2120 (origin
2121 (method url-fetch)
2122 (uri (string-append
2123 "https://hackage.haskell.org/package/parallel/parallel-"
2124 version
2125 ".tar.gz"))
2126 (sha256
2127 (base32
2128 "1xkfi96w6yfpppd0nw1rnszdxmvifwzm699ilv6332ra3akm610p"))))
2129 (build-system haskell-build-system)
2130 (home-page "https://hackage.haskell.org/package/parallel")
2131 (synopsis "Parallel programming library")
2132 (description
2133 "This package provides a library for parallel programming.")
2134 (license license:bsd-3)))
2135
2136 (define-public ghc-safesemaphore
2137 (package
2138 (name "ghc-safesemaphore")
2139 (version "0.10.1")
2140 (source
2141 (origin
2142 (method url-fetch)
2143 (uri (string-append "https://hackage.haskell.org/package/"
2144 "SafeSemaphore/SafeSemaphore-" version ".tar.gz"))
2145 (sha256
2146 (base32
2147 "0rpg9j6fy70i0b9dkrip9d6wim0nac0snp7qzbhykjkqlcvvgr91"))))
2148 (build-system haskell-build-system)
2149 (inputs
2150 `(("ghc-stm" ,ghc-stm)))
2151 (native-inputs
2152 `(("ghc-hunit" ,ghc-hunit)))
2153 (home-page "https://github.com/ChrisKuklewicz/SafeSemaphore")
2154 (synopsis "Exception safe semaphores")
2155 (description "This library provides exception safe semaphores that can be
2156 used in place of @code{QSem}, @code{QSemN}, and @code{SampleVar}, all of which
2157 are not exception safe and can be broken by @code{killThread}.")
2158 (license license:bsd-3)))
2159
2160 (define-public ghc-text
2161 (package
2162 (name "ghc-text")
2163 (version "1.2.3.0")
2164 (outputs '("out" "doc"))
2165 (source
2166 (origin
2167 (method url-fetch)
2168 (uri (string-append
2169 "https://hackage.haskell.org/package/text/text-"
2170 version
2171 ".tar.gz"))
2172 (sha256
2173 (base32
2174 "06iir7q99rnffzxi8gagn8w1k9m49368sbidgz634fv1gxib3q10"))))
2175 (build-system haskell-build-system)
2176 ;; The test dependencies depend on ghc-text: ghc-test-framework -> ghc-xml -> ghc-text
2177 (arguments `(#:tests? #f))
2178 (inputs
2179 `(("ghc-random" ,ghc-random)))
2180 (home-page "https://github.com/bos/text")
2181 (synopsis "Efficient packed Unicode text type library")
2182 (description
2183 "An efficient packed, immutable Unicode text type (both strict and
2184 lazy), with a powerful loop fusion optimization framework.
2185
2186 The 'Text' type represents Unicode character strings, in a time and
2187 space-efficient manner. This package provides text processing
2188 capabilities that are optimized for performance critical use, both
2189 in terms of large data quantities and high speed.")
2190 (license license:bsd-3)))
2191
2192 (define-public ghc-text-binary
2193 (package
2194 (name "ghc-text-binary")
2195 (version "0.2.1.1")
2196 (source
2197 (origin
2198 (method url-fetch)
2199 (uri (string-append "https://hackage.haskell.org/package/"
2200 "text-binary/text-binary-"
2201 version ".tar.gz"))
2202 (sha256
2203 (base32
2204 "18gl10pwg3qwsk0za3c70j4n6a9129wwf1b7d3a461h816yv55xn"))))
2205 (build-system haskell-build-system)
2206 (inputs `(("ghc-text" ,ghc-text)))
2207 (home-page "https://github.com/kawu/text-binary")
2208 (synopsis "Binary instances for text types")
2209 (description
2210 "This package provides a compatibility layer providing @code{Binary}
2211 instances for strict and lazy text types for versions older than 1.2.1 of the
2212 text package.")
2213 (license license:bsd-2)))
2214
2215 (define-public ghc-strict
2216 (package
2217 (name "ghc-strict")
2218 (version "0.3.2")
2219 (source
2220 (origin
2221 (method url-fetch)
2222 (uri (string-append "https://hackage.haskell.org/package/strict/strict-"
2223 version ".tar.gz"))
2224 (sha256
2225 (base32 "08cjajqz9h47fkq98mlf3rc8n5ghbmnmgn8pfsl3bdldjdkmmlrc"))))
2226 (build-system haskell-build-system)
2227 (home-page "https://hackage.haskell.org/package/strict")
2228 (synopsis "Strict data types and String IO")
2229 (description
2230 "This package provides strict versions of some standard Haskell data
2231 types, such as pairs, @code{Maybe} and @code{Either}. It also contains strict
2232 IO operations.")
2233 (license license:bsd-3)))
2234
2235 (define-public ghc-hashable
2236 (package
2237 (name "ghc-hashable")
2238 (version "1.2.6.1")
2239 (outputs '("out" "doc"))
2240 (source
2241 (origin
2242 (method url-fetch)
2243 (uri (string-append
2244 "https://hackage.haskell.org/package/hashable/hashable-"
2245 version
2246 ".tar.gz"))
2247 (sha256
2248 (base32
2249 "0ymv2mcrrgbdc2w39rib171fwnhg7fgp0sy4h8amrh1vw64qgjll"))))
2250 (build-system haskell-build-system)
2251 (inputs
2252 `(("ghc-text" ,ghc-text)
2253 ("ghc-random" ,ghc-random)))
2254 (native-inputs
2255 `(("ghc-test-framework" ,ghc-test-framework)
2256 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
2257 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)
2258 ("ghc-hunit" ,ghc-hunit)
2259 ("ghc-quickcheck" ,ghc-quickcheck)))
2260 (home-page "https://github.com/tibbe/hashable")
2261 (synopsis "Class for types that can be converted to a hash value")
2262 (description
2263 "This package defines a class, @code{Hashable}, for types that can be
2264 converted to a hash value. This class exists for the benefit of hashing-based
2265 data structures. The package provides instances for basic types and a way to
2266 combine hash values.")
2267 (license license:bsd-3)))
2268
2269 (define-public ghc-hashable-time
2270 (package
2271 (name "ghc-hashable-time")
2272 (version "0.2.0.1")
2273 (source
2274 (origin
2275 (method url-fetch)
2276 (uri (string-append
2277 "https://hackage.haskell.org/package/hashable-time/hashable-time-"
2278 version
2279 ".tar.gz"))
2280 (sha256
2281 (base32
2282 "0k932nyd08l3xxbh2g3n76py2f4kd9yw4s5a065vjz0xp6wjnxdm"))))
2283 (build-system haskell-build-system)
2284 (inputs `(("ghc-hashable" ,ghc-hashable)))
2285 (home-page "http://hackage.haskell.org/package/hashable-time")
2286 (synopsis "Hashable instances for Data.Time")
2287 (description
2288 "This package provides @code{Hashable} instances for types in
2289 @code{Data.Time}.")
2290 (license license:bsd-3)))
2291
2292 (define-public ghc-data-hash
2293 (package
2294 (name "ghc-data-hash")
2295 (version "0.2.0.1")
2296 (source
2297 (origin
2298 (method url-fetch)
2299 (uri (string-append "https://hackage.haskell.org/package/data-hash"
2300 "/data-hash-" version ".tar.gz"))
2301 (sha256
2302 (base32 "1ghbqvc48gf9p8wiy71hdpaj7by3b9cw6wgwi3qqz8iw054xs5wi"))))
2303 (build-system haskell-build-system)
2304 (inputs
2305 `(("ghc-quickcheck" ,ghc-quickcheck)
2306 ("ghc-test-framework" ,ghc-test-framework)
2307 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
2308 (home-page "https://hackage.haskell.org/package/data-hash")
2309 (synopsis "Combinators for building fast hashing functions")
2310 (description
2311 "This package provides combinators for building fast hashing functions.
2312 It includes hashing functions for all basic Haskell98 types.")
2313 (license license:bsd-3)))
2314
2315 (define-public ghc-murmur-hash
2316 (package
2317 (name "ghc-murmur-hash")
2318 (version "0.1.0.9")
2319 (source
2320 (origin
2321 (method url-fetch)
2322 (uri (string-append "https://hackage.haskell.org/package/murmur-hash"
2323 "/murmur-hash-" version ".tar.gz"))
2324 (sha256
2325 (base32 "1bb58kfnzvx3mpc0rc0dhqc1fk36nm8prd6gvf20gk6lxaadpfc9"))))
2326 (build-system haskell-build-system)
2327 (home-page "https://github.com/nominolo/murmur-hash")
2328 (synopsis "MurmurHash2 implementation for Haskell")
2329 (description
2330 "This package provides an implementation of MurmurHash2, a good, fast,
2331 general-purpose, non-cryptographic hashing function. See
2332 @url{https://sites.google.com/site/murmurhash/} for details. This
2333 implementation is pure Haskell, so it might be a bit slower than a C FFI
2334 binding.")
2335 (license license:bsd-3)))
2336
2337 (define-public ghc-random
2338 (package
2339 (name "ghc-random")
2340 (version "1.1")
2341 (outputs '("out" "doc"))
2342 (source
2343 (origin
2344 (method url-fetch)
2345 (uri (string-append
2346 "https://hackage.haskell.org/package/random/random-"
2347 version
2348 ".tar.gz"))
2349 (sha256
2350 (base32 "0nis3lbkp8vfx8pkr6v7b7kr5m334bzb0fk9vxqklnp2aw8a865p"))))
2351 (build-system haskell-build-system)
2352 (home-page "https://hackage.haskell.org/package/random")
2353 (synopsis "Random number library")
2354 (description "This package provides a basic random number generation
2355 library, including the ability to split random number generators.")
2356 (license license:bsd-3)))
2357
2358 (define-public ghc-primitive
2359 (package
2360 (name "ghc-primitive")
2361 (version "0.6.3.0")
2362 (outputs '("out" "doc"))
2363 (source
2364 (origin
2365 (method url-fetch)
2366 (uri (string-append
2367 "https://hackage.haskell.org/package/primitive/primitive-"
2368 version
2369 ".tar.gz"))
2370 (sha256
2371 (base32
2372 "0mcmbnj08wd6zfwn7xk6zf5hy5zwbla5v78pw0dpymqg9s0gzpnd"))))
2373 (build-system haskell-build-system)
2374 (home-page
2375 "https://github.com/haskell/primitive")
2376 (synopsis "Primitive memory-related operations")
2377 (description
2378 "This package provides various primitive memory-related operations.")
2379 (license license:bsd-3)))
2380
2381 (define-public ghc-tf-random
2382 (package
2383 (name "ghc-tf-random")
2384 (version "0.5")
2385 (outputs '("out" "doc"))
2386 (source
2387 (origin
2388 (method url-fetch)
2389 (uri (string-append
2390 "https://hackage.haskell.org/package/tf-random/tf-random-"
2391 version
2392 ".tar.gz"))
2393 (sha256
2394 (base32 "0445r2nns6009fmq0xbfpyv7jpzwv0snccjdg7hwj4xk4z0cwc1f"))))
2395 (build-system haskell-build-system)
2396 (inputs
2397 `(("ghc-primitive" ,ghc-primitive)
2398 ("ghc-random" ,ghc-random)))
2399 (home-page "https://hackage.haskell.org/package/tf-random")
2400 (synopsis "High-quality splittable pseudorandom number generator")
2401 (description "This package contains an implementation of a high-quality
2402 splittable pseudorandom number generator. The generator is based on a
2403 cryptographic hash function built on top of the ThreeFish block cipher. See
2404 the paper \"Splittable Pseudorandom Number Generators Using Cryptographic
2405 Hashing\" by Claessen, Pałka for details and the rationale of the design.")
2406 (license license:bsd-3)))
2407
2408 (define-public ghc-transformers-base
2409 (package
2410 (name "ghc-transformers-base")
2411 (version "0.4.5.2")
2412 (source
2413 (origin
2414 (method url-fetch)
2415 (uri (string-append
2416 "https://hackage.haskell.org/package/transformers-base/transformers-base-"
2417 version
2418 ".tar.gz"))
2419 (sha256
2420 (base32
2421 "1s256bi0yh0x2hp2gwd30f3mg1cv53zz397dv1yhfsnfzmihrj6h"))))
2422 (build-system haskell-build-system)
2423 (inputs
2424 `(("ghc-stm" ,ghc-stm)
2425 ("ghc-transformers-compat" ,ghc-transformers-compat)))
2426 (home-page
2427 "https://hackage.haskell.org/package/transformers-compat")
2428 (synopsis
2429 "Backported transformer library")
2430 (description
2431 "Backported versions of types that were added to transformers in
2432 transformers 0.3 and 0.4 for users who need strict transformers 0.2 or 0.3
2433 compatibility to run on old versions of the platform.")
2434 (license license:bsd-3)))
2435
2436 (define-public ghc-transformers-compat
2437 (package
2438 (name "ghc-transformers-compat")
2439 (version "0.6.2")
2440 (source
2441 (origin
2442 (method url-fetch)
2443 (uri (string-append
2444 "https://hackage.haskell.org/package/transformers-compat"
2445 "/transformers-compat-" version ".tar.gz"))
2446 (sha256
2447 (base32
2448 "1gp4a8kvniwgm8947ghb4iwv4b7wd6ry4kvv4nfnym4agf5j41nw"))))
2449 (build-system haskell-build-system)
2450 (home-page "https://github.com/ekmett/transformers-compat/")
2451 (synopsis "Small compatibility shim between transformers 0.3 and 0.4")
2452 (description "This package includes backported versions of types that were
2453 added to transformers in transformers 0.3 and 0.4 for users who need strict
2454 transformers 0.2 or 0.3 compatibility to run on old versions of the platform,
2455 but also need those types.")
2456 (license license:bsd-3)))
2457
2458 (define-public ghc-unix-time
2459 (package
2460 (name "ghc-unix-time")
2461 (version "0.3.8")
2462 (source
2463 (origin
2464 (method url-fetch)
2465 (uri (string-append
2466 "https://hackage.haskell.org/package/unix-time/unix-time-"
2467 version
2468 ".tar.gz"))
2469 (sha256
2470 (base32
2471 "051slgpid5cxiaw203ky0ql3823h28fcjs08axkzd4265wrvv8fw"))))
2472 (build-system haskell-build-system)
2473 (arguments
2474 `(#:tests? #f)) ; FIXME: Test fails with "System.Time not found". This
2475 ; is weird, that should be provided by GHC 7.10.2.
2476 (inputs
2477 `(("ghc-old-time" ,ghc-old-time)
2478 ("ghc-old-locale" ,ghc-old-locale)))
2479 (home-page "https://hackage.haskell.org/package/unix-time")
2480 (synopsis "Unix time parser/formatter and utilities")
2481 (description "This library provides fast parsing and formatting utilities
2482 for Unix time in Haskell.")
2483 (license license:bsd-3)))
2484
2485 (define-public ghc-unix-compat
2486 (package
2487 (name "ghc-unix-compat")
2488 (version "0.5.1")
2489 (source
2490 (origin
2491 (method url-fetch)
2492 (uri (string-append
2493 "https://hackage.haskell.org/package/unix-compat/unix-compat-"
2494 version
2495 ".tar.gz"))
2496 (sha256
2497 (base32
2498 "0llwl7rp63fy2ychwdclz1afj45pbin5pfl01dvn6rwhvmwhr7d3"))))
2499 (build-system haskell-build-system)
2500 (home-page
2501 "https://github.com/jystic/unix-compat")
2502 (synopsis "Portable POSIX-compatibility layer")
2503 (description
2504 "This package provides portable implementations of parts of the unix
2505 package. This package re-exports the unix package when available. When it
2506 isn't available, portable implementations are used.")
2507 (license license:bsd-3)))
2508
2509 (define-public ghc-indents
2510 (package
2511 (name "ghc-indents")
2512 (version "0.5.0.0")
2513 (source (origin
2514 (method url-fetch)
2515 (uri (string-append
2516 "https://hackage.haskell.org/package/indents/indents-"
2517 version ".tar.gz"))
2518 (sha256
2519 (base32
2520 "1ly3v41jacc6lrsvg4j3m5a6zs90gr8dyif5m6bf34hj1k5cgg0n"))))
2521 (build-system haskell-build-system)
2522 (inputs
2523 `(("ghc-parsec" ,ghc-parsec)
2524 ("ghc-concatenative" ,ghc-concatenative)))
2525 (home-page "http://patch-tag.com/r/salazar/indents")
2526 (synopsis "Indentation sensitive parser-combinators for parsec")
2527 (description
2528 "This library provides functions for use in parsing indentation sensitive
2529 contexts. It parses blocks of lines all indented to the same level as well as
2530 lines continued at an indented level below.")
2531 (license license:bsd-3)))
2532
2533 (define-public ghc-iproute
2534 (package
2535 (name "ghc-iproute")
2536 (version "1.7.1")
2537 (source
2538 (origin
2539 (method url-fetch)
2540 (uri (string-append
2541 "https://hackage.haskell.org/package/iproute/iproute-"
2542 version
2543 ".tar.gz"))
2544 (sha256
2545 (base32
2546 "1viyxq3m1aifl05w0hxwrhhhcfpmvwz4ymil2gngi4nfm0yd1f2p"))))
2547 (build-system haskell-build-system)
2548 (arguments `(#:tests? #f)) ; FIXME: Tests cannot find System.ByteOrder,
2549 ; exported by ghc-byteorder. Doctest issue.
2550 (inputs
2551 `(("ghc-appar" ,ghc-appar)
2552 ("ghc-byteorder" ,ghc-byteorder)
2553 ("ghc-network" ,ghc-network)
2554 ("ghc-safe" ,ghc-safe)))
2555 (home-page "https://www.mew.org/~kazu/proj/iproute/")
2556 (synopsis "IP routing table")
2557 (description "IP Routing Table is a tree of IP ranges to search one of
2558 them on the longest match base. It is a kind of TRIE with one way branching
2559 removed. Both IPv4 and IPv6 are supported.")
2560 (license license:bsd-3)))
2561
2562 (define-public ghc-iwlib
2563 (package
2564 (name "ghc-iwlib")
2565 (version "0.1.0")
2566 (source
2567 (origin
2568 (method url-fetch)
2569 (uri (string-append "https://hackage.haskell.org/package/iwlib/iwlib-"
2570 version ".tar.gz"))
2571 (sha256
2572 (base32 "0khmfwql4vwj55idsxmhjhrbqzfir3g9wm5lmpvnf77mm95cfpdz"))))
2573 (build-system haskell-build-system)
2574 (inputs
2575 `(("wireless-tools" ,wireless-tools)))
2576 (home-page "https://github.com/jaor/iwlib")
2577 (synopsis "Haskell binding to the iw wireless networking library")
2578 (description
2579 "IWlib is a thin Haskell binding to the iw C library. It provides
2580 information about the current wireless network connections, and adapters on
2581 supported systems.")
2582 (license license:bsd-3)))
2583
2584 (define-public ghc-regex-base
2585 (package
2586 (name "ghc-regex-base")
2587 (version "0.93.2")
2588 (source
2589 (origin
2590 (method url-fetch)
2591 (uri (string-append
2592 "https://hackage.haskell.org/package/regex-base/regex-base-"
2593 version
2594 ".tar.gz"))
2595 (sha256
2596 (base32
2597 "0y1j4h2pg12c853nzmczs263di7xkkmlnsq5dlp5wgbgl49mgp10"))))
2598 (build-system haskell-build-system)
2599 (home-page
2600 "https://sourceforge.net/projects/lazy-regex")
2601 (synopsis "Replaces/Enhances Text.Regex")
2602 (description "@code{Text.Regex.Base} provides the interface API for
2603 regex-posix, regex-pcre, regex-parsec, regex-tdfa, regex-dfa.")
2604 (license license:bsd-3)))
2605
2606 (define-public ghc-regex-posix
2607 (package
2608 (name "ghc-regex-posix")
2609 (version "0.95.2")
2610 (source
2611 (origin
2612 (method url-fetch)
2613 (uri (string-append
2614 "https://hackage.haskell.org/package/regex-posix/regex-posix-"
2615 version
2616 ".tar.gz"))
2617 (sha256
2618 (base32
2619 "0gkhzhj8nvfn1ija31c7xnl6p0gadwii9ihyp219ck2arlhrj0an"))))
2620 (build-system haskell-build-system)
2621 (inputs
2622 `(("ghc-regex-base" ,ghc-regex-base)))
2623 (home-page "https://sourceforge.net/projects/lazy-regex")
2624 (synopsis "POSIX regular expressions for Haskell")
2625 (description "This library provides the POSIX regex backend used by the
2626 Haskell library @code{regex-base}.")
2627 (license license:bsd-3)))
2628
2629 (define-public ghc-regex-compat
2630 (package
2631 (name "ghc-regex-compat")
2632 (version "0.95.1")
2633 (source
2634 (origin
2635 (method url-fetch)
2636 (uri (string-append
2637 "https://hackage.haskell.org/package/regex-compat/regex-compat-"
2638 version
2639 ".tar.gz"))
2640 (sha256
2641 (base32
2642 "0fwmima3f04p9y4h3c23493n1xj629ia2dxaisqm6rynljjv2z6m"))))
2643 (build-system haskell-build-system)
2644 (inputs
2645 `(("ghc-regex-base" ,ghc-regex-base)
2646 ("ghc-regex-posix" ,ghc-regex-posix)))
2647 (home-page "https://sourceforge.net/projects/lazy-regex")
2648 (synopsis "Replaces/Enhances Text.Regex")
2649 (description "This library provides one module layer over
2650 @code{regex-posix} to replace @code{Text.Regex}.")
2651 (license license:bsd-3)))
2652
2653 (define-public ghc-regex-tdfa-rc
2654 (package
2655 (name "ghc-regex-tdfa-rc")
2656 (version "1.1.8.3")
2657 (source
2658 (origin
2659 (method url-fetch)
2660 (uri (string-append
2661 "https://hackage.haskell.org/package/regex-tdfa-rc/regex-tdfa-rc-"
2662 version
2663 ".tar.gz"))
2664 (sha256
2665 (base32
2666 "1vi11i23gkkjg6193ak90g55akj69bhahy542frkwb68haky4pp3"))))
2667 (build-system haskell-build-system)
2668 (inputs
2669 `(("ghc-regex-base" ,ghc-regex-base)
2670 ("ghc-parsec" ,ghc-parsec)))
2671 (home-page
2672 "https://hackage.haskell.org/package/regex-tdfa")
2673 (synopsis "Tagged DFA regex engine for Haskell")
2674 (description "A new all-Haskell \"tagged\" DFA regex engine, inspired by
2675 @code{libtre} (fork by Roman Cheplyaka).")
2676 (license license:bsd-3)))
2677
2678 (define-public ghc-regex-tdfa-text
2679 (package
2680 (name "ghc-regex-tdfa-text")
2681 (version "1.0.0.3")
2682 (source
2683 (origin
2684 (method url-fetch)
2685 (uri (string-append
2686 "https://hackage.haskell.org/package/regex-tdfa-text/"
2687 "regex-tdfa-text-" version ".tar.gz"))
2688 (sha256
2689 (base32
2690 "0090g6lgbdm9lywpqm2d3724nnnh24nx3vnlqr96qc2w486pmmrq"))))
2691 (build-system haskell-build-system)
2692 (inputs
2693 `(("ghc-text" ,ghc-text)
2694 ("ghc-regex-base" ,ghc-regex-base)
2695 ("ghc-regex-tdfa" ,ghc-regex-tdfa)))
2696 (home-page
2697 "http://hackage.haskell.org/package/regex-tdfa-text")
2698 (synopsis "Text interface for regex-tdfa")
2699 (description
2700 "This provides an extra text interface for regex-tdfa.")
2701 (license license:bsd-3)))
2702
2703 (define-public ghc-regex
2704 (package
2705 (name "ghc-regex")
2706 (version "1.0.1.3")
2707 (source
2708 (origin
2709 (method url-fetch)
2710 (uri (string-append "https://hackage.haskell.org/package/regex/"
2711 "regex-" version ".tar.gz"))
2712 (sha256
2713 (base32
2714 "1sjkpkgv4phy5b5v2lr89x4vx4dh44pj0sbvlsp6n86w9v6v4jwb"))))
2715 (build-system haskell-build-system)
2716 (inputs
2717 `(("ghc-base-compat" ,ghc-base-compat)
2718 ("ghc-hashable" ,ghc-hashable)
2719 ("ghc-regex-base" ,ghc-regex-base)
2720 ("ghc-regex-pcre-builtin" ,ghc-regex-pcre-builtin)
2721 ("ghc-regex-tdfa" ,ghc-regex-tdfa)
2722 ("ghc-regex-tdfa-text" ,ghc-regex-tdfa-text)
2723 ("ghc-text" ,ghc-text)
2724 ("ghc-time-locale-compat" ,ghc-time-locale-compat)
2725 ("ghc-unordered-containers" ,ghc-unordered-containers)
2726 ("ghc-utf8-string" ,ghc-utf8-string)))
2727 (home-page "http://regex.uk")
2728 (synopsis "Toolkit for regex-base")
2729 (description
2730 "This package provides a regular expression toolkit for @code{regex-base}
2731 with compile-time checking of regular expression syntax, data types for
2732 matches and captures, a text replacement toolkit, portable options, high-level
2733 AWK-like tools for building text processing apps, regular expression macros
2734 with parsers and test bench, comprehensive documentation, tutorials and
2735 copious examples.")
2736 (license license:bsd-3)))
2737
2738 (define-public ghc-parsers
2739 (package
2740 (name "ghc-parsers")
2741 (version "0.12.4")
2742 (source
2743 (origin
2744 (method url-fetch)
2745 (uri (string-append
2746 "https://hackage.haskell.org/package/parsers/parsers-"
2747 version
2748 ".tar.gz"))
2749 (sha256
2750 (base32
2751 "07najh7f9y3ahh42z96sw4hnd0kc4x3wm0xlf739y0gh81ys5097"))))
2752 (build-system haskell-build-system)
2753 (arguments `(#:tests? #f)) ; FIXME: Test fails with "cannot satisfy
2754 ; -package attoparsec-0.13.0.1"
2755 (inputs
2756 `(("ghc-base-orphans" ,ghc-base-orphans)
2757 ("ghc-attoparsec" ,ghc-attoparsec)
2758 ("ghc-parsec" ,ghc-parsec)
2759 ("ghc-scientific" ,ghc-scientific)
2760 ("ghc-charset" ,ghc-charset)
2761 ("ghc-text" ,ghc-text)
2762 ("ghc-unordered-containers" ,ghc-unordered-containers)))
2763 (home-page "https://github.com/ekmett/parsers/")
2764 (synopsis "Parsing combinators")
2765 (description "This library provides convenient combinators for working
2766 with and building parsing combinator libraries. Given a few simple instances,
2767 you get access to a large number of canned definitions. Instances exist for
2768 the parsers provided by @code{parsec}, @code{attoparsec} and @code{base}'s
2769 @code{Text.Read}.")
2770 (license license:bsd-3)))
2771
2772 (define-public ghc-trifecta
2773 (package
2774 (name "ghc-trifecta")
2775 (version "1.7.1.1")
2776 (source (origin
2777 (method url-fetch)
2778 (uri (string-append
2779 "https://hackage.haskell.org/package/trifecta/"
2780 "trifecta-" version ".tar.gz"))
2781 (sha256
2782 (base32
2783 "13n6a3fdxngnzsjnhfrzigv1c2g0xm6lqkjcnirpc37sd0rpby31"))))
2784 (build-system haskell-build-system)
2785 (inputs
2786 `(("ghc-doctest" ,ghc-doctest-0.13)
2787 ("ghc-reducers" ,ghc-reducers)
2788 ("ghc-semigroups" ,ghc-semigroups)
2789 ("ghc-ansi-wl-pprint" ,ghc-ansi-wl-pprint)
2790 ("ghc-ansi-terminal" ,ghc-ansi-terminal)
2791 ("ghc-blaze-builder" ,ghc-blaze-builder)
2792 ("ghc-blaze-html" ,ghc-blaze-html)
2793 ("ghc-blaze-markup" ,ghc-blaze-markup)
2794 ("ghc-charset" ,ghc-charset)
2795 ("ghc-comonad" ,ghc-comonad)
2796 ("ghc-doctest" ,ghc-doctest)
2797 ("ghc-fingertree" ,ghc-fingertree)
2798 ("ghc-hashable" ,ghc-hashable)
2799 ("ghc-lens" ,ghc-lens)
2800 ("ghc-parsers" ,ghc-parsers)
2801 ("ghc-profunctors" ,ghc-profunctors)
2802 ("ghc-quickcheck" ,ghc-quickcheck)
2803 ("ghc-unordered-containers" ,ghc-unordered-containers)
2804 ("ghc-utf8-string" ,ghc-utf8-string)))
2805 (native-inputs
2806 `(("cabal-doctest" ,cabal-doctest)))
2807 (home-page "https://github.com/ekmett/trifecta/")
2808 (synopsis "Parser combinator library with convenient diagnostics")
2809 (description "Trifecta is a modern parser combinator library for Haskell,
2810 with slicing and Clang-style colored diagnostics.")
2811 (license license:bsd-3)))
2812
2813 (define-public ghc-time-locale-compat
2814 (package
2815 (name "ghc-time-locale-compat")
2816 (version "0.1.1.5")
2817 (source
2818 (origin
2819 (method url-fetch)
2820 (uri (string-append "https://hackage.haskell.org/package/"
2821 "time-locale-compat/time-locale-compat-"
2822 version ".tar.gz"))
2823 (sha256
2824 (base32
2825 "0b2hmj8wwrfkndwzgm11qr496ca2ahwdxcj3m0ii91bxvrk1bzq7"))))
2826 (build-system haskell-build-system)
2827 (inputs `(("ghc-old-locale" ,ghc-old-locale)))
2828 (home-page "https://github.com/khibino/haskell-time-locale-compat")
2829 (synopsis "Compatibility of TimeLocale between old-locale and time-1.5")
2830 (description "This package contains a wrapped name module for
2831 @code{TimeLocale}.")
2832 (license license:bsd-3)))
2833
2834 (define-public ghc-attoparsec
2835 (package
2836 (name "ghc-attoparsec")
2837 (version "0.13.2.2")
2838 (source
2839 (origin
2840 (method url-fetch)
2841 (uri (string-append
2842 "https://hackage.haskell.org/package/attoparsec/attoparsec-"
2843 version
2844 ".tar.gz"))
2845 (sha256
2846 (base32
2847 "0j6qcwd146yzlkc9mcvzvnixsyl65n2a68l28322q5v9p4g4g4yx"))))
2848 (build-system haskell-build-system)
2849 ;; FIXME: at least on test fails with QuickCheck > 2.9.2. Once upstream
2850 ;; has updated the tests to work with a later version of QuickCheck we can
2851 ;; re-enable them.
2852 (arguments `(#:tests? #f))
2853 (inputs
2854 `(("ghc-scientific" ,ghc-scientific)
2855 ("ghc-text" ,ghc-text)))
2856 (native-inputs
2857 `(("ghc-tasty" ,ghc-tasty)
2858 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
2859 ("ghc-quickcheck" ,ghc-quickcheck)
2860 ("ghc-quickcheck-unicode" ,ghc-quickcheck-unicode)
2861 ("ghc-vector" ,ghc-vector)))
2862 (home-page "https://github.com/bos/attoparsec")
2863 (synopsis "Fast combinator parsing for bytestrings and text")
2864 (description "This library provides a fast parser combinator library,
2865 aimed particularly at dealing efficiently with network protocols and
2866 complicated text/binary file formats.")
2867 (license license:bsd-3)))
2868
2869 (define-public ghc-zip-archive
2870 (package
2871 (name "ghc-zip-archive")
2872 (version "0.3.0.5")
2873 (source
2874 (origin
2875 (method url-fetch)
2876 (uri (string-append
2877 "https://hackage.haskell.org/package/zip-archive/zip-archive-"
2878 version
2879 ".tar.gz"))
2880 (sha256
2881 (base32
2882 "1iwpzjck4jg9bz1yqky051i2wljsqc14q5zbi10dydfp8ip3d0yw"))))
2883 (build-system haskell-build-system)
2884 (inputs
2885 `(("ghc-old-time" ,ghc-old-time)
2886 ("ghc-digest" ,ghc-digest)
2887 ("zip" ,zip)
2888 ("ghc-temporary" ,ghc-temporary)
2889 ("ghc-text" ,ghc-text)
2890 ("ghc-zlib" ,ghc-zlib)))
2891 (native-inputs
2892 `(("ghc-hunit" ,ghc-hunit)))
2893 (home-page "https://hackage.haskell.org/package/zip-archive")
2894 (synopsis "Zip archive library for Haskell")
2895 (description "The zip-archive library provides functions for creating,
2896 modifying, and extracting files from zip archives in Haskell.")
2897 (license license:bsd-3)))
2898
2899 (define-public ghc-distributive
2900 (package
2901 (name "ghc-distributive")
2902 (version "0.5.3")
2903 (source
2904 (origin
2905 (method url-fetch)
2906 (uri (string-append
2907 "https://hackage.haskell.org/package/distributive/distributive-"
2908 version
2909 ".tar.gz"))
2910 (sha256
2911 (base32
2912 "0y566r97sfyvhsmd4yxiz4ns2mqgwf5bdbp56wgxl6wlkidq0wwi"))))
2913 (build-system haskell-build-system)
2914 (inputs
2915 `(("ghc-tagged" ,ghc-tagged)
2916 ("ghc-base-orphans" ,ghc-base-orphans)
2917 ("ghc-transformers-compat" ,ghc-transformers-compat)
2918 ("ghc-semigroups" ,ghc-semigroups)
2919 ("ghc-generic-deriving" ,ghc-generic-deriving)))
2920 (native-inputs
2921 `(("cabal-doctest" ,cabal-doctest)
2922 ("ghc-doctest" ,ghc-doctest-0.12)
2923 ("ghc-hspec" ,ghc-hspec)
2924 ("hspec-discover" ,hspec-discover)))
2925 (home-page "https://github.com/ekmett/distributive/")
2926 (synopsis "Distributive functors for Haskell")
2927 (description "This package provides distributive functors for Haskell.
2928 Dual to @code{Traversable}.")
2929 (license license:bsd-3)))
2930
2931 (define-public ghc-cereal
2932 (package
2933 (name "ghc-cereal")
2934 (version "0.5.3.0")
2935 (source
2936 (origin
2937 (method url-fetch)
2938 (uri (string-append
2939 "https://hackage.haskell.org/package/cereal/cereal-"
2940 version
2941 ".tar.gz"))
2942 (sha256
2943 (base32
2944 "1x4aib7nnaf4x2b9zlndq5n5zsqniw78jifkf55nhnbmvryf05n3"))))
2945 (build-system haskell-build-system)
2946 (native-inputs
2947 `(("ghc-quickcheck" ,ghc-quickcheck)
2948 ("ghc-fail" ,ghc-fail)
2949 ("ghc-test-framework" ,ghc-test-framework)
2950 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
2951 (home-page "https://hackage.haskell.org/package/cereal")
2952 (synopsis "Binary serialization library")
2953 (description "This package provides a binary serialization library,
2954 similar to @code{binary}, that introduces an @code{isolate} primitive for
2955 parser isolation, and labeled blocks for better error messages.")
2956 (license license:bsd-3)))
2957
2958 (define-public ghc-comonad
2959 (package
2960 (name "ghc-comonad")
2961 (version "5")
2962 (source
2963 (origin
2964 (method url-fetch)
2965 (uri (string-append
2966 "https://hackage.haskell.org/package/comonad/comonad-"
2967 version
2968 ".tar.gz"))
2969 (sha256
2970 (base32
2971 "0anb36m9z52y9xsipxzj9w1b41b2rj8r389cxd6d20dplnfv3rbq"))))
2972 (build-system haskell-build-system)
2973 (native-inputs
2974 `(("ghc-doctest" ,ghc-doctest)))
2975 (inputs
2976 `(("ghc-contravariant" ,ghc-contravariant)
2977 ("ghc-distributive" ,ghc-distributive)
2978 ("ghc-semigroups" ,ghc-semigroups)
2979 ("ghc-tagged" ,ghc-tagged)
2980 ("ghc-transformers-compat" ,ghc-transformers-compat)))
2981 (home-page "https://github.com/ekmett/comonad/")
2982 (synopsis "Comonads for Haskell")
2983 (description "This library provides @code{Comonad}s for Haskell.")
2984 (license license:bsd-3)))
2985
2986 (define-public hscolour
2987 (package
2988 (name "hscolour")
2989 (version "1.24.4")
2990 (source
2991 (origin
2992 (method url-fetch)
2993 (uri (string-append
2994 "https://hackage.haskell.org/package/hscolour/hscolour-"
2995 version
2996 ".tar.gz"))
2997 (sha256
2998 (base32
2999 "079jwph4bwllfp03yfr26s5zc6m6kw3nhb1cggrifh99haq34cr4"))))
3000 (build-system haskell-build-system)
3001 (home-page "https://hackage.haskell.org/package/hscolour")
3002 (synopsis "Script to colourise Haskell code")
3003 (description "HSColour is a small Haskell script to colourise Haskell
3004 code. It currently has six output formats: ANSI terminal codes (optionally
3005 XTerm-256colour codes), HTML 3.2 with font tags, HTML 4.01 with CSS, HTML 4.01
3006 with CSS and mouseover annotations, XHTML 1.0 with inline CSS styling, LaTeX,
3007 and mIRC chat codes.")
3008 (license license:bsd-3)))
3009
3010 (define-public ghc-polyparse
3011 (package
3012 (name "ghc-polyparse")
3013 (version "1.12")
3014 (source
3015 (origin
3016 (method url-fetch)
3017 (uri (string-append
3018 "https://hackage.haskell.org/package/polyparse/polyparse-"
3019 version
3020 ".tar.gz"))
3021 (sha256
3022 (base32
3023 "05dya1vdvq29hkhkdlsglzhw7bdn51rvs1javs0q75nf99c66k7m"))))
3024 (build-system haskell-build-system)
3025 (inputs
3026 `(("ghc-text" ,ghc-text)))
3027 (home-page
3028 "http://code.haskell.org/~malcolm/polyparse/")
3029 (synopsis
3030 "Alternative parser combinator libraries")
3031 (description
3032 "This package provides a variety of alternative parser combinator
3033 libraries, including the original HuttonMeijer set. The Poly sets have
3034 features like good error reporting, arbitrary token type, running state, lazy
3035 parsing, and so on. Finally, Text.Parse is a proposed replacement for the
3036 standard Read class, for better deserialisation of Haskell values from
3037 Strings.")
3038 (license license:lgpl2.1)))
3039
3040 (define-public ghc-extra
3041 (package
3042 (name "ghc-extra")
3043 (version "1.6.3")
3044 (source
3045 (origin
3046 (method url-fetch)
3047 (uri (string-append
3048 "https://hackage.haskell.org/package/extra/extra-"
3049 version
3050 ".tar.gz"))
3051 (sha256
3052 (base32
3053 "06ds0jlx6sljwdf63l154qbzia9mnsri79i9qm3xikky3nj9ia1m"))))
3054 (build-system haskell-build-system)
3055 (inputs
3056 `(("ghc-clock" ,ghc-clock)
3057 ("ghc-quickcheck" ,ghc-quickcheck)))
3058 (home-page "https://github.com/ndmitchell/extra")
3059 (synopsis "Extra Haskell functions")
3060 (description "This library provides extra functions for the standard
3061 Haskell libraries. Most functions are simple additions, filling out missing
3062 functionality. A few functions are available in later versions of GHC, but
3063 this package makes them available back to GHC 7.2.")
3064 (license license:bsd-3)))
3065
3066 (define-public ghc-profunctors
3067 (package
3068 (name "ghc-profunctors")
3069 (version "5.2.2")
3070 (source
3071 (origin
3072 (method url-fetch)
3073 (uri (string-append
3074 "https://hackage.haskell.org/package/profunctors/profunctors-"
3075 version
3076 ".tar.gz"))
3077 (sha256
3078 (base32
3079 "0s1pwjidbn761xk43pmzyvn99hm3psdifjd78ylki7f97aiyd0g9"))))
3080 (build-system haskell-build-system)
3081 (inputs
3082 `(("ghc-base-orphans" ,ghc-base-orphans)
3083 ("ghc-bifunctors" ,ghc-bifunctors)
3084 ("ghc-comonad" ,ghc-comonad)
3085 ("ghc-contravariant" ,ghc-contravariant)
3086 ("ghc-distributive" ,ghc-distributive)
3087 ("ghc-semigroups" ,ghc-semigroups)
3088 ("ghc-tagged" ,ghc-tagged)))
3089 (home-page "https://github.com/ekmett/profunctors/")
3090 (synopsis "Profunctors for Haskell")
3091 (description "This library provides profunctors for Haskell.")
3092 (license license:bsd-3)))
3093
3094 (define-public ghc-reducers
3095 (package
3096 (name "ghc-reducers")
3097 (version "3.12.2")
3098 (source
3099 (origin
3100 (method url-fetch)
3101 (uri (string-append
3102 "https://hackage.haskell.org/package/reducers/reducers-"
3103 version
3104 ".tar.gz"))
3105 (sha256
3106 (base32
3107 "1gbaa5x4zbvnbklcb0d4q4m8hk6w0gz4s0c4m288czi1nw43dl65"))))
3108 (build-system haskell-build-system)
3109 (inputs
3110 `(("ghc-fingertree" ,ghc-fingertree)
3111 ("ghc-hashable" ,ghc-hashable)
3112 ("ghc-text" ,ghc-text)
3113 ("ghc-unordered-containers" ,ghc-unordered-containers)
3114 ("ghc-semigroupoids" ,ghc-semigroupoids)
3115 ("ghc-semigroups" ,ghc-semigroups)))
3116 (home-page "https://github.com/ekmett/reducers/")
3117 (synopsis "Semigroups, specialized containers and a general map/reduce framework")
3118 (description "This library provides various semigroups, specialized
3119 containers and a general map/reduce framework for Haskell.")
3120 (license license:bsd-3)))
3121
3122 (define-public ghc-appar
3123 (package
3124 (name "ghc-appar")
3125 (version "0.1.4")
3126 (source
3127 (origin
3128 (method url-fetch)
3129 (uri (string-append
3130 "https://hackage.haskell.org/package/appar/appar-"
3131 version
3132 ".tar.gz"))
3133 (sha256
3134 (base32
3135 "09jb9ij78fdkz2qk66rw99q19qnm504dpv0yq0pjsl6xwjmndsjq"))))
3136 (build-system haskell-build-system)
3137 (home-page
3138 "https://hackage.haskell.org/package/appar")
3139 (synopsis "Simple applicative parser")
3140 (description "This package provides a simple applicative parser in Parsec
3141 style.")
3142 (license license:bsd-3)))
3143
3144 (define-public ghc-safe
3145 (package
3146 (name "ghc-safe")
3147 (version "0.3.9")
3148 (source
3149 (origin
3150 (method url-fetch)
3151 (uri (string-append
3152 "https://hackage.haskell.org/package/safe/safe-"
3153 version
3154 ".tar.gz"))
3155 (sha256
3156 (base32
3157 "1jdnp5zhvalf1xy8i872n29nljfjz6lnl9ghj80ffisrnnkrwcfh"))))
3158 (build-system haskell-build-system)
3159 (home-page "https://github.com/ndmitchell/safe#readme")
3160 (synopsis "Library of safe (exception free) functions")
3161 (description "This library provides wrappers around @code{Prelude} and
3162 @code{Data.List} functions, such as @code{head} and @code{!!}, that can throw
3163 exceptions.")
3164 (license license:bsd-3)))
3165
3166 (define-public ghc-generic-deriving
3167 (package
3168 (name "ghc-generic-deriving")
3169 (version "1.11.1")
3170 (source
3171 (origin
3172 (method url-fetch)
3173 (uri (string-append
3174 "https://hackage.haskell.org/package/generic-deriving/generic-deriving-"
3175 version
3176 ".tar.gz"))
3177 (sha256
3178 (base32
3179 "1sdh5hpcwvh3b6zvgfk3pr3hla8p88l82njnih880c0gk5zl53dk"))))
3180 (build-system haskell-build-system)
3181 (native-inputs
3182 `(("ghc-hspec" ,ghc-hspec)
3183 ("hspec-discover" ,hspec-discover)))
3184 (home-page "https://hackage.haskell.org/package/generic-deriving")
3185 (synopsis "Generalise the deriving mechanism to arbitrary classes")
3186 (description "This package provides functionality for generalising the
3187 deriving mechanism in Haskell to arbitrary classes.")
3188 (license license:bsd-3)))
3189
3190 (define-public ghc-pcre-light
3191 (package
3192 (name "ghc-pcre-light")
3193 (version "0.4.0.4")
3194 (source
3195 (origin
3196 (method url-fetch)
3197 (uri (string-append
3198 "https://hackage.haskell.org/package/pcre-light/pcre-light-"
3199 version
3200 ".tar.gz"))
3201 (sha256
3202 (base32
3203 "0xcyi1fivwg7a92mch5bcqzmrfxzqj42rmb3m8kgs61x4qwpxj82"))))
3204 (build-system haskell-build-system)
3205 (inputs
3206 `(("pcre" ,pcre)))
3207 (native-inputs
3208 `(("pkg-config" ,pkg-config)))
3209 (home-page "https://github.com/Daniel-Diaz/pcre-light")
3210 (synopsis "Haskell library for Perl 5 compatible regular expressions")
3211 (description "This package provides a small, efficient, and portable regex
3212 library for Perl 5 compatible regular expressions. The PCRE library is a set
3213 of functions that implement regular expression pattern matching using the same
3214 syntax and semantics as Perl 5.")
3215 (license license:bsd-3)))
3216
3217 (define-public ghc-logict
3218 (package
3219 (name "ghc-logict")
3220 (version "0.6.0.2")
3221 (source
3222 (origin
3223 (method url-fetch)
3224 (uri (string-append
3225 "https://hackage.haskell.org/package/logict/logict-"
3226 version
3227 ".tar.gz"))
3228 (sha256
3229 (base32
3230 "07hnirv6snnym2r7iijlfz00b60jpy2856zvqxh989q0in7bd0hi"))))
3231 (build-system haskell-build-system)
3232 (home-page "http://code.haskell.org/~dolio/")
3233 (synopsis "Backtracking logic-programming monad")
3234 (description "This library provides a continuation-based, backtracking,
3235 logic programming monad. An adaptation of the two-continuation implementation
3236 found in the paper \"Backtracking, Interleaving, and Terminating Monad
3237 Transformers\" available @uref{http://okmij.org/ftp/papers/LogicT.pdf,
3238 online}.")
3239 (license license:bsd-3)))
3240
3241 (define-public ghc-xml
3242 (package
3243 (name "ghc-xml")
3244 (version "1.3.14")
3245 (source
3246 (origin
3247 (method url-fetch)
3248 (uri (string-append
3249 "https://hackage.haskell.org/package/xml/xml-"
3250 version
3251 ".tar.gz"))
3252 (sha256
3253 (base32
3254 "0g814lj7vaxvib2g3r734221k80k7ap9czv9hinifn8syals3l9j"))))
3255 (build-system haskell-build-system)
3256 (inputs
3257 `(("ghc-text" ,ghc-text)))
3258 (home-page "http://code.galois.com")
3259 (synopsis "Simple XML library for Haskell")
3260 (description "This package provides a simple XML library for Haskell.")
3261 (license license:bsd-3)))
3262
3263 (define-public ghc-feed
3264 (package
3265 (name "ghc-feed")
3266 (version "0.3.12.0")
3267 (source
3268 (origin
3269 (method url-fetch)
3270 (uri (string-append "https://hackage.haskell.org/package/"
3271 "feed/feed-" version ".tar.gz"))
3272 (sha256
3273 (base32
3274 "0hkrsinspg70bbm3hwqdrvivws6zya1hyk0a3awpaz82j4xnlbfc"))))
3275 (build-system haskell-build-system)
3276 (inputs
3277 `(("ghc-old-locale" ,ghc-old-locale)
3278 ("ghc-old-time" ,ghc-old-time)
3279 ("ghc-time-locale-compat" ,ghc-time-locale-compat)
3280 ("ghc-utf8-string" ,ghc-utf8-string)
3281 ("ghc-xml" ,ghc-xml)))
3282 (native-inputs
3283 `(("ghc-hunit" ,ghc-hunit)
3284 ("ghc-test-framework" ,ghc-test-framework)
3285 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)))
3286 (home-page "https://github.com/bergmark/feed")
3287 (synopsis "Haskell package for handling various syndication formats")
3288 (description "This Haskell package includes tools for generating and
3289 consuming feeds in both RSS (Really Simple Syndication) and Atom format.")
3290 (license license:bsd-3)))
3291
3292 (define-public ghc-exceptions
3293 (package
3294 (name "ghc-exceptions")
3295 (version "0.8.3")
3296 (source
3297 (origin
3298 (method url-fetch)
3299 (uri (string-append
3300 "https://hackage.haskell.org/package/exceptions/exceptions-"
3301 version
3302 ".tar.gz"))
3303 (sha256
3304 (base32
3305 "1gl7xzffsqmigam6zg0jsglncgzxqafld2p6kb7ccp9xirzdjsjd"))))
3306 (build-system haskell-build-system)
3307 (arguments
3308 `(#:configure-flags (list "--allow-newer=QuickCheck")))
3309 (native-inputs
3310 `(("ghc-test-framework" ,ghc-test-framework)
3311 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
3312 (inputs
3313 `(("ghc-stm" ,ghc-stm)
3314 ("ghc-transformers-compat" ,ghc-transformers-compat)))
3315 (home-page "https://github.com/ekmett/exceptions/")
3316 (synopsis "Extensible optionally-pure exceptions")
3317 (description "This library provides extensible optionally-pure exceptions
3318 for Haskell.")
3319 (license license:bsd-3)))
3320
3321 (define-public ghc-temporary
3322 (package
3323 (name "ghc-temporary")
3324 (version "1.2.0.4")
3325 (source
3326 (origin
3327 (method url-fetch)
3328 (uri (string-append
3329 "https://hackage.haskell.org/package/temporary/temporary-"
3330 version
3331 ".tar.gz"))
3332 (sha256
3333 (base32
3334 "0qk741yqnpd69sksgks2vb7zi50rglp9m498lzw4sh268a017rsi"))))
3335 (build-system haskell-build-system)
3336 (inputs `(("ghc-exceptions" ,ghc-exceptions)))
3337 (home-page "https://www.github.com/batterseapower/temporary")
3338 (synopsis "Temporary file and directory support")
3339 (description "The functions for creating temporary files and directories
3340 in the Haskelll base library are quite limited. This library just repackages
3341 the Cabal implementations of its own temporary file and folder functions so
3342 that you can use them without linking against Cabal or depending on it being
3343 installed.")
3344 (license license:bsd-3)))
3345
3346 (define-public ghc-temporary-rc
3347 (package
3348 (name "ghc-temporary-rc")
3349 (version "1.2.0.3")
3350 (source
3351 (origin
3352 (method url-fetch)
3353 (uri (string-append
3354 "https://hackage.haskell.org/package/temporary-rc/temporary-rc-"
3355 version
3356 ".tar.gz"))
3357 (sha256
3358 (base32
3359 "1nqih0qks439k3pr5kmbbc8rjdw730slrxlflqb27fbxbzb8skqs"))))
3360 (build-system haskell-build-system)
3361 (inputs `(("ghc-exceptions" ,ghc-exceptions)))
3362 (home-page
3363 "https://www.github.com/feuerbach/temporary")
3364 (synopsis
3365 "Portable temporary file and directory support")
3366 (description
3367 "The functions for creating temporary files and directories in the base
3368 library are quite limited. The unixutils package contains some good ones, but
3369 they aren't portable to Windows. This library just repackages the Cabal
3370 implementations of its own temporary file and folder functions so that you can
3371 use them without linking against Cabal or depending on it being installed.
3372 This is a better maintained fork of the \"temporary\" package.")
3373 (license license:bsd-3)))
3374
3375 (define-public ghc-smallcheck
3376 (package
3377 (name "ghc-smallcheck")
3378 (version "1.1.5")
3379 (source
3380 (origin
3381 (method url-fetch)
3382 (uri (string-append
3383 "https://hackage.haskell.org/package/smallcheck/smallcheck-"
3384 version
3385 ".tar.gz"))
3386 (sha256
3387 (base32
3388 "195fj7w3v03d1y1nm2ylavzrwxjcdbq0lb6zsw1dwyx5jmwfc84h"))))
3389 (build-system haskell-build-system)
3390 (inputs
3391 `(("ghc-logict" ,ghc-logict)))
3392 (home-page
3393 "https://github.com/feuerbach/smallcheck")
3394 (synopsis "Property-based testing library")
3395 (description "SmallCheck is a testing library that allows to verify
3396 properties for all test cases up to some depth. The test cases are generated
3397 automatically by SmallCheck.")
3398 (license license:bsd-3)))
3399
3400 (define-public ghc-silently
3401 (package
3402 (name "ghc-silently")
3403 (version "1.2.5")
3404 (source
3405 (origin
3406 (method url-fetch)
3407 (uri (string-append
3408 "https://hackage.haskell.org/package/silently/silently-"
3409 version
3410 ".tar.gz"))
3411 (sha256
3412 (base32
3413 "0f9qm3f7y0hpxn6mddhhg51mm1r134qkvd2kr8r6192ka1ijbxnf"))))
3414 (build-system haskell-build-system)
3415 (arguments `(#:tests? #f)) ;; circular dependency with nanospec
3416 ;; (inputs
3417 ;; `(("ghc-temporary" ,ghc-temporary)))
3418 (home-page "https://github.com/hspec/silently")
3419 (synopsis "Prevent writing to stdout")
3420 (description "This package provides functions to prevent or capture
3421 writing to stdout and other handles.")
3422 (license license:bsd-3)))
3423
3424 (define-public ghc-case-insensitive
3425 (package
3426 (name "ghc-case-insensitive")
3427 (version "1.2.0.7")
3428 (outputs '("out" "doc"))
3429 (source
3430 (origin
3431 (method url-fetch)
3432 (uri (string-append
3433 "https://hackage.haskell.org/package/case-insensitive/case-insensitive-"
3434 version
3435 ".tar.gz"))
3436 (sha256
3437 (base32
3438 "1j6ahvrz1g5q89y2difyk838yhwjc8z67zr0v2z512qdznc3h38n"))))
3439 (build-system haskell-build-system)
3440 (inputs
3441 `(("ghc-hunit" ,ghc-hunit)))
3442 ;; these inputs are necessary to use this library
3443 (inputs
3444 `(("ghc-text" ,ghc-text)
3445 ("ghc-hashable" ,ghc-hashable)))
3446 (arguments
3447 `(#:tests? #f)) ; FIXME: currently missing libraries used for tests.
3448 (home-page
3449 "https://github.com/basvandijk/case-insensitive")
3450 (synopsis "Case insensitive string comparison")
3451 (description
3452 "The module 'Data.CaseInsensitive' provides the 'CI' type constructor
3453 which can be parameterised by a string-like type like: 'String', 'ByteString',
3454 'Text', etc.. Comparisons of values of the resulting type will be insensitive
3455 to cases.")
3456 (license license:bsd-3)))
3457
3458 (define-public ghc-syb
3459 (package
3460 (name "ghc-syb")
3461 (version "0.7")
3462 (outputs '("out" "doc"))
3463 (source
3464 (origin
3465 (method url-fetch)
3466 (uri (string-append
3467 "https://hackage.haskell.org/package/syb/syb-"
3468 version
3469 ".tar.gz"))
3470 (sha256
3471 (base32
3472 "1da2zz7gqm4xbkx5vpd74dayx1svaxyl145fl14mq15lbb77sxdq"))))
3473 (build-system haskell-build-system)
3474 (inputs
3475 `(("ghc-hunit" ,ghc-hunit)))
3476 (home-page
3477 "http://www.cs.uu.nl/wiki/GenericProgramming/SYB")
3478 (synopsis "Scrap Your Boilerplate")
3479 (description "This package contains the generics system described in the
3480 /Scrap Your Boilerplate/ papers (see
3481 @uref{http://www.cs.uu.nl/wiki/GenericProgramming/SYB, the website}). It
3482 defines the 'Data' class of types permitting folding and unfolding of
3483 constructor applications, instances of this class for primitive types, and a
3484 variety of traversals.")
3485 (license license:bsd-3)))
3486
3487 (define-public ghc-fgl
3488 (package
3489 (name "ghc-fgl")
3490 (version "5.6.0.0")
3491 (outputs '("out" "doc"))
3492 (source
3493 (origin
3494 (method url-fetch)
3495 (uri (string-append
3496 "https://hackage.haskell.org/package/fgl/fgl-"
3497 version
3498 ".tar.gz"))
3499 (sha256
3500 (base32
3501 "1i6cp4b3w7sjk7y1dq3fh6bci2sm5h3lnbbaw9ln19nwncg2wwll"))))
3502 (build-system haskell-build-system)
3503 (arguments
3504 `(#:configure-flags (list "--allow-newer=QuickCheck"
3505 "--allow-newer=hspec")))
3506 (inputs
3507 `(("ghc-hspec" ,ghc-hspec)
3508 ("ghc-quickcheck" ,ghc-quickcheck)))
3509 (home-page "https://web.engr.oregonstate.edu/~erwig/fgl/haskell")
3510 (synopsis
3511 "Martin Erwig's Functional Graph Library")
3512 (description "The functional graph library, FGL, is a collection of type
3513 and function definitions to address graph problems. The basis of the library
3514 is an inductive definition of graphs in the style of algebraic data types that
3515 encourages inductive, recursive definitions of graph algorithms.")
3516 (license license:bsd-3)))
3517
3518 (define-public ghc-chasingbottoms
3519 (package
3520 (name "ghc-chasingbottoms")
3521 (version "1.3.1.4")
3522 (source
3523 (origin
3524 (method url-fetch)
3525 (uri (string-append "https://hackage.haskell.org/package/ChasingBottoms/"
3526 "ChasingBottoms-" version ".tar.gz"))
3527 (sha256
3528 (base32
3529 "06cynx6hcbfpky7qq3b3mjjgwbnaxkwin3znbwq4b9ikiw0ng633"))))
3530 (build-system haskell-build-system)
3531 (inputs
3532 `(("ghc-quickcheck" ,ghc-quickcheck)
3533 ("ghc-random" ,ghc-random)
3534 ("ghc-syb" ,ghc-syb)))
3535 (home-page "https://hackage.haskell.org/package/ChasingBottoms")
3536 (synopsis "Testing of partial and infinite values in Haskell")
3537 (description
3538 ;; FIXME: There should be a @comma{} in the uref text, but it is not
3539 ;; rendered properly.
3540 "This is a library for testing code involving bottoms or infinite values.
3541 For the underlying theory and a larger example involving use of QuickCheck,
3542 see the article
3543 @uref{http://www.cse.chalmers.se/~nad/publications/danielsson-jansson-mpc2004.html,
3544 \"Chasing Bottoms A Case Study in Program Verification in the Presence of
3545 Partial and Infinite Values\"}.")
3546 (license license:expat)))
3547
3548 (define-public ghc-unordered-containers
3549 (package
3550 (name "ghc-unordered-containers")
3551 (version "0.2.7.1")
3552 (outputs '("out" "doc"))
3553 (source
3554 (origin
3555 (method url-fetch)
3556 (uri (string-append
3557 "https://hackage.haskell.org/package/unordered-containers"
3558 "/unordered-containers-" version ".tar.gz"))
3559 (sha256
3560 (base32
3561 "00npqiphivjp2d7ryqsdavfn4m5v3w1lq2azhdsrfh0wsvqpg4ig"))))
3562 (build-system haskell-build-system)
3563 (inputs
3564 `(("ghc-chasingbottoms" ,ghc-chasingbottoms)
3565 ("ghc-hunit" ,ghc-hunit)
3566 ("ghc-quickcheck" ,ghc-quickcheck)
3567 ("ghc-test-framework" ,ghc-test-framework)
3568 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
3569 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)
3570 ("ghc-hashable" ,ghc-hashable)))
3571 (home-page
3572 "https://github.com/tibbe/unordered-containers")
3573 (synopsis
3574 "Efficient hashing-based container types")
3575 (description
3576 "Efficient hashing-based container types. The containers have been
3577 optimized for performance critical use, both in terms of large data quantities
3578 and high speed.")
3579 (license license:bsd-3)))
3580
3581 (define-public ghc-uniplate
3582 (package
3583 (name "ghc-uniplate")
3584 (version "1.6.12")
3585 (source
3586 (origin
3587 (method url-fetch)
3588 (uri (string-append
3589 "https://hackage.haskell.org/package/uniplate/uniplate-"
3590 version
3591 ".tar.gz"))
3592 (sha256
3593 (base32
3594 "1dx8f9aw27fz8kw0ad1nm6355w5rdl7bjvb427v2bsgnng30pipw"))))
3595 (build-system haskell-build-system)
3596 (inputs
3597 `(("ghc-syb" ,ghc-syb)
3598 ("ghc-hashable" ,ghc-hashable)
3599 ("ghc-unordered-containers" ,ghc-unordered-containers)))
3600 (home-page "http://community.haskell.org/~ndm/uniplate/")
3601 (synopsis "Simple, concise and fast generic operations")
3602 (description "Uniplate is a library for writing simple and concise generic
3603 operations. Uniplate has similar goals to the original Scrap Your Boilerplate
3604 work, but is substantially simpler and faster.")
3605 (license license:bsd-3)))
3606
3607 (define-public ghc-base64-bytestring
3608 (package
3609 (name "ghc-base64-bytestring")
3610 (version "1.0.0.1")
3611 (source
3612 (origin
3613 (method url-fetch)
3614 (uri (string-append
3615 "https://hackage.haskell.org/package/base64-bytestring/base64-bytestring-"
3616 version
3617 ".tar.gz"))
3618 (sha256
3619 (base32
3620 "0l1v4ddjdsgi9nqzyzcxxj76rwar3lzx8gmwf2r54bqan3san9db"))))
3621 (build-system haskell-build-system)
3622 (arguments `(#:tests? #f)) ; FIXME: testing libraries are missing.
3623 (home-page "https://github.com/bos/base64-bytestring")
3624 (synopsis "Base64 encoding and decoding for ByteStrings")
3625 (description "This library provides fast base64 encoding and decoding for
3626 Haskell @code{ByteString}s.")
3627 (license license:bsd-3)))
3628
3629 (define-public ghc-annotated-wl-pprint
3630 (package
3631 (name "ghc-annotated-wl-pprint")
3632 (version "0.7.0")
3633 (source
3634 (origin
3635 (method url-fetch)
3636 (uri (string-append
3637 "https://hackage.haskell.org/package/annotated-wl-pprint"
3638 "/annotated-wl-pprint-" version
3639 ".tar.gz"))
3640 (sha256
3641 (base32
3642 "061xfz6qany3wf95csl8dcik2pz22cn8iv1qchhm16isw5zjs9hc"))))
3643 (build-system haskell-build-system)
3644 (home-page
3645 "https://github.com/david-christiansen/annotated-wl-pprint")
3646 (synopsis
3647 "The Wadler/Leijen Pretty Printer, with annotation support")
3648 (description "This is a modified version of wl-pprint, which was based on
3649 Wadler's paper \"A Prettier Printer\". This version allows the library user
3650 to annotate the text with semantic information, which can later be rendered in
3651 a variety of ways.")
3652 (license license:bsd-3)))
3653
3654 (define-public ghc-wl-pprint
3655 (package
3656 (name "ghc-wl-pprint")
3657 (version "1.2.1")
3658 (source (origin
3659 (method url-fetch)
3660 (uri (string-append
3661 "https://hackage.haskell.org/package/wl-pprint/wl-pprint-"
3662 version ".tar.gz"))
3663 (sha256
3664 (base32
3665 "0kn7y8pdrv8f87zhd5mifcl8fy3b2zvnzmzwhdqhxxlyzwiq6z0c"))))
3666 (build-system haskell-build-system)
3667 (home-page "https://hackage.haskell.org/package/wl-pprint")
3668 (synopsis "Wadler/Leijen pretty printer")
3669 (description
3670 "This is a pretty printing library based on Wadler's paper @i{A Prettier
3671 Printer}. This version allows the library user to declare overlapping
3672 instances of the @code{Pretty} class.")
3673 (license license:bsd-3)))
3674
3675 (define-public ghc-ansi-wl-pprint
3676 (package
3677 (name "ghc-ansi-wl-pprint")
3678 (version "0.6.8.2")
3679 (source
3680 (origin
3681 (method url-fetch)
3682 (uri (string-append "https://hackage.haskell.org/package/"
3683 "ansi-wl-pprint/ansi-wl-pprint-"
3684 version ".tar.gz"))
3685 (sha256
3686 (base32
3687 "0gnb4mkqryv08vncxnj0bzwcnd749613yw3cxfzw6y3nsldp4c56"))))
3688 (build-system haskell-build-system)
3689 (inputs
3690 `(("ghc-ansi-terminal" ,ghc-ansi-terminal)))
3691 (home-page "https://github.com/ekmett/ansi-wl-pprint")
3692 (synopsis "Wadler/Leijen Pretty Printer for colored ANSI terminal output")
3693 (description "This is a pretty printing library based on Wadler's paper
3694 \"A Prettier Printer\". It has been enhanced with support for ANSI terminal
3695 colored output using the ansi-terminal package.")
3696 (license license:bsd-3)))
3697
3698 (define-public ghc-split
3699 (package
3700 (name "ghc-split")
3701 (version "0.2.3.1")
3702 (outputs '("out" "doc"))
3703 (source
3704 (origin
3705 (method url-fetch)
3706 (uri (string-append
3707 "https://hackage.haskell.org/package/split/split-"
3708 version
3709 ".tar.gz"))
3710 (sha256
3711 (base32
3712 "12660m16c6sib3laaxn6w9s453pyx1b49myrmzfij372vq5bc5bn"))))
3713 (build-system haskell-build-system)
3714 (native-inputs
3715 `(("ghc-quickcheck" ,ghc-quickcheck)))
3716 (home-page "https://hackage.haskell.org/package/split")
3717 (synopsis "Combinator library for splitting lists")
3718 (description "This package provides a collection of Haskell functions for
3719 splitting lists into parts, akin to the @code{split} function found in several
3720 mainstream languages.")
3721 (license license:bsd-3)))
3722
3723 (define-public ghc-parsec
3724 (package
3725 (name "ghc-parsec")
3726 (version "3.1.13.0")
3727 (outputs '("out" "doc"))
3728 (source
3729 (origin
3730 (method url-fetch)
3731 (uri (string-append
3732 "https://hackage.haskell.org/package/parsec/parsec-"
3733 version
3734 ".tar.gz"))
3735 (sha256
3736 (base32 "1wc09pyn70p8z6llink10c8pqbh6ikyk554911yfwxv1g91swqbq"))))
3737 (build-system haskell-build-system)
3738 (native-inputs
3739 `(("ghc-hunit" ,ghc-hunit)))
3740 (inputs
3741 `(("ghc-text" ,ghc-text)))
3742 (arguments
3743 `(#:tests? #f)) ; FIXME: currently missing libraries used for tests.
3744 (home-page
3745 "https://github.com/aslatter/parsec")
3746 (synopsis "Monadic parser combinators")
3747 (description "Parsec is a parser library. It is simple, safe, well
3748 documented, has extensive libraries, good error messages, and is fast. It is
3749 defined as a monad transformer that can be stacked on arbitrary monads, and it
3750 is also parametric in the input stream type.")
3751 (license license:bsd-3)))
3752
3753 (define-public ghc-parser-combinators
3754 (package
3755 (name "ghc-parser-combinators")
3756 (version "1.0.0")
3757 (source
3758 (origin
3759 (method url-fetch)
3760 (uri (string-append "https://hackage.haskell.org/package/"
3761 "parser-combinators/parser-combinators-"
3762 version ".tar.gz"))
3763 (sha256
3764 (base32
3765 "1pwfdsklqwvaynwpdzmx1bs35mp6dpsyaqdnzxnqcrxwf5h8sk75"))))
3766 (build-system haskell-build-system)
3767 (home-page "https://github.com/mrkkrp/parser-combinators")
3768 (synopsis "Commonly useful parser combinators")
3769 (description
3770 "This is a lightweight package providing commonly useful parser
3771 combinators.")
3772 (license license:bsd-3)))
3773
3774 (define-public ghc-megaparsec
3775 (package
3776 (name "ghc-megaparsec")
3777 (version "6.4.0")
3778 (source
3779 (origin
3780 (method url-fetch)
3781 (uri (string-append "https://hackage.haskell.org/package/"
3782 "megaparsec/megaparsec-"
3783 version ".tar.gz"))
3784 (sha256
3785 (base32
3786 "0h9azhs0dfrc359vrbd1jljrg3yfdbwd4p62cxqkn7mnh8913jpd"))))
3787 (build-system haskell-build-system)
3788 (inputs
3789 `(("ghc-case-insensitive" ,ghc-case-insensitive)
3790 ("ghc-parser-combinators" ,ghc-parser-combinators)
3791 ("ghc-scientific" ,ghc-scientific)
3792 ("ghc-text" ,ghc-text)))
3793 (native-inputs
3794 `(("ghc-quickcheck" ,ghc-quickcheck)
3795 ("ghc-hspec" ,ghc-hspec)
3796 ("ghc-hspec-expectations" ,ghc-hspec-expectations)
3797 ("hspec-discover" ,hspec-discover)))
3798 (home-page "https://github.com/mrkkrp/megaparsec")
3799 (synopsis "Monadic parser combinators")
3800 (description
3801 "This is an industrial-strength monadic parser combinator library.
3802 Megaparsec is a feature-rich package that strikes a nice balance between
3803 speed, flexibility, and quality of parse errors.")
3804 (license license:bsd-2)))
3805
3806 (define-public ghc-vector
3807 (package
3808 (name "ghc-vector")
3809 (version "0.12.0.1")
3810 (outputs '("out" "doc"))
3811 (source
3812 (origin
3813 (method url-fetch)
3814 (uri (string-append
3815 "https://hackage.haskell.org/package/vector/vector-"
3816 version
3817 ".tar.gz"))
3818 (sha256
3819 (base32
3820 "0yrx2ypiaxahvaz84af5bi855hd3107kxkbqc8km29nsp5wyw05i"))))
3821 (build-system haskell-build-system)
3822 ;; FIXME: To simplify upgrading all Haskell packages, we leave the tests
3823 ;; disabled for now.
3824 (arguments `(#:tests? #f))
3825 (inputs
3826 `(("ghc-primitive" ,ghc-primitive)
3827 ("ghc-random" ,ghc-random)
3828 ("ghc-quickcheck" ,ghc-quickcheck)
3829 ;; ("ghc-hunit" ,ghc-hunit)
3830 ;; ("ghc-test-framework" ,ghc-test-framework)
3831 ;; ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
3832 ;; ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)
3833 ))
3834 (home-page "https://github.com/haskell/vector")
3835 (synopsis "Efficient Arrays")
3836 (description "This library provides an efficient implementation of
3837 Int-indexed arrays (both mutable and immutable), with a powerful loop
3838 optimisation framework.")
3839 (license license:bsd-3)))
3840
3841 (define-public ghc-vector-binary-instances
3842 (package
3843 (name "ghc-vector-binary-instances")
3844 (version "0.2.4")
3845 (source
3846 (origin
3847 (method url-fetch)
3848 (uri (string-append
3849 "https://hackage.haskell.org/package/"
3850 "vector-binary-instances/vector-binary-instances-"
3851 version ".tar.gz"))
3852 (sha256
3853 (base32
3854 "1y236jb72iab9ska1mc48z6yb0xgwmj45laaqdyjxksd84z7hbrb"))))
3855 (build-system haskell-build-system)
3856 (inputs
3857 `(("ghc-vector" ,ghc-vector)))
3858 (native-inputs
3859 `(("ghc-tasty" ,ghc-tasty)
3860 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
3861 (home-page "https://github.com/bos/vector-binary-instances")
3862 (synopsis "Instances of Data.Binary and Data.Serialize for vector")
3863 (description "This library provides instances of @code{Binary} for the
3864 types defined in the @code{vector} package, making it easy to serialize
3865 vectors to and from disk. We use the generic interface to vectors, so all
3866 vector types are supported. Specific instances are provided for unboxed,
3867 boxed and storable vectors.")
3868 (license license:bsd-3)))
3869
3870 (define-public ghc-bloomfilter
3871 (package
3872 (name "ghc-bloomfilter")
3873 (version "2.0.1.0")
3874 (source
3875 (origin
3876 (method url-fetch)
3877 (uri (string-append "https://hackage.haskell.org/package/"
3878 "bloomfilter/bloomfilter-" version ".tar.gz"))
3879 (sha256
3880 (base32
3881 "03vrmncg1c10a2wcg5skq30m1yiknn7nwxz2gblyyfaxglshspkc"))))
3882 (build-system haskell-build-system)
3883 (native-inputs
3884 `(("ghc-quickcheck" ,ghc-quickcheck)
3885 ("ghc-random" ,ghc-random)
3886 ("ghc-test-framework" ,ghc-test-framework)
3887 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
3888 (home-page "https://github.com/bos/bloomfilter")
3889 (synopsis "Pure and impure Bloom filter implementations")
3890 (description "This package provides both mutable and immutable Bloom
3891 filter data types, along with a family of hash functions and an easy-to-use
3892 interface.")
3893 (license license:bsd-3)))
3894
3895 (define-public ghc-network
3896 (package
3897 (name "ghc-network")
3898 (version "2.6.3.1")
3899 (outputs '("out" "doc"))
3900 (source
3901 (origin
3902 (method url-fetch)
3903 (uri (string-append
3904 "https://hackage.haskell.org/package/network/network-"
3905 version
3906 ".tar.gz"))
3907 (sha256
3908 (base32
3909 "1rl2gl37cf4k0ddsq93q15fwdz1l25nhl4w205krbh7d5dg5y12p"))))
3910 (build-system haskell-build-system)
3911 ;; The regression tests depend on an unpublished module.
3912 (arguments `(#:tests? #f))
3913 (native-inputs
3914 `(("ghc-hunit" ,ghc-hunit)
3915 ("ghc-doctest" ,ghc-doctest)
3916 ("ghc-test-framework" ,ghc-test-framework)
3917 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)))
3918 (home-page "https://github.com/haskell/network")
3919 (synopsis "Low-level networking interface")
3920 (description
3921 "This package provides a low-level networking interface.")
3922 (license license:bsd-3)))
3923
3924 (define-public ghc-network-uri
3925 (package
3926 (name "ghc-network-uri")
3927 (version "2.6.1.0")
3928 (outputs '("out" "doc"))
3929 (source
3930 (origin
3931 (method url-fetch)
3932 (uri (string-append
3933 "https://hackage.haskell.org/package/network-uri/network-uri-"
3934 version
3935 ".tar.gz"))
3936 (sha256
3937 (base32
3938 "1w27zkvn39kjr9lmw9421y8w43h572ycsfafsb7kyvr3a4ihlgj2"))))
3939 (build-system haskell-build-system)
3940 (arguments
3941 `(#:tests? #f)) ; FIXME: currently missing libraries used for tests.
3942 (native-inputs
3943 `(("ghc-hunit" ,ghc-hunit)))
3944 (inputs
3945 `(("ghc-parsec" ,ghc-parsec)
3946 ("ghc-network" ,ghc-network)))
3947 (home-page
3948 "https://github.com/haskell/network-uri")
3949 (synopsis "Library for URI manipulation")
3950 (description "This package provides an URI manipulation interface. In
3951 'network-2.6' the 'Network.URI' module was split off from the 'network'
3952 package into this package.")
3953 (license license:bsd-3)))
3954
3955 (define-public ghc-ansi-terminal
3956 (package
3957 (name "ghc-ansi-terminal")
3958 (version "0.8.0.4")
3959 (source
3960 (origin
3961 (method url-fetch)
3962 (uri (string-append
3963 "https://hackage.haskell.org/package/ansi-terminal/ansi-terminal-"
3964 version
3965 ".tar.gz"))
3966 (sha256
3967 (base32
3968 "0428gq8m3fdnb7ldcsyk97qcch76hcxbgh2666p6f76fs2qbhg7b"))))
3969 (build-system haskell-build-system)
3970 (inputs
3971 `(("ghc-colour" ,ghc-colour)))
3972 (home-page "https://github.com/feuerbach/ansi-terminal")
3973 (synopsis "ANSI terminal support for Haskell")
3974 (description "This package provides ANSI terminal support for Haskell. It
3975 allows cursor movement, screen clearing, color output showing or hiding the
3976 cursor, and changing the title.")
3977 (license license:bsd-3)))
3978
3979 (define-public ghc-vault
3980 (package
3981 (name "ghc-vault")
3982 (version "0.3.0.6")
3983 (source
3984 (origin
3985 (method url-fetch)
3986 (uri (string-append
3987 "https://hackage.haskell.org/package/vault/vault-"
3988 version
3989 ".tar.gz"))
3990 (sha256
3991 (base32
3992 "0j7gcs440q7qlgzi2hn36crgp2c0w69k40g6vj9hxlm31zk3shqb"))))
3993 (build-system haskell-build-system)
3994 (inputs
3995 `(("ghc-unordered-containers" ,ghc-unordered-containers)
3996 ("ghc-hashable" ,ghc-hashable)))
3997 (home-page
3998 "https://github.com/HeinrichApfelmus/vault")
3999 (synopsis "Persistent store for arbitrary values")
4000 (description "This package provides vaults for Haskell. A vault is a
4001 persistent store for values of arbitrary types. It's like having first-class
4002 access to the storage space behind @code{IORefs}. The data structure is
4003 analogous to a bank vault, where you can access different bank boxes with
4004 different keys; hence the name. Also provided is a @code{locker} type,
4005 representing a store for a single element.")
4006 (license license:bsd-3)))
4007
4008 (define-public ghc-edisonapi
4009 (package
4010 (name "ghc-edisonapi")
4011 (version "1.3.1")
4012 (source
4013 (origin
4014 (method url-fetch)
4015 (uri (string-append "https://hackage.haskell.org/package/EdisonAPI"
4016 "/EdisonAPI-" version ".tar.gz"))
4017 (sha256
4018 (base32 "0vmmlsj8ggbpwx6fkf5fvb6jp0zpx6iba6b28m80lllr2p8bi8wm"))))
4019 (build-system haskell-build-system)
4020 (home-page "http://rwd.rdockins.name/edison/home/")
4021 (synopsis "Library of efficient, purely-functional data structures (API)")
4022 (description
4023 "Edison is a library of purely functional data structures written by
4024 Chris Okasaki. It is named after Thomas Alva Edison and for the mnemonic
4025 value EDiSon (Efficient Data Structures). Edison provides several families of
4026 abstractions, each with multiple implementations. The main abstractions
4027 provided by Edison are: Sequences such as stacks, queues, and dequeues;
4028 Collections such as sets, bags and heaps; and Associative Collections such as
4029 finite maps and priority queues where the priority and element are distinct.")
4030 (license license:expat)))
4031
4032 (define-public ghc-edisoncore
4033 (package
4034 (name "ghc-edisoncore")
4035 (version "1.3.2.1")
4036 (source
4037 (origin
4038 (method url-fetch)
4039 (uri (string-append "https://hackage.haskell.org/package/EdisonCore"
4040 "/EdisonCore-" version ".tar.gz"))
4041 (sha256
4042 (base32 "0fgj5iwiv3v2gdgx7kjcr15dcs4x1kvmjspp3p99wyhh0x6h3ikk"))))
4043 (build-system haskell-build-system)
4044 (inputs
4045 `(("ghc-quickcheck" ,ghc-quickcheck)
4046 ("ghc-edisonapi" ,ghc-edisonapi)))
4047 (home-page "http://rwd.rdockins.name/edison/home/")
4048 (synopsis "Library of efficient, purely-functional data structures")
4049 (description
4050 "This package provides the core Edison data structure implementations,
4051 including multiple sequence, set, bag, and finite map concrete implementations
4052 with various performance characteristics.")
4053 (license license:expat)))
4054
4055 (define-public ghc-mmorph
4056 (package
4057 (name "ghc-mmorph")
4058 (version "1.1.2")
4059 (source
4060 (origin
4061 (method url-fetch)
4062 (uri (string-append
4063 "https://hackage.haskell.org/package/mmorph/mmorph-"
4064 version
4065 ".tar.gz"))
4066 (sha256
4067 (base32
4068 "1gjz1ib968lqybma7my1n19qq6cdj6a7nskrlnwy4jy9jrwzs2n9"))))
4069 (build-system haskell-build-system)
4070 (inputs
4071 `(("ghc-transformers-compat" ,ghc-transformers-compat)))
4072 (home-page "https://hackage.haskell.org/package/mmorph")
4073 (synopsis "Monad morphisms")
4074 (description
4075 "This library provides monad morphism utilities, most commonly used for
4076 manipulating monad transformer stacks.")
4077 (license license:bsd-3)))
4078
4079 (define-public ghc-ifelse
4080 (package
4081 (name "ghc-ifelse")
4082 (version "0.85")
4083 (source
4084 (origin
4085 (method url-fetch)
4086 (uri (string-append "https://hackage.haskell.org/package/"
4087 "IfElse/IfElse-" version ".tar.gz"))
4088 (sha256
4089 (base32
4090 "1kfx1bwfjczj93a8yqz1n8snqiq5655qgzwv1lrycry8wb1vzlwa"))))
4091 (build-system haskell-build-system)
4092 (home-page "http://hackage.haskell.org/package/IfElse")
4093 (synopsis "Monadic control flow with anaphoric variants")
4094 (description "This library provides functions for control flow inside of
4095 monads with anaphoric variants on @code{if} and @code{when} and a C-like
4096 @code{switch} function.")
4097 (license license:bsd-3)))
4098
4099 (define-public ghc-monad-control
4100 (package
4101 (name "ghc-monad-control")
4102 (version "1.0.2.3")
4103 (source
4104 (origin
4105 (method url-fetch)
4106 (uri (string-append
4107 "https://hackage.haskell.org/package/monad-control"
4108 "/monad-control-" version ".tar.gz"))
4109 (sha256
4110 (base32
4111 "1c92833gr6cadidjdp8mlznkpp8lyxl0w3y7d19y8yi3klc3843c"))))
4112 (build-system haskell-build-system)
4113 (inputs
4114 `(("ghc-stm" ,ghc-stm)
4115 ("ghc-transformers-base" ,ghc-transformers-base)
4116 ("ghc-transformers-compat" ,ghc-transformers-compat)))
4117 (home-page "https://github.com/basvandijk/monad-control")
4118 (synopsis "Monad transformers to lift control operations like exception
4119 catching")
4120 (description "This package defines the type class @code{MonadBaseControl},
4121 a subset of @code{MonadBase} into which generic control operations such as
4122 @code{catch} can be lifted from @code{IO} or any other base monad.")
4123 (license license:bsd-3)))
4124
4125 (define-public ghc-fail
4126 (package
4127 (name "ghc-fail")
4128 (version "4.9.0.0")
4129 (source
4130 (origin
4131 (method url-fetch)
4132 (uri (string-append "https://hackage.haskell.org/package/fail/fail-"
4133 version ".tar.gz"))
4134 (sha256
4135 (base32 "18nlj6xvnggy61gwbyrpmvbdkq928wv0wx2zcsljb52kbhddnp3d"))))
4136 (build-system haskell-build-system)
4137 (arguments `(#:haddock? #f)) ; Package contains no documentation.
4138 (home-page "https://prime.haskell.org/wiki/Libraries/Proposals/MonadFail")
4139 (synopsis "Forward-compatible MonadFail class")
4140 (description
4141 "This package contains the @code{Control.Monad.Fail} module providing the
4142 @uref{https://prime.haskell.org/wiki/Libraries/Proposals/MonadFail, MonadFail}
4143 class that became available in
4144 @uref{https://hackage.haskell.org/package/base-4.9.0.0, base-4.9.0.0} for
4145 older @code{base} package versions. This package turns into an empty package
4146 when used with GHC versions which already provide the
4147 @code{Control.Monad.Fail} module.")
4148 (license license:bsd-3)))
4149
4150 (define-public ghc-monadplus
4151 (package
4152 (name "ghc-monadplus")
4153 (version "1.4.2")
4154 (source
4155 (origin
4156 (method url-fetch)
4157 (uri (string-append "https://hackage.haskell.org/package/monadplus"
4158 "/monadplus-" version ".tar.gz"))
4159 (sha256
4160 (base32 "15b5320wdpmdp5slpphnc1x4rhjch3igw245dp2jxbqyvchdavin"))))
4161 (build-system haskell-build-system)
4162 (home-page "https://hackage.haskell.org/package/monadplus")
4163 (synopsis "Filtering and folding over arbitrary MonadPlus instances")
4164 (description
4165 "This package generalizes many common stream operations such as
4166 @code{filter}, @code{catMaybes} etc, enabling filtering and folding over
4167 arbitrary @code{MonadPlus} instances.")
4168 (license license:bsd-3)))
4169
4170 (define-public ghc-byteorder
4171 (package
4172 (name "ghc-byteorder")
4173 (version "1.0.4")
4174 (source
4175 (origin
4176 (method url-fetch)
4177 (uri (string-append
4178 "https://hackage.haskell.org/package/byteorder/byteorder-"
4179 version
4180 ".tar.gz"))
4181 (sha256
4182 (base32
4183 "06995paxbxk8lldvarqpb3ygcjbg4v8dk4scib1rjzwlhssvn85x"))))
4184 (build-system haskell-build-system)
4185 (home-page
4186 "http://community.haskell.org/~aslatter/code/byteorder")
4187 (synopsis
4188 "Exposes the native endianness of the system")
4189 (description
4190 "This package is for working with the native byte-ordering of the
4191 system.")
4192 (license license:bsd-3)))
4193
4194 (define-public ghc-base-compat
4195 (package
4196 (name "ghc-base-compat")
4197 (version "0.9.3")
4198 (source
4199 (origin
4200 (method url-fetch)
4201 (uri (string-append
4202 "https://hackage.haskell.org/package/base-compat/base-compat-"
4203 version
4204 ".tar.gz"))
4205 (sha256
4206 (base32
4207 "0452l6zf6fjhy4kxqwv6i6hhg6yfx4wcg450k3axpyj30l7jnq3x"))))
4208 (build-system haskell-build-system)
4209 (native-inputs
4210 `(("ghc-quickcheck" ,ghc-quickcheck)
4211 ("ghc-hspec" ,ghc-hspec)
4212 ("hspec-discover" ,hspec-discover)))
4213 (home-page "https://hackage.haskell.org/package/base-compat")
4214 (synopsis "Haskell compiler compatibility library")
4215 (description "This library provides functions available in later versions
4216 of base to a wider range of compilers, without requiring the use of CPP
4217 pragmas in your code.")
4218 (license license:bsd-3)))
4219
4220 (define-public ghc-blaze-builder
4221 (package
4222 (name "ghc-blaze-builder")
4223 (version "0.4.1.0")
4224 (source
4225 (origin
4226 (method url-fetch)
4227 (uri (string-append
4228 "https://hackage.haskell.org/package/blaze-builder/blaze-builder-"
4229 version
4230 ".tar.gz"))
4231 (sha256
4232 (base32
4233 "05681dih2d8s96an945wkbwl05w8ddbcfx8n3r3ck79ydyb8pz4i"))))
4234 (build-system haskell-build-system)
4235 (arguments `(#:tests? #f)) ; FIXME: Missing test libraries.
4236 (inputs
4237 `(("ghc-text" ,ghc-text)
4238 ("ghc-utf8-string" ,ghc-utf8-string)))
4239 (home-page "https://github.com/lpsmith/blaze-builder")
4240 (synopsis "Efficient buffered output")
4241 (description "This library provides an implementation of the older
4242 @code{blaze-builder} interface in terms of the new builder that shipped with
4243 @code{bytestring-0.10.4.0}. This implementation is mostly intended as a
4244 bridge to the new builder, so that code that uses the old interface can
4245 interoperate with code that uses the new implementation.")
4246 (license license:bsd-3)))
4247
4248 (define-public ghc-blaze-markup
4249 (package
4250 (name "ghc-blaze-markup")
4251 (version "0.8.2.0")
4252 (source
4253 (origin
4254 (method url-fetch)
4255 (uri (string-append "https://hackage.haskell.org/package/"
4256 "blaze-markup/blaze-markup-"
4257 version ".tar.gz"))
4258 (sha256
4259 (base32
4260 "0m3h3ryxj5r74mv5g5dnfq5jbbwmvkl7ray18vi20d5vd93sydj4"))))
4261 (build-system haskell-build-system)
4262 (inputs
4263 `(("ghc-blaze-builder" ,ghc-blaze-builder)
4264 ("ghc-text" ,ghc-text)))
4265 (native-inputs
4266 `(("ghc-hunit" ,ghc-hunit)
4267 ("ghc-quickcheck" ,ghc-quickcheck)
4268 ("ghc-tasty" ,ghc-tasty)
4269 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
4270 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
4271 (home-page "https://jaspervdj.be/blaze")
4272 (synopsis "Fast markup combinator library for Haskell")
4273 (description "This library provides core modules of a markup combinator
4274 library for Haskell.")
4275 (license license:bsd-3)))
4276
4277 (define-public ghc-easy-file
4278 (package
4279 (name "ghc-easy-file")
4280 (version "0.2.2")
4281 (source
4282 (origin
4283 (method url-fetch)
4284 (uri (string-append
4285 "https://hackage.haskell.org/package/easy-file/easy-file-"
4286 version
4287 ".tar.gz"))
4288 (sha256
4289 (base32
4290 "0zmlcz723051qpn8l8vi51c5rx1blwrw4094jcshkmj8p9r2xxaj"))))
4291 (build-system haskell-build-system)
4292 (home-page
4293 "https://github.com/kazu-yamamoto/easy-file")
4294 (synopsis "File handling library for Haskell")
4295 (description "This library provides file handling utilities for Haskell.")
4296 (license license:bsd-3)))
4297
4298 (define-public ghc-async
4299 (package
4300 (name "ghc-async")
4301 (version "2.1.1.1")
4302 (source
4303 (origin
4304 (method url-fetch)
4305 (uri (string-append
4306 "https://hackage.haskell.org/package/async/async-"
4307 version
4308 ".tar.gz"))
4309 (sha256
4310 (base32
4311 "1qj4fp1ynwg0l453gmm27vgkzb5k5m2hzdlg5rdqi9kf8rqy90yd"))))
4312 (build-system haskell-build-system)
4313 (inputs
4314 `(("ghc-stm" ,ghc-stm)
4315 ("ghc-hunit" ,ghc-hunit)
4316 ("ghc-test-framework" ,ghc-test-framework)
4317 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)))
4318 (home-page "https://github.com/simonmar/async")
4319 (synopsis "Library to run IO operations asynchronously")
4320 (description "Async provides a library to run IO operations
4321 asynchronously, and wait for their results. It is a higher-level interface
4322 over threads in Haskell, in which @code{Async a} is a concurrent thread that
4323 will eventually deliver a value of type @code{a}.")
4324 (license license:bsd-3)))
4325
4326 (define-public ghc-fingertree
4327 (package
4328 (name "ghc-fingertree")
4329 (version "0.1.3.0")
4330 (source
4331 (origin
4332 (method url-fetch)
4333 (uri (string-append
4334 "https://hackage.haskell.org/package/fingertree/fingertree-"
4335 version ".tar.gz"))
4336 (sha256
4337 (base32
4338 "1ryjj7qrx70ckcjlr02x9zh86kfp76azbxq05r7hawqkaqg44sfs"))))
4339 (build-system haskell-build-system)
4340 (native-inputs
4341 `(("ghc-hunit" ,ghc-hunit)
4342 ("ghc-quickcheck" ,ghc-quickcheck)
4343 ("ghc-test-framework" ,ghc-test-framework)
4344 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
4345 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
4346 (home-page "https://hackage.haskell.org/package/fingertree")
4347 (synopsis "Generic finger-tree structure")
4348 (description "This library provides finger trees, a general sequence
4349 representation with arbitrary annotations, for use as a base for
4350 implementations of various collection types. It includes examples, as
4351 described in section 4 of Ralf Hinze and Ross Paterson, \"Finger trees: a
4352 simple general-purpose data structure\".")
4353 (license license:bsd-3)))
4354
4355 (define-public ghc-optparse-applicative
4356 (package
4357 (name "ghc-optparse-applicative")
4358 (version "0.14.2.0")
4359 (source
4360 (origin
4361 (method url-fetch)
4362 (uri (string-append
4363 "https://hackage.haskell.org/package/optparse-applicative"
4364 "/optparse-applicative-" version ".tar.gz"))
4365 (sha256
4366 (base32
4367 "0c3z1mvynlyv1garjbdmdd3npm40dabgm75js4r07cf766c1wd71"))))
4368 (build-system haskell-build-system)
4369 (inputs
4370 `(("ghc-transformers-compat" ,ghc-transformers-compat)
4371 ("ghc-ansi-wl-pprint" ,ghc-ansi-wl-pprint)))
4372 (native-inputs
4373 `(("ghc-quickcheck" ,ghc-quickcheck)))
4374 (home-page "https://github.com/pcapriotti/optparse-applicative")
4375 (synopsis "Utilities and combinators for parsing command line options")
4376 (description "This package provides utilities and combinators for parsing
4377 command line options in Haskell.")
4378 (license license:bsd-3)))
4379
4380 (define-public ghc-base-orphans
4381 (package
4382 (name "ghc-base-orphans")
4383 (version "0.6")
4384 (source
4385 (origin
4386 (method url-fetch)
4387 (uri (string-append
4388 "https://hackage.haskell.org/package/base-orphans/base-orphans-"
4389 version
4390 ".tar.gz"))
4391 (sha256
4392 (base32
4393 "03mdww5j0gwai7aqlx3m71ldmjcr99jzpkcclzjfclk6a6kjla67"))))
4394 (build-system haskell-build-system)
4395 (native-inputs
4396 `(("ghc-quickcheck" ,ghc-quickcheck)
4397 ("ghc-hspec" ,ghc-hspec)
4398 ("hspec-discover" ,hspec-discover)))
4399 (home-page "https://hackage.haskell.org/package/base-orphans")
4400 (synopsis "Orphan instances for backwards compatibility")
4401 (description "This package defines orphan instances that mimic instances
4402 available in later versions of base to a wider (older) range of compilers.")
4403 (license license:bsd-3)))
4404
4405 (define-public ghc-auto-update
4406 (package
4407 (name "ghc-auto-update")
4408 (version "0.1.4")
4409 (source
4410 (origin
4411 (method url-fetch)
4412 (uri (string-append
4413 "https://hackage.haskell.org/package/auto-update/auto-update-"
4414 version
4415 ".tar.gz"))
4416 (sha256
4417 (base32
4418 "09dlh2alsx2mw5kvj931yhbj0aw7jmly2cm9xbscm2sf098w35jy"))))
4419 (build-system haskell-build-system)
4420 (home-page "https://github.com/yesodweb/wai")
4421 (synopsis "Efficiently run periodic, on-demand actions")
4422 (description "This library provides mechanisms to efficiently run
4423 periodic, on-demand actions in Haskell.")
4424 (license license:expat)))
4425
4426 (define-public ghc-tagged
4427 (package
4428 (name "ghc-tagged")
4429 (version "0.8.5")
4430 (source
4431 (origin
4432 (method url-fetch)
4433 (uri (string-append
4434 "https://hackage.haskell.org/package/tagged/tagged-"
4435 version
4436 ".tar.gz"))
4437 (sha256
4438 (base32
4439 "16cdzh0bw16nvjnyyy5j9s60malhz4nnazw96vxb0xzdap4m2z74"))))
4440 (build-system haskell-build-system)
4441 (arguments
4442 `(#:cabal-revision
4443 ("2" "0r2knfcq0b4s652vlvlnfwxlc2mkc2ra9kl8bp4zdn1awmfy0ia5")))
4444 (inputs
4445 `(("ghc-transformers-compat" ,ghc-transformers-compat)))
4446 (home-page "https://hackage.haskell.org/package/tagged")
4447 (synopsis "Haskell phantom types to avoid passing dummy arguments")
4448 (description "This library provides phantom types for Haskell 98, to avoid
4449 having to unsafely pass dummy arguments.")
4450 (license license:bsd-3)))
4451
4452 (define-public ghc-unbounded-delays
4453 (package
4454 (name "ghc-unbounded-delays")
4455 (version "0.1.1.0")
4456 (source
4457 (origin
4458 (method url-fetch)
4459 (uri (string-append
4460 "https://hackage.haskell.org/package/unbounded-delays/unbounded-delays-"
4461 version
4462 ".tar.gz"))
4463 (sha256
4464 (base32
4465 "1ir9fghbrc214c97bwafk5ck6cacxz1pdnq4i18p604d1b8zg9wa"))))
4466 (build-system haskell-build-system)
4467 (home-page "https://github.com/basvandijk/unbounded-delays")
4468 (synopsis "Unbounded thread delays and timeouts")
4469 (description "The @code{threadDelay} and @code{timeout} functions from the
4470 Haskell base library use the bounded @code{Int} type for specifying the delay
4471 or timeout period. This package provides alternative functions which use the
4472 unbounded @code{Integer} type.")
4473 (license license:bsd-3)))
4474
4475 (define-public ghc-clock
4476 (package
4477 (name "ghc-clock")
4478 (version "0.7.2")
4479 (source
4480 (origin
4481 (method url-fetch)
4482 (uri (string-append
4483 "https://hackage.haskell.org/package/"
4484 "clock/"
4485 "clock-" version ".tar.gz"))
4486 (sha256
4487 (base32 "07v91s20halsqjmziqb1sqjp2sjpckl9by7y28aaklwqi2bh2rl8"))))
4488 (build-system haskell-build-system)
4489 (inputs
4490 `(("ghc-tasty" ,ghc-tasty)
4491 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
4492 (home-page "https://hackage.haskell.org/package/clock")
4493 (synopsis "High-resolution clock for Haskell")
4494 (description "A package for convenient access to high-resolution clock and
4495 timer functions of different operating systems via a unified API.")
4496 (license license:bsd-3)))
4497
4498 (define-public ghc-charset
4499 (package
4500 (name "ghc-charset")
4501 (version "0.3.7.1")
4502 (source
4503 (origin
4504 (method url-fetch)
4505 (uri (string-append
4506 "https://hackage.haskell.org/package/charset/charset-"
4507 version
4508 ".tar.gz"))
4509 (sha256
4510 (base32
4511 "1gn0m96qpjww8hpp2g1as5yy0wcwy4iq73h3kz6g0yxxhcl5sh9x"))))
4512 (build-system haskell-build-system)
4513 (inputs
4514 `(("ghc-semigroups" ,ghc-semigroups)
4515 ("ghc-unordered-containers" ,ghc-unordered-containers)))
4516 (home-page "https://github.com/ekmett/charset")
4517 (synopsis "Fast unicode character sets for Haskell")
4518 (description "This package provides fast unicode character sets for
4519 Haskell, based on complemented PATRICIA tries.")
4520 (license license:bsd-3)))
4521
4522 (define-public ghc-bytestring-builder
4523 (package
4524 (name "ghc-bytestring-builder")
4525 (version "0.10.8.1.0")
4526 (source
4527 (origin
4528 (method url-fetch)
4529 (uri (string-append
4530 "https://hackage.haskell.org/package/bytestring-builder"
4531 "/bytestring-builder-" version ".tar.gz"))
4532 (sha256
4533 (base32
4534 "1hnvjac28y44yn78c9vdp1zvrknvlw98ky3g4n5vivr16rvh8x3d"))))
4535 (build-system haskell-build-system)
4536 (arguments `(#:haddock? #f)) ; Package contains no documentation.
4537 (home-page "https://hackage.haskell.org/package/bytestring-builder")
4538 (synopsis "The new bytestring builder, packaged outside of GHC")
4539 (description "This package provides the bytestring builder that is
4540 debuting in bytestring-0.10.4.0, which should be shipping with GHC 7.8.
4541 Compatibility package for older packages.")
4542 (license license:bsd-3)))
4543
4544 (define-public ghc-nats
4545 (package
4546 (name "ghc-nats")
4547 (version "1.1.1")
4548 (source
4549 (origin
4550 (method url-fetch)
4551 (uri (string-append
4552 "https://hackage.haskell.org/package/nats/nats-"
4553 version
4554 ".tar.gz"))
4555 (sha256
4556 (base32
4557 "1kfl2yy97nb7q0j17v96rl73xvi3z4db9bk0xychc76dax41n78k"))))
4558 (build-system haskell-build-system)
4559 (arguments `(#:haddock? #f))
4560 (inputs
4561 `(("ghc-hashable" ,ghc-hashable)))
4562 (home-page "https://hackage.haskell.org/package/nats")
4563 (synopsis "Natural numbers")
4564 (description "This library provides the natural numbers for Haskell.")
4565 (license license:bsd-3)))
4566
4567 (define-public ghc-void
4568 (package
4569 (name "ghc-void")
4570 (version "0.7.1")
4571 (source
4572 (origin
4573 (method url-fetch)
4574 (uri (string-append
4575 "https://hackage.haskell.org/package/void/void-"
4576 version
4577 ".tar.gz"))
4578 (sha256
4579 (base32
4580 "1x15x2axz84ndw2bf60vjqljhrb0w95lddaljsxrl0hcd29zvw69"))))
4581 (build-system haskell-build-system)
4582 (inputs
4583 `(("ghc-semigroups" ,ghc-semigroups)
4584 ("ghc-hashable" ,ghc-hashable)))
4585 (home-page "https://github.com/ekmett/void")
4586 (synopsis
4587 "Logically uninhabited data type")
4588 (description
4589 "A Haskell 98 logically uninhabited data type, used to indicate that a
4590 given term should not exist.")
4591 (license license:bsd-3)))
4592
4593 (define-public ghc-kan-extensions
4594 (package
4595 (name "ghc-kan-extensions")
4596 (version "5.0.1")
4597 (source
4598 (origin
4599 (method url-fetch)
4600 (uri (string-append
4601 "https://hackage.haskell.org/package/kan-extensions/kan-extensions-"
4602 version
4603 ".tar.gz"))
4604 (sha256
4605 (base32
4606 "1qm0kf4krmyjbjynn96ab0h3q117vwcia5nin7n2b8b4f3jrzph1"))))
4607 (build-system haskell-build-system)
4608 (inputs
4609 `(("ghc-adjunctions" ,ghc-adjunctions)
4610 ("ghc-comonad" ,ghc-comonad)
4611 ("ghc-contravariant" ,ghc-contravariant)
4612 ("ghc-distributive" ,ghc-distributive)
4613 ("ghc-free" ,ghc-free)
4614 ("ghc-semigroupoids" ,ghc-semigroupoids)
4615 ("ghc-tagged" ,ghc-tagged)))
4616 (home-page "https://github.com/ekmett/kan-extensions/")
4617 (synopsis "Kan extensions library")
4618 (description "This library provides Kan extensions, Kan lifts, various
4619 forms of the Yoneda lemma, and (co)density (co)monads for Haskell.")
4620 (license license:bsd-3)))
4621
4622 (define-public ghc-call-stack
4623 (package
4624 (name "ghc-call-stack")
4625 (version "0.1.0")
4626 (source
4627 (origin
4628 (method url-fetch)
4629 (uri (string-append "https://hackage.haskell.org/package/"
4630 "call-stack/call-stack-"
4631 version ".tar.gz"))
4632 (sha256
4633 (base32
4634 "1qmihf5jafmc79sk52l6gpx75f5bnla2lp62kh3p34x3j84mwpzj"))))
4635 (build-system haskell-build-system)
4636 (inputs `(("ghc-nanospec" ,ghc-nanospec)))
4637 (home-page "https://github.com/sol/call-stack#readme")
4638 (synopsis "Use GHC call-stacks in a backward compatible way")
4639 (description "This package provides a compatibility layer for using GHC
4640 call stacks with different versions of the compiler.")
4641 (license license:expat)))
4642
4643 ;; This is used as an input to ghc-hunit. We cannot use ghc-call-stack there,
4644 ;; because it depends on ghc-nanospec, which depends on ghc-hunit.
4645 (define-public ghc-call-stack-boot
4646 (package
4647 (inherit ghc-call-stack)
4648 (arguments '(#:tests? #f))
4649 (inputs '())))
4650
4651 (define-public ghc-statevar
4652 (package
4653 (name "ghc-statevar")
4654 (version "1.1.1.1")
4655 (source
4656 (origin
4657 (method url-fetch)
4658 (uri (string-append
4659 "https://hackage.haskell.org/package/StateVar/StateVar-"
4660 version
4661 ".tar.gz"))
4662 (sha256
4663 (base32
4664 "08r2iw0gdmfs4f6wraaq19vfmkjdbics3dbhw39y7mdjd98kcr7b"))))
4665 (build-system haskell-build-system)
4666 (inputs
4667 `(("ghc-stm" ,ghc-stm)))
4668 (home-page "https://hackage.haskell.org/package/StateVar")
4669 (synopsis "State variables for Haskell")
4670 (description "This package provides state variables, which are references
4671 in the @code{IO} monad, like @code{IORef}s or parts of the OpenGL state.")
4672 (license license:bsd-3)))
4673
4674 (define-public ghc-lens
4675 (package
4676 (name "ghc-lens")
4677 (version "4.15.4")
4678 (source
4679 (origin
4680 (method url-fetch)
4681 (uri (string-append "https://hackage.haskell.org/package/lens/lens-"
4682 version ".tar.gz"))
4683 (sha256
4684 (base32
4685 "1lkwlnhgpgnsz046mw4qs0fa7h4l012gilrr3nf3spllsy3pnbkl"))))
4686 (build-system haskell-build-system)
4687 (inputs
4688 `(("ghc-base-orphans" ,ghc-base-orphans)
4689 ("ghc-bifunctors" ,ghc-bifunctors)
4690 ("ghc-doctest" ,ghc-doctest-0.13)
4691 ("ghc-distributive" ,ghc-distributive)
4692 ("ghc-exceptions" ,ghc-exceptions)
4693 ("ghc-free" ,ghc-free)
4694 ("ghc-kan-extensions" ,ghc-kan-extensions)
4695 ("ghc-parallel" ,ghc-parallel)
4696 ("ghc-reflection" ,ghc-reflection)
4697 ("ghc-semigroupoids" ,ghc-semigroupoids)
4698 ("ghc-vector" ,ghc-vector)
4699 ("ghc-call-stack" ,ghc-call-stack)
4700 ("ghc-comonad" ,ghc-comonad)
4701 ("ghc-contravariant" ,ghc-contravariant)
4702 ("ghc-hashable" ,ghc-hashable)
4703 ("ghc-profunctors" ,ghc-profunctors)
4704 ("ghc-semigroups" ,ghc-semigroups)
4705 ("ghc-tagged" ,ghc-tagged)
4706 ("ghc-text" ,ghc-text)
4707 ("ghc-transformers-compat" ,ghc-transformers-compat)
4708 ("ghc-unordered-containers" ,ghc-unordered-containers)
4709 ("ghc-void" ,ghc-void)
4710 ("ghc-generic-deriving" ,ghc-generic-deriving)
4711 ("ghc-nats" ,ghc-nats)
4712 ("ghc-simple-reflect" ,ghc-simple-reflect)
4713 ("hlint" ,hlint)))
4714 (native-inputs
4715 `(("cabal-doctest" ,cabal-doctest)
4716 ("ghc-hunit" ,ghc-hunit)
4717 ("ghc-test-framework" ,ghc-test-framework)
4718 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
4719 ("ghc-test-framework-th" ,ghc-test-framework-th)
4720 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)
4721 ("ghc-quickcheck" ,ghc-quickcheck)))
4722 (home-page "https://github.com/ekmett/lens/")
4723 (synopsis "Lenses, Folds and Traversals")
4724 (description "This library provides @code{Control.Lens}. The combinators
4725 in @code{Control.Lens} provide a highly generic toolbox for composing families
4726 of getters, folds, isomorphisms, traversals, setters and lenses and their
4727 indexed variants.")
4728 (license license:bsd-3)))
4729
4730 (define-public ghc-cheapskate
4731 (package
4732 (name "ghc-cheapskate")
4733 (version "0.1.1")
4734 (source
4735 (origin
4736 (method url-fetch)
4737 (uri (string-append
4738 "https://hackage.haskell.org/package/cheapskate/cheapskate-"
4739 version
4740 ".tar.gz"))
4741 (sha256
4742 (base32
4743 "1hiqi7h76shjzs2zj0j8g6wnq2hbiq1hmfafdazr97fba2zl2432"))))
4744 (build-system haskell-build-system)
4745 (inputs
4746 `(("ghc-text" ,ghc-text)
4747 ("ghc-blaze-html" ,ghc-blaze-html)
4748 ("ghc-xss-sanitize" ,ghc-xss-sanitize)
4749 ("ghc-data-default" ,ghc-data-default)
4750 ("ghc-syb" ,ghc-syb)
4751 ("ghc-uniplate" ,ghc-uniplate)))
4752 (home-page "https://github.com/jgm/cheapskate")
4753 (synopsis "Experimental markdown processor")
4754 (description "Cheapskate is an experimental Markdown processor in pure
4755 Haskell. It aims to process Markdown efficiently and in the most forgiving
4756 possible way. It is designed to deal with any input, including garbage, with
4757 linear performance. Output is sanitized by default for protection against
4758 cross-site scripting (@dfn{XSS}) attacks.")
4759 (license license:bsd-3)))
4760
4761 (define-public ghc-bifunctors
4762 (package
4763 (name "ghc-bifunctors")
4764 (version "5.5.2")
4765 (source
4766 (origin
4767 (method url-fetch)
4768 (uri (string-append
4769 "https://hackage.haskell.org/package/bifunctors/bifunctors-"
4770 version
4771 ".tar.gz"))
4772 (sha256
4773 (base32
4774 "04fbsysm6zl8kmvqgffmrqa9bxl9dl2gibrd51asqzg737mb4ark"))))
4775 (build-system haskell-build-system)
4776 (inputs
4777 `(("ghc-base-orphans" ,ghc-base-orphans)
4778 ("ghc-comonad" ,ghc-comonad)
4779 ("ghc-th-abstraction" ,ghc-th-abstraction)
4780 ("ghc-transformers-compat" ,ghc-transformers-compat)
4781 ("ghc-tagged" ,ghc-tagged)
4782 ("ghc-semigroups" ,ghc-semigroups)))
4783 (native-inputs
4784 `(("ghc-hspec" ,ghc-hspec)
4785 ("hspec-discover" ,hspec-discover)
4786 ("ghc-quickcheck" ,ghc-quickcheck)))
4787 (home-page "https://github.com/ekmett/bifunctors/")
4788 (synopsis "Bifunctors for Haskell")
4789 (description "This package provides bifunctors for Haskell.")
4790 (license license:bsd-3)))
4791
4792 (define-public ghc-semigroupoids
4793 (package
4794 (name "ghc-semigroupoids")
4795 (version "5.1")
4796 (source
4797 (origin
4798 (method url-fetch)
4799 (uri (string-append
4800 "https://hackage.haskell.org/package/semigroupoids/semigroupoids-"
4801 version
4802 ".tar.gz"))
4803 (sha256
4804 (base32
4805 "0dgqc59p4xx5cl8qkpm6sn4wd3n59rq7l6din76hf10bnklqrb0n"))))
4806 (build-system haskell-build-system)
4807 (arguments `(#:tests? #f)) ; FIXME: doctest packagedb propagation problem.
4808 (inputs
4809 `(("ghc-base-orphans" ,ghc-base-orphans)
4810 ("ghc-transformers-compat" ,ghc-transformers-compat)
4811 ("ghc-bifunctors" ,ghc-bifunctors)
4812 ("ghc-comonad" ,ghc-comonad)
4813 ("ghc-contravariant" ,ghc-contravariant)
4814 ("ghc-distributive" ,ghc-distributive)
4815 ("ghc-semigroups" ,ghc-semigroups)
4816 ("ghc-tagged" ,ghc-tagged)))
4817 (home-page "https://github.com/ekmett/semigroupoids")
4818 (synopsis "Semigroupoids operations for Haskell")
4819 (description "This library provides a wide array of (semi)groupoids and
4820 operations for working with them. A @code{Semigroupoid} is a @code{Category}
4821 without the requirement of identity arrows for every object in the category.
4822 A @code{Category} is any @code{Semigroupoid} for which the Yoneda lemma holds.
4823 Finally, to work with these weaker structures it is beneficial to have
4824 containers that can provide stronger guarantees about their contents, so
4825 versions of @code{Traversable} and @code{Foldable} that can be folded with
4826 just a @code{Semigroup} are added.")
4827 (license license:bsd-3)))
4828
4829 (define-public ghc-contravariant
4830 (package
4831 (name "ghc-contravariant")
4832 (version "1.4")
4833 (source
4834 (origin
4835 (method url-fetch)
4836 (uri (string-append
4837 "https://hackage.haskell.org/package/contravariant/contravariant-"
4838 version
4839 ".tar.gz"))
4840 (sha256
4841 (base32
4842 "117fff8kkrvlmr8cb2jpj71z7lf2pdiyks6ilyx89mry6zqnsrp1"))))
4843 (build-system haskell-build-system)
4844 (inputs
4845 `(("ghc-void" ,ghc-void)
4846 ("ghc-transformers-compat" ,ghc-transformers-compat)
4847 ("ghc-statevar" ,ghc-statevar)
4848 ("ghc-semigroups" ,ghc-semigroups)))
4849 (home-page
4850 "https://github.com/ekmett/contravariant/")
4851 (synopsis "Contravariant functors")
4852 (description "Contravariant functors for Haskell.")
4853 (license license:bsd-3)))
4854
4855 (define-public ghc-semigroups
4856 (package
4857 (name "ghc-semigroups")
4858 (version "0.18.2")
4859 (source
4860 (origin
4861 (method url-fetch)
4862 (uri (string-append
4863 "https://hackage.haskell.org/package/semigroups/semigroups-"
4864 version
4865 ".tar.gz"))
4866 (sha256
4867 (base32
4868 "1r6hsn3am3dpf4rprrj4m04d9318v9iq02bin0pl29dg4a3gzjax"))))
4869 (build-system haskell-build-system)
4870 (inputs
4871 `(("ghc-nats" ,ghc-nats)
4872 ("ghc-tagged" ,ghc-tagged)
4873 ("ghc-unordered-containers" ,ghc-unordered-containers)
4874 ("ghc-text" ,ghc-text)
4875 ("ghc-hashable" ,ghc-hashable)))
4876 (home-page "https://github.com/ekmett/semigroups/")
4877 (synopsis "Semigroup operations for Haskell")
4878 (description "This package provides semigroups for Haskell. In
4879 mathematics, a semigroup is an algebraic structure consisting of a set
4880 together with an associative binary operation. A semigroup generalizes a
4881 monoid in that there might not exist an identity element. It
4882 also (originally) generalized a group (a monoid with all inverses) to a type
4883 where every element did not have to have an inverse, thus the name
4884 semigroup.")
4885 (license license:bsd-3)))
4886
4887 (define-public ghc-free
4888 (package
4889 (name "ghc-free")
4890 (version "4.12.4")
4891 (source
4892 (origin
4893 (method url-fetch)
4894 (uri (string-append
4895 "https://hackage.haskell.org/package/free/free-"
4896 version
4897 ".tar.gz"))
4898 (sha256
4899 (base32
4900 "1147s393442xf4gkpbq0rd1p286vmykgx85mxhk5d1c7wfm4bzn9"))))
4901 (build-system haskell-build-system)
4902 (inputs
4903 `(("ghc-prelude-extras" ,ghc-prelude-extras)
4904 ("ghc-profunctors" ,ghc-profunctors)
4905 ("ghc-exceptions" ,ghc-exceptions)
4906 ("ghc-bifunctors" ,ghc-bifunctors)
4907 ("ghc-comonad" ,ghc-comonad)
4908 ("ghc-distributive" ,ghc-distributive)
4909 ("ghc-semigroupoids" ,ghc-semigroupoids)
4910 ("ghc-semigroups" ,ghc-semigroups)))
4911 (home-page "https://github.com/ekmett/free/")
4912 (synopsis "Unrestricted monads for Haskell")
4913 (description "This library provides free monads, which are useful for many
4914 tree-like structures and domain specific languages. If @code{f} is a
4915 @code{Functor} then the free @code{Monad} on @code{f} is the type of trees
4916 whose nodes are labeled with the constructors of @code{f}. The word \"free\"
4917 is used in the sense of \"unrestricted\" rather than \"zero-cost\": @code{Free
4918 f} makes no constraining assumptions beyond those given by @code{f} and the
4919 definition of @code{Monad}.")
4920 (license license:bsd-3)))
4921
4922 (define-public ghc-adjunctions
4923 (package
4924 (name "ghc-adjunctions")
4925 (version "4.3")
4926 (source
4927 (origin
4928 (method url-fetch)
4929 (uri (string-append
4930 "https://hackage.haskell.org/package/adjunctions/adjunctions-"
4931 version
4932 ".tar.gz"))
4933 (sha256
4934 (base32
4935 "1k1ykisf96i4g2zm47c45md7p42c4vsp9r73392pz1g8mx7s2j5r"))))
4936 (build-system haskell-build-system)
4937 (inputs
4938 `(("ghc-profunctors" ,ghc-profunctors)
4939 ("ghc-comonad" ,ghc-comonad)
4940 ("ghc-contravariant" ,ghc-contravariant)
4941 ("ghc-distributive" ,ghc-distributive)
4942 ("ghc-free" ,ghc-free)
4943 ("ghc-tagged" ,ghc-tagged)
4944 ("ghc-semigroupoids" ,ghc-semigroupoids)
4945 ("ghc-semigroups" ,ghc-semigroups)
4946 ("ghc-void" ,ghc-void)))
4947 (home-page "https://github.com/ekmett/adjunctions/")
4948 (synopsis "Adjunctions and representable functors")
4949 (description "This library provides adjunctions and representable functors
4950 for Haskell.")
4951 (license license:bsd-3)))
4952
4953 (define-public ghc-equivalence
4954 (package
4955 (name "ghc-equivalence")
4956 (version "0.3.2")
4957 (source
4958 (origin
4959 (method url-fetch)
4960 (uri (string-append "https://hackage.haskell.org/package/equivalence"
4961 "/equivalence-" version ".tar.gz"))
4962 (sha256
4963 (base32 "0a85bdyyvjqs5z4kfhhf758210k9gi9dv42ik66a3jl0z7aix8kx"))))
4964 (build-system haskell-build-system)
4965 (inputs
4966 `(("ghc-stmonadtrans" ,ghc-stmonadtrans)
4967 ("ghc-transformers-compat" ,ghc-transformers-compat)
4968 ("ghc-quickcheck" ,ghc-quickcheck)
4969 ("ghc-test-framework" ,ghc-test-framework)
4970 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
4971 (home-page "https://github.com/pa-ba/equivalence")
4972 (synopsis "Maintaining an equivalence relation implemented as union-find")
4973 (description
4974 "This is an implementation of Tarjan's Union-Find algorithm (Robert E.@:
4975 Tarjan. \"Efficiency of a Good But Not Linear Set Union Algorithm\",JACM
4976 22(2), 1975) in order to maintain an equivalence relation. This
4977 implementation is a port of the @code{union-find} package using the @code{ST}
4978 monad transformer (instead of the IO monad).")
4979 (license license:bsd-3)))
4980
4981 (define-public ghc-fast-logger
4982 (package
4983 (name "ghc-fast-logger")
4984 (version "2.4.11")
4985 (source
4986 (origin
4987 (method url-fetch)
4988 (uri (string-append
4989 "https://hackage.haskell.org/package/fast-logger/fast-logger-"
4990 version
4991 ".tar.gz"))
4992 (sha256
4993 (base32
4994 "1ad2vq4nifdxshqk9yrmghqizhkgybfz134kpr6padglb2mxxrdv"))))
4995 (build-system haskell-build-system)
4996 (inputs
4997 `(("ghc-auto-update" ,ghc-auto-update)
4998 ("ghc-easy-file" ,ghc-easy-file)
4999 ("ghc-text" ,ghc-text)
5000 ("ghc-unix-time" ,ghc-unix-time)))
5001 (native-inputs
5002 `(("hspec-discover" ,hspec-discover)
5003 ("ghc-hspec" ,ghc-hspec)))
5004 (home-page "https://hackage.haskell.org/package/fast-logger")
5005 (synopsis "Fast logging system")
5006 (description "This library provides a fast logging system for Haskell.")
5007 (license license:bsd-3)))
5008
5009 (define-public ghc-doctest
5010 (package
5011 (name "ghc-doctest")
5012 (version "0.11.0")
5013 (source
5014 (origin
5015 (method url-fetch)
5016 (uri (string-append
5017 "https://hackage.haskell.org/package/doctest/doctest-"
5018 version
5019 ".tar.gz"))
5020 (sha256
5021 (base32
5022 "0xv4vx1r3mk7cmiwywzrq25545cx3i7imhcx33mk47r88j5c49fj"))))
5023 (build-system haskell-build-system)
5024 (arguments `(#:tests? #f)) ; FIXME: missing test framework
5025 (inputs
5026 `(("ghc-syb" ,ghc-syb)
5027 ("ghc-paths" ,ghc-paths)
5028 ("ghc-base-compat" ,ghc-base-compat)
5029 ("ghc-hunit" ,ghc-hunit)
5030 ("ghc-hspec" ,ghc-hspec)
5031 ("ghc-quickcheck" ,ghc-quickcheck)
5032 ("ghc-stringbuilder" ,ghc-stringbuilder)
5033 ("ghc-silently" ,ghc-silently)
5034 ("ghc-setenv" ,ghc-setenv)))
5035 (home-page
5036 "https://github.com/sol/doctest#readme")
5037 (synopsis "Test interactive Haskell examples")
5038 (description "The doctest program checks examples in source code comments.
5039 It is modeled after doctest for Python, see
5040 @uref{https://docs.python.org/library/doctest.html, the Doctest website}.")
5041 (license license:expat)))
5042
5043 (define-public ghc-doctest-0.12
5044 (package (inherit ghc-doctest)
5045 (name "ghc-doctest")
5046 (version "0.12.0")
5047 (source
5048 (origin
5049 (method url-fetch)
5050 (uri (string-append
5051 "https://hackage.haskell.org/package/doctest/doctest-"
5052 version
5053 ".tar.gz"))
5054 (sha256
5055 (base32
5056 "13h549cpgcvb7c54c7wif28g5wak84dxc3ais0hlqhzk1q6la91a"))))
5057 (inputs
5058 `(("ghc-code-page" ,ghc-code-page)
5059 ,@(package-inputs ghc-doctest)))))
5060
5061 (define-public ghc-doctest-0.13
5062 (package (inherit ghc-doctest-0.12)
5063 (name "ghc-doctest")
5064 (version "0.13.0")
5065 (source
5066 (origin
5067 (method url-fetch)
5068 (uri (string-append "https://hackage.haskell.org/package/"
5069 "doctest/doctest-" version ".tar.gz"))
5070 (sha256
5071 (base32
5072 "08g3nmpqbnbkxc95d65hkhfabwax10qrq51vlynr342npn40mn2b"))))))
5073
5074 (define-public ghc-lifted-base
5075 (package
5076 (name "ghc-lifted-base")
5077 (version "0.2.3.8")
5078 (source
5079 (origin
5080 (method url-fetch)
5081 (uri (string-append
5082 "https://hackage.haskell.org/package/lifted-base/lifted-base-"
5083 version
5084 ".tar.gz"))
5085 (sha256
5086 (base32
5087 "17yz4n7q96x4cp8vxai8csn2vmpigxvipkfh48arahf91f0xy18n"))))
5088 (build-system haskell-build-system)
5089 (arguments `(#:tests? #f)) ; FIXME: Missing testing libraries.
5090 (inputs
5091 `(("ghc-transformers-base" ,ghc-transformers-base)
5092 ("ghc-monad-control" ,ghc-monad-control)
5093 ("ghc-transformers-compat" ,ghc-transformers-compat)
5094 ("ghc-hunit" ,ghc-hunit)))
5095 (home-page "https://github.com/basvandijk/lifted-base")
5096 (synopsis "Lifted IO operations from the base library")
5097 (description "Lifted-base exports IO operations from the @code{base}
5098 library lifted to any instance of @code{MonadBase} or @code{MonadBaseControl}.
5099 Note that not all modules from @code{base} are converted yet. The package
5100 includes a copy of the @code{monad-peel} test suite written by Anders
5101 Kaseorg.")
5102 (license license:bsd-3)))
5103
5104 (define-public ghc-word8
5105 (package
5106 (name "ghc-word8")
5107 (version "0.1.3")
5108 (source
5109 (origin
5110 (method url-fetch)
5111 (uri (string-append
5112 "https://hackage.haskell.org/package/word8/word8-"
5113 version
5114 ".tar.gz"))
5115 (sha256
5116 (base32
5117 "12jx7f13d2h1djq4fh4dyrab61sm49mj1w61j3rzp2vjfm696c16"))))
5118 (build-system haskell-build-system)
5119 (native-inputs
5120 `(("ghc-hspec" ,ghc-hspec)
5121 ("hspec-discover" ,hspec-discover)))
5122 (home-page "https://hackage.haskell.org/package/word8")
5123 (synopsis "Word8 library for Haskell")
5124 (description "Word8 library to be used with @code{Data.ByteString}.")
5125 (license license:bsd-3)))
5126
5127 (define-public ghc-stringsearch
5128 (package
5129 (name "ghc-stringsearch")
5130 (version "0.3.6.6")
5131 (source
5132 (origin
5133 (method url-fetch)
5134 (uri (string-append
5135 "https://hackage.haskell.org/package/stringsearch/stringsearch-"
5136 version
5137 ".tar.gz"))
5138 (sha256
5139 (base32
5140 "0jpy9xjcjdbpi3wk6mg7xwd7wfi2mma70p97v1ij5i8bj9qijpr9"))))
5141 (build-system haskell-build-system)
5142 (home-page "https://bitbucket.org/dafis/stringsearch")
5143 (synopsis "Fast searching, splitting and replacing of ByteStrings")
5144 (description "This package provides several functions to quickly search
5145 for substrings in strict or lazy @code{ByteStrings}. It also provides
5146 functions for breaking or splitting on substrings and replacing all
5147 occurrences of a substring (the first in case of overlaps) with another.")
5148 (license license:bsd-3)))
5149
5150 (define-public ghc-integer-logarithms
5151 (package
5152 (name "ghc-integer-logarithms")
5153 (version "1.0.2.1")
5154 (source
5155 (origin
5156 (method url-fetch)
5157 (uri (string-append "https://hackage.haskell.org/package/"
5158 "integer-logarithms/integer-logarithms-"
5159 version ".tar.gz"))
5160 (sha256
5161 (base32
5162 "1wj8kgjg5bn2yrs4zh9qfjv85cx6w998j9pi39yrbv305944mb9j"))))
5163 (build-system haskell-build-system)
5164 (arguments
5165 `(#:configure-flags (list "--allow-newer=tasty")))
5166 (native-inputs
5167 `(("ghc-quickcheck" ,ghc-quickcheck)
5168 ("ghc-smallcheck" ,ghc-smallcheck)
5169 ("ghc-tasty" ,ghc-tasty)
5170 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
5171 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
5172 ("ghc-tasty-smallcheck" ,ghc-tasty-smallcheck)))
5173 (home-page "https://github.com/Bodigrim/integer-logarithms")
5174 (synopsis "Integer logarithms")
5175 (description
5176 "This package provides the following modules:
5177 @code{Math.NumberTheory.Logarithms} and
5178 @code{Math.NumberTheory.Powers.Integer} from the @code{arithmoi} package,
5179 @code{GHC.Integer.Logarithms.Compat} and
5180 @code{Math.NumberTheory.Power.Natural}, as well as some additional functions
5181 in migrated modules.")
5182 (license license:expat)))
5183
5184 (define-public ghc-scientific
5185 (package
5186 (name "ghc-scientific")
5187 (version "0.3.6.2")
5188 (source
5189 (origin
5190 (method url-fetch)
5191 (uri (string-append
5192 "https://hackage.haskell.org/package/scientific/scientific-"
5193 version
5194 ".tar.gz"))
5195 (sha256
5196 (base32
5197 "03ql2f0ac8bsl524idy9xxa3kxisb2sj3avflzw580j5hzy0m397"))))
5198 (build-system haskell-build-system)
5199 (inputs
5200 `(("ghc-integer-logarithms" ,ghc-integer-logarithms)
5201 ("ghc-text" ,ghc-text)
5202 ("ghc-hashable" ,ghc-hashable)
5203 ("ghc-primitive" ,ghc-primitive)))
5204 (native-inputs
5205 `(("ghc-tasty" ,ghc-tasty)
5206 ("ghc-tasty-ant-xml" ,ghc-tasty-ant-xml)
5207 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
5208 ("ghc-tasty-smallcheck" ,ghc-tasty-smallcheck)
5209 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
5210 ("ghc-smallcheck" ,ghc-smallcheck)
5211 ("ghc-quickcheck" ,ghc-quickcheck)))
5212 (home-page "https://github.com/basvandijk/scientific")
5213 (synopsis "Numbers represented using scientific notation")
5214 (description "This package provides @code{Data.Scientific}, which provides
5215 the number type @code{Scientific}. Scientific numbers are arbitrary precision
5216 and space efficient. They are represented using
5217 @uref{https://en.wikipedia.org/wiki/Scientific_notation, scientific
5218 notation}.")
5219 (license license:bsd-3)))
5220
5221 (define-public ghc-boxes
5222 (package
5223 (name "ghc-boxes")
5224 (version "0.1.4")
5225 (source
5226 (origin
5227 (method url-fetch)
5228 (uri (string-append "https://hackage.haskell.org/package/boxes/boxes-"
5229 version ".tar.gz"))
5230 (sha256
5231 (base32 "1n7xiplzd3s1a39nizwjcgsh3wi2348mp21c3fk19v98ialfjgjf"))))
5232 (build-system haskell-build-system)
5233 (inputs
5234 `(("ghc-split" ,ghc-split)
5235 ("ghc-quickcheck" ,ghc-quickcheck)))
5236 (home-page "https://hackage.haskell.org/package/boxes")
5237 (synopsis "2D text pretty-printing library")
5238 (description
5239 "Boxes is a pretty-printing library for laying out text in two dimensions,
5240 using a simple box model.")
5241 (license license:bsd-3)))
5242
5243 (define-public ghc-deepseq-generics
5244 (package
5245 (name "ghc-deepseq-generics")
5246 (version "0.2.0.0")
5247 (source (origin
5248 (method url-fetch)
5249 (uri (string-append "https://hackage.haskell.org/package/"
5250 "deepseq-generics/deepseq-generics-"
5251 version ".tar.gz"))
5252 (sha256
5253 (base32
5254 "17bwghc15mc9pchfd1w46jh2p3wzc86aj6a537wqwxn08rayzcxh"))))
5255 (build-system haskell-build-system)
5256 (native-inputs
5257 `(("ghc-hunit" ,ghc-hunit)
5258 ("ghc-test-framework" ,ghc-test-framework)
5259 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)))
5260 (home-page "https://github.com/hvr/deepseq-generics")
5261 (synopsis "Generic RNF implementation")
5262 (description
5263 "This package provides a @code{GHC.Generics}-based
5264 @code{Control.DeepSeq.Generics.genericRnf} function which can be used for
5265 providing an 'rnf' implementation.")
5266 (license license:bsd-3)))
5267
5268 (define-public ghc-string-qq
5269 (package
5270 (name "ghc-string-qq")
5271 (version "0.0.2")
5272 (source
5273 (origin
5274 (method url-fetch)
5275 (uri (string-append
5276 "https://hackage.haskell.org/package/string-qq/string-qq-"
5277 version
5278 ".tar.gz"))
5279 (sha256
5280 (base32
5281 "0662m3i5xrdrr95w829bszkhp88mj9iy1zya54vk2sl5hz9wlmwp"))))
5282 (build-system haskell-build-system)
5283 (home-page "http://hackage.haskell.org/package/string-qq")
5284 (synopsis
5285 "QuasiQuoter for non-interpolated strings, texts and bytestrings.")
5286 (description
5287 "This package provides a quasiquoter for non-interpolated strings, texts
5288 and bytestrings.")
5289 (license license:public-domain)))
5290
5291 (define-public ghc-pandoc-types
5292 (package
5293 (name "ghc-pandoc-types")
5294 (version "1.17.5.1")
5295 (source (origin
5296 (method url-fetch)
5297 (uri (string-append "https://hackage.haskell.org/package/"
5298 "pandoc-types/pandoc-types-"
5299 version ".tar.gz"))
5300 (sha256
5301 (base32
5302 "1q6v2bynij724fv347mhqxdscwifzrx5jb9mq80608qf638fn717"))))
5303 (build-system haskell-build-system)
5304 (arguments
5305 `(#:configure-flags (list "--allow-newer=QuickCheck")))
5306 (inputs
5307 `(("ghc-syb" ,ghc-syb)
5308 ("ghc-aeson" ,ghc-aeson)
5309 ("ghc-string-qq" ,ghc-string-qq)))
5310 (native-inputs
5311 `(("ghc-quickcheck" ,ghc-quickcheck)
5312 ("ghc-test-framework" ,ghc-test-framework)
5313 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
5314 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)
5315 ("ghc-hunit" ,ghc-hunit)))
5316 (home-page "http://johnmacfarlane.net/pandoc")
5317 (synopsis "Types for representing a structured document")
5318 (description
5319 "This module defines the @code{Pandoc} data structure, which is used by
5320 pandoc to represent structured documents. It also provides functions for
5321 building up, manipulating and serialising @code{Pandoc} structures.")
5322 (license license:bsd-3)))
5323
5324 (define-public ghc-pandoc-types-for-pandoc-1
5325 (package (inherit ghc-pandoc-types)
5326 (version "1.17.0.5")
5327 (source (origin
5328 (method url-fetch)
5329 (uri (string-append "https://hackage.haskell.org/package/"
5330 "pandoc-types/pandoc-types-"
5331 version ".tar.gz"))
5332 (sha256
5333 (base32
5334 "1csipjdq00iiq77k2wlrg4i7afrzlh8nl585q785xzw7nn45b0n8"))))
5335 (arguments
5336 `(#:configure-flags (list "--allow-newer=QuickCheck"
5337 "--allow-newer=HUnit")))
5338 (inputs
5339 `(("ghc-syb" ,ghc-syb)
5340 ("ghc-aeson" ,ghc-aeson-for-pandoc-1)
5341 ("ghc-string-qq" ,ghc-string-qq)))))
5342
5343 (define-public ghc-texmath
5344 (package
5345 (name "ghc-texmath")
5346 (version "0.11.0.1")
5347 (source (origin
5348 (method url-fetch)
5349 (uri (string-append "https://hackage.haskell.org/package/"
5350 "texmath/texmath-" version ".tar.gz"))
5351 (sha256
5352 (base32
5353 "11dc09hfnyfsz20ch2c867w0zdgjkzq41506lm61i3dk87ngdisf"))))
5354 (build-system haskell-build-system)
5355 (inputs
5356 `(("ghc-syb" ,ghc-syb)
5357 ("ghc-network-uri" ,ghc-network-uri)
5358 ("ghc-split" ,ghc-split)
5359 ("ghc-temporary" ,ghc-temporary)
5360 ("ghc-utf8-string" ,ghc-utf8-string)
5361 ("ghc-xml" ,ghc-xml)
5362 ("ghc-parsec" ,ghc-parsec)
5363 ("ghc-pandoc-types" ,ghc-pandoc-types)))
5364 (home-page "https://github.com/jgm/texmath")
5365 (synopsis "Conversion between formats used to represent mathematics")
5366 (description
5367 "The texmath library provides functions to read and write TeX math,
5368 presentation MathML, and OMML (Office Math Markup Language, used in Microsoft
5369 Office). Support is also included for converting math formats to pandoc's
5370 native format (allowing conversion, via pandoc, to a variety of different
5371 markup formats). The TeX reader supports basic LaTeX and AMS extensions, and
5372 it can parse and apply LaTeX macros.")
5373 (license license:gpl2+)))
5374
5375 (define-public ghc-texmath-for-pandoc-1
5376 (package (inherit ghc-texmath)
5377 (version "0.9.4.4")
5378 (source (origin
5379 (method url-fetch)
5380 (uri (string-append "https://hackage.haskell.org/package/"
5381 "texmath/texmath-" version ".tar.gz"))
5382 (sha256
5383 (base32
5384 "129q33m56diiv35kdwfb07838wrg0mm88kxdqxfyl1zvf9nzkqkd"))))
5385 (inputs
5386 `(("ghc-network-uri" ,ghc-network-uri)
5387 ("ghc-pandoc-types" ,ghc-pandoc-types-for-pandoc-1)
5388 ("ghc-parsec" ,ghc-parsec)
5389 ("ghc-split" ,ghc-split)
5390 ("ghc-syb" ,ghc-syb)
5391 ("ghc-temporary" ,ghc-temporary)
5392 ("ghc-utf8-string" ,ghc-utf8-string)
5393 ("ghc-xml" ,ghc-xml)))))
5394
5395 (define-public ghc-regex-pcre-builtin
5396 (package
5397 (name "ghc-regex-pcre-builtin")
5398 (version "0.94.4.8.8.35")
5399 (source (origin
5400 (method url-fetch)
5401 (uri (string-append "https://hackage.haskell.org/package/"
5402 "regex-pcre-builtin/regex-pcre-builtin-"
5403 version ".tar.gz"))
5404 (sha256
5405 (base32
5406 "0y7as9wqlkykpipka2cfdhmcnin345q01pp0wsva8fwmvsavdl8b"))))
5407 (build-system haskell-build-system)
5408 (inputs
5409 `(("ghc-regex-base" ,ghc-regex-base)))
5410 (home-page "https://hackage.haskell.org/package/regex-pcre")
5411 (synopsis "Enhancement of the builtin Text.Regex library")
5412 (description
5413 "This package is an enhancement of the @code{Text.Regex} library,
5414 providing the PCRE backend to accompany regex-base, with bundled code from
5415 @url{https://www.pcre.org}.")
5416 (license license:bsd-3)))
5417
5418 (define-public ghc-diff
5419 (package
5420 (name "ghc-diff")
5421 (version "0.3.4")
5422 (source (origin
5423 (method url-fetch)
5424 (uri (string-append "https://hackage.haskell.org/package/"
5425 "Diff/Diff-" version ".tar.gz"))
5426 (sha256
5427 (base32
5428 "0bqcdvhxx8dmqc3793m6axg813wv9ldz2j37f1wygbbrbbndmdvp"))))
5429 (build-system haskell-build-system)
5430 (native-inputs
5431 `(("ghc-quickcheck" ,ghc-quickcheck)
5432 ("ghc-test-framework" ,ghc-test-framework)
5433 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
5434 (home-page "https://hub.darcs.net/sterlingclover/Diff")
5435 (synopsis "O(ND) diff algorithm in Haskell")
5436 (description
5437 "This package provides an implementation of the standard diff algorithm,
5438 and utilities for pretty printing.")
5439 (license license:bsd-3)))
5440
5441 (define-public ghc-highlighting-kate
5442 (package
5443 (name "ghc-highlighting-kate")
5444 (version "0.6.3")
5445 (source (origin
5446 (method url-fetch)
5447 (uri (string-append "https://hackage.haskell.org/package/"
5448 "highlighting-kate/highlighting-kate-"
5449 version ".tar.gz"))
5450 (sha256
5451 (base32
5452 "03c4flh4h1jd48bx0qmplax3q8w6wj1dhbh6j0xhaf5h95fbinki"))))
5453 (build-system haskell-build-system)
5454 (inputs
5455 `(("ghc-diff" ,ghc-diff)
5456 ("ghc-regex-pcre-builtin" ,ghc-regex-pcre-builtin)))
5457 (native-inputs
5458 `(("ghc-parsec" ,ghc-parsec)
5459 ("ghc-blaze-html" ,ghc-blaze-html)
5460 ("ghc-utf8-string" ,ghc-utf8-string)))
5461 (home-page "https://github.com/jgm/highlighting-kate")
5462 (synopsis "Syntax highlighting library")
5463 (description
5464 "Highlighting-kate is a syntax highlighting library with support for
5465 nearly one hundred languages. The syntax parsers are automatically generated
5466 from @uref{https://kate-editor.org/, Kate syntax descriptions}, so any syntax
5467 supported by Kate can be added. An (optional) command-line program is
5468 provided, along with a utility for generating new parsers from Kate XML syntax
5469 descriptions.")
5470 (license license:gpl2+)))
5471
5472 (define-public ghc-cmark
5473 (package
5474 (name "ghc-cmark")
5475 (version "0.5.6")
5476 (source (origin
5477 (method url-fetch)
5478 ;; XXX As of version 0.5.6, this package bundles libcmark 0.28.0.
5479 ;; See cbits/cmark_version.h.
5480 (uri (string-append "https://hackage.haskell.org/package/"
5481 "cmark/cmark-" version ".tar.gz"))
5482 (sha256
5483 (base32
5484 "1c1j3a8b9qx5zk9myqm3gap8ymz7fipwrdmyfsq9wkkdr9x4np45"))))
5485 (build-system haskell-build-system)
5486 (inputs
5487 `(("ghc-text" ,ghc-text)))
5488 (native-inputs
5489 `(("ghc-hunit" ,ghc-hunit)))
5490 (home-page "https://github.com/jgm/commonmark-hs")
5491 (synopsis "Fast, accurate CommonMark (Markdown) parser and renderer")
5492 (description
5493 "This package provides Haskell bindings for
5494 @uref{https://github.com/jgm/cmark, libcmark}, the reference parser for
5495 CommonMark, a fully specified variant of Markdown. It includes bundled libcmark
5496 sources, and does not require prior installation of the C library.")
5497 (license license:bsd-3)))
5498
5499 (define-public ghc-cmark-gfm
5500 (package
5501 (name "ghc-cmark-gfm")
5502 (version "0.1.5")
5503 (source
5504 (origin
5505 (method url-fetch)
5506 (uri (string-append "https://hackage.haskell.org/package/"
5507 "cmark-gfm/cmark-gfm-"
5508 version ".tar.gz"))
5509 (sha256
5510 (base32
5511 "13b0mqks5c1q989slgsa3ixr5vvkfyic4ynzgv00kgl5qrs7hqk7"))))
5512 (build-system haskell-build-system)
5513 (inputs
5514 `(("ghc-text" ,ghc-text)))
5515 (native-inputs
5516 `(("ghc-hunit" ,ghc-hunit)))
5517 (home-page "https://github.com/kivikakk/cmark-gfm-hs")
5518 (synopsis
5519 "Fast, accurate GitHub Flavored Markdown parser and renderer")
5520 (description
5521 "This package provides Haskell bindings for libcmark-gfm, the reference
5522 parser for GitHub Flavored Markdown, a fully specified variant of Markdown.
5523 It includes sources for libcmark-gfm and does not require prior installation
5524 of the C library.")
5525 (license license:bsd-3)))
5526
5527 (define-public ghc-executable-path
5528 (package
5529 (name "ghc-executable-path")
5530 (version "0.0.3.1")
5531 (source (origin
5532 (method url-fetch)
5533 (uri (string-append "https://hackage.haskell.org/package/"
5534 "executable-path/executable-path-"
5535 version ".tar.gz"))
5536 (sha256
5537 (base32
5538 "0vxwmnsvx13cawcyhbyljkds0l1vr996ijldycx7nj0asjv45iww"))))
5539 (build-system haskell-build-system)
5540 (home-page "https://hackage.haskell.org/package/executable-path")
5541 (synopsis "Find out the full path of the executable")
5542 (description
5543 "The documentation of @code{System.Environment.getProgName} says that
5544 \"However, this is hard-to-impossible to implement on some non-Unix OSes, so
5545 instead, for maximum portability, we just return the leafname of the program
5546 as invoked.\" This library tries to provide the missing path.")
5547 (license license:public-domain)))
5548
5549 (define-public ghc-enclosed-exceptions
5550 (package
5551 (name "ghc-enclosed-exceptions")
5552 (version "1.0.3")
5553 (source (origin
5554 (method url-fetch)
5555 (uri (string-append "https://hackage.haskell.org/package/"
5556 "enclosed-exceptions/enclosed-exceptions-"
5557 version ".tar.gz"))
5558 (sha256
5559 (base32
5560 "1fghjj7nkiddrf03ks8brjpr5x25yi9fs7xg6adbi4mc2gqr6vdg"))))
5561 (build-system haskell-build-system)
5562 ;; FIXME: one of the tests blocks forever:
5563 ;; "thread blocked indefinitely in an MVar operation"
5564 (arguments '(#:tests? #f))
5565 (inputs
5566 `(("ghc-lifted-base" ,ghc-lifted-base)
5567 ("ghc-monad-control" ,ghc-monad-control)
5568 ("ghc-async" ,ghc-async)
5569 ("ghc-transformers-base" ,ghc-transformers-base)))
5570 (native-inputs
5571 `(("ghc-hspec" ,ghc-hspec)
5572 ("ghc-quickcheck" ,ghc-quickcheck)))
5573 (home-page "https://github.com/jcristovao/enclosed-exceptions")
5574 (synopsis "Catch all exceptions from within an enclosed computation")
5575 (description
5576 "This library implements a technique to catch all exceptions raised
5577 within an enclosed computation, while remaining responsive to (external)
5578 asynchronous exceptions.")
5579 (license license:expat)))
5580
5581 (define-public ghc-packedstring
5582 (package
5583 (name "ghc-packedstring")
5584 (version "0.1.0.1")
5585 (source (origin
5586 (method url-fetch)
5587 (uri (string-append "https://hackage.haskell.org/package/"
5588 "packedstring/packedstring-"
5589 version ".tar.gz"))
5590 (sha256
5591 (base32
5592 "1x78pzzdlnpcmh9p37rlf8m5cxf3yqm2alf3whl4zpr9w25r0qj8"))))
5593 (build-system haskell-build-system)
5594 (arguments
5595 `(#:phases
5596 (modify-phases %standard-phases
5597 (add-after 'unpack 'enable-extension
5598 (lambda _
5599 ;; This package won't compile without the StandaloneDeriving
5600 ;; extension.
5601 (substitute* "packedstring.cabal"
5602 (("CPP") "CPP, StandaloneDeriving"))
5603 #t)))))
5604 (home-page "https://hackage.haskell.org/package/packedstring")
5605 (synopsis "Library for packed strings")
5606 (description
5607 "This deprecated library provides an implementation of packed strings.")
5608 (license license:bsd-3)))
5609
5610 (define-public ghc-th-abstraction
5611 (package
5612 (name "ghc-th-abstraction")
5613 (version "0.2.8.0")
5614 (source
5615 (origin
5616 (method url-fetch)
5617 (uri (string-append "https://hackage.haskell.org/package/"
5618 "th-abstraction/th-abstraction-"
5619 version ".tar.gz"))
5620 (sha256
5621 (base32
5622 "0n17w4q2ykd0nica4sck2wng6md56rfad8x0icl0l8vnzb9nn4ya"))))
5623 (build-system haskell-build-system)
5624 (home-page "https://github.com/glguy/th-abstraction")
5625 (synopsis "Nicer interface for reified information about data types")
5626 (description
5627 "This package normalizes variations in the interface for inspecting
5628 datatype information via Template Haskell so that packages and support a
5629 single, easier to use informational datatype while supporting many versions of
5630 Template Haskell.")
5631 (license license:isc)))
5632
5633 (define-public ghc-th-lift
5634 (package
5635 (name "ghc-th-lift")
5636 (version "0.7.11")
5637 (source (origin
5638 (method url-fetch)
5639 (uri (string-append "https://hackage.haskell.org/package/"
5640 "th-lift/th-lift-" version ".tar.gz"))
5641 (sha256
5642 (base32
5643 "131360zxb0hazbqwbkk6ab2p77jkxr79bwwm618mrwrwkm3x2g6m"))))
5644 (build-system haskell-build-system)
5645 (inputs
5646 `(("ghc-th-abstraction" ,ghc-th-abstraction)))
5647 (home-page "https://github.com/mboes/th-lift")
5648 (synopsis "Derive Template Haskell's Lift class for datatypes")
5649 (description
5650 "This is a Haskell library to derive Template Haskell's Lift class for
5651 datatypes.")
5652 (license license:bsd-3)))
5653
5654 (define-public ghc-th-lift-instances
5655 (package
5656 (name "ghc-th-lift-instances")
5657 (version "0.1.11")
5658 (source
5659 (origin
5660 (method url-fetch)
5661 (uri (string-append "https://hackage.haskell.org/package/"
5662 "th-lift-instances/th-lift-instances-"
5663 version ".tar.gz"))
5664 (sha256
5665 (base32
5666 "1f56cp6ckcalld5jchv0kxpjkwcsixd7smd0g7r8cg67ppx6m90x"))))
5667 (build-system haskell-build-system)
5668 (inputs
5669 `(("ghc-th-lift" ,ghc-th-lift)
5670 ("ghc-vector" ,ghc-vector)
5671 ("ghc-text" ,ghc-text)
5672 ("ghc-quickcheck" ,ghc-quickcheck)))
5673 (home-page "https://github.com/bennofs/th-lift-instances/")
5674 (synopsis "Lift instances for template-haskell for common data types.")
5675 (description "Most data types in the Haskell platform do not have Lift
5676 instances. This package provides orphan instances for @code{containers},
5677 @code{text}, @code{bytestring} and @code{vector}.")
5678 (license license:bsd-3)))
5679
5680 (define-public ghc-th-expand-syns
5681 (package
5682 (name "ghc-th-expand-syns")
5683 (version "0.4.0.0")
5684 (source (origin
5685 (method url-fetch)
5686 (uri (string-append "https://hackage.haskell.org/package/"
5687 "th-expand-syns/th-expand-syns-"
5688 version ".tar.gz"))
5689 (sha256
5690 (base32
5691 "1sjy7a17zwyvlbkc8gklii67sy78wpnw35fyb00lsbnpk4cryd2r"))))
5692 (build-system haskell-build-system)
5693 (inputs
5694 `(("ghc-syb" ,ghc-syb)))
5695 (home-page "https://hackage.haskell.org/package/th-expand-syns")
5696 (synopsis "Expands type synonyms in Template Haskell ASTs")
5697 (description
5698 "This package enables users to expand type synonyms in Template Haskell
5699 @dfn{abstract syntax trees} (ASTs).")
5700 (license license:bsd-3)))
5701
5702 (define-public ghc-th-reify-many
5703 (package
5704 (name "ghc-th-reify-many")
5705 (version "0.1.6")
5706 (source (origin
5707 (method url-fetch)
5708 (uri (string-append "https://hackage.haskell.org/package/"
5709 "th-reify-many/th-reify-many-"
5710 version ".tar.gz"))
5711 (sha256
5712 (base32
5713 "1b76zjxkj0v0n8zj9l0nwav2irm0c43rx6qjihfw8klmmxvx59df"))))
5714 (build-system haskell-build-system)
5715 (inputs
5716 `(("ghc-safe" ,ghc-safe)
5717 ("ghc-th-expand-syns" ,ghc-th-expand-syns)))
5718 (home-page "https://github.com/mgsloan/th-reify-many")
5719 (synopsis "Recurseively reify template haskell datatype info")
5720 (description
5721 "th-reify-many provides functions for recursively reifying top level
5722 declarations. The main intended use case is for enumerating the names of
5723 datatypes reachable from an initial datatype, and passing these names to some
5724 function which generates instances.")
5725 (license license:bsd-3)))
5726
5727 (define-public ghc-th-orphans
5728 (package
5729 (name "ghc-th-orphans")
5730 (version "0.13.2")
5731 (source (origin
5732 (method url-fetch)
5733 (uri (string-append "https://hackage.haskell.org/package/"
5734 "th-orphans/th-orphans-" version ".tar.gz"))
5735 (sha256
5736 (base32
5737 "0102vkyzpgnp2fys8pvw4khrhrh2y1b8dp1slgvn020vg4s351mc"))))
5738 (build-system haskell-build-system)
5739 (inputs
5740 `(("ghc-th-lift" ,ghc-th-lift)
5741 ("ghc-th-lift-instances" ,ghc-th-lift-instances)
5742 ("ghc-th-reify-many" ,ghc-th-reify-many)
5743 ("ghc-generic-deriving" ,ghc-generic-deriving)))
5744 (native-inputs
5745 `(("ghc-hspec" ,ghc-hspec)))
5746 (home-page "https://hackage.haskell.org/package/th-orphans")
5747 (synopsis "Orphan instances for TH datatypes")
5748 (description
5749 "This package provides orphan instances for Template Haskell datatypes. In particular,
5750 instances for @code{Ord} and @code{Lift}, as well as a few missing @code{Show}
5751 and @code{Eq} instances. These instances used to live in the haskell-src-meta
5752 package, and that's where the version number started.")
5753 (license license:bsd-3)))
5754
5755 (define-public ghc-geniplate-mirror
5756 (package
5757 (name "ghc-geniplate-mirror")
5758 (version "0.7.6")
5759 (source
5760 (origin
5761 (method url-fetch)
5762 (uri (string-append "https://hackage.haskell.org/package"
5763 "/geniplate-mirror"
5764 "/geniplate-mirror-" version ".tar.gz"))
5765 (sha256
5766 (base32 "1y0m0bw5zpm1y1y6d9qmxj3swl8j8hlw1shxbr5awycf6k884ssb"))))
5767 (build-system haskell-build-system)
5768 (home-page "https://github.com/danr/geniplate")
5769 (synopsis "Use Template Haskell to generate Uniplate-like functions")
5770 (description
5771 "Use Template Haskell to generate Uniplate-like functions. This is a
5772 maintained mirror of the @uref{https://hackage.haskell.org/package/geniplate,
5773 geniplate} package, written by Lennart Augustsson.")
5774 (license license:bsd-3)))
5775
5776 (define-public ghc-gitrev
5777 (package
5778 (name "ghc-gitrev")
5779 (version "1.3.1")
5780 (source
5781 (origin
5782 (method url-fetch)
5783 (uri (string-append "https://hackage.haskell.org/package/gitrev/gitrev-"
5784 version ".tar.gz"))
5785 (sha256
5786 (base32 "0cl3lfm6k1h8fxp2vxa6ihfp4v8igkz9h35iwyq2frzm4kdn96d8"))))
5787 (build-system haskell-build-system)
5788 (inputs `(("ghc-base-compat" ,ghc-base-compat)))
5789 (home-page "https://github.com/acfoltzer/gitrev")
5790 (synopsis "Compile git revision info into Haskell projects")
5791 (description
5792 "This package provides some handy Template Haskell splices for including
5793 the current git hash and branch in the code of your project. This is useful
5794 for including in panic messages, @command{--version} output, or diagnostic
5795 info for more informative bug reports.")
5796 (license license:bsd-3)))
5797
5798 (define-public ghc-haskell-src-meta
5799 (package
5800 (name "ghc-haskell-src-meta")
5801 (version "0.8.0.2")
5802 (source (origin
5803 (method url-fetch)
5804 (uri (string-append "https://hackage.haskell.org/package/"
5805 "haskell-src-meta/haskell-src-meta-"
5806 version ".tar.gz"))
5807 (sha256
5808 (base32
5809 "12rc4v5dbbbcwdp7j8isvnm9vqpazv124j5kdfwlgwgwjhxi8ysb"))))
5810 (build-system haskell-build-system)
5811 (inputs
5812 `(("ghc-haskell-src-exts" ,ghc-haskell-src-exts)
5813 ("ghc-syb" ,ghc-syb)
5814 ("ghc-th-orphans" ,ghc-th-orphans)))
5815 (native-inputs
5816 `(("ghc-hunit" ,ghc-hunit)
5817 ("ghc-test-framework" ,ghc-test-framework)
5818 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)))
5819 (home-page "https://hackage.haskell.org/package/haskell-src-meta")
5820 (synopsis "Parse source to template-haskell abstract syntax")
5821 (description
5822 "This package provides tools to parse Haskell sources to the
5823 template-haskell abstract syntax.")
5824 (license license:bsd-3)))
5825
5826 (define-public ghc-conduit
5827 (package
5828 (name "ghc-conduit")
5829 (version "1.3.0.3")
5830 (source (origin
5831 (method url-fetch)
5832 (uri (string-append "https://hackage.haskell.org/package/"
5833 "conduit/conduit-" version ".tar.gz"))
5834 (sha256
5835 (base32
5836 "1sangm0qqi9dzlq95746a3kl14k8b09592a423shxjf2a0b1yx5v"))))
5837 (build-system haskell-build-system)
5838 (inputs
5839 `(("ghc-exceptions" ,ghc-exceptions)
5840 ("ghc-lifted-base" ,ghc-lifted-base)
5841 ("ghc-mono-traversable" ,ghc-mono-traversable)
5842 ("ghc-mmorph" ,ghc-mmorph)
5843 ("ghc-resourcet" ,ghc-resourcet)
5844 ("ghc-silently" ,ghc-silently)
5845 ("ghc-transformers-base" ,ghc-transformers-base)
5846 ("ghc-unliftio" ,ghc-unliftio)
5847 ("ghc-unliftio-core" ,ghc-unliftio-core)
5848 ("ghc-vector" ,ghc-vector)
5849 ("ghc-void" ,ghc-void)))
5850 (native-inputs
5851 `(("ghc-quickcheck" ,ghc-quickcheck)
5852 ("ghc-hspec" ,ghc-hspec)
5853 ("ghc-safe" ,ghc-safe)
5854 ("ghc-split" ,ghc-split)))
5855 (home-page "https://github.com/snoyberg/conduit")
5856 (synopsis "Streaming data library ")
5857 (description
5858 "The conduit package is a solution to the streaming data problem,
5859 allowing for production, transformation, and consumption of streams of data
5860 in constant memory. It is an alternative to lazy I/O which guarantees
5861 deterministic resource handling, and fits in the same general solution
5862 space as enumerator/iteratee and pipes.")
5863 (license license:expat)))
5864
5865 (define-public ghc-logging-facade
5866 (package
5867 (name "ghc-logging-facade")
5868 (version "0.1.1")
5869 (source (origin
5870 (method url-fetch)
5871 (uri (string-append "https://hackage.haskell.org/package/"
5872 "logging-facade/logging-facade-"
5873 version ".tar.gz"))
5874 (sha256
5875 (base32
5876 "18ldv6rsff480rqpbs3iabjpvn1fhw0i2a0g80jnhxg9ajfz5yb0"))))
5877 (build-system haskell-build-system)
5878 (native-inputs
5879 `(("ghc-hspec" ,ghc-hspec)
5880 ("hspec-discover" ,hspec-discover)))
5881 (home-page "https://hackage.haskell.org/package/logging-facade")
5882 (synopsis "Simple logging abstraction that allows multiple back-ends")
5883 (description
5884 "This package provides a simple logging abstraction that allows multiple
5885 back-ends.")
5886 (license license:expat)))
5887
5888 (define-public ghc-mockery
5889 (package
5890 (name "ghc-mockery")
5891 (version "0.3.3")
5892 (source (origin
5893 (method url-fetch)
5894 (uri (string-append "https://hackage.haskell.org/package/"
5895 "mockery/mockery-" version ".tar.gz"))
5896 (sha256
5897 (base32
5898 "1m7sq2vclgir3qbpngzl3g87ks4034blwwf7p3h02c0jlcwpl5b1"))))
5899 (build-system haskell-build-system)
5900 (inputs
5901 `(("ghc-temporary" ,ghc-temporary)
5902 ("ghc-logging-facade" ,ghc-logging-facade)
5903 ("ghc-base-compat" ,ghc-base-compat)))
5904 (native-inputs
5905 `(("ghc-hspec" ,ghc-hspec)
5906 ("hspec-discover" ,hspec-discover)))
5907 (home-page "https://hackage.haskell.org/package/mockery")
5908 (synopsis "Support functions for automated testing")
5909 (description
5910 "The mockery package provides support functions for automated testing.")
5911 (license license:expat)))
5912
5913 (define-public ghc-yaml
5914 (package
5915 (name "ghc-yaml")
5916 (version "0.8.28")
5917 (source (origin
5918 (method url-fetch)
5919 (uri (string-append "https://hackage.haskell.org/package/"
5920 "yaml/yaml-" version ".tar.gz"))
5921 (sha256
5922 (base32
5923 "0swgkzkfrwj0ac7lssn8rnrdfmh3lcsdn5fbq2iwv55di6jbc0pp"))))
5924 (build-system haskell-build-system)
5925 (inputs
5926 `(("ghc-conduit" ,ghc-conduit)
5927 ("ghc-resourcet" ,ghc-resourcet)
5928 ("ghc-aeson" ,ghc-aeson)
5929 ("ghc-unordered-containers" ,ghc-unordered-containers)
5930 ("ghc-vector" ,ghc-vector)
5931 ("ghc-text" ,ghc-text)
5932 ("ghc-attoparsec" ,ghc-attoparsec)
5933 ("ghc-scientific" ,ghc-scientific)
5934 ("ghc-semigroups" ,ghc-semigroups)
5935 ("ghc-temporary" ,ghc-temporary)
5936 ("ghc-enclosed-exceptions" ,ghc-enclosed-exceptions)
5937 ("ghc-base-compat" ,ghc-base-compat)))
5938 (native-inputs
5939 `(("ghc-hspec" ,ghc-hspec)
5940 ("ghc-hunit" ,ghc-hunit)
5941 ("hspec-discover" ,hspec-discover)
5942 ("ghc-mockery" ,ghc-mockery)))
5943 (home-page "https://github.com/snoyberg/yaml/")
5944 (synopsis "Parsing and rendering YAML documents")
5945 (description
5946 "This package provides a library to parse and render YAML documents.")
5947 (license license:bsd-3)))
5948
5949 (define-public ghc-yaml-for-pandoc-1
5950 (package (inherit ghc-yaml)
5951 (inputs
5952 `(("ghc-aeson" ,ghc-aeson-for-pandoc-1)
5953 ,@(alist-delete "ghc-aeson" (package-inputs ghc-yaml))))))
5954
5955 (define-public ghc-filemanip
5956 (package
5957 (name "ghc-filemanip")
5958 (version "0.3.6.3")
5959 (source (origin
5960 (method url-fetch)
5961 (uri (string-append "https://hackage.haskell.org/package/"
5962 "filemanip/filemanip-" version ".tar.gz"))
5963 (sha256
5964 (base32
5965 "0ilqr8jv41zxcj5qyicg29m8s30b9v70x6f9h2h2rw5ap8bxldl8"))))
5966 (build-system haskell-build-system)
5967 (inputs
5968 `(("ghc-unix-compat" ,ghc-unix-compat)))
5969 (home-page "https://github.com/bos/filemanip")
5970 (synopsis "File and directory manipulation for Haskell")
5971 (description
5972 "This package provides a Haskell library for working with files and
5973 directories. It includes code for pattern matching, finding files, modifying
5974 file contents, and more.")
5975 (license license:bsd-3)))
5976
5977 (define-public ghc-mmap
5978 (package
5979 (name "ghc-mmap")
5980 (version "0.5.9")
5981 (source (origin
5982 (method url-fetch)
5983 (uri (string-append "https://hackage.haskell.org/package/"
5984 "mmap/mmap-" version ".tar.gz"))
5985 (sha256
5986 (base32
5987 "1y5mk3yf4b8r6rzmlx1xqn4skaigrqnv08sqq0v7r3nbw42bpz2q"))))
5988 (build-system haskell-build-system)
5989 (home-page "https://hackage.haskell.org/package/mmap")
5990 (synopsis "Memory mapped files for Haskell")
5991 (description
5992 "This library provides a wrapper to @code{mmap}, allowing files or
5993 devices to be lazily loaded into memory as strict or lazy @code{ByteStrings},
5994 @code{ForeignPtrs} or plain @code{Ptrs}, using the virtual memory subsystem to
5995 do on-demand loading.")
5996 (license license:bsd-3)))
5997
5998 (define-public ghc-juicypixels
5999 (package
6000 (name "ghc-juicypixels")
6001 (version "3.2.9.3")
6002 (source (origin
6003 (method url-fetch)
6004 (uri (string-append "https://hackage.haskell.org/package/"
6005 "JuicyPixels/JuicyPixels-"
6006 version ".tar.gz"))
6007 (sha256
6008 (base32
6009 "14s57fgf6kd5n5al2kcvk1aaxbq1ph0r5h8blflrjkx83yl6r8yn"))))
6010 (build-system haskell-build-system)
6011 (inputs
6012 `(("ghc-zlib" ,ghc-zlib)
6013 ("ghc-vector" ,ghc-vector)
6014 ("ghc-primitive" ,ghc-primitive)
6015 ("ghc-mmap" ,ghc-mmap)))
6016 (home-page "https://github.com/Twinside/Juicy.Pixels")
6017 (synopsis "Picture loading and serialization library")
6018 (description
6019 "This library can load and store images in PNG, Bitmap, JPEG, Radiance,
6020 TIFF and GIF formats.")
6021 (license license:bsd-3)))
6022
6023 (define-public ghc-hslua
6024 (package
6025 (name "ghc-hslua")
6026 (version "0.9.5")
6027 (source (origin
6028 (method url-fetch)
6029 (uri (string-append "https://hackage.haskell.org/package/"
6030 "hslua/hslua-" version ".tar.gz"))
6031 (sha256
6032 (base32
6033 "1j2zk7f7nyywg2b0n6kb2yf6ljc7cn2sk9jz0h76g3ag2b70l12n"))))
6034 (build-system haskell-build-system)
6035 (arguments
6036 `(#:configure-flags '("-fsystem-lua")))
6037 (inputs
6038 `(("lua" ,lua)
6039 ("ghc-exceptions" ,ghc-exceptions)
6040 ("ghc-fail" ,ghc-fail)
6041 ("ghc-text" ,ghc-text)))
6042 (native-inputs
6043 `(("ghc-tasty" ,ghc-tasty)
6044 ("ghc-tasty-expected-failure" ,ghc-tasty-expected-failure)
6045 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
6046 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
6047 ("ghc-quickcheck" ,ghc-quickcheck)
6048 ("ghc-quickcheck-instances" ,ghc-quickcheck-instances)))
6049 (home-page "https://hackage.haskell.org/package/hslua")
6050 (synopsis "Lua language interpreter embedding in Haskell")
6051 (description
6052 "The Scripting.Lua module is a wrapper of the Lua language interpreter as
6053 described in @url{https://www.lua.org/}.")
6054 (license license:expat)))
6055
6056 (define-public ghc-hslua-for-pandoc-1
6057 (package (inherit ghc-hslua)
6058 (version "0.4.1")
6059 (source (origin
6060 (method url-fetch)
6061 (uri (string-append "https://hackage.haskell.org/package/"
6062 "hslua/hslua-" version ".tar.gz"))
6063 (sha256
6064 (base32
6065 "0gqp6qhp4v24kzv2j49kgk7bxqzw0w10x0zr0r2j9wkfavqb9wid"))))
6066 (inputs
6067 `(("lua" ,lua-5.1)
6068 ("ghc-text" ,ghc-text)))
6069 (native-inputs
6070 `(("ghc-quickcheck" ,ghc-quickcheck)
6071 ("ghc-quickcheck-instances" ,ghc-quickcheck-instances)
6072 ("ghc-hspec" ,ghc-hspec)
6073 ("ghc-hspec-contrib" ,ghc-hspec-contrib)
6074 ("ghc-hunit" ,ghc-hunit)
6075 ("hspec-discover" ,hspec-discover)))))
6076
6077 (define-public ghc-hslua-module-text
6078 (package
6079 (name "ghc-hslua-module-text")
6080 (version "0.1.2.1")
6081 (source
6082 (origin
6083 (method url-fetch)
6084 (uri (string-append "https://hackage.haskell.org/package/"
6085 "hslua-module-text/hslua-module-text-"
6086 version ".tar.gz"))
6087 (sha256
6088 (base32
6089 "0bcfpb1dhnxp0gr376ai4w7vczr9zrjl1r3r6w7kcxivfkwq9cxf"))))
6090 (build-system haskell-build-system)
6091 (inputs
6092 `(("ghc-hslua" ,ghc-hslua)
6093 ("ghc-text" ,ghc-text)))
6094 (native-inputs
6095 `(("ghc-tasty" ,ghc-tasty)
6096 ("ghc-tasty-hunit" ,ghc-tasty-hunit)))
6097 (home-page "https://github.com/hslua/hslua-module-text")
6098 (synopsis "Lua module for text")
6099 (description
6100 "This package provides a UTF-8 aware subset of Lua's @code{string} module
6101 for Haskell. The functions provided by this module are @code{upper},
6102 @code{lower}, @code{len}, @code{reverse}, and @code{sub}.")
6103 (license license:expat)))
6104
6105 (define-public ghc-byteable
6106 (package
6107 (name "ghc-byteable")
6108 (version "0.1.1")
6109 (source (origin
6110 (method url-fetch)
6111 (uri (string-append "https://hackage.haskell.org/package/"
6112 "byteable/byteable-" version ".tar.gz"))
6113 (sha256
6114 (base32
6115 "1qizg0kxxjqnd3cbrjhhidk5pbbciz0pb3z5kzikjjxnnnhk8fr4"))))
6116 (build-system haskell-build-system)
6117 (home-page "https://github.com/vincenthz/hs-byteable")
6118 (synopsis "Type class for sequence of bytes")
6119 (description
6120 "This package provides an abstract class to manipulate sequence of bytes.
6121 The use case of this class is abstracting manipulation of types that are just
6122 wrapping a bytestring with stronger and more meaniful name.")
6123 (license license:bsd-3)))
6124
6125 (define-public ghc-hourglass
6126 (package
6127 (name "ghc-hourglass")
6128 (version "0.2.10")
6129 (source (origin
6130 (method url-fetch)
6131 (uri (string-append "https://hackage.haskell.org/package/"
6132 "hourglass/hourglass-" version ".tar.gz"))
6133 (sha256
6134 (base32
6135 "104d1yd84hclprg740nkz60vx589mnm094zriw6zczbgg8nkclym"))))
6136 (build-system haskell-build-system)
6137 (inputs
6138 `(("ghc-old-locale" ,ghc-old-locale)))
6139 (native-inputs
6140 `(("ghc-tasty" ,ghc-tasty)
6141 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
6142 ("ghc-tasty-hunit" ,ghc-tasty-hunit)))
6143 (home-page "https://github.com/vincenthz/hs-hourglass")
6144 (synopsis "Simple time-related library for Haskell")
6145 (description
6146 "This is a simple time library providing a simple but powerful and
6147 performant API. The backbone of the library are the @code{Timeable} and
6148 @code{Time} type classes. Each @code{Timeable} instances can be converted to
6149 a type that has a @code{Time} instances, and thus are different
6150 representations of current time.")
6151 (license license:bsd-3)))
6152
6153 (define-public ghc-edit-distance
6154 (package
6155 (name "ghc-edit-distance")
6156 (version "0.2.2.1")
6157 (source
6158 (origin
6159 (method url-fetch)
6160 (uri (string-append "https://hackage.haskell.org/package/edit-distance"
6161 "/edit-distance-" version ".tar.gz"))
6162 (sha256
6163 (base32 "0jkca97zyv23yyilp3jydcrzxqhyk27swhzh82llvban5zp8b21y"))))
6164 (build-system haskell-build-system)
6165 (arguments
6166 `(#:configure-flags (list "--allow-newer=QuickCheck")))
6167 (inputs
6168 `(("ghc-random" ,ghc-random)
6169 ("ghc-test-framework" ,ghc-test-framework)
6170 ("ghc-quickcheck" ,ghc-quickcheck)
6171 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
6172 (home-page "https://github.com/phadej/edit-distance")
6173 (synopsis "Levenshtein and restricted Damerau-Levenshtein edit distances")
6174 (description
6175 "This package provides optimized functions to determine the edit
6176 distances for fuzzy matching, including Levenshtein and restricted
6177 Damerau-Levenshtein algorithms.")
6178 (license license:bsd-3)))
6179
6180 (define-public ghc-memory
6181 (package
6182 (name "ghc-memory")
6183 (version "0.14.16")
6184 (source (origin
6185 (method url-fetch)
6186 (uri (string-append "https://hackage.haskell.org/package/"
6187 "memory/memory-" version ".tar.gz"))
6188 (sha256
6189 (base32
6190 "03rbszi5d4z9rlbfv8ydrl1xf84xsh8z57g07f7j9qccn9587c3v"))))
6191 (build-system haskell-build-system)
6192 (inputs
6193 `(("ghc-basement" ,ghc-basement)
6194 ("ghc-foundation" ,ghc-foundation)))
6195 (native-inputs
6196 `(("ghc-tasty" ,ghc-tasty)
6197 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
6198 ("ghc-tasty-hunit" ,ghc-tasty-hunit)))
6199 (home-page "https://github.com/vincenthz/hs-memory")
6200 (synopsis "Memory abstractions for Haskell")
6201 (description
6202 "This package provides memory abstractions, such as chunk of memory,
6203 polymorphic byte array management and manipulation functions. It contains a
6204 polymorphic byte array abstraction and functions similar to strict ByteString,
6205 different type of byte array abstraction, raw memory IO operations (memory
6206 set, memory copy, ..) and more")
6207 (license license:bsd-3)))
6208
6209 (define-public ghc-socks
6210 (package
6211 (name "ghc-socks")
6212 (version "0.5.5")
6213 (source (origin
6214 (method url-fetch)
6215 (uri (string-append "https://hackage.haskell.org/package/"
6216 "socks/socks-" version ".tar.gz"))
6217 (sha256
6218 (base32
6219 "0s689w1hh9g8ifl75xhzbv96ir07hwn04b4lgvbxzl8swa9ylir6"))))
6220 (build-system haskell-build-system)
6221 (inputs
6222 `(("ghc-cereal" ,ghc-cereal)
6223 ("ghc-network" ,ghc-network)))
6224 (home-page "https://github.com/vincenthz/hs-socks")
6225 (synopsis "SOCKS proxy (version 5) implementation")
6226 (description
6227 "This library provides a SOCKS proxy (version 5) implementation.")
6228 (license license:bsd-3)))
6229
6230 (define-public ghc-connection
6231 (package
6232 (name "ghc-connection")
6233 (version "0.2.6")
6234 (source (origin
6235 (method url-fetch)
6236 (uri (string-append "https://hackage.haskell.org/package/"
6237 "connection/connection-"
6238 version ".tar.gz"))
6239 (sha256
6240 (base32
6241 "1c1prsgad669cmf6qrqlb5hmh0dnam2imijqzpwcr4ja14l6rh83"))))
6242 (build-system haskell-build-system)
6243 (inputs
6244 `(("ghc-byteable" ,ghc-byteable)
6245 ("ghc-data-default-class" ,ghc-data-default-class)
6246 ("ghc-network" ,ghc-network)
6247 ("ghc-tls" ,ghc-tls)
6248 ("ghc-socks" ,ghc-socks)
6249 ("ghc-x509" ,ghc-x509)
6250 ("ghc-x509-store" ,ghc-x509-store)
6251 ("ghc-x509-system" ,ghc-x509-system)
6252 ("ghc-x509-validation" ,ghc-x509-validation)))
6253 (home-page "https://github.com/vincenthz/hs-connection")
6254 (synopsis "Simple and easy network connections API")
6255 (description
6256 "This package provides a simple network library for all your connection
6257 needs. It provides a very simple API to create sockets to a destination with
6258 the choice of SSL/TLS, and SOCKS.")
6259 (license license:bsd-3)))
6260
6261 (define-public ghc-skylighting
6262 (package
6263 (name "ghc-skylighting")
6264 (version "0.5.1")
6265 (source (origin
6266 (method url-fetch)
6267 (uri (string-append "https://hackage.haskell.org/package/skylighting-"
6268 version "/skylighting-" version ".tar.gz"))
6269 (sha256
6270 (base32
6271 "0l5lhhqqlfaq1fs7pn3n3b25kmazk8p4ahwvhagbrhcbm5hsigdg"))))
6272 (build-system haskell-build-system)
6273 (inputs
6274 `(("ghc-aeson" ,ghc-aeson)
6275 ("ghc-ansi-terminal" ,ghc-ansi-terminal)
6276 ("ghc-attoparsec" ,ghc-attoparsec)
6277 ("ghc-base64-bytestring" ,ghc-base64-bytestring)
6278 ("ghc-blaze-html" ,ghc-blaze-html)
6279 ("ghc-case-insensitive" ,ghc-case-insensitive)
6280 ("ghc-colour" ,ghc-colour)
6281 ("ghc-diff" ,ghc-diff)
6282 ("ghc-hxt" ,ghc-hxt)
6283 ("ghc-pretty-show" ,ghc-pretty-show)
6284 ("ghc-regex-pcre-builtin" ,ghc-regex-pcre-builtin)
6285 ("ghc-safe" ,ghc-safe)
6286 ("ghc-text" ,ghc-text)
6287 ("ghc-utf8-string" ,ghc-utf8-string)))
6288 (native-inputs
6289 `(("ghc-hunit" ,ghc-hunit)
6290 ("ghc-quickcheck" ,ghc-quickcheck)
6291 ("ghc-tasty" ,ghc-tasty)
6292 ("ghc-tasty-golden" ,ghc-tasty-golden)
6293 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
6294 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
6295 (home-page "https://hackage.haskell.org/package/skylighting")
6296 (synopsis "Syntax highlighting library")
6297 (description "Skylighting is a syntax highlighting library with support
6298 for over one hundred languages. It derives its tokenizers from XML syntax
6299 definitions used by KDE's @code{KSyntaxHighlighting} framework, so any syntax
6300 supported by that framework can be added. An optional command-line program is
6301 provided. Skylighting is intended to be the successor to highlighting-kate.")
6302 (license license:gpl2)))
6303
6304 (define-public ghc-skylighting-for-pandoc-1
6305 (package (inherit ghc-skylighting)
6306 (version "0.1.1.5")
6307 (source (origin
6308 (method git-fetch)
6309 ;; We take the sources from Github, because the tarball on
6310 ;; hackage does not include the XML files.
6311 (uri (git-reference
6312 (url "https://github.com/jgm/skylighting.git")
6313 (commit version)))
6314 (file-name (string-append "ghc-skylighting-" version "-checkout"))
6315 (sha256
6316 (base32
6317 "0z3yv8v2fqqgv6lsf0ff3ld0h2vkg97b2jiry9wn2f1rizwdqmzl"))))
6318 (arguments
6319 `(#:configure-flags '("-fbootstrap")
6320 #:phases
6321 (modify-phases %standard-phases
6322 ;; After building the skylighting-extract tool we use it to generate
6323 ;; syntax source files from the included XML files. These are then
6324 ;; added to the skylighting.cabal file.
6325 (add-after 'build 'extract-xml
6326 (lambda _
6327 (make-file-writable "skylighting.cabal")
6328 (apply invoke "./dist/build/skylighting-extract/skylighting-extract"
6329 (find-files "xml" "\\.xml$"))
6330 #t))
6331 ;; Reconfigure without bootstrap flag
6332 (add-after 'extract-xml 'configure-again
6333 (lambda* (#:key outputs inputs tests? #:allow-other-keys)
6334 ((assoc-ref %standard-phases 'configure)
6335 #:outputs outputs
6336 #:inputs inputs
6337 #:tests? tests?
6338 #:configure-flags '("-f-bootstrap"))))
6339 (add-after 'configure-again 'build-again
6340 (assoc-ref %standard-phases 'build)))))
6341 (inputs
6342 `(("ghc-aeson" ,ghc-aeson-for-pandoc-1)
6343 ("ghc-ansi-terminal" ,ghc-ansi-terminal)
6344 ("ghc-blaze-html" ,ghc-blaze-html)
6345 ("ghc-case-insensitive" ,ghc-case-insensitive)
6346 ("ghc-diff" ,ghc-diff)
6347 ("ghc-hxt" ,ghc-hxt)
6348 ("ghc-pretty-show" ,ghc-pretty-show)
6349 ("ghc-regex-pcre-builtin" ,ghc-regex-pcre-builtin)
6350 ("ghc-safe" ,ghc-safe)
6351 ("ghc-text" ,ghc-text)
6352 ("ghc-utf8-string" ,ghc-utf8-string)))))
6353
6354 (define-public ghc-doctemplates
6355 (package
6356 (name "ghc-doctemplates")
6357 (version "0.2.1")
6358 (source
6359 (origin
6360 (method url-fetch)
6361 (uri (string-append "https://hackage.haskell.org/package/"
6362 "doctemplates/doctemplates-"
6363 version ".tar.gz"))
6364 (sha256
6365 (base32
6366 "1bfs2kl5j5al2w2y4qpbn68p0xsnb65r7h51l356kpkzc326646p"))))
6367 (build-system haskell-build-system)
6368 (inputs
6369 `(("ghc-aeson" ,ghc-aeson)
6370 ("ghc-blaze-markup" ,ghc-blaze-markup)
6371 ("ghc-blaze-html" ,ghc-blaze-html)
6372 ("ghc-text" ,ghc-text)
6373 ("ghc-vector" ,ghc-vector)
6374 ("ghc-parsec" ,ghc-parsec)
6375 ("ghc-unordered-containers" ,ghc-unordered-containers)
6376 ("ghc-scientific" ,ghc-scientific)))
6377 (native-inputs
6378 `(("ghc-hspec" ,ghc-hspec)))
6379 (home-page "https://github.com/jgm/doctemplates#readme")
6380 (synopsis "Pandoc-style document templates")
6381 (description
6382 "This package provides a simple text templating system used by pandoc.")
6383 (license license:bsd-3)))
6384
6385 (define-public ghc-doctemplates-for-pandoc-1
6386 (package (inherit ghc-doctemplates)
6387 (version "0.1.0.2")
6388 (source
6389 (origin
6390 (method url-fetch)
6391 (uri (string-append "https://hackage.haskell.org/package/"
6392 "doctemplates/doctemplates-"
6393 version ".tar.gz"))
6394 (sha256
6395 (base32
6396 "0swal6rjya1293mwvl63jch5fx9ghpsil7qs4v7rpansa0izalmp"))))
6397 (build-system haskell-build-system)
6398 (inputs
6399 `(("ghc-aeson" ,ghc-aeson-for-pandoc-1)
6400 ("ghc-blaze-markup" ,ghc-blaze-markup)
6401 ("ghc-blaze-html" ,ghc-blaze-html)
6402 ("ghc-text" ,ghc-text)
6403 ("ghc-vector" ,ghc-vector)
6404 ("ghc-parsec" ,ghc-parsec)
6405 ("ghc-unordered-containers" ,ghc-unordered-containers)
6406 ("ghc-scientific" ,ghc-scientific)))))
6407
6408 (define-public ghc-pandoc
6409 (package
6410 (name "ghc-pandoc")
6411 (version "2.2.1")
6412 (source
6413 (origin
6414 (method url-fetch)
6415 (uri (string-append "https://hackage.haskell.org/package/pandoc/pandoc-"
6416 version ".tar.gz"))
6417 (sha256
6418 (base32
6419 "1dqin92w513l7whg5wdgrngnxsj5mb8gppfvn7kjgyv2pdgpy0zy"))))
6420 (build-system haskell-build-system)
6421 (inputs
6422 `(("ghc-aeson" ,ghc-aeson)
6423 ("ghc-aeson-pretty" ,ghc-aeson-pretty)
6424 ("ghc-base64-bytestring" ,ghc-base64-bytestring)
6425 ("ghc-blaze-html" ,ghc-blaze-html)
6426 ("ghc-blaze-markup" ,ghc-blaze-markup)
6427 ("ghc-cmark-gfm" ,ghc-cmark-gfm)
6428 ("ghc-data-default" ,ghc-data-default)
6429 ("ghc-deepseq-generics" ,ghc-deepseq-generics)
6430 ("ghc-diff" ,ghc-diff)
6431 ("ghc-doctemplates" ,ghc-doctemplates)
6432 ("ghc-executable-path" ,ghc-executable-path)
6433 ("ghc-glob" ,ghc-glob)
6434 ("ghc-haddock-library" ,ghc-haddock-library)
6435 ("ghc-hslua" ,ghc-hslua)
6436 ("ghc-hslua-module-text" ,ghc-hslua-module-text)
6437 ("ghc-http" ,ghc-http)
6438 ("ghc-http-client" ,ghc-http-client)
6439 ("ghc-http-client-tls" ,ghc-http-client-tls)
6440 ("ghc-http-types" ,ghc-http-types)
6441 ("ghc-juicypixels" ,ghc-juicypixels)
6442 ("ghc-network" ,ghc-network)
6443 ("ghc-network-uri" ,ghc-network-uri)
6444 ("ghc-old-locale" ,ghc-old-locale)
6445 ("ghc-pandoc-types" ,ghc-pandoc-types)
6446 ("ghc-parsec" ,ghc-parsec)
6447 ("ghc-random" ,ghc-random)
6448 ("ghc-scientific" ,ghc-scientific)
6449 ("ghc-sha" ,ghc-sha)
6450 ("ghc-skylighting" ,ghc-skylighting)
6451 ("ghc-split" ,ghc-split)
6452 ("ghc-syb" ,ghc-syb)
6453 ("ghc-tagsoup" ,ghc-tagsoup)
6454 ("ghc-temporary" ,ghc-temporary)
6455 ("ghc-texmath" ,ghc-texmath)
6456 ("ghc-text" ,ghc-text)
6457 ("ghc-unordered-containers" ,ghc-unordered-containers)
6458 ("ghc-vector" ,ghc-vector)
6459 ("ghc-xml" ,ghc-xml)
6460 ("ghc-yaml" ,ghc-yaml)
6461 ("ghc-zip-archive" ,ghc-zip-archive)
6462 ("ghc-zlib" ,ghc-zlib)))
6463 (native-inputs
6464 `(("ghc-tasty" ,ghc-tasty)
6465 ("ghc-tasty-golden" ,ghc-tasty-golden)
6466 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
6467 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
6468 ("ghc-quickcheck" ,ghc-quickcheck)
6469 ("ghc-hunit" ,ghc-hunit)))
6470 (home-page "https://pandoc.org")
6471 (synopsis "Conversion between markup formats")
6472 (description
6473 "Pandoc is a Haskell library for converting from one markup format to
6474 another, and a command-line tool that uses this library. It can read and
6475 write Markdown and (subsets of) other formats, such as HTML, reStructuredText,
6476 LaTeX, DocBook, and many more.
6477
6478 Pandoc extends standard Markdown syntax with footnotes, embedded LaTeX,
6479 definition lists, tables, and other features. A compatibility mode is
6480 provided for those who need a drop-in replacement for Markdown.pl.")
6481 (license license:gpl2+)))
6482
6483 ;; This is the last version of Pandoc 1.x, which is preferred for Rmarkdown.
6484 (define-public ghc-pandoc-1
6485 (package (inherit ghc-pandoc)
6486 (version "1.19.2.4")
6487 (source
6488 (origin
6489 (method url-fetch)
6490 (uri (string-append "https://hackage.haskell.org/package/pandoc/pandoc-"
6491 version ".tar.gz"))
6492 (sha256
6493 (base32
6494 "0mim429mpakrcnm50csxyqk3ljcx2l26r5grk6w9isnggwgqrq5v"))))
6495 (arguments
6496 `(#:configure-flags (list "--allow-newer=skylighting")))
6497 (inputs
6498 `(("ghc-aeson" ,ghc-aeson-for-pandoc-1)
6499 ("ghc-ansi-terminal" ,ghc-ansi-terminal)
6500 ("ghc-base64-bytestring" ,ghc-base64-bytestring)
6501 ("ghc-blaze-html" ,ghc-blaze-html)
6502 ("ghc-blaze-markup" ,ghc-blaze-markup)
6503 ("ghc-cmark" ,ghc-cmark)
6504 ("ghc-data-default" ,ghc-data-default)
6505 ("ghc-deepseq-generics" ,ghc-deepseq-generics)
6506 ("ghc-diff" ,ghc-diff)
6507 ("ghc-doctemplates" ,ghc-doctemplates-for-pandoc-1)
6508 ("ghc-executable-path" ,ghc-executable-path)
6509 ("ghc-extensible-exceptions" ,ghc-extensible-exceptions)
6510 ("ghc-filemanip" ,ghc-filemanip)
6511 ("ghc-haddock-library" ,ghc-haddock-library)
6512 ("ghc-hslua" ,ghc-hslua-for-pandoc-1)
6513 ("ghc-http" ,ghc-http)
6514 ("ghc-http-client" ,ghc-http-client)
6515 ("ghc-http-client-tls" ,ghc-http-client-tls)
6516 ("ghc-http-types" ,ghc-http-types)
6517 ("ghc-juicypixels" ,ghc-juicypixels)
6518 ("ghc-network" ,ghc-network)
6519 ("ghc-network-uri" ,ghc-network-uri)
6520 ("ghc-old-time" ,ghc-old-time)
6521 ("ghc-pandoc-types" ,ghc-pandoc-types-for-pandoc-1)
6522 ("ghc-parsec" ,ghc-parsec)
6523 ("ghc-random" ,ghc-random)
6524 ("ghc-scientific" ,ghc-scientific)
6525 ("ghc-sha" ,ghc-sha)
6526 ("ghc-skylighting" ,ghc-skylighting-for-pandoc-1)
6527 ("ghc-syb" ,ghc-syb)
6528 ("ghc-tagsoup" ,ghc-tagsoup)
6529 ("ghc-temporary" ,ghc-temporary)
6530 ("ghc-texmath" ,ghc-texmath-for-pandoc-1)
6531 ("ghc-text" ,ghc-text)
6532 ("ghc-unordered-containers" ,ghc-unordered-containers)
6533 ("ghc-vector" ,ghc-vector)
6534 ("ghc-xml" ,ghc-xml)
6535 ("ghc-yaml" ,ghc-yaml-for-pandoc-1)
6536 ("ghc-zip-archive" ,ghc-zip-archive)
6537 ("ghc-zlib" ,ghc-zlib)))
6538 (native-inputs
6539 `(("ghc-test-framework" ,ghc-test-framework)
6540 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
6541 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))))
6542
6543 (define-public ghc-hs-bibutils
6544 (package
6545 (name "ghc-hs-bibutils")
6546 (version "6.6.0.0")
6547 (source
6548 (origin
6549 (method url-fetch)
6550 (uri (string-append
6551 "https://hackage.haskell.org/package/hs-bibutils/hs-bibutils-"
6552 version ".tar.gz"))
6553 (sha256
6554 (base32
6555 "0n2sz2zl4naspryd49ii858qkjp2lapns5a2gr8zm6vvn5sh1f0l"))))
6556 (build-system haskell-build-system)
6557 (inputs `(("ghc-syb" ,ghc-syb)))
6558 (home-page "https://hackage.haskell.org/package/hs-bibutils")
6559 (synopsis "Haskell bindings to bibutils")
6560 (description
6561 "This package provides Haskell bindings to @code{bibutils}, a library
6562 that interconverts between various bibliography formats using a common
6563 MODS-format XML intermediate.")
6564 (license license:gpl2+)))
6565
6566 (define-public ghc-rfc5051
6567 (package
6568 (name "ghc-rfc5051")
6569 (version "0.1.0.3")
6570 (source
6571 (origin
6572 (method url-fetch)
6573 (uri (string-append "https://hackage.haskell.org/package/rfc5051/"
6574 "rfc5051-" version ".tar.gz"))
6575 (sha256
6576 (base32
6577 "0av4c3qvwbkbzrjrrg601ay9pds7wscqqp2lc2z78mv2lllap3g3"))))
6578 (build-system haskell-build-system)
6579 (home-page "https://hackage.haskell.org/package/rfc5051")
6580 (synopsis "Simple unicode collation as per RFC5051")
6581 (description
6582 "This library implements @code{unicode-casemap}, the simple, non
6583 locale-sensitive unicode collation algorithm described in RFC 5051. Proper
6584 unicode collation can be done using @code{text-icu}, but that is a big
6585 dependency that depends on a large C library, and @code{rfc5051} might be
6586 better for some purposes.")
6587 (license license:bsd-3)))
6588
6589 (define-public ghc-typed-process
6590 (package
6591 (name "ghc-typed-process")
6592 (version "0.2.2.0")
6593 (source
6594 (origin
6595 (method url-fetch)
6596 (uri (string-append "https://hackage.haskell.org/package/"
6597 "typed-process/typed-process-"
6598 version ".tar.gz"))
6599 (sha256
6600 (base32
6601 "0c6gvgvjyncbni9a5bvpbglknd4yclr3d3hfg9bhgahmkj40dva2"))))
6602 (build-system haskell-build-system)
6603 (inputs
6604 `(("ghc-async" ,ghc-async)
6605 ("ghc-stm" ,ghc-stm)))
6606 (native-inputs
6607 `(("ghc-base64-bytestring" ,ghc-base64-bytestring)
6608 ("ghc-hspec" ,ghc-hspec)
6609 ("hspec-discover" ,hspec-discover)
6610 ("ghc-temporary" ,ghc-temporary)))
6611 (home-page "https://haskell-lang.org/library/typed-process")
6612 (synopsis "Run external processes with strong typing of streams")
6613 (description
6614 "This library provides the ability to launch and interact with external
6615 processes. It wraps around the @code{process} library, and intends to improve
6616 upon it.")
6617 (license license:expat)))
6618
6619 (define-public ghc-conduit-extra
6620 (package
6621 (name "ghc-conduit-extra")
6622 (version "1.3.0")
6623 (source
6624 (origin
6625 (method url-fetch)
6626 (uri (string-append "https://hackage.haskell.org/package/"
6627 "conduit-extra/conduit-extra-"
6628 version ".tar.gz"))
6629 (sha256
6630 (base32
6631 "1bi2b6kdzy5f9glq46jzsk02has95jkxqz0cchpbmnakzhjwjh9c"))))
6632 (build-system haskell-build-system)
6633 (inputs
6634 `(("ghc-conduit" ,ghc-conduit)
6635 ("ghc-exceptions" ,ghc-exceptions)
6636 ("ghc-monad-control" ,ghc-monad-control)
6637 ("ghc-text" ,ghc-text)
6638 ("ghc-transformers-base" ,ghc-transformers-base)
6639 ("ghc-typed-process" ,ghc-typed-process)
6640 ("ghc-async" ,ghc-async)
6641 ("ghc-attoparsec" ,ghc-attoparsec)
6642 ("ghc-blaze-builder" ,ghc-blaze-builder)
6643 ("ghc-network" ,ghc-network)
6644 ("ghc-primitive" ,ghc-primitive)
6645 ("ghc-resourcet" ,ghc-resourcet)
6646 ("ghc-stm" ,ghc-stm)
6647 ("ghc-streaming-commons" ,ghc-streaming-commons)
6648 ("ghc-hspec" ,ghc-hspec)
6649 ("ghc-bytestring-builder" ,ghc-bytestring-builder)
6650 ("ghc-quickcheck" ,ghc-quickcheck)))
6651 (native-inputs
6652 `(("hspec-discover" ,hspec-discover)))
6653 (home-page "https://github.com/snoyberg/conduit")
6654 (synopsis "Conduit adapters for common libraries")
6655 (description
6656 "The @code{conduit} package itself maintains relative small dependencies.
6657 The purpose of this package is to collect commonly used utility functions
6658 wrapping other library dependencies, without depending on heavier-weight
6659 dependencies. The basic idea is that this package should only depend on
6660 @code{haskell-platform} packages and @code{conduit}.")
6661 (license license:expat)))
6662
6663 (define-public ghc-xml-types
6664 (package
6665 (name "ghc-xml-types")
6666 (version "0.3.6")
6667 (source
6668 (origin
6669 (method url-fetch)
6670 (uri (string-append "https://hackage.haskell.org/package/xml-types/"
6671 "xml-types-" version ".tar.gz"))
6672 (sha256
6673 (base32
6674 "1jgqxsa9p2q3h6nymbfmvhldqrqlwrhrzmwadlyc0li50x0d8dwr"))))
6675 (build-system haskell-build-system)
6676 (inputs `(("ghc-text" ,ghc-text)))
6677 (home-page "https://john-millikin.com/software/haskell-xml/")
6678 (synopsis "Basic types for representing XML")
6679 (description "This package provides basic types for representing XML
6680 documents.")
6681 (license license:expat)))
6682
6683 (define-public ghc-xml-conduit
6684 (package
6685 (name "ghc-xml-conduit")
6686 (version "1.8.0.1")
6687 (source
6688 (origin
6689 (method url-fetch)
6690 (uri (string-append "https://hackage.haskell.org/package/xml-conduit/"
6691 "xml-conduit-" version ".tar.gz"))
6692 (sha256
6693 (base32
6694 "177gmyigxql1pn3ncz0r8annwv5cbxnihbgrrg1dhm4gmc9jy2wq"))))
6695 (build-system haskell-build-system)
6696 (inputs
6697 `(("ghc-conduit" ,ghc-conduit)
6698 ("ghc-conduit-extra" ,ghc-conduit-extra)
6699 ("ghc-doctest" ,ghc-doctest)
6700 ("ghc-resourcet" ,ghc-resourcet)
6701 ("ghc-text" ,ghc-text)
6702 ("ghc-xml-types" ,ghc-xml-types)
6703 ("ghc-attoparsec" ,ghc-attoparsec)
6704 ("ghc-data-default-class" ,ghc-data-default-class)
6705 ("ghc-blaze-markup" ,ghc-blaze-markup)
6706 ("ghc-blaze-html" ,ghc-blaze-html)
6707 ("ghc-monad-control" ,ghc-monad-control)
6708 ("ghc-hspec" ,ghc-hspec)
6709 ("ghc-hunit" ,ghc-hunit)))
6710 (home-page "https://github.com/snoyberg/xml")
6711 (synopsis "Utilities for dealing with XML with the conduit package")
6712 (description
6713 "This package provides pure-Haskell utilities for dealing with XML with
6714 the @code{conduit} package.")
6715 (license license:expat)))
6716
6717 (define-public ghc-pandoc-citeproc
6718 (package
6719 (name "ghc-pandoc-citeproc")
6720 (version "0.14.3.1")
6721 (source
6722 (origin
6723 (method url-fetch)
6724 (uri (string-append "https://hackage.haskell.org/package/"
6725 "pandoc-citeproc/pandoc-citeproc-"
6726 version ".tar.gz"))
6727 (sha256
6728 (base32
6729 "0yj6rckwsc9vig40cm15ry0j3d01xpk04qma9n4byhal6v4b5h22"))))
6730 (build-system haskell-build-system)
6731 (arguments
6732 `(#:phases
6733 (modify-phases %standard-phases
6734 ;; Tests need to be run after installation.
6735 (delete 'check)
6736 (add-after 'install 'post-install-check
6737 (assoc-ref %standard-phases 'check)))))
6738 (inputs
6739 `(("ghc-pandoc-types" ,ghc-pandoc-types)
6740 ("ghc-pandoc" ,ghc-pandoc)
6741 ("ghc-tagsoup" ,ghc-tagsoup)
6742 ("ghc-aeson" ,ghc-aeson)
6743 ("ghc-text" ,ghc-text)
6744 ("ghc-vector" ,ghc-vector)
6745 ("ghc-xml-conduit" ,ghc-xml-conduit)
6746 ("ghc-unordered-containers" ,ghc-unordered-containers)
6747 ("ghc-data-default" ,ghc-data-default)
6748 ("ghc-setenv" ,ghc-setenv)
6749 ("ghc-split" ,ghc-split)
6750 ("ghc-yaml" ,ghc-yaml)
6751 ("ghc-hs-bibutils" ,ghc-hs-bibutils)
6752 ("ghc-rfc5051" ,ghc-rfc5051)
6753 ("ghc-syb" ,ghc-syb)
6754 ("ghc-parsec" ,ghc-parsec)
6755 ("ghc-old-locale" ,ghc-old-locale)
6756 ("ghc-aeson-pretty" ,ghc-aeson-pretty)
6757 ("ghc-attoparsec" ,ghc-attoparsec)
6758 ("ghc-temporary" ,ghc-temporary)))
6759 (home-page "https://github.com/jgm/pandoc-citeproc")
6760 (synopsis "Library for using pandoc with citeproc")
6761 (description
6762 "The @code{pandoc-citeproc} library exports functions for using the
6763 citeproc system with pandoc. It relies on @code{citeproc-hs}, a library for
6764 rendering bibliographic reference citations into a variety of styles using a
6765 macro language called @dfn{Citation Style Language} (CSL). This package also
6766 contains an executable @code{pandoc-citeproc}, which works as a pandoc filter,
6767 and also has a mode for converting bibliographic databases a YAML format
6768 suitable for inclusion in pandoc YAML metadata.")
6769 (license license:bsd-3)))
6770
6771 (define-public ghc-pandoc-citeproc-with-pandoc-1
6772 (let ((for-pandoc-1
6773 (package-input-rewriting
6774 `((,ghc-aeson . ,ghc-aeson-for-pandoc-1)
6775 (,ghc-yaml . ,ghc-yaml-for-pandoc-1)
6776 (,ghc-texmath . ,ghc-texmath-for-pandoc-1)
6777 (,ghc-pandoc-types . ,ghc-pandoc-types-for-pandoc-1)
6778 (,ghc-hslua . ,ghc-hslua-for-pandoc-1)
6779 (,ghc-skylighting . ,ghc-skylighting-for-pandoc-1)
6780 (,ghc-doctemplates . ,ghc-doctemplates-for-pandoc-1)
6781 (,ghc-pandoc . ,ghc-pandoc-1)))))
6782 (for-pandoc-1 ghc-pandoc-citeproc)))
6783
6784 (define-public ghc-union-find
6785 (package
6786 (name "ghc-union-find")
6787 (version "0.2")
6788 (source (origin
6789 (method url-fetch)
6790 (uri (string-append
6791 "https://hackage.haskell.org/package/union-find/union-find-"
6792 version ".tar.gz"))
6793 (sha256
6794 (base32
6795 "1v7hj42j9w6jlzi56jg8rh4p58gfs1c5dx30wd1qqvn0p0mnihp6"))))
6796 (build-system haskell-build-system)
6797 (home-page "https://github.com/nominolo/union-find")
6798 (synopsis "Efficient union and equivalence testing of sets")
6799 (description
6800 "The Union/Find algorithm implements these operations in (effectively)
6801 constant-time:
6802 @enumerate
6803 @item Check whether two elements are in the same equivalence class.
6804 @item Create a union of two equivalence classes.
6805 @item Look up the descriptor of the equivalence class.
6806 @end enumerate\n")
6807 (license license:bsd-3)))
6808
6809 (define-public ghc-base16-bytestring
6810 (package
6811 (name "ghc-base16-bytestring")
6812 (version "0.1.1.6")
6813 (source
6814 (origin
6815 (method url-fetch)
6816 (uri (string-append
6817 "https://hackage.haskell.org/package/base16-bytestring/"
6818 "base16-bytestring-" version ".tar.gz"))
6819 (sha256
6820 (base32
6821 "0jf40m3yijqw6wd1rwwvviww46fasphaay9m9rgqyhf5aahnbzjs"))))
6822 (build-system haskell-build-system)
6823 (home-page "https://github.com/bos/base16-bytestring")
6824 (synopsis "Fast base16 (hex) encoding and decoding for ByteStrings")
6825 (description
6826 "This package provides a Haskell library for working with base16-encoded
6827 data quickly and efficiently, using the ByteString type.")
6828 (license license:bsd-3)))
6829
6830 (define-public ghc-data-ordlist
6831 (package
6832 (name "ghc-data-ordlist")
6833 (version "0.4.7.0")
6834 (source
6835 (origin
6836 (method url-fetch)
6837 (uri (string-append
6838 "https://hackage.haskell.org/package/data-ordlist/data-ordlist-"
6839 version ".tar.gz"))
6840 (sha256
6841 (base32
6842 "03a9ix1fcx08viwv2jg5ndw1qbkydyyrmjvqr9wasmcik9x1wv3g"))))
6843 (build-system haskell-build-system)
6844 (home-page "https://hackage.haskell.org/package/data-ordlist")
6845 (synopsis "Set and bag operations on ordered lists")
6846 (description
6847 "This module provides set and multiset operations on ordered lists.")
6848 (license license:bsd-3)))
6849
6850 (define-public ghc-regex-applicative
6851 (package
6852 (name "ghc-regex-applicative")
6853 (version "0.3.3")
6854 (source
6855 (origin
6856 (method url-fetch)
6857 (uri (string-append
6858 "https://hackage.haskell.org/package/regex-applicative/"
6859 "regex-applicative-" version ".tar.gz"))
6860 (sha256
6861 (base32
6862 "1riv7jqf26lbv4rm54sd6mrx8xdh4dvh4xbzymzdfdw13k6a4nb6"))))
6863 (build-system haskell-build-system)
6864 (inputs
6865 `(("ghc-smallcheck" ,ghc-smallcheck)
6866 ("ghc-tasty" ,ghc-tasty)
6867 ("ghc-tasty-smallcheck" ,ghc-tasty-smallcheck)
6868 ("ghc-tasty-hunit" ,ghc-tasty-hunit)))
6869 (home-page "https://github.com/feuerbach/regex-applicative")
6870 (synopsis "Regex-based parsing with applicative interface")
6871 (description
6872 "@code{regex-applicative} is a Haskell library for parsing using
6873 regular expressions. Parsers can be built using Applicative interface.")
6874 (license license:expat)))
6875
6876 (define-public ghc-regex-tdfa
6877 (package
6878 (name "ghc-regex-tdfa")
6879 (version "1.2.2")
6880 (source
6881 (origin
6882 (method url-fetch)
6883 (uri (string-append
6884 "https://hackage.haskell.org/package/regex-tdfa/regex-tdfa-"
6885 version ".tar.gz"))
6886 (sha256
6887 (base32
6888 "0f8x8wyr6m21g8dnxvnvalz5bsq37l125l6qhs0fscbvprsxc4nb"))))
6889 (build-system haskell-build-system)
6890 (inputs
6891 `(("ghc-parsec" ,ghc-parsec)
6892 ("ghc-regex-base" ,ghc-regex-base)))
6893 (home-page "https://github.com/ChrisKuklewicz/regex-tdfa")
6894 (synopsis "POSIX extended regular expressions in Haskell.")
6895 (description
6896 "Regex-tdfa is a pure Haskell regular expression library implementing POSIX
6897 extended regular expressions. It is a \"tagged\" DFA regex engine. It is
6898 inspired by libtre.")
6899 (license license:bsd-3)))
6900
6901 (define-public ghc-regex-compat-tdfa
6902 (package
6903 (name "ghc-regex-compat-tdfa")
6904 (version "0.95.1.4")
6905 (source
6906 (origin
6907 (method url-fetch)
6908 (uri (string-append
6909 "https://hackage.haskell.org/package/regex-compat-tdfa/regex-compat-tdfa-"
6910 version ".tar.gz"))
6911 (sha256
6912 (base32
6913 "1p90fn90yhp7fvljjdqjp41cszidcfz4pw7fwvzyx4739b98x8sg"))))
6914 (build-system haskell-build-system)
6915 (inputs
6916 `(("ghc-regex-base" ,ghc-regex-base)
6917 ("ghc-regex-tdfa" ,ghc-regex-tdfa)))
6918 (home-page "https://hub.darcs.net/shelarcy/regex-compat-tdfa")
6919 (synopsis "Unicode Support version of Text.Regex, using regex-tdfa")
6920 (description
6921 "One module layer over @code{regex-tdfa} to replace @code{Text.Regex}.
6922 @code{regex-compat} can't use Unicode characters correctly because of using regex-posix.
6923 This is not good for Unicode users. This modified regex-compat uses regex-tdfa to solve
6924 this problem.")
6925 (license license:bsd-3)))
6926
6927 (define-public ghc-sandi
6928 (package
6929 (name "ghc-sandi")
6930 (version "0.4.2")
6931 (source
6932 (origin
6933 (method url-fetch)
6934 (uri (string-append
6935 "https://hackage.haskell.org/package/sandi/sandi-"
6936 version ".tar.gz"))
6937 (sha256
6938 (base32
6939 "0dvkpk91n9kz2ha04rvp231ra9sgd1ilyc1qkzf9l03iir7zrh9b"))))
6940 (build-system haskell-build-system)
6941 (inputs
6942 `(("ghc-stringsearch" ,ghc-stringsearch)
6943 ("ghc-conduit" ,ghc-conduit)
6944 ("ghc-exceptions" ,ghc-exceptions)
6945 ("ghc-hunit" ,ghc-hunit)
6946 ("ghc-tasty" ,ghc-tasty)
6947 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
6948 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
6949 ("ghc-tasty-th" ,ghc-tasty-th)))
6950 (home-page "https://hackage.haskell.org/package/sandi")
6951 (synopsis "Data encoding library")
6952 (description "Reasonably fast data encoding library.")
6953 (license license:bsd-3)))
6954
6955 (define-public ghc-bytestring-handle
6956 (package
6957 (name "ghc-bytestring-handle")
6958 (version "0.1.0.6")
6959 (source
6960 (origin
6961 (method url-fetch)
6962 (uri (string-append
6963 "https://hackage.haskell.org/package/bytestring-handle/bytestring-handle-"
6964 version ".tar.gz"))
6965 (sha256
6966 (base32
6967 "18f17aja1ivhr3zyg2cccn2m03hdn5jf5410dndkhf12gvgiqs7y"))))
6968 (build-system haskell-build-system)
6969 (inputs
6970 `(("ghc-hunit" ,ghc-hunit)
6971 ("ghc-quickcheck" ,ghc-quickcheck)
6972 ("ghc-test-framework" ,ghc-test-framework)
6973 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
6974 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
6975 (home-page "https://hub.darcs.net/ganesh/bytestring-handle")
6976 (synopsis "ByteString-backed Handles")
6977 (description "ByteString-backed Handles") ; There is no description
6978 (license license:bsd-3)))
6979
6980 (define-public ghc-tar
6981 (package
6982 (name "ghc-tar")
6983 (version "0.5.0.3")
6984 (source
6985 (origin
6986 (method url-fetch)
6987 (uri (string-append
6988 "https://hackage.haskell.org/package/tar/tar-"
6989 version ".tar.gz"))
6990 (sha256
6991 (base32
6992 "18qq94j9bm91iswnxq2dm5dws5c7wm4k01q2rpf8py35cf3svnfq"))))
6993 (build-system haskell-build-system)
6994 ;; FIXME: 2/24 tests fail.
6995 (arguments `(#:tests? #f))
6996 (inputs
6997 `(("ghc-bytestring-handle" ,ghc-bytestring-handle)
6998 ("ghc-quickcheck" ,ghc-quickcheck)
6999 ("ghc-tasty" ,ghc-tasty)
7000 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
7001 (home-page "https://hackage.haskell.org/package/tar")
7002 (synopsis "Reading, writing and manipulating \".tar\" archive files")
7003 (description
7004 "This library is for working with \\\"@.tar@\\\" archive files.
7005 It can read and write a range of common variations of the tar archive format
7006 including V7, POSIX USTAR and GNU formats. It provides support for packing and
7007 unpacking portable archives. This makes it suitable for distribution but not
7008 backup because details like file ownership and exact permissions are not
7009 preserved. It also provides features for random access to archive content using
7010 an index.")
7011 (license license:bsd-3)))
7012
7013 (define-public ghc-stmonadtrans
7014 (package
7015 (name "ghc-stmonadtrans")
7016 (version "0.4.3")
7017 (source
7018 (origin
7019 (method url-fetch)
7020 (uri (string-append "https://hackage.haskell.org/package/STMonadTrans"
7021 "/STMonadTrans-" version ".tar.gz"))
7022 (sha256
7023 (base32 "1nr26fnmi5fdjc6d00w13kjhmfyvb5b837d0006w4dj0yxndaksp"))))
7024 (build-system haskell-build-system)
7025 (home-page "https://hackage.haskell.org/package/STMonadTrans")
7026 (synopsis "Monad transformer version of the ST monad")
7027 (description
7028 "This package provides a monad transformer version of the @code{ST} monad
7029 for strict state threads.")
7030 (license license:bsd-3)))
7031
7032 (define-public ghc-findbin
7033 (package
7034 (name "ghc-findbin")
7035 (version "0.0.5")
7036 (source
7037 (origin
7038 (method url-fetch)
7039 (uri (string-append
7040 "https://hackage.haskell.org/package/FindBin/FindBin-"
7041 version ".tar.gz"))
7042 (sha256
7043 (base32
7044 "197xvn05yysmibm1p5wzxfa256lvpbknr5d1l2ws6g40w1kpk717"))))
7045 (build-system haskell-build-system)
7046 (home-page "https://github.com/audreyt/findbin")
7047 (synopsis "Get the absolute path of the running program")
7048 (description
7049 "This module locates the full directory of the running program, to allow
7050 the use of paths relative to it. FindBin supports invocation of Haskell
7051 programs via \"ghci\", via \"runhaskell/runghc\", as well as compiled as
7052 an executable.")
7053 (license license:bsd-3)))
7054
7055 (define-public ghc-patience
7056 (package
7057 (name "ghc-patience")
7058 (version "0.1.1")
7059 (source
7060 (origin
7061 (method url-fetch)
7062 (uri (string-append
7063 "https://hackage.haskell.org/package/patience/patience-"
7064 version ".tar.gz"))
7065 (sha256
7066 (base32
7067 "0qyv20gqy9pb1acy700ahv70lc6vprcwb26cc7fcpcs4scsc7irm"))))
7068 (build-system haskell-build-system)
7069 (home-page "https://hackage.haskell.org/package/patience")
7070 (synopsis "Patience diff and longest increasing subsequence")
7071 (description
7072 "This library implements the 'patience diff' algorithm, as well as the
7073 patience algorithm for the longest increasing subsequence problem.
7074 Patience diff computes the difference between two lists, for example the lines
7075 of two versions of a source file. It provides a good balance between
7076 performance, nice output for humans, and simplicity of implementation.")
7077 (license license:bsd-3)))
7078
7079 (define-public ghc-monads-tf
7080 (package
7081 (name "ghc-monads-tf")
7082 (version "0.1.0.3")
7083 (source
7084 (origin
7085 (method url-fetch)
7086 (uri (string-append
7087 "https://hackage.haskell.org/package/monads-tf/monads-tf-"
7088 version ".tar.gz"))
7089 (sha256
7090 (base32
7091 "1wdhskwa6dw8qljbvwpyxj8ca6y95q2np7z4y4q6bpf4anmd5794"))))
7092 (build-system haskell-build-system)
7093 (home-page "https://hackage.haskell.org/package/monads-tf")
7094 (synopsis "Monad classes, using type families")
7095 (description
7096 "Monad classes using type families, with instances for various monad transformers,
7097 inspired by the paper 'Functional Programming with Overloading and Higher-Order
7098 Polymorphism', by Mark P Jones. This package is almost a compatible replacement for
7099 the @code{mtl-tf} package.")
7100 (license license:bsd-3)))
7101
7102 (define-public ghc-colour
7103 (package
7104 (name "ghc-colour")
7105 (version "2.3.4")
7106 (source
7107 (origin
7108 (method url-fetch)
7109 (uri (string-append
7110 "https://hackage.haskell.org/package/colour/colour-"
7111 version ".tar.gz"))
7112 (sha256
7113 (base32
7114 "1sy51nz096sv91nxqk6yk7b92b5a40axv9183xakvki2nc09yhqg"))))
7115 (arguments
7116 ;; The tests for this package have the following dependency cycle:
7117 ;; ghc-test-framework -> ghc-ansi-terminal -> ghc-colour.
7118 `(#:tests? #f))
7119 (build-system haskell-build-system)
7120 (home-page "https://www.haskell.org/haskellwiki/Colour")
7121 (synopsis "Model for human colour perception")
7122 (description
7123 "This package provides a data type for colours and transparency.
7124 Colours can be blended and composed. Various colour spaces are
7125 supported. A module of colour names (\"Data.Colour.Names\") is provided.")
7126 (license license:expat)))
7127
7128 (define-public ghc-wl-pprint-text
7129 (package
7130 (name "ghc-wl-pprint-text")
7131 (version "1.2.0.0")
7132 (source
7133 (origin
7134 (method url-fetch)
7135 (uri (string-append
7136 "https://hackage.haskell.org/package/wl-pprint-text/wl-pprint-text-"
7137 version ".tar.gz"))
7138 (sha256
7139 (base32
7140 "0g3w92rad6x5appfb22rbzcas2ix2h0hy91sdxhq8a4a5cnlrpa0"))))
7141 (build-system haskell-build-system)
7142 (inputs
7143 `(("ghc-base-compat" ,ghc-base-compat)
7144 ("ghc-text" ,ghc-text)))
7145 (home-page "https://hackage.haskell.org/package/wl-pprint-text")
7146 (synopsis "Wadler/Leijen Pretty Printer for Text values")
7147 (description
7148 "A clone of wl-pprint for use with the text library.")
7149 (license license:bsd-3)))
7150
7151 (define-public ghc-fgl-arbitrary
7152 (package
7153 (name "ghc-fgl-arbitrary")
7154 (version "0.2.0.3")
7155 (source
7156 (origin
7157 (method url-fetch)
7158 (uri (string-append
7159 "https://hackage.haskell.org/package/fgl-arbitrary/fgl-arbitrary-"
7160 version ".tar.gz"))
7161 (sha256
7162 (base32
7163 "0ln1szgfy8fa78l3issq4fx3aqnnd54w3cb4wssrfi48vd5rkfjm"))))
7164 (build-system haskell-build-system)
7165 (arguments
7166 `(#:configure-flags (list "--allow-newer=QuickCheck"
7167 "--allow-newer=hspec")))
7168 (inputs
7169 `(("ghc-fgl" ,ghc-fgl)
7170 ("ghc-quickcheck" ,ghc-quickcheck)
7171 ("ghc-hspec" ,ghc-hspec)))
7172 (home-page "https://hackage.haskell.org/package/fgl-arbitrary")
7173 (synopsis "QuickCheck support for fgl")
7174 (description
7175 "Provides Arbitrary instances for fgl graphs to avoid adding a
7176 QuickCheck dependency for fgl whilst still making the instances
7177 available to others. Also available are non-fgl-specific functions
7178 for generating graph-like data structures.")
7179 (license license:bsd-3)))
7180
7181 (define-public ghc-graphviz
7182 (package
7183 (name "ghc-graphviz")
7184 (version "2999.20.0.2")
7185 (source (origin
7186 (method url-fetch)
7187 (uri (string-append "https://hackage.haskell.org/package/"
7188 "graphviz/graphviz-" version ".tar.gz"))
7189 (sha256
7190 (base32
7191 "0kj7ap0gnliviq2p8lscw1m06capnsa90vpvcys24nqy5nw2wrp7"))))
7192 (build-system haskell-build-system)
7193 (arguments
7194 `(#:configure-flags (list "--allow-newer=QuickCheck")))
7195 (inputs
7196 `(("ghc-quickcheck" ,ghc-quickcheck)
7197 ("ghc-colour" ,ghc-colour)
7198 ("ghc-dlist" ,ghc-dlist)
7199 ("ghc-fgl" ,ghc-fgl)
7200 ("ghc-fgl-arbitrary" ,ghc-fgl-arbitrary)
7201 ("ghc-polyparse" ,ghc-polyparse)
7202 ("ghc-temporary" ,ghc-temporary)
7203 ("ghc-text" ,ghc-text)
7204 ("ghc-wl-pprint-text" ,ghc-wl-pprint-text)))
7205 (native-inputs
7206 `(("ghc-hspec" ,ghc-hspec)
7207 ("graphviz" ,graphviz)
7208 ("hspec-discover" ,hspec-discover)))
7209 (home-page "https://hackage.haskell.org/package/graphviz")
7210 (synopsis "Bindings to Graphviz for graph visualisation")
7211 (description
7212 "This library provides bindings for the Dot language used by
7213 the @uref{https://graphviz.org/, Graphviz} suite of programs for
7214 visualising graphs, as well as functions to call those programs.
7215 Main features of the graphviz library include:
7216
7217 @enumerate
7218 @item Almost complete coverage of all Graphviz attributes and syntax
7219 @item Support for specifying clusters
7220 @item The ability to use a custom node type
7221 @item Functions for running a Graphviz layout tool with all specified output types
7222 @item Generate and parse Dot code with two options: strict and liberal
7223 @item Functions to convert FGL graphs and other graph-like data structures
7224 @item Round-trip support for passing an FGL graph through Graphviz to augment node
7225 and edge labels with positional information, etc.
7226 @end enumerate\n")
7227 (license license:bsd-3)))
7228
7229 (define-public ghc-constraints
7230 (package
7231 (name "ghc-constraints")
7232 (version "0.8")
7233 (source
7234 (origin
7235 (method url-fetch)
7236 (uri (string-append
7237 "https://hackage.haskell.org/package/constraints/constraints-"
7238 version ".tar.gz"))
7239 (sha256
7240 (base32
7241 "120mmv9rwbahslisc1z8zx9lw7v6hl5fzid4l0hiy5as6ijqgl2c"))))
7242 (build-system haskell-build-system)
7243 (inputs
7244 `(("ghc-hashable" ,ghc-hashable)
7245 ("ghc-transformers-compat" ,ghc-transformers-compat)))
7246 (home-page "https://github.com/ekmett/constraints/")
7247 (synopsis "Constraint manipulation")
7248 (description
7249 "GHC 7.4 gave us the ability to talk about @code{ConstraintKinds}.
7250 They stopped crashing the compiler in GHC 7.6. This package provides
7251 a vocabulary for working with them.")
7252 (license license:bsd-3)))
7253
7254 (define-public ghc-lifted-async
7255 (package
7256 (name "ghc-lifted-async")
7257 (version "0.9.0")
7258 (source
7259 (origin
7260 (method url-fetch)
7261 (uri (string-append
7262 "https://hackage.haskell.org/package/lifted-async/lifted-async-"
7263 version ".tar.gz"))
7264 (sha256
7265 (base32
7266 "00fnwfcnc6niq9jbbb9rap9rkdgv5qhcglwanzc5fi8834j94c1r"))))
7267 (build-system haskell-build-system)
7268 (inputs
7269 `(("ghc-async" ,ghc-async)
7270 ("ghc-lifted-base" ,ghc-lifted-base)
7271 ("ghc-transformers-base" ,ghc-transformers-base)
7272 ("ghc-monad-control" ,ghc-monad-control)
7273 ("ghc-constraints" ,ghc-constraints)
7274 ("ghc-hunit" ,ghc-hunit)
7275 ("ghc-tasty" ,ghc-tasty)
7276 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
7277 ("ghc-tasty-th" ,ghc-tasty-th)))
7278 (home-page "https://github.com/maoe/lifted-async")
7279 (synopsis "Run lifted IO operations asynchronously and wait for their results")
7280 (description
7281 "This package provides IO operations from @code{async} package lifted to any
7282 instance of @code{MonadBase} or @code{MonadBaseControl}.")
7283 (license license:bsd-3)))
7284
7285 ;; Ghc-shelly depends on ghc-system-filepath and ghc-system-fileio, who in turn depend on
7286 ;; ghc-chell and ghc-chell-quickcheck for the test phase. Ghc-chell depends on ghc-options
7287 ;; which depends on ghc-chell and ghc-chell-quickcheck.
7288 ;; Therefore we bootstrap it with tests disabled.
7289 (define ghc-system-filepath-bootstrap
7290 (package
7291 (name "ghc-system-filepath-bootstrap")
7292 (version "0.4.14")
7293 (source
7294 (origin
7295 (method url-fetch)
7296 (uri (string-append
7297 "https://hackage.haskell.org/package/system-filepath/system-filepath-"
7298 version ".tar.gz"))
7299 (sha256
7300 (base32
7301 "14yras4pz2dh55xpwmazcgxijvi8913pjgzb9iw50mjq1lycwmhn"))))
7302 (build-system haskell-build-system)
7303 (arguments
7304 `(#:tests? #f))
7305 (inputs
7306 `(("ghc-text" ,ghc-text)
7307 ("ghc-quickcheck" ,ghc-quickcheck)))
7308 (home-page "https://github.com/fpco/haskell-filesystem")
7309 (synopsis "High-level, byte-based file and directory path manipulations")
7310 (description
7311 "Provides a FilePath datatype and utility functions for operating on it.
7312 Unlike the filepath package, this package does not simply reuse String,
7313 increasing type safety.")
7314 (license license:expat)))
7315
7316 ;; See ghc-system-filepath-bootstrap. In addition this package depends on
7317 ;; ghc-system-filepath.
7318 (define ghc-system-fileio-bootstrap
7319 (package
7320 (name "ghc-system-fileio-bootstrap")
7321 (version "0.3.16.3")
7322 (source
7323 (origin
7324 (method url-fetch)
7325 (uri (string-append
7326 "https://hackage.haskell.org/package/system-fileio/system-fileio-"
7327 version ".tar.gz"))
7328 (sha256
7329 (base32
7330 "1484hcl27s2qcby8ws5djj11q9bz68bspcifz9h5gii2ndy70x9i"))))
7331 (build-system haskell-build-system)
7332 (arguments
7333 `(#:tests? #f))
7334 (inputs
7335 `(("ghc-system-filepath-bootstrap" ,ghc-system-filepath-bootstrap)
7336 ("ghc-text" ,ghc-text)
7337 ("ghc-temporary" ,ghc-temporary)))
7338 (home-page "https://github.com/fpco/haskell-filesystem")
7339 (synopsis "Consistent file system interaction across GHC versions")
7340 (description
7341 "This is a small wrapper around the directory, unix, and Win32 packages,
7342 for use with system-filepath. It provides a consistent API to the various
7343 versions of these packages distributed with different versions of GHC.
7344 In particular, this library supports working with POSIX files that have paths
7345 which can't be decoded in the current locale encoding.")
7346 (license license:expat)))
7347
7348 (define-public ghc-shelly
7349 (package
7350 (name "ghc-shelly")
7351 (version "1.8.1")
7352 (source
7353 (origin
7354 (method url-fetch)
7355 (uri (string-append
7356 "https://hackage.haskell.org/package/shelly/shelly-"
7357 version ".tar.gz"))
7358 (sha256
7359 (base32
7360 "023fbvbqs5gdwm30j5517gbdcc7fvz0md70dgwgpypkskj3i926y"))))
7361 (build-system haskell-build-system)
7362 (inputs
7363 `(("ghc-unix-compat" ,ghc-unix-compat)
7364 ("ghc-system-filepath-bootstrap" ,ghc-system-filepath-bootstrap)
7365 ("ghc-system-fileio-bootstrap" ,ghc-system-fileio-bootstrap)
7366 ("ghc-monad-control" ,ghc-monad-control)
7367 ("ghc-lifted-base" ,ghc-lifted-base)
7368 ("ghc-lifted-async" ,ghc-lifted-async)
7369 ("ghc-exceptions" ,ghc-exceptions)
7370 ("ghc-enclosed-exceptions" ,ghc-enclosed-exceptions)
7371 ("ghc-text" ,ghc-text)
7372 ("ghc-async" ,ghc-async)
7373 ("ghc-transformers-base" ,ghc-transformers-base)
7374 ("ghc-hunit" ,ghc-hunit)
7375 ("ghc-hspec" ,ghc-hspec)
7376 ("ghc-hspec-contrib" ,ghc-hspec-contrib)))
7377 (home-page "https://github.com/yesodweb/Shelly.hs")
7378 (synopsis "Shell-like (systems) programming in Haskell")
7379 (description
7380 "Shelly provides convenient systems programming in Haskell, similar in
7381 spirit to POSIX shells. Shelly is originally forked from the Shellish package.")
7382 (license license:bsd-3)))
7383
7384 ;; See ghc-system-filepath-bootstrap, chell and chell-quickcheck are required for tests.
7385 (define ghc-options-bootstrap
7386 (package
7387 (name "ghc-options-bootstrap")
7388 (version "1.2.1.1")
7389 (source
7390 (origin
7391 (method url-fetch)
7392 (uri (string-append
7393 "https://hackage.haskell.org/package/options/options-"
7394 version ".tar.gz"))
7395 (sha256
7396 (base32
7397 "0qjs0v1ny52w51n5582d4z8wy9h6n0zw1xb5dh686ff5wadflgi8"))))
7398 (build-system haskell-build-system)
7399 (arguments
7400 `(#:tests? #f))
7401 (inputs
7402 `(("ghc-monads-tf" ,ghc-monads-tf)))
7403 (home-page "https://john-millikin.com/software/haskell-options/")
7404 (synopsis "Powerful and easy-to-use command-line option parser")
7405 (description
7406 "The @code{options} package lets library and application developers
7407 easily work with command-line options.")
7408 (license license:expat)))
7409
7410 (define-public ghc-chell
7411 (package
7412 (name "ghc-chell")
7413 (version "0.4.0.2")
7414 (source
7415 (origin
7416 (method url-fetch)
7417 (uri (string-append
7418 "https://hackage.haskell.org/package/chell/chell-"
7419 version ".tar.gz"))
7420 (sha256
7421 (base32
7422 "10ingy9qnbmc8cqh4i9pskcw43l0mzk8f3d76b3qz3fig5ary3j9"))))
7423 (build-system haskell-build-system)
7424 (inputs
7425 `(("ghc-options-bootstrap" ,ghc-options-bootstrap)
7426 ("ghc-patience" ,ghc-patience)
7427 ("ghc-random" ,ghc-random)
7428 ("ghc-text" ,ghc-text)
7429 ("ghc-ansi-terminal" ,ghc-ansi-terminal)))
7430 (home-page "https://john-millikin.com/software/chell/")
7431 (synopsis "Simple and intuitive library for automated testing")
7432 (description
7433 "Chell is a simple and intuitive library for automated testing.
7434 It natively supports assertion-based testing, and can use companion
7435 libraries such as @code{chell-quickcheck} to support more complex
7436 testing strategies.")
7437 (license license:expat)))
7438
7439 (define ghc-chell-quickcheck-bootstrap
7440 (package
7441 (name "ghc-chell-quickcheck-bootstrap")
7442 (version "0.2.5.1")
7443 (source
7444 (origin
7445 (method url-fetch)
7446 (uri (string-append
7447 "https://hackage.haskell.org/package/chell-quickcheck/"
7448 "chell-quickcheck-" version ".tar.gz"))
7449 (sha256
7450 (base32
7451 "1iicsys9igx7m7n4l2b8djardmjy2ah5ibzp7kzs758h460fq53a"))))
7452 (build-system haskell-build-system)
7453 (inputs
7454 `(("ghc-chell" ,ghc-chell)
7455 ("ghc-random" ,ghc-random)
7456 ("ghc-quickcheck" ,ghc-quickcheck)))
7457 (arguments
7458 `(#:tests? #f
7459 #:phases
7460 (modify-phases %standard-phases
7461 (add-before 'configure 'update-constraints
7462 (lambda _
7463 (substitute* "chell-quickcheck.cabal"
7464 (("QuickCheck >= 2\\.3 && < 2\\.11")
7465 "QuickCheck >= 2.3 && < 2.12")))))))
7466 (home-page "https://john-millikin.com/software/chell/")
7467 (synopsis "QuickCheck support for the Chell testing library")
7468 (description "More complex tests for @code{chell}.")
7469 (license license:expat)))
7470
7471 (define-public ghc-chell-quickcheck
7472 (package
7473 (name "ghc-chell-quickcheck")
7474 (version "0.2.5.1")
7475 (source
7476 (origin
7477 (method url-fetch)
7478 (uri (string-append
7479 "https://hackage.haskell.org/package/chell-quickcheck/"
7480 "chell-quickcheck-" version ".tar.gz"))
7481 (sha256
7482 (base32
7483 "1iicsys9igx7m7n4l2b8djardmjy2ah5ibzp7kzs758h460fq53a"))))
7484 (build-system haskell-build-system)
7485 (arguments
7486 `(#:phases
7487 (modify-phases %standard-phases
7488 (add-before 'configure 'update-constraints
7489 (lambda _
7490 (substitute* "chell-quickcheck.cabal"
7491 (("QuickCheck >= 2\\.3 && < 2\\.11")
7492 "QuickCheck >= 2.3 && < 2.12")))))))
7493 (inputs
7494 `(("ghc-chell" ,ghc-chell)
7495 ("ghc-chell-quickcheck-bootstrap" ,ghc-chell-quickcheck-bootstrap)
7496 ("ghc-random" ,ghc-random)
7497 ("ghc-quickcheck" ,ghc-quickcheck)))
7498 (home-page "https://john-millikin.com/software/chell/")
7499 (synopsis "QuickCheck support for the Chell testing library")
7500 (description "More complex tests for @code{chell}.")
7501 (license license:expat)))
7502
7503 (define-public ghc-options
7504 (package
7505 (name "ghc-options")
7506 (version "1.2.1.1")
7507 (source
7508 (origin
7509 (method url-fetch)
7510 (uri (string-append
7511 "https://hackage.haskell.org/package/options/options-"
7512 version ".tar.gz"))
7513 (sha256
7514 (base32
7515 "0qjs0v1ny52w51n5582d4z8wy9h6n0zw1xb5dh686ff5wadflgi8"))))
7516 (build-system haskell-build-system)
7517 (inputs
7518 `(("ghc-monads-tf" ,ghc-monads-tf)
7519 ("ghc-chell" ,ghc-chell)
7520 ("ghc-chell-quickcheck" ,ghc-chell-quickcheck)))
7521 (home-page "https://john-millikin.com/software/haskell-options/")
7522 (synopsis "Powerful and easy-to-use command-line option parser")
7523 (description
7524 "The @code{options} package lets library and application developers
7525 easily work with command-line options.")
7526 (license license:expat)))
7527
7528 (define-public ghc-system-filepath
7529 (package
7530 (name "ghc-system-filepath")
7531 (version "0.4.14")
7532 (source
7533 (origin
7534 (method url-fetch)
7535 (uri (string-append
7536 "https://hackage.haskell.org/package/system-filepath/system-filepath-"
7537 version ".tar.gz"))
7538 (sha256
7539 (base32
7540 "14yras4pz2dh55xpwmazcgxijvi8913pjgzb9iw50mjq1lycwmhn"))))
7541 (build-system haskell-build-system)
7542 ;; FIXME: One of the tests fails:
7543 ;; [ FAIL ] tests.validity.posix
7544 ;; note: seed=7310214548328823169
7545 ;; *** Failed! Falsifiable (after 24 tests):
7546 ;; 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"
7547 (arguments `(#:tests? #f))
7548 (inputs
7549 `(("ghc-text" ,ghc-text)
7550 ("ghc-chell" ,ghc-chell)
7551 ("ghc-chell-quickcheck" ,ghc-chell-quickcheck)
7552 ("ghc-quickcheck" ,ghc-quickcheck)))
7553 (home-page "https://github.com/fpco/haskell-filesystem")
7554 (synopsis "High-level, byte-based file and directory path manipulations")
7555 (description
7556 "Provides a FilePath datatype and utility functions for operating on it.
7557 Unlike the filepath package, this package does not simply reuse String,
7558 increasing type safety.")
7559 (license license:expat)))
7560
7561 (define-public ghc-system-fileio
7562 (package
7563 (name "ghc-system-fileio")
7564 (version "0.3.16.3")
7565 (source
7566 (origin
7567 (method url-fetch)
7568 (uri (string-append
7569 "https://hackage.haskell.org/package/system-fileio/system-fileio-"
7570 version ".tar.gz"))
7571 (sha256
7572 (base32
7573 "1484hcl27s2qcby8ws5djj11q9bz68bspcifz9h5gii2ndy70x9i"))))
7574 (build-system haskell-build-system)
7575 (inputs
7576 `(("ghc-system-filepath" ,ghc-system-filepath)
7577 ("ghc-text" ,ghc-text)
7578 ("ghc-chell" ,ghc-chell)
7579 ("ghc-temporary" ,ghc-temporary)))
7580 (home-page "https://github.com/fpco/haskell-filesystem")
7581 (synopsis "Consistent file system interaction across GHC versions")
7582 (description
7583 "This is a small wrapper around the directory, unix, and Win32 packages,
7584 for use with system-filepath. It provides a consistent API to the various
7585 versions of these packages distributed with different versions of GHC.
7586 In particular, this library supports working with POSIX files that have paths
7587 which can't be decoded in the current locale encoding.")
7588 (license license:expat)))
7589
7590 (define-public ghc-storable-complex
7591 (package
7592 (name "ghc-storable-complex")
7593 (version "0.2.2")
7594 (source
7595 (origin
7596 (method url-fetch)
7597 (uri (string-append
7598 "https://hackage.haskell.org/package/storable-complex/storable-complex-"
7599 version ".tar.gz"))
7600 (sha256
7601 (base32 "01kwwkpbfjrv26vj83cd92px5qbq1bpgxj0r45534aksqhany1xb"))))
7602 (build-system haskell-build-system)
7603 (home-page "https://github.com/cartazio/storable-complex")
7604 (synopsis "Haskell Storable instance for Complex")
7605 (description "This package provides a Haskell library including a
7606 Storable instance for Complex which is binary compatible with C99, C++
7607 and Fortran complex data types.")
7608 (license license:bsd-3)))
7609
7610 (define-public ghc-hmatrix
7611 (package
7612 (name "ghc-hmatrix")
7613 (version "0.18.1.0")
7614 (source
7615 (origin
7616 (method url-fetch)
7617 (uri (string-append
7618 "https://hackage.haskell.org/package/hmatrix/hmatrix-"
7619 version ".tar.gz"))
7620 (sha256
7621 (base32 "07zkwvg872hfk6jyn4s54ws8mvclynazaxf7fsbqi16dmf9dn61c"))))
7622 (build-system haskell-build-system)
7623 (inputs
7624 `(("ghc-random" ,ghc-random)
7625 ("ghc-split" ,ghc-split)
7626 ("ghc-storable-complex" ,ghc-storable-complex)
7627 ("ghc-vector" ,ghc-vector)
7628 ;;("openblas" ,openblas)
7629 ("lapack" ,lapack)))
7630 ;; Guix's OpenBLAS is built with the flag "NO_LAPACK=1" which
7631 ;; disables inclusion of the LAPACK functions.
7632 ;; (arguments `(#:configure-flags '("--flags=openblas")))
7633 (home-page "https://github.com/albertoruiz/hmatrix")
7634 (synopsis "Haskell numeric linear algebra library")
7635 (description "The HMatrix package provices a Haskell library for
7636 dealing with linear systems, matrix decompositions, and other
7637 numerical computations based on BLAS and LAPACK.")
7638 (license license:bsd-3)))
7639
7640 (define-public ghc-hmatrix-gsl
7641 (package
7642 (name "ghc-hmatrix-gsl")
7643 (version "0.18.0.1")
7644 (source
7645 (origin
7646 (method url-fetch)
7647 (uri (string-append
7648 "https://hackage.haskell.org/package/hmatrix-gsl/hmatrix-gsl-"
7649 version ".tar.gz"))
7650 (sha256
7651 (base32 "0mflm7zg6c6a5vy092pa429rzpyv5drc1589r3x4fbmvcyqc79gx"))))
7652 (build-system haskell-build-system)
7653 (inputs
7654 `(("ghc-hmatrix" ,ghc-hmatrix)
7655 ("ghc-vector" ,ghc-vector)
7656 ("ghc-random" ,ghc-random)
7657 ("gsl" ,gsl)))
7658 (native-inputs `(("pkg-config" ,pkg-config)))
7659 (home-page "https://github.com/albertoruiz/hmatrix")
7660 (synopsis "Haskell GSL binding")
7661 (description "This Haskell library provides a purely functional
7662 interface to selected numerical computations, internally implemented
7663 using GSL.")
7664 (license license:gpl3+)))
7665
7666 (define-public ghc-hmatrix-special
7667 (package
7668 (name "ghc-hmatrix-special")
7669 (version "0.4.0.1")
7670 (source
7671 (origin
7672 (method url-fetch)
7673 (uri
7674 (string-append
7675 "https://hackage.haskell.org/package/hmatrix-special/hmatrix-special-"
7676 version ".tar.gz"))
7677 (sha256
7678 (base32 "0kpcqdchi7ikzhqacy4rh4dxz3v37paxyb84wqa66sysb72wkabj"))))
7679 (build-system haskell-build-system)
7680 (inputs
7681 `(("ghc-hmatrix" ,ghc-hmatrix)
7682 ("ghc-hmatrix-gsl" ,ghc-hmatrix-gsl)))
7683 (home-page "https://github.com/albertoruiz/hmatrix")
7684 (synopsis "Haskell interface to GSL special functions")
7685 (description "This library provides an interface to GSL special
7686 functions for Haskell.")
7687 (license license:gpl3+)))
7688
7689 (define-public ghc-hmatrix-gsl-stats
7690 (package
7691 (name "ghc-hmatrix-gsl-stats")
7692 (version "0.4.1.7")
7693 (source
7694 (origin
7695 (method url-fetch)
7696 (uri
7697 (string-append
7698 "https://hackage.haskell.org/package/hmatrix-gsl-stats/hmatrix-gsl-stats-"
7699 version ".tar.gz"))
7700 (sha256
7701 (base32 "1gslgk58lzin43cvbpivhw7nrn9qyaa6qwhy1z9ypvyal5p8n3sa"))))
7702 (build-system haskell-build-system)
7703 (inputs
7704 `(("ghc-vector" ,ghc-vector)
7705 ("ghc-storable-complex" ,ghc-storable-complex)
7706 ("ghc-hmatrix" ,ghc-hmatrix)
7707 ("gsl" ,gsl)))
7708 (native-inputs `(("pkg-config" ,pkg-config)))
7709 (home-page "http://code.haskell.org/hmatrix-gsl-stats")
7710 (synopsis "GSL Statistics interface for Haskell")
7711 (description "This Haskell library provides a purely functional
7712 interface for statistics based on hmatrix and GSL.")
7713 (license license:bsd-3)))
7714
7715 (define-public ghc-easyplot
7716 (package
7717 (name "ghc-easyplot")
7718 (version "1.0")
7719 (source
7720 (origin
7721 (method url-fetch)
7722 (uri (string-append
7723 "https://hackage.haskell.org/package/easyplot/easyplot-"
7724 version ".tar.gz"))
7725 (sha256
7726 (base32 "18kndgvdj2apjpfga6fp7m16y1gx8zrwp3c5vfj03sx4v6jvciqk"))))
7727 (build-system haskell-build-system)
7728 (propagated-inputs `(("gnuplot" ,gnuplot)))
7729 (arguments
7730 `(#:phases (modify-phases %standard-phases
7731 (add-after 'unpack 'fix-setup-suffix
7732 (lambda _ (rename-file "Setup.lhs" "Setup.hs") #t)))))
7733 (home-page "https://hub.darcs.net/scravy/easyplot")
7734 (synopsis "Haskell plotting library based on gnuplot")
7735 (description "This package provides a plotting library for
7736 Haskell, using gnuplot for rendering.")
7737 (license license:expat)))
7738
7739 (define-public ghc-hashtables
7740 (package
7741 (name "ghc-hashtables")
7742 (version "1.2.1.0")
7743 (source
7744 (origin
7745 (method url-fetch)
7746 (uri (string-append
7747 "https://hackage.haskell.org/package/hashtables/hashtables-"
7748 version ".tar.gz"))
7749 (sha256
7750 (base32 "1b6w9xznk42732vpd8ili60k12yq190xnajgga0iwbdpyg424lgg"))))
7751 (build-system haskell-build-system)
7752 (arguments
7753 `(#:configure-flags (list "--allow-newer=vector")))
7754 (inputs
7755 `(("ghc-hashable" ,ghc-hashable)
7756 ("ghc-primitive" ,ghc-primitive)
7757 ("ghc-vector" ,ghc-vector)))
7758 (home-page "https://github.com/gregorycollins/hashtables")
7759 (synopsis "Haskell Mutable hash tables in the ST monad")
7760 (description "This package provides a Haskell library including a
7761 couple of different implementations of mutable hash tables in the ST
7762 monad, as well as a typeclass abstracting their common operations, and
7763 a set of wrappers to use the hash tables in the IO monad.")
7764 (license license:bsd-3)))
7765
7766 (define-public ghc-data-accessor
7767 (package
7768 (name "ghc-data-accessor")
7769 (version "0.2.2.7")
7770 (source
7771 (origin
7772 (method url-fetch)
7773 (uri (string-append
7774 "mirror://hackage/package/data-accessor/data-accessor-"
7775 version ".tar.gz"))
7776 (sha256
7777 (base32 "1vf2g1gac3rm32g97rl0fll51m88q7ry4m6khnl5j47qsmx24r9l"))))
7778 (build-system haskell-build-system)
7779 (home-page "https://www.haskell.org/haskellwiki/Record_access")
7780 (synopsis
7781 "Haskell utilities for accessing and manipulating fields of records")
7782 (description "This package provides Haskell modules for accessing and
7783 manipulating fields of records.")
7784 (license license:bsd-3)))
7785
7786 (define-public ghc-data-accessor-transformers
7787 (package
7788 (name "ghc-data-accessor-transformers")
7789 (version "0.2.1.7")
7790 (source
7791 (origin
7792 (method url-fetch)
7793 (uri (string-append
7794 "mirror://hackage/package/data-accessor-transformers/"
7795 "data-accessor-transformers-" version ".tar.gz"))
7796 (sha256
7797 (base32 "0yp030vafbpddl27m606aibbbr5ar5j5bsv4bksscz3cq4yq5j10"))))
7798 (build-system haskell-build-system)
7799 (inputs `(("ghc-data-accessor" ,ghc-data-accessor)))
7800 (home-page "https://www.haskell.org/haskellwiki/Record_access")
7801 (synopsis "Use Accessor to access state in transformers State monad")
7802 (description "This package provides Haskell modules to allow use of
7803 Accessor to access state in transformers State monad.")
7804 (license license:bsd-3)))
7805
7806 (define-public ghc-utility-ht
7807 (package
7808 (name "ghc-utility-ht")
7809 (version "0.0.12")
7810 (home-page "https://hackage.haskell.org/package/utility-ht")
7811 (source
7812 (origin
7813 (method url-fetch)
7814 (uri (string-append home-page "/utility-ht-" version ".tar.gz"))
7815 (sha256
7816 (base32 "1vq5bd51rl9l5lgfmaqxgiggddk38hzgngcj7qgrqnalcd1myi54"))))
7817 (build-system haskell-build-system)
7818 (inputs `(("ghc-quickcheck" ,ghc-quickcheck)))
7819 (synopsis "Haskell helper functions for Lists, Maybes, Tuples, Functions")
7820 (description "This package includes Hakell modules providing various
7821 helper functions for Lists, Maybes, Tuples, Functions.")
7822 (license license:bsd-3)))
7823
7824 (define-public ghc-gnuplot
7825 (package
7826 (name "ghc-gnuplot")
7827 (version "0.5.4.1")
7828 (source
7829 (origin
7830 (method url-fetch)
7831 (uri (string-append
7832 "mirror://hackage/package/gnuplot/gnuplot-"
7833 version ".tar.gz"))
7834 (sha256
7835 (base32 "1xz8prw9xjk0rsyrkp9bsmxykzrbhpv9qhhkdapy75mdbmgwjm7s"))))
7836 (build-system haskell-build-system)
7837 (inputs
7838 `(("ghc-temporary" ,ghc-temporary)
7839 ("ghc-utility-ht" ,ghc-utility-ht)
7840 ("ghc-data-accessor-transformers" ,ghc-data-accessor-transformers)
7841 ("ghc-data-accessor" ,ghc-data-accessor)
7842 ("gnuplot" ,gnuplot)))
7843 (arguments
7844 `(#:phases
7845 (modify-phases %standard-phases
7846 (add-before 'configure 'fix-path-to-gnuplot
7847 (lambda* (#:key inputs #:allow-other-keys)
7848 (let ((gnuplot (assoc-ref inputs "gnuplot")))
7849 (substitute* "os/generic/Graphics/Gnuplot/Private/OS.hs"
7850 (("(gnuplotName = ).*$" all cmd)
7851 (string-append cmd "\"" gnuplot "/bin/gnuplot\"")))))))))
7852 (home-page "https://www.haskell.org/haskellwiki/Gnuplot")
7853 (synopsis "2D and 3D plots using gnuplot")
7854 (description "This package provides a Haskell module for creating 2D and
7855 3D plots using gnuplot.")
7856 (license license:bsd-3)))
7857
7858 (define-public ghc-hinotify
7859 (package
7860 (name "ghc-hinotify")
7861 (version "0.3.8.1")
7862 (source (origin
7863 (method url-fetch)
7864 (uri (string-append
7865 "https://hackage.haskell.org/package/hinotify/"
7866 "hinotify-" version ".tar.gz"))
7867 (sha256
7868 (base32
7869 "03c1f4d7x805zdiq2w26kl09xrfjw19saycdkhnixzv2qcr6xm1p"))))
7870 (build-system haskell-build-system)
7871 (home-page "https://github.com/kolmodin/hinotify.git")
7872 (synopsis "Haskell binding to inotify")
7873 (description "This library provides a wrapper to the Linux kernel's inotify
7874 feature, allowing applications to subscribe to notifications when a file is
7875 accessed or modified.")
7876 (license license:bsd-3)))
7877
7878 (define-public ghc-fsnotify
7879 (package
7880 (name "ghc-fsnotify")
7881 (version "0.2.1")
7882 (source (origin
7883 (method url-fetch)
7884 (uri (string-append
7885 "https://hackage.haskell.org/package/fsnotify/"
7886 "fsnotify-" version ".tar.gz"))
7887 (sha256
7888 (base32
7889 "0asl313a52qx2w6dw25g845683xsl840bwjh118nkwi5v1xipkzb"))))
7890 (build-system haskell-build-system)
7891 (inputs
7892 `(("ghc-text" ,ghc-text)
7893 ("ghc-async" ,ghc-async)
7894 ("ghc-unix-compat" ,ghc-unix-compat)
7895 ("ghc-hinotify" ,ghc-hinotify)
7896 ("ghc-tasty" ,ghc-tasty)
7897 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
7898 ("ghc-temporary-rc" ,ghc-temporary-rc)))
7899 (home-page "https://github.com/haskell-fswatch/hfsnotify")
7900 (synopsis "Cross platform library for file change notification.")
7901 (description "Cross platform library for file creation, modification, and
7902 deletion notification. This library builds upon existing libraries for platform
7903 specific Windows, Mac, and Linux file system event notification.")
7904 (license license:bsd-3)))
7905
7906 (define-public ghc-ieee754
7907 (package
7908 (name "ghc-ieee754")
7909 (version "0.8.0")
7910 (source (origin
7911 (method url-fetch)
7912 (uri (string-append
7913 "https://hackage.haskell.org/package/ieee754/"
7914 "ieee754-" version ".tar.gz"))
7915 (sha256
7916 (base32
7917 "1lcs521g9lzy9d7337vg4w7q7s8500rfqy7rcifcz6pm6yfgyb8f"))))
7918 (build-system haskell-build-system)
7919 (home-page "https://github.com/patperry/hs-ieee754")
7920 (synopsis "Utilities for dealing with IEEE floating point numbers")
7921 (description "Utilities for dealing with IEEE floating point numbers,
7922 ported from the Tango math library; approximate and exact equality comparisons
7923 for general types.")
7924 (license license:bsd-3)))
7925
7926 (define-public ghc-terminal-size
7927 (package
7928 (name "ghc-terminal-size")
7929 (version "0.3.2.1")
7930 (source (origin
7931 (method url-fetch)
7932 (uri (string-append
7933 "https://hackage.haskell.org/package/terminal-size/"
7934 "terminal-size-" version ".tar.gz"))
7935 (sha256
7936 (base32
7937 "0n4nvj3dbj9gxfnprgish45asn9z4dipv9j98s8i7g2n8yb3xhmm"))))
7938 (build-system haskell-build-system)
7939 (home-page "https://hackage.haskell.org/package/terminal-size")
7940 (synopsis "Get terminal window height and width")
7941 (description "Get terminal window height and width without ncurses
7942 dependency.")
7943 (license license:bsd-3)))
7944
7945 (define-public ghc-language-c
7946 (package
7947 (name "ghc-language-c")
7948 (version "0.5.0")
7949 (source
7950 (origin
7951 (method url-fetch)
7952 (uri (string-append "https://hackage.haskell.org/package/"
7953 "language-c/language-c-" version ".tar.gz"))
7954 (sha256
7955 (base32
7956 "08i2bl7jmmymn2sldzlbz6ig7lx3wfwhlpadzibs3fx72z08pmc6"))))
7957 (build-system haskell-build-system)
7958 (inputs `(("ghc-syb" ,ghc-syb)))
7959 (native-inputs
7960 `(("ghc-happy" ,ghc-happy)
7961 ("ghc-alex" ,ghc-alex)))
7962 (home-page "https://visq.github.io/language-c/")
7963 (synopsis "Analysis and generation of C code")
7964 (description
7965 "Language C is a Haskell library for the analysis and generation of C code.
7966 It features a complete, well-tested parser and pretty printer for all of C99
7967 and a large set of GNU extensions.")
7968 (license license:bsd-3)))
7969
7970 (define-public ghc-markdown-unlit
7971 (package
7972 (name "ghc-markdown-unlit")
7973 (version "0.4.0")
7974 (source (origin
7975 (method url-fetch)
7976 (uri (string-append
7977 "mirror://hackage/package/markdown-unlit/"
7978 "markdown-unlit-" version ".tar.gz"))
7979 (sha256
7980 (base32
7981 "1kj2bffl7ndd8ygwwa3r1mbpwbxbfhyfgnbla8k8g9i6ffp0qrbw"))))
7982 (build-system haskell-build-system)
7983 (inputs
7984 `(("ghc-base-compat" ,ghc-base-compat)
7985 ("ghc-hspec" ,ghc-hspec)
7986 ("ghc-quickcheck" ,ghc-quickcheck)
7987 ("ghc-silently" ,ghc-silently)
7988 ("ghc-stringbuilder" ,ghc-stringbuilder)
7989 ("ghc-temporary" ,ghc-temporary)
7990 ("hspec-discover" ,hspec-discover)))
7991 (home-page "https://github.com/sol/markdown-unlit#readme")
7992 (synopsis "Literate Haskell support for Markdown")
7993 (description "This package allows you to have a README.md that at the
7994 same time is a literate Haskell program.")
7995 (license license:expat)))
7996
7997 (define-public corrode
7998 (let ((commit "b6699fb2fa552a07c6091276285a44133e5c9789"))
7999 (package
8000 (name "corrode")
8001 (version (string-append "0.0.1-" (string-take commit 7)))
8002 (source
8003 (origin
8004 (method git-fetch)
8005 (uri (git-reference
8006 (url "https://github.com/jameysharp/corrode.git")
8007 (commit "b6699fb2fa552a07c6091276285a44133e5c9789")))
8008 (file-name
8009 (string-append name "-" version "-checkout"))
8010 (sha256
8011 (base32 "02v0yyj6sk4gpg2222wzsdqjxn8w66scbnf6b20x0kbmc69qcz4r"))))
8012 (build-system haskell-build-system)
8013 (inputs
8014 `(("ghc-language-c" ,ghc-language-c)
8015 ("ghc-markdown-unlit" ,ghc-markdown-unlit)))
8016 (home-page "https://github.com/jameysharp/corrode")
8017 (synopsis "Automatic semantics-preserving translation from C to Rust")
8018 (description
8019 "This program reads a C source file and prints an equivalent module in
8020 Rust syntax. It is intended to be useful for two different purposes:
8021
8022 @enumerate
8023 @item Partial automation for migrating legacy code that was implemented in C.
8024 @item A new, complementary approach to static analysis for C programs.
8025 @end enumerate\n")
8026 (license license:gpl2+))))
8027
8028 (define-public ghc-wave
8029 (package
8030 (name "ghc-wave")
8031 (version "0.1.4")
8032 (source (origin
8033 (method url-fetch)
8034 (uri (string-append
8035 "https://hackage.haskell.org/package/wave/wave-"
8036 version
8037 ".tar.gz"))
8038 (sha256
8039 (base32
8040 "1g5nmqfk6p25v9ismwz4i66ay91bd1qh39xwj0hm4z6a5mw8frk8"))))
8041 (build-system haskell-build-system)
8042 (inputs
8043 `(("ghc-cereal" ,ghc-cereal)
8044 ("ghc-data-default-class"
8045 ,ghc-data-default-class)
8046 ("ghc-quickcheck" ,ghc-quickcheck)
8047 ("ghc-temporary" ,ghc-temporary)))
8048 (native-inputs
8049 `(("hspec-discover" ,hspec-discover)
8050 ("ghc-hspec" ,ghc-hspec)))
8051 (home-page "https://github.com/mrkkrp/wave")
8052 (synopsis "Work with WAVE and RF64 files in Haskell")
8053 (description "This package allows you to work with WAVE and RF64
8054 files in Haskell.")
8055 (license license:bsd-3)))
8056
8057 (define-public ghc-hslogger
8058 (package
8059 (name "ghc-hslogger")
8060 (version "1.2.10")
8061 (source
8062 (origin
8063 (method url-fetch)
8064 (uri (string-append "https://hackage.haskell.org/package/"
8065 "hslogger-" version "/" "hslogger-"
8066 version ".tar.gz"))
8067 (sha256 (base32
8068 "0as5gvlh6pi2gflakp695qnlizyyp059dqrhvjl4gjxalja6xjnp"))))
8069 (build-system haskell-build-system)
8070 (inputs
8071 `(("ghc-network" ,ghc-network)
8072 ("ghc-old-locale" ,ghc-old-locale)))
8073 (native-inputs
8074 `(("ghc-hunit" ,ghc-hunit)))
8075 (home-page "https://software.complete.org/hslogger")
8076 (synopsis "Logging framework for Haskell, similar to Python's logging module")
8077 (description "Hslogger lets each log message have a priority and source be
8078 associated with it. The programmer can then define global handlers that route
8079 or filter messages based on the priority and source. It also has a syslog
8080 handler built in.")
8081 (license license:bsd-3)))
8082
8083 (define-public ghc-unexceptionalio
8084 (package
8085 (name "ghc-unexceptionalio")
8086 (version "0.4.0")
8087 (source
8088 (origin
8089 (method url-fetch)
8090 (uri (string-append "https://hackage.haskell.org/package/"
8091 "unexceptionalio-" version "/" "unexceptionalio-"
8092 version ".tar.gz"))
8093 (sha256 (base32 "09gynk472l7nn5l2w320n4dwigwp0wh0shfp6dyw6r5h2jdxz18p"))))
8094 (build-system haskell-build-system)
8095 (home-page "https://github.com/singpolyma/unexceptionalio")
8096 (synopsis "IO without any non-error, synchronous exceptions")
8097 (description "When you've caught all the exceptions that can be
8098 handled safely, this is what you're left with.")
8099 (license license:isc)))
8100
8101 (define-public ghc-json
8102 (package
8103 (name "ghc-json")
8104 (version "0.9.2")
8105 (source
8106 (origin
8107 (method url-fetch)
8108 (uri (string-append "https://hackage.haskell.org/package/json/"
8109 "json-" version ".tar.gz"))
8110 (sha256
8111 (base32
8112 "13kkfgx58z18jphbg56jn08jn72wi3kvfndlwwx87hqwg7x1dfz6"))))
8113 (build-system haskell-build-system)
8114 (inputs
8115 `(("ghc-syb" ,ghc-syb)
8116 ("ghc-text" ,ghc-text)
8117 ("ghc-parsec" ,ghc-parsec)))
8118 (home-page "https://hackage.haskell.org/package/json")
8119 (synopsis "Serializes Haskell data to and from JSON")
8120 (description "This package provides a parser and pretty printer for
8121 converting between Haskell values and JSON.
8122 JSON (JavaScript Object Notation) is a lightweight data-interchange format.")
8123 (license license:bsd-3)))
8124
8125 (define-public ghc-esqueleto
8126 (package
8127 (name "ghc-esqueleto")
8128 (version "2.5.3")
8129 (source
8130 (origin
8131 (method url-fetch)
8132 (uri (string-append "https://hackage.haskell.org/package/"
8133 "esqueleto/esqueleto-" version ".tar.gz"))
8134 (sha256
8135 (base32
8136 "10n49rzqmblky7pwjnysalyy6nacmxfms8dqbsdv6hlyzr8pb69x"))))
8137 (build-system haskell-build-system)
8138 (inputs
8139 `(("ghc-blaze-html" ,ghc-blaze-html)
8140 ("ghc-conduit" ,ghc-conduit)
8141 ("ghc-monad-logger" ,ghc-monad-logger)
8142 ("ghc-persistent" ,ghc-persistent)
8143 ("ghc-resourcet" ,ghc-resourcet)
8144 ("ghc-tagged" ,ghc-tagged)
8145 ("ghc-text" ,ghc-text)
8146 ("ghc-unordered-containers" ,ghc-unordered-containers)))
8147 (native-inputs
8148 `(("ghc-hspec" ,ghc-hspec)
8149 ("ghc-hunit" ,ghc-hunit)
8150 ("ghc-monad-control" ,ghc-monad-control)
8151 ("ghc-persistent-sqlite" ,ghc-persistent-sqlite)
8152 ("ghc-persistent-template" ,ghc-persistent-template)
8153 ("ghc-quickcheck" ,ghc-quickcheck)))
8154 (home-page "https://github.com/bitemyapp/esqueleto")
8155 (synopsis "Type-safe embedded domain specific language for SQL queries")
8156 (description "This library provides a type-safe embedded domain specific
8157 language (EDSL) for SQL queries that works with SQL backends as provided by
8158 @code{ghc-persistent}. Its language closely resembles SQL, so you don't have
8159 to learn new concepts, just new syntax, and it's fairly easy to predict the
8160 generated SQL and optimize it for your backend.")
8161 (license license:bsd-3)))
8162
8163 (define-public shellcheck
8164 (package
8165 (name "shellcheck")
8166 (version "0.4.6")
8167 (source
8168 (origin
8169 (method url-fetch)
8170 (uri (string-append "https://github.com/koalaman/shellcheck/archive/"
8171 "v" version ".tar.gz"))
8172 (sha256
8173 (base32
8174 "1qkd69lc34n3l23ss9rq1azvx49bfq4hi4bmaj76rgxybscxhg0w"))
8175 (file-name (string-append name "-" version ".tar.gz"))))
8176 (build-system haskell-build-system)
8177 (inputs
8178 `(("ghc-quickcheck" ,ghc-quickcheck)
8179 ("ghc-json" ,ghc-json)
8180 ("ghc-parsec" ,ghc-parsec)
8181 ("ghc-regex-tdfa" ,ghc-regex-tdfa)))
8182 (home-page "https://github.com/koalaman/shellcheck")
8183 (synopsis "Static analysis for shell scripts")
8184 (description "@code{shellcheck} provides static analysis for
8185 @command{bash} and @command{sh} shell scripts.
8186 It gives warnings and suggestions in order to:
8187
8188 @enumerate
8189 @item Point out and clarify typical beginner's syntax issues that cause
8190 a shell to give cryptic error messages.
8191 @item Point out and clarify typical intermediate level semantic problems
8192 that cause a shell to behave strangely and counter-intuitively.
8193 @item Point out subtle caveats, corner cases and pitfalls that may cause an
8194 advanced user's otherwise working script to fail under future circumstances.
8195 @end enumerate")
8196 (license license:gpl3+)))
8197
8198 (define-public ghc-simple-sendfile
8199 (package
8200 (name "ghc-simple-sendfile")
8201 (version "0.2.25")
8202 (source
8203 (origin
8204 (method url-fetch)
8205 (uri (string-append "https://hackage.haskell.org/package/"
8206 "simple-sendfile-" version "/"
8207 "simple-sendfile-" version ".tar.gz"))
8208 (sha256
8209 (base32
8210 "0k99j9xfcf83c55jmn202hdinhjaa4yn3dal4rvjk2w2rlhqirha"))))
8211 (build-system haskell-build-system)
8212 (inputs
8213 `(("ghc-conduit" ,ghc-conduit)
8214 ("ghc-conduit-extra" ,ghc-conduit-extra)
8215 ("ghc-network" ,ghc-network)
8216 ("ghc-resourcet" ,ghc-resourcet)))
8217 (native-inputs
8218 `(("ghc-hspec" ,ghc-hspec)
8219 ("hspec-discover" ,hspec-discover)))
8220 (home-page "https://github.com/kazu-yamamoto/simple-sendfile")
8221 (synopsis "Cross platform library for the sendfile system call")
8222 (description "This library tries to call minimum system calls which
8223 are the bottleneck of web servers.")
8224 (license license:bsd-3)))
8225
8226 (define-public ghc-hex
8227 (package
8228 (name "ghc-hex")
8229 (version "0.1.2")
8230 (source
8231 (origin
8232 (method url-fetch)
8233 (uri (string-append "https://hackage.haskell.org/package/"
8234 "hex-" version "/"
8235 "hex-" version ".tar.gz"))
8236 (sha256
8237 (base32
8238 "1v31xiaivrrn0q2jz8919wvkjplv1kxna5ajhsj701fqxm1i5vhj"))))
8239 (build-system haskell-build-system)
8240 (home-page "https://hackage.haskell.org/package/hex")
8241 (synopsis "Convert strings into hexadecimal and back")
8242 (description "This package provides conversion functions between
8243 bytestrings and their hexademical representation.")
8244 (license license:bsd-3)))
8245
8246 (define-public ghc-psqueues
8247 (package
8248 (name "ghc-psqueues")
8249 (version "0.2.6.0")
8250 (source
8251 (origin
8252 (method url-fetch)
8253 (uri (string-append "https://hackage.haskell.org/package/"
8254 "psqueues-" version "/"
8255 "psqueues-" version ".tar.gz"))
8256 (sha256
8257 (base32
8258 "0n39s1i88j6s7vvsdhpbhcr3gpbwlzabwcc3nbd7nqb4kb4i0sls"))))
8259 (build-system haskell-build-system)
8260 (arguments
8261 `(#:configure-flags (list "--allow-newer=QuickCheck")))
8262 (inputs
8263 `(("ghc-hashable" ,ghc-hashable)))
8264 (native-inputs
8265 `(("ghc-hunit" ,ghc-hunit)
8266 ("ghc-quickcheck" ,ghc-quickcheck)
8267 ("ghc-tagged" ,ghc-tagged)
8268 ("ghc-test-framework" ,ghc-test-framework)
8269 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
8270 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
8271 (home-page "https://github.com/jaspervdj/psqueues")
8272 (synopsis "Pure priority search queues")
8273 (description "The psqueues package provides
8274 @uref{https://en.wikipedia.org/wiki/Priority_queue, Priority Search Queues} in
8275 three different flavors:
8276
8277 @itemize
8278 @item @code{OrdPSQ k p v}, which uses the @code{Ord k} instance to provide
8279 fast insertion, deletion and lookup. This implementation is based on Ralf
8280 Hinze's @uref{http://citeseer.ist.psu.edu/hinze01simple.html, A Simple
8281 Implementation Technique for Priority Search Queues}.
8282
8283 Hence, it is similar to the @uref{https://hackage.haskell.org/package/PSQueue,
8284 PSQueue} library, although it is considerably faster and provides a slightly
8285 different API.
8286
8287 @item @code{IntPSQ p v} is a far more efficient implementation. It fixes the
8288 key type to @code{Int} and uses a
8289 @code{https://en.wikipedia.org/wiki/Radix_tree, radix tree} (like @code{IntMap})
8290 with an additional min-heap property.
8291
8292 @item @code{HashPSQ k p v} is a fairly straightforward extension
8293 of @code{IntPSQ}: it simply uses the keys' hashes as indices in the
8294 @code{IntPSQ}. If there are any hash collisions, it uses an
8295 @code{OrdPSQ} to resolve those. The performance of this implementation
8296 is comparable to that of @code{IntPSQ}, but it is more widely
8297 applicable since the keys are not restricted to @code{Int},
8298 but rather to any @code{Hashable} datatype.
8299 @end itemize
8300
8301 Each of the three implementations provides the same API, so they can
8302 be used interchangeably.
8303
8304 Typical applications of Priority Search Queues include:
8305
8306 @itemize
8307 @item Caches, and more specifically LRU Caches;
8308 @item Schedulers;
8309 @item Pathfinding algorithms, such as Dijkstra's and A*.
8310 @end itemize")
8311 (license license:bsd-3)))
8312
8313 (define-public ghc-glob
8314 (package
8315 (name "ghc-glob")
8316 (version "0.9.1")
8317 (source
8318 (origin
8319 (method url-fetch)
8320 (uri (string-append "https://hackage.haskell.org/package/"
8321 "Glob-" version "/"
8322 "Glob-" version ".tar.gz"))
8323 (sha256
8324 (base32
8325 "0rzmsknl02p332dxmm36fyrz3dpma7bchn0ymyjipxvqil20pjw0"))))
8326 (build-system haskell-build-system)
8327 (inputs
8328 `(("ghc-dlist" ,ghc-dlist)
8329 ("ghc-semigroups" ,ghc-semigroups)
8330 ("ghc-transformers-compat" ,ghc-transformers-compat)))
8331 (native-inputs
8332 `(("ghc-hunit" ,ghc-hunit)
8333 ("ghc-quickcheck" ,ghc-quickcheck)
8334 ("ghc-test-framework" ,ghc-test-framework)
8335 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
8336 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
8337 (home-page "http://iki.fi/matti.niemenmaa/glob/")
8338 (synopsis "Haskell library matching glob patterns against file paths")
8339 (description "This package provides a Haskell library for @dfn{globbing}:
8340 matching patterns against file paths.")
8341 (license license:bsd-3)))
8342
8343 (define-public ghc-errors
8344 (package
8345 (name "ghc-errors")
8346 (version "2.2.2")
8347 (source
8348 (origin
8349 (method url-fetch)
8350 (uri (string-append "https://hackage.haskell.org/package/"
8351 "errors-" version "/"
8352 "errors-" version ".tar.gz"))
8353 (sha256
8354 (base32
8355 "13sflhglcm5skwrxb48fw96skdcx7ydiy4zg22200733pxhjncpn"))))
8356 (build-system haskell-build-system)
8357 (inputs
8358 `(("ghc-exceptions" ,ghc-exceptions)
8359 ("ghc-text" ,ghc-text)
8360 ("ghc-transformers-compat" ,ghc-transformers-compat)
8361 ("ghc-unexceptionalio" ,ghc-unexceptionalio)
8362 ("ghc-safe" ,ghc-safe)))
8363 (home-page "https://github.com/gabriel439/haskell-errors-library")
8364 (synopsis "Error handling library for Haskell")
8365 (description "This library encourages an error-handling style that
8366 directly uses the type system, rather than out-of-band exceptions.")
8367 (license license:bsd-3)))
8368
8369 (define-public ghc-vector-th-unbox
8370 (package
8371 (name "ghc-vector-th-unbox")
8372 (version "0.2.1.6")
8373 (source
8374 (origin
8375 (method url-fetch)
8376 (uri (string-append "https://hackage.haskell.org/package/"
8377 "vector-th-unbox-" version "/"
8378 "vector-th-unbox-" version ".tar.gz"))
8379 (sha256
8380 (base32
8381 "0d82x55f5vvr1jvaia382m23rs690lg55pvavv8f4ph0y6kd91xy"))))
8382 (build-system haskell-build-system)
8383 (inputs
8384 `(("ghc-vector" ,ghc-vector)
8385 ("ghc-data-default" ,ghc-data-default)))
8386 (home-page "https://github.com/liyang/vector-th-unbox")
8387 (synopsis "Deriver for Data.Vector.Unboxed using Template Haskell")
8388 (description "This Haskell library provides a Template Haskell
8389 deriver for unboxed vectors, given a pair of coercion functions to
8390 and from some existing type with an Unbox instance.")
8391 (license license:bsd-3)))
8392
8393 (define-public ghc-erf
8394 (package
8395 (name "ghc-erf")
8396 (version "2.0.0.0")
8397 (source
8398 (origin
8399 (method url-fetch)
8400 (uri (string-append "https://hackage.haskell.org/package/"
8401 "erf-" version "/"
8402 "erf-" version ".tar.gz"))
8403 (sha256
8404 (base32
8405 "0dxk2r32ajmmc05vaxcp0yw6vgv4lkbmh8jcshncn98xgsfbgw14"))))
8406 (build-system haskell-build-system)
8407 (home-page "https://hackage.haskell.org/package/erf")
8408 (synopsis "The error function, erf, and related functions for Haskell")
8409 (description "This Haskell library provides a type class for the
8410 error function, erf, and related functions. Instances for Float and
8411 Double.")
8412 (license license:bsd-3)))
8413
8414 (define-public ghc-math-functions
8415 (package
8416 (name "ghc-math-functions")
8417 (version "0.2.1.0")
8418 (source
8419 (origin
8420 (method url-fetch)
8421 (uri (string-append "https://hackage.haskell.org/package/"
8422 "math-functions-" version "/"
8423 "math-functions-" version ".tar.gz"))
8424 (sha256
8425 (base32
8426 "1sv5vabsx332v1lpb6v3jv4zrzvpx1n7yprzd8wlcda5vsc5a6zp"))))
8427 (build-system haskell-build-system)
8428 (arguments `(#:tests? #f)) ; FIXME: 1 test fails.
8429 (inputs
8430 `(("ghc-vector" ,ghc-vector)
8431 ("ghc-vector-th-unbox" ,ghc-vector-th-unbox)))
8432 (native-inputs
8433 `(("ghc-hunit" ,ghc-hunit)
8434 ("ghc-quickcheck" ,ghc-quickcheck)
8435 ("ghc-erf" ,ghc-erf)
8436 ("ghc-test-framework" ,ghc-test-framework)
8437 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
8438 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
8439 (home-page "https://github.com/bos/math-functions")
8440 (synopsis "Special functions and Chebyshev polynomials for Haskell")
8441 (description "This Haskell library provides implementations of
8442 special mathematical functions and Chebyshev polynomials. These
8443 functions are often useful in statistical and numerical computing.")
8444 (license license:bsd-3)))
8445
8446 (define-public ghc-mwc-random
8447 (package
8448 (name "ghc-mwc-random")
8449 (version "0.13.6.0")
8450 (source
8451 (origin
8452 (method url-fetch)
8453 (uri (string-append "https://hackage.haskell.org/package/"
8454 "mwc-random-" version "/"
8455 "mwc-random-" version ".tar.gz"))
8456 (sha256
8457 (base32
8458 "05j7yh0hh9nxic3dijmzv44kc6gzclvamdph7sq7w19wq57k6pq6"))))
8459 (build-system haskell-build-system)
8460 (inputs
8461 `(("ghc-primitive" ,ghc-primitive)
8462 ("ghc-vector" ,ghc-vector)
8463 ("ghc-math-functions" ,ghc-math-functions)))
8464 (arguments
8465 `(#:tests? #f)) ; FIXME: Test-Suite `spec` fails.
8466 (native-inputs
8467 `(("ghc-hunit" ,ghc-hunit)
8468 ("ghc-quickcheck" ,ghc-quickcheck)
8469 ("ghc-test-framework" ,ghc-test-framework)
8470 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
8471 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
8472 (home-page "https://github.com/bos/mwc-random")
8473 (synopsis "Random number generation library for Haskell")
8474 (description "This Haskell package contains code for generating
8475 high quality random numbers that follow either a uniform or normal
8476 distribution. The generated numbers are suitable for use in
8477 statistical applications.
8478
8479 The uniform PRNG uses Marsaglia's MWC256 (also known as MWC8222)
8480 multiply-with-carry generator, which has a period of 2^{8222} and
8481 fares well in tests of randomness. It is also extremely fast,
8482 between 2 and 3 times faster than the Mersenne Twister.")
8483 (license license:bsd-3)))
8484
8485 (define-public ghc-vector-algorithms
8486 (package
8487 (name "ghc-vector-algorithms")
8488 (version "0.7.0.1")
8489 (source
8490 (origin
8491 (method url-fetch)
8492 (uri (string-append "https://hackage.haskell.org/package/"
8493 "vector-algorithms-" version "/"
8494 "vector-algorithms-" version ".tar.gz"))
8495 (sha256
8496 (base32
8497 "0w4hf598lpxfg58rnimcqxrbnpqq2jmpjx82qa5md3q6r90hlipd"))))
8498 (build-system haskell-build-system)
8499 ;; The limits have been adjusted in a revision of the cabal file.
8500 (arguments
8501 '(#:configure-flags (list "--allow-newer=vector")
8502 #:phases
8503 (modify-phases %standard-phases
8504 ;; The tests cannot be built due to type errors.
8505 (add-after 'unpack 'do-not-build-quickcheck-tests
8506 (lambda _
8507 (substitute* "vector-algorithms.cabal"
8508 (("\\!flag\\(properties\\)") "True"))
8509 #t)))))
8510 (inputs
8511 `(("ghc-vector" ,ghc-vector)
8512 ("ghc-mwc-random" ,ghc-mwc-random)))
8513 (native-inputs
8514 `(("ghc-quickcheck" ,ghc-quickcheck)))
8515 (home-page "https://github.com/bos/math-functions")
8516 (synopsis "Algorithms for vector arrays in Haskell")
8517 (description "This Haskell library algorithms for vector arrays.")
8518 (license license:bsd-3)))
8519
8520 (define-public ghc-language-haskell-extract
8521 (package
8522 (name "ghc-language-haskell-extract")
8523 (version "0.2.4")
8524 (source
8525 (origin
8526 (method url-fetch)
8527 (uri (string-append "https://hackage.haskell.org/package/"
8528 "language-haskell-extract-" version "/"
8529 "language-haskell-extract-" version ".tar.gz"))
8530 (sha256
8531 (base32
8532 "1nxcs7g8a1sp91bzpy4cj6s31k5pvc3gvig04cbrggv5cvjidnhl"))))
8533 (build-system haskell-build-system)
8534 (inputs
8535 `(("ghc-regex-posix" ,ghc-regex-posix)))
8536 (home-page "https://github.com/finnsson/template-helper")
8537 (synopsis "Haskell module to automatically extract functions from
8538 the local code")
8539 (description "This package contains helper functions on top of
8540 Template Haskell.
8541
8542 For example, @code{functionExtractor} extracts all functions after a
8543 regexp-pattern, which can be useful if you wish to extract all functions
8544 beginning with @code{test} (for a test framework) or all functions beginning
8545 with @code{wc} (for a web service).")
8546 (license license:bsd-3)))
8547
8548 (define-public ghc-abstract-par
8549 (package
8550 (name "ghc-abstract-par")
8551 (version "0.3.3")
8552 (source
8553 (origin
8554 (method url-fetch)
8555 (uri (string-append "https://hackage.haskell.org/package/"
8556 "abstract-par-" version "/"
8557 "abstract-par-" version ".tar.gz"))
8558 (sha256
8559 (base32
8560 "0q6qsniw4wks2pw6wzncb1p1j3k6al5njnvm2v5n494hplwqg2i4"))))
8561 (build-system haskell-build-system)
8562 (home-page "https://github.com/simonmar/monad-par")
8563 (synopsis "Abstract parallelization interface for Haskell")
8564 (description "This Haskell package is an abstract interface
8565 only. It provides a number of type clasess, but not an
8566 implementation. The type classes separate different levels
8567 of @code{Par} functionality. See the @code{Control.Monad.Par.Class}
8568 module for more details.")
8569 (license license:bsd-3)))
8570
8571 (define-public ghc-monad-par-extras
8572 (package
8573 (name "ghc-monad-par-extras")
8574 (version "0.3.3")
8575 (source
8576 (origin
8577 (method url-fetch)
8578 (uri (string-append "https://hackage.haskell.org/package/"
8579 "monad-par-extras-" version "/"
8580 "monad-par-extras-" version ".tar.gz"))
8581 (sha256
8582 (base32
8583 "0bl4bd6jzdc5zm20q1g67ppkfh6j6yn8fwj6msjayj621cck67p2"))))
8584 (build-system haskell-build-system)
8585 (inputs `(("ghc-abstract-par" ,ghc-abstract-par)
8586 ("ghc-cereal" ,ghc-cereal)
8587 ("ghc-random" ,ghc-random)))
8588 (home-page "https://github.com/simonmar/monad-par")
8589 (synopsis "Combinators and extra features for Par monads for Haskell")
8590 (description "This Haskell package provides additional data structures,
8591 and other added capabilities layered on top of the @code{Par} monad.")
8592 (license license:bsd-3)))
8593
8594 (define-public ghc-abstract-deque
8595 (package
8596 (name "ghc-abstract-deque")
8597 (version "0.3")
8598 (source
8599 (origin
8600 (method url-fetch)
8601 (uri (string-append "https://hackage.haskell.org/package/"
8602 "abstract-deque-" version "/"
8603 "abstract-deque-" version ".tar.gz"))
8604 (sha256
8605 (base32
8606 "18jwswjxwzc9bjiy4ds6hw2a74ki797jmfcifxd2ga4kh7ri1ah9"))))
8607 (build-system haskell-build-system)
8608 (inputs `(("ghc-random" ,ghc-random)))
8609 (home-page "https://github.com/rrnewton/haskell-lockfree/wiki")
8610 (synopsis "Abstract, parameterized interface to mutable Deques for Haskell")
8611 (description "This Haskell package provides an abstract interface to
8612 highly-parameterizable queues/deques.
8613
8614 Background: There exists a feature space for queues that extends between:
8615
8616 @itemize
8617 @item Simple, single-ended, non-concurrent, bounded queues
8618
8619 @item Double-ended, thread-safe, growable queues with important points
8620 in between (such as the queues used for work stealing).
8621 @end itemize
8622
8623 This package includes an interface for Deques that allows the programmer
8624 to use a single API for all of the above, while using the type system to
8625 select an efficient implementation given the requirements (using type families).
8626
8627 This package also includes a simple reference implementation based on
8628 @code{IORef} and @code{Data.Sequence}.")
8629 (license license:bsd-3)))
8630
8631 (define-public ghc-monad-par
8632 (package
8633 (name "ghc-monad-par")
8634 (version "0.3.4.8")
8635 (source
8636 (origin
8637 (method url-fetch)
8638 (uri (string-append "https://hackage.haskell.org/package/"
8639 "monad-par-" version "/"
8640 "monad-par-" version ".tar.gz"))
8641 (sha256
8642 (base32
8643 "0ldrzqy24fsszvn2a2nr77m2ih7xm0h9bgkjyv1l274aj18xyk7q"))))
8644 (build-system haskell-build-system)
8645 (inputs `(("ghc-abstract-par" ,ghc-abstract-par)
8646 ("ghc-abstract-deque" ,ghc-abstract-deque)
8647 ("ghc-monad-par-extras" ,ghc-monad-par-extras)
8648 ("ghc-mwc-random" ,ghc-mwc-random)
8649 ("ghc-parallel" ,ghc-parallel)))
8650 (native-inputs `(("ghc-quickcheck" ,ghc-quickcheck)
8651 ("ghc-hunit" ,ghc-hunit)
8652 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
8653 ("ghc-test-framework-quickcheck2"
8654 ,ghc-test-framework-quickcheck2)
8655 ("ghc-test-framework" ,ghc-test-framework)
8656 ("ghc-test-framework-th" ,ghc-test-framework-th)))
8657 (home-page "https://github.com/simonmar/monad-par")
8658 (synopsis "Haskell library for parallel programming based on a monad")
8659 (description "The @code{Par} monad offers an API for parallel
8660 programming. The library works for parallelising both pure and @code{IO}
8661 computations, although only the pure version is deterministic. The default
8662 implementation provides a work-stealing scheduler and supports forking tasks
8663 that are much lighter weight than IO-threads.")
8664 (license license:bsd-3)))
8665
8666 (define-public ghc-statistics
8667 (package
8668 (name "ghc-statistics")
8669 (version "0.14.0.2")
8670 (source
8671 (origin
8672 (method url-fetch)
8673 (uri (string-append "https://hackage.haskell.org/package/"
8674 "statistics-" version "/"
8675 "statistics-" version ".tar.gz"))
8676 (sha256
8677 (base32
8678 "0y27gafkib0x0fn39qfn2rkgsfrm09ng35sbb5dwr7rclhnxz59l"))))
8679 (build-system haskell-build-system)
8680 (inputs
8681 `(("ghc-aeson" ,ghc-aeson)
8682 ("ghc-base-orphans" ,ghc-base-orphans)
8683 ("ghc-erf" ,ghc-erf)
8684 ("ghc-math-functions" ,ghc-math-functions)
8685 ("ghc-monad-par" ,ghc-monad-par)
8686 ("ghc-mwc-random" ,ghc-mwc-random)
8687 ("ghc-primitive" ,ghc-primitive)
8688 ("ghc-vector" ,ghc-vector)
8689 ("ghc-vector-algorithms" ,ghc-vector-algorithms)
8690 ("ghc-vector-th-unbox" ,ghc-vector-th-unbox)
8691 ("ghc-vector-binary-instances" ,ghc-vector-binary-instances)))
8692 (native-inputs
8693 `(("ghc-hunit" ,ghc-hunit)
8694 ("ghc-quickcheck" ,ghc-quickcheck)
8695 ("ghc-ieee754" ,ghc-ieee754)
8696 ("ghc-test-framework" ,ghc-test-framework)
8697 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
8698 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
8699 (arguments
8700 `(#:tests? #f)) ; FIXME: Test-Suite `spec` fails.
8701 (home-page "https://github.com/bos/mwc-random")
8702 (synopsis "Haskell library of statistical types, data, and functions")
8703 (description "This library provides a number of common functions
8704 and types useful in statistics. We focus on high performance, numerical
8705 robustness, and use of good algorithms. Where possible, we provide references
8706 to the statistical literature.
8707
8708 The library's facilities can be divided into four broad categories:
8709
8710 @itemize
8711 @item Working with widely used discrete and continuous probability
8712 distributions. (There are dozens of exotic distributions in use; we focus
8713 on the most common.)
8714
8715 @item Computing with sample data: quantile estimation, kernel density
8716 estimation, histograms, bootstrap methods, significance testing,
8717 and regression and autocorrelation analysis.
8718
8719 @item Random variate generation under several different distributions.
8720
8721 @item Common statistical tests for significant differences between samples.
8722 @end itemize")
8723 (license license:bsd-2)))
8724
8725 (define-public ghc-chunked-data
8726 (package
8727 (name "ghc-chunked-data")
8728 (version "0.3.0")
8729 (source
8730 (origin
8731 (method url-fetch)
8732 (uri (string-append "https://hackage.haskell.org/package/"
8733 "chunked-data-" version "/"
8734 "chunked-data-" version ".tar.gz"))
8735 (sha256
8736 (base32
8737 "0bszq6fijnr4pmadzz89smj7kfmzx0ca3wd9ga8gv0in9jk9vgp1"))))
8738 (build-system haskell-build-system)
8739 (inputs `(("ghc-vector" ,ghc-vector)
8740 ("ghc-semigroups" ,ghc-semigroups)
8741 ("ghc-text" ,ghc-text)))
8742 (home-page "https://github.com/snoyberg/mono-traversable")
8743 (synopsis "Typeclasses for dealing with various chunked data
8744 representations for Haskell")
8745 (description "This Haskell package was originally present in
8746 classy-prelude.")
8747 (license license:expat)))
8748
8749 (define-public ghc-base-prelude
8750 (package
8751 (name "ghc-base-prelude")
8752 (version "1.3")
8753 (source
8754 (origin
8755 (method url-fetch)
8756 (uri (string-append "https://hackage.haskell.org/package/"
8757 "base-prelude-" version "/"
8758 "base-prelude-" version ".tar.gz"))
8759 (sha256
8760 (base32
8761 "1zk728sd09hh2r4xwz4lazsrrgg5cshydn64932sm0vckplndk73"))))
8762 (build-system haskell-build-system)
8763 (home-page "https://github.com/nikita-volkov/base-prelude")
8764 (synopsis "The most complete prelude formed solely from the Haskell's base
8765 package")
8766 (description "This Haskell package aims to reexport all the non-conflicting
8767 and most general definitions from the \"base\" package.
8768
8769 This includes APIs for applicatives, arrows, monoids, foldables, traversables,
8770 exceptions, generics, ST, MVars and STM.
8771
8772 This package will never have any dependencies other than \"base\".
8773
8774 Versioning policy:
8775
8776 The versioning policy of this package deviates from PVP in the sense
8777 that its exports in part are transitively determined by the version of \"base\".
8778 Therefore it's recommended for the users of @code{ghc-base-prelude} to specify
8779 the bounds of \"base\" as well.")
8780 (license license:expat)))
8781
8782 (define-public ghc-tuple-th
8783 (package
8784 (name "ghc-tuple-th")
8785 (version "0.2.5")
8786 (source
8787 (origin
8788 (method url-fetch)
8789 (uri (string-append "https://hackage.haskell.org/package/"
8790 "tuple-th-" version "/"
8791 "tuple-th-" version ".tar.gz"))
8792 (sha256
8793 (base32
8794 "1mrl4vvxmby7sf1paf7hklzidnr6wq55822i73smqyz0xpf3gsjn"))))
8795 (build-system haskell-build-system)
8796 (home-page "https://github.com/DanielSchuessler/tuple-th")
8797 (synopsis "Generate utility functions for tuples of statically known size
8798 for Haskell")
8799 (description "This Haskell package contains Template Haskell functions for
8800 generating functions similar to those in @code{Data.List} for tuples of
8801 statically known size.")
8802 (license license:bsd-3)))
8803
8804 (define-public ghc-contravariant-extras
8805 (package
8806 (name "ghc-contravariant-extras")
8807 (version "0.3.3.1")
8808 (source
8809 (origin
8810 (method url-fetch)
8811 (uri (string-append "https://hackage.haskell.org/package/"
8812 "contravariant-extras-" version "/"
8813 "contravariant-extras-" version ".tar.gz"))
8814 (sha256
8815 (base32
8816 "1mbrgjybdx8fjdck4ldwi8955w4qnmm0ql56zix7dyn0s7s9spgk"))))
8817 (build-system haskell-build-system)
8818 (inputs `(("ghc-tuple-th" ,ghc-tuple-th)
8819 ("ghc-contravariant" ,ghc-contravariant)
8820 ("ghc-base-prelude" ,ghc-base-prelude)))
8821 (home-page "https://github.com/nikita-volkov/contravariant-extras")
8822 (synopsis "Extras for the @code{ghc-contravariant} Haskell package")
8823 (description "This Haskell package provides extras for the
8824 @code{ghc-contravariant} package.")
8825 (license license:expat)))
8826
8827 (define-public ghc-monadrandom
8828 (package
8829 (name "ghc-monadrandom")
8830 (version "0.5.1.1")
8831 (source
8832 (origin
8833 (method url-fetch)
8834 (uri (string-append "https://hackage.haskell.org/package/"
8835 "MonadRandom-" version "/"
8836 "MonadRandom-" version ".tar.gz"))
8837 (sha256
8838 (base32
8839 "0w44jl1n3kqvqaflh82l1wj3xxbhzfs3kf4m8rk7w6fgg8llmnmb"))))
8840 (build-system haskell-build-system)
8841 (inputs `(("ghc-transformers-compat" ,ghc-transformers-compat)
8842 ("ghc-primitive" ,ghc-primitive)
8843 ("ghc-fail" ,ghc-fail)
8844 ("ghc-random" ,ghc-random)))
8845 (home-page "https://github.com/byorgey/MonadRandom")
8846 (synopsis "Random-number generation monad for Haskell")
8847 (description "This Haskell package provides support for computations
8848 which consume random values.")
8849 (license license:bsd-3)))
8850
8851 (define-public ghc-either
8852 (package
8853 (name "ghc-either")
8854 (version "4.4.1.1")
8855 (source
8856 (origin
8857 (method url-fetch)
8858 (uri (string-append "https://hackage.haskell.org/package/"
8859 "either-" version "/"
8860 "either-" version ".tar.gz"))
8861 (sha256
8862 (base32
8863 "1lrlwqqnm6ibfcydlv5qvvssw7bm0c6yypy0rayjzv1znq7wp1xh"))))
8864 (build-system haskell-build-system)
8865 (inputs `(("ghc-bifunctors" ,ghc-bifunctors)
8866 ("ghc-exceptions" ,ghc-exceptions)
8867 ("ghc-free" ,ghc-free)
8868 ("ghc-monad-control" ,ghc-monad-control)
8869 ("ghc-manodrandom" ,ghc-monadrandom)
8870 ("ghc-mmorph" ,ghc-mmorph)
8871 ("ghc-profunctors" ,ghc-profunctors)
8872 ("ghc-semigroups" ,ghc-semigroups)
8873 ("ghc-semigroupoids" ,ghc-semigroupoids)
8874 ("ghc-transformers-base" ,ghc-transformers-base)))
8875 (home-page "https://github.com/ekmett/either")
8876 (synopsis "Provides an either monad transformer for Haskell")
8877 (description "This Haskell package provides an either monad transformer.")
8878 (license license:bsd-3)))
8879
8880 (define-public ghc-pretty-hex
8881 (package
8882 (name "ghc-pretty-hex")
8883 (version "1.0")
8884 (source
8885 (origin
8886 (method url-fetch)
8887 (uri (string-append "https://hackage.haskell.org/package/"
8888 "pretty-hex-" version "/"
8889 "pretty-hex-" version ".tar.gz"))
8890 (sha256
8891 (base32
8892 "0ylwkvvjvmpprha9nx83xb8gkhyanhk5fffc0r7lb96n4ch5z6pz"))))
8893 (build-system haskell-build-system)
8894 (home-page "https://github.com/GaloisInc/hexdump")
8895 (synopsis "Haskell library for hex dumps of ByteStrings")
8896 (description "This Haskell library generates pretty hex dumps of
8897 ByteStrings in the style of other common *nix hex dump tools.")
8898 (license license:bsd-3)))
8899
8900 (define-public ghc-network-info
8901 (package
8902 (name "ghc-network-info")
8903 (version "0.2.0.10")
8904 (source
8905 (origin
8906 (method url-fetch)
8907 (uri (string-append "https://hackage.haskell.org/package/"
8908 "network-info-" version "/"
8909 "network-info-" version ".tar.gz"))
8910 (sha256
8911 (base32
8912 "0anmgzcpnz7nw3n6vq0r25m1s9l2svpwi83wza0lzkrlbnbzd02n"))))
8913 (build-system haskell-build-system)
8914 (home-page "https://github.com/jystic/network-info")
8915 (synopsis "Access the local computer's basic network configuration")
8916 (description "This Haskell library provides simple read-only access to the
8917 local computer's networking configuration. It is currently capable of
8918 getting a list of all the network interfaces and their respective
8919 IPv4, IPv6 and MAC addresses.")
8920 (license license:bsd-3)))
8921
8922 (define-public ghc-uuid-types
8923 (package
8924 (name "ghc-uuid-types")
8925 (version "1.0.3")
8926 (source
8927 (origin
8928 (method url-fetch)
8929 (uri (string-append "https://hackage.haskell.org/package/"
8930 "uuid-types-" version "/"
8931 "uuid-types-" version ".tar.gz"))
8932 (sha256
8933 (base32
8934 "1zdka5jnm1h6k36w3nr647yf3b5lqb336g3fkprhd6san9x52xlj"))))
8935 (build-system haskell-build-system)
8936 (arguments
8937 `(#:configure-flags (list "--allow-newer=QuickCheck"
8938 "--allow-newer=HUnit")))
8939 (inputs `(("ghc-hashable" ,ghc-hashable)
8940 ("ghc-random" ,ghc-random)
8941 ("ghc-text" ,ghc-text)))
8942 (native-inputs `(("ghc-hunit" ,ghc-hunit)
8943 ("ghc-quickcheck" ,ghc-quickcheck)
8944 ("ghc-tasty" ,ghc-tasty)
8945 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
8946 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
8947 (home-page "https://github.com/hvr/uuid")
8948 (synopsis "Haskell type definitions for UUIDs")
8949 (description "This Haskell library contains type definitions for
8950 @dfn{Universally Unique Identifiers} or
8951 @uref{https://en.wikipedia.org/wiki/UUID, UUIDs}, and basic conversion
8952 functions.")
8953 (license license:bsd-3)))
8954
8955 (define-public ghc-uuid
8956 (package
8957 (name "ghc-uuid")
8958 (version "1.3.13")
8959 (source
8960 (origin
8961 (method url-fetch)
8962 (uri (string-append "https://hackage.haskell.org/package/"
8963 "uuid-" version "/"
8964 "uuid-" version ".tar.gz"))
8965 (sha256
8966 (base32
8967 "09xhk42yhxvqmka0iqrv3338asncz8cap3j0ic0ps896f2581b6z"))))
8968 (build-system haskell-build-system)
8969 (arguments
8970 `(#:configure-flags (list "--allow-newer=QuickCheck"
8971 "--allow-newer=HUnit")))
8972 (inputs `(("ghc-cryptohash-sha1" ,ghc-cryptohash-sha1)
8973 ("ghc-cryptohash-md5" ,ghc-cryptohash-md5)
8974 ("ghc-entropy" ,ghc-entropy)
8975 ("ghc-network-info" ,ghc-network-info)
8976 ("ghc-random" ,ghc-random)
8977 ("ghc-text" ,ghc-text)
8978 ("ghc-uuid-types" ,ghc-uuid-types)))
8979 (native-inputs `(("ghc-hunit" ,ghc-hunit)
8980 ("ghc-quickcheck" ,ghc-quickcheck)
8981 ("ghc-tasty" ,ghc-tasty)
8982 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
8983 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
8984 (home-page "https://github.com/hvr/uuid")
8985 (synopsis "Haskell library to create, compare, parse, and print UUIDs")
8986 (description "This Haskell library provides utilities creating, comparing,
8987 parsing and printing @dfn{Universally Unique Identifiers} or UUIDs.")
8988 (license license:bsd-3)))
8989
8990 (define-public ghc-rebase
8991 (package
8992 (name "ghc-rebase")
8993 (version "1.1")
8994 (source
8995 (origin
8996 (method url-fetch)
8997 (uri (string-append "https://hackage.haskell.org/package/"
8998 "rebase-" version "/"
8999 "rebase-" version ".tar.gz"))
9000 (sha256
9001 (base32
9002 "1qkhnpcc4g2vd6jmbf3b6psqkan6hyawqzrwzqdd931hsb02l6ia"))))
9003 (build-system haskell-build-system)
9004 (inputs `(("ghc-stm" ,ghc-stm)
9005 ("ghc-hashable" ,ghc-hashable)
9006 ("ghc-vector" ,ghc-vector)
9007 ("ghc-unordered-containers" ,ghc-unordered-containers)
9008 ("ghc-text" ,ghc-text)
9009 ("ghc-scientific" ,ghc-scientific)
9010 ("ghc-uuid" ,ghc-uuid)
9011 ("ghc-dlist" ,ghc-dlist)
9012 ("ghc-void" ,ghc-void)
9013 ("ghc-bifunctors" ,ghc-bifunctors)
9014 ("ghc-profunctors" ,ghc-profunctors)
9015 ("ghc-contravariant" ,ghc-contravariant)
9016 ("ghc-contravariant-extras" ,ghc-contravariant-extras)
9017 ("ghc-semigroups" ,ghc-semigroups)
9018 ("ghc-either" ,ghc-either)
9019 ("ghc-fail" ,ghc-fail)
9020 ("ghc-base-prelude" ,ghc-base-prelude)))
9021 (home-page "https://github.com/nikita-volkov/rebase")
9022 (synopsis "Progressive alternative to the base package
9023 for Haskell")
9024 (description "This Haskell package is intended for those who are
9025 tired of keeping long lists of dependencies to the same essential libraries
9026 in each package as well as the endless imports of the same APIs all over again.
9027
9028 It also supports the modern tendencies in the language.
9029
9030 To solve those problems this package does the following:
9031
9032 @itemize
9033 @item Reexport the original APIs under the @code{Rebase} namespace.
9034
9035 @item Export all the possible non-conflicting symbols from the
9036 @code{Rebase.Prelude} module.
9037
9038 @item Give priority to the modern practices in the conflicting cases.
9039 @end itemize
9040
9041 The policy behind the package is only to reexport the non-ambiguous and
9042 non-controversial APIs, which the community has obviously settled on.
9043 The package is intended to rapidly evolve with the contribution from
9044 the community, with the missing features being added with pull-requests.")
9045 (license license:expat)))
9046
9047 (define-public ghc-vector-builder
9048 (package
9049 (name "ghc-vector-builder")
9050 (version "0.3.1")
9051 (source
9052 (origin
9053 (method url-fetch)
9054 (uri (string-append "https://hackage.haskell.org/package/"
9055 "vector-builder-" version "/"
9056 "vector-builder-" version ".tar.gz"))
9057 (sha256
9058 (base32
9059 "1l6sfgd2s107zkp1qd1w6jdjcbznp31769qf99pxar087f697wvp"))))
9060 (build-system haskell-build-system)
9061 (inputs `(("ghc-vector" ,ghc-vector)
9062 ("ghc-semigroups" ,ghc-semigroups)
9063 ("ghc-base-prelude" ,ghc-base-prelude)))
9064 (native-inputs `(("ghc-tasty" ,ghc-tasty)
9065 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
9066 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
9067 ("ghc-hunit" ,ghc-hunit)
9068 ("ghc-quickcheck-instances" ,ghc-quickcheck-instances)
9069 ("ghc-rebase" ,ghc-rebase)))
9070 (home-page "https://github.com/nikita-volkov/vector-builder")
9071 (synopsis "Vector builder for Haskell")
9072 (description "This Haskell package provides an API for constructing vectors.
9073 It provides the composable @code{Builder} abstraction, which has instances of the
9074 @code{Monoid} and @code{Semigroup} classes.
9075
9076 You would first use the @code{Builder} abstraction to specify the structure of
9077 the vector; then you can execute the builder to actually produce the
9078 vector. ")
9079 (license license:expat)))
9080
9081 (define-public ghc-foldl
9082 (package
9083 (name "ghc-foldl")
9084 (version "1.3.5")
9085 (source
9086 (origin
9087 (method url-fetch)
9088 (uri (string-append "https://hackage.haskell.org/package/"
9089 "foldl-" version "/"
9090 "foldl-" version ".tar.gz"))
9091 (sha256
9092 (base32
9093 "10qsp7dj2xsq4q2xm6x6b12y5pq32qf7my41hnkmdwwbccvhdxb2"))))
9094 (build-system haskell-build-system)
9095 (inputs `(("ghc-mwc-randam" ,ghc-mwc-random)
9096 ("ghc-primitive" ,ghc-primitive)
9097 ("ghc-text" ,ghc-text)
9098 ("ghc-vector" ,ghc-vector)
9099 ("ghc-unordered-containers" ,ghc-unordered-containers)
9100 ("ghc-hashable" ,ghc-hashable)
9101 ("ghc-contravariant" ,ghc-contravariant)
9102 ("ghc-profunctors" ,ghc-profunctors)
9103 ("ghc-comonad" ,ghc-comonad)
9104 ("ghc-vector-builder" ,ghc-vector-builder)))
9105 (home-page "https://github.com/Gabriel439/Haskell-Foldl-Library")
9106 (synopsis "Composable, streaming, and efficient left folds for Haskell")
9107 (description "This Haskell library provides strict left folds that stream
9108 in constant memory, and you can combine folds using @code{Applicative} style
9109 to derive new folds. Derived folds still traverse the container just once
9110 and are often as efficient as hand-written folds.")
9111 (license license:bsd-3)))
9112
9113 (define-public ghc-mono-traversable
9114 (package
9115 (name "ghc-mono-traversable")
9116 (version "1.0.9.0")
9117 (source
9118 (origin
9119 (method url-fetch)
9120 (uri (string-append "https://hackage.haskell.org/package/"
9121 "mono-traversable-" version "/"
9122 "mono-traversable-" version ".tar.gz"))
9123 (sha256
9124 (base32
9125 "0180ks0dyvpk1r20w5jw2w2n79mjnk69n9vhspaxzlyxqgim5psa"))))
9126 (build-system haskell-build-system)
9127 (inputs `(("ghc-unordered-containers" ,ghc-unordered-containers)
9128 ("ghc-hashable" ,ghc-hashable)
9129 ("ghc-text" ,ghc-text)
9130 ("ghc-vector" ,ghc-vector)
9131 ("ghc-vector-algorithms" ,ghc-vector-algorithms)
9132 ("ghc-split" ,ghc-split)))
9133 (native-inputs `(("ghc-hspec" ,ghc-hspec)
9134 ("ghc-hunit" ,ghc-hunit)
9135 ("ghc-quickcheck" ,ghc-quickcheck)
9136 ("ghc-semigroups" ,ghc-semigroups)
9137 ("ghc-foldl" ,ghc-foldl)))
9138 (home-page "https://github.com/snoyberg/mono-traversable")
9139 (synopsis "Haskell classes for mapping, folding, and traversing monomorphic
9140 containers")
9141 (description "This Haskell package provides Monomorphic variants of the
9142 Functor, Foldable, and Traversable typeclasses. If you understand Haskell's
9143 basic typeclasses, you understand mono-traversable. In addition to what
9144 you are used to, it adds on an IsSequence typeclass and has code for marking
9145 data structures as non-empty.")
9146 (license license:expat)))
9147
9148 (define-public ghc-conduit-combinators
9149 (package
9150 (name "ghc-conduit-combinators")
9151 (version "1.3.0")
9152 (source
9153 (origin
9154 (method url-fetch)
9155 (uri (string-append "https://hackage.haskell.org/package/"
9156 "conduit-combinators-" version "/"
9157 "conduit-combinators-" version ".tar.gz"))
9158 (sha256
9159 (base32
9160 "1lz70vwp4y4lpsivxl0cshq7aq3968rh48r6rjvpyaj2l0bdj5wp"))))
9161 (build-system haskell-build-system)
9162 (inputs `(("ghc-conduit" ,ghc-conduit)
9163 ("ghc-conduit-extra" ,ghc-conduit-extra)
9164 ("ghc-transformers-base" ,ghc-transformers-base)
9165 ("ghc-primitive" ,ghc-primitive)
9166 ("ghc-vector" ,ghc-vector)
9167 ("ghc-text" ,ghc-text)
9168 ("ghc-void" ,ghc-void)
9169 ("ghc-mwc-random" ,ghc-mwc-random)
9170 ("ghc-unix-compat" ,ghc-unix-compat)
9171 ("ghc-base16-bytestring" ,ghc-base16-bytestring)
9172 ("ghc-base64-bytestring" ,ghc-base64-bytestring)
9173 ("ghc-resourcet" ,ghc-resourcet)
9174 ("ghc-monad-control" ,ghc-monad-control)
9175 ("ghc-chunked-data" ,ghc-chunked-data)
9176 ("ghc-mono-traversable" ,ghc-mono-traversable)))
9177 (native-inputs `(("ghc-hspec" ,ghc-hspec)
9178 ("ghc-silently" ,ghc-silently)
9179 ("ghc-safe" ,ghc-safe)
9180 ("ghc-quickcheck" ,ghc-quickcheck)))
9181 (home-page "https://github.com/snoyberg/mono-traversable")
9182 (synopsis "Commonly used conduit functions, for both chunked and
9183 unchunked data")
9184 (description "This Haskell package provides a replacement for Data.Conduit.List,
9185 as well as a convenient Conduit module.")
9186 (license license:expat)))
9187
9188 (define-public ghc-aws
9189 (package
9190 (name "ghc-aws")
9191 (version "0.18")
9192 (source
9193 (origin
9194 (method url-fetch)
9195 (uri (string-append "https://hackage.haskell.org/package/"
9196 "aws-" version "/aws-" version ".tar.gz"))
9197 (sha256 (base32
9198 "0h7473wkvc5xjzx5fd5k5fp70rjq5gqmn1cpy95mswvvfsq3irxj"))))
9199 (build-system haskell-build-system)
9200 (arguments `(#:tests? #f)) ; Tests require AWS credentials.
9201 (inputs
9202 `(("ghc-aeson" ,ghc-aeson)
9203 ("ghc-attoparsec" ,ghc-attoparsec)
9204 ("ghc-base16-bytestring" ,ghc-base16-bytestring)
9205 ("ghc-base64-bytestring" ,ghc-base64-bytestring)
9206 ("ghc-blaze-builder" ,ghc-blaze-builder)
9207 ("ghc-byteable" ,ghc-byteable)
9208 ("ghc-case-insensitive" ,ghc-case-insensitive)
9209 ("ghc-cereal" ,ghc-cereal)
9210 ("ghc-conduit" ,ghc-conduit)
9211 ("ghc-conduit-extra" ,ghc-conduit-extra)
9212 ("ghc-cryptonite" ,ghc-cryptonite)
9213 ("ghc-data-default" ,ghc-data-default)
9214 ("ghc-http-conduit" ,ghc-http-conduit)
9215 ("ghc-http-types" ,ghc-http-types)
9216 ("ghc-monad-control" ,ghc-monad-control)
9217 ("ghc-network" ,ghc-network)
9218 ("ghc-old-locale" ,ghc-old-locale)
9219 ("ghc-safe" ,ghc-safe)
9220 ("ghc-scientific" ,ghc-scientific)
9221 ("ghc-tagged" ,ghc-tagged)
9222 ("ghc-text" ,ghc-text)
9223 ("ghc-unordered-containers" ,ghc-unordered-containers)
9224 ("ghc-utf8-string" ,ghc-utf8-string)
9225 ("ghc-vector" ,ghc-vector)
9226 ("ghc-xml-conduit" ,ghc-xml-conduit)))
9227 (native-inputs
9228 `(("ghc-quickcheck" ,ghc-quickcheck)
9229 ("ghc-errors" ,ghc-errors)
9230 ("ghc-http-client" ,ghc-http-client)
9231 ("ghc-http-client-tls" ,ghc-http-client-tls)
9232 ("ghc-quickcheck-instances" ,ghc-quickcheck-instances)
9233 ("ghc-tasty" ,ghc-tasty)
9234 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
9235 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
9236 ("ghc-conduit-combinators" ,ghc-conduit-combinators)))
9237 (home-page "https://github.com/aristidb/aws")
9238 (synopsis "Amazon Web Services for Haskell")
9239 (description "This package attempts to provide support for using
9240 Amazon Web Services like S3 (storage), SQS (queuing) and others to
9241 Haskell programmers. The ultimate goal is to support all Amazon
9242 Web Services.")
9243 (license license:bsd-3)))
9244
9245 (define-public ghc-basement
9246 (package
9247 (name "ghc-basement")
9248 (version "0.0.8")
9249 (source
9250 (origin
9251 (method url-fetch)
9252 (uri (string-append "https://hackage.haskell.org/package/"
9253 "basement/basement-" version ".tar.gz"))
9254 (sha256
9255 (base32
9256 "194jw567di4q2758943q9rrwkbf9gl261my7qc21i9xhyabipx67"))))
9257 (build-system haskell-build-system)
9258 (home-page "https://github.com/haskell-foundation/foundation")
9259 (synopsis "Basic primitives for Foundation starter pack")
9260 (description
9261 "This package contains basic primitives for the Foundation set of
9262 packages.")
9263 (license license:bsd-3)))
9264
9265 (define-public ghc-foundation
9266 (package
9267 (name "ghc-foundation")
9268 (version "0.0.21")
9269 (source
9270 (origin
9271 (method url-fetch)
9272 (uri (string-append "https://hackage.haskell.org/package/"
9273 "foundation/foundation-" version ".tar.gz"))
9274 (sha256
9275 (base32
9276 "1q43y8wfj0wf9gdq2kzphwjwq6m5pvryy1lqgk954aq5z3ks1lsf"))))
9277 (build-system haskell-build-system)
9278 (arguments
9279 `(#:phases
9280 (modify-phases %standard-phases
9281 (add-after 'unpack 'add-setup-script
9282 (lambda _
9283 ;; The usual "Setup.hs" script is missing from the source.
9284 (with-output-to-file "Setup.hs"
9285 (lambda ()
9286 (format #t "import Distribution.Simple~%")
9287 (format #t "main = defaultMain~%"))))))))
9288 (inputs `(("ghc-basement" ,ghc-basement)))
9289 (home-page "https://github.com/haskell-foundation/foundation")
9290 (synopsis "Alternative prelude with batteries and no dependencies")
9291 (description
9292 "This package provides a custom prelude with no dependencies apart from
9293 the base package.
9294
9295 Foundation has the following goals:
9296
9297 @enumerate
9298 @item provide a base like sets of modules that provide a consistent set of
9299 features and bugfixes across multiple versions of GHC (unlike base).
9300 @item provide a better and more efficient prelude than base's prelude.
9301 @item be self-sufficient: no external dependencies apart from base;
9302 @item provide better data-types: packed unicode string by default, arrays;
9303 @item Numerical classes that better represent mathematical things (no more
9304 all-in-one @code{Num});
9305 @item I/O system with less lazy IO.
9306 @end enumerate\n")
9307 (license license:bsd-3)))
9308
9309 (define-public ghc-stm-chans
9310 (package
9311 (name "ghc-stm-chans")
9312 (version "3.0.0.4")
9313 (source
9314 (origin
9315 (method url-fetch)
9316 (uri (string-append "https://hackage.haskell.org/package/"
9317 "stm-chans-" version "/"
9318 "stm-chans-" version ".tar.gz"))
9319 (sha256
9320 (base32
9321 "0f27sp09yha43xk9q55sc185jyjs5h7gq2dhsyx6bm9kz9dzqi13"))))
9322 (build-system haskell-build-system)
9323 (inputs `(("ghc-stm" ,ghc-stm)))
9324 (home-page "https://hackage.haskell.org/package/stm-chans")
9325 (synopsis "Additional types of channels for ghc-stm")
9326 (description "This Haskell package offers a collection of channel types,
9327 similar to @code{Control.Concurrent.STM.@{TChan,TQueue@}} but with additional
9328 features.")
9329 (license license:bsd-3)))
9330
9331 (define-public ghc-monad-loops
9332 (package
9333 (name "ghc-monad-loops")
9334 (version "0.4.3")
9335 (source
9336 (origin
9337 (method url-fetch)
9338 (uri (string-append "https://hackage.haskell.org/package/"
9339 "monad-loops-" version "/"
9340 "monad-loops-" version ".tar.gz"))
9341 (sha256
9342 (base32
9343 "062c2sn3hc8h50p1mhqkpyv6x8dydz2zh3ridvlfjq9nqimszaky"))))
9344 (build-system haskell-build-system)
9345 (native-inputs `(("ghc-tasty" ,ghc-tasty)
9346 ("ghc-tasty-hunit" ,ghc-tasty-hunit)))
9347 (home-page "https://github.com/mokus0/monad-loops")
9348 (synopsis "Monadic loops for Haskell")
9349 (description "This Haskell package provides some useful control
9350 operators for looping.")
9351 (license license:public-domain)))
9352
9353 (define-public ghc-monad-logger
9354 (package
9355 (name "ghc-monad-logger")
9356 (version "0.3.25.1")
9357 (source
9358 (origin
9359 (method url-fetch)
9360 (uri (string-append "https://hackage.haskell.org/package/"
9361 "monad-logger-" version "/"
9362 "monad-logger-" version ".tar.gz"))
9363 (sha256
9364 (base32
9365 "0yv4fsi566zrn30j2g5l901lyqgmflhvzy4hji7ikcbh5d45m920"))))
9366 (build-system haskell-build-system)
9367 (inputs `(("ghc-transformers-compat" ,ghc-transformers-compat)
9368 ("ghc-text" ,ghc-text)
9369 ("ghc-stm" ,ghc-stm)
9370 ("ghc-stm-chans" ,ghc-stm-chans)
9371 ("ghc-lifted-base" ,ghc-lifted-base)
9372 ("ghc-resourcet" ,ghc-resourcet)
9373 ("ghc-conduit" ,ghc-conduit)
9374 ("ghc-conduit-extra" ,ghc-conduit-extra)
9375 ("ghc-fast-logger" ,ghc-fast-logger)
9376 ("ghc-transformers-base" ,ghc-transformers-base)
9377 ("ghc-monad-control" ,ghc-monad-control)
9378 ("ghc-monad-loops" ,ghc-monad-loops)
9379 ("ghc-blaze-builder" ,ghc-blaze-builder)
9380 ("ghc-exceptions" ,ghc-exceptions)))
9381 (home-page "https://github.com/kazu-yamamoto/logger")
9382 (synopsis "Provides a class of monads which can log messages for Haskell")
9383 (description "This Haskell package uses a monad transformer approach
9384 for logging.
9385
9386 This package provides Template Haskell functions for determining source
9387 code locations of messages.")
9388 (license license:expat)))
9389
9390 (define-public ghc-shakespeare
9391 (package
9392 (name "ghc-shakespeare")
9393 (version "2.0.14")
9394 (source
9395 (origin
9396 (method url-fetch)
9397 (uri (string-append "https://hackage.haskell.org/package/"
9398 "shakespeare-" version "/"
9399 "shakespeare-" version ".tar.gz"))
9400 (sha256
9401 (base32
9402 "0j5zx8ka7d7scvb9shm7k3376qzl3k4kpim9aqqfs6n86901zpl4"))))
9403 (build-system haskell-build-system)
9404 (inputs `(("ghc-parsec" ,ghc-parsec)
9405 ("ghc-text" ,ghc-text)
9406 ("ghc-aeson" ,ghc-aeson)
9407 ("ghc-blaze-markup" ,ghc-blaze-markup)
9408 ("ghc-blaze-html" ,ghc-blaze-html)
9409 ("ghc-exceptions" ,ghc-exceptions)
9410 ("ghc-vector" ,ghc-vector)
9411 ("ghc-unordered-containers" ,ghc-unordered-containers)
9412 ("ghc-scientific" ,ghc-scientific)))
9413 (native-inputs `(("ghc-hspec" ,ghc-hspec)
9414 ("ghc-hunit" ,ghc-hunit)
9415 ("hspec-discover" ,hspec-discover)))
9416 (home-page "https://www.yesodweb.com/book/shakespearean-templates")
9417 (synopsis "Family of type-safe template languages for Haskell")
9418 (description "This Haskell package provides a family of type-safe
9419 templates with simple variable interpolation. Shakespeare templates can
9420 be used inline with a quasi-quoter or in an external file and it
9421 interpolates variables according to the type being inserted.")
9422 (license license:expat)))
9423
9424 (define-public ghc-securemem
9425 (package
9426 (name "ghc-securemem")
9427 (version "0.1.9")
9428 (source
9429 (origin
9430 (method url-fetch)
9431 (uri (string-append "https://hackage.haskell.org/package/"
9432 "securemem-" version "/"
9433 "securemem-" version ".tar.gz"))
9434 (sha256
9435 (base32
9436 "0dkhhjxa7njc3qbgvd5a23rkvr39vj2kn2a9nk6yjg7a8b2hvdpy"))))
9437 (build-system haskell-build-system)
9438 (inputs `(("ghc-byteable" ,ghc-byteable)
9439 ("ghc-memory" ,ghc-memory)))
9440 (home-page "https://github.com/vincenthz/hs-securemem")
9441 (synopsis "Auto-scrubbing and const-time-eq memory chunk abstraction for
9442 Haskell")
9443 (description "SecureMem is similar to ByteString, except that it provides
9444 a memory chunk that will be auto-scrubbed after it run out of scope.")
9445 (license license:bsd-3)))
9446
9447 (define-public ghc-resource-pool
9448 (package
9449 (name "ghc-resource-pool")
9450 (version "0.2.3.2")
9451 (source
9452 (origin
9453 (method url-fetch)
9454 (uri (string-append "https://hackage.haskell.org/package/"
9455 "resource-pool-" version "/"
9456 "resource-pool-" version ".tar.gz"))
9457 (sha256
9458 (base32
9459 "04mw8b9djb14zp4rdi6h7mc3zizh597ffiinfbr4m0m8psifw9w6"))))
9460 (build-system haskell-build-system)
9461 (inputs `(("ghc-hashable" ,ghc-hashable)
9462 ("ghc-monad-control" ,ghc-monad-control)
9463 ("ghc-transformers-base" ,ghc-transformers-base)
9464 ("ghc-stm" ,ghc-stm)
9465 ("ghc-vector" ,ghc-vector)))
9466 (home-page "https://github.com/bos/pool")
9467 (synopsis "Striped resource pooling implementation in Haskell")
9468 (description "This Haskell package provides striped pooling abstraction
9469 for managing flexibly-sized collections of resources such as database
9470 connections.")
9471 (license license:bsd-3)))
9472
9473 (define-public ghc-attoparsec-iso8601
9474 (package
9475 (name "ghc-attoparsec-iso8601")
9476 (version "1.0.0.0")
9477 (source
9478 (origin
9479 (method url-fetch)
9480 (uri (string-append "https://hackage.haskell.org/package/"
9481 "attoparsec-iso8601-" version "/"
9482 "attoparsec-iso8601-" version ".tar.gz"))
9483 (sha256
9484 (base32
9485 "12l55b76bhya9q89mfmqmy6sl5v39b6gzrw5rf3f70vkb23nsv5a"))))
9486 (build-system haskell-build-system)
9487 (inputs `(("ghc-attoparsec" ,ghc-attoparsec)
9488 ("ghc-base-compat" ,ghc-base-compat)
9489 ("ghc-text" ,ghc-text)))
9490 (home-page "https://github.com/bos/aeson")
9491 (synopsis "Parse ISO 8601 dates")
9492 (description "Haskell library for parsing of ISO 8601 dates, originally
9493 from aeson.")
9494 (license license:bsd-3)))
9495
9496 (define-public ghc-generics-sop
9497 (package
9498 (name "ghc-generics-sop")
9499 (version "0.3.2.0")
9500 (source
9501 (origin
9502 (method url-fetch)
9503 (uri (string-append "https://hackage.haskell.org/package/"
9504 "generics-sop-" version "/"
9505 "generics-sop-" version ".tar.gz"))
9506 (sha256
9507 (base32
9508 "168v62i845jh9jbfaz3ldz8svz4wmzq9mf2vhb7pxlnbkk8fqq1h"))))
9509 (build-system haskell-build-system)
9510 (inputs `(("ghc-transformers-compat" ,ghc-transformers-compat)))
9511 (home-page "https://github.com/well-typed/generics-sop")
9512 (synopsis "Generic Programming using True Sums of Products for Haskell")
9513 (description "This Haskell package supports the definition of generic
9514 functions. Datatypes are viewed in a uniform, structured way: the choice
9515 between constructors is represented using an n-ary sum, and the arguments of
9516 each constructor are represented using an n-ary product.")
9517 (license license:bsd-3)))
9518
9519 (define-public ghc-uri-bytestring
9520 (package
9521 (name "ghc-uri-bytestring")
9522 (version "0.3.1.0")
9523 (source
9524 (origin
9525 (method url-fetch)
9526 (uri (string-append "https://hackage.haskell.org/package/"
9527 "uri-bytestring-" version "/"
9528 "uri-bytestring-" version ".tar.gz"))
9529 (sha256
9530 (base32
9531 "04qjv1sgyrdg538290p9hqnvyxnahvr5cjwl8vm1rn9j0fv3ymq9"))))
9532 (build-system haskell-build-system)
9533 (inputs `(("ghc-attoparsec" ,ghc-attoparsec)
9534 ("ghc-fail" ,ghc-fail)
9535 ("ghc-blaze-builder" ,ghc-blaze-builder)
9536 ("ghc-th-lift-instances" ,ghc-th-lift-instances)))
9537 (native-inputs `(("ghc-attoparsec" ,ghc-attoparsec)
9538 ("ghc-hunit" ,ghc-hunit)
9539 ("ghc-quickcheck" ,ghc-quickcheck)
9540 ("ghc-tasty" ,ghc-tasty)
9541 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
9542 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
9543 ("ghc-base-compat" ,ghc-base-compat)
9544 ("ghc-quickcheck-instances" ,ghc-quickcheck-instances)
9545 ("ghc-semigroups" ,ghc-semigroups)
9546 ("ghc-generics-sop" ,ghc-generics-sop)))
9547 (home-page "https://github.com/Soostone/uri-bytestring")
9548 (synopsis "Haskell URI parsing as ByteStrings")
9549 (description "This Haskell package aims to be an RFC3986 compliant URI
9550 parser that uses ByteStrings for parsing and representing the URI data.")
9551 (license license:bsd-3)))
9552
9553 (define-public ghc-http-api-data
9554 (package
9555 (name "ghc-http-api-data")
9556 (version "0.3.7.1")
9557 (source
9558 (origin
9559 (method url-fetch)
9560 (uri (string-append "https://hackage.haskell.org/package/"
9561 "http-api-data-" version "/"
9562 "http-api-data-" version ".tar.gz"))
9563 (sha256
9564 (base32
9565 "1zbmf0kkfsw7pfznisi205gh7jd284gfarxsyiavd2iw26akwqwc"))))
9566 (build-system haskell-build-system)
9567 (arguments `(#:tests? #f)) ; FIXME: Tests require QuickCheck >= 2.9
9568 (inputs `(("ghc-attoparsec" ,ghc-attoparsec)
9569 ("ghc-attoparsec-iso8601" ,ghc-attoparsec-iso8601)
9570 ("ghc-hashable" ,ghc-hashable)
9571 ("ghc-http-types" ,ghc-http-types)
9572 ("ghc-text" ,ghc-text)
9573 ("ghc-time-locale-compat" ,ghc-time-locale-compat)
9574 ("ghc-unordered-containers" ,ghc-unordered-containers)
9575 ("ghc-uri-bytestring" ,ghc-uri-bytestring)
9576 ("ghc-uuid-types" ,ghc-uuid-types)))
9577 (home-page "https://github.com/fizruk/http-api-data")
9578 (synopsis "Convert to/from HTTP API data like URL pieces, headers and
9579 query parameters")
9580 (description "This Haskell package defines typeclasses used for converting
9581 Haskell data types to and from HTTP API data.")
9582 (license license:bsd-3)))
9583
9584 (define-public ghc-persistent
9585 (package
9586 (name "ghc-persistent")
9587 (version "2.7.3.1")
9588 (source
9589 (origin
9590 (method url-fetch)
9591 (uri (string-append "https://hackage.haskell.org/package/"
9592 "persistent-" version "/"
9593 "persistent-" version ".tar.gz"))
9594 (sha256
9595 (base32
9596 "1jbvavdvr9qz5ld7vf6l1jgiadhmxx6zc4vqsdk9ivfq6d5wlg1p"))))
9597 (build-system haskell-build-system)
9598 (inputs `(("ghc-old-locale" ,ghc-old-locale)
9599 ("ghc-text" ,ghc-text)
9600 ("ghc-conduit" ,ghc-conduit)
9601 ("ghc-resourcet" ,ghc-resourcet)
9602 ("ghc-exceptions" ,ghc-exceptions)
9603 ("ghc-monad-control" ,ghc-monad-control)
9604 ("ghc-lifted-base" ,ghc-lifted-base)
9605 ("ghc-resource-pool" ,ghc-resource-pool)
9606 ("ghc-path-pieces" ,ghc-path-pieces)
9607 ("ghc-http-api-data" ,ghc-http-api-data)
9608 ("ghc-aeson" ,ghc-aeson)
9609 ("ghc-monad-logger" ,ghc-monad-logger)
9610 ("ghc-transformers-base" ,ghc-transformers-base)
9611 ("ghc-base64-bytestring" ,ghc-base64-bytestring)
9612 ("ghc-unordered-containers" ,ghc-unordered-containers)
9613 ("ghc-vector" ,ghc-vector)
9614 ("ghc-attoparsec" ,ghc-attoparsec)
9615 ("ghc-haskell-src-meta" ,ghc-haskell-src-meta)
9616 ("ghc-blaze-html" ,ghc-blaze-html)
9617 ("ghc-blaze-markup" ,ghc-blaze-markup)
9618 ("ghc-silently" ,ghc-silently)
9619 ("ghc-fast-logger" ,ghc-fast-logger)
9620 ("ghc-scientific" ,ghc-scientific)
9621 ("ghc-tagged" ,ghc-tagged)))
9622 (native-inputs `(("ghc-hspec" ,ghc-hspec)))
9623 (home-page "https://www.yesodweb.com/book/persistent")
9624 (synopsis "Type-safe, multi-backend data serialization for Haskell")
9625 (description "This Haskell package allows Haskell programs to access data
9626 storage sytems like PostgreSQL, SQLite, MySQL and MongoDB in a type-safe
9627 way.")
9628 (license license:expat)))
9629
9630 (define-public ghc-aeson-compat
9631 (package
9632 (name "ghc-aeson-compat")
9633 (version "0.3.7.1")
9634 (source
9635 (origin
9636 (method url-fetch)
9637 (uri (string-append "https://hackage.haskell.org/package/"
9638 "aeson-compat-" version "/"
9639 "aeson-compat-" version ".tar.gz"))
9640 (sha256
9641 (base32
9642 "1jya3lm9imclhb8qqihv39hhb62vvs3qpws7pc5fc23vwg0hsx2r"))))
9643 (build-system haskell-build-system)
9644 (arguments `(#:tests? #f)) ; FIXME: Tests require QuickCheck >= 2.10
9645 (inputs `(("ghc-base-compat" ,ghc-base-compat)
9646 ("ghc-aeson" ,ghc-aeson)
9647 ("ghc-attoparsec" ,ghc-attoparsec)
9648 ("ghc-attoparsec" ,ghc-attoparsec-iso8601)
9649 ("ghc-exceptions" ,ghc-exceptions)
9650 ("ghc-hashable" ,ghc-hashable)
9651 ("ghc-scientific" ,ghc-scientific)
9652 ("ghc-text" ,ghc-text)
9653 ("ghc-time-locale-compat" ,ghc-time-locale-compat)
9654 ("ghc-unordered-containers" ,ghc-unordered-containers)
9655 ("ghc-vector" ,ghc-vector)
9656 ("ghc-tagged" ,ghc-tagged)
9657 ("ghc-semigroups" ,ghc-semigroups)
9658 ("ghc-nats" ,ghc-nats)))
9659 (home-page "https://github.com/phadej/aeson-compat")
9660 (synopsis "Compatibility layer for ghc-aeson")
9661 (description "This Haskell package provides compatibility layer for
9662 ghc-aeson.")
9663 (license license:bsd-3)))
9664
9665 (define-public ghc-persistent-template
9666 (package
9667 (name "ghc-persistent-template")
9668 (version "2.5.3.1")
9669 (source
9670 (origin
9671 (method url-fetch)
9672 (uri (string-append "https://hackage.haskell.org/package/"
9673 "persistent-template-" version "/"
9674 "persistent-template-" version ".tar.gz"))
9675 (sha256
9676 (base32
9677 "0449piw3n02q7dag7k1pakfmzmf3ms4wk1qmnagczpm1ckajinwd"))))
9678 (build-system haskell-build-system)
9679 (inputs `(("ghc-persistent" ,ghc-persistent)
9680 ("ghc-monad-control" ,ghc-monad-control)
9681 ("ghc-text" ,ghc-text)
9682 ("ghc-aeson" ,ghc-aeson)
9683 ("ghc-aeson-compat" ,ghc-aeson-compat)
9684 ("ghc-monad-logger" ,ghc-monad-logger)
9685 ("ghc-unordered-containers" ,ghc-unordered-containers)
9686 ("ghc-tagged" ,ghc-tagged)
9687 ("ghc-path-pieces" ,ghc-path-pieces)
9688 ("ghc-http-api-data" ,ghc-http-api-data)))
9689 (native-inputs `(("ghc-hspec" ,ghc-hspec)
9690 ("ghc-quickcheck" ,ghc-quickcheck)))
9691 (home-page "https://www.yesodweb.com/book/persistent")
9692 (synopsis "Type-safe, non-relational, multi-backend persistence")
9693 (description "This Haskell package provides interfaces and helper
9694 functions for the ghc-persistent package.")
9695 (license license:expat)))
9696
9697 (define-public ghc-unliftio-core
9698 (package
9699 (name "ghc-unliftio-core")
9700 (version "0.1.1.0")
9701 (source
9702 (origin
9703 (method url-fetch)
9704 (uri (string-append "https://hackage.haskell.org/package/"
9705 "unliftio-core-" version "/"
9706 "unliftio-core-" version ".tar.gz"))
9707 (sha256
9708 (base32
9709 "1193fplsjm1lcr05xwvkj1rsyzx74i755f6kw3ikmxbsv0bv0l3m"))))
9710 (build-system haskell-build-system)
9711 (arguments
9712 `(#:cabal-revision
9713 ("1" "16bjwcsaghqqmyi69rq65dn3ydifyfaabq3ns37apdm00mwqbcj2")))
9714 (home-page
9715 "https://github.com/fpco/unliftio/tree/master/unliftio-core#readme")
9716 (synopsis "The MonadUnliftIO typeclass for unlifting monads to IO")
9717 (description "This Haskell package provides the core @code{MonadUnliftIO}
9718 typeclass, instances for base and transformers, and basic utility
9719 functions.")
9720 (license license:expat)))
9721
9722 (define-public ghc-microlens
9723 (package
9724 (name "ghc-microlens")
9725 (version "0.4.9.1")
9726 (source
9727 (origin
9728 (method url-fetch)
9729 (uri (string-append "https://hackage.haskell.org/package/"
9730 "microlens-" version "/"
9731 "microlens-" version ".tar.gz"))
9732 (sha256
9733 (base32
9734 "0j2nzf0vpx2anvsrg2w0vy2z4jn3kkcs2n6glkzblhn1j9piqh51"))))
9735 (build-system haskell-build-system)
9736 (home-page
9737 "https://github.com/aelve/microlens")
9738 (synopsis "Provides a tiny lens Haskell library with no dependencies")
9739 (description "This Haskell package provides a lens library, just like
9740 @code{ghc-lens}, but smaller. It provides essential lenses and
9741 traversals (like @code{_1} and @code{_Just}), as well as ones which are simply
9742 nice to have (like @code{each}, @code{at}, and @code{ix}), and some
9743 combinators (like @code{failing} and @code{singular}), but everything else is
9744 stripped. As the result, this package has no dependencies.")
9745 (license license:bsd-3)))
9746
9747 (define-public ghc-microlens-th
9748 (package
9749 (name "ghc-microlens-th")
9750 (version "0.4.2.2")
9751 (source
9752 (origin
9753 (method url-fetch)
9754 (uri (string-append "https://hackage.haskell.org/package/"
9755 "microlens-th-" version "/"
9756 "microlens-th-" version ".tar.gz"))
9757 (sha256
9758 (base32
9759 "02nj7lnl61yffi3c6wn341arxhld5r0vj6nzcb5zmqjhnqsv8c05"))))
9760 (build-system haskell-build-system)
9761 (inputs `(("ghc-microlens" ,ghc-microlens)
9762 ("ghc-th-abstraction" ,ghc-th-abstraction)))
9763 (home-page
9764 "https://github.com/aelve/microlens")
9765 (synopsis "Automatic generation of record lenses for
9766 @code{ghc-microlens}")
9767 (description "This Haskell package lets you automatically generate lenses
9768 for data types; code was extracted from the lens package, and therefore
9769 generated lenses are fully compatible with ones generated by lens (and can be
9770 used both from lens and microlens).")
9771 (license license:bsd-3)))
9772
9773 (define-public ghc-unliftio
9774 (package
9775 (name "ghc-unliftio")
9776 (version "0.2.4.0")
9777 (source
9778 (origin
9779 (method url-fetch)
9780 (uri (string-append
9781 "https://hackage.haskell.org/package/unliftio/unliftio-"
9782 version
9783 ".tar.gz"))
9784 (sha256
9785 (base32
9786 "0vpncmwaq5zb6bziqfns4qdgxmq8ky0rlxna2yngxp170s5zxx9z"))))
9787 (build-system haskell-build-system)
9788 (arguments `(#:tests? #f)) ; FIXME: hspec-discover not in PATH
9789 (inputs
9790 `(("ghc-async" ,ghc-async)
9791 ("ghc-stm" ,ghc-stm)
9792 ("ghc-unliftio-core" ,ghc-unliftio-core)))
9793 (native-inputs `(("ghc-hspec" ,ghc-hspec)))
9794 (home-page "https://github.com/fpco/unliftio")
9795 (synopsis "Provides MonadUnliftIO typecplass for unlifting monads to
9796 IO (batteries included)")
9797 (description "This Haskell package provides the core @code{MonadUnliftIO}
9798 typeclass, a number of common instances, and a collection of common functions
9799 working with it.")
9800 (license license:expat)))
9801
9802 (define-public ghc-persistent-sqlite
9803 (package
9804 (name "ghc-persistent-sqlite")
9805 (version "2.6.4")
9806 (source
9807 (origin
9808 (method url-fetch)
9809 (uri (string-append "https://hackage.haskell.org/package/"
9810 "persistent-sqlite-" version "/"
9811 "persistent-sqlite-" version ".tar.gz"))
9812 (sha256
9813 (base32
9814 "16mc2ra0hbyyc8ckjlxxc11bpskdymbr8c3g6ih6wzik639xprbm"))))
9815 (build-system haskell-build-system)
9816 (inputs `(("ghc-persistent" ,ghc-persistent)
9817 ("ghc-unliftio-core" ,ghc-unliftio-core)
9818 ("ghc-aeson" ,ghc-aeson)
9819 ("ghc-conduit" ,ghc-conduit)
9820 ("ghc-monad-logger" ,ghc-monad-logger)
9821 ("ghc-microlens-th" ,ghc-microlens-th)
9822 ("ghc-resourcet" ,ghc-resourcet)
9823 ("ghc-old-locale" ,ghc-old-locale)
9824 ("ghc-resource-pool" ,ghc-resource-pool)
9825 ("ghc-unordered-containers" ,ghc-unordered-containers)))
9826 (native-inputs `(("ghc-hspec" ,ghc-hspec)
9827 ("ghc-persistent-template" ,ghc-persistent-template)
9828 ("ghc-temporary" ,ghc-temporary)
9829 ("ghc-text" ,ghc-text)))
9830 (home-page
9831 "https://www.yesodweb.com/book/persistent")
9832 (synopsis "Backend for the persistent library using sqlite3")
9833 (description "This Haskell package includes a thin sqlite3 wrapper based
9834 on the direct-sqlite package, as well as the entire C library, so there are no
9835 system dependencies.")
9836 (license license:expat)))
9837
9838 (define-public ghc-email-validate
9839 (package
9840 (name "ghc-email-validate")
9841 (version "2.3.2.1")
9842 (source
9843 (origin
9844 (method url-fetch)
9845 (uri (string-append
9846 "https://hackage.haskell.org/package/"
9847 "email-validate/email-validate-"
9848 version
9849 ".tar.gz"))
9850 (sha256
9851 (base32
9852 "0qvxysiap3r4mi3xff5nsk9qv6diqxfgwj186bypbamzvzlz0lav"))))
9853 (build-system haskell-build-system)
9854 (inputs
9855 `(("ghc-attoparsec" ,ghc-attoparsec)
9856 ("ghc-hspec" ,ghc-hspec)
9857 ("ghc-quickcheck" ,ghc-quickcheck)
9858 ("ghc-doctest" ,ghc-doctest)))
9859 (home-page
9860 "https://github.com/Porges/email-validate-hs")
9861 (synopsis "Email address validator for Haskell")
9862 (description
9863 "This Haskell package provides a validator that can validate an email
9864 address string against RFC 5322.")
9865 (license license:bsd-3)))
9866
9867 (define-public ghc-semigroupoids-5.2.2
9868 (package
9869 (inherit ghc-semigroupoids)
9870 (name "ghc-semigroupoids")
9871 (version "5.2.2")
9872 (source (origin
9873 (method url-fetch)
9874 (uri (string-append "https://hackage.haskell.org/package/"
9875 "semigroupoids-" version "/semigroupoids-"
9876 version ".tar.gz"))
9877 (sha256
9878 (base32
9879 "17i96y4iqj8clcs090lf6k0ij3j16nj14vsfwz0mm9nd6i4gbpp4"))))
9880 (inputs `(("ghc-unordered-containers" ,ghc-unordered-containers)
9881 ,@(package-inputs ghc-semigroupoids)))))
9882
9883 (define-public ghc-bytes
9884 (package
9885 (name "ghc-bytes")
9886 (version "0.15.4")
9887 (source
9888 (origin
9889 (method url-fetch)
9890 (uri
9891 (string-append "https://hackage.haskell.org/package/bytes-"
9892 version "/bytes-"
9893 version ".tar.gz"))
9894 (file-name (string-append name "-" version ".tar.gz"))
9895 (sha256
9896 (base32
9897 "121x3iqlm8pghw8cd9g30cnqbl7jrdpfjxdanmqdqllajw6xivrm"))))
9898 (build-system haskell-build-system)
9899 (inputs `(("ghc-cereal" ,ghc-cereal)
9900 ("cabal-doctest" ,cabal-doctest)
9901 ("ghc-doctest" ,ghc-doctest-0.13)
9902 ("ghc-scientific" ,ghc-scientific)
9903 ("ghc-text" ,ghc-text)
9904 ("ghc-transformers-compat" ,ghc-transformers-compat)
9905 ("ghc-unordered-containers" ,ghc-unordered-containers)
9906 ("ghc-void" ,ghc-void)
9907 ("ghc-vector" ,ghc-vector)))
9908 (synopsis "Serialization between @code{binary} and @code{cereal}")
9909 (description "This package provides a simple compatibility shim that lets
9910 you work with both @code{binary} and @code{cereal} with one chunk of
9911 serialization code.")
9912 (home-page "https://hackage.haskell.org/package/bytes")
9913 (license license:bsd-3)))
9914
9915 (define-public ghc-disk-free-space
9916 (package
9917 (name "ghc-disk-free-space")
9918 (version "0.1.0.1")
9919 (source
9920 (origin
9921 (method url-fetch)
9922 (uri (string-append "https://hackage.haskell.org/package/"
9923 "disk-free-space/disk-free-space-"
9924 version ".tar.gz"))
9925 (sha256
9926 (base32
9927 "07rqj8k1vh3cykq9yidpjxhgh1f7vgmjs6y1nv5kq2217ff4yypi"))))
9928 (build-system haskell-build-system)
9929 (home-page "https://github.com/redneb/disk-free-space")
9930 (synopsis "Retrieve information about disk space usage")
9931 (description "A cross-platform library for retrieving information about
9932 disk space usage.")
9933 (license license:bsd-3)))
9934
9935 (define-public ghc-xdg-basedir
9936 (package
9937 (name "ghc-xdg-basedir")
9938 (version "0.2.2")
9939 (source
9940 (origin
9941 (method url-fetch)
9942 (uri (string-append
9943 "https://hackage.haskell.org/package/xdg-basedir/"
9944 "xdg-basedir-" version ".tar.gz"))
9945 (sha256
9946 (base32
9947 "0azlzaxp2dn4l1nr7shsxah2magk1szf6fx0mv75az00qsjw6qg4"))))
9948 (build-system haskell-build-system)
9949 (home-page "http://github.com/willdonnelly/xdg-basedir")
9950 (synopsis "XDG Base Directory library for Haskell")
9951 (description "This package provides a library implementing the XDG Base Directory spec.")
9952 (license license:bsd-3)))
9953
9954 (define-public ghc-errorcall-eq-instance
9955 (package
9956 (name "ghc-errorcall-eq-instance")
9957 (version "0.3.0")
9958 (source
9959 (origin
9960 (method url-fetch)
9961 (uri (string-append "https://hackage.haskell.org/package/"
9962 "errorcall-eq-instance/errorcall-eq-instance-"
9963 version ".tar.gz"))
9964 (sha256
9965 (base32
9966 "0hqw82m8bbrxy5vgdwb83bhzdx070ibqrm9rshyja7cb808ahijm"))))
9967 (build-system haskell-build-system)
9968 (inputs
9969 `(("ghc-base-orphans" ,ghc-base-orphans)))
9970 (native-inputs
9971 `(("ghc-quickcheck" ,ghc-quickcheck)
9972 ("ghc-hspec" ,ghc-hspec)
9973 ("hspec-discover" ,hspec-discover)))
9974 (home-page "http://hackage.haskell.org/package/errorcall-eq-instance")
9975 (synopsis "Orphan Eq instance for ErrorCall")
9976 (description
9977 "Prior to @code{base-4.7.0.0} there was no @code{Eq} instance for @code{ErrorCall}.
9978 This package provides an orphan instance.")
9979 (license license:expat)))
9980
9981 (define-public ghc-missingh
9982 (package
9983 (name "ghc-missingh")
9984 (version "1.4.0.1")
9985 (source
9986 (origin
9987 (method url-fetch)
9988 (uri (string-append "https://hackage.haskell.org/package/MissingH/"
9989 "MissingH-" version ".tar.gz"))
9990 (sha256
9991 (base32
9992 "0wcvgrmav480w7nf4bl14yi0jq2yzanysxwzwas9hpb28vyjlgr8"))))
9993 (build-system haskell-build-system)
9994 ;; Tests require the unmaintained testpack package, which depends on the
9995 ;; outdated QuickCheck version 2.7, which can no longer be built with
9996 ;; recent versions of GHC and Haskell libraries.
9997 (arguments '(#:tests? #f))
9998 (inputs
9999 `(("ghc-network" ,ghc-network)
10000 ("ghc-parsec" ,ghc-parsec)
10001 ("ghc-hunit" ,ghc-hunit)
10002 ("ghc-regex-compat" ,ghc-regex-compat)
10003 ("ghc-hslogger" ,ghc-hslogger)
10004 ("ghc-random" ,ghc-random)
10005 ("ghc-old-time" ,ghc-old-time)
10006 ("ghc-old-locale" ,ghc-old-locale)))
10007 (native-inputs
10008 `(("ghc-errorcall-eq-instance" ,ghc-errorcall-eq-instance)
10009 ("ghc-quickcheck" ,ghc-quickcheck)
10010 ("ghc-hunit" ,ghc-hunit)))
10011 (home-page "http://software.complete.org/missingh")
10012 (synopsis "Large utility library")
10013 (description
10014 "MissingH is a library of all sorts of utility functions for Haskell
10015 programmers. It is written in pure Haskell and thus should be extremely
10016 portable and easy to use.")
10017 (license license:bsd-3)))
10018
10019 (define-public ghc-intervalmap
10020 (package
10021 (name "ghc-intervalmap")
10022 (version "0.6.0.0")
10023 (source
10024 (origin
10025 (method url-fetch)
10026 (uri (string-append "https://hackage.haskell.org/package/IntervalMap/"
10027 "IntervalMap-" version ".tar.gz"))
10028 (sha256
10029 (base32
10030 "06hin9wf1by8aqa7820fsi2339bh82184frkwz3jsb9sqa0hszcg"))))
10031 (build-system haskell-build-system)
10032 (native-inputs
10033 `(("ghc-quickcheck" ,ghc-quickcheck)))
10034 (home-page "http://www.chr-breitkopf.de/comp/IntervalMap")
10035 (synopsis "Containers for intervals, with efficient search")
10036 (description
10037 "This package provides ordered containers of intervals, with efficient
10038 search for all keys containing a point or overlapping an interval. See the
10039 example code on the home page for a quick introduction.")
10040 (license license:bsd-3)))
10041
10042 (define-public ghc-operational
10043 (package
10044 (name "ghc-operational")
10045 (version "0.2.3.5")
10046 (source
10047 (origin
10048 (method url-fetch)
10049 (uri (string-append "https://hackage.haskell.org/package/operational/"
10050 "operational-" version ".tar.gz"))
10051 (sha256
10052 (base32
10053 "1x2abg2q9d26h1vzj40r6k7k3gqgappbs4g9d853vvg77837km4i"))))
10054 (build-system haskell-build-system)
10055 (inputs
10056 `(("ghc-random" ,ghc-random)))
10057 (home-page "http://wiki.haskell.org/Operational")
10058 (synopsis "Implementation of difficult monads made easy with operational semantics")
10059 (description
10060 "This library makes it easy to implement monads with tricky control
10061 flow. This is useful for: writing web applications in a sequential style,
10062 programming games with a uniform interface for human and AI players and easy
10063 replay capababilities, implementing fast parser monads, designing monadic
10064 DSLs, etc.")
10065 (license license:bsd-3)))
10066
10067 (define-public ghc-gtk2hs-buildtools
10068 (package
10069 (name "ghc-gtk2hs-buildtools")
10070 (version "0.13.4.0")
10071 (source
10072 (origin
10073 (method url-fetch)
10074 (uri (string-append "https://hackage.haskell.org/package/"
10075 "gtk2hs-buildtools/gtk2hs-buildtools-"
10076 version ".tar.gz"))
10077 (sha256
10078 (base32
10079 "0yg6xmylgpylmnh5g33qwwn5x9bqckdvvv4czqzd9vrr12lnnghg"))))
10080 (build-system haskell-build-system)
10081 (inputs
10082 `(("ghc-random" ,ghc-random)
10083 ("ghc-hashtables" ,ghc-hashtables)))
10084 (native-inputs
10085 `(("ghc-alex" ,ghc-alex)
10086 ("ghc-happy" ,ghc-happy)))
10087 (home-page "http://projects.haskell.org/gtk2hs/")
10088 (synopsis "Tools to build the Gtk2Hs suite of user interface libraries")
10089 (description
10090 "This package provides a set of helper programs necessary to build the
10091 Gtk2Hs suite of libraries. These tools include a modified c2hs binding tool
10092 that is used to generate FFI declarations, a tool to build a type hierarchy
10093 that mirrors the C type hierarchy of GObjects found in glib, and a generator
10094 for signal declarations that are used to call back from C to Haskell. These
10095 tools are not needed to actually run Gtk2Hs programs.")
10096 (license license:gpl2)))
10097
10098 (define-public ghc-chart
10099 (package
10100 (name "ghc-chart")
10101 (version "1.8.3")
10102 (source
10103 (origin
10104 (method url-fetch)
10105 (uri (string-append "https://hackage.haskell.org/package/Chart/"
10106 "Chart-" version ".tar.gz"))
10107 (sha256
10108 (base32
10109 "13s64fhb2pmkdmx5bkgbgcn25qjihs364fvr47a1dw25f804kiy1"))))
10110 (build-system haskell-build-system)
10111 (inputs
10112 `(("ghc-old-locale" ,ghc-old-locale)
10113 ("ghc-lens" ,ghc-lens)
10114 ("ghc-colour" ,ghc-colour)
10115 ("ghc-data-default-class" ,ghc-data-default-class)
10116 ("ghc-operational" ,ghc-operational)
10117 ("ghc-vector" ,ghc-vector)))
10118 (home-page "https://github.com/timbod7/haskell-chart/wiki")
10119 (synopsis "Library for generating 2D charts and plots")
10120 (description
10121 "This package provides a library for generating 2D charts and plots, with
10122 backends provided by the @code{Cairo} and @code{Diagrams} libraries.")
10123 (license license:bsd-3)))
10124
10125 (define-public ghc-wcwidth
10126 (package
10127 (name "ghc-wcwidth")
10128 (version "0.0.2")
10129 (source
10130 (origin
10131 (method url-fetch)
10132 (uri (string-append "https://hackage.haskell.org/package/wcwidth/wcwidth-"
10133 version ".tar.gz"))
10134 (sha256
10135 (base32
10136 "1n1fq7v64b59ajf5g50iqj9sa34wm7s2j3viay0kxpmvlcv8gipz"))))
10137 (build-system haskell-build-system)
10138 (inputs
10139 `(("ghc-setlocale" ,ghc-setlocale)
10140 ("ghc-utf8-string" ,ghc-utf8-string)
10141 ("ghc-attoparsec" ,ghc-attoparsec)))
10142 (home-page "https://github.com/solidsnack/wcwidth/")
10143 (synopsis "Haskell bindings to wcwidth")
10144 (description "This package provides Haskell bindings to your system's
10145 native wcwidth and a command line tool to examine the widths assigned by it.
10146 The command line tool can compile a width table to Haskell code that assigns
10147 widths to the Char type.")
10148 (license license:bsd-3)))
10149
10150 ;;; haskell.scm ends here