gnu: Fix descriptions to not use quotes.
[jackhill/guix/guix.git] / gnu / packages / haskell.scm
CommitLineData
246b3437 1;;; GNU Guix --- Functional package management for GNU
95595618 2;;; Copyright © 2015, 2016 Federico Beffa <beffa@fbengineering.ch>
df1db767 3;;; Copyright © 2015 Siniša Biđin <sinisa@bidin.eu>
0e03d76a 4;;; Copyright © 2015 Paul van der Walt <paul@denknerd.org>
ccd7b308 5;;; Copyright © 2015 Eric Bavier <bavier@member.fsf.org>
2d040763 6;;; Copyright © 2016, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
47956fa0 7;;; Copyright © 2016, 2017 ng0 <ng0@n0.is>
7531b1fc 8;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
5de93cdb 9;;; Copyright © 2015, 2016, 2017, 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
c7a7129c 10;;; Copyright © 2016, 2017 David Craven <david@craven.ch>
ee719fba 11;;; Copyright © 2017 Danny Milosavljevic <dannym@scratchpost.org>
df7309fc 12;;; Copyright © 2017 Peter Mikkelsen <petermikkelsen10@gmail.com>
98b90194 13;;; Copyright © 2017, 2018 Alex Vong <alexvong1995@gmail.com>
78d8b8f3 14;;; Copyright © 2017 rsiddharth <s@ricketyspace.net>
a9717a52 15;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
e5d92c1c 16;;; Copyright © 2018 Tonton <tonton@riseup.net>
5de93cdb 17;;; Copyright © 2018, 2019 Timothy Sample <samplet@ngyro.com>
b1a16000 18;;; Copyright © 2018 Arun Isaac <arunisaac@systemreboot.net>
57cd7d92 19;;; Copyright © 2018, 2019 Gabriel Hondet <gabrielhondet@gmail.com>
246b3437
FB
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)
d8e85b20 37 #:use-module (gnu packages)
9587544b 38 #:use-module (gnu packages base)
c0d5b645 39 #:use-module (gnu packages bootstrap)
ac257f12 40 #:use-module (gnu packages check)
3d3613d5 41 #:use-module (gnu packages compression)
246b3437 42 #:use-module (gnu packages elf)
600621a1 43 #:use-module (gnu packages gcc)
246b3437 44 #:use-module (gnu packages ghostscript)
c0d5b645 45 #:use-module (gnu packages gl)
f797a0e9 46 #:use-module (gnu packages graphviz)
7df25c77 47 #:use-module (gnu packages gtk)
a06b9b50 48 #:use-module (gnu packages haskell-check)
f24eba89 49 #:use-module (gnu packages haskell-crypto)
44b7374a 50 #:use-module (gnu packages haskell-web)
c0d5b645 51 #:use-module (gnu packages libffi)
a7101996 52 #:use-module (gnu packages linux)
95e654ae 53 #:use-module (gnu packages lisp)
ac5d633a 54 #:use-module (gnu packages lua)
95595618 55 #:use-module (gnu packages maths)
246b3437
FB
56 #:use-module (gnu packages multiprecision)
57 #:use-module (gnu packages ncurses)
b10f7be3 58 #:use-module (gnu packages pcre)
c0d5b645
DC
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)
587d1752 63 #:use-module (gnu packages tls)
793bcc19 64 #:use-module (gnu packages xml)
c0d5b645 65 #:use-module (gnu packages xorg)
c0d5b645
DC
66 #:use-module (guix build-system gnu)
67 #:use-module (guix build-system haskell)
68 #:use-module (guix download)
ee719fba 69 #:use-module (guix git-download)
c0d5b645
DC
70 #:use-module ((guix licenses) #:prefix license:)
71 #:use-module (guix packages)
72 #:use-module (guix utils)
8e3149ee
RW
73 #:use-module (ice-9 regex)
74 #:use-module ((srfi srfi-1) #:select (alist-delete)))
246b3437 75
95e654ae
RW
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
98b90194 85 (url "https://git.elephly.net/software/yale-haskell.git")
95e654ae
RW
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)))
98b90194 109 (home-page "https://git.elephly.net/software/yale-haskell.git")
95e654ae
RW
110 (synopsis "Port of the Yale Haskell system to CLISP")
111 (description "This package provides the Yale Haskell system running on
112top of CLISP.")
113 (license license:bsd-4))))
114
5868a8bf 115(define ghc-bootstrap-x86_64-7.8.4
246b3437
FB
116 (origin
117 (method url-fetch)
5868a8bf
FB
118 (uri
119 "https://www.haskell.org/ghc/dist/7.8.4/ghc-7.8.4-x86_64-unknown-linux-deb7.tar.xz")
246b3437
FB
120 (sha256
121 (base32
5868a8bf
FB
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"))))
246b3437
FB
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)
e2dc97d6 147(define-public ghc-7
246b3437
FB
148 (package
149 (name "ghc")
0e03d76a 150 (version "7.10.2")
246b3437
FB
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
0e03d76a 158 "1x8m4rp2v7ydnrz6z9g8x7z3x3d3pxhv2pixy7i7hkbqbdsp7kal"))))
246b3437
FB
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)
246b3437
FB
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
0e03d76a 174 "0qp9da9ar87zbyn6wjgacd2ic1vgzbi3cklxnhsmjqyafv9qaj4b"))))))
246b3437
FB
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.
5868a8bf
FB
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))))
246b3437
FB
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
fb799cb7
LC
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
bbd19615
MW
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
246b3437
FB
200 #:modules ((guix build gnu-build-system)
201 (guix build utils)
202 (guix build rpath)
203 (srfi srfi-26)
204 (srfi srfi-1))
caaf1933 205 #:imported-modules (,@%gnu-build-system-modules
246b3437
FB
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
48d21d6c 228 'unpack-bin 'unpack-testsuite-and-fix-bins
246b3437
FB
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"))
246b3437
FB
234 (substitute*
235 (list "testsuite/timeout/Makefile"
236 "testsuite/timeout/timeout.py"
237 "testsuite/timeout/timeout.hs"
238 "testsuite/tests/rename/prog006/Setup.lhs"
48d21d6c
EB
239 "testsuite/tests/programs/life_space_leak/life.test"
240 "libraries/process/System/Process/Internals.hs"
241 "libraries/unix/cbits/execvpe.c")
246b3437
FB
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
0e03d76a 279 (string-append ghc-bootstrap-path "/ghc-7.8.4")
246b3437
FB
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."
74733195
RW
292 ;; Extract "6.0" from "6.0-20170930" if a
293 ;; dash-separated version tag exists.
ae785e5e 294 ,(let* ((v (package-version ncurses))
74733195
RW
295 (d (or (string-index v #\-)
296 (string-length v))))
ae785e5e 297 (version-major+minor (string-take v d))))
246b3437 298 (string-append libtinfo-dir "/libtinfo.so.5"))
ae785e5e 299
246b3437
FB
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
0e03d76a 312 (string-append ghc-bootstrap-path "/ghc-7.8.4")
246b3437
FB
313 (zero? (system* "make" "install"))))
314 %standard-phases)))))))
e17d5133
EB
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))))
246b3437
FB
321 (home-page "https://www.haskell.org/ghc")
322 (synopsis "The Glasgow Haskell Compiler")
7d95c000
FB
323 (description
324 "The Glasgow Haskell Compiler (GHC) is a state-of-the-art compiler and
325interactive environment for the functional language Haskell.")
326 (license license:bsd-3)))
327
9587544b 328(define-public ghc-8.0
7d95c000
FB
329 (package
330 (name "ghc")
d8e85b20 331 (version "8.0.2")
7d95c000
FB
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
d8e85b20
FB
338 (base32 "1c8qc4fhkycynk4g1f9hvk53dj6a1vvqi6bklqznns6hw59m8qhi"))
339 (patches
340 (search-patches
f6cccefe
DM
341 "ghc-dont-pass-linker-flags-via-response-files.patch"
342 "ghc-8.0-fall-back-to-madv_dontneed.patch"))))
7d95c000
FB
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)
7d95c000
FB
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
d8e85b20 357 (base32 "1wjc3x68l305bl1h1ijd3yhqp2vqj83lkp3kqbr94qmmkqlms8sj"))))))
7d95c000
FB
358 (native-inputs
359 `(("perl" ,perl)
360 ("python" ,python-2) ; for tests
361 ("ghostscript" ,ghostscript) ; for tests
362 ;; GHC is built with GHC.
e2dc97d6 363 ("ghc-bootstrap" ,ghc-7)))
7d95c000
FB
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
7d95c000
FB
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"))
d8e85b20 426 #t)))))
7d95c000
FB
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")
246b3437
FB
435 (description
436 "The Glasgow Haskell Compiler (GHC) is a state-of-the-art compiler and
437interactive environment for the functional language Haskell.")
3ac73271 438 (license license:bsd-3)))
246b3437 439
9587544b
RW
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))
5de93cdb
RW
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))
9587544b
RW
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
dde15fea 572(define-public ghc ghc-8)
e2dc97d6 573
ccd7b308
EB
574(define-public ghc-hostname
575 (package
576 (name "ghc-hostname")
577 (version "1.0")
578 (source
579 (origin
580 (method url-fetch)
612fddec 581 (uri (string-append "https://hackage.haskell.org/package/hostname/"
ccd7b308
EB
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
590determine the hostname.")
3ac73271 591 (license license:bsd-3)))
ccd7b308 592
f8362eac
RW
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)
f8362eac
RW
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
614designed to help convert between different types: numeric values, dates and
615times, and the like. The conversions perform bounds checking and return a
616pure @code{Either} value. This means that you need not remember which specific
617function performs the conversion you desire.")
618 (license license:bsd-3)))
619
de866854
RW
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
644between double precision floating point and text.")
645 (license license:bsd-3)))
646
1472ba25
EB
647(define-public ghc-libxml
648 (package
649 (name "ghc-libxml")
650 (version "0.1.1")
651 (source
652 (origin
653 (method url-fetch)
98b90194 654 (uri (string-append "https://hackage.haskell.org/package/libxml/"
1472ba25
EB
655 "libxml-" version ".tar.gz"))
656 (sha256
657 (base32
658 "01zvk86kg726lf2vnlr7dxiz7g3xwi5a4ak9gcfbwyhynkzjmsfi"))))
659 (build-system haskell-build-system)
660 (inputs
f54f0475 661 `(("libxml2" ,libxml2)))
1472ba25
EB
662 (arguments
663 `(#:configure-flags
664 `(,(string-append "--extra-include-dirs="
665 (assoc-ref %build-inputs "libxml2")
666 "/include/libxml2"))))
98b90194 667 (home-page "https://hackage.haskell.org/package/libxml")
1472ba25
EB
668 (synopsis "Haskell bindings to libxml2")
669 (description
670 "This library provides minimal Haskell binding to libxml2.")
3ac73271 671 (license license:bsd-3)))
1472ba25 672
1e473fb8
PW
673(define-public ghc-prelude-extras
674 (package
675 (name "ghc-prelude-extras")
29466a9b 676 (version "0.4.0.3")
1e473fb8
PW
677 (source
678 (origin
679 (method url-fetch)
680 (uri (string-append
612fddec 681 "https://hackage.haskell.org/package/prelude-extras/prelude-extras-"
1e473fb8
PW
682 version
683 ".tar.gz"))
684 (sha256
685 (base32
29466a9b 686 "0xzqdf3nl2h0ra4gnslm1m1nsxlsgc0hh6ky3vn578vh11zhifq9"))))
1e473fb8 687 (build-system haskell-build-system)
612fddec 688 (home-page "https://github.com/ekmett/prelude-extras")
1e473fb8
PW
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
692reduce @code{UndecidableInstances}.")
3ac73271 693 (license license:bsd-3)))
1e473fb8 694
1c77d0ca
SB
695(define-public ghc-data-default
696 (package
697 (name "ghc-data-default")
f9cb5105 698 (version "0.7.1.1")
1c77d0ca
SB
699 (source
700 (origin
701 (method url-fetch)
702 (uri (string-append
612fddec 703 "https://hackage.haskell.org/package/data-default/data-default-"
1c77d0ca
SB
704 version
705 ".tar.gz"))
706 (sha256
f9cb5105 707 (base32 "04d5n8ybmcxba9qb6h389w9zfq1lvj81b82jh6maqp6pkhkmvydh"))))
1c77d0ca 708 (build-system haskell-build-system)
2d47cee2 709 (inputs
1c77d0ca
SB
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)))
612fddec 720 (home-page "https://hackage.haskell.org/package/data-default")
1c77d0ca
SB
721 (synopsis "Types with default values")
722 (description
723 "This package defines a class for types with a default value, and
724provides instances for types from the base, containers, dlist and old-locale
725packages.")
3ac73271 726 (license license:bsd-3)))
1c77d0ca 727
5079a0af
SB
728(define-public ghc-data-default-class
729 (package
730 (name "ghc-data-default-class")
f378ea16 731 (version "0.1.2.0")
5079a0af
SB
732 (source
733 (origin
734 (method url-fetch)
735 (uri (string-append
612fddec 736 "https://hackage.haskell.org/package/data-default-class/"
5079a0af
SB
737 "data-default-class-" version ".tar.gz"))
738 (sha256
f378ea16 739 (base32 "0miyjz8d4jyvqf2vp60lyfbnflx6cj2k8apmm9ly1hq0y0iv80ag"))))
5079a0af 740 (build-system haskell-build-system)
612fddec 741 (home-page "https://hackage.haskell.org/package/data-default-class")
5079a0af
SB
742 (synopsis "Types with default values")
743 (description
744 "This package defines a class for types with default values.")
3ac73271 745 (license license:bsd-3)))
5079a0af 746
9deb95aa
SB
747(define-public ghc-data-default-instances-base
748 (package
749 (name "ghc-data-default-instances-base")
64a6954b 750 (version "0.1.0.1")
9deb95aa
SB
751 (source
752 (origin
753 (method url-fetch)
754 (uri (string-append
612fddec 755 "https://hackage.haskell.org/package/"
9deb95aa
SB
756 "data-default-instances-base/"
757 "data-default-instances-base-" version ".tar.gz"))
758 (sha256
64a6954b 759 (base32 "0ym1sw3ssdzzifxxhh76qlv8kkmb2iclc158incv1dklyr9y8kw4"))))
9deb95aa 760 (build-system haskell-build-system)
2d47cee2 761 (inputs
9deb95aa 762 `(("ghc-data-default-class" ,ghc-data-default-class)))
612fddec 763 (home-page "https://hackage.haskell.org/package/data-default-instances-base")
9deb95aa
SB
764 (synopsis "Default instances for types in base")
765 (description
766 "This package provides default instances for types from the base
767package.")
3ac73271 768 (license license:bsd-3)))
9deb95aa 769
77a23be2
SB
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
612fddec 778 "https://hackage.haskell.org/package/"
77a23be2
SB
779 "data-default-instances-containers/"
780 "data-default-instances-containers-" version ".tar.gz"))
781 (sha256
782 (base32 "06h8xka031w752a7cjlzghvr8adqbl95xj9z5zc1b62w02phfpm5"))))
783 (build-system haskell-build-system)
2d47cee2 784 (inputs
77a23be2 785 `(("ghc-data-default-class" ,ghc-data-default-class)))
612fddec 786 (home-page "https://hackage.haskell.org/package/data-default-instances-containers")
77a23be2
SB
787 (synopsis "Default instances for types in containers")
788 (description "Provides default instances for types from the containers
789package.")
3ac73271 790 (license license:bsd-3)))
77a23be2 791
4271d134
SB
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
612fddec 800 "https://hackage.haskell.org/package/"
4271d134
SB
801 "data-default-instances-dlist/"
802 "data-default-instances-dlist-" version ".tar.gz"))
803 (sha256
804 (base32 "0narkdqiprhgayjiawrr4390h4rq4pl2pb6mvixbv2phrc8kfs3x"))))
805 (build-system haskell-build-system)
2d47cee2 806 (inputs
4271d134
SB
807 `(("ghc-data-default-class" ,ghc-data-default-class)
808 ("ghc-dlist" ,ghc-dlist)))
612fddec 809 (home-page "https://hackage.haskell.org/package/data-default-instances-dlist")
4271d134
SB
810 (synopsis "Default instances for types in dlist")
811 (description "Provides default instances for types from the dlist
812package.")
3ac73271 813 (license license:bsd-3)))
4271d134 814
df7309fc
PM
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
832code pages on Windows. On all other operating systems, the library does
833nothing.")
834 (license license:bsd-3)))
835
073f5ae1
TS
836(define-public ghc-newtype-generics
837 (package
838 (name "ghc-newtype-generics")
839 (version "0.5.3")
840 (source
841 (origin
842 (method url-fetch)
843 (uri (string-append "https://hackage.haskell.org/package/"
844 "newtype-generics/newtype-generics-"
845 version ".tar.gz"))
846 (sha256
847 (base32
848 "0igyisw2djg19v9vkna1rwf47k97mvkvk4bbkmswznvbm00z15gj"))))
849 (build-system haskell-build-system)
850 (native-inputs
851 `(("ghc-hspec" ,ghc-hspec)
852 ("hspec-discover" ,hspec-discover)))
853 (home-page "http://github.com/sjakobi/newtype-generics")
854 (synopsis "Typeclass and set of functions for working with newtypes")
855 (description "The @code{Newtype} typeclass represents the packing and
856unpacking of a newtype, and allows you to operate under that newtype with
857functions such as @code{ala}. Generics support was added in version 0.4,
858making this package a full replacement for the original newtype package,
859and an alternative to newtype-th.")
860 (license license:bsd-3)))
861
cd40c4d6
TS
862(define-public ghc-memotrie
863 (package
864 (name "ghc-memotrie")
865 (version "0.6.9")
866 (source
867 (origin
868 (method url-fetch)
869 (uri (string-append
870 "https://hackage.haskell.org/package/MemoTrie/MemoTrie-"
871 version
872 ".tar.gz"))
873 (sha256
874 (base32
875 "157p0pi6rrq74a35mq6zkkycv4ah7xhkbrcmnkb9xf7pznw4aq0x"))))
876 (build-system haskell-build-system)
877 (inputs
878 `(("ghc-newtype-generics" ,ghc-newtype-generics)))
879 (home-page "https://github.com/conal/MemoTrie")
880 (synopsis "Trie-based memo functions")
881 (description "This package provides a functional library for creating
882efficient memo functions using tries.")
883 (license license:bsd-3)))
884
c6cf0eb5
TS
885(define-public ghc-tree-diff
886 (package
887 (name "ghc-tree-diff")
888 (version "0.0.1")
889 (source
890 (origin
891 (method url-fetch)
892 (uri (string-append
893 "https://hackage.haskell.org/package/tree-diff/tree-diff-"
894 version
895 ".tar.gz"))
896 (sha256
897 (base32
898 "049v44c520jy3icxlnrvbdblh3mjmvd7m6qmkzxbzkf02x63xqmz"))))
899 (build-system haskell-build-system)
900 (arguments
901 `(#:cabal-revision
902 ("4" "1rqxxyj6hqllahs11693g855cxz8mgnb490s7j1ksd300i5xgjsp")
903 #:phases
904 (modify-phases %standard-phases
905 (add-before 'configure 'update-constraints
906 (lambda _
907 (substitute* "tree-diff.cabal"
908 (("trifecta >=1\\.7\\.1\\.1 && <1\\.8")
909 "trifecta >=1.7.1.1 && <=2")))))))
910 (inputs
911 `(("ghc-aeson" ,ghc-aeson)
912 ("ghc-ansi-wl-pprint" ,ghc-ansi-wl-pprint)
913 ("ghc-ansi-terminal" ,ghc-ansi-terminal)
914 ("ghc-base-compat" ,ghc-base-compat)
915 ("ghc-generics-sop" ,ghc-generics-sop)
916 ("ghc-hashable" ,ghc-hashable)
917 ("ghc-memotrie" ,ghc-memotrie)
918 ("ghc-parsec" ,ghc-parsec)
919 ("ghc-parsers" ,ghc-parsers)
920 ("ghc-quickcheck" ,ghc-quickcheck)
921 ("ghc-scientific" ,ghc-scientific)
922 ("ghc-tagged" ,ghc-tagged)
923 ("ghc-text" ,ghc-text)
924 ("ghc-unordered-containers" ,ghc-unordered-containers)
925 ("ghc-uuid-types" ,ghc-uuid-types)
926 ("ghc-vector" ,ghc-vector)))
927 (native-inputs
928 `(("ghc-base-compat" ,ghc-base-compat)
929 ("ghc-quickcheck" ,ghc-quickcheck)
930 ("ghc-ansi-terminal" ,ghc-ansi-terminal)
931 ("ghc-ansi-wl-pprint" ,ghc-ansi-wl-pprint)
932 ("ghc-parsec" ,ghc-parsec)
933 ("ghc-trifecta" ,ghc-trifecta)
934 ("ghc-tasty" ,ghc-tasty)
935 ("ghc-tasty-golden" ,ghc-tasty-golden)
936 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
937 (home-page "https://github.com/phadej/tree-diff")
938 (synopsis "Compute difference between (expression) trees")
939 (description "This Haskell library provides a function for computing
6ce82848 940the difference between (expression) trees. It also provides a way to
c6cf0eb5
TS
941compute the difference between arbitrary abstract datatypes (ADTs) using
942@code{Generics}-derivable helpers.")
943 (license license:bsd-3)))
944
56b3bc56 945(define-public ghc-haddock-library
eb6ae860 946 (package
56b3bc56 947 (name "ghc-haddock-library")
082d9383 948 (version "1.5.0.1")
eb6ae860
SB
949 (source
950 (origin
951 (method url-fetch)
952 (uri (string-append
612fddec 953 "https://hackage.haskell.org/package/haddock-library/haddock-library-"
eb6ae860
SB
954 version
955 ".tar.gz"))
956 (sha256
56b3bc56 957 (base32
082d9383
TS
958 "1cmbg8l5xrwpliclwy3l057raypjqy0hsg1h1743ahaj8gq10b7z"))
959 (patches (search-patches
960 "ghc-haddock-library-unbundle.patch"))
961 (modules '((guix build utils)))
962 (snippet '(begin
963 (delete-file-recursively "vendor")
964 #t))))
eb6ae860 965 (build-system haskell-build-system)
082d9383
TS
966 (arguments
967 `(#:phases
968 (modify-phases %standard-phases
969 (add-before 'configure 'relax-test-suite-dependencies
970 (lambda _
971 (substitute* "haddock-library.cabal"
972 (("base-compat\\s*\\^>= 0\\.9\\.3") "base-compat")
973 (("hspec\\s*\\^>= 2\\.4\\.4") "hspec"))))
974 ;; The release tarball does not contain the "fixtures/examples"
975 ;; directory, which is required for testing. In the upstream
976 ;; repository, the directory exists and is populated. Here, we
977 ;; create an empty directory to placate the tests.
978 (add-before 'check 'add-examples-directory
979 (lambda _
980 (mkdir "fixtures/examples")
981 #t)))))
354902e4 982 (native-inputs
082d9383 983 `(("ghc-base-compat" ,ghc-base-compat)
56b3bc56 984 ("ghc-hspec" ,ghc-hspec)
082d9383
TS
985 ("ghc-optparse-applicative" ,ghc-optparse-applicative)
986 ("ghc-quickcheck" ,ghc-quickcheck)
987 ("ghc-tree-diff" ,ghc-tree-diff)
988 ("hspec-discover" ,hspec-discover)))
98b90194 989 (home-page "https://www.haskell.org/haddock/")
354902e4 990 (synopsis "Library exposing some functionality of Haddock")
eb6ae860 991 (description
56b3bc56
PW
992 "Haddock is a documentation-generation tool for Haskell libraries. These
993modules expose some functionality of it without pulling in the GHC dependency.
994Please note that the API is likely to change so specify upper bounds in your
995project if you can't release often. For interacting with Haddock itself, see
996the ‘haddock’ package.")
3ac73271 997 (license license:bsd-3)))
eb6ae860 998
735bd9c9 999(define-public ghc-haddock-api
05b964ae 1000 (package
735bd9c9 1001 (name "ghc-haddock-api")
f548cd72 1002 (version "2.19.0.1")
05b964ae
SB
1003 (source
1004 (origin
1005 (method url-fetch)
735bd9c9 1006 (uri (string-append
612fddec 1007 "https://hackage.haskell.org/package/haddock-api/haddock-api-"
735bd9c9
PW
1008 version
1009 ".tar.gz"))
05b964ae 1010 (sha256
735bd9c9 1011 (base32
f548cd72 1012 "0c6i7sljp7myz25d90gyw68a90i5jcrkajkxcciikp2hjirfaas3"))))
05b964ae 1013 (build-system haskell-build-system)
f548cd72
TS
1014 (arguments
1015 `(#:phases
1016 (modify-phases %standard-phases
1017 (add-before 'configure 'update-constraints
1018 (lambda _
1019 (substitute* "haddock-api.cabal"
1020 (("Cabal \\^>= 2\\.0\\.0")
1021 "Cabal ^>= 2.2.0")
1022 (("hspec \\^>= 2\\.4\\.4")
1023 "hspec >= 2.4.4 && < 2.6")))))))
2d47cee2 1024 (inputs
735bd9c9
PW
1025 `(("ghc-paths" ,ghc-paths)
1026 ("ghc-haddock-library" ,ghc-haddock-library)))
a559c26c
RW
1027 (native-inputs
1028 `(("ghc-quickcheck" ,ghc-quickcheck)
1029 ("ghc-hspec" ,ghc-hspec)
1030 ("hspec-discover" ,hspec-discover)))
98b90194 1031 (home-page "https://www.haskell.org/haddock/")
735bd9c9
PW
1032 (synopsis "API for documentation-generation tool Haddock")
1033 (description "This package provides an API to Haddock, the
1034documentation-generation tool for Haskell libraries.")
3ac73271 1035 (license license:bsd-3)))
05b964ae 1036
35182fa2
RW
1037(define-public ghc-haddock-test
1038 (package
1039 (name "ghc-haddock-test")
1040 (version "0.0.1")
1041 (source
1042 (origin
1043 (method url-fetch)
1044 (uri (string-append "https://hackage.haskell.org/package/"
1045 "haddock-test/haddock-test-"
1046 version ".tar.gz"))
1047 (sha256
1048 (base32
1049 "1ax8fnfrwx66csj952f3virxzapipan9da7z5l1zc12nqkifbs7w"))))
1050 (build-system haskell-build-system)
1051 (inputs
1052 `(("ghc-xml" ,ghc-xml)
1053 ("ghc-syb" ,ghc-syb)))
1054 (home-page "http://www.haskell.org/haddock/")
1055 (synopsis "Test utilities for Haddock")
1056 (description "This package provides test utilities for Haddock.")
1057 (license license:bsd-3)))
1058
e0492a8d 1059(define-public ghc-haddock
7d5baa30 1060 (package
e0492a8d 1061 (name "ghc-haddock")
1b29af3d 1062 (version "2.19.0.1")
7d5baa30
FB
1063 (source
1064 (origin
1065 (method url-fetch)
1066 (uri (string-append
612fddec 1067 "https://hackage.haskell.org/package/haddock/haddock-"
7d5baa30
FB
1068 version
1069 ".tar.gz"))
1070 (sha256
1071 (base32
1b29af3d 1072 "1g1j9j0hf2yhyyh0gwz6bzbvfvliqz9x8a8hnkmwghm7w3xa6sb7"))))
7d5baa30 1073 (build-system haskell-build-system)
1b29af3d
TS
1074 (arguments
1075 `(#:phases
1076 (modify-phases %standard-phases
1077 ;; There are four test suites that require the ghc-haddock-test
1078 ;; package, which no longer builds with GHC 8.4.3. This phase
1079 ;; removes these four test suites from the Cabal file, so that we
1080 ;; do not need ghc-haddock-test as an input.
1081 (add-before 'configure 'remove-haddock-test-test-suites
1082 (lambda _
1083 (use-modules (ice-9 rdelim))
1084 (with-atomic-file-replacement "haddock.cabal"
1085 (lambda (in out)
1086 (let loop ((line (read-line in 'concat)) (deleting? #f))
1087 (cond
1088 ((eof-object? line) #t)
1089 ((string-every char-set:whitespace line)
1090 (unless deleting? (display line out))
1091 (loop (read-line in 'concat) #f))
1092 ((member line '("test-suite html-test\n"
1093 "test-suite hypsrc-test\n"
1094 "test-suite latex-test\n"
1095 "test-suite hoogle-test\n"))
1096 (loop (read-line in 'concat) #t))
1097 (else
1098 (unless deleting? (display line out))
1099 (loop (read-line in 'concat) deleting?)))))))))))
e0492a8d 1100 (inputs `(("ghc-haddock-api" ,ghc-haddock-api)))
613845d0 1101 (native-inputs
1b29af3d 1102 `(("ghc-hspec" ,ghc-hspec)))
98b90194 1103 (home-page "https://www.haskell.org/haddock/")
7d5baa30 1104 (synopsis
e0492a8d 1105 "Documentation-generation tool for Haskell libraries")
7d5baa30 1106 (description
e0492a8d 1107 "Haddock is a documentation-generation tool for Haskell libraries.")
3ac73271 1108 (license license:bsd-3)))
7d5baa30 1109
6729152d 1110(define-public ghc-simple-reflect
0939da6e 1111 (package
6729152d 1112 (name "ghc-simple-reflect")
c2e393cc 1113 (version "0.3.3")
0939da6e
FB
1114 (source
1115 (origin
1116 (method url-fetch)
1117 (uri (string-append
612fddec 1118 "https://hackage.haskell.org/package/simple-reflect/simple-reflect-"
0939da6e
FB
1119 version
1120 ".tar.gz"))
1121 (sha256
1122 (base32
c2e393cc 1123 "0ayvrx5cm8n6db21jiyjmk5h93pw7cz1707hih09hlhk9jh5x0h7"))))
0939da6e 1124 (build-system haskell-build-system)
6729152d 1125 (home-page
98b90194 1126 "https://twanvl.nl/blog/haskell/simple-reflection-of-expressions")
0939da6e 1127 (synopsis
6729152d 1128 "Simple reflection of expressions containing variables")
0939da6e 1129 (description
6729152d
PW
1130 "This package allows simple reflection of expressions containing
1131variables. Reflection here means that a Haskell expression is turned into a
1132string. The primary aim of this package is teaching and understanding; there
1133are no options for manipulating the reflected expressions beyond showing
1134them.")
3ac73271 1135 (license license:bsd-3)))
0939da6e 1136
e0d17b84 1137(define-public ghc-haskell-src
3d3613d5 1138 (package
e0d17b84 1139 (name "ghc-haskell-src")
3ea018c7 1140 (version "1.0.3.0")
3d3613d5
FB
1141 (source
1142 (origin
1143 (method url-fetch)
1144 (uri (string-append
612fddec 1145 "https://hackage.haskell.org/package/haskell-src/haskell-src-"
3d3613d5
FB
1146 version
1147 ".tar.gz"))
1148 (sha256
1149 (base32
3ea018c7 1150 "1g4dj1f0j68bhn4ixfac63wjzy6gsp6kwgxryb1k5nl3i0g99d5l"))))
3d3613d5 1151 (build-system haskell-build-system)
e0d17b84
PW
1152 (inputs
1153 `(("ghc-happy" ,ghc-happy)
1154 ("ghc-syb" ,ghc-syb)))
1155 (home-page
612fddec 1156 "https://hackage.haskell.org/package/haskell-src")
3d3613d5 1157 (synopsis
e0d17b84 1158 "Support for manipulating Haskell source code")
3d3613d5 1159 (description
36a4366d 1160 "The @code{haskell-src} package provides support for manipulating Haskell
e0d17b84
PW
1161source code. The package provides a lexer, parser and pretty-printer, and a
1162definition of a Haskell abstract syntax tree (AST). Common uses of this
1163package are to parse or generate Haskell 98 code.")
3ac73271 1164 (license license:bsd-3)))
3d3613d5 1165
e40b2543 1166(define-public ghc-alex
a39f3936 1167 (package
e40b2543 1168 (name "ghc-alex")
7de7ec7d 1169 (version "3.2.4")
a39f3936
FB
1170 (source
1171 (origin
1172 (method url-fetch)
1173 (uri (string-append
612fddec 1174 "https://hackage.haskell.org/package/alex/alex-"
a39f3936
FB
1175 version
1176 ".tar.gz"))
1177 (sha256
1178 (base32
7de7ec7d 1179 "0cpjixgsr0b2x4s6hz4aa6gnmjw9i7xd9nlfi8m37zqlidq4v3nm"))))
a39f3936 1180 (build-system haskell-build-system)
7de7ec7d
TS
1181 (arguments
1182 `(#:phases
1183 (modify-phases %standard-phases
1184 (add-before 'check 'set-check-variables
1185 (lambda _
1186 (setenv "PATH" (string-append (getcwd) "/dist/build/alex:"
1187 (getenv "PATH")))
1188 (setenv "alex_datadir" (string-append (getcwd) "/data"))
1189 #t)))))
e40b2543 1190 (inputs `(("ghc-quickcheck" ,ghc-quickcheck)))
7de7ec7d
TS
1191 (native-inputs
1192 `(("which" ,which)))
98b90194 1193 (home-page "https://www.haskell.org/alex/")
e40b2543
PW
1194 (synopsis
1195 "Tool for generating lexical analysers in Haskell")
a39f3936 1196 (description
e40b2543
PW
1197 "Alex is a tool for generating lexical analysers in Haskell. It takes a
1198description of tokens based on regular expressions and generates a Haskell
1199module containing code for scanning text efficiently. It is similar to the
1200tool lex or flex for C/C++.")
3ac73271 1201 (license license:bsd-3)))
a39f3936 1202
1f477b59 1203(define-public ghc-cgi
e916e211 1204 (package
1f477b59 1205 (name "ghc-cgi")
22b439db 1206 (version "3001.3.0.2")
e916e211
FB
1207 (source
1208 (origin
1209 (method url-fetch)
1210 (uri (string-append
612fddec 1211 "https://hackage.haskell.org/package/cgi/cgi-"
e916e211
FB
1212 version
1213 ".tar.gz"))
1214 (sha256
1215 (base32
22b439db 1216 "1hbpplss1m4rdpm4ibip6fpimlhssqa14fl338kl2jbc463i64cj"))))
e916e211 1217 (build-system haskell-build-system)
22b439db 1218 (arguments
892d5546
TS
1219 `(#:phases
1220 (modify-phases %standard-phases
1221 (add-before 'configure 'update-constraints
1222 (lambda _
1223 (substitute* "cgi.cabal"
1224 (("exceptions < 0\\.9")
1225 "exceptions < 0.11")
1226 (("time >= 1\\.5 && < 1\\.7")
1227 "time >= 1.5 && < 1.9")
1228 (("doctest >= 0\\.8 && < 0\\.12")
1229 "doctest >= 0.8 && < 0.17")
1230 (("QuickCheck >= 2\\.8\\.1 && < 2\\.10")
1231 "QuickCheck >= 2.8.1 && < 2.12")))))))
1f477b59
PW
1232 (inputs
1233 `(("ghc-parsec" ,ghc-parsec)
1f477b59
PW
1234 ("ghc-exceptions" ,ghc-exceptions)
1235 ("ghc-multipart" ,ghc-multipart)
1236 ("ghc-network-uri" ,ghc-network-uri)
f54f0475 1237 ("ghc-network" ,ghc-network)))
22b439db
RW
1238 (native-inputs
1239 `(("ghc-doctest" ,ghc-doctest)
1240 ("ghc-quickcheck" ,ghc-quickcheck)))
1f477b59
PW
1241 (home-page
1242 "https://github.com/cheecheeo/haskell-cgi")
1243 (synopsis "Library for writing CGI programs")
e916e211 1244 (description
1f477b59 1245 "This is a Haskell library for writing CGI programs.")
3ac73271 1246 (license license:bsd-3)))
e916e211 1247
0ba56364 1248(define-public ghc-cmdargs
deb36de0 1249 (package
0ba56364 1250 (name "ghc-cmdargs")
0ff8558a 1251 (version "0.10.20")
deb36de0
FB
1252 (source
1253 (origin
1254 (method url-fetch)
1255 (uri (string-append
612fddec 1256 "https://hackage.haskell.org/package/cmdargs/cmdargs-"
bfd2ebda 1257 version ".tar.gz"))
deb36de0
FB
1258 (sha256
1259 (base32
0ff8558a 1260 "0cbkmgrcnwgigg6z88y3c09gm7g6dwm7gzbgr53h8k1xik29s9hf"))))
deb36de0 1261 (build-system haskell-build-system)
0ba56364
PW
1262 (home-page
1263 "http://community.haskell.org/~ndm/cmdargs/")
1264 (synopsis "Command line argument processing")
deb36de0 1265 (description
0ba56364 1266 "This library provides an easy way to define command line parsers.")
3ac73271 1267 (license license:bsd-3)))
deb36de0 1268
839415ec
LC
1269(define-public ghc-concatenative
1270 (package
1271 (name "ghc-concatenative")
1272 (version "1.0.1")
1273 (source (origin
1274 (method url-fetch)
1275 (uri (string-append
612fddec 1276 "https://hackage.haskell.org/package/concatenative/concatenative-"
839415ec
LC
1277 version ".tar.gz"))
1278 (sha256
1279 (base32
1280 "05xwqvcdnk8bsyj698ab9jxpa1nk23pf3m7wi9mwmw0q8n99fngd"))))
1281 (build-system haskell-build-system)
1282 (home-page
1283 "https://patch-tag.com/r/salazar/concatenative/snapshot/current/content/pretty")
1284 (synopsis "Library for postfix control flow")
1285 (description
1286 "Concatenative gives Haskell Factor-style combinators and arrows for
1287postfix notation. For more information on stack based languages, see
98b90194 1288@uref{https://concatenative.org}.")
839415ec
LC
1289 (license license:bsd-3)))
1290
81da1a45 1291(define-public ghc-happy
775be802 1292 (package
81da1a45 1293 (name "ghc-happy")
a3aaf87a 1294 (version "1.19.9")
775be802
FB
1295 (source
1296 (origin
1297 (method url-fetch)
1298 (uri (string-append
612fddec 1299 "https://hackage.haskell.org/package/happy/happy-"
775be802
FB
1300 version
1301 ".tar.gz"))
1302 (sha256
1303 (base32
a3aaf87a 1304 "138xpxdb7x62lpmgmb6b3v3vgdqqvqn4273jaap3mjmc2gla709y"))))
775be802 1305 (build-system haskell-build-system)
81da1a45
PW
1306 (home-page "https://hackage.haskell.org/package/happy")
1307 (synopsis "Parser generator for Haskell")
1308 (description "Happy is a parser generator for Haskell. Given a grammar
1309specification in BNF, Happy generates Haskell code to parse the grammar.
1310Happy works in a similar way to the yacc tool for C.")
3ac73271 1311 (license license:bsd-3)))
775be802 1312
b9a64a36
RW
1313(define-public ghc-haskell-lexer
1314 (package
1315 (name "ghc-haskell-lexer")
1316 (version "1.0.1")
1317 (source
1318 (origin
1319 (method url-fetch)
1320 (uri (string-append
1321 "https://hackage.haskell.org/package/haskell-lexer/haskell-lexer-"
1322 version ".tar.gz"))
1323 (sha256
1324 (base32
1325 "0rj3r1pk88hh3sk3mj61whp8czz5kpxhbc78xlr04bxwqjrjmm6p"))))
1326 (build-system haskell-build-system)
1327 (home-page "http://hackage.haskell.org/package/haskell-lexer")
1328 (synopsis "Fully compliant Haskell 98 lexer")
1329 (description
1330 "This package provides a fully compliant Haskell 98 lexer.")
1331 (license license:bsd-3)))
1332
f30b7538
RW
1333(define-public ghc-pretty-show
1334 (package
1335 (name "ghc-pretty-show")
6b19c5a4 1336 (version "1.7")
f30b7538
RW
1337 (source
1338 (origin
1339 (method url-fetch)
1340 (uri (string-append "https://hackage.haskell.org/package/pretty-show/"
1341 "pretty-show-" version ".tar.gz"))
1342 (sha256
1343 (base32
6b19c5a4 1344 "0br7pkxqqqhby2j2v1g847lgqsrasx56g1jw3dhmjh4flzs6warq"))))
f30b7538
RW
1345 (build-system haskell-build-system)
1346 (inputs
1347 `(("ghc-haskell-lexer" ,ghc-haskell-lexer)
1348 ("ghc-happy" ,ghc-happy)))
1349 (home-page "http://wiki.github.com/yav/pretty-show")
1350 (synopsis "Tools for working with derived `Show` instances")
1351 (description
1352 "This package provides a library and an executable for working with
1353derived @code{Show} instances. By using the library, derived @code{Show}
1354instances can be parsed into a generic data structure. The @code{ppsh} tool
1355uses the library to produce human-readable versions of @code{Show} instances,
1356which can be quite handy for debugging Haskell programs. We can also render
1357complex generic values into an interactive Html page, for easier
1358examination.")
1359 (license license:expat)))
1360
6ff19687 1361(define-public ghc-haskell-src-exts
c3b90c0e 1362 (package
6ff19687 1363 (name "ghc-haskell-src-exts")
14b0ade6 1364 (version "1.20.2")
c3b90c0e
FB
1365 (source
1366 (origin
1367 (method url-fetch)
1368 (uri (string-append
612fddec 1369 "https://hackage.haskell.org/package/haskell-src-exts/haskell-src-exts-"
c3b90c0e
FB
1370 version
1371 ".tar.gz"))
1372 (sha256
1373 (base32
14b0ade6 1374 "1sm3z4v1p5yffg01ldgavz71s3bvfhjfa13k428rk14bpkl8crlz"))))
c3b90c0e 1375 (build-system haskell-build-system)
2d47cee2 1376 (inputs
6ff19687 1377 `(("cpphs" ,cpphs)
6ff19687 1378 ("ghc-happy" ,ghc-happy)
14b0ade6 1379 ("ghc-pretty-show" ,ghc-pretty-show)))
172bb3b8
RW
1380 (native-inputs
1381 `(("ghc-smallcheck" ,ghc-smallcheck)
1382 ("ghc-tasty" ,ghc-tasty)
1383 ("ghc-tasty-smallcheck" ,ghc-tasty-smallcheck)
1384 ("ghc-tasty-golden" ,ghc-tasty-golden)))
6ff19687
PW
1385 (home-page "https://github.com/haskell-suite/haskell-src-exts")
1386 (synopsis "Library for manipulating Haskell source")
1387 (description "Haskell-Source with Extensions (HSE, haskell-src-exts) is an
1388extension of the standard @code{haskell-src} package, and handles most
1389registered syntactic extensions to Haskell. All extensions implemented in GHC
1390are supported. Apart from these standard extensions, it also handles regular
1391patterns as per the HaRP extension as well as HSX-style embedded XML syntax.")
3ac73271 1392 (license license:bsd-3)))
c3b90c0e 1393
3657bd1f
RW
1394(define-public ghc-haskell-src-exts-util
1395 (package
1396 (name "ghc-haskell-src-exts-util")
255a31f8 1397 (version "0.2.3")
3657bd1f
RW
1398 (source
1399 (origin
1400 (method url-fetch)
1401 (uri (string-append "https://hackage.haskell.org/package/"
1402 "haskell-src-exts-util/haskell-src-exts-util-"
1403 version ".tar.gz"))
1404 (sha256
1405 (base32
255a31f8 1406 "1803718paq89f8pdck4mb88hv2k1ah9lxzq0lgjgwi9n88ryycz8"))))
3657bd1f
RW
1407 (build-system haskell-build-system)
1408 (inputs
1409 `(("ghc-data-default" ,ghc-data-default)
1410 ("ghc-haskell-src-exts" ,ghc-haskell-src-exts)
1411 ("ghc-semigroups" ,ghc-semigroups)
1412 ("ghc-uniplate" ,ghc-uniplate)))
1413 (home-page "https://github.com/pepeiborra/haskell-src-exts-util")
1414 (synopsis "Helper functions for working with haskell-src-exts trees")
1415 (description
1416 "This package provides helper functions for working with
1417@code{haskell-src-exts} trees.")
1418 (license license:bsd-3)))
1419
b28f0ffa
RW
1420(define-public ghc-refact
1421 (package
1422 (name "ghc-refact")
1423 (version "0.3.0.2")
1424 (source
1425 (origin
1426 (method url-fetch)
1427 (uri (string-append "https://hackage.haskell.org/package/"
1428 "refact/refact-"
1429 version ".tar.gz"))
1430 (sha256
1431 (base32
1432 "0v0zxcx29b8jxs2kgy9csykqcp8kzhdvyylw2xfwmj4pfxr2kl0a"))))
1433 (build-system haskell-build-system)
1434 (home-page "http://hackage.haskell.org/package/refact")
1435 (synopsis "Specify refactorings to perform with apply-refact")
1436 (description
1437 "This library provides a datatype which can be interpreted by
add928d3 1438@code{apply-refact}. It exists as a separate library so that applications can
b28f0ffa
RW
1439specify refactorings without depending on GHC.")
1440 (license license:bsd-3)))
1441
6397aef0 1442(define-public hlint
df596b94 1443 (package
6397aef0 1444 (name "hlint")
478365e3 1445 (version "2.1.10")
df596b94
FB
1446 (source
1447 (origin
1448 (method url-fetch)
1449 (uri (string-append
612fddec 1450 "https://hackage.haskell.org/package/" name
6397aef0 1451 "/" name "-" version ".tar.gz"))
df596b94 1452 (sha256
6397aef0 1453 (base32
478365e3 1454 "19as2m9g75cr6n1agzvsij0cvqhb0wbjlk31w4y5d5mns87dki0w"))))
df596b94 1455 (build-system haskell-build-system)
6397aef0
PW
1456 (inputs
1457 `(("cpphs" ,cpphs)
780185cc
RW
1458 ("ghc-unordered-containers" ,ghc-unordered-containers)
1459 ("ghc-yaml" ,ghc-yaml)
1460 ("ghc-vector" ,ghc-vector)
1461 ("ghc-text" ,ghc-text)
1462 ("ghc-data-default" ,ghc-data-default)
6397aef0
PW
1463 ("ghc-cmdargs" ,ghc-cmdargs)
1464 ("ghc-haskell-src-exts" ,ghc-haskell-src-exts)
780185cc 1465 ("ghc-haskell-src-exts-util" ,ghc-haskell-src-exts-util)
6397aef0
PW
1466 ("ghc-uniplate" ,ghc-uniplate)
1467 ("ghc-ansi-terminal" ,ghc-ansi-terminal)
1468 ("ghc-extra" ,ghc-extra)
780185cc
RW
1469 ("ghc-refact" ,ghc-refact)
1470 ("ghc-aeson" ,ghc-aeson)
6397aef0
PW
1471 ("hscolour" ,hscolour)))
1472 (home-page "http://community.haskell.org/~ndm/hlint/")
1473 (synopsis "Suggest improvements for Haskell source code")
1474 (description "HLint reads Haskell programs and suggests changes that
1475hopefully make them easier to read. HLint also makes it easy to disable
1476unwanted suggestions, and to add your own custom suggestions.")
3ac73271 1477 (license license:bsd-3)))
4af803a7 1478
85b2a2f5 1479(define-public ghc-resourcet
4af803a7 1480 (package
85b2a2f5 1481 (name "ghc-resourcet")
990cd5ef 1482 (version "1.2.1")
4af803a7
FB
1483 (source
1484 (origin
1485 (method url-fetch)
990cd5ef
RW
1486 (uri (string-append "https://hackage.haskell.org/package/resourcet/"
1487 "resourcet-" version ".tar.gz"))
4af803a7
FB
1488 (sha256
1489 (base32
990cd5ef 1490 "0rzjzh34s36ssign7akqjnwnjxf11c3511wk7ky0xxy0dqmc2rg7"))))
4af803a7 1491 (build-system haskell-build-system)
2d47cee2 1492 (inputs
85b2a2f5
PW
1493 `(("ghc-transformers-base" ,ghc-transformers-base)
1494 ("ghc-monad-control" ,ghc-monad-control)
1495 ("ghc-transformers-compat" ,ghc-transformers-compat)
85b2a2f5 1496 ("ghc-mmorph" ,ghc-mmorph)
990cd5ef
RW
1497 ("ghc-exceptions" ,ghc-exceptions)
1498 ("ghc-unliftio-core" ,ghc-unliftio-core)))
2d47cee2 1499 (native-inputs
85b2a2f5
PW
1500 `(("ghc-lifted-base" ,ghc-lifted-base)
1501 ("ghc-hspec" ,ghc-hspec)))
612fddec 1502 (home-page "https://github.com/snoyberg/conduit")
85b2a2f5
PW
1503 (synopsis "Deterministic allocation and freeing of scarce resources")
1504 (description "ResourceT is a monad transformer which creates a region of
1505code where you can safely allocate resources.")
3ac73271 1506 (license license:bsd-3)))
4af803a7 1507
74fa80ee 1508(define-public ghc-objectname
dc0ae39a 1509 (package
74fa80ee 1510 (name "ghc-objectname")
1d9d3ec2 1511 (version "1.1.0.1")
dc0ae39a
FB
1512 (source
1513 (origin
1514 (method url-fetch)
1515 (uri (string-append
612fddec 1516 "https://hackage.haskell.org/package/ObjectName/ObjectName-"
dc0ae39a
FB
1517 version
1518 ".tar.gz"))
1519 (sha256
1520 (base32
1d9d3ec2 1521 "046jm94rmm46cicd31pl54vdvfjvhd9ffbfycy2lxzc0fliyznvj"))))
dc0ae39a 1522 (build-system haskell-build-system)
74fa80ee
PW
1523 (home-page "https://hackage.haskell.org/package/ObjectName")
1524 (synopsis "Helper library for Haskell OpenGL")
1525 (description "This tiny package contains the class ObjectName, which
1526corresponds to the general notion of explicitly handled identifiers for API
1527objects, e.g. a texture object name in OpenGL or a buffer object name in
1528OpenAL.")
3ac73271 1529 (license license:bsd-3)))
dc0ae39a 1530
b784e8c5 1531(define-public ghc-sdl
7a1e8c74 1532 (package
b784e8c5 1533 (name "ghc-sdl")
30a8c0d8 1534 (version "0.6.7.0")
7a1e8c74
FB
1535 (source
1536 (origin
1537 (method url-fetch)
1538 (uri (string-append
612fddec 1539 "https://hackage.haskell.org/package/SDL/SDL-"
7a1e8c74
FB
1540 version
1541 ".tar.gz"))
1542 (sha256
1543 (base32
30a8c0d8 1544 "00y67v80a8l09i3k76z09lg25kw72ivl09nag8ckdlk4a0cfnzfq"))))
7a1e8c74
FB
1545 (build-system haskell-build-system)
1546 (inputs
b784e8c5
PW
1547 `(("sdl" ,sdl)))
1548 (home-page "https://hackage.haskell.org/package/SDL")
1549 (synopsis "LibSDL for Haskell")
1550 (description "Simple DirectMedia Layer (libSDL) is a cross-platform
1551multimedia library designed to provide low level access to audio, keyboard,
1552mouse, joystick, 3D hardware via OpenGL, and 2D video framebuffer. It is used
1553by MPEG playback software, emulators, and many popular games, including the
1554award winning Linux port of \"Civilization: Call To Power.\"")
3ac73271 1555 (license license:bsd-3)))
7a1e8c74 1556
224a0ddb 1557(define-public ghc-sdl-mixer
eaa3088e 1558 (package
224a0ddb 1559 (name "ghc-sdl-mixer")
214fae87 1560 (version "0.6.3.0")
eaa3088e
FB
1561 (source
1562 (origin
1563 (method url-fetch)
1564 (uri (string-append
612fddec 1565 "https://hackage.haskell.org/package/SDL-mixer/SDL-mixer-"
eaa3088e
FB
1566 version
1567 ".tar.gz"))
1568 (sha256
1569 (base32
214fae87 1570 "0k26hqgdh789ka3mv4dsk6rin6x6vwcs6hjmnsqq7j3mnrh1342r"))))
eaa3088e 1571 (build-system haskell-build-system)
224a0ddb
PW
1572 (arguments
1573 `(#:configure-flags
1574 (let* ((sdl-mixer (assoc-ref %build-inputs "sdl-mixer"))
1575 (sdl-mixer-include (string-append sdl-mixer "/include/SDL")))
fd59d2ee 1576 (list (string-append "--extra-include-dirs=" sdl-mixer-include)))))
eaa3088e 1577 (inputs
2d47cee2
RW
1578 `(("ghc-sdl" ,ghc-sdl)
1579 ("sdl-mixer" ,sdl-mixer)))
612fddec 1580 (home-page "https://hackage.haskell.org/package/SDL-mixer")
224a0ddb
PW
1581 (synopsis "Haskell bindings to libSDL_mixer")
1582 (description "SDL_mixer is a sample multi-channel audio mixer library. It
1583supports any number of simultaneously playing channels of 16 bit stereo audio,
1584plus a single channel of music, mixed by the popular MikMod MOD, Timidity
1585MIDI, Ogg Vorbis, and SMPEG MP3 libraries.")
3ac73271 1586 (license license:bsd-3)))
eaa3088e 1587
c783cac0 1588(define-public ghc-sdl-image
61c02099 1589 (package
c783cac0 1590 (name "ghc-sdl-image")
cfd1a7d0 1591 (version "0.6.2.0")
61c02099
FB
1592 (source
1593 (origin
1594 (method url-fetch)
1595 (uri (string-append
612fddec 1596 "https://hackage.haskell.org/package/SDL-image/SDL-image-"
61c02099
FB
1597 version
1598 ".tar.gz"))
1599 (sha256
1600 (base32
cfd1a7d0 1601 "1gxwrvswgwjw6g7ym52gik22l9l3ljy592phv97jdmcf3gi6qcg1"))))
61c02099 1602 (build-system haskell-build-system)
61c02099 1603 (arguments
c783cac0
PW
1604 `(#:configure-flags
1605 (let* ((sdl-image (assoc-ref %build-inputs "sdl-image"))
1606 (sdl-image-include (string-append sdl-image "/include/SDL")))
fd59d2ee 1607 (list (string-append "--extra-include-dirs=" sdl-image-include)))))
c783cac0 1608 (inputs
2d47cee2
RW
1609 `(("ghc-sdl" ,ghc-sdl)
1610 ("sdl-image" ,sdl-image)))
612fddec 1611 (home-page "https://hackage.haskell.org/package/SDL-image")
c783cac0
PW
1612 (synopsis "Haskell bindings to libSDL_image")
1613 (description "SDL_image is an image file loading library. It loads images
1614as SDL surfaces, and supports the following formats: BMP, GIF, JPEG, LBM, PCX,
1615PNG, PNM, TGA, TIFF, XCF, XPM, XV.")
3ac73271 1616 (license license:bsd-3)))
61c02099 1617
22db3ce7 1618(define-public ghc-half
c5043f4a 1619 (package
22db3ce7 1620 (name "ghc-half")
16b4b6d1 1621 (version "0.3")
c5043f4a
FB
1622 (source
1623 (origin
1624 (method url-fetch)
1625 (uri (string-append
612fddec 1626 "https://hackage.haskell.org/package/half/half-"
f1c2aed7 1627 version ".tar.gz"))
c5043f4a
FB
1628 (sha256
1629 (base32
16b4b6d1 1630 "14r0nx8hm5fic9gz0ybjjw4kyc758zfgvhhwvzsshpx5caq6zch6"))))
c5043f4a 1631 (build-system haskell-build-system)
16b4b6d1
TS
1632 (native-inputs
1633 `(("ghc-hspec" ,ghc-hspec)
1634 ("ghc-quickcheck" ,ghc-quickcheck)))
612fddec 1635 (home-page "https://github.com/ekmett/half")
22db3ce7
PW
1636 (synopsis "Half-precision floating-point computations")
1637 (description "This library provides a half-precision floating-point
1638computation library for Haskell.")
3ac73271 1639 (license license:bsd-3)))
c5043f4a 1640
0ffea6f2
RW
1641(define-public ghc-fixed
1642 (package
1643 (name "ghc-fixed")
1644 (version "0.2.1.1")
1645 (source
1646 (origin
1647 (method url-fetch)
1648 (uri (string-append "https://hackage.haskell.org/package/fixed/fixed-"
1649 version ".tar.gz"))
1650 (sha256
1651 (base32
1652 "1qhmwx8iqshns0crmr9d2f8hm65jxbcp3dvv0c39v34ra7if3a94"))))
1653 (build-system haskell-build-system)
1654 (home-page "https://github.com/ekmett/fixed")
1655 (synopsis "Signed 15.16 precision fixed point arithmetic")
1656 (description
1657 "This package provides functions for signed 15.16 precision fixed point
1658arithmetic.")
1659 (license license:bsd-3)))
1660
c480b85e 1661(define-public ghc-openglraw
01a687da 1662 (package
c480b85e 1663 (name "ghc-openglraw")
1aacec9e 1664 (version "3.3.1.0")
01a687da
FB
1665 (source
1666 (origin
1667 (method url-fetch)
1668 (uri (string-append
612fddec 1669 "https://hackage.haskell.org/package/OpenGLRaw/OpenGLRaw-"
01a687da
FB
1670 version
1671 ".tar.gz"))
1672 (sha256
1673 (base32
1aacec9e 1674 "1x8w3x308jldj2c1xqcq3a3sc2jc06pdpgqkgjsmixi1skv4a1vb"))))
01a687da
FB
1675 (build-system haskell-build-system)
1676 (inputs
c480b85e 1677 `(("ghc-half" ,ghc-half)
e80e97b5 1678 ("ghc-fixed" ,ghc-fixed)
c480b85e
PW
1679 ("glu" ,glu)
1680 ("ghc-text" ,ghc-text)))
98b90194 1681 (home-page "https://www.haskell.org/haskellwiki/Opengl")
c480b85e
PW
1682 (synopsis "Raw Haskell bindings for the OpenGL graphics system")
1683 (description "OpenGLRaw is a raw Haskell binding for the OpenGL 4.5
1684graphics system and lots of OpenGL extensions. It is basically a 1:1 mapping
1685of OpenGL's C API, intended as a basis for a nicer interface. OpenGLRaw
1686offers access to all necessary functions, tokens and types plus a general
1687facility for loading extension entries. The module hierarchy closely mirrors
1688the naming structure of the OpenGL extensions, making it easy to find the
1689right module to import. All API entries are loaded dynamically, so no special
1690C header files are needed for building this package. If an API entry is not
1691found at runtime, a userError is thrown.")
3ac73271 1692 (license license:bsd-3)))
01a687da 1693
bce03084 1694(define-public ghc-glut
d692228e 1695 (package
bce03084 1696 (name "ghc-glut")
2dee6394 1697 (version "2.7.0.14")
d692228e
FB
1698 (source
1699 (origin
1700 (method url-fetch)
1701 (uri (string-append
612fddec 1702 "https://hackage.haskell.org/package/GLUT/GLUT-"
d692228e
FB
1703 version
1704 ".tar.gz"))
1705 (sha256
1706 (base32
2dee6394 1707 "01i162fly4q1751fp60lgkzlb8kr0qqbvmxj74zc6skb19qggy2w"))))
d692228e 1708 (build-system haskell-build-system)
2d47cee2 1709 (inputs
bce03084 1710 `(("ghc-statevar" ,ghc-statevar)
2d47cee2 1711 ("ghc-opengl" ,ghc-opengl)
dd169b73 1712 ("ghc-openglraw" ,ghc-openglraw)
bce03084 1713 ("freeglut" ,freeglut)))
98b90194 1714 (home-page "https://www.haskell.org/haskellwiki/Opengl")
bce03084
PW
1715 (synopsis "Haskell bindings for the OpenGL Utility Toolkit")
1716 (description "This library provides Haskell bindings for the OpenGL
1717Utility Toolkit, a window system-independent toolkit for writing OpenGL
1718programs.")
3ac73271 1719 (license license:bsd-3)))
d692228e 1720
894562e3 1721(define-public ghc-gluraw
fa468e87 1722 (package
894562e3 1723 (name "ghc-gluraw")
211b2133 1724 (version "2.0.0.4")
fa468e87
FB
1725 (source
1726 (origin
1727 (method url-fetch)
1728 (uri (string-append
612fddec 1729 "https://hackage.haskell.org/package/GLURaw/GLURaw-"
fa468e87
FB
1730 version
1731 ".tar.gz"))
1732 (sha256
894562e3 1733 (base32
211b2133 1734 "1i2xi35n5z0d372px9mh6cyhgg1m0cfaiy3fnspkf6kbn9fgsqxq"))))
fa468e87 1735 (build-system haskell-build-system)
2d47cee2 1736 (inputs
894562e3 1737 `(("ghc-openglraw" ,ghc-openglraw)))
98b90194 1738 (home-page "https://www.haskell.org/haskellwiki/Opengl")
894562e3
PW
1739 (synopsis "Raw Haskell bindings GLU")
1740 (description "GLURaw is a raw Haskell binding for the GLU 1.3 OpenGL
1741utility library. It is basically a 1:1 mapping of GLU's C API, intended as a
1742basis for a nicer interface.")
3ac73271 1743 (license license:bsd-3)))
fa468e87 1744
fe28ba70 1745(define-public ghc-opengl
f50fc138 1746 (package
fe28ba70 1747 (name "ghc-opengl")
ce88eae9 1748 (version "3.0.2.2")
f50fc138
FB
1749 (source
1750 (origin
1751 (method url-fetch)
1752 (uri (string-append
612fddec 1753 "https://hackage.haskell.org/package/OpenGL/OpenGL-"
f50fc138
FB
1754 version
1755 ".tar.gz"))
1756 (sha256
1757 (base32
ce88eae9 1758 "19vxwvx2n8zq2klj176l25n2b64ybp0b8mhm4p46gvpcivz41fjc"))))
f50fc138 1759 (build-system haskell-build-system)
2d47cee2 1760 (inputs
fe28ba70
PW
1761 `(("ghc-text" ,ghc-text)
1762 ("ghc-objectname" ,ghc-objectname)
1763 ("ghc-gluraw" ,ghc-gluraw)
1764 ("ghc-statevar" ,ghc-statevar)
1765 ("ghc-openglraw" ,ghc-openglraw)))
98b90194 1766 (home-page "https://www.haskell.org/haskellwiki/Opengl")
fe28ba70
PW
1767 (synopsis "Haskell bindings for the OpenGL graphics system")
1768 (description "This package provides Haskell bindings for the OpenGL
1769graphics system (GL, version 4.5) and its accompanying utility library (GLU,
1770version 1.3).")
3ac73271 1771 (license license:bsd-3)))
f50fc138 1772
f550db48 1773(define-public ghc-streaming-commons
abfed253 1774 (package
f550db48 1775 (name "ghc-streaming-commons")
c437b800 1776 (version "0.2.1.0")
abfed253
FB
1777 (source
1778 (origin
1779 (method url-fetch)
c437b800
RW
1780 (uri (string-append "https://hackage.haskell.org/package/"
1781 "streaming-commons/streaming-commons-"
1782 version ".tar.gz"))
abfed253
FB
1783 (sha256
1784 (base32
c437b800 1785 "13fn6qmpiggwpn8lczyydgp77cyzfypwds7wxskrwir4i5cgxlfq"))))
abfed253
FB
1786 (build-system haskell-build-system)
1787 (inputs
c437b800
RW
1788 `(("ghc-async" ,ghc-async)
1789 ("ghc-blaze-builder" ,ghc-blaze-builder)
2d47cee2
RW
1790 ("ghc-network" ,ghc-network)
1791 ("ghc-random" ,ghc-random)
f550db48
PW
1792 ("ghc-stm" ,ghc-stm)
1793 ("ghc-text" ,ghc-text)
f550db48 1794 ("ghc-zlib" ,ghc-zlib)))
2d47cee2
RW
1795 (native-inputs
1796 `(("ghc-quickcheck" ,ghc-quickcheck)
1797 ("ghc-hspec" ,ghc-hspec)
1798 ("hspec-discover" ,hspec-discover)))
f550db48
PW
1799 (home-page "https://hackage.haskell.org/package/streaming-commons")
1800 (synopsis "Conduit and pipes needed by some streaming data libraries")
b90f72dc
RW
1801 (description "This package provides low-dependency functionality commonly
1802needed by various Haskell streaming data libraries, such as @code{conduit} and
f550db48 1803@code{pipe}s.")
b90f72dc 1804 (license license:expat)))
abfed253 1805
78249cc0 1806(define-public cpphs
9ce031c5 1807 (package
78249cc0 1808 (name "cpphs")
c12562e1 1809 (version "1.20.8")
9ce031c5
FB
1810 (source
1811 (origin
1812 (method url-fetch)
1813 (uri (string-append
612fddec 1814 "https://hackage.haskell.org/package/" name "/"
78249cc0
PW
1815 name "-" version ".tar.gz"))
1816 (sha256
1817 (base32
c12562e1 1818 "1bh524asqhk9v1s0wvipl0hgn7l63iy3js867yv0z3h5v2kn8vg5"))))
78249cc0 1819 (build-system haskell-build-system)
2d47cee2 1820 (inputs
78249cc0
PW
1821 `(("ghc-polyparse" ,ghc-polyparse)
1822 ("ghc-old-locale" ,ghc-old-locale)
1823 ("ghc-old-time" ,ghc-old-time)))
1824 (home-page "http://projects.haskell.org/cpphs/")
1825 (synopsis "Liberalised re-implementation of cpp, the C pre-processor")
1826 (description "Cpphs is a re-implementation of the C pre-processor that is
1827both more compatible with Haskell, and itself written in Haskell so that it
1828can be distributed with compilers. This version of the C pre-processor is
1829pretty-much feature-complete and compatible with traditional (K&R)
1830pre-processors. Additional features include: a plain-text mode; an option to
1831unlit literate code files; and an option to turn off macro-expansion.")
3ac73271 1832 (license (list license:lgpl2.1+ license:gpl3+))))
78249cc0 1833
865ac573
PW
1834(define-public ghc-reflection
1835 (package
1836 (name "ghc-reflection")
e7e74518 1837 (version "2.1.4")
865ac573
PW
1838 (source
1839 (origin
1840 (method url-fetch)
1841 (uri (string-append
612fddec 1842 "https://hackage.haskell.org/package/reflection/reflection-"
9ce031c5
FB
1843 version
1844 ".tar.gz"))
1845 (sha256
1846 (base32
e7e74518 1847 "0kf4a5ijw6jfnfibjcrpdy9vzh1n6v2pxia8dhyyqdissiwc8bzj"))))
9ce031c5 1848 (build-system haskell-build-system)
865ac573 1849 (inputs `(("ghc-tagged" ,ghc-tagged)))
612fddec 1850 (home-page "https://github.com/ekmett/reflection")
865ac573
PW
1851 (synopsis "Reify arbitrary terms into types that can be reflected back
1852into terms")
1853 (description "This package addresses the 'configuration problem' which is
1854propogating configurations that are available at run-time, allowing multiple
1855configurations to coexist without resorting to mutable global variables or
1856@code{System.IO.Unsafe.unsafePerformIO}.")
3ac73271 1857 (license license:bsd-3)))
9ce031c5 1858
6a0add9c 1859(define-public ghc-old-locale
a231ef7e 1860 (package
6a0add9c
PW
1861 (name "ghc-old-locale")
1862 (version "1.0.0.7")
a231ef7e
FB
1863 (source
1864 (origin
1865 (method url-fetch)
1866 (uri (string-append
612fddec 1867 "https://hackage.haskell.org/package/old-locale/old-locale-"
a231ef7e
FB
1868 version
1869 ".tar.gz"))
1870 (sha256
6a0add9c 1871 (base32 "0l3viphiszvz5wqzg7a45zp40grwlab941q5ay29iyw8p3v8pbyv"))))
a231ef7e 1872 (build-system haskell-build-system)
afff0b6d 1873 (arguments
12eb67dc
TS
1874 `(#:cabal-revision
1875 ("2" "04b9vn007hlvsrx4ksd3r8r3kbyaj2kvwxchdrmd4370qzi8p6gs")))
612fddec 1876 (home-page "https://hackage.haskell.org/package/old-locale")
6a0add9c
PW
1877 (synopsis "Adapt to locale conventions")
1878 (description
1879 "This package provides the ability to adapt to locale conventions such as
1880date and time formats.")
3ac73271 1881 (license license:bsd-3)))
6a0add9c 1882
7ae4c102
PW
1883(define-public ghc-old-time
1884 (package
1885 (name "ghc-old-time")
1886 (version "1.1.0.3")
1887 (source
1888 (origin
1889 (method url-fetch)
1890 (uri (string-append
612fddec 1891 "https://hackage.haskell.org/package/old-time/old-time-"
7ae4c102
PW
1892 version
1893 ".tar.gz"))
1894 (sha256
1895 (base32
1896 "1h9b26s3kfh2k0ih4383w90ibji6n0iwamxp6rfp2lbq1y5ibjqw"))))
1897 (build-system haskell-build-system)
037181ed 1898 (arguments
e3777511
TS
1899 `(#:cabal-revision
1900 ("2" "1j6ln1dkvhdvnwl33bp0xf9lhc4sybqk0aw42p8cq81xwwzbn7y9")))
2d47cee2 1901 (inputs
7ae4c102 1902 `(("ghc-old-locale" ,ghc-old-locale)))
612fddec 1903 (home-page "https://hackage.haskell.org/package/old-time")
7ae4c102
PW
1904 (synopsis "Time compatibility library for Haskell")
1905 (description "Old-time is a package for backwards compatibility with the
1906old @code{time} library. For new projects, the newer
612fddec 1907@uref{https://hackage.haskell.org/package/time, time library} is recommended.")
3ac73271 1908 (license license:bsd-3)))
7ae4c102 1909
684f29ab
SB
1910(define-public ghc-data-default-instances-old-locale
1911 (package
1912 (name "ghc-data-default-instances-old-locale")
1913 (version "0.0.1")
1914 (source
1915 (origin
1916 (method url-fetch)
1917 (uri (string-append
612fddec 1918 "https://hackage.haskell.org/package/"
684f29ab
SB
1919 "data-default-instances-old-locale/"
1920 "data-default-instances-old-locale-" version ".tar.gz"))
1921 (sha256
1922 (base32 "00h81i5phib741yj517p8mbnc48myvfj8axzsw44k34m48lv1lv0"))))
1923 (build-system haskell-build-system)
2d47cee2 1924 (inputs
6a0add9c
PW
1925 `(("ghc-data-default-class" ,ghc-data-default-class)
1926 ("ghc-old-locale" ,ghc-old-locale)))
684f29ab 1927 (home-page
612fddec 1928 "https://hackage.haskell.org/package/data-default-instances-old-locale")
684f29ab
SB
1929 (synopsis "Default instances for types in old-locale")
1930 (description "Provides Default instances for types from the old-locale
1931 package.")
3ac73271 1932 (license license:bsd-3)))
684f29ab 1933
eb6ae860
SB
1934(define-public ghc-dlist
1935 (package
1936 (name "ghc-dlist")
40a6d7a2 1937 (version "0.8.0.4")
eb6ae860
SB
1938 (source
1939 (origin
1940 (method url-fetch)
1941 (uri (string-append
612fddec 1942 "https://hackage.haskell.org/package/dlist/dlist-"
eb6ae860
SB
1943 version
1944 ".tar.gz"))
1945 (sha256
40a6d7a2 1946 (base32 "0yirrh0s6acjy9hhvf5fqg2d6q5y6gm9xs04v6w1imndh1xqdwdc"))))
eb6ae860 1947 (build-system haskell-build-system)
409ec7c0
PW
1948 (inputs
1949 `(("ghc-quickcheck" ,ghc-quickcheck)))
eb6ae860
SB
1950 (home-page "https://github.com/spl/dlist")
1951 (synopsis "Difference lists")
1952 (description
1953 "Difference lists are a list-like type supporting O(1) append. This is
1954particularly useful for efficient logging and pretty printing (e.g. with the
1955Writer monad), where list append quickly becomes too expensive.")
3ac73271 1956 (license license:bsd-3)))
eb6ae860 1957
05b964ae
SB
1958(define-public ghc-extensible-exceptions
1959 (package
1960 (name "ghc-extensible-exceptions")
1961 (version "0.1.1.4")
1962 (source
1963 (origin
1964 (method url-fetch)
612fddec 1965 (uri (string-append "https://hackage.haskell.org/package/"
05b964ae
SB
1966 "extensible-exceptions/extensible-exceptions-"
1967 version ".tar.gz"))
1968 (sha256
1969 (base32 "1273nqws9ij1rp1bsq5jc7k2jxpqa0svawdbim05lf302y0firbc"))))
1970 (build-system haskell-build-system)
612fddec 1971 (home-page "https://hackage.haskell.org/package/extensible-exceptions")
05b964ae
SB
1972 (synopsis "Extensible exceptions for Haskell")
1973 (description
1974 "This package provides extensible exceptions for both new and old
1975versions of GHC (i.e., < 6.10).")
3ac73271 1976 (license license:bsd-3)))
05b964ae 1977
c4a68dea
TS
1978(define-public ghc-echo
1979 (package
1980 (name "ghc-echo")
1981 (version "0.1.3")
1982 (source
1983 (origin
1984 (method url-fetch)
1985 (uri (string-append
1986 "https://hackage.haskell.org/package/echo/echo-"
1987 version ".tar.gz"))
1988 (sha256
1989 (base32
1990 "1vw5ykpwhr39wc0hhcgq3r8dh59zq6ib4zxbz1qd2wl21wqhfkvh"))))
1991 (build-system haskell-build-system)
1992 (arguments
1993 `(#:cabal-revision
1994 ("1" "0br8wfiybcw5hand4imiw0i5hacdmrax1dv8g95f35gazffbx42l")))
1995 (home-page "https://github.com/RyanGlScott/echo")
1996 (synopsis "Echo terminal input portably")
1997 (description "The @code{base} library exposes the @code{hGetEcho} and
1998@code{hSetEcho} functions for querying and setting echo status, but
1999unfortunately, neither function works with MinTTY consoles on Windows.
2000This library provides an alternative interface which works with both
2001MinTTY and other consoles.")
2002 (license license:bsd-3)))
2003
45e421ff
TS
2004(define-public ghc-hackage-security
2005 (package
2006 (name "ghc-hackage-security")
2007 (version "0.5.3.0")
2008 (source
2009 (origin
2010 (method url-fetch)
2011 (uri (string-append "https://hackage.haskell.org/package/"
2012 "hackage-security/hackage-security-"
2013 version ".tar.gz"))
2014 (sha256
2015 (base32
2016 "08bwawc7ramgdh54vcly2m9pvfchp0ahhs8117jajni6x4bnx66v"))))
2017 (build-system haskell-build-system)
2018 (arguments
2019 `(#:tests? #f)) ; Tests fail because of framework updates.
2020 (inputs
2021 `(("ghc-base16-bytestring" ,ghc-base16-bytestring)
2022 ("ghc-base64-bytestring" ,ghc-base64-bytestring)
2023 ("ghc-cryptohash-sha256" ,ghc-cryptohash-sha256)
2024 ("ghc-ed25519" ,ghc-ed25519)
2025 ("ghc-network" ,ghc-network)
2026 ("ghc-network-uri" ,ghc-network-uri)
2027 ("ghc-parsec" ,ghc-parsec)
2028 ("ghc-tar" ,ghc-tar)
2029 ("ghc-zlib" ,ghc-zlib)))
2030 (native-inputs
2031 `(("ghc-network-uri" ,ghc-network-uri)
2032 ("ghc-quickcheck" ,ghc-quickcheck)
2033 ("ghc-tar" ,ghc-tar)
2034 ("ghc-tasty" ,ghc-tasty)
2035 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
2036 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
2037 ("ghc-temporary" ,ghc-temporary)
2038 ("ghc-zlib" ,ghc-zlib)))
2039 (home-page "https://github.com/haskell/hackage-security")
2040 (synopsis "Hackage security library")
2041 (description "This Hackage security library provides both server and
2042client utilities for securing @uref{http://hackage.haskell.org/, the
2043Hackage package server}. It is based on
2044@uref{http://theupdateframework.com/, The Update Framework}, a set of
2045recommendations developed by security researchers at various universities
2046in the US as well as developers on the @uref{https://www.torproject.org/,
2047Tor project}.")
2048 (license license:bsd-3)))
2049
246cdfac
TS
2050(define-public ghc-resolv
2051 (package
2052 (name "ghc-resolv")
2053 (version "0.1.1.1")
2054 (source
2055 (origin
2056 (method url-fetch)
2057 (uri (string-append
2058 "https://hackage.haskell.org/package/resolv/resolv-"
2059 version ".tar.gz"))
2060 (sha256
2061 (base32
2062 "0wh7wj56l3f2bylz563g5g04a4nydj8acv60hpwa7k3mn792xca9"))))
2063 (build-system haskell-build-system)
2064 (arguments
2065 `(#:cabal-revision
2066 ("1" "15ay4n3x8c09cb3h4z1nan84yd3n9zpgvi6h114hk98bq10k8mma")
2067 #:tests? #f)) ; The required test frameworks are too old.
2068 (inputs
2069 `(("ghc-base16-bytestring" ,ghc-base16-bytestring)))
2070 (home-page "https://github.com/haskell/hackage-security")
2071 (synopsis "Domain Name Service (DNS) lookup via @code{libresolv}")
2072 (description "This package implements an API for accessing the
2073@uref{https://tools.ietf.org/html/rfc1035, Domain Name Service (DNS)}
2074resolver service via the standard @code{libresolv} system library (whose
2075API is often available directly via the standard @code{libc} C library) on
2076Unix systems.")
2077 (license license:gpl3)))
2078
df1db767
SB
2079(define-public cabal-install
2080 (package
2081 (name "cabal-install")
f707db29 2082 (version "2.2.0.0")
df1db767
SB
2083 (source
2084 (origin
2085 (method url-fetch)
2086 (uri (string-append
612fddec 2087 "https://hackage.haskell.org/package/cabal-install/cabal-install-"
df1db767
SB
2088 version
2089 ".tar.gz"))
2090 (sha256
f707db29 2091 (base32 "1nd3ch7qr4dpfxhgkcq2lnhvszx2kjgnn1kwb44vk9y5jgfs4mn8"))))
df1db767
SB
2092 (arguments `(#:tests? #f)) ; FIXME: testing libraries are missing.
2093 (build-system haskell-build-system)
2d47cee2 2094 (inputs
f707db29
TS
2095 `(("ghc-async" ,ghc-async)
2096 ("ghc-base16-bytestring" ,ghc-base16-bytestring)
2097 ("ghc-cryptohash-sha256" ,ghc-cryptohash-sha256)
2098 ("ghc-echo" ,ghc-echo)
2099 ("ghc-edit-distance" ,ghc-edit-distance)
2100 ("ghc-hackage-security" ,ghc-hackage-security)
2101 ("ghc-hashable" ,ghc-hashable)
2102 ("ghc-http" ,ghc-http)
df1db767
SB
2103 ("ghc-network-uri" ,ghc-network-uri)
2104 ("ghc-network" ,ghc-network)
2105 ("ghc-random" ,ghc-random)
f707db29 2106 ("ghc-resolv" ,ghc-resolv)
df1db767 2107 ("ghc-stm" ,ghc-stm)
f707db29 2108 ("ghc-tar" ,ghc-tar)
df1db767 2109 ("ghc-zlib" ,ghc-zlib)))
98b90194 2110 (home-page "https://www.haskell.org/cabal/")
df1db767
SB
2111 (synopsis "Command-line interface for Cabal and Hackage")
2112 (description
2113 "The cabal command-line program simplifies the process of managing
2114Haskell software by automating the fetching, configuration, compilation and
2115installation of Haskell libraries and programs.")
3ac73271 2116 (license license:bsd-3)))
df1db767 2117
3168796a
RW
2118(define-public cabal-doctest
2119 (package
2120 (name "cabal-doctest")
2121 (version "1.0.6")
2122 (source
2123 (origin
2124 (method url-fetch)
2125 (uri (string-append "https://hackage.haskell.org/package/"
2126 "cabal-doctest/cabal-doctest-"
2127 version ".tar.gz"))
2128 (sha256
2129 (base32
2130 "0bgd4jdmzxq5y465r4sf4jv2ix73yvblnr4c9wyazazafddamjny"))))
2131 (build-system haskell-build-system)
988dee48
TS
2132 (arguments
2133 `(#:cabal-revision
2134 ("1" "1bk85avgc93yvcggwbk01fy8nvg6753wgmaanhkry0hz55h7mpld")))
3168796a
RW
2135 (home-page "https://github.com/phadej/cabal-doctest")
2136 (synopsis "Setup.hs helper for running doctests")
2137 (description
2138 "To properly work, the @code{doctest} package needs plenty of
2139configuration. This library provides the common bits for writing custom
2140@file{Setup.hs} files.")
2141 (license license:bsd-3)))
2142
fe0fb890
TGR
2143(define-public ghc-parsec-numbers
2144 (package
2145 (name "ghc-parsec-numbers")
2146 (version "0.1.0")
2147 (source
2148 (origin
2149 (method url-fetch)
2150 (uri (string-append "https://hackage.haskell.org/package/"
2151 "parsec-numbers/parsec-numbers-" version ".tar.gz"))
2152 (sha256
2153 (base32 "1gzy4v3r02kvdxvgg1nj83mmb6aph2v4ilf9c7y6nbvi2x49l0bp"))))
2154 (build-system haskell-build-system)
2155 (inputs
2156 `(("ghc-parsec" ,ghc-parsec)))
95bf0780 2157 (home-page "https://hackage.haskell.org/package/parsec-numbers")
fe0fb890
TGR
2158 (synopsis "Utilities for parsing numbers from strings")
2159 (description
2160 "This package provides the number parsers without the need to use a large
2161(and unportable) token parser.")
2162 (license license:bsd-3)))
2163
0939da6e
FB
2164(define-public ghc-paths
2165 (package
2166 (name "ghc-paths")
2167 (version "0.1.0.9")
2168 (outputs '("out" "doc"))
2169 (source
2170 (origin
2171 (method url-fetch)
2172 (uri (string-append
612fddec 2173 "https://hackage.haskell.org/package/ghc-paths/ghc-paths-"
0939da6e
FB
2174 version
2175 ".tar.gz"))
2176 (sha256
2177 (base32
2178 "0ibrr1dxa35xx20cpp8jzgfak1rdmy344dfwq4vlq013c6w8z9mg"))))
2179 (build-system haskell-build-system)
2180 (home-page "https://github.com/simonmar/ghc-paths")
2181 (synopsis
2182 "Knowledge of GHC's installation directories")
2183 (description
2184 "Knowledge of GHC's installation directories.")
3ac73271 2185 (license license:bsd-3)))
0939da6e 2186
7fc7186e
SB
2187(define-public ghc-utf8-string
2188 (package
2189 (name "ghc-utf8-string")
ac426aa5 2190 (version "1.0.1.1")
7fc7186e
SB
2191 (source
2192 (origin
2193 (method url-fetch)
2194 (uri (string-append
612fddec 2195 "https://hackage.haskell.org/package/utf8-string/utf8-string-"
7fc7186e
SB
2196 version
2197 ".tar.gz"))
2198 (sha256
ac426aa5 2199 (base32 "0h7imvxkahiy8pzr8cpsimifdfvv18lizrb33k6mnq70rcx9w2zv"))))
7fc7186e 2200 (build-system haskell-build-system)
4fe3ce82 2201 (arguments
c325dde2
TS
2202 `(#:cabal-revision
2203 ("3" "02vhj5gykkqa2dyn7s6gn8is1b5fdn9xcqqvlls268g7cpv6rk38")))
612fddec 2204 (home-page "https://github.com/glguy/utf8-string/")
7fc7186e
SB
2205 (synopsis "Support for reading and writing UTF8 Strings")
2206 (description
ac426aa5 2207 "A UTF8 layer for Strings. The utf8-string package provides operations
7fc7186e
SB
2208for encoding UTF8 strings to Word8 lists and back, and for reading and writing
2209UTF8 without truncation.")
3ac73271 2210 (license license:bsd-3)))
7fc7186e 2211
a45a15df
PW
2212(define-public ghc-setenv
2213 (package
2214 (name "ghc-setenv")
2215 (version "0.1.1.3")
2216 (source
2217 (origin
2218 (method url-fetch)
2219 (uri (string-append
612fddec 2220 "https://hackage.haskell.org/package/setenv/setenv-"
a45a15df
PW
2221 version
2222 ".tar.gz"))
2223 (sha256
2224 (base32
2225 "0cnbgrvb9byyahb37zlqrj05rj25v190crgcw8wmlgf0mwwxyn73"))))
2226 (build-system haskell-build-system)
612fddec 2227 (home-page "https://hackage.haskell.org/package/setenv")
a45a15df
PW
2228 (synopsis "Library for setting environment variables")
2229 (description "This package provides a Haskell library for setting
2230environment variables.")
3ac73271 2231 (license license:expat)))
a45a15df 2232
c7bdb413
MM
2233(define-public ghc-setlocale
2234 (package
2235 (name "ghc-setlocale")
42f2732e 2236 (version "1.0.0.8")
c7bdb413
MM
2237 (source (origin
2238 (method url-fetch)
2239 (uri (string-append
2240 "https://hackage.haskell.org/package/setlocale-"
2241 version "/setlocale-" version ".tar.gz"))
2242 (sha256
2243 (base32
42f2732e 2244 "0sdrsmkhw08483d73ysgm2926fdbhii61br03lqpqw0lfzj4ilbd"))))
c7bdb413
MM
2245 (build-system haskell-build-system)
2246 (home-page "https://hackage.haskell.org/package/setlocale")
2247 (synopsis "Haskell bindings to setlocale")
2248 (description "This package provides Haskell bindings to the
2249@code{setlocale} C function.")
2250 (license license:bsd-3)))
2251
720fb41c
SB
2252(define-public ghc-x11
2253 (package
2254 (name "ghc-x11")
d09b2ad4 2255 (version "1.9")
720fb41c
SB
2256 (source
2257 (origin
2258 (method url-fetch)
612fddec 2259 (uri (string-append "https://hackage.haskell.org/package/X11/"
720fb41c
SB
2260 "X11-" version ".tar.gz"))
2261 (sha256
d09b2ad4 2262 (base32 "1f8dy6ckkyvpcv7zlniyv01cqjb9lgqscm8pml58cvwc7n38w4qh"))))
720fb41c
SB
2263 (build-system haskell-build-system)
2264 (inputs
2265 `(("libx11" ,libx11)
2266 ("libxrandr" ,libxrandr)
2267 ("libxinerama" ,libxinerama)
2d47cee2
RW
2268 ("libxscrnsaver" ,libxscrnsaver)
2269 ("ghc-data-default" ,ghc-data-default)))
720fb41c
SB
2270 (home-page "https://github.com/haskell-pkg-janitors/X11")
2271 (synopsis "Bindings to the X11 graphics library")
2272 (description
2273 "This package provides Haskell bindings to the X11 graphics library. The
2274bindings are a direct translation of the C bindings.")
3ac73271 2275 (license license:bsd-3)))
720fb41c 2276
c34507d6
SB
2277(define-public ghc-x11-xft
2278 (package
2279 (name "ghc-x11-xft")
2280 (version "0.3.1")
2281 (source
2282 (origin
2283 (method url-fetch)
612fddec 2284 (uri (string-append "https://hackage.haskell.org/package/X11-xft/"
c34507d6
SB
2285 "X11-xft-" version ".tar.gz"))
2286 (sha256
2287 (base32 "1lgqb0s2qfwwgbvwxhjbi23rbwamzdi0l0slfr20c3jpcbp3zfjf"))))
c34507d6 2288 (inputs
2d47cee2
RW
2289 `(("ghc-x11" ,ghc-x11)
2290 ("ghc-utf8-string" ,ghc-utf8-string)
2291 ("libx11" ,libx11)
c34507d6 2292 ("libxft" ,libxft)
6a6db57f 2293 ("xorgproto" ,xorgproto)))
c34507d6
SB
2294 (native-inputs
2295 `(("pkg-config" ,pkg-config)))
2296 (build-system haskell-build-system)
612fddec 2297 (home-page "https://hackage.haskell.org/package/X11-xft")
c34507d6
SB
2298 (synopsis "Bindings to Xft")
2299 (description
2300 "Bindings to the Xft, X Free Type interface library, and some Xrender
2301parts.")
3ac73271 2302 (license license:lgpl2.1)))
c34507d6 2303
318f9d88
PW
2304(define-public ghc-stringbuilder
2305 (package
2306 (name "ghc-stringbuilder")
4112a2e7 2307 (version "0.5.1")
318f9d88
PW
2308 (source
2309 (origin
2310 (method url-fetch)
2311 (uri (string-append
612fddec 2312 "https://hackage.haskell.org/package/stringbuilder/stringbuilder-"
318f9d88
PW
2313 version
2314 ".tar.gz"))
2315 (sha256
2316 (base32
4112a2e7 2317 "1fh3csx1wcssn8xyvl4ip4aprh9l4qyz2kk8mgjvqvc0vb2bsy6q"))))
318f9d88
PW
2318 (build-system haskell-build-system)
2319 (arguments `(#:tests? #f)) ; FIXME: circular dependencies with tests
2320 ; enabled
612fddec 2321 (home-page "https://hackage.haskell.org/package/stringbuilder")
318f9d88
PW
2322 (synopsis "Writer monad for multi-line string literals")
2323 (description "This package provides a writer monad for multi-line string
2324literals.")
3ac73271 2325 (license license:expat)))
318f9d88 2326
3d3613d5
FB
2327(define-public ghc-zlib
2328 (package
2329 (name "ghc-zlib")
d3c7e708 2330 (version "0.6.2")
3d3613d5
FB
2331 (outputs '("out" "doc"))
2332 (source
2333 (origin
2334 (method url-fetch)
2335 (uri (string-append
612fddec 2336 "https://hackage.haskell.org/package/zlib/zlib-"
3d3613d5
FB
2337 version
2338 ".tar.gz"))
2339 (sha256
2340 (base32
d3c7e708 2341 "1vbzf0awb6zb456xf48za1kl22018646cfzq4frvxgb9ay97vk0d"))))
3d3613d5 2342 (build-system haskell-build-system)
e09ef4fc
TS
2343 (arguments
2344 `(#:phases
2345 (modify-phases %standard-phases
2346 (add-before 'configure 'strip-test-framework-constraints
2347 (lambda _
2348 (substitute* "zlib.cabal"
2349 (("tasty >= 0\\.8 && < 0\\.12") "tasty")
2350 (("tasty-hunit >= 0\\.8 && < 0\\.10") "tasty-hunit")
2351 (("tasty-quickcheck == 0\\.8\\.\\*") "tasty-quickcheck")))))))
3d3613d5 2352 (inputs `(("zlib" ,zlib)))
906a396b
AI
2353 (native-inputs
2354 `(("ghc-quickcheck" ,ghc-quickcheck)
2355 ("ghc-tasty" ,ghc-tasty)
2356 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
2357 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
612fddec 2358 (home-page "https://hackage.haskell.org/package/zlib")
3d3613d5
FB
2359 (synopsis
2360 "Compression and decompression in the gzip and zlib formats")
2361 (description
2362 "This package provides a pure interface for compressing and decompressing
36a4366d
EF
2363streams of data represented as lazy @code{ByteString}s. It uses the zlib C
2364library so it has high performance. It supports the @code{zlib}, @code{gzip}
2365and @code{raw} compression formats. It provides a convenient high level API
2366suitable for most tasks and for the few cases where more control is needed it
2367provides access to the full zlib feature set.")
3ac73271 2368 (license license:bsd-3)))
3d3613d5 2369
a39f3936
FB
2370(define-public ghc-stm
2371 (package
2372 (name "ghc-stm")
567bf5b9 2373 (version "2.4.5.0")
a39f3936
FB
2374 (outputs '("out" "doc"))
2375 (source
2376 (origin
2377 (method url-fetch)
2378 (uri (string-append
612fddec 2379 "https://hackage.haskell.org/package/stm/stm-"
a39f3936
FB
2380 version
2381 ".tar.gz"))
2382 (sha256
2383 (base32
567bf5b9 2384 "19sr11a0hqikhvf561b38phz6k3zg9s157a0f5ffvghk7wcdpmri"))))
a39f3936 2385 (build-system haskell-build-system)
612fddec 2386 (home-page "https://hackage.haskell.org/package/stm")
a39f3936
FB
2387 (synopsis "Software Transactional Memory")
2388 (description
567bf5b9
RW
2389 "Software Transactional Memory, or STM, is an abstraction for concurrent
2390communication. The main benefits of STM are composability and modularity.
2391That is, using STM you can write concurrent abstractions that can be easily
2392composed with any other abstraction built using STM, without exposing the
2393details of how your abstraction ensures safety. This is typically not the
2394case with other forms of concurrent communication, such as locks or
2395@code{MVar}s.")
3ac73271 2396 (license license:bsd-3)))
a39f3936 2397
e916e211
FB
2398(define-public ghc-parallel
2399 (package
2400 (name "ghc-parallel")
62f97b12 2401 (version "3.2.2.0")
e916e211
FB
2402 (outputs '("out" "doc"))
2403 (source
2404 (origin
2405 (method url-fetch)
2406 (uri (string-append
612fddec 2407 "https://hackage.haskell.org/package/parallel/parallel-"
e916e211
FB
2408 version
2409 ".tar.gz"))
2410 (sha256
2411 (base32
62f97b12 2412 "1xkfi96w6yfpppd0nw1rnszdxmvifwzm699ilv6332ra3akm610p"))))
e916e211 2413 (build-system haskell-build-system)
612fddec 2414 (home-page "https://hackage.haskell.org/package/parallel")
e916e211
FB
2415 (synopsis "Parallel programming library")
2416 (description
2417 "This package provides a library for parallel programming.")
3ac73271 2418 (license license:bsd-3)))
e916e211 2419
6950a450
TS
2420(define-public ghc-safesemaphore
2421 (package
2422 (name "ghc-safesemaphore")
2423 (version "0.10.1")
2424 (source
2425 (origin
2426 (method url-fetch)
2427 (uri (string-append "https://hackage.haskell.org/package/"
2428 "SafeSemaphore/SafeSemaphore-" version ".tar.gz"))
2429 (sha256
2430 (base32
2431 "0rpg9j6fy70i0b9dkrip9d6wim0nac0snp7qzbhykjkqlcvvgr91"))))
2432 (build-system haskell-build-system)
2433 (inputs
2434 `(("ghc-stm" ,ghc-stm)))
2435 (native-inputs
2436 `(("ghc-hunit" ,ghc-hunit)))
2437 (home-page "https://github.com/ChrisKuklewicz/SafeSemaphore")
2438 (synopsis "Exception safe semaphores")
2439 (description "This library provides exception safe semaphores that can be
2440used in place of @code{QSem}, @code{QSemN}, and @code{SampleVar}, all of which
2441are not exception safe and can be broken by @code{killThread}.")
2442 (license license:bsd-3)))
2443
deb36de0
FB
2444(define-public ghc-text
2445 (package
2446 (name "ghc-text")
44f717ef 2447 (version "1.2.3.0")
deb36de0
FB
2448 (outputs '("out" "doc"))
2449 (source
2450 (origin
2451 (method url-fetch)
2452 (uri (string-append
612fddec 2453 "https://hackage.haskell.org/package/text/text-"
deb36de0
FB
2454 version
2455 ".tar.gz"))
2456 (sha256
2457 (base32
44f717ef 2458 "06iir7q99rnffzxi8gagn8w1k9m49368sbidgz634fv1gxib3q10"))))
deb36de0 2459 (build-system haskell-build-system)
5e3840e2
RW
2460 ;; The test dependencies depend on ghc-text: ghc-test-framework -> ghc-xml -> ghc-text
2461 (arguments `(#:tests? #f))
2462 (inputs
2463 `(("ghc-random" ,ghc-random)))
deb36de0 2464 (home-page "https://github.com/bos/text")
1eefe4a8 2465 (synopsis "Efficient packed Unicode text type library")
deb36de0
FB
2466 (description
2467 "An efficient packed, immutable Unicode text type (both strict and
2468lazy), with a powerful loop fusion optimization framework.
2469
36a4366d 2470The @code{Text} type represents Unicode character strings, in a time and
1eefe4a8 2471space-efficient manner. This package provides text processing
deb36de0
FB
2472capabilities that are optimized for performance critical use, both
2473in terms of large data quantities and high speed.")
3ac73271 2474 (license license:bsd-3)))
deb36de0 2475
f941a52a
RW
2476(define-public ghc-text-binary
2477 (package
2478 (name "ghc-text-binary")
2479 (version "0.2.1.1")
2480 (source
2481 (origin
2482 (method url-fetch)
2483 (uri (string-append "https://hackage.haskell.org/package/"
2484 "text-binary/text-binary-"
2485 version ".tar.gz"))
2486 (sha256
2487 (base32
2488 "18gl10pwg3qwsk0za3c70j4n6a9129wwf1b7d3a461h816yv55xn"))))
2489 (build-system haskell-build-system)
2490 (inputs `(("ghc-text" ,ghc-text)))
2491 (home-page "https://github.com/kawu/text-binary")
2492 (synopsis "Binary instances for text types")
2493 (description
2494 "This package provides a compatibility layer providing @code{Binary}
2495instances for strict and lazy text types for versions older than 1.2.1 of the
2496text package.")
2497 (license license:bsd-2)))
2498
f99a57dc
AV
2499(define-public ghc-strict
2500 (package
2501 (name "ghc-strict")
2502 (version "0.3.2")
2503 (source
2504 (origin
2505 (method url-fetch)
2506 (uri (string-append "https://hackage.haskell.org/package/strict/strict-"
2507 version ".tar.gz"))
2508 (sha256
2509 (base32 "08cjajqz9h47fkq98mlf3rc8n5ghbmnmgn8pfsl3bdldjdkmmlrc"))))
2510 (build-system haskell-build-system)
2511 (home-page "https://hackage.haskell.org/package/strict")
2512 (synopsis "Strict data types and String IO")
2513 (description
2514 "This package provides strict versions of some standard Haskell data
2515types, such as pairs, @code{Maybe} and @code{Either}. It also contains strict
2516IO operations.")
2517 (license license:bsd-3)))
2518
775be802
FB
2519(define-public ghc-hashable
2520 (package
2521 (name "ghc-hashable")
c496fb98 2522 (version "1.2.7.0")
775be802
FB
2523 (outputs '("out" "doc"))
2524 (source
2525 (origin
2526 (method url-fetch)
2527 (uri (string-append
612fddec 2528 "https://hackage.haskell.org/package/hashable/hashable-"
775be802
FB
2529 version
2530 ".tar.gz"))
2531 (sha256
2532 (base32
c496fb98 2533 "1gra8gq3kb7b2sd845h55yxlrfqx3ii004c6vjhga8v0b30fzdgc"))))
775be802 2534 (build-system haskell-build-system)
2d47cee2 2535 (inputs
c165ff9c
RW
2536 `(("ghc-text" ,ghc-text)
2537 ("ghc-random" ,ghc-random)))
2538 (native-inputs
2539 `(("ghc-test-framework" ,ghc-test-framework)
2540 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
2541 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)
2542 ("ghc-hunit" ,ghc-hunit)
2543 ("ghc-quickcheck" ,ghc-quickcheck)))
612fddec 2544 (home-page "https://github.com/tibbe/hashable")
c165ff9c 2545 (synopsis "Class for types that can be converted to a hash value")
775be802 2546 (description
c165ff9c 2547 "This package defines a class, @code{Hashable}, for types that can be
775be802
FB
2548converted to a hash value. This class exists for the benefit of hashing-based
2549data structures. The package provides instances for basic types and a way to
2550combine hash values.")
3ac73271 2551 (license license:bsd-3)))
775be802 2552
bc8bda50
TS
2553(define-public ghc-hashable-bootstrap
2554 (package
2555 (inherit ghc-hashable)
2556 (name "ghc-hashable-bootstrap")
2557 (arguments `(#:tests? #f))
2558 (native-inputs '())
2559 (properties '((hidden? #t)))))
2560
82674ed9
RW
2561(define-public ghc-hashable-time
2562 (package
2563 (name "ghc-hashable-time")
2564 (version "0.2.0.1")
2565 (source
2566 (origin
2567 (method url-fetch)
2568 (uri (string-append
2569 "https://hackage.haskell.org/package/hashable-time/hashable-time-"
2570 version
2571 ".tar.gz"))
2572 (sha256
2573 (base32
2574 "0k932nyd08l3xxbh2g3n76py2f4kd9yw4s5a065vjz0xp6wjnxdm"))))
2575 (build-system haskell-build-system)
75c07ef5
TS
2576 (arguments
2577 `(#:cabal-revision
2578 ("1" "0rv40xkg3gj8jnqsry1gq3f5s5la6d5arg8fzkirnwdpcgha1as6")))
82674ed9
RW
2579 (inputs `(("ghc-hashable" ,ghc-hashable)))
2580 (home-page "http://hackage.haskell.org/package/hashable-time")
2581 (synopsis "Hashable instances for Data.Time")
2582 (description
2583 "This package provides @code{Hashable} instances for types in
2584@code{Data.Time}.")
2585 (license license:bsd-3)))
2586
ca48a345
AV
2587(define-public ghc-data-hash
2588 (package
2589 (name "ghc-data-hash")
2590 (version "0.2.0.1")
2591 (source
2592 (origin
2593 (method url-fetch)
2594 (uri (string-append "https://hackage.haskell.org/package/data-hash"
2595 "/data-hash-" version ".tar.gz"))
2596 (sha256
2597 (base32 "1ghbqvc48gf9p8wiy71hdpaj7by3b9cw6wgwi3qqz8iw054xs5wi"))))
2598 (build-system haskell-build-system)
2599 (inputs
2600 `(("ghc-quickcheck" ,ghc-quickcheck)
2601 ("ghc-test-framework" ,ghc-test-framework)
2602 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
2603 (home-page "https://hackage.haskell.org/package/data-hash")
2604 (synopsis "Combinators for building fast hashing functions")
2605 (description
2606 "This package provides combinators for building fast hashing functions.
2607It includes hashing functions for all basic Haskell98 types.")
2608 (license license:bsd-3)))
2609
a623fd7f
AV
2610(define-public ghc-murmur-hash
2611 (package
2612 (name "ghc-murmur-hash")
2613 (version "0.1.0.9")
2614 (source
2615 (origin
2616 (method url-fetch)
2617 (uri (string-append "https://hackage.haskell.org/package/murmur-hash"
2618 "/murmur-hash-" version ".tar.gz"))
2619 (sha256
2620 (base32 "1bb58kfnzvx3mpc0rc0dhqc1fk36nm8prd6gvf20gk6lxaadpfc9"))))
2621 (build-system haskell-build-system)
2622 (home-page "https://github.com/nominolo/murmur-hash")
2623 (synopsis "MurmurHash2 implementation for Haskell")
2624 (description
2625 "This package provides an implementation of MurmurHash2, a good, fast,
2626general-purpose, non-cryptographic hashing function. See
2627@url{https://sites.google.com/site/murmurhash/} for details. This
2628implementation is pure Haskell, so it might be a bit slower than a C FFI
2629binding.")
2630 (license license:bsd-3)))
2631
df596b94
FB
2632(define-public ghc-random
2633 (package
2634 (name "ghc-random")
2635 (version "1.1")
2636 (outputs '("out" "doc"))
2637 (source
2638 (origin
2639 (method url-fetch)
2640 (uri (string-append
612fddec 2641 "https://hackage.haskell.org/package/random/random-"
df596b94
FB
2642 version
2643 ".tar.gz"))
2644 (sha256
2645 (base32 "0nis3lbkp8vfx8pkr6v7b7kr5m334bzb0fk9vxqklnp2aw8a865p"))))
2646 (build-system haskell-build-system)
612fddec 2647 (home-page "https://hackage.haskell.org/package/random")
df596b94
FB
2648 (synopsis "Random number library")
2649 (description "This package provides a basic random number generation
2650library, including the ability to split random number generators.")
3ac73271 2651 (license license:bsd-3)))
4af803a7
FB
2652
2653(define-public ghc-primitive
2654 (package
2655 (name "ghc-primitive")
49e5432b 2656 (version "0.6.3.0")
4af803a7
FB
2657 (outputs '("out" "doc"))
2658 (source
2659 (origin
2660 (method url-fetch)
2661 (uri (string-append
612fddec 2662 "https://hackage.haskell.org/package/primitive/primitive-"
4af803a7
FB
2663 version
2664 ".tar.gz"))
2665 (sha256
2666 (base32
49e5432b 2667 "0mcmbnj08wd6zfwn7xk6zf5hy5zwbla5v78pw0dpymqg9s0gzpnd"))))
4af803a7
FB
2668 (build-system haskell-build-system)
2669 (home-page
2670 "https://github.com/haskell/primitive")
2671 (synopsis "Primitive memory-related operations")
2672 (description
2673 "This package provides various primitive memory-related operations.")
3ac73271 2674 (license license:bsd-3)))
4af803a7 2675
c272160a
FB
2676(define-public ghc-tf-random
2677 (package
2678 (name "ghc-tf-random")
2679 (version "0.5")
2680 (outputs '("out" "doc"))
2681 (source
2682 (origin
2683 (method url-fetch)
2684 (uri (string-append
612fddec 2685 "https://hackage.haskell.org/package/tf-random/tf-random-"
c272160a
FB
2686 version
2687 ".tar.gz"))
2688 (sha256
2689 (base32 "0445r2nns6009fmq0xbfpyv7jpzwv0snccjdg7hwj4xk4z0cwc1f"))))
2690 (build-system haskell-build-system)
2d47cee2 2691 (inputs
c272160a
FB
2692 `(("ghc-primitive" ,ghc-primitive)
2693 ("ghc-random" ,ghc-random)))
612fddec 2694 (home-page "https://hackage.haskell.org/package/tf-random")
c272160a
FB
2695 (synopsis "High-quality splittable pseudorandom number generator")
2696 (description "This package contains an implementation of a high-quality
2697splittable pseudorandom number generator. The generator is based on a
2698cryptographic hash function built on top of the ThreeFish block cipher. See
2699the paper \"Splittable Pseudorandom Number Generators Using Cryptographic
2700Hashing\" by Claessen, Pałka for details and the rationale of the design.")
3ac73271 2701 (license license:bsd-3)))
c272160a 2702
c27f3ace
PW
2703(define-public ghc-transformers-base
2704 (package
2705 (name "ghc-transformers-base")
f46cbe1e 2706 (version "0.4.5.2")
c27f3ace
PW
2707 (source
2708 (origin
2709 (method url-fetch)
2710 (uri (string-append
612fddec 2711 "https://hackage.haskell.org/package/transformers-base/transformers-base-"
c27f3ace
PW
2712 version
2713 ".tar.gz"))
2714 (sha256
2715 (base32
f46cbe1e 2716 "1s256bi0yh0x2hp2gwd30f3mg1cv53zz397dv1yhfsnfzmihrj6h"))))
c27f3ace 2717 (build-system haskell-build-system)
c27f3ace 2718 (inputs
2d47cee2
RW
2719 `(("ghc-stm" ,ghc-stm)
2720 ("ghc-transformers-compat" ,ghc-transformers-compat)))
c27f3ace 2721 (home-page
612fddec 2722 "https://hackage.haskell.org/package/transformers-compat")
c27f3ace
PW
2723 (synopsis
2724 "Backported transformer library")
2725 (description
2726 "Backported versions of types that were added to transformers in
2727transformers 0.3 and 0.4 for users who need strict transformers 0.2 or 0.3
2728compatibility to run on old versions of the platform.")
3ac73271 2729 (license license:bsd-3)))
c27f3ace 2730
379a5ad5
PW
2731(define-public ghc-transformers-compat
2732 (package
2733 (name "ghc-transformers-compat")
d7f14885 2734 (version "0.6.2")
379a5ad5
PW
2735 (source
2736 (origin
2737 (method url-fetch)
2738 (uri (string-append
612fddec 2739 "https://hackage.haskell.org/package/transformers-compat"
379a5ad5
PW
2740 "/transformers-compat-" version ".tar.gz"))
2741 (sha256
2742 (base32
d7f14885 2743 "1gp4a8kvniwgm8947ghb4iwv4b7wd6ry4kvv4nfnym4agf5j41nw"))))
379a5ad5 2744 (build-system haskell-build-system)
612fddec 2745 (home-page "https://github.com/ekmett/transformers-compat/")
379a5ad5
PW
2746 (synopsis "Small compatibility shim between transformers 0.3 and 0.4")
2747 (description "This package includes backported versions of types that were
2748added to transformers in transformers 0.3 and 0.4 for users who need strict
2749transformers 0.2 or 0.3 compatibility to run on old versions of the platform,
2750but also need those types.")
3ac73271 2751 (license license:bsd-3)))
379a5ad5 2752
5ef40cb2
PW
2753(define-public ghc-unix-time
2754 (package
2755 (name "ghc-unix-time")
0588525b 2756 (version "0.3.8")
5ef40cb2
PW
2757 (source
2758 (origin
2759 (method url-fetch)
2760 (uri (string-append
612fddec 2761 "https://hackage.haskell.org/package/unix-time/unix-time-"
5ef40cb2
PW
2762 version
2763 ".tar.gz"))
2764 (sha256
2765 (base32
0588525b 2766 "051slgpid5cxiaw203ky0ql3823h28fcjs08axkzd4265wrvv8fw"))))
5ef40cb2
PW
2767 (build-system haskell-build-system)
2768 (arguments
fd59d2ee
PW
2769 `(#:tests? #f)) ; FIXME: Test fails with "System.Time not found". This
2770 ; is weird, that should be provided by GHC 7.10.2.
2d47cee2 2771 (inputs
5ef40cb2
PW
2772 `(("ghc-old-time" ,ghc-old-time)
2773 ("ghc-old-locale" ,ghc-old-locale)))
612fddec 2774 (home-page "https://hackage.haskell.org/package/unix-time")
5ef40cb2
PW
2775 (synopsis "Unix time parser/formatter and utilities")
2776 (description "This library provides fast parsing and formatting utilities
2777for Unix time in Haskell.")
3ac73271 2778 (license license:bsd-3)))
5ef40cb2 2779
801cc88d
PW
2780(define-public ghc-unix-compat
2781 (package
2782 (name "ghc-unix-compat")
32a9a380 2783 (version "0.5.1")
801cc88d
PW
2784 (source
2785 (origin
2786 (method url-fetch)
2787 (uri (string-append
612fddec 2788 "https://hackage.haskell.org/package/unix-compat/unix-compat-"
801cc88d
PW
2789 version
2790 ".tar.gz"))
2791 (sha256
2792 (base32
32a9a380 2793 "0llwl7rp63fy2ychwdclz1afj45pbin5pfl01dvn6rwhvmwhr7d3"))))
801cc88d
PW
2794 (build-system haskell-build-system)
2795 (home-page
612fddec 2796 "https://github.com/jystic/unix-compat")
801cc88d
PW
2797 (synopsis "Portable POSIX-compatibility layer")
2798 (description
2799 "This package provides portable implementations of parts of the unix
2800package. This package re-exports the unix package when available. When it
2801isn't available, portable implementations are used.")
3ac73271 2802 (license license:bsd-3)))
801cc88d 2803
b6bfa2ca
LC
2804(define-public ghc-indents
2805 (package
2806 (name "ghc-indents")
ddfb799e 2807 (version "0.5.0.0")
b6bfa2ca
LC
2808 (source (origin
2809 (method url-fetch)
2810 (uri (string-append
612fddec 2811 "https://hackage.haskell.org/package/indents/indents-"
b6bfa2ca
LC
2812 version ".tar.gz"))
2813 (sha256
2814 (base32
ddfb799e 2815 "1ly3v41jacc6lrsvg4j3m5a6zs90gr8dyif5m6bf34hj1k5cgg0n"))))
b6bfa2ca 2816 (build-system haskell-build-system)
c95908bb
RW
2817 ;; This package needs an older version of tasty.
2818 (arguments '(#:tests? #f))
b6bfa2ca
LC
2819 (inputs
2820 `(("ghc-parsec" ,ghc-parsec)
f54f0475 2821 ("ghc-concatenative" ,ghc-concatenative)))
c95908bb
RW
2822 (native-inputs
2823 `(("ghc-tasty" ,ghc-tasty)
2824 ("ghc-tasty-hunit" ,ghc-tasty-hunit)))
b6bfa2ca
LC
2825 (home-page "http://patch-tag.com/r/salazar/indents")
2826 (synopsis "Indentation sensitive parser-combinators for parsec")
2827 (description
2828 "This library provides functions for use in parsing indentation sensitive
2829contexts. It parses blocks of lines all indented to the same level as well as
2830lines continued at an indented level below.")
2831 (license license:bsd-3)))
2832
685502dc
PW
2833(define-public ghc-iproute
2834 (package
2835 (name "ghc-iproute")
b9a63986 2836 (version "1.7.5")
685502dc
PW
2837 (source
2838 (origin
2839 (method url-fetch)
2840 (uri (string-append
612fddec 2841 "https://hackage.haskell.org/package/iproute/iproute-"
685502dc
PW
2842 version
2843 ".tar.gz"))
2844 (sha256
2845 (base32
b9a63986 2846 "1vw1nm3s8vz1hqnjnqd3wh5rr4q3m2r4izn5ynhf93h9185qwqzd"))))
685502dc
PW
2847 (build-system haskell-build-system)
2848 (arguments `(#:tests? #f)) ; FIXME: Tests cannot find System.ByteOrder,
2849 ; exported by ghc-byteorder. Doctest issue.
685502dc 2850 (inputs
2d47cee2
RW
2851 `(("ghc-appar" ,ghc-appar)
2852 ("ghc-byteorder" ,ghc-byteorder)
2853 ("ghc-network" ,ghc-network)
685502dc 2854 ("ghc-safe" ,ghc-safe)))
e427a0e4 2855 (home-page "https://www.mew.org/~kazu/proj/iproute/")
685502dc
PW
2856 (synopsis "IP routing table")
2857 (description "IP Routing Table is a tree of IP ranges to search one of
2858them on the longest match base. It is a kind of TRIE with one way branching
2859removed. Both IPv4 and IPv6 are supported.")
3ac73271 2860 (license license:bsd-3)))
685502dc 2861
a7101996
TGR
2862(define-public ghc-iwlib
2863 (package
2864 (name "ghc-iwlib")
2865 (version "0.1.0")
2866 (source
2867 (origin
2868 (method url-fetch)
2869 (uri (string-append "https://hackage.haskell.org/package/iwlib/iwlib-"
2870 version ".tar.gz"))
2871 (sha256
2872 (base32 "0khmfwql4vwj55idsxmhjhrbqzfir3g9wm5lmpvnf77mm95cfpdz"))))
2873 (build-system haskell-build-system)
2874 (inputs
2875 `(("wireless-tools" ,wireless-tools)))
2876 (home-page "https://github.com/jaor/iwlib")
2877 (synopsis "Haskell binding to the iw wireless networking library")
2878 (description
2879 "IWlib is a thin Haskell binding to the iw C library. It provides
2880information about the current wireless network connections, and adapters on
2881supported systems.")
2882 (license license:bsd-3)))
2883
9d5f0399
PW
2884(define-public ghc-regex-base
2885 (package
2886 (name "ghc-regex-base")
2887 (version "0.93.2")
2888 (source
2889 (origin
2890 (method url-fetch)
2891 (uri (string-append
612fddec 2892 "https://hackage.haskell.org/package/regex-base/regex-base-"
9d5f0399
PW
2893 version
2894 ".tar.gz"))
2895 (sha256
2896 (base32
2897 "0y1j4h2pg12c853nzmczs263di7xkkmlnsq5dlp5wgbgl49mgp10"))))
2898 (build-system haskell-build-system)
9d5f0399 2899 (home-page
3b3b60d0 2900 "https://sourceforge.net/projects/lazy-regex")
9d5f0399
PW
2901 (synopsis "Replaces/Enhances Text.Regex")
2902 (description "@code{Text.Regex.Base} provides the interface API for
2903regex-posix, regex-pcre, regex-parsec, regex-tdfa, regex-dfa.")
3ac73271 2904 (license license:bsd-3)))
9d5f0399 2905
e422279b
PW
2906(define-public ghc-regex-posix
2907 (package
2908 (name "ghc-regex-posix")
2909 (version "0.95.2")
2910 (source
2911 (origin
2912 (method url-fetch)
2913 (uri (string-append
612fddec 2914 "https://hackage.haskell.org/package/regex-posix/regex-posix-"
e422279b
PW
2915 version
2916 ".tar.gz"))
2917 (sha256
2918 (base32
2919 "0gkhzhj8nvfn1ija31c7xnl6p0gadwii9ihyp219ck2arlhrj0an"))))
2920 (build-system haskell-build-system)
2d47cee2 2921 (inputs
0eeaa169 2922 `(("ghc-regex-base" ,ghc-regex-base)))
3b3b60d0 2923 (home-page "https://sourceforge.net/projects/lazy-regex")
e422279b
PW
2924 (synopsis "POSIX regular expressions for Haskell")
2925 (description "This library provides the POSIX regex backend used by the
2926Haskell library @code{regex-base}.")
3ac73271 2927 (license license:bsd-3)))
e422279b 2928
25d51164
PW
2929(define-public ghc-regex-compat
2930 (package
2931 (name "ghc-regex-compat")
2932 (version "0.95.1")
2933 (source
2934 (origin
2935 (method url-fetch)
2936 (uri (string-append
612fddec 2937 "https://hackage.haskell.org/package/regex-compat/regex-compat-"
25d51164
PW
2938 version
2939 ".tar.gz"))
2940 (sha256
2941 (base32
2942 "0fwmima3f04p9y4h3c23493n1xj629ia2dxaisqm6rynljjv2z6m"))))
2943 (build-system haskell-build-system)
2944 (inputs
2945 `(("ghc-regex-base" ,ghc-regex-base)
2946 ("ghc-regex-posix" ,ghc-regex-posix)))
3b3b60d0 2947 (home-page "https://sourceforge.net/projects/lazy-regex")
25d51164
PW
2948 (synopsis "Replaces/Enhances Text.Regex")
2949 (description "This library provides one module layer over
2950@code{regex-posix} to replace @code{Text.Regex}.")
3ac73271 2951 (license license:bsd-3)))
25d51164 2952
34128d2b
PW
2953(define-public ghc-regex-tdfa-rc
2954 (package
2955 (name "ghc-regex-tdfa-rc")
2956 (version "1.1.8.3")
2957 (source
2958 (origin
2959 (method url-fetch)
2960 (uri (string-append
612fddec 2961 "https://hackage.haskell.org/package/regex-tdfa-rc/regex-tdfa-rc-"
34128d2b
PW
2962 version
2963 ".tar.gz"))
2964 (sha256
2965 (base32
2966 "1vi11i23gkkjg6193ak90g55akj69bhahy542frkwb68haky4pp3"))))
2967 (build-system haskell-build-system)
34128d2b 2968 (inputs
2d47cee2 2969 `(("ghc-regex-base" ,ghc-regex-base)
f54f0475 2970 ("ghc-parsec" ,ghc-parsec)))
34128d2b 2971 (home-page
612fddec 2972 "https://hackage.haskell.org/package/regex-tdfa")
34128d2b
PW
2973 (synopsis "Tagged DFA regex engine for Haskell")
2974 (description "A new all-Haskell \"tagged\" DFA regex engine, inspired by
2975@code{libtre} (fork by Roman Cheplyaka).")
3ac73271 2976 (license license:bsd-3)))
34128d2b 2977
e73ed2a1
DM
2978(define-public ghc-regex-tdfa-text
2979 (package
2980 (name "ghc-regex-tdfa-text")
2981 (version "1.0.0.3")
2982 (source
2983 (origin
2984 (method url-fetch)
2985 (uri (string-append
2986 "https://hackage.haskell.org/package/regex-tdfa-text/"
2987 "regex-tdfa-text-" version ".tar.gz"))
2988 (sha256
2989 (base32
2990 "0090g6lgbdm9lywpqm2d3724nnnh24nx3vnlqr96qc2w486pmmrq"))))
2991 (build-system haskell-build-system)
2992 (inputs
2993 `(("ghc-text" ,ghc-text)
2994 ("ghc-regex-base" ,ghc-regex-base)
2995 ("ghc-regex-tdfa" ,ghc-regex-tdfa)))
2996 (home-page
2997 "http://hackage.haskell.org/package/regex-tdfa-text")
2998 (synopsis "Text interface for regex-tdfa")
2999 (description
3000 "This provides an extra text interface for regex-tdfa.")
3001 (license license:bsd-3)))
3002
7e2c8cb5
RW
3003(define-public ghc-regex
3004 (package
3005 (name "ghc-regex")
3006 (version "1.0.1.3")
3007 (source
3008 (origin
3009 (method url-fetch)
3010 (uri (string-append "https://hackage.haskell.org/package/regex/"
3011 "regex-" version ".tar.gz"))
3012 (sha256
3013 (base32
3014 "1sjkpkgv4phy5b5v2lr89x4vx4dh44pj0sbvlsp6n86w9v6v4jwb"))))
3015 (build-system haskell-build-system)
279c97db
RW
3016 (arguments
3017 `(#:phases
3018 (modify-phases %standard-phases
3019 (add-after 'unpack 'relax-dependencies
3020 (lambda _
3021 (substitute* "regex.cabal"
3022 (("base-compat.*>=.*0.6.*")
3023 "base-compat >= 0.6\n")
3024 (("template-haskell.*>=.*2.7.*")
3025 "template-haskell >= 2.7\n"))
3026 #t)))))
7e2c8cb5
RW
3027 (inputs
3028 `(("ghc-base-compat" ,ghc-base-compat)
3029 ("ghc-hashable" ,ghc-hashable)
3030 ("ghc-regex-base" ,ghc-regex-base)
3031 ("ghc-regex-pcre-builtin" ,ghc-regex-pcre-builtin)
3032 ("ghc-regex-tdfa" ,ghc-regex-tdfa)
3033 ("ghc-regex-tdfa-text" ,ghc-regex-tdfa-text)
3034 ("ghc-text" ,ghc-text)
3035 ("ghc-time-locale-compat" ,ghc-time-locale-compat)
3036 ("ghc-unordered-containers" ,ghc-unordered-containers)
3037 ("ghc-utf8-string" ,ghc-utf8-string)))
3038 (home-page "http://regex.uk")
3039 (synopsis "Toolkit for regex-base")
3040 (description
3041 "This package provides a regular expression toolkit for @code{regex-base}
3042with compile-time checking of regular expression syntax, data types for
3043matches and captures, a text replacement toolkit, portable options, high-level
3044AWK-like tools for building text processing apps, regular expression macros
3045with parsers and test bench, comprehensive documentation, tutorials and
3046copious examples.")
3047 (license license:bsd-3)))
3048
e372520e
PW
3049(define-public ghc-parsers
3050 (package
3051 (name "ghc-parsers")
774f3984 3052 (version "0.12.9")
e372520e
PW
3053 (source
3054 (origin
3055 (method url-fetch)
3056 (uri (string-append
612fddec 3057 "https://hackage.haskell.org/package/parsers/parsers-"
e372520e
PW
3058 version
3059 ".tar.gz"))
3060 (sha256
3061 (base32
774f3984 3062 "1r05sc1mcglk8w596kq9a1brfn9c2vll8lq16j07ln0vsz4jzrc1"))))
e372520e
PW
3063 (build-system haskell-build-system)
3064 (arguments `(#:tests? #f)) ; FIXME: Test fails with "cannot satisfy
3065 ; -package attoparsec-0.13.0.1"
2d47cee2 3066 (inputs
e372520e
PW
3067 `(("ghc-base-orphans" ,ghc-base-orphans)
3068 ("ghc-attoparsec" ,ghc-attoparsec)
3069 ("ghc-parsec" ,ghc-parsec)
3070 ("ghc-scientific" ,ghc-scientific)
2d47cee2
RW
3071 ("ghc-charset" ,ghc-charset)
3072 ("ghc-text" ,ghc-text)
e372520e 3073 ("ghc-unordered-containers" ,ghc-unordered-containers)))
612fddec 3074 (home-page "https://github.com/ekmett/parsers/")
e372520e
PW
3075 (synopsis "Parsing combinators")
3076 (description "This library provides convenient combinators for working
3077with and building parsing combinator libraries. Given a few simple instances,
3078you get access to a large number of canned definitions. Instances exist for
3079the parsers provided by @code{parsec}, @code{attoparsec} and @code{base}'s
3080@code{Text.Read}.")
3ac73271 3081 (license license:bsd-3)))
e372520e 3082
93248cfd
PW
3083(define-public ghc-trifecta
3084 (package
3085 (name "ghc-trifecta")
dc676afb 3086 (version "2")
3ea25176
DC
3087 (source (origin
3088 (method url-fetch)
3089 (uri (string-append
3090 "https://hackage.haskell.org/package/trifecta/"
3091 "trifecta-" version ".tar.gz"))
3092 (sha256
3093 (base32
dc676afb 3094 "0hznd8i65s81xy13i2qc7cvipw3lfb2yhkv53apbdsh6sbljz5sk"))))
93248cfd 3095 (build-system haskell-build-system)
2d47cee2 3096 (inputs
dc676afb 3097 `(("ghc-reducers" ,ghc-reducers)
2d47cee2
RW
3098 ("ghc-semigroups" ,ghc-semigroups)
3099 ("ghc-ansi-wl-pprint" ,ghc-ansi-wl-pprint)
93248cfd
PW
3100 ("ghc-ansi-terminal" ,ghc-ansi-terminal)
3101 ("ghc-blaze-builder" ,ghc-blaze-builder)
3102 ("ghc-blaze-html" ,ghc-blaze-html)
3103 ("ghc-blaze-markup" ,ghc-blaze-markup)
3ea25176
DC
3104 ("ghc-charset" ,ghc-charset)
3105 ("ghc-comonad" ,ghc-comonad)
93248cfd
PW
3106 ("ghc-fingertree" ,ghc-fingertree)
3107 ("ghc-hashable" ,ghc-hashable)
3ea25176 3108 ("ghc-lens" ,ghc-lens)
93248cfd 3109 ("ghc-parsers" ,ghc-parsers)
3ea25176 3110 ("ghc-profunctors" ,ghc-profunctors)
93248cfd
PW
3111 ("ghc-unordered-containers" ,ghc-unordered-containers)
3112 ("ghc-utf8-string" ,ghc-utf8-string)))
183d1b1a 3113 (native-inputs
dc676afb
TS
3114 `(("cabal-doctest" ,cabal-doctest)
3115 ("ghc-doctest" ,ghc-doctest)
3116 ("ghc-quickcheck" ,ghc-quickcheck)))
612fddec 3117 (home-page "https://github.com/ekmett/trifecta/")
93248cfd
PW
3118 (synopsis "Parser combinator library with convenient diagnostics")
3119 (description "Trifecta is a modern parser combinator library for Haskell,
3120with slicing and Clang-style colored diagnostics.")
3ac73271 3121 (license license:bsd-3)))
93248cfd 3122
5e51bcf7
RW
3123(define-public ghc-time-locale-compat
3124 (package
3125 (name "ghc-time-locale-compat")
9b6d49e8 3126 (version "0.1.1.5")
5e51bcf7
RW
3127 (source
3128 (origin
3129 (method url-fetch)
3130 (uri (string-append "https://hackage.haskell.org/package/"
3131 "time-locale-compat/time-locale-compat-"
3132 version ".tar.gz"))
3133 (sha256
3134 (base32
9b6d49e8 3135 "0b2hmj8wwrfkndwzgm11qr496ca2ahwdxcj3m0ii91bxvrk1bzq7"))))
5e51bcf7
RW
3136 (build-system haskell-build-system)
3137 (inputs `(("ghc-old-locale" ,ghc-old-locale)))
3138 (home-page "https://github.com/khibino/haskell-time-locale-compat")
3139 (synopsis "Compatibility of TimeLocale between old-locale and time-1.5")
3140 (description "This package contains a wrapped name module for
3141@code{TimeLocale}.")
3142 (license license:bsd-3)))
3143
bc74e0e1
PW
3144(define-public ghc-attoparsec
3145 (package
3146 (name "ghc-attoparsec")
1b1a1067 3147 (version "0.13.2.2")
bc74e0e1
PW
3148 (source
3149 (origin
3150 (method url-fetch)
3151 (uri (string-append
612fddec 3152 "https://hackage.haskell.org/package/attoparsec/attoparsec-"
bc74e0e1
PW
3153 version
3154 ".tar.gz"))
3155 (sha256
3156 (base32
1b1a1067 3157 "0j6qcwd146yzlkc9mcvzvnixsyl65n2a68l28322q5v9p4g4g4yx"))))
bc74e0e1 3158 (build-system haskell-build-system)
0f9e74e9
TS
3159 (arguments
3160 `(#:phases
3161 (modify-phases %standard-phases
3162 (add-after 'unpack 'patch-for-newer-quickcheck
3163 (lambda _
3164 (substitute* "attoparsec.cabal"
3165 (("QuickCheck >= 2\\.7 && < 2\\.10")
3166 "QuickCheck >= 2.7 && < 2.12"))
3167 ;; This test fails because of the newer QuickCheck:
3168 ;; <https://github.com/bos/attoparsec/issues/134>.
3169 (substitute* "tests/QC/ByteString.hs"
3170 ((", testProperty \"satisfyWith\" satisfyWith")
3171 "")))))))
bc74e0e1 3172 (inputs
f9f4578b 3173 `(("ghc-scientific" ,ghc-scientific)
2d47cee2
RW
3174 ("ghc-text" ,ghc-text)))
3175 (native-inputs
1b1a1067
RW
3176 `(("ghc-tasty" ,ghc-tasty)
3177 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
3178 ("ghc-quickcheck" ,ghc-quickcheck)
19206f5e 3179 ("ghc-quickcheck-unicode" ,ghc-quickcheck-unicode)
bc74e0e1
PW
3180 ("ghc-vector" ,ghc-vector)))
3181 (home-page "https://github.com/bos/attoparsec")
3182 (synopsis "Fast combinator parsing for bytestrings and text")
3183 (description "This library provides a fast parser combinator library,
3184aimed particularly at dealing efficiently with network protocols and
3185complicated text/binary file formats.")
3ac73271 3186 (license license:bsd-3)))
bc74e0e1 3187
9d1944a4
TS
3188(define-public ghc-attoparsec-bootstrap
3189 (package
3190 (inherit ghc-attoparsec)
3191 (name "ghc-attoparsec-bootstrap")
3192 (arguments `(#:tests? #f))
3193 (inputs
3194 `(("ghc-scientific" ,ghc-scientific-bootstrap)
3195 ("ghc-text" ,ghc-text)))
3196 (native-inputs '())
3197 (properties '(hidden? #t))))
3198
ca41c155
PW
3199(define-public ghc-zip-archive
3200 (package
3201 (name "ghc-zip-archive")
74f490ec 3202 (version "0.3.3")
ca41c155
PW
3203 (source
3204 (origin
3205 (method url-fetch)
3206 (uri (string-append
612fddec 3207 "https://hackage.haskell.org/package/zip-archive/zip-archive-"
ca41c155
PW
3208 version
3209 ".tar.gz"))
3210 (sha256
3211 (base32
74f490ec 3212 "0kf8xyac168bng8a0za2jwrbss7a4ralvci9g54hnvl0gkkxx2lq"))))
ca41c155 3213 (build-system haskell-build-system)
ca41c155 3214 (inputs
74f490ec 3215 `(("ghc-digest" ,ghc-digest)
2025964b 3216 ("ghc-temporary" ,ghc-temporary)
ca41c155
PW
3217 ("ghc-text" ,ghc-text)
3218 ("ghc-zlib" ,ghc-zlib)))
2d47cee2 3219 (native-inputs
74f490ec
TS
3220 `(("ghc-hunit" ,ghc-hunit)
3221 ("unzip" ,unzip)))
ca41c155
PW
3222 (home-page "https://hackage.haskell.org/package/zip-archive")
3223 (synopsis "Zip archive library for Haskell")
3224 (description "The zip-archive library provides functions for creating,
3225modifying, and extracting files from zip archives in Haskell.")
3ac73271 3226 (license license:bsd-3)))
ca41c155 3227
fa4f5024
PW
3228(define-public ghc-distributive
3229 (package
3230 (name "ghc-distributive")
c2d30e31 3231 (version "0.5.3")
fa4f5024
PW
3232 (source
3233 (origin
3234 (method url-fetch)
3235 (uri (string-append
612fddec 3236 "https://hackage.haskell.org/package/distributive/distributive-"
fa4f5024
PW
3237 version
3238 ".tar.gz"))
3239 (sha256
3240 (base32
c2d30e31 3241 "0y566r97sfyvhsmd4yxiz4ns2mqgwf5bdbp56wgxl6wlkidq0wwi"))))
fa4f5024 3242 (build-system haskell-build-system)
68dc0c29
TS
3243 (arguments
3244 `(#:cabal-revision
3245 ("6" "06bd38rf31yrvvy989r44pm0id3dsxwcp6nxg7wk6ccj3n2b8rzk")))
2d47cee2 3246 (inputs
fa4f5024 3247 `(("ghc-tagged" ,ghc-tagged)
c2d30e31
RW
3248 ("ghc-base-orphans" ,ghc-base-orphans)
3249 ("ghc-transformers-compat" ,ghc-transformers-compat)
3250 ("ghc-semigroups" ,ghc-semigroups)
3251 ("ghc-generic-deriving" ,ghc-generic-deriving)))
3252 (native-inputs
3253 `(("cabal-doctest" ,cabal-doctest)
68dc0c29 3254 ("ghc-doctest" ,ghc-doctest)
c2d30e31
RW
3255 ("ghc-hspec" ,ghc-hspec)
3256 ("hspec-discover" ,hspec-discover)))
612fddec 3257 (home-page "https://github.com/ekmett/distributive/")
fa4f5024
PW
3258 (synopsis "Distributive functors for Haskell")
3259 (description "This package provides distributive functors for Haskell.
3260Dual to @code{Traversable}.")
3ac73271 3261 (license license:bsd-3)))
fa4f5024 3262
10e61452
PW
3263(define-public ghc-cereal
3264 (package
3265 (name "ghc-cereal")
91ffeed7 3266 (version "0.5.7.0")
10e61452
PW
3267 (source
3268 (origin
3269 (method url-fetch)
3270 (uri (string-append
612fddec 3271 "https://hackage.haskell.org/package/cereal/cereal-"
10e61452
PW
3272 version
3273 ".tar.gz"))
3274 (sha256
3275 (base32
91ffeed7 3276 "1j7imh2mzqcljld7sx0av69699955rpy3hzivi5723i6a9nszgbs"))))
10e61452 3277 (build-system haskell-build-system)
3295a6da
RW
3278 (native-inputs
3279 `(("ghc-quickcheck" ,ghc-quickcheck)
3280 ("ghc-fail" ,ghc-fail)
3281 ("ghc-test-framework" ,ghc-test-framework)
3282 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
612fddec 3283 (home-page "https://hackage.haskell.org/package/cereal")
10e61452
PW
3284 (synopsis "Binary serialization library")
3285 (description "This package provides a binary serialization library,
3286similar to @code{binary}, that introduces an @code{isolate} primitive for
3287parser isolation, and labeled blocks for better error messages.")
3ac73271 3288 (license license:bsd-3)))
10e61452 3289
40b56b52
PW
3290(define-public ghc-comonad
3291 (package
3292 (name "ghc-comonad")
c2828c81 3293 (version "5.0.4")
40b56b52
PW
3294 (source
3295 (origin
3296 (method url-fetch)
3297 (uri (string-append
612fddec 3298 "https://hackage.haskell.org/package/comonad/comonad-"
40b56b52
PW
3299 version
3300 ".tar.gz"))
3301 (sha256
3302 (base32
c2828c81 3303 "09g870c4flp4k3fgbibsd0mmfjani1qcpbcl685v8x89kxzrva3q"))))
40b56b52 3304 (build-system haskell-build-system)
bdd4aa16 3305 (native-inputs
c2828c81
TS
3306 `(("cabal-doctest" ,cabal-doctest)
3307 ("ghc-doctest" ,ghc-doctest)))
40b56b52 3308 (inputs
7e95d0fd
TGR
3309 `(("ghc-contravariant" ,ghc-contravariant)
3310 ("ghc-distributive" ,ghc-distributive)
2d47cee2 3311 ("ghc-semigroups" ,ghc-semigroups)
40b56b52 3312 ("ghc-tagged" ,ghc-tagged)
7e95d0fd 3313 ("ghc-transformers-compat" ,ghc-transformers-compat)))
612fddec 3314 (home-page "https://github.com/ekmett/comonad/")
40b56b52
PW
3315 (synopsis "Comonads for Haskell")
3316 (description "This library provides @code{Comonad}s for Haskell.")
3ac73271 3317 (license license:bsd-3)))
40b56b52 3318
ce78a0f5
PW
3319(define-public hscolour
3320 (package
3321 (name "hscolour")
8642b86a 3322 (version "1.24.4")
ce78a0f5
PW
3323 (source
3324 (origin
3325 (method url-fetch)
3326 (uri (string-append
612fddec 3327 "https://hackage.haskell.org/package/hscolour/hscolour-"
ce78a0f5
PW
3328 version
3329 ".tar.gz"))
3330 (sha256
3331 (base32
8642b86a 3332 "079jwph4bwllfp03yfr26s5zc6m6kw3nhb1cggrifh99haq34cr4"))))
ce78a0f5
PW
3333 (build-system haskell-build-system)
3334 (home-page "https://hackage.haskell.org/package/hscolour")
3335 (synopsis "Script to colourise Haskell code")
3336 (description "HSColour is a small Haskell script to colourise Haskell
3337code. It currently has six output formats: ANSI terminal codes (optionally
3338XTerm-256colour codes), HTML 3.2 with font tags, HTML 4.01 with CSS, HTML 4.01
3339with CSS and mouseover annotations, XHTML 1.0 with inline CSS styling, LaTeX,
3340and mIRC chat codes.")
3ac73271 3341 (license license:bsd-3)))
ce78a0f5 3342
47038762
PW
3343(define-public ghc-polyparse
3344 (package
3345 (name "ghc-polyparse")
7fb6eb17 3346 (version "1.12")
47038762
PW
3347 (source
3348 (origin
3349 (method url-fetch)
3350 (uri (string-append
612fddec 3351 "https://hackage.haskell.org/package/polyparse/polyparse-"
47038762
PW
3352 version
3353 ".tar.gz"))
3354 (sha256
3355 (base32
7fb6eb17 3356 "05dya1vdvq29hkhkdlsglzhw7bdn51rvs1javs0q75nf99c66k7m"))))
47038762 3357 (build-system haskell-build-system)
2d47cee2 3358 (inputs
47038762
PW
3359 `(("ghc-text" ,ghc-text)))
3360 (home-page
3361 "http://code.haskell.org/~malcolm/polyparse/")
3362 (synopsis
3363 "Alternative parser combinator libraries")
3364 (description
3365 "This package provides a variety of alternative parser combinator
3366libraries, including the original HuttonMeijer set. The Poly sets have
3367features like good error reporting, arbitrary token type, running state, lazy
3368parsing, and so on. Finally, Text.Parse is a proposed replacement for the
3369standard Read class, for better deserialisation of Haskell values from
3370Strings.")
3ac73271 3371 (license license:lgpl2.1)))
47038762 3372
fad564ec
PW
3373(define-public ghc-extra
3374 (package
3375 (name "ghc-extra")
3a066eb5 3376 (version "1.6.9")
fad564ec
PW
3377 (source
3378 (origin
3379 (method url-fetch)
3380 (uri (string-append
612fddec 3381 "https://hackage.haskell.org/package/extra/extra-"
fad564ec
PW
3382 version
3383 ".tar.gz"))
3384 (sha256
3385 (base32
3a066eb5 3386 "0xxcpb00pgwi9cmy6a7ghh6rblxry42p8pz5ssfgj20fs1xwzj1b"))))
fad564ec 3387 (build-system haskell-build-system)
7d4de988
RW
3388 (inputs
3389 `(("ghc-clock" ,ghc-clock)
3390 ("ghc-quickcheck" ,ghc-quickcheck)))
fad564ec
PW
3391 (home-page "https://github.com/ndmitchell/extra")
3392 (synopsis "Extra Haskell functions")
3393 (description "This library provides extra functions for the standard
3394Haskell libraries. Most functions are simple additions, filling out missing
3395functionality. A few functions are available in later versions of GHC, but
3396this package makes them available back to GHC 7.2.")
3ac73271 3397 (license license:bsd-3)))
fad564ec 3398
f221841c
PW
3399(define-public ghc-profunctors
3400 (package
3401 (name "ghc-profunctors")
4a1b5600 3402 (version "5.2.2")
f221841c
PW
3403 (source
3404 (origin
3405 (method url-fetch)
3406 (uri (string-append
612fddec 3407 "https://hackage.haskell.org/package/profunctors/profunctors-"
f221841c
PW
3408 version
3409 ".tar.gz"))
3410 (sha256
3411 (base32
4a1b5600 3412 "0s1pwjidbn761xk43pmzyvn99hm3psdifjd78ylki7f97aiyd0g9"))))
f221841c 3413 (build-system haskell-build-system)
bf733668
TS
3414 (arguments
3415 `(#:cabal-revision
3416 ("2" "1ywlg9z8nlhd2avgb8c6gbkv8zyk7hvc25926bafyg0m0k8y1amq")))
f221841c 3417 (inputs
4a1b5600
RW
3418 `(("ghc-base-orphans" ,ghc-base-orphans)
3419 ("ghc-bifunctors" ,ghc-bifunctors)
2d47cee2 3420 ("ghc-comonad" ,ghc-comonad)
4a1b5600
RW
3421 ("ghc-contravariant" ,ghc-contravariant)
3422 ("ghc-distributive" ,ghc-distributive)
3423 ("ghc-semigroups" ,ghc-semigroups)
f221841c 3424 ("ghc-tagged" ,ghc-tagged)))
612fddec 3425 (home-page "https://github.com/ekmett/profunctors/")
f221841c
PW
3426 (synopsis "Profunctors for Haskell")
3427 (description "This library provides profunctors for Haskell.")
3ac73271 3428 (license license:bsd-3)))
f221841c 3429
d2639cbc
PW
3430(define-public ghc-reducers
3431 (package
3432 (name "ghc-reducers")
d8717c89 3433 (version "3.12.3")
d2639cbc
PW
3434 (source
3435 (origin
3436 (method url-fetch)
3437 (uri (string-append
612fddec 3438 "https://hackage.haskell.org/package/reducers/reducers-"
d2639cbc
PW
3439 version
3440 ".tar.gz"))
3441 (sha256
3442 (base32
d8717c89 3443 "09wf8pl9ycglcv6qj5ba26gkg2s5iy81hsx9xp0q8na0cwvp71ki"))))
d2639cbc 3444 (build-system haskell-build-system)
d2639cbc
PW
3445 (inputs
3446 `(("ghc-fingertree" ,ghc-fingertree)
3447 ("ghc-hashable" ,ghc-hashable)
3448 ("ghc-text" ,ghc-text)
3449 ("ghc-unordered-containers" ,ghc-unordered-containers)
2d47cee2 3450 ("ghc-semigroupoids" ,ghc-semigroupoids)
d2639cbc 3451 ("ghc-semigroups" ,ghc-semigroups)))
612fddec 3452 (home-page "https://github.com/ekmett/reducers/")
d2639cbc
PW
3453 (synopsis "Semigroups, specialized containers and a general map/reduce framework")
3454 (description "This library provides various semigroups, specialized
3455containers and a general map/reduce framework for Haskell.")
3ac73271 3456 (license license:bsd-3)))
d2639cbc 3457
76ae28f1
PW
3458(define-public ghc-appar
3459 (package
3460 (name "ghc-appar")
3461 (version "0.1.4")
3462 (source
3463 (origin
3464 (method url-fetch)
3465 (uri (string-append
612fddec 3466 "https://hackage.haskell.org/package/appar/appar-"
76ae28f1
PW
3467 version
3468 ".tar.gz"))
3469 (sha256
3470 (base32
3471 "09jb9ij78fdkz2qk66rw99q19qnm504dpv0yq0pjsl6xwjmndsjq"))))
3472 (build-system haskell-build-system)
3473 (home-page
612fddec 3474 "https://hackage.haskell.org/package/appar")
76ae28f1
PW
3475 (synopsis "Simple applicative parser")
3476 (description "This package provides a simple applicative parser in Parsec
3477style.")
3ac73271 3478 (license license:bsd-3)))
76ae28f1 3479
78c5b39d
PW
3480(define-public ghc-safe
3481 (package
3482 (name "ghc-safe")
17539a7e 3483 (version "0.3.17")
78c5b39d
PW
3484 (source
3485 (origin
3486 (method url-fetch)
3487 (uri (string-append
612fddec 3488 "https://hackage.haskell.org/package/safe/safe-"
78c5b39d
PW
3489 version
3490 ".tar.gz"))
3491 (sha256
3492 (base32
17539a7e 3493 "0p3yaf5slvyz1cyy51jq64c5rlp8yzwim8iy2dlnk42if4gc9ibr"))))
78c5b39d 3494 (build-system haskell-build-system)
17539a7e
TS
3495 (native-inputs
3496 `(("ghc-quickcheck" ,ghc-quickcheck)))
78c5b39d
PW
3497 (home-page "https://github.com/ndmitchell/safe#readme")
3498 (synopsis "Library of safe (exception free) functions")
3499 (description "This library provides wrappers around @code{Prelude} and
3500@code{Data.List} functions, such as @code{head} and @code{!!}, that can throw
3501exceptions.")
3ac73271 3502 (license license:bsd-3)))
78c5b39d 3503
476f7bab
PW
3504(define-public ghc-generic-deriving
3505 (package
3506 (name "ghc-generic-deriving")
b408c5a7 3507 (version "1.12.2")
476f7bab
PW
3508 (source
3509 (origin
3510 (method url-fetch)
3511 (uri (string-append
612fddec 3512 "https://hackage.haskell.org/package/generic-deriving/generic-deriving-"
476f7bab
PW
3513 version
3514 ".tar.gz"))
3515 (sha256
3516 (base32
b408c5a7 3517 "1i7d6cpj9yhaqb79zays3nqchhaacacjz9bkc0zlwj73y5gvi22n"))))
476f7bab 3518 (build-system haskell-build-system)
b408c5a7
TS
3519 (inputs
3520 `(("ghc-th-abstraction" ,ghc-th-abstraction)))
24857542
RW
3521 (native-inputs
3522 `(("ghc-hspec" ,ghc-hspec)
3523 ("hspec-discover" ,hspec-discover)))
476f7bab
PW
3524 (home-page "https://hackage.haskell.org/package/generic-deriving")
3525 (synopsis "Generalise the deriving mechanism to arbitrary classes")
3526 (description "This package provides functionality for generalising the
3527deriving mechanism in Haskell to arbitrary classes.")
3ac73271 3528 (license license:bsd-3)))
476f7bab 3529
b10f7be3
PW
3530(define-public ghc-pcre-light
3531 (package
3532 (name "ghc-pcre-light")
eff94e6b 3533 (version "0.4.0.4")
b10f7be3
PW
3534 (source
3535 (origin
3536 (method url-fetch)
3537 (uri (string-append
612fddec 3538 "https://hackage.haskell.org/package/pcre-light/pcre-light-"
b10f7be3
PW
3539 version
3540 ".tar.gz"))
3541 (sha256
3542 (base32
eff94e6b 3543 "0xcyi1fivwg7a92mch5bcqzmrfxzqj42rmb3m8kgs61x4qwpxj82"))))
b10f7be3
PW
3544 (build-system haskell-build-system)
3545 (inputs
3546 `(("pcre" ,pcre)))
eff94e6b
RW
3547 (native-inputs
3548 `(("pkg-config" ,pkg-config)))
b10f7be3
PW
3549 (home-page "https://github.com/Daniel-Diaz/pcre-light")
3550 (synopsis "Haskell library for Perl 5 compatible regular expressions")
3551 (description "This package provides a small, efficient, and portable regex
3552library for Perl 5 compatible regular expressions. The PCRE library is a set
3553of functions that implement regular expression pattern matching using the same
3554syntax and semantics as Perl 5.")
3ac73271 3555 (license license:bsd-3)))
b10f7be3 3556
748463be
PW
3557(define-public ghc-logict
3558 (package
3559 (name "ghc-logict")
3560 (version "0.6.0.2")
3561 (source
3562 (origin
3563 (method url-fetch)
3564 (uri (string-append
612fddec 3565 "https://hackage.haskell.org/package/logict/logict-"
748463be
PW
3566 version
3567 ".tar.gz"))
3568 (sha256
3569 (base32
3570 "07hnirv6snnym2r7iijlfz00b60jpy2856zvqxh989q0in7bd0hi"))))
3571 (build-system haskell-build-system)
748463be
PW
3572 (home-page "http://code.haskell.org/~dolio/")
3573 (synopsis "Backtracking logic-programming monad")
3574 (description "This library provides a continuation-based, backtracking,
3575logic programming monad. An adaptation of the two-continuation implementation
3576found in the paper \"Backtracking, Interleaving, and Terminating Monad
3577Transformers\" available @uref{http://okmij.org/ftp/papers/LogicT.pdf,
3578online}.")
3ac73271 3579 (license license:bsd-3)))
748463be 3580
d10fed28
PW
3581(define-public ghc-xml
3582 (package
3583 (name "ghc-xml")
3584 (version "1.3.14")
3585 (source
3586 (origin
3587 (method url-fetch)
3588 (uri (string-append
612fddec 3589 "https://hackage.haskell.org/package/xml/xml-"
d10fed28
PW
3590 version
3591 ".tar.gz"))
3592 (sha256
3593 (base32
3594 "0g814lj7vaxvib2g3r734221k80k7ap9czv9hinifn8syals3l9j"))))
3595 (build-system haskell-build-system)
2d47cee2 3596 (inputs
d10fed28
PW
3597 `(("ghc-text" ,ghc-text)))
3598 (home-page "http://code.galois.com")
3599 (synopsis "Simple XML library for Haskell")
3600 (description "This package provides a simple XML library for Haskell.")
3ac73271 3601 (license license:bsd-3)))
d10fed28 3602
e3aae496
TS
3603(define-public ghc-feed
3604 (package
3605 (name "ghc-feed")
fbdf4031 3606 (version "1.0.0.0")
e3aae496
TS
3607 (source
3608 (origin
3609 (method url-fetch)
3610 (uri (string-append "https://hackage.haskell.org/package/"
3611 "feed/feed-" version ".tar.gz"))
3612 (sha256
3613 (base32
fbdf4031 3614 "05rgg7x1984mgfhkmz792xj8lhwjgznixhygzr8blf517lns2nck"))))
e3aae496 3615 (build-system haskell-build-system)
fbdf4031
TS
3616 (arguments
3617 `(#:cabal-revision
3618 ("4" "0baavcavm3ywykcr9cm07aqr7sna98jba2n68lyn3kany8ri214d")))
e3aae496 3619 (inputs
fbdf4031
TS
3620 `(("ghc-base-compat" ,ghc-base-compat)
3621 ("ghc-old-locale" ,ghc-old-locale)
e3aae496 3622 ("ghc-old-time" ,ghc-old-time)
fbdf4031
TS
3623 ("ghc-safe" ,ghc-safe)
3624 ("ghc-text" ,ghc-text)
e3aae496
TS
3625 ("ghc-time-locale-compat" ,ghc-time-locale-compat)
3626 ("ghc-utf8-string" ,ghc-utf8-string)
fbdf4031
TS
3627 ("ghc-xml-conduit" ,ghc-xml-conduit)
3628 ("ghc-xml-types" ,ghc-xml-types)))
e3aae496
TS
3629 (native-inputs
3630 `(("ghc-hunit" ,ghc-hunit)
3631 ("ghc-test-framework" ,ghc-test-framework)
3632 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)))
3633 (home-page "https://github.com/bergmark/feed")
3634 (synopsis "Haskell package for handling various syndication formats")
3635 (description "This Haskell package includes tools for generating and
3636consuming feeds in both RSS (Really Simple Syndication) and Atom format.")
3637 (license license:bsd-3)))
3638
31cac1ee
PW
3639(define-public ghc-exceptions
3640 (package
3641 (name "ghc-exceptions")
5f192d52 3642 (version "0.10.0")
31cac1ee
PW
3643 (source
3644 (origin
3645 (method url-fetch)
3646 (uri (string-append
612fddec 3647 "https://hackage.haskell.org/package/exceptions/exceptions-"
31cac1ee
PW
3648 version
3649 ".tar.gz"))
3650 (sha256
3651 (base32
5f192d52 3652 "1ms9zansv0pwzwdjncvx4kf18lnkjy2p61hvjhvxmjx5bqp93p8y"))))
31cac1ee 3653 (build-system haskell-build-system)
e1e80388 3654 (native-inputs
5f192d52
TS
3655 `(("ghc-quickcheck" ,ghc-quickcheck)
3656 ("ghc-test-framework" ,ghc-test-framework)
3657 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
e1e80388 3658 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
2d47cee2 3659 (inputs
31cac1ee 3660 `(("ghc-stm" ,ghc-stm)
31cac1ee 3661 ("ghc-transformers-compat" ,ghc-transformers-compat)))
612fddec 3662 (home-page "https://github.com/ekmett/exceptions/")
31cac1ee
PW
3663 (synopsis "Extensible optionally-pure exceptions")
3664 (description "This library provides extensible optionally-pure exceptions
3665for Haskell.")
3ac73271 3666 (license license:bsd-3)))
31cac1ee 3667
5257c341
PW
3668(define-public ghc-temporary
3669 (package
3670 (name "ghc-temporary")
ded4ac38 3671 (version "1.3")
5257c341
PW
3672 (source
3673 (origin
3674 (method url-fetch)
3675 (uri (string-append
612fddec 3676 "https://hackage.haskell.org/package/temporary/temporary-"
5257c341
PW
3677 version
3678 ".tar.gz"))
3679 (sha256
3680 (base32
ded4ac38 3681 "144qhwfwg37l3k313raf4ssiz16jbgwlm1nf4flgqpsbd69jji4c"))))
5257c341 3682 (build-system haskell-build-system)
ded4ac38
TS
3683 (inputs
3684 `(("ghc-exceptions" ,ghc-exceptions)
3685 ("ghc-random" ,ghc-random)))
3686 (native-inputs
3687 `(("ghc-base-compat" ,ghc-base-compat)
3688 ("ghc-tasty" ,ghc-tasty)
3689 ("ghc-tasty-hunit" ,ghc-tasty-hunit)))
98b90194 3690 (home-page "https://www.github.com/batterseapower/temporary")
5257c341
PW
3691 (synopsis "Temporary file and directory support")
3692 (description "The functions for creating temporary files and directories
3693in the Haskelll base library are quite limited. This library just repackages
3694the Cabal implementations of its own temporary file and folder functions so
3695that you can use them without linking against Cabal or depending on it being
3696installed.")
3ac73271 3697 (license license:bsd-3)))
5257c341 3698
fa67563c
PW
3699(define-public ghc-temporary-rc
3700 (package
3701 (name "ghc-temporary-rc")
3702 (version "1.2.0.3")
3703 (source
3704 (origin
3705 (method url-fetch)
3706 (uri (string-append
612fddec 3707 "https://hackage.haskell.org/package/temporary-rc/temporary-rc-"
fa67563c
PW
3708 version
3709 ".tar.gz"))
3710 (sha256
3711 (base32
3712 "1nqih0qks439k3pr5kmbbc8rjdw730slrxlflqb27fbxbzb8skqs"))))
3713 (build-system haskell-build-system)
2d47cee2 3714 (inputs `(("ghc-exceptions" ,ghc-exceptions)))
fa67563c 3715 (home-page
98b90194 3716 "https://www.github.com/feuerbach/temporary")
fa67563c
PW
3717 (synopsis
3718 "Portable temporary file and directory support")
3719 (description
3720 "The functions for creating temporary files and directories in the base
3721library are quite limited. The unixutils package contains some good ones, but
3722they aren't portable to Windows. This library just repackages the Cabal
3723implementations of its own temporary file and folder functions so that you can
3724use them without linking against Cabal or depending on it being installed.
3725This is a better maintained fork of the \"temporary\" package.")
3ac73271 3726 (license license:bsd-3)))
fa67563c 3727
b53fa046
PW
3728(define-public ghc-smallcheck
3729 (package
3730 (name "ghc-smallcheck")
b625f3a5 3731 (version "1.1.5")
b53fa046
PW
3732 (source
3733 (origin
3734 (method url-fetch)
3735 (uri (string-append
612fddec 3736 "https://hackage.haskell.org/package/smallcheck/smallcheck-"
b53fa046
PW
3737 version
3738 ".tar.gz"))
3739 (sha256
3740 (base32
b625f3a5 3741 "195fj7w3v03d1y1nm2ylavzrwxjcdbq0lb6zsw1dwyx5jmwfc84h"))))
b53fa046 3742 (build-system haskell-build-system)
b53fa046 3743 (inputs
f54f0475 3744 `(("ghc-logict" ,ghc-logict)))
b53fa046
PW
3745 (home-page
3746 "https://github.com/feuerbach/smallcheck")
3747 (synopsis "Property-based testing library")
3748 (description "SmallCheck is a testing library that allows to verify
3749properties for all test cases up to some depth. The test cases are generated
3750automatically by SmallCheck.")
3ac73271 3751 (license license:bsd-3)))
b53fa046 3752
acd881a4
PW
3753(define-public ghc-silently
3754 (package
3755 (name "ghc-silently")
3756 (version "1.2.5")
3757 (source
3758 (origin
3759 (method url-fetch)
3760 (uri (string-append
612fddec 3761 "https://hackage.haskell.org/package/silently/silently-"
acd881a4
PW
3762 version
3763 ".tar.gz"))
3764 (sha256
3765 (base32
3766 "0f9qm3f7y0hpxn6mddhhg51mm1r134qkvd2kr8r6192ka1ijbxnf"))))
3767 (build-system haskell-build-system)
3768 (arguments `(#:tests? #f)) ;; circular dependency with nanospec
3769 ;; (inputs
3770 ;; `(("ghc-temporary" ,ghc-temporary)))
3771 (home-page "https://github.com/hspec/silently")
3772 (synopsis "Prevent writing to stdout")
3773 (description "This package provides functions to prevent or capture
3774writing to stdout and other handles.")
3ac73271 3775 (license license:bsd-3)))
acd881a4 3776
7a1e8c74
FB
3777(define-public ghc-case-insensitive
3778 (package
3779 (name "ghc-case-insensitive")
f5aa5845 3780 (version "1.2.0.11")
7a1e8c74
FB
3781 (outputs '("out" "doc"))
3782 (source
3783 (origin
3784 (method url-fetch)
3785 (uri (string-append
612fddec 3786 "https://hackage.haskell.org/package/case-insensitive/case-insensitive-"
7a1e8c74
FB
3787 version
3788 ".tar.gz"))
3789 (sha256
3790 (base32
f5aa5845 3791 "1qrpxfirsxckg7jv28f5ah2qc8lh95hp7rnqkbqs1ahcwlbnvkm7"))))
7a1e8c74 3792 (build-system haskell-build-system)
7a1e8c74 3793 ;; these inputs are necessary to use this library
2d47cee2 3794 (inputs
7a1e8c74
FB
3795 `(("ghc-text" ,ghc-text)
3796 ("ghc-hashable" ,ghc-hashable)))
3797 (arguments
3798 `(#:tests? #f)) ; FIXME: currently missing libraries used for tests.
3799 (home-page
3800 "https://github.com/basvandijk/case-insensitive")
3801 (synopsis "Case insensitive string comparison")
3802 (description
36a4366d
EF
3803 "The module @code{Data.CaseInsensitive} provides the @code{CI} type
3804constructor which can be parameterised by a string-like type like:
3805@code{String}, @code{ByteString}, @code{Text}, etc. Comparisons of values of
3806the resulting type will be insensitive to cases.")
3ac73271 3807 (license license:bsd-3)))
7a1e8c74 3808
eaa3088e
FB
3809(define-public ghc-syb
3810 (package
3811 (name "ghc-syb")
80d06b8d 3812 (version "0.7")
eaa3088e
FB
3813 (outputs '("out" "doc"))
3814 (source
3815 (origin
3816 (method url-fetch)
3817 (uri (string-append
612fddec 3818 "https://hackage.haskell.org/package/syb/syb-"
eaa3088e
FB
3819 version
3820 ".tar.gz"))
3821 (sha256
3822 (base32
80d06b8d 3823 "1da2zz7gqm4xbkx5vpd74dayx1svaxyl145fl14mq15lbb77sxdq"))))
eaa3088e
FB
3824 (build-system haskell-build-system)
3825 (inputs
f54f0475 3826 `(("ghc-hunit" ,ghc-hunit)))
eaa3088e
FB
3827 (home-page
3828 "http://www.cs.uu.nl/wiki/GenericProgramming/SYB")
3829 (synopsis "Scrap Your Boilerplate")
a306190f 3830 (description "This package contains the generics system described in the
eaa3088e 3831/Scrap Your Boilerplate/ papers (see
a306190f 3832@uref{http://www.cs.uu.nl/wiki/GenericProgramming/SYB, the website}). It
36a4366d 3833defines the @code{Data} class of types permitting folding and unfolding of
a306190f
PW
3834constructor applications, instances of this class for primitive types, and a
3835variety of traversals.")
3ac73271 3836 (license license:bsd-3)))
eaa3088e 3837
c5043f4a
FB
3838(define-public ghc-fgl
3839 (package
3840 (name "ghc-fgl")
b1a16000 3841 (version "5.6.0.0")
c5043f4a
FB
3842 (outputs '("out" "doc"))
3843 (source
3844 (origin
3845 (method url-fetch)
3846 (uri (string-append
612fddec 3847 "https://hackage.haskell.org/package/fgl/fgl-"
c5043f4a
FB
3848 version
3849 ".tar.gz"))
3850 (sha256
3851 (base32
b1a16000 3852 "1i6cp4b3w7sjk7y1dq3fh6bci2sm5h3lnbbaw9ln19nwncg2wwll"))))
c5043f4a 3853 (build-system haskell-build-system)
c0a541cb 3854 (arguments
98993f60
TS
3855 `(#:phases
3856 (modify-phases %standard-phases
3857 (add-before 'configure 'update-constraints
3858 (lambda _
3859 (substitute* "fgl.cabal"
3860 (("QuickCheck >= 2\\.8 && < 2\\.10")
3861 "QuickCheck >= 2.8 && < 2.12")
3862 (("hspec >= 2\\.1 && < 2\\.5")
3863 "hspec >= 2.1 && < 2.6")))))))
ce242fd0 3864 (inputs
f54f0475 3865 `(("ghc-hspec" ,ghc-hspec)
ce242fd0 3866 ("ghc-quickcheck" ,ghc-quickcheck)))
98b90194 3867 (home-page "https://web.engr.oregonstate.edu/~erwig/fgl/haskell")
c5043f4a
FB
3868 (synopsis
3869 "Martin Erwig's Functional Graph Library")
3870 (description "The functional graph library, FGL, is a collection of type
3871and function definitions to address graph problems. The basis of the library
3872is an inductive definition of graphs in the style of algebraic data types that
3873encourages inductive, recursive definitions of graph algorithms.")
3ac73271 3874 (license license:bsd-3)))
c5043f4a 3875
4eca62be
EB
3876(define-public ghc-chasingbottoms
3877 (package
3878 (name "ghc-chasingbottoms")
fa9c33dc 3879 (version "1.3.1.4")
4eca62be
EB
3880 (source
3881 (origin
3882 (method url-fetch)
612fddec 3883 (uri (string-append "https://hackage.haskell.org/package/ChasingBottoms/"
4eca62be
EB
3884 "ChasingBottoms-" version ".tar.gz"))
3885 (sha256
3886 (base32
fa9c33dc 3887 "06cynx6hcbfpky7qq3b3mjjgwbnaxkwin3znbwq4b9ikiw0ng633"))))
4eca62be 3888 (build-system haskell-build-system)
2d47cee2 3889 (inputs
f54f0475 3890 `(("ghc-quickcheck" ,ghc-quickcheck)
4eca62be
EB
3891 ("ghc-random" ,ghc-random)
3892 ("ghc-syb" ,ghc-syb)))
612fddec 3893 (home-page "https://hackage.haskell.org/package/ChasingBottoms")
4eca62be
EB
3894 (synopsis "Testing of partial and infinite values in Haskell")
3895 (description
3896 ;; FIXME: There should be a @comma{} in the uref text, but it is not
3897 ;; rendered properly.
3898 "This is a library for testing code involving bottoms or infinite values.
3899For the underlying theory and a larger example involving use of QuickCheck,
3900see the article
3901@uref{http://www.cse.chalmers.se/~nad/publications/danielsson-jansson-mpc2004.html,
3902\"Chasing Bottoms A Case Study in Program Verification in the Presence of
3903Partial and Infinite Values\"}.")
3ac73271 3904 (license license:expat)))
4eca62be 3905
01a687da
FB
3906(define-public ghc-unordered-containers
3907 (package
3908 (name "ghc-unordered-containers")
e0b8cc34 3909 (version "0.2.9.0")
01a687da
FB
3910 (outputs '("out" "doc"))
3911 (source
3912 (origin
3913 (method url-fetch)
3914 (uri (string-append
612fddec 3915 "https://hackage.haskell.org/package/unordered-containers"
0e03d76a 3916 "/unordered-containers-" version ".tar.gz"))
01a687da
FB
3917 (sha256
3918 (base32
e0b8cc34 3919 "0l4264p0av12cc6i8gls13q8y27x12z2ar4x34n3x59y99fcnc37"))))
01a687da
FB
3920 (build-system haskell-build-system)
3921 (inputs
c3c61a78
EB
3922 `(("ghc-chasingbottoms" ,ghc-chasingbottoms)
3923 ("ghc-hunit" ,ghc-hunit)
3924 ("ghc-quickcheck" ,ghc-quickcheck)
3925 ("ghc-test-framework" ,ghc-test-framework)
3926 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
2d47cee2
RW
3927 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)
3928 ("ghc-hashable" ,ghc-hashable)))
01a687da
FB
3929 (home-page
3930 "https://github.com/tibbe/unordered-containers")
3931 (synopsis
3932 "Efficient hashing-based container types")
3933 (description
3934 "Efficient hashing-based container types. The containers have been
3935optimized for performance critical use, both in terms of large data quantities
3936and high speed.")
3ac73271 3937 (license license:bsd-3)))
01a687da 3938
bc8bda50
TS
3939(define-public ghc-unordered-containers-bootstrap
3940 (package
3941 (inherit ghc-unordered-containers)
3942 (name "ghc-unordered-containers-bootstrap")
3943 (arguments `(#:tests? #f))
3944 (inputs
3945 `(("ghc-hashable" ,ghc-hashable-bootstrap)))
3946 (properties '(hidden? #t))))
3947
10de4306
PW
3948(define-public ghc-uniplate
3949 (package
3950 (name "ghc-uniplate")
3951 (version "1.6.12")
3952 (source
3953 (origin
3954 (method url-fetch)
3955 (uri (string-append
612fddec 3956 "https://hackage.haskell.org/package/uniplate/uniplate-"
10de4306
PW
3957 version
3958 ".tar.gz"))
3959 (sha256
3960 (base32
3961 "1dx8f9aw27fz8kw0ad1nm6355w5rdl7bjvb427v2bsgnng30pipw"))))
3962 (build-system haskell-build-system)
2d47cee2 3963 (inputs
10de4306
PW
3964 `(("ghc-syb" ,ghc-syb)
3965 ("ghc-hashable" ,ghc-hashable)
3966 ("ghc-unordered-containers" ,ghc-unordered-containers)))
3967 (home-page "http://community.haskell.org/~ndm/uniplate/")
3968 (synopsis "Simple, concise and fast generic operations")
3969 (description "Uniplate is a library for writing simple and concise generic
3970operations. Uniplate has similar goals to the original Scrap Your Boilerplate
3971work, but is substantially simpler and faster.")
3ac73271 3972 (license license:bsd-3)))
10de4306 3973
3410470d
PW
3974(define-public ghc-base64-bytestring
3975 (package
3976 (name "ghc-base64-bytestring")
ecad6abf 3977 (version "1.0.0.2")
3410470d
PW
3978 (source
3979 (origin
3980 (method url-fetch)
3981 (uri (string-append
612fddec 3982 "https://hackage.haskell.org/package/base64-bytestring/base64-bytestring-"
3410470d
PW
3983 version
3984 ".tar.gz"))
3985 (sha256
ecad6abf 3986 (base32 "13305brzlac24pifiqd5a2z10c6k6amhpdy9cc0z5ryrkgnm8dhr"))))
3410470d
PW
3987 (build-system haskell-build-system)
3988 (arguments `(#:tests? #f)) ; FIXME: testing libraries are missing.
3989 (home-page "https://github.com/bos/base64-bytestring")
3990 (synopsis "Base64 encoding and decoding for ByteStrings")
3991 (description "This library provides fast base64 encoding and decoding for
3992Haskell @code{ByteString}s.")
3ac73271 3993 (license license:bsd-3)))
3410470d 3994
4e125497
PW
3995(define-public ghc-annotated-wl-pprint
3996 (package
3997 (name "ghc-annotated-wl-pprint")
3998 (version "0.7.0")
3999 (source
4000 (origin
4001 (method url-fetch)
4002 (uri (string-append
612fddec 4003 "https://hackage.haskell.org/package/annotated-wl-pprint"
4e125497
PW
4004 "/annotated-wl-pprint-" version
4005 ".tar.gz"))
4006 (sha256
4007 (base32
4008 "061xfz6qany3wf95csl8dcik2pz22cn8iv1qchhm16isw5zjs9hc"))))
4009 (build-system haskell-build-system)
4010 (home-page
4011 "https://github.com/david-christiansen/annotated-wl-pprint")
4012 (synopsis
4013 "The Wadler/Leijen Pretty Printer, with annotation support")
4014 (description "This is a modified version of wl-pprint, which was based on
4015Wadler's paper \"A Prettier Printer\". This version allows the library user
4016to annotate the text with semantic information, which can later be rendered in
4017a variety of ways.")
3ac73271 4018 (license license:bsd-3)))
4e125497 4019
febf7ef6
LC
4020(define-public ghc-wl-pprint
4021 (package
4022 (name "ghc-wl-pprint")
061832f1 4023 (version "1.2.1")
febf7ef6
LC
4024 (source (origin
4025 (method url-fetch)
4026 (uri (string-append
612fddec 4027 "https://hackage.haskell.org/package/wl-pprint/wl-pprint-"
febf7ef6
LC
4028 version ".tar.gz"))
4029 (sha256
4030 (base32
061832f1 4031 "0kn7y8pdrv8f87zhd5mifcl8fy3b2zvnzmzwhdqhxxlyzwiq6z0c"))))
febf7ef6 4032 (build-system haskell-build-system)
612fddec 4033 (home-page "https://hackage.haskell.org/package/wl-pprint")
febf7ef6
LC
4034 (synopsis "Wadler/Leijen pretty printer")
4035 (description
4036 "This is a pretty printing library based on Wadler's paper @i{A Prettier
4037Printer}. This version allows the library user to declare overlapping
4038instances of the @code{Pretty} class.")
4039 (license license:bsd-3)))
4040
e9333348
PW
4041(define-public ghc-ansi-wl-pprint
4042 (package
4043 (name "ghc-ansi-wl-pprint")
05916da7 4044 (version "0.6.8.2")
e9333348
PW
4045 (source
4046 (origin
4047 (method url-fetch)
05916da7
RW
4048 (uri (string-append "https://hackage.haskell.org/package/"
4049 "ansi-wl-pprint/ansi-wl-pprint-"
4050 version ".tar.gz"))
e9333348
PW
4051 (sha256
4052 (base32
05916da7 4053 "0gnb4mkqryv08vncxnj0bzwcnd749613yw3cxfzw6y3nsldp4c56"))))
e9333348 4054 (build-system haskell-build-system)
2d47cee2 4055 (inputs
e9333348 4056 `(("ghc-ansi-terminal" ,ghc-ansi-terminal)))
612fddec 4057 (home-page "https://github.com/ekmett/ansi-wl-pprint")
e9333348
PW
4058 (synopsis "Wadler/Leijen Pretty Printer for colored ANSI terminal output")
4059 (description "This is a pretty printing library based on Wadler's paper
4060\"A Prettier Printer\". It has been enhanced with support for ANSI terminal
4061colored output using the ansi-terminal package.")
3ac73271 4062 (license license:bsd-3)))
e9333348 4063
d692228e
FB
4064(define-public ghc-split
4065 (package
4066 (name "ghc-split")
5285d614 4067 (version "0.2.3.3")
d692228e
FB
4068 (outputs '("out" "doc"))
4069 (source
4070 (origin
4071 (method url-fetch)
4072 (uri (string-append
612fddec 4073 "https://hackage.haskell.org/package/split/split-"
d692228e
FB
4074 version
4075 ".tar.gz"))
4076 (sha256
4077 (base32
5285d614 4078 "04qlmkcyklznl03gsjg95b4nzb6i96gdapqg60rny9szgi7ngk8x"))))
d692228e 4079 (build-system haskell-build-system)
86e9076d 4080 (native-inputs
d692228e 4081 `(("ghc-quickcheck" ,ghc-quickcheck)))
612fddec 4082 (home-page "https://hackage.haskell.org/package/split")
565f040d
PW
4083 (synopsis "Combinator library for splitting lists")
4084 (description "This package provides a collection of Haskell functions for
4085splitting lists into parts, akin to the @code{split} function found in several
4086mainstream languages.")
3ac73271 4087 (license license:bsd-3)))
d692228e 4088
fa468e87
FB
4089(define-public ghc-parsec
4090 (package
4091 (name "ghc-parsec")
8ebdab0d 4092 (version "3.1.13.0")
fa468e87
FB
4093 (outputs '("out" "doc"))
4094 (source
4095 (origin
4096 (method url-fetch)
4097 (uri (string-append
612fddec 4098 "https://hackage.haskell.org/package/parsec/parsec-"
fa468e87
FB
4099 version
4100 ".tar.gz"))
4101 (sha256
8ebdab0d 4102 (base32 "1wc09pyn70p8z6llink10c8pqbh6ikyk554911yfwxv1g91swqbq"))))
fa468e87 4103 (build-system haskell-build-system)
2d47cee2 4104 (native-inputs
fa468e87 4105 `(("ghc-hunit" ,ghc-hunit)))
2d47cee2 4106 (inputs
f54f0475 4107 `(("ghc-text" ,ghc-text)))
fa468e87
FB
4108 (arguments
4109 `(#:tests? #f)) ; FIXME: currently missing libraries used for tests.
4110 (home-page
4111 "https://github.com/aslatter/parsec")
4112 (synopsis "Monadic parser combinators")
4113 (description "Parsec is a parser library. It is simple, safe, well
4114documented, has extensive libraries, good error messages, and is fast. It is
4115defined as a monad transformer that can be stacked on arbitrary monads, and it
4116is also parametric in the input stream type.")
3ac73271 4117 (license license:bsd-3)))
fa468e87 4118
aeecabd4
RW
4119(define-public ghc-parser-combinators
4120 (package
4121 (name "ghc-parser-combinators")
e2182202 4122 (version "1.0.0")
aeecabd4
RW
4123 (source
4124 (origin
4125 (method url-fetch)
4126 (uri (string-append "https://hackage.haskell.org/package/"
4127 "parser-combinators/parser-combinators-"
4128 version ".tar.gz"))
4129 (sha256
4130 (base32
e2182202 4131 "1pwfdsklqwvaynwpdzmx1bs35mp6dpsyaqdnzxnqcrxwf5h8sk75"))))
aeecabd4
RW
4132 (build-system haskell-build-system)
4133 (home-page "https://github.com/mrkkrp/parser-combinators")
4134 (synopsis "Commonly useful parser combinators")
4135 (description
4136 "This is a lightweight package providing commonly useful parser
4137combinators.")
4138 (license license:bsd-3)))
4139
ad5de226
RW
4140(define-public ghc-megaparsec
4141 (package
4142 (name "ghc-megaparsec")
81caf948 4143 (version "6.5.0")
ad5de226
RW
4144 (source
4145 (origin
4146 (method url-fetch)
4147 (uri (string-append "https://hackage.haskell.org/package/"
4148 "megaparsec/megaparsec-"
4149 version ".tar.gz"))
4150 (sha256
4151 (base32
81caf948 4152 "12iggy7qpf8x93jm64zf0g215xwy779bqyfyjk2bhmxqqr1yzgdy"))))
ad5de226 4153 (build-system haskell-build-system)
81caf948
TS
4154 (arguments
4155 `(#:cabal-revision
4156 ("4" "0ij3asi5vwlhbgwsy6nhli9a0qb7926mg809fsgyl1rnhs9fvpx1")))
ad5de226
RW
4157 (inputs
4158 `(("ghc-case-insensitive" ,ghc-case-insensitive)
ad5de226
RW
4159 ("ghc-parser-combinators" ,ghc-parser-combinators)
4160 ("ghc-scientific" ,ghc-scientific)
4161 ("ghc-text" ,ghc-text)))
4162 (native-inputs
4163 `(("ghc-quickcheck" ,ghc-quickcheck)
4164 ("ghc-hspec" ,ghc-hspec)
4165 ("ghc-hspec-expectations" ,ghc-hspec-expectations)
4166 ("hspec-discover" ,hspec-discover)))
4167 (home-page "https://github.com/mrkkrp/megaparsec")
4168 (synopsis "Monadic parser combinators")
4169 (description
4170 "This is an industrial-strength monadic parser combinator library.
4171Megaparsec is a feature-rich package that strikes a nice balance between
4172speed, flexibility, and quality of parse errors.")
4173 (license license:bsd-2)))
4174
f50fc138
FB
4175(define-public ghc-vector
4176 (package
4177 (name "ghc-vector")
4c8a1f40 4178 (version "0.12.0.1")
f50fc138
FB
4179 (outputs '("out" "doc"))
4180 (source
4181 (origin
4182 (method url-fetch)
4183 (uri (string-append
612fddec 4184 "https://hackage.haskell.org/package/vector/vector-"
f50fc138
FB
4185 version
4186 ".tar.gz"))
4187 (sha256
4188 (base32
4c8a1f40 4189 "0yrx2ypiaxahvaz84af5bi855hd3107kxkbqc8km29nsp5wyw05i"))))
f50fc138 4190 (build-system haskell-build-system)
4c8a1f40
RW
4191 ;; FIXME: To simplify upgrading all Haskell packages, we leave the tests
4192 ;; disabled for now.
57203a15
TS
4193 (arguments
4194 `(#:cabal-revision
4195 ("3" "0y5rh8k710i2a3p1h2rghvr5cfg78p5h0kbfi7ifxqqf6pzlyr1x")
4196 #:tests? #f))
e881752c 4197 (inputs
2d47cee2 4198 `(("ghc-primitive" ,ghc-primitive)
4c8a1f40
RW
4199 ("ghc-random" ,ghc-random)
4200 ("ghc-quickcheck" ,ghc-quickcheck)
4201 ;; ("ghc-hunit" ,ghc-hunit)
4202 ;; ("ghc-test-framework" ,ghc-test-framework)
4203 ;; ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
4204 ;; ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)
4205 ))
f50fc138
FB
4206 (home-page "https://github.com/haskell/vector")
4207 (synopsis "Efficient Arrays")
0b61d503
PW
4208 (description "This library provides an efficient implementation of
4209Int-indexed arrays (both mutable and immutable), with a powerful loop
4210optimisation framework.")
3ac73271 4211 (license license:bsd-3)))
f50fc138 4212
576cdc5a
PW
4213(define-public ghc-vector-binary-instances
4214 (package
4215 (name "ghc-vector-binary-instances")
a7c0b95a 4216 (version "0.2.4")
576cdc5a
PW
4217 (source
4218 (origin
4219 (method url-fetch)
4220 (uri (string-append
612fddec 4221 "https://hackage.haskell.org/package/"
576cdc5a
PW
4222 "vector-binary-instances/vector-binary-instances-"
4223 version ".tar.gz"))
4224 (sha256
4225 (base32
a7c0b95a 4226 "1y236jb72iab9ska1mc48z6yb0xgwmj45laaqdyjxksd84z7hbrb"))))
576cdc5a 4227 (build-system haskell-build-system)
4f2f0eb0
TS
4228 (arguments
4229 `(#:cabal-revision
4230 ("1" "196frl4akhfk7xf1nxzn8lmq99dxhzhsimanswn9yy7ym8zhki4i")))
576cdc5a 4231 (inputs
a7c0b95a
RW
4232 `(("ghc-vector" ,ghc-vector)))
4233 (native-inputs
4234 `(("ghc-tasty" ,ghc-tasty)
4235 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
576cdc5a
PW
4236 (home-page "https://github.com/bos/vector-binary-instances")
4237 (synopsis "Instances of Data.Binary and Data.Serialize for vector")
4238 (description "This library provides instances of @code{Binary} for the
4239types defined in the @code{vector} package, making it easy to serialize
4240vectors to and from disk. We use the generic interface to vectors, so all
4241vector types are supported. Specific instances are provided for unboxed,
4242boxed and storable vectors.")
3ac73271 4243 (license license:bsd-3)))
576cdc5a 4244
4c798726
TS
4245(define-public ghc-bloomfilter
4246 (package
4247 (name "ghc-bloomfilter")
4248 (version "2.0.1.0")
4249 (source
4250 (origin
4251 (method url-fetch)
4252 (uri (string-append "https://hackage.haskell.org/package/"
4253 "bloomfilter/bloomfilter-" version ".tar.gz"))
4254 (sha256
4255 (base32
4256 "03vrmncg1c10a2wcg5skq30m1yiknn7nwxz2gblyyfaxglshspkc"))))
4257 (build-system haskell-build-system)
4258 (native-inputs
4259 `(("ghc-quickcheck" ,ghc-quickcheck)
4260 ("ghc-random" ,ghc-random)
4261 ("ghc-test-framework" ,ghc-test-framework)
4262 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
4263 (home-page "https://github.com/bos/bloomfilter")
4264 (synopsis "Pure and impure Bloom filter implementations")
4265 (description "This package provides both mutable and immutable Bloom
4266filter data types, along with a family of hash functions and an easy-to-use
4267interface.")
4268 (license license:bsd-3)))
4269
abfed253
FB
4270(define-public ghc-network
4271 (package
4272 (name "ghc-network")
5a92fb41 4273 (version "2.6.3.6")
abfed253
FB
4274 (outputs '("out" "doc"))
4275 (source
4276 (origin
4277 (method url-fetch)
4278 (uri (string-append
612fddec 4279 "https://hackage.haskell.org/package/network/network-"
abfed253
FB
4280 version
4281 ".tar.gz"))
4282 (sha256
4283 (base32
5a92fb41 4284 "198mam7ahny48p9fajznbqq16a8ya2gw0xm3gnm1si1rmc4hdplv"))))
abfed253 4285 (build-system haskell-build-system)
2f430bf8
RW
4286 ;; The regression tests depend on an unpublished module.
4287 (arguments `(#:tests? #f))
4288 (native-inputs
4289 `(("ghc-hunit" ,ghc-hunit)
4290 ("ghc-doctest" ,ghc-doctest)
4291 ("ghc-test-framework" ,ghc-test-framework)
4292 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)))
abfed253
FB
4293 (home-page "https://github.com/haskell/network")
4294 (synopsis "Low-level networking interface")
4295 (description
4296 "This package provides a low-level networking interface.")
3ac73271 4297 (license license:bsd-3)))
abfed253 4298
9ce031c5
FB
4299(define-public ghc-network-uri
4300 (package
4301 (name "ghc-network-uri")
29addb27 4302 (version "2.6.1.0")
9ce031c5
FB
4303 (outputs '("out" "doc"))
4304 (source
4305 (origin
4306 (method url-fetch)
4307 (uri (string-append
612fddec 4308 "https://hackage.haskell.org/package/network-uri/network-uri-"
9ce031c5
FB
4309 version
4310 ".tar.gz"))
4311 (sha256
4312 (base32
29addb27 4313 "1w27zkvn39kjr9lmw9421y8w43h572ycsfafsb7kyvr3a4ihlgj2"))))
9ce031c5 4314 (build-system haskell-build-system)
9ce031c5
FB
4315 (arguments
4316 `(#:tests? #f)) ; FIXME: currently missing libraries used for tests.
2d47cee2
RW
4317 (native-inputs
4318 `(("ghc-hunit" ,ghc-hunit)))
4319 (inputs
4320 `(("ghc-parsec" ,ghc-parsec)
4321 ("ghc-network" ,ghc-network)))
9ce031c5
FB
4322 (home-page
4323 "https://github.com/haskell/network-uri")
e881752c
AK
4324 (synopsis "Library for URI manipulation")
4325 (description "This package provides an URI manipulation interface. In
36a4366d
EF
4326@code{network-2.6} the @code{Network.URI} module was split off from the
4327@code{network} package into this package.")
3ac73271 4328 (license license:bsd-3)))
9ce031c5 4329
cd27b23d
PW
4330(define-public ghc-ansi-terminal
4331 (package
4332 (name "ghc-ansi-terminal")
ecefe4ce 4333 (version "0.8.0.4")
cd27b23d
PW
4334 (source
4335 (origin
4336 (method url-fetch)
4337 (uri (string-append
612fddec 4338 "https://hackage.haskell.org/package/ansi-terminal/ansi-terminal-"
cd27b23d
PW
4339 version
4340 ".tar.gz"))
4341 (sha256
4342 (base32
ecefe4ce 4343 "0428gq8m3fdnb7ldcsyk97qcch76hcxbgh2666p6f76fs2qbhg7b"))))
cd27b23d 4344 (build-system haskell-build-system)
ecefe4ce
TS
4345 (inputs
4346 `(("ghc-colour" ,ghc-colour)))
cd27b23d
PW
4347 (home-page "https://github.com/feuerbach/ansi-terminal")
4348 (synopsis "ANSI terminal support for Haskell")
4349 (description "This package provides ANSI terminal support for Haskell. It
4350allows cursor movement, screen clearing, color output showing or hiding the
4351cursor, and changing the title.")
3ac73271 4352 (license license:bsd-3)))
cd27b23d 4353
6ecc4723
PW
4354(define-public ghc-vault
4355 (package
4356 (name "ghc-vault")
128c4c40 4357 (version "0.3.1.2")
6ecc4723
PW
4358 (source
4359 (origin
4360 (method url-fetch)
4361 (uri (string-append
612fddec 4362 "https://hackage.haskell.org/package/vault/vault-"
6ecc4723
PW
4363 version
4364 ".tar.gz"))
4365 (sha256
4366 (base32
128c4c40 4367 "072mbrihsdsb8c6xvg6lvk0rqjgvxvi8qkg4n6wwym5hq0pfa04y"))))
6ecc4723 4368 (build-system haskell-build-system)
2d47cee2 4369 (inputs
6ecc4723 4370 `(("ghc-unordered-containers" ,ghc-unordered-containers)
128c4c40
TS
4371 ("ghc-hashable" ,ghc-hashable)
4372 ("ghc-semigroupoids" ,ghc-semigroupoids)))
6ecc4723
PW
4373 (home-page
4374 "https://github.com/HeinrichApfelmus/vault")
4375 (synopsis "Persistent store for arbitrary values")
4376 (description "This package provides vaults for Haskell. A vault is a
4377persistent store for values of arbitrary types. It's like having first-class
4378access to the storage space behind @code{IORefs}. The data structure is
4379analogous to a bank vault, where you can access different bank boxes with
4380different keys; hence the name. Also provided is a @code{locker} type,
4381representing a store for a single element.")
3ac73271 4382 (license license:bsd-3)))
6ecc4723 4383
212ae095
AV
4384(define-public ghc-edisonapi
4385 (package
4386 (name "ghc-edisonapi")
4387 (version "1.3.1")
4388 (source
4389 (origin
4390 (method url-fetch)
4391 (uri (string-append "https://hackage.haskell.org/package/EdisonAPI"
4392 "/EdisonAPI-" version ".tar.gz"))
4393 (sha256
4394 (base32 "0vmmlsj8ggbpwx6fkf5fvb6jp0zpx6iba6b28m80lllr2p8bi8wm"))))
4395 (build-system haskell-build-system)
212ae095
AV
4396 (home-page "http://rwd.rdockins.name/edison/home/")
4397 (synopsis "Library of efficient, purely-functional data structures (API)")
4398 (description
4399 "Edison is a library of purely functional data structures written by
4400Chris Okasaki. It is named after Thomas Alva Edison and for the mnemonic
4401value EDiSon (Efficient Data Structures). Edison provides several families of
4402abstractions, each with multiple implementations. The main abstractions
4403provided by Edison are: Sequences such as stacks, queues, and dequeues;
4404Collections such as sets, bags and heaps; and Associative Collections such as
4405finite maps and priority queues where the priority and element are distinct.")
4406 (license license:expat)))
4407
1eced2a7
AV
4408(define-public ghc-edisoncore
4409 (package
4410 (name "ghc-edisoncore")
38922e49 4411 (version "1.3.2.1")
1eced2a7
AV
4412 (source
4413 (origin
4414 (method url-fetch)
4415 (uri (string-append "https://hackage.haskell.org/package/EdisonCore"
4416 "/EdisonCore-" version ".tar.gz"))
4417 (sha256
38922e49 4418 (base32 "0fgj5iwiv3v2gdgx7kjcr15dcs4x1kvmjspp3p99wyhh0x6h3ikk"))))
1eced2a7
AV
4419 (build-system haskell-build-system)
4420 (inputs
f54f0475 4421 `(("ghc-quickcheck" ,ghc-quickcheck)
1eced2a7
AV
4422 ("ghc-edisonapi" ,ghc-edisonapi)))
4423 (home-page "http://rwd.rdockins.name/edison/home/")
e695d79d 4424 (synopsis "Library of efficient, purely-functional data structures")
1eced2a7
AV
4425 (description
4426 "This package provides the core Edison data structure implementations,
4427including multiple sequence, set, bag, and finite map concrete implementations
4428with various performance characteristics.")
4429 (license license:expat)))
4430
899916b5
PW
4431(define-public ghc-mmorph
4432 (package
4433 (name "ghc-mmorph")
8b5d1142 4434 (version "1.1.2")
899916b5
PW
4435 (source
4436 (origin
4437 (method url-fetch)
4438 (uri (string-append
612fddec 4439 "https://hackage.haskell.org/package/mmorph/mmorph-"
899916b5
PW
4440 version
4441 ".tar.gz"))
4442 (sha256
4443 (base32
8b5d1142 4444 "1gjz1ib968lqybma7my1n19qq6cdj6a7nskrlnwy4jy9jrwzs2n9"))))
899916b5 4445 (build-system haskell-build-system)
aebb8db2 4446 (inputs
f54f0475 4447 `(("ghc-transformers-compat" ,ghc-transformers-compat)))
aebb8db2 4448 (home-page "https://hackage.haskell.org/package/mmorph")
899916b5
PW
4449 (synopsis "Monad morphisms")
4450 (description
4451 "This library provides monad morphism utilities, most commonly used for
4452manipulating monad transformer stacks.")
3ac73271 4453 (license license:bsd-3)))
899916b5 4454
a39e6fae
TS
4455(define-public ghc-ifelse
4456 (package
4457 (name "ghc-ifelse")
4458 (version "0.85")
4459 (source
4460 (origin
4461 (method url-fetch)
4462 (uri (string-append "https://hackage.haskell.org/package/"
4463 "IfElse/IfElse-" version ".tar.gz"))
4464 (sha256
4465 (base32
4466 "1kfx1bwfjczj93a8yqz1n8snqiq5655qgzwv1lrycry8wb1vzlwa"))))
4467 (build-system haskell-build-system)
a39e6fae
TS
4468 (home-page "http://hackage.haskell.org/package/IfElse")
4469 (synopsis "Monadic control flow with anaphoric variants")
4470 (description "This library provides functions for control flow inside of
4471monads with anaphoric variants on @code{if} and @code{when} and a C-like
4472@code{switch} function.")
4473 (license license:bsd-3)))
4474
85160205
PW
4475(define-public ghc-monad-control
4476 (package
4477 (name "ghc-monad-control")
d9c620ba 4478 (version "1.0.2.3")
85160205
PW
4479 (source
4480 (origin
4481 (method url-fetch)
4482 (uri (string-append
612fddec 4483 "https://hackage.haskell.org/package/monad-control"
85160205
PW
4484 "/monad-control-" version ".tar.gz"))
4485 (sha256
4486 (base32
d9c620ba 4487 "1c92833gr6cadidjdp8mlznkpp8lyxl0w3y7d19y8yi3klc3843c"))))
85160205 4488 (build-system haskell-build-system)
2d47cee2 4489 (inputs
85160205
PW
4490 `(("ghc-stm" ,ghc-stm)
4491 ("ghc-transformers-base" ,ghc-transformers-base)
4492 ("ghc-transformers-compat" ,ghc-transformers-compat)))
4493 (home-page "https://github.com/basvandijk/monad-control")
4494 (synopsis "Monad transformers to lift control operations like exception
4495catching")
4496 (description "This package defines the type class @code{MonadBaseControl},
4497a subset of @code{MonadBase} into which generic control operations such as
4498@code{catch} can be lifted from @code{IO} or any other base monad.")
3ac73271 4499 (license license:bsd-3)))
85160205 4500
005a08e3
AV
4501(define-public ghc-fail
4502 (package
4503 (name "ghc-fail")
4504 (version "4.9.0.0")
4505 (source
4506 (origin
4507 (method url-fetch)
4508 (uri (string-append "https://hackage.haskell.org/package/fail/fail-"
4509 version ".tar.gz"))
4510 (sha256
4511 (base32 "18nlj6xvnggy61gwbyrpmvbdkq928wv0wx2zcsljb52kbhddnp3d"))))
4512 (build-system haskell-build-system)
57184328 4513 (arguments `(#:haddock? #f)) ; Package contains no documentation.
005a08e3
AV
4514 (home-page "https://prime.haskell.org/wiki/Libraries/Proposals/MonadFail")
4515 (synopsis "Forward-compatible MonadFail class")
4516 (description
4517 "This package contains the @code{Control.Monad.Fail} module providing the
4518@uref{https://prime.haskell.org/wiki/Libraries/Proposals/MonadFail, MonadFail}
4519class that became available in
4520@uref{https://hackage.haskell.org/package/base-4.9.0.0, base-4.9.0.0} for
4521older @code{base} package versions. This package turns into an empty package
4522when used with GHC versions which already provide the
4523@code{Control.Monad.Fail} module.")
4524 (license license:bsd-3)))
4525
298af2a8
AV
4526(define-public ghc-monadplus
4527 (package
4528 (name "ghc-monadplus")
4529 (version "1.4.2")
4530 (source
4531 (origin
4532 (method url-fetch)
4533 (uri (string-append "https://hackage.haskell.org/package/monadplus"
4534 "/monadplus-" version ".tar.gz"))
4535 (sha256
4536 (base32 "15b5320wdpmdp5slpphnc1x4rhjch3igw245dp2jxbqyvchdavin"))))
4537 (build-system haskell-build-system)
4538 (home-page "https://hackage.haskell.org/package/monadplus")
4539 (synopsis "Filtering and folding over arbitrary MonadPlus instances")
4540 (description
4541 "This package generalizes many common stream operations such as
4542@code{filter}, @code{catMaybes} etc, enabling filtering and folding over
4543arbitrary @code{MonadPlus} instances.")
4544 (license license:bsd-3)))
4545
27e7c8b6
PW
4546(define-public ghc-byteorder
4547 (package
4548 (name "ghc-byteorder")
4549 (version "1.0.4")
4550 (source
4551 (origin
4552 (method url-fetch)
4553 (uri (string-append
612fddec 4554 "https://hackage.haskell.org/package/byteorder/byteorder-"
27e7c8b6
PW
4555 version
4556 ".tar.gz"))
4557 (sha256
4558 (base32
4559 "06995paxbxk8lldvarqpb3ygcjbg4v8dk4scib1rjzwlhssvn85x"))))
4560 (build-system haskell-build-system)
4561 (home-page
4562 "http://community.haskell.org/~aslatter/code/byteorder")
4563 (synopsis
4564 "Exposes the native endianness of the system")
4565 (description
4566 "This package is for working with the native byte-ordering of the
4567system.")
3ac73271 4568 (license license:bsd-3)))
27e7c8b6 4569
71470edd
PW
4570(define-public ghc-base-compat
4571 (package
4572 (name "ghc-base-compat")
88c33717 4573 (version "0.10.4")
71470edd
PW
4574 (source
4575 (origin
4576 (method url-fetch)
4577 (uri (string-append
612fddec 4578 "https://hackage.haskell.org/package/base-compat/base-compat-"
71470edd
PW
4579 version
4580 ".tar.gz"))
4581 (sha256
4582 (base32
88c33717 4583 "0ksp990gxs731mq19rzbxrbs43nazfljjc8krlx5bjqblw3kfs8d"))))
71470edd 4584 (build-system haskell-build-system)
2d47cee2 4585 (native-inputs
71470edd 4586 `(("ghc-quickcheck" ,ghc-quickcheck)
2d47cee2
RW
4587 ("ghc-hspec" ,ghc-hspec)
4588 ("hspec-discover" ,hspec-discover)))
71470edd
PW
4589 (home-page "https://hackage.haskell.org/package/base-compat")
4590 (synopsis "Haskell compiler compatibility library")
4591 (description "This library provides functions available in later versions
4592of base to a wider range of compilers, without requiring the use of CPP
4593pragmas in your code.")
3ac73271 4594 (license license:bsd-3)))
71470edd 4595
94e1dc7a
PW
4596(define-public ghc-blaze-builder
4597 (package
4598 (name "ghc-blaze-builder")
2a7c296a 4599 (version "0.4.1.0")
94e1dc7a
PW
4600 (source
4601 (origin
4602 (method url-fetch)
4603 (uri (string-append
612fddec 4604 "https://hackage.haskell.org/package/blaze-builder/blaze-builder-"
94e1dc7a
PW
4605 version
4606 ".tar.gz"))
4607 (sha256
4608 (base32
2a7c296a 4609 "05681dih2d8s96an945wkbwl05w8ddbcfx8n3r3ck79ydyb8pz4i"))))
94e1dc7a
PW
4610 (build-system haskell-build-system)
4611 (arguments `(#:tests? #f)) ; FIXME: Missing test libraries.
2d47cee2 4612 (inputs
94e1dc7a
PW
4613 `(("ghc-text" ,ghc-text)
4614 ("ghc-utf8-string" ,ghc-utf8-string)))
612fddec 4615 (home-page "https://github.com/lpsmith/blaze-builder")
94e1dc7a
PW
4616 (synopsis "Efficient buffered output")
4617 (description "This library provides an implementation of the older
4618@code{blaze-builder} interface in terms of the new builder that shipped with
4619@code{bytestring-0.10.4.0}. This implementation is mostly intended as a
4620bridge to the new builder, so that code that uses the old interface can
4621interoperate with code that uses the new implementation.")
3ac73271 4622 (license license:bsd-3)))
94e1dc7a 4623
a311f5d0
PW
4624(define-public ghc-blaze-markup
4625 (package
4626 (name "ghc-blaze-markup")
c70f00e2 4627 (version "0.8.2.1")
a311f5d0
PW
4628 (source
4629 (origin
4630 (method url-fetch)
969d0c64
RW
4631 (uri (string-append "https://hackage.haskell.org/package/"
4632 "blaze-markup/blaze-markup-"
4633 version ".tar.gz"))
a311f5d0
PW
4634 (sha256
4635 (base32
c70f00e2 4636 "0ih1c3qahkdgzbqihdhny5s313l2m66fbb88w8jbx7yz56y7rawh"))))
a311f5d0 4637 (build-system haskell-build-system)
c70f00e2
TS
4638 (arguments
4639 `(#:phases
4640 (modify-phases %standard-phases
4641 (add-before 'configure 'update-constraints
4642 (lambda _
4643 (substitute* "blaze-markup.cabal"
4644 (("tasty >= 1\\.0 && < 1\\.1")
4645 "tasty >= 1.0 && < 1.2")))))))
2d47cee2 4646 (inputs
a311f5d0
PW
4647 `(("ghc-blaze-builder" ,ghc-blaze-builder)
4648 ("ghc-text" ,ghc-text)))
969d0c64
RW
4649 (native-inputs
4650 `(("ghc-hunit" ,ghc-hunit)
4651 ("ghc-quickcheck" ,ghc-quickcheck)
4652 ("ghc-tasty" ,ghc-tasty)
4653 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
4654 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
98b90194 4655 (home-page "https://jaspervdj.be/blaze")
a311f5d0
PW
4656 (synopsis "Fast markup combinator library for Haskell")
4657 (description "This library provides core modules of a markup combinator
4658library for Haskell.")
3ac73271 4659 (license license:bsd-3)))
a311f5d0 4660
9525e25f
PW
4661(define-public ghc-easy-file
4662 (package
4663 (name "ghc-easy-file")
7d887a2c 4664 (version "0.2.2")
9525e25f
PW
4665 (source
4666 (origin
4667 (method url-fetch)
4668 (uri (string-append
612fddec 4669 "https://hackage.haskell.org/package/easy-file/easy-file-"
9525e25f
PW
4670 version
4671 ".tar.gz"))
4672 (sha256
4673 (base32
7d887a2c 4674 "0zmlcz723051qpn8l8vi51c5rx1blwrw4094jcshkmj8p9r2xxaj"))))
9525e25f
PW
4675 (build-system haskell-build-system)
4676 (home-page
612fddec 4677 "https://github.com/kazu-yamamoto/easy-file")
9525e25f
PW
4678 (synopsis "File handling library for Haskell")
4679 (description "This library provides file handling utilities for Haskell.")
3ac73271 4680 (license license:bsd-3)))
9525e25f 4681
e2fcaff2
PW
4682(define-public ghc-async
4683 (package
4684 (name "ghc-async")
b925e1f5 4685 (version "2.2.1")
e2fcaff2
PW
4686 (source
4687 (origin
4688 (method url-fetch)
4689 (uri (string-append
612fddec 4690 "https://hackage.haskell.org/package/async/async-"
e2fcaff2
PW
4691 version
4692 ".tar.gz"))
4693 (sha256
4694 (base32
b925e1f5 4695 "09whscli1q5z7lzyq9rfk0bq1ydplh6pjmc6qv0x668k5818c2wg"))))
e2fcaff2 4696 (build-system haskell-build-system)
e1c1b71c 4697 (inputs
2d47cee2 4698 `(("ghc-stm" ,ghc-stm)
b925e1f5 4699 ("ghc-hashable" ,ghc-hashable)
2d47cee2 4700 ("ghc-hunit" ,ghc-hunit)
e1c1b71c
EB
4701 ("ghc-test-framework" ,ghc-test-framework)
4702 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)))
e2fcaff2
PW
4703 (home-page "https://github.com/simonmar/async")
4704 (synopsis "Library to run IO operations asynchronously")
4705 (description "Async provides a library to run IO operations
554093b7 4706asynchronously, and wait for their results. It is a higher-level interface
e2fcaff2
PW
4707over threads in Haskell, in which @code{Async a} is a concurrent thread that
4708will eventually deliver a value of type @code{a}.")
3ac73271 4709 (license license:bsd-3)))
e2fcaff2 4710
49465144
PW
4711(define-public ghc-fingertree
4712 (package
4713 (name "ghc-fingertree")
9c072f82 4714 (version "0.1.4.1")
49465144
PW
4715 (source
4716 (origin
4717 (method url-fetch)
4718 (uri (string-append
612fddec 4719 "https://hackage.haskell.org/package/fingertree/fingertree-"
35deff72 4720 version ".tar.gz"))
49465144
PW
4721 (sha256
4722 (base32
9c072f82 4723 "192fyzv0pn1437wdpqg1l80rswkk4rw3w61r4bq7dhv354bdqy4p"))))
49465144 4724 (build-system haskell-build-system)
ffe8c06e
TGR
4725 (native-inputs
4726 `(("ghc-hunit" ,ghc-hunit)
4727 ("ghc-quickcheck" ,ghc-quickcheck)
4728 ("ghc-test-framework" ,ghc-test-framework)
4729 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
4730 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
612fddec 4731 (home-page "https://hackage.haskell.org/package/fingertree")
49465144
PW
4732 (synopsis "Generic finger-tree structure")
4733 (description "This library provides finger trees, a general sequence
4734representation with arbitrary annotations, for use as a base for
4735implementations of various collection types. It includes examples, as
4736described in section 4 of Ralf Hinze and Ross Paterson, \"Finger trees: a
4737simple general-purpose data structure\".")
3ac73271 4738 (license license:bsd-3)))
49465144 4739
918f690a
PW
4740(define-public ghc-optparse-applicative
4741 (package
4742 (name "ghc-optparse-applicative")
3c300542 4743 (version "0.14.2.0")
918f690a
PW
4744 (source
4745 (origin
4746 (method url-fetch)
4747 (uri (string-append
612fddec 4748 "https://hackage.haskell.org/package/optparse-applicative"
918f690a
PW
4749 "/optparse-applicative-" version ".tar.gz"))
4750 (sha256
4751 (base32
3c300542
AI
4752 "0c3z1mvynlyv1garjbdmdd3npm40dabgm75js4r07cf766c1wd71"))))
4753 (build-system haskell-build-system)
2d47cee2 4754 (inputs
918f690a
PW
4755 `(("ghc-transformers-compat" ,ghc-transformers-compat)
4756 ("ghc-ansi-wl-pprint" ,ghc-ansi-wl-pprint)))
7c86efe7
RW
4757 (native-inputs
4758 `(("ghc-quickcheck" ,ghc-quickcheck)))
918f690a
PW
4759 (home-page "https://github.com/pcapriotti/optparse-applicative")
4760 (synopsis "Utilities and combinators for parsing command line options")
4761 (description "This package provides utilities and combinators for parsing
4762command line options in Haskell.")
3ac73271 4763 (license license:bsd-3)))
918f690a 4764
09fb622c
PW
4765(define-public ghc-base-orphans
4766 (package
4767 (name "ghc-base-orphans")
19533b32 4768 (version "0.7")
09fb622c
PW
4769 (source
4770 (origin
4771 (method url-fetch)
4772 (uri (string-append
612fddec 4773 "https://hackage.haskell.org/package/base-orphans/base-orphans-"
09fb622c
PW
4774 version
4775 ".tar.gz"))
4776 (sha256
4777 (base32
19533b32 4778 "057f9npnqk71ccfh95djfkpd54dzazphj06grwxa3fyhwcwxrb8a"))))
09fb622c 4779 (build-system haskell-build-system)
2d47cee2 4780 (native-inputs
09fb622c 4781 `(("ghc-quickcheck" ,ghc-quickcheck)
2d47cee2
RW
4782 ("ghc-hspec" ,ghc-hspec)
4783 ("hspec-discover" ,hspec-discover)))
09fb622c
PW
4784 (home-page "https://hackage.haskell.org/package/base-orphans")
4785 (synopsis "Orphan instances for backwards compatibility")
4786 (description "This package defines orphan instances that mimic instances
4787available in later versions of base to a wider (older) range of compilers.")
3ac73271 4788 (license license:bsd-3)))
09fb622c 4789
bc0fb230
PW
4790(define-public ghc-auto-update
4791 (package
4792 (name "ghc-auto-update")
a8e5513c 4793 (version "0.1.4")
bc0fb230
PW
4794 (source
4795 (origin
4796 (method url-fetch)
4797 (uri (string-append
612fddec 4798 "https://hackage.haskell.org/package/auto-update/auto-update-"
bc0fb230
PW
4799 version
4800 ".tar.gz"))
4801 (sha256
4802 (base32
a8e5513c 4803 "09dlh2alsx2mw5kvj931yhbj0aw7jmly2cm9xbscm2sf098w35jy"))))
bc0fb230
PW
4804 (build-system haskell-build-system)
4805 (home-page "https://github.com/yesodweb/wai")
4806 (synopsis "Efficiently run periodic, on-demand actions")
4807 (description "This library provides mechanisms to efficiently run
4808periodic, on-demand actions in Haskell.")
3ac73271 4809 (license license:expat)))
bc0fb230 4810
7f0d5857
PW
4811(define-public ghc-tagged
4812 (package
4813 (name "ghc-tagged")
93303a3a 4814 (version "0.8.5")
7f0d5857
PW
4815 (source
4816 (origin
4817 (method url-fetch)
4818 (uri (string-append
612fddec 4819 "https://hackage.haskell.org/package/tagged/tagged-"
7f0d5857
PW
4820 version
4821 ".tar.gz"))
4822 (sha256
4823 (base32
93303a3a 4824 "16cdzh0bw16nvjnyyy5j9s60malhz4nnazw96vxb0xzdap4m2z74"))))
7f0d5857 4825 (build-system haskell-build-system)
70ee3228
TS
4826 (arguments
4827 `(#:cabal-revision
4828 ("2" "0r2knfcq0b4s652vlvlnfwxlc2mkc2ra9kl8bp4zdn1awmfy0ia5")))
93303a3a
RW
4829 (inputs
4830 `(("ghc-transformers-compat" ,ghc-transformers-compat)))
7f0d5857
PW
4831 (home-page "https://hackage.haskell.org/package/tagged")
4832 (synopsis "Haskell phantom types to avoid passing dummy arguments")
4833 (description "This library provides phantom types for Haskell 98, to avoid
4834having to unsafely pass dummy arguments.")
3ac73271 4835 (license license:bsd-3)))
7f0d5857 4836
a24ec6f2
PW
4837(define-public ghc-unbounded-delays
4838 (package
4839 (name "ghc-unbounded-delays")
58c102e0 4840 (version "0.1.1.0")
a24ec6f2
PW
4841 (source
4842 (origin
4843 (method url-fetch)
4844 (uri (string-append
612fddec 4845 "https://hackage.haskell.org/package/unbounded-delays/unbounded-delays-"
a24ec6f2
PW
4846 version
4847 ".tar.gz"))
4848 (sha256
4849 (base32
58c102e0 4850 "1ir9fghbrc214c97bwafk5ck6cacxz1pdnq4i18p604d1b8zg9wa"))))
a24ec6f2
PW
4851 (build-system haskell-build-system)
4852 (home-page "https://github.com/basvandijk/unbounded-delays")
4853 (synopsis "Unbounded thread delays and timeouts")
4854 (description "The @code{threadDelay} and @code{timeout} functions from the
4855Haskell base library use the bounded @code{Int} type for specifying the delay
4856or timeout period. This package provides alternative functions which use the
4857unbounded @code{Integer} type.")
3ac73271 4858 (license license:bsd-3)))
a24ec6f2 4859
f4e5c04e
PW
4860(define-public ghc-clock
4861 (package
4862 (name "ghc-clock")
615abb95 4863 (version "0.7.2")
f4e5c04e
PW
4864 (source
4865 (origin
4866 (method url-fetch)
4867 (uri (string-append
612fddec 4868 "https://hackage.haskell.org/package/"
f4e5c04e
PW
4869 "clock/"
4870 "clock-" version ".tar.gz"))
4871 (sha256
615abb95 4872 (base32 "07v91s20halsqjmziqb1sqjp2sjpckl9by7y28aaklwqi2bh2rl8"))))
f4e5c04e
PW
4873 (build-system haskell-build-system)
4874 (inputs
4875 `(("ghc-tasty" ,ghc-tasty)
4876 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
4877 (home-page "https://hackage.haskell.org/package/clock")
3f2ce1dc
PW
4878 (synopsis "High-resolution clock for Haskell")
4879 (description "A package for convenient access to high-resolution clock and
4880timer functions of different operating systems via a unified API.")
3ac73271 4881 (license license:bsd-3)))
3f2ce1dc 4882
6ffc5be7
PW
4883(define-public ghc-charset
4884 (package
4885 (name "ghc-charset")
4886 (version "0.3.7.1")
4887 (source
4888 (origin
4889 (method url-fetch)
4890 (uri (string-append
612fddec 4891 "https://hackage.haskell.org/package/charset/charset-"
6ffc5be7
PW
4892 version
4893 ".tar.gz"))
4894 (sha256
4895 (base32
4896 "1gn0m96qpjww8hpp2g1as5yy0wcwy4iq73h3kz6g0yxxhcl5sh9x"))))
4897 (build-system haskell-build-system)
6ffc5be7 4898 (inputs
2d47cee2
RW
4899 `(("ghc-semigroups" ,ghc-semigroups)
4900 ("ghc-unordered-containers" ,ghc-unordered-containers)))
612fddec 4901 (home-page "https://github.com/ekmett/charset")
6ffc5be7
PW
4902 (synopsis "Fast unicode character sets for Haskell")
4903 (description "This package provides fast unicode character sets for
4904Haskell, based on complemented PATRICIA tries.")
3ac73271 4905 (license license:bsd-3)))
6ffc5be7 4906
d76bf618
PW
4907(define-public ghc-bytestring-builder
4908 (package
4909 (name "ghc-bytestring-builder")
934dc8d2 4910 (version "0.10.8.1.0")
d76bf618
PW
4911 (source
4912 (origin
4913 (method url-fetch)
4914 (uri (string-append
612fddec 4915 "https://hackage.haskell.org/package/bytestring-builder"
d76bf618
PW
4916 "/bytestring-builder-" version ".tar.gz"))
4917 (sha256
4918 (base32
934dc8d2 4919 "1hnvjac28y44yn78c9vdp1zvrknvlw98ky3g4n5vivr16rvh8x3d"))))
d76bf618
PW
4920 (build-system haskell-build-system)
4921 (arguments `(#:haddock? #f)) ; Package contains no documentation.
612fddec 4922 (home-page "https://hackage.haskell.org/package/bytestring-builder")
d76bf618
PW
4923 (synopsis "The new bytestring builder, packaged outside of GHC")
4924 (description "This package provides the bytestring builder that is
4925debuting in bytestring-0.10.4.0, which should be shipping with GHC 7.8.
4926Compatibility package for older packages.")
3ac73271 4927 (license license:bsd-3)))
d76bf618 4928
878535bd
PW
4929(define-public ghc-nats
4930 (package
4931 (name "ghc-nats")
d62f6951 4932 (version "1.1.2")
878535bd
PW
4933 (source
4934 (origin
4935 (method url-fetch)
4936 (uri (string-append
612fddec 4937 "https://hackage.haskell.org/package/nats/nats-"
878535bd
PW
4938 version
4939 ".tar.gz"))
4940 (sha256
4941 (base32
d62f6951 4942 "1v40drmhixck3pz3mdfghamh73l4rp71mzcviipv1y8jhrfxilmr"))))
878535bd
PW
4943 (build-system haskell-build-system)
4944 (arguments `(#:haddock? #f))
4945 (inputs
4946 `(("ghc-hashable" ,ghc-hashable)))
4947 (home-page "https://hackage.haskell.org/package/nats")
4948 (synopsis "Natural numbers")
4949 (description "This library provides the natural numbers for Haskell.")
3ac73271 4950 (license license:bsd-3)))
878535bd 4951
bc8bda50
TS
4952(define-public ghc-nats-bootstrap
4953 (package
4954 (inherit ghc-nats)
4955 (name "ghc-nats-bootstrap")
4956 (inputs
4957 `(("ghc-hashable" ,ghc-hashable-bootstrap)))
4958 (properties '((hidden? #t)))))
4959
03f6074b
PW
4960(define-public ghc-void
4961 (package
4962 (name "ghc-void")
e99625b5 4963 (version "0.7.2")
03f6074b
PW
4964 (source
4965 (origin
4966 (method url-fetch)
4967 (uri (string-append
612fddec 4968 "https://hackage.haskell.org/package/void/void-"
03f6074b
PW
4969 version
4970 ".tar.gz"))
4971 (sha256
4972 (base32
e99625b5 4973 "0aygw0yb1h3yhmfl3bkwh5d3h0l4mmsxz7j53vdm6jryl1kgxzyk"))))
03f6074b 4974 (build-system haskell-build-system)
03f6074b 4975 (inputs
2d47cee2
RW
4976 `(("ghc-semigroups" ,ghc-semigroups)
4977 ("ghc-hashable" ,ghc-hashable)))
612fddec 4978 (home-page "https://github.com/ekmett/void")
03f6074b
PW
4979 (synopsis
4980 "Logically uninhabited data type")
4981 (description
4982 "A Haskell 98 logically uninhabited data type, used to indicate that a
4983given term should not exist.")
3ac73271 4984 (license license:bsd-3)))
03f6074b 4985
8e06e15b
TS
4986(define-public ghc-invariant
4987 (package
4988 (name "ghc-invariant")
4989 (version "0.5.1")
4990 (source
4991 (origin
4992 (method url-fetch)
4993 (uri (string-append
4994 "https://hackage.haskell.org/package/invariant/invariant-"
4995 version ".tar.gz"))
4996 (sha256
4997 (base32
4998 "0aqj7z55632qdg45074kgn9qfdxzb0a2f8lgjzr0l0i4mm2rr37b"))))
4999 (build-system haskell-build-system)
5000 (inputs
5001 `(("ghc-bifunctors" ,ghc-bifunctors)
5002 ("ghc-comonad" ,ghc-comonad)
5003 ("ghc-contravariant" ,ghc-contravariant)
5004 ("ghc-profunctors" ,ghc-profunctors)
5005 ("ghc-semigroups" ,ghc-semigroups)
5006 ("ghc-statevar" ,ghc-statevar)
5007 ("ghc-stm" ,ghc-stm)
5008 ("ghc-tagged" ,ghc-tagged)
5009 ("ghc-th-abstraction" ,ghc-th-abstraction)
5010 ("ghc-transformers-compat" ,ghc-transformers-compat)
5011 ("ghc-unordered-containers" ,ghc-unordered-containers)))
5012 (native-inputs
5013 `(("ghc-hspec" ,ghc-hspec)
5014 ("ghc-quickcheck" ,ghc-quickcheck)
5015 ("hspec-discover" ,hspec-discover)))
5016 (home-page "https://github.com/nfrisby/invariant-functors")
5017 (synopsis "Haskell98 invariant functors")
5018 (description "Haskell98 invariant functors (also known as exponential
5019functors). For more information, see Edward Kmett's article
5020@uref{http://comonad.com/reader/2008/rotten-bananas/, Rotten Bananas}.")
5021 (license license:bsd-2)))
5022
5125f63f
PW
5023(define-public ghc-kan-extensions
5024 (package
5025 (name "ghc-kan-extensions")
8b1573b1 5026 (version "5.2")
5125f63f
PW
5027 (source
5028 (origin
5029 (method url-fetch)
5030 (uri (string-append
612fddec 5031 "https://hackage.haskell.org/package/kan-extensions/kan-extensions-"
5125f63f
PW
5032 version
5033 ".tar.gz"))
5034 (sha256
5035 (base32
8b1573b1 5036 "1lyvyiwwh962j2nnnsqzlvp5zq6z8p3spvhmji99cjvldxc7wwkb"))))
5125f63f 5037 (build-system haskell-build-system)
5125f63f 5038 (inputs
2d47cee2
RW
5039 `(("ghc-adjunctions" ,ghc-adjunctions)
5040 ("ghc-comonad" ,ghc-comonad)
5125f63f
PW
5041 ("ghc-contravariant" ,ghc-contravariant)
5042 ("ghc-distributive" ,ghc-distributive)
5043 ("ghc-free" ,ghc-free)
8b1573b1 5044 ("ghc-invariant" ,ghc-invariant)
5125f63f 5045 ("ghc-semigroupoids" ,ghc-semigroupoids)
8b1573b1
TS
5046 ("ghc-tagged" ,ghc-tagged)
5047 ("ghc-transformers-compat" ,ghc-transformers-compat)))
612fddec 5048 (home-page "https://github.com/ekmett/kan-extensions/")
5125f63f
PW
5049 (synopsis "Kan extensions library")
5050 (description "This library provides Kan extensions, Kan lifts, various
5051forms of the Yoneda lemma, and (co)density (co)monads for Haskell.")
3ac73271 5052 (license license:bsd-3)))
5125f63f 5053
32ddba78
RW
5054(define-public ghc-call-stack
5055 (package
5056 (name "ghc-call-stack")
5057 (version "0.1.0")
5058 (source
5059 (origin
5060 (method url-fetch)
5061 (uri (string-append "https://hackage.haskell.org/package/"
5062 "call-stack/call-stack-"
5063 version ".tar.gz"))
5064 (sha256
5065 (base32
5066 "1qmihf5jafmc79sk52l6gpx75f5bnla2lp62kh3p34x3j84mwpzj"))))
5067 (build-system haskell-build-system)
5068 (inputs `(("ghc-nanospec" ,ghc-nanospec)))
5069 (home-page "https://github.com/sol/call-stack#readme")
5070 (synopsis "Use GHC call-stacks in a backward compatible way")
5071 (description "This package provides a compatibility layer for using GHC
5072call stacks with different versions of the compiler.")
5073 (license license:expat)))
5074
e42e9024
RW
5075;; This is used as an input to ghc-hunit. We cannot use ghc-call-stack there,
5076;; because it depends on ghc-nanospec, which depends on ghc-hunit.
5077(define-public ghc-call-stack-boot
bd208a13
CB
5078 (hidden-package
5079 (package
5080 (inherit ghc-call-stack)
5081 (arguments '(#:tests? #f))
5082 (inputs '()))))
e42e9024 5083
f271524a
PW
5084(define-public ghc-statevar
5085 (package
5086 (name "ghc-statevar")
c9fa2a28 5087 (version "1.1.1.1")
f271524a
PW
5088 (source
5089 (origin
5090 (method url-fetch)
5091 (uri (string-append
612fddec 5092 "https://hackage.haskell.org/package/StateVar/StateVar-"
f271524a
PW
5093 version
5094 ".tar.gz"))
5095 (sha256
5096 (base32
c9fa2a28 5097 "08r2iw0gdmfs4f6wraaq19vfmkjdbics3dbhw39y7mdjd98kcr7b"))))
f271524a 5098 (build-system haskell-build-system)
2d47cee2 5099 (inputs
f271524a 5100 `(("ghc-stm" ,ghc-stm)))
612fddec 5101 (home-page "https://hackage.haskell.org/package/StateVar")
f271524a
PW
5102 (synopsis "State variables for Haskell")
5103 (description "This package provides state variables, which are references
5104in the @code{IO} monad, like @code{IORef}s or parts of the OpenGL state.")
3ac73271 5105 (license license:bsd-3)))
f271524a 5106
e1a35c39
PW
5107(define-public ghc-lens
5108 (package
5109 (name "ghc-lens")
b9f67d10 5110 (version "4.16.1")
e1a35c39
PW
5111 (source
5112 (origin
5113 (method url-fetch)
38646a62
RW
5114 (uri (string-append "https://hackage.haskell.org/package/lens/lens-"
5115 version ".tar.gz"))
e1a35c39
PW
5116 (sha256
5117 (base32
b9f67d10 5118 "1im4drhbydbawd6i0jsrzpqihnmx4ywpkg7yg94ddwsw3mxwkgpm"))))
e1a35c39 5119 (build-system haskell-build-system)
b9f67d10
TS
5120 (arguments
5121 `(#:cabal-revision
5122 ("2" "11h83lj5mba4grhz1qx3irz10ysm9c3k7k6i6xv2cr60q8xin3ri")))
2d47cee2 5123 (inputs
e1a35c39
PW
5124 `(("ghc-base-orphans" ,ghc-base-orphans)
5125 ("ghc-bifunctors" ,ghc-bifunctors)
5126 ("ghc-distributive" ,ghc-distributive)
5127 ("ghc-exceptions" ,ghc-exceptions)
5128 ("ghc-free" ,ghc-free)
5129 ("ghc-kan-extensions" ,ghc-kan-extensions)
5130 ("ghc-parallel" ,ghc-parallel)
5131 ("ghc-reflection" ,ghc-reflection)
5132 ("ghc-semigroupoids" ,ghc-semigroupoids)
2d47cee2 5133 ("ghc-vector" ,ghc-vector)
38646a62 5134 ("ghc-call-stack" ,ghc-call-stack)
2d47cee2 5135 ("ghc-comonad" ,ghc-comonad)
e1a35c39
PW
5136 ("ghc-contravariant" ,ghc-contravariant)
5137 ("ghc-hashable" ,ghc-hashable)
e1a35c39
PW
5138 ("ghc-profunctors" ,ghc-profunctors)
5139 ("ghc-semigroups" ,ghc-semigroups)
5140 ("ghc-tagged" ,ghc-tagged)
5141 ("ghc-text" ,ghc-text)
5142 ("ghc-transformers-compat" ,ghc-transformers-compat)
5143 ("ghc-unordered-containers" ,ghc-unordered-containers)
5144 ("ghc-void" ,ghc-void)
5145 ("ghc-generic-deriving" ,ghc-generic-deriving)
5146 ("ghc-nats" ,ghc-nats)
5147 ("ghc-simple-reflect" ,ghc-simple-reflect)
5148 ("hlint" ,hlint)))
38646a62
RW
5149 (native-inputs
5150 `(("cabal-doctest" ,cabal-doctest)
b9f67d10 5151 ("ghc-doctest" ,ghc-doctest)
38646a62
RW
5152 ("ghc-hunit" ,ghc-hunit)
5153 ("ghc-test-framework" ,ghc-test-framework)
5154 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
5155 ("ghc-test-framework-th" ,ghc-test-framework-th)
5156 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)
5157 ("ghc-quickcheck" ,ghc-quickcheck)))
612fddec 5158 (home-page "https://github.com/ekmett/lens/")
e1a35c39
PW
5159 (synopsis "Lenses, Folds and Traversals")
5160 (description "This library provides @code{Control.Lens}. The combinators
5161in @code{Control.Lens} provide a highly generic toolbox for composing families
5162of getters, folds, isomorphisms, traversals, setters and lenses and their
5163indexed variants.")
3ac73271 5164 (license license:bsd-3)))
e1a35c39 5165
d7e67cf1
PW
5166(define-public ghc-cheapskate
5167 (package
5168 (name "ghc-cheapskate")
e1358124 5169 (version "0.1.1")
d7e67cf1
PW
5170 (source
5171 (origin
5172 (method url-fetch)
5173 (uri (string-append
612fddec 5174 "https://hackage.haskell.org/package/cheapskate/cheapskate-"
d7e67cf1
PW
5175 version
5176 ".tar.gz"))
5177 (sha256
5178 (base32
e1358124 5179 "1hiqi7h76shjzs2zj0j8g6wnq2hbiq1hmfafdazr97fba2zl2432"))))
d7e67cf1 5180 (build-system haskell-build-system)
d7e67cf1 5181 (inputs
f54f0475 5182 `(("ghc-text" ,ghc-text)
751de3d6 5183 ("ghc-blaze-html" ,ghc-blaze-html)
e1358124 5184 ("ghc-xss-sanitize" ,ghc-xss-sanitize)
2d47cee2 5185 ("ghc-data-default" ,ghc-data-default)
d7e67cf1 5186 ("ghc-syb" ,ghc-syb)
e1358124 5187 ("ghc-uniplate" ,ghc-uniplate)))
612fddec 5188 (home-page "https://github.com/jgm/cheapskate")
d7e67cf1
PW
5189 (synopsis "Experimental markdown processor")
5190 (description "Cheapskate is an experimental Markdown processor in pure
5191Haskell. It aims to process Markdown efficiently and in the most forgiving
5192possible way. It is designed to deal with any input, including garbage, with
4d9cdf3c
TGR
5193linear performance. Output is sanitized by default for protection against
5194cross-site scripting (@dfn{XSS}) attacks.")
3ac73271 5195 (license license:bsd-3)))
d7e67cf1 5196
4f997551
PW
5197(define-public ghc-bifunctors
5198 (package
5199 (name "ghc-bifunctors")
8574e6c7 5200 (version "5.5.3")
4f997551
PW
5201 (source
5202 (origin
5203 (method url-fetch)
5204 (uri (string-append
612fddec 5205 "https://hackage.haskell.org/package/bifunctors/bifunctors-"
4f997551
PW
5206 version
5207 ".tar.gz"))
5208 (sha256
5209 (base32
8574e6c7 5210 "1jn9rxg643xnlhrknmjz88nblcpsr45xwjkwwnn5nxpasa7m4d6l"))))
4f997551
PW
5211 (build-system haskell-build-system)
5212 (inputs
7044882c
RW
5213 `(("ghc-base-orphans" ,ghc-base-orphans)
5214 ("ghc-comonad" ,ghc-comonad)
5215 ("ghc-th-abstraction" ,ghc-th-abstraction)
5216 ("ghc-transformers-compat" ,ghc-transformers-compat)
5217 ("ghc-tagged" ,ghc-tagged)
4f997551 5218 ("ghc-semigroups" ,ghc-semigroups)))
7044882c
RW
5219 (native-inputs
5220 `(("ghc-hspec" ,ghc-hspec)
5221 ("hspec-discover" ,hspec-discover)
5222 ("ghc-quickcheck" ,ghc-quickcheck)))
612fddec 5223 (home-page "https://github.com/ekmett/bifunctors/")
4f997551
PW
5224 (synopsis "Bifunctors for Haskell")
5225 (description "This package provides bifunctors for Haskell.")
3ac73271 5226 (license license:bsd-3)))
4f997551 5227
aee98223
PW
5228(define-public ghc-semigroupoids
5229 (package
5230 (name "ghc-semigroupoids")
07f38c6a 5231 (version "5.2.2")
aee98223
PW
5232 (source
5233 (origin
5234 (method url-fetch)
5235 (uri (string-append
612fddec 5236 "https://hackage.haskell.org/package/semigroupoids/semigroupoids-"
aee98223
PW
5237 version
5238 ".tar.gz"))
5239 (sha256
5240 (base32
07f38c6a 5241 "17i96y4iqj8clcs090lf6k0ij3j16nj14vsfwz0mm9nd6i4gbpp4"))))
aee98223 5242 (build-system haskell-build-system)
07f38c6a
TS
5243 (arguments
5244 `(#:cabal-revision
5245 ("4" "0pqfrxzypjq6z8lgdkzq4vhcyqkpk5326hny0r6snpc3gm78r4ij")))
2d47cee2 5246 (inputs
aee98223
PW
5247 `(("ghc-base-orphans" ,ghc-base-orphans)
5248 ("ghc-transformers-compat" ,ghc-transformers-compat)
5249 ("ghc-bifunctors" ,ghc-bifunctors)
5250 ("ghc-comonad" ,ghc-comonad)
5251 ("ghc-contravariant" ,ghc-contravariant)
2d47cee2 5252 ("ghc-distributive" ,ghc-distributive)
07f38c6a 5253 ("ghc-hashable" ,ghc-hashable)
2d47cee2 5254 ("ghc-semigroups" ,ghc-semigroups)
07f38c6a
TS
5255 ("ghc-tagged" ,ghc-tagged)
5256 ("ghc-unordered-containers" ,ghc-unordered-containers)))
5257 (native-inputs
5258 `(("cabal-doctest" ,cabal-doctest)
5259 ("ghc-doctest" ,ghc-doctest)))
612fddec 5260 (home-page "https://github.com/ekmett/semigroupoids")
aee98223
PW
5261 (synopsis "Semigroupoids operations for Haskell")
5262 (description "This library provides a wide array of (semi)groupoids and
5263operations for working with them. A @code{Semigroupoid} is a @code{Category}
5264without the requirement of identity arrows for every object in the category.
5265A @code{Category} is any @code{Semigroupoid} for which the Yoneda lemma holds.
5266Finally, to work with these weaker structures it is beneficial to have
5267containers that can provide stronger guarantees about their contents, so
5268versions of @code{Traversable} and @code{Foldable} that can be folded with
5269just a @code{Semigroup} are added.")
3ac73271 5270 (license license:bsd-3)))
aee98223 5271
624efe73
PW
5272(define-public ghc-contravariant
5273 (package
5274 (name "ghc-contravariant")
0b0e45d8 5275 (version "1.4.1")
624efe73
PW
5276 (source
5277 (origin
5278 (method url-fetch)
5279 (uri (string-append
612fddec 5280 "https://hackage.haskell.org/package/contravariant/contravariant-"
624efe73
PW
5281 version
5282 ".tar.gz"))
5283 (sha256
5284 (base32
0b0e45d8 5285 "1vfhk8c5cxmmakx7rflap1ipkx5q0j5vnlrcz7yz6y53kxhksgf9"))))
624efe73 5286 (build-system haskell-build-system)
2d47cee2 5287 (inputs
624efe73
PW
5288 `(("ghc-void" ,ghc-void)
5289 ("ghc-transformers-compat" ,ghc-transformers-compat)
2d47cee2
RW
5290 ("ghc-statevar" ,ghc-statevar)
5291 ("ghc-semigroups" ,ghc-semigroups)))
624efe73 5292 (home-page
612fddec 5293 "https://github.com/ekmett/contravariant/")
624efe73
PW
5294 (synopsis "Contravariant functors")
5295 (description "Contravariant functors for Haskell.")
3ac73271 5296 (license license:bsd-3)))
624efe73 5297
946fa8c9
PW
5298(define-public ghc-semigroups
5299 (package
5300 (name "ghc-semigroups")
42c000dc 5301 (version "0.18.5")
946fa8c9
PW
5302 (source
5303 (origin
5304 (method url-fetch)
5305 (uri (string-append
612fddec 5306 "https://hackage.haskell.org/package/semigroups/semigroups-"
946fa8c9
PW
5307 version
5308 ".tar.gz"))
5309 (sha256
5310 (base32
42c000dc 5311 "17g29h62g1k51ghhvzkw72zksjgi6vs6bfipkj81pqw1dsprcamb"))))
946fa8c9 5312 (build-system haskell-build-system)
2d47cee2 5313 (inputs
946fa8c9
PW
5314 `(("ghc-nats" ,ghc-nats)
5315 ("ghc-tagged" ,ghc-tagged)
2d47cee2
RW
5316 ("ghc-unordered-containers" ,ghc-unordered-containers)
5317 ("ghc-text" ,ghc-text)
946fa8c9 5318 ("ghc-hashable" ,ghc-hashable)))
612fddec 5319 (home-page "https://github.com/ekmett/semigroups/")
946fa8c9
PW
5320 (synopsis "Semigroup operations for Haskell")
5321 (description "This package provides semigroups for Haskell. In
5322mathematics, a semigroup is an algebraic structure consisting of a set
5323together with an associative binary operation. A semigroup generalizes a
5324monoid in that there might not exist an identity element. It
5325also (originally) generalized a group (a monoid with all inverses) to a type
5326where every element did not have to have an inverse, thus the name
5327semigroup.")
3ac73271 5328 (license license:bsd-3)))
946fa8c9 5329
bc8bda50
TS
5330(define-public ghc-semigroups-bootstrap
5331 (package
5332 (inherit ghc-semigroups)
5333 (name "ghc-semigroups-bootstrap")
5334 (inputs
5335 `(("ghc-nats" ,ghc-nats-bootstrap)
5336 ("ghc-tagged" ,ghc-tagged)
5337 ("ghc-unordered-containers" ,ghc-unordered-containers-bootstrap)
5338 ("ghc-text" ,ghc-text)
5339 ("ghc-hashable" ,ghc-hashable-bootstrap)))
5340 (properties '(hidden? #t))))
5341
dc2e8ab7
PW
5342(define-public ghc-free
5343 (package
5344 (name "ghc-free")
95573872 5345 (version "5.0.2")
dc2e8ab7
PW
5346 (source
5347 (origin
5348 (method url-fetch)
5349 (uri (string-append
612fddec 5350 "https://hackage.haskell.org/package/free/free-"
dc2e8ab7
PW
5351 version
5352 ".tar.gz"))
5353 (sha256
5354 (base32
95573872 5355 "15m3n9vhz7z3kzv1w3wlfa3x8jp4cbrkwmrcjr7jlx39iqffn1gg"))))
dc2e8ab7 5356 (build-system haskell-build-system)
2d47cee2 5357 (inputs
dc2e8ab7
PW
5358 `(("ghc-prelude-extras" ,ghc-prelude-extras)
5359 ("ghc-profunctors" ,ghc-profunctors)
2d47cee2
RW
5360 ("ghc-exceptions" ,ghc-exceptions)
5361 ("ghc-bifunctors" ,ghc-bifunctors)
dc2e8ab7
PW
5362 ("ghc-comonad" ,ghc-comonad)
5363 ("ghc-distributive" ,ghc-distributive)
dc2e8ab7 5364 ("ghc-semigroupoids" ,ghc-semigroupoids)
95573872
TS
5365 ("ghc-semigroups" ,ghc-semigroups)
5366 ("ghc-transformers-base" ,ghc-transformers-base)
5367 ("ghc-transformers-compat" ,ghc-transformers-compat)))
612fddec 5368 (home-page "https://github.com/ekmett/free/")
dc2e8ab7
PW
5369 (synopsis "Unrestricted monads for Haskell")
5370 (description "This library provides free monads, which are useful for many
5371tree-like structures and domain specific languages. If @code{f} is a
5372@code{Functor} then the free @code{Monad} on @code{f} is the type of trees
5373whose nodes are labeled with the constructors of @code{f}. The word \"free\"
5374is used in the sense of \"unrestricted\" rather than \"zero-cost\": @code{Free
5375f} makes no constraining assumptions beyond those given by @code{f} and the
5376definition of @code{Monad}.")
3ac73271 5377 (license license:bsd-3)))
dc2e8ab7 5378
52db0e13
PW
5379(define-public ghc-adjunctions
5380 (package
5381 (name "ghc-adjunctions")
38563d91 5382 (version "4.4")
52db0e13
PW
5383 (source
5384 (origin
5385 (method url-fetch)
5386 (uri (string-append
612fddec 5387 "https://hackage.haskell.org/package/adjunctions/adjunctions-"
52db0e13
PW
5388 version
5389 ".tar.gz"))
5390 (sha256
5391 (base32
38563d91 5392 "1sbal7cbhm12crfnfhkk322jnzgx7lhw3jzq0p463bipagsjwz2h"))))
52db0e13 5393 (build-system haskell-build-system)
52db0e13 5394 (inputs
2d47cee2
RW
5395 `(("ghc-profunctors" ,ghc-profunctors)
5396 ("ghc-comonad" ,ghc-comonad)
52db0e13
PW
5397 ("ghc-contravariant" ,ghc-contravariant)
5398 ("ghc-distributive" ,ghc-distributive)
5399 ("ghc-free" ,ghc-free)
52db0e13
PW
5400 ("ghc-tagged" ,ghc-tagged)
5401 ("ghc-semigroupoids" ,ghc-semigroupoids)
5402 ("ghc-semigroups" ,ghc-semigroups)
38563d91 5403 ("ghc-transformers-compat" ,ghc-transformers-compat)
52db0e13 5404 ("ghc-void" ,ghc-void)))
38563d91
TS
5405 (native-inputs
5406 `(("ghc-generic-deriving" ,ghc-generic-deriving)
5407 ("ghc-hspec" ,ghc-hspec)
5408 ("hspec-discover" ,hspec-discover)))
612fddec 5409 (home-page "https://github.com/ekmett/adjunctions/")
52db0e13
PW
5410 (synopsis "Adjunctions and representable functors")
5411 (description "This library provides adjunctions and representable functors
5412for Haskell.")
3ac73271 5413 (license license:bsd-3)))
52db0e13 5414
96f23b62
AV
5415(define-public ghc-equivalence
5416 (package
5417 (name "ghc-equivalence")
5418 (version "0.3.2")
5419 (source
5420 (origin
5421 (method url-fetch)
5422 (uri (string-append "https://hackage.haskell.org/package/equivalence"
5423 "/equivalence-" version ".tar.gz"))
5424 (sha256
5425 (base32 "0a85bdyyvjqs5z4kfhhf758210k9gi9dv42ik66a3jl0z7aix8kx"))))
5426 (build-system haskell-build-system)
5427 (inputs
f54f0475 5428 `(("ghc-stmonadtrans" ,ghc-stmonadtrans)
96f23b62
AV
5429 ("ghc-transformers-compat" ,ghc-transformers-compat)
5430 ("ghc-quickcheck" ,ghc-quickcheck)
5431 ("ghc-test-framework" ,ghc-test-framework)
5432 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
5433 (home-page "https://github.com/pa-ba/equivalence")
5434 (synopsis "Maintaining an equivalence relation implemented as union-find")
5435 (description
5436 "This is an implementation of Tarjan's Union-Find algorithm (Robert E.@:
5437Tarjan. \"Efficiency of a Good But Not Linear Set Union Algorithm\",JACM
543822(2), 1975) in order to maintain an equivalence relation. This
5439implementation is a port of the @code{union-find} package using the @code{ST}
5440monad transformer (instead of the IO monad).")
5441 (license license:bsd-3)))
5442
cc553d02
PW
5443(define-public ghc-fast-logger
5444 (package
5445 (name "ghc-fast-logger")
05c08ec9 5446 (version "2.4.11")
cc553d02
PW
5447 (source
5448 (origin
5449 (method url-fetch)
5450 (uri (string-append
612fddec 5451 "https://hackage.haskell.org/package/fast-logger/fast-logger-"
cc553d02
PW
5452 version
5453 ".tar.gz"))
5454 (sha256
5455 (base32
05c08ec9 5456 "1ad2vq4nifdxshqk9yrmghqizhkgybfz134kpr6padglb2mxxrdv"))))
cc553d02 5457 (build-system haskell-build-system)
cc553d02 5458 (inputs
05c08ec9
RW
5459 `(("ghc-auto-update" ,ghc-auto-update)
5460 ("ghc-easy-file" ,ghc-easy-file)
5461 ("ghc-text" ,ghc-text)
5462 ("ghc-unix-time" ,ghc-unix-time)))
2d47cee2
RW
5463 (native-inputs
5464 `(("hspec-discover" ,hspec-discover)
5465 ("ghc-hspec" ,ghc-hspec)))
cc553d02
PW
5466 (home-page "https://hackage.haskell.org/package/fast-logger")
5467 (synopsis "Fast logging system")
5468 (description "This library provides a fast logging system for Haskell.")
3ac73271 5469 (license license:bsd-3)))
cc553d02 5470
cb2119e4
PW
5471(define-public ghc-doctest
5472 (package
5473 (name "ghc-doctest")
f9a97fb5 5474 (version "0.16.0")
cb2119e4
PW
5475 (source
5476 (origin
5477 (method url-fetch)
5478 (uri (string-append
612fddec 5479 "https://hackage.haskell.org/package/doctest/doctest-"
cb2119e4
PW
5480 version
5481 ".tar.gz"))
5482 (sha256
5483 (base32
f9a97fb5 5484 "0hkccch65s3kp0b36h7bqhilnpi4bx8kngncm7ma9vbd3dwacjdv"))))
cb2119e4
PW
5485 (build-system haskell-build-system)
5486 (arguments `(#:tests? #f)) ; FIXME: missing test framework
cb2119e4 5487 (inputs
2d47cee2
RW
5488 `(("ghc-syb" ,ghc-syb)
5489 ("ghc-paths" ,ghc-paths)
5490 ("ghc-base-compat" ,ghc-base-compat)
f9a97fb5 5491 ("ghc-code-page" ,ghc-code-page)
cb2119e4
PW
5492 ("ghc-hunit" ,ghc-hunit)
5493 ("ghc-hspec" ,ghc-hspec)
5494 ("ghc-quickcheck" ,ghc-quickcheck)
5495 ("ghc-stringbuilder" ,ghc-stringbuilder)
5496 ("ghc-silently" ,ghc-silently)
5497 ("ghc-setenv" ,ghc-setenv)))
5498 (home-page
5499 "https://github.com/sol/doctest#readme")
5500 (synopsis "Test interactive Haskell examples")
5501 (description "The doctest program checks examples in source code comments.
5502It is modeled after doctest for Python, see
98b90194 5503@uref{https://docs.python.org/library/doctest.html, the Doctest website}.")
3ac73271 5504 (license license:expat)))
cb2119e4 5505
6f5e312e
PW
5506(define-public ghc-lifted-base
5507 (package
5508 (name "ghc-lifted-base")
4a2100b8 5509 (version "0.2.3.12")
6f5e312e
PW
5510 (source
5511 (origin
5512 (method url-fetch)
5513 (uri (string-append
612fddec 5514 "https://hackage.haskell.org/package/lifted-base/lifted-base-"
6f5e312e
PW
5515 version
5516 ".tar.gz"))
5517 (sha256
5518 (base32
4a2100b8 5519 "1i8p8d3rkdh21bhgjjh32vd7qqjr7jq7p59qds0aw2kmargsjd61"))))
6f5e312e
PW
5520 (build-system haskell-build-system)
5521 (arguments `(#:tests? #f)) ; FIXME: Missing testing libraries.
6f5e312e 5522 (inputs
2d47cee2
RW
5523 `(("ghc-transformers-base" ,ghc-transformers-base)
5524 ("ghc-monad-control" ,ghc-monad-control)
5525 ("ghc-transformers-compat" ,ghc-transformers-compat)
6f5e312e
PW
5526 ("ghc-hunit" ,ghc-hunit)))
5527 (home-page "https://github.com/basvandijk/lifted-base")
5528 (synopsis "Lifted IO operations from the base library")
5529 (description "Lifted-base exports IO operations from the @code{base}
5530library lifted to any instance of @code{MonadBase} or @code{MonadBaseControl}.
5531Note that not all modules from @code{base} are converted yet. The package
5532includes a copy of the @code{monad-peel} test suite written by Anders
5533Kaseorg.")
3ac73271 5534 (license license:bsd-3)))
6f5e312e 5535
281bc4fd
PW
5536(define-public ghc-word8
5537 (package
5538 (name "ghc-word8")
bc819cdf 5539 (version "0.1.3")
281bc4fd
PW
5540 (source
5541 (origin
5542 (method url-fetch)
5543 (uri (string-append
612fddec 5544 "https://hackage.haskell.org/package/word8/word8-"
281bc4fd
PW
5545 version
5546 ".tar.gz"))
5547 (sha256
5548 (base32
bc819cdf 5549 "12jx7f13d2h1djq4fh4dyrab61sm49mj1w61j3rzp2vjfm696c16"))))
281bc4fd 5550 (build-system haskell-build-system)
2d47cee2
RW
5551 (native-inputs
5552 `(("ghc-hspec" ,ghc-hspec)
5553 ("hspec-discover" ,hspec-discover)))
612fddec 5554 (home-page "https://hackage.haskell.org/package/word8")
281bc4fd
PW
5555 (synopsis "Word8 library for Haskell")
5556 (description "Word8 library to be used with @code{Data.ByteString}.")
3ac73271 5557 (license license:bsd-3)))
281bc4fd 5558
fa709a2f
PW
5559(define-public ghc-stringsearch
5560 (package
5561 (name "ghc-stringsearch")
5562 (version "0.3.6.6")
5563 (source
5564 (origin
5565 (method url-fetch)
5566 (uri (string-append
612fddec 5567 "https://hackage.haskell.org/package/stringsearch/stringsearch-"
fa709a2f
PW
5568 version
5569 ".tar.gz"))
5570 (sha256
5571 (base32
5572 "0jpy9xjcjdbpi3wk6mg7xwd7wfi2mma70p97v1ij5i8bj9qijpr9"))))
5573 (build-system haskell-build-system)
5574 (home-page "https://bitbucket.org/dafis/stringsearch")
5575 (synopsis "Fast searching, splitting and replacing of ByteStrings")
5576 (description "This package provides several functions to quickly search
5577for substrings in strict or lazy @code{ByteStrings}. It also provides
5578functions for breaking or splitting on substrings and replacing all
5579occurrences of a substring (the first in case of overlaps) with another.")
3ac73271 5580 (license license:bsd-3)))
fa709a2f 5581
d0f4853a
RW
5582(define-public ghc-integer-logarithms
5583 (package
5584 (name "ghc-integer-logarithms")
7550f4b0 5585 (version "1.0.2.1")
d0f4853a
RW
5586 (source
5587 (origin
5588 (method url-fetch)
5589 (uri (string-append "https://hackage.haskell.org/package/"
5590 "integer-logarithms/integer-logarithms-"
5591 version ".tar.gz"))
5592 (sha256
5593 (base32
7550f4b0 5594 "1wj8kgjg5bn2yrs4zh9qfjv85cx6w998j9pi39yrbv305944mb9j"))))
d0f4853a 5595 (build-system haskell-build-system)
6300ba5b 5596 (arguments
6b05cfb4
TS
5597 `(#:phases
5598 (modify-phases %standard-phases
5599 (add-before 'configure 'update-constraints
5600 (lambda _
5601 (substitute* "integer-logarithms.cabal"
5602 (("tasty >= 0\\.10 && < 1\\.1")
5603 "tasty >= 0.10 && < 1.2")))))))
7550f4b0
AI
5604 (native-inputs
5605 `(("ghc-quickcheck" ,ghc-quickcheck)
5606 ("ghc-smallcheck" ,ghc-smallcheck)
5607 ("ghc-tasty" ,ghc-tasty)
d0f4853a 5608 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
7550f4b0
AI
5609 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
5610 ("ghc-tasty-smallcheck" ,ghc-tasty-smallcheck)))
5611 (home-page "https://github.com/Bodigrim/integer-logarithms")
d0f4853a
RW
5612 (synopsis "Integer logarithms")
5613 (description
5614 "This package provides the following modules:
5615@code{Math.NumberTheory.Logarithms} and
5616@code{Math.NumberTheory.Powers.Integer} from the @code{arithmoi} package,
5617@code{GHC.Integer.Logarithms.Compat} and
5618@code{Math.NumberTheory.Power.Natural}, as well as some additional functions
5619in migrated modules.")
5620 (license license:expat)))
5621
9d1944a4
TS
5622(define-public ghc-integer-logarithms-bootstrap
5623 (package
5624 (inherit ghc-integer-logarithms)
5625 (name "ghc-integer-logarithms-bootstrap")
5626 (arguments `(#:tests? #f))
5627 (native-inputs '())
5628 (properties '(hidden? #t))))
5629
a43a38a1
PW
5630(define-public ghc-scientific
5631 (package
5632 (name "ghc-scientific")
2cad58ca 5633 (version "0.3.6.2")
a43a38a1
PW
5634 (source
5635 (origin
5636 (method url-fetch)
5637 (uri (string-append
612fddec 5638 "https://hackage.haskell.org/package/scientific/scientific-"
a43a38a1
PW
5639 version
5640 ".tar.gz"))
5641 (sha256
5642 (base32
2cad58ca 5643 "03ql2f0ac8bsl524idy9xxa3kxisb2sj3avflzw580j5hzy0m397"))))
a43a38a1 5644 (build-system haskell-build-system)
a43a38a1 5645 (inputs
f9f4578b 5646 `(("ghc-integer-logarithms" ,ghc-integer-logarithms)
2d47cee2 5647 ("ghc-text" ,ghc-text)
a5044b6a 5648 ("ghc-hashable" ,ghc-hashable)
2cad58ca
AI
5649 ("ghc-primitive" ,ghc-primitive)))
5650 (native-inputs
5651 `(("ghc-tasty" ,ghc-tasty)
a43a38a1
PW
5652 ("ghc-tasty-ant-xml" ,ghc-tasty-ant-xml)
5653 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
5654 ("ghc-tasty-smallcheck" ,ghc-tasty-smallcheck)
5655 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
5656 ("ghc-smallcheck" ,ghc-smallcheck)
5657 ("ghc-quickcheck" ,ghc-quickcheck)))
5658 (home-page "https://github.com/basvandijk/scientific")
5659 (synopsis "Numbers represented using scientific notation")
5660 (description "This package provides @code{Data.Scientific}, which provides
5661the number type @code{Scientific}. Scientific numbers are arbitrary precision
5662and space efficient. They are represented using
98b90194 5663@uref{https://en.wikipedia.org/wiki/Scientific_notation, scientific
a43a38a1 5664notation}.")
3ac73271 5665 (license license:bsd-3)))
a43a38a1 5666
9d1944a4
TS
5667(define-public ghc-scientific-bootstrap
5668 (package
5669 (inherit ghc-scientific)
5670 (name "ghc-scientific-bootstrap")
5671 (arguments `(#:tests? #f))
5672 (inputs
5673 `(("ghc-integer-logarithms" ,ghc-integer-logarithms-bootstrap)
5674 ("ghc-text" ,ghc-text)
5675 ("ghc-hashable" ,ghc-hashable)
5676 ("ghc-primitive" ,ghc-primitive)))
5677 (native-inputs '())
5678 (properties '(hidden? #t))))
5679
3f8b8e73
AV
5680(define-public ghc-boxes
5681 (package
5682 (name "ghc-boxes")
50eff0d5 5683 (version "0.1.5")
3f8b8e73
AV
5684 (source
5685 (origin
5686 (method url-fetch)
5687 (uri (string-append "https://hackage.haskell.org/package/boxes/boxes-"
5688 version ".tar.gz"))
5689 (sha256
50eff0d5 5690 (base32 "1hsnmw95i58d4bkpxby3ddsj1cawypw4mdyb18m393s5i8p7iq9q"))))
3f8b8e73
AV
5691 (build-system haskell-build-system)
5692 (inputs
5693 `(("ghc-split" ,ghc-split)
5694 ("ghc-quickcheck" ,ghc-quickcheck)))
5695 (home-page "https://hackage.haskell.org/package/boxes")
5696 (synopsis "2D text pretty-printing library")
5697 (description
5698 "Boxes is a pretty-printing library for laying out text in two dimensions,
5699using a simple box model.")
5700 (license license:bsd-3)))
2aa0bada 5701
4cbd9f59
RW
5702(define-public ghc-deepseq-generics
5703 (package
5704 (name "ghc-deepseq-generics")
59e08129 5705 (version "0.2.0.0")
4cbd9f59
RW
5706 (source (origin
5707 (method url-fetch)
612fddec 5708 (uri (string-append "https://hackage.haskell.org/package/"
4cbd9f59
RW
5709 "deepseq-generics/deepseq-generics-"
5710 version ".tar.gz"))
5711 (sha256
5712 (base32
59e08129 5713 "17bwghc15mc9pchfd1w46jh2p3wzc86aj6a537wqwxn08rayzcxh"))))
4cbd9f59 5714 (build-system haskell-build-system)
5f4327df
TS
5715 (arguments
5716 `(#:cabal-revision
5717 ("2" "1pnidf8w8x0w5fsqgv8hhrw07slmhxwy5x4fikgk0bd6k76aqicb")))
4cbd9f59
RW
5718 (native-inputs
5719 `(("ghc-hunit" ,ghc-hunit)
5720 ("ghc-test-framework" ,ghc-test-framework)
5721 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)))
5722 (home-page "https://github.com/hvr/deepseq-generics")
5723 (synopsis "Generic RNF implementation")
5724 (description
5725 "This package provides a @code{GHC.Generics}-based
5726@code{Control.DeepSeq.Generics.genericRnf} function which can be used for
36a4366d 5727providing an @code{rnf} implementation.")
3ac73271 5728 (license license:bsd-3)))
4cbd9f59 5729
e0894701
RW
5730(define-public ghc-string-qq
5731 (package
5732 (name "ghc-string-qq")
5733 (version "0.0.2")
5734 (source
5735 (origin
5736 (method url-fetch)
5737 (uri (string-append
5738 "https://hackage.haskell.org/package/string-qq/string-qq-"
5739 version
5740 ".tar.gz"))
5741 (sha256
5742 (base32
5743 "0662m3i5xrdrr95w829bszkhp88mj9iy1zya54vk2sl5hz9wlmwp"))))
5744 (build-system haskell-build-system)
5745 (home-page "http://hackage.haskell.org/package/string-qq")
5746 (synopsis
5747 "QuasiQuoter for non-interpolated strings, texts and bytestrings.")
5748 (description
5749 "This package provides a quasiquoter for non-interpolated strings, texts
5750and bytestrings.")
5751 (license license:public-domain)))
5752
8164d58e
RW
5753(define-public ghc-pandoc-types
5754 (package
5755 (name "ghc-pandoc-types")
cdad36c3 5756 (version "1.17.5.1")
8164d58e
RW
5757 (source (origin
5758 (method url-fetch)
612fddec 5759 (uri (string-append "https://hackage.haskell.org/package/"
8164d58e
RW
5760 "pandoc-types/pandoc-types-"
5761 version ".tar.gz"))
5762 (sha256
5763 (base32
cdad36c3 5764 "1q6v2bynij724fv347mhqxdscwifzrx5jb9mq80608qf638fn717"))))
8164d58e 5765 (build-system haskell-build-system)
2d47cee2 5766 (inputs
8164d58e
RW
5767 `(("ghc-syb" ,ghc-syb)
5768 ("ghc-aeson" ,ghc-aeson)
9d087076
RW
5769 ("ghc-string-qq" ,ghc-string-qq)))
5770 (native-inputs
5771 `(("ghc-quickcheck" ,ghc-quickcheck)
5772 ("ghc-test-framework" ,ghc-test-framework)
5773 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
5774 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)
5775 ("ghc-hunit" ,ghc-hunit)))
8164d58e
RW
5776 (home-page "http://johnmacfarlane.net/pandoc")
5777 (synopsis "Types for representing a structured document")
5778 (description
5779 "This module defines the @code{Pandoc} data structure, which is used by
5780pandoc to represent structured documents. It also provides functions for
5781building up, manipulating and serialising @code{Pandoc} structures.")
3ac73271 5782 (license license:bsd-3)))
8164d58e 5783
ef2861b1
RW
5784(define-public ghc-texmath
5785 (package
5786 (name "ghc-texmath")
cfac79ba 5787 (version "0.11.0.1")
ef2861b1
RW
5788 (source (origin
5789 (method url-fetch)
612fddec 5790 (uri (string-append "https://hackage.haskell.org/package/"
ef2861b1
RW
5791 "texmath/texmath-" version ".tar.gz"))
5792 (sha256
5793 (base32
cfac79ba 5794 "11dc09hfnyfsz20ch2c867w0zdgjkzq41506lm61i3dk87ngdisf"))))
ef2861b1 5795 (build-system haskell-build-system)
2d47cee2 5796 (inputs
ef2861b1
RW
5797 `(("ghc-syb" ,ghc-syb)
5798 ("ghc-network-uri" ,ghc-network-uri)
5799 ("ghc-split" ,ghc-split)
5800 ("ghc-temporary" ,ghc-temporary)
5801 ("ghc-utf8-string" ,ghc-utf8-string)
5802 ("ghc-xml" ,ghc-xml)
5803 ("ghc-parsec" ,ghc-parsec)
ef2861b1 5804 ("ghc-pandoc-types" ,ghc-pandoc-types)))
612fddec 5805 (home-page "https://github.com/jgm/texmath")
ef2861b1
RW
5806 (synopsis "Conversion between formats used to represent mathematics")
5807 (description
5808 "The texmath library provides functions to read and write TeX math,
5809presentation MathML, and OMML (Office Math Markup Language, used in Microsoft
5810Office). Support is also included for converting math formats to pandoc's
5811native format (allowing conversion, via pandoc, to a variety of different
5812markup formats). The TeX reader supports basic LaTeX and AMS extensions, and
5813it can parse and apply LaTeX macros.")
3ac73271 5814 (license license:gpl2+)))
ef2861b1 5815
a54d11b5
RW
5816(define-public ghc-regex-pcre-builtin
5817 (package
5818 (name "ghc-regex-pcre-builtin")
5819 (version "0.94.4.8.8.35")
5820 (source (origin
5821 (method url-fetch)
612fddec 5822 (uri (string-append "https://hackage.haskell.org/package/"
a54d11b5
RW
5823 "regex-pcre-builtin/regex-pcre-builtin-"
5824 version ".tar.gz"))
5825 (sha256
5826 (base32
5827 "0y7as9wqlkykpipka2cfdhmcnin345q01pp0wsva8fwmvsavdl8b"))))
5828 (build-system haskell-build-system)
2d47cee2 5829 (inputs
a54d11b5 5830 `(("ghc-regex-base" ,ghc-regex-base)))
612fddec 5831 (home-page "https://hackage.haskell.org/package/regex-pcre")
a54d11b5
RW
5832 (synopsis "Enhancement of the builtin Text.Regex library")
5833 (description
5834 "This package is an enhancement of the @code{Text.Regex} library,
5835providing the PCRE backend to accompany regex-base, with bundled code from
98b90194 5836@url{https://www.pcre.org}.")
3ac73271 5837 (license license:bsd-3)))
a54d11b5 5838
05245dc9
RW
5839(define-public ghc-diff
5840 (package
5841 (name "ghc-diff")
307a0dce 5842 (version "0.3.4")
05245dc9
RW
5843 (source (origin
5844 (method url-fetch)
612fddec 5845 (uri (string-append "https://hackage.haskell.org/package/"
05245dc9
RW
5846 "Diff/Diff-" version ".tar.gz"))
5847 (sha256
5848 (base32
307a0dce 5849 "0bqcdvhxx8dmqc3793m6axg813wv9ldz2j37f1wygbbrbbndmdvp"))))
05245dc9 5850 (build-system haskell-build-system)
307a0dce
RW
5851 (native-inputs
5852 `(("ghc-quickcheck" ,ghc-quickcheck)
5853 ("ghc-test-framework" ,ghc-test-framework)
5854 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
98b90194 5855 (home-page "https://hub.darcs.net/sterlingclover/Diff")
05245dc9
RW
5856 (synopsis "O(ND) diff algorithm in Haskell")
5857 (description
5858 "This package provides an implementation of the standard diff algorithm,
5859and utilities for pretty printing.")
3ac73271 5860 (license license:bsd-3)))
05245dc9 5861
66c480b6
RW
5862(define-public ghc-highlighting-kate
5863 (package
5864 (name "ghc-highlighting-kate")
a9897365 5865 (version "0.6.4")
66c480b6
RW
5866 (source (origin
5867 (method url-fetch)
612fddec 5868 (uri (string-append "https://hackage.haskell.org/package/"
66c480b6
RW
5869 "highlighting-kate/highlighting-kate-"
5870 version ".tar.gz"))
5871 (sha256
5872 (base32
a9897365 5873 "1bqv00gfmrsf0jjr4qf3lhshvfkyzmhbi3pjb6mafbnsyn2k7f6q"))))
66c480b6 5874 (build-system haskell-build-system)
2d47cee2 5875 (inputs
66c480b6
RW
5876 `(("ghc-diff" ,ghc-diff)
5877 ("ghc-regex-pcre-builtin" ,ghc-regex-pcre-builtin)))
5878 (native-inputs
5879 `(("ghc-parsec" ,ghc-parsec)
5880 ("ghc-blaze-html" ,ghc-blaze-html)
f54f0475 5881 ("ghc-utf8-string" ,ghc-utf8-string)))
612fddec 5882 (home-page "https://github.com/jgm/highlighting-kate")
66c480b6
RW
5883 (synopsis "Syntax highlighting library")
5884 (description
5885 "Highlighting-kate is a syntax highlighting library with support for
5886nearly one hundred languages. The syntax parsers are automatically generated
98b90194 5887from @uref{https://kate-editor.org/, Kate syntax descriptions}, so any syntax
66c480b6
RW
5888supported by Kate can be added. An (optional) command-line program is
5889provided, along with a utility for generating new parsers from Kate XML syntax
5890descriptions.")
3ac73271 5891 (license license:gpl2+)))
66c480b6 5892
31be270b
RW
5893(define-public ghc-cmark
5894 (package
5895 (name "ghc-cmark")
b8490856 5896 (version "0.5.6")
31be270b
RW
5897 (source (origin
5898 (method url-fetch)
b8490856
TGR
5899 ;; XXX As of version 0.5.6, this package bundles libcmark 0.28.0.
5900 ;; See cbits/cmark_version.h.
612fddec 5901 (uri (string-append "https://hackage.haskell.org/package/"
31be270b
RW
5902 "cmark/cmark-" version ".tar.gz"))
5903 (sha256
5904 (base32
b8490856 5905 "1c1j3a8b9qx5zk9myqm3gap8ymz7fipwrdmyfsq9wkkdr9x4np45"))))
31be270b 5906 (build-system haskell-build-system)
2d47cee2 5907 (inputs
31be270b
RW
5908 `(("ghc-text" ,ghc-text)))
5909 (native-inputs
5910 `(("ghc-hunit" ,ghc-hunit)))
5911 (home-page "https://github.com/jgm/commonmark-hs")
5912 (synopsis "Fast, accurate CommonMark (Markdown) parser and renderer")
5913 (description
5914 "This package provides Haskell bindings for
5915@uref{https://github.com/jgm/cmark, libcmark}, the reference parser for
b8490856
TGR
5916CommonMark, a fully specified variant of Markdown. It includes bundled libcmark
5917sources, and does not require prior installation of the C library.")
3ac73271 5918 (license license:bsd-3)))
31be270b 5919
0ba94011
RW
5920(define-public ghc-cmark-gfm
5921 (package
5922 (name "ghc-cmark-gfm")
0ceaff6f 5923 (version "0.1.5")
0ba94011
RW
5924 (source
5925 (origin
5926 (method url-fetch)
5927 (uri (string-append "https://hackage.haskell.org/package/"
5928 "cmark-gfm/cmark-gfm-"
5929 version ".tar.gz"))
5930 (sha256
5931 (base32
0ceaff6f 5932 "13b0mqks5c1q989slgsa3ixr5vvkfyic4ynzgv00kgl5qrs7hqk7"))))
0ba94011
RW
5933 (build-system haskell-build-system)
5934 (inputs
5935 `(("ghc-text" ,ghc-text)))
5936 (native-inputs
5937 `(("ghc-hunit" ,ghc-hunit)))
5938 (home-page "https://github.com/kivikakk/cmark-gfm-hs")
5939 (synopsis
5940 "Fast, accurate GitHub Flavored Markdown parser and renderer")
5941 (description
5942 "This package provides Haskell bindings for libcmark-gfm, the reference
5943parser for GitHub Flavored Markdown, a fully specified variant of Markdown.
5944It includes sources for libcmark-gfm and does not require prior installation
5945of the C library.")
5946 (license license:bsd-3)))
5947
25b20a9c
RW
5948(define-public ghc-executable-path
5949 (package
5950 (name "ghc-executable-path")
1c42bd13 5951 (version "0.0.3.1")
25b20a9c
RW
5952 (source (origin
5953 (method url-fetch)
612fddec 5954 (uri (string-append "https://hackage.haskell.org/package/"
25b20a9c
RW
5955 "executable-path/executable-path-"
5956 version ".tar.gz"))
5957 (sha256
5958 (base32
1c42bd13 5959 "0vxwmnsvx13cawcyhbyljkds0l1vr996ijldycx7nj0asjv45iww"))))
25b20a9c 5960 (build-system haskell-build-system)
612fddec 5961 (home-page "https://hackage.haskell.org/package/executable-path")
25b20a9c
RW
5962 (synopsis "Find out the full path of the executable")
5963 (description
5964 "The documentation of @code{System.Environment.getProgName} says that
5965\"However, this is hard-to-impossible to implement on some non-Unix OSes, so
5966instead, for maximum portability, we just return the leafname of the program
5967as invoked.\" This library tries to provide the missing path.")
3ac73271 5968 (license license:public-domain)))
25b20a9c 5969
5de6eedc
RW
5970(define-public ghc-enclosed-exceptions
5971 (package
5972 (name "ghc-enclosed-exceptions")
376a6df4 5973 (version "1.0.3")
5de6eedc
RW
5974 (source (origin
5975 (method url-fetch)
612fddec 5976 (uri (string-append "https://hackage.haskell.org/package/"
5de6eedc
RW
5977 "enclosed-exceptions/enclosed-exceptions-"
5978 version ".tar.gz"))
5979 (sha256
5980 (base32
376a6df4 5981 "1fghjj7nkiddrf03ks8brjpr5x25yi9fs7xg6adbi4mc2gqr6vdg"))))
5de6eedc 5982 (build-system haskell-build-system)
376a6df4
RW
5983 ;; FIXME: one of the tests blocks forever:
5984 ;; "thread blocked indefinitely in an MVar operation"
5985 (arguments '(#:tests? #f))
2d47cee2 5986 (inputs
5de6eedc
RW
5987 `(("ghc-lifted-base" ,ghc-lifted-base)
5988 ("ghc-monad-control" ,ghc-monad-control)
5989 ("ghc-async" ,ghc-async)
5990 ("ghc-transformers-base" ,ghc-transformers-base)))
5991 (native-inputs
5992 `(("ghc-hspec" ,ghc-hspec)
5993 ("ghc-quickcheck" ,ghc-quickcheck)))
5994 (home-page "https://github.com/jcristovao/enclosed-exceptions")
5995 (synopsis "Catch all exceptions from within an enclosed computation")
5996 (description
5997 "This library implements a technique to catch all exceptions raised
5998within an enclosed computation, while remaining responsive to (external)
5999asynchronous exceptions.")
3ac73271 6000 (license license:expat)))
5de6eedc 6001
74d9f72e
RW
6002(define-public ghc-packedstring
6003 (package
6004 (name "ghc-packedstring")
6005 (version "0.1.0.1")
6006 (source (origin
6007 (method url-fetch)
612fddec 6008 (uri (string-append "https://hackage.haskell.org/package/"
74d9f72e
RW
6009 "packedstring/packedstring-"
6010 version ".tar.gz"))
6011 (sha256
6012 (base32
6013 "1x78pzzdlnpcmh9p37rlf8m5cxf3yqm2alf3whl4zpr9w25r0qj8"))))
6014 (build-system haskell-build-system)
6015 (arguments
6016 `(#:phases
6017 (modify-phases %standard-phases
6018 (add-after 'unpack 'enable-extension
6019 (lambda _
6020 ;; This package won't compile without the StandaloneDeriving
6021 ;; extension.
6022 (substitute* "packedstring.cabal"
6023 (("CPP") "CPP, StandaloneDeriving"))
6024 #t)))))
612fddec 6025 (home-page "https://hackage.haskell.org/package/packedstring")
74d9f72e
RW
6026 (synopsis "Library for packed strings")
6027 (description
6028 "This deprecated library provides an implementation of packed strings.")
3ac73271 6029 (license license:bsd-3)))
74d9f72e 6030
9dfc79b3
RW
6031(define-public ghc-th-abstraction
6032 (package
6033 (name "ghc-th-abstraction")
5fe52835 6034 (version "0.2.8.0")
9dfc79b3
RW
6035 (source
6036 (origin
6037 (method url-fetch)
6038 (uri (string-append "https://hackage.haskell.org/package/"
6039 "th-abstraction/th-abstraction-"
6040 version ".tar.gz"))
6041 (sha256
6042 (base32
5fe52835 6043 "0n17w4q2ykd0nica4sck2wng6md56rfad8x0icl0l8vnzb9nn4ya"))))
9dfc79b3
RW
6044 (build-system haskell-build-system)
6045 (home-page "https://github.com/glguy/th-abstraction")
6046 (synopsis "Nicer interface for reified information about data types")
6047 (description
6048 "This package normalizes variations in the interface for inspecting
6049datatype information via Template Haskell so that packages and support a
6050single, easier to use informational datatype while supporting many versions of
6051Template Haskell.")
6052 (license license:isc)))
6053
1777e1f2
RW
6054(define-public ghc-th-lift
6055 (package
6056 (name "ghc-th-lift")
08c3993f 6057 (version "0.7.11")
1777e1f2
RW
6058 (source (origin
6059 (method url-fetch)
612fddec 6060 (uri (string-append "https://hackage.haskell.org/package/"
1777e1f2
RW
6061 "th-lift/th-lift-" version ".tar.gz"))
6062 (sha256
6063 (base32
08c3993f 6064 "131360zxb0hazbqwbkk6ab2p77jkxr79bwwm618mrwrwkm3x2g6m"))))
1777e1f2 6065 (build-system haskell-build-system)
08c3993f
TS
6066 (inputs
6067 `(("ghc-th-abstraction" ,ghc-th-abstraction)))
612fddec 6068 (home-page "https://github.com/mboes/th-lift")
1777e1f2
RW
6069 (synopsis "Derive Template Haskell's Lift class for datatypes")
6070 (description
6071 "This is a Haskell library to derive Template Haskell's Lift class for
6072datatypes.")
3ac73271 6073 (license license:bsd-3)))
1777e1f2 6074
a6d1c4e7
RW
6075(define-public ghc-th-lift-instances
6076 (package
6077 (name "ghc-th-lift-instances")
6078 (version "0.1.11")
6079 (source
6080 (origin
6081 (method url-fetch)
6082 (uri (string-append "https://hackage.haskell.org/package/"
6083 "th-lift-instances/th-lift-instances-"
6084 version ".tar.gz"))
6085 (sha256
6086 (base32
6087 "1f56cp6ckcalld5jchv0kxpjkwcsixd7smd0g7r8cg67ppx6m90x"))))
6088 (build-system haskell-build-system)
6089 (inputs
6090 `(("ghc-th-lift" ,ghc-th-lift)
6091 ("ghc-vector" ,ghc-vector)
6092 ("ghc-text" ,ghc-text)
6093 ("ghc-quickcheck" ,ghc-quickcheck)))
6094 (home-page "https://github.com/bennofs/th-lift-instances/")
6095 (synopsis "Lift instances for template-haskell for common data types.")
6096 (description "Most data types in the Haskell platform do not have Lift
6097instances. This package provides orphan instances for @code{containers},
6098@code{text}, @code{bytestring} and @code{vector}.")
6099 (license license:bsd-3)))
6100
25101be9
RW
6101(define-public ghc-th-expand-syns
6102 (package
6103 (name "ghc-th-expand-syns")
46f88981 6104 (version "0.4.4.0")
25101be9
RW
6105 (source (origin
6106 (method url-fetch)
612fddec 6107 (uri (string-append "https://hackage.haskell.org/package/"
25101be9
RW
6108 "th-expand-syns/th-expand-syns-"
6109 version ".tar.gz"))
6110 (sha256
6111 (base32
46f88981 6112 "01prlvh3py5hq5ccjidfyp9ixq2zd88dkbsidyjrpkja6v8m43yc"))))
25101be9 6113 (build-system haskell-build-system)
2d47cee2 6114 (inputs
25101be9 6115 `(("ghc-syb" ,ghc-syb)))
612fddec 6116 (home-page "https://hackage.haskell.org/package/th-expand-syns")
25101be9
RW
6117 (synopsis "Expands type synonyms in Template Haskell ASTs")
6118 (description
6119 "This package enables users to expand type synonyms in Template Haskell
6120@dfn{abstract syntax trees} (ASTs).")
3ac73271 6121 (license license:bsd-3)))
25101be9 6122
536b84a8
RW
6123(define-public ghc-th-reify-many
6124 (package
6125 (name "ghc-th-reify-many")
5209fc22 6126 (version "0.1.8")
536b84a8
RW
6127 (source (origin
6128 (method url-fetch)
612fddec 6129 (uri (string-append "https://hackage.haskell.org/package/"
536b84a8
RW
6130 "th-reify-many/th-reify-many-"
6131 version ".tar.gz"))
6132 (sha256
6133 (base32
5209fc22 6134 "0hzy6hvhvcd6i60vx5cp2b7ggmnnjh9rx4h8bm8xw4grglcaxjnf"))))
536b84a8 6135 (build-system haskell-build-system)
2d47cee2 6136 (inputs
f54f0475 6137 `(("ghc-safe" ,ghc-safe)
536b84a8 6138 ("ghc-th-expand-syns" ,ghc-th-expand-syns)))
612fddec 6139 (home-page "https://github.com/mgsloan/th-reify-many")
536b84a8
RW
6140 (synopsis "Recurseively reify template haskell datatype info")
6141 (description
6142 "th-reify-many provides functions for recursively reifying top level
6143declarations. The main intended use case is for enumerating the names of
6144datatypes reachable from an initial datatype, and passing these names to some
6145function which generates instances.")
3ac73271 6146 (license license:bsd-3)))
536b84a8 6147
2e677251
RW
6148(define-public ghc-th-orphans
6149 (package
6150 (name "ghc-th-orphans")
7307a2f8 6151 (version "0.13.6")
2e677251
RW
6152 (source (origin
6153 (method url-fetch)
612fddec 6154 (uri (string-append "https://hackage.haskell.org/package/"
2e677251
RW
6155 "th-orphans/th-orphans-" version ".tar.gz"))
6156 (sha256
6157 (base32
7307a2f8 6158 "0sfl3pn9kq9da3ji3lsgzgzy82vz6yvsg80dmakc1jvk7awycibp"))))
2e677251 6159 (build-system haskell-build-system)
2d47cee2 6160 (inputs
2e677251 6161 `(("ghc-th-lift" ,ghc-th-lift)
080778a0 6162 ("ghc-th-lift-instances" ,ghc-th-lift-instances)
2e677251 6163 ("ghc-th-reify-many" ,ghc-th-reify-many)
2e677251
RW
6164 ("ghc-generic-deriving" ,ghc-generic-deriving)))
6165 (native-inputs
6166 `(("ghc-hspec" ,ghc-hspec)))
612fddec 6167 (home-page "https://hackage.haskell.org/package/th-orphans")
2e677251
RW
6168 (synopsis "Orphan instances for TH datatypes")
6169 (description
6170 "This package provides orphan instances for Template Haskell datatypes. In particular,
6171instances for @code{Ord} and @code{Lift}, as well as a few missing @code{Show}
6172and @code{Eq} instances. These instances used to live in the haskell-src-meta
6173package, and that's where the version number started.")
3ac73271 6174 (license license:bsd-3)))
2e677251 6175
e0ca14c7
AV
6176(define-public ghc-geniplate-mirror
6177 (package
6178 (name "ghc-geniplate-mirror")
6b850af4 6179 (version "0.7.6")
e0ca14c7
AV
6180 (source
6181 (origin
6182 (method url-fetch)
6183 (uri (string-append "https://hackage.haskell.org/package"
6184 "/geniplate-mirror"
6185 "/geniplate-mirror-" version ".tar.gz"))
6186 (sha256
6b850af4 6187 (base32 "1y0m0bw5zpm1y1y6d9qmxj3swl8j8hlw1shxbr5awycf6k884ssb"))))
e0ca14c7 6188 (build-system haskell-build-system)
e0ca14c7
AV
6189 (home-page "https://github.com/danr/geniplate")
6190 (synopsis "Use Template Haskell to generate Uniplate-like functions")
6191 (description
6192 "Use Template Haskell to generate Uniplate-like functions. This is a
6193maintained mirror of the @uref{https://hackage.haskell.org/package/geniplate,
6194geniplate} package, written by Lennart Augustsson.")
6195 (license license:bsd-3)))
6196
af4db693
AV
6197(define-public ghc-gitrev
6198 (package
6199 (name "ghc-gitrev")
6200 (version "1.3.1")
6201 (source
6202 (origin
6203 (method url-fetch)
6204 (uri (string-append "https://hackage.haskell.org/package/gitrev/gitrev-"
6205 version ".tar.gz"))
6206 (sha256
6207 (base32 "0cl3lfm6k1h8fxp2vxa6ihfp4v8igkz9h35iwyq2frzm4kdn96d8"))))
6208 (build-system haskell-build-system)
6209 (inputs `(("ghc-base-compat" ,ghc-base-compat)))
6210 (home-page "https://github.com/acfoltzer/gitrev")
6211 (synopsis "Compile git revision info into Haskell projects")
6212 (description
6213 "This package provides some handy Template Haskell splices for including
6214the current git hash and branch in the code of your project. This is useful
6215for including in panic messages, @command{--version} output, or diagnostic
6216info for more informative bug reports.")
6217 (license license:bsd-3)))
6218
3611fc7b
RW
6219(define-public ghc-haskell-src-meta
6220 (package
6221 (name "ghc-haskell-src-meta")
dcfee7b6 6222 (version "0.8.0.3")
3611fc7b
RW
6223 (source (origin
6224 (method url-fetch)
612fddec 6225 (uri (string-append "https://hackage.haskell.org/package/"
3611fc7b
RW
6226 "haskell-src-meta/haskell-src-meta-"
6227 version ".tar.gz"))
6228 (sha256
6229 (base32
dcfee7b6 6230 "08jq156zv4m0fjq6712n99c1jwxnpa6kj6sq8ch0r1l0a1ay6ww4"))))
3611fc7b 6231 (build-system haskell-build-system)
2d47cee2 6232 (inputs
3611fc7b
RW
6233 `(("ghc-haskell-src-exts" ,ghc-haskell-src-exts)
6234 ("ghc-syb" ,ghc-syb)
6235 ("ghc-th-orphans" ,ghc-th-orphans)))
db6dbe19
RW
6236 (native-inputs
6237 `(("ghc-hunit" ,ghc-hunit)
6238 ("ghc-test-framework" ,ghc-test-framework)
6239 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)))
612fddec 6240 (home-page "https://hackage.haskell.org/package/haskell-src-meta")
3611fc7b
RW
6241 (synopsis "Parse source to template-haskell abstract syntax")
6242 (description
6243 "This package provides tools to parse Haskell sources to the
6244template-haskell abstract syntax.")
3ac73271 6245 (license license:bsd-3)))
3611fc7b 6246
b55630a3
RW
6247(define-public ghc-conduit
6248 (package
6249 (name "ghc-conduit")
5cb46200 6250 (version "1.3.0.3")
b55630a3
RW
6251 (source (origin
6252 (method url-fetch)
612fddec 6253 (uri (string-append "https://hackage.haskell.org/package/"
b55630a3
RW
6254 "conduit/conduit-" version ".tar.gz"))
6255 (sha256
6256 (base32
5cb46200 6257 "1sangm0qqi9dzlq95746a3kl14k8b09592a423shxjf2a0b1yx5v"))))
b55630a3 6258 (build-system haskell-build-system)
2d47cee2 6259 (inputs
b55630a3
RW
6260 `(("ghc-exceptions" ,ghc-exceptions)
6261 ("ghc-lifted-base" ,ghc-lifted-base)
5cb46200 6262 ("ghc-mono-traversable" ,ghc-mono-traversable)
b55630a3 6263 ("ghc-mmorph" ,ghc-mmorph)
b55630a3 6264 ("ghc-resourcet" ,ghc-resourcet)
5cb46200 6265 ("ghc-silently" ,ghc-silently)
b55630a3 6266 ("ghc-transformers-base" ,ghc-transformers-base)
5cb46200
RW
6267 ("ghc-unliftio" ,ghc-unliftio)
6268 ("ghc-unliftio-core" ,ghc-unliftio-core)
6269 ("ghc-vector" ,ghc-vector)
b55630a3
RW
6270 ("ghc-void" ,ghc-void)))
6271 (native-inputs
6272 `(("ghc-quickcheck" ,ghc-quickcheck)
6273 ("ghc-hspec" ,ghc-hspec)
7bc18f41 6274 ("ghc-safe" ,ghc-safe)
6275 ("ghc-split" ,ghc-split)))
b55630a3
RW
6276 (home-page "https://github.com/snoyberg/conduit")
6277 (synopsis "Streaming data library ")
6278 (description
463c39c3 6279 "The conduit package is a solution to the streaming data problem,
6280allowing for production, transformation, and consumption of streams of data
6281in constant memory. It is an alternative to lazy I/O which guarantees
6282deterministic resource handling, and fits in the same general solution
6283space as enumerator/iteratee and pipes.")
3ac73271 6284 (license license:expat)))
b55630a3 6285
1c17529f
RW
6286(define-public ghc-logging-facade
6287 (package
6288 (name "ghc-logging-facade")
1cf4f272 6289 (version "0.3.0")
1c17529f
RW
6290 (source (origin
6291 (method url-fetch)
612fddec 6292 (uri (string-append "https://hackage.haskell.org/package/"
1c17529f
RW
6293 "logging-facade/logging-facade-"
6294 version ".tar.gz"))
6295 (sha256
6296 (base32
1cf4f272 6297 "0d0lwxxgd16is9aw6v3ps4r9prv3dj8xscmm45fvzq3nicjiawcf"))))
1c17529f
RW
6298 (build-system haskell-build-system)
6299 (native-inputs
2d47cee2
RW
6300 `(("ghc-hspec" ,ghc-hspec)
6301 ("hspec-discover" ,hspec-discover)))
612fddec 6302 (home-page "https://hackage.haskell.org/package/logging-facade")
1c17529f
RW
6303 (synopsis "Simple logging abstraction that allows multiple back-ends")
6304 (description
6305 "This package provides a simple logging abstraction that allows multiple
6306back-ends.")
3ac73271 6307 (license license:expat)))
1c17529f 6308
9efdbb72
RW
6309(define-public ghc-mockery
6310 (package
6311 (name "ghc-mockery")
b3cd1712 6312 (version "0.3.5")
9efdbb72
RW
6313 (source (origin
6314 (method url-fetch)
612fddec 6315 (uri (string-append "https://hackage.haskell.org/package/"
9efdbb72
RW
6316 "mockery/mockery-" version ".tar.gz"))
6317 (sha256
6318 (base32
b3cd1712 6319 "09ypgm3z69gq8mj6y66ss58kbjnk15r8frwcwbqcfbfksfnfv8dp"))))
9efdbb72 6320 (build-system haskell-build-system)
2d47cee2 6321 (inputs
9efdbb72 6322 `(("ghc-temporary" ,ghc-temporary)
1e521705
RW
6323 ("ghc-logging-facade" ,ghc-logging-facade)
6324 ("ghc-base-compat" ,ghc-base-compat)))
9efdbb72 6325 (native-inputs
2d47cee2
RW
6326 `(("ghc-hspec" ,ghc-hspec)
6327 ("hspec-discover" ,hspec-discover)))
612fddec 6328 (home-page "https://hackage.haskell.org/package/mockery")
9efdbb72
RW
6329 (synopsis "Support functions for automated testing")
6330 (description
6331 "The mockery package provides support functions for automated testing.")
3ac73271 6332 (license license:expat)))
9efdbb72 6333
132133c1
RW
6334(define-public ghc-yaml
6335 (package
6336 (name "ghc-yaml")
1613ee19 6337 (version "0.8.32")
132133c1
RW
6338 (source (origin
6339 (method url-fetch)
612fddec 6340 (uri (string-append "https://hackage.haskell.org/package/"
132133c1
RW
6341 "yaml/yaml-" version ".tar.gz"))
6342 (sha256
6343 (base32
1613ee19 6344 "0cbsyh4ilvjzq1q7pxls43k6pdqxg1l85xzibcwpbvmlvrizh86w"))))
132133c1 6345 (build-system haskell-build-system)
2d47cee2 6346 (inputs
132133c1
RW
6347 `(("ghc-conduit" ,ghc-conduit)
6348 ("ghc-resourcet" ,ghc-resourcet)
6349 ("ghc-aeson" ,ghc-aeson)
6350 ("ghc-unordered-containers" ,ghc-unordered-containers)
6351 ("ghc-vector" ,ghc-vector)
6352 ("ghc-text" ,ghc-text)
6353 ("ghc-attoparsec" ,ghc-attoparsec)
6354 ("ghc-scientific" ,ghc-scientific)
fe4f81bc
RW
6355 ("ghc-semigroups" ,ghc-semigroups)
6356 ("ghc-temporary" ,ghc-temporary)
132133c1 6357 ("ghc-enclosed-exceptions" ,ghc-enclosed-exceptions)
132133c1
RW
6358 ("ghc-base-compat" ,ghc-base-compat)))
6359 (native-inputs
6360 `(("ghc-hspec" ,ghc-hspec)
6361 ("ghc-hunit" ,ghc-hunit)
2d47cee2 6362 ("hspec-discover" ,hspec-discover)
132133c1 6363 ("ghc-mockery" ,ghc-mockery)))
612fddec 6364 (home-page "https://github.com/snoyberg/yaml/")
132133c1
RW
6365 (synopsis "Parsing and rendering YAML documents")
6366 (description
6367 "This package provides a library to parse and render YAML documents.")
3ac73271 6368 (license license:bsd-3)))
132133c1 6369
fcacbec3
RW
6370(define-public ghc-filemanip
6371 (package
6372 (name "ghc-filemanip")
6373 (version "0.3.6.3")
6374 (source (origin
6375 (method url-fetch)
612fddec 6376 (uri (string-append "https://hackage.haskell.org/package/"
fcacbec3
RW
6377 "filemanip/filemanip-" version ".tar.gz"))
6378 (sha256
6379 (base32
6380 "0ilqr8jv41zxcj5qyicg29m8s30b9v70x6f9h2h2rw5ap8bxldl8"))))
6381 (build-system haskell-build-system)
2d47cee2 6382 (inputs
f54f0475 6383 `(("ghc-unix-compat" ,ghc-unix-compat)))
fcacbec3
RW
6384 (home-page "https://github.com/bos/filemanip")
6385 (synopsis "File and directory manipulation for Haskell")
6386 (description
6387 "This package provides a Haskell library for working with files and
6388directories. It includes code for pattern matching, finding files, modifying
6389file contents, and more.")
3ac73271 6390 (license license:bsd-3)))
fcacbec3 6391
348519e1
RW
6392(define-public ghc-mmap
6393 (package
6394 (name "ghc-mmap")
6395 (version "0.5.9")
6396 (source (origin
6397 (method url-fetch)
612fddec 6398 (uri (string-append "https://hackage.haskell.org/package/"
348519e1
RW
6399 "mmap/mmap-" version ".tar.gz"))
6400 (sha256
6401 (base32
6402 "1y5mk3yf4b8r6rzmlx1xqn4skaigrqnv08sqq0v7r3nbw42bpz2q"))))
6403 (build-system haskell-build-system)
612fddec 6404 (home-page "https://hackage.haskell.org/package/mmap")
348519e1
RW
6405 (synopsis "Memory mapped files for Haskell")
6406 (description
6407 "This library provides a wrapper to @code{mmap}, allowing files or
6408devices to be lazily loaded into memory as strict or lazy @code{ByteStrings},
6409@code{ForeignPtrs} or plain @code{Ptrs}, using the virtual memory subsystem to
6410do on-demand loading.")
3ac73271 6411 (license license:bsd-3)))
348519e1 6412
12676ce8
RW
6413(define-public ghc-juicypixels
6414 (package
6415 (name "ghc-juicypixels")
38f0d04e 6416 (version "3.2.9.5")
12676ce8
RW
6417 (source (origin
6418 (method url-fetch)
612fddec 6419 (uri (string-append "https://hackage.haskell.org/package/"
12676ce8
RW
6420 "JuicyPixels/JuicyPixels-"
6421 version ".tar.gz"))
6422 (sha256
6423 (base32
38f0d04e 6424 "0mf3ihr0xy2wc2wzb9a17g0n3p60x7pvm8akwpvhdy8klvs6r744"))))
12676ce8 6425 (build-system haskell-build-system)
2d47cee2 6426 (inputs
f54f0475 6427 `(("ghc-zlib" ,ghc-zlib)
12676ce8
RW
6428 ("ghc-vector" ,ghc-vector)
6429 ("ghc-primitive" ,ghc-primitive)
6430 ("ghc-mmap" ,ghc-mmap)))
6431 (home-page "https://github.com/Twinside/Juicy.Pixels")
6432 (synopsis "Picture loading and serialization library")
6433 (description
6434 "This library can load and store images in PNG, Bitmap, JPEG, Radiance,
6435TIFF and GIF formats.")
3ac73271 6436 (license license:bsd-3)))
12676ce8 6437
ac5d633a
RW
6438(define-public ghc-hslua
6439 (package
6440 (name "ghc-hslua")
867ac7fe 6441 (version "0.9.5.2")
ac5d633a
RW
6442 (source (origin
6443 (method url-fetch)
612fddec 6444 (uri (string-append "https://hackage.haskell.org/package/"
ac5d633a
RW
6445 "hslua/hslua-" version ".tar.gz"))
6446 (sha256
6447 (base32
867ac7fe 6448 "1rdvv01p214zfjh6fcqjjgqwi8y42wad6cqzhlcv5gvclzw2ck8f"))))
ac5d633a 6449 (build-system haskell-build-system)
a231ef7e 6450 (arguments
ac5d633a
RW
6451 `(#:configure-flags '("-fsystem-lua")))
6452 (inputs
e045c014
RW
6453 `(("lua" ,lua)
6454 ("ghc-exceptions" ,ghc-exceptions)
6455 ("ghc-fail" ,ghc-fail)
2d47cee2 6456 ("ghc-text" ,ghc-text)))
ac5d633a 6457 (native-inputs
e045c014
RW
6458 `(("ghc-tasty" ,ghc-tasty)
6459 ("ghc-tasty-expected-failure" ,ghc-tasty-expected-failure)
6460 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
6461 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
ac5d633a
RW
6462 ("ghc-quickcheck" ,ghc-quickcheck)
6463 ("ghc-quickcheck-instances" ,ghc-quickcheck-instances)))
612fddec 6464 (home-page "https://hackage.haskell.org/package/hslua")
ac5d633a 6465 (synopsis "Lua language interpreter embedding in Haskell")
a231ef7e 6466 (description
ac5d633a 6467 "The Scripting.Lua module is a wrapper of the Lua language interpreter as
98b90194 6468described in @url{https://www.lua.org/}.")
3ac73271 6469 (license license:expat)))
ac5d633a 6470
8045d84d
RW
6471(define-public ghc-hslua-module-text
6472 (package
6473 (name "ghc-hslua-module-text")
6474 (version "0.1.2.1")
6475 (source
6476 (origin
6477 (method url-fetch)
6478 (uri (string-append "https://hackage.haskell.org/package/"
6479 "hslua-module-text/hslua-module-text-"
6480 version ".tar.gz"))
6481 (sha256
6482 (base32
6483 "0bcfpb1dhnxp0gr376ai4w7vczr9zrjl1r3r6w7kcxivfkwq9cxf"))))
6484 (build-system haskell-build-system)
085f26d1
TS
6485 (arguments
6486 `(#:cabal-revision
6487 ("1" "0vajlsd7y6pwa08635q0cx8z5c1c55bk7fvavw7g2vmyvxqjzx6n")))
8045d84d
RW
6488 (inputs
6489 `(("ghc-hslua" ,ghc-hslua)
6490 ("ghc-text" ,ghc-text)))
6491 (native-inputs
6492 `(("ghc-tasty" ,ghc-tasty)
6493 ("ghc-tasty-hunit" ,ghc-tasty-hunit)))
6494 (home-page "https://github.com/hslua/hslua-module-text")
6495 (synopsis "Lua module for text")
6496 (description
6497 "This package provides a UTF-8 aware subset of Lua's @code{string} module
6498for Haskell. The functions provided by this module are @code{upper},
6499@code{lower}, @code{len}, @code{reverse}, and @code{sub}.")
6500 (license license:expat)))
6501
51c05fcf
RW
6502(define-public ghc-byteable
6503 (package
6504 (name "ghc-byteable")
6505 (version "0.1.1")
6506 (source (origin
6507 (method url-fetch)
612fddec 6508 (uri (string-append "https://hackage.haskell.org/package/"
51c05fcf
RW
6509 "byteable/byteable-" version ".tar.gz"))
6510 (sha256
6511 (base32
6512 "1qizg0kxxjqnd3cbrjhhidk5pbbciz0pb3z5kzikjjxnnnhk8fr4"))))
6513 (build-system haskell-build-system)
612fddec 6514 (home-page "https://github.com/vincenthz/hs-byteable")
51c05fcf
RW
6515 (synopsis "Type class for sequence of bytes")
6516 (description
6517 "This package provides an abstract class to manipulate sequence of bytes.
6518The use case of this class is abstracting manipulation of types that are just
6519wrapping a bytestring with stronger and more meaniful name.")
3ac73271 6520 (license license:bsd-3)))
51c05fcf 6521
45813e67
RW
6522(define-public ghc-hourglass
6523 (package
6524 (name "ghc-hourglass")
bef2ee1c 6525 (version "0.2.12")
45813e67
RW
6526 (source (origin
6527 (method url-fetch)
612fddec 6528 (uri (string-append "https://hackage.haskell.org/package/"
45813e67
RW
6529 "hourglass/hourglass-" version ".tar.gz"))
6530 (sha256
6531 (base32
bef2ee1c 6532 "0jnay5j13vpz6i1rkaj3j0d9v8jfpri499xn3l7wd01f81f5ncs4"))))
45813e67 6533 (build-system haskell-build-system)
2d47cee2 6534 (inputs
f54f0475 6535 `(("ghc-old-locale" ,ghc-old-locale)))
45813e67
RW
6536 (native-inputs
6537 `(("ghc-tasty" ,ghc-tasty)
6538 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
6539 ("ghc-tasty-hunit" ,ghc-tasty-hunit)))
6540 (home-page "https://github.com/vincenthz/hs-hourglass")
6541 (synopsis "Simple time-related library for Haskell")
6542 (description
6543 "This is a simple time library providing a simple but powerful and
6544performant API. The backbone of the library are the @code{Timeable} and
6545@code{Time} type classes. Each @code{Timeable} instances can be converted to
6546a type that has a @code{Time} instances, and thus are different
6547representations of current time.")
3ac73271 6548 (license license:bsd-3)))
45813e67 6549
be04f802
AV
6550(define-public ghc-edit-distance
6551 (package
6552 (name "ghc-edit-distance")
6553 (version "0.2.2.1")
6554 (source
6555 (origin
6556 (method url-fetch)
6557 (uri (string-append "https://hackage.haskell.org/package/edit-distance"
6558 "/edit-distance-" version ".tar.gz"))
6559 (sha256
6560 (base32 "0jkca97zyv23yyilp3jydcrzxqhyk27swhzh82llvban5zp8b21y"))))
6561 (build-system haskell-build-system)
9f29ecc1 6562 (arguments
d340ee85
TS
6563 `(#:phases
6564 (modify-phases %standard-phases
6565 (add-before 'configure 'update-constraints
6566 (lambda _
6567 (substitute* "edit-distance.cabal"
6568 (("QuickCheck >= 2\\.4 && <2\\.9")
6569 "QuickCheck >= 2.4 && < 2.12")))))))
be04f802
AV
6570 (inputs
6571 `(("ghc-random" ,ghc-random)
6572 ("ghc-test-framework" ,ghc-test-framework)
6573 ("ghc-quickcheck" ,ghc-quickcheck)
6574 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
6575 (home-page "https://github.com/phadej/edit-distance")
6576 (synopsis "Levenshtein and restricted Damerau-Levenshtein edit distances")
6577 (description
6578 "This package provides optimized functions to determine the edit
6579distances for fuzzy matching, including Levenshtein and restricted
6580Damerau-Levenshtein algorithms.")
6581 (license license:bsd-3)))
6582
4dc2deb9
RW
6583(define-public ghc-memory
6584 (package
6585 (name "ghc-memory")
150e8e25 6586 (version "0.14.16")
4dc2deb9
RW
6587 (source (origin
6588 (method url-fetch)
612fddec 6589 (uri (string-append "https://hackage.haskell.org/package/"
4dc2deb9
RW
6590 "memory/memory-" version ".tar.gz"))
6591 (sha256
6592 (base32
150e8e25 6593 "03rbszi5d4z9rlbfv8ydrl1xf84xsh8z57g07f7j9qccn9587c3v"))))
4dc2deb9 6594 (build-system haskell-build-system)
150e8e25
RW
6595 (inputs
6596 `(("ghc-basement" ,ghc-basement)
6597 ("ghc-foundation" ,ghc-foundation)))
4dc2deb9
RW
6598 (native-inputs
6599 `(("ghc-tasty" ,ghc-tasty)
6600 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
6601 ("ghc-tasty-hunit" ,ghc-tasty-hunit)))
6602 (home-page "https://github.com/vincenthz/hs-memory")
6603 (synopsis "Memory abstractions for Haskell")
6604 (description
6605 "This package provides memory abstractions, such as chunk of memory,
6606polymorphic byte array management and manipulation functions. It contains a
6607polymorphic byte array abstraction and functions similar to strict ByteString,
6608different type of byte array abstraction, raw memory IO operations (memory
6609set, memory copy, ..) and more")
3ac73271 6610 (license license:bsd-3)))
4dc2deb9 6611
dcc5cf1d
RW
6612(define-public ghc-socks
6613 (package
6614 (name "ghc-socks")
fd358b34 6615 (version "0.5.6")
dcc5cf1d
RW
6616 (source (origin
6617 (method url-fetch)
612fddec 6618 (uri (string-append "https://hackage.haskell.org/package/"
dcc5cf1d
RW
6619 "socks/socks-" version ".tar.gz"))
6620 (sha256
6621 (base32
fd358b34 6622 "0f44qy74i0n6ll3jym0a2ipafkpw1h67amcpqmj8iq95h21wsqzs"))))
dcc5cf1d 6623 (build-system haskell-build-system)
2d47cee2 6624 (inputs
dcc5cf1d
RW
6625 `(("ghc-cereal" ,ghc-cereal)
6626 ("ghc-network" ,ghc-network)))
612fddec 6627 (home-page "https://github.com/vincenthz/hs-socks")
66e07664 6628 (synopsis "SOCKS proxy (version 5) implementation")
dcc5cf1d
RW
6629 (description
6630 "This library provides a SOCKS proxy (version 5) implementation.")
3ac73271 6631 (license license:bsd-3)))
dcc5cf1d 6632
86dd2ce0
RW
6633(define-public ghc-connection
6634 (package
6635 (name "ghc-connection")
f4585fd1 6636 (version "0.2.8")
86dd2ce0
RW
6637 (source (origin
6638 (method url-fetch)
612fddec 6639 (uri (string-append "https://hackage.haskell.org/package/"
86dd2ce0
RW
6640 "connection/connection-"
6641 version ".tar.gz"))
6642 (sha256
6643 (base32
f4585fd1 6644 "1swkb9w5vx9ph7x55y51dc0srj2z27nd9ibgn8c0qcl6hx7g9cbh"))))
86dd2ce0 6645 (build-system haskell-build-system)
2d47cee2 6646 (inputs
86dd2ce0
RW
6647 `(("ghc-byteable" ,ghc-byteable)
6648 ("ghc-data-default-class" ,ghc-data-default-class)
6649 ("ghc-network" ,ghc-network)
6650 ("ghc-tls" ,ghc-tls)
6651 ("ghc-socks" ,ghc-socks)
6652 ("ghc-x509" ,ghc-x509)
6653 ("ghc-x509-store" ,ghc-x509-store)
6654 ("ghc-x509-system" ,ghc-x509-system)
6655 ("ghc-x509-validation" ,ghc-x509-validation)))
612fddec 6656 (home-page "https://github.com/vincenthz/hs-connection")
86dd2ce0
RW
6657 (synopsis "Simple and easy network connections API")
6658 (description
6659 "This package provides a simple network library for all your connection
6660needs. It provides a very simple API to create sockets to a destination with
6661the choice of SSL/TLS, and SOCKS.")
3ac73271 6662 (license license:bsd-3)))
86dd2ce0 6663
61849d42 6664(define-public ghc-skylighting-core
14e9a397 6665 (package
61849d42
TS
6666 (name "ghc-skylighting-core")
6667 (version "0.7.2")
14e9a397
RW
6668 (source (origin
6669 (method url-fetch)
61849d42
TS
6670 (uri (string-append "https://hackage.haskell.org/package/"
6671 "skylighting-core/skylighting-core-"
6672 version ".tar.gz"))
14e9a397
RW
6673 (sha256
6674 (base32
61849d42 6675 "066fwmwsd7xcvwlinfk2izlzq0xp8697i6lnbgsbl71jdybyackq"))))
14e9a397
RW
6676 (build-system haskell-build-system)
6677 (inputs
6678 `(("ghc-aeson" ,ghc-aeson)
6679 ("ghc-ansi-terminal" ,ghc-ansi-terminal)
6680 ("ghc-attoparsec" ,ghc-attoparsec)
6681 ("ghc-base64-bytestring" ,ghc-base64-bytestring)
6682 ("ghc-blaze-html" ,ghc-blaze-html)
6683 ("ghc-case-insensitive" ,ghc-case-insensitive)
6684 ("ghc-colour" ,ghc-colour)
14e9a397 6685 ("ghc-hxt" ,ghc-hxt)
14e9a397
RW
6686 ("ghc-regex-pcre-builtin" ,ghc-regex-pcre-builtin)
6687 ("ghc-safe" ,ghc-safe)
6688 ("ghc-text" ,ghc-text)
6689 ("ghc-utf8-string" ,ghc-utf8-string)))
6690 (native-inputs
61849d42
TS
6691 `(("ghc-diff" ,ghc-diff)
6692 ("ghc-hunit" ,ghc-hunit)
6693 ("ghc-pretty-show" ,ghc-pretty-show)
14e9a397
RW
6694 ("ghc-quickcheck" ,ghc-quickcheck)
6695 ("ghc-tasty" ,ghc-tasty)
6696 ("ghc-tasty-golden" ,ghc-tasty-golden)
6697 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
6698 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
61849d42 6699 (home-page "https://github.com/jgm/skylighting")
14e9a397
RW
6700 (synopsis "Syntax highlighting library")
6701 (description "Skylighting is a syntax highlighting library with support
6702for over one hundred languages. It derives its tokenizers from XML syntax
6703definitions used by KDE's @code{KSyntaxHighlighting} framework, so any syntax
6704supported by that framework can be added. An optional command-line program is
6705provided. Skylighting is intended to be the successor to highlighting-kate.")
6706 (license license:gpl2)))
6707
61849d42
TS
6708(define-public ghc-skylighting
6709 (package
6710 (inherit ghc-skylighting-core)
6711 (name "ghc-skylighting")
6712 (version "0.7.2")
6713 (source (origin
6714 (method url-fetch)
6715 (uri (string-append "https://hackage.haskell.org/package/skylighting-"
6716 version "/skylighting-" version ".tar.gz"))
6717 (sha256
6718 (base32
6719 "1rh3z1a7a4clvksdw1qlpmhxqkfahwypi70k91whgfamzsqpxdch"))))
6720 (inputs
6721 `(("ghc-skylighting-core" ,ghc-skylighting-core)
6722 ,@(package-inputs ghc-skylighting-core)))))
6723
4012ea04
RW
6724(define-public ghc-doctemplates
6725 (package
6726 (name "ghc-doctemplates")
dfe5f60f 6727 (version "0.2.2.1")
4012ea04
RW
6728 (source
6729 (origin
6730 (method url-fetch)
6731 (uri (string-append "https://hackage.haskell.org/package/"
6732 "doctemplates/doctemplates-"
6733 version ".tar.gz"))
6734 (sha256
6735 (base32
dfe5f60f 6736 "1gyckfg3kgvzhxw14i7iwrw0crygvsp86sy53bbr1yn7bxbgn33b"))))
4012ea04
RW
6737 (build-system haskell-build-system)
6738 (inputs
6739 `(("ghc-aeson" ,ghc-aeson)
6740 ("ghc-blaze-markup" ,ghc-blaze-markup)
6741 ("ghc-blaze-html" ,ghc-blaze-html)
6742 ("ghc-text" ,ghc-text)
6743 ("ghc-vector" ,ghc-vector)
6744 ("ghc-parsec" ,ghc-parsec)
6745 ("ghc-unordered-containers" ,ghc-unordered-containers)
6746 ("ghc-scientific" ,ghc-scientific)))
6747 (native-inputs
6748 `(("ghc-hspec" ,ghc-hspec)))
6749 (home-page "https://github.com/jgm/doctemplates#readme")
6750 (synopsis "Pandoc-style document templates")
6751 (description
6752 "This package provides a simple text templating system used by pandoc.")
6753 (license license:bsd-3)))
6c055278 6754
85538709
RW
6755(define-public ghc-pandoc
6756 (package
6757 (name "ghc-pandoc")
970481f1 6758 (version "2.2.1")
85538709
RW
6759 (source
6760 (origin
6761 (method url-fetch)
612fddec 6762 (uri (string-append "https://hackage.haskell.org/package/pandoc/pandoc-"
85538709
RW
6763 version ".tar.gz"))
6764 (sha256
6765 (base32
970481f1 6766 "1dqin92w513l7whg5wdgrngnxsj5mb8gppfvn7kjgyv2pdgpy0zy"))))
85538709 6767 (build-system haskell-build-system)
6a006a11
TS
6768 (arguments
6769 `(#:phases
6770 (modify-phases %standard-phases
6771 (add-before 'configure 'update-constraints
6772 (lambda _
6773 (substitute* "pandoc.cabal"
6774 (("tasty >= 0\\.11 && < 1\\.1")
6775 "tasty >= 0.11 && < 1.1.1"))))
6776 (add-before 'configure 'patch-tests
6777 (lambda _
6778 ;; These tests fail benignly and have been adjusted upstream:
6779 ;; <https://github.com/commercialhaskell/stackage/issues/3719>.
6780 (substitute* "test/Tests/Old.hs"
6781 (("lhsWriterTests \"html\"") "[]")))))))
2d47cee2 6782 (inputs
1afa5abb
RW
6783 `(("ghc-aeson" ,ghc-aeson)
6784 ("ghc-aeson-pretty" ,ghc-aeson-pretty)
85538709 6785 ("ghc-base64-bytestring" ,ghc-base64-bytestring)
85538709
RW
6786 ("ghc-blaze-html" ,ghc-blaze-html)
6787 ("ghc-blaze-markup" ,ghc-blaze-markup)
1afa5abb
RW
6788 ("ghc-cmark-gfm" ,ghc-cmark-gfm)
6789 ("ghc-data-default" ,ghc-data-default)
85538709 6790 ("ghc-deepseq-generics" ,ghc-deepseq-generics)
1afa5abb
RW
6791 ("ghc-diff" ,ghc-diff)
6792 ("ghc-doctemplates" ,ghc-doctemplates)
6793 ("ghc-executable-path" ,ghc-executable-path)
6794 ("ghc-glob" ,ghc-glob)
6795 ("ghc-haddock-library" ,ghc-haddock-library)
6796 ("ghc-hslua" ,ghc-hslua)
6797 ("ghc-hslua-module-text" ,ghc-hslua-module-text)
6798 ("ghc-http" ,ghc-http)
85538709
RW
6799 ("ghc-http-client" ,ghc-http-client)
6800 ("ghc-http-client-tls" ,ghc-http-client-tls)
6801 ("ghc-http-types" ,ghc-http-types)
1afa5abb 6802 ("ghc-juicypixels" ,ghc-juicypixels)
1afa5abb
RW
6803 ("ghc-network" ,ghc-network)
6804 ("ghc-network-uri" ,ghc-network-uri)
6805 ("ghc-old-locale" ,ghc-old-locale)
6806 ("ghc-pandoc-types" ,ghc-pandoc-types)
6807 ("ghc-parsec" ,ghc-parsec)
6808 ("ghc-random" ,ghc-random)
6809 ("ghc-scientific" ,ghc-scientific)
6810 ("ghc-sha" ,ghc-sha)
6811 ("ghc-skylighting" ,ghc-skylighting)
6812 ("ghc-split" ,ghc-split)
6813 ("ghc-syb" ,ghc-syb)
6814 ("ghc-tagsoup" ,ghc-tagsoup)
6815 ("ghc-temporary" ,ghc-temporary)
6816 ("ghc-texmath" ,ghc-texmath)
6817 ("ghc-text" ,ghc-text)
6818 ("ghc-unordered-containers" ,ghc-unordered-containers)
6819 ("ghc-vector" ,ghc-vector)
6820 ("ghc-xml" ,ghc-xml)
6821 ("ghc-yaml" ,ghc-yaml)
6822 ("ghc-zip-archive" ,ghc-zip-archive)
6823 ("ghc-zlib" ,ghc-zlib)))
85538709 6824 (native-inputs
1afa5abb
RW
6825 `(("ghc-tasty" ,ghc-tasty)
6826 ("ghc-tasty-golden" ,ghc-tasty-golden)
6827 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
6828 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
85538709
RW
6829 ("ghc-quickcheck" ,ghc-quickcheck)
6830 ("ghc-hunit" ,ghc-hunit)))
98b90194 6831 (home-page "https://pandoc.org")
85538709
RW
6832 (synopsis "Conversion between markup formats")
6833 (description
6834 "Pandoc is a Haskell library for converting from one markup format to
6835another, and a command-line tool that uses this library. It can read and
6836write Markdown and (subsets of) other formats, such as HTML, reStructuredText,
6837LaTeX, DocBook, and many more.
6838
6839Pandoc extends standard Markdown syntax with footnotes, embedded LaTeX,
6840definition lists, tables, and other features. A compatibility mode is
6841provided for those who need a drop-in replacement for Markdown.pl.")
3ac73271 6842 (license license:gpl2+)))
85538709 6843
37e02bf6
RW
6844(define-public ghc-hs-bibutils
6845 (package
6846 (name "ghc-hs-bibutils")
568cafd5 6847 (version "6.6.0.0")
37e02bf6
RW
6848 (source
6849 (origin
6850 (method url-fetch)
6851 (uri (string-append
6852 "https://hackage.haskell.org/package/hs-bibutils/hs-bibutils-"
6853 version ".tar.gz"))
6854 (sha256
6855 (base32
568cafd5 6856 "0n2sz2zl4naspryd49ii858qkjp2lapns5a2gr8zm6vvn5sh1f0l"))))
37e02bf6
RW
6857 (build-system haskell-build-system)
6858 (inputs `(("ghc-syb" ,ghc-syb)))
6859 (home-page "https://hackage.haskell.org/package/hs-bibutils")
6860 (synopsis "Haskell bindings to bibutils")
6861 (description
6862 "This package provides Haskell bindings to @code{bibutils}, a library
6863that interconverts between various bibliography formats using a common
6864MODS-format XML intermediate.")
6865 (license license:gpl2+)))
6866
9ce764b6
RW
6867(define-public ghc-rfc5051
6868 (package
6869 (name "ghc-rfc5051")
6870 (version "0.1.0.3")
6871 (source
6872 (origin
6873 (method url-fetch)
6874 (uri (string-append "https://hackage.haskell.org/package/rfc5051/"
6875 "rfc5051-" version ".tar.gz"))
6876 (sha256
6877 (base32
6878 "0av4c3qvwbkbzrjrrg601ay9pds7wscqqp2lc2z78mv2lllap3g3"))))
6879 (build-system haskell-build-system)
98b90194 6880 (home-page "https://hackage.haskell.org/package/rfc5051")
9ce764b6
RW
6881 (synopsis "Simple unicode collation as per RFC5051")
6882 (description
6883 "This library implements @code{unicode-casemap}, the simple, non
6884locale-sensitive unicode collation algorithm described in RFC 5051. Proper
6885unicode collation can be done using @code{text-icu}, but that is a big
6886dependency that depends on a large C library, and @code{rfc5051} might be
6887better for some purposes.")
6888 (license license:bsd-3)))
6889
d5040b44
RW
6890(define-public ghc-typed-process
6891 (package
6892 (name "ghc-typed-process")
10ae7345 6893 (version "0.2.3.0")
d5040b44
RW
6894 (source
6895 (origin
6896 (method url-fetch)
6897 (uri (string-append "https://hackage.haskell.org/package/"
6898 "typed-process/typed-process-"
6899 version ".tar.gz"))
6900 (sha256
6901 (base32
10ae7345 6902 "0j36vrc9w841m5qbwqra1lwiznx31xfnhin1sm8x2c2739csbpn0"))))
d5040b44
RW
6903 (build-system haskell-build-system)
6904 (inputs
6905 `(("ghc-async" ,ghc-async)
6906 ("ghc-stm" ,ghc-stm)))
6907 (native-inputs
6908 `(("ghc-base64-bytestring" ,ghc-base64-bytestring)
6909 ("ghc-hspec" ,ghc-hspec)
6910 ("hspec-discover" ,hspec-discover)
6911 ("ghc-temporary" ,ghc-temporary)))
6912 (home-page "https://haskell-lang.org/library/typed-process")
6913 (synopsis "Run external processes with strong typing of streams")
6914 (description
6915 "This library provides the ability to launch and interact with external
6916processes. It wraps around the @code{process} library, and intends to improve
6917upon it.")
6918 (license license:expat)))
6919
1aa45bbf
RW
6920(define-public ghc-conduit-extra
6921 (package
6922 (name "ghc-conduit-extra")
c106c48e 6923 (version "1.3.0")
1aa45bbf
RW
6924 (source
6925 (origin
6926 (method url-fetch)
6927 (uri (string-append "https://hackage.haskell.org/package/"
6928 "conduit-extra/conduit-extra-"
6929 version ".tar.gz"))
6930 (sha256
6931 (base32
c106c48e 6932 "1bi2b6kdzy5f9glq46jzsk02has95jkxqz0cchpbmnakzhjwjh9c"))))
1aa45bbf
RW
6933 (build-system haskell-build-system)
6934 (inputs
6935 `(("ghc-conduit" ,ghc-conduit)
6936 ("ghc-exceptions" ,ghc-exceptions)
6937 ("ghc-monad-control" ,ghc-monad-control)
6938 ("ghc-text" ,ghc-text)
6939 ("ghc-transformers-base" ,ghc-transformers-base)
c106c48e 6940 ("ghc-typed-process" ,ghc-typed-process)
1aa45bbf
RW
6941 ("ghc-async" ,ghc-async)
6942 ("ghc-attoparsec" ,ghc-attoparsec)
6943 ("ghc-blaze-builder" ,ghc-blaze-builder)
6944 ("ghc-network" ,ghc-network)
6945 ("ghc-primitive" ,ghc-primitive)
6946 ("ghc-resourcet" ,ghc-resourcet)
6947 ("ghc-stm" ,ghc-stm)
6948 ("ghc-streaming-commons" ,ghc-streaming-commons)
6949 ("ghc-hspec" ,ghc-hspec)
6950 ("ghc-bytestring-builder" ,ghc-bytestring-builder)
6951 ("ghc-quickcheck" ,ghc-quickcheck)))
6952 (native-inputs
6953 `(("hspec-discover" ,hspec-discover)))
7bf837fd 6954 (home-page "https://github.com/snoyberg/conduit")
1aa45bbf
RW
6955 (synopsis "Conduit adapters for common libraries")
6956 (description
6957 "The @code{conduit} package itself maintains relative small dependencies.
6958The purpose of this package is to collect commonly used utility functions
6959wrapping other library dependencies, without depending on heavier-weight
6960dependencies. The basic idea is that this package should only depend on
6961@code{haskell-platform} packages and @code{conduit}.")
6962 (license license:expat)))
6963
e9ef2c51
RW
6964(define-public ghc-xml-types
6965 (package
6966 (name "ghc-xml-types")
6967 (version "0.3.6")
6968 (source
6969 (origin
6970 (method url-fetch)
6971 (uri (string-append "https://hackage.haskell.org/package/xml-types/"
6972 "xml-types-" version ".tar.gz"))
6973 (sha256
6974 (base32
6975 "1jgqxsa9p2q3h6nymbfmvhldqrqlwrhrzmwadlyc0li50x0d8dwr"))))
6976 (build-system haskell-build-system)
6977 (inputs `(("ghc-text" ,ghc-text)))
6978 (home-page "https://john-millikin.com/software/haskell-xml/")
6979 (synopsis "Basic types for representing XML")
6980 (description "This package provides basic types for representing XML
6981documents.")
6982 (license license:expat)))
6983
bfdfb0f6
RW
6984(define-public ghc-xml-conduit
6985 (package
6986 (name "ghc-xml-conduit")
e30397dd 6987 (version "1.8.0.1")
bfdfb0f6
RW
6988 (source
6989 (origin
6990 (method url-fetch)
6991 (uri (string-append "https://hackage.haskell.org/package/xml-conduit/"
6992 "xml-conduit-" version ".tar.gz"))
6993 (sha256
6994 (base32
e30397dd 6995 "177gmyigxql1pn3ncz0r8annwv5cbxnihbgrrg1dhm4gmc9jy2wq"))))
bfdfb0f6
RW
6996 (build-system haskell-build-system)
6997 (inputs
6998 `(("ghc-conduit" ,ghc-conduit)
6999 ("ghc-conduit-extra" ,ghc-conduit-extra)
e30397dd 7000 ("ghc-doctest" ,ghc-doctest)
bfdfb0f6
RW
7001 ("ghc-resourcet" ,ghc-resourcet)
7002 ("ghc-text" ,ghc-text)
7003 ("ghc-xml-types" ,ghc-xml-types)
7004 ("ghc-attoparsec" ,ghc-attoparsec)
29a26386 7005 ("ghc-data-default-class" ,ghc-data-default-class)
bfdfb0f6
RW
7006 ("ghc-blaze-markup" ,ghc-blaze-markup)
7007 ("ghc-blaze-html" ,ghc-blaze-html)
bfdfb0f6
RW
7008 ("ghc-monad-control" ,ghc-monad-control)
7009 ("ghc-hspec" ,ghc-hspec)
7010 ("ghc-hunit" ,ghc-hunit)))
7bf837fd 7011 (home-page "https://github.com/snoyberg/xml")
bfdfb0f6
RW
7012 (synopsis "Utilities for dealing with XML with the conduit package")
7013 (description
7014 "This package provides pure-Haskell utilities for dealing with XML with
7015the @code{conduit} package.")
7016 (license license:expat)))
7017
eb0ff8a3
RW
7018(define-public ghc-pandoc-citeproc
7019 (package
7020 (name "ghc-pandoc-citeproc")
a235ea4f 7021 (version "0.14.3.1")
eb0ff8a3
RW
7022 (source
7023 (origin
7024 (method url-fetch)
7025 (uri (string-append "https://hackage.haskell.org/package/"
7026 "pandoc-citeproc/pandoc-citeproc-"
7027 version ".tar.gz"))
7028 (sha256
7029 (base32
a235ea4f 7030 "0yj6rckwsc9vig40cm15ry0j3d01xpk04qma9n4byhal6v4b5h22"))))
eb0ff8a3
RW
7031 (build-system haskell-build-system)
7032 (arguments
7033 `(#:phases
7034 (modify-phases %standard-phases
003ec2c8
TS
7035 ;; Many YAML tests (44) are failing do to changes in ghc-yaml:
7036 ;; <https://github.com/jgm/pandoc-citeproc/issues/342>.
7037 (add-before 'configure 'patch-tests
7038 (lambda _
7039 (substitute* "tests/test-pandoc-citeproc.hs"
7040 (("let allTests = citeprocTests \\+\\+ biblio2yamlTests")
7041 "let allTests = citeprocTests"))))
eb0ff8a3
RW
7042 ;; Tests need to be run after installation.
7043 (delete 'check)
7044 (add-after 'install 'post-install-check
7045 (assoc-ref %standard-phases 'check)))))
7046 (inputs
f54f0475 7047 `(("ghc-pandoc-types" ,ghc-pandoc-types)
eb0ff8a3
RW
7048 ("ghc-pandoc" ,ghc-pandoc)
7049 ("ghc-tagsoup" ,ghc-tagsoup)
7050 ("ghc-aeson" ,ghc-aeson)
7051 ("ghc-text" ,ghc-text)
7052 ("ghc-vector" ,ghc-vector)
7053 ("ghc-xml-conduit" ,ghc-xml-conduit)
7054 ("ghc-unordered-containers" ,ghc-unordered-containers)
7055 ("ghc-data-default" ,ghc-data-default)
7056 ("ghc-setenv" ,ghc-setenv)
7057 ("ghc-split" ,ghc-split)
7058 ("ghc-yaml" ,ghc-yaml)
7059 ("ghc-hs-bibutils" ,ghc-hs-bibutils)
7060 ("ghc-rfc5051" ,ghc-rfc5051)
7061 ("ghc-syb" ,ghc-syb)
7062 ("ghc-parsec" ,ghc-parsec)
7063 ("ghc-old-locale" ,ghc-old-locale)
7064 ("ghc-aeson-pretty" ,ghc-aeson-pretty)
7065 ("ghc-attoparsec" ,ghc-attoparsec)
7066 ("ghc-temporary" ,ghc-temporary)))
7067 (home-page "https://github.com/jgm/pandoc-citeproc")
7068 (synopsis "Library for using pandoc with citeproc")
7069 (description
7070 "The @code{pandoc-citeproc} library exports functions for using the
7071citeproc system with pandoc. It relies on @code{citeproc-hs}, a library for
7072rendering bibliographic reference citations into a variety of styles using a
7073macro language called @dfn{Citation Style Language} (CSL). This package also
7074contains an executable @code{pandoc-citeproc}, which works as a pandoc filter,
7075and also has a mode for converting bibliographic databases a YAML format
7076suitable for inclusion in pandoc YAML metadata.")
7077 (license license:bsd-3)))
7078
abbf2623
LC
7079(define-public ghc-union-find
7080 (package
7081 (name "ghc-union-find")
7082 (version "0.2")
7083 (source (origin
7084 (method url-fetch)
7085 (uri (string-append
612fddec 7086 "https://hackage.haskell.org/package/union-find/union-find-"
abbf2623
LC
7087 version ".tar.gz"))
7088 (sha256
7089 (base32
7090 "1v7hj42j9w6jlzi56jg8rh4p58gfs1c5dx30wd1qqvn0p0mnihp6"))))
7091 (build-system haskell-build-system)
612fddec 7092 (home-page "https://github.com/nominolo/union-find")
abbf2623
LC
7093 (synopsis "Efficient union and equivalence testing of sets")
7094 (description
7095 "The Union/Find algorithm implements these operations in (effectively)
7096constant-time:
7097@enumerate
7098@item Check whether two elements are in the same equivalence class.
7099@item Create a union of two equivalence classes.
7100@item Look up the descriptor of the equivalence class.
7101@end enumerate\n")
7102 (license license:bsd-3)))
7103
cc5e16a7 7104(define-public ghc-base16-bytestring
7105 (package
7106 (name "ghc-base16-bytestring")
7107 (version "0.1.1.6")
7108 (source
7109 (origin
7110 (method url-fetch)
7111 (uri (string-append
7112 "https://hackage.haskell.org/package/base16-bytestring/"
7113 "base16-bytestring-" version ".tar.gz"))
7114 (sha256
7115 (base32
7116 "0jf40m3yijqw6wd1rwwvviww46fasphaay9m9rgqyhf5aahnbzjs"))))
7117 (build-system haskell-build-system)
7bf837fd 7118 (home-page "https://github.com/bos/base16-bytestring")
cc5e16a7 7119 (synopsis "Fast base16 (hex) encoding and decoding for ByteStrings")
7120 (description
7121 "This package provides a Haskell library for working with base16-encoded
7122data quickly and efficiently, using the ByteString type.")
7123 (license license:bsd-3)))
7124
7c14128d 7125(define-public ghc-data-ordlist
7126 (package
7127 (name "ghc-data-ordlist")
7128 (version "0.4.7.0")
7129 (source
7130 (origin
7131 (method url-fetch)
7132 (uri (string-append
7133 "https://hackage.haskell.org/package/data-ordlist/data-ordlist-"
7134 version ".tar.gz"))
7135 (sha256
7136 (base32
7137 "03a9ix1fcx08viwv2jg5ndw1qbkydyyrmjvqr9wasmcik9x1wv3g"))))
7138 (build-system haskell-build-system)
98b90194 7139 (home-page "https://hackage.haskell.org/package/data-ordlist")
7c14128d 7140 (synopsis "Set and bag operations on ordered lists")
7141 (description
7142 "This module provides set and multiset operations on ordered lists.")
7143 (license license:bsd-3)))
7144
d58dc851 7145(define-public ghc-regex-applicative
7146 (package
7147 (name "ghc-regex-applicative")
7148 (version "0.3.3")
7149 (source
7150 (origin
7151 (method url-fetch)
7152 (uri (string-append
7153 "https://hackage.haskell.org/package/regex-applicative/"
7154 "regex-applicative-" version ".tar.gz"))
7155 (sha256
7156 (base32
7157 "1riv7jqf26lbv4rm54sd6mrx8xdh4dvh4xbzymzdfdw13k6a4nb6"))))
7158 (build-system haskell-build-system)
7159 (inputs
7160 `(("ghc-smallcheck" ,ghc-smallcheck)
7161 ("ghc-tasty" ,ghc-tasty)
7162 ("ghc-tasty-smallcheck" ,ghc-tasty-smallcheck)
7163 ("ghc-tasty-hunit" ,ghc-tasty-hunit)))
7164 (home-page "https://github.com/feuerbach/regex-applicative")
7165 (synopsis "Regex-based parsing with applicative interface")
7166 (description
7167 "@code{regex-applicative} is a Haskell library for parsing using
7168regular expressions. Parsers can be built using Applicative interface.")
7169 (license license:expat)))
7170
7e444dba 7171(define-public ghc-regex-tdfa
7172 (package
7173 (name "ghc-regex-tdfa")
3e6fe51f 7174 (version "1.2.3.1")
7e444dba 7175 (source
7176 (origin
7177 (method url-fetch)
7178 (uri (string-append
7179 "https://hackage.haskell.org/package/regex-tdfa/regex-tdfa-"
7180 version ".tar.gz"))
7181 (sha256
7182 (base32
3e6fe51f 7183 "0l7ajnh4hpgggf2a1r9dg0hx2fy679vd2kada5y7r02hy3nfxala"))))
7e444dba 7184 (build-system haskell-build-system)
7185 (inputs
f54f0475 7186 `(("ghc-parsec" ,ghc-parsec)
7e444dba 7187 ("ghc-regex-base" ,ghc-regex-base)))
7188 (home-page "https://github.com/ChrisKuklewicz/regex-tdfa")
7189 (synopsis "POSIX extended regular expressions in Haskell.")
7190 (description
7191 "Regex-tdfa is a pure Haskell regular expression library implementing POSIX
7192extended regular expressions. It is a \"tagged\" DFA regex engine. It is
7193inspired by libtre.")
7194 (license license:bsd-3)))
7195
fe3c62c7 7196(define-public ghc-regex-compat-tdfa
7197 (package
7198 (name "ghc-regex-compat-tdfa")
7199 (version "0.95.1.4")
7200 (source
7201 (origin
7202 (method url-fetch)
7203 (uri (string-append
7204 "https://hackage.haskell.org/package/regex-compat-tdfa/regex-compat-tdfa-"
7205 version ".tar.gz"))
7206 (sha256
7207 (base32
7208 "1p90fn90yhp7fvljjdqjp41cszidcfz4pw7fwvzyx4739b98x8sg"))))
7209 (build-system haskell-build-system)
7210 (inputs
7211 `(("ghc-regex-base" ,ghc-regex-base)
7212 ("ghc-regex-tdfa" ,ghc-regex-tdfa)))
98b90194 7213 (home-page "https://hub.darcs.net/shelarcy/regex-compat-tdfa")
fe3c62c7 7214 (synopsis "Unicode Support version of Text.Regex, using regex-tdfa")
7215 (description
7216 "One module layer over @code{regex-tdfa} to replace @code{Text.Regex}.
7217@code{regex-compat} can't use Unicode characters correctly because of using regex-posix.
7218This is not good for Unicode users. This modified regex-compat uses regex-tdfa to solve
7219this problem.")
7220 (license license:bsd-3)))
7221
e9e519be 7222(define-public ghc-sandi
7223 (package
7224 (name "ghc-sandi")
66dbe158 7225 (version "0.4.2")
e9e519be 7226 (source
7227 (origin
7228 (method url-fetch)
7229 (uri (string-append
7230 "https://hackage.haskell.org/package/sandi/sandi-"
7231 version ".tar.gz"))
7232 (sha256
7233 (base32
66dbe158 7234 "0dvkpk91n9kz2ha04rvp231ra9sgd1ilyc1qkzf9l03iir7zrh9b"))))
e9e519be 7235 (build-system haskell-build-system)
7236 (inputs
7237 `(("ghc-stringsearch" ,ghc-stringsearch)
7238 ("ghc-conduit" ,ghc-conduit)
7239 ("ghc-exceptions" ,ghc-exceptions)
7240 ("ghc-hunit" ,ghc-hunit)
7241 ("ghc-tasty" ,ghc-tasty)
7242 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
7243 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
7244 ("ghc-tasty-th" ,ghc-tasty-th)))
98b90194 7245 (home-page "https://hackage.haskell.org/package/sandi")
e9e519be 7246 (synopsis "Data encoding library")
7247 (description "Reasonably fast data encoding library.")
7248 (license license:bsd-3)))
7249
a71f8617 7250(define-public ghc-bytestring-handle
7251 (package
7252 (name "ghc-bytestring-handle")
39bcc932 7253 (version "0.1.0.6")
a71f8617 7254 (source
7255 (origin
7256 (method url-fetch)
7257 (uri (string-append
7258 "https://hackage.haskell.org/package/bytestring-handle/bytestring-handle-"
7259 version ".tar.gz"))
7260 (sha256
7261 (base32
39bcc932 7262 "18f17aja1ivhr3zyg2cccn2m03hdn5jf5410dndkhf12gvgiqs7y"))))
a71f8617 7263 (build-system haskell-build-system)
5e4058ad
TS
7264 (arguments
7265 `(#:phases
7266 (modify-phases %standard-phases
7267 (add-before 'configure 'update-constraints
7268 (lambda _
7269 (substitute* "bytestring-handle.cabal"
7270 (("QuickCheck >= 2\\.1\\.2 && < 2\\.11")
7271 "QuickCheck >= 2.1.2 && < 2.12")
7272 (("base >= 4\\.2 && < 4\\.11")
7273 "base >= 4.2 && < 4.12")))))))
a71f8617 7274 (inputs
6bfcb59d
TGR
7275 `(("ghc-hunit" ,ghc-hunit)
7276 ("ghc-quickcheck" ,ghc-quickcheck)
7277 ("ghc-test-framework" ,ghc-test-framework)
a71f8617 7278 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
6bfcb59d 7279 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
98b90194 7280 (home-page "https://hub.darcs.net/ganesh/bytestring-handle")
a71f8617 7281 (synopsis "ByteString-backed Handles")
7282 (description "ByteString-backed Handles") ; There is no description
7283 (license license:bsd-3)))
7284
f8270331 7285(define-public ghc-tar
7286 (package
7287 (name "ghc-tar")
221c3563 7288 (version "0.5.1.0")
f8270331 7289 (source
7290 (origin
7291 (method url-fetch)
7292 (uri (string-append
7293 "https://hackage.haskell.org/package/tar/tar-"
7294 version ".tar.gz"))
7295 (sha256
7296 (base32
221c3563 7297 "0s2brvaxg5fki2jdkccmnpssiy6a3wjh24p6a3dkkdvjcixnk7f8"))))
f8270331 7298 (build-system haskell-build-system)
f25c95d3
RW
7299 ;; FIXME: 2/24 tests fail.
7300 (arguments `(#:tests? #f))
f8270331 7301 (inputs
7302 `(("ghc-bytestring-handle" ,ghc-bytestring-handle)
7303 ("ghc-quickcheck" ,ghc-quickcheck)
7304 ("ghc-tasty" ,ghc-tasty)
473cd277 7305 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
98b90194 7306 (home-page "https://hackage.haskell.org/package/tar")
f8270331 7307 (synopsis "Reading, writing and manipulating \".tar\" archive files")
7308 (description
7309 "This library is for working with \\\"@.tar@\\\" archive files.
7310It can read and write a range of common variations of the tar archive format
7311including V7, POSIX USTAR and GNU formats. It provides support for packing and
7312unpacking portable archives. This makes it suitable for distribution but not
7313backup because details like file ownership and exact permissions are not
7314preserved. It also provides features for random access to archive content using
7315an index.")
7316 (license license:bsd-3)))
7317
867ed977
AV
7318(define-public ghc-stmonadtrans
7319 (package
7320 (name "ghc-stmonadtrans")
7321 (version "0.4.3")
7322 (source
7323 (origin
7324 (method url-fetch)
7325 (uri (string-append "https://hackage.haskell.org/package/STMonadTrans"
7326 "/STMonadTrans-" version ".tar.gz"))
7327 (sha256
7328 (base32 "1nr26fnmi5fdjc6d00w13kjhmfyvb5b837d0006w4dj0yxndaksp"))))
7329 (build-system haskell-build-system)
867ed977
AV
7330 (home-page "https://hackage.haskell.org/package/STMonadTrans")
7331 (synopsis "Monad transformer version of the ST monad")
7332 (description
7333 "This package provides a monad transformer version of the @code{ST} monad
7334for strict state threads.")
7335 (license license:bsd-3)))
7336
027b7976 7337(define-public ghc-findbin
7338 (package
7339 (name "ghc-findbin")
7340 (version "0.0.5")
7341 (source
7342 (origin
7343 (method url-fetch)
7344 (uri (string-append
7345 "https://hackage.haskell.org/package/FindBin/FindBin-"
7346 version ".tar.gz"))
7347 (sha256
7348 (base32
7349 "197xvn05yysmibm1p5wzxfa256lvpbknr5d1l2ws6g40w1kpk717"))))
7350 (build-system haskell-build-system)
7351 (home-page "https://github.com/audreyt/findbin")
7352 (synopsis "Get the absolute path of the running program")
7353 (description
7354 "This module locates the full directory of the running program, to allow
7355the use of paths relative to it. FindBin supports invocation of Haskell
7356programs via \"ghci\", via \"runhaskell/runghc\", as well as compiled as
7357an executable.")
7358 (license license:bsd-3)))
7359
d52ca22a 7360(define-public ghc-patience
7361 (package
7362 (name "ghc-patience")
7363 (version "0.1.1")
7364 (source
7365 (origin
7366 (method url-fetch)
7367 (uri (string-append
7368 "https://hackage.haskell.org/package/patience/patience-"
7369 version ".tar.gz"))
7370 (sha256
7371 (base32
7372 "0qyv20gqy9pb1acy700ahv70lc6vprcwb26cc7fcpcs4scsc7irm"))))
7373 (build-system haskell-build-system)
98b90194 7374 (home-page "https://hackage.haskell.org/package/patience")
d52ca22a 7375 (synopsis "Patience diff and longest increasing subsequence")
7376 (description
7377 "This library implements the 'patience diff' algorithm, as well as the
7378patience algorithm for the longest increasing subsequence problem.
7379Patience diff computes the difference between two lists, for example the lines
7380of two versions of a source file. It provides a good balance between
7381performance, nice output for humans, and simplicity of implementation.")
7382 (license license:bsd-3)))
7383
41167bd2 7384(define-public ghc-monads-tf
7385 (package
7386 (name "ghc-monads-tf")
7387 (version "0.1.0.3")
7388 (source
7389 (origin
7390 (method url-fetch)
7391 (uri (string-append
7392 "https://hackage.haskell.org/package/monads-tf/monads-tf-"
7393 version ".tar.gz"))
7394 (sha256
7395 (base32
7396 "1wdhskwa6dw8qljbvwpyxj8ca6y95q2np7z4y4q6bpf4anmd5794"))))
7397 (build-system haskell-build-system)
98b90194 7398 (home-page "https://hackage.haskell.org/package/monads-tf")
41167bd2 7399 (synopsis "Monad classes, using type families")
7400 (description
7401 "Monad classes using type families, with instances for various monad transformers,
7402inspired by the paper 'Functional Programming with Overloading and Higher-Order
7403Polymorphism', by Mark P Jones. This package is almost a compatible replacement for
7404the @code{mtl-tf} package.")
7405 (license license:bsd-3)))
7406
e1a56bb2 7407(define-public ghc-colour
7408(package
7409 (name "ghc-colour")
d05d03dd 7410 (version "2.3.4")
e1a56bb2 7411 (source
7412 (origin
7413 (method url-fetch)
7414 (uri (string-append
7415 "https://hackage.haskell.org/package/colour/colour-"
7416 version ".tar.gz"))
7417 (sha256
7418 (base32
d05d03dd
TS
7419 "1sy51nz096sv91nxqk6yk7b92b5a40axv9183xakvki2nc09yhqg"))))
7420 (arguments
7421 ;; The tests for this package have the following dependency cycle:
7422 ;; ghc-test-framework -> ghc-ansi-terminal -> ghc-colour.
7423 `(#:tests? #f))
e1a56bb2 7424 (build-system haskell-build-system)
98b90194 7425 (home-page "https://www.haskell.org/haskellwiki/Colour")
e1a56bb2 7426 (synopsis "Model for human colour perception")
7427 (description
7428 "This package provides a data type for colours and transparency.
7429Colours can be blended and composed. Various colour spaces are
7430supported. A module of colour names (\"Data.Colour.Names\") is provided.")
7431 (license license:expat)))
7432
6e0741f7 7433(define-public ghc-wl-pprint-text
7434 (package
7435 (name "ghc-wl-pprint-text")
e173a95f 7436 (version "1.2.0.0")
6e0741f7 7437 (source
7438 (origin
7439 (method url-fetch)
7440 (uri (string-append
7441 "https://hackage.haskell.org/package/wl-pprint-text/wl-pprint-text-"
7442 version ".tar.gz"))
7443 (sha256
7444 (base32
e173a95f 7445 "0g3w92rad6x5appfb22rbzcas2ix2h0hy91sdxhq8a4a5cnlrpa0"))))
6e0741f7 7446 (build-system haskell-build-system)
7447 (inputs
e173a95f
AI
7448 `(("ghc-base-compat" ,ghc-base-compat)
7449 ("ghc-text" ,ghc-text)))
98b90194 7450 (home-page "https://hackage.haskell.org/package/wl-pprint-text")
6e0741f7 7451 (synopsis "Wadler/Leijen Pretty Printer for Text values")
7452 (description
7453 "A clone of wl-pprint for use with the text library.")
7454 (license license:bsd-3)))
7455
d4cca6b0 7456(define-public ghc-fgl-arbitrary
7457 (package
7458 (name "ghc-fgl-arbitrary")
d4fd8ee4 7459 (version "0.2.0.3")
d4cca6b0 7460 (source
7461 (origin
7462 (method url-fetch)
7463 (uri (string-append
7464 "https://hackage.haskell.org/package/fgl-arbitrary/fgl-arbitrary-"
7465 version ".tar.gz"))
7466 (sha256
7467 (base32
d4fd8ee4 7468 "0ln1szgfy8fa78l3issq4fx3aqnnd54w3cb4wssrfi48vd5rkfjm"))))
d4cca6b0 7469 (build-system haskell-build-system)
54afb52e 7470 (arguments
11afd13d
TS
7471 `(#:phases
7472 (modify-phases %standard-phases
7473 (add-before 'configure 'update-constraints
7474 (lambda _
7475 (substitute* "fgl-arbitrary.cabal"
7476 (("QuickCheck >= 2\\.3 && < 2\\.10")
7477 "QuickCheck >= 2.3 && < 2.12")
7478 (("hspec >= 2\\.1 && < 2\\.5")
7479 "hspec >= 2.1 && < 2.6")))))))
d4cca6b0 7480 (inputs
7481 `(("ghc-fgl" ,ghc-fgl)
7482 ("ghc-quickcheck" ,ghc-quickcheck)
7483 ("ghc-hspec" ,ghc-hspec)))
98b90194 7484 (home-page "https://hackage.haskell.org/package/fgl-arbitrary")
d4cca6b0 7485 (synopsis "QuickCheck support for fgl")
7486 (description
7487 "Provides Arbitrary instances for fgl graphs to avoid adding a
7488QuickCheck dependency for fgl whilst still making the instances
7489available to others. Also available are non-fgl-specific functions
7490for generating graph-like data structures.")
7491 (license license:bsd-3)))
7492
3db88277 7493(define-public ghc-graphviz
7494 (package
7495 (name "ghc-graphviz")
f797a0e9 7496 (version "2999.20.0.2")
3db88277 7497 (source (origin
7498 (method url-fetch)
7499 (uri (string-append "https://hackage.haskell.org/package/"
7500 "graphviz/graphviz-" version ".tar.gz"))
7501 (sha256
7502 (base32
f797a0e9 7503 "0kj7ap0gnliviq2p8lscw1m06capnsa90vpvcys24nqy5nw2wrp7"))))
3db88277 7504 (build-system haskell-build-system)
7505 (inputs
7506 `(("ghc-quickcheck" ,ghc-quickcheck)
7507 ("ghc-colour" ,ghc-colour)
7508 ("ghc-dlist" ,ghc-dlist)
7509 ("ghc-fgl" ,ghc-fgl)
7510 ("ghc-fgl-arbitrary" ,ghc-fgl-arbitrary)
7511 ("ghc-polyparse" ,ghc-polyparse)
7512 ("ghc-temporary" ,ghc-temporary)
7513 ("ghc-text" ,ghc-text)
7514 ("ghc-wl-pprint-text" ,ghc-wl-pprint-text)))
f797a0e9
AI
7515 (native-inputs
7516 `(("ghc-hspec" ,ghc-hspec)
7517 ("graphviz" ,graphviz)
7518 ("hspec-discover" ,hspec-discover)))
3db88277 7519 (home-page "https://hackage.haskell.org/package/graphviz")
7520 (synopsis "Bindings to Graphviz for graph visualisation")
7521 (description
7522 "This library provides bindings for the Dot language used by
98b90194 7523the @uref{https://graphviz.org/, Graphviz} suite of programs for
3db88277 7524visualising graphs, as well as functions to call those programs.
7525Main features of the graphviz library include:
7526
7527@enumerate
7528@item Almost complete coverage of all Graphviz attributes and syntax
7529@item Support for specifying clusters
7530@item The ability to use a custom node type
7531@item Functions for running a Graphviz layout tool with all specified output types
7532@item Generate and parse Dot code with two options: strict and liberal
7533@item Functions to convert FGL graphs and other graph-like data structures
7534@item Round-trip support for passing an FGL graph through Graphviz to augment node
7535and edge labels with positional information, etc.
7536@end enumerate\n")
7537 (license license:bsd-3)))
7538
6aab9ba6 7539(define-public ghc-constraints
7540 (package
7541 (name "ghc-constraints")
3ff7232a 7542 (version "0.10.1")
6aab9ba6 7543 (source
7544 (origin
7545 (method url-fetch)
7546 (uri (string-append
7547 "https://hackage.haskell.org/package/constraints/constraints-"
7548 version ".tar.gz"))
7549 (sha256
7550 (base32
3ff7232a 7551 "1xy3vv78jxc17hm0z7qqspxjwv7l2jbcbj670yrl2f053qkfr02q"))))
6aab9ba6 7552 (build-system haskell-build-system)
7553 (inputs
7554 `(("ghc-hashable" ,ghc-hashable)
3ff7232a 7555 ("ghc-semigroups" ,ghc-semigroups)
6aab9ba6 7556 ("ghc-transformers-compat" ,ghc-transformers-compat)))
3ff7232a
TS
7557 (native-inputs
7558 `(("ghc-hspec" ,ghc-hspec)
7559 ("hspec-discover" ,hspec-discover)))
7bf837fd 7560 (home-page "https://github.com/ekmett/constraints/")
6aab9ba6 7561 (synopsis "Constraint manipulation")
7562 (description
7563 "GHC 7.4 gave us the ability to talk about @code{ConstraintKinds}.
7564They stopped crashing the compiler in GHC 7.6. This package provides
7565a vocabulary for working with them.")
7566 (license license:bsd-3)))
7567
2b41f4af 7568(define-public ghc-lifted-async
7569 (package
7570 (name "ghc-lifted-async")
a57c91a1 7571 (version "0.10.0.2")
2b41f4af 7572 (source
7573 (origin
7574 (method url-fetch)
7575 (uri (string-append
7576 "https://hackage.haskell.org/package/lifted-async/lifted-async-"
7577 version ".tar.gz"))
7578 (sha256
7579 (base32
a57c91a1 7580 "1073r512c1x2m1v0jar9bwqg656slg7jd1jhsyj6m8awgx1l1mwf"))))
2b41f4af 7581 (build-system haskell-build-system)
7582 (inputs
7583 `(("ghc-async" ,ghc-async)
7584 ("ghc-lifted-base" ,ghc-lifted-base)
7585 ("ghc-transformers-base" ,ghc-transformers-base)
7586 ("ghc-monad-control" ,ghc-monad-control)
7587 ("ghc-constraints" ,ghc-constraints)
7588 ("ghc-hunit" ,ghc-hunit)
2b41f4af 7589 ("ghc-tasty" ,ghc-tasty)
a57c91a1 7590 ("ghc-tasty-expected-failure" ,ghc-tasty-expected-failure)
2b41f4af 7591 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
7592 ("ghc-tasty-th" ,ghc-tasty-th)))
7593 (home-page "https://github.com/maoe/lifted-async")
7594 (synopsis "Run lifted IO operations asynchronously and wait for their results")
7595 (description
7596 "This package provides IO operations from @code{async} package lifted to any
7597instance of @code{MonadBase} or @code{MonadBaseControl}.")
7598 (license license:bsd-3)))
7599
ddd5955b 7600;; Ghc-shelly depends on ghc-system-filepath and ghc-system-fileio, who in turn depend on
7601;; ghc-chell and ghc-chell-quickcheck for the test phase. Ghc-chell depends on ghc-options
7602;; which depends on ghc-chell and ghc-chell-quickcheck.
7603;; Therefore we bootstrap it with tests disabled.
7604(define ghc-system-filepath-bootstrap
7605 (package
7606 (name "ghc-system-filepath-bootstrap")
343c2398 7607 (version "0.4.14")
ddd5955b 7608 (source
7609 (origin
7610 (method url-fetch)
7611 (uri (string-append
7612 "https://hackage.haskell.org/package/system-filepath/system-filepath-"
7613 version ".tar.gz"))
7614 (sha256
7615 (base32
343c2398 7616 "14yras4pz2dh55xpwmazcgxijvi8913pjgzb9iw50mjq1lycwmhn"))))
ddd5955b 7617 (build-system haskell-build-system)
7618 (arguments
7619 `(#:tests? #f))
7620 (inputs
7621 `(("ghc-text" ,ghc-text)
7622 ("ghc-quickcheck" ,ghc-quickcheck)))
7623 (home-page "https://github.com/fpco/haskell-filesystem")
7624 (synopsis "High-level, byte-based file and directory path manipulations")
7625 (description
7626 "Provides a FilePath datatype and utility functions for operating on it.
7627Unlike the filepath package, this package does not simply reuse String,
7628increasing type safety.")
7629 (license license:expat)))
7630
3f7aa102 7631;; See ghc-system-filepath-bootstrap. In addition this package depends on
7632;; ghc-system-filepath.
7633(define ghc-system-fileio-bootstrap
7634 (package
7635 (name "ghc-system-fileio-bootstrap")
7636 (version "0.3.16.3")
7637 (source
7638 (origin
7639 (method url-fetch)
7640 (uri (string-append
7641 "https://hackage.haskell.org/package/system-fileio/system-fileio-"
7642 version ".tar.gz"))
7643 (sha256
7644 (base32
7645 "1484hcl27s2qcby8ws5djj11q9bz68bspcifz9h5gii2ndy70x9i"))))
7646 (build-system haskell-build-system)
7647 (arguments
7648 `(#:tests? #f))
7649 (inputs
7650 `(("ghc-system-filepath-bootstrap" ,ghc-system-filepath-bootstrap)
7651 ("ghc-text" ,ghc-text)
7652 ("ghc-temporary" ,ghc-temporary)))
7653 (home-page "https://github.com/fpco/haskell-filesystem")
162a1374 7654 (synopsis "Consistent file system interaction across GHC versions")
3f7aa102 7655 (description
7656 "This is a small wrapper around the directory, unix, and Win32 packages,
7657for use with system-filepath. It provides a consistent API to the various
7658versions of these packages distributed with different versions of GHC.
7659In particular, this library supports working with POSIX files that have paths
7660which can't be decoded in the current locale encoding.")
7661 (license license:expat)))
7662
25b3bdb5 7663(define-public ghc-shelly
7664 (package
7665 (name "ghc-shelly")
c4348ca7 7666 (version "1.8.1")
25b3bdb5 7667 (source
7668 (origin
7669 (method url-fetch)
7670 (uri (string-append
7671 "https://hackage.haskell.org/package/shelly/shelly-"
7672 version ".tar.gz"))
7673 (sha256
7674 (base32
c4348ca7 7675 "023fbvbqs5gdwm30j5517gbdcc7fvz0md70dgwgpypkskj3i926y"))))
25b3bdb5 7676 (build-system haskell-build-system)
7677 (inputs
f54f0475 7678 `(("ghc-unix-compat" ,ghc-unix-compat)
25b3bdb5 7679 ("ghc-system-filepath-bootstrap" ,ghc-system-filepath-bootstrap)
7680 ("ghc-system-fileio-bootstrap" ,ghc-system-fileio-bootstrap)
7681 ("ghc-monad-control" ,ghc-monad-control)
7682 ("ghc-lifted-base" ,ghc-lifted-base)
7683 ("ghc-lifted-async" ,ghc-lifted-async)
7684 ("ghc-exceptions" ,ghc-exceptions)
7685 ("ghc-enclosed-exceptions" ,ghc-enclosed-exceptions)
7686 ("ghc-text" ,ghc-text)
7687 ("ghc-async" ,ghc-async)
7688 ("ghc-transformers-base" ,ghc-transformers-base)
7689 ("ghc-hunit" ,ghc-hunit)
c4348ca7
AI
7690 ("ghc-hspec" ,ghc-hspec)
7691 ("ghc-hspec-contrib" ,ghc-hspec-contrib)))
25b3bdb5 7692 (home-page "https://github.com/yesodweb/Shelly.hs")
7693 (synopsis "Shell-like (systems) programming in Haskell")
7694 (description
7695 "Shelly provides convenient systems programming in Haskell, similar in
7696spirit to POSIX shells. Shelly is originally forked from the Shellish package.")
7697 (license license:bsd-3)))
7698
7e06c4aa 7699;; See ghc-system-filepath-bootstrap, chell and chell-quickcheck are required for tests.
7700(define ghc-options-bootstrap
7701 (package
7702 (name "ghc-options-bootstrap")
7703 (version "1.2.1.1")
7704 (source
7705 (origin
7706 (method url-fetch)
7707 (uri (string-append
7708 "https://hackage.haskell.org/package/options/options-"
7709 version ".tar.gz"))
7710 (sha256
7711 (base32
7712 "0qjs0v1ny52w51n5582d4z8wy9h6n0zw1xb5dh686ff5wadflgi8"))))
7713 (build-system haskell-build-system)
7714 (arguments
7715 `(#:tests? #f))
7716 (inputs
7717 `(("ghc-monads-tf" ,ghc-monads-tf)))
7718 (home-page "https://john-millikin.com/software/haskell-options/")
7719 (synopsis "Powerful and easy-to-use command-line option parser")
7720 (description
7721 "The @code{options} package lets library and application developers
7722easily work with command-line options.")
7723 (license license:expat)))
7724
8ea94489 7725(define-public ghc-chell
7726 (package
7727 (name "ghc-chell")
6a9730a0 7728 (version "0.4.0.2")
8ea94489 7729 (source
7730 (origin
7731 (method url-fetch)
7732 (uri (string-append
7733 "https://hackage.haskell.org/package/chell/chell-"
7734 version ".tar.gz"))
7735 (sha256
7736 (base32
6a9730a0 7737 "10ingy9qnbmc8cqh4i9pskcw43l0mzk8f3d76b3qz3fig5ary3j9"))))
8ea94489 7738 (build-system haskell-build-system)
7739 (inputs
7740 `(("ghc-options-bootstrap" ,ghc-options-bootstrap)
7741 ("ghc-patience" ,ghc-patience)
7742 ("ghc-random" ,ghc-random)
7743 ("ghc-text" ,ghc-text)
7744 ("ghc-ansi-terminal" ,ghc-ansi-terminal)))
7745 (home-page "https://john-millikin.com/software/chell/")
7746 (synopsis "Simple and intuitive library for automated testing")
7747 (description
7748 "Chell is a simple and intuitive library for automated testing.
7749It natively supports assertion-based testing, and can use companion
7750libraries such as @code{chell-quickcheck} to support more complex
7751testing strategies.")
7752 (license license:expat)))
7753
475d3668 7754(define ghc-chell-quickcheck-bootstrap
7755 (package
7756 (name "ghc-chell-quickcheck-bootstrap")
a9717a52 7757 (version "0.2.5.1")
475d3668 7758 (source
7759 (origin
7760 (method url-fetch)
7761 (uri (string-append
a9717a52
TGR
7762 "https://hackage.haskell.org/package/chell-quickcheck/"
7763 "chell-quickcheck-" version ".tar.gz"))
475d3668 7764 (sha256
7765 (base32
a9717a52 7766 "1iicsys9igx7m7n4l2b8djardmjy2ah5ibzp7kzs758h460fq53a"))))
475d3668 7767 (build-system haskell-build-system)
7768 (inputs
7769 `(("ghc-chell" ,ghc-chell)
7770 ("ghc-random" ,ghc-random)
7771 ("ghc-quickcheck" ,ghc-quickcheck)))
7772 (arguments
4a3f50e3
TS
7773 `(#:tests? #f
7774 #:phases
7775 (modify-phases %standard-phases
7776 (add-before 'configure 'update-constraints
7777 (lambda _
7778 (substitute* "chell-quickcheck.cabal"
7779 (("QuickCheck >= 2\\.3 && < 2\\.11")
7780 "QuickCheck >= 2.3 && < 2.12")))))))
475d3668 7781 (home-page "https://john-millikin.com/software/chell/")
7782 (synopsis "QuickCheck support for the Chell testing library")
7783 (description "More complex tests for @code{chell}.")
7784 (license license:expat)))
7785
c92d944c 7786(define-public ghc-chell-quickcheck
7787 (package
7788 (name "ghc-chell-quickcheck")
a9717a52 7789 (version "0.2.5.1")
c92d944c 7790 (source
7791 (origin
7792 (method url-fetch)
7793 (uri (string-append
a9717a52
TGR
7794 "https://hackage.haskell.org/package/chell-quickcheck/"
7795 "chell-quickcheck-" version ".tar.gz"))
c92d944c 7796 (sha256
7797 (base32
a9717a52 7798 "1iicsys9igx7m7n4l2b8djardmjy2ah5ibzp7kzs758h460fq53a"))))
c92d944c 7799 (build-system haskell-build-system)
4a3f50e3
TS
7800 (arguments
7801 `(#:phases
7802 (modify-phases %standard-phases
7803 (add-before 'configure 'update-constraints
7804 (lambda _
7805 (substitute* "chell-quickcheck.cabal"
7806 (("QuickCheck >= 2\\.3 && < 2\\.11")
7807 "QuickCheck >= 2.3 && < 2.12")))))))
c92d944c 7808 (inputs
7809 `(("ghc-chell" ,ghc-chell)
7810 ("ghc-chell-quickcheck-bootstrap" ,ghc-chell-quickcheck-bootstrap)
7811 ("ghc-random" ,ghc-random)
7812 ("ghc-quickcheck" ,ghc-quickcheck)))
7813 (home-page "https://john-millikin.com/software/chell/")
7814 (synopsis "QuickCheck support for the Chell testing library")
7815 (description "More complex tests for @code{chell}.")
7816 (license license:expat)))
7817
58c85b1f 7818(define-public ghc-options
7819 (package
7820 (name "ghc-options")
7821 (version "1.2.1.1")
7822 (source
7823 (origin
7824 (method url-fetch)
7825 (uri (string-append
7826 "https://hackage.haskell.org/package/options/options-"
7827 version ".tar.gz"))
7828 (sha256
7829 (base32
7830 "0qjs0v1ny52w51n5582d4z8wy9h6n0zw1xb5dh686ff5wadflgi8"))))
7831 (build-system haskell-build-system)
7832 (inputs
7833 `(("ghc-monads-tf" ,ghc-monads-tf)
7834 ("ghc-chell" ,ghc-chell)
7835 ("ghc-chell-quickcheck" ,ghc-chell-quickcheck)))
7836 (home-page "https://john-millikin.com/software/haskell-options/")
7837 (synopsis "Powerful and easy-to-use command-line option parser")
7838 (description
7839 "The @code{options} package lets library and application developers
7840easily work with command-line options.")
7841 (license license:expat)))
7842
23feb6e4 7843(define-public ghc-system-filepath
7844 (package
7845 (name "ghc-system-filepath")
1b58d289 7846 (version "0.4.14")
23feb6e4 7847 (source
7848 (origin
7849 (method url-fetch)
7850 (uri (string-append
7851 "https://hackage.haskell.org/package/system-filepath/system-filepath-"
7852 version ".tar.gz"))
7853 (sha256
7854 (base32
1b58d289 7855 "14yras4pz2dh55xpwmazcgxijvi8913pjgzb9iw50mjq1lycwmhn"))))
23feb6e4 7856 (build-system haskell-build-system)
1b58d289
RW
7857 ;; FIXME: One of the tests fails:
7858 ;; [ FAIL ] tests.validity.posix
7859 ;; note: seed=7310214548328823169
7860 ;; *** Failed! Falsifiable (after 24 tests):
7861 ;; 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"
7862 (arguments `(#:tests? #f))
23feb6e4 7863 (inputs
7864 `(("ghc-text" ,ghc-text)
7865 ("ghc-chell" ,ghc-chell)
7866 ("ghc-chell-quickcheck" ,ghc-chell-quickcheck)
7867 ("ghc-quickcheck" ,ghc-quickcheck)))
7868 (home-page "https://github.com/fpco/haskell-filesystem")
7869 (synopsis "High-level, byte-based file and directory path manipulations")
7870 (description
7871 "Provides a FilePath datatype and utility functions for operating on it.
7872Unlike the filepath package, this package does not simply reuse String,
7873increasing type safety.")
7874 (license license:expat)))
7875
10a03d66 7876(define-public ghc-system-fileio
7877 (package
7878 (name "ghc-system-fileio")
7879 (version "0.3.16.3")
7880 (source
7881 (origin
7882 (method url-fetch)
7883 (uri (string-append
7884 "https://hackage.haskell.org/package/system-fileio/system-fileio-"
7885 version ".tar.gz"))
7886 (sha256
7887 (base32
7888 "1484hcl27s2qcby8ws5djj11q9bz68bspcifz9h5gii2ndy70x9i"))))
7889 (build-system haskell-build-system)
7890 (inputs
7891 `(("ghc-system-filepath" ,ghc-system-filepath)
7892 ("ghc-text" ,ghc-text)
7893 ("ghc-chell" ,ghc-chell)
7894 ("ghc-temporary" ,ghc-temporary)))
7895 (home-page "https://github.com/fpco/haskell-filesystem")
162a1374 7896 (synopsis "Consistent file system interaction across GHC versions")
10a03d66 7897 (description
7898 "This is a small wrapper around the directory, unix, and Win32 packages,
7899for use with system-filepath. It provides a consistent API to the various
7900versions of these packages distributed with different versions of GHC.
7901In particular, this library supports working with POSIX files that have paths
7902which can't be decoded in the current locale encoding.")
7903 (license license:expat)))
725dddd7
FB
7904
7905(define-public ghc-storable-complex
7906 (package
7907 (name "ghc-storable-complex")
7908 (version "0.2.2")
7909 (source
7910 (origin
7911 (method url-fetch)
7912 (uri (string-append
98b90194 7913 "https://hackage.haskell.org/package/storable-complex/storable-complex-"
725dddd7
FB
7914 version ".tar.gz"))
7915 (sha256
7916 (base32 "01kwwkpbfjrv26vj83cd92px5qbq1bpgxj0r45534aksqhany1xb"))))
7917 (build-system haskell-build-system)
7918 (home-page "https://github.com/cartazio/storable-complex")
7919 (synopsis "Haskell Storable instance for Complex")
7920 (description "This package provides a Haskell library including a
7921Storable instance for Complex which is binary compatible with C99, C++
7922and Fortran complex data types.")
7923 (license license:bsd-3)))
7924
95595618
FB
7925(define-public ghc-hmatrix
7926 (package
7927 (name "ghc-hmatrix")
c839da85 7928 (version "0.19.0.0")
95595618
FB
7929 (source
7930 (origin
7931 (method url-fetch)
7932 (uri (string-append
98b90194 7933 "https://hackage.haskell.org/package/hmatrix/hmatrix-"
95595618
FB
7934 version ".tar.gz"))
7935 (sha256
c839da85 7936 (base32 "10jd69nby29dggghcyjk6ykyr5wrn97nrv1dkpyrp0y5xm12xssj"))))
95595618
FB
7937 (build-system haskell-build-system)
7938 (inputs
7939 `(("ghc-random" ,ghc-random)
7940 ("ghc-split" ,ghc-split)
7941 ("ghc-storable-complex" ,ghc-storable-complex)
c839da85 7942 ("ghc-semigroups" ,ghc-semigroups)
95595618
FB
7943 ("ghc-vector" ,ghc-vector)
7944 ;;("openblas" ,openblas)
7945 ("lapack" ,lapack)))
7946 ;; Guix's OpenBLAS is built with the flag "NO_LAPACK=1" which
7947 ;; disables inclusion of the LAPACK functions.
7948 ;; (arguments `(#:configure-flags '("--flags=openblas")))
7949 (home-page "https://github.com/albertoruiz/hmatrix")
7950 (synopsis "Haskell numeric linear algebra library")
7951 (description "The HMatrix package provices a Haskell library for
7952dealing with linear systems, matrix decompositions, and other
7953numerical computations based on BLAS and LAPACK.")
7954 (license license:bsd-3)))
7955
932104ab
FB
7956(define-public ghc-hmatrix-gsl
7957 (package
7958 (name "ghc-hmatrix-gsl")
3c00bc13 7959 (version "0.19.0.1")
932104ab
FB
7960 (source
7961 (origin
7962 (method url-fetch)
7963 (uri (string-append
98b90194 7964 "https://hackage.haskell.org/package/hmatrix-gsl/hmatrix-gsl-"
932104ab
FB
7965 version ".tar.gz"))
7966 (sha256
3c00bc13 7967 (base32 "0v6dla426x4ywaq59jm89ql1i42n39iw6z0j378xwb676v9kfxhm"))))
932104ab
FB
7968 (build-system haskell-build-system)
7969 (inputs
7970 `(("ghc-hmatrix" ,ghc-hmatrix)
7971 ("ghc-vector" ,ghc-vector)
7972 ("ghc-random" ,ghc-random)
7973 ("gsl" ,gsl)))
7974 (native-inputs `(("pkg-config" ,pkg-config)))
7975 (home-page "https://github.com/albertoruiz/hmatrix")
7976 (synopsis "Haskell GSL binding")
7977 (description "This Haskell library provides a purely functional
7978interface to selected numerical computations, internally implemented
7979using GSL.")
7980 (license license:gpl3+)))
7981
271a5365
FB
7982(define-public ghc-hmatrix-special
7983 (package
7984 (name "ghc-hmatrix-special")
722d3bd8 7985 (version "0.19.0.0")
271a5365
FB
7986 (source
7987 (origin
7988 (method url-fetch)
7989 (uri
7990 (string-append
98b90194 7991 "https://hackage.haskell.org/package/hmatrix-special/hmatrix-special-"
271a5365
FB
7992 version ".tar.gz"))
7993 (sha256
722d3bd8 7994 (base32 "1mywr61kr852sbff26n9x95kswx9l4ycbv6s68qsbkh02xzqq7qz"))))
271a5365
FB
7995 (build-system haskell-build-system)
7996 (inputs
7997 `(("ghc-hmatrix" ,ghc-hmatrix)
7998 ("ghc-hmatrix-gsl" ,ghc-hmatrix-gsl)))
7999 (home-page "https://github.com/albertoruiz/hmatrix")
8000 (synopsis "Haskell interface to GSL special functions")
8001 (description "This library provides an interface to GSL special
8002functions for Haskell.")
8003 (license license:gpl3+)))
8004
4225c711
FB
8005(define-public ghc-hmatrix-gsl-stats
8006 (package
8007 (name "ghc-hmatrix-gsl-stats")
26d6539b 8008 (version "0.4.1.7")
4225c711
FB
8009 (source
8010 (origin
8011 (method url-fetch)
8012 (uri
8013 (string-append
98b90194 8014 "https://hackage.haskell.org/package/hmatrix-gsl-stats/hmatrix-gsl-stats-"
4225c711
FB
8015 version ".tar.gz"))
8016 (sha256
26d6539b 8017 (base32 "1gslgk58lzin43cvbpivhw7nrn9qyaa6qwhy1z9ypvyal5p8n3sa"))))
4225c711
FB
8018 (build-system haskell-build-system)
8019 (inputs
8020 `(("ghc-vector" ,ghc-vector)
8021 ("ghc-storable-complex" ,ghc-storable-complex)
8022 ("ghc-hmatrix" ,ghc-hmatrix)
8023 ("gsl" ,gsl)))
8024 (native-inputs `(("pkg-config" ,pkg-config)))
8025 (home-page "http://code.haskell.org/hmatrix-gsl-stats")
8026 (synopsis "GSL Statistics interface for Haskell")
8027 (description "This Haskell library provides a purely functional
8028interface for statistics based on hmatrix and GSL.")
8029 (license license:bsd-3)))
8030
db61a009
FB
8031(define-public ghc-easyplot
8032 (package
8033 (name "ghc-easyplot")
8034 (version "1.0")
8035 (source
8036 (origin
8037 (method url-fetch)
8038 (uri (string-append
98b90194 8039 "https://hackage.haskell.org/package/easyplot/easyplot-"
db61a009
FB
8040 version ".tar.gz"))
8041 (sha256
8042 (base32 "18kndgvdj2apjpfga6fp7m16y1gx8zrwp3c5vfj03sx4v6jvciqk"))))
8043 (build-system haskell-build-system)
8044 (propagated-inputs `(("gnuplot" ,gnuplot)))
8045 (arguments
8046 `(#:phases (modify-phases %standard-phases
8047 (add-after 'unpack 'fix-setup-suffix
8048 (lambda _ (rename-file "Setup.lhs" "Setup.hs") #t)))))
98b90194 8049 (home-page "https://hub.darcs.net/scravy/easyplot")
db61a009
FB
8050 (synopsis "Haskell plotting library based on gnuplot")
8051 (description "This package provides a plotting library for
8052Haskell, using gnuplot for rendering.")
8053 (license license:expat)))
8054
1bd00f17
FB
8055(define-public ghc-hashtables
8056 (package
8057 (name "ghc-hashtables")
fef71dbc 8058 (version "1.2.3.1")
1bd00f17
FB
8059 (source
8060 (origin
8061 (method url-fetch)
8062 (uri (string-append
98b90194 8063 "https://hackage.haskell.org/package/hashtables/hashtables-"
1bd00f17
FB
8064 version ".tar.gz"))
8065 (sha256
fef71dbc 8066 (base32 "1giw9caajr07slf09j7zry9b0kvm4yj9q78zy1mawzi6gk3wglcg"))))
1bd00f17
FB
8067 (build-system haskell-build-system)
8068 (inputs
8069 `(("ghc-hashable" ,ghc-hashable)
8070 ("ghc-primitive" ,ghc-primitive)
8071 ("ghc-vector" ,ghc-vector)))
7bf837fd 8072 (home-page "https://github.com/gregorycollins/hashtables")
1bd00f17
FB
8073 (synopsis "Haskell Mutable hash tables in the ST monad")
8074 (description "This package provides a Haskell library including a
8075couple of different implementations of mutable hash tables in the ST
8076monad, as well as a typeclass abstracting their common operations, and
8077a set of wrappers to use the hash tables in the IO monad.")
8078 (license license:bsd-3)))
8079
505e0150
FB
8080(define-public ghc-data-accessor
8081 (package
8082 (name "ghc-data-accessor")
8083 (version "0.2.2.7")
8084 (source
8085 (origin
8086 (method url-fetch)
8087 (uri (string-append
6846f084 8088 "mirror://hackage/package/data-accessor/data-accessor-"
505e0150
FB
8089 version ".tar.gz"))
8090 (sha256
8091 (base32 "1vf2g1gac3rm32g97rl0fll51m88q7ry4m6khnl5j47qsmx24r9l"))))
8092 (build-system haskell-build-system)
98b90194 8093 (home-page "https://www.haskell.org/haskellwiki/Record_access")
505e0150
FB
8094 (synopsis
8095 "Haskell utilities for accessing and manipulating fields of records")
8096 (description "This package provides Haskell modules for accessing and
8097manipulating fields of records.")
8098 (license license:bsd-3)))
8099
81a11919
FB
8100(define-public ghc-data-accessor-transformers
8101 (package
8102 (name "ghc-data-accessor-transformers")
8103 (version "0.2.1.7")
8104 (source
8105 (origin
8106 (method url-fetch)
8107 (uri (string-append
6846f084
EF
8108 "mirror://hackage/package/data-accessor-transformers/"
8109 "data-accessor-transformers-" version ".tar.gz"))
81a11919
FB
8110 (sha256
8111 (base32 "0yp030vafbpddl27m606aibbbr5ar5j5bsv4bksscz3cq4yq5j10"))))
8112 (build-system haskell-build-system)
8113 (inputs `(("ghc-data-accessor" ,ghc-data-accessor)))
98b90194 8114 (home-page "https://www.haskell.org/haskellwiki/Record_access")
81a11919
FB
8115 (synopsis "Use Accessor to access state in transformers State monad")
8116 (description "This package provides Haskell modules to allow use of
8117Accessor to access state in transformers State monad.")
8118 (license license:bsd-3)))
8119
a5cbef03
FB
8120(define-public ghc-utility-ht
8121 (package
8122 (name "ghc-utility-ht")
9e3e6ee0 8123 (version "0.0.14")
a5cbef03
FB
8124 (home-page "https://hackage.haskell.org/package/utility-ht")
8125 (source
8126 (origin
8127 (method url-fetch)
8128 (uri (string-append home-page "/utility-ht-" version ".tar.gz"))
8129 (sha256
9e3e6ee0 8130 (base32 "1a7bgk7wv7sqbxbiv7kankiimr3wij7zdm7s83zwsf886ghyxhk9"))))
a5cbef03
FB
8131 (build-system haskell-build-system)
8132 (inputs `(("ghc-quickcheck" ,ghc-quickcheck)))
8133 (synopsis "Haskell helper functions for Lists, Maybes, Tuples, Functions")
8134 (description "This package includes Hakell modules providing various
8135helper functions for Lists, Maybes, Tuples, Functions.")
8136 (license license:bsd-3)))
8137
1a86b671
FB
8138(define-public ghc-gnuplot
8139 (package
8140 (name "ghc-gnuplot")
f9f2877d 8141 (version "0.5.5.2")
1a86b671
FB
8142 (source
8143 (origin
8144 (method url-fetch)
8145 (uri (string-append
6846f084 8146 "mirror://hackage/package/gnuplot/gnuplot-"
1a86b671
FB
8147 version ".tar.gz"))
8148 (sha256
f9f2877d 8149 (base32 "1mlppnc13ygjzmf6ldydys4wvy35yb3xjwwfgf9rbi7nfcqjr6mn"))))
1a86b671
FB
8150 (build-system haskell-build-system)
8151 (inputs
8152 `(("ghc-temporary" ,ghc-temporary)
8153 ("ghc-utility-ht" ,ghc-utility-ht)
8154 ("ghc-data-accessor-transformers" ,ghc-data-accessor-transformers)
8155 ("ghc-data-accessor" ,ghc-data-accessor)
1abdefe5 8156 ("ghc-semigroups" ,ghc-semigroups)
1a86b671
FB
8157 ("gnuplot" ,gnuplot)))
8158 (arguments
8159 `(#:phases
8160 (modify-phases %standard-phases
8161 (add-before 'configure 'fix-path-to-gnuplot
8162 (lambda* (#:key inputs #:allow-other-keys)
8163 (let ((gnuplot (assoc-ref inputs "gnuplot")))
8164 (substitute* "os/generic/Graphics/Gnuplot/Private/OS.hs"
8165 (("(gnuplotName = ).*$" all cmd)
8166 (string-append cmd "\"" gnuplot "/bin/gnuplot\"")))))))))
98b90194 8167 (home-page "https://www.haskell.org/haskellwiki/Gnuplot")
1a86b671
FB
8168 (synopsis "2D and 3D plots using gnuplot")
8169 (description "This package provides a Haskell module for creating 2D and
81703D plots using gnuplot.")
8171 (license license:bsd-3)))
8172
f63981de
DC
8173(define-public ghc-hinotify
8174 (package
8175 (name "ghc-hinotify")
e59983ec 8176 (version "0.3.10")
f63981de
DC
8177 (source (origin
8178 (method url-fetch)
8179 (uri (string-append
8180 "https://hackage.haskell.org/package/hinotify/"
8181 "hinotify-" version ".tar.gz"))
8182 (sha256
8183 (base32
e59983ec 8184 "17ax3n68a5c2ddazp86aciliskrh6znd3bnry0wcllmb6dbpsaxg"))))
f63981de 8185 (build-system haskell-build-system)
e59983ec
TS
8186 (inputs
8187 `(("ghc-async" ,ghc-async)))
f63981de
DC
8188 (home-page "https://github.com/kolmodin/hinotify.git")
8189 (synopsis "Haskell binding to inotify")
8190 (description "This library provides a wrapper to the Linux kernel's inotify
8191feature, allowing applications to subscribe to notifications when a file is
8192accessed or modified.")
8193 (license license:bsd-3)))
8194
b7f96285
DC
8195(define-public ghc-fsnotify
8196 (package
8197 (name "ghc-fsnotify")
b5875189 8198 (version "0.3.0.1")
b7f96285
DC
8199 (source (origin
8200 (method url-fetch)
8201 (uri (string-append
8202 "https://hackage.haskell.org/package/fsnotify/"
8203 "fsnotify-" version ".tar.gz"))
8204 (sha256
8205 (base32
b5875189 8206 "19bdbz9wb9jvln6yg6qm0hz0w84bypvkxf0wjhgrgd52f9gidlny"))))
b7f96285
DC
8207 (build-system haskell-build-system)
8208 (inputs
8209 `(("ghc-text" ,ghc-text)
8210 ("ghc-async" ,ghc-async)
8211 ("ghc-unix-compat" ,ghc-unix-compat)
8212 ("ghc-hinotify" ,ghc-hinotify)
8213 ("ghc-tasty" ,ghc-tasty)
8214 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
b5875189
TS
8215 ("ghc-random" ,ghc-random)
8216 ("ghc-shelly" ,ghc-shelly)
8217 ("ghc-temporary" ,ghc-temporary)))
b7f96285
DC
8218 (home-page "https://github.com/haskell-fswatch/hfsnotify")
8219 (synopsis "Cross platform library for file change notification.")
8220 (description "Cross platform library for file creation, modification, and
8221deletion notification. This library builds upon existing libraries for platform
162a1374 8222specific Windows, Mac, and Linux file system event notification.")
b7f96285
DC
8223 (license license:bsd-3)))
8224
5e6cafe1
DC
8225(define-public ghc-ieee754
8226 (package
8227 (name "ghc-ieee754")
99596250 8228 (version "0.8.0")
5e6cafe1
DC
8229 (source (origin
8230 (method url-fetch)
8231 (uri (string-append
8232 "https://hackage.haskell.org/package/ieee754/"
8233 "ieee754-" version ".tar.gz"))
8234 (sha256
8235 (base32
99596250 8236 "1lcs521g9lzy9d7337vg4w7q7s8500rfqy7rcifcz6pm6yfgyb8f"))))
5e6cafe1 8237 (build-system haskell-build-system)
7bf837fd 8238 (home-page "https://github.com/patperry/hs-ieee754")
5e6cafe1
DC
8239 (synopsis "Utilities for dealing with IEEE floating point numbers")
8240 (description "Utilities for dealing with IEEE floating point numbers,
8241ported from the Tango math library; approximate and exact equality comparisons
8242for general types.")
8243 (license license:bsd-3)))
8244
4e05c326
DC
8245(define-public ghc-terminal-size
8246 (package
8247 (name "ghc-terminal-size")
8248 (version "0.3.2.1")
8249 (source (origin
8250 (method url-fetch)
8251 (uri (string-append
8252 "https://hackage.haskell.org/package/terminal-size/"
8253 "terminal-size-" version ".tar.gz"))
8254 (sha256
8255 (base32
8256 "0n4nvj3dbj9gxfnprgish45asn9z4dipv9j98s8i7g2n8yb3xhmm"))))
8257 (build-system haskell-build-system)
98b90194 8258 (home-page "https://hackage.haskell.org/package/terminal-size")
4e05c326
DC
8259 (synopsis "Get terminal window height and width")
8260 (description "Get terminal window height and width without ncurses
8261dependency.")
8262 (license license:bsd-3)))
8263
2d2388e2
DM
8264(define-public ghc-language-c
8265 (package
de793e9a 8266 (name "ghc-language-c")
19b29882 8267 (version "0.8.1")
de793e9a 8268 (source
2d2388e2
DM
8269 (origin
8270 (method url-fetch)
de793e9a
RW
8271 (uri (string-append "https://hackage.haskell.org/package/"
8272 "language-c/language-c-" version ".tar.gz"))
2d2388e2 8273 (sha256
de793e9a 8274 (base32
19b29882 8275 "0sdkjj0hq8p69fcdm6ljbjkjvrsrb8a6rl5dq6dj6byj32ajrm3d"))))
de793e9a
RW
8276 (build-system haskell-build-system)
8277 (inputs `(("ghc-syb" ,ghc-syb)))
8278 (native-inputs
2d2388e2
DM
8279 `(("ghc-happy" ,ghc-happy)
8280 ("ghc-alex" ,ghc-alex)))
98b90194 8281 (home-page "https://visq.github.io/language-c/")
de793e9a
RW
8282 (synopsis "Analysis and generation of C code")
8283 (description
8284 "Language C is a Haskell library for the analysis and generation of C code.
8285It features a complete, well-tested parser and pretty printer for all of C99
2d2388e2 8286and a large set of GNU extensions.")
de793e9a 8287 (license license:bsd-3)))
2d2388e2 8288
6c8a387a
DM
8289(define-public ghc-markdown-unlit
8290 (package
8291 (name "ghc-markdown-unlit")
a1541117 8292 (version "0.5.0")
6c8a387a
DM
8293 (source (origin
8294 (method url-fetch)
8295 (uri (string-append
8296 "mirror://hackage/package/markdown-unlit/"
8297 "markdown-unlit-" version ".tar.gz"))
8298 (sha256
8299 (base32
a1541117 8300 "1gy79vr85vcp13rdjh0hz7zv6daqqffww4j0cqn2lpjjh9xhsbg7"))))
6c8a387a
DM
8301 (build-system haskell-build-system)
8302 (inputs
8303 `(("ghc-base-compat" ,ghc-base-compat)
8304 ("ghc-hspec" ,ghc-hspec)
8305 ("ghc-quickcheck" ,ghc-quickcheck)
8306 ("ghc-silently" ,ghc-silently)
8307 ("ghc-stringbuilder" ,ghc-stringbuilder)
8308 ("ghc-temporary" ,ghc-temporary)
8309 ("hspec-discover" ,hspec-discover)))
8310 (home-page "https://github.com/sol/markdown-unlit#readme")
8311 (synopsis "Literate Haskell support for Markdown")
8312 (description "This package allows you to have a README.md that at the
8313same time is a literate Haskell program.")
8314 (license license:expat)))
8315
ee719fba
DM
8316(define-public corrode
8317 (let ((commit "b6699fb2fa552a07c6091276285a44133e5c9789"))
8318 (package
8319 (name "corrode")
8320 (version (string-append "0.0.1-" (string-take commit 7)))
8321 (source
8322 (origin
8323 (method git-fetch)
8324 (uri (git-reference
8325 (url "https://github.com/jameysharp/corrode.git")
8326 (commit "b6699fb2fa552a07c6091276285a44133e5c9789")))
8327 (file-name
8328 (string-append name "-" version "-checkout"))
8329 (sha256
8330 (base32 "02v0yyj6sk4gpg2222wzsdqjxn8w66scbnf6b20x0kbmc69qcz4r"))))
8331 (build-system haskell-build-system)
8332 (inputs
8333 `(("ghc-language-c" ,ghc-language-c)
8334 ("ghc-markdown-unlit" ,ghc-markdown-unlit)))
8335 (home-page "https://github.com/jameysharp/corrode")
8336 (synopsis "Automatic semantics-preserving translation from C to Rust")
8337 (description
8338 "This program reads a C source file and prints an equivalent module in
8339Rust syntax. It is intended to be useful for two different purposes:
8340
8341@enumerate
8342@item Partial automation for migrating legacy code that was implemented in C.
8343@item A new, complementary approach to static analysis for C programs.
8344@end enumerate\n")
8345 (license license:gpl2+))))
8346
90762815
DM
8347(define-public ghc-wave
8348 (package
8349 (name "ghc-wave")
0618a71b 8350 (version "0.1.5")
90762815
DM
8351 (source (origin
8352 (method url-fetch)
8353 (uri (string-append
8354 "https://hackage.haskell.org/package/wave/wave-"
8355 version
8356 ".tar.gz"))
8357 (sha256
8358 (base32
0618a71b 8359 "03zycmwrchhqvi37fdvlzz2d1vl4hy0i8xyys1zznw38qfq0h2i5"))))
90762815 8360 (build-system haskell-build-system)
70fa5899
SB
8361 (arguments
8362 '(#:phases
8363 (modify-phases %standard-phases
8364 (add-before 'configure 'update-constraints
8365 (lambda _
8366 (substitute* "wave.cabal"
8367 (("temporary.* < 1\\.3")
8368 "temporary >= 1.1 && < 1.4")))))))
90762815
DM
8369 (inputs
8370 `(("ghc-cereal" ,ghc-cereal)
8371 ("ghc-data-default-class"
8372 ,ghc-data-default-class)
8373 ("ghc-quickcheck" ,ghc-quickcheck)
8374 ("ghc-temporary" ,ghc-temporary)))
8375 (native-inputs
8376 `(("hspec-discover" ,hspec-discover)
8377 ("ghc-hspec" ,ghc-hspec)))
8378 (home-page "https://github.com/mrkkrp/wave")
8379 (synopsis "Work with WAVE and RF64 files in Haskell")
8380 (description "This package allows you to work with WAVE and RF64
8381files in Haskell.")
8382 (license license:bsd-3)))
8383
5f622de1 8384(define-public ghc-hslogger
8385 (package
8386 (name "ghc-hslogger")
8387 (version "1.2.10")
8388 (source
8389 (origin
8390 (method url-fetch)
8391 (uri (string-append "https://hackage.haskell.org/package/"
8392 "hslogger-" version "/" "hslogger-"
8393 version ".tar.gz"))
8394 (sha256 (base32
8395 "0as5gvlh6pi2gflakp695qnlizyyp059dqrhvjl4gjxalja6xjnp"))))
8396 (build-system haskell-build-system)
8397 (inputs
f54f0475 8398 `(("ghc-network" ,ghc-network)
831cb419 8399 ("ghc-old-locale" ,ghc-old-locale)))
5f622de1 8400 (native-inputs
8401 `(("ghc-hunit" ,ghc-hunit)))
98b90194 8402 (home-page "https://software.complete.org/hslogger")
5f622de1 8403 (synopsis "Logging framework for Haskell, similar to Python's logging module")
8404 (description "Hslogger lets each log message have a priority and source be
8405associated with it. The programmer can then define global handlers that route
8406or filter messages based on the priority and source. It also has a syslog
8407handler built in.")
8408 (license license:bsd-3)))
8409
a1563803 8410(define-public ghc-unexceptionalio
8411 (package
8412 (name "ghc-unexceptionalio")
06dae8ff 8413 (version "0.4.0")
a1563803 8414 (source
8415 (origin
8416 (method url-fetch)
8417 (uri (string-append "https://hackage.haskell.org/package/"
8418 "unexceptionalio-" version "/" "unexceptionalio-"
8419 version ".tar.gz"))
06dae8ff 8420 (sha256 (base32 "09gynk472l7nn5l2w320n4dwigwp0wh0shfp6dyw6r5h2jdxz18p"))))
a1563803 8421 (build-system haskell-build-system)
8422 (home-page "https://github.com/singpolyma/unexceptionalio")
8423 (synopsis "IO without any non-error, synchronous exceptions")
8424 (description "When you've caught all the exceptions that can be
8425handled safely, this is what you're left with.")
8426 (license license:isc)))
8427
6f8016f4
DM
8428(define-public ghc-json
8429 (package
8430 (name "ghc-json")
1a8f5eb2 8431 (version "0.9.2")
6f8016f4
DM
8432 (source
8433 (origin
8434 (method url-fetch)
8435 (uri (string-append "https://hackage.haskell.org/package/json/"
8436 "json-" version ".tar.gz"))
8437 (sha256
8438 (base32
1a8f5eb2 8439 "13kkfgx58z18jphbg56jn08jn72wi3kvfndlwwx87hqwg7x1dfz6"))))
6f8016f4
DM
8440 (build-system haskell-build-system)
8441 (inputs
8442 `(("ghc-syb" ,ghc-syb)
6f8016f4
DM
8443 ("ghc-text" ,ghc-text)
8444 ("ghc-parsec" ,ghc-parsec)))
98b90194 8445 (home-page "https://hackage.haskell.org/package/json")
6f8016f4
DM
8446 (synopsis "Serializes Haskell data to and from JSON")
8447 (description "This package provides a parser and pretty printer for
8448converting between Haskell values and JSON.
8449JSON (JavaScript Object Notation) is a lightweight data-interchange format.")
8450 (license license:bsd-3)))
8451
92c2097b 8452(define-public ghc-esqueleto
3b72e7e2
TS
8453 (let ((version "2.5.3")
8454 (revision "1")
8455 (commit "b81e0d951e510ebffca03c5a58658ad884cc6fbd"))
8456 (package
8457 (name "ghc-esqueleto")
8458 (version (git-version version revision commit))
8459 (source
8460 (origin
8461 (method git-fetch)
8462 (uri (git-reference
8463 (url "https://github.com/bitemyapp/esqueleto")
8464 (commit commit)))
8465 (sha256
8466 (base32
8467 "0lz1qxms7cfg5p3j37inlych0r2fwhm8xbarcys3df9m7jy9nixa"))))
8468 (build-system haskell-build-system)
8469 (arguments
8470 `(#:haddock? #f ; Haddock reports an internal error.
8471 #:phases
8472 (modify-phases %standard-phases
8473 ;; This package normally runs tests for the MySQL, PostgreSQL, and
8474 ;; SQLite backends. Since we only have Haskell packages for
8475 ;; SQLite, we remove the other two test suites. FIXME: Add the
8476 ;; other backends and run all three test suites.
8477 (add-before 'configure 'remove-non-sqlite-test-suites
8478 (lambda _
8479 (use-modules (ice-9 rdelim))
8480 (with-atomic-file-replacement "esqueleto.cabal"
8481 (lambda (in out)
8482 (let loop ((line (read-line in 'concat)) (deleting? #f))
8483 (cond
8484 ((eof-object? line) #t)
8485 ((string-every char-set:whitespace line)
8486 (unless deleting? (display line out))
8487 (loop (read-line in 'concat) #f))
8488 ((member line '("test-suite mysql\n"
8489 "test-suite postgresql\n"))
8490 (loop (read-line in 'concat) #t))
8491 (else
8492 (unless deleting? (display line out))
8493 (loop (read-line in 'concat) deleting?)))))))))))
8494 (inputs
8495 `(("ghc-blaze-html" ,ghc-blaze-html)
8496 ("ghc-conduit" ,ghc-conduit)
8497 ("ghc-monad-logger" ,ghc-monad-logger)
8498 ("ghc-persistent" ,ghc-persistent)
8499 ("ghc-resourcet" ,ghc-resourcet)
8500 ("ghc-tagged" ,ghc-tagged)
8501 ("ghc-text" ,ghc-text)
8502 ("ghc-unliftio" ,ghc-unliftio)
8503 ("ghc-unordered-containers" ,ghc-unordered-containers)))
8504 (native-inputs
8505 `(("ghc-hspec" ,ghc-hspec)
8506 ("ghc-persistent-sqlite" ,ghc-persistent-sqlite)
8507 ("ghc-persistent-template" ,ghc-persistent-template)))
8508 (home-page "https://github.com/bitemyapp/esqueleto")
8509 (synopsis "Type-safe embedded domain specific language for SQL queries")
8510 (description "This library provides a type-safe embedded domain specific
92c2097b
TS
8511language (EDSL) for SQL queries that works with SQL backends as provided by
8512@code{ghc-persistent}. Its language closely resembles SQL, so you don't have
8513to learn new concepts, just new syntax, and it's fairly easy to predict the
8514generated SQL and optimize it for your backend.")
3b72e7e2 8515 (license license:bsd-3))))
92c2097b 8516
7e58cbbb
DM
8517(define-public shellcheck
8518 (package
8519 (name "shellcheck")
eaa1f873 8520 (version "0.5.0")
7e58cbbb
DM
8521 (source
8522 (origin
8523 (method url-fetch)
eaa1f873
SB
8524 (uri (string-append
8525 "https://hackage.haskell.org/package/ShellCheck/ShellCheck-"
8526 version ".tar.gz"))
7e58cbbb
DM
8527 (sha256
8528 (base32
eaa1f873 8529 "0z1hscbr11hwkq8k1v0vaa947hb9m6k4cm831jk1gpj8dxrk151b"))
7e58cbbb
DM
8530 (file-name (string-append name "-" version ".tar.gz"))))
8531 (build-system haskell-build-system)
8532 (inputs
eaa1f873
SB
8533 `(("ghc-aeson" ,ghc-aeson)
8534 ("ghc-quickcheck" ,ghc-quickcheck)
7e58cbbb
DM
8535 ("ghc-parsec" ,ghc-parsec)
8536 ("ghc-regex-tdfa" ,ghc-regex-tdfa)))
8537 (home-page "https://github.com/koalaman/shellcheck")
8538 (synopsis "Static analysis for shell scripts")
8539 (description "@code{shellcheck} provides static analysis for
8540@command{bash} and @command{sh} shell scripts.
8541It gives warnings and suggestions in order to:
8542
8543@enumerate
8544@item Point out and clarify typical beginner's syntax issues that cause
8545a shell to give cryptic error messages.
8546@item Point out and clarify typical intermediate level semantic problems
8547that cause a shell to behave strangely and counter-intuitively.
8548@item Point out subtle caveats, corner cases and pitfalls that may cause an
8549advanced user's otherwise working script to fail under future circumstances.
8550@end enumerate")
8551 (license license:gpl3+)))
8552
789dc568 8553(define-public ghc-simple-sendfile
8554 (package
8555 (name "ghc-simple-sendfile")
23aa12fc 8556 (version "0.2.27")
789dc568 8557 (source
8558 (origin
8559 (method url-fetch)
8560 (uri (string-append "https://hackage.haskell.org/package/"
8561 "simple-sendfile-" version "/"
8562 "simple-sendfile-" version ".tar.gz"))
8563 (sha256
8564 (base32
23aa12fc 8565 "1bwwqzcm56m2w4ymsa054sxmpbj76h9pvb0jf8zxp8lr41cp51gn"))))
789dc568 8566 (build-system haskell-build-system)
8567 (inputs
8568 `(("ghc-conduit" ,ghc-conduit)
8569 ("ghc-conduit-extra" ,ghc-conduit-extra)
8570 ("ghc-network" ,ghc-network)
8571 ("ghc-resourcet" ,ghc-resourcet)))
8572 (native-inputs
8573 `(("ghc-hspec" ,ghc-hspec)
8574 ("hspec-discover" ,hspec-discover)))
8575 (home-page "https://github.com/kazu-yamamoto/simple-sendfile")
8576 (synopsis "Cross platform library for the sendfile system call")
8577 (description "This library tries to call minimum system calls which
8578are the bottleneck of web servers.")
8579 (license license:bsd-3)))
8580
59b340a5 8581(define-public ghc-hex
8582 (package
8583 (name "ghc-hex")
8584 (version "0.1.2")
8585 (source
8586 (origin
8587 (method url-fetch)
8588 (uri (string-append "https://hackage.haskell.org/package/"
8589 "hex-" version "/"
8590 "hex-" version ".tar.gz"))
8591 (sha256
8592 (base32
8593 "1v31xiaivrrn0q2jz8919wvkjplv1kxna5ajhsj701fqxm1i5vhj"))))
8594 (build-system haskell-build-system)
98b90194 8595 (home-page "https://hackage.haskell.org/package/hex")
59b340a5 8596 (synopsis "Convert strings into hexadecimal and back")
8597 (description "This package provides conversion functions between
8598bytestrings and their hexademical representation.")
8599 (license license:bsd-3)))
8600
aba85f8c 8601(define-public ghc-psqueues
8602 (package
8603 (name "ghc-psqueues")
6062c461 8604 (version "0.2.7.0")
aba85f8c 8605 (source
8606 (origin
8607 (method url-fetch)
8608 (uri (string-append "https://hackage.haskell.org/package/"
8609 "psqueues-" version "/"
8610 "psqueues-" version ".tar.gz"))
8611 (sha256
8612 (base32
6062c461 8613 "1sjgc9bxh63kkdp59nbirx3xazr02ia5yhp4f4a0jnq1hj465wsc"))))
aba85f8c 8614 (build-system haskell-build-system)
8615 (inputs
8616 `(("ghc-hashable" ,ghc-hashable)))
8617 (native-inputs
8618 `(("ghc-hunit" ,ghc-hunit)
8619 ("ghc-quickcheck" ,ghc-quickcheck)
8620 ("ghc-tagged" ,ghc-tagged)
8621 ("ghc-test-framework" ,ghc-test-framework)
8622 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
8623 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
20c902f0 8624 (home-page "https://github.com/jaspervdj/psqueues")
aba85f8c 8625 (synopsis "Pure priority search queues")
8626 (description "The psqueues package provides
98b90194 8627@uref{https://en.wikipedia.org/wiki/Priority_queue, Priority Search Queues} in
aba85f8c 8628three different flavors:
8629
8630@itemize
8631@item @code{OrdPSQ k p v}, which uses the @code{Ord k} instance to provide
8632fast insertion, deletion and lookup. This implementation is based on Ralf
8633Hinze's @uref{http://citeseer.ist.psu.edu/hinze01simple.html, A Simple
8634Implementation Technique for Priority Search Queues}.
8635
98b90194 8636Hence, it is similar to the @uref{https://hackage.haskell.org/package/PSQueue,
aba85f8c 8637PSQueue} library, although it is considerably faster and provides a slightly
8638different API.
8639
8640@item @code{IntPSQ p v} is a far more efficient implementation. It fixes the
8641key type to @code{Int} and uses a
98b90194 8642@code{https://en.wikipedia.org/wiki/Radix_tree, radix tree} (like @code{IntMap})
a5f89a63 8643with an additional min-heap property.
aba85f8c 8644
8645@item @code{HashPSQ k p v} is a fairly straightforward extension
8646of @code{IntPSQ}: it simply uses the keys' hashes as indices in the
8647@code{IntPSQ}. If there are any hash collisions, it uses an
8648@code{OrdPSQ} to resolve those. The performance of this implementation
8649is comparable to that of @code{IntPSQ}, but it is more widely
8650applicable since the keys are not restricted to @code{Int},
8651but rather to any @code{Hashable} datatype.
8652@end itemize
8653
8654Each of the three implementations provides the same API, so they can
8655be used interchangeably.
8656
8657Typical applications of Priority Search Queues include:
8658
8659@itemize
8660@item Caches, and more specifically LRU Caches;
8661@item Schedulers;
8662@item Pathfinding algorithms, such as Dijkstra's and A*.
8663@end itemize")
8664 (license license:bsd-3)))
8665
4031fb60 8666(define-public ghc-glob
8667 (package
8668 (name "ghc-glob")
29273431 8669 (version "0.9.2")
4031fb60 8670 (source
8671 (origin
8672 (method url-fetch)
8673 (uri (string-append "https://hackage.haskell.org/package/"
8674 "Glob-" version "/"
8675 "Glob-" version ".tar.gz"))
8676 (sha256
8677 (base32
29273431 8678 "1rbwcq9w9951qsnp13vqcm9r01yax2yh1wk8s4zxa3ckk9717iwg"))))
4031fb60 8679 (build-system haskell-build-system)
8680 (inputs
8681 `(("ghc-dlist" ,ghc-dlist)
8682 ("ghc-semigroups" ,ghc-semigroups)
8683 ("ghc-transformers-compat" ,ghc-transformers-compat)))
8684 (native-inputs
8685 `(("ghc-hunit" ,ghc-hunit)
8686 ("ghc-quickcheck" ,ghc-quickcheck)
8687 ("ghc-test-framework" ,ghc-test-framework)
8688 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
8689 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
8690 (home-page "http://iki.fi/matti.niemenmaa/glob/")
8691 (synopsis "Haskell library matching glob patterns against file paths")
581a006b 8692 (description "This package provides a Haskell library for @dfn{globbing}:
4031fb60 8693matching patterns against file paths.")
8694 (license license:bsd-3)))
8695
78d8b8f3 8696(define-public ghc-errors
8697 (package
8698 (name "ghc-errors")
24e18bf9 8699 (version "2.3.0")
78d8b8f3 8700 (source
8701 (origin
8702 (method url-fetch)
8703 (uri (string-append "https://hackage.haskell.org/package/"
8704 "errors-" version "/"
8705 "errors-" version ".tar.gz"))
8706 (sha256
8707 (base32
24e18bf9 8708 "0x8znwn31qcx6kqx99wp7bc86kckfb39ncz3zxvj1s07kxlfawk7"))))
78d8b8f3 8709 (build-system haskell-build-system)
8710 (inputs
8711 `(("ghc-exceptions" ,ghc-exceptions)
8712 ("ghc-text" ,ghc-text)
8713 ("ghc-transformers-compat" ,ghc-transformers-compat)
8714 ("ghc-unexceptionalio" ,ghc-unexceptionalio)
8715 ("ghc-safe" ,ghc-safe)))
8716 (home-page "https://github.com/gabriel439/haskell-errors-library")
8717 (synopsis "Error handling library for Haskell")
8718 (description "This library encourages an error-handling style that
8719directly uses the type system, rather than out-of-band exceptions.")
8720 (license license:bsd-3)))
8721
c1274a0b 8722(define-public ghc-vector-th-unbox
8723 (package
8724 (name "ghc-vector-th-unbox")
8725 (version "0.2.1.6")
8726 (source
8727 (origin
8728 (method url-fetch)
8729 (uri (string-append "https://hackage.haskell.org/package/"
8730 "vector-th-unbox-" version "/"
8731 "vector-th-unbox-" version ".tar.gz"))
8732 (sha256
8733 (base32
8734 "0d82x55f5vvr1jvaia382m23rs690lg55pvavv8f4ph0y6kd91xy"))))
8735 (build-system haskell-build-system)
8736 (inputs
8737 `(("ghc-vector" ,ghc-vector)
8738 ("ghc-data-default" ,ghc-data-default)))
8739 (home-page "https://github.com/liyang/vector-th-unbox")
8740 (synopsis "Deriver for Data.Vector.Unboxed using Template Haskell")
8741 (description "This Haskell library provides a Template Haskell
8742deriver for unboxed vectors, given a pair of coercion functions to
8743and from some existing type with an Unbox instance.")
8744 (license license:bsd-3)))
8745
bdd7e395 8746(define-public ghc-erf
8747 (package
8748 (name "ghc-erf")
8749 (version "2.0.0.0")
8750 (source
8751 (origin
8752 (method url-fetch)
8753 (uri (string-append "https://hackage.haskell.org/package/"
8754 "erf-" version "/"
8755 "erf-" version ".tar.gz"))
8756 (sha256
8757 (base32
8758 "0dxk2r32ajmmc05vaxcp0yw6vgv4lkbmh8jcshncn98xgsfbgw14"))))
8759 (build-system haskell-build-system)
8760 (home-page "https://hackage.haskell.org/package/erf")
8761 (synopsis "The error function, erf, and related functions for Haskell")
8762 (description "This Haskell library provides a type class for the
8763error function, erf, and related functions. Instances for Float and
8764Double.")
8765 (license license:bsd-3)))
8766
a51ba897 8767(define-public ghc-math-functions
8768 (package
8769 (name "ghc-math-functions")
8770 (version "0.2.1.0")
8771 (source
8772 (origin
8773 (method url-fetch)
8774 (uri (string-append "https://hackage.haskell.org/package/"
8775 "math-functions-" version "/"
8776 "math-functions-" version ".tar.gz"))
8777 (sha256
8778 (base32
8779 "1sv5vabsx332v1lpb6v3jv4zrzvpx1n7yprzd8wlcda5vsc5a6zp"))))
8780 (build-system haskell-build-system)
fc3ef1e2 8781 (arguments `(#:tests? #f)) ; FIXME: 1 test fails.
a51ba897 8782 (inputs
8783 `(("ghc-vector" ,ghc-vector)
8784 ("ghc-vector-th-unbox" ,ghc-vector-th-unbox)))
8785 (native-inputs
8786 `(("ghc-hunit" ,ghc-hunit)
8787 ("ghc-quickcheck" ,ghc-quickcheck)
8788 ("ghc-erf" ,ghc-erf)
8789 ("ghc-test-framework" ,ghc-test-framework)
8790 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
8791 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
8792 (home-page "https://github.com/bos/math-functions")
8793 (synopsis "Special functions and Chebyshev polynomials for Haskell")
8794 (description "This Haskell library provides implementations of
8795special mathematical functions and Chebyshev polynomials. These
8796functions are often useful in statistical and numerical computing.")
8797 (license license:bsd-3)))
8798
1a2a247b 8799(define-public ghc-mwc-random
8800 (package
8801 (name "ghc-mwc-random")
8802 (version "0.13.6.0")
8803 (source
8804 (origin
8805 (method url-fetch)
8806 (uri (string-append "https://hackage.haskell.org/package/"
8807 "mwc-random-" version "/"
8808 "mwc-random-" version ".tar.gz"))
8809 (sha256
8810 (base32
8811 "05j7yh0hh9nxic3dijmzv44kc6gzclvamdph7sq7w19wq57k6pq6"))))
8812 (build-system haskell-build-system)
8813 (inputs
8814 `(("ghc-primitive" ,ghc-primitive)
8815 ("ghc-vector" ,ghc-vector)
8816 ("ghc-math-functions" ,ghc-math-functions)))
8817 (arguments
8818 `(#:tests? #f)) ; FIXME: Test-Suite `spec` fails.
8819 (native-inputs
8820 `(("ghc-hunit" ,ghc-hunit)
8821 ("ghc-quickcheck" ,ghc-quickcheck)
8822 ("ghc-test-framework" ,ghc-test-framework)
8823 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
8824 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
8825 (home-page "https://github.com/bos/mwc-random")
8826 (synopsis "Random number generation library for Haskell")
8827 (description "This Haskell package contains code for generating
8828high quality random numbers that follow either a uniform or normal
8829distribution. The generated numbers are suitable for use in
8830statistical applications.
8831
8832The uniform PRNG uses Marsaglia's MWC256 (also known as MWC8222)
8833multiply-with-carry generator, which has a period of 2^{8222} and
8834fares well in tests of randomness. It is also extremely fast,
8835between 2 and 3 times faster than the Mersenne Twister.")
8836 (license license:bsd-3)))
8837
30aede1b 8838(define-public ghc-vector-algorithms
8839 (package
8840 (name "ghc-vector-algorithms")
d9404fc1 8841 (version "0.7.0.4")
30aede1b 8842 (source
8843 (origin
8844 (method url-fetch)
8845 (uri (string-append "https://hackage.haskell.org/package/"
8846 "vector-algorithms-" version "/"
8847 "vector-algorithms-" version ".tar.gz"))
8848 (sha256
8849 (base32
d9404fc1 8850 "0mfa8ig9v69l41p2vb5jl4qmaln5y1rlzarr2mlgm8g1nvq8qqdg"))))
30aede1b 8851 (build-system haskell-build-system)
8852 (inputs
d9404fc1 8853 `(("ghc-vector" ,ghc-vector)))
30aede1b 8854 (native-inputs
8855 `(("ghc-quickcheck" ,ghc-quickcheck)))
8856 (home-page "https://github.com/bos/math-functions")
8857 (synopsis "Algorithms for vector arrays in Haskell")
8858 (description "This Haskell library algorithms for vector arrays.")
8859 (license license:bsd-3)))
8860
897d4f28 8861(define-public ghc-language-haskell-extract
8862 (package
8863 (name "ghc-language-haskell-extract")
8864 (version "0.2.4")
8865 (source
8866 (origin
8867 (method url-fetch)
8868 (uri (string-append "https://hackage.haskell.org/package/"
8869 "language-haskell-extract-" version "/"
8870 "language-haskell-extract-" version ".tar.gz"))
8871 (sha256
8872 (base32
8873 "1nxcs7g8a1sp91bzpy4cj6s31k5pvc3gvig04cbrggv5cvjidnhl"))))
8874 (build-system haskell-build-system)
8875 (inputs
8876 `(("ghc-regex-posix" ,ghc-regex-posix)))
8877 (home-page "https://github.com/finnsson/template-helper")
8878 (synopsis "Haskell module to automatically extract functions from
8879the local code")
8880 (description "This package contains helper functions on top of
8881Template Haskell.
8882
8883For example, @code{functionExtractor} extracts all functions after a
8884regexp-pattern, which can be useful if you wish to extract all functions
8885beginning with @code{test} (for a test framework) or all functions beginning
8886with @code{wc} (for a web service).")
8887 (license license:bsd-3)))
8888
97b26920 8889(define-public ghc-abstract-par
8890 (package
8891 (name "ghc-abstract-par")
8892 (version "0.3.3")
8893 (source
8894 (origin
8895 (method url-fetch)
8896 (uri (string-append "https://hackage.haskell.org/package/"
8897 "abstract-par-" version "/"
8898 "abstract-par-" version ".tar.gz"))
8899 (sha256
8900 (base32
8901 "0q6qsniw4wks2pw6wzncb1p1j3k6al5njnvm2v5n494hplwqg2i4"))))
8902 (build-system haskell-build-system)
8903 (home-page "https://github.com/simonmar/monad-par")
8904 (synopsis "Abstract parallelization interface for Haskell")
8905 (description "This Haskell package is an abstract interface
8906only. It provides a number of type clasess, but not an
8907implementation. The type classes separate different levels
8908of @code{Par} functionality. See the @code{Control.Monad.Par.Class}
8909module for more details.")
8910 (license license:bsd-3)))
8911
59551881 8912(define-public ghc-monad-par-extras
8913 (package
8914 (name "ghc-monad-par-extras")
8915 (version "0.3.3")
8916 (source
8917 (origin
8918 (method url-fetch)
8919 (uri (string-append "https://hackage.haskell.org/package/"
8920 "monad-par-extras-" version "/"
8921 "monad-par-extras-" version ".tar.gz"))
8922 (sha256
8923 (base32
8924 "0bl4bd6jzdc5zm20q1g67ppkfh6j6yn8fwj6msjayj621cck67p2"))))
8925 (build-system haskell-build-system)
8926 (inputs `(("ghc-abstract-par" ,ghc-abstract-par)
8927 ("ghc-cereal" ,ghc-cereal)
f54f0475 8928 ("ghc-random" ,ghc-random)))
59551881 8929 (home-page "https://github.com/simonmar/monad-par")
8930 (synopsis "Combinators and extra features for Par monads for Haskell")
8931 (description "This Haskell package provides additional data structures,
8932and other added capabilities layered on top of the @code{Par} monad.")
8933 (license license:bsd-3)))
8934
f978e2ac 8935(define-public ghc-abstract-deque
8936 (package
8937 (name "ghc-abstract-deque")
8938 (version "0.3")
8939 (source
8940 (origin
8941 (method url-fetch)
8942 (uri (string-append "https://hackage.haskell.org/package/"
8943 "abstract-deque-" version "/"
8944 "abstract-deque-" version ".tar.gz"))
8945 (sha256
8946 (base32
8947 "18jwswjxwzc9bjiy4ds6hw2a74ki797jmfcifxd2ga4kh7ri1ah9"))))
8948 (build-system haskell-build-system)
8949 (inputs `(("ghc-random" ,ghc-random)))
8950 (home-page "https://github.com/rrnewton/haskell-lockfree/wiki")
8951 (synopsis "Abstract, parameterized interface to mutable Deques for Haskell")
8952 (description "This Haskell package provides an abstract interface to
8953highly-parameterizable queues/deques.
8954
8955Background: There exists a feature space for queues that extends between:
8956
8957@itemize
8958@item Simple, single-ended, non-concurrent, bounded queues
8959
467834d5
TGR
8960@item Double-ended, thread-safe, growable queues with important points
8961in between (such as the queues used for work stealing).
f978e2ac 8962@end itemize
8963
8964This package includes an interface for Deques that allows the programmer
467834d5 8965to use a single API for all of the above, while using the type system to
f978e2ac 8966select an efficient implementation given the requirements (using type families).
8967
8968This package also includes a simple reference implementation based on
8969@code{IORef} and @code{Data.Sequence}.")
8970 (license license:bsd-3)))
8971
608bf276 8972(define-public ghc-monad-par
8973 (package
8974 (name "ghc-monad-par")
8975 (version "0.3.4.8")
8976 (source
8977 (origin
8978 (method url-fetch)
8979 (uri (string-append "https://hackage.haskell.org/package/"
8980 "monad-par-" version "/"
8981 "monad-par-" version ".tar.gz"))
8982 (sha256
8983 (base32
8984 "0ldrzqy24fsszvn2a2nr77m2ih7xm0h9bgkjyv1l274aj18xyk7q"))))
8985 (build-system haskell-build-system)
8986 (inputs `(("ghc-abstract-par" ,ghc-abstract-par)
8987 ("ghc-abstract-deque" ,ghc-abstract-deque)
8988 ("ghc-monad-par-extras" ,ghc-monad-par-extras)
8989 ("ghc-mwc-random" ,ghc-mwc-random)
f54f0475 8990 ("ghc-parallel" ,ghc-parallel)))
608bf276 8991 (native-inputs `(("ghc-quickcheck" ,ghc-quickcheck)
8992 ("ghc-hunit" ,ghc-hunit)
8993 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
8994 ("ghc-test-framework-quickcheck2"
8995 ,ghc-test-framework-quickcheck2)
8996 ("ghc-test-framework" ,ghc-test-framework)
8997 ("ghc-test-framework-th" ,ghc-test-framework-th)))
8998 (home-page "https://github.com/simonmar/monad-par")
8999 (synopsis "Haskell library for parallel programming based on a monad")
9000 (description "The @code{Par} monad offers an API for parallel
9001programming. The library works for parallelising both pure and @code{IO}
9002computations, although only the pure version is deterministic. The default
9003implementation provides a work-stealing scheduler and supports forking tasks
9004that are much lighter weight than IO-threads.")
9005 (license license:bsd-3)))
9006
0c717284 9007(define-public ghc-statistics
9008 (package
9009 (name "ghc-statistics")
9010 (version "0.14.0.2")
9011 (source
9012 (origin
9013 (method url-fetch)
9014 (uri (string-append "https://hackage.haskell.org/package/"
9015 "statistics-" version "/"
9016 "statistics-" version ".tar.gz"))
9017 (sha256
9018 (base32
9019 "0y27gafkib0x0fn39qfn2rkgsfrm09ng35sbb5dwr7rclhnxz59l"))))
9020 (build-system haskell-build-system)
52891580
RW
9021 (arguments
9022 '(#:cabal-revision
9023 ("2" "1bx70yqkn62ii17fjv3pig4hklrzkqd09zj67zzjiyjzmn04fir3")
9024 ;; Two tests fail: "Discrete CDF is OK" and "Quantile is CDF inverse".
9025 #:tests? #f))
0c717284 9026 (inputs
9027 `(("ghc-aeson" ,ghc-aeson)
9028 ("ghc-base-orphans" ,ghc-base-orphans)
9029 ("ghc-erf" ,ghc-erf)
9030 ("ghc-math-functions" ,ghc-math-functions)
9031 ("ghc-monad-par" ,ghc-monad-par)
9032 ("ghc-mwc-random" ,ghc-mwc-random)
9033 ("ghc-primitive" ,ghc-primitive)
9034 ("ghc-vector" ,ghc-vector)
9035 ("ghc-vector-algorithms" ,ghc-vector-algorithms)
9036 ("ghc-vector-th-unbox" ,ghc-vector-th-unbox)
9037 ("ghc-vector-binary-instances" ,ghc-vector-binary-instances)))
9038 (native-inputs
9039 `(("ghc-hunit" ,ghc-hunit)
9040 ("ghc-quickcheck" ,ghc-quickcheck)
c695fb76 9041 ("ghc-ieee754" ,ghc-ieee754)
0c717284 9042 ("ghc-test-framework" ,ghc-test-framework)
9043 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
9044 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
0c717284 9045 (home-page "https://github.com/bos/mwc-random")
9046 (synopsis "Haskell library of statistical types, data, and functions")
9047 (description "This library provides a number of common functions
9048and types useful in statistics. We focus on high performance, numerical
9049robustness, and use of good algorithms. Where possible, we provide references
9050to the statistical literature.
9051
9052The library's facilities can be divided into four broad categories:
9053
9054@itemize
9055@item Working with widely used discrete and continuous probability
9056distributions. (There are dozens of exotic distributions in use; we focus
9057on the most common.)
9058
9059@item Computing with sample data: quantile estimation, kernel density
9060estimation, histograms, bootstrap methods, significance testing,
9061and regression and autocorrelation analysis.
9062
9063@item Random variate generation under several different distributions.
9064
9065@item Common statistical tests for significant differences between samples.
9066@end itemize")
9067 (license license:bsd-2)))
9068
371ad40c 9069(define-public ghc-chunked-data
9070 (package
9071 (name "ghc-chunked-data")
48f8ba91 9072 (version "0.3.1")
371ad40c 9073 (source
9074 (origin
9075 (method url-fetch)
9076 (uri (string-append "https://hackage.haskell.org/package/"
9077 "chunked-data-" version "/"
9078 "chunked-data-" version ".tar.gz"))
9079 (sha256
9080 (base32
48f8ba91 9081 "16m7y7fwrirbjbqqcsfmr4yxa9qvfax6r7pw0zl9ky71ms0wa47p"))))
371ad40c 9082 (build-system haskell-build-system)
9083 (inputs `(("ghc-vector" ,ghc-vector)
d6e559ab 9084 ("ghc-semigroups" ,ghc-semigroups)
9085 ("ghc-text" ,ghc-text)))
371ad40c 9086 (home-page "https://github.com/snoyberg/mono-traversable")
9087 (synopsis "Typeclasses for dealing with various chunked data
9088representations for Haskell")
9089 (description "This Haskell package was originally present in
9090classy-prelude.")
9091 (license license:expat)))
9092
ac4cb8fd 9093(define-public ghc-base-prelude
9094 (package
9095 (name "ghc-base-prelude")
d3cc0eb2 9096 (version "1.3")
ac4cb8fd 9097 (source
9098 (origin
9099 (method url-fetch)
9100 (uri (string-append "https://hackage.haskell.org/package/"
9101 "base-prelude-" version "/"
9102 "base-prelude-" version ".tar.gz"))
9103 (sha256
9104 (base32
d3cc0eb2 9105 "1zk728sd09hh2r4xwz4lazsrrgg5cshydn64932sm0vckplndk73"))))
ac4cb8fd 9106 (build-system haskell-build-system)
9107 (home-page "https://github.com/nikita-volkov/base-prelude")
9108 (synopsis "The most complete prelude formed solely from the Haskell's base
9109package")
9110 (description "This Haskell package aims to reexport all the non-conflicting
9111and most general definitions from the \"base\" package.
9112
9113This includes APIs for applicatives, arrows, monoids, foldables, traversables,
9114exceptions, generics, ST, MVars and STM.
9115
9116This package will never have any dependencies other than \"base\".
9117
9118Versioning policy:
9119
9120The versioning policy of this package deviates from PVP in the sense
9121that its exports in part are transitively determined by the version of \"base\".
9122Therefore it's recommended for the users of @code{ghc-base-prelude} to specify
9123the bounds of \"base\" as well.")
9124 (license license:expat)))
9125
e329bacb 9126(define-public ghc-tuple-th
9127 (package
9128 (name "ghc-tuple-th")
9129 (version "0.2.5")
9130 (source
9131 (origin
9132 (method url-fetch)
9133 (uri (string-append "https://hackage.haskell.org/package/"
9134 "tuple-th-" version "/"
9135 "tuple-th-" version ".tar.gz"))
9136 (sha256
9137 (base32
9138 "1mrl4vvxmby7sf1paf7hklzidnr6wq55822i73smqyz0xpf3gsjn"))))
9139 (build-system haskell-build-system)
9140 (home-page "https://github.com/DanielSchuessler/tuple-th")
9141 (synopsis "Generate utility functions for tuples of statically known size
9142for Haskell")
9143 (description "This Haskell package contains Template Haskell functions for
9144generating functions similar to those in @code{Data.List} for tuples of
9145statically known size.")
9146 (license license:bsd-3)))
9147
4562c8c8 9148(define-public ghc-contravariant-extras
9149 (package
9150 (name "ghc-contravariant-extras")
c1cf4c70 9151 (version "0.3.4")
4562c8c8 9152 (source
9153 (origin
9154 (method url-fetch)
9155 (uri (string-append "https://hackage.haskell.org/package/"
9156 "contravariant-extras-" version "/"
9157 "contravariant-extras-" version ".tar.gz"))
9158 (sha256
9159 (base32
c1cf4c70 9160 "0gg62ccl94kvh7mnvdq09pifqxjx2kgs189si90nmg44bafj7a9n"))))
4562c8c8 9161 (build-system haskell-build-system)
c1cf4c70
TS
9162 (inputs
9163 `(("ghc-tuple-th" ,ghc-tuple-th)
9164 ("ghc-contravariant" ,ghc-contravariant)
9165 ("ghc-base-prelude" ,ghc-base-prelude)
9166 ("ghc-semigroups" ,ghc-semigroups)))
4562c8c8 9167 (home-page "https://github.com/nikita-volkov/contravariant-extras")
9168 (synopsis "Extras for the @code{ghc-contravariant} Haskell package")
9169 (description "This Haskell package provides extras for the
9170@code{ghc-contravariant} package.")
9171 (license license:expat)))
9172
87129984 9173(define-public ghc-monadrandom
9174 (package
9175 (name "ghc-monadrandom")
d58fda7d 9176 (version "0.5.1.1")
87129984 9177 (source
9178 (origin
9179 (method url-fetch)
9180 (uri (string-append "https://hackage.haskell.org/package/"
9181 "MonadRandom-" version "/"
9182 "MonadRandom-" version ".tar.gz"))
9183 (sha256
9184 (base32
d58fda7d 9185 "0w44jl1n3kqvqaflh82l1wj3xxbhzfs3kf4m8rk7w6fgg8llmnmb"))))
87129984 9186 (build-system haskell-build-system)
9187 (inputs `(("ghc-transformers-compat" ,ghc-transformers-compat)
87129984 9188 ("ghc-primitive" ,ghc-primitive)
9189 ("ghc-fail" ,ghc-fail)
9190 ("ghc-random" ,ghc-random)))
9191 (home-page "https://github.com/byorgey/MonadRandom")
9192 (synopsis "Random-number generation monad for Haskell")
9193 (description "This Haskell package provides support for computations
9194which consume random values.")
9195 (license license:bsd-3)))
9196
16d4125e 9197(define-public ghc-either
9198 (package
9199 (name "ghc-either")
751a8c0b 9200 (version "5.0.1")
16d4125e 9201 (source
9202 (origin
9203 (method url-fetch)
9204 (uri (string-append "https://hackage.haskell.org/package/"
9205 "either-" version "/"
9206 "either-" version ".tar.gz"))
9207 (sha256
9208 (base32
751a8c0b 9209 "064hjfld7dkzs78sy30k5qkiva3hx24rax6dvzz5ygr2c0zypdkc"))))
16d4125e 9210 (build-system haskell-build-system)
9211 (inputs `(("ghc-bifunctors" ,ghc-bifunctors)
9212 ("ghc-exceptions" ,ghc-exceptions)
9213 ("ghc-free" ,ghc-free)
9214 ("ghc-monad-control" ,ghc-monad-control)
9215 ("ghc-manodrandom" ,ghc-monadrandom)
16d4125e 9216 ("ghc-mmorph" ,ghc-mmorph)
9217 ("ghc-profunctors" ,ghc-profunctors)
9218 ("ghc-semigroups" ,ghc-semigroups)
9219 ("ghc-semigroupoids" ,ghc-semigroupoids)
9220 ("ghc-transformers-base" ,ghc-transformers-base)))
751a8c0b
TS
9221 (native-inputs
9222 `(("ghc-quickcheck" ,ghc-quickcheck)
9223 ("ghc-test-framework" ,ghc-test-framework)
9224 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
16d4125e 9225 (home-page "https://github.com/ekmett/either")
9226 (synopsis "Provides an either monad transformer for Haskell")
9227 (description "This Haskell package provides an either monad transformer.")
9228 (license license:bsd-3)))
933e7804 9229
f78ed5d5 9230(define-public ghc-pretty-hex
9231 (package
9232 (name "ghc-pretty-hex")
9233 (version "1.0")
9234 (source
9235 (origin
9236 (method url-fetch)
9237 (uri (string-append "https://hackage.haskell.org/package/"
9238 "pretty-hex-" version "/"
9239 "pretty-hex-" version ".tar.gz"))
9240 (sha256
9241 (base32
9242 "0ylwkvvjvmpprha9nx83xb8gkhyanhk5fffc0r7lb96n4ch5z6pz"))))
9243 (build-system haskell-build-system)
9244 (home-page "https://github.com/GaloisInc/hexdump")
9245 (synopsis "Haskell library for hex dumps of ByteStrings")
9246 (description "This Haskell library generates pretty hex dumps of
9247ByteStrings in the style of other common *nix hex dump tools.")
9248 (license license:bsd-3)))
9249
6eda2635 9250(define-public ghc-network-info
9251 (package
9252 (name "ghc-network-info")
e433898d 9253 (version "0.2.0.10")
6eda2635 9254 (source
9255 (origin
9256 (method url-fetch)
9257 (uri (string-append "https://hackage.haskell.org/package/"
9258 "network-info-" version "/"
9259 "network-info-" version ".tar.gz"))
9260 (sha256
9261 (base32
e433898d 9262 "0anmgzcpnz7nw3n6vq0r25m1s9l2svpwi83wza0lzkrlbnbzd02n"))))
6eda2635 9263 (build-system haskell-build-system)
9264 (home-page "https://github.com/jystic/network-info")
9265 (synopsis "Access the local computer's basic network configuration")
9266 (description "This Haskell library provides simple read-only access to the
9267local computer's networking configuration. It is currently capable of
9268getting a list of all the network interfaces and their respective
9269IPv4, IPv6 and MAC addresses.")
9270 (license license:bsd-3)))
9271
b999b009 9272(define-public ghc-uuid-types
9273 (package
9274 (name "ghc-uuid-types")
9275 (version "1.0.3")
9276 (source
9277 (origin
9278 (method url-fetch)
9279 (uri (string-append "https://hackage.haskell.org/package/"
9280 "uuid-types-" version "/"
9281 "uuid-types-" version ".tar.gz"))
9282 (sha256
9283 (base32
9284 "1zdka5jnm1h6k36w3nr647yf3b5lqb336g3fkprhd6san9x52xlj"))))
9285 (build-system haskell-build-system)
b1c5c8de 9286 (arguments
fe3ecc30
TS
9287 `(#:phases
9288 (modify-phases %standard-phases
9289 (add-before 'configure 'strip-test-framework-constraints
9290 (lambda _
9291 (substitute* "uuid-types.cabal"
9292 (("HUnit >=1\\.2 && < 1\\.4") "HUnit")
9293 (("QuickCheck >=2\\.4 && < 2\\.9") "QuickCheck")
9294 (("tasty >= 0\\.10 && < 0\\.12") "tasty")
9295 (("tasty-hunit == 0\\.9\\.\\*") "tasty-hunit")
9296 (("tasty-quickcheck == 0\\.8\\.\\*") "tasty-quickcheck")))))))
b999b009 9297 (inputs `(("ghc-hashable" ,ghc-hashable)
9298 ("ghc-random" ,ghc-random)
9299 ("ghc-text" ,ghc-text)))
9300 (native-inputs `(("ghc-hunit" ,ghc-hunit)
9301 ("ghc-quickcheck" ,ghc-quickcheck)
9302 ("ghc-tasty" ,ghc-tasty)
9303 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
9304 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
9305 (home-page "https://github.com/hvr/uuid")
9306 (synopsis "Haskell type definitions for UUIDs")
9307 (description "This Haskell library contains type definitions for
9308@dfn{Universally Unique Identifiers} or
98b90194 9309@uref{https://en.wikipedia.org/wiki/UUID, UUIDs}, and basic conversion
b999b009 9310functions.")
9311 (license license:bsd-3)))
9312
24535a3d 9313(define-public ghc-uuid
9314 (package
9315 (name "ghc-uuid")
9316 (version "1.3.13")
9317 (source
9318 (origin
9319 (method url-fetch)
9320 (uri (string-append "https://hackage.haskell.org/package/"
9321 "uuid-" version "/"
9322 "uuid-" version ".tar.gz"))
9323 (sha256
9324 (base32
9325 "09xhk42yhxvqmka0iqrv3338asncz8cap3j0ic0ps896f2581b6z"))))
9326 (build-system haskell-build-system)
1debc5b9 9327 (arguments
a11ce106
TS
9328 `(#:cabal-revision
9329 ("2" "0m185q62jkfb5jsv358nxbnrkv8y8hd0qqvgvh22wvc5g9ipz0r9")
9330 #:phases
9331 (modify-phases %standard-phases
9332 (add-before 'configure 'strip-test-framework-constraints
9333 (lambda _
9334 (substitute* "uuid.cabal"
9335 (("HUnit >= 1\\.2 && < 1\\.4") "HUnit")
9336 (("QuickCheck >= 2\\.4 && < 2\\.10") "QuickCheck")
9337 (("tasty >= 0\\.10 && < 0\\.12") "tasty")
9338 (("tasty-hunit == 0\\.9\\.\\*") "tasty-hunit")
9339 (("tasty-quickcheck == 0\\.8\\.\\*") "tasty-quickcheck")))))))
24535a3d 9340 (inputs `(("ghc-cryptohash-sha1" ,ghc-cryptohash-sha1)
9341 ("ghc-cryptohash-md5" ,ghc-cryptohash-md5)
9342 ("ghc-entropy" ,ghc-entropy)
9343 ("ghc-network-info" ,ghc-network-info)
9344 ("ghc-random" ,ghc-random)
9345 ("ghc-text" ,ghc-text)
9346 ("ghc-uuid-types" ,ghc-uuid-types)))
9347 (native-inputs `(("ghc-hunit" ,ghc-hunit)
9348 ("ghc-quickcheck" ,ghc-quickcheck)
9349 ("ghc-tasty" ,ghc-tasty)
9350 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
9351 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
9352 (home-page "https://github.com/hvr/uuid")
9353 (synopsis "Haskell library to create, compare, parse, and print UUIDs")
9354 (description "This Haskell library provides utilities creating, comparing,
9355parsing and printing @dfn{Universally Unique Identifiers} or UUIDs.")
9356 (license license:bsd-3)))
9357
33109c82 9358(define-public ghc-rebase
9359 (package
9360 (name "ghc-rebase")
6d2fd200 9361 (version "1.2.4")
33109c82 9362 (source
9363 (origin
9364 (method url-fetch)
9365 (uri (string-append "https://hackage.haskell.org/package/"
9366 "rebase-" version "/"
9367 "rebase-" version ".tar.gz"))
9368 (sha256
9369 (base32
6d2fd200 9370 "1gah2qwfpzwamnikbc5h4nv6dgvv9h16di9ka7946za3nibyasya"))))
33109c82 9371 (build-system haskell-build-system)
9372 (inputs `(("ghc-stm" ,ghc-stm)
9373 ("ghc-hashable" ,ghc-hashable)
9374 ("ghc-vector" ,ghc-vector)
9375 ("ghc-unordered-containers" ,ghc-unordered-containers)
9376 ("ghc-text" ,ghc-text)
9377 ("ghc-scientific" ,ghc-scientific)
9378 ("ghc-uuid" ,ghc-uuid)
9379 ("ghc-dlist" ,ghc-dlist)
9380 ("ghc-void" ,ghc-void)
9381 ("ghc-bifunctors" ,ghc-bifunctors)
9382 ("ghc-profunctors" ,ghc-profunctors)
9383 ("ghc-contravariant" ,ghc-contravariant)
9384 ("ghc-contravariant-extras" ,ghc-contravariant-extras)
9385 ("ghc-semigroups" ,ghc-semigroups)
33109c82 9386 ("ghc-either" ,ghc-either)
9387 ("ghc-fail" ,ghc-fail)
9388 ("ghc-base-prelude" ,ghc-base-prelude)))
9389 (home-page "https://github.com/nikita-volkov/rebase")
9390 (synopsis "Progressive alternative to the base package
9391for Haskell")
9392 (description "This Haskell package is intended for those who are
9393tired of keeping long lists of dependencies to the same essential libraries
9394in each package as well as the endless imports of the same APIs all over again.
9395
9396It also supports the modern tendencies in the language.
9397
9398To solve those problems this package does the following:
9399
9400@itemize
9401@item Reexport the original APIs under the @code{Rebase} namespace.
9402
9403@item Export all the possible non-conflicting symbols from the
9404@code{Rebase.Prelude} module.
9405
9406@item Give priority to the modern practices in the conflicting cases.
9407@end itemize
9408
9409The policy behind the package is only to reexport the non-ambiguous and
9410non-controversial APIs, which the community has obviously settled on.
9411The package is intended to rapidly evolve with the contribution from
9412the community, with the missing features being added with pull-requests.")
9413 (license license:expat)))
9516ef4f
TS
9414
9415(define-public ghc-rerebase
9416 (package
9417 (name "ghc-rerebase")
9418 (version "1.2.2")
9419 (source
9420 (origin
9421 (method url-fetch)
9422 (uri (string-append
9423 "https://hackage.haskell.org/package/rerebase/rerebase-"
9424 version ".tar.gz"))
9425 (sha256
9426 (base32
9427 "11v6rmz7ql2rdx6mhb3lsal952lwihclfhh0m7fcnii5br0906ks"))))
9428 (build-system haskell-build-system)
9429 (inputs
9430 `(("ghc-rebase" ,ghc-rebase)))
9431 (home-page "https://github.com/nikita-volkov/rerebase")
9432 (synopsis "Reexports from ``base'' with many other standard libraries")
36a4366d 9433 (description "A rich drop-in replacement for @code{base}. For details and
9516ef4f
TS
9434documentation please visit @uref{https://github.com/nikita-volkov/rerebase,
9435the project's home page}.")
9436 (license license:expat)))
33109c82 9437
1896a252 9438(define-public ghc-vector-builder
9439 (package
9440 (name "ghc-vector-builder")
c237721e 9441 (version "0.3.6")
1896a252 9442 (source
9443 (origin
9444 (method url-fetch)
9445 (uri (string-append "https://hackage.haskell.org/package/"
9446 "vector-builder-" version "/"
9447 "vector-builder-" version ".tar.gz"))
9448 (sha256
9449 (base32
c237721e 9450 "06d2pa1fb3ydrl7l6rjazqyxv5i73v65x2f5fp0ypjxfbm6jsmn8"))))
1896a252 9451 (build-system haskell-build-system)
9452 (inputs `(("ghc-vector" ,ghc-vector)
9453 ("ghc-semigroups" ,ghc-semigroups)
9454 ("ghc-base-prelude" ,ghc-base-prelude)))
c237721e
TS
9455 (native-inputs `(("ghc-attoparsec" ,ghc-attoparsec)
9456 ("ghc-tasty" ,ghc-tasty)
1896a252 9457 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
9458 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
9459 ("ghc-hunit" ,ghc-hunit)
9460 ("ghc-quickcheck-instances" ,ghc-quickcheck-instances)
c237721e 9461 ("ghc-rerebase" ,ghc-rerebase)))
1896a252 9462 (home-page "https://github.com/nikita-volkov/vector-builder")
9463 (synopsis "Vector builder for Haskell")
9464 (description "This Haskell package provides an API for constructing vectors.
9465It provides the composable @code{Builder} abstraction, which has instances of the
9466@code{Monoid} and @code{Semigroup} classes.
9467
9468You would first use the @code{Builder} abstraction to specify the structure of
9469the vector; then you can execute the builder to actually produce the
9470vector. ")
9471 (license license:expat)))
9472
f6094850 9473(define-public ghc-foldl
9474 (package
9475 (name "ghc-foldl")
ca96ba99 9476 (version "1.4.3")
f6094850 9477 (source
9478 (origin
9479 (method url-fetch)
9480 (uri (string-append "https://hackage.haskell.org/package/"
9481 "foldl-" version "/"
9482 "foldl-" version ".tar.gz"))
9483 (sha256
9484 (base32
ca96ba99 9485 "13n0ca3hw5jzqf6rxsdbhbwkn61a9zlm13f0f205s60j3sc72jzk"))))
f6094850 9486 (build-system haskell-build-system)
9487 (inputs `(("ghc-mwc-randam" ,ghc-mwc-random)
9488 ("ghc-primitive" ,ghc-primitive)
9489 ("ghc-text" ,ghc-text)
9490 ("ghc-vector" ,ghc-vector)
9491 ("ghc-unordered-containers" ,ghc-unordered-containers)
9492 ("ghc-hashable" ,ghc-hashable)
9493 ("ghc-contravariant" ,ghc-contravariant)
ca96ba99 9494 ("ghc-semigroups" ,ghc-semigroups)
f6094850 9495 ("ghc-profunctors" ,ghc-profunctors)
ca96ba99 9496 ("ghc-semigroupoids" ,ghc-semigroupoids)
f6094850 9497 ("ghc-comonad" ,ghc-comonad)
9498 ("ghc-vector-builder" ,ghc-vector-builder)))
9499 (home-page "https://github.com/Gabriel439/Haskell-Foldl-Library")
9500 (synopsis "Composable, streaming, and efficient left folds for Haskell")
9501 (description "This Haskell library provides strict left folds that stream
9502in constant memory, and you can combine folds using @code{Applicative} style
9503to derive new folds. Derived folds still traverse the container just once
9504and are often as efficient as hand-written folds.")
9505 (license license:bsd-3)))
9506
ed4cc0c5 9507(define-public ghc-mono-traversable
9508 (package
9509 (name "ghc-mono-traversable")
74b30be0 9510 (version "1.0.9.0")
ed4cc0c5 9511 (source
9512 (origin
9513 (method url-fetch)
9514 (uri (string-append "https://hackage.haskell.org/package/"
9515 "mono-traversable-" version "/"
9516 "mono-traversable-" version ".tar.gz"))
9517 (sha256
9518 (base32
74b30be0 9519 "0180ks0dyvpk1r20w5jw2w2n79mjnk69n9vhspaxzlyxqgim5psa"))))
ed4cc0c5 9520 (build-system haskell-build-system)
9521 (inputs `(("ghc-unordered-containers" ,ghc-unordered-containers)
9522 ("ghc-hashable" ,ghc-hashable)
9523 ("ghc-text" ,ghc-text)
9524 ("ghc-vector" ,ghc-vector)
9525 ("ghc-vector-algorithms" ,ghc-vector-algorithms)
9526 ("ghc-split" ,ghc-split)))
9527 (native-inputs `(("ghc-hspec" ,ghc-hspec)
c695fb76 9528 ("ghc-hunit" ,ghc-hunit)
ed4cc0c5 9529 ("ghc-quickcheck" ,ghc-quickcheck)
9530 ("ghc-semigroups" ,ghc-semigroups)
9531 ("ghc-foldl" ,ghc-foldl)))
9532 (home-page "https://github.com/snoyberg/mono-traversable")
9533 (synopsis "Haskell classes for mapping, folding, and traversing monomorphic
9534containers")
9535 (description "This Haskell package provides Monomorphic variants of the
9536Functor, Foldable, and Traversable typeclasses. If you understand Haskell's
9537basic typeclasses, you understand mono-traversable. In addition to what
9538you are used to, it adds on an IsSequence typeclass and has code for marking
9539data structures as non-empty.")
9540 (license license:expat)))
9541
95fb25bf 9542(define-public ghc-conduit-combinators
9543 (package
9544 (name "ghc-conduit-combinators")
37d79707 9545 (version "1.3.0")
95fb25bf 9546 (source
9547 (origin
9548 (method url-fetch)
9549 (uri (string-append "https://hackage.haskell.org/package/"
9550 "conduit-combinators-" version "/"
9551 "conduit-combinators-" version ".tar.gz"))
9552 (sha256
9553 (base32
37d79707 9554 "1lz70vwp4y4lpsivxl0cshq7aq3968rh48r6rjvpyaj2l0bdj5wp"))))
95fb25bf 9555 (build-system haskell-build-system)
9556 (inputs `(("ghc-conduit" ,ghc-conduit)
9557 ("ghc-conduit-extra" ,ghc-conduit-extra)
9558 ("ghc-transformers-base" ,ghc-transformers-base)
9559 ("ghc-primitive" ,ghc-primitive)
9560 ("ghc-vector" ,ghc-vector)
9561 ("ghc-text" ,ghc-text)
9562 ("ghc-void" ,ghc-void)
9563 ("ghc-mwc-random" ,ghc-mwc-random)
9564 ("ghc-unix-compat" ,ghc-unix-compat)
9565 ("ghc-base16-bytestring" ,ghc-base16-bytestring)
9566 ("ghc-base64-bytestring" ,ghc-base64-bytestring)
9567 ("ghc-resourcet" ,ghc-resourcet)
9568 ("ghc-monad-control" ,ghc-monad-control)
9569 ("ghc-chunked-data" ,ghc-chunked-data)
9570 ("ghc-mono-traversable" ,ghc-mono-traversable)))
9571 (native-inputs `(("ghc-hspec" ,ghc-hspec)
9572 ("ghc-silently" ,ghc-silently)
95fb25bf 9573 ("ghc-safe" ,ghc-safe)
9574 ("ghc-quickcheck" ,ghc-quickcheck)))
9575 (home-page "https://github.com/snoyberg/mono-traversable")
9576 (synopsis "Commonly used conduit functions, for both chunked and
9577unchunked data")
9578 (description "This Haskell package provides a replacement for Data.Conduit.List,
9579as well as a convenient Conduit module.")
9580 (license license:expat)))
9581
3a784700 9582(define-public ghc-aws
9583 (package
9584 (name "ghc-aws")
99daa294 9585 (version "0.20")
3a784700 9586 (source
9587 (origin
9588 (method url-fetch)
9589 (uri (string-append "https://hackage.haskell.org/package/"
9590 "aws-" version "/aws-" version ".tar.gz"))
9591 (sha256 (base32
99daa294 9592 "0pwpabmypi1w8rni9qfwabgn95jks4h8dyw6889mn8xzsrhdhyf0"))))
3a784700 9593 (build-system haskell-build-system)
9594 (arguments `(#:tests? #f)) ; Tests require AWS credentials.
9595 (inputs
9596 `(("ghc-aeson" ,ghc-aeson)
9597 ("ghc-attoparsec" ,ghc-attoparsec)
9598 ("ghc-base16-bytestring" ,ghc-base16-bytestring)
9599 ("ghc-base64-bytestring" ,ghc-base64-bytestring)
9600 ("ghc-blaze-builder" ,ghc-blaze-builder)
9601 ("ghc-byteable" ,ghc-byteable)
9602 ("ghc-case-insensitive" ,ghc-case-insensitive)
9603 ("ghc-cereal" ,ghc-cereal)
9604 ("ghc-conduit" ,ghc-conduit)
9605 ("ghc-conduit-extra" ,ghc-conduit-extra)
0faddfc3 9606 ("ghc-cryptonite" ,ghc-cryptonite)
3a784700 9607 ("ghc-data-default" ,ghc-data-default)
9608 ("ghc-http-conduit" ,ghc-http-conduit)
9609 ("ghc-http-types" ,ghc-http-types)
456d76ea 9610 ("ghc-lifted-base" ,ghc-lifted-base)
3a784700 9611 ("ghc-monad-control" ,ghc-monad-control)
3a784700 9612 ("ghc-network" ,ghc-network)
9613 ("ghc-old-locale" ,ghc-old-locale)
9614 ("ghc-safe" ,ghc-safe)
9615 ("ghc-scientific" ,ghc-scientific)
9616 ("ghc-tagged" ,ghc-tagged)
9617 ("ghc-text" ,ghc-text)
9618 ("ghc-unordered-containers" ,ghc-unordered-containers)
9619 ("ghc-utf8-string" ,ghc-utf8-string)
9620 ("ghc-vector" ,ghc-vector)
9621 ("ghc-xml-conduit" ,ghc-xml-conduit)))
9622 (native-inputs
9623 `(("ghc-quickcheck" ,ghc-quickcheck)
9624 ("ghc-errors" ,ghc-errors)
9625 ("ghc-http-client" ,ghc-http-client)
9626 ("ghc-http-client-tls" ,ghc-http-client-tls)
9627 ("ghc-quickcheck-instances" ,ghc-quickcheck-instances)
9628 ("ghc-tasty" ,ghc-tasty)
9629 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
9630 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
9631 ("ghc-conduit-combinators" ,ghc-conduit-combinators)))
9632 (home-page "https://github.com/aristidb/aws")
9633 (synopsis "Amazon Web Services for Haskell")
9634 (description "This package attempts to provide support for using
9635Amazon Web Services like S3 (storage), SQS (queuing) and others to
9636Haskell programmers. The ultimate goal is to support all Amazon
9637Web Services.")
9638 (license license:bsd-3)))
9639
da5fe92a
RW
9640(define-public ghc-basement
9641 (package
9642 (name "ghc-basement")
6bacde7c 9643 (version "0.0.8")
da5fe92a
RW
9644 (source
9645 (origin
9646 (method url-fetch)
9647 (uri (string-append "https://hackage.haskell.org/package/"
9648 "basement/basement-" version ".tar.gz"))
9649 (sha256
9650 (base32
6bacde7c 9651 "194jw567di4q2758943q9rrwkbf9gl261my7qc21i9xhyabipx67"))))
da5fe92a
RW
9652 (build-system haskell-build-system)
9653 (home-page "https://github.com/haskell-foundation/foundation")
9654 (synopsis "Basic primitives for Foundation starter pack")
9655 (description
9656 "This package contains basic primitives for the Foundation set of
9657packages.")
9658 (license license:bsd-3)))
9659
635cc8fe
RW
9660(define-public ghc-foundation
9661 (package
9662 (name "ghc-foundation")
95415545 9663 (version "0.0.21")
635cc8fe
RW
9664 (source
9665 (origin
9666 (method url-fetch)
9667 (uri (string-append "https://hackage.haskell.org/package/"
9668 "foundation/foundation-" version ".tar.gz"))
9669 (sha256
9670 (base32
95415545 9671 "1q43y8wfj0wf9gdq2kzphwjwq6m5pvryy1lqgk954aq5z3ks1lsf"))))
635cc8fe 9672 (build-system haskell-build-system)
95415545
TS
9673 (arguments
9674 `(#:phases
9675 (modify-phases %standard-phases
9676 (add-after 'unpack 'add-setup-script
9677 (lambda _
9678 ;; The usual "Setup.hs" script is missing from the source.
9679 (with-output-to-file "Setup.hs"
9680 (lambda ()
9681 (format #t "import Distribution.Simple~%")
9682 (format #t "main = defaultMain~%"))))))))
635cc8fe
RW
9683 (inputs `(("ghc-basement" ,ghc-basement)))
9684 (home-page "https://github.com/haskell-foundation/foundation")
9685 (synopsis "Alternative prelude with batteries and no dependencies")
9686 (description
9687 "This package provides a custom prelude with no dependencies apart from
9688the base package.
9689
9690Foundation has the following goals:
9691
9692@enumerate
9693@item provide a base like sets of modules that provide a consistent set of
9694 features and bugfixes across multiple versions of GHC (unlike base).
9695@item provide a better and more efficient prelude than base's prelude.
9696@item be self-sufficient: no external dependencies apart from base;
9697@item provide better data-types: packed unicode string by default, arrays;
9698@item Numerical classes that better represent mathematical things (no more
9699 all-in-one @code{Num});
9700@item I/O system with less lazy IO.
9701@end enumerate\n")
9702 (license license:bsd-3)))
9703
bb87be09 9704(define-public ghc-stm-chans
9705 (package
9706 (name "ghc-stm-chans")
9707 (version "3.0.0.4")
9708 (source
9709 (origin
9710 (method url-fetch)
9711 (uri (string-append "https://hackage.haskell.org/package/"
9712 "stm-chans-" version "/"
9713 "stm-chans-" version ".tar.gz"))
9714 (sha256
9715 (base32
9716 "0f27sp09yha43xk9q55sc185jyjs5h7gq2dhsyx6bm9kz9dzqi13"))))
9717 (build-system haskell-build-system)
9718 (inputs `(("ghc-stm" ,ghc-stm)))
9719 (home-page "https://hackage.haskell.org/package/stm-chans")
9720 (synopsis "Additional types of channels for ghc-stm")
9721 (description "This Haskell package offers a collection of channel types,
9722similar to @code{Control.Concurrent.STM.@{TChan,TQueue@}} but with additional
9723features.")
9724 (license license:bsd-3)))
9725
fddb41f2 9726(define-public ghc-monad-loops
9727 (package
9728 (name "ghc-monad-loops")
9729 (version "0.4.3")
9730 (source
9731 (origin
9732 (method url-fetch)
9733 (uri (string-append "https://hackage.haskell.org/package/"
9734 "monad-loops-" version "/"
9735 "monad-loops-" version ".tar.gz"))
9736 (sha256
9737 (base32
9738 "062c2sn3hc8h50p1mhqkpyv6x8dydz2zh3ridvlfjq9nqimszaky"))))
9739 (build-system haskell-build-system)
9740 (native-inputs `(("ghc-tasty" ,ghc-tasty)
9741 ("ghc-tasty-hunit" ,ghc-tasty-hunit)))
9742 (home-page "https://github.com/mokus0/monad-loops")
9743 (synopsis "Monadic loops for Haskell")
9744 (description "This Haskell package provides some useful control
9745operators for looping.")
9746 (license license:public-domain)))
9747
fe9b5eff 9748(define-public ghc-monad-logger
9749 (package
9750 (name "ghc-monad-logger")
6f7280b0 9751 (version "0.3.29")
fe9b5eff 9752 (source
9753 (origin
9754 (method url-fetch)
9755 (uri (string-append "https://hackage.haskell.org/package/"
9756 "monad-logger-" version "/"
9757 "monad-logger-" version ".tar.gz"))
9758 (sha256
9759 (base32
6f7280b0 9760 "1z516s4pa9n94zf0l45mylssg07xr1d1m6zrz900p0iv3vfd07mv"))))
fe9b5eff 9761 (build-system haskell-build-system)
9762 (inputs `(("ghc-transformers-compat" ,ghc-transformers-compat)
9763 ("ghc-text" ,ghc-text)
9764 ("ghc-stm" ,ghc-stm)
9765 ("ghc-stm-chans" ,ghc-stm-chans)
9766 ("ghc-lifted-base" ,ghc-lifted-base)
9767 ("ghc-resourcet" ,ghc-resourcet)
9768 ("ghc-conduit" ,ghc-conduit)
9769 ("ghc-conduit-extra" ,ghc-conduit-extra)
9770 ("ghc-fast-logger" ,ghc-fast-logger)
9771 ("ghc-transformers-base" ,ghc-transformers-base)
9772 ("ghc-monad-control" ,ghc-monad-control)
9773 ("ghc-monad-loops" ,ghc-monad-loops)
fe9b5eff 9774 ("ghc-blaze-builder" ,ghc-blaze-builder)
9775 ("ghc-exceptions" ,ghc-exceptions)))
9776 (home-page "https://github.com/kazu-yamamoto/logger")
9777 (synopsis "Provides a class of monads which can log messages for Haskell")
9778 (description "This Haskell package uses a monad transformer approach
9779for logging.
9780
9781This package provides Template Haskell functions for determining source
9782code locations of messages.")
9783 (license license:expat)))
9784
b2b4575d 9785(define-public ghc-shakespeare
9786 (package
9787 (name "ghc-shakespeare")
01a67f89 9788 (version "2.0.15")
b2b4575d 9789 (source
9790 (origin
9791 (method url-fetch)
9792 (uri (string-append "https://hackage.haskell.org/package/"
9793 "shakespeare-" version "/"
9794 "shakespeare-" version ".tar.gz"))
9795 (sha256
9796 (base32
01a67f89 9797 "1vk4b19zvwy4mpwaq9z3l3kfmz75gfyf7alhh0y112gspgpccm23"))))
b2b4575d 9798 (build-system haskell-build-system)
9799 (inputs `(("ghc-parsec" ,ghc-parsec)
9800 ("ghc-text" ,ghc-text)
9801 ("ghc-aeson" ,ghc-aeson)
9802 ("ghc-blaze-markup" ,ghc-blaze-markup)
9803 ("ghc-blaze-html" ,ghc-blaze-html)
9804 ("ghc-exceptions" ,ghc-exceptions)
9805 ("ghc-vector" ,ghc-vector)
9806 ("ghc-unordered-containers" ,ghc-unordered-containers)
9807 ("ghc-scientific" ,ghc-scientific)))
9808 (native-inputs `(("ghc-hspec" ,ghc-hspec)
9809 ("ghc-hunit" ,ghc-hunit)
9810 ("hspec-discover" ,hspec-discover)))
9811 (home-page "https://www.yesodweb.com/book/shakespearean-templates")
9812 (synopsis "Family of type-safe template languages for Haskell")
9813 (description "This Haskell package provides a family of type-safe
9814templates with simple variable interpolation. Shakespeare templates can
9815be used inline with a quasi-quoter or in an external file and it
9816interpolates variables according to the type being inserted.")
9817 (license license:expat)))
9818
54f3536d 9819(define-public ghc-securemem
9820 (package
9821 (name "ghc-securemem")
4828f040 9822 (version "0.1.10")
54f3536d 9823 (source
9824 (origin
9825 (method url-fetch)
9826 (uri (string-append "https://hackage.haskell.org/package/"
9827 "securemem-" version "/"
9828 "securemem-" version ".tar.gz"))
9829 (sha256
9830 (base32
4828f040 9831 "19hnw2cfbsfjynxq1bq9f6djbxhsc1k751ml0y1ab3ah913mm29j"))))
54f3536d 9832 (build-system haskell-build-system)
9833 (inputs `(("ghc-byteable" ,ghc-byteable)
9834 ("ghc-memory" ,ghc-memory)))
9835 (home-page "https://github.com/vincenthz/hs-securemem")
9836 (synopsis "Auto-scrubbing and const-time-eq memory chunk abstraction for
9837Haskell")
9838 (description "SecureMem is similar to ByteString, except that it provides
9839a memory chunk that will be auto-scrubbed after it run out of scope.")
9840 (license license:bsd-3)))
9841
d96a1bfe 9842(define-public ghc-resource-pool
9843 (package
9844 (name "ghc-resource-pool")
9845 (version "0.2.3.2")
9846 (source
9847 (origin
9848 (method url-fetch)
9849 (uri (string-append "https://hackage.haskell.org/package/"
9850 "resource-pool-" version "/"
9851 "resource-pool-" version ".tar.gz"))
9852 (sha256
9853 (base32
9854 "04mw8b9djb14zp4rdi6h7mc3zizh597ffiinfbr4m0m8psifw9w6"))))
9855 (build-system haskell-build-system)
9856 (inputs `(("ghc-hashable" ,ghc-hashable)
9857 ("ghc-monad-control" ,ghc-monad-control)
9858 ("ghc-transformers-base" ,ghc-transformers-base)
9859 ("ghc-stm" ,ghc-stm)
9860 ("ghc-vector" ,ghc-vector)))
9861 (home-page "https://github.com/bos/pool")
9862 (synopsis "Striped resource pooling implementation in Haskell")
9863 (description "This Haskell package provides striped pooling abstraction
9864for managing flexibly-sized collections of resources such as database
9865connections.")
9866 (license license:bsd-3)))
9867
ac7cdb40 9868(define-public ghc-attoparsec-iso8601
9869 (package
9870 (name "ghc-attoparsec-iso8601")
9871 (version "1.0.0.0")
9872 (source
9873 (origin
9874 (method url-fetch)
9875 (uri (string-append "https://hackage.haskell.org/package/"
9876 "attoparsec-iso8601-" version "/"
9877 "attoparsec-iso8601-" version ".tar.gz"))
9878 (sha256
9879 (base32
9880 "12l55b76bhya9q89mfmqmy6sl5v39b6gzrw5rf3f70vkb23nsv5a"))))
9881 (build-system haskell-build-system)
8e4394a5
TS
9882 (arguments
9883 `(#:cabal-revision
9884 ("1" "06f7pgmmc8456p3hc1y23kz1y127gfczy7s00wz1rls9g2sm2vi4")))
ac7cdb40 9885 (inputs `(("ghc-attoparsec" ,ghc-attoparsec)
9886 ("ghc-base-compat" ,ghc-base-compat)
9887 ("ghc-text" ,ghc-text)))
9888 (home-page "https://github.com/bos/aeson")
9889 (synopsis "Parse ISO 8601 dates")
9890 (description "Haskell library for parsing of ISO 8601 dates, originally
9891from aeson.")
9892 (license license:bsd-3)))
9893
e99bd15c 9894(define-public ghc-generics-sop
9895 (package
9896 (name "ghc-generics-sop")
acf13271 9897 (version "0.3.2.0")
e99bd15c 9898 (source
9899 (origin
9900 (method url-fetch)
9901 (uri (string-append "https://hackage.haskell.org/package/"
9902 "generics-sop-" version "/"
9903 "generics-sop-" version ".tar.gz"))
9904 (sha256
9905 (base32
acf13271 9906 "168v62i845jh9jbfaz3ldz8svz4wmzq9mf2vhb7pxlnbkk8fqq1h"))))
e99bd15c 9907 (build-system haskell-build-system)
9908 (inputs `(("ghc-transformers-compat" ,ghc-transformers-compat)))
9909 (home-page "https://github.com/well-typed/generics-sop")
9910 (synopsis "Generic Programming using True Sums of Products for Haskell")
9911 (description "This Haskell package supports the definition of generic
9912functions. Datatypes are viewed in a uniform, structured way: the choice
9913between constructors is represented using an n-ary sum, and the arguments of
9914each constructor are represented using an n-ary product.")
9915 (license license:bsd-3)))
9916
8ecefe72 9917(define-public ghc-uri-bytestring
9918 (package
9919 (name "ghc-uri-bytestring")
bad349d8 9920 (version "0.3.2.0")
8ecefe72 9921 (source
9922 (origin
9923 (method url-fetch)
9924 (uri (string-append "https://hackage.haskell.org/package/"
9925 "uri-bytestring-" version "/"
9926 "uri-bytestring-" version ".tar.gz"))
9927 (sha256
9928 (base32
bad349d8 9929 "1q04j5ybvk37zk2m0bkjwyhblz0ymdj0cn4rvsvdca1ikn5xdv5c"))))
8ecefe72 9930 (build-system haskell-build-system)
9931 (inputs `(("ghc-attoparsec" ,ghc-attoparsec)
9932 ("ghc-fail" ,ghc-fail)
9933 ("ghc-blaze-builder" ,ghc-blaze-builder)
9934 ("ghc-th-lift-instances" ,ghc-th-lift-instances)))
9935 (native-inputs `(("ghc-attoparsec" ,ghc-attoparsec)
9936 ("ghc-hunit" ,ghc-hunit)
9937 ("ghc-quickcheck" ,ghc-quickcheck)
9938 ("ghc-tasty" ,ghc-tasty)
9939 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
9940 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
9941 ("ghc-base-compat" ,ghc-base-compat)
9942 ("ghc-quickcheck-instances" ,ghc-quickcheck-instances)
9943 ("ghc-semigroups" ,ghc-semigroups)
9944 ("ghc-generics-sop" ,ghc-generics-sop)))
9945 (home-page "https://github.com/Soostone/uri-bytestring")
9946 (synopsis "Haskell URI parsing as ByteStrings")
9947 (description "This Haskell package aims to be an RFC3986 compliant URI
9948parser that uses ByteStrings for parsing and representing the URI data.")
9949 (license license:bsd-3)))
9950
b6d8ea42 9951(define-public ghc-http-api-data
9952 (package
9953 (name "ghc-http-api-data")
de02e56b 9954 (version "0.3.8.1")
b6d8ea42 9955 (source
9956 (origin
9957 (method url-fetch)
9958 (uri (string-append "https://hackage.haskell.org/package/"
9959 "http-api-data-" version "/"
9960 "http-api-data-" version ".tar.gz"))
9961 (sha256
9962 (base32
de02e56b 9963 "1cq6459b8wz6nvkvpi89dg189n5q2xdq4rdq435hf150555vmskf"))))
b6d8ea42 9964 (build-system haskell-build-system)
9965 (arguments `(#:tests? #f)) ; FIXME: Tests require QuickCheck >= 2.9
9966 (inputs `(("ghc-attoparsec" ,ghc-attoparsec)
9967 ("ghc-attoparsec-iso8601" ,ghc-attoparsec-iso8601)
9968 ("ghc-hashable" ,ghc-hashable)
9969 ("ghc-http-types" ,ghc-http-types)
9970 ("ghc-text" ,ghc-text)
9971 ("ghc-time-locale-compat" ,ghc-time-locale-compat)
9972 ("ghc-unordered-containers" ,ghc-unordered-containers)
9973 ("ghc-uri-bytestring" ,ghc-uri-bytestring)
9974 ("ghc-uuid-types" ,ghc-uuid-types)))
9975 (home-page "https://github.com/fizruk/http-api-data")
9976 (synopsis "Convert to/from HTTP API data like URL pieces, headers and
9977query parameters")
9978 (description "This Haskell package defines typeclasses used for converting
9979Haskell data types to and from HTTP API data.")
9980 (license license:bsd-3)))
9981
104e179d 9982(define-public ghc-persistent
9983 (package
9984 (name "ghc-persistent")
bc368781 9985 (version "2.8.2")
104e179d 9986 (source
9987 (origin
9988 (method url-fetch)
9989 (uri (string-append "https://hackage.haskell.org/package/"
9990 "persistent-" version "/"
9991 "persistent-" version ".tar.gz"))
9992 (sha256
9993 (base32
bc368781 9994 "1h0yijbf1yiwl50klyafy4ln99j8bib4kgbzviw7fc4y4mwv4sv9"))))
104e179d 9995 (build-system haskell-build-system)
9996 (inputs `(("ghc-old-locale" ,ghc-old-locale)
9997 ("ghc-text" ,ghc-text)
9998 ("ghc-conduit" ,ghc-conduit)
9999 ("ghc-resourcet" ,ghc-resourcet)
10000 ("ghc-exceptions" ,ghc-exceptions)
10001 ("ghc-monad-control" ,ghc-monad-control)
10002 ("ghc-lifted-base" ,ghc-lifted-base)
10003 ("ghc-resource-pool" ,ghc-resource-pool)
10004 ("ghc-path-pieces" ,ghc-path-pieces)
10005 ("ghc-http-api-data" ,ghc-http-api-data)
10006 ("ghc-aeson" ,ghc-aeson)
10007 ("ghc-monad-logger" ,ghc-monad-logger)
10008 ("ghc-transformers-base" ,ghc-transformers-base)
10009 ("ghc-base64-bytestring" ,ghc-base64-bytestring)
10010 ("ghc-unordered-containers" ,ghc-unordered-containers)
10011 ("ghc-vector" ,ghc-vector)
10012 ("ghc-attoparsec" ,ghc-attoparsec)
10013 ("ghc-haskell-src-meta" ,ghc-haskell-src-meta)
10014 ("ghc-blaze-html" ,ghc-blaze-html)
10015 ("ghc-blaze-markup" ,ghc-blaze-markup)
10016 ("ghc-silently" ,ghc-silently)
104e179d 10017 ("ghc-fast-logger" ,ghc-fast-logger)
10018 ("ghc-scientific" ,ghc-scientific)
bc368781
TS
10019 ("ghc-tagged" ,ghc-tagged)
10020 ("ghc-void" ,ghc-void)))
104e179d 10021 (native-inputs `(("ghc-hspec" ,ghc-hspec)))
10022 (home-page "https://www.yesodweb.com/book/persistent")
10023 (synopsis "Type-safe, multi-backend data serialization for Haskell")
10024 (description "This Haskell package allows Haskell programs to access data
10025storage sytems like PostgreSQL, SQLite, MySQL and MongoDB in a type-safe
10026way.")
10027 (license license:expat)))
10028
0f163f65 10029(define-public ghc-aeson-compat
10030 (package
10031 (name "ghc-aeson-compat")
22b5a1a4 10032 (version "0.3.8")
0f163f65 10033 (source
10034 (origin
10035 (method url-fetch)
10036 (uri (string-append "https://hackage.haskell.org/package/"
10037 "aeson-compat-" version "/"
10038 "aeson-compat-" version ".tar.gz"))
10039 (sha256
10040 (base32
22b5a1a4 10041 "0j4v13pgk21zy8hqkbx8hw0n05jdl17qphxz9rj4h333pr547r3i"))))
0f163f65 10042 (build-system haskell-build-system)
10043 (arguments `(#:tests? #f)) ; FIXME: Tests require QuickCheck >= 2.10
10044 (inputs `(("ghc-base-compat" ,ghc-base-compat)
10045 ("ghc-aeson" ,ghc-aeson)
10046 ("ghc-attoparsec" ,ghc-attoparsec)
10047 ("ghc-attoparsec" ,ghc-attoparsec-iso8601)
10048 ("ghc-exceptions" ,ghc-exceptions)
10049 ("ghc-hashable" ,ghc-hashable)
10050 ("ghc-scientific" ,ghc-scientific)
10051 ("ghc-text" ,ghc-text)
10052 ("ghc-time-locale-compat" ,ghc-time-locale-compat)
10053 ("ghc-unordered-containers" ,ghc-unordered-containers)
10054 ("ghc-vector" ,ghc-vector)
10055 ("ghc-tagged" ,ghc-tagged)
10056 ("ghc-semigroups" ,ghc-semigroups)
10057 ("ghc-nats" ,ghc-nats)))
10058 (home-page "https://github.com/phadej/aeson-compat")
10059 (synopsis "Compatibility layer for ghc-aeson")
10060 (description "This Haskell package provides compatibility layer for
10061ghc-aeson.")
10062 (license license:bsd-3)))
10063
8434594d 10064(define-public ghc-persistent-template
10065 (package
10066 (name "ghc-persistent-template")
e4bc57c8 10067 (version "2.5.4")
8434594d 10068 (source
10069 (origin
10070 (method url-fetch)
10071 (uri (string-append "https://hackage.haskell.org/package/"
10072 "persistent-template-" version "/"
10073 "persistent-template-" version ".tar.gz"))
10074 (sha256
10075 (base32
e4bc57c8 10076 "008afcy7zbw7bzp9jww8gdldb51kfm0fg4p0x4xcp61gx4679bjc"))))
8434594d 10077 (build-system haskell-build-system)
e4bc57c8
TS
10078 (arguments
10079 `(#:cabal-revision
10080 ("2" "03qgwk32krldph3blw5agiqcpccr3649hajyn8wm9k71zz82dpn6")))
8434594d 10081 (inputs `(("ghc-persistent" ,ghc-persistent)
10082 ("ghc-monad-control" ,ghc-monad-control)
10083 ("ghc-text" ,ghc-text)
10084 ("ghc-aeson" ,ghc-aeson)
10085 ("ghc-aeson-compat" ,ghc-aeson-compat)
10086 ("ghc-monad-logger" ,ghc-monad-logger)
10087 ("ghc-unordered-containers" ,ghc-unordered-containers)
10088 ("ghc-tagged" ,ghc-tagged)
10089 ("ghc-path-pieces" ,ghc-path-pieces)
10090 ("ghc-http-api-data" ,ghc-http-api-data)))
10091 (native-inputs `(("ghc-hspec" ,ghc-hspec)
10092 ("ghc-quickcheck" ,ghc-quickcheck)))
10093 (home-page "https://www.yesodweb.com/book/persistent")
10094 (synopsis "Type-safe, non-relational, multi-backend persistence")
10095 (description "This Haskell package provides interfaces and helper
10096functions for the ghc-persistent package.")
10097 (license license:expat)))
10098
d5c34f9b 10099(define-public ghc-unliftio-core
10100 (package
10101 (name "ghc-unliftio-core")
10102 (version "0.1.1.0")
10103 (source
10104 (origin
10105 (method url-fetch)
10106 (uri (string-append "https://hackage.haskell.org/package/"
10107 "unliftio-core-" version "/"
10108 "unliftio-core-" version ".tar.gz"))
10109 (sha256
10110 (base32
10111 "1193fplsjm1lcr05xwvkj1rsyzx74i755f6kw3ikmxbsv0bv0l3m"))))
10112 (build-system haskell-build-system)
f871a555
TS
10113 (arguments
10114 `(#:cabal-revision
10115 ("1" "16bjwcsaghqqmyi69rq65dn3ydifyfaabq3ns37apdm00mwqbcj2")))
d5c34f9b 10116 (home-page
10117 "https://github.com/fpco/unliftio/tree/master/unliftio-core#readme")
10118 (synopsis "The MonadUnliftIO typeclass for unlifting monads to IO")
10119 (description "This Haskell package provides the core @code{MonadUnliftIO}
10120typeclass, instances for base and transformers, and basic utility
10121functions.")
10122 (license license:expat)))
10123
1c225fab 10124(define-public ghc-microlens
10125 (package
10126 (name "ghc-microlens")
f06b5f23 10127 (version "0.4.9.1")
1c225fab 10128 (source
10129 (origin
10130 (method url-fetch)
10131 (uri (string-append "https://hackage.haskell.org/package/"
10132 "microlens-" version "/"
10133 "microlens-" version ".tar.gz"))
10134 (sha256
10135 (base32
f06b5f23 10136 "0j2nzf0vpx2anvsrg2w0vy2z4jn3kkcs2n6glkzblhn1j9piqh51"))))
1c225fab 10137 (build-system haskell-build-system)
10138 (home-page
10139 "https://github.com/aelve/microlens")
10140 (synopsis "Provides a tiny lens Haskell library with no dependencies")
10141 (description "This Haskell package provides a lens library, just like
10142@code{ghc-lens}, but smaller. It provides essential lenses and
10143traversals (like @code{_1} and @code{_Just}), as well as ones which are simply
10144nice to have (like @code{each}, @code{at}, and @code{ix}), and some
10145combinators (like @code{failing} and @code{singular}), but everything else is
10146stripped. As the result, this package has no dependencies.")
10147 (license license:bsd-3)))
10148
82e0b0e2 10149(define-public ghc-microlens-th
10150 (package
10151 (name "ghc-microlens-th")
c1812226 10152 (version "0.4.2.2")
82e0b0e2 10153 (source
10154 (origin
10155 (method url-fetch)
10156 (uri (string-append "https://hackage.haskell.org/package/"
10157 "microlens-th-" version "/"
10158 "microlens-th-" version ".tar.gz"))
10159 (sha256
10160 (base32
c1812226 10161 "02nj7lnl61yffi3c6wn341arxhld5r0vj6nzcb5zmqjhnqsv8c05"))))
82e0b0e2 10162 (build-system haskell-build-system)
c1812226
TS
10163 (inputs `(("ghc-microlens" ,ghc-microlens)
10164 ("ghc-th-abstraction" ,ghc-th-abstraction)))
82e0b0e2 10165 (home-page
10166 "https://github.com/aelve/microlens")
10167 (synopsis "Automatic generation of record lenses for
10168@code{ghc-microlens}")
10169 (description "This Haskell package lets you automatically generate lenses
10170for data types; code was extracted from the lens package, and therefore
10171generated lenses are fully compatible with ones generated by lens (and can be
10172used both from lens and microlens).")
10173 (license license:bsd-3)))
10174
e85c58ed 10175(define-public ghc-unliftio
10176 (package
10177 (name "ghc-unliftio")
96d214a6 10178 (version "0.2.7.0")
e85c58ed 10179 (source
10180 (origin
10181 (method url-fetch)
10182 (uri (string-append
10183 "https://hackage.haskell.org/package/unliftio/unliftio-"
10184 version
10185 ".tar.gz"))
10186 (sha256
10187 (base32
96d214a6 10188 "0qql93lq5w7qghl454cc3s1i8v1jb4h08n82fqkw0kli4g3g9njs"))))
e85c58ed 10189 (build-system haskell-build-system)
10190 (arguments `(#:tests? #f)) ; FIXME: hspec-discover not in PATH
10191 (inputs
10192 `(("ghc-async" ,ghc-async)
10193 ("ghc-stm" ,ghc-stm)
10194 ("ghc-unliftio-core" ,ghc-unliftio-core)))
10195 (native-inputs `(("ghc-hspec" ,ghc-hspec)))
10196 (home-page "https://github.com/fpco/unliftio")
10197 (synopsis "Provides MonadUnliftIO typecplass for unlifting monads to
10198IO (batteries included)")
10199 (description "This Haskell package provides the core @code{MonadUnliftIO}
10200typeclass, a number of common instances, and a collection of common functions
10201working with it.")
10202 (license license:expat)))
10203
e01a8fcc 10204(define-public ghc-persistent-sqlite
10205 (package
10206 (name "ghc-persistent-sqlite")
7eee87e6 10207 (version "2.8.2")
e01a8fcc 10208 (source
10209 (origin
10210 (method url-fetch)
10211 (uri (string-append "https://hackage.haskell.org/package/"
10212 "persistent-sqlite-" version "/"
10213 "persistent-sqlite-" version ".tar.gz"))
10214 (sha256
10215 (base32
7eee87e6 10216 "1chbmvjz46smhgnzhha3bbkhys3fys6dip1jr4v7xp1jf78zbyp6"))))
e01a8fcc 10217 (build-system haskell-build-system)
10218 (inputs `(("ghc-persistent" ,ghc-persistent)
10219 ("ghc-unliftio-core" ,ghc-unliftio-core)
10220 ("ghc-aeson" ,ghc-aeson)
10221 ("ghc-conduit" ,ghc-conduit)
10222 ("ghc-monad-logger" ,ghc-monad-logger)
10223 ("ghc-microlens-th" ,ghc-microlens-th)
10224 ("ghc-resourcet" ,ghc-resourcet)
10225 ("ghc-old-locale" ,ghc-old-locale)
10226 ("ghc-resource-pool" ,ghc-resource-pool)
10227 ("ghc-unordered-containers" ,ghc-unordered-containers)))
10228 (native-inputs `(("ghc-hspec" ,ghc-hspec)
10229 ("ghc-persistent-template" ,ghc-persistent-template)
10230 ("ghc-temporary" ,ghc-temporary)
10231 ("ghc-text" ,ghc-text)))
10232 (home-page
10233 "https://www.yesodweb.com/book/persistent")
10234 (synopsis "Backend for the persistent library using sqlite3")
10235 (description "This Haskell package includes a thin sqlite3 wrapper based
10236on the direct-sqlite package, as well as the entire C library, so there are no
10237system dependencies.")
10238 (license license:expat)))
10239
b50e1c89 10240(define-public ghc-email-validate
10241 (package
10242 (name "ghc-email-validate")
146198f8 10243 (version "2.3.2.6")
b50e1c89 10244 (source
10245 (origin
10246 (method url-fetch)
10247 (uri (string-append
10248 "https://hackage.haskell.org/package/"
10249 "email-validate/email-validate-"
10250 version
10251 ".tar.gz"))
10252 (sha256
10253 (base32
146198f8 10254 "0chgylvc8xmhp933rdbmpg5sv4y7yg2h6kbf0ip1dzmbd5p55pa5"))))
b50e1c89 10255 (build-system haskell-build-system)
10256 (inputs
10257 `(("ghc-attoparsec" ,ghc-attoparsec)
10258 ("ghc-hspec" ,ghc-hspec)
10259 ("ghc-quickcheck" ,ghc-quickcheck)
10260 ("ghc-doctest" ,ghc-doctest)))
10261 (home-page
10262 "https://github.com/Porges/email-validate-hs")
10263 (synopsis "Email address validator for Haskell")
10264 (description
10265 "This Haskell package provides a validator that can validate an email
10266address string against RFC 5322.")
10267 (license license:bsd-3)))
10268
dea5c0b8 10269(define-public ghc-bytes
7d4e377f 10270 (package
dea5c0b8 10271 (name "ghc-bytes")
40a8d076 10272 (version "0.15.5")
7d4e377f
T
10273 (source
10274 (origin
10275 (method url-fetch)
10276 (uri
dea5c0b8
T
10277 (string-append "https://hackage.haskell.org/package/bytes-"
10278 version "/bytes-"
7d4e377f
T
10279 version ".tar.gz"))
10280 (file-name (string-append name "-" version ".tar.gz"))
10281 (sha256
10282 (base32
40a8d076 10283 "063il2vrn0p88r9gzndh4ijs0mxj37khkc9ym9bqdsv7ngk3b683"))))
7d4e377f 10284 (build-system haskell-build-system)
dea5c0b8
T
10285 (inputs `(("ghc-cereal" ,ghc-cereal)
10286 ("cabal-doctest" ,cabal-doctest)
40a8d076 10287 ("ghc-doctest" ,ghc-doctest)
dea5c0b8
T
10288 ("ghc-scientific" ,ghc-scientific)
10289 ("ghc-text" ,ghc-text)
10290 ("ghc-transformers-compat" ,ghc-transformers-compat)
10291 ("ghc-unordered-containers" ,ghc-unordered-containers)
10292 ("ghc-void" ,ghc-void)
10293 ("ghc-vector" ,ghc-vector)))
10294 (synopsis "Serialization between @code{binary} and @code{cereal}")
10295 (description "This package provides a simple compatibility shim that lets
10296you work with both @code{binary} and @code{cereal} with one chunk of
10297serialization code.")
10298 (home-page "https://hackage.haskell.org/package/bytes")
7d4e377f
T
10299 (license license:bsd-3)))
10300
4e5d9bf2
TS
10301(define-public ghc-disk-free-space
10302 (package
10303 (name "ghc-disk-free-space")
10304 (version "0.1.0.1")
10305 (source
10306 (origin
10307 (method url-fetch)
10308 (uri (string-append "https://hackage.haskell.org/package/"
10309 "disk-free-space/disk-free-space-"
10310 version ".tar.gz"))
10311 (sha256
10312 (base32
10313 "07rqj8k1vh3cykq9yidpjxhgh1f7vgmjs6y1nv5kq2217ff4yypi"))))
10314 (build-system haskell-build-system)
10315 (home-page "https://github.com/redneb/disk-free-space")
10316 (synopsis "Retrieve information about disk space usage")
10317 (description "A cross-platform library for retrieving information about
10318disk space usage.")
10319 (license license:bsd-3)))
10320
66413378
DM
10321(define-public ghc-xdg-basedir
10322 (package
10323 (name "ghc-xdg-basedir")
10324 (version "0.2.2")
10325 (source
10326 (origin
10327 (method url-fetch)
10328 (uri (string-append
10329 "https://hackage.haskell.org/package/xdg-basedir/"
10330 "xdg-basedir-" version ".tar.gz"))
10331 (sha256
10332 (base32
10333 "0azlzaxp2dn4l1nr7shsxah2magk1szf6fx0mv75az00qsjw6qg4"))))
10334 (build-system haskell-build-system)
10335 (home-page "http://github.com/willdonnelly/xdg-basedir")
10336 (synopsis "XDG Base Directory library for Haskell")
10337 (description "This package provides a library implementing the XDG Base Directory spec.")
10338 (license license:bsd-3)))
10339
19395aec
RW
10340(define-public ghc-errorcall-eq-instance
10341 (package
10342 (name "ghc-errorcall-eq-instance")
10343 (version "0.3.0")
10344 (source
10345 (origin
10346 (method url-fetch)
10347 (uri (string-append "https://hackage.haskell.org/package/"
10348 "errorcall-eq-instance/errorcall-eq-instance-"
10349 version ".tar.gz"))
10350 (sha256
10351 (base32
10352 "0hqw82m8bbrxy5vgdwb83bhzdx070ibqrm9rshyja7cb808ahijm"))))
10353 (build-system haskell-build-system)
10354 (inputs
10355 `(("ghc-base-orphans" ,ghc-base-orphans)))
10356 (native-inputs
10357 `(("ghc-quickcheck" ,ghc-quickcheck)
10358 ("ghc-hspec" ,ghc-hspec)
10359 ("hspec-discover" ,hspec-discover)))
10360 (home-page "http://hackage.haskell.org/package/errorcall-eq-instance")
10361 (synopsis "Orphan Eq instance for ErrorCall")
10362 (description
10363 "Prior to @code{base-4.7.0.0} there was no @code{Eq} instance for @code{ErrorCall}.
10364This package provides an orphan instance.")
10365 (license license:expat)))
10366
ea6ffd3c
RW
10367(define-public ghc-missingh
10368 (package
10369 (name "ghc-missingh")
10370 (version "1.4.0.1")
10371 (source
10372 (origin
10373 (method url-fetch)
10374 (uri (string-append "https://hackage.haskell.org/package/MissingH/"
10375 "MissingH-" version ".tar.gz"))
10376 (sha256
10377 (base32
10378 "0wcvgrmav480w7nf4bl14yi0jq2yzanysxwzwas9hpb28vyjlgr8"))))
10379 (build-system haskell-build-system)
10380 ;; Tests require the unmaintained testpack package, which depends on the
10381 ;; outdated QuickCheck version 2.7, which can no longer be built with
10382 ;; recent versions of GHC and Haskell libraries.
10383 (arguments '(#:tests? #f))
10384 (inputs
10385 `(("ghc-network" ,ghc-network)
10386 ("ghc-parsec" ,ghc-parsec)
ea6ffd3c
RW
10387 ("ghc-hunit" ,ghc-hunit)
10388 ("ghc-regex-compat" ,ghc-regex-compat)
10389 ("ghc-hslogger" ,ghc-hslogger)
10390 ("ghc-random" ,ghc-random)
10391 ("ghc-old-time" ,ghc-old-time)
10392 ("ghc-old-locale" ,ghc-old-locale)))
10393 (native-inputs
10394 `(("ghc-errorcall-eq-instance" ,ghc-errorcall-eq-instance)
10395 ("ghc-quickcheck" ,ghc-quickcheck)
10396 ("ghc-hunit" ,ghc-hunit)))
10397 (home-page "http://software.complete.org/missingh")
10398 (synopsis "Large utility library")
10399 (description
10400 "MissingH is a library of all sorts of utility functions for Haskell
10401programmers. It is written in pure Haskell and thus should be extremely
10402portable and easy to use.")
10403 (license license:bsd-3)))
10404
657d220d
RW
10405(define-public ghc-intervalmap
10406 (package
10407 (name "ghc-intervalmap")
10408 (version "0.6.0.0")
10409 (source
10410 (origin
10411 (method url-fetch)
10412 (uri (string-append "https://hackage.haskell.org/package/IntervalMap/"
10413 "IntervalMap-" version ".tar.gz"))
10414 (sha256
10415 (base32
10416 "06hin9wf1by8aqa7820fsi2339bh82184frkwz3jsb9sqa0hszcg"))))
10417 (build-system haskell-build-system)
10418 (native-inputs
10419 `(("ghc-quickcheck" ,ghc-quickcheck)))
10420 (home-page "http://www.chr-breitkopf.de/comp/IntervalMap")
10421 (synopsis "Containers for intervals, with efficient search")
10422 (description
10423 "This package provides ordered containers of intervals, with efficient
10424search for all keys containing a point or overlapping an interval. See the
10425example code on the home page for a quick introduction.")
10426 (license license:bsd-3)))
10427
2e72967b
RW
10428(define-public ghc-operational
10429 (package
10430 (name "ghc-operational")
10431 (version "0.2.3.5")
10432 (source
10433 (origin
10434 (method url-fetch)
10435 (uri (string-append "https://hackage.haskell.org/package/operational/"
10436 "operational-" version ".tar.gz"))
10437 (sha256
10438 (base32
10439 "1x2abg2q9d26h1vzj40r6k7k3gqgappbs4g9d853vvg77837km4i"))))
10440 (build-system haskell-build-system)
10441 (inputs
f54f0475 10442 `(("ghc-random" ,ghc-random)))
2e72967b
RW
10443 (home-page "http://wiki.haskell.org/Operational")
10444 (synopsis "Implementation of difficult monads made easy with operational semantics")
10445 (description
10446 "This library makes it easy to implement monads with tricky control
10447flow. This is useful for: writing web applications in a sequential style,
10448programming games with a uniform interface for human and AI players and easy
10449replay capababilities, implementing fast parser monads, designing monadic
10450DSLs, etc.")
10451 (license license:bsd-3)))
10452
cd447603
RW
10453(define-public ghc-gtk2hs-buildtools
10454 (package
10455 (name "ghc-gtk2hs-buildtools")
10456 (version "0.13.4.0")
10457 (source
10458 (origin
10459 (method url-fetch)
10460 (uri (string-append "https://hackage.haskell.org/package/"
10461 "gtk2hs-buildtools/gtk2hs-buildtools-"
10462 version ".tar.gz"))
10463 (sha256
10464 (base32
10465 "0yg6xmylgpylmnh5g33qwwn5x9bqckdvvv4czqzd9vrr12lnnghg"))))
10466 (build-system haskell-build-system)
10467 (inputs
10468 `(("ghc-random" ,ghc-random)
10469 ("ghc-hashtables" ,ghc-hashtables)))
10470 (native-inputs
10471 `(("ghc-alex" ,ghc-alex)
10472 ("ghc-happy" ,ghc-happy)))
10473 (home-page "http://projects.haskell.org/gtk2hs/")
10474 (synopsis "Tools to build the Gtk2Hs suite of user interface libraries")
10475 (description
10476 "This package provides a set of helper programs necessary to build the
10477Gtk2Hs suite of libraries. These tools include a modified c2hs binding tool
10478that is used to generate FFI declarations, a tool to build a type hierarchy
10479that mirrors the C type hierarchy of GObjects found in glib, and a generator
10480for signal declarations that are used to call back from C to Haskell. These
10481tools are not needed to actually run Gtk2Hs programs.")
10482 (license license:gpl2)))
10483
42744c1d
RW
10484(define-public ghc-chart
10485 (package
10486 (name "ghc-chart")
6dde5b8f 10487 (version "1.9")
42744c1d
RW
10488 (source
10489 (origin
10490 (method url-fetch)
10491 (uri (string-append "https://hackage.haskell.org/package/Chart/"
10492 "Chart-" version ".tar.gz"))
10493 (sha256
10494 (base32
6dde5b8f 10495 "1f5azj17y8xsb3gjhf7gg1gnnlq12rxkmfjmgcly314d7vghs05z"))))
42744c1d
RW
10496 (build-system haskell-build-system)
10497 (inputs
10498 `(("ghc-old-locale" ,ghc-old-locale)
42744c1d
RW
10499 ("ghc-lens" ,ghc-lens)
10500 ("ghc-colour" ,ghc-colour)
10501 ("ghc-data-default-class" ,ghc-data-default-class)
10502 ("ghc-operational" ,ghc-operational)
10503 ("ghc-vector" ,ghc-vector)))
10504 (home-page "https://github.com/timbod7/haskell-chart/wiki")
10505 (synopsis "Library for generating 2D charts and plots")
10506 (description
10507 "This package provides a library for generating 2D charts and plots, with
10508backends provided by the @code{Cairo} and @code{Diagrams} libraries.")
10509 (license license:bsd-3)))
10510
9c4b522f
AI
10511(define-public ghc-wcwidth
10512 (package
10513 (name "ghc-wcwidth")
10514 (version "0.0.2")
10515 (source
10516 (origin
10517 (method url-fetch)
10518 (uri (string-append "https://hackage.haskell.org/package/wcwidth/wcwidth-"
10519 version ".tar.gz"))
10520 (sha256
10521 (base32
10522 "1n1fq7v64b59ajf5g50iqj9sa34wm7s2j3viay0kxpmvlcv8gipz"))))
10523 (build-system haskell-build-system)
10524 (inputs
10525 `(("ghc-setlocale" ,ghc-setlocale)
10526 ("ghc-utf8-string" ,ghc-utf8-string)
f9f4578b 10527 ("ghc-attoparsec" ,ghc-attoparsec)))
9c4b522f
AI
10528 (home-page "https://github.com/solidsnack/wcwidth/")
10529 (synopsis "Haskell bindings to wcwidth")
10530 (description "This package provides Haskell bindings to your system's
10531native wcwidth and a command line tool to examine the widths assigned by it.
10532The command line tool can compile a width table to Haskell code that assigns
10533widths to the Char type.")
10534 (license license:bsd-3)))
10535
9d1944a4
TS
10536(define-public ghc-wcwidth-bootstrap
10537 (package
10538 (inherit ghc-wcwidth)
10539 (name "ghc-wcwidth-bootstrap")
10540 (inputs
10541 `(("ghc-setlocale" ,ghc-setlocale)
10542 ("ghc-utf8-string" ,ghc-utf8-string)
10543 ("ghc-attoparsec" ,ghc-attoparsec-bootstrap)))
10544 (properties '(hidden? #t))))
10545
12ce5d31
TS
10546(define-public ghc-rio
10547 (package
10548 (name "ghc-rio")
10549 (version "0.1.5.0")
10550 (source
10551 (origin
10552 (method url-fetch)
10553 (uri (string-append
10554 "https://hackage.haskell.org/package/rio/rio-"
10555 version ".tar.gz"))
10556 (sha256
10557 (base32
10558 "064h8a4hp53a479d3ak0vmqbx8hi0cpg7zn4wp23rjy26dka8p7g"))))
10559 (build-system haskell-build-system)
10560 (arguments
10561 `(#:phases
10562 (modify-phases %standard-phases
10563 (add-after 'unpack 'add-setup-script
10564 (lambda _
10565 ;; The usual "Setup.hs" script is missing from the source.
10566 (with-output-to-file "Setup.hs"
10567 (lambda ()
10568 (format #t "import Distribution.Simple~%")
10569 (format #t "main = defaultMain~%"))))))))
10570 (inputs
10571 `(("ghc-exceptions" ,ghc-exceptions)
10572 ("ghc-hashable" ,ghc-hashable)
10573 ("ghc-microlens" ,ghc-microlens)
10574 ("ghc-primitive" ,ghc-primitive)
10575 ("ghc-text" ,ghc-text)
10576 ("ghc-typed-process" ,ghc-typed-process)
10577 ("ghc-unliftio" ,ghc-unliftio)
10578 ("ghc-unordered-containers" ,ghc-unordered-containers)
10579 ("ghc-vector" ,ghc-vector)))
10580 (native-inputs
10581 `(("ghc-hspec" ,ghc-hspec)
10582 ("hspec-discover" ,hspec-discover)))
10583 (home-page "https://github.com/commercialhaskell/rio#readme")
10584 (synopsis "A standard library for Haskell")
10585 (description "This package works as a prelude replacement for Haskell,
10586providing more functionality and types out of the box than the standard
10587prelude (such as common data types like @code{ByteString} and
10588@code{Text}), as well as removing common ``gotchas'', like partial
10589functions and lazy I/O. The guiding principle here is:
10590@itemize
10591@item If something is safe to use in general and has no expected naming
10592conflicts, expose it.
10593@item If something should not always be used, or has naming conflicts,
10594expose it from another module in the hierarchy.
10595@end itemize")
10596 (license license:expat)))
10597
7df25c77
RW
10598(define-public ghc-cairo
10599 (package
10600 (name "ghc-cairo")
10601 (version "0.13.5.0")
10602 (source
10603 (origin
10604 (method url-fetch)
10605 (uri (string-append "https://hackage.haskell.org/package/cairo/"
10606 "cairo-" version ".tar.gz"))
10607 (sha256
10608 (base32
10609 "1wxylv4d8120ri0vgar168ikqa9m6533ipdwi38qlmxmw20ws2j2"))))
10610 (build-system haskell-build-system)
10611 (arguments
10612 `(#:modules ((guix build haskell-build-system)
10613 (guix build utils)
10614 (ice-9 match)
10615 (srfi srfi-26))
10616 #:phases
10617 (modify-phases %standard-phases
10618 ;; FIXME: This is a copy of the standard configure phase with a tiny
10619 ;; difference: this package needs the -package-db flag to be passed
10620 ;; to "runhaskell" in addition to the "configure" action, because it
10621 ;; depends on gtk2hs-buildtools, which provide setup hooks. Without
10622 ;; this option the Setup.hs file cannot be evaluated. The
10623 ;; haskell-build-system should be changed to pass "-package-db" to
10624 ;; "runhaskell" in any case.
10625 (replace 'configure
10626 (lambda* (#:key outputs inputs tests? (configure-flags '())
10627 #:allow-other-keys)
10628 (let* ((out (assoc-ref outputs "out"))
58352f26 10629 (name-version (strip-store-file-name out))
7df25c77
RW
10630 (input-dirs (match inputs
10631 (((_ . dir) ...)
10632 dir)
10633 (_ '())))
10634 (ghc-path (getenv "GHC_PACKAGE_PATH"))
10635 (params (append `(,(string-append "--prefix=" out))
10636 `(,(string-append "--libdir=" out "/lib"))
10637 `(,(string-append "--bindir=" out "/bin"))
10638 `(,(string-append
10639 "--docdir=" out
58352f26 10640 "/share/doc/" name-version))
7df25c77
RW
10641 '("--libsubdir=$compiler/$pkg-$version")
10642 '("--package-db=../package.conf.d")
10643 '("--global")
10644 `(,@(map
10645 (cut string-append "--extra-include-dirs=" <>)
10646 (search-path-as-list '("include") input-dirs)))
10647 `(,@(map
10648 (cut string-append "--extra-lib-dirs=" <>)
10649 (search-path-as-list '("lib") input-dirs)))
10650 (if tests?
10651 '("--enable-tests")
10652 '())
10653 configure-flags)))
10654 (unsetenv "GHC_PACKAGE_PATH")
10655 (apply invoke "runhaskell" "-package-db=../package.conf.d"
10656 "Setup.hs" "configure" params)
10657 (setenv "GHC_PACKAGE_PATH" ghc-path)
10658 #t))))))
10659 (inputs
10660 `(("ghc-utf8-string" ,ghc-utf8-string)
10661 ("ghc-text" ,ghc-text)
10662 ("cairo" ,cairo)))
10663 (native-inputs
10664 `(("ghc-gtk2hs-buildtools" ,ghc-gtk2hs-buildtools)
10665 ("pkg-config" ,pkg-config)))
10666 (home-page "http://projects.haskell.org/gtk2hs/")
10667 (synopsis "Haskell bindings to the Cairo vector graphics library")
10668 (description
10669 "Cairo is a library to render high quality vector graphics. There exist
10670various backends that allows rendering to Gtk windows, PDF, PS, PNG and SVG
10671documents, amongst others.")
10672 (license license:bsd-3)))
10673
562cfae3
RW
10674(define-public ghc-chart-cairo
10675 (package
10676 (name "ghc-chart-cairo")
10677 (version "1.9")
10678 (source
10679 (origin
10680 (method url-fetch)
10681 (uri (string-append "https://hackage.haskell.org/package/Chart-cairo/"
10682 "Chart-cairo-" version ".tar.gz"))
10683 (sha256
10684 (base32
10685 "0iany6lfyfb1cw0pxfs5aw5k0a6x41m6ql9ad9w59biwdckbsyqr"))))
10686 (build-system haskell-build-system)
10687 (inputs
10688 `(("ghc-old-locale" ,ghc-old-locale)
10689 ("ghc-cairo" ,ghc-cairo)
10690 ("ghc-colour" ,ghc-colour)
10691 ("ghc-data-default-class" ,ghc-data-default-class)
10692 ("ghc-operational" ,ghc-operational)
10693 ("ghc-lens" ,ghc-lens)
10694 ("ghc-chart" ,ghc-chart)))
10695 (home-page "https://github.com/timbod7/haskell-chart/wiki")
10696 (synopsis "Cairo backend for Charts")
10697 (description "This package provides a Cairo vector graphics rendering
10698backend for the Charts library.")
10699 (license license:bsd-3)))
10700
6c819778
RW
10701(define-public ghc-atomic-write
10702 (package
10703 (name "ghc-atomic-write")
10704 (version "0.2.0.5")
10705 (source
10706 (origin
10707 (method url-fetch)
10708 (uri (string-append
10709 "https://hackage.haskell.org/package/atomic-write/atomic-write-"
10710 version
10711 ".tar.gz"))
10712 (sha256
10713 (base32
10714 "1iaq0hprxcv0sl1sgwcgmm87zraf738va1bciwnx2jkk3k1v9iyv"))))
10715 (build-system haskell-build-system)
10716 (inputs
10717 `(("ghc-temporary" ,ghc-temporary)
10718 ("ghc-unix-compat" ,ghc-unix-compat)
10719 ("ghc-text" ,ghc-text)))
10720 (native-inputs
10721 `(("ghc-temporary" ,ghc-temporary)
10722 ("ghc-unix-compat" ,ghc-unix-compat)
10723 ("ghc-text" ,ghc-text)
10724 ("ghc-hspec" ,ghc-hspec)
10725 ("hspec-discover" ,hspec-discover)))
10726 (home-page "https://github.com/stackbuilders/atomic-write")
10727 (synopsis "Atomically write to a file")
10728 (description
10729 "Atomically write to a file on POSIX-compliant systems while preserving
10730permissions. @code{mv} is an atomic operation. This makes it simple to write
10731to a file atomically just by using the @code{mv} operation. However, this
10732will destroy the permissions on the original file. This library preserves
10733permissions while atomically writing to a file.")
10734 (license license:expat)))
10735
d05ed20e
RW
10736(define-public ghc-cereal-conduit
10737 (package
10738 (name "ghc-cereal-conduit")
10739 (version "0.8.0")
10740 (source
10741 (origin
10742 (method url-fetch)
10743 (uri (string-append "https://hackage.haskell.org/package/"
10744 "cereal-conduit/cereal-conduit-"
10745 version ".tar.gz"))
10746 (sha256
10747 (base32
10748 "1srr7agvgfw78q5s1npjq5sgynvhjgllpihiv37ylkwqm4c4ap6r"))))
10749 (build-system haskell-build-system)
10750 (inputs
10751 `(("ghc-conduit" ,ghc-conduit)
10752 ("ghc-resourcet" ,ghc-resourcet)
10753 ("ghc-cereal" ,ghc-cereal)))
10754 (native-inputs
10755 `(("ghc-hunit" ,ghc-hunit)))
10756 (home-page "https://github.com/snoyberg/conduit")
10757 (synopsis "Turn Data.Serialize Gets and Puts into Sources, Sinks, and Conduits")
10758 (description
10759 "This package turn @code{Data.Serialize} @code{Gets} and @code{Puts} into
10760@code{Sources}, @code{Sinks}, and @code{Conduits}.")
10761 (license license:bsd-3)))
10762
36ec599e
RW
10763(define-public ghc-lzma
10764 (package
10765 (name "ghc-lzma")
10766 (version "0.0.0.3")
10767 (source
10768 (origin
10769 (method url-fetch)
10770 (uri (string-append "https://hackage.haskell.org/package/lzma/"
10771 "lzma-" version ".tar.gz"))
10772 (sha256
10773 (base32
10774 "0i416gqi8j55nd1pqbkxvf3f6hn6fjys6gq98lkkxphva71j30xg"))))
10775 (build-system haskell-build-system)
10776 (arguments
10777 '(#:tests? #f ; requires older versions of QuickCheck and tasty.
10778 #:cabal-revision
10779 ("3" "1sify6gnsalyp6dakfzi0mdy5jcz2kcp9jsdsgkmxd40nfzgd44m")))
10780 (native-inputs
10781 `(("ghc-hunit" ,ghc-hunit)
10782 ("ghc-quickcheck" ,ghc-quickcheck)
10783 ("ghc-tasty" ,ghc-tasty)
10784 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
10785 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
10786 (home-page "https://github.com/hvr/lzma")
10787 (synopsis "LZMA/XZ compression and decompression")
10788 (description
10789 "This package provides a pure interface for compressing and
10790decompressing LZMA streams of data represented as lazy @code{ByteString}s. A
10791monadic incremental interface is provided as well.")
10792 (license license:bsd-3)))
10793
80588cfc
RW
10794(define-public ghc-stm-conduit
10795 (package
10796 (name "ghc-stm-conduit")
10797 (version "4.0.0")
10798 (source
10799 (origin
10800 (method url-fetch)
10801 (uri (string-append "https://hackage.haskell.org/package/stm-conduit/"
10802 "stm-conduit-" version ".tar.gz"))
10803 (sha256
10804 (base32
10805 "0paapljn7nqfzrx889y0n8sszci38mdiaxkgr0bb00ph9246rr7z"))))
10806 (build-system haskell-build-system)
10807 (inputs
10808 `(("ghc-stm" ,ghc-stm)
10809 ("ghc-stm-chans" ,ghc-stm-chans)
10810 ("ghc-cereal" ,ghc-cereal)
10811 ("ghc-cereal-conduit" ,ghc-cereal-conduit)
10812 ("ghc-conduit" ,ghc-conduit)
10813 ("ghc-conduit-extra" ,ghc-conduit-extra)
10814 ("ghc-exceptions" ,ghc-exceptions)
10815 ("ghc-resourcet" ,ghc-resourcet)
10816 ("ghc-async" ,ghc-async)
10817 ("ghc-monad-loops" ,ghc-monad-loops)
10818 ("ghc-unliftio" ,ghc-unliftio)))
10819 (native-inputs
10820 `(("ghc-doctest" ,ghc-doctest)
10821 ("ghc-quickcheck" ,ghc-quickcheck)
10822 ("ghc-hunit" ,ghc-hunit)
10823 ("ghc-test-framework" ,ghc-test-framework)
10824 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
10825 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
10826 (home-page "https://github.com/cgaebel/stm-conduit")
10827 (synopsis "Introduces conduits to channels and promotes using conduits concurrently")
10828 (description
10829 "This package provides two simple conduit wrappers around STM channels: a
10830source and a sink.")
10831 (license license:bsd-3)))
10832
38757d61
RW
10833(define-public ghc-bindings-dsl
10834 (package
10835 (name "ghc-bindings-dsl")
10836 (version "1.0.25")
10837 (source
10838 (origin
10839 (method url-fetch)
10840 (uri (string-append "https://hackage.haskell.org/package/bindings-DSL/"
10841 "bindings-DSL-" version ".tar.gz"))
10842 (sha256
10843 (base32
10844 "0kqrd78nspl3lk4a0fqn47d8dirjg3b24dkvkigcrlb81hw35pk3"))))
10845 (build-system haskell-build-system)
10846 (home-page "https://github.com/jwiegley/bindings-dsl/wiki")
10847 (synopsis "FFI domain specific language, on top of hsc2hs")
10848 (description
10849 "This is a set of macros to be used when writing Haskell FFI. They were
10850designed to be able to fully describe C interfaces, so that @code{hsc2hs} can
10851extract from them all Haskell code needed to mimic such interfaces. All
10852Haskell names used are automatically derived from C names, structures are
10853mapped to Haskell instances of @code{Storable}, and there are also macros you
10854can use with C code to help write bindings to inline functions or macro
10855functions.")
10856 (license license:bsd-3)))
10857
44c6180b
RW
10858(define-public ghc-lzma-conduit
10859 (package
10860 (name "ghc-lzma-conduit")
10861 (version "1.2.1")
10862 (source
10863 (origin
10864 (method url-fetch)
10865 (uri (string-append "https://hackage.haskell.org/package/lzma-conduit/"
10866 "lzma-conduit-" version ".tar.gz"))
10867 (sha256
10868 (base32
10869 "0hm72da7xk9l3zxjh274yg444vf405djxqbkf3q3p2qhicmxlmg9"))))
10870 (build-system haskell-build-system)
10871 (inputs
10872 `(("ghc-conduit" ,ghc-conduit)
10873 ("ghc-lzma" ,ghc-lzma)
10874 ("ghc-resourcet" ,ghc-resourcet)))
10875 (native-inputs
10876 `(("ghc-base-compat" ,ghc-base-compat)
10877 ("ghc-test-framework" ,ghc-test-framework)
10878 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
10879 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)
10880 ("ghc-hunit" ,ghc-hunit)
10881 ("ghc-quickcheck" ,ghc-quickcheck)))
10882 (home-page "https://github.com/alphaHeavy/lzma-conduit")
10883 (synopsis "Conduit interface for lzma/xz compression")
10884 (description
10885 "This package provides a @code{Conduit} interface for the LZMA
10886compression algorithm used in the @code{.xz} file format.")
10887 (license license:bsd-3)))
10888
4fc161b9
RW
10889(define-public ghc-bzlib-conduit
10890 (package
10891 (name "ghc-bzlib-conduit")
10892 (version "0.3.0.1")
10893 (source
10894 (origin
10895 (method url-fetch)
10896 (uri (string-append "https://hackage.haskell.org/package/bzlib-conduit/"
10897 "bzlib-conduit-" version ".tar.gz"))
10898 (sha256
10899 (base32
10900 "0fd2hnr782s7qgipazg2yxwia9qqhkvm9bcm90773c3zkxa13n23"))))
10901 (build-system haskell-build-system)
10902 (inputs
10903 `(("ghc-bindings-dsl" ,ghc-bindings-dsl)
10904 ("ghc-conduit" ,ghc-conduit)
10905 ("ghc-data-default-class" ,ghc-data-default-class)
10906 ("ghc-resourcet" ,ghc-resourcet)))
10907 (native-inputs
10908 `(("ghc-hspec" ,ghc-hspec)
10909 ("ghc-random" ,ghc-random)))
10910 (home-page "https://github.com/snoyberg/bzlib-conduit")
10911 (synopsis "Streaming compression/decompression via conduits")
10912 (description
10913 "This package provides Haskell bindings to bzlib and Conduit support for
10914streaming compression and decompression.")
10915 (license license:bsd-3)))
10916
71c2e3e1
RW
10917(define-public ghc-pqueue
10918 (package
10919 (name "ghc-pqueue")
10920 (version "1.4.1.1")
10921 (source
10922 (origin
10923 (method url-fetch)
10924 (uri (string-append "https://hackage.haskell.org/package/"
10925 "pqueue/pqueue-" version ".tar.gz"))
10926 (sha256
10927 (base32
10928 "1zvwm1zcqqq5n101s1brjhgbay8rf9fviq6gxbplf40i63m57p1x"))))
10929 (build-system haskell-build-system)
10930 (native-inputs
10931 `(("ghc-quickcheck" ,ghc-quickcheck)))
10932 (home-page "https://hackage.haskell.org/package/pqueue")
10933 (synopsis "Reliable, persistent, fast priority queues")
10934 (description
10935 "This package provides a fast, reliable priority queue implementation
10936based on a binomial heap.")
10937 (license license:bsd-3)))
10938
a933cbfb
RW
10939(define-public ghc-conduit-algorithms
10940 (package
10941 (name "ghc-conduit-algorithms")
10942 (version "0.0.8.1")
10943 (source
10944 (origin
10945 (method url-fetch)
10946 (uri (string-append "https://hackage.haskell.org/package/"
10947 "conduit-algorithms/conduit-algorithms-"
10948 version ".tar.gz"))
10949 (sha256
10950 (base32
10951 "07gx2q3d1bbfw14q41rmqg0i4m018pci10lswc0k1ij6lw7sb9fd"))))
10952 (build-system haskell-build-system)
10953 (inputs
10954 `(("ghc-async" ,ghc-async)
10955 ("ghc-bzlib-conduit" ,ghc-bzlib-conduit)
10956 ("ghc-conduit" ,ghc-conduit)
10957 ("ghc-conduit-combinators" ,ghc-conduit-combinators)
10958 ("ghc-conduit-extra" ,ghc-conduit-extra)
10959 ("ghc-exceptions" ,ghc-exceptions)
10960 ("ghc-lzma-conduit" ,ghc-lzma-conduit)
10961 ("ghc-monad-control" ,ghc-monad-control)
10962 ("ghc-pqueue" ,ghc-pqueue)
10963 ("ghc-resourcet" ,ghc-resourcet)
10964 ("ghc-stm" ,ghc-stm)
10965 ("ghc-stm-conduit" ,ghc-stm-conduit)
10966 ("ghc-streaming-commons" ,ghc-streaming-commons)
10967 ("ghc-unliftio-core" ,ghc-unliftio-core)
10968 ("ghc-vector" ,ghc-vector)))
10969 (native-inputs
10970 `(("ghc-hunit" ,ghc-hunit)
10971 ("ghc-test-framework" ,ghc-test-framework)
10972 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
10973 ("ghc-test-framework-th" ,ghc-test-framework-th)))
10974 (home-page "https://github.com/luispedro/conduit-algorithms#readme")
10975 (synopsis "Conduit-based algorithms")
10976 (description
10977 "This package provides algorithms on @code{Conduits}, including higher
10978level asynchronous processing and some other utilities.")
10979 (license license:expat)))
10980
32032314
RW
10981(define-public ghc-interpolate
10982 (package
10983 (name "ghc-interpolate")
10984 (version "0.2.0")
10985 (source
10986 (origin
10987 (method url-fetch)
10988 (uri (string-append "https://hackage.haskell.org/package/interpolate/"
10989 "interpolate-" version ".tar.gz"))
10990 (sha256
10991 (base32
10992 "1gkaj98yz363v38fv78sqby236mp8yqwqcilx7kr2b9z0w3204bf"))))
10993 (build-system haskell-build-system)
10994 (inputs
10995 `(("ghc-haskell-src-meta" ,ghc-haskell-src-meta)))
10996 (native-inputs
10997 `(("ghc-base-compat" ,ghc-base-compat)
10998 ("ghc-hspec" ,ghc-hspec)
10999 ("ghc-quickcheck" ,ghc-quickcheck)
11000 ("ghc-quickcheck-instances" ,ghc-quickcheck-instances)
11001 ("ghc-text" ,ghc-text)
11002 ("hspec-discover" ,hspec-discover)))
11003 (home-page "https://github.com/sol/interpolate")
11004 (synopsis "String interpolation library")
11005 (description "This package provides a string interpolation library for
11006Haskell.")
11007 (license license:expat)))
11008
5e6bf3e2
RW
11009(define-public ghc-hpack
11010 (package
11011 (name "ghc-hpack")
11012 (version "0.28.2")
11013 (source
11014 (origin
11015 (method url-fetch)
11016 (uri (string-append "https://hackage.haskell.org/package/hpack/"
11017 "hpack-" version ".tar.gz"))
11018 (sha256
11019 (base32
11020 "18w0h76jdp3mk9vin8da9iz3cwhcxmw787xy8wlh8bxcpcr16q5r"))))
11021 (build-system haskell-build-system)
11022 (inputs
11023 `(("ghc-aeson" ,ghc-aeson)
11024 ("ghc-bifunctors" ,ghc-bifunctors)
11025 ("ghc-cryptonite" ,ghc-cryptonite)
11026 ("ghc-glob" ,ghc-glob)
11027 ("ghc-http-client" ,ghc-http-client)
11028 ("ghc-http-client-tls" ,ghc-http-client-tls)
11029 ("ghc-http-types" ,ghc-http-types)
11030 ("ghc-scientific" ,ghc-scientific)
11031 ("ghc-text" ,ghc-text)
11032 ("ghc-unordered-containers" ,ghc-unordered-containers)
11033 ("ghc-vector" ,ghc-vector)
11034 ("ghc-yaml" ,ghc-yaml)))
11035 (native-inputs
11036 `(("ghc-hspec" ,ghc-hspec)
11037 ("ghc-hunit" ,ghc-hunit)
11038 ("ghc-interpolate" ,ghc-interpolate)
11039 ("ghc-mockery" ,ghc-mockery)
11040 ("ghc-quickcheck" ,ghc-quickcheck)
11041 ("ghc-temporary" ,ghc-temporary)
11042 ("hspec-discover" ,hspec-discover)))
11043 (home-page "https://github.com/sol/hpack")
11044 (synopsis "Tools for an alternative Haskell package format")
11045 (description
11046 "Hpack is a format for Haskell packages. It is an alternative to the
11047Cabal package format and follows different design principles. Hpack packages
11048are described in a file named @code{package.yaml}. Both @code{cabal2nix} and
11049@code{stack} support @code{package.yaml} natively. For other build tools the
11050@code{hpack} executable can be used to generate a @code{.cabal} file from
11051@code{package.yaml}.")
11052 (license license:expat)))
11053
52f5114d
RW
11054(define-public ghc-raw-strings-qq
11055 (package
11056 (name "ghc-raw-strings-qq")
11057 (version "1.1")
11058 (source
11059 (origin
11060 (method url-fetch)
11061 (uri (string-append "https://hackage.haskell.org/package/"
11062 "raw-strings-qq/raw-strings-qq-"
11063 version ".tar.gz"))
11064 (sha256
11065 (base32
11066 "1lxy1wy3awf52968iy5y9r5z4qgnn2sxkdrh7js3m9gadb11w09f"))))
11067 (build-system haskell-build-system)
11068 (native-inputs `(("ghc-hunit" ,ghc-hunit)))
11069 (home-page "https://github.com/23Skidoo/raw-strings-qq")
11070 (synopsis "Raw string literals for Haskell")
11071 (description
11072 "This package provides a quasiquoter for raw string literals, i.e. string
11073literals that don't recognise the standard escape sequences. Basically, they
11074make your code more readable by freeing you from the responsibility to escape
11075backslashes. They are useful when working with regular expressions,
11076DOS/Windows paths and markup languages (such as XML).")
11077 (license license:bsd-3)))
11078
88189099
RW
11079(define-public ghc-inline-c
11080 (package
11081 (name "ghc-inline-c")
11082 (version "0.6.1.0")
11083 (source
11084 (origin
11085 (method url-fetch)
11086 (uri (string-append "https://hackage.haskell.org/package/inline-c/"
11087 "inline-c-" version ".tar.gz"))
11088 (sha256
11089 (base32
11090 "0vbfrsqsi7mdziqsnj68bsqlwbqxxhvrmy9rv6w8z18d1m8w3n6h"))))
11091 (build-system haskell-build-system)
11092 (arguments
11093 `(#:phases
11094 (modify-phases %standard-phases
11095 (add-after 'unpack 'create-Setup.hs
11096 (lambda _
11097 (with-output-to-file "Setup.hs"
11098 (lambda _
11099 (display "\
11100import Distribution.Simple
11101main = defaultMain")))
11102 #t)))))
11103 (inputs
11104 `(("ghc-ansi-wl-pprint" ,ghc-ansi-wl-pprint)
11105 ("ghc-cryptohash" ,ghc-cryptohash)
11106 ("ghc-hashable" ,ghc-hashable)
11107 ("ghc-parsec" ,ghc-parsec)
11108 ("ghc-parsers" ,ghc-parsers)
11109 ("ghc-unordered-containers" ,ghc-unordered-containers)
11110 ("ghc-vector" ,ghc-vector)))
11111 (native-inputs
11112 `(("ghc-quickcheck" ,ghc-quickcheck)
11113 ("ghc-hspec" ,ghc-hspec)
11114 ("ghc-raw-strings-qq" ,ghc-raw-strings-qq)
11115 ("ghc-regex-posix" ,ghc-regex-posix)))
11116 (home-page "http://hackage.haskell.org/package/inline-c")
11117 (synopsis "Write Haskell source files including C code inline")
11118 (description
11119 "inline-c lets you seamlessly call C libraries and embed high-performance
11120inline C code in Haskell modules. Haskell and C can be freely intermixed in
11121the same source file, and data passed to and from code in either language with
11122minimal overhead. No FFI required.")
11123 (license license:expat)))
11124
1d13003a
RW
11125(define-public ghc-weigh
11126 (package
11127 (name "ghc-weigh")
11128 (version "0.0.12")
11129 (source
11130 (origin
11131 (method url-fetch)
11132 (uri (string-append "https://hackage.haskell.org/package/weigh/"
11133 "weigh-" version ".tar.gz"))
11134 (sha256
11135 (base32
11136 "0zw2a997gxgdzqmd7j730kxgynzmjvvlkw84dajmfzf1v9pbij7x"))))
11137 (build-system haskell-build-system)
11138 (inputs
11139 `(("ghc-split" ,ghc-split)
11140 ("ghc-temporary" ,ghc-temporary)))
11141 (home-page "https://github.com/fpco/weigh#readme")
11142 (synopsis "Measure allocations of a Haskell functions/values")
11143 (description "This package provides tools to measure the memory usage of a
11144Haskell value or function.")
11145 (license license:bsd-3)))
11146
d459e043
RW
11147(define-public ghc-linear
11148 (package
11149 (name "ghc-linear")
11150 (version "1.20.8")
11151 (source
11152 (origin
11153 (method url-fetch)
11154 (uri (string-append "https://hackage.haskell.org/package/linear/"
11155 "linear-" version ".tar.gz"))
11156 (sha256
11157 (base32
11158 "046vkvxlb0s286qr55s0c6db0rlwbm1cmlmwhrrkqbkzhfcipgay"))))
11159 (build-system haskell-build-system)
11160 (inputs
11161 `(("ghc-adjunctions" ,ghc-adjunctions)
11162 ("ghc-base-orphans" ,ghc-base-orphans)
11163 ("ghc-bytes" ,ghc-bytes)
11164 ("ghc-cereal" ,ghc-cereal)
11165 ("ghc-distributive" ,ghc-distributive)
11166 ("ghc-hashable" ,ghc-hashable)
11167 ("ghc-lens" ,ghc-lens)
11168 ("ghc-reflection" ,ghc-reflection)
11169 ("ghc-semigroups" ,ghc-semigroups)
11170 ("ghc-semigroupoids" ,ghc-semigroupoids)
11171 ("ghc-tagged" ,ghc-tagged)
11172 ("ghc-transformers-compat" ,ghc-transformers-compat)
11173 ("ghc-unordered-containers" ,ghc-unordered-containers)
11174 ("ghc-vector" ,ghc-vector)
11175 ("ghc-void" ,ghc-void)))
11176 (native-inputs
11177 `(("cabal-doctest" ,cabal-doctest)
11178 ("ghc-doctest" ,ghc-doctest)
11179 ("ghc-simple-reflect" ,ghc-simple-reflect)
11180 ("ghc-test-framework" ,ghc-test-framework)
11181 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
11182 ("ghc-hunit" ,ghc-hunit)))
11183 (home-page "http://github.com/ekmett/linear/")
11184 (synopsis "Linear algebra library for Haskell")
11185 (description
11186 "This package provides types and combinators for linear algebra on free
11187vector spaces.")
11188 (license license:bsd-3)))
11189
9ef95a19
RW
11190(define-public ghc-safe-exceptions
11191 (package
11192 (name "ghc-safe-exceptions")
11193 (version "0.1.7.0")
11194 (source
11195 (origin
11196 (method url-fetch)
11197 (uri (string-append "https://hackage.haskell.org/package/"
11198 "safe-exceptions/safe-exceptions-"
11199 version ".tar.gz"))
11200 (sha256
11201 (base32
11202 "0sd0zfsm9pcll5bzzj523rbn45adjrnavdkz52hgmdjjgdcdrk8q"))))
11203 (build-system haskell-build-system)
11204 (arguments
11205 '(#:cabal-revision
11206 ("4" "0fid41gishzsyb47wzxhd5falandfirqcp760hcja81qjpfmqd32")))
11207 (inputs `(("ghc-exceptions" ,ghc-exceptions)))
11208 (native-inputs
11209 `(("ghc-hspec" ,ghc-hspec)
11210 ("ghc-void" ,ghc-void)
11211 ("hspec-discover" ,hspec-discover)))
11212 (home-page "https://github.com/fpco/safe-exceptions")
11213 (synopsis "Safe, consistent, and easy exception handling")
11214 (description "Runtime exceptions - as exposed in @code{base} by the
11215@code{Control.Exception} module - have long been an intimidating part of the
11216Haskell ecosystem. This package is intended to overcome this. It provides a
11217safe and simple API on top of the existing exception handling machinery. The
11218API is equivalent to the underlying implementation in terms of power but
11219encourages best practices to minimize the chances of getting the exception
11220handling wrong.")
11221 (license license:expat)))
11222
d9ee3e37
RW
11223(define-public ghc-inline-c-cpp
11224 (package
11225 (name "ghc-inline-c-cpp")
11226 (version "0.2.2.1")
11227 (source
11228 (origin
11229 (method url-fetch)
11230 (uri (string-append "https://hackage.haskell.org/package/inline-c-cpp/"
11231 "inline-c-cpp-" version ".tar.gz"))
11232 (sha256
11233 (base32
11234 "1rk7fmpkmxw9hhwr8df29kadnf0ybnwj64ggdbnsdrpfyhnkisci"))))
11235 (build-system haskell-build-system)
11236 (arguments
11237 `(#:phases
11238 (modify-phases %standard-phases
11239 (add-after 'unpack 'create-Setup.hs
11240 (lambda _
11241 (with-output-to-file "Setup.hs"
11242 (lambda _
11243 (display "\
11244import Distribution.Simple
11245main = defaultMain")))
11246 #t)))))
11247 (inputs
11248 `(("ghc-inline-c" ,ghc-inline-c)
11249 ("ghc-safe-exceptions" ,ghc-safe-exceptions)))
11250 (native-inputs
11251 `(("ghc-hspec" ,ghc-hspec)))
11252 (home-page "https://hackage.haskell.org/package/inline-c-cpp")
11253 (synopsis "Lets you embed C++ code into Haskell")
11254 (description
11255 "This package provides utilities to inline C++ code into Haskell using
11256@code{inline-c}.")
11257 (license license:expat)))
11258
d453b899
RW
11259(define-public ghc-bytestring-lexing
11260 (package
11261 (name "ghc-bytestring-lexing")
11262 (version "0.5.0.2")
11263 (source
11264 (origin
11265 (method url-fetch)
11266 (uri (string-append "https://hackage.haskell.org/package/"
11267 "bytestring-lexing/bytestring-lexing-"
11268 version ".tar.gz"))
11269 (sha256
11270 (base32
11271 "0wrzniawhgpphc6yx1v972gyqxdbv0pizaz9bafahrshyb9svy81"))))
11272 (build-system haskell-build-system)
11273 (home-page "http://code.haskell.org/~wren/")
11274 (synopsis "Parse and produce literals from strict or lazy bytestrings")
11275 (description
11276 "This package provides tools to parse and produce literals efficiently
11277from strict or lazy bytestrings.")
11278 (license license:bsd-2)))
11279
c7e400b1
RW
11280(define-public ghc-configurator
11281 (package
11282 (name "ghc-configurator")
11283 (version "0.3.0.0")
11284 (source
11285 (origin
11286 (method url-fetch)
11287 (uri (string-append "https://hackage.haskell.org/package/"
11288 "configurator/configurator-"
11289 version ".tar.gz"))
11290 (sha256
11291 (base32
11292 "1d1iq1knwiq6ia5g64rw5hqm6dakz912qj13r89737rfcxmrkfbf"))))
11293 (build-system haskell-build-system)
11294 (inputs
11295 `(("ghc-attoparsec" ,ghc-attoparsec)
11296 ("ghc-hashable" ,ghc-hashable)
11297 ("ghc-text" ,ghc-text)
11298 ("ghc-unix-compat" ,ghc-unix-compat)
11299 ("ghc-unordered-containers" ,ghc-unordered-containers)))
11300 (native-inputs
11301 `(("ghc-hunit" ,ghc-hunit)
11302 ("ghc-test-framework" ,ghc-test-framework)
11303 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)))
11304 (home-page "http://github.com/bos/configurator")
11305 (synopsis "Configuration management")
11306 (description
11307 "This package provides a configuration management library for programs
11308and daemons. The features include:
11309
11310@enumerate
11311@item Automatic, dynamic reloading in response to modifications to
11312 configuration files.
11313@item A simple, but flexible, configuration language, supporting several of
11314 the most commonly needed types of data, along with interpolation of strings
11315 from the configuration or the system environment (e.g. @code{$(HOME)}).
11316@item Subscription-based notification of changes to configuration properties.
11317@item An @code{import} directive allows the configuration of a complex
11318 application to be split across several smaller files, or common configuration
11319 data to be shared across several applications.
11320@end enumerate\n")
11321 (license license:bsd-3)))
11322
ea202046
RW
11323(define-public ghc-file-embed
11324 (package
11325 (name "ghc-file-embed")
11326 (version "0.0.10.1")
11327 (source
11328 (origin
11329 (method url-fetch)
11330 (uri (string-append "https://hackage.haskell.org/package/file-embed/"
11331 "file-embed-" version ".tar.gz"))
11332 (sha256
11333 (base32
11334 "0lj164cnzqyd487mli91nnr7137a4h4qsasfwsnsh77sx12fpk9k"))))
11335 (build-system haskell-build-system)
11336 (home-page "https://github.com/snoyberg/file-embed")
11337 (synopsis "Use Template Haskell to embed file contents directly")
11338 (description
11339 "This package allows you to use Template Haskell to read a file or all
11340the files in a directory, and turn them into @code{(path, bytestring)} pairs
11341embedded in your Haskell code.")
11342 (license license:bsd-3)))
11343
b1f9cc88
RW
11344(define-public ghc-safeio
11345 (package
11346 (name "ghc-safeio")
11347 (version "0.0.5.0")
11348 (source
11349 (origin
11350 (method url-fetch)
11351 (uri (string-append "https://hackage.haskell.org/package/safeio/"
11352 "safeio-" version ".tar.gz"))
11353 (sha256
11354 (base32
11355 "04g3070cbjdqj0h9l9ii6470xcbn40xfv4fr89a8yvnkdim9nyfm"))))
11356 (build-system haskell-build-system)
11357 (inputs
11358 `(("ghc-conduit" ,ghc-conduit)
11359 ("ghc-conduit-combinators" ,ghc-conduit-combinators)
11360 ("ghc-exceptions" ,ghc-exceptions)
11361 ("ghc-resourcet" ,ghc-resourcet)))
11362 (native-inputs
11363 `(("ghc-hunit" ,ghc-hunit)
11364 ("ghc-test-framework" ,ghc-test-framework)
11365 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
11366 ("ghc-test-framework-th" ,ghc-test-framework-th)))
11367 (home-page "https://github.com/luispedro/safeio")
11368 (synopsis "Write output to disk atomically")
11369 (description
11370 "This package implements utilities to perform atomic output so as to
11371avoid the problem of partial intermediate files.")
11372 (license license:expat)))
11373
57cd7d92
GH
11374(define-public ghc-tldr
11375 (package
11376 (name "ghc-tldr")
11377 (version "0.4.0.1")
11378 (source
11379 (origin
11380 (method url-fetch)
11381 (uri (string-append
11382 "https://hackage.haskell.org/package/tldr/tldr-"
11383 version
11384 ".tar.gz"))
11385 (sha256
11386 (base32
11387 "0nc581y9jjzwd8l88g48c72mla7k6q1w102akl7gl5jsk9ljamd3"))))
11388 (build-system haskell-build-system)
11389 (inputs
11390 `(("ghc-cmark" ,ghc-cmark)
11391 ("ghc-optparse-applicative" ,ghc-optparse-applicative)
11392 ("ghc-typed-process" ,ghc-typed-process)
11393 ("ghc-semigroups" ,ghc-semigroups)))
11394 (native-inputs
11395 `(("ghc-tasty" ,ghc-tasty)
11396 ("ghc-tasty-golden" ,ghc-tasty-golden)))
11397 (home-page "https://github.com/psibi/tldr-hs#readme")
11398 (synopsis "Haskell tldr client")
11399 (description "This package provides the @command{tldr} command and a
11400Haskell client library allowing users to update and view @code{tldr} pages
11401from a shell. The @code{tldr} pages are a community effort to simplify the
11402man pages with practical examples.")
11403 (license license:bsd-3)))
11404
ea7fa78a
GH
11405(define-public ghc-c2hs
11406 (package
11407 (name "ghc-c2hs")
11408 (version "0.28.6")
11409 (source
11410 (origin
11411 (method url-fetch)
11412 (uri (string-append
11413 "https://hackage.haskell.org/package/c2hs/c2hs-"
11414 version
11415 ".tar.gz"))
11416 (sha256
11417 (base32
11418 "1nplgxfin139x12sb656f5870rpdclrhzi8mq8pry035qld15pci"))))
11419 (build-system haskell-build-system)
11420 (inputs
11421 `(("ghc-language-c" ,ghc-language-c)
11422 ("ghc-dlist" ,ghc-dlist)))
11423 (native-inputs
11424 `(("ghc-test-framework" ,ghc-test-framework)
11425 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
11426 ("ghc-hunit" ,ghc-hunit)
11427 ("ghc-shelly" ,ghc-shelly)
11428 ("ghc-text" ,ghc-text)
11429 ("gcc" ,gcc)))
11430 (arguments
11431 `(;; XXX: Test failures are induced by a parse error in <bits/floatn.h>
11432 ;; of glibc 2.28.
11433 #:tests? #f
11434
11435 #:phases
11436 (modify-phases %standard-phases
11437 (add-before 'check 'set-cc
11438 ;; add a cc executable in the path, needed for some tests to pass
11439 (lambda* (#:key inputs #:allow-other-keys)
11440 (let ((gcc (assoc-ref inputs "gcc"))
11441 (tmpbin (tmpnam))
11442 (curpath (getenv "PATH")))
11443 (mkdir-p tmpbin)
11444 (symlink (which "gcc") (string-append tmpbin "/cc"))
11445 (setenv "PATH" (string-append tmpbin ":" curpath)))
11446 #t))
11447 (add-after 'check 'remove-cc
11448 ;; clean the tmp dir made in 'set-cc
11449 (lambda _
11450 (let* ((cc-path (which "cc"))
11451 (cc-dir (dirname cc-path)))
11452 (delete-file-recursively cc-dir)
11453 #t))))))
11454 (home-page "https://github.com/haskell/c2hs")
11455 (synopsis "Create Haskell bindings to C libraries")
11456 (description "C->Haskell assists in the development of Haskell bindings to
11457C libraries. It extracts interface information from C header files and
11458generates Haskell code with foreign imports and marshaling. Unlike writing
11459foreign imports by hand (or using hsc2hs), this ensures that C functions are
11460imported with the correct Haskell types.")
11461 (license license:gpl2)))
11462
4ad7d037
GH
11463(define-public ghc-libmpd
11464 (package
11465 (name "ghc-libmpd")
11466 (version "0.9.0.9")
11467 (source
11468 (origin
11469 (method url-fetch)
11470 (uri (string-append
11471 "mirror://hackage/package/libmpd/libmpd-"
11472 version
11473 ".tar.gz"))
11474 (sha256
11475 (base32
11476 "1931m23iqb4wddpdidm4ph746zpaw41kkjzmb074j7yyfpk7x1jv"))))
11477 (build-system haskell-build-system)
11478 (inputs
11479 `(("ghc-attoparsec" ,ghc-attoparsec)
11480 ("ghc-old-locale" ,ghc-old-locale)
11481 ("ghc-text" ,ghc-text)
11482 ("ghc-data-default-class" ,ghc-data-default-class)
11483 ("ghc-network" ,ghc-network)
11484 ("ghc-utf8-string" ,ghc-utf8-string)))
11485 (native-inputs
11486 `(("ghc-quickcheck" ,ghc-quickcheck)
11487 ("ghc-hspec" ,ghc-hspec)
11488 ("hspec-discover" ,hspec-discover)))
11489 (home-page "https://github.com/vimus/libmpd-haskell")
11490 (synopsis "Haskell client library for the Music Player Daemon")
11491 (description "This package provides a pure Haskell client library for the
11492Music Player Daemon.")
11493 (license license:expat)))
11494
3fc88ff0
GH
11495(define-public ghc-alsa-core
11496 (package
11497 (name "ghc-alsa-core")
11498 (version "0.5.0.1")
11499 (source
11500 (origin
11501 (method url-fetch)
11502 (uri (string-append
11503 "mirror://hackage/package/alsa-core/alsa-core-"
11504 version
11505 ".tar.gz"))
11506 (sha256
11507 (base32
11508 "1avh4a419h9d2zsslg6j8hm87ppgsgqafz8ll037rk2yy1g4jl7b"))))
11509 (build-system haskell-build-system)
11510 (inputs
11511 `(("ghc-extensible-exceptions" ,ghc-extensible-exceptions)
11512 ("alsa-lib" ,alsa-lib)))
11513 (native-inputs
11514 `(("pkg-config" ,pkg-config)))
11515 (home-page "http://www.haskell.org/haskellwiki/ALSA")
11516 (synopsis "Binding to the ALSA Library API (Exceptions)")
11517 (description "This package provides access to ALSA infrastructure, that is
11518needed by both alsa-seq and alsa-pcm.")
11519 (license license:bsd-3)))
d4ce1c50
GH
11520
11521(define-public ghc-base-unicode-symbols
11522 (package
11523 (name "ghc-base-unicode-symbols")
11524 (version "0.2.3")
11525 (source
11526 (origin
11527 (method url-fetch)
11528 (uri (string-append
11529 "mirror://hackage/package/base-unicode-symbols/base-unicode-symbols-"
11530 version
11531 ".tar.gz"))
11532 (sha256
11533 (base32
11534 "1ia6li7qjg1zkak4gf6mnbshw45mq9bfjr0jch58ds0lscmvwyzf"))))
11535 (build-system haskell-build-system)
11536 (home-page "http://www.haskell.org/haskellwiki/Unicode-symbols")
11537 (synopsis "Unicode alternatives for common functions and operators")
11538 (description "This package defines new symbols for a number of functions,
11539operators and types in the base package. All symbols are documented with
11540their actual definition and information regarding their Unicode code point.
11541They should be completely interchangeable with their definitions. For
11542further Unicode goodness you can enable the @code{UnicodeSyntax}
11543@url{https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/glasgow_exs.html#unicode-syntax,
11544language extension}. This extension enables Unicode characters to be used to
11545stand for certain ASCII character sequences, i.e. → instead of @code{->},
11546∀ instead of @code{forall} and many others.")
11547 (license license:bsd-3)))
2356b7ab
GH
11548
11549(define-public ghc-stylish-haskell
11550 (package
11551 (name "ghc-stylish-haskell")
11552 (version "0.9.2.1")
11553 (source
11554 (origin
11555 (method url-fetch)
11556 (uri (string-append
11557 "mirror://hackage/package/stylish-haskell/stylish-haskell-"
11558 version
11559 ".tar.gz"))
11560 (sha256
11561 (base32
11562 "1ls11fdx6snvfx8yykpidz142zzxwi5bazl49hgfqlwx50rqcp7w"))))
11563 (build-system haskell-build-system)
11564 (inputs
11565 `(("ghc-aeson" ,ghc-aeson)
11566 ("ghc-file-embed" ,ghc-file-embed)
11567 ("ghc-haskell-src-exts" ,ghc-haskell-src-exts)
11568 ("ghc-semigroups" ,ghc-semigroups)
11569 ("ghc-syb" ,ghc-syb)
11570 ("ghc-yaml" ,ghc-yaml)
11571 ("ghc-strict" ,ghc-strict)
11572 ("ghc-optparse-applicative"
11573 ,ghc-optparse-applicative)))
11574 (native-inputs
11575 `(("ghc-hunit" ,ghc-hunit)
11576 ("ghc-test-framework" ,ghc-test-framework)
11577 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)))
11578 (home-page "https://github.com/jaspervdj/stylish-haskell")
11579 (synopsis "Haskell code prettifier")
11580 (description "Stylish-haskell is a Haskell code prettifier. The goal is
11581not to format all of the code in a file, to avoid \"getting in the way\".
11582However, this tool can e.g. clean up import statements and help doing various
11583tasks that get tedious very quickly. It can
11584@itemize
11585@item
11586Align and sort @code{import} statements
11587@item
11588Group and wrap @code{{-# LANGUAGE #-}} pragmas, remove (some) redundant
11589pragmas
11590@item
11591Remove trailing whitespaces
11592@item
11593Align branches in @code{case} and fields in records
11594@item
11595Convert line endings (customisable)
11596@item
11597Replace tabs by four spaces (turned off by default)
11598@item
11599Replace some ASCII sequences by their Unicode equivalent (turned off by
11600default)
11601@end itemize")
11602 (license license:bsd-3)))
246b3437 11603;;; haskell.scm ends here