gnu: Add ghc-ansi-terminal-0.8.
[jackhill/guix/guix.git] / gnu / packages / haskell.scm
1 ;;; GNU Guix --- Functional package management for GNU
2 ;;; Copyright © 2015, 2016 Federico Beffa <beffa@fbengineering.ch>
3 ;;; Copyright © 2015 Siniša Biđin <sinisa@bidin.eu>
4 ;;; Copyright © 2015 Paul van der Walt <paul@denknerd.org>
5 ;;; Copyright © 2015, 2019 Eric Bavier <bavier@member.fsf.org>
6 ;;; Copyright © 2016, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
7 ;;; Copyright © 2016, 2017 ng0 <ng0@n0.is>
8 ;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
9 ;;; Copyright © 2015, 2016, 2017, 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
10 ;;; Copyright © 2016, 2017 David Craven <david@craven.ch>
11 ;;; Copyright © 2017 Danny Milosavljevic <dannym@scratchpost.org>
12 ;;; Copyright © 2017 Peter Mikkelsen <petermikkelsen10@gmail.com>
13 ;;; Copyright © 2017, 2018 Alex Vong <alexvong1995@gmail.com>
14 ;;; Copyright © 2017 rsiddharth <s@ricketyspace.net>
15 ;;; Copyright © 2017, 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
16 ;;; Copyright © 2018 Tonton <tonton@riseup.net>
17 ;;; Copyright © 2018, 2019 Timothy Sample <samplet@ngyro.com>
18 ;;; Copyright © 2018 Arun Isaac <arunisaac@systemreboot.net>
19 ;;; Copyright © 2018, 2019 Gabriel Hondet <gabrielhondet@gmail.com>
20 ;;; Copyright © 2019 Robert Vollmert <rob@vllmrt.net>
21 ;;;
22 ;;; This file is part of GNU Guix.
23 ;;;
24 ;;; GNU Guix is free software; you can redistribute it and/or modify it
25 ;;; under the terms of the GNU General Public License as published by
26 ;;; the Free Software Foundation; either version 3 of the License, or (at
27 ;;; your option) any later version.
28 ;;;
29 ;;; GNU Guix is distributed in the hope that it will be useful, but
30 ;;; WITHOUT ANY WARRANTY; without even the implied warranty of
31 ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
32 ;;; GNU General Public License for more details.
33 ;;;
34 ;;; You should have received a copy of the GNU General Public License
35 ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
36
37 (define-module (gnu packages haskell)
38 #:use-module (gnu packages)
39 #:use-module (gnu packages base)
40 #:use-module (gnu packages bootstrap)
41 #:use-module (gnu packages check)
42 #:use-module (gnu packages compression)
43 #:use-module (gnu packages elf)
44 #:use-module (gnu packages gcc)
45 #:use-module (gnu packages ghostscript)
46 #:use-module (gnu packages gl)
47 #:use-module (gnu packages graphviz)
48 #:use-module (gnu packages gtk)
49 #:use-module (gnu packages haskell-check)
50 #:use-module (gnu packages haskell-crypto)
51 #:use-module (gnu packages haskell-web)
52 #:use-module (gnu packages libffi)
53 #:use-module (gnu packages linux)
54 #:use-module (gnu packages lisp)
55 #:use-module (gnu packages lua)
56 #:use-module (gnu packages maths)
57 #:use-module (gnu packages multiprecision)
58 #:use-module (gnu packages ncurses)
59 #:use-module (gnu packages pcre)
60 #:use-module (gnu packages perl)
61 #:use-module (gnu packages pkg-config)
62 #:use-module (gnu packages python)
63 #:use-module (gnu packages sdl)
64 #:use-module (gnu packages tls)
65 #:use-module (gnu packages xml)
66 #:use-module (gnu packages xorg)
67 #:use-module (guix build-system gnu)
68 #:use-module (guix build-system haskell)
69 #:use-module (guix download)
70 #:use-module (guix git-download)
71 #:use-module ((guix licenses) #:prefix license:)
72 #:use-module (guix packages)
73 #:use-module (guix utils)
74 #:use-module (ice-9 regex)
75 #:use-module ((srfi srfi-1) #:select (alist-delete)))
76
77 (define-public cl-yale-haskell
78 (let ((commit "85f94c72a16c5f70301dd8db04cde9de2d7dd270")
79 (revision "1"))
80 (package
81 (name "cl-yale-haskell")
82 (version (string-append "2.0.5-" revision "." (string-take commit 9)))
83 (source (origin
84 (method git-fetch)
85 (uri (git-reference
86 (url "https://git.elephly.net/software/yale-haskell.git")
87 (commit commit)))
88 (file-name (string-append "yale-haskell-" commit "-checkout"))
89 (sha256
90 (base32
91 "0bal3m6ryrjamz5p93bhs9rp5msk8k7lpcqr44wd7xs9b9k8w74g"))))
92 (build-system gnu-build-system)
93 (arguments
94 `(#:tests? #f ; no tests
95 ;; Stripping binaries leads to a broken executable lisp system image.
96 #:strip-binaries? #f
97 #:make-flags
98 (list (string-append "PREFIX=" (assoc-ref %outputs "out")))
99 #:phases
100 (modify-phases %standard-phases
101 (replace 'configure
102 (lambda _
103 (setenv "PRELUDE" "./progs/prelude")
104 (setenv "HASKELL_LIBRARY" "./progs/lib")
105 (setenv "PRELUDEBIN" "./progs/prelude/clisp")
106 (setenv "HASKELLPROG" "./bin/clisp-haskell")
107 #t)))))
108 (inputs
109 `(("clisp" ,clisp)))
110 (home-page "https://git.elephly.net/software/yale-haskell.git")
111 (synopsis "Port of the Yale Haskell system to CLISP")
112 (description "This package provides the Yale Haskell system running on
113 top of CLISP.")
114 (license license:bsd-4))))
115
116 (define ghc-bootstrap-x86_64-7.8.4
117 (origin
118 (method url-fetch)
119 (uri
120 "https://www.haskell.org/ghc/dist/7.8.4/ghc-7.8.4-x86_64-unknown-linux-deb7.tar.xz")
121 (sha256
122 (base32
123 "13azsl53xgj20mi1hj9x0xb32vvcvs6cpmvwx6znxhas7blh0bpn"))))
124
125 (define ghc-bootstrap-i686-7.8.4
126 (origin
127 (method url-fetch)
128 (uri
129 "https://www.haskell.org/ghc/dist/7.8.4/ghc-7.8.4-i386-unknown-linux-deb7.tar.xz")
130 (sha256
131 (base32
132 "0wj5s435j0zgww70bj1d3f6wvnnpzlxwvwcyh2qv4qjq5z8j64kg"))))
133
134 ;; 43 tests out of 3965 fail.
135 ;;
136 ;; Most of them do not appear to be serious:
137 ;;
138 ;; - some tests generate files referring to "/bin/sh" and "/bin/ls". I've not
139 ;; figured out how these references are generated.
140 ;;
141 ;; - Some tests allocate more memory than expected (ca. 3% above upper limit)
142 ;;
143 ;; - Some tests try to load unavailable libriries: Control.Concurrent.STM,
144 ;; Data.Vector, Control.Monad.State.
145 ;;
146 ;; - Test posix010 tries to check the existence of a user on the system:
147 ;; getUserEntryForName: does not exist (no such user)
148 (define-public ghc-7
149 (package
150 (name "ghc")
151 (version "7.10.2")
152 (source
153 (origin
154 (method url-fetch)
155 (uri (string-append "https://www.haskell.org/ghc/dist/"
156 version "/" name "-" version "-src.tar.xz"))
157 (sha256
158 (base32
159 "1x8m4rp2v7ydnrz6z9g8x7z3x3d3pxhv2pixy7i7hkbqbdsp7kal"))))
160 (build-system gnu-build-system)
161 (supported-systems '("i686-linux" "x86_64-linux"))
162 (outputs '("out" "doc"))
163 (inputs
164 `(("gmp" ,gmp)
165 ("ncurses" ,ncurses)
166 ("libffi" ,libffi)
167 ("ghc-testsuite"
168 ,(origin
169 (method url-fetch)
170 (uri (string-append
171 "https://www.haskell.org/ghc/dist/"
172 version "/" name "-" version "-testsuite.tar.xz"))
173 (sha256
174 (base32
175 "0qp9da9ar87zbyn6wjgacd2ic1vgzbi3cklxnhsmjqyafv9qaj4b"))))))
176 (native-inputs
177 `(("perl" ,perl)
178 ("python" ,python-2) ; for tests (fails with python-3)
179 ("ghostscript" ,ghostscript) ; for tests
180 ("patchelf" ,patchelf)
181 ;; GHC is built with GHC. Therefore we need bootstrap binaries.
182 ("ghc-binary"
183 ,(if (string-match "x86_64" (or (%current-target-system) (%current-system)))
184 ghc-bootstrap-x86_64-7.8.4
185 ghc-bootstrap-i686-7.8.4))))
186 (arguments
187 `(#:test-target "test"
188 ;; We get a smaller number of test failures by disabling parallel test
189 ;; execution.
190 #:parallel-tests? #f
191
192 ;; The DSOs use $ORIGIN to refer to each other, but (guix build
193 ;; gremlin) doesn't support it yet, so skip this phase.
194 #:validate-runpath? #f
195
196 ;; Don't pass --build=<triplet>, because the configure script
197 ;; auto-detects slightly different triplets for --host and --target and
198 ;; then complains that they don't match.
199 #:build #f
200
201 #:modules ((guix build gnu-build-system)
202 (guix build utils)
203 (guix build rpath)
204 (srfi srfi-26)
205 (srfi srfi-1))
206 #:imported-modules (,@%gnu-build-system-modules
207 (guix build rpath))
208 #:configure-flags
209 (list
210 (string-append "--with-gmp-libraries="
211 (assoc-ref %build-inputs "gmp") "/lib")
212 (string-append "--with-gmp-includes="
213 (assoc-ref %build-inputs "gmp") "/include")
214 "--with-system-libffi"
215 (string-append "--with-ffi-libraries="
216 (assoc-ref %build-inputs "libffi") "/lib")
217 (string-append "--with-ffi-includes="
218 (assoc-ref %build-inputs "libffi") "/include"))
219 ;; FIXME: The user-guide needs dblatex, docbook-xsl and docbook-utils.
220 ;; Currently we do not have the last one.
221 ;; #:make-flags
222 ;; (list "BUILD_DOCBOOK_HTML = YES")
223 #:phases
224 (let* ((ghc-bootstrap-path
225 (string-append (getcwd) "/" ,name "-" ,version "/ghc-bin"))
226 (ghc-bootstrap-prefix
227 (string-append ghc-bootstrap-path "/usr" )))
228 (alist-cons-after
229 'unpack-bin 'unpack-testsuite-and-fix-bins
230 (lambda* (#:key inputs outputs #:allow-other-keys)
231 (with-directory-excursion ".."
232 (copy-file (assoc-ref inputs "ghc-testsuite")
233 "ghc-testsuite.tar.xz")
234 (system* "tar" "xvf" "ghc-testsuite.tar.xz"))
235 (substitute*
236 (list "testsuite/timeout/Makefile"
237 "testsuite/timeout/timeout.py"
238 "testsuite/timeout/timeout.hs"
239 "testsuite/tests/rename/prog006/Setup.lhs"
240 "testsuite/tests/programs/life_space_leak/life.test"
241 "libraries/process/System/Process/Internals.hs"
242 "libraries/unix/cbits/execvpe.c")
243 (("/bin/sh") (which "sh"))
244 (("/bin/rm") "rm"))
245 #t)
246 (alist-cons-after
247 'unpack 'unpack-bin
248 (lambda* (#:key inputs outputs #:allow-other-keys)
249 (mkdir-p ghc-bootstrap-prefix)
250 (with-directory-excursion ghc-bootstrap-path
251 (copy-file (assoc-ref inputs "ghc-binary")
252 "ghc-bin.tar.xz")
253 (zero? (system* "tar" "xvf" "ghc-bin.tar.xz"))))
254 (alist-cons-before
255 'install-bin 'configure-bin
256 (lambda* (#:key inputs outputs #:allow-other-keys)
257 (let* ((binaries
258 (list
259 "./utils/ghc-pwd/dist-install/build/tmp/ghc-pwd"
260 "./utils/hpc/dist-install/build/tmp/hpc"
261 "./utils/haddock/dist/build/tmp/haddock"
262 "./utils/hsc2hs/dist-install/build/tmp/hsc2hs"
263 "./utils/runghc/dist-install/build/tmp/runghc"
264 "./utils/ghc-cabal/dist-install/build/tmp/ghc-cabal"
265 "./utils/hp2ps/dist/build/tmp/hp2ps"
266 "./utils/ghc-pkg/dist-install/build/tmp/ghc-pkg"
267 "./utils/unlit/dist/build/tmp/unlit"
268 "./ghc/stage2/build/tmp/ghc-stage2"))
269 (gmp (assoc-ref inputs "gmp"))
270 (gmp-lib (string-append gmp "/lib"))
271 (gmp-include (string-append gmp "/include"))
272 (ncurses-lib
273 (string-append (assoc-ref inputs "ncurses") "/lib"))
274 (ld-so (string-append (assoc-ref inputs "libc")
275 ,(glibc-dynamic-linker)))
276 (libtinfo-dir
277 (string-append ghc-bootstrap-prefix
278 "/lib/ghc-7.8.4/terminfo-0.4.0.0")))
279 (with-directory-excursion
280 (string-append ghc-bootstrap-path "/ghc-7.8.4")
281 (setenv "CONFIG_SHELL" (which "bash"))
282 (setenv "LD_LIBRARY_PATH" gmp-lib)
283 ;; The binaries have "/lib64/ld-linux-x86-64.so.2" hardcoded.
284 (for-each
285 (cut system* "patchelf" "--set-interpreter" ld-so <>)
286 binaries)
287 ;; The binaries include a reference to libtinfo.so.5 which
288 ;; is a subset of libncurses.so.5. We create a symlink in a
289 ;; directory included in the bootstrap binaries rpath.
290 (mkdir-p libtinfo-dir)
291 (symlink
292 (string-append ncurses-lib "/libncursesw.so."
293 ;; Extract "6.0" from "6.0-20170930" if a
294 ;; dash-separated version tag exists.
295 ,(let* ((v (package-version ncurses))
296 (d (or (string-index v #\-)
297 (string-length v))))
298 (version-major+minor (string-take v d))))
299 (string-append libtinfo-dir "/libtinfo.so.5"))
300
301 (setenv "PATH"
302 (string-append (getenv "PATH") ":"
303 ghc-bootstrap-prefix "/bin"))
304 (system*
305 (string-append (getcwd) "/configure")
306 (string-append "--prefix=" ghc-bootstrap-prefix)
307 (string-append "--with-gmp-libraries=" gmp-lib)
308 (string-append "--with-gmp-includes=" gmp-include)))))
309 (alist-cons-before
310 'configure 'install-bin
311 (lambda* (#:key inputs outputs #:allow-other-keys)
312 (with-directory-excursion
313 (string-append ghc-bootstrap-path "/ghc-7.8.4")
314 (zero? (system* "make" "install"))))
315 %standard-phases)))))))
316 (native-search-paths (list (search-path-specification
317 (variable "GHC_PACKAGE_PATH")
318 (files (list
319 (string-append "lib/ghc-" version)))
320 (file-pattern ".*\\.conf\\.d$")
321 (file-type 'directory))))
322 (home-page "https://www.haskell.org/ghc")
323 (synopsis "The Glasgow Haskell Compiler")
324 (description
325 "The Glasgow Haskell Compiler (GHC) is a state-of-the-art compiler and
326 interactive environment for the functional language Haskell.")
327 (license license:bsd-3)))
328
329 (define-public ghc-8.0
330 (package
331 (name "ghc")
332 (version "8.0.2")
333 (source
334 (origin
335 (method url-fetch)
336 (uri (string-append "https://www.haskell.org/ghc/dist/"
337 version "/" name "-" version "-src.tar.xz"))
338 (sha256
339 (base32 "1c8qc4fhkycynk4g1f9hvk53dj6a1vvqi6bklqznns6hw59m8qhi"))
340 (patches
341 (search-patches
342 "ghc-dont-pass-linker-flags-via-response-files.patch"
343 "ghc-8.0-fall-back-to-madv_dontneed.patch"))))
344 (build-system gnu-build-system)
345 (supported-systems '("i686-linux" "x86_64-linux"))
346 (outputs '("out" "doc"))
347 (inputs
348 `(("gmp" ,gmp)
349 ("ncurses" ,ncurses)
350 ("libffi" ,libffi)
351 ("ghc-testsuite"
352 ,(origin
353 (method url-fetch)
354 (uri (string-append
355 "https://www.haskell.org/ghc/dist/"
356 version "/" name "-" version "-testsuite.tar.xz"))
357 (sha256
358 (base32 "1wjc3x68l305bl1h1ijd3yhqp2vqj83lkp3kqbr94qmmkqlms8sj"))))))
359 (native-inputs
360 `(("perl" ,perl)
361 ("python" ,python-2) ; for tests
362 ("ghostscript" ,ghostscript) ; for tests
363 ;; GHC is built with GHC.
364 ("ghc-bootstrap" ,ghc-7)))
365 (arguments
366 `(#:test-target "test"
367 ;; We get a smaller number of test failures by disabling parallel test
368 ;; execution.
369 #:parallel-tests? #f
370
371 ;; The DSOs use $ORIGIN to refer to each other, but (guix build
372 ;; gremlin) doesn't support it yet, so skip this phase.
373 #:validate-runpath? #f
374
375 ;; Don't pass --build=<triplet>, because the configure script
376 ;; auto-detects slightly different triplets for --host and --target and
377 ;; then complains that they don't match.
378 #:build #f
379
380 #:configure-flags
381 (list
382 (string-append "--with-gmp-libraries="
383 (assoc-ref %build-inputs "gmp") "/lib")
384 (string-append "--with-gmp-includes="
385 (assoc-ref %build-inputs "gmp") "/include")
386 "--with-system-libffi"
387 (string-append "--with-ffi-libraries="
388 (assoc-ref %build-inputs "libffi") "/lib")
389 (string-append "--with-ffi-includes="
390 (assoc-ref %build-inputs "libffi") "/include")
391 (string-append "--with-curses-libraries="
392 (assoc-ref %build-inputs "ncurses") "/lib")
393 (string-append "--with-curses-includes="
394 (assoc-ref %build-inputs "ncurses") "/include"))
395 #:phases
396 (modify-phases %standard-phases
397 (add-after 'unpack 'unpack-testsuite
398 (lambda* (#:key inputs #:allow-other-keys)
399 (with-directory-excursion ".."
400 (copy-file (assoc-ref inputs "ghc-testsuite")
401 "ghc-testsuite.tar.xz")
402 (zero? (system* "tar" "xvf" "ghc-testsuite.tar.xz")))))
403 (add-before 'build 'fix-lib-paths
404 (lambda _
405 (substitute*
406 (list "libraries/process/System/Process/Posix.hs"
407 "libraries/process/tests/process001.hs"
408 "libraries/process/tests/process002.hs"
409 "libraries/unix/cbits/execvpe.c")
410 (("/bin/sh") (which "sh"))
411 (("/bin/ls") (which "ls")))
412 #t))
413 (add-before 'build 'fix-environment
414 (lambda _
415 (unsetenv "GHC_PACKAGE_PATH")
416 (setenv "CONFIG_SHELL" (which "bash"))
417 #t))
418 (add-before 'check 'fix-testsuite
419 (lambda _
420 (substitute*
421 (list "testsuite/timeout/Makefile"
422 "testsuite/timeout/timeout.py"
423 "testsuite/timeout/timeout.hs"
424 "testsuite/tests/programs/life_space_leak/life.test")
425 (("/bin/sh") (which "sh"))
426 (("/bin/rm") "rm"))
427 #t)))))
428 (native-search-paths (list (search-path-specification
429 (variable "GHC_PACKAGE_PATH")
430 (files (list
431 (string-append "lib/ghc-" version)))
432 (file-pattern ".*\\.conf\\.d$")
433 (file-type 'directory))))
434 (home-page "https://www.haskell.org/ghc")
435 (synopsis "The Glasgow Haskell Compiler")
436 (description
437 "The Glasgow Haskell Compiler (GHC) is a state-of-the-art compiler and
438 interactive environment for the functional language Haskell.")
439 (license license:bsd-3)))
440
441 (define-public ghc-8
442 (package (inherit ghc-8.0)
443 (name "ghc")
444 (version "8.4.3")
445 (source
446 (origin
447 (method url-fetch)
448 (uri (string-append "https://www.haskell.org/ghc/dist/"
449 version "/" name "-" version "-src.tar.xz"))
450 (sha256
451 (base32 "1mk046vb561j75saz05rghhbkps46ym5aci4264dwc2qk3dayixf"))))
452 (inputs
453 `(("gmp" ,gmp)
454 ("ncurses" ,ncurses)
455 ("libffi" ,libffi)
456 ("target-binutils" ,binutils)
457 ("target-gcc" ,gcc)
458 ("target-ld-wrapper" ,(make-ld-wrapper "ld-wrapper"
459 #:binutils binutils))))
460 (native-inputs
461 `(("perl" ,perl)
462 ("python" ,python) ; for tests
463 ("ghostscript" ,ghostscript) ; for tests
464 ;; GHC 8.4.3 is built with GHC 8.
465 ("ghc-bootstrap" ,ghc-8.0)
466 ("ghc-testsuite"
467 ,(origin
468 (method url-fetch)
469 (uri (string-append
470 "https://www.haskell.org/ghc/dist/"
471 version "/" name "-" version "-testsuite.tar.xz"))
472 (sha256
473 (base32
474 "1z55b1z0m3plqd2d1ks6w5wvx7igm7zsk3i4v7cms003z0as0hzz"))))))
475 (arguments
476 `(#:test-target "test"
477 ;; We get a smaller number of test failures by disabling parallel test
478 ;; execution.
479 #:parallel-tests? #f
480
481 ;; The DSOs use $ORIGIN to refer to each other, but (guix build
482 ;; gremlin) doesn't support it yet, so skip this phase.
483 #:validate-runpath? #f
484
485 ;; Don't pass --build=<triplet>, because the configure script
486 ;; auto-detects slightly different triplets for --host and --target and
487 ;; then complains that they don't match.
488 #:build #f
489
490 #:configure-flags
491 (list
492 (string-append "--with-gmp-libraries="
493 (assoc-ref %build-inputs "gmp") "/lib")
494 (string-append "--with-gmp-includes="
495 (assoc-ref %build-inputs "gmp") "/include")
496 "--with-system-libffi"
497 (string-append "--with-ffi-libraries="
498 (assoc-ref %build-inputs "libffi") "/lib")
499 (string-append "--with-ffi-includes="
500 (assoc-ref %build-inputs "libffi") "/include")
501 (string-append "--with-curses-libraries="
502 (assoc-ref %build-inputs "ncurses") "/lib")
503 (string-append "--with-curses-includes="
504 (assoc-ref %build-inputs "ncurses") "/include"))
505 #:phases
506 (modify-phases %standard-phases
507 (add-after 'unpack 'unpack-testsuite
508 (lambda* (#:key inputs #:allow-other-keys)
509 (invoke "tar" "xvf"
510 (assoc-ref inputs "ghc-testsuite")
511 "--strip-components=1")
512 #t))
513 ;; This phase patches the 'ghc-pkg' command so that it sorts the list
514 ;; of packages in the binary cache it generates.
515 (add-before 'build 'fix-ghc-pkg-nondeterminism
516 (lambda _
517 (substitute* "utils/ghc-pkg/Main.hs"
518 (("confs = map \\(path </>\\) \\$ filter \\(\".conf\" `isSuffixOf`\\) fs")
519 "confs = map (path </>) $ filter (\".conf\" `isSuffixOf`) (sort fs)"))
520 #t))
521 (add-after 'unpack-testsuite 'fix-shell-wrappers
522 (lambda _
523 (substitute* '("driver/ghci/ghc.mk"
524 "utils/mkdirhier/ghc.mk"
525 "rules/shell-wrapper.mk")
526 (("echo '#!/bin/sh'")
527 (format #f "echo '#!~a'" (which "sh"))))
528 #t))
529 ;; This is necessary because the configure system no longer uses
530 ;; “AC_PATH_” but “AC_CHECK_”, setting the variables to just the
531 ;; plain command names.
532 (add-before 'configure 'set-target-programs
533 (lambda* (#:key inputs #:allow-other-keys)
534 (let ((binutils (assoc-ref inputs "target-binutils"))
535 (gcc (assoc-ref inputs "target-gcc"))
536 (ld-wrapper (assoc-ref inputs "target-ld-wrapper")))
537 (setenv "CC" (string-append gcc "/bin/gcc"))
538 (setenv "CXX" (string-append gcc "/bin/g++"))
539 (setenv "LD" (string-append ld-wrapper "/bin/ld"))
540 (setenv "NM" (string-append binutils "/bin/nm"))
541 (setenv "RANLIB" (string-append binutils "/bin/ranlib"))
542 (setenv "STRIP" (string-append binutils "/bin/strip"))
543 ;; The 'ar' command does not follow the same pattern.
544 (setenv "fp_prog_ar" (string-append binutils "/bin/ar"))
545 #t)))
546 (add-before 'build 'fix-references
547 (lambda _
548 (substitute* '("testsuite/timeout/Makefile"
549 "testsuite/timeout/timeout.py"
550 "testsuite/timeout/timeout.hs"
551 "testsuite/tests/programs/life_space_leak/life.test"
552 ;; libraries
553 "libraries/process/System/Process/Posix.hs"
554 "libraries/process/tests/process001.hs"
555 "libraries/process/tests/process002.hs"
556 "libraries/unix/cbits/execvpe.c")
557 (("/bin/sh") (which "sh"))
558 (("/bin/ls") (which "ls"))
559 (("/bin/rm") "rm"))
560 #t))
561 (add-before 'build 'fix-environment
562 (lambda _
563 (unsetenv "GHC_PACKAGE_PATH")
564 (setenv "CONFIG_SHELL" (which "bash"))
565 #t)))))
566 (native-search-paths (list (search-path-specification
567 (variable "GHC_PACKAGE_PATH")
568 (files (list
569 (string-append "lib/ghc-" version)))
570 (file-pattern ".*\\.conf\\.d$")
571 (file-type 'directory))))))
572
573 (define-public ghc ghc-8)
574
575 (define-public ghc-hostname
576 (package
577 (name "ghc-hostname")
578 (version "1.0")
579 (source
580 (origin
581 (method url-fetch)
582 (uri (string-append "https://hackage.haskell.org/package/hostname/"
583 "hostname-" version ".tar.gz"))
584 (sha256
585 (base32
586 "0p6gm4328946qxc295zb6vhwhf07l1fma82vd0siylnsnsqxlhwv"))))
587 (build-system haskell-build-system)
588 (home-page "https://hackage.haskell.org/package/hostname")
589 (synopsis "Hostname in Haskell")
590 (description "Network.HostName is a simple package providing a means to
591 determine the hostname.")
592 (license license:bsd-3)))
593
594 (define-public ghc-convertible
595 (package
596 (name "ghc-convertible")
597 (version "1.1.1.0")
598 (source
599 (origin
600 (method url-fetch)
601 (uri (string-append "https://hackage.haskell.org/package/convertible/"
602 "convertible-" version ".tar.gz"))
603 (sha256
604 (base32
605 "0v18ap1mccnndgxmbfgyjdicg8jlss01bd5fq8a576dr0h4sgyg9"))))
606 (build-system haskell-build-system)
607 (inputs
608 `(("ghc-old-time" ,ghc-old-time)
609 ("ghc-old-locale" ,ghc-old-locale)
610 ("ghc-text" ,ghc-text)))
611 (home-page "https://hackage.haskell.org/package/convertible")
612 (synopsis "Typeclasses and instances for converting between types")
613 (description
614 "This package provides a typeclass with a single function that is
615 designed to help convert between different types: numeric values, dates and
616 times, and the like. The conversions perform bounds checking and return a
617 pure @code{Either} value. This means that you need not remember which specific
618 function performs the conversion you desire.")
619 (license license:bsd-3)))
620
621 (define-public ghc-double-conversion
622 (package
623 (name "ghc-double-conversion")
624 (version "2.0.2.0")
625 (source
626 (origin
627 (method url-fetch)
628 (uri (string-append "https://hackage.haskell.org/package/"
629 "double-conversion/double-conversion-"
630 version ".tar.gz"))
631 (sha256
632 (base32
633 "0sx2kc1gw72mjvd8vph8bbjw5whfxfv92rsdhjg1c0al75rf3ka4"))))
634 (build-system haskell-build-system)
635 (inputs `(("ghc-text" ,ghc-text)))
636 (native-inputs
637 `(("ghc-hunit" ,ghc-hunit)
638 ("ghc-test-framework" ,ghc-test-framework)
639 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
640 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
641 (home-page "https://github.com/bos/double-conversion")
642 (synopsis "Fast conversion between double precision floating point and text")
643 (description
644 "This package provides a library that performs fast, accurate conversion
645 between double precision floating point and text.")
646 (license license:bsd-3)))
647
648 (define-public ghc-libxml
649 (package
650 (name "ghc-libxml")
651 (version "0.1.1")
652 (source
653 (origin
654 (method url-fetch)
655 (uri (string-append "https://hackage.haskell.org/package/libxml/"
656 "libxml-" version ".tar.gz"))
657 (sha256
658 (base32
659 "01zvk86kg726lf2vnlr7dxiz7g3xwi5a4ak9gcfbwyhynkzjmsfi"))))
660 (build-system haskell-build-system)
661 (inputs
662 `(("libxml2" ,libxml2)))
663 (arguments
664 `(#:configure-flags
665 `(,(string-append "--extra-include-dirs="
666 (assoc-ref %build-inputs "libxml2")
667 "/include/libxml2"))))
668 (home-page "https://hackage.haskell.org/package/libxml")
669 (synopsis "Haskell bindings to libxml2")
670 (description
671 "This library provides minimal Haskell binding to libxml2.")
672 (license license:bsd-3)))
673
674 (define-public ghc-prelude-extras
675 (package
676 (name "ghc-prelude-extras")
677 (version "0.4.0.3")
678 (source
679 (origin
680 (method url-fetch)
681 (uri (string-append
682 "https://hackage.haskell.org/package/prelude-extras/prelude-extras-"
683 version
684 ".tar.gz"))
685 (sha256
686 (base32
687 "0xzqdf3nl2h0ra4gnslm1m1nsxlsgc0hh6ky3vn578vh11zhifq9"))))
688 (build-system haskell-build-system)
689 (home-page "https://github.com/ekmett/prelude-extras")
690 (synopsis "Higher order versions of Prelude classes")
691 (description "This library provides higher order versions of
692 @code{Prelude} classes to ease programming with polymorphic recursion and
693 reduce @code{UndecidableInstances}.")
694 (license license:bsd-3)))
695
696 (define-public ghc-data-default
697 (package
698 (name "ghc-data-default")
699 (version "0.7.1.1")
700 (source
701 (origin
702 (method url-fetch)
703 (uri (string-append
704 "https://hackage.haskell.org/package/data-default/data-default-"
705 version
706 ".tar.gz"))
707 (sha256
708 (base32 "04d5n8ybmcxba9qb6h389w9zfq1lvj81b82jh6maqp6pkhkmvydh"))))
709 (build-system haskell-build-system)
710 (inputs
711 `(("ghc-data-default-class"
712 ,ghc-data-default-class)
713 ("ghc-data-default-instances-base"
714 ,ghc-data-default-instances-base)
715 ("ghc-data-default-instances-containers"
716 ,ghc-data-default-instances-containers)
717 ("ghc-data-default-instances-dlist"
718 ,ghc-data-default-instances-dlist)
719 ("ghc-data-default-instances-old-locale"
720 ,ghc-data-default-instances-old-locale)))
721 (home-page "https://hackage.haskell.org/package/data-default")
722 (synopsis "Types with default values")
723 (description
724 "This package defines a class for types with a default value, and
725 provides instances for types from the base, containers, dlist and old-locale
726 packages.")
727 (license license:bsd-3)))
728
729 (define-public ghc-data-default-class
730 (package
731 (name "ghc-data-default-class")
732 (version "0.1.2.0")
733 (source
734 (origin
735 (method url-fetch)
736 (uri (string-append
737 "https://hackage.haskell.org/package/data-default-class/"
738 "data-default-class-" version ".tar.gz"))
739 (sha256
740 (base32 "0miyjz8d4jyvqf2vp60lyfbnflx6cj2k8apmm9ly1hq0y0iv80ag"))))
741 (build-system haskell-build-system)
742 (home-page "https://hackage.haskell.org/package/data-default-class")
743 (synopsis "Types with default values")
744 (description
745 "This package defines a class for types with default values.")
746 (license license:bsd-3)))
747
748 (define-public ghc-data-default-instances-base
749 (package
750 (name "ghc-data-default-instances-base")
751 (version "0.1.0.1")
752 (source
753 (origin
754 (method url-fetch)
755 (uri (string-append
756 "https://hackage.haskell.org/package/"
757 "data-default-instances-base/"
758 "data-default-instances-base-" version ".tar.gz"))
759 (sha256
760 (base32 "0ym1sw3ssdzzifxxhh76qlv8kkmb2iclc158incv1dklyr9y8kw4"))))
761 (build-system haskell-build-system)
762 (inputs
763 `(("ghc-data-default-class" ,ghc-data-default-class)))
764 (home-page "https://hackage.haskell.org/package/data-default-instances-base")
765 (synopsis "Default instances for types in base")
766 (description
767 "This package provides default instances for types from the base
768 package.")
769 (license license:bsd-3)))
770
771 (define-public ghc-data-default-instances-containers
772 (package
773 (name "ghc-data-default-instances-containers")
774 (version "0.0.1")
775 (source
776 (origin
777 (method url-fetch)
778 (uri (string-append
779 "https://hackage.haskell.org/package/"
780 "data-default-instances-containers/"
781 "data-default-instances-containers-" version ".tar.gz"))
782 (sha256
783 (base32 "06h8xka031w752a7cjlzghvr8adqbl95xj9z5zc1b62w02phfpm5"))))
784 (build-system haskell-build-system)
785 (inputs
786 `(("ghc-data-default-class" ,ghc-data-default-class)))
787 (home-page "https://hackage.haskell.org/package/data-default-instances-containers")
788 (synopsis "Default instances for types in containers")
789 (description "Provides default instances for types from the containers
790 package.")
791 (license license:bsd-3)))
792
793 (define-public ghc-data-default-instances-dlist
794 (package
795 (name "ghc-data-default-instances-dlist")
796 (version "0.0.1")
797 (source
798 (origin
799 (method url-fetch)
800 (uri (string-append
801 "https://hackage.haskell.org/package/"
802 "data-default-instances-dlist/"
803 "data-default-instances-dlist-" version ".tar.gz"))
804 (sha256
805 (base32 "0narkdqiprhgayjiawrr4390h4rq4pl2pb6mvixbv2phrc8kfs3x"))))
806 (build-system haskell-build-system)
807 (inputs
808 `(("ghc-data-default-class" ,ghc-data-default-class)
809 ("ghc-dlist" ,ghc-dlist)))
810 (home-page "https://hackage.haskell.org/package/data-default-instances-dlist")
811 (synopsis "Default instances for types in dlist")
812 (description "Provides default instances for types from the dlist
813 package.")
814 (license license:bsd-3)))
815
816 (define-public ghc-code-page
817 (package
818 (name "ghc-code-page")
819 (version "0.1.3")
820 (source
821 (origin
822 (method url-fetch)
823 (uri (string-append
824 "https://hackage.haskell.org/package/code-page/code-page-"
825 version ".tar.gz"))
826 (sha256
827 (base32
828 "1491frk4jx6dlhifky9dvcxbsbcfssrz979a5hp5zn061rh8cp76"))))
829 (build-system haskell-build-system)
830 (home-page "https://github.com/RyanGlScott/code-page")
831 (synopsis "Windows code page library for Haskell")
832 (description "A cross-platform library with functions for adjusting
833 code pages on Windows. On all other operating systems, the library does
834 nothing.")
835 (license license:bsd-3)))
836
837 (define-public ghc-libffi
838 (package
839 (name "ghc-libffi")
840 (version "0.1")
841 (source
842 (origin
843 (method url-fetch)
844 (uri (string-append "https://hackage.haskell.org/package/"
845 "libffi/libffi-" version ".tar.gz"))
846 (sha256
847 (base32
848 "0g7jnhng3j7z5517aaqga0144aamibsbpgm3yynwyfzkq1kp0f28"))))
849 (build-system haskell-build-system)
850 (native-inputs `(("pkg-config" ,pkg-config)))
851 (inputs `(("libffi" ,libffi)))
852 (home-page "http://hackage.haskell.org/package/libffi")
853 (synopsis "Haskell binding to libffi")
854 (description
855 "A binding to libffi, allowing C functions of types only known at runtime
856 to be called from Haskell.")
857 (license license:bsd-3)))
858
859 (define-public ghc-newtype-generics
860 (package
861 (name "ghc-newtype-generics")
862 (version "0.5.3")
863 (source
864 (origin
865 (method url-fetch)
866 (uri (string-append "https://hackage.haskell.org/package/"
867 "newtype-generics/newtype-generics-"
868 version ".tar.gz"))
869 (sha256
870 (base32
871 "0igyisw2djg19v9vkna1rwf47k97mvkvk4bbkmswznvbm00z15gj"))))
872 (build-system haskell-build-system)
873 (native-inputs
874 `(("ghc-hspec" ,ghc-hspec)
875 ("hspec-discover" ,hspec-discover)))
876 (home-page "http://github.com/sjakobi/newtype-generics")
877 (synopsis "Typeclass and set of functions for working with newtypes")
878 (description "The @code{Newtype} typeclass represents the packing and
879 unpacking of a newtype, and allows you to operate under that newtype with
880 functions such as @code{ala}. Generics support was added in version 0.4,
881 making this package a full replacement for the original newtype package,
882 and an alternative to newtype-th.")
883 (license license:bsd-3)))
884
885 (define-public ghc-memotrie
886 (package
887 (name "ghc-memotrie")
888 (version "0.6.9")
889 (source
890 (origin
891 (method url-fetch)
892 (uri (string-append
893 "https://hackage.haskell.org/package/MemoTrie/MemoTrie-"
894 version
895 ".tar.gz"))
896 (sha256
897 (base32
898 "157p0pi6rrq74a35mq6zkkycv4ah7xhkbrcmnkb9xf7pznw4aq0x"))))
899 (build-system haskell-build-system)
900 (inputs
901 `(("ghc-newtype-generics" ,ghc-newtype-generics)))
902 (home-page "https://github.com/conal/MemoTrie")
903 (synopsis "Trie-based memo functions")
904 (description "This package provides a functional library for creating
905 efficient memo functions using tries.")
906 (license license:bsd-3)))
907
908 (define-public ghc-tree-diff
909 (package
910 (name "ghc-tree-diff")
911 (version "0.0.1")
912 (source
913 (origin
914 (method url-fetch)
915 (uri (string-append
916 "https://hackage.haskell.org/package/tree-diff/tree-diff-"
917 version
918 ".tar.gz"))
919 (sha256
920 (base32
921 "049v44c520jy3icxlnrvbdblh3mjmvd7m6qmkzxbzkf02x63xqmz"))))
922 (build-system haskell-build-system)
923 (arguments
924 `(#:cabal-revision
925 ("4" "1rqxxyj6hqllahs11693g855cxz8mgnb490s7j1ksd300i5xgjsp")
926 #:phases
927 (modify-phases %standard-phases
928 (add-before 'configure 'update-constraints
929 (lambda _
930 (substitute* "tree-diff.cabal"
931 (("trifecta >=1\\.7\\.1\\.1 && <1\\.8")
932 "trifecta >=1.7.1.1 && <=2")))))))
933 (inputs
934 `(("ghc-aeson" ,ghc-aeson)
935 ("ghc-ansi-wl-pprint" ,ghc-ansi-wl-pprint)
936 ("ghc-ansi-terminal" ,ghc-ansi-terminal)
937 ("ghc-base-compat" ,ghc-base-compat)
938 ("ghc-generics-sop" ,ghc-generics-sop)
939 ("ghc-hashable" ,ghc-hashable)
940 ("ghc-memotrie" ,ghc-memotrie)
941 ("ghc-parsec" ,ghc-parsec)
942 ("ghc-parsers" ,ghc-parsers)
943 ("ghc-quickcheck" ,ghc-quickcheck)
944 ("ghc-scientific" ,ghc-scientific)
945 ("ghc-tagged" ,ghc-tagged)
946 ("ghc-text" ,ghc-text)
947 ("ghc-unordered-containers" ,ghc-unordered-containers)
948 ("ghc-uuid-types" ,ghc-uuid-types)
949 ("ghc-vector" ,ghc-vector)))
950 (native-inputs
951 `(("ghc-base-compat" ,ghc-base-compat)
952 ("ghc-quickcheck" ,ghc-quickcheck)
953 ("ghc-ansi-terminal" ,ghc-ansi-terminal)
954 ("ghc-ansi-wl-pprint" ,ghc-ansi-wl-pprint)
955 ("ghc-parsec" ,ghc-parsec)
956 ("ghc-trifecta" ,ghc-trifecta)
957 ("ghc-tasty" ,ghc-tasty)
958 ("ghc-tasty-golden" ,ghc-tasty-golden)
959 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
960 (home-page "https://github.com/phadej/tree-diff")
961 (synopsis "Compute difference between (expression) trees")
962 (description "This Haskell library provides a function for computing
963 the difference between (expression) trees. It also provides a way to
964 compute the difference between arbitrary abstract datatypes (ADTs) using
965 @code{Generics}-derivable helpers.")
966 (license license:bsd-3)))
967
968 (define-public ghc-haddock-library
969 (package
970 (name "ghc-haddock-library")
971 (version "1.5.0.1")
972 (source
973 (origin
974 (method url-fetch)
975 (uri (string-append
976 "https://hackage.haskell.org/package/haddock-library/haddock-library-"
977 version
978 ".tar.gz"))
979 (sha256
980 (base32
981 "1cmbg8l5xrwpliclwy3l057raypjqy0hsg1h1743ahaj8gq10b7z"))
982 (patches (search-patches
983 "ghc-haddock-library-unbundle.patch"))
984 (modules '((guix build utils)))
985 (snippet '(begin
986 (delete-file-recursively "vendor")
987 #t))))
988 (build-system haskell-build-system)
989 (arguments
990 `(#:phases
991 (modify-phases %standard-phases
992 (add-before 'configure 'relax-test-suite-dependencies
993 (lambda _
994 (substitute* "haddock-library.cabal"
995 (("base-compat\\s*\\^>= 0\\.9\\.3") "base-compat")
996 (("hspec\\s*\\^>= 2\\.4\\.4") "hspec"))))
997 ;; The release tarball does not contain the "fixtures/examples"
998 ;; directory, which is required for testing. In the upstream
999 ;; repository, the directory exists and is populated. Here, we
1000 ;; create an empty directory to placate the tests.
1001 (add-before 'check 'add-examples-directory
1002 (lambda _
1003 (mkdir "fixtures/examples")
1004 #t)))))
1005 (native-inputs
1006 `(("ghc-base-compat" ,ghc-base-compat)
1007 ("ghc-hspec" ,ghc-hspec)
1008 ("ghc-optparse-applicative" ,ghc-optparse-applicative)
1009 ("ghc-quickcheck" ,ghc-quickcheck)
1010 ("ghc-tree-diff" ,ghc-tree-diff)
1011 ("hspec-discover" ,hspec-discover)))
1012 (home-page "https://www.haskell.org/haddock/")
1013 (synopsis "Library exposing some functionality of Haddock")
1014 (description
1015 "Haddock is a documentation-generation tool for Haskell libraries. These
1016 modules expose some functionality of it without pulling in the GHC dependency.
1017 Please note that the API is likely to change so specify upper bounds in your
1018 project if you can't release often. For interacting with Haddock itself, see
1019 the ‘haddock’ package.")
1020 (license license:bsd-3)))
1021
1022 (define-public ghc-haddock-api
1023 (package
1024 (name "ghc-haddock-api")
1025 (version "2.19.0.1")
1026 (source
1027 (origin
1028 (method url-fetch)
1029 (uri (string-append
1030 "https://hackage.haskell.org/package/haddock-api/haddock-api-"
1031 version
1032 ".tar.gz"))
1033 (sha256
1034 (base32
1035 "0c6i7sljp7myz25d90gyw68a90i5jcrkajkxcciikp2hjirfaas3"))))
1036 (build-system haskell-build-system)
1037 (arguments
1038 `(#:phases
1039 (modify-phases %standard-phases
1040 (add-before 'configure 'update-constraints
1041 (lambda _
1042 (substitute* "haddock-api.cabal"
1043 (("Cabal \\^>= 2\\.0\\.0")
1044 "Cabal ^>= 2.2.0")
1045 (("hspec \\^>= 2\\.4\\.4")
1046 "hspec >= 2.4.4 && < 2.6")))))))
1047 (inputs
1048 `(("ghc-paths" ,ghc-paths)
1049 ("ghc-haddock-library" ,ghc-haddock-library)))
1050 (native-inputs
1051 `(("ghc-quickcheck" ,ghc-quickcheck)
1052 ("ghc-hspec" ,ghc-hspec)
1053 ("hspec-discover" ,hspec-discover)))
1054 (home-page "https://www.haskell.org/haddock/")
1055 (synopsis "API for documentation-generation tool Haddock")
1056 (description "This package provides an API to Haddock, the
1057 documentation-generation tool for Haskell libraries.")
1058 (license license:bsd-3)))
1059
1060 (define-public ghc-haddock-test
1061 (package
1062 (name "ghc-haddock-test")
1063 (version "0.0.1")
1064 (source
1065 (origin
1066 (method url-fetch)
1067 (uri (string-append "https://hackage.haskell.org/package/"
1068 "haddock-test/haddock-test-"
1069 version ".tar.gz"))
1070 (sha256
1071 (base32
1072 "1ax8fnfrwx66csj952f3virxzapipan9da7z5l1zc12nqkifbs7w"))))
1073 (build-system haskell-build-system)
1074 (inputs
1075 `(("ghc-xml" ,ghc-xml)
1076 ("ghc-syb" ,ghc-syb)))
1077 (home-page "http://www.haskell.org/haddock/")
1078 (synopsis "Test utilities for Haddock")
1079 (description "This package provides test utilities for Haddock.")
1080 (license license:bsd-3)))
1081
1082 (define-public ghc-haddock
1083 (package
1084 (name "ghc-haddock")
1085 (version "2.19.0.1")
1086 (source
1087 (origin
1088 (method url-fetch)
1089 (uri (string-append
1090 "https://hackage.haskell.org/package/haddock/haddock-"
1091 version
1092 ".tar.gz"))
1093 (sha256
1094 (base32
1095 "1g1j9j0hf2yhyyh0gwz6bzbvfvliqz9x8a8hnkmwghm7w3xa6sb7"))))
1096 (build-system haskell-build-system)
1097 (arguments
1098 `(#:phases
1099 (modify-phases %standard-phases
1100 ;; There are four test suites that require the ghc-haddock-test
1101 ;; package, which no longer builds with GHC 8.4.3. This phase
1102 ;; removes these four test suites from the Cabal file, so that we
1103 ;; do not need ghc-haddock-test as an input.
1104 (add-before 'configure 'remove-haddock-test-test-suites
1105 (lambda _
1106 (use-modules (ice-9 rdelim))
1107 (with-atomic-file-replacement "haddock.cabal"
1108 (lambda (in out)
1109 (let loop ((line (read-line in 'concat)) (deleting? #f))
1110 (cond
1111 ((eof-object? line) #t)
1112 ((string-every char-set:whitespace line)
1113 (unless deleting? (display line out))
1114 (loop (read-line in 'concat) #f))
1115 ((member line '("test-suite html-test\n"
1116 "test-suite hypsrc-test\n"
1117 "test-suite latex-test\n"
1118 "test-suite hoogle-test\n"))
1119 (loop (read-line in 'concat) #t))
1120 (else
1121 (unless deleting? (display line out))
1122 (loop (read-line in 'concat) deleting?)))))))))))
1123 (inputs `(("ghc-haddock-api" ,ghc-haddock-api)))
1124 (native-inputs
1125 `(("ghc-hspec" ,ghc-hspec)))
1126 (home-page "https://www.haskell.org/haddock/")
1127 (synopsis
1128 "Documentation-generation tool for Haskell libraries")
1129 (description
1130 "Haddock is a documentation-generation tool for Haskell libraries.")
1131 (license license:bsd-3)))
1132
1133 (define-public ghc-simple-reflect
1134 (package
1135 (name "ghc-simple-reflect")
1136 (version "0.3.3")
1137 (source
1138 (origin
1139 (method url-fetch)
1140 (uri (string-append
1141 "https://hackage.haskell.org/package/simple-reflect/simple-reflect-"
1142 version
1143 ".tar.gz"))
1144 (sha256
1145 (base32
1146 "0ayvrx5cm8n6db21jiyjmk5h93pw7cz1707hih09hlhk9jh5x0h7"))))
1147 (build-system haskell-build-system)
1148 (home-page
1149 "https://twanvl.nl/blog/haskell/simple-reflection-of-expressions")
1150 (synopsis
1151 "Simple reflection of expressions containing variables")
1152 (description
1153 "This package allows simple reflection of expressions containing
1154 variables. Reflection here means that a Haskell expression is turned into a
1155 string. The primary aim of this package is teaching and understanding; there
1156 are no options for manipulating the reflected expressions beyond showing
1157 them.")
1158 (license license:bsd-3)))
1159
1160 (define-public ghc-haskell-src
1161 (package
1162 (name "ghc-haskell-src")
1163 (version "1.0.3.0")
1164 (source
1165 (origin
1166 (method url-fetch)
1167 (uri (string-append
1168 "https://hackage.haskell.org/package/haskell-src/haskell-src-"
1169 version
1170 ".tar.gz"))
1171 (sha256
1172 (base32
1173 "1g4dj1f0j68bhn4ixfac63wjzy6gsp6kwgxryb1k5nl3i0g99d5l"))))
1174 (build-system haskell-build-system)
1175 (inputs
1176 `(("ghc-happy" ,ghc-happy)
1177 ("ghc-syb" ,ghc-syb)))
1178 (home-page
1179 "https://hackage.haskell.org/package/haskell-src")
1180 (synopsis
1181 "Support for manipulating Haskell source code")
1182 (description
1183 "The @code{haskell-src} package provides support for manipulating Haskell
1184 source code. The package provides a lexer, parser and pretty-printer, and a
1185 definition of a Haskell abstract syntax tree (AST). Common uses of this
1186 package are to parse or generate Haskell 98 code.")
1187 (license license:bsd-3)))
1188
1189 (define-public ghc-alex
1190 (package
1191 (name "ghc-alex")
1192 (version "3.2.4")
1193 (source
1194 (origin
1195 (method url-fetch)
1196 (uri (string-append
1197 "https://hackage.haskell.org/package/alex/alex-"
1198 version
1199 ".tar.gz"))
1200 (sha256
1201 (base32
1202 "0cpjixgsr0b2x4s6hz4aa6gnmjw9i7xd9nlfi8m37zqlidq4v3nm"))))
1203 (build-system haskell-build-system)
1204 (arguments
1205 `(#:phases
1206 (modify-phases %standard-phases
1207 (add-before 'check 'set-check-variables
1208 (lambda _
1209 (setenv "PATH" (string-append (getcwd) "/dist/build/alex:"
1210 (getenv "PATH")))
1211 (setenv "alex_datadir" (string-append (getcwd) "/data"))
1212 #t)))))
1213 (inputs `(("ghc-quickcheck" ,ghc-quickcheck)))
1214 (native-inputs
1215 `(("which" ,which)))
1216 (home-page "https://www.haskell.org/alex/")
1217 (synopsis
1218 "Tool for generating lexical analysers in Haskell")
1219 (description
1220 "Alex is a tool for generating lexical analysers in Haskell. It takes a
1221 description of tokens based on regular expressions and generates a Haskell
1222 module containing code for scanning text efficiently. It is similar to the
1223 tool lex or flex for C/C++.")
1224 (license license:bsd-3)))
1225
1226 (define-public ghc-cgi
1227 (package
1228 (name "ghc-cgi")
1229 (version "3001.3.0.2")
1230 (source
1231 (origin
1232 (method url-fetch)
1233 (uri (string-append
1234 "https://hackage.haskell.org/package/cgi/cgi-"
1235 version
1236 ".tar.gz"))
1237 (sha256
1238 (base32
1239 "1hbpplss1m4rdpm4ibip6fpimlhssqa14fl338kl2jbc463i64cj"))))
1240 (build-system haskell-build-system)
1241 (arguments
1242 `(#:phases
1243 (modify-phases %standard-phases
1244 (add-before 'configure 'update-constraints
1245 (lambda _
1246 (substitute* "cgi.cabal"
1247 (("exceptions < 0\\.9")
1248 "exceptions < 0.11")
1249 (("time >= 1\\.5 && < 1\\.7")
1250 "time >= 1.5 && < 1.9")
1251 (("doctest >= 0\\.8 && < 0\\.12")
1252 "doctest >= 0.8 && < 0.17")
1253 (("QuickCheck >= 2\\.8\\.1 && < 2\\.10")
1254 "QuickCheck >= 2.8.1 && < 2.12")))))))
1255 (inputs
1256 `(("ghc-parsec" ,ghc-parsec)
1257 ("ghc-exceptions" ,ghc-exceptions)
1258 ("ghc-multipart" ,ghc-multipart)
1259 ("ghc-network-uri" ,ghc-network-uri)
1260 ("ghc-network" ,ghc-network)))
1261 (native-inputs
1262 `(("ghc-doctest" ,ghc-doctest)
1263 ("ghc-quickcheck" ,ghc-quickcheck)))
1264 (home-page
1265 "https://github.com/cheecheeo/haskell-cgi")
1266 (synopsis "Library for writing CGI programs")
1267 (description
1268 "This is a Haskell library for writing CGI programs.")
1269 (license license:bsd-3)))
1270
1271 (define-public ghc-cmdargs
1272 (package
1273 (name "ghc-cmdargs")
1274 (version "0.10.20")
1275 (source
1276 (origin
1277 (method url-fetch)
1278 (uri (string-append
1279 "https://hackage.haskell.org/package/cmdargs/cmdargs-"
1280 version ".tar.gz"))
1281 (sha256
1282 (base32
1283 "0cbkmgrcnwgigg6z88y3c09gm7g6dwm7gzbgr53h8k1xik29s9hf"))))
1284 (build-system haskell-build-system)
1285 (home-page
1286 "http://community.haskell.org/~ndm/cmdargs/")
1287 (synopsis "Command line argument processing")
1288 (description
1289 "This library provides an easy way to define command line parsers.")
1290 (license license:bsd-3)))
1291
1292 (define-public ghc-concatenative
1293 (package
1294 (name "ghc-concatenative")
1295 (version "1.0.1")
1296 (source (origin
1297 (method url-fetch)
1298 (uri (string-append
1299 "https://hackage.haskell.org/package/concatenative/concatenative-"
1300 version ".tar.gz"))
1301 (sha256
1302 (base32
1303 "05xwqvcdnk8bsyj698ab9jxpa1nk23pf3m7wi9mwmw0q8n99fngd"))))
1304 (build-system haskell-build-system)
1305 (home-page
1306 "https://patch-tag.com/r/salazar/concatenative/snapshot/current/content/pretty")
1307 (synopsis "Library for postfix control flow")
1308 (description
1309 "Concatenative gives Haskell Factor-style combinators and arrows for
1310 postfix notation. For more information on stack based languages, see
1311 @uref{https://concatenative.org}.")
1312 (license license:bsd-3)))
1313
1314 (define-public ghc-happy
1315 (package
1316 (name "ghc-happy")
1317 (version "1.19.9")
1318 (source
1319 (origin
1320 (method url-fetch)
1321 (uri (string-append
1322 "https://hackage.haskell.org/package/happy/happy-"
1323 version
1324 ".tar.gz"))
1325 (sha256
1326 (base32
1327 "138xpxdb7x62lpmgmb6b3v3vgdqqvqn4273jaap3mjmc2gla709y"))))
1328 (build-system haskell-build-system)
1329 (arguments
1330 `(#:phases
1331 (modify-phases %standard-phases
1332 (add-after 'unpack 'skip-test-issue93
1333 (lambda _
1334 ;; Tests run out of memory on a system with 2GB of available RAM,
1335 ;; in 'issue93.a.hs' and 'issue93.n.hs'.
1336 (substitute* "tests/Makefile"
1337 ((" issue93.y ") " "))
1338 #t)))))
1339 (home-page "https://hackage.haskell.org/package/happy")
1340 (synopsis "Parser generator for Haskell")
1341 (description "Happy is a parser generator for Haskell. Given a grammar
1342 specification in BNF, Happy generates Haskell code to parse the grammar.
1343 Happy works in a similar way to the yacc tool for C.")
1344 (license license:bsd-3)))
1345
1346 (define-public ghc-haskell-lexer
1347 (package
1348 (name "ghc-haskell-lexer")
1349 (version "1.0.2")
1350 (source
1351 (origin
1352 (method url-fetch)
1353 (uri (string-append
1354 "https://hackage.haskell.org/package/haskell-lexer/haskell-lexer-"
1355 version ".tar.gz"))
1356 (sha256
1357 (base32 "1wyxd8x33x4v5vxyzkhm610pl86gbkc8y439092fr1735q9g7kfq"))))
1358 (build-system haskell-build-system)
1359 (home-page "http://hackage.haskell.org/package/haskell-lexer")
1360 (synopsis "Fully compliant Haskell 98 lexer")
1361 (description
1362 "This package provides a fully compliant Haskell 98 lexer.")
1363 (license license:bsd-3)))
1364
1365 (define-public ghc-pretty-show
1366 (package
1367 (name "ghc-pretty-show")
1368 (version "1.7")
1369 (source
1370 (origin
1371 (method url-fetch)
1372 (uri (string-append "https://hackage.haskell.org/package/pretty-show/"
1373 "pretty-show-" version ".tar.gz"))
1374 (sha256
1375 (base32
1376 "0br7pkxqqqhby2j2v1g847lgqsrasx56g1jw3dhmjh4flzs6warq"))))
1377 (build-system haskell-build-system)
1378 (inputs
1379 `(("ghc-haskell-lexer" ,ghc-haskell-lexer)
1380 ("ghc-happy" ,ghc-happy)))
1381 (home-page "http://wiki.github.com/yav/pretty-show")
1382 (synopsis "Tools for working with derived `Show` instances")
1383 (description
1384 "This package provides a library and an executable for working with
1385 derived @code{Show} instances. By using the library, derived @code{Show}
1386 instances can be parsed into a generic data structure. The @code{ppsh} tool
1387 uses the library to produce human-readable versions of @code{Show} instances,
1388 which can be quite handy for debugging Haskell programs. We can also render
1389 complex generic values into an interactive Html page, for easier
1390 examination.")
1391 (license license:expat)))
1392
1393 (define-public ghc-haskell-src-exts
1394 (package
1395 (name "ghc-haskell-src-exts")
1396 (version "1.20.2")
1397 (source
1398 (origin
1399 (method url-fetch)
1400 (uri (string-append
1401 "https://hackage.haskell.org/package/haskell-src-exts/haskell-src-exts-"
1402 version
1403 ".tar.gz"))
1404 (sha256
1405 (base32
1406 "1sm3z4v1p5yffg01ldgavz71s3bvfhjfa13k428rk14bpkl8crlz"))))
1407 (build-system haskell-build-system)
1408 (inputs
1409 `(("cpphs" ,cpphs)
1410 ("ghc-happy" ,ghc-happy)
1411 ("ghc-pretty-show" ,ghc-pretty-show)))
1412 (native-inputs
1413 `(("ghc-smallcheck" ,ghc-smallcheck)
1414 ("ghc-tasty" ,ghc-tasty)
1415 ("ghc-tasty-smallcheck" ,ghc-tasty-smallcheck)
1416 ("ghc-tasty-golden" ,ghc-tasty-golden)))
1417 (home-page "https://github.com/haskell-suite/haskell-src-exts")
1418 (synopsis "Library for manipulating Haskell source")
1419 (description "Haskell-Source with Extensions (HSE, haskell-src-exts) is an
1420 extension of the standard @code{haskell-src} package, and handles most
1421 registered syntactic extensions to Haskell. All extensions implemented in GHC
1422 are supported. Apart from these standard extensions, it also handles regular
1423 patterns as per the HaRP extension as well as HSX-style embedded XML syntax.")
1424 (license license:bsd-3)))
1425
1426 (define-public ghc-haskell-src-exts-util
1427 (package
1428 (name "ghc-haskell-src-exts-util")
1429 (version "0.2.3")
1430 (source
1431 (origin
1432 (method url-fetch)
1433 (uri (string-append "https://hackage.haskell.org/package/"
1434 "haskell-src-exts-util/haskell-src-exts-util-"
1435 version ".tar.gz"))
1436 (sha256
1437 (base32
1438 "1803718paq89f8pdck4mb88hv2k1ah9lxzq0lgjgwi9n88ryycz8"))))
1439 (build-system haskell-build-system)
1440 (inputs
1441 `(("ghc-data-default" ,ghc-data-default)
1442 ("ghc-haskell-src-exts" ,ghc-haskell-src-exts)
1443 ("ghc-semigroups" ,ghc-semigroups)
1444 ("ghc-uniplate" ,ghc-uniplate)))
1445 (home-page "https://github.com/pepeiborra/haskell-src-exts-util")
1446 (synopsis "Helper functions for working with haskell-src-exts trees")
1447 (description
1448 "This package provides helper functions for working with
1449 @code{haskell-src-exts} trees.")
1450 (license license:bsd-3)))
1451
1452 (define-public ghc-refact
1453 (package
1454 (name "ghc-refact")
1455 (version "0.3.0.2")
1456 (source
1457 (origin
1458 (method url-fetch)
1459 (uri (string-append "https://hackage.haskell.org/package/"
1460 "refact/refact-"
1461 version ".tar.gz"))
1462 (sha256
1463 (base32
1464 "0v0zxcx29b8jxs2kgy9csykqcp8kzhdvyylw2xfwmj4pfxr2kl0a"))))
1465 (build-system haskell-build-system)
1466 (home-page "http://hackage.haskell.org/package/refact")
1467 (synopsis "Specify refactorings to perform with apply-refact")
1468 (description
1469 "This library provides a datatype which can be interpreted by
1470 @code{apply-refact}. It exists as a separate library so that applications can
1471 specify refactorings without depending on GHC.")
1472 (license license:bsd-3)))
1473
1474 (define-public hlint
1475 (package
1476 (name "hlint")
1477 (version "2.1.10")
1478 (source
1479 (origin
1480 (method url-fetch)
1481 (uri (string-append
1482 "https://hackage.haskell.org/package/" name
1483 "/" name "-" version ".tar.gz"))
1484 (sha256
1485 (base32
1486 "19as2m9g75cr6n1agzvsij0cvqhb0wbjlk31w4y5d5mns87dki0w"))))
1487 (build-system haskell-build-system)
1488 (inputs
1489 `(("cpphs" ,cpphs)
1490 ("ghc-unordered-containers" ,ghc-unordered-containers)
1491 ("ghc-yaml" ,ghc-yaml)
1492 ("ghc-vector" ,ghc-vector)
1493 ("ghc-text" ,ghc-text)
1494 ("ghc-data-default" ,ghc-data-default)
1495 ("ghc-cmdargs" ,ghc-cmdargs)
1496 ("ghc-haskell-src-exts" ,ghc-haskell-src-exts)
1497 ("ghc-haskell-src-exts-util" ,ghc-haskell-src-exts-util)
1498 ("ghc-uniplate" ,ghc-uniplate)
1499 ("ghc-ansi-terminal" ,ghc-ansi-terminal)
1500 ("ghc-extra" ,ghc-extra)
1501 ("ghc-refact" ,ghc-refact)
1502 ("ghc-aeson" ,ghc-aeson)
1503 ("hscolour" ,hscolour)))
1504 (home-page "http://community.haskell.org/~ndm/hlint/")
1505 (synopsis "Suggest improvements for Haskell source code")
1506 (description "HLint reads Haskell programs and suggests changes that
1507 hopefully make them easier to read. HLint also makes it easy to disable
1508 unwanted suggestions, and to add your own custom suggestions.")
1509 (license license:bsd-3)))
1510
1511 (define-public ghc-resourcet
1512 (package
1513 (name "ghc-resourcet")
1514 (version "1.2.1")
1515 (source
1516 (origin
1517 (method url-fetch)
1518 (uri (string-append "https://hackage.haskell.org/package/resourcet/"
1519 "resourcet-" version ".tar.gz"))
1520 (sha256
1521 (base32
1522 "0rzjzh34s36ssign7akqjnwnjxf11c3511wk7ky0xxy0dqmc2rg7"))))
1523 (build-system haskell-build-system)
1524 (inputs
1525 `(("ghc-transformers-base" ,ghc-transformers-base)
1526 ("ghc-monad-control" ,ghc-monad-control)
1527 ("ghc-transformers-compat" ,ghc-transformers-compat)
1528 ("ghc-mmorph" ,ghc-mmorph)
1529 ("ghc-exceptions" ,ghc-exceptions)
1530 ("ghc-unliftio-core" ,ghc-unliftio-core)))
1531 (native-inputs
1532 `(("ghc-lifted-base" ,ghc-lifted-base)
1533 ("ghc-hspec" ,ghc-hspec)))
1534 (home-page "https://github.com/snoyberg/conduit")
1535 (synopsis "Deterministic allocation and freeing of scarce resources")
1536 (description "ResourceT is a monad transformer which creates a region of
1537 code where you can safely allocate resources.")
1538 (license license:bsd-3)))
1539
1540 (define-public ghc-objectname
1541 (package
1542 (name "ghc-objectname")
1543 (version "1.1.0.1")
1544 (source
1545 (origin
1546 (method url-fetch)
1547 (uri (string-append
1548 "https://hackage.haskell.org/package/ObjectName/ObjectName-"
1549 version
1550 ".tar.gz"))
1551 (sha256
1552 (base32
1553 "046jm94rmm46cicd31pl54vdvfjvhd9ffbfycy2lxzc0fliyznvj"))))
1554 (build-system haskell-build-system)
1555 (home-page "https://hackage.haskell.org/package/ObjectName")
1556 (synopsis "Helper library for Haskell OpenGL")
1557 (description "This tiny package contains the class ObjectName, which
1558 corresponds to the general notion of explicitly handled identifiers for API
1559 objects, e.g. a texture object name in OpenGL or a buffer object name in
1560 OpenAL.")
1561 (license license:bsd-3)))
1562
1563 (define-public ghc-sdl
1564 (package
1565 (name "ghc-sdl")
1566 (version "0.6.7.0")
1567 (source
1568 (origin
1569 (method url-fetch)
1570 (uri (string-append
1571 "https://hackage.haskell.org/package/SDL/SDL-"
1572 version
1573 ".tar.gz"))
1574 (sha256
1575 (base32
1576 "00y67v80a8l09i3k76z09lg25kw72ivl09nag8ckdlk4a0cfnzfq"))))
1577 (build-system haskell-build-system)
1578 (inputs
1579 `(("sdl" ,sdl)))
1580 (home-page "https://hackage.haskell.org/package/SDL")
1581 (synopsis "LibSDL for Haskell")
1582 (description "Simple DirectMedia Layer (libSDL) is a cross-platform
1583 multimedia library designed to provide low level access to audio, keyboard,
1584 mouse, joystick, 3D hardware via OpenGL, and 2D video framebuffer. It is used
1585 by MPEG playback software, emulators, and many popular games, including the
1586 award winning Linux port of \"Civilization: Call To Power.\"")
1587 (license license:bsd-3)))
1588
1589 (define-public ghc-sdl-mixer
1590 (package
1591 (name "ghc-sdl-mixer")
1592 (version "0.6.3.0")
1593 (source
1594 (origin
1595 (method url-fetch)
1596 (uri (string-append
1597 "https://hackage.haskell.org/package/SDL-mixer/SDL-mixer-"
1598 version
1599 ".tar.gz"))
1600 (sha256
1601 (base32
1602 "0k26hqgdh789ka3mv4dsk6rin6x6vwcs6hjmnsqq7j3mnrh1342r"))))
1603 (build-system haskell-build-system)
1604 (arguments
1605 `(#:configure-flags
1606 (let* ((sdl-mixer (assoc-ref %build-inputs "sdl-mixer"))
1607 (sdl-mixer-include (string-append sdl-mixer "/include/SDL")))
1608 (list (string-append "--extra-include-dirs=" sdl-mixer-include)))))
1609 (inputs
1610 `(("ghc-sdl" ,ghc-sdl)
1611 ("sdl-mixer" ,sdl-mixer)))
1612 (home-page "https://hackage.haskell.org/package/SDL-mixer")
1613 (synopsis "Haskell bindings to libSDL_mixer")
1614 (description "SDL_mixer is a sample multi-channel audio mixer library. It
1615 supports any number of simultaneously playing channels of 16 bit stereo audio,
1616 plus a single channel of music, mixed by the popular MikMod MOD, Timidity
1617 MIDI, Ogg Vorbis, and SMPEG MP3 libraries.")
1618 (license license:bsd-3)))
1619
1620 (define-public ghc-sdl-image
1621 (package
1622 (name "ghc-sdl-image")
1623 (version "0.6.2.0")
1624 (source
1625 (origin
1626 (method url-fetch)
1627 (uri (string-append
1628 "https://hackage.haskell.org/package/SDL-image/SDL-image-"
1629 version
1630 ".tar.gz"))
1631 (sha256
1632 (base32
1633 "1gxwrvswgwjw6g7ym52gik22l9l3ljy592phv97jdmcf3gi6qcg1"))))
1634 (build-system haskell-build-system)
1635 (arguments
1636 `(#:configure-flags
1637 (let* ((sdl-image (assoc-ref %build-inputs "sdl-image"))
1638 (sdl-image-include (string-append sdl-image "/include/SDL")))
1639 (list (string-append "--extra-include-dirs=" sdl-image-include)))))
1640 (inputs
1641 `(("ghc-sdl" ,ghc-sdl)
1642 ("sdl-image" ,sdl-image)))
1643 (home-page "https://hackage.haskell.org/package/SDL-image")
1644 (synopsis "Haskell bindings to libSDL_image")
1645 (description "SDL_image is an image file loading library. It loads images
1646 as SDL surfaces, and supports the following formats: BMP, GIF, JPEG, LBM, PCX,
1647 PNG, PNM, TGA, TIFF, XCF, XPM, XV.")
1648 (license license:bsd-3)))
1649
1650 (define-public ghc-half
1651 (package
1652 (name "ghc-half")
1653 (version "0.3")
1654 (source
1655 (origin
1656 (method url-fetch)
1657 (uri (string-append
1658 "https://hackage.haskell.org/package/half/half-"
1659 version ".tar.gz"))
1660 (sha256
1661 (base32
1662 "14r0nx8hm5fic9gz0ybjjw4kyc758zfgvhhwvzsshpx5caq6zch6"))))
1663 (build-system haskell-build-system)
1664 (native-inputs
1665 `(("ghc-hspec" ,ghc-hspec)
1666 ("ghc-quickcheck" ,ghc-quickcheck)))
1667 (home-page "https://github.com/ekmett/half")
1668 (synopsis "Half-precision floating-point computations")
1669 (description "This library provides a half-precision floating-point
1670 computation library for Haskell.")
1671 (license license:bsd-3)))
1672
1673 (define-public ghc-fixed
1674 (package
1675 (name "ghc-fixed")
1676 (version "0.2.1.1")
1677 (source
1678 (origin
1679 (method url-fetch)
1680 (uri (string-append "https://hackage.haskell.org/package/fixed/fixed-"
1681 version ".tar.gz"))
1682 (sha256
1683 (base32
1684 "1qhmwx8iqshns0crmr9d2f8hm65jxbcp3dvv0c39v34ra7if3a94"))))
1685 (build-system haskell-build-system)
1686 (home-page "https://github.com/ekmett/fixed")
1687 (synopsis "Signed 15.16 precision fixed point arithmetic")
1688 (description
1689 "This package provides functions for signed 15.16 precision fixed point
1690 arithmetic.")
1691 (license license:bsd-3)))
1692
1693 (define-public ghc-openglraw
1694 (package
1695 (name "ghc-openglraw")
1696 (version "3.3.1.0")
1697 (source
1698 (origin
1699 (method url-fetch)
1700 (uri (string-append
1701 "https://hackage.haskell.org/package/OpenGLRaw/OpenGLRaw-"
1702 version
1703 ".tar.gz"))
1704 (sha256
1705 (base32
1706 "1x8w3x308jldj2c1xqcq3a3sc2jc06pdpgqkgjsmixi1skv4a1vb"))))
1707 (build-system haskell-build-system)
1708 (inputs
1709 `(("ghc-half" ,ghc-half)
1710 ("ghc-fixed" ,ghc-fixed)
1711 ("glu" ,glu)
1712 ("ghc-text" ,ghc-text)))
1713 (home-page "https://www.haskell.org/haskellwiki/Opengl")
1714 (synopsis "Raw Haskell bindings for the OpenGL graphics system")
1715 (description "OpenGLRaw is a raw Haskell binding for the OpenGL 4.5
1716 graphics system and lots of OpenGL extensions. It is basically a 1:1 mapping
1717 of OpenGL's C API, intended as a basis for a nicer interface. OpenGLRaw
1718 offers access to all necessary functions, tokens and types plus a general
1719 facility for loading extension entries. The module hierarchy closely mirrors
1720 the naming structure of the OpenGL extensions, making it easy to find the
1721 right module to import. All API entries are loaded dynamically, so no special
1722 C header files are needed for building this package. If an API entry is not
1723 found at runtime, a userError is thrown.")
1724 (license license:bsd-3)))
1725
1726 (define-public ghc-glut
1727 (package
1728 (name "ghc-glut")
1729 (version "2.7.0.14")
1730 (source
1731 (origin
1732 (method url-fetch)
1733 (uri (string-append
1734 "https://hackage.haskell.org/package/GLUT/GLUT-"
1735 version
1736 ".tar.gz"))
1737 (sha256
1738 (base32
1739 "01i162fly4q1751fp60lgkzlb8kr0qqbvmxj74zc6skb19qggy2w"))))
1740 (build-system haskell-build-system)
1741 (inputs
1742 `(("ghc-statevar" ,ghc-statevar)
1743 ("ghc-opengl" ,ghc-opengl)
1744 ("ghc-openglraw" ,ghc-openglraw)
1745 ("freeglut" ,freeglut)))
1746 (home-page "https://www.haskell.org/haskellwiki/Opengl")
1747 (synopsis "Haskell bindings for the OpenGL Utility Toolkit")
1748 (description "This library provides Haskell bindings for the OpenGL
1749 Utility Toolkit, a window system-independent toolkit for writing OpenGL
1750 programs.")
1751 (license license:bsd-3)))
1752
1753 (define-public ghc-gluraw
1754 (package
1755 (name "ghc-gluraw")
1756 (version "2.0.0.4")
1757 (source
1758 (origin
1759 (method url-fetch)
1760 (uri (string-append
1761 "https://hackage.haskell.org/package/GLURaw/GLURaw-"
1762 version
1763 ".tar.gz"))
1764 (sha256
1765 (base32
1766 "1i2xi35n5z0d372px9mh6cyhgg1m0cfaiy3fnspkf6kbn9fgsqxq"))))
1767 (build-system haskell-build-system)
1768 (inputs
1769 `(("ghc-openglraw" ,ghc-openglraw)))
1770 (home-page "https://www.haskell.org/haskellwiki/Opengl")
1771 (synopsis "Raw Haskell bindings GLU")
1772 (description "GLURaw is a raw Haskell binding for the GLU 1.3 OpenGL
1773 utility library. It is basically a 1:1 mapping of GLU's C API, intended as a
1774 basis for a nicer interface.")
1775 (license license:bsd-3)))
1776
1777 (define-public ghc-opengl
1778 (package
1779 (name "ghc-opengl")
1780 (version "3.0.2.2")
1781 (source
1782 (origin
1783 (method url-fetch)
1784 (uri (string-append
1785 "https://hackage.haskell.org/package/OpenGL/OpenGL-"
1786 version
1787 ".tar.gz"))
1788 (sha256
1789 (base32
1790 "19vxwvx2n8zq2klj176l25n2b64ybp0b8mhm4p46gvpcivz41fjc"))))
1791 (build-system haskell-build-system)
1792 (inputs
1793 `(("ghc-text" ,ghc-text)
1794 ("ghc-objectname" ,ghc-objectname)
1795 ("ghc-gluraw" ,ghc-gluraw)
1796 ("ghc-statevar" ,ghc-statevar)
1797 ("ghc-openglraw" ,ghc-openglraw)))
1798 (home-page "https://www.haskell.org/haskellwiki/Opengl")
1799 (synopsis "Haskell bindings for the OpenGL graphics system")
1800 (description "This package provides Haskell bindings for the OpenGL
1801 graphics system (GL, version 4.5) and its accompanying utility library (GLU,
1802 version 1.3).")
1803 (license license:bsd-3)))
1804
1805 (define-public ghc-streaming-commons
1806 (package
1807 (name "ghc-streaming-commons")
1808 (version "0.2.1.1")
1809 (source
1810 (origin
1811 (method url-fetch)
1812 (uri (string-append "https://hackage.haskell.org/package/"
1813 "streaming-commons/streaming-commons-"
1814 version ".tar.gz"))
1815 (sha256
1816 (base32
1817 "1lmyx3wkjsayhy5yilzvy0kf8qwmycwlk26r1d8f3cxbfhkr7s52"))))
1818 (build-system haskell-build-system)
1819 (inputs
1820 `(("ghc-async" ,ghc-async)
1821 ("ghc-blaze-builder" ,ghc-blaze-builder)
1822 ("ghc-network" ,ghc-network)
1823 ("ghc-random" ,ghc-random)
1824 ("ghc-stm" ,ghc-stm)
1825 ("ghc-text" ,ghc-text)
1826 ("ghc-zlib" ,ghc-zlib)))
1827 (native-inputs
1828 `(("ghc-quickcheck" ,ghc-quickcheck)
1829 ("ghc-hspec" ,ghc-hspec)
1830 ("hspec-discover" ,hspec-discover)))
1831 (home-page "https://hackage.haskell.org/package/streaming-commons")
1832 (synopsis "Conduit and pipes needed by some streaming data libraries")
1833 (description "This package provides low-dependency functionality commonly
1834 needed by various Haskell streaming data libraries, such as @code{conduit} and
1835 @code{pipe}s.")
1836 (license license:expat)))
1837
1838 (define-public cpphs
1839 (package
1840 (name "cpphs")
1841 (version "1.20.8")
1842 (source
1843 (origin
1844 (method url-fetch)
1845 (uri (string-append
1846 "https://hackage.haskell.org/package/" name "/"
1847 name "-" version ".tar.gz"))
1848 (sha256
1849 (base32
1850 "1bh524asqhk9v1s0wvipl0hgn7l63iy3js867yv0z3h5v2kn8vg5"))))
1851 (build-system haskell-build-system)
1852 (inputs
1853 `(("ghc-polyparse" ,ghc-polyparse)
1854 ("ghc-old-locale" ,ghc-old-locale)
1855 ("ghc-old-time" ,ghc-old-time)))
1856 (home-page "http://projects.haskell.org/cpphs/")
1857 (synopsis "Liberalised re-implementation of cpp, the C pre-processor")
1858 (description "Cpphs is a re-implementation of the C pre-processor that is
1859 both more compatible with Haskell, and itself written in Haskell so that it
1860 can be distributed with compilers. This version of the C pre-processor is
1861 pretty-much feature-complete and compatible with traditional (K&R)
1862 pre-processors. Additional features include: a plain-text mode; an option to
1863 unlit literate code files; and an option to turn off macro-expansion.")
1864 (license (list license:lgpl2.1+ license:gpl3+))))
1865
1866 (define-public ghc-reflection
1867 (package
1868 (name "ghc-reflection")
1869 (version "2.1.4")
1870 (source
1871 (origin
1872 (method url-fetch)
1873 (uri (string-append
1874 "https://hackage.haskell.org/package/reflection/reflection-"
1875 version
1876 ".tar.gz"))
1877 (sha256
1878 (base32
1879 "0kf4a5ijw6jfnfibjcrpdy9vzh1n6v2pxia8dhyyqdissiwc8bzj"))))
1880 (build-system haskell-build-system)
1881 (inputs `(("ghc-tagged" ,ghc-tagged)))
1882 (home-page "https://github.com/ekmett/reflection")
1883 (synopsis "Reify arbitrary terms into types that can be reflected back
1884 into terms")
1885 (description "This package addresses the 'configuration problem' which is
1886 propagating configurations that are available at run-time, allowing multiple
1887 configurations to coexist without resorting to mutable global variables or
1888 @code{System.IO.Unsafe.unsafePerformIO}.")
1889 (license license:bsd-3)))
1890
1891 (define-public ghc-old-locale
1892 (package
1893 (name "ghc-old-locale")
1894 (version "1.0.0.7")
1895 (source
1896 (origin
1897 (method url-fetch)
1898 (uri (string-append
1899 "https://hackage.haskell.org/package/old-locale/old-locale-"
1900 version
1901 ".tar.gz"))
1902 (sha256
1903 (base32 "0l3viphiszvz5wqzg7a45zp40grwlab941q5ay29iyw8p3v8pbyv"))))
1904 (build-system haskell-build-system)
1905 (arguments
1906 `(#:cabal-revision
1907 ("2" "04b9vn007hlvsrx4ksd3r8r3kbyaj2kvwxchdrmd4370qzi8p6gs")))
1908 (home-page "https://hackage.haskell.org/package/old-locale")
1909 (synopsis "Adapt to locale conventions")
1910 (description
1911 "This package provides the ability to adapt to locale conventions such as
1912 date and time formats.")
1913 (license license:bsd-3)))
1914
1915 (define-public ghc-old-time
1916 (package
1917 (name "ghc-old-time")
1918 (version "1.1.0.3")
1919 (source
1920 (origin
1921 (method url-fetch)
1922 (uri (string-append
1923 "https://hackage.haskell.org/package/old-time/old-time-"
1924 version
1925 ".tar.gz"))
1926 (sha256
1927 (base32
1928 "1h9b26s3kfh2k0ih4383w90ibji6n0iwamxp6rfp2lbq1y5ibjqw"))))
1929 (build-system haskell-build-system)
1930 (arguments
1931 `(#:cabal-revision
1932 ("2" "1j6ln1dkvhdvnwl33bp0xf9lhc4sybqk0aw42p8cq81xwwzbn7y9")))
1933 (inputs
1934 `(("ghc-old-locale" ,ghc-old-locale)))
1935 (home-page "https://hackage.haskell.org/package/old-time")
1936 (synopsis "Time compatibility library for Haskell")
1937 (description "Old-time is a package for backwards compatibility with the
1938 old @code{time} library. For new projects, the newer
1939 @uref{https://hackage.haskell.org/package/time, time library} is recommended.")
1940 (license license:bsd-3)))
1941
1942 (define-public ghc-data-default-instances-old-locale
1943 (package
1944 (name "ghc-data-default-instances-old-locale")
1945 (version "0.0.1")
1946 (source
1947 (origin
1948 (method url-fetch)
1949 (uri (string-append
1950 "https://hackage.haskell.org/package/"
1951 "data-default-instances-old-locale/"
1952 "data-default-instances-old-locale-" version ".tar.gz"))
1953 (sha256
1954 (base32 "00h81i5phib741yj517p8mbnc48myvfj8axzsw44k34m48lv1lv0"))))
1955 (build-system haskell-build-system)
1956 (inputs
1957 `(("ghc-data-default-class" ,ghc-data-default-class)
1958 ("ghc-old-locale" ,ghc-old-locale)))
1959 (home-page
1960 "https://hackage.haskell.org/package/data-default-instances-old-locale")
1961 (synopsis "Default instances for types in old-locale")
1962 (description "Provides Default instances for types from the old-locale
1963 package.")
1964 (license license:bsd-3)))
1965
1966 (define-public ghc-dlist
1967 (package
1968 (name "ghc-dlist")
1969 (version "0.8.0.4")
1970 (source
1971 (origin
1972 (method url-fetch)
1973 (uri (string-append
1974 "https://hackage.haskell.org/package/dlist/dlist-"
1975 version
1976 ".tar.gz"))
1977 (sha256
1978 (base32 "0yirrh0s6acjy9hhvf5fqg2d6q5y6gm9xs04v6w1imndh1xqdwdc"))))
1979 (build-system haskell-build-system)
1980 (inputs
1981 `(("ghc-quickcheck" ,ghc-quickcheck)))
1982 (home-page "https://github.com/spl/dlist")
1983 (synopsis "Difference lists")
1984 (description
1985 "Difference lists are a list-like type supporting O(1) append. This is
1986 particularly useful for efficient logging and pretty printing (e.g. with the
1987 Writer monad), where list append quickly becomes too expensive.")
1988 (license license:bsd-3)))
1989
1990 (define-public ghc-extensible-exceptions
1991 (package
1992 (name "ghc-extensible-exceptions")
1993 (version "0.1.1.4")
1994 (source
1995 (origin
1996 (method url-fetch)
1997 (uri (string-append "https://hackage.haskell.org/package/"
1998 "extensible-exceptions/extensible-exceptions-"
1999 version ".tar.gz"))
2000 (sha256
2001 (base32 "1273nqws9ij1rp1bsq5jc7k2jxpqa0svawdbim05lf302y0firbc"))))
2002 (build-system haskell-build-system)
2003 (home-page "https://hackage.haskell.org/package/extensible-exceptions")
2004 (synopsis "Extensible exceptions for Haskell")
2005 (description
2006 "This package provides extensible exceptions for both new and old
2007 versions of GHC (i.e., < 6.10).")
2008 (license license:bsd-3)))
2009
2010 (define-public ghc-echo
2011 (package
2012 (name "ghc-echo")
2013 (version "0.1.3")
2014 (source
2015 (origin
2016 (method url-fetch)
2017 (uri (string-append
2018 "https://hackage.haskell.org/package/echo/echo-"
2019 version ".tar.gz"))
2020 (sha256
2021 (base32
2022 "1vw5ykpwhr39wc0hhcgq3r8dh59zq6ib4zxbz1qd2wl21wqhfkvh"))))
2023 (build-system haskell-build-system)
2024 (arguments
2025 `(#:cabal-revision
2026 ("1" "0br8wfiybcw5hand4imiw0i5hacdmrax1dv8g95f35gazffbx42l")))
2027 (home-page "https://github.com/RyanGlScott/echo")
2028 (synopsis "Echo terminal input portably")
2029 (description "The @code{base} library exposes the @code{hGetEcho} and
2030 @code{hSetEcho} functions for querying and setting echo status, but
2031 unfortunately, neither function works with MinTTY consoles on Windows.
2032 This library provides an alternative interface which works with both
2033 MinTTY and other consoles.")
2034 (license license:bsd-3)))
2035
2036 (define-public ghc-hackage-security
2037 (package
2038 (name "ghc-hackage-security")
2039 (version "0.5.3.0")
2040 (source
2041 (origin
2042 (method url-fetch)
2043 (uri (string-append "https://hackage.haskell.org/package/"
2044 "hackage-security/hackage-security-"
2045 version ".tar.gz"))
2046 (sha256
2047 (base32
2048 "08bwawc7ramgdh54vcly2m9pvfchp0ahhs8117jajni6x4bnx66v"))))
2049 (build-system haskell-build-system)
2050 (arguments
2051 `(#:tests? #f)) ; Tests fail because of framework updates.
2052 (inputs
2053 `(("ghc-base16-bytestring" ,ghc-base16-bytestring)
2054 ("ghc-base64-bytestring" ,ghc-base64-bytestring)
2055 ("ghc-cryptohash-sha256" ,ghc-cryptohash-sha256)
2056 ("ghc-ed25519" ,ghc-ed25519)
2057 ("ghc-network" ,ghc-network)
2058 ("ghc-network-uri" ,ghc-network-uri)
2059 ("ghc-parsec" ,ghc-parsec)
2060 ("ghc-tar" ,ghc-tar)
2061 ("ghc-zlib" ,ghc-zlib)))
2062 (native-inputs
2063 `(("ghc-network-uri" ,ghc-network-uri)
2064 ("ghc-quickcheck" ,ghc-quickcheck)
2065 ("ghc-tar" ,ghc-tar)
2066 ("ghc-tasty" ,ghc-tasty)
2067 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
2068 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
2069 ("ghc-temporary" ,ghc-temporary)
2070 ("ghc-zlib" ,ghc-zlib)))
2071 (home-page "https://github.com/haskell/hackage-security")
2072 (synopsis "Hackage security library")
2073 (description "This Hackage security library provides both server and
2074 client utilities for securing @uref{http://hackage.haskell.org/, the
2075 Hackage package server}. It is based on
2076 @uref{http://theupdateframework.com/, The Update Framework}, a set of
2077 recommendations developed by security researchers at various universities
2078 in the US as well as developers on the @uref{https://www.torproject.org/,
2079 Tor project}.")
2080 (license license:bsd-3)))
2081
2082 (define-public ghc-resolv
2083 (package
2084 (name "ghc-resolv")
2085 (version "0.1.1.1")
2086 (source
2087 (origin
2088 (method url-fetch)
2089 (uri (string-append
2090 "https://hackage.haskell.org/package/resolv/resolv-"
2091 version ".tar.gz"))
2092 (sha256
2093 (base32
2094 "0wh7wj56l3f2bylz563g5g04a4nydj8acv60hpwa7k3mn792xca9"))))
2095 (build-system haskell-build-system)
2096 (arguments
2097 `(#:cabal-revision
2098 ("1" "15ay4n3x8c09cb3h4z1nan84yd3n9zpgvi6h114hk98bq10k8mma")
2099 #:tests? #f)) ; The required test frameworks are too old.
2100 (inputs
2101 `(("ghc-base16-bytestring" ,ghc-base16-bytestring)))
2102 (home-page "https://github.com/haskell/hackage-security")
2103 (synopsis "Domain Name Service (DNS) lookup via @code{libresolv}")
2104 (description "This package implements an API for accessing the
2105 @uref{https://tools.ietf.org/html/rfc1035, Domain Name Service (DNS)}
2106 resolver service via the standard @code{libresolv} system library (whose
2107 API is often available directly via the standard @code{libc} C library) on
2108 Unix systems.")
2109 (license license:gpl3)))
2110
2111 (define-public cabal-install
2112 (package
2113 (name "cabal-install")
2114 (version "2.2.0.0")
2115 (source
2116 (origin
2117 (method url-fetch)
2118 (uri (string-append
2119 "https://hackage.haskell.org/package/cabal-install/cabal-install-"
2120 version
2121 ".tar.gz"))
2122 (sha256
2123 (base32 "1nd3ch7qr4dpfxhgkcq2lnhvszx2kjgnn1kwb44vk9y5jgfs4mn8"))))
2124 (arguments `(#:tests? #f)) ; FIXME: testing libraries are missing.
2125 (build-system haskell-build-system)
2126 (inputs
2127 `(("ghc-async" ,ghc-async)
2128 ("ghc-base16-bytestring" ,ghc-base16-bytestring)
2129 ("ghc-cryptohash-sha256" ,ghc-cryptohash-sha256)
2130 ("ghc-echo" ,ghc-echo)
2131 ("ghc-edit-distance" ,ghc-edit-distance)
2132 ("ghc-hackage-security" ,ghc-hackage-security)
2133 ("ghc-hashable" ,ghc-hashable)
2134 ("ghc-http" ,ghc-http)
2135 ("ghc-network-uri" ,ghc-network-uri)
2136 ("ghc-network" ,ghc-network)
2137 ("ghc-random" ,ghc-random)
2138 ("ghc-resolv" ,ghc-resolv)
2139 ("ghc-stm" ,ghc-stm)
2140 ("ghc-tar" ,ghc-tar)
2141 ("ghc-zlib" ,ghc-zlib)))
2142 (home-page "https://www.haskell.org/cabal/")
2143 (synopsis "Command-line interface for Cabal and Hackage")
2144 (description
2145 "The cabal command-line program simplifies the process of managing
2146 Haskell software by automating the fetching, configuration, compilation and
2147 installation of Haskell libraries and programs.")
2148 (license license:bsd-3)))
2149
2150 (define-public cabal-doctest
2151 (package
2152 (name "cabal-doctest")
2153 (version "1.0.6")
2154 (source
2155 (origin
2156 (method url-fetch)
2157 (uri (string-append "https://hackage.haskell.org/package/"
2158 "cabal-doctest/cabal-doctest-"
2159 version ".tar.gz"))
2160 (sha256
2161 (base32
2162 "0bgd4jdmzxq5y465r4sf4jv2ix73yvblnr4c9wyazazafddamjny"))))
2163 (build-system haskell-build-system)
2164 (arguments
2165 `(#:cabal-revision
2166 ("1" "1bk85avgc93yvcggwbk01fy8nvg6753wgmaanhkry0hz55h7mpld")))
2167 (home-page "https://github.com/phadej/cabal-doctest")
2168 (synopsis "Setup.hs helper for running doctests")
2169 (description
2170 "To properly work, the @code{doctest} package needs plenty of
2171 configuration. This library provides the common bits for writing custom
2172 @file{Setup.hs} files.")
2173 (license license:bsd-3)))
2174
2175 (define-public ghc-parsec-numbers
2176 (package
2177 (name "ghc-parsec-numbers")
2178 (version "0.1.0")
2179 (source
2180 (origin
2181 (method url-fetch)
2182 (uri (string-append "https://hackage.haskell.org/package/"
2183 "parsec-numbers/parsec-numbers-" version ".tar.gz"))
2184 (sha256
2185 (base32 "1gzy4v3r02kvdxvgg1nj83mmb6aph2v4ilf9c7y6nbvi2x49l0bp"))))
2186 (build-system haskell-build-system)
2187 (inputs
2188 `(("ghc-parsec" ,ghc-parsec)))
2189 (home-page "https://hackage.haskell.org/package/parsec-numbers")
2190 (synopsis "Utilities for parsing numbers from strings")
2191 (description
2192 "This package provides the number parsers without the need to use a large
2193 (and unportable) token parser.")
2194 (license license:bsd-3)))
2195
2196 (define-public ghc-paths
2197 (package
2198 (name "ghc-paths")
2199 (version "0.1.0.9")
2200 (outputs '("out" "doc"))
2201 (source
2202 (origin
2203 (method url-fetch)
2204 (uri (string-append
2205 "https://hackage.haskell.org/package/ghc-paths/ghc-paths-"
2206 version
2207 ".tar.gz"))
2208 (sha256
2209 (base32
2210 "0ibrr1dxa35xx20cpp8jzgfak1rdmy344dfwq4vlq013c6w8z9mg"))))
2211 (build-system haskell-build-system)
2212 (home-page "https://github.com/simonmar/ghc-paths")
2213 (synopsis
2214 "Knowledge of GHC's installation directories")
2215 (description
2216 "Knowledge of GHC's installation directories.")
2217 (license license:bsd-3)))
2218
2219 (define-public ghc-utf8-string
2220 (package
2221 (name "ghc-utf8-string")
2222 (version "1.0.1.1")
2223 (source
2224 (origin
2225 (method url-fetch)
2226 (uri (string-append
2227 "https://hackage.haskell.org/package/utf8-string/utf8-string-"
2228 version
2229 ".tar.gz"))
2230 (sha256
2231 (base32 "0h7imvxkahiy8pzr8cpsimifdfvv18lizrb33k6mnq70rcx9w2zv"))))
2232 (build-system haskell-build-system)
2233 (arguments
2234 `(#:cabal-revision
2235 ("3" "02vhj5gykkqa2dyn7s6gn8is1b5fdn9xcqqvlls268g7cpv6rk38")))
2236 (home-page "https://github.com/glguy/utf8-string/")
2237 (synopsis "Support for reading and writing UTF8 Strings")
2238 (description
2239 "A UTF8 layer for Strings. The utf8-string package provides operations
2240 for encoding UTF8 strings to Word8 lists and back, and for reading and writing
2241 UTF8 without truncation.")
2242 (license license:bsd-3)))
2243
2244 (define-public ghc-setenv
2245 (package
2246 (name "ghc-setenv")
2247 (version "0.1.1.3")
2248 (source
2249 (origin
2250 (method url-fetch)
2251 (uri (string-append
2252 "https://hackage.haskell.org/package/setenv/setenv-"
2253 version
2254 ".tar.gz"))
2255 (sha256
2256 (base32
2257 "0cnbgrvb9byyahb37zlqrj05rj25v190crgcw8wmlgf0mwwxyn73"))))
2258 (build-system haskell-build-system)
2259 (home-page "https://hackage.haskell.org/package/setenv")
2260 (synopsis "Library for setting environment variables")
2261 (description "This package provides a Haskell library for setting
2262 environment variables.")
2263 (license license:expat)))
2264
2265 (define-public ghc-setlocale
2266 (package
2267 (name "ghc-setlocale")
2268 (version "1.0.0.8")
2269 (source (origin
2270 (method url-fetch)
2271 (uri (string-append
2272 "https://hackage.haskell.org/package/setlocale-"
2273 version "/setlocale-" version ".tar.gz"))
2274 (sha256
2275 (base32
2276 "0sdrsmkhw08483d73ysgm2926fdbhii61br03lqpqw0lfzj4ilbd"))))
2277 (build-system haskell-build-system)
2278 (home-page "https://hackage.haskell.org/package/setlocale")
2279 (synopsis "Haskell bindings to setlocale")
2280 (description "This package provides Haskell bindings to the
2281 @code{setlocale} C function.")
2282 (license license:bsd-3)))
2283
2284 (define-public ghc-x11
2285 (package
2286 (name "ghc-x11")
2287 (version "1.9")
2288 (source
2289 (origin
2290 (method url-fetch)
2291 (uri (string-append "https://hackage.haskell.org/package/X11/"
2292 "X11-" version ".tar.gz"))
2293 (sha256
2294 (base32 "1f8dy6ckkyvpcv7zlniyv01cqjb9lgqscm8pml58cvwc7n38w4qh"))))
2295 (build-system haskell-build-system)
2296 (inputs
2297 `(("libx11" ,libx11)
2298 ("libxrandr" ,libxrandr)
2299 ("libxinerama" ,libxinerama)
2300 ("libxscrnsaver" ,libxscrnsaver)
2301 ("ghc-data-default" ,ghc-data-default)))
2302 (home-page "https://github.com/haskell-pkg-janitors/X11")
2303 (synopsis "Bindings to the X11 graphics library")
2304 (description
2305 "This package provides Haskell bindings to the X11 graphics library. The
2306 bindings are a direct translation of the C bindings.")
2307 (license license:bsd-3)))
2308
2309 (define-public ghc-x11-xft
2310 (package
2311 (name "ghc-x11-xft")
2312 (version "0.3.1")
2313 (source
2314 (origin
2315 (method url-fetch)
2316 (uri (string-append "https://hackage.haskell.org/package/X11-xft/"
2317 "X11-xft-" version ".tar.gz"))
2318 (sha256
2319 (base32 "1lgqb0s2qfwwgbvwxhjbi23rbwamzdi0l0slfr20c3jpcbp3zfjf"))))
2320 (inputs
2321 `(("ghc-x11" ,ghc-x11)
2322 ("ghc-utf8-string" ,ghc-utf8-string)
2323 ("libx11" ,libx11)
2324 ("libxft" ,libxft)
2325 ("xorgproto" ,xorgproto)))
2326 (native-inputs
2327 `(("pkg-config" ,pkg-config)))
2328 (build-system haskell-build-system)
2329 (home-page "https://hackage.haskell.org/package/X11-xft")
2330 (synopsis "Bindings to Xft")
2331 (description
2332 "Bindings to the Xft, X Free Type interface library, and some Xrender
2333 parts.")
2334 (license license:lgpl2.1)))
2335
2336 (define-public ghc-stringbuilder
2337 (package
2338 (name "ghc-stringbuilder")
2339 (version "0.5.1")
2340 (source
2341 (origin
2342 (method url-fetch)
2343 (uri (string-append
2344 "https://hackage.haskell.org/package/stringbuilder/stringbuilder-"
2345 version
2346 ".tar.gz"))
2347 (sha256
2348 (base32
2349 "1fh3csx1wcssn8xyvl4ip4aprh9l4qyz2kk8mgjvqvc0vb2bsy6q"))))
2350 (build-system haskell-build-system)
2351 (arguments `(#:tests? #f)) ; FIXME: circular dependencies with tests
2352 ; enabled
2353 (home-page "https://hackage.haskell.org/package/stringbuilder")
2354 (synopsis "Writer monad for multi-line string literals")
2355 (description "This package provides a writer monad for multi-line string
2356 literals.")
2357 (license license:expat)))
2358
2359 (define-public ghc-zlib
2360 (package
2361 (name "ghc-zlib")
2362 (version "0.6.2")
2363 (outputs '("out" "doc"))
2364 (source
2365 (origin
2366 (method url-fetch)
2367 (uri (string-append
2368 "https://hackage.haskell.org/package/zlib/zlib-"
2369 version
2370 ".tar.gz"))
2371 (sha256
2372 (base32
2373 "1vbzf0awb6zb456xf48za1kl22018646cfzq4frvxgb9ay97vk0d"))))
2374 (build-system haskell-build-system)
2375 (arguments
2376 `(#:phases
2377 (modify-phases %standard-phases
2378 (add-before 'configure 'strip-test-framework-constraints
2379 (lambda _
2380 (substitute* "zlib.cabal"
2381 (("tasty >= 0\\.8 && < 0\\.12") "tasty")
2382 (("tasty-hunit >= 0\\.8 && < 0\\.10") "tasty-hunit")
2383 (("tasty-quickcheck == 0\\.8\\.\\*") "tasty-quickcheck")))))))
2384 (inputs `(("zlib" ,zlib)))
2385 (native-inputs
2386 `(("ghc-quickcheck" ,ghc-quickcheck)
2387 ("ghc-tasty" ,ghc-tasty)
2388 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
2389 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
2390 (home-page "https://hackage.haskell.org/package/zlib")
2391 (synopsis
2392 "Compression and decompression in the gzip and zlib formats")
2393 (description
2394 "This package provides a pure interface for compressing and decompressing
2395 streams of data represented as lazy @code{ByteString}s. It uses the zlib C
2396 library so it has high performance. It supports the @code{zlib}, @code{gzip}
2397 and @code{raw} compression formats. It provides a convenient high level API
2398 suitable for most tasks and for the few cases where more control is needed it
2399 provides access to the full zlib feature set.")
2400 (license license:bsd-3)))
2401
2402 (define-public ghc-stm
2403 (package
2404 (name "ghc-stm")
2405 (version "2.4.5.0")
2406 (outputs '("out" "doc"))
2407 (source
2408 (origin
2409 (method url-fetch)
2410 (uri (string-append
2411 "https://hackage.haskell.org/package/stm/stm-"
2412 version
2413 ".tar.gz"))
2414 (sha256
2415 (base32
2416 "19sr11a0hqikhvf561b38phz6k3zg9s157a0f5ffvghk7wcdpmri"))))
2417 (build-system haskell-build-system)
2418 (home-page "https://hackage.haskell.org/package/stm")
2419 (synopsis "Software Transactional Memory")
2420 (description
2421 "Software Transactional Memory, or STM, is an abstraction for concurrent
2422 communication. The main benefits of STM are composability and modularity.
2423 That is, using STM you can write concurrent abstractions that can be easily
2424 composed with any other abstraction built using STM, without exposing the
2425 details of how your abstraction ensures safety. This is typically not the
2426 case with other forms of concurrent communication, such as locks or
2427 @code{MVar}s.")
2428 (license license:bsd-3)))
2429
2430 (define-public ghc-parallel
2431 (package
2432 (name "ghc-parallel")
2433 (version "3.2.2.0")
2434 (outputs '("out" "doc"))
2435 (source
2436 (origin
2437 (method url-fetch)
2438 (uri (string-append
2439 "https://hackage.haskell.org/package/parallel/parallel-"
2440 version
2441 ".tar.gz"))
2442 (sha256
2443 (base32
2444 "1xkfi96w6yfpppd0nw1rnszdxmvifwzm699ilv6332ra3akm610p"))))
2445 (build-system haskell-build-system)
2446 (home-page "https://hackage.haskell.org/package/parallel")
2447 (synopsis "Parallel programming library")
2448 (description
2449 "This package provides a library for parallel programming.")
2450 (license license:bsd-3)))
2451
2452 (define-public ghc-safesemaphore
2453 (package
2454 (name "ghc-safesemaphore")
2455 (version "0.10.1")
2456 (source
2457 (origin
2458 (method url-fetch)
2459 (uri (string-append "https://hackage.haskell.org/package/"
2460 "SafeSemaphore/SafeSemaphore-" version ".tar.gz"))
2461 (sha256
2462 (base32
2463 "0rpg9j6fy70i0b9dkrip9d6wim0nac0snp7qzbhykjkqlcvvgr91"))))
2464 (build-system haskell-build-system)
2465 (inputs
2466 `(("ghc-stm" ,ghc-stm)))
2467 (native-inputs
2468 `(("ghc-hunit" ,ghc-hunit)))
2469 (home-page "https://github.com/ChrisKuklewicz/SafeSemaphore")
2470 (synopsis "Exception safe semaphores")
2471 (description "This library provides exception safe semaphores that can be
2472 used in place of @code{QSem}, @code{QSemN}, and @code{SampleVar}, all of which
2473 are not exception safe and can be broken by @code{killThread}.")
2474 (license license:bsd-3)))
2475
2476 (define-public ghc-text
2477 (package
2478 (name "ghc-text")
2479 (version "1.2.3.0")
2480 (outputs '("out" "doc"))
2481 (source
2482 (origin
2483 (method url-fetch)
2484 (uri (string-append
2485 "https://hackage.haskell.org/package/text/text-"
2486 version
2487 ".tar.gz"))
2488 (sha256
2489 (base32
2490 "06iir7q99rnffzxi8gagn8w1k9m49368sbidgz634fv1gxib3q10"))))
2491 (build-system haskell-build-system)
2492 ;; The test dependencies depend on ghc-text: ghc-test-framework -> ghc-xml -> ghc-text
2493 (arguments `(#:tests? #f))
2494 (inputs
2495 `(("ghc-random" ,ghc-random)))
2496 (home-page "https://github.com/bos/text")
2497 (synopsis "Efficient packed Unicode text type library")
2498 (description
2499 "An efficient packed, immutable Unicode text type (both strict and
2500 lazy), with a powerful loop fusion optimization framework.
2501
2502 The @code{Text} type represents Unicode character strings, in a time and
2503 space-efficient manner. This package provides text processing
2504 capabilities that are optimized for performance critical use, both
2505 in terms of large data quantities and high speed.")
2506 (license license:bsd-3)))
2507
2508 (define-public ghc-text-binary
2509 (package
2510 (name "ghc-text-binary")
2511 (version "0.2.1.1")
2512 (source
2513 (origin
2514 (method url-fetch)
2515 (uri (string-append "https://hackage.haskell.org/package/"
2516 "text-binary/text-binary-"
2517 version ".tar.gz"))
2518 (sha256
2519 (base32
2520 "18gl10pwg3qwsk0za3c70j4n6a9129wwf1b7d3a461h816yv55xn"))))
2521 (build-system haskell-build-system)
2522 (inputs `(("ghc-text" ,ghc-text)))
2523 (home-page "https://github.com/kawu/text-binary")
2524 (synopsis "Binary instances for text types")
2525 (description
2526 "This package provides a compatibility layer providing @code{Binary}
2527 instances for strict and lazy text types for versions older than 1.2.1 of the
2528 text package.")
2529 (license license:bsd-2)))
2530
2531 (define-public ghc-strict
2532 (package
2533 (name "ghc-strict")
2534 (version "0.3.2")
2535 (source
2536 (origin
2537 (method url-fetch)
2538 (uri (string-append "https://hackage.haskell.org/package/strict/strict-"
2539 version ".tar.gz"))
2540 (sha256
2541 (base32 "08cjajqz9h47fkq98mlf3rc8n5ghbmnmgn8pfsl3bdldjdkmmlrc"))))
2542 (build-system haskell-build-system)
2543 (home-page "https://hackage.haskell.org/package/strict")
2544 (synopsis "Strict data types and String IO")
2545 (description
2546 "This package provides strict versions of some standard Haskell data
2547 types, such as pairs, @code{Maybe} and @code{Either}. It also contains strict
2548 IO operations.")
2549 (license license:bsd-3)))
2550
2551 (define-public ghc-hashable
2552 (package
2553 (name "ghc-hashable")
2554 (version "1.2.7.0")
2555 (outputs '("out" "doc"))
2556 (source
2557 (origin
2558 (method url-fetch)
2559 (uri (string-append
2560 "https://hackage.haskell.org/package/hashable/hashable-"
2561 version
2562 ".tar.gz"))
2563 (sha256
2564 (base32
2565 "1gra8gq3kb7b2sd845h55yxlrfqx3ii004c6vjhga8v0b30fzdgc"))))
2566 (build-system haskell-build-system)
2567 (inputs
2568 `(("ghc-text" ,ghc-text)
2569 ("ghc-random" ,ghc-random)))
2570 (native-inputs
2571 `(("ghc-test-framework" ,ghc-test-framework)
2572 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
2573 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)
2574 ("ghc-hunit" ,ghc-hunit)
2575 ("ghc-quickcheck" ,ghc-quickcheck)))
2576 (home-page "https://github.com/tibbe/hashable")
2577 (synopsis "Class for types that can be converted to a hash value")
2578 (description
2579 "This package defines a class, @code{Hashable}, for types that can be
2580 converted to a hash value. This class exists for the benefit of hashing-based
2581 data structures. The package provides instances for basic types and a way to
2582 combine hash values.")
2583 (license license:bsd-3)))
2584
2585 (define-public ghc-hashable-bootstrap
2586 (package
2587 (inherit ghc-hashable)
2588 (name "ghc-hashable-bootstrap")
2589 (arguments `(#:tests? #f))
2590 (native-inputs '())
2591 (properties '((hidden? #t)))))
2592
2593 (define-public ghc-hashable-time
2594 (package
2595 (name "ghc-hashable-time")
2596 (version "0.2.0.1")
2597 (source
2598 (origin
2599 (method url-fetch)
2600 (uri (string-append
2601 "https://hackage.haskell.org/package/hashable-time/hashable-time-"
2602 version
2603 ".tar.gz"))
2604 (sha256
2605 (base32
2606 "0k932nyd08l3xxbh2g3n76py2f4kd9yw4s5a065vjz0xp6wjnxdm"))))
2607 (build-system haskell-build-system)
2608 (arguments
2609 `(#:cabal-revision
2610 ("1" "0rv40xkg3gj8jnqsry1gq3f5s5la6d5arg8fzkirnwdpcgha1as6")))
2611 (inputs `(("ghc-hashable" ,ghc-hashable)))
2612 (home-page "http://hackage.haskell.org/package/hashable-time")
2613 (synopsis "Hashable instances for Data.Time")
2614 (description
2615 "This package provides @code{Hashable} instances for types in
2616 @code{Data.Time}.")
2617 (license license:bsd-3)))
2618
2619 (define-public ghc-data-hash
2620 (package
2621 (name "ghc-data-hash")
2622 (version "0.2.0.1")
2623 (source
2624 (origin
2625 (method url-fetch)
2626 (uri (string-append "https://hackage.haskell.org/package/data-hash"
2627 "/data-hash-" version ".tar.gz"))
2628 (sha256
2629 (base32 "1ghbqvc48gf9p8wiy71hdpaj7by3b9cw6wgwi3qqz8iw054xs5wi"))))
2630 (build-system haskell-build-system)
2631 (inputs
2632 `(("ghc-quickcheck" ,ghc-quickcheck)
2633 ("ghc-test-framework" ,ghc-test-framework)
2634 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
2635 (home-page "https://hackage.haskell.org/package/data-hash")
2636 (synopsis "Combinators for building fast hashing functions")
2637 (description
2638 "This package provides combinators for building fast hashing functions.
2639 It includes hashing functions for all basic Haskell98 types.")
2640 (license license:bsd-3)))
2641
2642 (define-public ghc-murmur-hash
2643 (package
2644 (name "ghc-murmur-hash")
2645 (version "0.1.0.9")
2646 (source
2647 (origin
2648 (method url-fetch)
2649 (uri (string-append "https://hackage.haskell.org/package/murmur-hash"
2650 "/murmur-hash-" version ".tar.gz"))
2651 (sha256
2652 (base32 "1bb58kfnzvx3mpc0rc0dhqc1fk36nm8prd6gvf20gk6lxaadpfc9"))))
2653 (build-system haskell-build-system)
2654 (home-page "https://github.com/nominolo/murmur-hash")
2655 (synopsis "MurmurHash2 implementation for Haskell")
2656 (description
2657 "This package provides an implementation of MurmurHash2, a good, fast,
2658 general-purpose, non-cryptographic hashing function. See
2659 @url{https://sites.google.com/site/murmurhash/} for details. This
2660 implementation is pure Haskell, so it might be a bit slower than a C FFI
2661 binding.")
2662 (license license:bsd-3)))
2663
2664 (define-public ghc-random
2665 (package
2666 (name "ghc-random")
2667 (version "1.1")
2668 (outputs '("out" "doc"))
2669 (source
2670 (origin
2671 (method url-fetch)
2672 (uri (string-append
2673 "https://hackage.haskell.org/package/random/random-"
2674 version
2675 ".tar.gz"))
2676 (sha256
2677 (base32 "0nis3lbkp8vfx8pkr6v7b7kr5m334bzb0fk9vxqklnp2aw8a865p"))))
2678 (build-system haskell-build-system)
2679 (home-page "https://hackage.haskell.org/package/random")
2680 (synopsis "Random number library")
2681 (description "This package provides a basic random number generation
2682 library, including the ability to split random number generators.")
2683 (license license:bsd-3)))
2684
2685 (define-public ghc-primitive
2686 (package
2687 (name "ghc-primitive")
2688 (version "0.6.3.0")
2689 (outputs '("out" "doc"))
2690 (source
2691 (origin
2692 (method url-fetch)
2693 (uri (string-append
2694 "https://hackage.haskell.org/package/primitive/primitive-"
2695 version
2696 ".tar.gz"))
2697 (sha256
2698 (base32
2699 "0mcmbnj08wd6zfwn7xk6zf5hy5zwbla5v78pw0dpymqg9s0gzpnd"))))
2700 (build-system haskell-build-system)
2701 (home-page
2702 "https://github.com/haskell/primitive")
2703 (synopsis "Primitive memory-related operations")
2704 (description
2705 "This package provides various primitive memory-related operations.")
2706 (license license:bsd-3)))
2707
2708 (define-public ghc-tf-random
2709 (package
2710 (name "ghc-tf-random")
2711 (version "0.5")
2712 (outputs '("out" "doc"))
2713 (source
2714 (origin
2715 (method url-fetch)
2716 (uri (string-append
2717 "https://hackage.haskell.org/package/tf-random/tf-random-"
2718 version
2719 ".tar.gz"))
2720 (sha256
2721 (base32 "0445r2nns6009fmq0xbfpyv7jpzwv0snccjdg7hwj4xk4z0cwc1f"))))
2722 (build-system haskell-build-system)
2723 (inputs
2724 `(("ghc-primitive" ,ghc-primitive)
2725 ("ghc-random" ,ghc-random)))
2726 (home-page "https://hackage.haskell.org/package/tf-random")
2727 (synopsis "High-quality splittable pseudorandom number generator")
2728 (description "This package contains an implementation of a high-quality
2729 splittable pseudorandom number generator. The generator is based on a
2730 cryptographic hash function built on top of the ThreeFish block cipher. See
2731 the paper \"Splittable Pseudorandom Number Generators Using Cryptographic
2732 Hashing\" by Claessen, Pałka for details and the rationale of the design.")
2733 (license license:bsd-3)))
2734
2735 (define-public ghc-transformers-base
2736 (package
2737 (name "ghc-transformers-base")
2738 (version "0.4.5.2")
2739 (source
2740 (origin
2741 (method url-fetch)
2742 (uri (string-append
2743 "https://hackage.haskell.org/package/transformers-base/transformers-base-"
2744 version
2745 ".tar.gz"))
2746 (sha256
2747 (base32
2748 "1s256bi0yh0x2hp2gwd30f3mg1cv53zz397dv1yhfsnfzmihrj6h"))))
2749 (build-system haskell-build-system)
2750 (inputs
2751 `(("ghc-stm" ,ghc-stm)
2752 ("ghc-transformers-compat" ,ghc-transformers-compat)))
2753 (home-page
2754 "https://hackage.haskell.org/package/transformers-compat")
2755 (synopsis
2756 "Backported transformer library")
2757 (description
2758 "Backported versions of types that were added to transformers in
2759 transformers 0.3 and 0.4 for users who need strict transformers 0.2 or 0.3
2760 compatibility to run on old versions of the platform.")
2761 (license license:bsd-3)))
2762
2763 (define-public ghc-transformers-compat
2764 (package
2765 (name "ghc-transformers-compat")
2766 (version "0.6.2")
2767 (source
2768 (origin
2769 (method url-fetch)
2770 (uri (string-append
2771 "https://hackage.haskell.org/package/transformers-compat"
2772 "/transformers-compat-" version ".tar.gz"))
2773 (sha256
2774 (base32
2775 "1gp4a8kvniwgm8947ghb4iwv4b7wd6ry4kvv4nfnym4agf5j41nw"))))
2776 (build-system haskell-build-system)
2777 (home-page "https://github.com/ekmett/transformers-compat/")
2778 (synopsis "Small compatibility shim between transformers 0.3 and 0.4")
2779 (description "This package includes backported versions of types that were
2780 added to transformers in transformers 0.3 and 0.4 for users who need strict
2781 transformers 0.2 or 0.3 compatibility to run on old versions of the platform,
2782 but also need those types.")
2783 (license license:bsd-3)))
2784
2785 (define-public ghc-unix-time
2786 (package
2787 (name "ghc-unix-time")
2788 (version "0.3.8")
2789 (source
2790 (origin
2791 (method url-fetch)
2792 (uri (string-append
2793 "https://hackage.haskell.org/package/unix-time/unix-time-"
2794 version
2795 ".tar.gz"))
2796 (sha256
2797 (base32
2798 "051slgpid5cxiaw203ky0ql3823h28fcjs08axkzd4265wrvv8fw"))))
2799 (build-system haskell-build-system)
2800 (arguments
2801 `(#:tests? #f)) ; FIXME: Test fails with "System.Time not found". This
2802 ; is weird, that should be provided by GHC 7.10.2.
2803 (inputs
2804 `(("ghc-old-time" ,ghc-old-time)
2805 ("ghc-old-locale" ,ghc-old-locale)))
2806 (home-page "https://hackage.haskell.org/package/unix-time")
2807 (synopsis "Unix time parser/formatter and utilities")
2808 (description "This library provides fast parsing and formatting utilities
2809 for Unix time in Haskell.")
2810 (license license:bsd-3)))
2811
2812 (define-public ghc-unix-compat
2813 (package
2814 (name "ghc-unix-compat")
2815 (version "0.5.1")
2816 (source
2817 (origin
2818 (method url-fetch)
2819 (uri (string-append
2820 "https://hackage.haskell.org/package/unix-compat/unix-compat-"
2821 version
2822 ".tar.gz"))
2823 (sha256
2824 (base32
2825 "0llwl7rp63fy2ychwdclz1afj45pbin5pfl01dvn6rwhvmwhr7d3"))))
2826 (build-system haskell-build-system)
2827 (home-page
2828 "https://github.com/jystic/unix-compat")
2829 (synopsis "Portable POSIX-compatibility layer")
2830 (description
2831 "This package provides portable implementations of parts of the unix
2832 package. This package re-exports the unix package when available. When it
2833 isn't available, portable implementations are used.")
2834 (license license:bsd-3)))
2835
2836 (define-public ghc-indents
2837 (package
2838 (name "ghc-indents")
2839 (version "0.5.0.0")
2840 (source (origin
2841 (method url-fetch)
2842 (uri (string-append
2843 "https://hackage.haskell.org/package/indents/indents-"
2844 version ".tar.gz"))
2845 (sha256
2846 (base32
2847 "1ly3v41jacc6lrsvg4j3m5a6zs90gr8dyif5m6bf34hj1k5cgg0n"))))
2848 (build-system haskell-build-system)
2849 ;; This package needs an older version of tasty.
2850 (arguments '(#:tests? #f))
2851 (inputs
2852 `(("ghc-parsec" ,ghc-parsec)
2853 ("ghc-concatenative" ,ghc-concatenative)))
2854 (native-inputs
2855 `(("ghc-tasty" ,ghc-tasty)
2856 ("ghc-tasty-hunit" ,ghc-tasty-hunit)))
2857 (home-page "http://patch-tag.com/r/salazar/indents")
2858 (synopsis "Indentation sensitive parser-combinators for parsec")
2859 (description
2860 "This library provides functions for use in parsing indentation sensitive
2861 contexts. It parses blocks of lines all indented to the same level as well as
2862 lines continued at an indented level below.")
2863 (license license:bsd-3)))
2864
2865 (define-public ghc-iproute
2866 (package
2867 (name "ghc-iproute")
2868 (version "1.7.5")
2869 (source
2870 (origin
2871 (method url-fetch)
2872 (uri (string-append
2873 "https://hackage.haskell.org/package/iproute/iproute-"
2874 version
2875 ".tar.gz"))
2876 (sha256
2877 (base32
2878 "1vw1nm3s8vz1hqnjnqd3wh5rr4q3m2r4izn5ynhf93h9185qwqzd"))))
2879 (build-system haskell-build-system)
2880 (arguments `(#:tests? #f)) ; FIXME: Tests cannot find System.ByteOrder,
2881 ; exported by ghc-byteorder. Doctest issue.
2882 (inputs
2883 `(("ghc-appar" ,ghc-appar)
2884 ("ghc-byteorder" ,ghc-byteorder)
2885 ("ghc-network" ,ghc-network)
2886 ("ghc-safe" ,ghc-safe)))
2887 (home-page "https://www.mew.org/~kazu/proj/iproute/")
2888 (synopsis "IP routing table")
2889 (description "IP Routing Table is a tree of IP ranges to search one of
2890 them on the longest match base. It is a kind of TRIE with one way branching
2891 removed. Both IPv4 and IPv6 are supported.")
2892 (license license:bsd-3)))
2893
2894 (define-public ghc-iwlib
2895 (package
2896 (name "ghc-iwlib")
2897 (version "0.1.0")
2898 (source
2899 (origin
2900 (method url-fetch)
2901 (uri (string-append "https://hackage.haskell.org/package/iwlib/iwlib-"
2902 version ".tar.gz"))
2903 (sha256
2904 (base32 "0khmfwql4vwj55idsxmhjhrbqzfir3g9wm5lmpvnf77mm95cfpdz"))))
2905 (build-system haskell-build-system)
2906 (inputs
2907 `(("wireless-tools" ,wireless-tools)))
2908 (home-page "https://github.com/jaor/iwlib")
2909 (synopsis "Haskell binding to the iw wireless networking library")
2910 (description
2911 "IWlib is a thin Haskell binding to the iw C library. It provides
2912 information about the current wireless network connections, and adapters on
2913 supported systems.")
2914 (license license:bsd-3)))
2915
2916 (define-public ghc-regex-base
2917 (package
2918 (name "ghc-regex-base")
2919 (version "0.93.2")
2920 (source
2921 (origin
2922 (method url-fetch)
2923 (uri (string-append
2924 "https://hackage.haskell.org/package/regex-base/regex-base-"
2925 version
2926 ".tar.gz"))
2927 (sha256
2928 (base32
2929 "0y1j4h2pg12c853nzmczs263di7xkkmlnsq5dlp5wgbgl49mgp10"))))
2930 (build-system haskell-build-system)
2931 (home-page
2932 "https://sourceforge.net/projects/lazy-regex")
2933 (synopsis "Replaces/Enhances Text.Regex")
2934 (description "@code{Text.Regex.Base} provides the interface API for
2935 regex-posix, regex-pcre, regex-parsec, regex-tdfa, regex-dfa.")
2936 (license license:bsd-3)))
2937
2938 (define-public ghc-regex-posix
2939 (package
2940 (name "ghc-regex-posix")
2941 (version "0.95.2")
2942 (source
2943 (origin
2944 (method url-fetch)
2945 (uri (string-append
2946 "https://hackage.haskell.org/package/regex-posix/regex-posix-"
2947 version
2948 ".tar.gz"))
2949 (sha256
2950 (base32
2951 "0gkhzhj8nvfn1ija31c7xnl6p0gadwii9ihyp219ck2arlhrj0an"))))
2952 (build-system haskell-build-system)
2953 (inputs
2954 `(("ghc-regex-base" ,ghc-regex-base)))
2955 (home-page "https://sourceforge.net/projects/lazy-regex")
2956 (synopsis "POSIX regular expressions for Haskell")
2957 (description "This library provides the POSIX regex backend used by the
2958 Haskell library @code{regex-base}.")
2959 (license license:bsd-3)))
2960
2961 (define-public ghc-regex-compat
2962 (package
2963 (name "ghc-regex-compat")
2964 (version "0.95.1")
2965 (source
2966 (origin
2967 (method url-fetch)
2968 (uri (string-append
2969 "https://hackage.haskell.org/package/regex-compat/regex-compat-"
2970 version
2971 ".tar.gz"))
2972 (sha256
2973 (base32
2974 "0fwmima3f04p9y4h3c23493n1xj629ia2dxaisqm6rynljjv2z6m"))))
2975 (build-system haskell-build-system)
2976 (inputs
2977 `(("ghc-regex-base" ,ghc-regex-base)
2978 ("ghc-regex-posix" ,ghc-regex-posix)))
2979 (home-page "https://sourceforge.net/projects/lazy-regex")
2980 (synopsis "Replaces/Enhances Text.Regex")
2981 (description "This library provides one module layer over
2982 @code{regex-posix} to replace @code{Text.Regex}.")
2983 (license license:bsd-3)))
2984
2985 (define-public ghc-regex-tdfa-rc
2986 (package
2987 (name "ghc-regex-tdfa-rc")
2988 (version "1.1.8.3")
2989 (source
2990 (origin
2991 (method url-fetch)
2992 (uri (string-append
2993 "https://hackage.haskell.org/package/regex-tdfa-rc/regex-tdfa-rc-"
2994 version
2995 ".tar.gz"))
2996 (sha256
2997 (base32
2998 "1vi11i23gkkjg6193ak90g55akj69bhahy542frkwb68haky4pp3"))))
2999 (build-system haskell-build-system)
3000 (inputs
3001 `(("ghc-regex-base" ,ghc-regex-base)
3002 ("ghc-parsec" ,ghc-parsec)))
3003 (home-page
3004 "https://hackage.haskell.org/package/regex-tdfa")
3005 (synopsis "Tagged DFA regex engine for Haskell")
3006 (description "A new all-Haskell \"tagged\" DFA regex engine, inspired by
3007 @code{libtre} (fork by Roman Cheplyaka).")
3008 (license license:bsd-3)))
3009
3010 (define-public ghc-regex-tdfa-text
3011 (package
3012 (name "ghc-regex-tdfa-text")
3013 (version "1.0.0.3")
3014 (source
3015 (origin
3016 (method url-fetch)
3017 (uri (string-append
3018 "https://hackage.haskell.org/package/regex-tdfa-text/"
3019 "regex-tdfa-text-" version ".tar.gz"))
3020 (sha256
3021 (base32
3022 "0090g6lgbdm9lywpqm2d3724nnnh24nx3vnlqr96qc2w486pmmrq"))))
3023 (build-system haskell-build-system)
3024 (inputs
3025 `(("ghc-text" ,ghc-text)
3026 ("ghc-regex-base" ,ghc-regex-base)
3027 ("ghc-regex-tdfa" ,ghc-regex-tdfa)))
3028 (home-page
3029 "http://hackage.haskell.org/package/regex-tdfa-text")
3030 (synopsis "Text interface for regex-tdfa")
3031 (description
3032 "This provides an extra text interface for regex-tdfa.")
3033 (license license:bsd-3)))
3034
3035 (define-public ghc-regex
3036 (package
3037 (name "ghc-regex")
3038 (version "1.0.1.3")
3039 (source
3040 (origin
3041 (method url-fetch)
3042 (uri (string-append "https://hackage.haskell.org/package/regex/"
3043 "regex-" version ".tar.gz"))
3044 (sha256
3045 (base32
3046 "1sjkpkgv4phy5b5v2lr89x4vx4dh44pj0sbvlsp6n86w9v6v4jwb"))))
3047 (build-system haskell-build-system)
3048 (arguments
3049 `(#:phases
3050 (modify-phases %standard-phases
3051 (add-after 'unpack 'relax-dependencies
3052 (lambda _
3053 (substitute* "regex.cabal"
3054 (("base-compat.*>=.*0.6.*")
3055 "base-compat >= 0.6\n")
3056 (("template-haskell.*>=.*2.7.*")
3057 "template-haskell >= 2.7\n"))
3058 #t)))))
3059 (inputs
3060 `(("ghc-base-compat" ,ghc-base-compat)
3061 ("ghc-hashable" ,ghc-hashable)
3062 ("ghc-regex-base" ,ghc-regex-base)
3063 ("ghc-regex-pcre-builtin" ,ghc-regex-pcre-builtin)
3064 ("ghc-regex-tdfa" ,ghc-regex-tdfa)
3065 ("ghc-regex-tdfa-text" ,ghc-regex-tdfa-text)
3066 ("ghc-text" ,ghc-text)
3067 ("ghc-time-locale-compat" ,ghc-time-locale-compat)
3068 ("ghc-unordered-containers" ,ghc-unordered-containers)
3069 ("ghc-utf8-string" ,ghc-utf8-string)))
3070 (home-page "http://regex.uk")
3071 (synopsis "Toolkit for regex-base")
3072 (description
3073 "This package provides a regular expression toolkit for @code{regex-base}
3074 with compile-time checking of regular expression syntax, data types for
3075 matches and captures, a text replacement toolkit, portable options, high-level
3076 AWK-like tools for building text processing apps, regular expression macros
3077 with parsers and test bench, comprehensive documentation, tutorials and
3078 copious examples.")
3079 (license license:bsd-3)))
3080
3081 (define-public ghc-parsers
3082 (package
3083 (name "ghc-parsers")
3084 (version "0.12.9")
3085 (source
3086 (origin
3087 (method url-fetch)
3088 (uri (string-append
3089 "https://hackage.haskell.org/package/parsers/parsers-"
3090 version
3091 ".tar.gz"))
3092 (sha256
3093 (base32
3094 "1r05sc1mcglk8w596kq9a1brfn9c2vll8lq16j07ln0vsz4jzrc1"))))
3095 (build-system haskell-build-system)
3096 (arguments `(#:tests? #f)) ; FIXME: Test fails with "cannot satisfy
3097 ; -package attoparsec-0.13.0.1"
3098 (inputs
3099 `(("ghc-base-orphans" ,ghc-base-orphans)
3100 ("ghc-attoparsec" ,ghc-attoparsec)
3101 ("ghc-parsec" ,ghc-parsec)
3102 ("ghc-scientific" ,ghc-scientific)
3103 ("ghc-charset" ,ghc-charset)
3104 ("ghc-text" ,ghc-text)
3105 ("ghc-unordered-containers" ,ghc-unordered-containers)))
3106 (home-page "https://github.com/ekmett/parsers/")
3107 (synopsis "Parsing combinators")
3108 (description "This library provides convenient combinators for working
3109 with and building parsing combinator libraries. Given a few simple instances,
3110 you get access to a large number of canned definitions. Instances exist for
3111 the parsers provided by @code{parsec}, @code{attoparsec} and @code{base}'s
3112 @code{Text.Read}.")
3113 (license license:bsd-3)))
3114
3115 (define-public ghc-trifecta
3116 (package
3117 (name "ghc-trifecta")
3118 (version "2")
3119 (source (origin
3120 (method url-fetch)
3121 (uri (string-append
3122 "https://hackage.haskell.org/package/trifecta/"
3123 "trifecta-" version ".tar.gz"))
3124 (sha256
3125 (base32
3126 "0hznd8i65s81xy13i2qc7cvipw3lfb2yhkv53apbdsh6sbljz5sk"))))
3127 (build-system haskell-build-system)
3128 (inputs
3129 `(("ghc-reducers" ,ghc-reducers)
3130 ("ghc-semigroups" ,ghc-semigroups)
3131 ("ghc-ansi-wl-pprint" ,ghc-ansi-wl-pprint)
3132 ("ghc-ansi-terminal" ,ghc-ansi-terminal)
3133 ("ghc-blaze-builder" ,ghc-blaze-builder)
3134 ("ghc-blaze-html" ,ghc-blaze-html)
3135 ("ghc-blaze-markup" ,ghc-blaze-markup)
3136 ("ghc-charset" ,ghc-charset)
3137 ("ghc-comonad" ,ghc-comonad)
3138 ("ghc-fingertree" ,ghc-fingertree)
3139 ("ghc-hashable" ,ghc-hashable)
3140 ("ghc-lens" ,ghc-lens)
3141 ("ghc-parsers" ,ghc-parsers)
3142 ("ghc-profunctors" ,ghc-profunctors)
3143 ("ghc-unordered-containers" ,ghc-unordered-containers)
3144 ("ghc-utf8-string" ,ghc-utf8-string)))
3145 (native-inputs
3146 `(("cabal-doctest" ,cabal-doctest)
3147 ("ghc-doctest" ,ghc-doctest)
3148 ("ghc-quickcheck" ,ghc-quickcheck)))
3149 (home-page "https://github.com/ekmett/trifecta/")
3150 (synopsis "Parser combinator library with convenient diagnostics")
3151 (description "Trifecta is a modern parser combinator library for Haskell,
3152 with slicing and Clang-style colored diagnostics.")
3153 (license license:bsd-3)))
3154
3155 (define-public ghc-time-locale-compat
3156 (package
3157 (name "ghc-time-locale-compat")
3158 (version "0.1.1.5")
3159 (source
3160 (origin
3161 (method url-fetch)
3162 (uri (string-append "https://hackage.haskell.org/package/"
3163 "time-locale-compat/time-locale-compat-"
3164 version ".tar.gz"))
3165 (sha256
3166 (base32
3167 "0b2hmj8wwrfkndwzgm11qr496ca2ahwdxcj3m0ii91bxvrk1bzq7"))))
3168 (build-system haskell-build-system)
3169 (inputs `(("ghc-old-locale" ,ghc-old-locale)))
3170 (home-page "https://github.com/khibino/haskell-time-locale-compat")
3171 (synopsis "Compatibility of TimeLocale between old-locale and time-1.5")
3172 (description "This package contains a wrapped name module for
3173 @code{TimeLocale}.")
3174 (license license:bsd-3)))
3175
3176 (define-public ghc-attoparsec
3177 (package
3178 (name "ghc-attoparsec")
3179 (version "0.13.2.2")
3180 (source
3181 (origin
3182 (method url-fetch)
3183 (uri (string-append
3184 "https://hackage.haskell.org/package/attoparsec/attoparsec-"
3185 version
3186 ".tar.gz"))
3187 (sha256
3188 (base32
3189 "0j6qcwd146yzlkc9mcvzvnixsyl65n2a68l28322q5v9p4g4g4yx"))))
3190 (build-system haskell-build-system)
3191 (arguments
3192 `(#:phases
3193 (modify-phases %standard-phases
3194 (add-after 'unpack 'patch-for-newer-quickcheck
3195 (lambda _
3196 (substitute* "attoparsec.cabal"
3197 (("QuickCheck >= 2\\.7 && < 2\\.10")
3198 "QuickCheck >= 2.7 && < 2.12"))
3199 ;; This test fails because of the newer QuickCheck:
3200 ;; <https://github.com/bos/attoparsec/issues/134>.
3201 (substitute* "tests/QC/ByteString.hs"
3202 ((", testProperty \"satisfyWith\" satisfyWith")
3203 "")))))))
3204 (inputs
3205 `(("ghc-scientific" ,ghc-scientific)
3206 ("ghc-text" ,ghc-text)))
3207 (native-inputs
3208 `(("ghc-tasty" ,ghc-tasty)
3209 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
3210 ("ghc-quickcheck" ,ghc-quickcheck)
3211 ("ghc-quickcheck-unicode" ,ghc-quickcheck-unicode)
3212 ("ghc-vector" ,ghc-vector)))
3213 (home-page "https://github.com/bos/attoparsec")
3214 (synopsis "Fast combinator parsing for bytestrings and text")
3215 (description "This library provides a fast parser combinator library,
3216 aimed particularly at dealing efficiently with network protocols and
3217 complicated text/binary file formats.")
3218 (license license:bsd-3)))
3219
3220 (define-public ghc-attoparsec-bootstrap
3221 (package
3222 (inherit ghc-attoparsec)
3223 (name "ghc-attoparsec-bootstrap")
3224 (arguments `(#:tests? #f))
3225 (inputs
3226 `(("ghc-scientific" ,ghc-scientific-bootstrap)
3227 ("ghc-text" ,ghc-text)))
3228 (native-inputs '())
3229 (properties '(hidden? #t))))
3230
3231 (define-public ghc-zip-archive
3232 (package
3233 (name "ghc-zip-archive")
3234 (version "0.3.3")
3235 (source
3236 (origin
3237 (method url-fetch)
3238 (uri (string-append
3239 "https://hackage.haskell.org/package/zip-archive/zip-archive-"
3240 version
3241 ".tar.gz"))
3242 (sha256
3243 (base32
3244 "0kf8xyac168bng8a0za2jwrbss7a4ralvci9g54hnvl0gkkxx2lq"))))
3245 (build-system haskell-build-system)
3246 (inputs
3247 `(("ghc-digest" ,ghc-digest)
3248 ("ghc-temporary" ,ghc-temporary)
3249 ("ghc-text" ,ghc-text)
3250 ("ghc-zlib" ,ghc-zlib)))
3251 (native-inputs
3252 `(("ghc-hunit" ,ghc-hunit)
3253 ("unzip" ,unzip)))
3254 (home-page "https://hackage.haskell.org/package/zip-archive")
3255 (synopsis "Zip archive library for Haskell")
3256 (description "The zip-archive library provides functions for creating,
3257 modifying, and extracting files from zip archives in Haskell.")
3258 (license license:bsd-3)))
3259
3260 (define-public ghc-distributive
3261 (package
3262 (name "ghc-distributive")
3263 (version "0.5.3")
3264 (source
3265 (origin
3266 (method url-fetch)
3267 (uri (string-append
3268 "https://hackage.haskell.org/package/distributive/distributive-"
3269 version
3270 ".tar.gz"))
3271 (sha256
3272 (base32
3273 "0y566r97sfyvhsmd4yxiz4ns2mqgwf5bdbp56wgxl6wlkidq0wwi"))))
3274 (build-system haskell-build-system)
3275 (arguments
3276 `(#:cabal-revision
3277 ("6" "06bd38rf31yrvvy989r44pm0id3dsxwcp6nxg7wk6ccj3n2b8rzk")))
3278 (inputs
3279 `(("ghc-tagged" ,ghc-tagged)
3280 ("ghc-base-orphans" ,ghc-base-orphans)
3281 ("ghc-transformers-compat" ,ghc-transformers-compat)
3282 ("ghc-semigroups" ,ghc-semigroups)
3283 ("ghc-generic-deriving" ,ghc-generic-deriving)))
3284 (native-inputs
3285 `(("cabal-doctest" ,cabal-doctest)
3286 ("ghc-doctest" ,ghc-doctest)
3287 ("ghc-hspec" ,ghc-hspec)
3288 ("hspec-discover" ,hspec-discover)))
3289 (home-page "https://github.com/ekmett/distributive/")
3290 (synopsis "Distributive functors for Haskell")
3291 (description "This package provides distributive functors for Haskell.
3292 Dual to @code{Traversable}.")
3293 (license license:bsd-3)))
3294
3295 (define-public ghc-cereal
3296 (package
3297 (name "ghc-cereal")
3298 (version "0.5.7.0")
3299 (source
3300 (origin
3301 (method url-fetch)
3302 (uri (string-append
3303 "https://hackage.haskell.org/package/cereal/cereal-"
3304 version
3305 ".tar.gz"))
3306 (sha256
3307 (base32
3308 "1j7imh2mzqcljld7sx0av69699955rpy3hzivi5723i6a9nszgbs"))))
3309 (build-system haskell-build-system)
3310 (native-inputs
3311 `(("ghc-quickcheck" ,ghc-quickcheck)
3312 ("ghc-fail" ,ghc-fail)
3313 ("ghc-test-framework" ,ghc-test-framework)
3314 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
3315 (home-page "https://hackage.haskell.org/package/cereal")
3316 (synopsis "Binary serialization library")
3317 (description "This package provides a binary serialization library,
3318 similar to @code{binary}, that introduces an @code{isolate} primitive for
3319 parser isolation, and labeled blocks for better error messages.")
3320 (license license:bsd-3)))
3321
3322 (define-public ghc-comonad
3323 (package
3324 (name "ghc-comonad")
3325 (version "5.0.4")
3326 (source
3327 (origin
3328 (method url-fetch)
3329 (uri (string-append
3330 "https://hackage.haskell.org/package/comonad/comonad-"
3331 version
3332 ".tar.gz"))
3333 (sha256
3334 (base32
3335 "09g870c4flp4k3fgbibsd0mmfjani1qcpbcl685v8x89kxzrva3q"))))
3336 (build-system haskell-build-system)
3337 (native-inputs
3338 `(("cabal-doctest" ,cabal-doctest)
3339 ("ghc-doctest" ,ghc-doctest)))
3340 (inputs
3341 `(("ghc-contravariant" ,ghc-contravariant)
3342 ("ghc-distributive" ,ghc-distributive)
3343 ("ghc-semigroups" ,ghc-semigroups)
3344 ("ghc-tagged" ,ghc-tagged)
3345 ("ghc-transformers-compat" ,ghc-transformers-compat)))
3346 (home-page "https://github.com/ekmett/comonad/")
3347 (synopsis "Comonads for Haskell")
3348 (description "This library provides @code{Comonad}s for Haskell.")
3349 (license license:bsd-3)))
3350
3351 (define-public hscolour
3352 (package
3353 (name "hscolour")
3354 (version "1.24.4")
3355 (source
3356 (origin
3357 (method url-fetch)
3358 (uri (string-append
3359 "https://hackage.haskell.org/package/hscolour/hscolour-"
3360 version
3361 ".tar.gz"))
3362 (sha256
3363 (base32
3364 "079jwph4bwllfp03yfr26s5zc6m6kw3nhb1cggrifh99haq34cr4"))))
3365 (build-system haskell-build-system)
3366 (home-page "https://hackage.haskell.org/package/hscolour")
3367 (synopsis "Script to colourise Haskell code")
3368 (description "HSColour is a small Haskell script to colourise Haskell
3369 code. It currently has six output formats: ANSI terminal codes (optionally
3370 XTerm-256colour codes), HTML 3.2 with font tags, HTML 4.01 with CSS, HTML 4.01
3371 with CSS and mouseover annotations, XHTML 1.0 with inline CSS styling, LaTeX,
3372 and mIRC chat codes.")
3373 (license license:bsd-3)))
3374
3375 (define-public ghc-polyparse
3376 (package
3377 (name "ghc-polyparse")
3378 (version "1.12")
3379 (source
3380 (origin
3381 (method url-fetch)
3382 (uri (string-append
3383 "https://hackage.haskell.org/package/polyparse/polyparse-"
3384 version
3385 ".tar.gz"))
3386 (sha256
3387 (base32
3388 "05dya1vdvq29hkhkdlsglzhw7bdn51rvs1javs0q75nf99c66k7m"))))
3389 (build-system haskell-build-system)
3390 (inputs
3391 `(("ghc-text" ,ghc-text)))
3392 (home-page
3393 "http://code.haskell.org/~malcolm/polyparse/")
3394 (synopsis
3395 "Alternative parser combinator libraries")
3396 (description
3397 "This package provides a variety of alternative parser combinator
3398 libraries, including the original HuttonMeijer set. The Poly sets have
3399 features like good error reporting, arbitrary token type, running state, lazy
3400 parsing, and so on. Finally, Text.Parse is a proposed replacement for the
3401 standard Read class, for better deserialisation of Haskell values from
3402 Strings.")
3403 (license license:lgpl2.1)))
3404
3405 (define-public ghc-extra
3406 (package
3407 (name "ghc-extra")
3408 (version "1.6.9")
3409 (source
3410 (origin
3411 (method url-fetch)
3412 (uri (string-append
3413 "https://hackage.haskell.org/package/extra/extra-"
3414 version
3415 ".tar.gz"))
3416 (sha256
3417 (base32
3418 "0xxcpb00pgwi9cmy6a7ghh6rblxry42p8pz5ssfgj20fs1xwzj1b"))))
3419 (build-system haskell-build-system)
3420 (inputs
3421 `(("ghc-clock" ,ghc-clock)
3422 ("ghc-quickcheck" ,ghc-quickcheck)))
3423 (home-page "https://github.com/ndmitchell/extra")
3424 (synopsis "Extra Haskell functions")
3425 (description "This library provides extra functions for the standard
3426 Haskell libraries. Most functions are simple additions, filling out missing
3427 functionality. A few functions are available in later versions of GHC, but
3428 this package makes them available back to GHC 7.2.")
3429 (license license:bsd-3)))
3430
3431 (define-public ghc-profunctors
3432 (package
3433 (name "ghc-profunctors")
3434 (version "5.2.2")
3435 (source
3436 (origin
3437 (method url-fetch)
3438 (uri (string-append
3439 "https://hackage.haskell.org/package/profunctors/profunctors-"
3440 version
3441 ".tar.gz"))
3442 (sha256
3443 (base32
3444 "0s1pwjidbn761xk43pmzyvn99hm3psdifjd78ylki7f97aiyd0g9"))))
3445 (build-system haskell-build-system)
3446 (arguments
3447 `(#:cabal-revision
3448 ("2" "1ywlg9z8nlhd2avgb8c6gbkv8zyk7hvc25926bafyg0m0k8y1amq")))
3449 (inputs
3450 `(("ghc-base-orphans" ,ghc-base-orphans)
3451 ("ghc-bifunctors" ,ghc-bifunctors)
3452 ("ghc-comonad" ,ghc-comonad)
3453 ("ghc-contravariant" ,ghc-contravariant)
3454 ("ghc-distributive" ,ghc-distributive)
3455 ("ghc-semigroups" ,ghc-semigroups)
3456 ("ghc-tagged" ,ghc-tagged)))
3457 (home-page "https://github.com/ekmett/profunctors/")
3458 (synopsis "Profunctors for Haskell")
3459 (description "This library provides profunctors for Haskell.")
3460 (license license:bsd-3)))
3461
3462 (define-public ghc-reducers
3463 (package
3464 (name "ghc-reducers")
3465 (version "3.12.3")
3466 (source
3467 (origin
3468 (method url-fetch)
3469 (uri (string-append
3470 "https://hackage.haskell.org/package/reducers/reducers-"
3471 version
3472 ".tar.gz"))
3473 (sha256
3474 (base32
3475 "09wf8pl9ycglcv6qj5ba26gkg2s5iy81hsx9xp0q8na0cwvp71ki"))))
3476 (build-system haskell-build-system)
3477 (inputs
3478 `(("ghc-fingertree" ,ghc-fingertree)
3479 ("ghc-hashable" ,ghc-hashable)
3480 ("ghc-text" ,ghc-text)
3481 ("ghc-unordered-containers" ,ghc-unordered-containers)
3482 ("ghc-semigroupoids" ,ghc-semigroupoids)
3483 ("ghc-semigroups" ,ghc-semigroups)))
3484 (home-page "https://github.com/ekmett/reducers/")
3485 (synopsis "Semigroups, specialized containers and a general map/reduce framework")
3486 (description "This library provides various semigroups, specialized
3487 containers and a general map/reduce framework for Haskell.")
3488 (license license:bsd-3)))
3489
3490 (define-public ghc-appar
3491 (package
3492 (name "ghc-appar")
3493 (version "0.1.4")
3494 (source
3495 (origin
3496 (method url-fetch)
3497 (uri (string-append
3498 "https://hackage.haskell.org/package/appar/appar-"
3499 version
3500 ".tar.gz"))
3501 (sha256
3502 (base32
3503 "09jb9ij78fdkz2qk66rw99q19qnm504dpv0yq0pjsl6xwjmndsjq"))))
3504 (build-system haskell-build-system)
3505 (home-page
3506 "https://hackage.haskell.org/package/appar")
3507 (synopsis "Simple applicative parser")
3508 (description "This package provides a simple applicative parser in Parsec
3509 style.")
3510 (license license:bsd-3)))
3511
3512 (define-public ghc-safe
3513 (package
3514 (name "ghc-safe")
3515 (version "0.3.17")
3516 (source
3517 (origin
3518 (method url-fetch)
3519 (uri (string-append
3520 "https://hackage.haskell.org/package/safe/safe-"
3521 version
3522 ".tar.gz"))
3523 (sha256
3524 (base32
3525 "0p3yaf5slvyz1cyy51jq64c5rlp8yzwim8iy2dlnk42if4gc9ibr"))))
3526 (build-system haskell-build-system)
3527 (native-inputs
3528 `(("ghc-quickcheck" ,ghc-quickcheck)))
3529 (home-page "https://github.com/ndmitchell/safe#readme")
3530 (synopsis "Library of safe (exception free) functions")
3531 (description "This library provides wrappers around @code{Prelude} and
3532 @code{Data.List} functions, such as @code{head} and @code{!!}, that can throw
3533 exceptions.")
3534 (license license:bsd-3)))
3535
3536 (define-public ghc-generic-deriving
3537 (package
3538 (name "ghc-generic-deriving")
3539 (version "1.12.2")
3540 (source
3541 (origin
3542 (method url-fetch)
3543 (uri (string-append
3544 "https://hackage.haskell.org/package/generic-deriving/generic-deriving-"
3545 version
3546 ".tar.gz"))
3547 (sha256
3548 (base32
3549 "1i7d6cpj9yhaqb79zays3nqchhaacacjz9bkc0zlwj73y5gvi22n"))))
3550 (build-system haskell-build-system)
3551 (inputs
3552 `(("ghc-th-abstraction" ,ghc-th-abstraction)))
3553 (native-inputs
3554 `(("ghc-hspec" ,ghc-hspec)
3555 ("hspec-discover" ,hspec-discover)))
3556 (home-page "https://hackage.haskell.org/package/generic-deriving")
3557 (synopsis "Generalise the deriving mechanism to arbitrary classes")
3558 (description "This package provides functionality for generalising the
3559 deriving mechanism in Haskell to arbitrary classes.")
3560 (license license:bsd-3)))
3561
3562 (define-public ghc-pcre-light
3563 (package
3564 (name "ghc-pcre-light")
3565 (version "0.4.0.4")
3566 (source
3567 (origin
3568 (method url-fetch)
3569 (uri (string-append
3570 "https://hackage.haskell.org/package/pcre-light/pcre-light-"
3571 version
3572 ".tar.gz"))
3573 (sha256
3574 (base32
3575 "0xcyi1fivwg7a92mch5bcqzmrfxzqj42rmb3m8kgs61x4qwpxj82"))))
3576 (build-system haskell-build-system)
3577 (inputs
3578 `(("pcre" ,pcre)))
3579 (native-inputs
3580 `(("pkg-config" ,pkg-config)))
3581 (home-page "https://github.com/Daniel-Diaz/pcre-light")
3582 (synopsis "Haskell library for Perl 5 compatible regular expressions")
3583 (description "This package provides a small, efficient, and portable regex
3584 library for Perl 5 compatible regular expressions. The PCRE library is a set
3585 of functions that implement regular expression pattern matching using the same
3586 syntax and semantics as Perl 5.")
3587 (license license:bsd-3)))
3588
3589 (define-public ghc-logict
3590 (package
3591 (name "ghc-logict")
3592 (version "0.6.0.2")
3593 (source
3594 (origin
3595 (method url-fetch)
3596 (uri (string-append
3597 "https://hackage.haskell.org/package/logict/logict-"
3598 version
3599 ".tar.gz"))
3600 (sha256
3601 (base32
3602 "07hnirv6snnym2r7iijlfz00b60jpy2856zvqxh989q0in7bd0hi"))))
3603 (build-system haskell-build-system)
3604 (home-page "http://code.haskell.org/~dolio/")
3605 (synopsis "Backtracking logic-programming monad")
3606 (description "This library provides a continuation-based, backtracking,
3607 logic programming monad. An adaptation of the two-continuation implementation
3608 found in the paper \"Backtracking, Interleaving, and Terminating Monad
3609 Transformers\" available @uref{http://okmij.org/ftp/papers/LogicT.pdf,
3610 online}.")
3611 (license license:bsd-3)))
3612
3613 (define-public ghc-xml
3614 (package
3615 (name "ghc-xml")
3616 (version "1.3.14")
3617 (source
3618 (origin
3619 (method url-fetch)
3620 (uri (string-append
3621 "https://hackage.haskell.org/package/xml/xml-"
3622 version
3623 ".tar.gz"))
3624 (sha256
3625 (base32
3626 "0g814lj7vaxvib2g3r734221k80k7ap9czv9hinifn8syals3l9j"))))
3627 (build-system haskell-build-system)
3628 (inputs
3629 `(("ghc-text" ,ghc-text)))
3630 (home-page "http://code.galois.com")
3631 (synopsis "Simple XML library for Haskell")
3632 (description "This package provides a simple XML library for Haskell.")
3633 (license license:bsd-3)))
3634
3635 (define-public ghc-feed
3636 (package
3637 (name "ghc-feed")
3638 (version "1.0.0.0")
3639 (source
3640 (origin
3641 (method url-fetch)
3642 (uri (string-append "https://hackage.haskell.org/package/"
3643 "feed/feed-" version ".tar.gz"))
3644 (sha256
3645 (base32
3646 "05rgg7x1984mgfhkmz792xj8lhwjgznixhygzr8blf517lns2nck"))))
3647 (build-system haskell-build-system)
3648 (arguments
3649 `(#:cabal-revision
3650 ("4" "0baavcavm3ywykcr9cm07aqr7sna98jba2n68lyn3kany8ri214d")))
3651 (inputs
3652 `(("ghc-base-compat" ,ghc-base-compat)
3653 ("ghc-old-locale" ,ghc-old-locale)
3654 ("ghc-old-time" ,ghc-old-time)
3655 ("ghc-safe" ,ghc-safe)
3656 ("ghc-text" ,ghc-text)
3657 ("ghc-time-locale-compat" ,ghc-time-locale-compat)
3658 ("ghc-utf8-string" ,ghc-utf8-string)
3659 ("ghc-xml-conduit" ,ghc-xml-conduit)
3660 ("ghc-xml-types" ,ghc-xml-types)))
3661 (native-inputs
3662 `(("ghc-hunit" ,ghc-hunit)
3663 ("ghc-test-framework" ,ghc-test-framework)
3664 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)))
3665 (home-page "https://github.com/bergmark/feed")
3666 (synopsis "Haskell package for handling various syndication formats")
3667 (description "This Haskell package includes tools for generating and
3668 consuming feeds in both RSS (Really Simple Syndication) and Atom format.")
3669 (license license:bsd-3)))
3670
3671 (define-public ghc-exceptions
3672 (package
3673 (name "ghc-exceptions")
3674 (version "0.10.0")
3675 (source
3676 (origin
3677 (method url-fetch)
3678 (uri (string-append
3679 "https://hackage.haskell.org/package/exceptions/exceptions-"
3680 version
3681 ".tar.gz"))
3682 (sha256
3683 (base32
3684 "1ms9zansv0pwzwdjncvx4kf18lnkjy2p61hvjhvxmjx5bqp93p8y"))))
3685 (build-system haskell-build-system)
3686 (native-inputs
3687 `(("ghc-quickcheck" ,ghc-quickcheck)
3688 ("ghc-test-framework" ,ghc-test-framework)
3689 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
3690 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
3691 (inputs
3692 `(("ghc-stm" ,ghc-stm)
3693 ("ghc-transformers-compat" ,ghc-transformers-compat)))
3694 (home-page "https://github.com/ekmett/exceptions/")
3695 (synopsis "Extensible optionally-pure exceptions")
3696 (description "This library provides extensible optionally-pure exceptions
3697 for Haskell.")
3698 (license license:bsd-3)))
3699
3700 (define-public ghc-temporary
3701 (package
3702 (name "ghc-temporary")
3703 (version "1.3")
3704 (source
3705 (origin
3706 (method url-fetch)
3707 (uri (string-append
3708 "https://hackage.haskell.org/package/temporary/temporary-"
3709 version
3710 ".tar.gz"))
3711 (sha256
3712 (base32
3713 "144qhwfwg37l3k313raf4ssiz16jbgwlm1nf4flgqpsbd69jji4c"))))
3714 (build-system haskell-build-system)
3715 (inputs
3716 `(("ghc-exceptions" ,ghc-exceptions)
3717 ("ghc-random" ,ghc-random)))
3718 (native-inputs
3719 `(("ghc-base-compat" ,ghc-base-compat)
3720 ("ghc-tasty" ,ghc-tasty)
3721 ("ghc-tasty-hunit" ,ghc-tasty-hunit)))
3722 (home-page "https://www.github.com/batterseapower/temporary")
3723 (synopsis "Temporary file and directory support")
3724 (description "The functions for creating temporary files and directories
3725 in the Haskelll base library are quite limited. This library just repackages
3726 the Cabal implementations of its own temporary file and folder functions so
3727 that you can use them without linking against Cabal or depending on it being
3728 installed.")
3729 (license license:bsd-3)))
3730
3731 (define-public ghc-temporary-rc
3732 (package
3733 (name "ghc-temporary-rc")
3734 (version "1.2.0.3")
3735 (source
3736 (origin
3737 (method url-fetch)
3738 (uri (string-append
3739 "https://hackage.haskell.org/package/temporary-rc/temporary-rc-"
3740 version
3741 ".tar.gz"))
3742 (sha256
3743 (base32
3744 "1nqih0qks439k3pr5kmbbc8rjdw730slrxlflqb27fbxbzb8skqs"))))
3745 (build-system haskell-build-system)
3746 (inputs `(("ghc-exceptions" ,ghc-exceptions)))
3747 (home-page
3748 "https://www.github.com/feuerbach/temporary")
3749 (synopsis
3750 "Portable temporary file and directory support")
3751 (description
3752 "The functions for creating temporary files and directories in the base
3753 library are quite limited. The unixutils package contains some good ones, but
3754 they aren't portable to Windows. This library just repackages the Cabal
3755 implementations of its own temporary file and folder functions so that you can
3756 use them without linking against Cabal or depending on it being installed.
3757 This is a better maintained fork of the \"temporary\" package.")
3758 (license license:bsd-3)))
3759
3760 (define-public ghc-smallcheck
3761 (package
3762 (name "ghc-smallcheck")
3763 (version "1.1.5")
3764 (source
3765 (origin
3766 (method url-fetch)
3767 (uri (string-append
3768 "https://hackage.haskell.org/package/smallcheck/smallcheck-"
3769 version
3770 ".tar.gz"))
3771 (sha256
3772 (base32
3773 "195fj7w3v03d1y1nm2ylavzrwxjcdbq0lb6zsw1dwyx5jmwfc84h"))))
3774 (build-system haskell-build-system)
3775 (inputs
3776 `(("ghc-logict" ,ghc-logict)))
3777 (home-page
3778 "https://github.com/feuerbach/smallcheck")
3779 (synopsis "Property-based testing library")
3780 (description "SmallCheck is a testing library that allows to verify
3781 properties for all test cases up to some depth. The test cases are generated
3782 automatically by SmallCheck.")
3783 (license license:bsd-3)))
3784
3785 (define-public ghc-silently
3786 (package
3787 (name "ghc-silently")
3788 (version "1.2.5")
3789 (source
3790 (origin
3791 (method url-fetch)
3792 (uri (string-append
3793 "https://hackage.haskell.org/package/silently/silently-"
3794 version
3795 ".tar.gz"))
3796 (sha256
3797 (base32
3798 "0f9qm3f7y0hpxn6mddhhg51mm1r134qkvd2kr8r6192ka1ijbxnf"))))
3799 (build-system haskell-build-system)
3800 (arguments `(#:tests? #f)) ;; circular dependency with nanospec
3801 ;; (inputs
3802 ;; `(("ghc-temporary" ,ghc-temporary)))
3803 (home-page "https://github.com/hspec/silently")
3804 (synopsis "Prevent writing to stdout")
3805 (description "This package provides functions to prevent or capture
3806 writing to stdout and other handles.")
3807 (license license:bsd-3)))
3808
3809 (define-public ghc-case-insensitive
3810 (package
3811 (name "ghc-case-insensitive")
3812 (version "1.2.0.11")
3813 (outputs '("out" "doc"))
3814 (source
3815 (origin
3816 (method url-fetch)
3817 (uri (string-append
3818 "https://hackage.haskell.org/package/case-insensitive/case-insensitive-"
3819 version
3820 ".tar.gz"))
3821 (sha256
3822 (base32
3823 "1qrpxfirsxckg7jv28f5ah2qc8lh95hp7rnqkbqs1ahcwlbnvkm7"))))
3824 (build-system haskell-build-system)
3825 ;; these inputs are necessary to use this library
3826 (inputs
3827 `(("ghc-text" ,ghc-text)
3828 ("ghc-hashable" ,ghc-hashable)))
3829 (arguments
3830 `(#:tests? #f)) ; FIXME: currently missing libraries used for tests.
3831 (home-page
3832 "https://github.com/basvandijk/case-insensitive")
3833 (synopsis "Case insensitive string comparison")
3834 (description
3835 "The module @code{Data.CaseInsensitive} provides the @code{CI} type
3836 constructor which can be parameterised by a string-like type like:
3837 @code{String}, @code{ByteString}, @code{Text}, etc. Comparisons of values of
3838 the resulting type will be insensitive to cases.")
3839 (license license:bsd-3)))
3840
3841 (define-public ghc-syb
3842 (package
3843 (name "ghc-syb")
3844 (version "0.7")
3845 (outputs '("out" "doc"))
3846 (source
3847 (origin
3848 (method url-fetch)
3849 (uri (string-append
3850 "https://hackage.haskell.org/package/syb/syb-"
3851 version
3852 ".tar.gz"))
3853 (sha256
3854 (base32
3855 "1da2zz7gqm4xbkx5vpd74dayx1svaxyl145fl14mq15lbb77sxdq"))))
3856 (build-system haskell-build-system)
3857 (inputs
3858 `(("ghc-hunit" ,ghc-hunit)))
3859 (home-page
3860 "http://www.cs.uu.nl/wiki/GenericProgramming/SYB")
3861 (synopsis "Scrap Your Boilerplate")
3862 (description "This package contains the generics system described in the
3863 /Scrap Your Boilerplate/ papers (see
3864 @uref{http://www.cs.uu.nl/wiki/GenericProgramming/SYB, the website}). It
3865 defines the @code{Data} class of types permitting folding and unfolding of
3866 constructor applications, instances of this class for primitive types, and a
3867 variety of traversals.")
3868 (license license:bsd-3)))
3869
3870 (define-public ghc-fgl
3871 (package
3872 (name "ghc-fgl")
3873 (version "5.6.0.0")
3874 (outputs '("out" "doc"))
3875 (source
3876 (origin
3877 (method url-fetch)
3878 (uri (string-append
3879 "https://hackage.haskell.org/package/fgl/fgl-"
3880 version
3881 ".tar.gz"))
3882 (sha256
3883 (base32
3884 "1i6cp4b3w7sjk7y1dq3fh6bci2sm5h3lnbbaw9ln19nwncg2wwll"))))
3885 (build-system haskell-build-system)
3886 (arguments
3887 `(#:phases
3888 (modify-phases %standard-phases
3889 (add-before 'configure 'update-constraints
3890 (lambda _
3891 (substitute* "fgl.cabal"
3892 (("QuickCheck >= 2\\.8 && < 2\\.10")
3893 "QuickCheck >= 2.8 && < 2.12")
3894 (("hspec >= 2\\.1 && < 2\\.5")
3895 "hspec >= 2.1 && < 2.6")))))))
3896 (inputs
3897 `(("ghc-hspec" ,ghc-hspec)
3898 ("ghc-quickcheck" ,ghc-quickcheck)))
3899 (home-page "https://web.engr.oregonstate.edu/~erwig/fgl/haskell")
3900 (synopsis
3901 "Martin Erwig's Functional Graph Library")
3902 (description "The functional graph library, FGL, is a collection of type
3903 and function definitions to address graph problems. The basis of the library
3904 is an inductive definition of graphs in the style of algebraic data types that
3905 encourages inductive, recursive definitions of graph algorithms.")
3906 (license license:bsd-3)))
3907
3908 (define-public ghc-chasingbottoms
3909 (package
3910 (name "ghc-chasingbottoms")
3911 (version "1.3.1.4")
3912 (source
3913 (origin
3914 (method url-fetch)
3915 (uri (string-append "https://hackage.haskell.org/package/ChasingBottoms/"
3916 "ChasingBottoms-" version ".tar.gz"))
3917 (sha256
3918 (base32
3919 "06cynx6hcbfpky7qq3b3mjjgwbnaxkwin3znbwq4b9ikiw0ng633"))))
3920 (build-system haskell-build-system)
3921 (inputs
3922 `(("ghc-quickcheck" ,ghc-quickcheck)
3923 ("ghc-random" ,ghc-random)
3924 ("ghc-syb" ,ghc-syb)))
3925 (home-page "https://hackage.haskell.org/package/ChasingBottoms")
3926 (synopsis "Testing of partial and infinite values in Haskell")
3927 (description
3928 ;; FIXME: There should be a @comma{} in the uref text, but it is not
3929 ;; rendered properly.
3930 "This is a library for testing code involving bottoms or infinite values.
3931 For the underlying theory and a larger example involving use of QuickCheck,
3932 see the article
3933 @uref{http://www.cse.chalmers.se/~nad/publications/danielsson-jansson-mpc2004.html,
3934 \"Chasing Bottoms A Case Study in Program Verification in the Presence of
3935 Partial and Infinite Values\"}.")
3936 (license license:expat)))
3937
3938 (define-public ghc-unordered-containers
3939 (package
3940 (name "ghc-unordered-containers")
3941 (version "0.2.9.0")
3942 (outputs '("out" "doc"))
3943 (source
3944 (origin
3945 (method url-fetch)
3946 (uri (string-append
3947 "https://hackage.haskell.org/package/unordered-containers"
3948 "/unordered-containers-" version ".tar.gz"))
3949 (sha256
3950 (base32
3951 "0l4264p0av12cc6i8gls13q8y27x12z2ar4x34n3x59y99fcnc37"))))
3952 (build-system haskell-build-system)
3953 (inputs
3954 `(("ghc-chasingbottoms" ,ghc-chasingbottoms)
3955 ("ghc-hunit" ,ghc-hunit)
3956 ("ghc-quickcheck" ,ghc-quickcheck)
3957 ("ghc-test-framework" ,ghc-test-framework)
3958 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
3959 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)
3960 ("ghc-hashable" ,ghc-hashable)))
3961 (home-page
3962 "https://github.com/tibbe/unordered-containers")
3963 (synopsis
3964 "Efficient hashing-based container types")
3965 (description
3966 "Efficient hashing-based container types. The containers have been
3967 optimized for performance critical use, both in terms of large data quantities
3968 and high speed.")
3969 (license license:bsd-3)))
3970
3971 (define-public ghc-unordered-containers-bootstrap
3972 (package
3973 (inherit ghc-unordered-containers)
3974 (name "ghc-unordered-containers-bootstrap")
3975 (arguments `(#:tests? #f))
3976 (inputs
3977 `(("ghc-hashable" ,ghc-hashable-bootstrap)))
3978 (properties '(hidden? #t))))
3979
3980 (define-public ghc-uniplate
3981 (package
3982 (name "ghc-uniplate")
3983 (version "1.6.12")
3984 (source
3985 (origin
3986 (method url-fetch)
3987 (uri (string-append
3988 "https://hackage.haskell.org/package/uniplate/uniplate-"
3989 version
3990 ".tar.gz"))
3991 (sha256
3992 (base32
3993 "1dx8f9aw27fz8kw0ad1nm6355w5rdl7bjvb427v2bsgnng30pipw"))))
3994 (build-system haskell-build-system)
3995 (inputs
3996 `(("ghc-syb" ,ghc-syb)
3997 ("ghc-hashable" ,ghc-hashable)
3998 ("ghc-unordered-containers" ,ghc-unordered-containers)))
3999 (home-page "http://community.haskell.org/~ndm/uniplate/")
4000 (synopsis "Simple, concise and fast generic operations")
4001 (description "Uniplate is a library for writing simple and concise generic
4002 operations. Uniplate has similar goals to the original Scrap Your Boilerplate
4003 work, but is substantially simpler and faster.")
4004 (license license:bsd-3)))
4005
4006 (define-public ghc-base64-bytestring
4007 (package
4008 (name "ghc-base64-bytestring")
4009 (version "1.0.0.2")
4010 (source
4011 (origin
4012 (method url-fetch)
4013 (uri (string-append
4014 "https://hackage.haskell.org/package/base64-bytestring/base64-bytestring-"
4015 version
4016 ".tar.gz"))
4017 (sha256
4018 (base32 "13305brzlac24pifiqd5a2z10c6k6amhpdy9cc0z5ryrkgnm8dhr"))))
4019 (build-system haskell-build-system)
4020 (arguments `(#:tests? #f)) ; FIXME: testing libraries are missing.
4021 (home-page "https://github.com/bos/base64-bytestring")
4022 (synopsis "Base64 encoding and decoding for ByteStrings")
4023 (description "This library provides fast base64 encoding and decoding for
4024 Haskell @code{ByteString}s.")
4025 (license license:bsd-3)))
4026
4027 (define-public ghc-annotated-wl-pprint
4028 (package
4029 (name "ghc-annotated-wl-pprint")
4030 (version "0.7.0")
4031 (source
4032 (origin
4033 (method url-fetch)
4034 (uri (string-append
4035 "https://hackage.haskell.org/package/annotated-wl-pprint"
4036 "/annotated-wl-pprint-" version
4037 ".tar.gz"))
4038 (sha256
4039 (base32
4040 "061xfz6qany3wf95csl8dcik2pz22cn8iv1qchhm16isw5zjs9hc"))))
4041 (build-system haskell-build-system)
4042 (home-page
4043 "https://github.com/david-christiansen/annotated-wl-pprint")
4044 (synopsis
4045 "The Wadler/Leijen Pretty Printer, with annotation support")
4046 (description "This is a modified version of wl-pprint, which was based on
4047 Wadler's paper \"A Prettier Printer\". This version allows the library user
4048 to annotate the text with semantic information, which can later be rendered in
4049 a variety of ways.")
4050 (license license:bsd-3)))
4051
4052 (define-public ghc-wl-pprint
4053 (package
4054 (name "ghc-wl-pprint")
4055 (version "1.2.1")
4056 (source (origin
4057 (method url-fetch)
4058 (uri (string-append
4059 "https://hackage.haskell.org/package/wl-pprint/wl-pprint-"
4060 version ".tar.gz"))
4061 (sha256
4062 (base32
4063 "0kn7y8pdrv8f87zhd5mifcl8fy3b2zvnzmzwhdqhxxlyzwiq6z0c"))))
4064 (build-system haskell-build-system)
4065 (home-page "https://hackage.haskell.org/package/wl-pprint")
4066 (synopsis "Wadler/Leijen pretty printer")
4067 (description
4068 "This is a pretty printing library based on Wadler's paper @i{A Prettier
4069 Printer}. This version allows the library user to declare overlapping
4070 instances of the @code{Pretty} class.")
4071 (license license:bsd-3)))
4072
4073 (define-public ghc-ansi-wl-pprint
4074 (package
4075 (name "ghc-ansi-wl-pprint")
4076 (version "0.6.8.2")
4077 (source
4078 (origin
4079 (method url-fetch)
4080 (uri (string-append "https://hackage.haskell.org/package/"
4081 "ansi-wl-pprint/ansi-wl-pprint-"
4082 version ".tar.gz"))
4083 (sha256
4084 (base32
4085 "0gnb4mkqryv08vncxnj0bzwcnd749613yw3cxfzw6y3nsldp4c56"))))
4086 (build-system haskell-build-system)
4087 (inputs
4088 `(("ghc-ansi-terminal" ,ghc-ansi-terminal)))
4089 (home-page "https://github.com/ekmett/ansi-wl-pprint")
4090 (synopsis "Wadler/Leijen Pretty Printer for colored ANSI terminal output")
4091 (description "This is a pretty printing library based on Wadler's paper
4092 \"A Prettier Printer\". It has been enhanced with support for ANSI terminal
4093 colored output using the ansi-terminal package.")
4094 (license license:bsd-3)))
4095
4096 (define-public ghc-split
4097 (package
4098 (name "ghc-split")
4099 (version "0.2.3.3")
4100 (outputs '("out" "doc"))
4101 (source
4102 (origin
4103 (method url-fetch)
4104 (uri (string-append
4105 "https://hackage.haskell.org/package/split/split-"
4106 version
4107 ".tar.gz"))
4108 (sha256
4109 (base32
4110 "04qlmkcyklznl03gsjg95b4nzb6i96gdapqg60rny9szgi7ngk8x"))))
4111 (build-system haskell-build-system)
4112 (native-inputs
4113 `(("ghc-quickcheck" ,ghc-quickcheck)))
4114 (home-page "https://hackage.haskell.org/package/split")
4115 (synopsis "Combinator library for splitting lists")
4116 (description "This package provides a collection of Haskell functions for
4117 splitting lists into parts, akin to the @code{split} function found in several
4118 mainstream languages.")
4119 (license license:bsd-3)))
4120
4121 (define-public ghc-parsec
4122 (package
4123 (name "ghc-parsec")
4124 (version "3.1.13.0")
4125 (outputs '("out" "doc"))
4126 (source
4127 (origin
4128 (method url-fetch)
4129 (uri (string-append
4130 "https://hackage.haskell.org/package/parsec/parsec-"
4131 version
4132 ".tar.gz"))
4133 (sha256
4134 (base32 "1wc09pyn70p8z6llink10c8pqbh6ikyk554911yfwxv1g91swqbq"))))
4135 (build-system haskell-build-system)
4136 (native-inputs
4137 `(("ghc-hunit" ,ghc-hunit)))
4138 (inputs
4139 `(("ghc-text" ,ghc-text)))
4140 (arguments
4141 `(#:tests? #f)) ; FIXME: currently missing libraries used for tests.
4142 (home-page
4143 "https://github.com/aslatter/parsec")
4144 (synopsis "Monadic parser combinators")
4145 (description "Parsec is a parser library. It is simple, safe, well
4146 documented, has extensive libraries, good error messages, and is fast. It is
4147 defined as a monad transformer that can be stacked on arbitrary monads, and it
4148 is also parametric in the input stream type.")
4149 (license license:bsd-3)))
4150
4151 (define-public ghc-parser-combinators
4152 (package
4153 (name "ghc-parser-combinators")
4154 (version "1.0.0")
4155 (source
4156 (origin
4157 (method url-fetch)
4158 (uri (string-append "https://hackage.haskell.org/package/"
4159 "parser-combinators/parser-combinators-"
4160 version ".tar.gz"))
4161 (sha256
4162 (base32
4163 "1pwfdsklqwvaynwpdzmx1bs35mp6dpsyaqdnzxnqcrxwf5h8sk75"))))
4164 (build-system haskell-build-system)
4165 (home-page "https://github.com/mrkkrp/parser-combinators")
4166 (synopsis "Commonly useful parser combinators")
4167 (description
4168 "This is a lightweight package providing commonly useful parser
4169 combinators.")
4170 (license license:bsd-3)))
4171
4172 (define-public ghc-megaparsec
4173 (package
4174 (name "ghc-megaparsec")
4175 (version "6.5.0")
4176 (source
4177 (origin
4178 (method url-fetch)
4179 (uri (string-append "https://hackage.haskell.org/package/"
4180 "megaparsec/megaparsec-"
4181 version ".tar.gz"))
4182 (sha256
4183 (base32
4184 "12iggy7qpf8x93jm64zf0g215xwy779bqyfyjk2bhmxqqr1yzgdy"))))
4185 (build-system haskell-build-system)
4186 (arguments
4187 `(#:cabal-revision
4188 ("4" "0ij3asi5vwlhbgwsy6nhli9a0qb7926mg809fsgyl1rnhs9fvpx1")))
4189 (inputs
4190 `(("ghc-case-insensitive" ,ghc-case-insensitive)
4191 ("ghc-parser-combinators" ,ghc-parser-combinators)
4192 ("ghc-scientific" ,ghc-scientific)
4193 ("ghc-text" ,ghc-text)))
4194 (native-inputs
4195 `(("ghc-quickcheck" ,ghc-quickcheck)
4196 ("ghc-hspec" ,ghc-hspec)
4197 ("ghc-hspec-expectations" ,ghc-hspec-expectations)
4198 ("hspec-discover" ,hspec-discover)))
4199 (home-page "https://github.com/mrkkrp/megaparsec")
4200 (synopsis "Monadic parser combinators")
4201 (description
4202 "This is an industrial-strength monadic parser combinator library.
4203 Megaparsec is a feature-rich package that strikes a nice balance between
4204 speed, flexibility, and quality of parse errors.")
4205 (license license:bsd-2)))
4206
4207 (define-public ghc-vector
4208 (package
4209 (name "ghc-vector")
4210 (version "0.12.0.1")
4211 (outputs '("out" "doc"))
4212 (source
4213 (origin
4214 (method url-fetch)
4215 (uri (string-append
4216 "https://hackage.haskell.org/package/vector/vector-"
4217 version
4218 ".tar.gz"))
4219 (sha256
4220 (base32
4221 "0yrx2ypiaxahvaz84af5bi855hd3107kxkbqc8km29nsp5wyw05i"))))
4222 (build-system haskell-build-system)
4223 ;; FIXME: To simplify upgrading all Haskell packages, we leave the tests
4224 ;; disabled for now.
4225 (arguments
4226 `(#:cabal-revision
4227 ("3" "0y5rh8k710i2a3p1h2rghvr5cfg78p5h0kbfi7ifxqqf6pzlyr1x")
4228 #:tests? #f))
4229 (inputs
4230 `(("ghc-primitive" ,ghc-primitive)
4231 ("ghc-random" ,ghc-random)
4232 ("ghc-quickcheck" ,ghc-quickcheck)
4233 ;; ("ghc-hunit" ,ghc-hunit)
4234 ;; ("ghc-test-framework" ,ghc-test-framework)
4235 ;; ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
4236 ;; ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)
4237 ))
4238 (home-page "https://github.com/haskell/vector")
4239 (synopsis "Efficient Arrays")
4240 (description "This library provides an efficient implementation of
4241 Int-indexed arrays (both mutable and immutable), with a powerful loop
4242 optimisation framework.")
4243 (license license:bsd-3)))
4244
4245 (define-public ghc-vector-binary-instances
4246 (package
4247 (name "ghc-vector-binary-instances")
4248 (version "0.2.4")
4249 (source
4250 (origin
4251 (method url-fetch)
4252 (uri (string-append
4253 "https://hackage.haskell.org/package/"
4254 "vector-binary-instances/vector-binary-instances-"
4255 version ".tar.gz"))
4256 (sha256
4257 (base32
4258 "1y236jb72iab9ska1mc48z6yb0xgwmj45laaqdyjxksd84z7hbrb"))))
4259 (build-system haskell-build-system)
4260 (arguments
4261 `(#:cabal-revision
4262 ("1" "196frl4akhfk7xf1nxzn8lmq99dxhzhsimanswn9yy7ym8zhki4i")))
4263 (inputs
4264 `(("ghc-vector" ,ghc-vector)))
4265 (native-inputs
4266 `(("ghc-tasty" ,ghc-tasty)
4267 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
4268 (home-page "https://github.com/bos/vector-binary-instances")
4269 (synopsis "Instances of Data.Binary and Data.Serialize for vector")
4270 (description "This library provides instances of @code{Binary} for the
4271 types defined in the @code{vector} package, making it easy to serialize
4272 vectors to and from disk. We use the generic interface to vectors, so all
4273 vector types are supported. Specific instances are provided for unboxed,
4274 boxed and storable vectors.")
4275 (license license:bsd-3)))
4276
4277 (define-public ghc-bloomfilter
4278 (package
4279 (name "ghc-bloomfilter")
4280 (version "2.0.1.0")
4281 (source
4282 (origin
4283 (method url-fetch)
4284 (uri (string-append "https://hackage.haskell.org/package/"
4285 "bloomfilter/bloomfilter-" version ".tar.gz"))
4286 (sha256
4287 (base32
4288 "03vrmncg1c10a2wcg5skq30m1yiknn7nwxz2gblyyfaxglshspkc"))))
4289 (build-system haskell-build-system)
4290 (native-inputs
4291 `(("ghc-quickcheck" ,ghc-quickcheck)
4292 ("ghc-random" ,ghc-random)
4293 ("ghc-test-framework" ,ghc-test-framework)
4294 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
4295 (home-page "https://github.com/bos/bloomfilter")
4296 (synopsis "Pure and impure Bloom filter implementations")
4297 (description "This package provides both mutable and immutable Bloom
4298 filter data types, along with a family of hash functions and an easy-to-use
4299 interface.")
4300 (license license:bsd-3)))
4301
4302 (define-public ghc-network
4303 (package
4304 (name "ghc-network")
4305 (version "2.6.3.6")
4306 (outputs '("out" "doc"))
4307 (source
4308 (origin
4309 (method url-fetch)
4310 (uri (string-append
4311 "https://hackage.haskell.org/package/network/network-"
4312 version
4313 ".tar.gz"))
4314 (sha256
4315 (base32
4316 "198mam7ahny48p9fajznbqq16a8ya2gw0xm3gnm1si1rmc4hdplv"))))
4317 (build-system haskell-build-system)
4318 ;; The regression tests depend on an unpublished module.
4319 (arguments `(#:tests? #f))
4320 (native-inputs
4321 `(("ghc-hunit" ,ghc-hunit)
4322 ("ghc-doctest" ,ghc-doctest)
4323 ("ghc-test-framework" ,ghc-test-framework)
4324 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)))
4325 (home-page "https://github.com/haskell/network")
4326 (synopsis "Low-level networking interface")
4327 (description
4328 "This package provides a low-level networking interface.")
4329 (license license:bsd-3)))
4330
4331 (define-public ghc-network-uri
4332 (package
4333 (name "ghc-network-uri")
4334 (version "2.6.1.0")
4335 (outputs '("out" "doc"))
4336 (source
4337 (origin
4338 (method url-fetch)
4339 (uri (string-append
4340 "https://hackage.haskell.org/package/network-uri/network-uri-"
4341 version
4342 ".tar.gz"))
4343 (sha256
4344 (base32
4345 "1w27zkvn39kjr9lmw9421y8w43h572ycsfafsb7kyvr3a4ihlgj2"))))
4346 (build-system haskell-build-system)
4347 (arguments
4348 `(#:tests? #f)) ; FIXME: currently missing libraries used for tests.
4349 (native-inputs
4350 `(("ghc-hunit" ,ghc-hunit)))
4351 (inputs
4352 `(("ghc-parsec" ,ghc-parsec)
4353 ("ghc-network" ,ghc-network)))
4354 (home-page
4355 "https://github.com/haskell/network-uri")
4356 (synopsis "Library for URI manipulation")
4357 (description "This package provides an URI manipulation interface. In
4358 @code{network-2.6} the @code{Network.URI} module was split off from the
4359 @code{network} package into this package.")
4360 (license license:bsd-3)))
4361
4362 (define-public ghc-ansi-terminal
4363 (package
4364 (name "ghc-ansi-terminal")
4365 (version "0.8.0.4")
4366 (source
4367 (origin
4368 (method url-fetch)
4369 (uri (string-append
4370 "https://hackage.haskell.org/package/ansi-terminal/ansi-terminal-"
4371 version
4372 ".tar.gz"))
4373 (sha256
4374 (base32
4375 "0428gq8m3fdnb7ldcsyk97qcch76hcxbgh2666p6f76fs2qbhg7b"))))
4376 (build-system haskell-build-system)
4377 (inputs
4378 `(("ghc-colour" ,ghc-colour)))
4379 (home-page "https://github.com/feuerbach/ansi-terminal")
4380 (synopsis "ANSI terminal support for Haskell")
4381 (description "This package provides ANSI terminal support for Haskell. It
4382 allows cursor movement, screen clearing, color output showing or hiding the
4383 cursor, and changing the title.")
4384 (license license:bsd-3)))
4385
4386 (define-public ghc-ansi-terminal-0.8
4387 (package (inherit ghc-ansi-terminal)
4388 (name "ghc-ansi-terminal")
4389 (version "0.8.0.4")
4390 (source
4391 (origin
4392 (method url-fetch)
4393 (uri (string-append
4394 "https://hackage.haskell.org/package/ansi-terminal/ansi-terminal-"
4395 version
4396 ".tar.gz"))
4397 (sha256
4398 (base32
4399 "0428gq8m3fdnb7ldcsyk97qcch76hcxbgh2666p6f76fs2qbhg7b"))))))
4400
4401 (define-public ghc-vault
4402 (package
4403 (name "ghc-vault")
4404 (version "0.3.1.2")
4405 (source
4406 (origin
4407 (method url-fetch)
4408 (uri (string-append
4409 "https://hackage.haskell.org/package/vault/vault-"
4410 version
4411 ".tar.gz"))
4412 (sha256
4413 (base32
4414 "072mbrihsdsb8c6xvg6lvk0rqjgvxvi8qkg4n6wwym5hq0pfa04y"))))
4415 (build-system haskell-build-system)
4416 (inputs
4417 `(("ghc-unordered-containers" ,ghc-unordered-containers)
4418 ("ghc-hashable" ,ghc-hashable)
4419 ("ghc-semigroupoids" ,ghc-semigroupoids)))
4420 (home-page
4421 "https://github.com/HeinrichApfelmus/vault")
4422 (synopsis "Persistent store for arbitrary values")
4423 (description "This package provides vaults for Haskell. A vault is a
4424 persistent store for values of arbitrary types. It's like having first-class
4425 access to the storage space behind @code{IORefs}. The data structure is
4426 analogous to a bank vault, where you can access different bank boxes with
4427 different keys; hence the name. Also provided is a @code{locker} type,
4428 representing a store for a single element.")
4429 (license license:bsd-3)))
4430
4431 (define-public ghc-edisonapi
4432 (package
4433 (name "ghc-edisonapi")
4434 (version "1.3.1")
4435 (source
4436 (origin
4437 (method url-fetch)
4438 (uri (string-append "https://hackage.haskell.org/package/EdisonAPI"
4439 "/EdisonAPI-" version ".tar.gz"))
4440 (sha256
4441 (base32 "0vmmlsj8ggbpwx6fkf5fvb6jp0zpx6iba6b28m80lllr2p8bi8wm"))))
4442 (build-system haskell-build-system)
4443 (home-page "http://rwd.rdockins.name/edison/home/")
4444 (synopsis "Library of efficient, purely-functional data structures (API)")
4445 (description
4446 "Edison is a library of purely functional data structures written by
4447 Chris Okasaki. It is named after Thomas Alva Edison and for the mnemonic
4448 value EDiSon (Efficient Data Structures). Edison provides several families of
4449 abstractions, each with multiple implementations. The main abstractions
4450 provided by Edison are: Sequences such as stacks, queues, and dequeues;
4451 Collections such as sets, bags and heaps; and Associative Collections such as
4452 finite maps and priority queues where the priority and element are distinct.")
4453 (license license:expat)))
4454
4455 (define-public ghc-edisoncore
4456 (package
4457 (name "ghc-edisoncore")
4458 (version "1.3.2.1")
4459 (source
4460 (origin
4461 (method url-fetch)
4462 (uri (string-append "https://hackage.haskell.org/package/EdisonCore"
4463 "/EdisonCore-" version ".tar.gz"))
4464 (sha256
4465 (base32 "0fgj5iwiv3v2gdgx7kjcr15dcs4x1kvmjspp3p99wyhh0x6h3ikk"))))
4466 (build-system haskell-build-system)
4467 (inputs
4468 `(("ghc-quickcheck" ,ghc-quickcheck)
4469 ("ghc-edisonapi" ,ghc-edisonapi)))
4470 (home-page "http://rwd.rdockins.name/edison/home/")
4471 (synopsis "Library of efficient, purely-functional data structures")
4472 (description
4473 "This package provides the core Edison data structure implementations,
4474 including multiple sequence, set, bag, and finite map concrete implementations
4475 with various performance characteristics.")
4476 (license license:expat)))
4477
4478 (define-public ghc-mmorph
4479 (package
4480 (name "ghc-mmorph")
4481 (version "1.1.2")
4482 (source
4483 (origin
4484 (method url-fetch)
4485 (uri (string-append
4486 "https://hackage.haskell.org/package/mmorph/mmorph-"
4487 version
4488 ".tar.gz"))
4489 (sha256
4490 (base32
4491 "1gjz1ib968lqybma7my1n19qq6cdj6a7nskrlnwy4jy9jrwzs2n9"))))
4492 (build-system haskell-build-system)
4493 (inputs
4494 `(("ghc-transformers-compat" ,ghc-transformers-compat)))
4495 (home-page "https://hackage.haskell.org/package/mmorph")
4496 (synopsis "Monad morphisms")
4497 (description
4498 "This library provides monad morphism utilities, most commonly used for
4499 manipulating monad transformer stacks.")
4500 (license license:bsd-3)))
4501
4502 (define-public ghc-ifelse
4503 (package
4504 (name "ghc-ifelse")
4505 (version "0.85")
4506 (source
4507 (origin
4508 (method url-fetch)
4509 (uri (string-append "https://hackage.haskell.org/package/"
4510 "IfElse/IfElse-" version ".tar.gz"))
4511 (sha256
4512 (base32
4513 "1kfx1bwfjczj93a8yqz1n8snqiq5655qgzwv1lrycry8wb1vzlwa"))))
4514 (build-system haskell-build-system)
4515 (home-page "http://hackage.haskell.org/package/IfElse")
4516 (synopsis "Monadic control flow with anaphoric variants")
4517 (description "This library provides functions for control flow inside of
4518 monads with anaphoric variants on @code{if} and @code{when} and a C-like
4519 @code{switch} function.")
4520 (license license:bsd-3)))
4521
4522 (define-public ghc-monad-control
4523 (package
4524 (name "ghc-monad-control")
4525 (version "1.0.2.3")
4526 (source
4527 (origin
4528 (method url-fetch)
4529 (uri (string-append
4530 "https://hackage.haskell.org/package/monad-control"
4531 "/monad-control-" version ".tar.gz"))
4532 (sha256
4533 (base32
4534 "1c92833gr6cadidjdp8mlznkpp8lyxl0w3y7d19y8yi3klc3843c"))))
4535 (build-system haskell-build-system)
4536 (inputs
4537 `(("ghc-stm" ,ghc-stm)
4538 ("ghc-transformers-base" ,ghc-transformers-base)
4539 ("ghc-transformers-compat" ,ghc-transformers-compat)))
4540 (home-page "https://github.com/basvandijk/monad-control")
4541 (synopsis "Monad transformers to lift control operations like exception
4542 catching")
4543 (description "This package defines the type class @code{MonadBaseControl},
4544 a subset of @code{MonadBase} into which generic control operations such as
4545 @code{catch} can be lifted from @code{IO} or any other base monad.")
4546 (license license:bsd-3)))
4547
4548 (define-public ghc-fail
4549 (package
4550 (name "ghc-fail")
4551 (version "4.9.0.0")
4552 (source
4553 (origin
4554 (method url-fetch)
4555 (uri (string-append "https://hackage.haskell.org/package/fail/fail-"
4556 version ".tar.gz"))
4557 (sha256
4558 (base32 "18nlj6xvnggy61gwbyrpmvbdkq928wv0wx2zcsljb52kbhddnp3d"))))
4559 (build-system haskell-build-system)
4560 (arguments `(#:haddock? #f)) ; Package contains no documentation.
4561 (home-page "https://prime.haskell.org/wiki/Libraries/Proposals/MonadFail")
4562 (synopsis "Forward-compatible MonadFail class")
4563 (description
4564 "This package contains the @code{Control.Monad.Fail} module providing the
4565 @uref{https://prime.haskell.org/wiki/Libraries/Proposals/MonadFail, MonadFail}
4566 class that became available in
4567 @uref{https://hackage.haskell.org/package/base-4.9.0.0, base-4.9.0.0} for
4568 older @code{base} package versions. This package turns into an empty package
4569 when used with GHC versions which already provide the
4570 @code{Control.Monad.Fail} module.")
4571 (license license:bsd-3)))
4572
4573 (define-public ghc-monadplus
4574 (package
4575 (name "ghc-monadplus")
4576 (version "1.4.2")
4577 (source
4578 (origin
4579 (method url-fetch)
4580 (uri (string-append "https://hackage.haskell.org/package/monadplus"
4581 "/monadplus-" version ".tar.gz"))
4582 (sha256
4583 (base32 "15b5320wdpmdp5slpphnc1x4rhjch3igw245dp2jxbqyvchdavin"))))
4584 (build-system haskell-build-system)
4585 (home-page "https://hackage.haskell.org/package/monadplus")
4586 (synopsis "Filtering and folding over arbitrary MonadPlus instances")
4587 (description
4588 "This package generalizes many common stream operations such as
4589 @code{filter}, @code{catMaybes} etc, enabling filtering and folding over
4590 arbitrary @code{MonadPlus} instances.")
4591 (license license:bsd-3)))
4592
4593 (define-public ghc-byteorder
4594 (package
4595 (name "ghc-byteorder")
4596 (version "1.0.4")
4597 (source
4598 (origin
4599 (method url-fetch)
4600 (uri (string-append
4601 "https://hackage.haskell.org/package/byteorder/byteorder-"
4602 version
4603 ".tar.gz"))
4604 (sha256
4605 (base32
4606 "06995paxbxk8lldvarqpb3ygcjbg4v8dk4scib1rjzwlhssvn85x"))))
4607 (build-system haskell-build-system)
4608 (home-page
4609 "http://community.haskell.org/~aslatter/code/byteorder")
4610 (synopsis
4611 "Exposes the native endianness of the system")
4612 (description
4613 "This package is for working with the native byte-ordering of the
4614 system.")
4615 (license license:bsd-3)))
4616
4617 (define-public ghc-base-compat
4618 (package
4619 (name "ghc-base-compat")
4620 (version "0.10.4")
4621 (source
4622 (origin
4623 (method url-fetch)
4624 (uri (string-append
4625 "https://hackage.haskell.org/package/base-compat/base-compat-"
4626 version
4627 ".tar.gz"))
4628 (sha256
4629 (base32
4630 "0ksp990gxs731mq19rzbxrbs43nazfljjc8krlx5bjqblw3kfs8d"))))
4631 (build-system haskell-build-system)
4632 (native-inputs
4633 `(("ghc-quickcheck" ,ghc-quickcheck)
4634 ("ghc-hspec" ,ghc-hspec)
4635 ("hspec-discover" ,hspec-discover)))
4636 (home-page "https://hackage.haskell.org/package/base-compat")
4637 (synopsis "Haskell compiler compatibility library")
4638 (description "This library provides functions available in later versions
4639 of base to a wider range of compilers, without requiring the use of CPP
4640 pragmas in your code.")
4641 (license license:bsd-3)))
4642
4643 (define-public ghc-blaze-builder
4644 (package
4645 (name "ghc-blaze-builder")
4646 (version "0.4.1.0")
4647 (source
4648 (origin
4649 (method url-fetch)
4650 (uri (string-append
4651 "https://hackage.haskell.org/package/blaze-builder/blaze-builder-"
4652 version
4653 ".tar.gz"))
4654 (sha256
4655 (base32
4656 "05681dih2d8s96an945wkbwl05w8ddbcfx8n3r3ck79ydyb8pz4i"))))
4657 (build-system haskell-build-system)
4658 (arguments `(#:tests? #f)) ; FIXME: Missing test libraries.
4659 (inputs
4660 `(("ghc-text" ,ghc-text)
4661 ("ghc-utf8-string" ,ghc-utf8-string)))
4662 (home-page "https://github.com/lpsmith/blaze-builder")
4663 (synopsis "Efficient buffered output")
4664 (description "This library provides an implementation of the older
4665 @code{blaze-builder} interface in terms of the new builder that shipped with
4666 @code{bytestring-0.10.4.0}. This implementation is mostly intended as a
4667 bridge to the new builder, so that code that uses the old interface can
4668 interoperate with code that uses the new implementation.")
4669 (license license:bsd-3)))
4670
4671 (define-public ghc-blaze-markup
4672 (package
4673 (name "ghc-blaze-markup")
4674 (version "0.8.2.1")
4675 (source
4676 (origin
4677 (method url-fetch)
4678 (uri (string-append "https://hackage.haskell.org/package/"
4679 "blaze-markup/blaze-markup-"
4680 version ".tar.gz"))
4681 (sha256
4682 (base32
4683 "0ih1c3qahkdgzbqihdhny5s313l2m66fbb88w8jbx7yz56y7rawh"))))
4684 (build-system haskell-build-system)
4685 (arguments
4686 `(#:phases
4687 (modify-phases %standard-phases
4688 (add-before 'configure 'update-constraints
4689 (lambda _
4690 (substitute* "blaze-markup.cabal"
4691 (("tasty >= 1\\.0 && < 1\\.1")
4692 "tasty >= 1.0 && < 1.2")))))))
4693 (inputs
4694 `(("ghc-blaze-builder" ,ghc-blaze-builder)
4695 ("ghc-text" ,ghc-text)))
4696 (native-inputs
4697 `(("ghc-hunit" ,ghc-hunit)
4698 ("ghc-quickcheck" ,ghc-quickcheck)
4699 ("ghc-tasty" ,ghc-tasty)
4700 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
4701 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
4702 (home-page "https://jaspervdj.be/blaze")
4703 (synopsis "Fast markup combinator library for Haskell")
4704 (description "This library provides core modules of a markup combinator
4705 library for Haskell.")
4706 (license license:bsd-3)))
4707
4708 (define-public ghc-easy-file
4709 (package
4710 (name "ghc-easy-file")
4711 (version "0.2.2")
4712 (source
4713 (origin
4714 (method url-fetch)
4715 (uri (string-append
4716 "https://hackage.haskell.org/package/easy-file/easy-file-"
4717 version
4718 ".tar.gz"))
4719 (sha256
4720 (base32
4721 "0zmlcz723051qpn8l8vi51c5rx1blwrw4094jcshkmj8p9r2xxaj"))))
4722 (build-system haskell-build-system)
4723 (home-page
4724 "https://github.com/kazu-yamamoto/easy-file")
4725 (synopsis "File handling library for Haskell")
4726 (description "This library provides file handling utilities for Haskell.")
4727 (license license:bsd-3)))
4728
4729 (define-public ghc-async
4730 (package
4731 (name "ghc-async")
4732 (version "2.2.1")
4733 (source
4734 (origin
4735 (method url-fetch)
4736 (uri (string-append
4737 "https://hackage.haskell.org/package/async/async-"
4738 version
4739 ".tar.gz"))
4740 (sha256
4741 (base32
4742 "09whscli1q5z7lzyq9rfk0bq1ydplh6pjmc6qv0x668k5818c2wg"))))
4743 (build-system haskell-build-system)
4744 (inputs
4745 `(("ghc-stm" ,ghc-stm)
4746 ("ghc-hashable" ,ghc-hashable)
4747 ("ghc-hunit" ,ghc-hunit)
4748 ("ghc-test-framework" ,ghc-test-framework)
4749 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)))
4750 (home-page "https://github.com/simonmar/async")
4751 (synopsis "Library to run IO operations asynchronously")
4752 (description "Async provides a library to run IO operations
4753 asynchronously, and wait for their results. It is a higher-level interface
4754 over threads in Haskell, in which @code{Async a} is a concurrent thread that
4755 will eventually deliver a value of type @code{a}.")
4756 (license license:bsd-3)))
4757
4758 (define-public ghc-fingertree
4759 (package
4760 (name "ghc-fingertree")
4761 (version "0.1.4.1")
4762 (source
4763 (origin
4764 (method url-fetch)
4765 (uri (string-append
4766 "https://hackage.haskell.org/package/fingertree/fingertree-"
4767 version ".tar.gz"))
4768 (sha256
4769 (base32
4770 "192fyzv0pn1437wdpqg1l80rswkk4rw3w61r4bq7dhv354bdqy4p"))))
4771 (build-system haskell-build-system)
4772 (native-inputs
4773 `(("ghc-hunit" ,ghc-hunit)
4774 ("ghc-quickcheck" ,ghc-quickcheck)
4775 ("ghc-test-framework" ,ghc-test-framework)
4776 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
4777 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
4778 (home-page "https://hackage.haskell.org/package/fingertree")
4779 (synopsis "Generic finger-tree structure")
4780 (description "This library provides finger trees, a general sequence
4781 representation with arbitrary annotations, for use as a base for
4782 implementations of various collection types. It includes examples, as
4783 described in section 4 of Ralf Hinze and Ross Paterson, \"Finger trees: a
4784 simple general-purpose data structure\".")
4785 (license license:bsd-3)))
4786
4787 (define-public ghc-optparse-applicative
4788 (package
4789 (name "ghc-optparse-applicative")
4790 (version "0.14.2.0")
4791 (source
4792 (origin
4793 (method url-fetch)
4794 (uri (string-append
4795 "https://hackage.haskell.org/package/optparse-applicative"
4796 "/optparse-applicative-" version ".tar.gz"))
4797 (sha256
4798 (base32
4799 "0c3z1mvynlyv1garjbdmdd3npm40dabgm75js4r07cf766c1wd71"))))
4800 (build-system haskell-build-system)
4801 (inputs
4802 `(("ghc-transformers-compat" ,ghc-transformers-compat)
4803 ("ghc-ansi-wl-pprint" ,ghc-ansi-wl-pprint)))
4804 (native-inputs
4805 `(("ghc-quickcheck" ,ghc-quickcheck)))
4806 (home-page "https://github.com/pcapriotti/optparse-applicative")
4807 (synopsis "Utilities and combinators for parsing command line options")
4808 (description "This package provides utilities and combinators for parsing
4809 command line options in Haskell.")
4810 (license license:bsd-3)))
4811
4812 (define-public ghc-base-orphans
4813 (package
4814 (name "ghc-base-orphans")
4815 (version "0.7")
4816 (source
4817 (origin
4818 (method url-fetch)
4819 (uri (string-append
4820 "https://hackage.haskell.org/package/base-orphans/base-orphans-"
4821 version
4822 ".tar.gz"))
4823 (sha256
4824 (base32
4825 "057f9npnqk71ccfh95djfkpd54dzazphj06grwxa3fyhwcwxrb8a"))))
4826 (build-system haskell-build-system)
4827 (native-inputs
4828 `(("ghc-quickcheck" ,ghc-quickcheck)
4829 ("ghc-hspec" ,ghc-hspec)
4830 ("hspec-discover" ,hspec-discover)))
4831 (home-page "https://hackage.haskell.org/package/base-orphans")
4832 (synopsis "Orphan instances for backwards compatibility")
4833 (description "This package defines orphan instances that mimic instances
4834 available in later versions of base to a wider (older) range of compilers.")
4835 (license license:bsd-3)))
4836
4837 (define-public ghc-auto-update
4838 (package
4839 (name "ghc-auto-update")
4840 (version "0.1.4")
4841 (source
4842 (origin
4843 (method url-fetch)
4844 (uri (string-append
4845 "https://hackage.haskell.org/package/auto-update/auto-update-"
4846 version
4847 ".tar.gz"))
4848 (sha256
4849 (base32
4850 "09dlh2alsx2mw5kvj931yhbj0aw7jmly2cm9xbscm2sf098w35jy"))))
4851 (build-system haskell-build-system)
4852 (home-page "https://github.com/yesodweb/wai")
4853 (synopsis "Efficiently run periodic, on-demand actions")
4854 (description "This library provides mechanisms to efficiently run
4855 periodic, on-demand actions in Haskell.")
4856 (license license:expat)))
4857
4858 (define-public ghc-tagged
4859 (package
4860 (name "ghc-tagged")
4861 (version "0.8.5")
4862 (source
4863 (origin
4864 (method url-fetch)
4865 (uri (string-append
4866 "https://hackage.haskell.org/package/tagged/tagged-"
4867 version
4868 ".tar.gz"))
4869 (sha256
4870 (base32
4871 "16cdzh0bw16nvjnyyy5j9s60malhz4nnazw96vxb0xzdap4m2z74"))))
4872 (build-system haskell-build-system)
4873 (arguments
4874 `(#:cabal-revision
4875 ("2" "0r2knfcq0b4s652vlvlnfwxlc2mkc2ra9kl8bp4zdn1awmfy0ia5")))
4876 (inputs
4877 `(("ghc-transformers-compat" ,ghc-transformers-compat)))
4878 (home-page "https://hackage.haskell.org/package/tagged")
4879 (synopsis "Haskell phantom types to avoid passing dummy arguments")
4880 (description "This library provides phantom types for Haskell 98, to avoid
4881 having to unsafely pass dummy arguments.")
4882 (license license:bsd-3)))
4883
4884 (define-public ghc-unbounded-delays
4885 (package
4886 (name "ghc-unbounded-delays")
4887 (version "0.1.1.0")
4888 (source
4889 (origin
4890 (method url-fetch)
4891 (uri (string-append
4892 "https://hackage.haskell.org/package/unbounded-delays/unbounded-delays-"
4893 version
4894 ".tar.gz"))
4895 (sha256
4896 (base32
4897 "1ir9fghbrc214c97bwafk5ck6cacxz1pdnq4i18p604d1b8zg9wa"))))
4898 (build-system haskell-build-system)
4899 (home-page "https://github.com/basvandijk/unbounded-delays")
4900 (synopsis "Unbounded thread delays and timeouts")
4901 (description "The @code{threadDelay} and @code{timeout} functions from the
4902 Haskell base library use the bounded @code{Int} type for specifying the delay
4903 or timeout period. This package provides alternative functions which use the
4904 unbounded @code{Integer} type.")
4905 (license license:bsd-3)))
4906
4907 (define-public ghc-clock
4908 (package
4909 (name "ghc-clock")
4910 (version "0.7.2")
4911 (source
4912 (origin
4913 (method url-fetch)
4914 (uri (string-append
4915 "https://hackage.haskell.org/package/"
4916 "clock/"
4917 "clock-" version ".tar.gz"))
4918 (sha256
4919 (base32 "07v91s20halsqjmziqb1sqjp2sjpckl9by7y28aaklwqi2bh2rl8"))))
4920 (build-system haskell-build-system)
4921 (inputs
4922 `(("ghc-tasty" ,ghc-tasty)
4923 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
4924 (home-page "https://hackage.haskell.org/package/clock")
4925 (synopsis "High-resolution clock for Haskell")
4926 (description "A package for convenient access to high-resolution clock and
4927 timer functions of different operating systems via a unified API.")
4928 (license license:bsd-3)))
4929
4930 (define-public ghc-charset
4931 (package
4932 (name "ghc-charset")
4933 (version "0.3.7.1")
4934 (source
4935 (origin
4936 (method url-fetch)
4937 (uri (string-append
4938 "https://hackage.haskell.org/package/charset/charset-"
4939 version
4940 ".tar.gz"))
4941 (sha256
4942 (base32
4943 "1gn0m96qpjww8hpp2g1as5yy0wcwy4iq73h3kz6g0yxxhcl5sh9x"))))
4944 (build-system haskell-build-system)
4945 (inputs
4946 `(("ghc-semigroups" ,ghc-semigroups)
4947 ("ghc-unordered-containers" ,ghc-unordered-containers)))
4948 (home-page "https://github.com/ekmett/charset")
4949 (synopsis "Fast unicode character sets for Haskell")
4950 (description "This package provides fast unicode character sets for
4951 Haskell, based on complemented PATRICIA tries.")
4952 (license license:bsd-3)))
4953
4954 (define-public ghc-bytestring-builder
4955 (package
4956 (name "ghc-bytestring-builder")
4957 (version "0.10.8.1.0")
4958 (source
4959 (origin
4960 (method url-fetch)
4961 (uri (string-append
4962 "https://hackage.haskell.org/package/bytestring-builder"
4963 "/bytestring-builder-" version ".tar.gz"))
4964 (sha256
4965 (base32
4966 "1hnvjac28y44yn78c9vdp1zvrknvlw98ky3g4n5vivr16rvh8x3d"))))
4967 (build-system haskell-build-system)
4968 (arguments `(#:haddock? #f)) ; Package contains no documentation.
4969 (home-page "https://hackage.haskell.org/package/bytestring-builder")
4970 (synopsis "The new bytestring builder, packaged outside of GHC")
4971 (description "This package provides the bytestring builder that is
4972 debuting in bytestring-0.10.4.0, which should be shipping with GHC 7.8.
4973 Compatibility package for older packages.")
4974 (license license:bsd-3)))
4975
4976 (define-public ghc-nats
4977 (package
4978 (name "ghc-nats")
4979 (version "1.1.2")
4980 (source
4981 (origin
4982 (method url-fetch)
4983 (uri (string-append
4984 "https://hackage.haskell.org/package/nats/nats-"
4985 version
4986 ".tar.gz"))
4987 (sha256
4988 (base32
4989 "1v40drmhixck3pz3mdfghamh73l4rp71mzcviipv1y8jhrfxilmr"))))
4990 (build-system haskell-build-system)
4991 (arguments `(#:haddock? #f))
4992 (inputs
4993 `(("ghc-hashable" ,ghc-hashable)))
4994 (home-page "https://hackage.haskell.org/package/nats")
4995 (synopsis "Natural numbers")
4996 (description "This library provides the natural numbers for Haskell.")
4997 (license license:bsd-3)))
4998
4999 (define-public ghc-nats-bootstrap
5000 (package
5001 (inherit ghc-nats)
5002 (name "ghc-nats-bootstrap")
5003 (inputs
5004 `(("ghc-hashable" ,ghc-hashable-bootstrap)))
5005 (properties '((hidden? #t)))))
5006
5007 (define-public ghc-void
5008 (package
5009 (name "ghc-void")
5010 (version "0.7.2")
5011 (source
5012 (origin
5013 (method url-fetch)
5014 (uri (string-append
5015 "https://hackage.haskell.org/package/void/void-"
5016 version
5017 ".tar.gz"))
5018 (sha256
5019 (base32
5020 "0aygw0yb1h3yhmfl3bkwh5d3h0l4mmsxz7j53vdm6jryl1kgxzyk"))))
5021 (build-system haskell-build-system)
5022 (inputs
5023 `(("ghc-semigroups" ,ghc-semigroups)
5024 ("ghc-hashable" ,ghc-hashable)))
5025 (home-page "https://github.com/ekmett/void")
5026 (synopsis
5027 "Logically uninhabited data type")
5028 (description
5029 "A Haskell 98 logically uninhabited data type, used to indicate that a
5030 given term should not exist.")
5031 (license license:bsd-3)))
5032
5033 (define-public ghc-invariant
5034 (package
5035 (name "ghc-invariant")
5036 (version "0.5.1")
5037 (source
5038 (origin
5039 (method url-fetch)
5040 (uri (string-append
5041 "https://hackage.haskell.org/package/invariant/invariant-"
5042 version ".tar.gz"))
5043 (sha256
5044 (base32
5045 "0aqj7z55632qdg45074kgn9qfdxzb0a2f8lgjzr0l0i4mm2rr37b"))))
5046 (build-system haskell-build-system)
5047 (inputs
5048 `(("ghc-bifunctors" ,ghc-bifunctors)
5049 ("ghc-comonad" ,ghc-comonad)
5050 ("ghc-contravariant" ,ghc-contravariant)
5051 ("ghc-profunctors" ,ghc-profunctors)
5052 ("ghc-semigroups" ,ghc-semigroups)
5053 ("ghc-statevar" ,ghc-statevar)
5054 ("ghc-stm" ,ghc-stm)
5055 ("ghc-tagged" ,ghc-tagged)
5056 ("ghc-th-abstraction" ,ghc-th-abstraction)
5057 ("ghc-transformers-compat" ,ghc-transformers-compat)
5058 ("ghc-unordered-containers" ,ghc-unordered-containers)))
5059 (native-inputs
5060 `(("ghc-hspec" ,ghc-hspec)
5061 ("ghc-quickcheck" ,ghc-quickcheck)
5062 ("hspec-discover" ,hspec-discover)))
5063 (home-page "https://github.com/nfrisby/invariant-functors")
5064 (synopsis "Haskell98 invariant functors")
5065 (description "Haskell98 invariant functors (also known as exponential
5066 functors). For more information, see Edward Kmett's article
5067 @uref{http://comonad.com/reader/2008/rotten-bananas/, Rotten Bananas}.")
5068 (license license:bsd-2)))
5069
5070 (define-public ghc-kan-extensions
5071 (package
5072 (name "ghc-kan-extensions")
5073 (version "5.2")
5074 (source
5075 (origin
5076 (method url-fetch)
5077 (uri (string-append
5078 "https://hackage.haskell.org/package/kan-extensions/kan-extensions-"
5079 version
5080 ".tar.gz"))
5081 (sha256
5082 (base32
5083 "1lyvyiwwh962j2nnnsqzlvp5zq6z8p3spvhmji99cjvldxc7wwkb"))))
5084 (build-system haskell-build-system)
5085 (inputs
5086 `(("ghc-adjunctions" ,ghc-adjunctions)
5087 ("ghc-comonad" ,ghc-comonad)
5088 ("ghc-contravariant" ,ghc-contravariant)
5089 ("ghc-distributive" ,ghc-distributive)
5090 ("ghc-free" ,ghc-free)
5091 ("ghc-invariant" ,ghc-invariant)
5092 ("ghc-semigroupoids" ,ghc-semigroupoids)
5093 ("ghc-tagged" ,ghc-tagged)
5094 ("ghc-transformers-compat" ,ghc-transformers-compat)))
5095 (home-page "https://github.com/ekmett/kan-extensions/")
5096 (synopsis "Kan extensions library")
5097 (description "This library provides Kan extensions, Kan lifts, various
5098 forms of the Yoneda lemma, and (co)density (co)monads for Haskell.")
5099 (license license:bsd-3)))
5100
5101 (define-public ghc-call-stack
5102 (package
5103 (name "ghc-call-stack")
5104 (version "0.1.0")
5105 (source
5106 (origin
5107 (method url-fetch)
5108 (uri (string-append "https://hackage.haskell.org/package/"
5109 "call-stack/call-stack-"
5110 version ".tar.gz"))
5111 (sha256
5112 (base32
5113 "1qmihf5jafmc79sk52l6gpx75f5bnla2lp62kh3p34x3j84mwpzj"))))
5114 (build-system haskell-build-system)
5115 (inputs `(("ghc-nanospec" ,ghc-nanospec)))
5116 (home-page "https://github.com/sol/call-stack#readme")
5117 (synopsis "Use GHC call-stacks in a backward compatible way")
5118 (description "This package provides a compatibility layer for using GHC
5119 call stacks with different versions of the compiler.")
5120 (license license:expat)))
5121
5122 ;; This is used as an input to ghc-hunit. We cannot use ghc-call-stack there,
5123 ;; because it depends on ghc-nanospec, which depends on ghc-hunit.
5124 (define-public ghc-call-stack-boot
5125 (hidden-package
5126 (package
5127 (inherit ghc-call-stack)
5128 (arguments '(#:tests? #f))
5129 (inputs '()))))
5130
5131 (define-public ghc-statevar
5132 (package
5133 (name "ghc-statevar")
5134 (version "1.1.1.1")
5135 (source
5136 (origin
5137 (method url-fetch)
5138 (uri (string-append
5139 "https://hackage.haskell.org/package/StateVar/StateVar-"
5140 version
5141 ".tar.gz"))
5142 (sha256
5143 (base32
5144 "08r2iw0gdmfs4f6wraaq19vfmkjdbics3dbhw39y7mdjd98kcr7b"))))
5145 (build-system haskell-build-system)
5146 (inputs
5147 `(("ghc-stm" ,ghc-stm)))
5148 (home-page "https://hackage.haskell.org/package/StateVar")
5149 (synopsis "State variables for Haskell")
5150 (description "This package provides state variables, which are references
5151 in the @code{IO} monad, like @code{IORef}s or parts of the OpenGL state.")
5152 (license license:bsd-3)))
5153
5154 (define-public ghc-lens
5155 (package
5156 (name "ghc-lens")
5157 (version "4.16.1")
5158 (source
5159 (origin
5160 (method url-fetch)
5161 (uri (string-append "https://hackage.haskell.org/package/lens/lens-"
5162 version ".tar.gz"))
5163 (sha256
5164 (base32
5165 "1im4drhbydbawd6i0jsrzpqihnmx4ywpkg7yg94ddwsw3mxwkgpm"))))
5166 (build-system haskell-build-system)
5167 (arguments
5168 `(#:cabal-revision
5169 ("2" "11h83lj5mba4grhz1qx3irz10ysm9c3k7k6i6xv2cr60q8xin3ri")))
5170 (inputs
5171 `(("ghc-base-orphans" ,ghc-base-orphans)
5172 ("ghc-bifunctors" ,ghc-bifunctors)
5173 ("ghc-distributive" ,ghc-distributive)
5174 ("ghc-exceptions" ,ghc-exceptions)
5175 ("ghc-free" ,ghc-free)
5176 ("ghc-kan-extensions" ,ghc-kan-extensions)
5177 ("ghc-parallel" ,ghc-parallel)
5178 ("ghc-reflection" ,ghc-reflection)
5179 ("ghc-semigroupoids" ,ghc-semigroupoids)
5180 ("ghc-vector" ,ghc-vector)
5181 ("ghc-call-stack" ,ghc-call-stack)
5182 ("ghc-comonad" ,ghc-comonad)
5183 ("ghc-contravariant" ,ghc-contravariant)
5184 ("ghc-hashable" ,ghc-hashable)
5185 ("ghc-profunctors" ,ghc-profunctors)
5186 ("ghc-semigroups" ,ghc-semigroups)
5187 ("ghc-tagged" ,ghc-tagged)
5188 ("ghc-text" ,ghc-text)
5189 ("ghc-transformers-compat" ,ghc-transformers-compat)
5190 ("ghc-unordered-containers" ,ghc-unordered-containers)
5191 ("ghc-void" ,ghc-void)
5192 ("ghc-generic-deriving" ,ghc-generic-deriving)
5193 ("ghc-nats" ,ghc-nats)
5194 ("ghc-simple-reflect" ,ghc-simple-reflect)
5195 ("hlint" ,hlint)))
5196 (native-inputs
5197 `(("cabal-doctest" ,cabal-doctest)
5198 ("ghc-doctest" ,ghc-doctest)
5199 ("ghc-hunit" ,ghc-hunit)
5200 ("ghc-test-framework" ,ghc-test-framework)
5201 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
5202 ("ghc-test-framework-th" ,ghc-test-framework-th)
5203 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)
5204 ("ghc-quickcheck" ,ghc-quickcheck)))
5205 (home-page "https://github.com/ekmett/lens/")
5206 (synopsis "Lenses, Folds and Traversals")
5207 (description "This library provides @code{Control.Lens}. The combinators
5208 in @code{Control.Lens} provide a highly generic toolbox for composing families
5209 of getters, folds, isomorphisms, traversals, setters and lenses and their
5210 indexed variants.")
5211 (license license:bsd-3)))
5212
5213 (define-public ghc-cheapskate
5214 (package
5215 (name "ghc-cheapskate")
5216 (version "0.1.1")
5217 (source
5218 (origin
5219 (method url-fetch)
5220 (uri (string-append
5221 "https://hackage.haskell.org/package/cheapskate/cheapskate-"
5222 version
5223 ".tar.gz"))
5224 (sha256
5225 (base32
5226 "1hiqi7h76shjzs2zj0j8g6wnq2hbiq1hmfafdazr97fba2zl2432"))))
5227 (build-system haskell-build-system)
5228 (inputs
5229 `(("ghc-text" ,ghc-text)
5230 ("ghc-blaze-html" ,ghc-blaze-html)
5231 ("ghc-xss-sanitize" ,ghc-xss-sanitize)
5232 ("ghc-data-default" ,ghc-data-default)
5233 ("ghc-syb" ,ghc-syb)
5234 ("ghc-uniplate" ,ghc-uniplate)))
5235 (home-page "https://github.com/jgm/cheapskate")
5236 (synopsis "Experimental markdown processor")
5237 (description "Cheapskate is an experimental Markdown processor in pure
5238 Haskell. It aims to process Markdown efficiently and in the most forgiving
5239 possible way. It is designed to deal with any input, including garbage, with
5240 linear performance. Output is sanitized by default for protection against
5241 cross-site scripting (@dfn{XSS}) attacks.")
5242 (license license:bsd-3)))
5243
5244 (define-public ghc-bifunctors
5245 (package
5246 (name "ghc-bifunctors")
5247 (version "5.5.3")
5248 (source
5249 (origin
5250 (method url-fetch)
5251 (uri (string-append
5252 "https://hackage.haskell.org/package/bifunctors/bifunctors-"
5253 version
5254 ".tar.gz"))
5255 (sha256
5256 (base32
5257 "1jn9rxg643xnlhrknmjz88nblcpsr45xwjkwwnn5nxpasa7m4d6l"))))
5258 (build-system haskell-build-system)
5259 (inputs
5260 `(("ghc-base-orphans" ,ghc-base-orphans)
5261 ("ghc-comonad" ,ghc-comonad)
5262 ("ghc-th-abstraction" ,ghc-th-abstraction)
5263 ("ghc-transformers-compat" ,ghc-transformers-compat)
5264 ("ghc-tagged" ,ghc-tagged)
5265 ("ghc-semigroups" ,ghc-semigroups)))
5266 (native-inputs
5267 `(("ghc-hspec" ,ghc-hspec)
5268 ("hspec-discover" ,hspec-discover)
5269 ("ghc-quickcheck" ,ghc-quickcheck)))
5270 (home-page "https://github.com/ekmett/bifunctors/")
5271 (synopsis "Bifunctors for Haskell")
5272 (description "This package provides bifunctors for Haskell.")
5273 (license license:bsd-3)))
5274
5275 (define-public ghc-semigroupoids
5276 (package
5277 (name "ghc-semigroupoids")
5278 (version "5.2.2")
5279 (source
5280 (origin
5281 (method url-fetch)
5282 (uri (string-append
5283 "https://hackage.haskell.org/package/semigroupoids/semigroupoids-"
5284 version
5285 ".tar.gz"))
5286 (sha256
5287 (base32
5288 "17i96y4iqj8clcs090lf6k0ij3j16nj14vsfwz0mm9nd6i4gbpp4"))))
5289 (build-system haskell-build-system)
5290 (arguments
5291 `(#:cabal-revision
5292 ("4" "0pqfrxzypjq6z8lgdkzq4vhcyqkpk5326hny0r6snpc3gm78r4ij")))
5293 (inputs
5294 `(("ghc-base-orphans" ,ghc-base-orphans)
5295 ("ghc-transformers-compat" ,ghc-transformers-compat)
5296 ("ghc-bifunctors" ,ghc-bifunctors)
5297 ("ghc-comonad" ,ghc-comonad)
5298 ("ghc-contravariant" ,ghc-contravariant)
5299 ("ghc-distributive" ,ghc-distributive)
5300 ("ghc-hashable" ,ghc-hashable)
5301 ("ghc-semigroups" ,ghc-semigroups)
5302 ("ghc-tagged" ,ghc-tagged)
5303 ("ghc-unordered-containers" ,ghc-unordered-containers)))
5304 (native-inputs
5305 `(("cabal-doctest" ,cabal-doctest)
5306 ("ghc-doctest" ,ghc-doctest)))
5307 (home-page "https://github.com/ekmett/semigroupoids")
5308 (synopsis "Semigroupoids operations for Haskell")
5309 (description "This library provides a wide array of (semi)groupoids and
5310 operations for working with them. A @code{Semigroupoid} is a @code{Category}
5311 without the requirement of identity arrows for every object in the category.
5312 A @code{Category} is any @code{Semigroupoid} for which the Yoneda lemma holds.
5313 Finally, to work with these weaker structures it is beneficial to have
5314 containers that can provide stronger guarantees about their contents, so
5315 versions of @code{Traversable} and @code{Foldable} that can be folded with
5316 just a @code{Semigroup} are added.")
5317 (license license:bsd-3)))
5318
5319 (define-public ghc-contravariant
5320 (package
5321 (name "ghc-contravariant")
5322 (version "1.4.1")
5323 (source
5324 (origin
5325 (method url-fetch)
5326 (uri (string-append
5327 "https://hackage.haskell.org/package/contravariant/contravariant-"
5328 version
5329 ".tar.gz"))
5330 (sha256
5331 (base32
5332 "1vfhk8c5cxmmakx7rflap1ipkx5q0j5vnlrcz7yz6y53kxhksgf9"))))
5333 (build-system haskell-build-system)
5334 (inputs
5335 `(("ghc-void" ,ghc-void)
5336 ("ghc-transformers-compat" ,ghc-transformers-compat)
5337 ("ghc-statevar" ,ghc-statevar)
5338 ("ghc-semigroups" ,ghc-semigroups)))
5339 (home-page
5340 "https://github.com/ekmett/contravariant/")
5341 (synopsis "Contravariant functors")
5342 (description "Contravariant functors for Haskell.")
5343 (license license:bsd-3)))
5344
5345 (define-public ghc-semigroups
5346 (package
5347 (name "ghc-semigroups")
5348 (version "0.18.5")
5349 (source
5350 (origin
5351 (method url-fetch)
5352 (uri (string-append
5353 "https://hackage.haskell.org/package/semigroups/semigroups-"
5354 version
5355 ".tar.gz"))
5356 (sha256
5357 (base32
5358 "17g29h62g1k51ghhvzkw72zksjgi6vs6bfipkj81pqw1dsprcamb"))))
5359 (build-system haskell-build-system)
5360 (inputs
5361 `(("ghc-nats" ,ghc-nats)
5362 ("ghc-tagged" ,ghc-tagged)
5363 ("ghc-unordered-containers" ,ghc-unordered-containers)
5364 ("ghc-text" ,ghc-text)
5365 ("ghc-hashable" ,ghc-hashable)))
5366 (home-page "https://github.com/ekmett/semigroups/")
5367 (synopsis "Semigroup operations for Haskell")
5368 (description "This package provides semigroups for Haskell. In
5369 mathematics, a semigroup is an algebraic structure consisting of a set
5370 together with an associative binary operation. A semigroup generalizes a
5371 monoid in that there might not exist an identity element. It
5372 also (originally) generalized a group (a monoid with all inverses) to a type
5373 where every element did not have to have an inverse, thus the name
5374 semigroup.")
5375 (license license:bsd-3)))
5376
5377 (define-public ghc-semigroups-bootstrap
5378 (package
5379 (inherit ghc-semigroups)
5380 (name "ghc-semigroups-bootstrap")
5381 (inputs
5382 `(("ghc-nats" ,ghc-nats-bootstrap)
5383 ("ghc-tagged" ,ghc-tagged)
5384 ("ghc-unordered-containers" ,ghc-unordered-containers-bootstrap)
5385 ("ghc-text" ,ghc-text)
5386 ("ghc-hashable" ,ghc-hashable-bootstrap)))
5387 (properties '(hidden? #t))))
5388
5389 (define-public ghc-free
5390 (package
5391 (name "ghc-free")
5392 (version "5.0.2")
5393 (source
5394 (origin
5395 (method url-fetch)
5396 (uri (string-append
5397 "https://hackage.haskell.org/package/free/free-"
5398 version
5399 ".tar.gz"))
5400 (sha256
5401 (base32
5402 "15m3n9vhz7z3kzv1w3wlfa3x8jp4cbrkwmrcjr7jlx39iqffn1gg"))))
5403 (build-system haskell-build-system)
5404 (inputs
5405 `(("ghc-prelude-extras" ,ghc-prelude-extras)
5406 ("ghc-profunctors" ,ghc-profunctors)
5407 ("ghc-exceptions" ,ghc-exceptions)
5408 ("ghc-bifunctors" ,ghc-bifunctors)
5409 ("ghc-comonad" ,ghc-comonad)
5410 ("ghc-distributive" ,ghc-distributive)
5411 ("ghc-semigroupoids" ,ghc-semigroupoids)
5412 ("ghc-semigroups" ,ghc-semigroups)
5413 ("ghc-transformers-base" ,ghc-transformers-base)
5414 ("ghc-transformers-compat" ,ghc-transformers-compat)))
5415 (home-page "https://github.com/ekmett/free/")
5416 (synopsis "Unrestricted monads for Haskell")
5417 (description "This library provides free monads, which are useful for many
5418 tree-like structures and domain specific languages. If @code{f} is a
5419 @code{Functor} then the free @code{Monad} on @code{f} is the type of trees
5420 whose nodes are labeled with the constructors of @code{f}. The word \"free\"
5421 is used in the sense of \"unrestricted\" rather than \"zero-cost\": @code{Free
5422 f} makes no constraining assumptions beyond those given by @code{f} and the
5423 definition of @code{Monad}.")
5424 (license license:bsd-3)))
5425
5426 (define-public ghc-adjunctions
5427 (package
5428 (name "ghc-adjunctions")
5429 (version "4.4")
5430 (source
5431 (origin
5432 (method url-fetch)
5433 (uri (string-append
5434 "https://hackage.haskell.org/package/adjunctions/adjunctions-"
5435 version
5436 ".tar.gz"))
5437 (sha256
5438 (base32
5439 "1sbal7cbhm12crfnfhkk322jnzgx7lhw3jzq0p463bipagsjwz2h"))))
5440 (build-system haskell-build-system)
5441 (inputs
5442 `(("ghc-profunctors" ,ghc-profunctors)
5443 ("ghc-comonad" ,ghc-comonad)
5444 ("ghc-contravariant" ,ghc-contravariant)
5445 ("ghc-distributive" ,ghc-distributive)
5446 ("ghc-free" ,ghc-free)
5447 ("ghc-tagged" ,ghc-tagged)
5448 ("ghc-semigroupoids" ,ghc-semigroupoids)
5449 ("ghc-semigroups" ,ghc-semigroups)
5450 ("ghc-transformers-compat" ,ghc-transformers-compat)
5451 ("ghc-void" ,ghc-void)))
5452 (native-inputs
5453 `(("ghc-generic-deriving" ,ghc-generic-deriving)
5454 ("ghc-hspec" ,ghc-hspec)
5455 ("hspec-discover" ,hspec-discover)))
5456 (home-page "https://github.com/ekmett/adjunctions/")
5457 (synopsis "Adjunctions and representable functors")
5458 (description "This library provides adjunctions and representable functors
5459 for Haskell.")
5460 (license license:bsd-3)))
5461
5462 (define-public ghc-equivalence
5463 (package
5464 (name "ghc-equivalence")
5465 (version "0.3.2")
5466 (source
5467 (origin
5468 (method url-fetch)
5469 (uri (string-append "https://hackage.haskell.org/package/equivalence"
5470 "/equivalence-" version ".tar.gz"))
5471 (sha256
5472 (base32 "0a85bdyyvjqs5z4kfhhf758210k9gi9dv42ik66a3jl0z7aix8kx"))))
5473 (build-system haskell-build-system)
5474 (inputs
5475 `(("ghc-stmonadtrans" ,ghc-stmonadtrans)
5476 ("ghc-transformers-compat" ,ghc-transformers-compat)
5477 ("ghc-quickcheck" ,ghc-quickcheck)
5478 ("ghc-test-framework" ,ghc-test-framework)
5479 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
5480 (home-page "https://github.com/pa-ba/equivalence")
5481 (synopsis "Maintaining an equivalence relation implemented as union-find")
5482 (description
5483 "This is an implementation of Tarjan's Union-Find algorithm (Robert E.@:
5484 Tarjan. \"Efficiency of a Good But Not Linear Set Union Algorithm\",JACM
5485 22(2), 1975) in order to maintain an equivalence relation. This
5486 implementation is a port of the @code{union-find} package using the @code{ST}
5487 monad transformer (instead of the IO monad).")
5488 (license license:bsd-3)))
5489
5490 (define-public ghc-fast-logger
5491 (package
5492 (name "ghc-fast-logger")
5493 (version "2.4.11")
5494 (source
5495 (origin
5496 (method url-fetch)
5497 (uri (string-append
5498 "https://hackage.haskell.org/package/fast-logger/fast-logger-"
5499 version
5500 ".tar.gz"))
5501 (sha256
5502 (base32
5503 "1ad2vq4nifdxshqk9yrmghqizhkgybfz134kpr6padglb2mxxrdv"))))
5504 (build-system haskell-build-system)
5505 (inputs
5506 `(("ghc-auto-update" ,ghc-auto-update)
5507 ("ghc-easy-file" ,ghc-easy-file)
5508 ("ghc-text" ,ghc-text)
5509 ("ghc-unix-time" ,ghc-unix-time)))
5510 (native-inputs
5511 `(("hspec-discover" ,hspec-discover)
5512 ("ghc-hspec" ,ghc-hspec)))
5513 (home-page "https://hackage.haskell.org/package/fast-logger")
5514 (synopsis "Fast logging system")
5515 (description "This library provides a fast logging system for Haskell.")
5516 (license license:bsd-3)))
5517
5518 (define-public ghc-doctest
5519 (package
5520 (name "ghc-doctest")
5521 (version "0.16.0")
5522 (source
5523 (origin
5524 (method url-fetch)
5525 (uri (string-append
5526 "https://hackage.haskell.org/package/doctest/doctest-"
5527 version
5528 ".tar.gz"))
5529 (sha256
5530 (base32
5531 "0hkccch65s3kp0b36h7bqhilnpi4bx8kngncm7ma9vbd3dwacjdv"))))
5532 (build-system haskell-build-system)
5533 (arguments `(#:tests? #f)) ; FIXME: missing test framework
5534 (inputs
5535 `(("ghc-syb" ,ghc-syb)
5536 ("ghc-paths" ,ghc-paths)
5537 ("ghc-base-compat" ,ghc-base-compat)
5538 ("ghc-code-page" ,ghc-code-page)
5539 ("ghc-hunit" ,ghc-hunit)
5540 ("ghc-hspec" ,ghc-hspec)
5541 ("ghc-quickcheck" ,ghc-quickcheck)
5542 ("ghc-stringbuilder" ,ghc-stringbuilder)
5543 ("ghc-silently" ,ghc-silently)
5544 ("ghc-setenv" ,ghc-setenv)))
5545 (home-page
5546 "https://github.com/sol/doctest#readme")
5547 (synopsis "Test interactive Haskell examples")
5548 (description "The doctest program checks examples in source code comments.
5549 It is modeled after doctest for Python, see
5550 @uref{https://docs.python.org/library/doctest.html, the Doctest website}.")
5551 (license license:expat)))
5552
5553 (define-public ghc-lifted-base
5554 (package
5555 (name "ghc-lifted-base")
5556 (version "0.2.3.12")
5557 (source
5558 (origin
5559 (method url-fetch)
5560 (uri (string-append
5561 "https://hackage.haskell.org/package/lifted-base/lifted-base-"
5562 version
5563 ".tar.gz"))
5564 (sha256
5565 (base32
5566 "1i8p8d3rkdh21bhgjjh32vd7qqjr7jq7p59qds0aw2kmargsjd61"))))
5567 (build-system haskell-build-system)
5568 (arguments `(#:tests? #f)) ; FIXME: Missing testing libraries.
5569 (inputs
5570 `(("ghc-transformers-base" ,ghc-transformers-base)
5571 ("ghc-monad-control" ,ghc-monad-control)
5572 ("ghc-transformers-compat" ,ghc-transformers-compat)
5573 ("ghc-hunit" ,ghc-hunit)))
5574 (home-page "https://github.com/basvandijk/lifted-base")
5575 (synopsis "Lifted IO operations from the base library")
5576 (description "Lifted-base exports IO operations from the @code{base}
5577 library lifted to any instance of @code{MonadBase} or @code{MonadBaseControl}.
5578 Note that not all modules from @code{base} are converted yet. The package
5579 includes a copy of the @code{monad-peel} test suite written by Anders
5580 Kaseorg.")
5581 (license license:bsd-3)))
5582
5583 (define-public ghc-word8
5584 (package
5585 (name "ghc-word8")
5586 (version "0.1.3")
5587 (source
5588 (origin
5589 (method url-fetch)
5590 (uri (string-append
5591 "https://hackage.haskell.org/package/word8/word8-"
5592 version
5593 ".tar.gz"))
5594 (sha256
5595 (base32
5596 "12jx7f13d2h1djq4fh4dyrab61sm49mj1w61j3rzp2vjfm696c16"))))
5597 (build-system haskell-build-system)
5598 (native-inputs
5599 `(("ghc-hspec" ,ghc-hspec)
5600 ("hspec-discover" ,hspec-discover)))
5601 (home-page "https://hackage.haskell.org/package/word8")
5602 (synopsis "Word8 library for Haskell")
5603 (description "Word8 library to be used with @code{Data.ByteString}.")
5604 (license license:bsd-3)))
5605
5606 (define-public ghc-stringsearch
5607 (package
5608 (name "ghc-stringsearch")
5609 (version "0.3.6.6")
5610 (source
5611 (origin
5612 (method url-fetch)
5613 (uri (string-append
5614 "https://hackage.haskell.org/package/stringsearch/stringsearch-"
5615 version
5616 ".tar.gz"))
5617 (sha256
5618 (base32
5619 "0jpy9xjcjdbpi3wk6mg7xwd7wfi2mma70p97v1ij5i8bj9qijpr9"))))
5620 (build-system haskell-build-system)
5621 (home-page "https://bitbucket.org/dafis/stringsearch")
5622 (synopsis "Fast searching, splitting and replacing of ByteStrings")
5623 (description "This package provides several functions to quickly search
5624 for substrings in strict or lazy @code{ByteStrings}. It also provides
5625 functions for breaking or splitting on substrings and replacing all
5626 occurrences of a substring (the first in case of overlaps) with another.")
5627 (license license:bsd-3)))
5628
5629 (define-public ghc-integer-logarithms
5630 (package
5631 (name "ghc-integer-logarithms")
5632 (version "1.0.2.1")
5633 (source
5634 (origin
5635 (method url-fetch)
5636 (uri (string-append "https://hackage.haskell.org/package/"
5637 "integer-logarithms/integer-logarithms-"
5638 version ".tar.gz"))
5639 (sha256
5640 (base32
5641 "1wj8kgjg5bn2yrs4zh9qfjv85cx6w998j9pi39yrbv305944mb9j"))))
5642 (build-system haskell-build-system)
5643 (arguments
5644 `(#:phases
5645 (modify-phases %standard-phases
5646 (add-before 'configure 'update-constraints
5647 (lambda _
5648 (substitute* "integer-logarithms.cabal"
5649 (("tasty >= 0\\.10 && < 1\\.1")
5650 "tasty >= 0.10 && < 1.2")))))))
5651 (native-inputs
5652 `(("ghc-quickcheck" ,ghc-quickcheck)
5653 ("ghc-smallcheck" ,ghc-smallcheck)
5654 ("ghc-tasty" ,ghc-tasty)
5655 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
5656 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
5657 ("ghc-tasty-smallcheck" ,ghc-tasty-smallcheck)))
5658 (home-page "https://github.com/Bodigrim/integer-logarithms")
5659 (synopsis "Integer logarithms")
5660 (description
5661 "This package provides the following modules:
5662 @code{Math.NumberTheory.Logarithms} and
5663 @code{Math.NumberTheory.Powers.Integer} from the @code{arithmoi} package,
5664 @code{GHC.Integer.Logarithms.Compat} and
5665 @code{Math.NumberTheory.Power.Natural}, as well as some additional functions
5666 in migrated modules.")
5667 (license license:expat)))
5668
5669 (define-public ghc-integer-logarithms-bootstrap
5670 (package
5671 (inherit ghc-integer-logarithms)
5672 (name "ghc-integer-logarithms-bootstrap")
5673 (arguments `(#:tests? #f))
5674 (native-inputs '())
5675 (properties '(hidden? #t))))
5676
5677 (define-public ghc-scientific
5678 (package
5679 (name "ghc-scientific")
5680 (version "0.3.6.2")
5681 (source
5682 (origin
5683 (method url-fetch)
5684 (uri (string-append
5685 "https://hackage.haskell.org/package/scientific/scientific-"
5686 version
5687 ".tar.gz"))
5688 (sha256
5689 (base32
5690 "03ql2f0ac8bsl524idy9xxa3kxisb2sj3avflzw580j5hzy0m397"))))
5691 (build-system haskell-build-system)
5692 (inputs
5693 `(("ghc-integer-logarithms" ,ghc-integer-logarithms)
5694 ("ghc-text" ,ghc-text)
5695 ("ghc-hashable" ,ghc-hashable)
5696 ("ghc-primitive" ,ghc-primitive)))
5697 (native-inputs
5698 `(("ghc-tasty" ,ghc-tasty)
5699 ("ghc-tasty-ant-xml" ,ghc-tasty-ant-xml)
5700 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
5701 ("ghc-tasty-smallcheck" ,ghc-tasty-smallcheck)
5702 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
5703 ("ghc-smallcheck" ,ghc-smallcheck)
5704 ("ghc-quickcheck" ,ghc-quickcheck)))
5705 (home-page "https://github.com/basvandijk/scientific")
5706 (synopsis "Numbers represented using scientific notation")
5707 (description "This package provides @code{Data.Scientific}, which provides
5708 the number type @code{Scientific}. Scientific numbers are arbitrary precision
5709 and space efficient. They are represented using
5710 @uref{https://en.wikipedia.org/wiki/Scientific_notation, scientific
5711 notation}.")
5712 (license license:bsd-3)))
5713
5714 (define-public ghc-scientific-bootstrap
5715 (package
5716 (inherit ghc-scientific)
5717 (name "ghc-scientific-bootstrap")
5718 (arguments `(#:tests? #f))
5719 (inputs
5720 `(("ghc-integer-logarithms" ,ghc-integer-logarithms-bootstrap)
5721 ("ghc-text" ,ghc-text)
5722 ("ghc-hashable" ,ghc-hashable)
5723 ("ghc-primitive" ,ghc-primitive)))
5724 (native-inputs '())
5725 (properties '(hidden? #t))))
5726
5727 (define-public ghc-boxes
5728 (package
5729 (name "ghc-boxes")
5730 (version "0.1.5")
5731 (source
5732 (origin
5733 (method url-fetch)
5734 (uri (string-append "https://hackage.haskell.org/package/boxes/boxes-"
5735 version ".tar.gz"))
5736 (sha256
5737 (base32 "1hsnmw95i58d4bkpxby3ddsj1cawypw4mdyb18m393s5i8p7iq9q"))))
5738 (build-system haskell-build-system)
5739 (inputs
5740 `(("ghc-split" ,ghc-split)
5741 ("ghc-quickcheck" ,ghc-quickcheck)))
5742 (home-page "https://hackage.haskell.org/package/boxes")
5743 (synopsis "2D text pretty-printing library")
5744 (description
5745 "Boxes is a pretty-printing library for laying out text in two dimensions,
5746 using a simple box model.")
5747 (license license:bsd-3)))
5748
5749 (define-public ghc-deepseq-generics
5750 (package
5751 (name "ghc-deepseq-generics")
5752 (version "0.2.0.0")
5753 (source (origin
5754 (method url-fetch)
5755 (uri (string-append "https://hackage.haskell.org/package/"
5756 "deepseq-generics/deepseq-generics-"
5757 version ".tar.gz"))
5758 (sha256
5759 (base32
5760 "17bwghc15mc9pchfd1w46jh2p3wzc86aj6a537wqwxn08rayzcxh"))))
5761 (build-system haskell-build-system)
5762 (arguments
5763 `(#:cabal-revision
5764 ("2" "1pnidf8w8x0w5fsqgv8hhrw07slmhxwy5x4fikgk0bd6k76aqicb")))
5765 (native-inputs
5766 `(("ghc-hunit" ,ghc-hunit)
5767 ("ghc-test-framework" ,ghc-test-framework)
5768 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)))
5769 (home-page "https://github.com/hvr/deepseq-generics")
5770 (synopsis "Generic RNF implementation")
5771 (description
5772 "This package provides a @code{GHC.Generics}-based
5773 @code{Control.DeepSeq.Generics.genericRnf} function which can be used for
5774 providing an @code{rnf} implementation.")
5775 (license license:bsd-3)))
5776
5777 (define-public ghc-string-qq
5778 (package
5779 (name "ghc-string-qq")
5780 (version "0.0.2")
5781 (source
5782 (origin
5783 (method url-fetch)
5784 (uri (string-append
5785 "https://hackage.haskell.org/package/string-qq/string-qq-"
5786 version
5787 ".tar.gz"))
5788 (sha256
5789 (base32
5790 "0662m3i5xrdrr95w829bszkhp88mj9iy1zya54vk2sl5hz9wlmwp"))))
5791 (build-system haskell-build-system)
5792 (home-page "http://hackage.haskell.org/package/string-qq")
5793 (synopsis
5794 "QuasiQuoter for non-interpolated strings, texts and bytestrings.")
5795 (description
5796 "This package provides a quasiquoter for non-interpolated strings, texts
5797 and bytestrings.")
5798 (license license:public-domain)))
5799
5800 (define-public ghc-pandoc-types
5801 (package
5802 (name "ghc-pandoc-types")
5803 (version "1.17.5.1")
5804 (source (origin
5805 (method url-fetch)
5806 (uri (string-append "https://hackage.haskell.org/package/"
5807 "pandoc-types/pandoc-types-"
5808 version ".tar.gz"))
5809 (sha256
5810 (base32
5811 "1q6v2bynij724fv347mhqxdscwifzrx5jb9mq80608qf638fn717"))))
5812 (build-system haskell-build-system)
5813 (inputs
5814 `(("ghc-syb" ,ghc-syb)
5815 ("ghc-aeson" ,ghc-aeson)
5816 ("ghc-string-qq" ,ghc-string-qq)))
5817 (native-inputs
5818 `(("ghc-quickcheck" ,ghc-quickcheck)
5819 ("ghc-test-framework" ,ghc-test-framework)
5820 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
5821 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)
5822 ("ghc-hunit" ,ghc-hunit)))
5823 (home-page "http://johnmacfarlane.net/pandoc")
5824 (synopsis "Types for representing a structured document")
5825 (description
5826 "This module defines the @code{Pandoc} data structure, which is used by
5827 pandoc to represent structured documents. It also provides functions for
5828 building up, manipulating and serialising @code{Pandoc} structures.")
5829 (license license:bsd-3)))
5830
5831 (define-public ghc-texmath
5832 (package
5833 (name "ghc-texmath")
5834 (version "0.11.0.1")
5835 (source (origin
5836 (method url-fetch)
5837 (uri (string-append "https://hackage.haskell.org/package/"
5838 "texmath/texmath-" version ".tar.gz"))
5839 (sha256
5840 (base32
5841 "11dc09hfnyfsz20ch2c867w0zdgjkzq41506lm61i3dk87ngdisf"))))
5842 (build-system haskell-build-system)
5843 (inputs
5844 `(("ghc-syb" ,ghc-syb)
5845 ("ghc-network-uri" ,ghc-network-uri)
5846 ("ghc-split" ,ghc-split)
5847 ("ghc-temporary" ,ghc-temporary)
5848 ("ghc-utf8-string" ,ghc-utf8-string)
5849 ("ghc-xml" ,ghc-xml)
5850 ("ghc-parsec" ,ghc-parsec)
5851 ("ghc-pandoc-types" ,ghc-pandoc-types)))
5852 (home-page "https://github.com/jgm/texmath")
5853 (synopsis "Conversion between formats used to represent mathematics")
5854 (description
5855 "The texmath library provides functions to read and write TeX math,
5856 presentation MathML, and OMML (Office Math Markup Language, used in Microsoft
5857 Office). Support is also included for converting math formats to pandoc's
5858 native format (allowing conversion, via pandoc, to a variety of different
5859 markup formats). The TeX reader supports basic LaTeX and AMS extensions, and
5860 it can parse and apply LaTeX macros.")
5861 (license license:gpl2+)))
5862
5863 (define-public ghc-regex-pcre-builtin
5864 (package
5865 (name "ghc-regex-pcre-builtin")
5866 (version "0.94.4.8.8.35")
5867 (source (origin
5868 (method url-fetch)
5869 (uri (string-append "https://hackage.haskell.org/package/"
5870 "regex-pcre-builtin/regex-pcre-builtin-"
5871 version ".tar.gz"))
5872 (sha256
5873 (base32
5874 "0y7as9wqlkykpipka2cfdhmcnin345q01pp0wsva8fwmvsavdl8b"))))
5875 (build-system haskell-build-system)
5876 (inputs
5877 `(("ghc-regex-base" ,ghc-regex-base)))
5878 (home-page "https://hackage.haskell.org/package/regex-pcre")
5879 (synopsis "Enhancement of the builtin Text.Regex library")
5880 (description
5881 "This package is an enhancement of the @code{Text.Regex} library,
5882 providing the PCRE backend to accompany regex-base, with bundled code from
5883 @url{https://www.pcre.org}.")
5884 (license license:bsd-3)))
5885
5886 (define-public ghc-diff
5887 (package
5888 (name "ghc-diff")
5889 (version "0.3.4")
5890 (source (origin
5891 (method url-fetch)
5892 (uri (string-append "https://hackage.haskell.org/package/"
5893 "Diff/Diff-" version ".tar.gz"))
5894 (sha256
5895 (base32
5896 "0bqcdvhxx8dmqc3793m6axg813wv9ldz2j37f1wygbbrbbndmdvp"))))
5897 (build-system haskell-build-system)
5898 (native-inputs
5899 `(("ghc-quickcheck" ,ghc-quickcheck)
5900 ("ghc-test-framework" ,ghc-test-framework)
5901 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
5902 (home-page "https://hub.darcs.net/sterlingclover/Diff")
5903 (synopsis "O(ND) diff algorithm in Haskell")
5904 (description
5905 "This package provides an implementation of the standard diff algorithm,
5906 and utilities for pretty printing.")
5907 (license license:bsd-3)))
5908
5909 (define-public ghc-highlighting-kate
5910 (package
5911 (name "ghc-highlighting-kate")
5912 (version "0.6.4")
5913 (source (origin
5914 (method url-fetch)
5915 (uri (string-append "https://hackage.haskell.org/package/"
5916 "highlighting-kate/highlighting-kate-"
5917 version ".tar.gz"))
5918 (sha256
5919 (base32
5920 "1bqv00gfmrsf0jjr4qf3lhshvfkyzmhbi3pjb6mafbnsyn2k7f6q"))))
5921 (build-system haskell-build-system)
5922 (inputs
5923 `(("ghc-diff" ,ghc-diff)
5924 ("ghc-regex-pcre-builtin" ,ghc-regex-pcre-builtin)))
5925 (native-inputs
5926 `(("ghc-parsec" ,ghc-parsec)
5927 ("ghc-blaze-html" ,ghc-blaze-html)
5928 ("ghc-utf8-string" ,ghc-utf8-string)))
5929 (home-page "https://github.com/jgm/highlighting-kate")
5930 (synopsis "Syntax highlighting library")
5931 (description
5932 "Highlighting-kate is a syntax highlighting library with support for
5933 nearly one hundred languages. The syntax parsers are automatically generated
5934 from @uref{https://kate-editor.org/, Kate syntax descriptions}, so any syntax
5935 supported by Kate can be added. An (optional) command-line program is
5936 provided, along with a utility for generating new parsers from Kate XML syntax
5937 descriptions.")
5938 (license license:gpl2+)))
5939
5940 (define-public ghc-cmark
5941 (package
5942 (name "ghc-cmark")
5943 (version "0.5.6")
5944 (source (origin
5945 (method url-fetch)
5946 ;; XXX As of version 0.5.6, this package bundles libcmark 0.28.0.
5947 ;; See cbits/cmark_version.h.
5948 (uri (string-append "https://hackage.haskell.org/package/"
5949 "cmark/cmark-" version ".tar.gz"))
5950 (sha256
5951 (base32
5952 "1c1j3a8b9qx5zk9myqm3gap8ymz7fipwrdmyfsq9wkkdr9x4np45"))))
5953 (build-system haskell-build-system)
5954 (inputs
5955 `(("ghc-text" ,ghc-text)))
5956 (native-inputs
5957 `(("ghc-hunit" ,ghc-hunit)))
5958 (home-page "https://github.com/jgm/commonmark-hs")
5959 (synopsis "Fast, accurate CommonMark (Markdown) parser and renderer")
5960 (description
5961 "This package provides Haskell bindings for
5962 @uref{https://github.com/jgm/cmark, libcmark}, the reference parser for
5963 CommonMark, a fully specified variant of Markdown. It includes bundled libcmark
5964 sources, and does not require prior installation of the C library.")
5965 (license license:bsd-3)))
5966
5967 (define-public ghc-cmark-gfm
5968 (package
5969 (name "ghc-cmark-gfm")
5970 (version "0.1.5")
5971 (source
5972 (origin
5973 (method url-fetch)
5974 (uri (string-append "https://hackage.haskell.org/package/"
5975 "cmark-gfm/cmark-gfm-"
5976 version ".tar.gz"))
5977 (sha256
5978 (base32
5979 "13b0mqks5c1q989slgsa3ixr5vvkfyic4ynzgv00kgl5qrs7hqk7"))))
5980 (build-system haskell-build-system)
5981 (inputs
5982 `(("ghc-text" ,ghc-text)))
5983 (native-inputs
5984 `(("ghc-hunit" ,ghc-hunit)))
5985 (home-page "https://github.com/kivikakk/cmark-gfm-hs")
5986 (synopsis
5987 "Fast, accurate GitHub Flavored Markdown parser and renderer")
5988 (description
5989 "This package provides Haskell bindings for libcmark-gfm, the reference
5990 parser for GitHub Flavored Markdown, a fully specified variant of Markdown.
5991 It includes sources for libcmark-gfm and does not require prior installation
5992 of the C library.")
5993 (license license:bsd-3)))
5994
5995 (define-public ghc-executable-path
5996 (package
5997 (name "ghc-executable-path")
5998 (version "0.0.3.1")
5999 (source (origin
6000 (method url-fetch)
6001 (uri (string-append "https://hackage.haskell.org/package/"
6002 "executable-path/executable-path-"
6003 version ".tar.gz"))
6004 (sha256
6005 (base32
6006 "0vxwmnsvx13cawcyhbyljkds0l1vr996ijldycx7nj0asjv45iww"))))
6007 (build-system haskell-build-system)
6008 (home-page "https://hackage.haskell.org/package/executable-path")
6009 (synopsis "Find out the full path of the executable")
6010 (description
6011 "The documentation of @code{System.Environment.getProgName} says that
6012 \"However, this is hard-to-impossible to implement on some non-Unix OSes, so
6013 instead, for maximum portability, we just return the leafname of the program
6014 as invoked.\" This library tries to provide the missing path.")
6015 (license license:public-domain)))
6016
6017 (define-public ghc-enclosed-exceptions
6018 (package
6019 (name "ghc-enclosed-exceptions")
6020 (version "1.0.3")
6021 (source (origin
6022 (method url-fetch)
6023 (uri (string-append "https://hackage.haskell.org/package/"
6024 "enclosed-exceptions/enclosed-exceptions-"
6025 version ".tar.gz"))
6026 (sha256
6027 (base32
6028 "1fghjj7nkiddrf03ks8brjpr5x25yi9fs7xg6adbi4mc2gqr6vdg"))))
6029 (build-system haskell-build-system)
6030 ;; FIXME: one of the tests blocks forever:
6031 ;; "thread blocked indefinitely in an MVar operation"
6032 (arguments '(#:tests? #f))
6033 (inputs
6034 `(("ghc-lifted-base" ,ghc-lifted-base)
6035 ("ghc-monad-control" ,ghc-monad-control)
6036 ("ghc-async" ,ghc-async)
6037 ("ghc-transformers-base" ,ghc-transformers-base)))
6038 (native-inputs
6039 `(("ghc-hspec" ,ghc-hspec)
6040 ("ghc-quickcheck" ,ghc-quickcheck)))
6041 (home-page "https://github.com/jcristovao/enclosed-exceptions")
6042 (synopsis "Catch all exceptions from within an enclosed computation")
6043 (description
6044 "This library implements a technique to catch all exceptions raised
6045 within an enclosed computation, while remaining responsive to (external)
6046 asynchronous exceptions.")
6047 (license license:expat)))
6048
6049 (define-public ghc-packedstring
6050 (package
6051 (name "ghc-packedstring")
6052 (version "0.1.0.1")
6053 (source (origin
6054 (method url-fetch)
6055 (uri (string-append "https://hackage.haskell.org/package/"
6056 "packedstring/packedstring-"
6057 version ".tar.gz"))
6058 (sha256
6059 (base32
6060 "1x78pzzdlnpcmh9p37rlf8m5cxf3yqm2alf3whl4zpr9w25r0qj8"))))
6061 (build-system haskell-build-system)
6062 (arguments
6063 `(#:phases
6064 (modify-phases %standard-phases
6065 (add-after 'unpack 'enable-extension
6066 (lambda _
6067 ;; This package won't compile without the StandaloneDeriving
6068 ;; extension.
6069 (substitute* "packedstring.cabal"
6070 (("CPP") "CPP, StandaloneDeriving"))
6071 #t)))))
6072 (home-page "https://hackage.haskell.org/package/packedstring")
6073 (synopsis "Library for packed strings")
6074 (description
6075 "This deprecated library provides an implementation of packed strings.")
6076 (license license:bsd-3)))
6077
6078 (define-public ghc-th-abstraction
6079 (package
6080 (name "ghc-th-abstraction")
6081 (version "0.2.8.0")
6082 (source
6083 (origin
6084 (method url-fetch)
6085 (uri (string-append "https://hackage.haskell.org/package/"
6086 "th-abstraction/th-abstraction-"
6087 version ".tar.gz"))
6088 (sha256
6089 (base32
6090 "0n17w4q2ykd0nica4sck2wng6md56rfad8x0icl0l8vnzb9nn4ya"))))
6091 (build-system haskell-build-system)
6092 (home-page "https://github.com/glguy/th-abstraction")
6093 (synopsis "Nicer interface for reified information about data types")
6094 (description
6095 "This package normalizes variations in the interface for inspecting
6096 datatype information via Template Haskell so that packages and support a
6097 single, easier to use informational datatype while supporting many versions of
6098 Template Haskell.")
6099 (license license:isc)))
6100
6101 (define-public ghc-th-lift
6102 (package
6103 (name "ghc-th-lift")
6104 (version "0.7.11")
6105 (source (origin
6106 (method url-fetch)
6107 (uri (string-append "https://hackage.haskell.org/package/"
6108 "th-lift/th-lift-" version ".tar.gz"))
6109 (sha256
6110 (base32
6111 "131360zxb0hazbqwbkk6ab2p77jkxr79bwwm618mrwrwkm3x2g6m"))))
6112 (build-system haskell-build-system)
6113 (inputs
6114 `(("ghc-th-abstraction" ,ghc-th-abstraction)))
6115 (home-page "https://github.com/mboes/th-lift")
6116 (synopsis "Derive Template Haskell's Lift class for datatypes")
6117 (description
6118 "This is a Haskell library to derive Template Haskell's Lift class for
6119 datatypes.")
6120 (license license:bsd-3)))
6121
6122 (define-public ghc-th-lift-instances
6123 (package
6124 (name "ghc-th-lift-instances")
6125 (version "0.1.11")
6126 (source
6127 (origin
6128 (method url-fetch)
6129 (uri (string-append "https://hackage.haskell.org/package/"
6130 "th-lift-instances/th-lift-instances-"
6131 version ".tar.gz"))
6132 (sha256
6133 (base32
6134 "1f56cp6ckcalld5jchv0kxpjkwcsixd7smd0g7r8cg67ppx6m90x"))))
6135 (build-system haskell-build-system)
6136 (inputs
6137 `(("ghc-th-lift" ,ghc-th-lift)
6138 ("ghc-vector" ,ghc-vector)
6139 ("ghc-text" ,ghc-text)
6140 ("ghc-quickcheck" ,ghc-quickcheck)))
6141 (home-page "https://github.com/bennofs/th-lift-instances/")
6142 (synopsis "Lift instances for template-haskell for common data types.")
6143 (description "Most data types in the Haskell platform do not have Lift
6144 instances. This package provides orphan instances for @code{containers},
6145 @code{text}, @code{bytestring} and @code{vector}.")
6146 (license license:bsd-3)))
6147
6148 (define-public ghc-th-expand-syns
6149 (package
6150 (name "ghc-th-expand-syns")
6151 (version "0.4.4.0")
6152 (source (origin
6153 (method url-fetch)
6154 (uri (string-append "https://hackage.haskell.org/package/"
6155 "th-expand-syns/th-expand-syns-"
6156 version ".tar.gz"))
6157 (sha256
6158 (base32
6159 "01prlvh3py5hq5ccjidfyp9ixq2zd88dkbsidyjrpkja6v8m43yc"))))
6160 (build-system haskell-build-system)
6161 (inputs
6162 `(("ghc-syb" ,ghc-syb)))
6163 (home-page "https://hackage.haskell.org/package/th-expand-syns")
6164 (synopsis "Expands type synonyms in Template Haskell ASTs")
6165 (description
6166 "This package enables users to expand type synonyms in Template Haskell
6167 @dfn{abstract syntax trees} (ASTs).")
6168 (license license:bsd-3)))
6169
6170 (define-public ghc-th-reify-many
6171 (package
6172 (name "ghc-th-reify-many")
6173 (version "0.1.8")
6174 (source (origin
6175 (method url-fetch)
6176 (uri (string-append "https://hackage.haskell.org/package/"
6177 "th-reify-many/th-reify-many-"
6178 version ".tar.gz"))
6179 (sha256
6180 (base32
6181 "0hzy6hvhvcd6i60vx5cp2b7ggmnnjh9rx4h8bm8xw4grglcaxjnf"))))
6182 (build-system haskell-build-system)
6183 (inputs
6184 `(("ghc-safe" ,ghc-safe)
6185 ("ghc-th-expand-syns" ,ghc-th-expand-syns)))
6186 (home-page "https://github.com/mgsloan/th-reify-many")
6187 (synopsis "Recurseively reify template haskell datatype info")
6188 (description
6189 "th-reify-many provides functions for recursively reifying top level
6190 declarations. The main intended use case is for enumerating the names of
6191 datatypes reachable from an initial datatype, and passing these names to some
6192 function which generates instances.")
6193 (license license:bsd-3)))
6194
6195 (define-public ghc-th-orphans
6196 (package
6197 (name "ghc-th-orphans")
6198 (version "0.13.6")
6199 (source (origin
6200 (method url-fetch)
6201 (uri (string-append "https://hackage.haskell.org/package/"
6202 "th-orphans/th-orphans-" version ".tar.gz"))
6203 (sha256
6204 (base32
6205 "0sfl3pn9kq9da3ji3lsgzgzy82vz6yvsg80dmakc1jvk7awycibp"))))
6206 (build-system haskell-build-system)
6207 (inputs
6208 `(("ghc-th-lift" ,ghc-th-lift)
6209 ("ghc-th-lift-instances" ,ghc-th-lift-instances)
6210 ("ghc-th-reify-many" ,ghc-th-reify-many)
6211 ("ghc-generic-deriving" ,ghc-generic-deriving)))
6212 (native-inputs
6213 `(("ghc-hspec" ,ghc-hspec)))
6214 (home-page "https://hackage.haskell.org/package/th-orphans")
6215 (synopsis "Orphan instances for TH datatypes")
6216 (description
6217 "This package provides orphan instances for Template Haskell datatypes. In particular,
6218 instances for @code{Ord} and @code{Lift}, as well as a few missing @code{Show}
6219 and @code{Eq} instances. These instances used to live in the haskell-src-meta
6220 package, and that's where the version number started.")
6221 (license license:bsd-3)))
6222
6223 (define-public ghc-geniplate-mirror
6224 (package
6225 (name "ghc-geniplate-mirror")
6226 (version "0.7.6")
6227 (source
6228 (origin
6229 (method url-fetch)
6230 (uri (string-append "https://hackage.haskell.org/package"
6231 "/geniplate-mirror"
6232 "/geniplate-mirror-" version ".tar.gz"))
6233 (sha256
6234 (base32 "1y0m0bw5zpm1y1y6d9qmxj3swl8j8hlw1shxbr5awycf6k884ssb"))))
6235 (build-system haskell-build-system)
6236 (home-page "https://github.com/danr/geniplate")
6237 (synopsis "Use Template Haskell to generate Uniplate-like functions")
6238 (description
6239 "Use Template Haskell to generate Uniplate-like functions. This is a
6240 maintained mirror of the @uref{https://hackage.haskell.org/package/geniplate,
6241 geniplate} package, written by Lennart Augustsson.")
6242 (license license:bsd-3)))
6243
6244 (define-public ghc-gitrev
6245 (package
6246 (name "ghc-gitrev")
6247 (version "1.3.1")
6248 (source
6249 (origin
6250 (method url-fetch)
6251 (uri (string-append "https://hackage.haskell.org/package/gitrev/gitrev-"
6252 version ".tar.gz"))
6253 (sha256
6254 (base32 "0cl3lfm6k1h8fxp2vxa6ihfp4v8igkz9h35iwyq2frzm4kdn96d8"))))
6255 (build-system haskell-build-system)
6256 (inputs `(("ghc-base-compat" ,ghc-base-compat)))
6257 (home-page "https://github.com/acfoltzer/gitrev")
6258 (synopsis "Compile git revision info into Haskell projects")
6259 (description
6260 "This package provides some handy Template Haskell splices for including
6261 the current git hash and branch in the code of your project. This is useful
6262 for including in panic messages, @command{--version} output, or diagnostic
6263 info for more informative bug reports.")
6264 (license license:bsd-3)))
6265
6266 (define-public ghc-haskell-src-meta
6267 (package
6268 (name "ghc-haskell-src-meta")
6269 (version "0.8.0.3")
6270 (source (origin
6271 (method url-fetch)
6272 (uri (string-append "https://hackage.haskell.org/package/"
6273 "haskell-src-meta/haskell-src-meta-"
6274 version ".tar.gz"))
6275 (sha256
6276 (base32
6277 "08jq156zv4m0fjq6712n99c1jwxnpa6kj6sq8ch0r1l0a1ay6ww4"))))
6278 (build-system haskell-build-system)
6279 (inputs
6280 `(("ghc-haskell-src-exts" ,ghc-haskell-src-exts)
6281 ("ghc-syb" ,ghc-syb)
6282 ("ghc-th-orphans" ,ghc-th-orphans)))
6283 (native-inputs
6284 `(("ghc-hunit" ,ghc-hunit)
6285 ("ghc-test-framework" ,ghc-test-framework)
6286 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)))
6287 (home-page "https://hackage.haskell.org/package/haskell-src-meta")
6288 (synopsis "Parse source to template-haskell abstract syntax")
6289 (description
6290 "This package provides tools to parse Haskell sources to the
6291 template-haskell abstract syntax.")
6292 (license license:bsd-3)))
6293
6294 (define-public ghc-conduit
6295 (package
6296 (name "ghc-conduit")
6297 (version "1.3.0.3")
6298 (source (origin
6299 (method url-fetch)
6300 (uri (string-append "https://hackage.haskell.org/package/"
6301 "conduit/conduit-" version ".tar.gz"))
6302 (sha256
6303 (base32
6304 "1sangm0qqi9dzlq95746a3kl14k8b09592a423shxjf2a0b1yx5v"))))
6305 (build-system haskell-build-system)
6306 (inputs
6307 `(("ghc-exceptions" ,ghc-exceptions)
6308 ("ghc-lifted-base" ,ghc-lifted-base)
6309 ("ghc-mono-traversable" ,ghc-mono-traversable)
6310 ("ghc-mmorph" ,ghc-mmorph)
6311 ("ghc-resourcet" ,ghc-resourcet)
6312 ("ghc-silently" ,ghc-silently)
6313 ("ghc-transformers-base" ,ghc-transformers-base)
6314 ("ghc-unliftio" ,ghc-unliftio)
6315 ("ghc-unliftio-core" ,ghc-unliftio-core)
6316 ("ghc-vector" ,ghc-vector)
6317 ("ghc-void" ,ghc-void)))
6318 (native-inputs
6319 `(("ghc-quickcheck" ,ghc-quickcheck)
6320 ("ghc-hspec" ,ghc-hspec)
6321 ("ghc-safe" ,ghc-safe)
6322 ("ghc-split" ,ghc-split)))
6323 (home-page "https://github.com/snoyberg/conduit")
6324 (synopsis "Streaming data library ")
6325 (description
6326 "The conduit package is a solution to the streaming data problem,
6327 allowing for production, transformation, and consumption of streams of data
6328 in constant memory. It is an alternative to lazy I/O which guarantees
6329 deterministic resource handling, and fits in the same general solution
6330 space as enumerator/iteratee and pipes.")
6331 (license license:expat)))
6332
6333 (define-public ghc-logging-facade
6334 (package
6335 (name "ghc-logging-facade")
6336 (version "0.3.0")
6337 (source (origin
6338 (method url-fetch)
6339 (uri (string-append "https://hackage.haskell.org/package/"
6340 "logging-facade/logging-facade-"
6341 version ".tar.gz"))
6342 (sha256
6343 (base32
6344 "0d0lwxxgd16is9aw6v3ps4r9prv3dj8xscmm45fvzq3nicjiawcf"))))
6345 (build-system haskell-build-system)
6346 (native-inputs
6347 `(("ghc-hspec" ,ghc-hspec)
6348 ("hspec-discover" ,hspec-discover)))
6349 (home-page "https://hackage.haskell.org/package/logging-facade")
6350 (synopsis "Simple logging abstraction that allows multiple back-ends")
6351 (description
6352 "This package provides a simple logging abstraction that allows multiple
6353 back-ends.")
6354 (license license:expat)))
6355
6356 (define-public ghc-mockery
6357 (package
6358 (name "ghc-mockery")
6359 (version "0.3.5")
6360 (source (origin
6361 (method url-fetch)
6362 (uri (string-append "https://hackage.haskell.org/package/"
6363 "mockery/mockery-" version ".tar.gz"))
6364 (sha256
6365 (base32
6366 "09ypgm3z69gq8mj6y66ss58kbjnk15r8frwcwbqcfbfksfnfv8dp"))))
6367 (build-system haskell-build-system)
6368 (inputs
6369 `(("ghc-temporary" ,ghc-temporary)
6370 ("ghc-logging-facade" ,ghc-logging-facade)
6371 ("ghc-base-compat" ,ghc-base-compat)))
6372 (native-inputs
6373 `(("ghc-hspec" ,ghc-hspec)
6374 ("hspec-discover" ,hspec-discover)))
6375 (home-page "https://hackage.haskell.org/package/mockery")
6376 (synopsis "Support functions for automated testing")
6377 (description
6378 "The mockery package provides support functions for automated testing.")
6379 (license license:expat)))
6380
6381 (define-public ghc-yaml
6382 (package
6383 (name "ghc-yaml")
6384 (version "0.8.32")
6385 (source (origin
6386 (method url-fetch)
6387 (uri (string-append "https://hackage.haskell.org/package/"
6388 "yaml/yaml-" version ".tar.gz"))
6389 (sha256
6390 (base32
6391 "0cbsyh4ilvjzq1q7pxls43k6pdqxg1l85xzibcwpbvmlvrizh86w"))))
6392 (build-system haskell-build-system)
6393 (inputs
6394 `(("ghc-conduit" ,ghc-conduit)
6395 ("ghc-resourcet" ,ghc-resourcet)
6396 ("ghc-aeson" ,ghc-aeson)
6397 ("ghc-unordered-containers" ,ghc-unordered-containers)
6398 ("ghc-vector" ,ghc-vector)
6399 ("ghc-text" ,ghc-text)
6400 ("ghc-attoparsec" ,ghc-attoparsec)
6401 ("ghc-scientific" ,ghc-scientific)
6402 ("ghc-semigroups" ,ghc-semigroups)
6403 ("ghc-temporary" ,ghc-temporary)
6404 ("ghc-enclosed-exceptions" ,ghc-enclosed-exceptions)
6405 ("ghc-base-compat" ,ghc-base-compat)))
6406 (native-inputs
6407 `(("ghc-hspec" ,ghc-hspec)
6408 ("ghc-hunit" ,ghc-hunit)
6409 ("hspec-discover" ,hspec-discover)
6410 ("ghc-mockery" ,ghc-mockery)))
6411 (home-page "https://github.com/snoyberg/yaml/")
6412 (synopsis "Parsing and rendering YAML documents")
6413 (description
6414 "This package provides a library to parse and render YAML documents.")
6415 (license license:bsd-3)))
6416
6417 (define-public ghc-filemanip
6418 (package
6419 (name "ghc-filemanip")
6420 (version "0.3.6.3")
6421 (source (origin
6422 (method url-fetch)
6423 (uri (string-append "https://hackage.haskell.org/package/"
6424 "filemanip/filemanip-" version ".tar.gz"))
6425 (sha256
6426 (base32
6427 "0ilqr8jv41zxcj5qyicg29m8s30b9v70x6f9h2h2rw5ap8bxldl8"))))
6428 (build-system haskell-build-system)
6429 (inputs
6430 `(("ghc-unix-compat" ,ghc-unix-compat)))
6431 (home-page "https://github.com/bos/filemanip")
6432 (synopsis "File and directory manipulation for Haskell")
6433 (description
6434 "This package provides a Haskell library for working with files and
6435 directories. It includes code for pattern matching, finding files, modifying
6436 file contents, and more.")
6437 (license license:bsd-3)))
6438
6439 (define-public ghc-mmap
6440 (package
6441 (name "ghc-mmap")
6442 (version "0.5.9")
6443 (source (origin
6444 (method url-fetch)
6445 (uri (string-append "https://hackage.haskell.org/package/"
6446 "mmap/mmap-" version ".tar.gz"))
6447 (sha256
6448 (base32
6449 "1y5mk3yf4b8r6rzmlx1xqn4skaigrqnv08sqq0v7r3nbw42bpz2q"))))
6450 (build-system haskell-build-system)
6451 (home-page "https://hackage.haskell.org/package/mmap")
6452 (synopsis "Memory mapped files for Haskell")
6453 (description
6454 "This library provides a wrapper to @code{mmap}, allowing files or
6455 devices to be lazily loaded into memory as strict or lazy @code{ByteStrings},
6456 @code{ForeignPtrs} or plain @code{Ptrs}, using the virtual memory subsystem to
6457 do on-demand loading.")
6458 (license license:bsd-3)))
6459
6460 (define-public ghc-juicypixels
6461 (package
6462 (name "ghc-juicypixels")
6463 (version "3.2.9.5")
6464 (source (origin
6465 (method url-fetch)
6466 (uri (string-append "https://hackage.haskell.org/package/"
6467 "JuicyPixels/JuicyPixels-"
6468 version ".tar.gz"))
6469 (sha256
6470 (base32
6471 "0mf3ihr0xy2wc2wzb9a17g0n3p60x7pvm8akwpvhdy8klvs6r744"))))
6472 (build-system haskell-build-system)
6473 (inputs
6474 `(("ghc-zlib" ,ghc-zlib)
6475 ("ghc-vector" ,ghc-vector)
6476 ("ghc-primitive" ,ghc-primitive)
6477 ("ghc-mmap" ,ghc-mmap)))
6478 (home-page "https://github.com/Twinside/Juicy.Pixels")
6479 (synopsis "Picture loading and serialization library")
6480 (description
6481 "This library can load and store images in PNG, Bitmap, JPEG, Radiance,
6482 TIFF and GIF formats.")
6483 (license license:bsd-3)))
6484
6485 (define-public ghc-hslua
6486 (package
6487 (name "ghc-hslua")
6488 (version "0.9.5.2")
6489 (source (origin
6490 (method url-fetch)
6491 (uri (string-append "https://hackage.haskell.org/package/"
6492 "hslua/hslua-" version ".tar.gz"))
6493 (sha256
6494 (base32
6495 "1rdvv01p214zfjh6fcqjjgqwi8y42wad6cqzhlcv5gvclzw2ck8f"))))
6496 (build-system haskell-build-system)
6497 (arguments
6498 `(#:configure-flags '("-fsystem-lua")))
6499 (inputs
6500 `(("lua" ,lua)
6501 ("ghc-exceptions" ,ghc-exceptions)
6502 ("ghc-fail" ,ghc-fail)
6503 ("ghc-text" ,ghc-text)))
6504 (native-inputs
6505 `(("ghc-tasty" ,ghc-tasty)
6506 ("ghc-tasty-expected-failure" ,ghc-tasty-expected-failure)
6507 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
6508 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
6509 ("ghc-quickcheck" ,ghc-quickcheck)
6510 ("ghc-quickcheck-instances" ,ghc-quickcheck-instances)))
6511 (home-page "https://hackage.haskell.org/package/hslua")
6512 (synopsis "Lua language interpreter embedding in Haskell")
6513 (description
6514 "The Scripting.Lua module is a wrapper of the Lua language interpreter as
6515 described in @url{https://www.lua.org/}.")
6516 (license license:expat)))
6517
6518 (define-public ghc-hslua-module-text
6519 (package
6520 (name "ghc-hslua-module-text")
6521 (version "0.1.2.1")
6522 (source
6523 (origin
6524 (method url-fetch)
6525 (uri (string-append "https://hackage.haskell.org/package/"
6526 "hslua-module-text/hslua-module-text-"
6527 version ".tar.gz"))
6528 (sha256
6529 (base32
6530 "0bcfpb1dhnxp0gr376ai4w7vczr9zrjl1r3r6w7kcxivfkwq9cxf"))))
6531 (build-system haskell-build-system)
6532 (arguments
6533 `(#:cabal-revision
6534 ("1" "0vajlsd7y6pwa08635q0cx8z5c1c55bk7fvavw7g2vmyvxqjzx6n")))
6535 (inputs
6536 `(("ghc-hslua" ,ghc-hslua)
6537 ("ghc-text" ,ghc-text)))
6538 (native-inputs
6539 `(("ghc-tasty" ,ghc-tasty)
6540 ("ghc-tasty-hunit" ,ghc-tasty-hunit)))
6541 (home-page "https://github.com/hslua/hslua-module-text")
6542 (synopsis "Lua module for text")
6543 (description
6544 "This package provides a UTF-8 aware subset of Lua's @code{string} module
6545 for Haskell. The functions provided by this module are @code{upper},
6546 @code{lower}, @code{len}, @code{reverse}, and @code{sub}.")
6547 (license license:expat)))
6548
6549 (define-public ghc-byteable
6550 (package
6551 (name "ghc-byteable")
6552 (version "0.1.1")
6553 (source (origin
6554 (method url-fetch)
6555 (uri (string-append "https://hackage.haskell.org/package/"
6556 "byteable/byteable-" version ".tar.gz"))
6557 (sha256
6558 (base32
6559 "1qizg0kxxjqnd3cbrjhhidk5pbbciz0pb3z5kzikjjxnnnhk8fr4"))))
6560 (build-system haskell-build-system)
6561 (home-page "https://github.com/vincenthz/hs-byteable")
6562 (synopsis "Type class for sequence of bytes")
6563 (description
6564 "This package provides an abstract class to manipulate sequence of bytes.
6565 The use case of this class is abstracting manipulation of types that are just
6566 wrapping a bytestring with stronger and more meaniful name.")
6567 (license license:bsd-3)))
6568
6569 (define-public ghc-hourglass
6570 (package
6571 (name "ghc-hourglass")
6572 (version "0.2.12")
6573 (source (origin
6574 (method url-fetch)
6575 (uri (string-append "https://hackage.haskell.org/package/"
6576 "hourglass/hourglass-" version ".tar.gz"))
6577 (sha256
6578 (base32
6579 "0jnay5j13vpz6i1rkaj3j0d9v8jfpri499xn3l7wd01f81f5ncs4"))))
6580 (build-system haskell-build-system)
6581 (inputs
6582 `(("ghc-old-locale" ,ghc-old-locale)))
6583 (native-inputs
6584 `(("ghc-tasty" ,ghc-tasty)
6585 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
6586 ("ghc-tasty-hunit" ,ghc-tasty-hunit)))
6587 (home-page "https://github.com/vincenthz/hs-hourglass")
6588 (synopsis "Simple time-related library for Haskell")
6589 (description
6590 "This is a simple time library providing a simple but powerful and
6591 performant API. The backbone of the library are the @code{Timeable} and
6592 @code{Time} type classes. Each @code{Timeable} instances can be converted to
6593 a type that has a @code{Time} instances, and thus are different
6594 representations of current time.")
6595 (license license:bsd-3)))
6596
6597 (define-public ghc-edit-distance
6598 (package
6599 (name "ghc-edit-distance")
6600 (version "0.2.2.1")
6601 (source
6602 (origin
6603 (method url-fetch)
6604 (uri (string-append "https://hackage.haskell.org/package/edit-distance"
6605 "/edit-distance-" version ".tar.gz"))
6606 (sha256
6607 (base32 "0jkca97zyv23yyilp3jydcrzxqhyk27swhzh82llvban5zp8b21y"))))
6608 (build-system haskell-build-system)
6609 (arguments
6610 `(#:phases
6611 (modify-phases %standard-phases
6612 (add-before 'configure 'update-constraints
6613 (lambda _
6614 (substitute* "edit-distance.cabal"
6615 (("QuickCheck >= 2\\.4 && <2\\.9")
6616 "QuickCheck >= 2.4 && < 2.12")))))))
6617 (inputs
6618 `(("ghc-random" ,ghc-random)
6619 ("ghc-test-framework" ,ghc-test-framework)
6620 ("ghc-quickcheck" ,ghc-quickcheck)
6621 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
6622 (home-page "https://github.com/phadej/edit-distance")
6623 (synopsis "Levenshtein and restricted Damerau-Levenshtein edit distances")
6624 (description
6625 "This package provides optimized functions to determine the edit
6626 distances for fuzzy matching, including Levenshtein and restricted
6627 Damerau-Levenshtein algorithms.")
6628 (license license:bsd-3)))
6629
6630 (define-public ghc-memory
6631 (package
6632 (name "ghc-memory")
6633 (version "0.14.16")
6634 (source (origin
6635 (method url-fetch)
6636 (uri (string-append "https://hackage.haskell.org/package/"
6637 "memory/memory-" version ".tar.gz"))
6638 (sha256
6639 (base32
6640 "03rbszi5d4z9rlbfv8ydrl1xf84xsh8z57g07f7j9qccn9587c3v"))))
6641 (build-system haskell-build-system)
6642 (inputs
6643 `(("ghc-basement" ,ghc-basement)
6644 ("ghc-foundation" ,ghc-foundation)))
6645 (native-inputs
6646 `(("ghc-tasty" ,ghc-tasty)
6647 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
6648 ("ghc-tasty-hunit" ,ghc-tasty-hunit)))
6649 (home-page "https://github.com/vincenthz/hs-memory")
6650 (synopsis "Memory abstractions for Haskell")
6651 (description
6652 "This package provides memory abstractions, such as chunk of memory,
6653 polymorphic byte array management and manipulation functions. It contains a
6654 polymorphic byte array abstraction and functions similar to strict ByteString,
6655 different type of byte array abstraction, raw memory IO operations (memory
6656 set, memory copy, ..) and more")
6657 (license license:bsd-3)))
6658
6659 (define-public ghc-socks
6660 (package
6661 (name "ghc-socks")
6662 (version "0.5.6")
6663 (source (origin
6664 (method url-fetch)
6665 (uri (string-append "https://hackage.haskell.org/package/"
6666 "socks/socks-" version ".tar.gz"))
6667 (sha256
6668 (base32
6669 "0f44qy74i0n6ll3jym0a2ipafkpw1h67amcpqmj8iq95h21wsqzs"))))
6670 (build-system haskell-build-system)
6671 (inputs
6672 `(("ghc-cereal" ,ghc-cereal)
6673 ("ghc-network" ,ghc-network)))
6674 (home-page "https://github.com/vincenthz/hs-socks")
6675 (synopsis "SOCKS proxy (version 5) implementation")
6676 (description
6677 "This library provides a SOCKS proxy (version 5) implementation.")
6678 (license license:bsd-3)))
6679
6680 (define-public ghc-connection
6681 (package
6682 (name "ghc-connection")
6683 (version "0.2.8")
6684 (source (origin
6685 (method url-fetch)
6686 (uri (string-append "https://hackage.haskell.org/package/"
6687 "connection/connection-"
6688 version ".tar.gz"))
6689 (sha256
6690 (base32
6691 "1swkb9w5vx9ph7x55y51dc0srj2z27nd9ibgn8c0qcl6hx7g9cbh"))))
6692 (build-system haskell-build-system)
6693 (inputs
6694 `(("ghc-byteable" ,ghc-byteable)
6695 ("ghc-data-default-class" ,ghc-data-default-class)
6696 ("ghc-network" ,ghc-network)
6697 ("ghc-tls" ,ghc-tls)
6698 ("ghc-socks" ,ghc-socks)
6699 ("ghc-x509" ,ghc-x509)
6700 ("ghc-x509-store" ,ghc-x509-store)
6701 ("ghc-x509-system" ,ghc-x509-system)
6702 ("ghc-x509-validation" ,ghc-x509-validation)))
6703 (home-page "https://github.com/vincenthz/hs-connection")
6704 (synopsis "Simple and easy network connections API")
6705 (description
6706 "This package provides a simple network library for all your connection
6707 needs. It provides a very simple API to create sockets to a destination with
6708 the choice of SSL/TLS, and SOCKS.")
6709 (license license:bsd-3)))
6710
6711 (define-public ghc-skylighting-core
6712 (package
6713 (name "ghc-skylighting-core")
6714 (version "0.7.2")
6715 (source (origin
6716 (method url-fetch)
6717 (uri (string-append "https://hackage.haskell.org/package/"
6718 "skylighting-core/skylighting-core-"
6719 version ".tar.gz"))
6720 (sha256
6721 (base32
6722 "066fwmwsd7xcvwlinfk2izlzq0xp8697i6lnbgsbl71jdybyackq"))))
6723 (build-system haskell-build-system)
6724 (inputs
6725 `(("ghc-aeson" ,ghc-aeson)
6726 ("ghc-ansi-terminal" ,ghc-ansi-terminal)
6727 ("ghc-attoparsec" ,ghc-attoparsec)
6728 ("ghc-base64-bytestring" ,ghc-base64-bytestring)
6729 ("ghc-blaze-html" ,ghc-blaze-html)
6730 ("ghc-case-insensitive" ,ghc-case-insensitive)
6731 ("ghc-colour" ,ghc-colour)
6732 ("ghc-hxt" ,ghc-hxt)
6733 ("ghc-regex-pcre-builtin" ,ghc-regex-pcre-builtin)
6734 ("ghc-safe" ,ghc-safe)
6735 ("ghc-text" ,ghc-text)
6736 ("ghc-utf8-string" ,ghc-utf8-string)))
6737 (native-inputs
6738 `(("ghc-diff" ,ghc-diff)
6739 ("ghc-hunit" ,ghc-hunit)
6740 ("ghc-pretty-show" ,ghc-pretty-show)
6741 ("ghc-quickcheck" ,ghc-quickcheck)
6742 ("ghc-tasty" ,ghc-tasty)
6743 ("ghc-tasty-golden" ,ghc-tasty-golden)
6744 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
6745 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
6746 (home-page "https://github.com/jgm/skylighting")
6747 (synopsis "Syntax highlighting library")
6748 (description "Skylighting is a syntax highlighting library with support
6749 for over one hundred languages. It derives its tokenizers from XML syntax
6750 definitions used by KDE's @code{KSyntaxHighlighting} framework, so any syntax
6751 supported by that framework can be added. An optional command-line program is
6752 provided. Skylighting is intended to be the successor to highlighting-kate.")
6753 (license license:gpl2)))
6754
6755 (define-public ghc-skylighting
6756 (package
6757 (inherit ghc-skylighting-core)
6758 (name "ghc-skylighting")
6759 (version "0.7.2")
6760 (source (origin
6761 (method url-fetch)
6762 (uri (string-append "https://hackage.haskell.org/package/skylighting-"
6763 version "/skylighting-" version ".tar.gz"))
6764 (sha256
6765 (base32
6766 "1rh3z1a7a4clvksdw1qlpmhxqkfahwypi70k91whgfamzsqpxdch"))))
6767 (inputs
6768 `(("ghc-skylighting-core" ,ghc-skylighting-core)
6769 ,@(package-inputs ghc-skylighting-core)))))
6770
6771 (define-public ghc-doctemplates
6772 (package
6773 (name "ghc-doctemplates")
6774 (version "0.2.2.1")
6775 (source
6776 (origin
6777 (method url-fetch)
6778 (uri (string-append "https://hackage.haskell.org/package/"
6779 "doctemplates/doctemplates-"
6780 version ".tar.gz"))
6781 (sha256
6782 (base32
6783 "1gyckfg3kgvzhxw14i7iwrw0crygvsp86sy53bbr1yn7bxbgn33b"))))
6784 (build-system haskell-build-system)
6785 (inputs
6786 `(("ghc-aeson" ,ghc-aeson)
6787 ("ghc-blaze-markup" ,ghc-blaze-markup)
6788 ("ghc-blaze-html" ,ghc-blaze-html)
6789 ("ghc-text" ,ghc-text)
6790 ("ghc-vector" ,ghc-vector)
6791 ("ghc-parsec" ,ghc-parsec)
6792 ("ghc-unordered-containers" ,ghc-unordered-containers)
6793 ("ghc-scientific" ,ghc-scientific)))
6794 (native-inputs
6795 `(("ghc-hspec" ,ghc-hspec)))
6796 (home-page "https://github.com/jgm/doctemplates#readme")
6797 (synopsis "Pandoc-style document templates")
6798 (description
6799 "This package provides a simple text templating system used by pandoc.")
6800 (license license:bsd-3)))
6801
6802 (define-public ghc-pandoc
6803 (package
6804 (name "ghc-pandoc")
6805 (version "2.2.1")
6806 (source
6807 (origin
6808 (method url-fetch)
6809 (uri (string-append "https://hackage.haskell.org/package/pandoc/pandoc-"
6810 version ".tar.gz"))
6811 (sha256
6812 (base32
6813 "1dqin92w513l7whg5wdgrngnxsj5mb8gppfvn7kjgyv2pdgpy0zy"))))
6814 (build-system haskell-build-system)
6815 (arguments
6816 `(#:phases
6817 (modify-phases %standard-phases
6818 (add-before 'configure 'update-constraints
6819 (lambda _
6820 (substitute* "pandoc.cabal"
6821 (("tasty >= 0\\.11 && < 1\\.1")
6822 "tasty >= 0.11 && < 1.1.1"))))
6823 (add-before 'configure 'patch-tests
6824 (lambda _
6825 ;; These tests fail benignly and have been adjusted upstream:
6826 ;; <https://github.com/commercialhaskell/stackage/issues/3719>.
6827 (substitute* "test/Tests/Old.hs"
6828 (("lhsWriterTests \"html\"") "[]")))))))
6829 (inputs
6830 `(("ghc-aeson" ,ghc-aeson)
6831 ("ghc-aeson-pretty" ,ghc-aeson-pretty)
6832 ("ghc-base64-bytestring" ,ghc-base64-bytestring)
6833 ("ghc-blaze-html" ,ghc-blaze-html)
6834 ("ghc-blaze-markup" ,ghc-blaze-markup)
6835 ("ghc-cmark-gfm" ,ghc-cmark-gfm)
6836 ("ghc-data-default" ,ghc-data-default)
6837 ("ghc-deepseq-generics" ,ghc-deepseq-generics)
6838 ("ghc-diff" ,ghc-diff)
6839 ("ghc-doctemplates" ,ghc-doctemplates)
6840 ("ghc-executable-path" ,ghc-executable-path)
6841 ("ghc-glob" ,ghc-glob)
6842 ("ghc-haddock-library" ,ghc-haddock-library)
6843 ("ghc-hslua" ,ghc-hslua)
6844 ("ghc-hslua-module-text" ,ghc-hslua-module-text)
6845 ("ghc-http" ,ghc-http)
6846 ("ghc-http-client" ,ghc-http-client)
6847 ("ghc-http-client-tls" ,ghc-http-client-tls)
6848 ("ghc-http-types" ,ghc-http-types)
6849 ("ghc-juicypixels" ,ghc-juicypixels)
6850 ("ghc-network" ,ghc-network)
6851 ("ghc-network-uri" ,ghc-network-uri)
6852 ("ghc-old-locale" ,ghc-old-locale)
6853 ("ghc-pandoc-types" ,ghc-pandoc-types)
6854 ("ghc-parsec" ,ghc-parsec)
6855 ("ghc-random" ,ghc-random)
6856 ("ghc-scientific" ,ghc-scientific)
6857 ("ghc-sha" ,ghc-sha)
6858 ("ghc-skylighting" ,ghc-skylighting)
6859 ("ghc-split" ,ghc-split)
6860 ("ghc-syb" ,ghc-syb)
6861 ("ghc-tagsoup" ,ghc-tagsoup)
6862 ("ghc-temporary" ,ghc-temporary)
6863 ("ghc-texmath" ,ghc-texmath)
6864 ("ghc-text" ,ghc-text)
6865 ("ghc-unordered-containers" ,ghc-unordered-containers)
6866 ("ghc-vector" ,ghc-vector)
6867 ("ghc-xml" ,ghc-xml)
6868 ("ghc-yaml" ,ghc-yaml)
6869 ("ghc-zip-archive" ,ghc-zip-archive)
6870 ("ghc-zlib" ,ghc-zlib)))
6871 (native-inputs
6872 `(("ghc-tasty" ,ghc-tasty)
6873 ("ghc-tasty-golden" ,ghc-tasty-golden)
6874 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
6875 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
6876 ("ghc-quickcheck" ,ghc-quickcheck)
6877 ("ghc-hunit" ,ghc-hunit)))
6878 (home-page "https://pandoc.org")
6879 (synopsis "Conversion between markup formats")
6880 (description
6881 "Pandoc is a Haskell library for converting from one markup format to
6882 another, and a command-line tool that uses this library. It can read and
6883 write Markdown and (subsets of) other formats, such as HTML, reStructuredText,
6884 LaTeX, DocBook, and many more.
6885
6886 Pandoc extends standard Markdown syntax with footnotes, embedded LaTeX,
6887 definition lists, tables, and other features. A compatibility mode is
6888 provided for those who need a drop-in replacement for Markdown.pl.")
6889 (license license:gpl2+)))
6890
6891 (define-public ghc-hs-bibutils
6892 (package
6893 (name "ghc-hs-bibutils")
6894 (version "6.6.0.0")
6895 (source
6896 (origin
6897 (method url-fetch)
6898 (uri (string-append
6899 "https://hackage.haskell.org/package/hs-bibutils/hs-bibutils-"
6900 version ".tar.gz"))
6901 (sha256
6902 (base32
6903 "0n2sz2zl4naspryd49ii858qkjp2lapns5a2gr8zm6vvn5sh1f0l"))))
6904 (build-system haskell-build-system)
6905 (inputs `(("ghc-syb" ,ghc-syb)))
6906 (home-page "https://hackage.haskell.org/package/hs-bibutils")
6907 (synopsis "Haskell bindings to bibutils")
6908 (description
6909 "This package provides Haskell bindings to @code{bibutils}, a library
6910 that interconverts between various bibliography formats using a common
6911 MODS-format XML intermediate.")
6912 (license license:gpl2+)))
6913
6914 (define-public ghc-rfc5051
6915 (package
6916 (name "ghc-rfc5051")
6917 (version "0.1.0.3")
6918 (source
6919 (origin
6920 (method url-fetch)
6921 (uri (string-append "https://hackage.haskell.org/package/rfc5051/"
6922 "rfc5051-" version ".tar.gz"))
6923 (sha256
6924 (base32
6925 "0av4c3qvwbkbzrjrrg601ay9pds7wscqqp2lc2z78mv2lllap3g3"))))
6926 (build-system haskell-build-system)
6927 (home-page "https://hackage.haskell.org/package/rfc5051")
6928 (synopsis "Simple unicode collation as per RFC5051")
6929 (description
6930 "This library implements @code{unicode-casemap}, the simple, non
6931 locale-sensitive unicode collation algorithm described in RFC 5051. Proper
6932 unicode collation can be done using @code{text-icu}, but that is a big
6933 dependency that depends on a large C library, and @code{rfc5051} might be
6934 better for some purposes.")
6935 (license license:bsd-3)))
6936
6937 (define-public ghc-typed-process
6938 (package
6939 (name "ghc-typed-process")
6940 (version "0.2.3.0")
6941 (source
6942 (origin
6943 (method url-fetch)
6944 (uri (string-append "https://hackage.haskell.org/package/"
6945 "typed-process/typed-process-"
6946 version ".tar.gz"))
6947 (sha256
6948 (base32
6949 "0j36vrc9w841m5qbwqra1lwiznx31xfnhin1sm8x2c2739csbpn0"))))
6950 (build-system haskell-build-system)
6951 (inputs
6952 `(("ghc-async" ,ghc-async)
6953 ("ghc-stm" ,ghc-stm)))
6954 (native-inputs
6955 `(("ghc-base64-bytestring" ,ghc-base64-bytestring)
6956 ("ghc-hspec" ,ghc-hspec)
6957 ("hspec-discover" ,hspec-discover)
6958 ("ghc-temporary" ,ghc-temporary)))
6959 (home-page "https://haskell-lang.org/library/typed-process")
6960 (synopsis "Run external processes with strong typing of streams")
6961 (description
6962 "This library provides the ability to launch and interact with external
6963 processes. It wraps around the @code{process} library, and intends to improve
6964 upon it.")
6965 (license license:expat)))
6966
6967 (define-public ghc-conduit-extra
6968 (package
6969 (name "ghc-conduit-extra")
6970 (version "1.3.1.1")
6971 (source
6972 (origin
6973 (method url-fetch)
6974 (uri (string-append "https://hackage.haskell.org/package/"
6975 "conduit-extra/conduit-extra-"
6976 version ".tar.gz"))
6977 (sha256
6978 (base32
6979 "0jaj350vv6mbb26gdwcqz4gwzfzrjydv5pis2da49wz1npbakcfw"))))
6980 (build-system haskell-build-system)
6981 (inputs
6982 `(("ghc-conduit" ,ghc-conduit)
6983 ("ghc-exceptions" ,ghc-exceptions)
6984 ("ghc-monad-control" ,ghc-monad-control)
6985 ("ghc-text" ,ghc-text)
6986 ("ghc-transformers-base" ,ghc-transformers-base)
6987 ("ghc-typed-process" ,ghc-typed-process)
6988 ("ghc-async" ,ghc-async)
6989 ("ghc-attoparsec" ,ghc-attoparsec)
6990 ("ghc-blaze-builder" ,ghc-blaze-builder)
6991 ("ghc-network" ,ghc-network)
6992 ("ghc-primitive" ,ghc-primitive)
6993 ("ghc-resourcet" ,ghc-resourcet)
6994 ("ghc-stm" ,ghc-stm)
6995 ("ghc-streaming-commons" ,ghc-streaming-commons)
6996 ("ghc-hspec" ,ghc-hspec)
6997 ("ghc-bytestring-builder" ,ghc-bytestring-builder)
6998 ("ghc-quickcheck" ,ghc-quickcheck)))
6999 (native-inputs
7000 `(("hspec-discover" ,hspec-discover)))
7001 (home-page "https://github.com/snoyberg/conduit")
7002 (synopsis "Conduit adapters for common libraries")
7003 (description
7004 "The @code{conduit} package itself maintains relative small dependencies.
7005 The purpose of this package is to collect commonly used utility functions
7006 wrapping other library dependencies, without depending on heavier-weight
7007 dependencies. The basic idea is that this package should only depend on
7008 @code{haskell-platform} packages and @code{conduit}.")
7009 (license license:expat)))
7010
7011 (define-public ghc-xml-types
7012 (package
7013 (name "ghc-xml-types")
7014 (version "0.3.6")
7015 (source
7016 (origin
7017 (method url-fetch)
7018 (uri (string-append "https://hackage.haskell.org/package/xml-types/"
7019 "xml-types-" version ".tar.gz"))
7020 (sha256
7021 (base32
7022 "1jgqxsa9p2q3h6nymbfmvhldqrqlwrhrzmwadlyc0li50x0d8dwr"))))
7023 (build-system haskell-build-system)
7024 (inputs `(("ghc-text" ,ghc-text)))
7025 (home-page "https://john-millikin.com/software/haskell-xml/")
7026 (synopsis "Basic types for representing XML")
7027 (description "This package provides basic types for representing XML
7028 documents.")
7029 (license license:expat)))
7030
7031 (define-public ghc-xml-conduit
7032 (package
7033 (name "ghc-xml-conduit")
7034 (version "1.8.0.1")
7035 (source
7036 (origin
7037 (method url-fetch)
7038 (uri (string-append "https://hackage.haskell.org/package/xml-conduit/"
7039 "xml-conduit-" version ".tar.gz"))
7040 (sha256
7041 (base32
7042 "177gmyigxql1pn3ncz0r8annwv5cbxnihbgrrg1dhm4gmc9jy2wq"))))
7043 (build-system haskell-build-system)
7044 (inputs
7045 `(("ghc-conduit" ,ghc-conduit)
7046 ("ghc-conduit-extra" ,ghc-conduit-extra)
7047 ("ghc-doctest" ,ghc-doctest)
7048 ("ghc-resourcet" ,ghc-resourcet)
7049 ("ghc-text" ,ghc-text)
7050 ("ghc-xml-types" ,ghc-xml-types)
7051 ("ghc-attoparsec" ,ghc-attoparsec)
7052 ("ghc-data-default-class" ,ghc-data-default-class)
7053 ("ghc-blaze-markup" ,ghc-blaze-markup)
7054 ("ghc-blaze-html" ,ghc-blaze-html)
7055 ("ghc-monad-control" ,ghc-monad-control)
7056 ("ghc-hspec" ,ghc-hspec)
7057 ("ghc-hunit" ,ghc-hunit)))
7058 (home-page "https://github.com/snoyberg/xml")
7059 (synopsis "Utilities for dealing with XML with the conduit package")
7060 (description
7061 "This package provides pure-Haskell utilities for dealing with XML with
7062 the @code{conduit} package.")
7063 (license license:expat)))
7064
7065 (define-public ghc-pandoc-citeproc
7066 (package
7067 (name "ghc-pandoc-citeproc")
7068 (version "0.14.3.1")
7069 (source
7070 (origin
7071 (method url-fetch)
7072 (uri (string-append "https://hackage.haskell.org/package/"
7073 "pandoc-citeproc/pandoc-citeproc-"
7074 version ".tar.gz"))
7075 (sha256
7076 (base32
7077 "0yj6rckwsc9vig40cm15ry0j3d01xpk04qma9n4byhal6v4b5h22"))))
7078 (build-system haskell-build-system)
7079 (arguments
7080 `(#:phases
7081 (modify-phases %standard-phases
7082 ;; Many YAML tests (44) are failing do to changes in ghc-yaml:
7083 ;; <https://github.com/jgm/pandoc-citeproc/issues/342>.
7084 (add-before 'configure 'patch-tests
7085 (lambda _
7086 (substitute* "tests/test-pandoc-citeproc.hs"
7087 (("let allTests = citeprocTests \\+\\+ biblio2yamlTests")
7088 "let allTests = citeprocTests"))))
7089 ;; Tests need to be run after installation.
7090 (delete 'check)
7091 (add-after 'install 'post-install-check
7092 (assoc-ref %standard-phases 'check)))))
7093 (inputs
7094 `(("ghc-pandoc-types" ,ghc-pandoc-types)
7095 ("ghc-pandoc" ,ghc-pandoc)
7096 ("ghc-tagsoup" ,ghc-tagsoup)
7097 ("ghc-aeson" ,ghc-aeson)
7098 ("ghc-text" ,ghc-text)
7099 ("ghc-vector" ,ghc-vector)
7100 ("ghc-xml-conduit" ,ghc-xml-conduit)
7101 ("ghc-unordered-containers" ,ghc-unordered-containers)
7102 ("ghc-data-default" ,ghc-data-default)
7103 ("ghc-setenv" ,ghc-setenv)
7104 ("ghc-split" ,ghc-split)
7105 ("ghc-yaml" ,ghc-yaml)
7106 ("ghc-hs-bibutils" ,ghc-hs-bibutils)
7107 ("ghc-rfc5051" ,ghc-rfc5051)
7108 ("ghc-syb" ,ghc-syb)
7109 ("ghc-parsec" ,ghc-parsec)
7110 ("ghc-old-locale" ,ghc-old-locale)
7111 ("ghc-aeson-pretty" ,ghc-aeson-pretty)
7112 ("ghc-attoparsec" ,ghc-attoparsec)
7113 ("ghc-temporary" ,ghc-temporary)))
7114 (home-page "https://github.com/jgm/pandoc-citeproc")
7115 (synopsis "Library for using pandoc with citeproc")
7116 (description
7117 "The @code{pandoc-citeproc} library exports functions for using the
7118 citeproc system with pandoc. It relies on @code{citeproc-hs}, a library for
7119 rendering bibliographic reference citations into a variety of styles using a
7120 macro language called @dfn{Citation Style Language} (CSL). This package also
7121 contains an executable @code{pandoc-citeproc}, which works as a pandoc filter,
7122 and also has a mode for converting bibliographic databases a YAML format
7123 suitable for inclusion in pandoc YAML metadata.")
7124 (license license:bsd-3)))
7125
7126 (define-public ghc-union-find
7127 (package
7128 (name "ghc-union-find")
7129 (version "0.2")
7130 (source (origin
7131 (method url-fetch)
7132 (uri (string-append
7133 "https://hackage.haskell.org/package/union-find/union-find-"
7134 version ".tar.gz"))
7135 (sha256
7136 (base32
7137 "1v7hj42j9w6jlzi56jg8rh4p58gfs1c5dx30wd1qqvn0p0mnihp6"))))
7138 (build-system haskell-build-system)
7139 (home-page "https://github.com/nominolo/union-find")
7140 (synopsis "Efficient union and equivalence testing of sets")
7141 (description
7142 "The Union/Find algorithm implements these operations in (effectively)
7143 constant-time:
7144 @enumerate
7145 @item Check whether two elements are in the same equivalence class.
7146 @item Create a union of two equivalence classes.
7147 @item Look up the descriptor of the equivalence class.
7148 @end enumerate\n")
7149 (license license:bsd-3)))
7150
7151 (define-public ghc-base16-bytestring
7152 (package
7153 (name "ghc-base16-bytestring")
7154 (version "0.1.1.6")
7155 (source
7156 (origin
7157 (method url-fetch)
7158 (uri (string-append
7159 "https://hackage.haskell.org/package/base16-bytestring/"
7160 "base16-bytestring-" version ".tar.gz"))
7161 (sha256
7162 (base32
7163 "0jf40m3yijqw6wd1rwwvviww46fasphaay9m9rgqyhf5aahnbzjs"))))
7164 (build-system haskell-build-system)
7165 (home-page "https://github.com/bos/base16-bytestring")
7166 (synopsis "Fast base16 (hex) encoding and decoding for ByteStrings")
7167 (description
7168 "This package provides a Haskell library for working with base16-encoded
7169 data quickly and efficiently, using the ByteString type.")
7170 (license license:bsd-3)))
7171
7172 (define-public ghc-data-ordlist
7173 (package
7174 (name "ghc-data-ordlist")
7175 (version "0.4.7.0")
7176 (source
7177 (origin
7178 (method url-fetch)
7179 (uri (string-append
7180 "https://hackage.haskell.org/package/data-ordlist/data-ordlist-"
7181 version ".tar.gz"))
7182 (sha256
7183 (base32
7184 "03a9ix1fcx08viwv2jg5ndw1qbkydyyrmjvqr9wasmcik9x1wv3g"))))
7185 (build-system haskell-build-system)
7186 (home-page "https://hackage.haskell.org/package/data-ordlist")
7187 (synopsis "Set and bag operations on ordered lists")
7188 (description
7189 "This module provides set and multiset operations on ordered lists.")
7190 (license license:bsd-3)))
7191
7192 (define-public ghc-regex-applicative
7193 (package
7194 (name "ghc-regex-applicative")
7195 (version "0.3.3")
7196 (source
7197 (origin
7198 (method url-fetch)
7199 (uri (string-append
7200 "https://hackage.haskell.org/package/regex-applicative/"
7201 "regex-applicative-" version ".tar.gz"))
7202 (sha256
7203 (base32
7204 "1riv7jqf26lbv4rm54sd6mrx8xdh4dvh4xbzymzdfdw13k6a4nb6"))))
7205 (build-system haskell-build-system)
7206 (inputs
7207 `(("ghc-smallcheck" ,ghc-smallcheck)
7208 ("ghc-tasty" ,ghc-tasty)
7209 ("ghc-tasty-smallcheck" ,ghc-tasty-smallcheck)
7210 ("ghc-tasty-hunit" ,ghc-tasty-hunit)))
7211 (home-page "https://github.com/feuerbach/regex-applicative")
7212 (synopsis "Regex-based parsing with applicative interface")
7213 (description
7214 "@code{regex-applicative} is a Haskell library for parsing using
7215 regular expressions. Parsers can be built using Applicative interface.")
7216 (license license:expat)))
7217
7218 (define-public ghc-regex-tdfa
7219 (package
7220 (name "ghc-regex-tdfa")
7221 (version "1.2.3.1")
7222 (source
7223 (origin
7224 (method url-fetch)
7225 (uri (string-append
7226 "https://hackage.haskell.org/package/regex-tdfa/regex-tdfa-"
7227 version ".tar.gz"))
7228 (sha256
7229 (base32
7230 "0l7ajnh4hpgggf2a1r9dg0hx2fy679vd2kada5y7r02hy3nfxala"))))
7231 (build-system haskell-build-system)
7232 (inputs
7233 `(("ghc-parsec" ,ghc-parsec)
7234 ("ghc-regex-base" ,ghc-regex-base)))
7235 (home-page "https://github.com/ChrisKuklewicz/regex-tdfa")
7236 (synopsis "POSIX extended regular expressions in Haskell.")
7237 (description
7238 "Regex-tdfa is a pure Haskell regular expression library implementing POSIX
7239 extended regular expressions. It is a \"tagged\" DFA regex engine. It is
7240 inspired by libtre.")
7241 (license license:bsd-3)))
7242
7243 (define-public ghc-regex-compat-tdfa
7244 (package
7245 (name "ghc-regex-compat-tdfa")
7246 (version "0.95.1.4")
7247 (source
7248 (origin
7249 (method url-fetch)
7250 (uri (string-append
7251 "https://hackage.haskell.org/package/regex-compat-tdfa/regex-compat-tdfa-"
7252 version ".tar.gz"))
7253 (sha256
7254 (base32
7255 "1p90fn90yhp7fvljjdqjp41cszidcfz4pw7fwvzyx4739b98x8sg"))))
7256 (build-system haskell-build-system)
7257 (inputs
7258 `(("ghc-regex-base" ,ghc-regex-base)
7259 ("ghc-regex-tdfa" ,ghc-regex-tdfa)))
7260 (home-page "https://hub.darcs.net/shelarcy/regex-compat-tdfa")
7261 (synopsis "Unicode Support version of Text.Regex, using regex-tdfa")
7262 (description
7263 "One module layer over @code{regex-tdfa} to replace @code{Text.Regex}.
7264 @code{regex-compat} can't use Unicode characters correctly because of using regex-posix.
7265 This is not good for Unicode users. This modified regex-compat uses regex-tdfa to solve
7266 this problem.")
7267 (license license:bsd-3)))
7268
7269 (define-public ghc-sandi
7270 (package
7271 (name "ghc-sandi")
7272 (version "0.4.2")
7273 (source
7274 (origin
7275 (method url-fetch)
7276 (uri (string-append
7277 "https://hackage.haskell.org/package/sandi/sandi-"
7278 version ".tar.gz"))
7279 (sha256
7280 (base32
7281 "0dvkpk91n9kz2ha04rvp231ra9sgd1ilyc1qkzf9l03iir7zrh9b"))))
7282 (build-system haskell-build-system)
7283 (inputs
7284 `(("ghc-stringsearch" ,ghc-stringsearch)
7285 ("ghc-conduit" ,ghc-conduit)
7286 ("ghc-exceptions" ,ghc-exceptions)
7287 ("ghc-hunit" ,ghc-hunit)
7288 ("ghc-tasty" ,ghc-tasty)
7289 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
7290 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
7291 ("ghc-tasty-th" ,ghc-tasty-th)))
7292 (home-page "https://hackage.haskell.org/package/sandi")
7293 (synopsis "Data encoding library")
7294 (description "Reasonably fast data encoding library.")
7295 (license license:bsd-3)))
7296
7297 (define-public ghc-bytestring-handle
7298 (package
7299 (name "ghc-bytestring-handle")
7300 (version "0.1.0.6")
7301 (source
7302 (origin
7303 (method url-fetch)
7304 (uri (string-append
7305 "https://hackage.haskell.org/package/bytestring-handle/bytestring-handle-"
7306 version ".tar.gz"))
7307 (sha256
7308 (base32
7309 "18f17aja1ivhr3zyg2cccn2m03hdn5jf5410dndkhf12gvgiqs7y"))))
7310 (build-system haskell-build-system)
7311 (arguments
7312 `(#:phases
7313 (modify-phases %standard-phases
7314 (add-before 'configure 'update-constraints
7315 (lambda _
7316 (substitute* "bytestring-handle.cabal"
7317 (("QuickCheck >= 2\\.1\\.2 && < 2\\.11")
7318 "QuickCheck >= 2.1.2 && < 2.12")
7319 (("base >= 4\\.2 && < 4\\.11")
7320 "base >= 4.2 && < 4.12")))))))
7321 (inputs
7322 `(("ghc-hunit" ,ghc-hunit)
7323 ("ghc-quickcheck" ,ghc-quickcheck)
7324 ("ghc-test-framework" ,ghc-test-framework)
7325 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
7326 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
7327 (home-page "https://hub.darcs.net/ganesh/bytestring-handle")
7328 (synopsis "ByteString-backed Handles")
7329 (description "ByteString-backed Handles") ; There is no description
7330 (license license:bsd-3)))
7331
7332 (define-public ghc-tar
7333 (package
7334 (name "ghc-tar")
7335 (version "0.5.1.0")
7336 (source
7337 (origin
7338 (method url-fetch)
7339 (uri (string-append
7340 "https://hackage.haskell.org/package/tar/tar-"
7341 version ".tar.gz"))
7342 (sha256
7343 (base32
7344 "0s2brvaxg5fki2jdkccmnpssiy6a3wjh24p6a3dkkdvjcixnk7f8"))))
7345 (build-system haskell-build-system)
7346 ;; FIXME: 2/24 tests fail.
7347 (arguments `(#:tests? #f))
7348 (inputs
7349 `(("ghc-bytestring-handle" ,ghc-bytestring-handle)
7350 ("ghc-quickcheck" ,ghc-quickcheck)
7351 ("ghc-tasty" ,ghc-tasty)
7352 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
7353 (home-page "https://hackage.haskell.org/package/tar")
7354 (synopsis "Reading, writing and manipulating \".tar\" archive files")
7355 (description
7356 "This library is for working with \\\"@.tar@\\\" archive files.
7357 It can read and write a range of common variations of the tar archive format
7358 including V7, POSIX USTAR and GNU formats. It provides support for packing and
7359 unpacking portable archives. This makes it suitable for distribution but not
7360 backup because details like file ownership and exact permissions are not
7361 preserved. It also provides features for random access to archive content using
7362 an index.")
7363 (license license:bsd-3)))
7364
7365 (define-public ghc-stmonadtrans
7366 (package
7367 (name "ghc-stmonadtrans")
7368 (version "0.4.3")
7369 (source
7370 (origin
7371 (method url-fetch)
7372 (uri (string-append "https://hackage.haskell.org/package/STMonadTrans"
7373 "/STMonadTrans-" version ".tar.gz"))
7374 (sha256
7375 (base32 "1nr26fnmi5fdjc6d00w13kjhmfyvb5b837d0006w4dj0yxndaksp"))))
7376 (build-system haskell-build-system)
7377 (home-page "https://hackage.haskell.org/package/STMonadTrans")
7378 (synopsis "Monad transformer version of the ST monad")
7379 (description
7380 "This package provides a monad transformer version of the @code{ST} monad
7381 for strict state threads.")
7382 (license license:bsd-3)))
7383
7384 (define-public ghc-findbin
7385 (package
7386 (name "ghc-findbin")
7387 (version "0.0.5")
7388 (source
7389 (origin
7390 (method url-fetch)
7391 (uri (string-append
7392 "https://hackage.haskell.org/package/FindBin/FindBin-"
7393 version ".tar.gz"))
7394 (sha256
7395 (base32
7396 "197xvn05yysmibm1p5wzxfa256lvpbknr5d1l2ws6g40w1kpk717"))))
7397 (build-system haskell-build-system)
7398 (home-page "https://github.com/audreyt/findbin")
7399 (synopsis "Get the absolute path of the running program")
7400 (description
7401 "This module locates the full directory of the running program, to allow
7402 the use of paths relative to it. FindBin supports invocation of Haskell
7403 programs via \"ghci\", via \"runhaskell/runghc\", as well as compiled as
7404 an executable.")
7405 (license license:bsd-3)))
7406
7407 (define-public ghc-patience
7408 (package
7409 (name "ghc-patience")
7410 (version "0.1.1")
7411 (source
7412 (origin
7413 (method url-fetch)
7414 (uri (string-append
7415 "https://hackage.haskell.org/package/patience/patience-"
7416 version ".tar.gz"))
7417 (sha256
7418 (base32
7419 "0qyv20gqy9pb1acy700ahv70lc6vprcwb26cc7fcpcs4scsc7irm"))))
7420 (build-system haskell-build-system)
7421 (home-page "https://hackage.haskell.org/package/patience")
7422 (synopsis "Patience diff and longest increasing subsequence")
7423 (description
7424 "This library implements the 'patience diff' algorithm, as well as the
7425 patience algorithm for the longest increasing subsequence problem.
7426 Patience diff computes the difference between two lists, for example the lines
7427 of two versions of a source file. It provides a good balance between
7428 performance, nice output for humans, and simplicity of implementation.")
7429 (license license:bsd-3)))
7430
7431 (define-public ghc-monads-tf
7432 (package
7433 (name "ghc-monads-tf")
7434 (version "0.1.0.3")
7435 (source
7436 (origin
7437 (method url-fetch)
7438 (uri (string-append
7439 "https://hackage.haskell.org/package/monads-tf/monads-tf-"
7440 version ".tar.gz"))
7441 (sha256
7442 (base32
7443 "1wdhskwa6dw8qljbvwpyxj8ca6y95q2np7z4y4q6bpf4anmd5794"))))
7444 (build-system haskell-build-system)
7445 (home-page "https://hackage.haskell.org/package/monads-tf")
7446 (synopsis "Monad classes, using type families")
7447 (description
7448 "Monad classes using type families, with instances for various monad transformers,
7449 inspired by the paper 'Functional Programming with Overloading and Higher-Order
7450 Polymorphism', by Mark P Jones. This package is almost a compatible replacement for
7451 the @code{mtl-tf} package.")
7452 (license license:bsd-3)))
7453
7454 (define-public ghc-colour
7455 (package
7456 (name "ghc-colour")
7457 (version "2.3.4")
7458 (source
7459 (origin
7460 (method url-fetch)
7461 (uri (string-append
7462 "https://hackage.haskell.org/package/colour/colour-"
7463 version ".tar.gz"))
7464 (sha256
7465 (base32
7466 "1sy51nz096sv91nxqk6yk7b92b5a40axv9183xakvki2nc09yhqg"))))
7467 (arguments
7468 ;; The tests for this package have the following dependency cycle:
7469 ;; ghc-test-framework -> ghc-ansi-terminal -> ghc-colour.
7470 `(#:tests? #f))
7471 (build-system haskell-build-system)
7472 (home-page "https://www.haskell.org/haskellwiki/Colour")
7473 (synopsis "Model for human colour perception")
7474 (description
7475 "This package provides a data type for colours and transparency.
7476 Colours can be blended and composed. Various colour spaces are
7477 supported. A module of colour names (\"Data.Colour.Names\") is provided.")
7478 (license license:expat)))
7479
7480 (define-public ghc-wl-pprint-text
7481 (package
7482 (name "ghc-wl-pprint-text")
7483 (version "1.2.0.0")
7484 (source
7485 (origin
7486 (method url-fetch)
7487 (uri (string-append
7488 "https://hackage.haskell.org/package/wl-pprint-text/wl-pprint-text-"
7489 version ".tar.gz"))
7490 (sha256
7491 (base32
7492 "0g3w92rad6x5appfb22rbzcas2ix2h0hy91sdxhq8a4a5cnlrpa0"))))
7493 (build-system haskell-build-system)
7494 (inputs
7495 `(("ghc-base-compat" ,ghc-base-compat)
7496 ("ghc-text" ,ghc-text)))
7497 (home-page "https://hackage.haskell.org/package/wl-pprint-text")
7498 (synopsis "Wadler/Leijen Pretty Printer for Text values")
7499 (description
7500 "A clone of wl-pprint for use with the text library.")
7501 (license license:bsd-3)))
7502
7503 (define-public ghc-fgl-arbitrary
7504 (package
7505 (name "ghc-fgl-arbitrary")
7506 (version "0.2.0.3")
7507 (source
7508 (origin
7509 (method url-fetch)
7510 (uri (string-append
7511 "https://hackage.haskell.org/package/fgl-arbitrary/fgl-arbitrary-"
7512 version ".tar.gz"))
7513 (sha256
7514 (base32
7515 "0ln1szgfy8fa78l3issq4fx3aqnnd54w3cb4wssrfi48vd5rkfjm"))))
7516 (build-system haskell-build-system)
7517 (arguments
7518 `(#:phases
7519 (modify-phases %standard-phases
7520 (add-before 'configure 'update-constraints
7521 (lambda _
7522 (substitute* "fgl-arbitrary.cabal"
7523 (("QuickCheck >= 2\\.3 && < 2\\.10")
7524 "QuickCheck >= 2.3 && < 2.12")
7525 (("hspec >= 2\\.1 && < 2\\.5")
7526 "hspec >= 2.1 && < 2.6")))))))
7527 (inputs
7528 `(("ghc-fgl" ,ghc-fgl)
7529 ("ghc-quickcheck" ,ghc-quickcheck)
7530 ("ghc-hspec" ,ghc-hspec)))
7531 (home-page "https://hackage.haskell.org/package/fgl-arbitrary")
7532 (synopsis "QuickCheck support for fgl")
7533 (description
7534 "Provides Arbitrary instances for fgl graphs to avoid adding a
7535 QuickCheck dependency for fgl whilst still making the instances
7536 available to others. Also available are non-fgl-specific functions
7537 for generating graph-like data structures.")
7538 (license license:bsd-3)))
7539
7540 (define-public ghc-graphviz
7541 (package
7542 (name "ghc-graphviz")
7543 (version "2999.20.0.2")
7544 (source (origin
7545 (method url-fetch)
7546 (uri (string-append "https://hackage.haskell.org/package/"
7547 "graphviz/graphviz-" version ".tar.gz"))
7548 (sha256
7549 (base32
7550 "0kj7ap0gnliviq2p8lscw1m06capnsa90vpvcys24nqy5nw2wrp7"))))
7551 (build-system haskell-build-system)
7552 (inputs
7553 `(("ghc-quickcheck" ,ghc-quickcheck)
7554 ("ghc-colour" ,ghc-colour)
7555 ("ghc-dlist" ,ghc-dlist)
7556 ("ghc-fgl" ,ghc-fgl)
7557 ("ghc-fgl-arbitrary" ,ghc-fgl-arbitrary)
7558 ("ghc-polyparse" ,ghc-polyparse)
7559 ("ghc-temporary" ,ghc-temporary)
7560 ("ghc-text" ,ghc-text)
7561 ("ghc-wl-pprint-text" ,ghc-wl-pprint-text)))
7562 (native-inputs
7563 `(("ghc-hspec" ,ghc-hspec)
7564 ("graphviz" ,graphviz)
7565 ("hspec-discover" ,hspec-discover)))
7566 (home-page "https://hackage.haskell.org/package/graphviz")
7567 (synopsis "Bindings to Graphviz for graph visualisation")
7568 (description
7569 "This library provides bindings for the Dot language used by
7570 the @uref{https://graphviz.org/, Graphviz} suite of programs for
7571 visualising graphs, as well as functions to call those programs.
7572 Main features of the graphviz library include:
7573
7574 @enumerate
7575 @item Almost complete coverage of all Graphviz attributes and syntax
7576 @item Support for specifying clusters
7577 @item The ability to use a custom node type
7578 @item Functions for running a Graphviz layout tool with all specified output types
7579 @item Generate and parse Dot code with two options: strict and liberal
7580 @item Functions to convert FGL graphs and other graph-like data structures
7581 @item Round-trip support for passing an FGL graph through Graphviz to augment node
7582 and edge labels with positional information, etc.
7583 @end enumerate\n")
7584 (license license:bsd-3)))
7585
7586 (define-public ghc-constraints
7587 (package
7588 (name "ghc-constraints")
7589 (version "0.10.1")
7590 (source
7591 (origin
7592 (method url-fetch)
7593 (uri (string-append
7594 "https://hackage.haskell.org/package/constraints/constraints-"
7595 version ".tar.gz"))
7596 (sha256
7597 (base32
7598 "1xy3vv78jxc17hm0z7qqspxjwv7l2jbcbj670yrl2f053qkfr02q"))))
7599 (build-system haskell-build-system)
7600 (inputs
7601 `(("ghc-hashable" ,ghc-hashable)
7602 ("ghc-semigroups" ,ghc-semigroups)
7603 ("ghc-transformers-compat" ,ghc-transformers-compat)))
7604 (native-inputs
7605 `(("ghc-hspec" ,ghc-hspec)
7606 ("hspec-discover" ,hspec-discover)))
7607 (home-page "https://github.com/ekmett/constraints/")
7608 (synopsis "Constraint manipulation")
7609 (description
7610 "GHC 7.4 gave us the ability to talk about @code{ConstraintKinds}.
7611 They stopped crashing the compiler in GHC 7.6. This package provides
7612 a vocabulary for working with them.")
7613 (license license:bsd-3)))
7614
7615 (define-public ghc-lifted-async
7616 (package
7617 (name "ghc-lifted-async")
7618 (version "0.10.0.2")
7619 (source
7620 (origin
7621 (method url-fetch)
7622 (uri (string-append
7623 "https://hackage.haskell.org/package/lifted-async/lifted-async-"
7624 version ".tar.gz"))
7625 (sha256
7626 (base32
7627 "1073r512c1x2m1v0jar9bwqg656slg7jd1jhsyj6m8awgx1l1mwf"))))
7628 (build-system haskell-build-system)
7629 (inputs
7630 `(("ghc-async" ,ghc-async)
7631 ("ghc-lifted-base" ,ghc-lifted-base)
7632 ("ghc-transformers-base" ,ghc-transformers-base)
7633 ("ghc-monad-control" ,ghc-monad-control)
7634 ("ghc-constraints" ,ghc-constraints)
7635 ("ghc-hunit" ,ghc-hunit)
7636 ("ghc-tasty" ,ghc-tasty)
7637 ("ghc-tasty-expected-failure" ,ghc-tasty-expected-failure)
7638 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
7639 ("ghc-tasty-th" ,ghc-tasty-th)))
7640 (home-page "https://github.com/maoe/lifted-async")
7641 (synopsis "Run lifted IO operations asynchronously and wait for their results")
7642 (description
7643 "This package provides IO operations from @code{async} package lifted to any
7644 instance of @code{MonadBase} or @code{MonadBaseControl}.")
7645 (license license:bsd-3)))
7646
7647 ;; Ghc-shelly depends on ghc-system-filepath and ghc-system-fileio, who in turn depend on
7648 ;; ghc-chell and ghc-chell-quickcheck for the test phase. Ghc-chell depends on ghc-options
7649 ;; which depends on ghc-chell and ghc-chell-quickcheck.
7650 ;; Therefore we bootstrap it with tests disabled.
7651 (define ghc-system-filepath-bootstrap
7652 (package
7653 (name "ghc-system-filepath-bootstrap")
7654 (version "0.4.14")
7655 (source
7656 (origin
7657 (method url-fetch)
7658 (uri (string-append
7659 "https://hackage.haskell.org/package/system-filepath/system-filepath-"
7660 version ".tar.gz"))
7661 (sha256
7662 (base32
7663 "14yras4pz2dh55xpwmazcgxijvi8913pjgzb9iw50mjq1lycwmhn"))))
7664 (build-system haskell-build-system)
7665 (arguments
7666 `(#:tests? #f))
7667 (inputs
7668 `(("ghc-text" ,ghc-text)
7669 ("ghc-quickcheck" ,ghc-quickcheck)))
7670 (home-page "https://github.com/fpco/haskell-filesystem")
7671 (synopsis "High-level, byte-based file and directory path manipulations")
7672 (description
7673 "Provides a FilePath datatype and utility functions for operating on it.
7674 Unlike the filepath package, this package does not simply reuse String,
7675 increasing type safety.")
7676 (license license:expat)))
7677
7678 ;; See ghc-system-filepath-bootstrap. In addition this package depends on
7679 ;; ghc-system-filepath.
7680 (define ghc-system-fileio-bootstrap
7681 (package
7682 (name "ghc-system-fileio-bootstrap")
7683 (version "0.3.16.3")
7684 (source
7685 (origin
7686 (method url-fetch)
7687 (uri (string-append
7688 "https://hackage.haskell.org/package/system-fileio/system-fileio-"
7689 version ".tar.gz"))
7690 (sha256
7691 (base32
7692 "1484hcl27s2qcby8ws5djj11q9bz68bspcifz9h5gii2ndy70x9i"))))
7693 (build-system haskell-build-system)
7694 (arguments
7695 `(#:tests? #f))
7696 (inputs
7697 `(("ghc-system-filepath-bootstrap" ,ghc-system-filepath-bootstrap)
7698 ("ghc-text" ,ghc-text)
7699 ("ghc-temporary" ,ghc-temporary)))
7700 (home-page "https://github.com/fpco/haskell-filesystem")
7701 (synopsis "Consistent file system interaction across GHC versions")
7702 (description
7703 "This is a small wrapper around the directory, unix, and Win32 packages,
7704 for use with system-filepath. It provides a consistent API to the various
7705 versions of these packages distributed with different versions of GHC.
7706 In particular, this library supports working with POSIX files that have paths
7707 which can't be decoded in the current locale encoding.")
7708 (license license:expat)))
7709
7710 (define-public ghc-shelly
7711 (package
7712 (name "ghc-shelly")
7713 (version "1.8.1")
7714 (source
7715 (origin
7716 (method url-fetch)
7717 (uri (string-append
7718 "https://hackage.haskell.org/package/shelly/shelly-"
7719 version ".tar.gz"))
7720 (sha256
7721 (base32
7722 "023fbvbqs5gdwm30j5517gbdcc7fvz0md70dgwgpypkskj3i926y"))))
7723 (build-system haskell-build-system)
7724 (inputs
7725 `(("ghc-unix-compat" ,ghc-unix-compat)
7726 ("ghc-system-filepath-bootstrap" ,ghc-system-filepath-bootstrap)
7727 ("ghc-system-fileio-bootstrap" ,ghc-system-fileio-bootstrap)
7728 ("ghc-monad-control" ,ghc-monad-control)
7729 ("ghc-lifted-base" ,ghc-lifted-base)
7730 ("ghc-lifted-async" ,ghc-lifted-async)
7731 ("ghc-exceptions" ,ghc-exceptions)
7732 ("ghc-enclosed-exceptions" ,ghc-enclosed-exceptions)
7733 ("ghc-text" ,ghc-text)
7734 ("ghc-async" ,ghc-async)
7735 ("ghc-transformers-base" ,ghc-transformers-base)
7736 ("ghc-hunit" ,ghc-hunit)
7737 ("ghc-hspec" ,ghc-hspec)
7738 ("ghc-hspec-contrib" ,ghc-hspec-contrib)))
7739 (home-page "https://github.com/yesodweb/Shelly.hs")
7740 (synopsis "Shell-like (systems) programming in Haskell")
7741 (description
7742 "Shelly provides convenient systems programming in Haskell, similar in
7743 spirit to POSIX shells. Shelly is originally forked from the Shellish package.")
7744 (license license:bsd-3)))
7745
7746 ;; See ghc-system-filepath-bootstrap, chell and chell-quickcheck are required for tests.
7747 (define ghc-options-bootstrap
7748 (package
7749 (name "ghc-options-bootstrap")
7750 (version "1.2.1.1")
7751 (source
7752 (origin
7753 (method url-fetch)
7754 (uri (string-append
7755 "https://hackage.haskell.org/package/options/options-"
7756 version ".tar.gz"))
7757 (sha256
7758 (base32
7759 "0qjs0v1ny52w51n5582d4z8wy9h6n0zw1xb5dh686ff5wadflgi8"))))
7760 (build-system haskell-build-system)
7761 (arguments
7762 `(#:tests? #f))
7763 (inputs
7764 `(("ghc-monads-tf" ,ghc-monads-tf)))
7765 (home-page "https://john-millikin.com/software/haskell-options/")
7766 (synopsis "Powerful and easy-to-use command-line option parser")
7767 (description
7768 "The @code{options} package lets library and application developers
7769 easily work with command-line options.")
7770 (license license:expat)))
7771
7772 (define-public ghc-chell
7773 (package
7774 (name "ghc-chell")
7775 (version "0.4.0.2")
7776 (source
7777 (origin
7778 (method url-fetch)
7779 (uri (string-append
7780 "https://hackage.haskell.org/package/chell/chell-"
7781 version ".tar.gz"))
7782 (sha256
7783 (base32
7784 "10ingy9qnbmc8cqh4i9pskcw43l0mzk8f3d76b3qz3fig5ary3j9"))))
7785 (build-system haskell-build-system)
7786 (inputs
7787 `(("ghc-options-bootstrap" ,ghc-options-bootstrap)
7788 ("ghc-patience" ,ghc-patience)
7789 ("ghc-random" ,ghc-random)
7790 ("ghc-text" ,ghc-text)
7791 ("ghc-ansi-terminal" ,ghc-ansi-terminal)))
7792 (home-page "https://john-millikin.com/software/chell/")
7793 (synopsis "Simple and intuitive library for automated testing")
7794 (description
7795 "Chell is a simple and intuitive library for automated testing.
7796 It natively supports assertion-based testing, and can use companion
7797 libraries such as @code{chell-quickcheck} to support more complex
7798 testing strategies.")
7799 (license license:expat)))
7800
7801 (define ghc-chell-quickcheck-bootstrap
7802 (package
7803 (name "ghc-chell-quickcheck-bootstrap")
7804 (version "0.2.5.1")
7805 (source
7806 (origin
7807 (method url-fetch)
7808 (uri (string-append
7809 "https://hackage.haskell.org/package/chell-quickcheck/"
7810 "chell-quickcheck-" version ".tar.gz"))
7811 (sha256
7812 (base32
7813 "1iicsys9igx7m7n4l2b8djardmjy2ah5ibzp7kzs758h460fq53a"))))
7814 (build-system haskell-build-system)
7815 (inputs
7816 `(("ghc-chell" ,ghc-chell)
7817 ("ghc-random" ,ghc-random)
7818 ("ghc-quickcheck" ,ghc-quickcheck)))
7819 (arguments
7820 `(#:tests? #f
7821 #:phases
7822 (modify-phases %standard-phases
7823 (add-before 'configure 'update-constraints
7824 (lambda _
7825 (substitute* "chell-quickcheck.cabal"
7826 (("QuickCheck >= 2\\.3 && < 2\\.11")
7827 "QuickCheck >= 2.3 && < 2.12")))))))
7828 (home-page "https://john-millikin.com/software/chell/")
7829 (synopsis "QuickCheck support for the Chell testing library")
7830 (description "More complex tests for @code{chell}.")
7831 (license license:expat)))
7832
7833 (define-public ghc-chell-quickcheck
7834 (package
7835 (name "ghc-chell-quickcheck")
7836 (version "0.2.5.1")
7837 (source
7838 (origin
7839 (method url-fetch)
7840 (uri (string-append
7841 "https://hackage.haskell.org/package/chell-quickcheck/"
7842 "chell-quickcheck-" version ".tar.gz"))
7843 (sha256
7844 (base32
7845 "1iicsys9igx7m7n4l2b8djardmjy2ah5ibzp7kzs758h460fq53a"))))
7846 (build-system haskell-build-system)
7847 (arguments
7848 `(#:phases
7849 (modify-phases %standard-phases
7850 (add-before 'configure 'update-constraints
7851 (lambda _
7852 (substitute* "chell-quickcheck.cabal"
7853 (("QuickCheck >= 2\\.3 && < 2\\.11")
7854 "QuickCheck >= 2.3 && < 2.12")))))))
7855 (inputs
7856 `(("ghc-chell" ,ghc-chell)
7857 ("ghc-chell-quickcheck-bootstrap" ,ghc-chell-quickcheck-bootstrap)
7858 ("ghc-random" ,ghc-random)
7859 ("ghc-quickcheck" ,ghc-quickcheck)))
7860 (home-page "https://john-millikin.com/software/chell/")
7861 (synopsis "QuickCheck support for the Chell testing library")
7862 (description "More complex tests for @code{chell}.")
7863 (license license:expat)))
7864
7865 (define-public ghc-options
7866 (package
7867 (name "ghc-options")
7868 (version "1.2.1.1")
7869 (source
7870 (origin
7871 (method url-fetch)
7872 (uri (string-append
7873 "https://hackage.haskell.org/package/options/options-"
7874 version ".tar.gz"))
7875 (sha256
7876 (base32
7877 "0qjs0v1ny52w51n5582d4z8wy9h6n0zw1xb5dh686ff5wadflgi8"))))
7878 (build-system haskell-build-system)
7879 (inputs
7880 `(("ghc-monads-tf" ,ghc-monads-tf)
7881 ("ghc-chell" ,ghc-chell)
7882 ("ghc-chell-quickcheck" ,ghc-chell-quickcheck)))
7883 (home-page "https://john-millikin.com/software/haskell-options/")
7884 (synopsis "Powerful and easy-to-use command-line option parser")
7885 (description
7886 "The @code{options} package lets library and application developers
7887 easily work with command-line options.")
7888 (license license:expat)))
7889
7890 (define-public ghc-system-filepath
7891 (package
7892 (name "ghc-system-filepath")
7893 (version "0.4.14")
7894 (source
7895 (origin
7896 (method url-fetch)
7897 (uri (string-append
7898 "https://hackage.haskell.org/package/system-filepath/system-filepath-"
7899 version ".tar.gz"))
7900 (sha256
7901 (base32
7902 "14yras4pz2dh55xpwmazcgxijvi8913pjgzb9iw50mjq1lycwmhn"))))
7903 (build-system haskell-build-system)
7904 ;; FIXME: One of the tests fails:
7905 ;; [ FAIL ] tests.validity.posix
7906 ;; note: seed=7310214548328823169
7907 ;; *** Failed! Falsifiable (after 24 tests):
7908 ;; 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"
7909 (arguments `(#:tests? #f))
7910 (inputs
7911 `(("ghc-text" ,ghc-text)
7912 ("ghc-chell" ,ghc-chell)
7913 ("ghc-chell-quickcheck" ,ghc-chell-quickcheck)
7914 ("ghc-quickcheck" ,ghc-quickcheck)))
7915 (home-page "https://github.com/fpco/haskell-filesystem")
7916 (synopsis "High-level, byte-based file and directory path manipulations")
7917 (description
7918 "Provides a FilePath datatype and utility functions for operating on it.
7919 Unlike the filepath package, this package does not simply reuse String,
7920 increasing type safety.")
7921 (license license:expat)))
7922
7923 (define-public ghc-system-fileio
7924 (package
7925 (name "ghc-system-fileio")
7926 (version "0.3.16.3")
7927 (source
7928 (origin
7929 (method url-fetch)
7930 (uri (string-append
7931 "https://hackage.haskell.org/package/system-fileio/system-fileio-"
7932 version ".tar.gz"))
7933 (sha256
7934 (base32
7935 "1484hcl27s2qcby8ws5djj11q9bz68bspcifz9h5gii2ndy70x9i"))))
7936 (build-system haskell-build-system)
7937 (inputs
7938 `(("ghc-system-filepath" ,ghc-system-filepath)
7939 ("ghc-text" ,ghc-text)
7940 ("ghc-chell" ,ghc-chell)
7941 ("ghc-temporary" ,ghc-temporary)))
7942 (home-page "https://github.com/fpco/haskell-filesystem")
7943 (synopsis "Consistent file system interaction across GHC versions")
7944 (description
7945 "This is a small wrapper around the directory, unix, and Win32 packages,
7946 for use with system-filepath. It provides a consistent API to the various
7947 versions of these packages distributed with different versions of GHC.
7948 In particular, this library supports working with POSIX files that have paths
7949 which can't be decoded in the current locale encoding.")
7950 (license license:expat)))
7951
7952 (define-public ghc-storable-complex
7953 (package
7954 (name "ghc-storable-complex")
7955 (version "0.2.2")
7956 (source
7957 (origin
7958 (method url-fetch)
7959 (uri (string-append
7960 "https://hackage.haskell.org/package/storable-complex/storable-complex-"
7961 version ".tar.gz"))
7962 (sha256
7963 (base32 "01kwwkpbfjrv26vj83cd92px5qbq1bpgxj0r45534aksqhany1xb"))))
7964 (build-system haskell-build-system)
7965 (home-page "https://github.com/cartazio/storable-complex")
7966 (synopsis "Haskell Storable instance for Complex")
7967 (description "This package provides a Haskell library including a
7968 Storable instance for Complex which is binary compatible with C99, C++
7969 and Fortran complex data types.")
7970 (license license:bsd-3)))
7971
7972 (define-public ghc-hmatrix
7973 (package
7974 (name "ghc-hmatrix")
7975 (version "0.19.0.0")
7976 (source
7977 (origin
7978 (method url-fetch)
7979 (uri (string-append
7980 "https://hackage.haskell.org/package/hmatrix/hmatrix-"
7981 version ".tar.gz"))
7982 (sha256
7983 (base32 "10jd69nby29dggghcyjk6ykyr5wrn97nrv1dkpyrp0y5xm12xssj"))))
7984 (build-system haskell-build-system)
7985 (inputs
7986 `(("ghc-random" ,ghc-random)
7987 ("ghc-split" ,ghc-split)
7988 ("ghc-storable-complex" ,ghc-storable-complex)
7989 ("ghc-semigroups" ,ghc-semigroups)
7990 ("ghc-vector" ,ghc-vector)
7991 ;;("openblas" ,openblas)
7992 ("lapack" ,lapack)))
7993 ;; Guix's OpenBLAS is built with the flag "NO_LAPACK=1" which
7994 ;; disables inclusion of the LAPACK functions.
7995 ;; (arguments `(#:configure-flags '("--flags=openblas")))
7996 (home-page "https://github.com/albertoruiz/hmatrix")
7997 (synopsis "Haskell numeric linear algebra library")
7998 (description "The HMatrix package provices a Haskell library for
7999 dealing with linear systems, matrix decompositions, and other
8000 numerical computations based on BLAS and LAPACK.")
8001 (license license:bsd-3)))
8002
8003 (define-public ghc-hmatrix-gsl
8004 (package
8005 (name "ghc-hmatrix-gsl")
8006 (version "0.19.0.1")
8007 (source
8008 (origin
8009 (method url-fetch)
8010 (uri (string-append
8011 "https://hackage.haskell.org/package/hmatrix-gsl/hmatrix-gsl-"
8012 version ".tar.gz"))
8013 (sha256
8014 (base32 "0v6dla426x4ywaq59jm89ql1i42n39iw6z0j378xwb676v9kfxhm"))))
8015 (build-system haskell-build-system)
8016 (inputs
8017 `(("ghc-hmatrix" ,ghc-hmatrix)
8018 ("ghc-vector" ,ghc-vector)
8019 ("ghc-random" ,ghc-random)
8020 ("gsl" ,gsl)))
8021 (native-inputs `(("pkg-config" ,pkg-config)))
8022 (home-page "https://github.com/albertoruiz/hmatrix")
8023 (synopsis "Haskell GSL binding")
8024 (description "This Haskell library provides a purely functional
8025 interface to selected numerical computations, internally implemented
8026 using GSL.")
8027 (license license:gpl3+)))
8028
8029 (define-public ghc-hmatrix-special
8030 (package
8031 (name "ghc-hmatrix-special")
8032 (version "0.19.0.0")
8033 (source
8034 (origin
8035 (method url-fetch)
8036 (uri
8037 (string-append
8038 "https://hackage.haskell.org/package/hmatrix-special/hmatrix-special-"
8039 version ".tar.gz"))
8040 (sha256
8041 (base32 "1mywr61kr852sbff26n9x95kswx9l4ycbv6s68qsbkh02xzqq7qz"))))
8042 (build-system haskell-build-system)
8043 (inputs
8044 `(("ghc-hmatrix" ,ghc-hmatrix)
8045 ("ghc-hmatrix-gsl" ,ghc-hmatrix-gsl)))
8046 (home-page "https://github.com/albertoruiz/hmatrix")
8047 (synopsis "Haskell interface to GSL special functions")
8048 (description "This library provides an interface to GSL special
8049 functions for Haskell.")
8050 (license license:gpl3+)))
8051
8052 (define-public ghc-hmatrix-gsl-stats
8053 (package
8054 (name "ghc-hmatrix-gsl-stats")
8055 (version "0.4.1.7")
8056 (source
8057 (origin
8058 (method url-fetch)
8059 (uri
8060 (string-append
8061 "https://hackage.haskell.org/package/hmatrix-gsl-stats/hmatrix-gsl-stats-"
8062 version ".tar.gz"))
8063 (sha256
8064 (base32 "1gslgk58lzin43cvbpivhw7nrn9qyaa6qwhy1z9ypvyal5p8n3sa"))))
8065 (build-system haskell-build-system)
8066 (inputs
8067 `(("ghc-vector" ,ghc-vector)
8068 ("ghc-storable-complex" ,ghc-storable-complex)
8069 ("ghc-hmatrix" ,ghc-hmatrix)
8070 ("gsl" ,gsl)))
8071 (native-inputs `(("pkg-config" ,pkg-config)))
8072 (home-page "http://code.haskell.org/hmatrix-gsl-stats")
8073 (synopsis "GSL Statistics interface for Haskell")
8074 (description "This Haskell library provides a purely functional
8075 interface for statistics based on hmatrix and GSL.")
8076 (license license:bsd-3)))
8077
8078 (define-public ghc-easyplot
8079 (package
8080 (name "ghc-easyplot")
8081 (version "1.0")
8082 (source
8083 (origin
8084 (method url-fetch)
8085 (uri (string-append
8086 "https://hackage.haskell.org/package/easyplot/easyplot-"
8087 version ".tar.gz"))
8088 (sha256
8089 (base32 "18kndgvdj2apjpfga6fp7m16y1gx8zrwp3c5vfj03sx4v6jvciqk"))))
8090 (build-system haskell-build-system)
8091 (propagated-inputs `(("gnuplot" ,gnuplot)))
8092 (arguments
8093 `(#:phases (modify-phases %standard-phases
8094 (add-after 'unpack 'fix-setup-suffix
8095 (lambda _ (rename-file "Setup.lhs" "Setup.hs") #t)))))
8096 (home-page "https://hub.darcs.net/scravy/easyplot")
8097 (synopsis "Haskell plotting library based on gnuplot")
8098 (description "This package provides a plotting library for
8099 Haskell, using gnuplot for rendering.")
8100 (license license:expat)))
8101
8102 (define-public ghc-hashtables
8103 (package
8104 (name "ghc-hashtables")
8105 (version "1.2.3.1")
8106 (source
8107 (origin
8108 (method url-fetch)
8109 (uri (string-append
8110 "https://hackage.haskell.org/package/hashtables/hashtables-"
8111 version ".tar.gz"))
8112 (sha256
8113 (base32 "1giw9caajr07slf09j7zry9b0kvm4yj9q78zy1mawzi6gk3wglcg"))))
8114 (build-system haskell-build-system)
8115 (inputs
8116 `(("ghc-hashable" ,ghc-hashable)
8117 ("ghc-primitive" ,ghc-primitive)
8118 ("ghc-vector" ,ghc-vector)))
8119 (home-page "https://github.com/gregorycollins/hashtables")
8120 (synopsis "Haskell Mutable hash tables in the ST monad")
8121 (description "This package provides a Haskell library including a
8122 couple of different implementations of mutable hash tables in the ST
8123 monad, as well as a typeclass abstracting their common operations, and
8124 a set of wrappers to use the hash tables in the IO monad.")
8125 (license license:bsd-3)))
8126
8127 (define-public ghc-data-accessor
8128 (package
8129 (name "ghc-data-accessor")
8130 (version "0.2.2.7")
8131 (source
8132 (origin
8133 (method url-fetch)
8134 (uri (string-append
8135 "mirror://hackage/package/data-accessor/data-accessor-"
8136 version ".tar.gz"))
8137 (sha256
8138 (base32 "1vf2g1gac3rm32g97rl0fll51m88q7ry4m6khnl5j47qsmx24r9l"))))
8139 (build-system haskell-build-system)
8140 (home-page "https://www.haskell.org/haskellwiki/Record_access")
8141 (synopsis
8142 "Haskell utilities for accessing and manipulating fields of records")
8143 (description "This package provides Haskell modules for accessing and
8144 manipulating fields of records.")
8145 (license license:bsd-3)))
8146
8147 (define-public ghc-data-accessor-transformers
8148 (package
8149 (name "ghc-data-accessor-transformers")
8150 (version "0.2.1.7")
8151 (source
8152 (origin
8153 (method url-fetch)
8154 (uri (string-append
8155 "mirror://hackage/package/data-accessor-transformers/"
8156 "data-accessor-transformers-" version ".tar.gz"))
8157 (sha256
8158 (base32 "0yp030vafbpddl27m606aibbbr5ar5j5bsv4bksscz3cq4yq5j10"))))
8159 (build-system haskell-build-system)
8160 (inputs `(("ghc-data-accessor" ,ghc-data-accessor)))
8161 (home-page "https://www.haskell.org/haskellwiki/Record_access")
8162 (synopsis "Use Accessor to access state in transformers State monad")
8163 (description "This package provides Haskell modules to allow use of
8164 Accessor to access state in transformers State monad.")
8165 (license license:bsd-3)))
8166
8167 (define-public ghc-utility-ht
8168 (package
8169 (name "ghc-utility-ht")
8170 (version "0.0.14")
8171 (home-page "https://hackage.haskell.org/package/utility-ht")
8172 (source
8173 (origin
8174 (method url-fetch)
8175 (uri (string-append home-page "/utility-ht-" version ".tar.gz"))
8176 (sha256
8177 (base32 "1a7bgk7wv7sqbxbiv7kankiimr3wij7zdm7s83zwsf886ghyxhk9"))))
8178 (build-system haskell-build-system)
8179 (inputs `(("ghc-quickcheck" ,ghc-quickcheck)))
8180 (synopsis "Haskell helper functions for Lists, Maybes, Tuples, Functions")
8181 (description "This package includes Hakell modules providing various
8182 helper functions for Lists, Maybes, Tuples, Functions.")
8183 (license license:bsd-3)))
8184
8185 (define-public ghc-gnuplot
8186 (package
8187 (name "ghc-gnuplot")
8188 (version "0.5.5.2")
8189 (source
8190 (origin
8191 (method url-fetch)
8192 (uri (string-append
8193 "mirror://hackage/package/gnuplot/gnuplot-"
8194 version ".tar.gz"))
8195 (sha256
8196 (base32 "1mlppnc13ygjzmf6ldydys4wvy35yb3xjwwfgf9rbi7nfcqjr6mn"))))
8197 (build-system haskell-build-system)
8198 (inputs
8199 `(("ghc-temporary" ,ghc-temporary)
8200 ("ghc-utility-ht" ,ghc-utility-ht)
8201 ("ghc-data-accessor-transformers" ,ghc-data-accessor-transformers)
8202 ("ghc-data-accessor" ,ghc-data-accessor)
8203 ("ghc-semigroups" ,ghc-semigroups)
8204 ("gnuplot" ,gnuplot)))
8205 (arguments
8206 `(#:phases
8207 (modify-phases %standard-phases
8208 (add-before 'configure 'fix-path-to-gnuplot
8209 (lambda* (#:key inputs #:allow-other-keys)
8210 (let ((gnuplot (assoc-ref inputs "gnuplot")))
8211 (substitute* "os/generic/Graphics/Gnuplot/Private/OS.hs"
8212 (("(gnuplotName = ).*$" all cmd)
8213 (string-append cmd "\"" gnuplot "/bin/gnuplot\"")))))))))
8214 (home-page "https://www.haskell.org/haskellwiki/Gnuplot")
8215 (synopsis "2D and 3D plots using gnuplot")
8216 (description "This package provides a Haskell module for creating 2D and
8217 3D plots using gnuplot.")
8218 (license license:bsd-3)))
8219
8220 (define-public ghc-hinotify
8221 (package
8222 (name "ghc-hinotify")
8223 (version "0.3.10")
8224 (source (origin
8225 (method url-fetch)
8226 (uri (string-append
8227 "https://hackage.haskell.org/package/hinotify/"
8228 "hinotify-" version ".tar.gz"))
8229 (sha256
8230 (base32
8231 "17ax3n68a5c2ddazp86aciliskrh6znd3bnry0wcllmb6dbpsaxg"))))
8232 (build-system haskell-build-system)
8233 (inputs
8234 `(("ghc-async" ,ghc-async)))
8235 (home-page "https://github.com/kolmodin/hinotify.git")
8236 (synopsis "Haskell binding to inotify")
8237 (description "This library provides a wrapper to the Linux kernel's inotify
8238 feature, allowing applications to subscribe to notifications when a file is
8239 accessed or modified.")
8240 (license license:bsd-3)))
8241
8242 (define-public ghc-fsnotify
8243 (package
8244 (name "ghc-fsnotify")
8245 (version "0.3.0.1")
8246 (source (origin
8247 (method url-fetch)
8248 (uri (string-append
8249 "https://hackage.haskell.org/package/fsnotify/"
8250 "fsnotify-" version ".tar.gz"))
8251 (sha256
8252 (base32
8253 "19bdbz9wb9jvln6yg6qm0hz0w84bypvkxf0wjhgrgd52f9gidlny"))))
8254 (build-system haskell-build-system)
8255 (inputs
8256 `(("ghc-text" ,ghc-text)
8257 ("ghc-async" ,ghc-async)
8258 ("ghc-unix-compat" ,ghc-unix-compat)
8259 ("ghc-hinotify" ,ghc-hinotify)
8260 ("ghc-tasty" ,ghc-tasty)
8261 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
8262 ("ghc-random" ,ghc-random)
8263 ("ghc-shelly" ,ghc-shelly)
8264 ("ghc-temporary" ,ghc-temporary)))
8265 (home-page "https://github.com/haskell-fswatch/hfsnotify")
8266 (synopsis "Cross platform library for file change notification.")
8267 (description "Cross platform library for file creation, modification, and
8268 deletion notification. This library builds upon existing libraries for platform
8269 specific Windows, Mac, and Linux file system event notification.")
8270 (license license:bsd-3)))
8271
8272 (define-public ghc-ieee754
8273 (package
8274 (name "ghc-ieee754")
8275 (version "0.8.0")
8276 (source (origin
8277 (method url-fetch)
8278 (uri (string-append
8279 "https://hackage.haskell.org/package/ieee754/"
8280 "ieee754-" version ".tar.gz"))
8281 (sha256
8282 (base32
8283 "1lcs521g9lzy9d7337vg4w7q7s8500rfqy7rcifcz6pm6yfgyb8f"))))
8284 (build-system haskell-build-system)
8285 (home-page "https://github.com/patperry/hs-ieee754")
8286 (synopsis "Utilities for dealing with IEEE floating point numbers")
8287 (description "Utilities for dealing with IEEE floating point numbers,
8288 ported from the Tango math library; approximate and exact equality comparisons
8289 for general types.")
8290 (license license:bsd-3)))
8291
8292 (define-public ghc-terminal-size
8293 (package
8294 (name "ghc-terminal-size")
8295 (version "0.3.2.1")
8296 (source (origin
8297 (method url-fetch)
8298 (uri (string-append
8299 "https://hackage.haskell.org/package/terminal-size/"
8300 "terminal-size-" version ".tar.gz"))
8301 (sha256
8302 (base32
8303 "0n4nvj3dbj9gxfnprgish45asn9z4dipv9j98s8i7g2n8yb3xhmm"))))
8304 (build-system haskell-build-system)
8305 (home-page "https://hackage.haskell.org/package/terminal-size")
8306 (synopsis "Get terminal window height and width")
8307 (description "Get terminal window height and width without ncurses
8308 dependency.")
8309 (license license:bsd-3)))
8310
8311 (define-public ghc-language-c
8312 (package
8313 (name "ghc-language-c")
8314 (version "0.8.1")
8315 (source
8316 (origin
8317 (method url-fetch)
8318 (uri (string-append "https://hackage.haskell.org/package/"
8319 "language-c/language-c-" version ".tar.gz"))
8320 (sha256
8321 (base32
8322 "0sdkjj0hq8p69fcdm6ljbjkjvrsrb8a6rl5dq6dj6byj32ajrm3d"))))
8323 (build-system haskell-build-system)
8324 (inputs `(("ghc-syb" ,ghc-syb)))
8325 (native-inputs
8326 `(("ghc-happy" ,ghc-happy)
8327 ("ghc-alex" ,ghc-alex)))
8328 (home-page "https://visq.github.io/language-c/")
8329 (synopsis "Analysis and generation of C code")
8330 (description
8331 "Language C is a Haskell library for the analysis and generation of C code.
8332 It features a complete, well-tested parser and pretty printer for all of C99
8333 and a large set of GNU extensions.")
8334 (license license:bsd-3)))
8335
8336 (define-public ghc-markdown-unlit
8337 (package
8338 (name "ghc-markdown-unlit")
8339 (version "0.5.0")
8340 (source (origin
8341 (method url-fetch)
8342 (uri (string-append
8343 "mirror://hackage/package/markdown-unlit/"
8344 "markdown-unlit-" version ".tar.gz"))
8345 (sha256
8346 (base32
8347 "1gy79vr85vcp13rdjh0hz7zv6daqqffww4j0cqn2lpjjh9xhsbg7"))))
8348 (build-system haskell-build-system)
8349 (inputs
8350 `(("ghc-base-compat" ,ghc-base-compat)
8351 ("ghc-hspec" ,ghc-hspec)
8352 ("ghc-quickcheck" ,ghc-quickcheck)
8353 ("ghc-silently" ,ghc-silently)
8354 ("ghc-stringbuilder" ,ghc-stringbuilder)
8355 ("ghc-temporary" ,ghc-temporary)
8356 ("hspec-discover" ,hspec-discover)))
8357 (home-page "https://github.com/sol/markdown-unlit#readme")
8358 (synopsis "Literate Haskell support for Markdown")
8359 (description "This package allows you to have a README.md that at the
8360 same time is a literate Haskell program.")
8361 (license license:expat)))
8362
8363 (define-public corrode
8364 (let ((commit "b6699fb2fa552a07c6091276285a44133e5c9789"))
8365 (package
8366 (name "corrode")
8367 (version (string-append "0.0.1-" (string-take commit 7)))
8368 (source
8369 (origin
8370 (method git-fetch)
8371 (uri (git-reference
8372 (url "https://github.com/jameysharp/corrode.git")
8373 (commit "b6699fb2fa552a07c6091276285a44133e5c9789")))
8374 (file-name
8375 (string-append name "-" version "-checkout"))
8376 (sha256
8377 (base32 "02v0yyj6sk4gpg2222wzsdqjxn8w66scbnf6b20x0kbmc69qcz4r"))))
8378 (build-system haskell-build-system)
8379 (inputs
8380 `(("ghc-language-c" ,ghc-language-c)
8381 ("ghc-markdown-unlit" ,ghc-markdown-unlit)))
8382 (home-page "https://github.com/jameysharp/corrode")
8383 (synopsis "Automatic semantics-preserving translation from C to Rust")
8384 (description
8385 "This program reads a C source file and prints an equivalent module in
8386 Rust syntax. It is intended to be useful for two different purposes:
8387
8388 @enumerate
8389 @item Partial automation for migrating legacy code that was implemented in C.
8390 @item A new, complementary approach to static analysis for C programs.
8391 @end enumerate\n")
8392 (license license:gpl2+))))
8393
8394 (define-public ghc-wave
8395 (package
8396 (name "ghc-wave")
8397 (version "0.1.5")
8398 (source (origin
8399 (method url-fetch)
8400 (uri (string-append
8401 "https://hackage.haskell.org/package/wave/wave-"
8402 version
8403 ".tar.gz"))
8404 (sha256
8405 (base32
8406 "03zycmwrchhqvi37fdvlzz2d1vl4hy0i8xyys1zznw38qfq0h2i5"))))
8407 (build-system haskell-build-system)
8408 (arguments
8409 '(#:phases
8410 (modify-phases %standard-phases
8411 (add-before 'configure 'update-constraints
8412 (lambda _
8413 (substitute* "wave.cabal"
8414 (("temporary.* < 1\\.3")
8415 "temporary >= 1.1 && < 1.4")))))))
8416 (inputs
8417 `(("ghc-cereal" ,ghc-cereal)
8418 ("ghc-data-default-class"
8419 ,ghc-data-default-class)
8420 ("ghc-quickcheck" ,ghc-quickcheck)
8421 ("ghc-temporary" ,ghc-temporary)))
8422 (native-inputs
8423 `(("hspec-discover" ,hspec-discover)
8424 ("ghc-hspec" ,ghc-hspec)))
8425 (home-page "https://github.com/mrkkrp/wave")
8426 (synopsis "Work with WAVE and RF64 files in Haskell")
8427 (description "This package allows you to work with WAVE and RF64
8428 files in Haskell.")
8429 (license license:bsd-3)))
8430
8431 (define-public ghc-hslogger
8432 (package
8433 (name "ghc-hslogger")
8434 (version "1.2.10")
8435 (source
8436 (origin
8437 (method url-fetch)
8438 (uri (string-append "https://hackage.haskell.org/package/"
8439 "hslogger-" version "/" "hslogger-"
8440 version ".tar.gz"))
8441 (sha256 (base32
8442 "0as5gvlh6pi2gflakp695qnlizyyp059dqrhvjl4gjxalja6xjnp"))))
8443 (build-system haskell-build-system)
8444 (inputs
8445 `(("ghc-network" ,ghc-network)
8446 ("ghc-old-locale" ,ghc-old-locale)))
8447 (native-inputs
8448 `(("ghc-hunit" ,ghc-hunit)))
8449 (home-page "https://software.complete.org/hslogger")
8450 (synopsis "Logging framework for Haskell, similar to Python's logging module")
8451 (description "Hslogger lets each log message have a priority and source be
8452 associated with it. The programmer can then define global handlers that route
8453 or filter messages based on the priority and source. It also has a syslog
8454 handler built in.")
8455 (license license:bsd-3)))
8456
8457 (define-public ghc-unexceptionalio
8458 (package
8459 (name "ghc-unexceptionalio")
8460 (version "0.4.0")
8461 (source
8462 (origin
8463 (method url-fetch)
8464 (uri (string-append "https://hackage.haskell.org/package/"
8465 "unexceptionalio-" version "/" "unexceptionalio-"
8466 version ".tar.gz"))
8467 (sha256 (base32 "09gynk472l7nn5l2w320n4dwigwp0wh0shfp6dyw6r5h2jdxz18p"))))
8468 (build-system haskell-build-system)
8469 (home-page "https://github.com/singpolyma/unexceptionalio")
8470 (synopsis "IO without any non-error, synchronous exceptions")
8471 (description "When you've caught all the exceptions that can be
8472 handled safely, this is what you're left with.")
8473 (license license:isc)))
8474
8475 (define-public ghc-json
8476 (package
8477 (name "ghc-json")
8478 (version "0.9.2")
8479 (source
8480 (origin
8481 (method url-fetch)
8482 (uri (string-append "https://hackage.haskell.org/package/json/"
8483 "json-" version ".tar.gz"))
8484 (sha256
8485 (base32
8486 "13kkfgx58z18jphbg56jn08jn72wi3kvfndlwwx87hqwg7x1dfz6"))))
8487 (build-system haskell-build-system)
8488 (inputs
8489 `(("ghc-syb" ,ghc-syb)
8490 ("ghc-text" ,ghc-text)
8491 ("ghc-parsec" ,ghc-parsec)))
8492 (home-page "https://hackage.haskell.org/package/json")
8493 (synopsis "Serializes Haskell data to and from JSON")
8494 (description "This package provides a parser and pretty printer for
8495 converting between Haskell values and JSON.
8496 JSON (JavaScript Object Notation) is a lightweight data-interchange format.")
8497 (license license:bsd-3)))
8498
8499 (define-public ghc-esqueleto
8500 (let ((version "2.5.3")
8501 (revision "1")
8502 (commit "b81e0d951e510ebffca03c5a58658ad884cc6fbd"))
8503 (package
8504 (name "ghc-esqueleto")
8505 (version (git-version version revision commit))
8506 (source
8507 (origin
8508 (method git-fetch)
8509 (uri (git-reference
8510 (url "https://github.com/bitemyapp/esqueleto")
8511 (commit commit)))
8512 (file-name (git-file-name name version))
8513 (sha256
8514 (base32
8515 "0lz1qxms7cfg5p3j37inlych0r2fwhm8xbarcys3df9m7jy9nixa"))))
8516 (build-system haskell-build-system)
8517 (arguments
8518 `(#:haddock? #f ; Haddock reports an internal error.
8519 #:phases
8520 (modify-phases %standard-phases
8521 ;; This package normally runs tests for the MySQL, PostgreSQL, and
8522 ;; SQLite backends. Since we only have Haskell packages for
8523 ;; SQLite, we remove the other two test suites. FIXME: Add the
8524 ;; other backends and run all three test suites.
8525 (add-before 'configure 'remove-non-sqlite-test-suites
8526 (lambda _
8527 (use-modules (ice-9 rdelim))
8528 (with-atomic-file-replacement "esqueleto.cabal"
8529 (lambda (in out)
8530 (let loop ((line (read-line in 'concat)) (deleting? #f))
8531 (cond
8532 ((eof-object? line) #t)
8533 ((string-every char-set:whitespace line)
8534 (unless deleting? (display line out))
8535 (loop (read-line in 'concat) #f))
8536 ((member line '("test-suite mysql\n"
8537 "test-suite postgresql\n"))
8538 (loop (read-line in 'concat) #t))
8539 (else
8540 (unless deleting? (display line out))
8541 (loop (read-line in 'concat) deleting?)))))))))))
8542 (inputs
8543 `(("ghc-blaze-html" ,ghc-blaze-html)
8544 ("ghc-conduit" ,ghc-conduit)
8545 ("ghc-monad-logger" ,ghc-monad-logger)
8546 ("ghc-persistent" ,ghc-persistent)
8547 ("ghc-resourcet" ,ghc-resourcet)
8548 ("ghc-tagged" ,ghc-tagged)
8549 ("ghc-text" ,ghc-text)
8550 ("ghc-unliftio" ,ghc-unliftio)
8551 ("ghc-unordered-containers" ,ghc-unordered-containers)))
8552 (native-inputs
8553 `(("ghc-hspec" ,ghc-hspec)
8554 ("ghc-persistent-sqlite" ,ghc-persistent-sqlite)
8555 ("ghc-persistent-template" ,ghc-persistent-template)))
8556 (home-page "https://github.com/bitemyapp/esqueleto")
8557 (synopsis "Type-safe embedded domain specific language for SQL queries")
8558 (description "This library provides a type-safe embedded domain specific
8559 language (EDSL) for SQL queries that works with SQL backends as provided by
8560 @code{ghc-persistent}. Its language closely resembles SQL, so you don't have
8561 to learn new concepts, just new syntax, and it's fairly easy to predict the
8562 generated SQL and optimize it for your backend.")
8563 (license license:bsd-3))))
8564
8565 (define-public shellcheck
8566 (package
8567 (name "shellcheck")
8568 (version "0.5.0")
8569 (source
8570 (origin
8571 (method url-fetch)
8572 (uri (string-append
8573 "https://hackage.haskell.org/package/ShellCheck/ShellCheck-"
8574 version ".tar.gz"))
8575 (sha256
8576 (base32
8577 "0z1hscbr11hwkq8k1v0vaa947hb9m6k4cm831jk1gpj8dxrk151b"))
8578 (file-name (string-append name "-" version ".tar.gz"))))
8579 (build-system haskell-build-system)
8580 (inputs
8581 `(("ghc-aeson" ,ghc-aeson)
8582 ("ghc-quickcheck" ,ghc-quickcheck)
8583 ("ghc-parsec" ,ghc-parsec)
8584 ("ghc-regex-tdfa" ,ghc-regex-tdfa)))
8585 (home-page "https://github.com/koalaman/shellcheck")
8586 (synopsis "Static analysis for shell scripts")
8587 (description "@code{shellcheck} provides static analysis for
8588 @command{bash} and @command{sh} shell scripts.
8589 It gives warnings and suggestions in order to:
8590
8591 @enumerate
8592 @item Point out and clarify typical beginner's syntax issues that cause
8593 a shell to give cryptic error messages.
8594 @item Point out and clarify typical intermediate level semantic problems
8595 that cause a shell to behave strangely and counter-intuitively.
8596 @item Point out subtle caveats, corner cases and pitfalls that may cause an
8597 advanced user's otherwise working script to fail under future circumstances.
8598 @end enumerate")
8599 (license license:gpl3+)))
8600
8601 (define-public ghc-simple-sendfile
8602 (package
8603 (name "ghc-simple-sendfile")
8604 (version "0.2.27")
8605 (source
8606 (origin
8607 (method url-fetch)
8608 (uri (string-append "https://hackage.haskell.org/package/"
8609 "simple-sendfile-" version "/"
8610 "simple-sendfile-" version ".tar.gz"))
8611 (sha256
8612 (base32
8613 "1bwwqzcm56m2w4ymsa054sxmpbj76h9pvb0jf8zxp8lr41cp51gn"))))
8614 (build-system haskell-build-system)
8615 (inputs
8616 `(("ghc-conduit" ,ghc-conduit)
8617 ("ghc-conduit-extra" ,ghc-conduit-extra)
8618 ("ghc-network" ,ghc-network)
8619 ("ghc-resourcet" ,ghc-resourcet)))
8620 (native-inputs
8621 `(("ghc-hspec" ,ghc-hspec)
8622 ("hspec-discover" ,hspec-discover)))
8623 (home-page "https://github.com/kazu-yamamoto/simple-sendfile")
8624 (synopsis "Cross platform library for the sendfile system call")
8625 (description "This library tries to call minimum system calls which
8626 are the bottleneck of web servers.")
8627 (license license:bsd-3)))
8628
8629 (define-public ghc-hex
8630 (package
8631 (name "ghc-hex")
8632 (version "0.1.2")
8633 (source
8634 (origin
8635 (method url-fetch)
8636 (uri (string-append "https://hackage.haskell.org/package/"
8637 "hex-" version "/"
8638 "hex-" version ".tar.gz"))
8639 (sha256
8640 (base32
8641 "1v31xiaivrrn0q2jz8919wvkjplv1kxna5ajhsj701fqxm1i5vhj"))))
8642 (build-system haskell-build-system)
8643 (home-page "https://hackage.haskell.org/package/hex")
8644 (synopsis "Convert strings into hexadecimal and back")
8645 (description "This package provides conversion functions between
8646 bytestrings and their hexademical representation.")
8647 (license license:bsd-3)))
8648
8649 (define-public ghc-psqueues
8650 (package
8651 (name "ghc-psqueues")
8652 (version "0.2.7.0")
8653 (source
8654 (origin
8655 (method url-fetch)
8656 (uri (string-append "https://hackage.haskell.org/package/"
8657 "psqueues-" version "/"
8658 "psqueues-" version ".tar.gz"))
8659 (sha256
8660 (base32
8661 "1sjgc9bxh63kkdp59nbirx3xazr02ia5yhp4f4a0jnq1hj465wsc"))))
8662 (build-system haskell-build-system)
8663 (inputs
8664 `(("ghc-hashable" ,ghc-hashable)))
8665 (native-inputs
8666 `(("ghc-hunit" ,ghc-hunit)
8667 ("ghc-quickcheck" ,ghc-quickcheck)
8668 ("ghc-tagged" ,ghc-tagged)
8669 ("ghc-test-framework" ,ghc-test-framework)
8670 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
8671 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
8672 (home-page "https://github.com/jaspervdj/psqueues")
8673 (synopsis "Pure priority search queues")
8674 (description "The psqueues package provides
8675 @uref{https://en.wikipedia.org/wiki/Priority_queue, Priority Search Queues} in
8676 three different flavors:
8677
8678 @itemize
8679 @item @code{OrdPSQ k p v}, which uses the @code{Ord k} instance to provide
8680 fast insertion, deletion and lookup. This implementation is based on Ralf
8681 Hinze's @uref{http://citeseer.ist.psu.edu/hinze01simple.html, A Simple
8682 Implementation Technique for Priority Search Queues}.
8683
8684 Hence, it is similar to the @uref{https://hackage.haskell.org/package/PSQueue,
8685 PSQueue} library, although it is considerably faster and provides a slightly
8686 different API.
8687
8688 @item @code{IntPSQ p v} is a far more efficient implementation. It fixes the
8689 key type to @code{Int} and uses a
8690 @code{https://en.wikipedia.org/wiki/Radix_tree, radix tree} (like @code{IntMap})
8691 with an additional min-heap property.
8692
8693 @item @code{HashPSQ k p v} is a fairly straightforward extension
8694 of @code{IntPSQ}: it simply uses the keys' hashes as indices in the
8695 @code{IntPSQ}. If there are any hash collisions, it uses an
8696 @code{OrdPSQ} to resolve those. The performance of this implementation
8697 is comparable to that of @code{IntPSQ}, but it is more widely
8698 applicable since the keys are not restricted to @code{Int},
8699 but rather to any @code{Hashable} datatype.
8700 @end itemize
8701
8702 Each of the three implementations provides the same API, so they can
8703 be used interchangeably.
8704
8705 Typical applications of Priority Search Queues include:
8706
8707 @itemize
8708 @item Caches, and more specifically LRU Caches;
8709 @item Schedulers;
8710 @item Pathfinding algorithms, such as Dijkstra's and A*.
8711 @end itemize")
8712 (license license:bsd-3)))
8713
8714 (define-public ghc-glob
8715 (package
8716 (name "ghc-glob")
8717 (version "0.9.2")
8718 (source
8719 (origin
8720 (method url-fetch)
8721 (uri (string-append "https://hackage.haskell.org/package/"
8722 "Glob-" version "/"
8723 "Glob-" version ".tar.gz"))
8724 (sha256
8725 (base32
8726 "1rbwcq9w9951qsnp13vqcm9r01yax2yh1wk8s4zxa3ckk9717iwg"))))
8727 (build-system haskell-build-system)
8728 (inputs
8729 `(("ghc-dlist" ,ghc-dlist)
8730 ("ghc-semigroups" ,ghc-semigroups)
8731 ("ghc-transformers-compat" ,ghc-transformers-compat)))
8732 (native-inputs
8733 `(("ghc-hunit" ,ghc-hunit)
8734 ("ghc-quickcheck" ,ghc-quickcheck)
8735 ("ghc-test-framework" ,ghc-test-framework)
8736 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
8737 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
8738 (home-page "http://iki.fi/matti.niemenmaa/glob/")
8739 (synopsis "Haskell library matching glob patterns against file paths")
8740 (description "This package provides a Haskell library for @dfn{globbing}:
8741 matching patterns against file paths.")
8742 (license license:bsd-3)))
8743
8744 (define-public ghc-errors
8745 (package
8746 (name "ghc-errors")
8747 (version "2.3.0")
8748 (source
8749 (origin
8750 (method url-fetch)
8751 (uri (string-append "https://hackage.haskell.org/package/"
8752 "errors-" version "/"
8753 "errors-" version ".tar.gz"))
8754 (sha256
8755 (base32
8756 "0x8znwn31qcx6kqx99wp7bc86kckfb39ncz3zxvj1s07kxlfawk7"))))
8757 (build-system haskell-build-system)
8758 (inputs
8759 `(("ghc-exceptions" ,ghc-exceptions)
8760 ("ghc-text" ,ghc-text)
8761 ("ghc-transformers-compat" ,ghc-transformers-compat)
8762 ("ghc-unexceptionalio" ,ghc-unexceptionalio)
8763 ("ghc-safe" ,ghc-safe)))
8764 (home-page "https://github.com/gabriel439/haskell-errors-library")
8765 (synopsis "Error handling library for Haskell")
8766 (description "This library encourages an error-handling style that
8767 directly uses the type system, rather than out-of-band exceptions.")
8768 (license license:bsd-3)))
8769
8770 (define-public ghc-vector-th-unbox
8771 (package
8772 (name "ghc-vector-th-unbox")
8773 (version "0.2.1.6")
8774 (source
8775 (origin
8776 (method url-fetch)
8777 (uri (string-append "https://hackage.haskell.org/package/"
8778 "vector-th-unbox-" version "/"
8779 "vector-th-unbox-" version ".tar.gz"))
8780 (sha256
8781 (base32
8782 "0d82x55f5vvr1jvaia382m23rs690lg55pvavv8f4ph0y6kd91xy"))))
8783 (build-system haskell-build-system)
8784 (inputs
8785 `(("ghc-vector" ,ghc-vector)
8786 ("ghc-data-default" ,ghc-data-default)))
8787 (home-page "https://github.com/liyang/vector-th-unbox")
8788 (synopsis "Deriver for Data.Vector.Unboxed using Template Haskell")
8789 (description "This Haskell library provides a Template Haskell
8790 deriver for unboxed vectors, given a pair of coercion functions to
8791 and from some existing type with an Unbox instance.")
8792 (license license:bsd-3)))
8793
8794 (define-public ghc-erf
8795 (package
8796 (name "ghc-erf")
8797 (version "2.0.0.0")
8798 (source
8799 (origin
8800 (method url-fetch)
8801 (uri (string-append "https://hackage.haskell.org/package/"
8802 "erf-" version "/"
8803 "erf-" version ".tar.gz"))
8804 (sha256
8805 (base32
8806 "0dxk2r32ajmmc05vaxcp0yw6vgv4lkbmh8jcshncn98xgsfbgw14"))))
8807 (build-system haskell-build-system)
8808 (home-page "https://hackage.haskell.org/package/erf")
8809 (synopsis "The error function, erf, and related functions for Haskell")
8810 (description "This Haskell library provides a type class for the
8811 error function, erf, and related functions. Instances for Float and
8812 Double.")
8813 (license license:bsd-3)))
8814
8815 (define-public ghc-math-functions
8816 (package
8817 (name "ghc-math-functions")
8818 (version "0.2.1.0")
8819 (source
8820 (origin
8821 (method url-fetch)
8822 (uri (string-append "https://hackage.haskell.org/package/"
8823 "math-functions-" version "/"
8824 "math-functions-" version ".tar.gz"))
8825 (sha256
8826 (base32
8827 "1sv5vabsx332v1lpb6v3jv4zrzvpx1n7yprzd8wlcda5vsc5a6zp"))))
8828 (build-system haskell-build-system)
8829 (arguments `(#:tests? #f)) ; FIXME: 1 test fails.
8830 (inputs
8831 `(("ghc-vector" ,ghc-vector)
8832 ("ghc-vector-th-unbox" ,ghc-vector-th-unbox)))
8833 (native-inputs
8834 `(("ghc-hunit" ,ghc-hunit)
8835 ("ghc-quickcheck" ,ghc-quickcheck)
8836 ("ghc-erf" ,ghc-erf)
8837 ("ghc-test-framework" ,ghc-test-framework)
8838 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
8839 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
8840 (home-page "https://github.com/bos/math-functions")
8841 (synopsis "Special functions and Chebyshev polynomials for Haskell")
8842 (description "This Haskell library provides implementations of
8843 special mathematical functions and Chebyshev polynomials. These
8844 functions are often useful in statistical and numerical computing.")
8845 (license license:bsd-3)))
8846
8847 (define-public ghc-mwc-random
8848 (package
8849 (name "ghc-mwc-random")
8850 (version "0.13.6.0")
8851 (source
8852 (origin
8853 (method url-fetch)
8854 (uri (string-append "https://hackage.haskell.org/package/"
8855 "mwc-random-" version "/"
8856 "mwc-random-" version ".tar.gz"))
8857 (sha256
8858 (base32
8859 "05j7yh0hh9nxic3dijmzv44kc6gzclvamdph7sq7w19wq57k6pq6"))))
8860 (build-system haskell-build-system)
8861 (inputs
8862 `(("ghc-primitive" ,ghc-primitive)
8863 ("ghc-vector" ,ghc-vector)
8864 ("ghc-math-functions" ,ghc-math-functions)))
8865 (arguments
8866 `(#:tests? #f)) ; FIXME: Test-Suite `spec` fails.
8867 (native-inputs
8868 `(("ghc-hunit" ,ghc-hunit)
8869 ("ghc-quickcheck" ,ghc-quickcheck)
8870 ("ghc-test-framework" ,ghc-test-framework)
8871 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
8872 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
8873 (home-page "https://github.com/bos/mwc-random")
8874 (synopsis "Random number generation library for Haskell")
8875 (description "This Haskell package contains code for generating
8876 high quality random numbers that follow either a uniform or normal
8877 distribution. The generated numbers are suitable for use in
8878 statistical applications.
8879
8880 The uniform PRNG uses Marsaglia's MWC256 (also known as MWC8222)
8881 multiply-with-carry generator, which has a period of 2^{8222} and
8882 fares well in tests of randomness. It is also extremely fast,
8883 between 2 and 3 times faster than the Mersenne Twister.")
8884 (license license:bsd-3)))
8885
8886 (define-public ghc-vector-algorithms
8887 (package
8888 (name "ghc-vector-algorithms")
8889 (version "0.7.0.4")
8890 (source
8891 (origin
8892 (method url-fetch)
8893 (uri (string-append "https://hackage.haskell.org/package/"
8894 "vector-algorithms-" version "/"
8895 "vector-algorithms-" version ".tar.gz"))
8896 (sha256
8897 (base32
8898 "0mfa8ig9v69l41p2vb5jl4qmaln5y1rlzarr2mlgm8g1nvq8qqdg"))))
8899 (build-system haskell-build-system)
8900 (inputs
8901 `(("ghc-vector" ,ghc-vector)))
8902 (native-inputs
8903 `(("ghc-quickcheck" ,ghc-quickcheck)))
8904 (home-page "https://github.com/bos/math-functions")
8905 (synopsis "Algorithms for vector arrays in Haskell")
8906 (description "This Haskell library algorithms for vector arrays.")
8907 (license license:bsd-3)))
8908
8909 (define-public ghc-language-haskell-extract
8910 (package
8911 (name "ghc-language-haskell-extract")
8912 (version "0.2.4")
8913 (source
8914 (origin
8915 (method url-fetch)
8916 (uri (string-append "https://hackage.haskell.org/package/"
8917 "language-haskell-extract-" version "/"
8918 "language-haskell-extract-" version ".tar.gz"))
8919 (sha256
8920 (base32
8921 "1nxcs7g8a1sp91bzpy4cj6s31k5pvc3gvig04cbrggv5cvjidnhl"))))
8922 (build-system haskell-build-system)
8923 (inputs
8924 `(("ghc-regex-posix" ,ghc-regex-posix)))
8925 (home-page "https://github.com/finnsson/template-helper")
8926 (synopsis "Haskell module to automatically extract functions from
8927 the local code")
8928 (description "This package contains helper functions on top of
8929 Template Haskell.
8930
8931 For example, @code{functionExtractor} extracts all functions after a
8932 regexp-pattern, which can be useful if you wish to extract all functions
8933 beginning with @code{test} (for a test framework) or all functions beginning
8934 with @code{wc} (for a web service).")
8935 (license license:bsd-3)))
8936
8937 (define-public ghc-abstract-par
8938 (package
8939 (name "ghc-abstract-par")
8940 (version "0.3.3")
8941 (source
8942 (origin
8943 (method url-fetch)
8944 (uri (string-append "https://hackage.haskell.org/package/"
8945 "abstract-par-" version "/"
8946 "abstract-par-" version ".tar.gz"))
8947 (sha256
8948 (base32
8949 "0q6qsniw4wks2pw6wzncb1p1j3k6al5njnvm2v5n494hplwqg2i4"))))
8950 (build-system haskell-build-system)
8951 (home-page "https://github.com/simonmar/monad-par")
8952 (synopsis "Abstract parallelization interface for Haskell")
8953 (description "This Haskell package is an abstract interface
8954 only. It provides a number of type clasess, but not an
8955 implementation. The type classes separate different levels
8956 of @code{Par} functionality. See the @code{Control.Monad.Par.Class}
8957 module for more details.")
8958 (license license:bsd-3)))
8959
8960 (define-public ghc-monad-par-extras
8961 (package
8962 (name "ghc-monad-par-extras")
8963 (version "0.3.3")
8964 (source
8965 (origin
8966 (method url-fetch)
8967 (uri (string-append "https://hackage.haskell.org/package/"
8968 "monad-par-extras-" version "/"
8969 "monad-par-extras-" version ".tar.gz"))
8970 (sha256
8971 (base32
8972 "0bl4bd6jzdc5zm20q1g67ppkfh6j6yn8fwj6msjayj621cck67p2"))))
8973 (build-system haskell-build-system)
8974 (inputs `(("ghc-abstract-par" ,ghc-abstract-par)
8975 ("ghc-cereal" ,ghc-cereal)
8976 ("ghc-random" ,ghc-random)))
8977 (home-page "https://github.com/simonmar/monad-par")
8978 (synopsis "Combinators and extra features for Par monads for Haskell")
8979 (description "This Haskell package provides additional data structures,
8980 and other added capabilities layered on top of the @code{Par} monad.")
8981 (license license:bsd-3)))
8982
8983 (define-public ghc-abstract-deque
8984 (package
8985 (name "ghc-abstract-deque")
8986 (version "0.3")
8987 (source
8988 (origin
8989 (method url-fetch)
8990 (uri (string-append "https://hackage.haskell.org/package/"
8991 "abstract-deque-" version "/"
8992 "abstract-deque-" version ".tar.gz"))
8993 (sha256
8994 (base32
8995 "18jwswjxwzc9bjiy4ds6hw2a74ki797jmfcifxd2ga4kh7ri1ah9"))))
8996 (build-system haskell-build-system)
8997 (inputs `(("ghc-random" ,ghc-random)))
8998 (home-page "https://github.com/rrnewton/haskell-lockfree/wiki")
8999 (synopsis "Abstract, parameterized interface to mutable Deques for Haskell")
9000 (description "This Haskell package provides an abstract interface to
9001 highly-parameterizable queues/deques.
9002
9003 Background: There exists a feature space for queues that extends between:
9004
9005 @itemize
9006 @item Simple, single-ended, non-concurrent, bounded queues
9007
9008 @item Double-ended, thread-safe, growable queues with important points
9009 in between (such as the queues used for work stealing).
9010 @end itemize
9011
9012 This package includes an interface for Deques that allows the programmer
9013 to use a single API for all of the above, while using the type system to
9014 select an efficient implementation given the requirements (using type families).
9015
9016 This package also includes a simple reference implementation based on
9017 @code{IORef} and @code{Data.Sequence}.")
9018 (license license:bsd-3)))
9019
9020 (define-public ghc-monad-par
9021 (package
9022 (name "ghc-monad-par")
9023 (version "0.3.4.8")
9024 (source
9025 (origin
9026 (method url-fetch)
9027 (uri (string-append "https://hackage.haskell.org/package/"
9028 "monad-par-" version "/"
9029 "monad-par-" version ".tar.gz"))
9030 (sha256
9031 (base32
9032 "0ldrzqy24fsszvn2a2nr77m2ih7xm0h9bgkjyv1l274aj18xyk7q"))))
9033 (build-system haskell-build-system)
9034 (inputs `(("ghc-abstract-par" ,ghc-abstract-par)
9035 ("ghc-abstract-deque" ,ghc-abstract-deque)
9036 ("ghc-monad-par-extras" ,ghc-monad-par-extras)
9037 ("ghc-mwc-random" ,ghc-mwc-random)
9038 ("ghc-parallel" ,ghc-parallel)))
9039 (native-inputs `(("ghc-quickcheck" ,ghc-quickcheck)
9040 ("ghc-hunit" ,ghc-hunit)
9041 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
9042 ("ghc-test-framework-quickcheck2"
9043 ,ghc-test-framework-quickcheck2)
9044 ("ghc-test-framework" ,ghc-test-framework)
9045 ("ghc-test-framework-th" ,ghc-test-framework-th)))
9046 (home-page "https://github.com/simonmar/monad-par")
9047 (synopsis "Haskell library for parallel programming based on a monad")
9048 (description "The @code{Par} monad offers an API for parallel
9049 programming. The library works for parallelising both pure and @code{IO}
9050 computations, although only the pure version is deterministic. The default
9051 implementation provides a work-stealing scheduler and supports forking tasks
9052 that are much lighter weight than IO-threads.")
9053 (license license:bsd-3)))
9054
9055 (define-public ghc-statistics
9056 (package
9057 (name "ghc-statistics")
9058 (version "0.14.0.2")
9059 (source
9060 (origin
9061 (method url-fetch)
9062 (uri (string-append "https://hackage.haskell.org/package/"
9063 "statistics-" version "/"
9064 "statistics-" version ".tar.gz"))
9065 (sha256
9066 (base32
9067 "0y27gafkib0x0fn39qfn2rkgsfrm09ng35sbb5dwr7rclhnxz59l"))))
9068 (build-system haskell-build-system)
9069 (arguments
9070 '(#:cabal-revision
9071 ("2" "1bx70yqkn62ii17fjv3pig4hklrzkqd09zj67zzjiyjzmn04fir3")
9072 ;; Two tests fail: "Discrete CDF is OK" and "Quantile is CDF inverse".
9073 #:tests? #f))
9074 (inputs
9075 `(("ghc-aeson" ,ghc-aeson)
9076 ("ghc-base-orphans" ,ghc-base-orphans)
9077 ("ghc-erf" ,ghc-erf)
9078 ("ghc-math-functions" ,ghc-math-functions)
9079 ("ghc-monad-par" ,ghc-monad-par)
9080 ("ghc-mwc-random" ,ghc-mwc-random)
9081 ("ghc-primitive" ,ghc-primitive)
9082 ("ghc-vector" ,ghc-vector)
9083 ("ghc-vector-algorithms" ,ghc-vector-algorithms)
9084 ("ghc-vector-th-unbox" ,ghc-vector-th-unbox)
9085 ("ghc-vector-binary-instances" ,ghc-vector-binary-instances)))
9086 (native-inputs
9087 `(("ghc-hunit" ,ghc-hunit)
9088 ("ghc-quickcheck" ,ghc-quickcheck)
9089 ("ghc-ieee754" ,ghc-ieee754)
9090 ("ghc-test-framework" ,ghc-test-framework)
9091 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
9092 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
9093 (home-page "https://github.com/bos/mwc-random")
9094 (synopsis "Haskell library of statistical types, data, and functions")
9095 (description "This library provides a number of common functions
9096 and types useful in statistics. We focus on high performance, numerical
9097 robustness, and use of good algorithms. Where possible, we provide references
9098 to the statistical literature.
9099
9100 The library's facilities can be divided into four broad categories:
9101
9102 @itemize
9103 @item Working with widely used discrete and continuous probability
9104 distributions. (There are dozens of exotic distributions in use; we focus
9105 on the most common.)
9106
9107 @item Computing with sample data: quantile estimation, kernel density
9108 estimation, histograms, bootstrap methods, significance testing,
9109 and regression and autocorrelation analysis.
9110
9111 @item Random variate generation under several different distributions.
9112
9113 @item Common statistical tests for significant differences between samples.
9114 @end itemize")
9115 (license license:bsd-2)))
9116
9117 (define-public ghc-chunked-data
9118 (package
9119 (name "ghc-chunked-data")
9120 (version "0.3.1")
9121 (source
9122 (origin
9123 (method url-fetch)
9124 (uri (string-append "https://hackage.haskell.org/package/"
9125 "chunked-data-" version "/"
9126 "chunked-data-" version ".tar.gz"))
9127 (sha256
9128 (base32
9129 "16m7y7fwrirbjbqqcsfmr4yxa9qvfax6r7pw0zl9ky71ms0wa47p"))))
9130 (build-system haskell-build-system)
9131 (inputs `(("ghc-vector" ,ghc-vector)
9132 ("ghc-semigroups" ,ghc-semigroups)
9133 ("ghc-text" ,ghc-text)))
9134 (home-page "https://github.com/snoyberg/mono-traversable")
9135 (synopsis "Typeclasses for dealing with various chunked data
9136 representations for Haskell")
9137 (description "This Haskell package was originally present in
9138 classy-prelude.")
9139 (license license:expat)))
9140
9141 (define-public ghc-base-prelude
9142 (package
9143 (name "ghc-base-prelude")
9144 (version "1.3")
9145 (source
9146 (origin
9147 (method url-fetch)
9148 (uri (string-append "https://hackage.haskell.org/package/"
9149 "base-prelude-" version "/"
9150 "base-prelude-" version ".tar.gz"))
9151 (sha256
9152 (base32
9153 "1zk728sd09hh2r4xwz4lazsrrgg5cshydn64932sm0vckplndk73"))))
9154 (build-system haskell-build-system)
9155 (home-page "https://github.com/nikita-volkov/base-prelude")
9156 (synopsis "The most complete prelude formed solely from the Haskell's base
9157 package")
9158 (description "This Haskell package aims to reexport all the non-conflicting
9159 and most general definitions from the \"base\" package.
9160
9161 This includes APIs for applicatives, arrows, monoids, foldables, traversables,
9162 exceptions, generics, ST, MVars and STM.
9163
9164 This package will never have any dependencies other than \"base\".
9165
9166 Versioning policy:
9167
9168 The versioning policy of this package deviates from PVP in the sense
9169 that its exports in part are transitively determined by the version of \"base\".
9170 Therefore it's recommended for the users of @code{ghc-base-prelude} to specify
9171 the bounds of \"base\" as well.")
9172 (license license:expat)))
9173
9174 (define-public ghc-tuple-th
9175 (package
9176 (name "ghc-tuple-th")
9177 (version "0.2.5")
9178 (source
9179 (origin
9180 (method url-fetch)
9181 (uri (string-append "https://hackage.haskell.org/package/"
9182 "tuple-th-" version "/"
9183 "tuple-th-" version ".tar.gz"))
9184 (sha256
9185 (base32
9186 "1mrl4vvxmby7sf1paf7hklzidnr6wq55822i73smqyz0xpf3gsjn"))))
9187 (build-system haskell-build-system)
9188 (home-page "https://github.com/DanielSchuessler/tuple-th")
9189 (synopsis "Generate utility functions for tuples of statically known size
9190 for Haskell")
9191 (description "This Haskell package contains Template Haskell functions for
9192 generating functions similar to those in @code{Data.List} for tuples of
9193 statically known size.")
9194 (license license:bsd-3)))
9195
9196 (define-public ghc-contravariant-extras
9197 (package
9198 (name "ghc-contravariant-extras")
9199 (version "0.3.4")
9200 (source
9201 (origin
9202 (method url-fetch)
9203 (uri (string-append "https://hackage.haskell.org/package/"
9204 "contravariant-extras-" version "/"
9205 "contravariant-extras-" version ".tar.gz"))
9206 (sha256
9207 (base32
9208 "0gg62ccl94kvh7mnvdq09pifqxjx2kgs189si90nmg44bafj7a9n"))))
9209 (build-system haskell-build-system)
9210 (inputs
9211 `(("ghc-tuple-th" ,ghc-tuple-th)
9212 ("ghc-contravariant" ,ghc-contravariant)
9213 ("ghc-base-prelude" ,ghc-base-prelude)
9214 ("ghc-semigroups" ,ghc-semigroups)))
9215 (home-page "https://github.com/nikita-volkov/contravariant-extras")
9216 (synopsis "Extras for the @code{ghc-contravariant} Haskell package")
9217 (description "This Haskell package provides extras for the
9218 @code{ghc-contravariant} package.")
9219 (license license:expat)))
9220
9221 (define-public ghc-monadrandom
9222 (package
9223 (name "ghc-monadrandom")
9224 (version "0.5.1.1")
9225 (source
9226 (origin
9227 (method url-fetch)
9228 (uri (string-append "https://hackage.haskell.org/package/"
9229 "MonadRandom-" version "/"
9230 "MonadRandom-" version ".tar.gz"))
9231 (sha256
9232 (base32
9233 "0w44jl1n3kqvqaflh82l1wj3xxbhzfs3kf4m8rk7w6fgg8llmnmb"))))
9234 (build-system haskell-build-system)
9235 (inputs `(("ghc-transformers-compat" ,ghc-transformers-compat)
9236 ("ghc-primitive" ,ghc-primitive)
9237 ("ghc-fail" ,ghc-fail)
9238 ("ghc-random" ,ghc-random)))
9239 (home-page "https://github.com/byorgey/MonadRandom")
9240 (synopsis "Random-number generation monad for Haskell")
9241 (description "This Haskell package provides support for computations
9242 which consume random values.")
9243 (license license:bsd-3)))
9244
9245 (define-public ghc-either
9246 (package
9247 (name "ghc-either")
9248 (version "5.0.1")
9249 (source
9250 (origin
9251 (method url-fetch)
9252 (uri (string-append "https://hackage.haskell.org/package/"
9253 "either-" version "/"
9254 "either-" version ".tar.gz"))
9255 (sha256
9256 (base32
9257 "064hjfld7dkzs78sy30k5qkiva3hx24rax6dvzz5ygr2c0zypdkc"))))
9258 (build-system haskell-build-system)
9259 (inputs `(("ghc-bifunctors" ,ghc-bifunctors)
9260 ("ghc-exceptions" ,ghc-exceptions)
9261 ("ghc-free" ,ghc-free)
9262 ("ghc-monad-control" ,ghc-monad-control)
9263 ("ghc-manodrandom" ,ghc-monadrandom)
9264 ("ghc-mmorph" ,ghc-mmorph)
9265 ("ghc-profunctors" ,ghc-profunctors)
9266 ("ghc-semigroups" ,ghc-semigroups)
9267 ("ghc-semigroupoids" ,ghc-semigroupoids)
9268 ("ghc-transformers-base" ,ghc-transformers-base)))
9269 (native-inputs
9270 `(("ghc-quickcheck" ,ghc-quickcheck)
9271 ("ghc-test-framework" ,ghc-test-framework)
9272 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
9273 (home-page "https://github.com/ekmett/either")
9274 (synopsis "Provides an either monad transformer for Haskell")
9275 (description "This Haskell package provides an either monad transformer.")
9276 (license license:bsd-3)))
9277
9278 (define-public ghc-pretty-hex
9279 (package
9280 (name "ghc-pretty-hex")
9281 (version "1.0")
9282 (source
9283 (origin
9284 (method url-fetch)
9285 (uri (string-append "https://hackage.haskell.org/package/"
9286 "pretty-hex-" version "/"
9287 "pretty-hex-" version ".tar.gz"))
9288 (sha256
9289 (base32
9290 "0ylwkvvjvmpprha9nx83xb8gkhyanhk5fffc0r7lb96n4ch5z6pz"))))
9291 (build-system haskell-build-system)
9292 (home-page "https://github.com/GaloisInc/hexdump")
9293 (synopsis "Haskell library for hex dumps of ByteStrings")
9294 (description "This Haskell library generates pretty hex dumps of
9295 ByteStrings in the style of other common *nix hex dump tools.")
9296 (license license:bsd-3)))
9297
9298 (define-public ghc-network-info
9299 (package
9300 (name "ghc-network-info")
9301 (version "0.2.0.10")
9302 (source
9303 (origin
9304 (method url-fetch)
9305 (uri (string-append "https://hackage.haskell.org/package/"
9306 "network-info-" version "/"
9307 "network-info-" version ".tar.gz"))
9308 (sha256
9309 (base32
9310 "0anmgzcpnz7nw3n6vq0r25m1s9l2svpwi83wza0lzkrlbnbzd02n"))))
9311 (build-system haskell-build-system)
9312 (home-page "https://github.com/jystic/network-info")
9313 (synopsis "Access the local computer's basic network configuration")
9314 (description "This Haskell library provides simple read-only access to the
9315 local computer's networking configuration. It is currently capable of
9316 getting a list of all the network interfaces and their respective
9317 IPv4, IPv6 and MAC addresses.")
9318 (license license:bsd-3)))
9319
9320 (define-public ghc-uuid-types
9321 (package
9322 (name "ghc-uuid-types")
9323 (version "1.0.3")
9324 (source
9325 (origin
9326 (method url-fetch)
9327 (uri (string-append "https://hackage.haskell.org/package/"
9328 "uuid-types-" version "/"
9329 "uuid-types-" version ".tar.gz"))
9330 (sha256
9331 (base32
9332 "1zdka5jnm1h6k36w3nr647yf3b5lqb336g3fkprhd6san9x52xlj"))))
9333 (build-system haskell-build-system)
9334 (arguments
9335 `(#:phases
9336 (modify-phases %standard-phases
9337 (add-before 'configure 'strip-test-framework-constraints
9338 (lambda _
9339 (substitute* "uuid-types.cabal"
9340 (("HUnit >=1\\.2 && < 1\\.4") "HUnit")
9341 (("QuickCheck >=2\\.4 && < 2\\.9") "QuickCheck")
9342 (("tasty >= 0\\.10 && < 0\\.12") "tasty")
9343 (("tasty-hunit == 0\\.9\\.\\*") "tasty-hunit")
9344 (("tasty-quickcheck == 0\\.8\\.\\*") "tasty-quickcheck")))))))
9345 (inputs `(("ghc-hashable" ,ghc-hashable)
9346 ("ghc-random" ,ghc-random)
9347 ("ghc-text" ,ghc-text)))
9348 (native-inputs `(("ghc-hunit" ,ghc-hunit)
9349 ("ghc-quickcheck" ,ghc-quickcheck)
9350 ("ghc-tasty" ,ghc-tasty)
9351 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
9352 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
9353 (home-page "https://github.com/hvr/uuid")
9354 (synopsis "Haskell type definitions for UUIDs")
9355 (description "This Haskell library contains type definitions for
9356 @dfn{Universally Unique Identifiers} or
9357 @uref{https://en.wikipedia.org/wiki/UUID, UUIDs}, and basic conversion
9358 functions.")
9359 (license license:bsd-3)))
9360
9361 (define-public ghc-uuid
9362 (package
9363 (name "ghc-uuid")
9364 (version "1.3.13")
9365 (source
9366 (origin
9367 (method url-fetch)
9368 (uri (string-append "https://hackage.haskell.org/package/"
9369 "uuid-" version "/"
9370 "uuid-" version ".tar.gz"))
9371 (sha256
9372 (base32
9373 "09xhk42yhxvqmka0iqrv3338asncz8cap3j0ic0ps896f2581b6z"))))
9374 (build-system haskell-build-system)
9375 (arguments
9376 `(#:cabal-revision
9377 ("2" "0m185q62jkfb5jsv358nxbnrkv8y8hd0qqvgvh22wvc5g9ipz0r9")
9378 #:phases
9379 (modify-phases %standard-phases
9380 (add-before 'configure 'strip-test-framework-constraints
9381 (lambda _
9382 (substitute* "uuid.cabal"
9383 (("HUnit >= 1\\.2 && < 1\\.4") "HUnit")
9384 (("QuickCheck >= 2\\.4 && < 2\\.10") "QuickCheck")
9385 (("tasty >= 0\\.10 && < 0\\.12") "tasty")
9386 (("tasty-hunit == 0\\.9\\.\\*") "tasty-hunit")
9387 (("tasty-quickcheck == 0\\.8\\.\\*") "tasty-quickcheck")))))))
9388 (inputs `(("ghc-cryptohash-sha1" ,ghc-cryptohash-sha1)
9389 ("ghc-cryptohash-md5" ,ghc-cryptohash-md5)
9390 ("ghc-entropy" ,ghc-entropy)
9391 ("ghc-network-info" ,ghc-network-info)
9392 ("ghc-random" ,ghc-random)
9393 ("ghc-text" ,ghc-text)
9394 ("ghc-uuid-types" ,ghc-uuid-types)))
9395 (native-inputs `(("ghc-hunit" ,ghc-hunit)
9396 ("ghc-quickcheck" ,ghc-quickcheck)
9397 ("ghc-tasty" ,ghc-tasty)
9398 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
9399 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
9400 (home-page "https://github.com/hvr/uuid")
9401 (synopsis "Haskell library to create, compare, parse, and print UUIDs")
9402 (description "This Haskell library provides utilities creating, comparing,
9403 parsing and printing @dfn{Universally Unique Identifiers} or UUIDs.")
9404 (license license:bsd-3)))
9405
9406 (define-public ghc-rebase
9407 (package
9408 (name "ghc-rebase")
9409 (version "1.2.4")
9410 (source
9411 (origin
9412 (method url-fetch)
9413 (uri (string-append "https://hackage.haskell.org/package/"
9414 "rebase-" version "/"
9415 "rebase-" version ".tar.gz"))
9416 (sha256
9417 (base32
9418 "1gah2qwfpzwamnikbc5h4nv6dgvv9h16di9ka7946za3nibyasya"))))
9419 (build-system haskell-build-system)
9420 (inputs `(("ghc-stm" ,ghc-stm)
9421 ("ghc-hashable" ,ghc-hashable)
9422 ("ghc-vector" ,ghc-vector)
9423 ("ghc-unordered-containers" ,ghc-unordered-containers)
9424 ("ghc-text" ,ghc-text)
9425 ("ghc-scientific" ,ghc-scientific)
9426 ("ghc-uuid" ,ghc-uuid)
9427 ("ghc-dlist" ,ghc-dlist)
9428 ("ghc-void" ,ghc-void)
9429 ("ghc-bifunctors" ,ghc-bifunctors)
9430 ("ghc-profunctors" ,ghc-profunctors)
9431 ("ghc-contravariant" ,ghc-contravariant)
9432 ("ghc-contravariant-extras" ,ghc-contravariant-extras)
9433 ("ghc-semigroups" ,ghc-semigroups)
9434 ("ghc-either" ,ghc-either)
9435 ("ghc-fail" ,ghc-fail)
9436 ("ghc-base-prelude" ,ghc-base-prelude)))
9437 (home-page "https://github.com/nikita-volkov/rebase")
9438 (synopsis "Progressive alternative to the base package
9439 for Haskell")
9440 (description "This Haskell package is intended for those who are
9441 tired of keeping long lists of dependencies to the same essential libraries
9442 in each package as well as the endless imports of the same APIs all over again.
9443
9444 It also supports the modern tendencies in the language.
9445
9446 To solve those problems this package does the following:
9447
9448 @itemize
9449 @item Reexport the original APIs under the @code{Rebase} namespace.
9450
9451 @item Export all the possible non-conflicting symbols from the
9452 @code{Rebase.Prelude} module.
9453
9454 @item Give priority to the modern practices in the conflicting cases.
9455 @end itemize
9456
9457 The policy behind the package is only to reexport the non-ambiguous and
9458 non-controversial APIs, which the community has obviously settled on.
9459 The package is intended to rapidly evolve with the contribution from
9460 the community, with the missing features being added with pull-requests.")
9461 (license license:expat)))
9462
9463 (define-public ghc-rerebase
9464 (package
9465 (name "ghc-rerebase")
9466 (version "1.2.2")
9467 (source
9468 (origin
9469 (method url-fetch)
9470 (uri (string-append
9471 "https://hackage.haskell.org/package/rerebase/rerebase-"
9472 version ".tar.gz"))
9473 (sha256
9474 (base32
9475 "11v6rmz7ql2rdx6mhb3lsal952lwihclfhh0m7fcnii5br0906ks"))))
9476 (build-system haskell-build-system)
9477 (inputs
9478 `(("ghc-rebase" ,ghc-rebase)))
9479 (home-page "https://github.com/nikita-volkov/rerebase")
9480 (synopsis "Reexports from ``base'' with many other standard libraries")
9481 (description "A rich drop-in replacement for @code{base}. For details and
9482 documentation please visit @uref{https://github.com/nikita-volkov/rerebase,
9483 the project's home page}.")
9484 (license license:expat)))
9485
9486 (define-public ghc-vector-builder
9487 (package
9488 (name "ghc-vector-builder")
9489 (version "0.3.6")
9490 (source
9491 (origin
9492 (method url-fetch)
9493 (uri (string-append "https://hackage.haskell.org/package/"
9494 "vector-builder-" version "/"
9495 "vector-builder-" version ".tar.gz"))
9496 (sha256
9497 (base32
9498 "06d2pa1fb3ydrl7l6rjazqyxv5i73v65x2f5fp0ypjxfbm6jsmn8"))))
9499 (build-system haskell-build-system)
9500 (inputs `(("ghc-vector" ,ghc-vector)
9501 ("ghc-semigroups" ,ghc-semigroups)
9502 ("ghc-base-prelude" ,ghc-base-prelude)))
9503 (native-inputs `(("ghc-attoparsec" ,ghc-attoparsec)
9504 ("ghc-tasty" ,ghc-tasty)
9505 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
9506 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
9507 ("ghc-hunit" ,ghc-hunit)
9508 ("ghc-quickcheck-instances" ,ghc-quickcheck-instances)
9509 ("ghc-rerebase" ,ghc-rerebase)))
9510 (home-page "https://github.com/nikita-volkov/vector-builder")
9511 (synopsis "Vector builder for Haskell")
9512 (description "This Haskell package provides an API for constructing vectors.
9513 It provides the composable @code{Builder} abstraction, which has instances of the
9514 @code{Monoid} and @code{Semigroup} classes.
9515
9516 You would first use the @code{Builder} abstraction to specify the structure of
9517 the vector; then you can execute the builder to actually produce the
9518 vector. ")
9519 (license license:expat)))
9520
9521 (define-public ghc-foldl
9522 (package
9523 (name "ghc-foldl")
9524 (version "1.4.3")
9525 (source
9526 (origin
9527 (method url-fetch)
9528 (uri (string-append "https://hackage.haskell.org/package/"
9529 "foldl-" version "/"
9530 "foldl-" version ".tar.gz"))
9531 (sha256
9532 (base32
9533 "13n0ca3hw5jzqf6rxsdbhbwkn61a9zlm13f0f205s60j3sc72jzk"))))
9534 (build-system haskell-build-system)
9535 (inputs `(("ghc-mwc-randam" ,ghc-mwc-random)
9536 ("ghc-primitive" ,ghc-primitive)
9537 ("ghc-text" ,ghc-text)
9538 ("ghc-vector" ,ghc-vector)
9539 ("ghc-unordered-containers" ,ghc-unordered-containers)
9540 ("ghc-hashable" ,ghc-hashable)
9541 ("ghc-contravariant" ,ghc-contravariant)
9542 ("ghc-semigroups" ,ghc-semigroups)
9543 ("ghc-profunctors" ,ghc-profunctors)
9544 ("ghc-semigroupoids" ,ghc-semigroupoids)
9545 ("ghc-comonad" ,ghc-comonad)
9546 ("ghc-vector-builder" ,ghc-vector-builder)))
9547 (home-page "https://github.com/Gabriel439/Haskell-Foldl-Library")
9548 (synopsis "Composable, streaming, and efficient left folds for Haskell")
9549 (description "This Haskell library provides strict left folds that stream
9550 in constant memory, and you can combine folds using @code{Applicative} style
9551 to derive new folds. Derived folds still traverse the container just once
9552 and are often as efficient as hand-written folds.")
9553 (license license:bsd-3)))
9554
9555 (define-public ghc-mono-traversable
9556 (package
9557 (name "ghc-mono-traversable")
9558 (version "1.0.9.0")
9559 (source
9560 (origin
9561 (method url-fetch)
9562 (uri (string-append "https://hackage.haskell.org/package/"
9563 "mono-traversable-" version "/"
9564 "mono-traversable-" version ".tar.gz"))
9565 (sha256
9566 (base32
9567 "0180ks0dyvpk1r20w5jw2w2n79mjnk69n9vhspaxzlyxqgim5psa"))))
9568 (build-system haskell-build-system)
9569 (inputs `(("ghc-unordered-containers" ,ghc-unordered-containers)
9570 ("ghc-hashable" ,ghc-hashable)
9571 ("ghc-text" ,ghc-text)
9572 ("ghc-vector" ,ghc-vector)
9573 ("ghc-vector-algorithms" ,ghc-vector-algorithms)
9574 ("ghc-split" ,ghc-split)))
9575 (native-inputs `(("ghc-hspec" ,ghc-hspec)
9576 ("ghc-hunit" ,ghc-hunit)
9577 ("ghc-quickcheck" ,ghc-quickcheck)
9578 ("ghc-semigroups" ,ghc-semigroups)
9579 ("ghc-foldl" ,ghc-foldl)))
9580 (home-page "https://github.com/snoyberg/mono-traversable")
9581 (synopsis "Haskell classes for mapping, folding, and traversing monomorphic
9582 containers")
9583 (description "This Haskell package provides Monomorphic variants of the
9584 Functor, Foldable, and Traversable typeclasses. If you understand Haskell's
9585 basic typeclasses, you understand mono-traversable. In addition to what
9586 you are used to, it adds on an IsSequence typeclass and has code for marking
9587 data structures as non-empty.")
9588 (license license:expat)))
9589
9590 (define-public ghc-conduit-combinators
9591 (package
9592 (name "ghc-conduit-combinators")
9593 (version "1.3.0")
9594 (source
9595 (origin
9596 (method url-fetch)
9597 (uri (string-append "https://hackage.haskell.org/package/"
9598 "conduit-combinators-" version "/"
9599 "conduit-combinators-" version ".tar.gz"))
9600 (sha256
9601 (base32
9602 "1lz70vwp4y4lpsivxl0cshq7aq3968rh48r6rjvpyaj2l0bdj5wp"))))
9603 (build-system haskell-build-system)
9604 (inputs `(("ghc-conduit" ,ghc-conduit)
9605 ("ghc-conduit-extra" ,ghc-conduit-extra)
9606 ("ghc-transformers-base" ,ghc-transformers-base)
9607 ("ghc-primitive" ,ghc-primitive)
9608 ("ghc-vector" ,ghc-vector)
9609 ("ghc-text" ,ghc-text)
9610 ("ghc-void" ,ghc-void)
9611 ("ghc-mwc-random" ,ghc-mwc-random)
9612 ("ghc-unix-compat" ,ghc-unix-compat)
9613 ("ghc-base16-bytestring" ,ghc-base16-bytestring)
9614 ("ghc-base64-bytestring" ,ghc-base64-bytestring)
9615 ("ghc-resourcet" ,ghc-resourcet)
9616 ("ghc-monad-control" ,ghc-monad-control)
9617 ("ghc-chunked-data" ,ghc-chunked-data)
9618 ("ghc-mono-traversable" ,ghc-mono-traversable)))
9619 (native-inputs `(("ghc-hspec" ,ghc-hspec)
9620 ("ghc-silently" ,ghc-silently)
9621 ("ghc-safe" ,ghc-safe)
9622 ("ghc-quickcheck" ,ghc-quickcheck)))
9623 (home-page "https://github.com/snoyberg/mono-traversable")
9624 (synopsis "Commonly used conduit functions, for both chunked and
9625 unchunked data")
9626 (description "This Haskell package provides a replacement for Data.Conduit.List,
9627 as well as a convenient Conduit module.")
9628 (license license:expat)))
9629
9630 (define-public ghc-aws
9631 (package
9632 (name "ghc-aws")
9633 (version "0.20")
9634 (source
9635 (origin
9636 (method url-fetch)
9637 (uri (string-append "https://hackage.haskell.org/package/"
9638 "aws-" version "/aws-" version ".tar.gz"))
9639 (sha256 (base32
9640 "0pwpabmypi1w8rni9qfwabgn95jks4h8dyw6889mn8xzsrhdhyf0"))))
9641 (build-system haskell-build-system)
9642 (arguments `(#:tests? #f)) ; Tests require AWS credentials.
9643 (inputs
9644 `(("ghc-aeson" ,ghc-aeson)
9645 ("ghc-attoparsec" ,ghc-attoparsec)
9646 ("ghc-base16-bytestring" ,ghc-base16-bytestring)
9647 ("ghc-base64-bytestring" ,ghc-base64-bytestring)
9648 ("ghc-blaze-builder" ,ghc-blaze-builder)
9649 ("ghc-byteable" ,ghc-byteable)
9650 ("ghc-case-insensitive" ,ghc-case-insensitive)
9651 ("ghc-cereal" ,ghc-cereal)
9652 ("ghc-conduit" ,ghc-conduit)
9653 ("ghc-conduit-extra" ,ghc-conduit-extra)
9654 ("ghc-cryptonite" ,ghc-cryptonite)
9655 ("ghc-data-default" ,ghc-data-default)
9656 ("ghc-http-conduit" ,ghc-http-conduit)
9657 ("ghc-http-types" ,ghc-http-types)
9658 ("ghc-lifted-base" ,ghc-lifted-base)
9659 ("ghc-monad-control" ,ghc-monad-control)
9660 ("ghc-network" ,ghc-network)
9661 ("ghc-old-locale" ,ghc-old-locale)
9662 ("ghc-safe" ,ghc-safe)
9663 ("ghc-scientific" ,ghc-scientific)
9664 ("ghc-tagged" ,ghc-tagged)
9665 ("ghc-text" ,ghc-text)
9666 ("ghc-unordered-containers" ,ghc-unordered-containers)
9667 ("ghc-utf8-string" ,ghc-utf8-string)
9668 ("ghc-vector" ,ghc-vector)
9669 ("ghc-xml-conduit" ,ghc-xml-conduit)))
9670 (native-inputs
9671 `(("ghc-quickcheck" ,ghc-quickcheck)
9672 ("ghc-errors" ,ghc-errors)
9673 ("ghc-http-client" ,ghc-http-client)
9674 ("ghc-http-client-tls" ,ghc-http-client-tls)
9675 ("ghc-quickcheck-instances" ,ghc-quickcheck-instances)
9676 ("ghc-tasty" ,ghc-tasty)
9677 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
9678 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
9679 ("ghc-conduit-combinators" ,ghc-conduit-combinators)))
9680 (home-page "https://github.com/aristidb/aws")
9681 (synopsis "Amazon Web Services for Haskell")
9682 (description "This package attempts to provide support for using
9683 Amazon Web Services like S3 (storage), SQS (queuing) and others to
9684 Haskell programmers. The ultimate goal is to support all Amazon
9685 Web Services.")
9686 (license license:bsd-3)))
9687
9688 (define-public ghc-basement
9689 (package
9690 (name "ghc-basement")
9691 (version "0.0.8")
9692 (source
9693 (origin
9694 (method url-fetch)
9695 (uri (string-append "https://hackage.haskell.org/package/"
9696 "basement/basement-" version ".tar.gz"))
9697 (sha256
9698 (base32
9699 "194jw567di4q2758943q9rrwkbf9gl261my7qc21i9xhyabipx67"))))
9700 (build-system haskell-build-system)
9701 (home-page "https://github.com/haskell-foundation/foundation")
9702 (synopsis "Basic primitives for Foundation starter pack")
9703 (description
9704 "This package contains basic primitives for the Foundation set of
9705 packages.")
9706 (license license:bsd-3)))
9707
9708 (define-public ghc-foundation
9709 (package
9710 (name "ghc-foundation")
9711 (version "0.0.21")
9712 (source
9713 (origin
9714 (method url-fetch)
9715 (uri (string-append "https://hackage.haskell.org/package/"
9716 "foundation/foundation-" version ".tar.gz"))
9717 (sha256
9718 (base32
9719 "1q43y8wfj0wf9gdq2kzphwjwq6m5pvryy1lqgk954aq5z3ks1lsf"))))
9720 (build-system haskell-build-system)
9721 (inputs `(("ghc-basement" ,ghc-basement)))
9722 (home-page "https://github.com/haskell-foundation/foundation")
9723 (synopsis "Alternative prelude with batteries and no dependencies")
9724 (description
9725 "This package provides a custom prelude with no dependencies apart from
9726 the base package.
9727
9728 Foundation has the following goals:
9729
9730 @enumerate
9731 @item provide a base like sets of modules that provide a consistent set of
9732 features and bugfixes across multiple versions of GHC (unlike base).
9733 @item provide a better and more efficient prelude than base's prelude.
9734 @item be self-sufficient: no external dependencies apart from base;
9735 @item provide better data-types: packed unicode string by default, arrays;
9736 @item Numerical classes that better represent mathematical things (no more
9737 all-in-one @code{Num});
9738 @item I/O system with less lazy IO.
9739 @end enumerate\n")
9740 (license license:bsd-3)))
9741
9742 (define-public ghc-stm-chans
9743 (package
9744 (name "ghc-stm-chans")
9745 (version "3.0.0.4")
9746 (source
9747 (origin
9748 (method url-fetch)
9749 (uri (string-append "https://hackage.haskell.org/package/"
9750 "stm-chans-" version "/"
9751 "stm-chans-" version ".tar.gz"))
9752 (sha256
9753 (base32
9754 "0f27sp09yha43xk9q55sc185jyjs5h7gq2dhsyx6bm9kz9dzqi13"))))
9755 (build-system haskell-build-system)
9756 (inputs `(("ghc-stm" ,ghc-stm)))
9757 (home-page "https://hackage.haskell.org/package/stm-chans")
9758 (synopsis "Additional types of channels for ghc-stm")
9759 (description "This Haskell package offers a collection of channel types,
9760 similar to @code{Control.Concurrent.STM.@{TChan,TQueue@}} but with additional
9761 features.")
9762 (license license:bsd-3)))
9763
9764 (define-public ghc-monad-loops
9765 (package
9766 (name "ghc-monad-loops")
9767 (version "0.4.3")
9768 (source
9769 (origin
9770 (method url-fetch)
9771 (uri (string-append "https://hackage.haskell.org/package/"
9772 "monad-loops-" version "/"
9773 "monad-loops-" version ".tar.gz"))
9774 (sha256
9775 (base32
9776 "062c2sn3hc8h50p1mhqkpyv6x8dydz2zh3ridvlfjq9nqimszaky"))))
9777 (build-system haskell-build-system)
9778 (native-inputs `(("ghc-tasty" ,ghc-tasty)
9779 ("ghc-tasty-hunit" ,ghc-tasty-hunit)))
9780 (home-page "https://github.com/mokus0/monad-loops")
9781 (synopsis "Monadic loops for Haskell")
9782 (description "This Haskell package provides some useful control
9783 operators for looping.")
9784 (license license:public-domain)))
9785
9786 (define-public ghc-monad-logger
9787 (package
9788 (name "ghc-monad-logger")
9789 (version "0.3.29")
9790 (source
9791 (origin
9792 (method url-fetch)
9793 (uri (string-append "https://hackage.haskell.org/package/"
9794 "monad-logger-" version "/"
9795 "monad-logger-" version ".tar.gz"))
9796 (sha256
9797 (base32
9798 "1z516s4pa9n94zf0l45mylssg07xr1d1m6zrz900p0iv3vfd07mv"))))
9799 (build-system haskell-build-system)
9800 (inputs `(("ghc-transformers-compat" ,ghc-transformers-compat)
9801 ("ghc-text" ,ghc-text)
9802 ("ghc-stm" ,ghc-stm)
9803 ("ghc-stm-chans" ,ghc-stm-chans)
9804 ("ghc-lifted-base" ,ghc-lifted-base)
9805 ("ghc-resourcet" ,ghc-resourcet)
9806 ("ghc-conduit" ,ghc-conduit)
9807 ("ghc-conduit-extra" ,ghc-conduit-extra)
9808 ("ghc-fast-logger" ,ghc-fast-logger)
9809 ("ghc-transformers-base" ,ghc-transformers-base)
9810 ("ghc-monad-control" ,ghc-monad-control)
9811 ("ghc-monad-loops" ,ghc-monad-loops)
9812 ("ghc-blaze-builder" ,ghc-blaze-builder)
9813 ("ghc-exceptions" ,ghc-exceptions)))
9814 (home-page "https://github.com/kazu-yamamoto/logger")
9815 (synopsis "Provides a class of monads which can log messages for Haskell")
9816 (description "This Haskell package uses a monad transformer approach
9817 for logging.
9818
9819 This package provides Template Haskell functions for determining source
9820 code locations of messages.")
9821 (license license:expat)))
9822
9823 (define-public ghc-shakespeare
9824 (package
9825 (name "ghc-shakespeare")
9826 (version "2.0.15")
9827 (source
9828 (origin
9829 (method url-fetch)
9830 (uri (string-append "https://hackage.haskell.org/package/"
9831 "shakespeare-" version "/"
9832 "shakespeare-" version ".tar.gz"))
9833 (sha256
9834 (base32
9835 "1vk4b19zvwy4mpwaq9z3l3kfmz75gfyf7alhh0y112gspgpccm23"))))
9836 (build-system haskell-build-system)
9837 (inputs `(("ghc-parsec" ,ghc-parsec)
9838 ("ghc-text" ,ghc-text)
9839 ("ghc-aeson" ,ghc-aeson)
9840 ("ghc-blaze-markup" ,ghc-blaze-markup)
9841 ("ghc-blaze-html" ,ghc-blaze-html)
9842 ("ghc-exceptions" ,ghc-exceptions)
9843 ("ghc-vector" ,ghc-vector)
9844 ("ghc-unordered-containers" ,ghc-unordered-containers)
9845 ("ghc-scientific" ,ghc-scientific)))
9846 (native-inputs `(("ghc-hspec" ,ghc-hspec)
9847 ("ghc-hunit" ,ghc-hunit)
9848 ("hspec-discover" ,hspec-discover)))
9849 (home-page "https://www.yesodweb.com/book/shakespearean-templates")
9850 (synopsis "Family of type-safe template languages for Haskell")
9851 (description "This Haskell package provides a family of type-safe
9852 templates with simple variable interpolation. Shakespeare templates can
9853 be used inline with a quasi-quoter or in an external file and it
9854 interpolates variables according to the type being inserted.")
9855 (license license:expat)))
9856
9857 (define-public ghc-securemem
9858 (package
9859 (name "ghc-securemem")
9860 (version "0.1.10")
9861 (source
9862 (origin
9863 (method url-fetch)
9864 (uri (string-append "https://hackage.haskell.org/package/"
9865 "securemem-" version "/"
9866 "securemem-" version ".tar.gz"))
9867 (sha256
9868 (base32
9869 "19hnw2cfbsfjynxq1bq9f6djbxhsc1k751ml0y1ab3ah913mm29j"))))
9870 (build-system haskell-build-system)
9871 (inputs `(("ghc-byteable" ,ghc-byteable)
9872 ("ghc-memory" ,ghc-memory)))
9873 (home-page "https://github.com/vincenthz/hs-securemem")
9874 (synopsis "Auto-scrubbing and const-time-eq memory chunk abstraction for
9875 Haskell")
9876 (description "SecureMem is similar to ByteString, except that it provides
9877 a memory chunk that will be auto-scrubbed after it run out of scope.")
9878 (license license:bsd-3)))
9879
9880 (define-public ghc-resource-pool
9881 (package
9882 (name "ghc-resource-pool")
9883 (version "0.2.3.2")
9884 (source
9885 (origin
9886 (method url-fetch)
9887 (uri (string-append "https://hackage.haskell.org/package/"
9888 "resource-pool-" version "/"
9889 "resource-pool-" version ".tar.gz"))
9890 (sha256
9891 (base32
9892 "04mw8b9djb14zp4rdi6h7mc3zizh597ffiinfbr4m0m8psifw9w6"))))
9893 (build-system haskell-build-system)
9894 (inputs `(("ghc-hashable" ,ghc-hashable)
9895 ("ghc-monad-control" ,ghc-monad-control)
9896 ("ghc-transformers-base" ,ghc-transformers-base)
9897 ("ghc-stm" ,ghc-stm)
9898 ("ghc-vector" ,ghc-vector)))
9899 (home-page "https://github.com/bos/pool")
9900 (synopsis "Striped resource pooling implementation in Haskell")
9901 (description "This Haskell package provides striped pooling abstraction
9902 for managing flexibly-sized collections of resources such as database
9903 connections.")
9904 (license license:bsd-3)))
9905
9906 (define-public ghc-attoparsec-iso8601
9907 (package
9908 (name "ghc-attoparsec-iso8601")
9909 (version "1.0.0.0")
9910 (source
9911 (origin
9912 (method url-fetch)
9913 (uri (string-append "https://hackage.haskell.org/package/"
9914 "attoparsec-iso8601-" version "/"
9915 "attoparsec-iso8601-" version ".tar.gz"))
9916 (sha256
9917 (base32
9918 "12l55b76bhya9q89mfmqmy6sl5v39b6gzrw5rf3f70vkb23nsv5a"))))
9919 (build-system haskell-build-system)
9920 (arguments
9921 `(#:cabal-revision
9922 ("1" "06f7pgmmc8456p3hc1y23kz1y127gfczy7s00wz1rls9g2sm2vi4")))
9923 (inputs `(("ghc-attoparsec" ,ghc-attoparsec)
9924 ("ghc-base-compat" ,ghc-base-compat)
9925 ("ghc-text" ,ghc-text)))
9926 (home-page "https://github.com/bos/aeson")
9927 (synopsis "Parse ISO 8601 dates")
9928 (description "Haskell library for parsing of ISO 8601 dates, originally
9929 from aeson.")
9930 (license license:bsd-3)))
9931
9932 (define-public ghc-generics-sop
9933 (package
9934 (name "ghc-generics-sop")
9935 (version "0.3.2.0")
9936 (source
9937 (origin
9938 (method url-fetch)
9939 (uri (string-append "https://hackage.haskell.org/package/"
9940 "generics-sop-" version "/"
9941 "generics-sop-" version ".tar.gz"))
9942 (sha256
9943 (base32
9944 "168v62i845jh9jbfaz3ldz8svz4wmzq9mf2vhb7pxlnbkk8fqq1h"))))
9945 (build-system haskell-build-system)
9946 (inputs `(("ghc-transformers-compat" ,ghc-transformers-compat)))
9947 (home-page "https://github.com/well-typed/generics-sop")
9948 (synopsis "Generic Programming using True Sums of Products for Haskell")
9949 (description "This Haskell package supports the definition of generic
9950 functions. Datatypes are viewed in a uniform, structured way: the choice
9951 between constructors is represented using an n-ary sum, and the arguments of
9952 each constructor are represented using an n-ary product.")
9953 (license license:bsd-3)))
9954
9955 (define-public ghc-uri-bytestring
9956 (package
9957 (name "ghc-uri-bytestring")
9958 (version "0.3.2.0")
9959 (source
9960 (origin
9961 (method url-fetch)
9962 (uri (string-append "https://hackage.haskell.org/package/"
9963 "uri-bytestring-" version "/"
9964 "uri-bytestring-" version ".tar.gz"))
9965 (sha256
9966 (base32
9967 "1q04j5ybvk37zk2m0bkjwyhblz0ymdj0cn4rvsvdca1ikn5xdv5c"))))
9968 (build-system haskell-build-system)
9969 (inputs `(("ghc-attoparsec" ,ghc-attoparsec)
9970 ("ghc-fail" ,ghc-fail)
9971 ("ghc-blaze-builder" ,ghc-blaze-builder)
9972 ("ghc-th-lift-instances" ,ghc-th-lift-instances)))
9973 (native-inputs `(("ghc-attoparsec" ,ghc-attoparsec)
9974 ("ghc-hunit" ,ghc-hunit)
9975 ("ghc-quickcheck" ,ghc-quickcheck)
9976 ("ghc-tasty" ,ghc-tasty)
9977 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
9978 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
9979 ("ghc-base-compat" ,ghc-base-compat)
9980 ("ghc-quickcheck-instances" ,ghc-quickcheck-instances)
9981 ("ghc-semigroups" ,ghc-semigroups)
9982 ("ghc-generics-sop" ,ghc-generics-sop)))
9983 (home-page "https://github.com/Soostone/uri-bytestring")
9984 (synopsis "Haskell URI parsing as ByteStrings")
9985 (description "This Haskell package aims to be an RFC3986 compliant URI
9986 parser that uses ByteStrings for parsing and representing the URI data.")
9987 (license license:bsd-3)))
9988
9989 (define-public ghc-http-api-data
9990 (package
9991 (name "ghc-http-api-data")
9992 (version "0.3.8.1")
9993 (source
9994 (origin
9995 (method url-fetch)
9996 (uri (string-append "https://hackage.haskell.org/package/"
9997 "http-api-data-" version "/"
9998 "http-api-data-" version ".tar.gz"))
9999 (sha256
10000 (base32
10001 "1cq6459b8wz6nvkvpi89dg189n5q2xdq4rdq435hf150555vmskf"))))
10002 (build-system haskell-build-system)
10003 (arguments `(#:tests? #f)) ; FIXME: Tests require QuickCheck >= 2.9
10004 (inputs `(("ghc-attoparsec" ,ghc-attoparsec)
10005 ("ghc-attoparsec-iso8601" ,ghc-attoparsec-iso8601)
10006 ("ghc-hashable" ,ghc-hashable)
10007 ("ghc-http-types" ,ghc-http-types)
10008 ("ghc-text" ,ghc-text)
10009 ("ghc-time-locale-compat" ,ghc-time-locale-compat)
10010 ("ghc-unordered-containers" ,ghc-unordered-containers)
10011 ("ghc-uri-bytestring" ,ghc-uri-bytestring)
10012 ("ghc-uuid-types" ,ghc-uuid-types)))
10013 (home-page "https://github.com/fizruk/http-api-data")
10014 (synopsis "Convert to/from HTTP API data like URL pieces, headers and
10015 query parameters")
10016 (description "This Haskell package defines typeclasses used for converting
10017 Haskell data types to and from HTTP API data.")
10018 (license license:bsd-3)))
10019
10020 (define-public ghc-persistent
10021 (package
10022 (name "ghc-persistent")
10023 (version "2.8.2")
10024 (source
10025 (origin
10026 (method url-fetch)
10027 (uri (string-append "https://hackage.haskell.org/package/"
10028 "persistent-" version "/"
10029 "persistent-" version ".tar.gz"))
10030 (sha256
10031 (base32
10032 "1h0yijbf1yiwl50klyafy4ln99j8bib4kgbzviw7fc4y4mwv4sv9"))))
10033 (build-system haskell-build-system)
10034 (inputs `(("ghc-old-locale" ,ghc-old-locale)
10035 ("ghc-text" ,ghc-text)
10036 ("ghc-conduit" ,ghc-conduit)
10037 ("ghc-resourcet" ,ghc-resourcet)
10038 ("ghc-exceptions" ,ghc-exceptions)
10039 ("ghc-monad-control" ,ghc-monad-control)
10040 ("ghc-lifted-base" ,ghc-lifted-base)
10041 ("ghc-resource-pool" ,ghc-resource-pool)
10042 ("ghc-path-pieces" ,ghc-path-pieces)
10043 ("ghc-http-api-data" ,ghc-http-api-data)
10044 ("ghc-aeson" ,ghc-aeson)
10045 ("ghc-monad-logger" ,ghc-monad-logger)
10046 ("ghc-transformers-base" ,ghc-transformers-base)
10047 ("ghc-base64-bytestring" ,ghc-base64-bytestring)
10048 ("ghc-unordered-containers" ,ghc-unordered-containers)
10049 ("ghc-vector" ,ghc-vector)
10050 ("ghc-attoparsec" ,ghc-attoparsec)
10051 ("ghc-haskell-src-meta" ,ghc-haskell-src-meta)
10052 ("ghc-blaze-html" ,ghc-blaze-html)
10053 ("ghc-blaze-markup" ,ghc-blaze-markup)
10054 ("ghc-silently" ,ghc-silently)
10055 ("ghc-fast-logger" ,ghc-fast-logger)
10056 ("ghc-scientific" ,ghc-scientific)
10057 ("ghc-tagged" ,ghc-tagged)
10058 ("ghc-void" ,ghc-void)))
10059 (native-inputs `(("ghc-hspec" ,ghc-hspec)))
10060 (home-page "https://www.yesodweb.com/book/persistent")
10061 (synopsis "Type-safe, multi-backend data serialization for Haskell")
10062 (description "This Haskell package allows Haskell programs to access data
10063 storage systems like PostgreSQL, SQLite, MySQL and MongoDB in a type-safe
10064 way.")
10065 (license license:expat)))
10066
10067 (define-public ghc-aeson-compat
10068 (package
10069 (name "ghc-aeson-compat")
10070 (version "0.3.8")
10071 (source
10072 (origin
10073 (method url-fetch)
10074 (uri (string-append "https://hackage.haskell.org/package/"
10075 "aeson-compat-" version "/"
10076 "aeson-compat-" version ".tar.gz"))
10077 (sha256
10078 (base32
10079 "0j4v13pgk21zy8hqkbx8hw0n05jdl17qphxz9rj4h333pr547r3i"))))
10080 (build-system haskell-build-system)
10081 (arguments `(#:tests? #f)) ; FIXME: Tests require QuickCheck >= 2.10
10082 (inputs `(("ghc-base-compat" ,ghc-base-compat)
10083 ("ghc-aeson" ,ghc-aeson)
10084 ("ghc-attoparsec" ,ghc-attoparsec)
10085 ("ghc-attoparsec" ,ghc-attoparsec-iso8601)
10086 ("ghc-exceptions" ,ghc-exceptions)
10087 ("ghc-hashable" ,ghc-hashable)
10088 ("ghc-scientific" ,ghc-scientific)
10089 ("ghc-text" ,ghc-text)
10090 ("ghc-time-locale-compat" ,ghc-time-locale-compat)
10091 ("ghc-unordered-containers" ,ghc-unordered-containers)
10092 ("ghc-vector" ,ghc-vector)
10093 ("ghc-tagged" ,ghc-tagged)
10094 ("ghc-semigroups" ,ghc-semigroups)
10095 ("ghc-nats" ,ghc-nats)))
10096 (home-page "https://github.com/phadej/aeson-compat")
10097 (synopsis "Compatibility layer for ghc-aeson")
10098 (description "This Haskell package provides compatibility layer for
10099 ghc-aeson.")
10100 (license license:bsd-3)))
10101
10102 (define-public ghc-persistent-template
10103 (package
10104 (name "ghc-persistent-template")
10105 (version "2.5.4")
10106 (source
10107 (origin
10108 (method url-fetch)
10109 (uri (string-append "https://hackage.haskell.org/package/"
10110 "persistent-template-" version "/"
10111 "persistent-template-" version ".tar.gz"))
10112 (sha256
10113 (base32
10114 "008afcy7zbw7bzp9jww8gdldb51kfm0fg4p0x4xcp61gx4679bjc"))))
10115 (build-system haskell-build-system)
10116 (arguments
10117 `(#:cabal-revision
10118 ("2" "03qgwk32krldph3blw5agiqcpccr3649hajyn8wm9k71zz82dpn6")))
10119 (inputs `(("ghc-persistent" ,ghc-persistent)
10120 ("ghc-monad-control" ,ghc-monad-control)
10121 ("ghc-text" ,ghc-text)
10122 ("ghc-aeson" ,ghc-aeson)
10123 ("ghc-aeson-compat" ,ghc-aeson-compat)
10124 ("ghc-monad-logger" ,ghc-monad-logger)
10125 ("ghc-unordered-containers" ,ghc-unordered-containers)
10126 ("ghc-tagged" ,ghc-tagged)
10127 ("ghc-path-pieces" ,ghc-path-pieces)
10128 ("ghc-http-api-data" ,ghc-http-api-data)))
10129 (native-inputs `(("ghc-hspec" ,ghc-hspec)
10130 ("ghc-quickcheck" ,ghc-quickcheck)))
10131 (home-page "https://www.yesodweb.com/book/persistent")
10132 (synopsis "Type-safe, non-relational, multi-backend persistence")
10133 (description "This Haskell package provides interfaces and helper
10134 functions for the ghc-persistent package.")
10135 (license license:expat)))
10136
10137 (define-public ghc-unliftio-core
10138 (package
10139 (name "ghc-unliftio-core")
10140 (version "0.1.1.0")
10141 (source
10142 (origin
10143 (method url-fetch)
10144 (uri (string-append "https://hackage.haskell.org/package/"
10145 "unliftio-core-" version "/"
10146 "unliftio-core-" version ".tar.gz"))
10147 (sha256
10148 (base32
10149 "1193fplsjm1lcr05xwvkj1rsyzx74i755f6kw3ikmxbsv0bv0l3m"))))
10150 (build-system haskell-build-system)
10151 (arguments
10152 `(#:cabal-revision
10153 ("1" "16bjwcsaghqqmyi69rq65dn3ydifyfaabq3ns37apdm00mwqbcj2")))
10154 (home-page
10155 "https://github.com/fpco/unliftio/tree/master/unliftio-core#readme")
10156 (synopsis "The MonadUnliftIO typeclass for unlifting monads to IO")
10157 (description "This Haskell package provides the core @code{MonadUnliftIO}
10158 typeclass, instances for base and transformers, and basic utility
10159 functions.")
10160 (license license:expat)))
10161
10162 (define-public ghc-microlens
10163 (package
10164 (name "ghc-microlens")
10165 (version "0.4.9.1")
10166 (source
10167 (origin
10168 (method url-fetch)
10169 (uri (string-append "https://hackage.haskell.org/package/"
10170 "microlens-" version "/"
10171 "microlens-" version ".tar.gz"))
10172 (sha256
10173 (base32
10174 "0j2nzf0vpx2anvsrg2w0vy2z4jn3kkcs2n6glkzblhn1j9piqh51"))))
10175 (build-system haskell-build-system)
10176 (home-page
10177 "https://github.com/aelve/microlens")
10178 (synopsis "Provides a tiny lens Haskell library with no dependencies")
10179 (description "This Haskell package provides a lens library, just like
10180 @code{ghc-lens}, but smaller. It provides essential lenses and
10181 traversals (like @code{_1} and @code{_Just}), as well as ones which are simply
10182 nice to have (like @code{each}, @code{at}, and @code{ix}), and some
10183 combinators (like @code{failing} and @code{singular}), but everything else is
10184 stripped. As the result, this package has no dependencies.")
10185 (license license:bsd-3)))
10186
10187 (define-public ghc-microlens-th
10188 (package
10189 (name "ghc-microlens-th")
10190 (version "0.4.2.2")
10191 (source
10192 (origin
10193 (method url-fetch)
10194 (uri (string-append "https://hackage.haskell.org/package/"
10195 "microlens-th-" version "/"
10196 "microlens-th-" version ".tar.gz"))
10197 (sha256
10198 (base32
10199 "02nj7lnl61yffi3c6wn341arxhld5r0vj6nzcb5zmqjhnqsv8c05"))))
10200 (build-system haskell-build-system)
10201 (inputs `(("ghc-microlens" ,ghc-microlens)
10202 ("ghc-th-abstraction" ,ghc-th-abstraction)))
10203 (home-page
10204 "https://github.com/aelve/microlens")
10205 (synopsis "Automatic generation of record lenses for
10206 @code{ghc-microlens}")
10207 (description "This Haskell package lets you automatically generate lenses
10208 for data types; code was extracted from the lens package, and therefore
10209 generated lenses are fully compatible with ones generated by lens (and can be
10210 used both from lens and microlens).")
10211 (license license:bsd-3)))
10212
10213 (define-public ghc-unliftio
10214 (package
10215 (name "ghc-unliftio")
10216 (version "0.2.7.0")
10217 (source
10218 (origin
10219 (method url-fetch)
10220 (uri (string-append
10221 "https://hackage.haskell.org/package/unliftio/unliftio-"
10222 version
10223 ".tar.gz"))
10224 (sha256
10225 (base32
10226 "0qql93lq5w7qghl454cc3s1i8v1jb4h08n82fqkw0kli4g3g9njs"))))
10227 (build-system haskell-build-system)
10228 (arguments `(#:tests? #f)) ; FIXME: hspec-discover not in PATH
10229 (inputs
10230 `(("ghc-async" ,ghc-async)
10231 ("ghc-stm" ,ghc-stm)
10232 ("ghc-unliftio-core" ,ghc-unliftio-core)))
10233 (native-inputs `(("ghc-hspec" ,ghc-hspec)))
10234 (home-page "https://github.com/fpco/unliftio")
10235 (synopsis "Provides MonadUnliftIO typecplass for unlifting monads to
10236 IO (batteries included)")
10237 (description "This Haskell package provides the core @code{MonadUnliftIO}
10238 typeclass, a number of common instances, and a collection of common functions
10239 working with it.")
10240 (license license:expat)))
10241
10242 (define-public ghc-persistent-sqlite
10243 (package
10244 (name "ghc-persistent-sqlite")
10245 (version "2.8.2")
10246 (source
10247 (origin
10248 (method url-fetch)
10249 (uri (string-append "https://hackage.haskell.org/package/"
10250 "persistent-sqlite-" version "/"
10251 "persistent-sqlite-" version ".tar.gz"))
10252 (sha256
10253 (base32
10254 "1chbmvjz46smhgnzhha3bbkhys3fys6dip1jr4v7xp1jf78zbyp6"))))
10255 (build-system haskell-build-system)
10256 (inputs `(("ghc-persistent" ,ghc-persistent)
10257 ("ghc-unliftio-core" ,ghc-unliftio-core)
10258 ("ghc-aeson" ,ghc-aeson)
10259 ("ghc-conduit" ,ghc-conduit)
10260 ("ghc-monad-logger" ,ghc-monad-logger)
10261 ("ghc-microlens-th" ,ghc-microlens-th)
10262 ("ghc-resourcet" ,ghc-resourcet)
10263 ("ghc-old-locale" ,ghc-old-locale)
10264 ("ghc-resource-pool" ,ghc-resource-pool)
10265 ("ghc-unordered-containers" ,ghc-unordered-containers)))
10266 (native-inputs `(("ghc-hspec" ,ghc-hspec)
10267 ("ghc-persistent-template" ,ghc-persistent-template)
10268 ("ghc-temporary" ,ghc-temporary)
10269 ("ghc-text" ,ghc-text)))
10270 (home-page
10271 "https://www.yesodweb.com/book/persistent")
10272 (synopsis "Backend for the persistent library using sqlite3")
10273 (description "This Haskell package includes a thin sqlite3 wrapper based
10274 on the direct-sqlite package, as well as the entire C library, so there are no
10275 system dependencies.")
10276 (license license:expat)))
10277
10278 (define-public ghc-email-validate
10279 (package
10280 (name "ghc-email-validate")
10281 (version "2.3.2.6")
10282 (source
10283 (origin
10284 (method url-fetch)
10285 (uri (string-append
10286 "https://hackage.haskell.org/package/"
10287 "email-validate/email-validate-"
10288 version
10289 ".tar.gz"))
10290 (sha256
10291 (base32
10292 "0chgylvc8xmhp933rdbmpg5sv4y7yg2h6kbf0ip1dzmbd5p55pa5"))))
10293 (build-system haskell-build-system)
10294 (inputs
10295 `(("ghc-attoparsec" ,ghc-attoparsec)
10296 ("ghc-hspec" ,ghc-hspec)
10297 ("ghc-quickcheck" ,ghc-quickcheck)
10298 ("ghc-doctest" ,ghc-doctest)))
10299 (home-page
10300 "https://github.com/Porges/email-validate-hs")
10301 (synopsis "Email address validator for Haskell")
10302 (description
10303 "This Haskell package provides a validator that can validate an email
10304 address string against RFC 5322.")
10305 (license license:bsd-3)))
10306
10307 (define-public ghc-bytes
10308 (package
10309 (name "ghc-bytes")
10310 (version "0.15.5")
10311 (source
10312 (origin
10313 (method url-fetch)
10314 (uri
10315 (string-append "https://hackage.haskell.org/package/bytes-"
10316 version "/bytes-"
10317 version ".tar.gz"))
10318 (file-name (string-append name "-" version ".tar.gz"))
10319 (sha256
10320 (base32
10321 "063il2vrn0p88r9gzndh4ijs0mxj37khkc9ym9bqdsv7ngk3b683"))))
10322 (build-system haskell-build-system)
10323 (inputs `(("ghc-cereal" ,ghc-cereal)
10324 ("cabal-doctest" ,cabal-doctest)
10325 ("ghc-doctest" ,ghc-doctest)
10326 ("ghc-scientific" ,ghc-scientific)
10327 ("ghc-text" ,ghc-text)
10328 ("ghc-transformers-compat" ,ghc-transformers-compat)
10329 ("ghc-unordered-containers" ,ghc-unordered-containers)
10330 ("ghc-void" ,ghc-void)
10331 ("ghc-vector" ,ghc-vector)))
10332 (synopsis "Serialization between @code{binary} and @code{cereal}")
10333 (description "This package provides a simple compatibility shim that lets
10334 you work with both @code{binary} and @code{cereal} with one chunk of
10335 serialization code.")
10336 (home-page "https://hackage.haskell.org/package/bytes")
10337 (license license:bsd-3)))
10338
10339 (define-public ghc-disk-free-space
10340 (package
10341 (name "ghc-disk-free-space")
10342 (version "0.1.0.1")
10343 (source
10344 (origin
10345 (method url-fetch)
10346 (uri (string-append "https://hackage.haskell.org/package/"
10347 "disk-free-space/disk-free-space-"
10348 version ".tar.gz"))
10349 (sha256
10350 (base32
10351 "07rqj8k1vh3cykq9yidpjxhgh1f7vgmjs6y1nv5kq2217ff4yypi"))))
10352 (build-system haskell-build-system)
10353 (home-page "https://github.com/redneb/disk-free-space")
10354 (synopsis "Retrieve information about disk space usage")
10355 (description "A cross-platform library for retrieving information about
10356 disk space usage.")
10357 (license license:bsd-3)))
10358
10359 (define-public ghc-xdg-basedir
10360 (package
10361 (name "ghc-xdg-basedir")
10362 (version "0.2.2")
10363 (source
10364 (origin
10365 (method url-fetch)
10366 (uri (string-append
10367 "https://hackage.haskell.org/package/xdg-basedir/"
10368 "xdg-basedir-" version ".tar.gz"))
10369 (sha256
10370 (base32
10371 "0azlzaxp2dn4l1nr7shsxah2magk1szf6fx0mv75az00qsjw6qg4"))))
10372 (build-system haskell-build-system)
10373 (home-page "http://github.com/willdonnelly/xdg-basedir")
10374 (synopsis "XDG Base Directory library for Haskell")
10375 (description "This package provides a library implementing the XDG Base Directory spec.")
10376 (license license:bsd-3)))
10377
10378 (define-public ghc-errorcall-eq-instance
10379 (package
10380 (name "ghc-errorcall-eq-instance")
10381 (version "0.3.0")
10382 (source
10383 (origin
10384 (method url-fetch)
10385 (uri (string-append "https://hackage.haskell.org/package/"
10386 "errorcall-eq-instance/errorcall-eq-instance-"
10387 version ".tar.gz"))
10388 (sha256
10389 (base32
10390 "0hqw82m8bbrxy5vgdwb83bhzdx070ibqrm9rshyja7cb808ahijm"))))
10391 (build-system haskell-build-system)
10392 (inputs
10393 `(("ghc-base-orphans" ,ghc-base-orphans)))
10394 (native-inputs
10395 `(("ghc-quickcheck" ,ghc-quickcheck)
10396 ("ghc-hspec" ,ghc-hspec)
10397 ("hspec-discover" ,hspec-discover)))
10398 (home-page "http://hackage.haskell.org/package/errorcall-eq-instance")
10399 (synopsis "Orphan Eq instance for ErrorCall")
10400 (description
10401 "Prior to @code{base-4.7.0.0} there was no @code{Eq} instance for @code{ErrorCall}.
10402 This package provides an orphan instance.")
10403 (license license:expat)))
10404
10405 (define-public ghc-missingh
10406 (package
10407 (name "ghc-missingh")
10408 (version "1.4.0.1")
10409 (source
10410 (origin
10411 (method url-fetch)
10412 (uri (string-append "https://hackage.haskell.org/package/MissingH/"
10413 "MissingH-" version ".tar.gz"))
10414 (sha256
10415 (base32
10416 "0wcvgrmav480w7nf4bl14yi0jq2yzanysxwzwas9hpb28vyjlgr8"))))
10417 (build-system haskell-build-system)
10418 ;; Tests require the unmaintained testpack package, which depends on the
10419 ;; outdated QuickCheck version 2.7, which can no longer be built with
10420 ;; recent versions of GHC and Haskell libraries.
10421 (arguments '(#:tests? #f))
10422 (inputs
10423 `(("ghc-network" ,ghc-network)
10424 ("ghc-parsec" ,ghc-parsec)
10425 ("ghc-hunit" ,ghc-hunit)
10426 ("ghc-regex-compat" ,ghc-regex-compat)
10427 ("ghc-hslogger" ,ghc-hslogger)
10428 ("ghc-random" ,ghc-random)
10429 ("ghc-old-time" ,ghc-old-time)
10430 ("ghc-old-locale" ,ghc-old-locale)))
10431 (native-inputs
10432 `(("ghc-errorcall-eq-instance" ,ghc-errorcall-eq-instance)
10433 ("ghc-quickcheck" ,ghc-quickcheck)
10434 ("ghc-hunit" ,ghc-hunit)))
10435 (home-page "http://software.complete.org/missingh")
10436 (synopsis "Large utility library")
10437 (description
10438 "MissingH is a library of all sorts of utility functions for Haskell
10439 programmers. It is written in pure Haskell and thus should be extremely
10440 portable and easy to use.")
10441 (license license:bsd-3)))
10442
10443 (define-public ghc-intervalmap
10444 (package
10445 (name "ghc-intervalmap")
10446 (version "0.6.0.0")
10447 (source
10448 (origin
10449 (method url-fetch)
10450 (uri (string-append "https://hackage.haskell.org/package/IntervalMap/"
10451 "IntervalMap-" version ".tar.gz"))
10452 (sha256
10453 (base32
10454 "06hin9wf1by8aqa7820fsi2339bh82184frkwz3jsb9sqa0hszcg"))))
10455 (build-system haskell-build-system)
10456 (native-inputs
10457 `(("ghc-quickcheck" ,ghc-quickcheck)))
10458 (home-page "http://www.chr-breitkopf.de/comp/IntervalMap")
10459 (synopsis "Containers for intervals, with efficient search")
10460 (description
10461 "This package provides ordered containers of intervals, with efficient
10462 search for all keys containing a point or overlapping an interval. See the
10463 example code on the home page for a quick introduction.")
10464 (license license:bsd-3)))
10465
10466 (define-public ghc-operational
10467 (package
10468 (name "ghc-operational")
10469 (version "0.2.3.5")
10470 (source
10471 (origin
10472 (method url-fetch)
10473 (uri (string-append "https://hackage.haskell.org/package/operational/"
10474 "operational-" version ".tar.gz"))
10475 (sha256
10476 (base32
10477 "1x2abg2q9d26h1vzj40r6k7k3gqgappbs4g9d853vvg77837km4i"))))
10478 (build-system haskell-build-system)
10479 (inputs
10480 `(("ghc-random" ,ghc-random)))
10481 (home-page "http://wiki.haskell.org/Operational")
10482 (synopsis "Implementation of difficult monads made easy with operational semantics")
10483 (description
10484 "This library makes it easy to implement monads with tricky control
10485 flow. This is useful for: writing web applications in a sequential style,
10486 programming games with a uniform interface for human and AI players and easy
10487 replay capababilities, implementing fast parser monads, designing monadic
10488 DSLs, etc.")
10489 (license license:bsd-3)))
10490
10491 (define-public ghc-gtk2hs-buildtools
10492 (package
10493 (name "ghc-gtk2hs-buildtools")
10494 (version "0.13.4.0")
10495 (source
10496 (origin
10497 (method url-fetch)
10498 (uri (string-append "https://hackage.haskell.org/package/"
10499 "gtk2hs-buildtools/gtk2hs-buildtools-"
10500 version ".tar.gz"))
10501 (sha256
10502 (base32
10503 "0yg6xmylgpylmnh5g33qwwn5x9bqckdvvv4czqzd9vrr12lnnghg"))))
10504 (build-system haskell-build-system)
10505 (inputs
10506 `(("ghc-random" ,ghc-random)
10507 ("ghc-hashtables" ,ghc-hashtables)))
10508 (native-inputs
10509 `(("ghc-alex" ,ghc-alex)
10510 ("ghc-happy" ,ghc-happy)))
10511 (home-page "http://projects.haskell.org/gtk2hs/")
10512 (synopsis "Tools to build the Gtk2Hs suite of user interface libraries")
10513 (description
10514 "This package provides a set of helper programs necessary to build the
10515 Gtk2Hs suite of libraries. These tools include a modified c2hs binding tool
10516 that is used to generate FFI declarations, a tool to build a type hierarchy
10517 that mirrors the C type hierarchy of GObjects found in glib, and a generator
10518 for signal declarations that are used to call back from C to Haskell. These
10519 tools are not needed to actually run Gtk2Hs programs.")
10520 (license license:gpl2)))
10521
10522 (define-public ghc-chart
10523 (package
10524 (name "ghc-chart")
10525 (version "1.9")
10526 (source
10527 (origin
10528 (method url-fetch)
10529 (uri (string-append "https://hackage.haskell.org/package/Chart/"
10530 "Chart-" version ".tar.gz"))
10531 (sha256
10532 (base32
10533 "1f5azj17y8xsb3gjhf7gg1gnnlq12rxkmfjmgcly314d7vghs05z"))))
10534 (build-system haskell-build-system)
10535 (inputs
10536 `(("ghc-old-locale" ,ghc-old-locale)
10537 ("ghc-lens" ,ghc-lens)
10538 ("ghc-colour" ,ghc-colour)
10539 ("ghc-data-default-class" ,ghc-data-default-class)
10540 ("ghc-operational" ,ghc-operational)
10541 ("ghc-vector" ,ghc-vector)))
10542 (home-page "https://github.com/timbod7/haskell-chart/wiki")
10543 (synopsis "Library for generating 2D charts and plots")
10544 (description
10545 "This package provides a library for generating 2D charts and plots, with
10546 backends provided by the @code{Cairo} and @code{Diagrams} libraries.")
10547 (license license:bsd-3)))
10548
10549 (define-public ghc-wcwidth
10550 (package
10551 (name "ghc-wcwidth")
10552 (version "0.0.2")
10553 (source
10554 (origin
10555 (method url-fetch)
10556 (uri (string-append "https://hackage.haskell.org/package/wcwidth/wcwidth-"
10557 version ".tar.gz"))
10558 (sha256
10559 (base32
10560 "1n1fq7v64b59ajf5g50iqj9sa34wm7s2j3viay0kxpmvlcv8gipz"))))
10561 (build-system haskell-build-system)
10562 (inputs
10563 `(("ghc-setlocale" ,ghc-setlocale)
10564 ("ghc-utf8-string" ,ghc-utf8-string)
10565 ("ghc-attoparsec" ,ghc-attoparsec)))
10566 (home-page "https://github.com/solidsnack/wcwidth/")
10567 (synopsis "Haskell bindings to wcwidth")
10568 (description "This package provides Haskell bindings to your system's
10569 native wcwidth and a command line tool to examine the widths assigned by it.
10570 The command line tool can compile a width table to Haskell code that assigns
10571 widths to the Char type.")
10572 (license license:bsd-3)))
10573
10574 (define-public ghc-wcwidth-bootstrap
10575 (package
10576 (inherit ghc-wcwidth)
10577 (name "ghc-wcwidth-bootstrap")
10578 (inputs
10579 `(("ghc-setlocale" ,ghc-setlocale)
10580 ("ghc-utf8-string" ,ghc-utf8-string)
10581 ("ghc-attoparsec" ,ghc-attoparsec-bootstrap)))
10582 (properties '(hidden? #t))))
10583
10584 (define-public ghc-rio
10585 (package
10586 (name "ghc-rio")
10587 (version "0.1.5.0")
10588 (source
10589 (origin
10590 (method url-fetch)
10591 (uri (string-append
10592 "https://hackage.haskell.org/package/rio/rio-"
10593 version ".tar.gz"))
10594 (sha256
10595 (base32
10596 "064h8a4hp53a479d3ak0vmqbx8hi0cpg7zn4wp23rjy26dka8p7g"))))
10597 (build-system haskell-build-system)
10598 (inputs
10599 `(("ghc-exceptions" ,ghc-exceptions)
10600 ("ghc-hashable" ,ghc-hashable)
10601 ("ghc-microlens" ,ghc-microlens)
10602 ("ghc-primitive" ,ghc-primitive)
10603 ("ghc-text" ,ghc-text)
10604 ("ghc-typed-process" ,ghc-typed-process)
10605 ("ghc-unliftio" ,ghc-unliftio)
10606 ("ghc-unordered-containers" ,ghc-unordered-containers)
10607 ("ghc-vector" ,ghc-vector)))
10608 (native-inputs
10609 `(("ghc-hspec" ,ghc-hspec)
10610 ("hspec-discover" ,hspec-discover)))
10611 (home-page "https://github.com/commercialhaskell/rio#readme")
10612 (synopsis "A standard library for Haskell")
10613 (description "This package works as a prelude replacement for Haskell,
10614 providing more functionality and types out of the box than the standard
10615 prelude (such as common data types like @code{ByteString} and
10616 @code{Text}), as well as removing common ``gotchas'', like partial
10617 functions and lazy I/O. The guiding principle here is:
10618 @itemize
10619 @item If something is safe to use in general and has no expected naming
10620 conflicts, expose it.
10621 @item If something should not always be used, or has naming conflicts,
10622 expose it from another module in the hierarchy.
10623 @end itemize")
10624 (license license:expat)))
10625
10626 (define-public ghc-cairo
10627 (package
10628 (name "ghc-cairo")
10629 (version "0.13.5.0")
10630 (source
10631 (origin
10632 (method url-fetch)
10633 (uri (string-append "https://hackage.haskell.org/package/cairo/"
10634 "cairo-" version ".tar.gz"))
10635 (sha256
10636 (base32
10637 "1wxylv4d8120ri0vgar168ikqa9m6533ipdwi38qlmxmw20ws2j2"))))
10638 (build-system haskell-build-system)
10639 (arguments
10640 `(#:modules ((guix build haskell-build-system)
10641 (guix build utils)
10642 (ice-9 match)
10643 (srfi srfi-26))
10644 #:phases
10645 (modify-phases %standard-phases
10646 ;; FIXME: This is a copy of the standard configure phase with a tiny
10647 ;; difference: this package needs the -package-db flag to be passed
10648 ;; to "runhaskell" in addition to the "configure" action, because it
10649 ;; depends on gtk2hs-buildtools, which provide setup hooks. Without
10650 ;; this option the Setup.hs file cannot be evaluated. The
10651 ;; haskell-build-system should be changed to pass "-package-db" to
10652 ;; "runhaskell" in any case.
10653 (replace 'configure
10654 (lambda* (#:key outputs inputs tests? (configure-flags '())
10655 #:allow-other-keys)
10656 (let* ((out (assoc-ref outputs "out"))
10657 (name-version (strip-store-file-name out))
10658 (input-dirs (match inputs
10659 (((_ . dir) ...)
10660 dir)
10661 (_ '())))
10662 (ghc-path (getenv "GHC_PACKAGE_PATH"))
10663 (params (append `(,(string-append "--prefix=" out))
10664 `(,(string-append "--libdir=" out "/lib"))
10665 `(,(string-append "--bindir=" out "/bin"))
10666 `(,(string-append
10667 "--docdir=" out
10668 "/share/doc/" name-version))
10669 '("--libsubdir=$compiler/$pkg-$version")
10670 '("--package-db=../package.conf.d")
10671 '("--global")
10672 `(,@(map
10673 (cut string-append "--extra-include-dirs=" <>)
10674 (search-path-as-list '("include") input-dirs)))
10675 `(,@(map
10676 (cut string-append "--extra-lib-dirs=" <>)
10677 (search-path-as-list '("lib") input-dirs)))
10678 (if tests?
10679 '("--enable-tests")
10680 '())
10681 configure-flags)))
10682 (unsetenv "GHC_PACKAGE_PATH")
10683 (apply invoke "runhaskell" "-package-db=../package.conf.d"
10684 "Setup.hs" "configure" params)
10685 (setenv "GHC_PACKAGE_PATH" ghc-path)
10686 #t))))))
10687 (inputs
10688 `(("ghc-utf8-string" ,ghc-utf8-string)
10689 ("ghc-text" ,ghc-text)
10690 ("cairo" ,cairo)))
10691 (native-inputs
10692 `(("ghc-gtk2hs-buildtools" ,ghc-gtk2hs-buildtools)
10693 ("pkg-config" ,pkg-config)))
10694 (home-page "http://projects.haskell.org/gtk2hs/")
10695 (synopsis "Haskell bindings to the Cairo vector graphics library")
10696 (description
10697 "Cairo is a library to render high quality vector graphics. There exist
10698 various backends that allows rendering to Gtk windows, PDF, PS, PNG and SVG
10699 documents, amongst others.")
10700 (license license:bsd-3)))
10701
10702 (define-public ghc-chart-cairo
10703 (package
10704 (name "ghc-chart-cairo")
10705 (version "1.9")
10706 (source
10707 (origin
10708 (method url-fetch)
10709 (uri (string-append "https://hackage.haskell.org/package/Chart-cairo/"
10710 "Chart-cairo-" version ".tar.gz"))
10711 (sha256
10712 (base32
10713 "0iany6lfyfb1cw0pxfs5aw5k0a6x41m6ql9ad9w59biwdckbsyqr"))))
10714 (build-system haskell-build-system)
10715 (inputs
10716 `(("ghc-old-locale" ,ghc-old-locale)
10717 ("ghc-cairo" ,ghc-cairo)
10718 ("ghc-colour" ,ghc-colour)
10719 ("ghc-data-default-class" ,ghc-data-default-class)
10720 ("ghc-operational" ,ghc-operational)
10721 ("ghc-lens" ,ghc-lens)
10722 ("ghc-chart" ,ghc-chart)))
10723 (home-page "https://github.com/timbod7/haskell-chart/wiki")
10724 (synopsis "Cairo backend for Charts")
10725 (description "This package provides a Cairo vector graphics rendering
10726 backend for the Charts library.")
10727 (license license:bsd-3)))
10728
10729 (define-public ghc-atomic-write
10730 (package
10731 (name "ghc-atomic-write")
10732 (version "0.2.0.5")
10733 (source
10734 (origin
10735 (method url-fetch)
10736 (uri (string-append
10737 "https://hackage.haskell.org/package/atomic-write/atomic-write-"
10738 version
10739 ".tar.gz"))
10740 (sha256
10741 (base32
10742 "1iaq0hprxcv0sl1sgwcgmm87zraf738va1bciwnx2jkk3k1v9iyv"))))
10743 (build-system haskell-build-system)
10744 (inputs
10745 `(("ghc-temporary" ,ghc-temporary)
10746 ("ghc-unix-compat" ,ghc-unix-compat)
10747 ("ghc-text" ,ghc-text)))
10748 (native-inputs
10749 `(("ghc-temporary" ,ghc-temporary)
10750 ("ghc-unix-compat" ,ghc-unix-compat)
10751 ("ghc-text" ,ghc-text)
10752 ("ghc-hspec" ,ghc-hspec)
10753 ("hspec-discover" ,hspec-discover)))
10754 (home-page "https://github.com/stackbuilders/atomic-write")
10755 (synopsis "Atomically write to a file")
10756 (description
10757 "Atomically write to a file on POSIX-compliant systems while preserving
10758 permissions. @code{mv} is an atomic operation. This makes it simple to write
10759 to a file atomically just by using the @code{mv} operation. However, this
10760 will destroy the permissions on the original file. This library preserves
10761 permissions while atomically writing to a file.")
10762 (license license:expat)))
10763
10764 (define-public ghc-cereal-conduit
10765 (package
10766 (name "ghc-cereal-conduit")
10767 (version "0.8.0")
10768 (source
10769 (origin
10770 (method url-fetch)
10771 (uri (string-append "https://hackage.haskell.org/package/"
10772 "cereal-conduit/cereal-conduit-"
10773 version ".tar.gz"))
10774 (sha256
10775 (base32
10776 "1srr7agvgfw78q5s1npjq5sgynvhjgllpihiv37ylkwqm4c4ap6r"))))
10777 (build-system haskell-build-system)
10778 (inputs
10779 `(("ghc-conduit" ,ghc-conduit)
10780 ("ghc-resourcet" ,ghc-resourcet)
10781 ("ghc-cereal" ,ghc-cereal)))
10782 (native-inputs
10783 `(("ghc-hunit" ,ghc-hunit)))
10784 (home-page "https://github.com/snoyberg/conduit")
10785 (synopsis "Turn Data.Serialize Gets and Puts into Sources, Sinks, and Conduits")
10786 (description
10787 "This package turn @code{Data.Serialize} @code{Gets} and @code{Puts} into
10788 @code{Sources}, @code{Sinks}, and @code{Conduits}.")
10789 (license license:bsd-3)))
10790
10791 (define-public ghc-lzma
10792 (package
10793 (name "ghc-lzma")
10794 (version "0.0.0.3")
10795 (source
10796 (origin
10797 (method url-fetch)
10798 (uri (string-append "https://hackage.haskell.org/package/lzma/"
10799 "lzma-" version ".tar.gz"))
10800 (sha256
10801 (base32
10802 "0i416gqi8j55nd1pqbkxvf3f6hn6fjys6gq98lkkxphva71j30xg"))))
10803 (build-system haskell-build-system)
10804 (arguments
10805 '(#:tests? #f ; requires older versions of QuickCheck and tasty.
10806 #:cabal-revision
10807 ("3" "1sify6gnsalyp6dakfzi0mdy5jcz2kcp9jsdsgkmxd40nfzgd44m")))
10808 (native-inputs
10809 `(("ghc-hunit" ,ghc-hunit)
10810 ("ghc-quickcheck" ,ghc-quickcheck)
10811 ("ghc-tasty" ,ghc-tasty)
10812 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
10813 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
10814 (home-page "https://github.com/hvr/lzma")
10815 (synopsis "LZMA/XZ compression and decompression")
10816 (description
10817 "This package provides a pure interface for compressing and
10818 decompressing LZMA streams of data represented as lazy @code{ByteString}s. A
10819 monadic incremental interface is provided as well.")
10820 (license license:bsd-3)))
10821
10822 (define-public ghc-stm-conduit
10823 (package
10824 (name "ghc-stm-conduit")
10825 (version "4.0.0")
10826 (source
10827 (origin
10828 (method url-fetch)
10829 (uri (string-append "https://hackage.haskell.org/package/stm-conduit/"
10830 "stm-conduit-" version ".tar.gz"))
10831 (sha256
10832 (base32
10833 "0paapljn7nqfzrx889y0n8sszci38mdiaxkgr0bb00ph9246rr7z"))))
10834 (build-system haskell-build-system)
10835 (inputs
10836 `(("ghc-stm" ,ghc-stm)
10837 ("ghc-stm-chans" ,ghc-stm-chans)
10838 ("ghc-cereal" ,ghc-cereal)
10839 ("ghc-cereal-conduit" ,ghc-cereal-conduit)
10840 ("ghc-conduit" ,ghc-conduit)
10841 ("ghc-conduit-extra" ,ghc-conduit-extra)
10842 ("ghc-exceptions" ,ghc-exceptions)
10843 ("ghc-resourcet" ,ghc-resourcet)
10844 ("ghc-async" ,ghc-async)
10845 ("ghc-monad-loops" ,ghc-monad-loops)
10846 ("ghc-unliftio" ,ghc-unliftio)))
10847 (native-inputs
10848 `(("ghc-doctest" ,ghc-doctest)
10849 ("ghc-quickcheck" ,ghc-quickcheck)
10850 ("ghc-hunit" ,ghc-hunit)
10851 ("ghc-test-framework" ,ghc-test-framework)
10852 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
10853 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
10854 (home-page "https://github.com/cgaebel/stm-conduit")
10855 (synopsis "Introduces conduits to channels and promotes using conduits concurrently")
10856 (description
10857 "This package provides two simple conduit wrappers around STM channels: a
10858 source and a sink.")
10859 (license license:bsd-3)))
10860
10861 (define-public ghc-bindings-dsl
10862 (package
10863 (name "ghc-bindings-dsl")
10864 (version "1.0.25")
10865 (source
10866 (origin
10867 (method url-fetch)
10868 (uri (string-append "https://hackage.haskell.org/package/bindings-DSL/"
10869 "bindings-DSL-" version ".tar.gz"))
10870 (sha256
10871 (base32
10872 "0kqrd78nspl3lk4a0fqn47d8dirjg3b24dkvkigcrlb81hw35pk3"))))
10873 (build-system haskell-build-system)
10874 (home-page "https://github.com/jwiegley/bindings-dsl/wiki")
10875 (synopsis "FFI domain specific language, on top of hsc2hs")
10876 (description
10877 "This is a set of macros to be used when writing Haskell FFI. They were
10878 designed to be able to fully describe C interfaces, so that @code{hsc2hs} can
10879 extract from them all Haskell code needed to mimic such interfaces. All
10880 Haskell names used are automatically derived from C names, structures are
10881 mapped to Haskell instances of @code{Storable}, and there are also macros you
10882 can use with C code to help write bindings to inline functions or macro
10883 functions.")
10884 (license license:bsd-3)))
10885
10886 (define-public ghc-lzma-conduit
10887 (package
10888 (name "ghc-lzma-conduit")
10889 (version "1.2.1")
10890 (source
10891 (origin
10892 (method url-fetch)
10893 (uri (string-append "https://hackage.haskell.org/package/lzma-conduit/"
10894 "lzma-conduit-" version ".tar.gz"))
10895 (sha256
10896 (base32
10897 "0hm72da7xk9l3zxjh274yg444vf405djxqbkf3q3p2qhicmxlmg9"))))
10898 (build-system haskell-build-system)
10899 (inputs
10900 `(("ghc-conduit" ,ghc-conduit)
10901 ("ghc-lzma" ,ghc-lzma)
10902 ("ghc-resourcet" ,ghc-resourcet)))
10903 (native-inputs
10904 `(("ghc-base-compat" ,ghc-base-compat)
10905 ("ghc-test-framework" ,ghc-test-framework)
10906 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
10907 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)
10908 ("ghc-hunit" ,ghc-hunit)
10909 ("ghc-quickcheck" ,ghc-quickcheck)))
10910 (home-page "https://github.com/alphaHeavy/lzma-conduit")
10911 (synopsis "Conduit interface for lzma/xz compression")
10912 (description
10913 "This package provides a @code{Conduit} interface for the LZMA
10914 compression algorithm used in the @code{.xz} file format.")
10915 (license license:bsd-3)))
10916
10917 (define-public ghc-bzlib-conduit
10918 (package
10919 (name "ghc-bzlib-conduit")
10920 (version "0.3.0.1")
10921 (source
10922 (origin
10923 (method url-fetch)
10924 (uri (string-append "https://hackage.haskell.org/package/bzlib-conduit/"
10925 "bzlib-conduit-" version ".tar.gz"))
10926 (sha256
10927 (base32
10928 "0fd2hnr782s7qgipazg2yxwia9qqhkvm9bcm90773c3zkxa13n23"))))
10929 (build-system haskell-build-system)
10930 (inputs
10931 `(("ghc-bindings-dsl" ,ghc-bindings-dsl)
10932 ("ghc-conduit" ,ghc-conduit)
10933 ("ghc-data-default-class" ,ghc-data-default-class)
10934 ("ghc-resourcet" ,ghc-resourcet)))
10935 (native-inputs
10936 `(("ghc-hspec" ,ghc-hspec)
10937 ("ghc-random" ,ghc-random)))
10938 (home-page "https://github.com/snoyberg/bzlib-conduit")
10939 (synopsis "Streaming compression/decompression via conduits")
10940 (description
10941 "This package provides Haskell bindings to bzlib and Conduit support for
10942 streaming compression and decompression.")
10943 (license license:bsd-3)))
10944
10945 (define-public ghc-pqueue
10946 (package
10947 (name "ghc-pqueue")
10948 (version "1.4.1.1")
10949 (source
10950 (origin
10951 (method url-fetch)
10952 (uri (string-append "https://hackage.haskell.org/package/"
10953 "pqueue/pqueue-" version ".tar.gz"))
10954 (sha256
10955 (base32
10956 "1zvwm1zcqqq5n101s1brjhgbay8rf9fviq6gxbplf40i63m57p1x"))))
10957 (build-system haskell-build-system)
10958 (native-inputs
10959 `(("ghc-quickcheck" ,ghc-quickcheck)))
10960 (home-page "https://hackage.haskell.org/package/pqueue")
10961 (synopsis "Reliable, persistent, fast priority queues")
10962 (description
10963 "This package provides a fast, reliable priority queue implementation
10964 based on a binomial heap.")
10965 (license license:bsd-3)))
10966
10967 (define-public ghc-conduit-algorithms
10968 (package
10969 (name "ghc-conduit-algorithms")
10970 (version "0.0.8.1")
10971 (source
10972 (origin
10973 (method url-fetch)
10974 (uri (string-append "https://hackage.haskell.org/package/"
10975 "conduit-algorithms/conduit-algorithms-"
10976 version ".tar.gz"))
10977 (sha256
10978 (base32
10979 "07gx2q3d1bbfw14q41rmqg0i4m018pci10lswc0k1ij6lw7sb9fd"))))
10980 (build-system haskell-build-system)
10981 (inputs
10982 `(("ghc-async" ,ghc-async)
10983 ("ghc-bzlib-conduit" ,ghc-bzlib-conduit)
10984 ("ghc-conduit" ,ghc-conduit)
10985 ("ghc-conduit-combinators" ,ghc-conduit-combinators)
10986 ("ghc-conduit-extra" ,ghc-conduit-extra)
10987 ("ghc-exceptions" ,ghc-exceptions)
10988 ("ghc-lzma-conduit" ,ghc-lzma-conduit)
10989 ("ghc-monad-control" ,ghc-monad-control)
10990 ("ghc-pqueue" ,ghc-pqueue)
10991 ("ghc-resourcet" ,ghc-resourcet)
10992 ("ghc-stm" ,ghc-stm)
10993 ("ghc-stm-conduit" ,ghc-stm-conduit)
10994 ("ghc-streaming-commons" ,ghc-streaming-commons)
10995 ("ghc-unliftio-core" ,ghc-unliftio-core)
10996 ("ghc-vector" ,ghc-vector)))
10997 (native-inputs
10998 `(("ghc-hunit" ,ghc-hunit)
10999 ("ghc-test-framework" ,ghc-test-framework)
11000 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
11001 ("ghc-test-framework-th" ,ghc-test-framework-th)))
11002 (home-page "https://github.com/luispedro/conduit-algorithms#readme")
11003 (synopsis "Conduit-based algorithms")
11004 (description
11005 "This package provides algorithms on @code{Conduits}, including higher
11006 level asynchronous processing and some other utilities.")
11007 (license license:expat)))
11008
11009 (define-public ghc-interpolate
11010 (package
11011 (name "ghc-interpolate")
11012 (version "0.2.0")
11013 (source
11014 (origin
11015 (method url-fetch)
11016 (uri (string-append "https://hackage.haskell.org/package/interpolate/"
11017 "interpolate-" version ".tar.gz"))
11018 (sha256
11019 (base32
11020 "1gkaj98yz363v38fv78sqby236mp8yqwqcilx7kr2b9z0w3204bf"))))
11021 (build-system haskell-build-system)
11022 (inputs
11023 `(("ghc-haskell-src-meta" ,ghc-haskell-src-meta)))
11024 (native-inputs
11025 `(("ghc-base-compat" ,ghc-base-compat)
11026 ("ghc-hspec" ,ghc-hspec)
11027 ("ghc-quickcheck" ,ghc-quickcheck)
11028 ("ghc-quickcheck-instances" ,ghc-quickcheck-instances)
11029 ("ghc-text" ,ghc-text)
11030 ("hspec-discover" ,hspec-discover)))
11031 (home-page "https://github.com/sol/interpolate")
11032 (synopsis "String interpolation library")
11033 (description "This package provides a string interpolation library for
11034 Haskell.")
11035 (license license:expat)))
11036
11037 (define-public ghc-hpack
11038 (package
11039 (name "ghc-hpack")
11040 (version "0.28.2")
11041 (source
11042 (origin
11043 (method url-fetch)
11044 (uri (string-append "https://hackage.haskell.org/package/hpack/"
11045 "hpack-" version ".tar.gz"))
11046 (sha256
11047 (base32
11048 "18w0h76jdp3mk9vin8da9iz3cwhcxmw787xy8wlh8bxcpcr16q5r"))))
11049 (build-system haskell-build-system)
11050 (inputs
11051 `(("ghc-aeson" ,ghc-aeson)
11052 ("ghc-bifunctors" ,ghc-bifunctors)
11053 ("ghc-cryptonite" ,ghc-cryptonite)
11054 ("ghc-glob" ,ghc-glob)
11055 ("ghc-http-client" ,ghc-http-client)
11056 ("ghc-http-client-tls" ,ghc-http-client-tls)
11057 ("ghc-http-types" ,ghc-http-types)
11058 ("ghc-scientific" ,ghc-scientific)
11059 ("ghc-text" ,ghc-text)
11060 ("ghc-unordered-containers" ,ghc-unordered-containers)
11061 ("ghc-vector" ,ghc-vector)
11062 ("ghc-yaml" ,ghc-yaml)))
11063 (native-inputs
11064 `(("ghc-hspec" ,ghc-hspec)
11065 ("ghc-hunit" ,ghc-hunit)
11066 ("ghc-interpolate" ,ghc-interpolate)
11067 ("ghc-mockery" ,ghc-mockery)
11068 ("ghc-quickcheck" ,ghc-quickcheck)
11069 ("ghc-temporary" ,ghc-temporary)
11070 ("hspec-discover" ,hspec-discover)))
11071 (home-page "https://github.com/sol/hpack")
11072 (synopsis "Tools for an alternative Haskell package format")
11073 (description
11074 "Hpack is a format for Haskell packages. It is an alternative to the
11075 Cabal package format and follows different design principles. Hpack packages
11076 are described in a file named @code{package.yaml}. Both @code{cabal2nix} and
11077 @code{stack} support @code{package.yaml} natively. For other build tools the
11078 @code{hpack} executable can be used to generate a @code{.cabal} file from
11079 @code{package.yaml}.")
11080 (license license:expat)))
11081
11082 (define-public ghc-raw-strings-qq
11083 (package
11084 (name "ghc-raw-strings-qq")
11085 (version "1.1")
11086 (source
11087 (origin
11088 (method url-fetch)
11089 (uri (string-append "https://hackage.haskell.org/package/"
11090 "raw-strings-qq/raw-strings-qq-"
11091 version ".tar.gz"))
11092 (sha256
11093 (base32
11094 "1lxy1wy3awf52968iy5y9r5z4qgnn2sxkdrh7js3m9gadb11w09f"))))
11095 (build-system haskell-build-system)
11096 (native-inputs `(("ghc-hunit" ,ghc-hunit)))
11097 (home-page "https://github.com/23Skidoo/raw-strings-qq")
11098 (synopsis "Raw string literals for Haskell")
11099 (description
11100 "This package provides a quasiquoter for raw string literals, i.e. string
11101 literals that don't recognise the standard escape sequences. Basically, they
11102 make your code more readable by freeing you from the responsibility to escape
11103 backslashes. They are useful when working with regular expressions,
11104 DOS/Windows paths and markup languages (such as XML).")
11105 (license license:bsd-3)))
11106
11107 (define-public ghc-inline-c
11108 (package
11109 (name "ghc-inline-c")
11110 (version "0.6.1.0")
11111 (source
11112 (origin
11113 (method url-fetch)
11114 (uri (string-append "https://hackage.haskell.org/package/inline-c/"
11115 "inline-c-" version ".tar.gz"))
11116 (sha256
11117 (base32
11118 "0vbfrsqsi7mdziqsnj68bsqlwbqxxhvrmy9rv6w8z18d1m8w3n6h"))))
11119 (build-system haskell-build-system)
11120 (inputs
11121 `(("ghc-ansi-wl-pprint" ,ghc-ansi-wl-pprint)
11122 ("ghc-cryptohash" ,ghc-cryptohash)
11123 ("ghc-hashable" ,ghc-hashable)
11124 ("ghc-parsec" ,ghc-parsec)
11125 ("ghc-parsers" ,ghc-parsers)
11126 ("ghc-unordered-containers" ,ghc-unordered-containers)
11127 ("ghc-vector" ,ghc-vector)))
11128 (native-inputs
11129 `(("ghc-quickcheck" ,ghc-quickcheck)
11130 ("ghc-hspec" ,ghc-hspec)
11131 ("ghc-raw-strings-qq" ,ghc-raw-strings-qq)
11132 ("ghc-regex-posix" ,ghc-regex-posix)))
11133 (home-page "http://hackage.haskell.org/package/inline-c")
11134 (synopsis "Write Haskell source files including C code inline")
11135 (description
11136 "inline-c lets you seamlessly call C libraries and embed high-performance
11137 inline C code in Haskell modules. Haskell and C can be freely intermixed in
11138 the same source file, and data passed to and from code in either language with
11139 minimal overhead. No FFI required.")
11140 (license license:expat)))
11141
11142 (define-public ghc-weigh
11143 (package
11144 (name "ghc-weigh")
11145 (version "0.0.12")
11146 (source
11147 (origin
11148 (method url-fetch)
11149 (uri (string-append "https://hackage.haskell.org/package/weigh/"
11150 "weigh-" version ".tar.gz"))
11151 (sha256
11152 (base32
11153 "0zw2a997gxgdzqmd7j730kxgynzmjvvlkw84dajmfzf1v9pbij7x"))))
11154 (build-system haskell-build-system)
11155 (inputs
11156 `(("ghc-split" ,ghc-split)
11157 ("ghc-temporary" ,ghc-temporary)))
11158 (home-page "https://github.com/fpco/weigh#readme")
11159 (synopsis "Measure allocations of a Haskell functions/values")
11160 (description "This package provides tools to measure the memory usage of a
11161 Haskell value or function.")
11162 (license license:bsd-3)))
11163
11164 (define-public ghc-linear
11165 (package
11166 (name "ghc-linear")
11167 (version "1.20.8")
11168 (source
11169 (origin
11170 (method url-fetch)
11171 (uri (string-append "https://hackage.haskell.org/package/linear/"
11172 "linear-" version ".tar.gz"))
11173 (sha256
11174 (base32
11175 "046vkvxlb0s286qr55s0c6db0rlwbm1cmlmwhrrkqbkzhfcipgay"))))
11176 (build-system haskell-build-system)
11177 (inputs
11178 `(("ghc-adjunctions" ,ghc-adjunctions)
11179 ("ghc-base-orphans" ,ghc-base-orphans)
11180 ("ghc-bytes" ,ghc-bytes)
11181 ("ghc-cereal" ,ghc-cereal)
11182 ("ghc-distributive" ,ghc-distributive)
11183 ("ghc-hashable" ,ghc-hashable)
11184 ("ghc-lens" ,ghc-lens)
11185 ("ghc-reflection" ,ghc-reflection)
11186 ("ghc-semigroups" ,ghc-semigroups)
11187 ("ghc-semigroupoids" ,ghc-semigroupoids)
11188 ("ghc-tagged" ,ghc-tagged)
11189 ("ghc-transformers-compat" ,ghc-transformers-compat)
11190 ("ghc-unordered-containers" ,ghc-unordered-containers)
11191 ("ghc-vector" ,ghc-vector)
11192 ("ghc-void" ,ghc-void)))
11193 (native-inputs
11194 `(("cabal-doctest" ,cabal-doctest)
11195 ("ghc-doctest" ,ghc-doctest)
11196 ("ghc-simple-reflect" ,ghc-simple-reflect)
11197 ("ghc-test-framework" ,ghc-test-framework)
11198 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
11199 ("ghc-hunit" ,ghc-hunit)))
11200 (home-page "http://github.com/ekmett/linear/")
11201 (synopsis "Linear algebra library for Haskell")
11202 (description
11203 "This package provides types and combinators for linear algebra on free
11204 vector spaces.")
11205 (license license:bsd-3)))
11206
11207 (define-public ghc-safe-exceptions
11208 (package
11209 (name "ghc-safe-exceptions")
11210 (version "0.1.7.0")
11211 (source
11212 (origin
11213 (method url-fetch)
11214 (uri (string-append "https://hackage.haskell.org/package/"
11215 "safe-exceptions/safe-exceptions-"
11216 version ".tar.gz"))
11217 (sha256
11218 (base32
11219 "0sd0zfsm9pcll5bzzj523rbn45adjrnavdkz52hgmdjjgdcdrk8q"))))
11220 (build-system haskell-build-system)
11221 (arguments
11222 '(#:cabal-revision
11223 ("4" "0fid41gishzsyb47wzxhd5falandfirqcp760hcja81qjpfmqd32")))
11224 (inputs `(("ghc-exceptions" ,ghc-exceptions)))
11225 (native-inputs
11226 `(("ghc-hspec" ,ghc-hspec)
11227 ("ghc-void" ,ghc-void)
11228 ("hspec-discover" ,hspec-discover)))
11229 (home-page "https://github.com/fpco/safe-exceptions")
11230 (synopsis "Safe, consistent, and easy exception handling")
11231 (description "Runtime exceptions - as exposed in @code{base} by the
11232 @code{Control.Exception} module - have long been an intimidating part of the
11233 Haskell ecosystem. This package is intended to overcome this. It provides a
11234 safe and simple API on top of the existing exception handling machinery. The
11235 API is equivalent to the underlying implementation in terms of power but
11236 encourages best practices to minimize the chances of getting the exception
11237 handling wrong.")
11238 (license license:expat)))
11239
11240 (define-public ghc-inline-c-cpp
11241 (package
11242 (name "ghc-inline-c-cpp")
11243 (version "0.2.2.1")
11244 (source
11245 (origin
11246 (method url-fetch)
11247 (uri (string-append "https://hackage.haskell.org/package/inline-c-cpp/"
11248 "inline-c-cpp-" version ".tar.gz"))
11249 (sha256
11250 (base32
11251 "1rk7fmpkmxw9hhwr8df29kadnf0ybnwj64ggdbnsdrpfyhnkisci"))))
11252 (build-system haskell-build-system)
11253 (inputs
11254 `(("ghc-inline-c" ,ghc-inline-c)
11255 ("ghc-safe-exceptions" ,ghc-safe-exceptions)))
11256 (native-inputs
11257 `(("ghc-hspec" ,ghc-hspec)))
11258 (home-page "https://hackage.haskell.org/package/inline-c-cpp")
11259 (synopsis "Lets you embed C++ code into Haskell")
11260 (description
11261 "This package provides utilities to inline C++ code into Haskell using
11262 @code{inline-c}.")
11263 (license license:expat)))
11264
11265 (define-public ghc-bytestring-lexing
11266 (package
11267 (name "ghc-bytestring-lexing")
11268 (version "0.5.0.2")
11269 (source
11270 (origin
11271 (method url-fetch)
11272 (uri (string-append "https://hackage.haskell.org/package/"
11273 "bytestring-lexing/bytestring-lexing-"
11274 version ".tar.gz"))
11275 (sha256
11276 (base32
11277 "0wrzniawhgpphc6yx1v972gyqxdbv0pizaz9bafahrshyb9svy81"))))
11278 (build-system haskell-build-system)
11279 (home-page "http://code.haskell.org/~wren/")
11280 (synopsis "Parse and produce literals from strict or lazy bytestrings")
11281 (description
11282 "This package provides tools to parse and produce literals efficiently
11283 from strict or lazy bytestrings.")
11284 (license license:bsd-2)))
11285
11286 (define-public ghc-configurator
11287 (package
11288 (name "ghc-configurator")
11289 (version "0.3.0.0")
11290 (source
11291 (origin
11292 (method url-fetch)
11293 (uri (string-append "https://hackage.haskell.org/package/"
11294 "configurator/configurator-"
11295 version ".tar.gz"))
11296 (sha256
11297 (base32
11298 "1d1iq1knwiq6ia5g64rw5hqm6dakz912qj13r89737rfcxmrkfbf"))))
11299 (build-system haskell-build-system)
11300 (inputs
11301 `(("ghc-attoparsec" ,ghc-attoparsec)
11302 ("ghc-hashable" ,ghc-hashable)
11303 ("ghc-text" ,ghc-text)
11304 ("ghc-unix-compat" ,ghc-unix-compat)
11305 ("ghc-unordered-containers" ,ghc-unordered-containers)))
11306 (native-inputs
11307 `(("ghc-hunit" ,ghc-hunit)
11308 ("ghc-test-framework" ,ghc-test-framework)
11309 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)))
11310 (home-page "http://github.com/bos/configurator")
11311 (synopsis "Configuration management")
11312 (description
11313 "This package provides a configuration management library for programs
11314 and daemons. The features include:
11315
11316 @enumerate
11317 @item Automatic, dynamic reloading in response to modifications to
11318 configuration files.
11319 @item A simple, but flexible, configuration language, supporting several of
11320 the most commonly needed types of data, along with interpolation of strings
11321 from the configuration or the system environment (e.g. @code{$(HOME)}).
11322 @item Subscription-based notification of changes to configuration properties.
11323 @item An @code{import} directive allows the configuration of a complex
11324 application to be split across several smaller files, or common configuration
11325 data to be shared across several applications.
11326 @end enumerate\n")
11327 (license license:bsd-3)))
11328
11329 (define-public ghc-file-embed
11330 (package
11331 (name "ghc-file-embed")
11332 (version "0.0.10.1")
11333 (source
11334 (origin
11335 (method url-fetch)
11336 (uri (string-append "https://hackage.haskell.org/package/file-embed/"
11337 "file-embed-" version ".tar.gz"))
11338 (sha256
11339 (base32
11340 "0lj164cnzqyd487mli91nnr7137a4h4qsasfwsnsh77sx12fpk9k"))))
11341 (build-system haskell-build-system)
11342 (home-page "https://github.com/snoyberg/file-embed")
11343 (synopsis "Use Template Haskell to embed file contents directly")
11344 (description
11345 "This package allows you to use Template Haskell to read a file or all
11346 the files in a directory, and turn them into @code{(path, bytestring)} pairs
11347 embedded in your Haskell code.")
11348 (license license:bsd-3)))
11349
11350 (define-public ghc-safeio
11351 (package
11352 (name "ghc-safeio")
11353 (version "0.0.5.0")
11354 (source
11355 (origin
11356 (method url-fetch)
11357 (uri (string-append "https://hackage.haskell.org/package/safeio/"
11358 "safeio-" version ".tar.gz"))
11359 (sha256
11360 (base32
11361 "04g3070cbjdqj0h9l9ii6470xcbn40xfv4fr89a8yvnkdim9nyfm"))))
11362 (build-system haskell-build-system)
11363 (inputs
11364 `(("ghc-conduit" ,ghc-conduit)
11365 ("ghc-conduit-combinators" ,ghc-conduit-combinators)
11366 ("ghc-exceptions" ,ghc-exceptions)
11367 ("ghc-resourcet" ,ghc-resourcet)))
11368 (native-inputs
11369 `(("ghc-hunit" ,ghc-hunit)
11370 ("ghc-test-framework" ,ghc-test-framework)
11371 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
11372 ("ghc-test-framework-th" ,ghc-test-framework-th)))
11373 (home-page "https://github.com/luispedro/safeio")
11374 (synopsis "Write output to disk atomically")
11375 (description
11376 "This package implements utilities to perform atomic output so as to
11377 avoid the problem of partial intermediate files.")
11378 (license license:expat)))
11379
11380 (define-public ghc-tldr
11381 (package
11382 (name "ghc-tldr")
11383 (version "0.4.0.1")
11384 (source
11385 (origin
11386 (method url-fetch)
11387 (uri (string-append
11388 "https://hackage.haskell.org/package/tldr/tldr-"
11389 version
11390 ".tar.gz"))
11391 (sha256
11392 (base32
11393 "0nc581y9jjzwd8l88g48c72mla7k6q1w102akl7gl5jsk9ljamd3"))))
11394 (build-system haskell-build-system)
11395 (inputs
11396 `(("ghc-cmark" ,ghc-cmark)
11397 ("ghc-optparse-applicative" ,ghc-optparse-applicative)
11398 ("ghc-typed-process" ,ghc-typed-process)
11399 ("ghc-semigroups" ,ghc-semigroups)))
11400 (native-inputs
11401 `(("ghc-tasty" ,ghc-tasty)
11402 ("ghc-tasty-golden" ,ghc-tasty-golden)))
11403 (home-page "https://github.com/psibi/tldr-hs#readme")
11404 (synopsis "Haskell tldr client")
11405 (description "This package provides the @command{tldr} command and a
11406 Haskell client library allowing users to update and view @code{tldr} pages
11407 from a shell. The @code{tldr} pages are a community effort to simplify the
11408 man pages with practical examples.")
11409 (license license:bsd-3)))
11410
11411 (define-public ghc-c2hs
11412 (package
11413 (name "ghc-c2hs")
11414 (version "0.28.6")
11415 (source
11416 (origin
11417 (method url-fetch)
11418 (uri (string-append
11419 "https://hackage.haskell.org/package/c2hs/c2hs-"
11420 version
11421 ".tar.gz"))
11422 (sha256
11423 (base32
11424 "1nplgxfin139x12sb656f5870rpdclrhzi8mq8pry035qld15pci"))))
11425 (build-system haskell-build-system)
11426 (inputs
11427 `(("ghc-language-c" ,ghc-language-c)
11428 ("ghc-dlist" ,ghc-dlist)))
11429 (native-inputs
11430 `(("ghc-test-framework" ,ghc-test-framework)
11431 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
11432 ("ghc-hunit" ,ghc-hunit)
11433 ("ghc-shelly" ,ghc-shelly)
11434 ("ghc-text" ,ghc-text)
11435 ("gcc" ,gcc)))
11436 (arguments
11437 `(;; XXX: Test failures are induced by a parse error in <bits/floatn.h>
11438 ;; of glibc 2.28.
11439 #:tests? #f
11440
11441 #:phases
11442 (modify-phases %standard-phases
11443 (add-before 'check 'set-cc
11444 ;; add a cc executable in the path, needed for some tests to pass
11445 (lambda* (#:key inputs #:allow-other-keys)
11446 (let ((gcc (assoc-ref inputs "gcc"))
11447 (tmpbin (tmpnam))
11448 (curpath (getenv "PATH")))
11449 (mkdir-p tmpbin)
11450 (symlink (which "gcc") (string-append tmpbin "/cc"))
11451 (setenv "PATH" (string-append tmpbin ":" curpath)))
11452 #t))
11453 (add-after 'check 'remove-cc
11454 ;; clean the tmp dir made in 'set-cc
11455 (lambda _
11456 (let* ((cc-path (which "cc"))
11457 (cc-dir (dirname cc-path)))
11458 (delete-file-recursively cc-dir)
11459 #t))))))
11460 (home-page "https://github.com/haskell/c2hs")
11461 (synopsis "Create Haskell bindings to C libraries")
11462 (description "C->Haskell assists in the development of Haskell bindings to
11463 C libraries. It extracts interface information from C header files and
11464 generates Haskell code with foreign imports and marshaling. Unlike writing
11465 foreign imports by hand (or using hsc2hs), this ensures that C functions are
11466 imported with the correct Haskell types.")
11467 (license license:gpl2)))
11468
11469 (define-public ghc-libmpd
11470 (package
11471 (name "ghc-libmpd")
11472 (version "0.9.0.9")
11473 (source
11474 (origin
11475 (method url-fetch)
11476 (uri (string-append
11477 "mirror://hackage/package/libmpd/libmpd-"
11478 version
11479 ".tar.gz"))
11480 (sha256
11481 (base32
11482 "1931m23iqb4wddpdidm4ph746zpaw41kkjzmb074j7yyfpk7x1jv"))))
11483 (build-system haskell-build-system)
11484 (inputs
11485 `(("ghc-attoparsec" ,ghc-attoparsec)
11486 ("ghc-old-locale" ,ghc-old-locale)
11487 ("ghc-text" ,ghc-text)
11488 ("ghc-data-default-class" ,ghc-data-default-class)
11489 ("ghc-network" ,ghc-network)
11490 ("ghc-utf8-string" ,ghc-utf8-string)))
11491 (native-inputs
11492 `(("ghc-quickcheck" ,ghc-quickcheck)
11493 ("ghc-hspec" ,ghc-hspec)
11494 ("hspec-discover" ,hspec-discover)))
11495 (home-page "https://github.com/vimus/libmpd-haskell")
11496 (synopsis "Haskell client library for the Music Player Daemon")
11497 (description "This package provides a pure Haskell client library for the
11498 Music Player Daemon.")
11499 (license license:expat)))
11500
11501 (define-public ghc-alsa-core
11502 (package
11503 (name "ghc-alsa-core")
11504 (version "0.5.0.1")
11505 (source
11506 (origin
11507 (method url-fetch)
11508 (uri (string-append
11509 "mirror://hackage/package/alsa-core/alsa-core-"
11510 version
11511 ".tar.gz"))
11512 (sha256
11513 (base32
11514 "1avh4a419h9d2zsslg6j8hm87ppgsgqafz8ll037rk2yy1g4jl7b"))))
11515 (build-system haskell-build-system)
11516 (inputs
11517 `(("ghc-extensible-exceptions" ,ghc-extensible-exceptions)
11518 ("alsa-lib" ,alsa-lib)))
11519 (native-inputs
11520 `(("pkg-config" ,pkg-config)))
11521 (home-page "http://www.haskell.org/haskellwiki/ALSA")
11522 (synopsis "Binding to the ALSA Library API (Exceptions)")
11523 (description "This package provides access to ALSA infrastructure, that is
11524 needed by both alsa-seq and alsa-pcm.")
11525 (license license:bsd-3)))
11526
11527 (define-public ghc-base-unicode-symbols
11528 (package
11529 (name "ghc-base-unicode-symbols")
11530 (version "0.2.3")
11531 (source
11532 (origin
11533 (method url-fetch)
11534 (uri (string-append
11535 "mirror://hackage/package/base-unicode-symbols/base-unicode-symbols-"
11536 version
11537 ".tar.gz"))
11538 (sha256
11539 (base32
11540 "1ia6li7qjg1zkak4gf6mnbshw45mq9bfjr0jch58ds0lscmvwyzf"))))
11541 (build-system haskell-build-system)
11542 (home-page "http://www.haskell.org/haskellwiki/Unicode-symbols")
11543 (synopsis "Unicode alternatives for common functions and operators")
11544 (description "This package defines new symbols for a number of functions,
11545 operators and types in the base package. All symbols are documented with
11546 their actual definition and information regarding their Unicode code point.
11547 They should be completely interchangeable with their definitions. For
11548 further Unicode goodness you can enable the @code{UnicodeSyntax}
11549 @url{https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/glasgow_exs.html#unicode-syntax,
11550 language extension}. This extension enables Unicode characters to be used to
11551 stand for certain ASCII character sequences, i.e. → instead of @code{->},
11552 ∀ instead of @code{forall} and many others.")
11553 (license license:bsd-3)))
11554
11555 (define-public ghc-stylish-haskell
11556 (package
11557 (name "ghc-stylish-haskell")
11558 (version "0.9.2.1")
11559 (source
11560 (origin
11561 (method url-fetch)
11562 (uri (string-append
11563 "mirror://hackage/package/stylish-haskell/stylish-haskell-"
11564 version
11565 ".tar.gz"))
11566 (sha256
11567 (base32
11568 "1ls11fdx6snvfx8yykpidz142zzxwi5bazl49hgfqlwx50rqcp7w"))))
11569 (build-system haskell-build-system)
11570 (inputs
11571 `(("ghc-aeson" ,ghc-aeson)
11572 ("ghc-file-embed" ,ghc-file-embed)
11573 ("ghc-haskell-src-exts" ,ghc-haskell-src-exts)
11574 ("ghc-semigroups" ,ghc-semigroups)
11575 ("ghc-syb" ,ghc-syb)
11576 ("ghc-yaml" ,ghc-yaml)
11577 ("ghc-strict" ,ghc-strict)
11578 ("ghc-optparse-applicative"
11579 ,ghc-optparse-applicative)))
11580 (native-inputs
11581 `(("ghc-hunit" ,ghc-hunit)
11582 ("ghc-test-framework" ,ghc-test-framework)
11583 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)))
11584 (home-page "https://github.com/jaspervdj/stylish-haskell")
11585 (synopsis "Haskell code prettifier")
11586 (description "Stylish-haskell is a Haskell code prettifier. The goal is
11587 not to format all of the code in a file, to avoid \"getting in the way\".
11588 However, this tool can e.g. clean up import statements and help doing various
11589 tasks that get tedious very quickly. It can
11590 @itemize
11591 @item
11592 Align and sort @code{import} statements
11593 @item
11594 Group and wrap @code{{-# LANGUAGE #-}} pragmas, remove (some) redundant
11595 pragmas
11596 @item
11597 Remove trailing whitespaces
11598 @item
11599 Align branches in @code{case} and fields in records
11600 @item
11601 Convert line endings (customisable)
11602 @item
11603 Replace tabs by four spaces (turned off by default)
11604 @item
11605 Replace some ASCII sequences by their Unicode equivalent (turned off by
11606 default)
11607 @end itemize")
11608 (license license:bsd-3)))
11609
11610 (define-public ghc-wl-pprint-annotated
11611 (package
11612 (name "ghc-wl-pprint-annotated")
11613 (version "0.1.0.1")
11614 (source
11615 (origin
11616 (method url-fetch)
11617 (uri (string-append
11618 "mirror://hackage/package/wl-pprint-annotated/wl-pprint-annotated-"
11619 version
11620 ".tar.gz"))
11621 (sha256
11622 (base32
11623 "1br7qyf27iza213inwhf9bm2k6in0zbmfw6w4clqlc9f9cj2nrkb"))))
11624 (build-system haskell-build-system)
11625 (native-inputs
11626 `(("ghc-tasty" ,ghc-tasty)
11627 ("ghc-tasty-hunit" ,ghc-tasty-hunit)))
11628 (home-page
11629 "https://github.com/minad/wl-pprint-annotated#readme")
11630 (synopsis
11631 "Wadler/Leijen pretty printer with annotation support")
11632 (description
11633 "Annotations are useful for coloring. This is a limited version of
11634 @code{wl-pprint-extras} without support for point effects and without the free
11635 monad. Like in @code{annotated-wl-pprint}, only annotations are supported.
11636 Compared to @code{annotated-wl-pprint} this library provides a slightly
11637 modernized interface.")
11638 (license license:bsd-3)))
11639 ;;; haskell.scm ends here