summaryrefslogtreecommitdiff
path: root/testdata/Builtins.out
diff options
context:
space:
mode:
authorPéter Diviánszky <divipp@gmail.com>2016-05-01 19:13:34 +0200
committerPéter Diviánszky <divipp@gmail.com>2016-05-01 19:13:34 +0200
commit90e336391673ac1cf9ff582e98e35faf89a8f09d (patch)
tree0b7a14dbfc5734c07c2ae4ed34cb679fecd10d3f /testdata/Builtins.out
parent1a7544763729938e7009ead1e375e9bbf413afb0 (diff)
improve pretty print layout & show desugared source code in .out files
Diffstat (limited to 'testdata/Builtins.out')
-rw-r--r--testdata/Builtins.out1751
1 files changed, 1596 insertions, 155 deletions
diff --git a/testdata/Builtins.out b/testdata/Builtins.out
index cf554d40..e36156db 100644
--- a/testdata/Builtins.out
+++ b/testdata/Builtins.out
@@ -1,3 +1,1018 @@
1------------ desugared source code
2id = \(a :: _) -> _rhs a
3data VecS (_ :: Type) :: Nat -> Type where
4 V2 :: _a -> _a -> VecS _a (fromInt 2)
5 V3 :: _a -> _a -> _a -> VecS _a (fromInt 3)
6 V4 :: _a -> _a -> _a -> _a -> VecS _a (fromInt 4)
7mapVec
8 = (\(a :: _) (b :: _) -> 'VecSCase
9 \_ -> \_ -> _ :: _
10 \(c :: _) (d :: _) -> _rhs (V2 (a c) (a d))
11 \(e :: _) (f :: _) (g :: _) -> _rhs (V3 (a e) (a f) (a g))
12 \(h :: _) (i :: _) (j :: _) (k :: _) -> _rhs (V4 (a h) (a i) (a j) (a k))
13 b)
14 :: forall (l :: _) (m :: _) (n :: _) . (l -> m) -> VecS l n -> VecS m n
15'Vec = (\(a :: _) (b :: _) -> _rhs ('VecS b a)) :: Nat -> Type -> Type
16'VecScalar
17 = (\(a :: _) (b :: _) -> 'NatCase
18 \_ -> _ :: _
19 undefined
20 \(c :: _) -> 'NatCase
21 \_ -> _ :: _
22 (_rhs b)
23 \(d :: _) -> _rhs ('Vec (Succ (Succ d)) b)
24 c
25 a)
26 :: Nat -> Type -> Type
27data Mat :: Nat -> Nat -> Type -> Type where
28 M22F
29 :: Vec (fromInt 2) Float
30 -> Vec (fromInt 2) Float -> Mat (fromInt 2) (fromInt 2) Float
31 M32F
32 :: Vec (fromInt 3) Float
33 -> Vec (fromInt 3) Float -> Mat (fromInt 3) (fromInt 2) Float
34 M42F
35 :: Vec (fromInt 4) Float
36 -> Vec (fromInt 4) Float -> Mat (fromInt 4) (fromInt 2) Float
37 M23F
38 :: Vec (fromInt 2) Float
39 -> Vec (fromInt 2) Float
40 -> Vec (fromInt 2) Float -> Mat (fromInt 2) (fromInt 3) Float
41 M33F
42 :: Vec (fromInt 3) Float
43 -> Vec (fromInt 3) Float
44 -> Vec (fromInt 3) Float -> Mat (fromInt 3) (fromInt 3) Float
45 M43F
46 :: Vec (fromInt 4) Float
47 -> Vec (fromInt 4) Float
48 -> Vec (fromInt 4) Float -> Mat (fromInt 4) (fromInt 3) Float
49 M24F
50 :: Vec (fromInt 2) Float
51 -> Vec (fromInt 2) Float
52 -> Vec (fromInt 2) Float
53 -> Vec (fromInt 2) Float -> Mat (fromInt 2) (fromInt 4) Float
54 M34F
55 :: Vec (fromInt 3) Float
56 -> Vec (fromInt 3) Float
57 -> Vec (fromInt 3) Float
58 -> Vec (fromInt 3) Float -> Mat (fromInt 3) (fromInt 4) Float
59 M44F
60 :: Vec (fromInt 4) Float
61 -> Vec (fromInt 4) Float
62 -> Vec (fromInt 4) Float
63 -> Vec (fromInt 4) Float -> Mat (fromInt 4) (fromInt 4) Float
64'MatVecScalarElem
65 = (\(a :: _) -> match'Float
66 \_ -> _
67 (_rhs 'Float)
68 a
69 (match'Bool
70 \_ -> _
71 (_rhs 'Bool)
72 a
73 (match'Int
74 \_ -> _
75 (_rhs 'Int)
76 a
77 (match'VecS
78 \_ -> _
79 \(b :: _) -> \_ -> _rhs b
80 a
81 (match'Mat \_ -> _ \_ -> \_ (c :: _) -> _rhs c a undefined)))))
82 :: Type -> Type
83'Signed
84 = (\(a :: _) -> match'Int
85 \_ -> _
86 (_rhs 'Unit)
87 a
88 (match'Float
89 \_ -> _
90 (_rhs 'Unit)
91 a
92 (_rhs ('Empty "no instance of 'Signed on ???"))))
93 :: Type -> Type
94'Component
95 = (\(a :: _) -> match'Int
96 \_ -> _
97 (_rhs 'Unit)
98 a
99 (match'Word
100 \_ -> _
101 (_rhs 'Unit)
102 a
103 (match'Float
104 \_ -> _
105 (_rhs 'Unit)
106 a
107 (match'VecS
108 \_ -> _
109 \(b :: _) (c :: _) -> match'Float
110 \_ -> _
111 ('NatCase
112 \_ -> _ :: _
113 (_rhs ('Empty "no instance of 'Component on ???"))
114 \(d :: _) -> 'NatCase
115 \_ -> _ :: _
116 (_rhs ('Empty "no instance of 'Component on ???"))
117 \(e :: _) -> 'NatCase
118 \_ -> _ :: _
119 (_rhs 'Unit)
120 \(f :: _) -> 'NatCase
121 \_ -> _ :: _
122 (_rhs 'Unit)
123 \(g :: _) -> 'NatCase
124 \_ -> _ :: _
125 (_rhs 'Unit)
126 \_ -> _rhs ('Empty "no instance of 'Component on ???")
127 g
128 f
129 e
130 d
131 c)
132 b
133 (match'Bool
134 \_ -> _
135 ('NatCase
136 \_ -> _ :: _
137 (_rhs ('Empty "no instance of 'Component on ???"))
138 \(h :: _) -> 'NatCase
139 \_ -> _ :: _
140 (_rhs ('Empty "no instance of 'Component on ???"))
141 \(i :: _) -> 'NatCase
142 \_ -> _ :: _
143 (_rhs 'Unit)
144 \(j :: _) -> 'NatCase
145 \_ -> _ :: _
146 (_rhs 'Unit)
147 \(k :: _) -> 'NatCase
148 \_ -> _ :: _
149 (_rhs 'Unit)
150 \_ -> _rhs ('Empty "no instance of 'Component on ???")
151 k
152 j
153 i
154 h
155 c)
156 b
157 (_rhs ('Empty "no instance of 'Component on ???")))
158 a
159 (match'Bool
160 \_ -> _
161 (_rhs 'Unit)
162 a
163 (_rhs ('Empty "no instance of 'Component on ???")))))))
164 :: Type -> Type
165zero
166 = (\ @a -> \ @_ -> match'Int
167 \_ -> _
168 (_rhs \(b := _rhs (fromInt 0 :: Int)) -> b)
169 a
170 (match'Word
171 \_ -> _
172 (_rhs \(c := _rhs (fromInt 0 :: Word)) -> c)
173 a
174 (match'Float
175 \_ -> _
176 (_rhs \(d := _rhs 0.0) -> d)
177 a
178 (match'VecS
179 \_ -> _
180 \(e :: _) (f :: _) -> match'Float
181 \_ -> _
182 ('NatCase
183 \_ -> _ :: _
184 (_rhs undefined)
185 \(g :: _) -> 'NatCase
186 \_ -> _ :: _
187 (_rhs undefined)
188 \(h :: _) -> 'NatCase
189 \_ -> _ :: _
190 (_rhs \(i := _rhs (V2 0.0 0.0)) -> i)
191 \(j :: _) -> 'NatCase
192 \_ -> _ :: _
193 (_rhs \(k := _rhs (V3 0.0 0.0 0.0)) -> k)
194 \(l :: _) -> 'NatCase
195 \_ -> _ :: _
196 (_rhs \(m := _rhs (V4 0.0 0.0 0.0 0.0)) -> m)
197 \_ -> _rhs undefined
198 l
199 j
200 h
201 g
202 f)
203 e
204 (match'Bool
205 \_ -> _
206 ('NatCase
207 \_ -> _ :: _
208 (_rhs undefined)
209 \(n :: _) -> 'NatCase
210 \_ -> _ :: _
211 (_rhs undefined)
212 \(o :: _) -> 'NatCase
213 \_ -> _ :: _
214 (_rhs \(p := _rhs (V2 False False)) -> p)
215 \(q :: _) -> 'NatCase
216 \_ -> _ :: _
217 (_rhs \(r := _rhs (V3 False False False)) -> r)
218 \(s :: _) -> 'NatCase
219 \_ -> _ :: _
220 (_rhs \(t := _rhs (V4 False False False False)) -> t)
221 \_ -> _rhs undefined
222 s
223 q
224 o
225 n
226 f)
227 e
228 (_rhs undefined))
229 a
230 (match'Bool \_ -> _ (_rhs \(u := _rhs False) -> u) a (_rhs undefined))))))
231 :: forall v . Component v => v
232one
233 = (\ @a -> \ @_ -> match'Int
234 \_ -> _
235 (_rhs \(b := _rhs (fromInt 1 :: Int)) -> b)
236 a
237 (match'Word
238 \_ -> _
239 (_rhs \(c := _rhs (fromInt 1 :: Word)) -> c)
240 a
241 (match'Float
242 \_ -> _
243 (_rhs \(d := _rhs 1.0) -> d)
244 a
245 (match'VecS
246 \_ -> _
247 \(e :: _) (f :: _) -> match'Float
248 \_ -> _
249 ('NatCase
250 \_ -> _ :: _
251 (_rhs undefined)
252 \(g :: _) -> 'NatCase
253 \_ -> _ :: _
254 (_rhs undefined)
255 \(h :: _) -> 'NatCase
256 \_ -> _ :: _
257 (_rhs \(i := _rhs (V2 1.0 1.0)) -> i)
258 \(j :: _) -> 'NatCase
259 \_ -> _ :: _
260 (_rhs \(k := _rhs (V3 1.0 1.0 1.0)) -> k)
261 \(l :: _) -> 'NatCase
262 \_ -> _ :: _
263 (_rhs \(m := _rhs (V4 1.0 1.0 1.0 1.0)) -> m)
264 \_ -> _rhs undefined
265 l
266 j
267 h
268 g
269 f)
270 e
271 (match'Bool
272 \_ -> _
273 ('NatCase
274 \_ -> _ :: _
275 (_rhs undefined)
276 \(n :: _) -> 'NatCase
277 \_ -> _ :: _
278 (_rhs undefined)
279 \(o :: _) -> 'NatCase
280 \_ -> _ :: _
281 (_rhs \(p := _rhs (V2 True True)) -> p)
282 \(q :: _) -> 'NatCase
283 \_ -> _ :: _
284 (_rhs \(r := _rhs (V3 True True True)) -> r)
285 \(s :: _) -> 'NatCase
286 \_ -> _ :: _
287 (_rhs \(t := _rhs (V4 True True True True)) -> t)
288 \_ -> _rhs undefined
289 s
290 q
291 o
292 n
293 f)
294 e
295 (_rhs undefined))
296 a
297 (match'Bool \_ -> _ (_rhs \(u := _rhs True) -> u) a (_rhs undefined))))))
298 :: forall v . Component v => v
299'Integral
300 = (\(a :: _) -> match'Int
301 \_ -> _
302 (_rhs 'Unit)
303 a
304 (match'Word
305 \_ -> _
306 (_rhs 'Unit)
307 a
308 (_rhs ('Empty "no instance of 'Integral on ???"))))
309 :: Type -> Type
310'Floating
311 = (\(a :: _) -> match'Float
312 \_ -> _
313 (_rhs 'Unit)
314 a
315 (match'VecS
316 \_ -> _
317 \(b :: _) (c :: _) -> match'Float
318 \_ -> _
319 ('NatCase
320 \_ -> _ :: _
321 (_rhs ('Empty "no instance of 'Floating on ???"))
322 \(d :: _) -> 'NatCase
323 \_ -> _ :: _
324 (_rhs ('Empty "no instance of 'Floating on ???"))
325 \(e :: _) -> 'NatCase
326 \_ -> _ :: _
327 (_rhs 'Unit)
328 \(f :: _) -> 'NatCase
329 \_ -> _ :: _
330 (_rhs 'Unit)
331 \(g :: _) -> 'NatCase
332 \_ -> _ :: _
333 (_rhs 'Unit)
334 \_ -> _rhs ('Empty "no instance of 'Floating on ???")
335 g
336 f
337 e
338 d
339 c)
340 b
341 (_rhs ('Empty "no instance of 'Floating on ???"))
342 a
343 (match'Mat
344 \_ -> _
345 \(h :: _) (i :: _) (j :: _) -> 'NatCase
346 \_ -> _ :: _
347 (_rhs ('Empty "no instance of 'Floating on ???"))
348 \(k :: _) -> 'NatCase
349 \_ -> _ :: _
350 (_rhs ('Empty "no instance of 'Floating on ???"))
351 \(l :: _) -> 'NatCase
352 \_ -> _ :: _
353 ('NatCase
354 \_ -> _ :: _
355 (_rhs ('Empty "no instance of 'Floating on ???"))
356 \(m :: _) -> 'NatCase
357 \_ -> _ :: _
358 (_rhs ('Empty "no instance of 'Floating on ???"))
359 \(n :: _) -> 'NatCase
360 \_ -> _ :: _
361 (match'Float
362 \_ -> _
363 (_rhs 'Unit)
364 j
365 (_rhs ('Empty "no instance of 'Floating on ???")))
366 \(o :: _) -> 'NatCase
367 \_ -> _ :: _
368 (match'Float
369 \_ -> _
370 (_rhs 'Unit)
371 j
372 (_rhs ('Empty "no instance of 'Floating on ???")))
373 \(p :: _) -> 'NatCase
374 \_ -> _ :: _
375 (match'Float
376 \_ -> _
377 (_rhs 'Unit)
378 j
379 (_rhs ('Empty "no instance of 'Floating on ???")))
380 \_ -> _rhs ('Empty "no instance of 'Floating on ???")
381 p
382 o
383 n
384 m
385 i)
386 \(q :: _) -> 'NatCase
387 \_ -> _ :: _
388 ('NatCase
389 \_ -> _ :: _
390 (_rhs ('Empty "no instance of 'Floating on ???"))
391 \(r :: _) -> 'NatCase
392 \_ -> _ :: _
393 (_rhs ('Empty "no instance of 'Floating on ???"))
394 \(s :: _) -> 'NatCase
395 \_ -> _ :: _
396 (match'Float
397 \_ -> _
398 (_rhs 'Unit)
399 j
400 (_rhs ('Empty "no instance of 'Floating on ???")))
401 \(t :: _) -> 'NatCase
402 \_ -> _ :: _
403 (match'Float
404 \_ -> _
405 (_rhs 'Unit)
406 j
407 (_rhs ('Empty "no instance of 'Floating on ???")))
408 \(u :: _) -> 'NatCase
409 \_ -> _ :: _
410 (match'Float
411 \_ -> _
412 (_rhs 'Unit)
413 j
414 (_rhs ('Empty "no instance of 'Floating on ???")))
415 \_ -> _rhs ('Empty "no instance of 'Floating on ???")
416 u
417 t
418 s
419 r
420 i)
421 \(v :: _) -> 'NatCase
422 \_ -> _ :: _
423 ('NatCase
424 \_ -> _ :: _
425 (_rhs ('Empty "no instance of 'Floating on ???"))
426 \(w :: _) -> 'NatCase
427 \_ -> _ :: _
428 (_rhs ('Empty "no instance of 'Floating on ???"))
429 \(x :: _) -> 'NatCase
430 \_ -> _ :: _
431 (match'Float
432 \_ -> _
433 (_rhs 'Unit)
434 j
435 (_rhs ('Empty "no instance of 'Floating on ???")))
436 \(y :: _) -> 'NatCase
437 \_ -> _ :: _
438 (match'Float
439 \_ -> _
440 (_rhs 'Unit)
441 j
442 (_rhs ('Empty "no instance of 'Floating on ???")))
443 \(z :: _) -> 'NatCase
444 \_ -> _ :: _
445 (match'Float
446 \_ -> _
447 (_rhs 'Unit)
448 j
449 (_rhs ('Empty "no instance of 'Floating on ???")))
450 \_ -> _rhs ('Empty "no instance of 'Floating on ???")
451 z
452 y
453 x
454 w
455 i)
456 \_ -> _rhs ('Empty "no instance of 'Floating on ???")
457 v
458 q
459 l
460 k
461 h
462 a
463 (_rhs ('Empty "no instance of 'Floating on ???")))))
464 :: Type -> Type
465PrimAdd :: forall (a :: _) . Num (MatVecScalarElem a) => a -> a -> a
466PrimSub :: forall (a :: _) . Num (MatVecScalarElem a) => a -> a -> a
467PrimMul :: forall (a :: _) . Num (MatVecScalarElem a) => a -> a -> a
468PrimAddS
469 :: forall (a :: _) (b :: _) . (a ~ MatVecScalarElem b, Num a) => b -> a -> b
470PrimSubS
471 :: forall (a :: _) (b :: _) . (a ~ MatVecScalarElem b, Num a) => b -> a -> b
472PrimMulS
473 :: forall (a :: _) (b :: _) . (a ~ MatVecScalarElem b, Num a) => b -> a -> b
474PrimDiv
475 :: forall (a :: _) (b :: _) (c :: _) . (Num a, b ~ VecScalar c a) => b -> b -> b
476PrimMod
477 :: forall (a :: _) (b :: _) (c :: _) . (Num a, b ~ VecScalar c a) => b -> b -> b
478PrimDivS
479 :: forall (a :: _) (b :: _) (c :: _) . (Num a, b ~ VecScalar c a) => b -> a -> b
480PrimModS
481 :: forall (a :: _) (b :: _) (c :: _) . (Num a, b ~ VecScalar c a) => b -> a -> b
482PrimNeg :: forall (a :: _) . Signed (MatVecScalarElem a) => a -> a
483PrimBAnd
484 :: forall (a :: _) (b :: _) (c :: _)
485 . (Integral a, b ~ VecScalar c a) => b -> b -> b
486PrimBOr
487 :: forall (a :: _) (b :: _) (c :: _)
488 . (Integral a, b ~ VecScalar c a) => b -> b -> b
489PrimBXor
490 :: forall (a :: _) (b :: _) (c :: _)
491 . (Integral a, b ~ VecScalar c a) => b -> b -> b
492PrimBAndS
493 :: forall (a :: _) (b :: _) (c :: _)
494 . (Integral a, b ~ VecScalar c a) => b -> a -> b
495PrimBOrS
496 :: forall (a :: _) (b :: _) (c :: _)
497 . (Integral a, b ~ VecScalar c a) => b -> a -> b
498PrimBXorS
499 :: forall (a :: _) (b :: _) (c :: _)
500 . (Integral a, b ~ VecScalar c a) => b -> a -> b
501PrimBNot
502 :: forall (a :: _) (b :: _) (c :: _) . (Integral a, b ~ VecScalar c a) => b -> b
503PrimBShiftL
504 :: forall (a :: _) (b :: _) (c :: _) (d :: _)
505 . (Integral a, b ~ VecScalar c a, d ~ VecScalar c Word) => b -> d -> b
506PrimBShiftR
507 :: forall (a :: _) (b :: _) (c :: _) (d :: _)
508 . (Integral a, b ~ VecScalar c a, d ~ VecScalar c Word) => b -> d -> b
509PrimBShiftLS
510 :: forall (a :: _) (b :: _) (c :: _)
511 . (Integral a, b ~ VecScalar c a) => b -> Word -> b
512PrimBShiftRS
513 :: forall (a :: _) (b :: _) (c :: _)
514 . (Integral a, b ~ VecScalar c a) => b -> Word -> b
515PrimAnd :: Bool -> Bool -> Bool
516PrimOr :: Bool -> Bool -> Bool
517PrimXor :: Bool -> Bool -> Bool
518PrimNot :: forall (a :: _) (b :: _) . (a ~ VecScalar b Bool) => a -> a
519PrimAny :: forall (a :: _) . VecScalar a Bool -> Bool
520PrimAll :: forall (a :: _) . VecScalar a Bool -> Bool
521PrimACos :: forall (a :: _) (b :: _) . (a ~ VecScalar b Float) => a -> a
522PrimACosH :: forall (a :: _) (b :: _) . (a ~ VecScalar b Float) => a -> a
523PrimASin :: forall (a :: _) (b :: _) . (a ~ VecScalar b Float) => a -> a
524PrimASinH :: forall (a :: _) (b :: _) . (a ~ VecScalar b Float) => a -> a
525PrimATan :: forall (a :: _) (b :: _) . (a ~ VecScalar b Float) => a -> a
526PrimATanH :: forall (a :: _) (b :: _) . (a ~ VecScalar b Float) => a -> a
527PrimCos :: forall (a :: _) (b :: _) . (a ~ VecScalar b Float) => a -> a
528PrimCosH :: forall (a :: _) (b :: _) . (a ~ VecScalar b Float) => a -> a
529PrimDegrees :: forall (a :: _) (b :: _) . (a ~ VecScalar b Float) => a -> a
530PrimRadians :: forall (a :: _) (b :: _) . (a ~ VecScalar b Float) => a -> a
531PrimSin :: forall (a :: _) (b :: _) . (a ~ VecScalar b Float) => a -> a
532PrimSinH :: forall (a :: _) (b :: _) . (a ~ VecScalar b Float) => a -> a
533PrimTan :: forall (a :: _) (b :: _) . (a ~ VecScalar b Float) => a -> a
534PrimTanH :: forall (a :: _) (b :: _) . (a ~ VecScalar b Float) => a -> a
535PrimExp :: forall (a :: _) (b :: _) . (a ~ VecScalar b Float) => a -> a
536PrimLog :: forall (a :: _) (b :: _) . (a ~ VecScalar b Float) => a -> a
537PrimExp2 :: forall (a :: _) (b :: _) . (a ~ VecScalar b Float) => a -> a
538PrimLog2 :: forall (a :: _) (b :: _) . (a ~ VecScalar b Float) => a -> a
539PrimSqrt :: forall (a :: _) (b :: _) . (a ~ VecScalar b Float) => a -> a
540PrimInvSqrt :: forall (a :: _) (b :: _) . (a ~ VecScalar b Float) => a -> a
541PrimPow :: forall (a :: _) (b :: _) . (a ~ VecScalar b Float) => a -> a -> a
542PrimATan2 :: forall (a :: _) (b :: _) . (a ~ VecScalar b Float) => a -> a -> a
543PrimFloor :: forall (a :: _) (b :: _) . (a ~ VecScalar b Float) => a -> a
544PrimTrunc :: forall (a :: _) (b :: _) . (a ~ VecScalar b Float) => a -> a
545PrimRound :: forall (a :: _) (b :: _) . (a ~ VecScalar b Float) => a -> a
546PrimRoundEven :: forall (a :: _) (b :: _) . (a ~ VecScalar b Float) => a -> a
547PrimCeil :: forall (a :: _) (b :: _) . (a ~ VecScalar b Float) => a -> a
548PrimFract :: forall (a :: _) (b :: _) . (a ~ VecScalar b Float) => a -> a
549PrimMin
550 :: forall (a :: _) (b :: _) (c :: _) . (Num a, b ~ VecScalar c a) => b -> b -> b
551PrimMax
552 :: forall (a :: _) (b :: _) (c :: _) . (Num a, b ~ VecScalar c a) => b -> b -> b
553PrimMinS
554 :: forall (a :: _) (b :: _) (c :: _) . (Num a, b ~ VecScalar c a) => b -> a -> b
555PrimMaxS
556 :: forall (a :: _) (b :: _) (c :: _) . (Num a, b ~ VecScalar c a) => b -> a -> b
557PrimIsNan
558 :: forall (a :: _) (b :: _) (c :: _)
559 . (a ~ VecScalar b Float, c ~ VecScalar b Bool) => a -> c
560PrimIsInf
561 :: forall (a :: _) (b :: _) (c :: _)
562 . (a ~ VecScalar b Float, c ~ VecScalar b Bool) => a -> c
563PrimAbs
564 :: forall (a :: _) (b :: _) (c :: _) . (Signed a, b ~ VecScalar c a) => b -> b
565PrimSign
566 :: forall (a :: _) (b :: _) (c :: _) . (Signed a, b ~ VecScalar c a) => b -> b
567PrimModF
568 :: forall (a :: _) (b :: _)
569 . (a ~ VecScalar b Float) => a -> HList ('Cons a ('Cons a 'Nil))
570PrimClamp
571 :: forall (a :: _) (b :: _) (c :: _)
572 . (Num a, b ~ VecScalar c a) => b -> b -> b -> b
573PrimClampS
574 :: forall (a :: _) (b :: _) (c :: _)
575 . (Num a, b ~ VecScalar c a) => b -> a -> a -> b
576PrimMix
577 :: forall (a :: _) (b :: _) . (a ~ VecScalar b Float) => a -> a -> a -> a
578PrimMixS
579 :: forall (a :: _) (b :: _) . (a ~ VecScalar b Float) => a -> a -> Float -> a
580PrimMixB
581 :: forall (a :: _) (b :: _) (c :: _)
582 . (a ~ VecScalar b Float, c ~ VecScalar b Bool) => a -> a -> c -> a
583PrimStep :: forall (a :: _) (b :: _) . (a ~ Vec b Float) => a -> a -> a
584PrimStepS
585 :: forall (a :: _) (b :: _) . (a ~ VecScalar b Float) => Float -> a -> a
586PrimSmoothStep
587 :: forall (a :: _) (b :: _) . (a ~ Vec b Float) => a -> a -> a -> a
588PrimSmoothStepS
589 :: forall (a :: _) (b :: _)
590 . (a ~ VecScalar b Float) => Float -> Float -> a -> a
591PrimFloatBitsToInt :: forall (a :: _) . VecScalar a Float -> VecScalar a Int
592PrimFloatBitsToUInt :: forall (a :: _) . VecScalar a Float -> VecScalar a Word
593PrimIntBitsToFloat :: forall (a :: _) . VecScalar a Int -> VecScalar a Float
594PrimUIntBitsToFloat :: forall (a :: _) . VecScalar a Word -> VecScalar a Float
595PrimLength :: forall (a :: _) (b :: _) . (a ~ VecScalar b Float) => a -> Float
596PrimDistance
597 :: forall (a :: _) (b :: _) . (a ~ VecScalar b Float) => a -> a -> Float
598PrimDot :: forall (a :: _) (b :: _) . (a ~ VecScalar b Float) => a -> a -> Float
599PrimCross :: forall (a :: _) . (a ~ VecScalar (fromInt 3) Float) => a -> a -> a
600PrimNormalize :: forall (a :: _) (b :: _) . (a ~ VecScalar b Float) => a -> a
601PrimFaceForward
602 :: forall (a :: _) (b :: _) . (a ~ VecScalar b Float) => a -> a -> a -> a
603PrimRefract
604 :: forall (a :: _) (b :: _) . (a ~ VecScalar b Float) => a -> a -> a -> a
605PrimReflect :: forall (a :: _) (b :: _) . (a ~ VecScalar b Float) => a -> a -> a
606PrimTranspose :: forall (a :: _) (b :: _) (c :: _) . Mat a b c -> Mat b a c
607PrimDeterminant :: forall (a :: _) (b :: _) . Mat a a b -> Float
608PrimInverse :: forall (a :: _) (b :: _) . Mat a a b -> Mat a a b
609PrimOuterProduct
610 :: forall (a :: _) (b :: _) (c :: _) . Vec a b -> Vec c b -> Mat c a b
611PrimMulMatVec
612 :: forall (a :: _) (b :: _) (c :: _) . Mat a b c -> Vec b c -> Vec a c
613PrimMulVecMat
614 :: forall (a :: _) (b :: _) (c :: _) . Vec a b -> Mat a c b -> Vec c b
615PrimMulMatMat
616 :: forall (a :: _) (b :: _) (c :: _) (d :: _)
617 . Mat a b c -> Mat b d c -> Mat a d c
618PrimLessThan
619 :: forall (a :: _) (b :: _) (c :: _) (d :: _)
620 . (Num c, a ~ VecScalar b c, d ~ VecScalar b Bool) => a -> a -> d
621PrimLessThanEqual
622 :: forall (a :: _) (b :: _) (c :: _) (d :: _)
623 . (Num c, a ~ VecScalar b c, d ~ VecScalar b Bool) => a -> a -> d
624PrimGreaterThan
625 :: forall (a :: _) (b :: _) (c :: _) (d :: _)
626 . (Num c, a ~ VecScalar b c, d ~ VecScalar b Bool) => a -> a -> d
627PrimGreaterThanEqual
628 :: forall (a :: _) (b :: _) (c :: _) (d :: _)
629 . (Num c, a ~ VecScalar b c, d ~ VecScalar b Bool) => a -> a -> d
630PrimEqualV
631 :: forall (a :: _) (b :: _) (c :: _) (d :: _)
632 . (Num c, a ~ VecScalar b c, d ~ VecScalar b Bool) => a -> a -> d
633PrimNotEqualV
634 :: forall (a :: _) (b :: _) (c :: _) (d :: _)
635 . (Num c, a ~ VecScalar b c, d ~ VecScalar b Bool) => a -> a -> d
636PrimEqual
637 :: forall (a :: _) (b :: _) . (b ~ MatVecScalarElem a) => a -> a -> Bool
638PrimNotEqual
639 :: forall (a :: _) (b :: _) . (b ~ MatVecScalarElem a) => a -> a -> Bool
640PrimDFdx :: forall (a :: _) (b :: _) . (a ~ VecScalar b Float) => a -> a
641PrimDFdy :: forall (a :: _) (b :: _) . (a ~ VecScalar b Float) => a -> a
642PrimFWidth :: forall (a :: _) (b :: _) . (a ~ VecScalar b Float) => a -> a
643PrimNoise1 :: forall (a :: _) . VecScalar a Float -> Float
644PrimNoise2 :: forall (a :: _) . VecScalar a Float -> Vec (fromInt 2) Float
645PrimNoise3 :: forall (a :: _) . VecScalar a Float -> Vec (fromInt 3) Float
646PrimNoise4 :: forall (a :: _) . VecScalar a Float -> Vec (fromInt 4) Float
647head
648 = \(a :: _) -> 'ListCase
649 \_ -> _ :: _
650 (_rhs undefined)
651 \(b :: _) -> \_ -> _rhs b
652 a
653++
654 = \(a :: _) (b :: _) -> 'ListCase
655 \_ -> _ :: _
656 (_rhs b)
657 \(c :: _) (d :: _) -> _rhs (c : d ++ b)
658 a
659foldr
660 = \(a :: _) (b :: _) (c :: _) -> 'ListCase
661 \_ -> _ :: _
662 (_rhs b)
663 \(d :: _) (e :: _) -> _rhs (a d (foldr a b e))
664 c
665concat = _rhs (foldr ++ Nil)
666map
667 = \(a :: _) (b :: _) -> 'ListCase
668 \_ -> _ :: _
669 (_rhs Nil)
670 \(c :: _) (d :: _) -> _rhs (a c : map a d)
671 b
672concatMap
673 = (\(a :: _) (b :: _) -> _rhs (concat (map a b)))
674 :: forall (c :: _) (d :: _) . (c -> List d) -> List c -> List d
675len
676 = \(a :: _) -> 'ListCase
677 \_ -> _ :: _
678 (_rhs (fromInt 0))
679 \_ (b :: _) -> _rhs (fromInt 1 `primAddInt` len b)
680 a
681data Maybe (_ :: Type) :: Type where
682 Nothing :: Maybe _a
683 Just :: _a -> Maybe _a
684data Vector (_ :: Nat) (_ :: Type) :: Type where
685
686data PrimitiveType :: Type where
687 Triangle :: PrimitiveType
688 Line :: PrimitiveType
689 Point :: PrimitiveType
690 TriangleAdjacency :: PrimitiveType
691 LineAdjacency :: PrimitiveType
692data Primitive (_ :: Type) :: PrimitiveType -> Type where
693 PrimPoint :: _a -> Primitive _a Point
694 PrimLine :: _a -> _a -> Primitive _a Line
695 PrimTriangle :: _a -> _a -> _a -> Primitive _a Triangle
696mapPrimitive
697 :: forall (a :: _) (b :: _) (c :: _)
698 . (a -> b) -> Primitive a c -> Primitive b c
699'PrimitiveStream = \(a :: _) (b :: _) -> _rhs ('List ('Primitive b a))
700mapPrimitives
701 = (\(a :: _) -> _rhs (map (mapPrimitive a)))
702 :: forall (b :: _) (c :: _) (d :: _)
703 . (b -> c) -> PrimitiveStream d b -> PrimitiveStream d c
704'ListElem
705 = (\(a :: _) -> match'List \_ -> _ \(b :: _) -> _rhs b a undefined)
706 :: Type -> Type
707fetchArrays
708 :: forall (a :: _) (b :: _) (c :: _)
709 . (b ~ map ListElem c) => HList c -> PrimitiveStream a (HList b)
710fetch
711 :: forall (a :: _) (b :: _) . String -> HList b -> PrimitiveStream a (HList b)
712Attribute :: forall (a :: _) . String -> a
713fetchStream
714 :: forall (a :: _) (b :: List Type)
715 . String
716 -> forall (c :: List String) -> (len c ~ len b) => PrimitiveStream a (HList b)
717data SimpleFragment (_ :: Type) :: Type where
718 SimpleFragment :: Vec (fromInt 3) Float -> _a -> SimpleFragment _a
719'Fragment = \(a :: _) (b :: _) -> _rhs ('Vector a ('Maybe ('SimpleFragment b)))
720sFragmentCoords
721 = \(a :: _) -> 'SimpleFragmentCase \_ -> _ :: _ \(b :: _) -> \_ -> _rhs b a
722sFragmentValue
723 = \(a :: _) -> 'SimpleFragmentCase \_ -> _ :: _ \_ (b :: _) -> _rhs b a
724'FragmentStream = \(a :: _) (b :: _) -> _rhs ('List ('Fragment a b))
725customizeDepth
726 :: forall (a :: _) (b :: _) . (a -> Float) -> Fragment b a -> Fragment b a
727customizeDepths
728 = (\(a :: _) -> _rhs (map (customizeDepth a)))
729 :: forall (b :: _) (c :: _)
730 . (b -> Float) -> FragmentStream c b -> FragmentStream c b
731filterFragment
732 :: forall (a :: _) (b :: _) . (a -> Bool) -> Fragment b a -> Fragment b a
733filterFragments
734 = (\(a :: _) -> _rhs (map (filterFragment a)))
735 :: forall (b :: _) (c :: _)
736 . (b -> Bool) -> FragmentStream c b -> FragmentStream c b
737mapFragment
738 :: forall (a :: _) (b :: _) (c :: _) . (a -> b) -> Fragment c a -> Fragment c b
739mapFragments
740 = (\(a :: _) -> _rhs (map (mapFragment a)))
741 :: forall (b :: _) (c :: _) (d :: _)
742 . (b -> c) -> FragmentStream d b -> FragmentStream d c
743data ImageKind :: Type where
744 Color :: Type -> ImageKind
745 Depth :: ImageKind
746 Stencil :: ImageKind
747imageType
748 = (\(a :: _) -> 'ImageKindCase
749 \_ -> _ :: _
750 \(b :: _) -> _rhs b
751 (_rhs 'Float)
752 (_rhs 'Int)
753 a)
754 :: ImageKind -> Type
755data Image (_ :: Nat) (_ :: ImageKind) :: Type where
756
757ColorImage
758 :: forall (a :: _) (b :: _) (c :: _) (d :: _)
759 . (Num c, d ~ VecScalar b c) => d -> Image a (Color d)
760DepthImage :: forall (a :: _) . Float -> Image a Depth
761StencilImage :: forall (a :: _) . Int -> Image a Stencil
762emptyDepthImage = _rhs (DepthImage @(fromInt 1))
763emptyColorImage = _rhs (ColorImage @(fromInt 1))
764data Swizz :: Type where
765 Sx :: Swizz
766 Sy :: Swizz
767 Sz :: Swizz
768 Sw :: Swizz
769swizzscalar
770 = (\(a :: _) (b :: _) -> 'VecSCase
771 \_ -> \_ -> _ :: _
772 \(c :: _) (d :: _) -> 'SwizzCase
773 \_ -> _ :: _
774 (_rhs c)
775 (_rhs d)
776 (_rhs undefined)
777 (_rhs undefined)
778 b
779 \(e :: _) (f :: _) (g :: _) -> 'SwizzCase
780 \_ -> _ :: _
781 (_rhs e)
782 (_rhs f)
783 (_rhs g)
784 (_rhs undefined)
785 b
786 \(h :: _) (i :: _) (j :: _) (k :: _) -> 'SwizzCase
787 \_ -> _ :: _
788 (_rhs h)
789 (_rhs i)
790 (_rhs j)
791 (_rhs k)
792 b
793 a)
794 :: forall (l :: _) (m :: _) . Vec m l -> Swizz -> l
795definedVec
796 = (\(a :: _) -> 'VecSCase
797 \_ -> \_ -> _ :: _
798 \_ -> \_ -> _rhs True
799 \_ -> \_ -> \_ -> _rhs True
800 \_ -> \_ -> \_ -> \_ -> _rhs True
801 a)
802 :: forall (b :: _) (c :: _) . Vec c b -> Bool
803swizzvector
804 = (\(a :: _) (b :: _) -> 'BoolCase
805 \_ -> _ :: _
806 (_rhs undefined)
807 (_rhs (mapVec (swizzscalar a) b))
808 (definedVec a))
809 :: forall (c :: _) (d :: _) (e :: _) . Vec d c -> Vec e Swizz -> Vec e c
810data BlendingFactor :: Type where
811 ZeroBF :: BlendingFactor
812 OneBF :: BlendingFactor
813 SrcColor :: BlendingFactor
814 OneMinusSrcColor :: BlendingFactor
815 DstColor :: BlendingFactor
816 OneMinusDstColor :: BlendingFactor
817 SrcAlpha :: BlendingFactor
818 OneMinusSrcAlpha :: BlendingFactor
819 DstAlpha :: BlendingFactor
820 OneMinusDstAlpha :: BlendingFactor
821 ConstantColor :: BlendingFactor
822 OneMinusConstantColor :: BlendingFactor
823 ConstantAlpha :: BlendingFactor
824 OneMinusConstantAlpha :: BlendingFactor
825 SrcAlphaSaturate :: BlendingFactor
826data BlendEquation :: Type where
827 FuncAdd :: BlendEquation
828 FuncSubtract :: BlendEquation
829 FuncReverseSubtract :: BlendEquation
830 Min :: BlendEquation
831 Max :: BlendEquation
832data LogicOperation :: Type where
833 Clear :: LogicOperation
834 And :: LogicOperation
835 AndReverse :: LogicOperation
836 Copy :: LogicOperation
837 AndInverted :: LogicOperation
838 Noop :: LogicOperation
839 Xor :: LogicOperation
840 Or :: LogicOperation
841 Nor :: LogicOperation
842 Equiv :: LogicOperation
843 Invert :: LogicOperation
844 OrReverse :: LogicOperation
845 CopyInverted :: LogicOperation
846 OrInverted :: LogicOperation
847 Nand :: LogicOperation
848 Set :: LogicOperation
849data StencilOperation :: Type where
850 OpZero :: StencilOperation
851 OpKeep :: StencilOperation
852 OpReplace :: StencilOperation
853 OpIncr :: StencilOperation
854 OpIncrWrap :: StencilOperation
855 OpDecr :: StencilOperation
856 OpDecrWrap :: StencilOperation
857 OpInvert :: StencilOperation
858data ComparisonFunction :: Type where
859 Never :: ComparisonFunction
860 Less :: ComparisonFunction
861 Equal :: ComparisonFunction
862 Lequal :: ComparisonFunction
863 Greater :: ComparisonFunction
864 Notequal :: ComparisonFunction
865 Gequal :: ComparisonFunction
866 Always :: ComparisonFunction
867data ProvokingVertex :: Type where
868 LastVertex :: ProvokingVertex
869 FirstVertex :: ProvokingVertex
870data CullMode :: Type where
871 CullFront :: CullMode
872 CullBack :: CullMode
873 CullNone :: CullMode
874data PointSize (_ :: Type) :: Type where
875 PointSize :: Float -> PointSize _a
876 ProgramPointSize :: (_a -> Float) -> PointSize _a
877data PolygonMode (_ :: Type) :: Type where
878 PolygonFill :: PolygonMode _a
879 PolygonPoint :: PointSize _a -> PolygonMode _a
880 PolygonLine :: Float -> PolygonMode _a
881data PolygonOffset :: Type where
882 NoOffset :: PolygonOffset
883 Offset :: Float -> Float -> PolygonOffset
884data PointSpriteCoordOrigin :: Type where
885 LowerLeft :: PointSpriteCoordOrigin
886 UpperLeft :: PointSpriteCoordOrigin
887primTexture :: HList 'Nil -> Vec (fromInt 2) Float -> Vec (fromInt 4) Float
888Uniform :: forall (a :: _) . String -> a
889data RasterContext (_ :: Type) :: PrimitiveType -> Type where
890 TriangleCtx
891 :: CullMode
892 -> PolygonMode _a
893 -> PolygonOffset -> ProvokingVertex -> RasterContext _a Triangle
894 PointCtx
895 :: PointSize _a -> Float -> PointSpriteCoordOrigin -> RasterContext _a Point
896 LineCtx :: Float -> ProvokingVertex -> RasterContext _a Line
897data Blending :: Type -> Type where
898 NoBlending :: forall (a :: _) . Blending a
899 BlendLogicOp :: forall (b :: _) . Integral b => LogicOperation -> Blending b
900 Blend
901 :: HList ('Cons BlendEquation ('Cons BlendEquation 'Nil))
902 -> HList
903 ('Cons
904 (HList ('Cons BlendingFactor ('Cons BlendingFactor 'Nil)))
905 ('Cons (HList ('Cons BlendingFactor ('Cons BlendingFactor 'Nil))) 'Nil))
906 -> Vec (fromInt 4) Float -> Blending Float
907data StencilTests :: Type where
908
909data StencilOps :: Type where
910
911data FragmentOperation :: ImageKind -> Type where
912 ColorOp
913 :: forall (a :: _) (b :: _)
914 . Num a
915 => Blending a -> VecScalar b Bool -> FragmentOperation (Color (VecScalar b a))
916 DepthOp :: ComparisonFunction -> Bool -> FragmentOperation Depth
917 StencilOp
918 :: StencilTests -> StencilOps -> StencilOps -> FragmentOperation Stencil
919data Interpolated (_ :: Type) :: Type where
920 Smooth :: Floating _a => Interpolated _a
921 NoPerspective :: Floating _a => Interpolated _a
922 Flat :: Interpolated _a
923rasterizePrimitive
924 :: forall (a :: _) (b :: _) (c :: _) (d :: _)
925 . (map Interpolated a ~ b, c ~ 'Cons (Vec (fromInt 4) Float) a)
926 => HList b
927 -> RasterContext (HList c) d
928 -> Primitive (HList c) d -> FragmentStream (fromInt 1) (HList a)
929rasterizePrimitives
930 = \(a :: _) (b :: _) (c :: _) -> _rhs (concat (map (rasterizePrimitive b a) c))
931'ImageLC
932 = (\(a :: _) -> match'Image \_ -> _ \(b :: _) -> \_ -> _rhs b a undefined)
933 :: Type -> Nat
934allSame
935 = (\(a :: _) -> 'ListCase
936 \_ -> _ :: _
937 (_rhs 'Unit)
938 \(b :: _) (c :: _) -> 'ListCase
939 \_ -> _ :: _
940 (_rhs 'Unit)
941 \(d :: _) (e :: _) -> _rhs ('T2 (b ~ d) (allSame (d : e)))
942 c
943 a)
944 :: forall (f :: _) . List f -> Type
945sameLayerCounts = \(a :: _) -> _rhs (allSame (map 'ImageLC a))
946data FrameBuffer (_ :: Nat) (_ :: List ImageKind) :: Type where
947
948imageType'
949 = (\(a :: _) -> 'ListCase
950 \_ -> _ :: _
951 (_rhs (map imageType a))
952 \(b :: _) (c :: _) -> 'ImageKindCase
953 \_ -> _ :: _
954 \_ -> _rhs (map imageType a)
955 (_rhs (map imageType c))
956 (_rhs (map imageType a))
957 b
958 a)
959 :: List ImageKind -> List Type
960'FragmentOperationKind
961 = (\(a :: _) -> match'FragmentOperation \_ -> _ \(b :: _) -> _rhs b a undefined)
962 :: Type -> ImageKind
963Accumulate
964 :: forall (a :: _) (b :: Nat) (c :: List Type)
965 . (a ~ map FragmentOperationKind c)
966 => HList c
967 -> FragmentStream b (HList (imageType' a)) -> FrameBuffer b a -> FrameBuffer b a
968accumulateWith = \(a :: _) (b :: _) -> _rhs (HCons a (HCons b HNil))
969overlay
970 = \(a :: _) (b :: _) -> hlistConsCase
971 (_ :: _)
972 \(c :: _) (d :: _) -> hlistConsCase
973 (_ :: _)
974 \(e :: _) (f :: _) -> hlistNilCase (_ :: _) (_rhs (Accumulate c e a)) f
975 d
976 b
977infixl 0 overlay
978'GetImageKind
979 = (\(a :: _) -> match'Image \_ -> _ \_ (b :: _) -> _rhs b a undefined)
980 :: Type -> ImageKind
981FrameBuffer
982 :: forall (a :: List Type)
983 . sameLayerCounts a
984 => HList a -> FrameBuffer (ImageLC (head a)) (map GetImageKind a)
985imageFrame = _rhs FrameBuffer
986accumulate
987 = \(a :: _) (b :: _) (c :: _) (d :: _) -> _rhs
988 (Accumulate a (mapFragments b c) d)
989PrjImage
990 :: forall (a :: _)
991 . FrameBuffer (fromInt 1) ('Cons a 'Nil) -> Image (fromInt 1) a
992PrjImageColor
993 :: FrameBuffer
994 (fromInt 1)
995 ('Cons 'Depth ('Cons ('Color (Vec (fromInt 4) Float)) 'Nil))
996 -> Image (fromInt 1) (Color (Vec (fromInt 4) Float))
997data Output :: Type where
998 ScreenOut :: forall (a :: _) (b :: _) . FrameBuffer a b -> Output
999renderFrame = _rhs ScreenOut
1000data Texture :: Type where
1001 Texture2DSlot :: String -> Texture
1002 Texture2D
1003 :: Vec (fromInt 2) Int
1004 -> Image (fromInt 1) (Color (Vec (fromInt 4) Float)) -> Texture
1005data Filter :: Type where
1006 PointFilter :: Filter
1007 LinearFilter :: Filter
1008data EdgeMode :: Type where
1009 Repeat :: EdgeMode
1010 MirroredRepeat :: EdgeMode
1011 ClampToEdge :: EdgeMode
1012data Sampler :: Type where
1013 Sampler :: Filter -> EdgeMode -> Texture -> Sampler
1014texture2D :: Sampler -> Vec (fromInt 2) Float -> Vec (fromInt 4) Float
1015accumulationContext = \(a :: _) -> _rhs a
1main is not found 1016main is not found
2------------ trace 1017------------ trace
3id :: forall a . a -> a 1018id :: forall a . a -> a
@@ -5,8 +1020,16 @@ id :: forall a . a -> a
5V2 :: forall a . a -> a -> VecS a 2 1020V2 :: forall a . a -> a -> VecS a 2
6V3 :: forall a . a -> a -> a -> VecS a 3 1021V3 :: forall a . a -> a -> a -> VecS a 3
7V4 :: forall a . a -> a -> a -> a -> VecS a 4 1022V4 :: forall a . a -> a -> a -> a -> VecS a 4
8'VecSCase :: forall a . forall (b :: forall (c :: Nat) -> VecS a c -> Type) -> (forall (d :: a) (e :: a) -> b 2 ('V2 d e)) -> (forall (f :: a) (g :: a) (h :: a) -> b 3 ('V3 f g h)) -> (forall (i :: a) (j :: a) (k :: a) (l :: a) -> b 4 ('V4 i j k l)) -> forall (m :: Nat) . forall (n :: VecS a m) -> b m n 1023'VecSCase
9match'VecS :: forall (a :: Type -> Type) -> (forall b (c :: Nat) -> a (VecS b c)) -> forall d -> a d -> a d 1024 :: forall a
1025 . forall (b :: forall (c :: Nat) -> VecS a c -> Type)
1026 -> (forall (d :: a) (e :: a) -> b 2 ('V2 d e))
1027 -> (forall (f :: a) (g :: a) (h :: a) -> b 3 ('V3 f g h))
1028 -> (forall (i :: a) (j :: a) (k :: a) (l :: a) -> b 4 ('V4 i j k l))
1029 -> forall (m :: Nat) . forall (n :: VecS a m) -> b m n
1030match'VecS
1031 :: forall (a :: Type -> Type)
1032 -> (forall b (c :: Nat) -> a (VecS b c)) -> forall d -> a d -> a d
10mapVec :: forall a b (c :: Nat) . (a -> b) -> VecS a c -> VecS b c 1033mapVec :: forall a b (c :: Nat) . (a -> b) -> VecS a c -> VecS b c
11'Vec :: Nat -> Type -> Type 1034'Vec :: Nat -> Type -> Type
12'VecScalar :: Nat -> Type -> Type 1035'VecScalar :: Nat -> Type -> Type
@@ -17,11 +1040,37 @@ M42F :: Vec 4 Float -> Vec 4
17M23F :: Vec 2 Float -> Vec 2 Float -> Vec 2 Float -> Mat 2 3 Float 1040M23F :: Vec 2 Float -> Vec 2 Float -> Vec 2 Float -> Mat 2 3 Float
18M33F :: Vec 3 Float -> Vec 3 Float -> Vec 3 Float -> Mat 3 3 Float 1041M33F :: Vec 3 Float -> Vec 3 Float -> Vec 3 Float -> Mat 3 3 Float
19M43F :: Vec 4 Float -> Vec 4 Float -> Vec 4 Float -> Mat 4 3 Float 1042M43F :: Vec 4 Float -> Vec 4 Float -> Vec 4 Float -> Mat 4 3 Float
20M24F :: Vec 2 Float -> Vec 2 Float -> Vec 2 Float -> Vec 2 Float -> Mat 2 4 Float 1043M24F
21M34F :: Vec 3 Float -> Vec 3 Float -> Vec 3 Float -> Vec 3 Float -> Mat 3 4 Float 1044 :: Vec 2 Float -> Vec 2 Float -> Vec 2 Float -> Vec 2 Float -> Mat 2 4 Float
22M44F :: Vec 4 Float -> Vec 4 Float -> Vec 4 Float -> Vec 4 Float -> Mat 4 4 Float 1045M34F
23'MatCase :: forall (a :: forall (b :: Nat) (c :: Nat) d -> Mat b c d -> Type) -> (forall (e :: Vec 2 Float) (f :: Vec 2 Float) -> a 2 2 Float ('M22F e f)) -> (forall (g :: Vec 3 Float) (h :: Vec 3 Float) -> a 3 2 Float ('M32F g h)) -> (forall (i :: Vec 4 Float) (j :: Vec 4 Float) -> a 4 2 Float ('M42F i j)) -> (forall (k :: Vec 2 Float) (l :: Vec 2 Float) (m :: Vec 2 Float) -> a 2 3 Float ('M23F k l m)) -> (forall (n :: Vec 3 Float) (o :: Vec 3 Float) (p :: Vec 3 Float) -> a 3 3 Float ('M33F n o p)) -> (forall (q :: Vec 4 Float) (r :: Vec 4 Float) (s :: Vec 4 Float) -> a 4 3 Float ('M43F q r s)) -> (forall (t :: Vec 2 Float) (u :: Vec 2 Float) (v :: Vec 2 Float) (w :: Vec 2 Float) -> a 2 4 Float ('M24F t u v w)) -> (forall (x :: Vec 3 Float) (y :: Vec 3 Float) (z :: Vec 3 Float) (a' :: Vec 3 Float) -> a 3 4 Float ('M34F x y z a')) -> (forall (b' :: Vec 4 Float) (c' :: Vec 4 Float) (d' :: Vec 4 Float) (e' :: Vec 4 Float) -> a 4 4 Float ('M44F b' c' d' e')) -> forall (f' :: Nat) (g' :: Nat) h' . forall (i' :: Mat f' g' h') -> a f' g' h' i' 1046 :: Vec 3 Float -> Vec 3 Float -> Vec 3 Float -> Vec 3 Float -> Mat 3 4 Float
24match'Mat :: forall (a :: Type -> Type) -> (forall (b :: Nat) (c :: Nat) d -> a (Mat b c d)) -> forall e -> a e -> a e 1047M44F
1048 :: Vec 4 Float -> Vec 4 Float -> Vec 4 Float -> Vec 4 Float -> Mat 4 4 Float
1049'MatCase
1050 :: forall (a :: forall (b :: Nat) (c :: Nat) d -> Mat b c d -> Type)
1051 -> (forall (e :: Vec 2 Float) (f :: Vec 2 Float) -> a 2 2 Float ('M22F e f))
1052 -> (forall (g :: Vec 3 Float) (h :: Vec 3 Float) -> a 3 2 Float ('M32F g h))
1053 -> (forall (i :: Vec 4 Float) (j :: Vec 4 Float) -> a 4 2 Float ('M42F i j))
1054 -> (forall (k :: Vec 2 Float) (l :: Vec 2 Float) (m :: Vec 2 Float)
1055 -> a 2 3 Float ('M23F k l m))
1056 -> (forall (n :: Vec 3 Float) (o :: Vec 3 Float) (p :: Vec 3 Float)
1057 -> a 3 3 Float ('M33F n o p))
1058 -> (forall (q :: Vec 4 Float) (r :: Vec 4 Float) (s :: Vec 4 Float)
1059 -> a 4 3 Float ('M43F q r s))
1060 -> (forall (t :: Vec 2 Float)
1061 (u :: Vec 2 Float) (v :: Vec 2 Float) (w :: Vec 2 Float)
1062 -> a 2 4 Float ('M24F t u v w))
1063 -> (forall (x :: Vec 3 Float)
1064 (y :: Vec 3 Float) (z :: Vec 3 Float) (a' :: Vec 3 Float)
1065 -> a 3 4 Float ('M34F x y z a'))
1066 -> (forall (b' :: Vec 4 Float)
1067 (c' :: Vec 4 Float) (d' :: Vec 4 Float) (e' :: Vec 4 Float)
1068 -> a 4 4 Float ('M44F b' c' d' e'))
1069 -> forall (f' :: Nat) (g' :: Nat) h'
1070 . forall (i' :: Mat f' g' h') -> a f' g' h' i'
1071match'Mat
1072 :: forall (a :: Type -> Type)
1073 -> (forall (b :: Nat) (c :: Nat) d -> a (Mat b c d)) -> forall e -> a e -> a e
25'MatVecScalarElem :: Type -> Type 1074'MatVecScalarElem :: Type -> Type
26'Signed :: Type -> Type 1075'Signed :: Type -> Type
27'Component :: Type -> Type 1076'Component :: Type -> Type
@@ -40,17 +1089,29 @@ PrimMod :: forall a b (c :: Nat) . (Num a[0;3
40PrimDivS :: forall a b (c :: Nat) . (Num a, b ~ VecScalar c a) => b -> a -> b 1089PrimDivS :: forall a b (c :: Nat) . (Num a, b ~ VecScalar c a) => b -> a -> b
41PrimModS :: forall a b (c :: Nat) . (Num a, b ~ VecScalar c a) => b -> a -> b 1090PrimModS :: forall a b (c :: Nat) . (Num a, b ~ VecScalar c a) => b -> a -> b
42PrimNeg :: forall a . Signed (MatVecScalarElem a) => a -> a 1091PrimNeg :: forall a . Signed (MatVecScalarElem a) => a -> a
43PrimBAnd :: forall a b (c :: Nat) . (Integral a, b ~ VecScalar c a) => b -> b -> b 1092PrimBAnd
44PrimBOr :: forall a b (c :: Nat) . (Integral a, b ~ VecScalar c a) => b -> b -> b 1093 :: forall a b (c :: Nat) . (Integral a, b ~ VecScalar c a) => b -> b -> b
45PrimBXor :: forall a b (c :: Nat) . (Integral a, b ~ VecScalar c a) => b -> b -> b 1094PrimBOr
46PrimBAndS :: forall a b (c :: Nat) . (Integral a, b ~ VecScalar c a) => b -> a -> b 1095 :: forall a b (c :: Nat) . (Integral a, b ~ VecScalar c a) => b -> b -> b
47PrimBOrS :: forall a b (c :: Nat) . (Integral a, b ~ VecScalar c a) => b -> a -> b 1096PrimBXor
48PrimBXorS :: forall a b (c :: Nat) . (Integral a, b ~ VecScalar c a) => b -> a -> b 1097 :: forall a b (c :: Nat) . (Integral a, b ~ VecScalar c a) => b -> b -> b
1098PrimBAndS
1099 :: forall a b (c :: Nat) . (Integral a, b ~ VecScalar c a) => b -> a -> b
1100PrimBOrS
1101 :: forall a b (c :: Nat) . (Integral a, b ~ VecScalar c a) => b -> a -> b
1102PrimBXorS
1103 :: forall a b (c :: Nat) . (Integral a, b ~ VecScalar c a) => b -> a -> b
49PrimBNot :: forall a b (c :: Nat) . (Integral a, b ~ VecScalar c a) => b -> b 1104PrimBNot :: forall a b (c :: Nat) . (Integral a, b ~ VecScalar c a) => b -> b
50PrimBShiftL :: forall a b (c :: Nat) d . (Integral a, b ~ VecScalar c a, d ~ VecScalar c Word) => b -> d -> b 1105PrimBShiftL
51PrimBShiftR :: forall a b (c :: Nat) d . (Integral a, b ~ VecScalar c a, d ~ VecScalar c Word) => b -> d -> b 1106 :: forall a b (c :: Nat) d
52PrimBShiftLS :: forall a b (c :: Nat) . (Integral a, b ~ VecScalar c a) => b -> Word -> b 1107 . (Integral a, b ~ VecScalar c a, d ~ VecScalar c Word) => b -> d -> b
53PrimBShiftRS :: forall a b (c :: Nat) . (Integral a, b ~ VecScalar c a) => b -> Word -> b 1108PrimBShiftR
1109 :: forall a b (c :: Nat) d
1110 . (Integral a, b ~ VecScalar c a, d ~ VecScalar c Word) => b -> d -> b
1111PrimBShiftLS
1112 :: forall a b (c :: Nat) . (Integral a, b ~ VecScalar c a) => b -> Word -> b
1113PrimBShiftRS
1114 :: forall a b (c :: Nat) . (Integral a, b ~ VecScalar c a) => b -> Word -> b
54PrimAnd :: Bool -> Bool -> Bool 1115PrimAnd :: Bool -> Bool -> Bool
55PrimOr :: Bool -> Bool -> Bool 1116PrimOr :: Bool -> Bool -> Bool
56PrimXor :: Bool -> Bool -> Bool 1117PrimXor :: Bool -> Bool -> Bool
@@ -89,20 +1150,30 @@ PrimMin :: forall a b (c :: Nat) . (Num a[0;3
89PrimMax :: forall a b (c :: Nat) . (Num a, b ~ VecScalar c a) => b -> b -> b 1150PrimMax :: forall a b (c :: Nat) . (Num a, b ~ VecScalar c a) => b -> b -> b
90PrimMinS :: forall a b (c :: Nat) . (Num a, b ~ VecScalar c a) => b -> a -> b 1151PrimMinS :: forall a b (c :: Nat) . (Num a, b ~ VecScalar c a) => b -> a -> b
91PrimMaxS :: forall a b (c :: Nat) . (Num a, b ~ VecScalar c a) => b -> a -> b 1152PrimMaxS :: forall a b (c :: Nat) . (Num a, b ~ VecScalar c a) => b -> a -> b
92PrimIsNan :: forall a (b :: Nat) c . (a ~ VecScalar b Float, c ~ VecScalar b Bool) => a -> c 1153PrimIsNan
93PrimIsInf :: forall a (b :: Nat) c . (a ~ VecScalar b Float, c ~ VecScalar b Bool) => a -> c 1154 :: forall a (b :: Nat) c
1155 . (a ~ VecScalar b Float, c ~ VecScalar b Bool) => a -> c
1156PrimIsInf
1157 :: forall a (b :: Nat) c
1158 . (a ~ VecScalar b Float, c ~ VecScalar b Bool) => a -> c
94PrimAbs :: forall a b (c :: Nat) . (Signed a, b ~ VecScalar c a) => b -> b 1159PrimAbs :: forall a b (c :: Nat) . (Signed a, b ~ VecScalar c a) => b -> b
95PrimSign :: forall a b (c :: Nat) . (Signed a, b ~ VecScalar c a) => b -> b 1160PrimSign :: forall a b (c :: Nat) . (Signed a, b ~ VecScalar c a) => b -> b
96PrimModF :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> (a, a) 1161PrimModF :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> (a, a)
97PrimClamp :: forall a b (c :: Nat) . (Num a, b ~ VecScalar c a) => b -> b -> b -> b 1162PrimClamp
98PrimClampS :: forall a b (c :: Nat) . (Num a, b ~ VecScalar c a) => b -> a -> a -> b 1163 :: forall a b (c :: Nat) . (Num a, b ~ VecScalar c a) => b -> b -> b -> b
1164PrimClampS
1165 :: forall a b (c :: Nat) . (Num a, b ~ VecScalar c a) => b -> a -> a -> b
99PrimMix :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a -> a -> a 1166PrimMix :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a -> a -> a
100PrimMixS :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a -> Float -> a 1167PrimMixS
101PrimMixB :: forall a (b :: Nat) c . (a ~ VecScalar b Float, c ~ VecScalar b Bool) => a -> a -> c -> a 1168 :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a -> Float -> a
1169PrimMixB
1170 :: forall a (b :: Nat) c
1171 . (a ~ VecScalar b Float, c ~ VecScalar b Bool) => a -> a -> c -> a
102PrimStep :: forall a (b :: Nat) . (a ~ VecS Float b) => a -> a -> a 1172PrimStep :: forall a (b :: Nat) . (a ~ VecS Float b) => a -> a -> a
103PrimStepS :: forall a (b :: Nat) . (a ~ VecScalar b Float) => Float -> a -> a 1173PrimStepS :: forall a (b :: Nat) . (a ~ VecScalar b Float) => Float -> a -> a
104PrimSmoothStep :: forall a (b :: Nat) . (a ~ VecS Float b) => a -> a -> a -> a 1174PrimSmoothStep :: forall a (b :: Nat) . (a ~ VecS Float b) => a -> a -> a -> a
105PrimSmoothStepS :: forall a (b :: Nat) . (a ~ VecScalar b Float) => Float -> Float -> a -> a 1175PrimSmoothStepS
1176 :: forall a (b :: Nat) . (a ~ VecScalar b Float) => Float -> Float -> a -> a
106PrimFloatBitsToInt :: forall (a :: Nat) . VecScalar a Float -> VecScalar a Int 1177PrimFloatBitsToInt :: forall (a :: Nat) . VecScalar a Float -> VecScalar a Int
107PrimFloatBitsToUInt :: forall (a :: Nat) . VecScalar a Float -> VecScalar a Word 1178PrimFloatBitsToUInt :: forall (a :: Nat) . VecScalar a Float -> VecScalar a Word
108PrimIntBitsToFloat :: forall (a :: Nat) . VecScalar a Int -> VecScalar a Float 1179PrimIntBitsToFloat :: forall (a :: Nat) . VecScalar a Int -> VecScalar a Float
@@ -112,22 +1183,40 @@ PrimDistance :: forall a (b :: Nat) . (a ~ [3
112PrimDot :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a -> Float 1183PrimDot :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a -> Float
113PrimCross :: forall a . (a ~ VecS Float 3) => a -> a -> a 1184PrimCross :: forall a . (a ~ VecS Float 3) => a -> a -> a
114PrimNormalize :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a 1185PrimNormalize :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a
115PrimFaceForward :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a -> a -> a 1186PrimFaceForward
1187 :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a -> a -> a
116PrimRefract :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a -> a -> a 1188PrimRefract :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a -> a -> a
117PrimReflect :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a -> a 1189PrimReflect :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a -> a
118PrimTranspose :: forall (a :: Nat) (b :: Nat) c . Mat a b c -> Mat b a c 1190PrimTranspose :: forall (a :: Nat) (b :: Nat) c . Mat a b c -> Mat b a c
119PrimDeterminant :: forall (a :: Nat) b . Mat a a b -> Float 1191PrimDeterminant :: forall (a :: Nat) b . Mat a a b -> Float
120PrimInverse :: forall (a :: Nat) b . Mat a a b -> Mat a a b 1192PrimInverse :: forall (a :: Nat) b . Mat a a b -> Mat a a b
121PrimOuterProduct :: forall (a :: Nat) b (c :: Nat) . Vec a b -> Vec c b -> Mat c a b 1193PrimOuterProduct
122PrimMulMatVec :: forall (a :: Nat) (b :: Nat) c . Mat a b c -> Vec b c -> Vec a c 1194 :: forall (a :: Nat) b (c :: Nat) . Vec a b -> Vec c b -> Mat c a b
123PrimMulVecMat :: forall (a :: Nat) b (c :: Nat) . Vec a b -> Mat a c b -> Vec c b 1195PrimMulMatVec
124PrimMulMatMat :: forall (a :: Nat) (b :: Nat) c (d :: Nat) . Mat a b c -> Mat b d c -> Mat a d c 1196 :: forall (a :: Nat) (b :: Nat) c . Mat a b c -> Vec b c -> Vec a c
125PrimLessThan :: forall a (b :: Nat) c d . (Num c, a ~ VecScalar b c, d ~ VecScalar b Bool) => a -> a -> d 1197PrimMulVecMat
126PrimLessThanEqual :: forall a (b :: Nat) c d . (Num c, a ~ VecScalar b c, d ~ VecScalar b Bool) => a -> a -> d 1198 :: forall (a :: Nat) b (c :: Nat) . Vec a b -> Mat a c b -> Vec c b
127PrimGreaterThan :: forall a (b :: Nat) c d . (Num c, a ~ VecScalar b c, d ~ VecScalar b Bool) => a -> a -> d 1199PrimMulMatMat
128PrimGreaterThanEqual :: forall a (b :: Nat) c d . (Num c, a ~ VecScalar b c, d ~ VecScalar b Bool) => a -> a -> d 1200 :: forall (a :: Nat) (b :: Nat) c (d :: Nat)
129PrimEqualV :: forall a (b :: Nat) c d . (Num c, a ~ VecScalar b c, d ~ VecScalar b Bool) => a -> a -> d 1201 . Mat a b c -> Mat b d c -> Mat a d c
130PrimNotEqualV :: forall a (b :: Nat) c d . (Num c, a ~ VecScalar b c, d ~ VecScalar b Bool) => a -> a -> d 1202PrimLessThan
1203 :: forall a (b :: Nat) c d
1204 . (Num c, a ~ VecScalar b c, d ~ VecScalar b Bool) => a -> a -> d
1205PrimLessThanEqual
1206 :: forall a (b :: Nat) c d
1207 . (Num c, a ~ VecScalar b c, d ~ VecScalar b Bool) => a -> a -> d
1208PrimGreaterThan
1209 :: forall a (b :: Nat) c d
1210 . (Num c, a ~ VecScalar b c, d ~ VecScalar b Bool) => a -> a -> d
1211PrimGreaterThanEqual
1212 :: forall a (b :: Nat) c d
1213 . (Num c, a ~ VecScalar b c, d ~ VecScalar b Bool) => a -> a -> d
1214PrimEqualV
1215 :: forall a (b :: Nat) c d
1216 . (Num c, a ~ VecScalar b c, d ~ VecScalar b Bool) => a -> a -> d
1217PrimNotEqualV
1218 :: forall a (b :: Nat) c d
1219 . (Num c, a ~ VecScalar b c, d ~ VecScalar b Bool) => a -> a -> d
131PrimEqual :: forall a b . (b ~ MatVecScalarElem a) => a -> a -> Bool 1220PrimEqual :: forall a b . (b ~ MatVecScalarElem a) => a -> a -> Bool
132PrimNotEqual :: forall a b . (b ~ MatVecScalarElem a) => a -> a -> Bool 1221PrimNotEqual :: forall a b . (b ~ MatVecScalarElem a) => a -> a -> Bool
133PrimDFdx :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a 1222PrimDFdx :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a
@@ -147,72 +1236,144 @@ len :: forall a . List a -> Int
147'Maybe :: Type -> Type 1236'Maybe :: Type -> Type
148Nothing :: forall a . Maybe a 1237Nothing :: forall a . Maybe a
149Just :: forall a . a -> Maybe a 1238Just :: forall a . a -> Maybe a
150'MaybeCase :: forall a . forall (b :: Maybe a -> Type) -> b 'Nothing -> (forall (c :: a) -> b ('Just c)) -> forall (d :: Maybe a) -> b d 1239'MaybeCase
151match'Maybe :: forall (a :: Type -> Type) -> (forall b -> a (Maybe b)) -> forall c -> a c -> a c 1240 :: forall a
1241 . forall (b :: Maybe a -> Type)
1242 -> b 'Nothing
1243 -> (forall (c :: a) -> b ('Just c)) -> forall (d :: Maybe a) -> b d
1244match'Maybe
1245 :: forall (a :: Type -> Type)
1246 -> (forall b -> a (Maybe b)) -> forall c -> a c -> a c
152'Vector :: Nat -> Type -> Type 1247'Vector :: Nat -> Type -> Type
153'VectorCase :: forall (a :: Nat) b . forall (c :: Vector a b -> Type) (d :: Vector a b) -> c d 1248'VectorCase
154match'Vector :: forall (a :: Type -> Type) -> (forall (b :: Nat) c -> a (Vector b c)) -> forall d -> a d -> a d 1249 :: forall (a :: Nat) b
1250 . forall (c :: Vector a b -> Type) (d :: Vector a b) -> c d
1251match'Vector
1252 :: forall (a :: Type -> Type)
1253 -> (forall (b :: Nat) c -> a (Vector b c)) -> forall d -> a d -> a d
155'PrimitiveType :: Type 1254'PrimitiveType :: Type
156Triangle :: PrimitiveType 1255Triangle :: PrimitiveType
157Line :: PrimitiveType 1256Line :: PrimitiveType
158Point :: PrimitiveType 1257Point :: PrimitiveType
159TriangleAdjacency :: PrimitiveType 1258TriangleAdjacency :: PrimitiveType
160LineAdjacency :: PrimitiveType 1259LineAdjacency :: PrimitiveType
161'PrimitiveTypeCase :: forall (a :: PrimitiveType -> Type) -> a 'Triangle -> a 'Line -> a 'Point -> a 'TriangleAdjacency -> a 'LineAdjacency -> forall (b :: PrimitiveType) -> a b 1260'PrimitiveTypeCase
162match'PrimitiveType :: forall (a :: Type -> Type) -> a PrimitiveType -> forall b -> a b -> a b 1261 :: forall (a :: PrimitiveType -> Type)
1262 -> a 'Triangle
1263 -> a 'Line
1264 -> a 'Point
1265 -> a 'TriangleAdjacency
1266 -> a 'LineAdjacency -> forall (b :: PrimitiveType) -> a b
1267match'PrimitiveType
1268 :: forall (a :: Type -> Type) -> a PrimitiveType -> forall b -> a b -> a b
163'Primitive :: Type -> PrimitiveType -> Type 1269'Primitive :: Type -> PrimitiveType -> Type
164PrimPoint :: forall a . a -> Primitive a 'Point 1270PrimPoint :: forall a . a -> Primitive a 'Point
165PrimLine :: forall a . a -> a -> Primitive a 'Line 1271PrimLine :: forall a . a -> a -> Primitive a 'Line
166PrimTriangle :: forall a . a -> a -> a -> Primitive a 'Triangle 1272PrimTriangle :: forall a . a -> a -> a -> Primitive a 'Triangle
167'PrimitiveCase :: forall a . forall (b :: forall (c :: PrimitiveType) -> Primitive a c -> Type) -> (forall (d :: a) -> b 'Point ('PrimPoint d)) -> (forall (e :: a) (f :: a) -> b 'Line ('PrimLine e f)) -> (forall (g :: a) (h :: a) (i :: a) -> b 'Triangle ('PrimTriangle g h i)) -> forall (j :: PrimitiveType) . forall (k :: Primitive a j) -> b j k 1273'PrimitiveCase
168match'Primitive :: forall (a :: Type -> Type) -> (forall b (c :: PrimitiveType) -> a (Primitive b c)) -> forall d -> a d -> a d 1274 :: forall a
169mapPrimitive :: forall a b (c :: PrimitiveType) . (a -> b) -> Primitive a c -> Primitive b c 1275 . forall (b :: forall (c :: PrimitiveType) -> Primitive a c -> Type)
1276 -> (forall (d :: a) -> b 'Point ('PrimPoint d))
1277 -> (forall (e :: a) (f :: a) -> b 'Line ('PrimLine e f))
1278 -> (forall (g :: a) (h :: a) (i :: a) -> b 'Triangle ('PrimTriangle g h i))
1279 -> forall (j :: PrimitiveType) . forall (k :: Primitive a j) -> b j k
1280match'Primitive
1281 :: forall (a :: Type -> Type)
1282 -> (forall b (c :: PrimitiveType) -> a (Primitive b c))
1283 -> forall d -> a d -> a d
1284mapPrimitive
1285 :: forall a b (c :: PrimitiveType) . (a -> b) -> Primitive a c -> Primitive b c
170'PrimitiveStream :: PrimitiveType -> Type -> Type 1286'PrimitiveStream :: PrimitiveType -> Type -> Type
171mapPrimitives :: forall a b (c :: PrimitiveType) . (a -> b) -> List (Primitive a c) -> List (Primitive b c) 1287mapPrimitives
1288 :: forall a b (c :: PrimitiveType)
1289 . (a -> b) -> List (Primitive a c) -> List (Primitive b c)
172'ListElem :: Type -> Type 1290'ListElem :: Type -> Type
173fetchArrays :: forall (a :: PrimitiveType) (b :: List Type) (c :: List Type) . (b ~ map Type Type ListElem c) => HList c -> PrimitiveStream a (HList b) 1291fetchArrays
174fetch :: forall (a :: PrimitiveType) (b :: List Type) . String -> HList b -> PrimitiveStream a (HList b) 1292 :: forall (a :: PrimitiveType) (b :: List Type) (c :: List Type)
1293 . (b ~ map Type Type ListElem c) => HList c -> PrimitiveStream a (HList b)
1294fetch
1295 :: forall (a :: PrimitiveType) (b :: List Type)
1296 . String -> HList b -> PrimitiveStream a (HList b)
175Attribute :: forall a . String -> a 1297Attribute :: forall a . String -> a
176fetchStream :: forall (a :: PrimitiveType) (b :: List Type) . String -> forall (c :: List String) -> (len String c ~ len Type b) => PrimitiveStream a (HList b) 1298fetchStream
1299 :: forall (a :: PrimitiveType) (b :: List Type)
1300 . String
1301 -> forall (c :: List String)
1302 -> (len String c ~ len Type b) => PrimitiveStream a (HList b)
177'SimpleFragment :: Type -> Type 1303'SimpleFragment :: Type -> Type
178SimpleFragment :: forall a . Vec 3 Float -> a -> SimpleFragment a 1304SimpleFragment :: forall a . Vec 3 Float -> a -> SimpleFragment a
179'SimpleFragmentCase :: forall a . forall (b :: SimpleFragment a -> Type) -> (forall (c :: Vec 3 Float) (d :: a) -> b ('SimpleFragment c d)) -> forall (e :: SimpleFragment a) -> b e 1305'SimpleFragmentCase
180match'SimpleFragment :: forall (a :: Type -> Type) -> (forall b -> a (SimpleFragment b)) -> forall c -> a c -> a c 1306 :: forall a
1307 . forall (b :: SimpleFragment a -> Type)
1308 -> (forall (c :: Vec 3 Float) (d :: a) -> b ('SimpleFragment c d))
1309 -> forall (e :: SimpleFragment a) -> b e
1310match'SimpleFragment
1311 :: forall (a :: Type -> Type)
1312 -> (forall b -> a (SimpleFragment b)) -> forall c -> a c -> a c
181'Fragment :: Nat -> Type -> Type 1313'Fragment :: Nat -> Type -> Type
182sFragmentCoords :: forall a . SimpleFragment a -> VecS Float 3 1314sFragmentCoords :: forall a . SimpleFragment a -> VecS Float 3
183sFragmentValue :: forall a . SimpleFragment a -> a 1315sFragmentValue :: forall a . SimpleFragment a -> a
184'FragmentStream :: Nat -> Type -> Type 1316'FragmentStream :: Nat -> Type -> Type
185customizeDepth :: forall a (b :: Nat) . (a -> Float) -> Fragment b a -> Fragment b a 1317customizeDepth
186customizeDepths :: forall a (b :: Nat) . (a -> Float) -> List (Vector b (Maybe (SimpleFragment a))) -> List (Vector b (Maybe (SimpleFragment a))) 1318 :: forall a (b :: Nat) . (a -> Float) -> Fragment b a -> Fragment b a
187filterFragment :: forall a (b :: Nat) . (a -> Bool) -> Fragment b a -> Fragment b a 1319customizeDepths
188filterFragments :: forall a (b :: Nat) . (a -> Bool) -> List (Vector b (Maybe (SimpleFragment a))) -> List (Vector b (Maybe (SimpleFragment a))) 1320 :: forall a (b :: Nat)
1321 . (a -> Float)
1322 -> List (Vector b (Maybe (SimpleFragment a)))
1323 -> List (Vector b (Maybe (SimpleFragment a)))
1324filterFragment
1325 :: forall a (b :: Nat) . (a -> Bool) -> Fragment b a -> Fragment b a
1326filterFragments
1327 :: forall a (b :: Nat)
1328 . (a -> Bool)
1329 -> List (Vector b (Maybe (SimpleFragment a)))
1330 -> List (Vector b (Maybe (SimpleFragment a)))
189mapFragment :: forall a b (c :: Nat) . (a -> b) -> Fragment c a -> Fragment c b 1331mapFragment :: forall a b (c :: Nat) . (a -> b) -> Fragment c a -> Fragment c b
190mapFragments :: forall a b (c :: Nat) . (a -> b) -> List (Vector c (Maybe (SimpleFragment a))) -> List (Vector c (Maybe (SimpleFragment b))) 1332mapFragments
1333 :: forall a b (c :: Nat)
1334 . (a -> b)
1335 -> List (Vector c (Maybe (SimpleFragment a)))
1336 -> List (Vector c (Maybe (SimpleFragment b)))
191'ImageKind :: Type 1337'ImageKind :: Type
192Color :: Type -> ImageKind 1338Color :: Type -> ImageKind
193Depth :: ImageKind 1339Depth :: ImageKind
194Stencil :: ImageKind 1340Stencil :: ImageKind
195'ImageKindCase :: forall (a :: ImageKind -> Type) -> (forall b -> a ('Color b)) -> a 'Depth -> a 'Stencil -> forall (c :: ImageKind) -> a c 1341'ImageKindCase
196match'ImageKind :: forall (a :: Type -> Type) -> a ImageKind -> forall b -> a b -> a b 1342 :: forall (a :: ImageKind -> Type)
1343 -> (forall b -> a ('Color b))
1344 -> a 'Depth -> a 'Stencil -> forall (c :: ImageKind) -> a c
1345match'ImageKind
1346 :: forall (a :: Type -> Type) -> a ImageKind -> forall b -> a b -> a b
197imageType :: ImageKind -> Type 1347imageType :: ImageKind -> Type
198'Image :: Nat -> ImageKind -> Type 1348'Image :: Nat -> ImageKind -> Type
199'ImageCase :: forall (a :: Nat) (b :: ImageKind) . forall (c :: Image a b -> Type) (d :: Image a b) -> c d 1349'ImageCase
200match'Image :: forall (a :: Type -> Type) -> (forall (b :: Nat) (c :: ImageKind) -> a (Image b c)) -> forall d -> a d -> a d 1350 :: forall (a :: Nat) (b :: ImageKind)
201ColorImage :: forall (a :: Nat) (b :: Nat) c d . (Num c, d ~ VecScalar b c) => d -> Image a ('Color d) 1351 . forall (c :: Image a b -> Type) (d :: Image a b) -> c d
1352match'Image
1353 :: forall (a :: Type -> Type)
1354 -> (forall (b :: Nat) (c :: ImageKind) -> a (Image b c))
1355 -> forall d -> a d -> a d
1356ColorImage
1357 :: forall (a :: Nat) (b :: Nat) c d
1358 . (Num c, d ~ VecScalar b c) => d -> Image a ('Color d)
202DepthImage :: forall (a :: Nat) . Float -> Image a 'Depth 1359DepthImage :: forall (a :: Nat) . Float -> Image a 'Depth
203StencilImage :: forall (a :: Nat) . Int -> Image a 'Stencil 1360StencilImage :: forall (a :: Nat) . Int -> Image a 'Stencil
204emptyDepthImage :: Float -> Image 1 'Depth 1361emptyDepthImage :: Float -> Image 1 'Depth
205emptyColorImage :: forall (a :: Nat) b c . (Num b, c ~ VecScalar a b) => c -> Image 1 ('Color c) 1362emptyColorImage
1363 :: forall (a :: Nat) b c . (Num b, c ~ VecScalar a b) => c -> Image 1 ('Color c)
206'Swizz :: Type 1364'Swizz :: Type
207Sx :: Swizz 1365Sx :: Swizz
208Sy :: Swizz 1366Sy :: Swizz
209Sz :: Swizz 1367Sz :: Swizz
210Sw :: Swizz 1368Sw :: Swizz
211'SwizzCase :: forall (a :: Swizz -> Type) -> a 'Sx -> a 'Sy -> a 'Sz -> a 'Sw -> forall (b :: Swizz) -> a b 1369'SwizzCase
1370 :: forall (a :: Swizz -> Type)
1371 -> a 'Sx -> a 'Sy -> a 'Sz -> a 'Sw -> forall (b :: Swizz) -> a b
212match'Swizz :: forall (a :: Type -> Type) -> a Swizz -> forall b -> a b -> a b 1372match'Swizz :: forall (a :: Type -> Type) -> a Swizz -> forall b -> a b -> a b
213swizzscalar :: forall a (b :: Nat) . Vec b a -> Swizz -> a 1373swizzscalar :: forall a (b :: Nat) . Vec b a -> Swizz -> a
214definedVec :: forall a (b :: Nat) . Vec b a -> Bool 1374definedVec :: forall a (b :: Nat) . Vec b a -> Bool
215swizzvector :: forall a (b :: Nat) (c :: Nat) . Vec b a -> Vec c Swizz -> VecS a c 1375swizzvector
1376 :: forall a (b :: Nat) (c :: Nat) . Vec b a -> Vec c Swizz -> VecS a c
216'BlendingFactor :: Type 1377'BlendingFactor :: Type
217ZeroBF :: BlendingFactor 1378ZeroBF :: BlendingFactor
218OneBF :: BlendingFactor 1379OneBF :: BlendingFactor
@@ -229,16 +1390,39 @@ OneMinusConstantColor :: BlendingFactor
229ConstantAlpha :: BlendingFactor 1390ConstantAlpha :: BlendingFactor
230OneMinusConstantAlpha :: BlendingFactor 1391OneMinusConstantAlpha :: BlendingFactor
231SrcAlphaSaturate :: BlendingFactor 1392SrcAlphaSaturate :: BlendingFactor
232'BlendingFactorCase :: forall (a :: BlendingFactor -> Type) -> a 'ZeroBF -> a 'OneBF -> a 'SrcColor -> a 'OneMinusSrcColor -> a 'DstColor -> a 'OneMinusDstColor -> a 'SrcAlpha -> a 'OneMinusSrcAlpha -> a 'DstAlpha -> a 'OneMinusDstAlpha -> a 'ConstantColor -> a 'OneMinusConstantColor -> a 'ConstantAlpha -> a 'OneMinusConstantAlpha -> a 'SrcAlphaSaturate -> forall (b :: BlendingFactor) -> a b 1393'BlendingFactorCase
233match'BlendingFactor :: forall (a :: Type -> Type) -> a BlendingFactor -> forall b -> a b -> a b 1394 :: forall (a :: BlendingFactor -> Type)
1395 -> a 'ZeroBF
1396 -> a 'OneBF
1397 -> a 'SrcColor
1398 -> a 'OneMinusSrcColor
1399 -> a 'DstColor
1400 -> a 'OneMinusDstColor
1401 -> a 'SrcAlpha
1402 -> a 'OneMinusSrcAlpha
1403 -> a 'DstAlpha
1404 -> a 'OneMinusDstAlpha
1405 -> a 'ConstantColor
1406 -> a 'OneMinusConstantColor
1407 -> a 'ConstantAlpha
1408 -> a 'OneMinusConstantAlpha
1409 -> a 'SrcAlphaSaturate -> forall (b :: BlendingFactor) -> a b
1410match'BlendingFactor
1411 :: forall (a :: Type -> Type) -> a BlendingFactor -> forall b -> a b -> a b
234'BlendEquation :: Type 1412'BlendEquation :: Type
235FuncAdd :: BlendEquation 1413FuncAdd :: BlendEquation
236FuncSubtract :: BlendEquation 1414FuncSubtract :: BlendEquation
237FuncReverseSubtract :: BlendEquation 1415FuncReverseSubtract :: BlendEquation
238Min :: BlendEquation 1416Min :: BlendEquation
239Max :: BlendEquation 1417Max :: BlendEquation
240'BlendEquationCase :: forall (a :: BlendEquation -> Type) -> a 'FuncAdd -> a 'FuncSubtract -> a 'FuncReverseSubtract -> a 'Min -> a 'Max -> forall (b :: BlendEquation) -> a b 1418'BlendEquationCase
241match'BlendEquation :: forall (a :: Type -> Type) -> a BlendEquation -> forall b -> a b -> a b 1419 :: forall (a :: BlendEquation -> Type)
1420 -> a 'FuncAdd
1421 -> a 'FuncSubtract
1422 -> a 'FuncReverseSubtract
1423 -> a 'Min -> a 'Max -> forall (b :: BlendEquation) -> a b
1424match'BlendEquation
1425 :: forall (a :: Type -> Type) -> a BlendEquation -> forall b -> a b -> a b
242'LogicOperation :: Type 1426'LogicOperation :: Type
243Clear :: LogicOperation 1427Clear :: LogicOperation
244And :: LogicOperation 1428And :: LogicOperation
@@ -256,8 +1440,24 @@ CopyInverted :: LogicOperation
256OrInverted :: LogicOperation 1440OrInverted :: LogicOperation
257Nand :: LogicOperation 1441Nand :: LogicOperation
258Set :: LogicOperation 1442Set :: LogicOperation
259'LogicOperationCase :: forall (a :: LogicOperation -> Type) -> a 'Clear -> a 'And -> a 'AndReverse -> a 'Copy -> a 'AndInverted -> a 'Noop -> a 'Xor -> a 'Or -> a 'Nor -> a 'Equiv -> a 'Invert -> a 'OrReverse -> a 'CopyInverted -> a 'OrInverted -> a 'Nand -> a 'Set -> forall (b :: LogicOperation) -> a b 1443'LogicOperationCase
260match'LogicOperation :: forall (a :: Type -> Type) -> a LogicOperation -> forall b -> a b -> a b 1444 :: forall (a :: LogicOperation -> Type)
1445 -> a 'Clear
1446 -> a 'And
1447 -> a 'AndReverse
1448 -> a 'Copy
1449 -> a 'AndInverted
1450 -> a 'Noop
1451 -> a 'Xor
1452 -> a 'Or
1453 -> a 'Nor
1454 -> a 'Equiv
1455 -> a 'Invert
1456 -> a 'OrReverse
1457 -> a 'CopyInverted
1458 -> a 'OrInverted -> a 'Nand -> a 'Set -> forall (b :: LogicOperation) -> a b
1459match'LogicOperation
1460 :: forall (a :: Type -> Type) -> a LogicOperation -> forall b -> a b -> a b
261'StencilOperation :: Type 1461'StencilOperation :: Type
262OpZero :: StencilOperation 1462OpZero :: StencilOperation
263OpKeep :: StencilOperation 1463OpKeep :: StencilOperation
@@ -267,8 +1467,17 @@ OpIncrWrap :: StencilOperation
267OpDecr :: StencilOperation 1467OpDecr :: StencilOperation
268OpDecrWrap :: StencilOperation 1468OpDecrWrap :: StencilOperation
269OpInvert :: StencilOperation 1469OpInvert :: StencilOperation
270'StencilOperationCase :: forall (a :: StencilOperation -> Type) -> a 'OpZero -> a 'OpKeep -> a 'OpReplace -> a 'OpIncr -> a 'OpIncrWrap -> a 'OpDecr -> a 'OpDecrWrap -> a 'OpInvert -> forall (b :: StencilOperation) -> a b 1470'StencilOperationCase
271match'StencilOperation :: forall (a :: Type -> Type) -> a StencilOperation -> forall b -> a b -> a b 1471 :: forall (a :: StencilOperation -> Type)
1472 -> a 'OpZero
1473 -> a 'OpKeep
1474 -> a 'OpReplace
1475 -> a 'OpIncr
1476 -> a 'OpIncrWrap
1477 -> a 'OpDecr
1478 -> a 'OpDecrWrap -> a 'OpInvert -> forall (b :: StencilOperation) -> a b
1479match'StencilOperation
1480 :: forall (a :: Type -> Type) -> a StencilOperation -> forall b -> a b -> a b
272'ComparisonFunction :: Type 1481'ComparisonFunction :: Type
273Never :: ComparisonFunction 1482Never :: ComparisonFunction
274Less :: ComparisonFunction 1483Less :: ComparisonFunction
@@ -278,116 +1487,274 @@ Greater :: ComparisonFunction
278Notequal :: ComparisonFunction 1487Notequal :: ComparisonFunction
279Gequal :: ComparisonFunction 1488Gequal :: ComparisonFunction
280Always :: ComparisonFunction 1489Always :: ComparisonFunction
281'ComparisonFunctionCase :: forall (a :: ComparisonFunction -> Type) -> a 'Never -> a 'Less -> a 'Equal -> a 'Lequal -> a 'Greater -> a 'Notequal -> a 'Gequal -> a 'Always -> forall (b :: ComparisonFunction) -> a b 1490'ComparisonFunctionCase
282match'ComparisonFunction :: forall (a :: Type -> Type) -> a ComparisonFunction -> forall b -> a b -> a b 1491 :: forall (a :: ComparisonFunction -> Type)
1492 -> a 'Never
1493 -> a 'Less
1494 -> a 'Equal
1495 -> a 'Lequal
1496 -> a 'Greater
1497 -> a 'Notequal
1498 -> a 'Gequal -> a 'Always -> forall (b :: ComparisonFunction) -> a b
1499match'ComparisonFunction
1500 :: forall (a :: Type -> Type) -> a ComparisonFunction -> forall b -> a b -> a b
283'ProvokingVertex :: Type 1501'ProvokingVertex :: Type
284LastVertex :: ProvokingVertex 1502LastVertex :: ProvokingVertex
285FirstVertex :: ProvokingVertex 1503FirstVertex :: ProvokingVertex
286'ProvokingVertexCase :: forall (a :: ProvokingVertex -> Type) -> a 'LastVertex -> a 'FirstVertex -> forall (b :: ProvokingVertex) -> a b 1504'ProvokingVertexCase
287match'ProvokingVertex :: forall (a :: Type -> Type) -> a ProvokingVertex -> forall b -> a b -> a b 1505 :: forall (a :: ProvokingVertex -> Type)
1506 -> a 'LastVertex -> a 'FirstVertex -> forall (b :: ProvokingVertex) -> a b
1507match'ProvokingVertex
1508 :: forall (a :: Type -> Type) -> a ProvokingVertex -> forall b -> a b -> a b
288'CullMode :: Type 1509'CullMode :: Type
289CullFront :: CullMode 1510CullFront :: CullMode
290CullBack :: CullMode 1511CullBack :: CullMode
291CullNone :: CullMode 1512CullNone :: CullMode
292'CullModeCase :: forall (a :: CullMode -> Type) -> a 'CullFront -> a 'CullBack -> a 'CullNone -> forall (b :: CullMode) -> a b 1513'CullModeCase
293match'CullMode :: forall (a :: Type -> Type) -> a CullMode -> forall b -> a b -> a b 1514 :: forall (a :: CullMode -> Type)
1515 -> a 'CullFront -> a 'CullBack -> a 'CullNone -> forall (b :: CullMode) -> a b
1516match'CullMode
1517 :: forall (a :: Type -> Type) -> a CullMode -> forall b -> a b -> a b
294'PointSize :: Type -> Type 1518'PointSize :: Type -> Type
295PointSize :: forall a . Float -> PointSize a 1519PointSize :: forall a . Float -> PointSize a
296ProgramPointSize :: forall a . (a -> Float) -> PointSize a 1520ProgramPointSize :: forall a . (a -> Float) -> PointSize a
297'PointSizeCase :: forall a . forall (b :: PointSize a -> Type) -> (forall (c :: Float) -> b ('PointSize c)) -> (forall (d :: a -> Float) -> b ('ProgramPointSize d)) -> forall (e :: PointSize a) -> b e 1521'PointSizeCase
298match'PointSize :: forall (a :: Type -> Type) -> (forall b -> a (PointSize b)) -> forall c -> a c -> a c 1522 :: forall a
1523 . forall (b :: PointSize a -> Type)
1524 -> (forall (c :: Float) -> b ('PointSize c))
1525 -> (forall (d :: a -> Float) -> b ('ProgramPointSize d))
1526 -> forall (e :: PointSize a) -> b e
1527match'PointSize
1528 :: forall (a :: Type -> Type)
1529 -> (forall b -> a (PointSize b)) -> forall c -> a c -> a c
299'PolygonMode :: Type -> Type 1530'PolygonMode :: Type -> Type
300PolygonFill :: forall a . PolygonMode a 1531PolygonFill :: forall a . PolygonMode a
301PolygonPoint :: forall a . PointSize a -> PolygonMode a 1532PolygonPoint :: forall a . PointSize a -> PolygonMode a
302PolygonLine :: forall a . Float -> PolygonMode a 1533PolygonLine :: forall a . Float -> PolygonMode a
303'PolygonModeCase :: forall a . forall (b :: PolygonMode a -> Type) -> b 'PolygonFill -> (forall (c :: PointSize a) -> b ('PolygonPoint c)) -> (forall (d :: Float) -> b ('PolygonLine d)) -> forall (e :: PolygonMode a) -> b e 1534'PolygonModeCase
304match'PolygonMode :: forall (a :: Type -> Type) -> (forall b -> a (PolygonMode b)) -> forall c -> a c -> a c 1535 :: forall a
1536 . forall (b :: PolygonMode a -> Type)
1537 -> b 'PolygonFill
1538 -> (forall (c :: PointSize a) -> b ('PolygonPoint c))
1539 -> (forall (d :: Float) -> b ('PolygonLine d))
1540 -> forall (e :: PolygonMode a) -> b e
1541match'PolygonMode
1542 :: forall (a :: Type -> Type)
1543 -> (forall b -> a (PolygonMode b)) -> forall c -> a c -> a c
305'PolygonOffset :: Type 1544'PolygonOffset :: Type
306NoOffset :: PolygonOffset 1545NoOffset :: PolygonOffset
307Offset :: Float -> Float -> PolygonOffset 1546Offset :: Float -> Float -> PolygonOffset
308'PolygonOffsetCase :: forall (a :: PolygonOffset -> Type) -> a 'NoOffset -> (forall (b :: Float) (c :: Float) -> a ('Offset b c)) -> forall (d :: PolygonOffset) -> a d 1547'PolygonOffsetCase
309match'PolygonOffset :: forall (a :: Type -> Type) -> a PolygonOffset -> forall b -> a b -> a b 1548 :: forall (a :: PolygonOffset -> Type)
1549 -> a 'NoOffset
1550 -> (forall (b :: Float) (c :: Float) -> a ('Offset b c))
1551 -> forall (d :: PolygonOffset) -> a d
1552match'PolygonOffset
1553 :: forall (a :: Type -> Type) -> a PolygonOffset -> forall b -> a b -> a b
310'PointSpriteCoordOrigin :: Type 1554'PointSpriteCoordOrigin :: Type
311LowerLeft :: PointSpriteCoordOrigin 1555LowerLeft :: PointSpriteCoordOrigin
312UpperLeft :: PointSpriteCoordOrigin 1556UpperLeft :: PointSpriteCoordOrigin
313'PointSpriteCoordOriginCase :: forall (a :: PointSpriteCoordOrigin -> Type) -> a 'LowerLeft -> a 'UpperLeft -> forall (b :: PointSpriteCoordOrigin) -> a b 1557'PointSpriteCoordOriginCase
314match'PointSpriteCoordOrigin :: forall (a :: Type -> Type) -> a PointSpriteCoordOrigin -> forall b -> a b -> a b 1558 :: forall (a :: PointSpriteCoordOrigin -> Type)
1559 -> a 'LowerLeft -> a 'UpperLeft -> forall (b :: PointSpriteCoordOrigin) -> a b
1560match'PointSpriteCoordOrigin
1561 :: forall (a :: Type -> Type)
1562 -> a PointSpriteCoordOrigin -> forall b -> a b -> a b
315primTexture :: () -> Vec 2 Float -> Vec 4 Float 1563primTexture :: () -> Vec 2 Float -> Vec 4 Float
316Uniform :: forall a . String -> a 1564Uniform :: forall a . String -> a
317'RasterContext :: Type -> PrimitiveType -> Type 1565'RasterContext :: Type -> PrimitiveType -> Type
318TriangleCtx :: forall a . CullMode -> PolygonMode a -> PolygonOffset -> ProvokingVertex -> RasterContext a 'Triangle 1566TriangleCtx
319PointCtx :: forall a . PointSize a -> Float -> PointSpriteCoordOrigin -> RasterContext a 'Point 1567 :: forall a
1568 . CullMode
1569 -> PolygonMode a
1570 -> PolygonOffset -> ProvokingVertex -> RasterContext a 'Triangle
1571PointCtx
1572 :: forall a
1573 . PointSize a -> Float -> PointSpriteCoordOrigin -> RasterContext a 'Point
320LineCtx :: forall a . Float -> ProvokingVertex -> RasterContext a 'Line 1574LineCtx :: forall a . Float -> ProvokingVertex -> RasterContext a 'Line
321'RasterContextCase :: forall a . forall (b :: forall (c :: PrimitiveType) -> RasterContext a c -> Type) -> (forall (d :: CullMode) (e :: PolygonMode a) (f :: PolygonOffset) (g :: ProvokingVertex) -> b 'Triangle ('TriangleCtx d e f g)) -> (forall (h :: PointSize a) (i :: Float) (j :: PointSpriteCoordOrigin) -> b 'Point ('PointCtx h i j)) -> (forall (k :: Float) (l :: ProvokingVertex) -> b 'Line ('LineCtx k l)) -> forall (m :: PrimitiveType) . forall (n :: RasterContext a m) -> b m n 1575'RasterContextCase
322match'RasterContext :: forall (a :: Type -> Type) -> (forall b (c :: PrimitiveType) -> a (RasterContext b c)) -> forall d -> a d -> a d 1576 :: forall a
1577 . forall (b :: forall (c :: PrimitiveType) -> RasterContext a c -> Type)
1578 -> (forall (d :: CullMode)
1579 (e :: PolygonMode a) (f :: PolygonOffset) (g :: ProvokingVertex)
1580 -> b 'Triangle ('TriangleCtx d e f g))
1581 -> (forall (h :: PointSize a) (i :: Float) (j :: PointSpriteCoordOrigin)
1582 -> b 'Point ('PointCtx h i j))
1583 -> (forall (k :: Float) (l :: ProvokingVertex) -> b 'Line ('LineCtx k l))
1584 -> forall (m :: PrimitiveType) . forall (n :: RasterContext a m) -> b m n
1585match'RasterContext
1586 :: forall (a :: Type -> Type)
1587 -> (forall b (c :: PrimitiveType) -> a (RasterContext b c))
1588 -> forall d -> a d -> a d
323'Blending :: Type -> Type 1589'Blending :: Type -> Type
324NoBlending :: forall a . Blending a 1590NoBlending :: forall a . Blending a
325BlendLogicOp :: forall a . Integral a => LogicOperation -> Blending a 1591BlendLogicOp :: forall a . Integral a => LogicOperation -> Blending a
326Blend :: (BlendEquation, BlendEquation) -> ((BlendingFactor, BlendingFactor), (BlendingFactor, BlendingFactor)) -> Vec 4 Float -> Blending Float 1592Blend
327'BlendingCase :: forall (a :: forall b -> Blending b -> Type) -> (forall c . a c ('NoBlending c)) -> (forall d (e :: Integral d) . forall (f :: LogicOperation) -> a d ('BlendLogicOp d e f)) -> (forall (g :: (BlendEquation, BlendEquation)) (h :: ((BlendingFactor, BlendingFactor), (BlendingFactor, BlendingFactor))) (i :: Vec 4 Float) -> a Float ('Blend g h i)) -> forall j . forall (k :: Blending j) -> a j k 1593 :: (BlendEquation, BlendEquation)
328match'Blending :: forall (a :: Type -> Type) -> (forall b -> a (Blending b)) -> forall c -> a c -> a c 1594 -> ((BlendingFactor, BlendingFactor), (BlendingFactor, BlendingFactor))
1595 -> Vec 4 Float -> Blending Float
1596'BlendingCase
1597 :: forall (a :: forall b -> Blending b -> Type)
1598 -> (forall c . a c ('NoBlending c))
1599 -> (forall d (e :: Integral d)
1600 . forall (f :: LogicOperation) -> a d ('BlendLogicOp d e f))
1601 -> (forall (g :: (BlendEquation, BlendEquation))
1602 (h :: ((BlendingFactor, BlendingFactor), (BlendingFactor, BlendingFactor)))
1603 (i :: Vec 4 Float)
1604 -> a Float ('Blend g h i))
1605 -> forall j . forall (k :: Blending j) -> a j k
1606match'Blending
1607 :: forall (a :: Type -> Type)
1608 -> (forall b -> a (Blending b)) -> forall c -> a c -> a c
329'StencilTests :: Type 1609'StencilTests :: Type
330'StencilTestsCase :: forall (a :: StencilTests -> Type) (b :: StencilTests) -> a b 1610'StencilTestsCase
331match'StencilTests :: forall (a :: Type -> Type) -> a StencilTests -> forall b -> a b -> a b 1611 :: forall (a :: StencilTests -> Type) (b :: StencilTests) -> a b
1612match'StencilTests
1613 :: forall (a :: Type -> Type) -> a StencilTests -> forall b -> a b -> a b
332'StencilOps :: Type 1614'StencilOps :: Type
333'StencilOpsCase :: forall (a :: StencilOps -> Type) (b :: StencilOps) -> a b 1615'StencilOpsCase :: forall (a :: StencilOps -> Type) (b :: StencilOps) -> a b
334match'StencilOps :: forall (a :: Type -> Type) -> a StencilOps -> forall b -> a b -> a b 1616match'StencilOps
1617 :: forall (a :: Type -> Type) -> a StencilOps -> forall b -> a b -> a b
335'FragmentOperation :: ImageKind -> Type 1618'FragmentOperation :: ImageKind -> Type
336ColorOp :: forall a (b :: Nat) . Num a => Blending a -> VecScalar b Bool -> FragmentOperation ('Color (VecScalar b a)) 1619ColorOp
1620 :: forall a (b :: Nat)
1621 . Num a
1622 => Blending a -> VecScalar b Bool -> FragmentOperation ('Color (VecScalar b a))
337DepthOp :: ComparisonFunction -> Bool -> FragmentOperation 'Depth 1623DepthOp :: ComparisonFunction -> Bool -> FragmentOperation 'Depth
338StencilOp :: StencilTests -> StencilOps -> StencilOps -> FragmentOperation 'Stencil 1624StencilOp
339'FragmentOperationCase :: forall (a :: forall (b :: ImageKind) -> FragmentOperation b -> Type) -> (forall c (d :: Nat) (e :: Num c) . forall (f :: Blending c) (g :: VecScalar d Bool) -> a ('Color (VecScalar d c)) ('ColorOp c d e f g)) -> (forall (h :: ComparisonFunction) (i :: Bool) -> a 'Depth ('DepthOp h i)) -> (forall (j :: StencilTests) (k :: StencilOps) (l :: StencilOps) -> a 'Stencil ('StencilOp j k l)) -> forall (m :: ImageKind) . forall (n :: FragmentOperation m) -> a m n 1625 :: StencilTests -> StencilOps -> StencilOps -> FragmentOperation 'Stencil
340match'FragmentOperation :: forall (a :: Type -> Type) -> (forall (b :: ImageKind) -> a (FragmentOperation b)) -> forall c -> a c -> a c 1626'FragmentOperationCase
1627 :: forall (a :: forall (b :: ImageKind) -> FragmentOperation b -> Type)
1628 -> (forall c (d :: Nat) (e :: Num c)
1629 . forall (f :: Blending c) (g :: VecScalar d Bool)
1630 -> a ('Color (VecScalar d c)) ('ColorOp c d e f g))
1631 -> (forall (h :: ComparisonFunction) (i :: Bool) -> a 'Depth ('DepthOp h i))
1632 -> (forall (j :: StencilTests) (k :: StencilOps) (l :: StencilOps)
1633 -> a 'Stencil ('StencilOp j k l))
1634 -> forall (m :: ImageKind) . forall (n :: FragmentOperation m) -> a m n
1635match'FragmentOperation
1636 :: forall (a :: Type -> Type)
1637 -> (forall (b :: ImageKind) -> a (FragmentOperation b))
1638 -> forall c -> a c -> a c
341'Interpolated :: Type -> Type 1639'Interpolated :: Type -> Type
342Smooth :: forall a . Floating a => Interpolated a 1640Smooth :: forall a . Floating a => Interpolated a
343NoPerspective :: forall a . Floating a => Interpolated a 1641NoPerspective :: forall a . Floating a => Interpolated a
344Flat :: forall a . Interpolated a 1642Flat :: forall a . Interpolated a
345'InterpolatedCase :: forall a . forall (b :: Interpolated a -> Type) -> (forall (c :: Floating a) . b ('Smooth c)) -> (forall (d :: Floating a) . b ('NoPerspective d)) -> b 'Flat -> forall (e :: Interpolated a) -> b e 1643'InterpolatedCase
346match'Interpolated :: forall (a :: Type -> Type) -> (forall b -> a (Interpolated b)) -> forall c -> a c -> a c 1644 :: forall a
347rasterizePrimitive :: forall (a :: List Type) (b :: List Type) (c :: List Type) (d :: PrimitiveType) . (map Type Type Interpolated a ~ b, c ~ 'Cons (Vec 4 Float) a) => HList b -> RasterContext (HList c) d -> Primitive (HList c) d -> FragmentStream 1 (HList a) 1645 . forall (b :: Interpolated a -> Type)
348rasterizePrimitives :: forall (a :: List Type) (b :: PrimitiveType) . RasterContext (HList ('Cons (Vec 4 Float) a)) b -> HList (map Type Type Interpolated a) -> List (Primitive (HList ('Cons (Vec 4 Float) a)) b) -> List (Vector 1 (Maybe (SimpleFragment (HList a)))) 1646 -> (forall (c :: Floating a) . b ('Smooth c))
1647 -> (forall (d :: Floating a) . b ('NoPerspective d))
1648 -> b 'Flat -> forall (e :: Interpolated a) -> b e
1649match'Interpolated
1650 :: forall (a :: Type -> Type)
1651 -> (forall b -> a (Interpolated b)) -> forall c -> a c -> a c
1652rasterizePrimitive
1653 :: forall (a :: List Type)
1654 (b :: List Type) (c :: List Type) (d :: PrimitiveType)
1655 . (map Type Type Interpolated a ~ b, c ~ 'Cons (Vec 4 Float) a)
1656 => HList b
1657 -> RasterContext (HList c) d
1658 -> Primitive (HList c) d -> FragmentStream 1 (HList a)
1659rasterizePrimitives
1660 :: forall (a :: List Type) (b :: PrimitiveType)
1661 . RasterContext (HList ('Cons (Vec 4 Float) a)) b
1662 -> HList (map Type Type Interpolated a)
1663 -> List (Primitive (HList ('Cons (Vec 4 Float) a)) b)
1664 -> List (Vector 1 (Maybe (SimpleFragment (HList a))))
349'ImageLC :: Type -> Nat 1665'ImageLC :: Type -> Nat
350allSame :: forall a . List a -> Type 1666allSame :: forall a . List a -> Type
351sameLayerCounts :: List Type -> Type 1667sameLayerCounts :: List Type -> Type
352'FrameBuffer :: Nat -> List ImageKind -> Type 1668'FrameBuffer :: Nat -> List ImageKind -> Type
353'FrameBufferCase :: forall (a :: Nat) (b :: List ImageKind) . forall (c :: FrameBuffer a b -> Type) (d :: FrameBuffer a b) -> c d 1669'FrameBufferCase
354match'FrameBuffer :: forall (a :: Type -> Type) -> (forall (b :: Nat) (c :: List ImageKind) -> a (FrameBuffer b c)) -> forall d -> a d -> a d 1670 :: forall (a :: Nat) (b :: List ImageKind)
1671 . forall (c :: FrameBuffer a b -> Type) (d :: FrameBuffer a b) -> c d
1672match'FrameBuffer
1673 :: forall (a :: Type -> Type)
1674 -> (forall (b :: Nat) (c :: List ImageKind) -> a (FrameBuffer b c))
1675 -> forall d -> a d -> a d
355imageType' :: List ImageKind -> List Type 1676imageType' :: List ImageKind -> List Type
356'FragmentOperationKind :: Type -> ImageKind 1677'FragmentOperationKind :: Type -> ImageKind
357Accumulate :: forall (a :: List ImageKind) (b :: Nat) (c :: List Type) . (a ~ map Type ImageKind FragmentOperationKind c) => HList c -> FragmentStream b (HList (imageType' a)) -> FrameBuffer b a -> FrameBuffer b a 1678Accumulate
1679 :: forall (a :: List ImageKind) (b :: Nat) (c :: List Type)
1680 . (a ~ map Type ImageKind FragmentOperationKind c)
1681 => HList c
1682 -> FragmentStream b (HList (imageType' a)) -> FrameBuffer b a -> FrameBuffer b a
358accumulateWith :: forall a b . a -> b -> (a, b) 1683accumulateWith :: forall a b . a -> b -> (a, b)
359overlay :: forall (a :: Nat) (b :: List Type) . FrameBuffer a (map Type ImageKind FragmentOperationKind b) -> (HList b, List (Fragment a (HList (imageType' (map Type ImageKind FragmentOperationKind b))))) -> FrameBuffer a (map Type ImageKind FragmentOperationKind b) 1684overlay
1685 :: forall (a :: Nat) (b :: List Type)
1686 . FrameBuffer a (map Type ImageKind FragmentOperationKind b)
1687 -> (HList b, List
1688 (Fragment a (HList (imageType' (map Type ImageKind FragmentOperationKind b)))))
1689 -> FrameBuffer a (map Type ImageKind FragmentOperationKind b)
360'GetImageKind :: Type -> ImageKind 1690'GetImageKind :: Type -> ImageKind
361FrameBuffer :: forall (a :: List Type) . sameLayerCounts a => HList a -> FrameBuffer (ImageLC (head Type a)) (map Type ImageKind GetImageKind a) 1691FrameBuffer
362imageFrame :: forall (a :: List Type) . sameLayerCounts a => HList a -> FrameBuffer (ImageLC (head Type a)) (map Type ImageKind GetImageKind a) 1692 :: forall (a :: List Type)
363accumulate :: forall (a :: Nat) (b :: List Type) c . HList b -> (c -> HList (imageType' (map Type ImageKind FragmentOperationKind b))) -> List (Vector a (Maybe (SimpleFragment c))) -> FrameBuffer a (map Type ImageKind FragmentOperationKind b) -> FrameBuffer a (map Type ImageKind FragmentOperationKind b) 1693 . sameLayerCounts a
1694 => HList a
1695 -> FrameBuffer (ImageLC (head Type a)) (map Type ImageKind GetImageKind a)
1696imageFrame
1697 :: forall (a :: List Type)
1698 . sameLayerCounts a
1699 => HList a
1700 -> FrameBuffer (ImageLC (head Type a)) (map Type ImageKind GetImageKind a)
1701accumulate
1702 :: forall (a :: Nat) (b :: List Type) c
1703 . HList b
1704 -> (c -> HList (imageType' (map Type ImageKind FragmentOperationKind b)))
1705 -> List (Vector a (Maybe (SimpleFragment c)))
1706 -> FrameBuffer a (map Type ImageKind FragmentOperationKind b)
1707 -> FrameBuffer a (map Type ImageKind FragmentOperationKind b)
364PrjImage :: forall (a :: ImageKind) . FrameBuffer 1 ('Cons a 'Nil) -> Image 1 a 1708PrjImage :: forall (a :: ImageKind) . FrameBuffer 1 ('Cons a 'Nil) -> Image 1 a
365PrjImageColor :: FrameBuffer 1 ('Cons 'Depth ('Cons ('Color (Vec 4 Float)) 'Nil)) -> Image 1 ('Color (Vec 4 Float)) 1709PrjImageColor
1710 :: FrameBuffer 1 ('Cons 'Depth ('Cons ('Color (Vec 4 Float)) 'Nil))
1711 -> Image 1 ('Color (Vec 4 Float))
366'Output :: Type 1712'Output :: Type
367ScreenOut :: forall (a :: Nat) (b :: List ImageKind) . FrameBuffer a b -> Output 1713ScreenOut :: forall (a :: Nat) (b :: List ImageKind) . FrameBuffer a b -> Output
368'OutputCase :: forall (a :: Output -> Type) -> (forall (b :: Nat) (c :: List ImageKind) . forall (d :: FrameBuffer b c) -> a ('ScreenOut b c d)) -> forall (e :: Output) -> a e 1714'OutputCase
1715 :: forall (a :: Output -> Type)
1716 -> (forall (b :: Nat) (c :: List ImageKind)
1717 . forall (d :: FrameBuffer b c) -> a ('ScreenOut b c d))
1718 -> forall (e :: Output) -> a e
369match'Output :: forall (a :: Type -> Type) -> a Output -> forall b -> a b -> a b 1719match'Output :: forall (a :: Type -> Type) -> a Output -> forall b -> a b -> a b
370renderFrame :: forall (a :: Nat) (b :: List ImageKind) . FrameBuffer a b -> Output 1720renderFrame
1721 :: forall (a :: Nat) (b :: List ImageKind) . FrameBuffer a b -> Output
371'Texture :: Type 1722'Texture :: Type
372Texture2DSlot :: String -> Texture 1723Texture2DSlot :: String -> Texture
373Texture2D :: Vec 2 Int -> Image 1 ('Color (Vec 4 Float)) -> Texture 1724Texture2D :: Vec 2 Int -> Image 1 ('Color (Vec 4 Float)) -> Texture
374'TextureCase :: forall (a :: Texture -> Type) -> (forall (b :: String) -> a ('Texture2DSlot b)) -> (forall (c :: Vec 2 Int) (d :: Image 1 ('Color (Vec 4 Float))) -> a ('Texture2D c d)) -> forall (e :: Texture) -> a e 1725'TextureCase
375match'Texture :: forall (a :: Type -> Type) -> a Texture -> forall b -> a b -> a b 1726 :: forall (a :: Texture -> Type)
1727 -> (forall (b :: String) -> a ('Texture2DSlot b))
1728 -> (forall (c :: Vec 2 Int) (d :: Image 1 ('Color (Vec 4 Float)))
1729 -> a ('Texture2D c d))
1730 -> forall (e :: Texture) -> a e
1731match'Texture
1732 :: forall (a :: Type -> Type) -> a Texture -> forall b -> a b -> a b
376'Filter :: Type 1733'Filter :: Type
377PointFilter :: Filter 1734PointFilter :: Filter
378LinearFilter :: Filter 1735LinearFilter :: Filter
379'FilterCase :: forall (a :: Filter -> Type) -> a 'PointFilter -> a 'LinearFilter -> forall (b :: Filter) -> a b 1736'FilterCase
1737 :: forall (a :: Filter -> Type)
1738 -> a 'PointFilter -> a 'LinearFilter -> forall (b :: Filter) -> a b
380match'Filter :: forall (a :: Type -> Type) -> a Filter -> forall b -> a b -> a b 1739match'Filter :: forall (a :: Type -> Type) -> a Filter -> forall b -> a b -> a b
381'EdgeMode :: Type 1740'EdgeMode :: Type
382Repeat :: EdgeMode 1741Repeat :: EdgeMode
383MirroredRepeat :: EdgeMode 1742MirroredRepeat :: EdgeMode
384ClampToEdge :: EdgeMode 1743ClampToEdge :: EdgeMode
385'EdgeModeCase :: forall (a :: EdgeMode -> Type) -> a 'Repeat -> a 'MirroredRepeat -> a 'ClampToEdge -> forall (b :: EdgeMode) -> a b 1744'EdgeModeCase
386match'EdgeMode :: forall (a :: Type -> Type) -> a EdgeMode -> forall b -> a b -> a b 1745 :: forall (a :: EdgeMode -> Type)
1746 -> a 'Repeat
1747 -> a 'MirroredRepeat -> a 'ClampToEdge -> forall (b :: EdgeMode) -> a b
1748match'EdgeMode
1749 :: forall (a :: Type -> Type) -> a EdgeMode -> forall b -> a b -> a b
387'Sampler :: Type 1750'Sampler :: Type
388Sampler :: Filter -> EdgeMode -> Texture -> Sampler 1751Sampler :: Filter -> EdgeMode -> Texture -> Sampler
389'SamplerCase :: forall (a :: Sampler -> Type) -> (forall (b :: Filter) (c :: EdgeMode) (d :: Texture) -> a ('Sampler b c d)) -> forall (e :: Sampler) -> a e 1752'SamplerCase
390match'Sampler :: forall (a :: Type -> Type) -> a Sampler -> forall b -> a b -> a b 1753 :: forall (a :: Sampler -> Type)
1754 -> (forall (b :: Filter) (c :: EdgeMode) (d :: Texture) -> a ('Sampler b c d))
1755 -> forall (e :: Sampler) -> a e
1756match'Sampler
1757 :: forall (a :: Type -> Type) -> a Sampler -> forall b -> a b -> a b
391texture2D :: Sampler -> Vec 2 Float -> Vec 4 Float 1758texture2D :: Sampler -> Vec 2 Float -> Vec 4 Float
392accumulationContext :: forall a . a -> a 1759accumulationContext :: forall a . a -> a
393------------ tooltips 1760------------ tooltips
@@ -1054,8 +2421,10 @@ testdata/Builtins.lc 126:63-126:64 Type
1054testdata/Builtins.lc 126:69-126:70 Type 2421testdata/Builtins.lc 126:69-126:70 Type
1055testdata/Builtins.lc 126:69-126:75 Type 2422testdata/Builtins.lc 126:69-126:75 Type
1056testdata/Builtins.lc 126:74-126:75 Type 2423testdata/Builtins.lc 126:74-126:75 Type
1057testdata/Builtins.lc 127:1-127:12 forall a b (c :: Nat) d . (Integral a, b ~ VecScalar c a, d ~ VecScalar c Word) => b -> d -> b 2424testdata/Builtins.lc 127:1-127:12 forall a b (c :: Nat) d
1058testdata/Builtins.lc 127:14-127:25 forall a b (c :: Nat) d . (Integral a, b ~ VecScalar c a, d ~ VecScalar c Word) => b -> d -> b 2425 . (Integral a, b ~ VecScalar c a, d ~ VecScalar c Word) => b -> d -> b
2426testdata/Builtins.lc 127:14-127:25 forall a b (c :: Nat) d
2427 . (Integral a, b ~ VecScalar c a, d ~ VecScalar c Word) => b -> d -> b
1059testdata/Builtins.lc 127:34-127:102 Type 2428testdata/Builtins.lc 127:34-127:102 Type
1060testdata/Builtins.lc 127:35-127:43 Type -> Type 2429testdata/Builtins.lc 127:35-127:43 Type -> Type
1061testdata/Builtins.lc 127:35-127:45 Type 2430testdata/Builtins.lc 127:35-127:45 Type
@@ -2028,7 +3397,8 @@ testdata/Builtins.lc 253:24-253:38 Primitive _g _a -> Primitive _f _a
2028testdata/Builtins.lc 253:37-253:38 _i -> _h 3397testdata/Builtins.lc 253:37-253:38 _i -> _h
2029testdata/Builtins.lc 255:30-255:38 Type -> Type 3398testdata/Builtins.lc 255:30-255:38 Type -> Type
2030testdata/Builtins.lc 255:45-255:46 Type | Type -> Type 3399testdata/Builtins.lc 255:45-255:46 Type | Type -> Type
2031testdata/Builtins.lc 260:1-260:12 forall (a :: PrimitiveType) (b :: List Type) (c :: List Type) . (b ~ map Type Type ListElem c) => HList c -> PrimitiveStream a (HList b) 3400testdata/Builtins.lc 260:1-260:12 forall (a :: PrimitiveType) (b :: List Type) (c :: List Type)
3401 . (b ~ map Type Type ListElem c) => HList c -> PrimitiveStream a (HList b)
2032testdata/Builtins.lc 260:32-260:119 Type 3402testdata/Builtins.lc 260:32-260:119 Type
2033testdata/Builtins.lc 260:56-260:57 _e 3403testdata/Builtins.lc 260:56-260:57 _e
2034testdata/Builtins.lc 260:56-260:59 _d -> Type 3404testdata/Builtins.lc 260:56-260:59 _d -> Type
@@ -2050,7 +3420,8 @@ testdata/Builtins.lc 260:108-260:109 _f
2050testdata/Builtins.lc 260:111-260:116 List Type -> Type 3420testdata/Builtins.lc 260:111-260:116 List Type -> Type
2051testdata/Builtins.lc 260:111-260:118 Type 3421testdata/Builtins.lc 260:111-260:118 Type
2052testdata/Builtins.lc 260:117-260:118 List Type 3422testdata/Builtins.lc 260:117-260:118 List Type
2053testdata/Builtins.lc 262:1-262:6 forall (a :: PrimitiveType) (b :: List Type) . String -> HList b -> PrimitiveStream a (HList b) 3423testdata/Builtins.lc 262:1-262:6 forall (a :: PrimitiveType) (b :: List Type)
3424 . String -> HList b -> PrimitiveStream a (HList b)
2054testdata/Builtins.lc 262:56-262:62 Type 3425testdata/Builtins.lc 262:56-262:62 Type
2055testdata/Builtins.lc 262:56-262:104 Type 3426testdata/Builtins.lc 262:56-262:104 Type
2056testdata/Builtins.lc 262:66-262:71 List Type -> Type 3427testdata/Builtins.lc 262:66-262:71 List Type -> Type
@@ -2068,7 +3439,9 @@ testdata/Builtins.lc 264:1-264:10 forall a . String -> a
2068testdata/Builtins.lc 264:14-264:20 Type 3439testdata/Builtins.lc 264:14-264:20 Type
2069testdata/Builtins.lc 264:14-264:25 Type 3440testdata/Builtins.lc 264:14-264:25 Type
2070testdata/Builtins.lc 264:24-264:25 Type | _c 3441testdata/Builtins.lc 264:24-264:25 Type | _c
2071testdata/Builtins.lc 266:1-266:12 forall (a :: PrimitiveType) (b :: List Type) . String -> forall (c :: List String) -> (len String c ~ len Type b) => PrimitiveStream a (HList b) 3442testdata/Builtins.lc 266:1-266:12 forall (a :: PrimitiveType) (b :: List Type)
3443 . String
3444 -> forall (c :: List String) -> (len String c ~ len Type b) => PrimitiveStream a (HList b)
2072testdata/Builtins.lc 266:31-266:37 Type 3445testdata/Builtins.lc 266:31-266:37 Type
2073testdata/Builtins.lc 266:31-266:123 Type 3446testdata/Builtins.lc 266:31-266:123 Type
2074testdata/Builtins.lc 266:32-266:36 Type 3447testdata/Builtins.lc 266:32-266:36 Type
@@ -2154,9 +3527,13 @@ testdata/Builtins.lc 281:58-281:74 Type -> Type
2154testdata/Builtins.lc 281:58-281:76 Type 3527testdata/Builtins.lc 281:58-281:76 Type
2155testdata/Builtins.lc 281:73-281:74 Nat 3528testdata/Builtins.lc 281:73-281:74 Nat
2156testdata/Builtins.lc 281:75-281:76 Type 3529testdata/Builtins.lc 281:75-281:76 Type
2157testdata/Builtins.lc 282:1-282:16 forall a (b :: Nat) . (a -> Float) -> List (Vector b (Maybe (SimpleFragment a))) -> List (Vector b (Maybe (SimpleFragment a))) 3530testdata/Builtins.lc 282:1-282:16 forall a (b :: Nat)
3531 . (a -> Float)
3532 -> List (Vector b (Maybe (SimpleFragment a)))
3533 -> List (Vector b (Maybe (SimpleFragment a)))
2158testdata/Builtins.lc 282:21-282:24 forall a b . (a -> b) -> List a -> List b 3534testdata/Builtins.lc 282:21-282:24 forall a b . (a -> b) -> List a -> List b
2159testdata/Builtins.lc 282:21-282:43 (_b -> Float) -> FragmentStream _a _b -> FragmentStream _a _b | List (Vector _a (Maybe (SimpleFragment _d))) -> List (Vector _a (Maybe (SimpleFragment _d))) 3535testdata/Builtins.lc 282:21-282:43 (_b -> Float) -> FragmentStream _a _b -> FragmentStream _a _b | List (Vector _a (Maybe (SimpleFragment _d)))
3536 -> List (Vector _a (Maybe (SimpleFragment _d)))
2160testdata/Builtins.lc 282:26-282:40 forall a (b :: Nat) . (a -> Float) -> Fragment b a -> Fragment b a 3537testdata/Builtins.lc 282:26-282:40 forall a (b :: Nat) . (a -> Float) -> Fragment b a -> Fragment b a
2161testdata/Builtins.lc 282:26-282:42 Fragment _a _f -> Fragment _a _f 3538testdata/Builtins.lc 282:26-282:42 Fragment _a _f -> Fragment _a _f
2162testdata/Builtins.lc 282:41-282:42 _g -> Float 3539testdata/Builtins.lc 282:41-282:42 _g -> Float
@@ -2189,9 +3566,13 @@ testdata/Builtins.lc 286:57-286:73 Type -> Type
2189testdata/Builtins.lc 286:57-286:75 Type 3566testdata/Builtins.lc 286:57-286:75 Type
2190testdata/Builtins.lc 286:72-286:73 Nat 3567testdata/Builtins.lc 286:72-286:73 Nat
2191testdata/Builtins.lc 286:74-286:75 Type 3568testdata/Builtins.lc 286:74-286:75 Type
2192testdata/Builtins.lc 287:1-287:16 forall a (b :: Nat) . (a -> Bool) -> List (Vector b (Maybe (SimpleFragment a))) -> List (Vector b (Maybe (SimpleFragment a))) 3569testdata/Builtins.lc 287:1-287:16 forall a (b :: Nat)
3570 . (a -> Bool)
3571 -> List (Vector b (Maybe (SimpleFragment a)))
3572 -> List (Vector b (Maybe (SimpleFragment a)))
2193testdata/Builtins.lc 287:21-287:24 forall a b . (a -> b) -> List a -> List b 3573testdata/Builtins.lc 287:21-287:24 forall a b . (a -> b) -> List a -> List b
2194testdata/Builtins.lc 287:21-287:43 (_b -> Bool) -> FragmentStream _a _b -> FragmentStream _a _b | List (Vector _a (Maybe (SimpleFragment _d))) -> List (Vector _a (Maybe (SimpleFragment _d))) 3574testdata/Builtins.lc 287:21-287:43 (_b -> Bool) -> FragmentStream _a _b -> FragmentStream _a _b | List (Vector _a (Maybe (SimpleFragment _d)))
3575 -> List (Vector _a (Maybe (SimpleFragment _d)))
2195testdata/Builtins.lc 287:26-287:40 forall a (b :: Nat) . (a -> Bool) -> Fragment b a -> Fragment b a 3576testdata/Builtins.lc 287:26-287:40 forall a (b :: Nat) . (a -> Bool) -> Fragment b a -> Fragment b a
2196testdata/Builtins.lc 287:26-287:42 Fragment _a _f -> Fragment _a _f 3577testdata/Builtins.lc 287:26-287:42 Fragment _a _f -> Fragment _a _f
2197testdata/Builtins.lc 287:41-287:42 _g -> Bool 3578testdata/Builtins.lc 287:41-287:42 _g -> Bool
@@ -2224,9 +3605,13 @@ testdata/Builtins.lc 291:51-291:67 Type -> Type
2224testdata/Builtins.lc 291:51-291:69 Type 3605testdata/Builtins.lc 291:51-291:69 Type
2225testdata/Builtins.lc 291:66-291:67 Nat 3606testdata/Builtins.lc 291:66-291:67 Nat
2226testdata/Builtins.lc 291:68-291:69 Type 3607testdata/Builtins.lc 291:68-291:69 Type
2227testdata/Builtins.lc 292:1-292:13 forall a b (c :: Nat) . (a -> b) -> List (Vector c (Maybe (SimpleFragment a))) -> List (Vector c (Maybe (SimpleFragment b))) 3608testdata/Builtins.lc 292:1-292:13 forall a b (c :: Nat)
3609 . (a -> b)
3610 -> List (Vector c (Maybe (SimpleFragment a)))
3611 -> List (Vector c (Maybe (SimpleFragment b)))
2228testdata/Builtins.lc 292:18-292:21 forall a b . (a -> b) -> List a -> List b 3612testdata/Builtins.lc 292:18-292:21 forall a b . (a -> b) -> List a -> List b
2229testdata/Builtins.lc 292:18-292:37 (_c -> _b) -> FragmentStream _a _c -> FragmentStream _a _b | List (Vector _a (Maybe (SimpleFragment _e))) -> List (Vector _a (Maybe (SimpleFragment _d))) 3613testdata/Builtins.lc 292:18-292:37 (_c -> _b) -> FragmentStream _a _c -> FragmentStream _a _b | List (Vector _a (Maybe (SimpleFragment _e)))
3614 -> List (Vector _a (Maybe (SimpleFragment _d)))
2230testdata/Builtins.lc 292:23-292:34 forall a b (c :: Nat) . (a -> b) -> Fragment c a -> Fragment c b 3615testdata/Builtins.lc 292:23-292:34 forall a b (c :: Nat) . (a -> b) -> Fragment c a -> Fragment c b
2231testdata/Builtins.lc 292:23-292:36 Fragment _a _g -> Fragment _a _f 3616testdata/Builtins.lc 292:23-292:36 Fragment _a _g -> Fragment _a _f
2232testdata/Builtins.lc 292:35-292:36 _i -> _h 3617testdata/Builtins.lc 292:35-292:36 _i -> _h
@@ -2502,7 +3887,9 @@ testdata/Builtins.lc 455:6-458:111 Type
2502testdata/Builtins.lc 455:25-455:38 Type 3887testdata/Builtins.lc 455:25-455:38 Type
2503testdata/Builtins.lc 455:25-455:46 Type 3888testdata/Builtins.lc 455:25-455:46 Type
2504testdata/Builtins.lc 455:42-455:46 Type 3889testdata/Builtins.lc 455:42-455:46 Type
2505testdata/Builtins.lc 456:3-456:14 RasterContext _f 'Triangle | forall a . CullMode -> PolygonMode a -> PolygonOffset -> ProvokingVertex -> RasterContext a 'Triangle 3890testdata/Builtins.lc 456:3-456:14 RasterContext _f 'Triangle | forall a
3891 . CullMode
3892 -> PolygonMode a -> PolygonOffset -> ProvokingVertex -> RasterContext a 'Triangle
2506testdata/Builtins.lc 456:3-456:115 Type 3893testdata/Builtins.lc 456:3-456:115 Type
2507testdata/Builtins.lc 456:26-456:34 Type 3894testdata/Builtins.lc 456:26-456:34 Type
2508testdata/Builtins.lc 456:26-456:115 Type 3895testdata/Builtins.lc 456:26-456:115 Type
@@ -2565,7 +3952,9 @@ testdata/Builtins.lc 462:42-462:70 Type
2565testdata/Builtins.lc 462:60-462:68 Type -> Type 3952testdata/Builtins.lc 462:60-462:68 Type -> Type
2566testdata/Builtins.lc 462:60-462:70 Type 3953testdata/Builtins.lc 462:60-462:70 Type
2567testdata/Builtins.lc 462:69-462:70 Type 3954testdata/Builtins.lc 462:69-462:70 Type
2568testdata/Builtins.lc 463:3-463:8 (BlendEquation, BlendEquation) -> ((BlendingFactor, BlendingFactor), (BlendingFactor, BlendingFactor)) -> Vec 4 Float -> Blending Float | Blending Float 3955testdata/Builtins.lc 463:3-463:8 (BlendEquation, BlendEquation)
3956 -> ((BlendingFactor, BlendingFactor), (BlendingFactor, BlendingFactor))
3957 -> Vec 4 Float -> Blending Float | Blending Float
2569testdata/Builtins.lc 463:3-465:74 Type 3958testdata/Builtins.lc 463:3-465:74 Type
2570testdata/Builtins.lc 463:26-463:56 Type 3959testdata/Builtins.lc 463:26-463:56 Type
2571testdata/Builtins.lc 463:27-463:40 Type 3960testdata/Builtins.lc 463:27-463:40 Type
@@ -2597,7 +3986,8 @@ testdata/Builtins.lc 470:6-470:23 ImageKind -> Type | Type
2597testdata/Builtins.lc 470:6-473:96 Type 3986testdata/Builtins.lc 470:6-473:96 Type
2598testdata/Builtins.lc 470:27-470:36 Type 3987testdata/Builtins.lc 470:27-470:36 Type
2599testdata/Builtins.lc 470:40-470:44 Type 3988testdata/Builtins.lc 470:40-470:44 Type
2600testdata/Builtins.lc 471:3-471:10 FragmentOperation ('Color (VecScalar _d _e)) | forall a (b :: Nat) . Num a => Blending a -> VecScalar b Bool -> FragmentOperation ('Color (VecScalar b a)) 3989testdata/Builtins.lc 471:3-471:10 FragmentOperation ('Color (VecScalar _d _e)) | forall a (b :: Nat)
3990 . Num a => Blending a -> VecScalar b Bool -> FragmentOperation ('Color (VecScalar b a))
2601testdata/Builtins.lc 471:3-471:112 Type 3991testdata/Builtins.lc 471:3-471:112 Type
2602testdata/Builtins.lc 471:26-471:29 Type -> Type 3992testdata/Builtins.lc 471:26-471:29 Type -> Type
2603testdata/Builtins.lc 471:26-471:31 Type 3993testdata/Builtins.lc 471:26-471:31 Type
@@ -2655,7 +4045,10 @@ testdata/Builtins.lc 478:3-478:7 Interpolated _d | forall a . Interpolated a
2655testdata/Builtins.lc 478:42-478:54 Type -> Type 4045testdata/Builtins.lc 478:42-478:54 Type -> Type
2656testdata/Builtins.lc 478:42-478:56 Type 4046testdata/Builtins.lc 478:42-478:56 Type
2657testdata/Builtins.lc 478:55-478:56 Type 4047testdata/Builtins.lc 478:55-478:56 Type
2658testdata/Builtins.lc 480:1-480:19 forall (a :: List Type) (b :: List Type) (c :: List Type) (d :: PrimitiveType) . (map Type Type Interpolated a ~ b, c ~ 'Cons (Vec 4 Float) a) => HList b -> RasterContext (HList c) d -> Primitive (HList c) d -> FragmentStream 1 (HList a) 4048testdata/Builtins.lc 480:1-480:19 forall (a :: List Type) (b :: List Type) (c :: List Type) (d :: PrimitiveType)
4049 . (map Type Type Interpolated a ~ b, c ~ 'Cons (Vec 4 Float) a)
4050 => HList b
4051 -> RasterContext (HList c) d -> Primitive (HList c) d -> FragmentStream 1 (HList a)
2659testdata/Builtins.lc 481:8-486:34 Type 4052testdata/Builtins.lc 481:8-486:34 Type
2660testdata/Builtins.lc 481:10-481:13 forall a b . (a -> b) -> List a -> List b 4053testdata/Builtins.lc 481:10-481:13 forall a b . (a -> b) -> List a -> List b
2661testdata/Builtins.lc 481:10-481:26 List Type -> List Type 4054testdata/Builtins.lc 481:10-481:26 List Type -> List Type
@@ -2707,14 +4100,23 @@ testdata/Builtins.lc 486:23-486:24 _b
2707testdata/Builtins.lc 486:26-486:31 List Type -> Type 4100testdata/Builtins.lc 486:26-486:31 List Type -> Type
2708testdata/Builtins.lc 486:26-486:33 Type 4101testdata/Builtins.lc 486:26-486:33 Type
2709testdata/Builtins.lc 486:32-486:33 List Type 4102testdata/Builtins.lc 486:32-486:33 List Type
2710testdata/Builtins.lc 488:1-488:20 forall (a :: List Type) (b :: PrimitiveType) . RasterContext (HList ('Cons (Vec 4 Float) a)) b -> HList (map Type Type Interpolated a) -> List (Primitive (HList ('Cons (Vec 4 Float) a)) b) -> List (Vector 1 (Maybe (SimpleFragment (HList a)))) 4103testdata/Builtins.lc 488:1-488:20 forall (a :: List Type) (b :: PrimitiveType)
4104 . RasterContext (HList ('Cons (Vec 4 Float) a)) b
4105 -> HList (map Type Type Interpolated a)
4106 -> List (Primitive (HList ('Cons (Vec 4 Float) a)) b)
4107 -> List (Vector 1 (Maybe (SimpleFragment (HList a))))
2711testdata/Builtins.lc 488:32-488:38 forall a . List (List a) -> List a 4108testdata/Builtins.lc 488:32-488:38 forall a . List (List a) -> List a
2712testdata/Builtins.lc 488:32-488:74 List (Vector 1 (Maybe (SimpleFragment (HList _b)))) 4109testdata/Builtins.lc 488:32-488:74 List (Vector 1 (Maybe (SimpleFragment (HList _b))))
2713testdata/Builtins.lc 488:40-488:43 forall a b . (a -> b) -> List a -> List b 4110testdata/Builtins.lc 488:40-488:43 forall a b . (a -> b) -> List a -> List b
2714testdata/Builtins.lc 488:40-488:71 List (Primitive (HList ('Cons (Vec 4 Float) _b)) _a) -> List (List (Fragment 1 (HList _b))) 4111testdata/Builtins.lc 488:40-488:71 List (Primitive (HList ('Cons (Vec 4 Float) _b)) _a)
4112 -> List (List (Fragment 1 (HList _b)))
2715testdata/Builtins.lc 488:40-488:73 List (List (Fragment 1 (HList _b))) 4113testdata/Builtins.lc 488:40-488:73 List (List (Fragment 1 (HList _b)))
2716testdata/Builtins.lc 488:45-488:63 forall (a :: List Type) (b :: List Type) (c :: List Type) (d :: PrimitiveType) . (map Type Type Interpolated a ~ b, c ~ 'Cons (Vec 4 Float) a) => HList b -> RasterContext (HList c) d -> Primitive (HList c) d -> FragmentStream 1 (HList a) 4114testdata/Builtins.lc 488:45-488:63 forall (a :: List Type) (b :: List Type) (c :: List Type) (d :: PrimitiveType)
2717testdata/Builtins.lc 488:45-488:66 RasterContext (HList ('Cons (Vec 4 Float) _b)) _a -> Primitive (HList ('Cons (Vec 4 Float) _b)) _a -> FragmentStream 1 (HList _b) 4115 . (map Type Type Interpolated a ~ b, c ~ 'Cons (Vec 4 Float) a)
4116 => HList b
4117 -> RasterContext (HList c) d -> Primitive (HList c) d -> FragmentStream 1 (HList a)
4118testdata/Builtins.lc 488:45-488:66 RasterContext (HList ('Cons (Vec 4 Float) _b)) _a
4119 -> Primitive (HList ('Cons (Vec 4 Float) _b)) _a -> FragmentStream 1 (HList _b)
2718testdata/Builtins.lc 488:45-488:70 Primitive (HList ('Cons (Vec 4 Float) _b)) _a -> FragmentStream 1 (HList _b) 4120testdata/Builtins.lc 488:45-488:70 Primitive (HList ('Cons (Vec 4 Float) _b)) _a -> FragmentStream 1 (HList _b)
2719testdata/Builtins.lc 488:64-488:66 _i 4121testdata/Builtins.lc 488:64-488:66 _i
2720testdata/Builtins.lc 488:67-488:70 _h 4122testdata/Builtins.lc 488:67-488:70 _h
@@ -2779,7 +4181,10 @@ testdata/Builtins.lc 513:30-513:31 List ImageKind
2779testdata/Builtins.lc 515:40-515:49 Type 4181testdata/Builtins.lc 515:40-515:49 Type
2780testdata/Builtins.lc 515:56-515:77 Type -> ImageKind 4182testdata/Builtins.lc 515:56-515:77 Type -> ImageKind
2781testdata/Builtins.lc 515:102-515:103 ImageKind | ImageKind -> ImageKind | Type -> ImageKind 4183testdata/Builtins.lc 515:102-515:103 ImageKind | ImageKind -> ImageKind | Type -> ImageKind
2782testdata/Builtins.lc 517:1-517:11 forall (a :: List ImageKind) (b :: Nat) (c :: List Type) . (a ~ map Type ImageKind FragmentOperationKind c) => HList c -> FragmentStream b (HList (imageType' a)) -> FrameBuffer b a -> FrameBuffer b a 4184testdata/Builtins.lc 517:1-517:11 forall (a :: List ImageKind) (b :: Nat) (c :: List Type)
4185 . (a ~ map Type ImageKind FragmentOperationKind c)
4186 => HList c
4187 -> FragmentStream b (HList (imageType' a)) -> FrameBuffer b a -> FrameBuffer b a
2783testdata/Builtins.lc 517:15-517:174 Type 4188testdata/Builtins.lc 517:15-517:174 Type
2784testdata/Builtins.lc 517:28-517:31 Type 4189testdata/Builtins.lc 517:28-517:31 Type
2785testdata/Builtins.lc 517:39-517:45 Type 4190testdata/Builtins.lc 517:39-517:45 Type
@@ -2824,10 +4229,20 @@ testdata/Builtins.lc 519:1-519:15 forall a b . a -> b -> (a, b)
2824testdata/Builtins.lc 519:24-519:32 (_d, _b) 4229testdata/Builtins.lc 519:24-519:32 (_d, _b)
2825testdata/Builtins.lc 519:25-519:28 _f 4230testdata/Builtins.lc 519:25-519:28 _f
2826testdata/Builtins.lc 519:30-519:31 ((_b)) | _e 4231testdata/Builtins.lc 519:30-519:31 ((_b)) | _e
2827testdata/Builtins.lc 520:1-520:8 forall (a :: Nat) (b :: List Type) . FrameBuffer a (map Type ImageKind FragmentOperationKind b) -> (HList b, List (Fragment a (HList (imageType' (map Type ImageKind FragmentOperationKind b))))) -> FrameBuffer a (map Type ImageKind FragmentOperationKind b) 4232testdata/Builtins.lc 520:1-520:8 forall (a :: Nat) (b :: List Type)
2828testdata/Builtins.lc 520:25-520:35 forall (a :: List ImageKind) (b :: Nat) (c :: List Type) . (a ~ map Type ImageKind FragmentOperationKind c) => HList c -> FragmentStream b (HList (imageType' a)) -> FrameBuffer b a -> FrameBuffer b a 4233 . FrameBuffer a (map Type ImageKind FragmentOperationKind b)
2829testdata/Builtins.lc 520:25-520:39 FragmentStream _b (HList (imageType' (map Type ImageKind FragmentOperationKind _a))) -> FrameBuffer _b (map Type ImageKind FragmentOperationKind _a) -> FrameBuffer _b (map Type ImageKind FragmentOperationKind _a) 4234 -> (HList b, List
2830testdata/Builtins.lc 520:25-520:43 FrameBuffer _b (map Type ImageKind FragmentOperationKind _a) -> FrameBuffer _b (map Type ImageKind FragmentOperationKind _a) 4235 (Fragment a (HList (imageType' (map Type ImageKind FragmentOperationKind b)))))
4236 -> FrameBuffer a (map Type ImageKind FragmentOperationKind b)
4237testdata/Builtins.lc 520:25-520:35 forall (a :: List ImageKind) (b :: Nat) (c :: List Type)
4238 . (a ~ map Type ImageKind FragmentOperationKind c)
4239 => HList c
4240 -> FragmentStream b (HList (imageType' a)) -> FrameBuffer b a -> FrameBuffer b a
4241testdata/Builtins.lc 520:25-520:39 FragmentStream _b (HList (imageType' (map Type ImageKind FragmentOperationKind _a)))
4242 -> FrameBuffer _b (map Type ImageKind FragmentOperationKind _a)
4243 -> FrameBuffer _b (map Type ImageKind FragmentOperationKind _a)
4244testdata/Builtins.lc 520:25-520:43 FrameBuffer _b (map Type ImageKind FragmentOperationKind _a)
4245 -> FrameBuffer _b (map Type ImageKind FragmentOperationKind _a)
2831testdata/Builtins.lc 520:25-520:46 FrameBuffer _b (map Type ImageKind FragmentOperationKind _a) | HList _c -> _b | _c -> HList _b -> _a 4246testdata/Builtins.lc 520:25-520:46 FrameBuffer _b (map Type ImageKind FragmentOperationKind _a) | HList _c -> _b | _c -> HList _b -> _a
2832testdata/Builtins.lc 520:36-520:39 _m 4247testdata/Builtins.lc 520:36-520:39 _m
2833testdata/Builtins.lc 520:40-520:43 _h 4248testdata/Builtins.lc 520:40-520:43 _h
@@ -2835,7 +4250,9 @@ testdata/Builtins.lc 520:44-520:46 _n
2835testdata/Builtins.lc 524:31-524:40 Type 4250testdata/Builtins.lc 524:31-524:40 Type
2836testdata/Builtins.lc 524:47-524:59 Type -> ImageKind 4251testdata/Builtins.lc 524:47-524:59 Type -> ImageKind
2837testdata/Builtins.lc 524:74-524:75 ImageKind | ImageKind -> ImageKind | Nat -> ImageKind -> ImageKind | Type -> ImageKind 4252testdata/Builtins.lc 524:74-524:75 ImageKind | ImageKind -> ImageKind | Nat -> ImageKind -> ImageKind | Type -> ImageKind
2838testdata/Builtins.lc 530:1-530:12 forall (a :: List Type) . sameLayerCounts a => HList a -> FrameBuffer (ImageLC (head Type a)) (map Type ImageKind GetImageKind a) 4253testdata/Builtins.lc 530:1-530:12 forall (a :: List Type)
4254 . sameLayerCounts a
4255 => HList a -> FrameBuffer (ImageLC (head Type a)) (map Type ImageKind GetImageKind a)
2839testdata/Builtins.lc 530:30-530:36 Type 4256testdata/Builtins.lc 530:30-530:36 Type
2840testdata/Builtins.lc 530:31-530:35 Type 4257testdata/Builtins.lc 530:31-530:35 Type
2841testdata/Builtins.lc 530:40-530:125 Type 4258testdata/Builtins.lc 530:40-530:125 Type
@@ -2859,17 +4276,40 @@ testdata/Builtins.lc 530:106-530:122 List Type -> List ImageKind
2859testdata/Builtins.lc 530:106-530:124 List ImageKind 4276testdata/Builtins.lc 530:106-530:124 List ImageKind
2860testdata/Builtins.lc 530:110-530:122 Type -> ImageKind 4277testdata/Builtins.lc 530:110-530:122 Type -> ImageKind
2861testdata/Builtins.lc 530:123-530:124 List Type 4278testdata/Builtins.lc 530:123-530:124 List Type
2862testdata/Builtins.lc 532:1-532:11 forall (a :: List Type) . sameLayerCounts a => HList a -> FrameBuffer (ImageLC (head Type a)) (map Type ImageKind GetImageKind a) 4279testdata/Builtins.lc 532:1-532:11 forall (a :: List Type)
2863testdata/Builtins.lc 532:14-532:25 forall (a :: List Type) . sameLayerCounts a => HList a -> FrameBuffer (ImageLC (head Type a)) (map Type ImageKind GetImageKind a) 4280 . sameLayerCounts a
2864testdata/Builtins.lc 534:1-534:11 forall (a :: Nat) (b :: List Type) c . HList b -> (c -> HList (imageType' (map Type ImageKind FragmentOperationKind b))) -> List (Vector a (Maybe (SimpleFragment c))) -> FrameBuffer a (map Type ImageKind FragmentOperationKind b) -> FrameBuffer a (map Type ImageKind FragmentOperationKind b) 4281 => HList a -> FrameBuffer (ImageLC (head Type a)) (map Type ImageKind GetImageKind a)
2865testdata/Builtins.lc 534:34-534:44 forall (a :: List ImageKind) (b :: Nat) (c :: List Type) . (a ~ map Type ImageKind FragmentOperationKind c) => HList c -> FragmentStream b (HList (imageType' a)) -> FrameBuffer b a -> FrameBuffer b a 4282testdata/Builtins.lc 532:14-532:25 forall (a :: List Type)
2866testdata/Builtins.lc 534:34-534:48 FragmentStream _b (HList (imageType' (map Type ImageKind FragmentOperationKind _a))) -> FrameBuffer _b (map Type ImageKind FragmentOperationKind _a) -> FrameBuffer _b (map Type ImageKind FragmentOperationKind _a) 4283 . sameLayerCounts a
2867testdata/Builtins.lc 534:34-534:76 FrameBuffer _c (map Type ImageKind FragmentOperationKind _b) -> FrameBuffer _c (map Type ImageKind FragmentOperationKind _b) 4284 => HList a -> FrameBuffer (ImageLC (head Type a)) (map Type ImageKind GetImageKind a)
4285testdata/Builtins.lc 534:1-534:11 forall (a :: Nat) (b :: List Type) c
4286 . HList b
4287 -> (c -> HList (imageType' (map Type ImageKind FragmentOperationKind b)))
4288 -> List (Vector a (Maybe (SimpleFragment c)))
4289 -> FrameBuffer a (map Type ImageKind FragmentOperationKind b)
4290 -> FrameBuffer a (map Type ImageKind FragmentOperationKind b)
4291testdata/Builtins.lc 534:34-534:44 forall (a :: List ImageKind) (b :: Nat) (c :: List Type)
4292 . (a ~ map Type ImageKind FragmentOperationKind c)
4293 => HList c
4294 -> FragmentStream b (HList (imageType' a)) -> FrameBuffer b a -> FrameBuffer b a
4295testdata/Builtins.lc 534:34-534:48 FragmentStream _b (HList (imageType' (map Type ImageKind FragmentOperationKind _a)))
4296 -> FrameBuffer _b (map Type ImageKind FragmentOperationKind _a)
4297 -> FrameBuffer _b (map Type ImageKind FragmentOperationKind _a)
4298testdata/Builtins.lc 534:34-534:76 FrameBuffer _c (map Type ImageKind FragmentOperationKind _b)
4299 -> FrameBuffer _c (map Type ImageKind FragmentOperationKind _b)
2868testdata/Builtins.lc 534:34-534:79 FrameBuffer _c (map Type ImageKind FragmentOperationKind _b) 4300testdata/Builtins.lc 534:34-534:79 FrameBuffer _c (map Type ImageKind FragmentOperationKind _b)
2869testdata/Builtins.lc 534:45-534:48 _j 4301testdata/Builtins.lc 534:45-534:48 _j
2870testdata/Builtins.lc 534:50-534:62 forall a b (c :: Nat) . (a -> b) -> List (Vector c (Maybe (SimpleFragment a))) -> List (Vector c (Maybe (SimpleFragment b))) 4302testdata/Builtins.lc 534:50-534:62 forall a b (c :: Nat)
2871testdata/Builtins.lc 534:50-534:70 List (Vector _a (Maybe (SimpleFragment _c))) -> List (Vector _a (Maybe (SimpleFragment _b))) 4303 . (a -> b)
2872testdata/Builtins.lc 534:50-534:75 List (Vector _c (Maybe (SimpleFragment (HList (imageType' (map Type ImageKind FragmentOperationKind _b)))))) 4304 -> List (Vector c (Maybe (SimpleFragment a)))
4305 -> List (Vector c (Maybe (SimpleFragment b)))
4306testdata/Builtins.lc 534:50-534:70 List (Vector _a (Maybe (SimpleFragment _c)))
4307 -> List (Vector _a (Maybe (SimpleFragment _b)))
4308testdata/Builtins.lc 534:50-534:75 List
4309 (Vector
4310 _c
4311 (Maybe
4312 (SimpleFragment (HList (imageType' (map Type ImageKind FragmentOperationKind _b))))))
2873testdata/Builtins.lc 534:63-534:70 _k 4313testdata/Builtins.lc 534:63-534:70 _k
2874testdata/Builtins.lc 534:71-534:75 _g 4314testdata/Builtins.lc 534:71-534:75 _g
2875testdata/Builtins.lc 534:77-534:79 _e 4315testdata/Builtins.lc 534:77-534:79 _e
@@ -2886,7 +4326,8 @@ testdata/Builtins.lc 537:46-537:53 ImageKind -> Type
2886testdata/Builtins.lc 537:46-537:55 Type 4326testdata/Builtins.lc 537:46-537:55 Type
2887testdata/Builtins.lc 537:52-537:53 _b 4327testdata/Builtins.lc 537:52-537:53 _b
2888testdata/Builtins.lc 537:54-537:55 ImageKind 4328testdata/Builtins.lc 537:54-537:55 ImageKind
2889testdata/Builtins.lc 538:1-538:14 FrameBuffer 1 ('Cons 'Depth ('Cons ('Color (Vec 4 Float)) 'Nil)) -> Image 1 ('Color (Vec 4 Float)) 4329testdata/Builtins.lc 538:1-538:14 FrameBuffer 1 ('Cons 'Depth ('Cons ('Color (Vec 4 Float)) 'Nil))
4330 -> Image 1 ('Color (Vec 4 Float))
2890testdata/Builtins.lc 538:24-538:35 Nat -> List ImageKind -> Type 4331testdata/Builtins.lc 538:24-538:35 Nat -> List ImageKind -> Type
2891testdata/Builtins.lc 538:24-538:37 List ImageKind -> Type 4332testdata/Builtins.lc 538:24-538:37 List ImageKind -> Type
2892testdata/Builtins.lc 538:24-538:70 Type 4333testdata/Builtins.lc 538:24-538:70 Type