gnu: r-fastseg: Update to 1.30.0.
[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 ;;;
21 ;;; This file is part of GNU Guix.
22 ;;;
23 ;;; GNU Guix is free software; you can redistribute it and/or modify it
24 ;;; under the terms of the GNU General Public License as published by
25 ;;; the Free Software Foundation; either version 3 of the License, or (at
26 ;;; your option) any later version.
27 ;;;
28 ;;; GNU Guix is distributed in the hope that it will be useful, but
29 ;;; WITHOUT ANY WARRANTY; without even the implied warranty of
30 ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
31 ;;; GNU General Public License for more details.
32 ;;;
33 ;;; You should have received a copy of the GNU General Public License
34 ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
35
36 (define-module (gnu packages haskell)
37 #:use-module (gnu packages)
38 #:use-module (gnu packages base)
39 #:use-module (gnu packages bootstrap)
40 #:use-module (gnu packages check)
41 #:use-module (gnu packages compression)
42 #:use-module (gnu packages elf)
43 #:use-module (gnu packages gcc)
44 #:use-module (gnu packages ghostscript)
45 #:use-module (gnu packages gl)
46 #:use-module (gnu packages graphviz)
47 #:use-module (gnu packages gtk)
48 #:use-module (gnu packages haskell-check)
49 #:use-module (gnu packages haskell-crypto)
50 #:use-module (gnu packages haskell-web)
51 #:use-module (gnu packages libffi)
52 #:use-module (gnu packages linux)
53 #:use-module (gnu packages lisp)
54 #:use-module (gnu packages lua)
55 #:use-module (gnu packages maths)
56 #:use-module (gnu packages multiprecision)
57 #:use-module (gnu packages ncurses)
58 #:use-module (gnu packages pcre)
59 #:use-module (gnu packages perl)
60 #:use-module (gnu packages pkg-config)
61 #:use-module (gnu packages python)
62 #:use-module (gnu packages sdl)
63 #:use-module (gnu packages tls)
64 #:use-module (gnu packages xml)
65 #:use-module (gnu packages xorg)
66 #:use-module (guix build-system gnu)
67 #:use-module (guix build-system haskell)
68 #:use-module (guix download)
69 #:use-module (guix git-download)
70 #:use-module ((guix licenses) #:prefix license:)
71 #:use-module (guix packages)
72 #:use-module (guix utils)
73 #:use-module (ice-9 regex)
74 #:use-module ((srfi srfi-1) #:select (alist-delete)))
75
76 (define-public cl-yale-haskell
77 (let ((commit "85f94c72a16c5f70301dd8db04cde9de2d7dd270")
78 (revision "1"))
79 (package
80 (name "cl-yale-haskell")
81 (version (string-append "2.0.5-" revision "." (string-take commit 9)))
82 (source (origin
83 (method git-fetch)
84 (uri (git-reference
85 (url "https://git.elephly.net/software/yale-haskell.git")
86 (commit commit)))
87 (file-name (string-append "yale-haskell-" commit "-checkout"))
88 (sha256
89 (base32
90 "0bal3m6ryrjamz5p93bhs9rp5msk8k7lpcqr44wd7xs9b9k8w74g"))))
91 (build-system gnu-build-system)
92 (arguments
93 `(#:tests? #f ; no tests
94 ;; Stripping binaries leads to a broken executable lisp system image.
95 #:strip-binaries? #f
96 #:make-flags
97 (list (string-append "PREFIX=" (assoc-ref %outputs "out")))
98 #:phases
99 (modify-phases %standard-phases
100 (replace 'configure
101 (lambda _
102 (setenv "PRELUDE" "./progs/prelude")
103 (setenv "HASKELL_LIBRARY" "./progs/lib")
104 (setenv "PRELUDEBIN" "./progs/prelude/clisp")
105 (setenv "HASKELLPROG" "./bin/clisp-haskell")
106 #t)))))
107 (inputs
108 `(("clisp" ,clisp)))
109 (home-page "https://git.elephly.net/software/yale-haskell.git")
110 (synopsis "Port of the Yale Haskell system to CLISP")
111 (description "This package provides the Yale Haskell system running on
112 top of CLISP.")
113 (license license:bsd-4))))
114
115 (define ghc-bootstrap-x86_64-7.8.4
116 (origin
117 (method url-fetch)
118 (uri
119 "https://www.haskell.org/ghc/dist/7.8.4/ghc-7.8.4-x86_64-unknown-linux-deb7.tar.xz")
120 (sha256
121 (base32
122 "13azsl53xgj20mi1hj9x0xb32vvcvs6cpmvwx6znxhas7blh0bpn"))))
123
124 (define ghc-bootstrap-i686-7.8.4
125 (origin
126 (method url-fetch)
127 (uri
128 "https://www.haskell.org/ghc/dist/7.8.4/ghc-7.8.4-i386-unknown-linux-deb7.tar.xz")
129 (sha256
130 (base32
131 "0wj5s435j0zgww70bj1d3f6wvnnpzlxwvwcyh2qv4qjq5z8j64kg"))))
132
133 ;; 43 tests out of 3965 fail.
134 ;;
135 ;; Most of them do not appear to be serious:
136 ;;
137 ;; - some tests generate files referring to "/bin/sh" and "/bin/ls". I've not
138 ;; figured out how these references are generated.
139 ;;
140 ;; - Some tests allocate more memory than expected (ca. 3% above upper limit)
141 ;;
142 ;; - Some tests try to load unavailable libriries: Control.Concurrent.STM,
143 ;; Data.Vector, Control.Monad.State.
144 ;;
145 ;; - Test posix010 tries to check the existence of a user on the system:
146 ;; getUserEntryForName: does not exist (no such user)
147 (define-public ghc-7
148 (package
149 (name "ghc")
150 (version "7.10.2")
151 (source
152 (origin
153 (method url-fetch)
154 (uri (string-append "https://www.haskell.org/ghc/dist/"
155 version "/" name "-" version "-src.tar.xz"))
156 (sha256
157 (base32
158 "1x8m4rp2v7ydnrz6z9g8x7z3x3d3pxhv2pixy7i7hkbqbdsp7kal"))))
159 (build-system gnu-build-system)
160 (supported-systems '("i686-linux" "x86_64-linux"))
161 (outputs '("out" "doc"))
162 (inputs
163 `(("gmp" ,gmp)
164 ("ncurses" ,ncurses)
165 ("libffi" ,libffi)
166 ("ghc-testsuite"
167 ,(origin
168 (method url-fetch)
169 (uri (string-append
170 "https://www.haskell.org/ghc/dist/"
171 version "/" name "-" version "-testsuite.tar.xz"))
172 (sha256
173 (base32
174 "0qp9da9ar87zbyn6wjgacd2ic1vgzbi3cklxnhsmjqyafv9qaj4b"))))))
175 (native-inputs
176 `(("perl" ,perl)
177 ("python" ,python-2) ; for tests (fails with python-3)
178 ("ghostscript" ,ghostscript) ; for tests
179 ("patchelf" ,patchelf)
180 ;; GHC is built with GHC. Therefore we need bootstrap binaries.
181 ("ghc-binary"
182 ,(if (string-match "x86_64" (or (%current-target-system) (%current-system)))
183 ghc-bootstrap-x86_64-7.8.4
184 ghc-bootstrap-i686-7.8.4))))
185 (arguments
186 `(#:test-target "test"
187 ;; We get a smaller number of test failures by disabling parallel test
188 ;; execution.
189 #:parallel-tests? #f
190
191 ;; The DSOs use $ORIGIN to refer to each other, but (guix build
192 ;; gremlin) doesn't support it yet, so skip this phase.
193 #:validate-runpath? #f
194
195 ;; Don't pass --build=<triplet>, because the configure script
196 ;; auto-detects slightly different triplets for --host and --target and
197 ;; then complains that they don't match.
198 #:build #f
199
200 #:modules ((guix build gnu-build-system)
201 (guix build utils)
202 (guix build rpath)
203 (srfi srfi-26)
204 (srfi srfi-1))
205 #:imported-modules (,@%gnu-build-system-modules
206 (guix build rpath))
207 #:configure-flags
208 (list
209 (string-append "--with-gmp-libraries="
210 (assoc-ref %build-inputs "gmp") "/lib")
211 (string-append "--with-gmp-includes="
212 (assoc-ref %build-inputs "gmp") "/include")
213 "--with-system-libffi"
214 (string-append "--with-ffi-libraries="
215 (assoc-ref %build-inputs "libffi") "/lib")
216 (string-append "--with-ffi-includes="
217 (assoc-ref %build-inputs "libffi") "/include"))
218 ;; FIXME: The user-guide needs dblatex, docbook-xsl and docbook-utils.
219 ;; Currently we do not have the last one.
220 ;; #:make-flags
221 ;; (list "BUILD_DOCBOOK_HTML = YES")
222 #:phases
223 (let* ((ghc-bootstrap-path
224 (string-append (getcwd) "/" ,name "-" ,version "/ghc-bin"))
225 (ghc-bootstrap-prefix
226 (string-append ghc-bootstrap-path "/usr" )))
227 (alist-cons-after
228 'unpack-bin 'unpack-testsuite-and-fix-bins
229 (lambda* (#:key inputs outputs #:allow-other-keys)
230 (with-directory-excursion ".."
231 (copy-file (assoc-ref inputs "ghc-testsuite")
232 "ghc-testsuite.tar.xz")
233 (system* "tar" "xvf" "ghc-testsuite.tar.xz"))
234 (substitute*
235 (list "testsuite/timeout/Makefile"
236 "testsuite/timeout/timeout.py"
237 "testsuite/timeout/timeout.hs"
238 "testsuite/tests/rename/prog006/Setup.lhs"
239 "testsuite/tests/programs/life_space_leak/life.test"
240 "libraries/process/System/Process/Internals.hs"
241 "libraries/unix/cbits/execvpe.c")
242 (("/bin/sh") (which "sh"))
243 (("/bin/rm") "rm"))
244 #t)
245 (alist-cons-after
246 'unpack 'unpack-bin
247 (lambda* (#:key inputs outputs #:allow-other-keys)
248 (mkdir-p ghc-bootstrap-prefix)
249 (with-directory-excursion ghc-bootstrap-path
250 (copy-file (assoc-ref inputs "ghc-binary")
251 "ghc-bin.tar.xz")
252 (zero? (system* "tar" "xvf" "ghc-bin.tar.xz"))))
253 (alist-cons-before
254 'install-bin 'configure-bin
255 (lambda* (#:key inputs outputs #:allow-other-keys)
256 (let* ((binaries
257 (list
258 "./utils/ghc-pwd/dist-install/build/tmp/ghc-pwd"
259 "./utils/hpc/dist-install/build/tmp/hpc"
260 "./utils/haddock/dist/build/tmp/haddock"
261 "./utils/hsc2hs/dist-install/build/tmp/hsc2hs"
262 "./utils/runghc/dist-install/build/tmp/runghc"
263 "./utils/ghc-cabal/dist-install/build/tmp/ghc-cabal"
264 "./utils/hp2ps/dist/build/tmp/hp2ps"
265 "./utils/ghc-pkg/dist-install/build/tmp/ghc-pkg"
266 "./utils/unlit/dist/build/tmp/unlit"
267 "./ghc/stage2/build/tmp/ghc-stage2"))
268 (gmp (assoc-ref inputs "gmp"))
269 (gmp-lib (string-append gmp "/lib"))
270 (gmp-include (string-append gmp "/include"))
271 (ncurses-lib
272 (string-append (assoc-ref inputs "ncurses") "/lib"))
273 (ld-so (string-append (assoc-ref inputs "libc")
274 ,(glibc-dynamic-linker)))
275 (libtinfo-dir
276 (string-append ghc-bootstrap-prefix
277 "/lib/ghc-7.8.4/terminfo-0.4.0.0")))
278 (with-directory-excursion
279 (string-append ghc-bootstrap-path "/ghc-7.8.4")
280 (setenv "CONFIG_SHELL" (which "bash"))
281 (setenv "LD_LIBRARY_PATH" gmp-lib)
282 ;; The binaries have "/lib64/ld-linux-x86-64.so.2" hardcoded.
283 (for-each
284 (cut system* "patchelf" "--set-interpreter" ld-so <>)
285 binaries)
286 ;; The binaries include a reference to libtinfo.so.5 which
287 ;; is a subset of libncurses.so.5. We create a symlink in a
288 ;; directory included in the bootstrap binaries rpath.
289 (mkdir-p libtinfo-dir)
290 (symlink
291 (string-append ncurses-lib "/libncursesw.so."
292 ;; Extract "6.0" from "6.0-20170930" if a
293 ;; dash-separated version tag exists.
294 ,(let* ((v (package-version ncurses))
295 (d (or (string-index v #\-)
296 (string-length v))))
297 (version-major+minor (string-take v d))))
298 (string-append libtinfo-dir "/libtinfo.so.5"))
299
300 (setenv "PATH"
301 (string-append (getenv "PATH") ":"
302 ghc-bootstrap-prefix "/bin"))
303 (system*
304 (string-append (getcwd) "/configure")
305 (string-append "--prefix=" ghc-bootstrap-prefix)
306 (string-append "--with-gmp-libraries=" gmp-lib)
307 (string-append "--with-gmp-includes=" gmp-include)))))
308 (alist-cons-before
309 'configure 'install-bin
310 (lambda* (#:key inputs outputs #:allow-other-keys)
311 (with-directory-excursion
312 (string-append ghc-bootstrap-path "/ghc-7.8.4")
313 (zero? (system* "make" "install"))))
314 %standard-phases)))))))
315 (native-search-paths (list (search-path-specification
316 (variable "GHC_PACKAGE_PATH")
317 (files (list
318 (string-append "lib/ghc-" version)))
319 (file-pattern ".*\\.conf\\.d$")
320 (file-type 'directory))))
321 (home-page "https://www.haskell.org/ghc")
322 (synopsis "The Glasgow Haskell Compiler")
323 (description
324 "The Glasgow Haskell Compiler (GHC) is a state-of-the-art compiler and
325 interactive environment for the functional language Haskell.")
326 (license license:bsd-3)))
327
328 (define-public ghc-8.0
329 (package
330 (name "ghc")
331 (version "8.0.2")
332 (source
333 (origin
334 (method url-fetch)
335 (uri (string-append "https://www.haskell.org/ghc/dist/"
336 version "/" name "-" version "-src.tar.xz"))
337 (sha256
338 (base32 "1c8qc4fhkycynk4g1f9hvk53dj6a1vvqi6bklqznns6hw59m8qhi"))
339 (patches
340 (search-patches
341 "ghc-dont-pass-linker-flags-via-response-files.patch"
342 "ghc-8.0-fall-back-to-madv_dontneed.patch"))))
343 (build-system gnu-build-system)
344 (supported-systems '("i686-linux" "x86_64-linux"))
345 (outputs '("out" "doc"))
346 (inputs
347 `(("gmp" ,gmp)
348 ("ncurses" ,ncurses)
349 ("libffi" ,libffi)
350 ("ghc-testsuite"
351 ,(origin
352 (method url-fetch)
353 (uri (string-append
354 "https://www.haskell.org/ghc/dist/"
355 version "/" name "-" version "-testsuite.tar.xz"))
356 (sha256
357 (base32 "1wjc3x68l305bl1h1ijd3yhqp2vqj83lkp3kqbr94qmmkqlms8sj"))))))
358 (native-inputs
359 `(("perl" ,perl)
360 ("python" ,python-2) ; for tests
361 ("ghostscript" ,ghostscript) ; for tests
362 ;; GHC is built with GHC.
363 ("ghc-bootstrap" ,ghc-7)))
364 (arguments
365 `(#:test-target "test"
366 ;; We get a smaller number of test failures by disabling parallel test
367 ;; execution.
368 #:parallel-tests? #f
369
370 ;; The DSOs use $ORIGIN to refer to each other, but (guix build
371 ;; gremlin) doesn't support it yet, so skip this phase.
372 #:validate-runpath? #f
373
374 ;; Don't pass --build=<triplet>, because the configure script
375 ;; auto-detects slightly different triplets for --host and --target and
376 ;; then complains that they don't match.
377 #:build #f
378
379 #:configure-flags
380 (list
381 (string-append "--with-gmp-libraries="
382 (assoc-ref %build-inputs "gmp") "/lib")
383 (string-append "--with-gmp-includes="
384 (assoc-ref %build-inputs "gmp") "/include")
385 "--with-system-libffi"
386 (string-append "--with-ffi-libraries="
387 (assoc-ref %build-inputs "libffi") "/lib")
388 (string-append "--with-ffi-includes="
389 (assoc-ref %build-inputs "libffi") "/include")
390 (string-append "--with-curses-libraries="
391 (assoc-ref %build-inputs "ncurses") "/lib")
392 (string-append "--with-curses-includes="
393 (assoc-ref %build-inputs "ncurses") "/include"))
394 #:phases
395 (modify-phases %standard-phases
396 (add-after 'unpack 'unpack-testsuite
397 (lambda* (#:key inputs #:allow-other-keys)
398 (with-directory-excursion ".."
399 (copy-file (assoc-ref inputs "ghc-testsuite")
400 "ghc-testsuite.tar.xz")
401 (zero? (system* "tar" "xvf" "ghc-testsuite.tar.xz")))))
402 (add-before 'build 'fix-lib-paths
403 (lambda _
404 (substitute*
405 (list "libraries/process/System/Process/Posix.hs"
406 "libraries/process/tests/process001.hs"
407 "libraries/process/tests/process002.hs"
408 "libraries/unix/cbits/execvpe.c")
409 (("/bin/sh") (which "sh"))
410 (("/bin/ls") (which "ls")))
411 #t))
412 (add-before 'build 'fix-environment
413 (lambda _
414 (unsetenv "GHC_PACKAGE_PATH")
415 (setenv "CONFIG_SHELL" (which "bash"))
416 #t))
417 (add-before 'check 'fix-testsuite
418 (lambda _
419 (substitute*
420 (list "testsuite/timeout/Makefile"
421 "testsuite/timeout/timeout.py"
422 "testsuite/timeout/timeout.hs"
423 "testsuite/tests/programs/life_space_leak/life.test")
424 (("/bin/sh") (which "sh"))
425 (("/bin/rm") "rm"))
426 #t)))))
427 (native-search-paths (list (search-path-specification
428 (variable "GHC_PACKAGE_PATH")
429 (files (list
430 (string-append "lib/ghc-" version)))
431 (file-pattern ".*\\.conf\\.d$")
432 (file-type 'directory))))
433 (home-page "https://www.haskell.org/ghc")
434 (synopsis "The Glasgow Haskell Compiler")
435 (description
436 "The Glasgow Haskell Compiler (GHC) is a state-of-the-art compiler and
437 interactive environment for the functional language Haskell.")
438 (license license:bsd-3)))
439
440 (define-public ghc-8
441 (package (inherit ghc-8.0)
442 (name "ghc")
443 (version "8.4.3")
444 (source
445 (origin
446 (method url-fetch)
447 (uri (string-append "https://www.haskell.org/ghc/dist/"
448 version "/" name "-" version "-src.tar.xz"))
449 (sha256
450 (base32 "1mk046vb561j75saz05rghhbkps46ym5aci4264dwc2qk3dayixf"))))
451 (inputs
452 `(("gmp" ,gmp)
453 ("ncurses" ,ncurses)
454 ("libffi" ,libffi)
455 ("target-binutils" ,binutils)
456 ("target-gcc" ,gcc)
457 ("target-ld-wrapper" ,(make-ld-wrapper "ld-wrapper"
458 #:binutils binutils))))
459 (native-inputs
460 `(("perl" ,perl)
461 ("python" ,python) ; for tests
462 ("ghostscript" ,ghostscript) ; for tests
463 ;; GHC 8.4.3 is built with GHC 8.
464 ("ghc-bootstrap" ,ghc-8.0)
465 ("ghc-testsuite"
466 ,(origin
467 (method url-fetch)
468 (uri (string-append
469 "https://www.haskell.org/ghc/dist/"
470 version "/" name "-" version "-testsuite.tar.xz"))
471 (sha256
472 (base32
473 "1z55b1z0m3plqd2d1ks6w5wvx7igm7zsk3i4v7cms003z0as0hzz"))))))
474 (arguments
475 `(#:test-target "test"
476 ;; We get a smaller number of test failures by disabling parallel test
477 ;; execution.
478 #:parallel-tests? #f
479
480 ;; The DSOs use $ORIGIN to refer to each other, but (guix build
481 ;; gremlin) doesn't support it yet, so skip this phase.
482 #:validate-runpath? #f
483
484 ;; Don't pass --build=<triplet>, because the configure script
485 ;; auto-detects slightly different triplets for --host and --target and
486 ;; then complains that they don't match.
487 #:build #f
488
489 #:configure-flags
490 (list
491 (string-append "--with-gmp-libraries="
492 (assoc-ref %build-inputs "gmp") "/lib")
493 (string-append "--with-gmp-includes="
494 (assoc-ref %build-inputs "gmp") "/include")
495 "--with-system-libffi"
496 (string-append "--with-ffi-libraries="
497 (assoc-ref %build-inputs "libffi") "/lib")
498 (string-append "--with-ffi-includes="
499 (assoc-ref %build-inputs "libffi") "/include")
500 (string-append "--with-curses-libraries="
501 (assoc-ref %build-inputs "ncurses") "/lib")
502 (string-append "--with-curses-includes="
503 (assoc-ref %build-inputs "ncurses") "/include"))
504 #:phases
505 (modify-phases %standard-phases
506 (add-after 'unpack 'unpack-testsuite
507 (lambda* (#:key inputs #:allow-other-keys)
508 (invoke "tar" "xvf"
509 (assoc-ref inputs "ghc-testsuite")
510 "--strip-components=1")
511 #t))
512 ;; This phase patches the 'ghc-pkg' command so that it sorts the list
513 ;; of packages in the binary cache it generates.
514 (add-before 'build 'fix-ghc-pkg-nondeterminism
515 (lambda _
516 (substitute* "utils/ghc-pkg/Main.hs"
517 (("confs = map \\(path </>\\) \\$ filter \\(\".conf\" `isSuffixOf`\\) fs")
518 "confs = map (path </>) $ filter (\".conf\" `isSuffixOf`) (sort fs)"))
519 #t))
520 (add-after 'unpack-testsuite 'fix-shell-wrappers
521 (lambda _
522 (substitute* '("driver/ghci/ghc.mk"
523 "utils/mkdirhier/ghc.mk"
524 "rules/shell-wrapper.mk")
525 (("echo '#!/bin/sh'")
526 (format #f "echo '#!~a'" (which "sh"))))
527 #t))
528 ;; This is necessary because the configure system no longer uses
529 ;; “AC_PATH_” but “AC_CHECK_”, setting the variables to just the
530 ;; plain command names.
531 (add-before 'configure 'set-target-programs
532 (lambda* (#:key inputs #:allow-other-keys)
533 (let ((binutils (assoc-ref inputs "target-binutils"))
534 (gcc (assoc-ref inputs "target-gcc"))
535 (ld-wrapper (assoc-ref inputs "target-ld-wrapper")))
536 (setenv "CC" (string-append gcc "/bin/gcc"))
537 (setenv "CXX" (string-append gcc "/bin/g++"))
538 (setenv "LD" (string-append ld-wrapper "/bin/ld"))
539 (setenv "NM" (string-append binutils "/bin/nm"))
540 (setenv "RANLIB" (string-append binutils "/bin/ranlib"))
541 (setenv "STRIP" (string-append binutils "/bin/strip"))
542 ;; The 'ar' command does not follow the same pattern.
543 (setenv "fp_prog_ar" (string-append binutils "/bin/ar"))
544 #t)))
545 (add-before 'build 'fix-references
546 (lambda _
547 (substitute* '("testsuite/timeout/Makefile"
548 "testsuite/timeout/timeout.py"
549 "testsuite/timeout/timeout.hs"
550 "testsuite/tests/programs/life_space_leak/life.test"
551 ;; libraries
552 "libraries/process/System/Process/Posix.hs"
553 "libraries/process/tests/process001.hs"
554 "libraries/process/tests/process002.hs"
555 "libraries/unix/cbits/execvpe.c")
556 (("/bin/sh") (which "sh"))
557 (("/bin/ls") (which "ls"))
558 (("/bin/rm") "rm"))
559 #t))
560 (add-before 'build 'fix-environment
561 (lambda _
562 (unsetenv "GHC_PACKAGE_PATH")
563 (setenv "CONFIG_SHELL" (which "bash"))
564 #t)))))
565 (native-search-paths (list (search-path-specification
566 (variable "GHC_PACKAGE_PATH")
567 (files (list
568 (string-append "lib/ghc-" version)))
569 (file-pattern ".*\\.conf\\.d$")
570 (file-type 'directory))))))
571
572 (define-public ghc ghc-8)
573
574 (define-public ghc-hostname
575 (package
576 (name "ghc-hostname")
577 (version "1.0")
578 (source
579 (origin
580 (method url-fetch)
581 (uri (string-append "https://hackage.haskell.org/package/hostname/"
582 "hostname-" version ".tar.gz"))
583 (sha256
584 (base32
585 "0p6gm4328946qxc295zb6vhwhf07l1fma82vd0siylnsnsqxlhwv"))))
586 (build-system haskell-build-system)
587 (home-page "https://hackage.haskell.org/package/hostname")
588 (synopsis "Hostname in Haskell")
589 (description "Network.HostName is a simple package providing a means to
590 determine the hostname.")
591 (license license:bsd-3)))
592
593 (define-public ghc-convertible
594 (package
595 (name "ghc-convertible")
596 (version "1.1.1.0")
597 (source
598 (origin
599 (method url-fetch)
600 (uri (string-append "https://hackage.haskell.org/package/convertible/"
601 "convertible-" version ".tar.gz"))
602 (sha256
603 (base32
604 "0v18ap1mccnndgxmbfgyjdicg8jlss01bd5fq8a576dr0h4sgyg9"))))
605 (build-system haskell-build-system)
606 (inputs
607 `(("ghc-old-time" ,ghc-old-time)
608 ("ghc-old-locale" ,ghc-old-locale)
609 ("ghc-text" ,ghc-text)))
610 (home-page "https://hackage.haskell.org/package/convertible")
611 (synopsis "Typeclasses and instances for converting between types")
612 (description
613 "This package provides a typeclass with a single function that is
614 designed to help convert between different types: numeric values, dates and
615 times, and the like. The conversions perform bounds checking and return a
616 pure @code{Either} value. This means that you need not remember which specific
617 function performs the conversion you desire.")
618 (license license:bsd-3)))
619
620 (define-public ghc-double-conversion
621 (package
622 (name "ghc-double-conversion")
623 (version "2.0.2.0")
624 (source
625 (origin
626 (method url-fetch)
627 (uri (string-append "https://hackage.haskell.org/package/"
628 "double-conversion/double-conversion-"
629 version ".tar.gz"))
630 (sha256
631 (base32
632 "0sx2kc1gw72mjvd8vph8bbjw5whfxfv92rsdhjg1c0al75rf3ka4"))))
633 (build-system haskell-build-system)
634 (inputs `(("ghc-text" ,ghc-text)))
635 (native-inputs
636 `(("ghc-hunit" ,ghc-hunit)
637 ("ghc-test-framework" ,ghc-test-framework)
638 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
639 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
640 (home-page "https://github.com/bos/double-conversion")
641 (synopsis "Fast conversion between double precision floating point and text")
642 (description
643 "This package provides a library that performs fast, accurate conversion
644 between double precision floating point and text.")
645 (license license:bsd-3)))
646
647 (define-public ghc-libxml
648 (package
649 (name "ghc-libxml")
650 (version "0.1.1")
651 (source
652 (origin
653 (method url-fetch)
654 (uri (string-append "https://hackage.haskell.org/package/libxml/"
655 "libxml-" version ".tar.gz"))
656 (sha256
657 (base32
658 "01zvk86kg726lf2vnlr7dxiz7g3xwi5a4ak9gcfbwyhynkzjmsfi"))))
659 (build-system haskell-build-system)
660 (inputs
661 `(("libxml2" ,libxml2)))
662 (arguments
663 `(#:configure-flags
664 `(,(string-append "--extra-include-dirs="
665 (assoc-ref %build-inputs "libxml2")
666 "/include/libxml2"))))
667 (home-page "https://hackage.haskell.org/package/libxml")
668 (synopsis "Haskell bindings to libxml2")
669 (description
670 "This library provides minimal Haskell binding to libxml2.")
671 (license license:bsd-3)))
672
673 (define-public ghc-prelude-extras
674 (package
675 (name "ghc-prelude-extras")
676 (version "0.4.0.3")
677 (source
678 (origin
679 (method url-fetch)
680 (uri (string-append
681 "https://hackage.haskell.org/package/prelude-extras/prelude-extras-"
682 version
683 ".tar.gz"))
684 (sha256
685 (base32
686 "0xzqdf3nl2h0ra4gnslm1m1nsxlsgc0hh6ky3vn578vh11zhifq9"))))
687 (build-system haskell-build-system)
688 (home-page "https://github.com/ekmett/prelude-extras")
689 (synopsis "Higher order versions of Prelude classes")
690 (description "This library provides higher order versions of
691 @code{Prelude} classes to ease programming with polymorphic recursion and
692 reduce @code{UndecidableInstances}.")
693 (license license:bsd-3)))
694
695 (define-public ghc-data-default
696 (package
697 (name "ghc-data-default")
698 (version "0.7.1.1")
699 (source
700 (origin
701 (method url-fetch)
702 (uri (string-append
703 "https://hackage.haskell.org/package/data-default/data-default-"
704 version
705 ".tar.gz"))
706 (sha256
707 (base32 "04d5n8ybmcxba9qb6h389w9zfq1lvj81b82jh6maqp6pkhkmvydh"))))
708 (build-system haskell-build-system)
709 (inputs
710 `(("ghc-data-default-class"
711 ,ghc-data-default-class)
712 ("ghc-data-default-instances-base"
713 ,ghc-data-default-instances-base)
714 ("ghc-data-default-instances-containers"
715 ,ghc-data-default-instances-containers)
716 ("ghc-data-default-instances-dlist"
717 ,ghc-data-default-instances-dlist)
718 ("ghc-data-default-instances-old-locale"
719 ,ghc-data-default-instances-old-locale)))
720 (home-page "https://hackage.haskell.org/package/data-default")
721 (synopsis "Types with default values")
722 (description
723 "This package defines a class for types with a default value, and
724 provides instances for types from the base, containers, dlist and old-locale
725 packages.")
726 (license license:bsd-3)))
727
728 (define-public ghc-data-default-class
729 (package
730 (name "ghc-data-default-class")
731 (version "0.1.2.0")
732 (source
733 (origin
734 (method url-fetch)
735 (uri (string-append
736 "https://hackage.haskell.org/package/data-default-class/"
737 "data-default-class-" version ".tar.gz"))
738 (sha256
739 (base32 "0miyjz8d4jyvqf2vp60lyfbnflx6cj2k8apmm9ly1hq0y0iv80ag"))))
740 (build-system haskell-build-system)
741 (home-page "https://hackage.haskell.org/package/data-default-class")
742 (synopsis "Types with default values")
743 (description
744 "This package defines a class for types with default values.")
745 (license license:bsd-3)))
746
747 (define-public ghc-data-default-instances-base
748 (package
749 (name "ghc-data-default-instances-base")
750 (version "0.1.0.1")
751 (source
752 (origin
753 (method url-fetch)
754 (uri (string-append
755 "https://hackage.haskell.org/package/"
756 "data-default-instances-base/"
757 "data-default-instances-base-" version ".tar.gz"))
758 (sha256
759 (base32 "0ym1sw3ssdzzifxxhh76qlv8kkmb2iclc158incv1dklyr9y8kw4"))))
760 (build-system haskell-build-system)
761 (inputs
762 `(("ghc-data-default-class" ,ghc-data-default-class)))
763 (home-page "https://hackage.haskell.org/package/data-default-instances-base")
764 (synopsis "Default instances for types in base")
765 (description
766 "This package provides default instances for types from the base
767 package.")
768 (license license:bsd-3)))
769
770 (define-public ghc-data-default-instances-containers
771 (package
772 (name "ghc-data-default-instances-containers")
773 (version "0.0.1")
774 (source
775 (origin
776 (method url-fetch)
777 (uri (string-append
778 "https://hackage.haskell.org/package/"
779 "data-default-instances-containers/"
780 "data-default-instances-containers-" version ".tar.gz"))
781 (sha256
782 (base32 "06h8xka031w752a7cjlzghvr8adqbl95xj9z5zc1b62w02phfpm5"))))
783 (build-system haskell-build-system)
784 (inputs
785 `(("ghc-data-default-class" ,ghc-data-default-class)))
786 (home-page "https://hackage.haskell.org/package/data-default-instances-containers")
787 (synopsis "Default instances for types in containers")
788 (description "Provides default instances for types from the containers
789 package.")
790 (license license:bsd-3)))
791
792 (define-public ghc-data-default-instances-dlist
793 (package
794 (name "ghc-data-default-instances-dlist")
795 (version "0.0.1")
796 (source
797 (origin
798 (method url-fetch)
799 (uri (string-append
800 "https://hackage.haskell.org/package/"
801 "data-default-instances-dlist/"
802 "data-default-instances-dlist-" version ".tar.gz"))
803 (sha256
804 (base32 "0narkdqiprhgayjiawrr4390h4rq4pl2pb6mvixbv2phrc8kfs3x"))))
805 (build-system haskell-build-system)
806 (inputs
807 `(("ghc-data-default-class" ,ghc-data-default-class)
808 ("ghc-dlist" ,ghc-dlist)))
809 (home-page "https://hackage.haskell.org/package/data-default-instances-dlist")
810 (synopsis "Default instances for types in dlist")
811 (description "Provides default instances for types from the dlist
812 package.")
813 (license license:bsd-3)))
814
815 (define-public ghc-code-page
816 (package
817 (name "ghc-code-page")
818 (version "0.1.3")
819 (source
820 (origin
821 (method url-fetch)
822 (uri (string-append
823 "https://hackage.haskell.org/package/code-page/code-page-"
824 version ".tar.gz"))
825 (sha256
826 (base32
827 "1491frk4jx6dlhifky9dvcxbsbcfssrz979a5hp5zn061rh8cp76"))))
828 (build-system haskell-build-system)
829 (home-page "https://github.com/RyanGlScott/code-page")
830 (synopsis "Windows code page library for Haskell")
831 (description "A cross-platform library with functions for adjusting
832 code pages on Windows. On all other operating systems, the library does
833 nothing.")
834 (license license:bsd-3)))
835
836 (define-public ghc-libffi
837 (package
838 (name "ghc-libffi")
839 (version "0.1")
840 (source
841 (origin
842 (method url-fetch)
843 (uri (string-append "https://hackage.haskell.org/package/"
844 "libffi/libffi-" version ".tar.gz"))
845 (sha256
846 (base32
847 "0g7jnhng3j7z5517aaqga0144aamibsbpgm3yynwyfzkq1kp0f28"))))
848 (build-system haskell-build-system)
849 (native-inputs `(("pkg-config" ,pkg-config)))
850 (inputs `(("libffi" ,libffi)))
851 (home-page "http://hackage.haskell.org/package/libffi")
852 (synopsis "Haskell binding to libffi")
853 (description
854 "A binding to libffi, allowing C functions of types only known at runtime
855 to be called from Haskell.")
856 (license license:bsd-3)))
857
858 (define-public ghc-newtype-generics
859 (package
860 (name "ghc-newtype-generics")
861 (version "0.5.3")
862 (source
863 (origin
864 (method url-fetch)
865 (uri (string-append "https://hackage.haskell.org/package/"
866 "newtype-generics/newtype-generics-"
867 version ".tar.gz"))
868 (sha256
869 (base32
870 "0igyisw2djg19v9vkna1rwf47k97mvkvk4bbkmswznvbm00z15gj"))))
871 (build-system haskell-build-system)
872 (native-inputs
873 `(("ghc-hspec" ,ghc-hspec)
874 ("hspec-discover" ,hspec-discover)))
875 (home-page "http://github.com/sjakobi/newtype-generics")
876 (synopsis "Typeclass and set of functions for working with newtypes")
877 (description "The @code{Newtype} typeclass represents the packing and
878 unpacking of a newtype, and allows you to operate under that newtype with
879 functions such as @code{ala}. Generics support was added in version 0.4,
880 making this package a full replacement for the original newtype package,
881 and an alternative to newtype-th.")
882 (license license:bsd-3)))
883
884 (define-public ghc-memotrie
885 (package
886 (name "ghc-memotrie")
887 (version "0.6.9")
888 (source
889 (origin
890 (method url-fetch)
891 (uri (string-append
892 "https://hackage.haskell.org/package/MemoTrie/MemoTrie-"
893 version
894 ".tar.gz"))
895 (sha256
896 (base32
897 "157p0pi6rrq74a35mq6zkkycv4ah7xhkbrcmnkb9xf7pznw4aq0x"))))
898 (build-system haskell-build-system)
899 (inputs
900 `(("ghc-newtype-generics" ,ghc-newtype-generics)))
901 (home-page "https://github.com/conal/MemoTrie")
902 (synopsis "Trie-based memo functions")
903 (description "This package provides a functional library for creating
904 efficient memo functions using tries.")
905 (license license:bsd-3)))
906
907 (define-public ghc-tree-diff
908 (package
909 (name "ghc-tree-diff")
910 (version "0.0.1")
911 (source
912 (origin
913 (method url-fetch)
914 (uri (string-append
915 "https://hackage.haskell.org/package/tree-diff/tree-diff-"
916 version
917 ".tar.gz"))
918 (sha256
919 (base32
920 "049v44c520jy3icxlnrvbdblh3mjmvd7m6qmkzxbzkf02x63xqmz"))))
921 (build-system haskell-build-system)
922 (arguments
923 `(#:cabal-revision
924 ("4" "1rqxxyj6hqllahs11693g855cxz8mgnb490s7j1ksd300i5xgjsp")
925 #:phases
926 (modify-phases %standard-phases
927 (add-before 'configure 'update-constraints
928 (lambda _
929 (substitute* "tree-diff.cabal"
930 (("trifecta >=1\\.7\\.1\\.1 && <1\\.8")
931 "trifecta >=1.7.1.1 && <=2")))))))
932 (inputs
933 `(("ghc-aeson" ,ghc-aeson)
934 ("ghc-ansi-wl-pprint" ,ghc-ansi-wl-pprint)
935 ("ghc-ansi-terminal" ,ghc-ansi-terminal)
936 ("ghc-base-compat" ,ghc-base-compat)
937 ("ghc-generics-sop" ,ghc-generics-sop)
938 ("ghc-hashable" ,ghc-hashable)
939 ("ghc-memotrie" ,ghc-memotrie)
940 ("ghc-parsec" ,ghc-parsec)
941 ("ghc-parsers" ,ghc-parsers)
942 ("ghc-quickcheck" ,ghc-quickcheck)
943 ("ghc-scientific" ,ghc-scientific)
944 ("ghc-tagged" ,ghc-tagged)
945 ("ghc-text" ,ghc-text)
946 ("ghc-unordered-containers" ,ghc-unordered-containers)
947 ("ghc-uuid-types" ,ghc-uuid-types)
948 ("ghc-vector" ,ghc-vector)))
949 (native-inputs
950 `(("ghc-base-compat" ,ghc-base-compat)
951 ("ghc-quickcheck" ,ghc-quickcheck)
952 ("ghc-ansi-terminal" ,ghc-ansi-terminal)
953 ("ghc-ansi-wl-pprint" ,ghc-ansi-wl-pprint)
954 ("ghc-parsec" ,ghc-parsec)
955 ("ghc-trifecta" ,ghc-trifecta)
956 ("ghc-tasty" ,ghc-tasty)
957 ("ghc-tasty-golden" ,ghc-tasty-golden)
958 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
959 (home-page "https://github.com/phadej/tree-diff")
960 (synopsis "Compute difference between (expression) trees")
961 (description "This Haskell library provides a function for computing
962 the difference between (expression) trees. It also provides a way to
963 compute the difference between arbitrary abstract datatypes (ADTs) using
964 @code{Generics}-derivable helpers.")
965 (license license:bsd-3)))
966
967 (define-public ghc-haddock-library
968 (package
969 (name "ghc-haddock-library")
970 (version "1.5.0.1")
971 (source
972 (origin
973 (method url-fetch)
974 (uri (string-append
975 "https://hackage.haskell.org/package/haddock-library/haddock-library-"
976 version
977 ".tar.gz"))
978 (sha256
979 (base32
980 "1cmbg8l5xrwpliclwy3l057raypjqy0hsg1h1743ahaj8gq10b7z"))
981 (patches (search-patches
982 "ghc-haddock-library-unbundle.patch"))
983 (modules '((guix build utils)))
984 (snippet '(begin
985 (delete-file-recursively "vendor")
986 #t))))
987 (build-system haskell-build-system)
988 (arguments
989 `(#:phases
990 (modify-phases %standard-phases
991 (add-before 'configure 'relax-test-suite-dependencies
992 (lambda _
993 (substitute* "haddock-library.cabal"
994 (("base-compat\\s*\\^>= 0\\.9\\.3") "base-compat")
995 (("hspec\\s*\\^>= 2\\.4\\.4") "hspec"))))
996 ;; The release tarball does not contain the "fixtures/examples"
997 ;; directory, which is required for testing. In the upstream
998 ;; repository, the directory exists and is populated. Here, we
999 ;; create an empty directory to placate the tests.
1000 (add-before 'check 'add-examples-directory
1001 (lambda _
1002 (mkdir "fixtures/examples")
1003 #t)))))
1004 (native-inputs
1005 `(("ghc-base-compat" ,ghc-base-compat)
1006 ("ghc-hspec" ,ghc-hspec)
1007 ("ghc-optparse-applicative" ,ghc-optparse-applicative)
1008 ("ghc-quickcheck" ,ghc-quickcheck)
1009 ("ghc-tree-diff" ,ghc-tree-diff)
1010 ("hspec-discover" ,hspec-discover)))
1011 (home-page "https://www.haskell.org/haddock/")
1012 (synopsis "Library exposing some functionality of Haddock")
1013 (description
1014 "Haddock is a documentation-generation tool for Haskell libraries. These
1015 modules expose some functionality of it without pulling in the GHC dependency.
1016 Please note that the API is likely to change so specify upper bounds in your
1017 project if you can't release often. For interacting with Haddock itself, see
1018 the ‘haddock’ package.")
1019 (license license:bsd-3)))
1020
1021 (define-public ghc-haddock-api
1022 (package
1023 (name "ghc-haddock-api")
1024 (version "2.19.0.1")
1025 (source
1026 (origin
1027 (method url-fetch)
1028 (uri (string-append
1029 "https://hackage.haskell.org/package/haddock-api/haddock-api-"
1030 version
1031 ".tar.gz"))
1032 (sha256
1033 (base32
1034 "0c6i7sljp7myz25d90gyw68a90i5jcrkajkxcciikp2hjirfaas3"))))
1035 (build-system haskell-build-system)
1036 (arguments
1037 `(#:phases
1038 (modify-phases %standard-phases
1039 (add-before 'configure 'update-constraints
1040 (lambda _
1041 (substitute* "haddock-api.cabal"
1042 (("Cabal \\^>= 2\\.0\\.0")
1043 "Cabal ^>= 2.2.0")
1044 (("hspec \\^>= 2\\.4\\.4")
1045 "hspec >= 2.4.4 && < 2.6")))))))
1046 (inputs
1047 `(("ghc-paths" ,ghc-paths)
1048 ("ghc-haddock-library" ,ghc-haddock-library)))
1049 (native-inputs
1050 `(("ghc-quickcheck" ,ghc-quickcheck)
1051 ("ghc-hspec" ,ghc-hspec)
1052 ("hspec-discover" ,hspec-discover)))
1053 (home-page "https://www.haskell.org/haddock/")
1054 (synopsis "API for documentation-generation tool Haddock")
1055 (description "This package provides an API to Haddock, the
1056 documentation-generation tool for Haskell libraries.")
1057 (license license:bsd-3)))
1058
1059 (define-public ghc-haddock-test
1060 (package
1061 (name "ghc-haddock-test")
1062 (version "0.0.1")
1063 (source
1064 (origin
1065 (method url-fetch)
1066 (uri (string-append "https://hackage.haskell.org/package/"
1067 "haddock-test/haddock-test-"
1068 version ".tar.gz"))
1069 (sha256
1070 (base32
1071 "1ax8fnfrwx66csj952f3virxzapipan9da7z5l1zc12nqkifbs7w"))))
1072 (build-system haskell-build-system)
1073 (inputs
1074 `(("ghc-xml" ,ghc-xml)
1075 ("ghc-syb" ,ghc-syb)))
1076 (home-page "http://www.haskell.org/haddock/")
1077 (synopsis "Test utilities for Haddock")
1078 (description "This package provides test utilities for Haddock.")
1079 (license license:bsd-3)))
1080
1081 (define-public ghc-haddock
1082 (package
1083 (name "ghc-haddock")
1084 (version "2.19.0.1")
1085 (source
1086 (origin
1087 (method url-fetch)
1088 (uri (string-append
1089 "https://hackage.haskell.org/package/haddock/haddock-"
1090 version
1091 ".tar.gz"))
1092 (sha256
1093 (base32
1094 "1g1j9j0hf2yhyyh0gwz6bzbvfvliqz9x8a8hnkmwghm7w3xa6sb7"))))
1095 (build-system haskell-build-system)
1096 (arguments
1097 `(#:phases
1098 (modify-phases %standard-phases
1099 ;; There are four test suites that require the ghc-haddock-test
1100 ;; package, which no longer builds with GHC 8.4.3. This phase
1101 ;; removes these four test suites from the Cabal file, so that we
1102 ;; do not need ghc-haddock-test as an input.
1103 (add-before 'configure 'remove-haddock-test-test-suites
1104 (lambda _
1105 (use-modules (ice-9 rdelim))
1106 (with-atomic-file-replacement "haddock.cabal"
1107 (lambda (in out)
1108 (let loop ((line (read-line in 'concat)) (deleting? #f))
1109 (cond
1110 ((eof-object? line) #t)
1111 ((string-every char-set:whitespace line)
1112 (unless deleting? (display line out))
1113 (loop (read-line in 'concat) #f))
1114 ((member line '("test-suite html-test\n"
1115 "test-suite hypsrc-test\n"
1116 "test-suite latex-test\n"
1117 "test-suite hoogle-test\n"))
1118 (loop (read-line in 'concat) #t))
1119 (else
1120 (unless deleting? (display line out))
1121 (loop (read-line in 'concat) deleting?)))))))))))
1122 (inputs `(("ghc-haddock-api" ,ghc-haddock-api)))
1123 (native-inputs
1124 `(("ghc-hspec" ,ghc-hspec)))
1125 (home-page "https://www.haskell.org/haddock/")
1126 (synopsis
1127 "Documentation-generation tool for Haskell libraries")
1128 (description
1129 "Haddock is a documentation-generation tool for Haskell libraries.")
1130 (license license:bsd-3)))
1131
1132 (define-public ghc-simple-reflect
1133 (package
1134 (name "ghc-simple-reflect")
1135 (version "0.3.3")
1136 (source
1137 (origin
1138 (method url-fetch)
1139 (uri (string-append
1140 "https://hackage.haskell.org/package/simple-reflect/simple-reflect-"
1141 version
1142 ".tar.gz"))
1143 (sha256
1144 (base32
1145 "0ayvrx5cm8n6db21jiyjmk5h93pw7cz1707hih09hlhk9jh5x0h7"))))
1146 (build-system haskell-build-system)
1147 (home-page
1148 "https://twanvl.nl/blog/haskell/simple-reflection-of-expressions")
1149 (synopsis
1150 "Simple reflection of expressions containing variables")
1151 (description
1152 "This package allows simple reflection of expressions containing
1153 variables. Reflection here means that a Haskell expression is turned into a
1154 string. The primary aim of this package is teaching and understanding; there
1155 are no options for manipulating the reflected expressions beyond showing
1156 them.")
1157 (license license:bsd-3)))
1158
1159 (define-public ghc-haskell-src
1160 (package
1161 (name "ghc-haskell-src")
1162 (version "1.0.3.0")
1163 (source
1164 (origin
1165 (method url-fetch)
1166 (uri (string-append
1167 "https://hackage.haskell.org/package/haskell-src/haskell-src-"
1168 version
1169 ".tar.gz"))
1170 (sha256
1171 (base32
1172 "1g4dj1f0j68bhn4ixfac63wjzy6gsp6kwgxryb1k5nl3i0g99d5l"))))
1173 (build-system haskell-build-system)
1174 (inputs
1175 `(("ghc-happy" ,ghc-happy)
1176 ("ghc-syb" ,ghc-syb)))
1177 (home-page
1178 "https://hackage.haskell.org/package/haskell-src")
1179 (synopsis
1180 "Support for manipulating Haskell source code")
1181 (description
1182 "The @code{haskell-src} package provides support for manipulating Haskell
1183 source code. The package provides a lexer, parser and pretty-printer, and a
1184 definition of a Haskell abstract syntax tree (AST). Common uses of this
1185 package are to parse or generate Haskell 98 code.")
1186 (license license:bsd-3)))
1187
1188 (define-public ghc-alex
1189 (package
1190 (name "ghc-alex")
1191 (version "3.2.4")
1192 (source
1193 (origin
1194 (method url-fetch)
1195 (uri (string-append
1196 "https://hackage.haskell.org/package/alex/alex-"
1197 version
1198 ".tar.gz"))
1199 (sha256
1200 (base32
1201 "0cpjixgsr0b2x4s6hz4aa6gnmjw9i7xd9nlfi8m37zqlidq4v3nm"))))
1202 (build-system haskell-build-system)
1203 (arguments
1204 `(#:phases
1205 (modify-phases %standard-phases
1206 (add-before 'check 'set-check-variables
1207 (lambda _
1208 (setenv "PATH" (string-append (getcwd) "/dist/build/alex:"
1209 (getenv "PATH")))
1210 (setenv "alex_datadir" (string-append (getcwd) "/data"))
1211 #t)))))
1212 (inputs `(("ghc-quickcheck" ,ghc-quickcheck)))
1213 (native-inputs
1214 `(("which" ,which)))
1215 (home-page "https://www.haskell.org/alex/")
1216 (synopsis
1217 "Tool for generating lexical analysers in Haskell")
1218 (description
1219 "Alex is a tool for generating lexical analysers in Haskell. It takes a
1220 description of tokens based on regular expressions and generates a Haskell
1221 module containing code for scanning text efficiently. It is similar to the
1222 tool lex or flex for C/C++.")
1223 (license license:bsd-3)))
1224
1225 (define-public ghc-cgi
1226 (package
1227 (name "ghc-cgi")
1228 (version "3001.3.0.2")
1229 (source
1230 (origin
1231 (method url-fetch)
1232 (uri (string-append
1233 "https://hackage.haskell.org/package/cgi/cgi-"
1234 version
1235 ".tar.gz"))
1236 (sha256
1237 (base32
1238 "1hbpplss1m4rdpm4ibip6fpimlhssqa14fl338kl2jbc463i64cj"))))
1239 (build-system haskell-build-system)
1240 (arguments
1241 `(#:phases
1242 (modify-phases %standard-phases
1243 (add-before 'configure 'update-constraints
1244 (lambda _
1245 (substitute* "cgi.cabal"
1246 (("exceptions < 0\\.9")
1247 "exceptions < 0.11")
1248 (("time >= 1\\.5 && < 1\\.7")
1249 "time >= 1.5 && < 1.9")
1250 (("doctest >= 0\\.8 && < 0\\.12")
1251 "doctest >= 0.8 && < 0.17")
1252 (("QuickCheck >= 2\\.8\\.1 && < 2\\.10")
1253 "QuickCheck >= 2.8.1 && < 2.12")))))))
1254 (inputs
1255 `(("ghc-parsec" ,ghc-parsec)
1256 ("ghc-exceptions" ,ghc-exceptions)
1257 ("ghc-multipart" ,ghc-multipart)
1258 ("ghc-network-uri" ,ghc-network-uri)
1259 ("ghc-network" ,ghc-network)))
1260 (native-inputs
1261 `(("ghc-doctest" ,ghc-doctest)
1262 ("ghc-quickcheck" ,ghc-quickcheck)))
1263 (home-page
1264 "https://github.com/cheecheeo/haskell-cgi")
1265 (synopsis "Library for writing CGI programs")
1266 (description
1267 "This is a Haskell library for writing CGI programs.")
1268 (license license:bsd-3)))
1269
1270 (define-public ghc-cmdargs
1271 (package
1272 (name "ghc-cmdargs")
1273 (version "0.10.20")
1274 (source
1275 (origin
1276 (method url-fetch)
1277 (uri (string-append
1278 "https://hackage.haskell.org/package/cmdargs/cmdargs-"
1279 version ".tar.gz"))
1280 (sha256
1281 (base32
1282 "0cbkmgrcnwgigg6z88y3c09gm7g6dwm7gzbgr53h8k1xik29s9hf"))))
1283 (build-system haskell-build-system)
1284 (home-page
1285 "http://community.haskell.org/~ndm/cmdargs/")
1286 (synopsis "Command line argument processing")
1287 (description
1288 "This library provides an easy way to define command line parsers.")
1289 (license license:bsd-3)))
1290
1291 (define-public ghc-concatenative
1292 (package
1293 (name "ghc-concatenative")
1294 (version "1.0.1")
1295 (source (origin
1296 (method url-fetch)
1297 (uri (string-append
1298 "https://hackage.haskell.org/package/concatenative/concatenative-"
1299 version ".tar.gz"))
1300 (sha256
1301 (base32
1302 "05xwqvcdnk8bsyj698ab9jxpa1nk23pf3m7wi9mwmw0q8n99fngd"))))
1303 (build-system haskell-build-system)
1304 (home-page
1305 "https://patch-tag.com/r/salazar/concatenative/snapshot/current/content/pretty")
1306 (synopsis "Library for postfix control flow")
1307 (description
1308 "Concatenative gives Haskell Factor-style combinators and arrows for
1309 postfix notation. For more information on stack based languages, see
1310 @uref{https://concatenative.org}.")
1311 (license license:bsd-3)))
1312
1313 (define-public ghc-happy
1314 (package
1315 (name "ghc-happy")
1316 (version "1.19.9")
1317 (source
1318 (origin
1319 (method url-fetch)
1320 (uri (string-append
1321 "https://hackage.haskell.org/package/happy/happy-"
1322 version
1323 ".tar.gz"))
1324 (sha256
1325 (base32
1326 "138xpxdb7x62lpmgmb6b3v3vgdqqvqn4273jaap3mjmc2gla709y"))))
1327 (build-system haskell-build-system)
1328 (home-page "https://hackage.haskell.org/package/happy")
1329 (synopsis "Parser generator for Haskell")
1330 (description "Happy is a parser generator for Haskell. Given a grammar
1331 specification in BNF, Happy generates Haskell code to parse the grammar.
1332 Happy works in a similar way to the yacc tool for C.")
1333 (license license:bsd-3)))
1334
1335 (define-public ghc-haskell-lexer
1336 (package
1337 (name "ghc-haskell-lexer")
1338 (version "1.0.2")
1339 (source
1340 (origin
1341 (method url-fetch)
1342 (uri (string-append
1343 "https://hackage.haskell.org/package/haskell-lexer/haskell-lexer-"
1344 version ".tar.gz"))
1345 (sha256
1346 (base32 "1wyxd8x33x4v5vxyzkhm610pl86gbkc8y439092fr1735q9g7kfq"))))
1347 (build-system haskell-build-system)
1348 (home-page "http://hackage.haskell.org/package/haskell-lexer")
1349 (synopsis "Fully compliant Haskell 98 lexer")
1350 (description
1351 "This package provides a fully compliant Haskell 98 lexer.")
1352 (license license:bsd-3)))
1353
1354 (define-public ghc-pretty-show
1355 (package
1356 (name "ghc-pretty-show")
1357 (version "1.7")
1358 (source
1359 (origin
1360 (method url-fetch)
1361 (uri (string-append "https://hackage.haskell.org/package/pretty-show/"
1362 "pretty-show-" version ".tar.gz"))
1363 (sha256
1364 (base32
1365 "0br7pkxqqqhby2j2v1g847lgqsrasx56g1jw3dhmjh4flzs6warq"))))
1366 (build-system haskell-build-system)
1367 (inputs
1368 `(("ghc-haskell-lexer" ,ghc-haskell-lexer)
1369 ("ghc-happy" ,ghc-happy)))
1370 (home-page "http://wiki.github.com/yav/pretty-show")
1371 (synopsis "Tools for working with derived `Show` instances")
1372 (description
1373 "This package provides a library and an executable for working with
1374 derived @code{Show} instances. By using the library, derived @code{Show}
1375 instances can be parsed into a generic data structure. The @code{ppsh} tool
1376 uses the library to produce human-readable versions of @code{Show} instances,
1377 which can be quite handy for debugging Haskell programs. We can also render
1378 complex generic values into an interactive Html page, for easier
1379 examination.")
1380 (license license:expat)))
1381
1382 (define-public ghc-haskell-src-exts
1383 (package
1384 (name "ghc-haskell-src-exts")
1385 (version "1.20.2")
1386 (source
1387 (origin
1388 (method url-fetch)
1389 (uri (string-append
1390 "https://hackage.haskell.org/package/haskell-src-exts/haskell-src-exts-"
1391 version
1392 ".tar.gz"))
1393 (sha256
1394 (base32
1395 "1sm3z4v1p5yffg01ldgavz71s3bvfhjfa13k428rk14bpkl8crlz"))))
1396 (build-system haskell-build-system)
1397 (inputs
1398 `(("cpphs" ,cpphs)
1399 ("ghc-happy" ,ghc-happy)
1400 ("ghc-pretty-show" ,ghc-pretty-show)))
1401 (native-inputs
1402 `(("ghc-smallcheck" ,ghc-smallcheck)
1403 ("ghc-tasty" ,ghc-tasty)
1404 ("ghc-tasty-smallcheck" ,ghc-tasty-smallcheck)
1405 ("ghc-tasty-golden" ,ghc-tasty-golden)))
1406 (home-page "https://github.com/haskell-suite/haskell-src-exts")
1407 (synopsis "Library for manipulating Haskell source")
1408 (description "Haskell-Source with Extensions (HSE, haskell-src-exts) is an
1409 extension of the standard @code{haskell-src} package, and handles most
1410 registered syntactic extensions to Haskell. All extensions implemented in GHC
1411 are supported. Apart from these standard extensions, it also handles regular
1412 patterns as per the HaRP extension as well as HSX-style embedded XML syntax.")
1413 (license license:bsd-3)))
1414
1415 (define-public ghc-haskell-src-exts-util
1416 (package
1417 (name "ghc-haskell-src-exts-util")
1418 (version "0.2.3")
1419 (source
1420 (origin
1421 (method url-fetch)
1422 (uri (string-append "https://hackage.haskell.org/package/"
1423 "haskell-src-exts-util/haskell-src-exts-util-"
1424 version ".tar.gz"))
1425 (sha256
1426 (base32
1427 "1803718paq89f8pdck4mb88hv2k1ah9lxzq0lgjgwi9n88ryycz8"))))
1428 (build-system haskell-build-system)
1429 (inputs
1430 `(("ghc-data-default" ,ghc-data-default)
1431 ("ghc-haskell-src-exts" ,ghc-haskell-src-exts)
1432 ("ghc-semigroups" ,ghc-semigroups)
1433 ("ghc-uniplate" ,ghc-uniplate)))
1434 (home-page "https://github.com/pepeiborra/haskell-src-exts-util")
1435 (synopsis "Helper functions for working with haskell-src-exts trees")
1436 (description
1437 "This package provides helper functions for working with
1438 @code{haskell-src-exts} trees.")
1439 (license license:bsd-3)))
1440
1441 (define-public ghc-refact
1442 (package
1443 (name "ghc-refact")
1444 (version "0.3.0.2")
1445 (source
1446 (origin
1447 (method url-fetch)
1448 (uri (string-append "https://hackage.haskell.org/package/"
1449 "refact/refact-"
1450 version ".tar.gz"))
1451 (sha256
1452 (base32
1453 "0v0zxcx29b8jxs2kgy9csykqcp8kzhdvyylw2xfwmj4pfxr2kl0a"))))
1454 (build-system haskell-build-system)
1455 (home-page "http://hackage.haskell.org/package/refact")
1456 (synopsis "Specify refactorings to perform with apply-refact")
1457 (description
1458 "This library provides a datatype which can be interpreted by
1459 @code{apply-refact}. It exists as a separate library so that applications can
1460 specify refactorings without depending on GHC.")
1461 (license license:bsd-3)))
1462
1463 (define-public hlint
1464 (package
1465 (name "hlint")
1466 (version "2.1.10")
1467 (source
1468 (origin
1469 (method url-fetch)
1470 (uri (string-append
1471 "https://hackage.haskell.org/package/" name
1472 "/" name "-" version ".tar.gz"))
1473 (sha256
1474 (base32
1475 "19as2m9g75cr6n1agzvsij0cvqhb0wbjlk31w4y5d5mns87dki0w"))))
1476 (build-system haskell-build-system)
1477 (inputs
1478 `(("cpphs" ,cpphs)
1479 ("ghc-unordered-containers" ,ghc-unordered-containers)
1480 ("ghc-yaml" ,ghc-yaml)
1481 ("ghc-vector" ,ghc-vector)
1482 ("ghc-text" ,ghc-text)
1483 ("ghc-data-default" ,ghc-data-default)
1484 ("ghc-cmdargs" ,ghc-cmdargs)
1485 ("ghc-haskell-src-exts" ,ghc-haskell-src-exts)
1486 ("ghc-haskell-src-exts-util" ,ghc-haskell-src-exts-util)
1487 ("ghc-uniplate" ,ghc-uniplate)
1488 ("ghc-ansi-terminal" ,ghc-ansi-terminal)
1489 ("ghc-extra" ,ghc-extra)
1490 ("ghc-refact" ,ghc-refact)
1491 ("ghc-aeson" ,ghc-aeson)
1492 ("hscolour" ,hscolour)))
1493 (home-page "http://community.haskell.org/~ndm/hlint/")
1494 (synopsis "Suggest improvements for Haskell source code")
1495 (description "HLint reads Haskell programs and suggests changes that
1496 hopefully make them easier to read. HLint also makes it easy to disable
1497 unwanted suggestions, and to add your own custom suggestions.")
1498 (license license:bsd-3)))
1499
1500 (define-public ghc-resourcet
1501 (package
1502 (name "ghc-resourcet")
1503 (version "1.2.1")
1504 (source
1505 (origin
1506 (method url-fetch)
1507 (uri (string-append "https://hackage.haskell.org/package/resourcet/"
1508 "resourcet-" version ".tar.gz"))
1509 (sha256
1510 (base32
1511 "0rzjzh34s36ssign7akqjnwnjxf11c3511wk7ky0xxy0dqmc2rg7"))))
1512 (build-system haskell-build-system)
1513 (inputs
1514 `(("ghc-transformers-base" ,ghc-transformers-base)
1515 ("ghc-monad-control" ,ghc-monad-control)
1516 ("ghc-transformers-compat" ,ghc-transformers-compat)
1517 ("ghc-mmorph" ,ghc-mmorph)
1518 ("ghc-exceptions" ,ghc-exceptions)
1519 ("ghc-unliftio-core" ,ghc-unliftio-core)))
1520 (native-inputs
1521 `(("ghc-lifted-base" ,ghc-lifted-base)
1522 ("ghc-hspec" ,ghc-hspec)))
1523 (home-page "https://github.com/snoyberg/conduit")
1524 (synopsis "Deterministic allocation and freeing of scarce resources")
1525 (description "ResourceT is a monad transformer which creates a region of
1526 code where you can safely allocate resources.")
1527 (license license:bsd-3)))
1528
1529 (define-public ghc-objectname
1530 (package
1531 (name "ghc-objectname")
1532 (version "1.1.0.1")
1533 (source
1534 (origin
1535 (method url-fetch)
1536 (uri (string-append
1537 "https://hackage.haskell.org/package/ObjectName/ObjectName-"
1538 version
1539 ".tar.gz"))
1540 (sha256
1541 (base32
1542 "046jm94rmm46cicd31pl54vdvfjvhd9ffbfycy2lxzc0fliyznvj"))))
1543 (build-system haskell-build-system)
1544 (home-page "https://hackage.haskell.org/package/ObjectName")
1545 (synopsis "Helper library for Haskell OpenGL")
1546 (description "This tiny package contains the class ObjectName, which
1547 corresponds to the general notion of explicitly handled identifiers for API
1548 objects, e.g. a texture object name in OpenGL or a buffer object name in
1549 OpenAL.")
1550 (license license:bsd-3)))
1551
1552 (define-public ghc-sdl
1553 (package
1554 (name "ghc-sdl")
1555 (version "0.6.7.0")
1556 (source
1557 (origin
1558 (method url-fetch)
1559 (uri (string-append
1560 "https://hackage.haskell.org/package/SDL/SDL-"
1561 version
1562 ".tar.gz"))
1563 (sha256
1564 (base32
1565 "00y67v80a8l09i3k76z09lg25kw72ivl09nag8ckdlk4a0cfnzfq"))))
1566 (build-system haskell-build-system)
1567 (inputs
1568 `(("sdl" ,sdl)))
1569 (home-page "https://hackage.haskell.org/package/SDL")
1570 (synopsis "LibSDL for Haskell")
1571 (description "Simple DirectMedia Layer (libSDL) is a cross-platform
1572 multimedia library designed to provide low level access to audio, keyboard,
1573 mouse, joystick, 3D hardware via OpenGL, and 2D video framebuffer. It is used
1574 by MPEG playback software, emulators, and many popular games, including the
1575 award winning Linux port of \"Civilization: Call To Power.\"")
1576 (license license:bsd-3)))
1577
1578 (define-public ghc-sdl-mixer
1579 (package
1580 (name "ghc-sdl-mixer")
1581 (version "0.6.3.0")
1582 (source
1583 (origin
1584 (method url-fetch)
1585 (uri (string-append
1586 "https://hackage.haskell.org/package/SDL-mixer/SDL-mixer-"
1587 version
1588 ".tar.gz"))
1589 (sha256
1590 (base32
1591 "0k26hqgdh789ka3mv4dsk6rin6x6vwcs6hjmnsqq7j3mnrh1342r"))))
1592 (build-system haskell-build-system)
1593 (arguments
1594 `(#:configure-flags
1595 (let* ((sdl-mixer (assoc-ref %build-inputs "sdl-mixer"))
1596 (sdl-mixer-include (string-append sdl-mixer "/include/SDL")))
1597 (list (string-append "--extra-include-dirs=" sdl-mixer-include)))))
1598 (inputs
1599 `(("ghc-sdl" ,ghc-sdl)
1600 ("sdl-mixer" ,sdl-mixer)))
1601 (home-page "https://hackage.haskell.org/package/SDL-mixer")
1602 (synopsis "Haskell bindings to libSDL_mixer")
1603 (description "SDL_mixer is a sample multi-channel audio mixer library. It
1604 supports any number of simultaneously playing channels of 16 bit stereo audio,
1605 plus a single channel of music, mixed by the popular MikMod MOD, Timidity
1606 MIDI, Ogg Vorbis, and SMPEG MP3 libraries.")
1607 (license license:bsd-3)))
1608
1609 (define-public ghc-sdl-image
1610 (package
1611 (name "ghc-sdl-image")
1612 (version "0.6.2.0")
1613 (source
1614 (origin
1615 (method url-fetch)
1616 (uri (string-append
1617 "https://hackage.haskell.org/package/SDL-image/SDL-image-"
1618 version
1619 ".tar.gz"))
1620 (sha256
1621 (base32
1622 "1gxwrvswgwjw6g7ym52gik22l9l3ljy592phv97jdmcf3gi6qcg1"))))
1623 (build-system haskell-build-system)
1624 (arguments
1625 `(#:configure-flags
1626 (let* ((sdl-image (assoc-ref %build-inputs "sdl-image"))
1627 (sdl-image-include (string-append sdl-image "/include/SDL")))
1628 (list (string-append "--extra-include-dirs=" sdl-image-include)))))
1629 (inputs
1630 `(("ghc-sdl" ,ghc-sdl)
1631 ("sdl-image" ,sdl-image)))
1632 (home-page "https://hackage.haskell.org/package/SDL-image")
1633 (synopsis "Haskell bindings to libSDL_image")
1634 (description "SDL_image is an image file loading library. It loads images
1635 as SDL surfaces, and supports the following formats: BMP, GIF, JPEG, LBM, PCX,
1636 PNG, PNM, TGA, TIFF, XCF, XPM, XV.")
1637 (license license:bsd-3)))
1638
1639 (define-public ghc-half
1640 (package
1641 (name "ghc-half")
1642 (version "0.3")
1643 (source
1644 (origin
1645 (method url-fetch)
1646 (uri (string-append
1647 "https://hackage.haskell.org/package/half/half-"
1648 version ".tar.gz"))
1649 (sha256
1650 (base32
1651 "14r0nx8hm5fic9gz0ybjjw4kyc758zfgvhhwvzsshpx5caq6zch6"))))
1652 (build-system haskell-build-system)
1653 (native-inputs
1654 `(("ghc-hspec" ,ghc-hspec)
1655 ("ghc-quickcheck" ,ghc-quickcheck)))
1656 (home-page "https://github.com/ekmett/half")
1657 (synopsis "Half-precision floating-point computations")
1658 (description "This library provides a half-precision floating-point
1659 computation library for Haskell.")
1660 (license license:bsd-3)))
1661
1662 (define-public ghc-fixed
1663 (package
1664 (name "ghc-fixed")
1665 (version "0.2.1.1")
1666 (source
1667 (origin
1668 (method url-fetch)
1669 (uri (string-append "https://hackage.haskell.org/package/fixed/fixed-"
1670 version ".tar.gz"))
1671 (sha256
1672 (base32
1673 "1qhmwx8iqshns0crmr9d2f8hm65jxbcp3dvv0c39v34ra7if3a94"))))
1674 (build-system haskell-build-system)
1675 (home-page "https://github.com/ekmett/fixed")
1676 (synopsis "Signed 15.16 precision fixed point arithmetic")
1677 (description
1678 "This package provides functions for signed 15.16 precision fixed point
1679 arithmetic.")
1680 (license license:bsd-3)))
1681
1682 (define-public ghc-openglraw
1683 (package
1684 (name "ghc-openglraw")
1685 (version "3.3.1.0")
1686 (source
1687 (origin
1688 (method url-fetch)
1689 (uri (string-append
1690 "https://hackage.haskell.org/package/OpenGLRaw/OpenGLRaw-"
1691 version
1692 ".tar.gz"))
1693 (sha256
1694 (base32
1695 "1x8w3x308jldj2c1xqcq3a3sc2jc06pdpgqkgjsmixi1skv4a1vb"))))
1696 (build-system haskell-build-system)
1697 (inputs
1698 `(("ghc-half" ,ghc-half)
1699 ("ghc-fixed" ,ghc-fixed)
1700 ("glu" ,glu)
1701 ("ghc-text" ,ghc-text)))
1702 (home-page "https://www.haskell.org/haskellwiki/Opengl")
1703 (synopsis "Raw Haskell bindings for the OpenGL graphics system")
1704 (description "OpenGLRaw is a raw Haskell binding for the OpenGL 4.5
1705 graphics system and lots of OpenGL extensions. It is basically a 1:1 mapping
1706 of OpenGL's C API, intended as a basis for a nicer interface. OpenGLRaw
1707 offers access to all necessary functions, tokens and types plus a general
1708 facility for loading extension entries. The module hierarchy closely mirrors
1709 the naming structure of the OpenGL extensions, making it easy to find the
1710 right module to import. All API entries are loaded dynamically, so no special
1711 C header files are needed for building this package. If an API entry is not
1712 found at runtime, a userError is thrown.")
1713 (license license:bsd-3)))
1714
1715 (define-public ghc-glut
1716 (package
1717 (name "ghc-glut")
1718 (version "2.7.0.14")
1719 (source
1720 (origin
1721 (method url-fetch)
1722 (uri (string-append
1723 "https://hackage.haskell.org/package/GLUT/GLUT-"
1724 version
1725 ".tar.gz"))
1726 (sha256
1727 (base32
1728 "01i162fly4q1751fp60lgkzlb8kr0qqbvmxj74zc6skb19qggy2w"))))
1729 (build-system haskell-build-system)
1730 (inputs
1731 `(("ghc-statevar" ,ghc-statevar)
1732 ("ghc-opengl" ,ghc-opengl)
1733 ("ghc-openglraw" ,ghc-openglraw)
1734 ("freeglut" ,freeglut)))
1735 (home-page "https://www.haskell.org/haskellwiki/Opengl")
1736 (synopsis "Haskell bindings for the OpenGL Utility Toolkit")
1737 (description "This library provides Haskell bindings for the OpenGL
1738 Utility Toolkit, a window system-independent toolkit for writing OpenGL
1739 programs.")
1740 (license license:bsd-3)))
1741
1742 (define-public ghc-gluraw
1743 (package
1744 (name "ghc-gluraw")
1745 (version "2.0.0.4")
1746 (source
1747 (origin
1748 (method url-fetch)
1749 (uri (string-append
1750 "https://hackage.haskell.org/package/GLURaw/GLURaw-"
1751 version
1752 ".tar.gz"))
1753 (sha256
1754 (base32
1755 "1i2xi35n5z0d372px9mh6cyhgg1m0cfaiy3fnspkf6kbn9fgsqxq"))))
1756 (build-system haskell-build-system)
1757 (inputs
1758 `(("ghc-openglraw" ,ghc-openglraw)))
1759 (home-page "https://www.haskell.org/haskellwiki/Opengl")
1760 (synopsis "Raw Haskell bindings GLU")
1761 (description "GLURaw is a raw Haskell binding for the GLU 1.3 OpenGL
1762 utility library. It is basically a 1:1 mapping of GLU's C API, intended as a
1763 basis for a nicer interface.")
1764 (license license:bsd-3)))
1765
1766 (define-public ghc-opengl
1767 (package
1768 (name "ghc-opengl")
1769 (version "3.0.2.2")
1770 (source
1771 (origin
1772 (method url-fetch)
1773 (uri (string-append
1774 "https://hackage.haskell.org/package/OpenGL/OpenGL-"
1775 version
1776 ".tar.gz"))
1777 (sha256
1778 (base32
1779 "19vxwvx2n8zq2klj176l25n2b64ybp0b8mhm4p46gvpcivz41fjc"))))
1780 (build-system haskell-build-system)
1781 (inputs
1782 `(("ghc-text" ,ghc-text)
1783 ("ghc-objectname" ,ghc-objectname)
1784 ("ghc-gluraw" ,ghc-gluraw)
1785 ("ghc-statevar" ,ghc-statevar)
1786 ("ghc-openglraw" ,ghc-openglraw)))
1787 (home-page "https://www.haskell.org/haskellwiki/Opengl")
1788 (synopsis "Haskell bindings for the OpenGL graphics system")
1789 (description "This package provides Haskell bindings for the OpenGL
1790 graphics system (GL, version 4.5) and its accompanying utility library (GLU,
1791 version 1.3).")
1792 (license license:bsd-3)))
1793
1794 (define-public ghc-streaming-commons
1795 (package
1796 (name "ghc-streaming-commons")
1797 (version "0.2.1.0")
1798 (source
1799 (origin
1800 (method url-fetch)
1801 (uri (string-append "https://hackage.haskell.org/package/"
1802 "streaming-commons/streaming-commons-"
1803 version ".tar.gz"))
1804 (sha256
1805 (base32
1806 "13fn6qmpiggwpn8lczyydgp77cyzfypwds7wxskrwir4i5cgxlfq"))))
1807 (build-system haskell-build-system)
1808 (inputs
1809 `(("ghc-async" ,ghc-async)
1810 ("ghc-blaze-builder" ,ghc-blaze-builder)
1811 ("ghc-network" ,ghc-network)
1812 ("ghc-random" ,ghc-random)
1813 ("ghc-stm" ,ghc-stm)
1814 ("ghc-text" ,ghc-text)
1815 ("ghc-zlib" ,ghc-zlib)))
1816 (native-inputs
1817 `(("ghc-quickcheck" ,ghc-quickcheck)
1818 ("ghc-hspec" ,ghc-hspec)
1819 ("hspec-discover" ,hspec-discover)))
1820 (home-page "https://hackage.haskell.org/package/streaming-commons")
1821 (synopsis "Conduit and pipes needed by some streaming data libraries")
1822 (description "This package provides low-dependency functionality commonly
1823 needed by various Haskell streaming data libraries, such as @code{conduit} and
1824 @code{pipe}s.")
1825 (license license:expat)))
1826
1827 (define-public cpphs
1828 (package
1829 (name "cpphs")
1830 (version "1.20.8")
1831 (source
1832 (origin
1833 (method url-fetch)
1834 (uri (string-append
1835 "https://hackage.haskell.org/package/" name "/"
1836 name "-" version ".tar.gz"))
1837 (sha256
1838 (base32
1839 "1bh524asqhk9v1s0wvipl0hgn7l63iy3js867yv0z3h5v2kn8vg5"))))
1840 (build-system haskell-build-system)
1841 (inputs
1842 `(("ghc-polyparse" ,ghc-polyparse)
1843 ("ghc-old-locale" ,ghc-old-locale)
1844 ("ghc-old-time" ,ghc-old-time)))
1845 (home-page "http://projects.haskell.org/cpphs/")
1846 (synopsis "Liberalised re-implementation of cpp, the C pre-processor")
1847 (description "Cpphs is a re-implementation of the C pre-processor that is
1848 both more compatible with Haskell, and itself written in Haskell so that it
1849 can be distributed with compilers. This version of the C pre-processor is
1850 pretty-much feature-complete and compatible with traditional (K&R)
1851 pre-processors. Additional features include: a plain-text mode; an option to
1852 unlit literate code files; and an option to turn off macro-expansion.")
1853 (license (list license:lgpl2.1+ license:gpl3+))))
1854
1855 (define-public ghc-reflection
1856 (package
1857 (name "ghc-reflection")
1858 (version "2.1.4")
1859 (source
1860 (origin
1861 (method url-fetch)
1862 (uri (string-append
1863 "https://hackage.haskell.org/package/reflection/reflection-"
1864 version
1865 ".tar.gz"))
1866 (sha256
1867 (base32
1868 "0kf4a5ijw6jfnfibjcrpdy9vzh1n6v2pxia8dhyyqdissiwc8bzj"))))
1869 (build-system haskell-build-system)
1870 (inputs `(("ghc-tagged" ,ghc-tagged)))
1871 (home-page "https://github.com/ekmett/reflection")
1872 (synopsis "Reify arbitrary terms into types that can be reflected back
1873 into terms")
1874 (description "This package addresses the 'configuration problem' which is
1875 propogating configurations that are available at run-time, allowing multiple
1876 configurations to coexist without resorting to mutable global variables or
1877 @code{System.IO.Unsafe.unsafePerformIO}.")
1878 (license license:bsd-3)))
1879
1880 (define-public ghc-old-locale
1881 (package
1882 (name "ghc-old-locale")
1883 (version "1.0.0.7")
1884 (source
1885 (origin
1886 (method url-fetch)
1887 (uri (string-append
1888 "https://hackage.haskell.org/package/old-locale/old-locale-"
1889 version
1890 ".tar.gz"))
1891 (sha256
1892 (base32 "0l3viphiszvz5wqzg7a45zp40grwlab941q5ay29iyw8p3v8pbyv"))))
1893 (build-system haskell-build-system)
1894 (arguments
1895 `(#:cabal-revision
1896 ("2" "04b9vn007hlvsrx4ksd3r8r3kbyaj2kvwxchdrmd4370qzi8p6gs")))
1897 (home-page "https://hackage.haskell.org/package/old-locale")
1898 (synopsis "Adapt to locale conventions")
1899 (description
1900 "This package provides the ability to adapt to locale conventions such as
1901 date and time formats.")
1902 (license license:bsd-3)))
1903
1904 (define-public ghc-old-time
1905 (package
1906 (name "ghc-old-time")
1907 (version "1.1.0.3")
1908 (source
1909 (origin
1910 (method url-fetch)
1911 (uri (string-append
1912 "https://hackage.haskell.org/package/old-time/old-time-"
1913 version
1914 ".tar.gz"))
1915 (sha256
1916 (base32
1917 "1h9b26s3kfh2k0ih4383w90ibji6n0iwamxp6rfp2lbq1y5ibjqw"))))
1918 (build-system haskell-build-system)
1919 (arguments
1920 `(#:cabal-revision
1921 ("2" "1j6ln1dkvhdvnwl33bp0xf9lhc4sybqk0aw42p8cq81xwwzbn7y9")))
1922 (inputs
1923 `(("ghc-old-locale" ,ghc-old-locale)))
1924 (home-page "https://hackage.haskell.org/package/old-time")
1925 (synopsis "Time compatibility library for Haskell")
1926 (description "Old-time is a package for backwards compatibility with the
1927 old @code{time} library. For new projects, the newer
1928 @uref{https://hackage.haskell.org/package/time, time library} is recommended.")
1929 (license license:bsd-3)))
1930
1931 (define-public ghc-data-default-instances-old-locale
1932 (package
1933 (name "ghc-data-default-instances-old-locale")
1934 (version "0.0.1")
1935 (source
1936 (origin
1937 (method url-fetch)
1938 (uri (string-append
1939 "https://hackage.haskell.org/package/"
1940 "data-default-instances-old-locale/"
1941 "data-default-instances-old-locale-" version ".tar.gz"))
1942 (sha256
1943 (base32 "00h81i5phib741yj517p8mbnc48myvfj8axzsw44k34m48lv1lv0"))))
1944 (build-system haskell-build-system)
1945 (inputs
1946 `(("ghc-data-default-class" ,ghc-data-default-class)
1947 ("ghc-old-locale" ,ghc-old-locale)))
1948 (home-page
1949 "https://hackage.haskell.org/package/data-default-instances-old-locale")
1950 (synopsis "Default instances for types in old-locale")
1951 (description "Provides Default instances for types from the old-locale
1952 package.")
1953 (license license:bsd-3)))
1954
1955 (define-public ghc-dlist
1956 (package
1957 (name "ghc-dlist")
1958 (version "0.8.0.4")
1959 (source
1960 (origin
1961 (method url-fetch)
1962 (uri (string-append
1963 "https://hackage.haskell.org/package/dlist/dlist-"
1964 version
1965 ".tar.gz"))
1966 (sha256
1967 (base32 "0yirrh0s6acjy9hhvf5fqg2d6q5y6gm9xs04v6w1imndh1xqdwdc"))))
1968 (build-system haskell-build-system)
1969 (inputs
1970 `(("ghc-quickcheck" ,ghc-quickcheck)))
1971 (home-page "https://github.com/spl/dlist")
1972 (synopsis "Difference lists")
1973 (description
1974 "Difference lists are a list-like type supporting O(1) append. This is
1975 particularly useful for efficient logging and pretty printing (e.g. with the
1976 Writer monad), where list append quickly becomes too expensive.")
1977 (license license:bsd-3)))
1978
1979 (define-public ghc-extensible-exceptions
1980 (package
1981 (name "ghc-extensible-exceptions")
1982 (version "0.1.1.4")
1983 (source
1984 (origin
1985 (method url-fetch)
1986 (uri (string-append "https://hackage.haskell.org/package/"
1987 "extensible-exceptions/extensible-exceptions-"
1988 version ".tar.gz"))
1989 (sha256
1990 (base32 "1273nqws9ij1rp1bsq5jc7k2jxpqa0svawdbim05lf302y0firbc"))))
1991 (build-system haskell-build-system)
1992 (home-page "https://hackage.haskell.org/package/extensible-exceptions")
1993 (synopsis "Extensible exceptions for Haskell")
1994 (description
1995 "This package provides extensible exceptions for both new and old
1996 versions of GHC (i.e., < 6.10).")
1997 (license license:bsd-3)))
1998
1999 (define-public ghc-echo
2000 (package
2001 (name "ghc-echo")
2002 (version "0.1.3")
2003 (source
2004 (origin
2005 (method url-fetch)
2006 (uri (string-append
2007 "https://hackage.haskell.org/package/echo/echo-"
2008 version ".tar.gz"))
2009 (sha256
2010 (base32
2011 "1vw5ykpwhr39wc0hhcgq3r8dh59zq6ib4zxbz1qd2wl21wqhfkvh"))))
2012 (build-system haskell-build-system)
2013 (arguments
2014 `(#:cabal-revision
2015 ("1" "0br8wfiybcw5hand4imiw0i5hacdmrax1dv8g95f35gazffbx42l")))
2016 (home-page "https://github.com/RyanGlScott/echo")
2017 (synopsis "Echo terminal input portably")
2018 (description "The @code{base} library exposes the @code{hGetEcho} and
2019 @code{hSetEcho} functions for querying and setting echo status, but
2020 unfortunately, neither function works with MinTTY consoles on Windows.
2021 This library provides an alternative interface which works with both
2022 MinTTY and other consoles.")
2023 (license license:bsd-3)))
2024
2025 (define-public ghc-hackage-security
2026 (package
2027 (name "ghc-hackage-security")
2028 (version "0.5.3.0")
2029 (source
2030 (origin
2031 (method url-fetch)
2032 (uri (string-append "https://hackage.haskell.org/package/"
2033 "hackage-security/hackage-security-"
2034 version ".tar.gz"))
2035 (sha256
2036 (base32
2037 "08bwawc7ramgdh54vcly2m9pvfchp0ahhs8117jajni6x4bnx66v"))))
2038 (build-system haskell-build-system)
2039 (arguments
2040 `(#:tests? #f)) ; Tests fail because of framework updates.
2041 (inputs
2042 `(("ghc-base16-bytestring" ,ghc-base16-bytestring)
2043 ("ghc-base64-bytestring" ,ghc-base64-bytestring)
2044 ("ghc-cryptohash-sha256" ,ghc-cryptohash-sha256)
2045 ("ghc-ed25519" ,ghc-ed25519)
2046 ("ghc-network" ,ghc-network)
2047 ("ghc-network-uri" ,ghc-network-uri)
2048 ("ghc-parsec" ,ghc-parsec)
2049 ("ghc-tar" ,ghc-tar)
2050 ("ghc-zlib" ,ghc-zlib)))
2051 (native-inputs
2052 `(("ghc-network-uri" ,ghc-network-uri)
2053 ("ghc-quickcheck" ,ghc-quickcheck)
2054 ("ghc-tar" ,ghc-tar)
2055 ("ghc-tasty" ,ghc-tasty)
2056 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
2057 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
2058 ("ghc-temporary" ,ghc-temporary)
2059 ("ghc-zlib" ,ghc-zlib)))
2060 (home-page "https://github.com/haskell/hackage-security")
2061 (synopsis "Hackage security library")
2062 (description "This Hackage security library provides both server and
2063 client utilities for securing @uref{http://hackage.haskell.org/, the
2064 Hackage package server}. It is based on
2065 @uref{http://theupdateframework.com/, The Update Framework}, a set of
2066 recommendations developed by security researchers at various universities
2067 in the US as well as developers on the @uref{https://www.torproject.org/,
2068 Tor project}.")
2069 (license license:bsd-3)))
2070
2071 (define-public ghc-resolv
2072 (package
2073 (name "ghc-resolv")
2074 (version "0.1.1.1")
2075 (source
2076 (origin
2077 (method url-fetch)
2078 (uri (string-append
2079 "https://hackage.haskell.org/package/resolv/resolv-"
2080 version ".tar.gz"))
2081 (sha256
2082 (base32
2083 "0wh7wj56l3f2bylz563g5g04a4nydj8acv60hpwa7k3mn792xca9"))))
2084 (build-system haskell-build-system)
2085 (arguments
2086 `(#:cabal-revision
2087 ("1" "15ay4n3x8c09cb3h4z1nan84yd3n9zpgvi6h114hk98bq10k8mma")
2088 #:tests? #f)) ; The required test frameworks are too old.
2089 (inputs
2090 `(("ghc-base16-bytestring" ,ghc-base16-bytestring)))
2091 (home-page "https://github.com/haskell/hackage-security")
2092 (synopsis "Domain Name Service (DNS) lookup via @code{libresolv}")
2093 (description "This package implements an API for accessing the
2094 @uref{https://tools.ietf.org/html/rfc1035, Domain Name Service (DNS)}
2095 resolver service via the standard @code{libresolv} system library (whose
2096 API is often available directly via the standard @code{libc} C library) on
2097 Unix systems.")
2098 (license license:gpl3)))
2099
2100 (define-public cabal-install
2101 (package
2102 (name "cabal-install")
2103 (version "2.2.0.0")
2104 (source
2105 (origin
2106 (method url-fetch)
2107 (uri (string-append
2108 "https://hackage.haskell.org/package/cabal-install/cabal-install-"
2109 version
2110 ".tar.gz"))
2111 (sha256
2112 (base32 "1nd3ch7qr4dpfxhgkcq2lnhvszx2kjgnn1kwb44vk9y5jgfs4mn8"))))
2113 (arguments `(#:tests? #f)) ; FIXME: testing libraries are missing.
2114 (build-system haskell-build-system)
2115 (inputs
2116 `(("ghc-async" ,ghc-async)
2117 ("ghc-base16-bytestring" ,ghc-base16-bytestring)
2118 ("ghc-cryptohash-sha256" ,ghc-cryptohash-sha256)
2119 ("ghc-echo" ,ghc-echo)
2120 ("ghc-edit-distance" ,ghc-edit-distance)
2121 ("ghc-hackage-security" ,ghc-hackage-security)
2122 ("ghc-hashable" ,ghc-hashable)
2123 ("ghc-http" ,ghc-http)
2124 ("ghc-network-uri" ,ghc-network-uri)
2125 ("ghc-network" ,ghc-network)
2126 ("ghc-random" ,ghc-random)
2127 ("ghc-resolv" ,ghc-resolv)
2128 ("ghc-stm" ,ghc-stm)
2129 ("ghc-tar" ,ghc-tar)
2130 ("ghc-zlib" ,ghc-zlib)))
2131 (home-page "https://www.haskell.org/cabal/")
2132 (synopsis "Command-line interface for Cabal and Hackage")
2133 (description
2134 "The cabal command-line program simplifies the process of managing
2135 Haskell software by automating the fetching, configuration, compilation and
2136 installation of Haskell libraries and programs.")
2137 (license license:bsd-3)))
2138
2139 (define-public cabal-doctest
2140 (package
2141 (name "cabal-doctest")
2142 (version "1.0.6")
2143 (source
2144 (origin
2145 (method url-fetch)
2146 (uri (string-append "https://hackage.haskell.org/package/"
2147 "cabal-doctest/cabal-doctest-"
2148 version ".tar.gz"))
2149 (sha256
2150 (base32
2151 "0bgd4jdmzxq5y465r4sf4jv2ix73yvblnr4c9wyazazafddamjny"))))
2152 (build-system haskell-build-system)
2153 (arguments
2154 `(#:cabal-revision
2155 ("1" "1bk85avgc93yvcggwbk01fy8nvg6753wgmaanhkry0hz55h7mpld")))
2156 (home-page "https://github.com/phadej/cabal-doctest")
2157 (synopsis "Setup.hs helper for running doctests")
2158 (description
2159 "To properly work, the @code{doctest} package needs plenty of
2160 configuration. This library provides the common bits for writing custom
2161 @file{Setup.hs} files.")
2162 (license license:bsd-3)))
2163
2164 (define-public ghc-parsec-numbers
2165 (package
2166 (name "ghc-parsec-numbers")
2167 (version "0.1.0")
2168 (source
2169 (origin
2170 (method url-fetch)
2171 (uri (string-append "https://hackage.haskell.org/package/"
2172 "parsec-numbers/parsec-numbers-" version ".tar.gz"))
2173 (sha256
2174 (base32 "1gzy4v3r02kvdxvgg1nj83mmb6aph2v4ilf9c7y6nbvi2x49l0bp"))))
2175 (build-system haskell-build-system)
2176 (inputs
2177 `(("ghc-parsec" ,ghc-parsec)))
2178 (home-page "https://hackage.haskell.org/package/parsec-numbers")
2179 (synopsis "Utilities for parsing numbers from strings")
2180 (description
2181 "This package provides the number parsers without the need to use a large
2182 (and unportable) token parser.")
2183 (license license:bsd-3)))
2184
2185 (define-public ghc-paths
2186 (package
2187 (name "ghc-paths")
2188 (version "0.1.0.9")
2189 (outputs '("out" "doc"))
2190 (source
2191 (origin
2192 (method url-fetch)
2193 (uri (string-append
2194 "https://hackage.haskell.org/package/ghc-paths/ghc-paths-"
2195 version
2196 ".tar.gz"))
2197 (sha256
2198 (base32
2199 "0ibrr1dxa35xx20cpp8jzgfak1rdmy344dfwq4vlq013c6w8z9mg"))))
2200 (build-system haskell-build-system)
2201 (home-page "https://github.com/simonmar/ghc-paths")
2202 (synopsis
2203 "Knowledge of GHC's installation directories")
2204 (description
2205 "Knowledge of GHC's installation directories.")
2206 (license license:bsd-3)))
2207
2208 (define-public ghc-utf8-string
2209 (package
2210 (name "ghc-utf8-string")
2211 (version "1.0.1.1")
2212 (source
2213 (origin
2214 (method url-fetch)
2215 (uri (string-append
2216 "https://hackage.haskell.org/package/utf8-string/utf8-string-"
2217 version
2218 ".tar.gz"))
2219 (sha256
2220 (base32 "0h7imvxkahiy8pzr8cpsimifdfvv18lizrb33k6mnq70rcx9w2zv"))))
2221 (build-system haskell-build-system)
2222 (arguments
2223 `(#:cabal-revision
2224 ("3" "02vhj5gykkqa2dyn7s6gn8is1b5fdn9xcqqvlls268g7cpv6rk38")))
2225 (home-page "https://github.com/glguy/utf8-string/")
2226 (synopsis "Support for reading and writing UTF8 Strings")
2227 (description
2228 "A UTF8 layer for Strings. The utf8-string package provides operations
2229 for encoding UTF8 strings to Word8 lists and back, and for reading and writing
2230 UTF8 without truncation.")
2231 (license license:bsd-3)))
2232
2233 (define-public ghc-setenv
2234 (package
2235 (name "ghc-setenv")
2236 (version "0.1.1.3")
2237 (source
2238 (origin
2239 (method url-fetch)
2240 (uri (string-append
2241 "https://hackage.haskell.org/package/setenv/setenv-"
2242 version
2243 ".tar.gz"))
2244 (sha256
2245 (base32
2246 "0cnbgrvb9byyahb37zlqrj05rj25v190crgcw8wmlgf0mwwxyn73"))))
2247 (build-system haskell-build-system)
2248 (home-page "https://hackage.haskell.org/package/setenv")
2249 (synopsis "Library for setting environment variables")
2250 (description "This package provides a Haskell library for setting
2251 environment variables.")
2252 (license license:expat)))
2253
2254 (define-public ghc-setlocale
2255 (package
2256 (name "ghc-setlocale")
2257 (version "1.0.0.8")
2258 (source (origin
2259 (method url-fetch)
2260 (uri (string-append
2261 "https://hackage.haskell.org/package/setlocale-"
2262 version "/setlocale-" version ".tar.gz"))
2263 (sha256
2264 (base32
2265 "0sdrsmkhw08483d73ysgm2926fdbhii61br03lqpqw0lfzj4ilbd"))))
2266 (build-system haskell-build-system)
2267 (home-page "https://hackage.haskell.org/package/setlocale")
2268 (synopsis "Haskell bindings to setlocale")
2269 (description "This package provides Haskell bindings to the
2270 @code{setlocale} C function.")
2271 (license license:bsd-3)))
2272
2273 (define-public ghc-x11
2274 (package
2275 (name "ghc-x11")
2276 (version "1.9")
2277 (source
2278 (origin
2279 (method url-fetch)
2280 (uri (string-append "https://hackage.haskell.org/package/X11/"
2281 "X11-" version ".tar.gz"))
2282 (sha256
2283 (base32 "1f8dy6ckkyvpcv7zlniyv01cqjb9lgqscm8pml58cvwc7n38w4qh"))))
2284 (build-system haskell-build-system)
2285 (inputs
2286 `(("libx11" ,libx11)
2287 ("libxrandr" ,libxrandr)
2288 ("libxinerama" ,libxinerama)
2289 ("libxscrnsaver" ,libxscrnsaver)
2290 ("ghc-data-default" ,ghc-data-default)))
2291 (home-page "https://github.com/haskell-pkg-janitors/X11")
2292 (synopsis "Bindings to the X11 graphics library")
2293 (description
2294 "This package provides Haskell bindings to the X11 graphics library. The
2295 bindings are a direct translation of the C bindings.")
2296 (license license:bsd-3)))
2297
2298 (define-public ghc-x11-xft
2299 (package
2300 (name "ghc-x11-xft")
2301 (version "0.3.1")
2302 (source
2303 (origin
2304 (method url-fetch)
2305 (uri (string-append "https://hackage.haskell.org/package/X11-xft/"
2306 "X11-xft-" version ".tar.gz"))
2307 (sha256
2308 (base32 "1lgqb0s2qfwwgbvwxhjbi23rbwamzdi0l0slfr20c3jpcbp3zfjf"))))
2309 (inputs
2310 `(("ghc-x11" ,ghc-x11)
2311 ("ghc-utf8-string" ,ghc-utf8-string)
2312 ("libx11" ,libx11)
2313 ("libxft" ,libxft)
2314 ("xorgproto" ,xorgproto)))
2315 (native-inputs
2316 `(("pkg-config" ,pkg-config)))
2317 (build-system haskell-build-system)
2318 (home-page "https://hackage.haskell.org/package/X11-xft")
2319 (synopsis "Bindings to Xft")
2320 (description
2321 "Bindings to the Xft, X Free Type interface library, and some Xrender
2322 parts.")
2323 (license license:lgpl2.1)))
2324
2325 (define-public ghc-stringbuilder
2326 (package
2327 (name "ghc-stringbuilder")
2328 (version "0.5.1")
2329 (source
2330 (origin
2331 (method url-fetch)
2332 (uri (string-append
2333 "https://hackage.haskell.org/package/stringbuilder/stringbuilder-"
2334 version
2335 ".tar.gz"))
2336 (sha256
2337 (base32
2338 "1fh3csx1wcssn8xyvl4ip4aprh9l4qyz2kk8mgjvqvc0vb2bsy6q"))))
2339 (build-system haskell-build-system)
2340 (arguments `(#:tests? #f)) ; FIXME: circular dependencies with tests
2341 ; enabled
2342 (home-page "https://hackage.haskell.org/package/stringbuilder")
2343 (synopsis "Writer monad for multi-line string literals")
2344 (description "This package provides a writer monad for multi-line string
2345 literals.")
2346 (license license:expat)))
2347
2348 (define-public ghc-zlib
2349 (package
2350 (name "ghc-zlib")
2351 (version "0.6.2")
2352 (outputs '("out" "doc"))
2353 (source
2354 (origin
2355 (method url-fetch)
2356 (uri (string-append
2357 "https://hackage.haskell.org/package/zlib/zlib-"
2358 version
2359 ".tar.gz"))
2360 (sha256
2361 (base32
2362 "1vbzf0awb6zb456xf48za1kl22018646cfzq4frvxgb9ay97vk0d"))))
2363 (build-system haskell-build-system)
2364 (arguments
2365 `(#:phases
2366 (modify-phases %standard-phases
2367 (add-before 'configure 'strip-test-framework-constraints
2368 (lambda _
2369 (substitute* "zlib.cabal"
2370 (("tasty >= 0\\.8 && < 0\\.12") "tasty")
2371 (("tasty-hunit >= 0\\.8 && < 0\\.10") "tasty-hunit")
2372 (("tasty-quickcheck == 0\\.8\\.\\*") "tasty-quickcheck")))))))
2373 (inputs `(("zlib" ,zlib)))
2374 (native-inputs
2375 `(("ghc-quickcheck" ,ghc-quickcheck)
2376 ("ghc-tasty" ,ghc-tasty)
2377 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
2378 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
2379 (home-page "https://hackage.haskell.org/package/zlib")
2380 (synopsis
2381 "Compression and decompression in the gzip and zlib formats")
2382 (description
2383 "This package provides a pure interface for compressing and decompressing
2384 streams of data represented as lazy @code{ByteString}s. It uses the zlib C
2385 library so it has high performance. It supports the @code{zlib}, @code{gzip}
2386 and @code{raw} compression formats. It provides a convenient high level API
2387 suitable for most tasks and for the few cases where more control is needed it
2388 provides access to the full zlib feature set.")
2389 (license license:bsd-3)))
2390
2391 (define-public ghc-stm
2392 (package
2393 (name "ghc-stm")
2394 (version "2.4.5.0")
2395 (outputs '("out" "doc"))
2396 (source
2397 (origin
2398 (method url-fetch)
2399 (uri (string-append
2400 "https://hackage.haskell.org/package/stm/stm-"
2401 version
2402 ".tar.gz"))
2403 (sha256
2404 (base32
2405 "19sr11a0hqikhvf561b38phz6k3zg9s157a0f5ffvghk7wcdpmri"))))
2406 (build-system haskell-build-system)
2407 (home-page "https://hackage.haskell.org/package/stm")
2408 (synopsis "Software Transactional Memory")
2409 (description
2410 "Software Transactional Memory, or STM, is an abstraction for concurrent
2411 communication. The main benefits of STM are composability and modularity.
2412 That is, using STM you can write concurrent abstractions that can be easily
2413 composed with any other abstraction built using STM, without exposing the
2414 details of how your abstraction ensures safety. This is typically not the
2415 case with other forms of concurrent communication, such as locks or
2416 @code{MVar}s.")
2417 (license license:bsd-3)))
2418
2419 (define-public ghc-parallel
2420 (package
2421 (name "ghc-parallel")
2422 (version "3.2.2.0")
2423 (outputs '("out" "doc"))
2424 (source
2425 (origin
2426 (method url-fetch)
2427 (uri (string-append
2428 "https://hackage.haskell.org/package/parallel/parallel-"
2429 version
2430 ".tar.gz"))
2431 (sha256
2432 (base32
2433 "1xkfi96w6yfpppd0nw1rnszdxmvifwzm699ilv6332ra3akm610p"))))
2434 (build-system haskell-build-system)
2435 (home-page "https://hackage.haskell.org/package/parallel")
2436 (synopsis "Parallel programming library")
2437 (description
2438 "This package provides a library for parallel programming.")
2439 (license license:bsd-3)))
2440
2441 (define-public ghc-safesemaphore
2442 (package
2443 (name "ghc-safesemaphore")
2444 (version "0.10.1")
2445 (source
2446 (origin
2447 (method url-fetch)
2448 (uri (string-append "https://hackage.haskell.org/package/"
2449 "SafeSemaphore/SafeSemaphore-" version ".tar.gz"))
2450 (sha256
2451 (base32
2452 "0rpg9j6fy70i0b9dkrip9d6wim0nac0snp7qzbhykjkqlcvvgr91"))))
2453 (build-system haskell-build-system)
2454 (inputs
2455 `(("ghc-stm" ,ghc-stm)))
2456 (native-inputs
2457 `(("ghc-hunit" ,ghc-hunit)))
2458 (home-page "https://github.com/ChrisKuklewicz/SafeSemaphore")
2459 (synopsis "Exception safe semaphores")
2460 (description "This library provides exception safe semaphores that can be
2461 used in place of @code{QSem}, @code{QSemN}, and @code{SampleVar}, all of which
2462 are not exception safe and can be broken by @code{killThread}.")
2463 (license license:bsd-3)))
2464
2465 (define-public ghc-text
2466 (package
2467 (name "ghc-text")
2468 (version "1.2.3.0")
2469 (outputs '("out" "doc"))
2470 (source
2471 (origin
2472 (method url-fetch)
2473 (uri (string-append
2474 "https://hackage.haskell.org/package/text/text-"
2475 version
2476 ".tar.gz"))
2477 (sha256
2478 (base32
2479 "06iir7q99rnffzxi8gagn8w1k9m49368sbidgz634fv1gxib3q10"))))
2480 (build-system haskell-build-system)
2481 ;; The test dependencies depend on ghc-text: ghc-test-framework -> ghc-xml -> ghc-text
2482 (arguments `(#:tests? #f))
2483 (inputs
2484 `(("ghc-random" ,ghc-random)))
2485 (home-page "https://github.com/bos/text")
2486 (synopsis "Efficient packed Unicode text type library")
2487 (description
2488 "An efficient packed, immutable Unicode text type (both strict and
2489 lazy), with a powerful loop fusion optimization framework.
2490
2491 The @code{Text} type represents Unicode character strings, in a time and
2492 space-efficient manner. This package provides text processing
2493 capabilities that are optimized for performance critical use, both
2494 in terms of large data quantities and high speed.")
2495 (license license:bsd-3)))
2496
2497 (define-public ghc-text-binary
2498 (package
2499 (name "ghc-text-binary")
2500 (version "0.2.1.1")
2501 (source
2502 (origin
2503 (method url-fetch)
2504 (uri (string-append "https://hackage.haskell.org/package/"
2505 "text-binary/text-binary-"
2506 version ".tar.gz"))
2507 (sha256
2508 (base32
2509 "18gl10pwg3qwsk0za3c70j4n6a9129wwf1b7d3a461h816yv55xn"))))
2510 (build-system haskell-build-system)
2511 (inputs `(("ghc-text" ,ghc-text)))
2512 (home-page "https://github.com/kawu/text-binary")
2513 (synopsis "Binary instances for text types")
2514 (description
2515 "This package provides a compatibility layer providing @code{Binary}
2516 instances for strict and lazy text types for versions older than 1.2.1 of the
2517 text package.")
2518 (license license:bsd-2)))
2519
2520 (define-public ghc-strict
2521 (package
2522 (name "ghc-strict")
2523 (version "0.3.2")
2524 (source
2525 (origin
2526 (method url-fetch)
2527 (uri (string-append "https://hackage.haskell.org/package/strict/strict-"
2528 version ".tar.gz"))
2529 (sha256
2530 (base32 "08cjajqz9h47fkq98mlf3rc8n5ghbmnmgn8pfsl3bdldjdkmmlrc"))))
2531 (build-system haskell-build-system)
2532 (home-page "https://hackage.haskell.org/package/strict")
2533 (synopsis "Strict data types and String IO")
2534 (description
2535 "This package provides strict versions of some standard Haskell data
2536 types, such as pairs, @code{Maybe} and @code{Either}. It also contains strict
2537 IO operations.")
2538 (license license:bsd-3)))
2539
2540 (define-public ghc-hashable
2541 (package
2542 (name "ghc-hashable")
2543 (version "1.2.7.0")
2544 (outputs '("out" "doc"))
2545 (source
2546 (origin
2547 (method url-fetch)
2548 (uri (string-append
2549 "https://hackage.haskell.org/package/hashable/hashable-"
2550 version
2551 ".tar.gz"))
2552 (sha256
2553 (base32
2554 "1gra8gq3kb7b2sd845h55yxlrfqx3ii004c6vjhga8v0b30fzdgc"))))
2555 (build-system haskell-build-system)
2556 (inputs
2557 `(("ghc-text" ,ghc-text)
2558 ("ghc-random" ,ghc-random)))
2559 (native-inputs
2560 `(("ghc-test-framework" ,ghc-test-framework)
2561 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
2562 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)
2563 ("ghc-hunit" ,ghc-hunit)
2564 ("ghc-quickcheck" ,ghc-quickcheck)))
2565 (home-page "https://github.com/tibbe/hashable")
2566 (synopsis "Class for types that can be converted to a hash value")
2567 (description
2568 "This package defines a class, @code{Hashable}, for types that can be
2569 converted to a hash value. This class exists for the benefit of hashing-based
2570 data structures. The package provides instances for basic types and a way to
2571 combine hash values.")
2572 (license license:bsd-3)))
2573
2574 (define-public ghc-hashable-bootstrap
2575 (package
2576 (inherit ghc-hashable)
2577 (name "ghc-hashable-bootstrap")
2578 (arguments `(#:tests? #f))
2579 (native-inputs '())
2580 (properties '((hidden? #t)))))
2581
2582 (define-public ghc-hashable-time
2583 (package
2584 (name "ghc-hashable-time")
2585 (version "0.2.0.1")
2586 (source
2587 (origin
2588 (method url-fetch)
2589 (uri (string-append
2590 "https://hackage.haskell.org/package/hashable-time/hashable-time-"
2591 version
2592 ".tar.gz"))
2593 (sha256
2594 (base32
2595 "0k932nyd08l3xxbh2g3n76py2f4kd9yw4s5a065vjz0xp6wjnxdm"))))
2596 (build-system haskell-build-system)
2597 (arguments
2598 `(#:cabal-revision
2599 ("1" "0rv40xkg3gj8jnqsry1gq3f5s5la6d5arg8fzkirnwdpcgha1as6")))
2600 (inputs `(("ghc-hashable" ,ghc-hashable)))
2601 (home-page "http://hackage.haskell.org/package/hashable-time")
2602 (synopsis "Hashable instances for Data.Time")
2603 (description
2604 "This package provides @code{Hashable} instances for types in
2605 @code{Data.Time}.")
2606 (license license:bsd-3)))
2607
2608 (define-public ghc-data-hash
2609 (package
2610 (name "ghc-data-hash")
2611 (version "0.2.0.1")
2612 (source
2613 (origin
2614 (method url-fetch)
2615 (uri (string-append "https://hackage.haskell.org/package/data-hash"
2616 "/data-hash-" version ".tar.gz"))
2617 (sha256
2618 (base32 "1ghbqvc48gf9p8wiy71hdpaj7by3b9cw6wgwi3qqz8iw054xs5wi"))))
2619 (build-system haskell-build-system)
2620 (inputs
2621 `(("ghc-quickcheck" ,ghc-quickcheck)
2622 ("ghc-test-framework" ,ghc-test-framework)
2623 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
2624 (home-page "https://hackage.haskell.org/package/data-hash")
2625 (synopsis "Combinators for building fast hashing functions")
2626 (description
2627 "This package provides combinators for building fast hashing functions.
2628 It includes hashing functions for all basic Haskell98 types.")
2629 (license license:bsd-3)))
2630
2631 (define-public ghc-murmur-hash
2632 (package
2633 (name "ghc-murmur-hash")
2634 (version "0.1.0.9")
2635 (source
2636 (origin
2637 (method url-fetch)
2638 (uri (string-append "https://hackage.haskell.org/package/murmur-hash"
2639 "/murmur-hash-" version ".tar.gz"))
2640 (sha256
2641 (base32 "1bb58kfnzvx3mpc0rc0dhqc1fk36nm8prd6gvf20gk6lxaadpfc9"))))
2642 (build-system haskell-build-system)
2643 (home-page "https://github.com/nominolo/murmur-hash")
2644 (synopsis "MurmurHash2 implementation for Haskell")
2645 (description
2646 "This package provides an implementation of MurmurHash2, a good, fast,
2647 general-purpose, non-cryptographic hashing function. See
2648 @url{https://sites.google.com/site/murmurhash/} for details. This
2649 implementation is pure Haskell, so it might be a bit slower than a C FFI
2650 binding.")
2651 (license license:bsd-3)))
2652
2653 (define-public ghc-random
2654 (package
2655 (name "ghc-random")
2656 (version "1.1")
2657 (outputs '("out" "doc"))
2658 (source
2659 (origin
2660 (method url-fetch)
2661 (uri (string-append
2662 "https://hackage.haskell.org/package/random/random-"
2663 version
2664 ".tar.gz"))
2665 (sha256
2666 (base32 "0nis3lbkp8vfx8pkr6v7b7kr5m334bzb0fk9vxqklnp2aw8a865p"))))
2667 (build-system haskell-build-system)
2668 (home-page "https://hackage.haskell.org/package/random")
2669 (synopsis "Random number library")
2670 (description "This package provides a basic random number generation
2671 library, including the ability to split random number generators.")
2672 (license license:bsd-3)))
2673
2674 (define-public ghc-primitive
2675 (package
2676 (name "ghc-primitive")
2677 (version "0.6.3.0")
2678 (outputs '("out" "doc"))
2679 (source
2680 (origin
2681 (method url-fetch)
2682 (uri (string-append
2683 "https://hackage.haskell.org/package/primitive/primitive-"
2684 version
2685 ".tar.gz"))
2686 (sha256
2687 (base32
2688 "0mcmbnj08wd6zfwn7xk6zf5hy5zwbla5v78pw0dpymqg9s0gzpnd"))))
2689 (build-system haskell-build-system)
2690 (home-page
2691 "https://github.com/haskell/primitive")
2692 (synopsis "Primitive memory-related operations")
2693 (description
2694 "This package provides various primitive memory-related operations.")
2695 (license license:bsd-3)))
2696
2697 (define-public ghc-tf-random
2698 (package
2699 (name "ghc-tf-random")
2700 (version "0.5")
2701 (outputs '("out" "doc"))
2702 (source
2703 (origin
2704 (method url-fetch)
2705 (uri (string-append
2706 "https://hackage.haskell.org/package/tf-random/tf-random-"
2707 version
2708 ".tar.gz"))
2709 (sha256
2710 (base32 "0445r2nns6009fmq0xbfpyv7jpzwv0snccjdg7hwj4xk4z0cwc1f"))))
2711 (build-system haskell-build-system)
2712 (inputs
2713 `(("ghc-primitive" ,ghc-primitive)
2714 ("ghc-random" ,ghc-random)))
2715 (home-page "https://hackage.haskell.org/package/tf-random")
2716 (synopsis "High-quality splittable pseudorandom number generator")
2717 (description "This package contains an implementation of a high-quality
2718 splittable pseudorandom number generator. The generator is based on a
2719 cryptographic hash function built on top of the ThreeFish block cipher. See
2720 the paper \"Splittable Pseudorandom Number Generators Using Cryptographic
2721 Hashing\" by Claessen, Pałka for details and the rationale of the design.")
2722 (license license:bsd-3)))
2723
2724 (define-public ghc-transformers-base
2725 (package
2726 (name "ghc-transformers-base")
2727 (version "0.4.5.2")
2728 (source
2729 (origin
2730 (method url-fetch)
2731 (uri (string-append
2732 "https://hackage.haskell.org/package/transformers-base/transformers-base-"
2733 version
2734 ".tar.gz"))
2735 (sha256
2736 (base32
2737 "1s256bi0yh0x2hp2gwd30f3mg1cv53zz397dv1yhfsnfzmihrj6h"))))
2738 (build-system haskell-build-system)
2739 (inputs
2740 `(("ghc-stm" ,ghc-stm)
2741 ("ghc-transformers-compat" ,ghc-transformers-compat)))
2742 (home-page
2743 "https://hackage.haskell.org/package/transformers-compat")
2744 (synopsis
2745 "Backported transformer library")
2746 (description
2747 "Backported versions of types that were added to transformers in
2748 transformers 0.3 and 0.4 for users who need strict transformers 0.2 or 0.3
2749 compatibility to run on old versions of the platform.")
2750 (license license:bsd-3)))
2751
2752 (define-public ghc-transformers-compat
2753 (package
2754 (name "ghc-transformers-compat")
2755 (version "0.6.2")
2756 (source
2757 (origin
2758 (method url-fetch)
2759 (uri (string-append
2760 "https://hackage.haskell.org/package/transformers-compat"
2761 "/transformers-compat-" version ".tar.gz"))
2762 (sha256
2763 (base32
2764 "1gp4a8kvniwgm8947ghb4iwv4b7wd6ry4kvv4nfnym4agf5j41nw"))))
2765 (build-system haskell-build-system)
2766 (home-page "https://github.com/ekmett/transformers-compat/")
2767 (synopsis "Small compatibility shim between transformers 0.3 and 0.4")
2768 (description "This package includes backported versions of types that were
2769 added to transformers in transformers 0.3 and 0.4 for users who need strict
2770 transformers 0.2 or 0.3 compatibility to run on old versions of the platform,
2771 but also need those types.")
2772 (license license:bsd-3)))
2773
2774 (define-public ghc-unix-time
2775 (package
2776 (name "ghc-unix-time")
2777 (version "0.3.8")
2778 (source
2779 (origin
2780 (method url-fetch)
2781 (uri (string-append
2782 "https://hackage.haskell.org/package/unix-time/unix-time-"
2783 version
2784 ".tar.gz"))
2785 (sha256
2786 (base32
2787 "051slgpid5cxiaw203ky0ql3823h28fcjs08axkzd4265wrvv8fw"))))
2788 (build-system haskell-build-system)
2789 (arguments
2790 `(#:tests? #f)) ; FIXME: Test fails with "System.Time not found". This
2791 ; is weird, that should be provided by GHC 7.10.2.
2792 (inputs
2793 `(("ghc-old-time" ,ghc-old-time)
2794 ("ghc-old-locale" ,ghc-old-locale)))
2795 (home-page "https://hackage.haskell.org/package/unix-time")
2796 (synopsis "Unix time parser/formatter and utilities")
2797 (description "This library provides fast parsing and formatting utilities
2798 for Unix time in Haskell.")
2799 (license license:bsd-3)))
2800
2801 (define-public ghc-unix-compat
2802 (package
2803 (name "ghc-unix-compat")
2804 (version "0.5.1")
2805 (source
2806 (origin
2807 (method url-fetch)
2808 (uri (string-append
2809 "https://hackage.haskell.org/package/unix-compat/unix-compat-"
2810 version
2811 ".tar.gz"))
2812 (sha256
2813 (base32
2814 "0llwl7rp63fy2ychwdclz1afj45pbin5pfl01dvn6rwhvmwhr7d3"))))
2815 (build-system haskell-build-system)
2816 (home-page
2817 "https://github.com/jystic/unix-compat")
2818 (synopsis "Portable POSIX-compatibility layer")
2819 (description
2820 "This package provides portable implementations of parts of the unix
2821 package. This package re-exports the unix package when available. When it
2822 isn't available, portable implementations are used.")
2823 (license license:bsd-3)))
2824
2825 (define-public ghc-indents
2826 (package
2827 (name "ghc-indents")
2828 (version "0.5.0.0")
2829 (source (origin
2830 (method url-fetch)
2831 (uri (string-append
2832 "https://hackage.haskell.org/package/indents/indents-"
2833 version ".tar.gz"))
2834 (sha256
2835 (base32
2836 "1ly3v41jacc6lrsvg4j3m5a6zs90gr8dyif5m6bf34hj1k5cgg0n"))))
2837 (build-system haskell-build-system)
2838 ;; This package needs an older version of tasty.
2839 (arguments '(#:tests? #f))
2840 (inputs
2841 `(("ghc-parsec" ,ghc-parsec)
2842 ("ghc-concatenative" ,ghc-concatenative)))
2843 (native-inputs
2844 `(("ghc-tasty" ,ghc-tasty)
2845 ("ghc-tasty-hunit" ,ghc-tasty-hunit)))
2846 (home-page "http://patch-tag.com/r/salazar/indents")
2847 (synopsis "Indentation sensitive parser-combinators for parsec")
2848 (description
2849 "This library provides functions for use in parsing indentation sensitive
2850 contexts. It parses blocks of lines all indented to the same level as well as
2851 lines continued at an indented level below.")
2852 (license license:bsd-3)))
2853
2854 (define-public ghc-iproute
2855 (package
2856 (name "ghc-iproute")
2857 (version "1.7.5")
2858 (source
2859 (origin
2860 (method url-fetch)
2861 (uri (string-append
2862 "https://hackage.haskell.org/package/iproute/iproute-"
2863 version
2864 ".tar.gz"))
2865 (sha256
2866 (base32
2867 "1vw1nm3s8vz1hqnjnqd3wh5rr4q3m2r4izn5ynhf93h9185qwqzd"))))
2868 (build-system haskell-build-system)
2869 (arguments `(#:tests? #f)) ; FIXME: Tests cannot find System.ByteOrder,
2870 ; exported by ghc-byteorder. Doctest issue.
2871 (inputs
2872 `(("ghc-appar" ,ghc-appar)
2873 ("ghc-byteorder" ,ghc-byteorder)
2874 ("ghc-network" ,ghc-network)
2875 ("ghc-safe" ,ghc-safe)))
2876 (home-page "https://www.mew.org/~kazu/proj/iproute/")
2877 (synopsis "IP routing table")
2878 (description "IP Routing Table is a tree of IP ranges to search one of
2879 them on the longest match base. It is a kind of TRIE with one way branching
2880 removed. Both IPv4 and IPv6 are supported.")
2881 (license license:bsd-3)))
2882
2883 (define-public ghc-iwlib
2884 (package
2885 (name "ghc-iwlib")
2886 (version "0.1.0")
2887 (source
2888 (origin
2889 (method url-fetch)
2890 (uri (string-append "https://hackage.haskell.org/package/iwlib/iwlib-"
2891 version ".tar.gz"))
2892 (sha256
2893 (base32 "0khmfwql4vwj55idsxmhjhrbqzfir3g9wm5lmpvnf77mm95cfpdz"))))
2894 (build-system haskell-build-system)
2895 (inputs
2896 `(("wireless-tools" ,wireless-tools)))
2897 (home-page "https://github.com/jaor/iwlib")
2898 (synopsis "Haskell binding to the iw wireless networking library")
2899 (description
2900 "IWlib is a thin Haskell binding to the iw C library. It provides
2901 information about the current wireless network connections, and adapters on
2902 supported systems.")
2903 (license license:bsd-3)))
2904
2905 (define-public ghc-regex-base
2906 (package
2907 (name "ghc-regex-base")
2908 (version "0.93.2")
2909 (source
2910 (origin
2911 (method url-fetch)
2912 (uri (string-append
2913 "https://hackage.haskell.org/package/regex-base/regex-base-"
2914 version
2915 ".tar.gz"))
2916 (sha256
2917 (base32
2918 "0y1j4h2pg12c853nzmczs263di7xkkmlnsq5dlp5wgbgl49mgp10"))))
2919 (build-system haskell-build-system)
2920 (home-page
2921 "https://sourceforge.net/projects/lazy-regex")
2922 (synopsis "Replaces/Enhances Text.Regex")
2923 (description "@code{Text.Regex.Base} provides the interface API for
2924 regex-posix, regex-pcre, regex-parsec, regex-tdfa, regex-dfa.")
2925 (license license:bsd-3)))
2926
2927 (define-public ghc-regex-posix
2928 (package
2929 (name "ghc-regex-posix")
2930 (version "0.95.2")
2931 (source
2932 (origin
2933 (method url-fetch)
2934 (uri (string-append
2935 "https://hackage.haskell.org/package/regex-posix/regex-posix-"
2936 version
2937 ".tar.gz"))
2938 (sha256
2939 (base32
2940 "0gkhzhj8nvfn1ija31c7xnl6p0gadwii9ihyp219ck2arlhrj0an"))))
2941 (build-system haskell-build-system)
2942 (inputs
2943 `(("ghc-regex-base" ,ghc-regex-base)))
2944 (home-page "https://sourceforge.net/projects/lazy-regex")
2945 (synopsis "POSIX regular expressions for Haskell")
2946 (description "This library provides the POSIX regex backend used by the
2947 Haskell library @code{regex-base}.")
2948 (license license:bsd-3)))
2949
2950 (define-public ghc-regex-compat
2951 (package
2952 (name "ghc-regex-compat")
2953 (version "0.95.1")
2954 (source
2955 (origin
2956 (method url-fetch)
2957 (uri (string-append
2958 "https://hackage.haskell.org/package/regex-compat/regex-compat-"
2959 version
2960 ".tar.gz"))
2961 (sha256
2962 (base32
2963 "0fwmima3f04p9y4h3c23493n1xj629ia2dxaisqm6rynljjv2z6m"))))
2964 (build-system haskell-build-system)
2965 (inputs
2966 `(("ghc-regex-base" ,ghc-regex-base)
2967 ("ghc-regex-posix" ,ghc-regex-posix)))
2968 (home-page "https://sourceforge.net/projects/lazy-regex")
2969 (synopsis "Replaces/Enhances Text.Regex")
2970 (description "This library provides one module layer over
2971 @code{regex-posix} to replace @code{Text.Regex}.")
2972 (license license:bsd-3)))
2973
2974 (define-public ghc-regex-tdfa-rc
2975 (package
2976 (name "ghc-regex-tdfa-rc")
2977 (version "1.1.8.3")
2978 (source
2979 (origin
2980 (method url-fetch)
2981 (uri (string-append
2982 "https://hackage.haskell.org/package/regex-tdfa-rc/regex-tdfa-rc-"
2983 version
2984 ".tar.gz"))
2985 (sha256
2986 (base32
2987 "1vi11i23gkkjg6193ak90g55akj69bhahy542frkwb68haky4pp3"))))
2988 (build-system haskell-build-system)
2989 (inputs
2990 `(("ghc-regex-base" ,ghc-regex-base)
2991 ("ghc-parsec" ,ghc-parsec)))
2992 (home-page
2993 "https://hackage.haskell.org/package/regex-tdfa")
2994 (synopsis "Tagged DFA regex engine for Haskell")
2995 (description "A new all-Haskell \"tagged\" DFA regex engine, inspired by
2996 @code{libtre} (fork by Roman Cheplyaka).")
2997 (license license:bsd-3)))
2998
2999 (define-public ghc-regex-tdfa-text
3000 (package
3001 (name "ghc-regex-tdfa-text")
3002 (version "1.0.0.3")
3003 (source
3004 (origin
3005 (method url-fetch)
3006 (uri (string-append
3007 "https://hackage.haskell.org/package/regex-tdfa-text/"
3008 "regex-tdfa-text-" version ".tar.gz"))
3009 (sha256
3010 (base32
3011 "0090g6lgbdm9lywpqm2d3724nnnh24nx3vnlqr96qc2w486pmmrq"))))
3012 (build-system haskell-build-system)
3013 (inputs
3014 `(("ghc-text" ,ghc-text)
3015 ("ghc-regex-base" ,ghc-regex-base)
3016 ("ghc-regex-tdfa" ,ghc-regex-tdfa)))
3017 (home-page
3018 "http://hackage.haskell.org/package/regex-tdfa-text")
3019 (synopsis "Text interface for regex-tdfa")
3020 (description
3021 "This provides an extra text interface for regex-tdfa.")
3022 (license license:bsd-3)))
3023
3024 (define-public ghc-regex
3025 (package
3026 (name "ghc-regex")
3027 (version "1.0.1.3")
3028 (source
3029 (origin
3030 (method url-fetch)
3031 (uri (string-append "https://hackage.haskell.org/package/regex/"
3032 "regex-" version ".tar.gz"))
3033 (sha256
3034 (base32
3035 "1sjkpkgv4phy5b5v2lr89x4vx4dh44pj0sbvlsp6n86w9v6v4jwb"))))
3036 (build-system haskell-build-system)
3037 (arguments
3038 `(#:phases
3039 (modify-phases %standard-phases
3040 (add-after 'unpack 'relax-dependencies
3041 (lambda _
3042 (substitute* "regex.cabal"
3043 (("base-compat.*>=.*0.6.*")
3044 "base-compat >= 0.6\n")
3045 (("template-haskell.*>=.*2.7.*")
3046 "template-haskell >= 2.7\n"))
3047 #t)))))
3048 (inputs
3049 `(("ghc-base-compat" ,ghc-base-compat)
3050 ("ghc-hashable" ,ghc-hashable)
3051 ("ghc-regex-base" ,ghc-regex-base)
3052 ("ghc-regex-pcre-builtin" ,ghc-regex-pcre-builtin)
3053 ("ghc-regex-tdfa" ,ghc-regex-tdfa)
3054 ("ghc-regex-tdfa-text" ,ghc-regex-tdfa-text)
3055 ("ghc-text" ,ghc-text)
3056 ("ghc-time-locale-compat" ,ghc-time-locale-compat)
3057 ("ghc-unordered-containers" ,ghc-unordered-containers)
3058 ("ghc-utf8-string" ,ghc-utf8-string)))
3059 (home-page "http://regex.uk")
3060 (synopsis "Toolkit for regex-base")
3061 (description
3062 "This package provides a regular expression toolkit for @code{regex-base}
3063 with compile-time checking of regular expression syntax, data types for
3064 matches and captures, a text replacement toolkit, portable options, high-level
3065 AWK-like tools for building text processing apps, regular expression macros
3066 with parsers and test bench, comprehensive documentation, tutorials and
3067 copious examples.")
3068 (license license:bsd-3)))
3069
3070 (define-public ghc-parsers
3071 (package
3072 (name "ghc-parsers")
3073 (version "0.12.9")
3074 (source
3075 (origin
3076 (method url-fetch)
3077 (uri (string-append
3078 "https://hackage.haskell.org/package/parsers/parsers-"
3079 version
3080 ".tar.gz"))
3081 (sha256
3082 (base32
3083 "1r05sc1mcglk8w596kq9a1brfn9c2vll8lq16j07ln0vsz4jzrc1"))))
3084 (build-system haskell-build-system)
3085 (arguments `(#:tests? #f)) ; FIXME: Test fails with "cannot satisfy
3086 ; -package attoparsec-0.13.0.1"
3087 (inputs
3088 `(("ghc-base-orphans" ,ghc-base-orphans)
3089 ("ghc-attoparsec" ,ghc-attoparsec)
3090 ("ghc-parsec" ,ghc-parsec)
3091 ("ghc-scientific" ,ghc-scientific)
3092 ("ghc-charset" ,ghc-charset)
3093 ("ghc-text" ,ghc-text)
3094 ("ghc-unordered-containers" ,ghc-unordered-containers)))
3095 (home-page "https://github.com/ekmett/parsers/")
3096 (synopsis "Parsing combinators")
3097 (description "This library provides convenient combinators for working
3098 with and building parsing combinator libraries. Given a few simple instances,
3099 you get access to a large number of canned definitions. Instances exist for
3100 the parsers provided by @code{parsec}, @code{attoparsec} and @code{base}'s
3101 @code{Text.Read}.")
3102 (license license:bsd-3)))
3103
3104 (define-public ghc-trifecta
3105 (package
3106 (name "ghc-trifecta")
3107 (version "2")
3108 (source (origin
3109 (method url-fetch)
3110 (uri (string-append
3111 "https://hackage.haskell.org/package/trifecta/"
3112 "trifecta-" version ".tar.gz"))
3113 (sha256
3114 (base32
3115 "0hznd8i65s81xy13i2qc7cvipw3lfb2yhkv53apbdsh6sbljz5sk"))))
3116 (build-system haskell-build-system)
3117 (inputs
3118 `(("ghc-reducers" ,ghc-reducers)
3119 ("ghc-semigroups" ,ghc-semigroups)
3120 ("ghc-ansi-wl-pprint" ,ghc-ansi-wl-pprint)
3121 ("ghc-ansi-terminal" ,ghc-ansi-terminal)
3122 ("ghc-blaze-builder" ,ghc-blaze-builder)
3123 ("ghc-blaze-html" ,ghc-blaze-html)
3124 ("ghc-blaze-markup" ,ghc-blaze-markup)
3125 ("ghc-charset" ,ghc-charset)
3126 ("ghc-comonad" ,ghc-comonad)
3127 ("ghc-fingertree" ,ghc-fingertree)
3128 ("ghc-hashable" ,ghc-hashable)
3129 ("ghc-lens" ,ghc-lens)
3130 ("ghc-parsers" ,ghc-parsers)
3131 ("ghc-profunctors" ,ghc-profunctors)
3132 ("ghc-unordered-containers" ,ghc-unordered-containers)
3133 ("ghc-utf8-string" ,ghc-utf8-string)))
3134 (native-inputs
3135 `(("cabal-doctest" ,cabal-doctest)
3136 ("ghc-doctest" ,ghc-doctest)
3137 ("ghc-quickcheck" ,ghc-quickcheck)))
3138 (home-page "https://github.com/ekmett/trifecta/")
3139 (synopsis "Parser combinator library with convenient diagnostics")
3140 (description "Trifecta is a modern parser combinator library for Haskell,
3141 with slicing and Clang-style colored diagnostics.")
3142 (license license:bsd-3)))
3143
3144 (define-public ghc-time-locale-compat
3145 (package
3146 (name "ghc-time-locale-compat")
3147 (version "0.1.1.5")
3148 (source
3149 (origin
3150 (method url-fetch)
3151 (uri (string-append "https://hackage.haskell.org/package/"
3152 "time-locale-compat/time-locale-compat-"
3153 version ".tar.gz"))
3154 (sha256
3155 (base32
3156 "0b2hmj8wwrfkndwzgm11qr496ca2ahwdxcj3m0ii91bxvrk1bzq7"))))
3157 (build-system haskell-build-system)
3158 (inputs `(("ghc-old-locale" ,ghc-old-locale)))
3159 (home-page "https://github.com/khibino/haskell-time-locale-compat")
3160 (synopsis "Compatibility of TimeLocale between old-locale and time-1.5")
3161 (description "This package contains a wrapped name module for
3162 @code{TimeLocale}.")
3163 (license license:bsd-3)))
3164
3165 (define-public ghc-attoparsec
3166 (package
3167 (name "ghc-attoparsec")
3168 (version "0.13.2.2")
3169 (source
3170 (origin
3171 (method url-fetch)
3172 (uri (string-append
3173 "https://hackage.haskell.org/package/attoparsec/attoparsec-"
3174 version
3175 ".tar.gz"))
3176 (sha256
3177 (base32
3178 "0j6qcwd146yzlkc9mcvzvnixsyl65n2a68l28322q5v9p4g4g4yx"))))
3179 (build-system haskell-build-system)
3180 (arguments
3181 `(#:phases
3182 (modify-phases %standard-phases
3183 (add-after 'unpack 'patch-for-newer-quickcheck
3184 (lambda _
3185 (substitute* "attoparsec.cabal"
3186 (("QuickCheck >= 2\\.7 && < 2\\.10")
3187 "QuickCheck >= 2.7 && < 2.12"))
3188 ;; This test fails because of the newer QuickCheck:
3189 ;; <https://github.com/bos/attoparsec/issues/134>.
3190 (substitute* "tests/QC/ByteString.hs"
3191 ((", testProperty \"satisfyWith\" satisfyWith")
3192 "")))))))
3193 (inputs
3194 `(("ghc-scientific" ,ghc-scientific)
3195 ("ghc-text" ,ghc-text)))
3196 (native-inputs
3197 `(("ghc-tasty" ,ghc-tasty)
3198 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
3199 ("ghc-quickcheck" ,ghc-quickcheck)
3200 ("ghc-quickcheck-unicode" ,ghc-quickcheck-unicode)
3201 ("ghc-vector" ,ghc-vector)))
3202 (home-page "https://github.com/bos/attoparsec")
3203 (synopsis "Fast combinator parsing for bytestrings and text")
3204 (description "This library provides a fast parser combinator library,
3205 aimed particularly at dealing efficiently with network protocols and
3206 complicated text/binary file formats.")
3207 (license license:bsd-3)))
3208
3209 (define-public ghc-attoparsec-bootstrap
3210 (package
3211 (inherit ghc-attoparsec)
3212 (name "ghc-attoparsec-bootstrap")
3213 (arguments `(#:tests? #f))
3214 (inputs
3215 `(("ghc-scientific" ,ghc-scientific-bootstrap)
3216 ("ghc-text" ,ghc-text)))
3217 (native-inputs '())
3218 (properties '(hidden? #t))))
3219
3220 (define-public ghc-zip-archive
3221 (package
3222 (name "ghc-zip-archive")
3223 (version "0.3.3")
3224 (source
3225 (origin
3226 (method url-fetch)
3227 (uri (string-append
3228 "https://hackage.haskell.org/package/zip-archive/zip-archive-"
3229 version
3230 ".tar.gz"))
3231 (sha256
3232 (base32
3233 "0kf8xyac168bng8a0za2jwrbss7a4ralvci9g54hnvl0gkkxx2lq"))))
3234 (build-system haskell-build-system)
3235 (inputs
3236 `(("ghc-digest" ,ghc-digest)
3237 ("ghc-temporary" ,ghc-temporary)
3238 ("ghc-text" ,ghc-text)
3239 ("ghc-zlib" ,ghc-zlib)))
3240 (native-inputs
3241 `(("ghc-hunit" ,ghc-hunit)
3242 ("unzip" ,unzip)))
3243 (home-page "https://hackage.haskell.org/package/zip-archive")
3244 (synopsis "Zip archive library for Haskell")
3245 (description "The zip-archive library provides functions for creating,
3246 modifying, and extracting files from zip archives in Haskell.")
3247 (license license:bsd-3)))
3248
3249 (define-public ghc-distributive
3250 (package
3251 (name "ghc-distributive")
3252 (version "0.5.3")
3253 (source
3254 (origin
3255 (method url-fetch)
3256 (uri (string-append
3257 "https://hackage.haskell.org/package/distributive/distributive-"
3258 version
3259 ".tar.gz"))
3260 (sha256
3261 (base32
3262 "0y566r97sfyvhsmd4yxiz4ns2mqgwf5bdbp56wgxl6wlkidq0wwi"))))
3263 (build-system haskell-build-system)
3264 (arguments
3265 `(#:cabal-revision
3266 ("6" "06bd38rf31yrvvy989r44pm0id3dsxwcp6nxg7wk6ccj3n2b8rzk")))
3267 (inputs
3268 `(("ghc-tagged" ,ghc-tagged)
3269 ("ghc-base-orphans" ,ghc-base-orphans)
3270 ("ghc-transformers-compat" ,ghc-transformers-compat)
3271 ("ghc-semigroups" ,ghc-semigroups)
3272 ("ghc-generic-deriving" ,ghc-generic-deriving)))
3273 (native-inputs
3274 `(("cabal-doctest" ,cabal-doctest)
3275 ("ghc-doctest" ,ghc-doctest)
3276 ("ghc-hspec" ,ghc-hspec)
3277 ("hspec-discover" ,hspec-discover)))
3278 (home-page "https://github.com/ekmett/distributive/")
3279 (synopsis "Distributive functors for Haskell")
3280 (description "This package provides distributive functors for Haskell.
3281 Dual to @code{Traversable}.")
3282 (license license:bsd-3)))
3283
3284 (define-public ghc-cereal
3285 (package
3286 (name "ghc-cereal")
3287 (version "0.5.7.0")
3288 (source
3289 (origin
3290 (method url-fetch)
3291 (uri (string-append
3292 "https://hackage.haskell.org/package/cereal/cereal-"
3293 version
3294 ".tar.gz"))
3295 (sha256
3296 (base32
3297 "1j7imh2mzqcljld7sx0av69699955rpy3hzivi5723i6a9nszgbs"))))
3298 (build-system haskell-build-system)
3299 (native-inputs
3300 `(("ghc-quickcheck" ,ghc-quickcheck)
3301 ("ghc-fail" ,ghc-fail)
3302 ("ghc-test-framework" ,ghc-test-framework)
3303 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
3304 (home-page "https://hackage.haskell.org/package/cereal")
3305 (synopsis "Binary serialization library")
3306 (description "This package provides a binary serialization library,
3307 similar to @code{binary}, that introduces an @code{isolate} primitive for
3308 parser isolation, and labeled blocks for better error messages.")
3309 (license license:bsd-3)))
3310
3311 (define-public ghc-comonad
3312 (package
3313 (name "ghc-comonad")
3314 (version "5.0.4")
3315 (source
3316 (origin
3317 (method url-fetch)
3318 (uri (string-append
3319 "https://hackage.haskell.org/package/comonad/comonad-"
3320 version
3321 ".tar.gz"))
3322 (sha256
3323 (base32
3324 "09g870c4flp4k3fgbibsd0mmfjani1qcpbcl685v8x89kxzrva3q"))))
3325 (build-system haskell-build-system)
3326 (native-inputs
3327 `(("cabal-doctest" ,cabal-doctest)
3328 ("ghc-doctest" ,ghc-doctest)))
3329 (inputs
3330 `(("ghc-contravariant" ,ghc-contravariant)
3331 ("ghc-distributive" ,ghc-distributive)
3332 ("ghc-semigroups" ,ghc-semigroups)
3333 ("ghc-tagged" ,ghc-tagged)
3334 ("ghc-transformers-compat" ,ghc-transformers-compat)))
3335 (home-page "https://github.com/ekmett/comonad/")
3336 (synopsis "Comonads for Haskell")
3337 (description "This library provides @code{Comonad}s for Haskell.")
3338 (license license:bsd-3)))
3339
3340 (define-public hscolour
3341 (package
3342 (name "hscolour")
3343 (version "1.24.4")
3344 (source
3345 (origin
3346 (method url-fetch)
3347 (uri (string-append
3348 "https://hackage.haskell.org/package/hscolour/hscolour-"
3349 version
3350 ".tar.gz"))
3351 (sha256
3352 (base32
3353 "079jwph4bwllfp03yfr26s5zc6m6kw3nhb1cggrifh99haq34cr4"))))
3354 (build-system haskell-build-system)
3355 (home-page "https://hackage.haskell.org/package/hscolour")
3356 (synopsis "Script to colourise Haskell code")
3357 (description "HSColour is a small Haskell script to colourise Haskell
3358 code. It currently has six output formats: ANSI terminal codes (optionally
3359 XTerm-256colour codes), HTML 3.2 with font tags, HTML 4.01 with CSS, HTML 4.01
3360 with CSS and mouseover annotations, XHTML 1.0 with inline CSS styling, LaTeX,
3361 and mIRC chat codes.")
3362 (license license:bsd-3)))
3363
3364 (define-public ghc-polyparse
3365 (package
3366 (name "ghc-polyparse")
3367 (version "1.12")
3368 (source
3369 (origin
3370 (method url-fetch)
3371 (uri (string-append
3372 "https://hackage.haskell.org/package/polyparse/polyparse-"
3373 version
3374 ".tar.gz"))
3375 (sha256
3376 (base32
3377 "05dya1vdvq29hkhkdlsglzhw7bdn51rvs1javs0q75nf99c66k7m"))))
3378 (build-system haskell-build-system)
3379 (inputs
3380 `(("ghc-text" ,ghc-text)))
3381 (home-page
3382 "http://code.haskell.org/~malcolm/polyparse/")
3383 (synopsis
3384 "Alternative parser combinator libraries")
3385 (description
3386 "This package provides a variety of alternative parser combinator
3387 libraries, including the original HuttonMeijer set. The Poly sets have
3388 features like good error reporting, arbitrary token type, running state, lazy
3389 parsing, and so on. Finally, Text.Parse is a proposed replacement for the
3390 standard Read class, for better deserialisation of Haskell values from
3391 Strings.")
3392 (license license:lgpl2.1)))
3393
3394 (define-public ghc-extra
3395 (package
3396 (name "ghc-extra")
3397 (version "1.6.9")
3398 (source
3399 (origin
3400 (method url-fetch)
3401 (uri (string-append
3402 "https://hackage.haskell.org/package/extra/extra-"
3403 version
3404 ".tar.gz"))
3405 (sha256
3406 (base32
3407 "0xxcpb00pgwi9cmy6a7ghh6rblxry42p8pz5ssfgj20fs1xwzj1b"))))
3408 (build-system haskell-build-system)
3409 (inputs
3410 `(("ghc-clock" ,ghc-clock)
3411 ("ghc-quickcheck" ,ghc-quickcheck)))
3412 (home-page "https://github.com/ndmitchell/extra")
3413 (synopsis "Extra Haskell functions")
3414 (description "This library provides extra functions for the standard
3415 Haskell libraries. Most functions are simple additions, filling out missing
3416 functionality. A few functions are available in later versions of GHC, but
3417 this package makes them available back to GHC 7.2.")
3418 (license license:bsd-3)))
3419
3420 (define-public ghc-profunctors
3421 (package
3422 (name "ghc-profunctors")
3423 (version "5.2.2")
3424 (source
3425 (origin
3426 (method url-fetch)
3427 (uri (string-append
3428 "https://hackage.haskell.org/package/profunctors/profunctors-"
3429 version
3430 ".tar.gz"))
3431 (sha256
3432 (base32
3433 "0s1pwjidbn761xk43pmzyvn99hm3psdifjd78ylki7f97aiyd0g9"))))
3434 (build-system haskell-build-system)
3435 (arguments
3436 `(#:cabal-revision
3437 ("2" "1ywlg9z8nlhd2avgb8c6gbkv8zyk7hvc25926bafyg0m0k8y1amq")))
3438 (inputs
3439 `(("ghc-base-orphans" ,ghc-base-orphans)
3440 ("ghc-bifunctors" ,ghc-bifunctors)
3441 ("ghc-comonad" ,ghc-comonad)
3442 ("ghc-contravariant" ,ghc-contravariant)
3443 ("ghc-distributive" ,ghc-distributive)
3444 ("ghc-semigroups" ,ghc-semigroups)
3445 ("ghc-tagged" ,ghc-tagged)))
3446 (home-page "https://github.com/ekmett/profunctors/")
3447 (synopsis "Profunctors for Haskell")
3448 (description "This library provides profunctors for Haskell.")
3449 (license license:bsd-3)))
3450
3451 (define-public ghc-reducers
3452 (package
3453 (name "ghc-reducers")
3454 (version "3.12.3")
3455 (source
3456 (origin
3457 (method url-fetch)
3458 (uri (string-append
3459 "https://hackage.haskell.org/package/reducers/reducers-"
3460 version
3461 ".tar.gz"))
3462 (sha256
3463 (base32
3464 "09wf8pl9ycglcv6qj5ba26gkg2s5iy81hsx9xp0q8na0cwvp71ki"))))
3465 (build-system haskell-build-system)
3466 (inputs
3467 `(("ghc-fingertree" ,ghc-fingertree)
3468 ("ghc-hashable" ,ghc-hashable)
3469 ("ghc-text" ,ghc-text)
3470 ("ghc-unordered-containers" ,ghc-unordered-containers)
3471 ("ghc-semigroupoids" ,ghc-semigroupoids)
3472 ("ghc-semigroups" ,ghc-semigroups)))
3473 (home-page "https://github.com/ekmett/reducers/")
3474 (synopsis "Semigroups, specialized containers and a general map/reduce framework")
3475 (description "This library provides various semigroups, specialized
3476 containers and a general map/reduce framework for Haskell.")
3477 (license license:bsd-3)))
3478
3479 (define-public ghc-appar
3480 (package
3481 (name "ghc-appar")
3482 (version "0.1.4")
3483 (source
3484 (origin
3485 (method url-fetch)
3486 (uri (string-append
3487 "https://hackage.haskell.org/package/appar/appar-"
3488 version
3489 ".tar.gz"))
3490 (sha256
3491 (base32
3492 "09jb9ij78fdkz2qk66rw99q19qnm504dpv0yq0pjsl6xwjmndsjq"))))
3493 (build-system haskell-build-system)
3494 (home-page
3495 "https://hackage.haskell.org/package/appar")
3496 (synopsis "Simple applicative parser")
3497 (description "This package provides a simple applicative parser in Parsec
3498 style.")
3499 (license license:bsd-3)))
3500
3501 (define-public ghc-safe
3502 (package
3503 (name "ghc-safe")
3504 (version "0.3.17")
3505 (source
3506 (origin
3507 (method url-fetch)
3508 (uri (string-append
3509 "https://hackage.haskell.org/package/safe/safe-"
3510 version
3511 ".tar.gz"))
3512 (sha256
3513 (base32
3514 "0p3yaf5slvyz1cyy51jq64c5rlp8yzwim8iy2dlnk42if4gc9ibr"))))
3515 (build-system haskell-build-system)
3516 (native-inputs
3517 `(("ghc-quickcheck" ,ghc-quickcheck)))
3518 (home-page "https://github.com/ndmitchell/safe#readme")
3519 (synopsis "Library of safe (exception free) functions")
3520 (description "This library provides wrappers around @code{Prelude} and
3521 @code{Data.List} functions, such as @code{head} and @code{!!}, that can throw
3522 exceptions.")
3523 (license license:bsd-3)))
3524
3525 (define-public ghc-generic-deriving
3526 (package
3527 (name "ghc-generic-deriving")
3528 (version "1.12.2")
3529 (source
3530 (origin
3531 (method url-fetch)
3532 (uri (string-append
3533 "https://hackage.haskell.org/package/generic-deriving/generic-deriving-"
3534 version
3535 ".tar.gz"))
3536 (sha256
3537 (base32
3538 "1i7d6cpj9yhaqb79zays3nqchhaacacjz9bkc0zlwj73y5gvi22n"))))
3539 (build-system haskell-build-system)
3540 (inputs
3541 `(("ghc-th-abstraction" ,ghc-th-abstraction)))
3542 (native-inputs
3543 `(("ghc-hspec" ,ghc-hspec)
3544 ("hspec-discover" ,hspec-discover)))
3545 (home-page "https://hackage.haskell.org/package/generic-deriving")
3546 (synopsis "Generalise the deriving mechanism to arbitrary classes")
3547 (description "This package provides functionality for generalising the
3548 deriving mechanism in Haskell to arbitrary classes.")
3549 (license license:bsd-3)))
3550
3551 (define-public ghc-pcre-light
3552 (package
3553 (name "ghc-pcre-light")
3554 (version "0.4.0.4")
3555 (source
3556 (origin
3557 (method url-fetch)
3558 (uri (string-append
3559 "https://hackage.haskell.org/package/pcre-light/pcre-light-"
3560 version
3561 ".tar.gz"))
3562 (sha256
3563 (base32
3564 "0xcyi1fivwg7a92mch5bcqzmrfxzqj42rmb3m8kgs61x4qwpxj82"))))
3565 (build-system haskell-build-system)
3566 (inputs
3567 `(("pcre" ,pcre)))
3568 (native-inputs
3569 `(("pkg-config" ,pkg-config)))
3570 (home-page "https://github.com/Daniel-Diaz/pcre-light")
3571 (synopsis "Haskell library for Perl 5 compatible regular expressions")
3572 (description "This package provides a small, efficient, and portable regex
3573 library for Perl 5 compatible regular expressions. The PCRE library is a set
3574 of functions that implement regular expression pattern matching using the same
3575 syntax and semantics as Perl 5.")
3576 (license license:bsd-3)))
3577
3578 (define-public ghc-logict
3579 (package
3580 (name "ghc-logict")
3581 (version "0.6.0.2")
3582 (source
3583 (origin
3584 (method url-fetch)
3585 (uri (string-append
3586 "https://hackage.haskell.org/package/logict/logict-"
3587 version
3588 ".tar.gz"))
3589 (sha256
3590 (base32
3591 "07hnirv6snnym2r7iijlfz00b60jpy2856zvqxh989q0in7bd0hi"))))
3592 (build-system haskell-build-system)
3593 (home-page "http://code.haskell.org/~dolio/")
3594 (synopsis "Backtracking logic-programming monad")
3595 (description "This library provides a continuation-based, backtracking,
3596 logic programming monad. An adaptation of the two-continuation implementation
3597 found in the paper \"Backtracking, Interleaving, and Terminating Monad
3598 Transformers\" available @uref{http://okmij.org/ftp/papers/LogicT.pdf,
3599 online}.")
3600 (license license:bsd-3)))
3601
3602 (define-public ghc-xml
3603 (package
3604 (name "ghc-xml")
3605 (version "1.3.14")
3606 (source
3607 (origin
3608 (method url-fetch)
3609 (uri (string-append
3610 "https://hackage.haskell.org/package/xml/xml-"
3611 version
3612 ".tar.gz"))
3613 (sha256
3614 (base32
3615 "0g814lj7vaxvib2g3r734221k80k7ap9czv9hinifn8syals3l9j"))))
3616 (build-system haskell-build-system)
3617 (inputs
3618 `(("ghc-text" ,ghc-text)))
3619 (home-page "http://code.galois.com")
3620 (synopsis "Simple XML library for Haskell")
3621 (description "This package provides a simple XML library for Haskell.")
3622 (license license:bsd-3)))
3623
3624 (define-public ghc-feed
3625 (package
3626 (name "ghc-feed")
3627 (version "1.0.0.0")
3628 (source
3629 (origin
3630 (method url-fetch)
3631 (uri (string-append "https://hackage.haskell.org/package/"
3632 "feed/feed-" version ".tar.gz"))
3633 (sha256
3634 (base32
3635 "05rgg7x1984mgfhkmz792xj8lhwjgznixhygzr8blf517lns2nck"))))
3636 (build-system haskell-build-system)
3637 (arguments
3638 `(#:cabal-revision
3639 ("4" "0baavcavm3ywykcr9cm07aqr7sna98jba2n68lyn3kany8ri214d")))
3640 (inputs
3641 `(("ghc-base-compat" ,ghc-base-compat)
3642 ("ghc-old-locale" ,ghc-old-locale)
3643 ("ghc-old-time" ,ghc-old-time)
3644 ("ghc-safe" ,ghc-safe)
3645 ("ghc-text" ,ghc-text)
3646 ("ghc-time-locale-compat" ,ghc-time-locale-compat)
3647 ("ghc-utf8-string" ,ghc-utf8-string)
3648 ("ghc-xml-conduit" ,ghc-xml-conduit)
3649 ("ghc-xml-types" ,ghc-xml-types)))
3650 (native-inputs
3651 `(("ghc-hunit" ,ghc-hunit)
3652 ("ghc-test-framework" ,ghc-test-framework)
3653 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)))
3654 (home-page "https://github.com/bergmark/feed")
3655 (synopsis "Haskell package for handling various syndication formats")
3656 (description "This Haskell package includes tools for generating and
3657 consuming feeds in both RSS (Really Simple Syndication) and Atom format.")
3658 (license license:bsd-3)))
3659
3660 (define-public ghc-exceptions
3661 (package
3662 (name "ghc-exceptions")
3663 (version "0.10.0")
3664 (source
3665 (origin
3666 (method url-fetch)
3667 (uri (string-append
3668 "https://hackage.haskell.org/package/exceptions/exceptions-"
3669 version
3670 ".tar.gz"))
3671 (sha256
3672 (base32
3673 "1ms9zansv0pwzwdjncvx4kf18lnkjy2p61hvjhvxmjx5bqp93p8y"))))
3674 (build-system haskell-build-system)
3675 (native-inputs
3676 `(("ghc-quickcheck" ,ghc-quickcheck)
3677 ("ghc-test-framework" ,ghc-test-framework)
3678 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
3679 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
3680 (inputs
3681 `(("ghc-stm" ,ghc-stm)
3682 ("ghc-transformers-compat" ,ghc-transformers-compat)))
3683 (home-page "https://github.com/ekmett/exceptions/")
3684 (synopsis "Extensible optionally-pure exceptions")
3685 (description "This library provides extensible optionally-pure exceptions
3686 for Haskell.")
3687 (license license:bsd-3)))
3688
3689 (define-public ghc-temporary
3690 (package
3691 (name "ghc-temporary")
3692 (version "1.3")
3693 (source
3694 (origin
3695 (method url-fetch)
3696 (uri (string-append
3697 "https://hackage.haskell.org/package/temporary/temporary-"
3698 version
3699 ".tar.gz"))
3700 (sha256
3701 (base32
3702 "144qhwfwg37l3k313raf4ssiz16jbgwlm1nf4flgqpsbd69jji4c"))))
3703 (build-system haskell-build-system)
3704 (inputs
3705 `(("ghc-exceptions" ,ghc-exceptions)
3706 ("ghc-random" ,ghc-random)))
3707 (native-inputs
3708 `(("ghc-base-compat" ,ghc-base-compat)
3709 ("ghc-tasty" ,ghc-tasty)
3710 ("ghc-tasty-hunit" ,ghc-tasty-hunit)))
3711 (home-page "https://www.github.com/batterseapower/temporary")
3712 (synopsis "Temporary file and directory support")
3713 (description "The functions for creating temporary files and directories
3714 in the Haskelll base library are quite limited. This library just repackages
3715 the Cabal implementations of its own temporary file and folder functions so
3716 that you can use them without linking against Cabal or depending on it being
3717 installed.")
3718 (license license:bsd-3)))
3719
3720 (define-public ghc-temporary-rc
3721 (package
3722 (name "ghc-temporary-rc")
3723 (version "1.2.0.3")
3724 (source
3725 (origin
3726 (method url-fetch)
3727 (uri (string-append
3728 "https://hackage.haskell.org/package/temporary-rc/temporary-rc-"
3729 version
3730 ".tar.gz"))
3731 (sha256
3732 (base32
3733 "1nqih0qks439k3pr5kmbbc8rjdw730slrxlflqb27fbxbzb8skqs"))))
3734 (build-system haskell-build-system)
3735 (inputs `(("ghc-exceptions" ,ghc-exceptions)))
3736 (home-page
3737 "https://www.github.com/feuerbach/temporary")
3738 (synopsis
3739 "Portable temporary file and directory support")
3740 (description
3741 "The functions for creating temporary files and directories in the base
3742 library are quite limited. The unixutils package contains some good ones, but
3743 they aren't portable to Windows. This library just repackages the Cabal
3744 implementations of its own temporary file and folder functions so that you can
3745 use them without linking against Cabal or depending on it being installed.
3746 This is a better maintained fork of the \"temporary\" package.")
3747 (license license:bsd-3)))
3748
3749 (define-public ghc-smallcheck
3750 (package
3751 (name "ghc-smallcheck")
3752 (version "1.1.5")
3753 (source
3754 (origin
3755 (method url-fetch)
3756 (uri (string-append
3757 "https://hackage.haskell.org/package/smallcheck/smallcheck-"
3758 version
3759 ".tar.gz"))
3760 (sha256
3761 (base32
3762 "195fj7w3v03d1y1nm2ylavzrwxjcdbq0lb6zsw1dwyx5jmwfc84h"))))
3763 (build-system haskell-build-system)
3764 (inputs
3765 `(("ghc-logict" ,ghc-logict)))
3766 (home-page
3767 "https://github.com/feuerbach/smallcheck")
3768 (synopsis "Property-based testing library")
3769 (description "SmallCheck is a testing library that allows to verify
3770 properties for all test cases up to some depth. The test cases are generated
3771 automatically by SmallCheck.")
3772 (license license:bsd-3)))
3773
3774 (define-public ghc-silently
3775 (package
3776 (name "ghc-silently")
3777 (version "1.2.5")
3778 (source
3779 (origin
3780 (method url-fetch)
3781 (uri (string-append
3782 "https://hackage.haskell.org/package/silently/silently-"
3783 version
3784 ".tar.gz"))
3785 (sha256
3786 (base32
3787 "0f9qm3f7y0hpxn6mddhhg51mm1r134qkvd2kr8r6192ka1ijbxnf"))))
3788 (build-system haskell-build-system)
3789 (arguments `(#:tests? #f)) ;; circular dependency with nanospec
3790 ;; (inputs
3791 ;; `(("ghc-temporary" ,ghc-temporary)))
3792 (home-page "https://github.com/hspec/silently")
3793 (synopsis "Prevent writing to stdout")
3794 (description "This package provides functions to prevent or capture
3795 writing to stdout and other handles.")
3796 (license license:bsd-3)))
3797
3798 (define-public ghc-case-insensitive
3799 (package
3800 (name "ghc-case-insensitive")
3801 (version "1.2.0.11")
3802 (outputs '("out" "doc"))
3803 (source
3804 (origin
3805 (method url-fetch)
3806 (uri (string-append
3807 "https://hackage.haskell.org/package/case-insensitive/case-insensitive-"
3808 version
3809 ".tar.gz"))
3810 (sha256
3811 (base32
3812 "1qrpxfirsxckg7jv28f5ah2qc8lh95hp7rnqkbqs1ahcwlbnvkm7"))))
3813 (build-system haskell-build-system)
3814 ;; these inputs are necessary to use this library
3815 (inputs
3816 `(("ghc-text" ,ghc-text)
3817 ("ghc-hashable" ,ghc-hashable)))
3818 (arguments
3819 `(#:tests? #f)) ; FIXME: currently missing libraries used for tests.
3820 (home-page
3821 "https://github.com/basvandijk/case-insensitive")
3822 (synopsis "Case insensitive string comparison")
3823 (description
3824 "The module @code{Data.CaseInsensitive} provides the @code{CI} type
3825 constructor which can be parameterised by a string-like type like:
3826 @code{String}, @code{ByteString}, @code{Text}, etc. Comparisons of values of
3827 the resulting type will be insensitive to cases.")
3828 (license license:bsd-3)))
3829
3830 (define-public ghc-syb
3831 (package
3832 (name "ghc-syb")
3833 (version "0.7")
3834 (outputs '("out" "doc"))
3835 (source
3836 (origin
3837 (method url-fetch)
3838 (uri (string-append
3839 "https://hackage.haskell.org/package/syb/syb-"
3840 version
3841 ".tar.gz"))
3842 (sha256
3843 (base32
3844 "1da2zz7gqm4xbkx5vpd74dayx1svaxyl145fl14mq15lbb77sxdq"))))
3845 (build-system haskell-build-system)
3846 (inputs
3847 `(("ghc-hunit" ,ghc-hunit)))
3848 (home-page
3849 "http://www.cs.uu.nl/wiki/GenericProgramming/SYB")
3850 (synopsis "Scrap Your Boilerplate")
3851 (description "This package contains the generics system described in the
3852 /Scrap Your Boilerplate/ papers (see
3853 @uref{http://www.cs.uu.nl/wiki/GenericProgramming/SYB, the website}). It
3854 defines the @code{Data} class of types permitting folding and unfolding of
3855 constructor applications, instances of this class for primitive types, and a
3856 variety of traversals.")
3857 (license license:bsd-3)))
3858
3859 (define-public ghc-fgl
3860 (package
3861 (name "ghc-fgl")
3862 (version "5.6.0.0")
3863 (outputs '("out" "doc"))
3864 (source
3865 (origin
3866 (method url-fetch)
3867 (uri (string-append
3868 "https://hackage.haskell.org/package/fgl/fgl-"
3869 version
3870 ".tar.gz"))
3871 (sha256
3872 (base32
3873 "1i6cp4b3w7sjk7y1dq3fh6bci2sm5h3lnbbaw9ln19nwncg2wwll"))))
3874 (build-system haskell-build-system)
3875 (arguments
3876 `(#:phases
3877 (modify-phases %standard-phases
3878 (add-before 'configure 'update-constraints
3879 (lambda _
3880 (substitute* "fgl.cabal"
3881 (("QuickCheck >= 2\\.8 && < 2\\.10")
3882 "QuickCheck >= 2.8 && < 2.12")
3883 (("hspec >= 2\\.1 && < 2\\.5")
3884 "hspec >= 2.1 && < 2.6")))))))
3885 (inputs
3886 `(("ghc-hspec" ,ghc-hspec)
3887 ("ghc-quickcheck" ,ghc-quickcheck)))
3888 (home-page "https://web.engr.oregonstate.edu/~erwig/fgl/haskell")
3889 (synopsis
3890 "Martin Erwig's Functional Graph Library")
3891 (description "The functional graph library, FGL, is a collection of type
3892 and function definitions to address graph problems. The basis of the library
3893 is an inductive definition of graphs in the style of algebraic data types that
3894 encourages inductive, recursive definitions of graph algorithms.")
3895 (license license:bsd-3)))
3896
3897 (define-public ghc-chasingbottoms
3898 (package
3899 (name "ghc-chasingbottoms")
3900 (version "1.3.1.4")
3901 (source
3902 (origin
3903 (method url-fetch)
3904 (uri (string-append "https://hackage.haskell.org/package/ChasingBottoms/"
3905 "ChasingBottoms-" version ".tar.gz"))
3906 (sha256
3907 (base32
3908 "06cynx6hcbfpky7qq3b3mjjgwbnaxkwin3znbwq4b9ikiw0ng633"))))
3909 (build-system haskell-build-system)
3910 (inputs
3911 `(("ghc-quickcheck" ,ghc-quickcheck)
3912 ("ghc-random" ,ghc-random)
3913 ("ghc-syb" ,ghc-syb)))
3914 (home-page "https://hackage.haskell.org/package/ChasingBottoms")
3915 (synopsis "Testing of partial and infinite values in Haskell")
3916 (description
3917 ;; FIXME: There should be a @comma{} in the uref text, but it is not
3918 ;; rendered properly.
3919 "This is a library for testing code involving bottoms or infinite values.
3920 For the underlying theory and a larger example involving use of QuickCheck,
3921 see the article
3922 @uref{http://www.cse.chalmers.se/~nad/publications/danielsson-jansson-mpc2004.html,
3923 \"Chasing Bottoms A Case Study in Program Verification in the Presence of
3924 Partial and Infinite Values\"}.")
3925 (license license:expat)))
3926
3927 (define-public ghc-unordered-containers
3928 (package
3929 (name "ghc-unordered-containers")
3930 (version "0.2.9.0")
3931 (outputs '("out" "doc"))
3932 (source
3933 (origin
3934 (method url-fetch)
3935 (uri (string-append
3936 "https://hackage.haskell.org/package/unordered-containers"
3937 "/unordered-containers-" version ".tar.gz"))
3938 (sha256
3939 (base32
3940 "0l4264p0av12cc6i8gls13q8y27x12z2ar4x34n3x59y99fcnc37"))))
3941 (build-system haskell-build-system)
3942 (inputs
3943 `(("ghc-chasingbottoms" ,ghc-chasingbottoms)
3944 ("ghc-hunit" ,ghc-hunit)
3945 ("ghc-quickcheck" ,ghc-quickcheck)
3946 ("ghc-test-framework" ,ghc-test-framework)
3947 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
3948 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)
3949 ("ghc-hashable" ,ghc-hashable)))
3950 (home-page
3951 "https://github.com/tibbe/unordered-containers")
3952 (synopsis
3953 "Efficient hashing-based container types")
3954 (description
3955 "Efficient hashing-based container types. The containers have been
3956 optimized for performance critical use, both in terms of large data quantities
3957 and high speed.")
3958 (license license:bsd-3)))
3959
3960 (define-public ghc-unordered-containers-bootstrap
3961 (package
3962 (inherit ghc-unordered-containers)
3963 (name "ghc-unordered-containers-bootstrap")
3964 (arguments `(#:tests? #f))
3965 (inputs
3966 `(("ghc-hashable" ,ghc-hashable-bootstrap)))
3967 (properties '(hidden? #t))))
3968
3969 (define-public ghc-uniplate
3970 (package
3971 (name "ghc-uniplate")
3972 (version "1.6.12")
3973 (source
3974 (origin
3975 (method url-fetch)
3976 (uri (string-append
3977 "https://hackage.haskell.org/package/uniplate/uniplate-"
3978 version
3979 ".tar.gz"))
3980 (sha256
3981 (base32
3982 "1dx8f9aw27fz8kw0ad1nm6355w5rdl7bjvb427v2bsgnng30pipw"))))
3983 (build-system haskell-build-system)
3984 (inputs
3985 `(("ghc-syb" ,ghc-syb)
3986 ("ghc-hashable" ,ghc-hashable)
3987 ("ghc-unordered-containers" ,ghc-unordered-containers)))
3988 (home-page "http://community.haskell.org/~ndm/uniplate/")
3989 (synopsis "Simple, concise and fast generic operations")
3990 (description "Uniplate is a library for writing simple and concise generic
3991 operations. Uniplate has similar goals to the original Scrap Your Boilerplate
3992 work, but is substantially simpler and faster.")
3993 (license license:bsd-3)))
3994
3995 (define-public ghc-base64-bytestring
3996 (package
3997 (name "ghc-base64-bytestring")
3998 (version "1.0.0.2")
3999 (source
4000 (origin
4001 (method url-fetch)
4002 (uri (string-append
4003 "https://hackage.haskell.org/package/base64-bytestring/base64-bytestring-"
4004 version
4005 ".tar.gz"))
4006 (sha256
4007 (base32 "13305brzlac24pifiqd5a2z10c6k6amhpdy9cc0z5ryrkgnm8dhr"))))
4008 (build-system haskell-build-system)
4009 (arguments `(#:tests? #f)) ; FIXME: testing libraries are missing.
4010 (home-page "https://github.com/bos/base64-bytestring")
4011 (synopsis "Base64 encoding and decoding for ByteStrings")
4012 (description "This library provides fast base64 encoding and decoding for
4013 Haskell @code{ByteString}s.")
4014 (license license:bsd-3)))
4015
4016 (define-public ghc-annotated-wl-pprint
4017 (package
4018 (name "ghc-annotated-wl-pprint")
4019 (version "0.7.0")
4020 (source
4021 (origin
4022 (method url-fetch)
4023 (uri (string-append
4024 "https://hackage.haskell.org/package/annotated-wl-pprint"
4025 "/annotated-wl-pprint-" version
4026 ".tar.gz"))
4027 (sha256
4028 (base32
4029 "061xfz6qany3wf95csl8dcik2pz22cn8iv1qchhm16isw5zjs9hc"))))
4030 (build-system haskell-build-system)
4031 (home-page
4032 "https://github.com/david-christiansen/annotated-wl-pprint")
4033 (synopsis
4034 "The Wadler/Leijen Pretty Printer, with annotation support")
4035 (description "This is a modified version of wl-pprint, which was based on
4036 Wadler's paper \"A Prettier Printer\". This version allows the library user
4037 to annotate the text with semantic information, which can later be rendered in
4038 a variety of ways.")
4039 (license license:bsd-3)))
4040
4041 (define-public ghc-wl-pprint
4042 (package
4043 (name "ghc-wl-pprint")
4044 (version "1.2.1")
4045 (source (origin
4046 (method url-fetch)
4047 (uri (string-append
4048 "https://hackage.haskell.org/package/wl-pprint/wl-pprint-"
4049 version ".tar.gz"))
4050 (sha256
4051 (base32
4052 "0kn7y8pdrv8f87zhd5mifcl8fy3b2zvnzmzwhdqhxxlyzwiq6z0c"))))
4053 (build-system haskell-build-system)
4054 (home-page "https://hackage.haskell.org/package/wl-pprint")
4055 (synopsis "Wadler/Leijen pretty printer")
4056 (description
4057 "This is a pretty printing library based on Wadler's paper @i{A Prettier
4058 Printer}. This version allows the library user to declare overlapping
4059 instances of the @code{Pretty} class.")
4060 (license license:bsd-3)))
4061
4062 (define-public ghc-ansi-wl-pprint
4063 (package
4064 (name "ghc-ansi-wl-pprint")
4065 (version "0.6.8.2")
4066 (source
4067 (origin
4068 (method url-fetch)
4069 (uri (string-append "https://hackage.haskell.org/package/"
4070 "ansi-wl-pprint/ansi-wl-pprint-"
4071 version ".tar.gz"))
4072 (sha256
4073 (base32
4074 "0gnb4mkqryv08vncxnj0bzwcnd749613yw3cxfzw6y3nsldp4c56"))))
4075 (build-system haskell-build-system)
4076 (inputs
4077 `(("ghc-ansi-terminal" ,ghc-ansi-terminal)))
4078 (home-page "https://github.com/ekmett/ansi-wl-pprint")
4079 (synopsis "Wadler/Leijen Pretty Printer for colored ANSI terminal output")
4080 (description "This is a pretty printing library based on Wadler's paper
4081 \"A Prettier Printer\". It has been enhanced with support for ANSI terminal
4082 colored output using the ansi-terminal package.")
4083 (license license:bsd-3)))
4084
4085 (define-public ghc-split
4086 (package
4087 (name "ghc-split")
4088 (version "0.2.3.3")
4089 (outputs '("out" "doc"))
4090 (source
4091 (origin
4092 (method url-fetch)
4093 (uri (string-append
4094 "https://hackage.haskell.org/package/split/split-"
4095 version
4096 ".tar.gz"))
4097 (sha256
4098 (base32
4099 "04qlmkcyklznl03gsjg95b4nzb6i96gdapqg60rny9szgi7ngk8x"))))
4100 (build-system haskell-build-system)
4101 (native-inputs
4102 `(("ghc-quickcheck" ,ghc-quickcheck)))
4103 (home-page "https://hackage.haskell.org/package/split")
4104 (synopsis "Combinator library for splitting lists")
4105 (description "This package provides a collection of Haskell functions for
4106 splitting lists into parts, akin to the @code{split} function found in several
4107 mainstream languages.")
4108 (license license:bsd-3)))
4109
4110 (define-public ghc-parsec
4111 (package
4112 (name "ghc-parsec")
4113 (version "3.1.13.0")
4114 (outputs '("out" "doc"))
4115 (source
4116 (origin
4117 (method url-fetch)
4118 (uri (string-append
4119 "https://hackage.haskell.org/package/parsec/parsec-"
4120 version
4121 ".tar.gz"))
4122 (sha256
4123 (base32 "1wc09pyn70p8z6llink10c8pqbh6ikyk554911yfwxv1g91swqbq"))))
4124 (build-system haskell-build-system)
4125 (native-inputs
4126 `(("ghc-hunit" ,ghc-hunit)))
4127 (inputs
4128 `(("ghc-text" ,ghc-text)))
4129 (arguments
4130 `(#:tests? #f)) ; FIXME: currently missing libraries used for tests.
4131 (home-page
4132 "https://github.com/aslatter/parsec")
4133 (synopsis "Monadic parser combinators")
4134 (description "Parsec is a parser library. It is simple, safe, well
4135 documented, has extensive libraries, good error messages, and is fast. It is
4136 defined as a monad transformer that can be stacked on arbitrary monads, and it
4137 is also parametric in the input stream type.")
4138 (license license:bsd-3)))
4139
4140 (define-public ghc-parser-combinators
4141 (package
4142 (name "ghc-parser-combinators")
4143 (version "1.0.0")
4144 (source
4145 (origin
4146 (method url-fetch)
4147 (uri (string-append "https://hackage.haskell.org/package/"
4148 "parser-combinators/parser-combinators-"
4149 version ".tar.gz"))
4150 (sha256
4151 (base32
4152 "1pwfdsklqwvaynwpdzmx1bs35mp6dpsyaqdnzxnqcrxwf5h8sk75"))))
4153 (build-system haskell-build-system)
4154 (home-page "https://github.com/mrkkrp/parser-combinators")
4155 (synopsis "Commonly useful parser combinators")
4156 (description
4157 "This is a lightweight package providing commonly useful parser
4158 combinators.")
4159 (license license:bsd-3)))
4160
4161 (define-public ghc-megaparsec
4162 (package
4163 (name "ghc-megaparsec")
4164 (version "6.5.0")
4165 (source
4166 (origin
4167 (method url-fetch)
4168 (uri (string-append "https://hackage.haskell.org/package/"
4169 "megaparsec/megaparsec-"
4170 version ".tar.gz"))
4171 (sha256
4172 (base32
4173 "12iggy7qpf8x93jm64zf0g215xwy779bqyfyjk2bhmxqqr1yzgdy"))))
4174 (build-system haskell-build-system)
4175 (arguments
4176 `(#:cabal-revision
4177 ("4" "0ij3asi5vwlhbgwsy6nhli9a0qb7926mg809fsgyl1rnhs9fvpx1")))
4178 (inputs
4179 `(("ghc-case-insensitive" ,ghc-case-insensitive)
4180 ("ghc-parser-combinators" ,ghc-parser-combinators)
4181 ("ghc-scientific" ,ghc-scientific)
4182 ("ghc-text" ,ghc-text)))
4183 (native-inputs
4184 `(("ghc-quickcheck" ,ghc-quickcheck)
4185 ("ghc-hspec" ,ghc-hspec)
4186 ("ghc-hspec-expectations" ,ghc-hspec-expectations)
4187 ("hspec-discover" ,hspec-discover)))
4188 (home-page "https://github.com/mrkkrp/megaparsec")
4189 (synopsis "Monadic parser combinators")
4190 (description
4191 "This is an industrial-strength monadic parser combinator library.
4192 Megaparsec is a feature-rich package that strikes a nice balance between
4193 speed, flexibility, and quality of parse errors.")
4194 (license license:bsd-2)))
4195
4196 (define-public ghc-vector
4197 (package
4198 (name "ghc-vector")
4199 (version "0.12.0.1")
4200 (outputs '("out" "doc"))
4201 (source
4202 (origin
4203 (method url-fetch)
4204 (uri (string-append
4205 "https://hackage.haskell.org/package/vector/vector-"
4206 version
4207 ".tar.gz"))
4208 (sha256
4209 (base32
4210 "0yrx2ypiaxahvaz84af5bi855hd3107kxkbqc8km29nsp5wyw05i"))))
4211 (build-system haskell-build-system)
4212 ;; FIXME: To simplify upgrading all Haskell packages, we leave the tests
4213 ;; disabled for now.
4214 (arguments
4215 `(#:cabal-revision
4216 ("3" "0y5rh8k710i2a3p1h2rghvr5cfg78p5h0kbfi7ifxqqf6pzlyr1x")
4217 #:tests? #f))
4218 (inputs
4219 `(("ghc-primitive" ,ghc-primitive)
4220 ("ghc-random" ,ghc-random)
4221 ("ghc-quickcheck" ,ghc-quickcheck)
4222 ;; ("ghc-hunit" ,ghc-hunit)
4223 ;; ("ghc-test-framework" ,ghc-test-framework)
4224 ;; ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
4225 ;; ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)
4226 ))
4227 (home-page "https://github.com/haskell/vector")
4228 (synopsis "Efficient Arrays")
4229 (description "This library provides an efficient implementation of
4230 Int-indexed arrays (both mutable and immutable), with a powerful loop
4231 optimisation framework.")
4232 (license license:bsd-3)))
4233
4234 (define-public ghc-vector-binary-instances
4235 (package
4236 (name "ghc-vector-binary-instances")
4237 (version "0.2.4")
4238 (source
4239 (origin
4240 (method url-fetch)
4241 (uri (string-append
4242 "https://hackage.haskell.org/package/"
4243 "vector-binary-instances/vector-binary-instances-"
4244 version ".tar.gz"))
4245 (sha256
4246 (base32
4247 "1y236jb72iab9ska1mc48z6yb0xgwmj45laaqdyjxksd84z7hbrb"))))
4248 (build-system haskell-build-system)
4249 (arguments
4250 `(#:cabal-revision
4251 ("1" "196frl4akhfk7xf1nxzn8lmq99dxhzhsimanswn9yy7ym8zhki4i")))
4252 (inputs
4253 `(("ghc-vector" ,ghc-vector)))
4254 (native-inputs
4255 `(("ghc-tasty" ,ghc-tasty)
4256 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
4257 (home-page "https://github.com/bos/vector-binary-instances")
4258 (synopsis "Instances of Data.Binary and Data.Serialize for vector")
4259 (description "This library provides instances of @code{Binary} for the
4260 types defined in the @code{vector} package, making it easy to serialize
4261 vectors to and from disk. We use the generic interface to vectors, so all
4262 vector types are supported. Specific instances are provided for unboxed,
4263 boxed and storable vectors.")
4264 (license license:bsd-3)))
4265
4266 (define-public ghc-bloomfilter
4267 (package
4268 (name "ghc-bloomfilter")
4269 (version "2.0.1.0")
4270 (source
4271 (origin
4272 (method url-fetch)
4273 (uri (string-append "https://hackage.haskell.org/package/"
4274 "bloomfilter/bloomfilter-" version ".tar.gz"))
4275 (sha256
4276 (base32
4277 "03vrmncg1c10a2wcg5skq30m1yiknn7nwxz2gblyyfaxglshspkc"))))
4278 (build-system haskell-build-system)
4279 (native-inputs
4280 `(("ghc-quickcheck" ,ghc-quickcheck)
4281 ("ghc-random" ,ghc-random)
4282 ("ghc-test-framework" ,ghc-test-framework)
4283 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
4284 (home-page "https://github.com/bos/bloomfilter")
4285 (synopsis "Pure and impure Bloom filter implementations")
4286 (description "This package provides both mutable and immutable Bloom
4287 filter data types, along with a family of hash functions and an easy-to-use
4288 interface.")
4289 (license license:bsd-3)))
4290
4291 (define-public ghc-network
4292 (package
4293 (name "ghc-network")
4294 (version "2.6.3.6")
4295 (outputs '("out" "doc"))
4296 (source
4297 (origin
4298 (method url-fetch)
4299 (uri (string-append
4300 "https://hackage.haskell.org/package/network/network-"
4301 version
4302 ".tar.gz"))
4303 (sha256
4304 (base32
4305 "198mam7ahny48p9fajznbqq16a8ya2gw0xm3gnm1si1rmc4hdplv"))))
4306 (build-system haskell-build-system)
4307 ;; The regression tests depend on an unpublished module.
4308 (arguments `(#:tests? #f))
4309 (native-inputs
4310 `(("ghc-hunit" ,ghc-hunit)
4311 ("ghc-doctest" ,ghc-doctest)
4312 ("ghc-test-framework" ,ghc-test-framework)
4313 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)))
4314 (home-page "https://github.com/haskell/network")
4315 (synopsis "Low-level networking interface")
4316 (description
4317 "This package provides a low-level networking interface.")
4318 (license license:bsd-3)))
4319
4320 (define-public ghc-network-uri
4321 (package
4322 (name "ghc-network-uri")
4323 (version "2.6.1.0")
4324 (outputs '("out" "doc"))
4325 (source
4326 (origin
4327 (method url-fetch)
4328 (uri (string-append
4329 "https://hackage.haskell.org/package/network-uri/network-uri-"
4330 version
4331 ".tar.gz"))
4332 (sha256
4333 (base32
4334 "1w27zkvn39kjr9lmw9421y8w43h572ycsfafsb7kyvr3a4ihlgj2"))))
4335 (build-system haskell-build-system)
4336 (arguments
4337 `(#:tests? #f)) ; FIXME: currently missing libraries used for tests.
4338 (native-inputs
4339 `(("ghc-hunit" ,ghc-hunit)))
4340 (inputs
4341 `(("ghc-parsec" ,ghc-parsec)
4342 ("ghc-network" ,ghc-network)))
4343 (home-page
4344 "https://github.com/haskell/network-uri")
4345 (synopsis "Library for URI manipulation")
4346 (description "This package provides an URI manipulation interface. In
4347 @code{network-2.6} the @code{Network.URI} module was split off from the
4348 @code{network} package into this package.")
4349 (license license:bsd-3)))
4350
4351 (define-public ghc-ansi-terminal
4352 (package
4353 (name "ghc-ansi-terminal")
4354 (version "0.8.0.4")
4355 (source
4356 (origin
4357 (method url-fetch)
4358 (uri (string-append
4359 "https://hackage.haskell.org/package/ansi-terminal/ansi-terminal-"
4360 version
4361 ".tar.gz"))
4362 (sha256
4363 (base32
4364 "0428gq8m3fdnb7ldcsyk97qcch76hcxbgh2666p6f76fs2qbhg7b"))))
4365 (build-system haskell-build-system)
4366 (inputs
4367 `(("ghc-colour" ,ghc-colour)))
4368 (home-page "https://github.com/feuerbach/ansi-terminal")
4369 (synopsis "ANSI terminal support for Haskell")
4370 (description "This package provides ANSI terminal support for Haskell. It
4371 allows cursor movement, screen clearing, color output showing or hiding the
4372 cursor, and changing the title.")
4373 (license license:bsd-3)))
4374
4375 (define-public ghc-vault
4376 (package
4377 (name "ghc-vault")
4378 (version "0.3.1.2")
4379 (source
4380 (origin
4381 (method url-fetch)
4382 (uri (string-append
4383 "https://hackage.haskell.org/package/vault/vault-"
4384 version
4385 ".tar.gz"))
4386 (sha256
4387 (base32
4388 "072mbrihsdsb8c6xvg6lvk0rqjgvxvi8qkg4n6wwym5hq0pfa04y"))))
4389 (build-system haskell-build-system)
4390 (inputs
4391 `(("ghc-unordered-containers" ,ghc-unordered-containers)
4392 ("ghc-hashable" ,ghc-hashable)
4393 ("ghc-semigroupoids" ,ghc-semigroupoids)))
4394 (home-page
4395 "https://github.com/HeinrichApfelmus/vault")
4396 (synopsis "Persistent store for arbitrary values")
4397 (description "This package provides vaults for Haskell. A vault is a
4398 persistent store for values of arbitrary types. It's like having first-class
4399 access to the storage space behind @code{IORefs}. The data structure is
4400 analogous to a bank vault, where you can access different bank boxes with
4401 different keys; hence the name. Also provided is a @code{locker} type,
4402 representing a store for a single element.")
4403 (license license:bsd-3)))
4404
4405 (define-public ghc-edisonapi
4406 (package
4407 (name "ghc-edisonapi")
4408 (version "1.3.1")
4409 (source
4410 (origin
4411 (method url-fetch)
4412 (uri (string-append "https://hackage.haskell.org/package/EdisonAPI"
4413 "/EdisonAPI-" version ".tar.gz"))
4414 (sha256
4415 (base32 "0vmmlsj8ggbpwx6fkf5fvb6jp0zpx6iba6b28m80lllr2p8bi8wm"))))
4416 (build-system haskell-build-system)
4417 (home-page "http://rwd.rdockins.name/edison/home/")
4418 (synopsis "Library of efficient, purely-functional data structures (API)")
4419 (description
4420 "Edison is a library of purely functional data structures written by
4421 Chris Okasaki. It is named after Thomas Alva Edison and for the mnemonic
4422 value EDiSon (Efficient Data Structures). Edison provides several families of
4423 abstractions, each with multiple implementations. The main abstractions
4424 provided by Edison are: Sequences such as stacks, queues, and dequeues;
4425 Collections such as sets, bags and heaps; and Associative Collections such as
4426 finite maps and priority queues where the priority and element are distinct.")
4427 (license license:expat)))
4428
4429 (define-public ghc-edisoncore
4430 (package
4431 (name "ghc-edisoncore")
4432 (version "1.3.2.1")
4433 (source
4434 (origin
4435 (method url-fetch)
4436 (uri (string-append "https://hackage.haskell.org/package/EdisonCore"
4437 "/EdisonCore-" version ".tar.gz"))
4438 (sha256
4439 (base32 "0fgj5iwiv3v2gdgx7kjcr15dcs4x1kvmjspp3p99wyhh0x6h3ikk"))))
4440 (build-system haskell-build-system)
4441 (inputs
4442 `(("ghc-quickcheck" ,ghc-quickcheck)
4443 ("ghc-edisonapi" ,ghc-edisonapi)))
4444 (home-page "http://rwd.rdockins.name/edison/home/")
4445 (synopsis "Library of efficient, purely-functional data structures")
4446 (description
4447 "This package provides the core Edison data structure implementations,
4448 including multiple sequence, set, bag, and finite map concrete implementations
4449 with various performance characteristics.")
4450 (license license:expat)))
4451
4452 (define-public ghc-mmorph
4453 (package
4454 (name "ghc-mmorph")
4455 (version "1.1.2")
4456 (source
4457 (origin
4458 (method url-fetch)
4459 (uri (string-append
4460 "https://hackage.haskell.org/package/mmorph/mmorph-"
4461 version
4462 ".tar.gz"))
4463 (sha256
4464 (base32
4465 "1gjz1ib968lqybma7my1n19qq6cdj6a7nskrlnwy4jy9jrwzs2n9"))))
4466 (build-system haskell-build-system)
4467 (inputs
4468 `(("ghc-transformers-compat" ,ghc-transformers-compat)))
4469 (home-page "https://hackage.haskell.org/package/mmorph")
4470 (synopsis "Monad morphisms")
4471 (description
4472 "This library provides monad morphism utilities, most commonly used for
4473 manipulating monad transformer stacks.")
4474 (license license:bsd-3)))
4475
4476 (define-public ghc-ifelse
4477 (package
4478 (name "ghc-ifelse")
4479 (version "0.85")
4480 (source
4481 (origin
4482 (method url-fetch)
4483 (uri (string-append "https://hackage.haskell.org/package/"
4484 "IfElse/IfElse-" version ".tar.gz"))
4485 (sha256
4486 (base32
4487 "1kfx1bwfjczj93a8yqz1n8snqiq5655qgzwv1lrycry8wb1vzlwa"))))
4488 (build-system haskell-build-system)
4489 (home-page "http://hackage.haskell.org/package/IfElse")
4490 (synopsis "Monadic control flow with anaphoric variants")
4491 (description "This library provides functions for control flow inside of
4492 monads with anaphoric variants on @code{if} and @code{when} and a C-like
4493 @code{switch} function.")
4494 (license license:bsd-3)))
4495
4496 (define-public ghc-monad-control
4497 (package
4498 (name "ghc-monad-control")
4499 (version "1.0.2.3")
4500 (source
4501 (origin
4502 (method url-fetch)
4503 (uri (string-append
4504 "https://hackage.haskell.org/package/monad-control"
4505 "/monad-control-" version ".tar.gz"))
4506 (sha256
4507 (base32
4508 "1c92833gr6cadidjdp8mlznkpp8lyxl0w3y7d19y8yi3klc3843c"))))
4509 (build-system haskell-build-system)
4510 (inputs
4511 `(("ghc-stm" ,ghc-stm)
4512 ("ghc-transformers-base" ,ghc-transformers-base)
4513 ("ghc-transformers-compat" ,ghc-transformers-compat)))
4514 (home-page "https://github.com/basvandijk/monad-control")
4515 (synopsis "Monad transformers to lift control operations like exception
4516 catching")
4517 (description "This package defines the type class @code{MonadBaseControl},
4518 a subset of @code{MonadBase} into which generic control operations such as
4519 @code{catch} can be lifted from @code{IO} or any other base monad.")
4520 (license license:bsd-3)))
4521
4522 (define-public ghc-fail
4523 (package
4524 (name "ghc-fail")
4525 (version "4.9.0.0")
4526 (source
4527 (origin
4528 (method url-fetch)
4529 (uri (string-append "https://hackage.haskell.org/package/fail/fail-"
4530 version ".tar.gz"))
4531 (sha256
4532 (base32 "18nlj6xvnggy61gwbyrpmvbdkq928wv0wx2zcsljb52kbhddnp3d"))))
4533 (build-system haskell-build-system)
4534 (arguments `(#:haddock? #f)) ; Package contains no documentation.
4535 (home-page "https://prime.haskell.org/wiki/Libraries/Proposals/MonadFail")
4536 (synopsis "Forward-compatible MonadFail class")
4537 (description
4538 "This package contains the @code{Control.Monad.Fail} module providing the
4539 @uref{https://prime.haskell.org/wiki/Libraries/Proposals/MonadFail, MonadFail}
4540 class that became available in
4541 @uref{https://hackage.haskell.org/package/base-4.9.0.0, base-4.9.0.0} for
4542 older @code{base} package versions. This package turns into an empty package
4543 when used with GHC versions which already provide the
4544 @code{Control.Monad.Fail} module.")
4545 (license license:bsd-3)))
4546
4547 (define-public ghc-monadplus
4548 (package
4549 (name "ghc-monadplus")
4550 (version "1.4.2")
4551 (source
4552 (origin
4553 (method url-fetch)
4554 (uri (string-append "https://hackage.haskell.org/package/monadplus"
4555 "/monadplus-" version ".tar.gz"))
4556 (sha256
4557 (base32 "15b5320wdpmdp5slpphnc1x4rhjch3igw245dp2jxbqyvchdavin"))))
4558 (build-system haskell-build-system)
4559 (home-page "https://hackage.haskell.org/package/monadplus")
4560 (synopsis "Filtering and folding over arbitrary MonadPlus instances")
4561 (description
4562 "This package generalizes many common stream operations such as
4563 @code{filter}, @code{catMaybes} etc, enabling filtering and folding over
4564 arbitrary @code{MonadPlus} instances.")
4565 (license license:bsd-3)))
4566
4567 (define-public ghc-byteorder
4568 (package
4569 (name "ghc-byteorder")
4570 (version "1.0.4")
4571 (source
4572 (origin
4573 (method url-fetch)
4574 (uri (string-append
4575 "https://hackage.haskell.org/package/byteorder/byteorder-"
4576 version
4577 ".tar.gz"))
4578 (sha256
4579 (base32
4580 "06995paxbxk8lldvarqpb3ygcjbg4v8dk4scib1rjzwlhssvn85x"))))
4581 (build-system haskell-build-system)
4582 (home-page
4583 "http://community.haskell.org/~aslatter/code/byteorder")
4584 (synopsis
4585 "Exposes the native endianness of the system")
4586 (description
4587 "This package is for working with the native byte-ordering of the
4588 system.")
4589 (license license:bsd-3)))
4590
4591 (define-public ghc-base-compat
4592 (package
4593 (name "ghc-base-compat")
4594 (version "0.10.4")
4595 (source
4596 (origin
4597 (method url-fetch)
4598 (uri (string-append
4599 "https://hackage.haskell.org/package/base-compat/base-compat-"
4600 version
4601 ".tar.gz"))
4602 (sha256
4603 (base32
4604 "0ksp990gxs731mq19rzbxrbs43nazfljjc8krlx5bjqblw3kfs8d"))))
4605 (build-system haskell-build-system)
4606 (native-inputs
4607 `(("ghc-quickcheck" ,ghc-quickcheck)
4608 ("ghc-hspec" ,ghc-hspec)
4609 ("hspec-discover" ,hspec-discover)))
4610 (home-page "https://hackage.haskell.org/package/base-compat")
4611 (synopsis "Haskell compiler compatibility library")
4612 (description "This library provides functions available in later versions
4613 of base to a wider range of compilers, without requiring the use of CPP
4614 pragmas in your code.")
4615 (license license:bsd-3)))
4616
4617 (define-public ghc-blaze-builder
4618 (package
4619 (name "ghc-blaze-builder")
4620 (version "0.4.1.0")
4621 (source
4622 (origin
4623 (method url-fetch)
4624 (uri (string-append
4625 "https://hackage.haskell.org/package/blaze-builder/blaze-builder-"
4626 version
4627 ".tar.gz"))
4628 (sha256
4629 (base32
4630 "05681dih2d8s96an945wkbwl05w8ddbcfx8n3r3ck79ydyb8pz4i"))))
4631 (build-system haskell-build-system)
4632 (arguments `(#:tests? #f)) ; FIXME: Missing test libraries.
4633 (inputs
4634 `(("ghc-text" ,ghc-text)
4635 ("ghc-utf8-string" ,ghc-utf8-string)))
4636 (home-page "https://github.com/lpsmith/blaze-builder")
4637 (synopsis "Efficient buffered output")
4638 (description "This library provides an implementation of the older
4639 @code{blaze-builder} interface in terms of the new builder that shipped with
4640 @code{bytestring-0.10.4.0}. This implementation is mostly intended as a
4641 bridge to the new builder, so that code that uses the old interface can
4642 interoperate with code that uses the new implementation.")
4643 (license license:bsd-3)))
4644
4645 (define-public ghc-blaze-markup
4646 (package
4647 (name "ghc-blaze-markup")
4648 (version "0.8.2.1")
4649 (source
4650 (origin
4651 (method url-fetch)
4652 (uri (string-append "https://hackage.haskell.org/package/"
4653 "blaze-markup/blaze-markup-"
4654 version ".tar.gz"))
4655 (sha256
4656 (base32
4657 "0ih1c3qahkdgzbqihdhny5s313l2m66fbb88w8jbx7yz56y7rawh"))))
4658 (build-system haskell-build-system)
4659 (arguments
4660 `(#:phases
4661 (modify-phases %standard-phases
4662 (add-before 'configure 'update-constraints
4663 (lambda _
4664 (substitute* "blaze-markup.cabal"
4665 (("tasty >= 1\\.0 && < 1\\.1")
4666 "tasty >= 1.0 && < 1.2")))))))
4667 (inputs
4668 `(("ghc-blaze-builder" ,ghc-blaze-builder)
4669 ("ghc-text" ,ghc-text)))
4670 (native-inputs
4671 `(("ghc-hunit" ,ghc-hunit)
4672 ("ghc-quickcheck" ,ghc-quickcheck)
4673 ("ghc-tasty" ,ghc-tasty)
4674 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
4675 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
4676 (home-page "https://jaspervdj.be/blaze")
4677 (synopsis "Fast markup combinator library for Haskell")
4678 (description "This library provides core modules of a markup combinator
4679 library for Haskell.")
4680 (license license:bsd-3)))
4681
4682 (define-public ghc-easy-file
4683 (package
4684 (name "ghc-easy-file")
4685 (version "0.2.2")
4686 (source
4687 (origin
4688 (method url-fetch)
4689 (uri (string-append
4690 "https://hackage.haskell.org/package/easy-file/easy-file-"
4691 version
4692 ".tar.gz"))
4693 (sha256
4694 (base32
4695 "0zmlcz723051qpn8l8vi51c5rx1blwrw4094jcshkmj8p9r2xxaj"))))
4696 (build-system haskell-build-system)
4697 (home-page
4698 "https://github.com/kazu-yamamoto/easy-file")
4699 (synopsis "File handling library for Haskell")
4700 (description "This library provides file handling utilities for Haskell.")
4701 (license license:bsd-3)))
4702
4703 (define-public ghc-async
4704 (package
4705 (name "ghc-async")
4706 (version "2.2.1")
4707 (source
4708 (origin
4709 (method url-fetch)
4710 (uri (string-append
4711 "https://hackage.haskell.org/package/async/async-"
4712 version
4713 ".tar.gz"))
4714 (sha256
4715 (base32
4716 "09whscli1q5z7lzyq9rfk0bq1ydplh6pjmc6qv0x668k5818c2wg"))))
4717 (build-system haskell-build-system)
4718 (inputs
4719 `(("ghc-stm" ,ghc-stm)
4720 ("ghc-hashable" ,ghc-hashable)
4721 ("ghc-hunit" ,ghc-hunit)
4722 ("ghc-test-framework" ,ghc-test-framework)
4723 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)))
4724 (home-page "https://github.com/simonmar/async")
4725 (synopsis "Library to run IO operations asynchronously")
4726 (description "Async provides a library to run IO operations
4727 asynchronously, and wait for their results. It is a higher-level interface
4728 over threads in Haskell, in which @code{Async a} is a concurrent thread that
4729 will eventually deliver a value of type @code{a}.")
4730 (license license:bsd-3)))
4731
4732 (define-public ghc-fingertree
4733 (package
4734 (name "ghc-fingertree")
4735 (version "0.1.4.1")
4736 (source
4737 (origin
4738 (method url-fetch)
4739 (uri (string-append
4740 "https://hackage.haskell.org/package/fingertree/fingertree-"
4741 version ".tar.gz"))
4742 (sha256
4743 (base32
4744 "192fyzv0pn1437wdpqg1l80rswkk4rw3w61r4bq7dhv354bdqy4p"))))
4745 (build-system haskell-build-system)
4746 (native-inputs
4747 `(("ghc-hunit" ,ghc-hunit)
4748 ("ghc-quickcheck" ,ghc-quickcheck)
4749 ("ghc-test-framework" ,ghc-test-framework)
4750 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
4751 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
4752 (home-page "https://hackage.haskell.org/package/fingertree")
4753 (synopsis "Generic finger-tree structure")
4754 (description "This library provides finger trees, a general sequence
4755 representation with arbitrary annotations, for use as a base for
4756 implementations of various collection types. It includes examples, as
4757 described in section 4 of Ralf Hinze and Ross Paterson, \"Finger trees: a
4758 simple general-purpose data structure\".")
4759 (license license:bsd-3)))
4760
4761 (define-public ghc-optparse-applicative
4762 (package
4763 (name "ghc-optparse-applicative")
4764 (version "0.14.2.0")
4765 (source
4766 (origin
4767 (method url-fetch)
4768 (uri (string-append
4769 "https://hackage.haskell.org/package/optparse-applicative"
4770 "/optparse-applicative-" version ".tar.gz"))
4771 (sha256
4772 (base32
4773 "0c3z1mvynlyv1garjbdmdd3npm40dabgm75js4r07cf766c1wd71"))))
4774 (build-system haskell-build-system)
4775 (inputs
4776 `(("ghc-transformers-compat" ,ghc-transformers-compat)
4777 ("ghc-ansi-wl-pprint" ,ghc-ansi-wl-pprint)))
4778 (native-inputs
4779 `(("ghc-quickcheck" ,ghc-quickcheck)))
4780 (home-page "https://github.com/pcapriotti/optparse-applicative")
4781 (synopsis "Utilities and combinators for parsing command line options")
4782 (description "This package provides utilities and combinators for parsing
4783 command line options in Haskell.")
4784 (license license:bsd-3)))
4785
4786 (define-public ghc-base-orphans
4787 (package
4788 (name "ghc-base-orphans")
4789 (version "0.7")
4790 (source
4791 (origin
4792 (method url-fetch)
4793 (uri (string-append
4794 "https://hackage.haskell.org/package/base-orphans/base-orphans-"
4795 version
4796 ".tar.gz"))
4797 (sha256
4798 (base32
4799 "057f9npnqk71ccfh95djfkpd54dzazphj06grwxa3fyhwcwxrb8a"))))
4800 (build-system haskell-build-system)
4801 (native-inputs
4802 `(("ghc-quickcheck" ,ghc-quickcheck)
4803 ("ghc-hspec" ,ghc-hspec)
4804 ("hspec-discover" ,hspec-discover)))
4805 (home-page "https://hackage.haskell.org/package/base-orphans")
4806 (synopsis "Orphan instances for backwards compatibility")
4807 (description "This package defines orphan instances that mimic instances
4808 available in later versions of base to a wider (older) range of compilers.")
4809 (license license:bsd-3)))
4810
4811 (define-public ghc-auto-update
4812 (package
4813 (name "ghc-auto-update")
4814 (version "0.1.4")
4815 (source
4816 (origin
4817 (method url-fetch)
4818 (uri (string-append
4819 "https://hackage.haskell.org/package/auto-update/auto-update-"
4820 version
4821 ".tar.gz"))
4822 (sha256
4823 (base32
4824 "09dlh2alsx2mw5kvj931yhbj0aw7jmly2cm9xbscm2sf098w35jy"))))
4825 (build-system haskell-build-system)
4826 (home-page "https://github.com/yesodweb/wai")
4827 (synopsis "Efficiently run periodic, on-demand actions")
4828 (description "This library provides mechanisms to efficiently run
4829 periodic, on-demand actions in Haskell.")
4830 (license license:expat)))
4831
4832 (define-public ghc-tagged
4833 (package
4834 (name "ghc-tagged")
4835 (version "0.8.5")
4836 (source
4837 (origin
4838 (method url-fetch)
4839 (uri (string-append
4840 "https://hackage.haskell.org/package/tagged/tagged-"
4841 version
4842 ".tar.gz"))
4843 (sha256
4844 (base32
4845 "16cdzh0bw16nvjnyyy5j9s60malhz4nnazw96vxb0xzdap4m2z74"))))
4846 (build-system haskell-build-system)
4847 (arguments
4848 `(#:cabal-revision
4849 ("2" "0r2knfcq0b4s652vlvlnfwxlc2mkc2ra9kl8bp4zdn1awmfy0ia5")))
4850 (inputs
4851 `(("ghc-transformers-compat" ,ghc-transformers-compat)))
4852 (home-page "https://hackage.haskell.org/package/tagged")
4853 (synopsis "Haskell phantom types to avoid passing dummy arguments")
4854 (description "This library provides phantom types for Haskell 98, to avoid
4855 having to unsafely pass dummy arguments.")
4856 (license license:bsd-3)))
4857
4858 (define-public ghc-unbounded-delays
4859 (package
4860 (name "ghc-unbounded-delays")
4861 (version "0.1.1.0")
4862 (source
4863 (origin
4864 (method url-fetch)
4865 (uri (string-append
4866 "https://hackage.haskell.org/package/unbounded-delays/unbounded-delays-"
4867 version
4868 ".tar.gz"))
4869 (sha256
4870 (base32
4871 "1ir9fghbrc214c97bwafk5ck6cacxz1pdnq4i18p604d1b8zg9wa"))))
4872 (build-system haskell-build-system)
4873 (home-page "https://github.com/basvandijk/unbounded-delays")
4874 (synopsis "Unbounded thread delays and timeouts")
4875 (description "The @code{threadDelay} and @code{timeout} functions from the
4876 Haskell base library use the bounded @code{Int} type for specifying the delay
4877 or timeout period. This package provides alternative functions which use the
4878 unbounded @code{Integer} type.")
4879 (license license:bsd-3)))
4880
4881 (define-public ghc-clock
4882 (package
4883 (name "ghc-clock")
4884 (version "0.7.2")
4885 (source
4886 (origin
4887 (method url-fetch)
4888 (uri (string-append
4889 "https://hackage.haskell.org/package/"
4890 "clock/"
4891 "clock-" version ".tar.gz"))
4892 (sha256
4893 (base32 "07v91s20halsqjmziqb1sqjp2sjpckl9by7y28aaklwqi2bh2rl8"))))
4894 (build-system haskell-build-system)
4895 (inputs
4896 `(("ghc-tasty" ,ghc-tasty)
4897 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
4898 (home-page "https://hackage.haskell.org/package/clock")
4899 (synopsis "High-resolution clock for Haskell")
4900 (description "A package for convenient access to high-resolution clock and
4901 timer functions of different operating systems via a unified API.")
4902 (license license:bsd-3)))
4903
4904 (define-public ghc-charset
4905 (package
4906 (name "ghc-charset")
4907 (version "0.3.7.1")
4908 (source
4909 (origin
4910 (method url-fetch)
4911 (uri (string-append
4912 "https://hackage.haskell.org/package/charset/charset-"
4913 version
4914 ".tar.gz"))
4915 (sha256
4916 (base32
4917 "1gn0m96qpjww8hpp2g1as5yy0wcwy4iq73h3kz6g0yxxhcl5sh9x"))))
4918 (build-system haskell-build-system)
4919 (inputs
4920 `(("ghc-semigroups" ,ghc-semigroups)
4921 ("ghc-unordered-containers" ,ghc-unordered-containers)))
4922 (home-page "https://github.com/ekmett/charset")
4923 (synopsis "Fast unicode character sets for Haskell")
4924 (description "This package provides fast unicode character sets for
4925 Haskell, based on complemented PATRICIA tries.")
4926 (license license:bsd-3)))
4927
4928 (define-public ghc-bytestring-builder
4929 (package
4930 (name "ghc-bytestring-builder")
4931 (version "0.10.8.1.0")
4932 (source
4933 (origin
4934 (method url-fetch)
4935 (uri (string-append
4936 "https://hackage.haskell.org/package/bytestring-builder"
4937 "/bytestring-builder-" version ".tar.gz"))
4938 (sha256
4939 (base32
4940 "1hnvjac28y44yn78c9vdp1zvrknvlw98ky3g4n5vivr16rvh8x3d"))))
4941 (build-system haskell-build-system)
4942 (arguments `(#:haddock? #f)) ; Package contains no documentation.
4943 (home-page "https://hackage.haskell.org/package/bytestring-builder")
4944 (synopsis "The new bytestring builder, packaged outside of GHC")
4945 (description "This package provides the bytestring builder that is
4946 debuting in bytestring-0.10.4.0, which should be shipping with GHC 7.8.
4947 Compatibility package for older packages.")
4948 (license license:bsd-3)))
4949
4950 (define-public ghc-nats
4951 (package
4952 (name "ghc-nats")
4953 (version "1.1.2")
4954 (source
4955 (origin
4956 (method url-fetch)
4957 (uri (string-append
4958 "https://hackage.haskell.org/package/nats/nats-"
4959 version
4960 ".tar.gz"))
4961 (sha256
4962 (base32
4963 "1v40drmhixck3pz3mdfghamh73l4rp71mzcviipv1y8jhrfxilmr"))))
4964 (build-system haskell-build-system)
4965 (arguments `(#:haddock? #f))
4966 (inputs
4967 `(("ghc-hashable" ,ghc-hashable)))
4968 (home-page "https://hackage.haskell.org/package/nats")
4969 (synopsis "Natural numbers")
4970 (description "This library provides the natural numbers for Haskell.")
4971 (license license:bsd-3)))
4972
4973 (define-public ghc-nats-bootstrap
4974 (package
4975 (inherit ghc-nats)
4976 (name "ghc-nats-bootstrap")
4977 (inputs
4978 `(("ghc-hashable" ,ghc-hashable-bootstrap)))
4979 (properties '((hidden? #t)))))
4980
4981 (define-public ghc-void
4982 (package
4983 (name "ghc-void")
4984 (version "0.7.2")
4985 (source
4986 (origin
4987 (method url-fetch)
4988 (uri (string-append
4989 "https://hackage.haskell.org/package/void/void-"
4990 version
4991 ".tar.gz"))
4992 (sha256
4993 (base32
4994 "0aygw0yb1h3yhmfl3bkwh5d3h0l4mmsxz7j53vdm6jryl1kgxzyk"))))
4995 (build-system haskell-build-system)
4996 (inputs
4997 `(("ghc-semigroups" ,ghc-semigroups)
4998 ("ghc-hashable" ,ghc-hashable)))
4999 (home-page "https://github.com/ekmett/void")
5000 (synopsis
5001 "Logically uninhabited data type")
5002 (description
5003 "A Haskell 98 logically uninhabited data type, used to indicate that a
5004 given term should not exist.")
5005 (license license:bsd-3)))
5006
5007 (define-public ghc-invariant
5008 (package
5009 (name "ghc-invariant")
5010 (version "0.5.1")
5011 (source
5012 (origin
5013 (method url-fetch)
5014 (uri (string-append
5015 "https://hackage.haskell.org/package/invariant/invariant-"
5016 version ".tar.gz"))
5017 (sha256
5018 (base32
5019 "0aqj7z55632qdg45074kgn9qfdxzb0a2f8lgjzr0l0i4mm2rr37b"))))
5020 (build-system haskell-build-system)
5021 (inputs
5022 `(("ghc-bifunctors" ,ghc-bifunctors)
5023 ("ghc-comonad" ,ghc-comonad)
5024 ("ghc-contravariant" ,ghc-contravariant)
5025 ("ghc-profunctors" ,ghc-profunctors)
5026 ("ghc-semigroups" ,ghc-semigroups)
5027 ("ghc-statevar" ,ghc-statevar)
5028 ("ghc-stm" ,ghc-stm)
5029 ("ghc-tagged" ,ghc-tagged)
5030 ("ghc-th-abstraction" ,ghc-th-abstraction)
5031 ("ghc-transformers-compat" ,ghc-transformers-compat)
5032 ("ghc-unordered-containers" ,ghc-unordered-containers)))
5033 (native-inputs
5034 `(("ghc-hspec" ,ghc-hspec)
5035 ("ghc-quickcheck" ,ghc-quickcheck)
5036 ("hspec-discover" ,hspec-discover)))
5037 (home-page "https://github.com/nfrisby/invariant-functors")
5038 (synopsis "Haskell98 invariant functors")
5039 (description "Haskell98 invariant functors (also known as exponential
5040 functors). For more information, see Edward Kmett's article
5041 @uref{http://comonad.com/reader/2008/rotten-bananas/, Rotten Bananas}.")
5042 (license license:bsd-2)))
5043
5044 (define-public ghc-kan-extensions
5045 (package
5046 (name "ghc-kan-extensions")
5047 (version "5.2")
5048 (source
5049 (origin
5050 (method url-fetch)
5051 (uri (string-append
5052 "https://hackage.haskell.org/package/kan-extensions/kan-extensions-"
5053 version
5054 ".tar.gz"))
5055 (sha256
5056 (base32
5057 "1lyvyiwwh962j2nnnsqzlvp5zq6z8p3spvhmji99cjvldxc7wwkb"))))
5058 (build-system haskell-build-system)
5059 (inputs
5060 `(("ghc-adjunctions" ,ghc-adjunctions)
5061 ("ghc-comonad" ,ghc-comonad)
5062 ("ghc-contravariant" ,ghc-contravariant)
5063 ("ghc-distributive" ,ghc-distributive)
5064 ("ghc-free" ,ghc-free)
5065 ("ghc-invariant" ,ghc-invariant)
5066 ("ghc-semigroupoids" ,ghc-semigroupoids)
5067 ("ghc-tagged" ,ghc-tagged)
5068 ("ghc-transformers-compat" ,ghc-transformers-compat)))
5069 (home-page "https://github.com/ekmett/kan-extensions/")
5070 (synopsis "Kan extensions library")
5071 (description "This library provides Kan extensions, Kan lifts, various
5072 forms of the Yoneda lemma, and (co)density (co)monads for Haskell.")
5073 (license license:bsd-3)))
5074
5075 (define-public ghc-call-stack
5076 (package
5077 (name "ghc-call-stack")
5078 (version "0.1.0")
5079 (source
5080 (origin
5081 (method url-fetch)
5082 (uri (string-append "https://hackage.haskell.org/package/"
5083 "call-stack/call-stack-"
5084 version ".tar.gz"))
5085 (sha256
5086 (base32
5087 "1qmihf5jafmc79sk52l6gpx75f5bnla2lp62kh3p34x3j84mwpzj"))))
5088 (build-system haskell-build-system)
5089 (inputs `(("ghc-nanospec" ,ghc-nanospec)))
5090 (home-page "https://github.com/sol/call-stack#readme")
5091 (synopsis "Use GHC call-stacks in a backward compatible way")
5092 (description "This package provides a compatibility layer for using GHC
5093 call stacks with different versions of the compiler.")
5094 (license license:expat)))
5095
5096 ;; This is used as an input to ghc-hunit. We cannot use ghc-call-stack there,
5097 ;; because it depends on ghc-nanospec, which depends on ghc-hunit.
5098 (define-public ghc-call-stack-boot
5099 (hidden-package
5100 (package
5101 (inherit ghc-call-stack)
5102 (arguments '(#:tests? #f))
5103 (inputs '()))))
5104
5105 (define-public ghc-statevar
5106 (package
5107 (name "ghc-statevar")
5108 (version "1.1.1.1")
5109 (source
5110 (origin
5111 (method url-fetch)
5112 (uri (string-append
5113 "https://hackage.haskell.org/package/StateVar/StateVar-"
5114 version
5115 ".tar.gz"))
5116 (sha256
5117 (base32
5118 "08r2iw0gdmfs4f6wraaq19vfmkjdbics3dbhw39y7mdjd98kcr7b"))))
5119 (build-system haskell-build-system)
5120 (inputs
5121 `(("ghc-stm" ,ghc-stm)))
5122 (home-page "https://hackage.haskell.org/package/StateVar")
5123 (synopsis "State variables for Haskell")
5124 (description "This package provides state variables, which are references
5125 in the @code{IO} monad, like @code{IORef}s or parts of the OpenGL state.")
5126 (license license:bsd-3)))
5127
5128 (define-public ghc-lens
5129 (package
5130 (name "ghc-lens")
5131 (version "4.16.1")
5132 (source
5133 (origin
5134 (method url-fetch)
5135 (uri (string-append "https://hackage.haskell.org/package/lens/lens-"
5136 version ".tar.gz"))
5137 (sha256
5138 (base32
5139 "1im4drhbydbawd6i0jsrzpqihnmx4ywpkg7yg94ddwsw3mxwkgpm"))))
5140 (build-system haskell-build-system)
5141 (arguments
5142 `(#:cabal-revision
5143 ("2" "11h83lj5mba4grhz1qx3irz10ysm9c3k7k6i6xv2cr60q8xin3ri")))
5144 (inputs
5145 `(("ghc-base-orphans" ,ghc-base-orphans)
5146 ("ghc-bifunctors" ,ghc-bifunctors)
5147 ("ghc-distributive" ,ghc-distributive)
5148 ("ghc-exceptions" ,ghc-exceptions)
5149 ("ghc-free" ,ghc-free)
5150 ("ghc-kan-extensions" ,ghc-kan-extensions)
5151 ("ghc-parallel" ,ghc-parallel)
5152 ("ghc-reflection" ,ghc-reflection)
5153 ("ghc-semigroupoids" ,ghc-semigroupoids)
5154 ("ghc-vector" ,ghc-vector)
5155 ("ghc-call-stack" ,ghc-call-stack)
5156 ("ghc-comonad" ,ghc-comonad)
5157 ("ghc-contravariant" ,ghc-contravariant)
5158 ("ghc-hashable" ,ghc-hashable)
5159 ("ghc-profunctors" ,ghc-profunctors)
5160 ("ghc-semigroups" ,ghc-semigroups)
5161 ("ghc-tagged" ,ghc-tagged)
5162 ("ghc-text" ,ghc-text)
5163 ("ghc-transformers-compat" ,ghc-transformers-compat)
5164 ("ghc-unordered-containers" ,ghc-unordered-containers)
5165 ("ghc-void" ,ghc-void)
5166 ("ghc-generic-deriving" ,ghc-generic-deriving)
5167 ("ghc-nats" ,ghc-nats)
5168 ("ghc-simple-reflect" ,ghc-simple-reflect)
5169 ("hlint" ,hlint)))
5170 (native-inputs
5171 `(("cabal-doctest" ,cabal-doctest)
5172 ("ghc-doctest" ,ghc-doctest)
5173 ("ghc-hunit" ,ghc-hunit)
5174 ("ghc-test-framework" ,ghc-test-framework)
5175 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
5176 ("ghc-test-framework-th" ,ghc-test-framework-th)
5177 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)
5178 ("ghc-quickcheck" ,ghc-quickcheck)))
5179 (home-page "https://github.com/ekmett/lens/")
5180 (synopsis "Lenses, Folds and Traversals")
5181 (description "This library provides @code{Control.Lens}. The combinators
5182 in @code{Control.Lens} provide a highly generic toolbox for composing families
5183 of getters, folds, isomorphisms, traversals, setters and lenses and their
5184 indexed variants.")
5185 (license license:bsd-3)))
5186
5187 (define-public ghc-cheapskate
5188 (package
5189 (name "ghc-cheapskate")
5190 (version "0.1.1")
5191 (source
5192 (origin
5193 (method url-fetch)
5194 (uri (string-append
5195 "https://hackage.haskell.org/package/cheapskate/cheapskate-"
5196 version
5197 ".tar.gz"))
5198 (sha256
5199 (base32
5200 "1hiqi7h76shjzs2zj0j8g6wnq2hbiq1hmfafdazr97fba2zl2432"))))
5201 (build-system haskell-build-system)
5202 (inputs
5203 `(("ghc-text" ,ghc-text)
5204 ("ghc-blaze-html" ,ghc-blaze-html)
5205 ("ghc-xss-sanitize" ,ghc-xss-sanitize)
5206 ("ghc-data-default" ,ghc-data-default)
5207 ("ghc-syb" ,ghc-syb)
5208 ("ghc-uniplate" ,ghc-uniplate)))
5209 (home-page "https://github.com/jgm/cheapskate")
5210 (synopsis "Experimental markdown processor")
5211 (description "Cheapskate is an experimental Markdown processor in pure
5212 Haskell. It aims to process Markdown efficiently and in the most forgiving
5213 possible way. It is designed to deal with any input, including garbage, with
5214 linear performance. Output is sanitized by default for protection against
5215 cross-site scripting (@dfn{XSS}) attacks.")
5216 (license license:bsd-3)))
5217
5218 (define-public ghc-bifunctors
5219 (package
5220 (name "ghc-bifunctors")
5221 (version "5.5.3")
5222 (source
5223 (origin
5224 (method url-fetch)
5225 (uri (string-append
5226 "https://hackage.haskell.org/package/bifunctors/bifunctors-"
5227 version
5228 ".tar.gz"))
5229 (sha256
5230 (base32
5231 "1jn9rxg643xnlhrknmjz88nblcpsr45xwjkwwnn5nxpasa7m4d6l"))))
5232 (build-system haskell-build-system)
5233 (inputs
5234 `(("ghc-base-orphans" ,ghc-base-orphans)
5235 ("ghc-comonad" ,ghc-comonad)
5236 ("ghc-th-abstraction" ,ghc-th-abstraction)
5237 ("ghc-transformers-compat" ,ghc-transformers-compat)
5238 ("ghc-tagged" ,ghc-tagged)
5239 ("ghc-semigroups" ,ghc-semigroups)))
5240 (native-inputs
5241 `(("ghc-hspec" ,ghc-hspec)
5242 ("hspec-discover" ,hspec-discover)
5243 ("ghc-quickcheck" ,ghc-quickcheck)))
5244 (home-page "https://github.com/ekmett/bifunctors/")
5245 (synopsis "Bifunctors for Haskell")
5246 (description "This package provides bifunctors for Haskell.")
5247 (license license:bsd-3)))
5248
5249 (define-public ghc-semigroupoids
5250 (package
5251 (name "ghc-semigroupoids")
5252 (version "5.2.2")
5253 (source
5254 (origin
5255 (method url-fetch)
5256 (uri (string-append
5257 "https://hackage.haskell.org/package/semigroupoids/semigroupoids-"
5258 version
5259 ".tar.gz"))
5260 (sha256
5261 (base32
5262 "17i96y4iqj8clcs090lf6k0ij3j16nj14vsfwz0mm9nd6i4gbpp4"))))
5263 (build-system haskell-build-system)
5264 (arguments
5265 `(#:cabal-revision
5266 ("4" "0pqfrxzypjq6z8lgdkzq4vhcyqkpk5326hny0r6snpc3gm78r4ij")))
5267 (inputs
5268 `(("ghc-base-orphans" ,ghc-base-orphans)
5269 ("ghc-transformers-compat" ,ghc-transformers-compat)
5270 ("ghc-bifunctors" ,ghc-bifunctors)
5271 ("ghc-comonad" ,ghc-comonad)
5272 ("ghc-contravariant" ,ghc-contravariant)
5273 ("ghc-distributive" ,ghc-distributive)
5274 ("ghc-hashable" ,ghc-hashable)
5275 ("ghc-semigroups" ,ghc-semigroups)
5276 ("ghc-tagged" ,ghc-tagged)
5277 ("ghc-unordered-containers" ,ghc-unordered-containers)))
5278 (native-inputs
5279 `(("cabal-doctest" ,cabal-doctest)
5280 ("ghc-doctest" ,ghc-doctest)))
5281 (home-page "https://github.com/ekmett/semigroupoids")
5282 (synopsis "Semigroupoids operations for Haskell")
5283 (description "This library provides a wide array of (semi)groupoids and
5284 operations for working with them. A @code{Semigroupoid} is a @code{Category}
5285 without the requirement of identity arrows for every object in the category.
5286 A @code{Category} is any @code{Semigroupoid} for which the Yoneda lemma holds.
5287 Finally, to work with these weaker structures it is beneficial to have
5288 containers that can provide stronger guarantees about their contents, so
5289 versions of @code{Traversable} and @code{Foldable} that can be folded with
5290 just a @code{Semigroup} are added.")
5291 (license license:bsd-3)))
5292
5293 (define-public ghc-contravariant
5294 (package
5295 (name "ghc-contravariant")
5296 (version "1.4.1")
5297 (source
5298 (origin
5299 (method url-fetch)
5300 (uri (string-append
5301 "https://hackage.haskell.org/package/contravariant/contravariant-"
5302 version
5303 ".tar.gz"))
5304 (sha256
5305 (base32
5306 "1vfhk8c5cxmmakx7rflap1ipkx5q0j5vnlrcz7yz6y53kxhksgf9"))))
5307 (build-system haskell-build-system)
5308 (inputs
5309 `(("ghc-void" ,ghc-void)
5310 ("ghc-transformers-compat" ,ghc-transformers-compat)
5311 ("ghc-statevar" ,ghc-statevar)
5312 ("ghc-semigroups" ,ghc-semigroups)))
5313 (home-page
5314 "https://github.com/ekmett/contravariant/")
5315 (synopsis "Contravariant functors")
5316 (description "Contravariant functors for Haskell.")
5317 (license license:bsd-3)))
5318
5319 (define-public ghc-semigroups
5320 (package
5321 (name "ghc-semigroups")
5322 (version "0.18.5")
5323 (source
5324 (origin
5325 (method url-fetch)
5326 (uri (string-append
5327 "https://hackage.haskell.org/package/semigroups/semigroups-"
5328 version
5329 ".tar.gz"))
5330 (sha256
5331 (base32
5332 "17g29h62g1k51ghhvzkw72zksjgi6vs6bfipkj81pqw1dsprcamb"))))
5333 (build-system haskell-build-system)
5334 (inputs
5335 `(("ghc-nats" ,ghc-nats)
5336 ("ghc-tagged" ,ghc-tagged)
5337 ("ghc-unordered-containers" ,ghc-unordered-containers)
5338 ("ghc-text" ,ghc-text)
5339 ("ghc-hashable" ,ghc-hashable)))
5340 (home-page "https://github.com/ekmett/semigroups/")
5341 (synopsis "Semigroup operations for Haskell")
5342 (description "This package provides semigroups for Haskell. In
5343 mathematics, a semigroup is an algebraic structure consisting of a set
5344 together with an associative binary operation. A semigroup generalizes a
5345 monoid in that there might not exist an identity element. It
5346 also (originally) generalized a group (a monoid with all inverses) to a type
5347 where every element did not have to have an inverse, thus the name
5348 semigroup.")
5349 (license license:bsd-3)))
5350
5351 (define-public ghc-semigroups-bootstrap
5352 (package
5353 (inherit ghc-semigroups)
5354 (name "ghc-semigroups-bootstrap")
5355 (inputs
5356 `(("ghc-nats" ,ghc-nats-bootstrap)
5357 ("ghc-tagged" ,ghc-tagged)
5358 ("ghc-unordered-containers" ,ghc-unordered-containers-bootstrap)
5359 ("ghc-text" ,ghc-text)
5360 ("ghc-hashable" ,ghc-hashable-bootstrap)))
5361 (properties '(hidden? #t))))
5362
5363 (define-public ghc-free
5364 (package
5365 (name "ghc-free")
5366 (version "5.0.2")
5367 (source
5368 (origin
5369 (method url-fetch)
5370 (uri (string-append
5371 "https://hackage.haskell.org/package/free/free-"
5372 version
5373 ".tar.gz"))
5374 (sha256
5375 (base32
5376 "15m3n9vhz7z3kzv1w3wlfa3x8jp4cbrkwmrcjr7jlx39iqffn1gg"))))
5377 (build-system haskell-build-system)
5378 (inputs
5379 `(("ghc-prelude-extras" ,ghc-prelude-extras)
5380 ("ghc-profunctors" ,ghc-profunctors)
5381 ("ghc-exceptions" ,ghc-exceptions)
5382 ("ghc-bifunctors" ,ghc-bifunctors)
5383 ("ghc-comonad" ,ghc-comonad)
5384 ("ghc-distributive" ,ghc-distributive)
5385 ("ghc-semigroupoids" ,ghc-semigroupoids)
5386 ("ghc-semigroups" ,ghc-semigroups)
5387 ("ghc-transformers-base" ,ghc-transformers-base)
5388 ("ghc-transformers-compat" ,ghc-transformers-compat)))
5389 (home-page "https://github.com/ekmett/free/")
5390 (synopsis "Unrestricted monads for Haskell")
5391 (description "This library provides free monads, which are useful for many
5392 tree-like structures and domain specific languages. If @code{f} is a
5393 @code{Functor} then the free @code{Monad} on @code{f} is the type of trees
5394 whose nodes are labeled with the constructors of @code{f}. The word \"free\"
5395 is used in the sense of \"unrestricted\" rather than \"zero-cost\": @code{Free
5396 f} makes no constraining assumptions beyond those given by @code{f} and the
5397 definition of @code{Monad}.")
5398 (license license:bsd-3)))
5399
5400 (define-public ghc-adjunctions
5401 (package
5402 (name "ghc-adjunctions")
5403 (version "4.4")
5404 (source
5405 (origin
5406 (method url-fetch)
5407 (uri (string-append
5408 "https://hackage.haskell.org/package/adjunctions/adjunctions-"
5409 version
5410 ".tar.gz"))
5411 (sha256
5412 (base32
5413 "1sbal7cbhm12crfnfhkk322jnzgx7lhw3jzq0p463bipagsjwz2h"))))
5414 (build-system haskell-build-system)
5415 (inputs
5416 `(("ghc-profunctors" ,ghc-profunctors)
5417 ("ghc-comonad" ,ghc-comonad)
5418 ("ghc-contravariant" ,ghc-contravariant)
5419 ("ghc-distributive" ,ghc-distributive)
5420 ("ghc-free" ,ghc-free)
5421 ("ghc-tagged" ,ghc-tagged)
5422 ("ghc-semigroupoids" ,ghc-semigroupoids)
5423 ("ghc-semigroups" ,ghc-semigroups)
5424 ("ghc-transformers-compat" ,ghc-transformers-compat)
5425 ("ghc-void" ,ghc-void)))
5426 (native-inputs
5427 `(("ghc-generic-deriving" ,ghc-generic-deriving)
5428 ("ghc-hspec" ,ghc-hspec)
5429 ("hspec-discover" ,hspec-discover)))
5430 (home-page "https://github.com/ekmett/adjunctions/")
5431 (synopsis "Adjunctions and representable functors")
5432 (description "This library provides adjunctions and representable functors
5433 for Haskell.")
5434 (license license:bsd-3)))
5435
5436 (define-public ghc-equivalence
5437 (package
5438 (name "ghc-equivalence")
5439 (version "0.3.2")
5440 (source
5441 (origin
5442 (method url-fetch)
5443 (uri (string-append "https://hackage.haskell.org/package/equivalence"
5444 "/equivalence-" version ".tar.gz"))
5445 (sha256
5446 (base32 "0a85bdyyvjqs5z4kfhhf758210k9gi9dv42ik66a3jl0z7aix8kx"))))
5447 (build-system haskell-build-system)
5448 (inputs
5449 `(("ghc-stmonadtrans" ,ghc-stmonadtrans)
5450 ("ghc-transformers-compat" ,ghc-transformers-compat)
5451 ("ghc-quickcheck" ,ghc-quickcheck)
5452 ("ghc-test-framework" ,ghc-test-framework)
5453 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
5454 (home-page "https://github.com/pa-ba/equivalence")
5455 (synopsis "Maintaining an equivalence relation implemented as union-find")
5456 (description
5457 "This is an implementation of Tarjan's Union-Find algorithm (Robert E.@:
5458 Tarjan. \"Efficiency of a Good But Not Linear Set Union Algorithm\",JACM
5459 22(2), 1975) in order to maintain an equivalence relation. This
5460 implementation is a port of the @code{union-find} package using the @code{ST}
5461 monad transformer (instead of the IO monad).")
5462 (license license:bsd-3)))
5463
5464 (define-public ghc-fast-logger
5465 (package
5466 (name "ghc-fast-logger")
5467 (version "2.4.11")
5468 (source
5469 (origin
5470 (method url-fetch)
5471 (uri (string-append
5472 "https://hackage.haskell.org/package/fast-logger/fast-logger-"
5473 version
5474 ".tar.gz"))
5475 (sha256
5476 (base32
5477 "1ad2vq4nifdxshqk9yrmghqizhkgybfz134kpr6padglb2mxxrdv"))))
5478 (build-system haskell-build-system)
5479 (inputs
5480 `(("ghc-auto-update" ,ghc-auto-update)
5481 ("ghc-easy-file" ,ghc-easy-file)
5482 ("ghc-text" ,ghc-text)
5483 ("ghc-unix-time" ,ghc-unix-time)))
5484 (native-inputs
5485 `(("hspec-discover" ,hspec-discover)
5486 ("ghc-hspec" ,ghc-hspec)))
5487 (home-page "https://hackage.haskell.org/package/fast-logger")
5488 (synopsis "Fast logging system")
5489 (description "This library provides a fast logging system for Haskell.")
5490 (license license:bsd-3)))
5491
5492 (define-public ghc-doctest
5493 (package
5494 (name "ghc-doctest")
5495 (version "0.16.0")
5496 (source
5497 (origin
5498 (method url-fetch)
5499 (uri (string-append
5500 "https://hackage.haskell.org/package/doctest/doctest-"
5501 version
5502 ".tar.gz"))
5503 (sha256
5504 (base32
5505 "0hkccch65s3kp0b36h7bqhilnpi4bx8kngncm7ma9vbd3dwacjdv"))))
5506 (build-system haskell-build-system)
5507 (arguments `(#:tests? #f)) ; FIXME: missing test framework
5508 (inputs
5509 `(("ghc-syb" ,ghc-syb)
5510 ("ghc-paths" ,ghc-paths)
5511 ("ghc-base-compat" ,ghc-base-compat)
5512 ("ghc-code-page" ,ghc-code-page)
5513 ("ghc-hunit" ,ghc-hunit)
5514 ("ghc-hspec" ,ghc-hspec)
5515 ("ghc-quickcheck" ,ghc-quickcheck)
5516 ("ghc-stringbuilder" ,ghc-stringbuilder)
5517 ("ghc-silently" ,ghc-silently)
5518 ("ghc-setenv" ,ghc-setenv)))
5519 (home-page
5520 "https://github.com/sol/doctest#readme")
5521 (synopsis "Test interactive Haskell examples")
5522 (description "The doctest program checks examples in source code comments.
5523 It is modeled after doctest for Python, see
5524 @uref{https://docs.python.org/library/doctest.html, the Doctest website}.")
5525 (license license:expat)))
5526
5527 (define-public ghc-lifted-base
5528 (package
5529 (name "ghc-lifted-base")
5530 (version "0.2.3.12")
5531 (source
5532 (origin
5533 (method url-fetch)
5534 (uri (string-append
5535 "https://hackage.haskell.org/package/lifted-base/lifted-base-"
5536 version
5537 ".tar.gz"))
5538 (sha256
5539 (base32
5540 "1i8p8d3rkdh21bhgjjh32vd7qqjr7jq7p59qds0aw2kmargsjd61"))))
5541 (build-system haskell-build-system)
5542 (arguments `(#:tests? #f)) ; FIXME: Missing testing libraries.
5543 (inputs
5544 `(("ghc-transformers-base" ,ghc-transformers-base)
5545 ("ghc-monad-control" ,ghc-monad-control)
5546 ("ghc-transformers-compat" ,ghc-transformers-compat)
5547 ("ghc-hunit" ,ghc-hunit)))
5548 (home-page "https://github.com/basvandijk/lifted-base")
5549 (synopsis "Lifted IO operations from the base library")
5550 (description "Lifted-base exports IO operations from the @code{base}
5551 library lifted to any instance of @code{MonadBase} or @code{MonadBaseControl}.
5552 Note that not all modules from @code{base} are converted yet. The package
5553 includes a copy of the @code{monad-peel} test suite written by Anders
5554 Kaseorg.")
5555 (license license:bsd-3)))
5556
5557 (define-public ghc-word8
5558 (package
5559 (name "ghc-word8")
5560 (version "0.1.3")
5561 (source
5562 (origin
5563 (method url-fetch)
5564 (uri (string-append
5565 "https://hackage.haskell.org/package/word8/word8-"
5566 version
5567 ".tar.gz"))
5568 (sha256
5569 (base32
5570 "12jx7f13d2h1djq4fh4dyrab61sm49mj1w61j3rzp2vjfm696c16"))))
5571 (build-system haskell-build-system)
5572 (native-inputs
5573 `(("ghc-hspec" ,ghc-hspec)
5574 ("hspec-discover" ,hspec-discover)))
5575 (home-page "https://hackage.haskell.org/package/word8")
5576 (synopsis "Word8 library for Haskell")
5577 (description "Word8 library to be used with @code{Data.ByteString}.")
5578 (license license:bsd-3)))
5579
5580 (define-public ghc-stringsearch
5581 (package
5582 (name "ghc-stringsearch")
5583 (version "0.3.6.6")
5584 (source
5585 (origin
5586 (method url-fetch)
5587 (uri (string-append
5588 "https://hackage.haskell.org/package/stringsearch/stringsearch-"
5589 version
5590 ".tar.gz"))
5591 (sha256
5592 (base32
5593 "0jpy9xjcjdbpi3wk6mg7xwd7wfi2mma70p97v1ij5i8bj9qijpr9"))))
5594 (build-system haskell-build-system)
5595 (home-page "https://bitbucket.org/dafis/stringsearch")
5596 (synopsis "Fast searching, splitting and replacing of ByteStrings")
5597 (description "This package provides several functions to quickly search
5598 for substrings in strict or lazy @code{ByteStrings}. It also provides
5599 functions for breaking or splitting on substrings and replacing all
5600 occurrences of a substring (the first in case of overlaps) with another.")
5601 (license license:bsd-3)))
5602
5603 (define-public ghc-integer-logarithms
5604 (package
5605 (name "ghc-integer-logarithms")
5606 (version "1.0.2.1")
5607 (source
5608 (origin
5609 (method url-fetch)
5610 (uri (string-append "https://hackage.haskell.org/package/"
5611 "integer-logarithms/integer-logarithms-"
5612 version ".tar.gz"))
5613 (sha256
5614 (base32
5615 "1wj8kgjg5bn2yrs4zh9qfjv85cx6w998j9pi39yrbv305944mb9j"))))
5616 (build-system haskell-build-system)
5617 (arguments
5618 `(#:phases
5619 (modify-phases %standard-phases
5620 (add-before 'configure 'update-constraints
5621 (lambda _
5622 (substitute* "integer-logarithms.cabal"
5623 (("tasty >= 0\\.10 && < 1\\.1")
5624 "tasty >= 0.10 && < 1.2")))))))
5625 (native-inputs
5626 `(("ghc-quickcheck" ,ghc-quickcheck)
5627 ("ghc-smallcheck" ,ghc-smallcheck)
5628 ("ghc-tasty" ,ghc-tasty)
5629 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
5630 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
5631 ("ghc-tasty-smallcheck" ,ghc-tasty-smallcheck)))
5632 (home-page "https://github.com/Bodigrim/integer-logarithms")
5633 (synopsis "Integer logarithms")
5634 (description
5635 "This package provides the following modules:
5636 @code{Math.NumberTheory.Logarithms} and
5637 @code{Math.NumberTheory.Powers.Integer} from the @code{arithmoi} package,
5638 @code{GHC.Integer.Logarithms.Compat} and
5639 @code{Math.NumberTheory.Power.Natural}, as well as some additional functions
5640 in migrated modules.")
5641 (license license:expat)))
5642
5643 (define-public ghc-integer-logarithms-bootstrap
5644 (package
5645 (inherit ghc-integer-logarithms)
5646 (name "ghc-integer-logarithms-bootstrap")
5647 (arguments `(#:tests? #f))
5648 (native-inputs '())
5649 (properties '(hidden? #t))))
5650
5651 (define-public ghc-scientific
5652 (package
5653 (name "ghc-scientific")
5654 (version "0.3.6.2")
5655 (source
5656 (origin
5657 (method url-fetch)
5658 (uri (string-append
5659 "https://hackage.haskell.org/package/scientific/scientific-"
5660 version
5661 ".tar.gz"))
5662 (sha256
5663 (base32
5664 "03ql2f0ac8bsl524idy9xxa3kxisb2sj3avflzw580j5hzy0m397"))))
5665 (build-system haskell-build-system)
5666 (inputs
5667 `(("ghc-integer-logarithms" ,ghc-integer-logarithms)
5668 ("ghc-text" ,ghc-text)
5669 ("ghc-hashable" ,ghc-hashable)
5670 ("ghc-primitive" ,ghc-primitive)))
5671 (native-inputs
5672 `(("ghc-tasty" ,ghc-tasty)
5673 ("ghc-tasty-ant-xml" ,ghc-tasty-ant-xml)
5674 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
5675 ("ghc-tasty-smallcheck" ,ghc-tasty-smallcheck)
5676 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
5677 ("ghc-smallcheck" ,ghc-smallcheck)
5678 ("ghc-quickcheck" ,ghc-quickcheck)))
5679 (home-page "https://github.com/basvandijk/scientific")
5680 (synopsis "Numbers represented using scientific notation")
5681 (description "This package provides @code{Data.Scientific}, which provides
5682 the number type @code{Scientific}. Scientific numbers are arbitrary precision
5683 and space efficient. They are represented using
5684 @uref{https://en.wikipedia.org/wiki/Scientific_notation, scientific
5685 notation}.")
5686 (license license:bsd-3)))
5687
5688 (define-public ghc-scientific-bootstrap
5689 (package
5690 (inherit ghc-scientific)
5691 (name "ghc-scientific-bootstrap")
5692 (arguments `(#:tests? #f))
5693 (inputs
5694 `(("ghc-integer-logarithms" ,ghc-integer-logarithms-bootstrap)
5695 ("ghc-text" ,ghc-text)
5696 ("ghc-hashable" ,ghc-hashable)
5697 ("ghc-primitive" ,ghc-primitive)))
5698 (native-inputs '())
5699 (properties '(hidden? #t))))
5700
5701 (define-public ghc-boxes
5702 (package
5703 (name "ghc-boxes")
5704 (version "0.1.5")
5705 (source
5706 (origin
5707 (method url-fetch)
5708 (uri (string-append "https://hackage.haskell.org/package/boxes/boxes-"
5709 version ".tar.gz"))
5710 (sha256
5711 (base32 "1hsnmw95i58d4bkpxby3ddsj1cawypw4mdyb18m393s5i8p7iq9q"))))
5712 (build-system haskell-build-system)
5713 (inputs
5714 `(("ghc-split" ,ghc-split)
5715 ("ghc-quickcheck" ,ghc-quickcheck)))
5716 (home-page "https://hackage.haskell.org/package/boxes")
5717 (synopsis "2D text pretty-printing library")
5718 (description
5719 "Boxes is a pretty-printing library for laying out text in two dimensions,
5720 using a simple box model.")
5721 (license license:bsd-3)))
5722
5723 (define-public ghc-deepseq-generics
5724 (package
5725 (name "ghc-deepseq-generics")
5726 (version "0.2.0.0")
5727 (source (origin
5728 (method url-fetch)
5729 (uri (string-append "https://hackage.haskell.org/package/"
5730 "deepseq-generics/deepseq-generics-"
5731 version ".tar.gz"))
5732 (sha256
5733 (base32
5734 "17bwghc15mc9pchfd1w46jh2p3wzc86aj6a537wqwxn08rayzcxh"))))
5735 (build-system haskell-build-system)
5736 (arguments
5737 `(#:cabal-revision
5738 ("2" "1pnidf8w8x0w5fsqgv8hhrw07slmhxwy5x4fikgk0bd6k76aqicb")))
5739 (native-inputs
5740 `(("ghc-hunit" ,ghc-hunit)
5741 ("ghc-test-framework" ,ghc-test-framework)
5742 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)))
5743 (home-page "https://github.com/hvr/deepseq-generics")
5744 (synopsis "Generic RNF implementation")
5745 (description
5746 "This package provides a @code{GHC.Generics}-based
5747 @code{Control.DeepSeq.Generics.genericRnf} function which can be used for
5748 providing an @code{rnf} implementation.")
5749 (license license:bsd-3)))
5750
5751 (define-public ghc-string-qq
5752 (package
5753 (name "ghc-string-qq")
5754 (version "0.0.2")
5755 (source
5756 (origin
5757 (method url-fetch)
5758 (uri (string-append
5759 "https://hackage.haskell.org/package/string-qq/string-qq-"
5760 version
5761 ".tar.gz"))
5762 (sha256
5763 (base32
5764 "0662m3i5xrdrr95w829bszkhp88mj9iy1zya54vk2sl5hz9wlmwp"))))
5765 (build-system haskell-build-system)
5766 (home-page "http://hackage.haskell.org/package/string-qq")
5767 (synopsis
5768 "QuasiQuoter for non-interpolated strings, texts and bytestrings.")
5769 (description
5770 "This package provides a quasiquoter for non-interpolated strings, texts
5771 and bytestrings.")
5772 (license license:public-domain)))
5773
5774 (define-public ghc-pandoc-types
5775 (package
5776 (name "ghc-pandoc-types")
5777 (version "1.17.5.1")
5778 (source (origin
5779 (method url-fetch)
5780 (uri (string-append "https://hackage.haskell.org/package/"
5781 "pandoc-types/pandoc-types-"
5782 version ".tar.gz"))
5783 (sha256
5784 (base32
5785 "1q6v2bynij724fv347mhqxdscwifzrx5jb9mq80608qf638fn717"))))
5786 (build-system haskell-build-system)
5787 (inputs
5788 `(("ghc-syb" ,ghc-syb)
5789 ("ghc-aeson" ,ghc-aeson)
5790 ("ghc-string-qq" ,ghc-string-qq)))
5791 (native-inputs
5792 `(("ghc-quickcheck" ,ghc-quickcheck)
5793 ("ghc-test-framework" ,ghc-test-framework)
5794 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
5795 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)
5796 ("ghc-hunit" ,ghc-hunit)))
5797 (home-page "http://johnmacfarlane.net/pandoc")
5798 (synopsis "Types for representing a structured document")
5799 (description
5800 "This module defines the @code{Pandoc} data structure, which is used by
5801 pandoc to represent structured documents. It also provides functions for
5802 building up, manipulating and serialising @code{Pandoc} structures.")
5803 (license license:bsd-3)))
5804
5805 (define-public ghc-texmath
5806 (package
5807 (name "ghc-texmath")
5808 (version "0.11.0.1")
5809 (source (origin
5810 (method url-fetch)
5811 (uri (string-append "https://hackage.haskell.org/package/"
5812 "texmath/texmath-" version ".tar.gz"))
5813 (sha256
5814 (base32
5815 "11dc09hfnyfsz20ch2c867w0zdgjkzq41506lm61i3dk87ngdisf"))))
5816 (build-system haskell-build-system)
5817 (inputs
5818 `(("ghc-syb" ,ghc-syb)
5819 ("ghc-network-uri" ,ghc-network-uri)
5820 ("ghc-split" ,ghc-split)
5821 ("ghc-temporary" ,ghc-temporary)
5822 ("ghc-utf8-string" ,ghc-utf8-string)
5823 ("ghc-xml" ,ghc-xml)
5824 ("ghc-parsec" ,ghc-parsec)
5825 ("ghc-pandoc-types" ,ghc-pandoc-types)))
5826 (home-page "https://github.com/jgm/texmath")
5827 (synopsis "Conversion between formats used to represent mathematics")
5828 (description
5829 "The texmath library provides functions to read and write TeX math,
5830 presentation MathML, and OMML (Office Math Markup Language, used in Microsoft
5831 Office). Support is also included for converting math formats to pandoc's
5832 native format (allowing conversion, via pandoc, to a variety of different
5833 markup formats). The TeX reader supports basic LaTeX and AMS extensions, and
5834 it can parse and apply LaTeX macros.")
5835 (license license:gpl2+)))
5836
5837 (define-public ghc-regex-pcre-builtin
5838 (package
5839 (name "ghc-regex-pcre-builtin")
5840 (version "0.94.4.8.8.35")
5841 (source (origin
5842 (method url-fetch)
5843 (uri (string-append "https://hackage.haskell.org/package/"
5844 "regex-pcre-builtin/regex-pcre-builtin-"
5845 version ".tar.gz"))
5846 (sha256
5847 (base32
5848 "0y7as9wqlkykpipka2cfdhmcnin345q01pp0wsva8fwmvsavdl8b"))))
5849 (build-system haskell-build-system)
5850 (inputs
5851 `(("ghc-regex-base" ,ghc-regex-base)))
5852 (home-page "https://hackage.haskell.org/package/regex-pcre")
5853 (synopsis "Enhancement of the builtin Text.Regex library")
5854 (description
5855 "This package is an enhancement of the @code{Text.Regex} library,
5856 providing the PCRE backend to accompany regex-base, with bundled code from
5857 @url{https://www.pcre.org}.")
5858 (license license:bsd-3)))
5859
5860 (define-public ghc-diff
5861 (package
5862 (name "ghc-diff")
5863 (version "0.3.4")
5864 (source (origin
5865 (method url-fetch)
5866 (uri (string-append "https://hackage.haskell.org/package/"
5867 "Diff/Diff-" version ".tar.gz"))
5868 (sha256
5869 (base32
5870 "0bqcdvhxx8dmqc3793m6axg813wv9ldz2j37f1wygbbrbbndmdvp"))))
5871 (build-system haskell-build-system)
5872 (native-inputs
5873 `(("ghc-quickcheck" ,ghc-quickcheck)
5874 ("ghc-test-framework" ,ghc-test-framework)
5875 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
5876 (home-page "https://hub.darcs.net/sterlingclover/Diff")
5877 (synopsis "O(ND) diff algorithm in Haskell")
5878 (description
5879 "This package provides an implementation of the standard diff algorithm,
5880 and utilities for pretty printing.")
5881 (license license:bsd-3)))
5882
5883 (define-public ghc-highlighting-kate
5884 (package
5885 (name "ghc-highlighting-kate")
5886 (version "0.6.4")
5887 (source (origin
5888 (method url-fetch)
5889 (uri (string-append "https://hackage.haskell.org/package/"
5890 "highlighting-kate/highlighting-kate-"
5891 version ".tar.gz"))
5892 (sha256
5893 (base32
5894 "1bqv00gfmrsf0jjr4qf3lhshvfkyzmhbi3pjb6mafbnsyn2k7f6q"))))
5895 (build-system haskell-build-system)
5896 (inputs
5897 `(("ghc-diff" ,ghc-diff)
5898 ("ghc-regex-pcre-builtin" ,ghc-regex-pcre-builtin)))
5899 (native-inputs
5900 `(("ghc-parsec" ,ghc-parsec)
5901 ("ghc-blaze-html" ,ghc-blaze-html)
5902 ("ghc-utf8-string" ,ghc-utf8-string)))
5903 (home-page "https://github.com/jgm/highlighting-kate")
5904 (synopsis "Syntax highlighting library")
5905 (description
5906 "Highlighting-kate is a syntax highlighting library with support for
5907 nearly one hundred languages. The syntax parsers are automatically generated
5908 from @uref{https://kate-editor.org/, Kate syntax descriptions}, so any syntax
5909 supported by Kate can be added. An (optional) command-line program is
5910 provided, along with a utility for generating new parsers from Kate XML syntax
5911 descriptions.")
5912 (license license:gpl2+)))
5913
5914 (define-public ghc-cmark
5915 (package
5916 (name "ghc-cmark")
5917 (version "0.5.6")
5918 (source (origin
5919 (method url-fetch)
5920 ;; XXX As of version 0.5.6, this package bundles libcmark 0.28.0.
5921 ;; See cbits/cmark_version.h.
5922 (uri (string-append "https://hackage.haskell.org/package/"
5923 "cmark/cmark-" version ".tar.gz"))
5924 (sha256
5925 (base32
5926 "1c1j3a8b9qx5zk9myqm3gap8ymz7fipwrdmyfsq9wkkdr9x4np45"))))
5927 (build-system haskell-build-system)
5928 (inputs
5929 `(("ghc-text" ,ghc-text)))
5930 (native-inputs
5931 `(("ghc-hunit" ,ghc-hunit)))
5932 (home-page "https://github.com/jgm/commonmark-hs")
5933 (synopsis "Fast, accurate CommonMark (Markdown) parser and renderer")
5934 (description
5935 "This package provides Haskell bindings for
5936 @uref{https://github.com/jgm/cmark, libcmark}, the reference parser for
5937 CommonMark, a fully specified variant of Markdown. It includes bundled libcmark
5938 sources, and does not require prior installation of the C library.")
5939 (license license:bsd-3)))
5940
5941 (define-public ghc-cmark-gfm
5942 (package
5943 (name "ghc-cmark-gfm")
5944 (version "0.1.5")
5945 (source
5946 (origin
5947 (method url-fetch)
5948 (uri (string-append "https://hackage.haskell.org/package/"
5949 "cmark-gfm/cmark-gfm-"
5950 version ".tar.gz"))
5951 (sha256
5952 (base32
5953 "13b0mqks5c1q989slgsa3ixr5vvkfyic4ynzgv00kgl5qrs7hqk7"))))
5954 (build-system haskell-build-system)
5955 (inputs
5956 `(("ghc-text" ,ghc-text)))
5957 (native-inputs
5958 `(("ghc-hunit" ,ghc-hunit)))
5959 (home-page "https://github.com/kivikakk/cmark-gfm-hs")
5960 (synopsis
5961 "Fast, accurate GitHub Flavored Markdown parser and renderer")
5962 (description
5963 "This package provides Haskell bindings for libcmark-gfm, the reference
5964 parser for GitHub Flavored Markdown, a fully specified variant of Markdown.
5965 It includes sources for libcmark-gfm and does not require prior installation
5966 of the C library.")
5967 (license license:bsd-3)))
5968
5969 (define-public ghc-executable-path
5970 (package
5971 (name "ghc-executable-path")
5972 (version "0.0.3.1")
5973 (source (origin
5974 (method url-fetch)
5975 (uri (string-append "https://hackage.haskell.org/package/"
5976 "executable-path/executable-path-"
5977 version ".tar.gz"))
5978 (sha256
5979 (base32
5980 "0vxwmnsvx13cawcyhbyljkds0l1vr996ijldycx7nj0asjv45iww"))))
5981 (build-system haskell-build-system)
5982 (home-page "https://hackage.haskell.org/package/executable-path")
5983 (synopsis "Find out the full path of the executable")
5984 (description
5985 "The documentation of @code{System.Environment.getProgName} says that
5986 \"However, this is hard-to-impossible to implement on some non-Unix OSes, so
5987 instead, for maximum portability, we just return the leafname of the program
5988 as invoked.\" This library tries to provide the missing path.")
5989 (license license:public-domain)))
5990
5991 (define-public ghc-enclosed-exceptions
5992 (package
5993 (name "ghc-enclosed-exceptions")
5994 (version "1.0.3")
5995 (source (origin
5996 (method url-fetch)
5997 (uri (string-append "https://hackage.haskell.org/package/"
5998 "enclosed-exceptions/enclosed-exceptions-"
5999 version ".tar.gz"))
6000 (sha256
6001 (base32
6002 "1fghjj7nkiddrf03ks8brjpr5x25yi9fs7xg6adbi4mc2gqr6vdg"))))
6003 (build-system haskell-build-system)
6004 ;; FIXME: one of the tests blocks forever:
6005 ;; "thread blocked indefinitely in an MVar operation"
6006 (arguments '(#:tests? #f))
6007 (inputs
6008 `(("ghc-lifted-base" ,ghc-lifted-base)
6009 ("ghc-monad-control" ,ghc-monad-control)
6010 ("ghc-async" ,ghc-async)
6011 ("ghc-transformers-base" ,ghc-transformers-base)))
6012 (native-inputs
6013 `(("ghc-hspec" ,ghc-hspec)
6014 ("ghc-quickcheck" ,ghc-quickcheck)))
6015 (home-page "https://github.com/jcristovao/enclosed-exceptions")
6016 (synopsis "Catch all exceptions from within an enclosed computation")
6017 (description
6018 "This library implements a technique to catch all exceptions raised
6019 within an enclosed computation, while remaining responsive to (external)
6020 asynchronous exceptions.")
6021 (license license:expat)))
6022
6023 (define-public ghc-packedstring
6024 (package
6025 (name "ghc-packedstring")
6026 (version "0.1.0.1")
6027 (source (origin
6028 (method url-fetch)
6029 (uri (string-append "https://hackage.haskell.org/package/"
6030 "packedstring/packedstring-"
6031 version ".tar.gz"))
6032 (sha256
6033 (base32
6034 "1x78pzzdlnpcmh9p37rlf8m5cxf3yqm2alf3whl4zpr9w25r0qj8"))))
6035 (build-system haskell-build-system)
6036 (arguments
6037 `(#:phases
6038 (modify-phases %standard-phases
6039 (add-after 'unpack 'enable-extension
6040 (lambda _
6041 ;; This package won't compile without the StandaloneDeriving
6042 ;; extension.
6043 (substitute* "packedstring.cabal"
6044 (("CPP") "CPP, StandaloneDeriving"))
6045 #t)))))
6046 (home-page "https://hackage.haskell.org/package/packedstring")
6047 (synopsis "Library for packed strings")
6048 (description
6049 "This deprecated library provides an implementation of packed strings.")
6050 (license license:bsd-3)))
6051
6052 (define-public ghc-th-abstraction
6053 (package
6054 (name "ghc-th-abstraction")
6055 (version "0.2.8.0")
6056 (source
6057 (origin
6058 (method url-fetch)
6059 (uri (string-append "https://hackage.haskell.org/package/"
6060 "th-abstraction/th-abstraction-"
6061 version ".tar.gz"))
6062 (sha256
6063 (base32
6064 "0n17w4q2ykd0nica4sck2wng6md56rfad8x0icl0l8vnzb9nn4ya"))))
6065 (build-system haskell-build-system)
6066 (home-page "https://github.com/glguy/th-abstraction")
6067 (synopsis "Nicer interface for reified information about data types")
6068 (description
6069 "This package normalizes variations in the interface for inspecting
6070 datatype information via Template Haskell so that packages and support a
6071 single, easier to use informational datatype while supporting many versions of
6072 Template Haskell.")
6073 (license license:isc)))
6074
6075 (define-public ghc-th-lift
6076 (package
6077 (name "ghc-th-lift")
6078 (version "0.7.11")
6079 (source (origin
6080 (method url-fetch)
6081 (uri (string-append "https://hackage.haskell.org/package/"
6082 "th-lift/th-lift-" version ".tar.gz"))
6083 (sha256
6084 (base32
6085 "131360zxb0hazbqwbkk6ab2p77jkxr79bwwm618mrwrwkm3x2g6m"))))
6086 (build-system haskell-build-system)
6087 (inputs
6088 `(("ghc-th-abstraction" ,ghc-th-abstraction)))
6089 (home-page "https://github.com/mboes/th-lift")
6090 (synopsis "Derive Template Haskell's Lift class for datatypes")
6091 (description
6092 "This is a Haskell library to derive Template Haskell's Lift class for
6093 datatypes.")
6094 (license license:bsd-3)))
6095
6096 (define-public ghc-th-lift-instances
6097 (package
6098 (name "ghc-th-lift-instances")
6099 (version "0.1.11")
6100 (source
6101 (origin
6102 (method url-fetch)
6103 (uri (string-append "https://hackage.haskell.org/package/"
6104 "th-lift-instances/th-lift-instances-"
6105 version ".tar.gz"))
6106 (sha256
6107 (base32
6108 "1f56cp6ckcalld5jchv0kxpjkwcsixd7smd0g7r8cg67ppx6m90x"))))
6109 (build-system haskell-build-system)
6110 (inputs
6111 `(("ghc-th-lift" ,ghc-th-lift)
6112 ("ghc-vector" ,ghc-vector)
6113 ("ghc-text" ,ghc-text)
6114 ("ghc-quickcheck" ,ghc-quickcheck)))
6115 (home-page "https://github.com/bennofs/th-lift-instances/")
6116 (synopsis "Lift instances for template-haskell for common data types.")
6117 (description "Most data types in the Haskell platform do not have Lift
6118 instances. This package provides orphan instances for @code{containers},
6119 @code{text}, @code{bytestring} and @code{vector}.")
6120 (license license:bsd-3)))
6121
6122 (define-public ghc-th-expand-syns
6123 (package
6124 (name "ghc-th-expand-syns")
6125 (version "0.4.4.0")
6126 (source (origin
6127 (method url-fetch)
6128 (uri (string-append "https://hackage.haskell.org/package/"
6129 "th-expand-syns/th-expand-syns-"
6130 version ".tar.gz"))
6131 (sha256
6132 (base32
6133 "01prlvh3py5hq5ccjidfyp9ixq2zd88dkbsidyjrpkja6v8m43yc"))))
6134 (build-system haskell-build-system)
6135 (inputs
6136 `(("ghc-syb" ,ghc-syb)))
6137 (home-page "https://hackage.haskell.org/package/th-expand-syns")
6138 (synopsis "Expands type synonyms in Template Haskell ASTs")
6139 (description
6140 "This package enables users to expand type synonyms in Template Haskell
6141 @dfn{abstract syntax trees} (ASTs).")
6142 (license license:bsd-3)))
6143
6144 (define-public ghc-th-reify-many
6145 (package
6146 (name "ghc-th-reify-many")
6147 (version "0.1.8")
6148 (source (origin
6149 (method url-fetch)
6150 (uri (string-append "https://hackage.haskell.org/package/"
6151 "th-reify-many/th-reify-many-"
6152 version ".tar.gz"))
6153 (sha256
6154 (base32
6155 "0hzy6hvhvcd6i60vx5cp2b7ggmnnjh9rx4h8bm8xw4grglcaxjnf"))))
6156 (build-system haskell-build-system)
6157 (inputs
6158 `(("ghc-safe" ,ghc-safe)
6159 ("ghc-th-expand-syns" ,ghc-th-expand-syns)))
6160 (home-page "https://github.com/mgsloan/th-reify-many")
6161 (synopsis "Recurseively reify template haskell datatype info")
6162 (description
6163 "th-reify-many provides functions for recursively reifying top level
6164 declarations. The main intended use case is for enumerating the names of
6165 datatypes reachable from an initial datatype, and passing these names to some
6166 function which generates instances.")
6167 (license license:bsd-3)))
6168
6169 (define-public ghc-th-orphans
6170 (package
6171 (name "ghc-th-orphans")
6172 (version "0.13.6")
6173 (source (origin
6174 (method url-fetch)
6175 (uri (string-append "https://hackage.haskell.org/package/"
6176 "th-orphans/th-orphans-" version ".tar.gz"))
6177 (sha256
6178 (base32
6179 "0sfl3pn9kq9da3ji3lsgzgzy82vz6yvsg80dmakc1jvk7awycibp"))))
6180 (build-system haskell-build-system)
6181 (inputs
6182 `(("ghc-th-lift" ,ghc-th-lift)
6183 ("ghc-th-lift-instances" ,ghc-th-lift-instances)
6184 ("ghc-th-reify-many" ,ghc-th-reify-many)
6185 ("ghc-generic-deriving" ,ghc-generic-deriving)))
6186 (native-inputs
6187 `(("ghc-hspec" ,ghc-hspec)))
6188 (home-page "https://hackage.haskell.org/package/th-orphans")
6189 (synopsis "Orphan instances for TH datatypes")
6190 (description
6191 "This package provides orphan instances for Template Haskell datatypes. In particular,
6192 instances for @code{Ord} and @code{Lift}, as well as a few missing @code{Show}
6193 and @code{Eq} instances. These instances used to live in the haskell-src-meta
6194 package, and that's where the version number started.")
6195 (license license:bsd-3)))
6196
6197 (define-public ghc-geniplate-mirror
6198 (package
6199 (name "ghc-geniplate-mirror")
6200 (version "0.7.6")
6201 (source
6202 (origin
6203 (method url-fetch)
6204 (uri (string-append "https://hackage.haskell.org/package"
6205 "/geniplate-mirror"
6206 "/geniplate-mirror-" version ".tar.gz"))
6207 (sha256
6208 (base32 "1y0m0bw5zpm1y1y6d9qmxj3swl8j8hlw1shxbr5awycf6k884ssb"))))
6209 (build-system haskell-build-system)
6210 (home-page "https://github.com/danr/geniplate")
6211 (synopsis "Use Template Haskell to generate Uniplate-like functions")
6212 (description
6213 "Use Template Haskell to generate Uniplate-like functions. This is a
6214 maintained mirror of the @uref{https://hackage.haskell.org/package/geniplate,
6215 geniplate} package, written by Lennart Augustsson.")
6216 (license license:bsd-3)))
6217
6218 (define-public ghc-gitrev
6219 (package
6220 (name "ghc-gitrev")
6221 (version "1.3.1")
6222 (source
6223 (origin
6224 (method url-fetch)
6225 (uri (string-append "https://hackage.haskell.org/package/gitrev/gitrev-"
6226 version ".tar.gz"))
6227 (sha256
6228 (base32 "0cl3lfm6k1h8fxp2vxa6ihfp4v8igkz9h35iwyq2frzm4kdn96d8"))))
6229 (build-system haskell-build-system)
6230 (inputs `(("ghc-base-compat" ,ghc-base-compat)))
6231 (home-page "https://github.com/acfoltzer/gitrev")
6232 (synopsis "Compile git revision info into Haskell projects")
6233 (description
6234 "This package provides some handy Template Haskell splices for including
6235 the current git hash and branch in the code of your project. This is useful
6236 for including in panic messages, @command{--version} output, or diagnostic
6237 info for more informative bug reports.")
6238 (license license:bsd-3)))
6239
6240 (define-public ghc-haskell-src-meta
6241 (package
6242 (name "ghc-haskell-src-meta")
6243 (version "0.8.0.3")
6244 (source (origin
6245 (method url-fetch)
6246 (uri (string-append "https://hackage.haskell.org/package/"
6247 "haskell-src-meta/haskell-src-meta-"
6248 version ".tar.gz"))
6249 (sha256
6250 (base32
6251 "08jq156zv4m0fjq6712n99c1jwxnpa6kj6sq8ch0r1l0a1ay6ww4"))))
6252 (build-system haskell-build-system)
6253 (inputs
6254 `(("ghc-haskell-src-exts" ,ghc-haskell-src-exts)
6255 ("ghc-syb" ,ghc-syb)
6256 ("ghc-th-orphans" ,ghc-th-orphans)))
6257 (native-inputs
6258 `(("ghc-hunit" ,ghc-hunit)
6259 ("ghc-test-framework" ,ghc-test-framework)
6260 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)))
6261 (home-page "https://hackage.haskell.org/package/haskell-src-meta")
6262 (synopsis "Parse source to template-haskell abstract syntax")
6263 (description
6264 "This package provides tools to parse Haskell sources to the
6265 template-haskell abstract syntax.")
6266 (license license:bsd-3)))
6267
6268 (define-public ghc-conduit
6269 (package
6270 (name "ghc-conduit")
6271 (version "1.3.0.3")
6272 (source (origin
6273 (method url-fetch)
6274 (uri (string-append "https://hackage.haskell.org/package/"
6275 "conduit/conduit-" version ".tar.gz"))
6276 (sha256
6277 (base32
6278 "1sangm0qqi9dzlq95746a3kl14k8b09592a423shxjf2a0b1yx5v"))))
6279 (build-system haskell-build-system)
6280 (inputs
6281 `(("ghc-exceptions" ,ghc-exceptions)
6282 ("ghc-lifted-base" ,ghc-lifted-base)
6283 ("ghc-mono-traversable" ,ghc-mono-traversable)
6284 ("ghc-mmorph" ,ghc-mmorph)
6285 ("ghc-resourcet" ,ghc-resourcet)
6286 ("ghc-silently" ,ghc-silently)
6287 ("ghc-transformers-base" ,ghc-transformers-base)
6288 ("ghc-unliftio" ,ghc-unliftio)
6289 ("ghc-unliftio-core" ,ghc-unliftio-core)
6290 ("ghc-vector" ,ghc-vector)
6291 ("ghc-void" ,ghc-void)))
6292 (native-inputs
6293 `(("ghc-quickcheck" ,ghc-quickcheck)
6294 ("ghc-hspec" ,ghc-hspec)
6295 ("ghc-safe" ,ghc-safe)
6296 ("ghc-split" ,ghc-split)))
6297 (home-page "https://github.com/snoyberg/conduit")
6298 (synopsis "Streaming data library ")
6299 (description
6300 "The conduit package is a solution to the streaming data problem,
6301 allowing for production, transformation, and consumption of streams of data
6302 in constant memory. It is an alternative to lazy I/O which guarantees
6303 deterministic resource handling, and fits in the same general solution
6304 space as enumerator/iteratee and pipes.")
6305 (license license:expat)))
6306
6307 (define-public ghc-logging-facade
6308 (package
6309 (name "ghc-logging-facade")
6310 (version "0.3.0")
6311 (source (origin
6312 (method url-fetch)
6313 (uri (string-append "https://hackage.haskell.org/package/"
6314 "logging-facade/logging-facade-"
6315 version ".tar.gz"))
6316 (sha256
6317 (base32
6318 "0d0lwxxgd16is9aw6v3ps4r9prv3dj8xscmm45fvzq3nicjiawcf"))))
6319 (build-system haskell-build-system)
6320 (native-inputs
6321 `(("ghc-hspec" ,ghc-hspec)
6322 ("hspec-discover" ,hspec-discover)))
6323 (home-page "https://hackage.haskell.org/package/logging-facade")
6324 (synopsis "Simple logging abstraction that allows multiple back-ends")
6325 (description
6326 "This package provides a simple logging abstraction that allows multiple
6327 back-ends.")
6328 (license license:expat)))
6329
6330 (define-public ghc-mockery
6331 (package
6332 (name "ghc-mockery")
6333 (version "0.3.5")
6334 (source (origin
6335 (method url-fetch)
6336 (uri (string-append "https://hackage.haskell.org/package/"
6337 "mockery/mockery-" version ".tar.gz"))
6338 (sha256
6339 (base32
6340 "09ypgm3z69gq8mj6y66ss58kbjnk15r8frwcwbqcfbfksfnfv8dp"))))
6341 (build-system haskell-build-system)
6342 (inputs
6343 `(("ghc-temporary" ,ghc-temporary)
6344 ("ghc-logging-facade" ,ghc-logging-facade)
6345 ("ghc-base-compat" ,ghc-base-compat)))
6346 (native-inputs
6347 `(("ghc-hspec" ,ghc-hspec)
6348 ("hspec-discover" ,hspec-discover)))
6349 (home-page "https://hackage.haskell.org/package/mockery")
6350 (synopsis "Support functions for automated testing")
6351 (description
6352 "The mockery package provides support functions for automated testing.")
6353 (license license:expat)))
6354
6355 (define-public ghc-yaml
6356 (package
6357 (name "ghc-yaml")
6358 (version "0.8.32")
6359 (source (origin
6360 (method url-fetch)
6361 (uri (string-append "https://hackage.haskell.org/package/"
6362 "yaml/yaml-" version ".tar.gz"))
6363 (sha256
6364 (base32
6365 "0cbsyh4ilvjzq1q7pxls43k6pdqxg1l85xzibcwpbvmlvrizh86w"))))
6366 (build-system haskell-build-system)
6367 (inputs
6368 `(("ghc-conduit" ,ghc-conduit)
6369 ("ghc-resourcet" ,ghc-resourcet)
6370 ("ghc-aeson" ,ghc-aeson)
6371 ("ghc-unordered-containers" ,ghc-unordered-containers)
6372 ("ghc-vector" ,ghc-vector)
6373 ("ghc-text" ,ghc-text)
6374 ("ghc-attoparsec" ,ghc-attoparsec)
6375 ("ghc-scientific" ,ghc-scientific)
6376 ("ghc-semigroups" ,ghc-semigroups)
6377 ("ghc-temporary" ,ghc-temporary)
6378 ("ghc-enclosed-exceptions" ,ghc-enclosed-exceptions)
6379 ("ghc-base-compat" ,ghc-base-compat)))
6380 (native-inputs
6381 `(("ghc-hspec" ,ghc-hspec)
6382 ("ghc-hunit" ,ghc-hunit)
6383 ("hspec-discover" ,hspec-discover)
6384 ("ghc-mockery" ,ghc-mockery)))
6385 (home-page "https://github.com/snoyberg/yaml/")
6386 (synopsis "Parsing and rendering YAML documents")
6387 (description
6388 "This package provides a library to parse and render YAML documents.")
6389 (license license:bsd-3)))
6390
6391 (define-public ghc-filemanip
6392 (package
6393 (name "ghc-filemanip")
6394 (version "0.3.6.3")
6395 (source (origin
6396 (method url-fetch)
6397 (uri (string-append "https://hackage.haskell.org/package/"
6398 "filemanip/filemanip-" version ".tar.gz"))
6399 (sha256
6400 (base32
6401 "0ilqr8jv41zxcj5qyicg29m8s30b9v70x6f9h2h2rw5ap8bxldl8"))))
6402 (build-system haskell-build-system)
6403 (inputs
6404 `(("ghc-unix-compat" ,ghc-unix-compat)))
6405 (home-page "https://github.com/bos/filemanip")
6406 (synopsis "File and directory manipulation for Haskell")
6407 (description
6408 "This package provides a Haskell library for working with files and
6409 directories. It includes code for pattern matching, finding files, modifying
6410 file contents, and more.")
6411 (license license:bsd-3)))
6412
6413 (define-public ghc-mmap
6414 (package
6415 (name "ghc-mmap")
6416 (version "0.5.9")
6417 (source (origin
6418 (method url-fetch)
6419 (uri (string-append "https://hackage.haskell.org/package/"
6420 "mmap/mmap-" version ".tar.gz"))
6421 (sha256
6422 (base32
6423 "1y5mk3yf4b8r6rzmlx1xqn4skaigrqnv08sqq0v7r3nbw42bpz2q"))))
6424 (build-system haskell-build-system)
6425 (home-page "https://hackage.haskell.org/package/mmap")
6426 (synopsis "Memory mapped files for Haskell")
6427 (description
6428 "This library provides a wrapper to @code{mmap}, allowing files or
6429 devices to be lazily loaded into memory as strict or lazy @code{ByteStrings},
6430 @code{ForeignPtrs} or plain @code{Ptrs}, using the virtual memory subsystem to
6431 do on-demand loading.")
6432 (license license:bsd-3)))
6433
6434 (define-public ghc-juicypixels
6435 (package
6436 (name "ghc-juicypixels")
6437 (version "3.2.9.5")
6438 (source (origin
6439 (method url-fetch)
6440 (uri (string-append "https://hackage.haskell.org/package/"
6441 "JuicyPixels/JuicyPixels-"
6442 version ".tar.gz"))
6443 (sha256
6444 (base32
6445 "0mf3ihr0xy2wc2wzb9a17g0n3p60x7pvm8akwpvhdy8klvs6r744"))))
6446 (build-system haskell-build-system)
6447 (inputs
6448 `(("ghc-zlib" ,ghc-zlib)
6449 ("ghc-vector" ,ghc-vector)
6450 ("ghc-primitive" ,ghc-primitive)
6451 ("ghc-mmap" ,ghc-mmap)))
6452 (home-page "https://github.com/Twinside/Juicy.Pixels")
6453 (synopsis "Picture loading and serialization library")
6454 (description
6455 "This library can load and store images in PNG, Bitmap, JPEG, Radiance,
6456 TIFF and GIF formats.")
6457 (license license:bsd-3)))
6458
6459 (define-public ghc-hslua
6460 (package
6461 (name "ghc-hslua")
6462 (version "0.9.5.2")
6463 (source (origin
6464 (method url-fetch)
6465 (uri (string-append "https://hackage.haskell.org/package/"
6466 "hslua/hslua-" version ".tar.gz"))
6467 (sha256
6468 (base32
6469 "1rdvv01p214zfjh6fcqjjgqwi8y42wad6cqzhlcv5gvclzw2ck8f"))))
6470 (build-system haskell-build-system)
6471 (arguments
6472 `(#:configure-flags '("-fsystem-lua")))
6473 (inputs
6474 `(("lua" ,lua)
6475 ("ghc-exceptions" ,ghc-exceptions)
6476 ("ghc-fail" ,ghc-fail)
6477 ("ghc-text" ,ghc-text)))
6478 (native-inputs
6479 `(("ghc-tasty" ,ghc-tasty)
6480 ("ghc-tasty-expected-failure" ,ghc-tasty-expected-failure)
6481 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
6482 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
6483 ("ghc-quickcheck" ,ghc-quickcheck)
6484 ("ghc-quickcheck-instances" ,ghc-quickcheck-instances)))
6485 (home-page "https://hackage.haskell.org/package/hslua")
6486 (synopsis "Lua language interpreter embedding in Haskell")
6487 (description
6488 "The Scripting.Lua module is a wrapper of the Lua language interpreter as
6489 described in @url{https://www.lua.org/}.")
6490 (license license:expat)))
6491
6492 (define-public ghc-hslua-module-text
6493 (package
6494 (name "ghc-hslua-module-text")
6495 (version "0.1.2.1")
6496 (source
6497 (origin
6498 (method url-fetch)
6499 (uri (string-append "https://hackage.haskell.org/package/"
6500 "hslua-module-text/hslua-module-text-"
6501 version ".tar.gz"))
6502 (sha256
6503 (base32
6504 "0bcfpb1dhnxp0gr376ai4w7vczr9zrjl1r3r6w7kcxivfkwq9cxf"))))
6505 (build-system haskell-build-system)
6506 (arguments
6507 `(#:cabal-revision
6508 ("1" "0vajlsd7y6pwa08635q0cx8z5c1c55bk7fvavw7g2vmyvxqjzx6n")))
6509 (inputs
6510 `(("ghc-hslua" ,ghc-hslua)
6511 ("ghc-text" ,ghc-text)))
6512 (native-inputs
6513 `(("ghc-tasty" ,ghc-tasty)
6514 ("ghc-tasty-hunit" ,ghc-tasty-hunit)))
6515 (home-page "https://github.com/hslua/hslua-module-text")
6516 (synopsis "Lua module for text")
6517 (description
6518 "This package provides a UTF-8 aware subset of Lua's @code{string} module
6519 for Haskell. The functions provided by this module are @code{upper},
6520 @code{lower}, @code{len}, @code{reverse}, and @code{sub}.")
6521 (license license:expat)))
6522
6523 (define-public ghc-byteable
6524 (package
6525 (name "ghc-byteable")
6526 (version "0.1.1")
6527 (source (origin
6528 (method url-fetch)
6529 (uri (string-append "https://hackage.haskell.org/package/"
6530 "byteable/byteable-" version ".tar.gz"))
6531 (sha256
6532 (base32
6533 "1qizg0kxxjqnd3cbrjhhidk5pbbciz0pb3z5kzikjjxnnnhk8fr4"))))
6534 (build-system haskell-build-system)
6535 (home-page "https://github.com/vincenthz/hs-byteable")
6536 (synopsis "Type class for sequence of bytes")
6537 (description
6538 "This package provides an abstract class to manipulate sequence of bytes.
6539 The use case of this class is abstracting manipulation of types that are just
6540 wrapping a bytestring with stronger and more meaniful name.")
6541 (license license:bsd-3)))
6542
6543 (define-public ghc-hourglass
6544 (package
6545 (name "ghc-hourglass")
6546 (version "0.2.12")
6547 (source (origin
6548 (method url-fetch)
6549 (uri (string-append "https://hackage.haskell.org/package/"
6550 "hourglass/hourglass-" version ".tar.gz"))
6551 (sha256
6552 (base32
6553 "0jnay5j13vpz6i1rkaj3j0d9v8jfpri499xn3l7wd01f81f5ncs4"))))
6554 (build-system haskell-build-system)
6555 (inputs
6556 `(("ghc-old-locale" ,ghc-old-locale)))
6557 (native-inputs
6558 `(("ghc-tasty" ,ghc-tasty)
6559 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
6560 ("ghc-tasty-hunit" ,ghc-tasty-hunit)))
6561 (home-page "https://github.com/vincenthz/hs-hourglass")
6562 (synopsis "Simple time-related library for Haskell")
6563 (description
6564 "This is a simple time library providing a simple but powerful and
6565 performant API. The backbone of the library are the @code{Timeable} and
6566 @code{Time} type classes. Each @code{Timeable} instances can be converted to
6567 a type that has a @code{Time} instances, and thus are different
6568 representations of current time.")
6569 (license license:bsd-3)))
6570
6571 (define-public ghc-edit-distance
6572 (package
6573 (name "ghc-edit-distance")
6574 (version "0.2.2.1")
6575 (source
6576 (origin
6577 (method url-fetch)
6578 (uri (string-append "https://hackage.haskell.org/package/edit-distance"
6579 "/edit-distance-" version ".tar.gz"))
6580 (sha256
6581 (base32 "0jkca97zyv23yyilp3jydcrzxqhyk27swhzh82llvban5zp8b21y"))))
6582 (build-system haskell-build-system)
6583 (arguments
6584 `(#:phases
6585 (modify-phases %standard-phases
6586 (add-before 'configure 'update-constraints
6587 (lambda _
6588 (substitute* "edit-distance.cabal"
6589 (("QuickCheck >= 2\\.4 && <2\\.9")
6590 "QuickCheck >= 2.4 && < 2.12")))))))
6591 (inputs
6592 `(("ghc-random" ,ghc-random)
6593 ("ghc-test-framework" ,ghc-test-framework)
6594 ("ghc-quickcheck" ,ghc-quickcheck)
6595 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
6596 (home-page "https://github.com/phadej/edit-distance")
6597 (synopsis "Levenshtein and restricted Damerau-Levenshtein edit distances")
6598 (description
6599 "This package provides optimized functions to determine the edit
6600 distances for fuzzy matching, including Levenshtein and restricted
6601 Damerau-Levenshtein algorithms.")
6602 (license license:bsd-3)))
6603
6604 (define-public ghc-memory
6605 (package
6606 (name "ghc-memory")
6607 (version "0.14.16")
6608 (source (origin
6609 (method url-fetch)
6610 (uri (string-append "https://hackage.haskell.org/package/"
6611 "memory/memory-" version ".tar.gz"))
6612 (sha256
6613 (base32
6614 "03rbszi5d4z9rlbfv8ydrl1xf84xsh8z57g07f7j9qccn9587c3v"))))
6615 (build-system haskell-build-system)
6616 (inputs
6617 `(("ghc-basement" ,ghc-basement)
6618 ("ghc-foundation" ,ghc-foundation)))
6619 (native-inputs
6620 `(("ghc-tasty" ,ghc-tasty)
6621 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
6622 ("ghc-tasty-hunit" ,ghc-tasty-hunit)))
6623 (home-page "https://github.com/vincenthz/hs-memory")
6624 (synopsis "Memory abstractions for Haskell")
6625 (description
6626 "This package provides memory abstractions, such as chunk of memory,
6627 polymorphic byte array management and manipulation functions. It contains a
6628 polymorphic byte array abstraction and functions similar to strict ByteString,
6629 different type of byte array abstraction, raw memory IO operations (memory
6630 set, memory copy, ..) and more")
6631 (license license:bsd-3)))
6632
6633 (define-public ghc-socks
6634 (package
6635 (name "ghc-socks")
6636 (version "0.5.6")
6637 (source (origin
6638 (method url-fetch)
6639 (uri (string-append "https://hackage.haskell.org/package/"
6640 "socks/socks-" version ".tar.gz"))
6641 (sha256
6642 (base32
6643 "0f44qy74i0n6ll3jym0a2ipafkpw1h67amcpqmj8iq95h21wsqzs"))))
6644 (build-system haskell-build-system)
6645 (inputs
6646 `(("ghc-cereal" ,ghc-cereal)
6647 ("ghc-network" ,ghc-network)))
6648 (home-page "https://github.com/vincenthz/hs-socks")
6649 (synopsis "SOCKS proxy (version 5) implementation")
6650 (description
6651 "This library provides a SOCKS proxy (version 5) implementation.")
6652 (license license:bsd-3)))
6653
6654 (define-public ghc-connection
6655 (package
6656 (name "ghc-connection")
6657 (version "0.2.8")
6658 (source (origin
6659 (method url-fetch)
6660 (uri (string-append "https://hackage.haskell.org/package/"
6661 "connection/connection-"
6662 version ".tar.gz"))
6663 (sha256
6664 (base32
6665 "1swkb9w5vx9ph7x55y51dc0srj2z27nd9ibgn8c0qcl6hx7g9cbh"))))
6666 (build-system haskell-build-system)
6667 (inputs
6668 `(("ghc-byteable" ,ghc-byteable)
6669 ("ghc-data-default-class" ,ghc-data-default-class)
6670 ("ghc-network" ,ghc-network)
6671 ("ghc-tls" ,ghc-tls)
6672 ("ghc-socks" ,ghc-socks)
6673 ("ghc-x509" ,ghc-x509)
6674 ("ghc-x509-store" ,ghc-x509-store)
6675 ("ghc-x509-system" ,ghc-x509-system)
6676 ("ghc-x509-validation" ,ghc-x509-validation)))
6677 (home-page "https://github.com/vincenthz/hs-connection")
6678 (synopsis "Simple and easy network connections API")
6679 (description
6680 "This package provides a simple network library for all your connection
6681 needs. It provides a very simple API to create sockets to a destination with
6682 the choice of SSL/TLS, and SOCKS.")
6683 (license license:bsd-3)))
6684
6685 (define-public ghc-skylighting-core
6686 (package
6687 (name "ghc-skylighting-core")
6688 (version "0.7.2")
6689 (source (origin
6690 (method url-fetch)
6691 (uri (string-append "https://hackage.haskell.org/package/"
6692 "skylighting-core/skylighting-core-"
6693 version ".tar.gz"))
6694 (sha256
6695 (base32
6696 "066fwmwsd7xcvwlinfk2izlzq0xp8697i6lnbgsbl71jdybyackq"))))
6697 (build-system haskell-build-system)
6698 (inputs
6699 `(("ghc-aeson" ,ghc-aeson)
6700 ("ghc-ansi-terminal" ,ghc-ansi-terminal)
6701 ("ghc-attoparsec" ,ghc-attoparsec)
6702 ("ghc-base64-bytestring" ,ghc-base64-bytestring)
6703 ("ghc-blaze-html" ,ghc-blaze-html)
6704 ("ghc-case-insensitive" ,ghc-case-insensitive)
6705 ("ghc-colour" ,ghc-colour)
6706 ("ghc-hxt" ,ghc-hxt)
6707 ("ghc-regex-pcre-builtin" ,ghc-regex-pcre-builtin)
6708 ("ghc-safe" ,ghc-safe)
6709 ("ghc-text" ,ghc-text)
6710 ("ghc-utf8-string" ,ghc-utf8-string)))
6711 (native-inputs
6712 `(("ghc-diff" ,ghc-diff)
6713 ("ghc-hunit" ,ghc-hunit)
6714 ("ghc-pretty-show" ,ghc-pretty-show)
6715 ("ghc-quickcheck" ,ghc-quickcheck)
6716 ("ghc-tasty" ,ghc-tasty)
6717 ("ghc-tasty-golden" ,ghc-tasty-golden)
6718 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
6719 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
6720 (home-page "https://github.com/jgm/skylighting")
6721 (synopsis "Syntax highlighting library")
6722 (description "Skylighting is a syntax highlighting library with support
6723 for over one hundred languages. It derives its tokenizers from XML syntax
6724 definitions used by KDE's @code{KSyntaxHighlighting} framework, so any syntax
6725 supported by that framework can be added. An optional command-line program is
6726 provided. Skylighting is intended to be the successor to highlighting-kate.")
6727 (license license:gpl2)))
6728
6729 (define-public ghc-skylighting
6730 (package
6731 (inherit ghc-skylighting-core)
6732 (name "ghc-skylighting")
6733 (version "0.7.2")
6734 (source (origin
6735 (method url-fetch)
6736 (uri (string-append "https://hackage.haskell.org/package/skylighting-"
6737 version "/skylighting-" version ".tar.gz"))
6738 (sha256
6739 (base32
6740 "1rh3z1a7a4clvksdw1qlpmhxqkfahwypi70k91whgfamzsqpxdch"))))
6741 (inputs
6742 `(("ghc-skylighting-core" ,ghc-skylighting-core)
6743 ,@(package-inputs ghc-skylighting-core)))))
6744
6745 (define-public ghc-doctemplates
6746 (package
6747 (name "ghc-doctemplates")
6748 (version "0.2.2.1")
6749 (source
6750 (origin
6751 (method url-fetch)
6752 (uri (string-append "https://hackage.haskell.org/package/"
6753 "doctemplates/doctemplates-"
6754 version ".tar.gz"))
6755 (sha256
6756 (base32
6757 "1gyckfg3kgvzhxw14i7iwrw0crygvsp86sy53bbr1yn7bxbgn33b"))))
6758 (build-system haskell-build-system)
6759 (inputs
6760 `(("ghc-aeson" ,ghc-aeson)
6761 ("ghc-blaze-markup" ,ghc-blaze-markup)
6762 ("ghc-blaze-html" ,ghc-blaze-html)
6763 ("ghc-text" ,ghc-text)
6764 ("ghc-vector" ,ghc-vector)
6765 ("ghc-parsec" ,ghc-parsec)
6766 ("ghc-unordered-containers" ,ghc-unordered-containers)
6767 ("ghc-scientific" ,ghc-scientific)))
6768 (native-inputs
6769 `(("ghc-hspec" ,ghc-hspec)))
6770 (home-page "https://github.com/jgm/doctemplates#readme")
6771 (synopsis "Pandoc-style document templates")
6772 (description
6773 "This package provides a simple text templating system used by pandoc.")
6774 (license license:bsd-3)))
6775
6776 (define-public ghc-pandoc
6777 (package
6778 (name "ghc-pandoc")
6779 (version "2.2.1")
6780 (source
6781 (origin
6782 (method url-fetch)
6783 (uri (string-append "https://hackage.haskell.org/package/pandoc/pandoc-"
6784 version ".tar.gz"))
6785 (sha256
6786 (base32
6787 "1dqin92w513l7whg5wdgrngnxsj5mb8gppfvn7kjgyv2pdgpy0zy"))))
6788 (build-system haskell-build-system)
6789 (arguments
6790 `(#:phases
6791 (modify-phases %standard-phases
6792 (add-before 'configure 'update-constraints
6793 (lambda _
6794 (substitute* "pandoc.cabal"
6795 (("tasty >= 0\\.11 && < 1\\.1")
6796 "tasty >= 0.11 && < 1.1.1"))))
6797 (add-before 'configure 'patch-tests
6798 (lambda _
6799 ;; These tests fail benignly and have been adjusted upstream:
6800 ;; <https://github.com/commercialhaskell/stackage/issues/3719>.
6801 (substitute* "test/Tests/Old.hs"
6802 (("lhsWriterTests \"html\"") "[]")))))))
6803 (inputs
6804 `(("ghc-aeson" ,ghc-aeson)
6805 ("ghc-aeson-pretty" ,ghc-aeson-pretty)
6806 ("ghc-base64-bytestring" ,ghc-base64-bytestring)
6807 ("ghc-blaze-html" ,ghc-blaze-html)
6808 ("ghc-blaze-markup" ,ghc-blaze-markup)
6809 ("ghc-cmark-gfm" ,ghc-cmark-gfm)
6810 ("ghc-data-default" ,ghc-data-default)
6811 ("ghc-deepseq-generics" ,ghc-deepseq-generics)
6812 ("ghc-diff" ,ghc-diff)
6813 ("ghc-doctemplates" ,ghc-doctemplates)
6814 ("ghc-executable-path" ,ghc-executable-path)
6815 ("ghc-glob" ,ghc-glob)
6816 ("ghc-haddock-library" ,ghc-haddock-library)
6817 ("ghc-hslua" ,ghc-hslua)
6818 ("ghc-hslua-module-text" ,ghc-hslua-module-text)
6819 ("ghc-http" ,ghc-http)
6820 ("ghc-http-client" ,ghc-http-client)
6821 ("ghc-http-client-tls" ,ghc-http-client-tls)
6822 ("ghc-http-types" ,ghc-http-types)
6823 ("ghc-juicypixels" ,ghc-juicypixels)
6824 ("ghc-network" ,ghc-network)
6825 ("ghc-network-uri" ,ghc-network-uri)
6826 ("ghc-old-locale" ,ghc-old-locale)
6827 ("ghc-pandoc-types" ,ghc-pandoc-types)
6828 ("ghc-parsec" ,ghc-parsec)
6829 ("ghc-random" ,ghc-random)
6830 ("ghc-scientific" ,ghc-scientific)
6831 ("ghc-sha" ,ghc-sha)
6832 ("ghc-skylighting" ,ghc-skylighting)
6833 ("ghc-split" ,ghc-split)
6834 ("ghc-syb" ,ghc-syb)
6835 ("ghc-tagsoup" ,ghc-tagsoup)
6836 ("ghc-temporary" ,ghc-temporary)
6837 ("ghc-texmath" ,ghc-texmath)
6838 ("ghc-text" ,ghc-text)
6839 ("ghc-unordered-containers" ,ghc-unordered-containers)
6840 ("ghc-vector" ,ghc-vector)
6841 ("ghc-xml" ,ghc-xml)
6842 ("ghc-yaml" ,ghc-yaml)
6843 ("ghc-zip-archive" ,ghc-zip-archive)
6844 ("ghc-zlib" ,ghc-zlib)))
6845 (native-inputs
6846 `(("ghc-tasty" ,ghc-tasty)
6847 ("ghc-tasty-golden" ,ghc-tasty-golden)
6848 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
6849 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
6850 ("ghc-quickcheck" ,ghc-quickcheck)
6851 ("ghc-hunit" ,ghc-hunit)))
6852 (home-page "https://pandoc.org")
6853 (synopsis "Conversion between markup formats")
6854 (description
6855 "Pandoc is a Haskell library for converting from one markup format to
6856 another, and a command-line tool that uses this library. It can read and
6857 write Markdown and (subsets of) other formats, such as HTML, reStructuredText,
6858 LaTeX, DocBook, and many more.
6859
6860 Pandoc extends standard Markdown syntax with footnotes, embedded LaTeX,
6861 definition lists, tables, and other features. A compatibility mode is
6862 provided for those who need a drop-in replacement for Markdown.pl.")
6863 (license license:gpl2+)))
6864
6865 (define-public ghc-hs-bibutils
6866 (package
6867 (name "ghc-hs-bibutils")
6868 (version "6.6.0.0")
6869 (source
6870 (origin
6871 (method url-fetch)
6872 (uri (string-append
6873 "https://hackage.haskell.org/package/hs-bibutils/hs-bibutils-"
6874 version ".tar.gz"))
6875 (sha256
6876 (base32
6877 "0n2sz2zl4naspryd49ii858qkjp2lapns5a2gr8zm6vvn5sh1f0l"))))
6878 (build-system haskell-build-system)
6879 (inputs `(("ghc-syb" ,ghc-syb)))
6880 (home-page "https://hackage.haskell.org/package/hs-bibutils")
6881 (synopsis "Haskell bindings to bibutils")
6882 (description
6883 "This package provides Haskell bindings to @code{bibutils}, a library
6884 that interconverts between various bibliography formats using a common
6885 MODS-format XML intermediate.")
6886 (license license:gpl2+)))
6887
6888 (define-public ghc-rfc5051
6889 (package
6890 (name "ghc-rfc5051")
6891 (version "0.1.0.3")
6892 (source
6893 (origin
6894 (method url-fetch)
6895 (uri (string-append "https://hackage.haskell.org/package/rfc5051/"
6896 "rfc5051-" version ".tar.gz"))
6897 (sha256
6898 (base32
6899 "0av4c3qvwbkbzrjrrg601ay9pds7wscqqp2lc2z78mv2lllap3g3"))))
6900 (build-system haskell-build-system)
6901 (home-page "https://hackage.haskell.org/package/rfc5051")
6902 (synopsis "Simple unicode collation as per RFC5051")
6903 (description
6904 "This library implements @code{unicode-casemap}, the simple, non
6905 locale-sensitive unicode collation algorithm described in RFC 5051. Proper
6906 unicode collation can be done using @code{text-icu}, but that is a big
6907 dependency that depends on a large C library, and @code{rfc5051} might be
6908 better for some purposes.")
6909 (license license:bsd-3)))
6910
6911 (define-public ghc-typed-process
6912 (package
6913 (name "ghc-typed-process")
6914 (version "0.2.3.0")
6915 (source
6916 (origin
6917 (method url-fetch)
6918 (uri (string-append "https://hackage.haskell.org/package/"
6919 "typed-process/typed-process-"
6920 version ".tar.gz"))
6921 (sha256
6922 (base32
6923 "0j36vrc9w841m5qbwqra1lwiznx31xfnhin1sm8x2c2739csbpn0"))))
6924 (build-system haskell-build-system)
6925 (inputs
6926 `(("ghc-async" ,ghc-async)
6927 ("ghc-stm" ,ghc-stm)))
6928 (native-inputs
6929 `(("ghc-base64-bytestring" ,ghc-base64-bytestring)
6930 ("ghc-hspec" ,ghc-hspec)
6931 ("hspec-discover" ,hspec-discover)
6932 ("ghc-temporary" ,ghc-temporary)))
6933 (home-page "https://haskell-lang.org/library/typed-process")
6934 (synopsis "Run external processes with strong typing of streams")
6935 (description
6936 "This library provides the ability to launch and interact with external
6937 processes. It wraps around the @code{process} library, and intends to improve
6938 upon it.")
6939 (license license:expat)))
6940
6941 (define-public ghc-conduit-extra
6942 (package
6943 (name "ghc-conduit-extra")
6944 (version "1.3.0")
6945 (source
6946 (origin
6947 (method url-fetch)
6948 (uri (string-append "https://hackage.haskell.org/package/"
6949 "conduit-extra/conduit-extra-"
6950 version ".tar.gz"))
6951 (sha256
6952 (base32
6953 "1bi2b6kdzy5f9glq46jzsk02has95jkxqz0cchpbmnakzhjwjh9c"))))
6954 (build-system haskell-build-system)
6955 (inputs
6956 `(("ghc-conduit" ,ghc-conduit)
6957 ("ghc-exceptions" ,ghc-exceptions)
6958 ("ghc-monad-control" ,ghc-monad-control)
6959 ("ghc-text" ,ghc-text)
6960 ("ghc-transformers-base" ,ghc-transformers-base)
6961 ("ghc-typed-process" ,ghc-typed-process)
6962 ("ghc-async" ,ghc-async)
6963 ("ghc-attoparsec" ,ghc-attoparsec)
6964 ("ghc-blaze-builder" ,ghc-blaze-builder)
6965 ("ghc-network" ,ghc-network)
6966 ("ghc-primitive" ,ghc-primitive)
6967 ("ghc-resourcet" ,ghc-resourcet)
6968 ("ghc-stm" ,ghc-stm)
6969 ("ghc-streaming-commons" ,ghc-streaming-commons)
6970 ("ghc-hspec" ,ghc-hspec)
6971 ("ghc-bytestring-builder" ,ghc-bytestring-builder)
6972 ("ghc-quickcheck" ,ghc-quickcheck)))
6973 (native-inputs
6974 `(("hspec-discover" ,hspec-discover)))
6975 (home-page "https://github.com/snoyberg/conduit")
6976 (synopsis "Conduit adapters for common libraries")
6977 (description
6978 "The @code{conduit} package itself maintains relative small dependencies.
6979 The purpose of this package is to collect commonly used utility functions
6980 wrapping other library dependencies, without depending on heavier-weight
6981 dependencies. The basic idea is that this package should only depend on
6982 @code{haskell-platform} packages and @code{conduit}.")
6983 (license license:expat)))
6984
6985 (define-public ghc-xml-types
6986 (package
6987 (name "ghc-xml-types")
6988 (version "0.3.6")
6989 (source
6990 (origin
6991 (method url-fetch)
6992 (uri (string-append "https://hackage.haskell.org/package/xml-types/"
6993 "xml-types-" version ".tar.gz"))
6994 (sha256
6995 (base32
6996 "1jgqxsa9p2q3h6nymbfmvhldqrqlwrhrzmwadlyc0li50x0d8dwr"))))
6997 (build-system haskell-build-system)
6998 (inputs `(("ghc-text" ,ghc-text)))
6999 (home-page "https://john-millikin.com/software/haskell-xml/")
7000 (synopsis "Basic types for representing XML")
7001 (description "This package provides basic types for representing XML
7002 documents.")
7003 (license license:expat)))
7004
7005 (define-public ghc-xml-conduit
7006 (package
7007 (name "ghc-xml-conduit")
7008 (version "1.8.0.1")
7009 (source
7010 (origin
7011 (method url-fetch)
7012 (uri (string-append "https://hackage.haskell.org/package/xml-conduit/"
7013 "xml-conduit-" version ".tar.gz"))
7014 (sha256
7015 (base32
7016 "177gmyigxql1pn3ncz0r8annwv5cbxnihbgrrg1dhm4gmc9jy2wq"))))
7017 (build-system haskell-build-system)
7018 (inputs
7019 `(("ghc-conduit" ,ghc-conduit)
7020 ("ghc-conduit-extra" ,ghc-conduit-extra)
7021 ("ghc-doctest" ,ghc-doctest)
7022 ("ghc-resourcet" ,ghc-resourcet)
7023 ("ghc-text" ,ghc-text)
7024 ("ghc-xml-types" ,ghc-xml-types)
7025 ("ghc-attoparsec" ,ghc-attoparsec)
7026 ("ghc-data-default-class" ,ghc-data-default-class)
7027 ("ghc-blaze-markup" ,ghc-blaze-markup)
7028 ("ghc-blaze-html" ,ghc-blaze-html)
7029 ("ghc-monad-control" ,ghc-monad-control)
7030 ("ghc-hspec" ,ghc-hspec)
7031 ("ghc-hunit" ,ghc-hunit)))
7032 (home-page "https://github.com/snoyberg/xml")
7033 (synopsis "Utilities for dealing with XML with the conduit package")
7034 (description
7035 "This package provides pure-Haskell utilities for dealing with XML with
7036 the @code{conduit} package.")
7037 (license license:expat)))
7038
7039 (define-public ghc-pandoc-citeproc
7040 (package
7041 (name "ghc-pandoc-citeproc")
7042 (version "0.14.3.1")
7043 (source
7044 (origin
7045 (method url-fetch)
7046 (uri (string-append "https://hackage.haskell.org/package/"
7047 "pandoc-citeproc/pandoc-citeproc-"
7048 version ".tar.gz"))
7049 (sha256
7050 (base32
7051 "0yj6rckwsc9vig40cm15ry0j3d01xpk04qma9n4byhal6v4b5h22"))))
7052 (build-system haskell-build-system)
7053 (arguments
7054 `(#:phases
7055 (modify-phases %standard-phases
7056 ;; Many YAML tests (44) are failing do to changes in ghc-yaml:
7057 ;; <https://github.com/jgm/pandoc-citeproc/issues/342>.
7058 (add-before 'configure 'patch-tests
7059 (lambda _
7060 (substitute* "tests/test-pandoc-citeproc.hs"
7061 (("let allTests = citeprocTests \\+\\+ biblio2yamlTests")
7062 "let allTests = citeprocTests"))))
7063 ;; Tests need to be run after installation.
7064 (delete 'check)
7065 (add-after 'install 'post-install-check
7066 (assoc-ref %standard-phases 'check)))))
7067 (inputs
7068 `(("ghc-pandoc-types" ,ghc-pandoc-types)
7069 ("ghc-pandoc" ,ghc-pandoc)
7070 ("ghc-tagsoup" ,ghc-tagsoup)
7071 ("ghc-aeson" ,ghc-aeson)
7072 ("ghc-text" ,ghc-text)
7073 ("ghc-vector" ,ghc-vector)
7074 ("ghc-xml-conduit" ,ghc-xml-conduit)
7075 ("ghc-unordered-containers" ,ghc-unordered-containers)
7076 ("ghc-data-default" ,ghc-data-default)
7077 ("ghc-setenv" ,ghc-setenv)
7078 ("ghc-split" ,ghc-split)
7079 ("ghc-yaml" ,ghc-yaml)
7080 ("ghc-hs-bibutils" ,ghc-hs-bibutils)
7081 ("ghc-rfc5051" ,ghc-rfc5051)
7082 ("ghc-syb" ,ghc-syb)
7083 ("ghc-parsec" ,ghc-parsec)
7084 ("ghc-old-locale" ,ghc-old-locale)
7085 ("ghc-aeson-pretty" ,ghc-aeson-pretty)
7086 ("ghc-attoparsec" ,ghc-attoparsec)
7087 ("ghc-temporary" ,ghc-temporary)))
7088 (home-page "https://github.com/jgm/pandoc-citeproc")
7089 (synopsis "Library for using pandoc with citeproc")
7090 (description
7091 "The @code{pandoc-citeproc} library exports functions for using the
7092 citeproc system with pandoc. It relies on @code{citeproc-hs}, a library for
7093 rendering bibliographic reference citations into a variety of styles using a
7094 macro language called @dfn{Citation Style Language} (CSL). This package also
7095 contains an executable @code{pandoc-citeproc}, which works as a pandoc filter,
7096 and also has a mode for converting bibliographic databases a YAML format
7097 suitable for inclusion in pandoc YAML metadata.")
7098 (license license:bsd-3)))
7099
7100 (define-public ghc-union-find
7101 (package
7102 (name "ghc-union-find")
7103 (version "0.2")
7104 (source (origin
7105 (method url-fetch)
7106 (uri (string-append
7107 "https://hackage.haskell.org/package/union-find/union-find-"
7108 version ".tar.gz"))
7109 (sha256
7110 (base32
7111 "1v7hj42j9w6jlzi56jg8rh4p58gfs1c5dx30wd1qqvn0p0mnihp6"))))
7112 (build-system haskell-build-system)
7113 (home-page "https://github.com/nominolo/union-find")
7114 (synopsis "Efficient union and equivalence testing of sets")
7115 (description
7116 "The Union/Find algorithm implements these operations in (effectively)
7117 constant-time:
7118 @enumerate
7119 @item Check whether two elements are in the same equivalence class.
7120 @item Create a union of two equivalence classes.
7121 @item Look up the descriptor of the equivalence class.
7122 @end enumerate\n")
7123 (license license:bsd-3)))
7124
7125 (define-public ghc-base16-bytestring
7126 (package
7127 (name "ghc-base16-bytestring")
7128 (version "0.1.1.6")
7129 (source
7130 (origin
7131 (method url-fetch)
7132 (uri (string-append
7133 "https://hackage.haskell.org/package/base16-bytestring/"
7134 "base16-bytestring-" version ".tar.gz"))
7135 (sha256
7136 (base32
7137 "0jf40m3yijqw6wd1rwwvviww46fasphaay9m9rgqyhf5aahnbzjs"))))
7138 (build-system haskell-build-system)
7139 (home-page "https://github.com/bos/base16-bytestring")
7140 (synopsis "Fast base16 (hex) encoding and decoding for ByteStrings")
7141 (description
7142 "This package provides a Haskell library for working with base16-encoded
7143 data quickly and efficiently, using the ByteString type.")
7144 (license license:bsd-3)))
7145
7146 (define-public ghc-data-ordlist
7147 (package
7148 (name "ghc-data-ordlist")
7149 (version "0.4.7.0")
7150 (source
7151 (origin
7152 (method url-fetch)
7153 (uri (string-append
7154 "https://hackage.haskell.org/package/data-ordlist/data-ordlist-"
7155 version ".tar.gz"))
7156 (sha256
7157 (base32
7158 "03a9ix1fcx08viwv2jg5ndw1qbkydyyrmjvqr9wasmcik9x1wv3g"))))
7159 (build-system haskell-build-system)
7160 (home-page "https://hackage.haskell.org/package/data-ordlist")
7161 (synopsis "Set and bag operations on ordered lists")
7162 (description
7163 "This module provides set and multiset operations on ordered lists.")
7164 (license license:bsd-3)))
7165
7166 (define-public ghc-regex-applicative
7167 (package
7168 (name "ghc-regex-applicative")
7169 (version "0.3.3")
7170 (source
7171 (origin
7172 (method url-fetch)
7173 (uri (string-append
7174 "https://hackage.haskell.org/package/regex-applicative/"
7175 "regex-applicative-" version ".tar.gz"))
7176 (sha256
7177 (base32
7178 "1riv7jqf26lbv4rm54sd6mrx8xdh4dvh4xbzymzdfdw13k6a4nb6"))))
7179 (build-system haskell-build-system)
7180 (inputs
7181 `(("ghc-smallcheck" ,ghc-smallcheck)
7182 ("ghc-tasty" ,ghc-tasty)
7183 ("ghc-tasty-smallcheck" ,ghc-tasty-smallcheck)
7184 ("ghc-tasty-hunit" ,ghc-tasty-hunit)))
7185 (home-page "https://github.com/feuerbach/regex-applicative")
7186 (synopsis "Regex-based parsing with applicative interface")
7187 (description
7188 "@code{regex-applicative} is a Haskell library for parsing using
7189 regular expressions. Parsers can be built using Applicative interface.")
7190 (license license:expat)))
7191
7192 (define-public ghc-regex-tdfa
7193 (package
7194 (name "ghc-regex-tdfa")
7195 (version "1.2.3.1")
7196 (source
7197 (origin
7198 (method url-fetch)
7199 (uri (string-append
7200 "https://hackage.haskell.org/package/regex-tdfa/regex-tdfa-"
7201 version ".tar.gz"))
7202 (sha256
7203 (base32
7204 "0l7ajnh4hpgggf2a1r9dg0hx2fy679vd2kada5y7r02hy3nfxala"))))
7205 (build-system haskell-build-system)
7206 (inputs
7207 `(("ghc-parsec" ,ghc-parsec)
7208 ("ghc-regex-base" ,ghc-regex-base)))
7209 (home-page "https://github.com/ChrisKuklewicz/regex-tdfa")
7210 (synopsis "POSIX extended regular expressions in Haskell.")
7211 (description
7212 "Regex-tdfa is a pure Haskell regular expression library implementing POSIX
7213 extended regular expressions. It is a \"tagged\" DFA regex engine. It is
7214 inspired by libtre.")
7215 (license license:bsd-3)))
7216
7217 (define-public ghc-regex-compat-tdfa
7218 (package
7219 (name "ghc-regex-compat-tdfa")
7220 (version "0.95.1.4")
7221 (source
7222 (origin
7223 (method url-fetch)
7224 (uri (string-append
7225 "https://hackage.haskell.org/package/regex-compat-tdfa/regex-compat-tdfa-"
7226 version ".tar.gz"))
7227 (sha256
7228 (base32
7229 "1p90fn90yhp7fvljjdqjp41cszidcfz4pw7fwvzyx4739b98x8sg"))))
7230 (build-system haskell-build-system)
7231 (inputs
7232 `(("ghc-regex-base" ,ghc-regex-base)
7233 ("ghc-regex-tdfa" ,ghc-regex-tdfa)))
7234 (home-page "https://hub.darcs.net/shelarcy/regex-compat-tdfa")
7235 (synopsis "Unicode Support version of Text.Regex, using regex-tdfa")
7236 (description
7237 "One module layer over @code{regex-tdfa} to replace @code{Text.Regex}.
7238 @code{regex-compat} can't use Unicode characters correctly because of using regex-posix.
7239 This is not good for Unicode users. This modified regex-compat uses regex-tdfa to solve
7240 this problem.")
7241 (license license:bsd-3)))
7242
7243 (define-public ghc-sandi
7244 (package
7245 (name "ghc-sandi")
7246 (version "0.4.2")
7247 (source
7248 (origin
7249 (method url-fetch)
7250 (uri (string-append
7251 "https://hackage.haskell.org/package/sandi/sandi-"
7252 version ".tar.gz"))
7253 (sha256
7254 (base32
7255 "0dvkpk91n9kz2ha04rvp231ra9sgd1ilyc1qkzf9l03iir7zrh9b"))))
7256 (build-system haskell-build-system)
7257 (inputs
7258 `(("ghc-stringsearch" ,ghc-stringsearch)
7259 ("ghc-conduit" ,ghc-conduit)
7260 ("ghc-exceptions" ,ghc-exceptions)
7261 ("ghc-hunit" ,ghc-hunit)
7262 ("ghc-tasty" ,ghc-tasty)
7263 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
7264 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
7265 ("ghc-tasty-th" ,ghc-tasty-th)))
7266 (home-page "https://hackage.haskell.org/package/sandi")
7267 (synopsis "Data encoding library")
7268 (description "Reasonably fast data encoding library.")
7269 (license license:bsd-3)))
7270
7271 (define-public ghc-bytestring-handle
7272 (package
7273 (name "ghc-bytestring-handle")
7274 (version "0.1.0.6")
7275 (source
7276 (origin
7277 (method url-fetch)
7278 (uri (string-append
7279 "https://hackage.haskell.org/package/bytestring-handle/bytestring-handle-"
7280 version ".tar.gz"))
7281 (sha256
7282 (base32
7283 "18f17aja1ivhr3zyg2cccn2m03hdn5jf5410dndkhf12gvgiqs7y"))))
7284 (build-system haskell-build-system)
7285 (arguments
7286 `(#:phases
7287 (modify-phases %standard-phases
7288 (add-before 'configure 'update-constraints
7289 (lambda _
7290 (substitute* "bytestring-handle.cabal"
7291 (("QuickCheck >= 2\\.1\\.2 && < 2\\.11")
7292 "QuickCheck >= 2.1.2 && < 2.12")
7293 (("base >= 4\\.2 && < 4\\.11")
7294 "base >= 4.2 && < 4.12")))))))
7295 (inputs
7296 `(("ghc-hunit" ,ghc-hunit)
7297 ("ghc-quickcheck" ,ghc-quickcheck)
7298 ("ghc-test-framework" ,ghc-test-framework)
7299 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
7300 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
7301 (home-page "https://hub.darcs.net/ganesh/bytestring-handle")
7302 (synopsis "ByteString-backed Handles")
7303 (description "ByteString-backed Handles") ; There is no description
7304 (license license:bsd-3)))
7305
7306 (define-public ghc-tar
7307 (package
7308 (name "ghc-tar")
7309 (version "0.5.1.0")
7310 (source
7311 (origin
7312 (method url-fetch)
7313 (uri (string-append
7314 "https://hackage.haskell.org/package/tar/tar-"
7315 version ".tar.gz"))
7316 (sha256
7317 (base32
7318 "0s2brvaxg5fki2jdkccmnpssiy6a3wjh24p6a3dkkdvjcixnk7f8"))))
7319 (build-system haskell-build-system)
7320 ;; FIXME: 2/24 tests fail.
7321 (arguments `(#:tests? #f))
7322 (inputs
7323 `(("ghc-bytestring-handle" ,ghc-bytestring-handle)
7324 ("ghc-quickcheck" ,ghc-quickcheck)
7325 ("ghc-tasty" ,ghc-tasty)
7326 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
7327 (home-page "https://hackage.haskell.org/package/tar")
7328 (synopsis "Reading, writing and manipulating \".tar\" archive files")
7329 (description
7330 "This library is for working with \\\"@.tar@\\\" archive files.
7331 It can read and write a range of common variations of the tar archive format
7332 including V7, POSIX USTAR and GNU formats. It provides support for packing and
7333 unpacking portable archives. This makes it suitable for distribution but not
7334 backup because details like file ownership and exact permissions are not
7335 preserved. It also provides features for random access to archive content using
7336 an index.")
7337 (license license:bsd-3)))
7338
7339 (define-public ghc-stmonadtrans
7340 (package
7341 (name "ghc-stmonadtrans")
7342 (version "0.4.3")
7343 (source
7344 (origin
7345 (method url-fetch)
7346 (uri (string-append "https://hackage.haskell.org/package/STMonadTrans"
7347 "/STMonadTrans-" version ".tar.gz"))
7348 (sha256
7349 (base32 "1nr26fnmi5fdjc6d00w13kjhmfyvb5b837d0006w4dj0yxndaksp"))))
7350 (build-system haskell-build-system)
7351 (home-page "https://hackage.haskell.org/package/STMonadTrans")
7352 (synopsis "Monad transformer version of the ST monad")
7353 (description
7354 "This package provides a monad transformer version of the @code{ST} monad
7355 for strict state threads.")
7356 (license license:bsd-3)))
7357
7358 (define-public ghc-findbin
7359 (package
7360 (name "ghc-findbin")
7361 (version "0.0.5")
7362 (source
7363 (origin
7364 (method url-fetch)
7365 (uri (string-append
7366 "https://hackage.haskell.org/package/FindBin/FindBin-"
7367 version ".tar.gz"))
7368 (sha256
7369 (base32
7370 "197xvn05yysmibm1p5wzxfa256lvpbknr5d1l2ws6g40w1kpk717"))))
7371 (build-system haskell-build-system)
7372 (home-page "https://github.com/audreyt/findbin")
7373 (synopsis "Get the absolute path of the running program")
7374 (description
7375 "This module locates the full directory of the running program, to allow
7376 the use of paths relative to it. FindBin supports invocation of Haskell
7377 programs via \"ghci\", via \"runhaskell/runghc\", as well as compiled as
7378 an executable.")
7379 (license license:bsd-3)))
7380
7381 (define-public ghc-patience
7382 (package
7383 (name "ghc-patience")
7384 (version "0.1.1")
7385 (source
7386 (origin
7387 (method url-fetch)
7388 (uri (string-append
7389 "https://hackage.haskell.org/package/patience/patience-"
7390 version ".tar.gz"))
7391 (sha256
7392 (base32
7393 "0qyv20gqy9pb1acy700ahv70lc6vprcwb26cc7fcpcs4scsc7irm"))))
7394 (build-system haskell-build-system)
7395 (home-page "https://hackage.haskell.org/package/patience")
7396 (synopsis "Patience diff and longest increasing subsequence")
7397 (description
7398 "This library implements the 'patience diff' algorithm, as well as the
7399 patience algorithm for the longest increasing subsequence problem.
7400 Patience diff computes the difference between two lists, for example the lines
7401 of two versions of a source file. It provides a good balance between
7402 performance, nice output for humans, and simplicity of implementation.")
7403 (license license:bsd-3)))
7404
7405 (define-public ghc-monads-tf
7406 (package
7407 (name "ghc-monads-tf")
7408 (version "0.1.0.3")
7409 (source
7410 (origin
7411 (method url-fetch)
7412 (uri (string-append
7413 "https://hackage.haskell.org/package/monads-tf/monads-tf-"
7414 version ".tar.gz"))
7415 (sha256
7416 (base32
7417 "1wdhskwa6dw8qljbvwpyxj8ca6y95q2np7z4y4q6bpf4anmd5794"))))
7418 (build-system haskell-build-system)
7419 (home-page "https://hackage.haskell.org/package/monads-tf")
7420 (synopsis "Monad classes, using type families")
7421 (description
7422 "Monad classes using type families, with instances for various monad transformers,
7423 inspired by the paper 'Functional Programming with Overloading and Higher-Order
7424 Polymorphism', by Mark P Jones. This package is almost a compatible replacement for
7425 the @code{mtl-tf} package.")
7426 (license license:bsd-3)))
7427
7428 (define-public ghc-colour
7429 (package
7430 (name "ghc-colour")
7431 (version "2.3.4")
7432 (source
7433 (origin
7434 (method url-fetch)
7435 (uri (string-append
7436 "https://hackage.haskell.org/package/colour/colour-"
7437 version ".tar.gz"))
7438 (sha256
7439 (base32
7440 "1sy51nz096sv91nxqk6yk7b92b5a40axv9183xakvki2nc09yhqg"))))
7441 (arguments
7442 ;; The tests for this package have the following dependency cycle:
7443 ;; ghc-test-framework -> ghc-ansi-terminal -> ghc-colour.
7444 `(#:tests? #f))
7445 (build-system haskell-build-system)
7446 (home-page "https://www.haskell.org/haskellwiki/Colour")
7447 (synopsis "Model for human colour perception")
7448 (description
7449 "This package provides a data type for colours and transparency.
7450 Colours can be blended and composed. Various colour spaces are
7451 supported. A module of colour names (\"Data.Colour.Names\") is provided.")
7452 (license license:expat)))
7453
7454 (define-public ghc-wl-pprint-text
7455 (package
7456 (name "ghc-wl-pprint-text")
7457 (version "1.2.0.0")
7458 (source
7459 (origin
7460 (method url-fetch)
7461 (uri (string-append
7462 "https://hackage.haskell.org/package/wl-pprint-text/wl-pprint-text-"
7463 version ".tar.gz"))
7464 (sha256
7465 (base32
7466 "0g3w92rad6x5appfb22rbzcas2ix2h0hy91sdxhq8a4a5cnlrpa0"))))
7467 (build-system haskell-build-system)
7468 (inputs
7469 `(("ghc-base-compat" ,ghc-base-compat)
7470 ("ghc-text" ,ghc-text)))
7471 (home-page "https://hackage.haskell.org/package/wl-pprint-text")
7472 (synopsis "Wadler/Leijen Pretty Printer for Text values")
7473 (description
7474 "A clone of wl-pprint for use with the text library.")
7475 (license license:bsd-3)))
7476
7477 (define-public ghc-fgl-arbitrary
7478 (package
7479 (name "ghc-fgl-arbitrary")
7480 (version "0.2.0.3")
7481 (source
7482 (origin
7483 (method url-fetch)
7484 (uri (string-append
7485 "https://hackage.haskell.org/package/fgl-arbitrary/fgl-arbitrary-"
7486 version ".tar.gz"))
7487 (sha256
7488 (base32
7489 "0ln1szgfy8fa78l3issq4fx3aqnnd54w3cb4wssrfi48vd5rkfjm"))))
7490 (build-system haskell-build-system)
7491 (arguments
7492 `(#:phases
7493 (modify-phases %standard-phases
7494 (add-before 'configure 'update-constraints
7495 (lambda _
7496 (substitute* "fgl-arbitrary.cabal"
7497 (("QuickCheck >= 2\\.3 && < 2\\.10")
7498 "QuickCheck >= 2.3 && < 2.12")
7499 (("hspec >= 2\\.1 && < 2\\.5")
7500 "hspec >= 2.1 && < 2.6")))))))
7501 (inputs
7502 `(("ghc-fgl" ,ghc-fgl)
7503 ("ghc-quickcheck" ,ghc-quickcheck)
7504 ("ghc-hspec" ,ghc-hspec)))
7505 (home-page "https://hackage.haskell.org/package/fgl-arbitrary")
7506 (synopsis "QuickCheck support for fgl")
7507 (description
7508 "Provides Arbitrary instances for fgl graphs to avoid adding a
7509 QuickCheck dependency for fgl whilst still making the instances
7510 available to others. Also available are non-fgl-specific functions
7511 for generating graph-like data structures.")
7512 (license license:bsd-3)))
7513
7514 (define-public ghc-graphviz
7515 (package
7516 (name "ghc-graphviz")
7517 (version "2999.20.0.2")
7518 (source (origin
7519 (method url-fetch)
7520 (uri (string-append "https://hackage.haskell.org/package/"
7521 "graphviz/graphviz-" version ".tar.gz"))
7522 (sha256
7523 (base32
7524 "0kj7ap0gnliviq2p8lscw1m06capnsa90vpvcys24nqy5nw2wrp7"))))
7525 (build-system haskell-build-system)
7526 (inputs
7527 `(("ghc-quickcheck" ,ghc-quickcheck)
7528 ("ghc-colour" ,ghc-colour)
7529 ("ghc-dlist" ,ghc-dlist)
7530 ("ghc-fgl" ,ghc-fgl)
7531 ("ghc-fgl-arbitrary" ,ghc-fgl-arbitrary)
7532 ("ghc-polyparse" ,ghc-polyparse)
7533 ("ghc-temporary" ,ghc-temporary)
7534 ("ghc-text" ,ghc-text)
7535 ("ghc-wl-pprint-text" ,ghc-wl-pprint-text)))
7536 (native-inputs
7537 `(("ghc-hspec" ,ghc-hspec)
7538 ("graphviz" ,graphviz)
7539 ("hspec-discover" ,hspec-discover)))
7540 (home-page "https://hackage.haskell.org/package/graphviz")
7541 (synopsis "Bindings to Graphviz for graph visualisation")
7542 (description
7543 "This library provides bindings for the Dot language used by
7544 the @uref{https://graphviz.org/, Graphviz} suite of programs for
7545 visualising graphs, as well as functions to call those programs.
7546 Main features of the graphviz library include:
7547
7548 @enumerate
7549 @item Almost complete coverage of all Graphviz attributes and syntax
7550 @item Support for specifying clusters
7551 @item The ability to use a custom node type
7552 @item Functions for running a Graphviz layout tool with all specified output types
7553 @item Generate and parse Dot code with two options: strict and liberal
7554 @item Functions to convert FGL graphs and other graph-like data structures
7555 @item Round-trip support for passing an FGL graph through Graphviz to augment node
7556 and edge labels with positional information, etc.
7557 @end enumerate\n")
7558 (license license:bsd-3)))
7559
7560 (define-public ghc-constraints
7561 (package
7562 (name "ghc-constraints")
7563 (version "0.10.1")
7564 (source
7565 (origin
7566 (method url-fetch)
7567 (uri (string-append
7568 "https://hackage.haskell.org/package/constraints/constraints-"
7569 version ".tar.gz"))
7570 (sha256
7571 (base32
7572 "1xy3vv78jxc17hm0z7qqspxjwv7l2jbcbj670yrl2f053qkfr02q"))))
7573 (build-system haskell-build-system)
7574 (inputs
7575 `(("ghc-hashable" ,ghc-hashable)
7576 ("ghc-semigroups" ,ghc-semigroups)
7577 ("ghc-transformers-compat" ,ghc-transformers-compat)))
7578 (native-inputs
7579 `(("ghc-hspec" ,ghc-hspec)
7580 ("hspec-discover" ,hspec-discover)))
7581 (home-page "https://github.com/ekmett/constraints/")
7582 (synopsis "Constraint manipulation")
7583 (description
7584 "GHC 7.4 gave us the ability to talk about @code{ConstraintKinds}.
7585 They stopped crashing the compiler in GHC 7.6. This package provides
7586 a vocabulary for working with them.")
7587 (license license:bsd-3)))
7588
7589 (define-public ghc-lifted-async
7590 (package
7591 (name "ghc-lifted-async")
7592 (version "0.10.0.2")
7593 (source
7594 (origin
7595 (method url-fetch)
7596 (uri (string-append
7597 "https://hackage.haskell.org/package/lifted-async/lifted-async-"
7598 version ".tar.gz"))
7599 (sha256
7600 (base32
7601 "1073r512c1x2m1v0jar9bwqg656slg7jd1jhsyj6m8awgx1l1mwf"))))
7602 (build-system haskell-build-system)
7603 (inputs
7604 `(("ghc-async" ,ghc-async)
7605 ("ghc-lifted-base" ,ghc-lifted-base)
7606 ("ghc-transformers-base" ,ghc-transformers-base)
7607 ("ghc-monad-control" ,ghc-monad-control)
7608 ("ghc-constraints" ,ghc-constraints)
7609 ("ghc-hunit" ,ghc-hunit)
7610 ("ghc-tasty" ,ghc-tasty)
7611 ("ghc-tasty-expected-failure" ,ghc-tasty-expected-failure)
7612 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
7613 ("ghc-tasty-th" ,ghc-tasty-th)))
7614 (home-page "https://github.com/maoe/lifted-async")
7615 (synopsis "Run lifted IO operations asynchronously and wait for their results")
7616 (description
7617 "This package provides IO operations from @code{async} package lifted to any
7618 instance of @code{MonadBase} or @code{MonadBaseControl}.")
7619 (license license:bsd-3)))
7620
7621 ;; Ghc-shelly depends on ghc-system-filepath and ghc-system-fileio, who in turn depend on
7622 ;; ghc-chell and ghc-chell-quickcheck for the test phase. Ghc-chell depends on ghc-options
7623 ;; which depends on ghc-chell and ghc-chell-quickcheck.
7624 ;; Therefore we bootstrap it with tests disabled.
7625 (define ghc-system-filepath-bootstrap
7626 (package
7627 (name "ghc-system-filepath-bootstrap")
7628 (version "0.4.14")
7629 (source
7630 (origin
7631 (method url-fetch)
7632 (uri (string-append
7633 "https://hackage.haskell.org/package/system-filepath/system-filepath-"
7634 version ".tar.gz"))
7635 (sha256
7636 (base32
7637 "14yras4pz2dh55xpwmazcgxijvi8913pjgzb9iw50mjq1lycwmhn"))))
7638 (build-system haskell-build-system)
7639 (arguments
7640 `(#:tests? #f))
7641 (inputs
7642 `(("ghc-text" ,ghc-text)
7643 ("ghc-quickcheck" ,ghc-quickcheck)))
7644 (home-page "https://github.com/fpco/haskell-filesystem")
7645 (synopsis "High-level, byte-based file and directory path manipulations")
7646 (description
7647 "Provides a FilePath datatype and utility functions for operating on it.
7648 Unlike the filepath package, this package does not simply reuse String,
7649 increasing type safety.")
7650 (license license:expat)))
7651
7652 ;; See ghc-system-filepath-bootstrap. In addition this package depends on
7653 ;; ghc-system-filepath.
7654 (define ghc-system-fileio-bootstrap
7655 (package
7656 (name "ghc-system-fileio-bootstrap")
7657 (version "0.3.16.3")
7658 (source
7659 (origin
7660 (method url-fetch)
7661 (uri (string-append
7662 "https://hackage.haskell.org/package/system-fileio/system-fileio-"
7663 version ".tar.gz"))
7664 (sha256
7665 (base32
7666 "1484hcl27s2qcby8ws5djj11q9bz68bspcifz9h5gii2ndy70x9i"))))
7667 (build-system haskell-build-system)
7668 (arguments
7669 `(#:tests? #f))
7670 (inputs
7671 `(("ghc-system-filepath-bootstrap" ,ghc-system-filepath-bootstrap)
7672 ("ghc-text" ,ghc-text)
7673 ("ghc-temporary" ,ghc-temporary)))
7674 (home-page "https://github.com/fpco/haskell-filesystem")
7675 (synopsis "Consistent file system interaction across GHC versions")
7676 (description
7677 "This is a small wrapper around the directory, unix, and Win32 packages,
7678 for use with system-filepath. It provides a consistent API to the various
7679 versions of these packages distributed with different versions of GHC.
7680 In particular, this library supports working with POSIX files that have paths
7681 which can't be decoded in the current locale encoding.")
7682 (license license:expat)))
7683
7684 (define-public ghc-shelly
7685 (package
7686 (name "ghc-shelly")
7687 (version "1.8.1")
7688 (source
7689 (origin
7690 (method url-fetch)
7691 (uri (string-append
7692 "https://hackage.haskell.org/package/shelly/shelly-"
7693 version ".tar.gz"))
7694 (sha256
7695 (base32
7696 "023fbvbqs5gdwm30j5517gbdcc7fvz0md70dgwgpypkskj3i926y"))))
7697 (build-system haskell-build-system)
7698 (inputs
7699 `(("ghc-unix-compat" ,ghc-unix-compat)
7700 ("ghc-system-filepath-bootstrap" ,ghc-system-filepath-bootstrap)
7701 ("ghc-system-fileio-bootstrap" ,ghc-system-fileio-bootstrap)
7702 ("ghc-monad-control" ,ghc-monad-control)
7703 ("ghc-lifted-base" ,ghc-lifted-base)
7704 ("ghc-lifted-async" ,ghc-lifted-async)
7705 ("ghc-exceptions" ,ghc-exceptions)
7706 ("ghc-enclosed-exceptions" ,ghc-enclosed-exceptions)
7707 ("ghc-text" ,ghc-text)
7708 ("ghc-async" ,ghc-async)
7709 ("ghc-transformers-base" ,ghc-transformers-base)
7710 ("ghc-hunit" ,ghc-hunit)
7711 ("ghc-hspec" ,ghc-hspec)
7712 ("ghc-hspec-contrib" ,ghc-hspec-contrib)))
7713 (home-page "https://github.com/yesodweb/Shelly.hs")
7714 (synopsis "Shell-like (systems) programming in Haskell")
7715 (description
7716 "Shelly provides convenient systems programming in Haskell, similar in
7717 spirit to POSIX shells. Shelly is originally forked from the Shellish package.")
7718 (license license:bsd-3)))
7719
7720 ;; See ghc-system-filepath-bootstrap, chell and chell-quickcheck are required for tests.
7721 (define ghc-options-bootstrap
7722 (package
7723 (name "ghc-options-bootstrap")
7724 (version "1.2.1.1")
7725 (source
7726 (origin
7727 (method url-fetch)
7728 (uri (string-append
7729 "https://hackage.haskell.org/package/options/options-"
7730 version ".tar.gz"))
7731 (sha256
7732 (base32
7733 "0qjs0v1ny52w51n5582d4z8wy9h6n0zw1xb5dh686ff5wadflgi8"))))
7734 (build-system haskell-build-system)
7735 (arguments
7736 `(#:tests? #f))
7737 (inputs
7738 `(("ghc-monads-tf" ,ghc-monads-tf)))
7739 (home-page "https://john-millikin.com/software/haskell-options/")
7740 (synopsis "Powerful and easy-to-use command-line option parser")
7741 (description
7742 "The @code{options} package lets library and application developers
7743 easily work with command-line options.")
7744 (license license:expat)))
7745
7746 (define-public ghc-chell
7747 (package
7748 (name "ghc-chell")
7749 (version "0.4.0.2")
7750 (source
7751 (origin
7752 (method url-fetch)
7753 (uri (string-append
7754 "https://hackage.haskell.org/package/chell/chell-"
7755 version ".tar.gz"))
7756 (sha256
7757 (base32
7758 "10ingy9qnbmc8cqh4i9pskcw43l0mzk8f3d76b3qz3fig5ary3j9"))))
7759 (build-system haskell-build-system)
7760 (inputs
7761 `(("ghc-options-bootstrap" ,ghc-options-bootstrap)
7762 ("ghc-patience" ,ghc-patience)
7763 ("ghc-random" ,ghc-random)
7764 ("ghc-text" ,ghc-text)
7765 ("ghc-ansi-terminal" ,ghc-ansi-terminal)))
7766 (home-page "https://john-millikin.com/software/chell/")
7767 (synopsis "Simple and intuitive library for automated testing")
7768 (description
7769 "Chell is a simple and intuitive library for automated testing.
7770 It natively supports assertion-based testing, and can use companion
7771 libraries such as @code{chell-quickcheck} to support more complex
7772 testing strategies.")
7773 (license license:expat)))
7774
7775 (define ghc-chell-quickcheck-bootstrap
7776 (package
7777 (name "ghc-chell-quickcheck-bootstrap")
7778 (version "0.2.5.1")
7779 (source
7780 (origin
7781 (method url-fetch)
7782 (uri (string-append
7783 "https://hackage.haskell.org/package/chell-quickcheck/"
7784 "chell-quickcheck-" version ".tar.gz"))
7785 (sha256
7786 (base32
7787 "1iicsys9igx7m7n4l2b8djardmjy2ah5ibzp7kzs758h460fq53a"))))
7788 (build-system haskell-build-system)
7789 (inputs
7790 `(("ghc-chell" ,ghc-chell)
7791 ("ghc-random" ,ghc-random)
7792 ("ghc-quickcheck" ,ghc-quickcheck)))
7793 (arguments
7794 `(#:tests? #f
7795 #:phases
7796 (modify-phases %standard-phases
7797 (add-before 'configure 'update-constraints
7798 (lambda _
7799 (substitute* "chell-quickcheck.cabal"
7800 (("QuickCheck >= 2\\.3 && < 2\\.11")
7801 "QuickCheck >= 2.3 && < 2.12")))))))
7802 (home-page "https://john-millikin.com/software/chell/")
7803 (synopsis "QuickCheck support for the Chell testing library")
7804 (description "More complex tests for @code{chell}.")
7805 (license license:expat)))
7806
7807 (define-public ghc-chell-quickcheck
7808 (package
7809 (name "ghc-chell-quickcheck")
7810 (version "0.2.5.1")
7811 (source
7812 (origin
7813 (method url-fetch)
7814 (uri (string-append
7815 "https://hackage.haskell.org/package/chell-quickcheck/"
7816 "chell-quickcheck-" version ".tar.gz"))
7817 (sha256
7818 (base32
7819 "1iicsys9igx7m7n4l2b8djardmjy2ah5ibzp7kzs758h460fq53a"))))
7820 (build-system haskell-build-system)
7821 (arguments
7822 `(#:phases
7823 (modify-phases %standard-phases
7824 (add-before 'configure 'update-constraints
7825 (lambda _
7826 (substitute* "chell-quickcheck.cabal"
7827 (("QuickCheck >= 2\\.3 && < 2\\.11")
7828 "QuickCheck >= 2.3 && < 2.12")))))))
7829 (inputs
7830 `(("ghc-chell" ,ghc-chell)
7831 ("ghc-chell-quickcheck-bootstrap" ,ghc-chell-quickcheck-bootstrap)
7832 ("ghc-random" ,ghc-random)
7833 ("ghc-quickcheck" ,ghc-quickcheck)))
7834 (home-page "https://john-millikin.com/software/chell/")
7835 (synopsis "QuickCheck support for the Chell testing library")
7836 (description "More complex tests for @code{chell}.")
7837 (license license:expat)))
7838
7839 (define-public ghc-options
7840 (package
7841 (name "ghc-options")
7842 (version "1.2.1.1")
7843 (source
7844 (origin
7845 (method url-fetch)
7846 (uri (string-append
7847 "https://hackage.haskell.org/package/options/options-"
7848 version ".tar.gz"))
7849 (sha256
7850 (base32
7851 "0qjs0v1ny52w51n5582d4z8wy9h6n0zw1xb5dh686ff5wadflgi8"))))
7852 (build-system haskell-build-system)
7853 (inputs
7854 `(("ghc-monads-tf" ,ghc-monads-tf)
7855 ("ghc-chell" ,ghc-chell)
7856 ("ghc-chell-quickcheck" ,ghc-chell-quickcheck)))
7857 (home-page "https://john-millikin.com/software/haskell-options/")
7858 (synopsis "Powerful and easy-to-use command-line option parser")
7859 (description
7860 "The @code{options} package lets library and application developers
7861 easily work with command-line options.")
7862 (license license:expat)))
7863
7864 (define-public ghc-system-filepath
7865 (package
7866 (name "ghc-system-filepath")
7867 (version "0.4.14")
7868 (source
7869 (origin
7870 (method url-fetch)
7871 (uri (string-append
7872 "https://hackage.haskell.org/package/system-filepath/system-filepath-"
7873 version ".tar.gz"))
7874 (sha256
7875 (base32
7876 "14yras4pz2dh55xpwmazcgxijvi8913pjgzb9iw50mjq1lycwmhn"))))
7877 (build-system haskell-build-system)
7878 ;; FIXME: One of the tests fails:
7879 ;; [ FAIL ] tests.validity.posix
7880 ;; note: seed=7310214548328823169
7881 ;; *** Failed! Falsifiable (after 24 tests):
7882 ;; 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"
7883 (arguments `(#:tests? #f))
7884 (inputs
7885 `(("ghc-text" ,ghc-text)
7886 ("ghc-chell" ,ghc-chell)
7887 ("ghc-chell-quickcheck" ,ghc-chell-quickcheck)
7888 ("ghc-quickcheck" ,ghc-quickcheck)))
7889 (home-page "https://github.com/fpco/haskell-filesystem")
7890 (synopsis "High-level, byte-based file and directory path manipulations")
7891 (description
7892 "Provides a FilePath datatype and utility functions for operating on it.
7893 Unlike the filepath package, this package does not simply reuse String,
7894 increasing type safety.")
7895 (license license:expat)))
7896
7897 (define-public ghc-system-fileio
7898 (package
7899 (name "ghc-system-fileio")
7900 (version "0.3.16.3")
7901 (source
7902 (origin
7903 (method url-fetch)
7904 (uri (string-append
7905 "https://hackage.haskell.org/package/system-fileio/system-fileio-"
7906 version ".tar.gz"))
7907 (sha256
7908 (base32
7909 "1484hcl27s2qcby8ws5djj11q9bz68bspcifz9h5gii2ndy70x9i"))))
7910 (build-system haskell-build-system)
7911 (inputs
7912 `(("ghc-system-filepath" ,ghc-system-filepath)
7913 ("ghc-text" ,ghc-text)
7914 ("ghc-chell" ,ghc-chell)
7915 ("ghc-temporary" ,ghc-temporary)))
7916 (home-page "https://github.com/fpco/haskell-filesystem")
7917 (synopsis "Consistent file system interaction across GHC versions")
7918 (description
7919 "This is a small wrapper around the directory, unix, and Win32 packages,
7920 for use with system-filepath. It provides a consistent API to the various
7921 versions of these packages distributed with different versions of GHC.
7922 In particular, this library supports working with POSIX files that have paths
7923 which can't be decoded in the current locale encoding.")
7924 (license license:expat)))
7925
7926 (define-public ghc-storable-complex
7927 (package
7928 (name "ghc-storable-complex")
7929 (version "0.2.2")
7930 (source
7931 (origin
7932 (method url-fetch)
7933 (uri (string-append
7934 "https://hackage.haskell.org/package/storable-complex/storable-complex-"
7935 version ".tar.gz"))
7936 (sha256
7937 (base32 "01kwwkpbfjrv26vj83cd92px5qbq1bpgxj0r45534aksqhany1xb"))))
7938 (build-system haskell-build-system)
7939 (home-page "https://github.com/cartazio/storable-complex")
7940 (synopsis "Haskell Storable instance for Complex")
7941 (description "This package provides a Haskell library including a
7942 Storable instance for Complex which is binary compatible with C99, C++
7943 and Fortran complex data types.")
7944 (license license:bsd-3)))
7945
7946 (define-public ghc-hmatrix
7947 (package
7948 (name "ghc-hmatrix")
7949 (version "0.19.0.0")
7950 (source
7951 (origin
7952 (method url-fetch)
7953 (uri (string-append
7954 "https://hackage.haskell.org/package/hmatrix/hmatrix-"
7955 version ".tar.gz"))
7956 (sha256
7957 (base32 "10jd69nby29dggghcyjk6ykyr5wrn97nrv1dkpyrp0y5xm12xssj"))))
7958 (build-system haskell-build-system)
7959 (inputs
7960 `(("ghc-random" ,ghc-random)
7961 ("ghc-split" ,ghc-split)
7962 ("ghc-storable-complex" ,ghc-storable-complex)
7963 ("ghc-semigroups" ,ghc-semigroups)
7964 ("ghc-vector" ,ghc-vector)
7965 ;;("openblas" ,openblas)
7966 ("lapack" ,lapack)))
7967 ;; Guix's OpenBLAS is built with the flag "NO_LAPACK=1" which
7968 ;; disables inclusion of the LAPACK functions.
7969 ;; (arguments `(#:configure-flags '("--flags=openblas")))
7970 (home-page "https://github.com/albertoruiz/hmatrix")
7971 (synopsis "Haskell numeric linear algebra library")
7972 (description "The HMatrix package provices a Haskell library for
7973 dealing with linear systems, matrix decompositions, and other
7974 numerical computations based on BLAS and LAPACK.")
7975 (license license:bsd-3)))
7976
7977 (define-public ghc-hmatrix-gsl
7978 (package
7979 (name "ghc-hmatrix-gsl")
7980 (version "0.19.0.1")
7981 (source
7982 (origin
7983 (method url-fetch)
7984 (uri (string-append
7985 "https://hackage.haskell.org/package/hmatrix-gsl/hmatrix-gsl-"
7986 version ".tar.gz"))
7987 (sha256
7988 (base32 "0v6dla426x4ywaq59jm89ql1i42n39iw6z0j378xwb676v9kfxhm"))))
7989 (build-system haskell-build-system)
7990 (inputs
7991 `(("ghc-hmatrix" ,ghc-hmatrix)
7992 ("ghc-vector" ,ghc-vector)
7993 ("ghc-random" ,ghc-random)
7994 ("gsl" ,gsl)))
7995 (native-inputs `(("pkg-config" ,pkg-config)))
7996 (home-page "https://github.com/albertoruiz/hmatrix")
7997 (synopsis "Haskell GSL binding")
7998 (description "This Haskell library provides a purely functional
7999 interface to selected numerical computations, internally implemented
8000 using GSL.")
8001 (license license:gpl3+)))
8002
8003 (define-public ghc-hmatrix-special
8004 (package
8005 (name "ghc-hmatrix-special")
8006 (version "0.19.0.0")
8007 (source
8008 (origin
8009 (method url-fetch)
8010 (uri
8011 (string-append
8012 "https://hackage.haskell.org/package/hmatrix-special/hmatrix-special-"
8013 version ".tar.gz"))
8014 (sha256
8015 (base32 "1mywr61kr852sbff26n9x95kswx9l4ycbv6s68qsbkh02xzqq7qz"))))
8016 (build-system haskell-build-system)
8017 (inputs
8018 `(("ghc-hmatrix" ,ghc-hmatrix)
8019 ("ghc-hmatrix-gsl" ,ghc-hmatrix-gsl)))
8020 (home-page "https://github.com/albertoruiz/hmatrix")
8021 (synopsis "Haskell interface to GSL special functions")
8022 (description "This library provides an interface to GSL special
8023 functions for Haskell.")
8024 (license license:gpl3+)))
8025
8026 (define-public ghc-hmatrix-gsl-stats
8027 (package
8028 (name "ghc-hmatrix-gsl-stats")
8029 (version "0.4.1.7")
8030 (source
8031 (origin
8032 (method url-fetch)
8033 (uri
8034 (string-append
8035 "https://hackage.haskell.org/package/hmatrix-gsl-stats/hmatrix-gsl-stats-"
8036 version ".tar.gz"))
8037 (sha256
8038 (base32 "1gslgk58lzin43cvbpivhw7nrn9qyaa6qwhy1z9ypvyal5p8n3sa"))))
8039 (build-system haskell-build-system)
8040 (inputs
8041 `(("ghc-vector" ,ghc-vector)
8042 ("ghc-storable-complex" ,ghc-storable-complex)
8043 ("ghc-hmatrix" ,ghc-hmatrix)
8044 ("gsl" ,gsl)))
8045 (native-inputs `(("pkg-config" ,pkg-config)))
8046 (home-page "http://code.haskell.org/hmatrix-gsl-stats")
8047 (synopsis "GSL Statistics interface for Haskell")
8048 (description "This Haskell library provides a purely functional
8049 interface for statistics based on hmatrix and GSL.")
8050 (license license:bsd-3)))
8051
8052 (define-public ghc-easyplot
8053 (package
8054 (name "ghc-easyplot")
8055 (version "1.0")
8056 (source
8057 (origin
8058 (method url-fetch)
8059 (uri (string-append
8060 "https://hackage.haskell.org/package/easyplot/easyplot-"
8061 version ".tar.gz"))
8062 (sha256
8063 (base32 "18kndgvdj2apjpfga6fp7m16y1gx8zrwp3c5vfj03sx4v6jvciqk"))))
8064 (build-system haskell-build-system)
8065 (propagated-inputs `(("gnuplot" ,gnuplot)))
8066 (arguments
8067 `(#:phases (modify-phases %standard-phases
8068 (add-after 'unpack 'fix-setup-suffix
8069 (lambda _ (rename-file "Setup.lhs" "Setup.hs") #t)))))
8070 (home-page "https://hub.darcs.net/scravy/easyplot")
8071 (synopsis "Haskell plotting library based on gnuplot")
8072 (description "This package provides a plotting library for
8073 Haskell, using gnuplot for rendering.")
8074 (license license:expat)))
8075
8076 (define-public ghc-hashtables
8077 (package
8078 (name "ghc-hashtables")
8079 (version "1.2.3.1")
8080 (source
8081 (origin
8082 (method url-fetch)
8083 (uri (string-append
8084 "https://hackage.haskell.org/package/hashtables/hashtables-"
8085 version ".tar.gz"))
8086 (sha256
8087 (base32 "1giw9caajr07slf09j7zry9b0kvm4yj9q78zy1mawzi6gk3wglcg"))))
8088 (build-system haskell-build-system)
8089 (inputs
8090 `(("ghc-hashable" ,ghc-hashable)
8091 ("ghc-primitive" ,ghc-primitive)
8092 ("ghc-vector" ,ghc-vector)))
8093 (home-page "https://github.com/gregorycollins/hashtables")
8094 (synopsis "Haskell Mutable hash tables in the ST monad")
8095 (description "This package provides a Haskell library including a
8096 couple of different implementations of mutable hash tables in the ST
8097 monad, as well as a typeclass abstracting their common operations, and
8098 a set of wrappers to use the hash tables in the IO monad.")
8099 (license license:bsd-3)))
8100
8101 (define-public ghc-data-accessor
8102 (package
8103 (name "ghc-data-accessor")
8104 (version "0.2.2.7")
8105 (source
8106 (origin
8107 (method url-fetch)
8108 (uri (string-append
8109 "mirror://hackage/package/data-accessor/data-accessor-"
8110 version ".tar.gz"))
8111 (sha256
8112 (base32 "1vf2g1gac3rm32g97rl0fll51m88q7ry4m6khnl5j47qsmx24r9l"))))
8113 (build-system haskell-build-system)
8114 (home-page "https://www.haskell.org/haskellwiki/Record_access")
8115 (synopsis
8116 "Haskell utilities for accessing and manipulating fields of records")
8117 (description "This package provides Haskell modules for accessing and
8118 manipulating fields of records.")
8119 (license license:bsd-3)))
8120
8121 (define-public ghc-data-accessor-transformers
8122 (package
8123 (name "ghc-data-accessor-transformers")
8124 (version "0.2.1.7")
8125 (source
8126 (origin
8127 (method url-fetch)
8128 (uri (string-append
8129 "mirror://hackage/package/data-accessor-transformers/"
8130 "data-accessor-transformers-" version ".tar.gz"))
8131 (sha256
8132 (base32 "0yp030vafbpddl27m606aibbbr5ar5j5bsv4bksscz3cq4yq5j10"))))
8133 (build-system haskell-build-system)
8134 (inputs `(("ghc-data-accessor" ,ghc-data-accessor)))
8135 (home-page "https://www.haskell.org/haskellwiki/Record_access")
8136 (synopsis "Use Accessor to access state in transformers State monad")
8137 (description "This package provides Haskell modules to allow use of
8138 Accessor to access state in transformers State monad.")
8139 (license license:bsd-3)))
8140
8141 (define-public ghc-utility-ht
8142 (package
8143 (name "ghc-utility-ht")
8144 (version "0.0.14")
8145 (home-page "https://hackage.haskell.org/package/utility-ht")
8146 (source
8147 (origin
8148 (method url-fetch)
8149 (uri (string-append home-page "/utility-ht-" version ".tar.gz"))
8150 (sha256
8151 (base32 "1a7bgk7wv7sqbxbiv7kankiimr3wij7zdm7s83zwsf886ghyxhk9"))))
8152 (build-system haskell-build-system)
8153 (inputs `(("ghc-quickcheck" ,ghc-quickcheck)))
8154 (synopsis "Haskell helper functions for Lists, Maybes, Tuples, Functions")
8155 (description "This package includes Hakell modules providing various
8156 helper functions for Lists, Maybes, Tuples, Functions.")
8157 (license license:bsd-3)))
8158
8159 (define-public ghc-gnuplot
8160 (package
8161 (name "ghc-gnuplot")
8162 (version "0.5.5.2")
8163 (source
8164 (origin
8165 (method url-fetch)
8166 (uri (string-append
8167 "mirror://hackage/package/gnuplot/gnuplot-"
8168 version ".tar.gz"))
8169 (sha256
8170 (base32 "1mlppnc13ygjzmf6ldydys4wvy35yb3xjwwfgf9rbi7nfcqjr6mn"))))
8171 (build-system haskell-build-system)
8172 (inputs
8173 `(("ghc-temporary" ,ghc-temporary)
8174 ("ghc-utility-ht" ,ghc-utility-ht)
8175 ("ghc-data-accessor-transformers" ,ghc-data-accessor-transformers)
8176 ("ghc-data-accessor" ,ghc-data-accessor)
8177 ("ghc-semigroups" ,ghc-semigroups)
8178 ("gnuplot" ,gnuplot)))
8179 (arguments
8180 `(#:phases
8181 (modify-phases %standard-phases
8182 (add-before 'configure 'fix-path-to-gnuplot
8183 (lambda* (#:key inputs #:allow-other-keys)
8184 (let ((gnuplot (assoc-ref inputs "gnuplot")))
8185 (substitute* "os/generic/Graphics/Gnuplot/Private/OS.hs"
8186 (("(gnuplotName = ).*$" all cmd)
8187 (string-append cmd "\"" gnuplot "/bin/gnuplot\"")))))))))
8188 (home-page "https://www.haskell.org/haskellwiki/Gnuplot")
8189 (synopsis "2D and 3D plots using gnuplot")
8190 (description "This package provides a Haskell module for creating 2D and
8191 3D plots using gnuplot.")
8192 (license license:bsd-3)))
8193
8194 (define-public ghc-hinotify
8195 (package
8196 (name "ghc-hinotify")
8197 (version "0.3.10")
8198 (source (origin
8199 (method url-fetch)
8200 (uri (string-append
8201 "https://hackage.haskell.org/package/hinotify/"
8202 "hinotify-" version ".tar.gz"))
8203 (sha256
8204 (base32
8205 "17ax3n68a5c2ddazp86aciliskrh6znd3bnry0wcllmb6dbpsaxg"))))
8206 (build-system haskell-build-system)
8207 (inputs
8208 `(("ghc-async" ,ghc-async)))
8209 (home-page "https://github.com/kolmodin/hinotify.git")
8210 (synopsis "Haskell binding to inotify")
8211 (description "This library provides a wrapper to the Linux kernel's inotify
8212 feature, allowing applications to subscribe to notifications when a file is
8213 accessed or modified.")
8214 (license license:bsd-3)))
8215
8216 (define-public ghc-fsnotify
8217 (package
8218 (name "ghc-fsnotify")
8219 (version "0.3.0.1")
8220 (source (origin
8221 (method url-fetch)
8222 (uri (string-append
8223 "https://hackage.haskell.org/package/fsnotify/"
8224 "fsnotify-" version ".tar.gz"))
8225 (sha256
8226 (base32
8227 "19bdbz9wb9jvln6yg6qm0hz0w84bypvkxf0wjhgrgd52f9gidlny"))))
8228 (build-system haskell-build-system)
8229 (inputs
8230 `(("ghc-text" ,ghc-text)
8231 ("ghc-async" ,ghc-async)
8232 ("ghc-unix-compat" ,ghc-unix-compat)
8233 ("ghc-hinotify" ,ghc-hinotify)
8234 ("ghc-tasty" ,ghc-tasty)
8235 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
8236 ("ghc-random" ,ghc-random)
8237 ("ghc-shelly" ,ghc-shelly)
8238 ("ghc-temporary" ,ghc-temporary)))
8239 (home-page "https://github.com/haskell-fswatch/hfsnotify")
8240 (synopsis "Cross platform library for file change notification.")
8241 (description "Cross platform library for file creation, modification, and
8242 deletion notification. This library builds upon existing libraries for platform
8243 specific Windows, Mac, and Linux file system event notification.")
8244 (license license:bsd-3)))
8245
8246 (define-public ghc-ieee754
8247 (package
8248 (name "ghc-ieee754")
8249 (version "0.8.0")
8250 (source (origin
8251 (method url-fetch)
8252 (uri (string-append
8253 "https://hackage.haskell.org/package/ieee754/"
8254 "ieee754-" version ".tar.gz"))
8255 (sha256
8256 (base32
8257 "1lcs521g9lzy9d7337vg4w7q7s8500rfqy7rcifcz6pm6yfgyb8f"))))
8258 (build-system haskell-build-system)
8259 (home-page "https://github.com/patperry/hs-ieee754")
8260 (synopsis "Utilities for dealing with IEEE floating point numbers")
8261 (description "Utilities for dealing with IEEE floating point numbers,
8262 ported from the Tango math library; approximate and exact equality comparisons
8263 for general types.")
8264 (license license:bsd-3)))
8265
8266 (define-public ghc-terminal-size
8267 (package
8268 (name "ghc-terminal-size")
8269 (version "0.3.2.1")
8270 (source (origin
8271 (method url-fetch)
8272 (uri (string-append
8273 "https://hackage.haskell.org/package/terminal-size/"
8274 "terminal-size-" version ".tar.gz"))
8275 (sha256
8276 (base32
8277 "0n4nvj3dbj9gxfnprgish45asn9z4dipv9j98s8i7g2n8yb3xhmm"))))
8278 (build-system haskell-build-system)
8279 (home-page "https://hackage.haskell.org/package/terminal-size")
8280 (synopsis "Get terminal window height and width")
8281 (description "Get terminal window height and width without ncurses
8282 dependency.")
8283 (license license:bsd-3)))
8284
8285 (define-public ghc-language-c
8286 (package
8287 (name "ghc-language-c")
8288 (version "0.8.1")
8289 (source
8290 (origin
8291 (method url-fetch)
8292 (uri (string-append "https://hackage.haskell.org/package/"
8293 "language-c/language-c-" version ".tar.gz"))
8294 (sha256
8295 (base32
8296 "0sdkjj0hq8p69fcdm6ljbjkjvrsrb8a6rl5dq6dj6byj32ajrm3d"))))
8297 (build-system haskell-build-system)
8298 (inputs `(("ghc-syb" ,ghc-syb)))
8299 (native-inputs
8300 `(("ghc-happy" ,ghc-happy)
8301 ("ghc-alex" ,ghc-alex)))
8302 (home-page "https://visq.github.io/language-c/")
8303 (synopsis "Analysis and generation of C code")
8304 (description
8305 "Language C is a Haskell library for the analysis and generation of C code.
8306 It features a complete, well-tested parser and pretty printer for all of C99
8307 and a large set of GNU extensions.")
8308 (license license:bsd-3)))
8309
8310 (define-public ghc-markdown-unlit
8311 (package
8312 (name "ghc-markdown-unlit")
8313 (version "0.5.0")
8314 (source (origin
8315 (method url-fetch)
8316 (uri (string-append
8317 "mirror://hackage/package/markdown-unlit/"
8318 "markdown-unlit-" version ".tar.gz"))
8319 (sha256
8320 (base32
8321 "1gy79vr85vcp13rdjh0hz7zv6daqqffww4j0cqn2lpjjh9xhsbg7"))))
8322 (build-system haskell-build-system)
8323 (inputs
8324 `(("ghc-base-compat" ,ghc-base-compat)
8325 ("ghc-hspec" ,ghc-hspec)
8326 ("ghc-quickcheck" ,ghc-quickcheck)
8327 ("ghc-silently" ,ghc-silently)
8328 ("ghc-stringbuilder" ,ghc-stringbuilder)
8329 ("ghc-temporary" ,ghc-temporary)
8330 ("hspec-discover" ,hspec-discover)))
8331 (home-page "https://github.com/sol/markdown-unlit#readme")
8332 (synopsis "Literate Haskell support for Markdown")
8333 (description "This package allows you to have a README.md that at the
8334 same time is a literate Haskell program.")
8335 (license license:expat)))
8336
8337 (define-public corrode
8338 (let ((commit "b6699fb2fa552a07c6091276285a44133e5c9789"))
8339 (package
8340 (name "corrode")
8341 (version (string-append "0.0.1-" (string-take commit 7)))
8342 (source
8343 (origin
8344 (method git-fetch)
8345 (uri (git-reference
8346 (url "https://github.com/jameysharp/corrode.git")
8347 (commit "b6699fb2fa552a07c6091276285a44133e5c9789")))
8348 (file-name
8349 (string-append name "-" version "-checkout"))
8350 (sha256
8351 (base32 "02v0yyj6sk4gpg2222wzsdqjxn8w66scbnf6b20x0kbmc69qcz4r"))))
8352 (build-system haskell-build-system)
8353 (inputs
8354 `(("ghc-language-c" ,ghc-language-c)
8355 ("ghc-markdown-unlit" ,ghc-markdown-unlit)))
8356 (home-page "https://github.com/jameysharp/corrode")
8357 (synopsis "Automatic semantics-preserving translation from C to Rust")
8358 (description
8359 "This program reads a C source file and prints an equivalent module in
8360 Rust syntax. It is intended to be useful for two different purposes:
8361
8362 @enumerate
8363 @item Partial automation for migrating legacy code that was implemented in C.
8364 @item A new, complementary approach to static analysis for C programs.
8365 @end enumerate\n")
8366 (license license:gpl2+))))
8367
8368 (define-public ghc-wave
8369 (package
8370 (name "ghc-wave")
8371 (version "0.1.5")
8372 (source (origin
8373 (method url-fetch)
8374 (uri (string-append
8375 "https://hackage.haskell.org/package/wave/wave-"
8376 version
8377 ".tar.gz"))
8378 (sha256
8379 (base32
8380 "03zycmwrchhqvi37fdvlzz2d1vl4hy0i8xyys1zznw38qfq0h2i5"))))
8381 (build-system haskell-build-system)
8382 (arguments
8383 '(#:phases
8384 (modify-phases %standard-phases
8385 (add-before 'configure 'update-constraints
8386 (lambda _
8387 (substitute* "wave.cabal"
8388 (("temporary.* < 1\\.3")
8389 "temporary >= 1.1 && < 1.4")))))))
8390 (inputs
8391 `(("ghc-cereal" ,ghc-cereal)
8392 ("ghc-data-default-class"
8393 ,ghc-data-default-class)
8394 ("ghc-quickcheck" ,ghc-quickcheck)
8395 ("ghc-temporary" ,ghc-temporary)))
8396 (native-inputs
8397 `(("hspec-discover" ,hspec-discover)
8398 ("ghc-hspec" ,ghc-hspec)))
8399 (home-page "https://github.com/mrkkrp/wave")
8400 (synopsis "Work with WAVE and RF64 files in Haskell")
8401 (description "This package allows you to work with WAVE and RF64
8402 files in Haskell.")
8403 (license license:bsd-3)))
8404
8405 (define-public ghc-hslogger
8406 (package
8407 (name "ghc-hslogger")
8408 (version "1.2.10")
8409 (source
8410 (origin
8411 (method url-fetch)
8412 (uri (string-append "https://hackage.haskell.org/package/"
8413 "hslogger-" version "/" "hslogger-"
8414 version ".tar.gz"))
8415 (sha256 (base32
8416 "0as5gvlh6pi2gflakp695qnlizyyp059dqrhvjl4gjxalja6xjnp"))))
8417 (build-system haskell-build-system)
8418 (inputs
8419 `(("ghc-network" ,ghc-network)
8420 ("ghc-old-locale" ,ghc-old-locale)))
8421 (native-inputs
8422 `(("ghc-hunit" ,ghc-hunit)))
8423 (home-page "https://software.complete.org/hslogger")
8424 (synopsis "Logging framework for Haskell, similar to Python's logging module")
8425 (description "Hslogger lets each log message have a priority and source be
8426 associated with it. The programmer can then define global handlers that route
8427 or filter messages based on the priority and source. It also has a syslog
8428 handler built in.")
8429 (license license:bsd-3)))
8430
8431 (define-public ghc-unexceptionalio
8432 (package
8433 (name "ghc-unexceptionalio")
8434 (version "0.4.0")
8435 (source
8436 (origin
8437 (method url-fetch)
8438 (uri (string-append "https://hackage.haskell.org/package/"
8439 "unexceptionalio-" version "/" "unexceptionalio-"
8440 version ".tar.gz"))
8441 (sha256 (base32 "09gynk472l7nn5l2w320n4dwigwp0wh0shfp6dyw6r5h2jdxz18p"))))
8442 (build-system haskell-build-system)
8443 (home-page "https://github.com/singpolyma/unexceptionalio")
8444 (synopsis "IO without any non-error, synchronous exceptions")
8445 (description "When you've caught all the exceptions that can be
8446 handled safely, this is what you're left with.")
8447 (license license:isc)))
8448
8449 (define-public ghc-json
8450 (package
8451 (name "ghc-json")
8452 (version "0.9.2")
8453 (source
8454 (origin
8455 (method url-fetch)
8456 (uri (string-append "https://hackage.haskell.org/package/json/"
8457 "json-" version ".tar.gz"))
8458 (sha256
8459 (base32
8460 "13kkfgx58z18jphbg56jn08jn72wi3kvfndlwwx87hqwg7x1dfz6"))))
8461 (build-system haskell-build-system)
8462 (inputs
8463 `(("ghc-syb" ,ghc-syb)
8464 ("ghc-text" ,ghc-text)
8465 ("ghc-parsec" ,ghc-parsec)))
8466 (home-page "https://hackage.haskell.org/package/json")
8467 (synopsis "Serializes Haskell data to and from JSON")
8468 (description "This package provides a parser and pretty printer for
8469 converting between Haskell values and JSON.
8470 JSON (JavaScript Object Notation) is a lightweight data-interchange format.")
8471 (license license:bsd-3)))
8472
8473 (define-public ghc-esqueleto
8474 (let ((version "2.5.3")
8475 (revision "1")
8476 (commit "b81e0d951e510ebffca03c5a58658ad884cc6fbd"))
8477 (package
8478 (name "ghc-esqueleto")
8479 (version (git-version version revision commit))
8480 (source
8481 (origin
8482 (method git-fetch)
8483 (uri (git-reference
8484 (url "https://github.com/bitemyapp/esqueleto")
8485 (commit commit)))
8486 (file-name (git-file-name name version))
8487 (sha256
8488 (base32
8489 "0lz1qxms7cfg5p3j37inlych0r2fwhm8xbarcys3df9m7jy9nixa"))))
8490 (build-system haskell-build-system)
8491 (arguments
8492 `(#:haddock? #f ; Haddock reports an internal error.
8493 #:phases
8494 (modify-phases %standard-phases
8495 ;; This package normally runs tests for the MySQL, PostgreSQL, and
8496 ;; SQLite backends. Since we only have Haskell packages for
8497 ;; SQLite, we remove the other two test suites. FIXME: Add the
8498 ;; other backends and run all three test suites.
8499 (add-before 'configure 'remove-non-sqlite-test-suites
8500 (lambda _
8501 (use-modules (ice-9 rdelim))
8502 (with-atomic-file-replacement "esqueleto.cabal"
8503 (lambda (in out)
8504 (let loop ((line (read-line in 'concat)) (deleting? #f))
8505 (cond
8506 ((eof-object? line) #t)
8507 ((string-every char-set:whitespace line)
8508 (unless deleting? (display line out))
8509 (loop (read-line in 'concat) #f))
8510 ((member line '("test-suite mysql\n"
8511 "test-suite postgresql\n"))
8512 (loop (read-line in 'concat) #t))
8513 (else
8514 (unless deleting? (display line out))
8515 (loop (read-line in 'concat) deleting?)))))))))))
8516 (inputs
8517 `(("ghc-blaze-html" ,ghc-blaze-html)
8518 ("ghc-conduit" ,ghc-conduit)
8519 ("ghc-monad-logger" ,ghc-monad-logger)
8520 ("ghc-persistent" ,ghc-persistent)
8521 ("ghc-resourcet" ,ghc-resourcet)
8522 ("ghc-tagged" ,ghc-tagged)
8523 ("ghc-text" ,ghc-text)
8524 ("ghc-unliftio" ,ghc-unliftio)
8525 ("ghc-unordered-containers" ,ghc-unordered-containers)))
8526 (native-inputs
8527 `(("ghc-hspec" ,ghc-hspec)
8528 ("ghc-persistent-sqlite" ,ghc-persistent-sqlite)
8529 ("ghc-persistent-template" ,ghc-persistent-template)))
8530 (home-page "https://github.com/bitemyapp/esqueleto")
8531 (synopsis "Type-safe embedded domain specific language for SQL queries")
8532 (description "This library provides a type-safe embedded domain specific
8533 language (EDSL) for SQL queries that works with SQL backends as provided by
8534 @code{ghc-persistent}. Its language closely resembles SQL, so you don't have
8535 to learn new concepts, just new syntax, and it's fairly easy to predict the
8536 generated SQL and optimize it for your backend.")
8537 (license license:bsd-3))))
8538
8539 (define-public shellcheck
8540 (package
8541 (name "shellcheck")
8542 (version "0.5.0")
8543 (source
8544 (origin
8545 (method url-fetch)
8546 (uri (string-append
8547 "https://hackage.haskell.org/package/ShellCheck/ShellCheck-"
8548 version ".tar.gz"))
8549 (sha256
8550 (base32
8551 "0z1hscbr11hwkq8k1v0vaa947hb9m6k4cm831jk1gpj8dxrk151b"))
8552 (file-name (string-append name "-" version ".tar.gz"))))
8553 (build-system haskell-build-system)
8554 (inputs
8555 `(("ghc-aeson" ,ghc-aeson)
8556 ("ghc-quickcheck" ,ghc-quickcheck)
8557 ("ghc-parsec" ,ghc-parsec)
8558 ("ghc-regex-tdfa" ,ghc-regex-tdfa)))
8559 (home-page "https://github.com/koalaman/shellcheck")
8560 (synopsis "Static analysis for shell scripts")
8561 (description "@code{shellcheck} provides static analysis for
8562 @command{bash} and @command{sh} shell scripts.
8563 It gives warnings and suggestions in order to:
8564
8565 @enumerate
8566 @item Point out and clarify typical beginner's syntax issues that cause
8567 a shell to give cryptic error messages.
8568 @item Point out and clarify typical intermediate level semantic problems
8569 that cause a shell to behave strangely and counter-intuitively.
8570 @item Point out subtle caveats, corner cases and pitfalls that may cause an
8571 advanced user's otherwise working script to fail under future circumstances.
8572 @end enumerate")
8573 (license license:gpl3+)))
8574
8575 (define-public ghc-simple-sendfile
8576 (package
8577 (name "ghc-simple-sendfile")
8578 (version "0.2.27")
8579 (source
8580 (origin
8581 (method url-fetch)
8582 (uri (string-append "https://hackage.haskell.org/package/"
8583 "simple-sendfile-" version "/"
8584 "simple-sendfile-" version ".tar.gz"))
8585 (sha256
8586 (base32
8587 "1bwwqzcm56m2w4ymsa054sxmpbj76h9pvb0jf8zxp8lr41cp51gn"))))
8588 (build-system haskell-build-system)
8589 (inputs
8590 `(("ghc-conduit" ,ghc-conduit)
8591 ("ghc-conduit-extra" ,ghc-conduit-extra)
8592 ("ghc-network" ,ghc-network)
8593 ("ghc-resourcet" ,ghc-resourcet)))
8594 (native-inputs
8595 `(("ghc-hspec" ,ghc-hspec)
8596 ("hspec-discover" ,hspec-discover)))
8597 (home-page "https://github.com/kazu-yamamoto/simple-sendfile")
8598 (synopsis "Cross platform library for the sendfile system call")
8599 (description "This library tries to call minimum system calls which
8600 are the bottleneck of web servers.")
8601 (license license:bsd-3)))
8602
8603 (define-public ghc-hex
8604 (package
8605 (name "ghc-hex")
8606 (version "0.1.2")
8607 (source
8608 (origin
8609 (method url-fetch)
8610 (uri (string-append "https://hackage.haskell.org/package/"
8611 "hex-" version "/"
8612 "hex-" version ".tar.gz"))
8613 (sha256
8614 (base32
8615 "1v31xiaivrrn0q2jz8919wvkjplv1kxna5ajhsj701fqxm1i5vhj"))))
8616 (build-system haskell-build-system)
8617 (home-page "https://hackage.haskell.org/package/hex")
8618 (synopsis "Convert strings into hexadecimal and back")
8619 (description "This package provides conversion functions between
8620 bytestrings and their hexademical representation.")
8621 (license license:bsd-3)))
8622
8623 (define-public ghc-psqueues
8624 (package
8625 (name "ghc-psqueues")
8626 (version "0.2.7.0")
8627 (source
8628 (origin
8629 (method url-fetch)
8630 (uri (string-append "https://hackage.haskell.org/package/"
8631 "psqueues-" version "/"
8632 "psqueues-" version ".tar.gz"))
8633 (sha256
8634 (base32
8635 "1sjgc9bxh63kkdp59nbirx3xazr02ia5yhp4f4a0jnq1hj465wsc"))))
8636 (build-system haskell-build-system)
8637 (inputs
8638 `(("ghc-hashable" ,ghc-hashable)))
8639 (native-inputs
8640 `(("ghc-hunit" ,ghc-hunit)
8641 ("ghc-quickcheck" ,ghc-quickcheck)
8642 ("ghc-tagged" ,ghc-tagged)
8643 ("ghc-test-framework" ,ghc-test-framework)
8644 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
8645 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
8646 (home-page "https://github.com/jaspervdj/psqueues")
8647 (synopsis "Pure priority search queues")
8648 (description "The psqueues package provides
8649 @uref{https://en.wikipedia.org/wiki/Priority_queue, Priority Search Queues} in
8650 three different flavors:
8651
8652 @itemize
8653 @item @code{OrdPSQ k p v}, which uses the @code{Ord k} instance to provide
8654 fast insertion, deletion and lookup. This implementation is based on Ralf
8655 Hinze's @uref{http://citeseer.ist.psu.edu/hinze01simple.html, A Simple
8656 Implementation Technique for Priority Search Queues}.
8657
8658 Hence, it is similar to the @uref{https://hackage.haskell.org/package/PSQueue,
8659 PSQueue} library, although it is considerably faster and provides a slightly
8660 different API.
8661
8662 @item @code{IntPSQ p v} is a far more efficient implementation. It fixes the
8663 key type to @code{Int} and uses a
8664 @code{https://en.wikipedia.org/wiki/Radix_tree, radix tree} (like @code{IntMap})
8665 with an additional min-heap property.
8666
8667 @item @code{HashPSQ k p v} is a fairly straightforward extension
8668 of @code{IntPSQ}: it simply uses the keys' hashes as indices in the
8669 @code{IntPSQ}. If there are any hash collisions, it uses an
8670 @code{OrdPSQ} to resolve those. The performance of this implementation
8671 is comparable to that of @code{IntPSQ}, but it is more widely
8672 applicable since the keys are not restricted to @code{Int},
8673 but rather to any @code{Hashable} datatype.
8674 @end itemize
8675
8676 Each of the three implementations provides the same API, so they can
8677 be used interchangeably.
8678
8679 Typical applications of Priority Search Queues include:
8680
8681 @itemize
8682 @item Caches, and more specifically LRU Caches;
8683 @item Schedulers;
8684 @item Pathfinding algorithms, such as Dijkstra's and A*.
8685 @end itemize")
8686 (license license:bsd-3)))
8687
8688 (define-public ghc-glob
8689 (package
8690 (name "ghc-glob")
8691 (version "0.9.2")
8692 (source
8693 (origin
8694 (method url-fetch)
8695 (uri (string-append "https://hackage.haskell.org/package/"
8696 "Glob-" version "/"
8697 "Glob-" version ".tar.gz"))
8698 (sha256
8699 (base32
8700 "1rbwcq9w9951qsnp13vqcm9r01yax2yh1wk8s4zxa3ckk9717iwg"))))
8701 (build-system haskell-build-system)
8702 (inputs
8703 `(("ghc-dlist" ,ghc-dlist)
8704 ("ghc-semigroups" ,ghc-semigroups)
8705 ("ghc-transformers-compat" ,ghc-transformers-compat)))
8706 (native-inputs
8707 `(("ghc-hunit" ,ghc-hunit)
8708 ("ghc-quickcheck" ,ghc-quickcheck)
8709 ("ghc-test-framework" ,ghc-test-framework)
8710 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
8711 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
8712 (home-page "http://iki.fi/matti.niemenmaa/glob/")
8713 (synopsis "Haskell library matching glob patterns against file paths")
8714 (description "This package provides a Haskell library for @dfn{globbing}:
8715 matching patterns against file paths.")
8716 (license license:bsd-3)))
8717
8718 (define-public ghc-errors
8719 (package
8720 (name "ghc-errors")
8721 (version "2.3.0")
8722 (source
8723 (origin
8724 (method url-fetch)
8725 (uri (string-append "https://hackage.haskell.org/package/"
8726 "errors-" version "/"
8727 "errors-" version ".tar.gz"))
8728 (sha256
8729 (base32
8730 "0x8znwn31qcx6kqx99wp7bc86kckfb39ncz3zxvj1s07kxlfawk7"))))
8731 (build-system haskell-build-system)
8732 (inputs
8733 `(("ghc-exceptions" ,ghc-exceptions)
8734 ("ghc-text" ,ghc-text)
8735 ("ghc-transformers-compat" ,ghc-transformers-compat)
8736 ("ghc-unexceptionalio" ,ghc-unexceptionalio)
8737 ("ghc-safe" ,ghc-safe)))
8738 (home-page "https://github.com/gabriel439/haskell-errors-library")
8739 (synopsis "Error handling library for Haskell")
8740 (description "This library encourages an error-handling style that
8741 directly uses the type system, rather than out-of-band exceptions.")
8742 (license license:bsd-3)))
8743
8744 (define-public ghc-vector-th-unbox
8745 (package
8746 (name "ghc-vector-th-unbox")
8747 (version "0.2.1.6")
8748 (source
8749 (origin
8750 (method url-fetch)
8751 (uri (string-append "https://hackage.haskell.org/package/"
8752 "vector-th-unbox-" version "/"
8753 "vector-th-unbox-" version ".tar.gz"))
8754 (sha256
8755 (base32
8756 "0d82x55f5vvr1jvaia382m23rs690lg55pvavv8f4ph0y6kd91xy"))))
8757 (build-system haskell-build-system)
8758 (inputs
8759 `(("ghc-vector" ,ghc-vector)
8760 ("ghc-data-default" ,ghc-data-default)))
8761 (home-page "https://github.com/liyang/vector-th-unbox")
8762 (synopsis "Deriver for Data.Vector.Unboxed using Template Haskell")
8763 (description "This Haskell library provides a Template Haskell
8764 deriver for unboxed vectors, given a pair of coercion functions to
8765 and from some existing type with an Unbox instance.")
8766 (license license:bsd-3)))
8767
8768 (define-public ghc-erf
8769 (package
8770 (name "ghc-erf")
8771 (version "2.0.0.0")
8772 (source
8773 (origin
8774 (method url-fetch)
8775 (uri (string-append "https://hackage.haskell.org/package/"
8776 "erf-" version "/"
8777 "erf-" version ".tar.gz"))
8778 (sha256
8779 (base32
8780 "0dxk2r32ajmmc05vaxcp0yw6vgv4lkbmh8jcshncn98xgsfbgw14"))))
8781 (build-system haskell-build-system)
8782 (home-page "https://hackage.haskell.org/package/erf")
8783 (synopsis "The error function, erf, and related functions for Haskell")
8784 (description "This Haskell library provides a type class for the
8785 error function, erf, and related functions. Instances for Float and
8786 Double.")
8787 (license license:bsd-3)))
8788
8789 (define-public ghc-math-functions
8790 (package
8791 (name "ghc-math-functions")
8792 (version "0.2.1.0")
8793 (source
8794 (origin
8795 (method url-fetch)
8796 (uri (string-append "https://hackage.haskell.org/package/"
8797 "math-functions-" version "/"
8798 "math-functions-" version ".tar.gz"))
8799 (sha256
8800 (base32
8801 "1sv5vabsx332v1lpb6v3jv4zrzvpx1n7yprzd8wlcda5vsc5a6zp"))))
8802 (build-system haskell-build-system)
8803 (arguments `(#:tests? #f)) ; FIXME: 1 test fails.
8804 (inputs
8805 `(("ghc-vector" ,ghc-vector)
8806 ("ghc-vector-th-unbox" ,ghc-vector-th-unbox)))
8807 (native-inputs
8808 `(("ghc-hunit" ,ghc-hunit)
8809 ("ghc-quickcheck" ,ghc-quickcheck)
8810 ("ghc-erf" ,ghc-erf)
8811 ("ghc-test-framework" ,ghc-test-framework)
8812 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
8813 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
8814 (home-page "https://github.com/bos/math-functions")
8815 (synopsis "Special functions and Chebyshev polynomials for Haskell")
8816 (description "This Haskell library provides implementations of
8817 special mathematical functions and Chebyshev polynomials. These
8818 functions are often useful in statistical and numerical computing.")
8819 (license license:bsd-3)))
8820
8821 (define-public ghc-mwc-random
8822 (package
8823 (name "ghc-mwc-random")
8824 (version "0.13.6.0")
8825 (source
8826 (origin
8827 (method url-fetch)
8828 (uri (string-append "https://hackage.haskell.org/package/"
8829 "mwc-random-" version "/"
8830 "mwc-random-" version ".tar.gz"))
8831 (sha256
8832 (base32
8833 "05j7yh0hh9nxic3dijmzv44kc6gzclvamdph7sq7w19wq57k6pq6"))))
8834 (build-system haskell-build-system)
8835 (inputs
8836 `(("ghc-primitive" ,ghc-primitive)
8837 ("ghc-vector" ,ghc-vector)
8838 ("ghc-math-functions" ,ghc-math-functions)))
8839 (arguments
8840 `(#:tests? #f)) ; FIXME: Test-Suite `spec` fails.
8841 (native-inputs
8842 `(("ghc-hunit" ,ghc-hunit)
8843 ("ghc-quickcheck" ,ghc-quickcheck)
8844 ("ghc-test-framework" ,ghc-test-framework)
8845 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
8846 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
8847 (home-page "https://github.com/bos/mwc-random")
8848 (synopsis "Random number generation library for Haskell")
8849 (description "This Haskell package contains code for generating
8850 high quality random numbers that follow either a uniform or normal
8851 distribution. The generated numbers are suitable for use in
8852 statistical applications.
8853
8854 The uniform PRNG uses Marsaglia's MWC256 (also known as MWC8222)
8855 multiply-with-carry generator, which has a period of 2^{8222} and
8856 fares well in tests of randomness. It is also extremely fast,
8857 between 2 and 3 times faster than the Mersenne Twister.")
8858 (license license:bsd-3)))
8859
8860 (define-public ghc-vector-algorithms
8861 (package
8862 (name "ghc-vector-algorithms")
8863 (version "0.7.0.4")
8864 (source
8865 (origin
8866 (method url-fetch)
8867 (uri (string-append "https://hackage.haskell.org/package/"
8868 "vector-algorithms-" version "/"
8869 "vector-algorithms-" version ".tar.gz"))
8870 (sha256
8871 (base32
8872 "0mfa8ig9v69l41p2vb5jl4qmaln5y1rlzarr2mlgm8g1nvq8qqdg"))))
8873 (build-system haskell-build-system)
8874 (inputs
8875 `(("ghc-vector" ,ghc-vector)))
8876 (native-inputs
8877 `(("ghc-quickcheck" ,ghc-quickcheck)))
8878 (home-page "https://github.com/bos/math-functions")
8879 (synopsis "Algorithms for vector arrays in Haskell")
8880 (description "This Haskell library algorithms for vector arrays.")
8881 (license license:bsd-3)))
8882
8883 (define-public ghc-language-haskell-extract
8884 (package
8885 (name "ghc-language-haskell-extract")
8886 (version "0.2.4")
8887 (source
8888 (origin
8889 (method url-fetch)
8890 (uri (string-append "https://hackage.haskell.org/package/"
8891 "language-haskell-extract-" version "/"
8892 "language-haskell-extract-" version ".tar.gz"))
8893 (sha256
8894 (base32
8895 "1nxcs7g8a1sp91bzpy4cj6s31k5pvc3gvig04cbrggv5cvjidnhl"))))
8896 (build-system haskell-build-system)
8897 (inputs
8898 `(("ghc-regex-posix" ,ghc-regex-posix)))
8899 (home-page "https://github.com/finnsson/template-helper")
8900 (synopsis "Haskell module to automatically extract functions from
8901 the local code")
8902 (description "This package contains helper functions on top of
8903 Template Haskell.
8904
8905 For example, @code{functionExtractor} extracts all functions after a
8906 regexp-pattern, which can be useful if you wish to extract all functions
8907 beginning with @code{test} (for a test framework) or all functions beginning
8908 with @code{wc} (for a web service).")
8909 (license license:bsd-3)))
8910
8911 (define-public ghc-abstract-par
8912 (package
8913 (name "ghc-abstract-par")
8914 (version "0.3.3")
8915 (source
8916 (origin
8917 (method url-fetch)
8918 (uri (string-append "https://hackage.haskell.org/package/"
8919 "abstract-par-" version "/"
8920 "abstract-par-" version ".tar.gz"))
8921 (sha256
8922 (base32
8923 "0q6qsniw4wks2pw6wzncb1p1j3k6al5njnvm2v5n494hplwqg2i4"))))
8924 (build-system haskell-build-system)
8925 (home-page "https://github.com/simonmar/monad-par")
8926 (synopsis "Abstract parallelization interface for Haskell")
8927 (description "This Haskell package is an abstract interface
8928 only. It provides a number of type clasess, but not an
8929 implementation. The type classes separate different levels
8930 of @code{Par} functionality. See the @code{Control.Monad.Par.Class}
8931 module for more details.")
8932 (license license:bsd-3)))
8933
8934 (define-public ghc-monad-par-extras
8935 (package
8936 (name "ghc-monad-par-extras")
8937 (version "0.3.3")
8938 (source
8939 (origin
8940 (method url-fetch)
8941 (uri (string-append "https://hackage.haskell.org/package/"
8942 "monad-par-extras-" version "/"
8943 "monad-par-extras-" version ".tar.gz"))
8944 (sha256
8945 (base32
8946 "0bl4bd6jzdc5zm20q1g67ppkfh6j6yn8fwj6msjayj621cck67p2"))))
8947 (build-system haskell-build-system)
8948 (inputs `(("ghc-abstract-par" ,ghc-abstract-par)
8949 ("ghc-cereal" ,ghc-cereal)
8950 ("ghc-random" ,ghc-random)))
8951 (home-page "https://github.com/simonmar/monad-par")
8952 (synopsis "Combinators and extra features for Par monads for Haskell")
8953 (description "This Haskell package provides additional data structures,
8954 and other added capabilities layered on top of the @code{Par} monad.")
8955 (license license:bsd-3)))
8956
8957 (define-public ghc-abstract-deque
8958 (package
8959 (name "ghc-abstract-deque")
8960 (version "0.3")
8961 (source
8962 (origin
8963 (method url-fetch)
8964 (uri (string-append "https://hackage.haskell.org/package/"
8965 "abstract-deque-" version "/"
8966 "abstract-deque-" version ".tar.gz"))
8967 (sha256
8968 (base32
8969 "18jwswjxwzc9bjiy4ds6hw2a74ki797jmfcifxd2ga4kh7ri1ah9"))))
8970 (build-system haskell-build-system)
8971 (inputs `(("ghc-random" ,ghc-random)))
8972 (home-page "https://github.com/rrnewton/haskell-lockfree/wiki")
8973 (synopsis "Abstract, parameterized interface to mutable Deques for Haskell")
8974 (description "This Haskell package provides an abstract interface to
8975 highly-parameterizable queues/deques.
8976
8977 Background: There exists a feature space for queues that extends between:
8978
8979 @itemize
8980 @item Simple, single-ended, non-concurrent, bounded queues
8981
8982 @item Double-ended, thread-safe, growable queues with important points
8983 in between (such as the queues used for work stealing).
8984 @end itemize
8985
8986 This package includes an interface for Deques that allows the programmer
8987 to use a single API for all of the above, while using the type system to
8988 select an efficient implementation given the requirements (using type families).
8989
8990 This package also includes a simple reference implementation based on
8991 @code{IORef} and @code{Data.Sequence}.")
8992 (license license:bsd-3)))
8993
8994 (define-public ghc-monad-par
8995 (package
8996 (name "ghc-monad-par")
8997 (version "0.3.4.8")
8998 (source
8999 (origin
9000 (method url-fetch)
9001 (uri (string-append "https://hackage.haskell.org/package/"
9002 "monad-par-" version "/"
9003 "monad-par-" version ".tar.gz"))
9004 (sha256
9005 (base32
9006 "0ldrzqy24fsszvn2a2nr77m2ih7xm0h9bgkjyv1l274aj18xyk7q"))))
9007 (build-system haskell-build-system)
9008 (inputs `(("ghc-abstract-par" ,ghc-abstract-par)
9009 ("ghc-abstract-deque" ,ghc-abstract-deque)
9010 ("ghc-monad-par-extras" ,ghc-monad-par-extras)
9011 ("ghc-mwc-random" ,ghc-mwc-random)
9012 ("ghc-parallel" ,ghc-parallel)))
9013 (native-inputs `(("ghc-quickcheck" ,ghc-quickcheck)
9014 ("ghc-hunit" ,ghc-hunit)
9015 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
9016 ("ghc-test-framework-quickcheck2"
9017 ,ghc-test-framework-quickcheck2)
9018 ("ghc-test-framework" ,ghc-test-framework)
9019 ("ghc-test-framework-th" ,ghc-test-framework-th)))
9020 (home-page "https://github.com/simonmar/monad-par")
9021 (synopsis "Haskell library for parallel programming based on a monad")
9022 (description "The @code{Par} monad offers an API for parallel
9023 programming. The library works for parallelising both pure and @code{IO}
9024 computations, although only the pure version is deterministic. The default
9025 implementation provides a work-stealing scheduler and supports forking tasks
9026 that are much lighter weight than IO-threads.")
9027 (license license:bsd-3)))
9028
9029 (define-public ghc-statistics
9030 (package
9031 (name "ghc-statistics")
9032 (version "0.14.0.2")
9033 (source
9034 (origin
9035 (method url-fetch)
9036 (uri (string-append "https://hackage.haskell.org/package/"
9037 "statistics-" version "/"
9038 "statistics-" version ".tar.gz"))
9039 (sha256
9040 (base32
9041 "0y27gafkib0x0fn39qfn2rkgsfrm09ng35sbb5dwr7rclhnxz59l"))))
9042 (build-system haskell-build-system)
9043 (arguments
9044 '(#:cabal-revision
9045 ("2" "1bx70yqkn62ii17fjv3pig4hklrzkqd09zj67zzjiyjzmn04fir3")
9046 ;; Two tests fail: "Discrete CDF is OK" and "Quantile is CDF inverse".
9047 #:tests? #f))
9048 (inputs
9049 `(("ghc-aeson" ,ghc-aeson)
9050 ("ghc-base-orphans" ,ghc-base-orphans)
9051 ("ghc-erf" ,ghc-erf)
9052 ("ghc-math-functions" ,ghc-math-functions)
9053 ("ghc-monad-par" ,ghc-monad-par)
9054 ("ghc-mwc-random" ,ghc-mwc-random)
9055 ("ghc-primitive" ,ghc-primitive)
9056 ("ghc-vector" ,ghc-vector)
9057 ("ghc-vector-algorithms" ,ghc-vector-algorithms)
9058 ("ghc-vector-th-unbox" ,ghc-vector-th-unbox)
9059 ("ghc-vector-binary-instances" ,ghc-vector-binary-instances)))
9060 (native-inputs
9061 `(("ghc-hunit" ,ghc-hunit)
9062 ("ghc-quickcheck" ,ghc-quickcheck)
9063 ("ghc-ieee754" ,ghc-ieee754)
9064 ("ghc-test-framework" ,ghc-test-framework)
9065 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
9066 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
9067 (home-page "https://github.com/bos/mwc-random")
9068 (synopsis "Haskell library of statistical types, data, and functions")
9069 (description "This library provides a number of common functions
9070 and types useful in statistics. We focus on high performance, numerical
9071 robustness, and use of good algorithms. Where possible, we provide references
9072 to the statistical literature.
9073
9074 The library's facilities can be divided into four broad categories:
9075
9076 @itemize
9077 @item Working with widely used discrete and continuous probability
9078 distributions. (There are dozens of exotic distributions in use; we focus
9079 on the most common.)
9080
9081 @item Computing with sample data: quantile estimation, kernel density
9082 estimation, histograms, bootstrap methods, significance testing,
9083 and regression and autocorrelation analysis.
9084
9085 @item Random variate generation under several different distributions.
9086
9087 @item Common statistical tests for significant differences between samples.
9088 @end itemize")
9089 (license license:bsd-2)))
9090
9091 (define-public ghc-chunked-data
9092 (package
9093 (name "ghc-chunked-data")
9094 (version "0.3.1")
9095 (source
9096 (origin
9097 (method url-fetch)
9098 (uri (string-append "https://hackage.haskell.org/package/"
9099 "chunked-data-" version "/"
9100 "chunked-data-" version ".tar.gz"))
9101 (sha256
9102 (base32
9103 "16m7y7fwrirbjbqqcsfmr4yxa9qvfax6r7pw0zl9ky71ms0wa47p"))))
9104 (build-system haskell-build-system)
9105 (inputs `(("ghc-vector" ,ghc-vector)
9106 ("ghc-semigroups" ,ghc-semigroups)
9107 ("ghc-text" ,ghc-text)))
9108 (home-page "https://github.com/snoyberg/mono-traversable")
9109 (synopsis "Typeclasses for dealing with various chunked data
9110 representations for Haskell")
9111 (description "This Haskell package was originally present in
9112 classy-prelude.")
9113 (license license:expat)))
9114
9115 (define-public ghc-base-prelude
9116 (package
9117 (name "ghc-base-prelude")
9118 (version "1.3")
9119 (source
9120 (origin
9121 (method url-fetch)
9122 (uri (string-append "https://hackage.haskell.org/package/"
9123 "base-prelude-" version "/"
9124 "base-prelude-" version ".tar.gz"))
9125 (sha256
9126 (base32
9127 "1zk728sd09hh2r4xwz4lazsrrgg5cshydn64932sm0vckplndk73"))))
9128 (build-system haskell-build-system)
9129 (home-page "https://github.com/nikita-volkov/base-prelude")
9130 (synopsis "The most complete prelude formed solely from the Haskell's base
9131 package")
9132 (description "This Haskell package aims to reexport all the non-conflicting
9133 and most general definitions from the \"base\" package.
9134
9135 This includes APIs for applicatives, arrows, monoids, foldables, traversables,
9136 exceptions, generics, ST, MVars and STM.
9137
9138 This package will never have any dependencies other than \"base\".
9139
9140 Versioning policy:
9141
9142 The versioning policy of this package deviates from PVP in the sense
9143 that its exports in part are transitively determined by the version of \"base\".
9144 Therefore it's recommended for the users of @code{ghc-base-prelude} to specify
9145 the bounds of \"base\" as well.")
9146 (license license:expat)))
9147
9148 (define-public ghc-tuple-th
9149 (package
9150 (name "ghc-tuple-th")
9151 (version "0.2.5")
9152 (source
9153 (origin
9154 (method url-fetch)
9155 (uri (string-append "https://hackage.haskell.org/package/"
9156 "tuple-th-" version "/"
9157 "tuple-th-" version ".tar.gz"))
9158 (sha256
9159 (base32
9160 "1mrl4vvxmby7sf1paf7hklzidnr6wq55822i73smqyz0xpf3gsjn"))))
9161 (build-system haskell-build-system)
9162 (home-page "https://github.com/DanielSchuessler/tuple-th")
9163 (synopsis "Generate utility functions for tuples of statically known size
9164 for Haskell")
9165 (description "This Haskell package contains Template Haskell functions for
9166 generating functions similar to those in @code{Data.List} for tuples of
9167 statically known size.")
9168 (license license:bsd-3)))
9169
9170 (define-public ghc-contravariant-extras
9171 (package
9172 (name "ghc-contravariant-extras")
9173 (version "0.3.4")
9174 (source
9175 (origin
9176 (method url-fetch)
9177 (uri (string-append "https://hackage.haskell.org/package/"
9178 "contravariant-extras-" version "/"
9179 "contravariant-extras-" version ".tar.gz"))
9180 (sha256
9181 (base32
9182 "0gg62ccl94kvh7mnvdq09pifqxjx2kgs189si90nmg44bafj7a9n"))))
9183 (build-system haskell-build-system)
9184 (inputs
9185 `(("ghc-tuple-th" ,ghc-tuple-th)
9186 ("ghc-contravariant" ,ghc-contravariant)
9187 ("ghc-base-prelude" ,ghc-base-prelude)
9188 ("ghc-semigroups" ,ghc-semigroups)))
9189 (home-page "https://github.com/nikita-volkov/contravariant-extras")
9190 (synopsis "Extras for the @code{ghc-contravariant} Haskell package")
9191 (description "This Haskell package provides extras for the
9192 @code{ghc-contravariant} package.")
9193 (license license:expat)))
9194
9195 (define-public ghc-monadrandom
9196 (package
9197 (name "ghc-monadrandom")
9198 (version "0.5.1.1")
9199 (source
9200 (origin
9201 (method url-fetch)
9202 (uri (string-append "https://hackage.haskell.org/package/"
9203 "MonadRandom-" version "/"
9204 "MonadRandom-" version ".tar.gz"))
9205 (sha256
9206 (base32
9207 "0w44jl1n3kqvqaflh82l1wj3xxbhzfs3kf4m8rk7w6fgg8llmnmb"))))
9208 (build-system haskell-build-system)
9209 (inputs `(("ghc-transformers-compat" ,ghc-transformers-compat)
9210 ("ghc-primitive" ,ghc-primitive)
9211 ("ghc-fail" ,ghc-fail)
9212 ("ghc-random" ,ghc-random)))
9213 (home-page "https://github.com/byorgey/MonadRandom")
9214 (synopsis "Random-number generation monad for Haskell")
9215 (description "This Haskell package provides support for computations
9216 which consume random values.")
9217 (license license:bsd-3)))
9218
9219 (define-public ghc-either
9220 (package
9221 (name "ghc-either")
9222 (version "5.0.1")
9223 (source
9224 (origin
9225 (method url-fetch)
9226 (uri (string-append "https://hackage.haskell.org/package/"
9227 "either-" version "/"
9228 "either-" version ".tar.gz"))
9229 (sha256
9230 (base32
9231 "064hjfld7dkzs78sy30k5qkiva3hx24rax6dvzz5ygr2c0zypdkc"))))
9232 (build-system haskell-build-system)
9233 (inputs `(("ghc-bifunctors" ,ghc-bifunctors)
9234 ("ghc-exceptions" ,ghc-exceptions)
9235 ("ghc-free" ,ghc-free)
9236 ("ghc-monad-control" ,ghc-monad-control)
9237 ("ghc-manodrandom" ,ghc-monadrandom)
9238 ("ghc-mmorph" ,ghc-mmorph)
9239 ("ghc-profunctors" ,ghc-profunctors)
9240 ("ghc-semigroups" ,ghc-semigroups)
9241 ("ghc-semigroupoids" ,ghc-semigroupoids)
9242 ("ghc-transformers-base" ,ghc-transformers-base)))
9243 (native-inputs
9244 `(("ghc-quickcheck" ,ghc-quickcheck)
9245 ("ghc-test-framework" ,ghc-test-framework)
9246 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
9247 (home-page "https://github.com/ekmett/either")
9248 (synopsis "Provides an either monad transformer for Haskell")
9249 (description "This Haskell package provides an either monad transformer.")
9250 (license license:bsd-3)))
9251
9252 (define-public ghc-pretty-hex
9253 (package
9254 (name "ghc-pretty-hex")
9255 (version "1.0")
9256 (source
9257 (origin
9258 (method url-fetch)
9259 (uri (string-append "https://hackage.haskell.org/package/"
9260 "pretty-hex-" version "/"
9261 "pretty-hex-" version ".tar.gz"))
9262 (sha256
9263 (base32
9264 "0ylwkvvjvmpprha9nx83xb8gkhyanhk5fffc0r7lb96n4ch5z6pz"))))
9265 (build-system haskell-build-system)
9266 (home-page "https://github.com/GaloisInc/hexdump")
9267 (synopsis "Haskell library for hex dumps of ByteStrings")
9268 (description "This Haskell library generates pretty hex dumps of
9269 ByteStrings in the style of other common *nix hex dump tools.")
9270 (license license:bsd-3)))
9271
9272 (define-public ghc-network-info
9273 (package
9274 (name "ghc-network-info")
9275 (version "0.2.0.10")
9276 (source
9277 (origin
9278 (method url-fetch)
9279 (uri (string-append "https://hackage.haskell.org/package/"
9280 "network-info-" version "/"
9281 "network-info-" version ".tar.gz"))
9282 (sha256
9283 (base32
9284 "0anmgzcpnz7nw3n6vq0r25m1s9l2svpwi83wza0lzkrlbnbzd02n"))))
9285 (build-system haskell-build-system)
9286 (home-page "https://github.com/jystic/network-info")
9287 (synopsis "Access the local computer's basic network configuration")
9288 (description "This Haskell library provides simple read-only access to the
9289 local computer's networking configuration. It is currently capable of
9290 getting a list of all the network interfaces and their respective
9291 IPv4, IPv6 and MAC addresses.")
9292 (license license:bsd-3)))
9293
9294 (define-public ghc-uuid-types
9295 (package
9296 (name "ghc-uuid-types")
9297 (version "1.0.3")
9298 (source
9299 (origin
9300 (method url-fetch)
9301 (uri (string-append "https://hackage.haskell.org/package/"
9302 "uuid-types-" version "/"
9303 "uuid-types-" version ".tar.gz"))
9304 (sha256
9305 (base32
9306 "1zdka5jnm1h6k36w3nr647yf3b5lqb336g3fkprhd6san9x52xlj"))))
9307 (build-system haskell-build-system)
9308 (arguments
9309 `(#:phases
9310 (modify-phases %standard-phases
9311 (add-before 'configure 'strip-test-framework-constraints
9312 (lambda _
9313 (substitute* "uuid-types.cabal"
9314 (("HUnit >=1\\.2 && < 1\\.4") "HUnit")
9315 (("QuickCheck >=2\\.4 && < 2\\.9") "QuickCheck")
9316 (("tasty >= 0\\.10 && < 0\\.12") "tasty")
9317 (("tasty-hunit == 0\\.9\\.\\*") "tasty-hunit")
9318 (("tasty-quickcheck == 0\\.8\\.\\*") "tasty-quickcheck")))))))
9319 (inputs `(("ghc-hashable" ,ghc-hashable)
9320 ("ghc-random" ,ghc-random)
9321 ("ghc-text" ,ghc-text)))
9322 (native-inputs `(("ghc-hunit" ,ghc-hunit)
9323 ("ghc-quickcheck" ,ghc-quickcheck)
9324 ("ghc-tasty" ,ghc-tasty)
9325 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
9326 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
9327 (home-page "https://github.com/hvr/uuid")
9328 (synopsis "Haskell type definitions for UUIDs")
9329 (description "This Haskell library contains type definitions for
9330 @dfn{Universally Unique Identifiers} or
9331 @uref{https://en.wikipedia.org/wiki/UUID, UUIDs}, and basic conversion
9332 functions.")
9333 (license license:bsd-3)))
9334
9335 (define-public ghc-uuid
9336 (package
9337 (name "ghc-uuid")
9338 (version "1.3.13")
9339 (source
9340 (origin
9341 (method url-fetch)
9342 (uri (string-append "https://hackage.haskell.org/package/"
9343 "uuid-" version "/"
9344 "uuid-" version ".tar.gz"))
9345 (sha256
9346 (base32
9347 "09xhk42yhxvqmka0iqrv3338asncz8cap3j0ic0ps896f2581b6z"))))
9348 (build-system haskell-build-system)
9349 (arguments
9350 `(#:cabal-revision
9351 ("2" "0m185q62jkfb5jsv358nxbnrkv8y8hd0qqvgvh22wvc5g9ipz0r9")
9352 #:phases
9353 (modify-phases %standard-phases
9354 (add-before 'configure 'strip-test-framework-constraints
9355 (lambda _
9356 (substitute* "uuid.cabal"
9357 (("HUnit >= 1\\.2 && < 1\\.4") "HUnit")
9358 (("QuickCheck >= 2\\.4 && < 2\\.10") "QuickCheck")
9359 (("tasty >= 0\\.10 && < 0\\.12") "tasty")
9360 (("tasty-hunit == 0\\.9\\.\\*") "tasty-hunit")
9361 (("tasty-quickcheck == 0\\.8\\.\\*") "tasty-quickcheck")))))))
9362 (inputs `(("ghc-cryptohash-sha1" ,ghc-cryptohash-sha1)
9363 ("ghc-cryptohash-md5" ,ghc-cryptohash-md5)
9364 ("ghc-entropy" ,ghc-entropy)
9365 ("ghc-network-info" ,ghc-network-info)
9366 ("ghc-random" ,ghc-random)
9367 ("ghc-text" ,ghc-text)
9368 ("ghc-uuid-types" ,ghc-uuid-types)))
9369 (native-inputs `(("ghc-hunit" ,ghc-hunit)
9370 ("ghc-quickcheck" ,ghc-quickcheck)
9371 ("ghc-tasty" ,ghc-tasty)
9372 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
9373 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
9374 (home-page "https://github.com/hvr/uuid")
9375 (synopsis "Haskell library to create, compare, parse, and print UUIDs")
9376 (description "This Haskell library provides utilities creating, comparing,
9377 parsing and printing @dfn{Universally Unique Identifiers} or UUIDs.")
9378 (license license:bsd-3)))
9379
9380 (define-public ghc-rebase
9381 (package
9382 (name "ghc-rebase")
9383 (version "1.2.4")
9384 (source
9385 (origin
9386 (method url-fetch)
9387 (uri (string-append "https://hackage.haskell.org/package/"
9388 "rebase-" version "/"
9389 "rebase-" version ".tar.gz"))
9390 (sha256
9391 (base32
9392 "1gah2qwfpzwamnikbc5h4nv6dgvv9h16di9ka7946za3nibyasya"))))
9393 (build-system haskell-build-system)
9394 (inputs `(("ghc-stm" ,ghc-stm)
9395 ("ghc-hashable" ,ghc-hashable)
9396 ("ghc-vector" ,ghc-vector)
9397 ("ghc-unordered-containers" ,ghc-unordered-containers)
9398 ("ghc-text" ,ghc-text)
9399 ("ghc-scientific" ,ghc-scientific)
9400 ("ghc-uuid" ,ghc-uuid)
9401 ("ghc-dlist" ,ghc-dlist)
9402 ("ghc-void" ,ghc-void)
9403 ("ghc-bifunctors" ,ghc-bifunctors)
9404 ("ghc-profunctors" ,ghc-profunctors)
9405 ("ghc-contravariant" ,ghc-contravariant)
9406 ("ghc-contravariant-extras" ,ghc-contravariant-extras)
9407 ("ghc-semigroups" ,ghc-semigroups)
9408 ("ghc-either" ,ghc-either)
9409 ("ghc-fail" ,ghc-fail)
9410 ("ghc-base-prelude" ,ghc-base-prelude)))
9411 (home-page "https://github.com/nikita-volkov/rebase")
9412 (synopsis "Progressive alternative to the base package
9413 for Haskell")
9414 (description "This Haskell package is intended for those who are
9415 tired of keeping long lists of dependencies to the same essential libraries
9416 in each package as well as the endless imports of the same APIs all over again.
9417
9418 It also supports the modern tendencies in the language.
9419
9420 To solve those problems this package does the following:
9421
9422 @itemize
9423 @item Reexport the original APIs under the @code{Rebase} namespace.
9424
9425 @item Export all the possible non-conflicting symbols from the
9426 @code{Rebase.Prelude} module.
9427
9428 @item Give priority to the modern practices in the conflicting cases.
9429 @end itemize
9430
9431 The policy behind the package is only to reexport the non-ambiguous and
9432 non-controversial APIs, which the community has obviously settled on.
9433 The package is intended to rapidly evolve with the contribution from
9434 the community, with the missing features being added with pull-requests.")
9435 (license license:expat)))
9436
9437 (define-public ghc-rerebase
9438 (package
9439 (name "ghc-rerebase")
9440 (version "1.2.2")
9441 (source
9442 (origin
9443 (method url-fetch)
9444 (uri (string-append
9445 "https://hackage.haskell.org/package/rerebase/rerebase-"
9446 version ".tar.gz"))
9447 (sha256
9448 (base32
9449 "11v6rmz7ql2rdx6mhb3lsal952lwihclfhh0m7fcnii5br0906ks"))))
9450 (build-system haskell-build-system)
9451 (inputs
9452 `(("ghc-rebase" ,ghc-rebase)))
9453 (home-page "https://github.com/nikita-volkov/rerebase")
9454 (synopsis "Reexports from ``base'' with many other standard libraries")
9455 (description "A rich drop-in replacement for @code{base}. For details and
9456 documentation please visit @uref{https://github.com/nikita-volkov/rerebase,
9457 the project's home page}.")
9458 (license license:expat)))
9459
9460 (define-public ghc-vector-builder
9461 (package
9462 (name "ghc-vector-builder")
9463 (version "0.3.6")
9464 (source
9465 (origin
9466 (method url-fetch)
9467 (uri (string-append "https://hackage.haskell.org/package/"
9468 "vector-builder-" version "/"
9469 "vector-builder-" version ".tar.gz"))
9470 (sha256
9471 (base32
9472 "06d2pa1fb3ydrl7l6rjazqyxv5i73v65x2f5fp0ypjxfbm6jsmn8"))))
9473 (build-system haskell-build-system)
9474 (inputs `(("ghc-vector" ,ghc-vector)
9475 ("ghc-semigroups" ,ghc-semigroups)
9476 ("ghc-base-prelude" ,ghc-base-prelude)))
9477 (native-inputs `(("ghc-attoparsec" ,ghc-attoparsec)
9478 ("ghc-tasty" ,ghc-tasty)
9479 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
9480 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
9481 ("ghc-hunit" ,ghc-hunit)
9482 ("ghc-quickcheck-instances" ,ghc-quickcheck-instances)
9483 ("ghc-rerebase" ,ghc-rerebase)))
9484 (home-page "https://github.com/nikita-volkov/vector-builder")
9485 (synopsis "Vector builder for Haskell")
9486 (description "This Haskell package provides an API for constructing vectors.
9487 It provides the composable @code{Builder} abstraction, which has instances of the
9488 @code{Monoid} and @code{Semigroup} classes.
9489
9490 You would first use the @code{Builder} abstraction to specify the structure of
9491 the vector; then you can execute the builder to actually produce the
9492 vector. ")
9493 (license license:expat)))
9494
9495 (define-public ghc-foldl
9496 (package
9497 (name "ghc-foldl")
9498 (version "1.4.3")
9499 (source
9500 (origin
9501 (method url-fetch)
9502 (uri (string-append "https://hackage.haskell.org/package/"
9503 "foldl-" version "/"
9504 "foldl-" version ".tar.gz"))
9505 (sha256
9506 (base32
9507 "13n0ca3hw5jzqf6rxsdbhbwkn61a9zlm13f0f205s60j3sc72jzk"))))
9508 (build-system haskell-build-system)
9509 (inputs `(("ghc-mwc-randam" ,ghc-mwc-random)
9510 ("ghc-primitive" ,ghc-primitive)
9511 ("ghc-text" ,ghc-text)
9512 ("ghc-vector" ,ghc-vector)
9513 ("ghc-unordered-containers" ,ghc-unordered-containers)
9514 ("ghc-hashable" ,ghc-hashable)
9515 ("ghc-contravariant" ,ghc-contravariant)
9516 ("ghc-semigroups" ,ghc-semigroups)
9517 ("ghc-profunctors" ,ghc-profunctors)
9518 ("ghc-semigroupoids" ,ghc-semigroupoids)
9519 ("ghc-comonad" ,ghc-comonad)
9520 ("ghc-vector-builder" ,ghc-vector-builder)))
9521 (home-page "https://github.com/Gabriel439/Haskell-Foldl-Library")
9522 (synopsis "Composable, streaming, and efficient left folds for Haskell")
9523 (description "This Haskell library provides strict left folds that stream
9524 in constant memory, and you can combine folds using @code{Applicative} style
9525 to derive new folds. Derived folds still traverse the container just once
9526 and are often as efficient as hand-written folds.")
9527 (license license:bsd-3)))
9528
9529 (define-public ghc-mono-traversable
9530 (package
9531 (name "ghc-mono-traversable")
9532 (version "1.0.9.0")
9533 (source
9534 (origin
9535 (method url-fetch)
9536 (uri (string-append "https://hackage.haskell.org/package/"
9537 "mono-traversable-" version "/"
9538 "mono-traversable-" version ".tar.gz"))
9539 (sha256
9540 (base32
9541 "0180ks0dyvpk1r20w5jw2w2n79mjnk69n9vhspaxzlyxqgim5psa"))))
9542 (build-system haskell-build-system)
9543 (inputs `(("ghc-unordered-containers" ,ghc-unordered-containers)
9544 ("ghc-hashable" ,ghc-hashable)
9545 ("ghc-text" ,ghc-text)
9546 ("ghc-vector" ,ghc-vector)
9547 ("ghc-vector-algorithms" ,ghc-vector-algorithms)
9548 ("ghc-split" ,ghc-split)))
9549 (native-inputs `(("ghc-hspec" ,ghc-hspec)
9550 ("ghc-hunit" ,ghc-hunit)
9551 ("ghc-quickcheck" ,ghc-quickcheck)
9552 ("ghc-semigroups" ,ghc-semigroups)
9553 ("ghc-foldl" ,ghc-foldl)))
9554 (home-page "https://github.com/snoyberg/mono-traversable")
9555 (synopsis "Haskell classes for mapping, folding, and traversing monomorphic
9556 containers")
9557 (description "This Haskell package provides Monomorphic variants of the
9558 Functor, Foldable, and Traversable typeclasses. If you understand Haskell's
9559 basic typeclasses, you understand mono-traversable. In addition to what
9560 you are used to, it adds on an IsSequence typeclass and has code for marking
9561 data structures as non-empty.")
9562 (license license:expat)))
9563
9564 (define-public ghc-conduit-combinators
9565 (package
9566 (name "ghc-conduit-combinators")
9567 (version "1.3.0")
9568 (source
9569 (origin
9570 (method url-fetch)
9571 (uri (string-append "https://hackage.haskell.org/package/"
9572 "conduit-combinators-" version "/"
9573 "conduit-combinators-" version ".tar.gz"))
9574 (sha256
9575 (base32
9576 "1lz70vwp4y4lpsivxl0cshq7aq3968rh48r6rjvpyaj2l0bdj5wp"))))
9577 (build-system haskell-build-system)
9578 (inputs `(("ghc-conduit" ,ghc-conduit)
9579 ("ghc-conduit-extra" ,ghc-conduit-extra)
9580 ("ghc-transformers-base" ,ghc-transformers-base)
9581 ("ghc-primitive" ,ghc-primitive)
9582 ("ghc-vector" ,ghc-vector)
9583 ("ghc-text" ,ghc-text)
9584 ("ghc-void" ,ghc-void)
9585 ("ghc-mwc-random" ,ghc-mwc-random)
9586 ("ghc-unix-compat" ,ghc-unix-compat)
9587 ("ghc-base16-bytestring" ,ghc-base16-bytestring)
9588 ("ghc-base64-bytestring" ,ghc-base64-bytestring)
9589 ("ghc-resourcet" ,ghc-resourcet)
9590 ("ghc-monad-control" ,ghc-monad-control)
9591 ("ghc-chunked-data" ,ghc-chunked-data)
9592 ("ghc-mono-traversable" ,ghc-mono-traversable)))
9593 (native-inputs `(("ghc-hspec" ,ghc-hspec)
9594 ("ghc-silently" ,ghc-silently)
9595 ("ghc-safe" ,ghc-safe)
9596 ("ghc-quickcheck" ,ghc-quickcheck)))
9597 (home-page "https://github.com/snoyberg/mono-traversable")
9598 (synopsis "Commonly used conduit functions, for both chunked and
9599 unchunked data")
9600 (description "This Haskell package provides a replacement for Data.Conduit.List,
9601 as well as a convenient Conduit module.")
9602 (license license:expat)))
9603
9604 (define-public ghc-aws
9605 (package
9606 (name "ghc-aws")
9607 (version "0.20")
9608 (source
9609 (origin
9610 (method url-fetch)
9611 (uri (string-append "https://hackage.haskell.org/package/"
9612 "aws-" version "/aws-" version ".tar.gz"))
9613 (sha256 (base32
9614 "0pwpabmypi1w8rni9qfwabgn95jks4h8dyw6889mn8xzsrhdhyf0"))))
9615 (build-system haskell-build-system)
9616 (arguments `(#:tests? #f)) ; Tests require AWS credentials.
9617 (inputs
9618 `(("ghc-aeson" ,ghc-aeson)
9619 ("ghc-attoparsec" ,ghc-attoparsec)
9620 ("ghc-base16-bytestring" ,ghc-base16-bytestring)
9621 ("ghc-base64-bytestring" ,ghc-base64-bytestring)
9622 ("ghc-blaze-builder" ,ghc-blaze-builder)
9623 ("ghc-byteable" ,ghc-byteable)
9624 ("ghc-case-insensitive" ,ghc-case-insensitive)
9625 ("ghc-cereal" ,ghc-cereal)
9626 ("ghc-conduit" ,ghc-conduit)
9627 ("ghc-conduit-extra" ,ghc-conduit-extra)
9628 ("ghc-cryptonite" ,ghc-cryptonite)
9629 ("ghc-data-default" ,ghc-data-default)
9630 ("ghc-http-conduit" ,ghc-http-conduit)
9631 ("ghc-http-types" ,ghc-http-types)
9632 ("ghc-lifted-base" ,ghc-lifted-base)
9633 ("ghc-monad-control" ,ghc-monad-control)
9634 ("ghc-network" ,ghc-network)
9635 ("ghc-old-locale" ,ghc-old-locale)
9636 ("ghc-safe" ,ghc-safe)
9637 ("ghc-scientific" ,ghc-scientific)
9638 ("ghc-tagged" ,ghc-tagged)
9639 ("ghc-text" ,ghc-text)
9640 ("ghc-unordered-containers" ,ghc-unordered-containers)
9641 ("ghc-utf8-string" ,ghc-utf8-string)
9642 ("ghc-vector" ,ghc-vector)
9643 ("ghc-xml-conduit" ,ghc-xml-conduit)))
9644 (native-inputs
9645 `(("ghc-quickcheck" ,ghc-quickcheck)
9646 ("ghc-errors" ,ghc-errors)
9647 ("ghc-http-client" ,ghc-http-client)
9648 ("ghc-http-client-tls" ,ghc-http-client-tls)
9649 ("ghc-quickcheck-instances" ,ghc-quickcheck-instances)
9650 ("ghc-tasty" ,ghc-tasty)
9651 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
9652 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
9653 ("ghc-conduit-combinators" ,ghc-conduit-combinators)))
9654 (home-page "https://github.com/aristidb/aws")
9655 (synopsis "Amazon Web Services for Haskell")
9656 (description "This package attempts to provide support for using
9657 Amazon Web Services like S3 (storage), SQS (queuing) and others to
9658 Haskell programmers. The ultimate goal is to support all Amazon
9659 Web Services.")
9660 (license license:bsd-3)))
9661
9662 (define-public ghc-basement
9663 (package
9664 (name "ghc-basement")
9665 (version "0.0.8")
9666 (source
9667 (origin
9668 (method url-fetch)
9669 (uri (string-append "https://hackage.haskell.org/package/"
9670 "basement/basement-" version ".tar.gz"))
9671 (sha256
9672 (base32
9673 "194jw567di4q2758943q9rrwkbf9gl261my7qc21i9xhyabipx67"))))
9674 (build-system haskell-build-system)
9675 (home-page "https://github.com/haskell-foundation/foundation")
9676 (synopsis "Basic primitives for Foundation starter pack")
9677 (description
9678 "This package contains basic primitives for the Foundation set of
9679 packages.")
9680 (license license:bsd-3)))
9681
9682 (define-public ghc-foundation
9683 (package
9684 (name "ghc-foundation")
9685 (version "0.0.21")
9686 (source
9687 (origin
9688 (method url-fetch)
9689 (uri (string-append "https://hackage.haskell.org/package/"
9690 "foundation/foundation-" version ".tar.gz"))
9691 (sha256
9692 (base32
9693 "1q43y8wfj0wf9gdq2kzphwjwq6m5pvryy1lqgk954aq5z3ks1lsf"))))
9694 (build-system haskell-build-system)
9695 (arguments
9696 `(#:phases
9697 (modify-phases %standard-phases
9698 (add-after 'unpack 'add-setup-script
9699 (lambda _
9700 ;; The usual "Setup.hs" script is missing from the source.
9701 (with-output-to-file "Setup.hs"
9702 (lambda ()
9703 (format #t "import Distribution.Simple~%")
9704 (format #t "main = defaultMain~%"))))))))
9705 (inputs `(("ghc-basement" ,ghc-basement)))
9706 (home-page "https://github.com/haskell-foundation/foundation")
9707 (synopsis "Alternative prelude with batteries and no dependencies")
9708 (description
9709 "This package provides a custom prelude with no dependencies apart from
9710 the base package.
9711
9712 Foundation has the following goals:
9713
9714 @enumerate
9715 @item provide a base like sets of modules that provide a consistent set of
9716 features and bugfixes across multiple versions of GHC (unlike base).
9717 @item provide a better and more efficient prelude than base's prelude.
9718 @item be self-sufficient: no external dependencies apart from base;
9719 @item provide better data-types: packed unicode string by default, arrays;
9720 @item Numerical classes that better represent mathematical things (no more
9721 all-in-one @code{Num});
9722 @item I/O system with less lazy IO.
9723 @end enumerate\n")
9724 (license license:bsd-3)))
9725
9726 (define-public ghc-stm-chans
9727 (package
9728 (name "ghc-stm-chans")
9729 (version "3.0.0.4")
9730 (source
9731 (origin
9732 (method url-fetch)
9733 (uri (string-append "https://hackage.haskell.org/package/"
9734 "stm-chans-" version "/"
9735 "stm-chans-" version ".tar.gz"))
9736 (sha256
9737 (base32
9738 "0f27sp09yha43xk9q55sc185jyjs5h7gq2dhsyx6bm9kz9dzqi13"))))
9739 (build-system haskell-build-system)
9740 (inputs `(("ghc-stm" ,ghc-stm)))
9741 (home-page "https://hackage.haskell.org/package/stm-chans")
9742 (synopsis "Additional types of channels for ghc-stm")
9743 (description "This Haskell package offers a collection of channel types,
9744 similar to @code{Control.Concurrent.STM.@{TChan,TQueue@}} but with additional
9745 features.")
9746 (license license:bsd-3)))
9747
9748 (define-public ghc-monad-loops
9749 (package
9750 (name "ghc-monad-loops")
9751 (version "0.4.3")
9752 (source
9753 (origin
9754 (method url-fetch)
9755 (uri (string-append "https://hackage.haskell.org/package/"
9756 "monad-loops-" version "/"
9757 "monad-loops-" version ".tar.gz"))
9758 (sha256
9759 (base32
9760 "062c2sn3hc8h50p1mhqkpyv6x8dydz2zh3ridvlfjq9nqimszaky"))))
9761 (build-system haskell-build-system)
9762 (native-inputs `(("ghc-tasty" ,ghc-tasty)
9763 ("ghc-tasty-hunit" ,ghc-tasty-hunit)))
9764 (home-page "https://github.com/mokus0/monad-loops")
9765 (synopsis "Monadic loops for Haskell")
9766 (description "This Haskell package provides some useful control
9767 operators for looping.")
9768 (license license:public-domain)))
9769
9770 (define-public ghc-monad-logger
9771 (package
9772 (name "ghc-monad-logger")
9773 (version "0.3.29")
9774 (source
9775 (origin
9776 (method url-fetch)
9777 (uri (string-append "https://hackage.haskell.org/package/"
9778 "monad-logger-" version "/"
9779 "monad-logger-" version ".tar.gz"))
9780 (sha256
9781 (base32
9782 "1z516s4pa9n94zf0l45mylssg07xr1d1m6zrz900p0iv3vfd07mv"))))
9783 (build-system haskell-build-system)
9784 (inputs `(("ghc-transformers-compat" ,ghc-transformers-compat)
9785 ("ghc-text" ,ghc-text)
9786 ("ghc-stm" ,ghc-stm)
9787 ("ghc-stm-chans" ,ghc-stm-chans)
9788 ("ghc-lifted-base" ,ghc-lifted-base)
9789 ("ghc-resourcet" ,ghc-resourcet)
9790 ("ghc-conduit" ,ghc-conduit)
9791 ("ghc-conduit-extra" ,ghc-conduit-extra)
9792 ("ghc-fast-logger" ,ghc-fast-logger)
9793 ("ghc-transformers-base" ,ghc-transformers-base)
9794 ("ghc-monad-control" ,ghc-monad-control)
9795 ("ghc-monad-loops" ,ghc-monad-loops)
9796 ("ghc-blaze-builder" ,ghc-blaze-builder)
9797 ("ghc-exceptions" ,ghc-exceptions)))
9798 (home-page "https://github.com/kazu-yamamoto/logger")
9799 (synopsis "Provides a class of monads which can log messages for Haskell")
9800 (description "This Haskell package uses a monad transformer approach
9801 for logging.
9802
9803 This package provides Template Haskell functions for determining source
9804 code locations of messages.")
9805 (license license:expat)))
9806
9807 (define-public ghc-shakespeare
9808 (package
9809 (name "ghc-shakespeare")
9810 (version "2.0.15")
9811 (source
9812 (origin
9813 (method url-fetch)
9814 (uri (string-append "https://hackage.haskell.org/package/"
9815 "shakespeare-" version "/"
9816 "shakespeare-" version ".tar.gz"))
9817 (sha256
9818 (base32
9819 "1vk4b19zvwy4mpwaq9z3l3kfmz75gfyf7alhh0y112gspgpccm23"))))
9820 (build-system haskell-build-system)
9821 (inputs `(("ghc-parsec" ,ghc-parsec)
9822 ("ghc-text" ,ghc-text)
9823 ("ghc-aeson" ,ghc-aeson)
9824 ("ghc-blaze-markup" ,ghc-blaze-markup)
9825 ("ghc-blaze-html" ,ghc-blaze-html)
9826 ("ghc-exceptions" ,ghc-exceptions)
9827 ("ghc-vector" ,ghc-vector)
9828 ("ghc-unordered-containers" ,ghc-unordered-containers)
9829 ("ghc-scientific" ,ghc-scientific)))
9830 (native-inputs `(("ghc-hspec" ,ghc-hspec)
9831 ("ghc-hunit" ,ghc-hunit)
9832 ("hspec-discover" ,hspec-discover)))
9833 (home-page "https://www.yesodweb.com/book/shakespearean-templates")
9834 (synopsis "Family of type-safe template languages for Haskell")
9835 (description "This Haskell package provides a family of type-safe
9836 templates with simple variable interpolation. Shakespeare templates can
9837 be used inline with a quasi-quoter or in an external file and it
9838 interpolates variables according to the type being inserted.")
9839 (license license:expat)))
9840
9841 (define-public ghc-securemem
9842 (package
9843 (name "ghc-securemem")
9844 (version "0.1.10")
9845 (source
9846 (origin
9847 (method url-fetch)
9848 (uri (string-append "https://hackage.haskell.org/package/"
9849 "securemem-" version "/"
9850 "securemem-" version ".tar.gz"))
9851 (sha256
9852 (base32
9853 "19hnw2cfbsfjynxq1bq9f6djbxhsc1k751ml0y1ab3ah913mm29j"))))
9854 (build-system haskell-build-system)
9855 (inputs `(("ghc-byteable" ,ghc-byteable)
9856 ("ghc-memory" ,ghc-memory)))
9857 (home-page "https://github.com/vincenthz/hs-securemem")
9858 (synopsis "Auto-scrubbing and const-time-eq memory chunk abstraction for
9859 Haskell")
9860 (description "SecureMem is similar to ByteString, except that it provides
9861 a memory chunk that will be auto-scrubbed after it run out of scope.")
9862 (license license:bsd-3)))
9863
9864 (define-public ghc-resource-pool
9865 (package
9866 (name "ghc-resource-pool")
9867 (version "0.2.3.2")
9868 (source
9869 (origin
9870 (method url-fetch)
9871 (uri (string-append "https://hackage.haskell.org/package/"
9872 "resource-pool-" version "/"
9873 "resource-pool-" version ".tar.gz"))
9874 (sha256
9875 (base32
9876 "04mw8b9djb14zp4rdi6h7mc3zizh597ffiinfbr4m0m8psifw9w6"))))
9877 (build-system haskell-build-system)
9878 (inputs `(("ghc-hashable" ,ghc-hashable)
9879 ("ghc-monad-control" ,ghc-monad-control)
9880 ("ghc-transformers-base" ,ghc-transformers-base)
9881 ("ghc-stm" ,ghc-stm)
9882 ("ghc-vector" ,ghc-vector)))
9883 (home-page "https://github.com/bos/pool")
9884 (synopsis "Striped resource pooling implementation in Haskell")
9885 (description "This Haskell package provides striped pooling abstraction
9886 for managing flexibly-sized collections of resources such as database
9887 connections.")
9888 (license license:bsd-3)))
9889
9890 (define-public ghc-attoparsec-iso8601
9891 (package
9892 (name "ghc-attoparsec-iso8601")
9893 (version "1.0.0.0")
9894 (source
9895 (origin
9896 (method url-fetch)
9897 (uri (string-append "https://hackage.haskell.org/package/"
9898 "attoparsec-iso8601-" version "/"
9899 "attoparsec-iso8601-" version ".tar.gz"))
9900 (sha256
9901 (base32
9902 "12l55b76bhya9q89mfmqmy6sl5v39b6gzrw5rf3f70vkb23nsv5a"))))
9903 (build-system haskell-build-system)
9904 (arguments
9905 `(#:cabal-revision
9906 ("1" "06f7pgmmc8456p3hc1y23kz1y127gfczy7s00wz1rls9g2sm2vi4")))
9907 (inputs `(("ghc-attoparsec" ,ghc-attoparsec)
9908 ("ghc-base-compat" ,ghc-base-compat)
9909 ("ghc-text" ,ghc-text)))
9910 (home-page "https://github.com/bos/aeson")
9911 (synopsis "Parse ISO 8601 dates")
9912 (description "Haskell library for parsing of ISO 8601 dates, originally
9913 from aeson.")
9914 (license license:bsd-3)))
9915
9916 (define-public ghc-generics-sop
9917 (package
9918 (name "ghc-generics-sop")
9919 (version "0.3.2.0")
9920 (source
9921 (origin
9922 (method url-fetch)
9923 (uri (string-append "https://hackage.haskell.org/package/"
9924 "generics-sop-" version "/"
9925 "generics-sop-" version ".tar.gz"))
9926 (sha256
9927 (base32
9928 "168v62i845jh9jbfaz3ldz8svz4wmzq9mf2vhb7pxlnbkk8fqq1h"))))
9929 (build-system haskell-build-system)
9930 (inputs `(("ghc-transformers-compat" ,ghc-transformers-compat)))
9931 (home-page "https://github.com/well-typed/generics-sop")
9932 (synopsis "Generic Programming using True Sums of Products for Haskell")
9933 (description "This Haskell package supports the definition of generic
9934 functions. Datatypes are viewed in a uniform, structured way: the choice
9935 between constructors is represented using an n-ary sum, and the arguments of
9936 each constructor are represented using an n-ary product.")
9937 (license license:bsd-3)))
9938
9939 (define-public ghc-uri-bytestring
9940 (package
9941 (name "ghc-uri-bytestring")
9942 (version "0.3.2.0")
9943 (source
9944 (origin
9945 (method url-fetch)
9946 (uri (string-append "https://hackage.haskell.org/package/"
9947 "uri-bytestring-" version "/"
9948 "uri-bytestring-" version ".tar.gz"))
9949 (sha256
9950 (base32
9951 "1q04j5ybvk37zk2m0bkjwyhblz0ymdj0cn4rvsvdca1ikn5xdv5c"))))
9952 (build-system haskell-build-system)
9953 (inputs `(("ghc-attoparsec" ,ghc-attoparsec)
9954 ("ghc-fail" ,ghc-fail)
9955 ("ghc-blaze-builder" ,ghc-blaze-builder)
9956 ("ghc-th-lift-instances" ,ghc-th-lift-instances)))
9957 (native-inputs `(("ghc-attoparsec" ,ghc-attoparsec)
9958 ("ghc-hunit" ,ghc-hunit)
9959 ("ghc-quickcheck" ,ghc-quickcheck)
9960 ("ghc-tasty" ,ghc-tasty)
9961 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
9962 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
9963 ("ghc-base-compat" ,ghc-base-compat)
9964 ("ghc-quickcheck-instances" ,ghc-quickcheck-instances)
9965 ("ghc-semigroups" ,ghc-semigroups)
9966 ("ghc-generics-sop" ,ghc-generics-sop)))
9967 (home-page "https://github.com/Soostone/uri-bytestring")
9968 (synopsis "Haskell URI parsing as ByteStrings")
9969 (description "This Haskell package aims to be an RFC3986 compliant URI
9970 parser that uses ByteStrings for parsing and representing the URI data.")
9971 (license license:bsd-3)))
9972
9973 (define-public ghc-http-api-data
9974 (package
9975 (name "ghc-http-api-data")
9976 (version "0.3.8.1")
9977 (source
9978 (origin
9979 (method url-fetch)
9980 (uri (string-append "https://hackage.haskell.org/package/"
9981 "http-api-data-" version "/"
9982 "http-api-data-" version ".tar.gz"))
9983 (sha256
9984 (base32
9985 "1cq6459b8wz6nvkvpi89dg189n5q2xdq4rdq435hf150555vmskf"))))
9986 (build-system haskell-build-system)
9987 (arguments `(#:tests? #f)) ; FIXME: Tests require QuickCheck >= 2.9
9988 (inputs `(("ghc-attoparsec" ,ghc-attoparsec)
9989 ("ghc-attoparsec-iso8601" ,ghc-attoparsec-iso8601)
9990 ("ghc-hashable" ,ghc-hashable)
9991 ("ghc-http-types" ,ghc-http-types)
9992 ("ghc-text" ,ghc-text)
9993 ("ghc-time-locale-compat" ,ghc-time-locale-compat)
9994 ("ghc-unordered-containers" ,ghc-unordered-containers)
9995 ("ghc-uri-bytestring" ,ghc-uri-bytestring)
9996 ("ghc-uuid-types" ,ghc-uuid-types)))
9997 (home-page "https://github.com/fizruk/http-api-data")
9998 (synopsis "Convert to/from HTTP API data like URL pieces, headers and
9999 query parameters")
10000 (description "This Haskell package defines typeclasses used for converting
10001 Haskell data types to and from HTTP API data.")
10002 (license license:bsd-3)))
10003
10004 (define-public ghc-persistent
10005 (package
10006 (name "ghc-persistent")
10007 (version "2.8.2")
10008 (source
10009 (origin
10010 (method url-fetch)
10011 (uri (string-append "https://hackage.haskell.org/package/"
10012 "persistent-" version "/"
10013 "persistent-" version ".tar.gz"))
10014 (sha256
10015 (base32
10016 "1h0yijbf1yiwl50klyafy4ln99j8bib4kgbzviw7fc4y4mwv4sv9"))))
10017 (build-system haskell-build-system)
10018 (inputs `(("ghc-old-locale" ,ghc-old-locale)
10019 ("ghc-text" ,ghc-text)
10020 ("ghc-conduit" ,ghc-conduit)
10021 ("ghc-resourcet" ,ghc-resourcet)
10022 ("ghc-exceptions" ,ghc-exceptions)
10023 ("ghc-monad-control" ,ghc-monad-control)
10024 ("ghc-lifted-base" ,ghc-lifted-base)
10025 ("ghc-resource-pool" ,ghc-resource-pool)
10026 ("ghc-path-pieces" ,ghc-path-pieces)
10027 ("ghc-http-api-data" ,ghc-http-api-data)
10028 ("ghc-aeson" ,ghc-aeson)
10029 ("ghc-monad-logger" ,ghc-monad-logger)
10030 ("ghc-transformers-base" ,ghc-transformers-base)
10031 ("ghc-base64-bytestring" ,ghc-base64-bytestring)
10032 ("ghc-unordered-containers" ,ghc-unordered-containers)
10033 ("ghc-vector" ,ghc-vector)
10034 ("ghc-attoparsec" ,ghc-attoparsec)
10035 ("ghc-haskell-src-meta" ,ghc-haskell-src-meta)
10036 ("ghc-blaze-html" ,ghc-blaze-html)
10037 ("ghc-blaze-markup" ,ghc-blaze-markup)
10038 ("ghc-silently" ,ghc-silently)
10039 ("ghc-fast-logger" ,ghc-fast-logger)
10040 ("ghc-scientific" ,ghc-scientific)
10041 ("ghc-tagged" ,ghc-tagged)
10042 ("ghc-void" ,ghc-void)))
10043 (native-inputs `(("ghc-hspec" ,ghc-hspec)))
10044 (home-page "https://www.yesodweb.com/book/persistent")
10045 (synopsis "Type-safe, multi-backend data serialization for Haskell")
10046 (description "This Haskell package allows Haskell programs to access data
10047 storage sytems like PostgreSQL, SQLite, MySQL and MongoDB in a type-safe
10048 way.")
10049 (license license:expat)))
10050
10051 (define-public ghc-aeson-compat
10052 (package
10053 (name "ghc-aeson-compat")
10054 (version "0.3.8")
10055 (source
10056 (origin
10057 (method url-fetch)
10058 (uri (string-append "https://hackage.haskell.org/package/"
10059 "aeson-compat-" version "/"
10060 "aeson-compat-" version ".tar.gz"))
10061 (sha256
10062 (base32
10063 "0j4v13pgk21zy8hqkbx8hw0n05jdl17qphxz9rj4h333pr547r3i"))))
10064 (build-system haskell-build-system)
10065 (arguments `(#:tests? #f)) ; FIXME: Tests require QuickCheck >= 2.10
10066 (inputs `(("ghc-base-compat" ,ghc-base-compat)
10067 ("ghc-aeson" ,ghc-aeson)
10068 ("ghc-attoparsec" ,ghc-attoparsec)
10069 ("ghc-attoparsec" ,ghc-attoparsec-iso8601)
10070 ("ghc-exceptions" ,ghc-exceptions)
10071 ("ghc-hashable" ,ghc-hashable)
10072 ("ghc-scientific" ,ghc-scientific)
10073 ("ghc-text" ,ghc-text)
10074 ("ghc-time-locale-compat" ,ghc-time-locale-compat)
10075 ("ghc-unordered-containers" ,ghc-unordered-containers)
10076 ("ghc-vector" ,ghc-vector)
10077 ("ghc-tagged" ,ghc-tagged)
10078 ("ghc-semigroups" ,ghc-semigroups)
10079 ("ghc-nats" ,ghc-nats)))
10080 (home-page "https://github.com/phadej/aeson-compat")
10081 (synopsis "Compatibility layer for ghc-aeson")
10082 (description "This Haskell package provides compatibility layer for
10083 ghc-aeson.")
10084 (license license:bsd-3)))
10085
10086 (define-public ghc-persistent-template
10087 (package
10088 (name "ghc-persistent-template")
10089 (version "2.5.4")
10090 (source
10091 (origin
10092 (method url-fetch)
10093 (uri (string-append "https://hackage.haskell.org/package/"
10094 "persistent-template-" version "/"
10095 "persistent-template-" version ".tar.gz"))
10096 (sha256
10097 (base32
10098 "008afcy7zbw7bzp9jww8gdldb51kfm0fg4p0x4xcp61gx4679bjc"))))
10099 (build-system haskell-build-system)
10100 (arguments
10101 `(#:cabal-revision
10102 ("2" "03qgwk32krldph3blw5agiqcpccr3649hajyn8wm9k71zz82dpn6")))
10103 (inputs `(("ghc-persistent" ,ghc-persistent)
10104 ("ghc-monad-control" ,ghc-monad-control)
10105 ("ghc-text" ,ghc-text)
10106 ("ghc-aeson" ,ghc-aeson)
10107 ("ghc-aeson-compat" ,ghc-aeson-compat)
10108 ("ghc-monad-logger" ,ghc-monad-logger)
10109 ("ghc-unordered-containers" ,ghc-unordered-containers)
10110 ("ghc-tagged" ,ghc-tagged)
10111 ("ghc-path-pieces" ,ghc-path-pieces)
10112 ("ghc-http-api-data" ,ghc-http-api-data)))
10113 (native-inputs `(("ghc-hspec" ,ghc-hspec)
10114 ("ghc-quickcheck" ,ghc-quickcheck)))
10115 (home-page "https://www.yesodweb.com/book/persistent")
10116 (synopsis "Type-safe, non-relational, multi-backend persistence")
10117 (description "This Haskell package provides interfaces and helper
10118 functions for the ghc-persistent package.")
10119 (license license:expat)))
10120
10121 (define-public ghc-unliftio-core
10122 (package
10123 (name "ghc-unliftio-core")
10124 (version "0.1.1.0")
10125 (source
10126 (origin
10127 (method url-fetch)
10128 (uri (string-append "https://hackage.haskell.org/package/"
10129 "unliftio-core-" version "/"
10130 "unliftio-core-" version ".tar.gz"))
10131 (sha256
10132 (base32
10133 "1193fplsjm1lcr05xwvkj1rsyzx74i755f6kw3ikmxbsv0bv0l3m"))))
10134 (build-system haskell-build-system)
10135 (arguments
10136 `(#:cabal-revision
10137 ("1" "16bjwcsaghqqmyi69rq65dn3ydifyfaabq3ns37apdm00mwqbcj2")))
10138 (home-page
10139 "https://github.com/fpco/unliftio/tree/master/unliftio-core#readme")
10140 (synopsis "The MonadUnliftIO typeclass for unlifting monads to IO")
10141 (description "This Haskell package provides the core @code{MonadUnliftIO}
10142 typeclass, instances for base and transformers, and basic utility
10143 functions.")
10144 (license license:expat)))
10145
10146 (define-public ghc-microlens
10147 (package
10148 (name "ghc-microlens")
10149 (version "0.4.9.1")
10150 (source
10151 (origin
10152 (method url-fetch)
10153 (uri (string-append "https://hackage.haskell.org/package/"
10154 "microlens-" version "/"
10155 "microlens-" version ".tar.gz"))
10156 (sha256
10157 (base32
10158 "0j2nzf0vpx2anvsrg2w0vy2z4jn3kkcs2n6glkzblhn1j9piqh51"))))
10159 (build-system haskell-build-system)
10160 (home-page
10161 "https://github.com/aelve/microlens")
10162 (synopsis "Provides a tiny lens Haskell library with no dependencies")
10163 (description "This Haskell package provides a lens library, just like
10164 @code{ghc-lens}, but smaller. It provides essential lenses and
10165 traversals (like @code{_1} and @code{_Just}), as well as ones which are simply
10166 nice to have (like @code{each}, @code{at}, and @code{ix}), and some
10167 combinators (like @code{failing} and @code{singular}), but everything else is
10168 stripped. As the result, this package has no dependencies.")
10169 (license license:bsd-3)))
10170
10171 (define-public ghc-microlens-th
10172 (package
10173 (name "ghc-microlens-th")
10174 (version "0.4.2.2")
10175 (source
10176 (origin
10177 (method url-fetch)
10178 (uri (string-append "https://hackage.haskell.org/package/"
10179 "microlens-th-" version "/"
10180 "microlens-th-" version ".tar.gz"))
10181 (sha256
10182 (base32
10183 "02nj7lnl61yffi3c6wn341arxhld5r0vj6nzcb5zmqjhnqsv8c05"))))
10184 (build-system haskell-build-system)
10185 (inputs `(("ghc-microlens" ,ghc-microlens)
10186 ("ghc-th-abstraction" ,ghc-th-abstraction)))
10187 (home-page
10188 "https://github.com/aelve/microlens")
10189 (synopsis "Automatic generation of record lenses for
10190 @code{ghc-microlens}")
10191 (description "This Haskell package lets you automatically generate lenses
10192 for data types; code was extracted from the lens package, and therefore
10193 generated lenses are fully compatible with ones generated by lens (and can be
10194 used both from lens and microlens).")
10195 (license license:bsd-3)))
10196
10197 (define-public ghc-unliftio
10198 (package
10199 (name "ghc-unliftio")
10200 (version "0.2.7.0")
10201 (source
10202 (origin
10203 (method url-fetch)
10204 (uri (string-append
10205 "https://hackage.haskell.org/package/unliftio/unliftio-"
10206 version
10207 ".tar.gz"))
10208 (sha256
10209 (base32
10210 "0qql93lq5w7qghl454cc3s1i8v1jb4h08n82fqkw0kli4g3g9njs"))))
10211 (build-system haskell-build-system)
10212 (arguments `(#:tests? #f)) ; FIXME: hspec-discover not in PATH
10213 (inputs
10214 `(("ghc-async" ,ghc-async)
10215 ("ghc-stm" ,ghc-stm)
10216 ("ghc-unliftio-core" ,ghc-unliftio-core)))
10217 (native-inputs `(("ghc-hspec" ,ghc-hspec)))
10218 (home-page "https://github.com/fpco/unliftio")
10219 (synopsis "Provides MonadUnliftIO typecplass for unlifting monads to
10220 IO (batteries included)")
10221 (description "This Haskell package provides the core @code{MonadUnliftIO}
10222 typeclass, a number of common instances, and a collection of common functions
10223 working with it.")
10224 (license license:expat)))
10225
10226 (define-public ghc-persistent-sqlite
10227 (package
10228 (name "ghc-persistent-sqlite")
10229 (version "2.8.2")
10230 (source
10231 (origin
10232 (method url-fetch)
10233 (uri (string-append "https://hackage.haskell.org/package/"
10234 "persistent-sqlite-" version "/"
10235 "persistent-sqlite-" version ".tar.gz"))
10236 (sha256
10237 (base32
10238 "1chbmvjz46smhgnzhha3bbkhys3fys6dip1jr4v7xp1jf78zbyp6"))))
10239 (build-system haskell-build-system)
10240 (inputs `(("ghc-persistent" ,ghc-persistent)
10241 ("ghc-unliftio-core" ,ghc-unliftio-core)
10242 ("ghc-aeson" ,ghc-aeson)
10243 ("ghc-conduit" ,ghc-conduit)
10244 ("ghc-monad-logger" ,ghc-monad-logger)
10245 ("ghc-microlens-th" ,ghc-microlens-th)
10246 ("ghc-resourcet" ,ghc-resourcet)
10247 ("ghc-old-locale" ,ghc-old-locale)
10248 ("ghc-resource-pool" ,ghc-resource-pool)
10249 ("ghc-unordered-containers" ,ghc-unordered-containers)))
10250 (native-inputs `(("ghc-hspec" ,ghc-hspec)
10251 ("ghc-persistent-template" ,ghc-persistent-template)
10252 ("ghc-temporary" ,ghc-temporary)
10253 ("ghc-text" ,ghc-text)))
10254 (home-page
10255 "https://www.yesodweb.com/book/persistent")
10256 (synopsis "Backend for the persistent library using sqlite3")
10257 (description "This Haskell package includes a thin sqlite3 wrapper based
10258 on the direct-sqlite package, as well as the entire C library, so there are no
10259 system dependencies.")
10260 (license license:expat)))
10261
10262 (define-public ghc-email-validate
10263 (package
10264 (name "ghc-email-validate")
10265 (version "2.3.2.6")
10266 (source
10267 (origin
10268 (method url-fetch)
10269 (uri (string-append
10270 "https://hackage.haskell.org/package/"
10271 "email-validate/email-validate-"
10272 version
10273 ".tar.gz"))
10274 (sha256
10275 (base32
10276 "0chgylvc8xmhp933rdbmpg5sv4y7yg2h6kbf0ip1dzmbd5p55pa5"))))
10277 (build-system haskell-build-system)
10278 (inputs
10279 `(("ghc-attoparsec" ,ghc-attoparsec)
10280 ("ghc-hspec" ,ghc-hspec)
10281 ("ghc-quickcheck" ,ghc-quickcheck)
10282 ("ghc-doctest" ,ghc-doctest)))
10283 (home-page
10284 "https://github.com/Porges/email-validate-hs")
10285 (synopsis "Email address validator for Haskell")
10286 (description
10287 "This Haskell package provides a validator that can validate an email
10288 address string against RFC 5322.")
10289 (license license:bsd-3)))
10290
10291 (define-public ghc-bytes
10292 (package
10293 (name "ghc-bytes")
10294 (version "0.15.5")
10295 (source
10296 (origin
10297 (method url-fetch)
10298 (uri
10299 (string-append "https://hackage.haskell.org/package/bytes-"
10300 version "/bytes-"
10301 version ".tar.gz"))
10302 (file-name (string-append name "-" version ".tar.gz"))
10303 (sha256
10304 (base32
10305 "063il2vrn0p88r9gzndh4ijs0mxj37khkc9ym9bqdsv7ngk3b683"))))
10306 (build-system haskell-build-system)
10307 (inputs `(("ghc-cereal" ,ghc-cereal)
10308 ("cabal-doctest" ,cabal-doctest)
10309 ("ghc-doctest" ,ghc-doctest)
10310 ("ghc-scientific" ,ghc-scientific)
10311 ("ghc-text" ,ghc-text)
10312 ("ghc-transformers-compat" ,ghc-transformers-compat)
10313 ("ghc-unordered-containers" ,ghc-unordered-containers)
10314 ("ghc-void" ,ghc-void)
10315 ("ghc-vector" ,ghc-vector)))
10316 (synopsis "Serialization between @code{binary} and @code{cereal}")
10317 (description "This package provides a simple compatibility shim that lets
10318 you work with both @code{binary} and @code{cereal} with one chunk of
10319 serialization code.")
10320 (home-page "https://hackage.haskell.org/package/bytes")
10321 (license license:bsd-3)))
10322
10323 (define-public ghc-disk-free-space
10324 (package
10325 (name "ghc-disk-free-space")
10326 (version "0.1.0.1")
10327 (source
10328 (origin
10329 (method url-fetch)
10330 (uri (string-append "https://hackage.haskell.org/package/"
10331 "disk-free-space/disk-free-space-"
10332 version ".tar.gz"))
10333 (sha256
10334 (base32
10335 "07rqj8k1vh3cykq9yidpjxhgh1f7vgmjs6y1nv5kq2217ff4yypi"))))
10336 (build-system haskell-build-system)
10337 (home-page "https://github.com/redneb/disk-free-space")
10338 (synopsis "Retrieve information about disk space usage")
10339 (description "A cross-platform library for retrieving information about
10340 disk space usage.")
10341 (license license:bsd-3)))
10342
10343 (define-public ghc-xdg-basedir
10344 (package
10345 (name "ghc-xdg-basedir")
10346 (version "0.2.2")
10347 (source
10348 (origin
10349 (method url-fetch)
10350 (uri (string-append
10351 "https://hackage.haskell.org/package/xdg-basedir/"
10352 "xdg-basedir-" version ".tar.gz"))
10353 (sha256
10354 (base32
10355 "0azlzaxp2dn4l1nr7shsxah2magk1szf6fx0mv75az00qsjw6qg4"))))
10356 (build-system haskell-build-system)
10357 (home-page "http://github.com/willdonnelly/xdg-basedir")
10358 (synopsis "XDG Base Directory library for Haskell")
10359 (description "This package provides a library implementing the XDG Base Directory spec.")
10360 (license license:bsd-3)))
10361
10362 (define-public ghc-errorcall-eq-instance
10363 (package
10364 (name "ghc-errorcall-eq-instance")
10365 (version "0.3.0")
10366 (source
10367 (origin
10368 (method url-fetch)
10369 (uri (string-append "https://hackage.haskell.org/package/"
10370 "errorcall-eq-instance/errorcall-eq-instance-"
10371 version ".tar.gz"))
10372 (sha256
10373 (base32
10374 "0hqw82m8bbrxy5vgdwb83bhzdx070ibqrm9rshyja7cb808ahijm"))))
10375 (build-system haskell-build-system)
10376 (inputs
10377 `(("ghc-base-orphans" ,ghc-base-orphans)))
10378 (native-inputs
10379 `(("ghc-quickcheck" ,ghc-quickcheck)
10380 ("ghc-hspec" ,ghc-hspec)
10381 ("hspec-discover" ,hspec-discover)))
10382 (home-page "http://hackage.haskell.org/package/errorcall-eq-instance")
10383 (synopsis "Orphan Eq instance for ErrorCall")
10384 (description
10385 "Prior to @code{base-4.7.0.0} there was no @code{Eq} instance for @code{ErrorCall}.
10386 This package provides an orphan instance.")
10387 (license license:expat)))
10388
10389 (define-public ghc-missingh
10390 (package
10391 (name "ghc-missingh")
10392 (version "1.4.0.1")
10393 (source
10394 (origin
10395 (method url-fetch)
10396 (uri (string-append "https://hackage.haskell.org/package/MissingH/"
10397 "MissingH-" version ".tar.gz"))
10398 (sha256
10399 (base32
10400 "0wcvgrmav480w7nf4bl14yi0jq2yzanysxwzwas9hpb28vyjlgr8"))))
10401 (build-system haskell-build-system)
10402 ;; Tests require the unmaintained testpack package, which depends on the
10403 ;; outdated QuickCheck version 2.7, which can no longer be built with
10404 ;; recent versions of GHC and Haskell libraries.
10405 (arguments '(#:tests? #f))
10406 (inputs
10407 `(("ghc-network" ,ghc-network)
10408 ("ghc-parsec" ,ghc-parsec)
10409 ("ghc-hunit" ,ghc-hunit)
10410 ("ghc-regex-compat" ,ghc-regex-compat)
10411 ("ghc-hslogger" ,ghc-hslogger)
10412 ("ghc-random" ,ghc-random)
10413 ("ghc-old-time" ,ghc-old-time)
10414 ("ghc-old-locale" ,ghc-old-locale)))
10415 (native-inputs
10416 `(("ghc-errorcall-eq-instance" ,ghc-errorcall-eq-instance)
10417 ("ghc-quickcheck" ,ghc-quickcheck)
10418 ("ghc-hunit" ,ghc-hunit)))
10419 (home-page "http://software.complete.org/missingh")
10420 (synopsis "Large utility library")
10421 (description
10422 "MissingH is a library of all sorts of utility functions for Haskell
10423 programmers. It is written in pure Haskell and thus should be extremely
10424 portable and easy to use.")
10425 (license license:bsd-3)))
10426
10427 (define-public ghc-intervalmap
10428 (package
10429 (name "ghc-intervalmap")
10430 (version "0.6.0.0")
10431 (source
10432 (origin
10433 (method url-fetch)
10434 (uri (string-append "https://hackage.haskell.org/package/IntervalMap/"
10435 "IntervalMap-" version ".tar.gz"))
10436 (sha256
10437 (base32
10438 "06hin9wf1by8aqa7820fsi2339bh82184frkwz3jsb9sqa0hszcg"))))
10439 (build-system haskell-build-system)
10440 (native-inputs
10441 `(("ghc-quickcheck" ,ghc-quickcheck)))
10442 (home-page "http://www.chr-breitkopf.de/comp/IntervalMap")
10443 (synopsis "Containers for intervals, with efficient search")
10444 (description
10445 "This package provides ordered containers of intervals, with efficient
10446 search for all keys containing a point or overlapping an interval. See the
10447 example code on the home page for a quick introduction.")
10448 (license license:bsd-3)))
10449
10450 (define-public ghc-operational
10451 (package
10452 (name "ghc-operational")
10453 (version "0.2.3.5")
10454 (source
10455 (origin
10456 (method url-fetch)
10457 (uri (string-append "https://hackage.haskell.org/package/operational/"
10458 "operational-" version ".tar.gz"))
10459 (sha256
10460 (base32
10461 "1x2abg2q9d26h1vzj40r6k7k3gqgappbs4g9d853vvg77837km4i"))))
10462 (build-system haskell-build-system)
10463 (inputs
10464 `(("ghc-random" ,ghc-random)))
10465 (home-page "http://wiki.haskell.org/Operational")
10466 (synopsis "Implementation of difficult monads made easy with operational semantics")
10467 (description
10468 "This library makes it easy to implement monads with tricky control
10469 flow. This is useful for: writing web applications in a sequential style,
10470 programming games with a uniform interface for human and AI players and easy
10471 replay capababilities, implementing fast parser monads, designing monadic
10472 DSLs, etc.")
10473 (license license:bsd-3)))
10474
10475 (define-public ghc-gtk2hs-buildtools
10476 (package
10477 (name "ghc-gtk2hs-buildtools")
10478 (version "0.13.4.0")
10479 (source
10480 (origin
10481 (method url-fetch)
10482 (uri (string-append "https://hackage.haskell.org/package/"
10483 "gtk2hs-buildtools/gtk2hs-buildtools-"
10484 version ".tar.gz"))
10485 (sha256
10486 (base32
10487 "0yg6xmylgpylmnh5g33qwwn5x9bqckdvvv4czqzd9vrr12lnnghg"))))
10488 (build-system haskell-build-system)
10489 (inputs
10490 `(("ghc-random" ,ghc-random)
10491 ("ghc-hashtables" ,ghc-hashtables)))
10492 (native-inputs
10493 `(("ghc-alex" ,ghc-alex)
10494 ("ghc-happy" ,ghc-happy)))
10495 (home-page "http://projects.haskell.org/gtk2hs/")
10496 (synopsis "Tools to build the Gtk2Hs suite of user interface libraries")
10497 (description
10498 "This package provides a set of helper programs necessary to build the
10499 Gtk2Hs suite of libraries. These tools include a modified c2hs binding tool
10500 that is used to generate FFI declarations, a tool to build a type hierarchy
10501 that mirrors the C type hierarchy of GObjects found in glib, and a generator
10502 for signal declarations that are used to call back from C to Haskell. These
10503 tools are not needed to actually run Gtk2Hs programs.")
10504 (license license:gpl2)))
10505
10506 (define-public ghc-chart
10507 (package
10508 (name "ghc-chart")
10509 (version "1.9")
10510 (source
10511 (origin
10512 (method url-fetch)
10513 (uri (string-append "https://hackage.haskell.org/package/Chart/"
10514 "Chart-" version ".tar.gz"))
10515 (sha256
10516 (base32
10517 "1f5azj17y8xsb3gjhf7gg1gnnlq12rxkmfjmgcly314d7vghs05z"))))
10518 (build-system haskell-build-system)
10519 (inputs
10520 `(("ghc-old-locale" ,ghc-old-locale)
10521 ("ghc-lens" ,ghc-lens)
10522 ("ghc-colour" ,ghc-colour)
10523 ("ghc-data-default-class" ,ghc-data-default-class)
10524 ("ghc-operational" ,ghc-operational)
10525 ("ghc-vector" ,ghc-vector)))
10526 (home-page "https://github.com/timbod7/haskell-chart/wiki")
10527 (synopsis "Library for generating 2D charts and plots")
10528 (description
10529 "This package provides a library for generating 2D charts and plots, with
10530 backends provided by the @code{Cairo} and @code{Diagrams} libraries.")
10531 (license license:bsd-3)))
10532
10533 (define-public ghc-wcwidth
10534 (package
10535 (name "ghc-wcwidth")
10536 (version "0.0.2")
10537 (source
10538 (origin
10539 (method url-fetch)
10540 (uri (string-append "https://hackage.haskell.org/package/wcwidth/wcwidth-"
10541 version ".tar.gz"))
10542 (sha256
10543 (base32
10544 "1n1fq7v64b59ajf5g50iqj9sa34wm7s2j3viay0kxpmvlcv8gipz"))))
10545 (build-system haskell-build-system)
10546 (inputs
10547 `(("ghc-setlocale" ,ghc-setlocale)
10548 ("ghc-utf8-string" ,ghc-utf8-string)
10549 ("ghc-attoparsec" ,ghc-attoparsec)))
10550 (home-page "https://github.com/solidsnack/wcwidth/")
10551 (synopsis "Haskell bindings to wcwidth")
10552 (description "This package provides Haskell bindings to your system's
10553 native wcwidth and a command line tool to examine the widths assigned by it.
10554 The command line tool can compile a width table to Haskell code that assigns
10555 widths to the Char type.")
10556 (license license:bsd-3)))
10557
10558 (define-public ghc-wcwidth-bootstrap
10559 (package
10560 (inherit ghc-wcwidth)
10561 (name "ghc-wcwidth-bootstrap")
10562 (inputs
10563 `(("ghc-setlocale" ,ghc-setlocale)
10564 ("ghc-utf8-string" ,ghc-utf8-string)
10565 ("ghc-attoparsec" ,ghc-attoparsec-bootstrap)))
10566 (properties '(hidden? #t))))
10567
10568 (define-public ghc-rio
10569 (package
10570 (name "ghc-rio")
10571 (version "0.1.5.0")
10572 (source
10573 (origin
10574 (method url-fetch)
10575 (uri (string-append
10576 "https://hackage.haskell.org/package/rio/rio-"
10577 version ".tar.gz"))
10578 (sha256
10579 (base32
10580 "064h8a4hp53a479d3ak0vmqbx8hi0cpg7zn4wp23rjy26dka8p7g"))))
10581 (build-system haskell-build-system)
10582 (arguments
10583 `(#:phases
10584 (modify-phases %standard-phases
10585 (add-after 'unpack 'add-setup-script
10586 (lambda _
10587 ;; The usual "Setup.hs" script is missing from the source.
10588 (with-output-to-file "Setup.hs"
10589 (lambda ()
10590 (format #t "import Distribution.Simple~%")
10591 (format #t "main = defaultMain~%"))))))))
10592 (inputs
10593 `(("ghc-exceptions" ,ghc-exceptions)
10594 ("ghc-hashable" ,ghc-hashable)
10595 ("ghc-microlens" ,ghc-microlens)
10596 ("ghc-primitive" ,ghc-primitive)
10597 ("ghc-text" ,ghc-text)
10598 ("ghc-typed-process" ,ghc-typed-process)
10599 ("ghc-unliftio" ,ghc-unliftio)
10600 ("ghc-unordered-containers" ,ghc-unordered-containers)
10601 ("ghc-vector" ,ghc-vector)))
10602 (native-inputs
10603 `(("ghc-hspec" ,ghc-hspec)
10604 ("hspec-discover" ,hspec-discover)))
10605 (home-page "https://github.com/commercialhaskell/rio#readme")
10606 (synopsis "A standard library for Haskell")
10607 (description "This package works as a prelude replacement for Haskell,
10608 providing more functionality and types out of the box than the standard
10609 prelude (such as common data types like @code{ByteString} and
10610 @code{Text}), as well as removing common ``gotchas'', like partial
10611 functions and lazy I/O. The guiding principle here is:
10612 @itemize
10613 @item If something is safe to use in general and has no expected naming
10614 conflicts, expose it.
10615 @item If something should not always be used, or has naming conflicts,
10616 expose it from another module in the hierarchy.
10617 @end itemize")
10618 (license license:expat)))
10619
10620 (define-public ghc-cairo
10621 (package
10622 (name "ghc-cairo")
10623 (version "0.13.5.0")
10624 (source
10625 (origin
10626 (method url-fetch)
10627 (uri (string-append "https://hackage.haskell.org/package/cairo/"
10628 "cairo-" version ".tar.gz"))
10629 (sha256
10630 (base32
10631 "1wxylv4d8120ri0vgar168ikqa9m6533ipdwi38qlmxmw20ws2j2"))))
10632 (build-system haskell-build-system)
10633 (arguments
10634 `(#:modules ((guix build haskell-build-system)
10635 (guix build utils)
10636 (ice-9 match)
10637 (srfi srfi-26))
10638 #:phases
10639 (modify-phases %standard-phases
10640 ;; FIXME: This is a copy of the standard configure phase with a tiny
10641 ;; difference: this package needs the -package-db flag to be passed
10642 ;; to "runhaskell" in addition to the "configure" action, because it
10643 ;; depends on gtk2hs-buildtools, which provide setup hooks. Without
10644 ;; this option the Setup.hs file cannot be evaluated. The
10645 ;; haskell-build-system should be changed to pass "-package-db" to
10646 ;; "runhaskell" in any case.
10647 (replace 'configure
10648 (lambda* (#:key outputs inputs tests? (configure-flags '())
10649 #:allow-other-keys)
10650 (let* ((out (assoc-ref outputs "out"))
10651 (name-version (strip-store-file-name out))
10652 (input-dirs (match inputs
10653 (((_ . dir) ...)
10654 dir)
10655 (_ '())))
10656 (ghc-path (getenv "GHC_PACKAGE_PATH"))
10657 (params (append `(,(string-append "--prefix=" out))
10658 `(,(string-append "--libdir=" out "/lib"))
10659 `(,(string-append "--bindir=" out "/bin"))
10660 `(,(string-append
10661 "--docdir=" out
10662 "/share/doc/" name-version))
10663 '("--libsubdir=$compiler/$pkg-$version")
10664 '("--package-db=../package.conf.d")
10665 '("--global")
10666 `(,@(map
10667 (cut string-append "--extra-include-dirs=" <>)
10668 (search-path-as-list '("include") input-dirs)))
10669 `(,@(map
10670 (cut string-append "--extra-lib-dirs=" <>)
10671 (search-path-as-list '("lib") input-dirs)))
10672 (if tests?
10673 '("--enable-tests")
10674 '())
10675 configure-flags)))
10676 (unsetenv "GHC_PACKAGE_PATH")
10677 (apply invoke "runhaskell" "-package-db=../package.conf.d"
10678 "Setup.hs" "configure" params)
10679 (setenv "GHC_PACKAGE_PATH" ghc-path)
10680 #t))))))
10681 (inputs
10682 `(("ghc-utf8-string" ,ghc-utf8-string)
10683 ("ghc-text" ,ghc-text)
10684 ("cairo" ,cairo)))
10685 (native-inputs
10686 `(("ghc-gtk2hs-buildtools" ,ghc-gtk2hs-buildtools)
10687 ("pkg-config" ,pkg-config)))
10688 (home-page "http://projects.haskell.org/gtk2hs/")
10689 (synopsis "Haskell bindings to the Cairo vector graphics library")
10690 (description
10691 "Cairo is a library to render high quality vector graphics. There exist
10692 various backends that allows rendering to Gtk windows, PDF, PS, PNG and SVG
10693 documents, amongst others.")
10694 (license license:bsd-3)))
10695
10696 (define-public ghc-chart-cairo
10697 (package
10698 (name "ghc-chart-cairo")
10699 (version "1.9")
10700 (source
10701 (origin
10702 (method url-fetch)
10703 (uri (string-append "https://hackage.haskell.org/package/Chart-cairo/"
10704 "Chart-cairo-" version ".tar.gz"))
10705 (sha256
10706 (base32
10707 "0iany6lfyfb1cw0pxfs5aw5k0a6x41m6ql9ad9w59biwdckbsyqr"))))
10708 (build-system haskell-build-system)
10709 (inputs
10710 `(("ghc-old-locale" ,ghc-old-locale)
10711 ("ghc-cairo" ,ghc-cairo)
10712 ("ghc-colour" ,ghc-colour)
10713 ("ghc-data-default-class" ,ghc-data-default-class)
10714 ("ghc-operational" ,ghc-operational)
10715 ("ghc-lens" ,ghc-lens)
10716 ("ghc-chart" ,ghc-chart)))
10717 (home-page "https://github.com/timbod7/haskell-chart/wiki")
10718 (synopsis "Cairo backend for Charts")
10719 (description "This package provides a Cairo vector graphics rendering
10720 backend for the Charts library.")
10721 (license license:bsd-3)))
10722
10723 (define-public ghc-atomic-write
10724 (package
10725 (name "ghc-atomic-write")
10726 (version "0.2.0.5")
10727 (source
10728 (origin
10729 (method url-fetch)
10730 (uri (string-append
10731 "https://hackage.haskell.org/package/atomic-write/atomic-write-"
10732 version
10733 ".tar.gz"))
10734 (sha256
10735 (base32
10736 "1iaq0hprxcv0sl1sgwcgmm87zraf738va1bciwnx2jkk3k1v9iyv"))))
10737 (build-system haskell-build-system)
10738 (inputs
10739 `(("ghc-temporary" ,ghc-temporary)
10740 ("ghc-unix-compat" ,ghc-unix-compat)
10741 ("ghc-text" ,ghc-text)))
10742 (native-inputs
10743 `(("ghc-temporary" ,ghc-temporary)
10744 ("ghc-unix-compat" ,ghc-unix-compat)
10745 ("ghc-text" ,ghc-text)
10746 ("ghc-hspec" ,ghc-hspec)
10747 ("hspec-discover" ,hspec-discover)))
10748 (home-page "https://github.com/stackbuilders/atomic-write")
10749 (synopsis "Atomically write to a file")
10750 (description
10751 "Atomically write to a file on POSIX-compliant systems while preserving
10752 permissions. @code{mv} is an atomic operation. This makes it simple to write
10753 to a file atomically just by using the @code{mv} operation. However, this
10754 will destroy the permissions on the original file. This library preserves
10755 permissions while atomically writing to a file.")
10756 (license license:expat)))
10757
10758 (define-public ghc-cereal-conduit
10759 (package
10760 (name "ghc-cereal-conduit")
10761 (version "0.8.0")
10762 (source
10763 (origin
10764 (method url-fetch)
10765 (uri (string-append "https://hackage.haskell.org/package/"
10766 "cereal-conduit/cereal-conduit-"
10767 version ".tar.gz"))
10768 (sha256
10769 (base32
10770 "1srr7agvgfw78q5s1npjq5sgynvhjgllpihiv37ylkwqm4c4ap6r"))))
10771 (build-system haskell-build-system)
10772 (inputs
10773 `(("ghc-conduit" ,ghc-conduit)
10774 ("ghc-resourcet" ,ghc-resourcet)
10775 ("ghc-cereal" ,ghc-cereal)))
10776 (native-inputs
10777 `(("ghc-hunit" ,ghc-hunit)))
10778 (home-page "https://github.com/snoyberg/conduit")
10779 (synopsis "Turn Data.Serialize Gets and Puts into Sources, Sinks, and Conduits")
10780 (description
10781 "This package turn @code{Data.Serialize} @code{Gets} and @code{Puts} into
10782 @code{Sources}, @code{Sinks}, and @code{Conduits}.")
10783 (license license:bsd-3)))
10784
10785 (define-public ghc-lzma
10786 (package
10787 (name "ghc-lzma")
10788 (version "0.0.0.3")
10789 (source
10790 (origin
10791 (method url-fetch)
10792 (uri (string-append "https://hackage.haskell.org/package/lzma/"
10793 "lzma-" version ".tar.gz"))
10794 (sha256
10795 (base32
10796 "0i416gqi8j55nd1pqbkxvf3f6hn6fjys6gq98lkkxphva71j30xg"))))
10797 (build-system haskell-build-system)
10798 (arguments
10799 '(#:tests? #f ; requires older versions of QuickCheck and tasty.
10800 #:cabal-revision
10801 ("3" "1sify6gnsalyp6dakfzi0mdy5jcz2kcp9jsdsgkmxd40nfzgd44m")))
10802 (native-inputs
10803 `(("ghc-hunit" ,ghc-hunit)
10804 ("ghc-quickcheck" ,ghc-quickcheck)
10805 ("ghc-tasty" ,ghc-tasty)
10806 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
10807 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
10808 (home-page "https://github.com/hvr/lzma")
10809 (synopsis "LZMA/XZ compression and decompression")
10810 (description
10811 "This package provides a pure interface for compressing and
10812 decompressing LZMA streams of data represented as lazy @code{ByteString}s. A
10813 monadic incremental interface is provided as well.")
10814 (license license:bsd-3)))
10815
10816 (define-public ghc-stm-conduit
10817 (package
10818 (name "ghc-stm-conduit")
10819 (version "4.0.0")
10820 (source
10821 (origin
10822 (method url-fetch)
10823 (uri (string-append "https://hackage.haskell.org/package/stm-conduit/"
10824 "stm-conduit-" version ".tar.gz"))
10825 (sha256
10826 (base32
10827 "0paapljn7nqfzrx889y0n8sszci38mdiaxkgr0bb00ph9246rr7z"))))
10828 (build-system haskell-build-system)
10829 (inputs
10830 `(("ghc-stm" ,ghc-stm)
10831 ("ghc-stm-chans" ,ghc-stm-chans)
10832 ("ghc-cereal" ,ghc-cereal)
10833 ("ghc-cereal-conduit" ,ghc-cereal-conduit)
10834 ("ghc-conduit" ,ghc-conduit)
10835 ("ghc-conduit-extra" ,ghc-conduit-extra)
10836 ("ghc-exceptions" ,ghc-exceptions)
10837 ("ghc-resourcet" ,ghc-resourcet)
10838 ("ghc-async" ,ghc-async)
10839 ("ghc-monad-loops" ,ghc-monad-loops)
10840 ("ghc-unliftio" ,ghc-unliftio)))
10841 (native-inputs
10842 `(("ghc-doctest" ,ghc-doctest)
10843 ("ghc-quickcheck" ,ghc-quickcheck)
10844 ("ghc-hunit" ,ghc-hunit)
10845 ("ghc-test-framework" ,ghc-test-framework)
10846 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
10847 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
10848 (home-page "https://github.com/cgaebel/stm-conduit")
10849 (synopsis "Introduces conduits to channels and promotes using conduits concurrently")
10850 (description
10851 "This package provides two simple conduit wrappers around STM channels: a
10852 source and a sink.")
10853 (license license:bsd-3)))
10854
10855 (define-public ghc-bindings-dsl
10856 (package
10857 (name "ghc-bindings-dsl")
10858 (version "1.0.25")
10859 (source
10860 (origin
10861 (method url-fetch)
10862 (uri (string-append "https://hackage.haskell.org/package/bindings-DSL/"
10863 "bindings-DSL-" version ".tar.gz"))
10864 (sha256
10865 (base32
10866 "0kqrd78nspl3lk4a0fqn47d8dirjg3b24dkvkigcrlb81hw35pk3"))))
10867 (build-system haskell-build-system)
10868 (home-page "https://github.com/jwiegley/bindings-dsl/wiki")
10869 (synopsis "FFI domain specific language, on top of hsc2hs")
10870 (description
10871 "This is a set of macros to be used when writing Haskell FFI. They were
10872 designed to be able to fully describe C interfaces, so that @code{hsc2hs} can
10873 extract from them all Haskell code needed to mimic such interfaces. All
10874 Haskell names used are automatically derived from C names, structures are
10875 mapped to Haskell instances of @code{Storable}, and there are also macros you
10876 can use with C code to help write bindings to inline functions or macro
10877 functions.")
10878 (license license:bsd-3)))
10879
10880 (define-public ghc-lzma-conduit
10881 (package
10882 (name "ghc-lzma-conduit")
10883 (version "1.2.1")
10884 (source
10885 (origin
10886 (method url-fetch)
10887 (uri (string-append "https://hackage.haskell.org/package/lzma-conduit/"
10888 "lzma-conduit-" version ".tar.gz"))
10889 (sha256
10890 (base32
10891 "0hm72da7xk9l3zxjh274yg444vf405djxqbkf3q3p2qhicmxlmg9"))))
10892 (build-system haskell-build-system)
10893 (inputs
10894 `(("ghc-conduit" ,ghc-conduit)
10895 ("ghc-lzma" ,ghc-lzma)
10896 ("ghc-resourcet" ,ghc-resourcet)))
10897 (native-inputs
10898 `(("ghc-base-compat" ,ghc-base-compat)
10899 ("ghc-test-framework" ,ghc-test-framework)
10900 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
10901 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)
10902 ("ghc-hunit" ,ghc-hunit)
10903 ("ghc-quickcheck" ,ghc-quickcheck)))
10904 (home-page "https://github.com/alphaHeavy/lzma-conduit")
10905 (synopsis "Conduit interface for lzma/xz compression")
10906 (description
10907 "This package provides a @code{Conduit} interface for the LZMA
10908 compression algorithm used in the @code{.xz} file format.")
10909 (license license:bsd-3)))
10910
10911 (define-public ghc-bzlib-conduit
10912 (package
10913 (name "ghc-bzlib-conduit")
10914 (version "0.3.0.1")
10915 (source
10916 (origin
10917 (method url-fetch)
10918 (uri (string-append "https://hackage.haskell.org/package/bzlib-conduit/"
10919 "bzlib-conduit-" version ".tar.gz"))
10920 (sha256
10921 (base32
10922 "0fd2hnr782s7qgipazg2yxwia9qqhkvm9bcm90773c3zkxa13n23"))))
10923 (build-system haskell-build-system)
10924 (inputs
10925 `(("ghc-bindings-dsl" ,ghc-bindings-dsl)
10926 ("ghc-conduit" ,ghc-conduit)
10927 ("ghc-data-default-class" ,ghc-data-default-class)
10928 ("ghc-resourcet" ,ghc-resourcet)))
10929 (native-inputs
10930 `(("ghc-hspec" ,ghc-hspec)
10931 ("ghc-random" ,ghc-random)))
10932 (home-page "https://github.com/snoyberg/bzlib-conduit")
10933 (synopsis "Streaming compression/decompression via conduits")
10934 (description
10935 "This package provides Haskell bindings to bzlib and Conduit support for
10936 streaming compression and decompression.")
10937 (license license:bsd-3)))
10938
10939 (define-public ghc-pqueue
10940 (package
10941 (name "ghc-pqueue")
10942 (version "1.4.1.1")
10943 (source
10944 (origin
10945 (method url-fetch)
10946 (uri (string-append "https://hackage.haskell.org/package/"
10947 "pqueue/pqueue-" version ".tar.gz"))
10948 (sha256
10949 (base32
10950 "1zvwm1zcqqq5n101s1brjhgbay8rf9fviq6gxbplf40i63m57p1x"))))
10951 (build-system haskell-build-system)
10952 (native-inputs
10953 `(("ghc-quickcheck" ,ghc-quickcheck)))
10954 (home-page "https://hackage.haskell.org/package/pqueue")
10955 (synopsis "Reliable, persistent, fast priority queues")
10956 (description
10957 "This package provides a fast, reliable priority queue implementation
10958 based on a binomial heap.")
10959 (license license:bsd-3)))
10960
10961 (define-public ghc-conduit-algorithms
10962 (package
10963 (name "ghc-conduit-algorithms")
10964 (version "0.0.8.1")
10965 (source
10966 (origin
10967 (method url-fetch)
10968 (uri (string-append "https://hackage.haskell.org/package/"
10969 "conduit-algorithms/conduit-algorithms-"
10970 version ".tar.gz"))
10971 (sha256
10972 (base32
10973 "07gx2q3d1bbfw14q41rmqg0i4m018pci10lswc0k1ij6lw7sb9fd"))))
10974 (build-system haskell-build-system)
10975 (inputs
10976 `(("ghc-async" ,ghc-async)
10977 ("ghc-bzlib-conduit" ,ghc-bzlib-conduit)
10978 ("ghc-conduit" ,ghc-conduit)
10979 ("ghc-conduit-combinators" ,ghc-conduit-combinators)
10980 ("ghc-conduit-extra" ,ghc-conduit-extra)
10981 ("ghc-exceptions" ,ghc-exceptions)
10982 ("ghc-lzma-conduit" ,ghc-lzma-conduit)
10983 ("ghc-monad-control" ,ghc-monad-control)
10984 ("ghc-pqueue" ,ghc-pqueue)
10985 ("ghc-resourcet" ,ghc-resourcet)
10986 ("ghc-stm" ,ghc-stm)
10987 ("ghc-stm-conduit" ,ghc-stm-conduit)
10988 ("ghc-streaming-commons" ,ghc-streaming-commons)
10989 ("ghc-unliftio-core" ,ghc-unliftio-core)
10990 ("ghc-vector" ,ghc-vector)))
10991 (native-inputs
10992 `(("ghc-hunit" ,ghc-hunit)
10993 ("ghc-test-framework" ,ghc-test-framework)
10994 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
10995 ("ghc-test-framework-th" ,ghc-test-framework-th)))
10996 (home-page "https://github.com/luispedro/conduit-algorithms#readme")
10997 (synopsis "Conduit-based algorithms")
10998 (description
10999 "This package provides algorithms on @code{Conduits}, including higher
11000 level asynchronous processing and some other utilities.")
11001 (license license:expat)))
11002
11003 (define-public ghc-interpolate
11004 (package
11005 (name "ghc-interpolate")
11006 (version "0.2.0")
11007 (source
11008 (origin
11009 (method url-fetch)
11010 (uri (string-append "https://hackage.haskell.org/package/interpolate/"
11011 "interpolate-" version ".tar.gz"))
11012 (sha256
11013 (base32
11014 "1gkaj98yz363v38fv78sqby236mp8yqwqcilx7kr2b9z0w3204bf"))))
11015 (build-system haskell-build-system)
11016 (inputs
11017 `(("ghc-haskell-src-meta" ,ghc-haskell-src-meta)))
11018 (native-inputs
11019 `(("ghc-base-compat" ,ghc-base-compat)
11020 ("ghc-hspec" ,ghc-hspec)
11021 ("ghc-quickcheck" ,ghc-quickcheck)
11022 ("ghc-quickcheck-instances" ,ghc-quickcheck-instances)
11023 ("ghc-text" ,ghc-text)
11024 ("hspec-discover" ,hspec-discover)))
11025 (home-page "https://github.com/sol/interpolate")
11026 (synopsis "String interpolation library")
11027 (description "This package provides a string interpolation library for
11028 Haskell.")
11029 (license license:expat)))
11030
11031 (define-public ghc-hpack
11032 (package
11033 (name "ghc-hpack")
11034 (version "0.28.2")
11035 (source
11036 (origin
11037 (method url-fetch)
11038 (uri (string-append "https://hackage.haskell.org/package/hpack/"
11039 "hpack-" version ".tar.gz"))
11040 (sha256
11041 (base32
11042 "18w0h76jdp3mk9vin8da9iz3cwhcxmw787xy8wlh8bxcpcr16q5r"))))
11043 (build-system haskell-build-system)
11044 (inputs
11045 `(("ghc-aeson" ,ghc-aeson)
11046 ("ghc-bifunctors" ,ghc-bifunctors)
11047 ("ghc-cryptonite" ,ghc-cryptonite)
11048 ("ghc-glob" ,ghc-glob)
11049 ("ghc-http-client" ,ghc-http-client)
11050 ("ghc-http-client-tls" ,ghc-http-client-tls)
11051 ("ghc-http-types" ,ghc-http-types)
11052 ("ghc-scientific" ,ghc-scientific)
11053 ("ghc-text" ,ghc-text)
11054 ("ghc-unordered-containers" ,ghc-unordered-containers)
11055 ("ghc-vector" ,ghc-vector)
11056 ("ghc-yaml" ,ghc-yaml)))
11057 (native-inputs
11058 `(("ghc-hspec" ,ghc-hspec)
11059 ("ghc-hunit" ,ghc-hunit)
11060 ("ghc-interpolate" ,ghc-interpolate)
11061 ("ghc-mockery" ,ghc-mockery)
11062 ("ghc-quickcheck" ,ghc-quickcheck)
11063 ("ghc-temporary" ,ghc-temporary)
11064 ("hspec-discover" ,hspec-discover)))
11065 (home-page "https://github.com/sol/hpack")
11066 (synopsis "Tools for an alternative Haskell package format")
11067 (description
11068 "Hpack is a format for Haskell packages. It is an alternative to the
11069 Cabal package format and follows different design principles. Hpack packages
11070 are described in a file named @code{package.yaml}. Both @code{cabal2nix} and
11071 @code{stack} support @code{package.yaml} natively. For other build tools the
11072 @code{hpack} executable can be used to generate a @code{.cabal} file from
11073 @code{package.yaml}.")
11074 (license license:expat)))
11075
11076 (define-public ghc-raw-strings-qq
11077 (package
11078 (name "ghc-raw-strings-qq")
11079 (version "1.1")
11080 (source
11081 (origin
11082 (method url-fetch)
11083 (uri (string-append "https://hackage.haskell.org/package/"
11084 "raw-strings-qq/raw-strings-qq-"
11085 version ".tar.gz"))
11086 (sha256
11087 (base32
11088 "1lxy1wy3awf52968iy5y9r5z4qgnn2sxkdrh7js3m9gadb11w09f"))))
11089 (build-system haskell-build-system)
11090 (native-inputs `(("ghc-hunit" ,ghc-hunit)))
11091 (home-page "https://github.com/23Skidoo/raw-strings-qq")
11092 (synopsis "Raw string literals for Haskell")
11093 (description
11094 "This package provides a quasiquoter for raw string literals, i.e. string
11095 literals that don't recognise the standard escape sequences. Basically, they
11096 make your code more readable by freeing you from the responsibility to escape
11097 backslashes. They are useful when working with regular expressions,
11098 DOS/Windows paths and markup languages (such as XML).")
11099 (license license:bsd-3)))
11100
11101 (define-public ghc-inline-c
11102 (package
11103 (name "ghc-inline-c")
11104 (version "0.6.1.0")
11105 (source
11106 (origin
11107 (method url-fetch)
11108 (uri (string-append "https://hackage.haskell.org/package/inline-c/"
11109 "inline-c-" version ".tar.gz"))
11110 (sha256
11111 (base32
11112 "0vbfrsqsi7mdziqsnj68bsqlwbqxxhvrmy9rv6w8z18d1m8w3n6h"))))
11113 (build-system haskell-build-system)
11114 (arguments
11115 `(#:phases
11116 (modify-phases %standard-phases
11117 (add-after 'unpack 'create-Setup.hs
11118 (lambda _
11119 (with-output-to-file "Setup.hs"
11120 (lambda _
11121 (display "\
11122 import Distribution.Simple
11123 main = defaultMain")))
11124 #t)))))
11125 (inputs
11126 `(("ghc-ansi-wl-pprint" ,ghc-ansi-wl-pprint)
11127 ("ghc-cryptohash" ,ghc-cryptohash)
11128 ("ghc-hashable" ,ghc-hashable)
11129 ("ghc-parsec" ,ghc-parsec)
11130 ("ghc-parsers" ,ghc-parsers)
11131 ("ghc-unordered-containers" ,ghc-unordered-containers)
11132 ("ghc-vector" ,ghc-vector)))
11133 (native-inputs
11134 `(("ghc-quickcheck" ,ghc-quickcheck)
11135 ("ghc-hspec" ,ghc-hspec)
11136 ("ghc-raw-strings-qq" ,ghc-raw-strings-qq)
11137 ("ghc-regex-posix" ,ghc-regex-posix)))
11138 (home-page "http://hackage.haskell.org/package/inline-c")
11139 (synopsis "Write Haskell source files including C code inline")
11140 (description
11141 "inline-c lets you seamlessly call C libraries and embed high-performance
11142 inline C code in Haskell modules. Haskell and C can be freely intermixed in
11143 the same source file, and data passed to and from code in either language with
11144 minimal overhead. No FFI required.")
11145 (license license:expat)))
11146
11147 (define-public ghc-weigh
11148 (package
11149 (name "ghc-weigh")
11150 (version "0.0.12")
11151 (source
11152 (origin
11153 (method url-fetch)
11154 (uri (string-append "https://hackage.haskell.org/package/weigh/"
11155 "weigh-" version ".tar.gz"))
11156 (sha256
11157 (base32
11158 "0zw2a997gxgdzqmd7j730kxgynzmjvvlkw84dajmfzf1v9pbij7x"))))
11159 (build-system haskell-build-system)
11160 (inputs
11161 `(("ghc-split" ,ghc-split)
11162 ("ghc-temporary" ,ghc-temporary)))
11163 (home-page "https://github.com/fpco/weigh#readme")
11164 (synopsis "Measure allocations of a Haskell functions/values")
11165 (description "This package provides tools to measure the memory usage of a
11166 Haskell value or function.")
11167 (license license:bsd-3)))
11168
11169 (define-public ghc-linear
11170 (package
11171 (name "ghc-linear")
11172 (version "1.20.8")
11173 (source
11174 (origin
11175 (method url-fetch)
11176 (uri (string-append "https://hackage.haskell.org/package/linear/"
11177 "linear-" version ".tar.gz"))
11178 (sha256
11179 (base32
11180 "046vkvxlb0s286qr55s0c6db0rlwbm1cmlmwhrrkqbkzhfcipgay"))))
11181 (build-system haskell-build-system)
11182 (inputs
11183 `(("ghc-adjunctions" ,ghc-adjunctions)
11184 ("ghc-base-orphans" ,ghc-base-orphans)
11185 ("ghc-bytes" ,ghc-bytes)
11186 ("ghc-cereal" ,ghc-cereal)
11187 ("ghc-distributive" ,ghc-distributive)
11188 ("ghc-hashable" ,ghc-hashable)
11189 ("ghc-lens" ,ghc-lens)
11190 ("ghc-reflection" ,ghc-reflection)
11191 ("ghc-semigroups" ,ghc-semigroups)
11192 ("ghc-semigroupoids" ,ghc-semigroupoids)
11193 ("ghc-tagged" ,ghc-tagged)
11194 ("ghc-transformers-compat" ,ghc-transformers-compat)
11195 ("ghc-unordered-containers" ,ghc-unordered-containers)
11196 ("ghc-vector" ,ghc-vector)
11197 ("ghc-void" ,ghc-void)))
11198 (native-inputs
11199 `(("cabal-doctest" ,cabal-doctest)
11200 ("ghc-doctest" ,ghc-doctest)
11201 ("ghc-simple-reflect" ,ghc-simple-reflect)
11202 ("ghc-test-framework" ,ghc-test-framework)
11203 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
11204 ("ghc-hunit" ,ghc-hunit)))
11205 (home-page "http://github.com/ekmett/linear/")
11206 (synopsis "Linear algebra library for Haskell")
11207 (description
11208 "This package provides types and combinators for linear algebra on free
11209 vector spaces.")
11210 (license license:bsd-3)))
11211
11212 (define-public ghc-safe-exceptions
11213 (package
11214 (name "ghc-safe-exceptions")
11215 (version "0.1.7.0")
11216 (source
11217 (origin
11218 (method url-fetch)
11219 (uri (string-append "https://hackage.haskell.org/package/"
11220 "safe-exceptions/safe-exceptions-"
11221 version ".tar.gz"))
11222 (sha256
11223 (base32
11224 "0sd0zfsm9pcll5bzzj523rbn45adjrnavdkz52hgmdjjgdcdrk8q"))))
11225 (build-system haskell-build-system)
11226 (arguments
11227 '(#:cabal-revision
11228 ("4" "0fid41gishzsyb47wzxhd5falandfirqcp760hcja81qjpfmqd32")))
11229 (inputs `(("ghc-exceptions" ,ghc-exceptions)))
11230 (native-inputs
11231 `(("ghc-hspec" ,ghc-hspec)
11232 ("ghc-void" ,ghc-void)
11233 ("hspec-discover" ,hspec-discover)))
11234 (home-page "https://github.com/fpco/safe-exceptions")
11235 (synopsis "Safe, consistent, and easy exception handling")
11236 (description "Runtime exceptions - as exposed in @code{base} by the
11237 @code{Control.Exception} module - have long been an intimidating part of the
11238 Haskell ecosystem. This package is intended to overcome this. It provides a
11239 safe and simple API on top of the existing exception handling machinery. The
11240 API is equivalent to the underlying implementation in terms of power but
11241 encourages best practices to minimize the chances of getting the exception
11242 handling wrong.")
11243 (license license:expat)))
11244
11245 (define-public ghc-inline-c-cpp
11246 (package
11247 (name "ghc-inline-c-cpp")
11248 (version "0.2.2.1")
11249 (source
11250 (origin
11251 (method url-fetch)
11252 (uri (string-append "https://hackage.haskell.org/package/inline-c-cpp/"
11253 "inline-c-cpp-" version ".tar.gz"))
11254 (sha256
11255 (base32
11256 "1rk7fmpkmxw9hhwr8df29kadnf0ybnwj64ggdbnsdrpfyhnkisci"))))
11257 (build-system haskell-build-system)
11258 (arguments
11259 `(#:phases
11260 (modify-phases %standard-phases
11261 (add-after 'unpack 'create-Setup.hs
11262 (lambda _
11263 (with-output-to-file "Setup.hs"
11264 (lambda _
11265 (display "\
11266 import Distribution.Simple
11267 main = defaultMain")))
11268 #t)))))
11269 (inputs
11270 `(("ghc-inline-c" ,ghc-inline-c)
11271 ("ghc-safe-exceptions" ,ghc-safe-exceptions)))
11272 (native-inputs
11273 `(("ghc-hspec" ,ghc-hspec)))
11274 (home-page "https://hackage.haskell.org/package/inline-c-cpp")
11275 (synopsis "Lets you embed C++ code into Haskell")
11276 (description
11277 "This package provides utilities to inline C++ code into Haskell using
11278 @code{inline-c}.")
11279 (license license:expat)))
11280
11281 (define-public ghc-bytestring-lexing
11282 (package
11283 (name "ghc-bytestring-lexing")
11284 (version "0.5.0.2")
11285 (source
11286 (origin
11287 (method url-fetch)
11288 (uri (string-append "https://hackage.haskell.org/package/"
11289 "bytestring-lexing/bytestring-lexing-"
11290 version ".tar.gz"))
11291 (sha256
11292 (base32
11293 "0wrzniawhgpphc6yx1v972gyqxdbv0pizaz9bafahrshyb9svy81"))))
11294 (build-system haskell-build-system)
11295 (home-page "http://code.haskell.org/~wren/")
11296 (synopsis "Parse and produce literals from strict or lazy bytestrings")
11297 (description
11298 "This package provides tools to parse and produce literals efficiently
11299 from strict or lazy bytestrings.")
11300 (license license:bsd-2)))
11301
11302 (define-public ghc-configurator
11303 (package
11304 (name "ghc-configurator")
11305 (version "0.3.0.0")
11306 (source
11307 (origin
11308 (method url-fetch)
11309 (uri (string-append "https://hackage.haskell.org/package/"
11310 "configurator/configurator-"
11311 version ".tar.gz"))
11312 (sha256
11313 (base32
11314 "1d1iq1knwiq6ia5g64rw5hqm6dakz912qj13r89737rfcxmrkfbf"))))
11315 (build-system haskell-build-system)
11316 (inputs
11317 `(("ghc-attoparsec" ,ghc-attoparsec)
11318 ("ghc-hashable" ,ghc-hashable)
11319 ("ghc-text" ,ghc-text)
11320 ("ghc-unix-compat" ,ghc-unix-compat)
11321 ("ghc-unordered-containers" ,ghc-unordered-containers)))
11322 (native-inputs
11323 `(("ghc-hunit" ,ghc-hunit)
11324 ("ghc-test-framework" ,ghc-test-framework)
11325 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)))
11326 (home-page "http://github.com/bos/configurator")
11327 (synopsis "Configuration management")
11328 (description
11329 "This package provides a configuration management library for programs
11330 and daemons. The features include:
11331
11332 @enumerate
11333 @item Automatic, dynamic reloading in response to modifications to
11334 configuration files.
11335 @item A simple, but flexible, configuration language, supporting several of
11336 the most commonly needed types of data, along with interpolation of strings
11337 from the configuration or the system environment (e.g. @code{$(HOME)}).
11338 @item Subscription-based notification of changes to configuration properties.
11339 @item An @code{import} directive allows the configuration of a complex
11340 application to be split across several smaller files, or common configuration
11341 data to be shared across several applications.
11342 @end enumerate\n")
11343 (license license:bsd-3)))
11344
11345 (define-public ghc-file-embed
11346 (package
11347 (name "ghc-file-embed")
11348 (version "0.0.10.1")
11349 (source
11350 (origin
11351 (method url-fetch)
11352 (uri (string-append "https://hackage.haskell.org/package/file-embed/"
11353 "file-embed-" version ".tar.gz"))
11354 (sha256
11355 (base32
11356 "0lj164cnzqyd487mli91nnr7137a4h4qsasfwsnsh77sx12fpk9k"))))
11357 (build-system haskell-build-system)
11358 (home-page "https://github.com/snoyberg/file-embed")
11359 (synopsis "Use Template Haskell to embed file contents directly")
11360 (description
11361 "This package allows you to use Template Haskell to read a file or all
11362 the files in a directory, and turn them into @code{(path, bytestring)} pairs
11363 embedded in your Haskell code.")
11364 (license license:bsd-3)))
11365
11366 (define-public ghc-safeio
11367 (package
11368 (name "ghc-safeio")
11369 (version "0.0.5.0")
11370 (source
11371 (origin
11372 (method url-fetch)
11373 (uri (string-append "https://hackage.haskell.org/package/safeio/"
11374 "safeio-" version ".tar.gz"))
11375 (sha256
11376 (base32
11377 "04g3070cbjdqj0h9l9ii6470xcbn40xfv4fr89a8yvnkdim9nyfm"))))
11378 (build-system haskell-build-system)
11379 (inputs
11380 `(("ghc-conduit" ,ghc-conduit)
11381 ("ghc-conduit-combinators" ,ghc-conduit-combinators)
11382 ("ghc-exceptions" ,ghc-exceptions)
11383 ("ghc-resourcet" ,ghc-resourcet)))
11384 (native-inputs
11385 `(("ghc-hunit" ,ghc-hunit)
11386 ("ghc-test-framework" ,ghc-test-framework)
11387 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
11388 ("ghc-test-framework-th" ,ghc-test-framework-th)))
11389 (home-page "https://github.com/luispedro/safeio")
11390 (synopsis "Write output to disk atomically")
11391 (description
11392 "This package implements utilities to perform atomic output so as to
11393 avoid the problem of partial intermediate files.")
11394 (license license:expat)))
11395
11396 (define-public ghc-tldr
11397 (package
11398 (name "ghc-tldr")
11399 (version "0.4.0.1")
11400 (source
11401 (origin
11402 (method url-fetch)
11403 (uri (string-append
11404 "https://hackage.haskell.org/package/tldr/tldr-"
11405 version
11406 ".tar.gz"))
11407 (sha256
11408 (base32
11409 "0nc581y9jjzwd8l88g48c72mla7k6q1w102akl7gl5jsk9ljamd3"))))
11410 (build-system haskell-build-system)
11411 (inputs
11412 `(("ghc-cmark" ,ghc-cmark)
11413 ("ghc-optparse-applicative" ,ghc-optparse-applicative)
11414 ("ghc-typed-process" ,ghc-typed-process)
11415 ("ghc-semigroups" ,ghc-semigroups)))
11416 (native-inputs
11417 `(("ghc-tasty" ,ghc-tasty)
11418 ("ghc-tasty-golden" ,ghc-tasty-golden)))
11419 (home-page "https://github.com/psibi/tldr-hs#readme")
11420 (synopsis "Haskell tldr client")
11421 (description "This package provides the @command{tldr} command and a
11422 Haskell client library allowing users to update and view @code{tldr} pages
11423 from a shell. The @code{tldr} pages are a community effort to simplify the
11424 man pages with practical examples.")
11425 (license license:bsd-3)))
11426
11427 (define-public ghc-c2hs
11428 (package
11429 (name "ghc-c2hs")
11430 (version "0.28.6")
11431 (source
11432 (origin
11433 (method url-fetch)
11434 (uri (string-append
11435 "https://hackage.haskell.org/package/c2hs/c2hs-"
11436 version
11437 ".tar.gz"))
11438 (sha256
11439 (base32
11440 "1nplgxfin139x12sb656f5870rpdclrhzi8mq8pry035qld15pci"))))
11441 (build-system haskell-build-system)
11442 (inputs
11443 `(("ghc-language-c" ,ghc-language-c)
11444 ("ghc-dlist" ,ghc-dlist)))
11445 (native-inputs
11446 `(("ghc-test-framework" ,ghc-test-framework)
11447 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
11448 ("ghc-hunit" ,ghc-hunit)
11449 ("ghc-shelly" ,ghc-shelly)
11450 ("ghc-text" ,ghc-text)
11451 ("gcc" ,gcc)))
11452 (arguments
11453 `(;; XXX: Test failures are induced by a parse error in <bits/floatn.h>
11454 ;; of glibc 2.28.
11455 #:tests? #f
11456
11457 #:phases
11458 (modify-phases %standard-phases
11459 (add-before 'check 'set-cc
11460 ;; add a cc executable in the path, needed for some tests to pass
11461 (lambda* (#:key inputs #:allow-other-keys)
11462 (let ((gcc (assoc-ref inputs "gcc"))
11463 (tmpbin (tmpnam))
11464 (curpath (getenv "PATH")))
11465 (mkdir-p tmpbin)
11466 (symlink (which "gcc") (string-append tmpbin "/cc"))
11467 (setenv "PATH" (string-append tmpbin ":" curpath)))
11468 #t))
11469 (add-after 'check 'remove-cc
11470 ;; clean the tmp dir made in 'set-cc
11471 (lambda _
11472 (let* ((cc-path (which "cc"))
11473 (cc-dir (dirname cc-path)))
11474 (delete-file-recursively cc-dir)
11475 #t))))))
11476 (home-page "https://github.com/haskell/c2hs")
11477 (synopsis "Create Haskell bindings to C libraries")
11478 (description "C->Haskell assists in the development of Haskell bindings to
11479 C libraries. It extracts interface information from C header files and
11480 generates Haskell code with foreign imports and marshaling. Unlike writing
11481 foreign imports by hand (or using hsc2hs), this ensures that C functions are
11482 imported with the correct Haskell types.")
11483 (license license:gpl2)))
11484
11485 (define-public ghc-libmpd
11486 (package
11487 (name "ghc-libmpd")
11488 (version "0.9.0.9")
11489 (source
11490 (origin
11491 (method url-fetch)
11492 (uri (string-append
11493 "mirror://hackage/package/libmpd/libmpd-"
11494 version
11495 ".tar.gz"))
11496 (sha256
11497 (base32
11498 "1931m23iqb4wddpdidm4ph746zpaw41kkjzmb074j7yyfpk7x1jv"))))
11499 (build-system haskell-build-system)
11500 (inputs
11501 `(("ghc-attoparsec" ,ghc-attoparsec)
11502 ("ghc-old-locale" ,ghc-old-locale)
11503 ("ghc-text" ,ghc-text)
11504 ("ghc-data-default-class" ,ghc-data-default-class)
11505 ("ghc-network" ,ghc-network)
11506 ("ghc-utf8-string" ,ghc-utf8-string)))
11507 (native-inputs
11508 `(("ghc-quickcheck" ,ghc-quickcheck)
11509 ("ghc-hspec" ,ghc-hspec)
11510 ("hspec-discover" ,hspec-discover)))
11511 (home-page "https://github.com/vimus/libmpd-haskell")
11512 (synopsis "Haskell client library for the Music Player Daemon")
11513 (description "This package provides a pure Haskell client library for the
11514 Music Player Daemon.")
11515 (license license:expat)))
11516
11517 (define-public ghc-alsa-core
11518 (package
11519 (name "ghc-alsa-core")
11520 (version "0.5.0.1")
11521 (source
11522 (origin
11523 (method url-fetch)
11524 (uri (string-append
11525 "mirror://hackage/package/alsa-core/alsa-core-"
11526 version
11527 ".tar.gz"))
11528 (sha256
11529 (base32
11530 "1avh4a419h9d2zsslg6j8hm87ppgsgqafz8ll037rk2yy1g4jl7b"))))
11531 (build-system haskell-build-system)
11532 (inputs
11533 `(("ghc-extensible-exceptions" ,ghc-extensible-exceptions)
11534 ("alsa-lib" ,alsa-lib)))
11535 (native-inputs
11536 `(("pkg-config" ,pkg-config)))
11537 (home-page "http://www.haskell.org/haskellwiki/ALSA")
11538 (synopsis "Binding to the ALSA Library API (Exceptions)")
11539 (description "This package provides access to ALSA infrastructure, that is
11540 needed by both alsa-seq and alsa-pcm.")
11541 (license license:bsd-3)))
11542
11543 (define-public ghc-base-unicode-symbols
11544 (package
11545 (name "ghc-base-unicode-symbols")
11546 (version "0.2.3")
11547 (source
11548 (origin
11549 (method url-fetch)
11550 (uri (string-append
11551 "mirror://hackage/package/base-unicode-symbols/base-unicode-symbols-"
11552 version
11553 ".tar.gz"))
11554 (sha256
11555 (base32
11556 "1ia6li7qjg1zkak4gf6mnbshw45mq9bfjr0jch58ds0lscmvwyzf"))))
11557 (build-system haskell-build-system)
11558 (home-page "http://www.haskell.org/haskellwiki/Unicode-symbols")
11559 (synopsis "Unicode alternatives for common functions and operators")
11560 (description "This package defines new symbols for a number of functions,
11561 operators and types in the base package. All symbols are documented with
11562 their actual definition and information regarding their Unicode code point.
11563 They should be completely interchangeable with their definitions. For
11564 further Unicode goodness you can enable the @code{UnicodeSyntax}
11565 @url{https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/glasgow_exs.html#unicode-syntax,
11566 language extension}. This extension enables Unicode characters to be used to
11567 stand for certain ASCII character sequences, i.e. → instead of @code{->},
11568 ∀ instead of @code{forall} and many others.")
11569 (license license:bsd-3)))
11570
11571 (define-public ghc-stylish-haskell
11572 (package
11573 (name "ghc-stylish-haskell")
11574 (version "0.9.2.1")
11575 (source
11576 (origin
11577 (method url-fetch)
11578 (uri (string-append
11579 "mirror://hackage/package/stylish-haskell/stylish-haskell-"
11580 version
11581 ".tar.gz"))
11582 (sha256
11583 (base32
11584 "1ls11fdx6snvfx8yykpidz142zzxwi5bazl49hgfqlwx50rqcp7w"))))
11585 (build-system haskell-build-system)
11586 (inputs
11587 `(("ghc-aeson" ,ghc-aeson)
11588 ("ghc-file-embed" ,ghc-file-embed)
11589 ("ghc-haskell-src-exts" ,ghc-haskell-src-exts)
11590 ("ghc-semigroups" ,ghc-semigroups)
11591 ("ghc-syb" ,ghc-syb)
11592 ("ghc-yaml" ,ghc-yaml)
11593 ("ghc-strict" ,ghc-strict)
11594 ("ghc-optparse-applicative"
11595 ,ghc-optparse-applicative)))
11596 (native-inputs
11597 `(("ghc-hunit" ,ghc-hunit)
11598 ("ghc-test-framework" ,ghc-test-framework)
11599 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)))
11600 (home-page "https://github.com/jaspervdj/stylish-haskell")
11601 (synopsis "Haskell code prettifier")
11602 (description "Stylish-haskell is a Haskell code prettifier. The goal is
11603 not to format all of the code in a file, to avoid \"getting in the way\".
11604 However, this tool can e.g. clean up import statements and help doing various
11605 tasks that get tedious very quickly. It can
11606 @itemize
11607 @item
11608 Align and sort @code{import} statements
11609 @item
11610 Group and wrap @code{{-# LANGUAGE #-}} pragmas, remove (some) redundant
11611 pragmas
11612 @item
11613 Remove trailing whitespaces
11614 @item
11615 Align branches in @code{case} and fields in records
11616 @item
11617 Convert line endings (customisable)
11618 @item
11619 Replace tabs by four spaces (turned off by default)
11620 @item
11621 Replace some ASCII sequences by their Unicode equivalent (turned off by
11622 default)
11623 @end itemize")
11624 (license license:bsd-3)))
11625 ;;; haskell.scm ends here