summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lc/Builtins.lc33
-rw-r--r--lc/Prelude.lc14
-rw-r--r--src/LambdaCube/Compiler/CoreToIR.hs20
-rw-r--r--testdata/Builtins.out3441
-rw-r--r--testdata/HyperbolicParaboloic.out2
-rw-r--r--testdata/Hyperboloid.out2
-rw-r--r--testdata/NewStyle.out2
-rw-r--r--testdata/Prelude.out1879
-rw-r--r--testdata/PrimReduce.out2
-rw-r--r--testdata/Spiral.out2
-rw-r--r--testdata/example06.out2
-rw-r--r--testdata/example07.out2
-rw-r--r--testdata/example08.out2
-rw-r--r--testdata/fetcharrays01.out2
-rw-r--r--testdata/fragment01.out2
-rw-r--r--testdata/fragment03swizzling.out2
-rw-r--r--testdata/fragment04ifthenelse.out2
-rw-r--r--testdata/fragment07let.out2
-rw-r--r--testdata/gfx02.out2
-rw-r--r--testdata/gfx03.out2
-rw-r--r--testdata/gfx04.out2
-rw-r--r--testdata/gfx05.out2
-rw-r--r--testdata/heartbeat01.out2
-rw-r--r--testdata/helloWorld.out2
-rw-r--r--testdata/line01.out2
-rw-r--r--testdata/point01.out2
-rw-r--r--testdata/recursivetexture01.out2
-rw-r--r--testdata/recursivetexture02.out2
-rw-r--r--testdata/reduce01.out2
-rw-r--r--testdata/reduce05.out2
-rw-r--r--testdata/simple02.out2
-rw-r--r--testdata/simple03.out2
-rw-r--r--testdata/texture01.out2
-rw-r--r--testdata/texture02.out2
-rw-r--r--testdata/uniformparam01.out2
-rw-r--r--testdata/uniformparam02.out2
-rw-r--r--testdata/uniformparam03.out2
37 files changed, 2706 insertions, 2745 deletions
diff --git a/lc/Builtins.lc b/lc/Builtins.lc
index c1991a2b..414f0f6d 100644
--- a/lc/Builtins.lc
+++ b/lc/Builtins.lc
@@ -302,18 +302,26 @@ type family FragOps' a where
302 FragOps' (t1, t2, t3, t4, t5) = (FragmentOperation t1, FragmentOperation t2, FragmentOperation t3, FragmentOperation t4, FragmentOperation t5) 302 FragOps' (t1, t2, t3, t4, t5) = (FragmentOperation t1, FragmentOperation t2, FragmentOperation t3, FragmentOperation t4, FragmentOperation t5)
303 FragOps' t = (FragmentOperation t) 303 FragOps' t = (FragmentOperation t)
304 304
305data Stream a 305[] ++ ys = ys
306x:xs ++ ys = x : xs ++ ys
306 307
307mapStream :: (a -> b) -> Stream a -> Stream b 308foldr f e [] = e
308concatMapStream :: (a -> Stream b) -> Stream a -> Stream b 309foldr f e (x: xs) = f x (foldr f e xs)
309filterStream :: (a -> Bool) -> Stream a -> Stream a 310
311concat = foldr (++) []
312
313map _ [] = []
314map f (x:xs) = f x : map f xs
315
316concatMap :: (a -> [b]) -> [a] -> [b]
317concatMap f x = concat (map f x)
310 318
311data Primitive a :: PrimitiveType -> Type where 319data Primitive a :: PrimitiveType -> Type where
312 PrimPoint :: a -> Primitive a Point 320 PrimPoint :: a -> Primitive a Point
313 PrimLine :: a -> a -> Primitive a Line 321 PrimLine :: a -> a -> Primitive a Line
314 PrimTriangle :: a -> a -> a -> Primitive a Triangle 322 PrimTriangle :: a -> a -> a -> Primitive a Triangle
315 323
316type PrimitiveStream a t = Stream (Primitive t a) 324type PrimitiveStream a t = [Primitive t a]
317 325
318mapPrimitive :: (a -> b) -> Primitive a p -> Primitive b p 326mapPrimitive :: (a -> b) -> Primitive a p -> Primitive b p
319{- todo 327{- todo
@@ -326,7 +334,7 @@ fetch_ :: forall a t . (AttributeTuple t) => String -> t -> Primit
326fetchArrays_ :: forall a t t' . (AttributeTuple t, t ~ FTRepr' t') => t' -> PrimitiveStream a t 334fetchArrays_ :: forall a t t' . (AttributeTuple t, t ~ FTRepr' t') => t' -> PrimitiveStream a t
327 335
328mapPrimitives :: (t' -> t) -> PrimitiveStream a t' -> PrimitiveStream a t 336mapPrimitives :: (t' -> t) -> PrimitiveStream a t' -> PrimitiveStream a t
329mapPrimitives f = mapStream (mapPrimitive f) 337mapPrimitives f = map (mapPrimitive f)
330 338
331fetch s a t = fetch_ @a s t 339fetch s a t = fetch_ @a s t
332fetchArrays a t = fetchArrays_ @a t 340fetchArrays a t = fetchArrays_ @a t
@@ -360,22 +368,22 @@ data SimpleFragment t = SimpleFragment
360 , sFragmentValue :: t 368 , sFragmentValue :: t
361 } 369 }
362 370
363type FragmentStream n t = Stream (Fragment n t) 371type FragmentStream n t = [Fragment n t]
364 372
365customizeDepth :: (a -> Float) -> Fragment n a -> Fragment n a 373customizeDepth :: (a -> Float) -> Fragment n a -> Fragment n a
366 374
367customizeDepths :: (a -> Float) -> FragmentStream n a -> FragmentStream n a 375customizeDepths :: (a -> Float) -> FragmentStream n a -> FragmentStream n a
368customizeDepths f = mapStream (customizeDepth f) 376customizeDepths f = map (customizeDepth f)
369 377
370filterFragment :: (a -> Bool) -> Fragment n a -> Fragment n a 378filterFragment :: (a -> Bool) -> Fragment n a -> Fragment n a
371 379
372filterFragments :: (a -> Bool) -> FragmentStream n a -> FragmentStream n a 380filterFragments :: (a -> Bool) -> FragmentStream n a -> FragmentStream n a
373filterFragments p = mapStream (filterFragment p) 381filterFragments p = map (filterFragment p)
374 382
375mapFragment :: (a -> b) -> Fragment n a -> Fragment n b 383mapFragment :: (a -> b) -> Fragment n a -> Fragment n b
376 384
377mapFragments :: (a -> b) -> FragmentStream n a -> FragmentStream n b 385mapFragments :: (a -> b) -> FragmentStream n a -> FragmentStream n b
378mapFragments f = mapStream (mapFragment f) 386mapFragments f = map (mapFragment f)
379 387
380 388
381data Interpolated t where 389data Interpolated t where
@@ -397,8 +405,7 @@ rasterize
397 -> Primitive a x 405 -> Primitive a x
398 -> FragmentStream 1 b 406 -> FragmentStream 1 b
399 407
400rasterizePrimitives ctx is = concatMapStream (rasterize is ctx) 408rasterizePrimitives ctx is s = concat (map (rasterize is ctx) s)
401--rasterizePrimitivesWithPointSize ctx ps is = concatMapStream (rasterize ps is ctx)
402 409
403data Image :: Nat -> Type -> Type where 410data Image :: Nat -> Type -> Type where
404 ColorImage :: forall a d t color . (Num t, color ~ VecScalar d t) 411 ColorImage :: forall a d t color . (Num t, color ~ VecScalar d t)
@@ -429,7 +436,7 @@ instance (DefaultFragOp a, DefaultFragOp b) => DefaultFragOps (FragmentOperation
429 (defaultFragOp @a @_, defaultFragOp @b @_) 436 (defaultFragOp @a @_, defaultFragOp @b @_)
430-} 437-}
431data FrameBuffer (n :: Nat) b where 438data FrameBuffer (n :: Nat) b where
432 Accumulate :: FragOps' b -> (FragmentStream n (RemSemantics b)) -> FrameBuffer n b -> FrameBuffer n b 439 Accumulate :: FragOps' b -> FragmentStream n (RemSemantics b) -> FrameBuffer n b -> FrameBuffer n b
433 FrameBuffer :: (ValidFrameBuffer b, SameLayerCounts a, PreFrameBuffer n b ~ TFFrameBuffer a) => a -> FrameBuffer n b 440 FrameBuffer :: (ValidFrameBuffer b, SameLayerCounts a, PreFrameBuffer n b ~ TFFrameBuffer a) => a -> FrameBuffer n b
434 441
435accumulate ctx fshader fstr fb = Accumulate ctx (mapFragments fshader fstr) fb 442accumulate ctx fshader fstr fb = Accumulate ctx (mapFragments fshader fstr) fb
diff --git a/lc/Prelude.lc b/lc/Prelude.lc
index ee18d1e9..167d5d05 100644
--- a/lc/Prelude.lc
+++ b/lc/Prelude.lc
@@ -55,22 +55,8 @@ pairs v = zip v (tail v)
55foldl' f e [] = e 55foldl' f e [] = e
56foldl' f e (x: xs) = foldl' f (f e x) xs 56foldl' f e (x: xs) = foldl' f (f e x) xs
57 57
58foldr f e [] = e
59foldr f e (x: xs) = f x (foldr f e xs)
60
61foldr1 f (x: xs) = foldr f x xs 58foldr1 f (x: xs) = foldr f x xs
62 59
63[] ++ ys = ys
64x:xs ++ ys = x : xs ++ ys
65
66concat = foldr (++) []
67
68map _ [] = []
69map f (x:xs) = f x : map f xs
70
71concatMap :: (a -> [b]) -> [a] -> [b]
72concatMap f x = concat (map f x)
73
74split [] = ([], []) 60split [] = ([], [])
75split (x: xs) = (x: bs, as) where (as, bs) = split xs 61split (x: xs) = (x: bs, as) where (as, bs) = split xs
76 62
diff --git a/src/LambdaCube/Compiler/CoreToIR.hs b/src/LambdaCube/Compiler/CoreToIR.hs
index a2b50e8a..f4c3c022 100644
--- a/src/LambdaCube/Compiler/CoreToIR.hs
+++ b/src/LambdaCube/Compiler/CoreToIR.hs
@@ -136,9 +136,9 @@ getSlot e@(Prim1 "fetchArrays_" attrs) = do
136 return (IR.RenderStream $ length sv,input) 136 return (IR.RenderStream $ length sv,input)
137getSlot x = error $ "getSlot: " ++ ppShow x 137getSlot x = error $ "getSlot: " ++ ppShow x
138 138
139getPrim (A1 "Stream" (A2 "Primitive" _ p)) = p 139getPrim (A1 "List" (A2 "Primitive" _ p)) = p
140getPrim' (A1 "Stream" (A2 "Primitive" a _)) = a 140getPrim' (A1 "List" (A2 "Primitive" a _)) = a
141getPrim'' (A1 "Stream" (A2 "Fragment" _ a)) = a 141getPrim'' (A1 "List" (A2 "Fragment" _ a)) = a
142 142
143addProgramToSlot :: IR.ProgramName -> IR.Command -> CG () 143addProgramToSlot :: IR.ProgramName -> IR.Command -> CG ()
144addProgramToSlot prgName (IR.RenderSlot slotName) = do 144addProgramToSlot prgName (IR.RenderSlot slotName) = do
@@ -207,16 +207,16 @@ getRenderTextureCommands e = foldM (\(a,b) x -> f x >>= (\(c,d) -> return (c:a,d
207 return ((n,IR.TextureImage texture 0 Nothing), subCmds <> (IR.SetRenderTarget rt:cmds)) 207 return ((n,IR.TextureImage texture 0 Nothing), subCmds <> (IR.SetRenderTarget rt:cmds))
208 x -> error $ "getRenderTextureCommands: not supported render texture exp: " ++ ppShow x 208 x -> error $ "getRenderTextureCommands: not supported render texture exp: " ++ ppShow x
209 209
210getFragFilter (Prim2 "mapStream" (EtaPrim2 "filterFragment" p) x) = (Just p, x) 210getFragFilter (Prim2 "map" (EtaPrim2 "filterFragment" p) x) = (Just p, x)
211getFragFilter x = (Nothing, x) 211getFragFilter x = (Nothing, x)
212 212
213getVertexShader (Prim2 "mapStream" (EtaPrim2 "mapPrimitive" f) x) = (f, x) 213getVertexShader (Prim2 "map" (EtaPrim2 "mapPrimitive" f) x) = (f, x)
214getVertexShader x = (idFun $ getPrim' $ tyOf x, x) 214getVertexShader x = (idFun $ getPrim' $ tyOf x, x)
215 215
216getFragmentShader (Prim2 "mapStream" (EtaPrim2 "mapFragment" f) x) = (f, x) 216getFragmentShader (Prim2 "map" (EtaPrim2 "mapFragment" f) x) = (f, x)
217getFragmentShader x = (idFun $ getPrim'' $ tyOf x, x) 217getFragmentShader x = (idFun $ getPrim'' $ tyOf x, x)
218 218
219removeDepthHandler (Prim2 "mapStream" (EtaPrim1 "noDepth") x) = x 219removeDepthHandler (Prim2 "map" (EtaPrim1 "noDepth") x) = x
220removeDepthHandler x = x 220removeDepthHandler x = x
221 221
222getCommands :: Exp -> CG ([IR.Command],[IR.Command]) 222getCommands :: Exp -> CG ([IR.Command],[IR.Command])
@@ -225,7 +225,7 @@ getCommands e = case e of
225 rt <- newFrameBufferTarget (tyOf a) 225 rt <- newFrameBufferTarget (tyOf a)
226 (subCmds,cmds) <- getCommands a 226 (subCmds,cmds) <- getCommands a
227 return (subCmds,IR.SetRenderTarget rt : cmds) 227 return (subCmds,IR.SetRenderTarget rt : cmds)
228 A3 "Accumulate" actx (getFragmentShader . removeDepthHandler -> (frag, getFragFilter -> (ffilter, Prim2 "concatMapStream" (EtaPrim3 "rasterize" {-rp-} is rctx) (getVertexShader -> (vert, input))))) fbuf -> do 228 A3 "Accumulate" actx (getFragmentShader . removeDepthHandler -> (frag, getFragFilter -> (ffilter, Prim3 "foldr" (EtaPrim2_2 "++") (A0 "Nil") (Prim2 "map" (EtaPrim3 "rasterize" {-rp-} is rctx) (getVertexShader -> (vert, input)))))) fbuf -> do
229 let rp = compRC' rctx 229 let rp = compRC' rctx
230 (smpBindingsV,vertCmds) <- getRenderTextureCommands vert 230 (smpBindingsV,vertCmds) <- getRenderTextureCommands vert
231 (smpBindingsR,rastCmds) <- maybe (return mempty) getRenderTextureCommands ffilter 231 (smpBindingsR,rastCmds) <- maybe (return mempty) getRenderTextureCommands ffilter
@@ -990,10 +990,14 @@ pattern EtaPrim2 s x <- (getEtaPrim -> Just (s, [x]))
990pattern EtaPrim3 s x1 x2 <- (getEtaPrim -> Just (s, [x1, x2])) 990pattern EtaPrim3 s x1 x2 <- (getEtaPrim -> Just (s, [x1, x2]))
991pattern EtaPrim4 s x1 x2 x3 <- (getEtaPrim -> Just (s, [x1, x2, x3])) 991pattern EtaPrim4 s x1 x2 x3 <- (getEtaPrim -> Just (s, [x1, x2, x3]))
992pattern EtaPrim5 s x1 x2 x3 x4 <- (getEtaPrim -> Just (s, [x1, x2, x3, x4])) 992pattern EtaPrim5 s x1 x2 x3 x4 <- (getEtaPrim -> Just (s, [x1, x2, x3, x4]))
993pattern EtaPrim2_2 s <- (getEtaPrim2 -> Just (s, []))
993 994
994getEtaPrim (ELam (PVar _ n) (PrimN s (initLast -> Just (xs, EVar n')))) | n == n' && all (Set.notMember n . freeVars) xs = Just (s, xs) 995getEtaPrim (ELam (PVar _ n) (PrimN s (initLast -> Just (xs, EVar n')))) | n == n' && all (Set.notMember n . freeVars) xs = Just (s, xs)
995getEtaPrim _ = Nothing 996getEtaPrim _ = Nothing
996 997
998getEtaPrim2 (ELam (PVar _ n) (ELam (PVar _ n2) (PrimN s (initLast -> Just (initLast -> Just (xs, EVar n'), EVar n2'))))) | n == n' && n2 == n2' && all (Set.notMember n . freeVars) xs = Just (s, xs)
999getEtaPrim2 _ = Nothing
1000
997initLast [] = Nothing 1001initLast [] = Nothing
998initLast xs = Just (init xs, last xs) 1002initLast xs = Just (init xs, last xs)
999 1003
diff --git a/testdata/Builtins.out b/testdata/Builtins.out
index b10b920f..edc69e1a 100644
--- a/testdata/Builtins.out
+++ b/testdata/Builtins.out
@@ -1040,1217 +1040,1095 @@ testdata/Builtins.lc 302:145-302:147 Type
1040testdata/Builtins.lc 303:18-303:39 Type 1040testdata/Builtins.lc 303:18-303:39 Type
1041testdata/Builtins.lc 303:19-303:36 Type->Type 1041testdata/Builtins.lc 303:19-303:36 Type->Type
1042testdata/Builtins.lc 303:37-303:38 Type 1042testdata/Builtins.lc 303:37-303:38 Type
1043testdata/Builtins.lc 305:6-305:12 Type | Type->Type 1043testdata/Builtins.lc 305:6-305:8 {a} -> List a -> List a -> List a
1044testdata/Builtins.lc 307:1-307:10 {a} -> {b} -> a->b -> Stream a -> Stream b 1044testdata/Builtins.lc 305:14-305:16 V3
1045testdata/Builtins.lc 307:14-307:46 Type 1045testdata/Builtins.lc 305:14-306:26 List V0 -> List V1 | V0->V1
1046testdata/Builtins.lc 307:15-307:16 V3 1046testdata/Builtins.lc 306:14-306:15 V3
1047testdata/Builtins.lc 307:20-307:21 Type | V2 1047testdata/Builtins.lc 306:14-306:17 List V2 -> List V3
1048testdata/Builtins.lc 307:26-307:32 Type->Type 1048testdata/Builtins.lc 306:14-306:26 List V1 -> V4 | List V2 | V0 -> List V1 -> V4
1049testdata/Builtins.lc 307:26-307:34 Type 1049testdata/Builtins.lc 306:16-306:17 {a} -> a -> List a -> List a
1050testdata/Builtins.lc 307:26-307:46 Type 1050testdata/Builtins.lc 306:18-306:20 List V5
1051testdata/Builtins.lc 307:33-307:34 Type 1051testdata/Builtins.lc 306:21-306:23 V7
1052testdata/Builtins.lc 307:38-307:44 Type->Type 1052testdata/Builtins.lc 306:24-306:26 List V6
1053testdata/Builtins.lc 307:38-307:46 Type 1053testdata/Builtins.lc 308:1-308:6 {a} -> {b} -> (b -> a->a) -> a -> List b -> a
1054testdata/Builtins.lc 307:45-307:46 Type 1054testdata/Builtins.lc 308:16-308:17 V5
1055testdata/Builtins.lc 308:1-308:16 {a} -> {b} -> (a -> Stream b) -> Stream a -> Stream b 1055testdata/Builtins.lc 308:16-309:39 List V1 -> V6 | V0->V1
1056testdata/Builtins.lc 308:20-308:59 Type 1056testdata/Builtins.lc 309:21-309:22 V8
1057testdata/Builtins.lc 308:21-308:22 V3 1057testdata/Builtins.lc 309:21-309:39 List V1 -> V6 | V0 -> List V1 -> V6
1058testdata/Builtins.lc 308:26-308:32 Type->Type 1058testdata/Builtins.lc 309:23-309:24 V5
1059testdata/Builtins.lc 308:26-308:34 Type 1059testdata/Builtins.lc 309:26-309:31 V13
1060testdata/Builtins.lc 308:33-308:34 V2 1060testdata/Builtins.lc 309:32-309:33 V9->V7
1061testdata/Builtins.lc 308:39-308:45 Type->Type 1061testdata/Builtins.lc 309:34-309:35 V14
1062testdata/Builtins.lc 308:39-308:47 Type 1062testdata/Builtins.lc 309:36-309:38 List V10
1063testdata/Builtins.lc 308:39-308:59 Type 1063testdata/Builtins.lc 311:1-311:7 {a} -> List (List a) -> List a
1064testdata/Builtins.lc 308:46-308:47 Type 1064testdata/Builtins.lc 311:10-311:15 {a} -> {b} -> (b -> a->a) -> a -> List b -> a
1065testdata/Builtins.lc 308:51-308:57 Type->Type 1065testdata/Builtins.lc 311:10-311:20 List V0 -> List (List V1) -> List V2
1066testdata/Builtins.lc 308:51-308:59 Type 1066testdata/Builtins.lc 311:10-311:23 List (List V0) -> List V1
1067testdata/Builtins.lc 308:58-308:59 Type 1067testdata/Builtins.lc 311:16-311:20 {a} -> List a -> List a -> List a
1068testdata/Builtins.lc 309:1-309:13 {a} -> a->Bool -> Stream a -> Stream a 1068testdata/Builtins.lc 311:21-311:23 {a} -> List a
1069testdata/Builtins.lc 309:17-309:52 Type 1069testdata/Builtins.lc 313:1-313:4 {a} -> {b} -> a->b -> List a -> List b
1070testdata/Builtins.lc 309:18-309:19 V1 1070testdata/Builtins.lc 313:16-313:18 {a} -> List a
1071testdata/Builtins.lc 309:23-309:27 Type 1071testdata/Builtins.lc 313:16-314:30 List V1 -> List V1 | V0->V1
1072testdata/Builtins.lc 309:32-309:38 Type->Type 1072testdata/Builtins.lc 314:16-314:17 V8
1073testdata/Builtins.lc 309:32-309:40 Type 1073testdata/Builtins.lc 314:16-314:21 List V0 -> List V1
1074testdata/Builtins.lc 309:32-309:52 Type 1074testdata/Builtins.lc 314:16-314:30 List V2 | List V2 -> List V2 | V1 -> List V2 -> List V2
1075testdata/Builtins.lc 309:39-309:40 Type 1075testdata/Builtins.lc 314:18-314:19 V7
1076testdata/Builtins.lc 309:44-309:50 Type->Type 1076testdata/Builtins.lc 314:20-314:21 {a} -> a -> List a -> List a
1077testdata/Builtins.lc 309:44-309:52 Type 1077testdata/Builtins.lc 314:22-314:25 V8
1078testdata/Builtins.lc 309:51-309:52 Type 1078testdata/Builtins.lc 314:26-314:27 V6->V6
1079testdata/Builtins.lc 311:6-311:15 Type | Type -> PrimitiveType->Type 1079testdata/Builtins.lc 314:28-314:30 List V7
1080testdata/Builtins.lc 311:6-314:56 Type 1080testdata/Builtins.lc 316:14-316:38 Type
1081testdata/Builtins.lc 311:21-311:34 Type 1081testdata/Builtins.lc 316:15-316:16 V3
1082testdata/Builtins.lc 311:21-311:42 Type 1082testdata/Builtins.lc 316:20-316:23 Type
1083testdata/Builtins.lc 311:38-311:42 Type 1083testdata/Builtins.lc 316:21-316:22 V2
1084testdata/Builtins.lc 312:5-312:14 Primitive V2 'Point | {a} -> a -> Primitive a 'Point 1084testdata/Builtins.lc 316:28-316:38 Type
1085testdata/Builtins.lc 312:5-312:53 Type 1085testdata/Builtins.lc 316:29-316:30 Type
1086testdata/Builtins.lc 312:21-312:22 Type 1086testdata/Builtins.lc 316:35-316:38 Type
1087testdata/Builtins.lc 312:21-312:53 Type 1087testdata/Builtins.lc 316:36-316:37 Type
1088testdata/Builtins.lc 312:36-312:45 Type -> PrimitiveType->Type 1088testdata/Builtins.lc 317:1-317:10 {a} -> {b} -> (a -> List b) -> List a -> List b
1089testdata/Builtins.lc 312:36-312:47 PrimitiveType->Type 1089testdata/Builtins.lc 317:17-317:23 {a} -> List (List a) -> List a
1090testdata/Builtins.lc 312:36-312:53 Type 1090testdata/Builtins.lc 317:17-317:33 (V1 -> List V1) -> List V2 -> List V2 | List V2 | List V2 -> List V2
1091testdata/Builtins.lc 312:46-312:47 Type 1091testdata/Builtins.lc 317:24-317:33 List (List V2)
1092testdata/Builtins.lc 312:48-312:53 PrimitiveType 1092testdata/Builtins.lc 317:25-317:28 {a} -> {b} -> a->b -> List a -> List b
1093testdata/Builtins.lc 313:5-313:13 Primitive V4 'Line | {a} -> a -> a -> Primitive a 'Line 1093testdata/Builtins.lc 317:25-317:30 List V4 -> List (List V4)
1094testdata/Builtins.lc 313:5-313:52 Type 1094testdata/Builtins.lc 317:29-317:30 V6 -> List V6
1095testdata/Builtins.lc 313:21-313:22 Type 1095testdata/Builtins.lc 317:31-317:32 List V3
1096testdata/Builtins.lc 313:21-313:52 Type 1096testdata/Builtins.lc 319:6-319:15 Type | Type -> PrimitiveType->Type
1097testdata/Builtins.lc 313:26-313:27 Type 1097testdata/Builtins.lc 319:6-322:56 Type
1098testdata/Builtins.lc 313:26-313:52 Type 1098testdata/Builtins.lc 319:21-319:34 Type
1099testdata/Builtins.lc 313:36-313:45 Type -> PrimitiveType->Type 1099testdata/Builtins.lc 319:21-319:42 Type
1100testdata/Builtins.lc 313:36-313:47 PrimitiveType->Type 1100testdata/Builtins.lc 319:38-319:42 Type
1101testdata/Builtins.lc 313:36-313:52 Type 1101testdata/Builtins.lc 320:5-320:14 Primitive V2 'Point | {a} -> a -> Primitive a 'Point
1102testdata/Builtins.lc 313:46-313:47 Type 1102testdata/Builtins.lc 320:5-320:53 Type
1103testdata/Builtins.lc 313:48-313:52 PrimitiveType 1103testdata/Builtins.lc 320:21-320:22 Type
1104testdata/Builtins.lc 314:5-314:17 Primitive V6 'Triangle | {a} -> a -> a -> a -> Primitive a 'Triangle 1104testdata/Builtins.lc 320:21-320:53 Type
1105testdata/Builtins.lc 314:5-314:56 Type 1105testdata/Builtins.lc 320:36-320:45 Type -> PrimitiveType->Type
1106testdata/Builtins.lc 314:21-314:22 Type 1106testdata/Builtins.lc 320:36-320:47 PrimitiveType->Type
1107testdata/Builtins.lc 314:21-314:56 Type 1107testdata/Builtins.lc 320:36-320:53 Type
1108testdata/Builtins.lc 314:26-314:27 Type 1108testdata/Builtins.lc 320:46-320:47 Type
1109testdata/Builtins.lc 314:26-314:56 Type 1109testdata/Builtins.lc 320:48-320:53 PrimitiveType
1110testdata/Builtins.lc 314:31-314:32 Type 1110testdata/Builtins.lc 321:5-321:13 Primitive V4 'Line | {a} -> a -> a -> Primitive a 'Line
1111testdata/Builtins.lc 314:31-314:56 Type 1111testdata/Builtins.lc 321:5-321:52 Type
1112testdata/Builtins.lc 314:36-314:45 Type -> PrimitiveType->Type 1112testdata/Builtins.lc 321:21-321:22 Type
1113testdata/Builtins.lc 314:36-314:47 PrimitiveType->Type 1113testdata/Builtins.lc 321:21-321:52 Type
1114testdata/Builtins.lc 314:36-314:56 Type 1114testdata/Builtins.lc 321:26-321:27 Type
1115testdata/Builtins.lc 314:46-314:47 Type 1115testdata/Builtins.lc 321:26-321:52 Type
1116testdata/Builtins.lc 314:48-314:56 PrimitiveType 1116testdata/Builtins.lc 321:36-321:45 Type -> PrimitiveType->Type
1117testdata/Builtins.lc 316:6-316:21 PrimitiveType -> Type->Type 1117testdata/Builtins.lc 321:36-321:47 PrimitiveType->Type
1118testdata/Builtins.lc 316:28-316:34 Type->Type 1118testdata/Builtins.lc 321:36-321:52 Type
1119testdata/Builtins.lc 316:28-316:50 Type 1119testdata/Builtins.lc 321:46-321:47 Type
1120testdata/Builtins.lc 316:35-316:50 Type 1120testdata/Builtins.lc 321:48-321:52 PrimitiveType
1121testdata/Builtins.lc 316:36-316:45 Type -> PrimitiveType->Type 1121testdata/Builtins.lc 322:5-322:17 Primitive V6 'Triangle | {a} -> a -> a -> a -> Primitive a 'Triangle
1122testdata/Builtins.lc 316:36-316:47 PrimitiveType->Type 1122testdata/Builtins.lc 322:5-322:56 Type
1123testdata/Builtins.lc 316:46-316:47 V1 1123testdata/Builtins.lc 322:21-322:22 Type
1124testdata/Builtins.lc 316:48-316:49 V2 1124testdata/Builtins.lc 322:21-322:56 Type
1125testdata/Builtins.lc 318:1-318:13 {a} -> {b} -> {c:PrimitiveType} -> a->b -> Primitive a c -> Primitive b c 1125testdata/Builtins.lc 322:26-322:27 Type
1126testdata/Builtins.lc 318:17-318:59 Type 1126testdata/Builtins.lc 322:26-322:56 Type
1127testdata/Builtins.lc 318:18-318:19 V5 1127testdata/Builtins.lc 322:31-322:32 Type
1128testdata/Builtins.lc 318:23-318:24 Type | V4 1128testdata/Builtins.lc 322:31-322:56 Type
1129testdata/Builtins.lc 318:29-318:38 Type -> PrimitiveType->Type 1129testdata/Builtins.lc 322:36-322:45 Type -> PrimitiveType->Type
1130testdata/Builtins.lc 318:29-318:40 PrimitiveType->Type 1130testdata/Builtins.lc 322:36-322:47 PrimitiveType->Type
1131testdata/Builtins.lc 318:29-318:42 Type 1131testdata/Builtins.lc 322:36-322:56 Type
1132testdata/Builtins.lc 318:29-318:59 Type 1132testdata/Builtins.lc 322:46-322:47 Type
1133testdata/Builtins.lc 318:39-318:40 Type 1133testdata/Builtins.lc 322:48-322:56 PrimitiveType
1134testdata/Builtins.lc 318:41-318:42 V2 1134testdata/Builtins.lc 324:6-324:21 PrimitiveType -> Type->Type
1135testdata/Builtins.lc 318:46-318:55 Type -> PrimitiveType->Type 1135testdata/Builtins.lc 324:29-324:38 Type -> PrimitiveType->Type
1136testdata/Builtins.lc 318:46-318:57 PrimitiveType->Type 1136testdata/Builtins.lc 324:29-324:40 PrimitiveType->Type
1137testdata/Builtins.lc 318:46-318:59 Type 1137testdata/Builtins.lc 324:29-324:42 Type
1138testdata/Builtins.lc 318:56-318:57 Type 1138testdata/Builtins.lc 324:39-324:40 V1
1139testdata/Builtins.lc 318:58-318:59 PrimitiveType 1139testdata/Builtins.lc 324:41-324:42 V2
1140testdata/Builtins.lc 325:1-325:7 {a:PrimitiveType} -> {b} -> {c:Unit} -> String -> b -> Stream (Primitive b a) 1140testdata/Builtins.lc 326:1-326:13 {a} -> {b} -> {c:PrimitiveType} -> a->b -> Primitive a c -> Primitive b c
1141testdata/Builtins.lc 325:38-325:56 Type 1141testdata/Builtins.lc 326:17-326:59 Type
1142testdata/Builtins.lc 325:38-325:94 Type 1142testdata/Builtins.lc 326:18-326:19 V5
1143testdata/Builtins.lc 325:39-325:53 Type->Type 1143testdata/Builtins.lc 326:23-326:24 Type | V4
1144testdata/Builtins.lc 325:54-325:55 V1 1144testdata/Builtins.lc 326:29-326:38 Type -> PrimitiveType->Type
1145testdata/Builtins.lc 325:60-325:66 Type 1145testdata/Builtins.lc 326:29-326:40 PrimitiveType->Type
1146testdata/Builtins.lc 325:60-325:94 Type 1146testdata/Builtins.lc 326:29-326:42 Type
1147testdata/Builtins.lc 325:70-325:71 Type 1147testdata/Builtins.lc 326:29-326:59 Type
1148testdata/Builtins.lc 325:70-325:94 Type 1148testdata/Builtins.lc 326:39-326:40 Type
1149testdata/Builtins.lc 325:75-325:90 PrimitiveType -> Type->Type 1149testdata/Builtins.lc 326:41-326:42 V2
1150testdata/Builtins.lc 325:75-325:92 Type->Type 1150testdata/Builtins.lc 326:46-326:55 Type -> PrimitiveType->Type
1151testdata/Builtins.lc 325:75-325:94 Type 1151testdata/Builtins.lc 326:46-326:57 PrimitiveType->Type
1152testdata/Builtins.lc 325:91-325:92 V5 1152testdata/Builtins.lc 326:46-326:59 Type
1153testdata/Builtins.lc 325:93-325:94 Type 1153testdata/Builtins.lc 326:56-326:57 Type
1154testdata/Builtins.lc 326:1-326:13 {a:PrimitiveType} -> {b} -> {c} -> {d:Unit} -> {e : b ~ FTRepr' c} -> c -> Stream (Primitive b a) 1154testdata/Builtins.lc 326:58-326:59 PrimitiveType
1155testdata/Builtins.lc 326:41-326:104 Type 1155testdata/Builtins.lc 333:1-333:7 {a:PrimitiveType} -> {b} -> {c:Unit} -> String -> b -> List (Primitive b a)
1156testdata/Builtins.lc 326:42-326:56 Type->Type 1156testdata/Builtins.lc 333:38-333:56 Type
1157testdata/Builtins.lc 326:42-326:58 Type 1157testdata/Builtins.lc 333:38-333:94 Type
1158testdata/Builtins.lc 326:57-326:58 V3 1158testdata/Builtins.lc 333:39-333:53 Type->Type
1159testdata/Builtins.lc 326:60-326:61 Type 1159testdata/Builtins.lc 333:54-333:55 V1
1160testdata/Builtins.lc 326:60-326:63 Type->Type 1160testdata/Builtins.lc 333:60-333:66 Type
1161testdata/Builtins.lc 326:60-326:74 Type 1161testdata/Builtins.lc 333:60-333:94 Type
1162testdata/Builtins.lc 326:60-326:104 Type 1162testdata/Builtins.lc 333:70-333:71 Type
1163testdata/Builtins.lc 326:62-326:63 Type -> Type->Type 1163testdata/Builtins.lc 333:70-333:94 Type
1164testdata/Builtins.lc 326:64-326:71 Type->Type 1164testdata/Builtins.lc 333:75-333:90 PrimitiveType -> Type->Type
1165testdata/Builtins.lc 326:64-326:74 Type 1165testdata/Builtins.lc 333:75-333:92 Type->Type
1166testdata/Builtins.lc 326:72-326:74 V2 1166testdata/Builtins.lc 333:75-333:94 Type
1167testdata/Builtins.lc 326:79-326:81 Type 1167testdata/Builtins.lc 333:91-333:92 V5
1168testdata/Builtins.lc 326:79-326:104 Type 1168testdata/Builtins.lc 333:93-333:94 Type
1169testdata/Builtins.lc 326:85-326:100 PrimitiveType -> Type->Type 1169testdata/Builtins.lc 334:1-334:13 {a:PrimitiveType} -> {b} -> {c} -> {d:Unit} -> {e : b ~ FTRepr' c} -> c -> List (Primitive b a)
1170testdata/Builtins.lc 326:85-326:102 Type->Type 1170testdata/Builtins.lc 334:41-334:104 Type
1171testdata/Builtins.lc 326:85-326:104 Type 1171testdata/Builtins.lc 334:42-334:56 Type->Type
1172testdata/Builtins.lc 326:101-326:102 V6 1172testdata/Builtins.lc 334:42-334:58 Type
1173testdata/Builtins.lc 326:103-326:104 Type 1173testdata/Builtins.lc 334:57-334:58 V3
1174testdata/Builtins.lc 328:18-328:74 Type 1174testdata/Builtins.lc 334:60-334:61 Type
1175testdata/Builtins.lc 328:19-328:21 V5 1175testdata/Builtins.lc 334:60-334:63 Type->Type
1176testdata/Builtins.lc 328:25-328:26 Type | V4 1176testdata/Builtins.lc 334:60-334:74 Type
1177testdata/Builtins.lc 328:31-328:46 PrimitiveType -> Type->Type 1177testdata/Builtins.lc 334:60-334:104 Type
1178testdata/Builtins.lc 328:31-328:48 Type->Type 1178testdata/Builtins.lc 334:62-334:63 Type -> Type->Type
1179testdata/Builtins.lc 328:31-328:51 Type 1179testdata/Builtins.lc 334:64-334:71 Type->Type
1180testdata/Builtins.lc 328:31-328:74 Type 1180testdata/Builtins.lc 334:64-334:74 Type
1181testdata/Builtins.lc 328:47-328:48 V2 1181testdata/Builtins.lc 334:72-334:74 V2
1182testdata/Builtins.lc 328:49-328:51 Type 1182testdata/Builtins.lc 334:79-334:81 Type
1183testdata/Builtins.lc 328:55-328:70 PrimitiveType -> Type->Type 1183testdata/Builtins.lc 334:79-334:104 Type
1184testdata/Builtins.lc 328:55-328:72 Type->Type 1184testdata/Builtins.lc 334:85-334:100 PrimitiveType -> Type->Type
1185testdata/Builtins.lc 328:55-328:74 Type 1185testdata/Builtins.lc 334:85-334:102 Type->Type
1186testdata/Builtins.lc 328:71-328:72 PrimitiveType 1186testdata/Builtins.lc 334:85-334:104 Type
1187testdata/Builtins.lc 328:73-328:74 Type 1187testdata/Builtins.lc 334:101-334:102 V6
1188testdata/Builtins.lc 329:1-329:14 {a} -> {b} -> {c:PrimitiveType} -> a->b -> Stream (Primitive a c) -> Stream (Primitive b c) 1188testdata/Builtins.lc 334:103-334:104 Type
1189testdata/Builtins.lc 329:19-329:28 {a} -> {b} -> a->b -> Stream a -> Stream b 1189testdata/Builtins.lc 336:18-336:74 Type
1190testdata/Builtins.lc 329:19-329:45 Stream (Primitive V4 V0) -> Stream (Primitive V4 V1) | V2->V2 -> Stream (Primitive V3 V1) -> Stream (Primitive V3 V2) 1190testdata/Builtins.lc 336:19-336:21 V5
1191testdata/Builtins.lc 329:29-329:45 Primitive V6 V0 -> Primitive V6 V1 1191testdata/Builtins.lc 336:25-336:26 Type | V4
1192testdata/Builtins.lc 329:30-329:42 {a} -> {b} -> {c:PrimitiveType} -> a->b -> Primitive a c -> Primitive b c 1192testdata/Builtins.lc 336:31-336:46 PrimitiveType -> Type->Type
1193testdata/Builtins.lc 329:43-329:44 V8->V8 1193testdata/Builtins.lc 336:31-336:48 Type->Type
1194testdata/Builtins.lc 331:1-331:6 {a} -> String -> c:PrimitiveType -> a -> Stream (Primitive a c) 1194testdata/Builtins.lc 336:31-336:51 Type
1195testdata/Builtins.lc 331:15-331:21 {a:PrimitiveType} -> {b} -> {c:Unit} -> String -> b -> Stream (Primitive b a) 1195testdata/Builtins.lc 336:31-336:74 Type
1196testdata/Builtins.lc 331:15-331:24 {a} -> {b:Unit} -> String -> a -> Stream (Primitive a V6) 1196testdata/Builtins.lc 336:47-336:48 V2
1197testdata/Builtins.lc 331:15-331:26 V0 -> Stream (Primitive V1 V4) 1197testdata/Builtins.lc 336:49-336:51 Type
1198testdata/Builtins.lc 331:15-331:28 Stream (Primitive V1 V2) 1198testdata/Builtins.lc 336:55-336:70 PrimitiveType -> Type->Type
1199testdata/Builtins.lc 331:23-331:24 V3 1199testdata/Builtins.lc 336:55-336:72 Type->Type
1200testdata/Builtins.lc 331:25-331:26 V5 1200testdata/Builtins.lc 336:55-336:74 Type
1201testdata/Builtins.lc 331:27-331:28 V2 1201testdata/Builtins.lc 336:71-336:72 PrimitiveType
1202testdata/Builtins.lc 332:1-332:12 {a} -> b:PrimitiveType -> a -> Stream (Primitive (FTRepr' a) b) 1202testdata/Builtins.lc 336:73-336:74 Type
1203testdata/Builtins.lc 332:19-332:31 {a:PrimitiveType} -> {b} -> {c} -> {d:Unit} -> {e : b ~ FTRepr' c} -> c -> Stream (Primitive b a) 1203testdata/Builtins.lc 337:1-337:14 {a} -> {b} -> {c:PrimitiveType} -> a->b -> List (Primitive a c) -> List (Primitive b c)
1204testdata/Builtins.lc 332:19-332:34 {a} -> {b} -> {c:Unit} -> {d : a ~ FTRepr' b} -> b -> Stream (Primitive a V7) 1204testdata/Builtins.lc 337:19-337:22 {a} -> {b} -> a->b -> List a -> List b
1205testdata/Builtins.lc 332:19-332:36 Stream (Primitive (FTRepr' V1) V2) 1205testdata/Builtins.lc 337:19-337:39 List (Primitive V4 V0) -> List (Primitive V4 V1) | V2->V2 -> List (Primitive V3 V1) -> List (Primitive V3 V2)
1206testdata/Builtins.lc 332:33-332:34 V3 1206testdata/Builtins.lc 337:23-337:39 Primitive V6 V0 -> Primitive V6 V1
1207testdata/Builtins.lc 332:35-332:36 V2 1207testdata/Builtins.lc 337:24-337:36 {a} -> {b} -> {c:PrimitiveType} -> a->b -> Primitive a c -> Primitive b c
1208testdata/Builtins.lc 335:5-335:17 Type->Type 1208testdata/Builtins.lc 337:37-337:38 V8->V8
1209testdata/Builtins.lc 335:23-335:25 Type 1209testdata/Builtins.lc 339:1-339:6 {a} -> String -> c:PrimitiveType -> a -> List (Primitive a c)
1210testdata/Builtins.lc 335:23-345:82 Type | Type->Type 1210testdata/Builtins.lc 339:15-339:21 {a:PrimitiveType} -> {b} -> {c:Unit} -> String -> b -> List (Primitive b a)
1211testdata/Builtins.lc 336:25-336:26 Type 1211testdata/Builtins.lc 339:15-339:24 {a} -> {b:Unit} -> String -> a -> List (Primitive a V6)
1212testdata/Builtins.lc 336:25-336:31 Type->Type 1212testdata/Builtins.lc 339:15-339:26 V0 -> List (Primitive V1 V4)
1213testdata/Builtins.lc 336:25-345:82 Type 1213testdata/Builtins.lc 339:15-339:28 List (Primitive V1 V2)
1214testdata/Builtins.lc 336:30-336:31 Type | Type->Type 1214testdata/Builtins.lc 339:23-339:24 V3
1215testdata/Builtins.lc 337:19-337:35 Type 1215testdata/Builtins.lc 339:25-339:26 V5
1216testdata/Builtins.lc 337:19-342:44 Type->Type 1216testdata/Builtins.lc 339:27-339:28 V2
1217testdata/Builtins.lc 337:19-345:82 Type 1217testdata/Builtins.lc 340:1-340:12 {a} -> b:PrimitiveType -> a -> List (Primitive (FTRepr' a) b)
1218testdata/Builtins.lc 337:39-337:45 Type | Type->Type 1218testdata/Builtins.lc 340:19-340:31 {a:PrimitiveType} -> {b} -> {c} -> {d:Unit} -> {e : b ~ FTRepr' c} -> c -> List (Primitive b a)
1219testdata/Builtins.lc 337:39-342:44 Type | Type -> Type->Type | Type->Type 1219testdata/Builtins.lc 340:19-340:34 {a} -> {b} -> {c:Unit} -> {d : a ~ FTRepr' b} -> b -> List (Primitive a V7)
1220testdata/Builtins.lc 337:40-337:41 Type 1220testdata/Builtins.lc 340:19-340:36 List (Primitive (FTRepr' V1) V2)
1221testdata/Builtins.lc 337:43-337:44 Type 1221testdata/Builtins.lc 340:33-340:34 V3
1222testdata/Builtins.lc 338:19-338:44 Type 1222testdata/Builtins.lc 340:35-340:36 V2
1223testdata/Builtins.lc 338:19-343:58 Type->Type 1223testdata/Builtins.lc 343:5-343:17 Type->Type
1224testdata/Builtins.lc 338:19-345:82 Type 1224testdata/Builtins.lc 343:23-343:25 Type
1225testdata/Builtins.lc 338:48-338:57 Type | Type->Type 1225testdata/Builtins.lc 343:23-353:82 Type | Type->Type
1226testdata/Builtins.lc 338:48-343:58 Type | Type -> Type -> Type->Type | Type -> Type->Type | Type->Type 1226testdata/Builtins.lc 344:25-344:26 Type
1227testdata/Builtins.lc 338:49-338:50 Type 1227testdata/Builtins.lc 344:25-344:31 Type->Type
1228testdata/Builtins.lc 338:49-338:53 Type->Type 1228testdata/Builtins.lc 344:25-353:82 Type
1229testdata/Builtins.lc 338:52-338:53 Type 1229testdata/Builtins.lc 344:30-344:31 Type | Type->Type
1230testdata/Builtins.lc 338:55-338:56 Type 1230testdata/Builtins.lc 345:19-345:35 Type
1231testdata/Builtins.lc 339:19-339:53 Type 1231testdata/Builtins.lc 345:19-350:44 Type->Type
1232testdata/Builtins.lc 339:19-344:70 Type->Type 1232testdata/Builtins.lc 345:19-353:82 Type
1233testdata/Builtins.lc 339:19-345:82 Type 1233testdata/Builtins.lc 345:39-345:45 Type | Type->Type
1234testdata/Builtins.lc 339:57-339:69 Type | Type->Type 1234testdata/Builtins.lc 345:39-350:44 Type | Type -> Type->Type | Type->Type
1235testdata/Builtins.lc 339:57-344:70 Type | Type -> Type -> Type -> Type->Type | Type -> Type -> Type->Type | Type -> Type->Type | Type->Type 1235testdata/Builtins.lc 345:40-345:41 Type
1236testdata/Builtins.lc 339:58-339:59 Type 1236testdata/Builtins.lc 345:43-345:44 Type
1237testdata/Builtins.lc 339:58-339:62 Type -> Type->Type 1237testdata/Builtins.lc 346:19-346:44 Type
1238testdata/Builtins.lc 339:58-339:65 Type->Type 1238testdata/Builtins.lc 346:19-351:58 Type->Type
1239testdata/Builtins.lc 339:61-339:62 Type 1239testdata/Builtins.lc 346:19-353:82 Type
1240testdata/Builtins.lc 339:64-339:65 Type 1240testdata/Builtins.lc 346:48-346:57 Type | Type->Type
1241testdata/Builtins.lc 339:67-339:68 Type 1241testdata/Builtins.lc 346:48-351:58 Type | Type -> Type -> Type->Type | Type -> Type->Type | Type->Type
1242testdata/Builtins.lc 340:19-340:62 Type 1242testdata/Builtins.lc 346:49-346:50 Type
1243testdata/Builtins.lc 340:19-345:82 Type->Type 1243testdata/Builtins.lc 346:49-346:53 Type->Type
1244testdata/Builtins.lc 340:66-340:81 Type | Type->Type 1244testdata/Builtins.lc 346:52-346:53 Type
1245testdata/Builtins.lc 340:66-345:82 Type | Type -> Type -> Type -> Type -> Type->Type | Type -> Type -> Type -> Type->Type | Type -> Type -> Type->Type | Type -> Type->Type | Type->Type 1245testdata/Builtins.lc 346:55-346:56 Type
1246testdata/Builtins.lc 340:67-340:68 Type 1246testdata/Builtins.lc 347:19-347:53 Type
1247testdata/Builtins.lc 340:67-340:71 Type -> Type -> Type->Type 1247testdata/Builtins.lc 347:19-352:70 Type->Type
1248testdata/Builtins.lc 340:67-340:74 Type -> Type->Type 1248testdata/Builtins.lc 347:19-353:82 Type
1249testdata/Builtins.lc 340:67-340:77 Type->Type 1249testdata/Builtins.lc 347:57-347:69 Type | Type->Type
1250testdata/Builtins.lc 340:70-340:71 Type 1250testdata/Builtins.lc 347:57-352:70 Type | Type -> Type -> Type -> Type->Type | Type -> Type -> Type->Type | Type -> Type->Type | Type->Type
1251testdata/Builtins.lc 340:73-340:74 Type 1251testdata/Builtins.lc 347:58-347:59 Type
1252testdata/Builtins.lc 340:76-340:77 Type 1252testdata/Builtins.lc 347:58-347:62 Type -> Type->Type
1253testdata/Builtins.lc 340:79-340:80 Type 1253testdata/Builtins.lc 347:58-347:65 Type->Type
1254testdata/Builtins.lc 341:25-341:30 Type 1254testdata/Builtins.lc 347:61-347:62 Type
1255testdata/Builtins.lc 341:25-341:36 Type->Type 1255testdata/Builtins.lc 347:64-347:65 Type
1256testdata/Builtins.lc 341:34-341:36 Type | Type->Type 1256testdata/Builtins.lc 347:67-347:68 Type
1257testdata/Builtins.lc 342:43-342:44 Type | Type->Type 1257testdata/Builtins.lc 348:19-348:62 Type
1258testdata/Builtins.lc 343:52-343:58 Type | Type->Type 1258testdata/Builtins.lc 348:19-353:82 Type->Type
1259testdata/Builtins.lc 343:53-343:54 Type 1259testdata/Builtins.lc 348:66-348:81 Type | Type->Type
1260testdata/Builtins.lc 343:56-343:57 Type 1260testdata/Builtins.lc 348:66-353:82 Type | Type -> Type -> Type -> Type -> Type->Type | Type -> Type -> Type -> Type->Type | Type -> Type -> Type->Type | Type -> Type->Type | Type->Type
1261testdata/Builtins.lc 344:61-344:70 Type | Type->Type 1261testdata/Builtins.lc 348:67-348:68 Type
1262testdata/Builtins.lc 344:62-344:63 Type 1262testdata/Builtins.lc 348:67-348:71 Type -> Type -> Type->Type
1263testdata/Builtins.lc 344:62-344:66 Type->Type 1263testdata/Builtins.lc 348:67-348:74 Type -> Type->Type
1264testdata/Builtins.lc 344:65-344:66 Type 1264testdata/Builtins.lc 348:67-348:77 Type->Type
1265testdata/Builtins.lc 344:68-344:69 Type 1265testdata/Builtins.lc 348:70-348:71 Type
1266testdata/Builtins.lc 345:70-345:82 Type | Type->Type 1266testdata/Builtins.lc 348:73-348:74 Type
1267testdata/Builtins.lc 345:71-345:72 Type 1267testdata/Builtins.lc 348:76-348:77 Type
1268testdata/Builtins.lc 345:71-345:75 Type -> Type->Type 1268testdata/Builtins.lc 348:79-348:80 Type
1269testdata/Builtins.lc 345:71-345:78 Type->Type 1269testdata/Builtins.lc 349:25-349:30 Type
1270testdata/Builtins.lc 345:74-345:75 Type 1270testdata/Builtins.lc 349:25-349:36 Type->Type
1271testdata/Builtins.lc 345:77-345:78 Type 1271testdata/Builtins.lc 349:34-349:36 Type | Type->Type
1272testdata/Builtins.lc 345:80-345:81 Type 1272testdata/Builtins.lc 350:43-350:44 Type | Type->Type
1273testdata/Builtins.lc 349:6-349:11 Type | Type->Type 1273testdata/Builtins.lc 351:52-351:58 Type | Type->Type
1274testdata/Builtins.lc 349:6-351:11 Type 1274testdata/Builtins.lc 351:53-351:54 Type
1275testdata/Builtins.lc 349:6-351:13 Type 1275testdata/Builtins.lc 351:56-351:57 Type
1276testdata/Builtins.lc 350:7-350:14 Maybe V1 | {a} -> Maybe a 1276testdata/Builtins.lc 352:61-352:70 Type | Type->Type
1277testdata/Builtins.lc 351:7-351:11 Maybe V3 | Type | {a} -> a -> Maybe a 1277testdata/Builtins.lc 352:62-352:63 Type
1278testdata/Builtins.lc 351:12-351:13 Type 1278testdata/Builtins.lc 352:62-352:66 Type->Type
1279testdata/Builtins.lc 354:6-354:12 Nat -> Type->Type | Type 1279testdata/Builtins.lc 352:65-352:66 Type
1280testdata/Builtins.lc 354:19-354:22 Type 1280testdata/Builtins.lc 352:68-352:69 Type
1281testdata/Builtins.lc 356:6-356:14 Nat -> Type->Type 1281testdata/Builtins.lc 353:70-353:82 Type | Type->Type
1282testdata/Builtins.lc 356:21-356:27 Nat -> Type->Type 1282testdata/Builtins.lc 353:71-353:72 Type
1283testdata/Builtins.lc 356:21-356:29 Type->Type 1283testdata/Builtins.lc 353:71-353:75 Type -> Type->Type
1284testdata/Builtins.lc 356:21-356:56 Type 1284testdata/Builtins.lc 353:71-353:78 Type->Type
1285testdata/Builtins.lc 356:28-356:29 V3 1285testdata/Builtins.lc 353:74-353:75 Type
1286testdata/Builtins.lc 356:30-356:56 Type 1286testdata/Builtins.lc 353:77-353:78 Type
1287testdata/Builtins.lc 356:31-356:36 Type->Type 1287testdata/Builtins.lc 353:80-353:81 Type
1288testdata/Builtins.lc 356:37-356:55 Type 1288testdata/Builtins.lc 357:6-357:11 Type | Type->Type
1289testdata/Builtins.lc 356:38-356:52 Type->Type 1289testdata/Builtins.lc 357:6-359:11 Type
1290testdata/Builtins.lc 356:53-356:54 V1 1290testdata/Builtins.lc 357:6-359:13 Type
1291testdata/Builtins.lc 358:6-358:20 Type | Type->Type 1291testdata/Builtins.lc 358:7-358:14 Maybe V1 | {a} -> Maybe a
1292testdata/Builtins.lc 358:6-358:39 Type 1292testdata/Builtins.lc 359:7-359:11 Maybe V3 | Type | {a} -> a -> Maybe a
1293testdata/Builtins.lc 358:6-360:29 Type 1293testdata/Builtins.lc 359:12-359:13 Type
1294testdata/Builtins.lc 358:25-358:39 SimpleFragment V3 | Type | V2 | V2->V2 | V3 | VecS Float 3 | VecS Float 3 -> V2->V2 | {a} -> VecS Float 3 -> a -> SimpleFragment a 1294testdata/Builtins.lc 362:6-362:12 Nat -> Type->Type | Type
1295testdata/Builtins.lc 359:7-359:22 {a} -> SimpleFragment a -> VecS Float 3 1295testdata/Builtins.lc 362:19-362:22 Type
1296testdata/Builtins.lc 359:28-359:31 Nat -> Type->Type 1296testdata/Builtins.lc 364:6-364:14 Nat -> Type->Type
1297testdata/Builtins.lc 359:28-359:33 Type->Type 1297testdata/Builtins.lc 364:21-364:27 Nat -> Type->Type
1298testdata/Builtins.lc 359:28-359:39 Type 1298testdata/Builtins.lc 364:21-364:29 Type->Type
1299testdata/Builtins.lc 359:32-359:33 V1 1299testdata/Builtins.lc 364:21-364:56 Type
1300testdata/Builtins.lc 359:34-359:39 Type 1300testdata/Builtins.lc 364:28-364:29 V3
1301testdata/Builtins.lc 360:7-360:21 {a} -> SimpleFragment a -> a 1301testdata/Builtins.lc 364:30-364:56 Type
1302testdata/Builtins.lc 360:28-360:29 Type 1302testdata/Builtins.lc 364:31-364:36 Type->Type
1303testdata/Builtins.lc 363:6-363:20 Nat -> Type->Type 1303testdata/Builtins.lc 364:37-364:55 Type
1304testdata/Builtins.lc 363:27-363:33 Type->Type 1304testdata/Builtins.lc 364:38-364:52 Type->Type
1305testdata/Builtins.lc 363:27-363:48 Type 1305testdata/Builtins.lc 364:53-364:54 V1
1306testdata/Builtins.lc 363:34-363:48 Type 1306testdata/Builtins.lc 366:6-366:20 Type | Type->Type
1307testdata/Builtins.lc 363:35-363:43 Nat -> Type->Type 1307testdata/Builtins.lc 366:6-366:39 Type
1308testdata/Builtins.lc 363:35-363:45 Type->Type 1308testdata/Builtins.lc 366:6-368:29 Type
1309testdata/Builtins.lc 363:44-363:45 V3 1309testdata/Builtins.lc 366:25-366:39 SimpleFragment V3 | Type | V2 | V2->V2 | V3 | VecS Float 3 | VecS Float 3 -> V2->V2 | {a} -> VecS Float 3 -> a -> SimpleFragment a
1310testdata/Builtins.lc 363:46-363:47 V1 1310testdata/Builtins.lc 367:7-367:22 {a} -> SimpleFragment a -> VecS Float 3
1311testdata/Builtins.lc 365:1-365:15 {a} -> {b:Nat} -> a->Float -> Vector b (Maybe (SimpleFragment a)) -> Vector b (Maybe (SimpleFragment a)) 1311testdata/Builtins.lc 367:28-367:31 Nat -> Type->Type
1312testdata/Builtins.lc 365:19-365:63 Type 1312testdata/Builtins.lc 367:28-367:33 Type->Type
1313testdata/Builtins.lc 365:20-365:21 V3 1313testdata/Builtins.lc 367:28-367:39 Type
1314testdata/Builtins.lc 365:25-365:30 Type 1314testdata/Builtins.lc 367:32-367:33 V1
1315testdata/Builtins.lc 365:35-365:43 Nat -> Type->Type 1315testdata/Builtins.lc 367:34-367:39 Type
1316testdata/Builtins.lc 365:35-365:45 Type->Type 1316testdata/Builtins.lc 368:7-368:21 {a} -> SimpleFragment a -> a
1317testdata/Builtins.lc 365:35-365:47 Type 1317testdata/Builtins.lc 368:28-368:29 Type
1318testdata/Builtins.lc 365:35-365:63 Type 1318testdata/Builtins.lc 371:6-371:20 Nat -> Type->Type
1319testdata/Builtins.lc 365:44-365:45 V2 1319testdata/Builtins.lc 371:28-371:36 Nat -> Type->Type
1320testdata/Builtins.lc 365:46-365:47 Type 1320testdata/Builtins.lc 371:28-371:38 Type->Type
1321testdata/Builtins.lc 365:51-365:59 Nat -> Type->Type 1321testdata/Builtins.lc 371:28-371:40 Type
1322testdata/Builtins.lc 365:51-365:61 Type->Type 1322testdata/Builtins.lc 371:37-371:38 V3
1323testdata/Builtins.lc 365:51-365:63 Type 1323testdata/Builtins.lc 371:39-371:40 V1
1324testdata/Builtins.lc 365:60-365:61 Nat 1324testdata/Builtins.lc 373:1-373:15 {a} -> {b:Nat} -> a->Float -> Vector b (Maybe (SimpleFragment a)) -> Vector b (Maybe (SimpleFragment a))
1325testdata/Builtins.lc 365:62-365:63 Type 1325testdata/Builtins.lc 373:19-373:63 Type
1326testdata/Builtins.lc 367:20-367:76 Type 1326testdata/Builtins.lc 373:20-373:21 V3
1327testdata/Builtins.lc 367:21-367:22 V3 1327testdata/Builtins.lc 373:25-373:30 Type
1328testdata/Builtins.lc 367:26-367:31 Type 1328testdata/Builtins.lc 373:35-373:43 Nat -> Type->Type
1329testdata/Builtins.lc 367:36-367:50 Nat -> Type->Type 1329testdata/Builtins.lc 373:35-373:45 Type->Type
1330testdata/Builtins.lc 367:36-367:52 Type->Type 1330testdata/Builtins.lc 373:35-373:47 Type
1331testdata/Builtins.lc 367:36-367:54 Type 1331testdata/Builtins.lc 373:35-373:63 Type
1332testdata/Builtins.lc 367:36-367:76 Type 1332testdata/Builtins.lc 373:44-373:45 V2
1333testdata/Builtins.lc 367:51-367:52 V2 1333testdata/Builtins.lc 373:46-373:47 Type
1334testdata/Builtins.lc 367:53-367:54 Type 1334testdata/Builtins.lc 373:51-373:59 Nat -> Type->Type
1335testdata/Builtins.lc 367:58-367:72 Nat -> Type->Type 1335testdata/Builtins.lc 373:51-373:61 Type->Type
1336testdata/Builtins.lc 367:58-367:74 Type->Type 1336testdata/Builtins.lc 373:51-373:63 Type
1337testdata/Builtins.lc 367:58-367:76 Type 1337testdata/Builtins.lc 373:60-373:61 Nat
1338testdata/Builtins.lc 367:73-367:74 Nat 1338testdata/Builtins.lc 373:62-373:63 Type
1339testdata/Builtins.lc 367:75-367:76 Type 1339testdata/Builtins.lc 375:20-375:76 Type
1340testdata/Builtins.lc 368:1-368:16 {a} -> {b:Nat} -> a->Float -> Stream (Vector b (Maybe (SimpleFragment a))) -> Stream (Vector b (Maybe (SimpleFragment a))) 1340testdata/Builtins.lc 375:21-375:22 V3
1341testdata/Builtins.lc 368:21-368:30 {a} -> {b} -> a->b -> Stream a -> Stream b 1341testdata/Builtins.lc 375:26-375:31 Type
1342testdata/Builtins.lc 368:21-368:49 Stream (Vector V0 (Maybe (SimpleFragment V3))) -> Stream (Vector V1 (Maybe (SimpleFragment V4))) | V1->Float -> Stream (Vector V1 (Maybe (SimpleFragment V2))) -> Stream (Vector V2 (Maybe (SimpleFragment V3))) 1342testdata/Builtins.lc 375:36-375:50 Nat -> Type->Type
1343testdata/Builtins.lc 368:31-368:49 Vector V0 (Maybe (SimpleFragment V5)) -> Vector V1 (Maybe (SimpleFragment V6)) 1343testdata/Builtins.lc 375:36-375:52 Type->Type
1344testdata/Builtins.lc 368:32-368:46 {a} -> {b:Nat} -> a->Float -> Vector b (Maybe (SimpleFragment a)) -> Vector b (Maybe (SimpleFragment a)) 1344testdata/Builtins.lc 375:36-375:54 Type
1345testdata/Builtins.lc 368:47-368:48 V6->Float 1345testdata/Builtins.lc 375:36-375:76 Type
1346testdata/Builtins.lc 370:1-370:15 {a} -> {b:Nat} -> a->Bool -> Vector b (Maybe (SimpleFragment a)) -> Vector b (Maybe (SimpleFragment a)) 1346testdata/Builtins.lc 375:51-375:52 V2
1347testdata/Builtins.lc 370:19-370:62 Type 1347testdata/Builtins.lc 375:53-375:54 Type
1348testdata/Builtins.lc 370:20-370:21 V3 1348testdata/Builtins.lc 375:58-375:72 Nat -> Type->Type
1349testdata/Builtins.lc 370:25-370:29 Type 1349testdata/Builtins.lc 375:58-375:74 Type->Type
1350testdata/Builtins.lc 370:34-370:42 Nat -> Type->Type 1350testdata/Builtins.lc 375:58-375:76 Type
1351testdata/Builtins.lc 370:34-370:44 Type->Type 1351testdata/Builtins.lc 375:73-375:74 Nat
1352testdata/Builtins.lc 370:34-370:46 Type 1352testdata/Builtins.lc 375:75-375:76 Type
1353testdata/Builtins.lc 370:34-370:62 Type 1353testdata/Builtins.lc 376:1-376:16 {a} -> {b:Nat} -> a->Float -> List (Vector b (Maybe (SimpleFragment a))) -> List (Vector b (Maybe (SimpleFragment a)))
1354testdata/Builtins.lc 370:43-370:44 V2 1354testdata/Builtins.lc 376:21-376:24 {a} -> {b} -> a->b -> List a -> List b
1355testdata/Builtins.lc 370:45-370:46 Type 1355testdata/Builtins.lc 376:21-376:43 List (Vector V0 (Maybe (SimpleFragment V3))) -> List (Vector V1 (Maybe (SimpleFragment V4))) | V1->Float -> List (Vector V1 (Maybe (SimpleFragment V2))) -> List (Vector V2 (Maybe (SimpleFragment V3)))
1356testdata/Builtins.lc 370:50-370:58 Nat -> Type->Type 1356testdata/Builtins.lc 376:25-376:43 Vector V0 (Maybe (SimpleFragment V5)) -> Vector V1 (Maybe (SimpleFragment V6))
1357testdata/Builtins.lc 370:50-370:60 Type->Type 1357testdata/Builtins.lc 376:26-376:40 {a} -> {b:Nat} -> a->Float -> Vector b (Maybe (SimpleFragment a)) -> Vector b (Maybe (SimpleFragment a))
1358testdata/Builtins.lc 370:50-370:62 Type 1358testdata/Builtins.lc 376:41-376:42 V6->Float
1359testdata/Builtins.lc 370:59-370:60 Nat 1359testdata/Builtins.lc 378:1-378:15 {a} -> {b:Nat} -> a->Bool -> Vector b (Maybe (SimpleFragment a)) -> Vector b (Maybe (SimpleFragment a))
1360testdata/Builtins.lc 370:61-370:62 Type 1360testdata/Builtins.lc 378:19-378:62 Type
1361testdata/Builtins.lc 372:20-372:75 Type 1361testdata/Builtins.lc 378:20-378:21 V3
1362testdata/Builtins.lc 372:21-372:22 V3 1362testdata/Builtins.lc 378:25-378:29 Type
1363testdata/Builtins.lc 372:26-372:30 Type 1363testdata/Builtins.lc 378:34-378:42 Nat -> Type->Type
1364testdata/Builtins.lc 372:35-372:49 Nat -> Type->Type 1364testdata/Builtins.lc 378:34-378:44 Type->Type
1365testdata/Builtins.lc 372:35-372:51 Type->Type 1365testdata/Builtins.lc 378:34-378:46 Type
1366testdata/Builtins.lc 372:35-372:53 Type 1366testdata/Builtins.lc 378:34-378:62 Type
1367testdata/Builtins.lc 372:35-372:75 Type 1367testdata/Builtins.lc 378:43-378:44 V2
1368testdata/Builtins.lc 372:50-372:51 V2 1368testdata/Builtins.lc 378:45-378:46 Type
1369testdata/Builtins.lc 372:52-372:53 Type 1369testdata/Builtins.lc 378:50-378:58 Nat -> Type->Type
1370testdata/Builtins.lc 372:57-372:71 Nat -> Type->Type 1370testdata/Builtins.lc 378:50-378:60 Type->Type
1371testdata/Builtins.lc 372:57-372:73 Type->Type 1371testdata/Builtins.lc 378:50-378:62 Type
1372testdata/Builtins.lc 372:57-372:75 Type 1372testdata/Builtins.lc 378:59-378:60 Nat
1373testdata/Builtins.lc 372:72-372:73 Nat 1373testdata/Builtins.lc 378:61-378:62 Type
1374testdata/Builtins.lc 372:74-372:75 Type 1374testdata/Builtins.lc 380:20-380:75 Type
1375testdata/Builtins.lc 373:1-373:16 {a} -> {b:Nat} -> a->Bool -> Stream (Vector b (Maybe (SimpleFragment a))) -> Stream (Vector b (Maybe (SimpleFragment a))) 1375testdata/Builtins.lc 380:21-380:22 V3
1376testdata/Builtins.lc 373:21-373:30 {a} -> {b} -> a->b -> Stream a -> Stream b 1376testdata/Builtins.lc 380:26-380:30 Type
1377testdata/Builtins.lc 373:21-373:49 Stream (Vector V0 (Maybe (SimpleFragment V3))) -> Stream (Vector V1 (Maybe (SimpleFragment V4))) | V1->Bool -> Stream (Vector V1 (Maybe (SimpleFragment V2))) -> Stream (Vector V2 (Maybe (SimpleFragment V3))) 1377testdata/Builtins.lc 380:35-380:49 Nat -> Type->Type
1378testdata/Builtins.lc 373:31-373:49 Vector V0 (Maybe (SimpleFragment V5)) -> Vector V1 (Maybe (SimpleFragment V6)) 1378testdata/Builtins.lc 380:35-380:51 Type->Type
1379testdata/Builtins.lc 373:32-373:46 {a} -> {b:Nat} -> a->Bool -> Vector b (Maybe (SimpleFragment a)) -> Vector b (Maybe (SimpleFragment a)) 1379testdata/Builtins.lc 380:35-380:53 Type
1380testdata/Builtins.lc 373:47-373:48 V6->Bool 1380testdata/Builtins.lc 380:35-380:75 Type
1381testdata/Builtins.lc 375:1-375:12 {a} -> {b} -> {c:Nat} -> a->b -> Vector c (Maybe (SimpleFragment a)) -> Vector c (Maybe (SimpleFragment b)) 1381testdata/Builtins.lc 380:50-380:51 V2
1382testdata/Builtins.lc 375:16-375:56 Type 1382testdata/Builtins.lc 380:52-380:53 Type
1383testdata/Builtins.lc 375:17-375:18 V5 1383testdata/Builtins.lc 380:57-380:71 Nat -> Type->Type
1384testdata/Builtins.lc 375:22-375:23 Type | V4 1384testdata/Builtins.lc 380:57-380:73 Type->Type
1385testdata/Builtins.lc 375:28-375:36 Nat -> Type->Type 1385testdata/Builtins.lc 380:57-380:75 Type
1386testdata/Builtins.lc 375:28-375:38 Type->Type 1386testdata/Builtins.lc 380:72-380:73 Nat
1387testdata/Builtins.lc 375:28-375:40 Type 1387testdata/Builtins.lc 380:74-380:75 Type
1388testdata/Builtins.lc 375:28-375:56 Type 1388testdata/Builtins.lc 381:1-381:16 {a} -> {b:Nat} -> a->Bool -> List (Vector b (Maybe (SimpleFragment a))) -> List (Vector b (Maybe (SimpleFragment a)))
1389testdata/Builtins.lc 375:37-375:38 V2 1389testdata/Builtins.lc 381:21-381:24 {a} -> {b} -> a->b -> List a -> List b
1390testdata/Builtins.lc 375:39-375:40 Type 1390testdata/Builtins.lc 381:21-381:43 List (Vector V0 (Maybe (SimpleFragment V3))) -> List (Vector V1 (Maybe (SimpleFragment V4))) | V1->Bool -> List (Vector V1 (Maybe (SimpleFragment V2))) -> List (Vector V2 (Maybe (SimpleFragment V3)))
1391testdata/Builtins.lc 375:44-375:52 Nat -> Type->Type 1391testdata/Builtins.lc 381:25-381:43 Vector V0 (Maybe (SimpleFragment V5)) -> Vector V1 (Maybe (SimpleFragment V6))
1392testdata/Builtins.lc 375:44-375:54 Type->Type 1392testdata/Builtins.lc 381:26-381:40 {a} -> {b:Nat} -> a->Bool -> Vector b (Maybe (SimpleFragment a)) -> Vector b (Maybe (SimpleFragment a))
1393testdata/Builtins.lc 375:44-375:56 Type 1393testdata/Builtins.lc 381:41-381:42 V6->Bool
1394testdata/Builtins.lc 375:53-375:54 Nat 1394testdata/Builtins.lc 383:1-383:12 {a} -> {b} -> {c:Nat} -> a->b -> Vector c (Maybe (SimpleFragment a)) -> Vector c (Maybe (SimpleFragment b))
1395testdata/Builtins.lc 375:55-375:56 Type 1395testdata/Builtins.lc 383:16-383:56 Type
1396testdata/Builtins.lc 377:17-377:69 Type 1396testdata/Builtins.lc 383:17-383:18 V5
1397testdata/Builtins.lc 377:18-377:19 V5 1397testdata/Builtins.lc 383:22-383:23 Type | V4
1398testdata/Builtins.lc 377:23-377:24 Type | V4 1398testdata/Builtins.lc 383:28-383:36 Nat -> Type->Type
1399testdata/Builtins.lc 377:29-377:43 Nat -> Type->Type 1399testdata/Builtins.lc 383:28-383:38 Type->Type
1400testdata/Builtins.lc 377:29-377:45 Type->Type 1400testdata/Builtins.lc 383:28-383:40 Type
1401testdata/Builtins.lc 377:29-377:47 Type 1401testdata/Builtins.lc 383:28-383:56 Type
1402testdata/Builtins.lc 377:29-377:69 Type 1402testdata/Builtins.lc 383:37-383:38 V2
1403testdata/Builtins.lc 377:44-377:45 V2 1403testdata/Builtins.lc 383:39-383:40 Type
1404testdata/Builtins.lc 377:46-377:47 Type 1404testdata/Builtins.lc 383:44-383:52 Nat -> Type->Type
1405testdata/Builtins.lc 377:51-377:65 Nat -> Type->Type 1405testdata/Builtins.lc 383:44-383:54 Type->Type
1406testdata/Builtins.lc 377:51-377:67 Type->Type 1406testdata/Builtins.lc 383:44-383:56 Type
1407testdata/Builtins.lc 377:51-377:69 Type 1407testdata/Builtins.lc 383:53-383:54 Nat
1408testdata/Builtins.lc 377:66-377:67 Nat
1409testdata/Builtins.lc 377:68-377:69 Type
1410testdata/Builtins.lc 378:1-378:13 {a} -> {b} -> {c:Nat} -> a->b -> Stream (Vector c (Maybe (SimpleFragment a))) -> Stream (Vector c (Maybe (SimpleFragment b)))
1411testdata/Builtins.lc 378:18-378:27 {a} -> {b} -> a->b -> Stream a -> Stream b
1412testdata/Builtins.lc 378:18-378:43 Stream (Vector V0 (Maybe (SimpleFragment V4))) -> Stream (Vector V1 (Maybe (SimpleFragment V4))) | V2->V2 -> Stream (Vector V1 (Maybe (SimpleFragment V3))) -> Stream (Vector V2 (Maybe (SimpleFragment V3)))
1413testdata/Builtins.lc 378:28-378:43 Vector V0 (Maybe (SimpleFragment V6)) -> Vector V1 (Maybe (SimpleFragment V6))
1414testdata/Builtins.lc 378:29-378:40 {a} -> {b} -> {c:Nat} -> a->b -> Vector c (Maybe (SimpleFragment a)) -> Vector c (Maybe (SimpleFragment b))
1415testdata/Builtins.lc 378:41-378:42 V8->V8
1416testdata/Builtins.lc 381:6-381:18 Type | Type->Type
1417testdata/Builtins.lc 381:6-384:7 Type
1418testdata/Builtins.lc 382:3-382:9 Interpolated V2 | Type | {a} -> {b : Floating a} -> Interpolated a
1419testdata/Builtins.lc 382:11-382:24 Interpolated V3 | Type | {a} -> {b : Floating a} -> Interpolated a
1420testdata/Builtins.lc 383:26-383:38 Type
1421testdata/Builtins.lc 383:26-383:56 Type
1422testdata/Builtins.lc 383:27-383:35 Type->Type
1423testdata/Builtins.lc 383:36-383:37 Type
1424testdata/Builtins.lc 383:42-383:54 Type->Type
1425testdata/Builtins.lc 383:42-383:56 Type
1426testdata/Builtins.lc 383:55-383:56 Type 1408testdata/Builtins.lc 383:55-383:56 Type
1427testdata/Builtins.lc 384:3-384:7 Interpolated V3 | {a} -> Interpolated a 1409testdata/Builtins.lc 385:17-385:69 Type
1428testdata/Builtins.lc 384:42-384:54 Type->Type 1410testdata/Builtins.lc 385:18-385:19 V5
1429testdata/Builtins.lc 384:42-384:56 Type 1411testdata/Builtins.lc 385:23-385:24 Type | V4
1430testdata/Builtins.lc 384:55-384:56 Type 1412testdata/Builtins.lc 385:29-385:43 Nat -> Type->Type
1431testdata/Builtins.lc 387:5-387:21 Type->Type 1413testdata/Builtins.lc 385:29-385:45 Type->Type
1432testdata/Builtins.lc 387:27-387:29 Type 1414testdata/Builtins.lc 385:29-385:47 Type
1433testdata/Builtins.lc 387:27-390:82 Type | Type->Type 1415testdata/Builtins.lc 385:29-385:69 Type
1434testdata/Builtins.lc 388:36-388:37 Type 1416testdata/Builtins.lc 385:44-385:45 V2
1435testdata/Builtins.lc 388:36-388:42 Type->Type 1417testdata/Builtins.lc 385:46-385:47 Type
1436testdata/Builtins.lc 388:36-390:82 Type 1418testdata/Builtins.lc 385:51-385:65 Nat -> Type->Type
1437testdata/Builtins.lc 388:41-388:42 Type | Type->Type 1419testdata/Builtins.lc 385:51-385:67 Type->Type
1438testdata/Builtins.lc 389:23-389:53 Type 1420testdata/Builtins.lc 385:51-385:69 Type
1439testdata/Builtins.lc 389:23-389:63 Type->Type 1421testdata/Builtins.lc 385:66-385:67 Nat
1440testdata/Builtins.lc 389:23-390:82 Type 1422testdata/Builtins.lc 385:68-385:69 Type
1441testdata/Builtins.lc 389:57-389:63 Type | Type -> Type->Type | Type->Type 1423testdata/Builtins.lc 386:1-386:13 {a} -> {b} -> {c:Nat} -> a->b -> List (Vector c (Maybe (SimpleFragment a))) -> List (Vector c (Maybe (SimpleFragment b)))
1442testdata/Builtins.lc 389:58-389:59 Type 1424testdata/Builtins.lc 386:18-386:21 {a} -> {b} -> a->b -> List a -> List b
1443testdata/Builtins.lc 389:61-389:62 Type 1425testdata/Builtins.lc 386:18-386:37 List (Vector V0 (Maybe (SimpleFragment V4))) -> List (Vector V1 (Maybe (SimpleFragment V4))) | V2->V2 -> List (Vector V1 (Maybe (SimpleFragment V3))) -> List (Vector V2 (Maybe (SimpleFragment V3)))
1444testdata/Builtins.lc 390:23-390:69 Type 1426testdata/Builtins.lc 386:22-386:37 Vector V0 (Maybe (SimpleFragment V6)) -> Vector V1 (Maybe (SimpleFragment V6))
1445testdata/Builtins.lc 390:23-390:82 Type->Type 1427testdata/Builtins.lc 386:23-386:34 {a} -> {b} -> {c:Nat} -> a->b -> Vector c (Maybe (SimpleFragment a)) -> Vector c (Maybe (SimpleFragment b))
1446testdata/Builtins.lc 390:73-390:82 Type | Type -> Type -> Type->Type | Type -> Type->Type | Type->Type 1428testdata/Builtins.lc 386:35-386:36 V8->V8
1447testdata/Builtins.lc 390:74-390:75 Type 1429testdata/Builtins.lc 389:6-389:18 Type | Type->Type
1448testdata/Builtins.lc 390:74-390:78 Type->Type 1430testdata/Builtins.lc 389:6-392:7 Type
1449testdata/Builtins.lc 390:77-390:78 Type 1431testdata/Builtins.lc 390:3-390:9 Interpolated V2 | Type | {a} -> {b : Floating a} -> Interpolated a
1450testdata/Builtins.lc 390:80-390:81 Type 1432testdata/Builtins.lc 390:11-390:24 Interpolated V3 | Type | {a} -> {b : Floating a} -> Interpolated a
1451testdata/Builtins.lc 392:1-392:10 {a} -> {b} -> {c} -> {d:PrimitiveType} -> {e : a ~ InterpolatedType b} -> {f : c ~ JoinTupleType (VecS Float 4) a} -> b -> RasterContext c d -> Primitive c d -> Stream (Vector 1 (Maybe (SimpleFragment a))) 1433testdata/Builtins.lc 391:26-391:38 Type
1452testdata/Builtins.lc 393:8-398:26 Type 1434testdata/Builtins.lc 391:26-391:56 Type
1453testdata/Builtins.lc 393:10-393:11 V7 1435testdata/Builtins.lc 391:27-391:35 Type->Type
1454testdata/Builtins.lc 393:10-393:13 Type->Type 1436testdata/Builtins.lc 391:36-391:37 Type
1455testdata/Builtins.lc 393:10-393:44 Type 1437testdata/Builtins.lc 391:42-391:54 Type->Type
1456testdata/Builtins.lc 393:12-393:13 Type -> Type->Type 1438testdata/Builtins.lc 391:42-391:56 Type
1457testdata/Builtins.lc 393:14-393:30 Type->Type 1439testdata/Builtins.lc 391:55-391:56 Type
1458testdata/Builtins.lc 393:14-393:44 Type 1440testdata/Builtins.lc 392:3-392:7 Interpolated V3 | {a} -> Interpolated a
1459testdata/Builtins.lc 393:31-393:44 V5 1441testdata/Builtins.lc 392:42-392:54 Type->Type
1460testdata/Builtins.lc 394:10-394:11 V4 1442testdata/Builtins.lc 392:42-392:56 Type
1461testdata/Builtins.lc 394:10-394:13 Type->Type 1443testdata/Builtins.lc 392:55-392:56 Type
1462testdata/Builtins.lc 394:10-394:43 Type 1444testdata/Builtins.lc 395:5-395:21 Type->Type
1463testdata/Builtins.lc 394:10-398:26 Type 1445testdata/Builtins.lc 395:27-395:29 Type
1464testdata/Builtins.lc 394:12-394:13 Type -> Type->Type 1446testdata/Builtins.lc 395:27-398:82 Type | Type->Type
1465testdata/Builtins.lc 394:14-394:27 Type -> Type->Type 1447testdata/Builtins.lc 396:36-396:37 Type
1466testdata/Builtins.lc 394:14-394:41 Type->Type 1448testdata/Builtins.lc 396:36-396:42 Type->Type
1467testdata/Builtins.lc 394:14-394:43 Type 1449testdata/Builtins.lc 396:36-398:82 Type
1468testdata/Builtins.lc 394:28-394:41 Type 1450testdata/Builtins.lc 396:41-396:42 Type | Type->Type
1469testdata/Builtins.lc 394:29-394:32 Nat -> Type->Type 1451testdata/Builtins.lc 397:23-397:53 Type
1470testdata/Builtins.lc 394:29-394:34 Type->Type 1452testdata/Builtins.lc 397:23-397:63 Type->Type
1471testdata/Builtins.lc 394:33-394:34 V1 1453testdata/Builtins.lc 397:23-398:82 Type
1472testdata/Builtins.lc 394:35-394:40 Type 1454testdata/Builtins.lc 397:57-397:63 Type | Type -> Type->Type | Type->Type
1473testdata/Builtins.lc 394:42-394:43 Type 1455testdata/Builtins.lc 397:58-397:59 Type
1474testdata/Builtins.lc 395:8-395:21 Type 1456testdata/Builtins.lc 397:61-397:62 Type
1475testdata/Builtins.lc 395:8-398:26 Type 1457testdata/Builtins.lc 398:23-398:69 Type
1476testdata/Builtins.lc 396:8-396:21 Type -> PrimitiveType->Type 1458testdata/Builtins.lc 398:23-398:82 Type->Type
1477testdata/Builtins.lc 396:8-396:23 PrimitiveType->Type 1459testdata/Builtins.lc 398:73-398:82 Type | Type -> Type -> Type->Type | Type -> Type->Type | Type->Type
1478testdata/Builtins.lc 396:8-396:25 Type 1460testdata/Builtins.lc 398:74-398:75 Type
1479testdata/Builtins.lc 396:8-398:26 Type 1461testdata/Builtins.lc 398:74-398:78 Type->Type
1480testdata/Builtins.lc 396:22-396:23 Type 1462testdata/Builtins.lc 398:77-398:78 Type
1481testdata/Builtins.lc 396:24-396:25 V4 1463testdata/Builtins.lc 398:80-398:81 Type
1482testdata/Builtins.lc 397:8-397:17 Type -> PrimitiveType->Type 1464testdata/Builtins.lc 400:1-400:10 {a} -> {b} -> {c} -> {d:PrimitiveType} -> {e : a ~ InterpolatedType b} -> {f : c ~ JoinTupleType (VecS Float 4) a} -> b -> RasterContext c d -> Primitive c d -> List (Vector 1 (Maybe (SimpleFragment a)))
1483testdata/Builtins.lc 397:8-397:19 PrimitiveType->Type 1465testdata/Builtins.lc 401:8-406:26 Type
1484testdata/Builtins.lc 397:8-397:21 Type 1466testdata/Builtins.lc 401:10-401:11 V7
1485testdata/Builtins.lc 397:8-398:26 Type 1467testdata/Builtins.lc 401:10-401:13 Type->Type
1486testdata/Builtins.lc 397:18-397:19 Type 1468testdata/Builtins.lc 401:10-401:44 Type
1487testdata/Builtins.lc 397:20-397:21 PrimitiveType 1469testdata/Builtins.lc 401:12-401:13 Type -> Type->Type
1488testdata/Builtins.lc 398:8-398:22 Nat -> Type->Type 1470testdata/Builtins.lc 401:14-401:30 Type->Type
1489testdata/Builtins.lc 398:8-398:24 Type->Type 1471testdata/Builtins.lc 401:14-401:44 Type
1490testdata/Builtins.lc 398:8-398:26 Type 1472testdata/Builtins.lc 401:31-401:44 V5
1491testdata/Builtins.lc 398:23-398:24 V1 1473testdata/Builtins.lc 402:10-402:11 V4
1492testdata/Builtins.lc 398:25-398:26 Type 1474testdata/Builtins.lc 402:10-402:13 Type->Type
1493testdata/Builtins.lc 400:1-400:20 {a} -> {b:PrimitiveType} -> RasterContext (JoinTupleType (VecS Float 4) (InterpolatedType a)) b -> a -> Stream (Primitive (JoinTupleType (VecS Float 4) (InterpolatedType a)) b) -> Stream (Vector 1 (Maybe (SimpleFragment (InterpolatedType a)))) 1475testdata/Builtins.lc 402:10-402:43 Type
1494testdata/Builtins.lc 400:30-400:45 {a} -> {b} -> (a -> Stream b) -> Stream a -> Stream b 1476testdata/Builtins.lc 402:10-406:26 Type
1495testdata/Builtins.lc 400:30-400:64 Stream (Primitive (JoinTupleType (VecS Float 4) (InterpolatedType V2)) V0) -> Stream (Vector 1 (Maybe (SimpleFragment (InterpolatedType V3)))) 1477testdata/Builtins.lc 402:12-402:13 Type -> Type->Type
1496testdata/Builtins.lc 400:46-400:64 Primitive (JoinTupleType (VecS Float 4) (InterpolatedType V2)) V0 -> Stream (Vector 1 (Maybe (SimpleFragment (InterpolatedType V3)))) 1478testdata/Builtins.lc 402:14-402:27 Type -> Type->Type
1497testdata/Builtins.lc 400:47-400:56 {a} -> {b} -> {c} -> {d:PrimitiveType} -> {e : a ~ InterpolatedType b} -> {f : c ~ JoinTupleType (VecS Float 4) a} -> b -> RasterContext c d -> Primitive c d -> Stream (Vector 1 (Maybe (SimpleFragment a))) 1479testdata/Builtins.lc 402:14-402:41 Type->Type
1498testdata/Builtins.lc 400:47-400:59 RasterContext (JoinTupleType (VecS Float 4) (InterpolatedType V4)) V0 -> Primitive (JoinTupleType (VecS Float 4) (InterpolatedType V5)) V1 -> Stream (Vector 1 (Maybe (SimpleFragment (InterpolatedType V6)))) 1480testdata/Builtins.lc 402:14-402:43 Type
1499testdata/Builtins.lc 400:57-400:59 V5 1481testdata/Builtins.lc 402:28-402:41 Type
1500testdata/Builtins.lc 400:60-400:63 V4 1482testdata/Builtins.lc 402:29-402:32 Nat -> Type->Type
1501testdata/Builtins.lc 403:6-403:11 Nat -> Type->Type | Type 1483testdata/Builtins.lc 402:29-402:34 Type->Type
1502testdata/Builtins.lc 403:6-407:68 Type 1484testdata/Builtins.lc 402:33-402:34 V1
1503testdata/Builtins.lc 403:15-403:18 Type 1485testdata/Builtins.lc 402:35-402:40 Type
1504testdata/Builtins.lc 403:22-403:26 Type 1486testdata/Builtins.lc 402:42-402:43 Type
1505testdata/Builtins.lc 403:22-403:34 Type 1487testdata/Builtins.lc 403:8-403:21 Type
1506testdata/Builtins.lc 403:30-403:34 Type 1488testdata/Builtins.lc 403:8-406:26 Type
1507testdata/Builtins.lc 404:3-404:13 Image V6 (Color V3) | {a:Nat} -> {b:Nat} -> {c} -> {d} -> {e : Num c} -> {f : d ~ VecScalar b c} -> d -> Image a (Color d) 1489testdata/Builtins.lc 404:8-404:21 Type -> PrimitiveType->Type
1508testdata/Builtins.lc 404:3-405:57 Type 1490testdata/Builtins.lc 404:8-404:23 PrimitiveType->Type
1509testdata/Builtins.lc 404:47-405:57 Type 1491testdata/Builtins.lc 404:8-404:25 Type
1510testdata/Builtins.lc 404:48-404:51 Type->Type 1492testdata/Builtins.lc 404:8-406:26 Type
1511testdata/Builtins.lc 404:48-404:53 Type 1493testdata/Builtins.lc 404:22-404:23 Type
1512testdata/Builtins.lc 404:52-404:53 V3 1494testdata/Builtins.lc 404:24-404:25 V4
1513testdata/Builtins.lc 404:55-404:60 V2 1495testdata/Builtins.lc 405:8-405:17 Type -> PrimitiveType->Type
1514testdata/Builtins.lc 404:55-404:62 Type->Type 1496testdata/Builtins.lc 405:8-405:19 PrimitiveType->Type
1515testdata/Builtins.lc 404:55-404:76 Type 1497testdata/Builtins.lc 405:8-405:21 Type
1516testdata/Builtins.lc 404:55-405:57 Type 1498testdata/Builtins.lc 405:8-406:26 Type
1517testdata/Builtins.lc 404:61-404:62 Type -> Type->Type 1499testdata/Builtins.lc 405:18-405:19 Type
1518testdata/Builtins.lc 404:63-404:72 Nat -> Type->Type 1500testdata/Builtins.lc 405:20-405:21 PrimitiveType
1519testdata/Builtins.lc 404:63-404:74 Type->Type 1501testdata/Builtins.lc 406:8-406:22 Nat -> Type->Type
1520testdata/Builtins.lc 404:63-404:76 Type 1502testdata/Builtins.lc 406:8-406:24 Type->Type
1521testdata/Builtins.lc 404:73-404:74 V4 1503testdata/Builtins.lc 406:8-406:26 Type
1522testdata/Builtins.lc 404:75-404:76 Type 1504testdata/Builtins.lc 406:23-406:24 V1
1523testdata/Builtins.lc 405:26-405:31 Type 1505testdata/Builtins.lc 406:25-406:26 Type
1524testdata/Builtins.lc 405:26-405:57 Type 1506testdata/Builtins.lc 408:1-408:20 {a} -> {b:PrimitiveType} -> RasterContext (JoinTupleType (VecS Float 4) (InterpolatedType a)) b -> a -> List (Primitive (JoinTupleType (VecS Float 4) (InterpolatedType a)) b) -> List (Vector 1 (Maybe (SimpleFragment (InterpolatedType a))))
1525testdata/Builtins.lc 405:36-405:41 Nat -> Type->Type 1507testdata/Builtins.lc 408:32-408:38 {a} -> List (List a) -> List a
1526testdata/Builtins.lc 405:36-405:43 Type->Type 1508testdata/Builtins.lc 408:32-408:65 List (Vector 1 (Maybe (SimpleFragment (InterpolatedType V3))))
1527testdata/Builtins.lc 405:36-405:57 Type 1509testdata/Builtins.lc 408:39-408:65 List (List (Vector 1 (Maybe (SimpleFragment (InterpolatedType V3)))))
1528testdata/Builtins.lc 405:42-405:43 Nat | V7 1510testdata/Builtins.lc 408:40-408:43 {a} -> {b} -> a->b -> List a -> List b
1529testdata/Builtins.lc 405:42-405:57 Image V6 (Color V3) -> Type 1511testdata/Builtins.lc 408:40-408:62 List (Primitive (JoinTupleType (VecS Float 4) (InterpolatedType V5)) V0) -> List (List (Vector 1 (Maybe (SimpleFragment (InterpolatedType V6)))))
1530testdata/Builtins.lc 405:44-405:57 Type 1512testdata/Builtins.lc 408:44-408:62 Primitive (JoinTupleType (VecS Float 4) (InterpolatedType V5)) V0 -> List (Vector 1 (Maybe (SimpleFragment (InterpolatedType V6))))
1531testdata/Builtins.lc 405:45-405:50 Type->Type 1513testdata/Builtins.lc 408:45-408:54 {a} -> {b} -> {c} -> {d:PrimitiveType} -> {e : a ~ InterpolatedType b} -> {f : c ~ JoinTupleType (VecS Float 4) a} -> b -> RasterContext c d -> Primitive c d -> List (Vector 1 (Maybe (SimpleFragment a)))
1532testdata/Builtins.lc 405:51-405:56 Type 1514testdata/Builtins.lc 408:45-408:57 RasterContext (JoinTupleType (VecS Float 4) (InterpolatedType V7)) V0 -> Primitive (JoinTupleType (VecS Float 4) (InterpolatedType V8)) V1 -> List (Vector 1 (Maybe (SimpleFragment (InterpolatedType V9))))
1533testdata/Builtins.lc 406:3-406:13 Image V1 (Depth Float) | {a:Nat} -> Float -> Image a (Depth Float) 1515testdata/Builtins.lc 408:55-408:57 V8
1534testdata/Builtins.lc 406:3-406:68 Type 1516testdata/Builtins.lc 408:58-408:61 V7
1535testdata/Builtins.lc 406:37-406:42 Type 1517testdata/Builtins.lc 408:63-408:64 V2
1536testdata/Builtins.lc 406:37-406:68 Type 1518testdata/Builtins.lc 410:6-410:11 Nat -> Type->Type | Type
1537testdata/Builtins.lc 406:47-406:52 Nat -> Type->Type 1519testdata/Builtins.lc 410:6-414:68 Type
1538testdata/Builtins.lc 406:47-406:54 Type->Type 1520testdata/Builtins.lc 410:15-410:18 Type
1539testdata/Builtins.lc 406:47-406:68 Type 1521testdata/Builtins.lc 410:22-410:26 Type
1540testdata/Builtins.lc 406:53-406:54 Nat | V2 1522testdata/Builtins.lc 410:22-410:34 Type
1541testdata/Builtins.lc 406:53-406:68 Image V1 (Depth Float) -> Type 1523testdata/Builtins.lc 410:30-410:34 Type
1542testdata/Builtins.lc 406:55-406:68 Type 1524testdata/Builtins.lc 411:3-411:13 Image V6 (Color V3) | {a:Nat} -> {b:Nat} -> {c} -> {d} -> {e : Num c} -> {f : d ~ VecScalar b c} -> d -> Image a (Color d)
1543testdata/Builtins.lc 406:56-406:61 Type->Type 1525testdata/Builtins.lc 411:3-412:57 Type
1544testdata/Builtins.lc 406:62-406:67 Type 1526testdata/Builtins.lc 411:47-412:57 Type
1545testdata/Builtins.lc 407:3-407:15 Image V1 (Stencil Int) | {a:Nat} -> Int -> Image a (Stencil Int) 1527testdata/Builtins.lc 411:48-411:51 Type->Type
1546testdata/Builtins.lc 407:3-407:68 Type 1528testdata/Builtins.lc 411:48-411:53 Type
1547testdata/Builtins.lc 407:37-407:40 Type 1529testdata/Builtins.lc 411:52-411:53 V3
1548testdata/Builtins.lc 407:37-407:68 Type 1530testdata/Builtins.lc 411:55-411:60 V2
1549testdata/Builtins.lc 407:47-407:52 Nat -> Type->Type 1531testdata/Builtins.lc 411:55-411:62 Type->Type
1550testdata/Builtins.lc 407:47-407:54 Type->Type 1532testdata/Builtins.lc 411:55-411:76 Type
1551testdata/Builtins.lc 407:47-407:68 Type 1533testdata/Builtins.lc 411:55-412:57 Type
1552testdata/Builtins.lc 407:53-407:54 Nat | V2 1534testdata/Builtins.lc 411:61-411:62 Type -> Type->Type
1553testdata/Builtins.lc 407:53-407:68 Image V1 (Stencil Int) -> Type 1535testdata/Builtins.lc 411:63-411:72 Nat -> Type->Type
1554testdata/Builtins.lc 407:55-407:68 Type 1536testdata/Builtins.lc 411:63-411:74 Type->Type
1555testdata/Builtins.lc 407:56-407:63 Type->Type 1537testdata/Builtins.lc 411:63-411:76 Type
1556testdata/Builtins.lc 407:64-407:67 Type 1538testdata/Builtins.lc 411:73-411:74 V4
1557testdata/Builtins.lc 410:6-410:20 Nat -> Type->Type | Type 1539testdata/Builtins.lc 411:75-411:76 Type
1558testdata/Builtins.lc 410:27-410:30 Type 1540testdata/Builtins.lc 412:26-412:31 Type
1559testdata/Builtins.lc 413:5-413:18 Type->Type 1541testdata/Builtins.lc 412:26-412:57 Type
1560testdata/Builtins.lc 413:26-413:31 Type 1542testdata/Builtins.lc 412:36-412:41 Nat -> Type->Type
1561testdata/Builtins.lc 413:26-413:55 Type->Type 1543testdata/Builtins.lc 412:36-412:43 Type->Type
1562testdata/Builtins.lc 413:26-415:91 Type | Type->Type 1544testdata/Builtins.lc 412:36-412:57 Type
1563testdata/Builtins.lc 413:35-413:49 Nat -> Type->Type 1545testdata/Builtins.lc 412:42-412:43 Nat | V7
1564testdata/Builtins.lc 413:35-413:52 Type->Type 1546testdata/Builtins.lc 412:42-412:57 Image V6 (Color V3) -> Type
1565testdata/Builtins.lc 413:35-413:55 Nat -> Type->Type | Type | Type->Type 1547testdata/Builtins.lc 412:44-412:57 Type
1566testdata/Builtins.lc 413:50-413:52 Nat 1548testdata/Builtins.lc 412:45-412:50 Type->Type
1567testdata/Builtins.lc 413:53-413:55 Type 1549testdata/Builtins.lc 412:51-412:56 Type
1568testdata/Builtins.lc 414:20-414:44 Type 1550testdata/Builtins.lc 413:3-413:13 Image V1 (Depth Float) | {a:Nat} -> Float -> Image a (Depth Float)
1569testdata/Builtins.lc 414:20-414:74 Type->Type 1551testdata/Builtins.lc 413:3-413:68 Type
1570testdata/Builtins.lc 414:20-415:91 Type 1552testdata/Builtins.lc 413:37-413:42 Type
1571testdata/Builtins.lc 414:48-414:62 Nat -> Type->Type 1553testdata/Builtins.lc 413:37-413:68 Type
1572testdata/Builtins.lc 414:48-414:65 Type->Type 1554testdata/Builtins.lc 413:47-413:52 Nat -> Type->Type
1573testdata/Builtins.lc 414:48-414:74 Nat -> Type->Type | Type | Type -> Type->Type | Type->Type 1555testdata/Builtins.lc 413:47-413:54 Type->Type
1574testdata/Builtins.lc 414:63-414:65 Nat 1556testdata/Builtins.lc 413:47-413:68 Type
1575testdata/Builtins.lc 414:66-414:74 Type 1557testdata/Builtins.lc 413:53-413:54 Nat | V2
1576testdata/Builtins.lc 414:67-414:69 Type 1558testdata/Builtins.lc 413:53-413:68 Image V1 (Depth Float) -> Type
1577testdata/Builtins.lc 414:71-414:73 Type 1559testdata/Builtins.lc 413:55-413:68 Type
1578testdata/Builtins.lc 415:20-415:57 Type 1560testdata/Builtins.lc 413:56-413:61 Type->Type
1579testdata/Builtins.lc 415:20-415:91 Type->Type 1561testdata/Builtins.lc 413:62-413:67 Type
1580testdata/Builtins.lc 415:61-415:75 Nat -> Type->Type 1562testdata/Builtins.lc 414:3-414:15 Image V1 (Stencil Int) | {a:Nat} -> Int -> Image a (Stencil Int)
1581testdata/Builtins.lc 415:61-415:78 Type->Type 1563testdata/Builtins.lc 414:3-414:68 Type
1582testdata/Builtins.lc 415:61-415:91 Nat -> Type->Type | Type | Type -> Type -> Type->Type | Type -> Type->Type | Type->Type 1564testdata/Builtins.lc 414:37-414:40 Type
1583testdata/Builtins.lc 415:76-415:78 Nat 1565testdata/Builtins.lc 414:37-414:68 Type
1584testdata/Builtins.lc 415:79-415:91 Type 1566testdata/Builtins.lc 414:47-414:52 Nat -> Type->Type
1585testdata/Builtins.lc 415:80-415:82 Type 1567testdata/Builtins.lc 414:47-414:54 Type->Type
1586testdata/Builtins.lc 415:80-415:86 Type->Type 1568testdata/Builtins.lc 414:47-414:68 Type
1587testdata/Builtins.lc 415:84-415:86 Type 1569testdata/Builtins.lc 414:53-414:54 Nat | V2
1588testdata/Builtins.lc 415:88-415:90 Type 1570testdata/Builtins.lc 414:53-414:68 Image V1 (Stencil Int) -> Type
1589testdata/Builtins.lc 418:5-418:20 Type->Type 1571testdata/Builtins.lc 414:55-414:68 Type
1590testdata/Builtins.lc 418:28-418:33 Type 1572testdata/Builtins.lc 414:56-414:63 Type->Type
1591testdata/Builtins.lc 418:28-418:41 Type->Type 1573testdata/Builtins.lc 414:64-414:67 Type
1592testdata/Builtins.lc 418:28-420:99 Type | Type->Type 1574testdata/Builtins.lc 417:6-417:20 Nat -> Type->Type | Type
1593testdata/Builtins.lc 418:37-418:41 Nat -> Type->Type | Type | Type->Type 1575testdata/Builtins.lc 417:27-417:30 Type
1594testdata/Builtins.lc 419:22-419:46 Type 1576testdata/Builtins.lc 420:5-420:18 Type->Type
1595testdata/Builtins.lc 419:22-419:64 Type->Type 1577testdata/Builtins.lc 420:26-420:31 Type
1596testdata/Builtins.lc 419:22-420:99 Type 1578testdata/Builtins.lc 420:26-420:55 Type->Type
1597testdata/Builtins.lc 419:50-419:54 a:Type -> a -> a->Type 1579testdata/Builtins.lc 420:26-422:91 Type | Type->Type
1598testdata/Builtins.lc 419:50-419:58 Nat -> Nat->Type 1580testdata/Builtins.lc 420:35-420:49 Nat -> Type->Type
1599testdata/Builtins.lc 419:50-419:61 Nat->Type 1581testdata/Builtins.lc 420:35-420:52 Type->Type
1600testdata/Builtins.lc 419:50-419:64 Nat -> Type->Type | Type | Type -> Type->Type | Type->Type 1582testdata/Builtins.lc 420:35-420:55 Nat -> Type->Type | Type | Type->Type
1601testdata/Builtins.lc 419:55-419:58 Type 1583testdata/Builtins.lc 420:50-420:52 Nat
1602testdata/Builtins.lc 419:59-419:61 Nat 1584testdata/Builtins.lc 420:53-420:55 Type
1603testdata/Builtins.lc 419:62-419:64 Nat 1585testdata/Builtins.lc 421:20-421:44 Type
1604testdata/Builtins.lc 420:22-420:59 Type 1586testdata/Builtins.lc 421:20-421:74 Type->Type
1605testdata/Builtins.lc 420:22-420:99 Type->Type 1587testdata/Builtins.lc 421:20-422:91 Type
1606testdata/Builtins.lc 420:63-420:65 Type -> Type->Type 1588testdata/Builtins.lc 421:48-421:62 Nat -> Type->Type
1607testdata/Builtins.lc 420:63-420:82 Type->Type 1589testdata/Builtins.lc 421:48-421:65 Type->Type
1608testdata/Builtins.lc 420:63-420:99 Nat -> Type->Type | Type | Type -> Type -> Type->Type | Type -> Type->Type | Type->Type 1590testdata/Builtins.lc 421:48-421:74 Nat -> Type->Type | Type | Type -> Type->Type | Type->Type
1609testdata/Builtins.lc 420:66-420:82 Type 1591testdata/Builtins.lc 421:63-421:65 Nat
1610testdata/Builtins.lc 420:67-420:71 a:Type -> a -> a->Type 1592testdata/Builtins.lc 421:66-421:74 Type
1611testdata/Builtins.lc 420:67-420:75 Nat -> Nat->Type 1593testdata/Builtins.lc 421:67-421:69 Type
1612testdata/Builtins.lc 420:67-420:78 Nat->Type 1594testdata/Builtins.lc 421:71-421:73 Type
1613testdata/Builtins.lc 420:72-420:75 Type 1595testdata/Builtins.lc 422:20-422:57 Type
1614testdata/Builtins.lc 420:76-420:78 Nat 1596testdata/Builtins.lc 422:20-422:91 Type->Type
1615testdata/Builtins.lc 420:79-420:81 Nat 1597testdata/Builtins.lc 422:61-422:75 Nat -> Type->Type
1616testdata/Builtins.lc 420:83-420:99 Type 1598testdata/Builtins.lc 422:61-422:78 Type->Type
1617testdata/Builtins.lc 420:84-420:88 a:Type -> a -> a->Type 1599testdata/Builtins.lc 422:61-422:91 Nat -> Type->Type | Type | Type -> Type -> Type->Type | Type -> Type->Type | Type->Type
1618testdata/Builtins.lc 420:84-420:92 Nat -> Nat->Type 1600testdata/Builtins.lc 422:76-422:78 Nat
1619testdata/Builtins.lc 420:84-420:95 Nat->Type 1601testdata/Builtins.lc 422:79-422:91 Type
1620testdata/Builtins.lc 420:89-420:92 Type 1602testdata/Builtins.lc 422:80-422:82 Type
1621testdata/Builtins.lc 420:93-420:95 Nat 1603testdata/Builtins.lc 422:80-422:86 Type->Type
1622testdata/Builtins.lc 420:96-420:98 Nat 1604testdata/Builtins.lc 422:84-422:86 Type
1623testdata/Builtins.lc 422:7-422:20 Type->Type 1605testdata/Builtins.lc 422:88-422:90 Type
1624testdata/Builtins.lc 422:7-422:65 Type 1606testdata/Builtins.lc 425:5-425:20 Type->Type
1625testdata/Builtins.lc 422:29-422:42 {a} -> {b} -> {c : DefaultFragOp b} -> FragmentOperation b 1607testdata/Builtins.lc 425:28-425:33 Type
1626testdata/Builtins.lc 422:46-422:63 Type->Type 1608testdata/Builtins.lc 425:28-425:41 Type->Type
1627testdata/Builtins.lc 422:46-422:65 Type 1609testdata/Builtins.lc 425:28-427:99 Type | Type->Type
1628testdata/Builtins.lc 422:64-422:65 Type 1610testdata/Builtins.lc 425:37-425:41 Nat -> Type->Type | Type | Type->Type
1629testdata/Builtins.lc 423:37-423:42 Type 1611testdata/Builtins.lc 426:22-426:46 Type
1630testdata/Builtins.lc 423:37-423:112 ({a : DefaultFragOp V1} -> FragmentOperation V2) -> {c : DefaultFragOp V2} -> FragmentOperation V3 1612testdata/Builtins.lc 426:22-426:64 Type->Type
1631testdata/Builtins.lc 423:37-424:36 Type | Type->Type 1613testdata/Builtins.lc 426:22-427:99 Type
1632testdata/Builtins.lc 423:37-424:77 {a : DefaultFragOp V1} -> FragmentOperation V2 | {a} -> {b : DefaultFragOp a} -> FragmentOperation a 1614testdata/Builtins.lc 426:50-426:54 a:Type -> a -> a->Type
1633testdata/Builtins.lc 423:69-423:76 {a} -> {b:Nat} -> {c} -> {d} -> {e : a ~ VecScalar b Bool} -> {f : c ~ VecScalar b d} -> {g : Num d} -> Blending d -> a -> FragmentOperation (Color c) 1615testdata/Builtins.lc 426:50-426:58 Nat -> Nat->Type
1634testdata/Builtins.lc 423:69-423:87 VecScalar V2 Bool -> FragmentOperation (Color (VecScalar V3 V2)) 1616testdata/Builtins.lc 426:50-426:61 Nat->Type
1635testdata/Builtins.lc 423:69-423:112 FragmentOperation (Color (VecS V1 4)) | a:Nat -> {b : DefaultFragOp (Color (VecS Float ('Succ ('Succ ('Succ ('Succ a))))))} -> FragmentOperation (Color (VecS Float ('Succ ('Succ ('Succ ('Succ a)))))) | a:Nat -> {b : DefaultFragOp (Color (VecS Float ('Succ ('Succ ('Succ a)))))} -> FragmentOperation (Color (VecS Float ('Succ ('Succ ('Succ a))))) | a:Nat -> {b : DefaultFragOp (Color (VecS Float ('Succ ('Succ a))))} -> FragmentOperation (Color (VecS Float ('Succ ('Succ a)))) | a:Nat -> {b : DefaultFragOp (Color (VecS Float ('Succ a)))} -> FragmentOperation (Color (VecS Float ('Succ a))) | a:Nat -> {b : DefaultFragOp (Color (VecS V1 a))} -> FragmentOperation (Color (VecS V2 a)) | a:Type -> b:Nat -> {c : DefaultFragOp (Color (VecS a b))} -> FragmentOperation (Color (VecS a b)) | a:Type -> {b : DefaultFragOp (Color a)} -> FragmentOperation (Color a) 1617testdata/Builtins.lc 426:50-426:64 Nat -> Type->Type | Type | Type -> Type->Type | Type->Type
1636testdata/Builtins.lc 423:77-423:87 {a} -> Blending a 1618testdata/Builtins.lc 426:55-426:58 Type
1637testdata/Builtins.lc 423:88-423:112 VecS Bool 4 1619testdata/Builtins.lc 426:59-426:61 Nat
1638testdata/Builtins.lc 423:89-423:91 {a} -> a -> a -> a -> a -> VecS a 4 1620testdata/Builtins.lc 426:62-426:64 Nat
1639testdata/Builtins.lc 423:89-423:96 Bool -> Bool -> Bool -> VecS Bool 4 1621testdata/Builtins.lc 427:22-427:59 Type
1640testdata/Builtins.lc 423:89-423:101 Bool -> Bool -> VecS Bool 4 1622testdata/Builtins.lc 427:22-427:99 Type->Type
1641testdata/Builtins.lc 423:89-423:106 Bool -> VecS Bool 4 1623testdata/Builtins.lc 427:63-427:65 Type -> Type->Type
1642testdata/Builtins.lc 423:92-423:96 Bool 1624testdata/Builtins.lc 427:63-427:82 Type->Type
1643testdata/Builtins.lc 423:97-423:101 Bool 1625testdata/Builtins.lc 427:63-427:99 Nat -> Type->Type | Type | Type -> Type -> Type->Type | Type -> Type->Type | Type->Type
1644testdata/Builtins.lc 423:102-423:106 Bool 1626testdata/Builtins.lc 427:66-427:82 Type
1645testdata/Builtins.lc 423:107-423:111 Bool 1627testdata/Builtins.lc 427:67-427:71 a:Type -> a -> a->Type
1646testdata/Builtins.lc 424:31-424:36 Type 1628testdata/Builtins.lc 427:67-427:75 Nat -> Nat->Type
1647testdata/Builtins.lc 424:31-424:77 ({a : DefaultFragOp V1} -> FragmentOperation V2) -> {c : DefaultFragOp V2} -> FragmentOperation V3 1629testdata/Builtins.lc 427:67-427:78 Nat->Type
1648testdata/Builtins.lc 424:60-424:67 ComparisonFunction -> Bool -> FragmentOperation (Depth Float) 1630testdata/Builtins.lc 427:72-427:75 Type
1649testdata/Builtins.lc 424:60-424:72 Bool -> FragmentOperation (Depth Float) 1631testdata/Builtins.lc 427:76-427:78 Nat
1650testdata/Builtins.lc 424:60-424:77 FragmentOperation (Depth Float) | a:Type -> {b : DefaultFragOp (Depth a)} -> FragmentOperation (Depth a) 1632testdata/Builtins.lc 427:79-427:81 Nat
1651testdata/Builtins.lc 424:68-424:72 ComparisonFunction 1633testdata/Builtins.lc 427:83-427:99 Type
1652testdata/Builtins.lc 424:73-424:77 Bool 1634testdata/Builtins.lc 427:84-427:88 a:Type -> a -> a->Type
1653testdata/Builtins.lc 431:6-431:17 Nat -> Type->Type | Type 1635testdata/Builtins.lc 427:84-427:92 Nat -> Nat->Type
1654testdata/Builtins.lc 431:6-433:14 Type 1636testdata/Builtins.lc 427:84-427:95 Nat->Type
1655testdata/Builtins.lc 431:24-431:27 Type 1637testdata/Builtins.lc 427:89-427:92 Type
1656testdata/Builtins.lc 432:3-432:13 FrameBuffer V5 V4 | Type | {a:Nat} -> {b} -> FragOps' b -> Stream (Vector a (Maybe (SimpleFragment (RemSemantics b)))) -> FrameBuffer a b -> FrameBuffer a b 1638testdata/Builtins.lc 427:93-427:95 Nat
1657testdata/Builtins.lc 432:19-432:27 Type->Type 1639testdata/Builtins.lc 427:96-427:98 Nat
1658testdata/Builtins.lc 432:19-432:29 Type 1640testdata/Builtins.lc 429:7-429:20 Type->Type
1659testdata/Builtins.lc 432:19-432:106 Type 1641testdata/Builtins.lc 429:7-429:65 Type
1660testdata/Builtins.lc 432:28-432:29 Type 1642testdata/Builtins.lc 429:29-429:42 {a} -> {b} -> {c : DefaultFragOp b} -> FragmentOperation b
1661testdata/Builtins.lc 432:33-432:68 Type 1643testdata/Builtins.lc 429:46-429:63 Type->Type
1662testdata/Builtins.lc 432:33-432:106 Type 1644testdata/Builtins.lc 429:46-429:65 Type
1663testdata/Builtins.lc 432:34-432:48 Nat -> Type->Type 1645testdata/Builtins.lc 429:64-429:65 Type
1664testdata/Builtins.lc 432:34-432:50 Type->Type 1646testdata/Builtins.lc 430:37-430:42 Type
1665testdata/Builtins.lc 432:49-432:50 Nat 1647testdata/Builtins.lc 430:37-430:112 ({a : DefaultFragOp V1} -> FragmentOperation V2) -> {c : DefaultFragOp V2} -> FragmentOperation V3
1666testdata/Builtins.lc 432:51-432:67 Type 1648testdata/Builtins.lc 430:37-431:36 Type | Type->Type
1667testdata/Builtins.lc 432:52-432:64 Type->Type 1649testdata/Builtins.lc 430:37-431:77 {a : DefaultFragOp V1} -> FragmentOperation V2 | {a} -> {b : DefaultFragOp a} -> FragmentOperation a
1668testdata/Builtins.lc 432:65-432:66 Type 1650testdata/Builtins.lc 430:69-430:76 {a} -> {b:Nat} -> {c} -> {d} -> {e : a ~ VecScalar b Bool} -> {f : c ~ VecScalar b d} -> {g : Num d} -> Blending d -> a -> FragmentOperation (Color c)
1669testdata/Builtins.lc 432:72-432:83 Nat -> Type->Type 1651testdata/Builtins.lc 430:69-430:87 VecScalar V2 Bool -> FragmentOperation (Color (VecScalar V3 V2))
1670testdata/Builtins.lc 432:72-432:85 Type->Type 1652testdata/Builtins.lc 430:69-430:112 FragmentOperation (Color (VecS V1 4)) | a:Nat -> {b : DefaultFragOp (Color (VecS Float ('Succ ('Succ ('Succ ('Succ a))))))} -> FragmentOperation (Color (VecS Float ('Succ ('Succ ('Succ ('Succ a)))))) | a:Nat -> {b : DefaultFragOp (Color (VecS Float ('Succ ('Succ ('Succ a)))))} -> FragmentOperation (Color (VecS Float ('Succ ('Succ ('Succ a))))) | a:Nat -> {b : DefaultFragOp (Color (VecS Float ('Succ ('Succ a))))} -> FragmentOperation (Color (VecS Float ('Succ ('Succ a)))) | a:Nat -> {b : DefaultFragOp (Color (VecS Float ('Succ a)))} -> FragmentOperation (Color (VecS Float ('Succ a))) | a:Nat -> {b : DefaultFragOp (Color (VecS V1 a))} -> FragmentOperation (Color (VecS V2 a)) | a:Type -> b:Nat -> {c : DefaultFragOp (Color (VecS a b))} -> FragmentOperation (Color (VecS a b)) | a:Type -> {b : DefaultFragOp (Color a)} -> FragmentOperation (Color a)
1671testdata/Builtins.lc 432:72-432:87 Type 1653testdata/Builtins.lc 430:77-430:87 {a} -> Blending a
1672testdata/Builtins.lc 432:72-432:106 Type 1654testdata/Builtins.lc 430:88-430:112 VecS Bool 4
1673testdata/Builtins.lc 432:84-432:85 Nat 1655testdata/Builtins.lc 430:89-430:91 {a} -> a -> a -> a -> a -> VecS a 4
1674testdata/Builtins.lc 432:86-432:87 Type 1656testdata/Builtins.lc 430:89-430:96 Bool -> Bool -> Bool -> VecS Bool 4
1675testdata/Builtins.lc 432:91-432:102 Nat -> Type->Type 1657testdata/Builtins.lc 430:89-430:101 Bool -> Bool -> VecS Bool 4
1676testdata/Builtins.lc 432:91-432:104 Type->Type 1658testdata/Builtins.lc 430:89-430:106 Bool -> VecS Bool 4
1677testdata/Builtins.lc 432:91-432:106 Type 1659testdata/Builtins.lc 430:92-430:96 Bool
1678testdata/Builtins.lc 432:103-432:104 Nat 1660testdata/Builtins.lc 430:97-430:101 Bool
1679testdata/Builtins.lc 432:105-432:106 Type 1661testdata/Builtins.lc 430:102-430:106 Bool
1680testdata/Builtins.lc 433:3-433:14 FrameBuffer V7 V6 | Type | {a:Nat} -> {b} -> {c} -> {d : SameLayerCounts c} -> {e : PreFrameBuffer a b ~ TFFrameBuffer c} -> c -> FrameBuffer a b 1662testdata/Builtins.lc 430:107-430:111 Bool
1681testdata/Builtins.lc 433:19-433:120 Type 1663testdata/Builtins.lc 431:31-431:36 Type
1682testdata/Builtins.lc 433:20-433:36 Type->Type 1664testdata/Builtins.lc 431:31-431:77 ({a : DefaultFragOp V1} -> FragmentOperation V2) -> {c : DefaultFragOp V2} -> FragmentOperation V3
1683testdata/Builtins.lc 433:20-433:38 Type 1665testdata/Builtins.lc 431:60-431:67 ComparisonFunction -> Bool -> FragmentOperation (Depth Float)
1684testdata/Builtins.lc 433:37-433:38 Type 1666testdata/Builtins.lc 431:60-431:72 Bool -> FragmentOperation (Depth Float)
1685testdata/Builtins.lc 433:40-433:55 Type->Type 1667testdata/Builtins.lc 431:60-431:77 FragmentOperation (Depth Float) | a:Type -> {b : DefaultFragOp (Depth a)} -> FragmentOperation (Depth a)
1686testdata/Builtins.lc 433:40-433:57 Type 1668testdata/Builtins.lc 431:68-431:72 ComparisonFunction
1687testdata/Builtins.lc 433:40-433:120 Type 1669testdata/Builtins.lc 431:73-431:77 Bool
1688testdata/Builtins.lc 433:56-433:57 V2 1670testdata/Builtins.lc 438:6-438:17 Nat -> Type->Type | Type
1689testdata/Builtins.lc 433:59-433:73 Nat -> Type->Type 1671testdata/Builtins.lc 438:6-440:14 Type
1690testdata/Builtins.lc 433:59-433:75 Type->Type 1672testdata/Builtins.lc 438:24-438:27 Type
1691testdata/Builtins.lc 433:59-433:77 Type 1673testdata/Builtins.lc 439:3-439:13 FrameBuffer V5 V4 | Type | {a:Nat} -> {b} -> FragOps' b -> List (Vector a (Maybe (SimpleFragment (RemSemantics b)))) -> FrameBuffer a b -> FrameBuffer a b
1692testdata/Builtins.lc 433:59-433:79 Type->Type 1674testdata/Builtins.lc 439:19-439:27 Type->Type
1693testdata/Builtins.lc 433:59-433:95 Type 1675testdata/Builtins.lc 439:19-439:29 Type
1694testdata/Builtins.lc 433:59-433:120 Type 1676testdata/Builtins.lc 439:19-439:104 Type
1695testdata/Builtins.lc 433:74-433:75 Nat 1677testdata/Builtins.lc 439:28-439:29 Type
1696testdata/Builtins.lc 433:76-433:77 Type 1678testdata/Builtins.lc 439:33-439:47 Nat -> Type->Type
1697testdata/Builtins.lc 433:78-433:79 Type -> Type->Type 1679testdata/Builtins.lc 439:33-439:49 Type->Type
1698testdata/Builtins.lc 433:80-433:93 Type->Type 1680testdata/Builtins.lc 439:33-439:66 Type
1699testdata/Builtins.lc 433:80-433:95 Type 1681testdata/Builtins.lc 439:33-439:104 Type
1700testdata/Builtins.lc 433:94-433:95 Type 1682testdata/Builtins.lc 439:48-439:49 Nat
1701testdata/Builtins.lc 433:100-433:101 Type 1683testdata/Builtins.lc 439:50-439:66 Type
1702testdata/Builtins.lc 433:100-433:120 Type 1684testdata/Builtins.lc 439:51-439:63 Type->Type
1703testdata/Builtins.lc 433:105-433:116 Nat -> Type->Type 1685testdata/Builtins.lc 439:64-439:65 Type
1704testdata/Builtins.lc 433:105-433:118 Type->Type 1686testdata/Builtins.lc 439:70-439:81 Nat -> Type->Type
1705testdata/Builtins.lc 433:105-433:120 Type 1687testdata/Builtins.lc 439:70-439:83 Type->Type
1706testdata/Builtins.lc 433:117-433:118 Nat 1688testdata/Builtins.lc 439:70-439:85 Type
1707testdata/Builtins.lc 433:119-433:120 Type 1689testdata/Builtins.lc 439:70-439:104 Type
1708testdata/Builtins.lc 435:1-435:11 {a:Nat} -> {b} -> {c} -> FragOps' b -> (c -> RemSemantics b) -> Stream (Vector a (Maybe (SimpleFragment c))) -> FrameBuffer a b -> FrameBuffer a b 1690testdata/Builtins.lc 439:82-439:83 Nat
1709testdata/Builtins.lc 435:34-435:44 {a:Nat} -> {b} -> FragOps' b -> Stream (Vector a (Maybe (SimpleFragment (RemSemantics b)))) -> FrameBuffer a b -> FrameBuffer a b 1691testdata/Builtins.lc 439:84-439:85 Type
1710testdata/Builtins.lc 435:34-435:48 Stream (Vector V1 (Maybe (SimpleFragment (RemSemantics V0)))) -> FrameBuffer V2 V1 -> FrameBuffer V3 V2 1692testdata/Builtins.lc 439:89-439:100 Nat -> Type->Type
1711testdata/Builtins.lc 435:34-435:76 FrameBuffer V2 V1 -> FrameBuffer V3 V2 1693testdata/Builtins.lc 439:89-439:102 Type->Type
1712testdata/Builtins.lc 435:34-435:79 FrameBuffer V2 V1 1694testdata/Builtins.lc 439:89-439:104 Type
1713testdata/Builtins.lc 435:45-435:48 V9 1695testdata/Builtins.lc 439:101-439:102 Nat
1714testdata/Builtins.lc 435:49-435:76 Stream (Vector V2 (Maybe (SimpleFragment (RemSemantics V1)))) 1696testdata/Builtins.lc 439:103-439:104 Type
1715testdata/Builtins.lc 435:50-435:62 {a} -> {b} -> {c:Nat} -> a->b -> Stream (Vector c (Maybe (SimpleFragment a))) -> Stream (Vector c (Maybe (SimpleFragment b))) 1697testdata/Builtins.lc 440:3-440:14 FrameBuffer V7 V6 | Type | {a:Nat} -> {b} -> {c} -> {d : SameLayerCounts c} -> {e : PreFrameBuffer a b ~ TFFrameBuffer c} -> c -> FrameBuffer a b
1716testdata/Builtins.lc 435:50-435:70 Stream (Vector V0 (Maybe (SimpleFragment V2))) -> Stream (Vector V1 (Maybe (SimpleFragment V2))) 1698testdata/Builtins.lc 440:19-440:120 Type
1717testdata/Builtins.lc 435:63-435:70 V10 1699testdata/Builtins.lc 440:20-440:36 Type->Type
1718testdata/Builtins.lc 435:71-435:75 V6 1700testdata/Builtins.lc 440:20-440:38 Type
1719testdata/Builtins.lc 435:77-435:79 V4 1701testdata/Builtins.lc 440:37-440:38 Type
1720testdata/Builtins.lc 437:1-437:20 {a} -> a->a 1702testdata/Builtins.lc 440:40-440:55 Type->Type
1721testdata/Builtins.lc 437:25-437:26 V1 1703testdata/Builtins.lc 440:40-440:57 Type
1722testdata/Builtins.lc 440:1-440:9 {a} -> FrameBuffer 1 a -> Image 1 a 1704testdata/Builtins.lc 440:40-440:120 Type
1723testdata/Builtins.lc 440:24-440:35 Nat -> Type->Type 1705testdata/Builtins.lc 440:56-440:57 V2
1724testdata/Builtins.lc 440:24-440:37 Type->Type 1706testdata/Builtins.lc 440:59-440:73 Nat -> Type->Type
1725testdata/Builtins.lc 440:24-440:39 Type 1707testdata/Builtins.lc 440:59-440:75 Type->Type
1726testdata/Builtins.lc 440:24-440:52 Type 1708testdata/Builtins.lc 440:59-440:77 Type
1727testdata/Builtins.lc 440:36-440:37 V1 1709testdata/Builtins.lc 440:59-440:79 Type->Type
1728testdata/Builtins.lc 440:38-440:39 V1 1710testdata/Builtins.lc 440:59-440:95 Type
1729testdata/Builtins.lc 440:43-440:48 Nat -> Type->Type 1711testdata/Builtins.lc 440:59-440:120 Type
1730testdata/Builtins.lc 440:43-440:50 Type->Type 1712testdata/Builtins.lc 440:74-440:75 Nat
1731testdata/Builtins.lc 440:43-440:52 Type 1713testdata/Builtins.lc 440:76-440:77 Type
1732testdata/Builtins.lc 440:49-440:50 V1 1714testdata/Builtins.lc 440:78-440:79 Type -> Type->Type
1733testdata/Builtins.lc 440:51-440:52 Type 1715testdata/Builtins.lc 440:80-440:93 Type->Type
1734testdata/Builtins.lc 441:1-441:14 FrameBuffer 1 (Tuple2 (Depth Float) (Color (VecS Float 4))) -> Image 1 (Color (VecS Float 4)) 1716testdata/Builtins.lc 440:80-440:95 Type
1735testdata/Builtins.lc 441:24-441:35 Nat -> Type->Type 1717testdata/Builtins.lc 440:94-440:95 Type
1736testdata/Builtins.lc 441:24-441:37 Type->Type 1718testdata/Builtins.lc 440:100-440:101 Type
1737testdata/Builtins.lc 441:24-441:72 Type 1719testdata/Builtins.lc 440:100-440:120 Type
1738testdata/Builtins.lc 441:36-441:37 V1 1720testdata/Builtins.lc 440:105-440:116 Nat -> Type->Type
1739testdata/Builtins.lc 441:38-441:72 Type 1721testdata/Builtins.lc 440:105-440:118 Type->Type
1740testdata/Builtins.lc 441:39-441:44 Type->Type 1722testdata/Builtins.lc 440:105-440:120 Type
1741testdata/Builtins.lc 441:39-441:50 Type 1723testdata/Builtins.lc 440:117-440:118 Nat
1742testdata/Builtins.lc 441:45-441:50 Type 1724testdata/Builtins.lc 440:119-440:120 Type
1743testdata/Builtins.lc 441:52-441:57 Type->Type 1725testdata/Builtins.lc 442:1-442:11 {a:Nat} -> {b} -> {c} -> FragOps' b -> (c -> RemSemantics b) -> List (Vector a (Maybe (SimpleFragment c))) -> FrameBuffer a b -> FrameBuffer a b
1744testdata/Builtins.lc 441:52-441:71 Type 1726testdata/Builtins.lc 442:34-442:44 {a:Nat} -> {b} -> FragOps' b -> List (Vector a (Maybe (SimpleFragment (RemSemantics b)))) -> FrameBuffer a b -> FrameBuffer a b
1745testdata/Builtins.lc 441:58-441:71 Type 1727testdata/Builtins.lc 442:34-442:48 List (Vector V1 (Maybe (SimpleFragment (RemSemantics V0)))) -> FrameBuffer V2 V1 -> FrameBuffer V3 V2
1746testdata/Builtins.lc 441:59-441:62 Nat -> Type->Type 1728testdata/Builtins.lc 442:34-442:76 FrameBuffer V2 V1 -> FrameBuffer V3 V2
1747testdata/Builtins.lc 441:59-441:64 Type->Type 1729testdata/Builtins.lc 442:34-442:79 FrameBuffer V2 V1
1748testdata/Builtins.lc 441:63-441:64 V1 1730testdata/Builtins.lc 442:45-442:48 V9
1749testdata/Builtins.lc 441:65-441:70 Type 1731testdata/Builtins.lc 442:49-442:76 List (Vector V2 (Maybe (SimpleFragment (RemSemantics V1))))
1750testdata/Builtins.lc 441:76-441:81 Nat -> Type->Type 1732testdata/Builtins.lc 442:50-442:62 {a} -> {b} -> {c:Nat} -> a->b -> List (Vector c (Maybe (SimpleFragment a))) -> List (Vector c (Maybe (SimpleFragment b)))
1751testdata/Builtins.lc 441:76-441:83 Type->Type 1733testdata/Builtins.lc 442:50-442:70 List (Vector V0 (Maybe (SimpleFragment V2))) -> List (Vector V1 (Maybe (SimpleFragment V2)))
1752testdata/Builtins.lc 441:76-441:105 Type 1734testdata/Builtins.lc 442:63-442:70 V10
1753testdata/Builtins.lc 441:82-441:83 V1 1735testdata/Builtins.lc 442:71-442:75 V6
1754testdata/Builtins.lc 441:84-441:105 Type 1736testdata/Builtins.lc 442:77-442:79 V4
1755testdata/Builtins.lc 441:85-441:90 Type->Type 1737testdata/Builtins.lc 444:1-444:20 {a} -> a->a
1756testdata/Builtins.lc 441:91-441:104 Type 1738testdata/Builtins.lc 444:25-444:26 V1
1757testdata/Builtins.lc 441:92-441:95 Nat -> Type->Type 1739testdata/Builtins.lc 447:1-447:9 {a} -> FrameBuffer 1 a -> Image 1 a
1758testdata/Builtins.lc 441:92-441:97 Type->Type 1740testdata/Builtins.lc 447:24-447:35 Nat -> Type->Type
1759testdata/Builtins.lc 441:96-441:97 V1 1741testdata/Builtins.lc 447:24-447:37 Type->Type
1760testdata/Builtins.lc 441:98-441:103 Type 1742testdata/Builtins.lc 447:24-447:39 Type
1761testdata/Builtins.lc 443:6-443:12 Type 1743testdata/Builtins.lc 447:24-447:52 Type
1762testdata/Builtins.lc 443:6-444:12 Type 1744testdata/Builtins.lc 447:36-447:37 V1
1763testdata/Builtins.lc 444:3-444:12 Output | Type | {a:Nat} -> {b} -> FrameBuffer a b -> Output 1745testdata/Builtins.lc 447:38-447:39 V1
1764testdata/Builtins.lc 444:26-444:37 Nat -> Type->Type 1746testdata/Builtins.lc 447:43-447:48 Nat -> Type->Type
1765testdata/Builtins.lc 444:26-444:39 Type->Type 1747testdata/Builtins.lc 447:43-447:50 Type->Type
1766testdata/Builtins.lc 444:26-444:41 Type 1748testdata/Builtins.lc 447:43-447:52 Type
1767testdata/Builtins.lc 444:26-444:51 Type 1749testdata/Builtins.lc 447:49-447:50 V1
1768testdata/Builtins.lc 444:38-444:39 V3 1750testdata/Builtins.lc 447:51-447:52 Type
1769testdata/Builtins.lc 444:40-444:41 V1 1751testdata/Builtins.lc 448:1-448:14 FrameBuffer 1 (Tuple2 (Depth Float) (Color (VecS Float 4))) -> Image 1 (Color (VecS Float 4))
1770testdata/Builtins.lc 444:45-444:51 Type 1752testdata/Builtins.lc 448:24-448:35 Nat -> Type->Type
1771testdata/Builtins.lc 450:1-450:8 {a} -> {b : Num (MatVecScalarElem a)} -> a -> a->a 1753testdata/Builtins.lc 448:24-448:37 Type->Type
1772testdata/Builtins.lc 450:10-450:17 {a} -> {b : Num (MatVecScalarElem a)} -> a -> a->a 1754testdata/Builtins.lc 448:24-448:72 Type
1773testdata/Builtins.lc 450:19-450:26 {a} -> {b : Num (MatVecScalarElem a)} -> a -> a->a 1755testdata/Builtins.lc 448:36-448:37 V1
1774testdata/Builtins.lc 450:34-450:37 Type->Type 1756testdata/Builtins.lc 448:38-448:72 Type
1775testdata/Builtins.lc 450:34-450:58 Type 1757testdata/Builtins.lc 448:39-448:44 Type->Type
1776testdata/Builtins.lc 450:34-450:73 Type 1758testdata/Builtins.lc 448:39-448:50 Type
1777testdata/Builtins.lc 450:38-450:58 Type 1759testdata/Builtins.lc 448:45-448:50 Type
1778testdata/Builtins.lc 450:39-450:55 Type->Type 1760testdata/Builtins.lc 448:52-448:57 Type->Type
1779testdata/Builtins.lc 450:56-450:57 V1 1761testdata/Builtins.lc 448:52-448:71 Type
1780testdata/Builtins.lc 450:62-450:63 Type 1762testdata/Builtins.lc 448:58-448:71 Type
1781testdata/Builtins.lc 450:62-450:73 Type 1763testdata/Builtins.lc 448:59-448:62 Nat -> Type->Type
1782testdata/Builtins.lc 450:67-450:68 Type 1764testdata/Builtins.lc 448:59-448:64 Type->Type
1783testdata/Builtins.lc 450:67-450:73 Type 1765testdata/Builtins.lc 448:63-448:64 V1
1784testdata/Builtins.lc 450:72-450:73 Type 1766testdata/Builtins.lc 448:65-448:70 Type
1785testdata/Builtins.lc 451:1-451:9 {a} -> {b} -> {c : a ~ MatVecScalarElem b} -> {d : Num a} -> b -> a->b 1767testdata/Builtins.lc 448:76-448:81 Nat -> Type->Type
1786testdata/Builtins.lc 451:11-451:19 {a} -> {b} -> {c : a ~ MatVecScalarElem b} -> {d : Num a} -> b -> a->b 1768testdata/Builtins.lc 448:76-448:83 Type->Type
1787testdata/Builtins.lc 451:21-451:29 {a} -> {b} -> {c : a ~ MatVecScalarElem b} -> {d : Num a} -> b -> a->b 1769testdata/Builtins.lc 448:76-448:105 Type
1788testdata/Builtins.lc 451:34-451:80 Type 1770testdata/Builtins.lc 448:82-448:83 V1
1789testdata/Builtins.lc 451:35-451:36 V3 1771testdata/Builtins.lc 448:84-448:105 Type
1790testdata/Builtins.lc 451:35-451:38 Type->Type 1772testdata/Builtins.lc 448:85-448:90 Type->Type
1791testdata/Builtins.lc 451:35-451:57 Type 1773testdata/Builtins.lc 448:91-448:104 Type
1792testdata/Builtins.lc 451:37-451:38 Type -> Type->Type 1774testdata/Builtins.lc 448:92-448:95 Nat -> Type->Type
1793testdata/Builtins.lc 451:39-451:55 Type->Type 1775testdata/Builtins.lc 448:92-448:97 Type->Type
1794testdata/Builtins.lc 451:39-451:57 Type 1776testdata/Builtins.lc 448:96-448:97 V1
1795testdata/Builtins.lc 451:56-451:57 V1 1777testdata/Builtins.lc 448:98-448:103 Type
1796testdata/Builtins.lc 451:59-451:62 Type->Type 1778testdata/Builtins.lc 450:6-450:12 Type
1797testdata/Builtins.lc 451:59-451:64 Type 1779testdata/Builtins.lc 450:6-451:12 Type
1798testdata/Builtins.lc 451:59-451:80 Type 1780testdata/Builtins.lc 451:3-451:12 Output | Type | {a:Nat} -> {b} -> FrameBuffer a b -> Output
1799testdata/Builtins.lc 451:63-451:64 Type 1781testdata/Builtins.lc 451:26-451:37 Nat -> Type->Type
1800testdata/Builtins.lc 451:69-451:70 Type 1782testdata/Builtins.lc 451:26-451:39 Type->Type
1801testdata/Builtins.lc 451:69-451:80 Type 1783testdata/Builtins.lc 451:26-451:41 Type
1802testdata/Builtins.lc 451:74-451:75 Type 1784testdata/Builtins.lc 451:26-451:51 Type
1803testdata/Builtins.lc 451:74-451:80 Type 1785testdata/Builtins.lc 451:38-451:39 V3
1804testdata/Builtins.lc 451:79-451:80 Type 1786testdata/Builtins.lc 451:40-451:41 V1
1805testdata/Builtins.lc 452:1-452:8 {a} -> {b} -> {c:Nat} -> {d : Num a} -> {e : b ~ VecScalar c a} -> b -> b->b 1787testdata/Builtins.lc 451:45-451:51 Type
1806testdata/Builtins.lc 452:10-452:17 {a} -> {b} -> {c:Nat} -> {d : Num a} -> {e : b ~ VecScalar c a} -> b -> b->b 1788testdata/Builtins.lc 457:1-457:8 {a} -> {b : Num (MatVecScalarElem a)} -> a -> a->a
1807testdata/Builtins.lc 452:34-452:75 Type 1789testdata/Builtins.lc 457:10-457:17 {a} -> {b : Num (MatVecScalarElem a)} -> a -> a->a
1808testdata/Builtins.lc 452:35-452:38 Type->Type 1790testdata/Builtins.lc 457:19-457:26 {a} -> {b : Num (MatVecScalarElem a)} -> a -> a->a
1809testdata/Builtins.lc 452:35-452:40 Type 1791testdata/Builtins.lc 457:34-457:37 Type->Type
1810testdata/Builtins.lc 452:39-452:40 V5 1792testdata/Builtins.lc 457:34-457:58 Type
1811testdata/Builtins.lc 452:42-452:43 V4 1793testdata/Builtins.lc 457:34-457:73 Type
1812testdata/Builtins.lc 452:42-452:45 Type->Type 1794testdata/Builtins.lc 457:38-457:58 Type
1813testdata/Builtins.lc 452:42-452:59 Type 1795testdata/Builtins.lc 457:39-457:55 Type->Type
1814testdata/Builtins.lc 452:42-452:75 Type 1796testdata/Builtins.lc 457:56-457:57 V1
1815testdata/Builtins.lc 452:44-452:45 Type -> Type->Type 1797testdata/Builtins.lc 457:62-457:63 Type
1816testdata/Builtins.lc 452:46-452:55 Nat -> Type->Type 1798testdata/Builtins.lc 457:62-457:73 Type
1817testdata/Builtins.lc 452:46-452:57 Type->Type 1799testdata/Builtins.lc 457:67-457:68 Type
1818testdata/Builtins.lc 452:46-452:59 Type 1800testdata/Builtins.lc 457:67-457:73 Type
1819testdata/Builtins.lc 452:56-452:57 V2 1801testdata/Builtins.lc 457:72-457:73 Type
1820testdata/Builtins.lc 452:58-452:59 Type 1802testdata/Builtins.lc 458:1-458:9 {a} -> {b} -> {c : a ~ MatVecScalarElem b} -> {d : Num a} -> b -> a->b
1821testdata/Builtins.lc 452:64-452:65 Type 1803testdata/Builtins.lc 458:11-458:19 {a} -> {b} -> {c : a ~ MatVecScalarElem b} -> {d : Num a} -> b -> a->b
1822testdata/Builtins.lc 452:64-452:75 Type 1804testdata/Builtins.lc 458:21-458:29 {a} -> {b} -> {c : a ~ MatVecScalarElem b} -> {d : Num a} -> b -> a->b
1823testdata/Builtins.lc 452:69-452:70 Type 1805testdata/Builtins.lc 458:34-458:80 Type
1824testdata/Builtins.lc 452:69-452:75 Type 1806testdata/Builtins.lc 458:35-458:36 V3
1825testdata/Builtins.lc 452:74-452:75 Type 1807testdata/Builtins.lc 458:35-458:38 Type->Type
1826testdata/Builtins.lc 453:1-453:9 {a} -> {b} -> {c:Nat} -> {d : Num a} -> {e : b ~ VecScalar c a} -> b -> a->b 1808testdata/Builtins.lc 458:35-458:57 Type
1827testdata/Builtins.lc 453:11-453:19 {a} -> {b} -> {c:Nat} -> {d : Num a} -> {e : b ~ VecScalar c a} -> b -> a->b 1809testdata/Builtins.lc 458:37-458:38 Type -> Type->Type
1828testdata/Builtins.lc 453:34-453:75 Type 1810testdata/Builtins.lc 458:39-458:55 Type->Type
1829testdata/Builtins.lc 453:35-453:38 Type->Type 1811testdata/Builtins.lc 458:39-458:57 Type
1830testdata/Builtins.lc 453:35-453:40 Type 1812testdata/Builtins.lc 458:56-458:57 V1
1831testdata/Builtins.lc 453:39-453:40 V5 1813testdata/Builtins.lc 458:59-458:62 Type->Type
1832testdata/Builtins.lc 453:42-453:43 V4 1814testdata/Builtins.lc 458:59-458:64 Type
1833testdata/Builtins.lc 453:42-453:45 Type->Type 1815testdata/Builtins.lc 458:59-458:80 Type
1834testdata/Builtins.lc 453:42-453:59 Type
1835testdata/Builtins.lc 453:42-453:75 Type
1836testdata/Builtins.lc 453:44-453:45 Type -> Type->Type
1837testdata/Builtins.lc 453:46-453:55 Nat -> Type->Type
1838testdata/Builtins.lc 453:46-453:57 Type->Type
1839testdata/Builtins.lc 453:46-453:59 Type
1840testdata/Builtins.lc 453:56-453:57 V2
1841testdata/Builtins.lc 453:58-453:59 Type
1842testdata/Builtins.lc 453:64-453:65 Type
1843testdata/Builtins.lc 453:64-453:75 Type
1844testdata/Builtins.lc 453:69-453:70 Type
1845testdata/Builtins.lc 453:69-453:75 Type
1846testdata/Builtins.lc 453:74-453:75 Type
1847testdata/Builtins.lc 454:1-454:8 {a} -> {b : Signed (MatVecScalarElem a)} -> a->a
1848testdata/Builtins.lc 454:34-454:40 Type->Type
1849testdata/Builtins.lc 454:34-454:61 Type
1850testdata/Builtins.lc 454:34-454:71 Type
1851testdata/Builtins.lc 454:41-454:61 Type
1852testdata/Builtins.lc 454:42-454:58 Type->Type
1853testdata/Builtins.lc 454:59-454:60 V1
1854testdata/Builtins.lc 454:65-454:66 Type
1855testdata/Builtins.lc 454:65-454:71 Type
1856testdata/Builtins.lc 454:70-454:71 Type
1857testdata/Builtins.lc 456:1-456:9 {a} -> {b} -> {c:Nat} -> {d : Integral a} -> {e : b ~ VecScalar c a} -> b -> b->b
1858testdata/Builtins.lc 456:11-456:18 {a} -> {b} -> {c:Nat} -> {d : Integral a} -> {e : b ~ VecScalar c a} -> b -> b->b
1859testdata/Builtins.lc 456:20-456:28 {a} -> {b} -> {c:Nat} -> {d : Integral a} -> {e : b ~ VecScalar c a} -> b -> b->b
1860testdata/Builtins.lc 456:34-456:80 Type
1861testdata/Builtins.lc 456:35-456:43 Type->Type
1862testdata/Builtins.lc 456:35-456:45 Type
1863testdata/Builtins.lc 456:44-456:45 V5
1864testdata/Builtins.lc 456:47-456:48 V4
1865testdata/Builtins.lc 456:47-456:50 Type->Type
1866testdata/Builtins.lc 456:47-456:64 Type
1867testdata/Builtins.lc 456:47-456:80 Type
1868testdata/Builtins.lc 456:49-456:50 Type -> Type->Type
1869testdata/Builtins.lc 456:51-456:60 Nat -> Type->Type
1870testdata/Builtins.lc 456:51-456:62 Type->Type
1871testdata/Builtins.lc 456:51-456:64 Type
1872testdata/Builtins.lc 456:61-456:62 V2
1873testdata/Builtins.lc 456:63-456:64 Type
1874testdata/Builtins.lc 456:69-456:70 Type
1875testdata/Builtins.lc 456:69-456:80 Type
1876testdata/Builtins.lc 456:74-456:75 Type
1877testdata/Builtins.lc 456:74-456:80 Type
1878testdata/Builtins.lc 456:79-456:80 Type
1879testdata/Builtins.lc 457:1-457:10 {a} -> {b} -> {c:Nat} -> {d : Integral a} -> {e : b ~ VecScalar c a} -> b -> a->b
1880testdata/Builtins.lc 457:12-457:20 {a} -> {b} -> {c:Nat} -> {d : Integral a} -> {e : b ~ VecScalar c a} -> b -> a->b
1881testdata/Builtins.lc 457:22-457:31 {a} -> {b} -> {c:Nat} -> {d : Integral a} -> {e : b ~ VecScalar c a} -> b -> a->b
1882testdata/Builtins.lc 457:34-457:80 Type
1883testdata/Builtins.lc 457:35-457:43 Type->Type
1884testdata/Builtins.lc 457:35-457:45 Type
1885testdata/Builtins.lc 457:44-457:45 V5
1886testdata/Builtins.lc 457:47-457:48 V4
1887testdata/Builtins.lc 457:47-457:50 Type->Type
1888testdata/Builtins.lc 457:47-457:64 Type
1889testdata/Builtins.lc 457:47-457:80 Type
1890testdata/Builtins.lc 457:49-457:50 Type -> Type->Type
1891testdata/Builtins.lc 457:51-457:60 Nat -> Type->Type
1892testdata/Builtins.lc 457:51-457:62 Type->Type
1893testdata/Builtins.lc 457:51-457:64 Type
1894testdata/Builtins.lc 457:61-457:62 V2
1895testdata/Builtins.lc 457:63-457:64 Type
1896testdata/Builtins.lc 457:69-457:70 Type
1897testdata/Builtins.lc 457:69-457:80 Type
1898testdata/Builtins.lc 457:74-457:75 Type
1899testdata/Builtins.lc 457:74-457:80 Type
1900testdata/Builtins.lc 457:79-457:80 Type
1901testdata/Builtins.lc 458:1-458:9 {a} -> {b} -> {c:Nat} -> {d : Integral a} -> {e : b ~ VecScalar c a} -> b->b
1902testdata/Builtins.lc 458:34-458:75 Type
1903testdata/Builtins.lc 458:35-458:43 Type->Type
1904testdata/Builtins.lc 458:35-458:45 Type
1905testdata/Builtins.lc 458:44-458:45 V5
1906testdata/Builtins.lc 458:47-458:48 V4
1907testdata/Builtins.lc 458:47-458:50 Type->Type
1908testdata/Builtins.lc 458:47-458:64 Type
1909testdata/Builtins.lc 458:47-458:75 Type
1910testdata/Builtins.lc 458:49-458:50 Type -> Type->Type
1911testdata/Builtins.lc 458:51-458:60 Nat -> Type->Type
1912testdata/Builtins.lc 458:51-458:62 Type->Type
1913testdata/Builtins.lc 458:51-458:64 Type
1914testdata/Builtins.lc 458:61-458:62 V2
1915testdata/Builtins.lc 458:63-458:64 Type 1816testdata/Builtins.lc 458:63-458:64 Type
1916testdata/Builtins.lc 458:69-458:70 Type 1817testdata/Builtins.lc 458:69-458:70 Type
1917testdata/Builtins.lc 458:69-458:75 Type 1818testdata/Builtins.lc 458:69-458:80 Type
1918testdata/Builtins.lc 458:74-458:75 Type 1819testdata/Builtins.lc 458:74-458:75 Type
1919testdata/Builtins.lc 459:1-459:12 {a} -> {b} -> {c:Nat} -> {d} -> {e : Integral a} -> {f : b ~ VecScalar c a} -> {g : d ~ VecScalar c Word} -> b -> d->b 1820testdata/Builtins.lc 458:74-458:80 Type
1920testdata/Builtins.lc 459:14-459:25 {a} -> {b} -> {c:Nat} -> {d} -> {e : Integral a} -> {f : b ~ VecScalar c a} -> {g : d ~ VecScalar c Word} -> b -> d->b 1821testdata/Builtins.lc 458:79-458:80 Type
1921testdata/Builtins.lc 459:34-459:102 Type 1822testdata/Builtins.lc 459:1-459:8 {a} -> {b} -> {c:Nat} -> {d : Num a} -> {e : b ~ VecScalar c a} -> b -> b->b
1922testdata/Builtins.lc 459:35-459:43 Type->Type 1823testdata/Builtins.lc 459:10-459:17 {a} -> {b} -> {c:Nat} -> {d : Num a} -> {e : b ~ VecScalar c a} -> b -> b->b
1923testdata/Builtins.lc 459:35-459:45 Type 1824testdata/Builtins.lc 459:34-459:75 Type
1924testdata/Builtins.lc 459:44-459:45 V7 1825testdata/Builtins.lc 459:35-459:38 Type->Type
1925testdata/Builtins.lc 459:47-459:48 V6 1826testdata/Builtins.lc 459:35-459:40 Type
1926testdata/Builtins.lc 459:47-459:50 Type->Type 1827testdata/Builtins.lc 459:39-459:40 V5
1927testdata/Builtins.lc 459:47-459:64 Type 1828testdata/Builtins.lc 459:42-459:43 V4
1928testdata/Builtins.lc 459:47-459:102 Type 1829testdata/Builtins.lc 459:42-459:45 Type->Type
1929testdata/Builtins.lc 459:49-459:50 Type -> Type->Type 1830testdata/Builtins.lc 459:42-459:59 Type
1930testdata/Builtins.lc 459:51-459:60 Nat -> Type->Type 1831testdata/Builtins.lc 459:42-459:75 Type
1931testdata/Builtins.lc 459:51-459:62 Type->Type 1832testdata/Builtins.lc 459:44-459:45 Type -> Type->Type
1932testdata/Builtins.lc 459:51-459:64 Type 1833testdata/Builtins.lc 459:46-459:55 Nat -> Type->Type
1933testdata/Builtins.lc 459:61-459:62 V4 1834testdata/Builtins.lc 459:46-459:57 Type->Type
1934testdata/Builtins.lc 459:63-459:64 Type 1835testdata/Builtins.lc 459:46-459:59 Type
1935testdata/Builtins.lc 459:66-459:67 V3 1836testdata/Builtins.lc 459:56-459:57 V2
1936testdata/Builtins.lc 459:66-459:69 Type->Type 1837testdata/Builtins.lc 459:58-459:59 Type
1937testdata/Builtins.lc 459:66-459:86 Type 1838testdata/Builtins.lc 459:64-459:65 Type
1938testdata/Builtins.lc 459:66-459:102 Type 1839testdata/Builtins.lc 459:64-459:75 Type
1939testdata/Builtins.lc 459:68-459:69 Type -> Type->Type 1840testdata/Builtins.lc 459:69-459:70 Type
1940testdata/Builtins.lc 459:70-459:79 Nat -> Type->Type 1841testdata/Builtins.lc 459:69-459:75 Type
1941testdata/Builtins.lc 459:70-459:81 Type->Type 1842testdata/Builtins.lc 459:74-459:75 Type
1942testdata/Builtins.lc 459:70-459:86 Type 1843testdata/Builtins.lc 460:1-460:9 {a} -> {b} -> {c:Nat} -> {d : Num a} -> {e : b ~ VecScalar c a} -> b -> a->b
1943testdata/Builtins.lc 459:80-459:81 Nat 1844testdata/Builtins.lc 460:11-460:19 {a} -> {b} -> {c:Nat} -> {d : Num a} -> {e : b ~ VecScalar c a} -> b -> a->b
1944testdata/Builtins.lc 459:82-459:86 Type 1845testdata/Builtins.lc 460:34-460:75 Type
1945testdata/Builtins.lc 459:91-459:92 Type 1846testdata/Builtins.lc 460:35-460:38 Type->Type
1946testdata/Builtins.lc 459:91-459:102 Type 1847testdata/Builtins.lc 460:35-460:40 Type
1947testdata/Builtins.lc 459:96-459:97 Type 1848testdata/Builtins.lc 460:39-460:40 V5
1948testdata/Builtins.lc 459:96-459:102 Type 1849testdata/Builtins.lc 460:42-460:43 V4
1949testdata/Builtins.lc 459:101-459:102 Type 1850testdata/Builtins.lc 460:42-460:45 Type->Type
1950testdata/Builtins.lc 460:1-460:13 {a} -> {b} -> {c:Nat} -> {d : Integral a} -> {e : b ~ VecScalar c a} -> b -> Word->b 1851testdata/Builtins.lc 460:42-460:59 Type
1951testdata/Builtins.lc 460:15-460:27 {a} -> {b} -> {c:Nat} -> {d : Integral a} -> {e : b ~ VecScalar c a} -> b -> Word->b 1852testdata/Builtins.lc 460:42-460:75 Type
1952testdata/Builtins.lc 460:34-460:83 Type 1853testdata/Builtins.lc 460:44-460:45 Type -> Type->Type
1953testdata/Builtins.lc 460:35-460:43 Type->Type 1854testdata/Builtins.lc 460:46-460:55 Nat -> Type->Type
1954testdata/Builtins.lc 460:35-460:45 Type 1855testdata/Builtins.lc 460:46-460:57 Type->Type
1955testdata/Builtins.lc 460:44-460:45 V5 1856testdata/Builtins.lc 460:46-460:59 Type
1956testdata/Builtins.lc 460:47-460:48 V4 1857testdata/Builtins.lc 460:56-460:57 V2
1957testdata/Builtins.lc 460:47-460:50 Type->Type 1858testdata/Builtins.lc 460:58-460:59 Type
1958testdata/Builtins.lc 460:47-460:64 Type 1859testdata/Builtins.lc 460:64-460:65 Type
1959testdata/Builtins.lc 460:47-460:83 Type 1860testdata/Builtins.lc 460:64-460:75 Type
1960testdata/Builtins.lc 460:49-460:50 Type -> Type->Type
1961testdata/Builtins.lc 460:51-460:60 Nat -> Type->Type
1962testdata/Builtins.lc 460:51-460:62 Type->Type
1963testdata/Builtins.lc 460:51-460:64 Type
1964testdata/Builtins.lc 460:61-460:62 V2
1965testdata/Builtins.lc 460:63-460:64 Type
1966testdata/Builtins.lc 460:69-460:70 Type 1861testdata/Builtins.lc 460:69-460:70 Type
1967testdata/Builtins.lc 460:69-460:83 Type 1862testdata/Builtins.lc 460:69-460:75 Type
1968testdata/Builtins.lc 460:74-460:78 Type 1863testdata/Builtins.lc 460:74-460:75 Type
1969testdata/Builtins.lc 460:74-460:83 Type 1864testdata/Builtins.lc 461:1-461:8 {a} -> {b : Signed (MatVecScalarElem a)} -> a->a
1970testdata/Builtins.lc 460:82-460:83 Type 1865testdata/Builtins.lc 461:34-461:40 Type->Type
1971testdata/Builtins.lc 462:1-462:8 Bool -> Bool->Bool 1866testdata/Builtins.lc 461:34-461:61 Type
1972testdata/Builtins.lc 462:10-462:16 Bool -> Bool->Bool 1867testdata/Builtins.lc 461:34-461:71 Type
1973testdata/Builtins.lc 462:18-462:25 Bool -> Bool->Bool 1868testdata/Builtins.lc 461:41-461:61 Type
1974testdata/Builtins.lc 462:34-462:38 Type 1869testdata/Builtins.lc 461:42-461:58 Type->Type
1975testdata/Builtins.lc 462:42-462:46 Type 1870testdata/Builtins.lc 461:59-461:60 V1
1976testdata/Builtins.lc 462:42-462:54 Type 1871testdata/Builtins.lc 461:65-461:66 Type
1977testdata/Builtins.lc 462:50-462:54 Type 1872testdata/Builtins.lc 461:65-461:71 Type
1978testdata/Builtins.lc 463:1-463:8 {a} -> {b:Nat} -> {c : a ~ VecScalar b Bool} -> a->a 1873testdata/Builtins.lc 461:70-461:71 Type
1979testdata/Builtins.lc 463:34-463:56 Type 1874testdata/Builtins.lc 463:1-463:9 {a} -> {b} -> {c:Nat} -> {d : Integral a} -> {e : b ~ VecScalar c a} -> b -> b->b
1980testdata/Builtins.lc 463:34-463:66 Type 1875testdata/Builtins.lc 463:11-463:18 {a} -> {b} -> {c:Nat} -> {d : Integral a} -> {e : b ~ VecScalar c a} -> b -> b->b
1981testdata/Builtins.lc 463:35-463:36 V3 1876testdata/Builtins.lc 463:20-463:28 {a} -> {b} -> {c:Nat} -> {d : Integral a} -> {e : b ~ VecScalar c a} -> b -> b->b
1982testdata/Builtins.lc 463:35-463:38 Type->Type 1877testdata/Builtins.lc 463:34-463:80 Type
1983testdata/Builtins.lc 463:37-463:38 Type -> Type->Type 1878testdata/Builtins.lc 463:35-463:43 Type->Type
1984testdata/Builtins.lc 463:39-463:48 Nat -> Type->Type 1879testdata/Builtins.lc 463:35-463:45 Type
1985testdata/Builtins.lc 463:39-463:50 Type->Type 1880testdata/Builtins.lc 463:44-463:45 V5
1986testdata/Builtins.lc 463:39-463:55 Type 1881testdata/Builtins.lc 463:47-463:48 V4
1987testdata/Builtins.lc 463:49-463:50 V1 1882testdata/Builtins.lc 463:47-463:50 Type->Type
1988testdata/Builtins.lc 463:51-463:55 Type 1883testdata/Builtins.lc 463:47-463:64 Type
1989testdata/Builtins.lc 463:60-463:61 Type 1884testdata/Builtins.lc 463:47-463:80 Type
1990testdata/Builtins.lc 463:60-463:66 Type 1885testdata/Builtins.lc 463:49-463:50 Type -> Type->Type
1991testdata/Builtins.lc 463:65-463:66 Type 1886testdata/Builtins.lc 463:51-463:60 Nat -> Type->Type
1992testdata/Builtins.lc 464:1-464:8 {a:Nat} -> VecScalar a Bool -> Bool 1887testdata/Builtins.lc 463:51-463:62 Type->Type
1993testdata/Builtins.lc 464:10-464:17 {a:Nat} -> VecScalar a Bool -> Bool 1888testdata/Builtins.lc 463:51-463:64 Type
1994testdata/Builtins.lc 464:34-464:43 Nat -> Type->Type 1889testdata/Builtins.lc 463:61-463:62 V2
1995testdata/Builtins.lc 464:34-464:45 Type->Type 1890testdata/Builtins.lc 463:63-463:64 Type
1996testdata/Builtins.lc 464:34-464:50 Type 1891testdata/Builtins.lc 463:69-463:70 Type
1997testdata/Builtins.lc 464:34-464:58 Type 1892testdata/Builtins.lc 463:69-463:80 Type
1998testdata/Builtins.lc 464:44-464:45 V1 1893testdata/Builtins.lc 463:74-463:75 Type
1999testdata/Builtins.lc 464:46-464:50 Type 1894testdata/Builtins.lc 463:74-463:80 Type
2000testdata/Builtins.lc 464:54-464:58 Type 1895testdata/Builtins.lc 463:79-463:80 Type
2001testdata/Builtins.lc 467:1-467:9 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a 1896testdata/Builtins.lc 464:1-464:10 {a} -> {b} -> {c:Nat} -> {d : Integral a} -> {e : b ~ VecScalar c a} -> b -> a->b
2002testdata/Builtins.lc 467:11-467:20 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a 1897testdata/Builtins.lc 464:12-464:20 {a} -> {b} -> {c:Nat} -> {d : Integral a} -> {e : b ~ VecScalar c a} -> b -> a->b
2003testdata/Builtins.lc 467:22-467:30 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a 1898testdata/Builtins.lc 464:22-464:31 {a} -> {b} -> {c:Nat} -> {d : Integral a} -> {e : b ~ VecScalar c a} -> b -> a->b
2004testdata/Builtins.lc 467:32-467:41 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a 1899testdata/Builtins.lc 464:34-464:80 Type
2005testdata/Builtins.lc 467:43-467:51 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a 1900testdata/Builtins.lc 464:35-464:43 Type->Type
2006testdata/Builtins.lc 467:53-467:62 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a 1901testdata/Builtins.lc 464:35-464:45 Type
2007testdata/Builtins.lc 467:64-467:71 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a 1902testdata/Builtins.lc 464:44-464:45 V5
2008testdata/Builtins.lc 467:73-467:81 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a 1903testdata/Builtins.lc 464:47-464:48 V4
2009testdata/Builtins.lc 467:83-467:94 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a 1904testdata/Builtins.lc 464:47-464:50 Type->Type
2010testdata/Builtins.lc 467:96-467:107 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a 1905testdata/Builtins.lc 464:47-464:64 Type
2011testdata/Builtins.lc 467:109-467:116 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a 1906testdata/Builtins.lc 464:47-464:80 Type
2012testdata/Builtins.lc 467:118-467:126 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a 1907testdata/Builtins.lc 464:49-464:50 Type -> Type->Type
2013testdata/Builtins.lc 467:128-467:135 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a 1908testdata/Builtins.lc 464:51-464:60 Nat -> Type->Type
2014testdata/Builtins.lc 467:137-467:145 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a 1909testdata/Builtins.lc 464:51-464:62 Type->Type
2015testdata/Builtins.lc 467:147-467:154 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a 1910testdata/Builtins.lc 464:51-464:64 Type
2016testdata/Builtins.lc 467:156-467:163 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a 1911testdata/Builtins.lc 464:61-464:62 V2
2017testdata/Builtins.lc 467:165-467:173 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a 1912testdata/Builtins.lc 464:63-464:64 Type
2018testdata/Builtins.lc 467:175-467:183 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a 1913testdata/Builtins.lc 464:69-464:70 Type
2019testdata/Builtins.lc 467:185-467:193 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a 1914testdata/Builtins.lc 464:69-464:80 Type
2020testdata/Builtins.lc 467:195-467:206 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a 1915testdata/Builtins.lc 464:74-464:75 Type
2021testdata/Builtins.lc 468:34-468:57 Type 1916testdata/Builtins.lc 464:74-464:80 Type
2022testdata/Builtins.lc 468:34-468:67 Type 1917testdata/Builtins.lc 464:79-464:80 Type
2023testdata/Builtins.lc 468:35-468:36 V3 1918testdata/Builtins.lc 465:1-465:9 {a} -> {b} -> {c:Nat} -> {d : Integral a} -> {e : b ~ VecScalar c a} -> b->b
2024testdata/Builtins.lc 468:35-468:38 Type->Type 1919testdata/Builtins.lc 465:34-465:75 Type
2025testdata/Builtins.lc 468:37-468:38 Type -> Type->Type 1920testdata/Builtins.lc 465:35-465:43 Type->Type
2026testdata/Builtins.lc 468:39-468:48 Nat -> Type->Type 1921testdata/Builtins.lc 465:35-465:45 Type
2027testdata/Builtins.lc 468:39-468:50 Type->Type 1922testdata/Builtins.lc 465:44-465:45 V5
2028testdata/Builtins.lc 468:39-468:56 Type 1923testdata/Builtins.lc 465:47-465:48 V4
2029testdata/Builtins.lc 468:49-468:50 V1 1924testdata/Builtins.lc 465:47-465:50 Type->Type
2030testdata/Builtins.lc 468:51-468:56 Type 1925testdata/Builtins.lc 465:47-465:64 Type
2031testdata/Builtins.lc 468:61-468:62 Type 1926testdata/Builtins.lc 465:47-465:75 Type
2032testdata/Builtins.lc 468:61-468:67 Type 1927testdata/Builtins.lc 465:49-465:50 Type -> Type->Type
2033testdata/Builtins.lc 468:66-468:67 Type 1928testdata/Builtins.lc 465:51-465:60 Nat -> Type->Type
2034testdata/Builtins.lc 469:1-469:8 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a -> a->a 1929testdata/Builtins.lc 465:51-465:62 Type->Type
2035testdata/Builtins.lc 469:10-469:19 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a -> a->a 1930testdata/Builtins.lc 465:51-465:64 Type
2036testdata/Builtins.lc 469:34-469:57 Type 1931testdata/Builtins.lc 465:61-465:62 V2
2037testdata/Builtins.lc 469:34-469:72 Type 1932testdata/Builtins.lc 465:63-465:64 Type
2038testdata/Builtins.lc 469:35-469:36 V3 1933testdata/Builtins.lc 465:69-465:70 Type
2039testdata/Builtins.lc 469:35-469:38 Type->Type 1934testdata/Builtins.lc 465:69-465:75 Type
2040testdata/Builtins.lc 469:37-469:38 Type -> Type->Type 1935testdata/Builtins.lc 465:74-465:75 Type
2041testdata/Builtins.lc 469:39-469:48 Nat -> Type->Type 1936testdata/Builtins.lc 466:1-466:12 {a} -> {b} -> {c:Nat} -> {d} -> {e : Integral a} -> {f : b ~ VecScalar c a} -> {g : d ~ VecScalar c Word} -> b -> d->b
2042testdata/Builtins.lc 469:39-469:50 Type->Type 1937testdata/Builtins.lc 466:14-466:25 {a} -> {b} -> {c:Nat} -> {d} -> {e : Integral a} -> {f : b ~ VecScalar c a} -> {g : d ~ VecScalar c Word} -> b -> d->b
2043testdata/Builtins.lc 469:39-469:56 Type 1938testdata/Builtins.lc 466:34-466:102 Type
2044testdata/Builtins.lc 469:49-469:50 V1 1939testdata/Builtins.lc 466:35-466:43 Type->Type
2045testdata/Builtins.lc 469:51-469:56 Type 1940testdata/Builtins.lc 466:35-466:45 Type
2046testdata/Builtins.lc 469:61-469:62 Type 1941testdata/Builtins.lc 466:44-466:45 V7
2047testdata/Builtins.lc 469:61-469:72 Type 1942testdata/Builtins.lc 466:47-466:48 V6
2048testdata/Builtins.lc 469:66-469:67 Type 1943testdata/Builtins.lc 466:47-466:50 Type->Type
2049testdata/Builtins.lc 469:66-469:72 Type 1944testdata/Builtins.lc 466:47-466:64 Type
2050testdata/Builtins.lc 469:71-469:72 Type 1945testdata/Builtins.lc 466:47-466:102 Type
2051testdata/Builtins.lc 471:1-471:10 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a 1946testdata/Builtins.lc 466:49-466:50 Type -> Type->Type
2052testdata/Builtins.lc 471:12-471:21 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a 1947testdata/Builtins.lc 466:51-466:60 Nat -> Type->Type
2053testdata/Builtins.lc 471:23-471:32 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a 1948testdata/Builtins.lc 466:51-466:62 Type->Type
2054testdata/Builtins.lc 471:34-471:47 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a 1949testdata/Builtins.lc 466:51-466:64 Type
2055testdata/Builtins.lc 471:49-471:57 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a 1950testdata/Builtins.lc 466:61-466:62 V4
2056testdata/Builtins.lc 471:59-471:68 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a 1951testdata/Builtins.lc 466:63-466:64 Type
2057testdata/Builtins.lc 472:34-472:57 Type 1952testdata/Builtins.lc 466:66-466:67 V3
2058testdata/Builtins.lc 472:34-472:67 Type 1953testdata/Builtins.lc 466:66-466:69 Type->Type
2059testdata/Builtins.lc 472:35-472:36 V3 1954testdata/Builtins.lc 466:66-466:86 Type
2060testdata/Builtins.lc 472:35-472:38 Type->Type 1955testdata/Builtins.lc 466:66-466:102 Type
2061testdata/Builtins.lc 472:37-472:38 Type -> Type->Type 1956testdata/Builtins.lc 466:68-466:69 Type -> Type->Type
2062testdata/Builtins.lc 472:39-472:48 Nat -> Type->Type 1957testdata/Builtins.lc 466:70-466:79 Nat -> Type->Type
2063testdata/Builtins.lc 472:39-472:50 Type->Type 1958testdata/Builtins.lc 466:70-466:81 Type->Type
2064testdata/Builtins.lc 472:39-472:56 Type 1959testdata/Builtins.lc 466:70-466:86 Type
2065testdata/Builtins.lc 472:49-472:50 V1 1960testdata/Builtins.lc 466:80-466:81 Nat
2066testdata/Builtins.lc 472:51-472:56 Type 1961testdata/Builtins.lc 466:82-466:86 Type
2067testdata/Builtins.lc 472:61-472:62 Type 1962testdata/Builtins.lc 466:91-466:92 Type
2068testdata/Builtins.lc 472:61-472:67 Type 1963testdata/Builtins.lc 466:91-466:102 Type
2069testdata/Builtins.lc 472:66-472:67 Type 1964testdata/Builtins.lc 466:96-466:97 Type
2070testdata/Builtins.lc 473:1-473:8 {a} -> {b} -> {c:Nat} -> {d : Num a} -> {e : b ~ VecScalar c a} -> b -> b->b 1965testdata/Builtins.lc 466:96-466:102 Type
2071testdata/Builtins.lc 473:10-473:17 {a} -> {b} -> {c:Nat} -> {d : Num a} -> {e : b ~ VecScalar c a} -> b -> b->b 1966testdata/Builtins.lc 466:101-466:102 Type
2072testdata/Builtins.lc 473:34-473:75 Type 1967testdata/Builtins.lc 467:1-467:13 {a} -> {b} -> {c:Nat} -> {d : Integral a} -> {e : b ~ VecScalar c a} -> b -> Word->b
2073testdata/Builtins.lc 473:35-473:38 Type->Type 1968testdata/Builtins.lc 467:15-467:27 {a} -> {b} -> {c:Nat} -> {d : Integral a} -> {e : b ~ VecScalar c a} -> b -> Word->b
2074testdata/Builtins.lc 473:35-473:40 Type 1969testdata/Builtins.lc 467:34-467:83 Type
2075testdata/Builtins.lc 473:39-473:40 V5 1970testdata/Builtins.lc 467:35-467:43 Type->Type
2076testdata/Builtins.lc 473:42-473:43 V4 1971testdata/Builtins.lc 467:35-467:45 Type
2077testdata/Builtins.lc 473:42-473:45 Type->Type 1972testdata/Builtins.lc 467:44-467:45 V5
2078testdata/Builtins.lc 473:42-473:59 Type 1973testdata/Builtins.lc 467:47-467:48 V4
2079testdata/Builtins.lc 473:42-473:75 Type 1974testdata/Builtins.lc 467:47-467:50 Type->Type
2080testdata/Builtins.lc 473:44-473:45 Type -> Type->Type 1975testdata/Builtins.lc 467:47-467:64 Type
2081testdata/Builtins.lc 473:46-473:55 Nat -> Type->Type 1976testdata/Builtins.lc 467:47-467:83 Type
2082testdata/Builtins.lc 473:46-473:57 Type->Type 1977testdata/Builtins.lc 467:49-467:50 Type -> Type->Type
2083testdata/Builtins.lc 473:46-473:59 Type 1978testdata/Builtins.lc 467:51-467:60 Nat -> Type->Type
2084testdata/Builtins.lc 473:56-473:57 V2 1979testdata/Builtins.lc 467:51-467:62 Type->Type
2085testdata/Builtins.lc 473:58-473:59 Type 1980testdata/Builtins.lc 467:51-467:64 Type
2086testdata/Builtins.lc 473:64-473:65 Type 1981testdata/Builtins.lc 467:61-467:62 V2
2087testdata/Builtins.lc 473:64-473:75 Type 1982testdata/Builtins.lc 467:63-467:64 Type
2088testdata/Builtins.lc 473:69-473:70 Type 1983testdata/Builtins.lc 467:69-467:70 Type
2089testdata/Builtins.lc 473:69-473:75 Type 1984testdata/Builtins.lc 467:69-467:83 Type
2090testdata/Builtins.lc 473:74-473:75 Type 1985testdata/Builtins.lc 467:74-467:78 Type
2091testdata/Builtins.lc 474:1-474:9 {a} -> {b} -> {c:Nat} -> {d : Num a} -> {e : b ~ VecScalar c a} -> b -> a->b 1986testdata/Builtins.lc 467:74-467:83 Type
2092testdata/Builtins.lc 474:11-474:19 {a} -> {b} -> {c:Nat} -> {d : Num a} -> {e : b ~ VecScalar c a} -> b -> a->b 1987testdata/Builtins.lc 467:82-467:83 Type
2093testdata/Builtins.lc 474:34-474:75 Type 1988testdata/Builtins.lc 469:1-469:8 Bool -> Bool->Bool
2094testdata/Builtins.lc 474:35-474:38 Type->Type 1989testdata/Builtins.lc 469:10-469:16 Bool -> Bool->Bool
2095testdata/Builtins.lc 474:35-474:40 Type 1990testdata/Builtins.lc 469:18-469:25 Bool -> Bool->Bool
2096testdata/Builtins.lc 474:39-474:40 V5 1991testdata/Builtins.lc 469:34-469:38 Type
2097testdata/Builtins.lc 474:42-474:43 V4 1992testdata/Builtins.lc 469:42-469:46 Type
2098testdata/Builtins.lc 474:42-474:45 Type->Type 1993testdata/Builtins.lc 469:42-469:54 Type
2099testdata/Builtins.lc 474:42-474:59 Type 1994testdata/Builtins.lc 469:50-469:54 Type
2100testdata/Builtins.lc 474:42-474:75 Type 1995testdata/Builtins.lc 470:1-470:8 {a} -> {b:Nat} -> {c : a ~ VecScalar b Bool} -> a->a
2101testdata/Builtins.lc 474:44-474:45 Type -> Type->Type 1996testdata/Builtins.lc 470:34-470:56 Type
2102testdata/Builtins.lc 474:46-474:55 Nat -> Type->Type 1997testdata/Builtins.lc 470:34-470:66 Type
2103testdata/Builtins.lc 474:46-474:57 Type->Type 1998testdata/Builtins.lc 470:35-470:36 V3
2104testdata/Builtins.lc 474:46-474:59 Type 1999testdata/Builtins.lc 470:35-470:38 Type->Type
2105testdata/Builtins.lc 474:56-474:57 V2 2000testdata/Builtins.lc 470:37-470:38 Type -> Type->Type
2106testdata/Builtins.lc 474:58-474:59 Type 2001testdata/Builtins.lc 470:39-470:48 Nat -> Type->Type
2107testdata/Builtins.lc 474:64-474:65 Type 2002testdata/Builtins.lc 470:39-470:50 Type->Type
2108testdata/Builtins.lc 474:64-474:75 Type 2003testdata/Builtins.lc 470:39-470:55 Type
2109testdata/Builtins.lc 474:69-474:70 Type 2004testdata/Builtins.lc 470:49-470:50 V1
2110testdata/Builtins.lc 474:69-474:75 Type 2005testdata/Builtins.lc 470:51-470:55 Type
2111testdata/Builtins.lc 474:74-474:75 Type 2006testdata/Builtins.lc 470:60-470:61 Type
2112testdata/Builtins.lc 475:1-475:10 {a} -> {b:Nat} -> {c} -> {d : a ~ VecScalar b Float} -> {e : c ~ VecScalar b Bool} -> a->c 2007testdata/Builtins.lc 470:60-470:66 Type
2113testdata/Builtins.lc 475:12-475:21 {a} -> {b:Nat} -> {c} -> {d : a ~ VecScalar b Float} -> {e : c ~ VecScalar b Bool} -> a->c 2008testdata/Builtins.lc 470:65-470:66 Type
2114testdata/Builtins.lc 475:34-475:89 Type 2009testdata/Builtins.lc 471:1-471:8 {a:Nat} -> VecScalar a Bool -> Bool
2115testdata/Builtins.lc 475:35-475:36 V5 2010testdata/Builtins.lc 471:10-471:17 {a:Nat} -> VecScalar a Bool -> Bool
2011testdata/Builtins.lc 471:34-471:43 Nat -> Type->Type
2012testdata/Builtins.lc 471:34-471:45 Type->Type
2013testdata/Builtins.lc 471:34-471:50 Type
2014testdata/Builtins.lc 471:34-471:58 Type
2015testdata/Builtins.lc 471:44-471:45 V1
2016testdata/Builtins.lc 471:46-471:50 Type
2017testdata/Builtins.lc 471:54-471:58 Type
2018testdata/Builtins.lc 474:1-474:9 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a
2019testdata/Builtins.lc 474:11-474:20 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a
2020testdata/Builtins.lc 474:22-474:30 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a
2021testdata/Builtins.lc 474:32-474:41 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a
2022testdata/Builtins.lc 474:43-474:51 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a
2023testdata/Builtins.lc 474:53-474:62 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a
2024testdata/Builtins.lc 474:64-474:71 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a
2025testdata/Builtins.lc 474:73-474:81 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a
2026testdata/Builtins.lc 474:83-474:94 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a
2027testdata/Builtins.lc 474:96-474:107 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a
2028testdata/Builtins.lc 474:109-474:116 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a
2029testdata/Builtins.lc 474:118-474:126 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a
2030testdata/Builtins.lc 474:128-474:135 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a
2031testdata/Builtins.lc 474:137-474:145 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a
2032testdata/Builtins.lc 474:147-474:154 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a
2033testdata/Builtins.lc 474:156-474:163 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a
2034testdata/Builtins.lc 474:165-474:173 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a
2035testdata/Builtins.lc 474:175-474:183 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a
2036testdata/Builtins.lc 474:185-474:193 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a
2037testdata/Builtins.lc 474:195-474:206 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a
2038testdata/Builtins.lc 475:34-475:57 Type
2039testdata/Builtins.lc 475:34-475:67 Type
2040testdata/Builtins.lc 475:35-475:36 V3
2116testdata/Builtins.lc 475:35-475:38 Type->Type 2041testdata/Builtins.lc 475:35-475:38 Type->Type
2117testdata/Builtins.lc 475:35-475:56 Type
2118testdata/Builtins.lc 475:37-475:38 Type -> Type->Type 2042testdata/Builtins.lc 475:37-475:38 Type -> Type->Type
2119testdata/Builtins.lc 475:39-475:48 Nat -> Type->Type 2043testdata/Builtins.lc 475:39-475:48 Nat -> Type->Type
2120testdata/Builtins.lc 475:39-475:50 Type->Type 2044testdata/Builtins.lc 475:39-475:50 Type->Type
2121testdata/Builtins.lc 475:39-475:56 Type 2045testdata/Builtins.lc 475:39-475:56 Type
2122testdata/Builtins.lc 475:49-475:50 V3 2046testdata/Builtins.lc 475:49-475:50 V1
2123testdata/Builtins.lc 475:51-475:56 Type 2047testdata/Builtins.lc 475:51-475:56 Type
2124testdata/Builtins.lc 475:58-475:59 V2 2048testdata/Builtins.lc 475:61-475:62 Type
2125testdata/Builtins.lc 475:58-475:61 Type->Type 2049testdata/Builtins.lc 475:61-475:67 Type
2126testdata/Builtins.lc 475:58-475:78 Type 2050testdata/Builtins.lc 475:66-475:67 Type
2127testdata/Builtins.lc 475:58-475:89 Type 2051testdata/Builtins.lc 476:1-476:8 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a -> a->a
2128testdata/Builtins.lc 475:60-475:61 Type -> Type->Type 2052testdata/Builtins.lc 476:10-476:19 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a -> a->a
2129testdata/Builtins.lc 475:62-475:71 Nat -> Type->Type 2053testdata/Builtins.lc 476:34-476:57 Type
2130testdata/Builtins.lc 475:62-475:73 Type->Type 2054testdata/Builtins.lc 476:34-476:72 Type
2131testdata/Builtins.lc 475:62-475:78 Type 2055testdata/Builtins.lc 476:35-476:36 V3
2132testdata/Builtins.lc 475:72-475:73 Nat 2056testdata/Builtins.lc 476:35-476:38 Type->Type
2133testdata/Builtins.lc 475:74-475:78 Type 2057testdata/Builtins.lc 476:37-476:38 Type -> Type->Type
2134testdata/Builtins.lc 475:83-475:84 Type 2058testdata/Builtins.lc 476:39-476:48 Nat -> Type->Type
2135testdata/Builtins.lc 475:83-475:89 Type 2059testdata/Builtins.lc 476:39-476:50 Type->Type
2136testdata/Builtins.lc 475:88-475:89 Type 2060testdata/Builtins.lc 476:39-476:56 Type
2137testdata/Builtins.lc 476:1-476:8 {a} -> {b} -> {c:Nat} -> {d : Signed a} -> {e : b ~ VecScalar c a} -> b->b 2061testdata/Builtins.lc 476:49-476:50 V1
2138testdata/Builtins.lc 476:10-476:18 {a} -> {b} -> {c:Nat} -> {d : Signed a} -> {e : b ~ VecScalar c a} -> b->b 2062testdata/Builtins.lc 476:51-476:56 Type
2139testdata/Builtins.lc 476:34-476:73 Type
2140testdata/Builtins.lc 476:35-476:41 Type->Type
2141testdata/Builtins.lc 476:35-476:43 Type
2142testdata/Builtins.lc 476:42-476:43 V5
2143testdata/Builtins.lc 476:45-476:46 V4
2144testdata/Builtins.lc 476:45-476:48 Type->Type
2145testdata/Builtins.lc 476:45-476:62 Type
2146testdata/Builtins.lc 476:45-476:73 Type
2147testdata/Builtins.lc 476:47-476:48 Type -> Type->Type
2148testdata/Builtins.lc 476:49-476:58 Nat -> Type->Type
2149testdata/Builtins.lc 476:49-476:60 Type->Type
2150testdata/Builtins.lc 476:49-476:62 Type
2151testdata/Builtins.lc 476:59-476:60 V2
2152testdata/Builtins.lc 476:61-476:62 Type 2063testdata/Builtins.lc 476:61-476:62 Type
2153testdata/Builtins.lc 476:67-476:68 Type 2064testdata/Builtins.lc 476:61-476:72 Type
2154testdata/Builtins.lc 476:67-476:73 Type 2065testdata/Builtins.lc 476:66-476:67 Type
2155testdata/Builtins.lc 476:72-476:73 Type 2066testdata/Builtins.lc 476:66-476:72 Type
2156testdata/Builtins.lc 477:1-477:9 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a -> Tuple2 a a 2067testdata/Builtins.lc 476:71-476:72 Type
2157testdata/Builtins.lc 477:34-477:57 Type 2068testdata/Builtins.lc 478:1-478:10 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a
2158testdata/Builtins.lc 477:34-477:72 Type 2069testdata/Builtins.lc 478:12-478:21 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a
2159testdata/Builtins.lc 477:35-477:36 V3 2070testdata/Builtins.lc 478:23-478:32 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a
2160testdata/Builtins.lc 477:35-477:38 Type->Type 2071testdata/Builtins.lc 478:34-478:47 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a
2161testdata/Builtins.lc 477:37-477:38 Type -> Type->Type 2072testdata/Builtins.lc 478:49-478:57 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a
2162testdata/Builtins.lc 477:39-477:48 Nat -> Type->Type 2073testdata/Builtins.lc 478:59-478:68 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a
2163testdata/Builtins.lc 477:39-477:50 Type->Type 2074testdata/Builtins.lc 479:34-479:57 Type
2164testdata/Builtins.lc 477:39-477:56 Type 2075testdata/Builtins.lc 479:34-479:67 Type
2165testdata/Builtins.lc 477:49-477:50 V1 2076testdata/Builtins.lc 479:35-479:36 V3
2166testdata/Builtins.lc 477:51-477:56 Type
2167testdata/Builtins.lc 477:61-477:62 Type
2168testdata/Builtins.lc 477:61-477:72 Type
2169testdata/Builtins.lc 477:66-477:72 Type
2170testdata/Builtins.lc 477:67-477:68 Type
2171testdata/Builtins.lc 477:70-477:71 Type
2172testdata/Builtins.lc 478:1-478:10 {a} -> {b} -> {c:Nat} -> {d : Num a} -> {e : b ~ VecScalar c a} -> b -> b -> b->b
2173testdata/Builtins.lc 478:34-478:80 Type
2174testdata/Builtins.lc 478:35-478:38 Type->Type
2175testdata/Builtins.lc 478:35-478:40 Type
2176testdata/Builtins.lc 478:39-478:40 V5
2177testdata/Builtins.lc 478:42-478:43 V4
2178testdata/Builtins.lc 478:42-478:45 Type->Type
2179testdata/Builtins.lc 478:42-478:59 Type
2180testdata/Builtins.lc 478:42-478:80 Type
2181testdata/Builtins.lc 478:44-478:45 Type -> Type->Type
2182testdata/Builtins.lc 478:46-478:55 Nat -> Type->Type
2183testdata/Builtins.lc 478:46-478:57 Type->Type
2184testdata/Builtins.lc 478:46-478:59 Type
2185testdata/Builtins.lc 478:56-478:57 V2
2186testdata/Builtins.lc 478:58-478:59 Type
2187testdata/Builtins.lc 478:64-478:65 Type
2188testdata/Builtins.lc 478:64-478:80 Type
2189testdata/Builtins.lc 478:69-478:70 Type
2190testdata/Builtins.lc 478:69-478:80 Type
2191testdata/Builtins.lc 478:74-478:75 Type
2192testdata/Builtins.lc 478:74-478:80 Type
2193testdata/Builtins.lc 478:79-478:80 Type
2194testdata/Builtins.lc 479:1-479:11 {a} -> {b} -> {c:Nat} -> {d : Num a} -> {e : b ~ VecScalar c a} -> b -> a -> a->b
2195testdata/Builtins.lc 479:34-479:80 Type
2196testdata/Builtins.lc 479:35-479:38 Type->Type 2077testdata/Builtins.lc 479:35-479:38 Type->Type
2197testdata/Builtins.lc 479:35-479:40 Type 2078testdata/Builtins.lc 479:37-479:38 Type -> Type->Type
2198testdata/Builtins.lc 479:39-479:40 V5 2079testdata/Builtins.lc 479:39-479:48 Nat -> Type->Type
2199testdata/Builtins.lc 479:42-479:43 V4 2080testdata/Builtins.lc 479:39-479:50 Type->Type
2200testdata/Builtins.lc 479:42-479:45 Type->Type 2081testdata/Builtins.lc 479:39-479:56 Type
2201testdata/Builtins.lc 479:42-479:59 Type 2082testdata/Builtins.lc 479:49-479:50 V1
2202testdata/Builtins.lc 479:42-479:80 Type 2083testdata/Builtins.lc 479:51-479:56 Type
2203testdata/Builtins.lc 479:44-479:45 Type -> Type->Type 2084testdata/Builtins.lc 479:61-479:62 Type
2204testdata/Builtins.lc 479:46-479:55 Nat -> Type->Type 2085testdata/Builtins.lc 479:61-479:67 Type
2205testdata/Builtins.lc 479:46-479:57 Type->Type 2086testdata/Builtins.lc 479:66-479:67 Type
2206testdata/Builtins.lc 479:46-479:59 Type 2087testdata/Builtins.lc 480:1-480:8 {a} -> {b} -> {c:Nat} -> {d : Num a} -> {e : b ~ VecScalar c a} -> b -> b->b
2207testdata/Builtins.lc 479:56-479:57 V2 2088testdata/Builtins.lc 480:10-480:17 {a} -> {b} -> {c:Nat} -> {d : Num a} -> {e : b ~ VecScalar c a} -> b -> b->b
2208testdata/Builtins.lc 479:58-479:59 Type 2089testdata/Builtins.lc 480:34-480:75 Type
2209testdata/Builtins.lc 479:64-479:65 Type
2210testdata/Builtins.lc 479:64-479:80 Type
2211testdata/Builtins.lc 479:69-479:70 Type
2212testdata/Builtins.lc 479:69-479:80 Type
2213testdata/Builtins.lc 479:74-479:75 Type
2214testdata/Builtins.lc 479:74-479:80 Type
2215testdata/Builtins.lc 479:79-479:80 Type
2216testdata/Builtins.lc 480:1-480:8 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a -> a -> a->a
2217testdata/Builtins.lc 480:34-480:57 Type
2218testdata/Builtins.lc 480:34-480:77 Type
2219testdata/Builtins.lc 480:35-480:36 V3
2220testdata/Builtins.lc 480:35-480:38 Type->Type 2090testdata/Builtins.lc 480:35-480:38 Type->Type
2221testdata/Builtins.lc 480:37-480:38 Type -> Type->Type 2091testdata/Builtins.lc 480:35-480:40 Type
2222testdata/Builtins.lc 480:39-480:48 Nat -> Type->Type 2092testdata/Builtins.lc 480:39-480:40 V5
2223testdata/Builtins.lc 480:39-480:50 Type->Type 2093testdata/Builtins.lc 480:42-480:43 V4
2224testdata/Builtins.lc 480:39-480:56 Type 2094testdata/Builtins.lc 480:42-480:45 Type->Type
2225testdata/Builtins.lc 480:49-480:50 V1 2095testdata/Builtins.lc 480:42-480:59 Type
2226testdata/Builtins.lc 480:51-480:56 Type 2096testdata/Builtins.lc 480:42-480:75 Type
2227testdata/Builtins.lc 480:61-480:62 Type 2097testdata/Builtins.lc 480:44-480:45 Type -> Type->Type
2228testdata/Builtins.lc 480:61-480:77 Type 2098testdata/Builtins.lc 480:46-480:55 Nat -> Type->Type
2229testdata/Builtins.lc 480:66-480:67 Type 2099testdata/Builtins.lc 480:46-480:57 Type->Type
2230testdata/Builtins.lc 480:66-480:77 Type 2100testdata/Builtins.lc 480:46-480:59 Type
2231testdata/Builtins.lc 480:71-480:72 Type 2101testdata/Builtins.lc 480:56-480:57 V2
2232testdata/Builtins.lc 480:71-480:77 Type 2102testdata/Builtins.lc 480:58-480:59 Type
2233testdata/Builtins.lc 480:76-480:77 Type 2103testdata/Builtins.lc 480:64-480:65 Type
2234testdata/Builtins.lc 481:1-481:9 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a -> a -> Float->a 2104testdata/Builtins.lc 480:64-480:75 Type
2235testdata/Builtins.lc 481:34-481:57 Type 2105testdata/Builtins.lc 480:69-480:70 Type
2236testdata/Builtins.lc 481:34-481:81 Type 2106testdata/Builtins.lc 480:69-480:75 Type
2237testdata/Builtins.lc 481:35-481:36 V3 2107testdata/Builtins.lc 480:74-480:75 Type
2108testdata/Builtins.lc 481:1-481:9 {a} -> {b} -> {c:Nat} -> {d : Num a} -> {e : b ~ VecScalar c a} -> b -> a->b
2109testdata/Builtins.lc 481:11-481:19 {a} -> {b} -> {c:Nat} -> {d : Num a} -> {e : b ~ VecScalar c a} -> b -> a->b
2110testdata/Builtins.lc 481:34-481:75 Type
2238testdata/Builtins.lc 481:35-481:38 Type->Type 2111testdata/Builtins.lc 481:35-481:38 Type->Type
2239testdata/Builtins.lc 481:37-481:38 Type -> Type->Type 2112testdata/Builtins.lc 481:35-481:40 Type
2240testdata/Builtins.lc 481:39-481:48 Nat -> Type->Type 2113testdata/Builtins.lc 481:39-481:40 V5
2241testdata/Builtins.lc 481:39-481:50 Type->Type 2114testdata/Builtins.lc 481:42-481:43 V4
2242testdata/Builtins.lc 481:39-481:56 Type 2115testdata/Builtins.lc 481:42-481:45 Type->Type
2243testdata/Builtins.lc 481:49-481:50 V1 2116testdata/Builtins.lc 481:42-481:59 Type
2244testdata/Builtins.lc 481:51-481:56 Type 2117testdata/Builtins.lc 481:42-481:75 Type
2245testdata/Builtins.lc 481:61-481:62 Type 2118testdata/Builtins.lc 481:44-481:45 Type -> Type->Type
2246testdata/Builtins.lc 481:61-481:81 Type 2119testdata/Builtins.lc 481:46-481:55 Nat -> Type->Type
2247testdata/Builtins.lc 481:66-481:67 Type 2120testdata/Builtins.lc 481:46-481:57 Type->Type
2248testdata/Builtins.lc 481:66-481:81 Type 2121testdata/Builtins.lc 481:46-481:59 Type
2249testdata/Builtins.lc 481:71-481:76 Type 2122testdata/Builtins.lc 481:56-481:57 V2
2250testdata/Builtins.lc 481:71-481:81 Type 2123testdata/Builtins.lc 481:58-481:59 Type
2251testdata/Builtins.lc 481:80-481:81 Type 2124testdata/Builtins.lc 481:64-481:65 Type
2252testdata/Builtins.lc 482:1-482:9 {a} -> {b:Nat} -> {c} -> {d : a ~ VecScalar b Float} -> {e : c ~ VecScalar b Bool} -> a -> a -> c->a 2125testdata/Builtins.lc 481:64-481:75 Type
2253testdata/Builtins.lc 482:34-482:99 Type 2126testdata/Builtins.lc 481:69-481:70 Type
2127testdata/Builtins.lc 481:69-481:75 Type
2128testdata/Builtins.lc 481:74-481:75 Type
2129testdata/Builtins.lc 482:1-482:10 {a} -> {b:Nat} -> {c} -> {d : a ~ VecScalar b Float} -> {e : c ~ VecScalar b Bool} -> a->c
2130testdata/Builtins.lc 482:12-482:21 {a} -> {b:Nat} -> {c} -> {d : a ~ VecScalar b Float} -> {e : c ~ VecScalar b Bool} -> a->c
2131testdata/Builtins.lc 482:34-482:89 Type
2254testdata/Builtins.lc 482:35-482:36 V5 2132testdata/Builtins.lc 482:35-482:36 V5
2255testdata/Builtins.lc 482:35-482:38 Type->Type 2133testdata/Builtins.lc 482:35-482:38 Type->Type
2256testdata/Builtins.lc 482:35-482:56 Type 2134testdata/Builtins.lc 482:35-482:56 Type
@@ -2263,7 +2141,7 @@ testdata/Builtins.lc 482:51-482:56 Type
2263testdata/Builtins.lc 482:58-482:59 V2 2141testdata/Builtins.lc 482:58-482:59 V2
2264testdata/Builtins.lc 482:58-482:61 Type->Type 2142testdata/Builtins.lc 482:58-482:61 Type->Type
2265testdata/Builtins.lc 482:58-482:78 Type 2143testdata/Builtins.lc 482:58-482:78 Type
2266testdata/Builtins.lc 482:58-482:99 Type 2144testdata/Builtins.lc 482:58-482:89 Type
2267testdata/Builtins.lc 482:60-482:61 Type -> Type->Type 2145testdata/Builtins.lc 482:60-482:61 Type -> Type->Type
2268testdata/Builtins.lc 482:62-482:71 Nat -> Type->Type 2146testdata/Builtins.lc 482:62-482:71 Nat -> Type->Type
2269testdata/Builtins.lc 482:62-482:73 Type->Type 2147testdata/Builtins.lc 482:62-482:73 Type->Type
@@ -2271,31 +2149,30 @@ testdata/Builtins.lc 482:62-482:78 Type
2271testdata/Builtins.lc 482:72-482:73 Nat 2149testdata/Builtins.lc 482:72-482:73 Nat
2272testdata/Builtins.lc 482:74-482:78 Type 2150testdata/Builtins.lc 482:74-482:78 Type
2273testdata/Builtins.lc 482:83-482:84 Type 2151testdata/Builtins.lc 482:83-482:84 Type
2274testdata/Builtins.lc 482:83-482:99 Type 2152testdata/Builtins.lc 482:83-482:89 Type
2275testdata/Builtins.lc 482:88-482:89 Type 2153testdata/Builtins.lc 482:88-482:89 Type
2276testdata/Builtins.lc 482:88-482:99 Type 2154testdata/Builtins.lc 483:1-483:8 {a} -> {b} -> {c:Nat} -> {d : Signed a} -> {e : b ~ VecScalar c a} -> b->b
2277testdata/Builtins.lc 482:93-482:94 Type 2155testdata/Builtins.lc 483:10-483:18 {a} -> {b} -> {c:Nat} -> {d : Signed a} -> {e : b ~ VecScalar c a} -> b->b
2278testdata/Builtins.lc 482:93-482:99 Type 2156testdata/Builtins.lc 483:34-483:73 Type
2279testdata/Builtins.lc 482:98-482:99 Type 2157testdata/Builtins.lc 483:35-483:41 Type->Type
2280testdata/Builtins.lc 483:1-483:9 {a} -> {b:Nat} -> {c : a ~ VecS Float b} -> a -> a->a 2158testdata/Builtins.lc 483:35-483:43 Type
2281testdata/Builtins.lc 483:34-483:53 Type 2159testdata/Builtins.lc 483:42-483:43 V5
2282testdata/Builtins.lc 483:34-483:68 Type 2160testdata/Builtins.lc 483:45-483:46 V4
2283testdata/Builtins.lc 483:35-483:36 V3 2161testdata/Builtins.lc 483:45-483:48 Type->Type
2284testdata/Builtins.lc 483:35-483:38 Type->Type 2162testdata/Builtins.lc 483:45-483:62 Type
2285testdata/Builtins.lc 483:37-483:38 Type -> Type->Type 2163testdata/Builtins.lc 483:45-483:73 Type
2286testdata/Builtins.lc 483:39-483:44 Nat -> Type->Type 2164testdata/Builtins.lc 483:47-483:48 Type -> Type->Type
2287testdata/Builtins.lc 483:39-483:46 Type->Type 2165testdata/Builtins.lc 483:49-483:58 Nat -> Type->Type
2288testdata/Builtins.lc 483:39-483:52 Type 2166testdata/Builtins.lc 483:49-483:60 Type->Type
2289testdata/Builtins.lc 483:45-483:46 V1 2167testdata/Builtins.lc 483:49-483:62 Type
2290testdata/Builtins.lc 483:47-483:52 Type 2168testdata/Builtins.lc 483:59-483:60 V2
2291testdata/Builtins.lc 483:57-483:58 Type 2169testdata/Builtins.lc 483:61-483:62 Type
2292testdata/Builtins.lc 483:57-483:68 Type
2293testdata/Builtins.lc 483:62-483:63 Type
2294testdata/Builtins.lc 483:62-483:68 Type
2295testdata/Builtins.lc 483:67-483:68 Type 2170testdata/Builtins.lc 483:67-483:68 Type
2296testdata/Builtins.lc 484:1-484:10 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> Float -> a->a 2171testdata/Builtins.lc 483:67-483:73 Type
2172testdata/Builtins.lc 483:72-483:73 Type
2173testdata/Builtins.lc 484:1-484:9 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a -> Tuple2 a a
2297testdata/Builtins.lc 484:34-484:57 Type 2174testdata/Builtins.lc 484:34-484:57 Type
2298testdata/Builtins.lc 484:34-484:76 Type 2175testdata/Builtins.lc 484:34-484:72 Type
2299testdata/Builtins.lc 484:35-484:36 V3 2176testdata/Builtins.lc 484:35-484:36 V3
2300testdata/Builtins.lc 484:35-484:38 Type->Type 2177testdata/Builtins.lc 484:35-484:38 Type->Type
2301testdata/Builtins.lc 484:37-484:38 Type -> Type->Type 2178testdata/Builtins.lc 484:37-484:38 Type -> Type->Type
@@ -2304,503 +2181,643 @@ testdata/Builtins.lc 484:39-484:50 Type->Type
2304testdata/Builtins.lc 484:39-484:56 Type 2181testdata/Builtins.lc 484:39-484:56 Type
2305testdata/Builtins.lc 484:49-484:50 V1 2182testdata/Builtins.lc 484:49-484:50 V1
2306testdata/Builtins.lc 484:51-484:56 Type 2183testdata/Builtins.lc 484:51-484:56 Type
2307testdata/Builtins.lc 484:61-484:66 Type 2184testdata/Builtins.lc 484:61-484:62 Type
2308testdata/Builtins.lc 484:61-484:76 Type 2185testdata/Builtins.lc 484:61-484:72 Type
2186testdata/Builtins.lc 484:66-484:72 Type
2187testdata/Builtins.lc 484:67-484:68 Type
2309testdata/Builtins.lc 484:70-484:71 Type 2188testdata/Builtins.lc 484:70-484:71 Type
2310testdata/Builtins.lc 484:70-484:76 Type 2189testdata/Builtins.lc 485:1-485:10 {a} -> {b} -> {c:Nat} -> {d : Num a} -> {e : b ~ VecScalar c a} -> b -> b -> b->b
2311testdata/Builtins.lc 484:75-484:76 Type 2190testdata/Builtins.lc 485:34-485:80 Type
2312testdata/Builtins.lc 485:1-485:15 {a} -> {b:Nat} -> {c : a ~ VecS Float b} -> a -> a -> a->a
2313testdata/Builtins.lc 485:34-485:53 Type
2314testdata/Builtins.lc 485:34-485:73 Type
2315testdata/Builtins.lc 485:35-485:36 V3
2316testdata/Builtins.lc 485:35-485:38 Type->Type 2191testdata/Builtins.lc 485:35-485:38 Type->Type
2317testdata/Builtins.lc 485:37-485:38 Type -> Type->Type 2192testdata/Builtins.lc 485:35-485:40 Type
2318testdata/Builtins.lc 485:39-485:44 Nat -> Type->Type 2193testdata/Builtins.lc 485:39-485:40 V5
2319testdata/Builtins.lc 485:39-485:46 Type->Type 2194testdata/Builtins.lc 485:42-485:43 V4
2320testdata/Builtins.lc 485:39-485:52 Type 2195testdata/Builtins.lc 485:42-485:45 Type->Type
2321testdata/Builtins.lc 485:45-485:46 V1 2196testdata/Builtins.lc 485:42-485:59 Type
2322testdata/Builtins.lc 485:47-485:52 Type 2197testdata/Builtins.lc 485:42-485:80 Type
2323testdata/Builtins.lc 485:57-485:58 Type 2198testdata/Builtins.lc 485:44-485:45 Type -> Type->Type
2324testdata/Builtins.lc 485:57-485:73 Type 2199testdata/Builtins.lc 485:46-485:55 Nat -> Type->Type
2325testdata/Builtins.lc 485:62-485:63 Type 2200testdata/Builtins.lc 485:46-485:57 Type->Type
2326testdata/Builtins.lc 485:62-485:73 Type 2201testdata/Builtins.lc 485:46-485:59 Type
2327testdata/Builtins.lc 485:67-485:68 Type 2202testdata/Builtins.lc 485:56-485:57 V2
2328testdata/Builtins.lc 485:67-485:73 Type 2203testdata/Builtins.lc 485:58-485:59 Type
2329testdata/Builtins.lc 485:72-485:73 Type 2204testdata/Builtins.lc 485:64-485:65 Type
2330testdata/Builtins.lc 486:1-486:16 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> Float -> Float -> a->a 2205testdata/Builtins.lc 485:64-485:80 Type
2331testdata/Builtins.lc 486:34-486:57 Type 2206testdata/Builtins.lc 485:69-485:70 Type
2332testdata/Builtins.lc 486:34-486:85 Type 2207testdata/Builtins.lc 485:69-485:80 Type
2333testdata/Builtins.lc 486:35-486:36 V3 2208testdata/Builtins.lc 485:74-485:75 Type
2209testdata/Builtins.lc 485:74-485:80 Type
2210testdata/Builtins.lc 485:79-485:80 Type
2211testdata/Builtins.lc 486:1-486:11 {a} -> {b} -> {c:Nat} -> {d : Num a} -> {e : b ~ VecScalar c a} -> b -> a -> a->b
2212testdata/Builtins.lc 486:34-486:80 Type
2334testdata/Builtins.lc 486:35-486:38 Type->Type 2213testdata/Builtins.lc 486:35-486:38 Type->Type
2335testdata/Builtins.lc 486:37-486:38 Type -> Type->Type 2214testdata/Builtins.lc 486:35-486:40 Type
2336testdata/Builtins.lc 486:39-486:48 Nat -> Type->Type 2215testdata/Builtins.lc 486:39-486:40 V5
2337testdata/Builtins.lc 486:39-486:50 Type->Type 2216testdata/Builtins.lc 486:42-486:43 V4
2338testdata/Builtins.lc 486:39-486:56 Type 2217testdata/Builtins.lc 486:42-486:45 Type->Type
2339testdata/Builtins.lc 486:49-486:50 V1 2218testdata/Builtins.lc 486:42-486:59 Type
2340testdata/Builtins.lc 486:51-486:56 Type 2219testdata/Builtins.lc 486:42-486:80 Type
2341testdata/Builtins.lc 486:61-486:66 Type 2220testdata/Builtins.lc 486:44-486:45 Type -> Type->Type
2342testdata/Builtins.lc 486:61-486:85 Type 2221testdata/Builtins.lc 486:46-486:55 Nat -> Type->Type
2343testdata/Builtins.lc 486:70-486:75 Type 2222testdata/Builtins.lc 486:46-486:57 Type->Type
2344testdata/Builtins.lc 486:70-486:85 Type 2223testdata/Builtins.lc 486:46-486:59 Type
2224testdata/Builtins.lc 486:56-486:57 V2
2225testdata/Builtins.lc 486:58-486:59 Type
2226testdata/Builtins.lc 486:64-486:65 Type
2227testdata/Builtins.lc 486:64-486:80 Type
2228testdata/Builtins.lc 486:69-486:70 Type
2229testdata/Builtins.lc 486:69-486:80 Type
2230testdata/Builtins.lc 486:74-486:75 Type
2231testdata/Builtins.lc 486:74-486:80 Type
2345testdata/Builtins.lc 486:79-486:80 Type 2232testdata/Builtins.lc 486:79-486:80 Type
2346testdata/Builtins.lc 486:79-486:85 Type 2233testdata/Builtins.lc 487:1-487:8 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a -> a -> a->a
2347testdata/Builtins.lc 486:84-486:85 Type 2234testdata/Builtins.lc 487:34-487:57 Type
2348testdata/Builtins.lc 489:1-489:19 {a:Nat} -> VecScalar a Float -> VecScalar a Int 2235testdata/Builtins.lc 487:34-487:77 Type
2349testdata/Builtins.lc 489:34-489:43 Nat -> Type->Type 2236testdata/Builtins.lc 487:35-487:36 V3
2350testdata/Builtins.lc 489:34-489:45 Type->Type 2237testdata/Builtins.lc 487:35-487:38 Type->Type
2351testdata/Builtins.lc 489:34-489:51 Type 2238testdata/Builtins.lc 487:37-487:38 Type -> Type->Type
2352testdata/Builtins.lc 489:34-489:70 Type 2239testdata/Builtins.lc 487:39-487:48 Nat -> Type->Type
2353testdata/Builtins.lc 489:44-489:45 V1 2240testdata/Builtins.lc 487:39-487:50 Type->Type
2354testdata/Builtins.lc 489:46-489:51 Type 2241testdata/Builtins.lc 487:39-487:56 Type
2355testdata/Builtins.lc 489:55-489:64 Nat -> Type->Type 2242testdata/Builtins.lc 487:49-487:50 V1
2356testdata/Builtins.lc 489:55-489:66 Type->Type 2243testdata/Builtins.lc 487:51-487:56 Type
2357testdata/Builtins.lc 489:55-489:70 Type 2244testdata/Builtins.lc 487:61-487:62 Type
2358testdata/Builtins.lc 489:65-489:66 Nat 2245testdata/Builtins.lc 487:61-487:77 Type
2359testdata/Builtins.lc 489:67-489:70 Type 2246testdata/Builtins.lc 487:66-487:67 Type
2360testdata/Builtins.lc 490:1-490:20 {a:Nat} -> VecScalar a Float -> VecScalar a Word 2247testdata/Builtins.lc 487:66-487:77 Type
2361testdata/Builtins.lc 490:34-490:43 Nat -> Type->Type 2248testdata/Builtins.lc 487:71-487:72 Type
2362testdata/Builtins.lc 490:34-490:45 Type->Type 2249testdata/Builtins.lc 487:71-487:77 Type
2363testdata/Builtins.lc 490:34-490:51 Type 2250testdata/Builtins.lc 487:76-487:77 Type
2364testdata/Builtins.lc 490:34-490:71 Type 2251testdata/Builtins.lc 488:1-488:9 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a -> a -> Float->a
2365testdata/Builtins.lc 490:44-490:45 V1 2252testdata/Builtins.lc 488:34-488:57 Type
2366testdata/Builtins.lc 490:46-490:51 Type 2253testdata/Builtins.lc 488:34-488:81 Type
2367testdata/Builtins.lc 490:55-490:64 Nat -> Type->Type 2254testdata/Builtins.lc 488:35-488:36 V3
2368testdata/Builtins.lc 490:55-490:66 Type->Type 2255testdata/Builtins.lc 488:35-488:38 Type->Type
2369testdata/Builtins.lc 490:55-490:71 Type 2256testdata/Builtins.lc 488:37-488:38 Type -> Type->Type
2370testdata/Builtins.lc 490:65-490:66 Nat 2257testdata/Builtins.lc 488:39-488:48 Nat -> Type->Type
2371testdata/Builtins.lc 490:67-490:71 Type 2258testdata/Builtins.lc 488:39-488:50 Type->Type
2372testdata/Builtins.lc 491:1-491:19 {a:Nat} -> VecScalar a Int -> VecScalar a Float 2259testdata/Builtins.lc 488:39-488:56 Type
2373testdata/Builtins.lc 491:34-491:43 Nat -> Type->Type 2260testdata/Builtins.lc 488:49-488:50 V1
2374testdata/Builtins.lc 491:34-491:45 Type->Type 2261testdata/Builtins.lc 488:51-488:56 Type
2375testdata/Builtins.lc 491:34-491:49 Type 2262testdata/Builtins.lc 488:61-488:62 Type
2376testdata/Builtins.lc 491:34-491:72 Type 2263testdata/Builtins.lc 488:61-488:81 Type
2377testdata/Builtins.lc 491:44-491:45 V1 2264testdata/Builtins.lc 488:66-488:67 Type
2378testdata/Builtins.lc 491:46-491:49 Type 2265testdata/Builtins.lc 488:66-488:81 Type
2379testdata/Builtins.lc 491:55-491:64 Nat -> Type->Type 2266testdata/Builtins.lc 488:71-488:76 Type
2380testdata/Builtins.lc 491:55-491:66 Type->Type 2267testdata/Builtins.lc 488:71-488:81 Type
2381testdata/Builtins.lc 491:55-491:72 Type 2268testdata/Builtins.lc 488:80-488:81 Type
2382testdata/Builtins.lc 491:65-491:66 Nat 2269testdata/Builtins.lc 489:1-489:9 {a} -> {b:Nat} -> {c} -> {d : a ~ VecScalar b Float} -> {e : c ~ VecScalar b Bool} -> a -> a -> c->a
2383testdata/Builtins.lc 491:67-491:72 Type 2270testdata/Builtins.lc 489:34-489:99 Type
2384testdata/Builtins.lc 492:1-492:20 {a:Nat} -> VecScalar a Word -> VecScalar a Float 2271testdata/Builtins.lc 489:35-489:36 V5
2385testdata/Builtins.lc 492:34-492:43 Nat -> Type->Type 2272testdata/Builtins.lc 489:35-489:38 Type->Type
2386testdata/Builtins.lc 492:34-492:45 Type->Type 2273testdata/Builtins.lc 489:35-489:56 Type
2387testdata/Builtins.lc 492:34-492:50 Type 2274testdata/Builtins.lc 489:37-489:38 Type -> Type->Type
2388testdata/Builtins.lc 492:34-492:72 Type 2275testdata/Builtins.lc 489:39-489:48 Nat -> Type->Type
2389testdata/Builtins.lc 492:44-492:45 V1 2276testdata/Builtins.lc 489:39-489:50 Type->Type
2390testdata/Builtins.lc 492:46-492:50 Type 2277testdata/Builtins.lc 489:39-489:56 Type
2391testdata/Builtins.lc 492:55-492:64 Nat -> Type->Type 2278testdata/Builtins.lc 489:49-489:50 V3
2392testdata/Builtins.lc 492:55-492:66 Type->Type 2279testdata/Builtins.lc 489:51-489:56 Type
2393testdata/Builtins.lc 492:55-492:72 Type 2280testdata/Builtins.lc 489:58-489:59 V2
2394testdata/Builtins.lc 492:65-492:66 Nat 2281testdata/Builtins.lc 489:58-489:61 Type->Type
2395testdata/Builtins.lc 492:67-492:72 Type 2282testdata/Builtins.lc 489:58-489:78 Type
2396testdata/Builtins.lc 494:1-494:11 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->Float 2283testdata/Builtins.lc 489:58-489:99 Type
2397testdata/Builtins.lc 494:34-494:57 Type 2284testdata/Builtins.lc 489:60-489:61 Type -> Type->Type
2398testdata/Builtins.lc 494:34-494:71 Type 2285testdata/Builtins.lc 489:62-489:71 Nat -> Type->Type
2399testdata/Builtins.lc 494:35-494:36 V3 2286testdata/Builtins.lc 489:62-489:73 Type->Type
2400testdata/Builtins.lc 494:35-494:38 Type->Type 2287testdata/Builtins.lc 489:62-489:78 Type
2401testdata/Builtins.lc 494:37-494:38 Type -> Type->Type 2288testdata/Builtins.lc 489:72-489:73 Nat
2402testdata/Builtins.lc 494:39-494:48 Nat -> Type->Type 2289testdata/Builtins.lc 489:74-489:78 Type
2403testdata/Builtins.lc 494:39-494:50 Type->Type 2290testdata/Builtins.lc 489:83-489:84 Type
2404testdata/Builtins.lc 494:39-494:56 Type 2291testdata/Builtins.lc 489:83-489:99 Type
2405testdata/Builtins.lc 494:49-494:50 V1 2292testdata/Builtins.lc 489:88-489:89 Type
2406testdata/Builtins.lc 494:51-494:56 Type 2293testdata/Builtins.lc 489:88-489:99 Type
2407testdata/Builtins.lc 494:61-494:62 Type 2294testdata/Builtins.lc 489:93-489:94 Type
2408testdata/Builtins.lc 494:61-494:71 Type 2295testdata/Builtins.lc 489:93-489:99 Type
2409testdata/Builtins.lc 494:66-494:71 Type 2296testdata/Builtins.lc 489:98-489:99 Type
2410testdata/Builtins.lc 495:1-495:13 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a -> a->Float 2297testdata/Builtins.lc 490:1-490:9 {a} -> {b:Nat} -> {c : a ~ VecS Float b} -> a -> a->a
2411testdata/Builtins.lc 495:15-495:22 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a -> a->Float 2298testdata/Builtins.lc 490:34-490:53 Type
2412testdata/Builtins.lc 495:34-495:57 Type 2299testdata/Builtins.lc 490:34-490:68 Type
2413testdata/Builtins.lc 495:34-495:76 Type 2300testdata/Builtins.lc 490:35-490:36 V3
2414testdata/Builtins.lc 495:35-495:36 V3 2301testdata/Builtins.lc 490:35-490:38 Type->Type
2415testdata/Builtins.lc 495:35-495:38 Type->Type 2302testdata/Builtins.lc 490:37-490:38 Type -> Type->Type
2416testdata/Builtins.lc 495:37-495:38 Type -> Type->Type 2303testdata/Builtins.lc 490:39-490:44 Nat -> Type->Type
2417testdata/Builtins.lc 495:39-495:48 Nat -> Type->Type 2304testdata/Builtins.lc 490:39-490:46 Type->Type
2418testdata/Builtins.lc 495:39-495:50 Type->Type 2305testdata/Builtins.lc 490:39-490:52 Type
2419testdata/Builtins.lc 495:39-495:56 Type 2306testdata/Builtins.lc 490:45-490:46 V1
2420testdata/Builtins.lc 495:49-495:50 V1 2307testdata/Builtins.lc 490:47-490:52 Type
2421testdata/Builtins.lc 495:51-495:56 Type 2308testdata/Builtins.lc 490:57-490:58 Type
2422testdata/Builtins.lc 495:61-495:62 Type 2309testdata/Builtins.lc 490:57-490:68 Type
2423testdata/Builtins.lc 495:61-495:76 Type 2310testdata/Builtins.lc 490:62-490:63 Type
2424testdata/Builtins.lc 495:66-495:67 Type 2311testdata/Builtins.lc 490:62-490:68 Type
2425testdata/Builtins.lc 495:66-495:76 Type 2312testdata/Builtins.lc 490:67-490:68 Type
2426testdata/Builtins.lc 495:71-495:76 Type 2313testdata/Builtins.lc 491:1-491:10 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> Float -> a->a
2427testdata/Builtins.lc 496:1-496:10 {a} -> {b : a ~ VecS Float 3} -> a -> a->a 2314testdata/Builtins.lc 491:34-491:57 Type
2428testdata/Builtins.lc 496:34-496:57 Type 2315testdata/Builtins.lc 491:34-491:76 Type
2429testdata/Builtins.lc 496:34-496:72 Type 2316testdata/Builtins.lc 491:35-491:36 V3
2430testdata/Builtins.lc 496:35-496:36 V1 2317testdata/Builtins.lc 491:35-491:38 Type->Type
2431testdata/Builtins.lc 496:35-496:38 Type->Type 2318testdata/Builtins.lc 491:37-491:38 Type -> Type->Type
2432testdata/Builtins.lc 496:37-496:38 Type -> Type->Type 2319testdata/Builtins.lc 491:39-491:48 Nat -> Type->Type
2433testdata/Builtins.lc 496:39-496:48 Nat -> Type->Type 2320testdata/Builtins.lc 491:39-491:50 Type->Type
2434testdata/Builtins.lc 496:39-496:50 Type->Type 2321testdata/Builtins.lc 491:39-491:56 Type
2435testdata/Builtins.lc 496:39-496:56 Type 2322testdata/Builtins.lc 491:49-491:50 V1
2436testdata/Builtins.lc 496:49-496:50 V1 2323testdata/Builtins.lc 491:51-491:56 Type
2437testdata/Builtins.lc 496:51-496:56 Type 2324testdata/Builtins.lc 491:61-491:66 Type
2438testdata/Builtins.lc 496:61-496:62 Type 2325testdata/Builtins.lc 491:61-491:76 Type
2439testdata/Builtins.lc 496:61-496:72 Type 2326testdata/Builtins.lc 491:70-491:71 Type
2440testdata/Builtins.lc 496:66-496:67 Type 2327testdata/Builtins.lc 491:70-491:76 Type
2441testdata/Builtins.lc 496:66-496:72 Type 2328testdata/Builtins.lc 491:75-491:76 Type
2442testdata/Builtins.lc 496:71-496:72 Type 2329testdata/Builtins.lc 492:1-492:15 {a} -> {b:Nat} -> {c : a ~ VecS Float b} -> a -> a -> a->a
2443testdata/Builtins.lc 497:1-497:14 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a 2330testdata/Builtins.lc 492:34-492:53 Type
2444testdata/Builtins.lc 497:34-497:57 Type 2331testdata/Builtins.lc 492:34-492:73 Type
2445testdata/Builtins.lc 497:34-497:67 Type 2332testdata/Builtins.lc 492:35-492:36 V3
2446testdata/Builtins.lc 497:35-497:36 V3 2333testdata/Builtins.lc 492:35-492:38 Type->Type
2447testdata/Builtins.lc 497:35-497:38 Type->Type 2334testdata/Builtins.lc 492:37-492:38 Type -> Type->Type
2448testdata/Builtins.lc 497:37-497:38 Type -> Type->Type 2335testdata/Builtins.lc 492:39-492:44 Nat -> Type->Type
2449testdata/Builtins.lc 497:39-497:48 Nat -> Type->Type 2336testdata/Builtins.lc 492:39-492:46 Type->Type
2450testdata/Builtins.lc 497:39-497:50 Type->Type 2337testdata/Builtins.lc 492:39-492:52 Type
2451testdata/Builtins.lc 497:39-497:56 Type 2338testdata/Builtins.lc 492:45-492:46 V1
2452testdata/Builtins.lc 497:49-497:50 V1 2339testdata/Builtins.lc 492:47-492:52 Type
2453testdata/Builtins.lc 497:51-497:56 Type 2340testdata/Builtins.lc 492:57-492:58 Type
2454testdata/Builtins.lc 497:61-497:62 Type 2341testdata/Builtins.lc 492:57-492:73 Type
2455testdata/Builtins.lc 497:61-497:67 Type 2342testdata/Builtins.lc 492:62-492:63 Type
2456testdata/Builtins.lc 497:66-497:67 Type 2343testdata/Builtins.lc 492:62-492:73 Type
2457testdata/Builtins.lc 498:1-498:16 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a -> a -> a->a 2344testdata/Builtins.lc 492:67-492:68 Type
2458testdata/Builtins.lc 498:18-498:29 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a -> a -> a->a 2345testdata/Builtins.lc 492:67-492:73 Type
2459testdata/Builtins.lc 498:34-498:57 Type 2346testdata/Builtins.lc 492:72-492:73 Type
2460testdata/Builtins.lc 498:34-498:77 Type 2347testdata/Builtins.lc 493:1-493:16 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> Float -> Float -> a->a
2461testdata/Builtins.lc 498:35-498:36 V3 2348testdata/Builtins.lc 493:34-493:57 Type
2462testdata/Builtins.lc 498:35-498:38 Type->Type 2349testdata/Builtins.lc 493:34-493:85 Type
2463testdata/Builtins.lc 498:37-498:38 Type -> Type->Type 2350testdata/Builtins.lc 493:35-493:36 V3
2464testdata/Builtins.lc 498:39-498:48 Nat -> Type->Type 2351testdata/Builtins.lc 493:35-493:38 Type->Type
2465testdata/Builtins.lc 498:39-498:50 Type->Type 2352testdata/Builtins.lc 493:37-493:38 Type -> Type->Type
2466testdata/Builtins.lc 498:39-498:56 Type 2353testdata/Builtins.lc 493:39-493:48 Nat -> Type->Type
2467testdata/Builtins.lc 498:49-498:50 V1 2354testdata/Builtins.lc 493:39-493:50 Type->Type
2468testdata/Builtins.lc 498:51-498:56 Type 2355testdata/Builtins.lc 493:39-493:56 Type
2469testdata/Builtins.lc 498:61-498:62 Type 2356testdata/Builtins.lc 493:49-493:50 V1
2470testdata/Builtins.lc 498:61-498:77 Type 2357testdata/Builtins.lc 493:51-493:56 Type
2471testdata/Builtins.lc 498:66-498:67 Type 2358testdata/Builtins.lc 493:61-493:66 Type
2472testdata/Builtins.lc 498:66-498:77 Type 2359testdata/Builtins.lc 493:61-493:85 Type
2473testdata/Builtins.lc 498:71-498:72 Type 2360testdata/Builtins.lc 493:70-493:75 Type
2474testdata/Builtins.lc 498:71-498:77 Type 2361testdata/Builtins.lc 493:70-493:85 Type
2475testdata/Builtins.lc 498:76-498:77 Type 2362testdata/Builtins.lc 493:79-493:80 Type
2476testdata/Builtins.lc 499:1-499:12 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a -> a->a 2363testdata/Builtins.lc 493:79-493:85 Type
2477testdata/Builtins.lc 499:34-499:57 Type 2364testdata/Builtins.lc 493:84-493:85 Type
2365testdata/Builtins.lc 496:1-496:19 {a:Nat} -> VecScalar a Float -> VecScalar a Int
2366testdata/Builtins.lc 496:34-496:43 Nat -> Type->Type
2367testdata/Builtins.lc 496:34-496:45 Type->Type
2368testdata/Builtins.lc 496:34-496:51 Type
2369testdata/Builtins.lc 496:34-496:70 Type
2370testdata/Builtins.lc 496:44-496:45 V1
2371testdata/Builtins.lc 496:46-496:51 Type
2372testdata/Builtins.lc 496:55-496:64 Nat -> Type->Type
2373testdata/Builtins.lc 496:55-496:66 Type->Type
2374testdata/Builtins.lc 496:55-496:70 Type
2375testdata/Builtins.lc 496:65-496:66 Nat
2376testdata/Builtins.lc 496:67-496:70 Type
2377testdata/Builtins.lc 497:1-497:20 {a:Nat} -> VecScalar a Float -> VecScalar a Word
2378testdata/Builtins.lc 497:34-497:43 Nat -> Type->Type
2379testdata/Builtins.lc 497:34-497:45 Type->Type
2380testdata/Builtins.lc 497:34-497:51 Type
2381testdata/Builtins.lc 497:34-497:71 Type
2382testdata/Builtins.lc 497:44-497:45 V1
2383testdata/Builtins.lc 497:46-497:51 Type
2384testdata/Builtins.lc 497:55-497:64 Nat -> Type->Type
2385testdata/Builtins.lc 497:55-497:66 Type->Type
2386testdata/Builtins.lc 497:55-497:71 Type
2387testdata/Builtins.lc 497:65-497:66 Nat
2388testdata/Builtins.lc 497:67-497:71 Type
2389testdata/Builtins.lc 498:1-498:19 {a:Nat} -> VecScalar a Int -> VecScalar a Float
2390testdata/Builtins.lc 498:34-498:43 Nat -> Type->Type
2391testdata/Builtins.lc 498:34-498:45 Type->Type
2392testdata/Builtins.lc 498:34-498:49 Type
2393testdata/Builtins.lc 498:34-498:72 Type
2394testdata/Builtins.lc 498:44-498:45 V1
2395testdata/Builtins.lc 498:46-498:49 Type
2396testdata/Builtins.lc 498:55-498:64 Nat -> Type->Type
2397testdata/Builtins.lc 498:55-498:66 Type->Type
2398testdata/Builtins.lc 498:55-498:72 Type
2399testdata/Builtins.lc 498:65-498:66 Nat
2400testdata/Builtins.lc 498:67-498:72 Type
2401testdata/Builtins.lc 499:1-499:20 {a:Nat} -> VecScalar a Word -> VecScalar a Float
2402testdata/Builtins.lc 499:34-499:43 Nat -> Type->Type
2403testdata/Builtins.lc 499:34-499:45 Type->Type
2404testdata/Builtins.lc 499:34-499:50 Type
2478testdata/Builtins.lc 499:34-499:72 Type 2405testdata/Builtins.lc 499:34-499:72 Type
2479testdata/Builtins.lc 499:35-499:36 V3 2406testdata/Builtins.lc 499:44-499:45 V1
2480testdata/Builtins.lc 499:35-499:38 Type->Type 2407testdata/Builtins.lc 499:46-499:50 Type
2481testdata/Builtins.lc 499:37-499:38 Type -> Type->Type 2408testdata/Builtins.lc 499:55-499:64 Nat -> Type->Type
2482testdata/Builtins.lc 499:39-499:48 Nat -> Type->Type 2409testdata/Builtins.lc 499:55-499:66 Type->Type
2483testdata/Builtins.lc 499:39-499:50 Type->Type 2410testdata/Builtins.lc 499:55-499:72 Type
2484testdata/Builtins.lc 499:39-499:56 Type 2411testdata/Builtins.lc 499:65-499:66 Nat
2485testdata/Builtins.lc 499:49-499:50 V1 2412testdata/Builtins.lc 499:67-499:72 Type
2486testdata/Builtins.lc 499:51-499:56 Type 2413testdata/Builtins.lc 501:1-501:11 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->Float
2487testdata/Builtins.lc 499:61-499:62 Type 2414testdata/Builtins.lc 501:34-501:57 Type
2488testdata/Builtins.lc 499:61-499:72 Type 2415testdata/Builtins.lc 501:34-501:71 Type
2489testdata/Builtins.lc 499:66-499:67 Type 2416testdata/Builtins.lc 501:35-501:36 V3
2490testdata/Builtins.lc 499:66-499:72 Type 2417testdata/Builtins.lc 501:35-501:38 Type->Type
2491testdata/Builtins.lc 499:71-499:72 Type 2418testdata/Builtins.lc 501:37-501:38 Type -> Type->Type
2492testdata/Builtins.lc 501:1-501:14 {a:Nat} -> {b:Nat} -> {c} -> Mat a b c -> Mat b a c 2419testdata/Builtins.lc 501:39-501:48 Nat -> Type->Type
2493testdata/Builtins.lc 501:34-501:37 Nat -> Nat -> Type->Type 2420testdata/Builtins.lc 501:39-501:50 Type->Type
2494testdata/Builtins.lc 501:34-501:39 Nat -> Type->Type 2421testdata/Builtins.lc 501:39-501:56 Type
2495testdata/Builtins.lc 501:34-501:41 Type->Type 2422testdata/Builtins.lc 501:49-501:50 V1
2496testdata/Builtins.lc 501:34-501:43 Type 2423testdata/Builtins.lc 501:51-501:56 Type
2497testdata/Builtins.lc 501:34-501:56 Type 2424testdata/Builtins.lc 501:61-501:62 Type
2498testdata/Builtins.lc 501:38-501:39 V5 2425testdata/Builtins.lc 501:61-501:71 Type
2499testdata/Builtins.lc 501:40-501:41 V3 2426testdata/Builtins.lc 501:66-501:71 Type
2500testdata/Builtins.lc 501:42-501:43 V1 2427testdata/Builtins.lc 502:1-502:13 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a -> a->Float
2501testdata/Builtins.lc 501:47-501:50 Nat -> Nat -> Type->Type 2428testdata/Builtins.lc 502:15-502:22 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a -> a->Float
2502testdata/Builtins.lc 501:47-501:52 Nat -> Type->Type 2429testdata/Builtins.lc 502:34-502:57 Type
2503testdata/Builtins.lc 501:47-501:54 Type->Type 2430testdata/Builtins.lc 502:34-502:76 Type
2504testdata/Builtins.lc 501:47-501:56 Type 2431testdata/Builtins.lc 502:35-502:36 V3
2505testdata/Builtins.lc 501:51-501:52 Nat 2432testdata/Builtins.lc 502:35-502:38 Type->Type
2506testdata/Builtins.lc 501:53-501:54 Nat 2433testdata/Builtins.lc 502:37-502:38 Type -> Type->Type
2507testdata/Builtins.lc 501:55-501:56 Type 2434testdata/Builtins.lc 502:39-502:48 Nat -> Type->Type
2508testdata/Builtins.lc 502:1-502:16 {a:Nat} -> {b} -> Mat a a b -> Float 2435testdata/Builtins.lc 502:39-502:50 Type->Type
2509testdata/Builtins.lc 502:34-502:37 Nat -> Nat -> Type->Type 2436testdata/Builtins.lc 502:39-502:56 Type
2510testdata/Builtins.lc 502:34-502:39 Nat -> Type->Type 2437testdata/Builtins.lc 502:49-502:50 V1
2511testdata/Builtins.lc 502:34-502:41 Type->Type 2438testdata/Builtins.lc 502:51-502:56 Type
2512testdata/Builtins.lc 502:34-502:43 Type 2439testdata/Builtins.lc 502:61-502:62 Type
2513testdata/Builtins.lc 502:34-502:52 Type 2440testdata/Builtins.lc 502:61-502:76 Type
2514testdata/Builtins.lc 502:38-502:39 V3 2441testdata/Builtins.lc 502:66-502:67 Type
2515testdata/Builtins.lc 502:40-502:41 Nat 2442testdata/Builtins.lc 502:66-502:76 Type
2516testdata/Builtins.lc 502:42-502:43 V1 2443testdata/Builtins.lc 502:71-502:76 Type
2517testdata/Builtins.lc 502:47-502:52 Type 2444testdata/Builtins.lc 503:1-503:10 {a} -> {b : a ~ VecS Float 3} -> a -> a->a
2518testdata/Builtins.lc 503:1-503:12 {a:Nat} -> {b} -> Mat a a b -> Mat a a b 2445testdata/Builtins.lc 503:34-503:57 Type
2519testdata/Builtins.lc 503:34-503:37 Nat -> Nat -> Type->Type 2446testdata/Builtins.lc 503:34-503:72 Type
2520testdata/Builtins.lc 503:34-503:39 Nat -> Type->Type 2447testdata/Builtins.lc 503:35-503:36 V1
2521testdata/Builtins.lc 503:34-503:41 Type->Type 2448testdata/Builtins.lc 503:35-503:38 Type->Type
2522testdata/Builtins.lc 503:34-503:43 Type 2449testdata/Builtins.lc 503:37-503:38 Type -> Type->Type
2523testdata/Builtins.lc 503:34-503:56 Type 2450testdata/Builtins.lc 503:39-503:48 Nat -> Type->Type
2524testdata/Builtins.lc 503:38-503:39 V3 2451testdata/Builtins.lc 503:39-503:50 Type->Type
2525testdata/Builtins.lc 503:40-503:41 Nat 2452testdata/Builtins.lc 503:39-503:56 Type
2526testdata/Builtins.lc 503:42-503:43 V1 2453testdata/Builtins.lc 503:49-503:50 V1
2527testdata/Builtins.lc 503:47-503:50 Nat -> Nat -> Type->Type 2454testdata/Builtins.lc 503:51-503:56 Type
2528testdata/Builtins.lc 503:47-503:52 Nat -> Type->Type 2455testdata/Builtins.lc 503:61-503:62 Type
2529testdata/Builtins.lc 503:47-503:54 Type->Type 2456testdata/Builtins.lc 503:61-503:72 Type
2530testdata/Builtins.lc 503:47-503:56 Type 2457testdata/Builtins.lc 503:66-503:67 Type
2531testdata/Builtins.lc 503:51-503:52 Nat 2458testdata/Builtins.lc 503:66-503:72 Type
2532testdata/Builtins.lc 503:53-503:54 Nat 2459testdata/Builtins.lc 503:71-503:72 Type
2533testdata/Builtins.lc 503:55-503:56 Type 2460testdata/Builtins.lc 504:1-504:14 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a
2534testdata/Builtins.lc 504:1-504:17 {a:Nat} -> {b} -> {c:Nat} -> VecS b a -> VecS b c -> Mat c a b 2461testdata/Builtins.lc 504:34-504:57 Type
2535testdata/Builtins.lc 504:34-504:37 Nat -> Type->Type 2462testdata/Builtins.lc 504:34-504:67 Type
2536testdata/Builtins.lc 504:34-504:39 Type->Type 2463testdata/Builtins.lc 504:35-504:36 V3
2537testdata/Builtins.lc 504:34-504:41 Type 2464testdata/Builtins.lc 504:35-504:38 Type->Type
2538testdata/Builtins.lc 504:34-504:69 Type 2465testdata/Builtins.lc 504:37-504:38 Type -> Type->Type
2539testdata/Builtins.lc 504:38-504:39 V5 2466testdata/Builtins.lc 504:39-504:48 Nat -> Type->Type
2540testdata/Builtins.lc 504:40-504:41 V3 2467testdata/Builtins.lc 504:39-504:50 Type->Type
2541testdata/Builtins.lc 504:47-504:50 Nat -> Type->Type 2468testdata/Builtins.lc 504:39-504:56 Type
2542testdata/Builtins.lc 504:47-504:52 Type->Type 2469testdata/Builtins.lc 504:49-504:50 V1
2543testdata/Builtins.lc 504:47-504:54 Type 2470testdata/Builtins.lc 504:51-504:56 Type
2544testdata/Builtins.lc 504:47-504:69 Type 2471testdata/Builtins.lc 504:61-504:62 Type
2545testdata/Builtins.lc 504:51-504:52 V2 2472testdata/Builtins.lc 504:61-504:67 Type
2546testdata/Builtins.lc 504:53-504:54 Type 2473testdata/Builtins.lc 504:66-504:67 Type
2547testdata/Builtins.lc 504:60-504:63 Nat -> Nat -> Type->Type 2474testdata/Builtins.lc 505:1-505:16 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a -> a -> a->a
2548testdata/Builtins.lc 504:60-504:65 Nat -> Type->Type 2475testdata/Builtins.lc 505:18-505:29 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a -> a -> a->a
2549testdata/Builtins.lc 504:60-504:67 Type->Type 2476testdata/Builtins.lc 505:34-505:57 Type
2550testdata/Builtins.lc 504:60-504:69 Type 2477testdata/Builtins.lc 505:34-505:77 Type
2551testdata/Builtins.lc 504:64-504:65 Nat 2478testdata/Builtins.lc 505:35-505:36 V3
2552testdata/Builtins.lc 504:66-504:67 Nat 2479testdata/Builtins.lc 505:35-505:38 Type->Type
2553testdata/Builtins.lc 504:68-504:69 Type 2480testdata/Builtins.lc 505:37-505:38 Type -> Type->Type
2554testdata/Builtins.lc 505:1-505:14 {a:Nat} -> {b:Nat} -> {c} -> Mat a b c -> VecS c b -> VecS c a 2481testdata/Builtins.lc 505:39-505:48 Nat -> Type->Type
2555testdata/Builtins.lc 505:34-505:37 Nat -> Nat -> Type->Type 2482testdata/Builtins.lc 505:39-505:50 Type->Type
2556testdata/Builtins.lc 505:34-505:39 Nat -> Type->Type 2483testdata/Builtins.lc 505:39-505:56 Type
2557testdata/Builtins.lc 505:34-505:41 Type->Type 2484testdata/Builtins.lc 505:49-505:50 V1
2558testdata/Builtins.lc 505:34-505:43 Type 2485testdata/Builtins.lc 505:51-505:56 Type
2559testdata/Builtins.lc 505:34-505:67 Type 2486testdata/Builtins.lc 505:61-505:62 Type
2560testdata/Builtins.lc 505:38-505:39 V5 2487testdata/Builtins.lc 505:61-505:77 Type
2561testdata/Builtins.lc 505:40-505:41 V3
2562testdata/Builtins.lc 505:42-505:43 V1
2563testdata/Builtins.lc 505:47-505:50 Nat -> Type->Type
2564testdata/Builtins.lc 505:47-505:52 Type->Type
2565testdata/Builtins.lc 505:47-505:54 Type
2566testdata/Builtins.lc 505:47-505:67 Type
2567testdata/Builtins.lc 505:51-505:52 Nat
2568testdata/Builtins.lc 505:53-505:54 Type
2569testdata/Builtins.lc 505:60-505:63 Nat -> Type->Type
2570testdata/Builtins.lc 505:60-505:65 Type->Type
2571testdata/Builtins.lc 505:60-505:67 Type
2572testdata/Builtins.lc 505:64-505:65 Nat
2573testdata/Builtins.lc 505:66-505:67 Type 2488testdata/Builtins.lc 505:66-505:67 Type
2574testdata/Builtins.lc 506:1-506:14 {a:Nat} -> {b} -> {c:Nat} -> VecS b a -> Mat a c b -> VecS b c 2489testdata/Builtins.lc 505:66-505:77 Type
2575testdata/Builtins.lc 506:34-506:37 Nat -> Type->Type 2490testdata/Builtins.lc 505:71-505:72 Type
2576testdata/Builtins.lc 506:34-506:39 Type->Type 2491testdata/Builtins.lc 505:71-505:77 Type
2577testdata/Builtins.lc 506:34-506:41 Type 2492testdata/Builtins.lc 505:76-505:77 Type
2578testdata/Builtins.lc 506:34-506:67 Type 2493testdata/Builtins.lc 506:1-506:12 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a -> a->a
2579testdata/Builtins.lc 506:38-506:39 V5 2494testdata/Builtins.lc 506:34-506:57 Type
2580testdata/Builtins.lc 506:40-506:41 V3 2495testdata/Builtins.lc 506:34-506:72 Type
2581testdata/Builtins.lc 506:47-506:50 Nat -> Nat -> Type->Type 2496testdata/Builtins.lc 506:35-506:36 V3
2582testdata/Builtins.lc 506:47-506:52 Nat -> Type->Type 2497testdata/Builtins.lc 506:35-506:38 Type->Type
2583testdata/Builtins.lc 506:47-506:54 Type->Type 2498testdata/Builtins.lc 506:37-506:38 Type -> Type->Type
2584testdata/Builtins.lc 506:47-506:56 Type 2499testdata/Builtins.lc 506:39-506:48 Nat -> Type->Type
2585testdata/Builtins.lc 506:47-506:67 Type 2500testdata/Builtins.lc 506:39-506:50 Type->Type
2586testdata/Builtins.lc 506:51-506:52 Nat 2501testdata/Builtins.lc 506:39-506:56 Type
2587testdata/Builtins.lc 506:53-506:54 V2 2502testdata/Builtins.lc 506:49-506:50 V1
2588testdata/Builtins.lc 506:55-506:56 Type 2503testdata/Builtins.lc 506:51-506:56 Type
2589testdata/Builtins.lc 506:60-506:63 Nat -> Type->Type 2504testdata/Builtins.lc 506:61-506:62 Type
2590testdata/Builtins.lc 506:60-506:65 Type->Type 2505testdata/Builtins.lc 506:61-506:72 Type
2591testdata/Builtins.lc 506:60-506:67 Type
2592testdata/Builtins.lc 506:64-506:65 Nat
2593testdata/Builtins.lc 506:66-506:67 Type 2506testdata/Builtins.lc 506:66-506:67 Type
2594testdata/Builtins.lc 507:1-507:14 {a:Nat} -> {b:Nat} -> {c} -> {d:Nat} -> Mat a b c -> Mat b d c -> Mat a d c 2507testdata/Builtins.lc 506:66-506:72 Type
2595testdata/Builtins.lc 507:34-507:37 Nat -> Nat -> Type->Type 2508testdata/Builtins.lc 506:71-506:72 Type
2596testdata/Builtins.lc 507:34-507:39 Nat -> Type->Type 2509testdata/Builtins.lc 508:1-508:14 {a:Nat} -> {b:Nat} -> {c} -> Mat a b c -> Mat b a c
2597testdata/Builtins.lc 507:34-507:41 Type->Type 2510testdata/Builtins.lc 508:34-508:37 Nat -> Nat -> Type->Type
2598testdata/Builtins.lc 507:34-507:43 Type 2511testdata/Builtins.lc 508:34-508:39 Nat -> Type->Type
2599testdata/Builtins.lc 507:34-507:69 Type 2512testdata/Builtins.lc 508:34-508:41 Type->Type
2600testdata/Builtins.lc 507:38-507:39 V7 2513testdata/Builtins.lc 508:34-508:43 Type
2601testdata/Builtins.lc 507:40-507:41 V5 2514testdata/Builtins.lc 508:34-508:56 Type
2602testdata/Builtins.lc 507:42-507:43 V3 2515testdata/Builtins.lc 508:38-508:39 V5
2603testdata/Builtins.lc 507:47-507:50 Nat -> Nat -> Type->Type 2516testdata/Builtins.lc 508:40-508:41 V3
2604testdata/Builtins.lc 507:47-507:52 Nat -> Type->Type 2517testdata/Builtins.lc 508:42-508:43 V1
2605testdata/Builtins.lc 507:47-507:54 Type->Type 2518testdata/Builtins.lc 508:47-508:50 Nat -> Nat -> Type->Type
2606testdata/Builtins.lc 507:47-507:56 Type 2519testdata/Builtins.lc 508:47-508:52 Nat -> Type->Type
2607testdata/Builtins.lc 507:47-507:69 Type 2520testdata/Builtins.lc 508:47-508:54 Type->Type
2608testdata/Builtins.lc 507:51-507:52 Nat 2521testdata/Builtins.lc 508:47-508:56 Type
2609testdata/Builtins.lc 507:53-507:54 V2 2522testdata/Builtins.lc 508:51-508:52 Nat
2610testdata/Builtins.lc 507:55-507:56 Type 2523testdata/Builtins.lc 508:53-508:54 Nat
2611testdata/Builtins.lc 507:60-507:63 Nat -> Nat -> Type->Type 2524testdata/Builtins.lc 508:55-508:56 Type
2612testdata/Builtins.lc 507:60-507:65 Nat -> Type->Type 2525testdata/Builtins.lc 509:1-509:16 {a:Nat} -> {b} -> Mat a a b -> Float
2613testdata/Builtins.lc 507:60-507:67 Type->Type 2526testdata/Builtins.lc 509:34-509:37 Nat -> Nat -> Type->Type
2614testdata/Builtins.lc 507:60-507:69 Type 2527testdata/Builtins.lc 509:34-509:39 Nat -> Type->Type
2615testdata/Builtins.lc 507:64-507:65 Nat 2528testdata/Builtins.lc 509:34-509:41 Type->Type
2616testdata/Builtins.lc 507:66-507:67 Nat 2529testdata/Builtins.lc 509:34-509:43 Type
2617testdata/Builtins.lc 507:68-507:69 Type 2530testdata/Builtins.lc 509:34-509:52 Type
2618testdata/Builtins.lc 509:1-509:13 {a} -> {b} -> {c:Nat} -> {d} -> {e : Num a} -> {f : b ~ VecScalar c a} -> {g : d ~ VecScalar c Bool} -> b -> b->d 2531testdata/Builtins.lc 509:38-509:39 V3
2619testdata/Builtins.lc 509:15-509:32 {a} -> {b} -> {c:Nat} -> {d} -> {e : Num a} -> {f : b ~ VecScalar c a} -> {g : d ~ VecScalar c Bool} -> b -> b->d 2532testdata/Builtins.lc 509:40-509:41 Nat
2620testdata/Builtins.lc 509:34-509:49 {a} -> {b} -> {c:Nat} -> {d} -> {e : Num a} -> {f : b ~ VecScalar c a} -> {g : d ~ VecScalar c Bool} -> b -> b->d 2533testdata/Builtins.lc 509:42-509:43 V1
2621testdata/Builtins.lc 509:51-509:71 {a} -> {b} -> {c:Nat} -> {d} -> {e : Num a} -> {f : b ~ VecScalar c a} -> {g : d ~ VecScalar c Bool} -> b -> b->d 2534testdata/Builtins.lc 509:47-509:52 Type
2622testdata/Builtins.lc 509:73-509:83 {a} -> {b} -> {c:Nat} -> {d} -> {e : Num a} -> {f : b ~ VecScalar c a} -> {g : d ~ VecScalar c Bool} -> b -> b->d 2535testdata/Builtins.lc 510:1-510:12 {a:Nat} -> {b} -> Mat a a b -> Mat a a b
2623testdata/Builtins.lc 509:85-509:98 {a} -> {b} -> {c:Nat} -> {d} -> {e : Num a} -> {f : b ~ VecScalar c a} -> {g : d ~ VecScalar c Bool} -> b -> b->d 2536testdata/Builtins.lc 510:34-510:37 Nat -> Nat -> Type->Type
2624testdata/Builtins.lc 510:34-510:97 Type 2537testdata/Builtins.lc 510:34-510:39 Nat -> Type->Type
2625testdata/Builtins.lc 510:35-510:38 Type->Type 2538testdata/Builtins.lc 510:34-510:41 Type->Type
2626testdata/Builtins.lc 510:35-510:40 Type 2539testdata/Builtins.lc 510:34-510:43 Type
2627testdata/Builtins.lc 510:39-510:40 V7 2540testdata/Builtins.lc 510:34-510:56 Type
2628testdata/Builtins.lc 510:42-510:43 V6 2541testdata/Builtins.lc 510:38-510:39 V3
2629testdata/Builtins.lc 510:42-510:45 Type->Type 2542testdata/Builtins.lc 510:40-510:41 Nat
2630testdata/Builtins.lc 510:42-510:59 Type 2543testdata/Builtins.lc 510:42-510:43 V1
2631testdata/Builtins.lc 510:42-510:97 Type 2544testdata/Builtins.lc 510:47-510:50 Nat -> Nat -> Type->Type
2632testdata/Builtins.lc 510:44-510:45 Type -> Type->Type 2545testdata/Builtins.lc 510:47-510:52 Nat -> Type->Type
2633testdata/Builtins.lc 510:46-510:55 Nat -> Type->Type 2546testdata/Builtins.lc 510:47-510:54 Type->Type
2634testdata/Builtins.lc 510:46-510:57 Type->Type 2547testdata/Builtins.lc 510:47-510:56 Type
2635testdata/Builtins.lc 510:46-510:59 Type 2548testdata/Builtins.lc 510:51-510:52 Nat
2636testdata/Builtins.lc 510:56-510:57 V4 2549testdata/Builtins.lc 510:53-510:54 Nat
2637testdata/Builtins.lc 510:58-510:59 Type 2550testdata/Builtins.lc 510:55-510:56 Type
2638testdata/Builtins.lc 510:61-510:62 V3 2551testdata/Builtins.lc 511:1-511:17 {a:Nat} -> {b} -> {c:Nat} -> VecS b a -> VecS b c -> Mat c a b
2639testdata/Builtins.lc 510:61-510:64 Type->Type 2552testdata/Builtins.lc 511:34-511:37 Nat -> Type->Type
2640testdata/Builtins.lc 510:61-510:81 Type 2553testdata/Builtins.lc 511:34-511:39 Type->Type
2641testdata/Builtins.lc 510:61-510:97 Type 2554testdata/Builtins.lc 511:34-511:41 Type
2642testdata/Builtins.lc 510:63-510:64 Type -> Type->Type 2555testdata/Builtins.lc 511:34-511:69 Type
2643testdata/Builtins.lc 510:65-510:74 Nat -> Type->Type 2556testdata/Builtins.lc 511:38-511:39 V5
2644testdata/Builtins.lc 510:65-510:76 Type->Type 2557testdata/Builtins.lc 511:40-511:41 V3
2645testdata/Builtins.lc 510:65-510:81 Type 2558testdata/Builtins.lc 511:47-511:50 Nat -> Type->Type
2646testdata/Builtins.lc 510:75-510:76 Nat 2559testdata/Builtins.lc 511:47-511:52 Type->Type
2647testdata/Builtins.lc 510:77-510:81 Type 2560testdata/Builtins.lc 511:47-511:54 Type
2648testdata/Builtins.lc 510:86-510:87 Type 2561testdata/Builtins.lc 511:47-511:69 Type
2649testdata/Builtins.lc 510:86-510:97 Type 2562testdata/Builtins.lc 511:51-511:52 V2
2650testdata/Builtins.lc 510:91-510:92 Type 2563testdata/Builtins.lc 511:53-511:54 Type
2651testdata/Builtins.lc 510:91-510:97 Type 2564testdata/Builtins.lc 511:60-511:63 Nat -> Nat -> Type->Type
2652testdata/Builtins.lc 510:96-510:97 Type 2565testdata/Builtins.lc 511:60-511:65 Nat -> Type->Type
2653testdata/Builtins.lc 511:1-511:10 {a} -> {b} -> {c : a ~ MatVecScalarElem b} -> b -> b->Bool 2566testdata/Builtins.lc 511:60-511:67 Type->Type
2654testdata/Builtins.lc 511:12-511:24 {a} -> {b} -> {c : a ~ MatVecScalarElem b} -> b -> b->Bool 2567testdata/Builtins.lc 511:60-511:69 Type
2655testdata/Builtins.lc 511:34-511:58 Type 2568testdata/Builtins.lc 511:64-511:65 Nat
2656testdata/Builtins.lc 511:34-511:76 Type 2569testdata/Builtins.lc 511:66-511:67 Nat
2657testdata/Builtins.lc 511:35-511:36 V3 2570testdata/Builtins.lc 511:68-511:69 Type
2658testdata/Builtins.lc 511:35-511:38 Type->Type 2571testdata/Builtins.lc 512:1-512:14 {a:Nat} -> {b:Nat} -> {c} -> Mat a b c -> VecS c b -> VecS c a
2659testdata/Builtins.lc 511:37-511:38 Type -> Type->Type 2572testdata/Builtins.lc 512:34-512:37 Nat -> Nat -> Type->Type
2660testdata/Builtins.lc 511:39-511:55 Type->Type 2573testdata/Builtins.lc 512:34-512:39 Nat -> Type->Type
2661testdata/Builtins.lc 511:39-511:57 Type 2574testdata/Builtins.lc 512:34-512:41 Type->Type
2662testdata/Builtins.lc 511:56-511:57 V1 2575testdata/Builtins.lc 512:34-512:43 Type
2663testdata/Builtins.lc 511:62-511:63 Type 2576testdata/Builtins.lc 512:34-512:67 Type
2664testdata/Builtins.lc 511:62-511:76 Type 2577testdata/Builtins.lc 512:38-512:39 V5
2665testdata/Builtins.lc 511:67-511:68 Type 2578testdata/Builtins.lc 512:40-512:41 V3
2666testdata/Builtins.lc 511:67-511:76 Type 2579testdata/Builtins.lc 512:42-512:43 V1
2667testdata/Builtins.lc 511:72-511:76 Type 2580testdata/Builtins.lc 512:47-512:50 Nat -> Type->Type
2668testdata/Builtins.lc 513:1-513:9 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a 2581testdata/Builtins.lc 512:47-512:52 Type->Type
2669testdata/Builtins.lc 513:11-513:19 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a 2582testdata/Builtins.lc 512:47-512:54 Type
2670testdata/Builtins.lc 513:21-513:31 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a 2583testdata/Builtins.lc 512:47-512:67 Type
2671testdata/Builtins.lc 514:34-514:57 Type 2584testdata/Builtins.lc 512:51-512:52 Nat
2672testdata/Builtins.lc 514:34-514:67 Type 2585testdata/Builtins.lc 512:53-512:54 Type
2673testdata/Builtins.lc 514:35-514:36 V3 2586testdata/Builtins.lc 512:60-512:63 Nat -> Type->Type
2674testdata/Builtins.lc 514:35-514:38 Type->Type 2587testdata/Builtins.lc 512:60-512:65 Type->Type
2675testdata/Builtins.lc 514:37-514:38 Type -> Type->Type 2588testdata/Builtins.lc 512:60-512:67 Type
2676testdata/Builtins.lc 514:39-514:48 Nat -> Type->Type 2589testdata/Builtins.lc 512:64-512:65 Nat
2677testdata/Builtins.lc 514:39-514:50 Type->Type 2590testdata/Builtins.lc 512:66-512:67 Type
2678testdata/Builtins.lc 514:39-514:56 Type 2591testdata/Builtins.lc 513:1-513:14 {a:Nat} -> {b} -> {c:Nat} -> VecS b a -> Mat a c b -> VecS b c
2679testdata/Builtins.lc 514:49-514:50 V1 2592testdata/Builtins.lc 513:34-513:37 Nat -> Type->Type
2680testdata/Builtins.lc 514:51-514:56 Type 2593testdata/Builtins.lc 513:34-513:39 Type->Type
2681testdata/Builtins.lc 514:61-514:62 Type 2594testdata/Builtins.lc 513:34-513:41 Type
2682testdata/Builtins.lc 514:61-514:67 Type 2595testdata/Builtins.lc 513:34-513:67 Type
2683testdata/Builtins.lc 514:66-514:67 Type 2596testdata/Builtins.lc 513:38-513:39 V5
2684testdata/Builtins.lc 516:1-516:11 {a:Nat} -> VecScalar a Float -> Float 2597testdata/Builtins.lc 513:40-513:41 V3
2685testdata/Builtins.lc 516:34-516:43 Nat -> Type->Type 2598testdata/Builtins.lc 513:47-513:50 Nat -> Nat -> Type->Type
2686testdata/Builtins.lc 516:34-516:45 Type->Type 2599testdata/Builtins.lc 513:47-513:52 Nat -> Type->Type
2687testdata/Builtins.lc 516:34-516:51 Type 2600testdata/Builtins.lc 513:47-513:54 Type->Type
2688testdata/Builtins.lc 516:34-516:60 Type 2601testdata/Builtins.lc 513:47-513:56 Type
2689testdata/Builtins.lc 516:44-516:45 V1 2602testdata/Builtins.lc 513:47-513:67 Type
2690testdata/Builtins.lc 516:46-516:51 Type 2603testdata/Builtins.lc 513:51-513:52 Nat
2691testdata/Builtins.lc 516:55-516:60 Type 2604testdata/Builtins.lc 513:53-513:54 V2
2692testdata/Builtins.lc 517:1-517:11 {a:Nat} -> VecScalar a Float -> VecS Float 2 2605testdata/Builtins.lc 513:55-513:56 Type
2693testdata/Builtins.lc 517:34-517:43 Nat -> Type->Type 2606testdata/Builtins.lc 513:60-513:63 Nat -> Type->Type
2694testdata/Builtins.lc 517:34-517:45 Type->Type 2607testdata/Builtins.lc 513:60-513:65 Type->Type
2695testdata/Builtins.lc 517:34-517:51 Type 2608testdata/Builtins.lc 513:60-513:67 Type
2696testdata/Builtins.lc 517:34-517:66 Type 2609testdata/Builtins.lc 513:64-513:65 Nat
2697testdata/Builtins.lc 517:44-517:45 V1 2610testdata/Builtins.lc 513:66-513:67 Type
2698testdata/Builtins.lc 517:46-517:51 Type 2611testdata/Builtins.lc 514:1-514:14 {a:Nat} -> {b:Nat} -> {c} -> {d:Nat} -> Mat a b c -> Mat b d c -> Mat a d c
2699testdata/Builtins.lc 517:55-517:58 Nat -> Type->Type 2612testdata/Builtins.lc 514:34-514:37 Nat -> Nat -> Type->Type
2700testdata/Builtins.lc 517:55-517:60 Type->Type 2613testdata/Builtins.lc 514:34-514:39 Nat -> Type->Type
2701testdata/Builtins.lc 517:55-517:66 Type 2614testdata/Builtins.lc 514:34-514:41 Type->Type
2702testdata/Builtins.lc 517:59-517:60 V1 2615testdata/Builtins.lc 514:34-514:43 Type
2703testdata/Builtins.lc 517:61-517:66 Type 2616testdata/Builtins.lc 514:34-514:69 Type
2704testdata/Builtins.lc 518:1-518:11 {a:Nat} -> VecScalar a Float -> VecS Float 3 2617testdata/Builtins.lc 514:38-514:39 V7
2705testdata/Builtins.lc 518:34-518:43 Nat -> Type->Type 2618testdata/Builtins.lc 514:40-514:41 V5
2706testdata/Builtins.lc 518:34-518:45 Type->Type 2619testdata/Builtins.lc 514:42-514:43 V3
2707testdata/Builtins.lc 518:34-518:51 Type 2620testdata/Builtins.lc 514:47-514:50 Nat -> Nat -> Type->Type
2708testdata/Builtins.lc 518:34-518:66 Type 2621testdata/Builtins.lc 514:47-514:52 Nat -> Type->Type
2709testdata/Builtins.lc 518:44-518:45 V1 2622testdata/Builtins.lc 514:47-514:54 Type->Type
2710testdata/Builtins.lc 518:46-518:51 Type 2623testdata/Builtins.lc 514:47-514:56 Type
2711testdata/Builtins.lc 518:55-518:58 Nat -> Type->Type 2624testdata/Builtins.lc 514:47-514:69 Type
2712testdata/Builtins.lc 518:55-518:60 Type->Type 2625testdata/Builtins.lc 514:51-514:52 Nat
2713testdata/Builtins.lc 518:55-518:66 Type 2626testdata/Builtins.lc 514:53-514:54 V2
2714testdata/Builtins.lc 518:59-518:60 V1 2627testdata/Builtins.lc 514:55-514:56 Type
2715testdata/Builtins.lc 518:61-518:66 Type 2628testdata/Builtins.lc 514:60-514:63 Nat -> Nat -> Type->Type
2716testdata/Builtins.lc 519:1-519:11 {a:Nat} -> VecScalar a Float -> VecS Float 4 2629testdata/Builtins.lc 514:60-514:65 Nat -> Type->Type
2717testdata/Builtins.lc 519:34-519:43 Nat -> Type->Type 2630testdata/Builtins.lc 514:60-514:67 Type->Type
2718testdata/Builtins.lc 519:34-519:45 Type->Type 2631testdata/Builtins.lc 514:60-514:69 Type
2719testdata/Builtins.lc 519:34-519:51 Type 2632testdata/Builtins.lc 514:64-514:65 Nat
2720testdata/Builtins.lc 519:34-519:66 Type 2633testdata/Builtins.lc 514:66-514:67 Nat
2721testdata/Builtins.lc 519:44-519:45 V1 2634testdata/Builtins.lc 514:68-514:69 Type
2722testdata/Builtins.lc 519:46-519:51 Type 2635testdata/Builtins.lc 516:1-516:13 {a} -> {b} -> {c:Nat} -> {d} -> {e : Num a} -> {f : b ~ VecScalar c a} -> {g : d ~ VecScalar c Bool} -> b -> b->d
2723testdata/Builtins.lc 519:55-519:58 Nat -> Type->Type 2636testdata/Builtins.lc 516:15-516:32 {a} -> {b} -> {c:Nat} -> {d} -> {e : Num a} -> {f : b ~ VecScalar c a} -> {g : d ~ VecScalar c Bool} -> b -> b->d
2724testdata/Builtins.lc 519:55-519:60 Type->Type 2637testdata/Builtins.lc 516:34-516:49 {a} -> {b} -> {c:Nat} -> {d} -> {e : Num a} -> {f : b ~ VecScalar c a} -> {g : d ~ VecScalar c Bool} -> b -> b->d
2725testdata/Builtins.lc 519:55-519:66 Type 2638testdata/Builtins.lc 516:51-516:71 {a} -> {b} -> {c:Nat} -> {d} -> {e : Num a} -> {f : b ~ VecScalar c a} -> {g : d ~ VecScalar c Bool} -> b -> b->d
2726testdata/Builtins.lc 519:59-519:60 V1 2639testdata/Builtins.lc 516:73-516:83 {a} -> {b} -> {c:Nat} -> {d} -> {e : Num a} -> {f : b ~ VecScalar c a} -> {g : d ~ VecScalar c Bool} -> b -> b->d
2727testdata/Builtins.lc 519:61-519:66 Type 2640testdata/Builtins.lc 516:85-516:98 {a} -> {b} -> {c:Nat} -> {d} -> {e : Num a} -> {f : b ~ VecScalar c a} -> {g : d ~ VecScalar c Bool} -> b -> b->d
2728testdata/Builtins.lc 535:6-535:13 Type 2641testdata/Builtins.lc 517:34-517:97 Type
2729testdata/Builtins.lc 535:6-539:12 Type 2642testdata/Builtins.lc 517:35-517:38 Type->Type
2730testdata/Builtins.lc 536:3-536:16 String->Texture | Texture | Type 2643testdata/Builtins.lc 517:35-517:40 Type
2731testdata/Builtins.lc 536:20-536:26 Type 2644testdata/Builtins.lc 517:39-517:40 V7
2732testdata/Builtins.lc 537:20-537:27 Type 2645testdata/Builtins.lc 517:42-517:43 V6
2733testdata/Builtins.lc 539:3-539:12 Texture | Type | VecS Int 2 -> Image 1 (Color (VecS Float 4)) -> Texture 2646testdata/Builtins.lc 517:42-517:45 Type->Type
2734testdata/Builtins.lc 539:20-539:23 Nat -> Type->Type 2647testdata/Builtins.lc 517:42-517:59 Type
2735testdata/Builtins.lc 539:20-539:25 Type->Type 2648testdata/Builtins.lc 517:42-517:97 Type
2736testdata/Builtins.lc 539:20-539:29 Type 2649testdata/Builtins.lc 517:44-517:45 Type -> Type->Type
2737testdata/Builtins.lc 539:24-539:25 V1 2650testdata/Builtins.lc 517:46-517:55 Nat -> Type->Type
2738testdata/Builtins.lc 539:26-539:29 Type 2651testdata/Builtins.lc 517:46-517:57 Type->Type
2739testdata/Builtins.lc 540:20-540:25 Nat -> Type->Type 2652testdata/Builtins.lc 517:46-517:59 Type
2740testdata/Builtins.lc 540:20-540:27 Type->Type 2653testdata/Builtins.lc 517:56-517:57 V4
2741testdata/Builtins.lc 540:20-540:49 Type 2654testdata/Builtins.lc 517:58-517:59 Type
2742testdata/Builtins.lc 540:20-541:27 Type 2655testdata/Builtins.lc 517:61-517:62 V3
2743testdata/Builtins.lc 540:26-540:27 V1 2656testdata/Builtins.lc 517:61-517:64 Type->Type
2744testdata/Builtins.lc 540:28-540:49 Type 2657testdata/Builtins.lc 517:61-517:81 Type
2745testdata/Builtins.lc 540:29-540:34 Type->Type 2658testdata/Builtins.lc 517:61-517:97 Type
2746testdata/Builtins.lc 540:35-540:48 Type 2659testdata/Builtins.lc 517:63-517:64 Type -> Type->Type
2747testdata/Builtins.lc 540:36-540:39 Nat -> Type->Type 2660testdata/Builtins.lc 517:65-517:74 Nat -> Type->Type
2748testdata/Builtins.lc 540:36-540:41 Type->Type 2661testdata/Builtins.lc 517:65-517:76 Type->Type
2749testdata/Builtins.lc 540:40-540:41 V1 2662testdata/Builtins.lc 517:65-517:81 Type
2750testdata/Builtins.lc 540:42-540:47 Type 2663testdata/Builtins.lc 517:75-517:76 Nat
2751testdata/Builtins.lc 541:20-541:27 Type 2664testdata/Builtins.lc 517:77-517:81 Type
2752testdata/Builtins.lc 543:6-543:12 Type 2665testdata/Builtins.lc 517:86-517:87 Type
2753testdata/Builtins.lc 543:6-545:17 Type 2666testdata/Builtins.lc 517:86-517:97 Type
2754testdata/Builtins.lc 544:5-544:16 Filter 2667testdata/Builtins.lc 517:91-517:92 Type
2755testdata/Builtins.lc 545:5-545:17 Filter 2668testdata/Builtins.lc 517:91-517:97 Type
2756testdata/Builtins.lc 547:6-547:14 Type 2669testdata/Builtins.lc 517:96-517:97 Type
2757testdata/Builtins.lc 547:6-550:16 Type 2670testdata/Builtins.lc 518:1-518:10 {a} -> {b} -> {c : a ~ MatVecScalarElem b} -> b -> b->Bool
2758testdata/Builtins.lc 548:5-548:11 EdgeMode 2671testdata/Builtins.lc 518:12-518:24 {a} -> {b} -> {c : a ~ MatVecScalarElem b} -> b -> b->Bool
2759testdata/Builtins.lc 549:5-549:19 EdgeMode 2672testdata/Builtins.lc 518:34-518:58 Type
2760testdata/Builtins.lc 550:5-550:16 EdgeMode 2673testdata/Builtins.lc 518:34-518:76 Type
2761testdata/Builtins.lc 552:6-552:13 Type 2674testdata/Builtins.lc 518:35-518:36 V3
2762testdata/Builtins.lc 552:6-552:23 Type 2675testdata/Builtins.lc 518:35-518:38 Type->Type
2763testdata/Builtins.lc 552:6-552:47 Type 2676testdata/Builtins.lc 518:37-518:38 Type -> Type->Type
2764testdata/Builtins.lc 552:16-552:23 Filter -> EdgeMode -> Texture->Sampler | Sampler | Type 2677testdata/Builtins.lc 518:39-518:55 Type->Type
2765testdata/Builtins.lc 552:24-552:30 Type 2678testdata/Builtins.lc 518:39-518:57 Type
2766testdata/Builtins.lc 552:31-552:39 Type 2679testdata/Builtins.lc 518:56-518:57 V1
2767testdata/Builtins.lc 552:40-552:47 Type 2680testdata/Builtins.lc 518:62-518:63 Type
2768testdata/Builtins.lc 555:1-555:10 Sampler -> VecS Float 2 -> VecS Float 4 2681testdata/Builtins.lc 518:62-518:76 Type
2769testdata/Builtins.lc 555:14-555:21 Type 2682testdata/Builtins.lc 518:67-518:68 Type
2770testdata/Builtins.lc 555:25-555:28 Nat -> Type->Type 2683testdata/Builtins.lc 518:67-518:76 Type
2771testdata/Builtins.lc 555:25-555:30 Type->Type 2684testdata/Builtins.lc 518:72-518:76 Type
2772testdata/Builtins.lc 555:25-555:36 Type 2685testdata/Builtins.lc 520:1-520:9 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a
2773testdata/Builtins.lc 555:25-555:51 Type 2686testdata/Builtins.lc 520:11-520:19 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a
2774testdata/Builtins.lc 555:29-555:30 V1 2687testdata/Builtins.lc 520:21-520:31 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a
2775testdata/Builtins.lc 555:31-555:36 Type 2688testdata/Builtins.lc 521:34-521:57 Type
2776testdata/Builtins.lc 555:40-555:43 Nat -> Type->Type 2689testdata/Builtins.lc 521:34-521:67 Type
2777testdata/Builtins.lc 555:40-555:45 Type->Type 2690testdata/Builtins.lc 521:35-521:36 V3
2778testdata/Builtins.lc 555:40-555:51 Type 2691testdata/Builtins.lc 521:35-521:38 Type->Type
2779testdata/Builtins.lc 555:44-555:45 V1 2692testdata/Builtins.lc 521:37-521:38 Type -> Type->Type
2780testdata/Builtins.lc 555:46-555:51 Type 2693testdata/Builtins.lc 521:39-521:48 Nat -> Type->Type
2781testdata/Builtins.lc 558:1-558:15 {a} -> {b} -> a -> b -> Tuple2 a b 2694testdata/Builtins.lc 521:39-521:50 Type->Type
2782testdata/Builtins.lc 558:24-558:32 Tuple2 V3 V1 2695testdata/Builtins.lc 521:39-521:56 Type
2783testdata/Builtins.lc 558:25-558:28 V5 2696testdata/Builtins.lc 521:49-521:50 V1
2784testdata/Builtins.lc 558:30-558:31 V2 2697testdata/Builtins.lc 521:51-521:56 Type
2785testdata/Builtins.lc 559:1-559:8 {a:Nat} -> {b} -> FrameBuffer a b -> Tuple2 (FragOps' b) (Stream (Vector a (Maybe (SimpleFragment (RemSemantics b))))) -> FrameBuffer a b 2698testdata/Builtins.lc 521:61-521:62 Type
2786testdata/Builtins.lc 559:13-559:21 V3 2699testdata/Builtins.lc 521:61-521:67 Type
2787testdata/Builtins.lc 559:13-559:46 FrameBuffer V1 V0 2700testdata/Builtins.lc 521:66-521:67 Type
2788testdata/Builtins.lc 559:25-559:35 {a:Nat} -> {b} -> FragOps' b -> Stream (Vector a (Maybe (SimpleFragment (RemSemantics b)))) -> FrameBuffer a b -> FrameBuffer a b 2701testdata/Builtins.lc 523:1-523:11 {a:Nat} -> VecScalar a Float -> Float
2789testdata/Builtins.lc 559:25-559:39 Stream (Vector V1 (Maybe (SimpleFragment (RemSemantics V0)))) -> FrameBuffer V2 V1 -> FrameBuffer V3 V2 2702testdata/Builtins.lc 523:34-523:43 Nat -> Type->Type
2790testdata/Builtins.lc 559:25-559:43 FrameBuffer V1 V0 -> FrameBuffer V2 V1 2703testdata/Builtins.lc 523:34-523:45 Type->Type
2791testdata/Builtins.lc 559:25-559:46 FrameBuffer V1 V0 | V2 -> V2->V2 | V2->V2 2704testdata/Builtins.lc 523:34-523:51 Type
2792testdata/Builtins.lc 559:36-559:39 V6 2705testdata/Builtins.lc 523:34-523:60 Type
2793testdata/Builtins.lc 559:40-559:43 V5 2706testdata/Builtins.lc 523:44-523:45 V1
2794testdata/Builtins.lc 559:44-559:46 V7 2707testdata/Builtins.lc 523:46-523:51 Type
2795testdata/Builtins.lc 560:1-560:12 {a:Nat} -> {b} -> FrameBuffer a b -> Output 2708testdata/Builtins.lc 523:55-523:60 Type
2796testdata/Builtins.lc 560:15-560:24 {a:Nat} -> {b} -> FrameBuffer a b -> Output 2709testdata/Builtins.lc 524:1-524:11 {a:Nat} -> VecScalar a Float -> VecS Float 2
2797testdata/Builtins.lc 561:1-561:11 {a:Nat} -> {b} -> {c} -> {d : SameLayerCounts c} -> {e : PreFrameBuffer a b ~ TFFrameBuffer c} -> c -> FrameBuffer a b 2710testdata/Builtins.lc 524:34-524:43 Nat -> Type->Type
2798testdata/Builtins.lc 561:14-561:25 {a:Nat} -> {b} -> {c} -> {d : SameLayerCounts c} -> {e : PreFrameBuffer a b ~ TFFrameBuffer c} -> c -> FrameBuffer a b 2711testdata/Builtins.lc 524:34-524:45 Type->Type
2799testdata/Builtins.lc 562:1-562:16 Float -> Image 1 (Depth Float) 2712testdata/Builtins.lc 524:34-524:51 Type
2800testdata/Builtins.lc 562:19-562:29 {a:Nat} -> Float -> Image a (Depth Float) 2713testdata/Builtins.lc 524:34-524:66 Type
2801testdata/Builtins.lc 562:19-562:32 Float -> Image 1 (Depth Float) 2714testdata/Builtins.lc 524:44-524:45 V1
2802testdata/Builtins.lc 562:31-562:32 V1 2715testdata/Builtins.lc 524:46-524:51 Type
2803testdata/Builtins.lc 563:1-563:16 {a:Nat} -> {b} -> {c} -> {d : Num b} -> {e : c ~ VecScalar a b} -> c -> Image 1 (Color c) 2716testdata/Builtins.lc 524:55-524:58 Nat -> Type->Type
2804testdata/Builtins.lc 563:19-563:29 {a:Nat} -> {b:Nat} -> {c} -> {d} -> {e : Num c} -> {f : d ~ VecScalar b c} -> d -> Image a (Color d) 2717testdata/Builtins.lc 524:55-524:60 Type->Type
2805testdata/Builtins.lc 563:19-563:32 {a:Nat} -> {b} -> {c} -> {d : Num b} -> {e : c ~ VecScalar a b} -> c -> Image 1 (Color c) 2718testdata/Builtins.lc 524:55-524:66 Type
2806testdata/Builtins.lc 563:31-563:32 V1 2719testdata/Builtins.lc 524:59-524:60 V1
2720testdata/Builtins.lc 524:61-524:66 Type
2721testdata/Builtins.lc 525:1-525:11 {a:Nat} -> VecScalar a Float -> VecS Float 3
2722testdata/Builtins.lc 525:34-525:43 Nat -> Type->Type
2723testdata/Builtins.lc 525:34-525:45 Type->Type
2724testdata/Builtins.lc 525:34-525:51 Type
2725testdata/Builtins.lc 525:34-525:66 Type
2726testdata/Builtins.lc 525:44-525:45 V1
2727testdata/Builtins.lc 525:46-525:51 Type
2728testdata/Builtins.lc 525:55-525:58 Nat -> Type->Type
2729testdata/Builtins.lc 525:55-525:60 Type->Type
2730testdata/Builtins.lc 525:55-525:66 Type
2731testdata/Builtins.lc 525:59-525:60 V1
2732testdata/Builtins.lc 525:61-525:66 Type
2733testdata/Builtins.lc 526:1-526:11 {a:Nat} -> VecScalar a Float -> VecS Float 4
2734testdata/Builtins.lc 526:34-526:43 Nat -> Type->Type
2735testdata/Builtins.lc 526:34-526:45 Type->Type
2736testdata/Builtins.lc 526:34-526:51 Type
2737testdata/Builtins.lc 526:34-526:66 Type
2738testdata/Builtins.lc 526:44-526:45 V1
2739testdata/Builtins.lc 526:46-526:51 Type
2740testdata/Builtins.lc 526:55-526:58 Nat -> Type->Type
2741testdata/Builtins.lc 526:55-526:60 Type->Type
2742testdata/Builtins.lc 526:55-526:66 Type
2743testdata/Builtins.lc 526:59-526:60 V1
2744testdata/Builtins.lc 526:61-526:66 Type
2745testdata/Builtins.lc 542:6-542:13 Type
2746testdata/Builtins.lc 542:6-546:12 Type
2747testdata/Builtins.lc 543:3-543:16 String->Texture | Texture | Type
2748testdata/Builtins.lc 543:20-543:26 Type
2749testdata/Builtins.lc 544:20-544:27 Type
2750testdata/Builtins.lc 546:3-546:12 Texture | Type | VecS Int 2 -> Image 1 (Color (VecS Float 4)) -> Texture
2751testdata/Builtins.lc 546:20-546:23 Nat -> Type->Type
2752testdata/Builtins.lc 546:20-546:25 Type->Type
2753testdata/Builtins.lc 546:20-546:29 Type
2754testdata/Builtins.lc 546:24-546:25 V1
2755testdata/Builtins.lc 546:26-546:29 Type
2756testdata/Builtins.lc 547:20-547:25 Nat -> Type->Type
2757testdata/Builtins.lc 547:20-547:27 Type->Type
2758testdata/Builtins.lc 547:20-547:49 Type
2759testdata/Builtins.lc 547:20-548:27 Type
2760testdata/Builtins.lc 547:26-547:27 V1
2761testdata/Builtins.lc 547:28-547:49 Type
2762testdata/Builtins.lc 547:29-547:34 Type->Type
2763testdata/Builtins.lc 547:35-547:48 Type
2764testdata/Builtins.lc 547:36-547:39 Nat -> Type->Type
2765testdata/Builtins.lc 547:36-547:41 Type->Type
2766testdata/Builtins.lc 547:40-547:41 V1
2767testdata/Builtins.lc 547:42-547:47 Type
2768testdata/Builtins.lc 548:20-548:27 Type
2769testdata/Builtins.lc 550:6-550:12 Type
2770testdata/Builtins.lc 550:6-552:17 Type
2771testdata/Builtins.lc 551:5-551:16 Filter
2772testdata/Builtins.lc 552:5-552:17 Filter
2773testdata/Builtins.lc 554:6-554:14 Type
2774testdata/Builtins.lc 554:6-557:16 Type
2775testdata/Builtins.lc 555:5-555:11 EdgeMode
2776testdata/Builtins.lc 556:5-556:19 EdgeMode
2777testdata/Builtins.lc 557:5-557:16 EdgeMode
2778testdata/Builtins.lc 559:6-559:13 Type
2779testdata/Builtins.lc 559:6-559:23 Type
2780testdata/Builtins.lc 559:6-559:47 Type
2781testdata/Builtins.lc 559:16-559:23 Filter -> EdgeMode -> Texture->Sampler | Sampler | Type
2782testdata/Builtins.lc 559:24-559:30 Type
2783testdata/Builtins.lc 559:31-559:39 Type
2784testdata/Builtins.lc 559:40-559:47 Type
2785testdata/Builtins.lc 562:1-562:10 Sampler -> VecS Float 2 -> VecS Float 4
2786testdata/Builtins.lc 562:14-562:21 Type
2787testdata/Builtins.lc 562:25-562:28 Nat -> Type->Type
2788testdata/Builtins.lc 562:25-562:30 Type->Type
2789testdata/Builtins.lc 562:25-562:36 Type
2790testdata/Builtins.lc 562:25-562:51 Type
2791testdata/Builtins.lc 562:29-562:30 V1
2792testdata/Builtins.lc 562:31-562:36 Type
2793testdata/Builtins.lc 562:40-562:43 Nat -> Type->Type
2794testdata/Builtins.lc 562:40-562:45 Type->Type
2795testdata/Builtins.lc 562:40-562:51 Type
2796testdata/Builtins.lc 562:44-562:45 V1
2797testdata/Builtins.lc 562:46-562:51 Type
2798testdata/Builtins.lc 565:1-565:15 {a} -> {b} -> a -> b -> Tuple2 a b
2799testdata/Builtins.lc 565:24-565:32 Tuple2 V3 V1
2800testdata/Builtins.lc 565:25-565:28 V5
2801testdata/Builtins.lc 565:30-565:31 V2
2802testdata/Builtins.lc 566:1-566:8 {a:Nat} -> {b} -> FrameBuffer a b -> Tuple2 (FragOps' b) (List (Vector a (Maybe (SimpleFragment (RemSemantics b))))) -> FrameBuffer a b
2803testdata/Builtins.lc 566:13-566:21 V3
2804testdata/Builtins.lc 566:13-566:46 FrameBuffer V1 V0
2805testdata/Builtins.lc 566:25-566:35 {a:Nat} -> {b} -> FragOps' b -> List (Vector a (Maybe (SimpleFragment (RemSemantics b)))) -> FrameBuffer a b -> FrameBuffer a b
2806testdata/Builtins.lc 566:25-566:39 List (Vector V1 (Maybe (SimpleFragment (RemSemantics V0)))) -> FrameBuffer V2 V1 -> FrameBuffer V3 V2
2807testdata/Builtins.lc 566:25-566:43 FrameBuffer V1 V0 -> FrameBuffer V2 V1
2808testdata/Builtins.lc 566:25-566:46 FrameBuffer V1 V0 | V2 -> V2->V2 | V2->V2
2809testdata/Builtins.lc 566:36-566:39 V6
2810testdata/Builtins.lc 566:40-566:43 V5
2811testdata/Builtins.lc 566:44-566:46 V7
2812testdata/Builtins.lc 567:1-567:12 {a:Nat} -> {b} -> FrameBuffer a b -> Output
2813testdata/Builtins.lc 567:15-567:24 {a:Nat} -> {b} -> FrameBuffer a b -> Output
2814testdata/Builtins.lc 568:1-568:11 {a:Nat} -> {b} -> {c} -> {d : SameLayerCounts c} -> {e : PreFrameBuffer a b ~ TFFrameBuffer c} -> c -> FrameBuffer a b
2815testdata/Builtins.lc 568:14-568:25 {a:Nat} -> {b} -> {c} -> {d : SameLayerCounts c} -> {e : PreFrameBuffer a b ~ TFFrameBuffer c} -> c -> FrameBuffer a b
2816testdata/Builtins.lc 569:1-569:16 Float -> Image 1 (Depth Float)
2817testdata/Builtins.lc 569:19-569:29 {a:Nat} -> Float -> Image a (Depth Float)
2818testdata/Builtins.lc 569:19-569:32 Float -> Image 1 (Depth Float)
2819testdata/Builtins.lc 569:31-569:32 V1
2820testdata/Builtins.lc 570:1-570:16 {a:Nat} -> {b} -> {c} -> {d : Num b} -> {e : c ~ VecScalar a b} -> c -> Image 1 (Color c)
2821testdata/Builtins.lc 570:19-570:29 {a:Nat} -> {b:Nat} -> {c} -> {d} -> {e : Num c} -> {f : d ~ VecScalar b c} -> d -> Image a (Color d)
2822testdata/Builtins.lc 570:19-570:32 {a:Nat} -> {b} -> {c} -> {d : Num b} -> {e : c ~ VecScalar a b} -> c -> Image 1 (Color c)
2823testdata/Builtins.lc 570:31-570:32 V1
diff --git a/testdata/HyperbolicParaboloic.out b/testdata/HyperbolicParaboloic.out
index 2ae3a36a..c24e8302 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 [("m1",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 m1 ;\nsmooth out vec4 vv0 ;\nvoid main() {\nvv0 = vec4 ( ( m1 ).x,( m1 ).y,( m1 ).z,1.0 );\ngl_Position = ( ( MVP ) * ( vec4 ( ( ( Mouse ).y ) * ( ( m1 ).x ),( ( ( 0.5 ) * ( ( Mouse ).x ) ) * ( ( m1 ).x ) ) * ( ( m1 ).y ),( ( Mouse ).y ) * ( ( m1 ).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 vv0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = vv0;\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 [("s1",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 s1 ;\nsmooth out vec4 vv0 ;\nvoid main() {\nvv0 = vec4 ( ( s1 ).x,( s1 ).y,( s1 ).z,1.0 );\ngl_Position = ( ( MVP ) * ( vec4 ( ( ( Mouse ).y ) * ( ( s1 ).x ),( ( ( 0.5 ) * ( ( Mouse ).x ) ) * ( ( s1 ).x ) ) * ( ( s1 ).y ),( ( Mouse ).y ) * ( ( s1 ).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 vv0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = vv0;\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 6c8dce2f..e686d4b3 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 [("m1",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 m1 ;\nsmooth out vec4 vv0 ;\nvoid main() {\nvv0 = vec4 ( ( m1 ).x,( m1 ).y,( m1 ).z,1.0 );\ngl_Position = ( ( MVP ) * ( vec4 ( ( ( 2.0 ) * ( ( Mouse ).y ) ) * ( sin ( ( ( 0.7 ) * ( ( m1 ).x ) ) + ( ( ( Mouse ).x ) * ( ( m1 ).y ) ) ) ),( m1 ).y,( ( 2.0 ) * ( ( Mouse ).y ) ) * ( cos ( ( ( 0.7 ) * ( ( m1 ).x ) ) + ( ( ( Mouse ).x ) * ( ( m1 ).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 vv0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = vv0;\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 [("s1",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 s1 ;\nsmooth out vec4 vv0 ;\nvoid main() {\nvv0 = vec4 ( ( s1 ).x,( s1 ).y,( s1 ).z,1.0 );\ngl_Position = ( ( MVP ) * ( vec4 ( ( ( 2.0 ) * ( ( Mouse ).y ) ) * ( sin ( ( ( 0.7 ) * ( ( s1 ).x ) ) + ( ( ( Mouse ).x ) * ( ( s1 ).y ) ) ) ),( s1 ).y,( ( 2.0 ) * ( ( Mouse ).y ) ) * ( cos ( ( ( 0.7 ) * ( ( s1 ).x ) ) + ( ( ( Mouse ).x ) * ( ( s1 ).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 vv0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = vv0;\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/NewStyle.out b/testdata/NewStyle.out
index 24cf5cb0..e03f52cf 100644
--- a/testdata/NewStyle.out
+++ b/testdata/NewStyle.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 [("n1",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 n1 ;\nsmooth out vec4 vv0 ;\nvoid main() {\nvv0 = n1;\ngl_Position = ( ( MVP ) * ( n1 ) ) * ( 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 vv0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = vv0;\n}\n"}], slots = [Slot {slotName = "stream4", slotStreams = fromList [("position4",V4F)], 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.1 0.0 0.2 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))]}),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 [("t1",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 t1 ;\nsmooth out vec4 vv0 ;\nvoid main() {\nvv0 = t1;\ngl_Position = ( ( MVP ) * ( t1 ) ) * ( 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 vv0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = vv0;\n}\n"}], slots = [Slot {slotName = "stream4", slotStreams = fromList [("position4",V4F)], 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.1 0.0 0.2 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))]}),RenderSlot 0]} \ No newline at end of file
diff --git a/testdata/Prelude.out b/testdata/Prelude.out
index 6b6550ad..47b2cede 100644
--- a/testdata/Prelude.out
+++ b/testdata/Prelude.out
@@ -149,338 +149,397 @@ testdata/Prelude.lc 56:32-56:33 V12
149testdata/Prelude.lc 56:34-56:35 V13 149testdata/Prelude.lc 56:34-56:35 V13
150testdata/Prelude.lc 56:36-56:37 V10 150testdata/Prelude.lc 56:36-56:37 V10
151testdata/Prelude.lc 56:39-56:41 List V7 151testdata/Prelude.lc 56:39-56:41 List V7
152testdata/Prelude.lc 58:1-58:6 {a} -> {b} -> (b -> a->a) -> a -> List b -> a 152testdata/Prelude.lc 58:1-58:7 {a} -> (a -> a->a) -> List a -> a
153testdata/Prelude.lc 58:16-58:17 V5 153testdata/Prelude.lc 58:11-58:16 V2
154testdata/Prelude.lc 58:16-59:39 List V1 -> V6 | V0->V1 154testdata/Prelude.lc 58:11-58:32 V0
155testdata/Prelude.lc 59:21-59:22 V8 155testdata/Prelude.lc 58:20-58:25 {a} -> {b} -> (b -> a->a) -> a -> List b -> a
156testdata/Prelude.lc 59:21-59:39 List V1 -> V6 | V0 -> List V1 -> V6 156testdata/Prelude.lc 58:20-58:27 V1 -> List V1 -> V3
157testdata/Prelude.lc 59:23-59:24 V5 157testdata/Prelude.lc 58:20-58:29 List V0 -> V5
158testdata/Prelude.lc 59:26-59:31 V13 158testdata/Prelude.lc 58:20-58:32 List V2 -> V2 | V1 -> List V2 -> V2 | V2
159testdata/Prelude.lc 59:32-59:33 V9->V7 159testdata/Prelude.lc 58:26-58:27 V9
160testdata/Prelude.lc 59:34-59:35 V14 160testdata/Prelude.lc 58:28-58:29 V5
161testdata/Prelude.lc 59:36-59:38 List V10 161testdata/Prelude.lc 58:30-58:32 List V3
162testdata/Prelude.lc 61:1-61:7 {a} -> (a -> a->a) -> List a -> a 162testdata/Prelude.lc 60:1-60:6 {a} -> List a -> Tuple2 (List a) (List a)
163testdata/Prelude.lc 61:11-61:16 V2 163testdata/Prelude.lc 60:12-60:20 Tuple2 (List V1) (List V0)
164testdata/Prelude.lc 61:11-61:32 V0 164testdata/Prelude.lc 60:12-61:55 List V1 -> Tuple2 (List V2) (List V1) | V0->V1
165testdata/Prelude.lc 61:20-61:25 {a} -> {b} -> (b -> a->a) -> a -> List b -> a 165testdata/Prelude.lc 60:13-60:15 {a} -> List a
166testdata/Prelude.lc 61:20-61:27 V1 -> List V1 -> V3 166testdata/Prelude.lc 60:17-60:19 {a} -> List a
167testdata/Prelude.lc 61:20-61:29 List V0 -> V5 167testdata/Prelude.lc 61:17-61:28 Tuple2 (List V8) V2
168testdata/Prelude.lc 61:20-61:32 List V2 -> V2 | V1 -> List V2 -> V2 | V2 168testdata/Prelude.lc 61:17-61:55 List V3 -> Tuple2 (List V3) (List V2) | V2 -> List V3 -> Tuple2 (List V3) (List V2)
169testdata/Prelude.lc 61:26-61:27 V9 169testdata/Prelude.lc 61:18-61:19 V12
170testdata/Prelude.lc 61:28-61:29 V5 170testdata/Prelude.lc 61:18-61:20 List V11 -> List V12
171testdata/Prelude.lc 61:30-61:32 List V3 171testdata/Prelude.lc 61:18-61:23 List V9
172testdata/Prelude.lc 63:6-63:8 {a} -> List a -> List a -> List a 172testdata/Prelude.lc 61:19-61:20 {a} -> a -> List a -> List a
173testdata/Prelude.lc 63:14-63:16 V3 173testdata/Prelude.lc 61:21-61:23 V3
174testdata/Prelude.lc 63:14-64:26 List V0 -> List V1 | V0->V1 174testdata/Prelude.lc 61:25-61:27 V3
175testdata/Prelude.lc 64:14-64:15 V3 175testdata/Prelude.lc 61:37-61:39 V2 -> V2->V2 | V2->V2 | V4
176testdata/Prelude.lc 64:14-64:17 List V2 -> List V3 176testdata/Prelude.lc 61:37-61:43 Tuple2 V4 V3 | V3
177testdata/Prelude.lc 64:14-64:26 List V1 -> V4 | List V2 | V0 -> List V1 -> V4 177testdata/Prelude.lc 61:41-61:43 V2 -> V2->V2 | V2->V2 | V3
178testdata/Prelude.lc 64:16-64:17 {a} -> a -> List a -> List a 178testdata/Prelude.lc 61:47-61:52 V8
179testdata/Prelude.lc 64:18-64:20 List V5 179testdata/Prelude.lc 61:53-61:55 List V7
180testdata/Prelude.lc 64:21-64:23 V7 180testdata/Prelude.lc 63:1-63:8 {a} -> (a -> a->Ordering) -> List a -> List a -> List a
181testdata/Prelude.lc 64:24-64:26 List V6 181testdata/Prelude.lc 63:12-63:16 List V0
182testdata/Prelude.lc 66:1-66:7 {a} -> List (List a) -> List a 182testdata/Prelude.lc 63:12-67:21 List V0 | V0->V1
183testdata/Prelude.lc 66:10-66:15 {a} -> {b} -> (b -> a->a) -> a -> List b -> a 183testdata/Prelude.lc 63:19-63:23 List V2
184testdata/Prelude.lc 66:10-66:20 List V0 -> List (List V1) -> List V2 184testdata/Prelude.lc 63:19-67:21 List V1 -> V4 | List V2 | V0 -> List V1 -> V4
185testdata/Prelude.lc 66:10-66:23 List (List V0) -> List V1 185testdata/Prelude.lc 63:27-65:32 List V1 -> V9 | List V4 | V0 -> List V1 -> V9
186testdata/Prelude.lc 66:16-66:20 {a} -> List a -> List a -> List a 186testdata/Prelude.lc 63:27-67:21 List V2 -> List V3
187testdata/Prelude.lc 66:21-66:23 {a} -> List a 187testdata/Prelude.lc 63:32-63:33 V9
188testdata/Prelude.lc 68:1-68:4 {a} -> {b} -> a->b -> List a -> List b 188testdata/Prelude.lc 63:34-63:35 V7
189testdata/Prelude.lc 68:16-68:18 {a} -> List a 189testdata/Prelude.lc 63:36-63:37 V8
190testdata/Prelude.lc 68:16-69:30 List V1 -> List V1 | V0->V1 190testdata/Prelude.lc 64:5-64:7 V1
191testdata/Prelude.lc 69:16-69:17 V8 191testdata/Prelude.lc 64:5-65:32 List V5
192testdata/Prelude.lc 69:16-69:21 List V0 -> List V1 192testdata/Prelude.lc 64:11-64:12 V9
193testdata/Prelude.lc 69:16-69:30 List V2 | List V2 -> List V2 | V1 -> List V2 -> List V2 193testdata/Prelude.lc 64:11-64:13 List V8 -> List V9
194testdata/Prelude.lc 69:18-69:19 V7 194testdata/Prelude.lc 64:11-64:33 List V7
195testdata/Prelude.lc 69:20-69:21 {a} -> a -> List a -> List a 195testdata/Prelude.lc 64:11-65:32 List V6 -> Ordering -> List V8
196testdata/Prelude.lc 69:22-69:25 V8 196testdata/Prelude.lc 64:12-64:13 {a} -> a -> List a -> List a
197testdata/Prelude.lc 69:26-69:27 V6->V6 197testdata/Prelude.lc 64:14-64:21 V15
198testdata/Prelude.lc 69:28-69:30 List V7 198testdata/Prelude.lc 64:22-64:23 V16
199testdata/Prelude.lc 71:14-71:38 Type 199testdata/Prelude.lc 64:24-64:26 List V11
200testdata/Prelude.lc 71:15-71:16 V3 200testdata/Prelude.lc 64:27-64:33 List V8
201testdata/Prelude.lc 71:20-71:23 Type 201testdata/Prelude.lc 64:28-64:29 V9
202testdata/Prelude.lc 71:21-71:22 V2 202testdata/Prelude.lc 64:28-64:30 List V8 -> List V9
203testdata/Prelude.lc 71:28-71:38 Type 203testdata/Prelude.lc 64:29-64:30 {a} -> a -> List a -> List a
204testdata/Prelude.lc 71:29-71:30 Type 204testdata/Prelude.lc 64:30-64:32 List V8
205testdata/Prelude.lc 71:35-71:38 Type 205testdata/Prelude.lc 65:10-65:11 V5 | V7
206testdata/Prelude.lc 71:36-71:37 Type 206testdata/Prelude.lc 65:10-65:12 List V4 -> List V5 | List V6 -> List V7
207testdata/Prelude.lc 72:1-72:10 {a} -> {b} -> (a -> List b) -> List a -> List b 207testdata/Prelude.lc 65:10-65:32 List V6
208testdata/Prelude.lc 72:17-72:23 {a} -> List (List a) -> List a 208testdata/Prelude.lc 65:11-65:12 {a} -> a -> List a -> List a
209testdata/Prelude.lc 72:17-72:33 (V1 -> List V1) -> List V2 -> List V2 | List V2 | List V2 -> List V2 209testdata/Prelude.lc 65:13-65:20 V12 -> List V7 -> List V8 -> List V9
210testdata/Prelude.lc 72:24-72:33 List (List V2) 210testdata/Prelude.lc 65:13-65:22 List V6 -> List V7 -> List V8
211testdata/Prelude.lc 72:25-72:28 {a} -> {b} -> a->b -> List a -> List b 211testdata/Prelude.lc 65:13-65:29 List V6 -> List V7
212testdata/Prelude.lc 72:25-72:30 List V4 -> List (List V4) 212testdata/Prelude.lc 65:13-65:32 List V6
213testdata/Prelude.lc 72:29-72:30 V6 -> List V6 213testdata/Prelude.lc 65:21-65:22 V12
214testdata/Prelude.lc 72:31-72:32 List V3 214testdata/Prelude.lc 65:23-65:29 List V6
215testdata/Prelude.lc 74:1-74:6 {a} -> List a -> Tuple2 (List a) (List a) 215testdata/Prelude.lc 65:24-65:25 V7
216testdata/Prelude.lc 74:12-74:20 Tuple2 (List V1) (List V0) 216testdata/Prelude.lc 65:24-65:26 List V6 -> List V7
217testdata/Prelude.lc 74:12-75:55 List V1 -> Tuple2 (List V2) (List V1) | V0->V1 217testdata/Prelude.lc 65:25-65:26 {a} -> a -> List a -> List a
218testdata/Prelude.lc 74:13-74:15 {a} -> List a 218testdata/Prelude.lc 65:26-65:28 List V6
219testdata/Prelude.lc 74:17-74:19 {a} -> List a 219testdata/Prelude.lc 65:30-65:32 List V6
220testdata/Prelude.lc 75:17-75:28 Tuple2 (List V8) V2 220testdata/Prelude.lc 66:19-66:21 V3
221testdata/Prelude.lc 75:17-75:55 List V3 -> Tuple2 (List V3) (List V2) | V2 -> List V3 -> Tuple2 (List V3) (List V2) 221testdata/Prelude.lc 67:19-67:21 V8
222testdata/Prelude.lc 75:18-75:19 V12 222testdata/Prelude.lc 69:1-69:7 {a} -> (a -> a->Ordering) -> List a -> List a
223testdata/Prelude.lc 75:18-75:20 List V11 -> List V12 223testdata/Prelude.lc 69:15-69:17 {a} -> List a
224testdata/Prelude.lc 75:18-75:23 List V9 224testdata/Prelude.lc 69:15-71:71 List V1 -> List V2 | V0->V1
225testdata/Prelude.lc 75:19-75:20 {a} -> a -> List a -> List a 225testdata/Prelude.lc 70:16-70:19 List V4
226testdata/Prelude.lc 75:21-75:23 V3 226testdata/Prelude.lc 70:16-71:71 List V1 -> List V6 | List V2 -> List V2 | List V3 | V1 -> List V2 -> List V2
227testdata/Prelude.lc 75:25-75:27 V3 227testdata/Prelude.lc 70:17-70:18 V6
228testdata/Prelude.lc 75:37-75:39 V2 -> V2->V2 | V2->V2 | V4 228testdata/Prelude.lc 71:15-71:22 {a} -> {b} -> {c} -> (a -> b->c) -> Tuple2 a b -> c
229testdata/Prelude.lc 75:37-75:43 Tuple2 V4 V3 | V3 229testdata/Prelude.lc 71:15-71:34 Tuple2 (List V0) (List V0) -> List V1
230testdata/Prelude.lc 75:41-75:43 V2 -> V2->V2 | V2->V2 | V3 230testdata/Prelude.lc 71:15-71:71 List V1 -> List V6 | List V7 | V0 -> List V1 -> List V6
231testdata/Prelude.lc 75:47-75:52 V8 231testdata/Prelude.lc 71:23-71:34 List V0 -> List V1 -> List V2
232testdata/Prelude.lc 75:53-75:55 List V7 232testdata/Prelude.lc 71:24-71:31 {a} -> (a -> a->Ordering) -> List a -> List a -> List a
233testdata/Prelude.lc 77:1-77:8 {a} -> (a -> a->Ordering) -> List a -> List a -> List a 233testdata/Prelude.lc 71:32-71:33 V14
234testdata/Prelude.lc 77:12-77:16 List V0 234testdata/Prelude.lc 71:35-71:71 Tuple2 (List V7) (List V7)
235testdata/Prelude.lc 77:12-81:21 List V0 | V0->V1 235testdata/Prelude.lc 71:36-71:59 Tuple2 V1 V1 -> Tuple2 V1 V1
236testdata/Prelude.lc 77:19-77:23 List V2 236testdata/Prelude.lc 71:37-71:43 V15
237testdata/Prelude.lc 77:19-81:21 List V1 -> V4 | List V2 | V0 -> List V1 -> V4 237testdata/Prelude.lc 71:37-71:49 V2->V1 -> Tuple2 V4 V3 -> Tuple2 V3 V2
238testdata/Prelude.lc 77:27-79:32 List V1 -> V9 | List V4 | V0 -> List V1 -> V9 238testdata/Prelude.lc 71:44-71:45 V13 -> V14->Ordering
239testdata/Prelude.lc 77:27-81:21 List V2 -> List V3 239testdata/Prelude.lc 71:46-71:49 {a} -> {b} -> {c} -> {d} -> a->c -> b->d -> Tuple2 a b -> Tuple2 c d
240testdata/Prelude.lc 77:32-77:33 V9 240testdata/Prelude.lc 71:50-71:56 (V10 -> V11->Ordering) -> V4->V3
241testdata/Prelude.lc 77:34-77:35 V7 241testdata/Prelude.lc 71:50-71:58 V1->V1
242testdata/Prelude.lc 77:36-77:37 V8 242testdata/Prelude.lc 71:57-71:58 V8 -> V9->Ordering
243testdata/Prelude.lc 78:5-78:7 V1 243testdata/Prelude.lc 71:60-71:70 Tuple2 (List V0) (List V0)
244testdata/Prelude.lc 78:5-79:32 List V5 244testdata/Prelude.lc 71:61-71:66 {a} -> List a -> Tuple2 (List a) (List a)
245testdata/Prelude.lc 78:11-78:12 V9 245testdata/Prelude.lc 71:67-71:69 V10
246testdata/Prelude.lc 78:11-78:13 List V8 -> List V9 246testdata/Prelude.lc 73:12-73:32 Type
247testdata/Prelude.lc 78:11-78:33 List V7 247testdata/Prelude.lc 73:12-74:35 V0->V1 | {a} -> a->a -> a -> List a
248testdata/Prelude.lc 78:11-79:32 List V6 -> Ordering -> List V8 248testdata/Prelude.lc 73:13-73:14 V1
249testdata/Prelude.lc 78:12-78:13 {a} -> a -> List a -> List a 249testdata/Prelude.lc 73:18-73:19 Type
250testdata/Prelude.lc 78:14-78:21 V15 250testdata/Prelude.lc 73:24-73:25 Type
251testdata/Prelude.lc 78:22-78:23 V16 251testdata/Prelude.lc 73:24-73:32 Type
252testdata/Prelude.lc 78:24-78:26 List V11 252testdata/Prelude.lc 73:29-73:32 Type
253testdata/Prelude.lc 78:27-78:33 List V8 253testdata/Prelude.lc 73:30-73:31 Type
254testdata/Prelude.lc 78:28-78:29 V9 254testdata/Prelude.lc 74:1-74:8 {a} -> a->a -> a -> List a
255testdata/Prelude.lc 78:28-78:30 List V8 -> List V9 255testdata/Prelude.lc 74:16-74:17 V3
256testdata/Prelude.lc 78:29-78:30 {a} -> a -> List a -> List a 256testdata/Prelude.lc 74:16-74:19 List V2 -> List V3
257testdata/Prelude.lc 78:30-78:32 List V8 257testdata/Prelude.lc 74:16-74:35 List V2 | V0->V1 -> V1 -> List V2 | V1 -> List V2
258testdata/Prelude.lc 79:10-79:11 V5 | V7 258testdata/Prelude.lc 74:18-74:19 {a} -> a -> List a -> List a
259testdata/Prelude.lc 79:10-79:12 List V4 -> List V5 | List V6 -> List V7 259testdata/Prelude.lc 74:20-74:27 {a} -> a->a -> a -> List a
260testdata/Prelude.lc 79:10-79:32 List V6 260testdata/Prelude.lc 74:20-74:29 V2 -> List V3
261testdata/Prelude.lc 79:11-79:12 {a} -> a -> List a -> List a 261testdata/Prelude.lc 74:20-74:35 List V2
262testdata/Prelude.lc 79:13-79:20 V12 -> List V7 -> List V8 -> List V9 262testdata/Prelude.lc 74:28-74:29 V3->V4
263testdata/Prelude.lc 79:13-79:22 List V6 -> List V7 -> List V8 263testdata/Prelude.lc 74:30-74:35 V2
264testdata/Prelude.lc 79:13-79:29 List V6 -> List V7 264testdata/Prelude.lc 74:31-74:32 V2->V3
265testdata/Prelude.lc 79:13-79:32 List V6 265testdata/Prelude.lc 74:33-74:34 V2
266testdata/Prelude.lc 79:21-79:22 V12 266testdata/Prelude.lc 76:1-76:4 {a} -> {b} -> Tuple2 a b -> a
267testdata/Prelude.lc 79:23-79:29 List V6 267testdata/Prelude.lc 76:6-76:10 V3
268testdata/Prelude.lc 79:24-79:25 V7 268testdata/Prelude.lc 76:6-76:15 V1
269testdata/Prelude.lc 79:24-79:26 List V6 -> List V7 269testdata/Prelude.lc 76:14-76:15 V2 -> V2->V2 | V2->V2 | V4
270testdata/Prelude.lc 79:25-79:26 {a} -> a -> List a -> List a 270testdata/Prelude.lc 77:1-77:4 {a} -> {b} -> Tuple2 a b -> b
271testdata/Prelude.lc 79:26-79:28 List V6 271testdata/Prelude.lc 77:6-77:10 V3
272testdata/Prelude.lc 79:30-79:32 List V6 272testdata/Prelude.lc 77:6-77:15 V0
273testdata/Prelude.lc 80:19-80:21 V3 273testdata/Prelude.lc 77:14-77:15 V2 -> V2->V2 | V2->V2 | V3
274testdata/Prelude.lc 81:19-81:21 V8 274testdata/Prelude.lc 79:12-81:34 List Type -> Type | V0->V1
275testdata/Prelude.lc 83:1-83:7 {a} -> (a -> a->Ordering) -> List a -> List a 275testdata/Prelude.lc 79:13-79:17 Type
276testdata/Prelude.lc 83:15-83:17 {a} -> List a 276testdata/Prelude.lc 79:22-79:26 Type
277testdata/Prelude.lc 83:15-85:71 List V1 -> List V2 | V0->V1 277testdata/Prelude.lc 80:1-80:8 List Type -> Type
278testdata/Prelude.lc 84:16-84:19 List V4 278testdata/Prelude.lc 80:14-80:17 Type
279testdata/Prelude.lc 84:16-85:71 List V1 -> List V6 | List V2 -> List V2 | List V3 | V1 -> List V2 -> List V2 279testdata/Prelude.lc 80:14-81:34 List Type -> Type | Type
280testdata/Prelude.lc 84:17-84:18 V6 280testdata/Prelude.lc 81:18-81:34 List V1 -> Type | Type | V0 -> List V1 -> Type
281testdata/Prelude.lc 85:15-85:22 {a} -> {b} -> {c} -> (a -> b->c) -> Tuple2 a b -> c 281testdata/Prelude.lc 81:20-81:21 V2
282testdata/Prelude.lc 85:15-85:34 Tuple2 (List V0) (List V0) -> List V1 282testdata/Prelude.lc 81:23-81:30 List Type -> Type
283testdata/Prelude.lc 85:15-85:71 List V1 -> List V6 | List V7 | V0 -> List V1 -> List V6 283testdata/Prelude.lc 81:23-81:33 Type
284testdata/Prelude.lc 85:23-85:34 List V0 -> List V1 -> List V2 284testdata/Prelude.lc 81:31-81:33 List Type
285testdata/Prelude.lc 85:24-85:31 {a} -> (a -> a->Ordering) -> List a -> List a -> List a 285testdata/Prelude.lc 83:6-83:13 List (Tuple2 String Type) -> Type | Type
286testdata/Prelude.lc 85:32-85:33 V14 286testdata/Prelude.lc 83:6-84:17 Type
287testdata/Prelude.lc 85:35-85:71 Tuple2 (List V7) (List V7) 287testdata/Prelude.lc 83:6-84:40 Type
288testdata/Prelude.lc 85:36-85:59 Tuple2 V1 V1 -> Tuple2 V1 V1 288testdata/Prelude.lc 83:22-83:36 Type
289testdata/Prelude.lc 85:37-85:43 V15 289testdata/Prelude.lc 83:23-83:29 Type
290testdata/Prelude.lc 85:37-85:49 V2->V1 -> Tuple2 V4 V3 -> Tuple2 V3 V2 290testdata/Prelude.lc 83:31-83:35 Type
291testdata/Prelude.lc 85:44-85:45 V13 -> V14->Ordering 291testdata/Prelude.lc 84:7-84:17 RecordC V2 | Type | {a : List (Tuple2 String Type)} -> 'tuptype ('map (Tuple2 String Type) Type ('snd String Type) a) -> RecordC a
292testdata/Prelude.lc 85:46-85:49 {a} -> {b} -> {c} -> {d} -> a->c -> b->d -> Tuple2 a b -> Tuple2 c d 292testdata/Prelude.lc 84:18-84:40 Type
293testdata/Prelude.lc 85:50-85:56 (V10 -> V11->Ordering) -> V4->V3 293testdata/Prelude.lc 84:19-84:26 List Type -> Type
294testdata/Prelude.lc 85:50-85:58 V1->V1 294testdata/Prelude.lc 84:27-84:39 List Type
295testdata/Prelude.lc 85:57-85:58 V8 -> V9->Ordering 295testdata/Prelude.lc 84:28-84:31 {a} -> {b} -> a->b -> List a -> List b
296testdata/Prelude.lc 85:60-85:70 Tuple2 (List V0) (List V0) 296testdata/Prelude.lc 84:28-84:35 List (Tuple2 V0 V1) -> List V2
297testdata/Prelude.lc 85:61-85:66 {a} -> List a -> Tuple2 (List a) (List a) 297testdata/Prelude.lc 84:32-84:35 {a} -> {b} -> Tuple2 a b -> b
298testdata/Prelude.lc 85:67-85:69 V10 298testdata/Prelude.lc 84:36-84:38 List (Tuple2 String Type)
299testdata/Prelude.lc 87:12-87:32 Type 299testdata/Prelude.lc 86:1-86:6 V2
300testdata/Prelude.lc 87:12-88:35 V0->V1 | {a} -> a->a -> a -> List a 300testdata/Prelude.lc 86:1-87:18 Bool
301testdata/Prelude.lc 87:13-87:14 V1 301testdata/Prelude.lc 86:7-86:10 Bool -> Bool->Bool
302testdata/Prelude.lc 87:18-87:19 Type 302testdata/Prelude.lc 86:15-86:16 V2
303testdata/Prelude.lc 87:24-87:25 Type 303testdata/Prelude.lc 86:15-87:18 Bool->Bool
304testdata/Prelude.lc 87:24-87:32 Type 304testdata/Prelude.lc 87:14-87:18 Bool
305testdata/Prelude.lc 87:29-87:32 Type 305testdata/Prelude.lc 91:1-91:5 V2
306testdata/Prelude.lc 87:30-87:31 Type 306testdata/Prelude.lc 91:1-92:20 Bool
307testdata/Prelude.lc 88:1-88:8 {a} -> a->a -> a -> List a 307testdata/Prelude.lc 91:6-91:9 Bool -> Bool->Bool
308testdata/Prelude.lc 88:16-88:17 V3 308testdata/Prelude.lc 91:14-91:15 V1
309testdata/Prelude.lc 88:16-88:19 List V2 -> List V3 309testdata/Prelude.lc 91:14-92:20 Bool->Bool
310testdata/Prelude.lc 88:16-88:35 List V2 | V0->V1 -> V1 -> List V2 | V1 -> List V2 310testdata/Prelude.lc 92:15-92:20 Bool
311testdata/Prelude.lc 88:18-88:19 {a} -> a -> List a -> List a 311testdata/Prelude.lc 129:1-129:13 {a} -> {b} -> a->b
312testdata/Prelude.lc 88:20-88:27 {a} -> a->a -> a -> List a 312testdata/Prelude.lc 129:30-129:31 V3
313testdata/Prelude.lc 88:20-88:29 V2 -> List V3 313testdata/Prelude.lc 129:30-129:36 Type
314testdata/Prelude.lc 88:20-88:35 List V2 314testdata/Prelude.lc 129:35-129:36 Type | V2
315testdata/Prelude.lc 88:28-88:29 V3->V4 315testdata/Prelude.lc 131:1-131:7 {a} -> {b : Eq a} -> a -> Type -> List (Tuple2 a Type) -> Type
316testdata/Prelude.lc 88:30-88:35 V2 316testdata/Prelude.lc 131:17-131:23 String->Type
317testdata/Prelude.lc 88:31-88:32 V2->V3 317testdata/Prelude.lc 131:17-131:26 Type
318testdata/Prelude.lc 88:33-88:34 V2 318testdata/Prelude.lc 131:17-132:70 List (Tuple2 V5 Type) -> Type | V0->V1
319testdata/Prelude.lc 90:1-90:4 {a} -> {b} -> Tuple2 a b -> a 319testdata/Prelude.lc 131:24-131:26 String
320testdata/Prelude.lc 90:6-90:10 V3 320testdata/Prelude.lc 132:29-132:70 List V1 -> Type | Type | V0 -> List V1 -> Type | V2 -> V2->V2 | V2->V2
321testdata/Prelude.lc 90:6-90:15 V1 321testdata/Prelude.lc 132:32-132:33 V16
322testdata/Prelude.lc 90:14-90:15 V2 -> V2->V2 | V2->V2 | V4 322testdata/Prelude.lc 132:32-132:36 V15->Bool
323testdata/Prelude.lc 91:1-91:4 {a} -> {b} -> Tuple2 a b -> b 323testdata/Prelude.lc 132:32-132:39 Bool
324testdata/Prelude.lc 91:6-91:10 V3 324testdata/Prelude.lc 132:32-132:51 Type->Type
325testdata/Prelude.lc 91:6-91:15 V0 325testdata/Prelude.lc 132:34-132:36 {a} -> {b : Eq a} -> a -> a->Bool
326testdata/Prelude.lc 91:14-91:15 V2 -> V2->V2 | V2->V2 | V3 326testdata/Prelude.lc 132:37-132:39 V6
327testdata/Prelude.lc 93:12-95:34 List Type -> Type | V0->V1 327testdata/Prelude.lc 132:45-132:46 V12
328testdata/Prelude.lc 93:13-93:17 Type 328testdata/Prelude.lc 132:45-132:48 Type->Type
329testdata/Prelude.lc 93:22-93:26 Type 329testdata/Prelude.lc 132:45-132:51 Type
330testdata/Prelude.lc 94:1-94:8 List Type -> Type 330testdata/Prelude.lc 132:47-132:48 Type -> Type->Type
331testdata/Prelude.lc 94:14-94:17 Type 331testdata/Prelude.lc 132:49-132:51 V4
332testdata/Prelude.lc 94:14-95:34 List Type -> Type | Type 332testdata/Prelude.lc 132:57-132:63 V12
333testdata/Prelude.lc 95:18-95:34 List V1 -> Type | Type | V0 -> List V1 -> Type 333testdata/Prelude.lc 132:64-132:65 V13
334testdata/Prelude.lc 95:20-95:21 V2 334testdata/Prelude.lc 132:66-132:67 Type
335testdata/Prelude.lc 95:23-95:30 List Type -> Type 335testdata/Prelude.lc 132:68-132:70 List V9
336testdata/Prelude.lc 95:23-95:33 Type 336testdata/Prelude.lc 135:12-137:164 V0->V1 | {a} -> {b : List (Tuple2 String Type)} -> c:String -> {d : 'isKeyC String 'TT c a b} -> RecordC b -> a
337testdata/Prelude.lc 95:31-95:33 List Type 337testdata/Prelude.lc 135:28-135:105 Type
338testdata/Prelude.lc 97:6-97:13 List (Tuple2 String Type) -> Type | Type 338testdata/Prelude.lc 135:29-135:43 Type
339testdata/Prelude.lc 97:6-98:17 Type 339testdata/Prelude.lc 135:30-135:36 Type
340testdata/Prelude.lc 97:6-98:40 Type 340testdata/Prelude.lc 135:38-135:42 Type
341testdata/Prelude.lc 97:22-97:36 Type 341testdata/Prelude.lc 135:48-135:105 Type
342testdata/Prelude.lc 97:23-97:29 Type 342testdata/Prelude.lc 135:61-135:67 Type
343testdata/Prelude.lc 97:31-97:35 Type 343testdata/Prelude.lc 135:72-135:79 {a} -> {b : Eq a} -> a -> Type -> List (Tuple2 a Type) -> Type
344testdata/Prelude.lc 98:7-98:17 RecordC V2 | Type | {a : List (Tuple2 String Type)} -> 'tuptype ('map (Tuple2 String Type) Type ('snd String Type) a) -> RecordC a 344testdata/Prelude.lc 135:72-135:81 Type -> List (Tuple2 String Type) -> Type
345testdata/Prelude.lc 98:18-98:40 Type 345testdata/Prelude.lc 135:72-135:83 List (Tuple2 String Type) -> Type
346testdata/Prelude.lc 98:19-98:26 List Type -> Type 346testdata/Prelude.lc 135:72-135:86 Type
347testdata/Prelude.lc 98:27-98:39 List Type 347testdata/Prelude.lc 135:72-135:105 Type
348testdata/Prelude.lc 98:28-98:31 {a} -> {b} -> a->b -> List a -> List b 348testdata/Prelude.lc 135:80-135:81 String
349testdata/Prelude.lc 98:28-98:35 List (Tuple2 V0 V1) -> List V2 349testdata/Prelude.lc 135:82-135:83 V3
350testdata/Prelude.lc 98:32-98:35 {a} -> {b} -> Tuple2 a b -> b 350testdata/Prelude.lc 135:84-135:86 List (Tuple2 String Type)
351testdata/Prelude.lc 98:36-98:38 List (Tuple2 String Type) 351testdata/Prelude.lc 135:90-135:97 List (Tuple2 String Type) -> Type
352testdata/Prelude.lc 100:1-100:6 V2 352testdata/Prelude.lc 135:90-135:100 Type
353testdata/Prelude.lc 100:1-101:18 Bool 353testdata/Prelude.lc 135:90-135:105 Type
354testdata/Prelude.lc 100:7-100:10 Bool -> Bool->Bool 354testdata/Prelude.lc 135:98-135:100 List (Tuple2 String Type)
355testdata/Prelude.lc 100:15-100:16 V2 355testdata/Prelude.lc 135:104-135:105 Type
356testdata/Prelude.lc 100:15-101:18 Bool->Bool 356testdata/Prelude.lc 136:1-136:8 {a} -> {b : List (Tuple2 String Type)} -> c:String -> {d : 'isKeyC String 'TT c a b} -> RecordC b -> a
357testdata/Prelude.lc 101:14-101:18 Bool 357testdata/Prelude.lc 136:15-136:26 List (Tuple2 String Type)
358testdata/Prelude.lc 105:1-105:5 V2 358testdata/Prelude.lc 136:15-137:164 RecordC V2 -> V4 | V4 | a:String -> {b : 'isKeyC String 'TT a V2 V1} -> RecordC V2 -> V4 | {a : 'isKeyC String 'TT V0 V2 V1} -> RecordC V2 -> V4 | {a : List (Tuple2 String Type)} -> b:String -> {c : 'isKeyC String 'TT b V2 a} -> RecordC a -> V4 | {a} -> {b : List (Tuple2 String Type)} -> c:String -> {d : 'isKeyC String 'TT c a b} -> RecordC b -> a
359testdata/Prelude.lc 105:1-106:20 Bool 359testdata/Prelude.lc 136:45-136:47 RecordC V10
360testdata/Prelude.lc 105:6-105:9 Bool -> Bool->Bool 360testdata/Prelude.lc 136:45-137:164 List V2 -> V2 | V1 -> List V2 -> V2 | V10 | V2 -> V2->V2 | V2->V2 | V6
361testdata/Prelude.lc 105:14-105:15 V1 361testdata/Prelude.lc 136:51-136:52 String
362testdata/Prelude.lc 105:14-106:20 Bool->Bool 362testdata/Prelude.lc 136:51-136:55 String->Bool
363testdata/Prelude.lc 106:15-106:20 Bool 363testdata/Prelude.lc 136:51-136:58 Bool
364testdata/Prelude.lc 143:1-143:13 {a} -> {b} -> a->b 364testdata/Prelude.lc 136:51-137:164 'tuptype ('map (Tuple2 String Type) Type ('snd String Type) V1) -> V1 | V13
365testdata/Prelude.lc 143:30-143:31 V3 365testdata/Prelude.lc 136:53-136:55 {a} -> {b : Eq a} -> a -> a->Bool
366testdata/Prelude.lc 143:30-143:36 Type 366testdata/Prelude.lc 136:56-136:58 V6
367testdata/Prelude.lc 143:35-143:36 Type | V2 367testdata/Prelude.lc 136:61-136:64 {a} -> {b} -> Tuple2 a b -> a
368testdata/Prelude.lc 145:1-145:7 {a} -> {b : Eq a} -> a -> Type -> List (Tuple2 a Type) -> Type 368testdata/Prelude.lc 136:61-136:112 V15
369testdata/Prelude.lc 145:17-145:23 String->Type 369testdata/Prelude.lc 136:61-137:164 Bool->V16
370testdata/Prelude.lc 145:17-145:26 Type 370testdata/Prelude.lc 136:65-136:112 Tuple2 V15 ('tuptype ('map (Tuple2 String Type) Type ('snd String Type) V8))
371testdata/Prelude.lc 145:17-146:70 List (Tuple2 V5 Type) -> Type | V0->V1 371testdata/Prelude.lc 136:66-136:78 {a} -> {b} -> a->b
372testdata/Prelude.lc 145:24-145:26 String 372testdata/Prelude.lc 136:66-136:81 {a} -> V1->a
373testdata/Prelude.lc 146:29-146:70 List V1 -> Type | Type | V0 -> List V1 -> Type | V2 -> V2->V2 | V2->V2 373testdata/Prelude.lc 136:66-136:108 V0 -> Tuple2 V19 ('tuptype ('map (Tuple2 String Type) Type ('snd String Type) V12))
374testdata/Prelude.lc 146:32-146:33 V16 374testdata/Prelude.lc 136:83-136:108 Type
375testdata/Prelude.lc 146:32-146:36 V15->Bool 375testdata/Prelude.lc 136:84-136:85 Type
376testdata/Prelude.lc 146:32-146:39 Bool 376testdata/Prelude.lc 136:87-136:94 List Type -> Type
377testdata/Prelude.lc 146:32-146:51 Type->Type 377testdata/Prelude.lc 136:87-136:107 Type
378testdata/Prelude.lc 146:34-146:36 {a} -> {b : Eq a} -> a -> a->Bool 378testdata/Prelude.lc 136:95-136:107 List Type
379testdata/Prelude.lc 146:37-146:39 V6 379testdata/Prelude.lc 136:96-136:99 {a} -> {b} -> a->b -> List a -> List b
380testdata/Prelude.lc 146:45-146:46 V12 380testdata/Prelude.lc 136:96-136:103 List (Tuple2 V0 V1) -> List V2
381testdata/Prelude.lc 146:45-146:48 Type->Type 381testdata/Prelude.lc 136:100-136:103 {a} -> {b} -> Tuple2 a b -> b
382testdata/Prelude.lc 146:45-146:51 Type 382testdata/Prelude.lc 136:104-136:106 List (Tuple2 String Type)
383testdata/Prelude.lc 146:47-146:48 Type -> Type->Type 383testdata/Prelude.lc 136:109-136:111 'tuptype ('map (Tuple2 String Type) Type ('snd String Type) V3)
384testdata/Prelude.lc 146:49-146:51 V4 384testdata/Prelude.lc 137:51-137:58 {a} -> {b : List (Tuple2 String Type)} -> c:String -> {d : 'isKeyC String 'TT c a b} -> RecordC b -> a
385testdata/Prelude.lc 146:57-146:63 V12 385testdata/Prelude.lc 137:51-137:61 {a : List (Tuple2 String Type)} -> b:String -> {c : 'isKeyC String 'TT b V19 a} -> RecordC a -> V21
386testdata/Prelude.lc 146:64-146:65 V13 386testdata/Prelude.lc 137:51-137:65 a:String -> {b : 'isKeyC String 'TT a V17 V10} -> RecordC V11 -> V19
387testdata/Prelude.lc 146:66-146:67 Type 387testdata/Prelude.lc 137:51-137:67 {a : 'isKeyC String 'TT V14 V16 V9} -> RecordC V10 -> V18
388testdata/Prelude.lc 146:68-146:70 List V9 388testdata/Prelude.lc 137:51-137:97 RecordC V9 -> V17
389testdata/Prelude.lc 149:12-151:164 V0->V1 | {a} -> {b : List (Tuple2 String Type)} -> c:String -> {d : 'isKeyC String 'TT c a b} -> RecordC b -> a 389testdata/Prelude.lc 137:51-137:164 V15
390testdata/Prelude.lc 149:28-149:105 Type 390testdata/Prelude.lc 137:60-137:61 Type
391testdata/Prelude.lc 149:29-149:43 Type 391testdata/Prelude.lc 137:63-137:65 List V12
392testdata/Prelude.lc 149:30-149:36 Type 392testdata/Prelude.lc 137:66-137:67 String
393testdata/Prelude.lc 149:38-149:42 Type 393testdata/Prelude.lc 137:69-137:97 'isKeyC String 'TT V14 V16 V9
394testdata/Prelude.lc 149:48-149:105 Type 394testdata/Prelude.lc 137:70-137:79 {a}->a
395testdata/Prelude.lc 149:61-149:67 Type 395testdata/Prelude.lc 137:81-137:96 Type
396testdata/Prelude.lc 149:72-149:79 {a} -> {b : Eq a} -> a -> Type -> List (Tuple2 a Type) -> Type 396testdata/Prelude.lc 137:82-137:88 {a} -> {b : Eq a} -> a -> Type -> List (Tuple2 a Type) -> Type
397testdata/Prelude.lc 149:72-149:81 Type -> List (Tuple2 String Type) -> Type 397testdata/Prelude.lc 137:82-137:90 Type -> List (Tuple2 String Type) -> Type
398testdata/Prelude.lc 149:72-149:83 List (Tuple2 String Type) -> Type 398testdata/Prelude.lc 137:82-137:92 List (Tuple2 String Type) -> Type
399testdata/Prelude.lc 149:72-149:86 Type 399testdata/Prelude.lc 137:89-137:90 String
400testdata/Prelude.lc 149:72-149:105 Type 400testdata/Prelude.lc 137:91-137:92 Type
401testdata/Prelude.lc 149:80-149:81 String 401testdata/Prelude.lc 137:93-137:95 List (Tuple2 String Type)
402testdata/Prelude.lc 149:82-149:83 V3 402testdata/Prelude.lc 137:98-137:164 RecordC V1
403testdata/Prelude.lc 149:84-149:86 List (Tuple2 String Type) 403testdata/Prelude.lc 137:99-137:109 {a : List (Tuple2 String Type)} -> 'tuptype ('map (Tuple2 String Type) Type ('snd String Type) a) -> RecordC a
404testdata/Prelude.lc 149:90-149:97 List (Tuple2 String Type) -> Type 404testdata/Prelude.lc 137:110-137:163 'tuptype ('map (Tuple2 String Type) Type ('snd String Type) V9)
405testdata/Prelude.lc 149:90-149:100 Type 405testdata/Prelude.lc 137:111-137:114 {a} -> {b} -> Tuple2 a b -> b
406testdata/Prelude.lc 149:90-149:105 Type 406testdata/Prelude.lc 137:115-137:162 Tuple2 V16 ('tuptype ('map (Tuple2 String Type) Type ('snd String Type) V9))
407testdata/Prelude.lc 149:98-149:100 List (Tuple2 String Type) 407testdata/Prelude.lc 137:116-137:128 {a} -> {b} -> a->b
408testdata/Prelude.lc 149:104-149:105 Type 408testdata/Prelude.lc 137:116-137:131 {a} -> V1->a
409testdata/Prelude.lc 150:1-150:8 {a} -> {b : List (Tuple2 String Type)} -> c:String -> {d : 'isKeyC String 'TT c a b} -> RecordC b -> a 409testdata/Prelude.lc 137:116-137:158 V0 -> Tuple2 V20 ('tuptype ('map (Tuple2 String Type) Type ('snd String Type) V13))
410testdata/Prelude.lc 150:15-150:26 List (Tuple2 String Type) 410testdata/Prelude.lc 137:133-137:158 Type
411testdata/Prelude.lc 150:15-151:164 RecordC V2 -> V4 | V4 | a:String -> {b : 'isKeyC String 'TT a V2 V1} -> RecordC V2 -> V4 | {a : 'isKeyC String 'TT V0 V2 V1} -> RecordC V2 -> V4 | {a : List (Tuple2 String Type)} -> b:String -> {c : 'isKeyC String 'TT b V2 a} -> RecordC a -> V4 | {a} -> {b : List (Tuple2 String Type)} -> c:String -> {d : 'isKeyC String 'TT c a b} -> RecordC b -> a 411testdata/Prelude.lc 137:134-137:135 Type
412testdata/Prelude.lc 150:45-150:47 RecordC V10 412testdata/Prelude.lc 137:137-137:144 List Type -> Type
413testdata/Prelude.lc 150:45-151:164 List V2 -> V2 | V1 -> List V2 -> V2 | V10 | V2 -> V2->V2 | V2->V2 | V6 413testdata/Prelude.lc 137:137-137:157 Type
414testdata/Prelude.lc 150:51-150:52 String 414testdata/Prelude.lc 137:145-137:157 List Type
415testdata/Prelude.lc 150:51-150:55 String->Bool 415testdata/Prelude.lc 137:146-137:149 {a} -> {b} -> a->b -> List a -> List b
416testdata/Prelude.lc 150:51-150:58 Bool 416testdata/Prelude.lc 137:146-137:153 List (Tuple2 V0 V1) -> List V2
417testdata/Prelude.lc 150:51-151:164 'tuptype ('map (Tuple2 String Type) Type ('snd String Type) V1) -> V1 | V13 417testdata/Prelude.lc 137:150-137:153 {a} -> {b} -> Tuple2 a b -> b
418testdata/Prelude.lc 150:53-150:55 {a} -> {b : Eq a} -> a -> a->Bool 418testdata/Prelude.lc 137:154-137:156 List (Tuple2 String Type)
419testdata/Prelude.lc 150:56-150:58 V6 419testdata/Prelude.lc 137:159-137:161 'tuptype ('map (Tuple2 String Type) Type ('snd String Type) V4)
420testdata/Prelude.lc 150:61-150:64 {a} -> {b} -> Tuple2 a b -> a 420testdata/Prelude.lc 141:1-141:4 Float -> Float -> Float -> VecS Float 4
421testdata/Prelude.lc 150:61-150:112 V15 421testdata/Prelude.lc 141:13-141:15 {a} -> a -> a -> a -> a -> VecS a 4
422testdata/Prelude.lc 150:61-151:164 Bool->V16 422testdata/Prelude.lc 141:13-141:17 V5 -> V6 -> V7 -> VecS V8 4
423testdata/Prelude.lc 150:65-150:112 Tuple2 V15 ('tuptype ('map (Tuple2 String Type) Type ('snd String Type) V8)) 423testdata/Prelude.lc 141:13-141:19 V4 -> V5 -> VecS V6 4
424testdata/Prelude.lc 150:66-150:78 {a} -> {b} -> a->b 424testdata/Prelude.lc 141:13-141:21 V3 -> VecS V4 4
425testdata/Prelude.lc 150:66-150:81 {a} -> V1->a 425testdata/Prelude.lc 141:13-141:25 VecS Float 4
426testdata/Prelude.lc 150:66-150:108 V0 -> Tuple2 V19 ('tuptype ('map (Tuple2 String Type) Type ('snd String Type) V12)) 426testdata/Prelude.lc 141:16-141:17 V6
427testdata/Prelude.lc 150:83-150:108 Type 427testdata/Prelude.lc 141:18-141:19 V3
428testdata/Prelude.lc 150:84-150:85 Type 428testdata/Prelude.lc 141:20-141:21 V1
429testdata/Prelude.lc 150:87-150:94 List Type -> Type 429testdata/Prelude.lc 141:22-141:25 Float
430testdata/Prelude.lc 150:87-150:107 Type 430testdata/Prelude.lc 143:1-143:6 VecS Float 4
431testdata/Prelude.lc 150:95-150:107 List Type 431testdata/Prelude.lc 143:11-143:14 Float -> Float -> Float -> VecS Float 4
432testdata/Prelude.lc 150:96-150:99 {a} -> {b} -> a->b -> List a -> List b 432testdata/Prelude.lc 143:11-143:18 Float -> Float -> VecS Float 4
433testdata/Prelude.lc 150:96-150:103 List (Tuple2 V0 V1) -> List V2 433testdata/Prelude.lc 143:11-143:22 Float -> VecS Float 4
434testdata/Prelude.lc 150:100-150:103 {a} -> {b} -> Tuple2 a b -> b 434testdata/Prelude.lc 143:11-143:26 VecS Float 4
435testdata/Prelude.lc 150:104-150:106 List (Tuple2 String Type) 435testdata/Prelude.lc 143:15-143:18 Float
436testdata/Prelude.lc 150:109-150:111 'tuptype ('map (Tuple2 String Type) Type ('snd String Type) V3) 436testdata/Prelude.lc 143:19-143:22 Float
437testdata/Prelude.lc 151:51-151:58 {a} -> {b : List (Tuple2 String Type)} -> c:String -> {d : 'isKeyC String 'TT c a b} -> RecordC b -> a 437testdata/Prelude.lc 143:23-143:26 Float
438testdata/Prelude.lc 151:51-151:61 {a : List (Tuple2 String Type)} -> b:String -> {c : 'isKeyC String 'TT b V19 a} -> RecordC a -> V21 438testdata/Prelude.lc 144:1-144:5 VecS Float 4
439testdata/Prelude.lc 151:51-151:65 a:String -> {b : 'isKeyC String 'TT a V17 V10} -> RecordC V11 -> V19 439testdata/Prelude.lc 144:11-144:14 Float -> Float -> Float -> VecS Float 4
440testdata/Prelude.lc 151:51-151:67 {a : 'isKeyC String 'TT V14 V16 V9} -> RecordC V10 -> V18 440testdata/Prelude.lc 144:11-144:18 Float -> Float -> VecS Float 4
441testdata/Prelude.lc 151:51-151:97 RecordC V9 -> V17 441testdata/Prelude.lc 144:11-144:22 Float -> VecS Float 4
442testdata/Prelude.lc 151:51-151:164 V15 442testdata/Prelude.lc 144:11-144:26 VecS Float 4
443testdata/Prelude.lc 151:60-151:61 Type 443testdata/Prelude.lc 144:15-144:18 Float
444testdata/Prelude.lc 151:63-151:65 List V12 444testdata/Prelude.lc 144:19-144:22 Float
445testdata/Prelude.lc 151:66-151:67 String 445testdata/Prelude.lc 144:23-144:26 Float
446testdata/Prelude.lc 151:69-151:97 'isKeyC String 'TT V14 V16 V9 446testdata/Prelude.lc 145:1-145:7 VecS Float 4
447testdata/Prelude.lc 151:70-151:79 {a}->a 447testdata/Prelude.lc 145:11-145:14 Float -> Float -> Float -> VecS Float 4
448testdata/Prelude.lc 151:81-151:96 Type 448testdata/Prelude.lc 145:11-145:19 Float -> Float -> VecS Float 4
449testdata/Prelude.lc 151:82-151:88 {a} -> {b : Eq a} -> a -> Type -> List (Tuple2 a Type) -> Type 449testdata/Prelude.lc 145:11-145:24 Float -> VecS Float 4
450testdata/Prelude.lc 151:82-151:90 Type -> List (Tuple2 String Type) -> Type 450testdata/Prelude.lc 145:11-145:29 VecS Float 4
451testdata/Prelude.lc 151:82-151:92 List (Tuple2 String Type) -> Type 451testdata/Prelude.lc 145:15-145:19 Float
452testdata/Prelude.lc 151:89-151:90 String 452testdata/Prelude.lc 145:20-145:24 Float
453testdata/Prelude.lc 151:91-151:92 Type 453testdata/Prelude.lc 145:25-145:29 Float
454testdata/Prelude.lc 151:93-151:95 List (Tuple2 String Type) 454testdata/Prelude.lc 146:1-146:6 VecS Float 4
455testdata/Prelude.lc 151:98-151:164 RecordC V1 455testdata/Prelude.lc 146:11-146:14 Float -> Float -> Float -> VecS Float 4
456testdata/Prelude.lc 151:99-151:109 {a : List (Tuple2 String Type)} -> 'tuptype ('map (Tuple2 String Type) Type ('snd String Type) a) -> RecordC a 456testdata/Prelude.lc 146:11-146:18 Float -> Float -> VecS Float 4
457testdata/Prelude.lc 151:110-151:163 'tuptype ('map (Tuple2 String Type) Type ('snd String Type) V9) 457testdata/Prelude.lc 146:11-146:22 Float -> VecS Float 4
458testdata/Prelude.lc 151:111-151:114 {a} -> {b} -> Tuple2 a b -> b 458testdata/Prelude.lc 146:11-146:26 VecS Float 4
459testdata/Prelude.lc 151:115-151:162 Tuple2 V16 ('tuptype ('map (Tuple2 String Type) Type ('snd String Type) V9)) 459testdata/Prelude.lc 146:15-146:18 Float
460testdata/Prelude.lc 151:116-151:128 {a} -> {b} -> a->b 460testdata/Prelude.lc 146:19-146:22 Float
461testdata/Prelude.lc 151:116-151:131 {a} -> V1->a 461testdata/Prelude.lc 146:23-146:26 Float
462testdata/Prelude.lc 151:116-151:158 V0 -> Tuple2 V20 ('tuptype ('map (Tuple2 String Type) Type ('snd String Type) V13)) 462testdata/Prelude.lc 147:1-147:7 VecS Float 4
463testdata/Prelude.lc 151:133-151:158 Type 463testdata/Prelude.lc 147:11-147:14 Float -> Float -> Float -> VecS Float 4
464testdata/Prelude.lc 151:134-151:135 Type 464testdata/Prelude.lc 147:11-147:18 Float -> Float -> VecS Float 4
465testdata/Prelude.lc 151:137-151:144 List Type -> Type 465testdata/Prelude.lc 147:11-147:22 Float -> VecS Float 4
466testdata/Prelude.lc 151:137-151:157 Type 466testdata/Prelude.lc 147:11-147:26 VecS Float 4
467testdata/Prelude.lc 151:145-151:157 List Type 467testdata/Prelude.lc 147:15-147:18 Float
468testdata/Prelude.lc 151:146-151:149 {a} -> {b} -> a->b -> List a -> List b 468testdata/Prelude.lc 147:19-147:22 Float
469testdata/Prelude.lc 151:146-151:153 List (Tuple2 V0 V1) -> List V2 469testdata/Prelude.lc 147:23-147:26 Float
470testdata/Prelude.lc 151:150-151:153 {a} -> {b} -> Tuple2 a b -> b 470testdata/Prelude.lc 148:1-148:4 VecS Float 4
471testdata/Prelude.lc 151:154-151:156 List (Tuple2 String Type) 471testdata/Prelude.lc 148:11-148:14 Float -> Float -> Float -> VecS Float 4
472testdata/Prelude.lc 151:159-151:161 'tuptype ('map (Tuple2 String Type) Type ('snd String Type) V4) 472testdata/Prelude.lc 148:11-148:18 Float -> Float -> VecS Float 4
473testdata/Prelude.lc 155:1-155:4 Float -> Float -> Float -> VecS Float 4 473testdata/Prelude.lc 148:11-148:22 Float -> VecS Float 4
474testdata/Prelude.lc 155:13-155:15 {a} -> a -> a -> a -> a -> VecS a 4 474testdata/Prelude.lc 148:11-148:26 VecS Float 4
475testdata/Prelude.lc 155:13-155:17 V5 -> V6 -> V7 -> VecS V8 4 475testdata/Prelude.lc 148:15-148:18 Float
476testdata/Prelude.lc 155:13-155:19 V4 -> V5 -> VecS V6 4 476testdata/Prelude.lc 148:19-148:22 Float
477testdata/Prelude.lc 155:13-155:21 V3 -> VecS V4 4 477testdata/Prelude.lc 148:23-148:26 Float
478testdata/Prelude.lc 155:13-155:25 VecS Float 4 478testdata/Prelude.lc 149:1-149:6 VecS Float 4
479testdata/Prelude.lc 155:16-155:17 V6 479testdata/Prelude.lc 149:11-149:14 Float -> Float -> Float -> VecS Float 4
480testdata/Prelude.lc 155:18-155:19 V3 480testdata/Prelude.lc 149:11-149:18 Float -> Float -> VecS Float 4
481testdata/Prelude.lc 155:20-155:21 V1 481testdata/Prelude.lc 149:11-149:22 Float -> VecS Float 4
482testdata/Prelude.lc 155:22-155:25 Float 482testdata/Prelude.lc 149:11-149:26 VecS Float 4
483testdata/Prelude.lc 157:1-157:6 VecS Float 4 483testdata/Prelude.lc 149:15-149:18 Float
484testdata/Prelude.lc 149:19-149:22 Float
485testdata/Prelude.lc 149:23-149:26 Float
486testdata/Prelude.lc 150:1-150:7 VecS Float 4
487testdata/Prelude.lc 150:11-150:14 Float -> Float -> Float -> VecS Float 4
488testdata/Prelude.lc 150:11-150:18 Float -> Float -> VecS Float 4
489testdata/Prelude.lc 150:11-150:22 Float -> VecS Float 4
490testdata/Prelude.lc 150:11-150:26 VecS Float 4
491testdata/Prelude.lc 150:15-150:18 Float
492testdata/Prelude.lc 150:19-150:22 Float
493testdata/Prelude.lc 150:23-150:26 Float
494testdata/Prelude.lc 151:1-151:6 VecS Float 4
495testdata/Prelude.lc 151:11-151:14 Float -> Float -> Float -> VecS Float 4
496testdata/Prelude.lc 151:11-151:18 Float -> Float -> VecS Float 4
497testdata/Prelude.lc 151:11-151:22 Float -> VecS Float 4
498testdata/Prelude.lc 151:11-151:26 VecS Float 4
499testdata/Prelude.lc 151:15-151:18 Float
500testdata/Prelude.lc 151:19-151:22 Float
501testdata/Prelude.lc 151:23-151:26 Float
502testdata/Prelude.lc 152:1-152:5 VecS Float 4
503testdata/Prelude.lc 152:11-152:14 Float -> Float -> Float -> VecS Float 4
504testdata/Prelude.lc 152:11-152:18 Float -> Float -> VecS Float 4
505testdata/Prelude.lc 152:11-152:22 Float -> VecS Float 4
506testdata/Prelude.lc 152:11-152:26 VecS Float 4
507testdata/Prelude.lc 152:15-152:18 Float
508testdata/Prelude.lc 152:19-152:22 Float
509testdata/Prelude.lc 152:23-152:26 Float
510testdata/Prelude.lc 153:1-153:5 VecS Float 4
511testdata/Prelude.lc 153:11-153:14 Float -> Float -> Float -> VecS Float 4
512testdata/Prelude.lc 153:11-153:18 Float -> Float -> VecS Float 4
513testdata/Prelude.lc 153:11-153:22 Float -> VecS Float 4
514testdata/Prelude.lc 153:11-153:26 VecS Float 4
515testdata/Prelude.lc 153:15-153:18 Float
516testdata/Prelude.lc 153:19-153:22 Float
517testdata/Prelude.lc 153:23-153:26 Float
518testdata/Prelude.lc 154:1-154:5 VecS Float 4
519testdata/Prelude.lc 154:11-154:14 Float -> Float -> Float -> VecS Float 4
520testdata/Prelude.lc 154:11-154:18 Float -> Float -> VecS Float 4
521testdata/Prelude.lc 154:11-154:22 Float -> VecS Float 4
522testdata/Prelude.lc 154:11-154:26 VecS Float 4
523testdata/Prelude.lc 154:15-154:18 Float
524testdata/Prelude.lc 154:19-154:22 Float
525testdata/Prelude.lc 154:23-154:26 Float
526testdata/Prelude.lc 155:1-155:5 VecS Float 4
527testdata/Prelude.lc 155:11-155:14 Float -> Float -> Float -> VecS Float 4
528testdata/Prelude.lc 155:11-155:18 Float -> Float -> VecS Float 4
529testdata/Prelude.lc 155:11-155:22 Float -> VecS Float 4
530testdata/Prelude.lc 155:11-155:26 VecS Float 4
531testdata/Prelude.lc 155:15-155:18 Float
532testdata/Prelude.lc 155:19-155:22 Float
533testdata/Prelude.lc 155:23-155:26 Float
534testdata/Prelude.lc 156:1-156:5 VecS Float 4
535testdata/Prelude.lc 156:11-156:14 Float -> Float -> Float -> VecS Float 4
536testdata/Prelude.lc 156:11-156:18 Float -> Float -> VecS Float 4
537testdata/Prelude.lc 156:11-156:22 Float -> VecS Float 4
538testdata/Prelude.lc 156:11-156:26 VecS Float 4
539testdata/Prelude.lc 156:15-156:18 Float
540testdata/Prelude.lc 156:19-156:22 Float
541testdata/Prelude.lc 156:23-156:26 Float
542testdata/Prelude.lc 157:1-157:7 VecS Float 4
484testdata/Prelude.lc 157:11-157:14 Float -> Float -> Float -> VecS Float 4 543testdata/Prelude.lc 157:11-157:14 Float -> Float -> Float -> VecS Float 4
485testdata/Prelude.lc 157:11-157:18 Float -> Float -> VecS Float 4 544testdata/Prelude.lc 157:11-157:18 Float -> Float -> VecS Float 4
486testdata/Prelude.lc 157:11-157:22 Float -> VecS Float 4 545testdata/Prelude.lc 157:11-157:22 Float -> VecS Float 4
@@ -488,7 +547,7 @@ testdata/Prelude.lc 157:11-157:26 VecS Float 4
488testdata/Prelude.lc 157:15-157:18 Float 547testdata/Prelude.lc 157:15-157:18 Float
489testdata/Prelude.lc 157:19-157:22 Float 548testdata/Prelude.lc 157:19-157:22 Float
490testdata/Prelude.lc 157:23-157:26 Float 549testdata/Prelude.lc 157:23-157:26 Float
491testdata/Prelude.lc 158:1-158:5 VecS Float 4 550testdata/Prelude.lc 158:1-158:8 VecS Float 4
492testdata/Prelude.lc 158:11-158:14 Float -> Float -> Float -> VecS Float 4 551testdata/Prelude.lc 158:11-158:14 Float -> Float -> Float -> VecS Float 4
493testdata/Prelude.lc 158:11-158:18 Float -> Float -> VecS Float 4 552testdata/Prelude.lc 158:11-158:18 Float -> Float -> VecS Float 4
494testdata/Prelude.lc 158:11-158:22 Float -> VecS Float 4 553testdata/Prelude.lc 158:11-158:22 Float -> VecS Float 4
@@ -496,644 +555,532 @@ testdata/Prelude.lc 158:11-158:26 VecS Float 4
496testdata/Prelude.lc 158:15-158:18 Float 555testdata/Prelude.lc 158:15-158:18 Float
497testdata/Prelude.lc 158:19-158:22 Float 556testdata/Prelude.lc 158:19-158:22 Float
498testdata/Prelude.lc 158:23-158:26 Float 557testdata/Prelude.lc 158:23-158:26 Float
499testdata/Prelude.lc 159:1-159:7 VecS Float 4 558testdata/Prelude.lc 160:1-160:12 {a:Nat} -> {b} -> {c} -> {d : Num b} -> {e : c ~ VecScalar a b} -> c -> Image 1 (Color c)
500testdata/Prelude.lc 159:11-159:14 Float -> Float -> Float -> VecS Float 4 559testdata/Prelude.lc 160:15-160:25 {a:Nat} -> {b:Nat} -> {c} -> {d} -> {e : Num c} -> {f : d ~ VecScalar b c} -> d -> Image a (Color d)
501testdata/Prelude.lc 159:11-159:19 Float -> Float -> VecS Float 4 560testdata/Prelude.lc 160:15-160:28 {a:Nat} -> {b} -> {c} -> {d : Num b} -> {e : c ~ VecScalar a b} -> c -> Image 1 (Color c)
502testdata/Prelude.lc 159:11-159:24 Float -> VecS Float 4 561testdata/Prelude.lc 160:27-160:28 V1
503testdata/Prelude.lc 159:11-159:29 VecS Float 4 562testdata/Prelude.lc 161:1-161:12 {a:Nat} -> {b} -> {c} -> {d : Num b} -> {e : c ~ VecScalar a b} -> c -> Image 2 (Color c)
504testdata/Prelude.lc 159:15-159:19 Float 563testdata/Prelude.lc 161:15-161:25 {a:Nat} -> {b:Nat} -> {c} -> {d} -> {e : Num c} -> {f : d ~ VecScalar b c} -> d -> Image a (Color d)
505testdata/Prelude.lc 159:20-159:24 Float 564testdata/Prelude.lc 161:15-161:28 {a:Nat} -> {b} -> {c} -> {d : Num b} -> {e : c ~ VecScalar a b} -> c -> Image 2 (Color c)
506testdata/Prelude.lc 159:25-159:29 Float 565testdata/Prelude.lc 161:27-161:28 V1
507testdata/Prelude.lc 160:1-160:6 VecS Float 4 566testdata/Prelude.lc 163:1-163:12 Float -> Image 1 (Depth Float)
508testdata/Prelude.lc 160:11-160:14 Float -> Float -> Float -> VecS Float 4 567testdata/Prelude.lc 163:15-163:25 {a:Nat} -> Float -> Image a (Depth Float)
509testdata/Prelude.lc 160:11-160:18 Float -> Float -> VecS Float 4 568testdata/Prelude.lc 163:15-163:28 Float -> Image 1 (Depth Float)
510testdata/Prelude.lc 160:11-160:22 Float -> VecS Float 4 569testdata/Prelude.lc 163:27-163:28 V1
511testdata/Prelude.lc 160:11-160:26 VecS Float 4 570testdata/Prelude.lc 165:13-165:16 Nat -> Type->Type
512testdata/Prelude.lc 160:15-160:18 Float 571testdata/Prelude.lc 165:13-165:18 Type->Type
513testdata/Prelude.lc 160:19-160:22 Float 572testdata/Prelude.lc 165:13-165:24 Type
514testdata/Prelude.lc 160:23-160:26 Float 573testdata/Prelude.lc 165:17-165:18 V1
515testdata/Prelude.lc 161:1-161:7 VecS Float 4 574testdata/Prelude.lc 165:19-165:24 Type
516testdata/Prelude.lc 161:11-161:14 Float -> Float -> Float -> VecS Float 4 575testdata/Prelude.lc 165:28-165:31 Nat -> Type->Type
517testdata/Prelude.lc 161:11-161:18 Float -> Float -> VecS Float 4 576testdata/Prelude.lc 165:28-165:33 Type->Type
518testdata/Prelude.lc 161:11-161:22 Float -> VecS Float 4 577testdata/Prelude.lc 165:28-165:39 Type
519testdata/Prelude.lc 161:11-161:26 VecS Float 4 578testdata/Prelude.lc 165:32-165:33 V1
520testdata/Prelude.lc 161:15-161:18 Float 579testdata/Prelude.lc 165:34-165:39 Type
521testdata/Prelude.lc 161:19-161:22 Float 580testdata/Prelude.lc 166:1-166:9 VecS Float 3 -> VecS Float 4
522testdata/Prelude.lc 161:23-161:26 Float 581testdata/Prelude.lc 166:14-166:16 {a} -> a -> a -> a -> a -> VecS a 4
523testdata/Prelude.lc 162:1-162:4 VecS Float 4 582testdata/Prelude.lc 166:14-166:20 Float -> Float -> Float -> VecS Float 4
524testdata/Prelude.lc 162:11-162:14 Float -> Float -> Float -> VecS Float 4 583testdata/Prelude.lc 166:14-166:24 Float -> Float -> VecS Float 4
525testdata/Prelude.lc 162:11-162:18 Float -> Float -> VecS Float 4 584testdata/Prelude.lc 166:14-166:28 Float -> VecS Float 4
526testdata/Prelude.lc 162:11-162:22 Float -> VecS Float 4 585testdata/Prelude.lc 166:14-166:30 VecS Float 3 -> VecS Float 4 | VecS Float 4
527testdata/Prelude.lc 162:11-162:26 VecS Float 4 586testdata/Prelude.lc 166:17-166:18 VecS Float 3
528testdata/Prelude.lc 162:15-162:18 Float 587testdata/Prelude.lc 166:17-166:20 Float
529testdata/Prelude.lc 162:19-162:22 Float 588testdata/Prelude.lc 166:21-166:22 VecS Float 3
530testdata/Prelude.lc 162:23-162:26 Float 589testdata/Prelude.lc 166:21-166:24 Float
531testdata/Prelude.lc 163:1-163:6 VecS Float 4 590testdata/Prelude.lc 166:25-166:26 VecS Float 3
532testdata/Prelude.lc 163:11-163:14 Float -> Float -> Float -> VecS Float 4 591testdata/Prelude.lc 166:25-166:28 Float
533testdata/Prelude.lc 163:11-163:18 Float -> Float -> VecS Float 4 592testdata/Prelude.lc 166:29-166:30 V1
534testdata/Prelude.lc 163:11-163:22 Float -> VecS Float 4 593testdata/Prelude.lc 173:1-173:8 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a
535testdata/Prelude.lc 163:11-163:26 VecS Float 4 594testdata/Prelude.lc 173:11-173:22 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a
536testdata/Prelude.lc 163:15-163:18 Float 595testdata/Prelude.lc 174:1-174:8 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a
537testdata/Prelude.lc 163:19-163:22 Float 596testdata/Prelude.lc 174:11-174:22 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a
538testdata/Prelude.lc 163:23-163:26 Float 597testdata/Prelude.lc 175:1-175:4 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a
539testdata/Prelude.lc 164:1-164:7 VecS Float 4 598testdata/Prelude.lc 175:7-175:14 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a
540testdata/Prelude.lc 164:11-164:14 Float -> Float -> Float -> VecS Float 4 599testdata/Prelude.lc 176:1-176:4 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a
541testdata/Prelude.lc 164:11-164:18 Float -> Float -> VecS Float 4 600testdata/Prelude.lc 176:7-176:14 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a
542testdata/Prelude.lc 164:11-164:22 Float -> VecS Float 4 601testdata/Prelude.lc 177:1-177:4 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a
543testdata/Prelude.lc 164:11-164:26 VecS Float 4 602testdata/Prelude.lc 177:7-177:14 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a
544testdata/Prelude.lc 164:15-164:18 Float 603testdata/Prelude.lc 178:1-178:5 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a
545testdata/Prelude.lc 164:19-164:22 Float 604testdata/Prelude.lc 178:8-178:16 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a
546testdata/Prelude.lc 164:23-164:26 Float 605testdata/Prelude.lc 179:1-179:5 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a
547testdata/Prelude.lc 165:1-165:6 VecS Float 4 606testdata/Prelude.lc 179:8-179:16 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a
548testdata/Prelude.lc 165:11-165:14 Float -> Float -> Float -> VecS Float 4 607testdata/Prelude.lc 180:1-180:5 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a
549testdata/Prelude.lc 165:11-165:18 Float -> Float -> VecS Float 4 608testdata/Prelude.lc 180:8-180:16 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a
550testdata/Prelude.lc 165:11-165:22 Float -> VecS Float 4 609testdata/Prelude.lc 181:1-181:5 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a
551testdata/Prelude.lc 165:11-165:26 VecS Float 4 610testdata/Prelude.lc 181:8-181:16 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a
552testdata/Prelude.lc 165:15-165:18 Float 611testdata/Prelude.lc 182:1-182:6 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a
553testdata/Prelude.lc 165:19-165:22 Float 612testdata/Prelude.lc 182:9-182:18 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a
554testdata/Prelude.lc 165:23-165:26 Float 613testdata/Prelude.lc 183:1-183:5 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a
555testdata/Prelude.lc 166:1-166:5 VecS Float 4 614testdata/Prelude.lc 183:8-183:16 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a
556testdata/Prelude.lc 166:11-166:14 Float -> Float -> Float -> VecS Float 4 615testdata/Prelude.lc 184:1-184:6 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a
557testdata/Prelude.lc 166:11-166:18 Float -> Float -> VecS Float 4 616testdata/Prelude.lc 184:9-184:18 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a
558testdata/Prelude.lc 166:11-166:22 Float -> VecS Float 4 617testdata/Prelude.lc 185:1-185:5 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a
559testdata/Prelude.lc 166:11-166:26 VecS Float 4 618testdata/Prelude.lc 185:8-185:16 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a
560testdata/Prelude.lc 166:15-166:18 Float 619testdata/Prelude.lc 186:1-186:6 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a
561testdata/Prelude.lc 166:19-166:22 Float 620testdata/Prelude.lc 186:9-186:18 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a
562testdata/Prelude.lc 166:23-166:26 Float 621testdata/Prelude.lc 187:1-187:6 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a -> a->a
563testdata/Prelude.lc 167:1-167:5 VecS Float 4 622testdata/Prelude.lc 187:9-187:18 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a -> a->a
564testdata/Prelude.lc 167:11-167:14 Float -> Float -> Float -> VecS Float 4 623testdata/Prelude.lc 190:1-190:4 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a -> a->a
565testdata/Prelude.lc 167:11-167:18 Float -> Float -> VecS Float 4 624testdata/Prelude.lc 190:7-190:14 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a -> a->a
566testdata/Prelude.lc 167:11-167:22 Float -> VecS Float 4
567testdata/Prelude.lc 167:11-167:26 VecS Float 4
568testdata/Prelude.lc 167:15-167:18 Float
569testdata/Prelude.lc 167:19-167:22 Float
570testdata/Prelude.lc 167:23-167:26 Float
571testdata/Prelude.lc 168:1-168:5 VecS Float 4
572testdata/Prelude.lc 168:11-168:14 Float -> Float -> Float -> VecS Float 4
573testdata/Prelude.lc 168:11-168:18 Float -> Float -> VecS Float 4
574testdata/Prelude.lc 168:11-168:22 Float -> VecS Float 4
575testdata/Prelude.lc 168:11-168:26 VecS Float 4
576testdata/Prelude.lc 168:15-168:18 Float
577testdata/Prelude.lc 168:19-168:22 Float
578testdata/Prelude.lc 168:23-168:26 Float
579testdata/Prelude.lc 169:1-169:5 VecS Float 4
580testdata/Prelude.lc 169:11-169:14 Float -> Float -> Float -> VecS Float 4
581testdata/Prelude.lc 169:11-169:18 Float -> Float -> VecS Float 4
582testdata/Prelude.lc 169:11-169:22 Float -> VecS Float 4
583testdata/Prelude.lc 169:11-169:26 VecS Float 4
584testdata/Prelude.lc 169:15-169:18 Float
585testdata/Prelude.lc 169:19-169:22 Float
586testdata/Prelude.lc 169:23-169:26 Float
587testdata/Prelude.lc 170:1-170:5 VecS Float 4
588testdata/Prelude.lc 170:11-170:14 Float -> Float -> Float -> VecS Float 4
589testdata/Prelude.lc 170:11-170:18 Float -> Float -> VecS Float 4
590testdata/Prelude.lc 170:11-170:22 Float -> VecS Float 4
591testdata/Prelude.lc 170:11-170:26 VecS Float 4
592testdata/Prelude.lc 170:15-170:18 Float
593testdata/Prelude.lc 170:19-170:22 Float
594testdata/Prelude.lc 170:23-170:26 Float
595testdata/Prelude.lc 171:1-171:7 VecS Float 4
596testdata/Prelude.lc 171:11-171:14 Float -> Float -> Float -> VecS Float 4
597testdata/Prelude.lc 171:11-171:18 Float -> Float -> VecS Float 4
598testdata/Prelude.lc 171:11-171:22 Float -> VecS Float 4
599testdata/Prelude.lc 171:11-171:26 VecS Float 4
600testdata/Prelude.lc 171:15-171:18 Float
601testdata/Prelude.lc 171:19-171:22 Float
602testdata/Prelude.lc 171:23-171:26 Float
603testdata/Prelude.lc 172:1-172:8 VecS Float 4
604testdata/Prelude.lc 172:11-172:14 Float -> Float -> Float -> VecS Float 4
605testdata/Prelude.lc 172:11-172:18 Float -> Float -> VecS Float 4
606testdata/Prelude.lc 172:11-172:22 Float -> VecS Float 4
607testdata/Prelude.lc 172:11-172:26 VecS Float 4
608testdata/Prelude.lc 172:15-172:18 Float
609testdata/Prelude.lc 172:19-172:22 Float
610testdata/Prelude.lc 172:23-172:26 Float
611testdata/Prelude.lc 174:1-174:12 {a:Nat} -> {b} -> {c} -> {d : Num b} -> {e : c ~ VecScalar a b} -> c -> Image 1 (Color c)
612testdata/Prelude.lc 174:15-174:25 {a:Nat} -> {b:Nat} -> {c} -> {d} -> {e : Num c} -> {f : d ~ VecScalar b c} -> d -> Image a (Color d)
613testdata/Prelude.lc 174:15-174:28 {a:Nat} -> {b} -> {c} -> {d : Num b} -> {e : c ~ VecScalar a b} -> c -> Image 1 (Color c)
614testdata/Prelude.lc 174:27-174:28 V1
615testdata/Prelude.lc 175:1-175:12 {a:Nat} -> {b} -> {c} -> {d : Num b} -> {e : c ~ VecScalar a b} -> c -> Image 2 (Color c)
616testdata/Prelude.lc 175:15-175:25 {a:Nat} -> {b:Nat} -> {c} -> {d} -> {e : Num c} -> {f : d ~ VecScalar b c} -> d -> Image a (Color d)
617testdata/Prelude.lc 175:15-175:28 {a:Nat} -> {b} -> {c} -> {d : Num b} -> {e : c ~ VecScalar a b} -> c -> Image 2 (Color c)
618testdata/Prelude.lc 175:27-175:28 V1
619testdata/Prelude.lc 177:1-177:12 Float -> Image 1 (Depth Float)
620testdata/Prelude.lc 177:15-177:25 {a:Nat} -> Float -> Image a (Depth Float)
621testdata/Prelude.lc 177:15-177:28 Float -> Image 1 (Depth Float)
622testdata/Prelude.lc 177:27-177:28 V1
623testdata/Prelude.lc 179:13-179:16 Nat -> Type->Type
624testdata/Prelude.lc 179:13-179:18 Type->Type
625testdata/Prelude.lc 179:13-179:24 Type
626testdata/Prelude.lc 179:17-179:18 V1
627testdata/Prelude.lc 179:19-179:24 Type
628testdata/Prelude.lc 179:28-179:31 Nat -> Type->Type
629testdata/Prelude.lc 179:28-179:33 Type->Type
630testdata/Prelude.lc 179:28-179:39 Type
631testdata/Prelude.lc 179:32-179:33 V1
632testdata/Prelude.lc 179:34-179:39 Type
633testdata/Prelude.lc 180:1-180:9 VecS Float 3 -> VecS Float 4
634testdata/Prelude.lc 180:14-180:16 {a} -> a -> a -> a -> a -> VecS a 4
635testdata/Prelude.lc 180:14-180:20 Float -> Float -> Float -> VecS Float 4
636testdata/Prelude.lc 180:14-180:24 Float -> Float -> VecS Float 4
637testdata/Prelude.lc 180:14-180:28 Float -> VecS Float 4
638testdata/Prelude.lc 180:14-180:30 VecS Float 3 -> VecS Float 4 | VecS Float 4
639testdata/Prelude.lc 180:17-180:18 VecS Float 3
640testdata/Prelude.lc 180:17-180:20 Float
641testdata/Prelude.lc 180:21-180:22 VecS Float 3
642testdata/Prelude.lc 180:21-180:24 Float
643testdata/Prelude.lc 180:25-180:26 VecS Float 3
644testdata/Prelude.lc 180:25-180:28 Float
645testdata/Prelude.lc 180:29-180:30 V1
646testdata/Prelude.lc 187:1-187:8 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a
647testdata/Prelude.lc 187:11-187:22 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a
648testdata/Prelude.lc 188:1-188:8 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a
649testdata/Prelude.lc 188:11-188:22 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a
650testdata/Prelude.lc 189:1-189:4 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a
651testdata/Prelude.lc 189:7-189:14 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a
652testdata/Prelude.lc 190:1-190:4 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a
653testdata/Prelude.lc 190:7-190:14 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a
654testdata/Prelude.lc 191:1-191:4 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a 625testdata/Prelude.lc 191:1-191:4 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a
655testdata/Prelude.lc 191:7-191:14 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a 626testdata/Prelude.lc 191:7-191:14 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a
656testdata/Prelude.lc 192:1-192:5 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a 627testdata/Prelude.lc 192:1-192:4 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a
657testdata/Prelude.lc 192:8-192:16 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a 628testdata/Prelude.lc 192:7-192:14 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a
658testdata/Prelude.lc 193:1-193:5 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a 629testdata/Prelude.lc 193:1-193:5 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a
659testdata/Prelude.lc 193:8-193:16 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a 630testdata/Prelude.lc 193:8-193:16 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a
660testdata/Prelude.lc 194:1-194:5 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a 631testdata/Prelude.lc 194:1-194:5 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a
661testdata/Prelude.lc 194:8-194:16 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a 632testdata/Prelude.lc 194:8-194:16 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a
662testdata/Prelude.lc 195:1-195:5 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a 633testdata/Prelude.lc 195:1-195:5 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a
663testdata/Prelude.lc 195:8-195:16 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a 634testdata/Prelude.lc 195:8-195:16 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a
664testdata/Prelude.lc 196:1-196:6 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a 635testdata/Prelude.lc 196:1-196:12 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a
665testdata/Prelude.lc 196:9-196:18 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a 636testdata/Prelude.lc 196:15-196:26 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a
666testdata/Prelude.lc 197:1-197:5 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a 637testdata/Prelude.lc 199:1-199:4 {a} -> {b} -> {c:Nat} -> {d : Signed a} -> {e : b ~ VecScalar c a} -> b->b
667testdata/Prelude.lc 197:8-197:16 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a 638testdata/Prelude.lc 199:7-199:14 {a} -> {b} -> {c:Nat} -> {d : Signed a} -> {e : b ~ VecScalar c a} -> b->b
668testdata/Prelude.lc 198:1-198:6 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a 639testdata/Prelude.lc 200:1-200:5 {a} -> {b} -> {c:Nat} -> {d : Signed a} -> {e : b ~ VecScalar c a} -> b->b
669testdata/Prelude.lc 198:9-198:18 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a 640testdata/Prelude.lc 200:8-200:16 {a} -> {b} -> {c:Nat} -> {d : Signed a} -> {e : b ~ VecScalar c a} -> b->b
670testdata/Prelude.lc 199:1-199:5 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a 641testdata/Prelude.lc 201:1-201:6 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a
671testdata/Prelude.lc 199:8-199:16 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a 642testdata/Prelude.lc 201:9-201:18 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a
672testdata/Prelude.lc 200:1-200:6 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a 643testdata/Prelude.lc 202:1-202:6 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a
673testdata/Prelude.lc 200:9-200:18 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a 644testdata/Prelude.lc 202:9-202:18 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a
674testdata/Prelude.lc 201:1-201:6 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a -> a->a 645testdata/Prelude.lc 203:1-203:6 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a
675testdata/Prelude.lc 201:9-201:18 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a -> a->a 646testdata/Prelude.lc 203:9-203:18 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a
676testdata/Prelude.lc 204:1-204:4 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a -> a->a 647testdata/Prelude.lc 204:1-204:10 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a
677testdata/Prelude.lc 204:7-204:14 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a -> a->a 648testdata/Prelude.lc 204:13-204:26 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a
678testdata/Prelude.lc 205:1-205:4 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a 649testdata/Prelude.lc 205:1-205:5 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a
679testdata/Prelude.lc 205:7-205:14 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a 650testdata/Prelude.lc 205:8-205:16 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a
680testdata/Prelude.lc 206:1-206:4 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a 651testdata/Prelude.lc 206:1-206:6 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a
681testdata/Prelude.lc 206:7-206:14 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a 652testdata/Prelude.lc 206:9-206:18 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a
682testdata/Prelude.lc 207:1-207:5 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a 653testdata/Prelude.lc 207:1-207:4 {a} -> {b} -> {c:Nat} -> {d : Num a} -> {e : b ~ VecScalar c a} -> b -> b->b
683testdata/Prelude.lc 207:8-207:16 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a 654testdata/Prelude.lc 207:7-207:14 {a} -> {b} -> {c:Nat} -> {d : Num a} -> {e : b ~ VecScalar c a} -> b -> b->b
684testdata/Prelude.lc 208:1-208:5 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a 655testdata/Prelude.lc 208:1-208:4 {a} -> {b} -> {c:Nat} -> {d : Num a} -> {e : b ~ VecScalar c a} -> b -> b->b
685testdata/Prelude.lc 208:8-208:16 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a 656testdata/Prelude.lc 208:7-208:14 {a} -> {b} -> {c:Nat} -> {d : Num a} -> {e : b ~ VecScalar c a} -> b -> b->b
686testdata/Prelude.lc 209:1-209:5 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a 657testdata/Prelude.lc 209:1-209:4 {a} -> {b} -> {c:Nat} -> {d : Num a} -> {e : b ~ VecScalar c a} -> b -> b->b
687testdata/Prelude.lc 209:8-209:16 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a 658testdata/Prelude.lc 209:7-209:14 {a} -> {b} -> {c:Nat} -> {d : Num a} -> {e : b ~ VecScalar c a} -> b -> b->b
688testdata/Prelude.lc 210:1-210:12 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a 659testdata/Prelude.lc 210:1-210:5 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a -> Tuple2 a a
689testdata/Prelude.lc 210:15-210:26 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a 660testdata/Prelude.lc 210:8-210:16 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a -> Tuple2 a a
690testdata/Prelude.lc 213:1-213:4 {a} -> {b} -> {c:Nat} -> {d : Signed a} -> {e : b ~ VecScalar c a} -> b->b 661testdata/Prelude.lc 211:1-211:6 {a} -> {b} -> {c:Nat} -> {d : Num a} -> {e : b ~ VecScalar c a} -> b -> b -> b->b
691testdata/Prelude.lc 213:7-213:14 {a} -> {b} -> {c:Nat} -> {d : Signed a} -> {e : b ~ VecScalar c a} -> b->b 662testdata/Prelude.lc 211:9-211:18 {a} -> {b} -> {c:Nat} -> {d : Num a} -> {e : b ~ VecScalar c a} -> b -> b -> b->b
692testdata/Prelude.lc 214:1-214:5 {a} -> {b} -> {c:Nat} -> {d : Signed a} -> {e : b ~ VecScalar c a} -> b->b 663testdata/Prelude.lc 212:1-212:7 {a} -> {b} -> {c:Nat} -> {d : Num a} -> {e : b ~ VecScalar c a} -> b -> a -> a->b
693testdata/Prelude.lc 214:8-214:16 {a} -> {b} -> {c:Nat} -> {d : Signed a} -> {e : b ~ VecScalar c a} -> b->b 664testdata/Prelude.lc 212:10-212:20 {a} -> {b} -> {c:Nat} -> {d : Num a} -> {e : b ~ VecScalar c a} -> b -> a -> a->b
694testdata/Prelude.lc 215:1-215:6 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a 665testdata/Prelude.lc 213:1-213:4 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a -> a -> a->a
695testdata/Prelude.lc 215:9-215:18 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a 666testdata/Prelude.lc 213:7-213:14 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a -> a -> a->a
696testdata/Prelude.lc 216:1-216:6 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a 667testdata/Prelude.lc 214:1-214:5 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a -> a -> Float->a
697testdata/Prelude.lc 216:9-216:18 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a 668testdata/Prelude.lc 214:8-214:16 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a -> a -> Float->a
698testdata/Prelude.lc 217:1-217:6 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a 669testdata/Prelude.lc 215:1-215:5 {a} -> {b:Nat} -> {c} -> {d : a ~ VecScalar b Float} -> {e : c ~ VecScalar b Bool} -> a -> a -> c->a
699testdata/Prelude.lc 217:9-217:18 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a 670testdata/Prelude.lc 215:8-215:16 {a} -> {b:Nat} -> {c} -> {d : a ~ VecScalar b Float} -> {e : c ~ VecScalar b Bool} -> a -> a -> c->a
700testdata/Prelude.lc 218:1-218:10 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a 671testdata/Prelude.lc 216:1-216:5 {a} -> {b:Nat} -> {c : a ~ VecS Float b} -> a -> a->a
701testdata/Prelude.lc 218:13-218:26 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a 672testdata/Prelude.lc 216:8-216:16 {a} -> {b:Nat} -> {c : a ~ VecS Float b} -> a -> a->a
702testdata/Prelude.lc 219:1-219:5 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a 673testdata/Prelude.lc 217:1-217:6 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> Float -> a->a
703testdata/Prelude.lc 219:8-219:16 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a 674testdata/Prelude.lc 217:9-217:18 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> Float -> a->a
704testdata/Prelude.lc 220:1-220:6 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a 675testdata/Prelude.lc 218:1-218:11 {a} -> {b:Nat} -> {c : a ~ VecS Float b} -> a -> a -> a->a
705testdata/Prelude.lc 220:9-220:18 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a 676testdata/Prelude.lc 218:14-218:28 {a} -> {b:Nat} -> {c : a ~ VecS Float b} -> a -> a -> a->a
706testdata/Prelude.lc 221:1-221:4 {a} -> {b} -> {c:Nat} -> {d : Num a} -> {e : b ~ VecScalar c a} -> b -> b->b 677testdata/Prelude.lc 219:1-219:12 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> Float -> Float -> a->a
707testdata/Prelude.lc 221:7-221:14 {a} -> {b} -> {c:Nat} -> {d : Num a} -> {e : b ~ VecScalar c a} -> b -> b->b 678testdata/Prelude.lc 219:15-219:30 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> Float -> Float -> a->a
708testdata/Prelude.lc 222:1-222:4 {a} -> {b} -> {c:Nat} -> {d : Num a} -> {e : b ~ VecScalar c a} -> b -> b->b 679testdata/Prelude.lc 220:1-220:6 {a} -> {b:Nat} -> {c} -> {d : a ~ VecScalar b Float} -> {e : c ~ VecScalar b Bool} -> a->c
709testdata/Prelude.lc 222:7-222:14 {a} -> {b} -> {c:Nat} -> {d : Num a} -> {e : b ~ VecScalar c a} -> b -> b->b 680testdata/Prelude.lc 220:9-220:18 {a} -> {b:Nat} -> {c} -> {d : a ~ VecScalar b Float} -> {e : c ~ VecScalar b Bool} -> a->c
710testdata/Prelude.lc 223:1-223:4 {a} -> {b} -> {c:Nat} -> {d : Num a} -> {e : b ~ VecScalar c a} -> b -> b->b 681testdata/Prelude.lc 221:1-221:6 {a} -> {b:Nat} -> {c} -> {d : a ~ VecScalar b Float} -> {e : c ~ VecScalar b Bool} -> a->c
711testdata/Prelude.lc 223:7-223:14 {a} -> {b} -> {c:Nat} -> {d : Num a} -> {e : b ~ VecScalar c a} -> b -> b->b 682testdata/Prelude.lc 221:9-221:18 {a} -> {b:Nat} -> {c} -> {d : a ~ VecScalar b Float} -> {e : c ~ VecScalar b Bool} -> a->c
712testdata/Prelude.lc 224:1-224:5 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a -> Tuple2 a a 683testdata/Prelude.lc 223:1-223:5 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a
713testdata/Prelude.lc 224:8-224:16 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a -> Tuple2 a a 684testdata/Prelude.lc 223:8-223:16 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a
714testdata/Prelude.lc 225:1-225:6 {a} -> {b} -> {c:Nat} -> {d : Num a} -> {e : b ~ VecScalar c a} -> b -> b -> b->b 685testdata/Prelude.lc 224:1-224:5 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a
715testdata/Prelude.lc 225:9-225:18 {a} -> {b} -> {c:Nat} -> {d : Num a} -> {e : b ~ VecScalar c a} -> b -> b -> b->b 686testdata/Prelude.lc 224:8-224:16 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a
716testdata/Prelude.lc 226:1-226:7 {a} -> {b} -> {c:Nat} -> {d : Num a} -> {e : b ~ VecScalar c a} -> b -> a -> a->b 687testdata/Prelude.lc 225:1-225:7 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a
717testdata/Prelude.lc 226:10-226:20 {a} -> {b} -> {c:Nat} -> {d : Num a} -> {e : b ~ VecScalar c a} -> b -> a -> a->b 688testdata/Prelude.lc 225:10-225:20 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a
718testdata/Prelude.lc 227:1-227:4 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a -> a -> a->a 689testdata/Prelude.lc 227:1-227:7 {a:Nat} -> VecScalar a Float -> Float
719testdata/Prelude.lc 227:7-227:14 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a -> a -> a->a 690testdata/Prelude.lc 227:10-227:20 {a:Nat} -> VecScalar a Float -> Float
720testdata/Prelude.lc 228:1-228:5 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a -> a -> Float->a 691testdata/Prelude.lc 228:1-228:7 {a:Nat} -> VecScalar a Float -> VecS Float 2
721testdata/Prelude.lc 228:8-228:16 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a -> a -> Float->a 692testdata/Prelude.lc 228:10-228:20 {a:Nat} -> VecScalar a Float -> VecS Float 2
722testdata/Prelude.lc 229:1-229:5 {a} -> {b:Nat} -> {c} -> {d : a ~ VecScalar b Float} -> {e : c ~ VecScalar b Bool} -> a -> a -> c->a 693testdata/Prelude.lc 229:1-229:7 {a:Nat} -> VecScalar a Float -> VecS Float 3
723testdata/Prelude.lc 229:8-229:16 {a} -> {b:Nat} -> {c} -> {d : a ~ VecScalar b Float} -> {e : c ~ VecScalar b Bool} -> a -> a -> c->a 694testdata/Prelude.lc 229:10-229:20 {a:Nat} -> VecScalar a Float -> VecS Float 3
724testdata/Prelude.lc 230:1-230:5 {a} -> {b:Nat} -> {c : a ~ VecS Float b} -> a -> a->a 695testdata/Prelude.lc 230:1-230:7 {a:Nat} -> VecScalar a Float -> VecS Float 4
725testdata/Prelude.lc 230:8-230:16 {a} -> {b:Nat} -> {c : a ~ VecS Float b} -> a -> a->a 696testdata/Prelude.lc 230:10-230:20 {a:Nat} -> VecScalar a Float -> VecS Float 4
726testdata/Prelude.lc 231:1-231:6 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> Float -> a->a 697testdata/Prelude.lc 233:1-233:7 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->Float
727testdata/Prelude.lc 231:9-231:18 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> Float -> a->a 698testdata/Prelude.lc 233:10-233:20 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->Float
728testdata/Prelude.lc 232:1-232:11 {a} -> {b:Nat} -> {c : a ~ VecS Float b} -> a -> a -> a->a 699testdata/Prelude.lc 234:1-234:9 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a -> a->Float
729testdata/Prelude.lc 232:14-232:28 {a} -> {b:Nat} -> {c : a ~ VecS Float b} -> a -> a -> a->a 700testdata/Prelude.lc 234:12-234:24 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a -> a->Float
730testdata/Prelude.lc 233:1-233:12 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> Float -> Float -> a->a 701testdata/Prelude.lc 235:1-235:4 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a -> a->Float
731testdata/Prelude.lc 233:15-233:30 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> Float -> Float -> a->a 702testdata/Prelude.lc 235:7-235:14 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a -> a->Float
732testdata/Prelude.lc 234:1-234:6 {a} -> {b:Nat} -> {c} -> {d : a ~ VecScalar b Float} -> {e : c ~ VecScalar b Bool} -> a->c 703testdata/Prelude.lc 236:1-236:6 {a} -> {b : a ~ VecS Float 3} -> a -> a->a
733testdata/Prelude.lc 234:9-234:18 {a} -> {b:Nat} -> {c} -> {d : a ~ VecScalar b Float} -> {e : c ~ VecScalar b Bool} -> a->c 704testdata/Prelude.lc 236:9-236:18 {a} -> {b : a ~ VecS Float 3} -> a -> a->a
734testdata/Prelude.lc 235:1-235:6 {a} -> {b:Nat} -> {c} -> {d : a ~ VecScalar b Float} -> {e : c ~ VecScalar b Bool} -> a->c 705testdata/Prelude.lc 237:1-237:10 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a
735testdata/Prelude.lc 235:9-235:18 {a} -> {b:Nat} -> {c} -> {d : a ~ VecScalar b Float} -> {e : c ~ VecScalar b Bool} -> a->c 706testdata/Prelude.lc 237:13-237:26 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a
736testdata/Prelude.lc 237:1-237:5 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a 707testdata/Prelude.lc 238:1-238:12 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a -> a -> a->a
737testdata/Prelude.lc 237:8-237:16 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a 708testdata/Prelude.lc 238:15-238:30 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a -> a -> a->a
738testdata/Prelude.lc 238:1-238:5 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a 709testdata/Prelude.lc 239:1-239:8 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a -> a->a
739testdata/Prelude.lc 238:8-238:16 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a 710testdata/Prelude.lc 239:11-239:22 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a -> a->a
740testdata/Prelude.lc 239:1-239:7 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a 711testdata/Prelude.lc 240:1-240:8 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a -> a -> a->a
741testdata/Prelude.lc 239:10-239:20 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a 712testdata/Prelude.lc 240:11-240:22 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a -> a -> a->a
742testdata/Prelude.lc 241:1-241:7 {a:Nat} -> VecScalar a Float -> Float 713testdata/Prelude.lc 242:1-242:10 {a:Nat} -> {b:Nat} -> {c} -> Mat a b c -> Mat b a c
743testdata/Prelude.lc 241:10-241:20 {a:Nat} -> VecScalar a Float -> Float 714testdata/Prelude.lc 242:13-242:26 {a:Nat} -> {b:Nat} -> {c} -> Mat a b c -> Mat b a c
744testdata/Prelude.lc 242:1-242:7 {a:Nat} -> VecScalar a Float -> VecS Float 2 715testdata/Prelude.lc 243:1-243:4 {a:Nat} -> {b} -> Mat a a b -> Float
745testdata/Prelude.lc 242:10-242:20 {a:Nat} -> VecScalar a Float -> VecS Float 2 716testdata/Prelude.lc 243:7-243:22 {a:Nat} -> {b} -> Mat a a b -> Float
746testdata/Prelude.lc 243:1-243:7 {a:Nat} -> VecScalar a Float -> VecS Float 3 717testdata/Prelude.lc 244:1-244:4 {a:Nat} -> {b} -> Mat a a b -> Mat a a b
747testdata/Prelude.lc 243:10-243:20 {a:Nat} -> VecScalar a Float -> VecS Float 3 718testdata/Prelude.lc 244:7-244:18 {a:Nat} -> {b} -> Mat a a b -> Mat a a b
748testdata/Prelude.lc 244:1-244:7 {a:Nat} -> VecScalar a Float -> VecS Float 4 719testdata/Prelude.lc 245:1-245:6 {a:Nat} -> {b} -> {c:Nat} -> VecS b a -> VecS b c -> Mat c a b
749testdata/Prelude.lc 244:10-244:20 {a:Nat} -> VecScalar a Float -> VecS Float 4 720testdata/Prelude.lc 245:9-245:25 {a:Nat} -> {b} -> {c:Nat} -> VecS b a -> VecS b c -> Mat c a b
750testdata/Prelude.lc 247:1-247:7 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->Float 721testdata/Prelude.lc 263:3-263:4 {a} -> {b : Num (MatVecScalarElem a)} -> a -> a->a
751testdata/Prelude.lc 247:10-247:20 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->Float 722testdata/Prelude.lc 263:9-263:16 {a} -> {b : Num (MatVecScalarElem a)} -> a -> a->a
752testdata/Prelude.lc 248:1-248:9 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a -> a->Float 723testdata/Prelude.lc 263:9-263:18 V4->V5
753testdata/Prelude.lc 248:12-248:24 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a -> a->Float 724testdata/Prelude.lc 263:9-263:20 V3
754testdata/Prelude.lc 249:1-249:4 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a -> a->Float 725testdata/Prelude.lc 263:17-263:18 V5
755testdata/Prelude.lc 249:7-249:14 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a -> a->Float 726testdata/Prelude.lc 263:19-263:20 V2
756testdata/Prelude.lc 250:1-250:6 {a} -> {b : a ~ VecS Float 3} -> a -> a->a 727testdata/Prelude.lc 264:3-264:4 {a} -> {b : Num (MatVecScalarElem a)} -> a -> a->a
757testdata/Prelude.lc 250:9-250:18 {a} -> {b : a ~ VecS Float 3} -> a -> a->a 728testdata/Prelude.lc 264:9-264:16 {a} -> {b : Num (MatVecScalarElem a)} -> a -> a->a
758testdata/Prelude.lc 251:1-251:10 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a 729testdata/Prelude.lc 264:9-264:18 V4->V5
759testdata/Prelude.lc 251:13-251:26 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a 730testdata/Prelude.lc 264:9-264:20 V3
760testdata/Prelude.lc 252:1-252:12 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a -> a -> a->a 731testdata/Prelude.lc 264:17-264:18 V5
761testdata/Prelude.lc 252:15-252:30 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a -> a -> a->a 732testdata/Prelude.lc 264:19-264:20 V2
762testdata/Prelude.lc 253:1-253:8 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a -> a->a 733testdata/Prelude.lc 265:3-265:4 {a} -> {b : Num (MatVecScalarElem a)} -> a -> a->a
763testdata/Prelude.lc 253:11-253:22 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a -> a->a 734testdata/Prelude.lc 265:9-265:16 {a} -> {b : Num (MatVecScalarElem a)} -> a -> a->a
764testdata/Prelude.lc 254:1-254:8 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a -> a -> a->a 735testdata/Prelude.lc 265:9-265:18 V4->V5
765testdata/Prelude.lc 254:11-254:22 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a -> a -> a->a 736testdata/Prelude.lc 265:9-265:20 V3
766testdata/Prelude.lc 256:1-256:10 {a:Nat} -> {b:Nat} -> {c} -> Mat a b c -> Mat b a c 737testdata/Prelude.lc 265:17-265:18 V5
767testdata/Prelude.lc 256:13-256:26 {a:Nat} -> {b:Nat} -> {c} -> Mat a b c -> Mat b a c 738testdata/Prelude.lc 265:19-265:20 V2
768testdata/Prelude.lc 257:1-257:4 {a:Nat} -> {b} -> Mat a a b -> Float 739testdata/Prelude.lc 266:3-266:4 {a} -> {b:Nat} -> {c : Num a} -> VecScalar b a -> VecScalar b a -> VecScalar b a
769testdata/Prelude.lc 257:7-257:22 {a:Nat} -> {b} -> Mat a a b -> Float 740testdata/Prelude.lc 266:9-266:16 {a} -> {b} -> {c:Nat} -> {d : Num a} -> {e : b ~ VecScalar c a} -> b -> b->b
770testdata/Prelude.lc 258:1-258:4 {a:Nat} -> {b} -> Mat a a b -> Mat a a b 741testdata/Prelude.lc 266:9-266:18 VecScalar V1 V2 -> VecScalar V2 V3
771testdata/Prelude.lc 258:7-258:18 {a:Nat} -> {b} -> Mat a a b -> Mat a a b 742testdata/Prelude.lc 266:9-266:20 VecScalar V1 V2
772testdata/Prelude.lc 259:1-259:6 {a:Nat} -> {b} -> {c:Nat} -> VecS b a -> VecS b c -> Mat c a b 743testdata/Prelude.lc 266:17-266:18 V6
773testdata/Prelude.lc 259:9-259:25 {a:Nat} -> {b} -> {c:Nat} -> VecS b a -> VecS b c -> Mat c a b 744testdata/Prelude.lc 266:19-266:20 V4
774testdata/Prelude.lc 277:3-277:4 {a} -> {b : Num (MatVecScalarElem a)} -> a -> a->a 745testdata/Prelude.lc 267:3-267:4 {a} -> {b:Nat} -> {c : Num a} -> VecScalar b a -> VecScalar b a -> VecScalar b a
775testdata/Prelude.lc 277:9-277:16 {a} -> {b : Num (MatVecScalarElem a)} -> a -> a->a 746testdata/Prelude.lc 267:9-267:16 {a} -> {b} -> {c:Nat} -> {d : Num a} -> {e : b ~ VecScalar c a} -> b -> b->b
776testdata/Prelude.lc 277:9-277:18 V4->V5 747testdata/Prelude.lc 267:9-267:18 VecScalar V1 V2 -> VecScalar V2 V3
777testdata/Prelude.lc 277:9-277:20 V3 748testdata/Prelude.lc 267:9-267:20 VecScalar V1 V2
778testdata/Prelude.lc 277:17-277:18 V5 749testdata/Prelude.lc 267:17-267:18 V6
779testdata/Prelude.lc 277:19-277:20 V2 750testdata/Prelude.lc 267:19-267:20 V4
780testdata/Prelude.lc 278:3-278:4 {a} -> {b : Num (MatVecScalarElem a)} -> a -> a->a 751testdata/Prelude.lc 269:1-269:4 {a} -> {b : Signed (MatVecScalarElem a)} -> a->a
781testdata/Prelude.lc 278:9-278:16 {a} -> {b : Num (MatVecScalarElem a)} -> a -> a->a 752testdata/Prelude.lc 269:9-269:16 {a} -> {b : Signed (MatVecScalarElem a)} -> a->a
782testdata/Prelude.lc 278:9-278:18 V4->V5 753testdata/Prelude.lc 269:9-269:18 V2
783testdata/Prelude.lc 278:9-278:20 V3 754testdata/Prelude.lc 269:17-269:18 V3
784testdata/Prelude.lc 278:17-278:18 V5 755testdata/Prelude.lc 273:3-273:5 {a} -> a -> a->Bool
785testdata/Prelude.lc 278:19-278:20 V2 756testdata/Prelude.lc 273:10-273:22 {a} -> {b} -> {c : a ~ MatVecScalarElem b} -> b -> b->Bool
786testdata/Prelude.lc 279:3-279:4 {a} -> {b : Num (MatVecScalarElem a)} -> a -> a->a 757testdata/Prelude.lc 273:10-273:24 V3->Bool
787testdata/Prelude.lc 279:9-279:16 {a} -> {b : Num (MatVecScalarElem a)} -> a -> a->a 758testdata/Prelude.lc 273:10-273:26 Bool
788testdata/Prelude.lc 279:9-279:18 V4->V5 759testdata/Prelude.lc 273:23-273:24 V4
789testdata/Prelude.lc 279:9-279:20 V3 760testdata/Prelude.lc 273:25-273:26 V1
790testdata/Prelude.lc 279:17-279:18 V5 761testdata/Prelude.lc 274:3-274:4 {a} -> {b:Nat} -> {c : Num a} -> VecScalar b a -> VecScalar b a -> VecScalar b Bool
791testdata/Prelude.lc 279:19-279:20 V2 762testdata/Prelude.lc 274:9-274:21 {a} -> {b} -> {c:Nat} -> {d} -> {e : Num a} -> {f : b ~ VecScalar c a} -> {g : d ~ VecScalar c Bool} -> b -> b->d
792testdata/Prelude.lc 280:3-280:4 {a} -> {b:Nat} -> {c : Num a} -> VecScalar b a -> VecScalar b a -> VecScalar b a 763testdata/Prelude.lc 274:9-274:23 VecScalar V1 V2 -> VecScalar V2 Bool
793testdata/Prelude.lc 280:9-280:16 {a} -> {b} -> {c:Nat} -> {d : Num a} -> {e : b ~ VecScalar c a} -> b -> b->b 764testdata/Prelude.lc 274:9-274:25 VecScalar V1 Bool
794testdata/Prelude.lc 280:9-280:18 VecScalar V1 V2 -> VecScalar V2 V3 765testdata/Prelude.lc 274:22-274:23 V6
795testdata/Prelude.lc 280:9-280:20 VecScalar V1 V2 766testdata/Prelude.lc 274:24-274:25 V4
796testdata/Prelude.lc 280:17-280:18 V6 767testdata/Prelude.lc 275:3-275:5 {a} -> {b:Nat} -> {c : Num a} -> VecScalar b a -> VecScalar b a -> VecScalar b Bool
797testdata/Prelude.lc 280:19-280:20 V4 768testdata/Prelude.lc 275:10-275:27 {a} -> {b} -> {c:Nat} -> {d} -> {e : Num a} -> {f : b ~ VecScalar c a} -> {g : d ~ VecScalar c Bool} -> b -> b->d
798testdata/Prelude.lc 281:3-281:4 {a} -> {b:Nat} -> {c : Num a} -> VecScalar b a -> VecScalar b a -> VecScalar b a 769testdata/Prelude.lc 275:10-275:29 VecScalar V1 V2 -> VecScalar V2 Bool
799testdata/Prelude.lc 281:9-281:16 {a} -> {b} -> {c:Nat} -> {d : Num a} -> {e : b ~ VecScalar c a} -> b -> b->b 770testdata/Prelude.lc 275:10-275:31 VecScalar V1 Bool
800testdata/Prelude.lc 281:9-281:18 VecScalar V1 V2 -> VecScalar V2 V3 771testdata/Prelude.lc 275:28-275:29 V6
801testdata/Prelude.lc 281:9-281:20 VecScalar V1 V2 772testdata/Prelude.lc 275:30-275:31 V4
802testdata/Prelude.lc 281:17-281:18 V6 773testdata/Prelude.lc 276:3-276:5 {a} -> {b:Nat} -> {c : Num a} -> VecScalar b a -> VecScalar b a -> VecScalar b Bool
803testdata/Prelude.lc 281:19-281:20 V4 774testdata/Prelude.lc 276:10-276:30 {a} -> {b} -> {c:Nat} -> {d} -> {e : Num a} -> {f : b ~ VecScalar c a} -> {g : d ~ VecScalar c Bool} -> b -> b->d
804testdata/Prelude.lc 283:1-283:4 {a} -> {b : Signed (MatVecScalarElem a)} -> a->a 775testdata/Prelude.lc 276:10-276:32 VecScalar V1 V2 -> VecScalar V2 Bool
805testdata/Prelude.lc 283:9-283:16 {a} -> {b : Signed (MatVecScalarElem a)} -> a->a 776testdata/Prelude.lc 276:10-276:34 VecScalar V1 Bool
806testdata/Prelude.lc 283:9-283:18 V2 777testdata/Prelude.lc 276:31-276:32 V6
807testdata/Prelude.lc 283:17-283:18 V3 778testdata/Prelude.lc 276:33-276:34 V4
808testdata/Prelude.lc 287:3-287:5 {a} -> a -> a->Bool 779testdata/Prelude.lc 277:3-277:4 {a} -> {b:Nat} -> {c : Num a} -> VecScalar b a -> VecScalar b a -> VecScalar b Bool
809testdata/Prelude.lc 287:10-287:22 {a} -> {b} -> {c : a ~ MatVecScalarElem b} -> b -> b->Bool 780testdata/Prelude.lc 277:9-277:24 {a} -> {b} -> {c:Nat} -> {d} -> {e : Num a} -> {f : b ~ VecScalar c a} -> {g : d ~ VecScalar c Bool} -> b -> b->d
810testdata/Prelude.lc 287:10-287:24 V3->Bool 781testdata/Prelude.lc 277:9-277:26 VecScalar V1 V2 -> VecScalar V2 Bool
811testdata/Prelude.lc 287:10-287:26 Bool 782testdata/Prelude.lc 277:9-277:28 VecScalar V1 Bool
812testdata/Prelude.lc 287:23-287:24 V4 783testdata/Prelude.lc 277:25-277:26 V6
813testdata/Prelude.lc 287:25-287:26 V1 784testdata/Prelude.lc 277:27-277:28 V4
814testdata/Prelude.lc 288:3-288:4 {a} -> {b:Nat} -> {c : Num a} -> VecScalar b a -> VecScalar b a -> VecScalar b Bool 785testdata/Prelude.lc 280:3-280:5 Bool -> Bool->Bool
815testdata/Prelude.lc 288:9-288:21 {a} -> {b} -> {c:Nat} -> {d} -> {e : Num a} -> {f : b ~ VecScalar c a} -> {g : d ~ VecScalar c Bool} -> b -> b->d 786testdata/Prelude.lc 280:10-280:17 Bool -> Bool->Bool
816testdata/Prelude.lc 288:9-288:23 VecScalar V1 V2 -> VecScalar V2 Bool 787testdata/Prelude.lc 280:10-280:19 Bool->Bool
817testdata/Prelude.lc 288:9-288:25 VecScalar V1 Bool 788testdata/Prelude.lc 280:10-280:21 Bool
818testdata/Prelude.lc 288:22-288:23 V6 789testdata/Prelude.lc 280:18-280:19 V3
819testdata/Prelude.lc 288:24-288:25 V4 790testdata/Prelude.lc 280:20-280:21 V1
820testdata/Prelude.lc 289:3-289:5 {a} -> {b:Nat} -> {c : Num a} -> VecScalar b a -> VecScalar b a -> VecScalar b Bool 791testdata/Prelude.lc 281:3-281:5 Bool -> Bool->Bool
821testdata/Prelude.lc 289:10-289:27 {a} -> {b} -> {c:Nat} -> {d} -> {e : Num a} -> {f : b ~ VecScalar c a} -> {g : d ~ VecScalar c Bool} -> b -> b->d 792testdata/Prelude.lc 281:10-281:16 Bool -> Bool->Bool
822testdata/Prelude.lc 289:10-289:29 VecScalar V1 V2 -> VecScalar V2 Bool 793testdata/Prelude.lc 281:10-281:18 Bool->Bool
823testdata/Prelude.lc 289:10-289:31 VecScalar V1 Bool 794testdata/Prelude.lc 281:10-281:20 Bool
824testdata/Prelude.lc 289:28-289:29 V6 795testdata/Prelude.lc 281:17-281:18 V3
825testdata/Prelude.lc 289:30-289:31 V4 796testdata/Prelude.lc 281:19-281:20 V1
826testdata/Prelude.lc 290:3-290:5 {a} -> {b:Nat} -> {c : Num a} -> VecScalar b a -> VecScalar b a -> VecScalar b Bool 797testdata/Prelude.lc 282:1-282:4 Bool -> Bool->Bool
827testdata/Prelude.lc 290:10-290:30 {a} -> {b} -> {c:Nat} -> {d} -> {e : Num a} -> {f : b ~ VecScalar c a} -> {g : d ~ VecScalar c Bool} -> b -> b->d 798testdata/Prelude.lc 282:7-282:14 Bool -> Bool->Bool
828testdata/Prelude.lc 290:10-290:32 VecScalar V1 V2 -> VecScalar V2 Bool 799testdata/Prelude.lc 283:1-283:4 {a:Nat} -> VecScalar a Bool -> VecScalar a Bool
829testdata/Prelude.lc 290:10-290:34 VecScalar V1 Bool 800testdata/Prelude.lc 283:9-283:16 {a} -> {b:Nat} -> {c : a ~ VecScalar b Bool} -> a->a
830testdata/Prelude.lc 290:31-290:32 V6 801testdata/Prelude.lc 283:9-283:18 VecScalar V0 Bool
831testdata/Prelude.lc 290:33-290:34 V4 802testdata/Prelude.lc 283:17-283:18 V2
832testdata/Prelude.lc 291:3-291:4 {a} -> {b:Nat} -> {c : Num a} -> VecScalar b a -> VecScalar b a -> VecScalar b Bool 803testdata/Prelude.lc 284:1-284:4 {a:Nat} -> VecScalar a Bool -> Bool
833testdata/Prelude.lc 291:9-291:24 {a} -> {b} -> {c:Nat} -> {d} -> {e : Num a} -> {f : b ~ VecScalar c a} -> {g : d ~ VecScalar c Bool} -> b -> b->d 804testdata/Prelude.lc 284:9-284:16 {a:Nat} -> VecScalar a Bool -> Bool
834testdata/Prelude.lc 291:9-291:26 VecScalar V1 V2 -> VecScalar V2 Bool 805testdata/Prelude.lc 284:9-284:18 Bool
835testdata/Prelude.lc 291:9-291:28 VecScalar V1 Bool 806testdata/Prelude.lc 284:17-284:18 V2
836testdata/Prelude.lc 291:25-291:26 V6 807testdata/Prelude.lc 285:1-285:4 {a:Nat} -> VecScalar a Bool -> Bool
837testdata/Prelude.lc 291:27-291:28 V4 808testdata/Prelude.lc 285:9-285:16 {a:Nat} -> VecScalar a Bool -> Bool
838testdata/Prelude.lc 294:3-294:5 Bool -> Bool->Bool 809testdata/Prelude.lc 285:9-285:18 Bool
839testdata/Prelude.lc 294:10-294:17 Bool -> Bool->Bool 810testdata/Prelude.lc 285:17-285:18 V2
840testdata/Prelude.lc 294:10-294:19 Bool->Bool 811testdata/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
841testdata/Prelude.lc 294:10-294:21 Bool 812testdata/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
842testdata/Prelude.lc 294:18-294:19 V3 813testdata/Prelude.lc 288:11-288:26 Mat V2 V0 V1 -> Mat V4 V1 V2
843testdata/Prelude.lc 294:20-294:21 V1 814testdata/Prelude.lc 288:11-288:28 Mat V3 V0 V1
844testdata/Prelude.lc 295:3-295:5 Bool -> Bool->Bool 815testdata/Prelude.lc 288:25-288:26 V7
845testdata/Prelude.lc 295:10-295:16 Bool -> Bool->Bool 816testdata/Prelude.lc 288:27-288:28 V5
846testdata/Prelude.lc 295:10-295:18 Bool->Bool 817testdata/Prelude.lc 289:3-289:5 {a:Nat} -> {b:Nat} -> {c} -> Mat a b c -> VecS c b -> VecS c a
847testdata/Prelude.lc 295:10-295:20 Bool 818testdata/Prelude.lc 289:10-289:23 {a:Nat} -> {b:Nat} -> {c} -> Mat a b c -> VecS c b -> VecS c a
848testdata/Prelude.lc 295:17-295:18 V3 819testdata/Prelude.lc 289:10-289:25 VecS V0 V1 -> VecS V1 V3
849testdata/Prelude.lc 295:19-295:20 V1 820testdata/Prelude.lc 289:10-289:27 VecS V0 V2
850testdata/Prelude.lc 296:1-296:4 Bool -> Bool->Bool 821testdata/Prelude.lc 289:24-289:25 V6
851testdata/Prelude.lc 296:7-296:14 Bool -> Bool->Bool 822testdata/Prelude.lc 289:26-289:27 V4
852testdata/Prelude.lc 297:1-297:4 {a:Nat} -> VecScalar a Bool -> VecScalar a Bool 823testdata/Prelude.lc 290:3-290:5 {a:Nat} -> {b} -> {c:Nat} -> VecS b a -> Mat a c b -> VecS b c
853testdata/Prelude.lc 297:9-297:16 {a} -> {b:Nat} -> {c : a ~ VecScalar b Bool} -> a->a 824testdata/Prelude.lc 290:10-290:23 {a:Nat} -> {b} -> {c:Nat} -> VecS b a -> Mat a c b -> VecS b c
854testdata/Prelude.lc 297:9-297:18 VecScalar V0 Bool 825testdata/Prelude.lc 290:10-290:25 Mat V2 V0 V1 -> VecS V2 V1
855testdata/Prelude.lc 297:17-297:18 V2 826testdata/Prelude.lc 290:10-290:27 VecS V1 V0
856testdata/Prelude.lc 298:1-298:4 {a:Nat} -> VecScalar a Bool -> Bool 827testdata/Prelude.lc 290:24-290:25 V6
857testdata/Prelude.lc 298:9-298:16 {a:Nat} -> VecScalar a Bool -> Bool 828testdata/Prelude.lc 290:26-290:27 V4
858testdata/Prelude.lc 298:9-298:18 Bool 829testdata/Prelude.lc 297:3-297:5 {a} -> {b : Num (MatVecScalarElem a)} -> a -> MatVecScalarElem a -> a
859testdata/Prelude.lc 298:17-298:18 V2 830testdata/Prelude.lc 297:10-297:18 {a} -> {b} -> {c : a ~ MatVecScalarElem b} -> {d : Num a} -> b -> a->b
860testdata/Prelude.lc 299:1-299:4 {a:Nat} -> VecScalar a Bool -> Bool 831testdata/Prelude.lc 297:10-297:20 MatVecScalarElem V4 -> V5
861testdata/Prelude.lc 299:9-299:16 {a:Nat} -> VecScalar a Bool -> Bool 832testdata/Prelude.lc 297:10-297:22 V3
862testdata/Prelude.lc 299:9-299:18 Bool 833testdata/Prelude.lc 297:19-297:20 V5
863testdata/Prelude.lc 299:17-299:18 V2 834testdata/Prelude.lc 297:21-297:22 V2
864testdata/Prelude.lc 302:3-302:6 {a:Nat} -> {b:Nat} -> {c} -> {d:Nat} -> Mat a b c -> Mat b d c -> Mat a d c 835testdata/Prelude.lc 298:3-298:5 {a} -> {b : Num (MatVecScalarElem a)} -> a -> MatVecScalarElem a -> a
865testdata/Prelude.lc 302:11-302:24 {a:Nat} -> {b:Nat} -> {c} -> {d:Nat} -> Mat a b c -> Mat b d c -> Mat a d c 836testdata/Prelude.lc 298:10-298:18 {a} -> {b} -> {c : a ~ MatVecScalarElem b} -> {d : Num a} -> b -> a->b
866testdata/Prelude.lc 302:11-302:26 Mat V2 V0 V1 -> Mat V4 V1 V2 837testdata/Prelude.lc 298:10-298:20 MatVecScalarElem V4 -> V5
867testdata/Prelude.lc 302:11-302:28 Mat V3 V0 V1 838testdata/Prelude.lc 298:10-298:22 V3
868testdata/Prelude.lc 302:25-302:26 V7 839testdata/Prelude.lc 298:19-298:20 V5
869testdata/Prelude.lc 302:27-302:28 V5 840testdata/Prelude.lc 298:21-298:22 V2
870testdata/Prelude.lc 303:3-303:5 {a:Nat} -> {b:Nat} -> {c} -> Mat a b c -> VecS c b -> VecS c a 841testdata/Prelude.lc 299:3-299:5 {a} -> {b : Num (MatVecScalarElem a)} -> a -> MatVecScalarElem a -> a
871testdata/Prelude.lc 303:10-303:23 {a:Nat} -> {b:Nat} -> {c} -> Mat a b c -> VecS c b -> VecS c a 842testdata/Prelude.lc 299:10-299:18 {a} -> {b} -> {c : a ~ MatVecScalarElem b} -> {d : Num a} -> b -> a->b
872testdata/Prelude.lc 303:10-303:25 VecS V0 V1 -> VecS V1 V3 843testdata/Prelude.lc 299:10-299:20 MatVecScalarElem V4 -> V5
873testdata/Prelude.lc 303:10-303:27 VecS V0 V2 844testdata/Prelude.lc 299:10-299:22 V3
874testdata/Prelude.lc 303:24-303:25 V6 845testdata/Prelude.lc 299:19-299:20 V5
875testdata/Prelude.lc 303:26-303:27 V4 846testdata/Prelude.lc 299:21-299:22 V2
876testdata/Prelude.lc 304:3-304:5 {a:Nat} -> {b} -> {c:Nat} -> VecS b a -> Mat a c b -> VecS b c 847testdata/Prelude.lc 300:3-300:5 {a} -> {b:Nat} -> {c : Num a} -> VecScalar b a -> a -> VecScalar b a
877testdata/Prelude.lc 304:10-304:23 {a:Nat} -> {b} -> {c:Nat} -> VecS b a -> Mat a c b -> VecS b c 848testdata/Prelude.lc 300:10-300:18 {a} -> {b} -> {c:Nat} -> {d : Num a} -> {e : b ~ VecScalar c a} -> b -> a->b
878testdata/Prelude.lc 304:10-304:25 Mat V2 V0 V1 -> VecS V2 V1 849testdata/Prelude.lc 300:10-300:20 V2 -> VecScalar V2 V3
879testdata/Prelude.lc 304:10-304:27 VecS V1 V0 850testdata/Prelude.lc 300:10-300:22 VecScalar V1 V3
880testdata/Prelude.lc 304:24-304:25 V6 851testdata/Prelude.lc 300:19-300:20 V6
881testdata/Prelude.lc 304:26-304:27 V4 852testdata/Prelude.lc 300:21-300:22 V4
882testdata/Prelude.lc 311:3-311:5 {a} -> {b : Num (MatVecScalarElem a)} -> a -> MatVecScalarElem a -> a 853testdata/Prelude.lc 301:3-301:5 {a} -> {b:Nat} -> {c : Num a} -> VecScalar b a -> a -> VecScalar b a
883testdata/Prelude.lc 311:10-311:18 {a} -> {b} -> {c : a ~ MatVecScalarElem b} -> {d : Num a} -> b -> a->b 854testdata/Prelude.lc 301:10-301:18 {a} -> {b} -> {c:Nat} -> {d : Num a} -> {e : b ~ VecScalar c a} -> b -> a->b
884testdata/Prelude.lc 311:10-311:20 MatVecScalarElem V4 -> V5 855testdata/Prelude.lc 301:10-301:20 V2 -> VecScalar V2 V3
885testdata/Prelude.lc 311:10-311:22 V3 856testdata/Prelude.lc 301:10-301:22 VecScalar V1 V3
886testdata/Prelude.lc 311:19-311:20 V5 857testdata/Prelude.lc 301:19-301:20 V6
887testdata/Prelude.lc 311:21-311:22 V2 858testdata/Prelude.lc 301:21-301:22 V4
888testdata/Prelude.lc 312:3-312:5 {a} -> {b : Num (MatVecScalarElem a)} -> a -> MatVecScalarElem a -> a 859testdata/Prelude.lc 324:1-324:11 Float -> Mat 4 4 Float
889testdata/Prelude.lc 312:10-312:18 {a} -> {b} -> {c : a ~ MatVecScalarElem b} -> {d : Num a} -> b -> a->b 860testdata/Prelude.lc 324:16-324:20 VecS Float 4 -> VecS Float 4 -> VecS Float 4 -> VecS Float 4 -> Mat 4 4 Float
890testdata/Prelude.lc 312:10-312:20 MatVecScalarElem V4 -> V5 861testdata/Prelude.lc 324:16-324:33 VecS Float 4 -> VecS Float 4 -> VecS Float 4 -> Mat 4 4 Float
891testdata/Prelude.lc 312:10-312:22 V3 862testdata/Prelude.lc 324:16-324:49 VecS Float 4 -> VecS Float 4 -> Mat 4 4 Float
892testdata/Prelude.lc 312:19-312:20 V5 863testdata/Prelude.lc 324:16-324:62 VecS Float 4 -> Mat 4 4 Float
893testdata/Prelude.lc 312:21-312:22 V2 864testdata/Prelude.lc 324:16-324:75 Mat 4 4 Float
894testdata/Prelude.lc 313:3-313:5 {a} -> {b : Num (MatVecScalarElem a)} -> a -> MatVecScalarElem a -> a 865testdata/Prelude.lc 324:21-324:33 VecS Float 4
895testdata/Prelude.lc 313:10-313:18 {a} -> {b} -> {c : a ~ MatVecScalarElem b} -> {d : Num a} -> b -> a->b 866testdata/Prelude.lc 324:22-324:24 {a} -> a -> a -> a -> a -> VecS a 4
896testdata/Prelude.lc 313:10-313:20 MatVecScalarElem V4 -> V5 867testdata/Prelude.lc 324:22-324:26 VecScalar V2 Float -> VecScalar V3 Float -> VecScalar V4 Float -> VecS (VecScalar V5 Float) 4
897testdata/Prelude.lc 313:10-313:22 V3 868testdata/Prelude.lc 324:22-324:28 VecScalar V2 Float -> VecScalar V3 Float -> VecS (VecScalar V4 Float) 4
898testdata/Prelude.lc 313:19-313:20 V5 869testdata/Prelude.lc 324:22-324:30 VecScalar V3 Float -> VecS (VecScalar V4 Float) 4
899testdata/Prelude.lc 313:21-313:22 V2 870testdata/Prelude.lc 324:25-324:26 VecScalar V3 Float
900testdata/Prelude.lc 314:3-314:5 {a} -> {b:Nat} -> {c : Num a} -> VecScalar b a -> a -> VecScalar b a 871testdata/Prelude.lc 324:27-324:28 VecScalar V2 Float
901testdata/Prelude.lc 314:10-314:18 {a} -> {b} -> {c:Nat} -> {d : Num a} -> {e : b ~ VecScalar c a} -> b -> a->b 872testdata/Prelude.lc 324:29-324:30 V1
902testdata/Prelude.lc 314:10-314:20 V2 -> VecScalar V2 V3 873testdata/Prelude.lc 324:31-324:32 V1
903testdata/Prelude.lc 314:10-314:22 VecScalar V1 V3 874testdata/Prelude.lc 324:34-324:49 VecS Float 4
904testdata/Prelude.lc 314:19-314:20 V6 875testdata/Prelude.lc 324:35-324:37 {a} -> a -> a -> a -> a -> VecS a 4
905testdata/Prelude.lc 314:21-314:22 V4 876testdata/Prelude.lc 324:35-324:42 Float -> Float -> Float -> VecS Float 4
906testdata/Prelude.lc 315:3-315:5 {a} -> {b:Nat} -> {c : Num a} -> VecScalar b a -> a -> VecScalar b a 877testdata/Prelude.lc 324:35-324:44 Float -> Float -> VecS Float 4
907testdata/Prelude.lc 315:10-315:18 {a} -> {b} -> {c:Nat} -> {d : Num a} -> {e : b ~ VecScalar c a} -> b -> a->b 878testdata/Prelude.lc 324:35-324:46 Float -> VecS Float 4
908testdata/Prelude.lc 315:10-315:20 V2 -> VecScalar V2 V3 879testdata/Prelude.lc 324:38-324:42 Float
909testdata/Prelude.lc 315:10-315:22 VecScalar V1 V3 880testdata/Prelude.lc 324:39-324:40 {a} -> {b : Num (MatVecScalarElem a)} -> a -> a->a
910testdata/Prelude.lc 315:19-315:20 V6 881testdata/Prelude.lc 324:40-324:41 Float
911testdata/Prelude.lc 315:21-315:22 V4 882testdata/Prelude.lc 324:43-324:44 Float
912testdata/Prelude.lc 338:1-338:11 Float -> Mat 4 4 Float 883testdata/Prelude.lc 324:45-324:46 V1
913testdata/Prelude.lc 338:16-338:20 VecS Float 4 -> VecS Float 4 -> VecS Float 4 -> VecS Float 4 -> Mat 4 4 Float 884testdata/Prelude.lc 324:47-324:48 V1
914testdata/Prelude.lc 338:16-338:33 VecS Float 4 -> VecS Float 4 -> VecS Float 4 -> Mat 4 4 Float 885testdata/Prelude.lc 324:50-324:62 VecS Float 4
915testdata/Prelude.lc 338:16-338:49 VecS Float 4 -> VecS Float 4 -> Mat 4 4 Float 886testdata/Prelude.lc 324:51-324:53 {a} -> a -> a -> a -> a -> VecS a 4
916testdata/Prelude.lc 338:16-338:62 VecS Float 4 -> Mat 4 4 Float 887testdata/Prelude.lc 324:51-324:55 V1 -> V2 -> V3 -> VecS V4 4
917testdata/Prelude.lc 338:16-338:75 Mat 4 4 Float 888testdata/Prelude.lc 324:51-324:57 V2 -> V3 -> VecS V4 4
918testdata/Prelude.lc 338:21-338:33 VecS Float 4 889testdata/Prelude.lc 324:51-324:59 V2 -> VecS V3 4
919testdata/Prelude.lc 338:22-338:24 {a} -> a -> a -> a -> a -> VecS a 4 890testdata/Prelude.lc 324:54-324:55 V1
920testdata/Prelude.lc 338:22-338:26 VecScalar V2 Float -> VecScalar V3 Float -> VecScalar V4 Float -> VecS (VecScalar V5 Float) 4 891testdata/Prelude.lc 324:56-324:57 V1
921testdata/Prelude.lc 338:22-338:28 VecScalar V2 Float -> VecScalar V3 Float -> VecS (VecScalar V4 Float) 4 892testdata/Prelude.lc 324:58-324:59 V1
922testdata/Prelude.lc 338:22-338:30 VecScalar V3 Float -> VecS (VecScalar V4 Float) 4 893testdata/Prelude.lc 324:60-324:61 V1
923testdata/Prelude.lc 338:25-338:26 VecScalar V3 Float 894testdata/Prelude.lc 324:63-324:75 VecS Float 4
924testdata/Prelude.lc 338:27-338:28 VecScalar V2 Float 895testdata/Prelude.lc 324:64-324:66 {a} -> a -> a -> a -> a -> VecS a 4
925testdata/Prelude.lc 338:29-338:30 V1 896testdata/Prelude.lc 324:64-324:68 V1 -> V2 -> V3 -> VecS V4 4
926testdata/Prelude.lc 338:31-338:32 V1 897testdata/Prelude.lc 324:64-324:70 V2 -> V3 -> VecS V4 4
927testdata/Prelude.lc 338:34-338:49 VecS Float 4 898testdata/Prelude.lc 324:64-324:72 V2 -> VecS V3 4
928testdata/Prelude.lc 338:35-338:37 {a} -> a -> a -> a -> a -> VecS a 4 899testdata/Prelude.lc 324:67-324:68 V1
929testdata/Prelude.lc 338:35-338:42 Float -> Float -> Float -> VecS Float 4 900testdata/Prelude.lc 324:69-324:70 V1
930testdata/Prelude.lc 338:35-338:44 Float -> Float -> VecS Float 4 901testdata/Prelude.lc 324:71-324:72 V1
931testdata/Prelude.lc 338:35-338:46 Float -> VecS Float 4 902testdata/Prelude.lc 324:73-324:74 V1
932testdata/Prelude.lc 338:38-338:42 Float 903testdata/Prelude.lc 326:9-326:12 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a
933testdata/Prelude.lc 338:39-338:40 {a} -> {b : Num (MatVecScalarElem a)} -> a -> a->a 904testdata/Prelude.lc 326:9-326:14 VecScalar V0 Float
934testdata/Prelude.lc 338:40-338:41 Float 905testdata/Prelude.lc 326:13-326:14 V2
935testdata/Prelude.lc 338:43-338:44 Float 906testdata/Prelude.lc 327:9-327:12 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a
936testdata/Prelude.lc 338:45-338:46 V1 907testdata/Prelude.lc 327:9-327:14 VecScalar V1 Float
937testdata/Prelude.lc 338:47-338:48 V1 908testdata/Prelude.lc 327:13-327:14 VecScalar V2 Float
938testdata/Prelude.lc 338:50-338:62 VecS Float 4 909testdata/Prelude.lc 329:1-329:11 Float -> Mat 4 4 Float
939testdata/Prelude.lc 338:51-338:53 {a} -> a -> a -> a -> a -> VecS a 4 910testdata/Prelude.lc 329:16-329:20 VecS Float 4 -> VecS Float 4 -> VecS Float 4 -> VecS Float 4 -> Mat 4 4 Float
940testdata/Prelude.lc 338:51-338:55 V1 -> V2 -> V3 -> VecS V4 4 911testdata/Prelude.lc 329:16-329:36 VecS Float 4 -> VecS Float 4 -> VecS Float 4 -> Mat 4 4 Float
941testdata/Prelude.lc 338:51-338:57 V2 -> V3 -> VecS V4 4 912testdata/Prelude.lc 329:16-329:49 VecS Float 4 -> VecS Float 4 -> Mat 4 4 Float
942testdata/Prelude.lc 338:51-338:59 V2 -> VecS V3 4 913testdata/Prelude.lc 329:16-329:62 VecS Float 4 -> Mat 4 4 Float
943testdata/Prelude.lc 338:54-338:55 V1 914testdata/Prelude.lc 329:16-329:75 Mat 4 4 Float
944testdata/Prelude.lc 338:56-338:57 V1 915testdata/Prelude.lc 329:21-329:36 VecS Float 4
945testdata/Prelude.lc 338:58-338:59 V1 916testdata/Prelude.lc 329:22-329:24 {a} -> a -> a -> a -> a -> VecS a 4
946testdata/Prelude.lc 338:60-338:61 V1 917testdata/Prelude.lc 329:22-329:26 VecScalar V2 Float -> VecScalar V3 Float -> VecScalar V4 Float -> VecS (VecScalar V5 Float) 4
947testdata/Prelude.lc 338:63-338:75 VecS Float 4 918testdata/Prelude.lc 329:22-329:28 VecScalar V3 Float -> VecScalar V4 Float -> VecS (VecScalar V5 Float) 4
948testdata/Prelude.lc 338:64-338:66 {a} -> a -> a -> a -> a -> VecS a 4 919testdata/Prelude.lc 329:22-329:33 VecScalar V5 Float -> VecS (VecScalar V6 Float) 4
949testdata/Prelude.lc 338:64-338:68 V1 -> V2 -> V3 -> VecS V4 4 920testdata/Prelude.lc 329:25-329:26 VecScalar V3 Float
950testdata/Prelude.lc 338:64-338:70 V2 -> V3 -> VecS V4 4 921testdata/Prelude.lc 329:27-329:28 V1
951testdata/Prelude.lc 338:64-338:72 V2 -> VecS V3 4 922testdata/Prelude.lc 329:29-329:33 VecScalar V5 Float
952testdata/Prelude.lc 338:67-338:68 V1 923testdata/Prelude.lc 329:30-329:31 {a} -> {b : Num (MatVecScalarElem a)} -> a -> a->a
953testdata/Prelude.lc 338:69-338:70 V1 924testdata/Prelude.lc 329:31-329:32 VecScalar V5 Float
954testdata/Prelude.lc 338:71-338:72 V1 925testdata/Prelude.lc 329:34-329:35 V1
955testdata/Prelude.lc 338:73-338:74 V1 926testdata/Prelude.lc 329:37-329:49 VecS Float 4
956testdata/Prelude.lc 340:9-340:12 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a 927testdata/Prelude.lc 329:38-329:40 {a} -> a -> a -> a -> a -> VecS a 4
957testdata/Prelude.lc 340:9-340:14 VecScalar V0 Float 928testdata/Prelude.lc 329:38-329:42 V1 -> V2 -> V3 -> VecS V4 4
958testdata/Prelude.lc 340:13-340:14 V2 929testdata/Prelude.lc 329:38-329:44 V2 -> V3 -> VecS V4 4
959testdata/Prelude.lc 341:9-341:12 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a 930testdata/Prelude.lc 329:38-329:46 V2 -> VecS V3 4
960testdata/Prelude.lc 341:9-341:14 VecScalar V1 Float 931testdata/Prelude.lc 329:41-329:42 V1
961testdata/Prelude.lc 341:13-341:14 VecScalar V2 Float 932testdata/Prelude.lc 329:43-329:44 V1
962testdata/Prelude.lc 343:1-343:11 Float -> Mat 4 4 Float 933testdata/Prelude.lc 329:45-329:46 V1
963testdata/Prelude.lc 343:16-343:20 VecS Float 4 -> VecS Float 4 -> VecS Float 4 -> VecS Float 4 -> Mat 4 4 Float 934testdata/Prelude.lc 329:47-329:48 V1
964testdata/Prelude.lc 343:16-343:36 VecS Float 4 -> VecS Float 4 -> VecS Float 4 -> Mat 4 4 Float 935testdata/Prelude.lc 329:50-329:62 VecS Float 4
965testdata/Prelude.lc 343:16-343:49 VecS Float 4 -> VecS Float 4 -> Mat 4 4 Float 936testdata/Prelude.lc 329:51-329:53 {a} -> a -> a -> a -> a -> VecS a 4
966testdata/Prelude.lc 343:16-343:62 VecS Float 4 -> Mat 4 4 Float 937testdata/Prelude.lc 329:51-329:55 Float -> Float -> Float -> VecS Float 4
967testdata/Prelude.lc 343:16-343:75 Mat 4 4 Float 938testdata/Prelude.lc 329:51-329:57 Float -> Float -> VecS Float 4
968testdata/Prelude.lc 343:21-343:36 VecS Float 4 939testdata/Prelude.lc 329:51-329:59 Float -> VecS Float 4
969testdata/Prelude.lc 343:22-343:24 {a} -> a -> a -> a -> a -> VecS a 4 940testdata/Prelude.lc 329:54-329:55 Float
970testdata/Prelude.lc 343:22-343:26 VecScalar V2 Float -> VecScalar V3 Float -> VecScalar V4 Float -> VecS (VecScalar V5 Float) 4 941testdata/Prelude.lc 329:56-329:57 V1
971testdata/Prelude.lc 343:22-343:28 VecScalar V3 Float -> VecScalar V4 Float -> VecS (VecScalar V5 Float) 4 942testdata/Prelude.lc 329:58-329:59 Float
972testdata/Prelude.lc 343:22-343:33 VecScalar V5 Float -> VecS (VecScalar V6 Float) 4 943testdata/Prelude.lc 329:60-329:61 V1
973testdata/Prelude.lc 343:25-343:26 VecScalar V3 Float 944testdata/Prelude.lc 329:63-329:75 VecS Float 4
974testdata/Prelude.lc 343:27-343:28 V1 945testdata/Prelude.lc 329:64-329:66 {a} -> a -> a -> a -> a -> VecS a 4
975testdata/Prelude.lc 343:29-343:33 VecScalar V5 Float 946testdata/Prelude.lc 329:64-329:68 V1 -> V2 -> V3 -> VecS V4 4
976testdata/Prelude.lc 343:30-343:31 {a} -> {b : Num (MatVecScalarElem a)} -> a -> a->a 947testdata/Prelude.lc 329:64-329:70 V2 -> V3 -> VecS V4 4
977testdata/Prelude.lc 343:31-343:32 VecScalar V5 Float 948testdata/Prelude.lc 329:64-329:72 V2 -> VecS V3 4
978testdata/Prelude.lc 343:34-343:35 V1 949testdata/Prelude.lc 329:67-329:68 V1
979testdata/Prelude.lc 343:37-343:49 VecS Float 4 950testdata/Prelude.lc 329:69-329:70 V1
980testdata/Prelude.lc 343:38-343:40 {a} -> a -> a -> a -> a -> VecS a 4 951testdata/Prelude.lc 329:71-329:72 V1
981testdata/Prelude.lc 343:38-343:42 V1 -> V2 -> V3 -> VecS V4 4 952testdata/Prelude.lc 329:73-329:74 V1
982testdata/Prelude.lc 343:38-343:44 V2 -> V3 -> VecS V4 4 953testdata/Prelude.lc 331:9-331:12 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a
983testdata/Prelude.lc 343:38-343:46 V2 -> VecS V3 4 954testdata/Prelude.lc 331:9-331:14 VecScalar V0 Float
984testdata/Prelude.lc 343:41-343:42 V1 955testdata/Prelude.lc 331:13-331:14 V2
985testdata/Prelude.lc 343:43-343:44 V1 956testdata/Prelude.lc 332:9-332:12 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a
986testdata/Prelude.lc 343:45-343:46 V1 957testdata/Prelude.lc 332:9-332:14 VecScalar V1 Float
987testdata/Prelude.lc 343:47-343:48 V1 958testdata/Prelude.lc 332:13-332:14 VecScalar V2 Float
988testdata/Prelude.lc 343:50-343:62 VecS Float 4 959testdata/Prelude.lc 334:1-334:11 Float -> Mat 4 4 Float
989testdata/Prelude.lc 343:51-343:53 {a} -> a -> a -> a -> a -> VecS a 4 960testdata/Prelude.lc 334:16-334:20 VecS Float 4 -> VecS Float 4 -> VecS Float 4 -> VecS Float 4 -> Mat 4 4 Float
990testdata/Prelude.lc 343:51-343:55 Float -> Float -> Float -> VecS Float 4 961testdata/Prelude.lc 334:16-334:33 VecS Float 4 -> VecS Float 4 -> VecS Float 4 -> Mat 4 4 Float
991testdata/Prelude.lc 343:51-343:57 Float -> Float -> VecS Float 4 962testdata/Prelude.lc 334:16-334:46 VecS Float 4 -> VecS Float 4 -> Mat 4 4 Float
992testdata/Prelude.lc 343:51-343:59 Float -> VecS Float 4 963testdata/Prelude.lc 334:16-334:62 VecS Float 4 -> Mat 4 4 Float
993testdata/Prelude.lc 343:54-343:55 Float 964testdata/Prelude.lc 334:16-334:75 Mat 4 4 Float
994testdata/Prelude.lc 343:56-343:57 V1 965testdata/Prelude.lc 334:21-334:33 VecS Float 4
995testdata/Prelude.lc 343:58-343:59 Float 966testdata/Prelude.lc 334:22-334:24 {a} -> a -> a -> a -> a -> VecS a 4
996testdata/Prelude.lc 343:60-343:61 V1 967testdata/Prelude.lc 334:22-334:26 V1 -> V2 -> V3 -> VecS V4 4
997testdata/Prelude.lc 343:63-343:75 VecS Float 4 968testdata/Prelude.lc 334:22-334:28 V2 -> V3 -> VecS V4 4
998testdata/Prelude.lc 343:64-343:66 {a} -> a -> a -> a -> a -> VecS a 4 969testdata/Prelude.lc 334:22-334:30 V2 -> VecS V3 4
999testdata/Prelude.lc 343:64-343:68 V1 -> V2 -> V3 -> VecS V4 4 970testdata/Prelude.lc 334:25-334:26 V1
1000testdata/Prelude.lc 343:64-343:70 V2 -> V3 -> VecS V4 4 971testdata/Prelude.lc 334:27-334:28 V1
1001testdata/Prelude.lc 343:64-343:72 V2 -> VecS V3 4 972testdata/Prelude.lc 334:29-334:30 V1
1002testdata/Prelude.lc 343:67-343:68 V1 973testdata/Prelude.lc 334:31-334:32 V1
1003testdata/Prelude.lc 343:69-343:70 V1 974testdata/Prelude.lc 334:34-334:46 VecS Float 4
1004testdata/Prelude.lc 343:71-343:72 V1 975testdata/Prelude.lc 334:35-334:37 {a} -> a -> a -> a -> a -> VecS a 4
1005testdata/Prelude.lc 343:73-343:74 V1 976testdata/Prelude.lc 334:35-334:39 V1 -> V2 -> V3 -> VecS V4 4
1006testdata/Prelude.lc 345:9-345:12 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a 977testdata/Prelude.lc 334:35-334:41 VecScalar V3 Float -> VecScalar V4 Float -> VecS (VecScalar V5 Float) 4
1007testdata/Prelude.lc 345:9-345:14 VecScalar V0 Float 978testdata/Prelude.lc 334:35-334:43 VecScalar V3 Float -> VecS (VecScalar V4 Float) 4
1008testdata/Prelude.lc 345:13-345:14 V2 979testdata/Prelude.lc 334:38-334:39 V1
1009testdata/Prelude.lc 346:9-346:12 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a 980testdata/Prelude.lc 334:40-334:41 VecScalar V4 Float
1010testdata/Prelude.lc 346:9-346:14 VecScalar V1 Float 981testdata/Prelude.lc 334:42-334:43 VecScalar V3 Float
1011testdata/Prelude.lc 346:13-346:14 VecScalar V2 Float 982testdata/Prelude.lc 334:44-334:45 V1
1012testdata/Prelude.lc 348:1-348:11 Float -> Mat 4 4 Float 983testdata/Prelude.lc 334:47-334:62 VecS Float 4
1013testdata/Prelude.lc 348:16-348:20 VecS Float 4 -> VecS Float 4 -> VecS Float 4 -> VecS Float 4 -> Mat 4 4 Float 984testdata/Prelude.lc 334:48-334:50 {a} -> a -> a -> a -> a -> VecS a 4
1014testdata/Prelude.lc 348:16-348:33 VecS Float 4 -> VecS Float 4 -> VecS Float 4 -> Mat 4 4 Float 985testdata/Prelude.lc 334:48-334:52 V1 -> V2 -> V3 -> VecS V4 4
1015testdata/Prelude.lc 348:16-348:46 VecS Float 4 -> VecS Float 4 -> Mat 4 4 Float 986testdata/Prelude.lc 334:48-334:57 Float -> Float -> VecS Float 4
1016testdata/Prelude.lc 348:16-348:62 VecS Float 4 -> Mat 4 4 Float 987testdata/Prelude.lc 334:48-334:59 Float -> VecS Float 4
1017testdata/Prelude.lc 348:16-348:75 Mat 4 4 Float 988testdata/Prelude.lc 334:51-334:52 V1
1018testdata/Prelude.lc 348:21-348:33 VecS Float 4 989testdata/Prelude.lc 334:53-334:57 Float
1019testdata/Prelude.lc 348:22-348:24 {a} -> a -> a -> a -> a -> VecS a 4 990testdata/Prelude.lc 334:54-334:55 {a} -> {b : Num (MatVecScalarElem a)} -> a -> a->a
1020testdata/Prelude.lc 348:22-348:26 V1 -> V2 -> V3 -> VecS V4 4 991testdata/Prelude.lc 334:55-334:56 Float
1021testdata/Prelude.lc 348:22-348:28 V2 -> V3 -> VecS V4 4 992testdata/Prelude.lc 334:58-334:59 Float
1022testdata/Prelude.lc 348:22-348:30 V2 -> VecS V3 4 993testdata/Prelude.lc 334:60-334:61 V1
1023testdata/Prelude.lc 348:25-348:26 V1 994testdata/Prelude.lc 334:63-334:75 VecS Float 4
1024testdata/Prelude.lc 348:27-348:28 V1 995testdata/Prelude.lc 334:64-334:66 {a} -> a -> a -> a -> a -> VecS a 4
1025testdata/Prelude.lc 348:29-348:30 V1 996testdata/Prelude.lc 334:64-334:68 V1 -> V2 -> V3 -> VecS V4 4
1026testdata/Prelude.lc 348:31-348:32 V1 997testdata/Prelude.lc 334:64-334:70 V2 -> V3 -> VecS V4 4
1027testdata/Prelude.lc 348:34-348:46 VecS Float 4 998testdata/Prelude.lc 334:64-334:72 V2 -> VecS V3 4
1028testdata/Prelude.lc 348:35-348:37 {a} -> a -> a -> a -> a -> VecS a 4 999testdata/Prelude.lc 334:67-334:68 V1
1029testdata/Prelude.lc 348:35-348:39 V1 -> V2 -> V3 -> VecS V4 4 1000testdata/Prelude.lc 334:69-334:70 V1
1030testdata/Prelude.lc 348:35-348:41 VecScalar V3 Float -> VecScalar V4 Float -> VecS (VecScalar V5 Float) 4 1001testdata/Prelude.lc 334:71-334:72 V1
1031testdata/Prelude.lc 348:35-348:43 VecScalar V3 Float -> VecS (VecScalar V4 Float) 4 1002testdata/Prelude.lc 334:73-334:74 V1
1032testdata/Prelude.lc 348:38-348:39 V1 1003testdata/Prelude.lc 336:9-336:12 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a
1033testdata/Prelude.lc 348:40-348:41 VecScalar V4 Float 1004testdata/Prelude.lc 336:9-336:14 VecScalar V0 Float
1034testdata/Prelude.lc 348:42-348:43 VecScalar V3 Float 1005testdata/Prelude.lc 336:13-336:14 V2
1035testdata/Prelude.lc 348:44-348:45 V1 1006testdata/Prelude.lc 337:9-337:12 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a
1036testdata/Prelude.lc 348:47-348:62 VecS Float 4 1007testdata/Prelude.lc 337:9-337:14 VecScalar V1 Float
1037testdata/Prelude.lc 348:48-348:50 {a} -> a -> a -> a -> a -> VecS a 4 1008testdata/Prelude.lc 337:13-337:14 VecScalar V2 Float
1038testdata/Prelude.lc 348:48-348:52 V1 -> V2 -> V3 -> VecS V4 4 1009testdata/Prelude.lc 339:1-339:14 Float -> Float -> Float -> Mat 4 4 Float
1039testdata/Prelude.lc 348:48-348:57 Float -> Float -> VecS Float 4 1010testdata/Prelude.lc 339:23-339:33 Float -> Mat 4 4 Float
1040testdata/Prelude.lc 348:48-348:59 Float -> VecS Float 4 1011testdata/Prelude.lc 339:23-339:35 Mat 4 4 Float
1041testdata/Prelude.lc 348:51-348:52 V1 1012testdata/Prelude.lc 339:23-339:39 Mat 4 V0 Float -> Mat 4 V1 Float
1042testdata/Prelude.lc 348:53-348:57 Float 1013testdata/Prelude.lc 339:23-339:52 Mat 4 4 Float
1043testdata/Prelude.lc 348:54-348:55 {a} -> {b : Num (MatVecScalarElem a)} -> a -> a->a 1014testdata/Prelude.lc 339:23-339:56 Mat 4 V0 Float -> Mat 4 V1 Float
1044testdata/Prelude.lc 348:55-348:56 Float 1015testdata/Prelude.lc 339:23-339:69 Mat 4 4 Float
1045testdata/Prelude.lc 348:58-348:59 Float 1016testdata/Prelude.lc 339:34-339:35 V10
1046testdata/Prelude.lc 348:60-348:61 V1 1017testdata/Prelude.lc 339:36-339:39 {a:Nat} -> {b:Nat} -> {c} -> {d:Nat} -> Mat a b c -> Mat b d c -> Mat a d c
1047testdata/Prelude.lc 348:63-348:75 VecS Float 4 1018testdata/Prelude.lc 339:40-339:50 Float -> Mat 4 4 Float
1048testdata/Prelude.lc 348:64-348:66 {a} -> a -> a -> a -> a -> VecS a 4 1019testdata/Prelude.lc 339:40-339:52 Mat 4 4 Float
1049testdata/Prelude.lc 348:64-348:68 V1 -> V2 -> V3 -> VecS V4 4 1020testdata/Prelude.lc 339:51-339:52 V4
1050testdata/Prelude.lc 348:64-348:70 V2 -> V3 -> VecS V4 4 1021testdata/Prelude.lc 339:53-339:56 {a:Nat} -> {b:Nat} -> {c} -> {d:Nat} -> Mat a b c -> Mat b d c -> Mat a d c
1051testdata/Prelude.lc 348:64-348:72 V2 -> VecS V3 4 1022testdata/Prelude.lc 339:57-339:67 Float -> Mat 4 4 Float
1052testdata/Prelude.lc 348:67-348:68 V1 1023testdata/Prelude.lc 339:57-339:69 Mat 4 4 Float
1053testdata/Prelude.lc 348:69-348:70 V1 1024testdata/Prelude.lc 339:68-339:69 V1
1054testdata/Prelude.lc 348:71-348:72 V1 1025testdata/Prelude.lc 355:1-355:6 Float -> VecS Float 4 -> VecS Float 4
1055testdata/Prelude.lc 348:73-348:74 V1 1026testdata/Prelude.lc 355:13-355:14 V3
1056testdata/Prelude.lc 350:9-350:12 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a 1027testdata/Prelude.lc 355:13-355:16 V2->V3
1057testdata/Prelude.lc 350:9-350:14 VecScalar V0 Float 1028testdata/Prelude.lc 355:13-355:29 VecS Float 4
1058testdata/Prelude.lc 350:13-350:14 V2 1029testdata/Prelude.lc 355:15-355:16 {a} -> {b : Num (MatVecScalarElem a)} -> a -> a->a
1059testdata/Prelude.lc 351:9-351:12 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a 1030testdata/Prelude.lc 355:17-355:19 {a} -> a -> a -> a -> a -> VecS a 4
1060testdata/Prelude.lc 351:9-351:14 VecScalar V1 Float 1031testdata/Prelude.lc 355:17-355:21 V4 -> V5 -> V6 -> VecS V7 4
1061testdata/Prelude.lc 351:13-351:14 VecScalar V2 Float 1032testdata/Prelude.lc 355:17-355:23 V4 -> V5 -> VecS V6 4
1062testdata/Prelude.lc 353:1-353:14 Float -> Float -> Float -> Mat 4 4 Float 1033testdata/Prelude.lc 355:17-355:25 V4 -> VecS V5 4
1063testdata/Prelude.lc 353:23-353:33 Float -> Mat 4 4 Float 1034testdata/Prelude.lc 355:17-355:29 VecS Float 4
1064testdata/Prelude.lc 353:23-353:35 Mat 4 4 Float 1035testdata/Prelude.lc 355:20-355:21 V5
1065testdata/Prelude.lc 353:23-353:39 Mat 4 V0 Float -> Mat 4 V1 Float 1036testdata/Prelude.lc 355:22-355:23 V4
1066testdata/Prelude.lc 353:23-353:52 Mat 4 4 Float 1037testdata/Prelude.lc 355:24-355:25 V4
1067testdata/Prelude.lc 353:23-353:56 Mat 4 V0 Float -> Mat 4 V1 Float 1038testdata/Prelude.lc 355:26-355:29 Float
1068testdata/Prelude.lc 353:23-353:69 Mat 4 4 Float 1039testdata/Prelude.lc 357:11-357:16 Type
1069testdata/Prelude.lc 353:34-353:35 V10 1040testdata/Prelude.lc 357:11-358:58 Float -> Float -> List Float | V0->V1
1070testdata/Prelude.lc 353:36-353:39 {a:Nat} -> {b:Nat} -> {c} -> {d:Nat} -> Mat a b c -> Mat b d c -> Mat a d c 1041testdata/Prelude.lc 357:20-357:25 Type
1071testdata/Prelude.lc 353:40-353:50 Float -> Mat 4 4 Float 1042testdata/Prelude.lc 357:20-357:36 Type
1072testdata/Prelude.lc 353:40-353:52 Mat 4 4 Float 1043testdata/Prelude.lc 357:29-357:36 Type
1073testdata/Prelude.lc 353:51-353:52 V4 1044testdata/Prelude.lc 357:30-357:35 Type
1074testdata/Prelude.lc 353:53-353:56 {a:Nat} -> {b:Nat} -> {c} -> {d:Nat} -> Mat a b c -> Mat b d c -> Mat a d c 1045testdata/Prelude.lc 358:1-358:7 Float -> Float -> List Float
1075testdata/Prelude.lc 353:57-353:67 Float -> Mat 4 4 Float 1046testdata/Prelude.lc 358:14-358:58 Float -> Float -> List Float | Float -> List Float | List Float
1076testdata/Prelude.lc 353:57-353:69 Mat 4 4 Float 1047testdata/Prelude.lc 358:17-358:18 Float
1077testdata/Prelude.lc 353:68-353:69 V1 1048testdata/Prelude.lc 358:17-358:20 Float->Bool
1078testdata/Prelude.lc 369:1-369:6 Float -> VecS Float 4 -> VecS Float 4 1049testdata/Prelude.lc 358:17-358:22 Bool
1079testdata/Prelude.lc 369:13-369:14 V3 1050testdata/Prelude.lc 358:17-358:30 List V0 -> List V1
1080testdata/Prelude.lc 369:13-369:16 V2->V3 1051testdata/Prelude.lc 358:19-358:20 {a} -> {b:Nat} -> {c : Num a} -> VecScalar b a -> VecScalar b a -> VecScalar b Bool
1081testdata/Prelude.lc 369:13-369:29 VecS Float 4 1052testdata/Prelude.lc 358:21-358:22 Float
1082testdata/Prelude.lc 369:15-369:16 {a} -> {b : Num (MatVecScalarElem a)} -> a -> a->a 1053testdata/Prelude.lc 358:28-358:30 {a} -> List a
1083testdata/Prelude.lc 369:17-369:19 {a} -> a -> a -> a -> a -> VecS a 4 1054testdata/Prelude.lc 358:36-358:37 Float
1084testdata/Prelude.lc 369:17-369:21 V4 -> V5 -> V6 -> VecS V7 4 1055testdata/Prelude.lc 358:36-358:38 List Float -> List Float
1085testdata/Prelude.lc 369:17-369:23 V4 -> V5 -> VecS V6 4 1056testdata/Prelude.lc 358:36-358:58 List Float
1086testdata/Prelude.lc 369:17-369:25 V4 -> VecS V5 4 1057testdata/Prelude.lc 358:37-358:38 {a} -> a -> List a -> List a
1087testdata/Prelude.lc 369:17-369:29 VecS Float 4 1058testdata/Prelude.lc 358:39-358:45 Float -> Float -> List Float
1088testdata/Prelude.lc 369:20-369:21 V5 1059testdata/Prelude.lc 358:39-358:56 Float -> List Float
1089testdata/Prelude.lc 369:22-369:23 V4 1060testdata/Prelude.lc 358:39-358:58 List Float
1090testdata/Prelude.lc 369:24-369:25 V4 1061testdata/Prelude.lc 358:46-358:56 Float
1091testdata/Prelude.lc 369:26-369:29 Float 1062testdata/Prelude.lc 358:47-358:48 Float
1092testdata/Prelude.lc 371:11-371:16 Type 1063testdata/Prelude.lc 358:47-358:51 Float->Float
1093testdata/Prelude.lc 371:11-372:58 Float -> Float -> List Float | V0->V1 1064testdata/Prelude.lc 358:49-358:51 {a} -> {b : Num (MatVecScalarElem a)} -> a -> MatVecScalarElem a -> a
1094testdata/Prelude.lc 371:20-371:25 Type 1065testdata/Prelude.lc 358:52-358:55 Float
1095testdata/Prelude.lc 371:20-371:36 Type 1066testdata/Prelude.lc 358:57-358:58 Float
1096testdata/Prelude.lc 371:29-371:36 Type 1067testdata/Prelude.lc 360:9-360:24 Type
1097testdata/Prelude.lc 371:30-371:35 Type 1068testdata/Prelude.lc 360:9-362:30 V0->V1 | {a} -> List a -> Int->a
1098testdata/Prelude.lc 372:1-372:7 Float -> Float -> List Float 1069testdata/Prelude.lc 360:10-360:11 V1
1099testdata/Prelude.lc 372:14-372:58 Float -> Float -> List Float | Float -> List Float | List Float 1070testdata/Prelude.lc 360:16-360:19 Type
1100testdata/Prelude.lc 372:17-372:18 Float 1071testdata/Prelude.lc 360:16-360:24 Type
1101testdata/Prelude.lc 372:17-372:20 Float->Bool 1072testdata/Prelude.lc 360:23-360:24 Type
1102testdata/Prelude.lc 372:17-372:22 Bool 1073testdata/Prelude.lc 361:2-361:7 List V2
1103testdata/Prelude.lc 372:17-372:30 List V0 -> List V1 1074testdata/Prelude.lc 361:2-362:30 Int->V2 | List V0 -> Int->V2 | V2
1104testdata/Prelude.lc 372:19-372:20 {a} -> {b:Nat} -> {c : Num a} -> VecScalar b a -> VecScalar b a -> VecScalar b Bool 1075testdata/Prelude.lc 361:10-361:12 {a} -> List a -> Int->a
1105testdata/Prelude.lc 372:21-372:22 Float 1076testdata/Prelude.lc 361:19-361:20 V3
1106testdata/Prelude.lc 372:28-372:30 {a} -> List a 1077testdata/Prelude.lc 361:19-362:30 Bool->V4 | List V2 -> V2 | V1 -> List V2 -> V2 | V2
1107testdata/Prelude.lc 372:36-372:37 Float 1078testdata/Prelude.lc 362:19-362:21 List V5
1108testdata/Prelude.lc 372:36-372:38 List Float -> List Float 1079testdata/Prelude.lc 362:19-362:24 Int->V5
1109testdata/Prelude.lc 372:36-372:58 List Float 1080testdata/Prelude.lc 362:19-362:30 V3
1110testdata/Prelude.lc 372:37-372:38 {a} -> a -> List a -> List a 1081testdata/Prelude.lc 362:22-362:24 {a} -> List a -> Int->a
1111testdata/Prelude.lc 372:39-372:45 Float -> Float -> List Float 1082testdata/Prelude.lc 362:25-362:30 Int
1112testdata/Prelude.lc 372:39-372:56 Float -> List Float 1083testdata/Prelude.lc 362:26-362:27 Int
1113testdata/Prelude.lc 372:39-372:58 List Float 1084testdata/Prelude.lc 362:26-362:28 Int->Int
1114testdata/Prelude.lc 372:46-372:56 Float 1085testdata/Prelude.lc 362:27-362:28 {a} -> {b : Num (MatVecScalarElem a)} -> a -> a->a
1115testdata/Prelude.lc 372:47-372:48 Float 1086testdata/Prelude.lc 362:28-362:29 V1
1116testdata/Prelude.lc 372:47-372:51 Float->Float
1117testdata/Prelude.lc 372:49-372:51 {a} -> {b : Num (MatVecScalarElem a)} -> a -> MatVecScalarElem a -> a
1118testdata/Prelude.lc 372:52-372:55 Float
1119testdata/Prelude.lc 372:57-372:58 Float
1120testdata/Prelude.lc 374:9-374:24 Type
1121testdata/Prelude.lc 374:9-376:30 V0->V1 | {a} -> List a -> Int->a
1122testdata/Prelude.lc 374:10-374:11 V1
1123testdata/Prelude.lc 374:16-374:19 Type
1124testdata/Prelude.lc 374:16-374:24 Type
1125testdata/Prelude.lc 374:23-374:24 Type
1126testdata/Prelude.lc 375:2-375:7 List V2
1127testdata/Prelude.lc 375:2-376:30 Int->V2 | List V0 -> Int->V2 | V2
1128testdata/Prelude.lc 375:10-375:12 {a} -> List a -> Int->a
1129testdata/Prelude.lc 375:19-375:20 V3
1130testdata/Prelude.lc 375:19-376:30 Bool->V4 | List V2 -> V2 | V1 -> List V2 -> V2 | V2
1131testdata/Prelude.lc 376:19-376:21 List V5
1132testdata/Prelude.lc 376:19-376:24 Int->V5
1133testdata/Prelude.lc 376:19-376:30 V3
1134testdata/Prelude.lc 376:22-376:24 {a} -> List a -> Int->a
1135testdata/Prelude.lc 376:25-376:30 Int
1136testdata/Prelude.lc 376:26-376:27 Int
1137testdata/Prelude.lc 376:26-376:28 Int->Int
1138testdata/Prelude.lc 376:27-376:28 {a} -> {b : Num (MatVecScalarElem a)} -> a -> a->a
1139testdata/Prelude.lc 376:28-376:29 V1
diff --git a/testdata/PrimReduce.out b/testdata/PrimReduce.out
index 6ed70995..40098556 100644
--- a/testdata/PrimReduce.out
+++ b/testdata/PrimReduce.out
@@ -1 +1 @@
Pipeline {backend = OpenGL33, textures = [], samplers = [], targets = [RenderTarget {renderTargets = [TargetItem {targetSemantic = Color, targetRef = Just (Framebuffer Color)}]}], programs = [Program {programUniforms = fromList [], programStreams = fromList [("l1",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);}\nin vec4 l1 ;\nvoid main() {\ngl_Position = ( ( mat4 ( vec4 ( cos ( 3.0 ),( 0.0 ) - ( sin ( 3.0 ) ),0.0,0.0 ),vec4 ( sin ( 3.0 ),cos ( 3.0 ),0.0,0.0 ),vec4 ( 0.0,0.0,1.0,0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( l1 ) ) * ( 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);}\nout vec4 f0 ;\nvoid main() {\nf0 = vec4 ( 0.0,0.0,1.0,1.0 );\n}\n"}], slots = [Slot {slotName = "stream4", slotStreams = fromList [("position4",V4F)], slotUniforms = fromList [], slotPrimitive = Triangles, slotPrograms = [0]}], streams = [], commands = [SetRenderTarget 0,ClearRenderTarget [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 = [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 = Color, targetRef = Just (Framebuffer Color)}]}], programs = [Program {programUniforms = fromList [], programStreams = fromList [("r1",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);}\nin vec4 r1 ;\nvoid main() {\ngl_Position = ( ( mat4 ( vec4 ( cos ( 3.0 ),( 0.0 ) - ( sin ( 3.0 ) ),0.0,0.0 ),vec4 ( sin ( 3.0 ),cos ( 3.0 ),0.0,0.0 ),vec4 ( 0.0,0.0,1.0,0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( r1 ) ) * ( 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);}\nout vec4 f0 ;\nvoid main() {\nf0 = vec4 ( 0.0,0.0,1.0,1.0 );\n}\n"}], slots = [Slot {slotName = "stream4", slotStreams = fromList [("position4",V4F)], slotUniforms = fromList [], slotPrimitive = Triangles, slotPrograms = [0]}], streams = [], commands = [SetRenderTarget 0,ClearRenderTarget [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 = [ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 0]} \ No newline at end of file
diff --git a/testdata/Spiral.out b/testdata/Spiral.out
index dfcdf3fe..b23c4e29 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 [("m1",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 m1 ;\nsmooth out vec4 vv0 ;\nvoid main() {\nvv0 = vec4 ( ( m1 ).x,( m1 ).y,( m1 ).z,1.0 );\ngl_Position = ( ( MVP ) * ( vec4 ( ( exp ( ( ( ( Mouse ).x ) - ( 0.5 ) ) * ( ( m1 ).x ) ) ) * ( sin ( ( 0.9 ) * ( ( m1 ).x ) ) ),( exp ( ( ( ( Mouse ).x ) - ( 0.5 ) ) * ( ( m1 ).x ) ) ) * ( cos ( ( 0.9 ) * ( ( m1 ).x ) ) ),( ( Mouse ).y ) * ( ( 0.9 ) * ( ( m1 ).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 vv0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = vv0;\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 [("s1",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 s1 ;\nsmooth out vec4 vv0 ;\nvoid main() {\nvv0 = vec4 ( ( s1 ).x,( s1 ).y,( s1 ).z,1.0 );\ngl_Position = ( ( MVP ) * ( vec4 ( ( exp ( ( ( ( Mouse ).x ) - ( 0.5 ) ) * ( ( s1 ).x ) ) ) * ( sin ( ( 0.9 ) * ( ( s1 ).x ) ) ),( exp ( ( ( ( Mouse ).x ) - ( 0.5 ) ) * ( ( s1 ).x ) ) ) * ( cos ( ( 0.9 ) * ( ( s1 ).x ) ) ),( ( Mouse ).y ) * ( ( 0.9 ) * ( ( s1 ).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 vv0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = vv0;\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/example06.out b/testdata/example06.out
index 11f412ec..e4b04788 100644
--- a/testdata/example06.out
+++ b/testdata/example06.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 [("n1",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 n1 ;\nsmooth out vec4 vv0 ;\nvoid main() {\nvv0 = n1;\ngl_Position = ( ( MVP ) * ( n1 ) ) * ( 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 vv0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = vv0;\n}\n"}], slots = [Slot {slotName = "stream4", slotStreams = fromList [("position4",V4F)], 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 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))]}),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 [("t1",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 t1 ;\nsmooth out vec4 vv0 ;\nvoid main() {\nvv0 = t1;\ngl_Position = ( ( MVP ) * ( t1 ) ) * ( 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 vv0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = vv0;\n}\n"}], slots = [Slot {slotName = "stream4", slotStreams = fromList [("position4",V4F)], 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 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))]}),RenderSlot 0]} \ No newline at end of file
diff --git a/testdata/example07.out b/testdata/example07.out
index 95177070..cf8a558b 100644
--- a/testdata/example07.out
+++ b/testdata/example07.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 = "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 y1 ;\nsmooth out vec4 vv0 ;\nvoid main() {\nvv0 = y1;\ngl_Position = ( ( MVP ) * ( y1 ) ) * ( 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 vv0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( ( vv0 ).x ) < ( 0.5 ) ? vec4 ( 0.0,0.0,1.0,1.0 ) : vec4 ( 1.0,0.0,0.0,1.0 );\n}\n"}], slots = [Slot {slotName = "stream4", slotStreams = fromList [("position4",V4F)], 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.1 0.0 0.2 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))]}),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 [("e2",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 e2 ;\nsmooth out vec4 vv0 ;\nvoid main() {\nvv0 = e2;\ngl_Position = ( ( MVP ) * ( e2 ) ) * ( 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 vv0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( ( vv0 ).x ) < ( 0.5 ) ? vec4 ( 0.0,0.0,1.0,1.0 ) : vec4 ( 1.0,0.0,0.0,1.0 );\n}\n"}], slots = [Slot {slotName = "stream4", slotStreams = fromList [("position4",V4F)], 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.1 0.0 0.2 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))]}),RenderSlot 0]} \ No newline at end of file
diff --git a/testdata/example08.out b/testdata/example08.out
index 6bf8b064..5009e487 100644
--- a/testdata/example08.out
+++ b/testdata/example08.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),("Time",Float)], programStreams = fromList [("n1",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 float Time ;\nuniform mat4 MVP ;\nin vec4 n1 ;\nsmooth out vec4 vv0 ;\nvoid main() {\nvv0 = n1;\ngl_Position = ( mat4 ( vec4 ( cos ( ( Time ) * ( 2.0 ) ),sin ( ( Time ) * ( 2.0 ) ),0.0,0.0 ),vec4 ( ( 0.0 ) - ( sin ( ( Time ) * ( 2.0 ) ) ),cos ( ( Time ) * ( 2.0 ) ),0.0,0.0 ),vec4 ( 0.0,0.0,1.0,0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( ( MVP ) * ( ( vec4 ( ( 1.0 ) + ( ( sin ( Time ) ) * ( 0.1 ) ),0.0,0.0,0.0 ) ) + ( ( ( mat4 ( vec4 ( 1.0,0.0,0.0,0.0 ),vec4 ( 0.0,cos ( ( ( Time ) * ( 2.0 ) ) * ( 2.0 ) ),sin ( ( ( Time ) * ( 2.0 ) ) * ( 2.0 ) ),0.0 ),vec4 ( 0.0,( 0.0 ) - ( sin ( ( ( Time ) * ( 2.0 ) ) * ( 2.0 ) ) ),cos ( ( ( Time ) * ( 2.0 ) ) * ( 2.0 ) ),0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( n1 ) ) * ( vec4 ( 4.0e-2,4.0e-2,4.0e-2,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 vv0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = vv0;\n}\n"},Program {programUniforms = fromList [("MVP",M44F),("Time",Float)], programStreams = fromList [("c7",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 float Time ;\nuniform mat4 MVP ;\nin vec4 c7 ;\nsmooth out vec4 vv0 ;\nvoid main() {\nvv0 = c7;\ngl_Position = ( mat4 ( vec4 ( cos ( ( Time ) * ( 1.0 ) ),sin ( ( Time ) * ( 1.0 ) ),0.0,0.0 ),vec4 ( ( 0.0 ) - ( sin ( ( Time ) * ( 1.0 ) ) ),cos ( ( Time ) * ( 1.0 ) ),0.0,0.0 ),vec4 ( 0.0,0.0,1.0,0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( ( MVP ) * ( ( vec4 ( ( 0.5 ) + ( ( sin ( Time ) ) * ( 0.1 ) ),0.0,0.0,0.0 ) ) + ( ( ( mat4 ( vec4 ( 1.0,0.0,0.0,0.0 ),vec4 ( 0.0,cos ( ( ( Time ) * ( 2.0 ) ) * ( 1.0 ) ),sin ( ( ( Time ) * ( 2.0 ) ) * ( 1.0 ) ),0.0 ),vec4 ( 0.0,( 0.0 ) - ( sin ( ( ( Time ) * ( 2.0 ) ) * ( 1.0 ) ) ),cos ( ( ( Time ) * ( 2.0 ) ) * ( 1.0 ) ),0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( c7 ) ) * ( vec4 ( 4.0e-2,4.0e-2,4.0e-2,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 vv0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = vv0;\n}\n"},Program {programUniforms = fromList [("MVP",M44F),("Time",Float)], programStreams = fromList [("r12",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 float Time ;\nuniform mat4 MVP ;\nin vec4 r12 ;\nsmooth out vec4 vv0 ;\nvoid main() {\nvv0 = r12;\ngl_Position = ( mat4 ( vec4 ( cos ( ( Time ) * ( 0.0 ) ),sin ( ( Time ) * ( 0.0 ) ),0.0,0.0 ),vec4 ( ( 0.0 ) - ( sin ( ( Time ) * ( 0.0 ) ) ),cos ( ( Time ) * ( 0.0 ) ),0.0,0.0 ),vec4 ( 0.0,0.0,1.0,0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( ( MVP ) * ( ( vec4 ( ( 0.0 ) + ( ( sin ( Time ) ) * ( 0.1 ) ),0.0,0.0,0.0 ) ) + ( ( ( mat4 ( vec4 ( 1.0,0.0,0.0,0.0 ),vec4 ( 0.0,cos ( ( ( Time ) * ( 2.0 ) ) * ( 0.0 ) ),sin ( ( ( Time ) * ( 2.0 ) ) * ( 0.0 ) ),0.0 ),vec4 ( 0.0,( 0.0 ) - ( sin ( ( ( Time ) * ( 2.0 ) ) * ( 0.0 ) ) ),cos ( ( ( Time ) * ( 2.0 ) ) * ( 0.0 ) ),0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( r12 ) ) * ( vec4 ( 4.0e-2,4.0e-2,4.0e-2,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 vv0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = vv0;\n}\n"},Program {programUniforms = fromList [("MVP",M44F),("Time",Float)], programStreams = fromList [("g18",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 float Time ;\nuniform mat4 MVP ;\nin vec4 g18 ;\nsmooth out vec4 vv0 ;\nvoid main() {\nvv0 = g18;\ngl_Position = ( mat4 ( vec4 ( cos ( ( Time ) * ( -1.0 ) ),sin ( ( Time ) * ( -1.0 ) ),0.0,0.0 ),vec4 ( ( 0.0 ) - ( sin ( ( Time ) * ( -1.0 ) ) ),cos ( ( Time ) * ( -1.0 ) ),0.0,0.0 ),vec4 ( 0.0,0.0,1.0,0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( ( MVP ) * ( ( vec4 ( ( -0.5 ) + ( ( sin ( Time ) ) * ( 0.1 ) ),0.0,0.0,0.0 ) ) + ( ( ( mat4 ( vec4 ( 1.0,0.0,0.0,0.0 ),vec4 ( 0.0,cos ( ( ( Time ) * ( 2.0 ) ) * ( -1.0 ) ),sin ( ( ( Time ) * ( 2.0 ) ) * ( -1.0 ) ),0.0 ),vec4 ( 0.0,( 0.0 ) - ( sin ( ( ( Time ) * ( 2.0 ) ) * ( -1.0 ) ) ),cos ( ( ( Time ) * ( 2.0 ) ) * ( -1.0 ) ),0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( g18 ) ) * ( vec4 ( 4.0e-2,4.0e-2,4.0e-2,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 vv0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = vv0;\n}\n"},Program {programUniforms = fromList [("MVP",M44F),("Time",Float)], programStreams = fromList [("v23",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 float Time ;\nuniform mat4 MVP ;\nin vec4 v23 ;\nsmooth out vec4 vv0 ;\nvoid main() {\nvv0 = v23;\ngl_Position = ( mat4 ( vec4 ( cos ( ( Time ) * ( 0.75 ) ),sin ( ( Time ) * ( 0.75 ) ),0.0,0.0 ),vec4 ( ( 0.0 ) - ( sin ( ( Time ) * ( 0.75 ) ) ),cos ( ( Time ) * ( 0.75 ) ),0.0,0.0 ),vec4 ( 0.0,0.0,1.0,0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( ( MVP ) * ( ( vec4 ( ( 0.375 ) + ( ( sin ( Time ) ) * ( 0.1 ) ),0.0,0.0,0.0 ) ) + ( ( ( mat4 ( vec4 ( 1.0,0.0,0.0,0.0 ),vec4 ( 0.0,cos ( ( ( Time ) * ( 2.0 ) ) * ( 0.75 ) ),sin ( ( ( Time ) * ( 2.0 ) ) * ( 0.75 ) ),0.0 ),vec4 ( 0.0,( 0.0 ) - ( sin ( ( ( Time ) * ( 2.0 ) ) * ( 0.75 ) ) ),cos ( ( ( Time ) * ( 2.0 ) ) * ( 0.75 ) ),0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( v23 ) ) * ( vec4 ( 4.0e-2,4.0e-2,4.0e-2,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 vv0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = vv0;\n}\n"},Program {programUniforms = fromList [("MVP",M44F),("Time",Float)], programStreams = fromList [("k29",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 float Time ;\nuniform mat4 MVP ;\nin vec4 k29 ;\nsmooth out vec4 vv0 ;\nvoid main() {\nvv0 = k29;\ngl_Position = ( mat4 ( vec4 ( cos ( ( Time ) * ( 0.3 ) ),sin ( ( Time ) * ( 0.3 ) ),0.0,0.0 ),vec4 ( ( 0.0 ) - ( sin ( ( Time ) * ( 0.3 ) ) ),cos ( ( Time ) * ( 0.3 ) ),0.0,0.0 ),vec4 ( 0.0,0.0,1.0,0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( ( MVP ) * ( ( vec4 ( ( 0.15 ) + ( ( sin ( Time ) ) * ( 0.1 ) ),0.0,0.0,0.0 ) ) + ( ( ( mat4 ( vec4 ( 1.0,0.0,0.0,0.0 ),vec4 ( 0.0,cos ( ( ( Time ) * ( 2.0 ) ) * ( 0.3 ) ),sin ( ( ( Time ) * ( 2.0 ) ) * ( 0.3 ) ),0.0 ),vec4 ( 0.0,( 0.0 ) - ( sin ( ( ( Time ) * ( 2.0 ) ) * ( 0.3 ) ) ),cos ( ( ( Time ) * ( 2.0 ) ) * ( 0.3 ) ),0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( k29 ) ) * ( vec4 ( 4.0e-2,4.0e-2,4.0e-2,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 vv0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = vv0;\n}\n"},Program {programUniforms = fromList [("MVP",M44F),("Time",Float)], programStreams = fromList [("z34",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 float Time ;\nuniform mat4 MVP ;\nin vec4 z34 ;\nsmooth out vec4 vv0 ;\nvoid main() {\nvv0 = z34;\ngl_Position = ( mat4 ( vec4 ( cos ( ( Time ) * ( 0.5 ) ),sin ( ( Time ) * ( 0.5 ) ),0.0,0.0 ),vec4 ( ( 0.0 ) - ( sin ( ( Time ) * ( 0.5 ) ) ),cos ( ( Time ) * ( 0.5 ) ),0.0,0.0 ),vec4 ( 0.0,0.0,1.0,0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( ( MVP ) * ( ( vec4 ( ( 0.25 ) + ( ( sin ( Time ) ) * ( 0.1 ) ),0.0,0.0,0.0 ) ) + ( ( ( mat4 ( vec4 ( 1.0,0.0,0.0,0.0 ),vec4 ( 0.0,cos ( ( ( Time ) * ( 2.0 ) ) * ( 0.5 ) ),sin ( ( ( Time ) * ( 2.0 ) ) * ( 0.5 ) ),0.0 ),vec4 ( 0.0,( 0.0 ) - ( sin ( ( ( Time ) * ( 2.0 ) ) * ( 0.5 ) ) ),cos ( ( ( Time ) * ( 2.0 ) ) * ( 0.5 ) ),0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( z34 ) ) * ( vec4 ( 4.0e-2,4.0e-2,4.0e-2,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 vv0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = vv0;\n}\n"},Program {programUniforms = fromList [("MVP",M44F),("Time",Float)], programStreams = fromList [("o40",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 float Time ;\nuniform mat4 MVP ;\nin vec4 o40 ;\nsmooth out vec4 vv0 ;\nvoid main() {\nvv0 = o40;\ngl_Position = ( mat4 ( vec4 ( cos ( ( Time ) * ( 0.0 ) ),sin ( ( Time ) * ( 0.0 ) ),0.0,0.0 ),vec4 ( ( 0.0 ) - ( sin ( ( Time ) * ( 0.0 ) ) ),cos ( ( Time ) * ( 0.0 ) ),0.0,0.0 ),vec4 ( 0.0,0.0,1.0,0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( ( MVP ) * ( ( vec4 ( ( 0.0 ) + ( ( sin ( Time ) ) * ( 0.1 ) ),0.0,0.0,0.0 ) ) + ( ( ( mat4 ( vec4 ( 1.0,0.0,0.0,0.0 ),vec4 ( 0.0,cos ( ( ( Time ) * ( 2.0 ) ) * ( 0.0 ) ),sin ( ( ( Time ) * ( 2.0 ) ) * ( 0.0 ) ),0.0 ),vec4 ( 0.0,( 0.0 ) - ( sin ( ( ( Time ) * ( 2.0 ) ) * ( 0.0 ) ) ),cos ( ( ( Time ) * ( 2.0 ) ) * ( 0.0 ) ),0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( o40 ) ) * ( vec4 ( 4.0e-2,4.0e-2,4.0e-2,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 vv0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = vv0;\n}\n"},Program {programUniforms = fromList [("MVP",M44F),("Time",Float)], programStreams = fromList [("d46",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 float Time ;\nuniform mat4 MVP ;\nin vec4 d46 ;\nsmooth out vec4 vv0 ;\nvoid main() {\nvv0 = d46;\ngl_Position = ( mat4 ( vec4 ( cos ( ( Time ) * ( -0.5 ) ),sin ( ( Time ) * ( -0.5 ) ),0.0,0.0 ),vec4 ( ( 0.0 ) - ( sin ( ( Time ) * ( -0.5 ) ) ),cos ( ( Time ) * ( -0.5 ) ),0.0,0.0 ),vec4 ( 0.0,0.0,1.0,0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( ( MVP ) * ( ( vec4 ( ( -0.25 ) + ( ( sin ( Time ) ) * ( 0.1 ) ),0.0,0.0,0.0 ) ) + ( ( ( mat4 ( vec4 ( 1.0,0.0,0.0,0.0 ),vec4 ( 0.0,cos ( ( ( Time ) * ( 2.0 ) ) * ( -0.5 ) ),sin ( ( ( Time ) * ( 2.0 ) ) * ( -0.5 ) ),0.0 ),vec4 ( 0.0,( 0.0 ) - ( sin ( ( ( Time ) * ( 2.0 ) ) * ( -0.5 ) ) ),cos ( ( ( Time ) * ( 2.0 ) ) * ( -0.5 ) ),0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( d46 ) ) * ( vec4 ( 4.0e-2,4.0e-2,4.0e-2,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 vv0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = vv0;\n}\n"}], slots = [Slot {slotName = "stream4", slotStreams = fromList [("position4",V4F)], slotUniforms = fromList [("MVP",M44F),("Time",Float)], slotPrimitive = Triangles, slotPrograms = [0,1,2,3,4,5,6,7,8]}], streams = [], 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 8,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 0,SetProgram 7,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 0,SetProgram 6,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 0,SetProgram 5,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 0,SetProgram 4,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 0,SetProgram 3,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 0,SetProgram 2,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 0,SetProgram 1,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 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))]}),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),("Time",Float)], programStreams = fromList [("t1",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 float Time ;\nuniform mat4 MVP ;\nin vec4 t1 ;\nsmooth out vec4 vv0 ;\nvoid main() {\nvv0 = t1;\ngl_Position = ( mat4 ( vec4 ( cos ( ( Time ) * ( 2.0 ) ),sin ( ( Time ) * ( 2.0 ) ),0.0,0.0 ),vec4 ( ( 0.0 ) - ( sin ( ( Time ) * ( 2.0 ) ) ),cos ( ( Time ) * ( 2.0 ) ),0.0,0.0 ),vec4 ( 0.0,0.0,1.0,0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( ( MVP ) * ( ( vec4 ( ( 1.0 ) + ( ( sin ( Time ) ) * ( 0.1 ) ),0.0,0.0,0.0 ) ) + ( ( ( mat4 ( vec4 ( 1.0,0.0,0.0,0.0 ),vec4 ( 0.0,cos ( ( ( Time ) * ( 2.0 ) ) * ( 2.0 ) ),sin ( ( ( Time ) * ( 2.0 ) ) * ( 2.0 ) ),0.0 ),vec4 ( 0.0,( 0.0 ) - ( sin ( ( ( Time ) * ( 2.0 ) ) * ( 2.0 ) ) ),cos ( ( ( Time ) * ( 2.0 ) ) * ( 2.0 ) ),0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( t1 ) ) * ( vec4 ( 4.0e-2,4.0e-2,4.0e-2,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 vv0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = vv0;\n}\n"},Program {programUniforms = fromList [("MVP",M44F),("Time",Float)], programStreams = fromList [("o7",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 float Time ;\nuniform mat4 MVP ;\nin vec4 o7 ;\nsmooth out vec4 vv0 ;\nvoid main() {\nvv0 = o7;\ngl_Position = ( mat4 ( vec4 ( cos ( ( Time ) * ( 1.0 ) ),sin ( ( Time ) * ( 1.0 ) ),0.0,0.0 ),vec4 ( ( 0.0 ) - ( sin ( ( Time ) * ( 1.0 ) ) ),cos ( ( Time ) * ( 1.0 ) ),0.0,0.0 ),vec4 ( 0.0,0.0,1.0,0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( ( MVP ) * ( ( vec4 ( ( 0.5 ) + ( ( sin ( Time ) ) * ( 0.1 ) ),0.0,0.0,0.0 ) ) + ( ( ( mat4 ( vec4 ( 1.0,0.0,0.0,0.0 ),vec4 ( 0.0,cos ( ( ( Time ) * ( 2.0 ) ) * ( 1.0 ) ),sin ( ( ( Time ) * ( 2.0 ) ) * ( 1.0 ) ),0.0 ),vec4 ( 0.0,( 0.0 ) - ( sin ( ( ( Time ) * ( 2.0 ) ) * ( 1.0 ) ) ),cos ( ( ( Time ) * ( 2.0 ) ) * ( 1.0 ) ),0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( o7 ) ) * ( vec4 ( 4.0e-2,4.0e-2,4.0e-2,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 vv0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = vv0;\n}\n"},Program {programUniforms = fromList [("MVP",M44F),("Time",Float)], programStreams = fromList [("j13",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 float Time ;\nuniform mat4 MVP ;\nin vec4 j13 ;\nsmooth out vec4 vv0 ;\nvoid main() {\nvv0 = j13;\ngl_Position = ( mat4 ( vec4 ( cos ( ( Time ) * ( 0.0 ) ),sin ( ( Time ) * ( 0.0 ) ),0.0,0.0 ),vec4 ( ( 0.0 ) - ( sin ( ( Time ) * ( 0.0 ) ) ),cos ( ( Time ) * ( 0.0 ) ),0.0,0.0 ),vec4 ( 0.0,0.0,1.0,0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( ( MVP ) * ( ( vec4 ( ( 0.0 ) + ( ( sin ( Time ) ) * ( 0.1 ) ),0.0,0.0,0.0 ) ) + ( ( ( mat4 ( vec4 ( 1.0,0.0,0.0,0.0 ),vec4 ( 0.0,cos ( ( ( Time ) * ( 2.0 ) ) * ( 0.0 ) ),sin ( ( ( Time ) * ( 2.0 ) ) * ( 0.0 ) ),0.0 ),vec4 ( 0.0,( 0.0 ) - ( sin ( ( ( Time ) * ( 2.0 ) ) * ( 0.0 ) ) ),cos ( ( ( Time ) * ( 2.0 ) ) * ( 0.0 ) ),0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( j13 ) ) * ( vec4 ( 4.0e-2,4.0e-2,4.0e-2,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 vv0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = vv0;\n}\n"},Program {programUniforms = fromList [("MVP",M44F),("Time",Float)], programStreams = fromList [("e19",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 float Time ;\nuniform mat4 MVP ;\nin vec4 e19 ;\nsmooth out vec4 vv0 ;\nvoid main() {\nvv0 = e19;\ngl_Position = ( mat4 ( vec4 ( cos ( ( Time ) * ( -1.0 ) ),sin ( ( Time ) * ( -1.0 ) ),0.0,0.0 ),vec4 ( ( 0.0 ) - ( sin ( ( Time ) * ( -1.0 ) ) ),cos ( ( Time ) * ( -1.0 ) ),0.0,0.0 ),vec4 ( 0.0,0.0,1.0,0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( ( MVP ) * ( ( vec4 ( ( -0.5 ) + ( ( sin ( Time ) ) * ( 0.1 ) ),0.0,0.0,0.0 ) ) + ( ( ( mat4 ( vec4 ( 1.0,0.0,0.0,0.0 ),vec4 ( 0.0,cos ( ( ( Time ) * ( 2.0 ) ) * ( -1.0 ) ),sin ( ( ( Time ) * ( 2.0 ) ) * ( -1.0 ) ),0.0 ),vec4 ( 0.0,( 0.0 ) - ( sin ( ( ( Time ) * ( 2.0 ) ) * ( -1.0 ) ) ),cos ( ( ( Time ) * ( 2.0 ) ) * ( -1.0 ) ),0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( e19 ) ) * ( vec4 ( 4.0e-2,4.0e-2,4.0e-2,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 vv0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = vv0;\n}\n"},Program {programUniforms = fromList [("MVP",M44F),("Time",Float)], programStreams = fromList [("z24",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 float Time ;\nuniform mat4 MVP ;\nin vec4 z24 ;\nsmooth out vec4 vv0 ;\nvoid main() {\nvv0 = z24;\ngl_Position = ( mat4 ( vec4 ( cos ( ( Time ) * ( 0.75 ) ),sin ( ( Time ) * ( 0.75 ) ),0.0,0.0 ),vec4 ( ( 0.0 ) - ( sin ( ( Time ) * ( 0.75 ) ) ),cos ( ( Time ) * ( 0.75 ) ),0.0,0.0 ),vec4 ( 0.0,0.0,1.0,0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( ( MVP ) * ( ( vec4 ( ( 0.375 ) + ( ( sin ( Time ) ) * ( 0.1 ) ),0.0,0.0,0.0 ) ) + ( ( ( mat4 ( vec4 ( 1.0,0.0,0.0,0.0 ),vec4 ( 0.0,cos ( ( ( Time ) * ( 2.0 ) ) * ( 0.75 ) ),sin ( ( ( Time ) * ( 2.0 ) ) * ( 0.75 ) ),0.0 ),vec4 ( 0.0,( 0.0 ) - ( sin ( ( ( Time ) * ( 2.0 ) ) * ( 0.75 ) ) ),cos ( ( ( Time ) * ( 2.0 ) ) * ( 0.75 ) ),0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( z24 ) ) * ( vec4 ( 4.0e-2,4.0e-2,4.0e-2,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 vv0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = vv0;\n}\n"},Program {programUniforms = fromList [("MVP",M44F),("Time",Float)], programStreams = fromList [("u30",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 float Time ;\nuniform mat4 MVP ;\nin vec4 u30 ;\nsmooth out vec4 vv0 ;\nvoid main() {\nvv0 = u30;\ngl_Position = ( mat4 ( vec4 ( cos ( ( Time ) * ( 0.3 ) ),sin ( ( Time ) * ( 0.3 ) ),0.0,0.0 ),vec4 ( ( 0.0 ) - ( sin ( ( Time ) * ( 0.3 ) ) ),cos ( ( Time ) * ( 0.3 ) ),0.0,0.0 ),vec4 ( 0.0,0.0,1.0,0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( ( MVP ) * ( ( vec4 ( ( 0.15 ) + ( ( sin ( Time ) ) * ( 0.1 ) ),0.0,0.0,0.0 ) ) + ( ( ( mat4 ( vec4 ( 1.0,0.0,0.0,0.0 ),vec4 ( 0.0,cos ( ( ( Time ) * ( 2.0 ) ) * ( 0.3 ) ),sin ( ( ( Time ) * ( 2.0 ) ) * ( 0.3 ) ),0.0 ),vec4 ( 0.0,( 0.0 ) - ( sin ( ( ( Time ) * ( 2.0 ) ) * ( 0.3 ) ) ),cos ( ( ( Time ) * ( 2.0 ) ) * ( 0.3 ) ),0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( u30 ) ) * ( vec4 ( 4.0e-2,4.0e-2,4.0e-2,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 vv0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = vv0;\n}\n"},Program {programUniforms = fromList [("MVP",M44F),("Time",Float)], programStreams = fromList [("p36",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 float Time ;\nuniform mat4 MVP ;\nin vec4 p36 ;\nsmooth out vec4 vv0 ;\nvoid main() {\nvv0 = p36;\ngl_Position = ( mat4 ( vec4 ( cos ( ( Time ) * ( 0.5 ) ),sin ( ( Time ) * ( 0.5 ) ),0.0,0.0 ),vec4 ( ( 0.0 ) - ( sin ( ( Time ) * ( 0.5 ) ) ),cos ( ( Time ) * ( 0.5 ) ),0.0,0.0 ),vec4 ( 0.0,0.0,1.0,0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( ( MVP ) * ( ( vec4 ( ( 0.25 ) + ( ( sin ( Time ) ) * ( 0.1 ) ),0.0,0.0,0.0 ) ) + ( ( ( mat4 ( vec4 ( 1.0,0.0,0.0,0.0 ),vec4 ( 0.0,cos ( ( ( Time ) * ( 2.0 ) ) * ( 0.5 ) ),sin ( ( ( Time ) * ( 2.0 ) ) * ( 0.5 ) ),0.0 ),vec4 ( 0.0,( 0.0 ) - ( sin ( ( ( Time ) * ( 2.0 ) ) * ( 0.5 ) ) ),cos ( ( ( Time ) * ( 2.0 ) ) * ( 0.5 ) ),0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( p36 ) ) * ( vec4 ( 4.0e-2,4.0e-2,4.0e-2,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 vv0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = vv0;\n}\n"},Program {programUniforms = fromList [("MVP",M44F),("Time",Float)], programStreams = fromList [("k42",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 float Time ;\nuniform mat4 MVP ;\nin vec4 k42 ;\nsmooth out vec4 vv0 ;\nvoid main() {\nvv0 = k42;\ngl_Position = ( mat4 ( vec4 ( cos ( ( Time ) * ( 0.0 ) ),sin ( ( Time ) * ( 0.0 ) ),0.0,0.0 ),vec4 ( ( 0.0 ) - ( sin ( ( Time ) * ( 0.0 ) ) ),cos ( ( Time ) * ( 0.0 ) ),0.0,0.0 ),vec4 ( 0.0,0.0,1.0,0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( ( MVP ) * ( ( vec4 ( ( 0.0 ) + ( ( sin ( Time ) ) * ( 0.1 ) ),0.0,0.0,0.0 ) ) + ( ( ( mat4 ( vec4 ( 1.0,0.0,0.0,0.0 ),vec4 ( 0.0,cos ( ( ( Time ) * ( 2.0 ) ) * ( 0.0 ) ),sin ( ( ( Time ) * ( 2.0 ) ) * ( 0.0 ) ),0.0 ),vec4 ( 0.0,( 0.0 ) - ( sin ( ( ( Time ) * ( 2.0 ) ) * ( 0.0 ) ) ),cos ( ( ( Time ) * ( 2.0 ) ) * ( 0.0 ) ),0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( k42 ) ) * ( vec4 ( 4.0e-2,4.0e-2,4.0e-2,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 vv0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = vv0;\n}\n"},Program {programUniforms = fromList [("MVP",M44F),("Time",Float)], programStreams = fromList [("f48",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 float Time ;\nuniform mat4 MVP ;\nin vec4 f48 ;\nsmooth out vec4 vv0 ;\nvoid main() {\nvv0 = f48;\ngl_Position = ( mat4 ( vec4 ( cos ( ( Time ) * ( -0.5 ) ),sin ( ( Time ) * ( -0.5 ) ),0.0,0.0 ),vec4 ( ( 0.0 ) - ( sin ( ( Time ) * ( -0.5 ) ) ),cos ( ( Time ) * ( -0.5 ) ),0.0,0.0 ),vec4 ( 0.0,0.0,1.0,0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( ( MVP ) * ( ( vec4 ( ( -0.25 ) + ( ( sin ( Time ) ) * ( 0.1 ) ),0.0,0.0,0.0 ) ) + ( ( ( mat4 ( vec4 ( 1.0,0.0,0.0,0.0 ),vec4 ( 0.0,cos ( ( ( Time ) * ( 2.0 ) ) * ( -0.5 ) ),sin ( ( ( Time ) * ( 2.0 ) ) * ( -0.5 ) ),0.0 ),vec4 ( 0.0,( 0.0 ) - ( sin ( ( ( Time ) * ( 2.0 ) ) * ( -0.5 ) ) ),cos ( ( ( Time ) * ( 2.0 ) ) * ( -0.5 ) ),0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( f48 ) ) * ( vec4 ( 4.0e-2,4.0e-2,4.0e-2,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 vv0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = vv0;\n}\n"}], slots = [Slot {slotName = "stream4", slotStreams = fromList [("position4",V4F)], slotUniforms = fromList [("MVP",M44F),("Time",Float)], slotPrimitive = Triangles, slotPrograms = [0,1,2,3,4,5,6,7,8]}], streams = [], 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 8,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 0,SetProgram 7,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 0,SetProgram 6,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 0,SetProgram 5,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 0,SetProgram 4,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 0,SetProgram 3,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 0,SetProgram 2,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 0,SetProgram 1,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 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))]}),RenderSlot 0]} \ No newline at end of file
diff --git a/testdata/fetcharrays01.out b/testdata/fetcharrays01.out
index 5b66be08..2f3745fe 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 [("x1",Parameter {name = "attribute_0", ty = V3F}),("y1",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 x1 ;\nin vec3 y1 ;\nsmooth out vec4 vv0 ;\nvoid main() {\nvv0 = vec4 ( ( x1 ).x,( x1 ).y,( x1 ).z,1.0 );\ngl_Position = ( ( MVP ) * ( vec4 ( ( x1 ).x,( x1 ).y,( x1 ).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 vv0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = vv0;\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 [("d2",Parameter {name = "attribute_0", ty = V3F}),("e2",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 d2 ;\nin vec3 e2 ;\nsmooth out vec4 vv0 ;\nvoid main() {\nvv0 = vec4 ( ( d2 ).x,( d2 ).y,( d2 ).z,1.0 );\ngl_Position = ( ( MVP ) * ( vec4 ( ( d2 ).x,( d2 ).y,( d2 ).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 vv0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = vv0;\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/fragment01.out b/testdata/fragment01.out
index f3fac456..c35c9053 100644
--- a/testdata/fragment01.out
+++ b/testdata/fragment01.out
@@ -1 +1 @@
Pipeline {backend = OpenGL33, textures = [], samplers = [], targets = [RenderTarget {renderTargets = [TargetItem {targetSemantic = Color, targetRef = Just (Framebuffer Color)}]}], programs = [Program {programUniforms = fromList [], programStreams = fromList [("l1",Parameter {name = "position", ty = V4F})], programInTextures = fromList [], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nin vec4 l1 ;\nvoid main() {\ngl_Position = l1;\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.0,1.0,1.0 );\n}\n"}], slots = [Slot {slotName = "quad", slotStreams = fromList [("position",V4F)], slotUniforms = fromList [], slotPrimitive = Triangles, slotPrograms = [0]}], streams = [], commands = [SetRenderTarget 0,ClearRenderTarget [ClearImage {imageSemantic = Color, clearValue = VV4F (V4 1.0 0.0 0.0 0.5)}],SetProgram 0,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [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 = Color, targetRef = Just (Framebuffer Color)}]}], programs = [Program {programUniforms = fromList [], programStreams = fromList [("r1",Parameter {name = "position", ty = V4F})], programInTextures = fromList [], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nin vec4 r1 ;\nvoid main() {\ngl_Position = r1;\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.0,1.0,1.0 );\n}\n"}], slots = [Slot {slotName = "quad", slotStreams = fromList [("position",V4F)], slotUniforms = fromList [], slotPrimitive = Triangles, slotPrograms = [0]}], streams = [], commands = [SetRenderTarget 0,ClearRenderTarget [ClearImage {imageSemantic = Color, clearValue = VV4F (V4 1.0 0.0 0.0 0.5)}],SetProgram 0,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 0]} \ No newline at end of file
diff --git a/testdata/fragment03swizzling.out b/testdata/fragment03swizzling.out
index 610ba302..2a22bd34 100644
--- a/testdata/fragment03swizzling.out
+++ b/testdata/fragment03swizzling.out
@@ -1 +1 @@
Pipeline {backend = OpenGL33, textures = [], samplers = [], targets = [RenderTarget {renderTargets = [TargetItem {targetSemantic = Color, targetRef = Just (Framebuffer Color)}]}], programs = [Program {programUniforms = fromList [], programStreams = fromList [("u1",Parameter {name = "position", ty = V4F})], programInTextures = fromList [], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nin vec4 u1 ;\nsmooth out vec4 vv0 ;\nvoid main() {\nvv0 = u1;\ngl_Position = u1;\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 vv0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( ( vv0 ).xxxw ) + ( ( vv0 ).yyyw );\n}\n"}], slots = [Slot {slotName = "quad", slotStreams = fromList [("position",V4F)], slotUniforms = fromList [], slotPrimitive = Triangles, slotPrograms = [0]}], streams = [], commands = [SetRenderTarget 0,ClearRenderTarget [ClearImage {imageSemantic = Color, clearValue = VV4F (V4 1.0 0.0 0.0 0.5)}],SetProgram 0,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [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 = Color, targetRef = Just (Framebuffer Color)}]}], programs = [Program {programUniforms = fromList [], programStreams = fromList [("a2",Parameter {name = "position", ty = V4F})], programInTextures = fromList [], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nin vec4 a2 ;\nsmooth out vec4 vv0 ;\nvoid main() {\nvv0 = a2;\ngl_Position = a2;\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 vv0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( ( vv0 ).xxxw ) + ( ( vv0 ).yyyw );\n}\n"}], slots = [Slot {slotName = "quad", slotStreams = fromList [("position",V4F)], slotUniforms = fromList [], slotPrimitive = Triangles, slotPrograms = [0]}], streams = [], commands = [SetRenderTarget 0,ClearRenderTarget [ClearImage {imageSemantic = Color, clearValue = VV4F (V4 1.0 0.0 0.0 0.5)}],SetProgram 0,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 0]} \ No newline at end of file
diff --git a/testdata/fragment04ifthenelse.out b/testdata/fragment04ifthenelse.out
index 9fe9bb21..30dfb28d 100644
--- a/testdata/fragment04ifthenelse.out
+++ b/testdata/fragment04ifthenelse.out
@@ -1 +1 @@
Pipeline {backend = OpenGL33, textures = [], samplers = [], targets = [RenderTarget {renderTargets = [TargetItem {targetSemantic = Color, targetRef = Just (Framebuffer Color)}]}], programs = [Program {programUniforms = fromList [("Time",Float)], programStreams = fromList [("u1",Parameter {name = "position", ty = V4F})], programInTextures = fromList [], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nin vec4 u1 ;\nsmooth out vec4 vv0 ;\nvoid main() {\nvv0 = u1;\ngl_Position = u1;\ngl_PointSize = 1.0;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float Time ;\nsmooth in vec4 vv0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( Time ) < ( 0.5 ) ? vv0 : vec4 ( 0.0,0.0,1.0,1.0 );\n}\n"}], slots = [Slot {slotName = "quad", slotStreams = fromList [("position",V4F)], slotUniforms = fromList [("Time",Float)], slotPrimitive = Triangles, slotPrograms = [0]}], streams = [], commands = [SetRenderTarget 0,ClearRenderTarget [ClearImage {imageSemantic = Color, clearValue = VV4F (V4 1.0 0.0 0.0 0.5)}],SetProgram 0,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [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 = Color, targetRef = Just (Framebuffer Color)}]}], programs = [Program {programUniforms = fromList [("Time",Float)], programStreams = fromList [("a2",Parameter {name = "position", ty = V4F})], programInTextures = fromList [], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nin vec4 a2 ;\nsmooth out vec4 vv0 ;\nvoid main() {\nvv0 = a2;\ngl_Position = a2;\ngl_PointSize = 1.0;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float Time ;\nsmooth in vec4 vv0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( Time ) < ( 0.5 ) ? vv0 : vec4 ( 0.0,0.0,1.0,1.0 );\n}\n"}], slots = [Slot {slotName = "quad", slotStreams = fromList [("position",V4F)], slotUniforms = fromList [("Time",Float)], slotPrimitive = Triangles, slotPrograms = [0]}], streams = [], commands = [SetRenderTarget 0,ClearRenderTarget [ClearImage {imageSemantic = Color, clearValue = VV4F (V4 1.0 0.0 0.0 0.5)}],SetProgram 0,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 0]} \ No newline at end of file
diff --git a/testdata/fragment07let.out b/testdata/fragment07let.out
index e936cdde..3faf8f1a 100644
--- a/testdata/fragment07let.out
+++ b/testdata/fragment07let.out
@@ -1 +1 @@
Pipeline {backend = OpenGL33, textures = [], samplers = [], targets = [RenderTarget {renderTargets = [TargetItem {targetSemantic = Color, targetRef = Just (Framebuffer Color)}]}], programs = [Program {programUniforms = fromList [], programStreams = fromList [("r1",Parameter {name = "position", ty = V4F})], programInTextures = fromList [], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nin vec4 r1 ;\nsmooth out vec4 vv0 ;\nvoid main() {\nvv0 = r1;\ngl_Position = r1;\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 vv0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = sin ( sin ( vv0 ) );\n}\n"}], slots = [Slot {slotName = "quad", slotStreams = fromList [("position",V4F)], slotUniforms = fromList [], slotPrimitive = Triangles, slotPrograms = [0]}], streams = [], commands = [SetRenderTarget 0,ClearRenderTarget [ClearImage {imageSemantic = Color, clearValue = VV4F (V4 1.0 0.0 0.0 0.5)}],SetProgram 0,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [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 = Color, targetRef = Just (Framebuffer Color)}]}], programs = [Program {programUniforms = fromList [], programStreams = fromList [("x1",Parameter {name = "position", ty = V4F})], programInTextures = fromList [], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nin vec4 x1 ;\nsmooth out vec4 vv0 ;\nvoid main() {\nvv0 = x1;\ngl_Position = x1;\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 vv0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = sin ( sin ( vv0 ) );\n}\n"}], slots = [Slot {slotName = "quad", slotStreams = fromList [("position",V4F)], slotUniforms = fromList [], slotPrimitive = Triangles, slotPrograms = [0]}], streams = [], commands = [SetRenderTarget 0,ClearRenderTarget [ClearImage {imageSemantic = Color, clearValue = VV4F (V4 1.0 0.0 0.0 0.5)}],SetProgram 0,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 0]} \ No newline at end of file
diff --git a/testdata/gfx02.out b/testdata/gfx02.out
index c4ceecf1..c45ae7c4 100644
--- a/testdata/gfx02.out
+++ b/testdata/gfx02.out
@@ -1 +1 @@
Pipeline {backend = OpenGL33, textures = [], samplers = [], targets = [RenderTarget {renderTargets = [TargetItem {targetSemantic = Color, targetRef = Just (Framebuffer Color)}]}], programs = [Program {programUniforms = fromList [], programStreams = fromList [("l1",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);}\nin vec4 l1 ;\nsmooth out vec4 vv0 ;\nvoid main() {\nvv0 = l1;\ngl_Position = l1;\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 vv0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = vv0;\n}\n"}], slots = [Slot {slotName = "stream4", slotStreams = fromList [("position4",V4F)], slotUniforms = fromList [], slotPrimitive = Triangles, slotPrograms = [0]}], streams = [], commands = [SetRenderTarget 0,ClearRenderTarget [ClearImage {imageSemantic = Color, clearValue = VV4F (V4 0.0 0.0 0.4 1.0)}],SetProgram 0,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [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 = Color, targetRef = Just (Framebuffer Color)}]}], programs = [Program {programUniforms = fromList [], programStreams = fromList [("r1",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);}\nin vec4 r1 ;\nsmooth out vec4 vv0 ;\nvoid main() {\nvv0 = r1;\ngl_Position = r1;\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 vv0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = vv0;\n}\n"}], slots = [Slot {slotName = "stream4", slotStreams = fromList [("position4",V4F)], slotUniforms = fromList [], slotPrimitive = Triangles, slotPrograms = [0]}], streams = [], commands = [SetRenderTarget 0,ClearRenderTarget [ClearImage {imageSemantic = Color, clearValue = VV4F (V4 0.0 0.0 0.4 1.0)}],SetProgram 0,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 0]} \ No newline at end of file
diff --git a/testdata/gfx03.out b/testdata/gfx03.out
index 0deef166..8d621afe 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 [("n1",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 n1 ;\nvoid main() {\ngl_Position = ( MVP2 ) * ( vec4 ( ( n1 ).x,( n1 ).y,( n1 ).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 [("p3",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 p3 ;\nsmooth out vec4 vv0 ;\nvoid main() {\nvv0 = vec4 ( ( p3 ).x,( p3 ).y,( p3 ).z,1.0 );\ngl_Position = ( MVP2 ) * ( vec4 ( ( p3 ).x,( p3 ).y,( p3 ).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 vv0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vv0 ) + ( vec4 ( 1.0,1.4,1.0,0.6 ) );\n}\n"},Program {programUniforms = fromList [("MVP",M44F)], programStreams = fromList [("i6",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 i6 ;\nflat out vec4 vv0 ;\nvoid main() {\nvv0 = i6;\ngl_Position = ( MVP ) * ( i6 );\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 vv0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vv0 ) * ( 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 [("t1",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 t1 ;\nvoid main() {\ngl_Position = ( MVP2 ) * ( vec4 ( ( t1 ).x,( t1 ).y,( t1 ).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 [("b4",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 b4 ;\nsmooth out vec4 vv0 ;\nvoid main() {\nvv0 = vec4 ( ( b4 ).x,( b4 ).y,( b4 ).z,1.0 );\ngl_Position = ( MVP2 ) * ( vec4 ( ( b4 ).x,( b4 ).y,( b4 ).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 vv0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vv0 ) + ( vec4 ( 1.0,1.4,1.0,0.6 ) );\n}\n"},Program {programUniforms = fromList [("MVP",M44F)], programStreams = fromList [("a7",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 a7 ;\nflat out vec4 vv0 ;\nvoid main() {\nvv0 = a7;\ngl_Position = ( MVP ) * ( a7 );\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 vv0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vv0 ) * ( 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 dc374540..0c2190c9 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 [("h2",Parameter {name = "position", ty = V3F}),("i2",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 h2 ;\nin vec3 i2 ;\nsmooth out vec4 vv0 ;\nvoid main() {\nvv0 = vec4 ( ( i2 ).x,( i2 ).y,( i2 ).z,1.0 );\ngl_Position = ( MVP ) * ( vec4 ( ( h2 ).x,( h2 ).y,( h2 ).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 vv0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vv0 ) * ( 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 [("n2",Parameter {name = "position", ty = V3F}),("o2",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 n2 ;\nin vec3 o2 ;\nsmooth out vec4 vv0 ;\nvoid main() {\nvv0 = vec4 ( ( o2 ).x,( o2 ).y,( o2 ).z,1.0 );\ngl_Position = ( MVP ) * ( vec4 ( ( n2 ).x,( n2 ).y,( n2 ).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 vv0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vv0 ) * ( 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 eacff67d..72788f78 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 [("n1",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 n1 ;\nvoid main() {\ngl_Position = ( MVP2 ) * ( vec4 ( ( n1 ).x,( n1 ).y,( n1 ).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 [("p3",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 p3 ;\nsmooth out vec4 vv0 ;\nvoid main() {\nvv0 = vec4 ( ( p3 ).x,( p3 ).y,( p3 ).z,1.0 );\ngl_Position = ( MVP2 ) * ( vec4 ( ( p3 ).x,( p3 ).y,( p3 ).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 vv0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vv0 ) + ( vec4 ( 1.0,1.4,1.0,0.6 ) );\n}\n"},Program {programUniforms = fromList [("MVP2",M44F)], programStreams = fromList [("e7",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 e7 ;\nvoid main() {\ngl_Position = ( MVP2 ) * ( vec4 ( ( e7 ).x,( e7 ).y,( e7 ).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 [("m9",Parameter {name = "position4", ty = V4F}),("n9",Parameter {name = "vertexUV", ty = V2F})], programInTextures = fromList [("r5",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 m9 ;\nin vec2 n9 ;\nsmooth out vec2 vv0 ;\nvoid main() {\nvv0 = n9;\ngl_Position = ( MVP ) * ( m9 );\ngl_PointSize = 1.0;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D r5 ;\nsmooth in vec2 vv0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( texture2D ( r5,( vv0 ).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 "r5" 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 [("t1",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 t1 ;\nvoid main() {\ngl_Position = ( MVP2 ) * ( vec4 ( ( t1 ).x,( t1 ).y,( t1 ).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 [("b4",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 b4 ;\nsmooth out vec4 vv0 ;\nvoid main() {\nvv0 = vec4 ( ( b4 ).x,( b4 ).y,( b4 ).z,1.0 );\ngl_Position = ( MVP2 ) * ( vec4 ( ( b4 ).x,( b4 ).y,( b4 ).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 vv0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vv0 ) + ( vec4 ( 1.0,1.4,1.0,0.6 ) );\n}\n"},Program {programUniforms = fromList [("MVP2",M44F)], programStreams = fromList [("w7",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 w7 ;\nvoid main() {\ngl_Position = ( MVP2 ) * ( vec4 ( ( w7 ).x,( w7 ).y,( w7 ).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 [("k10",Parameter {name = "position4", ty = V4F}),("l10",Parameter {name = "vertexUV", ty = V2F})], programInTextures = fromList [("d6",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 k10 ;\nin vec2 l10 ;\nsmooth out vec2 vv0 ;\nvoid main() {\nvv0 = l10;\ngl_Position = ( MVP ) * ( k10 );\ngl_PointSize = 1.0;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D d6 ;\nsmooth in vec2 vv0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( texture2D ( d6,( vv0 ).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 "d6" 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/heartbeat01.out b/testdata/heartbeat01.out
index 2ec90817..f4b05a40 100644
--- a/testdata/heartbeat01.out
+++ b/testdata/heartbeat01.out
@@ -1 +1 @@
Pipeline {backend = OpenGL33, textures = [TextureDescriptor {textureType = Texture2D (FloatT Red) 1, textureSize = VV2U (V2 128 128), 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 128 128), 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 [("Time",Float)], programStreams = fromList [("r12",Parameter {name = "position4", ty = V4F}),("s12",Parameter {name = "vertexUV", ty = V2F})], programInTextures = fromList [], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nin vec4 r12 ;\nin vec2 s12 ;\nsmooth out vec2 vv0 ;\nvoid main() {\nvv0 = s12;\ngl_Position = ( r12 ) * ( vec4 ( 1.0,1.0,1.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);}\nuniform float Time ;\nsmooth in vec2 vv0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( ( ( ( ( ( vv0 ).x ) - ( 0.85 ) ) * ( ( ( vv0 ).x ) - ( 0.85 ) ) ) + ( ( ( ( vv0 ).y ) - ( 0.85 ) ) * ( ( ( vv0 ).y ) - ( 0.85 ) ) ) ) + ( ( 5.0e-4 ) * ( sin ( ( ( 3.0 ) * ( atan ( ( ( vv0 ).x ) - ( 0.85 ),( ( vv0 ).y ) - ( 0.85 ) ) ) ) + ( ( 15.0 ) * ( Time ) ) ) ) ) ) < ( ( 5.0e-3 ) * ( abs ( ( sin ( ( Time ) * ( 4.0 ) ) ) - ( 0.37 ) ) ) ) ? vec4 ( 0.0,0.0,0.5,1.0 ) : ( ( ( ( ( ( vv0 ).x ) - ( 0.85 ) ) * ( ( ( vv0 ).x ) - ( 0.85 ) ) ) + ( ( ( ( vv0 ).y ) - ( 0.85 ) ) * ( ( ( vv0 ).y ) - ( 0.85 ) ) ) ) + ( ( 2.0e-3 ) * ( sin ( ( ( 5.0 ) * ( atan ( ( ( vv0 ).x ) - ( 0.85 ),( ( vv0 ).y ) - ( 0.85 ) ) ) ) - ( ( 5.0 ) * ( Time ) ) ) ) ) ) < ( ( 2.0e-2 ) * ( abs ( ( sin ( ( Time ) * ( 4.0 ) ) ) - ( 0.37 ) ) ) ) ? vec4 ( 0.0,0.0,1.0,1.0 ) : ( ( ( ( ( ( vv0 ).x ) - ( 0.85 ) ) * ( ( ( vv0 ).x ) - ( 0.85 ) ) ) + ( ( ( ( vv0 ).y ) - ( 0.85 ) ) * ( ( ( vv0 ).y ) - ( 0.85 ) ) ) ) + ( ( 2.0e-3 ) * ( sin ( ( ( 7.0 ) * ( atan ( ( ( vv0 ).x ) - ( 0.85 ),( ( vv0 ).y ) - ( 0.85 ) ) ) ) + ( ( 3.0 ) * ( Time ) ) ) ) ) ) < ( ( 5.0e-2 ) * ( abs ( ( sin ( ( Time ) * ( 4.0 ) ) ) - ( 0.37 ) ) ) ) ? vec4 ( 1.0,1.0,1.0,1.0 ) : vec4 ( 1.0,1.0,0.0,1.0 );\n}\n"},Program {programUniforms = fromList [("MVP",M44F)], programStreams = fromList [("s14",Parameter {name = "position4", ty = V4F}),("t14",Parameter {name = "vertexUV", ty = V2F})], programInTextures = fromList [("v0",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 s14 ;\nin vec2 t14 ;\nsmooth out vec2 vv0 ;\nvoid main() {\nvv0 = t14;\ngl_Position = ( ( MVP ) * ( s14 ) ) * ( 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 v0 ;\nsmooth in vec2 vv0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = texture2D ( v0,vv0 );\n}\n"}], slots = [Slot {slotName = "stream4", slotStreams = fromList [("position4",V4F),("vertexUV",V2F)], slotUniforms = fromList [("MVP",M44F),("Time",Float)], slotPrimitive = Triangles, slotPrograms = [0,1]}], streams = [], commands = [SetRenderTarget 1,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))]}),RenderSlot 0,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 1,SetTexture 0 1,SetSamplerUniform "v0" 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 128 128), 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 128 128), 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 [("Time",Float)], programStreams = fromList [("x12",Parameter {name = "position4", ty = V4F}),("y12",Parameter {name = "vertexUV", ty = V2F})], programInTextures = fromList [], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nin vec4 x12 ;\nin vec2 y12 ;\nsmooth out vec2 vv0 ;\nvoid main() {\nvv0 = y12;\ngl_Position = ( x12 ) * ( vec4 ( 1.0,1.0,1.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);}\nuniform float Time ;\nsmooth in vec2 vv0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( ( ( ( ( ( vv0 ).x ) - ( 0.85 ) ) * ( ( ( vv0 ).x ) - ( 0.85 ) ) ) + ( ( ( ( vv0 ).y ) - ( 0.85 ) ) * ( ( ( vv0 ).y ) - ( 0.85 ) ) ) ) + ( ( 5.0e-4 ) * ( sin ( ( ( 3.0 ) * ( atan ( ( ( vv0 ).x ) - ( 0.85 ),( ( vv0 ).y ) - ( 0.85 ) ) ) ) + ( ( 15.0 ) * ( Time ) ) ) ) ) ) < ( ( 5.0e-3 ) * ( abs ( ( sin ( ( Time ) * ( 4.0 ) ) ) - ( 0.37 ) ) ) ) ? vec4 ( 0.0,0.0,0.5,1.0 ) : ( ( ( ( ( ( vv0 ).x ) - ( 0.85 ) ) * ( ( ( vv0 ).x ) - ( 0.85 ) ) ) + ( ( ( ( vv0 ).y ) - ( 0.85 ) ) * ( ( ( vv0 ).y ) - ( 0.85 ) ) ) ) + ( ( 2.0e-3 ) * ( sin ( ( ( 5.0 ) * ( atan ( ( ( vv0 ).x ) - ( 0.85 ),( ( vv0 ).y ) - ( 0.85 ) ) ) ) - ( ( 5.0 ) * ( Time ) ) ) ) ) ) < ( ( 2.0e-2 ) * ( abs ( ( sin ( ( Time ) * ( 4.0 ) ) ) - ( 0.37 ) ) ) ) ? vec4 ( 0.0,0.0,1.0,1.0 ) : ( ( ( ( ( ( vv0 ).x ) - ( 0.85 ) ) * ( ( ( vv0 ).x ) - ( 0.85 ) ) ) + ( ( ( ( vv0 ).y ) - ( 0.85 ) ) * ( ( ( vv0 ).y ) - ( 0.85 ) ) ) ) + ( ( 2.0e-3 ) * ( sin ( ( ( 7.0 ) * ( atan ( ( ( vv0 ).x ) - ( 0.85 ),( ( vv0 ).y ) - ( 0.85 ) ) ) ) + ( ( 3.0 ) * ( Time ) ) ) ) ) ) < ( ( 5.0e-2 ) * ( abs ( ( sin ( ( Time ) * ( 4.0 ) ) ) - ( 0.37 ) ) ) ) ? vec4 ( 1.0,1.0,1.0,1.0 ) : vec4 ( 1.0,1.0,0.0,1.0 );\n}\n"},Program {programUniforms = fromList [("MVP",M44F)], programStreams = fromList [("e15",Parameter {name = "position4", ty = V4F}),("f15",Parameter {name = "vertexUV", ty = V2F})], programInTextures = fromList [("v0",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 e15 ;\nin vec2 f15 ;\nsmooth out vec2 vv0 ;\nvoid main() {\nvv0 = f15;\ngl_Position = ( ( MVP ) * ( e15 ) ) * ( 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 v0 ;\nsmooth in vec2 vv0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = texture2D ( v0,vv0 );\n}\n"}], slots = [Slot {slotName = "stream4", slotStreams = fromList [("position4",V4F),("vertexUV",V2F)], slotUniforms = fromList [("MVP",M44F),("Time",Float)], slotPrimitive = Triangles, slotPrograms = [0,1]}], streams = [], commands = [SetRenderTarget 1,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))]}),RenderSlot 0,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 1,SetTexture 0 1,SetSamplerUniform "v0" 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/helloWorld.out b/testdata/helloWorld.out
index 68143292..bb61033c 100644
--- a/testdata/helloWorld.out
+++ b/testdata/helloWorld.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 [("t1",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 t1 ;\nsmooth out vec4 vv0 ;\nvoid main() {\nvv0 = t1;\ngl_Position = ( ( MVP ) * ( t1 ) ) * ( 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 vv0 ;\nout vec4 f0 ;\nvoid main() {\nif (!(true)) discard;\nf0 = vv0;\n}\n"}], slots = [Slot {slotName = "stream4", slotStreams = fromList [("position4",V4F)], 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.0 0.0 0.5 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))]}),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 [("z1",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 z1 ;\nsmooth out vec4 vv0 ;\nvoid main() {\nvv0 = z1;\ngl_Position = ( ( MVP ) * ( z1 ) ) * ( 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 vv0 ;\nout vec4 f0 ;\nvoid main() {\nif (!(true)) discard;\nf0 = vv0;\n}\n"}], slots = [Slot {slotName = "stream4", slotStreams = fromList [("position4",V4F)], 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.0 0.0 0.5 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))]}),RenderSlot 0]} \ No newline at end of file
diff --git a/testdata/line01.out b/testdata/line01.out
index e76b056c..1af2bce4 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 [("m1",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 m1 ;\nsmooth out vec4 vv0 ;\nvoid main() {\nvv0 = vec4 ( ( m1 ).x,( m1 ).y,( m1 ).z,1.0 );\ngl_Position = ( ( MVP ) * ( vec4 ( ( m1 ).x,( m1 ).y,( m1 ).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 vv0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = vv0;\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 [("s1",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 s1 ;\nsmooth out vec4 vv0 ;\nvoid main() {\nvv0 = vec4 ( ( s1 ).x,( s1 ).y,( s1 ).z,1.0 );\ngl_Position = ( ( MVP ) * ( vec4 ( ( s1 ).x,( s1 ).y,( s1 ).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 vv0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = vv0;\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 b6063039..248bf5fb 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 vv0 ;\nvoid main() {\nvv0 = 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 vv0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = vv0;\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 [("e2",Parameter {name = "attribute_0", ty = V3F}),("f2",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 e2 ;\nin vec4 f2 ;\nsmooth out vec4 vv0 ;\nvoid main() {\nvv0 = f2;\ngl_Position = ( ( MVP ) * ( vec4 ( ( e2 ).x,( e2 ).y,( e2 ).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 vv0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = vv0;\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 6ca9d73c..bf3ce58f 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 [("j21",Parameter {name = "position4", ty = V4F}),("k21",Parameter {name = "vertexUV", ty = V2F})], programInTextures = fromList [("q19",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 j21 ;\nin vec2 k21 ;\nsmooth out vec2 vv0 ;\nvoid main() {\nvv0 = k21;\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 ) ) ) * ( j21 ) ) * ( 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 q19 ;\nsmooth in vec2 vv0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( ( ( ( ( ( vv0 ).xyxx ) * ( 0.7 ) ) + ( texture2D ( q19,vv0 ) ) ) * ( 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 [("k24",Parameter {name = "position4", ty = V4F}),("l24",Parameter {name = "vertexUV", ty = V2F})], programInTextures = fromList [("i18",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 k24 ;\nin vec2 l24 ;\nsmooth out vec2 vv0 ;\nvoid main() {\nvv0 = l24;\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 ) ) ) * ( k24 ) ) * ( 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 i18 ;\nsmooth in vec2 vv0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( ( ( ( ( ( vv0 ).xyxx ) * ( 0.7 ) ) + ( texture2D ( i18,vv0 ) ) ) * ( 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 [("l27",Parameter {name = "position4", ty = V4F}),("m27",Parameter {name = "vertexUV", ty = V2F})], programInTextures = fromList [("a17",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 l27 ;\nin vec2 m27 ;\nsmooth out vec2 vv0 ;\nvoid main() {\nvv0 = m27;\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 ) ) ) * ( l27 ) ) * ( 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 a17 ;\nsmooth in vec2 vv0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( ( ( ( ( ( vv0 ).xyxx ) * ( 0.7 ) ) + ( texture2D ( a17,vv0 ) ) ) * ( 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 [("m30",Parameter {name = "position4", ty = V4F}),("n30",Parameter {name = "vertexUV", ty = V2F})], programInTextures = fromList [("s15",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 m30 ;\nin vec2 n30 ;\nsmooth out vec2 vv0 ;\nvoid main() {\nvv0 = n30;\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 ) ) ) * ( m30 ) ) * ( 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 s15 ;\nsmooth in vec2 vv0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( ( ( ( ( ( vv0 ).xyxx ) * ( 0.7 ) ) + ( texture2D ( s15,vv0 ) ) ) * ( 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 [("n33",Parameter {name = "position4", ty = V4F}),("o33",Parameter {name = "vertexUV", ty = V2F})], programInTextures = fromList [("k14",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 n33 ;\nin vec2 o33 ;\nsmooth out vec2 vv0 ;\nvoid main() {\nvv0 = o33;\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 ) ) ) * ( n33 ) ) * ( 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 k14 ;\nsmooth in vec2 vv0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( ( ( ( ( ( vv0 ).xyxx ) * ( 0.7 ) ) + ( texture2D ( k14,vv0 ) ) ) * ( 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 [("o36",Parameter {name = "position4", ty = V4F}),("p36",Parameter {name = "vertexUV", ty = V2F})], programInTextures = fromList [("c13",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 o36 ;\nin vec2 p36 ;\nsmooth out vec2 vv0 ;\nvoid main() {\nvv0 = p36;\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 ) ) ) * ( o36 ) ) * ( 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 c13 ;\nsmooth in vec2 vv0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( ( ( ( ( ( vv0 ).xyxx ) * ( 0.7 ) ) + ( texture2D ( c13,vv0 ) ) ) * ( 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 [("p39",Parameter {name = "position4", ty = V4F}),("q39",Parameter {name = "vertexUV", ty = V2F})], programInTextures = fromList [("u11",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 p39 ;\nin vec2 q39 ;\nsmooth out vec2 vv0 ;\nvoid main() {\nvv0 = q39;\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 ) ) ) * ( p39 ) ) * ( 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 u11 ;\nsmooth in vec2 vv0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( ( ( ( ( ( vv0 ).xyxx ) * ( 0.7 ) ) + ( texture2D ( u11,vv0 ) ) ) * ( 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 [("q42",Parameter {name = "position4", ty = V4F}),("r42",Parameter {name = "vertexUV", ty = V2F})], programInTextures = fromList [("m10",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 q42 ;\nin vec2 r42 ;\nsmooth out vec2 vv0 ;\nvoid main() {\nvv0 = r42;\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 ) ) ) * ( q42 ) ) * ( 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 m10 ;\nsmooth in vec2 vv0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( ( ( ( ( ( vv0 ).xyxx ) * ( 0.7 ) ) + ( texture2D ( m10,vv0 ) ) ) * ( 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 [("r45",Parameter {name = "position4", ty = V4F}),("s45",Parameter {name = "vertexUV", ty = V2F})], programInTextures = fromList [("e9",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 r45 ;\nin vec2 s45 ;\nsmooth out vec2 vv0 ;\nvoid main() {\nvv0 = s45;\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 ) ) ) * ( r45 ) ) * ( 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 e9 ;\nsmooth in vec2 vv0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( ( ( ( ( ( vv0 ).xyxx ) * ( 0.7 ) ) + ( texture2D ( e9,vv0 ) ) ) * ( 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 [("s48",Parameter {name = "position4", ty = V4F}),("t48",Parameter {name = "vertexUV", ty = V2F})], programInTextures = fromList [("w7",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 s48 ;\nin vec2 t48 ;\nsmooth out vec2 vv0 ;\nvoid main() {\nvv0 = t48;\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 ) ) ) * ( s48 ) ) * ( 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 w7 ;\nsmooth in vec2 vv0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( ( ( ( ( ( vv0 ).xyxx ) * ( 0.7 ) ) + ( texture2D ( w7,vv0 ) ) ) * ( 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 [("t51",Parameter {name = "position4", ty = V4F}),("u51",Parameter {name = "vertexUV", ty = V2F})], programInTextures = fromList [("o6",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 t51 ;\nin vec2 u51 ;\nsmooth out vec2 vv0 ;\nvoid main() {\nvv0 = u51;\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 ) ) ) * ( t51 ) ) * ( 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 o6 ;\nsmooth in vec2 vv0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( ( ( ( ( ( vv0 ).xyxx ) * ( 0.7 ) ) + ( texture2D ( o6,vv0 ) ) ) * ( 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 [("u54",Parameter {name = "position4", ty = V4F}),("v54",Parameter {name = "vertexUV", ty = V2F})], programInTextures = fromList [("g5",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 u54 ;\nin vec2 v54 ;\nsmooth out vec2 vv0 ;\nvoid main() {\nvv0 = v54;\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 ) ) ) * ( u54 ) ) * ( 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 g5 ;\nsmooth in vec2 vv0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( ( ( ( ( ( vv0 ).xyxx ) * ( 0.7 ) ) + ( texture2D ( g5,vv0 ) ) ) * ( 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 [("v57",Parameter {name = "position4", ty = V4F}),("w57",Parameter {name = "vertexUV", ty = V2F})], programInTextures = fromList [("y3",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 v57 ;\nin vec2 w57 ;\nsmooth out vec2 vv0 ;\nvoid main() {\nvv0 = w57;\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 ) ) ) * ( v57 ) ) * ( 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 y3 ;\nsmooth in vec2 vv0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( ( ( ( ( ( vv0 ).xyxx ) * ( 0.7 ) ) + ( texture2D ( y3,vv0 ) ) ) * ( 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 [("w60",Parameter {name = "position4", ty = V4F}),("x60",Parameter {name = "vertexUV", ty = V2F})], programInTextures = fromList [("q2",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 w60 ;\nin vec2 x60 ;\nsmooth out vec2 vv0 ;\nvoid main() {\nvv0 = x60;\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 ) ) ) * ( w60 ) ) * ( 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 q2 ;\nsmooth in vec2 vv0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( ( ( ( ( ( vv0 ).xyxx ) * ( 0.7 ) ) + ( texture2D ( q2,vv0 ) ) ) * ( 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 [("x63",Parameter {name = "position4", ty = V4F}),("y63",Parameter {name = "vertexUV", ty = V2F})], programInTextures = fromList [("i1",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 x63 ;\nin vec2 y63 ;\nsmooth out vec2 vv0 ;\nvoid main() {\nvv0 = y63;\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 ) ) ) * ( x63 ) ) * ( 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 i1 ;\nsmooth in vec2 vv0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( ( ( ( ( ( vv0 ).xyxx ) * ( 0.7 ) ) + ( texture2D ( i1,vv0 ) ) ) * ( 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 "q19" 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 "i18" 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 "a17" 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 "s15" 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 "k14" 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 "c13" 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 "u11" 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 "m10" 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 "e9" 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 "w7" 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 "o6" 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 "g5" 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 "y3" 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 "q2" 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 "i1" 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 [("p21",Parameter {name = "position4", ty = V4F}),("q21",Parameter {name = "vertexUV", ty = V2F})], programInTextures = fromList [("q19",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 p21 ;\nin vec2 q21 ;\nsmooth out vec2 vv0 ;\nvoid main() {\nvv0 = q21;\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 ) ) ) * ( p21 ) ) * ( 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 q19 ;\nsmooth in vec2 vv0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( ( ( ( ( ( vv0 ).xyxx ) * ( 0.7 ) ) + ( texture2D ( q19,vv0 ) ) ) * ( 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 [("w24",Parameter {name = "position4", ty = V4F}),("x24",Parameter {name = "vertexUV", ty = V2F})], programInTextures = fromList [("i18",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 w24 ;\nin vec2 x24 ;\nsmooth out vec2 vv0 ;\nvoid main() {\nvv0 = x24;\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 ) ) ) * ( w24 ) ) * ( 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 i18 ;\nsmooth in vec2 vv0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( ( ( ( ( ( vv0 ).xyxx ) * ( 0.7 ) ) + ( texture2D ( i18,vv0 ) ) ) * ( 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 [("d28",Parameter {name = "position4", ty = V4F}),("e28",Parameter {name = "vertexUV", ty = V2F})], programInTextures = fromList [("a17",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 d28 ;\nin vec2 e28 ;\nsmooth out vec2 vv0 ;\nvoid main() {\nvv0 = e28;\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 ) ) ) * ( d28 ) ) * ( 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 a17 ;\nsmooth in vec2 vv0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( ( ( ( ( ( vv0 ).xyxx ) * ( 0.7 ) ) + ( texture2D ( a17,vv0 ) ) ) * ( 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 [("k31",Parameter {name = "position4", ty = V4F}),("l31",Parameter {name = "vertexUV", ty = V2F})], programInTextures = fromList [("s15",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 k31 ;\nin vec2 l31 ;\nsmooth out vec2 vv0 ;\nvoid main() {\nvv0 = l31;\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 ) ) ) * ( k31 ) ) * ( 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 s15 ;\nsmooth in vec2 vv0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( ( ( ( ( ( vv0 ).xyxx ) * ( 0.7 ) ) + ( texture2D ( s15,vv0 ) ) ) * ( 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 [("r34",Parameter {name = "position4", ty = V4F}),("s34",Parameter {name = "vertexUV", ty = V2F})], programInTextures = fromList [("k14",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 r34 ;\nin vec2 s34 ;\nsmooth out vec2 vv0 ;\nvoid main() {\nvv0 = s34;\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 ) ) ) * ( r34 ) ) * ( 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 k14 ;\nsmooth in vec2 vv0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( ( ( ( ( ( vv0 ).xyxx ) * ( 0.7 ) ) + ( texture2D ( k14,vv0 ) ) ) * ( 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 [("y37",Parameter {name = "position4", ty = V4F}),("z37",Parameter {name = "vertexUV", ty = V2F})], programInTextures = fromList [("c13",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 y37 ;\nin vec2 z37 ;\nsmooth out vec2 vv0 ;\nvoid main() {\nvv0 = z37;\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 ) ) ) * ( y37 ) ) * ( 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 c13 ;\nsmooth in vec2 vv0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( ( ( ( ( ( vv0 ).xyxx ) * ( 0.7 ) ) + ( texture2D ( c13,vv0 ) ) ) * ( 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 [("f41",Parameter {name = "position4", ty = V4F}),("g41",Parameter {name = "vertexUV", ty = V2F})], programInTextures = fromList [("u11",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 f41 ;\nin vec2 g41 ;\nsmooth out vec2 vv0 ;\nvoid main() {\nvv0 = g41;\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 ) ) ) * ( f41 ) ) * ( 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 u11 ;\nsmooth in vec2 vv0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( ( ( ( ( ( vv0 ).xyxx ) * ( 0.7 ) ) + ( texture2D ( u11,vv0 ) ) ) * ( 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 [("m44",Parameter {name = "position4", ty = V4F}),("n44",Parameter {name = "vertexUV", ty = V2F})], programInTextures = fromList [("m10",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 m44 ;\nin vec2 n44 ;\nsmooth out vec2 vv0 ;\nvoid main() {\nvv0 = n44;\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 ) ) ) * ( m44 ) ) * ( 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 m10 ;\nsmooth in vec2 vv0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( ( ( ( ( ( vv0 ).xyxx ) * ( 0.7 ) ) + ( texture2D ( m10,vv0 ) ) ) * ( 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 [("t47",Parameter {name = "position4", ty = V4F}),("u47",Parameter {name = "vertexUV", ty = V2F})], programInTextures = fromList [("e9",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 t47 ;\nin vec2 u47 ;\nsmooth out vec2 vv0 ;\nvoid main() {\nvv0 = u47;\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 ) ) ) * ( t47 ) ) * ( 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 e9 ;\nsmooth in vec2 vv0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( ( ( ( ( ( vv0 ).xyxx ) * ( 0.7 ) ) + ( texture2D ( e9,vv0 ) ) ) * ( 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 [("a51",Parameter {name = "position4", ty = V4F}),("b51",Parameter {name = "vertexUV", ty = V2F})], programInTextures = fromList [("w7",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 a51 ;\nin vec2 b51 ;\nsmooth out vec2 vv0 ;\nvoid main() {\nvv0 = b51;\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 ) ) ) * ( a51 ) ) * ( 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 w7 ;\nsmooth in vec2 vv0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( ( ( ( ( ( vv0 ).xyxx ) * ( 0.7 ) ) + ( texture2D ( w7,vv0 ) ) ) * ( 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 [("h54",Parameter {name = "position4", ty = V4F}),("i54",Parameter {name = "vertexUV", ty = V2F})], programInTextures = fromList [("o6",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 h54 ;\nin vec2 i54 ;\nsmooth out vec2 vv0 ;\nvoid main() {\nvv0 = i54;\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 ) ) ) * ( h54 ) ) * ( 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 o6 ;\nsmooth in vec2 vv0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( ( ( ( ( ( vv0 ).xyxx ) * ( 0.7 ) ) + ( texture2D ( o6,vv0 ) ) ) * ( 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 [("o57",Parameter {name = "position4", ty = V4F}),("p57",Parameter {name = "vertexUV", ty = V2F})], programInTextures = fromList [("g5",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 o57 ;\nin vec2 p57 ;\nsmooth out vec2 vv0 ;\nvoid main() {\nvv0 = p57;\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 ) ) ) * ( o57 ) ) * ( 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 g5 ;\nsmooth in vec2 vv0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( ( ( ( ( ( vv0 ).xyxx ) * ( 0.7 ) ) + ( texture2D ( g5,vv0 ) ) ) * ( 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 [("v60",Parameter {name = "position4", ty = V4F}),("w60",Parameter {name = "vertexUV", ty = V2F})], programInTextures = fromList [("y3",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 v60 ;\nin vec2 w60 ;\nsmooth out vec2 vv0 ;\nvoid main() {\nvv0 = w60;\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 ) ) ) * ( v60 ) ) * ( 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 y3 ;\nsmooth in vec2 vv0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( ( ( ( ( ( vv0 ).xyxx ) * ( 0.7 ) ) + ( texture2D ( y3,vv0 ) ) ) * ( 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 [("c64",Parameter {name = "position4", ty = V4F}),("d64",Parameter {name = "vertexUV", ty = V2F})], programInTextures = fromList [("q2",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 c64 ;\nin vec2 d64 ;\nsmooth out vec2 vv0 ;\nvoid main() {\nvv0 = d64;\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 ) ) ) * ( c64 ) ) * ( 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 q2 ;\nsmooth in vec2 vv0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( ( ( ( ( ( vv0 ).xyxx ) * ( 0.7 ) ) + ( texture2D ( q2,vv0 ) ) ) * ( 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 [("j67",Parameter {name = "position4", ty = V4F}),("k67",Parameter {name = "vertexUV", ty = V2F})], programInTextures = fromList [("i1",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 j67 ;\nin vec2 k67 ;\nsmooth out vec2 vv0 ;\nvoid main() {\nvv0 = k67;\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 ) ) ) * ( j67 ) ) * ( 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 i1 ;\nsmooth in vec2 vv0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( ( ( ( ( ( vv0 ).xyxx ) * ( 0.7 ) ) + ( texture2D ( i1,vv0 ) ) ) * ( 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 "q19" 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 "i18" 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 "a17" 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 "s15" 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 "k14" 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 "c13" 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 "u11" 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 "m10" 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 "e9" 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 "w7" 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 "o6" 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 "g5" 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 "y3" 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 "q2" 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 "i1" 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/recursivetexture02.out b/testdata/recursivetexture02.out
index eab42dc3..224c6642 100644
--- a/testdata/recursivetexture02.out
+++ b/testdata/recursivetexture02.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},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},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},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},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)}]},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)}]}], programs = [Program {programUniforms = fromList [("MVP",M44F)], programStreams = fromList [("h6",Parameter {name = "position4", ty = V4F}),("i6",Parameter {name = "vertexUV", ty = V2F})], 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 h6 ;\nin vec2 i6 ;\nsmooth out vec2 vv0 ;\nvoid main() {\nvv0 = i6;\ngl_Position = ( ( MVP ) * ( h6 ) ) * ( 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 vec2 vv0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vv0 ).xyxy;\n}\n"},Program {programUniforms = fromList [("MVP",M44F)], programStreams = fromList [("n8",Parameter {name = "position4", ty = V4F}),("o8",Parameter {name = "vertexUV", ty = V2F})], programInTextures = fromList [("g4",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 n8 ;\nin vec2 o8 ;\nsmooth out vec2 vv0 ;\nvoid main() {\nvv0 = o8;\ngl_Position = ( ( MVP ) * ( n8 ) ) * ( vec4 ( 1.0,1.0,1.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);}\nuniform sampler2D g4 ;\nsmooth in vec2 vv0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( texture2D ( g4,vv0 ) ) * ( vec4 ( 0.7,0.7,0.7,1.0 ) );\n}\n"},Program {programUniforms = fromList [("MVP",M44F)], programStreams = fromList [("t10",Parameter {name = "position4", ty = V4F}),("u10",Parameter {name = "vertexUV", ty = V2F})], programInTextures = fromList [("k3",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 t10 ;\nin vec2 u10 ;\nsmooth out vec2 vv0 ;\nvoid main() {\nvv0 = u10;\ngl_Position = ( ( MVP ) * ( t10 ) ) * ( vec4 ( 1.0,1.0,1.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);}\nuniform sampler2D k3 ;\nsmooth in vec2 vv0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( texture2D ( k3,vv0 ) ) * ( vec4 ( 0.7,0.7,0.7,1.0 ) );\n}\n"},Program {programUniforms = fromList [("MVP",M44F)], programStreams = fromList [("a13",Parameter {name = "vertexUV", ty = V2F}),("z12",Parameter {name = "position4", ty = V4F})], programInTextures = fromList [("o2",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 z12 ;\nin vec2 a13 ;\nsmooth out vec2 vv0 ;\nvoid main() {\nvv0 = a13;\ngl_Position = ( ( MVP ) * ( z12 ) ) * ( vec4 ( 1.0,1.0,1.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);}\nuniform sampler2D o2 ;\nsmooth in vec2 vv0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( texture2D ( o2,vv0 ) ) * ( vec4 ( 0.7,0.7,0.7,1.0 ) );\n}\n"},Program {programUniforms = fromList [("MVP",M44F)], programStreams = fromList [("f15",Parameter {name = "position4", ty = V4F}),("g15",Parameter {name = "vertexUV", ty = V2F})], programInTextures = fromList [("s1",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 f15 ;\nin vec2 g15 ;\nsmooth out vec2 vv0 ;\nvoid main() {\nvv0 = g15;\ngl_Position = ( ( MVP ) * ( f15 ) ) * ( vec4 ( 1.0,1.0,1.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);}\nuniform sampler2D s1 ;\nsmooth in vec2 vv0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( texture2D ( s1,vv0 ) ) * ( vec4 ( 0.7,0.7,0.7,1.0 ) );\n}\n"},Program {programUniforms = fromList [("MVP",M44F)], programStreams = fromList [("l17",Parameter {name = "position4", ty = V4F}),("m17",Parameter {name = "vertexUV", ty = V2F})], programInTextures = fromList [("w0",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 l17 ;\nin vec2 m17 ;\nsmooth out vec2 vv0 ;\nvoid main() {\nvv0 = m17;\ngl_Position = ( ( MVP ) * ( l17 ) ) * ( vec4 ( 1.0,1.0,1.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);}\nuniform sampler2D w0 ;\nsmooth in vec2 vv0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( texture2D ( w0,vv0 ) ) * ( vec4 ( 0.7,0.7,0.7,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]}], streams = [], commands = [SetRenderTarget 5,ClearRenderTarget [ClearImage {imageSemantic = Depth, clearValue = VFloat 1000.0},ClearImage {imageSemantic = Color, clearValue = VV4F (V4 0.5 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))]}),RenderSlot 0,SetRenderTarget 4,ClearRenderTarget [ClearImage {imageSemantic = Depth, clearValue = VFloat 1000.0},ClearImage {imageSemantic = Color, clearValue = VV4F (V4 0.5 0.0 0.0 1.0)}],SetProgram 1,SetTexture 0 9,SetSamplerUniform "g4" 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.5 0.0 0.0 1.0)}],SetProgram 2,SetTexture 0 7,SetSamplerUniform "k3" 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.5 0.0 0.0 1.0)}],SetProgram 3,SetTexture 0 5,SetSamplerUniform "o2" 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.5 0.0 0.0 1.0)}],SetProgram 4,SetTexture 0 3,SetSamplerUniform "s1" 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.5 0.0 0.0 1.0)}],SetProgram 5,SetTexture 0 1,SetSamplerUniform "w0" 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 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},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},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},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},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)}]},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)}]}], programs = [Program {programUniforms = fromList [("MVP",M44F)], programStreams = fromList [("n6",Parameter {name = "position4", ty = V4F}),("o6",Parameter {name = "vertexUV", ty = V2F})], 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 n6 ;\nin vec2 o6 ;\nsmooth out vec2 vv0 ;\nvoid main() {\nvv0 = o6;\ngl_Position = ( ( MVP ) * ( n6 ) ) * ( 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 vec2 vv0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vv0 ).xyxy;\n}\n"},Program {programUniforms = fromList [("MVP",M44F)], programStreams = fromList [("a9",Parameter {name = "vertexUV", ty = V2F}),("z8",Parameter {name = "position4", ty = V4F})], programInTextures = fromList [("g4",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 z8 ;\nin vec2 a9 ;\nsmooth out vec2 vv0 ;\nvoid main() {\nvv0 = a9;\ngl_Position = ( ( MVP ) * ( z8 ) ) * ( vec4 ( 1.0,1.0,1.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);}\nuniform sampler2D g4 ;\nsmooth in vec2 vv0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( texture2D ( g4,vv0 ) ) * ( vec4 ( 0.7,0.7,0.7,1.0 ) );\n}\n"},Program {programUniforms = fromList [("MVP",M44F)], programStreams = fromList [("l11",Parameter {name = "position4", ty = V4F}),("m11",Parameter {name = "vertexUV", ty = V2F})], programInTextures = fromList [("k3",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 l11 ;\nin vec2 m11 ;\nsmooth out vec2 vv0 ;\nvoid main() {\nvv0 = m11;\ngl_Position = ( ( MVP ) * ( l11 ) ) * ( vec4 ( 1.0,1.0,1.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);}\nuniform sampler2D k3 ;\nsmooth in vec2 vv0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( texture2D ( k3,vv0 ) ) * ( vec4 ( 0.7,0.7,0.7,1.0 ) );\n}\n"},Program {programUniforms = fromList [("MVP",M44F)], programStreams = fromList [("x13",Parameter {name = "position4", ty = V4F}),("y13",Parameter {name = "vertexUV", ty = V2F})], programInTextures = fromList [("o2",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 x13 ;\nin vec2 y13 ;\nsmooth out vec2 vv0 ;\nvoid main() {\nvv0 = y13;\ngl_Position = ( ( MVP ) * ( x13 ) ) * ( vec4 ( 1.0,1.0,1.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);}\nuniform sampler2D o2 ;\nsmooth in vec2 vv0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( texture2D ( o2,vv0 ) ) * ( vec4 ( 0.7,0.7,0.7,1.0 ) );\n}\n"},Program {programUniforms = fromList [("MVP",M44F)], programStreams = fromList [("j16",Parameter {name = "position4", ty = V4F}),("k16",Parameter {name = "vertexUV", ty = V2F})], programInTextures = fromList [("s1",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 j16 ;\nin vec2 k16 ;\nsmooth out vec2 vv0 ;\nvoid main() {\nvv0 = k16;\ngl_Position = ( ( MVP ) * ( j16 ) ) * ( vec4 ( 1.0,1.0,1.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);}\nuniform sampler2D s1 ;\nsmooth in vec2 vv0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( texture2D ( s1,vv0 ) ) * ( vec4 ( 0.7,0.7,0.7,1.0 ) );\n}\n"},Program {programUniforms = fromList [("MVP",M44F)], programStreams = fromList [("v18",Parameter {name = "position4", ty = V4F}),("w18",Parameter {name = "vertexUV", ty = V2F})], programInTextures = fromList [("w0",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 v18 ;\nin vec2 w18 ;\nsmooth out vec2 vv0 ;\nvoid main() {\nvv0 = w18;\ngl_Position = ( ( MVP ) * ( v18 ) ) * ( vec4 ( 1.0,1.0,1.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);}\nuniform sampler2D w0 ;\nsmooth in vec2 vv0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( texture2D ( w0,vv0 ) ) * ( vec4 ( 0.7,0.7,0.7,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]}], streams = [], commands = [SetRenderTarget 5,ClearRenderTarget [ClearImage {imageSemantic = Depth, clearValue = VFloat 1000.0},ClearImage {imageSemantic = Color, clearValue = VV4F (V4 0.5 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))]}),RenderSlot 0,SetRenderTarget 4,ClearRenderTarget [ClearImage {imageSemantic = Depth, clearValue = VFloat 1000.0},ClearImage {imageSemantic = Color, clearValue = VV4F (V4 0.5 0.0 0.0 1.0)}],SetProgram 1,SetTexture 0 9,SetSamplerUniform "g4" 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.5 0.0 0.0 1.0)}],SetProgram 2,SetTexture 0 7,SetSamplerUniform "k3" 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.5 0.0 0.0 1.0)}],SetProgram 3,SetTexture 0 5,SetSamplerUniform "o2" 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.5 0.0 0.0 1.0)}],SetProgram 4,SetTexture 0 3,SetSamplerUniform "s1" 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.5 0.0 0.0 1.0)}],SetProgram 5,SetTexture 0 1,SetSamplerUniform "w0" 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/reduce01.out b/testdata/reduce01.out
index c4ceecf1..c45ae7c4 100644
--- a/testdata/reduce01.out
+++ b/testdata/reduce01.out
@@ -1 +1 @@
Pipeline {backend = OpenGL33, textures = [], samplers = [], targets = [RenderTarget {renderTargets = [TargetItem {targetSemantic = Color, targetRef = Just (Framebuffer Color)}]}], programs = [Program {programUniforms = fromList [], programStreams = fromList [("l1",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);}\nin vec4 l1 ;\nsmooth out vec4 vv0 ;\nvoid main() {\nvv0 = l1;\ngl_Position = l1;\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 vv0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = vv0;\n}\n"}], slots = [Slot {slotName = "stream4", slotStreams = fromList [("position4",V4F)], slotUniforms = fromList [], slotPrimitive = Triangles, slotPrograms = [0]}], streams = [], commands = [SetRenderTarget 0,ClearRenderTarget [ClearImage {imageSemantic = Color, clearValue = VV4F (V4 0.0 0.0 0.4 1.0)}],SetProgram 0,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [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 = Color, targetRef = Just (Framebuffer Color)}]}], programs = [Program {programUniforms = fromList [], programStreams = fromList [("r1",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);}\nin vec4 r1 ;\nsmooth out vec4 vv0 ;\nvoid main() {\nvv0 = r1;\ngl_Position = r1;\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 vv0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = vv0;\n}\n"}], slots = [Slot {slotName = "stream4", slotStreams = fromList [("position4",V4F)], slotUniforms = fromList [], slotPrimitive = Triangles, slotPrograms = [0]}], streams = [], commands = [SetRenderTarget 0,ClearRenderTarget [ClearImage {imageSemantic = Color, clearValue = VV4F (V4 0.0 0.0 0.4 1.0)}],SetProgram 0,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 0]} \ No newline at end of file
diff --git a/testdata/reduce05.out b/testdata/reduce05.out
index e771a118..e46d60fa 100644
--- a/testdata/reduce05.out
+++ b/testdata/reduce05.out
@@ -1 +1 @@
Pipeline {backend = OpenGL33, textures = [], samplers = [], targets = [RenderTarget {renderTargets = [TargetItem {targetSemantic = Color, targetRef = Just (Framebuffer Color)}]}], programs = [Program {programUniforms = fromList [], programStreams = fromList [("m1",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);}\nin vec4 m1 ;\nsmooth out vec4 vv0 ;\nvoid main() {\nvv0 = m1;\ngl_Position = m1;\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 vv0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = vec4 ( 1.0,0.0,0.0,1.0 );\n}\n"},Program {programUniforms = fromList [], programStreams = fromList [("c3",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);}\nin vec4 c3 ;\nsmooth out vec4 vv0 ;\nvoid main() {\nvv0 = c3;\ngl_Position = c3;\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 vv0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = vec4 ( 0.0,1.0,0.0,1.0 );\n}\n"}], slots = [Slot {slotName = "stream4", slotStreams = fromList [("position4",V4F)], slotUniforms = fromList [], slotPrimitive = Triangles, slotPrograms = [0,1]}], streams = [], commands = [SetRenderTarget 0,ClearRenderTarget [ClearImage {imageSemantic = Color, clearValue = VV4F (V4 0.0 0.0 1.0 1.0)}],SetProgram 1,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [ColorOp NoBlending (VV4B (V4 False True False False))]}),RenderSlot 0,SetProgram 0,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [ColorOp NoBlending (VV4B (V4 True False False False))]}),RenderSlot 0]} \ No newline at end of file Pipeline {backend = OpenGL33, textures = [], samplers = [], targets = [RenderTarget {renderTargets = [TargetItem {targetSemantic = Color, targetRef = Just (Framebuffer Color)}]}], programs = [Program {programUniforms = fromList [], programStreams = fromList [("s1",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);}\nin vec4 s1 ;\nsmooth out vec4 vv0 ;\nvoid main() {\nvv0 = s1;\ngl_Position = s1;\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 vv0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = vec4 ( 1.0,0.0,0.0,1.0 );\n}\n"},Program {programUniforms = fromList [], programStreams = fromList [("o3",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);}\nin vec4 o3 ;\nsmooth out vec4 vv0 ;\nvoid main() {\nvv0 = o3;\ngl_Position = o3;\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 vv0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = vec4 ( 0.0,1.0,0.0,1.0 );\n}\n"}], slots = [Slot {slotName = "stream4", slotStreams = fromList [("position4",V4F)], slotUniforms = fromList [], slotPrimitive = Triangles, slotPrograms = [0,1]}], streams = [], commands = [SetRenderTarget 0,ClearRenderTarget [ClearImage {imageSemantic = Color, clearValue = VV4F (V4 0.0 0.0 1.0 1.0)}],SetProgram 1,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [ColorOp NoBlending (VV4B (V4 False True False False))]}),RenderSlot 0,SetProgram 0,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [ColorOp NoBlending (VV4B (V4 True False False False))]}),RenderSlot 0]} \ No newline at end of file
diff --git a/testdata/simple02.out b/testdata/simple02.out
index e980dc3c..726d3e49 100644
--- a/testdata/simple02.out
+++ b/testdata/simple02.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 [("x1",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 x1 ;\nsmooth out vec4 vv0 ;\nvoid main() {\nvv0 = x1;\ngl_Position = ( MVP ) * ( x1 );\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 vv0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vv0 ) * ( vec4 ( 1.0,0.4,0.0,0.2 ) );\n}\n"}], slots = [Slot {slotName = "stream4", slotStreams = fromList [("position4",V4F)], 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 FirstVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less True,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 [("d2",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 d2 ;\nsmooth out vec4 vv0 ;\nvoid main() {\nvv0 = d2;\ngl_Position = ( MVP ) * ( d2 );\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 vv0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vv0 ) * ( vec4 ( 1.0,0.4,0.0,0.2 ) );\n}\n"}], slots = [Slot {slotName = "stream4", slotStreams = fromList [("position4",V4F)], 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 FirstVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less True,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/simple03.out b/testdata/simple03.out
index 1866b9b8..23e7f5d4 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 [("y1",Parameter {name = "position", ty = V3F}),("z1",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 y1 ;\nin vec3 z1 ;\nsmooth out vec4 vv0 ;\nvoid main() {\nvv0 = vec4 ( ( z1 ).x,( z1 ).y,( z1 ).z,1.0 );\ngl_Position = ( viewProj ) * ( vec4 ( ( y1 ).x,( y1 ).y,( y1 ).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 vv0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = vec4 ( 1.0,1.0,1.0,1.0 );\n}\n"},Program {programUniforms = fromList [("viewProj",M44F)], programStreams = fromList [("v4",Parameter {name = "position", ty = V3F}),("w4",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 v4 ;\nin vec3 w4 ;\nsmooth out vec4 vv0 ;\nvoid main() {\nvv0 = vec4 ( ( w4 ).x,( w4 ).y,( w4 ).z,1.0 );\ngl_Position = ( viewProj ) * ( vec4 ( ( v4 ).x,( v4 ).y,( v4 ).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 vv0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = vv0;\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 [("e2",Parameter {name = "position", ty = V3F}),("f2",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 e2 ;\nin vec3 f2 ;\nsmooth out vec4 vv0 ;\nvoid main() {\nvv0 = vec4 ( ( f2 ).x,( f2 ).y,( f2 ).z,1.0 );\ngl_Position = ( viewProj ) * ( vec4 ( ( e2 ).x,( e2 ).y,( e2 ).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 vv0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = vec4 ( 1.0,1.0,1.0,1.0 );\n}\n"},Program {programUniforms = fromList [("viewProj",M44F)], programStreams = fromList [("h5",Parameter {name = "position", ty = V3F}),("i5",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 h5 ;\nin vec3 i5 ;\nsmooth out vec4 vv0 ;\nvoid main() {\nvv0 = vec4 ( ( i5 ).x,( i5 ).y,( i5 ).z,1.0 );\ngl_Position = ( viewProj ) * ( vec4 ( ( h5 ).x,( h5 ).y,( h5 ).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 vv0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = vv0;\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/texture01.out b/testdata/texture01.out
index 676399ba..70e191b2 100644
--- a/testdata/texture01.out
+++ b/testdata/texture01.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),("diffuse",FTexture2D)], programStreams = fromList [("y1",Parameter {name = "position4", ty = V4F}),("z1",Parameter {name = "vertexUV", ty = V2F})], programInTextures = fromList [("diffuse",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 y1 ;\nin vec2 z1 ;\nsmooth out vec2 vv0 ;\nvoid main() {\nvv0 = z1;\ngl_Position = ( ( MVP ) * ( y1 ) ) * ( 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 diffuse ;\nsmooth in vec2 vv0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = texture2D ( diffuse,vv0 );\n}\n"}], slots = [Slot {slotName = "stream4", slotStreams = fromList [("position4",V4F),("vertexUV",V2F)], slotUniforms = fromList [("MVP",M44F),("diffuse",FTexture2D)], slotPrimitive = Triangles, slotPrograms = [0]}], streams = [], 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,SetSamplerUniform "diffuse" 1,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 = [], samplers = [], targets = [RenderTarget {renderTargets = [TargetItem {targetSemantic = Depth, targetRef = Just (Framebuffer Depth)},TargetItem {targetSemantic = Color, targetRef = Just (Framebuffer Color)}]}], programs = [Program {programUniforms = fromList [("MVP",M44F),("diffuse",FTexture2D)], programStreams = fromList [("e2",Parameter {name = "position4", ty = V4F}),("f2",Parameter {name = "vertexUV", ty = V2F})], programInTextures = fromList [("diffuse",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 e2 ;\nin vec2 f2 ;\nsmooth out vec2 vv0 ;\nvoid main() {\nvv0 = f2;\ngl_Position = ( ( MVP ) * ( e2 ) ) * ( 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 diffuse ;\nsmooth in vec2 vv0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = texture2D ( diffuse,vv0 );\n}\n"}], slots = [Slot {slotName = "stream4", slotStreams = fromList [("position4",V4F),("vertexUV",V2F)], slotUniforms = fromList [("MVP",M44F),("diffuse",FTexture2D)], slotPrimitive = Triangles, slotPrograms = [0]}], streams = [], 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,SetSamplerUniform "diffuse" 1,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/texture02.out b/testdata/texture02.out
index feb99a5f..4087e870 100644
--- a/testdata/texture02.out
+++ b/testdata/texture02.out
@@ -1 +1 @@
Pipeline {backend = OpenGL33, textures = [TextureDescriptor {textureType = Texture2D (FloatT Red) 1, textureSize = VV2U (V2 128 128), 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 128 128), 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 [("MVP",M44F)], programStreams = fromList [("m2",Parameter {name = "position4", ty = V4F}),("n2",Parameter {name = "vertexUV", ty = V2F})], programInTextures = fromList [("v0",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 m2 ;\nin vec2 n2 ;\nsmooth out vec2 vv0 ;\nvoid main() {\nvv0 = n2;\ngl_Position = ( ( MVP ) * ( m2 ) ) * ( 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 v0 ;\nsmooth in vec2 vv0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = texture2D ( v0,vv0 );\n}\n"}], slots = [Slot {slotName = "stream4", slotStreams = fromList [("position4",V4F),("vertexUV",V2F)], slotUniforms = fromList [("MVP",M44F)], slotPrimitive = Triangles, slotPrograms = [0]}], streams = [], commands = [SetRenderTarget 1,ClearRenderTarget [ClearImage {imageSemantic = Depth, clearValue = VFloat 1000.0},ClearImage {imageSemantic = Color, clearValue = VV4F (V4 0.0 0.0 1.0 1.0)}],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,SetTexture 0 1,SetSamplerUniform "v0" 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 128 128), 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 128 128), 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 [("MVP",M44F)], programStreams = fromList [("s2",Parameter {name = "position4", ty = V4F}),("t2",Parameter {name = "vertexUV", ty = V2F})], programInTextures = fromList [("v0",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 s2 ;\nin vec2 t2 ;\nsmooth out vec2 vv0 ;\nvoid main() {\nvv0 = t2;\ngl_Position = ( ( MVP ) * ( s2 ) ) * ( 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 v0 ;\nsmooth in vec2 vv0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = texture2D ( v0,vv0 );\n}\n"}], slots = [Slot {slotName = "stream4", slotStreams = fromList [("position4",V4F),("vertexUV",V2F)], slotUniforms = fromList [("MVP",M44F)], slotPrimitive = Triangles, slotPrograms = [0]}], streams = [], commands = [SetRenderTarget 1,ClearRenderTarget [ClearImage {imageSemantic = Depth, clearValue = VFloat 1000.0},ClearImage {imageSemantic = Color, clearValue = VV4F (V4 0.0 0.0 1.0 1.0)}],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,SetTexture 0 1,SetSamplerUniform "v0" 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/uniformparam01.out b/testdata/uniformparam01.out
index ca63c631..c29a530b 100644
--- a/testdata/uniformparam01.out
+++ b/testdata/uniformparam01.out
@@ -1 +1 @@
Pipeline {backend = OpenGL33, textures = [], samplers = [], targets = [RenderTarget {renderTargets = [TargetItem {targetSemantic = Color, targetRef = Just (Framebuffer Color)}]}], programs = [Program {programUniforms = fromList [("MVP",M44F)], programStreams = fromList [("k1",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 k1 ;\nflat out vec4 vv0 ;\nvoid main() {\nvv0 = k1;\ngl_Position = ( MVP ) * ( k1 );\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 vv0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = vv0;\n}\n"}], slots = [Slot {slotName = "stream4", slotStreams = fromList [("position4",V4F)], slotUniforms = fromList [("MVP",M44F)], slotPrimitive = Lines, slotPrograms = [0]}], streams = [], commands = [SetRenderTarget 0,ClearRenderTarget [ClearImage {imageSemantic = Color, clearValue = VV4F (V4 0.5 0.0 0.4 1.0)}],SetProgram 0,SetRasterContext (LineCtx 1.0 LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [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 = Color, targetRef = Just (Framebuffer Color)}]}], programs = [Program {programUniforms = fromList [("MVP",M44F)], programStreams = fromList [("q1",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 q1 ;\nflat out vec4 vv0 ;\nvoid main() {\nvv0 = q1;\ngl_Position = ( MVP ) * ( q1 );\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 vv0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = vv0;\n}\n"}], slots = [Slot {slotName = "stream4", slotStreams = fromList [("position4",V4F)], slotUniforms = fromList [("MVP",M44F)], slotPrimitive = Lines, slotPrograms = [0]}], streams = [], commands = [SetRenderTarget 0,ClearRenderTarget [ClearImage {imageSemantic = Color, clearValue = VV4F (V4 0.5 0.0 0.4 1.0)}],SetProgram 0,SetRasterContext (LineCtx 1.0 LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 0]} \ No newline at end of file
diff --git a/testdata/uniformparam02.out b/testdata/uniformparam02.out
index 26ed9916..17f3f7d6 100644
--- a/testdata/uniformparam02.out
+++ b/testdata/uniformparam02.out
@@ -1 +1 @@
Pipeline {backend = OpenGL33, textures = [], samplers = [], targets = [RenderTarget {renderTargets = [TargetItem {targetSemantic = Depth, targetRef = Just (Framebuffer Depth)}]}], programs = [Program {programUniforms = fromList [], programStreams = fromList [("c1",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);}\nin vec4 c1 ;\nflat out vec4 vv0 ;\nvoid main() {\nvv0 = c1;\ngl_Position = c1;\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 vv0 ;\nvoid main() {\n}\n"}], slots = [Slot {slotName = "stream4", slotStreams = fromList [("position4",V4F)], slotUniforms = fromList [], slotPrimitive = Lines, slotPrograms = [0]}], streams = [], commands = [SetRenderTarget 0,ClearRenderTarget [ClearImage {imageSemantic = Depth, clearValue = VFloat 1000.0}],SetProgram 0,SetRasterContext (LineCtx 1.0 LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less False]}),RenderSlot 0]} \ No newline at end of file Pipeline {backend = OpenGL33, textures = [], samplers = [], targets = [RenderTarget {renderTargets = [TargetItem {targetSemantic = Depth, targetRef = Just (Framebuffer Depth)}]}], programs = [Program {programUniforms = fromList [], programStreams = fromList [("i1",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);}\nin vec4 i1 ;\nflat out vec4 vv0 ;\nvoid main() {\nvv0 = i1;\ngl_Position = i1;\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 vv0 ;\nvoid main() {\n}\n"}], slots = [Slot {slotName = "stream4", slotStreams = fromList [("position4",V4F)], slotUniforms = fromList [], slotPrimitive = Lines, slotPrograms = [0]}], streams = [], commands = [SetRenderTarget 0,ClearRenderTarget [ClearImage {imageSemantic = Depth, clearValue = VFloat 1000.0}],SetProgram 0,SetRasterContext (LineCtx 1.0 LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less False]}),RenderSlot 0]} \ No newline at end of file
diff --git a/testdata/uniformparam03.out b/testdata/uniformparam03.out
index ca63c631..c29a530b 100644
--- a/testdata/uniformparam03.out
+++ b/testdata/uniformparam03.out
@@ -1 +1 @@
Pipeline {backend = OpenGL33, textures = [], samplers = [], targets = [RenderTarget {renderTargets = [TargetItem {targetSemantic = Color, targetRef = Just (Framebuffer Color)}]}], programs = [Program {programUniforms = fromList [("MVP",M44F)], programStreams = fromList [("k1",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 k1 ;\nflat out vec4 vv0 ;\nvoid main() {\nvv0 = k1;\ngl_Position = ( MVP ) * ( k1 );\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 vv0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = vv0;\n}\n"}], slots = [Slot {slotName = "stream4", slotStreams = fromList [("position4",V4F)], slotUniforms = fromList [("MVP",M44F)], slotPrimitive = Lines, slotPrograms = [0]}], streams = [], commands = [SetRenderTarget 0,ClearRenderTarget [ClearImage {imageSemantic = Color, clearValue = VV4F (V4 0.5 0.0 0.4 1.0)}],SetProgram 0,SetRasterContext (LineCtx 1.0 LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [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 = Color, targetRef = Just (Framebuffer Color)}]}], programs = [Program {programUniforms = fromList [("MVP",M44F)], programStreams = fromList [("q1",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 q1 ;\nflat out vec4 vv0 ;\nvoid main() {\nvv0 = q1;\ngl_Position = ( MVP ) * ( q1 );\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 vv0 ;\nout vec4 f0 ;\nvoid main() {\nf0 = vv0;\n}\n"}], slots = [Slot {slotName = "stream4", slotStreams = fromList [("position4",V4F)], slotUniforms = fromList [("MVP",M44F)], slotPrimitive = Lines, slotPrograms = [0]}], streams = [], commands = [SetRenderTarget 0,ClearRenderTarget [ClearImage {imageSemantic = Color, clearValue = VV4F (V4 0.5 0.0 0.4 1.0)}],SetProgram 0,SetRasterContext (LineCtx 1.0 LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 0]} \ No newline at end of file