@@ -1,510 +1,298 @@
11-- This header file was generated by ./256colres.pl
22module Graphics.Vty.Attributes.Color240
3− ( rgbColor
3+ ( rgbColorToColor240
44 , color240CodeToRGB
55 )
66where
77
8−import Graphics.Vty.Attributes.Color
9−
108import Data.Word (Word8)
119import Text.Printf
1210
1311-- Note: rgbColor's mapping from RGB to 240 colors was generated from
1412-- 256colres.pl which is forked from xterm 256colres.pl.
1513
16−-- | Create a Vty 'Color' (in the 240 color set) from an RGB triple.
17−-- This function is lossy in the sense that we only internally support 240 colors but the
18−-- #RRGGBB format supports 16^3 colors.
19−rgbColor :: Integral i => i -> i -> i -> Color
20−rgbColor r g b
14+-- | Create a value in the Color240 set from an RGB triple
15+rgbColorToColor240 :: Integral i => i -> i -> i -> Word8
16+rgbColorToColor240 r g b
2117 | r < 0 && g < 0 && b < 0 = error "rgbColor with negative color component intensity"
22− | r == 8 && g == 8 && b == 8 = Color240 216
23− | r == 18 && g == 18 && b == 18 = Color240 217
24− | r == 28 && g == 28 && b == 28 = Color240 218
25− | r == 38 && g == 38 && b == 38 = Color240 219
26− | r == 48 && g == 48 && b == 48 = Color240 220
27− | r == 58 && g == 58 && b == 58 = Color240 221
28− | r == 68 && g == 68 && b == 68 = Color240 222
29− | r == 78 && g == 78 && b == 78 = Color240 223
30− | r == 88 && g == 88 && b == 88 = Color240 224
31− | r == 98 && g == 98 && b == 98 = Color240 225
32− | r == 108 && g == 108 && b == 108 = Color240 226
33− | r == 118 && g == 118 && b == 118 = Color240 227
34− | r == 128 && g == 128 && b == 128 = Color240 228
35− | r == 138 && g == 138 && b == 138 = Color240 229
36− | r == 148 && g == 148 && b == 148 = Color240 230
37− | r == 158 && g == 158 && b == 158 = Color240 231
38− | r == 168 && g == 168 && b == 168 = Color240 232
39− | r == 178 && g == 178 && b == 178 = Color240 233
40− | r == 188 && g == 188 && b == 188 = Color240 234
41− | r == 198 && g == 198 && b == 198 = Color240 235
42− | r == 208 && g == 208 && b == 208 = Color240 236
43− | r == 218 && g == 218 && b == 218 = Color240 237
44− | r == 228 && g == 228 && b == 228 = Color240 238
45− | r == 238 && g == 238 && b == 238 = Color240 239
46− | r <= 0 && g <= 0 && b <= 0 = Color240 0
47− | r <= 0 && g <= 0 && b <= 95 = Color240 1
48− | r <= 0 && g <= 0 && b <= 135 = Color240 2
49− | r <= 0 && g <= 0 && b <= 175 = Color240 3
50− | r <= 0 && g <= 0 && b <= 215 = Color240 4
51− | r <= 0 && g <= 0 && b <= 255 = Color240 5
52− | r <= 0 && g <= 95 && b <= 0 = Color240 6
53− | r <= 0 && g <= 95 && b <= 95 = Color240 7
54− | r <= 0 && g <= 95 && b <= 135 = Color240 8
55− | r <= 0 && g <= 95 && b <= 175 = Color240 9
56− | r <= 0 && g <= 95 && b <= 215 = Color240 10
57− | r <= 0 && g <= 95 && b <= 255 = Color240 11
58− | r <= 0 && g <= 135 && b <= 0 = Color240 12
59− | r <= 0 && g <= 135 && b <= 95 = Color240 13
60− | r <= 0 && g <= 135 && b <= 135 = Color240 14
61− | r <= 0 && g <= 135 && b <= 175 = Color240 15
62− | r <= 0 && g <= 135 && b <= 215 = Color240 16
63− | r <= 0 && g <= 135 && b <= 255 = Color240 17
64− | r <= 0 && g <= 175 && b <= 0 = Color240 18
65− | r <= 0 && g <= 175 && b <= 95 = Color240 19
66− | r <= 0 && g <= 175 && b <= 135 = Color240 20
67− | r <= 0 && g <= 175 && b <= 175 = Color240 21
68− | r <= 0 && g <= 175 && b <= 215 = Color240 22
69− | r <= 0 && g <= 175 && b <= 255 = Color240 23
70− | r <= 0 && g <= 215 && b <= 0 = Color240 24
71− | r <= 0 && g <= 215 && b <= 95 = Color240 25
72− | r <= 0 && g <= 215 && b <= 135 = Color240 26
73− | r <= 0 && g <= 215 && b <= 175 = Color240 27
74− | r <= 0 && g <= 215 && b <= 215 = Color240 28
75− | r <= 0 && g <= 215 && b <= 255 = Color240 29
76− | r <= 0 && g <= 255 && b <= 0 = Color240 30
77− | r <= 0 && g <= 255 && b <= 95 = Color240 31
78− | r <= 0 && g <= 255 && b <= 135 = Color240 32
79− | r <= 0 && g <= 255 && b <= 175 = Color240 33
80− | r <= 0 && g <= 255 && b <= 215 = Color240 34
81− | r <= 0 && g <= 255 && b <= 255 = Color240 35
82− | r <= 95 && g <= 0 && b <= 0 = Color240 36
83− | r <= 95 && g <= 0 && b <= 95 = Color240 37
84− | r <= 95 && g <= 0 && b <= 135 = Color240 38
85− | r <= 95 && g <= 0 && b <= 175 = Color240 39
86− | r <= 95 && g <= 0 && b <= 215 = Color240 40
87− | r <= 95 && g <= 0 && b <= 255 = Color240 41
88− | r <= 95 && g <= 95 && b <= 0 = Color240 42
89− | r <= 95 && g <= 95 && b <= 95 = Color240 43
90− | r <= 95 && g <= 95 && b <= 135 = Color240 44
91− | r <= 95 && g <= 95 && b <= 175 = Color240 45
92− | r <= 95 && g <= 95 && b <= 215 = Color240 46
93− | r <= 95 && g <= 95 && b <= 255 = Color240 47
94− | r <= 95 && g <= 135 && b <= 0 = Color240 48
95− | r <= 95 && g <= 135 && b <= 95 = Color240 49
96− | r <= 95 && g <= 135 && b <= 135 = Color240 50
97− | r <= 95 && g <= 135 && b <= 175 = Color240 51
98− | r <= 95 && g <= 135 && b <= 215 = Color240 52
99− | r <= 95 && g <= 135 && b <= 255 = Color240 53
100− | r <= 95 && g <= 175 && b <= 0 = Color240 54
101− | r <= 95 && g <= 175 && b <= 95 = Color240 55
102− | r <= 95 && g <= 175 && b <= 135 = Color240 56
103− | r <= 95 && g <= 175 && b <= 175 = Color240 57
104− | r <= 95 && g <= 175 && b <= 215 = Color240 58
105− | r <= 95 && g <= 175 && b <= 255 = Color240 59
106− | r <= 95 && g <= 215 && b <= 0 = Color240 60
107− | r <= 95 && g <= 215 && b <= 95 = Color240 61
108− | r <= 95 && g <= 215 && b <= 135 = Color240 62
109− | r <= 95 && g <= 215 && b <= 175 = Color240 63
110− | r <= 95 && g <= 215 && b <= 215 = Color240 64
111− | r <= 95 && g <= 215 && b <= 255 = Color240 65
112− | r <= 95 && g <= 255 && b <= 0 = Color240 66
113− | r <= 95 && g <= 255 && b <= 95 = Color240 67
114− | r <= 95 && g <= 255 && b <= 135 = Color240 68
115− | r <= 95 && g <= 255 && b <= 175 = Color240 69
116− | r <= 95 && g <= 255 && b <= 215 = Color240 70
117− | r <= 95 && g <= 255 && b <= 255 = Color240 71
118− | r <= 135 && g <= 0 && b <= 0 = Color240 72
119− | r <= 135 && g <= 0 && b <= 95 = Color240 73
120− | r <= 135 && g <= 0 && b <= 135 = Color240 74
121− | r <= 135 && g <= 0 && b <= 175 = Color240 75
122− | r <= 135 && g <= 0 && b <= 215 = Color240 76
123− | r <= 135 && g <= 0 && b <= 255 = Color240 77
124− | r <= 135 && g <= 95 && b <= 0 = Color240 78
125− | r <= 135 && g <= 95 && b <= 95 = Color240 79
126− | r <= 135 && g <= 95 && b <= 135 = Color240 80
127− | r <= 135 && g <= 95 && b <= 175 = Color240 81
128− | r <= 135 && g <= 95 && b <= 215 = Color240 82
129− | r <= 135 && g <= 95 && b <= 255 = Color240 83
130− | r <= 135 && g <= 135 && b <= 0 = Color240 84
131− | r <= 135 && g <= 135 && b <= 95 = Color240 85
132− | r <= 135 && g <= 135 && b <= 135 = Color240 86
133− | r <= 135 && g <= 135 && b <= 175 = Color240 87
134− | r <= 135 && g <= 135 && b <= 215 = Color240 88
135− | r <= 135 && g <= 135 && b <= 255 = Color240 89
136− | r <= 135 && g <= 175 && b <= 0 = Color240 90
137− | r <= 135 && g <= 175 && b <= 95 = Color240 91
138− | r <= 135 && g <= 175 && b <= 135 = Color240 92
139− | r <= 135 && g <= 175 && b <= 175 = Color240 93
140− | r <= 135 && g <= 175 && b <= 215 = Color240 94
141− | r <= 135 && g <= 175 && b <= 255 = Color240 95
142− | r <= 135 && g <= 215 && b <= 0 = Color240 96
143− | r <= 135 && g <= 215 && b <= 95 = Color240 97
144− | r <= 135 && g <= 215 && b <= 135 = Color240 98
145− | r <= 135 && g <= 215 && b <= 175 = Color240 99
146− | r <= 135 && g <= 215 && b <= 215 = Color240 100
147− | r <= 135 && g <= 215 && b <= 255 = Color240 101
148− | r <= 135 && g <= 255 && b <= 0 = Color240 102
149− | r <= 135 && g <= 255 && b <= 95 = Color240 103
150− | r <= 135 && g <= 255 && b <= 135 = Color240 104
151− | r <= 135 && g <= 255 && b <= 175 = Color240 105
152− | r <= 135 && g <= 255 && b <= 215 = Color240 106
153− | r <= 135 && g <= 255 && b <= 255 = Color240 107
154− | r <= 175 && g <= 0 && b <= 0 = Color240 108
155− | r <= 175 && g <= 0 && b <= 95 = Color240 109
156− | r <= 175 && g <= 0 && b <= 135 = Color240 110
157− | r <= 175 && g <= 0 && b <= 175 = Color240 111
158− | r <= 175 && g <= 0 && b <= 215 = Color240 112
159− | r <= 175 && g <= 0 && b <= 255 = Color240 113
160− | r <= 175 && g <= 95 && b <= 0 = Color240 114
161− | r <= 175 && g <= 95 && b <= 95 = Color240 115
162− | r <= 175 && g <= 95 && b <= 135 = Color240 116
163− | r <= 175 && g <= 95 && b <= 175 = Color240 117
164− | r <= 175 && g <= 95 && b <= 215 = Color240 118
165− | r <= 175 && g <= 95 && b <= 255 = Color240 119
166− | r <= 175 && g <= 135 && b <= 0 = Color240 120
167− | r <= 175 && g <= 135 && b <= 95 = Color240 121
168− | r <= 175 && g <= 135 && b <= 135 = Color240 122
169− | r <= 175 && g <= 135 && b <= 175 = Color240 123
170− | r <= 175 && g <= 135 && b <= 215 = Color240 124
171− | r <= 175 && g <= 135 && b <= 255 = Color240 125
172− | r <= 175 && g <= 175 && b <= 0 = Color240 126
173− | r <= 175 && g <= 175 && b <= 95 = Color240 127
174− | r <= 175 && g <= 175 && b <= 135 = Color240 128
175− | r <= 175 && g <= 175 && b <= 175 = Color240 129
176− | r <= 175 && g <= 175 && b <= 215 = Color240 130
177− | r <= 175 && g <= 175 && b <= 255 = Color240 131
178− | r <= 175 && g <= 215 && b <= 0 = Color240 132
179− | r <= 175 && g <= 215 && b <= 95 = Color240 133
180− | r <= 175 && g <= 215 && b <= 135 = Color240 134
181− | r <= 175 && g <= 215 && b <= 175 = Color240 135
182− | r <= 175 && g <= 215 && b <= 215 = Color240 136
183− | r <= 175 && g <= 215 && b <= 255 = Color240 137
184− | r <= 175 && g <= 255 && b <= 0 = Color240 138
185− | r <= 175 && g <= 255 && b <= 95 = Color240 139
186− | r <= 175 && g <= 255 && b <= 135 = Color240 140
187− | r <= 175 && g <= 255 && b <= 175 = Color240 141
188− | r <= 175 && g <= 255 && b <= 215 = Color240 142
189− | r <= 175 && g <= 255 && b <= 255 = Color240 143
190− | r <= 215 && g <= 0 && b <= 0 = Color240 144
191− | r <= 215 && g <= 0 && b <= 95 = Color240 145
192− | r <= 215 && g <= 0 && b <= 135 = Color240 146
193− | r <= 215 && g <= 0 && b <= 175 = Color240 147
194− | r <= 215 && g <= 0 && b <= 215 = Color240 148
195− | r <= 215 && g <= 0 && b <= 255 = Color240 149
196− | r <= 215 && g <= 95 && b <= 0 = Color240 150
197− | r <= 215 && g <= 95 && b <= 95 = Color240 151
198− | r <= 215 && g <= 95 && b <= 135 = Color240 152
199− | r <= 215 && g <= 95 && b <= 175 = Color240 153
200− | r <= 215 && g <= 95 && b <= 215 = Color240 154
201− | r <= 215 && g <= 95 && b <= 255 = Color240 155
202− | r <= 215 && g <= 135 && b <= 0 = Color240 156
203− | r <= 215 && g <= 135 && b <= 95 = Color240 157
204− | r <= 215 && g <= 135 && b <= 135 = Color240 158
205− | r <= 215 && g <= 135 && b <= 175 = Color240 159
206− | r <= 215 && g <= 135 && b <= 215 = Color240 160
207− | r <= 215 && g <= 135 && b <= 255 = Color240 161
208− | r <= 215 && g <= 175 && b <= 0 = Color240 162
209− | r <= 215 && g <= 175 && b <= 95 = Color240 163
210− | r <= 215 && g <= 175 && b <= 135 = Color240 164
211− | r <= 215 && g <= 175 && b <= 175 = Color240 165
212− | r <= 215 && g <= 175 && b <= 215 = Color240 166
213− | r <= 215 && g <= 175 && b <= 255 = Color240 167
214− | r <= 215 && g <= 215 && b <= 0 = Color240 168
215− | r <= 215 && g <= 215 && b <= 95 = Color240 169
216− | r <= 215 && g <= 215 && b <= 135 = Color240 170
217− | r <= 215 && g <= 215 && b <= 175 = Color240 171
218− | r <= 215 && g <= 215 && b <= 215 = Color240 172
219− | r <= 215 && g <= 215 && b <= 255 = Color240 173
220− | r <= 215 && g <= 255 && b <= 0 = Color240 174
221− | r <= 215 && g <= 255 && b <= 95 = Color240 175
222− | r <= 215 && g <= 255 && b <= 135 = Color240 176
223− | r <= 215 && g <= 255 && b <= 175 = Color240 177
224− | r <= 215 && g <= 255 && b <= 215 = Color240 178
225− | r <= 215 && g <= 255 && b <= 255 = Color240 179
226− | r <= 255 && g <= 0 && b <= 0 = Color240 180
227− | r <= 255 && g <= 0 && b <= 95 = Color240 181
228− | r <= 255 && g <= 0 && b <= 135 = Color240 182
229− | r <= 255 && g <= 0 && b <= 175 = Color240 183
230− | r <= 255 && g <= 0 && b <= 215 = Color240 184
231− | r <= 255 && g <= 0 && b <= 255 = Color240 185
232− | r <= 255 && g <= 95 && b <= 0 = Color240 186
233− | r <= 255 && g <= 95 && b <= 95 = Color240 187
234− | r <= 255 && g <= 95 && b <= 135 = Color240 188
235− | r <= 255 && g <= 95 && b <= 175 = Color240 189
236− | r <= 255 && g <= 95 && b <= 215 = Color240 190
237− | r <= 255 && g <= 95 && b <= 255 = Color240 191
238− | r <= 255 && g <= 135 && b <= 0 = Color240 192
239− | r <= 255 && g <= 135 && b <= 95 = Color240 193
240− | r <= 255 && g <= 135 && b <= 135 = Color240 194
241− | r <= 255 && g <= 135 && b <= 175 = Color240 195
242− | r <= 255 && g <= 135 && b <= 215 = Color240 196
243− | r <= 255 && g <= 135 && b <= 255 = Color240 197
244− | r <= 255 && g <= 175 && b <= 0 = Color240 198
245− | r <= 255 && g <= 175 && b <= 95 = Color240 199
246− | r <= 255 && g <= 175 && b <= 135 = Color240 200
247− | r <= 255 && g <= 175 && b <= 175 = Color240 201
248− | r <= 255 && g <= 175 && b <= 215 = Color240 202
249− | r <= 255 && g <= 175 && b <= 255 = Color240 203
250− | r <= 255 && g <= 215 && b <= 0 = Color240 204
251− | r <= 255 && g <= 215 && b <= 95 = Color240 205
252− | r <= 255 && g <= 215 && b <= 135 = Color240 206
253− | r <= 255 && g <= 215 && b <= 175 = Color240 207
254− | r <= 255 && g <= 215 && b <= 215 = Color240 208
255− | r <= 255 && g <= 215 && b <= 255 = Color240 209
256− | r <= 255 && g <= 255 && b <= 0 = Color240 210
257− | r <= 255 && g <= 255 && b <= 95 = Color240 211
258− | r <= 255 && g <= 255 && b <= 135 = Color240 212
259− | r <= 255 && g <= 255 && b <= 175 = Color240 213
260− | r <= 255 && g <= 255 && b <= 215 = Color240 214
261− | r <= 255 && g <= 255 && b <= 255 = Color240 215
262− | otherwise = error (printf "RGB color %d %d %d does not map to 240 palette."
18+ | r == 8 && g == 8 && b == 8 = 216
19+ | r == 18 && g == 18 && b == 18 = 217
20+ | r == 28 && g == 28 && b == 28 = 218
21+ | r == 38 && g == 38 && b == 38 = 219
22+ | r == 48 && g == 48 && b == 48 = 220
23+ | r == 58 && g == 58 && b == 58 = 221
24+ | r == 68 && g == 68 && b == 68 = 222
25+ | r == 78 && g == 78 && b == 78 = 223
26+ | r == 88 && g == 88 && b == 88 = 224
27+ | r == 98 && g == 98 && b == 98 = 225
28+ | r == 108 && g == 108 && b == 108 = 226
29+ | r == 118 && g == 118 && b == 118 = 227
30+ | r == 128 && g == 128 && b == 128 = 228
31+ | r == 138 && g == 138 && b == 138 = 229
32+ | r == 148 && g == 148 && b == 148 = 230
33+ | r == 158 && g == 158 && b == 158 = 231
34+ | r == 168 && g == 168 && b == 168 = 232
35+ | r == 178 && g == 178 && b == 178 = 233
36+ | r == 188 && g == 188 && b == 188 = 234
37+ | r == 198 && g == 198 && b == 198 = 235
38+ | r == 208 && g == 208 && b == 208 = 236
39+ | r == 218 && g == 218 && b == 218 = 237
40+ | r == 228 && g == 228 && b == 228 = 238
41+ | r == 238 && g == 238 && b == 238 = 239
42+ | otherwise = 36 * go r + 6 * go g + go b
43+ where go = simpleColor_ (error (printf "RGB color %d %d %d does not map to 240 palette."
26344 (fromIntegral r :: Int)
26445 (fromIntegral g :: Int)
265− (fromIntegral b :: Int))
46+ (fromIntegral b :: Int)))
47+
48+simpleColor_ :: Integral i => Word8 -> i -> Word8
49+simpleColor_ e c
50+ | c <= 0 = 0
51+ | c <= 95 = 1
52+ | c <= 255 = fromIntegral ((c-16) `div` 40)
53+ | otherwise = e
26654
26755-- | Create a RGB triple from a value in the Color240 set.
268−color240CodeToRGB :: Word8 -> (Int, Int, Int)
56+color240CodeToRGB :: Word8 -> Maybe (Int, Int, Int)
26957color240CodeToRGB n = case n of
270− 0 -> (0, 0, 0)
271− 1 -> (0, 0, 95)
272− 2 -> (0, 0, 135)
273− 3 -> (0, 0, 175)
274− 4 -> (0, 0, 215)
275− 5 -> (0, 0, 255)
276− 6 -> (0, 95, 0)
277− 7 -> (0, 95, 95)
278− 8 -> (0, 95, 135)
279− 9 -> (0, 95, 175)
280− 10 -> (0, 95, 215)
281− 11 -> (0, 95, 255)
282− 12 -> (0, 135, 0)
283− 13 -> (0, 135, 95)
284− 14 -> (0, 135, 135)
285− 15 -> (0, 135, 175)
286− 16 -> (0, 135, 215)
287− 17 -> (0, 135, 255)
288− 18 -> (0, 175, 0)
289− 19 -> (0, 175, 95)
290− 20 -> (0, 175, 135)
291− 21 -> (0, 175, 175)
292− 22 -> (0, 175, 215)
293− 23 -> (0, 175, 255)
294− 24 -> (0, 215, 0)
295− 25 -> (0, 215, 95)
296− 26 -> (0, 215, 135)
297− 27 -> (0, 215, 175)
298− 28 -> (0, 215, 215)
299− 29 -> (0, 215, 255)
300− 30 -> (0, 255, 0)
301− 31 -> (0, 255, 95)
302− 32 -> (0, 255, 135)
303− 33 -> (0, 255, 175)
304− 34 -> (0, 255, 215)
305− 35 -> (0, 255, 255)
306− 36 -> (95, 0, 0)
307− 37 -> (95, 0, 95)
308− 38 -> (95, 0, 135)
309− 39 -> (95, 0, 175)
310− 40 -> (95, 0, 215)
311− 41 -> (95, 0, 255)
312− 42 -> (95, 95, 0)
313− 43 -> (95, 95, 95)
314− 44 -> (95, 95, 135)
315− 45 -> (95, 95, 175)
316− 46 -> (95, 95, 215)
317− 47 -> (95, 95, 255)
318− 48 -> (95, 135, 0)
319− 49 -> (95, 135, 95)
320− 50 -> (95, 135, 135)
321− 51 -> (95, 135, 175)
322− 52 -> (95, 135, 215)
323− 53 -> (95, 135, 255)
324− 54 -> (95, 175, 0)
325− 55 -> (95, 175, 95)
326− 56 -> (95, 175, 135)
327− 57 -> (95, 175, 175)
328− 58 -> (95, 175, 215)
329− 59 -> (95, 175, 255)
330− 60 -> (95, 215, 0)
331− 61 -> (95, 215, 95)
332− 62 -> (95, 215, 135)
333− 63 -> (95, 215, 175)
334− 64 -> (95, 215, 215)
335− 65 -> (95, 215, 255)
336− 66 -> (95, 255, 0)
337− 67 -> (95, 255, 95)
338− 68 -> (95, 255, 135)
339− 69 -> (95, 255, 175)
340− 70 -> (95, 255, 215)
341− 71 -> (95, 255, 255)
342− 72 -> (135, 0, 0)
343− 73 -> (135, 0, 95)
344− 74 -> (135, 0, 135)
345− 75 -> (135, 0, 175)
346− 76 -> (135, 0, 215)
347− 77 -> (135, 0, 255)
348− 78 -> (135, 95, 0)
349− 79 -> (135, 95, 95)
350− 80 -> (135, 95, 135)
351− 81 -> (135, 95, 175)
352− 82 -> (135, 95, 215)
353− 83 -> (135, 95, 255)
354− 84 -> (135, 135, 0)
355− 85 -> (135, 135, 95)
356− 86 -> (135, 135, 135)
357− 87 -> (135, 135, 175)
358− 88 -> (135, 135, 215)
359− 89 -> (135, 135, 255)
360− 90 -> (135, 175, 0)
361− 91 -> (135, 175, 95)
362− 92 -> (135, 175, 135)
363− 93 -> (135, 175, 175)
364− 94 -> (135, 175, 215)
365− 95 -> (135, 175, 255)
366− 96 -> (135, 215, 0)
367− 97 -> (135, 215, 95)
368− 98 -> (135, 215, 135)
369− 99 -> (135, 215, 175)
370− 100 -> (135, 215, 215)
371− 101 -> (135, 215, 255)
372− 102 -> (135, 255, 0)
373− 103 -> (135, 255, 95)
374− 104 -> (135, 255, 135)
375− 105 -> (135, 255, 175)
376− 106 -> (135, 255, 215)
377− 107 -> (135, 255, 255)
378− 108 -> (175, 0, 0)
379− 109 -> (175, 0, 95)
380− 110 -> (175, 0, 135)
381− 111 -> (175, 0, 175)
382− 112 -> (175, 0, 215)
383− 113 -> (175, 0, 255)
384− 114 -> (175, 95, 0)
385− 115 -> (175, 95, 95)
386− 116 -> (175, 95, 135)
387− 117 -> (175, 95, 175)
388− 118 -> (175, 95, 215)
389− 119 -> (175, 95, 255)
390− 120 -> (175, 135, 0)
391− 121 -> (175, 135, 95)
392− 122 -> (175, 135, 135)
393− 123 -> (175, 135, 175)
394− 124 -> (175, 135, 215)
395− 125 -> (175, 135, 255)
396− 126 -> (175, 175, 0)
397− 127 -> (175, 175, 95)
398− 128 -> (175, 175, 135)
399− 129 -> (175, 175, 175)
400− 130 -> (175, 175, 215)
401− 131 -> (175, 175, 255)
402− 132 -> (175, 215, 0)
403− 133 -> (175, 215, 95)
404− 134 -> (175, 215, 135)
405− 135 -> (175, 215, 175)
406− 136 -> (175, 215, 215)
407− 137 -> (175, 215, 255)
408− 138 -> (175, 255, 0)
409− 139 -> (175, 255, 95)
410− 140 -> (175, 255, 135)
411− 141 -> (175, 255, 175)
412− 142 -> (175, 255, 215)
413− 143 -> (175, 255, 255)
414− 144 -> (215, 0, 0)
415− 145 -> (215, 0, 95)
416− 146 -> (215, 0, 135)
417− 147 -> (215, 0, 175)
418− 148 -> (215, 0, 215)
419− 149 -> (215, 0, 255)
420− 150 -> (215, 95, 0)
421− 151 -> (215, 95, 95)
422− 152 -> (215, 95, 135)
423− 153 -> (215, 95, 175)
424− 154 -> (215, 95, 215)
425− 155 -> (215, 95, 255)
426− 156 -> (215, 135, 0)
427− 157 -> (215, 135, 95)
428− 158 -> (215, 135, 135)
429− 159 -> (215, 135, 175)
430− 160 -> (215, 135, 215)
431− 161 -> (215, 135, 255)
432− 162 -> (215, 175, 0)
433− 163 -> (215, 175, 95)
434− 164 -> (215, 175, 135)
435− 165 -> (215, 175, 175)
436− 166 -> (215, 175, 215)
437− 167 -> (215, 175, 255)
438− 168 -> (215, 215, 0)
439− 169 -> (215, 215, 95)
440− 170 -> (215, 215, 135)
441− 171 -> (215, 215, 175)
442− 172 -> (215, 215, 215)
443− 173 -> (215, 215, 255)
444− 174 -> (215, 255, 0)
445− 175 -> (215, 255, 95)
446− 176 -> (215, 255, 135)
447− 177 -> (215, 255, 175)
448− 178 -> (215, 255, 215)
449− 179 -> (215, 255, 255)
450− 180 -> (255, 0, 0)
451− 181 -> (255, 0, 95)
452− 182 -> (255, 0, 135)
453− 183 -> (255, 0, 175)
454− 184 -> (255, 0, 215)
455− 185 -> (255, 0, 255)
456− 186 -> (255, 95, 0)
457− 187 -> (255, 95, 95)
458− 188 -> (255, 95, 135)
459− 189 -> (255, 95, 175)
460− 190 -> (255, 95, 215)
461− 191 -> (255, 95, 255)
462− 192 -> (255, 135, 0)
463− 193 -> (255, 135, 95)
464− 194 -> (255, 135, 135)
465− 195 -> (255, 135, 175)
466− 196 -> (255, 135, 215)
467− 197 -> (255, 135, 255)
468− 198 -> (255, 175, 0)
469− 199 -> (255, 175, 95)
470− 200 -> (255, 175, 135)
471− 201 -> (255, 175, 175)
472− 202 -> (255, 175, 215)
473− 203 -> (255, 175, 255)
474− 204 -> (255, 215, 0)
475− 205 -> (255, 215, 95)
476− 206 -> (255, 215, 135)
477− 207 -> (255, 215, 175)
478− 208 -> (255, 215, 215)
479− 209 -> (255, 215, 255)
480− 210 -> (255, 255, 0)
481− 211 -> (255, 255, 95)
482− 212 -> (255, 255, 135)
483− 213 -> (255, 255, 175)
484− 214 -> (255, 255, 215)
485− 215 -> (255, 255, 255)
486− 216 -> (8, 8, 8)
487− 217 -> (18, 18, 18)
488− 218 -> (28, 28, 28)
489− 219 -> (38, 38, 38)
490− 220 -> (48, 48, 48)
491− 221 -> (58, 58, 58)
492− 222 -> (68, 68, 68)
493− 223 -> (78, 78, 78)
494− 224 -> (88, 88, 88)
495− 225 -> (98, 98, 98)
496− 226 -> (108, 108, 108)
497− 227 -> (118, 118, 118)
498− 228 -> (128, 128, 128)
499− 229 -> (138, 138, 138)
500− 230 -> (148, 148, 148)
501− 231 -> (158, 158, 158)
502− 232 -> (168, 168, 168)
503− 233 -> (178, 178, 178)
504− 234 -> (188, 188, 188)
505− 235 -> (198, 198, 198)
506− 236 -> (208, 208, 208)
507− 237 -> (218, 218, 218)
508− 238 -> (228, 228, 228)
509− 239 -> (238, 238, 238)
510− _ -> error (printf "Color240 value %d is invalid." n)
58+ 0 -> Just (0, 0, 0)
59+ 1 -> Just (0, 0, 95)
60+ 2 -> Just (0, 0, 135)
61+ 3 -> Just (0, 0, 175)
62+ 4 -> Just (0, 0, 215)
63+ 5 -> Just (0, 0, 255)
64+ 6 -> Just (0, 95, 0)
65+ 7 -> Just (0, 95, 95)
66+ 8 -> Just (0, 95, 135)
67+ 9 -> Just (0, 95, 175)
68+ 10 -> Just (0, 95, 215)
69+ 11 -> Just (0, 95, 255)
70+ 12 -> Just (0, 135, 0)
71+ 13 -> Just (0, 135, 95)
72+ 14 -> Just (0, 135, 135)
73+ 15 -> Just (0, 135, 175)
74+ 16 -> Just (0, 135, 215)
75+ 17 -> Just (0, 135, 255)
76+ 18 -> Just (0, 175, 0)
77+ 19 -> Just (0, 175, 95)
78+ 20 -> Just (0, 175, 135)
79+ 21 -> Just (0, 175, 175)
80+ 22 -> Just (0, 175, 215)
81+ 23 -> Just (0, 175, 255)
82+ 24 -> Just (0, 215, 0)
83+ 25 -> Just (0, 215, 95)
84+ 26 -> Just (0, 215, 135)
85+ 27 -> Just (0, 215, 175)
86+ 28 -> Just (0, 215, 215)
87+ 29 -> Just (0, 215, 255)
88+ 30 -> Just (0, 255, 0)
89+ 31 -> Just (0, 255, 95)
90+ 32 -> Just (0, 255, 135)
91+ 33 -> Just (0, 255, 175)
92+ 34 -> Just (0, 255, 215)
93+ 35 -> Just (0, 255, 255)
94+ 36 -> Just (95, 0, 0)
95+ 37 -> Just (95, 0, 95)
96+ 38 -> Just (95, 0, 135)
97+ 39 -> Just (95, 0, 175)
98+ 40 -> Just (95, 0, 215)
99+ 41 -> Just (95, 0, 255)
100+ 42 -> Just (95, 95, 0)
101+ 43 -> Just (95, 95, 95)
102+ 44 -> Just (95, 95, 135)
103+ 45 -> Just (95, 95, 175)
104+ 46 -> Just (95, 95, 215)
105+ 47 -> Just (95, 95, 255)
106+ 48 -> Just (95, 135, 0)
107+ 49 -> Just (95, 135, 95)
108+ 50 -> Just (95, 135, 135)
109+ 51 -> Just (95, 135, 175)
110+ 52 -> Just (95, 135, 215)
111+ 53 -> Just (95, 135, 255)
112+ 54 -> Just (95, 175, 0)
113+ 55 -> Just (95, 175, 95)
114+ 56 -> Just (95, 175, 135)
115+ 57 -> Just (95, 175, 175)
116+ 58 -> Just (95, 175, 215)
117+ 59 -> Just (95, 175, 255)
118+ 60 -> Just (95, 215, 0)
119+ 61 -> Just (95, 215, 95)
120+ 62 -> Just (95, 215, 135)
121+ 63 -> Just (95, 215, 175)
122+ 64 -> Just (95, 215, 215)
123+ 65 -> Just (95, 215, 255)
124+ 66 -> Just (95, 255, 0)
125+ 67 -> Just (95, 255, 95)
126+ 68 -> Just (95, 255, 135)
127+ 69 -> Just (95, 255, 175)
128+ 70 -> Just (95, 255, 215)
129+ 71 -> Just (95, 255, 255)
130+ 72 -> Just (135, 0, 0)
131+ 73 -> Just (135, 0, 95)
132+ 74 -> Just (135, 0, 135)
133+ 75 -> Just (135, 0, 175)
134+ 76 -> Just (135, 0, 215)
135+ 77 -> Just (135, 0, 255)
136+ 78 -> Just (135, 95, 0)
137+ 79 -> Just (135, 95, 95)
138+ 80 -> Just (135, 95, 135)
139+ 81 -> Just (135, 95, 175)
140+ 82 -> Just (135, 95, 215)
141+ 83 -> Just (135, 95, 255)
142+ 84 -> Just (135, 135, 0)
143+ 85 -> Just (135, 135, 95)
144+ 86 -> Just (135, 135, 135)
145+ 87 -> Just (135, 135, 175)
146+ 88 -> Just (135, 135, 215)
147+ 89 -> Just (135, 135, 255)
148+ 90 -> Just (135, 175, 0)
149+ 91 -> Just (135, 175, 95)
150+ 92 -> Just (135, 175, 135)
151+ 93 -> Just (135, 175, 175)
152+ 94 -> Just (135, 175, 215)
153+ 95 -> Just (135, 175, 255)
154+ 96 -> Just (135, 215, 0)
155+ 97 -> Just (135, 215, 95)
156+ 98 -> Just (135, 215, 135)
157+ 99 -> Just (135, 215, 175)
158+ 100 -> Just (135, 215, 215)
159+ 101 -> Just (135, 215, 255)
160+ 102 -> Just (135, 255, 0)
161+ 103 -> Just (135, 255, 95)
162+ 104 -> Just (135, 255, 135)
163+ 105 -> Just (135, 255, 175)
164+ 106 -> Just (135, 255, 215)
165+ 107 -> Just (135, 255, 255)
166+ 108 -> Just (175, 0, 0)
167+ 109 -> Just (175, 0, 95)
168+ 110 -> Just (175, 0, 135)
169+ 111 -> Just (175, 0, 175)
170+ 112 -> Just (175, 0, 215)
171+ 113 -> Just (175, 0, 255)
172+ 114 -> Just (175, 95, 0)
173+ 115 -> Just (175, 95, 95)
174+ 116 -> Just (175, 95, 135)
175+ 117 -> Just (175, 95, 175)
176+ 118 -> Just (175, 95, 215)
177+ 119 -> Just (175, 95, 255)
178+ 120 -> Just (175, 135, 0)
179+ 121 -> Just (175, 135, 95)
180+ 122 -> Just (175, 135, 135)
181+ 123 -> Just (175, 135, 175)
182+ 124 -> Just (175, 135, 215)
183+ 125 -> Just (175, 135, 255)
184+ 126 -> Just (175, 175, 0)
185+ 127 -> Just (175, 175, 95)
186+ 128 -> Just (175, 175, 135)
187+ 129 -> Just (175, 175, 175)
188+ 130 -> Just (175, 175, 215)
189+ 131 -> Just (175, 175, 255)
190+ 132 -> Just (175, 215, 0)
191+ 133 -> Just (175, 215, 95)
192+ 134 -> Just (175, 215, 135)
193+ 135 -> Just (175, 215, 175)
194+ 136 -> Just (175, 215, 215)
195+ 137 -> Just (175, 215, 255)
196+ 138 -> Just (175, 255, 0)
197+ 139 -> Just (175, 255, 95)
198+ 140 -> Just (175, 255, 135)
199+ 141 -> Just (175, 255, 175)
200+ 142 -> Just (175, 255, 215)
201+ 143 -> Just (175, 255, 255)
202+ 144 -> Just (215, 0, 0)
203+ 145 -> Just (215, 0, 95)
204+ 146 -> Just (215, 0, 135)
205+ 147 -> Just (215, 0, 175)
206+ 148 -> Just (215, 0, 215)
207+ 149 -> Just (215, 0, 255)
208+ 150 -> Just (215, 95, 0)
209+ 151 -> Just (215, 95, 95)
210+ 152 -> Just (215, 95, 135)
211+ 153 -> Just (215, 95, 175)
212+ 154 -> Just (215, 95, 215)
213+ 155 -> Just (215, 95, 255)
214+ 156 -> Just (215, 135, 0)
215+ 157 -> Just (215, 135, 95)
216+ 158 -> Just (215, 135, 135)
217+ 159 -> Just (215, 135, 175)
218+ 160 -> Just (215, 135, 215)
219+ 161 -> Just (215, 135, 255)
220+ 162 -> Just (215, 175, 0)
221+ 163 -> Just (215, 175, 95)
222+ 164 -> Just (215, 175, 135)
223+ 165 -> Just (215, 175, 175)
224+ 166 -> Just (215, 175, 215)
225+ 167 -> Just (215, 175, 255)
226+ 168 -> Just (215, 215, 0)
227+ 169 -> Just (215, 215, 95)
228+ 170 -> Just (215, 215, 135)
229+ 171 -> Just (215, 215, 175)
230+ 172 -> Just (215, 215, 215)
231+ 173 -> Just (215, 215, 255)
232+ 174 -> Just (215, 255, 0)
233+ 175 -> Just (215, 255, 95)
234+ 176 -> Just (215, 255, 135)
235+ 177 -> Just (215, 255, 175)
236+ 178 -> Just (215, 255, 215)
237+ 179 -> Just (215, 255, 255)
238+ 180 -> Just (255, 0, 0)
239+ 181 -> Just (255, 0, 95)
240+ 182 -> Just (255, 0, 135)
241+ 183 -> Just (255, 0, 175)
242+ 184 -> Just (255, 0, 215)
243+ 185 -> Just (255, 0, 255)
244+ 186 -> Just (255, 95, 0)
245+ 187 -> Just (255, 95, 95)
246+ 188 -> Just (255, 95, 135)
247+ 189 -> Just (255, 95, 175)
248+ 190 -> Just (255, 95, 215)
249+ 191 -> Just (255, 95, 255)
250+ 192 -> Just (255, 135, 0)
251+ 193 -> Just (255, 135, 95)
252+ 194 -> Just (255, 135, 135)
253+ 195 -> Just (255, 135, 175)
254+ 196 -> Just (255, 135, 215)
255+ 197 -> Just (255, 135, 255)
256+ 198 -> Just (255, 175, 0)
257+ 199 -> Just (255, 175, 95)
258+ 200 -> Just (255, 175, 135)
259+ 201 -> Just (255, 175, 175)
260+ 202 -> Just (255, 175, 215)
261+ 203 -> Just (255, 175, 255)
262+ 204 -> Just (255, 215, 0)
263+ 205 -> Just (255, 215, 95)
264+ 206 -> Just (255, 215, 135)
265+ 207 -> Just (255, 215, 175)
266+ 208 -> Just (255, 215, 215)
267+ 209 -> Just (255, 215, 255)
268+ 210 -> Just (255, 255, 0)
269+ 211 -> Just (255, 255, 95)
270+ 212 -> Just (255, 255, 135)
271+ 213 -> Just (255, 255, 175)
272+ 214 -> Just (255, 255, 215)
273+ 215 -> Just (255, 255, 255)
274+ 216 -> Just (8, 8, 8)
275+ 217 -> Just (18, 18, 18)
276+ 218 -> Just (28, 28, 28)
277+ 219 -> Just (38, 38, 38)
278+ 220 -> Just (48, 48, 48)
279+ 221 -> Just (58, 58, 58)
280+ 222 -> Just (68, 68, 68)
281+ 223 -> Just (78, 78, 78)
282+ 224 -> Just (88, 88, 88)
283+ 225 -> Just (98, 98, 98)
284+ 226 -> Just (108, 108, 108)
285+ 227 -> Just (118, 118, 118)
286+ 228 -> Just (128, 128, 128)
287+ 229 -> Just (138, 138, 138)
288+ 230 -> Just (148, 148, 148)
289+ 231 -> Just (158, 158, 158)
290+ 232 -> Just (168, 168, 168)
291+ 233 -> Just (178, 178, 178)
292+ 234 -> Just (188, 188, 188)
293+ 235 -> Just (198, 198, 198)
294+ 236 -> Just (208, 208, 208)
295+ 237 -> Just (218, 218, 218)
296+ 238 -> Just (228, 228, 228)
297+ 239 -> Just (238, 238, 238)
298+ _ -> Nothing