summaryrefslogtreecommitdiff
path: root/testdata
diff options
context:
space:
mode:
authorPéter Diviánszky <divipp@gmail.com>2016-01-20 10:09:35 +0100
committerPéter Diviánszky <divipp@gmail.com>2016-01-20 10:10:23 +0100
commit88622bb9e3ed5742acca0974dbf1be6d786392d4 (patch)
treeed98c40f42426cddfb17ca6be4313e3e9d2f1a64 /testdata
parent44aef5edecd4e9263927c856c23567a3670f2b36 (diff)
update .out files
Diffstat (limited to 'testdata')
-rw-r--r--testdata/Builtins.out45
-rw-r--r--testdata/HyperbolicParaboloic.out2
-rw-r--r--testdata/Hyperboloid.out2
-rw-r--r--testdata/Internals.out365
-rw-r--r--testdata/Prelude.out1076
-rw-r--r--testdata/Spiral.out2
-rw-r--r--testdata/fetcharrays01.out2
-rw-r--r--testdata/gfx03.out2
-rw-r--r--testdata/gfx04.out2
-rw-r--r--testdata/gfx05.out2
-rw-r--r--testdata/line01.out2
-rw-r--r--testdata/point01.out2
-rw-r--r--testdata/recursivetexture01.out2
-rw-r--r--testdata/simple03.out2
-rw-r--r--testdata/typeclass.out3
15 files changed, 769 insertions, 742 deletions
diff --git a/testdata/Builtins.out b/testdata/Builtins.out
index 41892a4e..fb5e6e5c 100644
--- a/testdata/Builtins.out
+++ b/testdata/Builtins.out
@@ -39,15 +39,15 @@ testdata/Builtins.lc 22:22-22:32 Type
39testdata/Builtins.lc 23:25-23:31 Type 39testdata/Builtins.lc 23:25-23:31 Type
40testdata/Builtins.lc 23:25-23:31 Type -> Type->Type 40testdata/Builtins.lc 23:25-23:31 Type -> Type->Type
41testdata/Builtins.lc 19:5-19:18 Type -> Type->Type 41testdata/Builtins.lc 19:5-19:18 Type -> Type->Type
42testdata/Builtins.lc 26:10-26:24 V0->Type 42testdata/Builtins.lc 26:10-26:24 Type->Type
43testdata/Builtins.lc 26:10-26:24 Type 43testdata/Builtins.lc 26:10-26:24 Type
44testdata/Builtins.lc 25:7-25:21 {a} -> a->Type 44testdata/Builtins.lc 25:7-25:21 Type->Type
45testdata/Builtins.lc 28:10-28:21 V0->Type 45testdata/Builtins.lc 28:10-28:21 Type->Type
46testdata/Builtins.lc 28:10-28:21 Type 46testdata/Builtins.lc 28:10-28:21 Type
47testdata/Builtins.lc 27:7-27:18 {a} -> a->Type 47testdata/Builtins.lc 27:7-27:18 Type->Type
48testdata/Builtins.lc 30:10-30:26 V0->Type 48testdata/Builtins.lc 30:10-30:26 Type->Type
49testdata/Builtins.lc 30:10-30:26 Type 49testdata/Builtins.lc 30:10-30:26 Type
50testdata/Builtins.lc 29:7-29:23 {a} -> a->Type 50testdata/Builtins.lc 29:7-29:23 Type->Type
51testdata/Builtins.lc 32:17-32:21 Type 51testdata/Builtins.lc 32:17-32:21 Type
52testdata/Builtins.lc 32:26-32:37 Type 52testdata/Builtins.lc 32:26-32:37 Type
53testdata/Builtins.lc 32:26-32:29 Type 53testdata/Builtins.lc 32:26-32:29 Type
@@ -391,20 +391,18 @@ testdata/Builtins.lc 98:19-98:29 {a} -> {b:'Nat} -> 'VecS a b -> 'Bool
391testdata/Builtins.lc 98:30-98:31 'VecS V1 V0 391testdata/Builtins.lc 98:30-98:31 'VecS V1 V0
392testdata/Builtins.lc 98:30-98:31 'VecS V6 V5 392testdata/Builtins.lc 98:30-98:31 'VecS V6 V5
393testdata/Builtins.lc 98:1-98:12 {a} -> {b:'Nat} -> {c:'Nat} -> 'VecS a b -> 'VecS 'Swizz c -> 'VecS a c 393testdata/Builtins.lc 98:1-98:12 {a} -> {b:'Nat} -> {c:'Nat} -> 'VecS a b -> 'VecS 'Swizz c -> 'VecS a c
394testdata/Builtins.lc 105:10-106:30 V0->Type 394testdata/Builtins.lc 105:10-106:30 Type->Type
395testdata/Builtins.lc 105:10-106:30 Type 395testdata/Builtins.lc 105:10-106:30 Type
396testdata/Builtins.lc 105:10-105:16 Type 396testdata/Builtins.lc 105:10-105:16 Type
397testdata/Builtins.lc 105:25-105:28 Type 397testdata/Builtins.lc 105:25-105:28 Type
398testdata/Builtins.lc 105:25-105:28 V1
399testdata/Builtins.lc 106:10-106:30 Type 398testdata/Builtins.lc 106:10-106:30 Type
400testdata/Builtins.lc 106:10-106:16 Type 399testdata/Builtins.lc 106:10-106:16 Type
401testdata/Builtins.lc 106:25-106:30 Type 400testdata/Builtins.lc 106:25-106:30 Type
402testdata/Builtins.lc 103:7-103:13 Type->Type 401testdata/Builtins.lc 103:7-103:13 Type->Type
403testdata/Builtins.lc 116:10-162:19 V0->Type 402testdata/Builtins.lc 116:10-162:19 Type->Type
404testdata/Builtins.lc 116:10-162:19 Type 403testdata/Builtins.lc 116:10-162:19 Type
405testdata/Builtins.lc 116:10-116:19 Type 404testdata/Builtins.lc 116:10-116:19 Type
406testdata/Builtins.lc 116:20-116:24 Type 405testdata/Builtins.lc 116:20-116:24 Type
407testdata/Builtins.lc 116:20-116:24 V1
408testdata/Builtins.lc 122:10-162:19 Type 406testdata/Builtins.lc 122:10-162:19 Type
409testdata/Builtins.lc 122:10-122:19 Type 407testdata/Builtins.lc 122:10-122:19 Type
410testdata/Builtins.lc 122:20-122:23 Type 408testdata/Builtins.lc 122:20-122:23 Type
@@ -758,20 +756,18 @@ testdata/Builtins.lc 167:21-167:25 'Bool
758testdata/Builtins.lc 167:26-167:30 'Bool 756testdata/Builtins.lc 167:26-167:30 'Bool
759testdata/Builtins.lc 167:31-167:35 'Bool 757testdata/Builtins.lc 167:31-167:35 'Bool
760testdata/Builtins.lc 113:3-113:10 {a} -> {b : 'Component a}->a 758testdata/Builtins.lc 113:3-113:10 {a} -> {b : 'Component a}->a
761testdata/Builtins.lc 171:10-172:29 V0->Type 759testdata/Builtins.lc 171:10-172:29 Type->Type
762testdata/Builtins.lc 171:10-172:29 Type 760testdata/Builtins.lc 171:10-172:29 Type
763testdata/Builtins.lc 171:10-171:18 Type 761testdata/Builtins.lc 171:10-171:18 Type
764testdata/Builtins.lc 171:25-171:28 Type 762testdata/Builtins.lc 171:25-171:28 Type
765testdata/Builtins.lc 171:25-171:28 V1
766testdata/Builtins.lc 172:10-172:29 Type 763testdata/Builtins.lc 172:10-172:29 Type
767testdata/Builtins.lc 172:10-172:18 Type 764testdata/Builtins.lc 172:10-172:18 Type
768testdata/Builtins.lc 172:25-172:29 Type 765testdata/Builtins.lc 172:25-172:29 Type
769testdata/Builtins.lc 169:7-169:15 Type->Type 766testdata/Builtins.lc 169:7-169:15 Type->Type
770testdata/Builtins.lc 176:10-188:18 V0->Type 767testdata/Builtins.lc 176:10-188:18 Type->Type
771testdata/Builtins.lc 176:10-188:18 Type 768testdata/Builtins.lc 176:10-188:18 Type
772testdata/Builtins.lc 176:10-176:18 Type 769testdata/Builtins.lc 176:10-176:18 Type
773testdata/Builtins.lc 176:25-176:30 Type 770testdata/Builtins.lc 176:25-176:30 Type
774testdata/Builtins.lc 176:25-176:30 V1
775testdata/Builtins.lc 177:10-188:18 Type 771testdata/Builtins.lc 177:10-188:18 Type
776testdata/Builtins.lc 177:10-179:18 Type -> 'Nat->Type 772testdata/Builtins.lc 177:10-179:18 Type -> 'Nat->Type
777testdata/Builtins.lc 177:10-179:18 'Nat->Type 773testdata/Builtins.lc 177:10-179:18 'Nat->Type
@@ -1187,13 +1183,13 @@ testdata/Builtins.lc 361:18-361:59 V2
1187testdata/Builtins.lc 361:46-361:55 'PrimitiveType -> Type->Type 1183testdata/Builtins.lc 361:46-361:55 'PrimitiveType -> Type->Type
1188testdata/Builtins.lc 361:1-361:13 {a} -> {b} -> {c:'PrimitiveType} -> a->b -> 'Primitive c a -> 'Primitive c b 1184testdata/Builtins.lc 361:1-361:13 {a} -> {b} -> {c:'PrimitiveType} -> a->b -> 'Primitive c a -> 'Primitive c b
1189testdata/Builtins.lc 363:39-363:96 Type 1185testdata/Builtins.lc 363:39-363:96 Type
1190testdata/Builtins.lc 363:39-363:53 {a} -> a->Type 1186testdata/Builtins.lc 363:39-363:53 Type->Type
1191testdata/Builtins.lc 363:54-363:55 V0 1187testdata/Builtins.lc 363:54-363:55 Type
1192testdata/Builtins.lc 363:54-363:55 V2 1188testdata/Builtins.lc 363:54-363:55 V1
1193testdata/Builtins.lc 363:60-363:96 Type 1189testdata/Builtins.lc 363:60-363:96 Type
1194testdata/Builtins.lc 363:60-363:66 Type 1190testdata/Builtins.lc 363:60-363:66 Type
1195testdata/Builtins.lc 363:70-363:96 Type 1191testdata/Builtins.lc 363:70-363:96 Type
1196testdata/Builtins.lc 363:70-363:71 V3 1192testdata/Builtins.lc 363:70-363:71 Type
1197testdata/Builtins.lc 363:75-363:96 Type 1193testdata/Builtins.lc 363:75-363:96 Type
1198testdata/Builtins.lc 363:75-363:81 Type->Type 1194testdata/Builtins.lc 363:75-363:81 Type->Type
1199testdata/Builtins.lc 363:83-363:96 Type 1195testdata/Builtins.lc 363:83-363:96 Type
@@ -1203,12 +1199,11 @@ testdata/Builtins.lc 363:93-363:94 V5
1203testdata/Builtins.lc 363:95-363:96 Type 1199testdata/Builtins.lc 363:95-363:96 Type
1204testdata/Builtins.lc 363:1-363:7 {a:'PrimitiveType} -> {b} -> {c:'Unit} -> 'String -> b -> 'Stream ('Primitive a b) 1200testdata/Builtins.lc 363:1-363:7 {a:'PrimitiveType} -> {b} -> {c:'Unit} -> 'String -> b -> 'Stream ('Primitive a b)
1205testdata/Builtins.lc 364:42-364:106 Type 1201testdata/Builtins.lc 364:42-364:106 Type
1206testdata/Builtins.lc 364:42-364:56 {a} -> a->Type 1202testdata/Builtins.lc 364:42-364:56 Type->Type
1207testdata/Builtins.lc 364:57-364:58 V0 1203testdata/Builtins.lc 364:57-364:58 Type
1208testdata/Builtins.lc 364:57-364:58 V4 1204testdata/Builtins.lc 364:57-364:58 V3
1209testdata/Builtins.lc 364:60-364:106 Type 1205testdata/Builtins.lc 364:60-364:106 Type
1210testdata/Builtins.lc 364:60-364:61 Type 1206testdata/Builtins.lc 364:60-364:61 Type
1211testdata/Builtins.lc 364:60-364:61 V4
1212testdata/Builtins.lc 364:64-364:74 Type 1207testdata/Builtins.lc 364:64-364:74 Type
1213testdata/Builtins.lc 364:64-364:71 Type->Type 1208testdata/Builtins.lc 364:64-364:71 Type->Type
1214testdata/Builtins.lc 364:72-364:74 Type 1209testdata/Builtins.lc 364:72-364:74 Type
@@ -1382,14 +1377,13 @@ testdata/Builtins.lc 427:29-427:40 {a} -> {b} -> {c:'Nat} -> {d:'DepthHandler}
1382testdata/Builtins.lc 427:1-427:13 {a} -> {b} -> {c:'Nat} -> {d:'DepthHandler} -> a->b -> 'Stream ('Fragment c d a) -> 'Stream ('Fragment c d b) 1377testdata/Builtins.lc 427:1-427:13 {a} -> {b} -> {c:'Nat} -> {d:'DepthHandler} -> a->b -> 'Stream ('Fragment c d a) -> 'Stream ('Fragment c d b)
1383testdata/Builtins.lc 432:13-432:26 Type->Type 1378testdata/Builtins.lc 432:13-432:26 Type->Type
1384testdata/Builtins.lc 437:13-437:28 Type->Type 1379testdata/Builtins.lc 437:13-437:28 Type->Type
1385testdata/Builtins.lc 440:10-441:36 V0->Type 1380testdata/Builtins.lc 440:10-441:36 Type->Type
1386testdata/Builtins.lc 440:10-441:36 Type 1381testdata/Builtins.lc 440:10-441:36 Type
1387testdata/Builtins.lc 440:10-440:23 Type->Type 1382testdata/Builtins.lc 440:10-440:23 Type->Type
1388testdata/Builtins.lc 440:10-440:23 Type 1383testdata/Builtins.lc 440:10-440:23 Type
1389testdata/Builtins.lc 440:10-440:23 Type -> 'Nat->Type 1384testdata/Builtins.lc 440:10-440:23 Type -> 'Nat->Type
1390testdata/Builtins.lc 440:10-440:23 'Nat->Type 1385testdata/Builtins.lc 440:10-440:23 'Nat->Type
1391testdata/Builtins.lc 440:37-440:44 Type 1386testdata/Builtins.lc 440:37-440:44 Type
1392testdata/Builtins.lc 440:37-440:44 V1
1393testdata/Builtins.lc 441:10-441:36 Type 1387testdata/Builtins.lc 441:10-441:36 Type
1394testdata/Builtins.lc 441:10-441:23 Type->Type 1388testdata/Builtins.lc 441:10-441:23 Type->Type
1395testdata/Builtins.lc 441:10-441:23 Type 1389testdata/Builtins.lc 441:10-441:23 Type
@@ -1457,8 +1451,7 @@ testdata/Builtins.lc 449:106-449:107 'Nat
1457testdata/Builtins.lc 449:108-449:109 Type 1451testdata/Builtins.lc 449:108-449:109 Type
1458testdata/Builtins.lc 449:3-449:13 {a:'Nat} -> {b} -> {c:'DepthHandler} -> 'FragOps' b -> 'Stream ('Fragment a c ('RemSemantics b)) -> 'FrameBuffer a b -> 'FrameBuffer a b 1452testdata/Builtins.lc 449:3-449:13 {a:'Nat} -> {b} -> {c:'DepthHandler} -> 'FragOps' b -> 'Stream ('Fragment a c ('RemSemantics b)) -> 'FrameBuffer a b -> 'FrameBuffer a b
1459testdata/Builtins.lc 450:20-450:117 Type 1453testdata/Builtins.lc 450:20-450:117 Type
1460testdata/Builtins.lc 450:20-450:36 {a} -> a->Type 1454testdata/Builtins.lc 450:20-450:36 Type->Type
1461testdata/Builtins.lc 450:37-450:38 V0
1462testdata/Builtins.lc 450:37-450:38 Type 1455testdata/Builtins.lc 450:37-450:38 Type
1463testdata/Builtins.lc 450:40-450:55 Type->Type 1456testdata/Builtins.lc 450:40-450:55 Type->Type
1464testdata/Builtins.lc 450:20-450:117 V2 1457testdata/Builtins.lc 450:20-450:117 V2
diff --git a/testdata/HyperbolicParaboloic.out b/testdata/HyperbolicParaboloic.out
index c37fd574..8a4a6a38 100644
--- a/testdata/HyperbolicParaboloic.out
+++ b/testdata/HyperbolicParaboloic.out
@@ -1 +1 @@
Pipeline {backend = OpenGL33, textures = [], samplers = [], targets = [RenderTarget {renderTargets = [TargetItem {targetSemantic = Depth, targetRef = Just (Framebuffer Depth)},TargetItem {targetSemantic = Color, targetRef = Just (Framebuffer Color)}]}], programs = [Program {programUniforms = fromList [("MVP",M44F),("Mouse",V2F)], programStreams = fromList [("o1",Parameter {name = "attribute_0", ty = V3F})], programInTextures = fromList [], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform mat4 MVP ;\nuniform vec2 Mouse ;\nin vec3 o1 ;\nsmooth out vec4 v0 ;\nvoid main() {\nv0 = vec4 ( 0.0,0.0,0.0,1.0 );\ngl_Position = ( ( MVP ) * ( vec4 ( ( ( Mouse ).y ) * ( 0.0 ),( ( ( 0.5 ) * ( ( Mouse ).x ) ) * ( 0.0 ) ) * ( 0.0 ),( ( Mouse ).y ) * ( 0.0 ),1.0 ) ) ) * ( vec4 ( 0.1,0.1,0.1,1.0 ) );\ngl_PointSize = 1.0;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nsmooth in vec4 v0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = v0;\n}\n"}], slots = [], streams = [StreamData {streamData = fromList [("attribute_0",VFloatArray [-3.0,-3.0,0.0,-3.0,3.0,0.0,-2.0,-3.0,0.0,-2.0,3.0,0.0,-1.0,-3.0,0.0,-1.0,3.0,0.0,0.0,-3.0,0.0,0.0,3.0,0.0,1.0,-3.0,0.0,1.0,3.0,0.0,2.0,-3.0,0.0,2.0,3.0,0.0,3.0,-3.0,0.0,3.0,3.0,0.0,-3.0,-3.0,0.0,3.0,-3.0,0.0,-3.0,-2.0,0.0,3.0,-2.0,0.0,-3.0,-1.0,0.0,3.0,-1.0,0.0,-3.0,0.0,0.0,3.0,0.0,0.0,-3.0,1.0,0.0,3.0,1.0,0.0,-3.0,2.0,0.0,3.0,2.0,0.0,-3.0,3.0,0.0,3.0,3.0,0.0])], streamType = fromList [("attribute_0",V3F)], streamPrimitive = Lines, streamPrograms = [0]}], commands = [SetRenderTarget 0,ClearRenderTarget [ClearImage {imageSemantic = Depth, clearValue = VFloat 1000.0},ClearImage {imageSemantic = Color, clearValue = VV4F (V4 1.0 1.0 1.0 1.0)}],SetProgram 0,SetRasterContext (LineCtx 1.0 LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderStream 0]} \ No newline at end of file Pipeline {backend = OpenGL33, textures = [], samplers = [], targets = [RenderTarget {renderTargets = [TargetItem {targetSemantic = Depth, targetRef = Just (Framebuffer Depth)},TargetItem {targetSemantic = Color, targetRef = Just (Framebuffer Color)}]}], programs = [Program {programUniforms = fromList [("MVP",M44F),("Mouse",V2F)], programStreams = fromList [("o1",Parameter {name = "attribute_0", ty = V3F})], programInTextures = fromList [], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform mat4 MVP ;\nuniform vec2 Mouse ;\nin vec3 o1 ;\nsmooth out vec4 v0 ;\nvoid main() {\nv0 = vec4 ( ( o1 ).x,( o1 ).y,( o1 ).z,1.0 );\ngl_Position = ( ( MVP ) * ( vec4 ( ( ( Mouse ).y ) * ( ( o1 ).x ),( ( ( 0.5 ) * ( ( Mouse ).x ) ) * ( ( o1 ).x ) ) * ( ( o1 ).y ),( ( Mouse ).y ) * ( ( o1 ).y ),1.0 ) ) ) * ( vec4 ( 0.1,0.1,0.1,1.0 ) );\ngl_PointSize = 1.0;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nsmooth in vec4 v0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = v0;\n}\n"}], slots = [], streams = [StreamData {streamData = fromList [("attribute_0",VFloatArray [-3.0,-3.0,0.0,-3.0,3.0,0.0,-2.0,-3.0,0.0,-2.0,3.0,0.0,-1.0,-3.0,0.0,-1.0,3.0,0.0,0.0,-3.0,0.0,0.0,3.0,0.0,1.0,-3.0,0.0,1.0,3.0,0.0,2.0,-3.0,0.0,2.0,3.0,0.0,3.0,-3.0,0.0,3.0,3.0,0.0,-3.0,-3.0,0.0,3.0,-3.0,0.0,-3.0,-2.0,0.0,3.0,-2.0,0.0,-3.0,-1.0,0.0,3.0,-1.0,0.0,-3.0,0.0,0.0,3.0,0.0,0.0,-3.0,1.0,0.0,3.0,1.0,0.0,-3.0,2.0,0.0,3.0,2.0,0.0,-3.0,3.0,0.0,3.0,3.0,0.0])], streamType = fromList [("attribute_0",V3F)], streamPrimitive = Lines, streamPrograms = [0]}], commands = [SetRenderTarget 0,ClearRenderTarget [ClearImage {imageSemantic = Depth, clearValue = VFloat 1000.0},ClearImage {imageSemantic = Color, clearValue = VV4F (V4 1.0 1.0 1.0 1.0)}],SetProgram 0,SetRasterContext (LineCtx 1.0 LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderStream 0]} \ No newline at end of file
diff --git a/testdata/Hyperboloid.out b/testdata/Hyperboloid.out
index f7774d7b..fef26fc4 100644
--- a/testdata/Hyperboloid.out
+++ b/testdata/Hyperboloid.out
@@ -1 +1 @@
Pipeline {backend = OpenGL33, textures = [], samplers = [], targets = [RenderTarget {renderTargets = [TargetItem {targetSemantic = Depth, targetRef = Just (Framebuffer Depth)},TargetItem {targetSemantic = Color, targetRef = Just (Framebuffer Color)}]}], programs = [Program {programUniforms = fromList [("MVP",M44F),("Mouse",V2F)], programStreams = fromList [("o1",Parameter {name = "attribute_0", ty = V3F})], programInTextures = fromList [], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform mat4 MVP ;\nuniform vec2 Mouse ;\nin vec3 o1 ;\nsmooth out vec4 v0 ;\nvoid main() {\nv0 = vec4 ( 0.0,0.0,0.0,1.0 );\ngl_Position = ( ( MVP ) * ( vec4 ( ( ( 2.0 ) * ( ( Mouse ).y ) ) * ( sin ( ( 0.0 ) + ( ( ( Mouse ).x ) * ( 0.0 ) ) ) ),0.0,( ( 2.0 ) * ( ( Mouse ).y ) ) * ( cos ( ( 0.0 ) + ( ( ( Mouse ).x ) * ( 0.0 ) ) ) ),1.0 ) ) ) * ( vec4 ( 0.1,0.1,0.1,1.0 ) );\ngl_PointSize = 1.0;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nsmooth in vec4 v0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = v0;\n}\n"}], slots = [], streams = [StreamData {streamData = fromList [("attribute_0",VFloatArray [-5.0,-3.0,0.0,-5.0,3.0,0.0,-4.0,-3.0,0.0,-4.0,3.0,0.0,-3.0,-3.0,0.0,-3.0,3.0,0.0,-2.0,-3.0,0.0,-2.0,3.0,0.0,-1.0,-3.0,0.0,-1.0,3.0,0.0,0.0,-3.0,0.0,0.0,3.0,0.0,1.0,-3.0,0.0,1.0,3.0,0.0,2.0,-3.0,0.0,2.0,3.0,0.0,3.0,-3.0,0.0,3.0,3.0,0.0,4.0,-3.0,0.0,4.0,3.0,0.0,5.0,-3.0,0.0,5.0,3.0,0.0])], streamType = fromList [("attribute_0",V3F)], streamPrimitive = Lines, streamPrograms = [0]}], commands = [SetRenderTarget 0,ClearRenderTarget [ClearImage {imageSemantic = Depth, clearValue = VFloat 1000.0},ClearImage {imageSemantic = Color, clearValue = VV4F (V4 1.0 1.0 1.0 1.0)}],SetProgram 0,SetRasterContext (LineCtx 1.0 LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderStream 0]} \ No newline at end of file Pipeline {backend = OpenGL33, textures = [], samplers = [], targets = [RenderTarget {renderTargets = [TargetItem {targetSemantic = Depth, targetRef = Just (Framebuffer Depth)},TargetItem {targetSemantic = Color, targetRef = Just (Framebuffer Color)}]}], programs = [Program {programUniforms = fromList [("MVP",M44F),("Mouse",V2F)], programStreams = fromList [("o1",Parameter {name = "attribute_0", ty = V3F})], programInTextures = fromList [], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform mat4 MVP ;\nuniform vec2 Mouse ;\nin vec3 o1 ;\nsmooth out vec4 v0 ;\nvoid main() {\nv0 = vec4 ( ( o1 ).x,( o1 ).y,( o1 ).z,1.0 );\ngl_Position = ( ( MVP ) * ( vec4 ( ( ( 2.0 ) * ( ( Mouse ).y ) ) * ( sin ( ( ( 0.7 ) * ( ( o1 ).x ) ) + ( ( ( Mouse ).x ) * ( ( o1 ).y ) ) ) ),( o1 ).y,( ( 2.0 ) * ( ( Mouse ).y ) ) * ( cos ( ( ( 0.7 ) * ( ( o1 ).x ) ) + ( ( ( Mouse ).x ) * ( ( o1 ).y ) ) ) ),1.0 ) ) ) * ( vec4 ( 0.1,0.1,0.1,1.0 ) );\ngl_PointSize = 1.0;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nsmooth in vec4 v0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = v0;\n}\n"}], slots = [], streams = [StreamData {streamData = fromList [("attribute_0",VFloatArray [-5.0,-3.0,0.0,-5.0,3.0,0.0,-4.0,-3.0,0.0,-4.0,3.0,0.0,-3.0,-3.0,0.0,-3.0,3.0,0.0,-2.0,-3.0,0.0,-2.0,3.0,0.0,-1.0,-3.0,0.0,-1.0,3.0,0.0,0.0,-3.0,0.0,0.0,3.0,0.0,1.0,-3.0,0.0,1.0,3.0,0.0,2.0,-3.0,0.0,2.0,3.0,0.0,3.0,-3.0,0.0,3.0,3.0,0.0,4.0,-3.0,0.0,4.0,3.0,0.0,5.0,-3.0,0.0,5.0,3.0,0.0])], streamType = fromList [("attribute_0",V3F)], streamPrimitive = Lines, streamPrograms = [0]}], commands = [SetRenderTarget 0,ClearRenderTarget [ClearImage {imageSemantic = Depth, clearValue = VFloat 1000.0},ClearImage {imageSemantic = Color, clearValue = VV4F (V4 1.0 1.0 1.0 1.0)}],SetProgram 0,SetRasterContext (LineCtx 1.0 LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderStream 0]} \ No newline at end of file
diff --git a/testdata/Internals.out b/testdata/Internals.out
index 9f5f04ee..5f6cd3ab 100644
--- a/testdata/Internals.out
+++ b/testdata/Internals.out
@@ -3,199 +3,204 @@ tooltips:
3testdata/Internals.lc 5:27-5:31 Type 3testdata/Internals.lc 5:27-5:31 Type
4testdata/Internals.lc 5:35-5:36 Type 4testdata/Internals.lc 5:35-5:36 Type
5testdata/Internals.lc 5:1-5:10 {a}->a 5testdata/Internals.lc 5:1-5:10 {a}->a
6testdata/Internals.lc 7:6-7:10 Type 6testdata/Internals.lc 7:25-7:29 Type
7testdata/Internals.lc 7:13-7:15 'Unit 7testdata/Internals.lc 7:34-7:46 Type
8testdata/Internals.lc 8:6-8:12 Type 8testdata/Internals.lc 7:34-7:35 Type
9testdata/Internals.lc 9:18-9:24 Type 9testdata/Internals.lc 7:39-7:40 Type
10testdata/Internals.lc 9:6-9:11 'String->Type 10testdata/Internals.lc 7:45-7:46 Type
11testdata/Internals.lc 12:6-12:12 Type 11testdata/Internals.lc 7:1-7:8 {a} -> a->a -> a
12testdata/Internals.lc 12:15-12:21 'Tuple0 12testdata/Internals.lc 9:6-9:10 Type
13testdata/Internals.lc 13:6-13:12 Type->Type 13testdata/Internals.lc 9:13-9:15 'Unit
14testdata/Internals.lc 13:6-13:25 Type 14testdata/Internals.lc 10:6-10:12 Type
15testdata/Internals.lc 13:24-13:25 Type 15testdata/Internals.lc 11:18-11:24 Type
16testdata/Internals.lc 13:6-13:12 Type 16testdata/Internals.lc 11:6-11:11 'String->Type
17testdata/Internals.lc 13:17-13:23 {a} -> a -> 'Tuple1 a
18testdata/Internals.lc 14:6-14:12 Type -> Type->Type
19testdata/Internals.lc 14:6-14:29 Type
20testdata/Internals.lc 14:26-14:27 Type
21testdata/Internals.lc 14:28-14:29 Type
22testdata/Internals.lc 14:6-14:12 Type 17testdata/Internals.lc 14:6-14:12 Type
23testdata/Internals.lc 14:19-14:25 {a} -> {b} -> a -> b -> 'Tuple2 a b 18testdata/Internals.lc 14:15-14:21 'Tuple0
24testdata/Internals.lc 15:6-15:12 Type -> Type -> Type->Type 19testdata/Internals.lc 15:6-15:12 Type->Type
25testdata/Internals.lc 15:6-15:33 Type 20testdata/Internals.lc 15:6-15:25 Type
26testdata/Internals.lc 15:28-15:29 Type 21testdata/Internals.lc 15:24-15:25 Type
27testdata/Internals.lc 15:30-15:31 Type
28testdata/Internals.lc 15:32-15:33 Type
29testdata/Internals.lc 15:6-15:12 Type 22testdata/Internals.lc 15:6-15:12 Type
30testdata/Internals.lc 15:21-15:27 {a} -> {b} -> {c} -> a -> b -> c -> 'Tuple3 a b c 23testdata/Internals.lc 15:17-15:23 {a} -> a -> 'Tuple1 a
31testdata/Internals.lc 16:6-16:12 Type -> Type -> Type -> Type->Type 24testdata/Internals.lc 16:6-16:12 Type -> Type->Type
32testdata/Internals.lc 16:6-16:37 Type 25testdata/Internals.lc 16:6-16:29 Type
33testdata/Internals.lc 16:30-16:31 Type 26testdata/Internals.lc 16:26-16:27 Type
34testdata/Internals.lc 16:32-16:33 Type 27testdata/Internals.lc 16:28-16:29 Type
35testdata/Internals.lc 16:34-16:35 Type
36testdata/Internals.lc 16:36-16:37 Type
37testdata/Internals.lc 16:6-16:12 Type 28testdata/Internals.lc 16:6-16:12 Type
38testdata/Internals.lc 16:23-16:29 {a} -> {b} -> {c} -> {d} -> a -> b -> c -> d -> 'Tuple4 a b c d 29testdata/Internals.lc 16:19-16:25 {a} -> {b} -> a -> b -> 'Tuple2 a b
39testdata/Internals.lc 17:6-17:12 Type -> Type -> Type -> Type -> Type->Type 30testdata/Internals.lc 17:6-17:12 Type -> Type -> Type->Type
40testdata/Internals.lc 17:6-17:41 Type 31testdata/Internals.lc 17:6-17:33 Type
32testdata/Internals.lc 17:28-17:29 Type
33testdata/Internals.lc 17:30-17:31 Type
41testdata/Internals.lc 17:32-17:33 Type 34testdata/Internals.lc 17:32-17:33 Type
42testdata/Internals.lc 17:34-17:35 Type
43testdata/Internals.lc 17:36-17:37 Type
44testdata/Internals.lc 17:38-17:39 Type
45testdata/Internals.lc 17:40-17:41 Type
46testdata/Internals.lc 17:6-17:12 Type 35testdata/Internals.lc 17:6-17:12 Type
47testdata/Internals.lc 17:25-17:31 {a} -> {b} -> {c} -> {d} -> {e} -> a -> b -> c -> d -> e -> 'Tuple5 a b c d e 36testdata/Internals.lc 17:21-17:27 {a} -> {b} -> {c} -> a -> b -> c -> 'Tuple3 a b c
48testdata/Internals.lc 23:24-23:35 Type 37testdata/Internals.lc 18:6-18:12 Type -> Type -> Type -> Type->Type
49testdata/Internals.lc 23:24-23:25 V1 38testdata/Internals.lc 18:6-18:37 Type
50testdata/Internals.lc 23:29-23:35 Type 39testdata/Internals.lc 18:30-18:31 Type
51testdata/Internals.lc 23:29-23:30 Type 40testdata/Internals.lc 18:32-18:33 Type
52testdata/Internals.lc 23:34-23:35 Type 41testdata/Internals.lc 18:34-18:35 Type
53testdata/Internals.lc 23:1-23:8 a:Type -> a -> a->a 42testdata/Internals.lc 18:36-18:37 Type
54testdata/Internals.lc 25:24-25:28 Type 43testdata/Internals.lc 18:6-18:12 Type
55testdata/Internals.lc 25:36-25:46 Type 44testdata/Internals.lc 18:23-18:29 {a} -> {b} -> {c} -> {d} -> a -> b -> c -> d -> 'Tuple4 a b c d
56testdata/Internals.lc 25:36-25:37 Type 45testdata/Internals.lc 19:6-19:12 Type -> Type -> Type -> Type -> Type->Type
57testdata/Internals.lc 25:45-25:46 Type 46testdata/Internals.lc 19:6-19:41 Type
58testdata/Internals.lc 25:13-25:17 a:Type -> a -> a->Type 47testdata/Internals.lc 19:32-19:33 Type
59testdata/Internals.lc 26:13-26:15 Type -> Type->Type 48testdata/Internals.lc 19:34-19:35 Type
60testdata/Internals.lc 29:8-29:12 Type 49testdata/Internals.lc 19:36-19:37 Type
61testdata/Internals.lc 29:16-29:28 Type 50testdata/Internals.lc 19:38-19:39 Type
62testdata/Internals.lc 29:16-29:20 Type 51testdata/Internals.lc 19:40-19:41 Type
63testdata/Internals.lc 29:24-29:28 Type 52testdata/Internals.lc 19:6-19:12 Type
64testdata/Internals.lc 29:1-29:4 'Unit -> 'Unit->'Unit 53testdata/Internals.lc 19:25-19:31 {a} -> {b} -> {c} -> {d} -> {e} -> a -> b -> c -> d -> e -> 'Tuple5 a b c d e
65testdata/Internals.lc 32:6-32:9 Type 54testdata/Internals.lc 25:24-25:35 Type
66testdata/Internals.lc 33:6-33:10 Type 55testdata/Internals.lc 25:24-25:25 V1
67testdata/Internals.lc 34:6-34:11 Type 56testdata/Internals.lc 25:29-25:35 Type
57testdata/Internals.lc 25:29-25:30 Type
58testdata/Internals.lc 25:34-25:35 Type
59testdata/Internals.lc 25:1-25:8 a:Type -> a -> a->a
60testdata/Internals.lc 27:24-27:28 Type
61testdata/Internals.lc 27:36-27:46 Type
62testdata/Internals.lc 27:36-27:37 Type
63testdata/Internals.lc 27:45-27:46 Type
64testdata/Internals.lc 27:13-27:17 a:Type -> a -> a->Type
65testdata/Internals.lc 28:13-28:15 Type -> Type->Type
66testdata/Internals.lc 31:8-31:12 Type
67testdata/Internals.lc 31:16-31:28 Type
68testdata/Internals.lc 31:16-31:20 Type
69testdata/Internals.lc 31:24-31:28 Type
70testdata/Internals.lc 31:1-31:4 'Unit -> 'Unit->'Unit
71testdata/Internals.lc 34:6-34:9 Type
68testdata/Internals.lc 35:6-35:10 Type 72testdata/Internals.lc 35:6-35:10 Type
73testdata/Internals.lc 36:6-36:11 Type
69testdata/Internals.lc 37:6-37:10 Type 74testdata/Internals.lc 37:6-37:10 Type
70testdata/Internals.lc 37:13-37:18 'Bool 75testdata/Internals.lc 39:6-39:10 Type
71testdata/Internals.lc 37:21-37:25 'Bool 76testdata/Internals.lc 39:13-39:18 'Bool
72testdata/Internals.lc 39:6-39:14 Type 77testdata/Internals.lc 39:21-39:25 'Bool
73testdata/Internals.lc 39:17-39:19 'Ordering 78testdata/Internals.lc 41:6-41:14 Type
74testdata/Internals.lc 39:22-39:24 'Ordering 79testdata/Internals.lc 41:17-41:19 'Ordering
75testdata/Internals.lc 39:27-39:29 'Ordering 80testdata/Internals.lc 41:22-41:24 'Ordering
76testdata/Internals.lc 42:24-42:27 Type 81testdata/Internals.lc 41:27-41:29 'Ordering
77testdata/Internals.lc 42:33-42:37 Type
78testdata/Internals.lc 42:1-42:14 'Int->'Word
79testdata/Internals.lc 43:24-43:27 Type
80testdata/Internals.lc 43:33-43:38 Type
81testdata/Internals.lc 43:1-43:15 'Int->'Float
82testdata/Internals.lc 44:24-44:27 Type 82testdata/Internals.lc 44:24-44:27 Type
83testdata/Internals.lc 44:33-44:50 Type 83testdata/Internals.lc 44:33-44:37 Type
84testdata/Internals.lc 44:33-44:36 Type 84testdata/Internals.lc 44:1-44:14 'Int->'Word
85testdata/Internals.lc 44:42-44:50 Type 85testdata/Internals.lc 45:24-45:27 Type
86testdata/Internals.lc 44:1-44:15 'Int -> 'Int->'Ordering 86testdata/Internals.lc 45:33-45:38 Type
87testdata/Internals.lc 45:24-45:28 Type 87testdata/Internals.lc 45:1-45:15 'Int->'Float
88testdata/Internals.lc 45:33-45:50 Type 88testdata/Internals.lc 46:24-46:27 Type
89testdata/Internals.lc 45:33-45:37 Type
90testdata/Internals.lc 45:42-45:50 Type
91testdata/Internals.lc 45:1-45:16 'Word -> 'Word->'Ordering
92testdata/Internals.lc 46:24-46:29 Type
93testdata/Internals.lc 46:33-46:50 Type 89testdata/Internals.lc 46:33-46:50 Type
94testdata/Internals.lc 46:33-46:38 Type 90testdata/Internals.lc 46:33-46:36 Type
95testdata/Internals.lc 46:42-46:50 Type 91testdata/Internals.lc 46:42-46:50 Type
96testdata/Internals.lc 46:1-46:17 'Float -> 'Float->'Ordering 92testdata/Internals.lc 46:1-46:15 'Int -> 'Int->'Ordering
97testdata/Internals.lc 47:24-47:30 Type 93testdata/Internals.lc 47:24-47:28 Type
98testdata/Internals.lc 47:34-47:52 Type 94testdata/Internals.lc 47:33-47:50 Type
99testdata/Internals.lc 47:34-47:40 Type 95testdata/Internals.lc 47:33-47:37 Type
100testdata/Internals.lc 47:44-47:52 Type 96testdata/Internals.lc 47:42-47:50 Type
101testdata/Internals.lc 47:1-47:18 'String -> 'String->'Ordering 97testdata/Internals.lc 47:1-47:16 'Word -> 'Word->'Ordering
102testdata/Internals.lc 48:24-48:27 Type 98testdata/Internals.lc 48:24-48:29 Type
103testdata/Internals.lc 48:33-48:36 Type 99testdata/Internals.lc 48:33-48:50 Type
104testdata/Internals.lc 48:1-48:14 'Int->'Int 100testdata/Internals.lc 48:33-48:38 Type
105testdata/Internals.lc 49:24-49:28 Type 101testdata/Internals.lc 48:42-48:50 Type
106testdata/Internals.lc 49:33-49:37 Type 102testdata/Internals.lc 48:1-48:17 'Float -> 'Float->'Ordering
107testdata/Internals.lc 49:1-49:15 'Word->'Word 103testdata/Internals.lc 49:24-49:30 Type
108testdata/Internals.lc 50:24-50:29 Type 104testdata/Internals.lc 49:34-49:52 Type
109testdata/Internals.lc 50:33-50:38 Type 105testdata/Internals.lc 49:34-49:40 Type
110testdata/Internals.lc 50:1-50:16 'Float->'Float 106testdata/Internals.lc 49:44-49:52 Type
111testdata/Internals.lc 51:24-51:27 Type 107testdata/Internals.lc 49:1-49:18 'String -> 'String->'Ordering
112testdata/Internals.lc 51:33-51:45 Type 108testdata/Internals.lc 50:24-50:27 Type
113testdata/Internals.lc 51:33-51:36 Type 109testdata/Internals.lc 50:33-50:36 Type
114testdata/Internals.lc 51:42-51:45 Type 110testdata/Internals.lc 50:1-50:14 'Int->'Int
115testdata/Internals.lc 51:1-51:11 'Int -> 'Int->'Int 111testdata/Internals.lc 51:24-51:28 Type
116testdata/Internals.lc 52:24-52:27 Type 112testdata/Internals.lc 51:33-51:37 Type
117testdata/Internals.lc 52:33-52:45 Type 113testdata/Internals.lc 51:1-51:15 'Word->'Word
118testdata/Internals.lc 52:33-52:36 Type 114testdata/Internals.lc 52:24-52:29 Type
119testdata/Internals.lc 52:42-52:45 Type 115testdata/Internals.lc 52:33-52:38 Type
120testdata/Internals.lc 52:1-52:11 'Int -> 'Int->'Int 116testdata/Internals.lc 52:1-52:16 'Float->'Float
121testdata/Internals.lc 53:24-53:27 Type 117testdata/Internals.lc 53:24-53:27 Type
122testdata/Internals.lc 53:33-53:45 Type 118testdata/Internals.lc 53:33-53:45 Type
123testdata/Internals.lc 53:33-53:36 Type 119testdata/Internals.lc 53:33-53:36 Type
124testdata/Internals.lc 53:42-53:45 Type 120testdata/Internals.lc 53:42-53:45 Type
125testdata/Internals.lc 53:1-53:11 'Int -> 'Int->'Int 121testdata/Internals.lc 53:1-53:11 'Int -> 'Int->'Int
126testdata/Internals.lc 54:24-54:29 Type 122testdata/Internals.lc 54:24-54:27 Type
127testdata/Internals.lc 54:33-54:38 Type 123testdata/Internals.lc 54:33-54:45 Type
128testdata/Internals.lc 54:1-54:14 'Float->'Float 124testdata/Internals.lc 54:33-54:36 Type
129testdata/Internals.lc 55:24-55:29 Type 125testdata/Internals.lc 54:42-54:45 Type
126testdata/Internals.lc 54:1-54:11 'Int -> 'Int->'Int
127testdata/Internals.lc 55:24-55:27 Type
128testdata/Internals.lc 55:33-55:45 Type
130testdata/Internals.lc 55:33-55:36 Type 129testdata/Internals.lc 55:33-55:36 Type
131testdata/Internals.lc 55:1-55:10 'Float->'Int 130testdata/Internals.lc 55:42-55:45 Type
132testdata/Internals.lc 58:19-58:38 Type 131testdata/Internals.lc 55:1-55:11 'Int -> 'Int->'Int
133testdata/Internals.lc 58:19-58:23 Type 132testdata/Internals.lc 56:24-56:29 Type
134testdata/Internals.lc 58:19-58:38 V2 133testdata/Internals.lc 56:33-56:38 Type
135testdata/Internals.lc 59:16-59:20 {a} -> 'Bool -> a -> a->a 134testdata/Internals.lc 56:1-56:14 'Float->'Float
136testdata/Internals.lc 59:16-59:20 'Bool -> V1 -> V2->V3 135testdata/Internals.lc 57:24-57:29 Type
137testdata/Internals.lc 59:16-59:20 V1 -> V2->V3 136testdata/Internals.lc 57:33-57:36 Type
138testdata/Internals.lc 59:16-59:20 V2->V3 137testdata/Internals.lc 57:1-57:10 'Float->'Int
139testdata/Internals.lc 59:16-59:20 V3 138testdata/Internals.lc 60:19-60:38 Type
140testdata/Internals.lc 59:16-59:20 'Bool 139testdata/Internals.lc 60:19-60:23 Type
141testdata/Internals.lc 59:1-59:15 {a} -> 'Bool -> a -> a->a 140testdata/Internals.lc 60:19-60:38 V2
142testdata/Internals.lc 68:10-76:19 V0->Type 141testdata/Internals.lc 61:16-61:20 {a} -> 'Bool -> a -> a->a
143testdata/Internals.lc 68:10-76:19 Type 142testdata/Internals.lc 61:16-61:20 'Bool -> V1 -> V2->V3
144testdata/Internals.lc 68:10-68:13 Type 143testdata/Internals.lc 61:16-61:20 V1 -> V2->V3
145testdata/Internals.lc 68:14-68:17 Type 144testdata/Internals.lc 61:16-61:20 V2->V3
146testdata/Internals.lc 68:14-68:17 V1 145testdata/Internals.lc 61:16-61:20 V3
147testdata/Internals.lc 72:10-76:19 Type 146testdata/Internals.lc 61:16-61:20 'Bool
148testdata/Internals.lc 72:10-72:13 Type 147testdata/Internals.lc 61:1-61:15 {a} -> 'Bool -> a -> a->a
149testdata/Internals.lc 72:14-72:18 Type 148testdata/Internals.lc 70:10-78:19 Type->Type
150testdata/Internals.lc 76:10-76:19 Type 149testdata/Internals.lc 70:10-78:19 Type
151testdata/Internals.lc 76:10-76:13 Type 150testdata/Internals.lc 70:10-70:13 Type
152testdata/Internals.lc 76:14-76:19 Type 151testdata/Internals.lc 70:14-70:17 Type
153testdata/Internals.lc 63:7-63:10 Type->Type 152testdata/Internals.lc 74:10-78:19 Type
154testdata/Internals.lc 63:7-64:22 Type 153testdata/Internals.lc 74:10-74:13 Type
155testdata/Internals.lc 64:14-64:22 Type 154testdata/Internals.lc 74:14-74:18 Type
156testdata/Internals.lc 64:14-64:17 Type 155testdata/Internals.lc 78:10-78:19 Type
157testdata/Internals.lc 64:21-64:22 Type 156testdata/Internals.lc 78:10-78:13 Type
158testdata/Internals.lc 68:14-77:27 {a} -> {b : 'Num a} -> 'Int->a 157testdata/Internals.lc 78:14-78:19 Type
159testdata/Internals.lc 68:14-77:27 {a : 'Num V0} -> 'Int->V2 158testdata/Internals.lc 65:7-65:10 Type->Type
160testdata/Internals.lc 69:13-69:20 {a:'Unit} -> 'Int->'Int 159testdata/Internals.lc 65:7-66:22 Type
161testdata/Internals.lc 69:13-69:20 'Int->'Int 160testdata/Internals.lc 66:14-66:22 Type
162testdata/Internals.lc 69:19-69:20 'Int 161testdata/Internals.lc 66:14-66:17 Type
163testdata/Internals.lc 72:14-77:27 {a : 'Num V0} -> 'Int->V2 162testdata/Internals.lc 66:21-66:22 Type
164testdata/Internals.lc 73:13-73:26 {a:'Unit} -> 'Int->'Word 163testdata/Internals.lc 70:14-79:27 {a} -> {b : 'Num a} -> 'Int->a
165testdata/Internals.lc 73:13-73:26 'Int->'Word 164testdata/Internals.lc 70:14-79:27 {a : 'Num V0} -> 'Int->V2
166testdata/Internals.lc 76:14-77:27 {a : 'Num V0} -> 'Int->V2 165testdata/Internals.lc 71:13-71:20 {a:'Unit} -> 'Int->'Int
167testdata/Internals.lc 77:13-77:27 {a:'Unit} -> 'Int->'Float 166testdata/Internals.lc 71:13-71:20 'Int->'Int
168testdata/Internals.lc 77:13-77:27 'Int->'Float 167testdata/Internals.lc 71:19-71:20 'Int
169testdata/Internals.lc 64:3-64:10 {a} -> {b : 'Num a} -> 'Int->a 168testdata/Internals.lc 74:14-79:27 {a : 'Num V0} -> 'Int->V2
170testdata/Internals.lc 63:7-65:32 Type 169testdata/Internals.lc 75:13-75:26 {a:'Unit} -> 'Int->'Word
171testdata/Internals.lc 65:14-65:32 Type 170testdata/Internals.lc 75:13-75:26 'Int->'Word
172testdata/Internals.lc 65:14-65:15 Type 171testdata/Internals.lc 78:14-79:27 {a : 'Num V0} -> 'Int->V2
173testdata/Internals.lc 65:19-65:32 Type 172testdata/Internals.lc 79:13-79:27 {a:'Unit} -> 'Int->'Float
174testdata/Internals.lc 65:19-65:20 Type 173testdata/Internals.lc 79:13-79:27 'Int->'Float
175testdata/Internals.lc 65:24-65:32 Type 174testdata/Internals.lc 66:3-66:10 {a} -> {b : 'Num a} -> 'Int->a
176testdata/Internals.lc 68:14-78:29 {a} -> {b : 'Num a} -> a -> a->'Ordering 175testdata/Internals.lc 65:7-67:32 Type
177testdata/Internals.lc 68:14-78:29 {a : 'Num V0} -> V1 -> V2->'Ordering 176testdata/Internals.lc 67:14-67:32 Type
178testdata/Internals.lc 70:13-70:27 {a:'Unit} -> 'Int -> 'Int->'Ordering 177testdata/Internals.lc 67:14-67:15 Type
179testdata/Internals.lc 70:13-70:27 'Int -> 'Int->'Ordering 178testdata/Internals.lc 67:19-67:32 Type
180testdata/Internals.lc 72:14-78:29 {a : 'Num V0} -> V1 -> V2->'Ordering 179testdata/Internals.lc 67:19-67:20 Type
181testdata/Internals.lc 74:13-74:28 {a:'Unit} -> 'Word -> 'Word->'Ordering 180testdata/Internals.lc 67:24-67:32 Type
182testdata/Internals.lc 74:13-74:28 'Word -> 'Word->'Ordering 181testdata/Internals.lc 70:14-80:29 {a} -> {b : 'Num a} -> a -> a->'Ordering
183testdata/Internals.lc 76:14-78:29 {a : 'Num V0} -> V1 -> V2->'Ordering 182testdata/Internals.lc 70:14-80:29 {a : 'Num V0} -> V1 -> V2->'Ordering
184testdata/Internals.lc 78:13-78:29 {a:'Unit} -> 'Float -> 'Float->'Ordering 183testdata/Internals.lc 72:13-72:27 {a:'Unit} -> 'Int -> 'Int->'Ordering
185testdata/Internals.lc 78:13-78:29 'Float -> 'Float->'Ordering 184testdata/Internals.lc 72:13-72:27 'Int -> 'Int->'Ordering
186testdata/Internals.lc 65:3-65:10 {a} -> {b : 'Num a} -> a -> a->'Ordering 185testdata/Internals.lc 74:14-80:29 {a : 'Num V0} -> V1 -> V2->'Ordering
187testdata/Internals.lc 63:7-66:19 Type 186testdata/Internals.lc 76:13-76:28 {a:'Unit} -> 'Word -> 'Word->'Ordering
188testdata/Internals.lc 66:13-66:19 Type 187testdata/Internals.lc 76:13-76:28 'Word -> 'Word->'Ordering
189testdata/Internals.lc 66:13-66:14 Type 188testdata/Internals.lc 78:14-80:29 {a : 'Num V0} -> V1 -> V2->'Ordering
190testdata/Internals.lc 66:18-66:19 Type 189testdata/Internals.lc 80:13-80:29 {a:'Unit} -> 'Float -> 'Float->'Ordering
191testdata/Internals.lc 68:14-79:28 {a} -> {b : 'Num a} -> a->a 190testdata/Internals.lc 80:13-80:29 'Float -> 'Float->'Ordering
192testdata/Internals.lc 68:14-79:28 {a : 'Num V0} -> V1->V2 191testdata/Internals.lc 67:3-67:10 {a} -> {b : 'Num a} -> a -> a->'Ordering
193testdata/Internals.lc 71:13-71:26 {a:'Unit} -> 'Int->'Int 192testdata/Internals.lc 65:7-68:19 Type
194testdata/Internals.lc 71:13-71:26 'Int->'Int 193testdata/Internals.lc 68:13-68:19 Type
195testdata/Internals.lc 72:14-79:28 {a : 'Num V0} -> V1->V2 194testdata/Internals.lc 68:13-68:14 Type
196testdata/Internals.lc 75:13-75:27 {a:'Unit} -> 'Word->'Word 195testdata/Internals.lc 68:18-68:19 Type
197testdata/Internals.lc 75:13-75:27 'Word->'Word 196testdata/Internals.lc 70:14-81:28 {a} -> {b : 'Num a} -> a->a
198testdata/Internals.lc 76:14-79:28 {a : 'Num V0} -> V1->V2 197testdata/Internals.lc 70:14-81:28 {a : 'Num V0} -> V1->V2
199testdata/Internals.lc 79:13-79:28 {a:'Unit} -> 'Float->'Float 198testdata/Internals.lc 73:13-73:26 {a:'Unit} -> 'Int->'Int
200testdata/Internals.lc 79:13-79:28 'Float->'Float 199testdata/Internals.lc 73:13-73:26 'Int->'Int
201testdata/Internals.lc 66:3-66:9 {a} -> {b : 'Num a} -> a->a 200testdata/Internals.lc 74:14-81:28 {a : 'Num V0} -> V1->V2
201testdata/Internals.lc 77:13-77:27 {a:'Unit} -> 'Word->'Word
202testdata/Internals.lc 77:13-77:27 'Word->'Word
203testdata/Internals.lc 78:14-81:28 {a : 'Num V0} -> V1->V2
204testdata/Internals.lc 81:13-81:28 {a:'Unit} -> 'Float->'Float
205testdata/Internals.lc 81:13-81:28 'Float->'Float
206testdata/Internals.lc 68:3-68:9 {a} -> {b : 'Num a} -> a->a
diff --git a/testdata/Prelude.out b/testdata/Prelude.out
index 2b6ceb5e..b27e20a6 100644
--- a/testdata/Prelude.out
+++ b/testdata/Prelude.out
@@ -187,204 +187,193 @@ testdata/Prelude.lc 82:61-82:66 {a} -> 'List a -> 'Tuple2 ('List a) ('List a)
187testdata/Prelude.lc 80:1-80:7 {a} -> (a -> a->'Ordering) -> 'List a -> 'List a 187testdata/Prelude.lc 80:1-80:7 {a} -> (a -> a->'Ordering) -> 'List a -> 'List a
188testdata/Prelude.lc 84:8-84:14 {a} -> 'List a -> 'List a -> 'List a 188testdata/Prelude.lc 84:8-84:14 {a} -> 'List a -> 'List a -> 'List a
189testdata/Prelude.lc 84:1-84:5 {a} -> 'List a -> 'List a -> 'List a 189testdata/Prelude.lc 84:1-84:5 {a} -> 'List a -> 'List a -> 'List a
190testdata/Prelude.lc 87:6-87:11 Type->Type 190testdata/Prelude.lc 88:1-88:8 {a} -> a->a -> a
191testdata/Prelude.lc 87:6-87:11 Type 191testdata/Prelude.lc 87:13-87:32 V0->V1
192testdata/Prelude.lc 88:7-88:14 {a} -> 'Maybe a 192testdata/Prelude.lc 87:13-87:32 V1
193testdata/Prelude.lc 87:6-89:13 Type 193testdata/Prelude.lc 87:13-87:32 Type
194testdata/Prelude.lc 89:12-89:13 Type 194testdata/Prelude.lc 88:1-88:8 {a} -> a->a -> a -> 'List a
195testdata/Prelude.lc 89:7-89:11 {a} -> a -> 'Maybe a 195testdata/Prelude.lc 90:6-90:11 Type->Type
196testdata/Prelude.lc 93:6-93:10 'Tuple2 V1 V0 196testdata/Prelude.lc 90:6-90:11 Type
197testdata/Prelude.lc 93:6-93:10 V3 197testdata/Prelude.lc 91:7-91:14 {a} -> 'Maybe a
198testdata/Prelude.lc 93:1-93:4 {a} -> {b} -> 'Tuple2 a b -> a 198testdata/Prelude.lc 90:6-92:13 Type
199testdata/Prelude.lc 94:6-94:10 'Tuple2 V1 V0 199testdata/Prelude.lc 92:12-92:13 Type
200testdata/Prelude.lc 94:6-94:10 V3 200testdata/Prelude.lc 92:7-92:11 {a} -> a -> 'Maybe a
201testdata/Prelude.lc 94:1-94:4 {a} -> {b} -> 'Tuple2 a b -> b 201testdata/Prelude.lc 96:6-96:10 'Tuple2 V1 V0
202testdata/Prelude.lc 97:1-97:8 {a} -> a->a -> a 202testdata/Prelude.lc 96:6-96:10 V3
203testdata/Prelude.lc 96:12-98:34 V0->V1 203testdata/Prelude.lc 96:1-96:4 {a} -> {b} -> 'Tuple2 a b -> a
204testdata/Prelude.lc 96:12-98:34 V1 204testdata/Prelude.lc 97:6-97:10 'Tuple2 V1 V0
205testdata/Prelude.lc 96:12-96:26 Type 205testdata/Prelude.lc 97:6-97:10 V3
206testdata/Prelude.lc 96:13-96:17 Type 206testdata/Prelude.lc 97:1-97:4 {a} -> {b} -> 'Tuple2 a b -> b
207testdata/Prelude.lc 96:22-96:26 Type 207testdata/Prelude.lc 100:1-100:8 {a} -> a->a -> a
208testdata/Prelude.lc 97:15-98:34 'List Type -> Type 208testdata/Prelude.lc 99:12-101:34 V0->V1
209testdata/Prelude.lc 97:15-98:34 Type 209testdata/Prelude.lc 99:12-101:34 V1
210testdata/Prelude.lc 97:15-97:17 V0 210testdata/Prelude.lc 99:12-99:26 Type
211testdata/Prelude.lc 97:15-97:17 Type 211testdata/Prelude.lc 99:13-99:17 Type
212testdata/Prelude.lc 98:19-98:34 V0 -> 'List V1 -> Type 212testdata/Prelude.lc 99:22-99:26 Type
213testdata/Prelude.lc 98:19-98:34 'List V1 -> Type 213testdata/Prelude.lc 100:15-101:34 'List Type -> Type
214testdata/Prelude.lc 98:19-98:34 Type 214testdata/Prelude.lc 100:15-101:34 Type
215testdata/Prelude.lc 98:19-98:34 Type -> Type->Type 215testdata/Prelude.lc 100:15-100:17 V0
216testdata/Prelude.lc 97:1-97:8 'List Type -> Type 216testdata/Prelude.lc 100:15-100:17 Type
217testdata/Prelude.lc 100:22-100:36 Type 217testdata/Prelude.lc 101:19-101:34 V0 -> 'List V1 -> Type
218testdata/Prelude.lc 100:22-100:36 Type -> Type->Type 218testdata/Prelude.lc 101:19-101:34 'List V1 -> Type
219testdata/Prelude.lc 100:23-100:29 Type 219testdata/Prelude.lc 101:19-101:34 Type
220testdata/Prelude.lc 100:31-100:35 Type 220testdata/Prelude.lc 101:19-101:34 Type -> Type->Type
221testdata/Prelude.lc 100:6-100:13 'List ('Tuple2 'String Type) -> Type 221testdata/Prelude.lc 100:1-100:8 'List Type -> Type
222testdata/Prelude.lc 100:6-101:38 Type 222testdata/Prelude.lc 103:22-103:36 Type
223testdata/Prelude.lc 101:19-101:26 'List Type -> Type 223testdata/Prelude.lc 103:22-103:36 Type -> Type->Type
224testdata/Prelude.lc 101:28-101:38 'List Type 224testdata/Prelude.lc 103:23-103:29 Type
225testdata/Prelude.lc 101:28-101:31 {a} -> {b} -> a->b -> 'List a -> 'List b 225testdata/Prelude.lc 103:31-103:35 Type
226testdata/Prelude.lc 101:32-101:35 V1->V1 226testdata/Prelude.lc 103:6-103:13 'List ('Tuple2 'String Type) -> Type
227testdata/Prelude.lc 101:32-101:35 {a} -> {b} -> 'Tuple2 a b -> b 227testdata/Prelude.lc 103:6-104:38 Type
228testdata/Prelude.lc 101:36-101:38 'List ('Tuple2 V0 Type) 228testdata/Prelude.lc 104:19-104:26 'List Type -> Type
229testdata/Prelude.lc 101:36-101:38 'List ('Tuple2 'String Type) 229testdata/Prelude.lc 104:28-104:38 'List Type
230testdata/Prelude.lc 100:6-100:13 Type 230testdata/Prelude.lc 104:28-104:31 {a} -> {b} -> a->b -> 'List a -> 'List b
231testdata/Prelude.lc 101:7-101:17 {a : 'List ('Tuple2 'String Type)} -> tuptype (map ('Tuple2 'String Type) Type (\(b : 'Tuple2 'String Type) -> snd 'String Type b) a) -> 'RecordC a 231testdata/Prelude.lc 104:32-104:35 V1->V1
232testdata/Prelude.lc 103:1-103:7 {a} -> a->a -> a 232testdata/Prelude.lc 104:32-104:35 {a} -> {b} -> 'Tuple2 a b -> b
233testdata/Prelude.lc 103:11-103:12 V0->V1 233testdata/Prelude.lc 104:36-104:38 'List ('Tuple2 V0 Type)
234testdata/Prelude.lc 103:11-103:12 V1 234testdata/Prelude.lc 104:36-104:38 'List ('Tuple2 'String Type)
235testdata/Prelude.lc 103:11-103:12 'List V1 235testdata/Prelude.lc 103:6-103:13 Type
236testdata/Prelude.lc 103:11-103:12 V3 236testdata/Prelude.lc 104:7-104:17 {a : 'List ('Tuple2 'String Type)} -> tuptype (map ('Tuple2 'String Type) Type (\(b : 'Tuple2 'String Type) -> snd 'String Type b) a) -> 'RecordC a
237testdata/Prelude.lc 103:1-103:7 {a} -> (a -> a->a) -> 'List a -> a 237testdata/Prelude.lc 106:1-106:7 {a} -> a->a -> a
238testdata/Prelude.lc 107:10-107:15 V0 238testdata/Prelude.lc 106:11-106:12 V0->V1
239testdata/Prelude.lc 107:10-107:15 'Bool 239testdata/Prelude.lc 106:11-106:12 V1
240testdata/Prelude.lc 106:11-106:15 'Bool 240testdata/Prelude.lc 106:11-106:12 'List V1
241testdata/Prelude.lc 106:6-106:8 'Ordering 241testdata/Prelude.lc 106:11-106:12 V3
242testdata/Prelude.lc 106:6-106:8 V1 242testdata/Prelude.lc 106:1-106:7 {a} -> (a -> a->a) -> 'List a -> a
243testdata/Prelude.lc 106:1-106:5 'Ordering->'Bool 243testdata/Prelude.lc 110:10-110:15 V0
244testdata/Prelude.lc 110:14-110:18 V1 244testdata/Prelude.lc 110:10-110:15 'Bool
245testdata/Prelude.lc 110:14-110:18 'Bool 245testdata/Prelude.lc 109:11-109:15 'Bool
246testdata/Prelude.lc 109:1-109:6 'Bool 246testdata/Prelude.lc 109:6-109:8 'Ordering
247testdata/Prelude.lc 109:1-109:6 V2 247testdata/Prelude.lc 109:6-109:8 V1
248testdata/Prelude.lc 109:7-109:10 'Bool -> 'Bool->'Bool 248testdata/Prelude.lc 109:1-109:5 'Ordering->'Bool
249testdata/Prelude.lc 115:15-115:20 V0 249testdata/Prelude.lc 113:14-113:18 V1
250testdata/Prelude.lc 115:15-115:20 'Bool 250testdata/Prelude.lc 113:14-113:18 'Bool
251testdata/Prelude.lc 114:1-114:5 'Bool 251testdata/Prelude.lc 112:1-112:6 'Bool
252testdata/Prelude.lc 114:1-114:5 V2 252testdata/Prelude.lc 112:1-112:6 V2
253testdata/Prelude.lc 114:6-114:9 'Bool -> 'Bool->'Bool 253testdata/Prelude.lc 112:7-112:10 'Bool -> 'Bool->'Bool
254testdata/Prelude.lc 124:10-124:19 V0->Type 254testdata/Prelude.lc 118:15-118:20 V0
255testdata/Prelude.lc 124:10-124:19 Type 255testdata/Prelude.lc 118:15-118:20 'Bool
256testdata/Prelude.lc 124:10-124:12 Type 256testdata/Prelude.lc 117:1-117:5 'Bool
257testdata/Prelude.lc 124:13-124:19 Type 257testdata/Prelude.lc 117:1-117:5 V2
258testdata/Prelude.lc 124:13-124:19 V1 258testdata/Prelude.lc 117:6-117:9 'Bool -> 'Bool->'Bool
259testdata/Prelude.lc 119:7-119:9 Type->Type 259testdata/Prelude.lc 127:10-127:19 Type->Type
260testdata/Prelude.lc 119:7-120:28 Type 260testdata/Prelude.lc 127:10-127:19 Type
261testdata/Prelude.lc 120:14-120:28 Type 261testdata/Prelude.lc 127:10-127:12 Type
262testdata/Prelude.lc 120:14-120:15 Type 262testdata/Prelude.lc 127:13-127:19 Type
263testdata/Prelude.lc 120:19-120:28 Type 263testdata/Prelude.lc 122:7-122:9 Type->Type
264testdata/Prelude.lc 120:19-120:20 Type 264testdata/Prelude.lc 122:7-123:28 Type
265testdata/Prelude.lc 120:24-120:28 Type 265testdata/Prelude.lc 123:14-123:28 Type
266testdata/Prelude.lc 124:13-125:38 {a} -> {b : 'Eq a} -> a -> a->'Bool 266testdata/Prelude.lc 123:14-123:15 Type
267testdata/Prelude.lc 124:13-125:38 {a : 'Eq V0} -> V1 -> V2->'Bool 267testdata/Prelude.lc 123:19-123:28 Type
268testdata/Prelude.lc 125:15-125:38 {a:'Unit} -> 'String -> 'String->'Bool 268testdata/Prelude.lc 123:19-123:20 Type
269testdata/Prelude.lc 125:15-125:38 'String -> 'String->'Bool 269testdata/Prelude.lc 123:24-123:28 Type
270testdata/Prelude.lc 125:15-125:38 'String->'Bool 270testdata/Prelude.lc 127:13-128:38 {a} -> {b : 'Eq a} -> a -> a->'Bool
271testdata/Prelude.lc 125:15-125:38 'Bool 271testdata/Prelude.lc 127:13-128:38 {a : 'Eq V0} -> V1 -> V2->'Bool
272testdata/Prelude.lc 125:15-125:19 'Ordering->'Bool 272testdata/Prelude.lc 128:15-128:38 {a:'Unit} -> 'String -> 'String->'Bool
273testdata/Prelude.lc 125:21-125:38 'Ordering 273testdata/Prelude.lc 128:15-128:38 'String -> 'String->'Bool
274testdata/Prelude.lc 125:21-125:38 'String -> 'String->'Ordering 274testdata/Prelude.lc 128:15-128:38 'String->'Bool
275testdata/Prelude.lc 120:5-120:10 {a} -> {b : 'Eq a} -> a -> a->'Bool 275testdata/Prelude.lc 128:15-128:38 'Bool
276testdata/Prelude.lc 160:30-160:36 Type 276testdata/Prelude.lc 128:15-128:19 'Ordering->'Bool
277testdata/Prelude.lc 160:30-160:31 V3 277testdata/Prelude.lc 128:21-128:38 'Ordering
278testdata/Prelude.lc 160:35-160:36 Type 278testdata/Prelude.lc 128:21-128:38 'String -> 'String->'Ordering
279testdata/Prelude.lc 160:35-160:36 V2 279testdata/Prelude.lc 123:5-123:10 {a} -> {b : 'Eq a} -> a -> a->'Bool
280testdata/Prelude.lc 160:1-160:13 {a} -> {b} -> a->b 280testdata/Prelude.lc 163:30-163:36 Type
281testdata/Prelude.lc 162:1-162:7 {a} -> a->a -> a 281testdata/Prelude.lc 163:30-163:31 V3
282testdata/Prelude.lc 162:18-163:71 V0->V1 282testdata/Prelude.lc 163:35-163:36 Type
283testdata/Prelude.lc 162:18-163:71 V1 283testdata/Prelude.lc 163:35-163:36 V2
284testdata/Prelude.lc 162:18-162:26 V0 284testdata/Prelude.lc 163:1-163:13 {a} -> {b} -> a->b
285testdata/Prelude.lc 162:18-162:23 'String->Type 285testdata/Prelude.lc 165:1-165:7 {a} -> a->a -> a
286testdata/Prelude.lc 162:24-162:26 'String 286testdata/Prelude.lc 165:18-166:71 V0->V1
287testdata/Prelude.lc 163:29-163:71 V0 -> 'List V1 -> Type 287testdata/Prelude.lc 165:18-166:71 V1
288testdata/Prelude.lc 163:29-163:71 'List V1 -> Type 288testdata/Prelude.lc 165:18-165:26 V0
289testdata/Prelude.lc 163:29-163:71 Type 289testdata/Prelude.lc 165:18-165:23 'String->Type
290testdata/Prelude.lc 163:29-163:71 V2 -> V2->V2 290testdata/Prelude.lc 165:24-165:26 'String
291testdata/Prelude.lc 163:29-163:71 V2->V2 291testdata/Prelude.lc 166:29-166:71 V0 -> 'List V1 -> Type
292testdata/Prelude.lc 163:29-163:71 V2 292testdata/Prelude.lc 166:29-166:71 'List V1 -> Type
293testdata/Prelude.lc 163:29-163:71 {a} -> 'Bool -> a -> a->a 293testdata/Prelude.lc 166:29-166:71 Type
294testdata/Prelude.lc 162:1-162:7 {a} -> {b : 'Eq a} -> a -> Type -> 'List ('Tuple2 a Type) -> Type 294testdata/Prelude.lc 166:29-166:71 V2 -> V2->V2
295testdata/Prelude.lc 167:1-167:8 {a} -> a->a -> a 295testdata/Prelude.lc 166:29-166:71 V2->V2
296testdata/Prelude.lc 166:28-168:158 V0->V1 296testdata/Prelude.lc 166:29-166:71 V2
297testdata/Prelude.lc 166:28-168:158 V1 297testdata/Prelude.lc 166:29-166:71 {a} -> 'Bool -> a -> a->a
298testdata/Prelude.lc 166:28-166:105 Type 298testdata/Prelude.lc 165:1-165:7 {a} -> {b : 'Eq a} -> a -> Type -> 'List ('Tuple2 a Type) -> Type
299testdata/Prelude.lc 166:29-166:43 Type 299testdata/Prelude.lc 170:1-170:8 {a} -> a->a -> a
300testdata/Prelude.lc 166:29-166:43 Type -> Type->Type 300testdata/Prelude.lc 169:28-171:158 V0->V1
301testdata/Prelude.lc 166:30-166:36 Type 301testdata/Prelude.lc 169:28-171:158 V1
302testdata/Prelude.lc 166:38-166:42 Type 302testdata/Prelude.lc 169:28-169:105 Type
303testdata/Prelude.lc 166:61-166:105 Type 303testdata/Prelude.lc 169:29-169:43 Type
304testdata/Prelude.lc 166:61-166:67 Type 304testdata/Prelude.lc 169:29-169:43 Type -> Type->Type
305testdata/Prelude.lc 166:73-166:105 Type 305testdata/Prelude.lc 169:30-169:36 Type
306testdata/Prelude.lc 166:73-166:79 {a} -> {b : 'Eq a} -> a -> Type -> 'List ('Tuple2 a Type) -> Type 306testdata/Prelude.lc 169:38-169:42 Type
307testdata/Prelude.lc 166:80-166:81 V1 307testdata/Prelude.lc 169:61-169:105 Type
308testdata/Prelude.lc 166:80-166:81 'String 308testdata/Prelude.lc 169:61-169:67 Type
309testdata/Prelude.lc 166:82-166:83 Type 309testdata/Prelude.lc 169:73-169:105 Type
310testdata/Prelude.lc 166:82-166:83 V3 310testdata/Prelude.lc 169:73-169:79 {a} -> {b : 'Eq a} -> a -> Type -> 'List ('Tuple2 a Type) -> Type
311testdata/Prelude.lc 166:84-166:86 'List ('Tuple2 'String Type) 311testdata/Prelude.lc 169:80-169:81 V1
312testdata/Prelude.lc 166:90-166:105 Type 312testdata/Prelude.lc 169:80-169:81 'String
313testdata/Prelude.lc 166:90-166:97 'List ('Tuple2 'String Type) -> Type 313testdata/Prelude.lc 169:82-169:83 Type
314testdata/Prelude.lc 166:98-166:100 'List ('Tuple2 'String Type) 314testdata/Prelude.lc 169:82-169:83 V3
315testdata/Prelude.lc 166:104-166:105 Type 315testdata/Prelude.lc 169:84-169:86 'List ('Tuple2 'String Type)
316testdata/Prelude.lc 167:15-168:158 {a} -> {b : 'List ('Tuple2 'String Type)} -> c:'String -> {d : isKeyC 'String TT c a b} -> 'RecordC b -> a 316testdata/Prelude.lc 169:90-169:105 Type
317testdata/Prelude.lc 167:15-168:158 {a : 'List ('Tuple2 'String Type)} -> b:'String -> {c : isKeyC 'String TT b V2 a} -> 'RecordC a -> V4 317testdata/Prelude.lc 169:90-169:97 'List ('Tuple2 'String Type) -> Type
318testdata/Prelude.lc 167:15-168:158 a:'String -> {b : isKeyC 'String TT a V2 V1} -> 'RecordC V2 -> V4 318testdata/Prelude.lc 169:98-169:100 'List ('Tuple2 'String Type)
319testdata/Prelude.lc 167:15-168:158 {a : isKeyC 'String TT V0 V2 V1} -> 'RecordC V2 -> V4 319testdata/Prelude.lc 169:104-169:105 Type
320testdata/Prelude.lc 167:15-168:158 'RecordC V2 -> V4 320testdata/Prelude.lc 170:15-171:158 {a} -> {b : 'List ('Tuple2 'String Type)} -> c:'String -> {d : isKeyC 'String TT c a b} -> 'RecordC b -> a
321testdata/Prelude.lc 167:15-168:158 V4 321testdata/Prelude.lc 170:15-171:158 {a : 'List ('Tuple2 'String Type)} -> b:'String -> {c : isKeyC 'String TT b V2 a} -> 'RecordC a -> V4
322testdata/Prelude.lc 167:45-168:158 V1 -> 'List V2 -> V2 322testdata/Prelude.lc 170:15-171:158 a:'String -> {b : isKeyC 'String TT a V2 V1} -> 'RecordC V2 -> V4
323testdata/Prelude.lc 167:45-168:158 'List V2 -> V2 323testdata/Prelude.lc 170:15-171:158 {a : isKeyC 'String TT V0 V2 V1} -> 'RecordC V2 -> V4
324testdata/Prelude.lc 167:45-168:158 V2 324testdata/Prelude.lc 170:15-171:158 'RecordC V2 -> V4
325testdata/Prelude.lc 167:45-168:158 V2 -> V2->V2 325testdata/Prelude.lc 170:15-171:158 V4
326testdata/Prelude.lc 167:45-168:158 V2->V2 326testdata/Prelude.lc 170:45-171:158 V1 -> 'List V2 -> V2
327testdata/Prelude.lc 167:51-168:158 tuptype (map ('Tuple2 'String Type) Type (\(a : 'Tuple2 'String Type) -> snd 'String Type a) V1) -> V1 327testdata/Prelude.lc 170:45-171:158 'List V2 -> V2
328testdata/Prelude.lc 167:51-168:158 V1 328testdata/Prelude.lc 170:45-171:158 V2
329testdata/Prelude.lc 168:70-168:158 V0 329testdata/Prelude.lc 170:45-171:158 V2 -> V2->V2
330testdata/Prelude.lc 168:70-168:88 isKeyC 'String TT V14 V16 V9 330testdata/Prelude.lc 170:45-171:158 V2->V2
331testdata/Prelude.lc 168:70-168:79 {a}->a 331testdata/Prelude.lc 170:51-171:158 tuptype (map ('Tuple2 'String Type) Type (\(a : 'Tuple2 'String Type) -> snd 'String Type a) V1) -> V1
332testdata/Prelude.lc 168:82-168:88 Type 332testdata/Prelude.lc 170:51-171:158 V1
333testdata/Prelude.lc 168:82-168:88 {a} -> {b : 'Eq a} -> a -> Type -> 'List ('Tuple2 a Type) -> Type 333testdata/Prelude.lc 171:70-171:158 V0
334testdata/Prelude.lc 168:99-168:158 'RecordC V8 334testdata/Prelude.lc 171:70-171:88 isKeyC 'String TT V14 V16 V9
335testdata/Prelude.lc 168:99-168:109 {a : 'List ('Tuple2 'String Type)} -> tuptype (map ('Tuple2 'String Type) Type (\(b : 'Tuple2 'String Type) -> snd 'String Type b) a) -> 'RecordC a 335testdata/Prelude.lc 171:70-171:79 {a}->a
336testdata/Prelude.lc 168:111-168:158 tuptype (map ('Tuple2 'String Type) Type (\(a : 'Tuple2 'String Type) -> snd 'String Type a) V0) 336testdata/Prelude.lc 171:82-171:88 Type
337testdata/Prelude.lc 168:111-168:114 {a} -> {b} -> 'Tuple2 a b -> b 337testdata/Prelude.lc 171:82-171:88 {a} -> {b : 'Eq a} -> a -> Type -> 'List ('Tuple2 a Type) -> Type
338testdata/Prelude.lc 168:116-168:158 'Tuple2 V1 V0 338testdata/Prelude.lc 171:99-171:158 'RecordC V8
339testdata/Prelude.lc 168:116-168:128 {a} -> {b} -> a->b 339testdata/Prelude.lc 171:99-171:109 {a : 'List ('Tuple2 'String Type)} -> tuptype (map ('Tuple2 'String Type) Type (\(b : 'Tuple2 'String Type) -> snd 'String Type b) a) -> 'RecordC a
340testdata/Prelude.lc 168:133-168:158 Type 340testdata/Prelude.lc 171:111-171:158 tuptype (map ('Tuple2 'String Type) Type (\(a : 'Tuple2 'String Type) -> snd 'String Type a) V0)
341testdata/Prelude.lc 168:133-168:158 Type -> Type->Type 341testdata/Prelude.lc 171:111-171:114 {a} -> {b} -> 'Tuple2 a b -> b
342testdata/Prelude.lc 168:137-168:153 Type 342testdata/Prelude.lc 171:116-171:158 'Tuple2 V1 V0
343testdata/Prelude.lc 168:137-168:144 'List Type -> Type 343testdata/Prelude.lc 171:116-171:128 {a} -> {b} -> a->b
344testdata/Prelude.lc 168:146-168:153 'List Type 344testdata/Prelude.lc 171:133-171:158 Type
345testdata/Prelude.lc 168:146-168:149 {a} -> {b} -> a->b -> 'List a -> 'List b 345testdata/Prelude.lc 171:133-171:158 Type -> Type->Type
346testdata/Prelude.lc 168:150-168:153 V1->V1 346testdata/Prelude.lc 171:137-171:153 Type
347testdata/Prelude.lc 168:150-168:153 {a} -> {b} -> 'Tuple2 a b -> b 347testdata/Prelude.lc 171:137-171:144 'List Type -> Type
348testdata/Prelude.lc 167:62-167:109 V15 348testdata/Prelude.lc 171:146-171:153 'List Type
349testdata/Prelude.lc 167:62-167:65 {a} -> {b} -> 'Tuple2 a b -> a 349testdata/Prelude.lc 171:146-171:149 {a} -> {b} -> a->b -> 'List a -> 'List b
350testdata/Prelude.lc 167:67-167:109 'Tuple2 V1 V0 350testdata/Prelude.lc 171:150-171:153 V1->V1
351testdata/Prelude.lc 167:67-167:79 {a} -> {b} -> a->b 351testdata/Prelude.lc 171:150-171:153 {a} -> {b} -> 'Tuple2 a b -> b
352testdata/Prelude.lc 167:84-167:109 Type 352testdata/Prelude.lc 170:62-170:109 V15
353testdata/Prelude.lc 167:84-167:109 Type -> Type->Type 353testdata/Prelude.lc 170:62-170:65 {a} -> {b} -> 'Tuple2 a b -> a
354testdata/Prelude.lc 167:88-167:104 Type 354testdata/Prelude.lc 170:67-170:109 'Tuple2 V1 V0
355testdata/Prelude.lc 167:88-167:95 'List Type -> Type 355testdata/Prelude.lc 170:67-170:79 {a} -> {b} -> a->b
356testdata/Prelude.lc 167:97-167:104 'List Type 356testdata/Prelude.lc 170:84-170:109 Type
357testdata/Prelude.lc 167:97-167:100 {a} -> {b} -> a->b -> 'List a -> 'List b 357testdata/Prelude.lc 170:84-170:109 Type -> Type->Type
358testdata/Prelude.lc 167:101-167:104 V1->V1 358testdata/Prelude.lc 170:88-170:104 Type
359testdata/Prelude.lc 167:101-167:104 {a} -> {b} -> 'Tuple2 a b -> b 359testdata/Prelude.lc 170:88-170:95 'List Type -> Type
360testdata/Prelude.lc 167:51-167:59 'Bool 360testdata/Prelude.lc 170:97-170:104 'List Type
361testdata/Prelude.lc 167:51-167:52 V1 361testdata/Prelude.lc 170:97-170:100 {a} -> {b} -> a->b -> 'List a -> 'List b
362testdata/Prelude.lc 167:51-167:52 'String 362testdata/Prelude.lc 170:101-170:104 V1->V1
363testdata/Prelude.lc 167:57-167:59 'String 363testdata/Prelude.lc 170:101-170:104 {a} -> {b} -> 'Tuple2 a b -> b
364testdata/Prelude.lc 167:57-167:59 V6 364testdata/Prelude.lc 170:51-170:59 'Bool
365testdata/Prelude.lc 167:45-167:47 'RecordC V0 365testdata/Prelude.lc 170:51-170:52 V1
366testdata/Prelude.lc 167:45-167:47 'RecordC V10 366testdata/Prelude.lc 170:51-170:52 'String
367testdata/Prelude.lc 167:15-167:26 'List ('Tuple2 'String Type) 367testdata/Prelude.lc 170:57-170:59 'String
368testdata/Prelude.lc 167:1-167:8 {a} -> {b : 'List ('Tuple2 'String Type)} -> c:'String -> {d : isKeyC 'String TT c a b} -> 'RecordC b -> a 368testdata/Prelude.lc 170:57-170:59 V6
369testdata/Prelude.lc 172:13-172:15 {a} -> a -> a -> a -> a -> 'VecS a (Succ (Succ (Succ (Succ Zero)))) 369testdata/Prelude.lc 170:45-170:47 'RecordC V0
370testdata/Prelude.lc 172:22-172:25 V3 370testdata/Prelude.lc 170:45-170:47 'RecordC V10
371testdata/Prelude.lc 172:22-172:25 'Float 371testdata/Prelude.lc 170:15-170:26 'List ('Tuple2 'String Type)
372testdata/Prelude.lc 172:1-172:4 'Float -> 'Float -> 'Float -> 'VecS 'Float (Succ (Succ (Succ (Succ Zero)))) 372testdata/Prelude.lc 170:1-170:8 {a} -> {b : 'List ('Tuple2 'String Type)} -> c:'String -> {d : isKeyC 'String TT c a b} -> 'RecordC b -> a
373testdata/Prelude.lc 174:11-174:14 'Float -> 'Float -> 'Float -> 'VecS 'Float (Succ (Succ (Succ (Succ Zero)))) 373testdata/Prelude.lc 175:13-175:15 {a} -> a -> a -> a -> a -> 'VecS a (Succ (Succ (Succ (Succ Zero))))
374testdata/Prelude.lc 174:15-174:18 'Float 374testdata/Prelude.lc 175:22-175:25 V3
375testdata/Prelude.lc 174:19-174:22 'Float 375testdata/Prelude.lc 175:22-175:25 'Float
376testdata/Prelude.lc 174:23-174:26 'Float 376testdata/Prelude.lc 175:1-175:4 'Float -> 'Float -> 'Float -> 'VecS 'Float (Succ (Succ (Succ (Succ Zero))))
377testdata/Prelude.lc 174:1-174:6 'VecS 'Float (Succ (Succ (Succ (Succ Zero))))
378testdata/Prelude.lc 175:11-175:14 'Float -> 'Float -> 'Float -> 'VecS 'Float (Succ (Succ (Succ (Succ Zero))))
379testdata/Prelude.lc 175:15-175:18 'Float
380testdata/Prelude.lc 175:19-175:22 'Float
381testdata/Prelude.lc 175:23-175:26 'Float
382testdata/Prelude.lc 175:1-175:5 'VecS 'Float (Succ (Succ (Succ (Succ Zero))))
383testdata/Prelude.lc 176:11-176:14 'Float -> 'Float -> 'Float -> 'VecS 'Float (Succ (Succ (Succ (Succ Zero))))
384testdata/Prelude.lc 176:15-176:19 'Float
385testdata/Prelude.lc 176:20-176:24 'Float
386testdata/Prelude.lc 176:25-176:29 'Float
387testdata/Prelude.lc 176:1-176:7 'VecS 'Float (Succ (Succ (Succ (Succ Zero))))
388testdata/Prelude.lc 177:11-177:14 'Float -> 'Float -> 'Float -> 'VecS 'Float (Succ (Succ (Succ (Succ Zero)))) 377testdata/Prelude.lc 177:11-177:14 'Float -> 'Float -> 'Float -> 'VecS 'Float (Succ (Succ (Succ (Succ Zero))))
389testdata/Prelude.lc 177:15-177:18 'Float 378testdata/Prelude.lc 177:15-177:18 'Float
390testdata/Prelude.lc 177:19-177:22 'Float 379testdata/Prelude.lc 177:19-177:22 'Float
@@ -394,12 +383,12 @@ testdata/Prelude.lc 178:11-178:14 'Float -> 'Float -> 'Float -> 'VecS 'Float (S
394testdata/Prelude.lc 178:15-178:18 'Float 383testdata/Prelude.lc 178:15-178:18 'Float
395testdata/Prelude.lc 178:19-178:22 'Float 384testdata/Prelude.lc 178:19-178:22 'Float
396testdata/Prelude.lc 178:23-178:26 'Float 385testdata/Prelude.lc 178:23-178:26 'Float
397testdata/Prelude.lc 178:1-178:7 'VecS 'Float (Succ (Succ (Succ (Succ Zero)))) 386testdata/Prelude.lc 178:1-178:5 'VecS 'Float (Succ (Succ (Succ (Succ Zero))))
398testdata/Prelude.lc 179:11-179:14 'Float -> 'Float -> 'Float -> 'VecS 'Float (Succ (Succ (Succ (Succ Zero)))) 387testdata/Prelude.lc 179:11-179:14 'Float -> 'Float -> 'Float -> 'VecS 'Float (Succ (Succ (Succ (Succ Zero))))
399testdata/Prelude.lc 179:15-179:18 'Float 388testdata/Prelude.lc 179:15-179:19 'Float
400testdata/Prelude.lc 179:19-179:22 'Float 389testdata/Prelude.lc 179:20-179:24 'Float
401testdata/Prelude.lc 179:23-179:26 'Float 390testdata/Prelude.lc 179:25-179:29 'Float
402testdata/Prelude.lc 179:1-179:4 'VecS 'Float (Succ (Succ (Succ (Succ Zero)))) 391testdata/Prelude.lc 179:1-179:7 'VecS 'Float (Succ (Succ (Succ (Succ Zero))))
403testdata/Prelude.lc 180:11-180:14 'Float -> 'Float -> 'Float -> 'VecS 'Float (Succ (Succ (Succ (Succ Zero)))) 392testdata/Prelude.lc 180:11-180:14 'Float -> 'Float -> 'Float -> 'VecS 'Float (Succ (Succ (Succ (Succ Zero))))
404testdata/Prelude.lc 180:15-180:18 'Float 393testdata/Prelude.lc 180:15-180:18 'Float
405testdata/Prelude.lc 180:19-180:22 'Float 394testdata/Prelude.lc 180:19-180:22 'Float
@@ -414,22 +403,22 @@ testdata/Prelude.lc 182:11-182:14 'Float -> 'Float -> 'Float -> 'VecS 'Float (S
414testdata/Prelude.lc 182:15-182:18 'Float 403testdata/Prelude.lc 182:15-182:18 'Float
415testdata/Prelude.lc 182:19-182:22 'Float 404testdata/Prelude.lc 182:19-182:22 'Float
416testdata/Prelude.lc 182:23-182:26 'Float 405testdata/Prelude.lc 182:23-182:26 'Float
417testdata/Prelude.lc 182:1-182:6 'VecS 'Float (Succ (Succ (Succ (Succ Zero)))) 406testdata/Prelude.lc 182:1-182:4 'VecS 'Float (Succ (Succ (Succ (Succ Zero))))
418testdata/Prelude.lc 183:11-183:14 'Float -> 'Float -> 'Float -> 'VecS 'Float (Succ (Succ (Succ (Succ Zero)))) 407testdata/Prelude.lc 183:11-183:14 'Float -> 'Float -> 'Float -> 'VecS 'Float (Succ (Succ (Succ (Succ Zero))))
419testdata/Prelude.lc 183:15-183:18 'Float 408testdata/Prelude.lc 183:15-183:18 'Float
420testdata/Prelude.lc 183:19-183:22 'Float 409testdata/Prelude.lc 183:19-183:22 'Float
421testdata/Prelude.lc 183:23-183:26 'Float 410testdata/Prelude.lc 183:23-183:26 'Float
422testdata/Prelude.lc 183:1-183:5 'VecS 'Float (Succ (Succ (Succ (Succ Zero)))) 411testdata/Prelude.lc 183:1-183:6 'VecS 'Float (Succ (Succ (Succ (Succ Zero))))
423testdata/Prelude.lc 184:11-184:14 'Float -> 'Float -> 'Float -> 'VecS 'Float (Succ (Succ (Succ (Succ Zero)))) 412testdata/Prelude.lc 184:11-184:14 'Float -> 'Float -> 'Float -> 'VecS 'Float (Succ (Succ (Succ (Succ Zero))))
424testdata/Prelude.lc 184:15-184:18 'Float 413testdata/Prelude.lc 184:15-184:18 'Float
425testdata/Prelude.lc 184:19-184:22 'Float 414testdata/Prelude.lc 184:19-184:22 'Float
426testdata/Prelude.lc 184:23-184:26 'Float 415testdata/Prelude.lc 184:23-184:26 'Float
427testdata/Prelude.lc 184:1-184:5 'VecS 'Float (Succ (Succ (Succ (Succ Zero)))) 416testdata/Prelude.lc 184:1-184:7 'VecS 'Float (Succ (Succ (Succ (Succ Zero))))
428testdata/Prelude.lc 185:11-185:14 'Float -> 'Float -> 'Float -> 'VecS 'Float (Succ (Succ (Succ (Succ Zero)))) 417testdata/Prelude.lc 185:11-185:14 'Float -> 'Float -> 'Float -> 'VecS 'Float (Succ (Succ (Succ (Succ Zero))))
429testdata/Prelude.lc 185:15-185:18 'Float 418testdata/Prelude.lc 185:15-185:18 'Float
430testdata/Prelude.lc 185:19-185:22 'Float 419testdata/Prelude.lc 185:19-185:22 'Float
431testdata/Prelude.lc 185:23-185:26 'Float 420testdata/Prelude.lc 185:23-185:26 'Float
432testdata/Prelude.lc 185:1-185:5 'VecS 'Float (Succ (Succ (Succ (Succ Zero)))) 421testdata/Prelude.lc 185:1-185:6 'VecS 'Float (Succ (Succ (Succ (Succ Zero))))
433testdata/Prelude.lc 186:11-186:14 'Float -> 'Float -> 'Float -> 'VecS 'Float (Succ (Succ (Succ (Succ Zero)))) 422testdata/Prelude.lc 186:11-186:14 'Float -> 'Float -> 'Float -> 'VecS 'Float (Succ (Succ (Succ (Succ Zero))))
434testdata/Prelude.lc 186:15-186:18 'Float 423testdata/Prelude.lc 186:15-186:18 'Float
435testdata/Prelude.lc 186:19-186:22 'Float 424testdata/Prelude.lc 186:19-186:22 'Float
@@ -444,324 +433,365 @@ testdata/Prelude.lc 188:11-188:14 'Float -> 'Float -> 'Float -> 'VecS 'Float (S
444testdata/Prelude.lc 188:15-188:18 'Float 433testdata/Prelude.lc 188:15-188:18 'Float
445testdata/Prelude.lc 188:19-188:22 'Float 434testdata/Prelude.lc 188:19-188:22 'Float
446testdata/Prelude.lc 188:23-188:26 'Float 435testdata/Prelude.lc 188:23-188:26 'Float
447testdata/Prelude.lc 188:1-188:7 'VecS 'Float (Succ (Succ (Succ (Succ Zero)))) 436testdata/Prelude.lc 188:1-188:5 'VecS 'Float (Succ (Succ (Succ (Succ Zero))))
448testdata/Prelude.lc 189:11-189:14 'Float -> 'Float -> 'Float -> 'VecS 'Float (Succ (Succ (Succ (Succ Zero)))) 437testdata/Prelude.lc 189:11-189:14 'Float -> 'Float -> 'Float -> 'VecS 'Float (Succ (Succ (Succ (Succ Zero))))
449testdata/Prelude.lc 189:15-189:18 'Float 438testdata/Prelude.lc 189:15-189:18 'Float
450testdata/Prelude.lc 189:19-189:22 'Float 439testdata/Prelude.lc 189:19-189:22 'Float
451testdata/Prelude.lc 189:23-189:26 'Float 440testdata/Prelude.lc 189:23-189:26 'Float
452testdata/Prelude.lc 189:1-189:8 'VecS 'Float (Succ (Succ (Succ (Succ Zero)))) 441testdata/Prelude.lc 189:1-189:5 'VecS 'Float (Succ (Succ (Succ (Succ Zero))))
453testdata/Prelude.lc 191:15-191:25 {a:'Nat} -> {b:'Nat} -> {c} -> {d} -> {e : 'Num c} -> {f : d ~ 'VecScalar b c} -> d -> 'Image a ('Color d) 442testdata/Prelude.lc 190:11-190:14 'Float -> 'Float -> 'Float -> 'VecS 'Float (Succ (Succ (Succ (Succ Zero))))
454testdata/Prelude.lc 191:1-191:12 {a:'Nat} -> {b} -> {c} -> {d : 'Num b} -> {e : c ~ 'VecScalar a b} -> c -> 'Image (Succ Zero) ('Color c) 443testdata/Prelude.lc 190:15-190:18 'Float
455testdata/Prelude.lc 192:15-192:25 {a:'Nat} -> {b:'Nat} -> {c} -> {d} -> {e : 'Num c} -> {f : d ~ 'VecScalar b c} -> d -> 'Image a ('Color d) 444testdata/Prelude.lc 190:19-190:22 'Float
456testdata/Prelude.lc 192:1-192:12 {a:'Nat} -> {b} -> {c} -> {d : 'Num b} -> {e : c ~ 'VecScalar a b} -> c -> 'Image (Succ (Succ Zero)) ('Color c) 445testdata/Prelude.lc 190:23-190:26 'Float
457testdata/Prelude.lc 194:15-194:25 {a:'Nat} -> 'Float -> 'Image a ('Depth 'Float) 446testdata/Prelude.lc 190:1-190:5 'VecS 'Float (Succ (Succ (Succ (Succ Zero))))
458testdata/Prelude.lc 194:1-194:12 'Float -> 'Image (Succ Zero) ('Depth 'Float) 447testdata/Prelude.lc 191:11-191:14 'Float -> 'Float -> 'Float -> 'VecS 'Float (Succ (Succ (Succ (Succ Zero))))
459testdata/Prelude.lc 196:13-196:39 Type 448testdata/Prelude.lc 191:15-191:18 'Float
460testdata/Prelude.lc 196:13-196:16 'Nat -> Type->Type 449testdata/Prelude.lc 191:19-191:22 'Float
461testdata/Prelude.lc 196:19-196:24 Type 450testdata/Prelude.lc 191:23-191:26 'Float
462testdata/Prelude.lc 196:28-196:39 Type 451testdata/Prelude.lc 191:1-191:7 'VecS 'Float (Succ (Succ (Succ (Succ Zero))))
463testdata/Prelude.lc 196:28-196:31 'Nat -> Type->Type 452testdata/Prelude.lc 192:11-192:14 'Float -> 'Float -> 'Float -> 'VecS 'Float (Succ (Succ (Succ (Succ Zero))))
464testdata/Prelude.lc 196:34-196:39 Type 453testdata/Prelude.lc 192:15-192:18 'Float
465testdata/Prelude.lc 197:14-197:32 'VecS 'Float (Succ (Succ (Succ Zero))) -> 'VecS 'Float (Succ (Succ (Succ (Succ Zero)))) 454testdata/Prelude.lc 192:19-192:22 'Float
466testdata/Prelude.lc 197:14-197:32 'VecS 'Float (Succ (Succ (Succ (Succ Zero)))) 455testdata/Prelude.lc 192:23-192:26 'Float
467testdata/Prelude.lc 197:14-197:16 {a} -> a -> a -> a -> a -> 'VecS a (Succ (Succ (Succ (Succ Zero)))) 456testdata/Prelude.lc 192:1-192:8 'VecS 'Float (Succ (Succ (Succ (Succ Zero))))
468testdata/Prelude.lc 197:17-197:20 V0 457testdata/Prelude.lc 194:15-194:25 {a:'Nat} -> {b:'Nat} -> {c} -> {d} -> {e : 'Num c} -> {f : d ~ 'VecScalar b c} -> d -> 'Image a ('Color d)
469testdata/Prelude.lc 197:17-197:20 'Float 458testdata/Prelude.lc 194:1-194:12 {a:'Nat} -> {b} -> {c} -> {d : 'Num b} -> {e : c ~ 'VecScalar a b} -> c -> 'Image (Succ Zero) ('Color c)
470testdata/Prelude.lc 197:21-197:24 'Float 459testdata/Prelude.lc 195:15-195:25 {a:'Nat} -> {b:'Nat} -> {c} -> {d} -> {e : 'Num c} -> {f : d ~ 'VecScalar b c} -> d -> 'Image a ('Color d)
471testdata/Prelude.lc 197:25-197:28 'Float 460testdata/Prelude.lc 195:1-195:12 {a:'Nat} -> {b} -> {c} -> {d : 'Num b} -> {e : c ~ 'VecScalar a b} -> c -> 'Image (Succ (Succ Zero)) ('Color c)
472testdata/Prelude.lc 197:29-197:32 'Float 461testdata/Prelude.lc 197:15-197:25 {a:'Nat} -> 'Float -> 'Image a ('Depth 'Float)
473testdata/Prelude.lc 197:1-197:9 'VecS 'Float (Succ (Succ (Succ Zero))) -> 'VecS 'Float (Succ (Succ (Succ (Succ Zero)))) 462testdata/Prelude.lc 197:1-197:12 'Float -> 'Image (Succ Zero) ('Depth 'Float)
474testdata/Prelude.lc 204:11-204:22 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> a->a 463testdata/Prelude.lc 199:13-199:39 Type
475testdata/Prelude.lc 204:1-204:8 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> a->a 464testdata/Prelude.lc 199:13-199:16 'Nat -> Type->Type
476testdata/Prelude.lc 205:11-205:22 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> a->a 465testdata/Prelude.lc 199:19-199:24 Type
477testdata/Prelude.lc 205:1-205:8 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> a->a 466testdata/Prelude.lc 199:28-199:39 Type
478testdata/Prelude.lc 206:7-206:14 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> a->a 467testdata/Prelude.lc 199:28-199:31 'Nat -> Type->Type
479testdata/Prelude.lc 206:1-206:4 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> a->a 468testdata/Prelude.lc 199:34-199:39 Type
480testdata/Prelude.lc 207:7-207:14 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> a->a 469testdata/Prelude.lc 200:14-200:30 'VecS 'Float (Succ (Succ (Succ Zero))) -> 'VecS 'Float (Succ (Succ (Succ (Succ Zero))))
481testdata/Prelude.lc 207:1-207:4 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> a->a 470testdata/Prelude.lc 200:14-200:30 'VecS 'Float (Succ (Succ (Succ (Succ Zero))))
482testdata/Prelude.lc 208:7-208:14 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> a->a 471testdata/Prelude.lc 200:14-200:16 {a} -> a -> a -> a -> a -> 'VecS a (Succ (Succ (Succ (Succ Zero))))
483testdata/Prelude.lc 208:1-208:4 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> a->a 472testdata/Prelude.lc 200:18-200:18 V0
484testdata/Prelude.lc 209:8-209:16 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> a->a 473testdata/Prelude.lc 200:18-200:18 {a} -> {b:'Nat} -> 'VecS a b -> 'Swizz->a
485testdata/Prelude.lc 209:1-209:5 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> a->a 474testdata/Prelude.lc 200:18-200:18 'Swizz
486testdata/Prelude.lc 210:8-210:16 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> a->a 475testdata/Prelude.lc 200:22-200:22 'Float
487testdata/Prelude.lc 210:1-210:5 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> a->a 476testdata/Prelude.lc 200:22-200:22 {a} -> {b:'Nat} -> 'VecS a b -> 'Swizz->a
488testdata/Prelude.lc 211:8-211:16 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> a->a 477testdata/Prelude.lc 200:22-200:22 'Swizz
489testdata/Prelude.lc 211:1-211:5 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> a->a 478testdata/Prelude.lc 200:26-200:26 'Float
490testdata/Prelude.lc 212:9-212:18 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> a -> a->a 479testdata/Prelude.lc 200:26-200:26 {a} -> {b:'Nat} -> 'VecS a b -> 'Swizz->a
491testdata/Prelude.lc 212:1-212:6 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> a -> a->a 480testdata/Prelude.lc 200:26-200:26 'Swizz
492testdata/Prelude.lc 215:7-215:14 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> a -> a->a 481testdata/Prelude.lc 200:29-200:30 'Float
493testdata/Prelude.lc 215:1-215:4 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> a -> a->a 482testdata/Prelude.lc 200:29-200:30 'Int
494testdata/Prelude.lc 216:7-216:14 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> a->a 483testdata/Prelude.lc 200:1-200:9 'VecS 'Float (Succ (Succ (Succ Zero))) -> 'VecS 'Float (Succ (Succ (Succ (Succ Zero))))
495testdata/Prelude.lc 216:1-216:4 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> a->a 484testdata/Prelude.lc 207:11-207:22 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> a->a
496testdata/Prelude.lc 217:7-217:14 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> a->a 485testdata/Prelude.lc 207:1-207:8 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> a->a
497testdata/Prelude.lc 217:1-217:4 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> a->a 486testdata/Prelude.lc 208:11-208:22 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> a->a
498testdata/Prelude.lc 218:8-218:16 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> a->a 487testdata/Prelude.lc 208:1-208:8 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> a->a
499testdata/Prelude.lc 218:1-218:5 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> a->a 488testdata/Prelude.lc 209:7-209:14 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> a->a
500testdata/Prelude.lc 219:8-219:16 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> a->a 489testdata/Prelude.lc 209:1-209:4 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> a->a
501testdata/Prelude.lc 219:1-219:5 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> a->a 490testdata/Prelude.lc 210:7-210:14 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> a->a
502testdata/Prelude.lc 220:8-220:16 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> a->a 491testdata/Prelude.lc 210:1-210:4 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> a->a
503testdata/Prelude.lc 220:1-220:5 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> a->a 492testdata/Prelude.lc 211:7-211:14 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> a->a
504testdata/Prelude.lc 221:15-221:26 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> a->a 493testdata/Prelude.lc 211:1-211:4 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> a->a
505testdata/Prelude.lc 221:1-221:12 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> a->a 494testdata/Prelude.lc 212:8-212:16 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> a->a
506testdata/Prelude.lc 224:7-224:14 {a} -> {b} -> {c:'Nat} -> {d : 'Signed a} -> {e : b ~ 'VecScalar c a} -> b->b 495testdata/Prelude.lc 212:1-212:5 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> a->a
507testdata/Prelude.lc 224:1-224:4 {a} -> {b} -> {c:'Nat} -> {d : 'Signed a} -> {e : b ~ 'VecScalar c a} -> b->b 496testdata/Prelude.lc 213:8-213:16 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> a->a
508testdata/Prelude.lc 225:8-225:16 {a} -> {b} -> {c:'Nat} -> {d : 'Signed a} -> {e : b ~ 'VecScalar c a} -> b->b 497testdata/Prelude.lc 213:1-213:5 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> a->a
509testdata/Prelude.lc 225:1-225:5 {a} -> {b} -> {c:'Nat} -> {d : 'Signed a} -> {e : b ~ 'VecScalar c a} -> b->b 498testdata/Prelude.lc 214:8-214:16 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> a->a
510testdata/Prelude.lc 226:9-226:18 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> a->a 499testdata/Prelude.lc 214:1-214:5 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> a->a
511testdata/Prelude.lc 226:1-226:6 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> a->a 500testdata/Prelude.lc 215:9-215:18 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> a -> a->a
512testdata/Prelude.lc 227:8-227:16 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> a->a 501testdata/Prelude.lc 215:1-215:6 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> a -> a->a
513testdata/Prelude.lc 227:1-227:5 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> a->a 502testdata/Prelude.lc 218:7-218:14 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> a -> a->a
514testdata/Prelude.lc 228:9-228:18 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> a->a 503testdata/Prelude.lc 218:1-218:4 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> a -> a->a
515testdata/Prelude.lc 228:1-228:6 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> a->a 504testdata/Prelude.lc 219:7-219:14 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> a->a
516testdata/Prelude.lc 229:7-229:14 {a} -> {b} -> {c:'Nat} -> {d : 'Num a} -> {e : b ~ 'VecScalar c a} -> b -> b->b 505testdata/Prelude.lc 219:1-219:4 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> a->a
517testdata/Prelude.lc 229:1-229:4 {a} -> {b} -> {c:'Nat} -> {d : 'Num a} -> {e : b ~ 'VecScalar c a} -> b -> b->b 506testdata/Prelude.lc 220:7-220:14 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> a->a
518testdata/Prelude.lc 230:7-230:14 {a} -> {b} -> {c:'Nat} -> {d : 'Num a} -> {e : b ~ 'VecScalar c a} -> b -> b->b 507testdata/Prelude.lc 220:1-220:4 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> a->a
519testdata/Prelude.lc 230:1-230:4 {a} -> {b} -> {c:'Nat} -> {d : 'Num a} -> {e : b ~ 'VecScalar c a} -> b -> b->b 508testdata/Prelude.lc 221:8-221:16 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> a->a
520testdata/Prelude.lc 231:7-231:14 {a} -> {b} -> {c:'Nat} -> {d : 'Num a} -> {e : b ~ 'VecScalar c a} -> b -> b->b 509testdata/Prelude.lc 221:1-221:5 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> a->a
521testdata/Prelude.lc 231:1-231:4 {a} -> {b} -> {c:'Nat} -> {d : 'Num a} -> {e : b ~ 'VecScalar c a} -> b -> b->b 510testdata/Prelude.lc 222:8-222:16 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> a->a
522testdata/Prelude.lc 232:9-232:18 {a} -> {b} -> {c:'Nat} -> {d : 'Num a} -> {e : b ~ 'VecScalar c a} -> b -> b -> b->b 511testdata/Prelude.lc 222:1-222:5 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> a->a
523testdata/Prelude.lc 232:1-232:6 {a} -> {b} -> {c:'Nat} -> {d : 'Num a} -> {e : b ~ 'VecScalar c a} -> b -> b -> b->b 512testdata/Prelude.lc 223:8-223:16 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> a->a
524testdata/Prelude.lc 233:10-233:20 {a} -> {b} -> {c:'Nat} -> {d : 'Num a} -> {e : b ~ 'VecScalar c a} -> b -> a -> a->b 513testdata/Prelude.lc 223:1-223:5 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> a->a
525testdata/Prelude.lc 233:1-233:7 {a} -> {b} -> {c:'Nat} -> {d : 'Num a} -> {e : b ~ 'VecScalar c a} -> b -> a -> a->b 514testdata/Prelude.lc 224:15-224:26 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> a->a
526testdata/Prelude.lc 234:7-234:14 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> a -> a -> a->a 515testdata/Prelude.lc 224:1-224:12 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> a->a
527testdata/Prelude.lc 234:1-234:4 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> a -> a -> a->a 516testdata/Prelude.lc 227:7-227:14 {a} -> {b} -> {c:'Nat} -> {d : 'Signed a} -> {e : b ~ 'VecScalar c a} -> b->b
528testdata/Prelude.lc 235:8-235:16 {a} -> {b:'Nat} -> {c : a ~ 'VecS 'Float b} -> a -> a->a 517testdata/Prelude.lc 227:1-227:4 {a} -> {b} -> {c:'Nat} -> {d : 'Signed a} -> {e : b ~ 'VecScalar c a} -> b->b
529testdata/Prelude.lc 235:1-235:5 {a} -> {b:'Nat} -> {c : a ~ 'VecS 'Float b} -> a -> a->a 518testdata/Prelude.lc 228:8-228:16 {a} -> {b} -> {c:'Nat} -> {d : 'Signed a} -> {e : b ~ 'VecScalar c a} -> b->b
530testdata/Prelude.lc 236:14-236:28 {a} -> {b:'Nat} -> {c : a ~ 'VecS 'Float b} -> a -> a -> a->a 519testdata/Prelude.lc 228:1-228:5 {a} -> {b} -> {c:'Nat} -> {d : 'Signed a} -> {e : b ~ 'VecScalar c a} -> b->b
531testdata/Prelude.lc 236:1-236:11 {a} -> {b:'Nat} -> {c : a ~ 'VecS 'Float b} -> a -> a -> a->a 520testdata/Prelude.lc 229:9-229:18 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> a->a
532testdata/Prelude.lc 239:10-239:20 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> a->'Float 521testdata/Prelude.lc 229:1-229:6 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> a->a
533testdata/Prelude.lc 239:1-239:7 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> a->'Float 522testdata/Prelude.lc 230:8-230:16 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> a->a
534testdata/Prelude.lc 240:12-240:24 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> a -> a->'Float 523testdata/Prelude.lc 230:1-230:5 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> a->a
535testdata/Prelude.lc 240:1-240:9 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> a -> a->'Float 524testdata/Prelude.lc 231:9-231:18 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> a->a
536testdata/Prelude.lc 241:7-241:14 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> a -> a->'Float 525testdata/Prelude.lc 231:1-231:6 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> a->a
537testdata/Prelude.lc 241:1-241:4 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> a -> a->'Float 526testdata/Prelude.lc 232:7-232:14 {a} -> {b} -> {c:'Nat} -> {d : 'Num a} -> {e : b ~ 'VecScalar c a} -> b -> b->b
538testdata/Prelude.lc 242:9-242:18 {a} -> {b : a ~ 'VecS 'Float (Succ (Succ (Succ Zero)))} -> a -> a->a 527testdata/Prelude.lc 232:1-232:4 {a} -> {b} -> {c:'Nat} -> {d : 'Num a} -> {e : b ~ 'VecScalar c a} -> b -> b->b
539testdata/Prelude.lc 242:1-242:6 {a} -> {b : a ~ 'VecS 'Float (Succ (Succ (Succ Zero)))} -> a -> a->a 528testdata/Prelude.lc 233:7-233:14 {a} -> {b} -> {c:'Nat} -> {d : 'Num a} -> {e : b ~ 'VecScalar c a} -> b -> b->b
540testdata/Prelude.lc 243:13-243:26 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> a->a 529testdata/Prelude.lc 233:1-233:4 {a} -> {b} -> {c:'Nat} -> {d : 'Num a} -> {e : b ~ 'VecScalar c a} -> b -> b->b
541testdata/Prelude.lc 243:1-243:10 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> a->a 530testdata/Prelude.lc 234:7-234:14 {a} -> {b} -> {c:'Nat} -> {d : 'Num a} -> {e : b ~ 'VecScalar c a} -> b -> b->b
542testdata/Prelude.lc 244:15-244:30 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> a -> a -> a->a 531testdata/Prelude.lc 234:1-234:4 {a} -> {b} -> {c:'Nat} -> {d : 'Num a} -> {e : b ~ 'VecScalar c a} -> b -> b->b
543testdata/Prelude.lc 244:1-244:12 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> a -> a -> a->a 532testdata/Prelude.lc 235:9-235:18 {a} -> {b} -> {c:'Nat} -> {d : 'Num a} -> {e : b ~ 'VecScalar c a} -> b -> b -> b->b
544testdata/Prelude.lc 245:11-245:22 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> a -> a->a 533testdata/Prelude.lc 235:1-235:6 {a} -> {b} -> {c:'Nat} -> {d : 'Num a} -> {e : b ~ 'VecScalar c a} -> b -> b -> b->b
545testdata/Prelude.lc 245:1-245:8 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> a -> a->a 534testdata/Prelude.lc 236:10-236:20 {a} -> {b} -> {c:'Nat} -> {d : 'Num a} -> {e : b ~ 'VecScalar c a} -> b -> a -> a->b
546testdata/Prelude.lc 246:11-246:22 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> a -> a -> a->a 535testdata/Prelude.lc 236:1-236:7 {a} -> {b} -> {c:'Nat} -> {d : 'Num a} -> {e : b ~ 'VecScalar c a} -> b -> a -> a->b
547testdata/Prelude.lc 246:1-246:8 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> a -> a -> a->a 536testdata/Prelude.lc 237:7-237:14 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> a -> a -> a->a
548testdata/Prelude.lc 264:9-264:16 {a} -> {b : 'Num ('MatVecScalarElem a)} -> a -> a->a 537testdata/Prelude.lc 237:1-237:4 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> a -> a -> a->a
549testdata/Prelude.lc 264:3-264:4 {a} -> {b : 'Num ('MatVecScalarElem a)} -> a -> a->a 538testdata/Prelude.lc 238:8-238:16 {a} -> {b:'Nat} -> {c : a ~ 'VecS 'Float b} -> a -> a->a
550testdata/Prelude.lc 265:9-265:16 {a} -> {b : 'Num ('MatVecScalarElem a)} -> a -> a->a 539testdata/Prelude.lc 238:1-238:5 {a} -> {b:'Nat} -> {c : a ~ 'VecS 'Float b} -> a -> a->a
551testdata/Prelude.lc 265:3-265:4 {a} -> {b : 'Num ('MatVecScalarElem a)} -> a -> a->a 540testdata/Prelude.lc 239:14-239:28 {a} -> {b:'Nat} -> {c : a ~ 'VecS 'Float b} -> a -> a -> a->a
552testdata/Prelude.lc 266:9-266:16 {a} -> {b : 'Num ('MatVecScalarElem a)} -> a -> a->a 541testdata/Prelude.lc 239:1-239:11 {a} -> {b:'Nat} -> {c : a ~ 'VecS 'Float b} -> a -> a -> a->a
553testdata/Prelude.lc 266:3-266:4 {a} -> {b : 'Num ('MatVecScalarElem a)} -> a -> a->a 542testdata/Prelude.lc 242:10-242:20 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> a->'Float
554testdata/Prelude.lc 267:9-267:16 {a} -> {b} -> {c:'Nat} -> {d : 'Num a} -> {e : b ~ 'VecScalar c a} -> b -> b->b 543testdata/Prelude.lc 242:1-242:7 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> a->'Float
555testdata/Prelude.lc 267:3-267:4 {a} -> {b:'Nat} -> {c : 'Num a} -> 'VecScalar b a -> 'VecScalar b a -> 'VecScalar b a 544testdata/Prelude.lc 243:12-243:24 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> a -> a->'Float
556testdata/Prelude.lc 268:9-268:16 {a} -> {b} -> {c:'Nat} -> {d : 'Num a} -> {e : b ~ 'VecScalar c a} -> b -> b->b 545testdata/Prelude.lc 243:1-243:9 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> a -> a->'Float
557testdata/Prelude.lc 268:3-268:4 {a} -> {b:'Nat} -> {c : 'Num a} -> 'VecScalar b a -> 'VecScalar b a -> 'VecScalar b a 546testdata/Prelude.lc 244:7-244:14 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> a -> a->'Float
558testdata/Prelude.lc 270:9-270:16 {a} -> {b : 'Signed ('MatVecScalarElem a)} -> a->a 547testdata/Prelude.lc 244:1-244:4 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> a -> a->'Float
559testdata/Prelude.lc 270:1-270:4 {a} -> {b : 'Signed ('MatVecScalarElem a)} -> a->a 548testdata/Prelude.lc 245:9-245:18 {a} -> {b : a ~ 'VecS 'Float (Succ (Succ (Succ Zero)))} -> a -> a->a
560testdata/Prelude.lc 273:10-273:19 {a} -> {b} -> {c : a ~ 'MatVecScalarElem b} -> b -> b->'Bool 549testdata/Prelude.lc 245:1-245:6 {a} -> {b : a ~ 'VecS 'Float (Succ (Succ (Succ Zero)))} -> a -> a->a
561testdata/Prelude.lc 273:3-273:5 {a} -> a -> a->'Bool 550testdata/Prelude.lc 246:13-246:26 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> a->a
562testdata/Prelude.lc 274:10-274:22 {a} -> {b} -> {c : a ~ 'MatVecScalarElem b} -> b -> b->'Bool 551testdata/Prelude.lc 246:1-246:10 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> a->a
563testdata/Prelude.lc 274:3-274:5 {a} -> a -> a->'Bool 552testdata/Prelude.lc 247:15-247:30 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> a -> a -> a->a
564testdata/Prelude.lc 275:9-275:21 {a} -> {b} -> {c:'Nat} -> {d} -> {e : 'Num a} -> {f : b ~ 'VecScalar c a} -> {g : d ~ 'VecScalar c 'Bool} -> b -> b->d 553testdata/Prelude.lc 247:1-247:12 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> a -> a -> a->a
565testdata/Prelude.lc 275:3-275:4 {a} -> {b:'Nat} -> {c : 'Num a} -> 'VecScalar b a -> 'VecScalar b a -> 'VecScalar b 'Bool 554testdata/Prelude.lc 248:11-248:22 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> a -> a->a
566testdata/Prelude.lc 276:10-276:27 {a} -> {b} -> {c:'Nat} -> {d} -> {e : 'Num a} -> {f : b ~ 'VecScalar c a} -> {g : d ~ 'VecScalar c 'Bool} -> b -> b->d 555testdata/Prelude.lc 248:1-248:8 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> a -> a->a
567testdata/Prelude.lc 276:3-276:5 {a} -> {b:'Nat} -> {c : 'Num a} -> 'VecScalar b a -> 'VecScalar b a -> 'VecScalar b 'Bool 556testdata/Prelude.lc 249:11-249:22 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> a -> a -> a->a
568testdata/Prelude.lc 277:10-277:30 {a} -> {b} -> {c:'Nat} -> {d} -> {e : 'Num a} -> {f : b ~ 'VecScalar c a} -> {g : d ~ 'VecScalar c 'Bool} -> b -> b->d 557testdata/Prelude.lc 249:1-249:8 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> a -> a -> a->a
569testdata/Prelude.lc 277:3-277:5 {a} -> {b:'Nat} -> {c : 'Num a} -> 'VecScalar b a -> 'VecScalar b a -> 'VecScalar b 'Bool 558testdata/Prelude.lc 267:9-267:16 {a} -> {b : 'Num ('MatVecScalarElem a)} -> a -> a->a
570testdata/Prelude.lc 278:9-278:24 {a} -> {b} -> {c:'Nat} -> {d} -> {e : 'Num a} -> {f : b ~ 'VecScalar c a} -> {g : d ~ 'VecScalar c 'Bool} -> b -> b->d 559testdata/Prelude.lc 267:3-267:4 {a} -> {b : 'Num ('MatVecScalarElem a)} -> a -> a->a
560testdata/Prelude.lc 268:9-268:16 {a} -> {b : 'Num ('MatVecScalarElem a)} -> a -> a->a
561testdata/Prelude.lc 268:3-268:4 {a} -> {b : 'Num ('MatVecScalarElem a)} -> a -> a->a
562testdata/Prelude.lc 269:9-269:16 {a} -> {b : 'Num ('MatVecScalarElem a)} -> a -> a->a
563testdata/Prelude.lc 269:3-269:4 {a} -> {b : 'Num ('MatVecScalarElem a)} -> a -> a->a
564testdata/Prelude.lc 270:9-270:16 {a} -> {b} -> {c:'Nat} -> {d : 'Num a} -> {e : b ~ 'VecScalar c a} -> b -> b->b
565testdata/Prelude.lc 270:3-270:4 {a} -> {b:'Nat} -> {c : 'Num a} -> 'VecScalar b a -> 'VecScalar b a -> 'VecScalar b a
566testdata/Prelude.lc 271:9-271:16 {a} -> {b} -> {c:'Nat} -> {d : 'Num a} -> {e : b ~ 'VecScalar c a} -> b -> b->b
567testdata/Prelude.lc 271:3-271:4 {a} -> {b:'Nat} -> {c : 'Num a} -> 'VecScalar b a -> 'VecScalar b a -> 'VecScalar b a
568testdata/Prelude.lc 273:9-273:16 {a} -> {b : 'Signed ('MatVecScalarElem a)} -> a->a
569testdata/Prelude.lc 273:1-273:4 {a} -> {b : 'Signed ('MatVecScalarElem a)} -> a->a
570testdata/Prelude.lc 276:10-276:19 {a} -> {b} -> {c : a ~ 'MatVecScalarElem b} -> b -> b->'Bool
571testdata/Prelude.lc 276:3-276:5 {a} -> a -> a->'Bool
572testdata/Prelude.lc 277:10-277:22 {a} -> {b} -> {c : a ~ 'MatVecScalarElem b} -> b -> b->'Bool
573testdata/Prelude.lc 277:3-277:5 {a} -> a -> a->'Bool
574testdata/Prelude.lc 278:9-278:21 {a} -> {b} -> {c:'Nat} -> {d} -> {e : 'Num a} -> {f : b ~ 'VecScalar c a} -> {g : d ~ 'VecScalar c 'Bool} -> b -> b->d
571testdata/Prelude.lc 278:3-278:4 {a} -> {b:'Nat} -> {c : 'Num a} -> 'VecScalar b a -> 'VecScalar b a -> 'VecScalar b 'Bool 575testdata/Prelude.lc 278:3-278:4 {a} -> {b:'Nat} -> {c : 'Num a} -> 'VecScalar b a -> 'VecScalar b a -> 'VecScalar b 'Bool
572testdata/Prelude.lc 281:10-281:17 'Bool -> 'Bool->'Bool 576testdata/Prelude.lc 279:10-279:27 {a} -> {b} -> {c:'Nat} -> {d} -> {e : 'Num a} -> {f : b ~ 'VecScalar c a} -> {g : d ~ 'VecScalar c 'Bool} -> b -> b->d
573testdata/Prelude.lc 281:3-281:5 'Bool -> 'Bool->'Bool 577testdata/Prelude.lc 279:3-279:5 {a} -> {b:'Nat} -> {c : 'Num a} -> 'VecScalar b a -> 'VecScalar b a -> 'VecScalar b 'Bool
574testdata/Prelude.lc 282:10-282:16 'Bool -> 'Bool->'Bool 578testdata/Prelude.lc 280:10-280:30 {a} -> {b} -> {c:'Nat} -> {d} -> {e : 'Num a} -> {f : b ~ 'VecScalar c a} -> {g : d ~ 'VecScalar c 'Bool} -> b -> b->d
575testdata/Prelude.lc 282:3-282:5 'Bool -> 'Bool->'Bool 579testdata/Prelude.lc 280:3-280:5 {a} -> {b:'Nat} -> {c : 'Num a} -> 'VecScalar b a -> 'VecScalar b a -> 'VecScalar b 'Bool
576testdata/Prelude.lc 283:9-283:16 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Bool} -> a->a 580testdata/Prelude.lc 281:9-281:24 {a} -> {b} -> {c:'Nat} -> {d} -> {e : 'Num a} -> {f : b ~ 'VecScalar c a} -> {g : d ~ 'VecScalar c 'Bool} -> b -> b->d
577testdata/Prelude.lc 283:1-283:4 {a:'Nat} -> 'VecScalar a 'Bool -> 'VecScalar a 'Bool 581testdata/Prelude.lc 281:3-281:4 {a} -> {b:'Nat} -> {c : 'Num a} -> 'VecScalar b a -> 'VecScalar b a -> 'VecScalar b 'Bool
578testdata/Prelude.lc 284:9-284:16 {a:'Nat} -> 'VecScalar a 'Bool -> 'Bool 582testdata/Prelude.lc 284:10-284:17 'Bool -> 'Bool->'Bool
579testdata/Prelude.lc 284:1-284:4 {a:'Nat} -> 'VecScalar a 'Bool -> 'Bool 583testdata/Prelude.lc 284:3-284:5 'Bool -> 'Bool->'Bool
580testdata/Prelude.lc 285:9-285:16 {a:'Nat} -> 'VecScalar a 'Bool -> 'Bool 584testdata/Prelude.lc 285:10-285:16 'Bool -> 'Bool->'Bool
581testdata/Prelude.lc 285:1-285:4 {a:'Nat} -> 'VecScalar a 'Bool -> 'Bool 585testdata/Prelude.lc 285:3-285:5 'Bool -> 'Bool->'Bool
582testdata/Prelude.lc 288:11-288:24 {a:'Nat} -> {b:'Nat} -> {c} -> {d:'Nat} -> 'Mat a b c -> 'Mat b d c -> 'Mat a d c 586testdata/Prelude.lc 286:9-286:16 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Bool} -> a->a
583testdata/Prelude.lc 288:3-288:6 {a:'Nat} -> {b:'Nat} -> {c} -> {d:'Nat} -> 'Mat a b c -> 'Mat b d c -> 'Mat a d c 587testdata/Prelude.lc 286:1-286:4 {a:'Nat} -> 'VecScalar a 'Bool -> 'VecScalar a 'Bool
584testdata/Prelude.lc 289:10-289:23 {a:'Nat} -> {b:'Nat} -> {c} -> 'Mat a b c -> 'VecS c b -> 'VecS c a 588testdata/Prelude.lc 287:9-287:16 {a:'Nat} -> 'VecScalar a 'Bool -> 'Bool
585testdata/Prelude.lc 289:3-289:5 {a:'Nat} -> {b:'Nat} -> {c} -> 'Mat a b c -> 'VecS c b -> 'VecS c a 589testdata/Prelude.lc 287:1-287:4 {a:'Nat} -> 'VecScalar a 'Bool -> 'Bool
586testdata/Prelude.lc 290:10-290:23 {a:'Nat} -> {b} -> {c:'Nat} -> 'VecS b a -> 'Mat a c b -> 'VecS b c 590testdata/Prelude.lc 288:9-288:16 {a:'Nat} -> 'VecScalar a 'Bool -> 'Bool
587testdata/Prelude.lc 290:3-290:5 {a:'Nat} -> {b} -> {c:'Nat} -> 'VecS b a -> 'Mat a c b -> 'VecS b c 591testdata/Prelude.lc 288:1-288:4 {a:'Nat} -> 'VecScalar a 'Bool -> 'Bool
588testdata/Prelude.lc 292:8-292:16 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> a->a 592testdata/Prelude.lc 291:11-291:24 {a:'Nat} -> {b:'Nat} -> {c} -> {d:'Nat} -> 'Mat a b c -> 'Mat b d c -> 'Mat a d c
589testdata/Prelude.lc 292:1-292:5 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> a->a 593testdata/Prelude.lc 291:3-291:6 {a:'Nat} -> {b:'Nat} -> {c} -> {d:'Nat} -> 'Mat a b c -> 'Mat b d c -> 'Mat a d c
590testdata/Prelude.lc 293:8-293:16 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> a->a 594testdata/Prelude.lc 292:10-292:23 {a:'Nat} -> {b:'Nat} -> {c} -> 'Mat a b c -> 'VecS c b -> 'VecS c a
591testdata/Prelude.lc 293:1-293:5 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> a->a 595testdata/Prelude.lc 292:3-292:5 {a:'Nat} -> {b:'Nat} -> {c} -> 'Mat a b c -> 'VecS c b -> 'VecS c a
592testdata/Prelude.lc 296:9-296:18 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> a->a 596testdata/Prelude.lc 293:10-293:23 {a:'Nat} -> {b} -> {c:'Nat} -> 'VecS b a -> 'Mat a c b -> 'VecS b c
593testdata/Prelude.lc 296:1-296:6 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> a->a 597testdata/Prelude.lc 293:3-293:5 {a:'Nat} -> {b} -> {c:'Nat} -> 'VecS b a -> 'Mat a c b -> 'VecS b c
594testdata/Prelude.lc 304:10-304:18 {a} -> {b} -> {c : a ~ 'MatVecScalarElem b} -> {d : 'Num a} -> b -> a->b 598testdata/Prelude.lc 295:8-295:16 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> a->a
595testdata/Prelude.lc 304:3-304:5 {a} -> {b : 'Num ('MatVecScalarElem a)} -> a -> 'MatVecScalarElem a -> a 599testdata/Prelude.lc 295:1-295:5 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> a->a
596testdata/Prelude.lc 305:10-305:18 {a} -> {b} -> {c : a ~ 'MatVecScalarElem b} -> {d : 'Num a} -> b -> a->b 600testdata/Prelude.lc 296:8-296:16 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> a->a
597testdata/Prelude.lc 305:3-305:5 {a} -> {b : 'Num ('MatVecScalarElem a)} -> a -> 'MatVecScalarElem a -> a 601testdata/Prelude.lc 296:1-296:5 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> a->a
598testdata/Prelude.lc 306:10-306:18 {a} -> {b} -> {c : a ~ 'MatVecScalarElem b} -> {d : 'Num a} -> b -> a->b 602testdata/Prelude.lc 299:9-299:18 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> a->a
599testdata/Prelude.lc 306:3-306:5 {a} -> {b : 'Num ('MatVecScalarElem a)} -> a -> 'MatVecScalarElem a -> a 603testdata/Prelude.lc 299:1-299:6 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> a->a
600testdata/Prelude.lc 307:10-307:18 {a} -> {b} -> {c:'Nat} -> {d : 'Num a} -> {e : b ~ 'VecScalar c a} -> b -> a->b 604testdata/Prelude.lc 307:10-307:18 {a} -> {b} -> {c : a ~ 'MatVecScalarElem b} -> {d : 'Num a} -> b -> a->b
601testdata/Prelude.lc 307:3-307:5 {a} -> {b:'Nat} -> {c : 'Num a} -> 'VecScalar b a -> a -> 'VecScalar b a 605testdata/Prelude.lc 307:3-307:5 {a} -> {b : 'Num ('MatVecScalarElem a)} -> a -> 'MatVecScalarElem a -> a
602testdata/Prelude.lc 308:10-308:18 {a} -> {b} -> {c:'Nat} -> {d : 'Num a} -> {e : b ~ 'VecScalar c a} -> b -> a->b 606testdata/Prelude.lc 308:10-308:18 {a} -> {b} -> {c : a ~ 'MatVecScalarElem b} -> {d : 'Num a} -> b -> a->b
603testdata/Prelude.lc 308:3-308:5 {a} -> {b:'Nat} -> {c : 'Num a} -> 'VecScalar b a -> a -> 'VecScalar b a 607testdata/Prelude.lc 308:3-308:5 {a} -> {b : 'Num ('MatVecScalarElem a)} -> a -> 'MatVecScalarElem a -> a
604testdata/Prelude.lc 333:9-333:12 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> a->a 608testdata/Prelude.lc 309:10-309:18 {a} -> {b} -> {c : a ~ 'MatVecScalarElem b} -> {d : 'Num a} -> b -> a->b
605testdata/Prelude.lc 334:9-334:12 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> a->a 609testdata/Prelude.lc 309:3-309:5 {a} -> {b : 'Num ('MatVecScalarElem a)} -> a -> 'MatVecScalarElem a -> a
606testdata/Prelude.lc 331:16-331:20 'VecS 'Float (Succ (Succ (Succ (Succ Zero)))) -> 'VecS 'Float (Succ (Succ (Succ (Succ Zero)))) -> 'VecS 'Float (Succ (Succ (Succ (Succ Zero)))) -> 'VecS 'Float (Succ (Succ (Succ (Succ Zero)))) -> 'Mat (Succ (Succ (Succ (Succ Zero)))) (Succ (Succ (Succ (Succ Zero)))) 'Float 610testdata/Prelude.lc 310:10-310:18 {a} -> {b} -> {c:'Nat} -> {d : 'Num a} -> {e : b ~ 'VecScalar c a} -> b -> a->b
607testdata/Prelude.lc 331:16-334:12 'VecS 'Float (Succ (Succ (Succ (Succ Zero)))) 611testdata/Prelude.lc 310:3-310:5 {a} -> {b:'Nat} -> {c : 'Num a} -> 'VecScalar b a -> a -> 'VecScalar b a
608testdata/Prelude.lc 331:22-331:24 {a} -> a -> a -> a -> a -> 'VecS a (Succ (Succ (Succ (Succ Zero)))) 612testdata/Prelude.lc 311:10-311:18 {a} -> {b} -> {c:'Nat} -> {d : 'Num a} -> {e : b ~ 'VecScalar c a} -> b -> a->b
609testdata/Prelude.lc 331:16-334:12 V0 613testdata/Prelude.lc 311:3-311:5 {a} -> {b:'Nat} -> {c : 'Num a} -> 'VecScalar b a -> a -> 'VecScalar b a
610testdata/Prelude.lc 331:16-334:12 'VecScalar V3 'Float 614testdata/Prelude.lc 336:9-336:12 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> a->a
611testdata/Prelude.lc 331:16-331:74 'VecScalar V2 'Float 615testdata/Prelude.lc 337:9-337:12 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> a->a
612testdata/Prelude.lc 331:29-331:30 'VecScalar V2 'Float 616testdata/Prelude.lc 334:16-334:20 'VecS 'Float (Succ (Succ (Succ (Succ Zero)))) -> 'VecS 'Float (Succ (Succ (Succ (Succ Zero)))) -> 'VecS 'Float (Succ (Succ (Succ (Succ Zero)))) -> 'VecS 'Float (Succ (Succ (Succ (Succ Zero)))) -> 'Mat (Succ (Succ (Succ (Succ Zero)))) (Succ (Succ (Succ (Succ Zero)))) 'Float
613testdata/Prelude.lc 331:29-331:30 'Int 617testdata/Prelude.lc 334:16-337:12 'VecS 'Float (Succ (Succ (Succ (Succ Zero))))
614testdata/Prelude.lc 331:31-331:32 'Float 618testdata/Prelude.lc 334:22-334:24 {a} -> a -> a -> a -> a -> 'VecS a (Succ (Succ (Succ (Succ Zero))))
615testdata/Prelude.lc 331:31-331:32 'Int 619testdata/Prelude.lc 334:16-337:12 V0
616testdata/Prelude.lc 331:35-331:37 {a} -> a -> a -> a -> a -> 'VecS a (Succ (Succ (Succ (Succ Zero)))) 620testdata/Prelude.lc 334:16-337:12 'VecScalar V3 'Float
617testdata/Prelude.lc 331:16-331:74 V0 621testdata/Prelude.lc 334:16-334:74 'VecScalar V2 'Float
618testdata/Prelude.lc 331:39-331:41 V1 622testdata/Prelude.lc 334:29-334:30 'VecScalar V2 'Float
619testdata/Prelude.lc 331:39-331:41 'Int 623testdata/Prelude.lc 334:29-334:30 'Int
620testdata/Prelude.lc 331:16-331:74 'MatVecScalarElem V2 624testdata/Prelude.lc 334:31-334:32 'Float
621testdata/Prelude.lc 331:16-331:74 'Float 625testdata/Prelude.lc 334:31-334:32 'Int
622testdata/Prelude.lc 331:16-334:12 V3 626testdata/Prelude.lc 334:35-334:37 {a} -> a -> a -> a -> a -> 'VecS a (Succ (Succ (Succ (Succ Zero))))
623testdata/Prelude.lc 331:16-334:12 'Float 627testdata/Prelude.lc 334:16-334:74 V0
624testdata/Prelude.lc 331:45-331:46 'Float 628testdata/Prelude.lc 334:39-334:41 V1
625testdata/Prelude.lc 331:45-331:46 'Int 629testdata/Prelude.lc 334:39-334:41 'Int
626testdata/Prelude.lc 331:47-331:48 'Float 630testdata/Prelude.lc 334:16-334:74 'MatVecScalarElem V2
627testdata/Prelude.lc 331:47-331:48 'Int 631testdata/Prelude.lc 334:16-334:74 'Float
628testdata/Prelude.lc 331:51-331:61 'VecS 'Float (Succ (Succ (Succ (Succ Zero)))) 632testdata/Prelude.lc 334:16-337:12 V3
629testdata/Prelude.lc 331:51-331:53 {a} -> a -> a -> a -> a -> 'VecS a (Succ (Succ (Succ (Succ Zero)))) 633testdata/Prelude.lc 334:16-337:12 'Float
630testdata/Prelude.lc 331:54-331:55 V0 634testdata/Prelude.lc 334:45-334:46 'Float
631testdata/Prelude.lc 331:54-331:55 'Int 635testdata/Prelude.lc 334:45-334:46 'Int
632testdata/Prelude.lc 331:56-331:57 V1 636testdata/Prelude.lc 334:47-334:48 'Float
633testdata/Prelude.lc 331:56-331:57 'Int 637testdata/Prelude.lc 334:47-334:48 'Int
634testdata/Prelude.lc 331:58-331:59 V1 638testdata/Prelude.lc 334:51-334:61 'VecS 'Float (Succ (Succ (Succ (Succ Zero))))
635testdata/Prelude.lc 331:58-331:59 'Int 639testdata/Prelude.lc 334:51-334:53 {a} -> a -> a -> a -> a -> 'VecS a (Succ (Succ (Succ (Succ Zero))))
636testdata/Prelude.lc 331:60-331:61 'Float 640testdata/Prelude.lc 334:54-334:55 V0
637testdata/Prelude.lc 331:60-331:61 'Int 641testdata/Prelude.lc 334:54-334:55 'Int
638testdata/Prelude.lc 331:64-331:74 'VecS 'Float (Succ (Succ (Succ (Succ Zero)))) 642testdata/Prelude.lc 334:56-334:57 V1
639testdata/Prelude.lc 331:64-331:66 {a} -> a -> a -> a -> a -> 'VecS a (Succ (Succ (Succ (Succ Zero)))) 643testdata/Prelude.lc 334:56-334:57 'Int
640testdata/Prelude.lc 331:67-331:68 V0 644testdata/Prelude.lc 334:58-334:59 V1
641testdata/Prelude.lc 331:67-331:68 'Int 645testdata/Prelude.lc 334:58-334:59 'Int
642testdata/Prelude.lc 331:69-331:70 V1 646testdata/Prelude.lc 334:60-334:61 'Float
643testdata/Prelude.lc 331:69-331:70 'Int 647testdata/Prelude.lc 334:60-334:61 'Int
644testdata/Prelude.lc 331:71-331:72 V1 648testdata/Prelude.lc 334:64-334:74 'VecS 'Float (Succ (Succ (Succ (Succ Zero))))
645testdata/Prelude.lc 331:71-331:72 'Int 649testdata/Prelude.lc 334:64-334:66 {a} -> a -> a -> a -> a -> 'VecS a (Succ (Succ (Succ (Succ Zero))))
646testdata/Prelude.lc 331:73-331:74 'Float 650testdata/Prelude.lc 334:67-334:68 V0
647testdata/Prelude.lc 331:73-331:74 'Int 651testdata/Prelude.lc 334:67-334:68 'Int
648testdata/Prelude.lc 331:1-331:11 'Float -> 'Mat (Succ (Succ (Succ (Succ Zero)))) (Succ (Succ (Succ (Succ Zero)))) 'Float 652testdata/Prelude.lc 334:69-334:70 V1
649testdata/Prelude.lc 338:9-338:12 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> a->a 653testdata/Prelude.lc 334:69-334:70 'Int
650testdata/Prelude.lc 339:9-339:12 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> a->a 654testdata/Prelude.lc 334:71-334:72 V1
651testdata/Prelude.lc 336:16-336:20 'VecS 'Float (Succ (Succ (Succ (Succ Zero)))) -> 'VecS 'Float (Succ (Succ (Succ (Succ Zero)))) -> 'VecS 'Float (Succ (Succ (Succ (Succ Zero)))) -> 'VecS 'Float (Succ (Succ (Succ (Succ Zero)))) -> 'Mat (Succ (Succ (Succ (Succ Zero)))) (Succ (Succ (Succ (Succ Zero)))) 'Float 655testdata/Prelude.lc 334:71-334:72 'Int
652testdata/Prelude.lc 336:16-339:12 'VecS 'Float (Succ (Succ (Succ (Succ Zero)))) 656testdata/Prelude.lc 334:73-334:74 'Float
653testdata/Prelude.lc 336:22-336:24 {a} -> a -> a -> a -> a -> 'VecS a (Succ (Succ (Succ (Succ Zero)))) 657testdata/Prelude.lc 334:73-334:74 'Int
654testdata/Prelude.lc 336:16-339:12 V0 658testdata/Prelude.lc 334:1-334:11 'Float -> 'Mat (Succ (Succ (Succ (Succ Zero)))) (Succ (Succ (Succ (Succ Zero)))) 'Float
655testdata/Prelude.lc 336:16-339:12 'VecScalar V3 'Float 659testdata/Prelude.lc 341:9-341:12 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> a->a
656testdata/Prelude.lc 336:27-336:28 'VecScalar V2 'Float 660testdata/Prelude.lc 342:9-342:12 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> a->a
657testdata/Prelude.lc 336:27-336:28 'Int 661testdata/Prelude.lc 339:16-339:20 'VecS 'Float (Succ (Succ (Succ (Succ Zero)))) -> 'VecS 'Float (Succ (Succ (Succ (Succ Zero)))) -> 'VecS 'Float (Succ (Succ (Succ (Succ Zero)))) -> 'VecS 'Float (Succ (Succ (Succ (Succ Zero)))) -> 'Mat (Succ (Succ (Succ (Succ Zero)))) (Succ (Succ (Succ (Succ Zero)))) 'Float
658testdata/Prelude.lc 336:16-336:74 'VecScalar V3 'Float 662testdata/Prelude.lc 339:16-342:12 'VecS 'Float (Succ (Succ (Succ (Succ Zero))))
659testdata/Prelude.lc 336:30-336:32 V1 663testdata/Prelude.lc 339:22-339:24 {a} -> a -> a -> a -> a -> 'VecS a (Succ (Succ (Succ (Succ Zero))))
660testdata/Prelude.lc 336:30-336:32 'Int 664testdata/Prelude.lc 339:16-342:12 V0
661testdata/Prelude.lc 336:16-336:74 'MatVecScalarElem ('VecScalar V5 'Float) 665testdata/Prelude.lc 339:16-342:12 'VecScalar V3 'Float
662testdata/Prelude.lc 336:16-336:74 'VecScalar V5 'Float 666testdata/Prelude.lc 339:27-339:28 'VecScalar V2 'Float
663testdata/Prelude.lc 336:34-336:35 'Float 667testdata/Prelude.lc 339:27-339:28 'Int
664testdata/Prelude.lc 336:34-336:35 'Int 668testdata/Prelude.lc 339:16-339:74 'VecScalar V3 'Float
665testdata/Prelude.lc 336:38-336:48 'VecS 'Float (Succ (Succ (Succ (Succ Zero)))) 669testdata/Prelude.lc 339:30-339:32 V1
666testdata/Prelude.lc 336:38-336:40 {a} -> a -> a -> a -> a -> 'VecS a (Succ (Succ (Succ (Succ Zero)))) 670testdata/Prelude.lc 339:30-339:32 'Int
667testdata/Prelude.lc 336:41-336:42 V0 671testdata/Prelude.lc 339:16-339:74 'MatVecScalarElem ('VecScalar V5 'Float)
668testdata/Prelude.lc 336:41-336:42 'Int 672testdata/Prelude.lc 339:16-339:74 'VecScalar V5 'Float
669testdata/Prelude.lc 336:43-336:44 V1 673testdata/Prelude.lc 339:34-339:35 'Float
670testdata/Prelude.lc 336:43-336:44 'Int 674testdata/Prelude.lc 339:34-339:35 'Int
671testdata/Prelude.lc 336:45-336:46 V1 675testdata/Prelude.lc 339:38-339:48 'VecS 'Float (Succ (Succ (Succ (Succ Zero))))
672testdata/Prelude.lc 336:45-336:46 'Int 676testdata/Prelude.lc 339:38-339:40 {a} -> a -> a -> a -> a -> 'VecS a (Succ (Succ (Succ (Succ Zero))))
673testdata/Prelude.lc 336:47-336:48 'Float 677testdata/Prelude.lc 339:41-339:42 V0
674testdata/Prelude.lc 336:47-336:48 'Int 678testdata/Prelude.lc 339:41-339:42 'Int
675testdata/Prelude.lc 336:51-336:53 {a} -> a -> a -> a -> a -> 'VecS a (Succ (Succ (Succ (Succ Zero)))) 679testdata/Prelude.lc 339:43-339:44 V1
676testdata/Prelude.lc 336:16-336:74 V0 680testdata/Prelude.lc 339:43-339:44 'Int
677testdata/Prelude.lc 336:16-336:74 'Float 681testdata/Prelude.lc 339:45-339:46 V1
678testdata/Prelude.lc 336:56-336:57 'Float 682testdata/Prelude.lc 339:45-339:46 'Int
679testdata/Prelude.lc 336:56-336:57 'Int 683testdata/Prelude.lc 339:47-339:48 'Float
680testdata/Prelude.lc 336:16-339:12 'Float 684testdata/Prelude.lc 339:47-339:48 'Int
681testdata/Prelude.lc 336:60-336:61 'Float 685testdata/Prelude.lc 339:51-339:53 {a} -> a -> a -> a -> a -> 'VecS a (Succ (Succ (Succ (Succ Zero))))
682testdata/Prelude.lc 336:60-336:61 'Int 686testdata/Prelude.lc 339:16-339:74 V0
683testdata/Prelude.lc 336:64-336:74 'VecS 'Float (Succ (Succ (Succ (Succ Zero)))) 687testdata/Prelude.lc 339:16-339:74 'Float
684testdata/Prelude.lc 336:64-336:66 {a} -> a -> a -> a -> a -> 'VecS a (Succ (Succ (Succ (Succ Zero)))) 688testdata/Prelude.lc 339:56-339:57 'Float
685testdata/Prelude.lc 336:67-336:68 V0 689testdata/Prelude.lc 339:56-339:57 'Int
686testdata/Prelude.lc 336:67-336:68 'Int 690testdata/Prelude.lc 339:16-342:12 'Float
687testdata/Prelude.lc 336:69-336:70 V1 691testdata/Prelude.lc 339:60-339:61 'Float
688testdata/Prelude.lc 336:69-336:70 'Int 692testdata/Prelude.lc 339:60-339:61 'Int
689testdata/Prelude.lc 336:71-336:72 V1 693testdata/Prelude.lc 339:64-339:74 'VecS 'Float (Succ (Succ (Succ (Succ Zero))))
690testdata/Prelude.lc 336:71-336:72 'Int 694testdata/Prelude.lc 339:64-339:66 {a} -> a -> a -> a -> a -> 'VecS a (Succ (Succ (Succ (Succ Zero))))
691testdata/Prelude.lc 336:73-336:74 'Float 695testdata/Prelude.lc 339:67-339:68 V0
692testdata/Prelude.lc 336:73-336:74 'Int 696testdata/Prelude.lc 339:67-339:68 'Int
693testdata/Prelude.lc 336:1-336:11 'Float -> 'Mat (Succ (Succ (Succ (Succ Zero)))) (Succ (Succ (Succ (Succ Zero)))) 'Float 697testdata/Prelude.lc 339:69-339:70 V1
694testdata/Prelude.lc 343:9-343:12 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> a->a 698testdata/Prelude.lc 339:69-339:70 'Int
695testdata/Prelude.lc 344:9-344:12 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> a->a 699testdata/Prelude.lc 339:71-339:72 V1
696testdata/Prelude.lc 341:16-341:20 'VecS 'Float (Succ (Succ (Succ (Succ Zero)))) -> 'VecS 'Float (Succ (Succ (Succ (Succ Zero)))) -> 'VecS 'Float (Succ (Succ (Succ (Succ Zero)))) -> 'VecS 'Float (Succ (Succ (Succ (Succ Zero)))) -> 'Mat (Succ (Succ (Succ (Succ Zero)))) (Succ (Succ (Succ (Succ Zero)))) 'Float 700testdata/Prelude.lc 339:71-339:72 'Int
697testdata/Prelude.lc 341:22-341:32 'VecS 'Float (Succ (Succ (Succ (Succ Zero)))) 701testdata/Prelude.lc 339:73-339:74 'Float
698testdata/Prelude.lc 341:22-341:24 {a} -> a -> a -> a -> a -> 'VecS a (Succ (Succ (Succ (Succ Zero)))) 702testdata/Prelude.lc 339:73-339:74 'Int
699testdata/Prelude.lc 341:25-341:26 V0 703testdata/Prelude.lc 339:1-339:11 'Float -> 'Mat (Succ (Succ (Succ (Succ Zero)))) (Succ (Succ (Succ (Succ Zero)))) 'Float
700testdata/Prelude.lc 341:25-341:26 'Int 704testdata/Prelude.lc 346:9-346:12 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> a->a
701testdata/Prelude.lc 341:27-341:28 V1 705testdata/Prelude.lc 347:9-347:12 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> a->a
702testdata/Prelude.lc 341:27-341:28 'Int 706testdata/Prelude.lc 344:16-344:20 'VecS 'Float (Succ (Succ (Succ (Succ Zero)))) -> 'VecS 'Float (Succ (Succ (Succ (Succ Zero)))) -> 'VecS 'Float (Succ (Succ (Succ (Succ Zero)))) -> 'VecS 'Float (Succ (Succ (Succ (Succ Zero)))) -> 'Mat (Succ (Succ (Succ (Succ Zero)))) (Succ (Succ (Succ (Succ Zero)))) 'Float
703testdata/Prelude.lc 341:29-341:30 V1 707testdata/Prelude.lc 344:22-344:32 'VecS 'Float (Succ (Succ (Succ (Succ Zero))))
704testdata/Prelude.lc 341:29-341:30 'Int 708testdata/Prelude.lc 344:22-344:24 {a} -> a -> a -> a -> a -> 'VecS a (Succ (Succ (Succ (Succ Zero))))
705testdata/Prelude.lc 341:31-341:32 'Float 709testdata/Prelude.lc 344:25-344:26 V0
706testdata/Prelude.lc 341:31-341:32 'Int 710testdata/Prelude.lc 344:25-344:26 'Int
707testdata/Prelude.lc 341:16-344:12 'VecS 'Float (Succ (Succ (Succ (Succ Zero)))) 711testdata/Prelude.lc 344:27-344:28 V1
708testdata/Prelude.lc 341:35-341:37 {a} -> a -> a -> a -> a -> 'VecS a (Succ (Succ (Succ (Succ Zero)))) 712testdata/Prelude.lc 344:27-344:28 'Int
709testdata/Prelude.lc 341:38-341:39 V0 713testdata/Prelude.lc 344:29-344:30 V1
710testdata/Prelude.lc 341:38-341:39 'Int 714testdata/Prelude.lc 344:29-344:30 'Int
711testdata/Prelude.lc 341:16-344:12 V1 715testdata/Prelude.lc 344:31-344:32 'Float
712testdata/Prelude.lc 341:16-344:12 'VecScalar V4 'Float 716testdata/Prelude.lc 344:31-344:32 'Int
713testdata/Prelude.lc 341:16-341:74 'VecScalar V3 'Float 717testdata/Prelude.lc 344:16-347:12 'VecS 'Float (Succ (Succ (Succ (Succ Zero))))
714testdata/Prelude.lc 341:44-341:45 'Float 718testdata/Prelude.lc 344:35-344:37 {a} -> a -> a -> a -> a -> 'VecS a (Succ (Succ (Succ (Succ Zero))))
715testdata/Prelude.lc 341:44-341:45 'Int 719testdata/Prelude.lc 344:38-344:39 V0
716testdata/Prelude.lc 341:48-341:50 {a} -> a -> a -> a -> a -> 'VecS a (Succ (Succ (Succ (Succ Zero)))) 720testdata/Prelude.lc 344:38-344:39 'Int
717testdata/Prelude.lc 341:51-341:52 V0 721testdata/Prelude.lc 344:16-347:12 V1
718testdata/Prelude.lc 341:51-341:52 'Int 722testdata/Prelude.lc 344:16-347:12 'VecScalar V4 'Float
719testdata/Prelude.lc 341:16-341:74 V1 723testdata/Prelude.lc 344:16-344:74 'VecScalar V3 'Float
720testdata/Prelude.lc 341:54-341:56 V1 724testdata/Prelude.lc 344:44-344:45 'Float
721testdata/Prelude.lc 341:54-341:56 'Int 725testdata/Prelude.lc 344:44-344:45 'Int
722testdata/Prelude.lc 341:16-341:74 'MatVecScalarElem V3 726testdata/Prelude.lc 344:48-344:50 {a} -> a -> a -> a -> a -> 'VecS a (Succ (Succ (Succ (Succ Zero))))
723testdata/Prelude.lc 341:16-341:74 'Float 727testdata/Prelude.lc 344:51-344:52 V0
724testdata/Prelude.lc 341:16-344:12 V4 728testdata/Prelude.lc 344:51-344:52 'Int
725testdata/Prelude.lc 341:16-344:12 'Float 729testdata/Prelude.lc 344:16-344:74 V1
726testdata/Prelude.lc 341:60-341:61 'Float 730testdata/Prelude.lc 344:54-344:56 V1
727testdata/Prelude.lc 341:60-341:61 'Int 731testdata/Prelude.lc 344:54-344:56 'Int
728testdata/Prelude.lc 341:64-341:74 'VecS 'Float (Succ (Succ (Succ (Succ Zero)))) 732testdata/Prelude.lc 344:16-344:74 'MatVecScalarElem V3
729testdata/Prelude.lc 341:64-341:66 {a} -> a -> a -> a -> a -> 'VecS a (Succ (Succ (Succ (Succ Zero)))) 733testdata/Prelude.lc 344:16-344:74 'Float
730testdata/Prelude.lc 341:67-341:68 V0 734testdata/Prelude.lc 344:16-347:12 V4
731testdata/Prelude.lc 341:67-341:68 'Int 735testdata/Prelude.lc 344:16-347:12 'Float
732testdata/Prelude.lc 341:69-341:70 V1 736testdata/Prelude.lc 344:60-344:61 'Float
733testdata/Prelude.lc 341:69-341:70 'Int 737testdata/Prelude.lc 344:60-344:61 'Int
734testdata/Prelude.lc 341:71-341:72 V1 738testdata/Prelude.lc 344:64-344:74 'VecS 'Float (Succ (Succ (Succ (Succ Zero))))
735testdata/Prelude.lc 341:71-341:72 'Int 739testdata/Prelude.lc 344:64-344:66 {a} -> a -> a -> a -> a -> 'VecS a (Succ (Succ (Succ (Succ Zero))))
736testdata/Prelude.lc 341:73-341:74 'Float 740testdata/Prelude.lc 344:67-344:68 V0
737testdata/Prelude.lc 341:73-341:74 'Int 741testdata/Prelude.lc 344:67-344:68 'Int
738testdata/Prelude.lc 341:1-341:11 'Float -> 'Mat (Succ (Succ (Succ (Succ Zero)))) (Succ (Succ (Succ (Succ Zero)))) 'Float 742testdata/Prelude.lc 344:69-344:70 V1
739testdata/Prelude.lc 346:23-346:50 'Mat V3 V2 V1 743testdata/Prelude.lc 344:69-344:70 'Int
740testdata/Prelude.lc 346:23-346:33 'Mat V3 V2 V1 744testdata/Prelude.lc 344:71-344:72 V1
741testdata/Prelude.lc 346:23-346:33 'Float -> 'Mat (Succ (Succ (Succ (Succ Zero)))) (Succ (Succ (Succ (Succ Zero)))) 'Float 745testdata/Prelude.lc 344:71-344:72 'Int
742testdata/Prelude.lc 346:40-346:50 'Mat (Succ (Succ (Succ (Succ Zero)))) V1 'Float 746testdata/Prelude.lc 344:73-344:74 'Float
743testdata/Prelude.lc 346:40-346:50 'Float -> 'Mat (Succ (Succ (Succ (Succ Zero)))) (Succ (Succ (Succ (Succ Zero)))) 'Float 747testdata/Prelude.lc 344:73-344:74 'Int
744testdata/Prelude.lc 346:57-346:67 'Mat (Succ (Succ (Succ (Succ Zero)))) V0 'Float 748testdata/Prelude.lc 344:1-344:11 'Float -> 'Mat (Succ (Succ (Succ (Succ Zero)))) (Succ (Succ (Succ (Succ Zero)))) 'Float
745testdata/Prelude.lc 346:57-346:67 'Float -> 'Mat (Succ (Succ (Succ (Succ Zero)))) (Succ (Succ (Succ (Succ Zero)))) 'Float 749testdata/Prelude.lc 349:23-349:50 'Mat V3 V2 V1
746testdata/Prelude.lc 346:1-346:14 'Float -> 'Float -> 'Float -> 'Mat (Succ (Succ (Succ (Succ Zero)))) (Succ (Succ (Succ (Succ Zero)))) 'Float 750testdata/Prelude.lc 349:23-349:33 'Mat V3 V2 V1
747testdata/Prelude.lc 362:17-362:29 V2 751testdata/Prelude.lc 349:23-349:33 'Float -> 'Mat (Succ (Succ (Succ (Succ Zero)))) (Succ (Succ (Succ (Succ Zero)))) 'Float
748testdata/Prelude.lc 362:17-362:19 {a} -> a -> a -> a -> a -> 'VecS a (Succ (Succ (Succ (Succ Zero)))) 752testdata/Prelude.lc 349:40-349:50 'Mat (Succ (Succ (Succ (Succ Zero)))) V1 'Float
749testdata/Prelude.lc 362:26-362:29 V3 753testdata/Prelude.lc 349:40-349:50 'Float -> 'Mat (Succ (Succ (Succ (Succ Zero)))) (Succ (Succ (Succ (Succ Zero)))) 'Float
750testdata/Prelude.lc 362:26-362:29 'Float 754testdata/Prelude.lc 349:57-349:67 'Mat (Succ (Succ (Succ (Succ Zero)))) V0 'Float
751testdata/Prelude.lc 362:1-362:6 'Float -> 'VecS 'Float (Succ (Succ (Succ (Succ Zero)))) -> 'VecS 'Float (Succ (Succ (Succ (Succ Zero)))) 755testdata/Prelude.lc 349:57-349:67 'Float -> 'Mat (Succ (Succ (Succ (Succ Zero)))) (Succ (Succ (Succ (Succ Zero)))) 'Float
752testdata/Prelude.lc 365:1-365:7 {a} -> a->a -> a 756testdata/Prelude.lc 349:1-349:14 'Float -> 'Float -> 'Float -> 'Mat (Succ (Succ (Succ (Succ Zero)))) (Succ (Succ (Succ (Succ Zero)))) 'Float
753testdata/Prelude.lc 364:11-365:58 V0->V1 757testdata/Prelude.lc 365:17-365:29 V2
754testdata/Prelude.lc 364:11-365:58 V1 758testdata/Prelude.lc 365:17-365:19 {a} -> a -> a -> a -> a -> 'VecS a (Succ (Succ (Succ (Succ Zero))))
755testdata/Prelude.lc 364:11-364:36 Type 759testdata/Prelude.lc 365:26-365:29 V3
756testdata/Prelude.lc 364:11-364:16 Type 760testdata/Prelude.lc 365:26-365:29 'Float
757testdata/Prelude.lc 364:20-364:36 Type 761testdata/Prelude.lc 365:1-365:6 'Float -> 'VecS 'Float (Succ (Succ (Succ (Succ Zero)))) -> 'VecS 'Float (Succ (Succ (Succ (Succ Zero))))
758testdata/Prelude.lc 364:20-364:25 Type 762testdata/Prelude.lc 368:1-368:7 {a} -> a->a -> a
759testdata/Prelude.lc 364:29-364:36 Type 763testdata/Prelude.lc 367:11-368:58 V0->V1
760testdata/Prelude.lc 364:30-364:35 Type 764testdata/Prelude.lc 367:11-368:58 V1
761testdata/Prelude.lc 365:14-365:58 'Float -> 'Float -> 'List 'Float 765testdata/Prelude.lc 367:11-367:36 Type
762testdata/Prelude.lc 365:14-365:58 'Float -> 'List 'Float 766testdata/Prelude.lc 367:11-367:16 Type
763testdata/Prelude.lc 365:14-365:58 'List 'Float 767testdata/Prelude.lc 367:20-367:36 Type
764testdata/Prelude.lc 365:14-365:58 {a} -> 'Bool -> a -> a->a 768testdata/Prelude.lc 367:20-367:25 Type
765testdata/Prelude.lc 365:52-365:55 'List 'Float 769testdata/Prelude.lc 367:29-367:36 Type
766testdata/Prelude.lc 365:52-365:55 'Float 770testdata/Prelude.lc 367:30-367:35 Type
767testdata/Prelude.lc 365:1-365:7 'Float -> 'Float -> 'List 'Float 771testdata/Prelude.lc 368:14-368:58 'Float -> 'Float -> 'List 'Float
772testdata/Prelude.lc 368:14-368:58 'Float -> 'List 'Float
773testdata/Prelude.lc 368:14-368:58 'List 'Float
774testdata/Prelude.lc 368:14-368:58 {a} -> 'Bool -> a -> a->a
775testdata/Prelude.lc 368:52-368:55 'List 'Float
776testdata/Prelude.lc 368:52-368:55 'Float
777testdata/Prelude.lc 368:1-368:7 'Float -> 'Float -> 'List 'Float
778testdata/Prelude.lc 371:10-371:12 {a} -> a->a -> a
779testdata/Prelude.lc 370:9-372:29 V0->V1
780testdata/Prelude.lc 370:9-372:29 V1
781testdata/Prelude.lc 370:9-370:24 Type
782testdata/Prelude.lc 370:9-370:24 V1
783testdata/Prelude.lc 370:16-370:19 Type
784testdata/Prelude.lc 371:2-372:29 {a} -> 'List a -> 'Int->a
785testdata/Prelude.lc 371:2-372:29 'List V0 -> 'Int->V2
786testdata/Prelude.lc 371:2-372:29 'Int->V2
787testdata/Prelude.lc 371:2-372:29 V2
788testdata/Prelude.lc 371:13-372:29 V1 -> 'List V2 -> V2
789testdata/Prelude.lc 371:13-372:29 'List V2 -> V2
790testdata/Prelude.lc 371:13-372:29 V2
791testdata/Prelude.lc 372:28-372:29 V0
792testdata/Prelude.lc 372:28-372:29 'Int
793testdata/Prelude.lc 372:28-372:29 V3
794testdata/Prelude.lc 371:13-371:14 'Ordering
795testdata/Prelude.lc 371:13-371:14 'Int
796testdata/Prelude.lc 371:2-371:7 'List V2
797testdata/Prelude.lc 371:10-371:12 {a} -> 'List a -> 'Int->a
diff --git a/testdata/Spiral.out b/testdata/Spiral.out
index c408c586..628760c6 100644
--- a/testdata/Spiral.out
+++ b/testdata/Spiral.out
@@ -1 +1 @@
Pipeline {backend = OpenGL33, textures = [], samplers = [], targets = [RenderTarget {renderTargets = [TargetItem {targetSemantic = Depth, targetRef = Just (Framebuffer Depth)},TargetItem {targetSemantic = Color, targetRef = Just (Framebuffer Color)}]}], programs = [Program {programUniforms = fromList [("MVP",M44F),("Mouse",V2F)], programStreams = fromList [("o1",Parameter {name = "attribute_0", ty = V3F})], programInTextures = fromList [], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform mat4 MVP ;\nuniform vec2 Mouse ;\nin vec3 o1 ;\nsmooth out vec4 v0 ;\nvoid main() {\nv0 = vec4 ( 0.0,0.0,0.0,1.0 );\ngl_Position = ( ( MVP ) * ( vec4 ( ( exp ( ( ( ( Mouse ).x ) - ( 0.5 ) ) * ( 0.0 ) ) ) * ( sin ( 0.0 ) ),( exp ( ( ( ( Mouse ).x ) - ( 0.5 ) ) * ( 0.0 ) ) ) * ( cos ( 0.0 ) ),( ( Mouse ).y ) * ( 0.0 ),1.0 ) ) ) * ( vec4 ( 0.5,0.5,0.5,1.0 ) );\ngl_PointSize = 1.0;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nsmooth in vec4 v0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = v0;\n}\n"}], slots = [], streams = [StreamData {streamData = fromList [("attribute_0",VFloatArray [-5.0,0.0,0.0,-4.0,0.0,0.0,-4.0,0.0,0.0,-3.0,0.0,0.0,-3.0,0.0,0.0,-2.0,0.0,0.0,-2.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,2.0,0.0,0.0,2.0,0.0,0.0,3.0,0.0,0.0,3.0,0.0,0.0,4.0,0.0,0.0,4.0,0.0,0.0,5.0,0.0,0.0])], streamType = fromList [("attribute_0",V3F)], streamPrimitive = Lines, streamPrograms = [0]}], commands = [SetRenderTarget 0,ClearRenderTarget [ClearImage {imageSemantic = Depth, clearValue = VFloat 1000.0},ClearImage {imageSemantic = Color, clearValue = VV4F (V4 1.0 1.0 1.0 1.0)}],SetProgram 0,SetRasterContext (LineCtx 1.0 LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderStream 0]} \ No newline at end of file Pipeline {backend = OpenGL33, textures = [], samplers = [], targets = [RenderTarget {renderTargets = [TargetItem {targetSemantic = Depth, targetRef = Just (Framebuffer Depth)},TargetItem {targetSemantic = Color, targetRef = Just (Framebuffer Color)}]}], programs = [Program {programUniforms = fromList [("MVP",M44F),("Mouse",V2F)], programStreams = fromList [("o1",Parameter {name = "attribute_0", ty = V3F})], programInTextures = fromList [], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform mat4 MVP ;\nuniform vec2 Mouse ;\nin vec3 o1 ;\nsmooth out vec4 v0 ;\nvoid main() {\nv0 = vec4 ( ( o1 ).x,( o1 ).y,( o1 ).z,1.0 );\ngl_Position = ( ( MVP ) * ( vec4 ( ( exp ( ( ( ( Mouse ).x ) - ( 0.5 ) ) * ( ( o1 ).x ) ) ) * ( sin ( ( 0.9 ) * ( ( o1 ).x ) ) ),( exp ( ( ( ( Mouse ).x ) - ( 0.5 ) ) * ( ( o1 ).x ) ) ) * ( cos ( ( 0.9 ) * ( ( o1 ).x ) ) ),( ( Mouse ).y ) * ( ( 0.9 ) * ( ( o1 ).x ) ),1.0 ) ) ) * ( vec4 ( 0.5,0.5,0.5,1.0 ) );\ngl_PointSize = 1.0;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nsmooth in vec4 v0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = v0;\n}\n"}], slots = [], streams = [StreamData {streamData = fromList [("attribute_0",VFloatArray [-5.0,0.0,0.0,-4.0,0.0,0.0,-4.0,0.0,0.0,-3.0,0.0,0.0,-3.0,0.0,0.0,-2.0,0.0,0.0,-2.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,2.0,0.0,0.0,2.0,0.0,0.0,3.0,0.0,0.0,3.0,0.0,0.0,4.0,0.0,0.0,4.0,0.0,0.0,5.0,0.0,0.0])], streamType = fromList [("attribute_0",V3F)], streamPrimitive = Lines, streamPrograms = [0]}], commands = [SetRenderTarget 0,ClearRenderTarget [ClearImage {imageSemantic = Depth, clearValue = VFloat 1000.0},ClearImage {imageSemantic = Color, clearValue = VV4F (V4 1.0 1.0 1.0 1.0)}],SetProgram 0,SetRasterContext (LineCtx 1.0 LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderStream 0]} \ No newline at end of file
diff --git a/testdata/fetcharrays01.out b/testdata/fetcharrays01.out
index a9094b36..59dc40f0 100644
--- a/testdata/fetcharrays01.out
+++ b/testdata/fetcharrays01.out
@@ -1 +1 @@
Pipeline {backend = OpenGL33, textures = [], samplers = [], targets = [RenderTarget {renderTargets = [TargetItem {targetSemantic = Depth, targetRef = Just (Framebuffer Depth)},TargetItem {targetSemantic = Color, targetRef = Just (Framebuffer Color)}]}], programs = [Program {programUniforms = fromList [("MVP",M44F)], programStreams = fromList [("y1",Parameter {name = "attribute_0", ty = V3F}),("z1",Parameter {name = "attribute_1", ty = V3F})], programInTextures = fromList [], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform mat4 MVP ;\nin vec3 y1 ;\nin vec3 z1 ;\nsmooth out vec4 v0 ;\nvoid main() {\nv0 = vec4 ( 0.0,0.0,0.0,1.0 );\ngl_Position = ( ( MVP ) * ( vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( vec4 ( 0.5,0.5,0.5,1.0 ) );\ngl_PointSize = 1.0;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nsmooth in vec4 v0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = v0;\n}\n"}], slots = [], streams = [StreamData {streamData = fromList [("attribute_0",VFloatArray [1.0,1.0,1.0,-1.0,1.0,1.0,-1.0,1.0,-1.0,-1.0,1.0,-1.0,1.0,1.0,-1.0,1.0,1.0,1.0,1.0,-1.0,-1.0,-1.0,-1.0,-1.0,-1.0,-1.0,1.0,-1.0,-1.0,1.0,1.0,-1.0,1.0,1.0,-1.0,-1.0,1.0,-1.0,1.0,-1.0,-1.0,1.0,-1.0,1.0,1.0,-1.0,1.0,1.0,1.0,1.0,1.0,1.0,-1.0,1.0,1.0,1.0,-1.0,-1.0,1.0,-1.0,-1.0,-1.0,-1.0,-1.0,-1.0,-1.0,1.0,-1.0,-1.0,1.0,1.0,-1.0,-1.0,-1.0,1.0,-1.0,-1.0,-1.0,-1.0,1.0,-1.0,-1.0,1.0,-1.0,-1.0,1.0,1.0,-1.0,-1.0,1.0,1.0,-1.0,-1.0,1.0,-1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,-1.0,1.0,-1.0,-1.0]),("attribute_1",VFloatArray [0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0])], streamType = fromList [("attribute_0",V3F),("attribute_1",V3F)], streamPrimitive = Triangles, streamPrograms = [0]}], commands = [SetRenderTarget 0,ClearRenderTarget [ClearImage {imageSemantic = Depth, clearValue = VFloat 1000.0},ClearImage {imageSemantic = Color, clearValue = VV4F (V4 1.0 0.0 0.0 1.0)}],SetProgram 0,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderStream 0]} \ No newline at end of file Pipeline {backend = OpenGL33, textures = [], samplers = [], targets = [RenderTarget {renderTargets = [TargetItem {targetSemantic = Depth, targetRef = Just (Framebuffer Depth)},TargetItem {targetSemantic = Color, targetRef = Just (Framebuffer Color)}]}], programs = [Program {programUniforms = fromList [("MVP",M44F)], programStreams = fromList [("y1",Parameter {name = "attribute_0", ty = V3F}),("z1",Parameter {name = "attribute_1", ty = V3F})], programInTextures = fromList [], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform mat4 MVP ;\nin vec3 y1 ;\nin vec3 z1 ;\nsmooth out vec4 v0 ;\nvoid main() {\nv0 = vec4 ( ( y1 ).x,( y1 ).y,( y1 ).z,1.0 );\ngl_Position = ( ( MVP ) * ( vec4 ( ( y1 ).x,( y1 ).y,( y1 ).z,1.0 ) ) ) * ( vec4 ( 0.5,0.5,0.5,1.0 ) );\ngl_PointSize = 1.0;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nsmooth in vec4 v0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = v0;\n}\n"}], slots = [], streams = [StreamData {streamData = fromList [("attribute_0",VFloatArray [1.0,1.0,1.0,-1.0,1.0,1.0,-1.0,1.0,-1.0,-1.0,1.0,-1.0,1.0,1.0,-1.0,1.0,1.0,1.0,1.0,-1.0,-1.0,-1.0,-1.0,-1.0,-1.0,-1.0,1.0,-1.0,-1.0,1.0,1.0,-1.0,1.0,1.0,-1.0,-1.0,1.0,-1.0,1.0,-1.0,-1.0,1.0,-1.0,1.0,1.0,-1.0,1.0,1.0,1.0,1.0,1.0,1.0,-1.0,1.0,1.0,1.0,-1.0,-1.0,1.0,-1.0,-1.0,-1.0,-1.0,-1.0,-1.0,-1.0,1.0,-1.0,-1.0,1.0,1.0,-1.0,-1.0,-1.0,1.0,-1.0,-1.0,-1.0,-1.0,1.0,-1.0,-1.0,1.0,-1.0,-1.0,1.0,1.0,-1.0,-1.0,1.0,1.0,-1.0,-1.0,1.0,-1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,-1.0,1.0,-1.0,-1.0]),("attribute_1",VFloatArray [0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0])], streamType = fromList [("attribute_0",V3F),("attribute_1",V3F)], streamPrimitive = Triangles, streamPrograms = [0]}], commands = [SetRenderTarget 0,ClearRenderTarget [ClearImage {imageSemantic = Depth, clearValue = VFloat 1000.0},ClearImage {imageSemantic = Color, clearValue = VV4F (V4 1.0 0.0 0.0 1.0)}],SetProgram 0,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderStream 0]} \ No newline at end of file
diff --git a/testdata/gfx03.out b/testdata/gfx03.out
index 0137a292..6d0781f0 100644
--- a/testdata/gfx03.out
+++ b/testdata/gfx03.out
@@ -1 +1 @@
Pipeline {backend = OpenGL33, textures = [], samplers = [], targets = [RenderTarget {renderTargets = [TargetItem {targetSemantic = Depth, targetRef = Just (Framebuffer Depth)},TargetItem {targetSemantic = Color, targetRef = Just (Framebuffer Color)}]}], programs = [Program {programUniforms = fromList [("MVP2",M44F)], programStreams = fromList [("o1",Parameter {name = "position", ty = V3F})], programInTextures = fromList [], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform mat4 MVP2 ;\nin vec3 o1 ;\nvoid main() {\ngl_Position = ( MVP2 ) * ( vec4 ( 0.0,0.0,0.0,1.0 ) );\ngl_PointSize = 1.0;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nout vec4 f0 ;\nvoid main() {\nf0 = vec4 ( 0.0,0.4,0.0,1.0 );\n}\n"},Program {programUniforms = fromList [("MVP2",M44F)], programStreams = fromList [("l3",Parameter {name = "position", ty = V3F})], programInTextures = fromList [], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform mat4 MVP2 ;\nin vec3 l3 ;\nsmooth out vec4 v0 ;\nvoid main() {\nv0 = vec4 ( 0.0,0.0,0.0,1.0 );\ngl_Position = ( MVP2 ) * ( vec4 ( 0.0,0.0,0.0,1.0 ) );\ngl_PointSize = 1.0;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nsmooth in vec4 v0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( v0 ) + ( vec4 ( 1.0,1.4,1.0,0.6 ) );\n}\n"},Program {programUniforms = fromList [("MVP",M44F)], programStreams = fromList [("t5",Parameter {name = "position4", ty = V4F})], programInTextures = fromList [], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform mat4 MVP ;\nin vec4 t5 ;\nflat out vec4 v0 ;\nvoid main() {\nv0 = t5;\ngl_Position = ( MVP ) * ( t5 );\ngl_PointSize = 1.0;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nflat in vec4 v0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( v0 ) * ( vec4 ( 1.0,1.4,1.0,0.6 ) );\n}\n"}], slots = [Slot {slotName = "stream", slotStreams = fromList [("position",V3F)], slotUniforms = fromList [("MVP2",M44F)], slotPrimitive = Triangles, slotPrograms = [0,1]},Slot {slotName = "stream4", slotStreams = fromList [("position4",V4F)], slotUniforms = fromList [("MVP",M44F)], slotPrimitive = Triangles, slotPrograms = [2]}], streams = [], commands = [SetRenderTarget 0,ClearRenderTarget [ClearImage {imageSemantic = Depth, clearValue = VFloat 1000.0},ClearImage {imageSemantic = Color, clearValue = VV4F (V4 0.5 0.0 0.4 1.0)}],SetProgram 2,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less False,ColorOp (Blend {colorEqSrc = FuncAdd, alphaEqSrc = FuncAdd, colorFSrc = SrcAlpha, colorFDst = OneMinusSrcAlpha, alphaFSrc = SrcAlpha, alphaFDst = OneMinusSrcAlpha, color = V4 1.0 1.0 1.0 1.0}) (VV4B (V4 True True True True))]}),RenderSlot 1,SetProgram 1,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset FirstVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less False,ColorOp NoBlending (VV4B (V4 True True False False))]}),RenderSlot 0,SetProgram 0,SetRasterContext (TriangleCtx CullNone (PolygonLine 20.0) NoOffset FirstVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Always False,ColorOp NoBlending (VV4B (V4 True True False False))]}),RenderSlot 0]} \ No newline at end of file Pipeline {backend = OpenGL33, textures = [], samplers = [], targets = [RenderTarget {renderTargets = [TargetItem {targetSemantic = Depth, targetRef = Just (Framebuffer Depth)},TargetItem {targetSemantic = Color, targetRef = Just (Framebuffer Color)}]}], programs = [Program {programUniforms = fromList [("MVP2",M44F)], programStreams = fromList [("o1",Parameter {name = "position", ty = V3F})], programInTextures = fromList [], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform mat4 MVP2 ;\nin vec3 o1 ;\nvoid main() {\ngl_Position = ( MVP2 ) * ( vec4 ( ( o1 ).x,( o1 ).y,( o1 ).z,1.0 ) );\ngl_PointSize = 1.0;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nout vec4 f0 ;\nvoid main() {\nf0 = vec4 ( 0.0,0.4,0.0,1.0 );\n}\n"},Program {programUniforms = fromList [("MVP2",M44F)], programStreams = fromList [("r3",Parameter {name = "position", ty = V3F})], programInTextures = fromList [], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform mat4 MVP2 ;\nin vec3 r3 ;\nsmooth out vec4 v0 ;\nvoid main() {\nv0 = vec4 ( ( r3 ).x,( r3 ).y,( r3 ).z,1.0 );\ngl_Position = ( MVP2 ) * ( vec4 ( ( r3 ).x,( r3 ).y,( r3 ).z,1.0 ) );\ngl_PointSize = 1.0;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nsmooth in vec4 v0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( v0 ) + ( vec4 ( 1.0,1.4,1.0,0.6 ) );\n}\n"},Program {programUniforms = fromList [("MVP",M44F)], programStreams = fromList [("l6",Parameter {name = "position4", ty = V4F})], programInTextures = fromList [], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform mat4 MVP ;\nin vec4 l6 ;\nflat out vec4 v0 ;\nvoid main() {\nv0 = l6;\ngl_Position = ( MVP ) * ( l6 );\ngl_PointSize = 1.0;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nflat in vec4 v0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( v0 ) * ( vec4 ( 1.0,1.4,1.0,0.6 ) );\n}\n"}], slots = [Slot {slotName = "stream", slotStreams = fromList [("position",V3F)], slotUniforms = fromList [("MVP2",M44F)], slotPrimitive = Triangles, slotPrograms = [0,1]},Slot {slotName = "stream4", slotStreams = fromList [("position4",V4F)], slotUniforms = fromList [("MVP",M44F)], slotPrimitive = Triangles, slotPrograms = [2]}], streams = [], commands = [SetRenderTarget 0,ClearRenderTarget [ClearImage {imageSemantic = Depth, clearValue = VFloat 1000.0},ClearImage {imageSemantic = Color, clearValue = VV4F (V4 0.5 0.0 0.4 1.0)}],SetProgram 2,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less False,ColorOp (Blend {colorEqSrc = FuncAdd, alphaEqSrc = FuncAdd, colorFSrc = SrcAlpha, colorFDst = OneMinusSrcAlpha, alphaFSrc = SrcAlpha, alphaFDst = OneMinusSrcAlpha, color = V4 1.0 1.0 1.0 1.0}) (VV4B (V4 True True True True))]}),RenderSlot 1,SetProgram 1,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset FirstVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less False,ColorOp NoBlending (VV4B (V4 True True False False))]}),RenderSlot 0,SetProgram 0,SetRasterContext (TriangleCtx CullNone (PolygonLine 20.0) NoOffset FirstVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Always False,ColorOp NoBlending (VV4B (V4 True True False False))]}),RenderSlot 0]} \ No newline at end of file
diff --git a/testdata/gfx04.out b/testdata/gfx04.out
index ce7a54bf..a9fd7e30 100644
--- a/testdata/gfx04.out
+++ b/testdata/gfx04.out
@@ -1 +1 @@
Pipeline {backend = OpenGL33, textures = [], samplers = [], targets = [RenderTarget {renderTargets = [TargetItem {targetSemantic = Depth, targetRef = Just (Framebuffer Depth)},TargetItem {targetSemantic = Color, targetRef = Just (Framebuffer Color)}]}], programs = [Program {programUniforms = fromList [("MVP",M44F)], programStreams = fromList [("i2",Parameter {name = "position", ty = V3F}),("j2",Parameter {name = "normal", ty = V3F})], programInTextures = fromList [], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform mat4 MVP ;\nin vec3 i2 ;\nin vec3 j2 ;\nsmooth out vec4 v0 ;\nvoid main() {\nv0 = vec4 ( 0.0,0.0,0.0,1.0 );\ngl_Position = ( MVP ) * ( vec4 ( 0.0,0.0,0.0,1.0 ) );\ngl_PointSize = 1.0;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nsmooth in vec4 v0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( v0 ) * ( vec4 ( 1.0,1.4,1.0,0.6 ) );\n}\n"}], slots = [Slot {slotName = "stream", slotStreams = fromList [("normal",V3F),("position",V3F)], slotUniforms = fromList [("MVP",M44F)], slotPrimitive = Triangles, slotPrograms = [0]}], streams = [], commands = [SetRenderTarget 0,ClearRenderTarget [ClearImage {imageSemantic = Depth, clearValue = VFloat 1000.0},ClearImage {imageSemantic = Color, clearValue = VV4F (V4 0.5 0.0 0.4 1.0)}],SetProgram 0,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less False,ColorOp (Blend {colorEqSrc = FuncAdd, alphaEqSrc = FuncAdd, colorFSrc = SrcAlpha, colorFDst = OneMinusSrcAlpha, alphaFSrc = SrcAlpha, alphaFDst = OneMinusSrcAlpha, color = V4 1.0 1.0 1.0 1.0}) (VV4B (V4 True True True True))]}),RenderSlot 0]} \ No newline at end of file Pipeline {backend = OpenGL33, textures = [], samplers = [], targets = [RenderTarget {renderTargets = [TargetItem {targetSemantic = Depth, targetRef = Just (Framebuffer Depth)},TargetItem {targetSemantic = Color, targetRef = Just (Framebuffer Color)}]}], programs = [Program {programUniforms = fromList [("MVP",M44F)], programStreams = fromList [("i2",Parameter {name = "position", ty = V3F}),("j2",Parameter {name = "normal", ty = V3F})], programInTextures = fromList [], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform mat4 MVP ;\nin vec3 i2 ;\nin vec3 j2 ;\nsmooth out vec4 v0 ;\nvoid main() {\nv0 = vec4 ( ( j2 ).x,( j2 ).y,( j2 ).z,1.0 );\ngl_Position = ( MVP ) * ( vec4 ( ( i2 ).x,( i2 ).y,( i2 ).z,1.0 ) );\ngl_PointSize = 1.0;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nsmooth in vec4 v0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( v0 ) * ( vec4 ( 1.0,1.4,1.0,0.6 ) );\n}\n"}], slots = [Slot {slotName = "stream", slotStreams = fromList [("normal",V3F),("position",V3F)], slotUniforms = fromList [("MVP",M44F)], slotPrimitive = Triangles, slotPrograms = [0]}], streams = [], commands = [SetRenderTarget 0,ClearRenderTarget [ClearImage {imageSemantic = Depth, clearValue = VFloat 1000.0},ClearImage {imageSemantic = Color, clearValue = VV4F (V4 0.5 0.0 0.4 1.0)}],SetProgram 0,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less False,ColorOp (Blend {colorEqSrc = FuncAdd, alphaEqSrc = FuncAdd, colorFSrc = SrcAlpha, colorFDst = OneMinusSrcAlpha, alphaFSrc = SrcAlpha, alphaFDst = OneMinusSrcAlpha, color = V4 1.0 1.0 1.0 1.0}) (VV4B (V4 True True True True))]}),RenderSlot 0]} \ No newline at end of file
diff --git a/testdata/gfx05.out b/testdata/gfx05.out
index 78f9c04a..b66233f8 100644
--- a/testdata/gfx05.out
+++ b/testdata/gfx05.out
@@ -1 +1 @@
Pipeline {backend = OpenGL33, textures = [TextureDescriptor {textureType = Texture2D (FloatT Red) 1, textureSize = VV2U (V2 1024 768), textureSemantic = Depth, textureSampler = SamplerDescriptor {samplerWrapS = Repeat, samplerWrapT = Nothing, samplerWrapR = Nothing, samplerMinFilter = Linear, samplerMagFilter = Linear, samplerBorderColor = VV4F (V4 0.0 0.0 0.0 1.0), samplerMinLod = Nothing, samplerMaxLod = Nothing, samplerLodBias = 0.0, samplerCompareFunc = Nothing}, textureBaseLevel = 0, textureMaxLevel = 0},TextureDescriptor {textureType = Texture2D (FloatT RGBA) 1, textureSize = VV2U (V2 1024 768), textureSemantic = Color, textureSampler = SamplerDescriptor {samplerWrapS = Repeat, samplerWrapT = Nothing, samplerWrapR = Nothing, samplerMinFilter = Linear, samplerMagFilter = Linear, samplerBorderColor = VV4F (V4 0.0 0.0 0.0 1.0), samplerMinLod = Nothing, samplerMaxLod = Nothing, samplerLodBias = 0.0, samplerCompareFunc = Nothing}, textureBaseLevel = 0, textureMaxLevel = 0}], samplers = [], targets = [RenderTarget {renderTargets = [TargetItem {targetSemantic = Depth, targetRef = Just (Framebuffer Depth)},TargetItem {targetSemantic = Color, targetRef = Just (Framebuffer Color)}]},RenderTarget {renderTargets = [TargetItem {targetSemantic = Depth, targetRef = Just (TextureImage 0 0 Nothing)},TargetItem {targetSemantic = Color, targetRef = Just (TextureImage 1 0 Nothing)}]}], programs = [Program {programUniforms = fromList [("MVP2",M44F)], programStreams = fromList [("o1",Parameter {name = "position", ty = V3F})], programInTextures = fromList [], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform mat4 MVP2 ;\nin vec3 o1 ;\nvoid main() {\ngl_Position = ( MVP2 ) * ( vec4 ( 0.0,0.0,0.0,1.0 ) );\ngl_PointSize = 1.0;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nout vec4 f0 ;\nvoid main() {\nf0 = vec4 ( 0.0,0.4,0.0,1.0 );\n}\n"},Program {programUniforms = fromList [("MVP2",M44F)], programStreams = fromList [("l3",Parameter {name = "position", ty = V3F})], programInTextures = fromList [], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform mat4 MVP2 ;\nin vec3 l3 ;\nsmooth out vec4 v0 ;\nvoid main() {\nv0 = vec4 ( 0.0,0.0,0.0,1.0 );\ngl_Position = ( MVP2 ) * ( vec4 ( 0.0,0.0,0.0,1.0 ) );\ngl_PointSize = 1.0;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nsmooth in vec4 v0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( v0 ) + ( vec4 ( 1.0,1.4,1.0,0.6 ) );\n}\n"},Program {programUniforms = fromList [("MVP2",M44F)], programStreams = fromList [("r6",Parameter {name = "position", ty = V3F})], programInTextures = fromList [], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform mat4 MVP2 ;\nin vec3 r6 ;\nvoid main() {\ngl_Position = ( MVP2 ) * ( vec4 ( 0.0,0.0,0.0,1.0 ) );\ngl_PointSize = 1.0;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nout vec4 f0 ;\nvoid main() {\nf0 = vec4 ( 0.0,0.4,0.0,1.0 );\n}\n"},Program {programUniforms = fromList [("MVP",M44F)], programStreams = fromList [("s8",Parameter {name = "position4", ty = V4F}),("t8",Parameter {name = "vertexUV", ty = V2F})], programInTextures = fromList [("d5",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform mat4 MVP ;\nin vec4 s8 ;\nin vec2 t8 ;\nsmooth out vec2 v0 ;\nvoid main() {\nv0 = t8;\ngl_Position = ( MVP ) * ( s8 );\ngl_PointSize = 1.0;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D d5 ;\nsmooth in vec2 v0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( texture2D ( d5,( v0 ).xy ) ) * ( 0.7 );\n}\n"}], slots = [Slot {slotName = "stream", slotStreams = fromList [("position",V3F)], slotUniforms = fromList [("MVP2",M44F)], slotPrimitive = Triangles, slotPrograms = [0,1,2]},Slot {slotName = "stream4", slotStreams = fromList [("position4",V4F),("vertexUV",V2F)], slotUniforms = fromList [("MVP",M44F)], slotPrimitive = Triangles, slotPrograms = [3]}], streams = [], commands = [SetRenderTarget 1,ClearRenderTarget [ClearImage {imageSemantic = Depth, clearValue = VFloat 1000.0},ClearImage {imageSemantic = Color, clearValue = VV4F (V4 0.1 0.0 0.3 1.0)}],SetProgram 2,SetRasterContext (TriangleCtx CullNone (PolygonLine 20.0) NoOffset FirstVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Always False,ColorOp NoBlending (VV4B (V4 True True False False))]}),RenderSlot 0,SetRenderTarget 0,ClearRenderTarget [ClearImage {imageSemantic = Depth, clearValue = VFloat 1000.0},ClearImage {imageSemantic = Color, clearValue = VV4F (V4 0.5 0.0 0.4 1.0)}],SetProgram 3,SetTexture 0 1,SetSamplerUniform "d5" 0,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less False,ColorOp (Blend {colorEqSrc = FuncAdd, alphaEqSrc = FuncAdd, colorFSrc = SrcAlpha, colorFDst = OneMinusSrcAlpha, alphaFSrc = SrcAlpha, alphaFDst = OneMinusSrcAlpha, color = V4 1.0 1.0 1.0 1.0}) (VV4B (V4 True True True True))]}),RenderSlot 1,SetProgram 1,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset FirstVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less False,ColorOp NoBlending (VV4B (V4 True True False False))]}),RenderSlot 0,SetProgram 0,SetRasterContext (TriangleCtx CullNone (PolygonLine 20.0) NoOffset FirstVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Always False,ColorOp NoBlending (VV4B (V4 True True False False))]}),RenderSlot 0]} \ No newline at end of file Pipeline {backend = OpenGL33, textures = [TextureDescriptor {textureType = Texture2D (FloatT Red) 1, textureSize = VV2U (V2 1024 768), textureSemantic = Depth, textureSampler = SamplerDescriptor {samplerWrapS = Repeat, samplerWrapT = Nothing, samplerWrapR = Nothing, samplerMinFilter = Linear, samplerMagFilter = Linear, samplerBorderColor = VV4F (V4 0.0 0.0 0.0 1.0), samplerMinLod = Nothing, samplerMaxLod = Nothing, samplerLodBias = 0.0, samplerCompareFunc = Nothing}, textureBaseLevel = 0, textureMaxLevel = 0},TextureDescriptor {textureType = Texture2D (FloatT RGBA) 1, textureSize = VV2U (V2 1024 768), textureSemantic = Color, textureSampler = SamplerDescriptor {samplerWrapS = Repeat, samplerWrapT = Nothing, samplerWrapR = Nothing, samplerMinFilter = Linear, samplerMagFilter = Linear, samplerBorderColor = VV4F (V4 0.0 0.0 0.0 1.0), samplerMinLod = Nothing, samplerMaxLod = Nothing, samplerLodBias = 0.0, samplerCompareFunc = Nothing}, textureBaseLevel = 0, textureMaxLevel = 0}], samplers = [], targets = [RenderTarget {renderTargets = [TargetItem {targetSemantic = Depth, targetRef = Just (Framebuffer Depth)},TargetItem {targetSemantic = Color, targetRef = Just (Framebuffer Color)}]},RenderTarget {renderTargets = [TargetItem {targetSemantic = Depth, targetRef = Just (TextureImage 0 0 Nothing)},TargetItem {targetSemantic = Color, targetRef = Just (TextureImage 1 0 Nothing)}]}], programs = [Program {programUniforms = fromList [("MVP2",M44F)], programStreams = fromList [("o1",Parameter {name = "position", ty = V3F})], programInTextures = fromList [], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform mat4 MVP2 ;\nin vec3 o1 ;\nvoid main() {\ngl_Position = ( MVP2 ) * ( vec4 ( ( o1 ).x,( o1 ).y,( o1 ).z,1.0 ) );\ngl_PointSize = 1.0;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nout vec4 f0 ;\nvoid main() {\nf0 = vec4 ( 0.0,0.4,0.0,1.0 );\n}\n"},Program {programUniforms = fromList [("MVP2",M44F)], programStreams = fromList [("r3",Parameter {name = "position", ty = V3F})], programInTextures = fromList [], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform mat4 MVP2 ;\nin vec3 r3 ;\nsmooth out vec4 v0 ;\nvoid main() {\nv0 = vec4 ( ( r3 ).x,( r3 ).y,( r3 ).z,1.0 );\ngl_Position = ( MVP2 ) * ( vec4 ( ( r3 ).x,( r3 ).y,( r3 ).z,1.0 ) );\ngl_PointSize = 1.0;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nsmooth in vec4 v0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( v0 ) + ( vec4 ( 1.0,1.4,1.0,0.6 ) );\n}\n"},Program {programUniforms = fromList [("MVP2",M44F)], programStreams = fromList [("j7",Parameter {name = "position", ty = V3F})], programInTextures = fromList [], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform mat4 MVP2 ;\nin vec3 j7 ;\nvoid main() {\ngl_Position = ( MVP2 ) * ( vec4 ( ( j7 ).x,( j7 ).y,( j7 ).z,1.0 ) );\ngl_PointSize = 1.0;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nout vec4 f0 ;\nvoid main() {\nf0 = vec4 ( 0.0,0.4,0.0,1.0 );\n}\n"},Program {programUniforms = fromList [("MVP",M44F)], programStreams = fromList [("q9",Parameter {name = "position4", ty = V4F}),("r9",Parameter {name = "vertexUV", ty = V2F})], programInTextures = fromList [("v5",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform mat4 MVP ;\nin vec4 q9 ;\nin vec2 r9 ;\nsmooth out vec2 v0 ;\nvoid main() {\nv0 = r9;\ngl_Position = ( MVP ) * ( q9 );\ngl_PointSize = 1.0;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D v5 ;\nsmooth in vec2 v0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( texture2D ( v5,( v0 ).xy ) ) * ( 0.7 );\n}\n"}], slots = [Slot {slotName = "stream", slotStreams = fromList [("position",V3F)], slotUniforms = fromList [("MVP2",M44F)], slotPrimitive = Triangles, slotPrograms = [0,1,2]},Slot {slotName = "stream4", slotStreams = fromList [("position4",V4F),("vertexUV",V2F)], slotUniforms = fromList [("MVP",M44F)], slotPrimitive = Triangles, slotPrograms = [3]}], streams = [], commands = [SetRenderTarget 1,ClearRenderTarget [ClearImage {imageSemantic = Depth, clearValue = VFloat 1000.0},ClearImage {imageSemantic = Color, clearValue = VV4F (V4 0.1 0.0 0.3 1.0)}],SetProgram 2,SetRasterContext (TriangleCtx CullNone (PolygonLine 20.0) NoOffset FirstVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Always False,ColorOp NoBlending (VV4B (V4 True True False False))]}),RenderSlot 0,SetRenderTarget 0,ClearRenderTarget [ClearImage {imageSemantic = Depth, clearValue = VFloat 1000.0},ClearImage {imageSemantic = Color, clearValue = VV4F (V4 0.5 0.0 0.4 1.0)}],SetProgram 3,SetTexture 0 1,SetSamplerUniform "v5" 0,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less False,ColorOp (Blend {colorEqSrc = FuncAdd, alphaEqSrc = FuncAdd, colorFSrc = SrcAlpha, colorFDst = OneMinusSrcAlpha, alphaFSrc = SrcAlpha, alphaFDst = OneMinusSrcAlpha, color = V4 1.0 1.0 1.0 1.0}) (VV4B (V4 True True True True))]}),RenderSlot 1,SetProgram 1,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset FirstVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less False,ColorOp NoBlending (VV4B (V4 True True False False))]}),RenderSlot 0,SetProgram 0,SetRasterContext (TriangleCtx CullNone (PolygonLine 20.0) NoOffset FirstVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Always False,ColorOp NoBlending (VV4B (V4 True True False False))]}),RenderSlot 0]} \ No newline at end of file
diff --git a/testdata/line01.out b/testdata/line01.out
index 9f378460..859f18eb 100644
--- a/testdata/line01.out
+++ b/testdata/line01.out
@@ -1 +1 @@
Pipeline {backend = OpenGL33, textures = [], samplers = [], targets = [RenderTarget {renderTargets = [TargetItem {targetSemantic = Depth, targetRef = Just (Framebuffer Depth)},TargetItem {targetSemantic = Color, targetRef = Just (Framebuffer Color)}]}], programs = [Program {programUniforms = fromList [("MVP",M44F)], programStreams = fromList [("o1",Parameter {name = "attribute_0", ty = V3F})], programInTextures = fromList [], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform mat4 MVP ;\nin vec3 o1 ;\nsmooth out vec4 v0 ;\nvoid main() {\nv0 = vec4 ( 0.0,0.0,0.0,1.0 );\ngl_Position = ( ( MVP ) * ( vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( vec4 ( 0.5,0.5,0.5,1.0 ) );\ngl_PointSize = 1.0;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nsmooth in vec4 v0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = v0;\n}\n"}], slots = [], streams = [StreamData {streamData = fromList [("attribute_0",VFloatArray [-2.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,2.0,0.0,0.0,2.0,0.0,0.0,3.0,0.0,0.0])], streamType = fromList [("attribute_0",V3F)], streamPrimitive = Lines, streamPrograms = [0]}], commands = [SetRenderTarget 0,ClearRenderTarget [ClearImage {imageSemantic = Depth, clearValue = VFloat 1000.0},ClearImage {imageSemantic = Color, clearValue = VV4F (V4 0.0 0.0 0.5 1.0)}],SetProgram 0,SetRasterContext (LineCtx 1.0 LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderStream 0]} \ No newline at end of file Pipeline {backend = OpenGL33, textures = [], samplers = [], targets = [RenderTarget {renderTargets = [TargetItem {targetSemantic = Depth, targetRef = Just (Framebuffer Depth)},TargetItem {targetSemantic = Color, targetRef = Just (Framebuffer Color)}]}], programs = [Program {programUniforms = fromList [("MVP",M44F)], programStreams = fromList [("o1",Parameter {name = "attribute_0", ty = V3F})], programInTextures = fromList [], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform mat4 MVP ;\nin vec3 o1 ;\nsmooth out vec4 v0 ;\nvoid main() {\nv0 = vec4 ( ( o1 ).x,( o1 ).y,( o1 ).z,1.0 );\ngl_Position = ( ( MVP ) * ( vec4 ( ( o1 ).x,( o1 ).y,( o1 ).z,1.0 ) ) ) * ( vec4 ( 0.5,0.5,0.5,1.0 ) );\ngl_PointSize = 1.0;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nsmooth in vec4 v0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = v0;\n}\n"}], slots = [], streams = [StreamData {streamData = fromList [("attribute_0",VFloatArray [-2.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,2.0,0.0,0.0,2.0,0.0,0.0,3.0,0.0,0.0])], streamType = fromList [("attribute_0",V3F)], streamPrimitive = Lines, streamPrograms = [0]}], commands = [SetRenderTarget 0,ClearRenderTarget [ClearImage {imageSemantic = Depth, clearValue = VFloat 1000.0},ClearImage {imageSemantic = Color, clearValue = VV4F (V4 0.0 0.0 0.5 1.0)}],SetProgram 0,SetRasterContext (LineCtx 1.0 LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderStream 0]} \ No newline at end of file
diff --git a/testdata/point01.out b/testdata/point01.out
index 53e3962a..76b02397 100644
--- a/testdata/point01.out
+++ b/testdata/point01.out
@@ -1 +1 @@
Pipeline {backend = OpenGL33, textures = [], samplers = [], targets = [RenderTarget {renderTargets = [TargetItem {targetSemantic = Depth, targetRef = Just (Framebuffer Depth)},TargetItem {targetSemantic = Color, targetRef = Just (Framebuffer Color)}]}], programs = [Program {programUniforms = fromList [("MVP",M44F)], programStreams = fromList [("y1",Parameter {name = "attribute_0", ty = V3F}),("z1",Parameter {name = "attribute_1", ty = V4F})], programInTextures = fromList [], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform mat4 MVP ;\nin vec3 y1 ;\nin vec4 z1 ;\nsmooth out vec4 v0 ;\nvoid main() {\nv0 = z1;\ngl_Position = ( ( MVP ) * ( vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( vec4 ( 0.5,0.5,0.5,1.0 ) );\ngl_PointSize = 30.0;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nsmooth in vec4 v0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = v0;\n}\n"}], slots = [], streams = [StreamData {streamData = fromList [("attribute_0",VFloatArray [-2.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,2.0,0.0,0.0,2.0,0.0,0.0,3.0,0.0,0.0]),("attribute_1",VFloatArray [1.0,0.0,0.0,1.0,1.0,0.0,0.0,1.0,1.0,0.0,0.0,1.0,1.0,0.0,0.0,1.0,1.0,0.0,0.0,1.0,1.0,0.0,0.0,1.0,1.0,0.0,0.0,1.0,1.0,0.0,0.0,1.0,1.0,0.0,0.0,1.0,1.0,0.0,0.0,1.0])], streamType = fromList [("attribute_0",V3F),("attribute_1",V4F)], streamPrimitive = Points, streamPrograms = [0]}], commands = [SetRenderTarget 0,ClearRenderTarget [ClearImage {imageSemantic = Depth, clearValue = VFloat 1000.0},ClearImage {imageSemantic = Color, clearValue = VV4F (V4 0.0 0.0 0.5 1.0)}],SetProgram 0,SetRasterContext (PointCtx ProgramPointSize 1.0 LowerLeft),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderStream 0]} \ No newline at end of file Pipeline {backend = OpenGL33, textures = [], samplers = [], targets = [RenderTarget {renderTargets = [TargetItem {targetSemantic = Depth, targetRef = Just (Framebuffer Depth)},TargetItem {targetSemantic = Color, targetRef = Just (Framebuffer Color)}]}], programs = [Program {programUniforms = fromList [("MVP",M44F)], programStreams = fromList [("y1",Parameter {name = "attribute_0", ty = V3F}),("z1",Parameter {name = "attribute_1", ty = V4F})], programInTextures = fromList [], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform mat4 MVP ;\nin vec3 y1 ;\nin vec4 z1 ;\nsmooth out vec4 v0 ;\nvoid main() {\nv0 = z1;\ngl_Position = ( ( MVP ) * ( vec4 ( ( y1 ).x,( y1 ).y,( y1 ).z,1.0 ) ) ) * ( vec4 ( 0.5,0.5,0.5,1.0 ) );\ngl_PointSize = 30.0;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nsmooth in vec4 v0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = v0;\n}\n"}], slots = [], streams = [StreamData {streamData = fromList [("attribute_0",VFloatArray [-2.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,2.0,0.0,0.0,2.0,0.0,0.0,3.0,0.0,0.0]),("attribute_1",VFloatArray [1.0,0.0,0.0,1.0,1.0,0.0,0.0,1.0,1.0,0.0,0.0,1.0,1.0,0.0,0.0,1.0,1.0,0.0,0.0,1.0,1.0,0.0,0.0,1.0,1.0,0.0,0.0,1.0,1.0,0.0,0.0,1.0,1.0,0.0,0.0,1.0,1.0,0.0,0.0,1.0])], streamType = fromList [("attribute_0",V3F),("attribute_1",V4F)], streamPrimitive = Points, streamPrograms = [0]}], commands = [SetRenderTarget 0,ClearRenderTarget [ClearImage {imageSemantic = Depth, clearValue = VFloat 1000.0},ClearImage {imageSemantic = Color, clearValue = VV4F (V4 0.0 0.0 0.5 1.0)}],SetProgram 0,SetRasterContext (PointCtx ProgramPointSize 1.0 LowerLeft),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderStream 0]} \ No newline at end of file
diff --git a/testdata/recursivetexture01.out b/testdata/recursivetexture01.out
index a7440030..ec408fe5 100644
--- a/testdata/recursivetexture01.out
+++ b/testdata/recursivetexture01.out
@@ -1 +1 @@
Pipeline {backend = OpenGL33, textures = [TextureDescriptor {textureType = Texture2D (FloatT Red) 1, textureSize = VV2U (V2 256 256), textureSemantic = Depth, textureSampler = SamplerDescriptor {samplerWrapS = Repeat, samplerWrapT = Nothing, samplerWrapR = Nothing, samplerMinFilter = Linear, samplerMagFilter = Linear, samplerBorderColor = VV4F (V4 0.0 0.0 0.0 1.0), samplerMinLod = Nothing, samplerMaxLod = Nothing, samplerLodBias = 0.0, samplerCompareFunc = Nothing}, textureBaseLevel = 0, textureMaxLevel = 0},TextureDescriptor {textureType = Texture2D (FloatT RGBA) 1, textureSize = VV2U (V2 256 256), textureSemantic = Color, textureSampler = SamplerDescriptor {samplerWrapS = Repeat, samplerWrapT = Nothing, samplerWrapR = Nothing, samplerMinFilter = Linear, samplerMagFilter = Linear, samplerBorderColor = VV4F (V4 0.0 0.0 0.0 1.0), samplerMinLod = Nothing, samplerMaxLod = Nothing, samplerLodBias = 0.0, samplerCompareFunc = Nothing}, textureBaseLevel = 0, textureMaxLevel = 0},TextureDescriptor {textureType = Texture2D (FloatT Red) 1, textureSize = VV2U (V2 256 256), textureSemantic = Depth, textureSampler = SamplerDescriptor {samplerWrapS = Repeat, samplerWrapT = Nothing, samplerWrapR = Nothing, samplerMinFilter = Linear, samplerMagFilter = Linear, samplerBorderColor = VV4F (V4 0.0 0.0 0.0 1.0), samplerMinLod = Nothing, samplerMaxLod = Nothing, samplerLodBias = 0.0, samplerCompareFunc = Nothing}, textureBaseLevel = 0, textureMaxLevel = 0},TextureDescriptor {textureType = Texture2D (FloatT RGBA) 1, textureSize = VV2U (V2 256 256), textureSemantic = Color, textureSampler = SamplerDescriptor {samplerWrapS = Repeat, samplerWrapT = Nothing, samplerWrapR = Nothing, samplerMinFilter = Linear, samplerMagFilter = Linear, samplerBorderColor = VV4F (V4 0.0 0.0 0.0 1.0), samplerMinLod = Nothing, samplerMaxLod = Nothing, samplerLodBias = 0.0, samplerCompareFunc = Nothing}, textureBaseLevel = 0, textureMaxLevel = 0},TextureDescriptor {textureType = Texture2D (FloatT Red) 1, textureSize = VV2U (V2 256 256), textureSemantic = Depth, textureSampler = SamplerDescriptor {samplerWrapS = Repeat, samplerWrapT = Nothing, samplerWrapR = Nothing, samplerMinFilter = Linear, samplerMagFilter = Linear, samplerBorderColor = VV4F (V4 0.0 0.0 0.0 1.0), samplerMinLod = Nothing, samplerMaxLod = Nothing, samplerLodBias = 0.0, samplerCompareFunc = Nothing}, textureBaseLevel = 0, textureMaxLevel = 0},TextureDescriptor {textureType = Texture2D (FloatT RGBA) 1, textureSize = VV2U (V2 256 256), textureSemantic = Color, textureSampler = SamplerDescriptor {samplerWrapS = Repeat, samplerWrapT = Nothing, samplerWrapR = Nothing, samplerMinFilter = Linear, samplerMagFilter = Linear, samplerBorderColor = VV4F (V4 0.0 0.0 0.0 1.0), samplerMinLod = Nothing, samplerMaxLod = Nothing, samplerLodBias = 0.0, samplerCompareFunc = Nothing}, textureBaseLevel = 0, textureMaxLevel = 0},TextureDescriptor {textureType = Texture2D (FloatT Red) 1, textureSize = VV2U (V2 256 256), textureSemantic = Depth, textureSampler = SamplerDescriptor {samplerWrapS = Repeat, samplerWrapT = Nothing, samplerWrapR = Nothing, samplerMinFilter = Linear, samplerMagFilter = Linear, samplerBorderColor = VV4F (V4 0.0 0.0 0.0 1.0), samplerMinLod = Nothing, samplerMaxLod = Nothing, samplerLodBias = 0.0, samplerCompareFunc = Nothing}, textureBaseLevel = 0, textureMaxLevel = 0},TextureDescriptor {textureType = Texture2D (FloatT RGBA) 1, textureSize = VV2U (V2 256 256), textureSemantic = Color, textureSampler = SamplerDescriptor {samplerWrapS = Repeat, samplerWrapT = Nothing, samplerWrapR = Nothing, samplerMinFilter = Linear, samplerMagFilter = Linear, samplerBorderColor = VV4F (V4 0.0 0.0 0.0 1.0), samplerMinLod = Nothing, samplerMaxLod = Nothing, samplerLodBias = 0.0, samplerCompareFunc = Nothing}, textureBaseLevel = 0, textureMaxLevel = 0},TextureDescriptor {textureType = Texture2D (FloatT Red) 1, textureSize = VV2U (V2 256 256), textureSemantic = Depth, textureSampler = SamplerDescriptor {samplerWrapS = Repeat, samplerWrapT = Nothing, samplerWrapR = Nothing, samplerMinFilter = Linear, samplerMagFilter = Linear, samplerBorderColor = VV4F (V4 0.0 0.0 0.0 1.0), samplerMinLod = Nothing, samplerMaxLod = Nothing, samplerLodBias = 0.0, samplerCompareFunc = Nothing}, textureBaseLevel = 0, textureMaxLevel = 0},TextureDescriptor {textureType = Texture2D (FloatT RGBA) 1, textureSize = VV2U (V2 256 256), textureSemantic = Color, textureSampler = SamplerDescriptor {samplerWrapS = Repeat, samplerWrapT = Nothing, samplerWrapR = Nothing, samplerMinFilter = Linear, samplerMagFilter = Linear, samplerBorderColor = VV4F (V4 0.0 0.0 0.0 1.0), samplerMinLod = Nothing, samplerMaxLod = Nothing, samplerLodBias = 0.0, samplerCompareFunc = Nothing}, textureBaseLevel = 0, textureMaxLevel = 0},TextureDescriptor {textureType = Texture2D (FloatT Red) 1, textureSize = VV2U (V2 256 256), textureSemantic = Depth, textureSampler = SamplerDescriptor {samplerWrapS = Repeat, samplerWrapT = Nothing, samplerWrapR = Nothing, samplerMinFilter = Linear, samplerMagFilter = Linear, samplerBorderColor = VV4F (V4 0.0 0.0 0.0 1.0), samplerMinLod = Nothing, samplerMaxLod = Nothing, samplerLodBias = 0.0, samplerCompareFunc = Nothing}, textureBaseLevel = 0, textureMaxLevel = 0},TextureDescriptor {textureType = Texture2D (FloatT RGBA) 1, textureSize = VV2U (V2 256 256), textureSemantic = Color, textureSampler = SamplerDescriptor {samplerWrapS = Repeat, samplerWrapT = Nothing, samplerWrapR = Nothing, samplerMinFilter = Linear, samplerMagFilter = Linear, samplerBorderColor = VV4F (V4 0.0 0.0 0.0 1.0), samplerMinLod = Nothing, samplerMaxLod = Nothing, samplerLodBias = 0.0, samplerCompareFunc = Nothing}, textureBaseLevel = 0, textureMaxLevel = 0},TextureDescriptor {textureType = Texture2D (FloatT Red) 1, textureSize = VV2U (V2 256 256), textureSemantic = Depth, textureSampler = SamplerDescriptor {samplerWrapS = Repeat, samplerWrapT = Nothing, samplerWrapR = Nothing, samplerMinFilter = Linear, samplerMagFilter = Linear, samplerBorderColor = VV4F (V4 0.0 0.0 0.0 1.0), samplerMinLod = Nothing, samplerMaxLod = Nothing, samplerLodBias = 0.0, samplerCompareFunc = Nothing}, textureBaseLevel = 0, textureMaxLevel = 0},TextureDescriptor {textureType = Texture2D (FloatT RGBA) 1, textureSize = VV2U (V2 256 256), textureSemantic = Color, textureSampler = SamplerDescriptor {samplerWrapS = Repeat, samplerWrapT = Nothing, samplerWrapR = Nothing, samplerMinFilter = Linear, samplerMagFilter = Linear, samplerBorderColor = VV4F (V4 0.0 0.0 0.0 1.0), samplerMinLod = Nothing, samplerMaxLod = Nothing, samplerLodBias = 0.0, samplerCompareFunc = Nothing}, textureBaseLevel = 0, textureMaxLevel = 0},TextureDescriptor {textureType = Texture2D (FloatT Red) 1, textureSize = VV2U (V2 256 256), textureSemantic = Depth, textureSampler = SamplerDescriptor {samplerWrapS = Repeat, samplerWrapT = Nothing, samplerWrapR = Nothing, samplerMinFilter = Linear, samplerMagFilter = Linear, samplerBorderColor = VV4F (V4 0.0 0.0 0.0 1.0), samplerMinLod = Nothing, samplerMaxLod = Nothing, samplerLodBias = 0.0, samplerCompareFunc = Nothing}, textureBaseLevel = 0, textureMaxLevel = 0},TextureDescriptor {textureType = Texture2D (FloatT RGBA) 1, textureSize = VV2U (V2 256 256), textureSemantic = Color, textureSampler = SamplerDescriptor {samplerWrapS = Repeat, samplerWrapT = Nothing, samplerWrapR = Nothing, samplerMinFilter = Linear, samplerMagFilter = Linear, samplerBorderColor = VV4F (V4 0.0 0.0 0.0 1.0), samplerMinLod = Nothing, samplerMaxLod = Nothing, samplerLodBias = 0.0, samplerCompareFunc = Nothing}, textureBaseLevel = 0, textureMaxLevel = 0},TextureDescriptor {textureType = Texture2D (FloatT Red) 1, textureSize = VV2U (V2 256 256), textureSemantic = Depth, textureSampler = SamplerDescriptor {samplerWrapS = Repeat, samplerWrapT = Nothing, samplerWrapR = Nothing, samplerMinFilter = Linear, samplerMagFilter = Linear, samplerBorderColor = VV4F (V4 0.0 0.0 0.0 1.0), samplerMinLod = Nothing, samplerMaxLod = Nothing, samplerLodBias = 0.0, samplerCompareFunc = Nothing}, textureBaseLevel = 0, textureMaxLevel = 0},TextureDescriptor {textureType = Texture2D (FloatT RGBA) 1, textureSize = VV2U (V2 256 256), textureSemantic = Color, textureSampler = SamplerDescriptor {samplerWrapS = Repeat, samplerWrapT = Nothing, samplerWrapR = Nothing, samplerMinFilter = Linear, samplerMagFilter = Linear, samplerBorderColor = VV4F (V4 0.0 0.0 0.0 1.0), samplerMinLod = Nothing, samplerMaxLod = Nothing, samplerLodBias = 0.0, samplerCompareFunc = Nothing}, textureBaseLevel = 0, textureMaxLevel = 0},TextureDescriptor {textureType = Texture2D (FloatT Red) 1, textureSize = VV2U (V2 256 256), textureSemantic = Depth, textureSampler = SamplerDescriptor {samplerWrapS = Repeat, samplerWrapT = Nothing, samplerWrapR = Nothing, samplerMinFilter = Linear, samplerMagFilter = Linear, samplerBorderColor = VV4F (V4 0.0 0.0 0.0 1.0), samplerMinLod = Nothing, samplerMaxLod = Nothing, samplerLodBias = 0.0, samplerCompareFunc = Nothing}, textureBaseLevel = 0, textureMaxLevel = 0},TextureDescriptor {textureType = Texture2D (FloatT RGBA) 1, textureSize = VV2U (V2 256 256), textureSemantic = Color, textureSampler = SamplerDescriptor {samplerWrapS = Repeat, samplerWrapT = Nothing, samplerWrapR = Nothing, samplerMinFilter = Linear, samplerMagFilter = Linear, samplerBorderColor = VV4F (V4 0.0 0.0 0.0 1.0), samplerMinLod = Nothing, samplerMaxLod = Nothing, samplerLodBias = 0.0, samplerCompareFunc = Nothing}, textureBaseLevel = 0, textureMaxLevel = 0},TextureDescriptor {textureType = Texture2D (FloatT Red) 1, textureSize = VV2U (V2 256 256), textureSemantic = Depth, textureSampler = SamplerDescriptor {samplerWrapS = Repeat, samplerWrapT = Nothing, samplerWrapR = Nothing, samplerMinFilter = Linear, samplerMagFilter = Linear, samplerBorderColor = VV4F (V4 0.0 0.0 0.0 1.0), samplerMinLod = Nothing, samplerMaxLod = Nothing, samplerLodBias = 0.0, samplerCompareFunc = Nothing}, textureBaseLevel = 0, textureMaxLevel = 0},TextureDescriptor {textureType = Texture2D (FloatT RGBA) 1, textureSize = VV2U (V2 256 256), textureSemantic = Color, textureSampler = SamplerDescriptor {samplerWrapS = Repeat, samplerWrapT = Nothing, samplerWrapR = Nothing, samplerMinFilter = Linear, samplerMagFilter = Linear, samplerBorderColor = VV4F (V4 0.0 0.0 0.0 1.0), samplerMinLod = Nothing, samplerMaxLod = Nothing, samplerLodBias = 0.0, samplerCompareFunc = Nothing}, textureBaseLevel = 0, textureMaxLevel = 0},TextureDescriptor {textureType = Texture2D (FloatT Red) 1, textureSize = VV2U (V2 256 256), textureSemantic = Depth, textureSampler = SamplerDescriptor {samplerWrapS = Repeat, samplerWrapT = Nothing, samplerWrapR = Nothing, samplerMinFilter = Linear, samplerMagFilter = Linear, samplerBorderColor = VV4F (V4 0.0 0.0 0.0 1.0), samplerMinLod = Nothing, samplerMaxLod = Nothing, samplerLodBias = 0.0, samplerCompareFunc = Nothing}, textureBaseLevel = 0, textureMaxLevel = 0},TextureDescriptor {textureType = Texture2D (FloatT RGBA) 1, textureSize = VV2U (V2 256 256), textureSemantic = Color, textureSampler = SamplerDescriptor {samplerWrapS = Repeat, samplerWrapT = Nothing, samplerWrapR = Nothing, samplerMinFilter = Linear, samplerMagFilter = Linear, samplerBorderColor = VV4F (V4 0.0 0.0 0.0 1.0), samplerMinLod = Nothing, samplerMaxLod = Nothing, samplerLodBias = 0.0, samplerCompareFunc = Nothing}, textureBaseLevel = 0, textureMaxLevel = 0},TextureDescriptor {textureType = Texture2D (FloatT Red) 1, textureSize = VV2U (V2 256 256), textureSemantic = Depth, textureSampler = SamplerDescriptor {samplerWrapS = Repeat, samplerWrapT = Nothing, samplerWrapR = Nothing, samplerMinFilter = Linear, samplerMagFilter = Linear, samplerBorderColor = VV4F (V4 0.0 0.0 0.0 1.0), samplerMinLod = Nothing, samplerMaxLod = Nothing, samplerLodBias = 0.0, samplerCompareFunc = Nothing}, textureBaseLevel = 0, textureMaxLevel = 0},TextureDescriptor {textureType = Texture2D (FloatT RGBA) 1, textureSize = VV2U (V2 256 256), textureSemantic = Color, textureSampler = SamplerDescriptor {samplerWrapS = Repeat, samplerWrapT = Nothing, samplerWrapR = Nothing, samplerMinFilter = Linear, samplerMagFilter = Linear, samplerBorderColor = VV4F (V4 0.0 0.0 0.0 1.0), samplerMinLod = Nothing, samplerMaxLod = Nothing, samplerLodBias = 0.0, samplerCompareFunc = Nothing}, textureBaseLevel = 0, textureMaxLevel = 0},TextureDescriptor {textureType = Texture2D (FloatT Red) 1, textureSize = VV2U (V2 256 256), textureSemantic = Depth, textureSampler = SamplerDescriptor {samplerWrapS = Repeat, samplerWrapT = Nothing, samplerWrapR = Nothing, samplerMinFilter = Linear, samplerMagFilter = Linear, samplerBorderColor = VV4F (V4 0.0 0.0 0.0 1.0), samplerMinLod = Nothing, samplerMaxLod = Nothing, samplerLodBias = 0.0, samplerCompareFunc = Nothing}, textureBaseLevel = 0, textureMaxLevel = 0},TextureDescriptor {textureType = Texture2D (FloatT RGBA) 1, textureSize = VV2U (V2 256 256), textureSemantic = Color, textureSampler = SamplerDescriptor {samplerWrapS = Repeat, samplerWrapT = Nothing, samplerWrapR = Nothing, samplerMinFilter = Linear, samplerMagFilter = Linear, samplerBorderColor = VV4F (V4 0.0 0.0 0.0 1.0), samplerMinLod = Nothing, samplerMaxLod = Nothing, samplerLodBias = 0.0, samplerCompareFunc = Nothing}, textureBaseLevel = 0, textureMaxLevel = 0},TextureDescriptor {textureType = Texture2D (FloatT Red) 1, textureSize = VV2U (V2 256 256), textureSemantic = Depth, textureSampler = SamplerDescriptor {samplerWrapS = Repeat, samplerWrapT = Nothing, samplerWrapR = Nothing, samplerMinFilter = Linear, samplerMagFilter = Linear, samplerBorderColor = VV4F (V4 0.0 0.0 0.0 1.0), samplerMinLod = Nothing, samplerMaxLod = Nothing, samplerLodBias = 0.0, samplerCompareFunc = Nothing}, textureBaseLevel = 0, textureMaxLevel = 0},TextureDescriptor {textureType = Texture2D (FloatT RGBA) 1, textureSize = VV2U (V2 256 256), textureSemantic = Color, textureSampler = SamplerDescriptor {samplerWrapS = Repeat, samplerWrapT = Nothing, samplerWrapR = Nothing, samplerMinFilter = Linear, samplerMagFilter = Linear, samplerBorderColor = VV4F (V4 0.0 0.0 0.0 1.0), samplerMinLod = Nothing, samplerMaxLod = Nothing, samplerLodBias = 0.0, samplerCompareFunc = Nothing}, textureBaseLevel = 0, textureMaxLevel = 0}], samplers = [], targets = [RenderTarget {renderTargets = [TargetItem {targetSemantic = Depth, targetRef = Just (Framebuffer Depth)},TargetItem {targetSemantic = Color, targetRef = Just (Framebuffer Color)}]},RenderTarget {renderTargets = [TargetItem {targetSemantic = Depth, targetRef = Just (TextureImage 0 0 Nothing)},TargetItem {targetSemantic = Color, targetRef = Just (TextureImage 1 0 Nothing)}]},RenderTarget {renderTargets = [TargetItem {targetSemantic = Depth, targetRef = Just (TextureImage 2 0 Nothing)},TargetItem {targetSemantic = Color, targetRef = Just (TextureImage 3 0 Nothing)}]},RenderTarget {renderTargets = [TargetItem {targetSemantic = Depth, targetRef = Just (TextureImage 4 0 Nothing)},TargetItem {targetSemantic = Color, targetRef = Just (TextureImage 5 0 Nothing)}]},RenderTarget {renderTargets = [TargetItem {targetSemantic = Depth, targetRef = Just (TextureImage 6 0 Nothing)},TargetItem {targetSemantic = Color, targetRef = Just (TextureImage 7 0 Nothing)}]},RenderTarget {renderTargets = [TargetItem {targetSemantic = Depth, targetRef = Just (TextureImage 8 0 Nothing)},TargetItem {targetSemantic = Color, targetRef = Just (TextureImage 9 0 Nothing)}]},RenderTarget {renderTargets = [TargetItem {targetSemantic = Depth, targetRef = Just (TextureImage 10 0 Nothing)},TargetItem {targetSemantic = Color, targetRef = Just (TextureImage 11 0 Nothing)}]},RenderTarget {renderTargets = [TargetItem {targetSemantic = Depth, targetRef = Just (TextureImage 12 0 Nothing)},TargetItem {targetSemantic = Color, targetRef = Just (TextureImage 13 0 Nothing)}]},RenderTarget {renderTargets = [TargetItem {targetSemantic = Depth, targetRef = Just (TextureImage 14 0 Nothing)},TargetItem {targetSemantic = Color, targetRef = Just (TextureImage 15 0 Nothing)}]},RenderTarget {renderTargets = [TargetItem {targetSemantic = Depth, targetRef = Just (TextureImage 16 0 Nothing)},TargetItem {targetSemantic = Color, targetRef = Just (TextureImage 17 0 Nothing)}]},RenderTarget {renderTargets = [TargetItem {targetSemantic = Depth, targetRef = Just (TextureImage 18 0 Nothing)},TargetItem {targetSemantic = Color, targetRef = Just (TextureImage 19 0 Nothing)}]},RenderTarget {renderTargets = [TargetItem {targetSemantic = Depth, targetRef = Just (TextureImage 20 0 Nothing)},TargetItem {targetSemantic = Color, targetRef = Just (TextureImage 21 0 Nothing)}]},RenderTarget {renderTargets = [TargetItem {targetSemantic = Depth, targetRef = Just (TextureImage 22 0 Nothing)},TargetItem {targetSemantic = Color, targetRef = Just (TextureImage 23 0 Nothing)}]},RenderTarget {renderTargets = [TargetItem {targetSemantic = Depth, targetRef = Just (TextureImage 24 0 Nothing)},TargetItem {targetSemantic = Color, targetRef = Just (TextureImage 25 0 Nothing)}]},RenderTarget {renderTargets = [TargetItem {targetSemantic = Depth, targetRef = Just (TextureImage 26 0 Nothing)},TargetItem {targetSemantic = Color, targetRef = Just (TextureImage 27 0 Nothing)}]},RenderTarget {renderTargets = [TargetItem {targetSemantic = Depth, targetRef = Just (TextureImage 28 0 Nothing)},TargetItem {targetSemantic = Color, targetRef = Just (TextureImage 29 0 Nothing)}]}], programs = [Program {programUniforms = fromList [("MVP",M44F)], programStreams = fromList [("m22",Parameter {name = "position4", ty = V4F}),("n22",Parameter {name = "vertexUV", ty = V2F})], programInTextures = fromList [("u20",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform mat4 MVP ;\nin vec4 m22 ;\nin vec2 n22 ;\nsmooth out vec2 v0 ;\nvoid main() {\nv0 = n22;\ngl_Position = ( MVP ) * ( ( ( mat4 ( vec4 ( 1.0,0.0,0.0,0.0 ),vec4 ( 0.0,cos ( ( 0.0 ) / ( 10.0 ) ),sin ( ( 0.0 ) / ( 10.0 ) ),0.0 ),vec4 ( 0.0,( 0.0 ) - ( sin ( ( 0.0 ) / ( 10.0 ) ) ),cos ( ( 0.0 ) / ( 10.0 ) ),0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( m22 ) ) * ( vec4 ( 0.5,0.5,0.5,1.0 ) ) );\ngl_PointSize = 1.0;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D u20 ;\nsmooth in vec2 v0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( ( ( ( ( ( v0 ).xyxx ) * ( 0.7 ) ) + ( texture2D ( u20,v0 ) ) ) * ( 0.7 ) ) * ( vec4 ( 1.0,1.0,1.0,0.0 ) ) ) + ( vec4 ( 0.0,0.0,0.0,1.0 ) );\n}\n"},Program {programUniforms = fromList [("MVP",M44F)], programStreams = fromList [("e26",Parameter {name = "position4", ty = V4F}),("f26",Parameter {name = "vertexUV", ty = V2F})], programInTextures = fromList [("k19",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform mat4 MVP ;\nin vec4 e26 ;\nin vec2 f26 ;\nsmooth out vec2 v0 ;\nvoid main() {\nv0 = f26;\ngl_Position = ( MVP ) * ( ( ( mat4 ( vec4 ( 1.0,0.0,0.0,0.0 ),vec4 ( 0.0,cos ( ( 1.0 ) / ( 10.0 ) ),sin ( ( 1.0 ) / ( 10.0 ) ),0.0 ),vec4 ( 0.0,( 0.0 ) - ( sin ( ( 1.0 ) / ( 10.0 ) ) ),cos ( ( 1.0 ) / ( 10.0 ) ),0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( e26 ) ) * ( vec4 ( 0.5,0.5,0.5,1.0 ) ) );\ngl_PointSize = 1.0;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D k19 ;\nsmooth in vec2 v0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( ( ( ( ( ( v0 ).xyxx ) * ( 0.7 ) ) + ( texture2D ( k19,v0 ) ) ) * ( 0.7 ) ) * ( vec4 ( 1.0,1.0,1.0,0.0 ) ) ) + ( vec4 ( 0.0,0.0,0.0,1.0 ) );\n}\n"},Program {programUniforms = fromList [("MVP",M44F)], programStreams = fromList [("w29",Parameter {name = "position4", ty = V4F}),("x29",Parameter {name = "vertexUV", ty = V2F})], programInTextures = fromList [("a18",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform mat4 MVP ;\nin vec4 w29 ;\nin vec2 x29 ;\nsmooth out vec2 v0 ;\nvoid main() {\nv0 = x29;\ngl_Position = ( MVP ) * ( ( ( mat4 ( vec4 ( 1.0,0.0,0.0,0.0 ),vec4 ( 0.0,cos ( ( 2.0 ) / ( 10.0 ) ),sin ( ( 2.0 ) / ( 10.0 ) ),0.0 ),vec4 ( 0.0,( 0.0 ) - ( sin ( ( 2.0 ) / ( 10.0 ) ) ),cos ( ( 2.0 ) / ( 10.0 ) ),0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( w29 ) ) * ( vec4 ( 0.5,0.5,0.5,1.0 ) ) );\ngl_PointSize = 1.0;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D a18 ;\nsmooth in vec2 v0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( ( ( ( ( ( v0 ).xyxx ) * ( 0.7 ) ) + ( texture2D ( a18,v0 ) ) ) * ( 0.7 ) ) * ( vec4 ( 1.0,1.0,1.0,0.0 ) ) ) + ( vec4 ( 0.0,0.0,0.0,1.0 ) );\n}\n"},Program {programUniforms = fromList [("MVP",M44F)], programStreams = fromList [("o33",Parameter {name = "position4", ty = V4F}),("p33",Parameter {name = "vertexUV", ty = V2F})], programInTextures = fromList [("q16",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform mat4 MVP ;\nin vec4 o33 ;\nin vec2 p33 ;\nsmooth out vec2 v0 ;\nvoid main() {\nv0 = p33;\ngl_Position = ( MVP ) * ( ( ( mat4 ( vec4 ( 1.0,0.0,0.0,0.0 ),vec4 ( 0.0,cos ( ( 3.0 ) / ( 10.0 ) ),sin ( ( 3.0 ) / ( 10.0 ) ),0.0 ),vec4 ( 0.0,( 0.0 ) - ( sin ( ( 3.0 ) / ( 10.0 ) ) ),cos ( ( 3.0 ) / ( 10.0 ) ),0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( o33 ) ) * ( vec4 ( 0.5,0.5,0.5,1.0 ) ) );\ngl_PointSize = 1.0;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D q16 ;\nsmooth in vec2 v0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( ( ( ( ( ( v0 ).xyxx ) * ( 0.7 ) ) + ( texture2D ( q16,v0 ) ) ) * ( 0.7 ) ) * ( vec4 ( 1.0,1.0,1.0,0.0 ) ) ) + ( vec4 ( 0.0,0.0,0.0,1.0 ) );\n}\n"},Program {programUniforms = fromList [("MVP",M44F)], programStreams = fromList [("g37",Parameter {name = "position4", ty = V4F}),("h37",Parameter {name = "vertexUV", ty = V2F})], programInTextures = fromList [("g15",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform mat4 MVP ;\nin vec4 g37 ;\nin vec2 h37 ;\nsmooth out vec2 v0 ;\nvoid main() {\nv0 = h37;\ngl_Position = ( MVP ) * ( ( ( mat4 ( vec4 ( 1.0,0.0,0.0,0.0 ),vec4 ( 0.0,cos ( ( 4.0 ) / ( 10.0 ) ),sin ( ( 4.0 ) / ( 10.0 ) ),0.0 ),vec4 ( 0.0,( 0.0 ) - ( sin ( ( 4.0 ) / ( 10.0 ) ) ),cos ( ( 4.0 ) / ( 10.0 ) ),0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( g37 ) ) * ( vec4 ( 0.5,0.5,0.5,1.0 ) ) );\ngl_PointSize = 1.0;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D g15 ;\nsmooth in vec2 v0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( ( ( ( ( ( v0 ).xyxx ) * ( 0.7 ) ) + ( texture2D ( g15,v0 ) ) ) * ( 0.7 ) ) * ( vec4 ( 1.0,1.0,1.0,0.0 ) ) ) + ( vec4 ( 0.0,0.0,0.0,1.0 ) );\n}\n"},Program {programUniforms = fromList [("MVP",M44F)], programStreams = fromList [("y40",Parameter {name = "position4", ty = V4F}),("z40",Parameter {name = "vertexUV", ty = V2F})], programInTextures = fromList [("w13",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform mat4 MVP ;\nin vec4 y40 ;\nin vec2 z40 ;\nsmooth out vec2 v0 ;\nvoid main() {\nv0 = z40;\ngl_Position = ( MVP ) * ( ( ( mat4 ( vec4 ( 1.0,0.0,0.0,0.0 ),vec4 ( 0.0,cos ( ( 5.0 ) / ( 10.0 ) ),sin ( ( 5.0 ) / ( 10.0 ) ),0.0 ),vec4 ( 0.0,( 0.0 ) - ( sin ( ( 5.0 ) / ( 10.0 ) ) ),cos ( ( 5.0 ) / ( 10.0 ) ),0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( y40 ) ) * ( vec4 ( 0.5,0.5,0.5,1.0 ) ) );\ngl_PointSize = 1.0;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D w13 ;\nsmooth in vec2 v0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( ( ( ( ( ( v0 ).xyxx ) * ( 0.7 ) ) + ( texture2D ( w13,v0 ) ) ) * ( 0.7 ) ) * ( vec4 ( 1.0,1.0,1.0,0.0 ) ) ) + ( vec4 ( 0.0,0.0,0.0,1.0 ) );\n}\n"},Program {programUniforms = fromList [("MVP",M44F)], programStreams = fromList [("q44",Parameter {name = "position4", ty = V4F}),("r44",Parameter {name = "vertexUV", ty = V2F})], programInTextures = fromList [("m12",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform mat4 MVP ;\nin vec4 q44 ;\nin vec2 r44 ;\nsmooth out vec2 v0 ;\nvoid main() {\nv0 = r44;\ngl_Position = ( MVP ) * ( ( ( mat4 ( vec4 ( 1.0,0.0,0.0,0.0 ),vec4 ( 0.0,cos ( ( 6.0 ) / ( 10.0 ) ),sin ( ( 6.0 ) / ( 10.0 ) ),0.0 ),vec4 ( 0.0,( 0.0 ) - ( sin ( ( 6.0 ) / ( 10.0 ) ) ),cos ( ( 6.0 ) / ( 10.0 ) ),0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( q44 ) ) * ( vec4 ( 0.5,0.5,0.5,1.0 ) ) );\ngl_PointSize = 1.0;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D m12 ;\nsmooth in vec2 v0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( ( ( ( ( ( v0 ).xyxx ) * ( 0.7 ) ) + ( texture2D ( m12,v0 ) ) ) * ( 0.7 ) ) * ( vec4 ( 1.0,1.0,1.0,0.0 ) ) ) + ( vec4 ( 0.0,0.0,0.0,1.0 ) );\n}\n"},Program {programUniforms = fromList [("MVP",M44F)], programStreams = fromList [("i48",Parameter {name = "position4", ty = V4F}),("j48",Parameter {name = "vertexUV", ty = V2F})], programInTextures = fromList [("c11",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform mat4 MVP ;\nin vec4 i48 ;\nin vec2 j48 ;\nsmooth out vec2 v0 ;\nvoid main() {\nv0 = j48;\ngl_Position = ( MVP ) * ( ( ( mat4 ( vec4 ( 1.0,0.0,0.0,0.0 ),vec4 ( 0.0,cos ( ( 7.0 ) / ( 10.0 ) ),sin ( ( 7.0 ) / ( 10.0 ) ),0.0 ),vec4 ( 0.0,( 0.0 ) - ( sin ( ( 7.0 ) / ( 10.0 ) ) ),cos ( ( 7.0 ) / ( 10.0 ) ),0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( i48 ) ) * ( vec4 ( 0.5,0.5,0.5,1.0 ) ) );\ngl_PointSize = 1.0;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D c11 ;\nsmooth in vec2 v0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( ( ( ( ( ( v0 ).xyxx ) * ( 0.7 ) ) + ( texture2D ( c11,v0 ) ) ) * ( 0.7 ) ) * ( vec4 ( 1.0,1.0,1.0,0.0 ) ) ) + ( vec4 ( 0.0,0.0,0.0,1.0 ) );\n}\n"},Program {programUniforms = fromList [("MVP",M44F)], programStreams = fromList [("a52",Parameter {name = "position4", ty = V4F}),("b52",Parameter {name = "vertexUV", ty = V2F})], programInTextures = fromList [("s9",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform mat4 MVP ;\nin vec4 a52 ;\nin vec2 b52 ;\nsmooth out vec2 v0 ;\nvoid main() {\nv0 = b52;\ngl_Position = ( MVP ) * ( ( ( mat4 ( vec4 ( 1.0,0.0,0.0,0.0 ),vec4 ( 0.0,cos ( ( 8.0 ) / ( 10.0 ) ),sin ( ( 8.0 ) / ( 10.0 ) ),0.0 ),vec4 ( 0.0,( 0.0 ) - ( sin ( ( 8.0 ) / ( 10.0 ) ) ),cos ( ( 8.0 ) / ( 10.0 ) ),0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( a52 ) ) * ( vec4 ( 0.5,0.5,0.5,1.0 ) ) );\ngl_PointSize = 1.0;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D s9 ;\nsmooth in vec2 v0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( ( ( ( ( ( v0 ).xyxx ) * ( 0.7 ) ) + ( texture2D ( s9,v0 ) ) ) * ( 0.7 ) ) * ( vec4 ( 1.0,1.0,1.0,0.0 ) ) ) + ( vec4 ( 0.0,0.0,0.0,1.0 ) );\n}\n"},Program {programUniforms = fromList [("MVP",M44F)], programStreams = fromList [("s55",Parameter {name = "position4", ty = V4F}),("t55",Parameter {name = "vertexUV", ty = V2F})], programInTextures = fromList [("i8",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform mat4 MVP ;\nin vec4 s55 ;\nin vec2 t55 ;\nsmooth out vec2 v0 ;\nvoid main() {\nv0 = t55;\ngl_Position = ( MVP ) * ( ( ( mat4 ( vec4 ( 1.0,0.0,0.0,0.0 ),vec4 ( 0.0,cos ( ( 9.0 ) / ( 10.0 ) ),sin ( ( 9.0 ) / ( 10.0 ) ),0.0 ),vec4 ( 0.0,( 0.0 ) - ( sin ( ( 9.0 ) / ( 10.0 ) ) ),cos ( ( 9.0 ) / ( 10.0 ) ),0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( s55 ) ) * ( vec4 ( 0.5,0.5,0.5,1.0 ) ) );\ngl_PointSize = 1.0;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D i8 ;\nsmooth in vec2 v0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( ( ( ( ( ( v0 ).xyxx ) * ( 0.7 ) ) + ( texture2D ( i8,v0 ) ) ) * ( 0.7 ) ) * ( vec4 ( 1.0,1.0,1.0,0.0 ) ) ) + ( vec4 ( 0.0,0.0,0.0,1.0 ) );\n}\n"},Program {programUniforms = fromList [("MVP",M44F)], programStreams = fromList [("k59",Parameter {name = "position4", ty = V4F}),("l59",Parameter {name = "vertexUV", ty = V2F})], programInTextures = fromList [("y6",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform mat4 MVP ;\nin vec4 k59 ;\nin vec2 l59 ;\nsmooth out vec2 v0 ;\nvoid main() {\nv0 = l59;\ngl_Position = ( MVP ) * ( ( ( mat4 ( vec4 ( 1.0,0.0,0.0,0.0 ),vec4 ( 0.0,cos ( ( 10.0 ) / ( 10.0 ) ),sin ( ( 10.0 ) / ( 10.0 ) ),0.0 ),vec4 ( 0.0,( 0.0 ) - ( sin ( ( 10.0 ) / ( 10.0 ) ) ),cos ( ( 10.0 ) / ( 10.0 ) ),0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( k59 ) ) * ( vec4 ( 0.5,0.5,0.5,1.0 ) ) );\ngl_PointSize = 1.0;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D y6 ;\nsmooth in vec2 v0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( ( ( ( ( ( v0 ).xyxx ) * ( 0.7 ) ) + ( texture2D ( y6,v0 ) ) ) * ( 0.7 ) ) * ( vec4 ( 1.0,1.0,1.0,0.0 ) ) ) + ( vec4 ( 0.0,0.0,0.0,1.0 ) );\n}\n"},Program {programUniforms = fromList [("MVP",M44F)], programStreams = fromList [("c63",Parameter {name = "position4", ty = V4F}),("d63",Parameter {name = "vertexUV", ty = V2F})], programInTextures = fromList [("o5",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform mat4 MVP ;\nin vec4 c63 ;\nin vec2 d63 ;\nsmooth out vec2 v0 ;\nvoid main() {\nv0 = d63;\ngl_Position = ( MVP ) * ( ( ( mat4 ( vec4 ( 1.0,0.0,0.0,0.0 ),vec4 ( 0.0,cos ( ( 11.0 ) / ( 10.0 ) ),sin ( ( 11.0 ) / ( 10.0 ) ),0.0 ),vec4 ( 0.0,( 0.0 ) - ( sin ( ( 11.0 ) / ( 10.0 ) ) ),cos ( ( 11.0 ) / ( 10.0 ) ),0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( c63 ) ) * ( vec4 ( 0.5,0.5,0.5,1.0 ) ) );\ngl_PointSize = 1.0;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D o5 ;\nsmooth in vec2 v0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( ( ( ( ( ( v0 ).xyxx ) * ( 0.7 ) ) + ( texture2D ( o5,v0 ) ) ) * ( 0.7 ) ) * ( vec4 ( 1.0,1.0,1.0,0.0 ) ) ) + ( vec4 ( 0.0,0.0,0.0,1.0 ) );\n}\n"},Program {programUniforms = fromList [("MVP",M44F)], programStreams = fromList [("u66",Parameter {name = "position4", ty = V4F}),("v66",Parameter {name = "vertexUV", ty = V2F})], programInTextures = fromList [("e4",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform mat4 MVP ;\nin vec4 u66 ;\nin vec2 v66 ;\nsmooth out vec2 v0 ;\nvoid main() {\nv0 = v66;\ngl_Position = ( MVP ) * ( ( ( mat4 ( vec4 ( 1.0,0.0,0.0,0.0 ),vec4 ( 0.0,cos ( ( 12.0 ) / ( 10.0 ) ),sin ( ( 12.0 ) / ( 10.0 ) ),0.0 ),vec4 ( 0.0,( 0.0 ) - ( sin ( ( 12.0 ) / ( 10.0 ) ) ),cos ( ( 12.0 ) / ( 10.0 ) ),0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( u66 ) ) * ( vec4 ( 0.5,0.5,0.5,1.0 ) ) );\ngl_PointSize = 1.0;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D e4 ;\nsmooth in vec2 v0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( ( ( ( ( ( v0 ).xyxx ) * ( 0.7 ) ) + ( texture2D ( e4,v0 ) ) ) * ( 0.7 ) ) * ( vec4 ( 1.0,1.0,1.0,0.0 ) ) ) + ( vec4 ( 0.0,0.0,0.0,1.0 ) );\n}\n"},Program {programUniforms = fromList [("MVP",M44F)], programStreams = fromList [("m70",Parameter {name = "position4", ty = V4F}),("n70",Parameter {name = "vertexUV", ty = V2F})], programInTextures = fromList [("u2",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform mat4 MVP ;\nin vec4 m70 ;\nin vec2 n70 ;\nsmooth out vec2 v0 ;\nvoid main() {\nv0 = n70;\ngl_Position = ( MVP ) * ( ( ( mat4 ( vec4 ( 1.0,0.0,0.0,0.0 ),vec4 ( 0.0,cos ( ( 13.0 ) / ( 10.0 ) ),sin ( ( 13.0 ) / ( 10.0 ) ),0.0 ),vec4 ( 0.0,( 0.0 ) - ( sin ( ( 13.0 ) / ( 10.0 ) ) ),cos ( ( 13.0 ) / ( 10.0 ) ),0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( m70 ) ) * ( vec4 ( 0.5,0.5,0.5,1.0 ) ) );\ngl_PointSize = 1.0;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D u2 ;\nsmooth in vec2 v0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( ( ( ( ( ( v0 ).xyxx ) * ( 0.7 ) ) + ( texture2D ( u2,v0 ) ) ) * ( 0.7 ) ) * ( vec4 ( 1.0,1.0,1.0,0.0 ) ) ) + ( vec4 ( 0.0,0.0,0.0,1.0 ) );\n}\n"},Program {programUniforms = fromList [("MVP",M44F)], programStreams = fromList [("e74",Parameter {name = "position4", ty = V4F}),("f74",Parameter {name = "vertexUV", ty = V2F})], programInTextures = fromList [("k1",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform mat4 MVP ;\nin vec4 e74 ;\nin vec2 f74 ;\nsmooth out vec2 v0 ;\nvoid main() {\nv0 = f74;\ngl_Position = ( MVP ) * ( ( ( mat4 ( vec4 ( 1.0,0.0,0.0,0.0 ),vec4 ( 0.0,cos ( ( 14.0 ) / ( 10.0 ) ),sin ( ( 14.0 ) / ( 10.0 ) ),0.0 ),vec4 ( 0.0,( 0.0 ) - ( sin ( ( 14.0 ) / ( 10.0 ) ) ),cos ( ( 14.0 ) / ( 10.0 ) ),0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( e74 ) ) * ( vec4 ( 0.5,0.5,0.5,1.0 ) ) );\ngl_PointSize = 1.0;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D k1 ;\nsmooth in vec2 v0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( ( ( ( ( ( v0 ).xyxx ) * ( 0.7 ) ) + ( texture2D ( k1,v0 ) ) ) * ( 0.7 ) ) * ( vec4 ( 1.0,1.0,1.0,0.0 ) ) ) + ( vec4 ( 0.0,0.0,0.0,1.0 ) );\n}\n"}], slots = [Slot {slotName = "stream4", slotStreams = fromList [("position4",V4F),("vertexUV",V2F)], slotUniforms = fromList [("MVP",M44F)], slotPrimitive = Triangles, slotPrograms = [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14]}], streams = [], commands = [SetRenderTarget 15,ClearRenderTarget [ClearImage {imageSemantic = Depth, clearValue = VFloat 1000.0},ClearImage {imageSemantic = Color, clearValue = VV4F (V4 0.0 0.0 0.0 1.0)}],SetRenderTarget 14,ClearRenderTarget [ClearImage {imageSemantic = Depth, clearValue = VFloat 1000.0},ClearImage {imageSemantic = Color, clearValue = VV4F (V4 0.0 0.0 0.0 1.0)}],SetProgram 0,SetTexture 0 29,SetSamplerUniform "u20" 0,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 0,SetRenderTarget 13,ClearRenderTarget [ClearImage {imageSemantic = Depth, clearValue = VFloat 1000.0},ClearImage {imageSemantic = Color, clearValue = VV4F (V4 0.0 0.0 0.0 1.0)}],SetProgram 1,SetTexture 0 27,SetSamplerUniform "k19" 0,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 0,SetRenderTarget 12,ClearRenderTarget [ClearImage {imageSemantic = Depth, clearValue = VFloat 1000.0},ClearImage {imageSemantic = Color, clearValue = VV4F (V4 0.0 0.0 0.0 1.0)}],SetProgram 2,SetTexture 0 25,SetSamplerUniform "a18" 0,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 0,SetRenderTarget 11,ClearRenderTarget [ClearImage {imageSemantic = Depth, clearValue = VFloat 1000.0},ClearImage {imageSemantic = Color, clearValue = VV4F (V4 0.0 0.0 0.0 1.0)}],SetProgram 3,SetTexture 0 23,SetSamplerUniform "q16" 0,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 0,SetRenderTarget 10,ClearRenderTarget [ClearImage {imageSemantic = Depth, clearValue = VFloat 1000.0},ClearImage {imageSemantic = Color, clearValue = VV4F (V4 0.0 0.0 0.0 1.0)}],SetProgram 4,SetTexture 0 21,SetSamplerUniform "g15" 0,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 0,SetRenderTarget 9,ClearRenderTarget [ClearImage {imageSemantic = Depth, clearValue = VFloat 1000.0},ClearImage {imageSemantic = Color, clearValue = VV4F (V4 0.0 0.0 0.0 1.0)}],SetProgram 5,SetTexture 0 19,SetSamplerUniform "w13" 0,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 0,SetRenderTarget 8,ClearRenderTarget [ClearImage {imageSemantic = Depth, clearValue = VFloat 1000.0},ClearImage {imageSemantic = Color, clearValue = VV4F (V4 0.0 0.0 0.0 1.0)}],SetProgram 6,SetTexture 0 17,SetSamplerUniform "m12" 0,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 0,SetRenderTarget 7,ClearRenderTarget [ClearImage {imageSemantic = Depth, clearValue = VFloat 1000.0},ClearImage {imageSemantic = Color, clearValue = VV4F (V4 0.0 0.0 0.0 1.0)}],SetProgram 7,SetTexture 0 15,SetSamplerUniform "c11" 0,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 0,SetRenderTarget 6,ClearRenderTarget [ClearImage {imageSemantic = Depth, clearValue = VFloat 1000.0},ClearImage {imageSemantic = Color, clearValue = VV4F (V4 0.0 0.0 0.0 1.0)}],SetProgram 8,SetTexture 0 13,SetSamplerUniform "s9" 0,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 0,SetRenderTarget 5,ClearRenderTarget [ClearImage {imageSemantic = Depth, clearValue = VFloat 1000.0},ClearImage {imageSemantic = Color, clearValue = VV4F (V4 0.0 0.0 0.0 1.0)}],SetProgram 9,SetTexture 0 11,SetSamplerUniform "i8" 0,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 0,SetRenderTarget 4,ClearRenderTarget [ClearImage {imageSemantic = Depth, clearValue = VFloat 1000.0},ClearImage {imageSemantic = Color, clearValue = VV4F (V4 0.0 0.0 0.0 1.0)}],SetProgram 10,SetTexture 0 9,SetSamplerUniform "y6" 0,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 0,SetRenderTarget 3,ClearRenderTarget [ClearImage {imageSemantic = Depth, clearValue = VFloat 1000.0},ClearImage {imageSemantic = Color, clearValue = VV4F (V4 0.0 0.0 0.0 1.0)}],SetProgram 11,SetTexture 0 7,SetSamplerUniform "o5" 0,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 0,SetRenderTarget 2,ClearRenderTarget [ClearImage {imageSemantic = Depth, clearValue = VFloat 1000.0},ClearImage {imageSemantic = Color, clearValue = VV4F (V4 0.0 0.0 0.0 1.0)}],SetProgram 12,SetTexture 0 5,SetSamplerUniform "e4" 0,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 0,SetRenderTarget 1,ClearRenderTarget [ClearImage {imageSemantic = Depth, clearValue = VFloat 1000.0},ClearImage {imageSemantic = Color, clearValue = VV4F (V4 0.0 0.0 0.0 1.0)}],SetProgram 13,SetTexture 0 3,SetSamplerUniform "u2" 0,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 0,SetRenderTarget 0,ClearRenderTarget [ClearImage {imageSemantic = Depth, clearValue = VFloat 1000.0},ClearImage {imageSemantic = Color, clearValue = VV4F (V4 0.0 0.0 0.0 1.0)}],SetProgram 14,SetTexture 0 1,SetSamplerUniform "k1" 0,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 0]} \ No newline at end of file Pipeline {backend = OpenGL33, textures = [TextureDescriptor {textureType = Texture2D (FloatT Red) 1, textureSize = VV2U (V2 256 256), textureSemantic = Depth, textureSampler = SamplerDescriptor {samplerWrapS = Repeat, samplerWrapT = Nothing, samplerWrapR = Nothing, samplerMinFilter = Linear, samplerMagFilter = Linear, samplerBorderColor = VV4F (V4 0.0 0.0 0.0 1.0), samplerMinLod = Nothing, samplerMaxLod = Nothing, samplerLodBias = 0.0, samplerCompareFunc = Nothing}, textureBaseLevel = 0, textureMaxLevel = 0},TextureDescriptor {textureType = Texture2D (FloatT RGBA) 1, textureSize = VV2U (V2 256 256), textureSemantic = Color, textureSampler = SamplerDescriptor {samplerWrapS = Repeat, samplerWrapT = Nothing, samplerWrapR = Nothing, samplerMinFilter = Linear, samplerMagFilter = Linear, samplerBorderColor = VV4F (V4 0.0 0.0 0.0 1.0), samplerMinLod = Nothing, samplerMaxLod = Nothing, samplerLodBias = 0.0, samplerCompareFunc = Nothing}, textureBaseLevel = 0, textureMaxLevel = 0},TextureDescriptor {textureType = Texture2D (FloatT Red) 1, textureSize = VV2U (V2 256 256), textureSemantic = Depth, textureSampler = SamplerDescriptor {samplerWrapS = Repeat, samplerWrapT = Nothing, samplerWrapR = Nothing, samplerMinFilter = Linear, samplerMagFilter = Linear, samplerBorderColor = VV4F (V4 0.0 0.0 0.0 1.0), samplerMinLod = Nothing, samplerMaxLod = Nothing, samplerLodBias = 0.0, samplerCompareFunc = Nothing}, textureBaseLevel = 0, textureMaxLevel = 0},TextureDescriptor {textureType = Texture2D (FloatT RGBA) 1, textureSize = VV2U (V2 256 256), textureSemantic = Color, textureSampler = SamplerDescriptor {samplerWrapS = Repeat, samplerWrapT = Nothing, samplerWrapR = Nothing, samplerMinFilter = Linear, samplerMagFilter = Linear, samplerBorderColor = VV4F (V4 0.0 0.0 0.0 1.0), samplerMinLod = Nothing, samplerMaxLod = Nothing, samplerLodBias = 0.0, samplerCompareFunc = Nothing}, textureBaseLevel = 0, textureMaxLevel = 0},TextureDescriptor {textureType = Texture2D (FloatT Red) 1, textureSize = VV2U (V2 256 256), textureSemantic = Depth, textureSampler = SamplerDescriptor {samplerWrapS = Repeat, samplerWrapT = Nothing, samplerWrapR = Nothing, samplerMinFilter = Linear, samplerMagFilter = Linear, samplerBorderColor = VV4F (V4 0.0 0.0 0.0 1.0), samplerMinLod = Nothing, samplerMaxLod = Nothing, samplerLodBias = 0.0, samplerCompareFunc = Nothing}, textureBaseLevel = 0, textureMaxLevel = 0},TextureDescriptor {textureType = Texture2D (FloatT RGBA) 1, textureSize = VV2U (V2 256 256), textureSemantic = Color, textureSampler = SamplerDescriptor {samplerWrapS = Repeat, samplerWrapT = Nothing, samplerWrapR = Nothing, samplerMinFilter = Linear, samplerMagFilter = Linear, samplerBorderColor = VV4F (V4 0.0 0.0 0.0 1.0), samplerMinLod = Nothing, samplerMaxLod = Nothing, samplerLodBias = 0.0, samplerCompareFunc = Nothing}, textureBaseLevel = 0, textureMaxLevel = 0},TextureDescriptor {textureType = Texture2D (FloatT Red) 1, textureSize = VV2U (V2 256 256), textureSemantic = Depth, textureSampler = SamplerDescriptor {samplerWrapS = Repeat, samplerWrapT = Nothing, samplerWrapR = Nothing, samplerMinFilter = Linear, samplerMagFilter = Linear, samplerBorderColor = VV4F (V4 0.0 0.0 0.0 1.0), samplerMinLod = Nothing, samplerMaxLod = Nothing, samplerLodBias = 0.0, samplerCompareFunc = Nothing}, textureBaseLevel = 0, textureMaxLevel = 0},TextureDescriptor {textureType = Texture2D (FloatT RGBA) 1, textureSize = VV2U (V2 256 256), textureSemantic = Color, textureSampler = SamplerDescriptor {samplerWrapS = Repeat, samplerWrapT = Nothing, samplerWrapR = Nothing, samplerMinFilter = Linear, samplerMagFilter = Linear, samplerBorderColor = VV4F (V4 0.0 0.0 0.0 1.0), samplerMinLod = Nothing, samplerMaxLod = Nothing, samplerLodBias = 0.0, samplerCompareFunc = Nothing}, textureBaseLevel = 0, textureMaxLevel = 0},TextureDescriptor {textureType = Texture2D (FloatT Red) 1, textureSize = VV2U (V2 256 256), textureSemantic = Depth, textureSampler = SamplerDescriptor {samplerWrapS = Repeat, samplerWrapT = Nothing, samplerWrapR = Nothing, samplerMinFilter = Linear, samplerMagFilter = Linear, samplerBorderColor = VV4F (V4 0.0 0.0 0.0 1.0), samplerMinLod = Nothing, samplerMaxLod = Nothing, samplerLodBias = 0.0, samplerCompareFunc = Nothing}, textureBaseLevel = 0, textureMaxLevel = 0},TextureDescriptor {textureType = Texture2D (FloatT RGBA) 1, textureSize = VV2U (V2 256 256), textureSemantic = Color, textureSampler = SamplerDescriptor {samplerWrapS = Repeat, samplerWrapT = Nothing, samplerWrapR = Nothing, samplerMinFilter = Linear, samplerMagFilter = Linear, samplerBorderColor = VV4F (V4 0.0 0.0 0.0 1.0), samplerMinLod = Nothing, samplerMaxLod = Nothing, samplerLodBias = 0.0, samplerCompareFunc = Nothing}, textureBaseLevel = 0, textureMaxLevel = 0},TextureDescriptor {textureType = Texture2D (FloatT Red) 1, textureSize = VV2U (V2 256 256), textureSemantic = Depth, textureSampler = SamplerDescriptor {samplerWrapS = Repeat, samplerWrapT = Nothing, samplerWrapR = Nothing, samplerMinFilter = Linear, samplerMagFilter = Linear, samplerBorderColor = VV4F (V4 0.0 0.0 0.0 1.0), samplerMinLod = Nothing, samplerMaxLod = Nothing, samplerLodBias = 0.0, samplerCompareFunc = Nothing}, textureBaseLevel = 0, textureMaxLevel = 0},TextureDescriptor {textureType = Texture2D (FloatT RGBA) 1, textureSize = VV2U (V2 256 256), textureSemantic = Color, textureSampler = SamplerDescriptor {samplerWrapS = Repeat, samplerWrapT = Nothing, samplerWrapR = Nothing, samplerMinFilter = Linear, samplerMagFilter = Linear, samplerBorderColor = VV4F (V4 0.0 0.0 0.0 1.0), samplerMinLod = Nothing, samplerMaxLod = Nothing, samplerLodBias = 0.0, samplerCompareFunc = Nothing}, textureBaseLevel = 0, textureMaxLevel = 0},TextureDescriptor {textureType = Texture2D (FloatT Red) 1, textureSize = VV2U (V2 256 256), textureSemantic = Depth, textureSampler = SamplerDescriptor {samplerWrapS = Repeat, samplerWrapT = Nothing, samplerWrapR = Nothing, samplerMinFilter = Linear, samplerMagFilter = Linear, samplerBorderColor = VV4F (V4 0.0 0.0 0.0 1.0), samplerMinLod = Nothing, samplerMaxLod = Nothing, samplerLodBias = 0.0, samplerCompareFunc = Nothing}, textureBaseLevel = 0, textureMaxLevel = 0},TextureDescriptor {textureType = Texture2D (FloatT RGBA) 1, textureSize = VV2U (V2 256 256), textureSemantic = Color, textureSampler = SamplerDescriptor {samplerWrapS = Repeat, samplerWrapT = Nothing, samplerWrapR = Nothing, samplerMinFilter = Linear, samplerMagFilter = Linear, samplerBorderColor = VV4F (V4 0.0 0.0 0.0 1.0), samplerMinLod = Nothing, samplerMaxLod = Nothing, samplerLodBias = 0.0, samplerCompareFunc = Nothing}, textureBaseLevel = 0, textureMaxLevel = 0},TextureDescriptor {textureType = Texture2D (FloatT Red) 1, textureSize = VV2U (V2 256 256), textureSemantic = Depth, textureSampler = SamplerDescriptor {samplerWrapS = Repeat, samplerWrapT = Nothing, samplerWrapR = Nothing, samplerMinFilter = Linear, samplerMagFilter = Linear, samplerBorderColor = VV4F (V4 0.0 0.0 0.0 1.0), samplerMinLod = Nothing, samplerMaxLod = Nothing, samplerLodBias = 0.0, samplerCompareFunc = Nothing}, textureBaseLevel = 0, textureMaxLevel = 0},TextureDescriptor {textureType = Texture2D (FloatT RGBA) 1, textureSize = VV2U (V2 256 256), textureSemantic = Color, textureSampler = SamplerDescriptor {samplerWrapS = Repeat, samplerWrapT = Nothing, samplerWrapR = Nothing, samplerMinFilter = Linear, samplerMagFilter = Linear, samplerBorderColor = VV4F (V4 0.0 0.0 0.0 1.0), samplerMinLod = Nothing, samplerMaxLod = Nothing, samplerLodBias = 0.0, samplerCompareFunc = Nothing}, textureBaseLevel = 0, textureMaxLevel = 0},TextureDescriptor {textureType = Texture2D (FloatT Red) 1, textureSize = VV2U (V2 256 256), textureSemantic = Depth, textureSampler = SamplerDescriptor {samplerWrapS = Repeat, samplerWrapT = Nothing, samplerWrapR = Nothing, samplerMinFilter = Linear, samplerMagFilter = Linear, samplerBorderColor = VV4F (V4 0.0 0.0 0.0 1.0), samplerMinLod = Nothing, samplerMaxLod = Nothing, samplerLodBias = 0.0, samplerCompareFunc = Nothing}, textureBaseLevel = 0, textureMaxLevel = 0},TextureDescriptor {textureType = Texture2D (FloatT RGBA) 1, textureSize = VV2U (V2 256 256), textureSemantic = Color, textureSampler = SamplerDescriptor {samplerWrapS = Repeat, samplerWrapT = Nothing, samplerWrapR = Nothing, samplerMinFilter = Linear, samplerMagFilter = Linear, samplerBorderColor = VV4F (V4 0.0 0.0 0.0 1.0), samplerMinLod = Nothing, samplerMaxLod = Nothing, samplerLodBias = 0.0, samplerCompareFunc = Nothing}, textureBaseLevel = 0, textureMaxLevel = 0},TextureDescriptor {textureType = Texture2D (FloatT Red) 1, textureSize = VV2U (V2 256 256), textureSemantic = Depth, textureSampler = SamplerDescriptor {samplerWrapS = Repeat, samplerWrapT = Nothing, samplerWrapR = Nothing, samplerMinFilter = Linear, samplerMagFilter = Linear, samplerBorderColor = VV4F (V4 0.0 0.0 0.0 1.0), samplerMinLod = Nothing, samplerMaxLod = Nothing, samplerLodBias = 0.0, samplerCompareFunc = Nothing}, textureBaseLevel = 0, textureMaxLevel = 0},TextureDescriptor {textureType = Texture2D (FloatT RGBA) 1, textureSize = VV2U (V2 256 256), textureSemantic = Color, textureSampler = SamplerDescriptor {samplerWrapS = Repeat, samplerWrapT = Nothing, samplerWrapR = Nothing, samplerMinFilter = Linear, samplerMagFilter = Linear, samplerBorderColor = VV4F (V4 0.0 0.0 0.0 1.0), samplerMinLod = Nothing, samplerMaxLod = Nothing, samplerLodBias = 0.0, samplerCompareFunc = Nothing}, textureBaseLevel = 0, textureMaxLevel = 0},TextureDescriptor {textureType = Texture2D (FloatT Red) 1, textureSize = VV2U (V2 256 256), textureSemantic = Depth, textureSampler = SamplerDescriptor {samplerWrapS = Repeat, samplerWrapT = Nothing, samplerWrapR = Nothing, samplerMinFilter = Linear, samplerMagFilter = Linear, samplerBorderColor = VV4F (V4 0.0 0.0 0.0 1.0), samplerMinLod = Nothing, samplerMaxLod = Nothing, samplerLodBias = 0.0, samplerCompareFunc = Nothing}, textureBaseLevel = 0, textureMaxLevel = 0},TextureDescriptor {textureType = Texture2D (FloatT RGBA) 1, textureSize = VV2U (V2 256 256), textureSemantic = Color, textureSampler = SamplerDescriptor {samplerWrapS = Repeat, samplerWrapT = Nothing, samplerWrapR = Nothing, samplerMinFilter = Linear, samplerMagFilter = Linear, samplerBorderColor = VV4F (V4 0.0 0.0 0.0 1.0), samplerMinLod = Nothing, samplerMaxLod = Nothing, samplerLodBias = 0.0, samplerCompareFunc = Nothing}, textureBaseLevel = 0, textureMaxLevel = 0},TextureDescriptor {textureType = Texture2D (FloatT Red) 1, textureSize = VV2U (V2 256 256), textureSemantic = Depth, textureSampler = SamplerDescriptor {samplerWrapS = Repeat, samplerWrapT = Nothing, samplerWrapR = Nothing, samplerMinFilter = Linear, samplerMagFilter = Linear, samplerBorderColor = VV4F (V4 0.0 0.0 0.0 1.0), samplerMinLod = Nothing, samplerMaxLod = Nothing, samplerLodBias = 0.0, samplerCompareFunc = Nothing}, textureBaseLevel = 0, textureMaxLevel = 0},TextureDescriptor {textureType = Texture2D (FloatT RGBA) 1, textureSize = VV2U (V2 256 256), textureSemantic = Color, textureSampler = SamplerDescriptor {samplerWrapS = Repeat, samplerWrapT = Nothing, samplerWrapR = Nothing, samplerMinFilter = Linear, samplerMagFilter = Linear, samplerBorderColor = VV4F (V4 0.0 0.0 0.0 1.0), samplerMinLod = Nothing, samplerMaxLod = Nothing, samplerLodBias = 0.0, samplerCompareFunc = Nothing}, textureBaseLevel = 0, textureMaxLevel = 0},TextureDescriptor {textureType = Texture2D (FloatT Red) 1, textureSize = VV2U (V2 256 256), textureSemantic = Depth, textureSampler = SamplerDescriptor {samplerWrapS = Repeat, samplerWrapT = Nothing, samplerWrapR = Nothing, samplerMinFilter = Linear, samplerMagFilter = Linear, samplerBorderColor = VV4F (V4 0.0 0.0 0.0 1.0), samplerMinLod = Nothing, samplerMaxLod = Nothing, samplerLodBias = 0.0, samplerCompareFunc = Nothing}, textureBaseLevel = 0, textureMaxLevel = 0},TextureDescriptor {textureType = Texture2D (FloatT RGBA) 1, textureSize = VV2U (V2 256 256), textureSemantic = Color, textureSampler = SamplerDescriptor {samplerWrapS = Repeat, samplerWrapT = Nothing, samplerWrapR = Nothing, samplerMinFilter = Linear, samplerMagFilter = Linear, samplerBorderColor = VV4F (V4 0.0 0.0 0.0 1.0), samplerMinLod = Nothing, samplerMaxLod = Nothing, samplerLodBias = 0.0, samplerCompareFunc = Nothing}, textureBaseLevel = 0, textureMaxLevel = 0},TextureDescriptor {textureType = Texture2D (FloatT Red) 1, textureSize = VV2U (V2 256 256), textureSemantic = Depth, textureSampler = SamplerDescriptor {samplerWrapS = Repeat, samplerWrapT = Nothing, samplerWrapR = Nothing, samplerMinFilter = Linear, samplerMagFilter = Linear, samplerBorderColor = VV4F (V4 0.0 0.0 0.0 1.0), samplerMinLod = Nothing, samplerMaxLod = Nothing, samplerLodBias = 0.0, samplerCompareFunc = Nothing}, textureBaseLevel = 0, textureMaxLevel = 0},TextureDescriptor {textureType = Texture2D (FloatT RGBA) 1, textureSize = VV2U (V2 256 256), textureSemantic = Color, textureSampler = SamplerDescriptor {samplerWrapS = Repeat, samplerWrapT = Nothing, samplerWrapR = Nothing, samplerMinFilter = Linear, samplerMagFilter = Linear, samplerBorderColor = VV4F (V4 0.0 0.0 0.0 1.0), samplerMinLod = Nothing, samplerMaxLod = Nothing, samplerLodBias = 0.0, samplerCompareFunc = Nothing}, textureBaseLevel = 0, textureMaxLevel = 0},TextureDescriptor {textureType = Texture2D (FloatT Red) 1, textureSize = VV2U (V2 256 256), textureSemantic = Depth, textureSampler = SamplerDescriptor {samplerWrapS = Repeat, samplerWrapT = Nothing, samplerWrapR = Nothing, samplerMinFilter = Linear, samplerMagFilter = Linear, samplerBorderColor = VV4F (V4 0.0 0.0 0.0 1.0), samplerMinLod = Nothing, samplerMaxLod = Nothing, samplerLodBias = 0.0, samplerCompareFunc = Nothing}, textureBaseLevel = 0, textureMaxLevel = 0},TextureDescriptor {textureType = Texture2D (FloatT RGBA) 1, textureSize = VV2U (V2 256 256), textureSemantic = Color, textureSampler = SamplerDescriptor {samplerWrapS = Repeat, samplerWrapT = Nothing, samplerWrapR = Nothing, samplerMinFilter = Linear, samplerMagFilter = Linear, samplerBorderColor = VV4F (V4 0.0 0.0 0.0 1.0), samplerMinLod = Nothing, samplerMaxLod = Nothing, samplerLodBias = 0.0, samplerCompareFunc = Nothing}, textureBaseLevel = 0, textureMaxLevel = 0}], samplers = [], targets = [RenderTarget {renderTargets = [TargetItem {targetSemantic = Depth, targetRef = Just (Framebuffer Depth)},TargetItem {targetSemantic = Color, targetRef = Just (Framebuffer Color)}]},RenderTarget {renderTargets = [TargetItem {targetSemantic = Depth, targetRef = Just (TextureImage 0 0 Nothing)},TargetItem {targetSemantic = Color, targetRef = Just (TextureImage 1 0 Nothing)}]},RenderTarget {renderTargets = [TargetItem {targetSemantic = Depth, targetRef = Just (TextureImage 2 0 Nothing)},TargetItem {targetSemantic = Color, targetRef = Just (TextureImage 3 0 Nothing)}]},RenderTarget {renderTargets = [TargetItem {targetSemantic = Depth, targetRef = Just (TextureImage 4 0 Nothing)},TargetItem {targetSemantic = Color, targetRef = Just (TextureImage 5 0 Nothing)}]},RenderTarget {renderTargets = [TargetItem {targetSemantic = Depth, targetRef = Just (TextureImage 6 0 Nothing)},TargetItem {targetSemantic = Color, targetRef = Just (TextureImage 7 0 Nothing)}]},RenderTarget {renderTargets = [TargetItem {targetSemantic = Depth, targetRef = Just (TextureImage 8 0 Nothing)},TargetItem {targetSemantic = Color, targetRef = Just (TextureImage 9 0 Nothing)}]},RenderTarget {renderTargets = [TargetItem {targetSemantic = Depth, targetRef = Just (TextureImage 10 0 Nothing)},TargetItem {targetSemantic = Color, targetRef = Just (TextureImage 11 0 Nothing)}]},RenderTarget {renderTargets = [TargetItem {targetSemantic = Depth, targetRef = Just (TextureImage 12 0 Nothing)},TargetItem {targetSemantic = Color, targetRef = Just (TextureImage 13 0 Nothing)}]},RenderTarget {renderTargets = [TargetItem {targetSemantic = Depth, targetRef = Just (TextureImage 14 0 Nothing)},TargetItem {targetSemantic = Color, targetRef = Just (TextureImage 15 0 Nothing)}]},RenderTarget {renderTargets = [TargetItem {targetSemantic = Depth, targetRef = Just (TextureImage 16 0 Nothing)},TargetItem {targetSemantic = Color, targetRef = Just (TextureImage 17 0 Nothing)}]},RenderTarget {renderTargets = [TargetItem {targetSemantic = Depth, targetRef = Just (TextureImage 18 0 Nothing)},TargetItem {targetSemantic = Color, targetRef = Just (TextureImage 19 0 Nothing)}]},RenderTarget {renderTargets = [TargetItem {targetSemantic = Depth, targetRef = Just (TextureImage 20 0 Nothing)},TargetItem {targetSemantic = Color, targetRef = Just (TextureImage 21 0 Nothing)}]},RenderTarget {renderTargets = [TargetItem {targetSemantic = Depth, targetRef = Just (TextureImage 22 0 Nothing)},TargetItem {targetSemantic = Color, targetRef = Just (TextureImage 23 0 Nothing)}]},RenderTarget {renderTargets = [TargetItem {targetSemantic = Depth, targetRef = Just (TextureImage 24 0 Nothing)},TargetItem {targetSemantic = Color, targetRef = Just (TextureImage 25 0 Nothing)}]},RenderTarget {renderTargets = [TargetItem {targetSemantic = Depth, targetRef = Just (TextureImage 26 0 Nothing)},TargetItem {targetSemantic = Color, targetRef = Just (TextureImage 27 0 Nothing)}]},RenderTarget {renderTargets = [TargetItem {targetSemantic = Depth, targetRef = Just (TextureImage 28 0 Nothing)},TargetItem {targetSemantic = Color, targetRef = Just (TextureImage 29 0 Nothing)}]}], programs = [Program {programUniforms = fromList [("MVP",M44F)], programStreams = fromList [("m22",Parameter {name = "position4", ty = V4F}),("n22",Parameter {name = "vertexUV", ty = V2F})], programInTextures = fromList [("u20",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform mat4 MVP ;\nin vec4 m22 ;\nin vec2 n22 ;\nsmooth out vec2 v0 ;\nvoid main() {\nv0 = n22;\ngl_Position = ( MVP ) * ( ( ( mat4 ( vec4 ( 1.0,0.0,0.0,0.0 ),vec4 ( 0.0,cos ( 0.0 ),sin ( 0.0 ),0.0 ),vec4 ( 0.0,( 0.0 ) - ( sin ( 0.0 ) ),cos ( 0.0 ),0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( m22 ) ) * ( vec4 ( 0.5,0.5,0.5,1.0 ) ) );\ngl_PointSize = 1.0;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D u20 ;\nsmooth in vec2 v0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( ( ( ( ( ( v0 ).xyxx ) * ( 0.7 ) ) + ( texture2D ( u20,v0 ) ) ) * ( 0.7 ) ) * ( vec4 ( 1.0,1.0,1.0,0.0 ) ) ) + ( vec4 ( 0.0,0.0,0.0,1.0 ) );\n}\n"},Program {programUniforms = fromList [("MVP",M44F)], programStreams = fromList [("o25",Parameter {name = "position4", ty = V4F}),("p25",Parameter {name = "vertexUV", ty = V2F})], programInTextures = fromList [("k19",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform mat4 MVP ;\nin vec4 o25 ;\nin vec2 p25 ;\nsmooth out vec2 v0 ;\nvoid main() {\nv0 = p25;\ngl_Position = ( MVP ) * ( ( ( mat4 ( vec4 ( 1.0,0.0,0.0,0.0 ),vec4 ( 0.0,cos ( 0.1 ),sin ( 0.1 ),0.0 ),vec4 ( 0.0,( 0.0 ) - ( sin ( 0.1 ) ),cos ( 0.1 ),0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( o25 ) ) * ( vec4 ( 0.5,0.5,0.5,1.0 ) ) );\ngl_PointSize = 1.0;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D k19 ;\nsmooth in vec2 v0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( ( ( ( ( ( v0 ).xyxx ) * ( 0.7 ) ) + ( texture2D ( k19,v0 ) ) ) * ( 0.7 ) ) * ( vec4 ( 1.0,1.0,1.0,0.0 ) ) ) + ( vec4 ( 0.0,0.0,0.0,1.0 ) );\n}\n"},Program {programUniforms = fromList [("MVP",M44F)], programStreams = fromList [("q28",Parameter {name = "position4", ty = V4F}),("r28",Parameter {name = "vertexUV", ty = V2F})], programInTextures = fromList [("a18",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform mat4 MVP ;\nin vec4 q28 ;\nin vec2 r28 ;\nsmooth out vec2 v0 ;\nvoid main() {\nv0 = r28;\ngl_Position = ( MVP ) * ( ( ( mat4 ( vec4 ( 1.0,0.0,0.0,0.0 ),vec4 ( 0.0,cos ( 0.2 ),sin ( 0.2 ),0.0 ),vec4 ( 0.0,( 0.0 ) - ( sin ( 0.2 ) ),cos ( 0.2 ),0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( q28 ) ) * ( vec4 ( 0.5,0.5,0.5,1.0 ) ) );\ngl_PointSize = 1.0;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D a18 ;\nsmooth in vec2 v0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( ( ( ( ( ( v0 ).xyxx ) * ( 0.7 ) ) + ( texture2D ( a18,v0 ) ) ) * ( 0.7 ) ) * ( vec4 ( 1.0,1.0,1.0,0.0 ) ) ) + ( vec4 ( 0.0,0.0,0.0,1.0 ) );\n}\n"},Program {programUniforms = fromList [("MVP",M44F)], programStreams = fromList [("s31",Parameter {name = "position4", ty = V4F}),("t31",Parameter {name = "vertexUV", ty = V2F})], programInTextures = fromList [("q16",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform mat4 MVP ;\nin vec4 s31 ;\nin vec2 t31 ;\nsmooth out vec2 v0 ;\nvoid main() {\nv0 = t31;\ngl_Position = ( MVP ) * ( ( ( mat4 ( vec4 ( 1.0,0.0,0.0,0.0 ),vec4 ( 0.0,cos ( 0.3 ),sin ( 0.3 ),0.0 ),vec4 ( 0.0,( 0.0 ) - ( sin ( 0.3 ) ),cos ( 0.3 ),0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( s31 ) ) * ( vec4 ( 0.5,0.5,0.5,1.0 ) ) );\ngl_PointSize = 1.0;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D q16 ;\nsmooth in vec2 v0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( ( ( ( ( ( v0 ).xyxx ) * ( 0.7 ) ) + ( texture2D ( q16,v0 ) ) ) * ( 0.7 ) ) * ( vec4 ( 1.0,1.0,1.0,0.0 ) ) ) + ( vec4 ( 0.0,0.0,0.0,1.0 ) );\n}\n"},Program {programUniforms = fromList [("MVP",M44F)], programStreams = fromList [("u34",Parameter {name = "position4", ty = V4F}),("v34",Parameter {name = "vertexUV", ty = V2F})], programInTextures = fromList [("g15",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform mat4 MVP ;\nin vec4 u34 ;\nin vec2 v34 ;\nsmooth out vec2 v0 ;\nvoid main() {\nv0 = v34;\ngl_Position = ( MVP ) * ( ( ( mat4 ( vec4 ( 1.0,0.0,0.0,0.0 ),vec4 ( 0.0,cos ( 0.4 ),sin ( 0.4 ),0.0 ),vec4 ( 0.0,( 0.0 ) - ( sin ( 0.4 ) ),cos ( 0.4 ),0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( u34 ) ) * ( vec4 ( 0.5,0.5,0.5,1.0 ) ) );\ngl_PointSize = 1.0;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D g15 ;\nsmooth in vec2 v0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( ( ( ( ( ( v0 ).xyxx ) * ( 0.7 ) ) + ( texture2D ( g15,v0 ) ) ) * ( 0.7 ) ) * ( vec4 ( 1.0,1.0,1.0,0.0 ) ) ) + ( vec4 ( 0.0,0.0,0.0,1.0 ) );\n}\n"},Program {programUniforms = fromList [("MVP",M44F)], programStreams = fromList [("w37",Parameter {name = "position4", ty = V4F}),("x37",Parameter {name = "vertexUV", ty = V2F})], programInTextures = fromList [("w13",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform mat4 MVP ;\nin vec4 w37 ;\nin vec2 x37 ;\nsmooth out vec2 v0 ;\nvoid main() {\nv0 = x37;\ngl_Position = ( MVP ) * ( ( ( mat4 ( vec4 ( 1.0,0.0,0.0,0.0 ),vec4 ( 0.0,cos ( 0.5 ),sin ( 0.5 ),0.0 ),vec4 ( 0.0,( 0.0 ) - ( sin ( 0.5 ) ),cos ( 0.5 ),0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( w37 ) ) * ( vec4 ( 0.5,0.5,0.5,1.0 ) ) );\ngl_PointSize = 1.0;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D w13 ;\nsmooth in vec2 v0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( ( ( ( ( ( v0 ).xyxx ) * ( 0.7 ) ) + ( texture2D ( w13,v0 ) ) ) * ( 0.7 ) ) * ( vec4 ( 1.0,1.0,1.0,0.0 ) ) ) + ( vec4 ( 0.0,0.0,0.0,1.0 ) );\n}\n"},Program {programUniforms = fromList [("MVP",M44F)], programStreams = fromList [("y40",Parameter {name = "position4", ty = V4F}),("z40",Parameter {name = "vertexUV", ty = V2F})], programInTextures = fromList [("m12",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform mat4 MVP ;\nin vec4 y40 ;\nin vec2 z40 ;\nsmooth out vec2 v0 ;\nvoid main() {\nv0 = z40;\ngl_Position = ( MVP ) * ( ( ( mat4 ( vec4 ( 1.0,0.0,0.0,0.0 ),vec4 ( 0.0,cos ( 0.6 ),sin ( 0.6 ),0.0 ),vec4 ( 0.0,( 0.0 ) - ( sin ( 0.6 ) ),cos ( 0.6 ),0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( y40 ) ) * ( vec4 ( 0.5,0.5,0.5,1.0 ) ) );\ngl_PointSize = 1.0;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D m12 ;\nsmooth in vec2 v0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( ( ( ( ( ( v0 ).xyxx ) * ( 0.7 ) ) + ( texture2D ( m12,v0 ) ) ) * ( 0.7 ) ) * ( vec4 ( 1.0,1.0,1.0,0.0 ) ) ) + ( vec4 ( 0.0,0.0,0.0,1.0 ) );\n}\n"},Program {programUniforms = fromList [("MVP",M44F)], programStreams = fromList [("a44",Parameter {name = "position4", ty = V4F}),("b44",Parameter {name = "vertexUV", ty = V2F})], programInTextures = fromList [("c11",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform mat4 MVP ;\nin vec4 a44 ;\nin vec2 b44 ;\nsmooth out vec2 v0 ;\nvoid main() {\nv0 = b44;\ngl_Position = ( MVP ) * ( ( ( mat4 ( vec4 ( 1.0,0.0,0.0,0.0 ),vec4 ( 0.0,cos ( 0.7 ),sin ( 0.7 ),0.0 ),vec4 ( 0.0,( 0.0 ) - ( sin ( 0.7 ) ),cos ( 0.7 ),0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( a44 ) ) * ( vec4 ( 0.5,0.5,0.5,1.0 ) ) );\ngl_PointSize = 1.0;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D c11 ;\nsmooth in vec2 v0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( ( ( ( ( ( v0 ).xyxx ) * ( 0.7 ) ) + ( texture2D ( c11,v0 ) ) ) * ( 0.7 ) ) * ( vec4 ( 1.0,1.0,1.0,0.0 ) ) ) + ( vec4 ( 0.0,0.0,0.0,1.0 ) );\n}\n"},Program {programUniforms = fromList [("MVP",M44F)], programStreams = fromList [("c47",Parameter {name = "position4", ty = V4F}),("d47",Parameter {name = "vertexUV", ty = V2F})], programInTextures = fromList [("s9",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform mat4 MVP ;\nin vec4 c47 ;\nin vec2 d47 ;\nsmooth out vec2 v0 ;\nvoid main() {\nv0 = d47;\ngl_Position = ( MVP ) * ( ( ( mat4 ( vec4 ( 1.0,0.0,0.0,0.0 ),vec4 ( 0.0,cos ( 0.8 ),sin ( 0.8 ),0.0 ),vec4 ( 0.0,( 0.0 ) - ( sin ( 0.8 ) ),cos ( 0.8 ),0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( c47 ) ) * ( vec4 ( 0.5,0.5,0.5,1.0 ) ) );\ngl_PointSize = 1.0;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D s9 ;\nsmooth in vec2 v0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( ( ( ( ( ( v0 ).xyxx ) * ( 0.7 ) ) + ( texture2D ( s9,v0 ) ) ) * ( 0.7 ) ) * ( vec4 ( 1.0,1.0,1.0,0.0 ) ) ) + ( vec4 ( 0.0,0.0,0.0,1.0 ) );\n}\n"},Program {programUniforms = fromList [("MVP",M44F)], programStreams = fromList [("e50",Parameter {name = "position4", ty = V4F}),("f50",Parameter {name = "vertexUV", ty = V2F})], programInTextures = fromList [("i8",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform mat4 MVP ;\nin vec4 e50 ;\nin vec2 f50 ;\nsmooth out vec2 v0 ;\nvoid main() {\nv0 = f50;\ngl_Position = ( MVP ) * ( ( ( mat4 ( vec4 ( 1.0,0.0,0.0,0.0 ),vec4 ( 0.0,cos ( 0.9 ),sin ( 0.9 ),0.0 ),vec4 ( 0.0,( 0.0 ) - ( sin ( 0.9 ) ),cos ( 0.9 ),0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( e50 ) ) * ( vec4 ( 0.5,0.5,0.5,1.0 ) ) );\ngl_PointSize = 1.0;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D i8 ;\nsmooth in vec2 v0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( ( ( ( ( ( v0 ).xyxx ) * ( 0.7 ) ) + ( texture2D ( i8,v0 ) ) ) * ( 0.7 ) ) * ( vec4 ( 1.0,1.0,1.0,0.0 ) ) ) + ( vec4 ( 0.0,0.0,0.0,1.0 ) );\n}\n"},Program {programUniforms = fromList [("MVP",M44F)], programStreams = fromList [("g53",Parameter {name = "position4", ty = V4F}),("h53",Parameter {name = "vertexUV", ty = V2F})], programInTextures = fromList [("y6",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform mat4 MVP ;\nin vec4 g53 ;\nin vec2 h53 ;\nsmooth out vec2 v0 ;\nvoid main() {\nv0 = h53;\ngl_Position = ( MVP ) * ( ( ( mat4 ( vec4 ( 1.0,0.0,0.0,0.0 ),vec4 ( 0.0,cos ( 1.0 ),sin ( 1.0 ),0.0 ),vec4 ( 0.0,( 0.0 ) - ( sin ( 1.0 ) ),cos ( 1.0 ),0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( g53 ) ) * ( vec4 ( 0.5,0.5,0.5,1.0 ) ) );\ngl_PointSize = 1.0;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D y6 ;\nsmooth in vec2 v0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( ( ( ( ( ( v0 ).xyxx ) * ( 0.7 ) ) + ( texture2D ( y6,v0 ) ) ) * ( 0.7 ) ) * ( vec4 ( 1.0,1.0,1.0,0.0 ) ) ) + ( vec4 ( 0.0,0.0,0.0,1.0 ) );\n}\n"},Program {programUniforms = fromList [("MVP",M44F)], programStreams = fromList [("i56",Parameter {name = "position4", ty = V4F}),("j56",Parameter {name = "vertexUV", ty = V2F})], programInTextures = fromList [("o5",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform mat4 MVP ;\nin vec4 i56 ;\nin vec2 j56 ;\nsmooth out vec2 v0 ;\nvoid main() {\nv0 = j56;\ngl_Position = ( MVP ) * ( ( ( mat4 ( vec4 ( 1.0,0.0,0.0,0.0 ),vec4 ( 0.0,cos ( 1.1 ),sin ( 1.1 ),0.0 ),vec4 ( 0.0,( 0.0 ) - ( sin ( 1.1 ) ),cos ( 1.1 ),0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( i56 ) ) * ( vec4 ( 0.5,0.5,0.5,1.0 ) ) );\ngl_PointSize = 1.0;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D o5 ;\nsmooth in vec2 v0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( ( ( ( ( ( v0 ).xyxx ) * ( 0.7 ) ) + ( texture2D ( o5,v0 ) ) ) * ( 0.7 ) ) * ( vec4 ( 1.0,1.0,1.0,0.0 ) ) ) + ( vec4 ( 0.0,0.0,0.0,1.0 ) );\n}\n"},Program {programUniforms = fromList [("MVP",M44F)], programStreams = fromList [("k59",Parameter {name = "position4", ty = V4F}),("l59",Parameter {name = "vertexUV", ty = V2F})], programInTextures = fromList [("e4",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform mat4 MVP ;\nin vec4 k59 ;\nin vec2 l59 ;\nsmooth out vec2 v0 ;\nvoid main() {\nv0 = l59;\ngl_Position = ( MVP ) * ( ( ( mat4 ( vec4 ( 1.0,0.0,0.0,0.0 ),vec4 ( 0.0,cos ( 1.2 ),sin ( 1.2 ),0.0 ),vec4 ( 0.0,( 0.0 ) - ( sin ( 1.2 ) ),cos ( 1.2 ),0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( k59 ) ) * ( vec4 ( 0.5,0.5,0.5,1.0 ) ) );\ngl_PointSize = 1.0;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D e4 ;\nsmooth in vec2 v0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( ( ( ( ( ( v0 ).xyxx ) * ( 0.7 ) ) + ( texture2D ( e4,v0 ) ) ) * ( 0.7 ) ) * ( vec4 ( 1.0,1.0,1.0,0.0 ) ) ) + ( vec4 ( 0.0,0.0,0.0,1.0 ) );\n}\n"},Program {programUniforms = fromList [("MVP",M44F)], programStreams = fromList [("m62",Parameter {name = "position4", ty = V4F}),("n62",Parameter {name = "vertexUV", ty = V2F})], programInTextures = fromList [("u2",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform mat4 MVP ;\nin vec4 m62 ;\nin vec2 n62 ;\nsmooth out vec2 v0 ;\nvoid main() {\nv0 = n62;\ngl_Position = ( MVP ) * ( ( ( mat4 ( vec4 ( 1.0,0.0,0.0,0.0 ),vec4 ( 0.0,cos ( 1.3 ),sin ( 1.3 ),0.0 ),vec4 ( 0.0,( 0.0 ) - ( sin ( 1.3 ) ),cos ( 1.3 ),0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( m62 ) ) * ( vec4 ( 0.5,0.5,0.5,1.0 ) ) );\ngl_PointSize = 1.0;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D u2 ;\nsmooth in vec2 v0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( ( ( ( ( ( v0 ).xyxx ) * ( 0.7 ) ) + ( texture2D ( u2,v0 ) ) ) * ( 0.7 ) ) * ( vec4 ( 1.0,1.0,1.0,0.0 ) ) ) + ( vec4 ( 0.0,0.0,0.0,1.0 ) );\n}\n"},Program {programUniforms = fromList [("MVP",M44F)], programStreams = fromList [("o65",Parameter {name = "position4", ty = V4F}),("p65",Parameter {name = "vertexUV", ty = V2F})], programInTextures = fromList [("k1",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform mat4 MVP ;\nin vec4 o65 ;\nin vec2 p65 ;\nsmooth out vec2 v0 ;\nvoid main() {\nv0 = p65;\ngl_Position = ( MVP ) * ( ( ( mat4 ( vec4 ( 1.0,0.0,0.0,0.0 ),vec4 ( 0.0,cos ( 1.4 ),sin ( 1.4 ),0.0 ),vec4 ( 0.0,( 0.0 ) - ( sin ( 1.4 ) ),cos ( 1.4 ),0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( o65 ) ) * ( vec4 ( 0.5,0.5,0.5,1.0 ) ) );\ngl_PointSize = 1.0;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D k1 ;\nsmooth in vec2 v0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( ( ( ( ( ( v0 ).xyxx ) * ( 0.7 ) ) + ( texture2D ( k1,v0 ) ) ) * ( 0.7 ) ) * ( vec4 ( 1.0,1.0,1.0,0.0 ) ) ) + ( vec4 ( 0.0,0.0,0.0,1.0 ) );\n}\n"}], slots = [Slot {slotName = "stream4", slotStreams = fromList [("position4",V4F),("vertexUV",V2F)], slotUniforms = fromList [("MVP",M44F)], slotPrimitive = Triangles, slotPrograms = [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14]}], streams = [], commands = [SetRenderTarget 15,ClearRenderTarget [ClearImage {imageSemantic = Depth, clearValue = VFloat 1000.0},ClearImage {imageSemantic = Color, clearValue = VV4F (V4 0.0 0.0 0.0 1.0)}],SetRenderTarget 14,ClearRenderTarget [ClearImage {imageSemantic = Depth, clearValue = VFloat 1000.0},ClearImage {imageSemantic = Color, clearValue = VV4F (V4 0.0 0.0 0.0 1.0)}],SetProgram 0,SetTexture 0 29,SetSamplerUniform "u20" 0,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 0,SetRenderTarget 13,ClearRenderTarget [ClearImage {imageSemantic = Depth, clearValue = VFloat 1000.0},ClearImage {imageSemantic = Color, clearValue = VV4F (V4 0.0 0.0 0.0 1.0)}],SetProgram 1,SetTexture 0 27,SetSamplerUniform "k19" 0,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 0,SetRenderTarget 12,ClearRenderTarget [ClearImage {imageSemantic = Depth, clearValue = VFloat 1000.0},ClearImage {imageSemantic = Color, clearValue = VV4F (V4 0.0 0.0 0.0 1.0)}],SetProgram 2,SetTexture 0 25,SetSamplerUniform "a18" 0,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 0,SetRenderTarget 11,ClearRenderTarget [ClearImage {imageSemantic = Depth, clearValue = VFloat 1000.0},ClearImage {imageSemantic = Color, clearValue = VV4F (V4 0.0 0.0 0.0 1.0)}],SetProgram 3,SetTexture 0 23,SetSamplerUniform "q16" 0,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 0,SetRenderTarget 10,ClearRenderTarget [ClearImage {imageSemantic = Depth, clearValue = VFloat 1000.0},ClearImage {imageSemantic = Color, clearValue = VV4F (V4 0.0 0.0 0.0 1.0)}],SetProgram 4,SetTexture 0 21,SetSamplerUniform "g15" 0,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 0,SetRenderTarget 9,ClearRenderTarget [ClearImage {imageSemantic = Depth, clearValue = VFloat 1000.0},ClearImage {imageSemantic = Color, clearValue = VV4F (V4 0.0 0.0 0.0 1.0)}],SetProgram 5,SetTexture 0 19,SetSamplerUniform "w13" 0,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 0,SetRenderTarget 8,ClearRenderTarget [ClearImage {imageSemantic = Depth, clearValue = VFloat 1000.0},ClearImage {imageSemantic = Color, clearValue = VV4F (V4 0.0 0.0 0.0 1.0)}],SetProgram 6,SetTexture 0 17,SetSamplerUniform "m12" 0,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 0,SetRenderTarget 7,ClearRenderTarget [ClearImage {imageSemantic = Depth, clearValue = VFloat 1000.0},ClearImage {imageSemantic = Color, clearValue = VV4F (V4 0.0 0.0 0.0 1.0)}],SetProgram 7,SetTexture 0 15,SetSamplerUniform "c11" 0,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 0,SetRenderTarget 6,ClearRenderTarget [ClearImage {imageSemantic = Depth, clearValue = VFloat 1000.0},ClearImage {imageSemantic = Color, clearValue = VV4F (V4 0.0 0.0 0.0 1.0)}],SetProgram 8,SetTexture 0 13,SetSamplerUniform "s9" 0,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 0,SetRenderTarget 5,ClearRenderTarget [ClearImage {imageSemantic = Depth, clearValue = VFloat 1000.0},ClearImage {imageSemantic = Color, clearValue = VV4F (V4 0.0 0.0 0.0 1.0)}],SetProgram 9,SetTexture 0 11,SetSamplerUniform "i8" 0,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 0,SetRenderTarget 4,ClearRenderTarget [ClearImage {imageSemantic = Depth, clearValue = VFloat 1000.0},ClearImage {imageSemantic = Color, clearValue = VV4F (V4 0.0 0.0 0.0 1.0)}],SetProgram 10,SetTexture 0 9,SetSamplerUniform "y6" 0,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 0,SetRenderTarget 3,ClearRenderTarget [ClearImage {imageSemantic = Depth, clearValue = VFloat 1000.0},ClearImage {imageSemantic = Color, clearValue = VV4F (V4 0.0 0.0 0.0 1.0)}],SetProgram 11,SetTexture 0 7,SetSamplerUniform "o5" 0,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 0,SetRenderTarget 2,ClearRenderTarget [ClearImage {imageSemantic = Depth, clearValue = VFloat 1000.0},ClearImage {imageSemantic = Color, clearValue = VV4F (V4 0.0 0.0 0.0 1.0)}],SetProgram 12,SetTexture 0 5,SetSamplerUniform "e4" 0,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 0,SetRenderTarget 1,ClearRenderTarget [ClearImage {imageSemantic = Depth, clearValue = VFloat 1000.0},ClearImage {imageSemantic = Color, clearValue = VV4F (V4 0.0 0.0 0.0 1.0)}],SetProgram 13,SetTexture 0 3,SetSamplerUniform "u2" 0,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 0,SetRenderTarget 0,ClearRenderTarget [ClearImage {imageSemantic = Depth, clearValue = VFloat 1000.0},ClearImage {imageSemantic = Color, clearValue = VV4F (V4 0.0 0.0 0.0 1.0)}],SetProgram 14,SetTexture 0 1,SetSamplerUniform "k1" 0,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 0]} \ No newline at end of file
diff --git a/testdata/simple03.out b/testdata/simple03.out
index 06837010..634bc7d3 100644
--- a/testdata/simple03.out
+++ b/testdata/simple03.out
@@ -1 +1 @@
Pipeline {backend = OpenGL33, textures = [], samplers = [], targets = [RenderTarget {renderTargets = [TargetItem {targetSemantic = Depth, targetRef = Just (Framebuffer Depth)},TargetItem {targetSemantic = Color, targetRef = Just (Framebuffer Color)}]}], programs = [Program {programUniforms = fromList [("viewProj",M44F)], programStreams = fromList [("a2",Parameter {name = "color", ty = V3F}),("z1",Parameter {name = "position", ty = V3F})], programInTextures = fromList [], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform mat4 viewProj ;\nin vec3 z1 ;\nin vec3 a2 ;\nsmooth out vec4 v0 ;\nvoid main() {\nv0 = vec4 ( 0.0,0.0,0.0,1.0 );\ngl_Position = ( viewProj ) * ( vec4 ( 0.0,0.0,0.0,1.0 ) );\ngl_PointSize = 1.0;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nsmooth in vec4 v0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = vec4 ( 1.0,1.0,1.0,1.0 );\n}\n"},Program {programUniforms = fromList [("viewProj",M44F)], programStreams = fromList [("l4",Parameter {name = "position", ty = V3F}),("m4",Parameter {name = "color", ty = V3F})], programInTextures = fromList [], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform mat4 viewProj ;\nin vec3 l4 ;\nin vec3 m4 ;\nsmooth out vec4 v0 ;\nvoid main() {\nv0 = vec4 ( 0.0,0.0,0.0,1.0 );\ngl_Position = ( viewProj ) * ( vec4 ( 0.0,0.0,0.0,1.0 ) );\ngl_PointSize = 1.0;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nsmooth in vec4 v0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = v0;\n}\n"}], slots = [Slot {slotName = "missing shader", slotStreams = fromList [("color",V3F),("position",V3F)], slotUniforms = fromList [("viewProj",M44F)], slotPrimitive = Triangles, slotPrograms = [0,1]}], streams = [], commands = [SetRenderTarget 0,ClearRenderTarget [ClearImage {imageSemantic = Depth, clearValue = VFloat 1000.0},ClearImage {imageSemantic = Color, clearValue = VV4F (V4 0.0 0.0 0.4 1.0)}],SetProgram 1,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset FirstVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 0,SetProgram 0,SetRasterContext (TriangleCtx CullNone (PolygonLine 20.0) (Offset (-1.0) 0.0) FirstVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 0]} \ No newline at end of file Pipeline {backend = OpenGL33, textures = [], samplers = [], targets = [RenderTarget {renderTargets = [TargetItem {targetSemantic = Depth, targetRef = Just (Framebuffer Depth)},TargetItem {targetSemantic = Color, targetRef = Just (Framebuffer Color)}]}], programs = [Program {programUniforms = fromList [("viewProj",M44F)], programStreams = fromList [("a2",Parameter {name = "color", ty = V3F}),("z1",Parameter {name = "position", ty = V3F})], programInTextures = fromList [], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform mat4 viewProj ;\nin vec3 z1 ;\nin vec3 a2 ;\nsmooth out vec4 v0 ;\nvoid main() {\nv0 = vec4 ( ( a2 ).x,( a2 ).y,( a2 ).z,1.0 );\ngl_Position = ( viewProj ) * ( vec4 ( ( z1 ).x,( z1 ).y,( z1 ).z,1.0 ) );\ngl_PointSize = 1.0;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nsmooth in vec4 v0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = vec4 ( 1.0,1.0,1.0,1.0 );\n}\n"},Program {programUniforms = fromList [("viewProj",M44F)], programStreams = fromList [("x4",Parameter {name = "position", ty = V3F}),("y4",Parameter {name = "color", ty = V3F})], programInTextures = fromList [], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform mat4 viewProj ;\nin vec3 x4 ;\nin vec3 y4 ;\nsmooth out vec4 v0 ;\nvoid main() {\nv0 = vec4 ( ( y4 ).x,( y4 ).y,( y4 ).z,1.0 );\ngl_Position = ( viewProj ) * ( vec4 ( ( x4 ).x,( x4 ).y,( x4 ).z,1.0 ) );\ngl_PointSize = 1.0;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nsmooth in vec4 v0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = v0;\n}\n"}], slots = [Slot {slotName = "missing shader", slotStreams = fromList [("color",V3F),("position",V3F)], slotUniforms = fromList [("viewProj",M44F)], slotPrimitive = Triangles, slotPrograms = [0,1]}], streams = [], commands = [SetRenderTarget 0,ClearRenderTarget [ClearImage {imageSemantic = Depth, clearValue = VFloat 1000.0},ClearImage {imageSemantic = Color, clearValue = VV4F (V4 0.0 0.0 0.4 1.0)}],SetProgram 1,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset FirstVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 0,SetProgram 0,SetRasterContext (TriangleCtx CullNone (PolygonLine 20.0) (Offset (-1.0) 0.0) FirstVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 0]} \ No newline at end of file
diff --git a/testdata/typeclass.out b/testdata/typeclass.out
index 6aa30432..02b9ed55 100644
--- a/testdata/typeclass.out
+++ b/testdata/typeclass.out
@@ -27,11 +27,10 @@ testdata/typeclass.lc 16:7-16:9 'Bool -> 'Bool->'Bool
27testdata/typeclass.lc 19:7-19:9 {a} -> a->a -> a 27testdata/typeclass.lc 19:7-19:9 {a} -> a->a -> a
28testdata/typeclass.lc 24:10-28:23 V0->V1 28testdata/typeclass.lc 24:10-28:23 V0->V1
29testdata/typeclass.lc 24:10-28:23 V1 29testdata/typeclass.lc 24:10-28:23 V1
30testdata/typeclass.lc 24:10-28:23 V0->Type 30testdata/typeclass.lc 24:10-28:23 Type->Type
31testdata/typeclass.lc 24:10-28:23 Type 31testdata/typeclass.lc 24:10-28:23 Type
32testdata/typeclass.lc 24:10-24:12 Type 32testdata/typeclass.lc 24:10-24:12 Type
33testdata/typeclass.lc 24:13-24:17 Type 33testdata/typeclass.lc 24:13-24:17 Type
34testdata/typeclass.lc 24:13-24:17 V1
35testdata/typeclass.lc 28:10-28:23 Type 34testdata/typeclass.lc 28:10-28:23 Type
36testdata/typeclass.lc 28:10-28:20 Type->Type 35testdata/typeclass.lc 28:10-28:20 Type->Type
37testdata/typeclass.lc 28:10-28:20 Type 36testdata/typeclass.lc 28:10-28:20 Type