diff options
author | Péter Diviánszky <divipp@gmail.com> | 2016-05-06 12:29:36 +0200 |
---|---|---|
committer | Péter Diviánszky <divipp@gmail.com> | 2016-05-06 12:29:36 +0200 |
commit | d353a29bb93d3105a763465300b28250117c3f40 (patch) | |
tree | 1517e23109d5e3c266b634b3c7af4dd4ca29e4d7 /testdata/Builtins.out | |
parent | 3430070058610b6aeab2543bc050bb1cf2e95d0c (diff) |
show typechecked source code in .out files & fix local function handling (again)
Diffstat (limited to 'testdata/Builtins.out')
-rw-r--r-- | testdata/Builtins.out | 2880 |
1 files changed, 2139 insertions, 741 deletions
diff --git a/testdata/Builtins.out b/testdata/Builtins.out index 2c4b1a46..e5a33d12 100644 --- a/testdata/Builtins.out +++ b/testdata/Builtins.out | |||
@@ -10,7 +10,7 @@ data VecS (_ :: Type) :: Nat -> Type where | |||
10 | mapVec :: forall (a :: _) (b :: _) (c :: _) . (a -> b) -> VecS a c -> VecS b c | 10 | mapVec :: forall (a :: _) (b :: _) (c :: _) . (a -> b) -> VecS a c -> VecS b c |
11 | mapVec | 11 | mapVec |
12 | = \(a :: _) (b :: _) -> case'VecS | 12 | = \(a :: _) (b :: _) -> case'VecS |
13 | (\_ _ -> _) | 13 | (\(_ :: _) (_ :: _) -> _) |
14 | (\(c :: _) (d :: _) -> _rhs (V2 (a c) (a d))) | 14 | (\(c :: _) (d :: _) -> _rhs (V2 (a c) (a d))) |
15 | (\(e :: _) (f :: _) (g :: _) -> _rhs (V3 (a e) (a f) (a g))) | 15 | (\(e :: _) (f :: _) (g :: _) -> _rhs (V3 (a e) (a f) (a g))) |
16 | (\(h :: _) (i :: _) (j :: _) (k :: _) -> _rhs (V4 (a h) (a i) (a j) (a k))) | 16 | (\(h :: _) (i :: _) (j :: _) (k :: _) -> _rhs (V4 (a h) (a i) (a j) (a k))) |
@@ -22,10 +22,10 @@ mapVec | |||
22 | 'VecScalar :: Nat -> Type -> Type | 22 | 'VecScalar :: Nat -> Type -> Type |
23 | 'VecScalar | 23 | 'VecScalar |
24 | = \(a :: _) (b :: _) -> case'Nat | 24 | = \(a :: _) (b :: _) -> case'Nat |
25 | (\_ -> _) | 25 | (\(_ :: _) -> _) |
26 | undefined | 26 | undefined |
27 | (\(c :: _) -> case'Nat | 27 | (\(c :: _) -> case'Nat |
28 | (\_ -> _) | 28 | (\(_ :: _) -> _) |
29 | (_rhs b) | 29 | (_rhs b) |
30 | (\(d :: _) -> _rhs ('Vec (Succ (Succ d)) b)) | 30 | (\(d :: _) -> _rhs ('Vec (Succ (Succ d)) b)) |
31 | c) | 31 | c) |
@@ -72,31 +72,35 @@ data Mat :: Nat -> Nat -> Type -> Type where | |||
72 | 'MatVecScalarElem :: Type -> Type | 72 | 'MatVecScalarElem :: Type -> Type |
73 | 'MatVecScalarElem | 73 | 'MatVecScalarElem |
74 | = \(a :: _) -> match'Float | 74 | = \(a :: _) -> match'Float |
75 | (\_ -> _) | 75 | (\(_ :: _) -> _) |
76 | (_rhs 'Float) | 76 | (_rhs 'Float) |
77 | a | 77 | a |
78 | (match'Bool | 78 | (match'Bool |
79 | (\_ -> _) | 79 | (\(_ :: _) -> _) |
80 | (_rhs 'Bool) | 80 | (_rhs 'Bool) |
81 | a | 81 | a |
82 | (match'Int | 82 | (match'Int |
83 | (\_ -> _) | 83 | (\(_ :: _) -> _) |
84 | (_rhs 'Int) | 84 | (_rhs 'Int) |
85 | a | 85 | a |
86 | (match'VecS | 86 | (match'VecS |
87 | (\_ -> _) | 87 | (\(_ :: _) -> _) |
88 | (\(b :: _) _ -> _rhs b) | 88 | (\(b :: _) (_ :: _) -> _rhs b) |
89 | a | 89 | a |
90 | (match'Mat (\_ -> _) (\_ _ (c :: _) -> _rhs c) a undefined)))) | 90 | (match'Mat |
91 | (\(_ :: _) -> _) | ||
92 | (\(_ :: _) (_ :: _) (c :: _) -> _rhs c) | ||
93 | a | ||
94 | undefined)))) | ||
91 | 95 | ||
92 | 'Signed :: Type -> Constraint | 96 | 'Signed :: Type -> Constraint |
93 | 'Signed | 97 | 'Signed |
94 | = \(a :: _) -> match'Int | 98 | = \(a :: _) -> match'Int |
95 | (\_ -> _) | 99 | (\(_ :: _) -> _) |
96 | (_rhs 'CUnit) | 100 | (_rhs 'CUnit) |
97 | a | 101 | a |
98 | (match'Float | 102 | (match'Float |
99 | (\_ -> _) | 103 | (\(_ :: _) -> _) |
100 | (_rhs 'CUnit) | 104 | (_rhs 'CUnit) |
101 | a | 105 | a |
102 | (_rhs ('CEmpty "no instance of 'Signed on ???"))) | 106 | (_rhs ('CEmpty "no instance of 'Signed on ???"))) |
@@ -104,37 +108,37 @@ data Mat :: Nat -> Nat -> Type -> Type where | |||
104 | 'Component :: Type -> Constraint | 108 | 'Component :: Type -> Constraint |
105 | 'Component | 109 | 'Component |
106 | = \(a :: _) -> match'Int | 110 | = \(a :: _) -> match'Int |
107 | (\_ -> _) | 111 | (\(_ :: _) -> _) |
108 | (_rhs 'CUnit) | 112 | (_rhs 'CUnit) |
109 | a | 113 | a |
110 | (match'Word | 114 | (match'Word |
111 | (\_ -> _) | 115 | (\(_ :: _) -> _) |
112 | (_rhs 'CUnit) | 116 | (_rhs 'CUnit) |
113 | a | 117 | a |
114 | (match'Float | 118 | (match'Float |
115 | (\_ -> _) | 119 | (\(_ :: _) -> _) |
116 | (_rhs 'CUnit) | 120 | (_rhs 'CUnit) |
117 | a | 121 | a |
118 | (match'VecS | 122 | (match'VecS |
119 | (\_ -> _) | 123 | (\(_ :: _) -> _) |
120 | (\(b :: _) (c :: _) -> match'Float | 124 | (\(b :: _) (c :: _) -> match'Float |
121 | (\_ -> _) | 125 | (\(_ :: _) -> _) |
122 | (case'Nat | 126 | (case'Nat |
123 | (\_ -> _) | 127 | (\(_ :: _) -> _) |
124 | (_rhs ('CEmpty "no instance of 'Component on ???")) | 128 | (_rhs ('CEmpty "no instance of 'Component on ???")) |
125 | (\(d :: _) -> case'Nat | 129 | (\(d :: _) -> case'Nat |
126 | (\_ -> _) | 130 | (\(_ :: _) -> _) |
127 | (_rhs ('CEmpty "no instance of 'Component on ???")) | 131 | (_rhs ('CEmpty "no instance of 'Component on ???")) |
128 | (\(e :: _) -> case'Nat | 132 | (\(e :: _) -> case'Nat |
129 | (\_ -> _) | 133 | (\(_ :: _) -> _) |
130 | (_rhs 'CUnit) | 134 | (_rhs 'CUnit) |
131 | (\(f :: _) -> case'Nat | 135 | (\(f :: _) -> case'Nat |
132 | (\_ -> _) | 136 | (\(_ :: _) -> _) |
133 | (_rhs 'CUnit) | 137 | (_rhs 'CUnit) |
134 | (\(g :: _) -> case'Nat | 138 | (\(g :: _) -> case'Nat |
135 | (\_ -> _) | 139 | (\(_ :: _) -> _) |
136 | (_rhs 'CUnit) | 140 | (_rhs 'CUnit) |
137 | (\_ -> _rhs ('CEmpty "no instance of 'Component on ???")) | 141 | (\(_ :: _) -> _rhs ('CEmpty "no instance of 'Component on ???")) |
138 | g) | 142 | g) |
139 | f) | 143 | f) |
140 | e) | 144 | e) |
@@ -142,23 +146,23 @@ data Mat :: Nat -> Nat -> Type -> Type where | |||
142 | c) | 146 | c) |
143 | b | 147 | b |
144 | (match'Bool | 148 | (match'Bool |
145 | (\_ -> _) | 149 | (\(_ :: _) -> _) |
146 | (case'Nat | 150 | (case'Nat |
147 | (\_ -> _) | 151 | (\(_ :: _) -> _) |
148 | (_rhs ('CEmpty "no instance of 'Component on ???")) | 152 | (_rhs ('CEmpty "no instance of 'Component on ???")) |
149 | (\(h :: _) -> case'Nat | 153 | (\(h :: _) -> case'Nat |
150 | (\_ -> _) | 154 | (\(_ :: _) -> _) |
151 | (_rhs ('CEmpty "no instance of 'Component on ???")) | 155 | (_rhs ('CEmpty "no instance of 'Component on ???")) |
152 | (\(i :: _) -> case'Nat | 156 | (\(i :: _) -> case'Nat |
153 | (\_ -> _) | 157 | (\(_ :: _) -> _) |
154 | (_rhs 'CUnit) | 158 | (_rhs 'CUnit) |
155 | (\(j :: _) -> case'Nat | 159 | (\(j :: _) -> case'Nat |
156 | (\_ -> _) | 160 | (\(_ :: _) -> _) |
157 | (_rhs 'CUnit) | 161 | (_rhs 'CUnit) |
158 | (\(k :: _) -> case'Nat | 162 | (\(k :: _) -> case'Nat |
159 | (\_ -> _) | 163 | (\(_ :: _) -> _) |
160 | (_rhs 'CUnit) | 164 | (_rhs 'CUnit) |
161 | (\_ -> _rhs ('CEmpty "no instance of 'Component on ???")) | 165 | (\(_ :: _) -> _rhs ('CEmpty "no instance of 'Component on ???")) |
162 | k) | 166 | k) |
163 | j) | 167 | j) |
164 | i) | 168 | i) |
@@ -168,45 +172,45 @@ data Mat :: Nat -> Nat -> Type -> Type where | |||
168 | (_rhs ('CEmpty "no instance of 'Component on ???")))) | 172 | (_rhs ('CEmpty "no instance of 'Component on ???")))) |
169 | a | 173 | a |
170 | (match'Bool | 174 | (match'Bool |
171 | (\_ -> _) | 175 | (\(_ :: _) -> _) |
172 | (_rhs 'CUnit) | 176 | (_rhs 'CUnit) |
173 | a | 177 | a |
174 | (_rhs ('CEmpty "no instance of 'Component on ???")))))) | 178 | (_rhs ('CEmpty "no instance of 'Component on ???")))))) |
175 | 179 | ||
176 | zero :: forall a . Component a => a | 180 | zero :: forall a . Component a => a |
177 | zero | 181 | zero |
178 | = \ @a @_ -> match'Int | 182 | = \ @a @(_ :: _) -> match'Int |
179 | (\_ -> _) | 183 | (\(_ :: _) -> _) |
180 | (_rhs let b = _rhs (fromInt 0 :: Int) in b) | 184 | (_rhs let b = _rhs (fromInt 0 :: Int) in b) |
181 | a | 185 | a |
182 | (match'Word | 186 | (match'Word |
183 | (\_ -> _) | 187 | (\(_ :: _) -> _) |
184 | (_rhs let c = _rhs (fromInt 0 :: Word) in c) | 188 | (_rhs let c = _rhs (fromInt 0 :: Word) in c) |
185 | a | 189 | a |
186 | (match'Float | 190 | (match'Float |
187 | (\_ -> _) | 191 | (\(_ :: _) -> _) |
188 | (_rhs let d = _rhs 0.0 in d) | 192 | (_rhs let d = _rhs 0.0 in d) |
189 | a | 193 | a |
190 | (match'VecS | 194 | (match'VecS |
191 | (\_ -> _) | 195 | (\(_ :: _) -> _) |
192 | (\(e :: _) (f :: _) -> match'Float | 196 | (\(e :: _) (f :: _) -> match'Float |
193 | (\_ -> _) | 197 | (\(_ :: _) -> _) |
194 | (case'Nat | 198 | (case'Nat |
195 | (\_ -> _) | 199 | (\(_ :: _) -> _) |
196 | (_rhs undefined) | 200 | (_rhs undefined) |
197 | (\(g :: _) -> case'Nat | 201 | (\(g :: _) -> case'Nat |
198 | (\_ -> _) | 202 | (\(_ :: _) -> _) |
199 | (_rhs undefined) | 203 | (_rhs undefined) |
200 | (\(h :: _) -> case'Nat | 204 | (\(h :: _) -> case'Nat |
201 | (\_ -> _) | 205 | (\(_ :: _) -> _) |
202 | (_rhs let i = _rhs (V2 0.0 0.0) in i) | 206 | (_rhs let i = _rhs (V2 0.0 0.0) in i) |
203 | (\(j :: _) -> case'Nat | 207 | (\(j :: _) -> case'Nat |
204 | (\_ -> _) | 208 | (\(_ :: _) -> _) |
205 | (_rhs let k = _rhs (V3 0.0 0.0 0.0) in k) | 209 | (_rhs let k = _rhs (V3 0.0 0.0 0.0) in k) |
206 | (\(l :: _) -> case'Nat | 210 | (\(l :: _) -> case'Nat |
207 | (\_ -> _) | 211 | (\(_ :: _) -> _) |
208 | (_rhs let m = _rhs (V4 0.0 0.0 0.0 0.0) in m) | 212 | (_rhs let m = _rhs (V4 0.0 0.0 0.0 0.0) in m) |
209 | (\_ -> _rhs undefined) | 213 | (\(_ :: _) -> _rhs undefined) |
210 | l) | 214 | l) |
211 | j) | 215 | j) |
212 | h) | 216 | h) |
@@ -214,23 +218,23 @@ zero | |||
214 | f) | 218 | f) |
215 | e | 219 | e |
216 | (match'Bool | 220 | (match'Bool |
217 | (\_ -> _) | 221 | (\(_ :: _) -> _) |
218 | (case'Nat | 222 | (case'Nat |
219 | (\_ -> _) | 223 | (\(_ :: _) -> _) |
220 | (_rhs undefined) | 224 | (_rhs undefined) |
221 | (\(n :: _) -> case'Nat | 225 | (\(n :: _) -> case'Nat |
222 | (\_ -> _) | 226 | (\(_ :: _) -> _) |
223 | (_rhs undefined) | 227 | (_rhs undefined) |
224 | (\(o :: _) -> case'Nat | 228 | (\(o :: _) -> case'Nat |
225 | (\_ -> _) | 229 | (\(_ :: _) -> _) |
226 | (_rhs let p = _rhs (V2 False False) in p) | 230 | (_rhs let p = _rhs (V2 False False) in p) |
227 | (\(q :: _) -> case'Nat | 231 | (\(q :: _) -> case'Nat |
228 | (\_ -> _) | 232 | (\(_ :: _) -> _) |
229 | (_rhs let r = _rhs (V3 False False False) in r) | 233 | (_rhs let r = _rhs (V3 False False False) in r) |
230 | (\(s :: _) -> case'Nat | 234 | (\(s :: _) -> case'Nat |
231 | (\_ -> _) | 235 | (\(_ :: _) -> _) |
232 | (_rhs let t = _rhs (V4 False False False False) in t) | 236 | (_rhs let t = _rhs (V4 False False False False) in t) |
233 | (\_ -> _rhs undefined) | 237 | (\(_ :: _) -> _rhs undefined) |
234 | s) | 238 | s) |
235 | q) | 239 | q) |
236 | o) | 240 | o) |
@@ -239,42 +243,46 @@ zero | |||
239 | e | 243 | e |
240 | (_rhs undefined))) | 244 | (_rhs undefined))) |
241 | a | 245 | a |
242 | (match'Bool (\_ -> _) (_rhs let u = _rhs False in u) a (_rhs undefined))))) | 246 | (match'Bool |
247 | (\(_ :: _) -> _) | ||
248 | (_rhs let u = _rhs False in u) | ||
249 | a | ||
250 | (_rhs undefined))))) | ||
243 | 251 | ||
244 | one :: forall a . Component a => a | 252 | one :: forall a . Component a => a |
245 | one | 253 | one |
246 | = \ @a @_ -> match'Int | 254 | = \ @a @(_ :: _) -> match'Int |
247 | (\_ -> _) | 255 | (\(_ :: _) -> _) |
248 | (_rhs let b = _rhs (fromInt 1 :: Int) in b) | 256 | (_rhs let b = _rhs (fromInt 1 :: Int) in b) |
249 | a | 257 | a |
250 | (match'Word | 258 | (match'Word |
251 | (\_ -> _) | 259 | (\(_ :: _) -> _) |
252 | (_rhs let c = _rhs (fromInt 1 :: Word) in c) | 260 | (_rhs let c = _rhs (fromInt 1 :: Word) in c) |
253 | a | 261 | a |
254 | (match'Float | 262 | (match'Float |
255 | (\_ -> _) | 263 | (\(_ :: _) -> _) |
256 | (_rhs let d = _rhs 1.0 in d) | 264 | (_rhs let d = _rhs 1.0 in d) |
257 | a | 265 | a |
258 | (match'VecS | 266 | (match'VecS |
259 | (\_ -> _) | 267 | (\(_ :: _) -> _) |
260 | (\(e :: _) (f :: _) -> match'Float | 268 | (\(e :: _) (f :: _) -> match'Float |
261 | (\_ -> _) | 269 | (\(_ :: _) -> _) |
262 | (case'Nat | 270 | (case'Nat |
263 | (\_ -> _) | 271 | (\(_ :: _) -> _) |
264 | (_rhs undefined) | 272 | (_rhs undefined) |
265 | (\(g :: _) -> case'Nat | 273 | (\(g :: _) -> case'Nat |
266 | (\_ -> _) | 274 | (\(_ :: _) -> _) |
267 | (_rhs undefined) | 275 | (_rhs undefined) |
268 | (\(h :: _) -> case'Nat | 276 | (\(h :: _) -> case'Nat |
269 | (\_ -> _) | 277 | (\(_ :: _) -> _) |
270 | (_rhs let i = _rhs (V2 1.0 1.0) in i) | 278 | (_rhs let i = _rhs (V2 1.0 1.0) in i) |
271 | (\(j :: _) -> case'Nat | 279 | (\(j :: _) -> case'Nat |
272 | (\_ -> _) | 280 | (\(_ :: _) -> _) |
273 | (_rhs let k = _rhs (V3 1.0 1.0 1.0) in k) | 281 | (_rhs let k = _rhs (V3 1.0 1.0 1.0) in k) |
274 | (\(l :: _) -> case'Nat | 282 | (\(l :: _) -> case'Nat |
275 | (\_ -> _) | 283 | (\(_ :: _) -> _) |
276 | (_rhs let m = _rhs (V4 1.0 1.0 1.0 1.0) in m) | 284 | (_rhs let m = _rhs (V4 1.0 1.0 1.0 1.0) in m) |
277 | (\_ -> _rhs undefined) | 285 | (\(_ :: _) -> _rhs undefined) |
278 | l) | 286 | l) |
279 | j) | 287 | j) |
280 | h) | 288 | h) |
@@ -282,23 +290,23 @@ one | |||
282 | f) | 290 | f) |
283 | e | 291 | e |
284 | (match'Bool | 292 | (match'Bool |
285 | (\_ -> _) | 293 | (\(_ :: _) -> _) |
286 | (case'Nat | 294 | (case'Nat |
287 | (\_ -> _) | 295 | (\(_ :: _) -> _) |
288 | (_rhs undefined) | 296 | (_rhs undefined) |
289 | (\(n :: _) -> case'Nat | 297 | (\(n :: _) -> case'Nat |
290 | (\_ -> _) | 298 | (\(_ :: _) -> _) |
291 | (_rhs undefined) | 299 | (_rhs undefined) |
292 | (\(o :: _) -> case'Nat | 300 | (\(o :: _) -> case'Nat |
293 | (\_ -> _) | 301 | (\(_ :: _) -> _) |
294 | (_rhs let p = _rhs (V2 True True) in p) | 302 | (_rhs let p = _rhs (V2 True True) in p) |
295 | (\(q :: _) -> case'Nat | 303 | (\(q :: _) -> case'Nat |
296 | (\_ -> _) | 304 | (\(_ :: _) -> _) |
297 | (_rhs let r = _rhs (V3 True True True) in r) | 305 | (_rhs let r = _rhs (V3 True True True) in r) |
298 | (\(s :: _) -> case'Nat | 306 | (\(s :: _) -> case'Nat |
299 | (\_ -> _) | 307 | (\(_ :: _) -> _) |
300 | (_rhs let t = _rhs (V4 True True True True) in t) | 308 | (_rhs let t = _rhs (V4 True True True True) in t) |
301 | (\_ -> _rhs undefined) | 309 | (\(_ :: _) -> _rhs undefined) |
302 | s) | 310 | s) |
303 | q) | 311 | q) |
304 | o) | 312 | o) |
@@ -307,16 +315,20 @@ one | |||
307 | e | 315 | e |
308 | (_rhs undefined))) | 316 | (_rhs undefined))) |
309 | a | 317 | a |
310 | (match'Bool (\_ -> _) (_rhs let u = _rhs True in u) a (_rhs undefined))))) | 318 | (match'Bool |
319 | (\(_ :: _) -> _) | ||
320 | (_rhs let u = _rhs True in u) | ||
321 | a | ||
322 | (_rhs undefined))))) | ||
311 | 323 | ||
312 | 'Integral :: Type -> Constraint | 324 | 'Integral :: Type -> Constraint |
313 | 'Integral | 325 | 'Integral |
314 | = \(a :: _) -> match'Int | 326 | = \(a :: _) -> match'Int |
315 | (\_ -> _) | 327 | (\(_ :: _) -> _) |
316 | (_rhs 'CUnit) | 328 | (_rhs 'CUnit) |
317 | a | 329 | a |
318 | (match'Word | 330 | (match'Word |
319 | (\_ -> _) | 331 | (\(_ :: _) -> _) |
320 | (_rhs 'CUnit) | 332 | (_rhs 'CUnit) |
321 | a | 333 | a |
322 | (_rhs ('CEmpty "no instance of 'Integral on ???"))) | 334 | (_rhs ('CEmpty "no instance of 'Integral on ???"))) |
@@ -324,29 +336,29 @@ one | |||
324 | 'Floating :: Type -> Constraint | 336 | 'Floating :: Type -> Constraint |
325 | 'Floating | 337 | 'Floating |
326 | = \(a :: _) -> match'Float | 338 | = \(a :: _) -> match'Float |
327 | (\_ -> _) | 339 | (\(_ :: _) -> _) |
328 | (_rhs 'CUnit) | 340 | (_rhs 'CUnit) |
329 | a | 341 | a |
330 | (match'VecS | 342 | (match'VecS |
331 | (\_ -> _) | 343 | (\(_ :: _) -> _) |
332 | (\(b :: _) (c :: _) -> match'Float | 344 | (\(b :: _) (c :: _) -> match'Float |
333 | (\_ -> _) | 345 | (\(_ :: _) -> _) |
334 | (case'Nat | 346 | (case'Nat |
335 | (\_ -> _) | 347 | (\(_ :: _) -> _) |
336 | (_rhs ('CEmpty "no instance of 'Floating on ???")) | 348 | (_rhs ('CEmpty "no instance of 'Floating on ???")) |
337 | (\(d :: _) -> case'Nat | 349 | (\(d :: _) -> case'Nat |
338 | (\_ -> _) | 350 | (\(_ :: _) -> _) |
339 | (_rhs ('CEmpty "no instance of 'Floating on ???")) | 351 | (_rhs ('CEmpty "no instance of 'Floating on ???")) |
340 | (\(e :: _) -> case'Nat | 352 | (\(e :: _) -> case'Nat |
341 | (\_ -> _) | 353 | (\(_ :: _) -> _) |
342 | (_rhs 'CUnit) | 354 | (_rhs 'CUnit) |
343 | (\(f :: _) -> case'Nat | 355 | (\(f :: _) -> case'Nat |
344 | (\_ -> _) | 356 | (\(_ :: _) -> _) |
345 | (_rhs 'CUnit) | 357 | (_rhs 'CUnit) |
346 | (\(g :: _) -> case'Nat | 358 | (\(g :: _) -> case'Nat |
347 | (\_ -> _) | 359 | (\(_ :: _) -> _) |
348 | (_rhs 'CUnit) | 360 | (_rhs 'CUnit) |
349 | (\_ -> _rhs ('CEmpty "no instance of 'Floating on ???")) | 361 | (\(_ :: _) -> _rhs ('CEmpty "no instance of 'Floating on ???")) |
350 | g) | 362 | g) |
351 | f) | 363 | f) |
352 | e) | 364 | e) |
@@ -356,119 +368,119 @@ one | |||
356 | (_rhs ('CEmpty "no instance of 'Floating on ???"))) | 368 | (_rhs ('CEmpty "no instance of 'Floating on ???"))) |
357 | a | 369 | a |
358 | (match'Mat | 370 | (match'Mat |
359 | (\_ -> _) | 371 | (\(_ :: _) -> _) |
360 | (\(h :: _) (i :: _) (j :: _) -> case'Nat | 372 | (\(h :: _) (i :: _) (j :: _) -> case'Nat |
361 | (\_ -> _) | 373 | (\(_ :: _) -> _) |
362 | (_rhs ('CEmpty "no instance of 'Floating on ???")) | 374 | (_rhs ('CEmpty "no instance of 'Floating on ???")) |
363 | (\(k :: _) -> case'Nat | 375 | (\(k :: _) -> case'Nat |
364 | (\_ -> _) | 376 | (\(_ :: _) -> _) |
365 | (_rhs ('CEmpty "no instance of 'Floating on ???")) | 377 | (_rhs ('CEmpty "no instance of 'Floating on ???")) |
366 | (\(l :: _) -> case'Nat | 378 | (\(l :: _) -> case'Nat |
367 | (\_ -> _) | 379 | (\(_ :: _) -> _) |
368 | (case'Nat | 380 | (case'Nat |
369 | (\_ -> _) | 381 | (\(_ :: _) -> _) |
370 | (_rhs ('CEmpty "no instance of 'Floating on ???")) | 382 | (_rhs ('CEmpty "no instance of 'Floating on ???")) |
371 | (\(m :: _) -> case'Nat | 383 | (\(m :: _) -> case'Nat |
372 | (\_ -> _) | 384 | (\(_ :: _) -> _) |
373 | (_rhs ('CEmpty "no instance of 'Floating on ???")) | 385 | (_rhs ('CEmpty "no instance of 'Floating on ???")) |
374 | (\(n :: _) -> case'Nat | 386 | (\(n :: _) -> case'Nat |
375 | (\_ -> _) | 387 | (\(_ :: _) -> _) |
376 | (match'Float | 388 | (match'Float |
377 | (\_ -> _) | 389 | (\(_ :: _) -> _) |
378 | (_rhs 'CUnit) | 390 | (_rhs 'CUnit) |
379 | j | 391 | j |
380 | (_rhs ('CEmpty "no instance of 'Floating on ???"))) | 392 | (_rhs ('CEmpty "no instance of 'Floating on ???"))) |
381 | (\(o :: _) -> case'Nat | 393 | (\(o :: _) -> case'Nat |
382 | (\_ -> _) | 394 | (\(_ :: _) -> _) |
383 | (match'Float | 395 | (match'Float |
384 | (\_ -> _) | 396 | (\(_ :: _) -> _) |
385 | (_rhs 'CUnit) | 397 | (_rhs 'CUnit) |
386 | j | 398 | j |
387 | (_rhs ('CEmpty "no instance of 'Floating on ???"))) | 399 | (_rhs ('CEmpty "no instance of 'Floating on ???"))) |
388 | (\(p :: _) -> case'Nat | 400 | (\(p :: _) -> case'Nat |
389 | (\_ -> _) | 401 | (\(_ :: _) -> _) |
390 | (match'Float | 402 | (match'Float |
391 | (\_ -> _) | 403 | (\(_ :: _) -> _) |
392 | (_rhs 'CUnit) | 404 | (_rhs 'CUnit) |
393 | j | 405 | j |
394 | (_rhs ('CEmpty "no instance of 'Floating on ???"))) | 406 | (_rhs ('CEmpty "no instance of 'Floating on ???"))) |
395 | (\_ -> _rhs ('CEmpty "no instance of 'Floating on ???")) | 407 | (\(_ :: _) -> _rhs ('CEmpty "no instance of 'Floating on ???")) |
396 | p) | 408 | p) |
397 | o) | 409 | o) |
398 | n) | 410 | n) |
399 | m) | 411 | m) |
400 | i) | 412 | i) |
401 | (\(q :: _) -> case'Nat | 413 | (\(q :: _) -> case'Nat |
402 | (\_ -> _) | 414 | (\(_ :: _) -> _) |
403 | (case'Nat | 415 | (case'Nat |
404 | (\_ -> _) | 416 | (\(_ :: _) -> _) |
405 | (_rhs ('CEmpty "no instance of 'Floating on ???")) | 417 | (_rhs ('CEmpty "no instance of 'Floating on ???")) |
406 | (\(r :: _) -> case'Nat | 418 | (\(r :: _) -> case'Nat |
407 | (\_ -> _) | 419 | (\(_ :: _) -> _) |
408 | (_rhs ('CEmpty "no instance of 'Floating on ???")) | 420 | (_rhs ('CEmpty "no instance of 'Floating on ???")) |
409 | (\(s :: _) -> case'Nat | 421 | (\(s :: _) -> case'Nat |
410 | (\_ -> _) | 422 | (\(_ :: _) -> _) |
411 | (match'Float | 423 | (match'Float |
412 | (\_ -> _) | 424 | (\(_ :: _) -> _) |
413 | (_rhs 'CUnit) | 425 | (_rhs 'CUnit) |
414 | j | 426 | j |
415 | (_rhs ('CEmpty "no instance of 'Floating on ???"))) | 427 | (_rhs ('CEmpty "no instance of 'Floating on ???"))) |
416 | (\(t :: _) -> case'Nat | 428 | (\(t :: _) -> case'Nat |
417 | (\_ -> _) | 429 | (\(_ :: _) -> _) |
418 | (match'Float | 430 | (match'Float |
419 | (\_ -> _) | 431 | (\(_ :: _) -> _) |
420 | (_rhs 'CUnit) | 432 | (_rhs 'CUnit) |
421 | j | 433 | j |
422 | (_rhs ('CEmpty "no instance of 'Floating on ???"))) | 434 | (_rhs ('CEmpty "no instance of 'Floating on ???"))) |
423 | (\(u :: _) -> case'Nat | 435 | (\(u :: _) -> case'Nat |
424 | (\_ -> _) | 436 | (\(_ :: _) -> _) |
425 | (match'Float | 437 | (match'Float |
426 | (\_ -> _) | 438 | (\(_ :: _) -> _) |
427 | (_rhs 'CUnit) | 439 | (_rhs 'CUnit) |
428 | j | 440 | j |
429 | (_rhs ('CEmpty "no instance of 'Floating on ???"))) | 441 | (_rhs ('CEmpty "no instance of 'Floating on ???"))) |
430 | (\_ -> _rhs ('CEmpty "no instance of 'Floating on ???")) | 442 | (\(_ :: _) -> _rhs ('CEmpty "no instance of 'Floating on ???")) |
431 | u) | 443 | u) |
432 | t) | 444 | t) |
433 | s) | 445 | s) |
434 | r) | 446 | r) |
435 | i) | 447 | i) |
436 | (\(v :: _) -> case'Nat | 448 | (\(v :: _) -> case'Nat |
437 | (\_ -> _) | 449 | (\(_ :: _) -> _) |
438 | (case'Nat | 450 | (case'Nat |
439 | (\_ -> _) | 451 | (\(_ :: _) -> _) |
440 | (_rhs ('CEmpty "no instance of 'Floating on ???")) | 452 | (_rhs ('CEmpty "no instance of 'Floating on ???")) |
441 | (\(w :: _) -> case'Nat | 453 | (\(w :: _) -> case'Nat |
442 | (\_ -> _) | 454 | (\(_ :: _) -> _) |
443 | (_rhs ('CEmpty "no instance of 'Floating on ???")) | 455 | (_rhs ('CEmpty "no instance of 'Floating on ???")) |
444 | (\(x :: _) -> case'Nat | 456 | (\(x :: _) -> case'Nat |
445 | (\_ -> _) | 457 | (\(_ :: _) -> _) |
446 | (match'Float | 458 | (match'Float |
447 | (\_ -> _) | 459 | (\(_ :: _) -> _) |
448 | (_rhs 'CUnit) | 460 | (_rhs 'CUnit) |
449 | j | 461 | j |
450 | (_rhs ('CEmpty "no instance of 'Floating on ???"))) | 462 | (_rhs ('CEmpty "no instance of 'Floating on ???"))) |
451 | (\(y :: _) -> case'Nat | 463 | (\(y :: _) -> case'Nat |
452 | (\_ -> _) | 464 | (\(_ :: _) -> _) |
453 | (match'Float | 465 | (match'Float |
454 | (\_ -> _) | 466 | (\(_ :: _) -> _) |
455 | (_rhs 'CUnit) | 467 | (_rhs 'CUnit) |
456 | j | 468 | j |
457 | (_rhs ('CEmpty "no instance of 'Floating on ???"))) | 469 | (_rhs ('CEmpty "no instance of 'Floating on ???"))) |
458 | (\(z :: _) -> case'Nat | 470 | (\(z :: _) -> case'Nat |
459 | (\_ -> _) | 471 | (\(_ :: _) -> _) |
460 | (match'Float | 472 | (match'Float |
461 | (\_ -> _) | 473 | (\(_ :: _) -> _) |
462 | (_rhs 'CUnit) | 474 | (_rhs 'CUnit) |
463 | j | 475 | j |
464 | (_rhs ('CEmpty "no instance of 'Floating on ???"))) | 476 | (_rhs ('CEmpty "no instance of 'Floating on ???"))) |
465 | (\_ -> _rhs ('CEmpty "no instance of 'Floating on ???")) | 477 | (\(_ :: _) -> _rhs ('CEmpty "no instance of 'Floating on ???")) |
466 | z) | 478 | z) |
467 | y) | 479 | y) |
468 | x) | 480 | x) |
469 | w) | 481 | w) |
470 | i) | 482 | i) |
471 | (\_ -> _rhs ('CEmpty "no instance of 'Floating on ???")) | 483 | (\(_ :: _) -> _rhs ('CEmpty "no instance of 'Floating on ???")) |
472 | v) | 484 | v) |
473 | q) | 485 | q) |
474 | l) | 486 | l) |
@@ -766,18 +778,22 @@ PrimNoise3 :: forall (a :: _) . VecScalar a Float -> Vec (fromInt 3) Float | |||
766 | PrimNoise4 :: forall (a :: _) . VecScalar a Float -> Vec (fromInt 4) Float | 778 | PrimNoise4 :: forall (a :: _) . VecScalar a Float -> Vec (fromInt 4) Float |
767 | 779 | ||
768 | head | 780 | head |
769 | = \(a :: _) -> case'List (\_ -> _) (_rhs undefined) (\(b :: _) _ -> _rhs b) a | 781 | = \(a :: _) -> case'List |
782 | (\(_ :: _) -> _) | ||
783 | (_rhs undefined) | ||
784 | (\(b :: _) (_ :: _) -> _rhs b) | ||
785 | a | ||
770 | 786 | ||
771 | (++) | 787 | (++) |
772 | = \(a :: _) (b :: _) -> case'List | 788 | = \(a :: _) (b :: _) -> case'List |
773 | (\_ -> _) | 789 | (\(_ :: _) -> _) |
774 | (_rhs b) | 790 | (_rhs b) |
775 | (\(c :: _) (d :: _) -> _rhs (c : d ++ b)) | 791 | (\(c :: _) (d :: _) -> _rhs (c : d ++ b)) |
776 | a | 792 | a |
777 | 793 | ||
778 | foldr | 794 | foldr |
779 | = \(a :: _) (b :: _) (c :: _) -> case'List | 795 | = \(a :: _) (b :: _) (c :: _) -> case'List |
780 | (\_ -> _) | 796 | (\(_ :: _) -> _) |
781 | (_rhs b) | 797 | (_rhs b) |
782 | (\(d :: _) (e :: _) -> _rhs (a d (foldr a b e))) | 798 | (\(d :: _) (e :: _) -> _rhs (a d (foldr a b e))) |
783 | c | 799 | c |
@@ -786,7 +802,7 @@ concat = _rhs (foldr (++) []) | |||
786 | 802 | ||
787 | map | 803 | map |
788 | = \(a :: _) (b :: _) -> case'List | 804 | = \(a :: _) (b :: _) -> case'List |
789 | (\_ -> _) | 805 | (\(_ :: _) -> _) |
790 | (_rhs []) | 806 | (_rhs []) |
791 | (\(c :: _) (d :: _) -> _rhs (a c : map a d)) | 807 | (\(c :: _) (d :: _) -> _rhs (a c : map a d)) |
792 | b | 808 | b |
@@ -796,9 +812,9 @@ concatMap = \(a :: _) (b :: _) -> _rhs (concat (map a b)) | |||
796 | 812 | ||
797 | len | 813 | len |
798 | = \(a :: _) -> case'List | 814 | = \(a :: _) -> case'List |
799 | (\_ -> _) | 815 | (\(_ :: _) -> _) |
800 | (_rhs (fromInt 0)) | 816 | (_rhs (fromInt 0)) |
801 | (\_ (b :: _) -> _rhs (fromInt 1 `primAddInt` len b)) | 817 | (\(_ :: _) (b :: _) -> _rhs (fromInt 1 `primAddInt` len b)) |
802 | a | 818 | a |
803 | 819 | ||
804 | data Maybe (_ :: Type) :: Type where | 820 | data Maybe (_ :: Type) :: Type where |
@@ -832,7 +848,8 @@ mapPrimitives | |||
832 | mapPrimitives = \(a :: _) -> _rhs (map (mapPrimitive a)) | 848 | mapPrimitives = \(a :: _) -> _rhs (map (mapPrimitive a)) |
833 | 849 | ||
834 | 'ListElem :: Type -> Type | 850 | 'ListElem :: Type -> Type |
835 | 'ListElem = \(a :: _) -> match'List (\_ -> _) (\(b :: _) -> _rhs b) a undefined | 851 | 'ListElem |
852 | = \(a :: _) -> match'List (\(_ :: _) -> _) (\(b :: _) -> _rhs b) a undefined | ||
836 | 853 | ||
837 | fetchArrays | 854 | fetchArrays |
838 | :: forall (a :: _) (b :: _) (c :: _) | 855 | :: forall (a :: _) (b :: _) (c :: _) |
@@ -854,10 +871,16 @@ data SimpleFragment (_ :: Type) :: Type where | |||
854 | 'Fragment = \(a :: _) (b :: _) -> _rhs ('Vector a ('Maybe ('SimpleFragment b))) | 871 | 'Fragment = \(a :: _) (b :: _) -> _rhs ('Vector a ('Maybe ('SimpleFragment b))) |
855 | 872 | ||
856 | sFragmentCoords | 873 | sFragmentCoords |
857 | = \(a :: _) -> case'SimpleFragment (\_ -> _) (\(b :: _) _ -> _rhs b) a | 874 | = \(a :: _) -> case'SimpleFragment |
875 | (\(_ :: _) -> _) | ||
876 | (\(b :: _) (_ :: _) -> _rhs b) | ||
877 | a | ||
858 | 878 | ||
859 | sFragmentValue | 879 | sFragmentValue |
860 | = \(a :: _) -> case'SimpleFragment (\_ -> _) (\_ (b :: _) -> _rhs b) a | 880 | = \(a :: _) -> case'SimpleFragment |
881 | (\(_ :: _) -> _) | ||
882 | (\(_ :: _) (b :: _) -> _rhs b) | ||
883 | a | ||
861 | 884 | ||
862 | 'FragmentStream = \(a :: _) (b :: _) -> _rhs ['Fragment a b] | 885 | 'FragmentStream = \(a :: _) (b :: _) -> _rhs ['Fragment a b] |
863 | 886 | ||
@@ -893,7 +916,7 @@ data ImageKind :: Type where | |||
893 | imageType :: ImageKind -> Type | 916 | imageType :: ImageKind -> Type |
894 | imageType | 917 | imageType |
895 | = \(a :: _) -> case'ImageKind | 918 | = \(a :: _) -> case'ImageKind |
896 | (\_ -> _) | 919 | (\(_ :: _) -> _) |
897 | (\(b :: _) -> _rhs b) | 920 | (\(b :: _) -> _rhs b) |
898 | (_rhs 'Float) | 921 | (_rhs 'Float) |
899 | (_rhs 'Int) | 922 | (_rhs 'Int) |
@@ -923,23 +946,23 @@ data Swizz :: Type where | |||
923 | swizzscalar :: forall (a :: _) (b :: _) . Vec b a -> Swizz -> a | 946 | swizzscalar :: forall (a :: _) (b :: _) . Vec b a -> Swizz -> a |
924 | swizzscalar | 947 | swizzscalar |
925 | = \(a :: _) (b :: _) -> case'VecS | 948 | = \(a :: _) (b :: _) -> case'VecS |
926 | (\_ _ -> _) | 949 | (\(_ :: _) (_ :: _) -> _) |
927 | (\(c :: _) (d :: _) -> case'Swizz | 950 | (\(c :: _) (d :: _) -> case'Swizz |
928 | (\_ -> _) | 951 | (\(_ :: _) -> _) |
929 | (_rhs c) | 952 | (_rhs c) |
930 | (_rhs d) | 953 | (_rhs d) |
931 | (_rhs undefined) | 954 | (_rhs undefined) |
932 | (_rhs undefined) | 955 | (_rhs undefined) |
933 | b) | 956 | b) |
934 | (\(e :: _) (f :: _) (g :: _) -> case'Swizz | 957 | (\(e :: _) (f :: _) (g :: _) -> case'Swizz |
935 | (\_ -> _) | 958 | (\(_ :: _) -> _) |
936 | (_rhs e) | 959 | (_rhs e) |
937 | (_rhs f) | 960 | (_rhs f) |
938 | (_rhs g) | 961 | (_rhs g) |
939 | (_rhs undefined) | 962 | (_rhs undefined) |
940 | b) | 963 | b) |
941 | (\(h :: _) (i :: _) (j :: _) (k :: _) -> case'Swizz | 964 | (\(h :: _) (i :: _) (j :: _) (k :: _) -> case'Swizz |
942 | (\_ -> _) | 965 | (\(_ :: _) -> _) |
943 | (_rhs h) | 966 | (_rhs h) |
944 | (_rhs i) | 967 | (_rhs i) |
945 | (_rhs j) | 968 | (_rhs j) |
@@ -950,17 +973,17 @@ swizzscalar | |||
950 | definedVec :: forall (a :: _) (b :: _) . Vec b a -> Bool | 973 | definedVec :: forall (a :: _) (b :: _) . Vec b a -> Bool |
951 | definedVec | 974 | definedVec |
952 | = \(a :: _) -> case'VecS | 975 | = \(a :: _) -> case'VecS |
953 | (\_ _ -> _) | 976 | (\(_ :: _) (_ :: _) -> _) |
954 | (\_ _ -> _rhs True) | 977 | (\(_ :: _) (_ :: _) -> _rhs True) |
955 | (\_ _ _ -> _rhs True) | 978 | (\(_ :: _) (_ :: _) (_ :: _) -> _rhs True) |
956 | (\_ _ _ _ -> _rhs True) | 979 | (\(_ :: _) (_ :: _) (_ :: _) (_ :: _) -> _rhs True) |
957 | a | 980 | a |
958 | 981 | ||
959 | swizzvector | 982 | swizzvector |
960 | :: forall (a :: _) (b :: _) (c :: _) . Vec b a -> Vec c Swizz -> Vec c a | 983 | :: forall (a :: _) (b :: _) (c :: _) . Vec b a -> Vec c Swizz -> Vec c a |
961 | swizzvector | 984 | swizzvector |
962 | = \(a :: _) (b :: _) -> case'Bool | 985 | = \(a :: _) (b :: _) -> case'Bool |
963 | (\_ -> _) | 986 | (\(_ :: _) -> _) |
964 | (_rhs undefined) | 987 | (_rhs undefined) |
965 | (_rhs (mapVec (swizzscalar a) b)) | 988 | (_rhs (mapVec (swizzscalar a) b)) |
966 | (definedVec a) | 989 | (definedVec a) |
@@ -1107,15 +1130,19 @@ rasterizePrimitives | |||
1107 | 1130 | ||
1108 | 'ImageLC :: Type -> Nat | 1131 | 'ImageLC :: Type -> Nat |
1109 | 'ImageLC | 1132 | 'ImageLC |
1110 | = \(a :: _) -> match'Image (\_ -> _) (\(b :: _) _ -> _rhs b) a undefined | 1133 | = \(a :: _) -> match'Image |
1134 | (\(_ :: _) -> _) | ||
1135 | (\(b :: _) (_ :: _) -> _rhs b) | ||
1136 | a | ||
1137 | undefined | ||
1111 | 1138 | ||
1112 | allSame :: forall (a :: _) . [a] -> Constraint | 1139 | allSame :: forall (a :: _) . [a] -> Constraint |
1113 | allSame | 1140 | allSame |
1114 | = \(a :: _) -> case'List | 1141 | = \(a :: _) -> case'List |
1115 | (\_ -> _) | 1142 | (\(_ :: _) -> _) |
1116 | (_rhs 'CUnit) | 1143 | (_rhs 'CUnit) |
1117 | (\(b :: _) (c :: _) -> case'List | 1144 | (\(b :: _) (c :: _) -> case'List |
1118 | (\_ -> _) | 1145 | (\(_ :: _) -> _) |
1119 | (_rhs 'CUnit) | 1146 | (_rhs 'CUnit) |
1120 | (\(d :: _) (e :: _) -> _rhs ('T2 (b `'EqCTt` d) (allSame (d : e)))) | 1147 | (\(d :: _) (e :: _) -> _rhs ('T2 (b `'EqCTt` d) (allSame (d : e)))) |
1121 | c) | 1148 | c) |
@@ -1129,11 +1156,11 @@ data FrameBuffer (_ :: Nat) (_ :: [ImageKind]) :: Type where | |||
1129 | imageType' :: [ImageKind] -> [Type] | 1156 | imageType' :: [ImageKind] -> [Type] |
1130 | imageType' | 1157 | imageType' |
1131 | = \(a :: _) -> case'List | 1158 | = \(a :: _) -> case'List |
1132 | (\_ -> _) | 1159 | (\(_ :: _) -> _) |
1133 | (_rhs (map imageType a)) | 1160 | (_rhs (map imageType a)) |
1134 | (\(b :: _) (c :: _) -> case'ImageKind | 1161 | (\(b :: _) (c :: _) -> case'ImageKind |
1135 | (\_ -> _) | 1162 | (\(_ :: _) -> _) |
1136 | (\_ -> _rhs (map imageType a)) | 1163 | (\(_ :: _) -> _rhs (map imageType a)) |
1137 | (_rhs (map imageType c)) | 1164 | (_rhs (map imageType c)) |
1138 | (_rhs (map imageType a)) | 1165 | (_rhs (map imageType a)) |
1139 | b) | 1166 | b) |
@@ -1142,7 +1169,7 @@ imageType' | |||
1142 | 'FragmentOperationKind :: Type -> ImageKind | 1169 | 'FragmentOperationKind :: Type -> ImageKind |
1143 | 'FragmentOperationKind | 1170 | 'FragmentOperationKind |
1144 | = \(a :: _) -> match'FragmentOperation | 1171 | = \(a :: _) -> match'FragmentOperation |
1145 | (\_ -> _) | 1172 | (\(_ :: _) -> _) |
1146 | (\(b :: _) -> _rhs b) | 1173 | (\(b :: _) -> _rhs b) |
1147 | a | 1174 | a |
1148 | undefined | 1175 | undefined |
@@ -1168,7 +1195,11 @@ infixl 0 overlay | |||
1168 | 1195 | ||
1169 | 'GetImageKind :: Type -> ImageKind | 1196 | 'GetImageKind :: Type -> ImageKind |
1170 | 'GetImageKind | 1197 | 'GetImageKind |
1171 | = \(a :: _) -> match'Image (\_ -> _) (\_ (b :: _) -> _rhs b) a undefined | 1198 | = \(a :: _) -> match'Image |
1199 | (\(_ :: _) -> _) | ||
1200 | (\(_ :: _) (b :: _) -> _rhs b) | ||
1201 | a | ||
1202 | undefined | ||
1172 | 1203 | ||
1173 | FrameBuffer | 1204 | FrameBuffer |
1174 | :: forall (a :: [Type]) | 1205 | :: forall (a :: [Type]) |
@@ -1214,383 +1245,1287 @@ data Sampler :: Type where | |||
1214 | texture2D :: Sampler -> Vec (fromInt 2) Float -> Vec (fromInt 4) Float | 1245 | texture2D :: Sampler -> Vec (fromInt 2) Float -> Vec (fromInt 4) Float |
1215 | 1246 | ||
1216 | accumulationContext = \(a :: _) -> _rhs a | 1247 | accumulationContext = \(a :: _) -> _rhs a |
1217 | ------------ trace | 1248 | ------------ core code |
1218 | id :: forall a . a -> a | 1249 | 'BlendEquation :: Type |
1219 | 'VecS :: Type -> Nat -> Type | 1250 | 'BlendEquation |
1220 | V2 :: forall a . a -> a -> VecS a 2 | 1251 | = <<type constructor with 0 indices; constructors: FuncAdd, FuncSubtract, FuncReverseSubtract, Min, Max>> |
1221 | V3 :: forall a . a -> a -> a -> VecS a 3 | 1252 | |
1222 | V4 :: forall a . a -> a -> a -> a -> VecS a 4 | 1253 | 'Blending :: Type -> Type |
1223 | case'VecS | 1254 | 'Blending |
1224 | :: forall a | 1255 | = <<type constructor with 1 indices; constructors: NoBlending, BlendLogicOp, Blend>> |
1225 | . forall (b :: forall (c :: Nat) -> VecS a c -> Type) | 1256 | |
1226 | -> (forall (d :: a) (e :: a) -> b 2 ('V2 d e)) | 1257 | 'BlendingFactor :: Type |
1227 | -> (forall (f :: a) (g :: a) (h :: a) -> b 3 ('V3 f g h)) | 1258 | 'BlendingFactor |
1228 | -> (forall (i :: a) (j :: a) (k :: a) (l :: a) -> b 4 ('V4 i j k l)) | 1259 | = <<type constructor with 0 indices; constructors: ZeroBF, OneBF, SrcColor, OneMinusSrcColor, DstColor, OneMinusDstColor, SrcAlpha, OneMinusSrcAlpha, DstAlpha, OneMinusDstAlpha, ConstantColor, OneMinusConstantColor, ConstantAlpha, OneMinusConstantAlpha, SrcAlphaSaturate>> |
1229 | -> forall (m :: Nat) . forall (n :: VecS a m) -> b m n | 1260 | |
1230 | match'VecS | 1261 | 'ComparisonFunction :: Type |
1231 | :: forall (a :: Type -> Type) | 1262 | 'ComparisonFunction |
1232 | -> (forall b (c :: Nat) -> a (VecS b c)) -> forall d -> a d -> a d | 1263 | = <<type constructor with 0 indices; constructors: Never, Less, Equal, Lequal, Greater, Notequal, Gequal, Always>> |
1233 | mapVec :: forall a b (c :: Nat) . (a -> b) -> VecS a c -> VecS b c | 1264 | |
1265 | 'Component :: Type -> Constraint | ||
1266 | 'Component | ||
1267 | = \a -> match'Int | ||
1268 | (\_ -> 'Constraint) | ||
1269 | (_rhs CUnit) | ||
1270 | a | ||
1271 | (match'Word | ||
1272 | (\_ -> 'Constraint) | ||
1273 | (_rhs CUnit) | ||
1274 | a | ||
1275 | (match'Float | ||
1276 | (\_ -> 'Constraint) | ||
1277 | (_rhs CUnit) | ||
1278 | a | ||
1279 | (match'VecS | ||
1280 | (\_ -> 'Constraint) | ||
1281 | (\b c -> match'Float | ||
1282 | (\_ -> 'Constraint) | ||
1283 | (case'Nat | ||
1284 | (\_ -> 'Constraint) | ||
1285 | (_rhs (CEmpty "no instance of 'Component on ???")) | ||
1286 | (\d -> case'Nat | ||
1287 | (\_ -> 'Constraint) | ||
1288 | (_rhs (CEmpty "no instance of 'Component on ???")) | ||
1289 | (\e -> case'Nat | ||
1290 | (\_ -> 'Constraint) | ||
1291 | (_rhs CUnit) | ||
1292 | (\f -> case'Nat | ||
1293 | (\_ -> 'Constraint) | ||
1294 | (_rhs CUnit) | ||
1295 | (\g -> case'Nat | ||
1296 | (\_ -> 'Constraint) | ||
1297 | (_rhs CUnit) | ||
1298 | (\_ -> _rhs (CEmpty "no instance of 'Component on ???")) | ||
1299 | g) | ||
1300 | f) | ||
1301 | e) | ||
1302 | d) | ||
1303 | c) | ||
1304 | b | ||
1305 | (match'Bool | ||
1306 | (\_ -> 'Constraint) | ||
1307 | (case'Nat | ||
1308 | (\_ -> 'Constraint) | ||
1309 | (_rhs (CEmpty "no instance of 'Component on ???")) | ||
1310 | (\h -> case'Nat | ||
1311 | (\_ -> 'Constraint) | ||
1312 | (_rhs (CEmpty "no instance of 'Component on ???")) | ||
1313 | (\i -> case'Nat | ||
1314 | (\_ -> 'Constraint) | ||
1315 | (_rhs CUnit) | ||
1316 | (\j -> case'Nat | ||
1317 | (\_ -> 'Constraint) | ||
1318 | (_rhs CUnit) | ||
1319 | (\k -> case'Nat | ||
1320 | (\_ -> 'Constraint) | ||
1321 | (_rhs CUnit) | ||
1322 | (\_ -> _rhs (CEmpty "no instance of 'Component on ???")) | ||
1323 | k) | ||
1324 | j) | ||
1325 | i) | ||
1326 | h) | ||
1327 | c) | ||
1328 | b | ||
1329 | (_rhs (CEmpty "no instance of 'Component on ???")))) | ||
1330 | a | ||
1331 | (match'Bool | ||
1332 | (\_ -> 'Constraint) | ||
1333 | (_rhs CUnit) | ||
1334 | a | ||
1335 | (_rhs (CEmpty "no instance of 'Component on ???")))))) | ||
1336 | |||
1337 | 'CullMode :: Type | ||
1338 | 'CullMode | ||
1339 | = <<type constructor with 0 indices; constructors: CullFront, CullBack, CullNone>> | ||
1340 | |||
1341 | 'EdgeMode :: Type | ||
1342 | 'EdgeMode | ||
1343 | = <<type constructor with 0 indices; constructors: Repeat, MirroredRepeat, ClampToEdge>> | ||
1344 | |||
1345 | 'Filter :: Type | ||
1346 | 'Filter | ||
1347 | = <<type constructor with 0 indices; constructors: PointFilter, LinearFilter>> | ||
1348 | |||
1349 | 'Floating :: Type -> Constraint | ||
1350 | 'Floating | ||
1351 | = \a -> match'Float | ||
1352 | (\_ -> 'Constraint) | ||
1353 | (_rhs CUnit) | ||
1354 | a | ||
1355 | (match'VecS | ||
1356 | (\_ -> 'Constraint) | ||
1357 | (\b c -> match'Float | ||
1358 | (\_ -> 'Constraint) | ||
1359 | (case'Nat | ||
1360 | (\_ -> 'Constraint) | ||
1361 | (_rhs (CEmpty "no instance of 'Floating on ???")) | ||
1362 | (\d -> case'Nat | ||
1363 | (\_ -> 'Constraint) | ||
1364 | (_rhs (CEmpty "no instance of 'Floating on ???")) | ||
1365 | (\e -> case'Nat | ||
1366 | (\_ -> 'Constraint) | ||
1367 | (_rhs CUnit) | ||
1368 | (\f -> case'Nat | ||
1369 | (\_ -> 'Constraint) | ||
1370 | (_rhs CUnit) | ||
1371 | (\g -> case'Nat | ||
1372 | (\_ -> 'Constraint) | ||
1373 | (_rhs CUnit) | ||
1374 | (\_ -> _rhs (CEmpty "no instance of 'Floating on ???")) | ||
1375 | g) | ||
1376 | f) | ||
1377 | e) | ||
1378 | d) | ||
1379 | c) | ||
1380 | b | ||
1381 | (_rhs (CEmpty "no instance of 'Floating on ???"))) | ||
1382 | a | ||
1383 | (match'Mat | ||
1384 | (\_ -> 'Constraint) | ||
1385 | (\h i j -> case'Nat | ||
1386 | (\_ -> 'Constraint) | ||
1387 | (_rhs (CEmpty "no instance of 'Floating on ???")) | ||
1388 | (\k -> case'Nat | ||
1389 | (\_ -> 'Constraint) | ||
1390 | (_rhs (CEmpty "no instance of 'Floating on ???")) | ||
1391 | (\l -> case'Nat | ||
1392 | (\_ -> 'Constraint) | ||
1393 | (case'Nat | ||
1394 | (\_ -> 'Constraint) | ||
1395 | (_rhs (CEmpty "no instance of 'Floating on ???")) | ||
1396 | (\m -> case'Nat | ||
1397 | (\_ -> 'Constraint) | ||
1398 | (_rhs (CEmpty "no instance of 'Floating on ???")) | ||
1399 | (\n -> case'Nat | ||
1400 | (\_ -> 'Constraint) | ||
1401 | (match'Float | ||
1402 | (\_ -> 'Constraint) | ||
1403 | (_rhs CUnit) | ||
1404 | j | ||
1405 | (_rhs (CEmpty "no instance of 'Floating on ???"))) | ||
1406 | (\o -> case'Nat | ||
1407 | (\_ -> 'Constraint) | ||
1408 | (match'Float | ||
1409 | (\_ -> 'Constraint) | ||
1410 | (_rhs CUnit) | ||
1411 | j | ||
1412 | (_rhs (CEmpty "no instance of 'Floating on ???"))) | ||
1413 | (\p -> case'Nat | ||
1414 | (\_ -> 'Constraint) | ||
1415 | (match'Float | ||
1416 | (\_ -> 'Constraint) | ||
1417 | (_rhs CUnit) | ||
1418 | j | ||
1419 | (_rhs (CEmpty "no instance of 'Floating on ???"))) | ||
1420 | (\_ -> _rhs (CEmpty "no instance of 'Floating on ???")) | ||
1421 | p) | ||
1422 | o) | ||
1423 | n) | ||
1424 | m) | ||
1425 | i) | ||
1426 | (\q -> case'Nat | ||
1427 | (\_ -> 'Constraint) | ||
1428 | (case'Nat | ||
1429 | (\_ -> 'Constraint) | ||
1430 | (_rhs (CEmpty "no instance of 'Floating on ???")) | ||
1431 | (\r -> case'Nat | ||
1432 | (\_ -> 'Constraint) | ||
1433 | (_rhs (CEmpty "no instance of 'Floating on ???")) | ||
1434 | (\s -> case'Nat | ||
1435 | (\_ -> 'Constraint) | ||
1436 | (match'Float | ||
1437 | (\_ -> 'Constraint) | ||
1438 | (_rhs CUnit) | ||
1439 | j | ||
1440 | (_rhs (CEmpty "no instance of 'Floating on ???"))) | ||
1441 | (\t -> case'Nat | ||
1442 | (\_ -> 'Constraint) | ||
1443 | (match'Float | ||
1444 | (\_ -> 'Constraint) | ||
1445 | (_rhs CUnit) | ||
1446 | j | ||
1447 | (_rhs (CEmpty "no instance of 'Floating on ???"))) | ||
1448 | (\u -> case'Nat | ||
1449 | (\_ -> 'Constraint) | ||
1450 | (match'Float | ||
1451 | (\_ -> 'Constraint) | ||
1452 | (_rhs CUnit) | ||
1453 | j | ||
1454 | (_rhs (CEmpty "no instance of 'Floating on ???"))) | ||
1455 | (\_ -> _rhs (CEmpty "no instance of 'Floating on ???")) | ||
1456 | u) | ||
1457 | t) | ||
1458 | s) | ||
1459 | r) | ||
1460 | i) | ||
1461 | (\v -> case'Nat | ||
1462 | (\_ -> 'Constraint) | ||
1463 | (case'Nat | ||
1464 | (\_ -> 'Constraint) | ||
1465 | (_rhs (CEmpty "no instance of 'Floating on ???")) | ||
1466 | (\w -> case'Nat | ||
1467 | (\_ -> 'Constraint) | ||
1468 | (_rhs (CEmpty "no instance of 'Floating on ???")) | ||
1469 | (\x -> case'Nat | ||
1470 | (\_ -> 'Constraint) | ||
1471 | (match'Float | ||
1472 | (\_ -> 'Constraint) | ||
1473 | (_rhs CUnit) | ||
1474 | j | ||
1475 | (_rhs (CEmpty "no instance of 'Floating on ???"))) | ||
1476 | (\y -> case'Nat | ||
1477 | (\_ -> 'Constraint) | ||
1478 | (match'Float | ||
1479 | (\_ -> 'Constraint) | ||
1480 | (_rhs CUnit) | ||
1481 | j | ||
1482 | (_rhs (CEmpty "no instance of 'Floating on ???"))) | ||
1483 | (\z -> case'Nat | ||
1484 | (\_ -> 'Constraint) | ||
1485 | (match'Float | ||
1486 | (\_ -> 'Constraint) | ||
1487 | (_rhs CUnit) | ||
1488 | j | ||
1489 | (_rhs (CEmpty "no instance of 'Floating on ???"))) | ||
1490 | (\_ -> _rhs (CEmpty "no instance of 'Floating on ???")) | ||
1491 | z) | ||
1492 | y) | ||
1493 | x) | ||
1494 | w) | ||
1495 | i) | ||
1496 | (\_ -> _rhs (CEmpty "no instance of 'Floating on ???")) | ||
1497 | v) | ||
1498 | q) | ||
1499 | l) | ||
1500 | k) | ||
1501 | h) | ||
1502 | a | ||
1503 | (_rhs (CEmpty "no instance of 'Floating on ???")))) | ||
1504 | |||
1505 | 'Fragment :: Nat -> Type -> Type | ||
1506 | 'Fragment = \a b -> _rhs ('Vector a ('Maybe ('SimpleFragment b))) | ||
1507 | |||
1508 | 'FragmentOperation :: ImageKind -> Type | ||
1509 | 'FragmentOperation | ||
1510 | = <<type constructor with 1 indices; constructors: ColorOp, DepthOp, StencilOp>> | ||
1511 | |||
1512 | 'FragmentOperationKind :: Type -> ImageKind | ||
1513 | 'FragmentOperationKind | ||
1514 | = \a -> match'FragmentOperation | ||
1515 | (\_ -> 'ImageKind) | ||
1516 | (\b -> _rhs b) | ||
1517 | a | ||
1518 | (undefined 'ImageKind) | ||
1519 | |||
1520 | 'FragmentStream :: Nat -> Type -> Type | ||
1521 | 'FragmentStream = \a b -> _rhs ['Vector a ('Maybe ('SimpleFragment b))] | ||
1522 | |||
1523 | 'FrameBuffer :: Nat -> [ImageKind] -> Type | ||
1524 | 'FrameBuffer = <<type constructor with 0 indices; constructors: >> | ||
1525 | |||
1526 | 'GetImageKind :: Type -> ImageKind | ||
1527 | 'GetImageKind | ||
1528 | = \a -> match'Image (\_ -> 'ImageKind) (\_ b -> _rhs b) a (undefined 'ImageKind) | ||
1529 | |||
1530 | 'Image :: Nat -> ImageKind -> Type | ||
1531 | 'Image = <<type constructor with 0 indices; constructors: >> | ||
1532 | |||
1533 | 'ImageKind :: Type | ||
1534 | 'ImageKind | ||
1535 | = <<type constructor with 0 indices; constructors: Color, Depth, Stencil>> | ||
1536 | |||
1537 | 'ImageLC :: Type -> Nat | ||
1538 | 'ImageLC = \a -> match'Image (\_ -> 'Nat) (\b _ -> _rhs b) a (undefined 'Nat) | ||
1539 | |||
1540 | 'Integral :: Type -> Constraint | ||
1541 | 'Integral | ||
1542 | = \a -> match'Int | ||
1543 | (\_ -> 'Constraint) | ||
1544 | (_rhs CUnit) | ||
1545 | a | ||
1546 | (match'Word | ||
1547 | (\_ -> 'Constraint) | ||
1548 | (_rhs CUnit) | ||
1549 | a | ||
1550 | (_rhs (CEmpty "no instance of 'Integral on ???"))) | ||
1551 | |||
1552 | 'Interpolated :: Type -> Type | ||
1553 | 'Interpolated | ||
1554 | = <<type constructor with 0 indices; constructors: Smooth, NoPerspective, Flat>> | ||
1555 | |||
1556 | 'ListElem :: Type -> Type | ||
1557 | 'ListElem = \a -> match'List (\_ -> Type) (\b -> _rhs b) a (undefined Type) | ||
1558 | |||
1559 | 'LogicOperation :: Type | ||
1560 | 'LogicOperation | ||
1561 | = <<type constructor with 0 indices; constructors: Clear, And, AndReverse, Copy, AndInverted, Noop, Xor, Or, Nor, Equiv, Invert, OrReverse, CopyInverted, OrInverted, Nand, Set>> | ||
1562 | |||
1563 | 'Mat :: Nat -> Nat -> Type -> Type | ||
1564 | 'Mat | ||
1565 | = <<type constructor with 3 indices; constructors: M22F, M32F, M42F, M23F, M33F, M43F, M24F, M34F, M44F>> | ||
1566 | |||
1567 | 'MatVecScalarElem :: Type -> Type | ||
1568 | 'MatVecScalarElem | ||
1569 | = \a -> match'Float | ||
1570 | (\_ -> Type) | ||
1571 | (_rhs 'Float) | ||
1572 | a | ||
1573 | (match'Bool | ||
1574 | (\_ -> Type) | ||
1575 | (_rhs 'Bool) | ||
1576 | a | ||
1577 | (match'Int | ||
1578 | (\_ -> Type) | ||
1579 | (_rhs 'Int) | ||
1580 | a | ||
1581 | (match'VecS | ||
1582 | (\_ -> Type) | ||
1583 | (\b _ -> _rhs b) | ||
1584 | a | ||
1585 | (match'Mat (\_ -> Type) (\_ _ c -> _rhs c) a (undefined Type))))) | ||
1586 | |||
1587 | 'Maybe :: Type -> Type | ||
1588 | 'Maybe = <<type constructor with 0 indices; constructors: Nothing, Just>> | ||
1589 | |||
1590 | 'Output :: Type | ||
1591 | 'Output = <<type constructor with 0 indices; constructors: ScreenOut>> | ||
1592 | |||
1593 | 'PointSize :: Type -> Type | ||
1594 | 'PointSize | ||
1595 | = <<type constructor with 0 indices; constructors: PointSize, ProgramPointSize>> | ||
1596 | |||
1597 | 'PointSpriteCoordOrigin :: Type | ||
1598 | 'PointSpriteCoordOrigin | ||
1599 | = <<type constructor with 0 indices; constructors: LowerLeft, UpperLeft>> | ||
1600 | |||
1601 | 'PolygonMode :: Type -> Type | ||
1602 | 'PolygonMode | ||
1603 | = <<type constructor with 0 indices; constructors: PolygonFill, PolygonPoint, PolygonLine>> | ||
1604 | |||
1605 | 'PolygonOffset :: Type | ||
1606 | 'PolygonOffset | ||
1607 | = <<type constructor with 0 indices; constructors: NoOffset, Offset>> | ||
1608 | |||
1609 | 'Primitive :: Type -> PrimitiveType -> Type | ||
1610 | 'Primitive | ||
1611 | = <<type constructor with 1 indices; constructors: PrimPoint, PrimLine, PrimTriangle>> | ||
1612 | |||
1613 | 'PrimitiveStream :: PrimitiveType -> Type -> Type | ||
1614 | 'PrimitiveStream = \a b -> _rhs ['Primitive b a] | ||
1615 | |||
1616 | 'PrimitiveType :: Type | ||
1617 | 'PrimitiveType | ||
1618 | = <<type constructor with 0 indices; constructors: Triangle, Line, Point, TriangleAdjacency, LineAdjacency>> | ||
1619 | |||
1620 | 'ProvokingVertex :: Type | ||
1621 | 'ProvokingVertex | ||
1622 | = <<type constructor with 0 indices; constructors: LastVertex, FirstVertex>> | ||
1623 | |||
1624 | 'RasterContext :: Type -> PrimitiveType -> Type | ||
1625 | 'RasterContext | ||
1626 | = <<type constructor with 1 indices; constructors: TriangleCtx, PointCtx, LineCtx>> | ||
1627 | |||
1628 | 'Sampler :: Type | ||
1629 | 'Sampler = <<type constructor with 0 indices; constructors: Sampler>> | ||
1630 | |||
1631 | 'Signed :: Type -> Constraint | ||
1632 | 'Signed | ||
1633 | = \a -> match'Int | ||
1634 | (\_ -> 'Constraint) | ||
1635 | (_rhs CUnit) | ||
1636 | a | ||
1637 | (match'Float | ||
1638 | (\_ -> 'Constraint) | ||
1639 | (_rhs CUnit) | ||
1640 | a | ||
1641 | (_rhs (CEmpty "no instance of 'Signed on ???"))) | ||
1642 | |||
1643 | 'SimpleFragment :: Type -> Type | ||
1644 | 'SimpleFragment | ||
1645 | = <<type constructor with 0 indices; constructors: SimpleFragment>> | ||
1646 | |||
1647 | 'StencilOperation :: Type | ||
1648 | 'StencilOperation | ||
1649 | = <<type constructor with 0 indices; constructors: OpZero, OpKeep, OpReplace, OpIncr, OpIncrWrap, OpDecr, OpDecrWrap, OpInvert>> | ||
1650 | |||
1651 | 'StencilOps :: Type | ||
1652 | 'StencilOps = <<type constructor with 0 indices; constructors: >> | ||
1653 | |||
1654 | 'StencilTests :: Type | ||
1655 | 'StencilTests = <<type constructor with 0 indices; constructors: >> | ||
1656 | |||
1657 | 'Swizz :: Type | ||
1658 | 'Swizz = <<type constructor with 0 indices; constructors: Sx, Sy, Sz, Sw>> | ||
1659 | |||
1660 | 'Texture :: Type | ||
1661 | 'Texture | ||
1662 | = <<type constructor with 0 indices; constructors: Texture2DSlot, Texture2D>> | ||
1663 | |||
1234 | 'Vec :: Nat -> Type -> Type | 1664 | 'Vec :: Nat -> Type -> Type |
1665 | 'Vec = \a b -> _rhs ('VecS b a) | ||
1666 | |||
1667 | 'VecS :: Type -> Nat -> Type | ||
1668 | 'VecS = <<type constructor with 1 indices; constructors: V2, V3, V4>> | ||
1669 | |||
1235 | 'VecScalar :: Nat -> Type -> Type | 1670 | 'VecScalar :: Nat -> Type -> Type |
1236 | 'Mat :: Nat -> Nat -> Type -> Type | 1671 | 'VecScalar |
1672 | = \a b -> case'Nat | ||
1673 | (\_ -> Type) | ||
1674 | (undefined Type) | ||
1675 | (\c -> case'Nat (\_ -> Type) (_rhs b) (\d -> _rhs ('VecS b (Succ (Succ d)))) c) | ||
1676 | a | ||
1677 | |||
1678 | 'Vector :: Nat -> Type -> Type | ||
1679 | 'Vector = <<type constructor with 0 indices; constructors: >> | ||
1680 | |||
1681 | ++ :: forall a . [a] -> [a] -> [a] | ||
1682 | ++ | ||
1683 | = \a -> primFix | ||
1684 | ([a] -> [a] -> [a]) | ||
1685 | \b c d -> case'List (\_ -> [a]) (_rhs d) (\e f -> _rhs (e : b f d)) c | ||
1686 | |||
1687 | Accumulate | ||
1688 | :: forall (a :: [ImageKind]) (b :: Nat) (c :: [Type]) | ||
1689 | . (a ~ (map Type ImageKind FragmentOperationKind c :: [ImageKind])) | ||
1690 | => HList c | ||
1691 | -> FragmentStream b (HList (imageType' a)) -> FrameBuffer b a -> FrameBuffer b a | ||
1692 | Accumulate = \a b c d e f g -> <<builtin>> | ||
1693 | |||
1694 | Always :: ComparisonFunction | ||
1695 | Always = <<7th constructor of 'ComparisonFunction>> | ||
1696 | |||
1697 | And :: LogicOperation | ||
1698 | And = <<1st constructor of 'LogicOperation>> | ||
1699 | |||
1700 | AndInverted :: LogicOperation | ||
1701 | AndInverted = <<4th constructor of 'LogicOperation>> | ||
1702 | |||
1703 | AndReverse :: LogicOperation | ||
1704 | AndReverse = <<2nd constructor of 'LogicOperation>> | ||
1705 | |||
1706 | Attribute :: forall a . String -> a | ||
1707 | Attribute = \a b -> <<builtin>> | ||
1708 | |||
1709 | Blend | ||
1710 | :: (BlendEquation, BlendEquation) | ||
1711 | -> ((BlendingFactor, BlendingFactor), (BlendingFactor, BlendingFactor)) | ||
1712 | -> Vec 4 Float -> Blending Float | ||
1713 | Blend = <<2nd constructor of 'Blending>> | ||
1714 | |||
1715 | BlendLogicOp :: forall a . Integral a => LogicOperation -> Blending a | ||
1716 | BlendLogicOp = <<1st constructor of 'Blending>> | ||
1717 | |||
1718 | ClampToEdge :: EdgeMode | ||
1719 | ClampToEdge = <<2nd constructor of 'EdgeMode>> | ||
1720 | |||
1721 | Clear :: LogicOperation | ||
1722 | Clear = <<0th constructor of 'LogicOperation>> | ||
1723 | |||
1724 | Color :: Type -> ImageKind | ||
1725 | Color = <<0th constructor of 'ImageKind>> | ||
1726 | |||
1727 | ColorImage | ||
1728 | :: forall (a :: Nat) (b :: Nat) c d | ||
1729 | . (Num c, d ~ VecScalar b c) => d -> Image a ('Color d) | ||
1730 | ColorImage = \a b c d e f g -> <<builtin>> | ||
1731 | |||
1732 | ColorOp | ||
1733 | :: forall a (b :: Nat) | ||
1734 | . Num a | ||
1735 | => Blending a -> VecScalar b Bool -> FragmentOperation ('Color (VecScalar b a)) | ||
1736 | ColorOp = <<0th constructor of 'FragmentOperation>> | ||
1737 | |||
1738 | ConstantAlpha :: BlendingFactor | ||
1739 | ConstantAlpha = <<12th constructor of 'BlendingFactor>> | ||
1740 | |||
1741 | ConstantColor :: BlendingFactor | ||
1742 | ConstantColor = <<10th constructor of 'BlendingFactor>> | ||
1743 | |||
1744 | Copy :: LogicOperation | ||
1745 | Copy = <<3rd constructor of 'LogicOperation>> | ||
1746 | |||
1747 | CopyInverted :: LogicOperation | ||
1748 | CopyInverted = <<12th constructor of 'LogicOperation>> | ||
1749 | |||
1750 | CullBack :: CullMode | ||
1751 | CullBack = <<1st constructor of 'CullMode>> | ||
1752 | |||
1753 | CullFront :: CullMode | ||
1754 | CullFront = <<0th constructor of 'CullMode>> | ||
1755 | |||
1756 | CullNone :: CullMode | ||
1757 | CullNone = <<2nd constructor of 'CullMode>> | ||
1758 | |||
1759 | Depth :: ImageKind | ||
1760 | Depth = <<1st constructor of 'ImageKind>> | ||
1761 | |||
1762 | DepthImage :: forall (a :: Nat) . Float -> Image a 'Depth | ||
1763 | DepthImage = \a b -> <<builtin>> | ||
1764 | |||
1765 | DepthOp :: ComparisonFunction -> Bool -> FragmentOperation 'Depth | ||
1766 | DepthOp = <<1st constructor of 'FragmentOperation>> | ||
1767 | |||
1768 | DstAlpha :: BlendingFactor | ||
1769 | DstAlpha = <<8th constructor of 'BlendingFactor>> | ||
1770 | |||
1771 | DstColor :: BlendingFactor | ||
1772 | DstColor = <<4th constructor of 'BlendingFactor>> | ||
1773 | |||
1774 | Equal :: ComparisonFunction | ||
1775 | Equal = <<2nd constructor of 'ComparisonFunction>> | ||
1776 | |||
1777 | Equiv :: LogicOperation | ||
1778 | Equiv = <<9th constructor of 'LogicOperation>> | ||
1779 | |||
1780 | FirstVertex :: ProvokingVertex | ||
1781 | FirstVertex = <<1st constructor of 'ProvokingVertex>> | ||
1782 | |||
1783 | Flat :: forall a . Interpolated a | ||
1784 | Flat = <<2nd constructor of 'Interpolated>> | ||
1785 | |||
1786 | FrameBuffer | ||
1787 | :: forall (a :: [Type]) | ||
1788 | . sameLayerCounts a | ||
1789 | => HList a | ||
1790 | -> FrameBuffer (ImageLC (head Type a)) (map Type ImageKind GetImageKind a) | ||
1791 | FrameBuffer = \a b c -> <<builtin>> | ||
1792 | |||
1793 | FuncAdd :: BlendEquation | ||
1794 | FuncAdd = <<0th constructor of 'BlendEquation>> | ||
1795 | |||
1796 | FuncReverseSubtract :: BlendEquation | ||
1797 | FuncReverseSubtract = <<2nd constructor of 'BlendEquation>> | ||
1798 | |||
1799 | FuncSubtract :: BlendEquation | ||
1800 | FuncSubtract = <<1st constructor of 'BlendEquation>> | ||
1801 | |||
1802 | Gequal :: ComparisonFunction | ||
1803 | Gequal = <<6th constructor of 'ComparisonFunction>> | ||
1804 | |||
1805 | Greater :: ComparisonFunction | ||
1806 | Greater = <<4th constructor of 'ComparisonFunction>> | ||
1807 | |||
1808 | Invert :: LogicOperation | ||
1809 | Invert = <<10th constructor of 'LogicOperation>> | ||
1810 | |||
1811 | Just :: forall a . a -> Maybe a | ||
1812 | Just = <<1st constructor of 'Maybe>> | ||
1813 | |||
1814 | LastVertex :: ProvokingVertex | ||
1815 | LastVertex = <<0th constructor of 'ProvokingVertex>> | ||
1816 | |||
1817 | Lequal :: ComparisonFunction | ||
1818 | Lequal = <<3rd constructor of 'ComparisonFunction>> | ||
1819 | |||
1820 | Less :: ComparisonFunction | ||
1821 | Less = <<1st constructor of 'ComparisonFunction>> | ||
1822 | |||
1823 | Line :: PrimitiveType | ||
1824 | Line = <<1st constructor of 'PrimitiveType>> | ||
1825 | |||
1826 | LineAdjacency :: PrimitiveType | ||
1827 | LineAdjacency = <<4th constructor of 'PrimitiveType>> | ||
1828 | |||
1829 | LineCtx :: forall a . Float -> ProvokingVertex -> RasterContext a 'Line | ||
1830 | LineCtx = <<2nd constructor of 'RasterContext>> | ||
1831 | |||
1832 | LinearFilter :: Filter | ||
1833 | LinearFilter = <<1st constructor of 'Filter>> | ||
1834 | |||
1835 | LowerLeft :: PointSpriteCoordOrigin | ||
1836 | LowerLeft = <<0th constructor of 'PointSpriteCoordOrigin>> | ||
1837 | |||
1237 | M22F :: Vec 2 Float -> Vec 2 Float -> Mat 2 2 Float | 1838 | M22F :: Vec 2 Float -> Vec 2 Float -> Mat 2 2 Float |
1238 | M32F :: Vec 3 Float -> Vec 3 Float -> Mat 3 2 Float | 1839 | M22F = <<0th constructor of 'Mat>> |
1239 | M42F :: Vec 4 Float -> Vec 4 Float -> Mat 4 2 Float | 1840 | |
1240 | M23F :: Vec 2 Float -> Vec 2 Float -> Vec 2 Float -> Mat 2 3 Float | 1841 | M23F :: Vec 2 Float -> Vec 2 Float -> Vec 2 Float -> Mat 2 3 Float |
1241 | M33F :: Vec 3 Float -> Vec 3 Float -> Vec 3 Float -> Mat 3 3 Float | 1842 | M23F = <<3rd constructor of 'Mat>> |
1242 | M43F :: Vec 4 Float -> Vec 4 Float -> Vec 4 Float -> Mat 4 3 Float | 1843 | |
1243 | M24F | 1844 | M24F |
1244 | :: Vec 2 Float -> Vec 2 Float -> Vec 2 Float -> Vec 2 Float -> Mat 2 4 Float | 1845 | :: Vec 2 Float -> Vec 2 Float -> Vec 2 Float -> Vec 2 Float -> Mat 2 4 Float |
1846 | M24F = <<6th constructor of 'Mat>> | ||
1847 | |||
1848 | M32F :: Vec 3 Float -> Vec 3 Float -> Mat 3 2 Float | ||
1849 | M32F = <<1st constructor of 'Mat>> | ||
1850 | |||
1851 | M33F :: Vec 3 Float -> Vec 3 Float -> Vec 3 Float -> Mat 3 3 Float | ||
1852 | M33F = <<4th constructor of 'Mat>> | ||
1853 | |||
1245 | M34F | 1854 | M34F |
1246 | :: Vec 3 Float -> Vec 3 Float -> Vec 3 Float -> Vec 3 Float -> Mat 3 4 Float | 1855 | :: Vec 3 Float -> Vec 3 Float -> Vec 3 Float -> Vec 3 Float -> Mat 3 4 Float |
1856 | M34F = <<7th constructor of 'Mat>> | ||
1857 | |||
1858 | M42F :: Vec 4 Float -> Vec 4 Float -> Mat 4 2 Float | ||
1859 | M42F = <<2nd constructor of 'Mat>> | ||
1860 | |||
1861 | M43F :: Vec 4 Float -> Vec 4 Float -> Vec 4 Float -> Mat 4 3 Float | ||
1862 | M43F = <<5th constructor of 'Mat>> | ||
1863 | |||
1247 | M44F | 1864 | M44F |
1248 | :: Vec 4 Float -> Vec 4 Float -> Vec 4 Float -> Vec 4 Float -> Mat 4 4 Float | 1865 | :: Vec 4 Float -> Vec 4 Float -> Vec 4 Float -> Vec 4 Float -> Mat 4 4 Float |
1249 | case'Mat | 1866 | M44F = <<8th constructor of 'Mat>> |
1250 | :: forall (a :: forall (b :: Nat) (c :: Nat) d -> Mat b c d -> Type) | 1867 | |
1251 | -> (forall (e :: Vec 2 Float) (f :: Vec 2 Float) -> a 2 2 Float ('M22F e f)) | 1868 | Max :: BlendEquation |
1252 | -> (forall (g :: Vec 3 Float) (h :: Vec 3 Float) -> a 3 2 Float ('M32F g h)) | 1869 | Max = <<4th constructor of 'BlendEquation>> |
1253 | -> (forall (i :: Vec 4 Float) (j :: Vec 4 Float) -> a 4 2 Float ('M42F i j)) | 1870 | |
1254 | -> (forall (k :: Vec 2 Float) (l :: Vec 2 Float) (m :: Vec 2 Float) | 1871 | Min :: BlendEquation |
1255 | -> a 2 3 Float ('M23F k l m)) | 1872 | Min = <<3rd constructor of 'BlendEquation>> |
1256 | -> (forall (n :: Vec 3 Float) (o :: Vec 3 Float) (p :: Vec 3 Float) | 1873 | |
1257 | -> a 3 3 Float ('M33F n o p)) | 1874 | MirroredRepeat :: EdgeMode |
1258 | -> (forall (q :: Vec 4 Float) (r :: Vec 4 Float) (s :: Vec 4 Float) | 1875 | MirroredRepeat = <<1st constructor of 'EdgeMode>> |
1259 | -> a 4 3 Float ('M43F q r s)) | 1876 | |
1260 | -> (forall (t :: Vec 2 Float) | 1877 | Nand :: LogicOperation |
1261 | (u :: Vec 2 Float) (v :: Vec 2 Float) (w :: Vec 2 Float) | 1878 | Nand = <<14th constructor of 'LogicOperation>> |
1262 | -> a 2 4 Float ('M24F t u v w)) | 1879 | |
1263 | -> (forall (x :: Vec 3 Float) | 1880 | Never :: ComparisonFunction |
1264 | (y :: Vec 3 Float) (z :: Vec 3 Float) (a' :: Vec 3 Float) | 1881 | Never = <<0th constructor of 'ComparisonFunction>> |
1265 | -> a 3 4 Float ('M34F x y z a')) | 1882 | |
1266 | -> (forall (b' :: Vec 4 Float) | 1883 | NoBlending :: forall a . Blending a |
1267 | (c' :: Vec 4 Float) (d' :: Vec 4 Float) (e' :: Vec 4 Float) | 1884 | NoBlending = <<0th constructor of 'Blending>> |
1268 | -> a 4 4 Float ('M44F b' c' d' e')) | 1885 | |
1269 | -> forall (f' :: Nat) (g' :: Nat) h' | 1886 | NoOffset :: PolygonOffset |
1270 | . forall (i' :: Mat f' g' h') -> a f' g' h' i' | 1887 | NoOffset = <<0th constructor of 'PolygonOffset>> |
1271 | match'Mat | 1888 | |
1272 | :: forall (a :: Type -> Type) | 1889 | NoPerspective :: forall a . Floating a => Interpolated a |
1273 | -> (forall (b :: Nat) (c :: Nat) d -> a (Mat b c d)) -> forall e -> a e -> a e | 1890 | NoPerspective = <<1st constructor of 'Interpolated>> |
1274 | 'MatVecScalarElem :: Type -> Type | 1891 | |
1275 | 'Signed :: Type -> Constraint | 1892 | Noop :: LogicOperation |
1276 | 'Component :: Type -> Constraint | 1893 | Noop = <<5th constructor of 'LogicOperation>> |
1277 | zero :: forall a . Component a => a | 1894 | |
1278 | one :: forall a . Component a => a | 1895 | Nor :: LogicOperation |
1279 | 'Integral :: Type -> Constraint | 1896 | Nor = <<8th constructor of 'LogicOperation>> |
1280 | 'Floating :: Type -> Constraint | 1897 | |
1898 | Notequal :: ComparisonFunction | ||
1899 | Notequal = <<5th constructor of 'ComparisonFunction>> | ||
1900 | |||
1901 | Nothing :: forall a . Maybe a | ||
1902 | Nothing = <<0th constructor of 'Maybe>> | ||
1903 | |||
1904 | Offset :: Float -> Float -> PolygonOffset | ||
1905 | Offset = <<1st constructor of 'PolygonOffset>> | ||
1906 | |||
1907 | OneBF :: BlendingFactor | ||
1908 | OneBF = <<1st constructor of 'BlendingFactor>> | ||
1909 | |||
1910 | OneMinusConstantAlpha :: BlendingFactor | ||
1911 | OneMinusConstantAlpha = <<13th constructor of 'BlendingFactor>> | ||
1912 | |||
1913 | OneMinusConstantColor :: BlendingFactor | ||
1914 | OneMinusConstantColor = <<11th constructor of 'BlendingFactor>> | ||
1915 | |||
1916 | OneMinusDstAlpha :: BlendingFactor | ||
1917 | OneMinusDstAlpha = <<9th constructor of 'BlendingFactor>> | ||
1918 | |||
1919 | OneMinusDstColor :: BlendingFactor | ||
1920 | OneMinusDstColor = <<5th constructor of 'BlendingFactor>> | ||
1921 | |||
1922 | OneMinusSrcAlpha :: BlendingFactor | ||
1923 | OneMinusSrcAlpha = <<7th constructor of 'BlendingFactor>> | ||
1924 | |||
1925 | OneMinusSrcColor :: BlendingFactor | ||
1926 | OneMinusSrcColor = <<3rd constructor of 'BlendingFactor>> | ||
1927 | |||
1928 | OpDecr :: StencilOperation | ||
1929 | OpDecr = <<5th constructor of 'StencilOperation>> | ||
1930 | |||
1931 | OpDecrWrap :: StencilOperation | ||
1932 | OpDecrWrap = <<6th constructor of 'StencilOperation>> | ||
1933 | |||
1934 | OpIncr :: StencilOperation | ||
1935 | OpIncr = <<3rd constructor of 'StencilOperation>> | ||
1936 | |||
1937 | OpIncrWrap :: StencilOperation | ||
1938 | OpIncrWrap = <<4th constructor of 'StencilOperation>> | ||
1939 | |||
1940 | OpInvert :: StencilOperation | ||
1941 | OpInvert = <<7th constructor of 'StencilOperation>> | ||
1942 | |||
1943 | OpKeep :: StencilOperation | ||
1944 | OpKeep = <<1st constructor of 'StencilOperation>> | ||
1945 | |||
1946 | OpReplace :: StencilOperation | ||
1947 | OpReplace = <<2nd constructor of 'StencilOperation>> | ||
1948 | |||
1949 | OpZero :: StencilOperation | ||
1950 | OpZero = <<0th constructor of 'StencilOperation>> | ||
1951 | |||
1952 | Or :: LogicOperation | ||
1953 | Or = <<7th constructor of 'LogicOperation>> | ||
1954 | |||
1955 | OrInverted :: LogicOperation | ||
1956 | OrInverted = <<13th constructor of 'LogicOperation>> | ||
1957 | |||
1958 | OrReverse :: LogicOperation | ||
1959 | OrReverse = <<11th constructor of 'LogicOperation>> | ||
1960 | |||
1961 | Point :: PrimitiveType | ||
1962 | Point = <<2nd constructor of 'PrimitiveType>> | ||
1963 | |||
1964 | PointCtx | ||
1965 | :: forall a | ||
1966 | . PointSize a -> Float -> PointSpriteCoordOrigin -> RasterContext a 'Point | ||
1967 | PointCtx = <<1st constructor of 'RasterContext>> | ||
1968 | |||
1969 | PointFilter :: Filter | ||
1970 | PointFilter = <<0th constructor of 'Filter>> | ||
1971 | |||
1972 | PointSize :: forall a . Float -> PointSize a | ||
1973 | PointSize = <<0th constructor of 'PointSize>> | ||
1974 | |||
1975 | PolygonFill :: forall a . PolygonMode a | ||
1976 | PolygonFill = <<0th constructor of 'PolygonMode>> | ||
1977 | |||
1978 | PolygonLine :: forall a . Float -> PolygonMode a | ||
1979 | PolygonLine = <<2nd constructor of 'PolygonMode>> | ||
1980 | |||
1981 | PolygonPoint :: forall a . PointSize a -> PolygonMode a | ||
1982 | PolygonPoint = <<1st constructor of 'PolygonMode>> | ||
1983 | |||
1984 | PrimACos :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a | ||
1985 | PrimACos = \a b c d -> <<builtin>> | ||
1986 | |||
1987 | PrimACosH :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a | ||
1988 | PrimACosH = \a b c d -> <<builtin>> | ||
1989 | |||
1990 | PrimASin :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a | ||
1991 | PrimASin = \a b c d -> <<builtin>> | ||
1992 | |||
1993 | PrimASinH :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a | ||
1994 | PrimASinH = \a b c d -> <<builtin>> | ||
1995 | |||
1996 | PrimATan :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a | ||
1997 | PrimATan = \a b c d -> <<builtin>> | ||
1998 | |||
1999 | PrimATan2 :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a -> a | ||
2000 | PrimATan2 = \a b c d e -> <<builtin>> | ||
2001 | |||
2002 | PrimATanH :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a | ||
2003 | PrimATanH = \a b c d -> <<builtin>> | ||
2004 | |||
2005 | PrimAbs :: forall a b (c :: Nat) . (Signed a, b ~ VecScalar c a) => b -> b | ||
2006 | PrimAbs = \a b c d e f -> <<builtin>> | ||
2007 | |||
1281 | PrimAdd :: forall a . Num (MatVecScalarElem a) => a -> a -> a | 2008 | PrimAdd :: forall a . Num (MatVecScalarElem a) => a -> a -> a |
1282 | PrimSub :: forall a . Num (MatVecScalarElem a) => a -> a -> a | 2009 | PrimAdd = \a b c d -> <<builtin>> |
1283 | PrimMul :: forall a . Num (MatVecScalarElem a) => a -> a -> a | 2010 | |
1284 | PrimAddS :: forall a b . (a ~ MatVecScalarElem b, Num a) => b -> a -> b | 2011 | PrimAddS :: forall a b . (a ~ MatVecScalarElem b, Num a) => b -> a -> b |
1285 | PrimSubS :: forall a b . (a ~ MatVecScalarElem b, Num a) => b -> a -> b | 2012 | PrimAddS = \a b c d e f -> <<builtin>> |
1286 | PrimMulS :: forall a b . (a ~ MatVecScalarElem b, Num a) => b -> a -> b | 2013 | |
1287 | PrimDiv :: forall a b (c :: Nat) . (Num a, b ~ VecScalar c a) => b -> b -> b | 2014 | PrimAll :: forall (a :: Nat) . VecScalar a Bool -> Bool |
1288 | PrimMod :: forall a b (c :: Nat) . (Num a, b ~ VecScalar c a) => b -> b -> b | 2015 | PrimAll = \a b -> <<builtin>> |
1289 | PrimDivS :: forall a b (c :: Nat) . (Num a, b ~ VecScalar c a) => b -> a -> b | 2016 | |
1290 | PrimModS :: forall a b (c :: Nat) . (Num a, b ~ VecScalar c a) => b -> a -> b | 2017 | PrimAnd :: Bool -> Bool -> Bool |
1291 | PrimNeg :: forall a . Signed (MatVecScalarElem a) => a -> a | 2018 | PrimAnd = \a b -> <<builtin>> |
2019 | |||
2020 | PrimAny :: forall (a :: Nat) . VecScalar a Bool -> Bool | ||
2021 | PrimAny = \a b -> <<builtin>> | ||
2022 | |||
1292 | PrimBAnd | 2023 | PrimBAnd |
1293 | :: forall a b (c :: Nat) . (Integral a, b ~ VecScalar c a) => b -> b -> b | 2024 | :: forall a b (c :: Nat) . (Integral a, b ~ VecScalar c a) => b -> b -> b |
1294 | PrimBOr | 2025 | PrimBAnd = \a b c d e f g -> <<builtin>> |
1295 | :: forall a b (c :: Nat) . (Integral a, b ~ VecScalar c a) => b -> b -> b | 2026 | |
1296 | PrimBXor | ||
1297 | :: forall a b (c :: Nat) . (Integral a, b ~ VecScalar c a) => b -> b -> b | ||
1298 | PrimBAndS | 2027 | PrimBAndS |
1299 | :: forall a b (c :: Nat) . (Integral a, b ~ VecScalar c a) => b -> a -> b | 2028 | :: forall a b (c :: Nat) . (Integral a, b ~ VecScalar c a) => b -> a -> b |
2029 | PrimBAndS = \a b c d e f g -> <<builtin>> | ||
2030 | |||
2031 | PrimBNot :: forall a b (c :: Nat) . (Integral a, b ~ VecScalar c a) => b -> b | ||
2032 | PrimBNot = \a b c d e f -> <<builtin>> | ||
2033 | |||
2034 | PrimBOr | ||
2035 | :: forall a b (c :: Nat) . (Integral a, b ~ VecScalar c a) => b -> b -> b | ||
2036 | PrimBOr = \a b c d e f g -> <<builtin>> | ||
2037 | |||
1300 | PrimBOrS | 2038 | PrimBOrS |
1301 | :: forall a b (c :: Nat) . (Integral a, b ~ VecScalar c a) => b -> a -> b | 2039 | :: forall a b (c :: Nat) . (Integral a, b ~ VecScalar c a) => b -> a -> b |
1302 | PrimBXorS | 2040 | PrimBOrS = \a b c d e f g -> <<builtin>> |
1303 | :: forall a b (c :: Nat) . (Integral a, b ~ VecScalar c a) => b -> a -> b | 2041 | |
1304 | PrimBNot :: forall a b (c :: Nat) . (Integral a, b ~ VecScalar c a) => b -> b | ||
1305 | PrimBShiftL | 2042 | PrimBShiftL |
1306 | :: forall a b (c :: Nat) d | 2043 | :: forall a b (c :: Nat) d |
1307 | . (Integral a, b ~ VecScalar c a, d ~ VecScalar c Word) => b -> d -> b | 2044 | . (Integral a, b ~ VecScalar c a, d ~ VecScalar c Word) => b -> d -> b |
2045 | PrimBShiftL = \a b c d e f g h i -> <<builtin>> | ||
2046 | |||
2047 | PrimBShiftLS | ||
2048 | :: forall a b (c :: Nat) . (Integral a, b ~ VecScalar c a) => b -> Word -> b | ||
2049 | PrimBShiftLS = \a b c d e f g -> <<builtin>> | ||
2050 | |||
1308 | PrimBShiftR | 2051 | PrimBShiftR |
1309 | :: forall a b (c :: Nat) d | 2052 | :: forall a b (c :: Nat) d |
1310 | . (Integral a, b ~ VecScalar c a, d ~ VecScalar c Word) => b -> d -> b | 2053 | . (Integral a, b ~ VecScalar c a, d ~ VecScalar c Word) => b -> d -> b |
1311 | PrimBShiftLS | 2054 | PrimBShiftR = \a b c d e f g h i -> <<builtin>> |
1312 | :: forall a b (c :: Nat) . (Integral a, b ~ VecScalar c a) => b -> Word -> b | 2055 | |
1313 | PrimBShiftRS | 2056 | PrimBShiftRS |
1314 | :: forall a b (c :: Nat) . (Integral a, b ~ VecScalar c a) => b -> Word -> b | 2057 | :: forall a b (c :: Nat) . (Integral a, b ~ VecScalar c a) => b -> Word -> b |
1315 | PrimAnd :: Bool -> Bool -> Bool | 2058 | PrimBShiftRS = \a b c d e f g -> <<builtin>> |
1316 | PrimOr :: Bool -> Bool -> Bool | 2059 | |
1317 | PrimXor :: Bool -> Bool -> Bool | 2060 | PrimBXor |
1318 | PrimNot :: forall a (b :: Nat) . (a ~ VecScalar b Bool) => a -> a | 2061 | :: forall a b (c :: Nat) . (Integral a, b ~ VecScalar c a) => b -> b -> b |
1319 | PrimAny :: forall (a :: Nat) . VecScalar a Bool -> Bool | 2062 | PrimBXor = \a b c d e f g -> <<builtin>> |
1320 | PrimAll :: forall (a :: Nat) . VecScalar a Bool -> Bool | 2063 | |
1321 | PrimACos :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a | 2064 | PrimBXorS |
1322 | PrimACosH :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a | 2065 | :: forall a b (c :: Nat) . (Integral a, b ~ VecScalar c a) => b -> a -> b |
1323 | PrimASin :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a | 2066 | PrimBXorS = \a b c d e f g -> <<builtin>> |
1324 | PrimASinH :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a | 2067 | |
1325 | PrimATan :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a | ||
1326 | PrimATanH :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a | ||
1327 | PrimCos :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a | ||
1328 | PrimCosH :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a | ||
1329 | PrimDegrees :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a | ||
1330 | PrimRadians :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a | ||
1331 | PrimSin :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a | ||
1332 | PrimSinH :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a | ||
1333 | PrimTan :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a | ||
1334 | PrimTanH :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a | ||
1335 | PrimExp :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a | ||
1336 | PrimLog :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a | ||
1337 | PrimExp2 :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a | ||
1338 | PrimLog2 :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a | ||
1339 | PrimSqrt :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a | ||
1340 | PrimInvSqrt :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a | ||
1341 | PrimPow :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a -> a | ||
1342 | PrimATan2 :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a -> a | ||
1343 | PrimFloor :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a | ||
1344 | PrimTrunc :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a | ||
1345 | PrimRound :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a | ||
1346 | PrimRoundEven :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a | ||
1347 | PrimCeil :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a | 2068 | PrimCeil :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a |
1348 | PrimFract :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a | 2069 | PrimCeil = \a b c d -> <<builtin>> |
1349 | PrimMin :: forall a b (c :: Nat) . (Num a, b ~ VecScalar c a) => b -> b -> b | 2070 | |
1350 | PrimMax :: forall a b (c :: Nat) . (Num a, b ~ VecScalar c a) => b -> b -> b | ||
1351 | PrimMinS :: forall a b (c :: Nat) . (Num a, b ~ VecScalar c a) => b -> a -> b | ||
1352 | PrimMaxS :: forall a b (c :: Nat) . (Num a, b ~ VecScalar c a) => b -> a -> b | ||
1353 | PrimIsNan | ||
1354 | :: forall a (b :: Nat) c | ||
1355 | . (a ~ VecScalar b Float, c ~ VecScalar b Bool) => a -> c | ||
1356 | PrimIsInf | ||
1357 | :: forall a (b :: Nat) c | ||
1358 | . (a ~ VecScalar b Float, c ~ VecScalar b Bool) => a -> c | ||
1359 | PrimAbs :: forall a b (c :: Nat) . (Signed a, b ~ VecScalar c a) => b -> b | ||
1360 | PrimSign :: forall a b (c :: Nat) . (Signed a, b ~ VecScalar c a) => b -> b | ||
1361 | PrimModF :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> (a, a) | ||
1362 | PrimClamp | 2071 | PrimClamp |
1363 | :: forall a b (c :: Nat) . (Num a, b ~ VecScalar c a) => b -> b -> b -> b | 2072 | :: forall a b (c :: Nat) . (Num a, b ~ VecScalar c a) => b -> b -> b -> b |
2073 | PrimClamp = \a b c d e f g h -> <<builtin>> | ||
2074 | |||
1364 | PrimClampS | 2075 | PrimClampS |
1365 | :: forall a b (c :: Nat) . (Num a, b ~ VecScalar c a) => b -> a -> a -> b | 2076 | :: forall a b (c :: Nat) . (Num a, b ~ VecScalar c a) => b -> a -> a -> b |
1366 | PrimMix :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a -> a -> a | 2077 | PrimClampS = \a b c d e f g h -> <<builtin>> |
1367 | PrimMixS | 2078 | |
1368 | :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a -> Float -> a | 2079 | PrimCos :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a |
1369 | PrimMixB | 2080 | PrimCos = \a b c d -> <<builtin>> |
1370 | :: forall a (b :: Nat) c | 2081 | |
1371 | . (a ~ VecScalar b Float, c ~ VecScalar b Bool) => a -> a -> c -> a | 2082 | PrimCosH :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a |
1372 | PrimStep :: forall a (b :: Nat) . (a ~ VecS Float b) => a -> a -> a | 2083 | PrimCosH = \a b c d -> <<builtin>> |
1373 | PrimStepS :: forall a (b :: Nat) . (a ~ VecScalar b Float) => Float -> a -> a | 2084 | |
1374 | PrimSmoothStep :: forall a (b :: Nat) . (a ~ VecS Float b) => a -> a -> a -> a | ||
1375 | PrimSmoothStepS | ||
1376 | :: forall a (b :: Nat) . (a ~ VecScalar b Float) => Float -> Float -> a -> a | ||
1377 | PrimFloatBitsToInt :: forall (a :: Nat) . VecScalar a Float -> VecScalar a Int | ||
1378 | PrimFloatBitsToUInt :: forall (a :: Nat) . VecScalar a Float -> VecScalar a Word | ||
1379 | PrimIntBitsToFloat :: forall (a :: Nat) . VecScalar a Int -> VecScalar a Float | ||
1380 | PrimUIntBitsToFloat :: forall (a :: Nat) . VecScalar a Word -> VecScalar a Float | ||
1381 | PrimLength :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> Float | ||
1382 | PrimDistance :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a -> Float | ||
1383 | PrimDot :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a -> Float | ||
1384 | PrimCross :: forall a . (a ~ VecS Float 3) => a -> a -> a | 2085 | PrimCross :: forall a . (a ~ VecS Float 3) => a -> a -> a |
1385 | PrimNormalize :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a | 2086 | PrimCross = \a b c d -> <<builtin>> |
1386 | PrimFaceForward | 2087 | |
1387 | :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a -> a -> a | 2088 | PrimDFdx :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a |
1388 | PrimRefract :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a -> a -> a | 2089 | PrimDFdx = \a b c d -> <<builtin>> |
1389 | PrimReflect :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a -> a | 2090 | |
1390 | PrimTranspose :: forall (a :: Nat) (b :: Nat) c . Mat a b c -> Mat b a c | 2091 | PrimDFdy :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a |
2092 | PrimDFdy = \a b c d -> <<builtin>> | ||
2093 | |||
2094 | PrimDegrees :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a | ||
2095 | PrimDegrees = \a b c d -> <<builtin>> | ||
2096 | |||
1391 | PrimDeterminant :: forall (a :: Nat) b . Mat a a b -> Float | 2097 | PrimDeterminant :: forall (a :: Nat) b . Mat a a b -> Float |
1392 | PrimInverse :: forall (a :: Nat) b . Mat a a b -> Mat a a b | 2098 | PrimDeterminant = \a b c -> <<builtin>> |
1393 | PrimOuterProduct | 2099 | |
1394 | :: forall (a :: Nat) b (c :: Nat) . Vec a b -> Vec c b -> Mat c a b | 2100 | PrimDistance :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a -> Float |
1395 | PrimMulMatVec | 2101 | PrimDistance = \a b c d e -> <<builtin>> |
1396 | :: forall (a :: Nat) (b :: Nat) c . Mat a b c -> Vec b c -> Vec a c | 2102 | |
1397 | PrimMulVecMat | 2103 | PrimDiv :: forall a b (c :: Nat) . (Num a, b ~ VecScalar c a) => b -> b -> b |
1398 | :: forall (a :: Nat) b (c :: Nat) . Vec a b -> Mat a c b -> Vec c b | 2104 | PrimDiv = \a b c d e f g -> <<builtin>> |
1399 | PrimMulMatMat | 2105 | |
1400 | :: forall (a :: Nat) (b :: Nat) c (d :: Nat) | 2106 | PrimDivS :: forall a b (c :: Nat) . (Num a, b ~ VecScalar c a) => b -> a -> b |
1401 | . Mat a b c -> Mat b d c -> Mat a d c | 2107 | PrimDivS = \a b c d e f g -> <<builtin>> |
1402 | PrimLessThan | 2108 | |
1403 | :: forall a (b :: Nat) c d | 2109 | PrimDot :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a -> Float |
1404 | . (Num c, a ~ VecScalar b c, d ~ VecScalar b Bool) => a -> a -> d | 2110 | PrimDot = \a b c d e -> <<builtin>> |
1405 | PrimLessThanEqual | 2111 | |
2112 | PrimEqual :: forall a b . (b ~ MatVecScalarElem a) => a -> a -> Bool | ||
2113 | PrimEqual = \a b c d e -> <<builtin>> | ||
2114 | |||
2115 | PrimEqualV | ||
1406 | :: forall a (b :: Nat) c d | 2116 | :: forall a (b :: Nat) c d |
1407 | . (Num c, a ~ VecScalar b c, d ~ VecScalar b Bool) => a -> a -> d | 2117 | . (Num c, a ~ VecScalar b c, d ~ VecScalar b Bool) => a -> a -> d |
2118 | PrimEqualV = \a b c d e f g h i -> <<builtin>> | ||
2119 | |||
2120 | PrimExp :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a | ||
2121 | PrimExp = \a b c d -> <<builtin>> | ||
2122 | |||
2123 | PrimExp2 :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a | ||
2124 | PrimExp2 = \a b c d -> <<builtin>> | ||
2125 | |||
2126 | PrimFWidth :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a | ||
2127 | PrimFWidth = \a b c d -> <<builtin>> | ||
2128 | |||
2129 | PrimFaceForward | ||
2130 | :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a -> a -> a | ||
2131 | PrimFaceForward = \a b c d e f -> <<builtin>> | ||
2132 | |||
2133 | PrimFloatBitsToInt :: forall (a :: Nat) . VecScalar a Float -> VecScalar a Int | ||
2134 | PrimFloatBitsToInt = \a b -> <<builtin>> | ||
2135 | |||
2136 | PrimFloatBitsToUInt :: forall (a :: Nat) . VecScalar a Float -> VecScalar a Word | ||
2137 | PrimFloatBitsToUInt = \a b -> <<builtin>> | ||
2138 | |||
2139 | PrimFloor :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a | ||
2140 | PrimFloor = \a b c d -> <<builtin>> | ||
2141 | |||
2142 | PrimFract :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a | ||
2143 | PrimFract = \a b c d -> <<builtin>> | ||
2144 | |||
1408 | PrimGreaterThan | 2145 | PrimGreaterThan |
1409 | :: forall a (b :: Nat) c d | 2146 | :: forall a (b :: Nat) c d |
1410 | . (Num c, a ~ VecScalar b c, d ~ VecScalar b Bool) => a -> a -> d | 2147 | . (Num c, a ~ VecScalar b c, d ~ VecScalar b Bool) => a -> a -> d |
2148 | PrimGreaterThan = \a b c d e f g h i -> <<builtin>> | ||
2149 | |||
1411 | PrimGreaterThanEqual | 2150 | PrimGreaterThanEqual |
1412 | :: forall a (b :: Nat) c d | 2151 | :: forall a (b :: Nat) c d |
1413 | . (Num c, a ~ VecScalar b c, d ~ VecScalar b Bool) => a -> a -> d | 2152 | . (Num c, a ~ VecScalar b c, d ~ VecScalar b Bool) => a -> a -> d |
1414 | PrimEqualV | 2153 | PrimGreaterThanEqual = \a b c d e f g h i -> <<builtin>> |
2154 | |||
2155 | PrimIntBitsToFloat :: forall (a :: Nat) . VecScalar a Int -> VecScalar a Float | ||
2156 | PrimIntBitsToFloat = \a b -> <<builtin>> | ||
2157 | |||
2158 | PrimInvSqrt :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a | ||
2159 | PrimInvSqrt = \a b c d -> <<builtin>> | ||
2160 | |||
2161 | PrimInverse :: forall (a :: Nat) b . Mat a a b -> Mat a a b | ||
2162 | PrimInverse = \a b c -> <<builtin>> | ||
2163 | |||
2164 | PrimIsInf | ||
2165 | :: forall a (b :: Nat) c | ||
2166 | . (a ~ VecScalar b Float, c ~ VecScalar b Bool) => a -> c | ||
2167 | PrimIsInf = \a b c d e f -> <<builtin>> | ||
2168 | |||
2169 | PrimIsNan | ||
2170 | :: forall a (b :: Nat) c | ||
2171 | . (a ~ VecScalar b Float, c ~ VecScalar b Bool) => a -> c | ||
2172 | PrimIsNan = \a b c d e f -> <<builtin>> | ||
2173 | |||
2174 | PrimLength :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> Float | ||
2175 | PrimLength = \a b c d -> <<builtin>> | ||
2176 | |||
2177 | PrimLessThan | ||
1415 | :: forall a (b :: Nat) c d | 2178 | :: forall a (b :: Nat) c d |
1416 | . (Num c, a ~ VecScalar b c, d ~ VecScalar b Bool) => a -> a -> d | 2179 | . (Num c, a ~ VecScalar b c, d ~ VecScalar b Bool) => a -> a -> d |
1417 | PrimNotEqualV | 2180 | PrimLessThan = \a b c d e f g h i -> <<builtin>> |
2181 | |||
2182 | PrimLessThanEqual | ||
1418 | :: forall a (b :: Nat) c d | 2183 | :: forall a (b :: Nat) c d |
1419 | . (Num c, a ~ VecScalar b c, d ~ VecScalar b Bool) => a -> a -> d | 2184 | . (Num c, a ~ VecScalar b c, d ~ VecScalar b Bool) => a -> a -> d |
1420 | PrimEqual :: forall a b . (b ~ MatVecScalarElem a) => a -> a -> Bool | 2185 | PrimLessThanEqual = \a b c d e f g h i -> <<builtin>> |
1421 | PrimNotEqual :: forall a b . (b ~ MatVecScalarElem a) => a -> a -> Bool | 2186 | |
1422 | PrimDFdx :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a | 2187 | PrimLine :: forall a . a -> a -> Primitive a 'Line |
1423 | PrimDFdy :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a | 2188 | PrimLine = <<1st constructor of 'Primitive>> |
1424 | PrimFWidth :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a | 2189 | |
2190 | PrimLog :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a | ||
2191 | PrimLog = \a b c d -> <<builtin>> | ||
2192 | |||
2193 | PrimLog2 :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a | ||
2194 | PrimLog2 = \a b c d -> <<builtin>> | ||
2195 | |||
2196 | PrimMax :: forall a b (c :: Nat) . (Num a, b ~ VecScalar c a) => b -> b -> b | ||
2197 | PrimMax = \a b c d e f g -> <<builtin>> | ||
2198 | |||
2199 | PrimMaxS :: forall a b (c :: Nat) . (Num a, b ~ VecScalar c a) => b -> a -> b | ||
2200 | PrimMaxS = \a b c d e f g -> <<builtin>> | ||
2201 | |||
2202 | PrimMin :: forall a b (c :: Nat) . (Num a, b ~ VecScalar c a) => b -> b -> b | ||
2203 | PrimMin = \a b c d e f g -> <<builtin>> | ||
2204 | |||
2205 | PrimMinS :: forall a b (c :: Nat) . (Num a, b ~ VecScalar c a) => b -> a -> b | ||
2206 | PrimMinS = \a b c d e f g -> <<builtin>> | ||
2207 | |||
2208 | PrimMix :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a -> a -> a | ||
2209 | PrimMix = \a b c d e f -> <<builtin>> | ||
2210 | |||
2211 | PrimMixB | ||
2212 | :: forall a (b :: Nat) c | ||
2213 | . (a ~ VecScalar b Float, c ~ VecScalar b Bool) => a -> a -> c -> a | ||
2214 | PrimMixB = \a b c d e f g h -> <<builtin>> | ||
2215 | |||
2216 | PrimMixS | ||
2217 | :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a -> Float -> a | ||
2218 | PrimMixS = \a b c d e f -> <<builtin>> | ||
2219 | |||
2220 | PrimMod :: forall a b (c :: Nat) . (Num a, b ~ VecScalar c a) => b -> b -> b | ||
2221 | PrimMod = \a b c d e f g -> <<builtin>> | ||
2222 | |||
2223 | PrimModF :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> (a, a) | ||
2224 | PrimModF = \a b c d -> <<builtin>> | ||
2225 | |||
2226 | PrimModS :: forall a b (c :: Nat) . (Num a, b ~ VecScalar c a) => b -> a -> b | ||
2227 | PrimModS = \a b c d e f g -> <<builtin>> | ||
2228 | |||
2229 | PrimMul :: forall a . Num (MatVecScalarElem a) => a -> a -> a | ||
2230 | PrimMul = \a b c d -> <<builtin>> | ||
2231 | |||
2232 | PrimMulMatMat | ||
2233 | :: forall (a :: Nat) (b :: Nat) c (d :: Nat) | ||
2234 | . Mat a b c -> Mat b d c -> Mat a d c | ||
2235 | PrimMulMatMat = \a b c d e f -> <<builtin>> | ||
2236 | |||
2237 | PrimMulMatVec | ||
2238 | :: forall (a :: Nat) (b :: Nat) c . Mat a b c -> Vec b c -> Vec a c | ||
2239 | PrimMulMatVec = \a b c d e -> <<builtin>> | ||
2240 | |||
2241 | PrimMulS :: forall a b . (a ~ MatVecScalarElem b, Num a) => b -> a -> b | ||
2242 | PrimMulS = \a b c d e f -> <<builtin>> | ||
2243 | |||
2244 | PrimMulVecMat | ||
2245 | :: forall (a :: Nat) b (c :: Nat) . Vec a b -> Mat a c b -> Vec c b | ||
2246 | PrimMulVecMat = \a b c d e -> <<builtin>> | ||
2247 | |||
2248 | PrimNeg :: forall a . Signed (MatVecScalarElem a) => a -> a | ||
2249 | PrimNeg = \a b c -> <<builtin>> | ||
2250 | |||
1425 | PrimNoise1 :: forall (a :: Nat) . VecScalar a Float -> Float | 2251 | PrimNoise1 :: forall (a :: Nat) . VecScalar a Float -> Float |
2252 | PrimNoise1 = \a b -> <<builtin>> | ||
2253 | |||
1426 | PrimNoise2 :: forall (a :: Nat) . VecScalar a Float -> Vec 2 Float | 2254 | PrimNoise2 :: forall (a :: Nat) . VecScalar a Float -> Vec 2 Float |
2255 | PrimNoise2 = \a b -> <<builtin>> | ||
2256 | |||
1427 | PrimNoise3 :: forall (a :: Nat) . VecScalar a Float -> Vec 3 Float | 2257 | PrimNoise3 :: forall (a :: Nat) . VecScalar a Float -> Vec 3 Float |
2258 | PrimNoise3 = \a b -> <<builtin>> | ||
2259 | |||
1428 | PrimNoise4 :: forall (a :: Nat) . VecScalar a Float -> Vec 4 Float | 2260 | PrimNoise4 :: forall (a :: Nat) . VecScalar a Float -> Vec 4 Float |
1429 | head :: forall a . [a] -> a | 2261 | PrimNoise4 = \a b -> <<builtin>> |
1430 | (++) :: forall a . [a] -> [a] -> [a] | 2262 | |
1431 | foldr :: forall a b . (b -> a -> a) -> a -> [b] -> a | 2263 | PrimNormalize :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a |
1432 | concat :: forall a . [[a]] -> [a] | 2264 | PrimNormalize = \a b c d -> <<builtin>> |
1433 | map :: forall a b . (a -> b) -> [a] -> [b] | 2265 | |
1434 | concatMap :: forall a b . (a -> [b]) -> [a] -> [b] | 2266 | PrimNot :: forall a (b :: Nat) . (a ~ VecScalar b Bool) => a -> a |
1435 | len :: forall a . [a] -> Int | 2267 | PrimNot = \a b c d -> <<builtin>> |
1436 | 'Maybe :: Type -> Type | 2268 | |
1437 | Nothing :: forall a . Maybe a | 2269 | PrimNotEqual :: forall a b . (b ~ MatVecScalarElem a) => a -> a -> Bool |
1438 | Just :: forall a . a -> Maybe a | 2270 | PrimNotEqual = \a b c d e -> <<builtin>> |
1439 | case'Maybe | 2271 | |
1440 | :: forall a | 2272 | PrimNotEqualV |
1441 | . forall (b :: Maybe a -> Type) | 2273 | :: forall a (b :: Nat) c d |
1442 | -> b 'Nothing | 2274 | . (Num c, a ~ VecScalar b c, d ~ VecScalar b Bool) => a -> a -> d |
1443 | -> (forall (c :: a) -> b ('Just c)) -> forall (d :: Maybe a) -> b d | 2275 | PrimNotEqualV = \a b c d e f g h i -> <<builtin>> |
1444 | match'Maybe | 2276 | |
1445 | :: forall (a :: Type -> Type) | 2277 | PrimOr :: Bool -> Bool -> Bool |
1446 | -> (forall b -> a (Maybe b)) -> forall c -> a c -> a c | 2278 | PrimOr = \a b -> <<builtin>> |
1447 | 'Vector :: Nat -> Type -> Type | 2279 | |
1448 | case'Vector | 2280 | PrimOuterProduct |
1449 | :: forall (a :: Nat) b | 2281 | :: forall (a :: Nat) b (c :: Nat) . Vec a b -> Vec c b -> Mat c a b |
1450 | . forall (c :: Vector a b -> Type) (d :: Vector a b) -> c d | 2282 | PrimOuterProduct = \a b c d e -> <<builtin>> |
1451 | match'Vector | 2283 | |
1452 | :: forall (a :: Type -> Type) | ||
1453 | -> (forall (b :: Nat) c -> a (Vector b c)) -> forall d -> a d -> a d | ||
1454 | 'PrimitiveType :: Type | ||
1455 | Triangle :: PrimitiveType | ||
1456 | Line :: PrimitiveType | ||
1457 | Point :: PrimitiveType | ||
1458 | TriangleAdjacency :: PrimitiveType | ||
1459 | LineAdjacency :: PrimitiveType | ||
1460 | case'PrimitiveType | ||
1461 | :: forall (a :: PrimitiveType -> Type) | ||
1462 | -> a 'Triangle | ||
1463 | -> a 'Line | ||
1464 | -> a 'Point | ||
1465 | -> a 'TriangleAdjacency | ||
1466 | -> a 'LineAdjacency -> forall (b :: PrimitiveType) -> a b | ||
1467 | match'PrimitiveType | ||
1468 | :: forall (a :: Type -> Type) -> a PrimitiveType -> forall b -> a b -> a b | ||
1469 | 'Primitive :: Type -> PrimitiveType -> Type | ||
1470 | PrimPoint :: forall a . a -> Primitive a 'Point | 2284 | PrimPoint :: forall a . a -> Primitive a 'Point |
1471 | PrimLine :: forall a . a -> a -> Primitive a 'Line | 2285 | PrimPoint = <<0th constructor of 'Primitive>> |
2286 | |||
2287 | PrimPow :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a -> a | ||
2288 | PrimPow = \a b c d e -> <<builtin>> | ||
2289 | |||
2290 | PrimRadians :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a | ||
2291 | PrimRadians = \a b c d -> <<builtin>> | ||
2292 | |||
2293 | PrimReflect :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a -> a | ||
2294 | PrimReflect = \a b c d e -> <<builtin>> | ||
2295 | |||
2296 | PrimRefract :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a -> a -> a | ||
2297 | PrimRefract = \a b c d e f -> <<builtin>> | ||
2298 | |||
2299 | PrimRound :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a | ||
2300 | PrimRound = \a b c d -> <<builtin>> | ||
2301 | |||
2302 | PrimRoundEven :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a | ||
2303 | PrimRoundEven = \a b c d -> <<builtin>> | ||
2304 | |||
2305 | PrimSign :: forall a b (c :: Nat) . (Signed a, b ~ VecScalar c a) => b -> b | ||
2306 | PrimSign = \a b c d e f -> <<builtin>> | ||
2307 | |||
2308 | PrimSin :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a | ||
2309 | PrimSin = \a b c d -> <<builtin>> | ||
2310 | |||
2311 | PrimSinH :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a | ||
2312 | PrimSinH = \a b c d -> <<builtin>> | ||
2313 | |||
2314 | PrimSmoothStep :: forall a (b :: Nat) . (a ~ VecS Float b) => a -> a -> a -> a | ||
2315 | PrimSmoothStep = \a b c d e f -> <<builtin>> | ||
2316 | |||
2317 | PrimSmoothStepS | ||
2318 | :: forall a (b :: Nat) . (a ~ VecScalar b Float) => Float -> Float -> a -> a | ||
2319 | PrimSmoothStepS = \a b c d e f -> <<builtin>> | ||
2320 | |||
2321 | PrimSqrt :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a | ||
2322 | PrimSqrt = \a b c d -> <<builtin>> | ||
2323 | |||
2324 | PrimStep :: forall a (b :: Nat) . (a ~ VecS Float b) => a -> a -> a | ||
2325 | PrimStep = \a b c d e -> <<builtin>> | ||
2326 | |||
2327 | PrimStepS :: forall a (b :: Nat) . (a ~ VecScalar b Float) => Float -> a -> a | ||
2328 | PrimStepS = \a b c d e -> <<builtin>> | ||
2329 | |||
2330 | PrimSub :: forall a . Num (MatVecScalarElem a) => a -> a -> a | ||
2331 | PrimSub = \a b c d -> <<builtin>> | ||
2332 | |||
2333 | PrimSubS :: forall a b . (a ~ MatVecScalarElem b, Num a) => b -> a -> b | ||
2334 | PrimSubS = \a b c d e f -> <<builtin>> | ||
2335 | |||
2336 | PrimTan :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a | ||
2337 | PrimTan = \a b c d -> <<builtin>> | ||
2338 | |||
2339 | PrimTanH :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a | ||
2340 | PrimTanH = \a b c d -> <<builtin>> | ||
2341 | |||
2342 | PrimTranspose :: forall (a :: Nat) (b :: Nat) c . Mat a b c -> Mat b a c | ||
2343 | PrimTranspose = \a b c d -> <<builtin>> | ||
2344 | |||
1472 | PrimTriangle :: forall a . a -> a -> a -> Primitive a 'Triangle | 2345 | PrimTriangle :: forall a . a -> a -> a -> Primitive a 'Triangle |
1473 | case'Primitive | 2346 | PrimTriangle = <<2nd constructor of 'Primitive>> |
1474 | :: forall a | 2347 | |
1475 | . forall (b :: forall (c :: PrimitiveType) -> Primitive a c -> Type) | 2348 | PrimTrunc :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a |
1476 | -> (forall (d :: a) -> b 'Point ('PrimPoint d)) | 2349 | PrimTrunc = \a b c d -> <<builtin>> |
1477 | -> (forall (e :: a) (f :: a) -> b 'Line ('PrimLine e f)) | 2350 | |
1478 | -> (forall (g :: a) (h :: a) (i :: a) -> b 'Triangle ('PrimTriangle g h i)) | 2351 | PrimUIntBitsToFloat :: forall (a :: Nat) . VecScalar a Word -> VecScalar a Float |
1479 | -> forall (j :: PrimitiveType) . forall (k :: Primitive a j) -> b j k | 2352 | PrimUIntBitsToFloat = \a b -> <<builtin>> |
1480 | match'Primitive | 2353 | |
1481 | :: forall (a :: Type -> Type) | 2354 | PrimXor :: Bool -> Bool -> Bool |
1482 | -> (forall b (c :: PrimitiveType) -> a (Primitive b c)) | 2355 | PrimXor = \a b -> <<builtin>> |
1483 | -> forall d -> a d -> a d | 2356 | |
1484 | mapPrimitive | 2357 | PrjImage :: forall (a :: ImageKind) . FrameBuffer 1 ' [a] -> Image 1 a |
1485 | :: forall a b (c :: PrimitiveType) . (a -> b) -> Primitive a c -> Primitive b c | 2358 | PrjImage = \a b -> <<builtin>> |
1486 | 'PrimitiveStream :: PrimitiveType -> Type -> Type | 2359 | |
1487 | mapPrimitives | 2360 | PrjImageColor |
1488 | :: forall a b (c :: PrimitiveType) | 2361 | :: FrameBuffer 1 ' ['Depth, 'Color (Vec 4 Float)] |
1489 | . (a -> b) -> [Primitive a c] -> [Primitive b c] | 2362 | -> Image 1 ('Color (Vec 4 Float)) |
1490 | 'ListElem :: Type -> Type | 2363 | PrjImageColor = \a -> <<builtin>> |
1491 | fetchArrays | 2364 | |
1492 | :: forall (a :: PrimitiveType) (b :: [Type]) (c :: [Type]) | 2365 | ProgramPointSize :: forall a . (a -> Float) -> PointSize a |
1493 | . (b ~ (map Type Type ListElem c :: [Type])) | 2366 | ProgramPointSize = <<1st constructor of 'PointSize>> |
1494 | => HList c -> PrimitiveStream a (HList b) | 2367 | |
1495 | fetch | 2368 | Repeat :: EdgeMode |
1496 | :: forall (a :: PrimitiveType) (b :: [Type]) | 2369 | Repeat = <<0th constructor of 'EdgeMode>> |
1497 | . String -> HList b -> PrimitiveStream a (HList b) | 2370 | |
1498 | Attribute :: forall a . String -> a | 2371 | Sampler :: Filter -> EdgeMode -> Texture -> Sampler |
1499 | fetchStream | 2372 | Sampler = <<0th constructor of 'Sampler>> |
1500 | :: forall (a :: PrimitiveType) (b :: [Type]) | 2373 | |
1501 | . String | 2374 | ScreenOut :: forall (a :: Nat) (b :: [ImageKind]) . FrameBuffer a b -> Output |
1502 | -> forall (c :: [String]) | 2375 | ScreenOut = <<0th constructor of 'Output>> |
1503 | -> (len String c ~ (len Type b :: Int)) => PrimitiveStream a (HList b) | 2376 | |
1504 | 'SimpleFragment :: Type -> Type | 2377 | Set :: LogicOperation |
2378 | Set = <<15th constructor of 'LogicOperation>> | ||
2379 | |||
1505 | SimpleFragment :: forall a . Vec 3 Float -> a -> SimpleFragment a | 2380 | SimpleFragment :: forall a . Vec 3 Float -> a -> SimpleFragment a |
1506 | case'SimpleFragment | 2381 | SimpleFragment = <<0th constructor of 'SimpleFragment>> |
1507 | :: forall a | 2382 | |
1508 | . forall (b :: SimpleFragment a -> Type) | 2383 | Smooth :: forall a . Floating a => Interpolated a |
1509 | -> (forall (c :: Vec 3 Float) (d :: a) -> b ('SimpleFragment c d)) | 2384 | Smooth = <<0th constructor of 'Interpolated>> |
1510 | -> forall (e :: SimpleFragment a) -> b e | 2385 | |
1511 | match'SimpleFragment | 2386 | SrcAlpha :: BlendingFactor |
1512 | :: forall (a :: Type -> Type) | 2387 | SrcAlpha = <<6th constructor of 'BlendingFactor>> |
1513 | -> (forall b -> a (SimpleFragment b)) -> forall c -> a c -> a c | 2388 | |
1514 | 'Fragment :: Nat -> Type -> Type | 2389 | SrcAlphaSaturate :: BlendingFactor |
1515 | sFragmentCoords :: forall a . SimpleFragment a -> VecS Float 3 | 2390 | SrcAlphaSaturate = <<14th constructor of 'BlendingFactor>> |
1516 | sFragmentValue :: forall a . SimpleFragment a -> a | 2391 | |
1517 | 'FragmentStream :: Nat -> Type -> Type | 2392 | SrcColor :: BlendingFactor |
1518 | customizeDepth | 2393 | SrcColor = <<2nd constructor of 'BlendingFactor>> |
1519 | :: forall a (b :: Nat) . (a -> Float) -> Fragment b a -> Fragment b a | 2394 | |
1520 | customizeDepths | ||
1521 | :: forall a (b :: Nat) | ||
1522 | . (a -> Float) | ||
1523 | -> [Vector b (Maybe (SimpleFragment a))] | ||
1524 | -> [Vector b (Maybe (SimpleFragment a))] | ||
1525 | filterFragment | ||
1526 | :: forall a (b :: Nat) . (a -> Bool) -> Fragment b a -> Fragment b a | ||
1527 | filterFragments | ||
1528 | :: forall a (b :: Nat) | ||
1529 | . (a -> Bool) | ||
1530 | -> [Vector b (Maybe (SimpleFragment a))] | ||
1531 | -> [Vector b (Maybe (SimpleFragment a))] | ||
1532 | mapFragment :: forall a b (c :: Nat) . (a -> b) -> Fragment c a -> Fragment c b | ||
1533 | mapFragments | ||
1534 | :: forall a b (c :: Nat) | ||
1535 | . (a -> b) | ||
1536 | -> [Vector c (Maybe (SimpleFragment a))] | ||
1537 | -> [Vector c (Maybe (SimpleFragment b))] | ||
1538 | 'ImageKind :: Type | ||
1539 | Color :: Type -> ImageKind | ||
1540 | Depth :: ImageKind | ||
1541 | Stencil :: ImageKind | 2395 | Stencil :: ImageKind |
1542 | case'ImageKind | 2396 | Stencil = <<2nd constructor of 'ImageKind>> |
1543 | :: forall (a :: ImageKind -> Type) | 2397 | |
1544 | -> (forall b -> a ('Color b)) | ||
1545 | -> a 'Depth -> a 'Stencil -> forall (c :: ImageKind) -> a c | ||
1546 | match'ImageKind | ||
1547 | :: forall (a :: Type -> Type) -> a ImageKind -> forall b -> a b -> a b | ||
1548 | imageType :: ImageKind -> Type | ||
1549 | 'Image :: Nat -> ImageKind -> Type | ||
1550 | case'Image | ||
1551 | :: forall (a :: Nat) (b :: ImageKind) | ||
1552 | . forall (c :: Image a b -> Type) (d :: Image a b) -> c d | ||
1553 | match'Image | ||
1554 | :: forall (a :: Type -> Type) | ||
1555 | -> (forall (b :: Nat) (c :: ImageKind) -> a (Image b c)) | ||
1556 | -> forall d -> a d -> a d | ||
1557 | ColorImage | ||
1558 | :: forall (a :: Nat) (b :: Nat) c d | ||
1559 | . (Num c, d ~ VecScalar b c) => d -> Image a ('Color d) | ||
1560 | DepthImage :: forall (a :: Nat) . Float -> Image a 'Depth | ||
1561 | StencilImage :: forall (a :: Nat) . Int -> Image a 'Stencil | 2398 | StencilImage :: forall (a :: Nat) . Int -> Image a 'Stencil |
1562 | emptyDepthImage :: Float -> Image 1 'Depth | 2399 | StencilImage = \a b -> <<builtin>> |
1563 | emptyColorImage | 2400 | |
1564 | :: forall (a :: Nat) b c . (Num b, c ~ VecScalar a b) => c -> Image 1 ('Color c) | 2401 | StencilOp |
1565 | 'Swizz :: Type | 2402 | :: StencilTests -> StencilOps -> StencilOps -> FragmentOperation 'Stencil |
2403 | StencilOp = <<2nd constructor of 'FragmentOperation>> | ||
2404 | |||
2405 | Sw :: Swizz | ||
2406 | Sw = <<3rd constructor of 'Swizz>> | ||
2407 | |||
1566 | Sx :: Swizz | 2408 | Sx :: Swizz |
2409 | Sx = <<0th constructor of 'Swizz>> | ||
2410 | |||
1567 | Sy :: Swizz | 2411 | Sy :: Swizz |
2412 | Sy = <<1st constructor of 'Swizz>> | ||
2413 | |||
1568 | Sz :: Swizz | 2414 | Sz :: Swizz |
1569 | Sw :: Swizz | 2415 | Sz = <<2nd constructor of 'Swizz>> |
1570 | case'Swizz | 2416 | |
1571 | :: forall (a :: Swizz -> Type) | 2417 | Texture2D :: Vec 2 Int -> Image 1 ('Color (Vec 4 Float)) -> Texture |
1572 | -> a 'Sx -> a 'Sy -> a 'Sz -> a 'Sw -> forall (b :: Swizz) -> a b | 2418 | Texture2D = <<1st constructor of 'Texture>> |
1573 | match'Swizz :: forall (a :: Type -> Type) -> a Swizz -> forall b -> a b -> a b | 2419 | |
1574 | swizzscalar :: forall a (b :: Nat) . Vec b a -> Swizz -> a | 2420 | Texture2DSlot :: String -> Texture |
1575 | definedVec :: forall a (b :: Nat) . Vec b a -> Bool | 2421 | Texture2DSlot = <<0th constructor of 'Texture>> |
1576 | swizzvector | 2422 | |
1577 | :: forall a (b :: Nat) (c :: Nat) . Vec b a -> Vec c Swizz -> VecS a c | 2423 | Triangle :: PrimitiveType |
1578 | 'BlendingFactor :: Type | 2424 | Triangle = <<0th constructor of 'PrimitiveType>> |
2425 | |||
2426 | TriangleAdjacency :: PrimitiveType | ||
2427 | TriangleAdjacency = <<3rd constructor of 'PrimitiveType>> | ||
2428 | |||
2429 | TriangleCtx | ||
2430 | :: forall a | ||
2431 | . CullMode | ||
2432 | -> PolygonMode a | ||
2433 | -> PolygonOffset -> ProvokingVertex -> RasterContext a 'Triangle | ||
2434 | TriangleCtx = <<0th constructor of 'RasterContext>> | ||
2435 | |||
2436 | Uniform :: forall a . String -> a | ||
2437 | Uniform = \a b -> <<builtin>> | ||
2438 | |||
2439 | UpperLeft :: PointSpriteCoordOrigin | ||
2440 | UpperLeft = <<1st constructor of 'PointSpriteCoordOrigin>> | ||
2441 | |||
2442 | V2 :: forall a . a -> a -> VecS a 2 | ||
2443 | V2 = <<0th constructor of 'VecS>> | ||
2444 | |||
2445 | V3 :: forall a . a -> a -> a -> VecS a 3 | ||
2446 | V3 = <<1st constructor of 'VecS>> | ||
2447 | |||
2448 | V4 :: forall a . a -> a -> a -> a -> VecS a 4 | ||
2449 | V4 = <<2nd constructor of 'VecS>> | ||
2450 | |||
2451 | Xor :: LogicOperation | ||
2452 | Xor = <<6th constructor of 'LogicOperation>> | ||
2453 | |||
1579 | ZeroBF :: BlendingFactor | 2454 | ZeroBF :: BlendingFactor |
1580 | OneBF :: BlendingFactor | 2455 | ZeroBF = <<0th constructor of 'BlendingFactor>> |
1581 | SrcColor :: BlendingFactor | 2456 | |
1582 | OneMinusSrcColor :: BlendingFactor | 2457 | accumulate |
1583 | DstColor :: BlendingFactor | 2458 | :: forall (a :: Nat) (b :: [Type]) c |
1584 | OneMinusDstColor :: BlendingFactor | 2459 | . HList b |
1585 | SrcAlpha :: BlendingFactor | 2460 | -> (c -> HList (imageType' (map Type ImageKind FragmentOperationKind b))) |
1586 | OneMinusSrcAlpha :: BlendingFactor | 2461 | -> [Vector a (Maybe (SimpleFragment c))] |
1587 | DstAlpha :: BlendingFactor | 2462 | -> FrameBuffer a (map Type ImageKind FragmentOperationKind b) |
1588 | OneMinusDstAlpha :: BlendingFactor | 2463 | -> FrameBuffer a (map Type ImageKind FragmentOperationKind b) |
1589 | ConstantColor :: BlendingFactor | 2464 | accumulate |
1590 | OneMinusConstantColor :: BlendingFactor | 2465 | = \a b c d e f g -> _rhs |
1591 | ConstantAlpha :: BlendingFactor | 2466 | (Accumulate |
1592 | OneMinusConstantAlpha :: BlendingFactor | 2467 | (map Type 'ImageKind 'FragmentOperationKind b) |
1593 | SrcAlphaSaturate :: BlendingFactor | 2468 | a |
2469 | b | ||
2470 | TT | ||
2471 | d | ||
2472 | (map | ||
2473 | ('Vector a ('Maybe ('SimpleFragment c))) | ||
2474 | ('Vector | ||
2475 | a | ||
2476 | ('Maybe | ||
2477 | ('SimpleFragment | ||
2478 | ('HList (imageType' (map Type 'ImageKind 'FragmentOperationKind b)))))) | ||
2479 | (\h -> mapFragment | ||
2480 | c | ||
2481 | ('HList (imageType' (map Type 'ImageKind 'FragmentOperationKind b))) | ||
2482 | a | ||
2483 | e | ||
2484 | h) | ||
2485 | f) | ||
2486 | g) | ||
2487 | |||
2488 | accumulateWith :: forall a b . a -> b -> (a, b) | ||
2489 | accumulateWith = \a b c d -> _rhs (c, d) | ||
2490 | |||
2491 | accumulationContext :: forall a . a -> a | ||
2492 | accumulationContext = \_ a -> _rhs a | ||
2493 | |||
2494 | allSame :: forall a . [a] -> Constraint | ||
2495 | allSame | ||
2496 | = primFix | ||
2497 | (forall a . [a] -> 'Constraint) | ||
2498 | \b c d -> case'List | ||
2499 | (\_ -> 'Constraint) | ||
2500 | (_rhs CUnit) | ||
2501 | (\e f -> case'List | ||
2502 | (\_ -> 'Constraint) | ||
2503 | (_rhs CUnit) | ||
2504 | (\g h -> _rhs ('T2 (e ~ (g :: c)) (b c (g : h)))) | ||
2505 | f) | ||
2506 | d | ||
2507 | |||
2508 | case'BlendEquation | ||
2509 | :: forall (a :: BlendEquation -> Type) | ||
2510 | -> a 'FuncAdd | ||
2511 | -> a 'FuncSubtract | ||
2512 | -> a 'FuncReverseSubtract | ||
2513 | -> a 'Min -> a 'Max -> forall (b :: BlendEquation) -> a b | ||
2514 | case'BlendEquation | ||
2515 | = \a b c d e f g -> <<case function of a type with 0 parameters>> | ||
2516 | |||
2517 | case'Blending | ||
2518 | :: forall (a :: forall b -> Blending b -> Type) | ||
2519 | -> (forall c . a c ('NoBlending c)) | ||
2520 | -> (forall d (e :: CW (Integral d)) | ||
2521 | . forall (f :: LogicOperation) -> a d ('BlendLogicOp d e f)) | ||
2522 | -> (forall (g :: (BlendEquation, BlendEquation)) | ||
2523 | (h :: ((BlendingFactor, BlendingFactor), (BlendingFactor, BlendingFactor))) | ||
2524 | (i :: Vec 4 Float) | ||
2525 | -> a Float ('Blend g h i)) | ||
2526 | -> forall j . forall (k :: Blending j) -> a j k | ||
2527 | case'Blending = \a b c d e f -> <<case function of a type with 0 parameters>> | ||
2528 | |||
1594 | case'BlendingFactor | 2529 | case'BlendingFactor |
1595 | :: forall (a :: BlendingFactor -> Type) | 2530 | :: forall (a :: BlendingFactor -> Type) |
1596 | -> a 'ZeroBF | 2531 | -> a 'ZeroBF |
@@ -1608,39 +2543,75 @@ case'BlendingFactor | |||
1608 | -> a 'ConstantAlpha | 2543 | -> a 'ConstantAlpha |
1609 | -> a 'OneMinusConstantAlpha | 2544 | -> a 'OneMinusConstantAlpha |
1610 | -> a 'SrcAlphaSaturate -> forall (b :: BlendingFactor) -> a b | 2545 | -> a 'SrcAlphaSaturate -> forall (b :: BlendingFactor) -> a b |
1611 | match'BlendingFactor | 2546 | case'BlendingFactor |
1612 | :: forall (a :: Type -> Type) -> a BlendingFactor -> forall b -> a b -> a b | 2547 | = \a b c d e f g h i j k l m n o p q |
1613 | 'BlendEquation :: Type | 2548 | -> <<case function of a type with 0 parameters>> |
1614 | FuncAdd :: BlendEquation | 2549 | |
1615 | FuncSubtract :: BlendEquation | 2550 | case'ComparisonFunction |
1616 | FuncReverseSubtract :: BlendEquation | 2551 | :: forall (a :: ComparisonFunction -> Type) |
1617 | Min :: BlendEquation | 2552 | -> a 'Never |
1618 | Max :: BlendEquation | 2553 | -> a 'Less |
1619 | case'BlendEquation | 2554 | -> a 'Equal |
1620 | :: forall (a :: BlendEquation -> Type) | 2555 | -> a 'Lequal |
1621 | -> a 'FuncAdd | 2556 | -> a 'Greater |
1622 | -> a 'FuncSubtract | 2557 | -> a 'Notequal |
1623 | -> a 'FuncReverseSubtract | 2558 | -> a 'Gequal -> a 'Always -> forall (b :: ComparisonFunction) -> a b |
1624 | -> a 'Min -> a 'Max -> forall (b :: BlendEquation) -> a b | 2559 | case'ComparisonFunction |
1625 | match'BlendEquation | 2560 | = \a b c d e f g h i j -> <<case function of a type with 0 parameters>> |
1626 | :: forall (a :: Type -> Type) -> a BlendEquation -> forall b -> a b -> a b | 2561 | |
1627 | 'LogicOperation :: Type | 2562 | case'CullMode |
1628 | Clear :: LogicOperation | 2563 | :: forall (a :: CullMode -> Type) |
1629 | And :: LogicOperation | 2564 | -> a 'CullFront -> a 'CullBack -> a 'CullNone -> forall (b :: CullMode) -> a b |
1630 | AndReverse :: LogicOperation | 2565 | case'CullMode = \a b c d e -> <<case function of a type with 0 parameters>> |
1631 | Copy :: LogicOperation | 2566 | |
1632 | AndInverted :: LogicOperation | 2567 | case'EdgeMode |
1633 | Noop :: LogicOperation | 2568 | :: forall (a :: EdgeMode -> Type) |
1634 | Xor :: LogicOperation | 2569 | -> a 'Repeat |
1635 | Or :: LogicOperation | 2570 | -> a 'MirroredRepeat -> a 'ClampToEdge -> forall (b :: EdgeMode) -> a b |
1636 | Nor :: LogicOperation | 2571 | case'EdgeMode = \a b c d e -> <<case function of a type with 0 parameters>> |
1637 | Equiv :: LogicOperation | 2572 | |
1638 | Invert :: LogicOperation | 2573 | case'Filter |
1639 | OrReverse :: LogicOperation | 2574 | :: forall (a :: Filter -> Type) |
1640 | CopyInverted :: LogicOperation | 2575 | -> a 'PointFilter -> a 'LinearFilter -> forall (b :: Filter) -> a b |
1641 | OrInverted :: LogicOperation | 2576 | case'Filter = \a b c d -> <<case function of a type with 0 parameters>> |
1642 | Nand :: LogicOperation | 2577 | |
1643 | Set :: LogicOperation | 2578 | case'FragmentOperation |
2579 | :: forall (a :: forall (b :: ImageKind) -> FragmentOperation b -> Type) | ||
2580 | -> (forall c (d :: Nat) (e :: CW (Num c)) | ||
2581 | . forall (f :: Blending c) (g :: VecScalar d Bool) | ||
2582 | -> a ('Color (VecScalar d c)) ('ColorOp c d e f g)) | ||
2583 | -> (forall (h :: ComparisonFunction) (i :: Bool) -> a 'Depth ('DepthOp h i)) | ||
2584 | -> (forall (j :: StencilTests) (k :: StencilOps) (l :: StencilOps) | ||
2585 | -> a 'Stencil ('StencilOp j k l)) | ||
2586 | -> forall (m :: ImageKind) . forall (n :: FragmentOperation m) -> a m n | ||
2587 | case'FragmentOperation | ||
2588 | = \a b c d e f -> <<case function of a type with 0 parameters>> | ||
2589 | |||
2590 | case'FrameBuffer | ||
2591 | :: forall (a :: Nat) (b :: [ImageKind]) | ||
2592 | . forall (c :: FrameBuffer a b -> Type) (d :: FrameBuffer a b) -> c d | ||
2593 | case'FrameBuffer = \_ _ a b -> <<case function of a type with 2 parameters>> | ||
2594 | |||
2595 | case'Image | ||
2596 | :: forall (a :: Nat) (b :: ImageKind) | ||
2597 | . forall (c :: Image a b -> Type) (d :: Image a b) -> c d | ||
2598 | case'Image = \_ _ a b -> <<case function of a type with 2 parameters>> | ||
2599 | |||
2600 | case'ImageKind | ||
2601 | :: forall (a :: ImageKind -> Type) | ||
2602 | -> (forall b -> a ('Color b)) | ||
2603 | -> a 'Depth -> a 'Stencil -> forall (c :: ImageKind) -> a c | ||
2604 | case'ImageKind = \a b c d e -> <<case function of a type with 0 parameters>> | ||
2605 | |||
2606 | case'Interpolated | ||
2607 | :: forall a | ||
2608 | . forall (b :: Interpolated a -> Type) | ||
2609 | -> (forall (c :: CW (Floating a)) . b ('Smooth c)) | ||
2610 | -> (forall (d :: CW (Floating a)) . b ('NoPerspective d)) | ||
2611 | -> b 'Flat -> forall (e :: Interpolated a) -> b e | ||
2612 | case'Interpolated | ||
2613 | = \_ a b c d e -> <<case function of a type with 1 parameters>> | ||
2614 | |||
1644 | case'LogicOperation | 2615 | case'LogicOperation |
1645 | :: forall (a :: LogicOperation -> Type) | 2616 | :: forall (a :: LogicOperation -> Type) |
1646 | -> a 'Clear | 2617 | -> a 'Clear |
@@ -1657,81 +2628,63 @@ case'LogicOperation | |||
1657 | -> a 'OrReverse | 2628 | -> a 'OrReverse |
1658 | -> a 'CopyInverted | 2629 | -> a 'CopyInverted |
1659 | -> a 'OrInverted -> a 'Nand -> a 'Set -> forall (b :: LogicOperation) -> a b | 2630 | -> a 'OrInverted -> a 'Nand -> a 'Set -> forall (b :: LogicOperation) -> a b |
1660 | match'LogicOperation | 2631 | case'LogicOperation |
1661 | :: forall (a :: Type -> Type) -> a LogicOperation -> forall b -> a b -> a b | 2632 | = \a b c d e f g h i j k l m n o p q r |
1662 | 'StencilOperation :: Type | 2633 | -> <<case function of a type with 0 parameters>> |
1663 | OpZero :: StencilOperation | 2634 | |
1664 | OpKeep :: StencilOperation | 2635 | case'Mat |
1665 | OpReplace :: StencilOperation | 2636 | :: forall (a :: forall (b :: Nat) (c :: Nat) d -> Mat b c d -> Type) |
1666 | OpIncr :: StencilOperation | 2637 | -> (forall (e :: Vec 2 Float) (f :: Vec 2 Float) -> a 2 2 Float ('M22F e f)) |
1667 | OpIncrWrap :: StencilOperation | 2638 | -> (forall (g :: Vec 3 Float) (h :: Vec 3 Float) -> a 3 2 Float ('M32F g h)) |
1668 | OpDecr :: StencilOperation | 2639 | -> (forall (i :: Vec 4 Float) (j :: Vec 4 Float) -> a 4 2 Float ('M42F i j)) |
1669 | OpDecrWrap :: StencilOperation | 2640 | -> (forall (k :: Vec 2 Float) (l :: Vec 2 Float) (m :: Vec 2 Float) |
1670 | OpInvert :: StencilOperation | 2641 | -> a 2 3 Float ('M23F k l m)) |
1671 | case'StencilOperation | 2642 | -> (forall (n :: Vec 3 Float) (o :: Vec 3 Float) (p :: Vec 3 Float) |
1672 | :: forall (a :: StencilOperation -> Type) | 2643 | -> a 3 3 Float ('M33F n o p)) |
1673 | -> a 'OpZero | 2644 | -> (forall (q :: Vec 4 Float) (r :: Vec 4 Float) (s :: Vec 4 Float) |
1674 | -> a 'OpKeep | 2645 | -> a 4 3 Float ('M43F q r s)) |
1675 | -> a 'OpReplace | 2646 | -> (forall (t :: Vec 2 Float) |
1676 | -> a 'OpIncr | 2647 | (u :: Vec 2 Float) (v :: Vec 2 Float) (w :: Vec 2 Float) |
1677 | -> a 'OpIncrWrap | 2648 | -> a 2 4 Float ('M24F t u v w)) |
1678 | -> a 'OpDecr | 2649 | -> (forall (x :: Vec 3 Float) |
1679 | -> a 'OpDecrWrap -> a 'OpInvert -> forall (b :: StencilOperation) -> a b | 2650 | (y :: Vec 3 Float) (z :: Vec 3 Float) (a' :: Vec 3 Float) |
1680 | match'StencilOperation | 2651 | -> a 3 4 Float ('M34F x y z a')) |
1681 | :: forall (a :: Type -> Type) -> a StencilOperation -> forall b -> a b -> a b | 2652 | -> (forall (b' :: Vec 4 Float) |
1682 | 'ComparisonFunction :: Type | 2653 | (c' :: Vec 4 Float) (d' :: Vec 4 Float) (e' :: Vec 4 Float) |
1683 | Never :: ComparisonFunction | 2654 | -> a 4 4 Float ('M44F b' c' d' e')) |
1684 | Less :: ComparisonFunction | 2655 | -> forall (f' :: Nat) (g' :: Nat) h' |
1685 | Equal :: ComparisonFunction | 2656 | . forall (i' :: Mat f' g' h') -> a f' g' h' i' |
1686 | Lequal :: ComparisonFunction | 2657 | case'Mat |
1687 | Greater :: ComparisonFunction | 2658 | = \a b c d e f g h i j k l m n -> <<case function of a type with 0 parameters>> |
1688 | Notequal :: ComparisonFunction | 2659 | |
1689 | Gequal :: ComparisonFunction | 2660 | case'Maybe |
1690 | Always :: ComparisonFunction | 2661 | :: forall a |
1691 | case'ComparisonFunction | 2662 | . forall (b :: Maybe a -> Type) |
1692 | :: forall (a :: ComparisonFunction -> Type) | 2663 | -> b 'Nothing |
1693 | -> a 'Never | 2664 | -> (forall (c :: a) -> b ('Just c)) -> forall (d :: Maybe a) -> b d |
1694 | -> a 'Less | 2665 | case'Maybe = \_ a b c d -> <<case function of a type with 1 parameters>> |
1695 | -> a 'Equal | 2666 | |
1696 | -> a 'Lequal | 2667 | case'Output |
1697 | -> a 'Greater | 2668 | :: forall (a :: Output -> Type) |
1698 | -> a 'Notequal | 2669 | -> (forall (b :: Nat) (c :: [ImageKind]) |
1699 | -> a 'Gequal -> a 'Always -> forall (b :: ComparisonFunction) -> a b | 2670 | . forall (d :: FrameBuffer b c) -> a ('ScreenOut b c d)) |
1700 | match'ComparisonFunction | 2671 | -> forall (e :: Output) -> a e |
1701 | :: forall (a :: Type -> Type) -> a ComparisonFunction -> forall b -> a b -> a b | 2672 | case'Output = \a b c -> <<case function of a type with 0 parameters>> |
1702 | 'ProvokingVertex :: Type | 2673 | |
1703 | LastVertex :: ProvokingVertex | ||
1704 | FirstVertex :: ProvokingVertex | ||
1705 | case'ProvokingVertex | ||
1706 | :: forall (a :: ProvokingVertex -> Type) | ||
1707 | -> a 'LastVertex -> a 'FirstVertex -> forall (b :: ProvokingVertex) -> a b | ||
1708 | match'ProvokingVertex | ||
1709 | :: forall (a :: Type -> Type) -> a ProvokingVertex -> forall b -> a b -> a b | ||
1710 | 'CullMode :: Type | ||
1711 | CullFront :: CullMode | ||
1712 | CullBack :: CullMode | ||
1713 | CullNone :: CullMode | ||
1714 | case'CullMode | ||
1715 | :: forall (a :: CullMode -> Type) | ||
1716 | -> a 'CullFront -> a 'CullBack -> a 'CullNone -> forall (b :: CullMode) -> a b | ||
1717 | match'CullMode | ||
1718 | :: forall (a :: Type -> Type) -> a CullMode -> forall b -> a b -> a b | ||
1719 | 'PointSize :: Type -> Type | ||
1720 | PointSize :: forall a . Float -> PointSize a | ||
1721 | ProgramPointSize :: forall a . (a -> Float) -> PointSize a | ||
1722 | case'PointSize | 2674 | case'PointSize |
1723 | :: forall a | 2675 | :: forall a |
1724 | . forall (b :: PointSize a -> Type) | 2676 | . forall (b :: PointSize a -> Type) |
1725 | -> (forall (c :: Float) -> b ('PointSize c)) | 2677 | -> (forall (c :: Float) -> b ('PointSize c)) |
1726 | -> (forall (d :: a -> Float) -> b ('ProgramPointSize d)) | 2678 | -> (forall (d :: a -> Float) -> b ('ProgramPointSize d)) |
1727 | -> forall (e :: PointSize a) -> b e | 2679 | -> forall (e :: PointSize a) -> b e |
1728 | match'PointSize | 2680 | case'PointSize = \_ a b c d -> <<case function of a type with 1 parameters>> |
1729 | :: forall (a :: Type -> Type) | 2681 | |
1730 | -> (forall b -> a (PointSize b)) -> forall c -> a c -> a c | 2682 | case'PointSpriteCoordOrigin |
1731 | 'PolygonMode :: Type -> Type | 2683 | :: forall (a :: PointSpriteCoordOrigin -> Type) |
1732 | PolygonFill :: forall a . PolygonMode a | 2684 | -> a 'LowerLeft -> a 'UpperLeft -> forall (b :: PointSpriteCoordOrigin) -> a b |
1733 | PolygonPoint :: forall a . PointSize a -> PolygonMode a | 2685 | case'PointSpriteCoordOrigin |
1734 | PolygonLine :: forall a . Float -> PolygonMode a | 2686 | = \a b c d -> <<case function of a type with 0 parameters>> |
2687 | |||
1735 | case'PolygonMode | 2688 | case'PolygonMode |
1736 | :: forall a | 2689 | :: forall a |
1737 | . forall (b :: PolygonMode a -> Type) | 2690 | . forall (b :: PolygonMode a -> Type) |
@@ -1739,40 +2692,39 @@ case'PolygonMode | |||
1739 | -> (forall (c :: PointSize a) -> b ('PolygonPoint c)) | 2692 | -> (forall (c :: PointSize a) -> b ('PolygonPoint c)) |
1740 | -> (forall (d :: Float) -> b ('PolygonLine d)) | 2693 | -> (forall (d :: Float) -> b ('PolygonLine d)) |
1741 | -> forall (e :: PolygonMode a) -> b e | 2694 | -> forall (e :: PolygonMode a) -> b e |
1742 | match'PolygonMode | 2695 | case'PolygonMode = \_ a b c d e -> <<case function of a type with 1 parameters>> |
1743 | :: forall (a :: Type -> Type) | 2696 | |
1744 | -> (forall b -> a (PolygonMode b)) -> forall c -> a c -> a c | ||
1745 | 'PolygonOffset :: Type | ||
1746 | NoOffset :: PolygonOffset | ||
1747 | Offset :: Float -> Float -> PolygonOffset | ||
1748 | case'PolygonOffset | 2697 | case'PolygonOffset |
1749 | :: forall (a :: PolygonOffset -> Type) | 2698 | :: forall (a :: PolygonOffset -> Type) |
1750 | -> a 'NoOffset | 2699 | -> a 'NoOffset |
1751 | -> (forall (b :: Float) (c :: Float) -> a ('Offset b c)) | 2700 | -> (forall (b :: Float) (c :: Float) -> a ('Offset b c)) |
1752 | -> forall (d :: PolygonOffset) -> a d | 2701 | -> forall (d :: PolygonOffset) -> a d |
1753 | match'PolygonOffset | 2702 | case'PolygonOffset = \a b c d -> <<case function of a type with 0 parameters>> |
1754 | :: forall (a :: Type -> Type) -> a PolygonOffset -> forall b -> a b -> a b | 2703 | |
1755 | 'PointSpriteCoordOrigin :: Type | 2704 | case'Primitive |
1756 | LowerLeft :: PointSpriteCoordOrigin | ||
1757 | UpperLeft :: PointSpriteCoordOrigin | ||
1758 | case'PointSpriteCoordOrigin | ||
1759 | :: forall (a :: PointSpriteCoordOrigin -> Type) | ||
1760 | -> a 'LowerLeft -> a 'UpperLeft -> forall (b :: PointSpriteCoordOrigin) -> a b | ||
1761 | match'PointSpriteCoordOrigin | ||
1762 | :: forall (a :: Type -> Type) | ||
1763 | -> a PointSpriteCoordOrigin -> forall b -> a b -> a b | ||
1764 | primTexture :: () -> Vec 2 Float -> Vec 4 Float | ||
1765 | Uniform :: forall a . String -> a | ||
1766 | 'RasterContext :: Type -> PrimitiveType -> Type | ||
1767 | TriangleCtx | ||
1768 | :: forall a | ||
1769 | . CullMode | ||
1770 | -> PolygonMode a | ||
1771 | -> PolygonOffset -> ProvokingVertex -> RasterContext a 'Triangle | ||
1772 | PointCtx | ||
1773 | :: forall a | 2705 | :: forall a |
1774 | . PointSize a -> Float -> PointSpriteCoordOrigin -> RasterContext a 'Point | 2706 | . forall (b :: forall (c :: PrimitiveType) -> Primitive a c -> Type) |
1775 | LineCtx :: forall a . Float -> ProvokingVertex -> RasterContext a 'Line | 2707 | -> (forall (d :: a) -> b 'Point ('PrimPoint d)) |
2708 | -> (forall (e :: a) (f :: a) -> b 'Line ('PrimLine e f)) | ||
2709 | -> (forall (g :: a) (h :: a) (i :: a) -> b 'Triangle ('PrimTriangle g h i)) | ||
2710 | -> forall (j :: PrimitiveType) . forall (k :: Primitive a j) -> b j k | ||
2711 | case'Primitive = \_ a b c d e f -> <<case function of a type with 1 parameters>> | ||
2712 | |||
2713 | case'PrimitiveType | ||
2714 | :: forall (a :: PrimitiveType -> Type) | ||
2715 | -> a 'Triangle | ||
2716 | -> a 'Line | ||
2717 | -> a 'Point | ||
2718 | -> a 'TriangleAdjacency | ||
2719 | -> a 'LineAdjacency -> forall (b :: PrimitiveType) -> a b | ||
2720 | case'PrimitiveType | ||
2721 | = \a b c d e f g -> <<case function of a type with 0 parameters>> | ||
2722 | |||
2723 | case'ProvokingVertex | ||
2724 | :: forall (a :: ProvokingVertex -> Type) | ||
2725 | -> a 'LastVertex -> a 'FirstVertex -> forall (b :: ProvokingVertex) -> a b | ||
2726 | case'ProvokingVertex = \a b c d -> <<case function of a type with 0 parameters>> | ||
2727 | |||
1776 | case'RasterContext | 2728 | case'RasterContext |
1777 | :: forall a | 2729 | :: forall a |
1778 | . forall (b :: forall (c :: PrimitiveType) -> RasterContext a c -> Type) | 2730 | . forall (b :: forall (c :: PrimitiveType) -> RasterContext a c -> Type) |
@@ -1783,73 +2735,477 @@ case'RasterContext | |||
1783 | -> b 'Point ('PointCtx h i j)) | 2735 | -> b 'Point ('PointCtx h i j)) |
1784 | -> (forall (k :: Float) (l :: ProvokingVertex) -> b 'Line ('LineCtx k l)) | 2736 | -> (forall (k :: Float) (l :: ProvokingVertex) -> b 'Line ('LineCtx k l)) |
1785 | -> forall (m :: PrimitiveType) . forall (n :: RasterContext a m) -> b m n | 2737 | -> forall (m :: PrimitiveType) . forall (n :: RasterContext a m) -> b m n |
1786 | match'RasterContext | 2738 | case'RasterContext |
1787 | :: forall (a :: Type -> Type) | 2739 | = \_ a b c d e f -> <<case function of a type with 1 parameters>> |
1788 | -> (forall b (c :: PrimitiveType) -> a (RasterContext b c)) | 2740 | |
1789 | -> forall d -> a d -> a d | 2741 | case'Sampler |
1790 | 'Blending :: Type -> Type | 2742 | :: forall (a :: Sampler -> Type) |
1791 | NoBlending :: forall a . Blending a | 2743 | -> (forall (b :: Filter) (c :: EdgeMode) (d :: Texture) -> a ('Sampler b c d)) |
1792 | BlendLogicOp :: forall a . Integral a => LogicOperation -> Blending a | 2744 | -> forall (e :: Sampler) -> a e |
1793 | Blend | 2745 | case'Sampler = \a b c -> <<case function of a type with 0 parameters>> |
1794 | :: (BlendEquation, BlendEquation) | 2746 | |
1795 | -> ((BlendingFactor, BlendingFactor), (BlendingFactor, BlendingFactor)) | 2747 | case'SimpleFragment |
1796 | -> Vec 4 Float -> Blending Float | 2748 | :: forall a |
1797 | case'Blending | 2749 | . forall (b :: SimpleFragment a -> Type) |
1798 | :: forall (a :: forall b -> Blending b -> Type) | 2750 | -> (forall (c :: Vec 3 Float) (d :: a) -> b ('SimpleFragment c d)) |
1799 | -> (forall c . a c ('NoBlending c)) | 2751 | -> forall (e :: SimpleFragment a) -> b e |
1800 | -> (forall d (e :: CW (Integral d)) | 2752 | case'SimpleFragment = \_ a b c -> <<case function of a type with 1 parameters>> |
1801 | . forall (f :: LogicOperation) -> a d ('BlendLogicOp d e f)) | 2753 | |
1802 | -> (forall (g :: (BlendEquation, BlendEquation)) | 2754 | case'StencilOperation |
1803 | (h :: ((BlendingFactor, BlendingFactor), (BlendingFactor, BlendingFactor))) | 2755 | :: forall (a :: StencilOperation -> Type) |
1804 | (i :: Vec 4 Float) | 2756 | -> a 'OpZero |
1805 | -> a Float ('Blend g h i)) | 2757 | -> a 'OpKeep |
1806 | -> forall j . forall (k :: Blending j) -> a j k | 2758 | -> a 'OpReplace |
1807 | match'Blending | 2759 | -> a 'OpIncr |
1808 | :: forall (a :: Type -> Type) | 2760 | -> a 'OpIncrWrap |
1809 | -> (forall b -> a (Blending b)) -> forall c -> a c -> a c | 2761 | -> a 'OpDecr |
1810 | 'StencilTests :: Type | 2762 | -> a 'OpDecrWrap -> a 'OpInvert -> forall (b :: StencilOperation) -> a b |
2763 | case'StencilOperation | ||
2764 | = \a b c d e f g h i j -> <<case function of a type with 0 parameters>> | ||
2765 | |||
2766 | case'StencilOps :: forall (a :: StencilOps -> Type) (b :: StencilOps) -> a b | ||
2767 | case'StencilOps = \a b -> <<case function of a type with 0 parameters>> | ||
2768 | |||
1811 | case'StencilTests | 2769 | case'StencilTests |
1812 | :: forall (a :: StencilTests -> Type) (b :: StencilTests) -> a b | 2770 | :: forall (a :: StencilTests -> Type) (b :: StencilTests) -> a b |
1813 | match'StencilTests | 2771 | case'StencilTests = \a b -> <<case function of a type with 0 parameters>> |
1814 | :: forall (a :: Type -> Type) -> a StencilTests -> forall b -> a b -> a b | 2772 | |
1815 | 'StencilOps :: Type | 2773 | case'Swizz |
1816 | case'StencilOps :: forall (a :: StencilOps -> Type) (b :: StencilOps) -> a b | 2774 | :: forall (a :: Swizz -> Type) |
1817 | match'StencilOps | 2775 | -> a 'Sx -> a 'Sy -> a 'Sz -> a 'Sw -> forall (b :: Swizz) -> a b |
1818 | :: forall (a :: Type -> Type) -> a StencilOps -> forall b -> a b -> a b | 2776 | case'Swizz = \a b c d e f -> <<case function of a type with 0 parameters>> |
1819 | 'FragmentOperation :: ImageKind -> Type | 2777 | |
1820 | ColorOp | 2778 | case'Texture |
2779 | :: forall (a :: Texture -> Type) | ||
2780 | -> (forall (b :: String) -> a ('Texture2DSlot b)) | ||
2781 | -> (forall (c :: Vec 2 Int) (d :: Image 1 ('Color (Vec 4 Float))) | ||
2782 | -> a ('Texture2D c d)) | ||
2783 | -> forall (e :: Texture) -> a e | ||
2784 | case'Texture = \a b c d -> <<case function of a type with 0 parameters>> | ||
2785 | |||
2786 | case'VecS | ||
2787 | :: forall a | ||
2788 | . forall (b :: forall (c :: Nat) -> VecS a c -> Type) | ||
2789 | -> (forall (d :: a) (e :: a) -> b 2 ('V2 d e)) | ||
2790 | -> (forall (f :: a) (g :: a) (h :: a) -> b 3 ('V3 f g h)) | ||
2791 | -> (forall (i :: a) (j :: a) (k :: a) (l :: a) -> b 4 ('V4 i j k l)) | ||
2792 | -> forall (m :: Nat) . forall (n :: VecS a m) -> b m n | ||
2793 | case'VecS = \_ a b c d e f -> <<case function of a type with 1 parameters>> | ||
2794 | |||
2795 | case'Vector | ||
2796 | :: forall (a :: Nat) b | ||
2797 | . forall (c :: Vector a b -> Type) (d :: Vector a b) -> c d | ||
2798 | case'Vector = \_ _ a b -> <<case function of a type with 2 parameters>> | ||
2799 | |||
2800 | concat :: forall a . [[a]] -> [a] | ||
2801 | concat = \a -> _rhs (foldr [a] [a] ((++) a) []) | ||
2802 | |||
2803 | concatMap :: forall a b . (a -> [b]) -> [a] -> [b] | ||
2804 | concatMap = \a b c d -> _rhs (foldr [b] [b] ((++) b) [] (map a [b] c d)) | ||
2805 | |||
2806 | customizeDepth | ||
2807 | :: forall a (b :: Nat) . (a -> Float) -> Fragment b a -> Fragment b a | ||
2808 | customizeDepth = \a b c d -> <<builtin>> | ||
2809 | |||
2810 | customizeDepths | ||
1821 | :: forall a (b :: Nat) | 2811 | :: forall a (b :: Nat) |
1822 | . Num a | 2812 | . (a -> Float) |
1823 | => Blending a -> VecScalar b Bool -> FragmentOperation ('Color (VecScalar b a)) | 2813 | -> [Vector b (Maybe (SimpleFragment a))] |
1824 | DepthOp :: ComparisonFunction -> Bool -> FragmentOperation 'Depth | 2814 | -> [Vector b (Maybe (SimpleFragment a))] |
1825 | StencilOp | 2815 | customizeDepths |
1826 | :: StencilTests -> StencilOps -> StencilOps -> FragmentOperation 'Stencil | 2816 | = \a b c -> _rhs |
1827 | case'FragmentOperation | 2817 | (map |
1828 | :: forall (a :: forall (b :: ImageKind) -> FragmentOperation b -> Type) | 2818 | ('Vector b ('Maybe ('SimpleFragment a))) |
1829 | -> (forall c (d :: Nat) (e :: CW (Num c)) | 2819 | ('Vector b ('Maybe ('SimpleFragment a))) |
1830 | . forall (f :: Blending c) (g :: VecScalar d Bool) | 2820 | \d -> customizeDepth a b c d) |
1831 | -> a ('Color (VecScalar d c)) ('ColorOp c d e f g)) | 2821 | |
1832 | -> (forall (h :: ComparisonFunction) (i :: Bool) -> a 'Depth ('DepthOp h i)) | 2822 | definedVec :: forall a (b :: Nat) . Vec b a -> Bool |
1833 | -> (forall (j :: StencilTests) (k :: StencilOps) (l :: StencilOps) | 2823 | definedVec |
1834 | -> a 'Stencil ('StencilOp j k l)) | 2824 | = \_ a b -> case'VecS |
1835 | -> forall (m :: ImageKind) . forall (n :: FragmentOperation m) -> a m n | 2825 | (\_ _ -> 'Bool) |
2826 | (\_ _ -> _rhs True) | ||
2827 | (\_ _ _ -> _rhs True) | ||
2828 | (\_ _ _ _ -> _rhs True) | ||
2829 | a | ||
2830 | b | ||
2831 | |||
2832 | emptyColorImage | ||
2833 | :: forall (a :: Nat) b c . (Num b, c ~ VecScalar a b) => c -> Image 1 ('Color c) | ||
2834 | emptyColorImage = _rhs \a b c d e f -> ColorImage 1 a b c d e f | ||
2835 | |||
2836 | emptyDepthImage :: Float -> Image 1 'Depth | ||
2837 | emptyDepthImage = _rhs \a -> DepthImage 1 a | ||
2838 | |||
2839 | fetch | ||
2840 | :: forall (a :: PrimitiveType) (b :: [Type]) | ||
2841 | . String -> HList b -> PrimitiveStream a (HList b) | ||
2842 | fetch = \a b c d -> <<builtin>> | ||
2843 | |||
2844 | fetchArrays | ||
2845 | :: forall (a :: PrimitiveType) (b :: [Type]) (c :: [Type]) | ||
2846 | . (b ~ (map Type Type ListElem c :: [Type])) | ||
2847 | => HList c -> PrimitiveStream a (HList b) | ||
2848 | fetchArrays = \a b c d e -> <<builtin>> | ||
2849 | |||
2850 | fetchStream | ||
2851 | :: forall (a :: PrimitiveType) (b :: [Type]) | ||
2852 | . String | ||
2853 | -> forall (c :: [String]) | ||
2854 | -> (len String c ~ (len Type b :: Int)) => PrimitiveStream a (HList b) | ||
2855 | fetchStream = \a b c d e -> <<builtin>> | ||
2856 | |||
2857 | filterFragment | ||
2858 | :: forall a (b :: Nat) . (a -> Bool) -> Fragment b a -> Fragment b a | ||
2859 | filterFragment = \a b c d -> <<builtin>> | ||
2860 | |||
2861 | filterFragments | ||
2862 | :: forall a (b :: Nat) | ||
2863 | . (a -> Bool) | ||
2864 | -> [Vector b (Maybe (SimpleFragment a))] | ||
2865 | -> [Vector b (Maybe (SimpleFragment a))] | ||
2866 | filterFragments | ||
2867 | = \a b c -> _rhs | ||
2868 | (map | ||
2869 | ('Vector b ('Maybe ('SimpleFragment a))) | ||
2870 | ('Vector b ('Maybe ('SimpleFragment a))) | ||
2871 | \d -> filterFragment a b c d) | ||
2872 | |||
2873 | foldr :: forall a b . (b -> a -> a) -> a -> [b] -> a | ||
2874 | foldr | ||
2875 | = \a b -> primFix | ||
2876 | ((b -> a -> a) -> a -> [b] -> a) | ||
2877 | \c d e f -> case'List (\_ -> a) (_rhs e) (\g h -> _rhs (d g (c d e h))) f | ||
2878 | |||
2879 | head :: forall a . [a] -> a | ||
2880 | head = \a b -> case'List (\_ -> a) (_rhs (undefined a)) (\c _ -> _rhs c) b | ||
2881 | |||
2882 | id :: forall a . a -> a | ||
2883 | id = \_ a -> _rhs a | ||
2884 | |||
2885 | imageFrame | ||
2886 | :: forall (a :: [Type]) | ||
2887 | . sameLayerCounts a | ||
2888 | => HList a | ||
2889 | -> FrameBuffer (ImageLC (head Type a)) (map Type ImageKind GetImageKind a) | ||
2890 | imageFrame = _rhs \a b c -> FrameBuffer a b c | ||
2891 | |||
2892 | imageType :: ImageKind -> Type | ||
2893 | imageType | ||
2894 | = \a -> case'ImageKind (\_ -> Type) (\b -> _rhs b) (_rhs 'Float) (_rhs 'Int) a | ||
2895 | |||
2896 | imageType' :: [ImageKind] -> [Type] | ||
2897 | imageType' | ||
2898 | = \a -> case'List | ||
2899 | (\_ -> [Type]) | ||
2900 | (_rhs (map 'ImageKind Type imageType a)) | ||
2901 | (\b c -> case'ImageKind | ||
2902 | (\_ -> [Type]) | ||
2903 | (\_ -> _rhs (map 'ImageKind Type imageType a)) | ||
2904 | (_rhs (map 'ImageKind Type imageType c)) | ||
2905 | (_rhs (map 'ImageKind Type imageType a)) | ||
2906 | b) | ||
2907 | a | ||
2908 | |||
2909 | len :: forall a . [a] -> Int | ||
2910 | len | ||
2911 | = \a -> primFix | ||
2912 | ([a] -> 'Int) | ||
2913 | \b c -> case'List (\_ -> 'Int) (_rhs 0) (\_ d -> _rhs (primAddInt 1 (b d))) c | ||
2914 | |||
2915 | map :: forall a b . (a -> b) -> [a] -> [b] | ||
2916 | map | ||
2917 | = \a b -> primFix | ||
2918 | ((a -> b) -> [a] -> [b]) | ||
2919 | \c d e -> case'List (\_ -> [b]) (_rhs []) (\f g -> _rhs (d f : c d g)) e | ||
2920 | |||
2921 | mapFragment :: forall a b (c :: Nat) . (a -> b) -> Fragment c a -> Fragment c b | ||
2922 | mapFragment = \a b c d e -> <<builtin>> | ||
2923 | |||
2924 | mapFragments | ||
2925 | :: forall a b (c :: Nat) | ||
2926 | . (a -> b) | ||
2927 | -> [Vector c (Maybe (SimpleFragment a))] | ||
2928 | -> [Vector c (Maybe (SimpleFragment b))] | ||
2929 | mapFragments | ||
2930 | = \a b c d -> _rhs | ||
2931 | (map | ||
2932 | ('Vector c ('Maybe ('SimpleFragment a))) | ||
2933 | ('Vector c ('Maybe ('SimpleFragment b))) | ||
2934 | \e -> mapFragment a b c d e) | ||
2935 | |||
2936 | mapPrimitive | ||
2937 | :: forall a b (c :: PrimitiveType) . (a -> b) -> Primitive a c -> Primitive b c | ||
2938 | mapPrimitive = \a b c d e -> <<builtin>> | ||
2939 | |||
2940 | mapPrimitives | ||
2941 | :: forall a b (c :: PrimitiveType) | ||
2942 | . (a -> b) -> [Primitive a c] -> [Primitive b c] | ||
2943 | mapPrimitives | ||
2944 | = \a b c d -> _rhs | ||
2945 | (map ('Primitive a c) ('Primitive b c) \e -> mapPrimitive a b c d e) | ||
2946 | |||
2947 | mapVec :: forall a b (c :: Nat) . (a -> b) -> VecS a c -> VecS b c | ||
2948 | mapVec | ||
2949 | = \_ a b c d -> case'VecS | ||
2950 | (\e _ -> 'VecS a e) | ||
2951 | (\f g -> _rhs (V2 (c f) (c g))) | ||
2952 | (\h i j -> _rhs (V3 (c h) (c i) (c j))) | ||
2953 | (\k l m n -> _rhs (V4 (c k) (c l) (c m) (c n))) | ||
2954 | b | ||
2955 | d | ||
2956 | |||
2957 | match'BlendEquation | ||
2958 | :: forall (a :: Type -> Type) -> a BlendEquation -> forall b -> a b -> a b | ||
2959 | match'BlendEquation = \a b c d -> <<type case function>> | ||
2960 | |||
2961 | match'Blending | ||
2962 | :: forall (a :: Type -> Type) | ||
2963 | -> (forall b -> a (Blending b)) -> forall c -> a c -> a c | ||
2964 | match'Blending = \a b c d -> <<type case function>> | ||
2965 | |||
2966 | match'BlendingFactor | ||
2967 | :: forall (a :: Type -> Type) -> a BlendingFactor -> forall b -> a b -> a b | ||
2968 | match'BlendingFactor = \a b c d -> <<type case function>> | ||
2969 | |||
2970 | match'ComparisonFunction | ||
2971 | :: forall (a :: Type -> Type) -> a ComparisonFunction -> forall b -> a b -> a b | ||
2972 | match'ComparisonFunction = \a b c d -> <<type case function>> | ||
2973 | |||
2974 | match'CullMode | ||
2975 | :: forall (a :: Type -> Type) -> a CullMode -> forall b -> a b -> a b | ||
2976 | match'CullMode = \a b c d -> <<type case function>> | ||
2977 | |||
2978 | match'EdgeMode | ||
2979 | :: forall (a :: Type -> Type) -> a EdgeMode -> forall b -> a b -> a b | ||
2980 | match'EdgeMode = \a b c d -> <<type case function>> | ||
2981 | |||
2982 | match'Filter :: forall (a :: Type -> Type) -> a Filter -> forall b -> a b -> a b | ||
2983 | match'Filter = \a b c d -> <<type case function>> | ||
2984 | |||
1836 | match'FragmentOperation | 2985 | match'FragmentOperation |
1837 | :: forall (a :: Type -> Type) | 2986 | :: forall (a :: Type -> Type) |
1838 | -> (forall (b :: ImageKind) -> a (FragmentOperation b)) | 2987 | -> (forall (b :: ImageKind) -> a (FragmentOperation b)) |
1839 | -> forall c -> a c -> a c | 2988 | -> forall c -> a c -> a c |
1840 | 'Interpolated :: Type -> Type | 2989 | match'FragmentOperation = \a b c d -> <<type case function>> |
1841 | Smooth :: forall a . Floating a => Interpolated a | 2990 | |
1842 | NoPerspective :: forall a . Floating a => Interpolated a | 2991 | match'FrameBuffer |
1843 | Flat :: forall a . Interpolated a | 2992 | :: forall (a :: Type -> Type) |
1844 | case'Interpolated | 2993 | -> (forall (b :: Nat) (c :: [ImageKind]) -> a (FrameBuffer b c)) |
1845 | :: forall a | 2994 | -> forall d -> a d -> a d |
1846 | . forall (b :: Interpolated a -> Type) | 2995 | match'FrameBuffer = \a b c d -> <<type case function>> |
1847 | -> (forall (c :: CW (Floating a)) . b ('Smooth c)) | 2996 | |
1848 | -> (forall (d :: CW (Floating a)) . b ('NoPerspective d)) | 2997 | match'Image |
1849 | -> b 'Flat -> forall (e :: Interpolated a) -> b e | 2998 | :: forall (a :: Type -> Type) |
2999 | -> (forall (b :: Nat) (c :: ImageKind) -> a (Image b c)) | ||
3000 | -> forall d -> a d -> a d | ||
3001 | match'Image = \a b c d -> <<type case function>> | ||
3002 | |||
3003 | match'ImageKind | ||
3004 | :: forall (a :: Type -> Type) -> a ImageKind -> forall b -> a b -> a b | ||
3005 | match'ImageKind = \a b c d -> <<type case function>> | ||
3006 | |||
1850 | match'Interpolated | 3007 | match'Interpolated |
1851 | :: forall (a :: Type -> Type) | 3008 | :: forall (a :: Type -> Type) |
1852 | -> (forall b -> a (Interpolated b)) -> forall c -> a c -> a c | 3009 | -> (forall b -> a (Interpolated b)) -> forall c -> a c -> a c |
3010 | match'Interpolated = \a b c d -> <<type case function>> | ||
3011 | |||
3012 | match'LogicOperation | ||
3013 | :: forall (a :: Type -> Type) -> a LogicOperation -> forall b -> a b -> a b | ||
3014 | match'LogicOperation = \a b c d -> <<type case function>> | ||
3015 | |||
3016 | match'Mat | ||
3017 | :: forall (a :: Type -> Type) | ||
3018 | -> (forall (b :: Nat) (c :: Nat) d -> a (Mat b c d)) -> forall e -> a e -> a e | ||
3019 | match'Mat = \a b c d -> <<type case function>> | ||
3020 | |||
3021 | match'Maybe | ||
3022 | :: forall (a :: Type -> Type) | ||
3023 | -> (forall b -> a (Maybe b)) -> forall c -> a c -> a c | ||
3024 | match'Maybe = \a b c d -> <<type case function>> | ||
3025 | |||
3026 | match'Output :: forall (a :: Type -> Type) -> a Output -> forall b -> a b -> a b | ||
3027 | match'Output = \a b c d -> <<type case function>> | ||
3028 | |||
3029 | match'PointSize | ||
3030 | :: forall (a :: Type -> Type) | ||
3031 | -> (forall b -> a (PointSize b)) -> forall c -> a c -> a c | ||
3032 | match'PointSize = \a b c d -> <<type case function>> | ||
3033 | |||
3034 | match'PointSpriteCoordOrigin | ||
3035 | :: forall (a :: Type -> Type) | ||
3036 | -> a PointSpriteCoordOrigin -> forall b -> a b -> a b | ||
3037 | match'PointSpriteCoordOrigin = \a b c d -> <<type case function>> | ||
3038 | |||
3039 | match'PolygonMode | ||
3040 | :: forall (a :: Type -> Type) | ||
3041 | -> (forall b -> a (PolygonMode b)) -> forall c -> a c -> a c | ||
3042 | match'PolygonMode = \a b c d -> <<type case function>> | ||
3043 | |||
3044 | match'PolygonOffset | ||
3045 | :: forall (a :: Type -> Type) -> a PolygonOffset -> forall b -> a b -> a b | ||
3046 | match'PolygonOffset = \a b c d -> <<type case function>> | ||
3047 | |||
3048 | match'Primitive | ||
3049 | :: forall (a :: Type -> Type) | ||
3050 | -> (forall b (c :: PrimitiveType) -> a (Primitive b c)) | ||
3051 | -> forall d -> a d -> a d | ||
3052 | match'Primitive = \a b c d -> <<type case function>> | ||
3053 | |||
3054 | match'PrimitiveType | ||
3055 | :: forall (a :: Type -> Type) -> a PrimitiveType -> forall b -> a b -> a b | ||
3056 | match'PrimitiveType = \a b c d -> <<type case function>> | ||
3057 | |||
3058 | match'ProvokingVertex | ||
3059 | :: forall (a :: Type -> Type) -> a ProvokingVertex -> forall b -> a b -> a b | ||
3060 | match'ProvokingVertex = \a b c d -> <<type case function>> | ||
3061 | |||
3062 | match'RasterContext | ||
3063 | :: forall (a :: Type -> Type) | ||
3064 | -> (forall b (c :: PrimitiveType) -> a (RasterContext b c)) | ||
3065 | -> forall d -> a d -> a d | ||
3066 | match'RasterContext = \a b c d -> <<type case function>> | ||
3067 | |||
3068 | match'Sampler | ||
3069 | :: forall (a :: Type -> Type) -> a Sampler -> forall b -> a b -> a b | ||
3070 | match'Sampler = \a b c d -> <<type case function>> | ||
3071 | |||
3072 | match'SimpleFragment | ||
3073 | :: forall (a :: Type -> Type) | ||
3074 | -> (forall b -> a (SimpleFragment b)) -> forall c -> a c -> a c | ||
3075 | match'SimpleFragment = \a b c d -> <<type case function>> | ||
3076 | |||
3077 | match'StencilOperation | ||
3078 | :: forall (a :: Type -> Type) -> a StencilOperation -> forall b -> a b -> a b | ||
3079 | match'StencilOperation = \a b c d -> <<type case function>> | ||
3080 | |||
3081 | match'StencilOps | ||
3082 | :: forall (a :: Type -> Type) -> a StencilOps -> forall b -> a b -> a b | ||
3083 | match'StencilOps = \a b c d -> <<type case function>> | ||
3084 | |||
3085 | match'StencilTests | ||
3086 | :: forall (a :: Type -> Type) -> a StencilTests -> forall b -> a b -> a b | ||
3087 | match'StencilTests = \a b c d -> <<type case function>> | ||
3088 | |||
3089 | match'Swizz :: forall (a :: Type -> Type) -> a Swizz -> forall b -> a b -> a b | ||
3090 | match'Swizz = \a b c d -> <<type case function>> | ||
3091 | |||
3092 | match'Texture | ||
3093 | :: forall (a :: Type -> Type) -> a Texture -> forall b -> a b -> a b | ||
3094 | match'Texture = \a b c d -> <<type case function>> | ||
3095 | |||
3096 | match'VecS | ||
3097 | :: forall (a :: Type -> Type) | ||
3098 | -> (forall b (c :: Nat) -> a (VecS b c)) -> forall d -> a d -> a d | ||
3099 | match'VecS = \a b c d -> <<type case function>> | ||
3100 | |||
3101 | match'Vector | ||
3102 | :: forall (a :: Type -> Type) | ||
3103 | -> (forall (b :: Nat) c -> a (Vector b c)) -> forall d -> a d -> a d | ||
3104 | match'Vector = \a b c d -> <<type case function>> | ||
3105 | |||
3106 | one :: forall a . Component a => a | ||
3107 | one | ||
3108 | = \a _ -> match'Int | ||
3109 | (\b -> b) | ||
3110 | (_rhs 1) | ||
3111 | a | ||
3112 | (match'Word | ||
3113 | (\c -> c) | ||
3114 | (_rhs (primIntToWord 1)) | ||
3115 | a | ||
3116 | (match'Float | ||
3117 | (\d -> d) | ||
3118 | (_rhs 1.0) | ||
3119 | a | ||
3120 | (match'VecS | ||
3121 | (\e -> e) | ||
3122 | (\f g -> match'Float | ||
3123 | (\h -> 'VecS h g) | ||
3124 | (case'Nat | ||
3125 | (\i -> 'VecS 'Float i) | ||
3126 | (_rhs (undefined ('VecS 'Float 0))) | ||
3127 | (\j -> case'Nat | ||
3128 | (\k -> 'VecS 'Float (Succ k)) | ||
3129 | (_rhs (undefined ('VecS 'Float 1))) | ||
3130 | (\l -> case'Nat | ||
3131 | (\m -> 'VecS 'Float (Succ (Succ m))) | ||
3132 | (_rhs (V2 1.0 1.0)) | ||
3133 | (\n -> case'Nat | ||
3134 | (\o -> 'VecS 'Float (Succ (Succ (Succ o)))) | ||
3135 | (_rhs (V3 1.0 1.0 1.0)) | ||
3136 | (\p -> case'Nat | ||
3137 | (\q -> 'VecS 'Float (Succ (Succ (Succ (Succ q))))) | ||
3138 | (_rhs (V4 1.0 1.0 1.0 1.0)) | ||
3139 | (\r -> _rhs (undefined ('VecS 'Float (Succ (Succ (Succ (Succ (Succ r)))))))) | ||
3140 | p) | ||
3141 | n) | ||
3142 | l) | ||
3143 | j) | ||
3144 | g) | ||
3145 | f | ||
3146 | (match'Bool | ||
3147 | (\s -> 'VecS s g) | ||
3148 | (case'Nat | ||
3149 | (\t -> 'VecS 'Bool t) | ||
3150 | (_rhs (undefined ('VecS 'Bool 0))) | ||
3151 | (\u -> case'Nat | ||
3152 | (\v -> 'VecS 'Bool (Succ v)) | ||
3153 | (_rhs (undefined ('VecS 'Bool 1))) | ||
3154 | (\w -> case'Nat | ||
3155 | (\x -> 'VecS 'Bool (Succ (Succ x))) | ||
3156 | (_rhs (V2 True True)) | ||
3157 | (\y -> case'Nat | ||
3158 | (\z -> 'VecS 'Bool (Succ (Succ (Succ z)))) | ||
3159 | (_rhs (V3 True True True)) | ||
3160 | (\a' -> case'Nat | ||
3161 | (\b' -> 'VecS 'Bool (Succ (Succ (Succ (Succ b'))))) | ||
3162 | (_rhs (V4 True True True True)) | ||
3163 | (\c' -> _rhs (undefined ('VecS 'Bool (Succ (Succ (Succ (Succ (Succ c')))))))) | ||
3164 | a') | ||
3165 | y) | ||
3166 | w) | ||
3167 | u) | ||
3168 | g) | ||
3169 | f | ||
3170 | (_rhs (undefined ('VecS f g))))) | ||
3171 | a | ||
3172 | (match'Bool (\d' -> d') (_rhs True) a (_rhs (undefined a)))))) | ||
3173 | |||
3174 | overlay | ||
3175 | :: forall (a :: Nat) (b :: [Type]) | ||
3176 | . FrameBuffer a (map Type ImageKind FragmentOperationKind b) | ||
3177 | -> (HList b | ||
3178 | , [Fragment | ||
3179 | a | ||
3180 | (HList (imageType' (map Type ImageKind FragmentOperationKind b)))]) | ||
3181 | -> FrameBuffer a (map Type ImageKind FragmentOperationKind b) | ||
3182 | overlay | ||
3183 | = \a b c d -> hlistConsCase | ||
3184 | ('HList b) | ||
3185 | [['Vector | ||
3186 | a | ||
3187 | ('Maybe | ||
3188 | ('SimpleFragment | ||
3189 | ('HList (imageType' (map Type 'ImageKind 'FragmentOperationKind b)))))]] | ||
3190 | ('FrameBuffer a (map Type 'ImageKind 'FragmentOperationKind b)) | ||
3191 | (\e f -> hlistConsCase | ||
3192 | ['Vector | ||
3193 | a | ||
3194 | ('Maybe | ||
3195 | ('SimpleFragment | ||
3196 | ('HList (imageType' (map Type 'ImageKind 'FragmentOperationKind b)))))] | ||
3197 | [] | ||
3198 | ('FrameBuffer a (map Type 'ImageKind 'FragmentOperationKind b)) | ||
3199 | (\g h -> hlistNilCase | ||
3200 | ('FrameBuffer a (map Type 'ImageKind 'FragmentOperationKind b)) | ||
3201 | (_rhs (Accumulate (map Type 'ImageKind 'FragmentOperationKind b) a b TT e g c)) | ||
3202 | h) | ||
3203 | f) | ||
3204 | d | ||
3205 | |||
3206 | primTexture :: () -> Vec 2 Float -> Vec 4 Float | ||
3207 | primTexture = \a b -> <<builtin>> | ||
3208 | |||
1853 | rasterizePrimitive | 3209 | rasterizePrimitive |
1854 | :: forall (a :: [Type]) (b :: [Type]) (c :: [Type]) (d :: PrimitiveType) | 3210 | :: forall (a :: [Type]) (b :: [Type]) (c :: [Type]) (d :: PrimitiveType) |
1855 | . (map Type Type Interpolated a ~ (b :: [Type]) | 3211 | . (map Type Type Interpolated a ~ (b :: [Type]) |
@@ -1857,108 +3213,150 @@ rasterizePrimitive | |||
1857 | => HList b | 3213 | => HList b |
1858 | -> RasterContext (HList c) d | 3214 | -> RasterContext (HList c) d |
1859 | -> Primitive (HList c) d -> FragmentStream 1 (HList a) | 3215 | -> Primitive (HList c) d -> FragmentStream 1 (HList a) |
3216 | rasterizePrimitive = \a b c d e f g h i -> <<builtin>> | ||
3217 | |||
1860 | rasterizePrimitives | 3218 | rasterizePrimitives |
1861 | :: forall (a :: [Type]) (b :: PrimitiveType) | 3219 | :: forall (a :: [Type]) (b :: PrimitiveType) |
1862 | . RasterContext (HList (Vec 4 Float : a)) b | 3220 | . RasterContext (HList (Vec 4 Float : a)) b |
1863 | -> HList (map Type Type Interpolated a) | 3221 | -> HList (map Type Type Interpolated a) |
1864 | -> [Primitive (HList (Vec 4 Float : a)) b] | 3222 | -> [Primitive (HList (Vec 4 Float : a)) b] |
1865 | -> [Vector 1 (Maybe (SimpleFragment (HList a)))] | 3223 | -> [Vector 1 (Maybe (SimpleFragment (HList a)))] |
1866 | 'ImageLC :: Type -> Nat | 3224 | rasterizePrimitives |
1867 | allSame :: forall a . [a] -> Constraint | 3225 | = \a b c d e -> _rhs |
1868 | sameLayerCounts :: [Type] -> Constraint | 3226 | (foldr |
1869 | 'FrameBuffer :: Nat -> [ImageKind] -> Type | 3227 | ['Vector 1 ('Maybe ('SimpleFragment ('HList a)))] |
1870 | case'FrameBuffer | 3228 | ['Vector 1 ('Maybe ('SimpleFragment ('HList a)))] |
1871 | :: forall (a :: Nat) (b :: [ImageKind]) | 3229 | ((++) ('Vector 1 ('Maybe ('SimpleFragment ('HList a))))) |
1872 | . forall (c :: FrameBuffer a b -> Type) (d :: FrameBuffer a b) -> c d | 3230 | [] |
1873 | match'FrameBuffer | 3231 | (map |
1874 | :: forall (a :: Type -> Type) | 3232 | ('Primitive ('HList ('VecS 'Float 4 : a)) b) |
1875 | -> (forall (b :: Nat) (c :: [ImageKind]) -> a (FrameBuffer b c)) | 3233 | ['Vector 1 ('Maybe ('SimpleFragment ('HList a)))] |
1876 | -> forall d -> a d -> a d | 3234 | (\f -> rasterizePrimitive |
1877 | imageType' :: [ImageKind] -> [Type] | ||
1878 | 'FragmentOperationKind :: Type -> ImageKind | ||
1879 | Accumulate | ||
1880 | :: forall (a :: [ImageKind]) (b :: Nat) (c :: [Type]) | ||
1881 | . (a ~ (map Type ImageKind FragmentOperationKind c :: [ImageKind])) | ||
1882 | => HList c | ||
1883 | -> FragmentStream b (HList (imageType' a)) -> FrameBuffer b a -> FrameBuffer b a | ||
1884 | accumulateWith :: forall a b . a -> b -> (a, b) | ||
1885 | overlay | ||
1886 | :: forall (a :: Nat) (b :: [Type]) | ||
1887 | . FrameBuffer a (map Type ImageKind FragmentOperationKind b) | ||
1888 | -> (HList b | ||
1889 | , [Fragment | ||
1890 | a | 3235 | a |
1891 | (HList (imageType' (map Type ImageKind FragmentOperationKind b)))]) | 3236 | (map Type Type 'Interpolated a) |
1892 | -> FrameBuffer a (map Type ImageKind FragmentOperationKind b) | 3237 | ('VecS 'Float 4 : a) |
1893 | 'GetImageKind :: Type -> ImageKind | 3238 | b |
1894 | FrameBuffer | 3239 | TT |
1895 | :: forall (a :: [Type]) | 3240 | TT |
1896 | . sameLayerCounts a | 3241 | d |
1897 | => HList a | 3242 | c |
1898 | -> FrameBuffer (ImageLC (head Type a)) (map Type ImageKind GetImageKind a) | 3243 | f) |
1899 | imageFrame | 3244 | e)) |
1900 | :: forall (a :: [Type]) | 3245 | |
1901 | . sameLayerCounts a | ||
1902 | => HList a | ||
1903 | -> FrameBuffer (ImageLC (head Type a)) (map Type ImageKind GetImageKind a) | ||
1904 | accumulate | ||
1905 | :: forall (a :: Nat) (b :: [Type]) c | ||
1906 | . HList b | ||
1907 | -> (c -> HList (imageType' (map Type ImageKind FragmentOperationKind b))) | ||
1908 | -> [Vector a (Maybe (SimpleFragment c))] | ||
1909 | -> FrameBuffer a (map Type ImageKind FragmentOperationKind b) | ||
1910 | -> FrameBuffer a (map Type ImageKind FragmentOperationKind b) | ||
1911 | PrjImage :: forall (a :: ImageKind) . FrameBuffer 1 ' [a] -> Image 1 a | ||
1912 | PrjImageColor | ||
1913 | :: FrameBuffer 1 ' ['Depth, 'Color (Vec 4 Float)] | ||
1914 | -> Image 1 ('Color (Vec 4 Float)) | ||
1915 | 'Output :: Type | ||
1916 | ScreenOut :: forall (a :: Nat) (b :: [ImageKind]) . FrameBuffer a b -> Output | ||
1917 | case'Output | ||
1918 | :: forall (a :: Output -> Type) | ||
1919 | -> (forall (b :: Nat) (c :: [ImageKind]) | ||
1920 | . forall (d :: FrameBuffer b c) -> a ('ScreenOut b c d)) | ||
1921 | -> forall (e :: Output) -> a e | ||
1922 | match'Output :: forall (a :: Type -> Type) -> a Output -> forall b -> a b -> a b | ||
1923 | renderFrame :: forall (a :: Nat) (b :: [ImageKind]) . FrameBuffer a b -> Output | 3246 | renderFrame :: forall (a :: Nat) (b :: [ImageKind]) . FrameBuffer a b -> Output |
1924 | 'Texture :: Type | 3247 | renderFrame = _rhs ScreenOut |
1925 | Texture2DSlot :: String -> Texture | 3248 | |
1926 | Texture2D :: Vec 2 Int -> Image 1 ('Color (Vec 4 Float)) -> Texture | 3249 | sFragmentCoords :: forall a . SimpleFragment a -> VecS Float 3 |
1927 | case'Texture | 3250 | sFragmentCoords |
1928 | :: forall (a :: Texture -> Type) | 3251 | = \_ a -> case'SimpleFragment (\_ -> 'VecS 'Float 3) (\b _ -> _rhs b) a |
1929 | -> (forall (b :: String) -> a ('Texture2DSlot b)) | 3252 | |
1930 | -> (forall (c :: Vec 2 Int) (d :: Image 1 ('Color (Vec 4 Float))) | 3253 | sFragmentValue :: forall a . SimpleFragment a -> a |
1931 | -> a ('Texture2D c d)) | 3254 | sFragmentValue = \a b -> case'SimpleFragment (\_ -> a) (\_ c -> _rhs c) b |
1932 | -> forall (e :: Texture) -> a e | 3255 | |
1933 | match'Texture | 3256 | sameLayerCounts :: [Type] -> Constraint |
1934 | :: forall (a :: Type -> Type) -> a Texture -> forall b -> a b -> a b | 3257 | sameLayerCounts = \a -> _rhs (allSame 'Nat (map Type 'Nat 'ImageLC a)) |
1935 | 'Filter :: Type | 3258 | |
1936 | PointFilter :: Filter | 3259 | swizzscalar :: forall a (b :: Nat) . Vec b a -> Swizz -> a |
1937 | LinearFilter :: Filter | 3260 | swizzscalar |
1938 | case'Filter | 3261 | = \a b c d -> case'VecS |
1939 | :: forall (a :: Filter -> Type) | 3262 | (\_ _ -> a) |
1940 | -> a 'PointFilter -> a 'LinearFilter -> forall (b :: Filter) -> a b | 3263 | (\e f -> case'Swizz |
1941 | match'Filter :: forall (a :: Type -> Type) -> a Filter -> forall b -> a b -> a b | 3264 | (\_ -> a) |
1942 | 'EdgeMode :: Type | 3265 | (_rhs e) |
1943 | Repeat :: EdgeMode | 3266 | (_rhs f) |
1944 | MirroredRepeat :: EdgeMode | 3267 | (_rhs (undefined a)) |
1945 | ClampToEdge :: EdgeMode | 3268 | (_rhs (undefined a)) |
1946 | case'EdgeMode | 3269 | d) |
1947 | :: forall (a :: EdgeMode -> Type) | 3270 | (\g h i -> case'Swizz |
1948 | -> a 'Repeat | 3271 | (\_ -> a) |
1949 | -> a 'MirroredRepeat -> a 'ClampToEdge -> forall (b :: EdgeMode) -> a b | 3272 | (_rhs g) |
1950 | match'EdgeMode | 3273 | (_rhs h) |
1951 | :: forall (a :: Type -> Type) -> a EdgeMode -> forall b -> a b -> a b | 3274 | (_rhs i) |
1952 | 'Sampler :: Type | 3275 | (_rhs (undefined a)) |
1953 | Sampler :: Filter -> EdgeMode -> Texture -> Sampler | 3276 | d) |
1954 | case'Sampler | 3277 | (\j k l m -> case'Swizz (\_ -> a) (_rhs j) (_rhs k) (_rhs l) (_rhs m) d) |
1955 | :: forall (a :: Sampler -> Type) | 3278 | b |
1956 | -> (forall (b :: Filter) (c :: EdgeMode) (d :: Texture) -> a ('Sampler b c d)) | 3279 | c |
1957 | -> forall (e :: Sampler) -> a e | 3280 | |
1958 | match'Sampler | 3281 | swizzvector |
1959 | :: forall (a :: Type -> Type) -> a Sampler -> forall b -> a b -> a b | 3282 | :: forall a (b :: Nat) (c :: Nat) . Vec b a -> Vec c Swizz -> VecS a c |
3283 | swizzvector | ||
3284 | = \a b c d e -> case'Bool | ||
3285 | (\_ -> 'VecS a c) | ||
3286 | (_rhs (undefined ('VecS a c))) | ||
3287 | (_rhs (mapVec 'Swizz a c (swizzscalar a b d) e)) | ||
3288 | (definedVec a b d) | ||
3289 | |||
1960 | texture2D :: Sampler -> Vec 2 Float -> Vec 4 Float | 3290 | texture2D :: Sampler -> Vec 2 Float -> Vec 4 Float |
1961 | accumulationContext :: forall a . a -> a | 3291 | texture2D = \a b -> <<builtin>> |
3292 | |||
3293 | zero :: forall a . Component a => a | ||
3294 | zero | ||
3295 | = \a _ -> match'Int | ||
3296 | (\b -> b) | ||
3297 | (_rhs 0) | ||
3298 | a | ||
3299 | (match'Word | ||
3300 | (\c -> c) | ||
3301 | (_rhs (primIntToWord 0)) | ||
3302 | a | ||
3303 | (match'Float | ||
3304 | (\d -> d) | ||
3305 | (_rhs 0.0) | ||
3306 | a | ||
3307 | (match'VecS | ||
3308 | (\e -> e) | ||
3309 | (\f g -> match'Float | ||
3310 | (\h -> 'VecS h g) | ||
3311 | (case'Nat | ||
3312 | (\i -> 'VecS 'Float i) | ||
3313 | (_rhs (undefined ('VecS 'Float 0))) | ||
3314 | (\j -> case'Nat | ||
3315 | (\k -> 'VecS 'Float (Succ k)) | ||
3316 | (_rhs (undefined ('VecS 'Float 1))) | ||
3317 | (\l -> case'Nat | ||
3318 | (\m -> 'VecS 'Float (Succ (Succ m))) | ||
3319 | (_rhs (V2 0.0 0.0)) | ||
3320 | (\n -> case'Nat | ||
3321 | (\o -> 'VecS 'Float (Succ (Succ (Succ o)))) | ||
3322 | (_rhs (V3 0.0 0.0 0.0)) | ||
3323 | (\p -> case'Nat | ||
3324 | (\q -> 'VecS 'Float (Succ (Succ (Succ (Succ q))))) | ||
3325 | (_rhs (V4 0.0 0.0 0.0 0.0)) | ||
3326 | (\r -> _rhs (undefined ('VecS 'Float (Succ (Succ (Succ (Succ (Succ r)))))))) | ||
3327 | p) | ||
3328 | n) | ||
3329 | l) | ||
3330 | j) | ||
3331 | g) | ||
3332 | f | ||
3333 | (match'Bool | ||
3334 | (\s -> 'VecS s g) | ||
3335 | (case'Nat | ||
3336 | (\t -> 'VecS 'Bool t) | ||
3337 | (_rhs (undefined ('VecS 'Bool 0))) | ||
3338 | (\u -> case'Nat | ||
3339 | (\v -> 'VecS 'Bool (Succ v)) | ||
3340 | (_rhs (undefined ('VecS 'Bool 1))) | ||
3341 | (\w -> case'Nat | ||
3342 | (\x -> 'VecS 'Bool (Succ (Succ x))) | ||
3343 | (_rhs (V2 False False)) | ||
3344 | (\y -> case'Nat | ||
3345 | (\z -> 'VecS 'Bool (Succ (Succ (Succ z)))) | ||
3346 | (_rhs (V3 False False False)) | ||
3347 | (\a' -> case'Nat | ||
3348 | (\b' -> 'VecS 'Bool (Succ (Succ (Succ (Succ b'))))) | ||
3349 | (_rhs (V4 False False False False)) | ||
3350 | (\c' -> _rhs (undefined ('VecS 'Bool (Succ (Succ (Succ (Succ (Succ c')))))))) | ||
3351 | a') | ||
3352 | y) | ||
3353 | w) | ||
3354 | u) | ||
3355 | g) | ||
3356 | f | ||
3357 | (_rhs (undefined ('VecS f g))))) | ||
3358 | a | ||
3359 | (match'Bool (\d' -> d') (_rhs False) a (_rhs (undefined a)))))) | ||
1962 | ------------ tooltips | 3360 | ------------ tooltips |
1963 | testdata/Builtins.lc 10:1-10:3 | 3361 | testdata/Builtins.lc 10:1-10:3 |
1964 | forall a . a -> a | 3362 | forall a . a -> a |