forked from jsoo1/guix-channel
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathghc-system.scm
181 lines (171 loc) · 6.76 KB
/
ghc-system.scm
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
(define-module (ghc-system)
#:use-module (gnu packages haskell-xyz)
#:use-module (gnu packages haskell-check)
#:use-module (guix build-system haskell)
#:use-module (guix download)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages)
#:export (ghc-directory
ghc-optional-args
ghc-process
ghc-time
ghc-turtle))
(define ghc-directory
(package
(name "ghc-directory")
(version "1.3.3.2")
(source
(origin
(method url-fetch)
(uri (string-append
"mirror://hackage/package/directory/directory-"
version
".tar.gz"))
(sha256
(base32
"0nr0lwpi20slgqc22br9ldrs57573irqbck8am0pz0gz3yvmqis3"))))
(build-system haskell-build-system)
(home-page
"http://hackage.haskell.org/package/directory")
(synopsis
"Platform-agnostic library for filesystem operations")
(description
"This library provides a basic set of operations for manipulating files and directories in a portable way.")
(license license:bsd-3)))
(define-public ghc-optional-args
(package
(name "ghc-optional-args")
(version "1.0.2")
(source
(origin
(method url-fetch)
(uri (string-append
"mirror://hackage/package/optional-args/optional-args-"
version
".tar.gz"))
(sha256
(base32
"1r5hhn6xvc01grggxdyy48daibwzi0aikgidq0ahpa6bfynm8d1f"))))
(build-system haskell-build-system)
(home-page
"http://hackage.haskell.org/package/optional-args")
(synopsis "Optional function arguments")
(description
"This library provides a type for specifying `Optional` function arguments
Read the tutorial in \"Data.Optional\" to learn more")
(license license:bsd-3)))
(define ghc-process
(package
(name "ghc-process")
(version "1.6.5.0")
(source
(origin
(method url-fetch)
(uri (string-append
"mirror://hackage/package/process/process-"
version
".tar.gz"))
(sha256
(base32
"0a04jch13d0va47yhkf1ni7pk9hxsdr3m4h8645r4qs0mzvsby60"))))
(build-system haskell-build-system)
(home-page
"http://hackage.haskell.org/package/process")
(synopsis "Process libraries")
(description
"This package contains libraries for dealing with system processes. The typed-process package is a more recent take on a process API, which uses this package internally. It features better binary support, easier concurrency, and a more composable API. You can read more about it at https://haskell-lang.org/library/typed-process.")
(license license:bsd-3)))
(define ghc-time
(package
(name "ghc-time")
(version "1.9.2")
(source
(origin
(method url-fetch)
(uri (string-append
"mirror://hackage/package/time/time-"
version
".tar.gz"))
(sha256
(base32
"05d0n44rwpqkjkns9nlgw2gpfv643a0bzp9cx97az0wmn31618nx"))))
(build-system haskell-build-system)
(native-inputs
`(("ghc-quickcheck" ,ghc-quickcheck)
("ghc-tasty" ,ghc-tasty)
("ghc-tasty-hunit" ,ghc-tasty-hunit)
("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
("ghc-random" ,ghc-random)))
(home-page "https://github.com/haskell/time")
(synopsis "A time library")
(description "Time, clocks and calendars")
(license license:bsd-3)))
(define ghc-turtle
(package
(name "ghc-turtle")
(version "1.5.13")
(source
(origin
(method url-fetch)
(uri (string-append
"mirror://hackage/package/turtle/turtle-"
version
".tar.gz"))
(sha256
(base32
"1124yhw0l8924cwkmap1qn2z0hf4vn3r73h4pmi9icahg8zpc1hg"))))
(build-system haskell-build-system)
(inputs
`(("ghc-ansi-wl-pprint" ,ghc-ansi-wl-pprint)
("ghc-async" ,ghc-async)
("ghc-clock" ,ghc-clock)
("ghc-exceptions" ,ghc-exceptions)
("ghc-foldl" ,ghc-foldl)
("ghc-hostname" ,ghc-hostname)
("ghc-managed" ,ghc-managed)
("ghc-semigroups" ,ghc-semigroups)
("ghc-system-filepath" ,ghc-system-filepath)
("ghc-system-fileio" ,ghc-system-fileio)
("ghc-temporary" ,ghc-temporary)
("ghc-optparse-applicative" ,ghc-optparse-applicative)
("ghc-optional-args" ,ghc-optional-args)
("ghc-unix-compat" ,ghc-unix-compat)))
(native-inputs `(("ghc-doctest" ,ghc-doctest)))
(home-page
"http://hackage.haskell.org/package/turtle")
(synopsis "Shell programming, Haskell-style")
(description
"turtle is a reimplementation of the Unix command line environment in Haskell so that you can use Haskell as both a shell and a scripting language. Features include:
* Batteries included: Command an extended suite of predefined utilities.
* Interoperability: You can still run external shell commands.
* Portability: Works on Windows, OS X, and Linux.
* Exception safety: Safely acquire and release resources.
* Streaming: Transform or fold command output in constant space.
* Patterns: Use typed regular expressions that can parse structured values.
* Formatting: Type-safe printf-style text formatting.
* Modern: Supports text and system-filepath.
Read \"Turtle.Tutorial\" for a detailed tutorial or \"Turtle.Prelude\" for a quick-start guide. turtle is designed to be beginner-friendly, but as a result lacks certain features, like tracing commands. If you feel comfortable using turtle then you should also check out the Shelly library which provides similar functionality.")
(license license:bsd-3)))
(define-public ghc-managed
(package
(name "ghc-managed")
(version "1.0.6")
(source
(origin
(method url-fetch)
(uri (string-append
"mirror://hackage/package/managed/managed-"
version
".tar.gz"))
(sha256
(base32
"1kbrw99yh5x5blykmx2n88mplbbi4ss1ij5j17b7asw6q0ihm9zi"))))
(build-system haskell-build-system)
(home-page "http://hackage.haskell.org/package/managed")
(synopsis "A monad for managed values")
(description
"In Haskell you very often acquire values using the with... idiom using functions of type (a -> IO r) -> IO r. This idiom forms a Monad, which is a special case of the ContT monad (from transformers) or the Codensity monad (from kan-extensions). The main purpose behind this package is to provide a restricted form of these monads specialized to this unusually common case. . The reason this package defines a specialized version of these types is to:
* be more beginner-friendly,
* simplify inferred types and error messages, and:
* provide some additional type class instances that would otherwise be orphan instances")
(license license:bsd-3)))