Merge branch 'staging' into core-updates
[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>
fb038f32 5;;; Copyright © 2015, 2019 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>
233eb6c8 15;;; Copyright © 2017, 2018, 2019 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
fb038f32
EB
836(define-public ghc-libffi
837 (package
838 (name "ghc-libffi")
839 (version "0.1")
840 (source
841 (origin
842 (method url-fetch)
843 (uri (string-append "https://hackage.haskell.org/package/"
844 "libffi/libffi-" version ".tar.gz"))
845 (sha256
846 (base32
847 "0g7jnhng3j7z5517aaqga0144aamibsbpgm3yynwyfzkq1kp0f28"))))
848 (build-system haskell-build-system)
849 (native-inputs `(("pkg-config" ,pkg-config)))
850 (inputs `(("libffi" ,libffi)))
851 (home-page "http://hackage.haskell.org/package/libffi")
852 (synopsis "Haskell binding to libffi")
853 (description
854 "A binding to libffi, allowing C functions of types only known at runtime
855to be called from Haskell.")
856 (license license:bsd-3)))
857
073f5ae1
TS
858(define-public ghc-newtype-generics
859 (package
860 (name "ghc-newtype-generics")
861 (version "0.5.3")
862 (source
863 (origin
864 (method url-fetch)
865 (uri (string-append "https://hackage.haskell.org/package/"
866 "newtype-generics/newtype-generics-"
867 version ".tar.gz"))
868 (sha256
869 (base32
870 "0igyisw2djg19v9vkna1rwf47k97mvkvk4bbkmswznvbm00z15gj"))))
871 (build-system haskell-build-system)
872 (native-inputs
873 `(("ghc-hspec" ,ghc-hspec)
874 ("hspec-discover" ,hspec-discover)))
875 (home-page "http://github.com/sjakobi/newtype-generics")
876 (synopsis "Typeclass and set of functions for working with newtypes")
877 (description "The @code{Newtype} typeclass represents the packing and
878unpacking of a newtype, and allows you to operate under that newtype with
879functions such as @code{ala}. Generics support was added in version 0.4,
880making this package a full replacement for the original newtype package,
881and an alternative to newtype-th.")
882 (license license:bsd-3)))
883
cd40c4d6
TS
884(define-public ghc-memotrie
885 (package
886 (name "ghc-memotrie")
887 (version "0.6.9")
888 (source
889 (origin
890 (method url-fetch)
891 (uri (string-append
892 "https://hackage.haskell.org/package/MemoTrie/MemoTrie-"
893 version
894 ".tar.gz"))
895 (sha256
896 (base32
897 "157p0pi6rrq74a35mq6zkkycv4ah7xhkbrcmnkb9xf7pznw4aq0x"))))
898 (build-system haskell-build-system)
899 (inputs
900 `(("ghc-newtype-generics" ,ghc-newtype-generics)))
901 (home-page "https://github.com/conal/MemoTrie")
902 (synopsis "Trie-based memo functions")
903 (description "This package provides a functional library for creating
904efficient memo functions using tries.")
905 (license license:bsd-3)))
906
c6cf0eb5
TS
907(define-public ghc-tree-diff
908 (package
909 (name "ghc-tree-diff")
910 (version "0.0.1")
911 (source
912 (origin
913 (method url-fetch)
914 (uri (string-append
915 "https://hackage.haskell.org/package/tree-diff/tree-diff-"
916 version
917 ".tar.gz"))
918 (sha256
919 (base32
920 "049v44c520jy3icxlnrvbdblh3mjmvd7m6qmkzxbzkf02x63xqmz"))))
921 (build-system haskell-build-system)
922 (arguments
923 `(#:cabal-revision
924 ("4" "1rqxxyj6hqllahs11693g855cxz8mgnb490s7j1ksd300i5xgjsp")
925 #:phases
926 (modify-phases %standard-phases
927 (add-before 'configure 'update-constraints
928 (lambda _
929 (substitute* "tree-diff.cabal"
930 (("trifecta >=1\\.7\\.1\\.1 && <1\\.8")
931 "trifecta >=1.7.1.1 && <=2")))))))
932 (inputs
933 `(("ghc-aeson" ,ghc-aeson)
934 ("ghc-ansi-wl-pprint" ,ghc-ansi-wl-pprint)
935 ("ghc-ansi-terminal" ,ghc-ansi-terminal)
936 ("ghc-base-compat" ,ghc-base-compat)
937 ("ghc-generics-sop" ,ghc-generics-sop)
938 ("ghc-hashable" ,ghc-hashable)
939 ("ghc-memotrie" ,ghc-memotrie)
940 ("ghc-parsec" ,ghc-parsec)
941 ("ghc-parsers" ,ghc-parsers)
942 ("ghc-quickcheck" ,ghc-quickcheck)
943 ("ghc-scientific" ,ghc-scientific)
944 ("ghc-tagged" ,ghc-tagged)
945 ("ghc-text" ,ghc-text)
946 ("ghc-unordered-containers" ,ghc-unordered-containers)
947 ("ghc-uuid-types" ,ghc-uuid-types)
948 ("ghc-vector" ,ghc-vector)))
949 (native-inputs
950 `(("ghc-base-compat" ,ghc-base-compat)
951 ("ghc-quickcheck" ,ghc-quickcheck)
952 ("ghc-ansi-terminal" ,ghc-ansi-terminal)
953 ("ghc-ansi-wl-pprint" ,ghc-ansi-wl-pprint)
954 ("ghc-parsec" ,ghc-parsec)
955 ("ghc-trifecta" ,ghc-trifecta)
956 ("ghc-tasty" ,ghc-tasty)
957 ("ghc-tasty-golden" ,ghc-tasty-golden)
958 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
959 (home-page "https://github.com/phadej/tree-diff")
960 (synopsis "Compute difference between (expression) trees")
961 (description "This Haskell library provides a function for computing
6ce82848 962the difference between (expression) trees. It also provides a way to
c6cf0eb5
TS
963compute the difference between arbitrary abstract datatypes (ADTs) using
964@code{Generics}-derivable helpers.")
965 (license license:bsd-3)))
966
56b3bc56 967(define-public ghc-haddock-library
eb6ae860 968 (package
56b3bc56 969 (name "ghc-haddock-library")
082d9383 970 (version "1.5.0.1")
eb6ae860
SB
971 (source
972 (origin
973 (method url-fetch)
974 (uri (string-append
612fddec 975 "https://hackage.haskell.org/package/haddock-library/haddock-library-"
eb6ae860
SB
976 version
977 ".tar.gz"))
978 (sha256
56b3bc56 979 (base32
082d9383
TS
980 "1cmbg8l5xrwpliclwy3l057raypjqy0hsg1h1743ahaj8gq10b7z"))
981 (patches (search-patches
982 "ghc-haddock-library-unbundle.patch"))
983 (modules '((guix build utils)))
984 (snippet '(begin
985 (delete-file-recursively "vendor")
986 #t))))
eb6ae860 987 (build-system haskell-build-system)
082d9383
TS
988 (arguments
989 `(#:phases
990 (modify-phases %standard-phases
991 (add-before 'configure 'relax-test-suite-dependencies
992 (lambda _
993 (substitute* "haddock-library.cabal"
994 (("base-compat\\s*\\^>= 0\\.9\\.3") "base-compat")
995 (("hspec\\s*\\^>= 2\\.4\\.4") "hspec"))))
996 ;; The release tarball does not contain the "fixtures/examples"
997 ;; directory, which is required for testing. In the upstream
998 ;; repository, the directory exists and is populated. Here, we
999 ;; create an empty directory to placate the tests.
1000 (add-before 'check 'add-examples-directory
1001 (lambda _
1002 (mkdir "fixtures/examples")
1003 #t)))))
354902e4 1004 (native-inputs
082d9383 1005 `(("ghc-base-compat" ,ghc-base-compat)
56b3bc56 1006 ("ghc-hspec" ,ghc-hspec)
082d9383
TS
1007 ("ghc-optparse-applicative" ,ghc-optparse-applicative)
1008 ("ghc-quickcheck" ,ghc-quickcheck)
1009 ("ghc-tree-diff" ,ghc-tree-diff)
1010 ("hspec-discover" ,hspec-discover)))
98b90194 1011 (home-page "https://www.haskell.org/haddock/")
354902e4 1012 (synopsis "Library exposing some functionality of Haddock")
eb6ae860 1013 (description
56b3bc56
PW
1014 "Haddock is a documentation-generation tool for Haskell libraries. These
1015modules expose some functionality of it without pulling in the GHC dependency.
1016Please note that the API is likely to change so specify upper bounds in your
1017project if you can't release often. For interacting with Haddock itself, see
1018the ‘haddock’ package.")
3ac73271 1019 (license license:bsd-3)))
eb6ae860 1020
735bd9c9 1021(define-public ghc-haddock-api
05b964ae 1022 (package
735bd9c9 1023 (name "ghc-haddock-api")
f548cd72 1024 (version "2.19.0.1")
05b964ae
SB
1025 (source
1026 (origin
1027 (method url-fetch)
735bd9c9 1028 (uri (string-append
612fddec 1029 "https://hackage.haskell.org/package/haddock-api/haddock-api-"
735bd9c9
PW
1030 version
1031 ".tar.gz"))
05b964ae 1032 (sha256
735bd9c9 1033 (base32
f548cd72 1034 "0c6i7sljp7myz25d90gyw68a90i5jcrkajkxcciikp2hjirfaas3"))))
05b964ae 1035 (build-system haskell-build-system)
f548cd72
TS
1036 (arguments
1037 `(#:phases
1038 (modify-phases %standard-phases
1039 (add-before 'configure 'update-constraints
1040 (lambda _
1041 (substitute* "haddock-api.cabal"
1042 (("Cabal \\^>= 2\\.0\\.0")
1043 "Cabal ^>= 2.2.0")
1044 (("hspec \\^>= 2\\.4\\.4")
1045 "hspec >= 2.4.4 && < 2.6")))))))
2d47cee2 1046 (inputs
735bd9c9
PW
1047 `(("ghc-paths" ,ghc-paths)
1048 ("ghc-haddock-library" ,ghc-haddock-library)))
a559c26c
RW
1049 (native-inputs
1050 `(("ghc-quickcheck" ,ghc-quickcheck)
1051 ("ghc-hspec" ,ghc-hspec)
1052 ("hspec-discover" ,hspec-discover)))
98b90194 1053 (home-page "https://www.haskell.org/haddock/")
735bd9c9
PW
1054 (synopsis "API for documentation-generation tool Haddock")
1055 (description "This package provides an API to Haddock, the
1056documentation-generation tool for Haskell libraries.")
3ac73271 1057 (license license:bsd-3)))
05b964ae 1058
35182fa2
RW
1059(define-public ghc-haddock-test
1060 (package
1061 (name "ghc-haddock-test")
1062 (version "0.0.1")
1063 (source
1064 (origin
1065 (method url-fetch)
1066 (uri (string-append "https://hackage.haskell.org/package/"
1067 "haddock-test/haddock-test-"
1068 version ".tar.gz"))
1069 (sha256
1070 (base32
1071 "1ax8fnfrwx66csj952f3virxzapipan9da7z5l1zc12nqkifbs7w"))))
1072 (build-system haskell-build-system)
1073 (inputs
1074 `(("ghc-xml" ,ghc-xml)
1075 ("ghc-syb" ,ghc-syb)))
1076 (home-page "http://www.haskell.org/haddock/")
1077 (synopsis "Test utilities for Haddock")
1078 (description "This package provides test utilities for Haddock.")
1079 (license license:bsd-3)))
1080
e0492a8d 1081(define-public ghc-haddock
7d5baa30 1082 (package
e0492a8d 1083 (name "ghc-haddock")
1b29af3d 1084 (version "2.19.0.1")
7d5baa30
FB
1085 (source
1086 (origin
1087 (method url-fetch)
1088 (uri (string-append
612fddec 1089 "https://hackage.haskell.org/package/haddock/haddock-"
7d5baa30
FB
1090 version
1091 ".tar.gz"))
1092 (sha256
1093 (base32
1b29af3d 1094 "1g1j9j0hf2yhyyh0gwz6bzbvfvliqz9x8a8hnkmwghm7w3xa6sb7"))))
7d5baa30 1095 (build-system haskell-build-system)
1b29af3d
TS
1096 (arguments
1097 `(#:phases
1098 (modify-phases %standard-phases
1099 ;; There are four test suites that require the ghc-haddock-test
1100 ;; package, which no longer builds with GHC 8.4.3. This phase
1101 ;; removes these four test suites from the Cabal file, so that we
1102 ;; do not need ghc-haddock-test as an input.
1103 (add-before 'configure 'remove-haddock-test-test-suites
1104 (lambda _
1105 (use-modules (ice-9 rdelim))
1106 (with-atomic-file-replacement "haddock.cabal"
1107 (lambda (in out)
1108 (let loop ((line (read-line in 'concat)) (deleting? #f))
1109 (cond
1110 ((eof-object? line) #t)
1111 ((string-every char-set:whitespace line)
1112 (unless deleting? (display line out))
1113 (loop (read-line in 'concat) #f))
1114 ((member line '("test-suite html-test\n"
1115 "test-suite hypsrc-test\n"
1116 "test-suite latex-test\n"
1117 "test-suite hoogle-test\n"))
1118 (loop (read-line in 'concat) #t))
1119 (else
1120 (unless deleting? (display line out))
1121 (loop (read-line in 'concat) deleting?)))))))))))
e0492a8d 1122 (inputs `(("ghc-haddock-api" ,ghc-haddock-api)))
613845d0 1123 (native-inputs
1b29af3d 1124 `(("ghc-hspec" ,ghc-hspec)))
98b90194 1125 (home-page "https://www.haskell.org/haddock/")
7d5baa30 1126 (synopsis
e0492a8d 1127 "Documentation-generation tool for Haskell libraries")
7d5baa30 1128 (description
e0492a8d 1129 "Haddock is a documentation-generation tool for Haskell libraries.")
3ac73271 1130 (license license:bsd-3)))
7d5baa30 1131
6729152d 1132(define-public ghc-simple-reflect
0939da6e 1133 (package
6729152d 1134 (name "ghc-simple-reflect")
c2e393cc 1135 (version "0.3.3")
0939da6e
FB
1136 (source
1137 (origin
1138 (method url-fetch)
1139 (uri (string-append
612fddec 1140 "https://hackage.haskell.org/package/simple-reflect/simple-reflect-"
0939da6e
FB
1141 version
1142 ".tar.gz"))
1143 (sha256
1144 (base32
c2e393cc 1145 "0ayvrx5cm8n6db21jiyjmk5h93pw7cz1707hih09hlhk9jh5x0h7"))))
0939da6e 1146 (build-system haskell-build-system)
6729152d 1147 (home-page
98b90194 1148 "https://twanvl.nl/blog/haskell/simple-reflection-of-expressions")
0939da6e 1149 (synopsis
6729152d 1150 "Simple reflection of expressions containing variables")
0939da6e 1151 (description
6729152d
PW
1152 "This package allows simple reflection of expressions containing
1153variables. Reflection here means that a Haskell expression is turned into a
1154string. The primary aim of this package is teaching and understanding; there
1155are no options for manipulating the reflected expressions beyond showing
1156them.")
3ac73271 1157 (license license:bsd-3)))
0939da6e 1158
e0d17b84 1159(define-public ghc-haskell-src
3d3613d5 1160 (package
e0d17b84 1161 (name "ghc-haskell-src")
3ea018c7 1162 (version "1.0.3.0")
3d3613d5
FB
1163 (source
1164 (origin
1165 (method url-fetch)
1166 (uri (string-append
612fddec 1167 "https://hackage.haskell.org/package/haskell-src/haskell-src-"
3d3613d5
FB
1168 version
1169 ".tar.gz"))
1170 (sha256
1171 (base32
3ea018c7 1172 "1g4dj1f0j68bhn4ixfac63wjzy6gsp6kwgxryb1k5nl3i0g99d5l"))))
3d3613d5 1173 (build-system haskell-build-system)
e0d17b84
PW
1174 (inputs
1175 `(("ghc-happy" ,ghc-happy)
1176 ("ghc-syb" ,ghc-syb)))
1177 (home-page
612fddec 1178 "https://hackage.haskell.org/package/haskell-src")
3d3613d5 1179 (synopsis
e0d17b84 1180 "Support for manipulating Haskell source code")
3d3613d5 1181 (description
36a4366d 1182 "The @code{haskell-src} package provides support for manipulating Haskell
e0d17b84
PW
1183source code. The package provides a lexer, parser and pretty-printer, and a
1184definition of a Haskell abstract syntax tree (AST). Common uses of this
1185package are to parse or generate Haskell 98 code.")
3ac73271 1186 (license license:bsd-3)))
3d3613d5 1187
e40b2543 1188(define-public ghc-alex
a39f3936 1189 (package
e40b2543 1190 (name "ghc-alex")
7de7ec7d 1191 (version "3.2.4")
a39f3936
FB
1192 (source
1193 (origin
1194 (method url-fetch)
1195 (uri (string-append
612fddec 1196 "https://hackage.haskell.org/package/alex/alex-"
a39f3936
FB
1197 version
1198 ".tar.gz"))
1199 (sha256
1200 (base32
7de7ec7d 1201 "0cpjixgsr0b2x4s6hz4aa6gnmjw9i7xd9nlfi8m37zqlidq4v3nm"))))
a39f3936 1202 (build-system haskell-build-system)
7de7ec7d
TS
1203 (arguments
1204 `(#:phases
1205 (modify-phases %standard-phases
1206 (add-before 'check 'set-check-variables
1207 (lambda _
1208 (setenv "PATH" (string-append (getcwd) "/dist/build/alex:"
1209 (getenv "PATH")))
1210 (setenv "alex_datadir" (string-append (getcwd) "/data"))
1211 #t)))))
e40b2543 1212 (inputs `(("ghc-quickcheck" ,ghc-quickcheck)))
7de7ec7d
TS
1213 (native-inputs
1214 `(("which" ,which)))
98b90194 1215 (home-page "https://www.haskell.org/alex/")
e40b2543
PW
1216 (synopsis
1217 "Tool for generating lexical analysers in Haskell")
a39f3936 1218 (description
e40b2543
PW
1219 "Alex is a tool for generating lexical analysers in Haskell. It takes a
1220description of tokens based on regular expressions and generates a Haskell
1221module containing code for scanning text efficiently. It is similar to the
1222tool lex or flex for C/C++.")
3ac73271 1223 (license license:bsd-3)))
a39f3936 1224
1f477b59 1225(define-public ghc-cgi
e916e211 1226 (package
1f477b59 1227 (name "ghc-cgi")
22b439db 1228 (version "3001.3.0.2")
e916e211
FB
1229 (source
1230 (origin
1231 (method url-fetch)
1232 (uri (string-append
612fddec 1233 "https://hackage.haskell.org/package/cgi/cgi-"
e916e211
FB
1234 version
1235 ".tar.gz"))
1236 (sha256
1237 (base32
22b439db 1238 "1hbpplss1m4rdpm4ibip6fpimlhssqa14fl338kl2jbc463i64cj"))))
e916e211 1239 (build-system haskell-build-system)
22b439db 1240 (arguments
892d5546
TS
1241 `(#:phases
1242 (modify-phases %standard-phases
1243 (add-before 'configure 'update-constraints
1244 (lambda _
1245 (substitute* "cgi.cabal"
1246 (("exceptions < 0\\.9")
1247 "exceptions < 0.11")
1248 (("time >= 1\\.5 && < 1\\.7")
1249 "time >= 1.5 && < 1.9")
1250 (("doctest >= 0\\.8 && < 0\\.12")
1251 "doctest >= 0.8 && < 0.17")
1252 (("QuickCheck >= 2\\.8\\.1 && < 2\\.10")
1253 "QuickCheck >= 2.8.1 && < 2.12")))))))
1f477b59
PW
1254 (inputs
1255 `(("ghc-parsec" ,ghc-parsec)
1f477b59
PW
1256 ("ghc-exceptions" ,ghc-exceptions)
1257 ("ghc-multipart" ,ghc-multipart)
1258 ("ghc-network-uri" ,ghc-network-uri)
f54f0475 1259 ("ghc-network" ,ghc-network)))
22b439db
RW
1260 (native-inputs
1261 `(("ghc-doctest" ,ghc-doctest)
1262 ("ghc-quickcheck" ,ghc-quickcheck)))
1f477b59
PW
1263 (home-page
1264 "https://github.com/cheecheeo/haskell-cgi")
1265 (synopsis "Library for writing CGI programs")
e916e211 1266 (description
1f477b59 1267 "This is a Haskell library for writing CGI programs.")
3ac73271 1268 (license license:bsd-3)))
e916e211 1269
0ba56364 1270(define-public ghc-cmdargs
deb36de0 1271 (package
0ba56364 1272 (name "ghc-cmdargs")
0ff8558a 1273 (version "0.10.20")
deb36de0
FB
1274 (source
1275 (origin
1276 (method url-fetch)
1277 (uri (string-append
612fddec 1278 "https://hackage.haskell.org/package/cmdargs/cmdargs-"
bfd2ebda 1279 version ".tar.gz"))
deb36de0
FB
1280 (sha256
1281 (base32
0ff8558a 1282 "0cbkmgrcnwgigg6z88y3c09gm7g6dwm7gzbgr53h8k1xik29s9hf"))))
deb36de0 1283 (build-system haskell-build-system)
0ba56364
PW
1284 (home-page
1285 "http://community.haskell.org/~ndm/cmdargs/")
1286 (synopsis "Command line argument processing")
deb36de0 1287 (description
0ba56364 1288 "This library provides an easy way to define command line parsers.")
3ac73271 1289 (license license:bsd-3)))
deb36de0 1290
839415ec
LC
1291(define-public ghc-concatenative
1292 (package
1293 (name "ghc-concatenative")
1294 (version "1.0.1")
1295 (source (origin
1296 (method url-fetch)
1297 (uri (string-append
612fddec 1298 "https://hackage.haskell.org/package/concatenative/concatenative-"
839415ec
LC
1299 version ".tar.gz"))
1300 (sha256
1301 (base32
1302 "05xwqvcdnk8bsyj698ab9jxpa1nk23pf3m7wi9mwmw0q8n99fngd"))))
1303 (build-system haskell-build-system)
1304 (home-page
1305 "https://patch-tag.com/r/salazar/concatenative/snapshot/current/content/pretty")
1306 (synopsis "Library for postfix control flow")
1307 (description
1308 "Concatenative gives Haskell Factor-style combinators and arrows for
1309postfix notation. For more information on stack based languages, see
98b90194 1310@uref{https://concatenative.org}.")
839415ec
LC
1311 (license license:bsd-3)))
1312
81da1a45 1313(define-public ghc-happy
775be802 1314 (package
81da1a45 1315 (name "ghc-happy")
a3aaf87a 1316 (version "1.19.9")
775be802
FB
1317 (source
1318 (origin
1319 (method url-fetch)
1320 (uri (string-append
612fddec 1321 "https://hackage.haskell.org/package/happy/happy-"
775be802
FB
1322 version
1323 ".tar.gz"))
1324 (sha256
1325 (base32
a3aaf87a 1326 "138xpxdb7x62lpmgmb6b3v3vgdqqvqn4273jaap3mjmc2gla709y"))))
775be802 1327 (build-system haskell-build-system)
81da1a45
PW
1328 (home-page "https://hackage.haskell.org/package/happy")
1329 (synopsis "Parser generator for Haskell")
1330 (description "Happy is a parser generator for Haskell. Given a grammar
1331specification in BNF, Happy generates Haskell code to parse the grammar.
1332Happy works in a similar way to the yacc tool for C.")
3ac73271 1333 (license license:bsd-3)))
775be802 1334
b9a64a36
RW
1335(define-public ghc-haskell-lexer
1336 (package
1337 (name "ghc-haskell-lexer")
233eb6c8 1338 (version "1.0.2")
b9a64a36
RW
1339 (source
1340 (origin
1341 (method url-fetch)
1342 (uri (string-append
1343 "https://hackage.haskell.org/package/haskell-lexer/haskell-lexer-"
1344 version ".tar.gz"))
1345 (sha256
233eb6c8 1346 (base32 "1wyxd8x33x4v5vxyzkhm610pl86gbkc8y439092fr1735q9g7kfq"))))
b9a64a36
RW
1347 (build-system haskell-build-system)
1348 (home-page "http://hackage.haskell.org/package/haskell-lexer")
1349 (synopsis "Fully compliant Haskell 98 lexer")
1350 (description
1351 "This package provides a fully compliant Haskell 98 lexer.")
1352 (license license:bsd-3)))
1353
f30b7538
RW
1354(define-public ghc-pretty-show
1355 (package
1356 (name "ghc-pretty-show")
6b19c5a4 1357 (version "1.7")
f30b7538
RW
1358 (source
1359 (origin
1360 (method url-fetch)
1361 (uri (string-append "https://hackage.haskell.org/package/pretty-show/"
1362 "pretty-show-" version ".tar.gz"))
1363 (sha256
1364 (base32
6b19c5a4 1365 "0br7pkxqqqhby2j2v1g847lgqsrasx56g1jw3dhmjh4flzs6warq"))))
f30b7538
RW
1366 (build-system haskell-build-system)
1367 (inputs
1368 `(("ghc-haskell-lexer" ,ghc-haskell-lexer)
1369 ("ghc-happy" ,ghc-happy)))
1370 (home-page "http://wiki.github.com/yav/pretty-show")
1371 (synopsis "Tools for working with derived `Show` instances")
1372 (description
1373 "This package provides a library and an executable for working with
1374derived @code{Show} instances. By using the library, derived @code{Show}
1375instances can be parsed into a generic data structure. The @code{ppsh} tool
1376uses the library to produce human-readable versions of @code{Show} instances,
1377which can be quite handy for debugging Haskell programs. We can also render
1378complex generic values into an interactive Html page, for easier
1379examination.")
1380 (license license:expat)))
1381
6ff19687 1382(define-public ghc-haskell-src-exts
c3b90c0e 1383 (package
6ff19687 1384 (name "ghc-haskell-src-exts")
14b0ade6 1385 (version "1.20.2")
c3b90c0e
FB
1386 (source
1387 (origin
1388 (method url-fetch)
1389 (uri (string-append
612fddec 1390 "https://hackage.haskell.org/package/haskell-src-exts/haskell-src-exts-"
c3b90c0e
FB
1391 version
1392 ".tar.gz"))
1393 (sha256
1394 (base32
14b0ade6 1395 "1sm3z4v1p5yffg01ldgavz71s3bvfhjfa13k428rk14bpkl8crlz"))))
c3b90c0e 1396 (build-system haskell-build-system)
2d47cee2 1397 (inputs
6ff19687 1398 `(("cpphs" ,cpphs)
6ff19687 1399 ("ghc-happy" ,ghc-happy)
14b0ade6 1400 ("ghc-pretty-show" ,ghc-pretty-show)))
172bb3b8
RW
1401 (native-inputs
1402 `(("ghc-smallcheck" ,ghc-smallcheck)
1403 ("ghc-tasty" ,ghc-tasty)
1404 ("ghc-tasty-smallcheck" ,ghc-tasty-smallcheck)
1405 ("ghc-tasty-golden" ,ghc-tasty-golden)))
6ff19687
PW
1406 (home-page "https://github.com/haskell-suite/haskell-src-exts")
1407 (synopsis "Library for manipulating Haskell source")
1408 (description "Haskell-Source with Extensions (HSE, haskell-src-exts) is an
1409extension of the standard @code{haskell-src} package, and handles most
1410registered syntactic extensions to Haskell. All extensions implemented in GHC
1411are supported. Apart from these standard extensions, it also handles regular
1412patterns as per the HaRP extension as well as HSX-style embedded XML syntax.")
3ac73271 1413 (license license:bsd-3)))
c3b90c0e 1414
3657bd1f
RW
1415(define-public ghc-haskell-src-exts-util
1416 (package
1417 (name "ghc-haskell-src-exts-util")
255a31f8 1418 (version "0.2.3")
3657bd1f
RW
1419 (source
1420 (origin
1421 (method url-fetch)
1422 (uri (string-append "https://hackage.haskell.org/package/"
1423 "haskell-src-exts-util/haskell-src-exts-util-"
1424 version ".tar.gz"))
1425 (sha256
1426 (base32
255a31f8 1427 "1803718paq89f8pdck4mb88hv2k1ah9lxzq0lgjgwi9n88ryycz8"))))
3657bd1f
RW
1428 (build-system haskell-build-system)
1429 (inputs
1430 `(("ghc-data-default" ,ghc-data-default)
1431 ("ghc-haskell-src-exts" ,ghc-haskell-src-exts)
1432 ("ghc-semigroups" ,ghc-semigroups)
1433 ("ghc-uniplate" ,ghc-uniplate)))
1434 (home-page "https://github.com/pepeiborra/haskell-src-exts-util")
1435 (synopsis "Helper functions for working with haskell-src-exts trees")
1436 (description
1437 "This package provides helper functions for working with
1438@code{haskell-src-exts} trees.")
1439 (license license:bsd-3)))
1440
b28f0ffa
RW
1441(define-public ghc-refact
1442 (package
1443 (name "ghc-refact")
1444 (version "0.3.0.2")
1445 (source
1446 (origin
1447 (method url-fetch)
1448 (uri (string-append "https://hackage.haskell.org/package/"
1449 "refact/refact-"
1450 version ".tar.gz"))
1451 (sha256
1452 (base32
1453 "0v0zxcx29b8jxs2kgy9csykqcp8kzhdvyylw2xfwmj4pfxr2kl0a"))))
1454 (build-system haskell-build-system)
1455 (home-page "http://hackage.haskell.org/package/refact")
1456 (synopsis "Specify refactorings to perform with apply-refact")
1457 (description
1458 "This library provides a datatype which can be interpreted by
add928d3 1459@code{apply-refact}. It exists as a separate library so that applications can
b28f0ffa
RW
1460specify refactorings without depending on GHC.")
1461 (license license:bsd-3)))
1462
6397aef0 1463(define-public hlint
df596b94 1464 (package
6397aef0 1465 (name "hlint")
478365e3 1466 (version "2.1.10")
df596b94
FB
1467 (source
1468 (origin
1469 (method url-fetch)
1470 (uri (string-append
612fddec 1471 "https://hackage.haskell.org/package/" name
6397aef0 1472 "/" name "-" version ".tar.gz"))
df596b94 1473 (sha256
6397aef0 1474 (base32
478365e3 1475 "19as2m9g75cr6n1agzvsij0cvqhb0wbjlk31w4y5d5mns87dki0w"))))
df596b94 1476 (build-system haskell-build-system)
6397aef0
PW
1477 (inputs
1478 `(("cpphs" ,cpphs)
780185cc
RW
1479 ("ghc-unordered-containers" ,ghc-unordered-containers)
1480 ("ghc-yaml" ,ghc-yaml)
1481 ("ghc-vector" ,ghc-vector)
1482 ("ghc-text" ,ghc-text)
1483 ("ghc-data-default" ,ghc-data-default)
6397aef0
PW
1484 ("ghc-cmdargs" ,ghc-cmdargs)
1485 ("ghc-haskell-src-exts" ,ghc-haskell-src-exts)
780185cc 1486 ("ghc-haskell-src-exts-util" ,ghc-haskell-src-exts-util)
6397aef0
PW
1487 ("ghc-uniplate" ,ghc-uniplate)
1488 ("ghc-ansi-terminal" ,ghc-ansi-terminal)
1489 ("ghc-extra" ,ghc-extra)
780185cc
RW
1490 ("ghc-refact" ,ghc-refact)
1491 ("ghc-aeson" ,ghc-aeson)
6397aef0
PW
1492 ("hscolour" ,hscolour)))
1493 (home-page "http://community.haskell.org/~ndm/hlint/")
1494 (synopsis "Suggest improvements for Haskell source code")
1495 (description "HLint reads Haskell programs and suggests changes that
1496hopefully make them easier to read. HLint also makes it easy to disable
1497unwanted suggestions, and to add your own custom suggestions.")
3ac73271 1498 (license license:bsd-3)))
4af803a7 1499
85b2a2f5 1500(define-public ghc-resourcet
4af803a7 1501 (package
85b2a2f5 1502 (name "ghc-resourcet")
990cd5ef 1503 (version "1.2.1")
4af803a7
FB
1504 (source
1505 (origin
1506 (method url-fetch)
990cd5ef
RW
1507 (uri (string-append "https://hackage.haskell.org/package/resourcet/"
1508 "resourcet-" version ".tar.gz"))
4af803a7
FB
1509 (sha256
1510 (base32
990cd5ef 1511 "0rzjzh34s36ssign7akqjnwnjxf11c3511wk7ky0xxy0dqmc2rg7"))))
4af803a7 1512 (build-system haskell-build-system)
2d47cee2 1513 (inputs
85b2a2f5
PW
1514 `(("ghc-transformers-base" ,ghc-transformers-base)
1515 ("ghc-monad-control" ,ghc-monad-control)
1516 ("ghc-transformers-compat" ,ghc-transformers-compat)
85b2a2f5 1517 ("ghc-mmorph" ,ghc-mmorph)
990cd5ef
RW
1518 ("ghc-exceptions" ,ghc-exceptions)
1519 ("ghc-unliftio-core" ,ghc-unliftio-core)))
2d47cee2 1520 (native-inputs
85b2a2f5
PW
1521 `(("ghc-lifted-base" ,ghc-lifted-base)
1522 ("ghc-hspec" ,ghc-hspec)))
612fddec 1523 (home-page "https://github.com/snoyberg/conduit")
85b2a2f5
PW
1524 (synopsis "Deterministic allocation and freeing of scarce resources")
1525 (description "ResourceT is a monad transformer which creates a region of
1526code where you can safely allocate resources.")
3ac73271 1527 (license license:bsd-3)))
4af803a7 1528
74fa80ee 1529(define-public ghc-objectname
dc0ae39a 1530 (package
74fa80ee 1531 (name "ghc-objectname")
1d9d3ec2 1532 (version "1.1.0.1")
dc0ae39a
FB
1533 (source
1534 (origin
1535 (method url-fetch)
1536 (uri (string-append
612fddec 1537 "https://hackage.haskell.org/package/ObjectName/ObjectName-"
dc0ae39a
FB
1538 version
1539 ".tar.gz"))
1540 (sha256
1541 (base32
1d9d3ec2 1542 "046jm94rmm46cicd31pl54vdvfjvhd9ffbfycy2lxzc0fliyznvj"))))
dc0ae39a 1543 (build-system haskell-build-system)
74fa80ee
PW
1544 (home-page "https://hackage.haskell.org/package/ObjectName")
1545 (synopsis "Helper library for Haskell OpenGL")
1546 (description "This tiny package contains the class ObjectName, which
1547corresponds to the general notion of explicitly handled identifiers for API
1548objects, e.g. a texture object name in OpenGL or a buffer object name in
1549OpenAL.")
3ac73271 1550 (license license:bsd-3)))
dc0ae39a 1551
b784e8c5 1552(define-public ghc-sdl
7a1e8c74 1553 (package
b784e8c5 1554 (name "ghc-sdl")
30a8c0d8 1555 (version "0.6.7.0")
7a1e8c74
FB
1556 (source
1557 (origin
1558 (method url-fetch)
1559 (uri (string-append
612fddec 1560 "https://hackage.haskell.org/package/SDL/SDL-"
7a1e8c74
FB
1561 version
1562 ".tar.gz"))
1563 (sha256
1564 (base32
30a8c0d8 1565 "00y67v80a8l09i3k76z09lg25kw72ivl09nag8ckdlk4a0cfnzfq"))))
7a1e8c74
FB
1566 (build-system haskell-build-system)
1567 (inputs
b784e8c5
PW
1568 `(("sdl" ,sdl)))
1569 (home-page "https://hackage.haskell.org/package/SDL")
1570 (synopsis "LibSDL for Haskell")
1571 (description "Simple DirectMedia Layer (libSDL) is a cross-platform
1572multimedia library designed to provide low level access to audio, keyboard,
1573mouse, joystick, 3D hardware via OpenGL, and 2D video framebuffer. It is used
1574by MPEG playback software, emulators, and many popular games, including the
1575award winning Linux port of \"Civilization: Call To Power.\"")
3ac73271 1576 (license license:bsd-3)))
7a1e8c74 1577
224a0ddb 1578(define-public ghc-sdl-mixer
eaa3088e 1579 (package
224a0ddb 1580 (name "ghc-sdl-mixer")
214fae87 1581 (version "0.6.3.0")
eaa3088e
FB
1582 (source
1583 (origin
1584 (method url-fetch)
1585 (uri (string-append
612fddec 1586 "https://hackage.haskell.org/package/SDL-mixer/SDL-mixer-"
eaa3088e
FB
1587 version
1588 ".tar.gz"))
1589 (sha256
1590 (base32
214fae87 1591 "0k26hqgdh789ka3mv4dsk6rin6x6vwcs6hjmnsqq7j3mnrh1342r"))))
eaa3088e 1592 (build-system haskell-build-system)
224a0ddb
PW
1593 (arguments
1594 `(#:configure-flags
1595 (let* ((sdl-mixer (assoc-ref %build-inputs "sdl-mixer"))
1596 (sdl-mixer-include (string-append sdl-mixer "/include/SDL")))
fd59d2ee 1597 (list (string-append "--extra-include-dirs=" sdl-mixer-include)))))
eaa3088e 1598 (inputs
2d47cee2
RW
1599 `(("ghc-sdl" ,ghc-sdl)
1600 ("sdl-mixer" ,sdl-mixer)))
612fddec 1601 (home-page "https://hackage.haskell.org/package/SDL-mixer")
224a0ddb
PW
1602 (synopsis "Haskell bindings to libSDL_mixer")
1603 (description "SDL_mixer is a sample multi-channel audio mixer library. It
1604supports any number of simultaneously playing channels of 16 bit stereo audio,
1605plus a single channel of music, mixed by the popular MikMod MOD, Timidity
1606MIDI, Ogg Vorbis, and SMPEG MP3 libraries.")
3ac73271 1607 (license license:bsd-3)))
eaa3088e 1608
c783cac0 1609(define-public ghc-sdl-image
61c02099 1610 (package
c783cac0 1611 (name "ghc-sdl-image")
cfd1a7d0 1612 (version "0.6.2.0")
61c02099
FB
1613 (source
1614 (origin
1615 (method url-fetch)
1616 (uri (string-append
612fddec 1617 "https://hackage.haskell.org/package/SDL-image/SDL-image-"
61c02099
FB
1618 version
1619 ".tar.gz"))
1620 (sha256
1621 (base32
cfd1a7d0 1622 "1gxwrvswgwjw6g7ym52gik22l9l3ljy592phv97jdmcf3gi6qcg1"))))
61c02099 1623 (build-system haskell-build-system)
61c02099 1624 (arguments
c783cac0
PW
1625 `(#:configure-flags
1626 (let* ((sdl-image (assoc-ref %build-inputs "sdl-image"))
1627 (sdl-image-include (string-append sdl-image "/include/SDL")))
fd59d2ee 1628 (list (string-append "--extra-include-dirs=" sdl-image-include)))))
c783cac0 1629 (inputs
2d47cee2
RW
1630 `(("ghc-sdl" ,ghc-sdl)
1631 ("sdl-image" ,sdl-image)))
612fddec 1632 (home-page "https://hackage.haskell.org/package/SDL-image")
c783cac0
PW
1633 (synopsis "Haskell bindings to libSDL_image")
1634 (description "SDL_image is an image file loading library. It loads images
1635as SDL surfaces, and supports the following formats: BMP, GIF, JPEG, LBM, PCX,
1636PNG, PNM, TGA, TIFF, XCF, XPM, XV.")
3ac73271 1637 (license license:bsd-3)))
61c02099 1638
22db3ce7 1639(define-public ghc-half
c5043f4a 1640 (package
22db3ce7 1641 (name "ghc-half")
16b4b6d1 1642 (version "0.3")
c5043f4a
FB
1643 (source
1644 (origin
1645 (method url-fetch)
1646 (uri (string-append
612fddec 1647 "https://hackage.haskell.org/package/half/half-"
f1c2aed7 1648 version ".tar.gz"))
c5043f4a
FB
1649 (sha256
1650 (base32
16b4b6d1 1651 "14r0nx8hm5fic9gz0ybjjw4kyc758zfgvhhwvzsshpx5caq6zch6"))))
c5043f4a 1652 (build-system haskell-build-system)
16b4b6d1
TS
1653 (native-inputs
1654 `(("ghc-hspec" ,ghc-hspec)
1655 ("ghc-quickcheck" ,ghc-quickcheck)))
612fddec 1656 (home-page "https://github.com/ekmett/half")
22db3ce7
PW
1657 (synopsis "Half-precision floating-point computations")
1658 (description "This library provides a half-precision floating-point
1659computation library for Haskell.")
3ac73271 1660 (license license:bsd-3)))
c5043f4a 1661
0ffea6f2
RW
1662(define-public ghc-fixed
1663 (package
1664 (name "ghc-fixed")
1665 (version "0.2.1.1")
1666 (source
1667 (origin
1668 (method url-fetch)
1669 (uri (string-append "https://hackage.haskell.org/package/fixed/fixed-"
1670 version ".tar.gz"))
1671 (sha256
1672 (base32
1673 "1qhmwx8iqshns0crmr9d2f8hm65jxbcp3dvv0c39v34ra7if3a94"))))
1674 (build-system haskell-build-system)
1675 (home-page "https://github.com/ekmett/fixed")
1676 (synopsis "Signed 15.16 precision fixed point arithmetic")
1677 (description
1678 "This package provides functions for signed 15.16 precision fixed point
1679arithmetic.")
1680 (license license:bsd-3)))
1681
c480b85e 1682(define-public ghc-openglraw
01a687da 1683 (package
c480b85e 1684 (name "ghc-openglraw")
1aacec9e 1685 (version "3.3.1.0")
01a687da
FB
1686 (source
1687 (origin
1688 (method url-fetch)
1689 (uri (string-append
612fddec 1690 "https://hackage.haskell.org/package/OpenGLRaw/OpenGLRaw-"
01a687da
FB
1691 version
1692 ".tar.gz"))
1693 (sha256
1694 (base32
1aacec9e 1695 "1x8w3x308jldj2c1xqcq3a3sc2jc06pdpgqkgjsmixi1skv4a1vb"))))
01a687da
FB
1696 (build-system haskell-build-system)
1697 (inputs
c480b85e 1698 `(("ghc-half" ,ghc-half)
e80e97b5 1699 ("ghc-fixed" ,ghc-fixed)
c480b85e
PW
1700 ("glu" ,glu)
1701 ("ghc-text" ,ghc-text)))
98b90194 1702 (home-page "https://www.haskell.org/haskellwiki/Opengl")
c480b85e
PW
1703 (synopsis "Raw Haskell bindings for the OpenGL graphics system")
1704 (description "OpenGLRaw is a raw Haskell binding for the OpenGL 4.5
1705graphics system and lots of OpenGL extensions. It is basically a 1:1 mapping
1706of OpenGL's C API, intended as a basis for a nicer interface. OpenGLRaw
1707offers access to all necessary functions, tokens and types plus a general
1708facility for loading extension entries. The module hierarchy closely mirrors
1709the naming structure of the OpenGL extensions, making it easy to find the
1710right module to import. All API entries are loaded dynamically, so no special
1711C header files are needed for building this package. If an API entry is not
1712found at runtime, a userError is thrown.")
3ac73271 1713 (license license:bsd-3)))
01a687da 1714
bce03084 1715(define-public ghc-glut
d692228e 1716 (package
bce03084 1717 (name "ghc-glut")
2dee6394 1718 (version "2.7.0.14")
d692228e
FB
1719 (source
1720 (origin
1721 (method url-fetch)
1722 (uri (string-append
612fddec 1723 "https://hackage.haskell.org/package/GLUT/GLUT-"
d692228e
FB
1724 version
1725 ".tar.gz"))
1726 (sha256
1727 (base32
2dee6394 1728 "01i162fly4q1751fp60lgkzlb8kr0qqbvmxj74zc6skb19qggy2w"))))
d692228e 1729 (build-system haskell-build-system)
2d47cee2 1730 (inputs
bce03084 1731 `(("ghc-statevar" ,ghc-statevar)
2d47cee2 1732 ("ghc-opengl" ,ghc-opengl)
dd169b73 1733 ("ghc-openglraw" ,ghc-openglraw)
bce03084 1734 ("freeglut" ,freeglut)))
98b90194 1735 (home-page "https://www.haskell.org/haskellwiki/Opengl")
bce03084
PW
1736 (synopsis "Haskell bindings for the OpenGL Utility Toolkit")
1737 (description "This library provides Haskell bindings for the OpenGL
1738Utility Toolkit, a window system-independent toolkit for writing OpenGL
1739programs.")
3ac73271 1740 (license license:bsd-3)))
d692228e 1741
894562e3 1742(define-public ghc-gluraw
fa468e87 1743 (package
894562e3 1744 (name "ghc-gluraw")
211b2133 1745 (version "2.0.0.4")
fa468e87
FB
1746 (source
1747 (origin
1748 (method url-fetch)
1749 (uri (string-append
612fddec 1750 "https://hackage.haskell.org/package/GLURaw/GLURaw-"
fa468e87
FB
1751 version
1752 ".tar.gz"))
1753 (sha256
894562e3 1754 (base32
211b2133 1755 "1i2xi35n5z0d372px9mh6cyhgg1m0cfaiy3fnspkf6kbn9fgsqxq"))))
fa468e87 1756 (build-system haskell-build-system)
2d47cee2 1757 (inputs
894562e3 1758 `(("ghc-openglraw" ,ghc-openglraw)))
98b90194 1759 (home-page "https://www.haskell.org/haskellwiki/Opengl")
894562e3
PW
1760 (synopsis "Raw Haskell bindings GLU")
1761 (description "GLURaw is a raw Haskell binding for the GLU 1.3 OpenGL
1762utility library. It is basically a 1:1 mapping of GLU's C API, intended as a
1763basis for a nicer interface.")
3ac73271 1764 (license license:bsd-3)))
fa468e87 1765
fe28ba70 1766(define-public ghc-opengl
f50fc138 1767 (package
fe28ba70 1768 (name "ghc-opengl")
ce88eae9 1769 (version "3.0.2.2")
f50fc138
FB
1770 (source
1771 (origin
1772 (method url-fetch)
1773 (uri (string-append
612fddec 1774 "https://hackage.haskell.org/package/OpenGL/OpenGL-"
f50fc138
FB
1775 version
1776 ".tar.gz"))
1777 (sha256
1778 (base32
ce88eae9 1779 "19vxwvx2n8zq2klj176l25n2b64ybp0b8mhm4p46gvpcivz41fjc"))))
f50fc138 1780 (build-system haskell-build-system)
2d47cee2 1781 (inputs
fe28ba70
PW
1782 `(("ghc-text" ,ghc-text)
1783 ("ghc-objectname" ,ghc-objectname)
1784 ("ghc-gluraw" ,ghc-gluraw)
1785 ("ghc-statevar" ,ghc-statevar)
1786 ("ghc-openglraw" ,ghc-openglraw)))
98b90194 1787 (home-page "https://www.haskell.org/haskellwiki/Opengl")
fe28ba70
PW
1788 (synopsis "Haskell bindings for the OpenGL graphics system")
1789 (description "This package provides Haskell bindings for the OpenGL
1790graphics system (GL, version 4.5) and its accompanying utility library (GLU,
1791version 1.3).")
3ac73271 1792 (license license:bsd-3)))
f50fc138 1793
f550db48 1794(define-public ghc-streaming-commons
abfed253 1795 (package
f550db48 1796 (name "ghc-streaming-commons")
c437b800 1797 (version "0.2.1.0")
abfed253
FB
1798 (source
1799 (origin
1800 (method url-fetch)
c437b800
RW
1801 (uri (string-append "https://hackage.haskell.org/package/"
1802 "streaming-commons/streaming-commons-"
1803 version ".tar.gz"))
abfed253
FB
1804 (sha256
1805 (base32
c437b800 1806 "13fn6qmpiggwpn8lczyydgp77cyzfypwds7wxskrwir4i5cgxlfq"))))
abfed253
FB
1807 (build-system haskell-build-system)
1808 (inputs
c437b800
RW
1809 `(("ghc-async" ,ghc-async)
1810 ("ghc-blaze-builder" ,ghc-blaze-builder)
2d47cee2
RW
1811 ("ghc-network" ,ghc-network)
1812 ("ghc-random" ,ghc-random)
f550db48
PW
1813 ("ghc-stm" ,ghc-stm)
1814 ("ghc-text" ,ghc-text)
f550db48 1815 ("ghc-zlib" ,ghc-zlib)))
2d47cee2
RW
1816 (native-inputs
1817 `(("ghc-quickcheck" ,ghc-quickcheck)
1818 ("ghc-hspec" ,ghc-hspec)
1819 ("hspec-discover" ,hspec-discover)))
f550db48
PW
1820 (home-page "https://hackage.haskell.org/package/streaming-commons")
1821 (synopsis "Conduit and pipes needed by some streaming data libraries")
b90f72dc
RW
1822 (description "This package provides low-dependency functionality commonly
1823needed by various Haskell streaming data libraries, such as @code{conduit} and
f550db48 1824@code{pipe}s.")
b90f72dc 1825 (license license:expat)))
abfed253 1826
78249cc0 1827(define-public cpphs
9ce031c5 1828 (package
78249cc0 1829 (name "cpphs")
c12562e1 1830 (version "1.20.8")
9ce031c5
FB
1831 (source
1832 (origin
1833 (method url-fetch)
1834 (uri (string-append
612fddec 1835 "https://hackage.haskell.org/package/" name "/"
78249cc0
PW
1836 name "-" version ".tar.gz"))
1837 (sha256
1838 (base32
c12562e1 1839 "1bh524asqhk9v1s0wvipl0hgn7l63iy3js867yv0z3h5v2kn8vg5"))))
78249cc0 1840 (build-system haskell-build-system)
2d47cee2 1841 (inputs
78249cc0
PW
1842 `(("ghc-polyparse" ,ghc-polyparse)
1843 ("ghc-old-locale" ,ghc-old-locale)
1844 ("ghc-old-time" ,ghc-old-time)))
1845 (home-page "http://projects.haskell.org/cpphs/")
1846 (synopsis "Liberalised re-implementation of cpp, the C pre-processor")
1847 (description "Cpphs is a re-implementation of the C pre-processor that is
1848both more compatible with Haskell, and itself written in Haskell so that it
1849can be distributed with compilers. This version of the C pre-processor is
1850pretty-much feature-complete and compatible with traditional (K&R)
1851pre-processors. Additional features include: a plain-text mode; an option to
1852unlit literate code files; and an option to turn off macro-expansion.")
3ac73271 1853 (license (list license:lgpl2.1+ license:gpl3+))))
78249cc0 1854
865ac573
PW
1855(define-public ghc-reflection
1856 (package
1857 (name "ghc-reflection")
e7e74518 1858 (version "2.1.4")
865ac573
PW
1859 (source
1860 (origin
1861 (method url-fetch)
1862 (uri (string-append
612fddec 1863 "https://hackage.haskell.org/package/reflection/reflection-"
9ce031c5
FB
1864 version
1865 ".tar.gz"))
1866 (sha256
1867 (base32
e7e74518 1868 "0kf4a5ijw6jfnfibjcrpdy9vzh1n6v2pxia8dhyyqdissiwc8bzj"))))
9ce031c5 1869 (build-system haskell-build-system)
865ac573 1870 (inputs `(("ghc-tagged" ,ghc-tagged)))
612fddec 1871 (home-page "https://github.com/ekmett/reflection")
865ac573
PW
1872 (synopsis "Reify arbitrary terms into types that can be reflected back
1873into terms")
1874 (description "This package addresses the 'configuration problem' which is
b5cfc89f 1875propagating configurations that are available at run-time, allowing multiple
865ac573
PW
1876configurations to coexist without resorting to mutable global variables or
1877@code{System.IO.Unsafe.unsafePerformIO}.")
3ac73271 1878 (license license:bsd-3)))
9ce031c5 1879
6a0add9c 1880(define-public ghc-old-locale
a231ef7e 1881 (package
6a0add9c
PW
1882 (name "ghc-old-locale")
1883 (version "1.0.0.7")
a231ef7e
FB
1884 (source
1885 (origin
1886 (method url-fetch)
1887 (uri (string-append
612fddec 1888 "https://hackage.haskell.org/package/old-locale/old-locale-"
a231ef7e
FB
1889 version
1890 ".tar.gz"))
1891 (sha256
6a0add9c 1892 (base32 "0l3viphiszvz5wqzg7a45zp40grwlab941q5ay29iyw8p3v8pbyv"))))
a231ef7e 1893 (build-system haskell-build-system)
afff0b6d 1894 (arguments
12eb67dc
TS
1895 `(#:cabal-revision
1896 ("2" "04b9vn007hlvsrx4ksd3r8r3kbyaj2kvwxchdrmd4370qzi8p6gs")))
612fddec 1897 (home-page "https://hackage.haskell.org/package/old-locale")
6a0add9c
PW
1898 (synopsis "Adapt to locale conventions")
1899 (description
1900 "This package provides the ability to adapt to locale conventions such as
1901date and time formats.")
3ac73271 1902 (license license:bsd-3)))
6a0add9c 1903
7ae4c102
PW
1904(define-public ghc-old-time
1905 (package
1906 (name "ghc-old-time")
1907 (version "1.1.0.3")
1908 (source
1909 (origin
1910 (method url-fetch)
1911 (uri (string-append
612fddec 1912 "https://hackage.haskell.org/package/old-time/old-time-"
7ae4c102
PW
1913 version
1914 ".tar.gz"))
1915 (sha256
1916 (base32
1917 "1h9b26s3kfh2k0ih4383w90ibji6n0iwamxp6rfp2lbq1y5ibjqw"))))
1918 (build-system haskell-build-system)
037181ed 1919 (arguments
e3777511
TS
1920 `(#:cabal-revision
1921 ("2" "1j6ln1dkvhdvnwl33bp0xf9lhc4sybqk0aw42p8cq81xwwzbn7y9")))
2d47cee2 1922 (inputs
7ae4c102 1923 `(("ghc-old-locale" ,ghc-old-locale)))
612fddec 1924 (home-page "https://hackage.haskell.org/package/old-time")
7ae4c102
PW
1925 (synopsis "Time compatibility library for Haskell")
1926 (description "Old-time is a package for backwards compatibility with the
1927old @code{time} library. For new projects, the newer
612fddec 1928@uref{https://hackage.haskell.org/package/time, time library} is recommended.")
3ac73271 1929 (license license:bsd-3)))
7ae4c102 1930
684f29ab
SB
1931(define-public ghc-data-default-instances-old-locale
1932 (package
1933 (name "ghc-data-default-instances-old-locale")
1934 (version "0.0.1")
1935 (source
1936 (origin
1937 (method url-fetch)
1938 (uri (string-append
612fddec 1939 "https://hackage.haskell.org/package/"
684f29ab
SB
1940 "data-default-instances-old-locale/"
1941 "data-default-instances-old-locale-" version ".tar.gz"))
1942 (sha256
1943 (base32 "00h81i5phib741yj517p8mbnc48myvfj8axzsw44k34m48lv1lv0"))))
1944 (build-system haskell-build-system)
2d47cee2 1945 (inputs
6a0add9c
PW
1946 `(("ghc-data-default-class" ,ghc-data-default-class)
1947 ("ghc-old-locale" ,ghc-old-locale)))
684f29ab 1948 (home-page
612fddec 1949 "https://hackage.haskell.org/package/data-default-instances-old-locale")
684f29ab
SB
1950 (synopsis "Default instances for types in old-locale")
1951 (description "Provides Default instances for types from the old-locale
1952 package.")
3ac73271 1953 (license license:bsd-3)))
684f29ab 1954
eb6ae860
SB
1955(define-public ghc-dlist
1956 (package
1957 (name "ghc-dlist")
40a6d7a2 1958 (version "0.8.0.4")
eb6ae860
SB
1959 (source
1960 (origin
1961 (method url-fetch)
1962 (uri (string-append
612fddec 1963 "https://hackage.haskell.org/package/dlist/dlist-"
eb6ae860
SB
1964 version
1965 ".tar.gz"))
1966 (sha256
40a6d7a2 1967 (base32 "0yirrh0s6acjy9hhvf5fqg2d6q5y6gm9xs04v6w1imndh1xqdwdc"))))
eb6ae860 1968 (build-system haskell-build-system)
409ec7c0
PW
1969 (inputs
1970 `(("ghc-quickcheck" ,ghc-quickcheck)))
eb6ae860
SB
1971 (home-page "https://github.com/spl/dlist")
1972 (synopsis "Difference lists")
1973 (description
1974 "Difference lists are a list-like type supporting O(1) append. This is
1975particularly useful for efficient logging and pretty printing (e.g. with the
1976Writer monad), where list append quickly becomes too expensive.")
3ac73271 1977 (license license:bsd-3)))
eb6ae860 1978
05b964ae
SB
1979(define-public ghc-extensible-exceptions
1980 (package
1981 (name "ghc-extensible-exceptions")
1982 (version "0.1.1.4")
1983 (source
1984 (origin
1985 (method url-fetch)
612fddec 1986 (uri (string-append "https://hackage.haskell.org/package/"
05b964ae
SB
1987 "extensible-exceptions/extensible-exceptions-"
1988 version ".tar.gz"))
1989 (sha256
1990 (base32 "1273nqws9ij1rp1bsq5jc7k2jxpqa0svawdbim05lf302y0firbc"))))
1991 (build-system haskell-build-system)
612fddec 1992 (home-page "https://hackage.haskell.org/package/extensible-exceptions")
05b964ae
SB
1993 (synopsis "Extensible exceptions for Haskell")
1994 (description
1995 "This package provides extensible exceptions for both new and old
1996versions of GHC (i.e., < 6.10).")
3ac73271 1997 (license license:bsd-3)))
05b964ae 1998
c4a68dea
TS
1999(define-public ghc-echo
2000 (package
2001 (name "ghc-echo")
2002 (version "0.1.3")
2003 (source
2004 (origin
2005 (method url-fetch)
2006 (uri (string-append
2007 "https://hackage.haskell.org/package/echo/echo-"
2008 version ".tar.gz"))
2009 (sha256
2010 (base32
2011 "1vw5ykpwhr39wc0hhcgq3r8dh59zq6ib4zxbz1qd2wl21wqhfkvh"))))
2012 (build-system haskell-build-system)
2013 (arguments
2014 `(#:cabal-revision
2015 ("1" "0br8wfiybcw5hand4imiw0i5hacdmrax1dv8g95f35gazffbx42l")))
2016 (home-page "https://github.com/RyanGlScott/echo")
2017 (synopsis "Echo terminal input portably")
2018 (description "The @code{base} library exposes the @code{hGetEcho} and
2019@code{hSetEcho} functions for querying and setting echo status, but
2020unfortunately, neither function works with MinTTY consoles on Windows.
2021This library provides an alternative interface which works with both
2022MinTTY and other consoles.")
2023 (license license:bsd-3)))
2024
45e421ff
TS
2025(define-public ghc-hackage-security
2026 (package
2027 (name "ghc-hackage-security")
2028 (version "0.5.3.0")
2029 (source
2030 (origin
2031 (method url-fetch)
2032 (uri (string-append "https://hackage.haskell.org/package/"
2033 "hackage-security/hackage-security-"
2034 version ".tar.gz"))
2035 (sha256
2036 (base32
2037 "08bwawc7ramgdh54vcly2m9pvfchp0ahhs8117jajni6x4bnx66v"))))
2038 (build-system haskell-build-system)
2039 (arguments
2040 `(#:tests? #f)) ; Tests fail because of framework updates.
2041 (inputs
2042 `(("ghc-base16-bytestring" ,ghc-base16-bytestring)
2043 ("ghc-base64-bytestring" ,ghc-base64-bytestring)
2044 ("ghc-cryptohash-sha256" ,ghc-cryptohash-sha256)
2045 ("ghc-ed25519" ,ghc-ed25519)
2046 ("ghc-network" ,ghc-network)
2047 ("ghc-network-uri" ,ghc-network-uri)
2048 ("ghc-parsec" ,ghc-parsec)
2049 ("ghc-tar" ,ghc-tar)
2050 ("ghc-zlib" ,ghc-zlib)))
2051 (native-inputs
2052 `(("ghc-network-uri" ,ghc-network-uri)
2053 ("ghc-quickcheck" ,ghc-quickcheck)
2054 ("ghc-tar" ,ghc-tar)
2055 ("ghc-tasty" ,ghc-tasty)
2056 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
2057 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
2058 ("ghc-temporary" ,ghc-temporary)
2059 ("ghc-zlib" ,ghc-zlib)))
2060 (home-page "https://github.com/haskell/hackage-security")
2061 (synopsis "Hackage security library")
2062 (description "This Hackage security library provides both server and
2063client utilities for securing @uref{http://hackage.haskell.org/, the
2064Hackage package server}. It is based on
2065@uref{http://theupdateframework.com/, The Update Framework}, a set of
2066recommendations developed by security researchers at various universities
2067in the US as well as developers on the @uref{https://www.torproject.org/,
2068Tor project}.")
2069 (license license:bsd-3)))
2070
246cdfac
TS
2071(define-public ghc-resolv
2072 (package
2073 (name "ghc-resolv")
2074 (version "0.1.1.1")
2075 (source
2076 (origin
2077 (method url-fetch)
2078 (uri (string-append
2079 "https://hackage.haskell.org/package/resolv/resolv-"
2080 version ".tar.gz"))
2081 (sha256
2082 (base32
2083 "0wh7wj56l3f2bylz563g5g04a4nydj8acv60hpwa7k3mn792xca9"))))
2084 (build-system haskell-build-system)
2085 (arguments
2086 `(#:cabal-revision
2087 ("1" "15ay4n3x8c09cb3h4z1nan84yd3n9zpgvi6h114hk98bq10k8mma")
2088 #:tests? #f)) ; The required test frameworks are too old.
2089 (inputs
2090 `(("ghc-base16-bytestring" ,ghc-base16-bytestring)))
2091 (home-page "https://github.com/haskell/hackage-security")
2092 (synopsis "Domain Name Service (DNS) lookup via @code{libresolv}")
2093 (description "This package implements an API for accessing the
2094@uref{https://tools.ietf.org/html/rfc1035, Domain Name Service (DNS)}
2095resolver service via the standard @code{libresolv} system library (whose
2096API is often available directly via the standard @code{libc} C library) on
2097Unix systems.")
2098 (license license:gpl3)))
2099
df1db767
SB
2100(define-public cabal-install
2101 (package
2102 (name "cabal-install")
f707db29 2103 (version "2.2.0.0")
df1db767
SB
2104 (source
2105 (origin
2106 (method url-fetch)
2107 (uri (string-append
612fddec 2108 "https://hackage.haskell.org/package/cabal-install/cabal-install-"
df1db767
SB
2109 version
2110 ".tar.gz"))
2111 (sha256
f707db29 2112 (base32 "1nd3ch7qr4dpfxhgkcq2lnhvszx2kjgnn1kwb44vk9y5jgfs4mn8"))))
df1db767
SB
2113 (arguments `(#:tests? #f)) ; FIXME: testing libraries are missing.
2114 (build-system haskell-build-system)
2d47cee2 2115 (inputs
f707db29
TS
2116 `(("ghc-async" ,ghc-async)
2117 ("ghc-base16-bytestring" ,ghc-base16-bytestring)
2118 ("ghc-cryptohash-sha256" ,ghc-cryptohash-sha256)
2119 ("ghc-echo" ,ghc-echo)
2120 ("ghc-edit-distance" ,ghc-edit-distance)
2121 ("ghc-hackage-security" ,ghc-hackage-security)
2122 ("ghc-hashable" ,ghc-hashable)
2123 ("ghc-http" ,ghc-http)
df1db767
SB
2124 ("ghc-network-uri" ,ghc-network-uri)
2125 ("ghc-network" ,ghc-network)
2126 ("ghc-random" ,ghc-random)
f707db29 2127 ("ghc-resolv" ,ghc-resolv)
df1db767 2128 ("ghc-stm" ,ghc-stm)
f707db29 2129 ("ghc-tar" ,ghc-tar)
df1db767 2130 ("ghc-zlib" ,ghc-zlib)))
98b90194 2131 (home-page "https://www.haskell.org/cabal/")
df1db767
SB
2132 (synopsis "Command-line interface for Cabal and Hackage")
2133 (description
2134 "The cabal command-line program simplifies the process of managing
2135Haskell software by automating the fetching, configuration, compilation and
2136installation of Haskell libraries and programs.")
3ac73271 2137 (license license:bsd-3)))
df1db767 2138
3168796a
RW
2139(define-public cabal-doctest
2140 (package
2141 (name "cabal-doctest")
2142 (version "1.0.6")
2143 (source
2144 (origin
2145 (method url-fetch)
2146 (uri (string-append "https://hackage.haskell.org/package/"
2147 "cabal-doctest/cabal-doctest-"
2148 version ".tar.gz"))
2149 (sha256
2150 (base32
2151 "0bgd4jdmzxq5y465r4sf4jv2ix73yvblnr4c9wyazazafddamjny"))))
2152 (build-system haskell-build-system)
988dee48
TS
2153 (arguments
2154 `(#:cabal-revision
2155 ("1" "1bk85avgc93yvcggwbk01fy8nvg6753wgmaanhkry0hz55h7mpld")))
3168796a
RW
2156 (home-page "https://github.com/phadej/cabal-doctest")
2157 (synopsis "Setup.hs helper for running doctests")
2158 (description
2159 "To properly work, the @code{doctest} package needs plenty of
2160configuration. This library provides the common bits for writing custom
2161@file{Setup.hs} files.")
2162 (license license:bsd-3)))
2163
fe0fb890
TGR
2164(define-public ghc-parsec-numbers
2165 (package
2166 (name "ghc-parsec-numbers")
2167 (version "0.1.0")
2168 (source
2169 (origin
2170 (method url-fetch)
2171 (uri (string-append "https://hackage.haskell.org/package/"
2172 "parsec-numbers/parsec-numbers-" version ".tar.gz"))
2173 (sha256
2174 (base32 "1gzy4v3r02kvdxvgg1nj83mmb6aph2v4ilf9c7y6nbvi2x49l0bp"))))
2175 (build-system haskell-build-system)
2176 (inputs
2177 `(("ghc-parsec" ,ghc-parsec)))
95bf0780 2178 (home-page "https://hackage.haskell.org/package/parsec-numbers")
fe0fb890
TGR
2179 (synopsis "Utilities for parsing numbers from strings")
2180 (description
2181 "This package provides the number parsers without the need to use a large
2182(and unportable) token parser.")
2183 (license license:bsd-3)))
2184
0939da6e
FB
2185(define-public ghc-paths
2186 (package
2187 (name "ghc-paths")
2188 (version "0.1.0.9")
2189 (outputs '("out" "doc"))
2190 (source
2191 (origin
2192 (method url-fetch)
2193 (uri (string-append
612fddec 2194 "https://hackage.haskell.org/package/ghc-paths/ghc-paths-"
0939da6e
FB
2195 version
2196 ".tar.gz"))
2197 (sha256
2198 (base32
2199 "0ibrr1dxa35xx20cpp8jzgfak1rdmy344dfwq4vlq013c6w8z9mg"))))
2200 (build-system haskell-build-system)
2201 (home-page "https://github.com/simonmar/ghc-paths")
2202 (synopsis
2203 "Knowledge of GHC's installation directories")
2204 (description
2205 "Knowledge of GHC's installation directories.")
3ac73271 2206 (license license:bsd-3)))
0939da6e 2207
7fc7186e
SB
2208(define-public ghc-utf8-string
2209 (package
2210 (name "ghc-utf8-string")
ac426aa5 2211 (version "1.0.1.1")
7fc7186e
SB
2212 (source
2213 (origin
2214 (method url-fetch)
2215 (uri (string-append
612fddec 2216 "https://hackage.haskell.org/package/utf8-string/utf8-string-"
7fc7186e
SB
2217 version
2218 ".tar.gz"))
2219 (sha256
ac426aa5 2220 (base32 "0h7imvxkahiy8pzr8cpsimifdfvv18lizrb33k6mnq70rcx9w2zv"))))
7fc7186e 2221 (build-system haskell-build-system)
4fe3ce82 2222 (arguments
c325dde2
TS
2223 `(#:cabal-revision
2224 ("3" "02vhj5gykkqa2dyn7s6gn8is1b5fdn9xcqqvlls268g7cpv6rk38")))
612fddec 2225 (home-page "https://github.com/glguy/utf8-string/")
7fc7186e
SB
2226 (synopsis "Support for reading and writing UTF8 Strings")
2227 (description
ac426aa5 2228 "A UTF8 layer for Strings. The utf8-string package provides operations
7fc7186e
SB
2229for encoding UTF8 strings to Word8 lists and back, and for reading and writing
2230UTF8 without truncation.")
3ac73271 2231 (license license:bsd-3)))
7fc7186e 2232
a45a15df
PW
2233(define-public ghc-setenv
2234 (package
2235 (name "ghc-setenv")
2236 (version "0.1.1.3")
2237 (source
2238 (origin
2239 (method url-fetch)
2240 (uri (string-append
612fddec 2241 "https://hackage.haskell.org/package/setenv/setenv-"
a45a15df
PW
2242 version
2243 ".tar.gz"))
2244 (sha256
2245 (base32
2246 "0cnbgrvb9byyahb37zlqrj05rj25v190crgcw8wmlgf0mwwxyn73"))))
2247 (build-system haskell-build-system)
612fddec 2248 (home-page "https://hackage.haskell.org/package/setenv")
a45a15df
PW
2249 (synopsis "Library for setting environment variables")
2250 (description "This package provides a Haskell library for setting
2251environment variables.")
3ac73271 2252 (license license:expat)))
a45a15df 2253
c7bdb413
MM
2254(define-public ghc-setlocale
2255 (package
2256 (name "ghc-setlocale")
42f2732e 2257 (version "1.0.0.8")
c7bdb413
MM
2258 (source (origin
2259 (method url-fetch)
2260 (uri (string-append
2261 "https://hackage.haskell.org/package/setlocale-"
2262 version "/setlocale-" version ".tar.gz"))
2263 (sha256
2264 (base32
42f2732e 2265 "0sdrsmkhw08483d73ysgm2926fdbhii61br03lqpqw0lfzj4ilbd"))))
c7bdb413
MM
2266 (build-system haskell-build-system)
2267 (home-page "https://hackage.haskell.org/package/setlocale")
2268 (synopsis "Haskell bindings to setlocale")
2269 (description "This package provides Haskell bindings to the
2270@code{setlocale} C function.")
2271 (license license:bsd-3)))
2272
720fb41c
SB
2273(define-public ghc-x11
2274 (package
2275 (name "ghc-x11")
d09b2ad4 2276 (version "1.9")
720fb41c
SB
2277 (source
2278 (origin
2279 (method url-fetch)
612fddec 2280 (uri (string-append "https://hackage.haskell.org/package/X11/"
720fb41c
SB
2281 "X11-" version ".tar.gz"))
2282 (sha256
d09b2ad4 2283 (base32 "1f8dy6ckkyvpcv7zlniyv01cqjb9lgqscm8pml58cvwc7n38w4qh"))))
720fb41c
SB
2284 (build-system haskell-build-system)
2285 (inputs
2286 `(("libx11" ,libx11)
2287 ("libxrandr" ,libxrandr)
2288 ("libxinerama" ,libxinerama)
2d47cee2
RW
2289 ("libxscrnsaver" ,libxscrnsaver)
2290 ("ghc-data-default" ,ghc-data-default)))
720fb41c
SB
2291 (home-page "https://github.com/haskell-pkg-janitors/X11")
2292 (synopsis "Bindings to the X11 graphics library")
2293 (description
2294 "This package provides Haskell bindings to the X11 graphics library. The
2295bindings are a direct translation of the C bindings.")
3ac73271 2296 (license license:bsd-3)))
720fb41c 2297
c34507d6
SB
2298(define-public ghc-x11-xft
2299 (package
2300 (name "ghc-x11-xft")
2301 (version "0.3.1")
2302 (source
2303 (origin
2304 (method url-fetch)
612fddec 2305 (uri (string-append "https://hackage.haskell.org/package/X11-xft/"
c34507d6
SB
2306 "X11-xft-" version ".tar.gz"))
2307 (sha256
2308 (base32 "1lgqb0s2qfwwgbvwxhjbi23rbwamzdi0l0slfr20c3jpcbp3zfjf"))))
c34507d6 2309 (inputs
2d47cee2
RW
2310 `(("ghc-x11" ,ghc-x11)
2311 ("ghc-utf8-string" ,ghc-utf8-string)
2312 ("libx11" ,libx11)
c34507d6 2313 ("libxft" ,libxft)
6a6db57f 2314 ("xorgproto" ,xorgproto)))
c34507d6
SB
2315 (native-inputs
2316 `(("pkg-config" ,pkg-config)))
2317 (build-system haskell-build-system)
612fddec 2318 (home-page "https://hackage.haskell.org/package/X11-xft")
c34507d6
SB
2319 (synopsis "Bindings to Xft")
2320 (description
2321 "Bindings to the Xft, X Free Type interface library, and some Xrender
2322parts.")
3ac73271 2323 (license license:lgpl2.1)))
c34507d6 2324
318f9d88
PW
2325(define-public ghc-stringbuilder
2326 (package
2327 (name "ghc-stringbuilder")
4112a2e7 2328 (version "0.5.1")
318f9d88
PW
2329 (source
2330 (origin
2331 (method url-fetch)
2332 (uri (string-append
612fddec 2333 "https://hackage.haskell.org/package/stringbuilder/stringbuilder-"
318f9d88
PW
2334 version
2335 ".tar.gz"))
2336 (sha256
2337 (base32
4112a2e7 2338 "1fh3csx1wcssn8xyvl4ip4aprh9l4qyz2kk8mgjvqvc0vb2bsy6q"))))
318f9d88
PW
2339 (build-system haskell-build-system)
2340 (arguments `(#:tests? #f)) ; FIXME: circular dependencies with tests
2341 ; enabled
612fddec 2342 (home-page "https://hackage.haskell.org/package/stringbuilder")
318f9d88
PW
2343 (synopsis "Writer monad for multi-line string literals")
2344 (description "This package provides a writer monad for multi-line string
2345literals.")
3ac73271 2346 (license license:expat)))
318f9d88 2347
3d3613d5
FB
2348(define-public ghc-zlib
2349 (package
2350 (name "ghc-zlib")
d3c7e708 2351 (version "0.6.2")
3d3613d5
FB
2352 (outputs '("out" "doc"))
2353 (source
2354 (origin
2355 (method url-fetch)
2356 (uri (string-append
612fddec 2357 "https://hackage.haskell.org/package/zlib/zlib-"
3d3613d5
FB
2358 version
2359 ".tar.gz"))
2360 (sha256
2361 (base32
d3c7e708 2362 "1vbzf0awb6zb456xf48za1kl22018646cfzq4frvxgb9ay97vk0d"))))
3d3613d5 2363 (build-system haskell-build-system)
e09ef4fc
TS
2364 (arguments
2365 `(#:phases
2366 (modify-phases %standard-phases
2367 (add-before 'configure 'strip-test-framework-constraints
2368 (lambda _
2369 (substitute* "zlib.cabal"
2370 (("tasty >= 0\\.8 && < 0\\.12") "tasty")
2371 (("tasty-hunit >= 0\\.8 && < 0\\.10") "tasty-hunit")
2372 (("tasty-quickcheck == 0\\.8\\.\\*") "tasty-quickcheck")))))))
3d3613d5 2373 (inputs `(("zlib" ,zlib)))
906a396b
AI
2374 (native-inputs
2375 `(("ghc-quickcheck" ,ghc-quickcheck)
2376 ("ghc-tasty" ,ghc-tasty)
2377 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
2378 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
612fddec 2379 (home-page "https://hackage.haskell.org/package/zlib")
3d3613d5
FB
2380 (synopsis
2381 "Compression and decompression in the gzip and zlib formats")
2382 (description
2383 "This package provides a pure interface for compressing and decompressing
36a4366d
EF
2384streams of data represented as lazy @code{ByteString}s. It uses the zlib C
2385library so it has high performance. It supports the @code{zlib}, @code{gzip}
2386and @code{raw} compression formats. It provides a convenient high level API
2387suitable for most tasks and for the few cases where more control is needed it
2388provides access to the full zlib feature set.")
3ac73271 2389 (license license:bsd-3)))
3d3613d5 2390
a39f3936
FB
2391(define-public ghc-stm
2392 (package
2393 (name "ghc-stm")
567bf5b9 2394 (version "2.4.5.0")
a39f3936
FB
2395 (outputs '("out" "doc"))
2396 (source
2397 (origin
2398 (method url-fetch)
2399 (uri (string-append
612fddec 2400 "https://hackage.haskell.org/package/stm/stm-"
a39f3936
FB
2401 version
2402 ".tar.gz"))
2403 (sha256
2404 (base32
567bf5b9 2405 "19sr11a0hqikhvf561b38phz6k3zg9s157a0f5ffvghk7wcdpmri"))))
a39f3936 2406 (build-system haskell-build-system)
612fddec 2407 (home-page "https://hackage.haskell.org/package/stm")
a39f3936
FB
2408 (synopsis "Software Transactional Memory")
2409 (description
567bf5b9
RW
2410 "Software Transactional Memory, or STM, is an abstraction for concurrent
2411communication. The main benefits of STM are composability and modularity.
2412That is, using STM you can write concurrent abstractions that can be easily
2413composed with any other abstraction built using STM, without exposing the
2414details of how your abstraction ensures safety. This is typically not the
2415case with other forms of concurrent communication, such as locks or
2416@code{MVar}s.")
3ac73271 2417 (license license:bsd-3)))
a39f3936 2418
e916e211
FB
2419(define-public ghc-parallel
2420 (package
2421 (name "ghc-parallel")
62f97b12 2422 (version "3.2.2.0")
e916e211
FB
2423 (outputs '("out" "doc"))
2424 (source
2425 (origin
2426 (method url-fetch)
2427 (uri (string-append
612fddec 2428 "https://hackage.haskell.org/package/parallel/parallel-"
e916e211
FB
2429 version
2430 ".tar.gz"))
2431 (sha256
2432 (base32
62f97b12 2433 "1xkfi96w6yfpppd0nw1rnszdxmvifwzm699ilv6332ra3akm610p"))))
e916e211 2434 (build-system haskell-build-system)
612fddec 2435 (home-page "https://hackage.haskell.org/package/parallel")
e916e211
FB
2436 (synopsis "Parallel programming library")
2437 (description
2438 "This package provides a library for parallel programming.")
3ac73271 2439 (license license:bsd-3)))
e916e211 2440
6950a450
TS
2441(define-public ghc-safesemaphore
2442 (package
2443 (name "ghc-safesemaphore")
2444 (version "0.10.1")
2445 (source
2446 (origin
2447 (method url-fetch)
2448 (uri (string-append "https://hackage.haskell.org/package/"
2449 "SafeSemaphore/SafeSemaphore-" version ".tar.gz"))
2450 (sha256
2451 (base32
2452 "0rpg9j6fy70i0b9dkrip9d6wim0nac0snp7qzbhykjkqlcvvgr91"))))
2453 (build-system haskell-build-system)
2454 (inputs
2455 `(("ghc-stm" ,ghc-stm)))
2456 (native-inputs
2457 `(("ghc-hunit" ,ghc-hunit)))
2458 (home-page "https://github.com/ChrisKuklewicz/SafeSemaphore")
2459 (synopsis "Exception safe semaphores")
2460 (description "This library provides exception safe semaphores that can be
2461used in place of @code{QSem}, @code{QSemN}, and @code{SampleVar}, all of which
2462are not exception safe and can be broken by @code{killThread}.")
2463 (license license:bsd-3)))
2464
deb36de0
FB
2465(define-public ghc-text
2466 (package
2467 (name "ghc-text")
44f717ef 2468 (version "1.2.3.0")
deb36de0
FB
2469 (outputs '("out" "doc"))
2470 (source
2471 (origin
2472 (method url-fetch)
2473 (uri (string-append
612fddec 2474 "https://hackage.haskell.org/package/text/text-"
deb36de0
FB
2475 version
2476 ".tar.gz"))
2477 (sha256
2478 (base32
44f717ef 2479 "06iir7q99rnffzxi8gagn8w1k9m49368sbidgz634fv1gxib3q10"))))
deb36de0 2480 (build-system haskell-build-system)
5e3840e2
RW
2481 ;; The test dependencies depend on ghc-text: ghc-test-framework -> ghc-xml -> ghc-text
2482 (arguments `(#:tests? #f))
2483 (inputs
2484 `(("ghc-random" ,ghc-random)))
deb36de0 2485 (home-page "https://github.com/bos/text")
1eefe4a8 2486 (synopsis "Efficient packed Unicode text type library")
deb36de0
FB
2487 (description
2488 "An efficient packed, immutable Unicode text type (both strict and
2489lazy), with a powerful loop fusion optimization framework.
2490
36a4366d 2491The @code{Text} type represents Unicode character strings, in a time and
1eefe4a8 2492space-efficient manner. This package provides text processing
deb36de0
FB
2493capabilities that are optimized for performance critical use, both
2494in terms of large data quantities and high speed.")
3ac73271 2495 (license license:bsd-3)))
deb36de0 2496
f941a52a
RW
2497(define-public ghc-text-binary
2498 (package
2499 (name "ghc-text-binary")
2500 (version "0.2.1.1")
2501 (source
2502 (origin
2503 (method url-fetch)
2504 (uri (string-append "https://hackage.haskell.org/package/"
2505 "text-binary/text-binary-"
2506 version ".tar.gz"))
2507 (sha256
2508 (base32
2509 "18gl10pwg3qwsk0za3c70j4n6a9129wwf1b7d3a461h816yv55xn"))))
2510 (build-system haskell-build-system)
2511 (inputs `(("ghc-text" ,ghc-text)))
2512 (home-page "https://github.com/kawu/text-binary")
2513 (synopsis "Binary instances for text types")
2514 (description
2515 "This package provides a compatibility layer providing @code{Binary}
2516instances for strict and lazy text types for versions older than 1.2.1 of the
2517text package.")
2518 (license license:bsd-2)))
2519
f99a57dc
AV
2520(define-public ghc-strict
2521 (package
2522 (name "ghc-strict")
2523 (version "0.3.2")
2524 (source
2525 (origin
2526 (method url-fetch)
2527 (uri (string-append "https://hackage.haskell.org/package/strict/strict-"
2528 version ".tar.gz"))
2529 (sha256
2530 (base32 "08cjajqz9h47fkq98mlf3rc8n5ghbmnmgn8pfsl3bdldjdkmmlrc"))))
2531 (build-system haskell-build-system)
2532 (home-page "https://hackage.haskell.org/package/strict")
2533 (synopsis "Strict data types and String IO")
2534 (description
2535 "This package provides strict versions of some standard Haskell data
2536types, such as pairs, @code{Maybe} and @code{Either}. It also contains strict
2537IO operations.")
2538 (license license:bsd-3)))
2539
775be802
FB
2540(define-public ghc-hashable
2541 (package
2542 (name "ghc-hashable")
c496fb98 2543 (version "1.2.7.0")
775be802
FB
2544 (outputs '("out" "doc"))
2545 (source
2546 (origin
2547 (method url-fetch)
2548 (uri (string-append
612fddec 2549 "https://hackage.haskell.org/package/hashable/hashable-"
775be802
FB
2550 version
2551 ".tar.gz"))
2552 (sha256
2553 (base32
c496fb98 2554 "1gra8gq3kb7b2sd845h55yxlrfqx3ii004c6vjhga8v0b30fzdgc"))))
775be802 2555 (build-system haskell-build-system)
2d47cee2 2556 (inputs
c165ff9c
RW
2557 `(("ghc-text" ,ghc-text)
2558 ("ghc-random" ,ghc-random)))
2559 (native-inputs
2560 `(("ghc-test-framework" ,ghc-test-framework)
2561 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
2562 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)
2563 ("ghc-hunit" ,ghc-hunit)
2564 ("ghc-quickcheck" ,ghc-quickcheck)))
612fddec 2565 (home-page "https://github.com/tibbe/hashable")
c165ff9c 2566 (synopsis "Class for types that can be converted to a hash value")
775be802 2567 (description
c165ff9c 2568 "This package defines a class, @code{Hashable}, for types that can be
775be802
FB
2569converted to a hash value. This class exists for the benefit of hashing-based
2570data structures. The package provides instances for basic types and a way to
2571combine hash values.")
3ac73271 2572 (license license:bsd-3)))
775be802 2573
bc8bda50
TS
2574(define-public ghc-hashable-bootstrap
2575 (package
2576 (inherit ghc-hashable)
2577 (name "ghc-hashable-bootstrap")
2578 (arguments `(#:tests? #f))
2579 (native-inputs '())
2580 (properties '((hidden? #t)))))
2581
82674ed9
RW
2582(define-public ghc-hashable-time
2583 (package
2584 (name "ghc-hashable-time")
2585 (version "0.2.0.1")
2586 (source
2587 (origin
2588 (method url-fetch)
2589 (uri (string-append
2590 "https://hackage.haskell.org/package/hashable-time/hashable-time-"
2591 version
2592 ".tar.gz"))
2593 (sha256
2594 (base32
2595 "0k932nyd08l3xxbh2g3n76py2f4kd9yw4s5a065vjz0xp6wjnxdm"))))
2596 (build-system haskell-build-system)
75c07ef5
TS
2597 (arguments
2598 `(#:cabal-revision
2599 ("1" "0rv40xkg3gj8jnqsry1gq3f5s5la6d5arg8fzkirnwdpcgha1as6")))
82674ed9
RW
2600 (inputs `(("ghc-hashable" ,ghc-hashable)))
2601 (home-page "http://hackage.haskell.org/package/hashable-time")
2602 (synopsis "Hashable instances for Data.Time")
2603 (description
2604 "This package provides @code{Hashable} instances for types in
2605@code{Data.Time}.")
2606 (license license:bsd-3)))
2607
ca48a345
AV
2608(define-public ghc-data-hash
2609 (package
2610 (name "ghc-data-hash")
2611 (version "0.2.0.1")
2612 (source
2613 (origin
2614 (method url-fetch)
2615 (uri (string-append "https://hackage.haskell.org/package/data-hash"
2616 "/data-hash-" version ".tar.gz"))
2617 (sha256
2618 (base32 "1ghbqvc48gf9p8wiy71hdpaj7by3b9cw6wgwi3qqz8iw054xs5wi"))))
2619 (build-system haskell-build-system)
2620 (inputs
2621 `(("ghc-quickcheck" ,ghc-quickcheck)
2622 ("ghc-test-framework" ,ghc-test-framework)
2623 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
2624 (home-page "https://hackage.haskell.org/package/data-hash")
2625 (synopsis "Combinators for building fast hashing functions")
2626 (description
2627 "This package provides combinators for building fast hashing functions.
2628It includes hashing functions for all basic Haskell98 types.")
2629 (license license:bsd-3)))
2630
a623fd7f
AV
2631(define-public ghc-murmur-hash
2632 (package
2633 (name "ghc-murmur-hash")
2634 (version "0.1.0.9")
2635 (source
2636 (origin
2637 (method url-fetch)
2638 (uri (string-append "https://hackage.haskell.org/package/murmur-hash"
2639 "/murmur-hash-" version ".tar.gz"))
2640 (sha256
2641 (base32 "1bb58kfnzvx3mpc0rc0dhqc1fk36nm8prd6gvf20gk6lxaadpfc9"))))
2642 (build-system haskell-build-system)
2643 (home-page "https://github.com/nominolo/murmur-hash")
2644 (synopsis "MurmurHash2 implementation for Haskell")
2645 (description
2646 "This package provides an implementation of MurmurHash2, a good, fast,
2647general-purpose, non-cryptographic hashing function. See
2648@url{https://sites.google.com/site/murmurhash/} for details. This
2649implementation is pure Haskell, so it might be a bit slower than a C FFI
2650binding.")
2651 (license license:bsd-3)))
2652
df596b94
FB
2653(define-public ghc-random
2654 (package
2655 (name "ghc-random")
2656 (version "1.1")
2657 (outputs '("out" "doc"))
2658 (source
2659 (origin
2660 (method url-fetch)
2661 (uri (string-append
612fddec 2662 "https://hackage.haskell.org/package/random/random-"
df596b94
FB
2663 version
2664 ".tar.gz"))
2665 (sha256
2666 (base32 "0nis3lbkp8vfx8pkr6v7b7kr5m334bzb0fk9vxqklnp2aw8a865p"))))
2667 (build-system haskell-build-system)
612fddec 2668 (home-page "https://hackage.haskell.org/package/random")
df596b94
FB
2669 (synopsis "Random number library")
2670 (description "This package provides a basic random number generation
2671library, including the ability to split random number generators.")
3ac73271 2672 (license license:bsd-3)))
4af803a7
FB
2673
2674(define-public ghc-primitive
2675 (package
2676 (name "ghc-primitive")
49e5432b 2677 (version "0.6.3.0")
4af803a7
FB
2678 (outputs '("out" "doc"))
2679 (source
2680 (origin
2681 (method url-fetch)
2682 (uri (string-append
612fddec 2683 "https://hackage.haskell.org/package/primitive/primitive-"
4af803a7
FB
2684 version
2685 ".tar.gz"))
2686 (sha256
2687 (base32
49e5432b 2688 "0mcmbnj08wd6zfwn7xk6zf5hy5zwbla5v78pw0dpymqg9s0gzpnd"))))
4af803a7
FB
2689 (build-system haskell-build-system)
2690 (home-page
2691 "https://github.com/haskell/primitive")
2692 (synopsis "Primitive memory-related operations")
2693 (description
2694 "This package provides various primitive memory-related operations.")
3ac73271 2695 (license license:bsd-3)))
4af803a7 2696
c272160a
FB
2697(define-public ghc-tf-random
2698 (package
2699 (name "ghc-tf-random")
2700 (version "0.5")
2701 (outputs '("out" "doc"))
2702 (source
2703 (origin
2704 (method url-fetch)
2705 (uri (string-append
612fddec 2706 "https://hackage.haskell.org/package/tf-random/tf-random-"
c272160a
FB
2707 version
2708 ".tar.gz"))
2709 (sha256
2710 (base32 "0445r2nns6009fmq0xbfpyv7jpzwv0snccjdg7hwj4xk4z0cwc1f"))))
2711 (build-system haskell-build-system)
2d47cee2 2712 (inputs
c272160a
FB
2713 `(("ghc-primitive" ,ghc-primitive)
2714 ("ghc-random" ,ghc-random)))
612fddec 2715 (home-page "https://hackage.haskell.org/package/tf-random")
c272160a
FB
2716 (synopsis "High-quality splittable pseudorandom number generator")
2717 (description "This package contains an implementation of a high-quality
2718splittable pseudorandom number generator. The generator is based on a
2719cryptographic hash function built on top of the ThreeFish block cipher. See
2720the paper \"Splittable Pseudorandom Number Generators Using Cryptographic
2721Hashing\" by Claessen, Pałka for details and the rationale of the design.")
3ac73271 2722 (license license:bsd-3)))
c272160a 2723
c27f3ace
PW
2724(define-public ghc-transformers-base
2725 (package
2726 (name "ghc-transformers-base")
f46cbe1e 2727 (version "0.4.5.2")
c27f3ace
PW
2728 (source
2729 (origin
2730 (method url-fetch)
2731 (uri (string-append
612fddec 2732 "https://hackage.haskell.org/package/transformers-base/transformers-base-"
c27f3ace
PW
2733 version
2734 ".tar.gz"))
2735 (sha256
2736 (base32
f46cbe1e 2737 "1s256bi0yh0x2hp2gwd30f3mg1cv53zz397dv1yhfsnfzmihrj6h"))))
c27f3ace 2738 (build-system haskell-build-system)
c27f3ace 2739 (inputs
2d47cee2
RW
2740 `(("ghc-stm" ,ghc-stm)
2741 ("ghc-transformers-compat" ,ghc-transformers-compat)))
c27f3ace 2742 (home-page
612fddec 2743 "https://hackage.haskell.org/package/transformers-compat")
c27f3ace
PW
2744 (synopsis
2745 "Backported transformer library")
2746 (description
2747 "Backported versions of types that were added to transformers in
2748transformers 0.3 and 0.4 for users who need strict transformers 0.2 or 0.3
2749compatibility to run on old versions of the platform.")
3ac73271 2750 (license license:bsd-3)))
c27f3ace 2751
379a5ad5
PW
2752(define-public ghc-transformers-compat
2753 (package
2754 (name "ghc-transformers-compat")
d7f14885 2755 (version "0.6.2")
379a5ad5
PW
2756 (source
2757 (origin
2758 (method url-fetch)
2759 (uri (string-append
612fddec 2760 "https://hackage.haskell.org/package/transformers-compat"
379a5ad5
PW
2761 "/transformers-compat-" version ".tar.gz"))
2762 (sha256
2763 (base32
d7f14885 2764 "1gp4a8kvniwgm8947ghb4iwv4b7wd6ry4kvv4nfnym4agf5j41nw"))))
379a5ad5 2765 (build-system haskell-build-system)
612fddec 2766 (home-page "https://github.com/ekmett/transformers-compat/")
379a5ad5
PW
2767 (synopsis "Small compatibility shim between transformers 0.3 and 0.4")
2768 (description "This package includes backported versions of types that were
2769added to transformers in transformers 0.3 and 0.4 for users who need strict
2770transformers 0.2 or 0.3 compatibility to run on old versions of the platform,
2771but also need those types.")
3ac73271 2772 (license license:bsd-3)))
379a5ad5 2773
5ef40cb2
PW
2774(define-public ghc-unix-time
2775 (package
2776 (name "ghc-unix-time")
0588525b 2777 (version "0.3.8")
5ef40cb2
PW
2778 (source
2779 (origin
2780 (method url-fetch)
2781 (uri (string-append
612fddec 2782 "https://hackage.haskell.org/package/unix-time/unix-time-"
5ef40cb2
PW
2783 version
2784 ".tar.gz"))
2785 (sha256
2786 (base32
0588525b 2787 "051slgpid5cxiaw203ky0ql3823h28fcjs08axkzd4265wrvv8fw"))))
5ef40cb2
PW
2788 (build-system haskell-build-system)
2789 (arguments
fd59d2ee
PW
2790 `(#:tests? #f)) ; FIXME: Test fails with "System.Time not found". This
2791 ; is weird, that should be provided by GHC 7.10.2.
2d47cee2 2792 (inputs
5ef40cb2
PW
2793 `(("ghc-old-time" ,ghc-old-time)
2794 ("ghc-old-locale" ,ghc-old-locale)))
612fddec 2795 (home-page "https://hackage.haskell.org/package/unix-time")
5ef40cb2
PW
2796 (synopsis "Unix time parser/formatter and utilities")
2797 (description "This library provides fast parsing and formatting utilities
2798for Unix time in Haskell.")
3ac73271 2799 (license license:bsd-3)))
5ef40cb2 2800
801cc88d
PW
2801(define-public ghc-unix-compat
2802 (package
2803 (name "ghc-unix-compat")
32a9a380 2804 (version "0.5.1")
801cc88d
PW
2805 (source
2806 (origin
2807 (method url-fetch)
2808 (uri (string-append
612fddec 2809 "https://hackage.haskell.org/package/unix-compat/unix-compat-"
801cc88d
PW
2810 version
2811 ".tar.gz"))
2812 (sha256
2813 (base32
32a9a380 2814 "0llwl7rp63fy2ychwdclz1afj45pbin5pfl01dvn6rwhvmwhr7d3"))))
801cc88d
PW
2815 (build-system haskell-build-system)
2816 (home-page
612fddec 2817 "https://github.com/jystic/unix-compat")
801cc88d
PW
2818 (synopsis "Portable POSIX-compatibility layer")
2819 (description
2820 "This package provides portable implementations of parts of the unix
2821package. This package re-exports the unix package when available. When it
2822isn't available, portable implementations are used.")
3ac73271 2823 (license license:bsd-3)))
801cc88d 2824
b6bfa2ca
LC
2825(define-public ghc-indents
2826 (package
2827 (name "ghc-indents")
ddfb799e 2828 (version "0.5.0.0")
b6bfa2ca
LC
2829 (source (origin
2830 (method url-fetch)
2831 (uri (string-append
612fddec 2832 "https://hackage.haskell.org/package/indents/indents-"
b6bfa2ca
LC
2833 version ".tar.gz"))
2834 (sha256
2835 (base32
ddfb799e 2836 "1ly3v41jacc6lrsvg4j3m5a6zs90gr8dyif5m6bf34hj1k5cgg0n"))))
b6bfa2ca 2837 (build-system haskell-build-system)
c95908bb
RW
2838 ;; This package needs an older version of tasty.
2839 (arguments '(#:tests? #f))
b6bfa2ca
LC
2840 (inputs
2841 `(("ghc-parsec" ,ghc-parsec)
f54f0475 2842 ("ghc-concatenative" ,ghc-concatenative)))
c95908bb
RW
2843 (native-inputs
2844 `(("ghc-tasty" ,ghc-tasty)
2845 ("ghc-tasty-hunit" ,ghc-tasty-hunit)))
b6bfa2ca
LC
2846 (home-page "http://patch-tag.com/r/salazar/indents")
2847 (synopsis "Indentation sensitive parser-combinators for parsec")
2848 (description
2849 "This library provides functions for use in parsing indentation sensitive
2850contexts. It parses blocks of lines all indented to the same level as well as
2851lines continued at an indented level below.")
2852 (license license:bsd-3)))
2853
685502dc
PW
2854(define-public ghc-iproute
2855 (package
2856 (name "ghc-iproute")
b9a63986 2857 (version "1.7.5")
685502dc
PW
2858 (source
2859 (origin
2860 (method url-fetch)
2861 (uri (string-append
612fddec 2862 "https://hackage.haskell.org/package/iproute/iproute-"
685502dc
PW
2863 version
2864 ".tar.gz"))
2865 (sha256
2866 (base32
b9a63986 2867 "1vw1nm3s8vz1hqnjnqd3wh5rr4q3m2r4izn5ynhf93h9185qwqzd"))))
685502dc
PW
2868 (build-system haskell-build-system)
2869 (arguments `(#:tests? #f)) ; FIXME: Tests cannot find System.ByteOrder,
2870 ; exported by ghc-byteorder. Doctest issue.
685502dc 2871 (inputs
2d47cee2
RW
2872 `(("ghc-appar" ,ghc-appar)
2873 ("ghc-byteorder" ,ghc-byteorder)
2874 ("ghc-network" ,ghc-network)
685502dc 2875 ("ghc-safe" ,ghc-safe)))
e427a0e4 2876 (home-page "https://www.mew.org/~kazu/proj/iproute/")
685502dc
PW
2877 (synopsis "IP routing table")
2878 (description "IP Routing Table is a tree of IP ranges to search one of
2879them on the longest match base. It is a kind of TRIE with one way branching
2880removed. Both IPv4 and IPv6 are supported.")
3ac73271 2881 (license license:bsd-3)))
685502dc 2882
a7101996
TGR
2883(define-public ghc-iwlib
2884 (package
2885 (name "ghc-iwlib")
2886 (version "0.1.0")
2887 (source
2888 (origin
2889 (method url-fetch)
2890 (uri (string-append "https://hackage.haskell.org/package/iwlib/iwlib-"
2891 version ".tar.gz"))
2892 (sha256
2893 (base32 "0khmfwql4vwj55idsxmhjhrbqzfir3g9wm5lmpvnf77mm95cfpdz"))))
2894 (build-system haskell-build-system)
2895 (inputs
2896 `(("wireless-tools" ,wireless-tools)))
2897 (home-page "https://github.com/jaor/iwlib")
2898 (synopsis "Haskell binding to the iw wireless networking library")
2899 (description
2900 "IWlib is a thin Haskell binding to the iw C library. It provides
2901information about the current wireless network connections, and adapters on
2902supported systems.")
2903 (license license:bsd-3)))
2904
9d5f0399
PW
2905(define-public ghc-regex-base
2906 (package
2907 (name "ghc-regex-base")
2908 (version "0.93.2")
2909 (source
2910 (origin
2911 (method url-fetch)
2912 (uri (string-append
612fddec 2913 "https://hackage.haskell.org/package/regex-base/regex-base-"
9d5f0399
PW
2914 version
2915 ".tar.gz"))
2916 (sha256
2917 (base32
2918 "0y1j4h2pg12c853nzmczs263di7xkkmlnsq5dlp5wgbgl49mgp10"))))
2919 (build-system haskell-build-system)
9d5f0399 2920 (home-page
3b3b60d0 2921 "https://sourceforge.net/projects/lazy-regex")
9d5f0399
PW
2922 (synopsis "Replaces/Enhances Text.Regex")
2923 (description "@code{Text.Regex.Base} provides the interface API for
2924regex-posix, regex-pcre, regex-parsec, regex-tdfa, regex-dfa.")
3ac73271 2925 (license license:bsd-3)))
9d5f0399 2926
e422279b
PW
2927(define-public ghc-regex-posix
2928 (package
2929 (name "ghc-regex-posix")
2930 (version "0.95.2")
2931 (source
2932 (origin
2933 (method url-fetch)
2934 (uri (string-append
612fddec 2935 "https://hackage.haskell.org/package/regex-posix/regex-posix-"
e422279b
PW
2936 version
2937 ".tar.gz"))
2938 (sha256
2939 (base32
2940 "0gkhzhj8nvfn1ija31c7xnl6p0gadwii9ihyp219ck2arlhrj0an"))))
2941 (build-system haskell-build-system)
2d47cee2 2942 (inputs
0eeaa169 2943 `(("ghc-regex-base" ,ghc-regex-base)))
3b3b60d0 2944 (home-page "https://sourceforge.net/projects/lazy-regex")
e422279b
PW
2945 (synopsis "POSIX regular expressions for Haskell")
2946 (description "This library provides the POSIX regex backend used by the
2947Haskell library @code{regex-base}.")
3ac73271 2948 (license license:bsd-3)))
e422279b 2949
25d51164
PW
2950(define-public ghc-regex-compat
2951 (package
2952 (name "ghc-regex-compat")
2953 (version "0.95.1")
2954 (source
2955 (origin
2956 (method url-fetch)
2957 (uri (string-append
612fddec 2958 "https://hackage.haskell.org/package/regex-compat/regex-compat-"
25d51164
PW
2959 version
2960 ".tar.gz"))
2961 (sha256
2962 (base32
2963 "0fwmima3f04p9y4h3c23493n1xj629ia2dxaisqm6rynljjv2z6m"))))
2964 (build-system haskell-build-system)
2965 (inputs
2966 `(("ghc-regex-base" ,ghc-regex-base)
2967 ("ghc-regex-posix" ,ghc-regex-posix)))
3b3b60d0 2968 (home-page "https://sourceforge.net/projects/lazy-regex")
25d51164
PW
2969 (synopsis "Replaces/Enhances Text.Regex")
2970 (description "This library provides one module layer over
2971@code{regex-posix} to replace @code{Text.Regex}.")
3ac73271 2972 (license license:bsd-3)))
25d51164 2973
34128d2b
PW
2974(define-public ghc-regex-tdfa-rc
2975 (package
2976 (name "ghc-regex-tdfa-rc")
2977 (version "1.1.8.3")
2978 (source
2979 (origin
2980 (method url-fetch)
2981 (uri (string-append
612fddec 2982 "https://hackage.haskell.org/package/regex-tdfa-rc/regex-tdfa-rc-"
34128d2b
PW
2983 version
2984 ".tar.gz"))
2985 (sha256
2986 (base32
2987 "1vi11i23gkkjg6193ak90g55akj69bhahy542frkwb68haky4pp3"))))
2988 (build-system haskell-build-system)
34128d2b 2989 (inputs
2d47cee2 2990 `(("ghc-regex-base" ,ghc-regex-base)
f54f0475 2991 ("ghc-parsec" ,ghc-parsec)))
34128d2b 2992 (home-page
612fddec 2993 "https://hackage.haskell.org/package/regex-tdfa")
34128d2b
PW
2994 (synopsis "Tagged DFA regex engine for Haskell")
2995 (description "A new all-Haskell \"tagged\" DFA regex engine, inspired by
2996@code{libtre} (fork by Roman Cheplyaka).")
3ac73271 2997 (license license:bsd-3)))
34128d2b 2998
e73ed2a1
DM
2999(define-public ghc-regex-tdfa-text
3000 (package
3001 (name "ghc-regex-tdfa-text")
3002 (version "1.0.0.3")
3003 (source
3004 (origin
3005 (method url-fetch)
3006 (uri (string-append
3007 "https://hackage.haskell.org/package/regex-tdfa-text/"
3008 "regex-tdfa-text-" version ".tar.gz"))
3009 (sha256
3010 (base32
3011 "0090g6lgbdm9lywpqm2d3724nnnh24nx3vnlqr96qc2w486pmmrq"))))
3012 (build-system haskell-build-system)
3013 (inputs
3014 `(("ghc-text" ,ghc-text)
3015 ("ghc-regex-base" ,ghc-regex-base)
3016 ("ghc-regex-tdfa" ,ghc-regex-tdfa)))
3017 (home-page
3018 "http://hackage.haskell.org/package/regex-tdfa-text")
3019 (synopsis "Text interface for regex-tdfa")
3020 (description
3021 "This provides an extra text interface for regex-tdfa.")
3022 (license license:bsd-3)))
3023
7e2c8cb5
RW
3024(define-public ghc-regex
3025 (package
3026 (name "ghc-regex")
3027 (version "1.0.1.3")
3028 (source
3029 (origin
3030 (method url-fetch)
3031 (uri (string-append "https://hackage.haskell.org/package/regex/"
3032 "regex-" version ".tar.gz"))
3033 (sha256
3034 (base32
3035 "1sjkpkgv4phy5b5v2lr89x4vx4dh44pj0sbvlsp6n86w9v6v4jwb"))))
3036 (build-system haskell-build-system)
279c97db
RW
3037 (arguments
3038 `(#:phases
3039 (modify-phases %standard-phases
3040 (add-after 'unpack 'relax-dependencies
3041 (lambda _
3042 (substitute* "regex.cabal"
3043 (("base-compat.*>=.*0.6.*")
3044 "base-compat >= 0.6\n")
3045 (("template-haskell.*>=.*2.7.*")
3046 "template-haskell >= 2.7\n"))
3047 #t)))))
7e2c8cb5
RW
3048 (inputs
3049 `(("ghc-base-compat" ,ghc-base-compat)
3050 ("ghc-hashable" ,ghc-hashable)
3051 ("ghc-regex-base" ,ghc-regex-base)
3052 ("ghc-regex-pcre-builtin" ,ghc-regex-pcre-builtin)
3053 ("ghc-regex-tdfa" ,ghc-regex-tdfa)
3054 ("ghc-regex-tdfa-text" ,ghc-regex-tdfa-text)
3055 ("ghc-text" ,ghc-text)
3056 ("ghc-time-locale-compat" ,ghc-time-locale-compat)
3057 ("ghc-unordered-containers" ,ghc-unordered-containers)
3058 ("ghc-utf8-string" ,ghc-utf8-string)))
3059 (home-page "http://regex.uk")
3060 (synopsis "Toolkit for regex-base")
3061 (description
3062 "This package provides a regular expression toolkit for @code{regex-base}
3063with compile-time checking of regular expression syntax, data types for
3064matches and captures, a text replacement toolkit, portable options, high-level
3065AWK-like tools for building text processing apps, regular expression macros
3066with parsers and test bench, comprehensive documentation, tutorials and
3067copious examples.")
3068 (license license:bsd-3)))
3069
e372520e
PW
3070(define-public ghc-parsers
3071 (package
3072 (name "ghc-parsers")
774f3984 3073 (version "0.12.9")
e372520e
PW
3074 (source
3075 (origin
3076 (method url-fetch)
3077 (uri (string-append
612fddec 3078 "https://hackage.haskell.org/package/parsers/parsers-"
e372520e
PW
3079 version
3080 ".tar.gz"))
3081 (sha256
3082 (base32
774f3984 3083 "1r05sc1mcglk8w596kq9a1brfn9c2vll8lq16j07ln0vsz4jzrc1"))))
e372520e
PW
3084 (build-system haskell-build-system)
3085 (arguments `(#:tests? #f)) ; FIXME: Test fails with "cannot satisfy
3086 ; -package attoparsec-0.13.0.1"
2d47cee2 3087 (inputs
e372520e
PW
3088 `(("ghc-base-orphans" ,ghc-base-orphans)
3089 ("ghc-attoparsec" ,ghc-attoparsec)
3090 ("ghc-parsec" ,ghc-parsec)
3091 ("ghc-scientific" ,ghc-scientific)
2d47cee2
RW
3092 ("ghc-charset" ,ghc-charset)
3093 ("ghc-text" ,ghc-text)
e372520e 3094 ("ghc-unordered-containers" ,ghc-unordered-containers)))
612fddec 3095 (home-page "https://github.com/ekmett/parsers/")
e372520e
PW
3096 (synopsis "Parsing combinators")
3097 (description "This library provides convenient combinators for working
3098with and building parsing combinator libraries. Given a few simple instances,
3099you get access to a large number of canned definitions. Instances exist for
3100the parsers provided by @code{parsec}, @code{attoparsec} and @code{base}'s
3101@code{Text.Read}.")
3ac73271 3102 (license license:bsd-3)))
e372520e 3103
93248cfd
PW
3104(define-public ghc-trifecta
3105 (package
3106 (name "ghc-trifecta")
dc676afb 3107 (version "2")
3ea25176
DC
3108 (source (origin
3109 (method url-fetch)
3110 (uri (string-append
3111 "https://hackage.haskell.org/package/trifecta/"
3112 "trifecta-" version ".tar.gz"))
3113 (sha256
3114 (base32
dc676afb 3115 "0hznd8i65s81xy13i2qc7cvipw3lfb2yhkv53apbdsh6sbljz5sk"))))
93248cfd 3116 (build-system haskell-build-system)
2d47cee2 3117 (inputs
dc676afb 3118 `(("ghc-reducers" ,ghc-reducers)
2d47cee2
RW
3119 ("ghc-semigroups" ,ghc-semigroups)
3120 ("ghc-ansi-wl-pprint" ,ghc-ansi-wl-pprint)
93248cfd
PW
3121 ("ghc-ansi-terminal" ,ghc-ansi-terminal)
3122 ("ghc-blaze-builder" ,ghc-blaze-builder)
3123 ("ghc-blaze-html" ,ghc-blaze-html)
3124 ("ghc-blaze-markup" ,ghc-blaze-markup)
3ea25176
DC
3125 ("ghc-charset" ,ghc-charset)
3126 ("ghc-comonad" ,ghc-comonad)
93248cfd
PW
3127 ("ghc-fingertree" ,ghc-fingertree)
3128 ("ghc-hashable" ,ghc-hashable)
3ea25176 3129 ("ghc-lens" ,ghc-lens)
93248cfd 3130 ("ghc-parsers" ,ghc-parsers)
3ea25176 3131 ("ghc-profunctors" ,ghc-profunctors)
93248cfd
PW
3132 ("ghc-unordered-containers" ,ghc-unordered-containers)
3133 ("ghc-utf8-string" ,ghc-utf8-string)))
183d1b1a 3134 (native-inputs
dc676afb
TS
3135 `(("cabal-doctest" ,cabal-doctest)
3136 ("ghc-doctest" ,ghc-doctest)
3137 ("ghc-quickcheck" ,ghc-quickcheck)))
612fddec 3138 (home-page "https://github.com/ekmett/trifecta/")
93248cfd
PW
3139 (synopsis "Parser combinator library with convenient diagnostics")
3140 (description "Trifecta is a modern parser combinator library for Haskell,
3141with slicing and Clang-style colored diagnostics.")
3ac73271 3142 (license license:bsd-3)))
93248cfd 3143
5e51bcf7
RW
3144(define-public ghc-time-locale-compat
3145 (package
3146 (name "ghc-time-locale-compat")
9b6d49e8 3147 (version "0.1.1.5")
5e51bcf7
RW
3148 (source
3149 (origin
3150 (method url-fetch)
3151 (uri (string-append "https://hackage.haskell.org/package/"
3152 "time-locale-compat/time-locale-compat-"
3153 version ".tar.gz"))
3154 (sha256
3155 (base32
9b6d49e8 3156 "0b2hmj8wwrfkndwzgm11qr496ca2ahwdxcj3m0ii91bxvrk1bzq7"))))
5e51bcf7
RW
3157 (build-system haskell-build-system)
3158 (inputs `(("ghc-old-locale" ,ghc-old-locale)))
3159 (home-page "https://github.com/khibino/haskell-time-locale-compat")
3160 (synopsis "Compatibility of TimeLocale between old-locale and time-1.5")
3161 (description "This package contains a wrapped name module for
3162@code{TimeLocale}.")
3163 (license license:bsd-3)))
3164
bc74e0e1
PW
3165(define-public ghc-attoparsec
3166 (package
3167 (name "ghc-attoparsec")
1b1a1067 3168 (version "0.13.2.2")
bc74e0e1
PW
3169 (source
3170 (origin
3171 (method url-fetch)
3172 (uri (string-append
612fddec 3173 "https://hackage.haskell.org/package/attoparsec/attoparsec-"
bc74e0e1
PW
3174 version
3175 ".tar.gz"))
3176 (sha256
3177 (base32
1b1a1067 3178 "0j6qcwd146yzlkc9mcvzvnixsyl65n2a68l28322q5v9p4g4g4yx"))))
bc74e0e1 3179 (build-system haskell-build-system)
0f9e74e9
TS
3180 (arguments
3181 `(#:phases
3182 (modify-phases %standard-phases
3183 (add-after 'unpack 'patch-for-newer-quickcheck
3184 (lambda _
3185 (substitute* "attoparsec.cabal"
3186 (("QuickCheck >= 2\\.7 && < 2\\.10")
3187 "QuickCheck >= 2.7 && < 2.12"))
3188 ;; This test fails because of the newer QuickCheck:
3189 ;; <https://github.com/bos/attoparsec/issues/134>.
3190 (substitute* "tests/QC/ByteString.hs"
3191 ((", testProperty \"satisfyWith\" satisfyWith")
3192 "")))))))
bc74e0e1 3193 (inputs
f9f4578b 3194 `(("ghc-scientific" ,ghc-scientific)
2d47cee2
RW
3195 ("ghc-text" ,ghc-text)))
3196 (native-inputs
1b1a1067
RW
3197 `(("ghc-tasty" ,ghc-tasty)
3198 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
3199 ("ghc-quickcheck" ,ghc-quickcheck)
19206f5e 3200 ("ghc-quickcheck-unicode" ,ghc-quickcheck-unicode)
bc74e0e1
PW
3201 ("ghc-vector" ,ghc-vector)))
3202 (home-page "https://github.com/bos/attoparsec")
3203 (synopsis "Fast combinator parsing for bytestrings and text")
3204 (description "This library provides a fast parser combinator library,
3205aimed particularly at dealing efficiently with network protocols and
3206complicated text/binary file formats.")
3ac73271 3207 (license license:bsd-3)))
bc74e0e1 3208
9d1944a4
TS
3209(define-public ghc-attoparsec-bootstrap
3210 (package
3211 (inherit ghc-attoparsec)
3212 (name "ghc-attoparsec-bootstrap")
3213 (arguments `(#:tests? #f))
3214 (inputs
3215 `(("ghc-scientific" ,ghc-scientific-bootstrap)
3216 ("ghc-text" ,ghc-text)))
3217 (native-inputs '())
3218 (properties '(hidden? #t))))
3219
ca41c155
PW
3220(define-public ghc-zip-archive
3221 (package
3222 (name "ghc-zip-archive")
74f490ec 3223 (version "0.3.3")
ca41c155
PW
3224 (source
3225 (origin
3226 (method url-fetch)
3227 (uri (string-append
612fddec 3228 "https://hackage.haskell.org/package/zip-archive/zip-archive-"
ca41c155
PW
3229 version
3230 ".tar.gz"))
3231 (sha256
3232 (base32
74f490ec 3233 "0kf8xyac168bng8a0za2jwrbss7a4ralvci9g54hnvl0gkkxx2lq"))))
ca41c155 3234 (build-system haskell-build-system)
ca41c155 3235 (inputs
74f490ec 3236 `(("ghc-digest" ,ghc-digest)
2025964b 3237 ("ghc-temporary" ,ghc-temporary)
ca41c155
PW
3238 ("ghc-text" ,ghc-text)
3239 ("ghc-zlib" ,ghc-zlib)))
2d47cee2 3240 (native-inputs
74f490ec
TS
3241 `(("ghc-hunit" ,ghc-hunit)
3242 ("unzip" ,unzip)))
ca41c155
PW
3243 (home-page "https://hackage.haskell.org/package/zip-archive")
3244 (synopsis "Zip archive library for Haskell")
3245 (description "The zip-archive library provides functions for creating,
3246modifying, and extracting files from zip archives in Haskell.")
3ac73271 3247 (license license:bsd-3)))
ca41c155 3248
fa4f5024
PW
3249(define-public ghc-distributive
3250 (package
3251 (name "ghc-distributive")
c2d30e31 3252 (version "0.5.3")
fa4f5024
PW
3253 (source
3254 (origin
3255 (method url-fetch)
3256 (uri (string-append
612fddec 3257 "https://hackage.haskell.org/package/distributive/distributive-"
fa4f5024
PW
3258 version
3259 ".tar.gz"))
3260 (sha256
3261 (base32
c2d30e31 3262 "0y566r97sfyvhsmd4yxiz4ns2mqgwf5bdbp56wgxl6wlkidq0wwi"))))
fa4f5024 3263 (build-system haskell-build-system)
68dc0c29
TS
3264 (arguments
3265 `(#:cabal-revision
3266 ("6" "06bd38rf31yrvvy989r44pm0id3dsxwcp6nxg7wk6ccj3n2b8rzk")))
2d47cee2 3267 (inputs
fa4f5024 3268 `(("ghc-tagged" ,ghc-tagged)
c2d30e31
RW
3269 ("ghc-base-orphans" ,ghc-base-orphans)
3270 ("ghc-transformers-compat" ,ghc-transformers-compat)
3271 ("ghc-semigroups" ,ghc-semigroups)
3272 ("ghc-generic-deriving" ,ghc-generic-deriving)))
3273 (native-inputs
3274 `(("cabal-doctest" ,cabal-doctest)
68dc0c29 3275 ("ghc-doctest" ,ghc-doctest)
c2d30e31
RW
3276 ("ghc-hspec" ,ghc-hspec)
3277 ("hspec-discover" ,hspec-discover)))
612fddec 3278 (home-page "https://github.com/ekmett/distributive/")
fa4f5024
PW
3279 (synopsis "Distributive functors for Haskell")
3280 (description "This package provides distributive functors for Haskell.
3281Dual to @code{Traversable}.")
3ac73271 3282 (license license:bsd-3)))
fa4f5024 3283
10e61452
PW
3284(define-public ghc-cereal
3285 (package
3286 (name "ghc-cereal")
91ffeed7 3287 (version "0.5.7.0")
10e61452
PW
3288 (source
3289 (origin
3290 (method url-fetch)
3291 (uri (string-append
612fddec 3292 "https://hackage.haskell.org/package/cereal/cereal-"
10e61452
PW
3293 version
3294 ".tar.gz"))
3295 (sha256
3296 (base32
91ffeed7 3297 "1j7imh2mzqcljld7sx0av69699955rpy3hzivi5723i6a9nszgbs"))))
10e61452 3298 (build-system haskell-build-system)
3295a6da
RW
3299 (native-inputs
3300 `(("ghc-quickcheck" ,ghc-quickcheck)
3301 ("ghc-fail" ,ghc-fail)
3302 ("ghc-test-framework" ,ghc-test-framework)
3303 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
612fddec 3304 (home-page "https://hackage.haskell.org/package/cereal")
10e61452
PW
3305 (synopsis "Binary serialization library")
3306 (description "This package provides a binary serialization library,
3307similar to @code{binary}, that introduces an @code{isolate} primitive for
3308parser isolation, and labeled blocks for better error messages.")
3ac73271 3309 (license license:bsd-3)))
10e61452 3310
40b56b52
PW
3311(define-public ghc-comonad
3312 (package
3313 (name "ghc-comonad")
c2828c81 3314 (version "5.0.4")
40b56b52
PW
3315 (source
3316 (origin
3317 (method url-fetch)
3318 (uri (string-append
612fddec 3319 "https://hackage.haskell.org/package/comonad/comonad-"
40b56b52
PW
3320 version
3321 ".tar.gz"))
3322 (sha256
3323 (base32
c2828c81 3324 "09g870c4flp4k3fgbibsd0mmfjani1qcpbcl685v8x89kxzrva3q"))))
40b56b52 3325 (build-system haskell-build-system)
bdd4aa16 3326 (native-inputs
c2828c81
TS
3327 `(("cabal-doctest" ,cabal-doctest)
3328 ("ghc-doctest" ,ghc-doctest)))
40b56b52 3329 (inputs
7e95d0fd
TGR
3330 `(("ghc-contravariant" ,ghc-contravariant)
3331 ("ghc-distributive" ,ghc-distributive)
2d47cee2 3332 ("ghc-semigroups" ,ghc-semigroups)
40b56b52 3333 ("ghc-tagged" ,ghc-tagged)
7e95d0fd 3334 ("ghc-transformers-compat" ,ghc-transformers-compat)))
612fddec 3335 (home-page "https://github.com/ekmett/comonad/")
40b56b52
PW
3336 (synopsis "Comonads for Haskell")
3337 (description "This library provides @code{Comonad}s for Haskell.")
3ac73271 3338 (license license:bsd-3)))
40b56b52 3339
ce78a0f5
PW
3340(define-public hscolour
3341 (package
3342 (name "hscolour")
8642b86a 3343 (version "1.24.4")
ce78a0f5
PW
3344 (source
3345 (origin
3346 (method url-fetch)
3347 (uri (string-append
612fddec 3348 "https://hackage.haskell.org/package/hscolour/hscolour-"
ce78a0f5
PW
3349 version
3350 ".tar.gz"))
3351 (sha256
3352 (base32
8642b86a 3353 "079jwph4bwllfp03yfr26s5zc6m6kw3nhb1cggrifh99haq34cr4"))))
ce78a0f5
PW
3354 (build-system haskell-build-system)
3355 (home-page "https://hackage.haskell.org/package/hscolour")
3356 (synopsis "Script to colourise Haskell code")
3357 (description "HSColour is a small Haskell script to colourise Haskell
3358code. It currently has six output formats: ANSI terminal codes (optionally
3359XTerm-256colour codes), HTML 3.2 with font tags, HTML 4.01 with CSS, HTML 4.01
3360with CSS and mouseover annotations, XHTML 1.0 with inline CSS styling, LaTeX,
3361and mIRC chat codes.")
3ac73271 3362 (license license:bsd-3)))
ce78a0f5 3363
47038762
PW
3364(define-public ghc-polyparse
3365 (package
3366 (name "ghc-polyparse")
7fb6eb17 3367 (version "1.12")
47038762
PW
3368 (source
3369 (origin
3370 (method url-fetch)
3371 (uri (string-append
612fddec 3372 "https://hackage.haskell.org/package/polyparse/polyparse-"
47038762
PW
3373 version
3374 ".tar.gz"))
3375 (sha256
3376 (base32
7fb6eb17 3377 "05dya1vdvq29hkhkdlsglzhw7bdn51rvs1javs0q75nf99c66k7m"))))
47038762 3378 (build-system haskell-build-system)
2d47cee2 3379 (inputs
47038762
PW
3380 `(("ghc-text" ,ghc-text)))
3381 (home-page
3382 "http://code.haskell.org/~malcolm/polyparse/")
3383 (synopsis
3384 "Alternative parser combinator libraries")
3385 (description
3386 "This package provides a variety of alternative parser combinator
3387libraries, including the original HuttonMeijer set. The Poly sets have
3388features like good error reporting, arbitrary token type, running state, lazy
3389parsing, and so on. Finally, Text.Parse is a proposed replacement for the
3390standard Read class, for better deserialisation of Haskell values from
3391Strings.")
3ac73271 3392 (license license:lgpl2.1)))
47038762 3393
fad564ec
PW
3394(define-public ghc-extra
3395 (package
3396 (name "ghc-extra")
3a066eb5 3397 (version "1.6.9")
fad564ec
PW
3398 (source
3399 (origin
3400 (method url-fetch)
3401 (uri (string-append
612fddec 3402 "https://hackage.haskell.org/package/extra/extra-"
fad564ec
PW
3403 version
3404 ".tar.gz"))
3405 (sha256
3406 (base32
3a066eb5 3407 "0xxcpb00pgwi9cmy6a7ghh6rblxry42p8pz5ssfgj20fs1xwzj1b"))))
fad564ec 3408 (build-system haskell-build-system)
7d4de988
RW
3409 (inputs
3410 `(("ghc-clock" ,ghc-clock)
3411 ("ghc-quickcheck" ,ghc-quickcheck)))
fad564ec
PW
3412 (home-page "https://github.com/ndmitchell/extra")
3413 (synopsis "Extra Haskell functions")
3414 (description "This library provides extra functions for the standard
3415Haskell libraries. Most functions are simple additions, filling out missing
3416functionality. A few functions are available in later versions of GHC, but
3417this package makes them available back to GHC 7.2.")
3ac73271 3418 (license license:bsd-3)))
fad564ec 3419
f221841c
PW
3420(define-public ghc-profunctors
3421 (package
3422 (name "ghc-profunctors")
4a1b5600 3423 (version "5.2.2")
f221841c
PW
3424 (source
3425 (origin
3426 (method url-fetch)
3427 (uri (string-append
612fddec 3428 "https://hackage.haskell.org/package/profunctors/profunctors-"
f221841c
PW
3429 version
3430 ".tar.gz"))
3431 (sha256
3432 (base32
4a1b5600 3433 "0s1pwjidbn761xk43pmzyvn99hm3psdifjd78ylki7f97aiyd0g9"))))
f221841c 3434 (build-system haskell-build-system)
bf733668
TS
3435 (arguments
3436 `(#:cabal-revision
3437 ("2" "1ywlg9z8nlhd2avgb8c6gbkv8zyk7hvc25926bafyg0m0k8y1amq")))
f221841c 3438 (inputs
4a1b5600
RW
3439 `(("ghc-base-orphans" ,ghc-base-orphans)
3440 ("ghc-bifunctors" ,ghc-bifunctors)
2d47cee2 3441 ("ghc-comonad" ,ghc-comonad)
4a1b5600
RW
3442 ("ghc-contravariant" ,ghc-contravariant)
3443 ("ghc-distributive" ,ghc-distributive)
3444 ("ghc-semigroups" ,ghc-semigroups)
f221841c 3445 ("ghc-tagged" ,ghc-tagged)))
612fddec 3446 (home-page "https://github.com/ekmett/profunctors/")
f221841c
PW
3447 (synopsis "Profunctors for Haskell")
3448 (description "This library provides profunctors for Haskell.")
3ac73271 3449 (license license:bsd-3)))
f221841c 3450
d2639cbc
PW
3451(define-public ghc-reducers
3452 (package
3453 (name "ghc-reducers")
d8717c89 3454 (version "3.12.3")
d2639cbc
PW
3455 (source
3456 (origin
3457 (method url-fetch)
3458 (uri (string-append
612fddec 3459 "https://hackage.haskell.org/package/reducers/reducers-"
d2639cbc
PW
3460 version
3461 ".tar.gz"))
3462 (sha256
3463 (base32
d8717c89 3464 "09wf8pl9ycglcv6qj5ba26gkg2s5iy81hsx9xp0q8na0cwvp71ki"))))
d2639cbc 3465 (build-system haskell-build-system)
d2639cbc
PW
3466 (inputs
3467 `(("ghc-fingertree" ,ghc-fingertree)
3468 ("ghc-hashable" ,ghc-hashable)
3469 ("ghc-text" ,ghc-text)
3470 ("ghc-unordered-containers" ,ghc-unordered-containers)
2d47cee2 3471 ("ghc-semigroupoids" ,ghc-semigroupoids)
d2639cbc 3472 ("ghc-semigroups" ,ghc-semigroups)))
612fddec 3473 (home-page "https://github.com/ekmett/reducers/")
d2639cbc
PW
3474 (synopsis "Semigroups, specialized containers and a general map/reduce framework")
3475 (description "This library provides various semigroups, specialized
3476containers and a general map/reduce framework for Haskell.")
3ac73271 3477 (license license:bsd-3)))
d2639cbc 3478
76ae28f1
PW
3479(define-public ghc-appar
3480 (package
3481 (name "ghc-appar")
3482 (version "0.1.4")
3483 (source
3484 (origin
3485 (method url-fetch)
3486 (uri (string-append
612fddec 3487 "https://hackage.haskell.org/package/appar/appar-"
76ae28f1
PW
3488 version
3489 ".tar.gz"))
3490 (sha256
3491 (base32
3492 "09jb9ij78fdkz2qk66rw99q19qnm504dpv0yq0pjsl6xwjmndsjq"))))
3493 (build-system haskell-build-system)
3494 (home-page
612fddec 3495 "https://hackage.haskell.org/package/appar")
76ae28f1
PW
3496 (synopsis "Simple applicative parser")
3497 (description "This package provides a simple applicative parser in Parsec
3498style.")
3ac73271 3499 (license license:bsd-3)))
76ae28f1 3500
78c5b39d
PW
3501(define-public ghc-safe
3502 (package
3503 (name "ghc-safe")
17539a7e 3504 (version "0.3.17")
78c5b39d
PW
3505 (source
3506 (origin
3507 (method url-fetch)
3508 (uri (string-append
612fddec 3509 "https://hackage.haskell.org/package/safe/safe-"
78c5b39d
PW
3510 version
3511 ".tar.gz"))
3512 (sha256
3513 (base32
17539a7e 3514 "0p3yaf5slvyz1cyy51jq64c5rlp8yzwim8iy2dlnk42if4gc9ibr"))))
78c5b39d 3515 (build-system haskell-build-system)
17539a7e
TS
3516 (native-inputs
3517 `(("ghc-quickcheck" ,ghc-quickcheck)))
78c5b39d
PW
3518 (home-page "https://github.com/ndmitchell/safe#readme")
3519 (synopsis "Library of safe (exception free) functions")
3520 (description "This library provides wrappers around @code{Prelude} and
3521@code{Data.List} functions, such as @code{head} and @code{!!}, that can throw
3522exceptions.")
3ac73271 3523 (license license:bsd-3)))
78c5b39d 3524
476f7bab
PW
3525(define-public ghc-generic-deriving
3526 (package
3527 (name "ghc-generic-deriving")
b408c5a7 3528 (version "1.12.2")
476f7bab
PW
3529 (source
3530 (origin
3531 (method url-fetch)
3532 (uri (string-append
612fddec 3533 "https://hackage.haskell.org/package/generic-deriving/generic-deriving-"
476f7bab
PW
3534 version
3535 ".tar.gz"))
3536 (sha256
3537 (base32
b408c5a7 3538 "1i7d6cpj9yhaqb79zays3nqchhaacacjz9bkc0zlwj73y5gvi22n"))))
476f7bab 3539 (build-system haskell-build-system)
b408c5a7
TS
3540 (inputs
3541 `(("ghc-th-abstraction" ,ghc-th-abstraction)))
24857542
RW
3542 (native-inputs
3543 `(("ghc-hspec" ,ghc-hspec)
3544 ("hspec-discover" ,hspec-discover)))
476f7bab
PW
3545 (home-page "https://hackage.haskell.org/package/generic-deriving")
3546 (synopsis "Generalise the deriving mechanism to arbitrary classes")
3547 (description "This package provides functionality for generalising the
3548deriving mechanism in Haskell to arbitrary classes.")
3ac73271 3549 (license license:bsd-3)))
476f7bab 3550
b10f7be3
PW
3551(define-public ghc-pcre-light
3552 (package
3553 (name "ghc-pcre-light")
eff94e6b 3554 (version "0.4.0.4")
b10f7be3
PW
3555 (source
3556 (origin
3557 (method url-fetch)
3558 (uri (string-append
612fddec 3559 "https://hackage.haskell.org/package/pcre-light/pcre-light-"
b10f7be3
PW
3560 version
3561 ".tar.gz"))
3562 (sha256
3563 (base32
eff94e6b 3564 "0xcyi1fivwg7a92mch5bcqzmrfxzqj42rmb3m8kgs61x4qwpxj82"))))
b10f7be3
PW
3565 (build-system haskell-build-system)
3566 (inputs
3567 `(("pcre" ,pcre)))
eff94e6b
RW
3568 (native-inputs
3569 `(("pkg-config" ,pkg-config)))
b10f7be3
PW
3570 (home-page "https://github.com/Daniel-Diaz/pcre-light")
3571 (synopsis "Haskell library for Perl 5 compatible regular expressions")
3572 (description "This package provides a small, efficient, and portable regex
3573library for Perl 5 compatible regular expressions. The PCRE library is a set
3574of functions that implement regular expression pattern matching using the same
3575syntax and semantics as Perl 5.")
3ac73271 3576 (license license:bsd-3)))
b10f7be3 3577
748463be
PW
3578(define-public ghc-logict
3579 (package
3580 (name "ghc-logict")
3581 (version "0.6.0.2")
3582 (source
3583 (origin
3584 (method url-fetch)
3585 (uri (string-append
612fddec 3586 "https://hackage.haskell.org/package/logict/logict-"
748463be
PW
3587 version
3588 ".tar.gz"))
3589 (sha256
3590 (base32
3591 "07hnirv6snnym2r7iijlfz00b60jpy2856zvqxh989q0in7bd0hi"))))
3592 (build-system haskell-build-system)
748463be
PW
3593 (home-page "http://code.haskell.org/~dolio/")
3594 (synopsis "Backtracking logic-programming monad")
3595 (description "This library provides a continuation-based, backtracking,
3596logic programming monad. An adaptation of the two-continuation implementation
3597found in the paper \"Backtracking, Interleaving, and Terminating Monad
3598Transformers\" available @uref{http://okmij.org/ftp/papers/LogicT.pdf,
3599online}.")
3ac73271 3600 (license license:bsd-3)))
748463be 3601
d10fed28
PW
3602(define-public ghc-xml
3603 (package
3604 (name "ghc-xml")
3605 (version "1.3.14")
3606 (source
3607 (origin
3608 (method url-fetch)
3609 (uri (string-append
612fddec 3610 "https://hackage.haskell.org/package/xml/xml-"
d10fed28
PW
3611 version
3612 ".tar.gz"))
3613 (sha256
3614 (base32
3615 "0g814lj7vaxvib2g3r734221k80k7ap9czv9hinifn8syals3l9j"))))
3616 (build-system haskell-build-system)
2d47cee2 3617 (inputs
d10fed28
PW
3618 `(("ghc-text" ,ghc-text)))
3619 (home-page "http://code.galois.com")
3620 (synopsis "Simple XML library for Haskell")
3621 (description "This package provides a simple XML library for Haskell.")
3ac73271 3622 (license license:bsd-3)))
d10fed28 3623
e3aae496
TS
3624(define-public ghc-feed
3625 (package
3626 (name "ghc-feed")
fbdf4031 3627 (version "1.0.0.0")
e3aae496
TS
3628 (source
3629 (origin
3630 (method url-fetch)
3631 (uri (string-append "https://hackage.haskell.org/package/"
3632 "feed/feed-" version ".tar.gz"))
3633 (sha256
3634 (base32
fbdf4031 3635 "05rgg7x1984mgfhkmz792xj8lhwjgznixhygzr8blf517lns2nck"))))
e3aae496 3636 (build-system haskell-build-system)
fbdf4031
TS
3637 (arguments
3638 `(#:cabal-revision
3639 ("4" "0baavcavm3ywykcr9cm07aqr7sna98jba2n68lyn3kany8ri214d")))
e3aae496 3640 (inputs
fbdf4031
TS
3641 `(("ghc-base-compat" ,ghc-base-compat)
3642 ("ghc-old-locale" ,ghc-old-locale)
e3aae496 3643 ("ghc-old-time" ,ghc-old-time)
fbdf4031
TS
3644 ("ghc-safe" ,ghc-safe)
3645 ("ghc-text" ,ghc-text)
e3aae496
TS
3646 ("ghc-time-locale-compat" ,ghc-time-locale-compat)
3647 ("ghc-utf8-string" ,ghc-utf8-string)
fbdf4031
TS
3648 ("ghc-xml-conduit" ,ghc-xml-conduit)
3649 ("ghc-xml-types" ,ghc-xml-types)))
e3aae496
TS
3650 (native-inputs
3651 `(("ghc-hunit" ,ghc-hunit)
3652 ("ghc-test-framework" ,ghc-test-framework)
3653 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)))
3654 (home-page "https://github.com/bergmark/feed")
3655 (synopsis "Haskell package for handling various syndication formats")
3656 (description "This Haskell package includes tools for generating and
3657consuming feeds in both RSS (Really Simple Syndication) and Atom format.")
3658 (license license:bsd-3)))
3659
31cac1ee
PW
3660(define-public ghc-exceptions
3661 (package
3662 (name "ghc-exceptions")
5f192d52 3663 (version "0.10.0")
31cac1ee
PW
3664 (source
3665 (origin
3666 (method url-fetch)
3667 (uri (string-append
612fddec 3668 "https://hackage.haskell.org/package/exceptions/exceptions-"
31cac1ee
PW
3669 version
3670 ".tar.gz"))
3671 (sha256
3672 (base32
5f192d52 3673 "1ms9zansv0pwzwdjncvx4kf18lnkjy2p61hvjhvxmjx5bqp93p8y"))))
31cac1ee 3674 (build-system haskell-build-system)
e1e80388 3675 (native-inputs
5f192d52
TS
3676 `(("ghc-quickcheck" ,ghc-quickcheck)
3677 ("ghc-test-framework" ,ghc-test-framework)
3678 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
e1e80388 3679 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
2d47cee2 3680 (inputs
31cac1ee 3681 `(("ghc-stm" ,ghc-stm)
31cac1ee 3682 ("ghc-transformers-compat" ,ghc-transformers-compat)))
612fddec 3683 (home-page "https://github.com/ekmett/exceptions/")
31cac1ee
PW
3684 (synopsis "Extensible optionally-pure exceptions")
3685 (description "This library provides extensible optionally-pure exceptions
3686for Haskell.")
3ac73271 3687 (license license:bsd-3)))
31cac1ee 3688
5257c341
PW
3689(define-public ghc-temporary
3690 (package
3691 (name "ghc-temporary")
ded4ac38 3692 (version "1.3")
5257c341
PW
3693 (source
3694 (origin
3695 (method url-fetch)
3696 (uri (string-append
612fddec 3697 "https://hackage.haskell.org/package/temporary/temporary-"
5257c341
PW
3698 version
3699 ".tar.gz"))
3700 (sha256
3701 (base32
ded4ac38 3702 "144qhwfwg37l3k313raf4ssiz16jbgwlm1nf4flgqpsbd69jji4c"))))
5257c341 3703 (build-system haskell-build-system)
ded4ac38
TS
3704 (inputs
3705 `(("ghc-exceptions" ,ghc-exceptions)
3706 ("ghc-random" ,ghc-random)))
3707 (native-inputs
3708 `(("ghc-base-compat" ,ghc-base-compat)
3709 ("ghc-tasty" ,ghc-tasty)
3710 ("ghc-tasty-hunit" ,ghc-tasty-hunit)))
98b90194 3711 (home-page "https://www.github.com/batterseapower/temporary")
5257c341
PW
3712 (synopsis "Temporary file and directory support")
3713 (description "The functions for creating temporary files and directories
3714in the Haskelll base library are quite limited. This library just repackages
3715the Cabal implementations of its own temporary file and folder functions so
3716that you can use them without linking against Cabal or depending on it being
3717installed.")
3ac73271 3718 (license license:bsd-3)))
5257c341 3719
fa67563c
PW
3720(define-public ghc-temporary-rc
3721 (package
3722 (name "ghc-temporary-rc")
3723 (version "1.2.0.3")
3724 (source
3725 (origin
3726 (method url-fetch)
3727 (uri (string-append
612fddec 3728 "https://hackage.haskell.org/package/temporary-rc/temporary-rc-"
fa67563c
PW
3729 version
3730 ".tar.gz"))
3731 (sha256
3732 (base32
3733 "1nqih0qks439k3pr5kmbbc8rjdw730slrxlflqb27fbxbzb8skqs"))))
3734 (build-system haskell-build-system)
2d47cee2 3735 (inputs `(("ghc-exceptions" ,ghc-exceptions)))
fa67563c 3736 (home-page
98b90194 3737 "https://www.github.com/feuerbach/temporary")
fa67563c
PW
3738 (synopsis
3739 "Portable temporary file and directory support")
3740 (description
3741 "The functions for creating temporary files and directories in the base
3742library are quite limited. The unixutils package contains some good ones, but
3743they aren't portable to Windows. This library just repackages the Cabal
3744implementations of its own temporary file and folder functions so that you can
3745use them without linking against Cabal or depending on it being installed.
3746This is a better maintained fork of the \"temporary\" package.")
3ac73271 3747 (license license:bsd-3)))
fa67563c 3748
b53fa046
PW
3749(define-public ghc-smallcheck
3750 (package
3751 (name "ghc-smallcheck")
b625f3a5 3752 (version "1.1.5")
b53fa046
PW
3753 (source
3754 (origin
3755 (method url-fetch)
3756 (uri (string-append
612fddec 3757 "https://hackage.haskell.org/package/smallcheck/smallcheck-"
b53fa046
PW
3758 version
3759 ".tar.gz"))
3760 (sha256
3761 (base32
b625f3a5 3762 "195fj7w3v03d1y1nm2ylavzrwxjcdbq0lb6zsw1dwyx5jmwfc84h"))))
b53fa046 3763 (build-system haskell-build-system)
b53fa046 3764 (inputs
f54f0475 3765 `(("ghc-logict" ,ghc-logict)))
b53fa046
PW
3766 (home-page
3767 "https://github.com/feuerbach/smallcheck")
3768 (synopsis "Property-based testing library")
3769 (description "SmallCheck is a testing library that allows to verify
3770properties for all test cases up to some depth. The test cases are generated
3771automatically by SmallCheck.")
3ac73271 3772 (license license:bsd-3)))
b53fa046 3773
acd881a4
PW
3774(define-public ghc-silently
3775 (package
3776 (name "ghc-silently")
3777 (version "1.2.5")
3778 (source
3779 (origin
3780 (method url-fetch)
3781 (uri (string-append
612fddec 3782 "https://hackage.haskell.org/package/silently/silently-"
acd881a4
PW
3783 version
3784 ".tar.gz"))
3785 (sha256
3786 (base32
3787 "0f9qm3f7y0hpxn6mddhhg51mm1r134qkvd2kr8r6192ka1ijbxnf"))))
3788 (build-system haskell-build-system)
3789 (arguments `(#:tests? #f)) ;; circular dependency with nanospec
3790 ;; (inputs
3791 ;; `(("ghc-temporary" ,ghc-temporary)))
3792 (home-page "https://github.com/hspec/silently")
3793 (synopsis "Prevent writing to stdout")
3794 (description "This package provides functions to prevent or capture
3795writing to stdout and other handles.")
3ac73271 3796 (license license:bsd-3)))
acd881a4 3797
7a1e8c74
FB
3798(define-public ghc-case-insensitive
3799 (package
3800 (name "ghc-case-insensitive")
f5aa5845 3801 (version "1.2.0.11")
7a1e8c74
FB
3802 (outputs '("out" "doc"))
3803 (source
3804 (origin
3805 (method url-fetch)
3806 (uri (string-append
612fddec 3807 "https://hackage.haskell.org/package/case-insensitive/case-insensitive-"
7a1e8c74
FB
3808 version
3809 ".tar.gz"))
3810 (sha256
3811 (base32
f5aa5845 3812 "1qrpxfirsxckg7jv28f5ah2qc8lh95hp7rnqkbqs1ahcwlbnvkm7"))))
7a1e8c74 3813 (build-system haskell-build-system)
7a1e8c74 3814 ;; these inputs are necessary to use this library
2d47cee2 3815 (inputs
7a1e8c74
FB
3816 `(("ghc-text" ,ghc-text)
3817 ("ghc-hashable" ,ghc-hashable)))
3818 (arguments
3819 `(#:tests? #f)) ; FIXME: currently missing libraries used for tests.
3820 (home-page
3821 "https://github.com/basvandijk/case-insensitive")
3822 (synopsis "Case insensitive string comparison")
3823 (description
36a4366d
EF
3824 "The module @code{Data.CaseInsensitive} provides the @code{CI} type
3825constructor which can be parameterised by a string-like type like:
3826@code{String}, @code{ByteString}, @code{Text}, etc. Comparisons of values of
3827the resulting type will be insensitive to cases.")
3ac73271 3828 (license license:bsd-3)))
7a1e8c74 3829
eaa3088e
FB
3830(define-public ghc-syb
3831 (package
3832 (name "ghc-syb")
80d06b8d 3833 (version "0.7")
eaa3088e
FB
3834 (outputs '("out" "doc"))
3835 (source
3836 (origin
3837 (method url-fetch)
3838 (uri (string-append
612fddec 3839 "https://hackage.haskell.org/package/syb/syb-"
eaa3088e
FB
3840 version
3841 ".tar.gz"))
3842 (sha256
3843 (base32
80d06b8d 3844 "1da2zz7gqm4xbkx5vpd74dayx1svaxyl145fl14mq15lbb77sxdq"))))
eaa3088e
FB
3845 (build-system haskell-build-system)
3846 (inputs
f54f0475 3847 `(("ghc-hunit" ,ghc-hunit)))
eaa3088e
FB
3848 (home-page
3849 "http://www.cs.uu.nl/wiki/GenericProgramming/SYB")
3850 (synopsis "Scrap Your Boilerplate")
a306190f 3851 (description "This package contains the generics system described in the
eaa3088e 3852/Scrap Your Boilerplate/ papers (see
a306190f 3853@uref{http://www.cs.uu.nl/wiki/GenericProgramming/SYB, the website}). It
36a4366d 3854defines the @code{Data} class of types permitting folding and unfolding of
a306190f
PW
3855constructor applications, instances of this class for primitive types, and a
3856variety of traversals.")
3ac73271 3857 (license license:bsd-3)))
eaa3088e 3858
c5043f4a
FB
3859(define-public ghc-fgl
3860 (package
3861 (name "ghc-fgl")
b1a16000 3862 (version "5.6.0.0")
c5043f4a
FB
3863 (outputs '("out" "doc"))
3864 (source
3865 (origin
3866 (method url-fetch)
3867 (uri (string-append
612fddec 3868 "https://hackage.haskell.org/package/fgl/fgl-"
c5043f4a
FB
3869 version
3870 ".tar.gz"))
3871 (sha256
3872 (base32
b1a16000 3873 "1i6cp4b3w7sjk7y1dq3fh6bci2sm5h3lnbbaw9ln19nwncg2wwll"))))
c5043f4a 3874 (build-system haskell-build-system)
c0a541cb 3875 (arguments
98993f60
TS
3876 `(#:phases
3877 (modify-phases %standard-phases
3878 (add-before 'configure 'update-constraints
3879 (lambda _
3880 (substitute* "fgl.cabal"
3881 (("QuickCheck >= 2\\.8 && < 2\\.10")
3882 "QuickCheck >= 2.8 && < 2.12")
3883 (("hspec >= 2\\.1 && < 2\\.5")
3884 "hspec >= 2.1 && < 2.6")))))))
ce242fd0 3885 (inputs
f54f0475 3886 `(("ghc-hspec" ,ghc-hspec)
ce242fd0 3887 ("ghc-quickcheck" ,ghc-quickcheck)))
98b90194 3888 (home-page "https://web.engr.oregonstate.edu/~erwig/fgl/haskell")
c5043f4a
FB
3889 (synopsis
3890 "Martin Erwig's Functional Graph Library")
3891 (description "The functional graph library, FGL, is a collection of type
3892and function definitions to address graph problems. The basis of the library
3893is an inductive definition of graphs in the style of algebraic data types that
3894encourages inductive, recursive definitions of graph algorithms.")
3ac73271 3895 (license license:bsd-3)))
c5043f4a 3896
4eca62be
EB
3897(define-public ghc-chasingbottoms
3898 (package
3899 (name "ghc-chasingbottoms")
fa9c33dc 3900 (version "1.3.1.4")
4eca62be
EB
3901 (source
3902 (origin
3903 (method url-fetch)
612fddec 3904 (uri (string-append "https://hackage.haskell.org/package/ChasingBottoms/"
4eca62be
EB
3905 "ChasingBottoms-" version ".tar.gz"))
3906 (sha256
3907 (base32
fa9c33dc 3908 "06cynx6hcbfpky7qq3b3mjjgwbnaxkwin3znbwq4b9ikiw0ng633"))))
4eca62be 3909 (build-system haskell-build-system)
2d47cee2 3910 (inputs
f54f0475 3911 `(("ghc-quickcheck" ,ghc-quickcheck)
4eca62be
EB
3912 ("ghc-random" ,ghc-random)
3913 ("ghc-syb" ,ghc-syb)))
612fddec 3914 (home-page "https://hackage.haskell.org/package/ChasingBottoms")
4eca62be
EB
3915 (synopsis "Testing of partial and infinite values in Haskell")
3916 (description
3917 ;; FIXME: There should be a @comma{} in the uref text, but it is not
3918 ;; rendered properly.
3919 "This is a library for testing code involving bottoms or infinite values.
3920For the underlying theory and a larger example involving use of QuickCheck,
3921see the article
3922@uref{http://www.cse.chalmers.se/~nad/publications/danielsson-jansson-mpc2004.html,
3923\"Chasing Bottoms A Case Study in Program Verification in the Presence of
3924Partial and Infinite Values\"}.")
3ac73271 3925 (license license:expat)))
4eca62be 3926
01a687da
FB
3927(define-public ghc-unordered-containers
3928 (package
3929 (name "ghc-unordered-containers")
e0b8cc34 3930 (version "0.2.9.0")
01a687da
FB
3931 (outputs '("out" "doc"))
3932 (source
3933 (origin
3934 (method url-fetch)
3935 (uri (string-append
612fddec 3936 "https://hackage.haskell.org/package/unordered-containers"
0e03d76a 3937 "/unordered-containers-" version ".tar.gz"))
01a687da
FB
3938 (sha256
3939 (base32
e0b8cc34 3940 "0l4264p0av12cc6i8gls13q8y27x12z2ar4x34n3x59y99fcnc37"))))
01a687da
FB
3941 (build-system haskell-build-system)
3942 (inputs
c3c61a78
EB
3943 `(("ghc-chasingbottoms" ,ghc-chasingbottoms)
3944 ("ghc-hunit" ,ghc-hunit)
3945 ("ghc-quickcheck" ,ghc-quickcheck)
3946 ("ghc-test-framework" ,ghc-test-framework)
3947 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
2d47cee2
RW
3948 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)
3949 ("ghc-hashable" ,ghc-hashable)))
01a687da
FB
3950 (home-page
3951 "https://github.com/tibbe/unordered-containers")
3952 (synopsis
3953 "Efficient hashing-based container types")
3954 (description
3955 "Efficient hashing-based container types. The containers have been
3956optimized for performance critical use, both in terms of large data quantities
3957and high speed.")
3ac73271 3958 (license license:bsd-3)))
01a687da 3959
bc8bda50
TS
3960(define-public ghc-unordered-containers-bootstrap
3961 (package
3962 (inherit ghc-unordered-containers)
3963 (name "ghc-unordered-containers-bootstrap")
3964 (arguments `(#:tests? #f))
3965 (inputs
3966 `(("ghc-hashable" ,ghc-hashable-bootstrap)))
3967 (properties '(hidden? #t))))
3968
10de4306
PW
3969(define-public ghc-uniplate
3970 (package
3971 (name "ghc-uniplate")
3972 (version "1.6.12")
3973 (source
3974 (origin
3975 (method url-fetch)
3976 (uri (string-append
612fddec 3977 "https://hackage.haskell.org/package/uniplate/uniplate-"
10de4306
PW
3978 version
3979 ".tar.gz"))
3980 (sha256
3981 (base32
3982 "1dx8f9aw27fz8kw0ad1nm6355w5rdl7bjvb427v2bsgnng30pipw"))))
3983 (build-system haskell-build-system)
2d47cee2 3984 (inputs
10de4306
PW
3985 `(("ghc-syb" ,ghc-syb)
3986 ("ghc-hashable" ,ghc-hashable)
3987 ("ghc-unordered-containers" ,ghc-unordered-containers)))
3988 (home-page "http://community.haskell.org/~ndm/uniplate/")
3989 (synopsis "Simple, concise and fast generic operations")
3990 (description "Uniplate is a library for writing simple and concise generic
3991operations. Uniplate has similar goals to the original Scrap Your Boilerplate
3992work, but is substantially simpler and faster.")
3ac73271 3993 (license license:bsd-3)))
10de4306 3994
3410470d
PW
3995(define-public ghc-base64-bytestring
3996 (package
3997 (name "ghc-base64-bytestring")
ecad6abf 3998 (version "1.0.0.2")
3410470d
PW
3999 (source
4000 (origin
4001 (method url-fetch)
4002 (uri (string-append
612fddec 4003 "https://hackage.haskell.org/package/base64-bytestring/base64-bytestring-"
3410470d
PW
4004 version
4005 ".tar.gz"))
4006 (sha256
ecad6abf 4007 (base32 "13305brzlac24pifiqd5a2z10c6k6amhpdy9cc0z5ryrkgnm8dhr"))))
3410470d
PW
4008 (build-system haskell-build-system)
4009 (arguments `(#:tests? #f)) ; FIXME: testing libraries are missing.
4010 (home-page "https://github.com/bos/base64-bytestring")
4011 (synopsis "Base64 encoding and decoding for ByteStrings")
4012 (description "This library provides fast base64 encoding and decoding for
4013Haskell @code{ByteString}s.")
3ac73271 4014 (license license:bsd-3)))
3410470d 4015
4e125497
PW
4016(define-public ghc-annotated-wl-pprint
4017 (package
4018 (name "ghc-annotated-wl-pprint")
4019 (version "0.7.0")
4020 (source
4021 (origin
4022 (method url-fetch)
4023 (uri (string-append
612fddec 4024 "https://hackage.haskell.org/package/annotated-wl-pprint"
4e125497
PW
4025 "/annotated-wl-pprint-" version
4026 ".tar.gz"))
4027 (sha256
4028 (base32
4029 "061xfz6qany3wf95csl8dcik2pz22cn8iv1qchhm16isw5zjs9hc"))))
4030 (build-system haskell-build-system)
4031 (home-page
4032 "https://github.com/david-christiansen/annotated-wl-pprint")
4033 (synopsis
4034 "The Wadler/Leijen Pretty Printer, with annotation support")
4035 (description "This is a modified version of wl-pprint, which was based on
4036Wadler's paper \"A Prettier Printer\". This version allows the library user
4037to annotate the text with semantic information, which can later be rendered in
4038a variety of ways.")
3ac73271 4039 (license license:bsd-3)))
4e125497 4040
febf7ef6
LC
4041(define-public ghc-wl-pprint
4042 (package
4043 (name "ghc-wl-pprint")
061832f1 4044 (version "1.2.1")
febf7ef6
LC
4045 (source (origin
4046 (method url-fetch)
4047 (uri (string-append
612fddec 4048 "https://hackage.haskell.org/package/wl-pprint/wl-pprint-"
febf7ef6
LC
4049 version ".tar.gz"))
4050 (sha256
4051 (base32
061832f1 4052 "0kn7y8pdrv8f87zhd5mifcl8fy3b2zvnzmzwhdqhxxlyzwiq6z0c"))))
febf7ef6 4053 (build-system haskell-build-system)
612fddec 4054 (home-page "https://hackage.haskell.org/package/wl-pprint")
febf7ef6
LC
4055 (synopsis "Wadler/Leijen pretty printer")
4056 (description
4057 "This is a pretty printing library based on Wadler's paper @i{A Prettier
4058Printer}. This version allows the library user to declare overlapping
4059instances of the @code{Pretty} class.")
4060 (license license:bsd-3)))
4061
e9333348
PW
4062(define-public ghc-ansi-wl-pprint
4063 (package
4064 (name "ghc-ansi-wl-pprint")
05916da7 4065 (version "0.6.8.2")
e9333348
PW
4066 (source
4067 (origin
4068 (method url-fetch)
05916da7
RW
4069 (uri (string-append "https://hackage.haskell.org/package/"
4070 "ansi-wl-pprint/ansi-wl-pprint-"
4071 version ".tar.gz"))
e9333348
PW
4072 (sha256
4073 (base32
05916da7 4074 "0gnb4mkqryv08vncxnj0bzwcnd749613yw3cxfzw6y3nsldp4c56"))))
e9333348 4075 (build-system haskell-build-system)
2d47cee2 4076 (inputs
e9333348 4077 `(("ghc-ansi-terminal" ,ghc-ansi-terminal)))
612fddec 4078 (home-page "https://github.com/ekmett/ansi-wl-pprint")
e9333348
PW
4079 (synopsis "Wadler/Leijen Pretty Printer for colored ANSI terminal output")
4080 (description "This is a pretty printing library based on Wadler's paper
4081\"A Prettier Printer\". It has been enhanced with support for ANSI terminal
4082colored output using the ansi-terminal package.")
3ac73271 4083 (license license:bsd-3)))
e9333348 4084
d692228e
FB
4085(define-public ghc-split
4086 (package
4087 (name "ghc-split")
5285d614 4088 (version "0.2.3.3")
d692228e
FB
4089 (outputs '("out" "doc"))
4090 (source
4091 (origin
4092 (method url-fetch)
4093 (uri (string-append
612fddec 4094 "https://hackage.haskell.org/package/split/split-"
d692228e
FB
4095 version
4096 ".tar.gz"))
4097 (sha256
4098 (base32
5285d614 4099 "04qlmkcyklznl03gsjg95b4nzb6i96gdapqg60rny9szgi7ngk8x"))))
d692228e 4100 (build-system haskell-build-system)
86e9076d 4101 (native-inputs
d692228e 4102 `(("ghc-quickcheck" ,ghc-quickcheck)))
612fddec 4103 (home-page "https://hackage.haskell.org/package/split")
565f040d
PW
4104 (synopsis "Combinator library for splitting lists")
4105 (description "This package provides a collection of Haskell functions for
4106splitting lists into parts, akin to the @code{split} function found in several
4107mainstream languages.")
3ac73271 4108 (license license:bsd-3)))
d692228e 4109
fa468e87
FB
4110(define-public ghc-parsec
4111 (package
4112 (name "ghc-parsec")
8ebdab0d 4113 (version "3.1.13.0")
fa468e87
FB
4114 (outputs '("out" "doc"))
4115 (source
4116 (origin
4117 (method url-fetch)
4118 (uri (string-append
612fddec 4119 "https://hackage.haskell.org/package/parsec/parsec-"
fa468e87
FB
4120 version
4121 ".tar.gz"))
4122 (sha256
8ebdab0d 4123 (base32 "1wc09pyn70p8z6llink10c8pqbh6ikyk554911yfwxv1g91swqbq"))))
fa468e87 4124 (build-system haskell-build-system)
2d47cee2 4125 (native-inputs
fa468e87 4126 `(("ghc-hunit" ,ghc-hunit)))
2d47cee2 4127 (inputs
f54f0475 4128 `(("ghc-text" ,ghc-text)))
fa468e87
FB
4129 (arguments
4130 `(#:tests? #f)) ; FIXME: currently missing libraries used for tests.
4131 (home-page
4132 "https://github.com/aslatter/parsec")
4133 (synopsis "Monadic parser combinators")
4134 (description "Parsec is a parser library. It is simple, safe, well
4135documented, has extensive libraries, good error messages, and is fast. It is
4136defined as a monad transformer that can be stacked on arbitrary monads, and it
4137is also parametric in the input stream type.")
3ac73271 4138 (license license:bsd-3)))
fa468e87 4139
aeecabd4
RW
4140(define-public ghc-parser-combinators
4141 (package
4142 (name "ghc-parser-combinators")
e2182202 4143 (version "1.0.0")
aeecabd4
RW
4144 (source
4145 (origin
4146 (method url-fetch)
4147 (uri (string-append "https://hackage.haskell.org/package/"
4148 "parser-combinators/parser-combinators-"
4149 version ".tar.gz"))
4150 (sha256
4151 (base32
e2182202 4152 "1pwfdsklqwvaynwpdzmx1bs35mp6dpsyaqdnzxnqcrxwf5h8sk75"))))
aeecabd4
RW
4153 (build-system haskell-build-system)
4154 (home-page "https://github.com/mrkkrp/parser-combinators")
4155 (synopsis "Commonly useful parser combinators")
4156 (description
4157 "This is a lightweight package providing commonly useful parser
4158combinators.")
4159 (license license:bsd-3)))
4160
ad5de226
RW
4161(define-public ghc-megaparsec
4162 (package
4163 (name "ghc-megaparsec")
81caf948 4164 (version "6.5.0")
ad5de226
RW
4165 (source
4166 (origin
4167 (method url-fetch)
4168 (uri (string-append "https://hackage.haskell.org/package/"
4169 "megaparsec/megaparsec-"
4170 version ".tar.gz"))
4171 (sha256
4172 (base32
81caf948 4173 "12iggy7qpf8x93jm64zf0g215xwy779bqyfyjk2bhmxqqr1yzgdy"))))
ad5de226 4174 (build-system haskell-build-system)
81caf948
TS
4175 (arguments
4176 `(#:cabal-revision
4177 ("4" "0ij3asi5vwlhbgwsy6nhli9a0qb7926mg809fsgyl1rnhs9fvpx1")))
ad5de226
RW
4178 (inputs
4179 `(("ghc-case-insensitive" ,ghc-case-insensitive)
ad5de226
RW
4180 ("ghc-parser-combinators" ,ghc-parser-combinators)
4181 ("ghc-scientific" ,ghc-scientific)
4182 ("ghc-text" ,ghc-text)))
4183 (native-inputs
4184 `(("ghc-quickcheck" ,ghc-quickcheck)
4185 ("ghc-hspec" ,ghc-hspec)
4186 ("ghc-hspec-expectations" ,ghc-hspec-expectations)
4187 ("hspec-discover" ,hspec-discover)))
4188 (home-page "https://github.com/mrkkrp/megaparsec")
4189 (synopsis "Monadic parser combinators")
4190 (description
4191 "This is an industrial-strength monadic parser combinator library.
4192Megaparsec is a feature-rich package that strikes a nice balance between
4193speed, flexibility, and quality of parse errors.")
4194 (license license:bsd-2)))
4195
f50fc138
FB
4196(define-public ghc-vector
4197 (package
4198 (name "ghc-vector")
4c8a1f40 4199 (version "0.12.0.1")
f50fc138
FB
4200 (outputs '("out" "doc"))
4201 (source
4202 (origin
4203 (method url-fetch)
4204 (uri (string-append
612fddec 4205 "https://hackage.haskell.org/package/vector/vector-"
f50fc138
FB
4206 version
4207 ".tar.gz"))
4208 (sha256
4209 (base32
4c8a1f40 4210 "0yrx2ypiaxahvaz84af5bi855hd3107kxkbqc8km29nsp5wyw05i"))))
f50fc138 4211 (build-system haskell-build-system)
4c8a1f40
RW
4212 ;; FIXME: To simplify upgrading all Haskell packages, we leave the tests
4213 ;; disabled for now.
57203a15
TS
4214 (arguments
4215 `(#:cabal-revision
4216 ("3" "0y5rh8k710i2a3p1h2rghvr5cfg78p5h0kbfi7ifxqqf6pzlyr1x")
4217 #:tests? #f))
e881752c 4218 (inputs
2d47cee2 4219 `(("ghc-primitive" ,ghc-primitive)
4c8a1f40
RW
4220 ("ghc-random" ,ghc-random)
4221 ("ghc-quickcheck" ,ghc-quickcheck)
4222 ;; ("ghc-hunit" ,ghc-hunit)
4223 ;; ("ghc-test-framework" ,ghc-test-framework)
4224 ;; ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
4225 ;; ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)
4226 ))
f50fc138
FB
4227 (home-page "https://github.com/haskell/vector")
4228 (synopsis "Efficient Arrays")
0b61d503
PW
4229 (description "This library provides an efficient implementation of
4230Int-indexed arrays (both mutable and immutable), with a powerful loop
4231optimisation framework.")
3ac73271 4232 (license license:bsd-3)))
f50fc138 4233
576cdc5a
PW
4234(define-public ghc-vector-binary-instances
4235 (package
4236 (name "ghc-vector-binary-instances")
a7c0b95a 4237 (version "0.2.4")
576cdc5a
PW
4238 (source
4239 (origin
4240 (method url-fetch)
4241 (uri (string-append
612fddec 4242 "https://hackage.haskell.org/package/"
576cdc5a
PW
4243 "vector-binary-instances/vector-binary-instances-"
4244 version ".tar.gz"))
4245 (sha256
4246 (base32
a7c0b95a 4247 "1y236jb72iab9ska1mc48z6yb0xgwmj45laaqdyjxksd84z7hbrb"))))
576cdc5a 4248 (build-system haskell-build-system)
4f2f0eb0
TS
4249 (arguments
4250 `(#:cabal-revision
4251 ("1" "196frl4akhfk7xf1nxzn8lmq99dxhzhsimanswn9yy7ym8zhki4i")))
576cdc5a 4252 (inputs
a7c0b95a
RW
4253 `(("ghc-vector" ,ghc-vector)))
4254 (native-inputs
4255 `(("ghc-tasty" ,ghc-tasty)
4256 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
576cdc5a
PW
4257 (home-page "https://github.com/bos/vector-binary-instances")
4258 (synopsis "Instances of Data.Binary and Data.Serialize for vector")
4259 (description "This library provides instances of @code{Binary} for the
4260types defined in the @code{vector} package, making it easy to serialize
4261vectors to and from disk. We use the generic interface to vectors, so all
4262vector types are supported. Specific instances are provided for unboxed,
4263boxed and storable vectors.")
3ac73271 4264 (license license:bsd-3)))
576cdc5a 4265
4c798726
TS
4266(define-public ghc-bloomfilter
4267 (package
4268 (name "ghc-bloomfilter")
4269 (version "2.0.1.0")
4270 (source
4271 (origin
4272 (method url-fetch)
4273 (uri (string-append "https://hackage.haskell.org/package/"
4274 "bloomfilter/bloomfilter-" version ".tar.gz"))
4275 (sha256
4276 (base32
4277 "03vrmncg1c10a2wcg5skq30m1yiknn7nwxz2gblyyfaxglshspkc"))))
4278 (build-system haskell-build-system)
4279 (native-inputs
4280 `(("ghc-quickcheck" ,ghc-quickcheck)
4281 ("ghc-random" ,ghc-random)
4282 ("ghc-test-framework" ,ghc-test-framework)
4283 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
4284 (home-page "https://github.com/bos/bloomfilter")
4285 (synopsis "Pure and impure Bloom filter implementations")
4286 (description "This package provides both mutable and immutable Bloom
4287filter data types, along with a family of hash functions and an easy-to-use
4288interface.")
4289 (license license:bsd-3)))
4290
abfed253
FB
4291(define-public ghc-network
4292 (package
4293 (name "ghc-network")
5a92fb41 4294 (version "2.6.3.6")
abfed253
FB
4295 (outputs '("out" "doc"))
4296 (source
4297 (origin
4298 (method url-fetch)
4299 (uri (string-append
612fddec 4300 "https://hackage.haskell.org/package/network/network-"
abfed253
FB
4301 version
4302 ".tar.gz"))
4303 (sha256
4304 (base32
5a92fb41 4305 "198mam7ahny48p9fajznbqq16a8ya2gw0xm3gnm1si1rmc4hdplv"))))
abfed253 4306 (build-system haskell-build-system)
2f430bf8
RW
4307 ;; The regression tests depend on an unpublished module.
4308 (arguments `(#:tests? #f))
4309 (native-inputs
4310 `(("ghc-hunit" ,ghc-hunit)
4311 ("ghc-doctest" ,ghc-doctest)
4312 ("ghc-test-framework" ,ghc-test-framework)
4313 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)))
abfed253
FB
4314 (home-page "https://github.com/haskell/network")
4315 (synopsis "Low-level networking interface")
4316 (description
4317 "This package provides a low-level networking interface.")
3ac73271 4318 (license license:bsd-3)))
abfed253 4319
9ce031c5
FB
4320(define-public ghc-network-uri
4321 (package
4322 (name "ghc-network-uri")
29addb27 4323 (version "2.6.1.0")
9ce031c5
FB
4324 (outputs '("out" "doc"))
4325 (source
4326 (origin
4327 (method url-fetch)
4328 (uri (string-append
612fddec 4329 "https://hackage.haskell.org/package/network-uri/network-uri-"
9ce031c5
FB
4330 version
4331 ".tar.gz"))
4332 (sha256
4333 (base32
29addb27 4334 "1w27zkvn39kjr9lmw9421y8w43h572ycsfafsb7kyvr3a4ihlgj2"))))
9ce031c5 4335 (build-system haskell-build-system)
9ce031c5
FB
4336 (arguments
4337 `(#:tests? #f)) ; FIXME: currently missing libraries used for tests.
2d47cee2
RW
4338 (native-inputs
4339 `(("ghc-hunit" ,ghc-hunit)))
4340 (inputs
4341 `(("ghc-parsec" ,ghc-parsec)
4342 ("ghc-network" ,ghc-network)))
9ce031c5
FB
4343 (home-page
4344 "https://github.com/haskell/network-uri")
e881752c
AK
4345 (synopsis "Library for URI manipulation")
4346 (description "This package provides an URI manipulation interface. In
36a4366d
EF
4347@code{network-2.6} the @code{Network.URI} module was split off from the
4348@code{network} package into this package.")
3ac73271 4349 (license license:bsd-3)))
9ce031c5 4350
cd27b23d
PW
4351(define-public ghc-ansi-terminal
4352 (package
4353 (name "ghc-ansi-terminal")
ecefe4ce 4354 (version "0.8.0.4")
cd27b23d
PW
4355 (source
4356 (origin
4357 (method url-fetch)
4358 (uri (string-append
612fddec 4359 "https://hackage.haskell.org/package/ansi-terminal/ansi-terminal-"
cd27b23d
PW
4360 version
4361 ".tar.gz"))
4362 (sha256
4363 (base32
ecefe4ce 4364 "0428gq8m3fdnb7ldcsyk97qcch76hcxbgh2666p6f76fs2qbhg7b"))))
cd27b23d 4365 (build-system haskell-build-system)
ecefe4ce
TS
4366 (inputs
4367 `(("ghc-colour" ,ghc-colour)))
cd27b23d
PW
4368 (home-page "https://github.com/feuerbach/ansi-terminal")
4369 (synopsis "ANSI terminal support for Haskell")
4370 (description "This package provides ANSI terminal support for Haskell. It
4371allows cursor movement, screen clearing, color output showing or hiding the
4372cursor, and changing the title.")
3ac73271 4373 (license license:bsd-3)))
cd27b23d 4374
6ecc4723
PW
4375(define-public ghc-vault
4376 (package
4377 (name "ghc-vault")
128c4c40 4378 (version "0.3.1.2")
6ecc4723
PW
4379 (source
4380 (origin
4381 (method url-fetch)
4382 (uri (string-append
612fddec 4383 "https://hackage.haskell.org/package/vault/vault-"
6ecc4723
PW
4384 version
4385 ".tar.gz"))
4386 (sha256
4387 (base32
128c4c40 4388 "072mbrihsdsb8c6xvg6lvk0rqjgvxvi8qkg4n6wwym5hq0pfa04y"))))
6ecc4723 4389 (build-system haskell-build-system)
2d47cee2 4390 (inputs
6ecc4723 4391 `(("ghc-unordered-containers" ,ghc-unordered-containers)
128c4c40
TS
4392 ("ghc-hashable" ,ghc-hashable)
4393 ("ghc-semigroupoids" ,ghc-semigroupoids)))
6ecc4723
PW
4394 (home-page
4395 "https://github.com/HeinrichApfelmus/vault")
4396 (synopsis "Persistent store for arbitrary values")
4397 (description "This package provides vaults for Haskell. A vault is a
4398persistent store for values of arbitrary types. It's like having first-class
4399access to the storage space behind @code{IORefs}. The data structure is
4400analogous to a bank vault, where you can access different bank boxes with
4401different keys; hence the name. Also provided is a @code{locker} type,
4402representing a store for a single element.")
3ac73271 4403 (license license:bsd-3)))
6ecc4723 4404
212ae095
AV
4405(define-public ghc-edisonapi
4406 (package
4407 (name "ghc-edisonapi")
4408 (version "1.3.1")
4409 (source
4410 (origin
4411 (method url-fetch)
4412 (uri (string-append "https://hackage.haskell.org/package/EdisonAPI"
4413 "/EdisonAPI-" version ".tar.gz"))
4414 (sha256
4415 (base32 "0vmmlsj8ggbpwx6fkf5fvb6jp0zpx6iba6b28m80lllr2p8bi8wm"))))
4416 (build-system haskell-build-system)
212ae095
AV
4417 (home-page "http://rwd.rdockins.name/edison/home/")
4418 (synopsis "Library of efficient, purely-functional data structures (API)")
4419 (description
4420 "Edison is a library of purely functional data structures written by
4421Chris Okasaki. It is named after Thomas Alva Edison and for the mnemonic
4422value EDiSon (Efficient Data Structures). Edison provides several families of
4423abstractions, each with multiple implementations. The main abstractions
4424provided by Edison are: Sequences such as stacks, queues, and dequeues;
4425Collections such as sets, bags and heaps; and Associative Collections such as
4426finite maps and priority queues where the priority and element are distinct.")
4427 (license license:expat)))
4428
1eced2a7
AV
4429(define-public ghc-edisoncore
4430 (package
4431 (name "ghc-edisoncore")
38922e49 4432 (version "1.3.2.1")
1eced2a7
AV
4433 (source
4434 (origin
4435 (method url-fetch)
4436 (uri (string-append "https://hackage.haskell.org/package/EdisonCore"
4437 "/EdisonCore-" version ".tar.gz"))
4438 (sha256
38922e49 4439 (base32 "0fgj5iwiv3v2gdgx7kjcr15dcs4x1kvmjspp3p99wyhh0x6h3ikk"))))
1eced2a7
AV
4440 (build-system haskell-build-system)
4441 (inputs
f54f0475 4442 `(("ghc-quickcheck" ,ghc-quickcheck)
1eced2a7
AV
4443 ("ghc-edisonapi" ,ghc-edisonapi)))
4444 (home-page "http://rwd.rdockins.name/edison/home/")
e695d79d 4445 (synopsis "Library of efficient, purely-functional data structures")
1eced2a7
AV
4446 (description
4447 "This package provides the core Edison data structure implementations,
4448including multiple sequence, set, bag, and finite map concrete implementations
4449with various performance characteristics.")
4450 (license license:expat)))
4451
899916b5
PW
4452(define-public ghc-mmorph
4453 (package
4454 (name "ghc-mmorph")
8b5d1142 4455 (version "1.1.2")
899916b5
PW
4456 (source
4457 (origin
4458 (method url-fetch)
4459 (uri (string-append
612fddec 4460 "https://hackage.haskell.org/package/mmorph/mmorph-"
899916b5
PW
4461 version
4462 ".tar.gz"))
4463 (sha256
4464 (base32
8b5d1142 4465 "1gjz1ib968lqybma7my1n19qq6cdj6a7nskrlnwy4jy9jrwzs2n9"))))
899916b5 4466 (build-system haskell-build-system)
aebb8db2 4467 (inputs
f54f0475 4468 `(("ghc-transformers-compat" ,ghc-transformers-compat)))
aebb8db2 4469 (home-page "https://hackage.haskell.org/package/mmorph")
899916b5
PW
4470 (synopsis "Monad morphisms")
4471 (description
4472 "This library provides monad morphism utilities, most commonly used for
4473manipulating monad transformer stacks.")
3ac73271 4474 (license license:bsd-3)))
899916b5 4475
a39e6fae
TS
4476(define-public ghc-ifelse
4477 (package
4478 (name "ghc-ifelse")
4479 (version "0.85")
4480 (source
4481 (origin
4482 (method url-fetch)
4483 (uri (string-append "https://hackage.haskell.org/package/"
4484 "IfElse/IfElse-" version ".tar.gz"))
4485 (sha256
4486 (base32
4487 "1kfx1bwfjczj93a8yqz1n8snqiq5655qgzwv1lrycry8wb1vzlwa"))))
4488 (build-system haskell-build-system)
a39e6fae
TS
4489 (home-page "http://hackage.haskell.org/package/IfElse")
4490 (synopsis "Monadic control flow with anaphoric variants")
4491 (description "This library provides functions for control flow inside of
4492monads with anaphoric variants on @code{if} and @code{when} and a C-like
4493@code{switch} function.")
4494 (license license:bsd-3)))
4495
85160205
PW
4496(define-public ghc-monad-control
4497 (package
4498 (name "ghc-monad-control")
d9c620ba 4499 (version "1.0.2.3")
85160205
PW
4500 (source
4501 (origin
4502 (method url-fetch)
4503 (uri (string-append
612fddec 4504 "https://hackage.haskell.org/package/monad-control"
85160205
PW
4505 "/monad-control-" version ".tar.gz"))
4506 (sha256
4507 (base32
d9c620ba 4508 "1c92833gr6cadidjdp8mlznkpp8lyxl0w3y7d19y8yi3klc3843c"))))
85160205 4509 (build-system haskell-build-system)
2d47cee2 4510 (inputs
85160205
PW
4511 `(("ghc-stm" ,ghc-stm)
4512 ("ghc-transformers-base" ,ghc-transformers-base)
4513 ("ghc-transformers-compat" ,ghc-transformers-compat)))
4514 (home-page "https://github.com/basvandijk/monad-control")
4515 (synopsis "Monad transformers to lift control operations like exception
4516catching")
4517 (description "This package defines the type class @code{MonadBaseControl},
4518a subset of @code{MonadBase} into which generic control operations such as
4519@code{catch} can be lifted from @code{IO} or any other base monad.")
3ac73271 4520 (license license:bsd-3)))
85160205 4521
005a08e3
AV
4522(define-public ghc-fail
4523 (package
4524 (name "ghc-fail")
4525 (version "4.9.0.0")
4526 (source
4527 (origin
4528 (method url-fetch)
4529 (uri (string-append "https://hackage.haskell.org/package/fail/fail-"
4530 version ".tar.gz"))
4531 (sha256
4532 (base32 "18nlj6xvnggy61gwbyrpmvbdkq928wv0wx2zcsljb52kbhddnp3d"))))
4533 (build-system haskell-build-system)
57184328 4534 (arguments `(#:haddock? #f)) ; Package contains no documentation.
005a08e3
AV
4535 (home-page "https://prime.haskell.org/wiki/Libraries/Proposals/MonadFail")
4536 (synopsis "Forward-compatible MonadFail class")
4537 (description
4538 "This package contains the @code{Control.Monad.Fail} module providing the
4539@uref{https://prime.haskell.org/wiki/Libraries/Proposals/MonadFail, MonadFail}
4540class that became available in
4541@uref{https://hackage.haskell.org/package/base-4.9.0.0, base-4.9.0.0} for
4542older @code{base} package versions. This package turns into an empty package
4543when used with GHC versions which already provide the
4544@code{Control.Monad.Fail} module.")
4545 (license license:bsd-3)))
4546
298af2a8
AV
4547(define-public ghc-monadplus
4548 (package
4549 (name "ghc-monadplus")
4550 (version "1.4.2")
4551 (source
4552 (origin
4553 (method url-fetch)
4554 (uri (string-append "https://hackage.haskell.org/package/monadplus"
4555 "/monadplus-" version ".tar.gz"))
4556 (sha256
4557 (base32 "15b5320wdpmdp5slpphnc1x4rhjch3igw245dp2jxbqyvchdavin"))))
4558 (build-system haskell-build-system)
4559 (home-page "https://hackage.haskell.org/package/monadplus")
4560 (synopsis "Filtering and folding over arbitrary MonadPlus instances")
4561 (description
4562 "This package generalizes many common stream operations such as
4563@code{filter}, @code{catMaybes} etc, enabling filtering and folding over
4564arbitrary @code{MonadPlus} instances.")
4565 (license license:bsd-3)))
4566
27e7c8b6
PW
4567(define-public ghc-byteorder
4568 (package
4569 (name "ghc-byteorder")
4570 (version "1.0.4")
4571 (source
4572 (origin
4573 (method url-fetch)
4574 (uri (string-append
612fddec 4575 "https://hackage.haskell.org/package/byteorder/byteorder-"
27e7c8b6
PW
4576 version
4577 ".tar.gz"))
4578 (sha256
4579 (base32
4580 "06995paxbxk8lldvarqpb3ygcjbg4v8dk4scib1rjzwlhssvn85x"))))
4581 (build-system haskell-build-system)
4582 (home-page
4583 "http://community.haskell.org/~aslatter/code/byteorder")
4584 (synopsis
4585 "Exposes the native endianness of the system")
4586 (description
4587 "This package is for working with the native byte-ordering of the
4588system.")
3ac73271 4589 (license license:bsd-3)))
27e7c8b6 4590
71470edd
PW
4591(define-public ghc-base-compat
4592 (package
4593 (name "ghc-base-compat")
88c33717 4594 (version "0.10.4")
71470edd
PW
4595 (source
4596 (origin
4597 (method url-fetch)
4598 (uri (string-append
612fddec 4599 "https://hackage.haskell.org/package/base-compat/base-compat-"
71470edd
PW
4600 version
4601 ".tar.gz"))
4602 (sha256
4603 (base32
88c33717 4604 "0ksp990gxs731mq19rzbxrbs43nazfljjc8krlx5bjqblw3kfs8d"))))
71470edd 4605 (build-system haskell-build-system)
2d47cee2 4606 (native-inputs
71470edd 4607 `(("ghc-quickcheck" ,ghc-quickcheck)
2d47cee2
RW
4608 ("ghc-hspec" ,ghc-hspec)
4609 ("hspec-discover" ,hspec-discover)))
71470edd
PW
4610 (home-page "https://hackage.haskell.org/package/base-compat")
4611 (synopsis "Haskell compiler compatibility library")
4612 (description "This library provides functions available in later versions
4613of base to a wider range of compilers, without requiring the use of CPP
4614pragmas in your code.")
3ac73271 4615 (license license:bsd-3)))
71470edd 4616
94e1dc7a
PW
4617(define-public ghc-blaze-builder
4618 (package
4619 (name "ghc-blaze-builder")
2a7c296a 4620 (version "0.4.1.0")
94e1dc7a
PW
4621 (source
4622 (origin
4623 (method url-fetch)
4624 (uri (string-append
612fddec 4625 "https://hackage.haskell.org/package/blaze-builder/blaze-builder-"
94e1dc7a
PW
4626 version
4627 ".tar.gz"))
4628 (sha256
4629 (base32
2a7c296a 4630 "05681dih2d8s96an945wkbwl05w8ddbcfx8n3r3ck79ydyb8pz4i"))))
94e1dc7a
PW
4631 (build-system haskell-build-system)
4632 (arguments `(#:tests? #f)) ; FIXME: Missing test libraries.
2d47cee2 4633 (inputs
94e1dc7a
PW
4634 `(("ghc-text" ,ghc-text)
4635 ("ghc-utf8-string" ,ghc-utf8-string)))
612fddec 4636 (home-page "https://github.com/lpsmith/blaze-builder")
94e1dc7a
PW
4637 (synopsis "Efficient buffered output")
4638 (description "This library provides an implementation of the older
4639@code{blaze-builder} interface in terms of the new builder that shipped with
4640@code{bytestring-0.10.4.0}. This implementation is mostly intended as a
4641bridge to the new builder, so that code that uses the old interface can
4642interoperate with code that uses the new implementation.")
3ac73271 4643 (license license:bsd-3)))
94e1dc7a 4644
a311f5d0
PW
4645(define-public ghc-blaze-markup
4646 (package
4647 (name "ghc-blaze-markup")
c70f00e2 4648 (version "0.8.2.1")
a311f5d0
PW
4649 (source
4650 (origin
4651 (method url-fetch)
969d0c64
RW
4652 (uri (string-append "https://hackage.haskell.org/package/"
4653 "blaze-markup/blaze-markup-"
4654 version ".tar.gz"))
a311f5d0
PW
4655 (sha256
4656 (base32
c70f00e2 4657 "0ih1c3qahkdgzbqihdhny5s313l2m66fbb88w8jbx7yz56y7rawh"))))
a311f5d0 4658 (build-system haskell-build-system)
c70f00e2
TS
4659 (arguments
4660 `(#:phases
4661 (modify-phases %standard-phases
4662 (add-before 'configure 'update-constraints
4663 (lambda _
4664 (substitute* "blaze-markup.cabal"
4665 (("tasty >= 1\\.0 && < 1\\.1")
4666 "tasty >= 1.0 && < 1.2")))))))
2d47cee2 4667 (inputs
a311f5d0
PW
4668 `(("ghc-blaze-builder" ,ghc-blaze-builder)
4669 ("ghc-text" ,ghc-text)))
969d0c64
RW
4670 (native-inputs
4671 `(("ghc-hunit" ,ghc-hunit)
4672 ("ghc-quickcheck" ,ghc-quickcheck)
4673 ("ghc-tasty" ,ghc-tasty)
4674 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
4675 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
98b90194 4676 (home-page "https://jaspervdj.be/blaze")
a311f5d0
PW
4677 (synopsis "Fast markup combinator library for Haskell")
4678 (description "This library provides core modules of a markup combinator
4679library for Haskell.")
3ac73271 4680 (license license:bsd-3)))
a311f5d0 4681
9525e25f
PW
4682(define-public ghc-easy-file
4683 (package
4684 (name "ghc-easy-file")
7d887a2c 4685 (version "0.2.2")
9525e25f
PW
4686 (source
4687 (origin
4688 (method url-fetch)
4689 (uri (string-append
612fddec 4690 "https://hackage.haskell.org/package/easy-file/easy-file-"
9525e25f
PW
4691 version
4692 ".tar.gz"))
4693 (sha256
4694 (base32
7d887a2c 4695 "0zmlcz723051qpn8l8vi51c5rx1blwrw4094jcshkmj8p9r2xxaj"))))
9525e25f
PW
4696 (build-system haskell-build-system)
4697 (home-page
612fddec 4698 "https://github.com/kazu-yamamoto/easy-file")
9525e25f
PW
4699 (synopsis "File handling library for Haskell")
4700 (description "This library provides file handling utilities for Haskell.")
3ac73271 4701 (license license:bsd-3)))
9525e25f 4702
e2fcaff2
PW
4703(define-public ghc-async
4704 (package
4705 (name "ghc-async")
b925e1f5 4706 (version "2.2.1")
e2fcaff2
PW
4707 (source
4708 (origin
4709 (method url-fetch)
4710 (uri (string-append
612fddec 4711 "https://hackage.haskell.org/package/async/async-"
e2fcaff2
PW
4712 version
4713 ".tar.gz"))
4714 (sha256
4715 (base32
b925e1f5 4716 "09whscli1q5z7lzyq9rfk0bq1ydplh6pjmc6qv0x668k5818c2wg"))))
e2fcaff2 4717 (build-system haskell-build-system)
e1c1b71c 4718 (inputs
2d47cee2 4719 `(("ghc-stm" ,ghc-stm)
b925e1f5 4720 ("ghc-hashable" ,ghc-hashable)
2d47cee2 4721 ("ghc-hunit" ,ghc-hunit)
e1c1b71c
EB
4722 ("ghc-test-framework" ,ghc-test-framework)
4723 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)))
e2fcaff2
PW
4724 (home-page "https://github.com/simonmar/async")
4725 (synopsis "Library to run IO operations asynchronously")
4726 (description "Async provides a library to run IO operations
554093b7 4727asynchronously, and wait for their results. It is a higher-level interface
e2fcaff2
PW
4728over threads in Haskell, in which @code{Async a} is a concurrent thread that
4729will eventually deliver a value of type @code{a}.")
3ac73271 4730 (license license:bsd-3)))
e2fcaff2 4731
49465144
PW
4732(define-public ghc-fingertree
4733 (package
4734 (name "ghc-fingertree")
9c072f82 4735 (version "0.1.4.1")
49465144
PW
4736 (source
4737 (origin
4738 (method url-fetch)
4739 (uri (string-append
612fddec 4740 "https://hackage.haskell.org/package/fingertree/fingertree-"
35deff72 4741 version ".tar.gz"))
49465144
PW
4742 (sha256
4743 (base32
9c072f82 4744 "192fyzv0pn1437wdpqg1l80rswkk4rw3w61r4bq7dhv354bdqy4p"))))
49465144 4745 (build-system haskell-build-system)
ffe8c06e
TGR
4746 (native-inputs
4747 `(("ghc-hunit" ,ghc-hunit)
4748 ("ghc-quickcheck" ,ghc-quickcheck)
4749 ("ghc-test-framework" ,ghc-test-framework)
4750 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
4751 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
612fddec 4752 (home-page "https://hackage.haskell.org/package/fingertree")
49465144
PW
4753 (synopsis "Generic finger-tree structure")
4754 (description "This library provides finger trees, a general sequence
4755representation with arbitrary annotations, for use as a base for
4756implementations of various collection types. It includes examples, as
4757described in section 4 of Ralf Hinze and Ross Paterson, \"Finger trees: a
4758simple general-purpose data structure\".")
3ac73271 4759 (license license:bsd-3)))
49465144 4760
918f690a
PW
4761(define-public ghc-optparse-applicative
4762 (package
4763 (name "ghc-optparse-applicative")
3c300542 4764 (version "0.14.2.0")
918f690a
PW
4765 (source
4766 (origin
4767 (method url-fetch)
4768 (uri (string-append
612fddec 4769 "https://hackage.haskell.org/package/optparse-applicative"
918f690a
PW
4770 "/optparse-applicative-" version ".tar.gz"))
4771 (sha256
4772 (base32
3c300542
AI
4773 "0c3z1mvynlyv1garjbdmdd3npm40dabgm75js4r07cf766c1wd71"))))
4774 (build-system haskell-build-system)
2d47cee2 4775 (inputs
918f690a
PW
4776 `(("ghc-transformers-compat" ,ghc-transformers-compat)
4777 ("ghc-ansi-wl-pprint" ,ghc-ansi-wl-pprint)))
7c86efe7
RW
4778 (native-inputs
4779 `(("ghc-quickcheck" ,ghc-quickcheck)))
918f690a
PW
4780 (home-page "https://github.com/pcapriotti/optparse-applicative")
4781 (synopsis "Utilities and combinators for parsing command line options")
4782 (description "This package provides utilities and combinators for parsing
4783command line options in Haskell.")
3ac73271 4784 (license license:bsd-3)))
918f690a 4785
09fb622c
PW
4786(define-public ghc-base-orphans
4787 (package
4788 (name "ghc-base-orphans")
19533b32 4789 (version "0.7")
09fb622c
PW
4790 (source
4791 (origin
4792 (method url-fetch)
4793 (uri (string-append
612fddec 4794 "https://hackage.haskell.org/package/base-orphans/base-orphans-"
09fb622c
PW
4795 version
4796 ".tar.gz"))
4797 (sha256
4798 (base32
19533b32 4799 "057f9npnqk71ccfh95djfkpd54dzazphj06grwxa3fyhwcwxrb8a"))))
09fb622c 4800 (build-system haskell-build-system)
2d47cee2 4801 (native-inputs
09fb622c 4802 `(("ghc-quickcheck" ,ghc-quickcheck)
2d47cee2
RW
4803 ("ghc-hspec" ,ghc-hspec)
4804 ("hspec-discover" ,hspec-discover)))
09fb622c
PW
4805 (home-page "https://hackage.haskell.org/package/base-orphans")
4806 (synopsis "Orphan instances for backwards compatibility")
4807 (description "This package defines orphan instances that mimic instances
4808available in later versions of base to a wider (older) range of compilers.")
3ac73271 4809 (license license:bsd-3)))
09fb622c 4810
bc0fb230
PW
4811(define-public ghc-auto-update
4812 (package
4813 (name "ghc-auto-update")
a8e5513c 4814 (version "0.1.4")
bc0fb230
PW
4815 (source
4816 (origin
4817 (method url-fetch)
4818 (uri (string-append
612fddec 4819 "https://hackage.haskell.org/package/auto-update/auto-update-"
bc0fb230
PW
4820 version
4821 ".tar.gz"))
4822 (sha256
4823 (base32
a8e5513c 4824 "09dlh2alsx2mw5kvj931yhbj0aw7jmly2cm9xbscm2sf098w35jy"))))
bc0fb230
PW
4825 (build-system haskell-build-system)
4826 (home-page "https://github.com/yesodweb/wai")
4827 (synopsis "Efficiently run periodic, on-demand actions")
4828 (description "This library provides mechanisms to efficiently run
4829periodic, on-demand actions in Haskell.")
3ac73271 4830 (license license:expat)))
bc0fb230 4831
7f0d5857
PW
4832(define-public ghc-tagged
4833 (package
4834 (name "ghc-tagged")
93303a3a 4835 (version "0.8.5")
7f0d5857
PW
4836 (source
4837 (origin
4838 (method url-fetch)
4839 (uri (string-append
612fddec 4840 "https://hackage.haskell.org/package/tagged/tagged-"
7f0d5857
PW
4841 version
4842 ".tar.gz"))
4843 (sha256
4844 (base32
93303a3a 4845 "16cdzh0bw16nvjnyyy5j9s60malhz4nnazw96vxb0xzdap4m2z74"))))
7f0d5857 4846 (build-system haskell-build-system)
70ee3228
TS
4847 (arguments
4848 `(#:cabal-revision
4849 ("2" "0r2knfcq0b4s652vlvlnfwxlc2mkc2ra9kl8bp4zdn1awmfy0ia5")))
93303a3a
RW
4850 (inputs
4851 `(("ghc-transformers-compat" ,ghc-transformers-compat)))
7f0d5857
PW
4852 (home-page "https://hackage.haskell.org/package/tagged")
4853 (synopsis "Haskell phantom types to avoid passing dummy arguments")
4854 (description "This library provides phantom types for Haskell 98, to avoid
4855having to unsafely pass dummy arguments.")
3ac73271 4856 (license license:bsd-3)))
7f0d5857 4857
a24ec6f2
PW
4858(define-public ghc-unbounded-delays
4859 (package
4860 (name "ghc-unbounded-delays")
58c102e0 4861 (version "0.1.1.0")
a24ec6f2
PW
4862 (source
4863 (origin
4864 (method url-fetch)
4865 (uri (string-append
612fddec 4866 "https://hackage.haskell.org/package/unbounded-delays/unbounded-delays-"
a24ec6f2
PW
4867 version
4868 ".tar.gz"))
4869 (sha256
4870 (base32
58c102e0 4871 "1ir9fghbrc214c97bwafk5ck6cacxz1pdnq4i18p604d1b8zg9wa"))))
a24ec6f2
PW
4872 (build-system haskell-build-system)
4873 (home-page "https://github.com/basvandijk/unbounded-delays")
4874 (synopsis "Unbounded thread delays and timeouts")
4875 (description "The @code{threadDelay} and @code{timeout} functions from the
4876Haskell base library use the bounded @code{Int} type for specifying the delay
4877or timeout period. This package provides alternative functions which use the
4878unbounded @code{Integer} type.")
3ac73271 4879 (license license:bsd-3)))
a24ec6f2 4880
f4e5c04e
PW
4881(define-public ghc-clock
4882 (package
4883 (name "ghc-clock")
615abb95 4884 (version "0.7.2")
f4e5c04e
PW
4885 (source
4886 (origin
4887 (method url-fetch)
4888 (uri (string-append
612fddec 4889 "https://hackage.haskell.org/package/"
f4e5c04e
PW
4890 "clock/"
4891 "clock-" version ".tar.gz"))
4892 (sha256
615abb95 4893 (base32 "07v91s20halsqjmziqb1sqjp2sjpckl9by7y28aaklwqi2bh2rl8"))))
f4e5c04e
PW
4894 (build-system haskell-build-system)
4895 (inputs
4896 `(("ghc-tasty" ,ghc-tasty)
4897 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
4898 (home-page "https://hackage.haskell.org/package/clock")
3f2ce1dc
PW
4899 (synopsis "High-resolution clock for Haskell")
4900 (description "A package for convenient access to high-resolution clock and
4901timer functions of different operating systems via a unified API.")
3ac73271 4902 (license license:bsd-3)))
3f2ce1dc 4903
6ffc5be7
PW
4904(define-public ghc-charset
4905 (package
4906 (name "ghc-charset")
4907 (version "0.3.7.1")
4908 (source
4909 (origin
4910 (method url-fetch)
4911 (uri (string-append
612fddec 4912 "https://hackage.haskell.org/package/charset/charset-"
6ffc5be7
PW
4913 version
4914 ".tar.gz"))
4915 (sha256
4916 (base32
4917 "1gn0m96qpjww8hpp2g1as5yy0wcwy4iq73h3kz6g0yxxhcl5sh9x"))))
4918 (build-system haskell-build-system)
6ffc5be7 4919 (inputs
2d47cee2
RW
4920 `(("ghc-semigroups" ,ghc-semigroups)
4921 ("ghc-unordered-containers" ,ghc-unordered-containers)))
612fddec 4922 (home-page "https://github.com/ekmett/charset")
6ffc5be7
PW
4923 (synopsis "Fast unicode character sets for Haskell")
4924 (description "This package provides fast unicode character sets for
4925Haskell, based on complemented PATRICIA tries.")
3ac73271 4926 (license license:bsd-3)))
6ffc5be7 4927
d76bf618
PW
4928(define-public ghc-bytestring-builder
4929 (package
4930 (name "ghc-bytestring-builder")
934dc8d2 4931 (version "0.10.8.1.0")
d76bf618
PW
4932 (source
4933 (origin
4934 (method url-fetch)
4935 (uri (string-append
612fddec 4936 "https://hackage.haskell.org/package/bytestring-builder"
d76bf618
PW
4937 "/bytestring-builder-" version ".tar.gz"))
4938 (sha256
4939 (base32
934dc8d2 4940 "1hnvjac28y44yn78c9vdp1zvrknvlw98ky3g4n5vivr16rvh8x3d"))))
d76bf618
PW
4941 (build-system haskell-build-system)
4942 (arguments `(#:haddock? #f)) ; Package contains no documentation.
612fddec 4943 (home-page "https://hackage.haskell.org/package/bytestring-builder")
d76bf618
PW
4944 (synopsis "The new bytestring builder, packaged outside of GHC")
4945 (description "This package provides the bytestring builder that is
4946debuting in bytestring-0.10.4.0, which should be shipping with GHC 7.8.
4947Compatibility package for older packages.")
3ac73271 4948 (license license:bsd-3)))
d76bf618 4949
878535bd
PW
4950(define-public ghc-nats
4951 (package
4952 (name "ghc-nats")
d62f6951 4953 (version "1.1.2")
878535bd
PW
4954 (source
4955 (origin
4956 (method url-fetch)
4957 (uri (string-append
612fddec 4958 "https://hackage.haskell.org/package/nats/nats-"
878535bd
PW
4959 version
4960 ".tar.gz"))
4961 (sha256
4962 (base32
d62f6951 4963 "1v40drmhixck3pz3mdfghamh73l4rp71mzcviipv1y8jhrfxilmr"))))
878535bd
PW
4964 (build-system haskell-build-system)
4965 (arguments `(#:haddock? #f))
4966 (inputs
4967 `(("ghc-hashable" ,ghc-hashable)))
4968 (home-page "https://hackage.haskell.org/package/nats")
4969 (synopsis "Natural numbers")
4970 (description "This library provides the natural numbers for Haskell.")
3ac73271 4971 (license license:bsd-3)))
878535bd 4972
bc8bda50
TS
4973(define-public ghc-nats-bootstrap
4974 (package
4975 (inherit ghc-nats)
4976 (name "ghc-nats-bootstrap")
4977 (inputs
4978 `(("ghc-hashable" ,ghc-hashable-bootstrap)))
4979 (properties '((hidden? #t)))))
4980
03f6074b
PW
4981(define-public ghc-void
4982 (package
4983 (name "ghc-void")
e99625b5 4984 (version "0.7.2")
03f6074b
PW
4985 (source
4986 (origin
4987 (method url-fetch)
4988 (uri (string-append
612fddec 4989 "https://hackage.haskell.org/package/void/void-"
03f6074b
PW
4990 version
4991 ".tar.gz"))
4992 (sha256
4993 (base32
e99625b5 4994 "0aygw0yb1h3yhmfl3bkwh5d3h0l4mmsxz7j53vdm6jryl1kgxzyk"))))
03f6074b 4995 (build-system haskell-build-system)
03f6074b 4996 (inputs
2d47cee2
RW
4997 `(("ghc-semigroups" ,ghc-semigroups)
4998 ("ghc-hashable" ,ghc-hashable)))
612fddec 4999 (home-page "https://github.com/ekmett/void")
03f6074b
PW
5000 (synopsis
5001 "Logically uninhabited data type")
5002 (description
5003 "A Haskell 98 logically uninhabited data type, used to indicate that a
5004given term should not exist.")
3ac73271 5005 (license license:bsd-3)))
03f6074b 5006
8e06e15b
TS
5007(define-public ghc-invariant
5008 (package
5009 (name "ghc-invariant")
5010 (version "0.5.1")
5011 (source
5012 (origin
5013 (method url-fetch)
5014 (uri (string-append
5015 "https://hackage.haskell.org/package/invariant/invariant-"
5016 version ".tar.gz"))
5017 (sha256
5018 (base32
5019 "0aqj7z55632qdg45074kgn9qfdxzb0a2f8lgjzr0l0i4mm2rr37b"))))
5020 (build-system haskell-build-system)
5021 (inputs
5022 `(("ghc-bifunctors" ,ghc-bifunctors)
5023 ("ghc-comonad" ,ghc-comonad)
5024 ("ghc-contravariant" ,ghc-contravariant)
5025 ("ghc-profunctors" ,ghc-profunctors)
5026 ("ghc-semigroups" ,ghc-semigroups)
5027 ("ghc-statevar" ,ghc-statevar)
5028 ("ghc-stm" ,ghc-stm)
5029 ("ghc-tagged" ,ghc-tagged)
5030 ("ghc-th-abstraction" ,ghc-th-abstraction)
5031 ("ghc-transformers-compat" ,ghc-transformers-compat)
5032 ("ghc-unordered-containers" ,ghc-unordered-containers)))
5033 (native-inputs
5034 `(("ghc-hspec" ,ghc-hspec)
5035 ("ghc-quickcheck" ,ghc-quickcheck)
5036 ("hspec-discover" ,hspec-discover)))
5037 (home-page "https://github.com/nfrisby/invariant-functors")
5038 (synopsis "Haskell98 invariant functors")
5039 (description "Haskell98 invariant functors (also known as exponential
5040functors). For more information, see Edward Kmett's article
5041@uref{http://comonad.com/reader/2008/rotten-bananas/, Rotten Bananas}.")
5042 (license license:bsd-2)))
5043
5125f63f
PW
5044(define-public ghc-kan-extensions
5045 (package
5046 (name "ghc-kan-extensions")
8b1573b1 5047 (version "5.2")
5125f63f
PW
5048 (source
5049 (origin
5050 (method url-fetch)
5051 (uri (string-append
612fddec 5052 "https://hackage.haskell.org/package/kan-extensions/kan-extensions-"
5125f63f
PW
5053 version
5054 ".tar.gz"))
5055 (sha256
5056 (base32
8b1573b1 5057 "1lyvyiwwh962j2nnnsqzlvp5zq6z8p3spvhmji99cjvldxc7wwkb"))))
5125f63f 5058 (build-system haskell-build-system)
5125f63f 5059 (inputs
2d47cee2
RW
5060 `(("ghc-adjunctions" ,ghc-adjunctions)
5061 ("ghc-comonad" ,ghc-comonad)
5125f63f
PW
5062 ("ghc-contravariant" ,ghc-contravariant)
5063 ("ghc-distributive" ,ghc-distributive)
5064 ("ghc-free" ,ghc-free)
8b1573b1 5065 ("ghc-invariant" ,ghc-invariant)
5125f63f 5066 ("ghc-semigroupoids" ,ghc-semigroupoids)
8b1573b1
TS
5067 ("ghc-tagged" ,ghc-tagged)
5068 ("ghc-transformers-compat" ,ghc-transformers-compat)))
612fddec 5069 (home-page "https://github.com/ekmett/kan-extensions/")
5125f63f
PW
5070 (synopsis "Kan extensions library")
5071 (description "This library provides Kan extensions, Kan lifts, various
5072forms of the Yoneda lemma, and (co)density (co)monads for Haskell.")
3ac73271 5073 (license license:bsd-3)))
5125f63f 5074
32ddba78
RW
5075(define-public ghc-call-stack
5076 (package
5077 (name "ghc-call-stack")
5078 (version "0.1.0")
5079 (source
5080 (origin
5081 (method url-fetch)
5082 (uri (string-append "https://hackage.haskell.org/package/"
5083 "call-stack/call-stack-"
5084 version ".tar.gz"))
5085 (sha256
5086 (base32
5087 "1qmihf5jafmc79sk52l6gpx75f5bnla2lp62kh3p34x3j84mwpzj"))))
5088 (build-system haskell-build-system)
5089 (inputs `(("ghc-nanospec" ,ghc-nanospec)))
5090 (home-page "https://github.com/sol/call-stack#readme")
5091 (synopsis "Use GHC call-stacks in a backward compatible way")
5092 (description "This package provides a compatibility layer for using GHC
5093call stacks with different versions of the compiler.")
5094 (license license:expat)))
5095
e42e9024
RW
5096;; This is used as an input to ghc-hunit. We cannot use ghc-call-stack there,
5097;; because it depends on ghc-nanospec, which depends on ghc-hunit.
5098(define-public ghc-call-stack-boot
bd208a13
CB
5099 (hidden-package
5100 (package
5101 (inherit ghc-call-stack)
5102 (arguments '(#:tests? #f))
5103 (inputs '()))))
e42e9024 5104
f271524a
PW
5105(define-public ghc-statevar
5106 (package
5107 (name "ghc-statevar")
c9fa2a28 5108 (version "1.1.1.1")
f271524a
PW
5109 (source
5110 (origin
5111 (method url-fetch)
5112 (uri (string-append
612fddec 5113 "https://hackage.haskell.org/package/StateVar/StateVar-"
f271524a
PW
5114 version
5115 ".tar.gz"))
5116 (sha256
5117 (base32
c9fa2a28 5118 "08r2iw0gdmfs4f6wraaq19vfmkjdbics3dbhw39y7mdjd98kcr7b"))))
f271524a 5119 (build-system haskell-build-system)
2d47cee2 5120 (inputs
f271524a 5121 `(("ghc-stm" ,ghc-stm)))
612fddec 5122 (home-page "https://hackage.haskell.org/package/StateVar")
f271524a
PW
5123 (synopsis "State variables for Haskell")
5124 (description "This package provides state variables, which are references
5125in the @code{IO} monad, like @code{IORef}s or parts of the OpenGL state.")
3ac73271 5126 (license license:bsd-3)))
f271524a 5127
e1a35c39
PW
5128(define-public ghc-lens
5129 (package
5130 (name "ghc-lens")
b9f67d10 5131 (version "4.16.1")
e1a35c39
PW
5132 (source
5133 (origin
5134 (method url-fetch)
38646a62
RW
5135 (uri (string-append "https://hackage.haskell.org/package/lens/lens-"
5136 version ".tar.gz"))
e1a35c39
PW
5137 (sha256
5138 (base32
b9f67d10 5139 "1im4drhbydbawd6i0jsrzpqihnmx4ywpkg7yg94ddwsw3mxwkgpm"))))
e1a35c39 5140 (build-system haskell-build-system)
b9f67d10
TS
5141 (arguments
5142 `(#:cabal-revision
5143 ("2" "11h83lj5mba4grhz1qx3irz10ysm9c3k7k6i6xv2cr60q8xin3ri")))
2d47cee2 5144 (inputs
e1a35c39
PW
5145 `(("ghc-base-orphans" ,ghc-base-orphans)
5146 ("ghc-bifunctors" ,ghc-bifunctors)
5147 ("ghc-distributive" ,ghc-distributive)
5148 ("ghc-exceptions" ,ghc-exceptions)
5149 ("ghc-free" ,ghc-free)
5150 ("ghc-kan-extensions" ,ghc-kan-extensions)
5151 ("ghc-parallel" ,ghc-parallel)
5152 ("ghc-reflection" ,ghc-reflection)
5153 ("ghc-semigroupoids" ,ghc-semigroupoids)
2d47cee2 5154 ("ghc-vector" ,ghc-vector)
38646a62 5155 ("ghc-call-stack" ,ghc-call-stack)
2d47cee2 5156 ("ghc-comonad" ,ghc-comonad)
e1a35c39
PW
5157 ("ghc-contravariant" ,ghc-contravariant)
5158 ("ghc-hashable" ,ghc-hashable)
e1a35c39
PW
5159 ("ghc-profunctors" ,ghc-profunctors)
5160 ("ghc-semigroups" ,ghc-semigroups)
5161 ("ghc-tagged" ,ghc-tagged)
5162 ("ghc-text" ,ghc-text)
5163 ("ghc-transformers-compat" ,ghc-transformers-compat)
5164 ("ghc-unordered-containers" ,ghc-unordered-containers)
5165 ("ghc-void" ,ghc-void)
5166 ("ghc-generic-deriving" ,ghc-generic-deriving)
5167 ("ghc-nats" ,ghc-nats)
5168 ("ghc-simple-reflect" ,ghc-simple-reflect)
5169 ("hlint" ,hlint)))
38646a62
RW
5170 (native-inputs
5171 `(("cabal-doctest" ,cabal-doctest)
b9f67d10 5172 ("ghc-doctest" ,ghc-doctest)
38646a62
RW
5173 ("ghc-hunit" ,ghc-hunit)
5174 ("ghc-test-framework" ,ghc-test-framework)
5175 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
5176 ("ghc-test-framework-th" ,ghc-test-framework-th)
5177 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)
5178 ("ghc-quickcheck" ,ghc-quickcheck)))
612fddec 5179 (home-page "https://github.com/ekmett/lens/")
e1a35c39
PW
5180 (synopsis "Lenses, Folds and Traversals")
5181 (description "This library provides @code{Control.Lens}. The combinators
5182in @code{Control.Lens} provide a highly generic toolbox for composing families
5183of getters, folds, isomorphisms, traversals, setters and lenses and their
5184indexed variants.")
3ac73271 5185 (license license:bsd-3)))
e1a35c39 5186
d7e67cf1
PW
5187(define-public ghc-cheapskate
5188 (package
5189 (name "ghc-cheapskate")
e1358124 5190 (version "0.1.1")
d7e67cf1
PW
5191 (source
5192 (origin
5193 (method url-fetch)
5194 (uri (string-append
612fddec 5195 "https://hackage.haskell.org/package/cheapskate/cheapskate-"
d7e67cf1
PW
5196 version
5197 ".tar.gz"))
5198 (sha256
5199 (base32
e1358124 5200 "1hiqi7h76shjzs2zj0j8g6wnq2hbiq1hmfafdazr97fba2zl2432"))))
d7e67cf1 5201 (build-system haskell-build-system)
d7e67cf1 5202 (inputs
f54f0475 5203 `(("ghc-text" ,ghc-text)
751de3d6 5204 ("ghc-blaze-html" ,ghc-blaze-html)
e1358124 5205 ("ghc-xss-sanitize" ,ghc-xss-sanitize)
2d47cee2 5206 ("ghc-data-default" ,ghc-data-default)
d7e67cf1 5207 ("ghc-syb" ,ghc-syb)
e1358124 5208 ("ghc-uniplate" ,ghc-uniplate)))
612fddec 5209 (home-page "https://github.com/jgm/cheapskate")
d7e67cf1
PW
5210 (synopsis "Experimental markdown processor")
5211 (description "Cheapskate is an experimental Markdown processor in pure
5212Haskell. It aims to process Markdown efficiently and in the most forgiving
5213possible way. It is designed to deal with any input, including garbage, with
4d9cdf3c
TGR
5214linear performance. Output is sanitized by default for protection against
5215cross-site scripting (@dfn{XSS}) attacks.")
3ac73271 5216 (license license:bsd-3)))
d7e67cf1 5217
4f997551
PW
5218(define-public ghc-bifunctors
5219 (package
5220 (name "ghc-bifunctors")
8574e6c7 5221 (version "5.5.3")
4f997551
PW
5222 (source
5223 (origin
5224 (method url-fetch)
5225 (uri (string-append
612fddec 5226 "https://hackage.haskell.org/package/bifunctors/bifunctors-"
4f997551
PW
5227 version
5228 ".tar.gz"))
5229 (sha256
5230 (base32
8574e6c7 5231 "1jn9rxg643xnlhrknmjz88nblcpsr45xwjkwwnn5nxpasa7m4d6l"))))
4f997551
PW
5232 (build-system haskell-build-system)
5233 (inputs
7044882c
RW
5234 `(("ghc-base-orphans" ,ghc-base-orphans)
5235 ("ghc-comonad" ,ghc-comonad)
5236 ("ghc-th-abstraction" ,ghc-th-abstraction)
5237 ("ghc-transformers-compat" ,ghc-transformers-compat)
5238 ("ghc-tagged" ,ghc-tagged)
4f997551 5239 ("ghc-semigroups" ,ghc-semigroups)))
7044882c
RW
5240 (native-inputs
5241 `(("ghc-hspec" ,ghc-hspec)
5242 ("hspec-discover" ,hspec-discover)
5243 ("ghc-quickcheck" ,ghc-quickcheck)))
612fddec 5244 (home-page "https://github.com/ekmett/bifunctors/")
4f997551
PW
5245 (synopsis "Bifunctors for Haskell")
5246 (description "This package provides bifunctors for Haskell.")
3ac73271 5247 (license license:bsd-3)))
4f997551 5248
aee98223
PW
5249(define-public ghc-semigroupoids
5250 (package
5251 (name "ghc-semigroupoids")
07f38c6a 5252 (version "5.2.2")
aee98223
PW
5253 (source
5254 (origin
5255 (method url-fetch)
5256 (uri (string-append
612fddec 5257 "https://hackage.haskell.org/package/semigroupoids/semigroupoids-"
aee98223
PW
5258 version
5259 ".tar.gz"))
5260 (sha256
5261 (base32
07f38c6a 5262 "17i96y4iqj8clcs090lf6k0ij3j16nj14vsfwz0mm9nd6i4gbpp4"))))
aee98223 5263 (build-system haskell-build-system)
07f38c6a
TS
5264 (arguments
5265 `(#:cabal-revision
5266 ("4" "0pqfrxzypjq6z8lgdkzq4vhcyqkpk5326hny0r6snpc3gm78r4ij")))
2d47cee2 5267 (inputs
aee98223
PW
5268 `(("ghc-base-orphans" ,ghc-base-orphans)
5269 ("ghc-transformers-compat" ,ghc-transformers-compat)
5270 ("ghc-bifunctors" ,ghc-bifunctors)
5271 ("ghc-comonad" ,ghc-comonad)
5272 ("ghc-contravariant" ,ghc-contravariant)
2d47cee2 5273 ("ghc-distributive" ,ghc-distributive)
07f38c6a 5274 ("ghc-hashable" ,ghc-hashable)
2d47cee2 5275 ("ghc-semigroups" ,ghc-semigroups)
07f38c6a
TS
5276 ("ghc-tagged" ,ghc-tagged)
5277 ("ghc-unordered-containers" ,ghc-unordered-containers)))
5278 (native-inputs
5279 `(("cabal-doctest" ,cabal-doctest)
5280 ("ghc-doctest" ,ghc-doctest)))
612fddec 5281 (home-page "https://github.com/ekmett/semigroupoids")
aee98223
PW
5282 (synopsis "Semigroupoids operations for Haskell")
5283 (description "This library provides a wide array of (semi)groupoids and
5284operations for working with them. A @code{Semigroupoid} is a @code{Category}
5285without the requirement of identity arrows for every object in the category.
5286A @code{Category} is any @code{Semigroupoid} for which the Yoneda lemma holds.
5287Finally, to work with these weaker structures it is beneficial to have
5288containers that can provide stronger guarantees about their contents, so
5289versions of @code{Traversable} and @code{Foldable} that can be folded with
5290just a @code{Semigroup} are added.")
3ac73271 5291 (license license:bsd-3)))
aee98223 5292
624efe73
PW
5293(define-public ghc-contravariant
5294 (package
5295 (name "ghc-contravariant")
0b0e45d8 5296 (version "1.4.1")
624efe73
PW
5297 (source
5298 (origin
5299 (method url-fetch)
5300 (uri (string-append
612fddec 5301 "https://hackage.haskell.org/package/contravariant/contravariant-"
624efe73
PW
5302 version
5303 ".tar.gz"))
5304 (sha256
5305 (base32
0b0e45d8 5306 "1vfhk8c5cxmmakx7rflap1ipkx5q0j5vnlrcz7yz6y53kxhksgf9"))))
624efe73 5307 (build-system haskell-build-system)
2d47cee2 5308 (inputs
624efe73
PW
5309 `(("ghc-void" ,ghc-void)
5310 ("ghc-transformers-compat" ,ghc-transformers-compat)
2d47cee2
RW
5311 ("ghc-statevar" ,ghc-statevar)
5312 ("ghc-semigroups" ,ghc-semigroups)))
624efe73 5313 (home-page
612fddec 5314 "https://github.com/ekmett/contravariant/")
624efe73
PW
5315 (synopsis "Contravariant functors")
5316 (description "Contravariant functors for Haskell.")
3ac73271 5317 (license license:bsd-3)))
624efe73 5318
946fa8c9
PW
5319(define-public ghc-semigroups
5320 (package
5321 (name "ghc-semigroups")
42c000dc 5322 (version "0.18.5")
946fa8c9
PW
5323 (source
5324 (origin
5325 (method url-fetch)
5326 (uri (string-append
612fddec 5327 "https://hackage.haskell.org/package/semigroups/semigroups-"
946fa8c9
PW
5328 version
5329 ".tar.gz"))
5330 (sha256
5331 (base32
42c000dc 5332 "17g29h62g1k51ghhvzkw72zksjgi6vs6bfipkj81pqw1dsprcamb"))))
946fa8c9 5333 (build-system haskell-build-system)
2d47cee2 5334 (inputs
946fa8c9
PW
5335 `(("ghc-nats" ,ghc-nats)
5336 ("ghc-tagged" ,ghc-tagged)
2d47cee2
RW
5337 ("ghc-unordered-containers" ,ghc-unordered-containers)
5338 ("ghc-text" ,ghc-text)
946fa8c9 5339 ("ghc-hashable" ,ghc-hashable)))
612fddec 5340 (home-page "https://github.com/ekmett/semigroups/")
946fa8c9
PW
5341 (synopsis "Semigroup operations for Haskell")
5342 (description "This package provides semigroups for Haskell. In
5343mathematics, a semigroup is an algebraic structure consisting of a set
5344together with an associative binary operation. A semigroup generalizes a
5345monoid in that there might not exist an identity element. It
5346also (originally) generalized a group (a monoid with all inverses) to a type
5347where every element did not have to have an inverse, thus the name
5348semigroup.")
3ac73271 5349 (license license:bsd-3)))
946fa8c9 5350
bc8bda50
TS
5351(define-public ghc-semigroups-bootstrap
5352 (package
5353 (inherit ghc-semigroups)
5354 (name "ghc-semigroups-bootstrap")
5355 (inputs
5356 `(("ghc-nats" ,ghc-nats-bootstrap)
5357 ("ghc-tagged" ,ghc-tagged)
5358 ("ghc-unordered-containers" ,ghc-unordered-containers-bootstrap)
5359 ("ghc-text" ,ghc-text)
5360 ("ghc-hashable" ,ghc-hashable-bootstrap)))
5361 (properties '(hidden? #t))))
5362
dc2e8ab7
PW
5363(define-public ghc-free
5364 (package
5365 (name "ghc-free")
95573872 5366 (version "5.0.2")
dc2e8ab7
PW
5367 (source
5368 (origin
5369 (method url-fetch)
5370 (uri (string-append
612fddec 5371 "https://hackage.haskell.org/package/free/free-"
dc2e8ab7
PW
5372 version
5373 ".tar.gz"))
5374 (sha256
5375 (base32
95573872 5376 "15m3n9vhz7z3kzv1w3wlfa3x8jp4cbrkwmrcjr7jlx39iqffn1gg"))))
dc2e8ab7 5377 (build-system haskell-build-system)
2d47cee2 5378 (inputs
dc2e8ab7
PW
5379 `(("ghc-prelude-extras" ,ghc-prelude-extras)
5380 ("ghc-profunctors" ,ghc-profunctors)
2d47cee2
RW
5381 ("ghc-exceptions" ,ghc-exceptions)
5382 ("ghc-bifunctors" ,ghc-bifunctors)
dc2e8ab7
PW
5383 ("ghc-comonad" ,ghc-comonad)
5384 ("ghc-distributive" ,ghc-distributive)
dc2e8ab7 5385 ("ghc-semigroupoids" ,ghc-semigroupoids)
95573872
TS
5386 ("ghc-semigroups" ,ghc-semigroups)
5387 ("ghc-transformers-base" ,ghc-transformers-base)
5388 ("ghc-transformers-compat" ,ghc-transformers-compat)))
612fddec 5389 (home-page "https://github.com/ekmett/free/")
dc2e8ab7
PW
5390 (synopsis "Unrestricted monads for Haskell")
5391 (description "This library provides free monads, which are useful for many
5392tree-like structures and domain specific languages. If @code{f} is a
5393@code{Functor} then the free @code{Monad} on @code{f} is the type of trees
5394whose nodes are labeled with the constructors of @code{f}. The word \"free\"
5395is used in the sense of \"unrestricted\" rather than \"zero-cost\": @code{Free
5396f} makes no constraining assumptions beyond those given by @code{f} and the
5397definition of @code{Monad}.")
3ac73271 5398 (license license:bsd-3)))
dc2e8ab7 5399
52db0e13
PW
5400(define-public ghc-adjunctions
5401 (package
5402 (name "ghc-adjunctions")
38563d91 5403 (version "4.4")
52db0e13
PW
5404 (source
5405 (origin
5406 (method url-fetch)
5407 (uri (string-append
612fddec 5408 "https://hackage.haskell.org/package/adjunctions/adjunctions-"
52db0e13
PW
5409 version
5410 ".tar.gz"))
5411 (sha256
5412 (base32
38563d91 5413 "1sbal7cbhm12crfnfhkk322jnzgx7lhw3jzq0p463bipagsjwz2h"))))
52db0e13 5414 (build-system haskell-build-system)
52db0e13 5415 (inputs
2d47cee2
RW
5416 `(("ghc-profunctors" ,ghc-profunctors)
5417 ("ghc-comonad" ,ghc-comonad)
52db0e13
PW
5418 ("ghc-contravariant" ,ghc-contravariant)
5419 ("ghc-distributive" ,ghc-distributive)
5420 ("ghc-free" ,ghc-free)
52db0e13
PW
5421 ("ghc-tagged" ,ghc-tagged)
5422 ("ghc-semigroupoids" ,ghc-semigroupoids)
5423 ("ghc-semigroups" ,ghc-semigroups)
38563d91 5424 ("ghc-transformers-compat" ,ghc-transformers-compat)
52db0e13 5425 ("ghc-void" ,ghc-void)))
38563d91
TS
5426 (native-inputs
5427 `(("ghc-generic-deriving" ,ghc-generic-deriving)
5428 ("ghc-hspec" ,ghc-hspec)
5429 ("hspec-discover" ,hspec-discover)))
612fddec 5430 (home-page "https://github.com/ekmett/adjunctions/")
52db0e13
PW
5431 (synopsis "Adjunctions and representable functors")
5432 (description "This library provides adjunctions and representable functors
5433for Haskell.")
3ac73271 5434 (license license:bsd-3)))
52db0e13 5435
96f23b62
AV
5436(define-public ghc-equivalence
5437 (package
5438 (name "ghc-equivalence")
5439 (version "0.3.2")
5440 (source
5441 (origin
5442 (method url-fetch)
5443 (uri (string-append "https://hackage.haskell.org/package/equivalence"
5444 "/equivalence-" version ".tar.gz"))
5445 (sha256
5446 (base32 "0a85bdyyvjqs5z4kfhhf758210k9gi9dv42ik66a3jl0z7aix8kx"))))
5447 (build-system haskell-build-system)
5448 (inputs
f54f0475 5449 `(("ghc-stmonadtrans" ,ghc-stmonadtrans)
96f23b62
AV
5450 ("ghc-transformers-compat" ,ghc-transformers-compat)
5451 ("ghc-quickcheck" ,ghc-quickcheck)
5452 ("ghc-test-framework" ,ghc-test-framework)
5453 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
5454 (home-page "https://github.com/pa-ba/equivalence")
5455 (synopsis "Maintaining an equivalence relation implemented as union-find")
5456 (description
5457 "This is an implementation of Tarjan's Union-Find algorithm (Robert E.@:
5458Tarjan. \"Efficiency of a Good But Not Linear Set Union Algorithm\",JACM
545922(2), 1975) in order to maintain an equivalence relation. This
5460implementation is a port of the @code{union-find} package using the @code{ST}
5461monad transformer (instead of the IO monad).")
5462 (license license:bsd-3)))
5463
cc553d02
PW
5464(define-public ghc-fast-logger
5465 (package
5466 (name "ghc-fast-logger")
05c08ec9 5467 (version "2.4.11")
cc553d02
PW
5468 (source
5469 (origin
5470 (method url-fetch)
5471 (uri (string-append
612fddec 5472 "https://hackage.haskell.org/package/fast-logger/fast-logger-"
cc553d02
PW
5473 version
5474 ".tar.gz"))
5475 (sha256
5476 (base32
05c08ec9 5477 "1ad2vq4nifdxshqk9yrmghqizhkgybfz134kpr6padglb2mxxrdv"))))
cc553d02 5478 (build-system haskell-build-system)
cc553d02 5479 (inputs
05c08ec9
RW
5480 `(("ghc-auto-update" ,ghc-auto-update)
5481 ("ghc-easy-file" ,ghc-easy-file)
5482 ("ghc-text" ,ghc-text)
5483 ("ghc-unix-time" ,ghc-unix-time)))
2d47cee2
RW
5484 (native-inputs
5485 `(("hspec-discover" ,hspec-discover)
5486 ("ghc-hspec" ,ghc-hspec)))
cc553d02
PW
5487 (home-page "https://hackage.haskell.org/package/fast-logger")
5488 (synopsis "Fast logging system")
5489 (description "This library provides a fast logging system for Haskell.")
3ac73271 5490 (license license:bsd-3)))
cc553d02 5491
cb2119e4
PW
5492(define-public ghc-doctest
5493 (package
5494 (name "ghc-doctest")
f9a97fb5 5495 (version "0.16.0")
cb2119e4
PW
5496 (source
5497 (origin
5498 (method url-fetch)
5499 (uri (string-append
612fddec 5500 "https://hackage.haskell.org/package/doctest/doctest-"
cb2119e4
PW
5501 version
5502 ".tar.gz"))
5503 (sha256
5504 (base32
f9a97fb5 5505 "0hkccch65s3kp0b36h7bqhilnpi4bx8kngncm7ma9vbd3dwacjdv"))))
cb2119e4
PW
5506 (build-system haskell-build-system)
5507 (arguments `(#:tests? #f)) ; FIXME: missing test framework
cb2119e4 5508 (inputs
2d47cee2
RW
5509 `(("ghc-syb" ,ghc-syb)
5510 ("ghc-paths" ,ghc-paths)
5511 ("ghc-base-compat" ,ghc-base-compat)
f9a97fb5 5512 ("ghc-code-page" ,ghc-code-page)
cb2119e4
PW
5513 ("ghc-hunit" ,ghc-hunit)
5514 ("ghc-hspec" ,ghc-hspec)
5515 ("ghc-quickcheck" ,ghc-quickcheck)
5516 ("ghc-stringbuilder" ,ghc-stringbuilder)
5517 ("ghc-silently" ,ghc-silently)
5518 ("ghc-setenv" ,ghc-setenv)))
5519 (home-page
5520 "https://github.com/sol/doctest#readme")
5521 (synopsis "Test interactive Haskell examples")
5522 (description "The doctest program checks examples in source code comments.
5523It is modeled after doctest for Python, see
98b90194 5524@uref{https://docs.python.org/library/doctest.html, the Doctest website}.")
3ac73271 5525 (license license:expat)))
cb2119e4 5526
6f5e312e
PW
5527(define-public ghc-lifted-base
5528 (package
5529 (name "ghc-lifted-base")
4a2100b8 5530 (version "0.2.3.12")
6f5e312e
PW
5531 (source
5532 (origin
5533 (method url-fetch)
5534 (uri (string-append
612fddec 5535 "https://hackage.haskell.org/package/lifted-base/lifted-base-"
6f5e312e
PW
5536 version
5537 ".tar.gz"))
5538 (sha256
5539 (base32
4a2100b8 5540 "1i8p8d3rkdh21bhgjjh32vd7qqjr7jq7p59qds0aw2kmargsjd61"))))
6f5e312e
PW
5541 (build-system haskell-build-system)
5542 (arguments `(#:tests? #f)) ; FIXME: Missing testing libraries.
6f5e312e 5543 (inputs
2d47cee2
RW
5544 `(("ghc-transformers-base" ,ghc-transformers-base)
5545 ("ghc-monad-control" ,ghc-monad-control)
5546 ("ghc-transformers-compat" ,ghc-transformers-compat)
6f5e312e
PW
5547 ("ghc-hunit" ,ghc-hunit)))
5548 (home-page "https://github.com/basvandijk/lifted-base")
5549 (synopsis "Lifted IO operations from the base library")
5550 (description "Lifted-base exports IO operations from the @code{base}
5551library lifted to any instance of @code{MonadBase} or @code{MonadBaseControl}.
5552Note that not all modules from @code{base} are converted yet. The package
5553includes a copy of the @code{monad-peel} test suite written by Anders
5554Kaseorg.")
3ac73271 5555 (license license:bsd-3)))
6f5e312e 5556
281bc4fd
PW
5557(define-public ghc-word8
5558 (package
5559 (name "ghc-word8")
bc819cdf 5560 (version "0.1.3")
281bc4fd
PW
5561 (source
5562 (origin
5563 (method url-fetch)
5564 (uri (string-append
612fddec 5565 "https://hackage.haskell.org/package/word8/word8-"
281bc4fd
PW
5566 version
5567 ".tar.gz"))
5568 (sha256
5569 (base32
bc819cdf 5570 "12jx7f13d2h1djq4fh4dyrab61sm49mj1w61j3rzp2vjfm696c16"))))
281bc4fd 5571 (build-system haskell-build-system)
2d47cee2
RW
5572 (native-inputs
5573 `(("ghc-hspec" ,ghc-hspec)
5574 ("hspec-discover" ,hspec-discover)))
612fddec 5575 (home-page "https://hackage.haskell.org/package/word8")
281bc4fd
PW
5576 (synopsis "Word8 library for Haskell")
5577 (description "Word8 library to be used with @code{Data.ByteString}.")
3ac73271 5578 (license license:bsd-3)))
281bc4fd 5579
fa709a2f
PW
5580(define-public ghc-stringsearch
5581 (package
5582 (name "ghc-stringsearch")
5583 (version "0.3.6.6")
5584 (source
5585 (origin
5586 (method url-fetch)
5587 (uri (string-append
612fddec 5588 "https://hackage.haskell.org/package/stringsearch/stringsearch-"
fa709a2f
PW
5589 version
5590 ".tar.gz"))
5591 (sha256
5592 (base32
5593 "0jpy9xjcjdbpi3wk6mg7xwd7wfi2mma70p97v1ij5i8bj9qijpr9"))))
5594 (build-system haskell-build-system)
5595 (home-page "https://bitbucket.org/dafis/stringsearch")
5596 (synopsis "Fast searching, splitting and replacing of ByteStrings")
5597 (description "This package provides several functions to quickly search
5598for substrings in strict or lazy @code{ByteStrings}. It also provides
5599functions for breaking or splitting on substrings and replacing all
5600occurrences of a substring (the first in case of overlaps) with another.")
3ac73271 5601 (license license:bsd-3)))
fa709a2f 5602
d0f4853a
RW
5603(define-public ghc-integer-logarithms
5604 (package
5605 (name "ghc-integer-logarithms")
7550f4b0 5606 (version "1.0.2.1")
d0f4853a
RW
5607 (source
5608 (origin
5609 (method url-fetch)
5610 (uri (string-append "https://hackage.haskell.org/package/"
5611 "integer-logarithms/integer-logarithms-"
5612 version ".tar.gz"))
5613 (sha256
5614 (base32
7550f4b0 5615 "1wj8kgjg5bn2yrs4zh9qfjv85cx6w998j9pi39yrbv305944mb9j"))))
d0f4853a 5616 (build-system haskell-build-system)
6300ba5b 5617 (arguments
6b05cfb4
TS
5618 `(#:phases
5619 (modify-phases %standard-phases
5620 (add-before 'configure 'update-constraints
5621 (lambda _
5622 (substitute* "integer-logarithms.cabal"
5623 (("tasty >= 0\\.10 && < 1\\.1")
5624 "tasty >= 0.10 && < 1.2")))))))
7550f4b0
AI
5625 (native-inputs
5626 `(("ghc-quickcheck" ,ghc-quickcheck)
5627 ("ghc-smallcheck" ,ghc-smallcheck)
5628 ("ghc-tasty" ,ghc-tasty)
d0f4853a 5629 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
7550f4b0
AI
5630 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
5631 ("ghc-tasty-smallcheck" ,ghc-tasty-smallcheck)))
5632 (home-page "https://github.com/Bodigrim/integer-logarithms")
d0f4853a
RW
5633 (synopsis "Integer logarithms")
5634 (description
5635 "This package provides the following modules:
5636@code{Math.NumberTheory.Logarithms} and
5637@code{Math.NumberTheory.Powers.Integer} from the @code{arithmoi} package,
5638@code{GHC.Integer.Logarithms.Compat} and
5639@code{Math.NumberTheory.Power.Natural}, as well as some additional functions
5640in migrated modules.")
5641 (license license:expat)))
5642
9d1944a4
TS
5643(define-public ghc-integer-logarithms-bootstrap
5644 (package
5645 (inherit ghc-integer-logarithms)
5646 (name "ghc-integer-logarithms-bootstrap")
5647 (arguments `(#:tests? #f))
5648 (native-inputs '())
5649 (properties '(hidden? #t))))
5650
a43a38a1
PW
5651(define-public ghc-scientific
5652 (package
5653 (name "ghc-scientific")
2cad58ca 5654 (version "0.3.6.2")
a43a38a1
PW
5655 (source
5656 (origin
5657 (method url-fetch)
5658 (uri (string-append
612fddec 5659 "https://hackage.haskell.org/package/scientific/scientific-"
a43a38a1
PW
5660 version
5661 ".tar.gz"))
5662 (sha256
5663 (base32
2cad58ca 5664 "03ql2f0ac8bsl524idy9xxa3kxisb2sj3avflzw580j5hzy0m397"))))
a43a38a1 5665 (build-system haskell-build-system)
a43a38a1 5666 (inputs
f9f4578b 5667 `(("ghc-integer-logarithms" ,ghc-integer-logarithms)
2d47cee2 5668 ("ghc-text" ,ghc-text)
a5044b6a 5669 ("ghc-hashable" ,ghc-hashable)
2cad58ca
AI
5670 ("ghc-primitive" ,ghc-primitive)))
5671 (native-inputs
5672 `(("ghc-tasty" ,ghc-tasty)
a43a38a1
PW
5673 ("ghc-tasty-ant-xml" ,ghc-tasty-ant-xml)
5674 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
5675 ("ghc-tasty-smallcheck" ,ghc-tasty-smallcheck)
5676 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
5677 ("ghc-smallcheck" ,ghc-smallcheck)
5678 ("ghc-quickcheck" ,ghc-quickcheck)))
5679 (home-page "https://github.com/basvandijk/scientific")
5680 (synopsis "Numbers represented using scientific notation")
5681 (description "This package provides @code{Data.Scientific}, which provides
5682the number type @code{Scientific}. Scientific numbers are arbitrary precision
5683and space efficient. They are represented using
98b90194 5684@uref{https://en.wikipedia.org/wiki/Scientific_notation, scientific
a43a38a1 5685notation}.")
3ac73271 5686 (license license:bsd-3)))
a43a38a1 5687
9d1944a4
TS
5688(define-public ghc-scientific-bootstrap
5689 (package
5690 (inherit ghc-scientific)
5691 (name "ghc-scientific-bootstrap")
5692 (arguments `(#:tests? #f))
5693 (inputs
5694 `(("ghc-integer-logarithms" ,ghc-integer-logarithms-bootstrap)
5695 ("ghc-text" ,ghc-text)
5696 ("ghc-hashable" ,ghc-hashable)
5697 ("ghc-primitive" ,ghc-primitive)))
5698 (native-inputs '())
5699 (properties '(hidden? #t))))
5700
3f8b8e73
AV
5701(define-public ghc-boxes
5702 (package
5703 (name "ghc-boxes")
50eff0d5 5704 (version "0.1.5")
3f8b8e73
AV
5705 (source
5706 (origin
5707 (method url-fetch)
5708 (uri (string-append "https://hackage.haskell.org/package/boxes/boxes-"
5709 version ".tar.gz"))
5710 (sha256
50eff0d5 5711 (base32 "1hsnmw95i58d4bkpxby3ddsj1cawypw4mdyb18m393s5i8p7iq9q"))))
3f8b8e73
AV
5712 (build-system haskell-build-system)
5713 (inputs
5714 `(("ghc-split" ,ghc-split)
5715 ("ghc-quickcheck" ,ghc-quickcheck)))
5716 (home-page "https://hackage.haskell.org/package/boxes")
5717 (synopsis "2D text pretty-printing library")
5718 (description
5719 "Boxes is a pretty-printing library for laying out text in two dimensions,
5720using a simple box model.")
5721 (license license:bsd-3)))
2aa0bada 5722
4cbd9f59
RW
5723(define-public ghc-deepseq-generics
5724 (package
5725 (name "ghc-deepseq-generics")
59e08129 5726 (version "0.2.0.0")
4cbd9f59
RW
5727 (source (origin
5728 (method url-fetch)
612fddec 5729 (uri (string-append "https://hackage.haskell.org/package/"
4cbd9f59
RW
5730 "deepseq-generics/deepseq-generics-"
5731 version ".tar.gz"))
5732 (sha256
5733 (base32
59e08129 5734 "17bwghc15mc9pchfd1w46jh2p3wzc86aj6a537wqwxn08rayzcxh"))))
4cbd9f59 5735 (build-system haskell-build-system)
5f4327df
TS
5736 (arguments
5737 `(#:cabal-revision
5738 ("2" "1pnidf8w8x0w5fsqgv8hhrw07slmhxwy5x4fikgk0bd6k76aqicb")))
4cbd9f59
RW
5739 (native-inputs
5740 `(("ghc-hunit" ,ghc-hunit)
5741 ("ghc-test-framework" ,ghc-test-framework)
5742 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)))
5743 (home-page "https://github.com/hvr/deepseq-generics")
5744 (synopsis "Generic RNF implementation")
5745 (description
5746 "This package provides a @code{GHC.Generics}-based
5747@code{Control.DeepSeq.Generics.genericRnf} function which can be used for
36a4366d 5748providing an @code{rnf} implementation.")
3ac73271 5749 (license license:bsd-3)))
4cbd9f59 5750
e0894701
RW
5751(define-public ghc-string-qq
5752 (package
5753 (name "ghc-string-qq")
5754 (version "0.0.2")
5755 (source
5756 (origin
5757 (method url-fetch)
5758 (uri (string-append
5759 "https://hackage.haskell.org/package/string-qq/string-qq-"
5760 version
5761 ".tar.gz"))
5762 (sha256
5763 (base32
5764 "0662m3i5xrdrr95w829bszkhp88mj9iy1zya54vk2sl5hz9wlmwp"))))
5765 (build-system haskell-build-system)
5766 (home-page "http://hackage.haskell.org/package/string-qq")
5767 (synopsis
5768 "QuasiQuoter for non-interpolated strings, texts and bytestrings.")
5769 (description
5770 "This package provides a quasiquoter for non-interpolated strings, texts
5771and bytestrings.")
5772 (license license:public-domain)))
5773
8164d58e
RW
5774(define-public ghc-pandoc-types
5775 (package
5776 (name "ghc-pandoc-types")
cdad36c3 5777 (version "1.17.5.1")
8164d58e
RW
5778 (source (origin
5779 (method url-fetch)
612fddec 5780 (uri (string-append "https://hackage.haskell.org/package/"
8164d58e
RW
5781 "pandoc-types/pandoc-types-"
5782 version ".tar.gz"))
5783 (sha256
5784 (base32
cdad36c3 5785 "1q6v2bynij724fv347mhqxdscwifzrx5jb9mq80608qf638fn717"))))
8164d58e 5786 (build-system haskell-build-system)
2d47cee2 5787 (inputs
8164d58e
RW
5788 `(("ghc-syb" ,ghc-syb)
5789 ("ghc-aeson" ,ghc-aeson)
9d087076
RW
5790 ("ghc-string-qq" ,ghc-string-qq)))
5791 (native-inputs
5792 `(("ghc-quickcheck" ,ghc-quickcheck)
5793 ("ghc-test-framework" ,ghc-test-framework)
5794 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
5795 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)
5796 ("ghc-hunit" ,ghc-hunit)))
8164d58e
RW
5797 (home-page "http://johnmacfarlane.net/pandoc")
5798 (synopsis "Types for representing a structured document")
5799 (description
5800 "This module defines the @code{Pandoc} data structure, which is used by
5801pandoc to represent structured documents. It also provides functions for
5802building up, manipulating and serialising @code{Pandoc} structures.")
3ac73271 5803 (license license:bsd-3)))
8164d58e 5804
ef2861b1
RW
5805(define-public ghc-texmath
5806 (package
5807 (name "ghc-texmath")
cfac79ba 5808 (version "0.11.0.1")
ef2861b1
RW
5809 (source (origin
5810 (method url-fetch)
612fddec 5811 (uri (string-append "https://hackage.haskell.org/package/"
ef2861b1
RW
5812 "texmath/texmath-" version ".tar.gz"))
5813 (sha256
5814 (base32
cfac79ba 5815 "11dc09hfnyfsz20ch2c867w0zdgjkzq41506lm61i3dk87ngdisf"))))
ef2861b1 5816 (build-system haskell-build-system)
2d47cee2 5817 (inputs
ef2861b1
RW
5818 `(("ghc-syb" ,ghc-syb)
5819 ("ghc-network-uri" ,ghc-network-uri)
5820 ("ghc-split" ,ghc-split)
5821 ("ghc-temporary" ,ghc-temporary)
5822 ("ghc-utf8-string" ,ghc-utf8-string)
5823 ("ghc-xml" ,ghc-xml)
5824 ("ghc-parsec" ,ghc-parsec)
ef2861b1 5825 ("ghc-pandoc-types" ,ghc-pandoc-types)))
612fddec 5826 (home-page "https://github.com/jgm/texmath")
ef2861b1
RW
5827 (synopsis "Conversion between formats used to represent mathematics")
5828 (description
5829 "The texmath library provides functions to read and write TeX math,
5830presentation MathML, and OMML (Office Math Markup Language, used in Microsoft
5831Office). Support is also included for converting math formats to pandoc's
5832native format (allowing conversion, via pandoc, to a variety of different
5833markup formats). The TeX reader supports basic LaTeX and AMS extensions, and
5834it can parse and apply LaTeX macros.")
3ac73271 5835 (license license:gpl2+)))
ef2861b1 5836
a54d11b5
RW
5837(define-public ghc-regex-pcre-builtin
5838 (package
5839 (name "ghc-regex-pcre-builtin")
5840 (version "0.94.4.8.8.35")
5841 (source (origin
5842 (method url-fetch)
612fddec 5843 (uri (string-append "https://hackage.haskell.org/package/"
a54d11b5
RW
5844 "regex-pcre-builtin/regex-pcre-builtin-"
5845 version ".tar.gz"))
5846 (sha256
5847 (base32
5848 "0y7as9wqlkykpipka2cfdhmcnin345q01pp0wsva8fwmvsavdl8b"))))
5849 (build-system haskell-build-system)
2d47cee2 5850 (inputs
a54d11b5 5851 `(("ghc-regex-base" ,ghc-regex-base)))
612fddec 5852 (home-page "https://hackage.haskell.org/package/regex-pcre")
a54d11b5
RW
5853 (synopsis "Enhancement of the builtin Text.Regex library")
5854 (description
5855 "This package is an enhancement of the @code{Text.Regex} library,
5856providing the PCRE backend to accompany regex-base, with bundled code from
98b90194 5857@url{https://www.pcre.org}.")
3ac73271 5858 (license license:bsd-3)))
a54d11b5 5859
05245dc9
RW
5860(define-public ghc-diff
5861 (package
5862 (name "ghc-diff")
307a0dce 5863 (version "0.3.4")
05245dc9
RW
5864 (source (origin
5865 (method url-fetch)
612fddec 5866 (uri (string-append "https://hackage.haskell.org/package/"
05245dc9
RW
5867 "Diff/Diff-" version ".tar.gz"))
5868 (sha256
5869 (base32
307a0dce 5870 "0bqcdvhxx8dmqc3793m6axg813wv9ldz2j37f1wygbbrbbndmdvp"))))
05245dc9 5871 (build-system haskell-build-system)
307a0dce
RW
5872 (native-inputs
5873 `(("ghc-quickcheck" ,ghc-quickcheck)
5874 ("ghc-test-framework" ,ghc-test-framework)
5875 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
98b90194 5876 (home-page "https://hub.darcs.net/sterlingclover/Diff")
05245dc9
RW
5877 (synopsis "O(ND) diff algorithm in Haskell")
5878 (description
5879 "This package provides an implementation of the standard diff algorithm,
5880and utilities for pretty printing.")
3ac73271 5881 (license license:bsd-3)))
05245dc9 5882
66c480b6
RW
5883(define-public ghc-highlighting-kate
5884 (package
5885 (name "ghc-highlighting-kate")
a9897365 5886 (version "0.6.4")
66c480b6
RW
5887 (source (origin
5888 (method url-fetch)
612fddec 5889 (uri (string-append "https://hackage.haskell.org/package/"
66c480b6
RW
5890 "highlighting-kate/highlighting-kate-"
5891 version ".tar.gz"))
5892 (sha256
5893 (base32
a9897365 5894 "1bqv00gfmrsf0jjr4qf3lhshvfkyzmhbi3pjb6mafbnsyn2k7f6q"))))
66c480b6 5895 (build-system haskell-build-system)
2d47cee2 5896 (inputs
66c480b6
RW
5897 `(("ghc-diff" ,ghc-diff)
5898 ("ghc-regex-pcre-builtin" ,ghc-regex-pcre-builtin)))
5899 (native-inputs
5900 `(("ghc-parsec" ,ghc-parsec)
5901 ("ghc-blaze-html" ,ghc-blaze-html)
f54f0475 5902 ("ghc-utf8-string" ,ghc-utf8-string)))
612fddec 5903 (home-page "https://github.com/jgm/highlighting-kate")
66c480b6
RW
5904 (synopsis "Syntax highlighting library")
5905 (description
5906 "Highlighting-kate is a syntax highlighting library with support for
5907nearly one hundred languages. The syntax parsers are automatically generated
98b90194 5908from @uref{https://kate-editor.org/, Kate syntax descriptions}, so any syntax
66c480b6
RW
5909supported by Kate can be added. An (optional) command-line program is
5910provided, along with a utility for generating new parsers from Kate XML syntax
5911descriptions.")
3ac73271 5912 (license license:gpl2+)))
66c480b6 5913
31be270b
RW
5914(define-public ghc-cmark
5915 (package
5916 (name "ghc-cmark")
b8490856 5917 (version "0.5.6")
31be270b
RW
5918 (source (origin
5919 (method url-fetch)
b8490856
TGR
5920 ;; XXX As of version 0.5.6, this package bundles libcmark 0.28.0.
5921 ;; See cbits/cmark_version.h.
612fddec 5922 (uri (string-append "https://hackage.haskell.org/package/"
31be270b
RW
5923 "cmark/cmark-" version ".tar.gz"))
5924 (sha256
5925 (base32
b8490856 5926 "1c1j3a8b9qx5zk9myqm3gap8ymz7fipwrdmyfsq9wkkdr9x4np45"))))
31be270b 5927 (build-system haskell-build-system)
2d47cee2 5928 (inputs
31be270b
RW
5929 `(("ghc-text" ,ghc-text)))
5930 (native-inputs
5931 `(("ghc-hunit" ,ghc-hunit)))
5932 (home-page "https://github.com/jgm/commonmark-hs")
5933 (synopsis "Fast, accurate CommonMark (Markdown) parser and renderer")
5934 (description
5935 "This package provides Haskell bindings for
5936@uref{https://github.com/jgm/cmark, libcmark}, the reference parser for
b8490856
TGR
5937CommonMark, a fully specified variant of Markdown. It includes bundled libcmark
5938sources, and does not require prior installation of the C library.")
3ac73271 5939 (license license:bsd-3)))
31be270b 5940
0ba94011
RW
5941(define-public ghc-cmark-gfm
5942 (package
5943 (name "ghc-cmark-gfm")
0ceaff6f 5944 (version "0.1.5")
0ba94011
RW
5945 (source
5946 (origin
5947 (method url-fetch)
5948 (uri (string-append "https://hackage.haskell.org/package/"
5949 "cmark-gfm/cmark-gfm-"
5950 version ".tar.gz"))
5951 (sha256
5952 (base32
0ceaff6f 5953 "13b0mqks5c1q989slgsa3ixr5vvkfyic4ynzgv00kgl5qrs7hqk7"))))
0ba94011
RW
5954 (build-system haskell-build-system)
5955 (inputs
5956 `(("ghc-text" ,ghc-text)))
5957 (native-inputs
5958 `(("ghc-hunit" ,ghc-hunit)))
5959 (home-page "https://github.com/kivikakk/cmark-gfm-hs")
5960 (synopsis
5961 "Fast, accurate GitHub Flavored Markdown parser and renderer")
5962 (description
5963 "This package provides Haskell bindings for libcmark-gfm, the reference
5964parser for GitHub Flavored Markdown, a fully specified variant of Markdown.
5965It includes sources for libcmark-gfm and does not require prior installation
5966of the C library.")
5967 (license license:bsd-3)))
5968
25b20a9c
RW
5969(define-public ghc-executable-path
5970 (package
5971 (name "ghc-executable-path")
1c42bd13 5972 (version "0.0.3.1")
25b20a9c
RW
5973 (source (origin
5974 (method url-fetch)
612fddec 5975 (uri (string-append "https://hackage.haskell.org/package/"
25b20a9c
RW
5976 "executable-path/executable-path-"
5977 version ".tar.gz"))
5978 (sha256
5979 (base32
1c42bd13 5980 "0vxwmnsvx13cawcyhbyljkds0l1vr996ijldycx7nj0asjv45iww"))))
25b20a9c 5981 (build-system haskell-build-system)
612fddec 5982 (home-page "https://hackage.haskell.org/package/executable-path")
25b20a9c
RW
5983 (synopsis "Find out the full path of the executable")
5984 (description
5985 "The documentation of @code{System.Environment.getProgName} says that
5986\"However, this is hard-to-impossible to implement on some non-Unix OSes, so
5987instead, for maximum portability, we just return the leafname of the program
5988as invoked.\" This library tries to provide the missing path.")
3ac73271 5989 (license license:public-domain)))
25b20a9c 5990
5de6eedc
RW
5991(define-public ghc-enclosed-exceptions
5992 (package
5993 (name "ghc-enclosed-exceptions")
376a6df4 5994 (version "1.0.3")
5de6eedc
RW
5995 (source (origin
5996 (method url-fetch)
612fddec 5997 (uri (string-append "https://hackage.haskell.org/package/"
5de6eedc
RW
5998 "enclosed-exceptions/enclosed-exceptions-"
5999 version ".tar.gz"))
6000 (sha256
6001 (base32
376a6df4 6002 "1fghjj7nkiddrf03ks8brjpr5x25yi9fs7xg6adbi4mc2gqr6vdg"))))
5de6eedc 6003 (build-system haskell-build-system)
376a6df4
RW
6004 ;; FIXME: one of the tests blocks forever:
6005 ;; "thread blocked indefinitely in an MVar operation"
6006 (arguments '(#:tests? #f))
2d47cee2 6007 (inputs
5de6eedc
RW
6008 `(("ghc-lifted-base" ,ghc-lifted-base)
6009 ("ghc-monad-control" ,ghc-monad-control)
6010 ("ghc-async" ,ghc-async)
6011 ("ghc-transformers-base" ,ghc-transformers-base)))
6012 (native-inputs
6013 `(("ghc-hspec" ,ghc-hspec)
6014 ("ghc-quickcheck" ,ghc-quickcheck)))
6015 (home-page "https://github.com/jcristovao/enclosed-exceptions")
6016 (synopsis "Catch all exceptions from within an enclosed computation")
6017 (description
6018 "This library implements a technique to catch all exceptions raised
6019within an enclosed computation, while remaining responsive to (external)
6020asynchronous exceptions.")
3ac73271 6021 (license license:expat)))
5de6eedc 6022
74d9f72e
RW
6023(define-public ghc-packedstring
6024 (package
6025 (name "ghc-packedstring")
6026 (version "0.1.0.1")
6027 (source (origin
6028 (method url-fetch)
612fddec 6029 (uri (string-append "https://hackage.haskell.org/package/"
74d9f72e
RW
6030 "packedstring/packedstring-"
6031 version ".tar.gz"))
6032 (sha256
6033 (base32
6034 "1x78pzzdlnpcmh9p37rlf8m5cxf3yqm2alf3whl4zpr9w25r0qj8"))))
6035 (build-system haskell-build-system)
6036 (arguments
6037 `(#:phases
6038 (modify-phases %standard-phases
6039 (add-after 'unpack 'enable-extension
6040 (lambda _
6041 ;; This package won't compile without the StandaloneDeriving
6042 ;; extension.
6043 (substitute* "packedstring.cabal"
6044 (("CPP") "CPP, StandaloneDeriving"))
6045 #t)))))
612fddec 6046 (home-page "https://hackage.haskell.org/package/packedstring")
74d9f72e
RW
6047 (synopsis "Library for packed strings")
6048 (description
6049 "This deprecated library provides an implementation of packed strings.")
3ac73271 6050 (license license:bsd-3)))
74d9f72e 6051
9dfc79b3
RW
6052(define-public ghc-th-abstraction
6053 (package
6054 (name "ghc-th-abstraction")
5fe52835 6055 (version "0.2.8.0")
9dfc79b3
RW
6056 (source
6057 (origin
6058 (method url-fetch)
6059 (uri (string-append "https://hackage.haskell.org/package/"
6060 "th-abstraction/th-abstraction-"
6061 version ".tar.gz"))
6062 (sha256
6063 (base32
5fe52835 6064 "0n17w4q2ykd0nica4sck2wng6md56rfad8x0icl0l8vnzb9nn4ya"))))
9dfc79b3
RW
6065 (build-system haskell-build-system)
6066 (home-page "https://github.com/glguy/th-abstraction")
6067 (synopsis "Nicer interface for reified information about data types")
6068 (description
6069 "This package normalizes variations in the interface for inspecting
6070datatype information via Template Haskell so that packages and support a
6071single, easier to use informational datatype while supporting many versions of
6072Template Haskell.")
6073 (license license:isc)))
6074
1777e1f2
RW
6075(define-public ghc-th-lift
6076 (package
6077 (name "ghc-th-lift")
08c3993f 6078 (version "0.7.11")
1777e1f2
RW
6079 (source (origin
6080 (method url-fetch)
612fddec 6081 (uri (string-append "https://hackage.haskell.org/package/"
1777e1f2
RW
6082 "th-lift/th-lift-" version ".tar.gz"))
6083 (sha256
6084 (base32
08c3993f 6085 "131360zxb0hazbqwbkk6ab2p77jkxr79bwwm618mrwrwkm3x2g6m"))))
1777e1f2 6086 (build-system haskell-build-system)
08c3993f
TS
6087 (inputs
6088 `(("ghc-th-abstraction" ,ghc-th-abstraction)))
612fddec 6089 (home-page "https://github.com/mboes/th-lift")
1777e1f2
RW
6090 (synopsis "Derive Template Haskell's Lift class for datatypes")
6091 (description
6092 "This is a Haskell library to derive Template Haskell's Lift class for
6093datatypes.")
3ac73271 6094 (license license:bsd-3)))
1777e1f2 6095
a6d1c4e7
RW
6096(define-public ghc-th-lift-instances
6097 (package
6098 (name "ghc-th-lift-instances")
6099 (version "0.1.11")
6100 (source
6101 (origin
6102 (method url-fetch)
6103 (uri (string-append "https://hackage.haskell.org/package/"
6104 "th-lift-instances/th-lift-instances-"
6105 version ".tar.gz"))
6106 (sha256
6107 (base32
6108 "1f56cp6ckcalld5jchv0kxpjkwcsixd7smd0g7r8cg67ppx6m90x"))))
6109 (build-system haskell-build-system)
6110 (inputs
6111 `(("ghc-th-lift" ,ghc-th-lift)
6112 ("ghc-vector" ,ghc-vector)
6113 ("ghc-text" ,ghc-text)
6114 ("ghc-quickcheck" ,ghc-quickcheck)))
6115 (home-page "https://github.com/bennofs/th-lift-instances/")
6116 (synopsis "Lift instances for template-haskell for common data types.")
6117 (description "Most data types in the Haskell platform do not have Lift
6118instances. This package provides orphan instances for @code{containers},
6119@code{text}, @code{bytestring} and @code{vector}.")
6120 (license license:bsd-3)))
6121
25101be9
RW
6122(define-public ghc-th-expand-syns
6123 (package
6124 (name "ghc-th-expand-syns")
46f88981 6125 (version "0.4.4.0")
25101be9
RW
6126 (source (origin
6127 (method url-fetch)
612fddec 6128 (uri (string-append "https://hackage.haskell.org/package/"
25101be9
RW
6129 "th-expand-syns/th-expand-syns-"
6130 version ".tar.gz"))
6131 (sha256
6132 (base32
46f88981 6133 "01prlvh3py5hq5ccjidfyp9ixq2zd88dkbsidyjrpkja6v8m43yc"))))
25101be9 6134 (build-system haskell-build-system)
2d47cee2 6135 (inputs
25101be9 6136 `(("ghc-syb" ,ghc-syb)))
612fddec 6137 (home-page "https://hackage.haskell.org/package/th-expand-syns")
25101be9
RW
6138 (synopsis "Expands type synonyms in Template Haskell ASTs")
6139 (description
6140 "This package enables users to expand type synonyms in Template Haskell
6141@dfn{abstract syntax trees} (ASTs).")
3ac73271 6142 (license license:bsd-3)))
25101be9 6143
536b84a8
RW
6144(define-public ghc-th-reify-many
6145 (package
6146 (name "ghc-th-reify-many")
5209fc22 6147 (version "0.1.8")
536b84a8
RW
6148 (source (origin
6149 (method url-fetch)
612fddec 6150 (uri (string-append "https://hackage.haskell.org/package/"
536b84a8
RW
6151 "th-reify-many/th-reify-many-"
6152 version ".tar.gz"))
6153 (sha256
6154 (base32
5209fc22 6155 "0hzy6hvhvcd6i60vx5cp2b7ggmnnjh9rx4h8bm8xw4grglcaxjnf"))))
536b84a8 6156 (build-system haskell-build-system)
2d47cee2 6157 (inputs
f54f0475 6158 `(("ghc-safe" ,ghc-safe)
536b84a8 6159 ("ghc-th-expand-syns" ,ghc-th-expand-syns)))
612fddec 6160 (home-page "https://github.com/mgsloan/th-reify-many")
536b84a8
RW
6161 (synopsis "Recurseively reify template haskell datatype info")
6162 (description
6163 "th-reify-many provides functions for recursively reifying top level
6164declarations. The main intended use case is for enumerating the names of
6165datatypes reachable from an initial datatype, and passing these names to some
6166function which generates instances.")
3ac73271 6167 (license license:bsd-3)))
536b84a8 6168
2e677251
RW
6169(define-public ghc-th-orphans
6170 (package
6171 (name "ghc-th-orphans")
7307a2f8 6172 (version "0.13.6")
2e677251
RW
6173 (source (origin
6174 (method url-fetch)
612fddec 6175 (uri (string-append "https://hackage.haskell.org/package/"
2e677251
RW
6176 "th-orphans/th-orphans-" version ".tar.gz"))
6177 (sha256
6178 (base32
7307a2f8 6179 "0sfl3pn9kq9da3ji3lsgzgzy82vz6yvsg80dmakc1jvk7awycibp"))))
2e677251 6180 (build-system haskell-build-system)
2d47cee2 6181 (inputs
2e677251 6182 `(("ghc-th-lift" ,ghc-th-lift)
080778a0 6183 ("ghc-th-lift-instances" ,ghc-th-lift-instances)
2e677251 6184 ("ghc-th-reify-many" ,ghc-th-reify-many)
2e677251
RW
6185 ("ghc-generic-deriving" ,ghc-generic-deriving)))
6186 (native-inputs
6187 `(("ghc-hspec" ,ghc-hspec)))
612fddec 6188 (home-page "https://hackage.haskell.org/package/th-orphans")
2e677251
RW
6189 (synopsis "Orphan instances for TH datatypes")
6190 (description
6191 "This package provides orphan instances for Template Haskell datatypes. In particular,
6192instances for @code{Ord} and @code{Lift}, as well as a few missing @code{Show}
6193and @code{Eq} instances. These instances used to live in the haskell-src-meta
6194package, and that's where the version number started.")
3ac73271 6195 (license license:bsd-3)))
2e677251 6196
e0ca14c7
AV
6197(define-public ghc-geniplate-mirror
6198 (package
6199 (name "ghc-geniplate-mirror")
6b850af4 6200 (version "0.7.6")
e0ca14c7
AV
6201 (source
6202 (origin
6203 (method url-fetch)
6204 (uri (string-append "https://hackage.haskell.org/package"
6205 "/geniplate-mirror"
6206 "/geniplate-mirror-" version ".tar.gz"))
6207 (sha256
6b850af4 6208 (base32 "1y0m0bw5zpm1y1y6d9qmxj3swl8j8hlw1shxbr5awycf6k884ssb"))))
e0ca14c7 6209 (build-system haskell-build-system)
e0ca14c7
AV
6210 (home-page "https://github.com/danr/geniplate")
6211 (synopsis "Use Template Haskell to generate Uniplate-like functions")
6212 (description
6213 "Use Template Haskell to generate Uniplate-like functions. This is a
6214maintained mirror of the @uref{https://hackage.haskell.org/package/geniplate,
6215geniplate} package, written by Lennart Augustsson.")
6216 (license license:bsd-3)))
6217
af4db693
AV
6218(define-public ghc-gitrev
6219 (package
6220 (name "ghc-gitrev")
6221 (version "1.3.1")
6222 (source
6223 (origin
6224 (method url-fetch)
6225 (uri (string-append "https://hackage.haskell.org/package/gitrev/gitrev-"
6226 version ".tar.gz"))
6227 (sha256
6228 (base32 "0cl3lfm6k1h8fxp2vxa6ihfp4v8igkz9h35iwyq2frzm4kdn96d8"))))
6229 (build-system haskell-build-system)
6230 (inputs `(("ghc-base-compat" ,ghc-base-compat)))
6231 (home-page "https://github.com/acfoltzer/gitrev")
6232 (synopsis "Compile git revision info into Haskell projects")
6233 (description
6234 "This package provides some handy Template Haskell splices for including
6235the current git hash and branch in the code of your project. This is useful
6236for including in panic messages, @command{--version} output, or diagnostic
6237info for more informative bug reports.")
6238 (license license:bsd-3)))
6239
3611fc7b
RW
6240(define-public ghc-haskell-src-meta
6241 (package
6242 (name "ghc-haskell-src-meta")
dcfee7b6 6243 (version "0.8.0.3")
3611fc7b
RW
6244 (source (origin
6245 (method url-fetch)
612fddec 6246 (uri (string-append "https://hackage.haskell.org/package/"
3611fc7b
RW
6247 "haskell-src-meta/haskell-src-meta-"
6248 version ".tar.gz"))
6249 (sha256
6250 (base32
dcfee7b6 6251 "08jq156zv4m0fjq6712n99c1jwxnpa6kj6sq8ch0r1l0a1ay6ww4"))))
3611fc7b 6252 (build-system haskell-build-system)
2d47cee2 6253 (inputs
3611fc7b
RW
6254 `(("ghc-haskell-src-exts" ,ghc-haskell-src-exts)
6255 ("ghc-syb" ,ghc-syb)
6256 ("ghc-th-orphans" ,ghc-th-orphans)))
db6dbe19
RW
6257 (native-inputs
6258 `(("ghc-hunit" ,ghc-hunit)
6259 ("ghc-test-framework" ,ghc-test-framework)
6260 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)))
612fddec 6261 (home-page "https://hackage.haskell.org/package/haskell-src-meta")
3611fc7b
RW
6262 (synopsis "Parse source to template-haskell abstract syntax")
6263 (description
6264 "This package provides tools to parse Haskell sources to the
6265template-haskell abstract syntax.")
3ac73271 6266 (license license:bsd-3)))
3611fc7b 6267
b55630a3
RW
6268(define-public ghc-conduit
6269 (package
6270 (name "ghc-conduit")
5cb46200 6271 (version "1.3.0.3")
b55630a3
RW
6272 (source (origin
6273 (method url-fetch)
612fddec 6274 (uri (string-append "https://hackage.haskell.org/package/"
b55630a3
RW
6275 "conduit/conduit-" version ".tar.gz"))
6276 (sha256
6277 (base32
5cb46200 6278 "1sangm0qqi9dzlq95746a3kl14k8b09592a423shxjf2a0b1yx5v"))))
b55630a3 6279 (build-system haskell-build-system)
2d47cee2 6280 (inputs
b55630a3
RW
6281 `(("ghc-exceptions" ,ghc-exceptions)
6282 ("ghc-lifted-base" ,ghc-lifted-base)
5cb46200 6283 ("ghc-mono-traversable" ,ghc-mono-traversable)
b55630a3 6284 ("ghc-mmorph" ,ghc-mmorph)
b55630a3 6285 ("ghc-resourcet" ,ghc-resourcet)
5cb46200 6286 ("ghc-silently" ,ghc-silently)
b55630a3 6287 ("ghc-transformers-base" ,ghc-transformers-base)
5cb46200
RW
6288 ("ghc-unliftio" ,ghc-unliftio)
6289 ("ghc-unliftio-core" ,ghc-unliftio-core)
6290 ("ghc-vector" ,ghc-vector)
b55630a3
RW
6291 ("ghc-void" ,ghc-void)))
6292 (native-inputs
6293 `(("ghc-quickcheck" ,ghc-quickcheck)
6294 ("ghc-hspec" ,ghc-hspec)
7bc18f41 6295 ("ghc-safe" ,ghc-safe)
6296 ("ghc-split" ,ghc-split)))
b55630a3
RW
6297 (home-page "https://github.com/snoyberg/conduit")
6298 (synopsis "Streaming data library ")
6299 (description
463c39c3 6300 "The conduit package is a solution to the streaming data problem,
6301allowing for production, transformation, and consumption of streams of data
6302in constant memory. It is an alternative to lazy I/O which guarantees
6303deterministic resource handling, and fits in the same general solution
6304space as enumerator/iteratee and pipes.")
3ac73271 6305 (license license:expat)))
b55630a3 6306
1c17529f
RW
6307(define-public ghc-logging-facade
6308 (package
6309 (name "ghc-logging-facade")
1cf4f272 6310 (version "0.3.0")
1c17529f
RW
6311 (source (origin
6312 (method url-fetch)
612fddec 6313 (uri (string-append "https://hackage.haskell.org/package/"
1c17529f
RW
6314 "logging-facade/logging-facade-"
6315 version ".tar.gz"))
6316 (sha256
6317 (base32
1cf4f272 6318 "0d0lwxxgd16is9aw6v3ps4r9prv3dj8xscmm45fvzq3nicjiawcf"))))
1c17529f
RW
6319 (build-system haskell-build-system)
6320 (native-inputs
2d47cee2
RW
6321 `(("ghc-hspec" ,ghc-hspec)
6322 ("hspec-discover" ,hspec-discover)))
612fddec 6323 (home-page "https://hackage.haskell.org/package/logging-facade")
1c17529f
RW
6324 (synopsis "Simple logging abstraction that allows multiple back-ends")
6325 (description
6326 "This package provides a simple logging abstraction that allows multiple
6327back-ends.")
3ac73271 6328 (license license:expat)))
1c17529f 6329
9efdbb72
RW
6330(define-public ghc-mockery
6331 (package
6332 (name "ghc-mockery")
b3cd1712 6333 (version "0.3.5")
9efdbb72
RW
6334 (source (origin
6335 (method url-fetch)
612fddec 6336 (uri (string-append "https://hackage.haskell.org/package/"
9efdbb72
RW
6337 "mockery/mockery-" version ".tar.gz"))
6338 (sha256
6339 (base32
b3cd1712 6340 "09ypgm3z69gq8mj6y66ss58kbjnk15r8frwcwbqcfbfksfnfv8dp"))))
9efdbb72 6341 (build-system haskell-build-system)
2d47cee2 6342 (inputs
9efdbb72 6343 `(("ghc-temporary" ,ghc-temporary)
1e521705
RW
6344 ("ghc-logging-facade" ,ghc-logging-facade)
6345 ("ghc-base-compat" ,ghc-base-compat)))
9efdbb72 6346 (native-inputs
2d47cee2
RW
6347 `(("ghc-hspec" ,ghc-hspec)
6348 ("hspec-discover" ,hspec-discover)))
612fddec 6349 (home-page "https://hackage.haskell.org/package/mockery")
9efdbb72
RW
6350 (synopsis "Support functions for automated testing")
6351 (description
6352 "The mockery package provides support functions for automated testing.")
3ac73271 6353 (license license:expat)))
9efdbb72 6354
132133c1
RW
6355(define-public ghc-yaml
6356 (package
6357 (name "ghc-yaml")
1613ee19 6358 (version "0.8.32")
132133c1
RW
6359 (source (origin
6360 (method url-fetch)
612fddec 6361 (uri (string-append "https://hackage.haskell.org/package/"
132133c1
RW
6362 "yaml/yaml-" version ".tar.gz"))
6363 (sha256
6364 (base32
1613ee19 6365 "0cbsyh4ilvjzq1q7pxls43k6pdqxg1l85xzibcwpbvmlvrizh86w"))))
132133c1 6366 (build-system haskell-build-system)
2d47cee2 6367 (inputs
132133c1
RW
6368 `(("ghc-conduit" ,ghc-conduit)
6369 ("ghc-resourcet" ,ghc-resourcet)
6370 ("ghc-aeson" ,ghc-aeson)
6371 ("ghc-unordered-containers" ,ghc-unordered-containers)
6372 ("ghc-vector" ,ghc-vector)
6373 ("ghc-text" ,ghc-text)
6374 ("ghc-attoparsec" ,ghc-attoparsec)
6375 ("ghc-scientific" ,ghc-scientific)
fe4f81bc
RW
6376 ("ghc-semigroups" ,ghc-semigroups)
6377 ("ghc-temporary" ,ghc-temporary)
132133c1 6378 ("ghc-enclosed-exceptions" ,ghc-enclosed-exceptions)
132133c1
RW
6379 ("ghc-base-compat" ,ghc-base-compat)))
6380 (native-inputs
6381 `(("ghc-hspec" ,ghc-hspec)
6382 ("ghc-hunit" ,ghc-hunit)
2d47cee2 6383 ("hspec-discover" ,hspec-discover)
132133c1 6384 ("ghc-mockery" ,ghc-mockery)))
612fddec 6385 (home-page "https://github.com/snoyberg/yaml/")
132133c1
RW
6386 (synopsis "Parsing and rendering YAML documents")
6387 (description
6388 "This package provides a library to parse and render YAML documents.")
3ac73271 6389 (license license:bsd-3)))
132133c1 6390
fcacbec3
RW
6391(define-public ghc-filemanip
6392 (package
6393 (name "ghc-filemanip")
6394 (version "0.3.6.3")
6395 (source (origin
6396 (method url-fetch)
612fddec 6397 (uri (string-append "https://hackage.haskell.org/package/"
fcacbec3
RW
6398 "filemanip/filemanip-" version ".tar.gz"))
6399 (sha256
6400 (base32
6401 "0ilqr8jv41zxcj5qyicg29m8s30b9v70x6f9h2h2rw5ap8bxldl8"))))
6402 (build-system haskell-build-system)
2d47cee2 6403 (inputs
f54f0475 6404 `(("ghc-unix-compat" ,ghc-unix-compat)))
fcacbec3
RW
6405 (home-page "https://github.com/bos/filemanip")
6406 (synopsis "File and directory manipulation for Haskell")
6407 (description
6408 "This package provides a Haskell library for working with files and
6409directories. It includes code for pattern matching, finding files, modifying
6410file contents, and more.")
3ac73271 6411 (license license:bsd-3)))
fcacbec3 6412
348519e1
RW
6413(define-public ghc-mmap
6414 (package
6415 (name "ghc-mmap")
6416 (version "0.5.9")
6417 (source (origin
6418 (method url-fetch)
612fddec 6419 (uri (string-append "https://hackage.haskell.org/package/"
348519e1
RW
6420 "mmap/mmap-" version ".tar.gz"))
6421 (sha256
6422 (base32
6423 "1y5mk3yf4b8r6rzmlx1xqn4skaigrqnv08sqq0v7r3nbw42bpz2q"))))
6424 (build-system haskell-build-system)
612fddec 6425 (home-page "https://hackage.haskell.org/package/mmap")
348519e1
RW
6426 (synopsis "Memory mapped files for Haskell")
6427 (description
6428 "This library provides a wrapper to @code{mmap}, allowing files or
6429devices to be lazily loaded into memory as strict or lazy @code{ByteStrings},
6430@code{ForeignPtrs} or plain @code{Ptrs}, using the virtual memory subsystem to
6431do on-demand loading.")
3ac73271 6432 (license license:bsd-3)))
348519e1 6433
12676ce8
RW
6434(define-public ghc-juicypixels
6435 (package
6436 (name "ghc-juicypixels")
38f0d04e 6437 (version "3.2.9.5")
12676ce8
RW
6438 (source (origin
6439 (method url-fetch)
612fddec 6440 (uri (string-append "https://hackage.haskell.org/package/"
12676ce8
RW
6441 "JuicyPixels/JuicyPixels-"
6442 version ".tar.gz"))
6443 (sha256
6444 (base32
38f0d04e 6445 "0mf3ihr0xy2wc2wzb9a17g0n3p60x7pvm8akwpvhdy8klvs6r744"))))
12676ce8 6446 (build-system haskell-build-system)
2d47cee2 6447 (inputs
f54f0475 6448 `(("ghc-zlib" ,ghc-zlib)
12676ce8
RW
6449 ("ghc-vector" ,ghc-vector)
6450 ("ghc-primitive" ,ghc-primitive)
6451 ("ghc-mmap" ,ghc-mmap)))
6452 (home-page "https://github.com/Twinside/Juicy.Pixels")
6453 (synopsis "Picture loading and serialization library")
6454 (description
6455 "This library can load and store images in PNG, Bitmap, JPEG, Radiance,
6456TIFF and GIF formats.")
3ac73271 6457 (license license:bsd-3)))
12676ce8 6458
ac5d633a
RW
6459(define-public ghc-hslua
6460 (package
6461 (name "ghc-hslua")
867ac7fe 6462 (version "0.9.5.2")
ac5d633a
RW
6463 (source (origin
6464 (method url-fetch)
612fddec 6465 (uri (string-append "https://hackage.haskell.org/package/"
ac5d633a
RW
6466 "hslua/hslua-" version ".tar.gz"))
6467 (sha256
6468 (base32
867ac7fe 6469 "1rdvv01p214zfjh6fcqjjgqwi8y42wad6cqzhlcv5gvclzw2ck8f"))))
ac5d633a 6470 (build-system haskell-build-system)
a231ef7e 6471 (arguments
ac5d633a
RW
6472 `(#:configure-flags '("-fsystem-lua")))
6473 (inputs
e045c014
RW
6474 `(("lua" ,lua)
6475 ("ghc-exceptions" ,ghc-exceptions)
6476 ("ghc-fail" ,ghc-fail)
2d47cee2 6477 ("ghc-text" ,ghc-text)))
ac5d633a 6478 (native-inputs
e045c014
RW
6479 `(("ghc-tasty" ,ghc-tasty)
6480 ("ghc-tasty-expected-failure" ,ghc-tasty-expected-failure)
6481 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
6482 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
ac5d633a
RW
6483 ("ghc-quickcheck" ,ghc-quickcheck)
6484 ("ghc-quickcheck-instances" ,ghc-quickcheck-instances)))
612fddec 6485 (home-page "https://hackage.haskell.org/package/hslua")
ac5d633a 6486 (synopsis "Lua language interpreter embedding in Haskell")
a231ef7e 6487 (description
ac5d633a 6488 "The Scripting.Lua module is a wrapper of the Lua language interpreter as
98b90194 6489described in @url{https://www.lua.org/}.")
3ac73271 6490 (license license:expat)))
ac5d633a 6491
8045d84d
RW
6492(define-public ghc-hslua-module-text
6493 (package
6494 (name "ghc-hslua-module-text")
6495 (version "0.1.2.1")
6496 (source
6497 (origin
6498 (method url-fetch)
6499 (uri (string-append "https://hackage.haskell.org/package/"
6500 "hslua-module-text/hslua-module-text-"
6501 version ".tar.gz"))
6502 (sha256
6503 (base32
6504 "0bcfpb1dhnxp0gr376ai4w7vczr9zrjl1r3r6w7kcxivfkwq9cxf"))))
6505 (build-system haskell-build-system)
085f26d1
TS
6506 (arguments
6507 `(#:cabal-revision
6508 ("1" "0vajlsd7y6pwa08635q0cx8z5c1c55bk7fvavw7g2vmyvxqjzx6n")))
8045d84d
RW
6509 (inputs
6510 `(("ghc-hslua" ,ghc-hslua)
6511 ("ghc-text" ,ghc-text)))
6512 (native-inputs
6513 `(("ghc-tasty" ,ghc-tasty)
6514 ("ghc-tasty-hunit" ,ghc-tasty-hunit)))
6515 (home-page "https://github.com/hslua/hslua-module-text")
6516 (synopsis "Lua module for text")
6517 (description
6518 "This package provides a UTF-8 aware subset of Lua's @code{string} module
6519for Haskell. The functions provided by this module are @code{upper},
6520@code{lower}, @code{len}, @code{reverse}, and @code{sub}.")
6521 (license license:expat)))
6522
51c05fcf
RW
6523(define-public ghc-byteable
6524 (package
6525 (name "ghc-byteable")
6526 (version "0.1.1")
6527 (source (origin
6528 (method url-fetch)
612fddec 6529 (uri (string-append "https://hackage.haskell.org/package/"
51c05fcf
RW
6530 "byteable/byteable-" version ".tar.gz"))
6531 (sha256
6532 (base32
6533 "1qizg0kxxjqnd3cbrjhhidk5pbbciz0pb3z5kzikjjxnnnhk8fr4"))))
6534 (build-system haskell-build-system)
612fddec 6535 (home-page "https://github.com/vincenthz/hs-byteable")
51c05fcf
RW
6536 (synopsis "Type class for sequence of bytes")
6537 (description
6538 "This package provides an abstract class to manipulate sequence of bytes.
6539The use case of this class is abstracting manipulation of types that are just
6540wrapping a bytestring with stronger and more meaniful name.")
3ac73271 6541 (license license:bsd-3)))
51c05fcf 6542
45813e67
RW
6543(define-public ghc-hourglass
6544 (package
6545 (name "ghc-hourglass")
bef2ee1c 6546 (version "0.2.12")
45813e67
RW
6547 (source (origin
6548 (method url-fetch)
612fddec 6549 (uri (string-append "https://hackage.haskell.org/package/"
45813e67
RW
6550 "hourglass/hourglass-" version ".tar.gz"))
6551 (sha256
6552 (base32
bef2ee1c 6553 "0jnay5j13vpz6i1rkaj3j0d9v8jfpri499xn3l7wd01f81f5ncs4"))))
45813e67 6554 (build-system haskell-build-system)
2d47cee2 6555 (inputs
f54f0475 6556 `(("ghc-old-locale" ,ghc-old-locale)))
45813e67
RW
6557 (native-inputs
6558 `(("ghc-tasty" ,ghc-tasty)
6559 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
6560 ("ghc-tasty-hunit" ,ghc-tasty-hunit)))
6561 (home-page "https://github.com/vincenthz/hs-hourglass")
6562 (synopsis "Simple time-related library for Haskell")
6563 (description
6564 "This is a simple time library providing a simple but powerful and
6565performant API. The backbone of the library are the @code{Timeable} and
6566@code{Time} type classes. Each @code{Timeable} instances can be converted to
6567a type that has a @code{Time} instances, and thus are different
6568representations of current time.")
3ac73271 6569 (license license:bsd-3)))
45813e67 6570
be04f802
AV
6571(define-public ghc-edit-distance
6572 (package
6573 (name "ghc-edit-distance")
6574 (version "0.2.2.1")
6575 (source
6576 (origin
6577 (method url-fetch)
6578 (uri (string-append "https://hackage.haskell.org/package/edit-distance"
6579 "/edit-distance-" version ".tar.gz"))
6580 (sha256
6581 (base32 "0jkca97zyv23yyilp3jydcrzxqhyk27swhzh82llvban5zp8b21y"))))
6582 (build-system haskell-build-system)
9f29ecc1 6583 (arguments
d340ee85
TS
6584 `(#:phases
6585 (modify-phases %standard-phases
6586 (add-before 'configure 'update-constraints
6587 (lambda _
6588 (substitute* "edit-distance.cabal"
6589 (("QuickCheck >= 2\\.4 && <2\\.9")
6590 "QuickCheck >= 2.4 && < 2.12")))))))
be04f802
AV
6591 (inputs
6592 `(("ghc-random" ,ghc-random)
6593 ("ghc-test-framework" ,ghc-test-framework)
6594 ("ghc-quickcheck" ,ghc-quickcheck)
6595 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
6596 (home-page "https://github.com/phadej/edit-distance")
6597 (synopsis "Levenshtein and restricted Damerau-Levenshtein edit distances")
6598 (description
6599 "This package provides optimized functions to determine the edit
6600distances for fuzzy matching, including Levenshtein and restricted
6601Damerau-Levenshtein algorithms.")
6602 (license license:bsd-3)))
6603
4dc2deb9
RW
6604(define-public ghc-memory
6605 (package
6606 (name "ghc-memory")
150e8e25 6607 (version "0.14.16")
4dc2deb9
RW
6608 (source (origin
6609 (method url-fetch)
612fddec 6610 (uri (string-append "https://hackage.haskell.org/package/"
4dc2deb9
RW
6611 "memory/memory-" version ".tar.gz"))
6612 (sha256
6613 (base32
150e8e25 6614 "03rbszi5d4z9rlbfv8ydrl1xf84xsh8z57g07f7j9qccn9587c3v"))))
4dc2deb9 6615 (build-system haskell-build-system)
150e8e25
RW
6616 (inputs
6617 `(("ghc-basement" ,ghc-basement)
6618 ("ghc-foundation" ,ghc-foundation)))
4dc2deb9
RW
6619 (native-inputs
6620 `(("ghc-tasty" ,ghc-tasty)
6621 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
6622 ("ghc-tasty-hunit" ,ghc-tasty-hunit)))
6623 (home-page "https://github.com/vincenthz/hs-memory")
6624 (synopsis "Memory abstractions for Haskell")
6625 (description
6626 "This package provides memory abstractions, such as chunk of memory,
6627polymorphic byte array management and manipulation functions. It contains a
6628polymorphic byte array abstraction and functions similar to strict ByteString,
6629different type of byte array abstraction, raw memory IO operations (memory
6630set, memory copy, ..) and more")
3ac73271 6631 (license license:bsd-3)))
4dc2deb9 6632
dcc5cf1d
RW
6633(define-public ghc-socks
6634 (package
6635 (name "ghc-socks")
fd358b34 6636 (version "0.5.6")
dcc5cf1d
RW
6637 (source (origin
6638 (method url-fetch)
612fddec 6639 (uri (string-append "https://hackage.haskell.org/package/"
dcc5cf1d
RW
6640 "socks/socks-" version ".tar.gz"))
6641 (sha256
6642 (base32
fd358b34 6643 "0f44qy74i0n6ll3jym0a2ipafkpw1h67amcpqmj8iq95h21wsqzs"))))
dcc5cf1d 6644 (build-system haskell-build-system)
2d47cee2 6645 (inputs
dcc5cf1d
RW
6646 `(("ghc-cereal" ,ghc-cereal)
6647 ("ghc-network" ,ghc-network)))
612fddec 6648 (home-page "https://github.com/vincenthz/hs-socks")
66e07664 6649 (synopsis "SOCKS proxy (version 5) implementation")
dcc5cf1d
RW
6650 (description
6651 "This library provides a SOCKS proxy (version 5) implementation.")
3ac73271 6652 (license license:bsd-3)))
dcc5cf1d 6653
86dd2ce0
RW
6654(define-public ghc-connection
6655 (package
6656 (name "ghc-connection")
f4585fd1 6657 (version "0.2.8")
86dd2ce0
RW
6658 (source (origin
6659 (method url-fetch)
612fddec 6660 (uri (string-append "https://hackage.haskell.org/package/"
86dd2ce0
RW
6661 "connection/connection-"
6662 version ".tar.gz"))
6663 (sha256
6664 (base32
f4585fd1 6665 "1swkb9w5vx9ph7x55y51dc0srj2z27nd9ibgn8c0qcl6hx7g9cbh"))))
86dd2ce0 6666 (build-system haskell-build-system)
2d47cee2 6667 (inputs
86dd2ce0
RW
6668 `(("ghc-byteable" ,ghc-byteable)
6669 ("ghc-data-default-class" ,ghc-data-default-class)
6670 ("ghc-network" ,ghc-network)
6671 ("ghc-tls" ,ghc-tls)
6672 ("ghc-socks" ,ghc-socks)
6673 ("ghc-x509" ,ghc-x509)
6674 ("ghc-x509-store" ,ghc-x509-store)
6675 ("ghc-x509-system" ,ghc-x509-system)
6676 ("ghc-x509-validation" ,ghc-x509-validation)))
612fddec 6677 (home-page "https://github.com/vincenthz/hs-connection")
86dd2ce0
RW
6678 (synopsis "Simple and easy network connections API")
6679 (description
6680 "This package provides a simple network library for all your connection
6681needs. It provides a very simple API to create sockets to a destination with
6682the choice of SSL/TLS, and SOCKS.")
3ac73271 6683 (license license:bsd-3)))
86dd2ce0 6684
61849d42 6685(define-public ghc-skylighting-core
14e9a397 6686 (package
61849d42
TS
6687 (name "ghc-skylighting-core")
6688 (version "0.7.2")
14e9a397
RW
6689 (source (origin
6690 (method url-fetch)
61849d42
TS
6691 (uri (string-append "https://hackage.haskell.org/package/"
6692 "skylighting-core/skylighting-core-"
6693 version ".tar.gz"))
14e9a397
RW
6694 (sha256
6695 (base32
61849d42 6696 "066fwmwsd7xcvwlinfk2izlzq0xp8697i6lnbgsbl71jdybyackq"))))
14e9a397
RW
6697 (build-system haskell-build-system)
6698 (inputs
6699 `(("ghc-aeson" ,ghc-aeson)
6700 ("ghc-ansi-terminal" ,ghc-ansi-terminal)
6701 ("ghc-attoparsec" ,ghc-attoparsec)
6702 ("ghc-base64-bytestring" ,ghc-base64-bytestring)
6703 ("ghc-blaze-html" ,ghc-blaze-html)
6704 ("ghc-case-insensitive" ,ghc-case-insensitive)
6705 ("ghc-colour" ,ghc-colour)
14e9a397 6706 ("ghc-hxt" ,ghc-hxt)
14e9a397
RW
6707 ("ghc-regex-pcre-builtin" ,ghc-regex-pcre-builtin)
6708 ("ghc-safe" ,ghc-safe)
6709 ("ghc-text" ,ghc-text)
6710 ("ghc-utf8-string" ,ghc-utf8-string)))
6711 (native-inputs
61849d42
TS
6712 `(("ghc-diff" ,ghc-diff)
6713 ("ghc-hunit" ,ghc-hunit)
6714 ("ghc-pretty-show" ,ghc-pretty-show)
14e9a397
RW
6715 ("ghc-quickcheck" ,ghc-quickcheck)
6716 ("ghc-tasty" ,ghc-tasty)
6717 ("ghc-tasty-golden" ,ghc-tasty-golden)
6718 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
6719 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
61849d42 6720 (home-page "https://github.com/jgm/skylighting")
14e9a397
RW
6721 (synopsis "Syntax highlighting library")
6722 (description "Skylighting is a syntax highlighting library with support
6723for over one hundred languages. It derives its tokenizers from XML syntax
6724definitions used by KDE's @code{KSyntaxHighlighting} framework, so any syntax
6725supported by that framework can be added. An optional command-line program is
6726provided. Skylighting is intended to be the successor to highlighting-kate.")
6727 (license license:gpl2)))
6728
61849d42
TS
6729(define-public ghc-skylighting
6730 (package
6731 (inherit ghc-skylighting-core)
6732 (name "ghc-skylighting")
6733 (version "0.7.2")
6734 (source (origin
6735 (method url-fetch)
6736 (uri (string-append "https://hackage.haskell.org/package/skylighting-"
6737 version "/skylighting-" version ".tar.gz"))
6738 (sha256
6739 (base32
6740 "1rh3z1a7a4clvksdw1qlpmhxqkfahwypi70k91whgfamzsqpxdch"))))
6741 (inputs
6742 `(("ghc-skylighting-core" ,ghc-skylighting-core)
6743 ,@(package-inputs ghc-skylighting-core)))))
6744
4012ea04
RW
6745(define-public ghc-doctemplates
6746 (package
6747 (name "ghc-doctemplates")
dfe5f60f 6748 (version "0.2.2.1")
4012ea04
RW
6749 (source
6750 (origin
6751 (method url-fetch)
6752 (uri (string-append "https://hackage.haskell.org/package/"
6753 "doctemplates/doctemplates-"
6754 version ".tar.gz"))
6755 (sha256
6756 (base32
dfe5f60f 6757 "1gyckfg3kgvzhxw14i7iwrw0crygvsp86sy53bbr1yn7bxbgn33b"))))
4012ea04
RW
6758 (build-system haskell-build-system)
6759 (inputs
6760 `(("ghc-aeson" ,ghc-aeson)
6761 ("ghc-blaze-markup" ,ghc-blaze-markup)
6762 ("ghc-blaze-html" ,ghc-blaze-html)
6763 ("ghc-text" ,ghc-text)
6764 ("ghc-vector" ,ghc-vector)
6765 ("ghc-parsec" ,ghc-parsec)
6766 ("ghc-unordered-containers" ,ghc-unordered-containers)
6767 ("ghc-scientific" ,ghc-scientific)))
6768 (native-inputs
6769 `(("ghc-hspec" ,ghc-hspec)))
6770 (home-page "https://github.com/jgm/doctemplates#readme")
6771 (synopsis "Pandoc-style document templates")
6772 (description
6773 "This package provides a simple text templating system used by pandoc.")
6774 (license license:bsd-3)))
6c055278 6775
85538709
RW
6776(define-public ghc-pandoc
6777 (package
6778 (name "ghc-pandoc")
970481f1 6779 (version "2.2.1")
85538709
RW
6780 (source
6781 (origin
6782 (method url-fetch)
612fddec 6783 (uri (string-append "https://hackage.haskell.org/package/pandoc/pandoc-"
85538709
RW
6784 version ".tar.gz"))
6785 (sha256
6786 (base32
970481f1 6787 "1dqin92w513l7whg5wdgrngnxsj5mb8gppfvn7kjgyv2pdgpy0zy"))))
85538709 6788 (build-system haskell-build-system)
6a006a11
TS
6789 (arguments
6790 `(#:phases
6791 (modify-phases %standard-phases
6792 (add-before 'configure 'update-constraints
6793 (lambda _
6794 (substitute* "pandoc.cabal"
6795 (("tasty >= 0\\.11 && < 1\\.1")
6796 "tasty >= 0.11 && < 1.1.1"))))
6797 (add-before 'configure 'patch-tests
6798 (lambda _
6799 ;; These tests fail benignly and have been adjusted upstream:
6800 ;; <https://github.com/commercialhaskell/stackage/issues/3719>.
6801 (substitute* "test/Tests/Old.hs"
6802 (("lhsWriterTests \"html\"") "[]")))))))
2d47cee2 6803 (inputs
1afa5abb
RW
6804 `(("ghc-aeson" ,ghc-aeson)
6805 ("ghc-aeson-pretty" ,ghc-aeson-pretty)
85538709 6806 ("ghc-base64-bytestring" ,ghc-base64-bytestring)
85538709
RW
6807 ("ghc-blaze-html" ,ghc-blaze-html)
6808 ("ghc-blaze-markup" ,ghc-blaze-markup)
1afa5abb
RW
6809 ("ghc-cmark-gfm" ,ghc-cmark-gfm)
6810 ("ghc-data-default" ,ghc-data-default)
85538709 6811 ("ghc-deepseq-generics" ,ghc-deepseq-generics)
1afa5abb
RW
6812 ("ghc-diff" ,ghc-diff)
6813 ("ghc-doctemplates" ,ghc-doctemplates)
6814 ("ghc-executable-path" ,ghc-executable-path)
6815 ("ghc-glob" ,ghc-glob)
6816 ("ghc-haddock-library" ,ghc-haddock-library)
6817 ("ghc-hslua" ,ghc-hslua)
6818 ("ghc-hslua-module-text" ,ghc-hslua-module-text)
6819 ("ghc-http" ,ghc-http)
85538709
RW
6820 ("ghc-http-client" ,ghc-http-client)
6821 ("ghc-http-client-tls" ,ghc-http-client-tls)
6822 ("ghc-http-types" ,ghc-http-types)
1afa5abb 6823 ("ghc-juicypixels" ,ghc-juicypixels)
1afa5abb
RW
6824 ("ghc-network" ,ghc-network)
6825 ("ghc-network-uri" ,ghc-network-uri)
6826 ("ghc-old-locale" ,ghc-old-locale)
6827 ("ghc-pandoc-types" ,ghc-pandoc-types)
6828 ("ghc-parsec" ,ghc-parsec)
6829 ("ghc-random" ,ghc-random)
6830 ("ghc-scientific" ,ghc-scientific)
6831 ("ghc-sha" ,ghc-sha)
6832 ("ghc-skylighting" ,ghc-skylighting)
6833 ("ghc-split" ,ghc-split)
6834 ("ghc-syb" ,ghc-syb)
6835 ("ghc-tagsoup" ,ghc-tagsoup)
6836 ("ghc-temporary" ,ghc-temporary)
6837 ("ghc-texmath" ,ghc-texmath)
6838 ("ghc-text" ,ghc-text)
6839 ("ghc-unordered-containers" ,ghc-unordered-containers)
6840 ("ghc-vector" ,ghc-vector)
6841 ("ghc-xml" ,ghc-xml)
6842 ("ghc-yaml" ,ghc-yaml)
6843 ("ghc-zip-archive" ,ghc-zip-archive)
6844 ("ghc-zlib" ,ghc-zlib)))
85538709 6845 (native-inputs
1afa5abb
RW
6846 `(("ghc-tasty" ,ghc-tasty)
6847 ("ghc-tasty-golden" ,ghc-tasty-golden)
6848 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
6849 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
85538709
RW
6850 ("ghc-quickcheck" ,ghc-quickcheck)
6851 ("ghc-hunit" ,ghc-hunit)))
98b90194 6852 (home-page "https://pandoc.org")
85538709
RW
6853 (synopsis "Conversion between markup formats")
6854 (description
6855 "Pandoc is a Haskell library for converting from one markup format to
6856another, and a command-line tool that uses this library. It can read and
6857write Markdown and (subsets of) other formats, such as HTML, reStructuredText,
6858LaTeX, DocBook, and many more.
6859
6860Pandoc extends standard Markdown syntax with footnotes, embedded LaTeX,
6861definition lists, tables, and other features. A compatibility mode is
6862provided for those who need a drop-in replacement for Markdown.pl.")
3ac73271 6863 (license license:gpl2+)))
85538709 6864
37e02bf6
RW
6865(define-public ghc-hs-bibutils
6866 (package
6867 (name "ghc-hs-bibutils")
568cafd5 6868 (version "6.6.0.0")
37e02bf6
RW
6869 (source
6870 (origin
6871 (method url-fetch)
6872 (uri (string-append
6873 "https://hackage.haskell.org/package/hs-bibutils/hs-bibutils-"
6874 version ".tar.gz"))
6875 (sha256
6876 (base32
568cafd5 6877 "0n2sz2zl4naspryd49ii858qkjp2lapns5a2gr8zm6vvn5sh1f0l"))))
37e02bf6
RW
6878 (build-system haskell-build-system)
6879 (inputs `(("ghc-syb" ,ghc-syb)))
6880 (home-page "https://hackage.haskell.org/package/hs-bibutils")
6881 (synopsis "Haskell bindings to bibutils")
6882 (description
6883 "This package provides Haskell bindings to @code{bibutils}, a library
6884that interconverts between various bibliography formats using a common
6885MODS-format XML intermediate.")
6886 (license license:gpl2+)))
6887
9ce764b6
RW
6888(define-public ghc-rfc5051
6889 (package
6890 (name "ghc-rfc5051")
6891 (version "0.1.0.3")
6892 (source
6893 (origin
6894 (method url-fetch)
6895 (uri (string-append "https://hackage.haskell.org/package/rfc5051/"
6896 "rfc5051-" version ".tar.gz"))
6897 (sha256
6898 (base32
6899 "0av4c3qvwbkbzrjrrg601ay9pds7wscqqp2lc2z78mv2lllap3g3"))))
6900 (build-system haskell-build-system)
98b90194 6901 (home-page "https://hackage.haskell.org/package/rfc5051")
9ce764b6
RW
6902 (synopsis "Simple unicode collation as per RFC5051")
6903 (description
6904 "This library implements @code{unicode-casemap}, the simple, non
6905locale-sensitive unicode collation algorithm described in RFC 5051. Proper
6906unicode collation can be done using @code{text-icu}, but that is a big
6907dependency that depends on a large C library, and @code{rfc5051} might be
6908better for some purposes.")
6909 (license license:bsd-3)))
6910
d5040b44
RW
6911(define-public ghc-typed-process
6912 (package
6913 (name "ghc-typed-process")
10ae7345 6914 (version "0.2.3.0")
d5040b44
RW
6915 (source
6916 (origin
6917 (method url-fetch)
6918 (uri (string-append "https://hackage.haskell.org/package/"
6919 "typed-process/typed-process-"
6920 version ".tar.gz"))
6921 (sha256
6922 (base32
10ae7345 6923 "0j36vrc9w841m5qbwqra1lwiznx31xfnhin1sm8x2c2739csbpn0"))))
d5040b44
RW
6924 (build-system haskell-build-system)
6925 (inputs
6926 `(("ghc-async" ,ghc-async)
6927 ("ghc-stm" ,ghc-stm)))
6928 (native-inputs
6929 `(("ghc-base64-bytestring" ,ghc-base64-bytestring)
6930 ("ghc-hspec" ,ghc-hspec)
6931 ("hspec-discover" ,hspec-discover)
6932 ("ghc-temporary" ,ghc-temporary)))
6933 (home-page "https://haskell-lang.org/library/typed-process")
6934 (synopsis "Run external processes with strong typing of streams")
6935 (description
6936 "This library provides the ability to launch and interact with external
6937processes. It wraps around the @code{process} library, and intends to improve
6938upon it.")
6939 (license license:expat)))
6940
1aa45bbf
RW
6941(define-public ghc-conduit-extra
6942 (package
6943 (name "ghc-conduit-extra")
c106c48e 6944 (version "1.3.0")
1aa45bbf
RW
6945 (source
6946 (origin
6947 (method url-fetch)
6948 (uri (string-append "https://hackage.haskell.org/package/"
6949 "conduit-extra/conduit-extra-"
6950 version ".tar.gz"))
6951 (sha256
6952 (base32
c106c48e 6953 "1bi2b6kdzy5f9glq46jzsk02has95jkxqz0cchpbmnakzhjwjh9c"))))
1aa45bbf
RW
6954 (build-system haskell-build-system)
6955 (inputs
6956 `(("ghc-conduit" ,ghc-conduit)
6957 ("ghc-exceptions" ,ghc-exceptions)
6958 ("ghc-monad-control" ,ghc-monad-control)
6959 ("ghc-text" ,ghc-text)
6960 ("ghc-transformers-base" ,ghc-transformers-base)
c106c48e 6961 ("ghc-typed-process" ,ghc-typed-process)
1aa45bbf
RW
6962 ("ghc-async" ,ghc-async)
6963 ("ghc-attoparsec" ,ghc-attoparsec)
6964 ("ghc-blaze-builder" ,ghc-blaze-builder)
6965 ("ghc-network" ,ghc-network)
6966 ("ghc-primitive" ,ghc-primitive)
6967 ("ghc-resourcet" ,ghc-resourcet)
6968 ("ghc-stm" ,ghc-stm)
6969 ("ghc-streaming-commons" ,ghc-streaming-commons)
6970 ("ghc-hspec" ,ghc-hspec)
6971 ("ghc-bytestring-builder" ,ghc-bytestring-builder)
6972 ("ghc-quickcheck" ,ghc-quickcheck)))
6973 (native-inputs
6974 `(("hspec-discover" ,hspec-discover)))
7bf837fd 6975 (home-page "https://github.com/snoyberg/conduit")
1aa45bbf
RW
6976 (synopsis "Conduit adapters for common libraries")
6977 (description
6978 "The @code{conduit} package itself maintains relative small dependencies.
6979The purpose of this package is to collect commonly used utility functions
6980wrapping other library dependencies, without depending on heavier-weight
6981dependencies. The basic idea is that this package should only depend on
6982@code{haskell-platform} packages and @code{conduit}.")
6983 (license license:expat)))
6984
e9ef2c51
RW
6985(define-public ghc-xml-types
6986 (package
6987 (name "ghc-xml-types")
6988 (version "0.3.6")
6989 (source
6990 (origin
6991 (method url-fetch)
6992 (uri (string-append "https://hackage.haskell.org/package/xml-types/"
6993 "xml-types-" version ".tar.gz"))
6994 (sha256
6995 (base32
6996 "1jgqxsa9p2q3h6nymbfmvhldqrqlwrhrzmwadlyc0li50x0d8dwr"))))
6997 (build-system haskell-build-system)
6998 (inputs `(("ghc-text" ,ghc-text)))
6999 (home-page "https://john-millikin.com/software/haskell-xml/")
7000 (synopsis "Basic types for representing XML")
7001 (description "This package provides basic types for representing XML
7002documents.")
7003 (license license:expat)))
7004
bfdfb0f6
RW
7005(define-public ghc-xml-conduit
7006 (package
7007 (name "ghc-xml-conduit")
e30397dd 7008 (version "1.8.0.1")
bfdfb0f6
RW
7009 (source
7010 (origin
7011 (method url-fetch)
7012 (uri (string-append "https://hackage.haskell.org/package/xml-conduit/"
7013 "xml-conduit-" version ".tar.gz"))
7014 (sha256
7015 (base32
e30397dd 7016 "177gmyigxql1pn3ncz0r8annwv5cbxnihbgrrg1dhm4gmc9jy2wq"))))
bfdfb0f6
RW
7017 (build-system haskell-build-system)
7018 (inputs
7019 `(("ghc-conduit" ,ghc-conduit)
7020 ("ghc-conduit-extra" ,ghc-conduit-extra)
e30397dd 7021 ("ghc-doctest" ,ghc-doctest)
bfdfb0f6
RW
7022 ("ghc-resourcet" ,ghc-resourcet)
7023 ("ghc-text" ,ghc-text)
7024 ("ghc-xml-types" ,ghc-xml-types)
7025 ("ghc-attoparsec" ,ghc-attoparsec)
29a26386 7026 ("ghc-data-default-class" ,ghc-data-default-class)
bfdfb0f6
RW
7027 ("ghc-blaze-markup" ,ghc-blaze-markup)
7028 ("ghc-blaze-html" ,ghc-blaze-html)
bfdfb0f6
RW
7029 ("ghc-monad-control" ,ghc-monad-control)
7030 ("ghc-hspec" ,ghc-hspec)
7031 ("ghc-hunit" ,ghc-hunit)))
7bf837fd 7032 (home-page "https://github.com/snoyberg/xml")
bfdfb0f6
RW
7033 (synopsis "Utilities for dealing with XML with the conduit package")
7034 (description
7035 "This package provides pure-Haskell utilities for dealing with XML with
7036the @code{conduit} package.")
7037 (license license:expat)))
7038
eb0ff8a3
RW
7039(define-public ghc-pandoc-citeproc
7040 (package
7041 (name "ghc-pandoc-citeproc")
a235ea4f 7042 (version "0.14.3.1")
eb0ff8a3
RW
7043 (source
7044 (origin
7045 (method url-fetch)
7046 (uri (string-append "https://hackage.haskell.org/package/"
7047 "pandoc-citeproc/pandoc-citeproc-"
7048 version ".tar.gz"))
7049 (sha256
7050 (base32
a235ea4f 7051 "0yj6rckwsc9vig40cm15ry0j3d01xpk04qma9n4byhal6v4b5h22"))))
eb0ff8a3
RW
7052 (build-system haskell-build-system)
7053 (arguments
7054 `(#:phases
7055 (modify-phases %standard-phases
003ec2c8
TS
7056 ;; Many YAML tests (44) are failing do to changes in ghc-yaml:
7057 ;; <https://github.com/jgm/pandoc-citeproc/issues/342>.
7058 (add-before 'configure 'patch-tests
7059 (lambda _
7060 (substitute* "tests/test-pandoc-citeproc.hs"
7061 (("let allTests = citeprocTests \\+\\+ biblio2yamlTests")
7062 "let allTests = citeprocTests"))))
eb0ff8a3
RW
7063 ;; Tests need to be run after installation.
7064 (delete 'check)
7065 (add-after 'install 'post-install-check
7066 (assoc-ref %standard-phases 'check)))))
7067 (inputs
f54f0475 7068 `(("ghc-pandoc-types" ,ghc-pandoc-types)
eb0ff8a3
RW
7069 ("ghc-pandoc" ,ghc-pandoc)
7070 ("ghc-tagsoup" ,ghc-tagsoup)
7071 ("ghc-aeson" ,ghc-aeson)
7072 ("ghc-text" ,ghc-text)
7073 ("ghc-vector" ,ghc-vector)
7074 ("ghc-xml-conduit" ,ghc-xml-conduit)
7075 ("ghc-unordered-containers" ,ghc-unordered-containers)
7076 ("ghc-data-default" ,ghc-data-default)
7077 ("ghc-setenv" ,ghc-setenv)
7078 ("ghc-split" ,ghc-split)
7079 ("ghc-yaml" ,ghc-yaml)
7080 ("ghc-hs-bibutils" ,ghc-hs-bibutils)
7081 ("ghc-rfc5051" ,ghc-rfc5051)
7082 ("ghc-syb" ,ghc-syb)
7083 ("ghc-parsec" ,ghc-parsec)
7084 ("ghc-old-locale" ,ghc-old-locale)
7085 ("ghc-aeson-pretty" ,ghc-aeson-pretty)
7086 ("ghc-attoparsec" ,ghc-attoparsec)
7087 ("ghc-temporary" ,ghc-temporary)))
7088 (home-page "https://github.com/jgm/pandoc-citeproc")
7089 (synopsis "Library for using pandoc with citeproc")
7090 (description
7091 "The @code{pandoc-citeproc} library exports functions for using the
7092citeproc system with pandoc. It relies on @code{citeproc-hs}, a library for
7093rendering bibliographic reference citations into a variety of styles using a
7094macro language called @dfn{Citation Style Language} (CSL). This package also
7095contains an executable @code{pandoc-citeproc}, which works as a pandoc filter,
7096and also has a mode for converting bibliographic databases a YAML format
7097suitable for inclusion in pandoc YAML metadata.")
7098 (license license:bsd-3)))
7099
abbf2623
LC
7100(define-public ghc-union-find
7101 (package
7102 (name "ghc-union-find")
7103 (version "0.2")
7104 (source (origin
7105 (method url-fetch)
7106 (uri (string-append
612fddec 7107 "https://hackage.haskell.org/package/union-find/union-find-"
abbf2623
LC
7108 version ".tar.gz"))
7109 (sha256
7110 (base32
7111 "1v7hj42j9w6jlzi56jg8rh4p58gfs1c5dx30wd1qqvn0p0mnihp6"))))
7112 (build-system haskell-build-system)
612fddec 7113 (home-page "https://github.com/nominolo/union-find")
abbf2623
LC
7114 (synopsis "Efficient union and equivalence testing of sets")
7115 (description
7116 "The Union/Find algorithm implements these operations in (effectively)
7117constant-time:
7118@enumerate
7119@item Check whether two elements are in the same equivalence class.
7120@item Create a union of two equivalence classes.
7121@item Look up the descriptor of the equivalence class.
7122@end enumerate\n")
7123 (license license:bsd-3)))
7124
cc5e16a7 7125(define-public ghc-base16-bytestring
7126 (package
7127 (name "ghc-base16-bytestring")
7128 (version "0.1.1.6")
7129 (source
7130 (origin
7131 (method url-fetch)
7132 (uri (string-append
7133 "https://hackage.haskell.org/package/base16-bytestring/"
7134 "base16-bytestring-" version ".tar.gz"))
7135 (sha256
7136 (base32
7137 "0jf40m3yijqw6wd1rwwvviww46fasphaay9m9rgqyhf5aahnbzjs"))))
7138 (build-system haskell-build-system)
7bf837fd 7139 (home-page "https://github.com/bos/base16-bytestring")
cc5e16a7 7140 (synopsis "Fast base16 (hex) encoding and decoding for ByteStrings")
7141 (description
7142 "This package provides a Haskell library for working with base16-encoded
7143data quickly and efficiently, using the ByteString type.")
7144 (license license:bsd-3)))
7145
7c14128d 7146(define-public ghc-data-ordlist
7147 (package
7148 (name "ghc-data-ordlist")
7149 (version "0.4.7.0")
7150 (source
7151 (origin
7152 (method url-fetch)
7153 (uri (string-append
7154 "https://hackage.haskell.org/package/data-ordlist/data-ordlist-"
7155 version ".tar.gz"))
7156 (sha256
7157 (base32
7158 "03a9ix1fcx08viwv2jg5ndw1qbkydyyrmjvqr9wasmcik9x1wv3g"))))
7159 (build-system haskell-build-system)
98b90194 7160 (home-page "https://hackage.haskell.org/package/data-ordlist")
7c14128d 7161 (synopsis "Set and bag operations on ordered lists")
7162 (description
7163 "This module provides set and multiset operations on ordered lists.")
7164 (license license:bsd-3)))
7165
d58dc851 7166(define-public ghc-regex-applicative
7167 (package
7168 (name "ghc-regex-applicative")
7169 (version "0.3.3")
7170 (source
7171 (origin
7172 (method url-fetch)
7173 (uri (string-append
7174 "https://hackage.haskell.org/package/regex-applicative/"
7175 "regex-applicative-" version ".tar.gz"))
7176 (sha256
7177 (base32
7178 "1riv7jqf26lbv4rm54sd6mrx8xdh4dvh4xbzymzdfdw13k6a4nb6"))))
7179 (build-system haskell-build-system)
7180 (inputs
7181 `(("ghc-smallcheck" ,ghc-smallcheck)
7182 ("ghc-tasty" ,ghc-tasty)
7183 ("ghc-tasty-smallcheck" ,ghc-tasty-smallcheck)
7184 ("ghc-tasty-hunit" ,ghc-tasty-hunit)))
7185 (home-page "https://github.com/feuerbach/regex-applicative")
7186 (synopsis "Regex-based parsing with applicative interface")
7187 (description
7188 "@code{regex-applicative} is a Haskell library for parsing using
7189regular expressions. Parsers can be built using Applicative interface.")
7190 (license license:expat)))
7191
7e444dba 7192(define-public ghc-regex-tdfa
7193 (package
7194 (name "ghc-regex-tdfa")
3e6fe51f 7195 (version "1.2.3.1")
7e444dba 7196 (source
7197 (origin
7198 (method url-fetch)
7199 (uri (string-append
7200 "https://hackage.haskell.org/package/regex-tdfa/regex-tdfa-"
7201 version ".tar.gz"))
7202 (sha256
7203 (base32
3e6fe51f 7204 "0l7ajnh4hpgggf2a1r9dg0hx2fy679vd2kada5y7r02hy3nfxala"))))
7e444dba 7205 (build-system haskell-build-system)
7206 (inputs
f54f0475 7207 `(("ghc-parsec" ,ghc-parsec)
7e444dba 7208 ("ghc-regex-base" ,ghc-regex-base)))
7209 (home-page "https://github.com/ChrisKuklewicz/regex-tdfa")
7210 (synopsis "POSIX extended regular expressions in Haskell.")
7211 (description
7212 "Regex-tdfa is a pure Haskell regular expression library implementing POSIX
7213extended regular expressions. It is a \"tagged\" DFA regex engine. It is
7214inspired by libtre.")
7215 (license license:bsd-3)))
7216
fe3c62c7 7217(define-public ghc-regex-compat-tdfa
7218 (package
7219 (name "ghc-regex-compat-tdfa")
7220 (version "0.95.1.4")
7221 (source
7222 (origin
7223 (method url-fetch)
7224 (uri (string-append
7225 "https://hackage.haskell.org/package/regex-compat-tdfa/regex-compat-tdfa-"
7226 version ".tar.gz"))
7227 (sha256
7228 (base32
7229 "1p90fn90yhp7fvljjdqjp41cszidcfz4pw7fwvzyx4739b98x8sg"))))
7230 (build-system haskell-build-system)
7231 (inputs
7232 `(("ghc-regex-base" ,ghc-regex-base)
7233 ("ghc-regex-tdfa" ,ghc-regex-tdfa)))
98b90194 7234 (home-page "https://hub.darcs.net/shelarcy/regex-compat-tdfa")
fe3c62c7 7235 (synopsis "Unicode Support version of Text.Regex, using regex-tdfa")
7236 (description
7237 "One module layer over @code{regex-tdfa} to replace @code{Text.Regex}.
7238@code{regex-compat} can't use Unicode characters correctly because of using regex-posix.
7239This is not good for Unicode users. This modified regex-compat uses regex-tdfa to solve
7240this problem.")
7241 (license license:bsd-3)))
7242
e9e519be 7243(define-public ghc-sandi
7244 (package
7245 (name "ghc-sandi")
66dbe158 7246 (version "0.4.2")
e9e519be 7247 (source
7248 (origin
7249 (method url-fetch)
7250 (uri (string-append
7251 "https://hackage.haskell.org/package/sandi/sandi-"
7252 version ".tar.gz"))
7253 (sha256
7254 (base32
66dbe158 7255 "0dvkpk91n9kz2ha04rvp231ra9sgd1ilyc1qkzf9l03iir7zrh9b"))))
e9e519be 7256 (build-system haskell-build-system)
7257 (inputs
7258 `(("ghc-stringsearch" ,ghc-stringsearch)
7259 ("ghc-conduit" ,ghc-conduit)
7260 ("ghc-exceptions" ,ghc-exceptions)
7261 ("ghc-hunit" ,ghc-hunit)
7262 ("ghc-tasty" ,ghc-tasty)
7263 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
7264 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
7265 ("ghc-tasty-th" ,ghc-tasty-th)))
98b90194 7266 (home-page "https://hackage.haskell.org/package/sandi")
e9e519be 7267 (synopsis "Data encoding library")
7268 (description "Reasonably fast data encoding library.")
7269 (license license:bsd-3)))
7270
a71f8617 7271(define-public ghc-bytestring-handle
7272 (package
7273 (name "ghc-bytestring-handle")
39bcc932 7274 (version "0.1.0.6")
a71f8617 7275 (source
7276 (origin
7277 (method url-fetch)
7278 (uri (string-append
7279 "https://hackage.haskell.org/package/bytestring-handle/bytestring-handle-"
7280 version ".tar.gz"))
7281 (sha256
7282 (base32
39bcc932 7283 "18f17aja1ivhr3zyg2cccn2m03hdn5jf5410dndkhf12gvgiqs7y"))))
a71f8617 7284 (build-system haskell-build-system)
5e4058ad
TS
7285 (arguments
7286 `(#:phases
7287 (modify-phases %standard-phases
7288 (add-before 'configure 'update-constraints
7289 (lambda _
7290 (substitute* "bytestring-handle.cabal"
7291 (("QuickCheck >= 2\\.1\\.2 && < 2\\.11")
7292 "QuickCheck >= 2.1.2 && < 2.12")
7293 (("base >= 4\\.2 && < 4\\.11")
7294 "base >= 4.2 && < 4.12")))))))
a71f8617 7295 (inputs
6bfcb59d
TGR
7296 `(("ghc-hunit" ,ghc-hunit)
7297 ("ghc-quickcheck" ,ghc-quickcheck)
7298 ("ghc-test-framework" ,ghc-test-framework)
a71f8617 7299 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
6bfcb59d 7300 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
98b90194 7301 (home-page "https://hub.darcs.net/ganesh/bytestring-handle")
a71f8617 7302 (synopsis "ByteString-backed Handles")
7303 (description "ByteString-backed Handles") ; There is no description
7304 (license license:bsd-3)))
7305
f8270331 7306(define-public ghc-tar
7307 (package
7308 (name "ghc-tar")
221c3563 7309 (version "0.5.1.0")
f8270331 7310 (source
7311 (origin
7312 (method url-fetch)
7313 (uri (string-append
7314 "https://hackage.haskell.org/package/tar/tar-"
7315 version ".tar.gz"))
7316 (sha256
7317 (base32
221c3563 7318 "0s2brvaxg5fki2jdkccmnpssiy6a3wjh24p6a3dkkdvjcixnk7f8"))))
f8270331 7319 (build-system haskell-build-system)
f25c95d3
RW
7320 ;; FIXME: 2/24 tests fail.
7321 (arguments `(#:tests? #f))
f8270331 7322 (inputs
7323 `(("ghc-bytestring-handle" ,ghc-bytestring-handle)
7324 ("ghc-quickcheck" ,ghc-quickcheck)
7325 ("ghc-tasty" ,ghc-tasty)
473cd277 7326 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
98b90194 7327 (home-page "https://hackage.haskell.org/package/tar")
f8270331 7328 (synopsis "Reading, writing and manipulating \".tar\" archive files")
7329 (description
7330 "This library is for working with \\\"@.tar@\\\" archive files.
7331It can read and write a range of common variations of the tar archive format
7332including V7, POSIX USTAR and GNU formats. It provides support for packing and
7333unpacking portable archives. This makes it suitable for distribution but not
7334backup because details like file ownership and exact permissions are not
7335preserved. It also provides features for random access to archive content using
7336an index.")
7337 (license license:bsd-3)))
7338
867ed977
AV
7339(define-public ghc-stmonadtrans
7340 (package
7341 (name "ghc-stmonadtrans")
7342 (version "0.4.3")
7343 (source
7344 (origin
7345 (method url-fetch)
7346 (uri (string-append "https://hackage.haskell.org/package/STMonadTrans"
7347 "/STMonadTrans-" version ".tar.gz"))
7348 (sha256
7349 (base32 "1nr26fnmi5fdjc6d00w13kjhmfyvb5b837d0006w4dj0yxndaksp"))))
7350 (build-system haskell-build-system)
867ed977
AV
7351 (home-page "https://hackage.haskell.org/package/STMonadTrans")
7352 (synopsis "Monad transformer version of the ST monad")
7353 (description
7354 "This package provides a monad transformer version of the @code{ST} monad
7355for strict state threads.")
7356 (license license:bsd-3)))
7357
027b7976 7358(define-public ghc-findbin
7359 (package
7360 (name "ghc-findbin")
7361 (version "0.0.5")
7362 (source
7363 (origin
7364 (method url-fetch)
7365 (uri (string-append
7366 "https://hackage.haskell.org/package/FindBin/FindBin-"
7367 version ".tar.gz"))
7368 (sha256
7369 (base32
7370 "197xvn05yysmibm1p5wzxfa256lvpbknr5d1l2ws6g40w1kpk717"))))
7371 (build-system haskell-build-system)
7372 (home-page "https://github.com/audreyt/findbin")
7373 (synopsis "Get the absolute path of the running program")
7374 (description
7375 "This module locates the full directory of the running program, to allow
7376the use of paths relative to it. FindBin supports invocation of Haskell
7377programs via \"ghci\", via \"runhaskell/runghc\", as well as compiled as
7378an executable.")
7379 (license license:bsd-3)))
7380
d52ca22a 7381(define-public ghc-patience
7382 (package
7383 (name "ghc-patience")
7384 (version "0.1.1")
7385 (source
7386 (origin
7387 (method url-fetch)
7388 (uri (string-append
7389 "https://hackage.haskell.org/package/patience/patience-"
7390 version ".tar.gz"))
7391 (sha256
7392 (base32
7393 "0qyv20gqy9pb1acy700ahv70lc6vprcwb26cc7fcpcs4scsc7irm"))))
7394 (build-system haskell-build-system)
98b90194 7395 (home-page "https://hackage.haskell.org/package/patience")
d52ca22a 7396 (synopsis "Patience diff and longest increasing subsequence")
7397 (description
7398 "This library implements the 'patience diff' algorithm, as well as the
7399patience algorithm for the longest increasing subsequence problem.
7400Patience diff computes the difference between two lists, for example the lines
7401of two versions of a source file. It provides a good balance between
7402performance, nice output for humans, and simplicity of implementation.")
7403 (license license:bsd-3)))
7404
41167bd2 7405(define-public ghc-monads-tf
7406 (package
7407 (name "ghc-monads-tf")
7408 (version "0.1.0.3")
7409 (source
7410 (origin
7411 (method url-fetch)
7412 (uri (string-append
7413 "https://hackage.haskell.org/package/monads-tf/monads-tf-"
7414 version ".tar.gz"))
7415 (sha256
7416 (base32
7417 "1wdhskwa6dw8qljbvwpyxj8ca6y95q2np7z4y4q6bpf4anmd5794"))))
7418 (build-system haskell-build-system)
98b90194 7419 (home-page "https://hackage.haskell.org/package/monads-tf")
41167bd2 7420 (synopsis "Monad classes, using type families")
7421 (description
7422 "Monad classes using type families, with instances for various monad transformers,
7423inspired by the paper 'Functional Programming with Overloading and Higher-Order
7424Polymorphism', by Mark P Jones. This package is almost a compatible replacement for
7425the @code{mtl-tf} package.")
7426 (license license:bsd-3)))
7427
e1a56bb2 7428(define-public ghc-colour
7429(package
7430 (name "ghc-colour")
d05d03dd 7431 (version "2.3.4")
e1a56bb2 7432 (source
7433 (origin
7434 (method url-fetch)
7435 (uri (string-append
7436 "https://hackage.haskell.org/package/colour/colour-"
7437 version ".tar.gz"))
7438 (sha256
7439 (base32
d05d03dd
TS
7440 "1sy51nz096sv91nxqk6yk7b92b5a40axv9183xakvki2nc09yhqg"))))
7441 (arguments
7442 ;; The tests for this package have the following dependency cycle:
7443 ;; ghc-test-framework -> ghc-ansi-terminal -> ghc-colour.
7444 `(#:tests? #f))
e1a56bb2 7445 (build-system haskell-build-system)
98b90194 7446 (home-page "https://www.haskell.org/haskellwiki/Colour")
e1a56bb2 7447 (synopsis "Model for human colour perception")
7448 (description
7449 "This package provides a data type for colours and transparency.
7450Colours can be blended and composed. Various colour spaces are
7451supported. A module of colour names (\"Data.Colour.Names\") is provided.")
7452 (license license:expat)))
7453
6e0741f7 7454(define-public ghc-wl-pprint-text
7455 (package
7456 (name "ghc-wl-pprint-text")
e173a95f 7457 (version "1.2.0.0")
6e0741f7 7458 (source
7459 (origin
7460 (method url-fetch)
7461 (uri (string-append
7462 "https://hackage.haskell.org/package/wl-pprint-text/wl-pprint-text-"
7463 version ".tar.gz"))
7464 (sha256
7465 (base32
e173a95f 7466 "0g3w92rad6x5appfb22rbzcas2ix2h0hy91sdxhq8a4a5cnlrpa0"))))
6e0741f7 7467 (build-system haskell-build-system)
7468 (inputs
e173a95f
AI
7469 `(("ghc-base-compat" ,ghc-base-compat)
7470 ("ghc-text" ,ghc-text)))
98b90194 7471 (home-page "https://hackage.haskell.org/package/wl-pprint-text")
6e0741f7 7472 (synopsis "Wadler/Leijen Pretty Printer for Text values")
7473 (description
7474 "A clone of wl-pprint for use with the text library.")
7475 (license license:bsd-3)))
7476
d4cca6b0 7477(define-public ghc-fgl-arbitrary
7478 (package
7479 (name "ghc-fgl-arbitrary")
d4fd8ee4 7480 (version "0.2.0.3")
d4cca6b0 7481 (source
7482 (origin
7483 (method url-fetch)
7484 (uri (string-append
7485 "https://hackage.haskell.org/package/fgl-arbitrary/fgl-arbitrary-"
7486 version ".tar.gz"))
7487 (sha256
7488 (base32
d4fd8ee4 7489 "0ln1szgfy8fa78l3issq4fx3aqnnd54w3cb4wssrfi48vd5rkfjm"))))
d4cca6b0 7490 (build-system haskell-build-system)
54afb52e 7491 (arguments
11afd13d
TS
7492 `(#:phases
7493 (modify-phases %standard-phases
7494 (add-before 'configure 'update-constraints
7495 (lambda _
7496 (substitute* "fgl-arbitrary.cabal"
7497 (("QuickCheck >= 2\\.3 && < 2\\.10")
7498 "QuickCheck >= 2.3 && < 2.12")
7499 (("hspec >= 2\\.1 && < 2\\.5")
7500 "hspec >= 2.1 && < 2.6")))))))
d4cca6b0 7501 (inputs
7502 `(("ghc-fgl" ,ghc-fgl)
7503 ("ghc-quickcheck" ,ghc-quickcheck)
7504 ("ghc-hspec" ,ghc-hspec)))
98b90194 7505 (home-page "https://hackage.haskell.org/package/fgl-arbitrary")
d4cca6b0 7506 (synopsis "QuickCheck support for fgl")
7507 (description
7508 "Provides Arbitrary instances for fgl graphs to avoid adding a
7509QuickCheck dependency for fgl whilst still making the instances
7510available to others. Also available are non-fgl-specific functions
7511for generating graph-like data structures.")
7512 (license license:bsd-3)))
7513
3db88277 7514(define-public ghc-graphviz
7515 (package
7516 (name "ghc-graphviz")
f797a0e9 7517 (version "2999.20.0.2")
3db88277 7518 (source (origin
7519 (method url-fetch)
7520 (uri (string-append "https://hackage.haskell.org/package/"
7521 "graphviz/graphviz-" version ".tar.gz"))
7522 (sha256
7523 (base32
f797a0e9 7524 "0kj7ap0gnliviq2p8lscw1m06capnsa90vpvcys24nqy5nw2wrp7"))))
3db88277 7525 (build-system haskell-build-system)
7526 (inputs
7527 `(("ghc-quickcheck" ,ghc-quickcheck)
7528 ("ghc-colour" ,ghc-colour)
7529 ("ghc-dlist" ,ghc-dlist)
7530 ("ghc-fgl" ,ghc-fgl)
7531 ("ghc-fgl-arbitrary" ,ghc-fgl-arbitrary)
7532 ("ghc-polyparse" ,ghc-polyparse)
7533 ("ghc-temporary" ,ghc-temporary)
7534 ("ghc-text" ,ghc-text)
7535 ("ghc-wl-pprint-text" ,ghc-wl-pprint-text)))
f797a0e9
AI
7536 (native-inputs
7537 `(("ghc-hspec" ,ghc-hspec)
7538 ("graphviz" ,graphviz)
7539 ("hspec-discover" ,hspec-discover)))
3db88277 7540 (home-page "https://hackage.haskell.org/package/graphviz")
7541 (synopsis "Bindings to Graphviz for graph visualisation")
7542 (description
7543 "This library provides bindings for the Dot language used by
98b90194 7544the @uref{https://graphviz.org/, Graphviz} suite of programs for
3db88277 7545visualising graphs, as well as functions to call those programs.
7546Main features of the graphviz library include:
7547
7548@enumerate
7549@item Almost complete coverage of all Graphviz attributes and syntax
7550@item Support for specifying clusters
7551@item The ability to use a custom node type
7552@item Functions for running a Graphviz layout tool with all specified output types
7553@item Generate and parse Dot code with two options: strict and liberal
7554@item Functions to convert FGL graphs and other graph-like data structures
7555@item Round-trip support for passing an FGL graph through Graphviz to augment node
7556and edge labels with positional information, etc.
7557@end enumerate\n")
7558 (license license:bsd-3)))
7559
6aab9ba6 7560(define-public ghc-constraints
7561 (package
7562 (name "ghc-constraints")
3ff7232a 7563 (version "0.10.1")
6aab9ba6 7564 (source
7565 (origin
7566 (method url-fetch)
7567 (uri (string-append
7568 "https://hackage.haskell.org/package/constraints/constraints-"
7569 version ".tar.gz"))
7570 (sha256
7571 (base32
3ff7232a 7572 "1xy3vv78jxc17hm0z7qqspxjwv7l2jbcbj670yrl2f053qkfr02q"))))
6aab9ba6 7573 (build-system haskell-build-system)
7574 (inputs
7575 `(("ghc-hashable" ,ghc-hashable)
3ff7232a 7576 ("ghc-semigroups" ,ghc-semigroups)
6aab9ba6 7577 ("ghc-transformers-compat" ,ghc-transformers-compat)))
3ff7232a
TS
7578 (native-inputs
7579 `(("ghc-hspec" ,ghc-hspec)
7580 ("hspec-discover" ,hspec-discover)))
7bf837fd 7581 (home-page "https://github.com/ekmett/constraints/")
6aab9ba6 7582 (synopsis "Constraint manipulation")
7583 (description
7584 "GHC 7.4 gave us the ability to talk about @code{ConstraintKinds}.
7585They stopped crashing the compiler in GHC 7.6. This package provides
7586a vocabulary for working with them.")
7587 (license license:bsd-3)))
7588
2b41f4af 7589(define-public ghc-lifted-async
7590 (package
7591 (name "ghc-lifted-async")
a57c91a1 7592 (version "0.10.0.2")
2b41f4af 7593 (source
7594 (origin
7595 (method url-fetch)
7596 (uri (string-append
7597 "https://hackage.haskell.org/package/lifted-async/lifted-async-"
7598 version ".tar.gz"))
7599 (sha256
7600 (base32
a57c91a1 7601 "1073r512c1x2m1v0jar9bwqg656slg7jd1jhsyj6m8awgx1l1mwf"))))
2b41f4af 7602 (build-system haskell-build-system)
7603 (inputs
7604 `(("ghc-async" ,ghc-async)
7605 ("ghc-lifted-base" ,ghc-lifted-base)
7606 ("ghc-transformers-base" ,ghc-transformers-base)
7607 ("ghc-monad-control" ,ghc-monad-control)
7608 ("ghc-constraints" ,ghc-constraints)
7609 ("ghc-hunit" ,ghc-hunit)
2b41f4af 7610 ("ghc-tasty" ,ghc-tasty)
a57c91a1 7611 ("ghc-tasty-expected-failure" ,ghc-tasty-expected-failure)
2b41f4af 7612 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
7613 ("ghc-tasty-th" ,ghc-tasty-th)))
7614 (home-page "https://github.com/maoe/lifted-async")
7615 (synopsis "Run lifted IO operations asynchronously and wait for their results")
7616 (description
7617 "This package provides IO operations from @code{async} package lifted to any
7618instance of @code{MonadBase} or @code{MonadBaseControl}.")
7619 (license license:bsd-3)))
7620
ddd5955b 7621;; Ghc-shelly depends on ghc-system-filepath and ghc-system-fileio, who in turn depend on
7622;; ghc-chell and ghc-chell-quickcheck for the test phase. Ghc-chell depends on ghc-options
7623;; which depends on ghc-chell and ghc-chell-quickcheck.
7624;; Therefore we bootstrap it with tests disabled.
7625(define ghc-system-filepath-bootstrap
7626 (package
7627 (name "ghc-system-filepath-bootstrap")
343c2398 7628 (version "0.4.14")
ddd5955b 7629 (source
7630 (origin
7631 (method url-fetch)
7632 (uri (string-append
7633 "https://hackage.haskell.org/package/system-filepath/system-filepath-"
7634 version ".tar.gz"))
7635 (sha256
7636 (base32
343c2398 7637 "14yras4pz2dh55xpwmazcgxijvi8913pjgzb9iw50mjq1lycwmhn"))))
ddd5955b 7638 (build-system haskell-build-system)
7639 (arguments
7640 `(#:tests? #f))
7641 (inputs
7642 `(("ghc-text" ,ghc-text)
7643 ("ghc-quickcheck" ,ghc-quickcheck)))
7644 (home-page "https://github.com/fpco/haskell-filesystem")
7645 (synopsis "High-level, byte-based file and directory path manipulations")
7646 (description
7647 "Provides a FilePath datatype and utility functions for operating on it.
7648Unlike the filepath package, this package does not simply reuse String,
7649increasing type safety.")
7650 (license license:expat)))
7651
3f7aa102 7652;; See ghc-system-filepath-bootstrap. In addition this package depends on
7653;; ghc-system-filepath.
7654(define ghc-system-fileio-bootstrap
7655 (package
7656 (name "ghc-system-fileio-bootstrap")
7657 (version "0.3.16.3")
7658 (source
7659 (origin
7660 (method url-fetch)
7661 (uri (string-append
7662 "https://hackage.haskell.org/package/system-fileio/system-fileio-"
7663 version ".tar.gz"))
7664 (sha256
7665 (base32
7666 "1484hcl27s2qcby8ws5djj11q9bz68bspcifz9h5gii2ndy70x9i"))))
7667 (build-system haskell-build-system)
7668 (arguments
7669 `(#:tests? #f))
7670 (inputs
7671 `(("ghc-system-filepath-bootstrap" ,ghc-system-filepath-bootstrap)
7672 ("ghc-text" ,ghc-text)
7673 ("ghc-temporary" ,ghc-temporary)))
7674 (home-page "https://github.com/fpco/haskell-filesystem")
162a1374 7675 (synopsis "Consistent file system interaction across GHC versions")
3f7aa102 7676 (description
7677 "This is a small wrapper around the directory, unix, and Win32 packages,
7678for use with system-filepath. It provides a consistent API to the various
7679versions of these packages distributed with different versions of GHC.
7680In particular, this library supports working with POSIX files that have paths
7681which can't be decoded in the current locale encoding.")
7682 (license license:expat)))
7683
25b3bdb5 7684(define-public ghc-shelly
7685 (package
7686 (name "ghc-shelly")
c4348ca7 7687 (version "1.8.1")
25b3bdb5 7688 (source
7689 (origin
7690 (method url-fetch)
7691 (uri (string-append
7692 "https://hackage.haskell.org/package/shelly/shelly-"
7693 version ".tar.gz"))
7694 (sha256
7695 (base32
c4348ca7 7696 "023fbvbqs5gdwm30j5517gbdcc7fvz0md70dgwgpypkskj3i926y"))))
25b3bdb5 7697 (build-system haskell-build-system)
7698 (inputs
f54f0475 7699 `(("ghc-unix-compat" ,ghc-unix-compat)
25b3bdb5 7700 ("ghc-system-filepath-bootstrap" ,ghc-system-filepath-bootstrap)
7701 ("ghc-system-fileio-bootstrap" ,ghc-system-fileio-bootstrap)
7702 ("ghc-monad-control" ,ghc-monad-control)
7703 ("ghc-lifted-base" ,ghc-lifted-base)
7704 ("ghc-lifted-async" ,ghc-lifted-async)
7705 ("ghc-exceptions" ,ghc-exceptions)
7706 ("ghc-enclosed-exceptions" ,ghc-enclosed-exceptions)
7707 ("ghc-text" ,ghc-text)
7708 ("ghc-async" ,ghc-async)
7709 ("ghc-transformers-base" ,ghc-transformers-base)
7710 ("ghc-hunit" ,ghc-hunit)
c4348ca7
AI
7711 ("ghc-hspec" ,ghc-hspec)
7712 ("ghc-hspec-contrib" ,ghc-hspec-contrib)))
25b3bdb5 7713 (home-page "https://github.com/yesodweb/Shelly.hs")
7714 (synopsis "Shell-like (systems) programming in Haskell")
7715 (description
7716 "Shelly provides convenient systems programming in Haskell, similar in
7717spirit to POSIX shells. Shelly is originally forked from the Shellish package.")
7718 (license license:bsd-3)))
7719
7e06c4aa 7720;; See ghc-system-filepath-bootstrap, chell and chell-quickcheck are required for tests.
7721(define ghc-options-bootstrap
7722 (package
7723 (name "ghc-options-bootstrap")
7724 (version "1.2.1.1")
7725 (source
7726 (origin
7727 (method url-fetch)
7728 (uri (string-append
7729 "https://hackage.haskell.org/package/options/options-"
7730 version ".tar.gz"))
7731 (sha256
7732 (base32
7733 "0qjs0v1ny52w51n5582d4z8wy9h6n0zw1xb5dh686ff5wadflgi8"))))
7734 (build-system haskell-build-system)
7735 (arguments
7736 `(#:tests? #f))
7737 (inputs
7738 `(("ghc-monads-tf" ,ghc-monads-tf)))
7739 (home-page "https://john-millikin.com/software/haskell-options/")
7740 (synopsis "Powerful and easy-to-use command-line option parser")
7741 (description
7742 "The @code{options} package lets library and application developers
7743easily work with command-line options.")
7744 (license license:expat)))
7745
8ea94489 7746(define-public ghc-chell
7747 (package
7748 (name "ghc-chell")
6a9730a0 7749 (version "0.4.0.2")
8ea94489 7750 (source
7751 (origin
7752 (method url-fetch)
7753 (uri (string-append
7754 "https://hackage.haskell.org/package/chell/chell-"
7755 version ".tar.gz"))
7756 (sha256
7757 (base32
6a9730a0 7758 "10ingy9qnbmc8cqh4i9pskcw43l0mzk8f3d76b3qz3fig5ary3j9"))))
8ea94489 7759 (build-system haskell-build-system)
7760 (inputs
7761 `(("ghc-options-bootstrap" ,ghc-options-bootstrap)
7762 ("ghc-patience" ,ghc-patience)
7763 ("ghc-random" ,ghc-random)
7764 ("ghc-text" ,ghc-text)
7765 ("ghc-ansi-terminal" ,ghc-ansi-terminal)))
7766 (home-page "https://john-millikin.com/software/chell/")
7767 (synopsis "Simple and intuitive library for automated testing")
7768 (description
7769 "Chell is a simple and intuitive library for automated testing.
7770It natively supports assertion-based testing, and can use companion
7771libraries such as @code{chell-quickcheck} to support more complex
7772testing strategies.")
7773 (license license:expat)))
7774
475d3668 7775(define ghc-chell-quickcheck-bootstrap
7776 (package
7777 (name "ghc-chell-quickcheck-bootstrap")
a9717a52 7778 (version "0.2.5.1")
475d3668 7779 (source
7780 (origin
7781 (method url-fetch)
7782 (uri (string-append
a9717a52
TGR
7783 "https://hackage.haskell.org/package/chell-quickcheck/"
7784 "chell-quickcheck-" version ".tar.gz"))
475d3668 7785 (sha256
7786 (base32
a9717a52 7787 "1iicsys9igx7m7n4l2b8djardmjy2ah5ibzp7kzs758h460fq53a"))))
475d3668 7788 (build-system haskell-build-system)
7789 (inputs
7790 `(("ghc-chell" ,ghc-chell)
7791 ("ghc-random" ,ghc-random)
7792 ("ghc-quickcheck" ,ghc-quickcheck)))
7793 (arguments
4a3f50e3
TS
7794 `(#:tests? #f
7795 #:phases
7796 (modify-phases %standard-phases
7797 (add-before 'configure 'update-constraints
7798 (lambda _
7799 (substitute* "chell-quickcheck.cabal"
7800 (("QuickCheck >= 2\\.3 && < 2\\.11")
7801 "QuickCheck >= 2.3 && < 2.12")))))))
475d3668 7802 (home-page "https://john-millikin.com/software/chell/")
7803 (synopsis "QuickCheck support for the Chell testing library")
7804 (description "More complex tests for @code{chell}.")
7805 (license license:expat)))
7806
c92d944c 7807(define-public ghc-chell-quickcheck
7808 (package
7809 (name "ghc-chell-quickcheck")
a9717a52 7810 (version "0.2.5.1")
c92d944c 7811 (source
7812 (origin
7813 (method url-fetch)
7814 (uri (string-append
a9717a52
TGR
7815 "https://hackage.haskell.org/package/chell-quickcheck/"
7816 "chell-quickcheck-" version ".tar.gz"))
c92d944c 7817 (sha256
7818 (base32
a9717a52 7819 "1iicsys9igx7m7n4l2b8djardmjy2ah5ibzp7kzs758h460fq53a"))))
c92d944c 7820 (build-system haskell-build-system)
4a3f50e3
TS
7821 (arguments
7822 `(#:phases
7823 (modify-phases %standard-phases
7824 (add-before 'configure 'update-constraints
7825 (lambda _
7826 (substitute* "chell-quickcheck.cabal"
7827 (("QuickCheck >= 2\\.3 && < 2\\.11")
7828 "QuickCheck >= 2.3 && < 2.12")))))))
c92d944c 7829 (inputs
7830 `(("ghc-chell" ,ghc-chell)
7831 ("ghc-chell-quickcheck-bootstrap" ,ghc-chell-quickcheck-bootstrap)
7832 ("ghc-random" ,ghc-random)
7833 ("ghc-quickcheck" ,ghc-quickcheck)))
7834 (home-page "https://john-millikin.com/software/chell/")
7835 (synopsis "QuickCheck support for the Chell testing library")
7836 (description "More complex tests for @code{chell}.")
7837 (license license:expat)))
7838
58c85b1f 7839(define-public ghc-options
7840 (package
7841 (name "ghc-options")
7842 (version "1.2.1.1")
7843 (source
7844 (origin
7845 (method url-fetch)
7846 (uri (string-append
7847 "https://hackage.haskell.org/package/options/options-"
7848 version ".tar.gz"))
7849 (sha256
7850 (base32
7851 "0qjs0v1ny52w51n5582d4z8wy9h6n0zw1xb5dh686ff5wadflgi8"))))
7852 (build-system haskell-build-system)
7853 (inputs
7854 `(("ghc-monads-tf" ,ghc-monads-tf)
7855 ("ghc-chell" ,ghc-chell)
7856 ("ghc-chell-quickcheck" ,ghc-chell-quickcheck)))
7857 (home-page "https://john-millikin.com/software/haskell-options/")
7858 (synopsis "Powerful and easy-to-use command-line option parser")
7859 (description
7860 "The @code{options} package lets library and application developers
7861easily work with command-line options.")
7862 (license license:expat)))
7863
23feb6e4 7864(define-public ghc-system-filepath
7865 (package
7866 (name "ghc-system-filepath")
1b58d289 7867 (version "0.4.14")
23feb6e4 7868 (source
7869 (origin
7870 (method url-fetch)
7871 (uri (string-append
7872 "https://hackage.haskell.org/package/system-filepath/system-filepath-"
7873 version ".tar.gz"))
7874 (sha256
7875 (base32
1b58d289 7876 "14yras4pz2dh55xpwmazcgxijvi8913pjgzb9iw50mjq1lycwmhn"))))
23feb6e4 7877 (build-system haskell-build-system)
1b58d289
RW
7878 ;; FIXME: One of the tests fails:
7879 ;; [ FAIL ] tests.validity.posix
7880 ;; note: seed=7310214548328823169
7881 ;; *** Failed! Falsifiable (after 24 tests):
7882 ;; FilePath "/r2\ENQ52\t ;$/o\US=/okG\146\&6\n<u\DC3/5\182\223a\DELN\EOT#\NUL/`[m/\USEKV\ETX([)b6/\ACK\SOo\245\ETBO/f\128\STX`|\EM\"/*\EMA\USD3/\143\&4/\CAN?\SUBee\CANR/9/B0\187Kx4/Vqr\232'b:/\a\234\DLE.\"\179/\ENQ{J/|/G)@^\237/\219ml/\DC3pd\ESC"
7883 (arguments `(#:tests? #f))
23feb6e4 7884 (inputs
7885 `(("ghc-text" ,ghc-text)
7886 ("ghc-chell" ,ghc-chell)
7887 ("ghc-chell-quickcheck" ,ghc-chell-quickcheck)
7888 ("ghc-quickcheck" ,ghc-quickcheck)))
7889 (home-page "https://github.com/fpco/haskell-filesystem")
7890 (synopsis "High-level, byte-based file and directory path manipulations")
7891 (description
7892 "Provides a FilePath datatype and utility functions for operating on it.
7893Unlike the filepath package, this package does not simply reuse String,
7894increasing type safety.")
7895 (license license:expat)))
7896
10a03d66 7897(define-public ghc-system-fileio
7898 (package
7899 (name "ghc-system-fileio")
7900 (version "0.3.16.3")
7901 (source
7902 (origin
7903 (method url-fetch)
7904 (uri (string-append
7905 "https://hackage.haskell.org/package/system-fileio/system-fileio-"
7906 version ".tar.gz"))
7907 (sha256
7908 (base32
7909 "1484hcl27s2qcby8ws5djj11q9bz68bspcifz9h5gii2ndy70x9i"))))
7910 (build-system haskell-build-system)
7911 (inputs
7912 `(("ghc-system-filepath" ,ghc-system-filepath)
7913 ("ghc-text" ,ghc-text)
7914 ("ghc-chell" ,ghc-chell)
7915 ("ghc-temporary" ,ghc-temporary)))
7916 (home-page "https://github.com/fpco/haskell-filesystem")
162a1374 7917 (synopsis "Consistent file system interaction across GHC versions")
10a03d66 7918 (description
7919 "This is a small wrapper around the directory, unix, and Win32 packages,
7920for use with system-filepath. It provides a consistent API to the various
7921versions of these packages distributed with different versions of GHC.
7922In particular, this library supports working with POSIX files that have paths
7923which can't be decoded in the current locale encoding.")
7924 (license license:expat)))
725dddd7
FB
7925
7926(define-public ghc-storable-complex
7927 (package
7928 (name "ghc-storable-complex")
7929 (version "0.2.2")
7930 (source
7931 (origin
7932 (method url-fetch)
7933 (uri (string-append
98b90194 7934 "https://hackage.haskell.org/package/storable-complex/storable-complex-"
725dddd7
FB
7935 version ".tar.gz"))
7936 (sha256
7937 (base32 "01kwwkpbfjrv26vj83cd92px5qbq1bpgxj0r45534aksqhany1xb"))))
7938 (build-system haskell-build-system)
7939 (home-page "https://github.com/cartazio/storable-complex")
7940 (synopsis "Haskell Storable instance for Complex")
7941 (description "This package provides a Haskell library including a
7942Storable instance for Complex which is binary compatible with C99, C++
7943and Fortran complex data types.")
7944 (license license:bsd-3)))
7945
95595618
FB
7946(define-public ghc-hmatrix
7947 (package
7948 (name "ghc-hmatrix")
c839da85 7949 (version "0.19.0.0")
95595618
FB
7950 (source
7951 (origin
7952 (method url-fetch)
7953 (uri (string-append
98b90194 7954 "https://hackage.haskell.org/package/hmatrix/hmatrix-"
95595618
FB
7955 version ".tar.gz"))
7956 (sha256
c839da85 7957 (base32 "10jd69nby29dggghcyjk6ykyr5wrn97nrv1dkpyrp0y5xm12xssj"))))
95595618
FB
7958 (build-system haskell-build-system)
7959 (inputs
7960 `(("ghc-random" ,ghc-random)
7961 ("ghc-split" ,ghc-split)
7962 ("ghc-storable-complex" ,ghc-storable-complex)
c839da85 7963 ("ghc-semigroups" ,ghc-semigroups)
95595618
FB
7964 ("ghc-vector" ,ghc-vector)
7965 ;;("openblas" ,openblas)
7966 ("lapack" ,lapack)))
7967 ;; Guix's OpenBLAS is built with the flag "NO_LAPACK=1" which
7968 ;; disables inclusion of the LAPACK functions.
7969 ;; (arguments `(#:configure-flags '("--flags=openblas")))
7970 (home-page "https://github.com/albertoruiz/hmatrix")
7971 (synopsis "Haskell numeric linear algebra library")
7972 (description "The HMatrix package provices a Haskell library for
7973dealing with linear systems, matrix decompositions, and other
7974numerical computations based on BLAS and LAPACK.")
7975 (license license:bsd-3)))
7976
932104ab
FB
7977(define-public ghc-hmatrix-gsl
7978 (package
7979 (name "ghc-hmatrix-gsl")
3c00bc13 7980 (version "0.19.0.1")
932104ab
FB
7981 (source
7982 (origin
7983 (method url-fetch)
7984 (uri (string-append
98b90194 7985 "https://hackage.haskell.org/package/hmatrix-gsl/hmatrix-gsl-"
932104ab
FB
7986 version ".tar.gz"))
7987 (sha256
3c00bc13 7988 (base32 "0v6dla426x4ywaq59jm89ql1i42n39iw6z0j378xwb676v9kfxhm"))))
932104ab
FB
7989 (build-system haskell-build-system)
7990 (inputs
7991 `(("ghc-hmatrix" ,ghc-hmatrix)
7992 ("ghc-vector" ,ghc-vector)
7993 ("ghc-random" ,ghc-random)
7994 ("gsl" ,gsl)))
7995 (native-inputs `(("pkg-config" ,pkg-config)))
7996 (home-page "https://github.com/albertoruiz/hmatrix")
7997 (synopsis "Haskell GSL binding")
7998 (description "This Haskell library provides a purely functional
7999interface to selected numerical computations, internally implemented
8000using GSL.")
8001 (license license:gpl3+)))
8002
271a5365
FB
8003(define-public ghc-hmatrix-special
8004 (package
8005 (name "ghc-hmatrix-special")
722d3bd8 8006 (version "0.19.0.0")
271a5365
FB
8007 (source
8008 (origin
8009 (method url-fetch)
8010 (uri
8011 (string-append
98b90194 8012 "https://hackage.haskell.org/package/hmatrix-special/hmatrix-special-"
271a5365
FB
8013 version ".tar.gz"))
8014 (sha256
722d3bd8 8015 (base32 "1mywr61kr852sbff26n9x95kswx9l4ycbv6s68qsbkh02xzqq7qz"))))
271a5365
FB
8016 (build-system haskell-build-system)
8017 (inputs
8018 `(("ghc-hmatrix" ,ghc-hmatrix)
8019 ("ghc-hmatrix-gsl" ,ghc-hmatrix-gsl)))
8020 (home-page "https://github.com/albertoruiz/hmatrix")
8021 (synopsis "Haskell interface to GSL special functions")
8022 (description "This library provides an interface to GSL special
8023functions for Haskell.")
8024 (license license:gpl3+)))
8025
4225c711
FB
8026(define-public ghc-hmatrix-gsl-stats
8027 (package
8028 (name "ghc-hmatrix-gsl-stats")
26d6539b 8029 (version "0.4.1.7")
4225c711
FB
8030 (source
8031 (origin
8032 (method url-fetch)
8033 (uri
8034 (string-append
98b90194 8035 "https://hackage.haskell.org/package/hmatrix-gsl-stats/hmatrix-gsl-stats-"
4225c711
FB
8036 version ".tar.gz"))
8037 (sha256
26d6539b 8038 (base32 "1gslgk58lzin43cvbpivhw7nrn9qyaa6qwhy1z9ypvyal5p8n3sa"))))
4225c711
FB
8039 (build-system haskell-build-system)
8040 (inputs
8041 `(("ghc-vector" ,ghc-vector)
8042 ("ghc-storable-complex" ,ghc-storable-complex)
8043 ("ghc-hmatrix" ,ghc-hmatrix)
8044 ("gsl" ,gsl)))
8045 (native-inputs `(("pkg-config" ,pkg-config)))
8046 (home-page "http://code.haskell.org/hmatrix-gsl-stats")
8047 (synopsis "GSL Statistics interface for Haskell")
8048 (description "This Haskell library provides a purely functional
8049interface for statistics based on hmatrix and GSL.")
8050 (license license:bsd-3)))
8051
db61a009
FB
8052(define-public ghc-easyplot
8053 (package
8054 (name "ghc-easyplot")
8055 (version "1.0")
8056 (source
8057 (origin
8058 (method url-fetch)
8059 (uri (string-append
98b90194 8060 "https://hackage.haskell.org/package/easyplot/easyplot-"
db61a009
FB
8061 version ".tar.gz"))
8062 (sha256
8063 (base32 "18kndgvdj2apjpfga6fp7m16y1gx8zrwp3c5vfj03sx4v6jvciqk"))))
8064 (build-system haskell-build-system)
8065 (propagated-inputs `(("gnuplot" ,gnuplot)))
8066 (arguments
8067 `(#:phases (modify-phases %standard-phases
8068 (add-after 'unpack 'fix-setup-suffix
8069 (lambda _ (rename-file "Setup.lhs" "Setup.hs") #t)))))
98b90194 8070 (home-page "https://hub.darcs.net/scravy/easyplot")
db61a009
FB
8071 (synopsis "Haskell plotting library based on gnuplot")
8072 (description "This package provides a plotting library for
8073Haskell, using gnuplot for rendering.")
8074 (license license:expat)))
8075
1bd00f17
FB
8076(define-public ghc-hashtables
8077 (package
8078 (name "ghc-hashtables")
fef71dbc 8079 (version "1.2.3.1")
1bd00f17
FB
8080 (source
8081 (origin
8082 (method url-fetch)
8083 (uri (string-append
98b90194 8084 "https://hackage.haskell.org/package/hashtables/hashtables-"
1bd00f17
FB
8085 version ".tar.gz"))
8086 (sha256
fef71dbc 8087 (base32 "1giw9caajr07slf09j7zry9b0kvm4yj9q78zy1mawzi6gk3wglcg"))))
1bd00f17
FB
8088 (build-system haskell-build-system)
8089 (inputs
8090 `(("ghc-hashable" ,ghc-hashable)
8091 ("ghc-primitive" ,ghc-primitive)
8092 ("ghc-vector" ,ghc-vector)))
7bf837fd 8093 (home-page "https://github.com/gregorycollins/hashtables")
1bd00f17
FB
8094 (synopsis "Haskell Mutable hash tables in the ST monad")
8095 (description "This package provides a Haskell library including a
8096couple of different implementations of mutable hash tables in the ST
8097monad, as well as a typeclass abstracting their common operations, and
8098a set of wrappers to use the hash tables in the IO monad.")
8099 (license license:bsd-3)))
8100
505e0150
FB
8101(define-public ghc-data-accessor
8102 (package
8103 (name "ghc-data-accessor")
8104 (version "0.2.2.7")
8105 (source
8106 (origin
8107 (method url-fetch)
8108 (uri (string-append
6846f084 8109 "mirror://hackage/package/data-accessor/data-accessor-"
505e0150
FB
8110 version ".tar.gz"))
8111 (sha256
8112 (base32 "1vf2g1gac3rm32g97rl0fll51m88q7ry4m6khnl5j47qsmx24r9l"))))
8113 (build-system haskell-build-system)
98b90194 8114 (home-page "https://www.haskell.org/haskellwiki/Record_access")
505e0150
FB
8115 (synopsis
8116 "Haskell utilities for accessing and manipulating fields of records")
8117 (description "This package provides Haskell modules for accessing and
8118manipulating fields of records.")
8119 (license license:bsd-3)))
8120
81a11919
FB
8121(define-public ghc-data-accessor-transformers
8122 (package
8123 (name "ghc-data-accessor-transformers")
8124 (version "0.2.1.7")
8125 (source
8126 (origin
8127 (method url-fetch)
8128 (uri (string-append
6846f084
EF
8129 "mirror://hackage/package/data-accessor-transformers/"
8130 "data-accessor-transformers-" version ".tar.gz"))
81a11919
FB
8131 (sha256
8132 (base32 "0yp030vafbpddl27m606aibbbr5ar5j5bsv4bksscz3cq4yq5j10"))))
8133 (build-system haskell-build-system)
8134 (inputs `(("ghc-data-accessor" ,ghc-data-accessor)))
98b90194 8135 (home-page "https://www.haskell.org/haskellwiki/Record_access")
81a11919
FB
8136 (synopsis "Use Accessor to access state in transformers State monad")
8137 (description "This package provides Haskell modules to allow use of
8138Accessor to access state in transformers State monad.")
8139 (license license:bsd-3)))
8140
a5cbef03
FB
8141(define-public ghc-utility-ht
8142 (package
8143 (name "ghc-utility-ht")
9e3e6ee0 8144 (version "0.0.14")
a5cbef03
FB
8145 (home-page "https://hackage.haskell.org/package/utility-ht")
8146 (source
8147 (origin
8148 (method url-fetch)
8149 (uri (string-append home-page "/utility-ht-" version ".tar.gz"))
8150 (sha256
9e3e6ee0 8151 (base32 "1a7bgk7wv7sqbxbiv7kankiimr3wij7zdm7s83zwsf886ghyxhk9"))))
a5cbef03
FB
8152 (build-system haskell-build-system)
8153 (inputs `(("ghc-quickcheck" ,ghc-quickcheck)))
8154 (synopsis "Haskell helper functions for Lists, Maybes, Tuples, Functions")
8155 (description "This package includes Hakell modules providing various
8156helper functions for Lists, Maybes, Tuples, Functions.")
8157 (license license:bsd-3)))
8158
1a86b671
FB
8159(define-public ghc-gnuplot
8160 (package
8161 (name "ghc-gnuplot")
f9f2877d 8162 (version "0.5.5.2")
1a86b671
FB
8163 (source
8164 (origin
8165 (method url-fetch)
8166 (uri (string-append
6846f084 8167 "mirror://hackage/package/gnuplot/gnuplot-"
1a86b671
FB
8168 version ".tar.gz"))
8169 (sha256
f9f2877d 8170 (base32 "1mlppnc13ygjzmf6ldydys4wvy35yb3xjwwfgf9rbi7nfcqjr6mn"))))
1a86b671
FB
8171 (build-system haskell-build-system)
8172 (inputs
8173 `(("ghc-temporary" ,ghc-temporary)
8174 ("ghc-utility-ht" ,ghc-utility-ht)
8175 ("ghc-data-accessor-transformers" ,ghc-data-accessor-transformers)
8176 ("ghc-data-accessor" ,ghc-data-accessor)
1abdefe5 8177 ("ghc-semigroups" ,ghc-semigroups)
1a86b671
FB
8178 ("gnuplot" ,gnuplot)))
8179 (arguments
8180 `(#:phases
8181 (modify-phases %standard-phases
8182 (add-before 'configure 'fix-path-to-gnuplot
8183 (lambda* (#:key inputs #:allow-other-keys)
8184 (let ((gnuplot (assoc-ref inputs "gnuplot")))
8185 (substitute* "os/generic/Graphics/Gnuplot/Private/OS.hs"
8186 (("(gnuplotName = ).*$" all cmd)
8187 (string-append cmd "\"" gnuplot "/bin/gnuplot\"")))))))))
98b90194 8188 (home-page "https://www.haskell.org/haskellwiki/Gnuplot")
1a86b671
FB
8189 (synopsis "2D and 3D plots using gnuplot")
8190 (description "This package provides a Haskell module for creating 2D and
81913D plots using gnuplot.")
8192 (license license:bsd-3)))
8193
f63981de
DC
8194(define-public ghc-hinotify
8195 (package
8196 (name "ghc-hinotify")
e59983ec 8197 (version "0.3.10")
f63981de
DC
8198 (source (origin
8199 (method url-fetch)
8200 (uri (string-append
8201 "https://hackage.haskell.org/package/hinotify/"
8202 "hinotify-" version ".tar.gz"))
8203 (sha256
8204 (base32
e59983ec 8205 "17ax3n68a5c2ddazp86aciliskrh6znd3bnry0wcllmb6dbpsaxg"))))
f63981de 8206 (build-system haskell-build-system)
e59983ec
TS
8207 (inputs
8208 `(("ghc-async" ,ghc-async)))
f63981de
DC
8209 (home-page "https://github.com/kolmodin/hinotify.git")
8210 (synopsis "Haskell binding to inotify")
8211 (description "This library provides a wrapper to the Linux kernel's inotify
8212feature, allowing applications to subscribe to notifications when a file is
8213accessed or modified.")
8214 (license license:bsd-3)))
8215
b7f96285
DC
8216(define-public ghc-fsnotify
8217 (package
8218 (name "ghc-fsnotify")
b5875189 8219 (version "0.3.0.1")
b7f96285
DC
8220 (source (origin
8221 (method url-fetch)
8222 (uri (string-append
8223 "https://hackage.haskell.org/package/fsnotify/"
8224 "fsnotify-" version ".tar.gz"))
8225 (sha256
8226 (base32
b5875189 8227 "19bdbz9wb9jvln6yg6qm0hz0w84bypvkxf0wjhgrgd52f9gidlny"))))
b7f96285
DC
8228 (build-system haskell-build-system)
8229 (inputs
8230 `(("ghc-text" ,ghc-text)
8231 ("ghc-async" ,ghc-async)
8232 ("ghc-unix-compat" ,ghc-unix-compat)
8233 ("ghc-hinotify" ,ghc-hinotify)
8234 ("ghc-tasty" ,ghc-tasty)
8235 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
b5875189
TS
8236 ("ghc-random" ,ghc-random)
8237 ("ghc-shelly" ,ghc-shelly)
8238 ("ghc-temporary" ,ghc-temporary)))
b7f96285
DC
8239 (home-page "https://github.com/haskell-fswatch/hfsnotify")
8240 (synopsis "Cross platform library for file change notification.")
8241 (description "Cross platform library for file creation, modification, and
8242deletion notification. This library builds upon existing libraries for platform
162a1374 8243specific Windows, Mac, and Linux file system event notification.")
b7f96285
DC
8244 (license license:bsd-3)))
8245
5e6cafe1
DC
8246(define-public ghc-ieee754
8247 (package
8248 (name "ghc-ieee754")
99596250 8249 (version "0.8.0")
5e6cafe1
DC
8250 (source (origin
8251 (method url-fetch)
8252 (uri (string-append
8253 "https://hackage.haskell.org/package/ieee754/"
8254 "ieee754-" version ".tar.gz"))
8255 (sha256
8256 (base32
99596250 8257 "1lcs521g9lzy9d7337vg4w7q7s8500rfqy7rcifcz6pm6yfgyb8f"))))
5e6cafe1 8258 (build-system haskell-build-system)
7bf837fd 8259 (home-page "https://github.com/patperry/hs-ieee754")
5e6cafe1
DC
8260 (synopsis "Utilities for dealing with IEEE floating point numbers")
8261 (description "Utilities for dealing with IEEE floating point numbers,
8262ported from the Tango math library; approximate and exact equality comparisons
8263for general types.")
8264 (license license:bsd-3)))
8265
4e05c326
DC
8266(define-public ghc-terminal-size
8267 (package
8268 (name "ghc-terminal-size")
8269 (version "0.3.2.1")
8270 (source (origin
8271 (method url-fetch)
8272 (uri (string-append
8273 "https://hackage.haskell.org/package/terminal-size/"
8274 "terminal-size-" version ".tar.gz"))
8275 (sha256
8276 (base32
8277 "0n4nvj3dbj9gxfnprgish45asn9z4dipv9j98s8i7g2n8yb3xhmm"))))
8278 (build-system haskell-build-system)
98b90194 8279 (home-page "https://hackage.haskell.org/package/terminal-size")
4e05c326
DC
8280 (synopsis "Get terminal window height and width")
8281 (description "Get terminal window height and width without ncurses
8282dependency.")
8283 (license license:bsd-3)))
8284
2d2388e2
DM
8285(define-public ghc-language-c
8286 (package
de793e9a 8287 (name "ghc-language-c")
19b29882 8288 (version "0.8.1")
de793e9a 8289 (source
2d2388e2
DM
8290 (origin
8291 (method url-fetch)
de793e9a
RW
8292 (uri (string-append "https://hackage.haskell.org/package/"
8293 "language-c/language-c-" version ".tar.gz"))
2d2388e2 8294 (sha256
de793e9a 8295 (base32
19b29882 8296 "0sdkjj0hq8p69fcdm6ljbjkjvrsrb8a6rl5dq6dj6byj32ajrm3d"))))
de793e9a
RW
8297 (build-system haskell-build-system)
8298 (inputs `(("ghc-syb" ,ghc-syb)))
8299 (native-inputs
2d2388e2
DM
8300 `(("ghc-happy" ,ghc-happy)
8301 ("ghc-alex" ,ghc-alex)))
98b90194 8302 (home-page "https://visq.github.io/language-c/")
de793e9a
RW
8303 (synopsis "Analysis and generation of C code")
8304 (description
8305 "Language C is a Haskell library for the analysis and generation of C code.
8306It features a complete, well-tested parser and pretty printer for all of C99
2d2388e2 8307and a large set of GNU extensions.")
de793e9a 8308 (license license:bsd-3)))
2d2388e2 8309
6c8a387a
DM
8310(define-public ghc-markdown-unlit
8311 (package
8312 (name "ghc-markdown-unlit")
a1541117 8313 (version "0.5.0")
6c8a387a
DM
8314 (source (origin
8315 (method url-fetch)
8316 (uri (string-append
8317 "mirror://hackage/package/markdown-unlit/"
8318 "markdown-unlit-" version ".tar.gz"))
8319 (sha256
8320 (base32
a1541117 8321 "1gy79vr85vcp13rdjh0hz7zv6daqqffww4j0cqn2lpjjh9xhsbg7"))))
6c8a387a
DM
8322 (build-system haskell-build-system)
8323 (inputs
8324 `(("ghc-base-compat" ,ghc-base-compat)
8325 ("ghc-hspec" ,ghc-hspec)
8326 ("ghc-quickcheck" ,ghc-quickcheck)
8327 ("ghc-silently" ,ghc-silently)
8328 ("ghc-stringbuilder" ,ghc-stringbuilder)
8329 ("ghc-temporary" ,ghc-temporary)
8330 ("hspec-discover" ,hspec-discover)))
8331 (home-page "https://github.com/sol/markdown-unlit#readme")
8332 (synopsis "Literate Haskell support for Markdown")
8333 (description "This package allows you to have a README.md that at the
8334same time is a literate Haskell program.")
8335 (license license:expat)))
8336
ee719fba
DM
8337(define-public corrode
8338 (let ((commit "b6699fb2fa552a07c6091276285a44133e5c9789"))
8339 (package
8340 (name "corrode")
8341 (version (string-append "0.0.1-" (string-take commit 7)))
8342 (source
8343 (origin
8344 (method git-fetch)
8345 (uri (git-reference
8346 (url "https://github.com/jameysharp/corrode.git")
8347 (commit "b6699fb2fa552a07c6091276285a44133e5c9789")))
8348 (file-name
8349 (string-append name "-" version "-checkout"))
8350 (sha256
8351 (base32 "02v0yyj6sk4gpg2222wzsdqjxn8w66scbnf6b20x0kbmc69qcz4r"))))
8352 (build-system haskell-build-system)
8353 (inputs
8354 `(("ghc-language-c" ,ghc-language-c)
8355 ("ghc-markdown-unlit" ,ghc-markdown-unlit)))
8356 (home-page "https://github.com/jameysharp/corrode")
8357 (synopsis "Automatic semantics-preserving translation from C to Rust")
8358 (description
8359 "This program reads a C source file and prints an equivalent module in
8360Rust syntax. It is intended to be useful for two different purposes:
8361
8362@enumerate
8363@item Partial automation for migrating legacy code that was implemented in C.
8364@item A new, complementary approach to static analysis for C programs.
8365@end enumerate\n")
8366 (license license:gpl2+))))
8367
90762815
DM
8368(define-public ghc-wave
8369 (package
8370 (name "ghc-wave")
0618a71b 8371 (version "0.1.5")
90762815
DM
8372 (source (origin
8373 (method url-fetch)
8374 (uri (string-append
8375 "https://hackage.haskell.org/package/wave/wave-"
8376 version
8377 ".tar.gz"))
8378 (sha256
8379 (base32
0618a71b 8380 "03zycmwrchhqvi37fdvlzz2d1vl4hy0i8xyys1zznw38qfq0h2i5"))))
90762815 8381 (build-system haskell-build-system)
70fa5899
SB
8382 (arguments
8383 '(#:phases
8384 (modify-phases %standard-phases
8385 (add-before 'configure 'update-constraints
8386 (lambda _
8387 (substitute* "wave.cabal"
8388 (("temporary.* < 1\\.3")
8389 "temporary >= 1.1 && < 1.4")))))))
90762815
DM
8390 (inputs
8391 `(("ghc-cereal" ,ghc-cereal)
8392 ("ghc-data-default-class"
8393 ,ghc-data-default-class)
8394 ("ghc-quickcheck" ,ghc-quickcheck)
8395 ("ghc-temporary" ,ghc-temporary)))
8396 (native-inputs
8397 `(("hspec-discover" ,hspec-discover)
8398 ("ghc-hspec" ,ghc-hspec)))
8399 (home-page "https://github.com/mrkkrp/wave")
8400 (synopsis "Work with WAVE and RF64 files in Haskell")
8401 (description "This package allows you to work with WAVE and RF64
8402files in Haskell.")
8403 (license license:bsd-3)))
8404
5f622de1 8405(define-public ghc-hslogger
8406 (package
8407 (name "ghc-hslogger")
8408 (version "1.2.10")
8409 (source
8410 (origin
8411 (method url-fetch)
8412 (uri (string-append "https://hackage.haskell.org/package/"
8413 "hslogger-" version "/" "hslogger-"
8414 version ".tar.gz"))
8415 (sha256 (base32
8416 "0as5gvlh6pi2gflakp695qnlizyyp059dqrhvjl4gjxalja6xjnp"))))
8417 (build-system haskell-build-system)
8418 (inputs
f54f0475 8419 `(("ghc-network" ,ghc-network)
831cb419 8420 ("ghc-old-locale" ,ghc-old-locale)))
5f622de1 8421 (native-inputs
8422 `(("ghc-hunit" ,ghc-hunit)))
98b90194 8423 (home-page "https://software.complete.org/hslogger")
5f622de1 8424 (synopsis "Logging framework for Haskell, similar to Python's logging module")
8425 (description "Hslogger lets each log message have a priority and source be
8426associated with it. The programmer can then define global handlers that route
8427or filter messages based on the priority and source. It also has a syslog
8428handler built in.")
8429 (license license:bsd-3)))
8430
a1563803 8431(define-public ghc-unexceptionalio
8432 (package
8433 (name "ghc-unexceptionalio")
06dae8ff 8434 (version "0.4.0")
a1563803 8435 (source
8436 (origin
8437 (method url-fetch)
8438 (uri (string-append "https://hackage.haskell.org/package/"
8439 "unexceptionalio-" version "/" "unexceptionalio-"
8440 version ".tar.gz"))
06dae8ff 8441 (sha256 (base32 "09gynk472l7nn5l2w320n4dwigwp0wh0shfp6dyw6r5h2jdxz18p"))))
a1563803 8442 (build-system haskell-build-system)
8443 (home-page "https://github.com/singpolyma/unexceptionalio")
8444 (synopsis "IO without any non-error, synchronous exceptions")
8445 (description "When you've caught all the exceptions that can be
8446handled safely, this is what you're left with.")
8447 (license license:isc)))
8448
6f8016f4
DM
8449(define-public ghc-json
8450 (package
8451 (name "ghc-json")
1a8f5eb2 8452 (version "0.9.2")
6f8016f4
DM
8453 (source
8454 (origin
8455 (method url-fetch)
8456 (uri (string-append "https://hackage.haskell.org/package/json/"
8457 "json-" version ".tar.gz"))
8458 (sha256
8459 (base32
1a8f5eb2 8460 "13kkfgx58z18jphbg56jn08jn72wi3kvfndlwwx87hqwg7x1dfz6"))))
6f8016f4
DM
8461 (build-system haskell-build-system)
8462 (inputs
8463 `(("ghc-syb" ,ghc-syb)
6f8016f4
DM
8464 ("ghc-text" ,ghc-text)
8465 ("ghc-parsec" ,ghc-parsec)))
98b90194 8466 (home-page "https://hackage.haskell.org/package/json")
6f8016f4
DM
8467 (synopsis "Serializes Haskell data to and from JSON")
8468 (description "This package provides a parser and pretty printer for
8469converting between Haskell values and JSON.
8470JSON (JavaScript Object Notation) is a lightweight data-interchange format.")
8471 (license license:bsd-3)))
8472
92c2097b 8473(define-public ghc-esqueleto
3b72e7e2
TS
8474 (let ((version "2.5.3")
8475 (revision "1")
8476 (commit "b81e0d951e510ebffca03c5a58658ad884cc6fbd"))
8477 (package
8478 (name "ghc-esqueleto")
8479 (version (git-version version revision commit))
8480 (source
8481 (origin
8482 (method git-fetch)
8483 (uri (git-reference
8484 (url "https://github.com/bitemyapp/esqueleto")
8485 (commit commit)))
e76a972b 8486 (file-name (git-file-name name version))
3b72e7e2
TS
8487 (sha256
8488 (base32
8489 "0lz1qxms7cfg5p3j37inlych0r2fwhm8xbarcys3df9m7jy9nixa"))))
8490 (build-system haskell-build-system)
8491 (arguments
8492 `(#:haddock? #f ; Haddock reports an internal error.
8493 #:phases
8494 (modify-phases %standard-phases
8495 ;; This package normally runs tests for the MySQL, PostgreSQL, and
8496 ;; SQLite backends. Since we only have Haskell packages for
8497 ;; SQLite, we remove the other two test suites. FIXME: Add the
8498 ;; other backends and run all three test suites.
8499 (add-before 'configure 'remove-non-sqlite-test-suites
8500 (lambda _
8501 (use-modules (ice-9 rdelim))
8502 (with-atomic-file-replacement "esqueleto.cabal"
8503 (lambda (in out)
8504 (let loop ((line (read-line in 'concat)) (deleting? #f))
8505 (cond
8506 ((eof-object? line) #t)
8507 ((string-every char-set:whitespace line)
8508 (unless deleting? (display line out))
8509 (loop (read-line in 'concat) #f))
8510 ((member line '("test-suite mysql\n"
8511 "test-suite postgresql\n"))
8512 (loop (read-line in 'concat) #t))
8513 (else
8514 (unless deleting? (display line out))
8515 (loop (read-line in 'concat) deleting?)))))))))))
8516 (inputs
8517 `(("ghc-blaze-html" ,ghc-blaze-html)
8518 ("ghc-conduit" ,ghc-conduit)
8519 ("ghc-monad-logger" ,ghc-monad-logger)
8520 ("ghc-persistent" ,ghc-persistent)
8521 ("ghc-resourcet" ,ghc-resourcet)
8522 ("ghc-tagged" ,ghc-tagged)
8523 ("ghc-text" ,ghc-text)
8524 ("ghc-unliftio" ,ghc-unliftio)
8525 ("ghc-unordered-containers" ,ghc-unordered-containers)))
8526 (native-inputs
8527 `(("ghc-hspec" ,ghc-hspec)
8528 ("ghc-persistent-sqlite" ,ghc-persistent-sqlite)
8529 ("ghc-persistent-template" ,ghc-persistent-template)))
8530 (home-page "https://github.com/bitemyapp/esqueleto")
8531 (synopsis "Type-safe embedded domain specific language for SQL queries")
8532 (description "This library provides a type-safe embedded domain specific
92c2097b
TS
8533language (EDSL) for SQL queries that works with SQL backends as provided by
8534@code{ghc-persistent}. Its language closely resembles SQL, so you don't have
8535to learn new concepts, just new syntax, and it's fairly easy to predict the
8536generated SQL and optimize it for your backend.")
3b72e7e2 8537 (license license:bsd-3))))
92c2097b 8538
7e58cbbb
DM
8539(define-public shellcheck
8540 (package
8541 (name "shellcheck")
eaa1f873 8542 (version "0.5.0")
7e58cbbb
DM
8543 (source
8544 (origin
8545 (method url-fetch)
eaa1f873
SB
8546 (uri (string-append
8547 "https://hackage.haskell.org/package/ShellCheck/ShellCheck-"
8548 version ".tar.gz"))
7e58cbbb
DM
8549 (sha256
8550 (base32
eaa1f873 8551 "0z1hscbr11hwkq8k1v0vaa947hb9m6k4cm831jk1gpj8dxrk151b"))
7e58cbbb
DM
8552 (file-name (string-append name "-" version ".tar.gz"))))
8553 (build-system haskell-build-system)
8554 (inputs
eaa1f873
SB
8555 `(("ghc-aeson" ,ghc-aeson)
8556 ("ghc-quickcheck" ,ghc-quickcheck)
7e58cbbb
DM
8557 ("ghc-parsec" ,ghc-parsec)
8558 ("ghc-regex-tdfa" ,ghc-regex-tdfa)))
8559 (home-page "https://github.com/koalaman/shellcheck")
8560 (synopsis "Static analysis for shell scripts")
8561 (description "@code{shellcheck} provides static analysis for
8562@command{bash} and @command{sh} shell scripts.
8563It gives warnings and suggestions in order to:
8564
8565@enumerate
8566@item Point out and clarify typical beginner's syntax issues that cause
8567a shell to give cryptic error messages.
8568@item Point out and clarify typical intermediate level semantic problems
8569that cause a shell to behave strangely and counter-intuitively.
8570@item Point out subtle caveats, corner cases and pitfalls that may cause an
8571advanced user's otherwise working script to fail under future circumstances.
8572@end enumerate")
8573 (license license:gpl3+)))
8574
789dc568 8575(define-public ghc-simple-sendfile
8576 (package
8577 (name "ghc-simple-sendfile")
23aa12fc 8578 (version "0.2.27")
789dc568 8579 (source
8580 (origin
8581 (method url-fetch)
8582 (uri (string-append "https://hackage.haskell.org/package/"
8583 "simple-sendfile-" version "/"
8584 "simple-sendfile-" version ".tar.gz"))
8585 (sha256
8586 (base32
23aa12fc 8587 "1bwwqzcm56m2w4ymsa054sxmpbj76h9pvb0jf8zxp8lr41cp51gn"))))
789dc568 8588 (build-system haskell-build-system)
8589 (inputs
8590 `(("ghc-conduit" ,ghc-conduit)
8591 ("ghc-conduit-extra" ,ghc-conduit-extra)
8592 ("ghc-network" ,ghc-network)
8593 ("ghc-resourcet" ,ghc-resourcet)))
8594 (native-inputs
8595 `(("ghc-hspec" ,ghc-hspec)
8596 ("hspec-discover" ,hspec-discover)))
8597 (home-page "https://github.com/kazu-yamamoto/simple-sendfile")
8598 (synopsis "Cross platform library for the sendfile system call")
8599 (description "This library tries to call minimum system calls which
8600are the bottleneck of web servers.")
8601 (license license:bsd-3)))
8602
59b340a5 8603(define-public ghc-hex
8604 (package
8605 (name "ghc-hex")
8606 (version "0.1.2")
8607 (source
8608 (origin
8609 (method url-fetch)
8610 (uri (string-append "https://hackage.haskell.org/package/"
8611 "hex-" version "/"
8612 "hex-" version ".tar.gz"))
8613 (sha256
8614 (base32
8615 "1v31xiaivrrn0q2jz8919wvkjplv1kxna5ajhsj701fqxm1i5vhj"))))
8616 (build-system haskell-build-system)
98b90194 8617 (home-page "https://hackage.haskell.org/package/hex")
59b340a5 8618 (synopsis "Convert strings into hexadecimal and back")
8619 (description "This package provides conversion functions between
8620bytestrings and their hexademical representation.")
8621 (license license:bsd-3)))
8622
aba85f8c 8623(define-public ghc-psqueues
8624 (package
8625 (name "ghc-psqueues")
6062c461 8626 (version "0.2.7.0")
aba85f8c 8627 (source
8628 (origin
8629 (method url-fetch)
8630 (uri (string-append "https://hackage.haskell.org/package/"
8631 "psqueues-" version "/"
8632 "psqueues-" version ".tar.gz"))
8633 (sha256
8634 (base32
6062c461 8635 "1sjgc9bxh63kkdp59nbirx3xazr02ia5yhp4f4a0jnq1hj465wsc"))))
aba85f8c 8636 (build-system haskell-build-system)
8637 (inputs
8638 `(("ghc-hashable" ,ghc-hashable)))
8639 (native-inputs
8640 `(("ghc-hunit" ,ghc-hunit)
8641 ("ghc-quickcheck" ,ghc-quickcheck)
8642 ("ghc-tagged" ,ghc-tagged)
8643 ("ghc-test-framework" ,ghc-test-framework)
8644 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
8645 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
20c902f0 8646 (home-page "https://github.com/jaspervdj/psqueues")
aba85f8c 8647 (synopsis "Pure priority search queues")
8648 (description "The psqueues package provides
98b90194 8649@uref{https://en.wikipedia.org/wiki/Priority_queue, Priority Search Queues} in
aba85f8c 8650three different flavors:
8651
8652@itemize
8653@item @code{OrdPSQ k p v}, which uses the @code{Ord k} instance to provide
8654fast insertion, deletion and lookup. This implementation is based on Ralf
8655Hinze's @uref{http://citeseer.ist.psu.edu/hinze01simple.html, A Simple
8656Implementation Technique for Priority Search Queues}.
8657
98b90194 8658Hence, it is similar to the @uref{https://hackage.haskell.org/package/PSQueue,
aba85f8c 8659PSQueue} library, although it is considerably faster and provides a slightly
8660different API.
8661
8662@item @code{IntPSQ p v} is a far more efficient implementation. It fixes the
8663key type to @code{Int} and uses a
98b90194 8664@code{https://en.wikipedia.org/wiki/Radix_tree, radix tree} (like @code{IntMap})
a5f89a63 8665with an additional min-heap property.
aba85f8c 8666
8667@item @code{HashPSQ k p v} is a fairly straightforward extension
8668of @code{IntPSQ}: it simply uses the keys' hashes as indices in the
8669@code{IntPSQ}. If there are any hash collisions, it uses an
8670@code{OrdPSQ} to resolve those. The performance of this implementation
8671is comparable to that of @code{IntPSQ}, but it is more widely
8672applicable since the keys are not restricted to @code{Int},
8673but rather to any @code{Hashable} datatype.
8674@end itemize
8675
8676Each of the three implementations provides the same API, so they can
8677be used interchangeably.
8678
8679Typical applications of Priority Search Queues include:
8680
8681@itemize
8682@item Caches, and more specifically LRU Caches;
8683@item Schedulers;
8684@item Pathfinding algorithms, such as Dijkstra's and A*.
8685@end itemize")
8686 (license license:bsd-3)))
8687
4031fb60 8688(define-public ghc-glob
8689 (package
8690 (name "ghc-glob")
29273431 8691 (version "0.9.2")
4031fb60 8692 (source
8693 (origin
8694 (method url-fetch)
8695 (uri (string-append "https://hackage.haskell.org/package/"
8696 "Glob-" version "/"
8697 "Glob-" version ".tar.gz"))
8698 (sha256
8699 (base32
29273431 8700 "1rbwcq9w9951qsnp13vqcm9r01yax2yh1wk8s4zxa3ckk9717iwg"))))
4031fb60 8701 (build-system haskell-build-system)
8702 (inputs
8703 `(("ghc-dlist" ,ghc-dlist)
8704 ("ghc-semigroups" ,ghc-semigroups)
8705 ("ghc-transformers-compat" ,ghc-transformers-compat)))
8706 (native-inputs
8707 `(("ghc-hunit" ,ghc-hunit)
8708 ("ghc-quickcheck" ,ghc-quickcheck)
8709 ("ghc-test-framework" ,ghc-test-framework)
8710 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
8711 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
8712 (home-page "http://iki.fi/matti.niemenmaa/glob/")
8713 (synopsis "Haskell library matching glob patterns against file paths")
581a006b 8714 (description "This package provides a Haskell library for @dfn{globbing}:
4031fb60 8715matching patterns against file paths.")
8716 (license license:bsd-3)))
8717
78d8b8f3 8718(define-public ghc-errors
8719 (package
8720 (name "ghc-errors")
24e18bf9 8721 (version "2.3.0")
78d8b8f3 8722 (source
8723 (origin
8724 (method url-fetch)
8725 (uri (string-append "https://hackage.haskell.org/package/"
8726 "errors-" version "/"
8727 "errors-" version ".tar.gz"))
8728 (sha256
8729 (base32
24e18bf9 8730 "0x8znwn31qcx6kqx99wp7bc86kckfb39ncz3zxvj1s07kxlfawk7"))))
78d8b8f3 8731 (build-system haskell-build-system)
8732 (inputs
8733 `(("ghc-exceptions" ,ghc-exceptions)
8734 ("ghc-text" ,ghc-text)
8735 ("ghc-transformers-compat" ,ghc-transformers-compat)
8736 ("ghc-unexceptionalio" ,ghc-unexceptionalio)
8737 ("ghc-safe" ,ghc-safe)))
8738 (home-page "https://github.com/gabriel439/haskell-errors-library")
8739 (synopsis "Error handling library for Haskell")
8740 (description "This library encourages an error-handling style that
8741directly uses the type system, rather than out-of-band exceptions.")
8742 (license license:bsd-3)))
8743
c1274a0b 8744(define-public ghc-vector-th-unbox
8745 (package
8746 (name "ghc-vector-th-unbox")
8747 (version "0.2.1.6")
8748 (source
8749 (origin
8750 (method url-fetch)
8751 (uri (string-append "https://hackage.haskell.org/package/"
8752 "vector-th-unbox-" version "/"
8753 "vector-th-unbox-" version ".tar.gz"))
8754 (sha256
8755 (base32
8756 "0d82x55f5vvr1jvaia382m23rs690lg55pvavv8f4ph0y6kd91xy"))))
8757 (build-system haskell-build-system)
8758 (inputs
8759 `(("ghc-vector" ,ghc-vector)
8760 ("ghc-data-default" ,ghc-data-default)))
8761 (home-page "https://github.com/liyang/vector-th-unbox")
8762 (synopsis "Deriver for Data.Vector.Unboxed using Template Haskell")
8763 (description "This Haskell library provides a Template Haskell
8764deriver for unboxed vectors, given a pair of coercion functions to
8765and from some existing type with an Unbox instance.")
8766 (license license:bsd-3)))
8767
bdd7e395 8768(define-public ghc-erf
8769 (package
8770 (name "ghc-erf")
8771 (version "2.0.0.0")
8772 (source
8773 (origin
8774 (method url-fetch)
8775 (uri (string-append "https://hackage.haskell.org/package/"
8776 "erf-" version "/"
8777 "erf-" version ".tar.gz"))
8778 (sha256
8779 (base32
8780 "0dxk2r32ajmmc05vaxcp0yw6vgv4lkbmh8jcshncn98xgsfbgw14"))))
8781 (build-system haskell-build-system)
8782 (home-page "https://hackage.haskell.org/package/erf")
8783 (synopsis "The error function, erf, and related functions for Haskell")
8784 (description "This Haskell library provides a type class for the
8785error function, erf, and related functions. Instances for Float and
8786Double.")
8787 (license license:bsd-3)))
8788
a51ba897 8789(define-public ghc-math-functions
8790 (package
8791 (name "ghc-math-functions")
8792 (version "0.2.1.0")
8793 (source
8794 (origin
8795 (method url-fetch)
8796 (uri (string-append "https://hackage.haskell.org/package/"
8797 "math-functions-" version "/"
8798 "math-functions-" version ".tar.gz"))
8799 (sha256
8800 (base32
8801 "1sv5vabsx332v1lpb6v3jv4zrzvpx1n7yprzd8wlcda5vsc5a6zp"))))
8802 (build-system haskell-build-system)
fc3ef1e2 8803 (arguments `(#:tests? #f)) ; FIXME: 1 test fails.
a51ba897 8804 (inputs
8805 `(("ghc-vector" ,ghc-vector)
8806 ("ghc-vector-th-unbox" ,ghc-vector-th-unbox)))
8807 (native-inputs
8808 `(("ghc-hunit" ,ghc-hunit)
8809 ("ghc-quickcheck" ,ghc-quickcheck)
8810 ("ghc-erf" ,ghc-erf)
8811 ("ghc-test-framework" ,ghc-test-framework)
8812 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
8813 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
8814 (home-page "https://github.com/bos/math-functions")
8815 (synopsis "Special functions and Chebyshev polynomials for Haskell")
8816 (description "This Haskell library provides implementations of
8817special mathematical functions and Chebyshev polynomials. These
8818functions are often useful in statistical and numerical computing.")
8819 (license license:bsd-3)))
8820
1a2a247b 8821(define-public ghc-mwc-random
8822 (package
8823 (name "ghc-mwc-random")
8824 (version "0.13.6.0")
8825 (source
8826 (origin
8827 (method url-fetch)
8828 (uri (string-append "https://hackage.haskell.org/package/"
8829 "mwc-random-" version "/"
8830 "mwc-random-" version ".tar.gz"))
8831 (sha256
8832 (base32
8833 "05j7yh0hh9nxic3dijmzv44kc6gzclvamdph7sq7w19wq57k6pq6"))))
8834 (build-system haskell-build-system)
8835 (inputs
8836 `(("ghc-primitive" ,ghc-primitive)
8837 ("ghc-vector" ,ghc-vector)
8838 ("ghc-math-functions" ,ghc-math-functions)))
8839 (arguments
8840 `(#:tests? #f)) ; FIXME: Test-Suite `spec` fails.
8841 (native-inputs
8842 `(("ghc-hunit" ,ghc-hunit)
8843 ("ghc-quickcheck" ,ghc-quickcheck)
8844 ("ghc-test-framework" ,ghc-test-framework)
8845 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
8846 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
8847 (home-page "https://github.com/bos/mwc-random")
8848 (synopsis "Random number generation library for Haskell")
8849 (description "This Haskell package contains code for generating
8850high quality random numbers that follow either a uniform or normal
8851distribution. The generated numbers are suitable for use in
8852statistical applications.
8853
8854The uniform PRNG uses Marsaglia's MWC256 (also known as MWC8222)
8855multiply-with-carry generator, which has a period of 2^{8222} and
8856fares well in tests of randomness. It is also extremely fast,
8857between 2 and 3 times faster than the Mersenne Twister.")
8858 (license license:bsd-3)))
8859
30aede1b 8860(define-public ghc-vector-algorithms
8861 (package
8862 (name "ghc-vector-algorithms")
d9404fc1 8863 (version "0.7.0.4")
30aede1b 8864 (source
8865 (origin
8866 (method url-fetch)
8867 (uri (string-append "https://hackage.haskell.org/package/"
8868 "vector-algorithms-" version "/"
8869 "vector-algorithms-" version ".tar.gz"))
8870 (sha256
8871 (base32
d9404fc1 8872 "0mfa8ig9v69l41p2vb5jl4qmaln5y1rlzarr2mlgm8g1nvq8qqdg"))))
30aede1b 8873 (build-system haskell-build-system)
8874 (inputs
d9404fc1 8875 `(("ghc-vector" ,ghc-vector)))
30aede1b 8876 (native-inputs
8877 `(("ghc-quickcheck" ,ghc-quickcheck)))
8878 (home-page "https://github.com/bos/math-functions")
8879 (synopsis "Algorithms for vector arrays in Haskell")
8880 (description "This Haskell library algorithms for vector arrays.")
8881 (license license:bsd-3)))
8882
897d4f28 8883(define-public ghc-language-haskell-extract
8884 (package
8885 (name "ghc-language-haskell-extract")
8886 (version "0.2.4")
8887 (source
8888 (origin
8889 (method url-fetch)
8890 (uri (string-append "https://hackage.haskell.org/package/"
8891 "language-haskell-extract-" version "/"
8892 "language-haskell-extract-" version ".tar.gz"))
8893 (sha256
8894 (base32
8895 "1nxcs7g8a1sp91bzpy4cj6s31k5pvc3gvig04cbrggv5cvjidnhl"))))
8896 (build-system haskell-build-system)
8897 (inputs
8898 `(("ghc-regex-posix" ,ghc-regex-posix)))
8899 (home-page "https://github.com/finnsson/template-helper")
8900 (synopsis "Haskell module to automatically extract functions from
8901the local code")
8902 (description "This package contains helper functions on top of
8903Template Haskell.
8904
8905For example, @code{functionExtractor} extracts all functions after a
8906regexp-pattern, which can be useful if you wish to extract all functions
8907beginning with @code{test} (for a test framework) or all functions beginning
8908with @code{wc} (for a web service).")
8909 (license license:bsd-3)))
8910
97b26920 8911(define-public ghc-abstract-par
8912 (package
8913 (name "ghc-abstract-par")
8914 (version "0.3.3")
8915 (source
8916 (origin
8917 (method url-fetch)
8918 (uri (string-append "https://hackage.haskell.org/package/"
8919 "abstract-par-" version "/"
8920 "abstract-par-" version ".tar.gz"))
8921 (sha256
8922 (base32
8923 "0q6qsniw4wks2pw6wzncb1p1j3k6al5njnvm2v5n494hplwqg2i4"))))
8924 (build-system haskell-build-system)
8925 (home-page "https://github.com/simonmar/monad-par")
8926 (synopsis "Abstract parallelization interface for Haskell")
8927 (description "This Haskell package is an abstract interface
8928only. It provides a number of type clasess, but not an
8929implementation. The type classes separate different levels
8930of @code{Par} functionality. See the @code{Control.Monad.Par.Class}
8931module for more details.")
8932 (license license:bsd-3)))
8933
59551881 8934(define-public ghc-monad-par-extras
8935 (package
8936 (name "ghc-monad-par-extras")
8937 (version "0.3.3")
8938 (source
8939 (origin
8940 (method url-fetch)
8941 (uri (string-append "https://hackage.haskell.org/package/"
8942 "monad-par-extras-" version "/"
8943 "monad-par-extras-" version ".tar.gz"))
8944 (sha256
8945 (base32
8946 "0bl4bd6jzdc5zm20q1g67ppkfh6j6yn8fwj6msjayj621cck67p2"))))
8947 (build-system haskell-build-system)
8948 (inputs `(("ghc-abstract-par" ,ghc-abstract-par)
8949 ("ghc-cereal" ,ghc-cereal)
f54f0475 8950 ("ghc-random" ,ghc-random)))
59551881 8951 (home-page "https://github.com/simonmar/monad-par")
8952 (synopsis "Combinators and extra features for Par monads for Haskell")
8953 (description "This Haskell package provides additional data structures,
8954and other added capabilities layered on top of the @code{Par} monad.")
8955 (license license:bsd-3)))
8956
f978e2ac 8957(define-public ghc-abstract-deque
8958 (package
8959 (name "ghc-abstract-deque")
8960 (version "0.3")
8961 (source
8962 (origin
8963 (method url-fetch)
8964 (uri (string-append "https://hackage.haskell.org/package/"
8965 "abstract-deque-" version "/"
8966 "abstract-deque-" version ".tar.gz"))
8967 (sha256
8968 (base32
8969 "18jwswjxwzc9bjiy4ds6hw2a74ki797jmfcifxd2ga4kh7ri1ah9"))))
8970 (build-system haskell-build-system)
8971 (inputs `(("ghc-random" ,ghc-random)))
8972 (home-page "https://github.com/rrnewton/haskell-lockfree/wiki")
8973 (synopsis "Abstract, parameterized interface to mutable Deques for Haskell")
8974 (description "This Haskell package provides an abstract interface to
8975highly-parameterizable queues/deques.
8976
8977Background: There exists a feature space for queues that extends between:
8978
8979@itemize
8980@item Simple, single-ended, non-concurrent, bounded queues
8981
467834d5
TGR
8982@item Double-ended, thread-safe, growable queues with important points
8983in between (such as the queues used for work stealing).
f978e2ac 8984@end itemize
8985
8986This package includes an interface for Deques that allows the programmer
467834d5 8987to use a single API for all of the above, while using the type system to
f978e2ac 8988select an efficient implementation given the requirements (using type families).
8989
8990This package also includes a simple reference implementation based on
8991@code{IORef} and @code{Data.Sequence}.")
8992 (license license:bsd-3)))
8993
608bf276 8994(define-public ghc-monad-par
8995 (package
8996 (name "ghc-monad-par")
8997 (version "0.3.4.8")
8998 (source
8999 (origin
9000 (method url-fetch)
9001 (uri (string-append "https://hackage.haskell.org/package/"
9002 "monad-par-" version "/"
9003 "monad-par-" version ".tar.gz"))
9004 (sha256
9005 (base32
9006 "0ldrzqy24fsszvn2a2nr77m2ih7xm0h9bgkjyv1l274aj18xyk7q"))))
9007 (build-system haskell-build-system)
9008 (inputs `(("ghc-abstract-par" ,ghc-abstract-par)
9009 ("ghc-abstract-deque" ,ghc-abstract-deque)
9010 ("ghc-monad-par-extras" ,ghc-monad-par-extras)
9011 ("ghc-mwc-random" ,ghc-mwc-random)
f54f0475 9012 ("ghc-parallel" ,ghc-parallel)))
608bf276 9013 (native-inputs `(("ghc-quickcheck" ,ghc-quickcheck)
9014 ("ghc-hunit" ,ghc-hunit)
9015 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
9016 ("ghc-test-framework-quickcheck2"
9017 ,ghc-test-framework-quickcheck2)
9018 ("ghc-test-framework" ,ghc-test-framework)
9019 ("ghc-test-framework-th" ,ghc-test-framework-th)))
9020 (home-page "https://github.com/simonmar/monad-par")
9021 (synopsis "Haskell library for parallel programming based on a monad")
9022 (description "The @code{Par} monad offers an API for parallel
9023programming. The library works for parallelising both pure and @code{IO}
9024computations, although only the pure version is deterministic. The default
9025implementation provides a work-stealing scheduler and supports forking tasks
9026that are much lighter weight than IO-threads.")
9027 (license license:bsd-3)))
9028
0c717284 9029(define-public ghc-statistics
9030 (package
9031 (name "ghc-statistics")
9032 (version "0.14.0.2")
9033 (source
9034 (origin
9035 (method url-fetch)
9036 (uri (string-append "https://hackage.haskell.org/package/"
9037 "statistics-" version "/"
9038 "statistics-" version ".tar.gz"))
9039 (sha256
9040 (base32
9041 "0y27gafkib0x0fn39qfn2rkgsfrm09ng35sbb5dwr7rclhnxz59l"))))
9042 (build-system haskell-build-system)
52891580
RW
9043 (arguments
9044 '(#:cabal-revision
9045 ("2" "1bx70yqkn62ii17fjv3pig4hklrzkqd09zj67zzjiyjzmn04fir3")
9046 ;; Two tests fail: "Discrete CDF is OK" and "Quantile is CDF inverse".
9047 #:tests? #f))
0c717284 9048 (inputs
9049 `(("ghc-aeson" ,ghc-aeson)
9050 ("ghc-base-orphans" ,ghc-base-orphans)
9051 ("ghc-erf" ,ghc-erf)
9052 ("ghc-math-functions" ,ghc-math-functions)
9053 ("ghc-monad-par" ,ghc-monad-par)
9054 ("ghc-mwc-random" ,ghc-mwc-random)
9055 ("ghc-primitive" ,ghc-primitive)
9056 ("ghc-vector" ,ghc-vector)
9057 ("ghc-vector-algorithms" ,ghc-vector-algorithms)
9058 ("ghc-vector-th-unbox" ,ghc-vector-th-unbox)
9059 ("ghc-vector-binary-instances" ,ghc-vector-binary-instances)))
9060 (native-inputs
9061 `(("ghc-hunit" ,ghc-hunit)
9062 ("ghc-quickcheck" ,ghc-quickcheck)
c695fb76 9063 ("ghc-ieee754" ,ghc-ieee754)
0c717284 9064 ("ghc-test-framework" ,ghc-test-framework)
9065 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
9066 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
0c717284 9067 (home-page "https://github.com/bos/mwc-random")
9068 (synopsis "Haskell library of statistical types, data, and functions")
9069 (description "This library provides a number of common functions
9070and types useful in statistics. We focus on high performance, numerical
9071robustness, and use of good algorithms. Where possible, we provide references
9072to the statistical literature.
9073
9074The library's facilities can be divided into four broad categories:
9075
9076@itemize
9077@item Working with widely used discrete and continuous probability
9078distributions. (There are dozens of exotic distributions in use; we focus
9079on the most common.)
9080
9081@item Computing with sample data: quantile estimation, kernel density
9082estimation, histograms, bootstrap methods, significance testing,
9083and regression and autocorrelation analysis.
9084
9085@item Random variate generation under several different distributions.
9086
9087@item Common statistical tests for significant differences between samples.
9088@end itemize")
9089 (license license:bsd-2)))
9090
371ad40c 9091(define-public ghc-chunked-data
9092 (package
9093 (name "ghc-chunked-data")
48f8ba91 9094 (version "0.3.1")
371ad40c 9095 (source
9096 (origin
9097 (method url-fetch)
9098 (uri (string-append "https://hackage.haskell.org/package/"
9099 "chunked-data-" version "/"
9100 "chunked-data-" version ".tar.gz"))
9101 (sha256
9102 (base32
48f8ba91 9103 "16m7y7fwrirbjbqqcsfmr4yxa9qvfax6r7pw0zl9ky71ms0wa47p"))))
371ad40c 9104 (build-system haskell-build-system)
9105 (inputs `(("ghc-vector" ,ghc-vector)
d6e559ab 9106 ("ghc-semigroups" ,ghc-semigroups)
9107 ("ghc-text" ,ghc-text)))
371ad40c 9108 (home-page "https://github.com/snoyberg/mono-traversable")
9109 (synopsis "Typeclasses for dealing with various chunked data
9110representations for Haskell")
9111 (description "This Haskell package was originally present in
9112classy-prelude.")
9113 (license license:expat)))
9114
ac4cb8fd 9115(define-public ghc-base-prelude
9116 (package
9117 (name "ghc-base-prelude")
d3cc0eb2 9118 (version "1.3")
ac4cb8fd 9119 (source
9120 (origin
9121 (method url-fetch)
9122 (uri (string-append "https://hackage.haskell.org/package/"
9123 "base-prelude-" version "/"
9124 "base-prelude-" version ".tar.gz"))
9125 (sha256
9126 (base32
d3cc0eb2 9127 "1zk728sd09hh2r4xwz4lazsrrgg5cshydn64932sm0vckplndk73"))))
ac4cb8fd 9128 (build-system haskell-build-system)
9129 (home-page "https://github.com/nikita-volkov/base-prelude")
9130 (synopsis "The most complete prelude formed solely from the Haskell's base
9131package")
9132 (description "This Haskell package aims to reexport all the non-conflicting
9133and most general definitions from the \"base\" package.
9134
9135This includes APIs for applicatives, arrows, monoids, foldables, traversables,
9136exceptions, generics, ST, MVars and STM.
9137
9138This package will never have any dependencies other than \"base\".
9139
9140Versioning policy:
9141
9142The versioning policy of this package deviates from PVP in the sense
9143that its exports in part are transitively determined by the version of \"base\".
9144Therefore it's recommended for the users of @code{ghc-base-prelude} to specify
9145the bounds of \"base\" as well.")
9146 (license license:expat)))
9147
e329bacb 9148(define-public ghc-tuple-th
9149 (package
9150 (name "ghc-tuple-th")
9151 (version "0.2.5")
9152 (source
9153 (origin
9154 (method url-fetch)
9155 (uri (string-append "https://hackage.haskell.org/package/"
9156 "tuple-th-" version "/"
9157 "tuple-th-" version ".tar.gz"))
9158 (sha256
9159 (base32
9160 "1mrl4vvxmby7sf1paf7hklzidnr6wq55822i73smqyz0xpf3gsjn"))))
9161 (build-system haskell-build-system)
9162 (home-page "https://github.com/DanielSchuessler/tuple-th")
9163 (synopsis "Generate utility functions for tuples of statically known size
9164for Haskell")
9165 (description "This Haskell package contains Template Haskell functions for
9166generating functions similar to those in @code{Data.List} for tuples of
9167statically known size.")
9168 (license license:bsd-3)))
9169
4562c8c8 9170(define-public ghc-contravariant-extras
9171 (package
9172 (name "ghc-contravariant-extras")
c1cf4c70 9173 (version "0.3.4")
4562c8c8 9174 (source
9175 (origin
9176 (method url-fetch)
9177 (uri (string-append "https://hackage.haskell.org/package/"
9178 "contravariant-extras-" version "/"
9179 "contravariant-extras-" version ".tar.gz"))
9180 (sha256
9181 (base32
c1cf4c70 9182 "0gg62ccl94kvh7mnvdq09pifqxjx2kgs189si90nmg44bafj7a9n"))))
4562c8c8 9183 (build-system haskell-build-system)
c1cf4c70
TS
9184 (inputs
9185 `(("ghc-tuple-th" ,ghc-tuple-th)
9186 ("ghc-contravariant" ,ghc-contravariant)
9187 ("ghc-base-prelude" ,ghc-base-prelude)
9188 ("ghc-semigroups" ,ghc-semigroups)))
4562c8c8 9189 (home-page "https://github.com/nikita-volkov/contravariant-extras")
9190 (synopsis "Extras for the @code{ghc-contravariant} Haskell package")
9191 (description "This Haskell package provides extras for the
9192@code{ghc-contravariant} package.")
9193 (license license:expat)))
9194
87129984 9195(define-public ghc-monadrandom
9196 (package
9197 (name "ghc-monadrandom")
d58fda7d 9198 (version "0.5.1.1")
87129984 9199 (source
9200 (origin
9201 (method url-fetch)
9202 (uri (string-append "https://hackage.haskell.org/package/"
9203 "MonadRandom-" version "/"
9204 "MonadRandom-" version ".tar.gz"))
9205 (sha256
9206 (base32
d58fda7d 9207 "0w44jl1n3kqvqaflh82l1wj3xxbhzfs3kf4m8rk7w6fgg8llmnmb"))))
87129984 9208 (build-system haskell-build-system)
9209 (inputs `(("ghc-transformers-compat" ,ghc-transformers-compat)
87129984 9210 ("ghc-primitive" ,ghc-primitive)
9211 ("ghc-fail" ,ghc-fail)
9212 ("ghc-random" ,ghc-random)))
9213 (home-page "https://github.com/byorgey/MonadRandom")
9214 (synopsis "Random-number generation monad for Haskell")
9215 (description "This Haskell package provides support for computations
9216which consume random values.")
9217 (license license:bsd-3)))
9218
16d4125e 9219(define-public ghc-either
9220 (package
9221 (name "ghc-either")
751a8c0b 9222 (version "5.0.1")
16d4125e 9223 (source
9224 (origin
9225 (method url-fetch)
9226 (uri (string-append "https://hackage.haskell.org/package/"
9227 "either-" version "/"
9228 "either-" version ".tar.gz"))
9229 (sha256
9230 (base32
751a8c0b 9231 "064hjfld7dkzs78sy30k5qkiva3hx24rax6dvzz5ygr2c0zypdkc"))))
16d4125e 9232 (build-system haskell-build-system)
9233 (inputs `(("ghc-bifunctors" ,ghc-bifunctors)
9234 ("ghc-exceptions" ,ghc-exceptions)
9235 ("ghc-free" ,ghc-free)
9236 ("ghc-monad-control" ,ghc-monad-control)
9237 ("ghc-manodrandom" ,ghc-monadrandom)
16d4125e 9238 ("ghc-mmorph" ,ghc-mmorph)
9239 ("ghc-profunctors" ,ghc-profunctors)
9240 ("ghc-semigroups" ,ghc-semigroups)
9241 ("ghc-semigroupoids" ,ghc-semigroupoids)
9242 ("ghc-transformers-base" ,ghc-transformers-base)))
751a8c0b
TS
9243 (native-inputs
9244 `(("ghc-quickcheck" ,ghc-quickcheck)
9245 ("ghc-test-framework" ,ghc-test-framework)
9246 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
16d4125e 9247 (home-page "https://github.com/ekmett/either")
9248 (synopsis "Provides an either monad transformer for Haskell")
9249 (description "This Haskell package provides an either monad transformer.")
9250 (license license:bsd-3)))
933e7804 9251
f78ed5d5 9252(define-public ghc-pretty-hex
9253 (package
9254 (name "ghc-pretty-hex")
9255 (version "1.0")
9256 (source
9257 (origin
9258 (method url-fetch)
9259 (uri (string-append "https://hackage.haskell.org/package/"
9260 "pretty-hex-" version "/"
9261 "pretty-hex-" version ".tar.gz"))
9262 (sha256
9263 (base32
9264 "0ylwkvvjvmpprha9nx83xb8gkhyanhk5fffc0r7lb96n4ch5z6pz"))))
9265 (build-system haskell-build-system)
9266 (home-page "https://github.com/GaloisInc/hexdump")
9267 (synopsis "Haskell library for hex dumps of ByteStrings")
9268 (description "This Haskell library generates pretty hex dumps of
9269ByteStrings in the style of other common *nix hex dump tools.")
9270 (license license:bsd-3)))
9271
6eda2635 9272(define-public ghc-network-info
9273 (package
9274 (name "ghc-network-info")
e433898d 9275 (version "0.2.0.10")
6eda2635 9276 (source
9277 (origin
9278 (method url-fetch)
9279 (uri (string-append "https://hackage.haskell.org/package/"
9280 "network-info-" version "/"
9281 "network-info-" version ".tar.gz"))
9282 (sha256
9283 (base32
e433898d 9284 "0anmgzcpnz7nw3n6vq0r25m1s9l2svpwi83wza0lzkrlbnbzd02n"))))
6eda2635 9285 (build-system haskell-build-system)
9286 (home-page "https://github.com/jystic/network-info")
9287 (synopsis "Access the local computer's basic network configuration")
9288 (description "This Haskell library provides simple read-only access to the
9289local computer's networking configuration. It is currently capable of
9290getting a list of all the network interfaces and their respective
9291IPv4, IPv6 and MAC addresses.")
9292 (license license:bsd-3)))
9293
b999b009 9294(define-public ghc-uuid-types
9295 (package
9296 (name "ghc-uuid-types")
9297 (version "1.0.3")
9298 (source
9299 (origin
9300 (method url-fetch)
9301 (uri (string-append "https://hackage.haskell.org/package/"
9302 "uuid-types-" version "/"
9303 "uuid-types-" version ".tar.gz"))
9304 (sha256
9305 (base32
9306 "1zdka5jnm1h6k36w3nr647yf3b5lqb336g3fkprhd6san9x52xlj"))))
9307 (build-system haskell-build-system)
b1c5c8de 9308 (arguments
fe3ecc30
TS
9309 `(#:phases
9310 (modify-phases %standard-phases
9311 (add-before 'configure 'strip-test-framework-constraints
9312 (lambda _
9313 (substitute* "uuid-types.cabal"
9314 (("HUnit >=1\\.2 && < 1\\.4") "HUnit")
9315 (("QuickCheck >=2\\.4 && < 2\\.9") "QuickCheck")
9316 (("tasty >= 0\\.10 && < 0\\.12") "tasty")
9317 (("tasty-hunit == 0\\.9\\.\\*") "tasty-hunit")
9318 (("tasty-quickcheck == 0\\.8\\.\\*") "tasty-quickcheck")))))))
b999b009 9319 (inputs `(("ghc-hashable" ,ghc-hashable)
9320 ("ghc-random" ,ghc-random)
9321 ("ghc-text" ,ghc-text)))
9322 (native-inputs `(("ghc-hunit" ,ghc-hunit)
9323 ("ghc-quickcheck" ,ghc-quickcheck)
9324 ("ghc-tasty" ,ghc-tasty)
9325 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
9326 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
9327 (home-page "https://github.com/hvr/uuid")
9328 (synopsis "Haskell type definitions for UUIDs")
9329 (description "This Haskell library contains type definitions for
9330@dfn{Universally Unique Identifiers} or
98b90194 9331@uref{https://en.wikipedia.org/wiki/UUID, UUIDs}, and basic conversion
b999b009 9332functions.")
9333 (license license:bsd-3)))
9334
24535a3d 9335(define-public ghc-uuid
9336 (package
9337 (name "ghc-uuid")
9338 (version "1.3.13")
9339 (source
9340 (origin
9341 (method url-fetch)
9342 (uri (string-append "https://hackage.haskell.org/package/"
9343 "uuid-" version "/"
9344 "uuid-" version ".tar.gz"))
9345 (sha256
9346 (base32
9347 "09xhk42yhxvqmka0iqrv3338asncz8cap3j0ic0ps896f2581b6z"))))
9348 (build-system haskell-build-system)
1debc5b9 9349 (arguments
a11ce106
TS
9350 `(#:cabal-revision
9351 ("2" "0m185q62jkfb5jsv358nxbnrkv8y8hd0qqvgvh22wvc5g9ipz0r9")
9352 #:phases
9353 (modify-phases %standard-phases
9354 (add-before 'configure 'strip-test-framework-constraints
9355 (lambda _
9356 (substitute* "uuid.cabal"
9357 (("HUnit >= 1\\.2 && < 1\\.4") "HUnit")
9358 (("QuickCheck >= 2\\.4 && < 2\\.10") "QuickCheck")
9359 (("tasty >= 0\\.10 && < 0\\.12") "tasty")
9360 (("tasty-hunit == 0\\.9\\.\\*") "tasty-hunit")
9361 (("tasty-quickcheck == 0\\.8\\.\\*") "tasty-quickcheck")))))))
24535a3d 9362 (inputs `(("ghc-cryptohash-sha1" ,ghc-cryptohash-sha1)
9363 ("ghc-cryptohash-md5" ,ghc-cryptohash-md5)
9364 ("ghc-entropy" ,ghc-entropy)
9365 ("ghc-network-info" ,ghc-network-info)
9366 ("ghc-random" ,ghc-random)
9367 ("ghc-text" ,ghc-text)
9368 ("ghc-uuid-types" ,ghc-uuid-types)))
9369 (native-inputs `(("ghc-hunit" ,ghc-hunit)
9370 ("ghc-quickcheck" ,ghc-quickcheck)
9371 ("ghc-tasty" ,ghc-tasty)
9372 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
9373 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
9374 (home-page "https://github.com/hvr/uuid")
9375 (synopsis "Haskell library to create, compare, parse, and print UUIDs")
9376 (description "This Haskell library provides utilities creating, comparing,
9377parsing and printing @dfn{Universally Unique Identifiers} or UUIDs.")
9378 (license license:bsd-3)))
9379
33109c82 9380(define-public ghc-rebase
9381 (package
9382 (name "ghc-rebase")
6d2fd200 9383 (version "1.2.4")
33109c82 9384 (source
9385 (origin
9386 (method url-fetch)
9387 (uri (string-append "https://hackage.haskell.org/package/"
9388 "rebase-" version "/"
9389 "rebase-" version ".tar.gz"))
9390 (sha256
9391 (base32
6d2fd200 9392 "1gah2qwfpzwamnikbc5h4nv6dgvv9h16di9ka7946za3nibyasya"))))
33109c82 9393 (build-system haskell-build-system)
9394 (inputs `(("ghc-stm" ,ghc-stm)
9395 ("ghc-hashable" ,ghc-hashable)
9396 ("ghc-vector" ,ghc-vector)
9397 ("ghc-unordered-containers" ,ghc-unordered-containers)
9398 ("ghc-text" ,ghc-text)
9399 ("ghc-scientific" ,ghc-scientific)
9400 ("ghc-uuid" ,ghc-uuid)
9401 ("ghc-dlist" ,ghc-dlist)
9402 ("ghc-void" ,ghc-void)
9403 ("ghc-bifunctors" ,ghc-bifunctors)
9404 ("ghc-profunctors" ,ghc-profunctors)
9405 ("ghc-contravariant" ,ghc-contravariant)
9406 ("ghc-contravariant-extras" ,ghc-contravariant-extras)
9407 ("ghc-semigroups" ,ghc-semigroups)
33109c82 9408 ("ghc-either" ,ghc-either)
9409 ("ghc-fail" ,ghc-fail)
9410 ("ghc-base-prelude" ,ghc-base-prelude)))
9411 (home-page "https://github.com/nikita-volkov/rebase")
9412 (synopsis "Progressive alternative to the base package
9413for Haskell")
9414 (description "This Haskell package is intended for those who are
9415tired of keeping long lists of dependencies to the same essential libraries
9416in each package as well as the endless imports of the same APIs all over again.
9417
9418It also supports the modern tendencies in the language.
9419
9420To solve those problems this package does the following:
9421
9422@itemize
9423@item Reexport the original APIs under the @code{Rebase} namespace.
9424
9425@item Export all the possible non-conflicting symbols from the
9426@code{Rebase.Prelude} module.
9427
9428@item Give priority to the modern practices in the conflicting cases.
9429@end itemize
9430
9431The policy behind the package is only to reexport the non-ambiguous and
9432non-controversial APIs, which the community has obviously settled on.
9433The package is intended to rapidly evolve with the contribution from
9434the community, with the missing features being added with pull-requests.")
9435 (license license:expat)))
9516ef4f
TS
9436
9437(define-public ghc-rerebase
9438 (package
9439 (name "ghc-rerebase")
9440 (version "1.2.2")
9441 (source
9442 (origin
9443 (method url-fetch)
9444 (uri (string-append
9445 "https://hackage.haskell.org/package/rerebase/rerebase-"
9446 version ".tar.gz"))
9447 (sha256
9448 (base32
9449 "11v6rmz7ql2rdx6mhb3lsal952lwihclfhh0m7fcnii5br0906ks"))))
9450 (build-system haskell-build-system)
9451 (inputs
9452 `(("ghc-rebase" ,ghc-rebase)))
9453 (home-page "https://github.com/nikita-volkov/rerebase")
9454 (synopsis "Reexports from ``base'' with many other standard libraries")
36a4366d 9455 (description "A rich drop-in replacement for @code{base}. For details and
9516ef4f
TS
9456documentation please visit @uref{https://github.com/nikita-volkov/rerebase,
9457the project's home page}.")
9458 (license license:expat)))
33109c82 9459
1896a252 9460(define-public ghc-vector-builder
9461 (package
9462 (name "ghc-vector-builder")
c237721e 9463 (version "0.3.6")
1896a252 9464 (source
9465 (origin
9466 (method url-fetch)
9467 (uri (string-append "https://hackage.haskell.org/package/"
9468 "vector-builder-" version "/"
9469 "vector-builder-" version ".tar.gz"))
9470 (sha256
9471 (base32
c237721e 9472 "06d2pa1fb3ydrl7l6rjazqyxv5i73v65x2f5fp0ypjxfbm6jsmn8"))))
1896a252 9473 (build-system haskell-build-system)
9474 (inputs `(("ghc-vector" ,ghc-vector)
9475 ("ghc-semigroups" ,ghc-semigroups)
9476 ("ghc-base-prelude" ,ghc-base-prelude)))
c237721e
TS
9477 (native-inputs `(("ghc-attoparsec" ,ghc-attoparsec)
9478 ("ghc-tasty" ,ghc-tasty)
1896a252 9479 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
9480 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
9481 ("ghc-hunit" ,ghc-hunit)
9482 ("ghc-quickcheck-instances" ,ghc-quickcheck-instances)
c237721e 9483 ("ghc-rerebase" ,ghc-rerebase)))
1896a252 9484 (home-page "https://github.com/nikita-volkov/vector-builder")
9485 (synopsis "Vector builder for Haskell")
9486 (description "This Haskell package provides an API for constructing vectors.
9487It provides the composable @code{Builder} abstraction, which has instances of the
9488@code{Monoid} and @code{Semigroup} classes.
9489
9490You would first use the @code{Builder} abstraction to specify the structure of
9491the vector; then you can execute the builder to actually produce the
9492vector. ")
9493 (license license:expat)))
9494
f6094850 9495(define-public ghc-foldl
9496 (package
9497 (name "ghc-foldl")
ca96ba99 9498 (version "1.4.3")
f6094850 9499 (source
9500 (origin
9501 (method url-fetch)
9502 (uri (string-append "https://hackage.haskell.org/package/"
9503 "foldl-" version "/"
9504 "foldl-" version ".tar.gz"))
9505 (sha256
9506 (base32
ca96ba99 9507 "13n0ca3hw5jzqf6rxsdbhbwkn61a9zlm13f0f205s60j3sc72jzk"))))
f6094850 9508 (build-system haskell-build-system)
9509 (inputs `(("ghc-mwc-randam" ,ghc-mwc-random)
9510 ("ghc-primitive" ,ghc-primitive)
9511 ("ghc-text" ,ghc-text)
9512 ("ghc-vector" ,ghc-vector)
9513 ("ghc-unordered-containers" ,ghc-unordered-containers)
9514 ("ghc-hashable" ,ghc-hashable)
9515 ("ghc-contravariant" ,ghc-contravariant)
ca96ba99 9516 ("ghc-semigroups" ,ghc-semigroups)
f6094850 9517 ("ghc-profunctors" ,ghc-profunctors)
ca96ba99 9518 ("ghc-semigroupoids" ,ghc-semigroupoids)
f6094850 9519 ("ghc-comonad" ,ghc-comonad)
9520 ("ghc-vector-builder" ,ghc-vector-builder)))
9521 (home-page "https://github.com/Gabriel439/Haskell-Foldl-Library")
9522 (synopsis "Composable, streaming, and efficient left folds for Haskell")
9523 (description "This Haskell library provides strict left folds that stream
9524in constant memory, and you can combine folds using @code{Applicative} style
9525to derive new folds. Derived folds still traverse the container just once
9526and are often as efficient as hand-written folds.")
9527 (license license:bsd-3)))
9528
ed4cc0c5 9529(define-public ghc-mono-traversable
9530 (package
9531 (name "ghc-mono-traversable")
74b30be0 9532 (version "1.0.9.0")
ed4cc0c5 9533 (source
9534 (origin
9535 (method url-fetch)
9536 (uri (string-append "https://hackage.haskell.org/package/"
9537 "mono-traversable-" version "/"
9538 "mono-traversable-" version ".tar.gz"))
9539 (sha256
9540 (base32
74b30be0 9541 "0180ks0dyvpk1r20w5jw2w2n79mjnk69n9vhspaxzlyxqgim5psa"))))
ed4cc0c5 9542 (build-system haskell-build-system)
9543 (inputs `(("ghc-unordered-containers" ,ghc-unordered-containers)
9544 ("ghc-hashable" ,ghc-hashable)
9545 ("ghc-text" ,ghc-text)
9546 ("ghc-vector" ,ghc-vector)
9547 ("ghc-vector-algorithms" ,ghc-vector-algorithms)
9548 ("ghc-split" ,ghc-split)))
9549 (native-inputs `(("ghc-hspec" ,ghc-hspec)
c695fb76 9550 ("ghc-hunit" ,ghc-hunit)
ed4cc0c5 9551 ("ghc-quickcheck" ,ghc-quickcheck)
9552 ("ghc-semigroups" ,ghc-semigroups)
9553 ("ghc-foldl" ,ghc-foldl)))
9554 (home-page "https://github.com/snoyberg/mono-traversable")
9555 (synopsis "Haskell classes for mapping, folding, and traversing monomorphic
9556containers")
9557 (description "This Haskell package provides Monomorphic variants of the
9558Functor, Foldable, and Traversable typeclasses. If you understand Haskell's
9559basic typeclasses, you understand mono-traversable. In addition to what
9560you are used to, it adds on an IsSequence typeclass and has code for marking
9561data structures as non-empty.")
9562 (license license:expat)))
9563
95fb25bf 9564(define-public ghc-conduit-combinators
9565 (package
9566 (name "ghc-conduit-combinators")
37d79707 9567 (version "1.3.0")
95fb25bf 9568 (source
9569 (origin
9570 (method url-fetch)
9571 (uri (string-append "https://hackage.haskell.org/package/"
9572 "conduit-combinators-" version "/"
9573 "conduit-combinators-" version ".tar.gz"))
9574 (sha256
9575 (base32
37d79707 9576 "1lz70vwp4y4lpsivxl0cshq7aq3968rh48r6rjvpyaj2l0bdj5wp"))))
95fb25bf 9577 (build-system haskell-build-system)
9578 (inputs `(("ghc-conduit" ,ghc-conduit)
9579 ("ghc-conduit-extra" ,ghc-conduit-extra)
9580 ("ghc-transformers-base" ,ghc-transformers-base)
9581 ("ghc-primitive" ,ghc-primitive)
9582 ("ghc-vector" ,ghc-vector)
9583 ("ghc-text" ,ghc-text)
9584 ("ghc-void" ,ghc-void)
9585 ("ghc-mwc-random" ,ghc-mwc-random)
9586 ("ghc-unix-compat" ,ghc-unix-compat)
9587 ("ghc-base16-bytestring" ,ghc-base16-bytestring)
9588 ("ghc-base64-bytestring" ,ghc-base64-bytestring)
9589 ("ghc-resourcet" ,ghc-resourcet)
9590 ("ghc-monad-control" ,ghc-monad-control)
9591 ("ghc-chunked-data" ,ghc-chunked-data)
9592 ("ghc-mono-traversable" ,ghc-mono-traversable)))
9593 (native-inputs `(("ghc-hspec" ,ghc-hspec)
9594 ("ghc-silently" ,ghc-silently)
95fb25bf 9595 ("ghc-safe" ,ghc-safe)
9596 ("ghc-quickcheck" ,ghc-quickcheck)))
9597 (home-page "https://github.com/snoyberg/mono-traversable")
9598 (synopsis "Commonly used conduit functions, for both chunked and
9599unchunked data")
9600 (description "This Haskell package provides a replacement for Data.Conduit.List,
9601as well as a convenient Conduit module.")
9602 (license license:expat)))
9603
3a784700 9604(define-public ghc-aws
9605 (package
9606 (name "ghc-aws")
99daa294 9607 (version "0.20")
3a784700 9608 (source
9609 (origin
9610 (method url-fetch)
9611 (uri (string-append "https://hackage.haskell.org/package/"
9612 "aws-" version "/aws-" version ".tar.gz"))
9613 (sha256 (base32
99daa294 9614 "0pwpabmypi1w8rni9qfwabgn95jks4h8dyw6889mn8xzsrhdhyf0"))))
3a784700 9615 (build-system haskell-build-system)
9616 (arguments `(#:tests? #f)) ; Tests require AWS credentials.
9617 (inputs
9618 `(("ghc-aeson" ,ghc-aeson)
9619 ("ghc-attoparsec" ,ghc-attoparsec)
9620 ("ghc-base16-bytestring" ,ghc-base16-bytestring)
9621 ("ghc-base64-bytestring" ,ghc-base64-bytestring)
9622 ("ghc-blaze-builder" ,ghc-blaze-builder)
9623 ("ghc-byteable" ,ghc-byteable)
9624 ("ghc-case-insensitive" ,ghc-case-insensitive)
9625 ("ghc-cereal" ,ghc-cereal)
9626 ("ghc-conduit" ,ghc-conduit)
9627 ("ghc-conduit-extra" ,ghc-conduit-extra)
0faddfc3 9628 ("ghc-cryptonite" ,ghc-cryptonite)
3a784700 9629 ("ghc-data-default" ,ghc-data-default)
9630 ("ghc-http-conduit" ,ghc-http-conduit)
9631 ("ghc-http-types" ,ghc-http-types)
456d76ea 9632 ("ghc-lifted-base" ,ghc-lifted-base)
3a784700 9633 ("ghc-monad-control" ,ghc-monad-control)
3a784700 9634 ("ghc-network" ,ghc-network)
9635 ("ghc-old-locale" ,ghc-old-locale)
9636 ("ghc-safe" ,ghc-safe)
9637 ("ghc-scientific" ,ghc-scientific)
9638 ("ghc-tagged" ,ghc-tagged)
9639 ("ghc-text" ,ghc-text)
9640 ("ghc-unordered-containers" ,ghc-unordered-containers)
9641 ("ghc-utf8-string" ,ghc-utf8-string)
9642 ("ghc-vector" ,ghc-vector)
9643 ("ghc-xml-conduit" ,ghc-xml-conduit)))
9644 (native-inputs
9645 `(("ghc-quickcheck" ,ghc-quickcheck)
9646 ("ghc-errors" ,ghc-errors)
9647 ("ghc-http-client" ,ghc-http-client)
9648 ("ghc-http-client-tls" ,ghc-http-client-tls)
9649 ("ghc-quickcheck-instances" ,ghc-quickcheck-instances)
9650 ("ghc-tasty" ,ghc-tasty)
9651 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
9652 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
9653 ("ghc-conduit-combinators" ,ghc-conduit-combinators)))
9654 (home-page "https://github.com/aristidb/aws")
9655 (synopsis "Amazon Web Services for Haskell")
9656 (description "This package attempts to provide support for using
9657Amazon Web Services like S3 (storage), SQS (queuing) and others to
9658Haskell programmers. The ultimate goal is to support all Amazon
9659Web Services.")
9660 (license license:bsd-3)))
9661
da5fe92a
RW
9662(define-public ghc-basement
9663 (package
9664 (name "ghc-basement")
6bacde7c 9665 (version "0.0.8")
da5fe92a
RW
9666 (source
9667 (origin
9668 (method url-fetch)
9669 (uri (string-append "https://hackage.haskell.org/package/"
9670 "basement/basement-" version ".tar.gz"))
9671 (sha256
9672 (base32
6bacde7c 9673 "194jw567di4q2758943q9rrwkbf9gl261my7qc21i9xhyabipx67"))))
da5fe92a
RW
9674 (build-system haskell-build-system)
9675 (home-page "https://github.com/haskell-foundation/foundation")
9676 (synopsis "Basic primitives for Foundation starter pack")
9677 (description
9678 "This package contains basic primitives for the Foundation set of
9679packages.")
9680 (license license:bsd-3)))
9681
635cc8fe
RW
9682(define-public ghc-foundation
9683 (package
9684 (name "ghc-foundation")
95415545 9685 (version "0.0.21")
635cc8fe
RW
9686 (source
9687 (origin
9688 (method url-fetch)
9689 (uri (string-append "https://hackage.haskell.org/package/"
9690 "foundation/foundation-" version ".tar.gz"))
9691 (sha256
9692 (base32
95415545 9693 "1q43y8wfj0wf9gdq2kzphwjwq6m5pvryy1lqgk954aq5z3ks1lsf"))))
635cc8fe 9694 (build-system haskell-build-system)
95415545
TS
9695 (arguments
9696 `(#:phases
9697 (modify-phases %standard-phases
9698 (add-after 'unpack 'add-setup-script
9699 (lambda _
9700 ;; The usual "Setup.hs" script is missing from the source.
9701 (with-output-to-file "Setup.hs"
9702 (lambda ()
9703 (format #t "import Distribution.Simple~%")
9704 (format #t "main = defaultMain~%"))))))))
635cc8fe
RW
9705 (inputs `(("ghc-basement" ,ghc-basement)))
9706 (home-page "https://github.com/haskell-foundation/foundation")
9707 (synopsis "Alternative prelude with batteries and no dependencies")
9708 (description
9709 "This package provides a custom prelude with no dependencies apart from
9710the base package.
9711
9712Foundation has the following goals:
9713
9714@enumerate
9715@item provide a base like sets of modules that provide a consistent set of
9716 features and bugfixes across multiple versions of GHC (unlike base).
9717@item provide a better and more efficient prelude than base's prelude.
9718@item be self-sufficient: no external dependencies apart from base;
9719@item provide better data-types: packed unicode string by default, arrays;
9720@item Numerical classes that better represent mathematical things (no more
9721 all-in-one @code{Num});
9722@item I/O system with less lazy IO.
9723@end enumerate\n")
9724 (license license:bsd-3)))
9725
bb87be09 9726(define-public ghc-stm-chans
9727 (package
9728 (name "ghc-stm-chans")
9729 (version "3.0.0.4")
9730 (source
9731 (origin
9732 (method url-fetch)
9733 (uri (string-append "https://hackage.haskell.org/package/"
9734 "stm-chans-" version "/"
9735 "stm-chans-" version ".tar.gz"))
9736 (sha256
9737 (base32
9738 "0f27sp09yha43xk9q55sc185jyjs5h7gq2dhsyx6bm9kz9dzqi13"))))
9739 (build-system haskell-build-system)
9740 (inputs `(("ghc-stm" ,ghc-stm)))
9741 (home-page "https://hackage.haskell.org/package/stm-chans")
9742 (synopsis "Additional types of channels for ghc-stm")
9743 (description "This Haskell package offers a collection of channel types,
9744similar to @code{Control.Concurrent.STM.@{TChan,TQueue@}} but with additional
9745features.")
9746 (license license:bsd-3)))
9747
fddb41f2 9748(define-public ghc-monad-loops
9749 (package
9750 (name "ghc-monad-loops")
9751 (version "0.4.3")
9752 (source
9753 (origin
9754 (method url-fetch)
9755 (uri (string-append "https://hackage.haskell.org/package/"
9756 "monad-loops-" version "/"
9757 "monad-loops-" version ".tar.gz"))
9758 (sha256
9759 (base32
9760 "062c2sn3hc8h50p1mhqkpyv6x8dydz2zh3ridvlfjq9nqimszaky"))))
9761 (build-system haskell-build-system)
9762 (native-inputs `(("ghc-tasty" ,ghc-tasty)
9763 ("ghc-tasty-hunit" ,ghc-tasty-hunit)))
9764 (home-page "https://github.com/mokus0/monad-loops")
9765 (synopsis "Monadic loops for Haskell")
9766 (description "This Haskell package provides some useful control
9767operators for looping.")
9768 (license license:public-domain)))
9769
fe9b5eff 9770(define-public ghc-monad-logger
9771 (package
9772 (name "ghc-monad-logger")
6f7280b0 9773 (version "0.3.29")
fe9b5eff 9774 (source
9775 (origin
9776 (method url-fetch)
9777 (uri (string-append "https://hackage.haskell.org/package/"
9778 "monad-logger-" version "/"
9779 "monad-logger-" version ".tar.gz"))
9780 (sha256
9781 (base32
6f7280b0 9782 "1z516s4pa9n94zf0l45mylssg07xr1d1m6zrz900p0iv3vfd07mv"))))
fe9b5eff 9783 (build-system haskell-build-system)
9784 (inputs `(("ghc-transformers-compat" ,ghc-transformers-compat)
9785 ("ghc-text" ,ghc-text)
9786 ("ghc-stm" ,ghc-stm)
9787 ("ghc-stm-chans" ,ghc-stm-chans)
9788 ("ghc-lifted-base" ,ghc-lifted-base)
9789 ("ghc-resourcet" ,ghc-resourcet)
9790 ("ghc-conduit" ,ghc-conduit)
9791 ("ghc-conduit-extra" ,ghc-conduit-extra)
9792 ("ghc-fast-logger" ,ghc-fast-logger)
9793 ("ghc-transformers-base" ,ghc-transformers-base)
9794 ("ghc-monad-control" ,ghc-monad-control)
9795 ("ghc-monad-loops" ,ghc-monad-loops)
fe9b5eff 9796 ("ghc-blaze-builder" ,ghc-blaze-builder)
9797 ("ghc-exceptions" ,ghc-exceptions)))
9798 (home-page "https://github.com/kazu-yamamoto/logger")
9799 (synopsis "Provides a class of monads which can log messages for Haskell")
9800 (description "This Haskell package uses a monad transformer approach
9801for logging.
9802
9803This package provides Template Haskell functions for determining source
9804code locations of messages.")
9805 (license license:expat)))
9806
b2b4575d 9807(define-public ghc-shakespeare
9808 (package
9809 (name "ghc-shakespeare")
01a67f89 9810 (version "2.0.15")
b2b4575d 9811 (source
9812 (origin
9813 (method url-fetch)
9814 (uri (string-append "https://hackage.haskell.org/package/"
9815 "shakespeare-" version "/"
9816 "shakespeare-" version ".tar.gz"))
9817 (sha256
9818 (base32
01a67f89 9819 "1vk4b19zvwy4mpwaq9z3l3kfmz75gfyf7alhh0y112gspgpccm23"))))
b2b4575d 9820 (build-system haskell-build-system)
9821 (inputs `(("ghc-parsec" ,ghc-parsec)
9822 ("ghc-text" ,ghc-text)
9823 ("ghc-aeson" ,ghc-aeson)
9824 ("ghc-blaze-markup" ,ghc-blaze-markup)
9825 ("ghc-blaze-html" ,ghc-blaze-html)
9826 ("ghc-exceptions" ,ghc-exceptions)
9827 ("ghc-vector" ,ghc-vector)
9828 ("ghc-unordered-containers" ,ghc-unordered-containers)
9829 ("ghc-scientific" ,ghc-scientific)))
9830 (native-inputs `(("ghc-hspec" ,ghc-hspec)
9831 ("ghc-hunit" ,ghc-hunit)
9832 ("hspec-discover" ,hspec-discover)))
9833 (home-page "https://www.yesodweb.com/book/shakespearean-templates")
9834 (synopsis "Family of type-safe template languages for Haskell")
9835 (description "This Haskell package provides a family of type-safe
9836templates with simple variable interpolation. Shakespeare templates can
9837be used inline with a quasi-quoter or in an external file and it
9838interpolates variables according to the type being inserted.")
9839 (license license:expat)))
9840
54f3536d 9841(define-public ghc-securemem
9842 (package
9843 (name "ghc-securemem")
4828f040 9844 (version "0.1.10")
54f3536d 9845 (source
9846 (origin
9847 (method url-fetch)
9848 (uri (string-append "https://hackage.haskell.org/package/"
9849 "securemem-" version "/"
9850 "securemem-" version ".tar.gz"))
9851 (sha256
9852 (base32
4828f040 9853 "19hnw2cfbsfjynxq1bq9f6djbxhsc1k751ml0y1ab3ah913mm29j"))))
54f3536d 9854 (build-system haskell-build-system)
9855 (inputs `(("ghc-byteable" ,ghc-byteable)
9856 ("ghc-memory" ,ghc-memory)))
9857 (home-page "https://github.com/vincenthz/hs-securemem")
9858 (synopsis "Auto-scrubbing and const-time-eq memory chunk abstraction for
9859Haskell")
9860 (description "SecureMem is similar to ByteString, except that it provides
9861a memory chunk that will be auto-scrubbed after it run out of scope.")
9862 (license license:bsd-3)))
9863
d96a1bfe 9864(define-public ghc-resource-pool
9865 (package
9866 (name "ghc-resource-pool")
9867 (version "0.2.3.2")
9868 (source
9869 (origin
9870 (method url-fetch)
9871 (uri (string-append "https://hackage.haskell.org/package/"
9872 "resource-pool-" version "/"
9873 "resource-pool-" version ".tar.gz"))
9874 (sha256
9875 (base32
9876 "04mw8b9djb14zp4rdi6h7mc3zizh597ffiinfbr4m0m8psifw9w6"))))
9877 (build-system haskell-build-system)
9878 (inputs `(("ghc-hashable" ,ghc-hashable)
9879 ("ghc-monad-control" ,ghc-monad-control)
9880 ("ghc-transformers-base" ,ghc-transformers-base)
9881 ("ghc-stm" ,ghc-stm)
9882 ("ghc-vector" ,ghc-vector)))
9883 (home-page "https://github.com/bos/pool")
9884 (synopsis "Striped resource pooling implementation in Haskell")
9885 (description "This Haskell package provides striped pooling abstraction
9886for managing flexibly-sized collections of resources such as database
9887connections.")
9888 (license license:bsd-3)))
9889
ac7cdb40 9890(define-public ghc-attoparsec-iso8601
9891 (package
9892 (name "ghc-attoparsec-iso8601")
9893 (version "1.0.0.0")
9894 (source
9895 (origin
9896 (method url-fetch)
9897 (uri (string-append "https://hackage.haskell.org/package/"
9898 "attoparsec-iso8601-" version "/"
9899 "attoparsec-iso8601-" version ".tar.gz"))
9900 (sha256
9901 (base32
9902 "12l55b76bhya9q89mfmqmy6sl5v39b6gzrw5rf3f70vkb23nsv5a"))))
9903 (build-system haskell-build-system)
8e4394a5
TS
9904 (arguments
9905 `(#:cabal-revision
9906 ("1" "06f7pgmmc8456p3hc1y23kz1y127gfczy7s00wz1rls9g2sm2vi4")))
ac7cdb40 9907 (inputs `(("ghc-attoparsec" ,ghc-attoparsec)
9908 ("ghc-base-compat" ,ghc-base-compat)
9909 ("ghc-text" ,ghc-text)))
9910 (home-page "https://github.com/bos/aeson")
9911 (synopsis "Parse ISO 8601 dates")
9912 (description "Haskell library for parsing of ISO 8601 dates, originally
9913from aeson.")
9914 (license license:bsd-3)))
9915
e99bd15c 9916(define-public ghc-generics-sop
9917 (package
9918 (name "ghc-generics-sop")
acf13271 9919 (version "0.3.2.0")
e99bd15c 9920 (source
9921 (origin
9922 (method url-fetch)
9923 (uri (string-append "https://hackage.haskell.org/package/"
9924 "generics-sop-" version "/"
9925 "generics-sop-" version ".tar.gz"))
9926 (sha256
9927 (base32
acf13271 9928 "168v62i845jh9jbfaz3ldz8svz4wmzq9mf2vhb7pxlnbkk8fqq1h"))))
e99bd15c 9929 (build-system haskell-build-system)
9930 (inputs `(("ghc-transformers-compat" ,ghc-transformers-compat)))
9931 (home-page "https://github.com/well-typed/generics-sop")
9932 (synopsis "Generic Programming using True Sums of Products for Haskell")
9933 (description "This Haskell package supports the definition of generic
9934functions. Datatypes are viewed in a uniform, structured way: the choice
9935between constructors is represented using an n-ary sum, and the arguments of
9936each constructor are represented using an n-ary product.")
9937 (license license:bsd-3)))
9938
8ecefe72 9939(define-public ghc-uri-bytestring
9940 (package
9941 (name "ghc-uri-bytestring")
bad349d8 9942 (version "0.3.2.0")
8ecefe72 9943 (source
9944 (origin
9945 (method url-fetch)
9946 (uri (string-append "https://hackage.haskell.org/package/"
9947 "uri-bytestring-" version "/"
9948 "uri-bytestring-" version ".tar.gz"))
9949 (sha256
9950 (base32
bad349d8 9951 "1q04j5ybvk37zk2m0bkjwyhblz0ymdj0cn4rvsvdca1ikn5xdv5c"))))
8ecefe72 9952 (build-system haskell-build-system)
9953 (inputs `(("ghc-attoparsec" ,ghc-attoparsec)
9954 ("ghc-fail" ,ghc-fail)
9955 ("ghc-blaze-builder" ,ghc-blaze-builder)
9956 ("ghc-th-lift-instances" ,ghc-th-lift-instances)))
9957 (native-inputs `(("ghc-attoparsec" ,ghc-attoparsec)
9958 ("ghc-hunit" ,ghc-hunit)
9959 ("ghc-quickcheck" ,ghc-quickcheck)
9960 ("ghc-tasty" ,ghc-tasty)
9961 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
9962 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
9963 ("ghc-base-compat" ,ghc-base-compat)
9964 ("ghc-quickcheck-instances" ,ghc-quickcheck-instances)
9965 ("ghc-semigroups" ,ghc-semigroups)
9966 ("ghc-generics-sop" ,ghc-generics-sop)))
9967 (home-page "https://github.com/Soostone/uri-bytestring")
9968 (synopsis "Haskell URI parsing as ByteStrings")
9969 (description "This Haskell package aims to be an RFC3986 compliant URI
9970parser that uses ByteStrings for parsing and representing the URI data.")
9971 (license license:bsd-3)))
9972
b6d8ea42 9973(define-public ghc-http-api-data
9974 (package
9975 (name "ghc-http-api-data")
de02e56b 9976 (version "0.3.8.1")
b6d8ea42 9977 (source
9978 (origin
9979 (method url-fetch)
9980 (uri (string-append "https://hackage.haskell.org/package/"
9981 "http-api-data-" version "/"
9982 "http-api-data-" version ".tar.gz"))
9983 (sha256
9984 (base32
de02e56b 9985 "1cq6459b8wz6nvkvpi89dg189n5q2xdq4rdq435hf150555vmskf"))))
b6d8ea42 9986 (build-system haskell-build-system)
9987 (arguments `(#:tests? #f)) ; FIXME: Tests require QuickCheck >= 2.9
9988 (inputs `(("ghc-attoparsec" ,ghc-attoparsec)
9989 ("ghc-attoparsec-iso8601" ,ghc-attoparsec-iso8601)
9990 ("ghc-hashable" ,ghc-hashable)
9991 ("ghc-http-types" ,ghc-http-types)
9992 ("ghc-text" ,ghc-text)
9993 ("ghc-time-locale-compat" ,ghc-time-locale-compat)
9994 ("ghc-unordered-containers" ,ghc-unordered-containers)
9995 ("ghc-uri-bytestring" ,ghc-uri-bytestring)
9996 ("ghc-uuid-types" ,ghc-uuid-types)))
9997 (home-page "https://github.com/fizruk/http-api-data")
9998 (synopsis "Convert to/from HTTP API data like URL pieces, headers and
9999query parameters")
10000 (description "This Haskell package defines typeclasses used for converting
10001Haskell data types to and from HTTP API data.")
10002 (license license:bsd-3)))
10003
104e179d 10004(define-public ghc-persistent
10005 (package
10006 (name "ghc-persistent")
bc368781 10007 (version "2.8.2")
104e179d 10008 (source
10009 (origin
10010 (method url-fetch)
10011 (uri (string-append "https://hackage.haskell.org/package/"
10012 "persistent-" version "/"
10013 "persistent-" version ".tar.gz"))
10014 (sha256
10015 (base32
bc368781 10016 "1h0yijbf1yiwl50klyafy4ln99j8bib4kgbzviw7fc4y4mwv4sv9"))))
104e179d 10017 (build-system haskell-build-system)
10018 (inputs `(("ghc-old-locale" ,ghc-old-locale)
10019 ("ghc-text" ,ghc-text)
10020 ("ghc-conduit" ,ghc-conduit)
10021 ("ghc-resourcet" ,ghc-resourcet)
10022 ("ghc-exceptions" ,ghc-exceptions)
10023 ("ghc-monad-control" ,ghc-monad-control)
10024 ("ghc-lifted-base" ,ghc-lifted-base)
10025 ("ghc-resource-pool" ,ghc-resource-pool)
10026 ("ghc-path-pieces" ,ghc-path-pieces)
10027 ("ghc-http-api-data" ,ghc-http-api-data)
10028 ("ghc-aeson" ,ghc-aeson)
10029 ("ghc-monad-logger" ,ghc-monad-logger)
10030 ("ghc-transformers-base" ,ghc-transformers-base)
10031 ("ghc-base64-bytestring" ,ghc-base64-bytestring)
10032 ("ghc-unordered-containers" ,ghc-unordered-containers)
10033 ("ghc-vector" ,ghc-vector)
10034 ("ghc-attoparsec" ,ghc-attoparsec)
10035 ("ghc-haskell-src-meta" ,ghc-haskell-src-meta)
10036 ("ghc-blaze-html" ,ghc-blaze-html)
10037 ("ghc-blaze-markup" ,ghc-blaze-markup)
10038 ("ghc-silently" ,ghc-silently)
104e179d 10039 ("ghc-fast-logger" ,ghc-fast-logger)
10040 ("ghc-scientific" ,ghc-scientific)
bc368781
TS
10041 ("ghc-tagged" ,ghc-tagged)
10042 ("ghc-void" ,ghc-void)))
104e179d 10043 (native-inputs `(("ghc-hspec" ,ghc-hspec)))
10044 (home-page "https://www.yesodweb.com/book/persistent")
10045 (synopsis "Type-safe, multi-backend data serialization for Haskell")
10046 (description "This Haskell package allows Haskell programs to access data
c42dcaa9 10047storage systems like PostgreSQL, SQLite, MySQL and MongoDB in a type-safe
104e179d 10048way.")
10049 (license license:expat)))
10050
0f163f65 10051(define-public ghc-aeson-compat
10052 (package
10053 (name "ghc-aeson-compat")
22b5a1a4 10054 (version "0.3.8")
0f163f65 10055 (source
10056 (origin
10057 (method url-fetch)
10058 (uri (string-append "https://hackage.haskell.org/package/"
10059 "aeson-compat-" version "/"
10060 "aeson-compat-" version ".tar.gz"))
10061 (sha256
10062 (base32
22b5a1a4 10063 "0j4v13pgk21zy8hqkbx8hw0n05jdl17qphxz9rj4h333pr547r3i"))))
0f163f65 10064 (build-system haskell-build-system)
10065 (arguments `(#:tests? #f)) ; FIXME: Tests require QuickCheck >= 2.10
10066 (inputs `(("ghc-base-compat" ,ghc-base-compat)
10067 ("ghc-aeson" ,ghc-aeson)
10068 ("ghc-attoparsec" ,ghc-attoparsec)
10069 ("ghc-attoparsec" ,ghc-attoparsec-iso8601)
10070 ("ghc-exceptions" ,ghc-exceptions)
10071 ("ghc-hashable" ,ghc-hashable)
10072 ("ghc-scientific" ,ghc-scientific)
10073 ("ghc-text" ,ghc-text)
10074 ("ghc-time-locale-compat" ,ghc-time-locale-compat)
10075 ("ghc-unordered-containers" ,ghc-unordered-containers)
10076 ("ghc-vector" ,ghc-vector)
10077 ("ghc-tagged" ,ghc-tagged)
10078 ("ghc-semigroups" ,ghc-semigroups)
10079 ("ghc-nats" ,ghc-nats)))
10080 (home-page "https://github.com/phadej/aeson-compat")
10081 (synopsis "Compatibility layer for ghc-aeson")
10082 (description "This Haskell package provides compatibility layer for
10083ghc-aeson.")
10084 (license license:bsd-3)))
10085
8434594d 10086(define-public ghc-persistent-template
10087 (package
10088 (name "ghc-persistent-template")
e4bc57c8 10089 (version "2.5.4")
8434594d 10090 (source
10091 (origin
10092 (method url-fetch)
10093 (uri (string-append "https://hackage.haskell.org/package/"
10094 "persistent-template-" version "/"
10095 "persistent-template-" version ".tar.gz"))
10096 (sha256
10097 (base32
e4bc57c8 10098 "008afcy7zbw7bzp9jww8gdldb51kfm0fg4p0x4xcp61gx4679bjc"))))
8434594d 10099 (build-system haskell-build-system)
e4bc57c8
TS
10100 (arguments
10101 `(#:cabal-revision
10102 ("2" "03qgwk32krldph3blw5agiqcpccr3649hajyn8wm9k71zz82dpn6")))
8434594d 10103 (inputs `(("ghc-persistent" ,ghc-persistent)
10104 ("ghc-monad-control" ,ghc-monad-control)
10105 ("ghc-text" ,ghc-text)
10106 ("ghc-aeson" ,ghc-aeson)
10107 ("ghc-aeson-compat" ,ghc-aeson-compat)
10108 ("ghc-monad-logger" ,ghc-monad-logger)
10109 ("ghc-unordered-containers" ,ghc-unordered-containers)
10110 ("ghc-tagged" ,ghc-tagged)
10111 ("ghc-path-pieces" ,ghc-path-pieces)
10112 ("ghc-http-api-data" ,ghc-http-api-data)))
10113 (native-inputs `(("ghc-hspec" ,ghc-hspec)
10114 ("ghc-quickcheck" ,ghc-quickcheck)))
10115 (home-page "https://www.yesodweb.com/book/persistent")
10116 (synopsis "Type-safe, non-relational, multi-backend persistence")
10117 (description "This Haskell package provides interfaces and helper
10118functions for the ghc-persistent package.")
10119 (license license:expat)))
10120
d5c34f9b 10121(define-public ghc-unliftio-core
10122 (package
10123 (name "ghc-unliftio-core")
10124 (version "0.1.1.0")
10125 (source
10126 (origin
10127 (method url-fetch)
10128 (uri (string-append "https://hackage.haskell.org/package/"
10129 "unliftio-core-" version "/"
10130 "unliftio-core-" version ".tar.gz"))
10131 (sha256
10132 (base32
10133 "1193fplsjm1lcr05xwvkj1rsyzx74i755f6kw3ikmxbsv0bv0l3m"))))
10134 (build-system haskell-build-system)
f871a555
TS
10135 (arguments
10136 `(#:cabal-revision
10137 ("1" "16bjwcsaghqqmyi69rq65dn3ydifyfaabq3ns37apdm00mwqbcj2")))
d5c34f9b 10138 (home-page
10139 "https://github.com/fpco/unliftio/tree/master/unliftio-core#readme")
10140 (synopsis "The MonadUnliftIO typeclass for unlifting monads to IO")
10141 (description "This Haskell package provides the core @code{MonadUnliftIO}
10142typeclass, instances for base and transformers, and basic utility
10143functions.")
10144 (license license:expat)))
10145
1c225fab 10146(define-public ghc-microlens
10147 (package
10148 (name "ghc-microlens")
f06b5f23 10149 (version "0.4.9.1")
1c225fab 10150 (source
10151 (origin
10152 (method url-fetch)
10153 (uri (string-append "https://hackage.haskell.org/package/"
10154 "microlens-" version "/"
10155 "microlens-" version ".tar.gz"))
10156 (sha256
10157 (base32
f06b5f23 10158 "0j2nzf0vpx2anvsrg2w0vy2z4jn3kkcs2n6glkzblhn1j9piqh51"))))
1c225fab 10159 (build-system haskell-build-system)
10160 (home-page
10161 "https://github.com/aelve/microlens")
10162 (synopsis "Provides a tiny lens Haskell library with no dependencies")
10163 (description "This Haskell package provides a lens library, just like
10164@code{ghc-lens}, but smaller. It provides essential lenses and
10165traversals (like @code{_1} and @code{_Just}), as well as ones which are simply
10166nice to have (like @code{each}, @code{at}, and @code{ix}), and some
10167combinators (like @code{failing} and @code{singular}), but everything else is
10168stripped. As the result, this package has no dependencies.")
10169 (license license:bsd-3)))
10170
82e0b0e2 10171(define-public ghc-microlens-th
10172 (package
10173 (name "ghc-microlens-th")
c1812226 10174 (version "0.4.2.2")
82e0b0e2 10175 (source
10176 (origin
10177 (method url-fetch)
10178 (uri (string-append "https://hackage.haskell.org/package/"
10179 "microlens-th-" version "/"
10180 "microlens-th-" version ".tar.gz"))
10181 (sha256
10182 (base32
c1812226 10183 "02nj7lnl61yffi3c6wn341arxhld5r0vj6nzcb5zmqjhnqsv8c05"))))
82e0b0e2 10184 (build-system haskell-build-system)
c1812226
TS
10185 (inputs `(("ghc-microlens" ,ghc-microlens)
10186 ("ghc-th-abstraction" ,ghc-th-abstraction)))
82e0b0e2 10187 (home-page
10188 "https://github.com/aelve/microlens")
10189 (synopsis "Automatic generation of record lenses for
10190@code{ghc-microlens}")
10191 (description "This Haskell package lets you automatically generate lenses
10192for data types; code was extracted from the lens package, and therefore
10193generated lenses are fully compatible with ones generated by lens (and can be
10194used both from lens and microlens).")
10195 (license license:bsd-3)))
10196
e85c58ed 10197(define-public ghc-unliftio
10198 (package
10199 (name "ghc-unliftio")
96d214a6 10200 (version "0.2.7.0")
e85c58ed 10201 (source
10202 (origin
10203 (method url-fetch)
10204 (uri (string-append
10205 "https://hackage.haskell.org/package/unliftio/unliftio-"
10206 version
10207 ".tar.gz"))
10208 (sha256
10209 (base32
96d214a6 10210 "0qql93lq5w7qghl454cc3s1i8v1jb4h08n82fqkw0kli4g3g9njs"))))
e85c58ed 10211 (build-system haskell-build-system)
10212 (arguments `(#:tests? #f)) ; FIXME: hspec-discover not in PATH
10213 (inputs
10214 `(("ghc-async" ,ghc-async)
10215 ("ghc-stm" ,ghc-stm)
10216 ("ghc-unliftio-core" ,ghc-unliftio-core)))
10217 (native-inputs `(("ghc-hspec" ,ghc-hspec)))
10218 (home-page "https://github.com/fpco/unliftio")
10219 (synopsis "Provides MonadUnliftIO typecplass for unlifting monads to
10220IO (batteries included)")
10221 (description "This Haskell package provides the core @code{MonadUnliftIO}
10222typeclass, a number of common instances, and a collection of common functions
10223working with it.")
10224 (license license:expat)))
10225
e01a8fcc 10226(define-public ghc-persistent-sqlite
10227 (package
10228 (name "ghc-persistent-sqlite")
7eee87e6 10229 (version "2.8.2")
e01a8fcc 10230 (source
10231 (origin
10232 (method url-fetch)
10233 (uri (string-append "https://hackage.haskell.org/package/"
10234 "persistent-sqlite-" version "/"
10235 "persistent-sqlite-" version ".tar.gz"))
10236 (sha256
10237 (base32
7eee87e6 10238 "1chbmvjz46smhgnzhha3bbkhys3fys6dip1jr4v7xp1jf78zbyp6"))))
e01a8fcc 10239 (build-system haskell-build-system)
10240 (inputs `(("ghc-persistent" ,ghc-persistent)
10241 ("ghc-unliftio-core" ,ghc-unliftio-core)
10242 ("ghc-aeson" ,ghc-aeson)
10243 ("ghc-conduit" ,ghc-conduit)
10244 ("ghc-monad-logger" ,ghc-monad-logger)
10245 ("ghc-microlens-th" ,ghc-microlens-th)
10246 ("ghc-resourcet" ,ghc-resourcet)
10247 ("ghc-old-locale" ,ghc-old-locale)
10248 ("ghc-resource-pool" ,ghc-resource-pool)
10249 ("ghc-unordered-containers" ,ghc-unordered-containers)))
10250 (native-inputs `(("ghc-hspec" ,ghc-hspec)
10251 ("ghc-persistent-template" ,ghc-persistent-template)
10252 ("ghc-temporary" ,ghc-temporary)
10253 ("ghc-text" ,ghc-text)))
10254 (home-page
10255 "https://www.yesodweb.com/book/persistent")
10256 (synopsis "Backend for the persistent library using sqlite3")
10257 (description "This Haskell package includes a thin sqlite3 wrapper based
10258on the direct-sqlite package, as well as the entire C library, so there are no
10259system dependencies.")
10260 (license license:expat)))
10261
b50e1c89 10262(define-public ghc-email-validate
10263 (package
10264 (name "ghc-email-validate")
146198f8 10265 (version "2.3.2.6")
b50e1c89 10266 (source
10267 (origin
10268 (method url-fetch)
10269 (uri (string-append
10270 "https://hackage.haskell.org/package/"
10271 "email-validate/email-validate-"
10272 version
10273 ".tar.gz"))
10274 (sha256
10275 (base32
146198f8 10276 "0chgylvc8xmhp933rdbmpg5sv4y7yg2h6kbf0ip1dzmbd5p55pa5"))))
b50e1c89 10277 (build-system haskell-build-system)
10278 (inputs
10279 `(("ghc-attoparsec" ,ghc-attoparsec)
10280 ("ghc-hspec" ,ghc-hspec)
10281 ("ghc-quickcheck" ,ghc-quickcheck)
10282 ("ghc-doctest" ,ghc-doctest)))
10283 (home-page
10284 "https://github.com/Porges/email-validate-hs")
10285 (synopsis "Email address validator for Haskell")
10286 (description
10287 "This Haskell package provides a validator that can validate an email
10288address string against RFC 5322.")
10289 (license license:bsd-3)))
10290
dea5c0b8 10291(define-public ghc-bytes
7d4e377f 10292 (package
dea5c0b8 10293 (name "ghc-bytes")
40a8d076 10294 (version "0.15.5")
7d4e377f
T
10295 (source
10296 (origin
10297 (method url-fetch)
10298 (uri
dea5c0b8
T
10299 (string-append "https://hackage.haskell.org/package/bytes-"
10300 version "/bytes-"
7d4e377f
T
10301 version ".tar.gz"))
10302 (file-name (string-append name "-" version ".tar.gz"))
10303 (sha256
10304 (base32
40a8d076 10305 "063il2vrn0p88r9gzndh4ijs0mxj37khkc9ym9bqdsv7ngk3b683"))))
7d4e377f 10306 (build-system haskell-build-system)
dea5c0b8
T
10307 (inputs `(("ghc-cereal" ,ghc-cereal)
10308 ("cabal-doctest" ,cabal-doctest)
40a8d076 10309 ("ghc-doctest" ,ghc-doctest)
dea5c0b8
T
10310 ("ghc-scientific" ,ghc-scientific)
10311 ("ghc-text" ,ghc-text)
10312 ("ghc-transformers-compat" ,ghc-transformers-compat)
10313 ("ghc-unordered-containers" ,ghc-unordered-containers)
10314 ("ghc-void" ,ghc-void)
10315 ("ghc-vector" ,ghc-vector)))
10316 (synopsis "Serialization between @code{binary} and @code{cereal}")
10317 (description "This package provides a simple compatibility shim that lets
10318you work with both @code{binary} and @code{cereal} with one chunk of
10319serialization code.")
10320 (home-page "https://hackage.haskell.org/package/bytes")
7d4e377f
T
10321 (license license:bsd-3)))
10322
4e5d9bf2
TS
10323(define-public ghc-disk-free-space
10324 (package
10325 (name "ghc-disk-free-space")
10326 (version "0.1.0.1")
10327 (source
10328 (origin
10329 (method url-fetch)
10330 (uri (string-append "https://hackage.haskell.org/package/"
10331 "disk-free-space/disk-free-space-"
10332 version ".tar.gz"))
10333 (sha256
10334 (base32
10335 "07rqj8k1vh3cykq9yidpjxhgh1f7vgmjs6y1nv5kq2217ff4yypi"))))
10336 (build-system haskell-build-system)
10337 (home-page "https://github.com/redneb/disk-free-space")
10338 (synopsis "Retrieve information about disk space usage")
10339 (description "A cross-platform library for retrieving information about
10340disk space usage.")
10341 (license license:bsd-3)))
10342
66413378
DM
10343(define-public ghc-xdg-basedir
10344 (package
10345 (name "ghc-xdg-basedir")
10346 (version "0.2.2")
10347 (source
10348 (origin
10349 (method url-fetch)
10350 (uri (string-append
10351 "https://hackage.haskell.org/package/xdg-basedir/"
10352 "xdg-basedir-" version ".tar.gz"))
10353 (sha256
10354 (base32
10355 "0azlzaxp2dn4l1nr7shsxah2magk1szf6fx0mv75az00qsjw6qg4"))))
10356 (build-system haskell-build-system)
10357 (home-page "http://github.com/willdonnelly/xdg-basedir")
10358 (synopsis "XDG Base Directory library for Haskell")
10359 (description "This package provides a library implementing the XDG Base Directory spec.")
10360 (license license:bsd-3)))
10361
19395aec
RW
10362(define-public ghc-errorcall-eq-instance
10363 (package
10364 (name "ghc-errorcall-eq-instance")
10365 (version "0.3.0")
10366 (source
10367 (origin
10368 (method url-fetch)
10369 (uri (string-append "https://hackage.haskell.org/package/"
10370 "errorcall-eq-instance/errorcall-eq-instance-"
10371 version ".tar.gz"))
10372 (sha256
10373 (base32
10374 "0hqw82m8bbrxy5vgdwb83bhzdx070ibqrm9rshyja7cb808ahijm"))))
10375 (build-system haskell-build-system)
10376 (inputs
10377 `(("ghc-base-orphans" ,ghc-base-orphans)))
10378 (native-inputs
10379 `(("ghc-quickcheck" ,ghc-quickcheck)
10380 ("ghc-hspec" ,ghc-hspec)
10381 ("hspec-discover" ,hspec-discover)))
10382 (home-page "http://hackage.haskell.org/package/errorcall-eq-instance")
10383 (synopsis "Orphan Eq instance for ErrorCall")
10384 (description
10385 "Prior to @code{base-4.7.0.0} there was no @code{Eq} instance for @code{ErrorCall}.
10386This package provides an orphan instance.")
10387 (license license:expat)))
10388
ea6ffd3c
RW
10389(define-public ghc-missingh
10390 (package
10391 (name "ghc-missingh")
10392 (version "1.4.0.1")
10393 (source
10394 (origin
10395 (method url-fetch)
10396 (uri (string-append "https://hackage.haskell.org/package/MissingH/"
10397 "MissingH-" version ".tar.gz"))
10398 (sha256
10399 (base32
10400 "0wcvgrmav480w7nf4bl14yi0jq2yzanysxwzwas9hpb28vyjlgr8"))))
10401 (build-system haskell-build-system)
10402 ;; Tests require the unmaintained testpack package, which depends on the
10403 ;; outdated QuickCheck version 2.7, which can no longer be built with
10404 ;; recent versions of GHC and Haskell libraries.
10405 (arguments '(#:tests? #f))
10406 (inputs
10407 `(("ghc-network" ,ghc-network)
10408 ("ghc-parsec" ,ghc-parsec)
ea6ffd3c
RW
10409 ("ghc-hunit" ,ghc-hunit)
10410 ("ghc-regex-compat" ,ghc-regex-compat)
10411 ("ghc-hslogger" ,ghc-hslogger)
10412 ("ghc-random" ,ghc-random)
10413 ("ghc-old-time" ,ghc-old-time)
10414 ("ghc-old-locale" ,ghc-old-locale)))
10415 (native-inputs
10416 `(("ghc-errorcall-eq-instance" ,ghc-errorcall-eq-instance)
10417 ("ghc-quickcheck" ,ghc-quickcheck)
10418 ("ghc-hunit" ,ghc-hunit)))
10419 (home-page "http://software.complete.org/missingh")
10420 (synopsis "Large utility library")
10421 (description
10422 "MissingH is a library of all sorts of utility functions for Haskell
10423programmers. It is written in pure Haskell and thus should be extremely
10424portable and easy to use.")
10425 (license license:bsd-3)))
10426
657d220d
RW
10427(define-public ghc-intervalmap
10428 (package
10429 (name "ghc-intervalmap")
10430 (version "0.6.0.0")
10431 (source
10432 (origin
10433 (method url-fetch)
10434 (uri (string-append "https://hackage.haskell.org/package/IntervalMap/"
10435 "IntervalMap-" version ".tar.gz"))
10436 (sha256
10437 (base32
10438 "06hin9wf1by8aqa7820fsi2339bh82184frkwz3jsb9sqa0hszcg"))))
10439 (build-system haskell-build-system)
10440 (native-inputs
10441 `(("ghc-quickcheck" ,ghc-quickcheck)))
10442 (home-page "http://www.chr-breitkopf.de/comp/IntervalMap")
10443 (synopsis "Containers for intervals, with efficient search")
10444 (description
10445 "This package provides ordered containers of intervals, with efficient
10446search for all keys containing a point or overlapping an interval. See the
10447example code on the home page for a quick introduction.")
10448 (license license:bsd-3)))
10449
2e72967b
RW
10450(define-public ghc-operational
10451 (package
10452 (name "ghc-operational")
10453 (version "0.2.3.5")
10454 (source
10455 (origin
10456 (method url-fetch)
10457 (uri (string-append "https://hackage.haskell.org/package/operational/"
10458 "operational-" version ".tar.gz"))
10459 (sha256
10460 (base32
10461 "1x2abg2q9d26h1vzj40r6k7k3gqgappbs4g9d853vvg77837km4i"))))
10462 (build-system haskell-build-system)
10463 (inputs
f54f0475 10464 `(("ghc-random" ,ghc-random)))
2e72967b
RW
10465 (home-page "http://wiki.haskell.org/Operational")
10466 (synopsis "Implementation of difficult monads made easy with operational semantics")
10467 (description
10468 "This library makes it easy to implement monads with tricky control
10469flow. This is useful for: writing web applications in a sequential style,
10470programming games with a uniform interface for human and AI players and easy
10471replay capababilities, implementing fast parser monads, designing monadic
10472DSLs, etc.")
10473 (license license:bsd-3)))
10474
cd447603
RW
10475(define-public ghc-gtk2hs-buildtools
10476 (package
10477 (name "ghc-gtk2hs-buildtools")
10478 (version "0.13.4.0")
10479 (source
10480 (origin
10481 (method url-fetch)
10482 (uri (string-append "https://hackage.haskell.org/package/"
10483 "gtk2hs-buildtools/gtk2hs-buildtools-"
10484 version ".tar.gz"))
10485 (sha256
10486 (base32
10487 "0yg6xmylgpylmnh5g33qwwn5x9bqckdvvv4czqzd9vrr12lnnghg"))))
10488 (build-system haskell-build-system)
10489 (inputs
10490 `(("ghc-random" ,ghc-random)
10491 ("ghc-hashtables" ,ghc-hashtables)))
10492 (native-inputs
10493 `(("ghc-alex" ,ghc-alex)
10494 ("ghc-happy" ,ghc-happy)))
10495 (home-page "http://projects.haskell.org/gtk2hs/")
10496 (synopsis "Tools to build the Gtk2Hs suite of user interface libraries")
10497 (description
10498 "This package provides a set of helper programs necessary to build the
10499Gtk2Hs suite of libraries. These tools include a modified c2hs binding tool
10500that is used to generate FFI declarations, a tool to build a type hierarchy
10501that mirrors the C type hierarchy of GObjects found in glib, and a generator
10502for signal declarations that are used to call back from C to Haskell. These
10503tools are not needed to actually run Gtk2Hs programs.")
10504 (license license:gpl2)))
10505
42744c1d
RW
10506(define-public ghc-chart
10507 (package
10508 (name "ghc-chart")
6dde5b8f 10509 (version "1.9")
42744c1d
RW
10510 (source
10511 (origin
10512 (method url-fetch)
10513 (uri (string-append "https://hackage.haskell.org/package/Chart/"
10514 "Chart-" version ".tar.gz"))
10515 (sha256
10516 (base32
6dde5b8f 10517 "1f5azj17y8xsb3gjhf7gg1gnnlq12rxkmfjmgcly314d7vghs05z"))))
42744c1d
RW
10518 (build-system haskell-build-system)
10519 (inputs
10520 `(("ghc-old-locale" ,ghc-old-locale)
42744c1d
RW
10521 ("ghc-lens" ,ghc-lens)
10522 ("ghc-colour" ,ghc-colour)
10523 ("ghc-data-default-class" ,ghc-data-default-class)
10524 ("ghc-operational" ,ghc-operational)
10525 ("ghc-vector" ,ghc-vector)))
10526 (home-page "https://github.com/timbod7/haskell-chart/wiki")
10527 (synopsis "Library for generating 2D charts and plots")
10528 (description
10529 "This package provides a library for generating 2D charts and plots, with
10530backends provided by the @code{Cairo} and @code{Diagrams} libraries.")
10531 (license license:bsd-3)))
10532
9c4b522f
AI
10533(define-public ghc-wcwidth
10534 (package
10535 (name "ghc-wcwidth")
10536 (version "0.0.2")
10537 (source
10538 (origin
10539 (method url-fetch)
10540 (uri (string-append "https://hackage.haskell.org/package/wcwidth/wcwidth-"
10541 version ".tar.gz"))
10542 (sha256
10543 (base32
10544 "1n1fq7v64b59ajf5g50iqj9sa34wm7s2j3viay0kxpmvlcv8gipz"))))
10545 (build-system haskell-build-system)
10546 (inputs
10547 `(("ghc-setlocale" ,ghc-setlocale)
10548 ("ghc-utf8-string" ,ghc-utf8-string)
f9f4578b 10549 ("ghc-attoparsec" ,ghc-attoparsec)))
9c4b522f
AI
10550 (home-page "https://github.com/solidsnack/wcwidth/")
10551 (synopsis "Haskell bindings to wcwidth")
10552 (description "This package provides Haskell bindings to your system's
10553native wcwidth and a command line tool to examine the widths assigned by it.
10554The command line tool can compile a width table to Haskell code that assigns
10555widths to the Char type.")
10556 (license license:bsd-3)))
10557
9d1944a4
TS
10558(define-public ghc-wcwidth-bootstrap
10559 (package
10560 (inherit ghc-wcwidth)
10561 (name "ghc-wcwidth-bootstrap")
10562 (inputs
10563 `(("ghc-setlocale" ,ghc-setlocale)
10564 ("ghc-utf8-string" ,ghc-utf8-string)
10565 ("ghc-attoparsec" ,ghc-attoparsec-bootstrap)))
10566 (properties '(hidden? #t))))
10567
12ce5d31
TS
10568(define-public ghc-rio
10569 (package
10570 (name "ghc-rio")
10571 (version "0.1.5.0")
10572 (source
10573 (origin
10574 (method url-fetch)
10575 (uri (string-append
10576 "https://hackage.haskell.org/package/rio/rio-"
10577 version ".tar.gz"))
10578 (sha256
10579 (base32
10580 "064h8a4hp53a479d3ak0vmqbx8hi0cpg7zn4wp23rjy26dka8p7g"))))
10581 (build-system haskell-build-system)
10582 (arguments
10583 `(#:phases
10584 (modify-phases %standard-phases
10585 (add-after 'unpack 'add-setup-script
10586 (lambda _
10587 ;; The usual "Setup.hs" script is missing from the source.
10588 (with-output-to-file "Setup.hs"
10589 (lambda ()
10590 (format #t "import Distribution.Simple~%")
10591 (format #t "main = defaultMain~%"))))))))
10592 (inputs
10593 `(("ghc-exceptions" ,ghc-exceptions)
10594 ("ghc-hashable" ,ghc-hashable)
10595 ("ghc-microlens" ,ghc-microlens)
10596 ("ghc-primitive" ,ghc-primitive)
10597 ("ghc-text" ,ghc-text)
10598 ("ghc-typed-process" ,ghc-typed-process)
10599 ("ghc-unliftio" ,ghc-unliftio)
10600 ("ghc-unordered-containers" ,ghc-unordered-containers)
10601 ("ghc-vector" ,ghc-vector)))
10602 (native-inputs
10603 `(("ghc-hspec" ,ghc-hspec)
10604 ("hspec-discover" ,hspec-discover)))
10605 (home-page "https://github.com/commercialhaskell/rio#readme")
10606 (synopsis "A standard library for Haskell")
10607 (description "This package works as a prelude replacement for Haskell,
10608providing more functionality and types out of the box than the standard
10609prelude (such as common data types like @code{ByteString} and
10610@code{Text}), as well as removing common ``gotchas'', like partial
10611functions and lazy I/O. The guiding principle here is:
10612@itemize
10613@item If something is safe to use in general and has no expected naming
10614conflicts, expose it.
10615@item If something should not always be used, or has naming conflicts,
10616expose it from another module in the hierarchy.
10617@end itemize")
10618 (license license:expat)))
10619
7df25c77
RW
10620(define-public ghc-cairo
10621 (package
10622 (name "ghc-cairo")
10623 (version "0.13.5.0")
10624 (source
10625 (origin
10626 (method url-fetch)
10627 (uri (string-append "https://hackage.haskell.org/package/cairo/"
10628 "cairo-" version ".tar.gz"))
10629 (sha256
10630 (base32
10631 "1wxylv4d8120ri0vgar168ikqa9m6533ipdwi38qlmxmw20ws2j2"))))
10632 (build-system haskell-build-system)
10633 (arguments
10634 `(#:modules ((guix build haskell-build-system)
10635 (guix build utils)
10636 (ice-9 match)
10637 (srfi srfi-26))
10638 #:phases
10639 (modify-phases %standard-phases
10640 ;; FIXME: This is a copy of the standard configure phase with a tiny
10641 ;; difference: this package needs the -package-db flag to be passed
10642 ;; to "runhaskell" in addition to the "configure" action, because it
10643 ;; depends on gtk2hs-buildtools, which provide setup hooks. Without
10644 ;; this option the Setup.hs file cannot be evaluated. The
10645 ;; haskell-build-system should be changed to pass "-package-db" to
10646 ;; "runhaskell" in any case.
10647 (replace 'configure
10648 (lambda* (#:key outputs inputs tests? (configure-flags '())
10649 #:allow-other-keys)
10650 (let* ((out (assoc-ref outputs "out"))
58352f26 10651 (name-version (strip-store-file-name out))
7df25c77
RW
10652 (input-dirs (match inputs
10653 (((_ . dir) ...)
10654 dir)
10655 (_ '())))
10656 (ghc-path (getenv "GHC_PACKAGE_PATH"))
10657 (params (append `(,(string-append "--prefix=" out))
10658 `(,(string-append "--libdir=" out "/lib"))
10659 `(,(string-append "--bindir=" out "/bin"))
10660 `(,(string-append
10661 "--docdir=" out
58352f26 10662 "/share/doc/" name-version))
7df25c77
RW
10663 '("--libsubdir=$compiler/$pkg-$version")
10664 '("--package-db=../package.conf.d")
10665 '("--global")
10666 `(,@(map
10667 (cut string-append "--extra-include-dirs=" <>)
10668 (search-path-as-list '("include") input-dirs)))
10669 `(,@(map
10670 (cut string-append "--extra-lib-dirs=" <>)
10671 (search-path-as-list '("lib") input-dirs)))
10672 (if tests?
10673 '("--enable-tests")
10674 '())
10675 configure-flags)))
10676 (unsetenv "GHC_PACKAGE_PATH")
10677 (apply invoke "runhaskell" "-package-db=../package.conf.d"
10678 "Setup.hs" "configure" params)
10679 (setenv "GHC_PACKAGE_PATH" ghc-path)
10680 #t))))))
10681 (inputs
10682 `(("ghc-utf8-string" ,ghc-utf8-string)
10683 ("ghc-text" ,ghc-text)
10684 ("cairo" ,cairo)))
10685 (native-inputs
10686 `(("ghc-gtk2hs-buildtools" ,ghc-gtk2hs-buildtools)
10687 ("pkg-config" ,pkg-config)))
10688 (home-page "http://projects.haskell.org/gtk2hs/")
10689 (synopsis "Haskell bindings to the Cairo vector graphics library")
10690 (description
10691 "Cairo is a library to render high quality vector graphics. There exist
10692various backends that allows rendering to Gtk windows, PDF, PS, PNG and SVG
10693documents, amongst others.")
10694 (license license:bsd-3)))
10695
562cfae3
RW
10696(define-public ghc-chart-cairo
10697 (package
10698 (name "ghc-chart-cairo")
10699 (version "1.9")
10700 (source
10701 (origin
10702 (method url-fetch)
10703 (uri (string-append "https://hackage.haskell.org/package/Chart-cairo/"
10704 "Chart-cairo-" version ".tar.gz"))
10705 (sha256
10706 (base32
10707 "0iany6lfyfb1cw0pxfs5aw5k0a6x41m6ql9ad9w59biwdckbsyqr"))))
10708 (build-system haskell-build-system)
10709 (inputs
10710 `(("ghc-old-locale" ,ghc-old-locale)
10711 ("ghc-cairo" ,ghc-cairo)
10712 ("ghc-colour" ,ghc-colour)
10713 ("ghc-data-default-class" ,ghc-data-default-class)
10714 ("ghc-operational" ,ghc-operational)
10715 ("ghc-lens" ,ghc-lens)
10716 ("ghc-chart" ,ghc-chart)))
10717 (home-page "https://github.com/timbod7/haskell-chart/wiki")
10718 (synopsis "Cairo backend for Charts")
10719 (description "This package provides a Cairo vector graphics rendering
10720backend for the Charts library.")
10721 (license license:bsd-3)))
10722
6c819778
RW
10723(define-public ghc-atomic-write
10724 (package
10725 (name "ghc-atomic-write")
10726 (version "0.2.0.5")
10727 (source
10728 (origin
10729 (method url-fetch)
10730 (uri (string-append
10731 "https://hackage.haskell.org/package/atomic-write/atomic-write-"
10732 version
10733 ".tar.gz"))
10734 (sha256
10735 (base32
10736 "1iaq0hprxcv0sl1sgwcgmm87zraf738va1bciwnx2jkk3k1v9iyv"))))
10737 (build-system haskell-build-system)
10738 (inputs
10739 `(("ghc-temporary" ,ghc-temporary)
10740 ("ghc-unix-compat" ,ghc-unix-compat)
10741 ("ghc-text" ,ghc-text)))
10742 (native-inputs
10743 `(("ghc-temporary" ,ghc-temporary)
10744 ("ghc-unix-compat" ,ghc-unix-compat)
10745 ("ghc-text" ,ghc-text)
10746 ("ghc-hspec" ,ghc-hspec)
10747 ("hspec-discover" ,hspec-discover)))
10748 (home-page "https://github.com/stackbuilders/atomic-write")
10749 (synopsis "Atomically write to a file")
10750 (description
10751 "Atomically write to a file on POSIX-compliant systems while preserving
10752permissions. @code{mv} is an atomic operation. This makes it simple to write
10753to a file atomically just by using the @code{mv} operation. However, this
10754will destroy the permissions on the original file. This library preserves
10755permissions while atomically writing to a file.")
10756 (license license:expat)))
10757
d05ed20e
RW
10758(define-public ghc-cereal-conduit
10759 (package
10760 (name "ghc-cereal-conduit")
10761 (version "0.8.0")
10762 (source
10763 (origin
10764 (method url-fetch)
10765 (uri (string-append "https://hackage.haskell.org/package/"
10766 "cereal-conduit/cereal-conduit-"
10767 version ".tar.gz"))
10768 (sha256
10769 (base32
10770 "1srr7agvgfw78q5s1npjq5sgynvhjgllpihiv37ylkwqm4c4ap6r"))))
10771 (build-system haskell-build-system)
10772 (inputs
10773 `(("ghc-conduit" ,ghc-conduit)
10774 ("ghc-resourcet" ,ghc-resourcet)
10775 ("ghc-cereal" ,ghc-cereal)))
10776 (native-inputs
10777 `(("ghc-hunit" ,ghc-hunit)))
10778 (home-page "https://github.com/snoyberg/conduit")
10779 (synopsis "Turn Data.Serialize Gets and Puts into Sources, Sinks, and Conduits")
10780 (description
10781 "This package turn @code{Data.Serialize} @code{Gets} and @code{Puts} into
10782@code{Sources}, @code{Sinks}, and @code{Conduits}.")
10783 (license license:bsd-3)))
10784
36ec599e
RW
10785(define-public ghc-lzma
10786 (package
10787 (name "ghc-lzma")
10788 (version "0.0.0.3")
10789 (source
10790 (origin
10791 (method url-fetch)
10792 (uri (string-append "https://hackage.haskell.org/package/lzma/"
10793 "lzma-" version ".tar.gz"))
10794 (sha256
10795 (base32
10796 "0i416gqi8j55nd1pqbkxvf3f6hn6fjys6gq98lkkxphva71j30xg"))))
10797 (build-system haskell-build-system)
10798 (arguments
10799 '(#:tests? #f ; requires older versions of QuickCheck and tasty.
10800 #:cabal-revision
10801 ("3" "1sify6gnsalyp6dakfzi0mdy5jcz2kcp9jsdsgkmxd40nfzgd44m")))
10802 (native-inputs
10803 `(("ghc-hunit" ,ghc-hunit)
10804 ("ghc-quickcheck" ,ghc-quickcheck)
10805 ("ghc-tasty" ,ghc-tasty)
10806 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
10807 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
10808 (home-page "https://github.com/hvr/lzma")
10809 (synopsis "LZMA/XZ compression and decompression")
10810 (description
10811 "This package provides a pure interface for compressing and
10812decompressing LZMA streams of data represented as lazy @code{ByteString}s. A
10813monadic incremental interface is provided as well.")
10814 (license license:bsd-3)))
10815
80588cfc
RW
10816(define-public ghc-stm-conduit
10817 (package
10818 (name "ghc-stm-conduit")
10819 (version "4.0.0")
10820 (source
10821 (origin
10822 (method url-fetch)
10823 (uri (string-append "https://hackage.haskell.org/package/stm-conduit/"
10824 "stm-conduit-" version ".tar.gz"))
10825 (sha256
10826 (base32
10827 "0paapljn7nqfzrx889y0n8sszci38mdiaxkgr0bb00ph9246rr7z"))))
10828 (build-system haskell-build-system)
10829 (inputs
10830 `(("ghc-stm" ,ghc-stm)
10831 ("ghc-stm-chans" ,ghc-stm-chans)
10832 ("ghc-cereal" ,ghc-cereal)
10833 ("ghc-cereal-conduit" ,ghc-cereal-conduit)
10834 ("ghc-conduit" ,ghc-conduit)
10835 ("ghc-conduit-extra" ,ghc-conduit-extra)
10836 ("ghc-exceptions" ,ghc-exceptions)
10837 ("ghc-resourcet" ,ghc-resourcet)
10838 ("ghc-async" ,ghc-async)
10839 ("ghc-monad-loops" ,ghc-monad-loops)
10840 ("ghc-unliftio" ,ghc-unliftio)))
10841 (native-inputs
10842 `(("ghc-doctest" ,ghc-doctest)
10843 ("ghc-quickcheck" ,ghc-quickcheck)
10844 ("ghc-hunit" ,ghc-hunit)
10845 ("ghc-test-framework" ,ghc-test-framework)
10846 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
10847 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
10848 (home-page "https://github.com/cgaebel/stm-conduit")
10849 (synopsis "Introduces conduits to channels and promotes using conduits concurrently")
10850 (description
10851 "This package provides two simple conduit wrappers around STM channels: a
10852source and a sink.")
10853 (license license:bsd-3)))
10854
38757d61
RW
10855(define-public ghc-bindings-dsl
10856 (package
10857 (name "ghc-bindings-dsl")
10858 (version "1.0.25")
10859 (source
10860 (origin
10861 (method url-fetch)
10862 (uri (string-append "https://hackage.haskell.org/package/bindings-DSL/"
10863 "bindings-DSL-" version ".tar.gz"))
10864 (sha256
10865 (base32
10866 "0kqrd78nspl3lk4a0fqn47d8dirjg3b24dkvkigcrlb81hw35pk3"))))
10867 (build-system haskell-build-system)
10868 (home-page "https://github.com/jwiegley/bindings-dsl/wiki")
10869 (synopsis "FFI domain specific language, on top of hsc2hs")
10870 (description
10871 "This is a set of macros to be used when writing Haskell FFI. They were
10872designed to be able to fully describe C interfaces, so that @code{hsc2hs} can
10873extract from them all Haskell code needed to mimic such interfaces. All
10874Haskell names used are automatically derived from C names, structures are
10875mapped to Haskell instances of @code{Storable}, and there are also macros you
10876can use with C code to help write bindings to inline functions or macro
10877functions.")
10878 (license license:bsd-3)))
10879
44c6180b
RW
10880(define-public ghc-lzma-conduit
10881 (package
10882 (name "ghc-lzma-conduit")
10883 (version "1.2.1")
10884 (source
10885 (origin
10886 (method url-fetch)
10887 (uri (string-append "https://hackage.haskell.org/package/lzma-conduit/"
10888 "lzma-conduit-" version ".tar.gz"))
10889 (sha256
10890 (base32
10891 "0hm72da7xk9l3zxjh274yg444vf405djxqbkf3q3p2qhicmxlmg9"))))
10892 (build-system haskell-build-system)
10893 (inputs
10894 `(("ghc-conduit" ,ghc-conduit)
10895 ("ghc-lzma" ,ghc-lzma)
10896 ("ghc-resourcet" ,ghc-resourcet)))
10897 (native-inputs
10898 `(("ghc-base-compat" ,ghc-base-compat)
10899 ("ghc-test-framework" ,ghc-test-framework)
10900 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
10901 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)
10902 ("ghc-hunit" ,ghc-hunit)
10903 ("ghc-quickcheck" ,ghc-quickcheck)))
10904 (home-page "https://github.com/alphaHeavy/lzma-conduit")
10905 (synopsis "Conduit interface for lzma/xz compression")
10906 (description
10907 "This package provides a @code{Conduit} interface for the LZMA
10908compression algorithm used in the @code{.xz} file format.")
10909 (license license:bsd-3)))
10910
4fc161b9
RW
10911(define-public ghc-bzlib-conduit
10912 (package
10913 (name "ghc-bzlib-conduit")
10914 (version "0.3.0.1")
10915 (source
10916 (origin
10917 (method url-fetch)
10918 (uri (string-append "https://hackage.haskell.org/package/bzlib-conduit/"
10919 "bzlib-conduit-" version ".tar.gz"))
10920 (sha256
10921 (base32
10922 "0fd2hnr782s7qgipazg2yxwia9qqhkvm9bcm90773c3zkxa13n23"))))
10923 (build-system haskell-build-system)
10924 (inputs
10925 `(("ghc-bindings-dsl" ,ghc-bindings-dsl)
10926 ("ghc-conduit" ,ghc-conduit)
10927 ("ghc-data-default-class" ,ghc-data-default-class)
10928 ("ghc-resourcet" ,ghc-resourcet)))
10929 (native-inputs
10930 `(("ghc-hspec" ,ghc-hspec)
10931 ("ghc-random" ,ghc-random)))
10932 (home-page "https://github.com/snoyberg/bzlib-conduit")
10933 (synopsis "Streaming compression/decompression via conduits")
10934 (description
10935 "This package provides Haskell bindings to bzlib and Conduit support for
10936streaming compression and decompression.")
10937 (license license:bsd-3)))
10938
71c2e3e1
RW
10939(define-public ghc-pqueue
10940 (package
10941 (name "ghc-pqueue")
10942 (version "1.4.1.1")
10943 (source
10944 (origin
10945 (method url-fetch)
10946 (uri (string-append "https://hackage.haskell.org/package/"
10947 "pqueue/pqueue-" version ".tar.gz"))
10948 (sha256
10949 (base32
10950 "1zvwm1zcqqq5n101s1brjhgbay8rf9fviq6gxbplf40i63m57p1x"))))
10951 (build-system haskell-build-system)
10952 (native-inputs
10953 `(("ghc-quickcheck" ,ghc-quickcheck)))
10954 (home-page "https://hackage.haskell.org/package/pqueue")
10955 (synopsis "Reliable, persistent, fast priority queues")
10956 (description
10957 "This package provides a fast, reliable priority queue implementation
10958based on a binomial heap.")
10959 (license license:bsd-3)))
10960
a933cbfb
RW
10961(define-public ghc-conduit-algorithms
10962 (package
10963 (name "ghc-conduit-algorithms")
10964 (version "0.0.8.1")
10965 (source
10966 (origin
10967 (method url-fetch)
10968 (uri (string-append "https://hackage.haskell.org/package/"
10969 "conduit-algorithms/conduit-algorithms-"
10970 version ".tar.gz"))
10971 (sha256
10972 (base32
10973 "07gx2q3d1bbfw14q41rmqg0i4m018pci10lswc0k1ij6lw7sb9fd"))))
10974 (build-system haskell-build-system)
10975 (inputs
10976 `(("ghc-async" ,ghc-async)
10977 ("ghc-bzlib-conduit" ,ghc-bzlib-conduit)
10978 ("ghc-conduit" ,ghc-conduit)
10979 ("ghc-conduit-combinators" ,ghc-conduit-combinators)
10980 ("ghc-conduit-extra" ,ghc-conduit-extra)
10981 ("ghc-exceptions" ,ghc-exceptions)
10982 ("ghc-lzma-conduit" ,ghc-lzma-conduit)
10983 ("ghc-monad-control" ,ghc-monad-control)
10984 ("ghc-pqueue" ,ghc-pqueue)
10985 ("ghc-resourcet" ,ghc-resourcet)
10986 ("ghc-stm" ,ghc-stm)
10987 ("ghc-stm-conduit" ,ghc-stm-conduit)
10988 ("ghc-streaming-commons" ,ghc-streaming-commons)
10989 ("ghc-unliftio-core" ,ghc-unliftio-core)
10990 ("ghc-vector" ,ghc-vector)))
10991 (native-inputs
10992 `(("ghc-hunit" ,ghc-hunit)
10993 ("ghc-test-framework" ,ghc-test-framework)
10994 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
10995 ("ghc-test-framework-th" ,ghc-test-framework-th)))
10996 (home-page "https://github.com/luispedro/conduit-algorithms#readme")
10997 (synopsis "Conduit-based algorithms")
10998 (description
10999 "This package provides algorithms on @code{Conduits}, including higher
11000level asynchronous processing and some other utilities.")
11001 (license license:expat)))
11002
32032314
RW
11003(define-public ghc-interpolate
11004 (package
11005 (name "ghc-interpolate")
11006 (version "0.2.0")
11007 (source
11008 (origin
11009 (method url-fetch)
11010 (uri (string-append "https://hackage.haskell.org/package/interpolate/"
11011 "interpolate-" version ".tar.gz"))
11012 (sha256
11013 (base32
11014 "1gkaj98yz363v38fv78sqby236mp8yqwqcilx7kr2b9z0w3204bf"))))
11015 (build-system haskell-build-system)
11016 (inputs
11017 `(("ghc-haskell-src-meta" ,ghc-haskell-src-meta)))
11018 (native-inputs
11019 `(("ghc-base-compat" ,ghc-base-compat)
11020 ("ghc-hspec" ,ghc-hspec)
11021 ("ghc-quickcheck" ,ghc-quickcheck)
11022 ("ghc-quickcheck-instances" ,ghc-quickcheck-instances)
11023 ("ghc-text" ,ghc-text)
11024 ("hspec-discover" ,hspec-discover)))
11025 (home-page "https://github.com/sol/interpolate")
11026 (synopsis "String interpolation library")
11027 (description "This package provides a string interpolation library for
11028Haskell.")
11029 (license license:expat)))
11030
5e6bf3e2
RW
11031(define-public ghc-hpack
11032 (package
11033 (name "ghc-hpack")
11034 (version "0.28.2")
11035 (source
11036 (origin
11037 (method url-fetch)
11038 (uri (string-append "https://hackage.haskell.org/package/hpack/"
11039 "hpack-" version ".tar.gz"))
11040 (sha256
11041 (base32
11042 "18w0h76jdp3mk9vin8da9iz3cwhcxmw787xy8wlh8bxcpcr16q5r"))))
11043 (build-system haskell-build-system)
11044 (inputs
11045 `(("ghc-aeson" ,ghc-aeson)
11046 ("ghc-bifunctors" ,ghc-bifunctors)
11047 ("ghc-cryptonite" ,ghc-cryptonite)
11048 ("ghc-glob" ,ghc-glob)
11049 ("ghc-http-client" ,ghc-http-client)
11050 ("ghc-http-client-tls" ,ghc-http-client-tls)
11051 ("ghc-http-types" ,ghc-http-types)
11052 ("ghc-scientific" ,ghc-scientific)
11053 ("ghc-text" ,ghc-text)
11054 ("ghc-unordered-containers" ,ghc-unordered-containers)
11055 ("ghc-vector" ,ghc-vector)
11056 ("ghc-yaml" ,ghc-yaml)))
11057 (native-inputs
11058 `(("ghc-hspec" ,ghc-hspec)
11059 ("ghc-hunit" ,ghc-hunit)
11060 ("ghc-interpolate" ,ghc-interpolate)
11061 ("ghc-mockery" ,ghc-mockery)
11062 ("ghc-quickcheck" ,ghc-quickcheck)
11063 ("ghc-temporary" ,ghc-temporary)
11064 ("hspec-discover" ,hspec-discover)))
11065 (home-page "https://github.com/sol/hpack")
11066 (synopsis "Tools for an alternative Haskell package format")
11067 (description
11068 "Hpack is a format for Haskell packages. It is an alternative to the
11069Cabal package format and follows different design principles. Hpack packages
11070are described in a file named @code{package.yaml}. Both @code{cabal2nix} and
11071@code{stack} support @code{package.yaml} natively. For other build tools the
11072@code{hpack} executable can be used to generate a @code{.cabal} file from
11073@code{package.yaml}.")
11074 (license license:expat)))
11075
52f5114d
RW
11076(define-public ghc-raw-strings-qq
11077 (package
11078 (name "ghc-raw-strings-qq")
11079 (version "1.1")
11080 (source
11081 (origin
11082 (method url-fetch)
11083 (uri (string-append "https://hackage.haskell.org/package/"
11084 "raw-strings-qq/raw-strings-qq-"
11085 version ".tar.gz"))
11086 (sha256
11087 (base32
11088 "1lxy1wy3awf52968iy5y9r5z4qgnn2sxkdrh7js3m9gadb11w09f"))))
11089 (build-system haskell-build-system)
11090 (native-inputs `(("ghc-hunit" ,ghc-hunit)))
11091 (home-page "https://github.com/23Skidoo/raw-strings-qq")
11092 (synopsis "Raw string literals for Haskell")
11093 (description
11094 "This package provides a quasiquoter for raw string literals, i.e. string
11095literals that don't recognise the standard escape sequences. Basically, they
11096make your code more readable by freeing you from the responsibility to escape
11097backslashes. They are useful when working with regular expressions,
11098DOS/Windows paths and markup languages (such as XML).")
11099 (license license:bsd-3)))
11100
88189099
RW
11101(define-public ghc-inline-c
11102 (package
11103 (name "ghc-inline-c")
11104 (version "0.6.1.0")
11105 (source
11106 (origin
11107 (method url-fetch)
11108 (uri (string-append "https://hackage.haskell.org/package/inline-c/"
11109 "inline-c-" version ".tar.gz"))
11110 (sha256
11111 (base32
11112 "0vbfrsqsi7mdziqsnj68bsqlwbqxxhvrmy9rv6w8z18d1m8w3n6h"))))
11113 (build-system haskell-build-system)
11114 (arguments
11115 `(#:phases
11116 (modify-phases %standard-phases
11117 (add-after 'unpack 'create-Setup.hs
11118 (lambda _
11119 (with-output-to-file "Setup.hs"
11120 (lambda _
11121 (display "\
11122import Distribution.Simple
11123main = defaultMain")))
11124 #t)))))
11125 (inputs
11126 `(("ghc-ansi-wl-pprint" ,ghc-ansi-wl-pprint)
11127 ("ghc-cryptohash" ,ghc-cryptohash)
11128 ("ghc-hashable" ,ghc-hashable)
11129 ("ghc-parsec" ,ghc-parsec)
11130 ("ghc-parsers" ,ghc-parsers)
11131 ("ghc-unordered-containers" ,ghc-unordered-containers)
11132 ("ghc-vector" ,ghc-vector)))
11133 (native-inputs
11134 `(("ghc-quickcheck" ,ghc-quickcheck)
11135 ("ghc-hspec" ,ghc-hspec)
11136 ("ghc-raw-strings-qq" ,ghc-raw-strings-qq)
11137 ("ghc-regex-posix" ,ghc-regex-posix)))
11138 (home-page "http://hackage.haskell.org/package/inline-c")
11139 (synopsis "Write Haskell source files including C code inline")
11140 (description
11141 "inline-c lets you seamlessly call C libraries and embed high-performance
11142inline C code in Haskell modules. Haskell and C can be freely intermixed in
11143the same source file, and data passed to and from code in either language with
11144minimal overhead. No FFI required.")
11145 (license license:expat)))
11146
1d13003a
RW
11147(define-public ghc-weigh
11148 (package
11149 (name "ghc-weigh")
11150 (version "0.0.12")
11151 (source
11152 (origin
11153 (method url-fetch)
11154 (uri (string-append "https://hackage.haskell.org/package/weigh/"
11155 "weigh-" version ".tar.gz"))
11156 (sha256
11157 (base32
11158 "0zw2a997gxgdzqmd7j730kxgynzmjvvlkw84dajmfzf1v9pbij7x"))))
11159 (build-system haskell-build-system)
11160 (inputs
11161 `(("ghc-split" ,ghc-split)
11162 ("ghc-temporary" ,ghc-temporary)))
11163 (home-page "https://github.com/fpco/weigh#readme")
11164 (synopsis "Measure allocations of a Haskell functions/values")
11165 (description "This package provides tools to measure the memory usage of a
11166Haskell value or function.")
11167 (license license:bsd-3)))
11168
d459e043
RW
11169(define-public ghc-linear
11170 (package
11171 (name "ghc-linear")
11172 (version "1.20.8")
11173 (source
11174 (origin
11175 (method url-fetch)
11176 (uri (string-append "https://hackage.haskell.org/package/linear/"
11177 "linear-" version ".tar.gz"))
11178 (sha256
11179 (base32
11180 "046vkvxlb0s286qr55s0c6db0rlwbm1cmlmwhrrkqbkzhfcipgay"))))
11181 (build-system haskell-build-system)
11182 (inputs
11183 `(("ghc-adjunctions" ,ghc-adjunctions)
11184 ("ghc-base-orphans" ,ghc-base-orphans)
11185 ("ghc-bytes" ,ghc-bytes)
11186 ("ghc-cereal" ,ghc-cereal)
11187 ("ghc-distributive" ,ghc-distributive)
11188 ("ghc-hashable" ,ghc-hashable)
11189 ("ghc-lens" ,ghc-lens)
11190 ("ghc-reflection" ,ghc-reflection)
11191 ("ghc-semigroups" ,ghc-semigroups)
11192 ("ghc-semigroupoids" ,ghc-semigroupoids)
11193 ("ghc-tagged" ,ghc-tagged)
11194 ("ghc-transformers-compat" ,ghc-transformers-compat)
11195 ("ghc-unordered-containers" ,ghc-unordered-containers)
11196 ("ghc-vector" ,ghc-vector)
11197 ("ghc-void" ,ghc-void)))
11198 (native-inputs
11199 `(("cabal-doctest" ,cabal-doctest)
11200 ("ghc-doctest" ,ghc-doctest)
11201 ("ghc-simple-reflect" ,ghc-simple-reflect)
11202 ("ghc-test-framework" ,ghc-test-framework)
11203 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
11204 ("ghc-hunit" ,ghc-hunit)))
11205 (home-page "http://github.com/ekmett/linear/")
11206 (synopsis "Linear algebra library for Haskell")
11207 (description
11208 "This package provides types and combinators for linear algebra on free
11209vector spaces.")
11210 (license license:bsd-3)))
11211
9ef95a19
RW
11212(define-public ghc-safe-exceptions
11213 (package
11214 (name "ghc-safe-exceptions")
11215 (version "0.1.7.0")
11216 (source
11217 (origin
11218 (method url-fetch)
11219 (uri (string-append "https://hackage.haskell.org/package/"
11220 "safe-exceptions/safe-exceptions-"
11221 version ".tar.gz"))
11222 (sha256
11223 (base32
11224 "0sd0zfsm9pcll5bzzj523rbn45adjrnavdkz52hgmdjjgdcdrk8q"))))
11225 (build-system haskell-build-system)
11226 (arguments
11227 '(#:cabal-revision
11228 ("4" "0fid41gishzsyb47wzxhd5falandfirqcp760hcja81qjpfmqd32")))
11229 (inputs `(("ghc-exceptions" ,ghc-exceptions)))
11230 (native-inputs
11231 `(("ghc-hspec" ,ghc-hspec)
11232 ("ghc-void" ,ghc-void)
11233 ("hspec-discover" ,hspec-discover)))
11234 (home-page "https://github.com/fpco/safe-exceptions")
11235 (synopsis "Safe, consistent, and easy exception handling")
11236 (description "Runtime exceptions - as exposed in @code{base} by the
11237@code{Control.Exception} module - have long been an intimidating part of the
11238Haskell ecosystem. This package is intended to overcome this. It provides a
11239safe and simple API on top of the existing exception handling machinery. The
11240API is equivalent to the underlying implementation in terms of power but
11241encourages best practices to minimize the chances of getting the exception
11242handling wrong.")
11243 (license license:expat)))
11244
d9ee3e37
RW
11245(define-public ghc-inline-c-cpp
11246 (package
11247 (name "ghc-inline-c-cpp")
11248 (version "0.2.2.1")
11249 (source
11250 (origin
11251 (method url-fetch)
11252 (uri (string-append "https://hackage.haskell.org/package/inline-c-cpp/"
11253 "inline-c-cpp-" version ".tar.gz"))
11254 (sha256
11255 (base32
11256 "1rk7fmpkmxw9hhwr8df29kadnf0ybnwj64ggdbnsdrpfyhnkisci"))))
11257 (build-system haskell-build-system)
11258 (arguments
11259 `(#:phases
11260 (modify-phases %standard-phases
11261 (add-after 'unpack 'create-Setup.hs
11262 (lambda _
11263 (with-output-to-file "Setup.hs"
11264 (lambda _
11265 (display "\
11266import Distribution.Simple
11267main = defaultMain")))
11268 #t)))))
11269 (inputs
11270 `(("ghc-inline-c" ,ghc-inline-c)
11271 ("ghc-safe-exceptions" ,ghc-safe-exceptions)))
11272 (native-inputs
11273 `(("ghc-hspec" ,ghc-hspec)))
11274 (home-page "https://hackage.haskell.org/package/inline-c-cpp")
11275 (synopsis "Lets you embed C++ code into Haskell")
11276 (description
11277 "This package provides utilities to inline C++ code into Haskell using
11278@code{inline-c}.")
11279 (license license:expat)))
11280
d453b899
RW
11281(define-public ghc-bytestring-lexing
11282 (package
11283 (name "ghc-bytestring-lexing")
11284 (version "0.5.0.2")
11285 (source
11286 (origin
11287 (method url-fetch)
11288 (uri (string-append "https://hackage.haskell.org/package/"
11289 "bytestring-lexing/bytestring-lexing-"
11290 version ".tar.gz"))
11291 (sha256
11292 (base32
11293 "0wrzniawhgpphc6yx1v972gyqxdbv0pizaz9bafahrshyb9svy81"))))
11294 (build-system haskell-build-system)
11295 (home-page "http://code.haskell.org/~wren/")
11296 (synopsis "Parse and produce literals from strict or lazy bytestrings")
11297 (description
11298 "This package provides tools to parse and produce literals efficiently
11299from strict or lazy bytestrings.")
11300 (license license:bsd-2)))
11301
c7e400b1
RW
11302(define-public ghc-configurator
11303 (package
11304 (name "ghc-configurator")
11305 (version "0.3.0.0")
11306 (source
11307 (origin
11308 (method url-fetch)
11309 (uri (string-append "https://hackage.haskell.org/package/"
11310 "configurator/configurator-"
11311 version ".tar.gz"))
11312 (sha256
11313 (base32
11314 "1d1iq1knwiq6ia5g64rw5hqm6dakz912qj13r89737rfcxmrkfbf"))))
11315 (build-system haskell-build-system)
11316 (inputs
11317 `(("ghc-attoparsec" ,ghc-attoparsec)
11318 ("ghc-hashable" ,ghc-hashable)
11319 ("ghc-text" ,ghc-text)
11320 ("ghc-unix-compat" ,ghc-unix-compat)
11321 ("ghc-unordered-containers" ,ghc-unordered-containers)))
11322 (native-inputs
11323 `(("ghc-hunit" ,ghc-hunit)
11324 ("ghc-test-framework" ,ghc-test-framework)
11325 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)))
11326 (home-page "http://github.com/bos/configurator")
11327 (synopsis "Configuration management")
11328 (description
11329 "This package provides a configuration management library for programs
11330and daemons. The features include:
11331
11332@enumerate
11333@item Automatic, dynamic reloading in response to modifications to
11334 configuration files.
11335@item A simple, but flexible, configuration language, supporting several of
11336 the most commonly needed types of data, along with interpolation of strings
11337 from the configuration or the system environment (e.g. @code{$(HOME)}).
11338@item Subscription-based notification of changes to configuration properties.
11339@item An @code{import} directive allows the configuration of a complex
11340 application to be split across several smaller files, or common configuration
11341 data to be shared across several applications.
11342@end enumerate\n")
11343 (license license:bsd-3)))
11344
ea202046
RW
11345(define-public ghc-file-embed
11346 (package
11347 (name "ghc-file-embed")
11348 (version "0.0.10.1")
11349 (source
11350 (origin
11351 (method url-fetch)
11352 (uri (string-append "https://hackage.haskell.org/package/file-embed/"
11353 "file-embed-" version ".tar.gz"))
11354 (sha256
11355 (base32
11356 "0lj164cnzqyd487mli91nnr7137a4h4qsasfwsnsh77sx12fpk9k"))))
11357 (build-system haskell-build-system)
11358 (home-page "https://github.com/snoyberg/file-embed")
11359 (synopsis "Use Template Haskell to embed file contents directly")
11360 (description
11361 "This package allows you to use Template Haskell to read a file or all
11362the files in a directory, and turn them into @code{(path, bytestring)} pairs
11363embedded in your Haskell code.")
11364 (license license:bsd-3)))
11365
b1f9cc88
RW
11366(define-public ghc-safeio
11367 (package
11368 (name "ghc-safeio")
11369 (version "0.0.5.0")
11370 (source
11371 (origin
11372 (method url-fetch)
11373 (uri (string-append "https://hackage.haskell.org/package/safeio/"
11374 "safeio-" version ".tar.gz"))
11375 (sha256
11376 (base32
11377 "04g3070cbjdqj0h9l9ii6470xcbn40xfv4fr89a8yvnkdim9nyfm"))))
11378 (build-system haskell-build-system)
11379 (inputs
11380 `(("ghc-conduit" ,ghc-conduit)
11381 ("ghc-conduit-combinators" ,ghc-conduit-combinators)
11382 ("ghc-exceptions" ,ghc-exceptions)
11383 ("ghc-resourcet" ,ghc-resourcet)))
11384 (native-inputs
11385 `(("ghc-hunit" ,ghc-hunit)
11386 ("ghc-test-framework" ,ghc-test-framework)
11387 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
11388 ("ghc-test-framework-th" ,ghc-test-framework-th)))
11389 (home-page "https://github.com/luispedro/safeio")
11390 (synopsis "Write output to disk atomically")
11391 (description
11392 "This package implements utilities to perform atomic output so as to
11393avoid the problem of partial intermediate files.")
11394 (license license:expat)))
11395
57cd7d92
GH
11396(define-public ghc-tldr
11397 (package
11398 (name "ghc-tldr")
11399 (version "0.4.0.1")
11400 (source
11401 (origin
11402 (method url-fetch)
11403 (uri (string-append
11404 "https://hackage.haskell.org/package/tldr/tldr-"
11405 version
11406 ".tar.gz"))
11407 (sha256
11408 (base32
11409 "0nc581y9jjzwd8l88g48c72mla7k6q1w102akl7gl5jsk9ljamd3"))))
11410 (build-system haskell-build-system)
11411 (inputs
11412 `(("ghc-cmark" ,ghc-cmark)
11413 ("ghc-optparse-applicative" ,ghc-optparse-applicative)
11414 ("ghc-typed-process" ,ghc-typed-process)
11415 ("ghc-semigroups" ,ghc-semigroups)))
11416 (native-inputs
11417 `(("ghc-tasty" ,ghc-tasty)
11418 ("ghc-tasty-golden" ,ghc-tasty-golden)))
11419 (home-page "https://github.com/psibi/tldr-hs#readme")
11420 (synopsis "Haskell tldr client")
11421 (description "This package provides the @command{tldr} command and a
11422Haskell client library allowing users to update and view @code{tldr} pages
11423from a shell. The @code{tldr} pages are a community effort to simplify the
11424man pages with practical examples.")
11425 (license license:bsd-3)))
11426
ea7fa78a
GH
11427(define-public ghc-c2hs
11428 (package
11429 (name "ghc-c2hs")
11430 (version "0.28.6")
11431 (source
11432 (origin
11433 (method url-fetch)
11434 (uri (string-append
11435 "https://hackage.haskell.org/package/c2hs/c2hs-"
11436 version
11437 ".tar.gz"))
11438 (sha256
11439 (base32
11440 "1nplgxfin139x12sb656f5870rpdclrhzi8mq8pry035qld15pci"))))
11441 (build-system haskell-build-system)
11442 (inputs
11443 `(("ghc-language-c" ,ghc-language-c)
11444 ("ghc-dlist" ,ghc-dlist)))
11445 (native-inputs
11446 `(("ghc-test-framework" ,ghc-test-framework)
11447 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
11448 ("ghc-hunit" ,ghc-hunit)
11449 ("ghc-shelly" ,ghc-shelly)
11450 ("ghc-text" ,ghc-text)
11451 ("gcc" ,gcc)))
11452 (arguments
11453 `(;; XXX: Test failures are induced by a parse error in <bits/floatn.h>
11454 ;; of glibc 2.28.
11455 #:tests? #f
11456
11457 #:phases
11458 (modify-phases %standard-phases
11459 (add-before 'check 'set-cc
11460 ;; add a cc executable in the path, needed for some tests to pass
11461 (lambda* (#:key inputs #:allow-other-keys)
11462 (let ((gcc (assoc-ref inputs "gcc"))
11463 (tmpbin (tmpnam))
11464 (curpath (getenv "PATH")))
11465 (mkdir-p tmpbin)
11466 (symlink (which "gcc") (string-append tmpbin "/cc"))
11467 (setenv "PATH" (string-append tmpbin ":" curpath)))
11468 #t))
11469 (add-after 'check 'remove-cc
11470 ;; clean the tmp dir made in 'set-cc
11471 (lambda _
11472 (let* ((cc-path (which "cc"))
11473 (cc-dir (dirname cc-path)))
11474 (delete-file-recursively cc-dir)
11475 #t))))))
11476 (home-page "https://github.com/haskell/c2hs")
11477 (synopsis "Create Haskell bindings to C libraries")
11478 (description "C->Haskell assists in the development of Haskell bindings to
11479C libraries. It extracts interface information from C header files and
11480generates Haskell code with foreign imports and marshaling. Unlike writing
11481foreign imports by hand (or using hsc2hs), this ensures that C functions are
11482imported with the correct Haskell types.")
11483 (license license:gpl2)))
11484
4ad7d037
GH
11485(define-public ghc-libmpd
11486 (package
11487 (name "ghc-libmpd")
11488 (version "0.9.0.9")
11489 (source
11490 (origin
11491 (method url-fetch)
11492 (uri (string-append
11493 "mirror://hackage/package/libmpd/libmpd-"
11494 version
11495 ".tar.gz"))
11496 (sha256
11497 (base32
11498 "1931m23iqb4wddpdidm4ph746zpaw41kkjzmb074j7yyfpk7x1jv"))))
11499 (build-system haskell-build-system)
11500 (inputs
11501 `(("ghc-attoparsec" ,ghc-attoparsec)
11502 ("ghc-old-locale" ,ghc-old-locale)
11503 ("ghc-text" ,ghc-text)
11504 ("ghc-data-default-class" ,ghc-data-default-class)
11505 ("ghc-network" ,ghc-network)
11506 ("ghc-utf8-string" ,ghc-utf8-string)))
11507 (native-inputs
11508 `(("ghc-quickcheck" ,ghc-quickcheck)
11509 ("ghc-hspec" ,ghc-hspec)
11510 ("hspec-discover" ,hspec-discover)))
11511 (home-page "https://github.com/vimus/libmpd-haskell")
11512 (synopsis "Haskell client library for the Music Player Daemon")
11513 (description "This package provides a pure Haskell client library for the
11514Music Player Daemon.")
11515 (license license:expat)))
11516
3fc88ff0
GH
11517(define-public ghc-alsa-core
11518 (package
11519 (name "ghc-alsa-core")
11520 (version "0.5.0.1")
11521 (source
11522 (origin
11523 (method url-fetch)
11524 (uri (string-append
11525 "mirror://hackage/package/alsa-core/alsa-core-"
11526 version
11527 ".tar.gz"))
11528 (sha256
11529 (base32
11530 "1avh4a419h9d2zsslg6j8hm87ppgsgqafz8ll037rk2yy1g4jl7b"))))
11531 (build-system haskell-build-system)
11532 (inputs
11533 `(("ghc-extensible-exceptions" ,ghc-extensible-exceptions)
11534 ("alsa-lib" ,alsa-lib)))
11535 (native-inputs
11536 `(("pkg-config" ,pkg-config)))
11537 (home-page "http://www.haskell.org/haskellwiki/ALSA")
11538 (synopsis "Binding to the ALSA Library API (Exceptions)")
11539 (description "This package provides access to ALSA infrastructure, that is
11540needed by both alsa-seq and alsa-pcm.")
11541 (license license:bsd-3)))
d4ce1c50
GH
11542
11543(define-public ghc-base-unicode-symbols
11544 (package
11545 (name "ghc-base-unicode-symbols")
11546 (version "0.2.3")
11547 (source
11548 (origin
11549 (method url-fetch)
11550 (uri (string-append
11551 "mirror://hackage/package/base-unicode-symbols/base-unicode-symbols-"
11552 version
11553 ".tar.gz"))
11554 (sha256
11555 (base32
11556 "1ia6li7qjg1zkak4gf6mnbshw45mq9bfjr0jch58ds0lscmvwyzf"))))
11557 (build-system haskell-build-system)
11558 (home-page "http://www.haskell.org/haskellwiki/Unicode-symbols")
11559 (synopsis "Unicode alternatives for common functions and operators")
11560 (description "This package defines new symbols for a number of functions,
11561operators and types in the base package. All symbols are documented with
11562their actual definition and information regarding their Unicode code point.
11563They should be completely interchangeable with their definitions. For
11564further Unicode goodness you can enable the @code{UnicodeSyntax}
11565@url{https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/glasgow_exs.html#unicode-syntax,
11566language extension}. This extension enables Unicode characters to be used to
11567stand for certain ASCII character sequences, i.e. → instead of @code{->},
11568∀ instead of @code{forall} and many others.")
11569 (license license:bsd-3)))
2356b7ab
GH
11570
11571(define-public ghc-stylish-haskell
11572 (package
11573 (name "ghc-stylish-haskell")
11574 (version "0.9.2.1")
11575 (source
11576 (origin
11577 (method url-fetch)
11578 (uri (string-append
11579 "mirror://hackage/package/stylish-haskell/stylish-haskell-"
11580 version
11581 ".tar.gz"))
11582 (sha256
11583 (base32
11584 "1ls11fdx6snvfx8yykpidz142zzxwi5bazl49hgfqlwx50rqcp7w"))))
11585 (build-system haskell-build-system)
11586 (inputs
11587 `(("ghc-aeson" ,ghc-aeson)
11588 ("ghc-file-embed" ,ghc-file-embed)
11589 ("ghc-haskell-src-exts" ,ghc-haskell-src-exts)
11590 ("ghc-semigroups" ,ghc-semigroups)
11591 ("ghc-syb" ,ghc-syb)
11592 ("ghc-yaml" ,ghc-yaml)
11593 ("ghc-strict" ,ghc-strict)
11594 ("ghc-optparse-applicative"
11595 ,ghc-optparse-applicative)))
11596 (native-inputs
11597 `(("ghc-hunit" ,ghc-hunit)
11598 ("ghc-test-framework" ,ghc-test-framework)
11599 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)))
11600 (home-page "https://github.com/jaspervdj/stylish-haskell")
11601 (synopsis "Haskell code prettifier")
11602 (description "Stylish-haskell is a Haskell code prettifier. The goal is
11603not to format all of the code in a file, to avoid \"getting in the way\".
11604However, this tool can e.g. clean up import statements and help doing various
11605tasks that get tedious very quickly. It can
11606@itemize
11607@item
11608Align and sort @code{import} statements
11609@item
11610Group and wrap @code{{-# LANGUAGE #-}} pragmas, remove (some) redundant
11611pragmas
11612@item
11613Remove trailing whitespaces
11614@item
11615Align branches in @code{case} and fields in records
11616@item
11617Convert line endings (customisable)
11618@item
11619Replace tabs by four spaces (turned off by default)
11620@item
11621Replace some ASCII sequences by their Unicode equivalent (turned off by
11622default)
11623@end itemize")
11624 (license license:bsd-3)))
246b3437 11625;;; haskell.scm ends here