summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--TODO4
-rw-r--r--lc/Builtins.lc12
-rw-r--r--src/LambdaCube/Compiler.hs6
-rw-r--r--src/LambdaCube/Compiler/CoreToIR.hs156
-rw-r--r--src/LambdaCube/Compiler/Infer.hs77
-rw-r--r--src/LambdaCube/Compiler/Parser.hs3
-rw-r--r--testdata/Builtins.out4632
-rw-r--r--testdata/Graphics.out624
-rw-r--r--testdata/HList/Builtins.lc (renamed from testdata/hlist.ignore/Builtins.lc)26
-rw-r--r--testdata/HList/Internals.lc (renamed from testdata/hlist.ignore/Internals.lc)10
-rw-r--r--testdata/HList/Prelude.lc (renamed from testdata/hlist.ignore/Prelude.lc)8
-rw-r--r--testdata/HyperbolicParaboloic.out20
-rw-r--r--testdata/Hyperboloid.out24
-rw-r--r--testdata/Internals.out4
-rw-r--r--testdata/NewStyle.out5
-rw-r--r--testdata/PrimReduce.out15
-rw-r--r--testdata/Spiral.out24
-rw-r--r--testdata/complex.out2
-rw-r--r--testdata/editor-examples/Cube.out5
-rw-r--r--testdata/editor-examples/Heartbeat.out41
-rw-r--r--testdata/editor-examples/LambdaCube.out114
-rw-r--r--testdata/editor-examples/LambdaCube2.out16
-rw-r--r--testdata/editor-examples/MagicCube.out245
-rw-r--r--testdata/editor-examples/RecLC.out68
-rw-r--r--testdata/editor-examples/RecursiveTexture.out390
-rw-r--r--testdata/editor-examples/Stripes.out290
-rw-r--r--testdata/editor-examples/Tetrahedron.out33
-rw-r--r--testdata/editor-examples/Texturing.out5
-rw-r--r--testdata/example06.out5
-rw-r--r--testdata/example07.out13
-rw-r--r--testdata/example08.out414
-rw-r--r--testdata/fetcharrays01.out11
-rw-r--r--testdata/fragment04ifthenelse.out7
-rw-r--r--testdata/gfx03.out12
-rw-r--r--testdata/gfx04.out7
-rw-r--r--testdata/gfx05.out17
-rw-r--r--testdata/heartbeat01.out41
-rw-r--r--testdata/helloWorld.out5
-rw-r--r--testdata/line01.out11
-rw-r--r--testdata/point01.out9
-rw-r--r--testdata/recursivetexture01.out360
-rw-r--r--testdata/recursivetexture02.out30
-rw-r--r--testdata/simple03.out14
-rw-r--r--testdata/texture01.out5
-rw-r--r--testdata/texture02.out5
-rw-r--r--testdata/traceTest.out2
46 files changed, 4267 insertions, 3560 deletions
diff --git a/TODO b/TODO
index eb106828..fae4bae5 100644
--- a/TODO
+++ b/TODO
@@ -79,6 +79,8 @@ done:
79- move to megaparsec 79- move to megaparsec
80- blog about 0.4 release 80- blog about 0.4 release
81- testenv: add editor examples as backend tests 81- testenv: add editor examples as backend tests
82- compiler: support function recognition
83- backend: generate functions in shaders
82 84
83next: 85next:
84- support local pattern matching functions 86- support local pattern matching functions
@@ -86,7 +88,6 @@ next:
86- mutual recursion (inference & reduction) 88- mutual recursion (inference & reduction)
87- compiler: ConName --> Int 89- compiler: ConName --> Int
88- compiler optimization: irrelevance + erasure 90- compiler optimization: irrelevance + erasure
89- compiler: support let labels
90- re-enable ambiguity checks 91- re-enable ambiguity checks
91- show desugared source code on a tab in the editor 92- show desugared source code on a tab in the editor
92 93
@@ -101,7 +102,6 @@ next:
101- backend: setup viewport for render target size (purescript) 102- backend: setup viewport for render target size (purescript)
102 103
103- backend: array support 104- backend: array support
104- backend: generate let in shaders
105- backend: GLSL codegen doesn't support Vector and tuple patterns (not compiler frontend related): 105- backend: GLSL codegen doesn't support Vector and tuple patterns (not compiler frontend related):
106 fragment02tuple 106 fragment02tuple
107 fragment02vectorpattern 107 fragment02vectorpattern
diff --git a/lc/Builtins.lc b/lc/Builtins.lc
index d4226f25..5eead277 100644
--- a/lc/Builtins.lc
+++ b/lc/Builtins.lc
@@ -53,14 +53,10 @@ type family MatVecScalarElem a where
53 53
54data Swizz = Sx | Sy | Sz | Sw 54data Swizz = Sx | Sy | Sz | Sw
55 55
56-- todo: use pattern matching 56mapVec :: (a -> b) -> VecS a n -> VecS b n
57mapVec :: forall a b m . (a -> b) -> Vec m a -> Vec m b 57mapVec f (V2 x y) = V2 (f x) (f y)
58mapVec @a @b @m f v = 'VecSCase (\m _ -> 'Vec m b) 58mapVec f (V3 x y z) = V3 (f x) (f y) (f z)
59 (\x y -> V2 (f x) (f y)) 59mapVec f (V4 x y z w) = V4 (f x) (f y) (f z) (f w)
60 (\x y z -> V3 (f x) (f y) (f z))
61 (\x y z w -> V4 (f x) (f y) (f z) (f w))
62 @m
63 v
64 60
65-- todo: make it more type safe 61-- todo: make it more type safe
66swizzscalar :: forall n . Vec n a -> Swizz -> a 62swizzscalar :: forall n . Vec n a -> Swizz -> a
diff --git a/src/LambdaCube/Compiler.hs b/src/LambdaCube/Compiler.hs
index 62f7a49e..5f7bd4fd 100644
--- a/src/LambdaCube/Compiler.hs
+++ b/src/LambdaCube/Compiler.hs
@@ -130,7 +130,7 @@ ioFetch paths imp n = do
130 130
131splitMPath fn = (joinPath as, intercalate "." $ bs ++ [y]) 131splitMPath fn = (joinPath as, intercalate "." $ bs ++ [y])
132 where 132 where
133 (as, bs) = span (\x -> null x || x == "." || x == "/" || isLower (head x)) xs 133 (as, bs) = span (\x -> null x || not (isUpper $ head x)) xs
134 (xs, y) = map takeDirectory . splitPath *** id $ splitFileName $ dropExtension fn 134 (xs, y) = map takeDirectory . splitPath *** id $ splitFileName $ dropExtension fn
135 135
136 136
@@ -161,11 +161,11 @@ loadModule imp mname = do
161 ExportId (snd -> d) -> case Map.lookup d $ getPolyEnv x of 161 ExportId (snd -> d) -> case Map.lookup d $ getPolyEnv x of
162 Just def -> PolyEnv (Map.singleton d def) mempty 162 Just def -> PolyEnv (Map.singleton d def) mempty
163 Nothing -> error $ d ++ " is not defined" 163 Nothing -> error $ d ++ " is not defined"
164 ExportModule (snd -> m) | m == snd (splitMPath mname) -> x 164 ExportModule (snd -> m) | m == snd (splitMPath fname) -> x
165 ExportModule m -> case [ ms 165 ExportModule m -> case [ ms
166 | ((m', is), ms) <- zip (moduleImports e) ms, m' == m] of 166 | ((m', is), ms) <- zip (moduleImports e) ms, m' == m] of
167 [PolyEnv x infos] -> PolyEnv x mempty -- TODO 167 [PolyEnv x infos] -> PolyEnv x mempty -- TODO
168 [] -> error "empty export list" 168 [] -> error $ "empty export list: " ++ show (fname, m, map fst $ moduleImports e, snd (splitMPath fname))
169 _ -> error "export list: internal error" 169 _ -> error "export list: internal error"
170 modify $ Map.insert fname $ Right (x', src) 170 modify $ Map.insert fname $ Right (x', src)
171 return (fname, x') 171 return (fname, x')
diff --git a/src/LambdaCube/Compiler/CoreToIR.hs b/src/LambdaCube/Compiler/CoreToIR.hs
index 1d9f9017..42dcd1bb 100644
--- a/src/LambdaCube/Compiler/CoreToIR.hs
+++ b/src/LambdaCube/Compiler/CoreToIR.hs
@@ -27,7 +27,7 @@ import qualified LambdaCube.Linear as IR
27 27
28import LambdaCube.Compiler.Pretty 28import LambdaCube.Compiler.Pretty
29import Text.PrettyPrint.Compact (nest) 29import Text.PrettyPrint.Compact (nest)
30import LambdaCube.Compiler.Infer hiding (Con, Lam, Pi, TType, Var, ELit) 30import LambdaCube.Compiler.Infer hiding (Con, Lam, Pi, TType, Var, ELit, Func)
31import qualified LambdaCube.Compiler.Infer as I 31import qualified LambdaCube.Compiler.Infer as I
32import LambdaCube.Compiler.Parser (up, Up (..)) 32import LambdaCube.Compiler.Parser (up, Up (..))
33 33
@@ -337,7 +337,7 @@ compFrag x = case x of
337 337
338-- todo: remove 338-- todo: remove
339toGLSLType msg (TTuple []) = "void" 339toGLSLType msg (TTuple []) = "void"
340toGLSLType msg x = showGLSLType msg $ compInputType x 340toGLSLType msg x = showGLSLType msg $ compInputType msg x
341 341
342-- move to lambdacube-ir? 342-- move to lambdacube-ir?
343showGLSLType msg = \case 343showGLSLType msg = \case
@@ -369,40 +369,44 @@ showGLSLType msg = \case
369 IR.FTexture2D -> "sampler2D" 369 IR.FTexture2D -> "sampler2D"
370 t -> error $ "toGLSLType: " ++ msg ++ " " ++ show t 370 t -> error $ "toGLSLType: " ++ msg ++ " " ++ show t
371 371
372compInputType x = case x of 372supType = isJust . compInputType_
373 TFloat -> IR.Float 373
374 TVec 2 TFloat -> IR.V2F 374compInputType_ x = case x of
375 TVec 3 TFloat -> IR.V3F 375 TFloat -> Just IR.Float
376 TVec 4 TFloat -> IR.V4F 376 TVec 2 TFloat -> Just IR.V2F
377 TBool -> IR.Bool 377 TVec 3 TFloat -> Just IR.V3F
378 TVec 2 TBool -> IR.V2B 378 TVec 4 TFloat -> Just IR.V4F
379 TVec 3 TBool -> IR.V3B 379 TBool -> Just IR.Bool
380 TVec 4 TBool -> IR.V4B 380 TVec 2 TBool -> Just IR.V2B
381 TInt -> IR.Int 381 TVec 3 TBool -> Just IR.V3B
382 TVec 2 TInt -> IR.V2I 382 TVec 4 TBool -> Just IR.V4B
383 TVec 3 TInt -> IR.V3I 383 TInt -> Just IR.Int
384 TVec 4 TInt -> IR.V4I 384 TVec 2 TInt -> Just IR.V2I
385 TWord -> IR.Word 385 TVec 3 TInt -> Just IR.V3I
386 TVec 2 TWord -> IR.V2U 386 TVec 4 TInt -> Just IR.V4I
387 TVec 3 TWord -> IR.V3U 387 TWord -> Just IR.Word
388 TVec 4 TWord -> IR.V4U 388 TVec 2 TWord -> Just IR.V2U
389 TMat 2 2 TFloat -> IR.M22F 389 TVec 3 TWord -> Just IR.V3U
390 TMat 2 3 TFloat -> IR.M23F 390 TVec 4 TWord -> Just IR.V4U
391 TMat 2 4 TFloat -> IR.M24F 391 TMat 2 2 TFloat -> Just IR.M22F
392 TMat 3 2 TFloat -> IR.M32F 392 TMat 2 3 TFloat -> Just IR.M23F
393 TMat 3 3 TFloat -> IR.M33F 393 TMat 2 4 TFloat -> Just IR.M24F
394 TMat 3 4 TFloat -> IR.M34F 394 TMat 3 2 TFloat -> Just IR.M32F
395 TMat 4 2 TFloat -> IR.M42F 395 TMat 3 3 TFloat -> Just IR.M33F
396 TMat 4 3 TFloat -> IR.M43F 396 TMat 3 4 TFloat -> Just IR.M34F
397 TMat 4 4 TFloat -> IR.M44F 397 TMat 4 2 TFloat -> Just IR.M42F
398 x -> error $ "compInputType " ++ ppShow x 398 TMat 4 3 TFloat -> Just IR.M43F
399 TMat 4 4 TFloat -> Just IR.M44F
400 _ -> Nothing
401
402compInputType msg x = fromMaybe (error $ "compInputType " ++ msg ++ " " ++ ppShow x) $ compInputType_ x
399 403
400is234 = (`elem` [2,3,4]) 404is234 = (`elem` [2,3,4])
401 405
402 406
403compAttribute x = case x of 407compAttribute x = case x of
404 ETuple a -> concatMap compAttribute a 408 ETuple a -> concatMap compAttribute a
405 A1 "Attribute" (EString s) -> [(s, compInputType $ tyOf x)] 409 A1 "Attribute" (EString s) -> [(s, compInputType "compAttr" $ tyOf x)]
406 x -> error $ "compAttribute " ++ ppShow x 410 x -> error $ "compAttribute " ++ ppShow x
407 411
408compList (A2 "Cons" a x) = compValue a : compList x 412compList (A2 "Cons" a x) = compValue a : compList x
@@ -430,7 +434,7 @@ compAttributeValue x = checkLength $ go x
430 434
431 go = \case 435 go = \case
432 ETuple a -> concatMap go a 436 ETuple a -> concatMap go a
433 a -> let A1 "List" (compInputType -> t) = tyOf a 437 a -> let A1 "List" (compInputType "compAV" -> t) = tyOf a
434 values = compList a 438 values = compList a
435 in 439 in
436 [(length values,(t,foldr (flatten t) (emptyArray t) values))] 440 [(length values,(t,foldr (flatten t) (emptyArray t) values))]
@@ -524,6 +528,7 @@ genGLSLs backend
524 uniformDecls vertUniforms 528 uniformDecls vertUniforms
525 <> [shaderDecl (caseWO "attribute" "in") (text t) (text n) | (n, t) <- zip vertInNames vertIns] 529 <> [shaderDecl (caseWO "attribute" "in") (text t) (text n) | (n, t) <- zip vertInNames vertIns]
526 <> vertOutDecls "out" 530 <> vertOutDecls "out"
531 <> map shaderF vertFuncs
527 <> [mainFunc $ 532 <> [mainFunc $
528 [shaderLet (text n) x | (n, x) <- zip vertOutNamesWithPosition vertGLSL] 533 [shaderLet (text n) x | (n, x) <- zip vertOutNamesWithPosition vertGLSL]
529 <> [shaderLet "gl_PointSize" x | Just x <- [ptGLSL]] 534 <> [shaderLet "gl_PointSize" x | Just x <- [ptGLSL]]
@@ -534,6 +539,7 @@ genGLSLs backend
534 uniformDecls fragUniforms 539 uniformDecls fragUniforms
535 <> vertOutDecls "in" 540 <> vertOutDecls "in"
536 <> [shaderDecl "out" (toGLSLType "4" tfrag) fragColorName | noUnit tfrag, backend == OpenGL33] 541 <> [shaderDecl "out" (toGLSLType "4" tfrag) fragColorName | noUnit tfrag, backend == OpenGL33]
542 <> map shaderF fragFuncs
537 <> [mainFunc $ 543 <> [mainFunc $
538 [shaderStmt $ "if" <+> parens ("!" <> parens filt) <+> "discard" | Just filt <- [filtGLSL]] 544 [shaderStmt $ "if" <+> parens ("!" <> parens filt) <+> "discard" | Just filt <- [filtGLSL]]
539 <> [shaderLet fragColorName $ fromMaybe (text $ head vertOutNames) fragGLSL | noUnit tfrag] 545 <> [shaderLet fragColorName $ fromMaybe (text $ head vertOutNames) fragGLSL | noUnit tfrag]
@@ -547,14 +553,41 @@ genGLSLs backend
547 Just (etaRed -> Just (vertIns, verts)) -> (toGLSLType "3" <$> vertIns, eTuple verts) 553 Just (etaRed -> Just (vertIns, verts)) -> (toGLSLType "3" <$> vertIns, eTuple verts)
548 Nothing -> ([], [mkTVar 0 tvert]) 554 Nothing -> ([], [mkTVar 0 tvert])
549 555
550 (((vertGLSL, ptGLSL), vertUniforms), ((filtGLSL, fragGLSL), fragUniforms)) = flip evalState shaderNames $ (,) 556 (((vertGLSL, ptGLSL), (vertUniforms, vertFuncs)), ((filtGLSL, fragGLSL), (fragUniforms, fragFuncs))) = flip evalState shaderNames $ do
551 <$> runWriterT ((,) 557 ((g1, (us1, verts)), (g2, (us2, frags))) <- (,)
552 <$> traverse (genGLSL' vertInNames . (,) vertIns) verts 558 <$> runWriterT ((,)
553 <*> traverse (genGLSL' vertOutNamesWithPosition . red) rp) 559 <$> traverse (genGLSL' vertInNames . (,) vertIns) verts
554 <*> runWriterT ((,) 560 <*> traverse (genGLSL' vertOutNamesWithPosition . red) rp)
555 <$> traverse (genGLSL' vertOutNames . red) ffilter 561 <*> runWriterT ((,)
556 <*> traverse (genGLSL' vertOutNames . red) frag) 562 <$> traverse (genGLSL' vertOutNames . red) ffilter
563 <*> traverse (genGLSL' vertOutNames . red) frag)
564 (,) <$> ((,) g1 <$> fixFuncs us1 [] verts) <*> ((,) g2 <$> fixFuncs us2 [] frags)
565
566 fixFuncs :: Uniforms -> [(SName, (Doc, ExpTV, [ExpTV]))] -> Map.Map SName (ExpTV, ExpTV, [ExpTV]) -> State [SName] (Uniforms, [(SName, (Doc, ExpTV, [ExpTV]))])
567 fixFuncs us fsb fsa
568 | Map.null fsa = return (us, fsb)
569 | otherwise = do
570 (unzip -> (defs, unzip -> (us', fs'))) <- forM fsa' $ \(fn, (def, ty, tys)) -> do
571 let
572 removeLams 0 x = x
573 removeLams i (ELam _ x) = removeLams (i-1) x
574 removeLams i (Lam Hidden _ x) = removeLams i x
575 removeLams i x = error $ "removeLams: " ++ fn ++ " " ++ show i ++ " " ++ show x
576
577 runWriterT $ genGLSL (reverse $ take (length tys) funArgs) $ removeLams (length tys) def
578 let fsb' = zipWith combine fsa' defs <> fsb
579 fixFuncs (us <> mconcat us') fsb' (Map.filterWithKey (\k _ -> k `notElem` map fst fsb') $ mconcat fs')
580 where
581 fsa' = Map.toList fsa
582 combine (fn, (_, ty, tys)) def = (fn, (def, ty, tys))
583
584 shaderF (fn, (def, ty, tys))
585 = shaderFunc' (toGLSLType "44" ty) (text fn)
586 (zipWith (<+>) (map (toGLSLType "45") tys) (map text funArgs))
587 def
557 588
589
590 funArgs = map (("z" ++) . show) [0..]
558 shaderNames = map (("s" ++) . show) [0..] 591 shaderNames = map (("s" ++) . show) [0..]
559 vertInNames = map (("vi" ++) . show) [1..length vertIns] 592 vertInNames = map (("vi" ++) . show) [1..length vertIns]
560 vertOutNames = map (("vo" ++) . show) [1..length vertOuts] 593 vertOutNames = map (("vo" ++) . show) [1..length vertOuts]
@@ -583,6 +616,9 @@ genGLSLs backend
583 <> [shaderFunc "vec4" "texture2D" ["sampler2D s", "vec2 uv"] [shaderReturn "texture(s,uv)"] | backend == OpenGL33] 616 <> [shaderFunc "vec4" "texture2D" ["sampler2D s", "vec2 uv"] [shaderReturn "texture(s,uv)"] | backend == OpenGL33]
584 <> xs 617 <> xs
585 618
619 shaderFunc' ot n [] b = shaderLet (ot <+> n) b
620 shaderFunc' ot n ps b = shaderFunc ot n ps [shaderReturn b]
621
586 shaderFunc outtype name pars body = nest 4 (outtype <+> name <> tupled pars <+> "{" <$$> vcat body) <$$> "}" 622 shaderFunc outtype name pars body = nest 4 (outtype <+> name <> tupled pars <+> "{" <$$> vcat body) <$$> "}"
587 mainFunc xs = shaderFunc "void" "main" [] xs 623 mainFunc xs = shaderFunc "void" "main" [] xs
588 shaderStmt xs = nest 4 $ xs <> ";" 624 shaderStmt xs = nest 4 $ xs <> ";"
@@ -606,12 +642,16 @@ data Uniform
606 642
607type Uniforms = Map String (Uniform, IR.InputType) 643type Uniforms = Map String (Uniform, IR.InputType)
608 644
609genGLSL :: [SName] -> ExpTV -> WriterT Uniforms (State [String]) Doc 645tellUniform x = tell (x, mempty)
646
647genGLSL :: [SName] -> ExpTV -> WriterT (Uniforms, Map.Map SName (ExpTV, ExpTV, [ExpTV])) (State [String]) Doc
610genGLSL dns e = case e of 648genGLSL dns e = case e of
611 649
612 ELit a -> pure $ text $ show a 650 ELit a -> pure $ text $ show a
613 Var i _ -> pure $ text $ dns !! i 651 Var i _ -> pure $ text $ dns !! i
614 652
653 Func fn def ty xs -> tell (mempty, Map.singleton fn (def, ty, map tyOf xs)) >> call fn xs
654
615 Con cn xs -> case cn of 655 Con cn xs -> case cn of
616 "primIfThenElse" -> case xs of [a, b, c] -> hsep <$> sequence [gen a, pure "?", gen b, pure ":", gen c] 656 "primIfThenElse" -> case xs of [a, b, c] -> hsep <$> sequence [gen a, pure "?", gen b, pure ":", gen c]
617 657
@@ -620,15 +660,15 @@ genGLSL dns e = case e of
620 660
621 "Uniform" -> case xs of 661 "Uniform" -> case xs of
622 [EString s] -> do 662 [EString s] -> do
623 tell $ Map.singleton s $ (,) UUniform $ compInputType $ tyOf e 663 tellUniform $ Map.singleton s $ (,) UUniform $ compInputType "unif" $ tyOf e
624 pure $ text s 664 pure $ text s
625 "Sampler" -> case xs of 665 "Sampler" -> case xs of
626 [_, _, A1 "Texture2DSlot" (EString s)] -> do 666 [_, _, A1 "Texture2DSlot" (EString s)] -> do
627 tell $ Map.singleton s $ (,) UTexture2DSlot IR.FTexture2D{-compInputType $ tyOf e -- TODO-} 667 tellUniform $ Map.singleton s $ (,) UTexture2DSlot IR.FTexture2D{-compInputType $ tyOf e -- TODO-}
628 pure $ text s 668 pure $ text s
629 [_, _, A2 "Texture2D" (A2 "V2" (EInt w) (EInt h)) b] -> do 669 [_, _, A2 "Texture2D" (A2 "V2" (EInt w) (EInt h)) b] -> do
630 s <- newName 670 s <- newName
631 tell $ Map.singleton s $ (,) (UTexture2D w h b) IR.FTexture2D 671 tellUniform $ Map.singleton s $ (,) (UTexture2D w h b) IR.FTexture2D
632 pure $ text s 672 pure $ text s
633 673
634 'P':'r':'i':'m':n | n'@(_:_) <- trName (dropS n) -> call n' xs 674 'P':'r':'i':'m':n | n'@(_:_) <- trName (dropS n) -> call n' xs
@@ -735,7 +775,7 @@ genGLSL dns e = case e of
735 "==" -> "==" 775 "==" -> "=="
736 776
737 n | n `elem` ["primNegateWord", "primNegateInt", "primNegateFloat"] -> "-_" 777 n | n `elem` ["primNegateWord", "primNegateInt", "primNegateFloat"] -> "-_"
738 n | n `elem` ["V2", "V3", "V4"] -> toGLSLType "5" $ tyOf e 778 n | n `elem` ["V2", "V3", "V4"] -> toGLSLType (n ++ " " ++ show (length xs)) $ tyOf e
739 _ -> "" 779 _ -> ""
740 780
741 -- not supported 781 -- not supported
@@ -793,7 +833,7 @@ genGLSL dns e = case e of
793data ExpTV = ExpTV_ Exp Exp [Exp] 833data ExpTV = ExpTV_ Exp Exp [Exp]
794 deriving (Show, Eq) 834 deriving (Show, Eq)
795 835
796pattern ExpTV a b c <- ExpTV_ a b c where ExpTV a b c = ExpTV_ (unLab' a) (unLab' b) c 836pattern ExpTV a b c <- ExpTV_ a b c where ExpTV a b c = ExpTV_ (a) (unLab' b) c
797 837
798type Ty = ExpTV 838type Ty = ExpTV
799 839
@@ -809,7 +849,8 @@ pattern Con h b <- (mkCon -> Just (h, b))
809pattern App a b <- (mkApp -> Just (a, b)) 849pattern App a b <- (mkApp -> Just (a, b))
810pattern Var a b <- (mkVar -> Just (a, b)) 850pattern Var a b <- (mkVar -> Just (a, b))
811pattern ELit l <- ExpTV (I.ELit l) _ _ 851pattern ELit l <- ExpTV (I.ELit l) _ _
812pattern TType <- ExpTV I.TType _ _ 852pattern TType <- ExpTV (unLab' -> I.TType) _ _
853pattern Func fn def ty xs <- (mkFunc -> Just (fn, def, ty, xs))
813 854
814pattern EString s <- ELit (LString s) 855pattern EString s <- ELit (LString s)
815pattern EFloat s <- ELit (LFloat s) 856pattern EFloat s <- ELit (LFloat s)
@@ -818,26 +859,33 @@ pattern EInt s <- ELit (LInt s)
818t .@ vs = ExpTV t I.TType vs 859t .@ vs = ExpTV t I.TType vs
819infix 1 .@ 860infix 1 .@
820 861
821mkVar (ExpTV (I.Var i) t vs) = Just (i, t .@ vs) 862mkVar (ExpTV (unLab' -> I.Var i) t vs) = Just (i, t .@ vs)
822mkVar _ = Nothing 863mkVar _ = Nothing
823 864
824mkPi (ExpTV (I.Pi b x y) _ vs) = Just (b, x .@ vs, y .@ addToEnv x vs) 865mkPi (ExpTV (unLab' -> I.Pi b x y) _ vs) = Just (b, x .@ vs, y .@ addToEnv x vs)
825mkPi _ = Nothing 866mkPi _ = Nothing
826 867
827mkLam (ExpTV (I.Lam y) (I.Pi b x yt) vs) = Just (b, x .@ vs, ExpTV y yt $ addToEnv x vs) 868mkLam (ExpTV (unLab' -> I.Lam y) (I.Pi b x yt) vs) = Just (b, x .@ vs, ExpTV y yt $ addToEnv x vs)
828mkLam _ = Nothing 869mkLam _ = Nothing
829 870
830mkCon (ExpTV (I.Con s n xs) et vs) = Just (untick $ show s, chain vs (conType et s) $ mkConPars n et ++ xs) 871mkCon (ExpTV (unLab' -> I.Con s n xs) et vs) = Just (untick $ show s, chain vs (conType et s) $ mkConPars n et ++ xs)
831mkCon (ExpTV (TyCon s xs) et vs) = Just (untick $ show s, chain vs (nType s) xs) 872mkCon (ExpTV (unLab' -> TyCon s xs) et vs) = Just (untick $ show s, chain vs (nType s) xs)
832mkCon (ExpTV (Neut (I.Fun s i (reverse -> xs) def)) et vs) = Just (untick $ show s, chain vs (nType s) xs) 873mkCon (ExpTV (unLab' -> Neut (I.Fun s i (reverse -> xs) def)) et vs) = Just (untick $ show s, chain vs (nType s) xs)
833mkCon (ExpTV (CaseFun s xs n) et vs) = Just (untick $ show s, chain vs (nType s) $ makeCaseFunPars' (mkEnv vs) n ++ xs ++ [Neut n]) 874mkCon (ExpTV (unLab' -> CaseFun s xs n) et vs) = Just (untick $ show s, chain vs (nType s) $ makeCaseFunPars' (mkEnv vs) n ++ xs ++ [Neut n])
834mkCon (ExpTV (TyCaseFun s [m, t, f] n) et vs) = Just (untick $ show s, chain vs (nType s) [m, t, Neut n, f]) 875mkCon (ExpTV (unLab' -> TyCaseFun s [m, t, f] n) et vs) = Just (untick $ show s, chain vs (nType s) [m, t, Neut n, f])
835mkCon _ = Nothing 876mkCon _ = Nothing
836 877
837mkApp (ExpTV (Neut (I.App_ a b)) et vs) = Just (ExpTV (Neut a) t vs, head $ chain vs t [b]) 878mkApp (ExpTV (unLab' -> Neut (I.App_ a b)) et vs) = Just (ExpTV (Neut a) t vs, head $ chain vs t [b])
838 where t = neutType' (mkEnv vs) a 879 where t = neutType' (mkEnv vs) a
839mkApp _ = Nothing 880mkApp _ = Nothing
840 881
882mkFunc r@(ExpTV (I.Func n def nt xs) ty vs) | all (supType . tyOf) (r: xs') && n `notElem` ["typeAnn"] && all validChar n
883 = Just (untick n, toExp (def, nt), tyOf r, xs')
884 where
885 xs' = chain vs nt $ reverse xs
886 validChar = isAlphaNum
887mkFunc _ = Nothing
888
841chain vs t@(I.Pi Hidden at y) (a: as) = chain vs (appTy t a) as 889chain vs t@(I.Pi Hidden at y) (a: as) = chain vs (appTy t a) as
842chain vs t xs = chain' vs t xs 890chain vs t xs = chain' vs t xs
843 891
diff --git a/src/LambdaCube/Compiler/Infer.hs b/src/LambdaCube/Compiler/Infer.hs
index 329ed140..ee78422d 100644
--- a/src/LambdaCube/Compiler/Infer.hs
+++ b/src/LambdaCube/Compiler/Infer.hs
@@ -18,10 +18,9 @@ module LambdaCube.Compiler.Infer
18 ( Binder (..), SName, Lit(..), Visibility(..) 18 ( Binder (..), SName, Lit(..), Visibility(..)
19 , Exp (..), Neutral (..), ExpType, GlobalEnv 19 , Exp (..), Neutral (..), ExpType, GlobalEnv
20 , pattern Var, pattern CaseFun, pattern TyCaseFun, pattern App_ 20 , pattern Var, pattern CaseFun, pattern TyCaseFun, pattern App_
21 , pattern Con, pattern TyCon, pattern Pi, pattern Lam, pattern Fun, pattern ELit 21 , pattern Con, pattern TyCon, pattern Pi, pattern Lam, pattern Fun, pattern ELit, pattern Func, pattern LabelEnd
22 , outputType, boolType, trueExp 22 , outputType, boolType, trueExp
23 , down, Subst (..), free 23 , down, Subst (..), free
24 , litType
25 , initEnv, Env(..), pattern EBind2 24 , initEnv, Env(..), pattern EBind2
26 , SI(..), Range(..) -- todo: remove 25 , SI(..), Range(..) -- todo: remove
27 , Info(..), Infos, listAllInfos, listTypeInfos, listTraceInfos 26 , Info(..), Infos, listAllInfos, listTypeInfos, listTraceInfos
@@ -65,7 +64,7 @@ data Exp
65pattern ELit a <- (unfixlabel -> ELit_ a) where ELit = ELit_ 64pattern ELit a <- (unfixlabel -> ELit_ a) where ELit = ELit_
66 65
67data Neutral 66data Neutral
68 = Fun_ MaxDB FunName !Int{-number of missing parameters-} [Exp]{-given parameters, reversed-} Neutral{-unfolded expression-}{-not neut?-} 67 = Fun_ MaxDB FunName [Exp]{-local vars-} !Int{-number of missing parameters-} [Exp]{-given parameters, reversed-} Neutral{-unfolded expression-}{-not neut?-}
69 | CaseFun__ MaxDB CaseFunName [Exp] Neutral 68 | CaseFun__ MaxDB CaseFunName [Exp] Neutral
70 | TyCaseFun__ MaxDB TyCaseFunName [Exp] Neutral 69 | TyCaseFun__ MaxDB TyCaseFunName [Exp] Neutral
71 | App__ MaxDB Neutral Exp 70 | App__ MaxDB Neutral Exp
@@ -78,7 +77,7 @@ data ConName = ConName SName Int{-ordinal number, e.g. Zero:0, Succ:1-} Type
78 77
79data TyConName = TyConName SName Int{-num of indices-} Type [(ConName, Type)]{-constructors-} CaseFunName 78data TyConName = TyConName SName Int{-num of indices-} Type [(ConName, Type)]{-constructors-} CaseFunName
80 79
81data FunName = FunName SName Type 80data FunName = FunName SName (Maybe Exp) Type
82 81
83data CaseFunName = CaseFunName SName Type Int{-num of parameters-} 82data CaseFunName = CaseFunName SName Type Int{-num of parameters-}
84 83
@@ -92,8 +91,8 @@ instance Show ConName where show (ConName n _ _) = n
92instance Eq ConName where ConName _ n _ == ConName _ n' _ = n == n' 91instance Eq ConName where ConName _ n _ == ConName _ n' _ = n == n'
93instance Show TyConName where show (TyConName n _ _ _ _) = n 92instance Show TyConName where show (TyConName n _ _ _ _) = n
94instance Eq TyConName where TyConName n _ _ _ _ == TyConName n' _ _ _ _ = n == n' 93instance Eq TyConName where TyConName n _ _ _ _ == TyConName n' _ _ _ _ = n == n'
95instance Show FunName where show (FunName n _) = n 94instance Show FunName where show (FunName n _ _) = n
96instance Eq FunName where FunName n _ == FunName n' _ = n == n' 95instance Eq FunName where FunName n _ _ == FunName n' _ _ = n == n'
97instance Show CaseFunName where show (CaseFunName n _ _) = caseName n 96instance Show CaseFunName where show (CaseFunName n _ _) = caseName n
98instance Eq CaseFunName where CaseFunName n _ _ == CaseFunName n' _ _ = n == n' 97instance Eq CaseFunName where CaseFunName n _ _ == CaseFunName n' _ _ = n == n'
99instance Show TyCaseFunName where show (TyCaseFunName n _) = MatchName n 98instance Show TyCaseFunName where show (TyCaseFunName n _) = MatchName n
@@ -109,13 +108,13 @@ pattern NoLE <- (isNoLabelEnd -> True)
109isNoLabelEnd (LabelEnd_ _) = False 108isNoLabelEnd (LabelEnd_ _) = False
110isNoLabelEnd _ = True 109isNoLabelEnd _ = True
111 110
112pattern Fun f i xs n <- Fun_ _ f i xs n where Fun f i xs n = Fun_ (foldMap maxDB_ xs {- <> iterateN i lowerDB (maxDB_ n)-}) f i xs n 111pattern Fun f i xs n <- Fun_ _ f _ i xs n where Fun f i xs n = Fun_ (foldMap maxDB_ xs {- <> iterateN i lowerDB (maxDB_ n)-}) f [] i xs n
113pattern UTFun a t b <- Neut (Fun (FunName a t) _ (reverse -> b) NoLE) 112pattern UTFun a t b <- Neut (Fun (FunName a _ t) _ (reverse -> b) NoLE)
114pattern UFunN a b <- UTFun a _ b 113pattern UFunN a b <- UTFun a _ b
115pattern DFun_ fn xs <- Fun fn 0 (reverse -> xs) (Delta _) where 114pattern DFun_ fn xs <- Fun fn 0 (reverse -> xs) (Delta _) where
116 DFun_ fn@(FunName n _) xs = Fun fn 0 (reverse xs) d where 115 DFun_ fn@(FunName n _ _) xs = Fun fn 0 (reverse xs) d where
117 d = Delta $ SData $ getFunDef n $ \xs -> Neut $ Fun fn 0 (reverse xs) d 116 d = Delta $ SData $ getFunDef n $ \xs -> Neut $ Fun fn 0 (reverse xs) d
118pattern TFun' a t b = DFun_ (FunName a t) b 117pattern TFun' a t b = DFun_ (FunName a Nothing t) b
119pattern TFun a t b = Neut (TFun' a t b) 118pattern TFun a t b = Neut (TFun' a t b)
120 119
121pattern CaseFun_ a b c <- CaseFun__ _ a b c where CaseFun_ a b c = CaseFun__ (foldMap maxDB_ b <> maxDB_ c) a b c 120pattern CaseFun_ a b c <- CaseFun__ _ a b c where CaseFun_ a b c = CaseFun__ (foldMap maxDB_ b <> maxDB_ c) a b c
@@ -184,12 +183,9 @@ pattern Succ n <- ConN "Succ" (n:_) where Succ n = tCon "Succ" 1 (TNat :~>
184 183
185pattern CstrT t a b = Neut (CstrT' t a b) 184pattern CstrT t a b = Neut (CstrT' t a b)
186pattern CstrT' t a b = TFun' "'EqCT" (TType :~> Var 0 :~> Var 1 :~> TType) [t, a, b] 185pattern CstrT' t a b = TFun' "'EqCT" (TType :~> Var 0 :~> Var 1 :~> TType) [t, a, b]
187--pattern ReflCstr x = TFun "reflCstr" (TType :~> CstrT TType (Var 0) (Var 0)) [x]
188pattern Coe a b w x = TFun "coe" (TType :~> TType :~> CstrT TType (Var 1) (Var 0) :~> Var 2 :~> Var 2) [a,b,w,x] 186pattern Coe a b w x = TFun "coe" (TType :~> TType :~> CstrT TType (Var 1) (Var 0) :~> Var 2 :~> Var 2) [a,b,w,x]
189pattern ParEval t a b = TFun "parEval" (TType :~> Var 0 :~> Var 1 :~> Var 2) [t, a, b] 187pattern ParEval t a b = TFun "parEval" (TType :~> Var 0 :~> Var 1 :~> Var 2) [t, a, b]
190pattern Undef t = TFun "undefined" (Pi Hidden TType (Var 0)) [t]
191pattern T2 a b = TFun "'T2" (TType :~> TType :~> TType) [a, b] 188pattern T2 a b = TFun "'T2" (TType :~> TType :~> TType) [a, b]
192pattern T2C a b = TFun "t2C" (Unit :~> Unit :~> Unit) [a, b]
193pattern CSplit a b c <- UFunN "'Split" [a, b, c] 189pattern CSplit a b c <- UFunN "'Split" [a, b, c]
194 190
195pattern EInt a = ELit (LInt a) 191pattern EInt a = ELit (LInt a)
@@ -243,7 +239,7 @@ trueExp = EBool True
243pattern LabelEnd x = Neut (LabelEnd_ x) 239pattern LabelEnd x = Neut (LabelEnd_ x)
244 240
245pmLabel' :: FunName -> Int -> [Exp] -> Exp -> Exp 241pmLabel' :: FunName -> Int -> [Exp] -> Exp -> Exp
246pmLabel' (FunName _ _) 0 as (Neut (Delta (SData f))) = f $ reverse as 242pmLabel' (FunName _ _ _) 0 as (Neut (Delta (SData f))) = f $ reverse as
247pmLabel' f i xs (unfixlabel -> Neut y) = Neut $ Fun f i xs y 243pmLabel' f i xs (unfixlabel -> Neut y) = Neut $ Fun f i xs y
248pmLabel' f i xs y = error $ "pmLabel: " ++ show (f, i, length xs, y) 244pmLabel' f i xs y = error $ "pmLabel: " ++ show (f, i, length xs, y)
249 245
@@ -259,6 +255,15 @@ numLams x = 0
259pattern FL' y <- Fun f 0 xs (LabelEnd_ y) 255pattern FL' y <- Fun f 0 xs (LabelEnd_ y)
260pattern FL y <- Neut (FL' y) 256pattern FL y <- Neut (FL' y)
261 257
258pattern Func n def ty xs <- (mkFunc -> Just (n, def, ty, xs))
259
260mkFunc (Neut (Fun (FunName n (Just def) ty) 0 xs LabelEnd_{})) | Just def' <- removeLams (length xs) def = Just (n, def', ty, xs)
261mkFunc _ = Nothing
262
263removeLams 0 (LabelEnd x) = Just x
264removeLams n (Lam x) | n > 0 = Lam <$> removeLams (n-1) x
265removeLams _ _ = Nothing
266
262unfixlabel (FL y) = unfixlabel y 267unfixlabel (FL y) = unfixlabel y
263unfixlabel a = a 268unfixlabel a = a
264 269
@@ -393,7 +398,7 @@ instance Up Neutral where
393 CaseFun__ c _ _ _ -> c 398 CaseFun__ c _ _ _ -> c
394 TyCaseFun__ c _ _ _ -> c 399 TyCaseFun__ c _ _ _ -> c
395 App__ c a b -> c 400 App__ c a b -> c
396 Fun_ c _ _ _ _ -> c 401 Fun_ c _ _ _ _ _ -> c
397 LabelEnd_ x -> maxDB_ x 402 LabelEnd_ x -> maxDB_ x
398 Delta{} -> mempty 403 Delta{} -> mempty
399 404
@@ -402,7 +407,7 @@ instance Up Neutral where
402 CaseFun__ _ a as n -> CaseFun__ mempty a (closedExp <$> as) (closedExp n) 407 CaseFun__ _ a as n -> CaseFun__ mempty a (closedExp <$> as) (closedExp n)
403 TyCaseFun__ _ a as n -> TyCaseFun__ mempty a (closedExp <$> as) (closedExp n) 408 TyCaseFun__ _ a as n -> TyCaseFun__ mempty a (closedExp <$> as) (closedExp n)
404 App__ _ a b -> App__ mempty (closedExp a) (closedExp b) 409 App__ _ a b -> App__ mempty (closedExp a) (closedExp b)
405 Fun_ _ f i x y -> Fun_ mempty f i (closedExp <$> x) y 410 Fun_ _ f l i x y -> Fun_ mempty f l i (closedExp <$> x) y
406 LabelEnd_ a -> LabelEnd_ (closedExp a) 411 LabelEnd_ a -> LabelEnd_ (closedExp a)
407 d@Delta{} -> d 412 d@Delta{} -> d
408 413
@@ -454,7 +459,7 @@ evalCoe a b t d = Coe a b t d
454getFunDef s f = case s of 459getFunDef s f = case s of
455 "unsafeCoerce" -> \case xs@[_, _, x] -> case x of x@FL{} -> x; Neut{} -> f xs; _ -> x 460 "unsafeCoerce" -> \case xs@[_, _, x] -> case x of x@FL{} -> x; Neut{} -> f xs; _ -> x
456 "'EqCT" -> \case [t, a, b] -> cstr t a b 461 "'EqCT" -> \case [t, a, b] -> cstr t a b
457 "reflCstr" -> \case [a] -> reflCstr a 462 "reflCstr" -> \case [a] -> TT
458 "coe" -> \case [a, b, t, d] -> evalCoe a b t d 463 "coe" -> \case [a, b, t, d] -> evalCoe a b t d
459 "'T2" -> \case [a, b] -> t2 a b 464 "'T2" -> \case [a, b] -> t2 a b
460 "t2C" -> \case [a, b] -> t2C a b 465 "t2C" -> \case [a, b] -> t2C a b
@@ -551,19 +556,8 @@ cstr = f []
551 556
552 isElemTy n = n `elem` ["'Bool", "'Float", "'Int"] 557 isElemTy n = n `elem` ["'Bool", "'Float", "'Int"]
553 558
554
555reflCstr = \case
556{-
557 Unit -> TT
558 TType -> TT -- ?
559 Con n xs -> foldl (t2C te{-todo: more precise env-}) TT $ map (reflCstr te{-todo: more precise env-}) xs
560 TyCon n xs -> foldl (t2C te{-todo: more precise env-}) TT $ map (reflCstr te{-todo: more precise env-}) xs
561 x -> {-error $ "reflCstr: " ++ show x-} ReflCstr x
562-}
563 x -> TT
564
565t2C (unfixlabel -> TT) (unfixlabel -> TT) = TT 559t2C (unfixlabel -> TT) (unfixlabel -> TT) = TT
566t2C a b = T2C a b 560t2C a b = TFun "t2C" (Unit :~> Unit :~> Unit) [a, b]
567 561
568t2 (unfixlabel -> Unit) a = a 562t2 (unfixlabel -> Unit) a = a
569t2 a (unfixlabel -> Unit) = a 563t2 a (unfixlabel -> Unit) = a
@@ -696,7 +690,7 @@ litType = \case
696 690
697class NType a where nType :: a -> Type 691class NType a where nType :: a -> Type
698 692
699instance NType FunName where nType (FunName _ t) = t 693instance NType FunName where nType (FunName _ _ t) = t
700instance NType TyConName where nType (TyConName _ _ t _ _) = t 694instance NType TyConName where nType (TyConName _ _ t _ _) = t
701instance NType CaseFunName where nType (CaseFunName _ t _) = t 695instance NType CaseFunName where nType (CaseFunName _ t _) = t
702instance NType TyCaseFunName where nType (TyCaseFunName _ t) = t 696instance NType TyCaseFunName where nType (TyCaseFunName _ t) = t
@@ -802,19 +796,22 @@ inferN_ tellTrace = infer where
802 checkN te x t = tellTrace "check" (showEnvSExpType te x t) $ checkN_ te x t 796 checkN te x t = tellTrace "check" (showEnvSExpType te x t) $ checkN_ te x t
803 797
804 checkN_ te e t 798 checkN_ te e t
805 -- temporal hack 799 | x@(SGlobal (si, MatchName n)) `SAppV` SLamV (Wildcard _) `SAppV` a `SAppV` SVar siv v `SAppV` b <- e
806 | x@(SGlobal (si, MatchName n)) `SAppV` SLamV (Wildcard_ siw _) `SAppV` a `SAppV` SVar siv v `SAppV` b <- e
807 = infer te $ x `SAppV` SLam Visible SType (STyped mempty (subst (v+1) (Var 0) $ up 1 t, TType)) `SAppV` a `SAppV` SVar siv v `SAppV` b 800 = infer te $ x `SAppV` SLam Visible SType (STyped mempty (subst (v+1) (Var 0) $ up 1 t, TType)) `SAppV` a `SAppV` SVar siv v `SAppV` b
808 -- temporal hack 801 -- temporal hack
809 | x@(SGlobal (si, "'NatCase")) `SAppV` SLamV (Wildcard_ siw _) `SAppV` a `SAppV` b `SAppV` SVar siv v <- e 802 | x@(SGlobal (si, "'NatCase")) `SAppV` SLamV (Wildcard _) `SAppV` a `SAppV` b `SAppV` SVar siv v <- e
810 = infer te $ x `SAppV` STyped mempty (Lam $ subst (v+1) (Var 0) $ up 1 t, TNat :~> TType) `SAppV` a `SAppV` b `SAppV` SVar siv v 803 = infer te $ x `SAppV` SLamV (STyped mempty (subst (v+1) (Var 0) $ up1_ (v+2) $ up 1 t, TType)) `SAppV` a `SAppV` b `SAppV` SVar siv v
804 -- temporal hack
805 | x@(SGlobal (si, "'VecSCase")) `SAppV` SLamV (SLamV (Wildcard _)) `SAppV` a `SAppV` b `SAppV` c `SAppV` SVar siv v <- e
806 , TVec (Var n') _ <- snd $ varType "xx" v te
807 = infer te $ x `SAppV` SLamV (SLamV (STyped mempty (subst (n'+2) (Var 1) $ up1_ (n'+3) $ up 2 t, TType))) `SAppV` a `SAppV` b `SAppV` c `SAppV` SVar siv v
808
811{- 809{-
812 -- temporal hack 810 -- temporal hack
813 | x@(SGlobal "'VecSCase") `SAppV` SLamV (SLamV (Wildcard _)) `SAppV` a `SAppV` b `SAppV` c `SAppV` SVar v <- e 811 | x@(SGlobal (si, "'HListCase")) `SAppV` SLamV (SLamV (Wildcard _)) `SAppV` a `SAppV` b `SAppV` SVar siv v <- e
814 = infer te $ x `SAppV` (SLamV (SLamV (STyped (subst (v+1) (Var 0) $ up 2 t, TType)))) `SAppV` a `SAppV` b `SAppV` c `SAppV` SVar v 812 , TVec (Var n') _ <- snd $ varType "xx" v te
813 = infer te $ x `SAppV` SLamV (SLamV (STyped mempty (subst (n'+2) (Var 1) $ up1_ (n'+3) $ up 2 t, TType))) `SAppV` a `SAppV` b `SAppV` SVar siv v
815-} 814-}
816 -- temporal hack
817 | SGlobal (si, "undefined") <- e = focus_' te e (Undef t, t)
818 | SLabelEnd x <- e = checkN (ELabelEnd te) x t 815 | SLabelEnd x <- e = checkN (ELabelEnd te) x t
819 | SApp si h a b <- e = infer (CheckAppType si h t te b) a 816 | SApp si h a b <- e = infer (CheckAppType si h t te b) a
820 | SLam h a b <- e, Pi h' x y <- t, h == h' = do 817 | SLam h a b <- e, Pi h' x y <- t, h == h' = do
@@ -1143,7 +1140,7 @@ handleStmt defs = \case
1143 Primitive n mf (trSExp' -> t_) -> do 1140 Primitive n mf (trSExp' -> t_) -> do
1144 t <- inferType =<< ($ t_) <$> addF 1141 t <- inferType =<< ($ t_) <$> addF
1145 tellType (fst n) t 1142 tellType (fst n) t
1146 addToEnv n mf $ flip (,) t $ lamify t $ Neut . DFun_ (FunName (snd n) t) 1143 addToEnv n mf $ flip (,) t $ lamify t $ Neut . DFun_ (FunName (snd n) Nothing t)
1147 Let n mf mt t_ -> do 1144 Let n mf mt t_ -> do
1148 af <- addF 1145 af <- addF
1149 let t__ = maybe id (flip SAnn . af) mt t_ 1146 let t__ = maybe id (flip SAnn . af) mt t_
@@ -1224,7 +1221,7 @@ withEnv e = local $ second (<> e)
1224mkELet (False, n) x xt = x 1221mkELet (False, n) x xt = x
1225mkELet (True, n) x xt = term 1222mkELet (True, n) x xt = term
1226 where 1223 where
1227 fn = FunName (snd n) xt 1224 fn = FunName (snd n) (Just x) xt
1228 1225
1229 term = pmLabel fn 0 [] $ getFix x 0 1226 term = pmLabel fn 0 [] $ getFix x 0
1230 1227
diff --git a/src/LambdaCube/Compiler/Parser.hs b/src/LambdaCube/Compiler/Parser.hs
index aa9efe28..1bdf19f2 100644
--- a/src/LambdaCube/Compiler/Parser.hs
+++ b/src/LambdaCube/Compiler/Parser.hs
@@ -280,6 +280,9 @@ instance Up Void where
280 280
281instance Up a => Up (SExp' a) where 281instance Up a => Up (SExp' a) where
282 up_ n = mapS' (\sn j i -> SVar sn $ if j < i then j else j+n) (+1) 282 up_ n = mapS' (\sn j i -> SVar sn $ if j < i then j else j+n) (+1)
283 where
284 mapS' = mapS__ (\i si x -> STyped si $ up_ n i x) (const . SGlobal)
285
283 fold f = foldS (\i si x -> fold f i x) mempty $ \sn j i -> f j i 286 fold f = foldS (\i si x -> fold f i x) mempty $ \sn j i -> f j i
284 maxDB_ _ = error "maxDB @SExp" 287 maxDB_ _ = error "maxDB @SExp"
285 288
diff --git a/testdata/Builtins.out b/testdata/Builtins.out
index 7095f606..c6f9e143 100644
--- a/testdata/Builtins.out
+++ b/testdata/Builtins.out
@@ -32,7 +32,7 @@ Sz :: 'Swizz
32Sw :: 'Swizz 32Sw :: 'Swizz
33'SwizzCase :: (b : 'Swizz->Type) -> b Sx -> b Sy -> b Sz -> b Sw -> g:'Swizz -> b g 33'SwizzCase :: (b : 'Swizz->Type) -> b Sx -> b Sy -> b Sz -> b Sw -> g:'Swizz -> b g
34match'Swizz :: (b : Type->Type) -> b 'Swizz -> d:Type -> b d -> b d 34match'Swizz :: (b : Type->Type) -> b 'Swizz -> d:Type -> b d -> b d
35mapVec :: {a} -> {b} -> {c:'Nat} -> a->b -> 'Vec c a -> 'Vec c b 35mapVec :: {a} -> {b} -> {c:'Nat} -> a->b -> 'VecS a c -> 'VecS b c
36swizzscalar :: {a} -> {b:'Nat} -> 'Vec b a -> 'Swizz->a 36swizzscalar :: {a} -> {b:'Nat} -> 'Vec b a -> 'Swizz->a
37definedVec :: {a} -> {b:'Nat} -> 'Vec b a -> 'Bool 37definedVec :: {a} -> {b:'Nat} -> 'Vec b a -> 'Bool
38swizzvector :: {a} -> {b:'Nat} -> {c:'Nat} -> 'Vec b a -> 'Vec c 'Swizz -> 'VecS a c 38swizzvector :: {a} -> {b:'Nat} -> {c:'Nat} -> 'Vec b a -> 'Vec c 'Swizz -> 'VecS a c
@@ -759,1512 +759,1590 @@ testdata/Builtins.lc 54:14-54:16 Swizz
759testdata/Builtins.lc 54:19-54:21 Swizz 759testdata/Builtins.lc 54:19-54:21 Swizz
760testdata/Builtins.lc 54:24-54:26 Swizz 760testdata/Builtins.lc 54:24-54:26 Swizz
761testdata/Builtins.lc 54:29-54:31 Swizz 761testdata/Builtins.lc 54:29-54:31 Swizz
762testdata/Builtins.lc 57:26-57:56 Type 762testdata/Builtins.lc 56:11-56:43 Type
763testdata/Builtins.lc 57:27-57:28 V5 763testdata/Builtins.lc 56:12-56:13 V5
764testdata/Builtins.lc 57:32-57:33 Type | V4 764testdata/Builtins.lc 56:17-56:18 Type | V4
765testdata/Builtins.lc 57:38-57:41 Nat -> Type->Type 765testdata/Builtins.lc 56:23-56:27 Type -> Nat->Type
766testdata/Builtins.lc 57:38-57:43 Type->Type 766testdata/Builtins.lc 56:23-56:29 Nat->Type
767testdata/Builtins.lc 57:38-57:45 Type 767testdata/Builtins.lc 56:23-56:31 Type
768testdata/Builtins.lc 57:38-57:56 Type 768testdata/Builtins.lc 56:23-56:43 Type
769testdata/Builtins.lc 57:42-57:43 V2 769testdata/Builtins.lc 56:28-56:29 Type
770testdata/Builtins.lc 57:44-57:45 Type 770testdata/Builtins.lc 56:30-56:31 V2
771testdata/Builtins.lc 57:49-57:52 Nat -> Type->Type 771testdata/Builtins.lc 56:35-56:39 Type -> Nat->Type
772testdata/Builtins.lc 57:49-57:54 Type->Type 772testdata/Builtins.lc 56:35-56:41 Nat->Type
773testdata/Builtins.lc 57:49-57:56 Type 773testdata/Builtins.lc 56:35-56:43 Type
774testdata/Builtins.lc 57:53-57:54 Nat 774testdata/Builtins.lc 56:40-56:41 Type
775testdata/Builtins.lc 57:55-57:56 Type 775testdata/Builtins.lc 56:42-56:43 Nat
776testdata/Builtins.lc 58:1-58:7 {a} -> {b} -> {c:Nat} -> a->b -> Vec c a -> Vec c b 776testdata/Builtins.lc 57:1-57:7 {a} -> {b} -> {c:Nat} -> a->b -> VecS a c -> VecS b c
777testdata/Builtins.lc 58:23-58:32 {a} -> (d : b:Nat -> VecS a b -> Type) -> (e:a -> f:a -> d 2 ('V2 e f)) -> (h:a -> i:a -> j:a -> d 3 ('V3 h i j)) -> (l:a -> m:a -> n:a -> o:a -> d 4 ('V4 l m n o)) -> {q:Nat} -> (r : VecS a q) -> d q r 777testdata/Builtins.lc 57:14-57:17 VecS V5 V3
778testdata/Builtins.lc 58:23-58:51 (V0 -> V1 -> Vec 2 V6) -> (V1 -> V2 -> V3 -> Vec 3 V8) -> (V2 -> V3 -> V4 -> V5 -> Vec 4 V10) -> {m:Nat} -> VecS V4 m -> Vec m V9 778testdata/Builtins.lc 57:14-59:51 V2->V2 -> VecS V3 V1 -> VecS V3 V2 | VecS V3 V1 -> VecS V3 V2 | VecS V3 V2
779testdata/Builtins.lc 58:23-59:29 (V4 -> V5 -> V6 -> Vec 3 V6) -> (V5 -> V6 -> V7 -> V8 -> Vec 4 V8) -> {j:Nat} -> VecS V7 j -> Vec j V7 779testdata/Builtins.lc 57:21-57:23 {a} -> a -> a -> VecS a 2
780testdata/Builtins.lc 58:23-60:37 (V4 -> V5 -> V6 -> V7 -> Vec 4 V7) -> {f:Nat} -> VecS V6 f -> Vec f V6 780testdata/Builtins.lc 57:21-57:29 V5 -> VecS V6 2
781testdata/Builtins.lc 58:23-61:45 {a:Nat} -> VecS V5 a -> Vec a V5 781testdata/Builtins.lc 57:21-57:35 V0 -> V1 -> VecS V6 2 | V1 -> VecS V6 2 | VecS V5 2
782testdata/Builtins.lc 58:23-62:7 VecS V4 V2 -> Vec V3 V4 782testdata/Builtins.lc 57:21-58:43 (V4 -> V5 -> V6 -> V7 -> VecS V7 4) -> {f:Nat} -> VecS V6 f -> VecS V6 f
783testdata/Builtins.lc 58:23-63:6 V2->V2 -> Vec V1 V3 -> Vec V2 V3 | Vec V1 V3 -> Vec V2 V3 | Vec V2 V3 | {a:Nat} -> V2->V2 -> Vec a V3 -> Vec a V3 | {a} -> {b:Nat} -> V2->a -> Vec b V3 -> Vec b a | {a} -> {b} -> {c:Nat} -> a->b -> Vec c a -> Vec c b 783testdata/Builtins.lc 57:21-59:51 {a:Nat} -> VecS V5 a -> VecS V5 a
784testdata/Builtins.lc 58:33-58:51 a:Nat -> VecS V1 a -> Type 784testdata/Builtins.lc 57:24-57:29 V5
785testdata/Builtins.lc 58:42-58:46 Nat -> Type->Type 785testdata/Builtins.lc 57:25-57:26 V8->V8
786testdata/Builtins.lc 58:42-58:48 Type->Type 786testdata/Builtins.lc 57:27-57:28 V2
787testdata/Builtins.lc 58:42-58:50 Type | VecS V1 V0 -> Type 787testdata/Builtins.lc 57:30-57:35 V5
788testdata/Builtins.lc 58:47-58:48 Nat 788testdata/Builtins.lc 57:31-57:32 V6->V6
789testdata/Builtins.lc 58:49-58:50 Type 789testdata/Builtins.lc 57:33-57:34 V6
790testdata/Builtins.lc 59:5-59:29 V0 -> V1 -> Vec 2 V6 790testdata/Builtins.lc 58:23-58:25 {a} -> a -> a -> a -> VecS a 3
791testdata/Builtins.lc 59:14-59:16 {a} -> a -> a -> VecS a 2 791testdata/Builtins.lc 58:23-58:31 V6 -> V7 -> VecS V8 3
792testdata/Builtins.lc 59:14-59:22 V5 -> VecS V6 2 792testdata/Builtins.lc 58:23-58:37 V6 -> VecS V7 3
793testdata/Builtins.lc 59:14-59:28 V1 -> Vec 2 V6 | VecS V5 2 793testdata/Builtins.lc 58:23-58:43 V4 -> V5 -> V6 -> VecS V6 3 | V5 -> V6 -> VecS V6 3 | V6 -> VecS V6 3 | VecS V6 3
794testdata/Builtins.lc 59:17-59:22 V5 794testdata/Builtins.lc 58:26-58:31 V6
795testdata/Builtins.lc 59:18-59:19 V8->V8 795testdata/Builtins.lc 58:27-58:28 V8->V8
796testdata/Builtins.lc 59:20-59:21 V2 796testdata/Builtins.lc 58:29-58:30 V7
797testdata/Builtins.lc 59:23-59:28 V5 797testdata/Builtins.lc 58:32-58:37 V6
798testdata/Builtins.lc 59:24-59:25 V6->V6 798testdata/Builtins.lc 58:33-58:34 V7->V7
799testdata/Builtins.lc 59:26-59:27 V6 799testdata/Builtins.lc 58:35-58:36 V7
800testdata/Builtins.lc 60:5-60:37 V4 -> V5 -> V6 -> Vec 3 V6 800testdata/Builtins.lc 58:38-58:43 V6
801testdata/Builtins.lc 60:16-60:18 {a} -> a -> a -> a -> VecS a 3 801testdata/Builtins.lc 58:39-58:40 V7->V7
802testdata/Builtins.lc 60:16-60:24 V6 -> V7 -> VecS V8 3 802testdata/Builtins.lc 58:41-58:42 V7
803testdata/Builtins.lc 60:16-60:30 V6 -> VecS V7 3 803testdata/Builtins.lc 59:25-59:27 {a} -> a -> a -> a -> a -> VecS a 4
804testdata/Builtins.lc 60:16-60:36 V5 -> V6 -> Vec 3 V6 | V6 -> Vec 3 V6 | VecS V6 3 804testdata/Builtins.lc 59:25-59:33 V7 -> V8 -> V9 -> VecS V10 4
805testdata/Builtins.lc 60:19-60:24 V6 805testdata/Builtins.lc 59:25-59:39 V7 -> V8 -> VecS V9 4
806testdata/Builtins.lc 60:20-60:21 V8->V8 806testdata/Builtins.lc 59:25-59:45 V7 -> VecS V8 4
807testdata/Builtins.lc 60:22-60:23 V7 807testdata/Builtins.lc 59:25-59:51 V4 -> V5 -> V6 -> V7 -> VecS V7 4 | V5 -> V6 -> V7 -> VecS V7 4 | V6 -> V7 -> VecS V7 4 | V7 -> VecS V7 4 | VecS V7 4
808testdata/Builtins.lc 60:25-60:30 V6 808testdata/Builtins.lc 59:28-59:33 V7
809testdata/Builtins.lc 60:26-60:27 V7->V7 809testdata/Builtins.lc 59:29-59:30 V9->V9
810testdata/Builtins.lc 60:28-60:29 V7 810testdata/Builtins.lc 59:31-59:32 V8
811testdata/Builtins.lc 60:31-60:36 V6 811testdata/Builtins.lc 59:34-59:39 V7
812testdata/Builtins.lc 60:32-60:33 V7->V7 812testdata/Builtins.lc 59:35-59:36 V8->V8
813testdata/Builtins.lc 60:34-60:35 V7 813testdata/Builtins.lc 59:37-59:38 V8
814testdata/Builtins.lc 61:5-61:45 V4 -> V5 -> V6 -> V7 -> Vec 4 V7 814testdata/Builtins.lc 59:40-59:45 V7
815testdata/Builtins.lc 61:18-61:20 {a} -> a -> a -> a -> a -> VecS a 4 815testdata/Builtins.lc 59:41-59:42 V8->V8
816testdata/Builtins.lc 61:18-61:26 V7 -> V8 -> V9 -> VecS V10 4 816testdata/Builtins.lc 59:43-59:44 V8
817testdata/Builtins.lc 61:18-61:32 V7 -> V8 -> VecS V9 4 817testdata/Builtins.lc 59:46-59:51 V7
818testdata/Builtins.lc 61:18-61:38 V7 -> VecS V8 4 818testdata/Builtins.lc 59:47-59:48 V8->V8
819testdata/Builtins.lc 61:18-61:44 V5 -> V6 -> V7 -> Vec 4 V7 | V6 -> V7 -> Vec 4 V7 | V7 -> Vec 4 V7 | VecS V7 4 819testdata/Builtins.lc 59:49-59:50 V8
820testdata/Builtins.lc 61:21-61:26 V7 820testdata/Builtins.lc 62:16-62:48 Type
821testdata/Builtins.lc 61:22-61:23 V9->V9 821testdata/Builtins.lc 62:27-62:30 Nat -> Type->Type
822testdata/Builtins.lc 61:24-61:25 V8 822testdata/Builtins.lc 62:27-62:32 Type->Type
823testdata/Builtins.lc 61:27-61:32 V7 823testdata/Builtins.lc 62:27-62:34 Type
824testdata/Builtins.lc 61:28-61:29 V8->V8 824testdata/Builtins.lc 62:27-62:48 Type
825testdata/Builtins.lc 61:30-61:31 V8 825testdata/Builtins.lc 62:31-62:32 V1
826testdata/Builtins.lc 61:33-61:38 V7 826testdata/Builtins.lc 62:33-62:34 V2
827testdata/Builtins.lc 61:34-61:35 V8->V8 827testdata/Builtins.lc 62:38-62:43 Type
828testdata/Builtins.lc 61:36-61:37 V8 828testdata/Builtins.lc 62:38-62:48 Type
829testdata/Builtins.lc 61:39-61:44 V7 829testdata/Builtins.lc 62:47-62:48 Type
830testdata/Builtins.lc 61:40-61:41 V8->V8 830testdata/Builtins.lc 63:1-63:12 {a} -> {b:Nat} -> Vec b a -> Swizz->a
831testdata/Builtins.lc 61:42-61:43 V8 831testdata/Builtins.lc 63:17-63:20 Vec V4 V5
832testdata/Builtins.lc 62:6-62:7 Nat 832testdata/Builtins.lc 63:17-71:32 Swizz->V3 | V3 | Vec V0 V1 -> Swizz->V3
833testdata/Builtins.lc 63:5-63:6 Vec V2 V4 833testdata/Builtins.lc 63:22-63:24 Swizz
834testdata/Builtins.lc 66:16-66:48 Type 834testdata/Builtins.lc 63:22-64:28 V1 -> V2->V2 | V2 | V2->V2
835testdata/Builtins.lc 66:27-66:30 Nat -> Type->Type 835testdata/Builtins.lc 63:22-67:30 (V0 -> V1 -> V2 -> V3->V4) -> {f:Nat} -> VecS V2 f -> V3
836testdata/Builtins.lc 66:27-66:32 Type->Type 836testdata/Builtins.lc 63:22-71:32 {a:Nat} -> VecS V1 a -> V2
837testdata/Builtins.lc 66:27-66:34 Type 837testdata/Builtins.lc 63:27-63:28 V4
838testdata/Builtins.lc 66:27-66:48 Type 838testdata/Builtins.lc 63:27-64:28 V3 -> V4 -> Swizz->V6
839testdata/Builtins.lc 66:31-66:32 V1 839testdata/Builtins.lc 64:27-64:28 V3
840testdata/Builtins.lc 66:33-66:34 V2 840testdata/Builtins.lc 65:24-65:26 Swizz
841testdata/Builtins.lc 66:38-66:43 Type 841testdata/Builtins.lc 65:24-67:30 V0 -> V1 -> V2->V3 | V1 -> V2->V3 | V2->V3 | V3
842testdata/Builtins.lc 66:38-66:48 Type 842testdata/Builtins.lc 65:29-65:30 V4
843testdata/Builtins.lc 66:47-66:48 Type 843testdata/Builtins.lc 65:29-66:30 V3 -> V4 -> Swizz->V6
844testdata/Builtins.lc 67:1-67:12 {a} -> {b:Nat} -> Vec b a -> Swizz->a 844testdata/Builtins.lc 65:29-67:30 V3 -> Swizz->V5
845testdata/Builtins.lc 67:17-67:20 Vec V4 V5 845testdata/Builtins.lc 66:29-66:30 V3
846testdata/Builtins.lc 67:17-75:32 Swizz->V3 | V3 | Vec V0 V1 -> Swizz->V3 846testdata/Builtins.lc 67:29-67:30 V3
847testdata/Builtins.lc 67:22-67:24 Swizz 847testdata/Builtins.lc 68:26-68:28 Swizz
848testdata/Builtins.lc 67:22-68:28 V1 -> V2->V2 | V2 | V2->V2 848testdata/Builtins.lc 68:26-71:32 V0 -> V1 -> V2 -> V3->V4 | V1 -> V2 -> V3->V4 | V2 -> V3->V4 | V3->V4 | V4
849testdata/Builtins.lc 67:22-71:30 (V0 -> V1 -> V2 -> V3->V4) -> {f:Nat} -> VecS V2 f -> V3 849testdata/Builtins.lc 68:31-68:32 V5
850testdata/Builtins.lc 67:22-75:32 {a:Nat} -> VecS V1 a -> V2 850testdata/Builtins.lc 68:31-69:32 V4 -> V5 -> Swizz->V7
851testdata/Builtins.lc 67:27-67:28 V4 851testdata/Builtins.lc 68:31-70:32 V4 -> Swizz->V6
852testdata/Builtins.lc 67:27-68:28 V3 -> V4 -> Swizz->V6 852testdata/Builtins.lc 68:31-71:32 Swizz->V5
853testdata/Builtins.lc 68:27-68:28 V3 853testdata/Builtins.lc 69:31-69:32 V4
854testdata/Builtins.lc 69:24-69:26 Swizz 854testdata/Builtins.lc 70:31-70:32 V4
855testdata/Builtins.lc 69:24-71:30 V0 -> V1 -> V2->V3 | V1 -> V2->V3 | V2->V3 | V3 855testdata/Builtins.lc 71:31-71:32 V4
856testdata/Builtins.lc 69:29-69:30 V4 856testdata/Builtins.lc 74:28-74:31 Nat -> Type->Type
857testdata/Builtins.lc 69:29-70:30 V3 -> V4 -> Swizz->V6 857testdata/Builtins.lc 74:28-74:33 Type->Type
858testdata/Builtins.lc 69:29-71:30 V3 -> Swizz->V5 858testdata/Builtins.lc 74:28-74:35 Type
859testdata/Builtins.lc 70:29-70:30 V3 859testdata/Builtins.lc 74:28-74:43 Type
860testdata/Builtins.lc 71:29-71:30 V3 860testdata/Builtins.lc 74:32-74:33 V1
861testdata/Builtins.lc 72:26-72:28 Swizz 861testdata/Builtins.lc 74:34-74:35 V2
862testdata/Builtins.lc 72:26-75:32 V0 -> V1 -> V2 -> V3->V4 | V1 -> V2 -> V3->V4 | V2 -> V3->V4 | V3->V4 | V4 862testdata/Builtins.lc 74:39-74:43 Type
863testdata/Builtins.lc 72:31-72:32 V5 863testdata/Builtins.lc 75:1-75:11 {a} -> {b:Nat} -> Vec b a -> Bool
864testdata/Builtins.lc 72:31-73:32 V4 -> V5 -> Swizz->V7 864testdata/Builtins.lc 75:16-75:19 Vec V3 V4
865testdata/Builtins.lc 72:31-74:32 V4 -> Swizz->V6 865testdata/Builtins.lc 75:16-77:31 Bool | Vec V0 V1 -> Bool
866testdata/Builtins.lc 72:31-75:32 Swizz->V5 866testdata/Builtins.lc 75:23-75:27 Bool | V1 -> V2->V2 | V2->V2
867testdata/Builtins.lc 73:31-73:32 V4 867testdata/Builtins.lc 75:23-76:29 (V0 -> V1 -> V2 -> V3->Bool) -> {f:Nat} -> VecS V2 f -> Bool
868testdata/Builtins.lc 74:31-74:32 V4 868testdata/Builtins.lc 75:23-77:31 {a:Nat} -> VecS V1 a -> Bool
869testdata/Builtins.lc 75:31-75:32 V4 869testdata/Builtins.lc 76:25-76:29 Bool | V0 -> V1 -> V2->Bool | V1 -> V2->Bool | V2->Bool
870testdata/Builtins.lc 78:28-78:31 Nat -> Type->Type 870testdata/Builtins.lc 77:27-77:31 Bool | V0 -> V1 -> V2 -> V3->Bool | V1 -> V2 -> V3->Bool | V2 -> V3->Bool | V3->Bool
871testdata/Builtins.lc 78:28-78:33 Type->Type 871testdata/Builtins.lc 79:16-79:71 Type
872testdata/Builtins.lc 78:28-78:35 Type 872testdata/Builtins.lc 79:27-79:71 Type
873testdata/Builtins.lc 78:28-78:43 Type 873testdata/Builtins.lc 79:38-79:41 Nat -> Type->Type
874testdata/Builtins.lc 78:32-78:33 V1 874testdata/Builtins.lc 79:38-79:43 Type->Type
875testdata/Builtins.lc 78:34-78:35 V2 875testdata/Builtins.lc 79:38-79:45 Type
876testdata/Builtins.lc 78:39-78:43 Type 876testdata/Builtins.lc 79:38-79:71 Type
877testdata/Builtins.lc 79:1-79:11 {a} -> {b:Nat} -> Vec b a -> Bool 877testdata/Builtins.lc 79:42-79:43 V3
878testdata/Builtins.lc 79:16-79:19 Vec V3 V4 878testdata/Builtins.lc 79:44-79:45 V4
879testdata/Builtins.lc 79:16-81:31 Bool | Vec V0 V1 -> Bool 879testdata/Builtins.lc 79:49-79:52 Nat -> Type->Type
880testdata/Builtins.lc 79:23-79:27 Bool | V1 -> V2->V2 | V2->V2 880testdata/Builtins.lc 79:49-79:54 Type->Type
881testdata/Builtins.lc 79:23-80:29 (V0 -> V1 -> V2 -> V3->Bool) -> {f:Nat} -> VecS V2 f -> Bool 881testdata/Builtins.lc 79:49-79:60 Type
882testdata/Builtins.lc 79:23-81:31 {a:Nat} -> VecS V1 a -> Bool 882testdata/Builtins.lc 79:49-79:71 Type
883testdata/Builtins.lc 80:25-80:29 Bool | V0 -> V1 -> V2->Bool | V1 -> V2->Bool | V2->Bool 883testdata/Builtins.lc 79:53-79:54 V2
884testdata/Builtins.lc 81:27-81:31 Bool | V0 -> V1 -> V2 -> V3->Bool | V1 -> V2 -> V3->Bool | V2 -> V3->Bool | V3->Bool 884testdata/Builtins.lc 79:55-79:60 Type
885testdata/Builtins.lc 83:16-83:71 Type 885testdata/Builtins.lc 79:64-79:67 Nat -> Type->Type
886testdata/Builtins.lc 83:27-83:71 Type 886testdata/Builtins.lc 79:64-79:69 Type->Type
887testdata/Builtins.lc 83:38-83:41 Nat -> Type->Type 887testdata/Builtins.lc 79:64-79:71 Type
888testdata/Builtins.lc 83:38-83:43 Type->Type 888testdata/Builtins.lc 79:68-79:69 Nat
889testdata/Builtins.lc 83:38-83:45 Type 889testdata/Builtins.lc 79:70-79:71 Type
890testdata/Builtins.lc 83:38-83:71 Type 890testdata/Builtins.lc 80:1-80:12 {a} -> {b:Nat} -> {c:Nat} -> Vec b a -> Vec c Swizz -> VecS a c
891testdata/Builtins.lc 83:42-83:43 V3 891testdata/Builtins.lc 80:19-80:29 {a} -> {b:Nat} -> Vec b a -> Bool
892testdata/Builtins.lc 83:44-83:45 V4 892testdata/Builtins.lc 80:19-80:31 Bool
893testdata/Builtins.lc 83:49-83:52 Nat -> Type->Type 893testdata/Builtins.lc 80:19-80:58 Vec V1 Swizz -> Vec V2 V4 | Vec V1 V2 -> Vec V1 Swizz -> Vec V2 V4 | VecS V4 V2
894testdata/Builtins.lc 83:49-83:54 Type->Type 894testdata/Builtins.lc 80:30-80:31 Vec V5 V6
895testdata/Builtins.lc 83:49-83:60 Type 895testdata/Builtins.lc 80:34-80:40 {a} -> {b} -> {c:Nat} -> a->b -> VecS a c -> VecS b c
896testdata/Builtins.lc 83:49-83:71 Type 896testdata/Builtins.lc 80:34-80:56 VecS Swizz V0 -> VecS V7 V1
897testdata/Builtins.lc 83:53-83:54 V2 897testdata/Builtins.lc 80:34-80:58 VecS V4 V2
898testdata/Builtins.lc 83:55-83:60 Type 898testdata/Builtins.lc 80:41-80:56 Swizz->V9
899testdata/Builtins.lc 83:64-83:67 Nat -> Type->Type 899testdata/Builtins.lc 80:42-80:53 {a} -> {b:Nat} -> Vec b a -> Swizz->a
900testdata/Builtins.lc 83:64-83:69 Type->Type 900testdata/Builtins.lc 80:54-80:55 Vec V9 V10
901testdata/Builtins.lc 83:64-83:71 Type 901testdata/Builtins.lc 80:57-80:58 Vec V3 Swizz
902testdata/Builtins.lc 83:68-83:69 Nat 902testdata/Builtins.lc 85:7-85:13 Type->Type
903testdata/Builtins.lc 83:70-83:71 Type 903testdata/Builtins.lc 87:25-87:28 Type
904testdata/Builtins.lc 84:1-84:12 {a} -> {b:Nat} -> {c:Nat} -> Vec b a -> Vec c Swizz -> VecS a c 904testdata/Builtins.lc 87:25-88:30 Type | Type->Type
905testdata/Builtins.lc 84:19-84:29 {a} -> {b:Nat} -> Vec b a -> Bool 905testdata/Builtins.lc 88:25-88:30 Type
906testdata/Builtins.lc 84:19-84:31 Bool 906testdata/Builtins.lc 90:7-90:16 Type->Type
907testdata/Builtins.lc 84:19-84:58 Vec V1 Swizz -> Vec V2 V4 | Vec V1 V2 -> Vec V1 Swizz -> Vec V2 V4 | VecS V4 V2 907testdata/Builtins.lc 90:7-91:16 Type
908testdata/Builtins.lc 84:30-84:31 Vec V5 V6 908testdata/Builtins.lc 90:7-92:15 Type
909testdata/Builtins.lc 84:34-84:40 {a} -> {b} -> {c:Nat} -> a->b -> Vec c a -> Vec c b 909testdata/Builtins.lc 91:3-91:11 {a} -> {b : Component a}->a
910testdata/Builtins.lc 84:34-84:56 Vec V0 Swizz -> Vec V1 V7 910testdata/Builtins.lc 91:15-91:16 Type
911testdata/Builtins.lc 84:34-84:58 Vec V2 V4 911testdata/Builtins.lc 92:3-92:10 {a} -> {b : Component a}->a
912testdata/Builtins.lc 84:41-84:56 Swizz->V9 912testdata/Builtins.lc 92:14-92:15 Type
913testdata/Builtins.lc 84:42-84:53 {a} -> {b:Nat} -> Vec b a -> Swizz->a 913testdata/Builtins.lc 94:20-94:23 Type
914testdata/Builtins.lc 84:54-84:55 Vec V9 V10 914testdata/Builtins.lc 94:20-95:22 V1->V2
915testdata/Builtins.lc 84:57-84:58 Vec V3 Swizz 915testdata/Builtins.lc 94:20-96:21 V1->V2
916testdata/Builtins.lc 89:7-89:13 Type->Type 916testdata/Builtins.lc 94:20-112:24 Type | Type->Type
917testdata/Builtins.lc 91:25-91:28 Type 917testdata/Builtins.lc 94:20-122:40 V1 | {a : Component V0}->V1 | {a} -> {b : Component a}->a
918testdata/Builtins.lc 91:25-92:30 Type | Type->Type 918testdata/Builtins.lc 94:20-123:35 V1 | {a : Component V0}->V1 | {a} -> {b : Component a}->a
919testdata/Builtins.lc 92:25-92:30 Type 919testdata/Builtins.lc 95:14-95:15 V1
920testdata/Builtins.lc 94:7-94:16 Type->Type 920testdata/Builtins.lc 95:14-95:22 Int
921testdata/Builtins.lc 94:7-95:16 Type 921testdata/Builtins.lc 95:19-95:22 Type
922testdata/Builtins.lc 94:7-96:15 Type 922testdata/Builtins.lc 96:13-96:14 V1
923testdata/Builtins.lc 95:3-95:11 {a} -> {b : Component a}->a 923testdata/Builtins.lc 96:13-96:21 Int
924testdata/Builtins.lc 95:15-95:16 Type 924testdata/Builtins.lc 96:18-96:21 Type
925testdata/Builtins.lc 96:3-96:10 {a} -> {b : Component a}->a 925testdata/Builtins.lc 97:20-97:24 Type
926testdata/Builtins.lc 96:14-96:15 Type 926testdata/Builtins.lc 97:20-98:23 V1->V2
927testdata/Builtins.lc 98:20-98:23 Type 927testdata/Builtins.lc 97:20-99:22 V1->V2
928testdata/Builtins.lc 98:20-99:22 V1->V2 928testdata/Builtins.lc 97:20-112:24 Type
929testdata/Builtins.lc 98:20-100:21 V1->V2 929testdata/Builtins.lc 97:20-122:40 V1
930testdata/Builtins.lc 98:20-116:24 Type | Type->Type 930testdata/Builtins.lc 97:20-123:35 V1
931testdata/Builtins.lc 98:20-126:40 V1 | {a : Component V0}->V1 | {a} -> {b : Component a}->a 931testdata/Builtins.lc 98:14-98:15 V1
932testdata/Builtins.lc 98:20-127:35 V1 | {a : Component V0}->V1 | {a} -> {b : Component a}->a 932testdata/Builtins.lc 98:14-98:23 Word
933testdata/Builtins.lc 99:14-99:15 V1 933testdata/Builtins.lc 98:19-98:23 Type
934testdata/Builtins.lc 99:14-99:22 Int 934testdata/Builtins.lc 99:13-99:14 V1
935testdata/Builtins.lc 99:19-99:22 Type 935testdata/Builtins.lc 99:13-99:22 Word
936testdata/Builtins.lc 100:13-100:14 V1 936testdata/Builtins.lc 99:18-99:22 Type
937testdata/Builtins.lc 100:13-100:21 Int 937testdata/Builtins.lc 100:20-100:25 Type
938testdata/Builtins.lc 100:18-100:21 Type 938testdata/Builtins.lc 100:20-101:17 V1->V2
939testdata/Builtins.lc 101:20-101:24 Type 939testdata/Builtins.lc 100:20-102:16 V1->V2
940testdata/Builtins.lc 101:20-102:23 V1->V2 940testdata/Builtins.lc 100:20-112:24 Type
941testdata/Builtins.lc 101:20-103:22 V1->V2 941testdata/Builtins.lc 100:20-122:40 V1
942testdata/Builtins.lc 101:20-116:24 Type 942testdata/Builtins.lc 100:20-123:35 V1
943testdata/Builtins.lc 101:20-126:40 V1 943testdata/Builtins.lc 101:14-101:17 Float
944testdata/Builtins.lc 101:20-127:35 V1 944testdata/Builtins.lc 102:13-102:16 Float
945testdata/Builtins.lc 102:14-102:15 V1 945testdata/Builtins.lc 103:26-103:31 Type
946testdata/Builtins.lc 102:14-102:23 Word 946testdata/Builtins.lc 103:26-112:24 Type
947testdata/Builtins.lc 102:19-102:23 Type 947testdata/Builtins.lc 103:26-122:40 V1->V2
948testdata/Builtins.lc 103:13-103:14 V1 948testdata/Builtins.lc 103:26-123:35 V1->V2
949testdata/Builtins.lc 103:13-103:22 Word 949testdata/Builtins.lc 104:14-104:16 {a} -> a -> a -> VecS a 2
950testdata/Builtins.lc 103:18-103:22 Type 950testdata/Builtins.lc 104:14-104:20 Float -> VecS Float 2
951testdata/Builtins.lc 104:20-104:25 Type 951testdata/Builtins.lc 104:14-104:24 VecS Float 2
952testdata/Builtins.lc 104:20-105:17 V1->V2 952testdata/Builtins.lc 104:14-110:32 a:Nat -> VecS Float ('Succ ('Succ a)) | a:Nat -> VecS Float ('Succ a)
953testdata/Builtins.lc 104:20-106:16 V1->V2 953testdata/Builtins.lc 104:14-122:40 VecS V1 V0 | a:Nat -> VecS V1 a | a:Type -> b:Nat -> VecS a b
954testdata/Builtins.lc 104:20-116:24 Type 954testdata/Builtins.lc 104:17-104:20 Float
955testdata/Builtins.lc 104:20-126:40 V1 955testdata/Builtins.lc 104:21-104:24 Float
956testdata/Builtins.lc 104:20-127:35 V1 956testdata/Builtins.lc 105:13-105:15 {a} -> a -> a -> VecS a 2
957testdata/Builtins.lc 105:14-105:17 Float 957testdata/Builtins.lc 105:13-105:19 Float -> VecS Float 2
958testdata/Builtins.lc 106:13-106:16 Float 958testdata/Builtins.lc 105:13-105:23 VecS Float 2
959testdata/Builtins.lc 107:26-107:31 Type 959testdata/Builtins.lc 105:13-111:31 a:Nat -> VecS Float ('Succ ('Succ a)) | a:Nat -> VecS Float ('Succ a)
960testdata/Builtins.lc 107:26-116:24 Type 960testdata/Builtins.lc 105:13-123:35 VecS V1 V0 | a:Nat -> VecS V1 a | a:Type -> b:Nat -> VecS a b
961testdata/Builtins.lc 107:26-126:40 V1->V2 961testdata/Builtins.lc 105:16-105:19 Float
962testdata/Builtins.lc 107:26-127:35 V1->V2 962testdata/Builtins.lc 105:20-105:23 Float
963testdata/Builtins.lc 108:14-108:16 {a} -> a -> a -> VecS a 2 963testdata/Builtins.lc 107:14-107:16 {a} -> a -> a -> a -> VecS a 3
964testdata/Builtins.lc 108:14-108:20 Float -> VecS Float 2 964testdata/Builtins.lc 107:14-107:20 Float -> Float -> VecS Float 3
965testdata/Builtins.lc 108:14-108:24 VecS Float 2 965testdata/Builtins.lc 107:14-107:24 Float -> VecS Float 3
966testdata/Builtins.lc 108:14-114:32 a:Nat -> VecS Float ('Succ ('Succ a)) | a:Nat -> VecS Float ('Succ a) 966testdata/Builtins.lc 107:14-107:28 VecS Float 3
967testdata/Builtins.lc 108:14-126:40 VecS V1 V0 | a:Nat -> VecS V1 a | a:Type -> b:Nat -> VecS a b 967testdata/Builtins.lc 107:14-110:32 a:Nat -> VecS Float ('Succ ('Succ ('Succ a)))
968testdata/Builtins.lc 108:17-108:20 Float 968testdata/Builtins.lc 107:17-107:20 Float
969testdata/Builtins.lc 108:21-108:24 Float 969testdata/Builtins.lc 107:21-107:24 Float
970testdata/Builtins.lc 109:13-109:15 {a} -> a -> a -> VecS a 2 970testdata/Builtins.lc 107:25-107:28 Float
971testdata/Builtins.lc 109:13-109:19 Float -> VecS Float 2 971testdata/Builtins.lc 108:13-108:15 {a} -> a -> a -> a -> VecS a 3
972testdata/Builtins.lc 109:13-109:23 VecS Float 2 972testdata/Builtins.lc 108:13-108:19 Float -> Float -> VecS Float 3
973testdata/Builtins.lc 109:13-115:31 a:Nat -> VecS Float ('Succ ('Succ a)) | a:Nat -> VecS Float ('Succ a) 973testdata/Builtins.lc 108:13-108:23 Float -> VecS Float 3
974testdata/Builtins.lc 109:13-127:35 VecS V1 V0 | a:Nat -> VecS V1 a | a:Type -> b:Nat -> VecS a b 974testdata/Builtins.lc 108:13-108:27 VecS Float 3
975testdata/Builtins.lc 109:16-109:19 Float 975testdata/Builtins.lc 108:13-111:31 a:Nat -> VecS Float ('Succ ('Succ ('Succ a)))
976testdata/Builtins.lc 109:20-109:23 Float 976testdata/Builtins.lc 108:16-108:19 Float
977testdata/Builtins.lc 111:14-111:16 {a} -> a -> a -> a -> VecS a 3 977testdata/Builtins.lc 108:20-108:23 Float
978testdata/Builtins.lc 111:14-111:20 Float -> Float -> VecS Float 3 978testdata/Builtins.lc 108:24-108:27 Float
979testdata/Builtins.lc 111:14-111:24 Float -> VecS Float 3 979testdata/Builtins.lc 110:14-110:16 {a} -> a -> a -> a -> a -> VecS a 4
980testdata/Builtins.lc 111:14-111:28 VecS Float 3 980testdata/Builtins.lc 110:14-110:20 Float -> Float -> Float -> VecS Float 4
981testdata/Builtins.lc 111:14-114:32 a:Nat -> VecS Float ('Succ ('Succ ('Succ a))) 981testdata/Builtins.lc 110:14-110:24 Float -> Float -> VecS Float 4
982testdata/Builtins.lc 111:17-111:20 Float 982testdata/Builtins.lc 110:14-110:28 Float -> VecS Float 4
983testdata/Builtins.lc 111:21-111:24 Float 983testdata/Builtins.lc 110:14-110:32 VecS Float 4 | a:Nat -> VecS Float ('Succ ('Succ ('Succ ('Succ a))))
984testdata/Builtins.lc 111:25-111:28 Float 984testdata/Builtins.lc 110:17-110:20 Float
985testdata/Builtins.lc 112:13-112:15 {a} -> a -> a -> a -> VecS a 3 985testdata/Builtins.lc 110:21-110:24 Float
986testdata/Builtins.lc 112:13-112:19 Float -> Float -> VecS Float 3 986testdata/Builtins.lc 110:25-110:28 Float
987testdata/Builtins.lc 112:13-112:23 Float -> VecS Float 3 987testdata/Builtins.lc 110:29-110:32 Float
988testdata/Builtins.lc 112:13-112:27 VecS Float 3 988testdata/Builtins.lc 111:13-111:15 {a} -> a -> a -> a -> a -> VecS a 4
989testdata/Builtins.lc 112:13-115:31 a:Nat -> VecS Float ('Succ ('Succ ('Succ a))) 989testdata/Builtins.lc 111:13-111:19 Float -> Float -> Float -> VecS Float 4
990testdata/Builtins.lc 112:16-112:19 Float 990testdata/Builtins.lc 111:13-111:23 Float -> Float -> VecS Float 4
991testdata/Builtins.lc 112:20-112:23 Float 991testdata/Builtins.lc 111:13-111:27 Float -> VecS Float 4
992testdata/Builtins.lc 112:24-112:27 Float 992testdata/Builtins.lc 111:13-111:31 VecS Float 4 | a:Nat -> VecS Float ('Succ ('Succ ('Succ ('Succ a))))
993testdata/Builtins.lc 114:14-114:16 {a} -> a -> a -> a -> a -> VecS a 4 993testdata/Builtins.lc 111:16-111:19 Float
994testdata/Builtins.lc 114:14-114:20 Float -> Float -> Float -> VecS Float 4 994testdata/Builtins.lc 111:20-111:23 Float
995testdata/Builtins.lc 114:14-114:24 Float -> Float -> VecS Float 4 995testdata/Builtins.lc 111:24-111:27 Float
996testdata/Builtins.lc 114:14-114:28 Float -> VecS Float 4 996testdata/Builtins.lc 111:28-111:31 Float
997testdata/Builtins.lc 114:14-114:32 VecS Float 4 | a:Nat -> VecS Float ('Succ ('Succ ('Succ ('Succ a)))) 997testdata/Builtins.lc 112:20-112:24 Type
998testdata/Builtins.lc 114:17-114:20 Float 998testdata/Builtins.lc 112:20-113:19 V1->V2
999testdata/Builtins.lc 114:21-114:24 Float 999testdata/Builtins.lc 112:20-114:17 V1->V2
1000testdata/Builtins.lc 114:25-114:28 Float 1000testdata/Builtins.lc 113:14-113:19 Bool
1001testdata/Builtins.lc 114:29-114:32 Float 1001testdata/Builtins.lc 114:13-114:17 Bool
1002testdata/Builtins.lc 115:13-115:15 {a} -> a -> a -> a -> a -> VecS a 4 1002testdata/Builtins.lc 116:14-116:16 {a} -> a -> a -> VecS a 2
1003testdata/Builtins.lc 115:13-115:19 Float -> Float -> Float -> VecS Float 4 1003testdata/Builtins.lc 116:14-116:22 Bool -> VecS Bool 2
1004testdata/Builtins.lc 115:13-115:23 Float -> Float -> VecS Float 4 1004testdata/Builtins.lc 116:14-116:28 VecS Bool 2
1005testdata/Builtins.lc 115:13-115:27 Float -> VecS Float 4 1005testdata/Builtins.lc 116:14-122:40 a:Nat -> VecS Bool ('Succ ('Succ a)) | a:Nat -> VecS Bool ('Succ a)
1006testdata/Builtins.lc 115:13-115:31 VecS Float 4 | a:Nat -> VecS Float ('Succ ('Succ ('Succ ('Succ a)))) 1006testdata/Builtins.lc 116:17-116:22 Bool
1007testdata/Builtins.lc 115:16-115:19 Float 1007testdata/Builtins.lc 116:23-116:28 Bool
1008testdata/Builtins.lc 115:20-115:23 Float 1008testdata/Builtins.lc 117:13-117:15 {a} -> a -> a -> VecS a 2
1009testdata/Builtins.lc 115:24-115:27 Float 1009testdata/Builtins.lc 117:13-117:20 Bool -> VecS Bool 2
1010testdata/Builtins.lc 115:28-115:31 Float 1010testdata/Builtins.lc 117:13-117:25 VecS Bool 2
1011testdata/Builtins.lc 116:20-116:24 Type 1011testdata/Builtins.lc 117:13-123:35 a:Nat -> VecS Bool ('Succ ('Succ a)) | a:Nat -> VecS Bool ('Succ a)
1012testdata/Builtins.lc 116:20-117:19 V1->V2 1012testdata/Builtins.lc 117:16-117:20 Bool
1013testdata/Builtins.lc 116:20-118:17 V1->V2 1013testdata/Builtins.lc 117:21-117:25 Bool
1014testdata/Builtins.lc 117:14-117:19 Bool 1014testdata/Builtins.lc 119:14-119:16 {a} -> a -> a -> a -> VecS a 3
1015testdata/Builtins.lc 118:13-118:17 Bool 1015testdata/Builtins.lc 119:14-119:22 Bool -> Bool -> VecS Bool 3
1016testdata/Builtins.lc 120:14-120:16 {a} -> a -> a -> VecS a 2 1016testdata/Builtins.lc 119:14-119:28 Bool -> VecS Bool 3
1017testdata/Builtins.lc 120:14-120:22 Bool -> VecS Bool 2 1017testdata/Builtins.lc 119:14-119:34 VecS Bool 3
1018testdata/Builtins.lc 120:14-120:28 VecS Bool 2 1018testdata/Builtins.lc 119:14-122:40 a:Nat -> VecS Bool ('Succ ('Succ ('Succ a)))
1019testdata/Builtins.lc 120:14-126:40 a:Nat -> VecS Bool ('Succ ('Succ a)) | a:Nat -> VecS Bool ('Succ a) 1019testdata/Builtins.lc 119:17-119:22 Bool
1020testdata/Builtins.lc 120:17-120:22 Bool 1020testdata/Builtins.lc 119:23-119:28 Bool
1021testdata/Builtins.lc 120:23-120:28 Bool 1021testdata/Builtins.lc 119:29-119:34 Bool
1022testdata/Builtins.lc 121:13-121:15 {a} -> a -> a -> VecS a 2 1022testdata/Builtins.lc 120:13-120:15 {a} -> a -> a -> a -> VecS a 3
1023testdata/Builtins.lc 121:13-121:20 Bool -> VecS Bool 2 1023testdata/Builtins.lc 120:13-120:20 Bool -> Bool -> VecS Bool 3
1024testdata/Builtins.lc 121:13-121:25 VecS Bool 2 1024testdata/Builtins.lc 120:13-120:25 Bool -> VecS Bool 3
1025testdata/Builtins.lc 121:13-127:35 a:Nat -> VecS Bool ('Succ ('Succ a)) | a:Nat -> VecS Bool ('Succ a) 1025testdata/Builtins.lc 120:13-120:30 VecS Bool 3
1026testdata/Builtins.lc 121:16-121:20 Bool 1026testdata/Builtins.lc 120:13-123:35 a:Nat -> VecS Bool ('Succ ('Succ ('Succ a)))
1027testdata/Builtins.lc 121:21-121:25 Bool 1027testdata/Builtins.lc 120:16-120:20 Bool
1028testdata/Builtins.lc 123:14-123:16 {a} -> a -> a -> a -> VecS a 3 1028testdata/Builtins.lc 120:21-120:25 Bool
1029testdata/Builtins.lc 123:14-123:22 Bool -> Bool -> VecS Bool 3 1029testdata/Builtins.lc 120:26-120:30 Bool
1030testdata/Builtins.lc 123:14-123:28 Bool -> VecS Bool 3 1030testdata/Builtins.lc 122:14-122:16 {a} -> a -> a -> a -> a -> VecS a 4
1031testdata/Builtins.lc 123:14-123:34 VecS Bool 3 1031testdata/Builtins.lc 122:14-122:22 Bool -> Bool -> Bool -> VecS Bool 4
1032testdata/Builtins.lc 123:14-126:40 a:Nat -> VecS Bool ('Succ ('Succ ('Succ a))) 1032testdata/Builtins.lc 122:14-122:28 Bool -> Bool -> VecS Bool 4
1033testdata/Builtins.lc 123:17-123:22 Bool 1033testdata/Builtins.lc 122:14-122:34 Bool -> VecS Bool 4
1034testdata/Builtins.lc 123:23-123:28 Bool 1034testdata/Builtins.lc 122:14-122:40 VecS Bool 4 | a:Nat -> VecS Bool ('Succ ('Succ ('Succ ('Succ a))))
1035testdata/Builtins.lc 123:29-123:34 Bool 1035testdata/Builtins.lc 122:17-122:22 Bool
1036testdata/Builtins.lc 124:13-124:15 {a} -> a -> a -> a -> VecS a 3 1036testdata/Builtins.lc 122:23-122:28 Bool
1037testdata/Builtins.lc 124:13-124:20 Bool -> Bool -> VecS Bool 3 1037testdata/Builtins.lc 122:29-122:34 Bool
1038testdata/Builtins.lc 124:13-124:25 Bool -> VecS Bool 3 1038testdata/Builtins.lc 122:35-122:40 Bool
1039testdata/Builtins.lc 124:13-124:30 VecS Bool 3 1039testdata/Builtins.lc 123:13-123:15 {a} -> a -> a -> a -> a -> VecS a 4
1040testdata/Builtins.lc 124:13-127:35 a:Nat -> VecS Bool ('Succ ('Succ ('Succ a))) 1040testdata/Builtins.lc 123:13-123:20 Bool -> Bool -> Bool -> VecS Bool 4
1041testdata/Builtins.lc 124:16-124:20 Bool 1041testdata/Builtins.lc 123:13-123:25 Bool -> Bool -> VecS Bool 4
1042testdata/Builtins.lc 124:21-124:25 Bool 1042testdata/Builtins.lc 123:13-123:30 Bool -> VecS Bool 4
1043testdata/Builtins.lc 124:26-124:30 Bool 1043testdata/Builtins.lc 123:13-123:35 VecS Bool 4 | a:Nat -> VecS Bool ('Succ ('Succ ('Succ ('Succ a))))
1044testdata/Builtins.lc 126:14-126:16 {a} -> a -> a -> a -> a -> VecS a 4 1044testdata/Builtins.lc 123:16-123:20 Bool
1045testdata/Builtins.lc 126:14-126:22 Bool -> Bool -> Bool -> VecS Bool 4 1045testdata/Builtins.lc 123:21-123:25 Bool
1046testdata/Builtins.lc 126:14-126:28 Bool -> Bool -> VecS Bool 4 1046testdata/Builtins.lc 123:26-123:30 Bool
1047testdata/Builtins.lc 126:14-126:34 Bool -> VecS Bool 4 1047testdata/Builtins.lc 123:31-123:35 Bool
1048testdata/Builtins.lc 126:14-126:40 VecS Bool 4 | a:Nat -> VecS Bool ('Succ ('Succ ('Succ ('Succ a)))) 1048testdata/Builtins.lc 125:7-125:15 Type->Type
1049testdata/Builtins.lc 126:17-126:22 Bool 1049testdata/Builtins.lc 127:25-127:28 Type
1050testdata/Builtins.lc 126:23-126:28 Bool 1050testdata/Builtins.lc 127:25-128:29 Type | Type->Type
1051testdata/Builtins.lc 126:29-126:34 Bool 1051testdata/Builtins.lc 128:25-128:29 Type
1052testdata/Builtins.lc 126:35-126:40 Bool 1052testdata/Builtins.lc 130:7-130:15 Type->Type
1053testdata/Builtins.lc 127:13-127:15 {a} -> a -> a -> a -> a -> VecS a 4 1053testdata/Builtins.lc 132:25-132:30 Type
1054testdata/Builtins.lc 127:13-127:20 Bool -> Bool -> Bool -> VecS Bool 4 1054testdata/Builtins.lc 132:25-136:39 Type | Type->Type
1055testdata/Builtins.lc 127:13-127:25 Bool -> Bool -> VecS Bool 4 1055testdata/Builtins.lc 133:31-133:36 Type
1056testdata/Builtins.lc 127:13-127:30 Bool -> VecS Bool 4 1056testdata/Builtins.lc 133:31-136:39 Type
1057testdata/Builtins.lc 127:13-127:35 VecS Bool 4 | a:Nat -> VecS Bool ('Succ ('Succ ('Succ ('Succ a)))) 1057testdata/Builtins.lc 136:34-136:39 Type
1058testdata/Builtins.lc 127:16-127:20 Bool 1058testdata/Builtins.lc 146:6-146:20 Type
1059testdata/Builtins.lc 127:21-127:25 Bool 1059testdata/Builtins.lc 146:6-161:23 Type
1060testdata/Builtins.lc 127:26-127:30 Bool 1060testdata/Builtins.lc 147:7-147:12 BlendingFactor
1061testdata/Builtins.lc 127:31-127:35 Bool 1061testdata/Builtins.lc 148:7-148:10 BlendingFactor
1062testdata/Builtins.lc 129:7-129:15 Type->Type 1062testdata/Builtins.lc 149:7-149:15 BlendingFactor
1063testdata/Builtins.lc 131:25-131:28 Type 1063testdata/Builtins.lc 150:7-150:23 BlendingFactor
1064testdata/Builtins.lc 131:25-132:29 Type | Type->Type 1064testdata/Builtins.lc 151:7-151:15 BlendingFactor
1065testdata/Builtins.lc 132:25-132:29 Type 1065testdata/Builtins.lc 152:7-152:23 BlendingFactor
1066testdata/Builtins.lc 134:7-134:15 Type->Type
1067testdata/Builtins.lc 136:25-136:30 Type
1068testdata/Builtins.lc 136:25-140:39 Type | Type->Type
1069testdata/Builtins.lc 137:31-137:36 Type
1070testdata/Builtins.lc 137:31-140:39 Type
1071testdata/Builtins.lc 140:34-140:39 Type
1072testdata/Builtins.lc 150:6-150:20 Type
1073testdata/Builtins.lc 150:6-165:23 Type
1074testdata/Builtins.lc 151:7-151:12 BlendingFactor
1075testdata/Builtins.lc 152:7-152:10 BlendingFactor
1076testdata/Builtins.lc 153:7-153:15 BlendingFactor 1066testdata/Builtins.lc 153:7-153:15 BlendingFactor
1077testdata/Builtins.lc 154:7-154:23 BlendingFactor 1067testdata/Builtins.lc 154:7-154:23 BlendingFactor
1078testdata/Builtins.lc 155:7-155:15 BlendingFactor 1068testdata/Builtins.lc 155:7-155:15 BlendingFactor
1079testdata/Builtins.lc 156:7-156:23 BlendingFactor 1069testdata/Builtins.lc 156:7-156:23 BlendingFactor
1080testdata/Builtins.lc 157:7-157:15 BlendingFactor 1070testdata/Builtins.lc 157:7-157:20 BlendingFactor
1081testdata/Builtins.lc 158:7-158:23 BlendingFactor 1071testdata/Builtins.lc 158:7-158:28 BlendingFactor
1082testdata/Builtins.lc 159:7-159:15 BlendingFactor 1072testdata/Builtins.lc 159:7-159:20 BlendingFactor
1083testdata/Builtins.lc 160:7-160:23 BlendingFactor 1073testdata/Builtins.lc 160:7-160:28 BlendingFactor
1084testdata/Builtins.lc 161:7-161:20 BlendingFactor 1074testdata/Builtins.lc 161:7-161:23 BlendingFactor
1085testdata/Builtins.lc 162:7-162:28 BlendingFactor 1075testdata/Builtins.lc 163:6-163:19 Type
1086testdata/Builtins.lc 163:7-163:20 BlendingFactor 1076testdata/Builtins.lc 163:6-168:10 Type
1087testdata/Builtins.lc 164:7-164:28 BlendingFactor 1077testdata/Builtins.lc 164:7-164:14 BlendEquation
1088testdata/Builtins.lc 165:7-165:23 BlendingFactor 1078testdata/Builtins.lc 165:7-165:19 BlendEquation
1089testdata/Builtins.lc 167:6-167:19 Type 1079testdata/Builtins.lc 166:7-166:26 BlendEquation
1090testdata/Builtins.lc 167:6-172:10 Type 1080testdata/Builtins.lc 167:7-167:10 BlendEquation
1091testdata/Builtins.lc 168:7-168:14 BlendEquation 1081testdata/Builtins.lc 168:7-168:10 BlendEquation
1092testdata/Builtins.lc 169:7-169:19 BlendEquation 1082testdata/Builtins.lc 170:6-170:20 Type
1093testdata/Builtins.lc 170:7-170:26 BlendEquation 1083testdata/Builtins.lc 170:6-186:10 Type
1094testdata/Builtins.lc 171:7-171:10 BlendEquation 1084testdata/Builtins.lc 171:7-171:12 LogicOperation
1095testdata/Builtins.lc 172:7-172:10 BlendEquation 1085testdata/Builtins.lc 172:7-172:10 LogicOperation
1096testdata/Builtins.lc 174:6-174:20 Type 1086testdata/Builtins.lc 173:7-173:17 LogicOperation
1097testdata/Builtins.lc 174:6-190:10 Type 1087testdata/Builtins.lc 174:7-174:11 LogicOperation
1098testdata/Builtins.lc 175:7-175:12 LogicOperation 1088testdata/Builtins.lc 175:7-175:18 LogicOperation
1099testdata/Builtins.lc 176:7-176:10 LogicOperation 1089testdata/Builtins.lc 176:7-176:11 LogicOperation
1100testdata/Builtins.lc 177:7-177:17 LogicOperation 1090testdata/Builtins.lc 177:7-177:10 LogicOperation
1101testdata/Builtins.lc 178:7-178:11 LogicOperation 1091testdata/Builtins.lc 178:7-178:9 LogicOperation
1102testdata/Builtins.lc 179:7-179:18 LogicOperation 1092testdata/Builtins.lc 179:7-179:10 LogicOperation
1103testdata/Builtins.lc 180:7-180:11 LogicOperation 1093testdata/Builtins.lc 180:7-180:12 LogicOperation
1104testdata/Builtins.lc 181:7-181:10 LogicOperation 1094testdata/Builtins.lc 181:7-181:13 LogicOperation
1105testdata/Builtins.lc 182:7-182:9 LogicOperation 1095testdata/Builtins.lc 182:7-182:16 LogicOperation
1106testdata/Builtins.lc 183:7-183:10 LogicOperation 1096testdata/Builtins.lc 183:7-183:19 LogicOperation
1107testdata/Builtins.lc 184:7-184:12 LogicOperation 1097testdata/Builtins.lc 184:7-184:17 LogicOperation
1108testdata/Builtins.lc 185:7-185:13 LogicOperation 1098testdata/Builtins.lc 185:7-185:11 LogicOperation
1109testdata/Builtins.lc 186:7-186:16 LogicOperation 1099testdata/Builtins.lc 186:7-186:10 LogicOperation
1110testdata/Builtins.lc 187:7-187:19 LogicOperation 1100testdata/Builtins.lc 188:6-188:22 Type
1111testdata/Builtins.lc 188:7-188:17 LogicOperation 1101testdata/Builtins.lc 188:6-196:15 Type
1112testdata/Builtins.lc 189:7-189:11 LogicOperation 1102testdata/Builtins.lc 189:7-189:13 StencilOperation
1113testdata/Builtins.lc 190:7-190:10 LogicOperation 1103testdata/Builtins.lc 190:7-190:13 StencilOperation
1114testdata/Builtins.lc 192:6-192:22 Type 1104testdata/Builtins.lc 191:7-191:16 StencilOperation
1115testdata/Builtins.lc 192:6-200:15 Type 1105testdata/Builtins.lc 192:7-192:13 StencilOperation
1116testdata/Builtins.lc 193:7-193:13 StencilOperation 1106testdata/Builtins.lc 193:7-193:17 StencilOperation
1117testdata/Builtins.lc 194:7-194:13 StencilOperation 1107testdata/Builtins.lc 194:7-194:13 StencilOperation
1118testdata/Builtins.lc 195:7-195:16 StencilOperation 1108testdata/Builtins.lc 195:7-195:17 StencilOperation
1119testdata/Builtins.lc 196:7-196:13 StencilOperation 1109testdata/Builtins.lc 196:7-196:15 StencilOperation
1120testdata/Builtins.lc 197:7-197:17 StencilOperation 1110testdata/Builtins.lc 198:6-198:24 Type
1121testdata/Builtins.lc 198:7-198:13 StencilOperation 1111testdata/Builtins.lc 198:6-206:13 Type
1122testdata/Builtins.lc 199:7-199:17 StencilOperation 1112testdata/Builtins.lc 199:7-199:12 ComparisonFunction
1123testdata/Builtins.lc 200:7-200:15 StencilOperation 1113testdata/Builtins.lc 200:7-200:11 ComparisonFunction
1124testdata/Builtins.lc 202:6-202:24 Type 1114testdata/Builtins.lc 201:7-201:12 ComparisonFunction
1125testdata/Builtins.lc 202:6-210:13 Type 1115testdata/Builtins.lc 202:7-202:13 ComparisonFunction
1126testdata/Builtins.lc 203:7-203:12 ComparisonFunction 1116testdata/Builtins.lc 203:7-203:14 ComparisonFunction
1127testdata/Builtins.lc 204:7-204:11 ComparisonFunction 1117testdata/Builtins.lc 204:7-204:15 ComparisonFunction
1128testdata/Builtins.lc 205:7-205:12 ComparisonFunction 1118testdata/Builtins.lc 205:7-205:13 ComparisonFunction
1129testdata/Builtins.lc 206:7-206:13 ComparisonFunction 1119testdata/Builtins.lc 206:7-206:13 ComparisonFunction
1130testdata/Builtins.lc 207:7-207:14 ComparisonFunction 1120testdata/Builtins.lc 208:6-208:21 Type
1131testdata/Builtins.lc 208:7-208:15 ComparisonFunction 1121testdata/Builtins.lc 208:6-210:18 Type
1132testdata/Builtins.lc 209:7-209:13 ComparisonFunction 1122testdata/Builtins.lc 209:7-209:17 ProvokingVertex
1133testdata/Builtins.lc 210:7-210:13 ComparisonFunction 1123testdata/Builtins.lc 210:7-210:18 ProvokingVertex
1134testdata/Builtins.lc 212:6-212:21 Type 1124testdata/Builtins.lc 212:6-212:14 Type
1135testdata/Builtins.lc 212:6-214:18 Type 1125testdata/Builtins.lc 212:6-215:15 Type
1136testdata/Builtins.lc 213:7-213:17 ProvokingVertex 1126testdata/Builtins.lc 213:7-213:16 CullMode
1137testdata/Builtins.lc 214:7-214:18 ProvokingVertex 1127testdata/Builtins.lc 214:7-214:15 CullMode
1138testdata/Builtins.lc 216:6-216:14 Type 1128testdata/Builtins.lc 215:7-215:15 CullMode
1139testdata/Builtins.lc 216:6-219:15 Type 1129testdata/Builtins.lc 217:6-217:15 Type | Type->Type
1140testdata/Builtins.lc 217:7-217:16 CullMode 1130testdata/Builtins.lc 217:6-218:22 Type
1141testdata/Builtins.lc 218:7-218:15 CullMode 1131testdata/Builtins.lc 217:6-219:23 Type
1142testdata/Builtins.lc 219:7-219:15 CullMode 1132testdata/Builtins.lc 217:6-219:36 Type
1143testdata/Builtins.lc 221:6-221:15 Type | Type->Type 1133testdata/Builtins.lc 218:7-218:16 PointSize V2 | Type | {a} -> Float -> PointSize a
1144testdata/Builtins.lc 221:6-222:22 Type 1134testdata/Builtins.lc 218:17-218:22 Type
1145testdata/Builtins.lc 221:6-223:23 Type 1135testdata/Builtins.lc 219:7-219:23 PointSize V3 | Type | {a} -> a->Float -> PointSize a
1146testdata/Builtins.lc 221:6-223:36 Type 1136testdata/Builtins.lc 219:25-219:26 Type
1147testdata/Builtins.lc 222:7-222:16 PointSize V2 | Type | {a} -> Float -> PointSize a 1137testdata/Builtins.lc 219:30-219:35 Type
1148testdata/Builtins.lc 222:17-222:22 Type 1138testdata/Builtins.lc 221:6-221:17 Type | Type->Type
1149testdata/Builtins.lc 223:7-223:23 PointSize V3 | Type | {a} -> a->Float -> PointSize a 1139testdata/Builtins.lc 221:6-223:33 Type
1150testdata/Builtins.lc 223:25-223:26 Type 1140testdata/Builtins.lc 221:6-224:18 Type
1151testdata/Builtins.lc 223:30-223:35 Type 1141testdata/Builtins.lc 221:6-224:24 Type
1152testdata/Builtins.lc 225:6-225:17 Type | Type->Type 1142testdata/Builtins.lc 222:7-222:18 PolygonMode V1 | {a} -> PolygonMode a
1153testdata/Builtins.lc 225:6-227:33 Type 1143testdata/Builtins.lc 223:7-223:19 PolygonMode V3 | Type | {a} -> PointSize a -> PolygonMode a
1154testdata/Builtins.lc 225:6-228:18 Type 1144testdata/Builtins.lc 223:20-223:33 Type
1155testdata/Builtins.lc 225:6-228:24 Type 1145testdata/Builtins.lc 223:21-223:30 Type->Type
1156testdata/Builtins.lc 226:7-226:18 PolygonMode V1 | {a} -> PolygonMode a 1146testdata/Builtins.lc 223:31-223:32 Type
1157testdata/Builtins.lc 227:7-227:19 PolygonMode V3 | Type | {a} -> PointSize a -> PolygonMode a 1147testdata/Builtins.lc 224:7-224:18 PolygonMode V4 | Type | {a} -> Float -> PolygonMode a
1158testdata/Builtins.lc 227:20-227:33 Type 1148testdata/Builtins.lc 224:19-224:24 Type
1159testdata/Builtins.lc 227:21-227:30 Type->Type 1149testdata/Builtins.lc 226:6-226:19 Type
1160testdata/Builtins.lc 227:31-227:32 Type 1150testdata/Builtins.lc 226:6-228:13 Type
1161testdata/Builtins.lc 228:7-228:18 PolygonMode V4 | Type | {a} -> Float -> PolygonMode a 1151testdata/Builtins.lc 226:6-228:25 Type
1162testdata/Builtins.lc 228:19-228:24 Type 1152testdata/Builtins.lc 227:7-227:15 PolygonOffset
1163testdata/Builtins.lc 230:6-230:19 Type 1153testdata/Builtins.lc 228:7-228:13 Float -> Float->PolygonOffset | PolygonOffset | Type
1164testdata/Builtins.lc 230:6-232:13 Type 1154testdata/Builtins.lc 228:14-228:19 Type
1165testdata/Builtins.lc 230:6-232:25 Type 1155testdata/Builtins.lc 228:20-228:25 Type
1166testdata/Builtins.lc 231:7-231:15 PolygonOffset 1156testdata/Builtins.lc 230:6-230:28 Type
1167testdata/Builtins.lc 232:7-232:13 Float -> Float->PolygonOffset | PolygonOffset | Type 1157testdata/Builtins.lc 230:6-232:16 Type
1168testdata/Builtins.lc 232:14-232:19 Type 1158testdata/Builtins.lc 231:7-231:16 PointSpriteCoordOrigin
1169testdata/Builtins.lc 232:20-232:25 Type 1159testdata/Builtins.lc 232:7-232:16 PointSpriteCoordOrigin
1170testdata/Builtins.lc 234:6-234:28 Type 1160testdata/Builtins.lc 234:6-234:20 Type
1171testdata/Builtins.lc 234:6-236:16 Type 1161testdata/Builtins.lc 234:6-234:56 Type
1172testdata/Builtins.lc 235:7-235:16 PointSpriteCoordOrigin 1162testdata/Builtins.lc 234:23-234:28 ImageSemantics | Type | Type->ImageSemantics
1173testdata/Builtins.lc 236:7-236:16 PointSpriteCoordOrigin 1163testdata/Builtins.lc 234:29-234:33 Type
1174testdata/Builtins.lc 238:6-238:20 Type 1164testdata/Builtins.lc 234:36-234:43 ImageSemantics | Type | Type->ImageSemantics
1175testdata/Builtins.lc 238:6-238:56 Type 1165testdata/Builtins.lc 234:44-234:48 Type
1176testdata/Builtins.lc 238:23-238:28 ImageSemantics | Type | Type->ImageSemantics 1166testdata/Builtins.lc 234:51-234:56 ImageSemantics | Type | Type->ImageSemantics
1177testdata/Builtins.lc 238:29-238:33 Type 1167testdata/Builtins.lc 234:57-234:61 Type
1178testdata/Builtins.lc 238:36-238:43 ImageSemantics | Type | Type->ImageSemantics 1168testdata/Builtins.lc 236:6-236:19 Type
1179testdata/Builtins.lc 238:44-238:48 Type 1169testdata/Builtins.lc 236:6-241:20 Type
1180testdata/Builtins.lc 238:51-238:56 ImageSemantics | Type | Type->ImageSemantics 1170testdata/Builtins.lc 237:7-237:15 PrimitiveType
1181testdata/Builtins.lc 238:57-238:61 Type 1171testdata/Builtins.lc 238:7-238:11 PrimitiveType
1182testdata/Builtins.lc 240:6-240:19 Type 1172testdata/Builtins.lc 239:7-239:12 PrimitiveType
1183testdata/Builtins.lc 240:6-245:20 Type 1173testdata/Builtins.lc 240:7-240:24 PrimitiveType
1184testdata/Builtins.lc 241:7-241:15 PrimitiveType 1174testdata/Builtins.lc 241:7-241:20 PrimitiveType
1185testdata/Builtins.lc 242:7-242:11 PrimitiveType 1175testdata/Builtins.lc 244:1-244:12 Tuple0 -> Vec 2 Float -> Vec 4 Float
1186testdata/Builtins.lc 243:7-243:12 PrimitiveType 1176testdata/Builtins.lc 244:16-244:18 Type
1187testdata/Builtins.lc 244:7-244:24 PrimitiveType 1177testdata/Builtins.lc 244:22-244:25 Nat -> Type->Type
1188testdata/Builtins.lc 245:7-245:20 PrimitiveType 1178testdata/Builtins.lc 244:22-244:27 Type->Type
1189testdata/Builtins.lc 248:1-248:12 Tuple0 -> Vec 2 Float -> Vec 4 Float 1179testdata/Builtins.lc 244:22-244:33 Type
1190testdata/Builtins.lc 248:16-248:18 Type 1180testdata/Builtins.lc 244:22-244:48 Type
1191testdata/Builtins.lc 248:22-248:25 Nat -> Type->Type 1181testdata/Builtins.lc 244:26-244:27 V1
1192testdata/Builtins.lc 248:22-248:27 Type->Type 1182testdata/Builtins.lc 244:28-244:33 Type
1193testdata/Builtins.lc 248:22-248:33 Type 1183testdata/Builtins.lc 244:37-244:40 Nat -> Type->Type
1194testdata/Builtins.lc 248:22-248:48 Type 1184testdata/Builtins.lc 244:37-244:42 Type->Type
1195testdata/Builtins.lc 248:26-248:27 V1 1185testdata/Builtins.lc 244:37-244:48 Type
1196testdata/Builtins.lc 248:28-248:33 Type 1186testdata/Builtins.lc 244:41-244:42 V1
1197testdata/Builtins.lc 248:37-248:40 Nat -> Type->Type 1187testdata/Builtins.lc 244:43-244:48 Type
1198testdata/Builtins.lc 248:37-248:42 Type->Type 1188testdata/Builtins.lc 247:1-247:8 {a} -> String->a
1199testdata/Builtins.lc 248:37-248:48 Type 1189testdata/Builtins.lc 247:14-247:20 Type
1200testdata/Builtins.lc 248:41-248:42 V1 1190testdata/Builtins.lc 247:14-247:25 Type
1201testdata/Builtins.lc 248:43-248:48 Type 1191testdata/Builtins.lc 247:24-247:25 Type | V2
1202testdata/Builtins.lc 251:1-251:8 {a} -> String->a 1192testdata/Builtins.lc 248:1-248:10 {a} -> String->a
1203testdata/Builtins.lc 251:14-251:20 Type 1193testdata/Builtins.lc 248:14-248:20 Type
1204testdata/Builtins.lc 251:14-251:25 Type 1194testdata/Builtins.lc 248:14-248:25 Type
1205testdata/Builtins.lc 251:24-251:25 Type | V2 1195testdata/Builtins.lc 248:24-248:25 Type | V2
1206testdata/Builtins.lc 252:1-252:10 {a} -> String->a 1196testdata/Builtins.lc 250:6-250:19 Type | Type -> PrimitiveType->Type
1207testdata/Builtins.lc 252:14-252:20 Type 1197testdata/Builtins.lc 250:6-253:111 Type
1208testdata/Builtins.lc 252:14-252:25 Type 1198testdata/Builtins.lc 250:25-250:38 Type
1209testdata/Builtins.lc 252:24-252:25 Type | V2 1199testdata/Builtins.lc 250:25-250:46 Type
1210testdata/Builtins.lc 254:6-254:19 Type | Type -> PrimitiveType->Type 1200testdata/Builtins.lc 250:42-250:46 Type
1211testdata/Builtins.lc 254:6-257:111 Type 1201testdata/Builtins.lc 251:3-251:14 RasterContext V5 'Triangle | {a} -> CullMode -> PolygonMode a -> PolygonOffset -> ProvokingVertex -> RasterContext a 'Triangle
1212testdata/Builtins.lc 254:25-254:38 Type 1202testdata/Builtins.lc 251:3-251:115 Type
1213testdata/Builtins.lc 254:25-254:46 Type 1203testdata/Builtins.lc 251:26-251:34 Type
1214testdata/Builtins.lc 254:42-254:46 Type 1204testdata/Builtins.lc 251:26-251:115 Type
1215testdata/Builtins.lc 255:3-255:14 RasterContext V5 'Triangle | {a} -> CullMode -> PolygonMode a -> PolygonOffset -> ProvokingVertex -> RasterContext a 'Triangle 1205testdata/Builtins.lc 251:38-251:49 Type->Type
1216testdata/Builtins.lc 255:3-255:115 Type 1206testdata/Builtins.lc 251:38-251:51 Type
1217testdata/Builtins.lc 255:26-255:34 Type 1207testdata/Builtins.lc 251:38-251:115 Type
1218testdata/Builtins.lc 255:26-255:115 Type 1208testdata/Builtins.lc 251:50-251:51 Type
1219testdata/Builtins.lc 255:38-255:49 Type->Type 1209testdata/Builtins.lc 251:55-251:68 Type
1220testdata/Builtins.lc 255:38-255:51 Type 1210testdata/Builtins.lc 251:55-251:115 Type
1221testdata/Builtins.lc 255:38-255:115 Type 1211testdata/Builtins.lc 251:72-251:87 Type
1222testdata/Builtins.lc 255:50-255:51 Type 1212testdata/Builtins.lc 251:72-251:115 Type
1223testdata/Builtins.lc 255:55-255:68 Type 1213testdata/Builtins.lc 251:91-251:104 Type -> PrimitiveType->Type
1224testdata/Builtins.lc 255:55-255:115 Type 1214testdata/Builtins.lc 251:91-251:106 PrimitiveType->Type
1225testdata/Builtins.lc 255:72-255:87 Type 1215testdata/Builtins.lc 251:91-251:115 Type
1226testdata/Builtins.lc 255:72-255:115 Type 1216testdata/Builtins.lc 251:105-251:106 Type
1227testdata/Builtins.lc 255:91-255:104 Type -> PrimitiveType->Type 1217testdata/Builtins.lc 251:107-251:115 PrimitiveType
1228testdata/Builtins.lc 255:91-255:106 PrimitiveType->Type 1218testdata/Builtins.lc 252:3-252:11 RasterContext V5 'Point | {a} -> PointSize a -> Float -> PointSpriteCoordOrigin -> RasterContext a 'Point
1229testdata/Builtins.lc 255:91-255:115 Type 1219testdata/Builtins.lc 252:3-252:112 Type
1230testdata/Builtins.lc 255:105-255:106 Type 1220testdata/Builtins.lc 252:26-252:35 Type->Type
1231testdata/Builtins.lc 255:107-255:115 PrimitiveType 1221testdata/Builtins.lc 252:26-252:37 Type
1232testdata/Builtins.lc 256:3-256:11 RasterContext V5 'Point | {a} -> PointSize a -> Float -> PointSpriteCoordOrigin -> RasterContext a 'Point 1222testdata/Builtins.lc 252:26-252:112 Type
1233testdata/Builtins.lc 256:3-256:112 Type 1223testdata/Builtins.lc 252:36-252:37 Type
1234testdata/Builtins.lc 256:26-256:35 Type->Type 1224testdata/Builtins.lc 252:41-252:46 Type
1235testdata/Builtins.lc 256:26-256:37 Type 1225testdata/Builtins.lc 252:41-252:112 Type
1236testdata/Builtins.lc 256:26-256:112 Type 1226testdata/Builtins.lc 252:50-252:72 Type
1237testdata/Builtins.lc 256:36-256:37 Type 1227testdata/Builtins.lc 252:50-252:112 Type
1238testdata/Builtins.lc 256:41-256:46 Type 1228testdata/Builtins.lc 252:91-252:104 Type -> PrimitiveType->Type
1239testdata/Builtins.lc 256:41-256:112 Type 1229testdata/Builtins.lc 252:91-252:106 PrimitiveType->Type
1240testdata/Builtins.lc 256:50-256:72 Type 1230testdata/Builtins.lc 252:91-252:112 Type
1241testdata/Builtins.lc 256:50-256:112 Type 1231testdata/Builtins.lc 252:105-252:106 Type
1242testdata/Builtins.lc 256:91-256:104 Type -> PrimitiveType->Type 1232testdata/Builtins.lc 252:107-252:112 PrimitiveType
1243testdata/Builtins.lc 256:91-256:106 PrimitiveType->Type 1233testdata/Builtins.lc 253:3-253:10 RasterContext V5 'Line | {a} -> Float -> ProvokingVertex -> RasterContext a 'Line
1244testdata/Builtins.lc 256:91-256:112 Type 1234testdata/Builtins.lc 253:3-253:111 Type
1245testdata/Builtins.lc 256:105-256:106 Type 1235testdata/Builtins.lc 253:26-253:31 Type
1246testdata/Builtins.lc 256:107-256:112 PrimitiveType 1236testdata/Builtins.lc 253:26-253:111 Type
1247testdata/Builtins.lc 257:3-257:10 RasterContext V5 'Line | {a} -> Float -> ProvokingVertex -> RasterContext a 'Line 1237testdata/Builtins.lc 253:35-253:50 Type
1248testdata/Builtins.lc 257:3-257:111 Type 1238testdata/Builtins.lc 253:35-253:111 Type
1249testdata/Builtins.lc 257:26-257:31 Type 1239testdata/Builtins.lc 253:91-253:104 Type -> PrimitiveType->Type
1250testdata/Builtins.lc 257:26-257:111 Type 1240testdata/Builtins.lc 253:91-253:106 PrimitiveType->Type
1251testdata/Builtins.lc 257:35-257:50 Type 1241testdata/Builtins.lc 253:91-253:111 Type
1252testdata/Builtins.lc 257:35-257:111 Type 1242testdata/Builtins.lc 253:105-253:106 Type
1253testdata/Builtins.lc 257:91-257:104 Type -> PrimitiveType->Type 1243testdata/Builtins.lc 253:107-253:111 PrimitiveType
1254testdata/Builtins.lc 257:91-257:106 PrimitiveType->Type 1244testdata/Builtins.lc 257:5-257:12 Type->Type
1255testdata/Builtins.lc 257:91-257:111 Type 1245testdata/Builtins.lc 257:14-257:15 Type
1256testdata/Builtins.lc 257:105-257:106 Type 1246testdata/Builtins.lc 257:14-257:20 Type->Type
1257testdata/Builtins.lc 257:107-257:111 PrimitiveType 1247testdata/Builtins.lc 257:14-258:32 Type | Type->Type
1258testdata/Builtins.lc 261:5-261:12 Type->Type 1248testdata/Builtins.lc 257:19-257:20 Type | Type->Type
1259testdata/Builtins.lc 261:14-261:15 Type 1249testdata/Builtins.lc 258:15-258:21 Type
1260testdata/Builtins.lc 261:14-261:20 Type->Type 1250testdata/Builtins.lc 258:15-258:32 Type->Type
1261testdata/Builtins.lc 261:14-262:32 Type | Type->Type 1251testdata/Builtins.lc 258:26-258:32 Type | Type -> Type->Type | Type->Type
1262testdata/Builtins.lc 261:19-261:20 Type | Type->Type 1252testdata/Builtins.lc 258:27-258:28 Type
1263testdata/Builtins.lc 262:15-262:21 Type 1253testdata/Builtins.lc 258:30-258:31 Type
1264testdata/Builtins.lc 262:15-262:32 Type->Type 1254testdata/Builtins.lc 260:6-260:14 Type | Type->Type
1265testdata/Builtins.lc 262:26-262:32 Type | Type -> Type->Type | Type->Type 1255testdata/Builtins.lc 260:6-265:74 Type
1266testdata/Builtins.lc 262:27-262:28 Type 1256testdata/Builtins.lc 260:18-260:22 Type
1267testdata/Builtins.lc 262:30-262:31 Type 1257testdata/Builtins.lc 260:26-260:30 Type
1268testdata/Builtins.lc 264:6-264:14 Type | Type->Type 1258testdata/Builtins.lc 261:3-261:13 Blending V0 | {a} -> Blending a
1269testdata/Builtins.lc 264:6-269:74 Type 1259testdata/Builtins.lc 261:3-261:70 Type
1270testdata/Builtins.lc 264:18-264:22 Type 1260testdata/Builtins.lc 261:60-261:68 Type->Type
1271testdata/Builtins.lc 264:26-264:30 Type 1261testdata/Builtins.lc 261:60-261:70 Type
1272testdata/Builtins.lc 265:3-265:13 Blending V0 | {a} -> Blending a 1262testdata/Builtins.lc 261:69-261:70 Type | V1
1273testdata/Builtins.lc 265:3-265:70 Type 1263testdata/Builtins.lc 262:3-262:15 Blending V2 | {a} -> {b : Integral a} -> LogicOperation -> Blending a
1264testdata/Builtins.lc 262:3-262:70 Type
1265testdata/Builtins.lc 262:26-262:38 Type
1266testdata/Builtins.lc 262:26-262:70 Type
1267testdata/Builtins.lc 262:27-262:35 Type->Type
1268testdata/Builtins.lc 262:36-262:37 V1
1269testdata/Builtins.lc 262:42-262:56 Type
1270testdata/Builtins.lc 262:42-262:70 Type
1271testdata/Builtins.lc 262:60-262:68 Type->Type
1272testdata/Builtins.lc 262:60-262:70 Type
1273testdata/Builtins.lc 262:69-262:70 Type
1274testdata/Builtins.lc 263:3-263:8 Blending Float | Tuple2 BlendEquation BlendEquation -> Tuple2 (Tuple2 BlendingFactor BlendingFactor) (Tuple2 BlendingFactor BlendingFactor) -> Vec 4 Float -> Blending Float
1275testdata/Builtins.lc 263:3-265:74 Type
1276testdata/Builtins.lc 263:26-263:56 Type
1277testdata/Builtins.lc 263:27-263:40 Type
1278testdata/Builtins.lc 263:42-263:55 Type
1279testdata/Builtins.lc 264:29-264:97 Type
1280testdata/Builtins.lc 264:29-265:74 Type
1281testdata/Builtins.lc 264:30-264:62 Type
1282testdata/Builtins.lc 264:31-264:45 Type
1283testdata/Builtins.lc 264:47-264:61 Type
1284testdata/Builtins.lc 264:64-264:96 Type
1285testdata/Builtins.lc 264:65-264:79 Type
1286testdata/Builtins.lc 264:81-264:95 Type
1287testdata/Builtins.lc 265:29-265:32 Nat -> Type->Type
1288testdata/Builtins.lc 265:29-265:34 Type->Type
1289testdata/Builtins.lc 265:29-265:40 Type
1290testdata/Builtins.lc 265:29-265:74 Type
1291testdata/Builtins.lc 265:33-265:34 V1
1292testdata/Builtins.lc 265:35-265:40 Type
1274testdata/Builtins.lc 265:60-265:68 Type->Type 1293testdata/Builtins.lc 265:60-265:68 Type->Type
1275testdata/Builtins.lc 265:60-265:70 Type 1294testdata/Builtins.lc 265:60-265:74 Type
1276testdata/Builtins.lc 265:69-265:70 Type | V1 1295testdata/Builtins.lc 265:69-265:74 Type
1277testdata/Builtins.lc 266:3-266:15 Blending V2 | {a} -> {b : Integral a} -> LogicOperation -> Blending a 1296testdata/Builtins.lc 272:6-272:18 Type
1278testdata/Builtins.lc 266:3-266:70 Type 1297testdata/Builtins.lc 273:6-273:16 Type
1279testdata/Builtins.lc 266:26-266:38 Type 1298testdata/Builtins.lc 274:6-274:11 Type
1280testdata/Builtins.lc 266:26-266:70 Type 1299testdata/Builtins.lc 276:6-276:23 ImageSemantics->Type | Type
1281testdata/Builtins.lc 266:27-266:35 Type->Type 1300testdata/Builtins.lc 276:6-280:104 Type
1282testdata/Builtins.lc 266:36-266:37 V1 1301testdata/Builtins.lc 276:27-276:41 Type
1283testdata/Builtins.lc 266:42-266:56 Type 1302testdata/Builtins.lc 276:45-276:49 Type
1284testdata/Builtins.lc 266:42-266:70 Type 1303testdata/Builtins.lc 277:3-277:10 FragmentOperation ('Color V6) | {a} -> {b:Nat} -> {c} -> {d} -> {e : a ~ VecScalar b Bool} -> {f : c ~ VecScalar b d} -> {g : Num d} -> Blending d -> a -> FragmentOperation ('Color c)
1285testdata/Builtins.lc 266:60-266:68 Type->Type 1304testdata/Builtins.lc 277:3-278:102 Type
1286testdata/Builtins.lc 266:60-266:70 Type 1305testdata/Builtins.lc 277:26-278:102 Type
1287testdata/Builtins.lc 266:69-266:70 Type 1306testdata/Builtins.lc 277:27-277:31 V8
1288testdata/Builtins.lc 267:3-267:8 Blending Float | Tuple2 BlendEquation BlendEquation -> Tuple2 (Tuple2 BlendingFactor BlendingFactor) (Tuple2 BlendingFactor BlendingFactor) -> Vec 4 Float -> Blending Float 1307testdata/Builtins.lc 277:27-277:33 V7->Type
1289testdata/Builtins.lc 267:3-269:74 Type 1308testdata/Builtins.lc 277:27-277:50 Type
1290testdata/Builtins.lc 267:26-267:56 Type 1309testdata/Builtins.lc 277:32-277:33 {a} -> a -> a->Type
1291testdata/Builtins.lc 267:27-267:40 Type 1310testdata/Builtins.lc 277:34-277:43 Nat -> Type->Type
1292testdata/Builtins.lc 267:42-267:55 Type 1311testdata/Builtins.lc 277:34-277:45 Type->Type
1293testdata/Builtins.lc 268:29-268:97 Type 1312testdata/Builtins.lc 277:34-277:50 Type
1294testdata/Builtins.lc 268:29-269:74 Type 1313testdata/Builtins.lc 277:44-277:45 V5
1295testdata/Builtins.lc 268:30-268:62 Type 1314testdata/Builtins.lc 277:46-277:50 Type
1296testdata/Builtins.lc 268:31-268:45 Type 1315testdata/Builtins.lc 277:52-277:57 V5
1297testdata/Builtins.lc 268:47-268:61 Type 1316testdata/Builtins.lc 277:52-277:59 V4->Type
1298testdata/Builtins.lc 268:64-268:96 Type 1317testdata/Builtins.lc 277:52-277:73 Type
1299testdata/Builtins.lc 268:65-268:79 Type 1318testdata/Builtins.lc 277:52-278:102 Type
1300testdata/Builtins.lc 268:81-268:95 Type 1319testdata/Builtins.lc 277:58-277:59 {a} -> a -> a->Type
1301testdata/Builtins.lc 269:29-269:32 Nat -> Type->Type 1320testdata/Builtins.lc 277:60-277:69 Nat -> Type->Type
1302testdata/Builtins.lc 269:29-269:34 Type->Type 1321testdata/Builtins.lc 277:60-277:71 Type->Type
1303testdata/Builtins.lc 269:29-269:40 Type 1322testdata/Builtins.lc 277:60-277:73 Type
1304testdata/Builtins.lc 269:29-269:74 Type 1323testdata/Builtins.lc 277:70-277:71 Nat
1305testdata/Builtins.lc 269:33-269:34 V1 1324testdata/Builtins.lc 277:72-277:73 V2
1306testdata/Builtins.lc 269:35-269:40 Type 1325testdata/Builtins.lc 277:75-277:78 Type->Type
1307testdata/Builtins.lc 269:60-269:68 Type->Type 1326testdata/Builtins.lc 277:75-277:80 Type
1308testdata/Builtins.lc 269:60-269:74 Type 1327testdata/Builtins.lc 277:75-278:102 Type
1309testdata/Builtins.lc 269:69-269:74 Type 1328testdata/Builtins.lc 277:79-277:80 Type
1310testdata/Builtins.lc 276:6-276:18 Type 1329testdata/Builtins.lc 277:85-277:93 Type->Type
1311testdata/Builtins.lc 277:6-277:16 Type 1330testdata/Builtins.lc 277:85-277:95 Type
1312testdata/Builtins.lc 278:6-278:11 Type 1331testdata/Builtins.lc 277:85-278:102 Type
1313testdata/Builtins.lc 280:6-280:23 ImageSemantics->Type | Type 1332testdata/Builtins.lc 277:94-277:95 Type
1314testdata/Builtins.lc 280:6-284:104 Type 1333testdata/Builtins.lc 277:99-277:103 Type
1315testdata/Builtins.lc 280:27-280:41 Type 1334testdata/Builtins.lc 277:99-278:102 Type
1316testdata/Builtins.lc 280:45-280:49 Type 1335testdata/Builtins.lc 278:71-278:88 ImageSemantics->Type
1317testdata/Builtins.lc 281:3-281:10 FragmentOperation ('Color V6) | {a} -> {b:Nat} -> {c} -> {d} -> {e : a ~ VecScalar b Bool} -> {f : c ~ VecScalar b d} -> {g : Num d} -> Blending d -> a -> FragmentOperation ('Color c) 1336testdata/Builtins.lc 278:71-278:102 Type
1318testdata/Builtins.lc 281:3-282:102 Type 1337testdata/Builtins.lc 278:89-278:102 ImageSemantics
1319testdata/Builtins.lc 281:26-282:102 Type 1338testdata/Builtins.lc 278:90-278:95 Type->ImageSemantics
1320testdata/Builtins.lc 281:27-281:31 V8 1339testdata/Builtins.lc 278:96-278:101 Type
1321testdata/Builtins.lc 281:27-281:33 V7->Type 1340testdata/Builtins.lc 279:3-279:10 ComparisonFunction -> Bool -> FragmentOperation ('Depth Float) | FragmentOperation ('Depth Float)
1322testdata/Builtins.lc 281:27-281:50 Type 1341testdata/Builtins.lc 279:3-279:102 Type
1323testdata/Builtins.lc 281:32-281:33 {a} -> a -> a->Type 1342testdata/Builtins.lc 279:26-279:44 Type
1324testdata/Builtins.lc 281:34-281:43 Nat -> Type->Type 1343testdata/Builtins.lc 279:48-279:52 Type
1325testdata/Builtins.lc 281:34-281:45 Type->Type 1344testdata/Builtins.lc 279:48-279:102 Type
1326testdata/Builtins.lc 281:34-281:50 Type 1345testdata/Builtins.lc 279:71-279:88 ImageSemantics->Type
1327testdata/Builtins.lc 281:44-281:45 V5 1346testdata/Builtins.lc 279:71-279:102 Type
1328testdata/Builtins.lc 281:46-281:50 Type 1347testdata/Builtins.lc 279:89-279:102 ImageSemantics
1329testdata/Builtins.lc 281:52-281:57 V5 1348testdata/Builtins.lc 279:90-279:95 Type->ImageSemantics
1330testdata/Builtins.lc 281:52-281:59 V4->Type 1349testdata/Builtins.lc 279:96-279:101 Type
1331testdata/Builtins.lc 281:52-281:73 Type 1350testdata/Builtins.lc 280:3-280:12 FragmentOperation ('Stencil Int32) | StencilTests -> StencilOps -> StencilOps -> FragmentOperation ('Stencil Int32)
1332testdata/Builtins.lc 281:52-282:102 Type 1351testdata/Builtins.lc 280:3-280:104 Type
1333testdata/Builtins.lc 281:58-281:59 {a} -> a -> a->Type 1352testdata/Builtins.lc 280:26-280:38 Type
1334testdata/Builtins.lc 281:60-281:69 Nat -> Type->Type 1353testdata/Builtins.lc 280:42-280:52 Type
1335testdata/Builtins.lc 281:60-281:71 Type->Type 1354testdata/Builtins.lc 280:42-280:104 Type
1336testdata/Builtins.lc 281:60-281:73 Type 1355testdata/Builtins.lc 280:56-280:66 Type
1337testdata/Builtins.lc 281:70-281:71 Nat 1356testdata/Builtins.lc 280:56-280:104 Type
1338testdata/Builtins.lc 281:72-281:73 V2 1357testdata/Builtins.lc 280:71-280:88 ImageSemantics->Type
1339testdata/Builtins.lc 281:75-281:78 Type->Type 1358testdata/Builtins.lc 280:71-280:104 Type
1340testdata/Builtins.lc 281:75-281:80 Type 1359testdata/Builtins.lc 280:89-280:104 ImageSemantics
1341testdata/Builtins.lc 281:75-282:102 Type 1360testdata/Builtins.lc 280:90-280:97 Type->ImageSemantics
1342testdata/Builtins.lc 281:79-281:80 Type 1361testdata/Builtins.lc 280:98-280:103 Type
1343testdata/Builtins.lc 281:85-281:93 Type->Type 1362testdata/Builtins.lc 282:28-282:42 Type
1344testdata/Builtins.lc 281:85-281:95 Type 1363testdata/Builtins.lc 283:5-283:12 List ImageSemantics -> Type
1345testdata/Builtins.lc 281:85-282:102 Type 1364testdata/Builtins.lc 283:15-283:16 List ImageSemantics
1346testdata/Builtins.lc 281:94-281:95 Type 1365testdata/Builtins.lc 283:15-287:148 List ImageSemantics -> Type | Type
1347testdata/Builtins.lc 281:99-281:103 Type 1366testdata/Builtins.lc 283:20-283:41 Type
1348testdata/Builtins.lc 281:99-282:102 Type 1367testdata/Builtins.lc 283:20-287:148 List ImageSemantics -> Type | List V2 -> V2 | Type | V1 -> List V2 -> V2
1349testdata/Builtins.lc 282:71-282:88 ImageSemantics->Type 1368testdata/Builtins.lc 283:21-283:38 ImageSemantics->Type
1350testdata/Builtins.lc 282:71-282:102 Type 1369testdata/Builtins.lc 283:39-283:40 V4
1351testdata/Builtins.lc 282:89-282:102 ImageSemantics 1370testdata/Builtins.lc 284:25-284:69 Type
1352testdata/Builtins.lc 282:90-282:95 Type->ImageSemantics 1371testdata/Builtins.lc 284:25-287:148 List ImageSemantics -> Type | List V1 -> Type | Type | V0 -> List V1 -> Type
1353testdata/Builtins.lc 282:96-282:101 Type 1372testdata/Builtins.lc 284:26-284:43 ImageSemantics->Type
1354testdata/Builtins.lc 283:3-283:10 ComparisonFunction -> Bool -> FragmentOperation ('Depth Float) | FragmentOperation ('Depth Float) 1373testdata/Builtins.lc 284:26-284:46 Type
1355testdata/Builtins.lc 283:3-283:102 Type 1374testdata/Builtins.lc 284:44-284:46 ImageSemantics
1356testdata/Builtins.lc 283:26-283:44 Type 1375testdata/Builtins.lc 284:48-284:65 ImageSemantics->Type
1357testdata/Builtins.lc 283:48-283:52 Type 1376testdata/Builtins.lc 284:48-284:68 Type
1358testdata/Builtins.lc 283:48-283:102 Type 1377testdata/Builtins.lc 284:66-284:68 V3
1359testdata/Builtins.lc 283:71-283:88 ImageSemantics->Type 1378testdata/Builtins.lc 285:29-285:95 Type
1360testdata/Builtins.lc 283:71-283:102 Type 1379testdata/Builtins.lc 285:29-287:148 List ImageSemantics -> Type | List V1 -> Type | Type | V0 -> List V1 -> Type
1361testdata/Builtins.lc 283:89-283:102 ImageSemantics 1380testdata/Builtins.lc 285:30-285:47 ImageSemantics->Type
1362testdata/Builtins.lc 283:90-283:95 Type->ImageSemantics 1381testdata/Builtins.lc 285:30-285:50 Type
1363testdata/Builtins.lc 283:96-283:101 Type 1382testdata/Builtins.lc 285:30-285:72 Type->Type
1364testdata/Builtins.lc 284:3-284:12 FragmentOperation ('Stencil Int32) | StencilTests -> StencilOps -> StencilOps -> FragmentOperation ('Stencil Int32) 1383testdata/Builtins.lc 285:48-285:50 ImageSemantics
1365testdata/Builtins.lc 284:3-284:104 Type 1384testdata/Builtins.lc 285:52-285:69 ImageSemantics->Type
1366testdata/Builtins.lc 284:26-284:38 Type 1385testdata/Builtins.lc 285:52-285:72 Type
1367testdata/Builtins.lc 284:42-284:52 Type 1386testdata/Builtins.lc 285:70-285:72 ImageSemantics
1368testdata/Builtins.lc 284:42-284:104 Type 1387testdata/Builtins.lc 285:74-285:91 ImageSemantics->Type
1369testdata/Builtins.lc 284:56-284:66 Type 1388testdata/Builtins.lc 285:74-285:94 Type
1370testdata/Builtins.lc 284:56-284:104 Type 1389testdata/Builtins.lc 285:92-285:94 V3
1371testdata/Builtins.lc 284:71-284:88 ImageSemantics->Type 1390testdata/Builtins.lc 286:34-286:122 Type
1372testdata/Builtins.lc 284:71-284:104 Type 1391testdata/Builtins.lc 286:34-287:148 List ImageSemantics -> Type | List V1 -> Type | Type | V0 -> List V1 -> Type
1373testdata/Builtins.lc 284:89-284:104 ImageSemantics 1392testdata/Builtins.lc 286:35-286:52 ImageSemantics->Type
1374testdata/Builtins.lc 284:90-284:97 Type->ImageSemantics 1393testdata/Builtins.lc 286:35-286:55 Type
1375testdata/Builtins.lc 284:98-284:103 Type 1394testdata/Builtins.lc 286:35-286:77 Type -> Type->Type
1376testdata/Builtins.lc 286:28-286:42 Type 1395testdata/Builtins.lc 286:35-286:99 Type->Type
1377testdata/Builtins.lc 287:5-287:12 List ImageSemantics -> Type 1396testdata/Builtins.lc 286:53-286:55 ImageSemantics
1378testdata/Builtins.lc 287:15-287:16 List ImageSemantics 1397testdata/Builtins.lc 286:57-286:74 ImageSemantics->Type
1379testdata/Builtins.lc 287:15-291:148 List ImageSemantics -> Type | Type 1398testdata/Builtins.lc 286:57-286:77 Type
1380testdata/Builtins.lc 287:20-287:41 Type 1399testdata/Builtins.lc 286:75-286:77 ImageSemantics
1381testdata/Builtins.lc 287:20-291:148 List ImageSemantics -> Type | List V2 -> V2 | Type | V1 -> List V2 -> V2 1400testdata/Builtins.lc 286:79-286:96 ImageSemantics->Type
1382testdata/Builtins.lc 287:21-287:38 ImageSemantics->Type 1401testdata/Builtins.lc 286:79-286:99 Type
1383testdata/Builtins.lc 287:39-287:40 V4 1402testdata/Builtins.lc 286:97-286:99 ImageSemantics
1384testdata/Builtins.lc 288:25-288:69 Type 1403testdata/Builtins.lc 286:101-286:118 ImageSemantics->Type
1385testdata/Builtins.lc 288:25-291:148 List ImageSemantics -> Type | List V1 -> Type | Type | V0 -> List V1 -> Type 1404testdata/Builtins.lc 286:101-286:121 Type
1386testdata/Builtins.lc 288:26-288:43 ImageSemantics->Type 1405testdata/Builtins.lc 286:119-286:121 V3
1387testdata/Builtins.lc 288:26-288:46 Type 1406testdata/Builtins.lc 287:38-287:148 List V1 -> Type | Type | V0 -> List V1 -> Type
1388testdata/Builtins.lc 288:44-288:46 ImageSemantics 1407testdata/Builtins.lc 287:39-287:56 ImageSemantics->Type
1389testdata/Builtins.lc 288:48-288:65 ImageSemantics->Type 1408testdata/Builtins.lc 287:39-287:59 Type
1390testdata/Builtins.lc 288:48-288:68 Type 1409testdata/Builtins.lc 287:39-287:81 Type -> Type -> Type->Type
1391testdata/Builtins.lc 288:66-288:68 V3 1410testdata/Builtins.lc 287:39-287:103 Type -> Type->Type
1392testdata/Builtins.lc 289:29-289:95 Type 1411testdata/Builtins.lc 287:39-287:125 Type->Type
1393testdata/Builtins.lc 289:29-291:148 List ImageSemantics -> Type | List V1 -> Type | Type | V0 -> List V1 -> Type 1412testdata/Builtins.lc 287:57-287:59 ImageSemantics
1394testdata/Builtins.lc 289:30-289:47 ImageSemantics->Type 1413testdata/Builtins.lc 287:61-287:78 ImageSemantics->Type
1395testdata/Builtins.lc 289:30-289:50 Type 1414testdata/Builtins.lc 287:61-287:81 Type
1396testdata/Builtins.lc 289:30-289:72 Type->Type 1415testdata/Builtins.lc 287:79-287:81 ImageSemantics
1397testdata/Builtins.lc 289:48-289:50 ImageSemantics 1416testdata/Builtins.lc 287:83-287:100 ImageSemantics->Type
1398testdata/Builtins.lc 289:52-289:69 ImageSemantics->Type 1417testdata/Builtins.lc 287:83-287:103 Type
1399testdata/Builtins.lc 289:52-289:72 Type 1418testdata/Builtins.lc 287:101-287:103 ImageSemantics
1400testdata/Builtins.lc 289:70-289:72 ImageSemantics 1419testdata/Builtins.lc 287:105-287:122 ImageSemantics->Type
1401testdata/Builtins.lc 289:74-289:91 ImageSemantics->Type 1420testdata/Builtins.lc 287:105-287:125 Type
1402testdata/Builtins.lc 289:74-289:94 Type 1421testdata/Builtins.lc 287:123-287:125 ImageSemantics
1403testdata/Builtins.lc 289:92-289:94 V3 1422testdata/Builtins.lc 287:127-287:144 ImageSemantics->Type
1404testdata/Builtins.lc 290:34-290:122 Type 1423testdata/Builtins.lc 287:127-287:147 Type
1405testdata/Builtins.lc 290:34-291:148 List ImageSemantics -> Type | List V1 -> Type | Type | V0 -> List V1 -> Type 1424testdata/Builtins.lc 287:145-287:147 V3
1406testdata/Builtins.lc 290:35-290:52 ImageSemantics->Type 1425testdata/Builtins.lc 289:6-289:8 {a} -> List a -> List a -> List a
1407testdata/Builtins.lc 290:35-290:55 Type 1426testdata/Builtins.lc 289:14-289:16 V3
1408testdata/Builtins.lc 290:35-290:77 Type -> Type->Type 1427testdata/Builtins.lc 289:14-290:26 List V0 -> List V1 | V0->V1
1409testdata/Builtins.lc 290:35-290:99 Type->Type 1428testdata/Builtins.lc 290:14-290:15 V3
1410testdata/Builtins.lc 290:53-290:55 ImageSemantics 1429testdata/Builtins.lc 290:14-290:17 List V2 -> List V3
1411testdata/Builtins.lc 290:57-290:74 ImageSemantics->Type 1430testdata/Builtins.lc 290:14-290:26 List V1 -> V4 | List V2 | V0 -> List V1 -> V4
1412testdata/Builtins.lc 290:57-290:77 Type 1431testdata/Builtins.lc 290:16-290:17 {a} -> a -> List a -> List a
1413testdata/Builtins.lc 290:75-290:77 ImageSemantics 1432testdata/Builtins.lc 290:18-290:20 List V5
1414testdata/Builtins.lc 290:79-290:96 ImageSemantics->Type 1433testdata/Builtins.lc 290:21-290:23 V7
1415testdata/Builtins.lc 290:79-290:99 Type 1434testdata/Builtins.lc 290:24-290:26 List V6
1416testdata/Builtins.lc 290:97-290:99 ImageSemantics 1435testdata/Builtins.lc 292:1-292:6 {a} -> {b} -> (b -> a->a) -> a -> List b -> a
1417testdata/Builtins.lc 290:101-290:118 ImageSemantics->Type 1436testdata/Builtins.lc 292:16-292:17 V5
1418testdata/Builtins.lc 290:101-290:121 Type 1437testdata/Builtins.lc 292:16-293:39 List V1 -> V6 | V0->V1
1419testdata/Builtins.lc 290:119-290:121 V3 1438testdata/Builtins.lc 293:21-293:22 V8
1420testdata/Builtins.lc 291:38-291:148 List V1 -> Type | Type | V0 -> List V1 -> Type 1439testdata/Builtins.lc 293:21-293:39 List V1 -> V6 | V0 -> List V1 -> V6
1421testdata/Builtins.lc 291:39-291:56 ImageSemantics->Type 1440testdata/Builtins.lc 293:23-293:24 V5
1422testdata/Builtins.lc 291:39-291:59 Type 1441testdata/Builtins.lc 293:26-293:31 V13
1423testdata/Builtins.lc 291:39-291:81 Type -> Type -> Type->Type 1442testdata/Builtins.lc 293:32-293:33 V9->V7
1424testdata/Builtins.lc 291:39-291:103 Type -> Type->Type 1443testdata/Builtins.lc 293:34-293:35 V14
1425testdata/Builtins.lc 291:39-291:125 Type->Type 1444testdata/Builtins.lc 293:36-293:38 List V10
1426testdata/Builtins.lc 291:57-291:59 ImageSemantics 1445testdata/Builtins.lc 295:1-295:7 {a} -> List (List a) -> List a
1427testdata/Builtins.lc 291:61-291:78 ImageSemantics->Type 1446testdata/Builtins.lc 295:10-295:15 {a} -> {b} -> (b -> a->a) -> a -> List b -> a
1428testdata/Builtins.lc 291:61-291:81 Type 1447testdata/Builtins.lc 295:10-295:20 List V0 -> List (List V1) -> List V2
1429testdata/Builtins.lc 291:79-291:81 ImageSemantics 1448testdata/Builtins.lc 295:10-295:23 List (List V0) -> List V1
1430testdata/Builtins.lc 291:83-291:100 ImageSemantics->Type 1449testdata/Builtins.lc 295:16-295:20 {a} -> List a -> List a -> List a
1431testdata/Builtins.lc 291:83-291:103 Type 1450testdata/Builtins.lc 295:21-295:23 {a} -> List a
1432testdata/Builtins.lc 291:101-291:103 ImageSemantics 1451testdata/Builtins.lc 297:1-297:4 {a} -> {b} -> a->b -> List a -> List b
1433testdata/Builtins.lc 291:105-291:122 ImageSemantics->Type 1452testdata/Builtins.lc 297:16-297:18 {a} -> List a
1434testdata/Builtins.lc 291:105-291:125 Type 1453testdata/Builtins.lc 297:16-298:30 List V1 -> List V1 | V0->V1
1435testdata/Builtins.lc 291:123-291:125 ImageSemantics 1454testdata/Builtins.lc 298:16-298:17 V8
1436testdata/Builtins.lc 291:127-291:144 ImageSemantics->Type 1455testdata/Builtins.lc 298:16-298:21 List V0 -> List V1
1437testdata/Builtins.lc 291:127-291:147 Type 1456testdata/Builtins.lc 298:16-298:30 List V2 | List V2 -> List V2 | V1 -> List V2 -> List V2
1438testdata/Builtins.lc 291:145-291:147 V3 1457testdata/Builtins.lc 298:18-298:19 V7
1439testdata/Builtins.lc 293:6-293:8 {a} -> List a -> List a -> List a 1458testdata/Builtins.lc 298:20-298:21 {a} -> a -> List a -> List a
1440testdata/Builtins.lc 293:14-293:16 V3 1459testdata/Builtins.lc 298:22-298:25 V8
1441testdata/Builtins.lc 293:14-294:26 List V0 -> List V1 | V0->V1 1460testdata/Builtins.lc 298:26-298:27 V6->V6
1442testdata/Builtins.lc 294:14-294:15 V3 1461testdata/Builtins.lc 298:28-298:30 List V7
1443testdata/Builtins.lc 294:14-294:17 List V2 -> List V3 1462testdata/Builtins.lc 300:14-300:38 Type
1444testdata/Builtins.lc 294:14-294:26 List V1 -> V4 | List V2 | V0 -> List V1 -> V4 1463testdata/Builtins.lc 300:15-300:16 V3
1445testdata/Builtins.lc 294:16-294:17 {a} -> a -> List a -> List a 1464testdata/Builtins.lc 300:20-300:23 Type
1446testdata/Builtins.lc 294:18-294:20 List V5 1465testdata/Builtins.lc 300:21-300:22 V2
1447testdata/Builtins.lc 294:21-294:23 V7 1466testdata/Builtins.lc 300:28-300:38 Type
1448testdata/Builtins.lc 294:24-294:26 List V6 1467testdata/Builtins.lc 300:29-300:30 Type
1449testdata/Builtins.lc 296:1-296:6 {a} -> {b} -> (b -> a->a) -> a -> List b -> a 1468testdata/Builtins.lc 300:35-300:38 Type
1450testdata/Builtins.lc 296:16-296:17 V5 1469testdata/Builtins.lc 300:36-300:37 Type
1451testdata/Builtins.lc 296:16-297:39 List V1 -> V6 | V0->V1 1470testdata/Builtins.lc 301:1-301:10 {a} -> {b} -> (a -> List b) -> List a -> List b
1452testdata/Builtins.lc 297:21-297:22 V8 1471testdata/Builtins.lc 301:17-301:23 {a} -> List (List a) -> List a
1453testdata/Builtins.lc 297:21-297:39 List V1 -> V6 | V0 -> List V1 -> V6 1472testdata/Builtins.lc 301:17-301:33 (V1 -> List V1) -> List V2 -> List V2 | List V2 | List V2 -> List V2
1454testdata/Builtins.lc 297:23-297:24 V5 1473testdata/Builtins.lc 301:24-301:33 List (List V2)
1455testdata/Builtins.lc 297:26-297:31 V13 1474testdata/Builtins.lc 301:25-301:28 {a} -> {b} -> a->b -> List a -> List b
1456testdata/Builtins.lc 297:32-297:33 V9->V7 1475testdata/Builtins.lc 301:25-301:30 List V4 -> List (List V4)
1457testdata/Builtins.lc 297:34-297:35 V14 1476testdata/Builtins.lc 301:29-301:30 V6 -> List V6
1458testdata/Builtins.lc 297:36-297:38 List V10 1477testdata/Builtins.lc 301:31-301:32 List V3
1459testdata/Builtins.lc 299:1-299:7 {a} -> List (List a) -> List a 1478testdata/Builtins.lc 303:6-303:15 Type | Type -> PrimitiveType->Type
1460testdata/Builtins.lc 299:10-299:15 {a} -> {b} -> (b -> a->a) -> a -> List b -> a 1479testdata/Builtins.lc 303:6-306:56 Type
1461testdata/Builtins.lc 299:10-299:20 List V0 -> List (List V1) -> List V2 1480testdata/Builtins.lc 303:21-303:34 Type
1462testdata/Builtins.lc 299:10-299:23 List (List V0) -> List V1 1481testdata/Builtins.lc 303:21-303:42 Type
1463testdata/Builtins.lc 299:16-299:20 {a} -> List a -> List a -> List a 1482testdata/Builtins.lc 303:38-303:42 Type
1464testdata/Builtins.lc 299:21-299:23 {a} -> List a 1483testdata/Builtins.lc 304:5-304:14 Primitive V2 'Point | {a} -> a -> Primitive a 'Point
1465testdata/Builtins.lc 301:1-301:4 {a} -> {b} -> a->b -> List a -> List b 1484testdata/Builtins.lc 304:5-304:53 Type
1466testdata/Builtins.lc 301:16-301:18 {a} -> List a 1485testdata/Builtins.lc 304:21-304:22 Type
1467testdata/Builtins.lc 301:16-302:30 List V1 -> List V1 | V0->V1 1486testdata/Builtins.lc 304:21-304:53 Type
1468testdata/Builtins.lc 302:16-302:17 V8 1487testdata/Builtins.lc 304:36-304:45 Type -> PrimitiveType->Type
1469testdata/Builtins.lc 302:16-302:21 List V0 -> List V1 1488testdata/Builtins.lc 304:36-304:47 PrimitiveType->Type
1470testdata/Builtins.lc 302:16-302:30 List V2 | List V2 -> List V2 | V1 -> List V2 -> List V2 1489testdata/Builtins.lc 304:36-304:53 Type
1471testdata/Builtins.lc 302:18-302:19 V7 1490testdata/Builtins.lc 304:46-304:47 Type
1472testdata/Builtins.lc 302:20-302:21 {a} -> a -> List a -> List a 1491testdata/Builtins.lc 304:48-304:53 PrimitiveType
1473testdata/Builtins.lc 302:22-302:25 V8 1492testdata/Builtins.lc 305:5-305:13 Primitive V4 'Line | {a} -> a -> a -> Primitive a 'Line
1474testdata/Builtins.lc 302:26-302:27 V6->V6 1493testdata/Builtins.lc 305:5-305:52 Type
1475testdata/Builtins.lc 302:28-302:30 List V7 1494testdata/Builtins.lc 305:21-305:22 Type
1476testdata/Builtins.lc 304:14-304:38 Type 1495testdata/Builtins.lc 305:21-305:52 Type
1477testdata/Builtins.lc 304:15-304:16 V3 1496testdata/Builtins.lc 305:26-305:27 Type
1478testdata/Builtins.lc 304:20-304:23 Type 1497testdata/Builtins.lc 305:26-305:52 Type
1479testdata/Builtins.lc 304:21-304:22 V2 1498testdata/Builtins.lc 305:36-305:45 Type -> PrimitiveType->Type
1480testdata/Builtins.lc 304:28-304:38 Type 1499testdata/Builtins.lc 305:36-305:47 PrimitiveType->Type
1481testdata/Builtins.lc 304:29-304:30 Type 1500testdata/Builtins.lc 305:36-305:52 Type
1482testdata/Builtins.lc 304:35-304:38 Type 1501testdata/Builtins.lc 305:46-305:47 Type
1483testdata/Builtins.lc 304:36-304:37 Type 1502testdata/Builtins.lc 305:48-305:52 PrimitiveType
1484testdata/Builtins.lc 305:1-305:10 {a} -> {b} -> (a -> List b) -> List a -> List b 1503testdata/Builtins.lc 306:5-306:17 Primitive V6 'Triangle | {a} -> a -> a -> a -> Primitive a 'Triangle
1485testdata/Builtins.lc 305:17-305:23 {a} -> List (List a) -> List a 1504testdata/Builtins.lc 306:5-306:56 Type
1486testdata/Builtins.lc 305:17-305:33 (V1 -> List V1) -> List V2 -> List V2 | List V2 | List V2 -> List V2 1505testdata/Builtins.lc 306:21-306:22 Type
1487testdata/Builtins.lc 305:24-305:33 List (List V2) 1506testdata/Builtins.lc 306:21-306:56 Type
1488testdata/Builtins.lc 305:25-305:28 {a} -> {b} -> a->b -> List a -> List b 1507testdata/Builtins.lc 306:26-306:27 Type
1489testdata/Builtins.lc 305:25-305:30 List V4 -> List (List V4) 1508testdata/Builtins.lc 306:26-306:56 Type
1490testdata/Builtins.lc 305:29-305:30 V6 -> List V6 1509testdata/Builtins.lc 306:31-306:32 Type
1491testdata/Builtins.lc 305:31-305:32 List V3 1510testdata/Builtins.lc 306:31-306:56 Type
1492testdata/Builtins.lc 307:6-307:15 Type | Type -> PrimitiveType->Type 1511testdata/Builtins.lc 306:36-306:45 Type -> PrimitiveType->Type
1493testdata/Builtins.lc 307:6-310:56 Type 1512testdata/Builtins.lc 306:36-306:47 PrimitiveType->Type
1494testdata/Builtins.lc 307:21-307:34 Type 1513testdata/Builtins.lc 306:36-306:56 Type
1495testdata/Builtins.lc 307:21-307:42 Type 1514testdata/Builtins.lc 306:46-306:47 Type
1496testdata/Builtins.lc 307:38-307:42 Type 1515testdata/Builtins.lc 306:48-306:56 PrimitiveType
1497testdata/Builtins.lc 308:5-308:14 Primitive V2 'Point | {a} -> a -> Primitive a 'Point 1516testdata/Builtins.lc 308:6-308:21 PrimitiveType -> Type->Type
1498testdata/Builtins.lc 308:5-308:53 Type 1517testdata/Builtins.lc 308:29-308:38 Type -> PrimitiveType->Type
1499testdata/Builtins.lc 308:21-308:22 Type 1518testdata/Builtins.lc 308:29-308:40 PrimitiveType->Type
1500testdata/Builtins.lc 308:21-308:53 Type 1519testdata/Builtins.lc 308:29-308:42 Type
1501testdata/Builtins.lc 308:36-308:45 Type -> PrimitiveType->Type 1520testdata/Builtins.lc 308:39-308:40 V1
1502testdata/Builtins.lc 308:36-308:47 PrimitiveType->Type 1521testdata/Builtins.lc 308:41-308:42 V2
1503testdata/Builtins.lc 308:36-308:53 Type 1522testdata/Builtins.lc 310:1-310:13 {a} -> {b} -> {c:PrimitiveType} -> a->b -> Primitive a c -> Primitive b c
1504testdata/Builtins.lc 308:46-308:47 Type 1523testdata/Builtins.lc 310:17-310:59 Type
1505testdata/Builtins.lc 308:48-308:53 PrimitiveType 1524testdata/Builtins.lc 310:18-310:19 V5
1506testdata/Builtins.lc 309:5-309:13 Primitive V4 'Line | {a} -> a -> a -> Primitive a 'Line 1525testdata/Builtins.lc 310:23-310:24 Type | V4
1507testdata/Builtins.lc 309:5-309:52 Type 1526testdata/Builtins.lc 310:29-310:38 Type -> PrimitiveType->Type
1508testdata/Builtins.lc 309:21-309:22 Type 1527testdata/Builtins.lc 310:29-310:40 PrimitiveType->Type
1509testdata/Builtins.lc 309:21-309:52 Type 1528testdata/Builtins.lc 310:29-310:42 Type
1510testdata/Builtins.lc 309:26-309:27 Type 1529testdata/Builtins.lc 310:29-310:59 Type
1511testdata/Builtins.lc 309:26-309:52 Type 1530testdata/Builtins.lc 310:39-310:40 Type
1512testdata/Builtins.lc 309:36-309:45 Type -> PrimitiveType->Type 1531testdata/Builtins.lc 310:41-310:42 V2
1513testdata/Builtins.lc 309:36-309:47 PrimitiveType->Type 1532testdata/Builtins.lc 310:46-310:55 Type -> PrimitiveType->Type
1514testdata/Builtins.lc 309:36-309:52 Type 1533testdata/Builtins.lc 310:46-310:57 PrimitiveType->Type
1515testdata/Builtins.lc 309:46-309:47 Type 1534testdata/Builtins.lc 310:46-310:59 Type
1516testdata/Builtins.lc 309:48-309:52 PrimitiveType 1535testdata/Builtins.lc 310:56-310:57 Type
1517testdata/Builtins.lc 310:5-310:17 Primitive V6 'Triangle | {a} -> a -> a -> a -> Primitive a 'Triangle 1536testdata/Builtins.lc 310:58-310:59 PrimitiveType
1518testdata/Builtins.lc 310:5-310:56 Type 1537testdata/Builtins.lc 317:1-317:7 {a:PrimitiveType} -> {b} -> {c : AttributeTuple b} -> String -> b -> PrimitiveStream a b
1519testdata/Builtins.lc 310:21-310:22 Type 1538testdata/Builtins.lc 317:38-317:56 Type
1520testdata/Builtins.lc 310:21-310:56 Type 1539testdata/Builtins.lc 317:38-317:94 Type
1521testdata/Builtins.lc 310:26-310:27 Type 1540testdata/Builtins.lc 317:39-317:53 Type->Type
1522testdata/Builtins.lc 310:26-310:56 Type 1541testdata/Builtins.lc 317:54-317:55 V1
1523testdata/Builtins.lc 310:31-310:32 Type 1542testdata/Builtins.lc 317:60-317:66 Type
1524testdata/Builtins.lc 310:31-310:56 Type 1543testdata/Builtins.lc 317:60-317:94 Type
1525testdata/Builtins.lc 310:36-310:45 Type -> PrimitiveType->Type 1544testdata/Builtins.lc 317:70-317:71 Type
1526testdata/Builtins.lc 310:36-310:47 PrimitiveType->Type 1545testdata/Builtins.lc 317:70-317:94 Type
1527testdata/Builtins.lc 310:36-310:56 Type 1546testdata/Builtins.lc 317:75-317:90 PrimitiveType -> Type->Type
1528testdata/Builtins.lc 310:46-310:47 Type 1547testdata/Builtins.lc 317:75-317:92 Type->Type
1529testdata/Builtins.lc 310:48-310:56 PrimitiveType 1548testdata/Builtins.lc 317:75-317:94 Type
1530testdata/Builtins.lc 312:6-312:21 PrimitiveType -> Type->Type 1549testdata/Builtins.lc 317:91-317:92 V5
1531testdata/Builtins.lc 312:29-312:38 Type -> PrimitiveType->Type 1550testdata/Builtins.lc 317:93-317:94 Type
1532testdata/Builtins.lc 312:29-312:40 PrimitiveType->Type 1551testdata/Builtins.lc 318:1-318:13 {a:PrimitiveType} -> {b} -> {c} -> {d : AttributeTuple b} -> {e : b ~ FTRepr' c} -> c -> PrimitiveStream a b
1533testdata/Builtins.lc 312:29-312:42 Type 1552testdata/Builtins.lc 318:41-318:104 Type
1534testdata/Builtins.lc 312:39-312:40 V1 1553testdata/Builtins.lc 318:42-318:56 Type->Type
1535testdata/Builtins.lc 312:41-312:42 V2 1554testdata/Builtins.lc 318:42-318:58 Type
1536testdata/Builtins.lc 314:1-314:13 {a} -> {b} -> {c:PrimitiveType} -> a->b -> Primitive a c -> Primitive b c 1555testdata/Builtins.lc 318:57-318:58 V3
1537testdata/Builtins.lc 314:17-314:59 Type 1556testdata/Builtins.lc 318:60-318:61 Type
1538testdata/Builtins.lc 314:18-314:19 V5 1557testdata/Builtins.lc 318:60-318:63 Type->Type
1539testdata/Builtins.lc 314:23-314:24 Type | V4 1558testdata/Builtins.lc 318:60-318:74 Type
1540testdata/Builtins.lc 314:29-314:38 Type -> PrimitiveType->Type 1559testdata/Builtins.lc 318:60-318:104 Type
1541testdata/Builtins.lc 314:29-314:40 PrimitiveType->Type 1560testdata/Builtins.lc 318:62-318:63 {a} -> a -> a->Type
1542testdata/Builtins.lc 314:29-314:42 Type 1561testdata/Builtins.lc 318:64-318:71 Type->Type
1543testdata/Builtins.lc 314:29-314:59 Type 1562testdata/Builtins.lc 318:64-318:74 Type
1544testdata/Builtins.lc 314:39-314:40 Type 1563testdata/Builtins.lc 318:72-318:74 V2
1545testdata/Builtins.lc 314:41-314:42 V2 1564testdata/Builtins.lc 318:79-318:81 Type
1546testdata/Builtins.lc 314:46-314:55 Type -> PrimitiveType->Type 1565testdata/Builtins.lc 318:79-318:104 Type
1547testdata/Builtins.lc 314:46-314:57 PrimitiveType->Type 1566testdata/Builtins.lc 318:85-318:100 PrimitiveType -> Type->Type
1548testdata/Builtins.lc 314:46-314:59 Type 1567testdata/Builtins.lc 318:85-318:102 Type->Type
1549testdata/Builtins.lc 314:56-314:57 Type 1568testdata/Builtins.lc 318:85-318:104 Type
1550testdata/Builtins.lc 314:58-314:59 PrimitiveType 1569testdata/Builtins.lc 318:101-318:102 V6
1551testdata/Builtins.lc 321:1-321:7 {a:PrimitiveType} -> {b} -> {c : AttributeTuple b} -> String -> b -> PrimitiveStream a b 1570testdata/Builtins.lc 318:103-318:104 Type
1552testdata/Builtins.lc 321:38-321:56 Type 1571testdata/Builtins.lc 320:18-320:72 Type
1553testdata/Builtins.lc 321:38-321:94 Type 1572testdata/Builtins.lc 320:19-320:20 V5
1554testdata/Builtins.lc 321:39-321:53 Type->Type 1573testdata/Builtins.lc 320:24-320:25 Type | V4
1555testdata/Builtins.lc 321:54-321:55 V1 1574testdata/Builtins.lc 320:30-320:45 PrimitiveType -> Type->Type
1556testdata/Builtins.lc 321:60-321:66 Type 1575testdata/Builtins.lc 320:30-320:47 Type->Type
1557testdata/Builtins.lc 321:60-321:94 Type 1576testdata/Builtins.lc 320:30-320:49 Type
1558testdata/Builtins.lc 321:70-321:71 Type 1577testdata/Builtins.lc 320:30-320:72 Type
1559testdata/Builtins.lc 321:70-321:94 Type 1578testdata/Builtins.lc 320:46-320:47 V2
1560testdata/Builtins.lc 321:75-321:90 PrimitiveType -> Type->Type 1579testdata/Builtins.lc 320:48-320:49 Type
1561testdata/Builtins.lc 321:75-321:92 Type->Type 1580testdata/Builtins.lc 320:53-320:68 PrimitiveType -> Type->Type
1562testdata/Builtins.lc 321:75-321:94 Type 1581testdata/Builtins.lc 320:53-320:70 Type->Type
1563testdata/Builtins.lc 321:91-321:92 V5 1582testdata/Builtins.lc 320:53-320:72 Type
1564testdata/Builtins.lc 321:93-321:94 Type 1583testdata/Builtins.lc 320:69-320:70 PrimitiveType
1565testdata/Builtins.lc 322:1-322:13 {a:PrimitiveType} -> {b} -> {c} -> {d : AttributeTuple b} -> {e : b ~ FTRepr' c} -> c -> PrimitiveStream a b 1584testdata/Builtins.lc 320:71-320:72 Type
1566testdata/Builtins.lc 322:41-322:104 Type 1585testdata/Builtins.lc 321:1-321:14 {a} -> {b} -> {c:PrimitiveType} -> a->b -> List (Primitive a c) -> List (Primitive b c)
1567testdata/Builtins.lc 322:42-322:56 Type->Type 1586testdata/Builtins.lc 321:19-321:22 {a} -> {b} -> a->b -> List a -> List b
1568testdata/Builtins.lc 322:42-322:58 Type 1587testdata/Builtins.lc 321:19-321:39 List (Primitive V4 V0) -> List (Primitive V4 V1) | V2->V2 -> PrimitiveStream V1 V3 -> PrimitiveStream V2 V3
1569testdata/Builtins.lc 322:57-322:58 V3 1588testdata/Builtins.lc 321:23-321:39 Primitive V6 V0 -> Primitive V6 V1
1570testdata/Builtins.lc 322:60-322:61 Type 1589testdata/Builtins.lc 321:24-321:36 {a} -> {b} -> {c:PrimitiveType} -> a->b -> Primitive a c -> Primitive b c
1571testdata/Builtins.lc 322:60-322:63 Type->Type 1590testdata/Builtins.lc 321:37-321:38 V8->V8
1572testdata/Builtins.lc 322:60-322:74 Type 1591testdata/Builtins.lc 323:1-323:6 {a} -> String -> c:PrimitiveType -> a -> PrimitiveStream c a
1573testdata/Builtins.lc 322:60-322:104 Type 1592testdata/Builtins.lc 323:15-323:21 {a:PrimitiveType} -> {b} -> {c : AttributeTuple b} -> String -> b -> PrimitiveStream a b
1574testdata/Builtins.lc 322:62-322:63 {a} -> a -> a->Type 1593testdata/Builtins.lc 323:15-323:24 {a} -> {b : AttributeTuple a} -> String -> a -> PrimitiveStream V6 a
1575testdata/Builtins.lc 322:64-322:71 Type->Type 1594testdata/Builtins.lc 323:15-323:26 V0 -> PrimitiveStream V4 V1
1576testdata/Builtins.lc 322:64-322:74 Type 1595testdata/Builtins.lc 323:15-323:28 PrimitiveStream V2 V1
1577testdata/Builtins.lc 322:72-322:74 V2 1596testdata/Builtins.lc 323:23-323:24 V3
1578testdata/Builtins.lc 322:79-322:81 Type 1597testdata/Builtins.lc 323:25-323:26 V5
1579testdata/Builtins.lc 322:79-322:104 Type 1598testdata/Builtins.lc 323:27-323:28 V2
1580testdata/Builtins.lc 322:85-322:100 PrimitiveType -> Type->Type 1599testdata/Builtins.lc 324:1-324:12 {a} -> b:PrimitiveType -> a -> PrimitiveStream b (FTRepr' a)
1581testdata/Builtins.lc 322:85-322:102 Type->Type 1600testdata/Builtins.lc 324:19-324:31 {a:PrimitiveType} -> {b} -> {c} -> {d : AttributeTuple b} -> {e : b ~ FTRepr' c} -> c -> PrimitiveStream a b
1582testdata/Builtins.lc 322:85-322:104 Type 1601testdata/Builtins.lc 324:19-324:34 {a} -> {b} -> {c : AttributeTuple a} -> {d : a ~ FTRepr' b} -> b -> PrimitiveStream V7 a
1583testdata/Builtins.lc 322:101-322:102 V6 1602testdata/Builtins.lc 324:19-324:36 PrimitiveStream V2 (FTRepr' V1)
1584testdata/Builtins.lc 322:103-322:104 Type 1603testdata/Builtins.lc 324:33-324:34 V3
1585testdata/Builtins.lc 324:18-324:72 Type 1604testdata/Builtins.lc 324:35-324:36 V2
1586testdata/Builtins.lc 324:19-324:20 V5 1605testdata/Builtins.lc 326:17-326:31 Type
1587testdata/Builtins.lc 324:24-324:25 Type | V4 1606testdata/Builtins.lc 326:35-326:39 Type
1588testdata/Builtins.lc 324:30-324:45 PrimitiveType -> Type->Type 1607testdata/Builtins.lc 327:1-327:13 ImageSemantics->Type
1589testdata/Builtins.lc 324:30-324:47 Type->Type 1608testdata/Builtins.lc 327:21-327:22 ImageSemantics
1590testdata/Builtins.lc 324:30-324:49 Type 1609testdata/Builtins.lc 327:21-329:29 ImageSemantics->Type | Type
1591testdata/Builtins.lc 324:30-324:72 Type 1610testdata/Builtins.lc 327:26-327:27 Type | Type->Type
1592testdata/Builtins.lc 324:46-324:47 V2 1611testdata/Builtins.lc 327:26-329:29 ImageSemantics->Type
1593testdata/Builtins.lc 324:48-324:49 Type 1612testdata/Builtins.lc 328:26-328:27 Type | Type->V1
1594testdata/Builtins.lc 324:53-324:68 PrimitiveType -> Type->Type 1613testdata/Builtins.lc 328:26-329:29 Type->Type -> ImageSemantics->Type
1595testdata/Builtins.lc 324:53-324:70 Type->Type 1614testdata/Builtins.lc 329:28-329:29 Type | Type->Type
1596testdata/Builtins.lc 324:53-324:72 Type 1615testdata/Builtins.lc 331:19-331:33 Type
1597testdata/Builtins.lc 324:69-324:70 PrimitiveType 1616testdata/Builtins.lc 331:38-331:42 Type
1598testdata/Builtins.lc 324:71-324:72 Type 1617testdata/Builtins.lc 332:1-332:14 List ImageSemantics -> Type
1599testdata/Builtins.lc 325:1-325:14 {a} -> {b} -> {c:PrimitiveType} -> a->b -> List (Primitive a c) -> List (Primitive b c) 1618testdata/Builtins.lc 332:20-332:23 Type
1600testdata/Builtins.lc 325:19-325:22 {a} -> {b} -> a->b -> List a -> List b 1619testdata/Builtins.lc 332:20-337:114 List ImageSemantics -> Type | Type
1601testdata/Builtins.lc 325:19-325:39 List (Primitive V4 V0) -> List (Primitive V4 V1) | V2->V2 -> PrimitiveStream V1 V3 -> PrimitiveStream V2 V3 1620testdata/Builtins.lc 333:21-333:33 ImageSemantics->Type
1602testdata/Builtins.lc 325:23-325:39 Primitive V6 V0 -> Primitive V6 V1 1621testdata/Builtins.lc 333:21-333:35 Type
1603testdata/Builtins.lc 325:24-325:36 {a} -> {b} -> {c:PrimitiveType} -> a->b -> Primitive a c -> Primitive b c 1622testdata/Builtins.lc 333:21-337:114 List ImageSemantics -> Type | List V1 -> Type | Type | V0 -> List V1 -> Type
1604testdata/Builtins.lc 325:37-325:38 V8->V8 1623testdata/Builtins.lc 333:34-333:35 V3
1605testdata/Builtins.lc 327:1-327:6 {a} -> String -> c:PrimitiveType -> a -> PrimitiveStream c a 1624testdata/Builtins.lc 334:24-334:57 Type
1606testdata/Builtins.lc 327:15-327:21 {a:PrimitiveType} -> {b} -> {c : AttributeTuple b} -> String -> b -> PrimitiveStream a b 1625testdata/Builtins.lc 334:24-337:114 List ImageSemantics -> Type | List V1 -> Type | Type | V0 -> List V1 -> Type
1607testdata/Builtins.lc 327:15-327:24 {a} -> {b : AttributeTuple a} -> String -> a -> PrimitiveStream V6 a 1626testdata/Builtins.lc 334:26-334:38 ImageSemantics->Type
1608testdata/Builtins.lc 327:15-327:26 V0 -> PrimitiveStream V4 V1 1627testdata/Builtins.lc 334:26-334:40 Type
1609testdata/Builtins.lc 327:15-327:28 PrimitiveStream V2 V1 1628testdata/Builtins.lc 334:39-334:40 ImageSemantics
1610testdata/Builtins.lc 327:23-327:24 V3 1629testdata/Builtins.lc 334:42-334:54 ImageSemantics->Type
1611testdata/Builtins.lc 327:25-327:26 V5 1630testdata/Builtins.lc 334:42-334:56 Type
1612testdata/Builtins.lc 327:27-327:28 V2 1631testdata/Builtins.lc 334:55-334:56 V3
1613testdata/Builtins.lc 328:1-328:12 {a} -> b:PrimitiveType -> a -> PrimitiveStream b (FTRepr' a) 1632testdata/Builtins.lc 335:27-335:76 Type
1614testdata/Builtins.lc 328:19-328:31 {a:PrimitiveType} -> {b} -> {c} -> {d : AttributeTuple b} -> {e : b ~ FTRepr' c} -> c -> PrimitiveStream a b 1633testdata/Builtins.lc 335:27-337:114 List ImageSemantics -> Type | List V1 -> Type | Type | V0 -> List V1 -> Type
1615testdata/Builtins.lc 328:19-328:34 {a} -> {b} -> {c : AttributeTuple a} -> {d : a ~ FTRepr' b} -> b -> PrimitiveStream V7 a 1634testdata/Builtins.lc 335:29-335:41 ImageSemantics->Type
1616testdata/Builtins.lc 328:19-328:36 PrimitiveStream V2 (FTRepr' V1) 1635testdata/Builtins.lc 335:29-335:43 Type
1617testdata/Builtins.lc 328:33-328:34 V3 1636testdata/Builtins.lc 335:29-335:59 Type->Type
1618testdata/Builtins.lc 328:35-328:36 V2 1637testdata/Builtins.lc 335:42-335:43 ImageSemantics
1619testdata/Builtins.lc 330:17-330:31 Type 1638testdata/Builtins.lc 335:45-335:57 ImageSemantics->Type
1620testdata/Builtins.lc 330:35-330:39 Type 1639testdata/Builtins.lc 335:45-335:59 Type
1621testdata/Builtins.lc 331:1-331:13 ImageSemantics->Type 1640testdata/Builtins.lc 335:58-335:59 ImageSemantics
1622testdata/Builtins.lc 331:21-331:22 ImageSemantics 1641testdata/Builtins.lc 335:61-335:73 ImageSemantics->Type
1623testdata/Builtins.lc 331:21-333:29 ImageSemantics->Type | Type 1642testdata/Builtins.lc 335:61-335:75 Type
1624testdata/Builtins.lc 331:26-331:27 Type | Type->Type 1643testdata/Builtins.lc 335:74-335:75 V3
1625testdata/Builtins.lc 331:26-333:29 ImageSemantics->Type 1644testdata/Builtins.lc 336:30-336:95 Type
1626testdata/Builtins.lc 332:26-332:27 Type | Type->V1 1645testdata/Builtins.lc 336:30-337:114 List ImageSemantics -> Type | List V1 -> Type | Type | V0 -> List V1 -> Type
1627testdata/Builtins.lc 332:26-333:29 Type->Type -> ImageSemantics->Type 1646testdata/Builtins.lc 336:32-336:44 ImageSemantics->Type
1628testdata/Builtins.lc 333:28-333:29 Type | Type->Type 1647testdata/Builtins.lc 336:32-336:46 Type
1629testdata/Builtins.lc 335:19-335:33 Type 1648testdata/Builtins.lc 336:32-336:62 Type -> Type->Type
1630testdata/Builtins.lc 335:38-335:42 Type 1649testdata/Builtins.lc 336:32-336:78 Type->Type
1631testdata/Builtins.lc 336:1-336:14 List ImageSemantics -> Type 1650testdata/Builtins.lc 336:45-336:46 ImageSemantics
1632testdata/Builtins.lc 336:20-336:23 Type 1651testdata/Builtins.lc 336:48-336:60 ImageSemantics->Type
1633testdata/Builtins.lc 336:20-341:114 List ImageSemantics -> Type | Type 1652testdata/Builtins.lc 336:48-336:62 Type
1634testdata/Builtins.lc 337:21-337:33 ImageSemantics->Type 1653testdata/Builtins.lc 336:61-336:62 ImageSemantics
1635testdata/Builtins.lc 337:21-337:35 Type 1654testdata/Builtins.lc 336:64-336:76 ImageSemantics->Type
1636testdata/Builtins.lc 337:21-341:114 List ImageSemantics -> Type | List V1 -> Type | Type | V0 -> List V1 -> Type 1655testdata/Builtins.lc 336:64-336:78 Type
1637testdata/Builtins.lc 337:34-337:35 V3 1656testdata/Builtins.lc 336:77-336:78 ImageSemantics
1638testdata/Builtins.lc 338:24-338:57 Type 1657testdata/Builtins.lc 336:80-336:92 ImageSemantics->Type
1639testdata/Builtins.lc 338:24-341:114 List ImageSemantics -> Type | List V1 -> Type | Type | V0 -> List V1 -> Type 1658testdata/Builtins.lc 336:80-336:94 Type
1640testdata/Builtins.lc 338:26-338:38 ImageSemantics->Type 1659testdata/Builtins.lc 336:93-336:94 V3
1641testdata/Builtins.lc 338:26-338:40 Type 1660testdata/Builtins.lc 337:33-337:114 List V1 -> Type | Type | V0 -> List V1 -> Type
1642testdata/Builtins.lc 338:39-338:40 ImageSemantics 1661testdata/Builtins.lc 337:35-337:47 ImageSemantics->Type
1643testdata/Builtins.lc 338:42-338:54 ImageSemantics->Type 1662testdata/Builtins.lc 337:35-337:49 Type
1644testdata/Builtins.lc 338:42-338:56 Type 1663testdata/Builtins.lc 337:35-337:65 Type -> Type -> Type->Type
1645testdata/Builtins.lc 338:55-338:56 V3 1664testdata/Builtins.lc 337:35-337:81 Type -> Type->Type
1646testdata/Builtins.lc 339:27-339:76 Type 1665testdata/Builtins.lc 337:35-337:97 Type->Type
1647testdata/Builtins.lc 339:27-341:114 List ImageSemantics -> Type | List V1 -> Type | Type | V0 -> List V1 -> Type 1666testdata/Builtins.lc 337:48-337:49 ImageSemantics
1648testdata/Builtins.lc 339:29-339:41 ImageSemantics->Type 1667testdata/Builtins.lc 337:51-337:63 ImageSemantics->Type
1649testdata/Builtins.lc 339:29-339:43 Type 1668testdata/Builtins.lc 337:51-337:65 Type
1650testdata/Builtins.lc 339:29-339:59 Type->Type 1669testdata/Builtins.lc 337:64-337:65 ImageSemantics
1651testdata/Builtins.lc 339:42-339:43 ImageSemantics 1670testdata/Builtins.lc 337:67-337:79 ImageSemantics->Type
1652testdata/Builtins.lc 339:45-339:57 ImageSemantics->Type 1671testdata/Builtins.lc 337:67-337:81 Type
1653testdata/Builtins.lc 339:45-339:59 Type 1672testdata/Builtins.lc 337:80-337:81 ImageSemantics
1654testdata/Builtins.lc 339:58-339:59 ImageSemantics 1673testdata/Builtins.lc 337:83-337:95 ImageSemantics->Type
1655testdata/Builtins.lc 339:61-339:73 ImageSemantics->Type 1674testdata/Builtins.lc 337:83-337:97 Type
1656testdata/Builtins.lc 339:61-339:75 Type 1675testdata/Builtins.lc 337:96-337:97 ImageSemantics
1657testdata/Builtins.lc 339:74-339:75 V3 1676testdata/Builtins.lc 337:99-337:111 ImageSemantics->Type
1658testdata/Builtins.lc 340:30-340:95 Type 1677testdata/Builtins.lc 337:99-337:113 Type
1659testdata/Builtins.lc 340:30-341:114 List ImageSemantics -> Type | List V1 -> Type | Type | V0 -> List V1 -> Type 1678testdata/Builtins.lc 337:112-337:113 V3
1660testdata/Builtins.lc 340:32-340:44 ImageSemantics->Type 1679testdata/Builtins.lc 339:19-339:33 Type
1661testdata/Builtins.lc 340:32-340:46 Type 1680testdata/Builtins.lc 339:38-339:42 Type
1662testdata/Builtins.lc 340:32-340:62 Type -> Type->Type 1681testdata/Builtins.lc 340:1-340:14 List ImageSemantics -> Type
1663testdata/Builtins.lc 340:32-340:78 Type->Type 1682testdata/Builtins.lc 340:16-340:26 List ImageSemantics
1664testdata/Builtins.lc 340:45-340:46 ImageSemantics 1683testdata/Builtins.lc 340:16-341:34 List ImageSemantics -> Type | Type
1665testdata/Builtins.lc 340:48-340:60 ImageSemantics->Type 1684testdata/Builtins.lc 340:30-340:43 List ImageSemantics -> Type
1666testdata/Builtins.lc 340:48-340:62 Type 1685testdata/Builtins.lc 340:30-340:45 Type | Type->V1
1667testdata/Builtins.lc 340:61-340:62 ImageSemantics 1686testdata/Builtins.lc 340:30-341:34 List V1 -> Type | Type | Type->Type -> ImageSemantics->Type | V0 -> List V1 -> Type
1668testdata/Builtins.lc 340:64-340:76 ImageSemantics->Type 1687testdata/Builtins.lc 340:44-340:45 List V3
1669testdata/Builtins.lc 340:64-340:78 Type 1688testdata/Builtins.lc 341:19-341:32 List ImageSemantics -> Type
1670testdata/Builtins.lc 340:77-340:78 ImageSemantics 1689testdata/Builtins.lc 341:19-341:34 Type | Type->Type
1671testdata/Builtins.lc 340:80-340:92 ImageSemantics->Type 1690testdata/Builtins.lc 341:33-341:34 List ImageSemantics
1672testdata/Builtins.lc 340:80-340:94 Type 1691testdata/Builtins.lc 345:6-345:11 Type | Type->Type
1673testdata/Builtins.lc 340:93-340:94 V3 1692testdata/Builtins.lc 345:6-347:11 Type
1674testdata/Builtins.lc 341:33-341:114 List V1 -> Type | Type | V0 -> List V1 -> Type 1693testdata/Builtins.lc 345:6-347:13 Type
1675testdata/Builtins.lc 341:35-341:47 ImageSemantics->Type 1694testdata/Builtins.lc 346:7-346:14 Maybe V1 | {a} -> Maybe a
1676testdata/Builtins.lc 341:35-341:49 Type 1695testdata/Builtins.lc 347:7-347:11 Maybe V3 | Type | {a} -> a -> Maybe a
1677testdata/Builtins.lc 341:35-341:65 Type -> Type -> Type->Type 1696testdata/Builtins.lc 347:12-347:13 Type
1678testdata/Builtins.lc 341:35-341:81 Type -> Type->Type 1697testdata/Builtins.lc 350:6-350:12 Nat -> Type->Type | Type
1679testdata/Builtins.lc 341:35-341:97 Type->Type 1698testdata/Builtins.lc 350:19-350:22 Type
1680testdata/Builtins.lc 341:48-341:49 ImageSemantics 1699testdata/Builtins.lc 352:6-352:14 Nat -> Type->Type
1681testdata/Builtins.lc 341:51-341:63 ImageSemantics->Type 1700testdata/Builtins.lc 352:21-352:27 Nat -> Type->Type
1682testdata/Builtins.lc 341:51-341:65 Type 1701testdata/Builtins.lc 352:21-352:29 Type->Type
1683testdata/Builtins.lc 341:64-341:65 ImageSemantics 1702testdata/Builtins.lc 352:21-352:56 Type
1684testdata/Builtins.lc 341:67-341:79 ImageSemantics->Type 1703testdata/Builtins.lc 352:28-352:29 V3
1685testdata/Builtins.lc 341:67-341:81 Type 1704testdata/Builtins.lc 352:30-352:56 Type
1686testdata/Builtins.lc 341:80-341:81 ImageSemantics 1705testdata/Builtins.lc 352:31-352:36 Type->Type
1687testdata/Builtins.lc 341:83-341:95 ImageSemantics->Type 1706testdata/Builtins.lc 352:37-352:55 Type
1688testdata/Builtins.lc 341:83-341:97 Type 1707testdata/Builtins.lc 352:38-352:52 Type->Type
1689testdata/Builtins.lc 341:96-341:97 ImageSemantics 1708testdata/Builtins.lc 352:53-352:54 V1
1690testdata/Builtins.lc 341:99-341:111 ImageSemantics->Type 1709testdata/Builtins.lc 354:6-354:20 Type | Type->Type
1691testdata/Builtins.lc 341:99-341:113 Type 1710testdata/Builtins.lc 354:6-354:39 Type
1692testdata/Builtins.lc 341:112-341:113 V3 1711testdata/Builtins.lc 354:6-356:29 Type
1693testdata/Builtins.lc 343:19-343:33 Type 1712testdata/Builtins.lc 354:25-354:39 SimpleFragment V3 | Type | V2 | {a} -> Vec 3 Float -> a -> SimpleFragment a
1694testdata/Builtins.lc 343:38-343:42 Type 1713testdata/Builtins.lc 355:7-355:22 {a} -> SimpleFragment a -> VecS Float 3
1695testdata/Builtins.lc 344:1-344:14 List ImageSemantics -> Type 1714testdata/Builtins.lc 355:28-355:31 Nat -> Type->Type
1696testdata/Builtins.lc 344:16-344:26 List ImageSemantics 1715testdata/Builtins.lc 355:28-355:33 Type->Type
1697testdata/Builtins.lc 344:16-345:34 List ImageSemantics -> Type | Type 1716testdata/Builtins.lc 355:28-355:39 Type
1698testdata/Builtins.lc 344:30-344:43 List ImageSemantics -> Type 1717testdata/Builtins.lc 355:32-355:33 V1
1699testdata/Builtins.lc 344:30-344:45 Type | Type->V1 1718testdata/Builtins.lc 355:34-355:39 Type
1700testdata/Builtins.lc 344:30-345:34 List V1 -> Type | Type | Type->Type -> ImageSemantics->Type | V0 -> List V1 -> Type 1719testdata/Builtins.lc 356:7-356:21 {a} -> SimpleFragment a -> a
1701testdata/Builtins.lc 344:44-344:45 List V3 1720testdata/Builtins.lc 356:28-356:29 Type
1702testdata/Builtins.lc 345:19-345:32 List ImageSemantics -> Type 1721testdata/Builtins.lc 359:6-359:20 Nat -> Type->Type
1703testdata/Builtins.lc 345:19-345:34 Type | Type->Type 1722testdata/Builtins.lc 359:28-359:36 Nat -> Type->Type
1704testdata/Builtins.lc 345:33-345:34 List ImageSemantics 1723testdata/Builtins.lc 359:28-359:38 Type->Type
1705testdata/Builtins.lc 349:6-349:11 Type | Type->Type 1724testdata/Builtins.lc 359:28-359:40 Type
1706testdata/Builtins.lc 349:6-351:11 Type 1725testdata/Builtins.lc 359:37-359:38 V3
1707testdata/Builtins.lc 349:6-351:13 Type 1726testdata/Builtins.lc 359:39-359:40 V1
1708testdata/Builtins.lc 350:7-350:14 Maybe V1 | {a} -> Maybe a 1727testdata/Builtins.lc 361:1-361:15 {a} -> {b:Nat} -> a->Float -> Fragment b a -> Fragment b a
1709testdata/Builtins.lc 351:7-351:11 Maybe V3 | Type | {a} -> a -> Maybe a 1728testdata/Builtins.lc 361:19-361:63 Type
1710testdata/Builtins.lc 351:12-351:13 Type 1729testdata/Builtins.lc 361:20-361:21 V3
1711testdata/Builtins.lc 354:6-354:12 Nat -> Type->Type | Type 1730testdata/Builtins.lc 361:25-361:30 Type
1712testdata/Builtins.lc 354:19-354:22 Type 1731testdata/Builtins.lc 361:35-361:43 Nat -> Type->Type
1713testdata/Builtins.lc 356:6-356:14 Nat -> Type->Type 1732testdata/Builtins.lc 361:35-361:45 Type->Type
1714testdata/Builtins.lc 356:21-356:27 Nat -> Type->Type 1733testdata/Builtins.lc 361:35-361:47 Type
1715testdata/Builtins.lc 356:21-356:29 Type->Type 1734testdata/Builtins.lc 361:35-361:63 Type
1716testdata/Builtins.lc 356:21-356:56 Type 1735testdata/Builtins.lc 361:44-361:45 V2
1717testdata/Builtins.lc 356:28-356:29 V3 1736testdata/Builtins.lc 361:46-361:47 Type
1718testdata/Builtins.lc 356:30-356:56 Type 1737testdata/Builtins.lc 361:51-361:59 Nat -> Type->Type
1719testdata/Builtins.lc 356:31-356:36 Type->Type 1738testdata/Builtins.lc 361:51-361:61 Type->Type
1720testdata/Builtins.lc 356:37-356:55 Type 1739testdata/Builtins.lc 361:51-361:63 Type
1721testdata/Builtins.lc 356:38-356:52 Type->Type 1740testdata/Builtins.lc 361:60-361:61 Nat
1722testdata/Builtins.lc 356:53-356:54 V1 1741testdata/Builtins.lc 361:62-361:63 Type
1723testdata/Builtins.lc 358:6-358:20 Type | Type->Type 1742testdata/Builtins.lc 363:20-363:76 Type
1724testdata/Builtins.lc 358:6-358:39 Type 1743testdata/Builtins.lc 363:21-363:22 V3
1725testdata/Builtins.lc 358:6-360:29 Type 1744testdata/Builtins.lc 363:26-363:31 Type
1726testdata/Builtins.lc 358:25-358:39 SimpleFragment V3 | Type | V2 | {a} -> Vec 3 Float -> a -> SimpleFragment a 1745testdata/Builtins.lc 363:36-363:50 Nat -> Type->Type
1727testdata/Builtins.lc 359:7-359:22 {a} -> SimpleFragment a -> VecS Float 3 1746testdata/Builtins.lc 363:36-363:52 Type->Type
1728testdata/Builtins.lc 359:28-359:31 Nat -> Type->Type 1747testdata/Builtins.lc 363:36-363:54 Type
1729testdata/Builtins.lc 359:28-359:33 Type->Type 1748testdata/Builtins.lc 363:36-363:76 Type
1730testdata/Builtins.lc 359:28-359:39 Type 1749testdata/Builtins.lc 363:51-363:52 V2
1731testdata/Builtins.lc 359:32-359:33 V1 1750testdata/Builtins.lc 363:53-363:54 Type
1732testdata/Builtins.lc 359:34-359:39 Type 1751testdata/Builtins.lc 363:58-363:72 Nat -> Type->Type
1733testdata/Builtins.lc 360:7-360:21 {a} -> SimpleFragment a -> a 1752testdata/Builtins.lc 363:58-363:74 Type->Type
1734testdata/Builtins.lc 360:28-360:29 Type 1753testdata/Builtins.lc 363:58-363:76 Type
1735testdata/Builtins.lc 363:6-363:20 Nat -> Type->Type 1754testdata/Builtins.lc 363:73-363:74 Nat
1736testdata/Builtins.lc 363:28-363:36 Nat -> Type->Type 1755testdata/Builtins.lc 363:75-363:76 Type
1737testdata/Builtins.lc 363:28-363:38 Type->Type 1756testdata/Builtins.lc 364:1-364:16 {a} -> {b:Nat} -> a->Float -> List (Vector b (Maybe (SimpleFragment a))) -> List (Vector b (Maybe (SimpleFragment a)))
1738testdata/Builtins.lc 363:28-363:40 Type 1757testdata/Builtins.lc 364:21-364:24 {a} -> {b} -> a->b -> List a -> List b
1739testdata/Builtins.lc 363:37-363:38 V3 1758testdata/Builtins.lc 364:21-364:43 List (Vector V0 (Maybe (SimpleFragment V3))) -> List (Vector V1 (Maybe (SimpleFragment V4))) | V1->Float -> FragmentStream V1 V2 -> FragmentStream V2 V3
1740testdata/Builtins.lc 363:39-363:40 V1 1759testdata/Builtins.lc 364:25-364:43 Fragment V0 V5 -> Fragment V1 V6
1741testdata/Builtins.lc 365:1-365:15 {a} -> {b:Nat} -> a->Float -> Fragment b a -> Fragment b a 1760testdata/Builtins.lc 364:26-364:40 {a} -> {b:Nat} -> a->Float -> Fragment b a -> Fragment b a
1742testdata/Builtins.lc 365:19-365:63 Type 1761testdata/Builtins.lc 364:41-364:42 V6->Float
1743testdata/Builtins.lc 365:20-365:21 V3 1762testdata/Builtins.lc 366:1-366:15 {a} -> {b:Nat} -> a->Bool -> Fragment b a -> Fragment b a
1744testdata/Builtins.lc 365:25-365:30 Type 1763testdata/Builtins.lc 366:19-366:62 Type
1745testdata/Builtins.lc 365:35-365:43 Nat -> Type->Type 1764testdata/Builtins.lc 366:20-366:21 V3
1746testdata/Builtins.lc 365:35-365:45 Type->Type 1765testdata/Builtins.lc 366:25-366:29 Type
1747testdata/Builtins.lc 365:35-365:47 Type 1766testdata/Builtins.lc 366:34-366:42 Nat -> Type->Type
1748testdata/Builtins.lc 365:35-365:63 Type 1767testdata/Builtins.lc 366:34-366:44 Type->Type
1749testdata/Builtins.lc 365:44-365:45 V2 1768testdata/Builtins.lc 366:34-366:46 Type
1750testdata/Builtins.lc 365:46-365:47 Type 1769testdata/Builtins.lc 366:34-366:62 Type
1751testdata/Builtins.lc 365:51-365:59 Nat -> Type->Type 1770testdata/Builtins.lc 366:43-366:44 V2
1752testdata/Builtins.lc 365:51-365:61 Type->Type 1771testdata/Builtins.lc 366:45-366:46 Type
1753testdata/Builtins.lc 365:51-365:63 Type 1772testdata/Builtins.lc 366:50-366:58 Nat -> Type->Type
1754testdata/Builtins.lc 365:60-365:61 Nat 1773testdata/Builtins.lc 366:50-366:60 Type->Type
1755testdata/Builtins.lc 365:62-365:63 Type 1774testdata/Builtins.lc 366:50-366:62 Type
1756testdata/Builtins.lc 367:20-367:76 Type 1775testdata/Builtins.lc 366:59-366:60 Nat
1757testdata/Builtins.lc 367:21-367:22 V3 1776testdata/Builtins.lc 366:61-366:62 Type
1758testdata/Builtins.lc 367:26-367:31 Type 1777testdata/Builtins.lc 368:20-368:75 Type
1759testdata/Builtins.lc 367:36-367:50 Nat -> Type->Type 1778testdata/Builtins.lc 368:21-368:22 V3
1760testdata/Builtins.lc 367:36-367:52 Type->Type 1779testdata/Builtins.lc 368:26-368:30 Type
1761testdata/Builtins.lc 367:36-367:54 Type 1780testdata/Builtins.lc 368:35-368:49 Nat -> Type->Type
1762testdata/Builtins.lc 367:36-367:76 Type 1781testdata/Builtins.lc 368:35-368:51 Type->Type
1763testdata/Builtins.lc 367:51-367:52 V2 1782testdata/Builtins.lc 368:35-368:53 Type
1764testdata/Builtins.lc 367:53-367:54 Type 1783testdata/Builtins.lc 368:35-368:75 Type
1765testdata/Builtins.lc 367:58-367:72 Nat -> Type->Type 1784testdata/Builtins.lc 368:50-368:51 V2
1766testdata/Builtins.lc 367:58-367:74 Type->Type 1785testdata/Builtins.lc 368:52-368:53 Type
1767testdata/Builtins.lc 367:58-367:76 Type 1786testdata/Builtins.lc 368:57-368:71 Nat -> Type->Type
1768testdata/Builtins.lc 367:73-367:74 Nat 1787testdata/Builtins.lc 368:57-368:73 Type->Type
1769testdata/Builtins.lc 367:75-367:76 Type 1788testdata/Builtins.lc 368:57-368:75 Type
1770testdata/Builtins.lc 368:1-368:16 {a} -> {b:Nat} -> a->Float -> List (Vector b (Maybe (SimpleFragment a))) -> List (Vector b (Maybe (SimpleFragment a))) 1789testdata/Builtins.lc 368:72-368:73 Nat
1771testdata/Builtins.lc 368:21-368:24 {a} -> {b} -> a->b -> List a -> List b 1790testdata/Builtins.lc 368:74-368:75 Type
1772testdata/Builtins.lc 368:21-368:43 List (Vector V0 (Maybe (SimpleFragment V3))) -> List (Vector V1 (Maybe (SimpleFragment V4))) | V1->Float -> FragmentStream V1 V2 -> FragmentStream V2 V3 1791testdata/Builtins.lc 369:1-369:16 {a} -> {b:Nat} -> a->Bool -> List (Vector b (Maybe (SimpleFragment a))) -> List (Vector b (Maybe (SimpleFragment a)))
1773testdata/Builtins.lc 368:25-368:43 Fragment V0 V5 -> Fragment V1 V6 1792testdata/Builtins.lc 369:21-369:24 {a} -> {b} -> a->b -> List a -> List b
1774testdata/Builtins.lc 368:26-368:40 {a} -> {b:Nat} -> a->Float -> Fragment b a -> Fragment b a 1793testdata/Builtins.lc 369:21-369:43 List (Vector V0 (Maybe (SimpleFragment V3))) -> List (Vector V1 (Maybe (SimpleFragment V4))) | V1->Bool -> FragmentStream V1 V2 -> FragmentStream V2 V3
1775testdata/Builtins.lc 368:41-368:42 V6->Float 1794testdata/Builtins.lc 369:25-369:43 Fragment V0 V5 -> Fragment V1 V6
1776testdata/Builtins.lc 370:1-370:15 {a} -> {b:Nat} -> a->Bool -> Fragment b a -> Fragment b a 1795testdata/Builtins.lc 369:26-369:40 {a} -> {b:Nat} -> a->Bool -> Fragment b a -> Fragment b a
1777testdata/Builtins.lc 370:19-370:62 Type 1796testdata/Builtins.lc 369:41-369:42 V6->Bool
1778testdata/Builtins.lc 370:20-370:21 V3 1797testdata/Builtins.lc 371:1-371:12 {a} -> {b} -> {c:Nat} -> a->b -> Fragment c a -> Fragment c b
1779testdata/Builtins.lc 370:25-370:29 Type 1798testdata/Builtins.lc 371:16-371:56 Type
1780testdata/Builtins.lc 370:34-370:42 Nat -> Type->Type 1799testdata/Builtins.lc 371:17-371:18 V5
1781testdata/Builtins.lc 370:34-370:44 Type->Type 1800testdata/Builtins.lc 371:22-371:23 Type | V4
1782testdata/Builtins.lc 370:34-370:46 Type 1801testdata/Builtins.lc 371:28-371:36 Nat -> Type->Type
1783testdata/Builtins.lc 370:34-370:62 Type 1802testdata/Builtins.lc 371:28-371:38 Type->Type
1784testdata/Builtins.lc 370:43-370:44 V2 1803testdata/Builtins.lc 371:28-371:40 Type
1785testdata/Builtins.lc 370:45-370:46 Type 1804testdata/Builtins.lc 371:28-371:56 Type
1786testdata/Builtins.lc 370:50-370:58 Nat -> Type->Type 1805testdata/Builtins.lc 371:37-371:38 V2
1787testdata/Builtins.lc 370:50-370:60 Type->Type 1806testdata/Builtins.lc 371:39-371:40 Type
1788testdata/Builtins.lc 370:50-370:62 Type 1807testdata/Builtins.lc 371:44-371:52 Nat -> Type->Type
1789testdata/Builtins.lc 370:59-370:60 Nat 1808testdata/Builtins.lc 371:44-371:54 Type->Type
1790testdata/Builtins.lc 370:61-370:62 Type 1809testdata/Builtins.lc 371:44-371:56 Type
1791testdata/Builtins.lc 372:20-372:75 Type 1810testdata/Builtins.lc 371:53-371:54 Nat
1792testdata/Builtins.lc 372:21-372:22 V3 1811testdata/Builtins.lc 371:55-371:56 Type
1793testdata/Builtins.lc 372:26-372:30 Type 1812testdata/Builtins.lc 373:17-373:69 Type
1794testdata/Builtins.lc 372:35-372:49 Nat -> Type->Type 1813testdata/Builtins.lc 373:18-373:19 V5
1795testdata/Builtins.lc 372:35-372:51 Type->Type 1814testdata/Builtins.lc 373:23-373:24 Type | V4
1796testdata/Builtins.lc 372:35-372:53 Type 1815testdata/Builtins.lc 373:29-373:43 Nat -> Type->Type
1797testdata/Builtins.lc 372:35-372:75 Type 1816testdata/Builtins.lc 373:29-373:45 Type->Type
1798testdata/Builtins.lc 372:50-372:51 V2 1817testdata/Builtins.lc 373:29-373:47 Type
1799testdata/Builtins.lc 372:52-372:53 Type 1818testdata/Builtins.lc 373:29-373:69 Type
1800testdata/Builtins.lc 372:57-372:71 Nat -> Type->Type 1819testdata/Builtins.lc 373:44-373:45 V2
1801testdata/Builtins.lc 372:57-372:73 Type->Type 1820testdata/Builtins.lc 373:46-373:47 Type
1802testdata/Builtins.lc 372:57-372:75 Type 1821testdata/Builtins.lc 373:51-373:65 Nat -> Type->Type
1803testdata/Builtins.lc 372:72-372:73 Nat 1822testdata/Builtins.lc 373:51-373:67 Type->Type
1804testdata/Builtins.lc 372:74-372:75 Type 1823testdata/Builtins.lc 373:51-373:69 Type
1805testdata/Builtins.lc 373:1-373:16 {a} -> {b:Nat} -> a->Bool -> List (Vector b (Maybe (SimpleFragment a))) -> List (Vector b (Maybe (SimpleFragment a))) 1824testdata/Builtins.lc 373:66-373:67 Nat
1806testdata/Builtins.lc 373:21-373:24 {a} -> {b} -> a->b -> List a -> List b 1825testdata/Builtins.lc 373:68-373:69 Type
1807testdata/Builtins.lc 373:21-373:43 List (Vector V0 (Maybe (SimpleFragment V3))) -> List (Vector V1 (Maybe (SimpleFragment V4))) | V1->Bool -> FragmentStream V1 V2 -> FragmentStream V2 V3 1826testdata/Builtins.lc 374:1-374:13 {a} -> {b} -> {c:Nat} -> a->b -> List (Vector c (Maybe (SimpleFragment a))) -> List (Vector c (Maybe (SimpleFragment b)))
1808testdata/Builtins.lc 373:25-373:43 Fragment V0 V5 -> Fragment V1 V6 1827testdata/Builtins.lc 374:18-374:21 {a} -> {b} -> a->b -> List a -> List b
1809testdata/Builtins.lc 373:26-373:40 {a} -> {b:Nat} -> a->Bool -> Fragment b a -> Fragment b a 1828testdata/Builtins.lc 374:18-374:37 List (Vector V0 (Maybe (SimpleFragment V4))) -> List (Vector V1 (Maybe (SimpleFragment V4))) | V2->V2 -> FragmentStream V1 V3 -> FragmentStream V2 V3
1810testdata/Builtins.lc 373:41-373:42 V6->Bool 1829testdata/Builtins.lc 374:22-374:37 Fragment V0 V6 -> Fragment V1 V6
1811testdata/Builtins.lc 375:1-375:12 {a} -> {b} -> {c:Nat} -> a->b -> Fragment c a -> Fragment c b 1830testdata/Builtins.lc 374:23-374:34 {a} -> {b} -> {c:Nat} -> a->b -> Fragment c a -> Fragment c b
1812testdata/Builtins.lc 375:16-375:56 Type 1831testdata/Builtins.lc 374:35-374:36 V8->V8
1813testdata/Builtins.lc 375:17-375:18 V5 1832testdata/Builtins.lc 377:6-377:18 Type | Type->Type
1814testdata/Builtins.lc 375:22-375:23 Type | V4 1833testdata/Builtins.lc 377:6-380:7 Type
1815testdata/Builtins.lc 375:28-375:36 Nat -> Type->Type 1834testdata/Builtins.lc 378:3-378:9 Interpolated V2 | Type | {a} -> {b : Floating a} -> Interpolated a
1816testdata/Builtins.lc 375:28-375:38 Type->Type 1835testdata/Builtins.lc 378:11-378:24 Interpolated V3 | Type | {a} -> {b : Floating a} -> Interpolated a
1817testdata/Builtins.lc 375:28-375:40 Type 1836testdata/Builtins.lc 379:26-379:38 Type
1818testdata/Builtins.lc 375:28-375:56 Type 1837testdata/Builtins.lc 379:26-379:56 Type
1819testdata/Builtins.lc 375:37-375:38 V2 1838testdata/Builtins.lc 379:27-379:35 Type->Type
1820testdata/Builtins.lc 375:39-375:40 Type 1839testdata/Builtins.lc 379:36-379:37 Type
1821testdata/Builtins.lc 375:44-375:52 Nat -> Type->Type 1840testdata/Builtins.lc 379:42-379:54 Type->Type
1822testdata/Builtins.lc 375:44-375:54 Type->Type 1841testdata/Builtins.lc 379:42-379:56 Type
1823testdata/Builtins.lc 375:44-375:56 Type 1842testdata/Builtins.lc 379:55-379:56 Type
1824testdata/Builtins.lc 375:53-375:54 Nat 1843testdata/Builtins.lc 380:3-380:7 Interpolated V3 | {a} -> Interpolated a
1825testdata/Builtins.lc 375:55-375:56 Type 1844testdata/Builtins.lc 380:42-380:54 Type->Type
1826testdata/Builtins.lc 377:17-377:69 Type 1845testdata/Builtins.lc 380:42-380:56 Type
1827testdata/Builtins.lc 377:18-377:19 V5 1846testdata/Builtins.lc 380:55-380:56 Type
1828testdata/Builtins.lc 377:23-377:24 Type | V4 1847testdata/Builtins.lc 383:5-383:21 Type->Type
1829testdata/Builtins.lc 377:29-377:43 Nat -> Type->Type 1848testdata/Builtins.lc 383:27-383:29 Type
1830testdata/Builtins.lc 377:29-377:45 Type->Type 1849testdata/Builtins.lc 383:27-386:82 Type | Type->Type
1831testdata/Builtins.lc 377:29-377:47 Type 1850testdata/Builtins.lc 384:36-384:37 Type
1832testdata/Builtins.lc 377:29-377:69 Type 1851testdata/Builtins.lc 384:36-384:42 Type->Type
1833testdata/Builtins.lc 377:44-377:45 V2 1852testdata/Builtins.lc 384:36-386:82 Type
1834testdata/Builtins.lc 377:46-377:47 Type 1853testdata/Builtins.lc 384:41-384:42 Type | Type->Type
1835testdata/Builtins.lc 377:51-377:65 Nat -> Type->Type 1854testdata/Builtins.lc 385:23-385:53 Type
1836testdata/Builtins.lc 377:51-377:67 Type->Type 1855testdata/Builtins.lc 385:23-385:63 Type->Type
1837testdata/Builtins.lc 377:51-377:69 Type 1856testdata/Builtins.lc 385:23-386:82 Type
1838testdata/Builtins.lc 377:66-377:67 Nat 1857testdata/Builtins.lc 385:57-385:63 Type | Type -> Type->Type | Type->Type
1839testdata/Builtins.lc 377:68-377:69 Type 1858testdata/Builtins.lc 385:58-385:59 Type
1840testdata/Builtins.lc 378:1-378:13 {a} -> {b} -> {c:Nat} -> a->b -> List (Vector c (Maybe (SimpleFragment a))) -> List (Vector c (Maybe (SimpleFragment b))) 1859testdata/Builtins.lc 385:61-385:62 Type
1841testdata/Builtins.lc 378:18-378:21 {a} -> {b} -> a->b -> List a -> List b 1860testdata/Builtins.lc 386:23-386:69 Type
1842testdata/Builtins.lc 378:18-378:37 List (Vector V0 (Maybe (SimpleFragment V4))) -> List (Vector V1 (Maybe (SimpleFragment V4))) | V2->V2 -> FragmentStream V1 V3 -> FragmentStream V2 V3 1861testdata/Builtins.lc 386:23-386:82 Type->Type
1843testdata/Builtins.lc 378:22-378:37 Fragment V0 V6 -> Fragment V1 V6 1862testdata/Builtins.lc 386:73-386:82 Type | Type -> Type -> Type->Type | Type -> Type->Type | Type->Type
1844testdata/Builtins.lc 378:23-378:34 {a} -> {b} -> {c:Nat} -> a->b -> Fragment c a -> Fragment c b 1863testdata/Builtins.lc 386:74-386:75 Type
1845testdata/Builtins.lc 378:35-378:36 V8->V8 1864testdata/Builtins.lc 386:74-386:78 Type->Type
1846testdata/Builtins.lc 381:6-381:18 Type | Type->Type 1865testdata/Builtins.lc 386:77-386:78 Type
1847testdata/Builtins.lc 381:6-384:7 Type 1866testdata/Builtins.lc 386:80-386:81 Type
1848testdata/Builtins.lc 382:3-382:9 Interpolated V2 | Type | {a} -> {b : Floating a} -> Interpolated a 1867testdata/Builtins.lc 388:1-388:19 {a} -> {b} -> {c} -> {d:PrimitiveType} -> {e : a ~ InterpolatedType b} -> {f : c ~ JoinTupleType (Vec 4 Float) a} -> b -> RasterContext c d -> Primitive c d -> FragmentStream 1 a
1849testdata/Builtins.lc 382:11-382:24 Interpolated V3 | Type | {a} -> {b : Floating a} -> Interpolated a 1868testdata/Builtins.lc 389:8-394:26 Type
1850testdata/Builtins.lc 383:26-383:38 Type 1869testdata/Builtins.lc 389:10-389:11 V8
1851testdata/Builtins.lc 383:26-383:56 Type 1870testdata/Builtins.lc 389:10-389:13 V7->Type
1852testdata/Builtins.lc 383:27-383:35 Type->Type 1871testdata/Builtins.lc 389:10-389:44 Type
1853testdata/Builtins.lc 383:36-383:37 Type 1872testdata/Builtins.lc 389:12-389:13 {a} -> a -> a->Type
1854testdata/Builtins.lc 383:42-383:54 Type->Type 1873testdata/Builtins.lc 389:14-389:30 Type->Type
1855testdata/Builtins.lc 383:42-383:56 Type 1874testdata/Builtins.lc 389:14-389:44 Type
1856testdata/Builtins.lc 383:55-383:56 Type 1875testdata/Builtins.lc 389:31-389:44 V5
1857testdata/Builtins.lc 384:3-384:7 Interpolated V3 | {a} -> Interpolated a 1876testdata/Builtins.lc 390:10-390:11 V5
1858testdata/Builtins.lc 384:42-384:54 Type->Type 1877testdata/Builtins.lc 390:10-390:13 V4->Type
1859testdata/Builtins.lc 384:42-384:56 Type 1878testdata/Builtins.lc 390:10-390:43 Type
1860testdata/Builtins.lc 384:55-384:56 Type 1879testdata/Builtins.lc 390:10-394:26 Type
1861testdata/Builtins.lc 387:5-387:21 Type->Type 1880testdata/Builtins.lc 390:12-390:13 {a} -> a -> a->Type
1862testdata/Builtins.lc 387:27-387:29 Type 1881testdata/Builtins.lc 390:14-390:27 Type -> Type->Type
1863testdata/Builtins.lc 387:27-390:82 Type | Type->Type 1882testdata/Builtins.lc 390:14-390:41 Type->Type
1864testdata/Builtins.lc 388:36-388:37 Type 1883testdata/Builtins.lc 390:14-390:43 Type
1865testdata/Builtins.lc 388:36-388:42 Type->Type 1884testdata/Builtins.lc 390:28-390:41 Type
1866testdata/Builtins.lc 388:36-390:82 Type 1885testdata/Builtins.lc 390:29-390:32 Nat -> Type->Type
1867testdata/Builtins.lc 388:41-388:42 Type | Type->Type 1886testdata/Builtins.lc 390:29-390:34 Type->Type
1868testdata/Builtins.lc 389:23-389:53 Type 1887testdata/Builtins.lc 390:33-390:34 V1
1869testdata/Builtins.lc 389:23-389:63 Type->Type 1888testdata/Builtins.lc 390:35-390:40 Type
1870testdata/Builtins.lc 389:23-390:82 Type 1889testdata/Builtins.lc 390:42-390:43 Type
1871testdata/Builtins.lc 389:57-389:63 Type | Type -> Type->Type | Type->Type 1890testdata/Builtins.lc 391:8-391:21 Type
1872testdata/Builtins.lc 389:58-389:59 Type 1891testdata/Builtins.lc 391:8-394:26 Type
1873testdata/Builtins.lc 389:61-389:62 Type 1892testdata/Builtins.lc 392:8-392:21 Type -> PrimitiveType->Type
1874testdata/Builtins.lc 390:23-390:69 Type 1893testdata/Builtins.lc 392:8-392:23 PrimitiveType->Type
1875testdata/Builtins.lc 390:23-390:82 Type->Type 1894testdata/Builtins.lc 392:8-392:25 Type
1876testdata/Builtins.lc 390:73-390:82 Type | Type -> Type -> Type->Type | Type -> Type->Type | Type->Type 1895testdata/Builtins.lc 392:8-394:26 Type
1877testdata/Builtins.lc 390:74-390:75 Type 1896testdata/Builtins.lc 392:22-392:23 Type
1878testdata/Builtins.lc 390:74-390:78 Type->Type 1897testdata/Builtins.lc 392:24-392:25 V4
1879testdata/Builtins.lc 390:77-390:78 Type 1898testdata/Builtins.lc 393:8-393:17 Type -> PrimitiveType->Type
1880testdata/Builtins.lc 390:80-390:81 Type 1899testdata/Builtins.lc 393:8-393:19 PrimitiveType->Type
1881testdata/Builtins.lc 392:1-392:19 {a} -> {b} -> {c} -> {d:PrimitiveType} -> {e : a ~ InterpolatedType b} -> {f : c ~ JoinTupleType (Vec 4 Float) a} -> b -> RasterContext c d -> Primitive c d -> FragmentStream 1 a 1900testdata/Builtins.lc 393:8-393:21 Type
1882testdata/Builtins.lc 393:8-398:26 Type 1901testdata/Builtins.lc 393:8-394:26 Type
1883testdata/Builtins.lc 393:10-393:11 V8 1902testdata/Builtins.lc 393:18-393:19 Type
1884testdata/Builtins.lc 393:10-393:13 V7->Type 1903testdata/Builtins.lc 393:20-393:21 PrimitiveType
1885testdata/Builtins.lc 393:10-393:44 Type 1904testdata/Builtins.lc 394:8-394:22 Nat -> Type->Type
1886testdata/Builtins.lc 393:12-393:13 {a} -> a -> a->Type 1905testdata/Builtins.lc 394:8-394:24 Type->Type
1887testdata/Builtins.lc 393:14-393:30 Type->Type 1906testdata/Builtins.lc 394:8-394:26 Type
1888testdata/Builtins.lc 393:14-393:44 Type 1907testdata/Builtins.lc 394:23-394:24 V1
1889testdata/Builtins.lc 393:31-393:44 V5 1908testdata/Builtins.lc 394:25-394:26 Type
1890testdata/Builtins.lc 394:10-394:11 V5 1909testdata/Builtins.lc 396:1-396:20 {a} -> {b:PrimitiveType} -> RasterContext (JoinTupleType (Vec 4 Float) (InterpolatedType a)) b -> a -> List (Primitive (JoinTupleType (Vec 4 Float) (InterpolatedType a)) b) -> List (Vector 1 (Maybe (SimpleFragment (InterpolatedType a))))
1891testdata/Builtins.lc 394:10-394:13 V4->Type 1910testdata/Builtins.lc 396:32-396:38 {a} -> List (List a) -> List a
1892testdata/Builtins.lc 394:10-394:43 Type 1911testdata/Builtins.lc 396:32-396:74 List (Vector 1 (Maybe (SimpleFragment (InterpolatedType V3))))
1893testdata/Builtins.lc 394:10-398:26 Type 1912testdata/Builtins.lc 396:39-396:74 List (List (Fragment 1 (InterpolatedType V3)))
1894testdata/Builtins.lc 394:12-394:13 {a} -> a -> a->Type 1913testdata/Builtins.lc 396:40-396:43 {a} -> {b} -> a->b -> List a -> List b
1895testdata/Builtins.lc 394:14-394:27 Type -> Type->Type 1914testdata/Builtins.lc 396:40-396:71 List (Primitive (JoinTupleType (Vec 4 Float) (InterpolatedType V5)) V0) -> List (List (Fragment 1 (InterpolatedType V6)))
1896testdata/Builtins.lc 394:14-394:41 Type->Type 1915testdata/Builtins.lc 396:44-396:71 Primitive (JoinTupleType (Vec 4 Float) (InterpolatedType V5)) V0 -> FragmentStream 1 (InterpolatedType V6)
1897testdata/Builtins.lc 394:14-394:43 Type 1916testdata/Builtins.lc 396:45-396:63 {a} -> {b} -> {c} -> {d:PrimitiveType} -> {e : a ~ InterpolatedType b} -> {f : c ~ JoinTupleType (Vec 4 Float) a} -> b -> RasterContext c d -> Primitive c d -> FragmentStream 1 a
1898testdata/Builtins.lc 394:28-394:41 Type 1917testdata/Builtins.lc 396:45-396:66 RasterContext (JoinTupleType (Vec 4 Float) (InterpolatedType V7)) V0 -> Primitive (JoinTupleType (Vec 4 Float) (InterpolatedType V8)) V1 -> FragmentStream 1 (InterpolatedType V9)
1899testdata/Builtins.lc 394:29-394:32 Nat -> Type->Type 1918testdata/Builtins.lc 396:64-396:66 V8
1900testdata/Builtins.lc 394:29-394:34 Type->Type 1919testdata/Builtins.lc 396:67-396:70 V7
1901testdata/Builtins.lc 394:33-394:34 V1 1920testdata/Builtins.lc 396:72-396:73 V2
1902testdata/Builtins.lc 394:35-394:40 Type 1921testdata/Builtins.lc 398:6-398:11 Nat -> ImageSemantics->Type | Type
1903testdata/Builtins.lc 394:42-394:43 Type 1922testdata/Builtins.lc 398:6-398:43 Type
1904testdata/Builtins.lc 395:8-395:21 Type 1923testdata/Builtins.lc 398:18-398:21 Type
1905testdata/Builtins.lc 395:8-398:26 Type 1924testdata/Builtins.lc 398:29-398:43 Type
1906testdata/Builtins.lc 396:8-396:21 Type -> PrimitiveType->Type 1925testdata/Builtins.lc 400:1-400:11 {a:Nat} -> {b:Nat} -> {c} -> {d} -> {e : Num c} -> {f : d ~ VecScalar b c} -> d -> Image a ('Color d)
1907testdata/Builtins.lc 396:8-396:23 PrimitiveType->Type 1926testdata/Builtins.lc 400:45-401:55 Type
1908testdata/Builtins.lc 396:8-396:25 Type 1927testdata/Builtins.lc 400:46-400:49 Type->Type
1909testdata/Builtins.lc 396:8-398:26 Type 1928testdata/Builtins.lc 400:46-400:51 Type
1910testdata/Builtins.lc 396:22-396:23 Type 1929testdata/Builtins.lc 400:50-400:51 V3
1911testdata/Builtins.lc 396:24-396:25 V4 1930testdata/Builtins.lc 400:53-400:58 V3
1912testdata/Builtins.lc 397:8-397:17 Type -> PrimitiveType->Type 1931testdata/Builtins.lc 400:53-400:60 V2->Type
1913testdata/Builtins.lc 397:8-397:19 PrimitiveType->Type 1932testdata/Builtins.lc 400:53-400:74 Type
1914testdata/Builtins.lc 397:8-397:21 Type 1933testdata/Builtins.lc 400:53-401:55 Type
1915testdata/Builtins.lc 397:8-398:26 Type 1934testdata/Builtins.lc 400:59-400:60 {a} -> a -> a->Type
1916testdata/Builtins.lc 397:18-397:19 Type 1935testdata/Builtins.lc 400:61-400:70 Nat -> Type->Type
1917testdata/Builtins.lc 397:20-397:21 PrimitiveType 1936testdata/Builtins.lc 400:61-400:72 Type->Type
1918testdata/Builtins.lc 398:8-398:22 Nat -> Type->Type 1937testdata/Builtins.lc 400:61-400:74 Type
1919testdata/Builtins.lc 398:8-398:24 Type->Type 1938testdata/Builtins.lc 400:71-400:72 V5
1920testdata/Builtins.lc 398:8-398:26 Type 1939testdata/Builtins.lc 400:73-400:74 Type
1921testdata/Builtins.lc 398:23-398:24 V1 1940testdata/Builtins.lc 401:24-401:29 Type
1922testdata/Builtins.lc 398:25-398:26 Type 1941testdata/Builtins.lc 401:24-401:55 Type
1923testdata/Builtins.lc 400:1-400:20 {a} -> {b:PrimitiveType} -> RasterContext (JoinTupleType (Vec 4 Float) (InterpolatedType a)) b -> a -> List (Primitive (JoinTupleType (Vec 4 Float) (InterpolatedType a)) b) -> List (Vector 1 (Maybe (SimpleFragment (InterpolatedType a)))) 1942testdata/Builtins.lc 401:34-401:39 Nat -> ImageSemantics->Type
1924testdata/Builtins.lc 400:32-400:38 {a} -> List (List a) -> List a 1943testdata/Builtins.lc 401:34-401:41 ImageSemantics->Type
1925testdata/Builtins.lc 400:32-400:74 List (Vector 1 (Maybe (SimpleFragment (InterpolatedType V3)))) 1944testdata/Builtins.lc 401:34-401:55 Type
1926testdata/Builtins.lc 400:39-400:74 List (List (Fragment 1 (InterpolatedType V3))) 1945testdata/Builtins.lc 401:40-401:41 V7
1927testdata/Builtins.lc 400:40-400:43 {a} -> {b} -> a->b -> List a -> List b 1946testdata/Builtins.lc 401:42-401:55 ImageSemantics
1928testdata/Builtins.lc 400:40-400:71 List (Primitive (JoinTupleType (Vec 4 Float) (InterpolatedType V5)) V0) -> List (List (Fragment 1 (InterpolatedType V6))) 1947testdata/Builtins.lc 401:43-401:48 Type->ImageSemantics
1929testdata/Builtins.lc 400:44-400:71 Primitive (JoinTupleType (Vec 4 Float) (InterpolatedType V5)) V0 -> FragmentStream 1 (InterpolatedType V6) 1948testdata/Builtins.lc 401:49-401:54 Type
1930testdata/Builtins.lc 400:45-400:63 {a} -> {b} -> {c} -> {d:PrimitiveType} -> {e : a ~ InterpolatedType b} -> {f : c ~ JoinTupleType (Vec 4 Float) a} -> b -> RasterContext c d -> Primitive c d -> FragmentStream 1 a 1949testdata/Builtins.lc 402:1-402:11 {a:Nat} -> Float -> Image a ('Depth Float)
1931testdata/Builtins.lc 400:45-400:66 RasterContext (JoinTupleType (Vec 4 Float) (InterpolatedType V7)) V0 -> Primitive (JoinTupleType (Vec 4 Float) (InterpolatedType V8)) V1 -> FragmentStream 1 (InterpolatedType V9) 1950testdata/Builtins.lc 402:35-402:40 Type
1932testdata/Builtins.lc 400:64-400:66 V8 1951testdata/Builtins.lc 402:35-402:66 Type
1933testdata/Builtins.lc 400:67-400:70 V7 1952testdata/Builtins.lc 402:45-402:50 Nat -> ImageSemantics->Type
1934testdata/Builtins.lc 400:72-400:73 V2 1953testdata/Builtins.lc 402:45-402:52 ImageSemantics->Type
1935testdata/Builtins.lc 402:6-402:11 Nat -> ImageSemantics->Type | Type 1954testdata/Builtins.lc 402:45-402:66 Type
1936testdata/Builtins.lc 402:6-402:43 Type 1955testdata/Builtins.lc 402:51-402:52 V2
1937testdata/Builtins.lc 402:18-402:21 Type 1956testdata/Builtins.lc 402:53-402:66 ImageSemantics
1938testdata/Builtins.lc 402:29-402:43 Type 1957testdata/Builtins.lc 402:54-402:59 Type->ImageSemantics
1939testdata/Builtins.lc 404:1-404:11 {a:Nat} -> {b:Nat} -> {c} -> {d} -> {e : Num c} -> {f : d ~ VecScalar b c} -> d -> Image a ('Color d) 1958testdata/Builtins.lc 402:60-402:65 Type
1940testdata/Builtins.lc 404:45-405:55 Type 1959testdata/Builtins.lc 403:1-403:13 {a:Nat} -> Int -> Image a ('Stencil Int)
1941testdata/Builtins.lc 404:46-404:49 Type->Type 1960testdata/Builtins.lc 403:35-403:38 Type
1942testdata/Builtins.lc 404:46-404:51 Type 1961testdata/Builtins.lc 403:35-403:66 Type
1943testdata/Builtins.lc 404:50-404:51 V3 1962testdata/Builtins.lc 403:45-403:50 Nat -> ImageSemantics->Type
1944testdata/Builtins.lc 404:53-404:58 V3 1963testdata/Builtins.lc 403:45-403:52 ImageSemantics->Type
1945testdata/Builtins.lc 404:53-404:60 V2->Type 1964testdata/Builtins.lc 403:45-403:66 Type
1946testdata/Builtins.lc 404:53-404:74 Type 1965testdata/Builtins.lc 403:51-403:52 V2
1947testdata/Builtins.lc 404:53-405:55 Type 1966testdata/Builtins.lc 403:53-403:66 ImageSemantics
1948testdata/Builtins.lc 404:59-404:60 {a} -> a -> a->Type 1967testdata/Builtins.lc 403:54-403:61 Type->ImageSemantics
1949testdata/Builtins.lc 404:61-404:70 Nat -> Type->Type 1968testdata/Builtins.lc 403:62-403:65 Type
1950testdata/Builtins.lc 404:61-404:72 Type->Type 1969testdata/Builtins.lc 406:5-406:20 Type->Type
1951testdata/Builtins.lc 404:61-404:74 Type 1970testdata/Builtins.lc 406:28-406:33 Type
1952testdata/Builtins.lc 404:71-404:72 V5 1971testdata/Builtins.lc 406:28-406:41 Type->Type
1953testdata/Builtins.lc 404:73-404:74 Type 1972testdata/Builtins.lc 406:28-408:99 Type | Type->Type
1954testdata/Builtins.lc 405:24-405:29 Type 1973testdata/Builtins.lc 406:37-406:41 ImageSemantics->Type | Nat -> ImageSemantics->Type | Type
1955testdata/Builtins.lc 405:24-405:55 Type 1974testdata/Builtins.lc 407:22-407:46 Type
1956testdata/Builtins.lc 405:34-405:39 Nat -> ImageSemantics->Type 1975testdata/Builtins.lc 407:22-407:64 Type->Type
1957testdata/Builtins.lc 405:34-405:41 ImageSemantics->Type 1976testdata/Builtins.lc 407:22-408:99 Type
1958testdata/Builtins.lc 405:34-405:55 Type 1977testdata/Builtins.lc 407:50-407:54 a:Type -> a -> a->Type
1959testdata/Builtins.lc 405:40-405:41 V7 1978testdata/Builtins.lc 407:50-407:58 Nat -> Nat->Type
1960testdata/Builtins.lc 405:42-405:55 ImageSemantics 1979testdata/Builtins.lc 407:50-407:61 Nat->Type
1961testdata/Builtins.lc 405:43-405:48 Type->ImageSemantics 1980testdata/Builtins.lc 407:50-407:64 ImageSemantics->Type | Nat -> ImageSemantics->Type | Type | Type -> Type->Type | Type->Type
1962testdata/Builtins.lc 405:49-405:54 Type 1981testdata/Builtins.lc 407:55-407:58 Type
1963testdata/Builtins.lc 406:1-406:11 {a:Nat} -> Float -> Image a ('Depth Float) 1982testdata/Builtins.lc 407:59-407:61 Nat
1964testdata/Builtins.lc 406:35-406:40 Type 1983testdata/Builtins.lc 407:62-407:64 Nat
1965testdata/Builtins.lc 406:35-406:66 Type 1984testdata/Builtins.lc 408:22-408:59 Type
1966testdata/Builtins.lc 406:45-406:50 Nat -> ImageSemantics->Type 1985testdata/Builtins.lc 408:22-408:99 Type->Type
1967testdata/Builtins.lc 406:45-406:52 ImageSemantics->Type 1986testdata/Builtins.lc 408:63-408:65 Type -> Type->Type
1968testdata/Builtins.lc 406:45-406:66 Type 1987testdata/Builtins.lc 408:63-408:82 Type->Type
1969testdata/Builtins.lc 406:51-406:52 V2 1988testdata/Builtins.lc 408:63-408:99 ImageSemantics->Type | Nat -> ImageSemantics->Type | Type | Type -> Type -> Type->Type | Type -> Type->Type | Type->Type
1970testdata/Builtins.lc 406:53-406:66 ImageSemantics 1989testdata/Builtins.lc 408:66-408:82 Type
1971testdata/Builtins.lc 406:54-406:59 Type->ImageSemantics 1990testdata/Builtins.lc 408:67-408:71 a:Type -> a -> a->Type
1972testdata/Builtins.lc 406:60-406:65 Type 1991testdata/Builtins.lc 408:67-408:75 Nat -> Nat->Type
1973testdata/Builtins.lc 407:1-407:13 {a:Nat} -> Int -> Image a ('Stencil Int) 1992testdata/Builtins.lc 408:67-408:78 Nat->Type
1974testdata/Builtins.lc 407:35-407:38 Type 1993testdata/Builtins.lc 408:72-408:75 Type
1975testdata/Builtins.lc 407:35-407:66 Type 1994testdata/Builtins.lc 408:76-408:78 Nat
1976testdata/Builtins.lc 407:45-407:50 Nat -> ImageSemantics->Type 1995testdata/Builtins.lc 408:79-408:81 Nat
1977testdata/Builtins.lc 407:45-407:52 ImageSemantics->Type 1996testdata/Builtins.lc 408:83-408:99 Type
1978testdata/Builtins.lc 407:45-407:66 Type 1997testdata/Builtins.lc 408:84-408:88 a:Type -> a -> a->Type
1979testdata/Builtins.lc 407:51-407:52 V2 1998testdata/Builtins.lc 408:84-408:92 Nat -> Nat->Type
1980testdata/Builtins.lc 407:53-407:66 ImageSemantics 1999testdata/Builtins.lc 408:84-408:95 Nat->Type
1981testdata/Builtins.lc 407:54-407:61 Type->ImageSemantics 2000testdata/Builtins.lc 408:89-408:92 Type
1982testdata/Builtins.lc 407:62-407:65 Type 2001testdata/Builtins.lc 408:93-408:95 Nat
1983testdata/Builtins.lc 410:5-410:20 Type->Type 2002testdata/Builtins.lc 408:96-408:98 Nat
1984testdata/Builtins.lc 410:28-410:33 Type 2003testdata/Builtins.lc 419:6-419:17 Nat -> List ImageSemantics -> Type | Type
1985testdata/Builtins.lc 410:28-410:41 Type->Type 2004testdata/Builtins.lc 419:6-419:51 Type
1986testdata/Builtins.lc 410:28-412:99 Type | Type->Type 2005testdata/Builtins.lc 419:24-419:27 Type
1987testdata/Builtins.lc 410:37-410:41 ImageSemantics->Type | Nat -> ImageSemantics->Type | Type 2006testdata/Builtins.lc 419:35-419:51 Type
1988testdata/Builtins.lc 411:22-411:46 Type 2007testdata/Builtins.lc 419:36-419:50 Type
1989testdata/Builtins.lc 411:22-411:64 Type->Type 2008testdata/Builtins.lc 421:1-421:11 {a : List ImageSemantics} -> {b:Nat} -> FragOps a -> FragmentStream b ('remSemantics' a) -> FrameBuffer b a -> FrameBuffer b a
1990testdata/Builtins.lc 411:22-412:99 Type 2009testdata/Builtins.lc 421:15-421:22 List ImageSemantics -> Type
1991testdata/Builtins.lc 411:50-411:54 a:Type -> a -> a->Type 2010testdata/Builtins.lc 421:15-421:24 Type
1992testdata/Builtins.lc 411:50-411:58 Nat -> Nat->Type 2011testdata/Builtins.lc 421:15-421:100 Type
1993testdata/Builtins.lc 411:50-411:61 Nat->Type 2012testdata/Builtins.lc 421:23-421:24 V3
1994testdata/Builtins.lc 411:50-411:64 ImageSemantics->Type | Nat -> ImageSemantics->Type | Type | Type -> Type->Type | Type->Type 2013testdata/Builtins.lc 421:28-421:42 Nat -> Type->Type
1995testdata/Builtins.lc 411:55-411:58 Type 2014testdata/Builtins.lc 421:28-421:44 Type->Type
1996testdata/Builtins.lc 411:59-411:61 Nat 2015testdata/Builtins.lc 421:28-421:62 Type
1997testdata/Builtins.lc 411:62-411:64 Nat 2016testdata/Builtins.lc 421:28-421:100 Type
1998testdata/Builtins.lc 412:22-412:59 Type 2017testdata/Builtins.lc 421:43-421:44 V2
1999testdata/Builtins.lc 412:22-412:99 Type->Type 2018testdata/Builtins.lc 421:45-421:62 Type
2000testdata/Builtins.lc 412:63-412:65 Type -> Type->Type 2019testdata/Builtins.lc 421:46-421:59 List ImageSemantics -> Type
2001testdata/Builtins.lc 412:63-412:82 Type->Type 2020testdata/Builtins.lc 421:60-421:61 List ImageSemantics
2002testdata/Builtins.lc 412:63-412:99 ImageSemantics->Type | Nat -> ImageSemantics->Type | Type | Type -> Type -> Type->Type | Type -> Type->Type | Type->Type 2021testdata/Builtins.lc 421:66-421:77 Nat -> List ImageSemantics -> Type
2003testdata/Builtins.lc 412:66-412:82 Type 2022testdata/Builtins.lc 421:66-421:79 List ImageSemantics -> Type
2004testdata/Builtins.lc 412:67-412:71 a:Type -> a -> a->Type 2023testdata/Builtins.lc 421:66-421:81 Type
2005testdata/Builtins.lc 412:67-412:75 Nat -> Nat->Type 2024testdata/Builtins.lc 421:66-421:100 Type
2006testdata/Builtins.lc 412:67-412:78 Nat->Type 2025testdata/Builtins.lc 421:78-421:79 Nat
2007testdata/Builtins.lc 412:72-412:75 Type 2026testdata/Builtins.lc 421:80-421:81 List ImageSemantics
2008testdata/Builtins.lc 412:76-412:78 Nat 2027testdata/Builtins.lc 421:85-421:96 Nat -> List ImageSemantics -> Type
2009testdata/Builtins.lc 412:79-412:81 Nat 2028testdata/Builtins.lc 421:85-421:98 List ImageSemantics -> Type
2010testdata/Builtins.lc 412:83-412:99 Type 2029testdata/Builtins.lc 421:85-421:100 Type
2011testdata/Builtins.lc 412:84-412:88 a:Type -> a -> a->Type 2030testdata/Builtins.lc 421:97-421:98 Nat
2012testdata/Builtins.lc 412:84-412:92 Nat -> Nat->Type 2031testdata/Builtins.lc 421:99-421:100 List ImageSemantics
2013testdata/Builtins.lc 412:84-412:95 Nat->Type 2032testdata/Builtins.lc 424:5-424:18 Type->Type
2014testdata/Builtins.lc 412:89-412:92 Type 2033testdata/Builtins.lc 424:26-424:31 Type
2015testdata/Builtins.lc 412:93-412:95 Nat 2034testdata/Builtins.lc 424:26-424:55 Type->Type
2016testdata/Builtins.lc 412:96-412:98 Nat 2035testdata/Builtins.lc 424:26-426:89 Type | Type->Type
2017testdata/Builtins.lc 423:6-423:17 Nat -> List ImageSemantics -> Type | Type 2036testdata/Builtins.lc 424:35-424:46 Nat -> List ImageSemantics -> Type
2018testdata/Builtins.lc 423:6-423:51 Type 2037testdata/Builtins.lc 424:35-424:49 List ImageSemantics -> Type
2019testdata/Builtins.lc 423:24-423:27 Type 2038testdata/Builtins.lc 424:35-424:55 ImageSemantics->Type | Nat -> ImageSemantics->Type | Type
2020testdata/Builtins.lc 423:35-423:51 Type 2039testdata/Builtins.lc 424:47-424:49 Nat
2021testdata/Builtins.lc 423:36-423:50 Type 2040testdata/Builtins.lc 424:50-424:55 List ImageSemantics
2022testdata/Builtins.lc 425:1-425:11 {a : List ImageSemantics} -> {b:Nat} -> FragOps a -> FragmentStream b ('remSemantics' a) -> FrameBuffer b a -> FrameBuffer b a 2041testdata/Builtins.lc 424:52-424:54 ImageSemantics
2023testdata/Builtins.lc 425:15-425:22 List ImageSemantics -> Type 2042testdata/Builtins.lc 425:20-425:44 Type
2024testdata/Builtins.lc 425:15-425:24 Type 2043testdata/Builtins.lc 425:20-425:72 Type->Type
2025testdata/Builtins.lc 425:15-425:100 Type 2044testdata/Builtins.lc 425:20-426:89 Type
2026testdata/Builtins.lc 425:23-425:24 V3 2045testdata/Builtins.lc 425:48-425:59 Nat -> List ImageSemantics -> Type
2027testdata/Builtins.lc 425:28-425:42 Nat -> Type->Type 2046testdata/Builtins.lc 425:48-425:62 List ImageSemantics -> Type
2028testdata/Builtins.lc 425:28-425:44 Type->Type 2047testdata/Builtins.lc 425:48-425:72 ImageSemantics->Type | Nat -> ImageSemantics->Type | Type | Type -> Type->Type | Type->Type
2029testdata/Builtins.lc 425:28-425:62 Type 2048testdata/Builtins.lc 425:60-425:62 Nat
2030testdata/Builtins.lc 425:28-425:100 Type 2049testdata/Builtins.lc 425:63-425:72 List ImageSemantics
2031testdata/Builtins.lc 425:43-425:44 V2 2050testdata/Builtins.lc 425:65-425:67 ImageSemantics
2032testdata/Builtins.lc 425:45-425:62 Type 2051testdata/Builtins.lc 425:69-425:71 ImageSemantics | List ImageSemantics
2033testdata/Builtins.lc 425:46-425:59 List ImageSemantics -> Type 2052testdata/Builtins.lc 426:20-426:57 Type
2034testdata/Builtins.lc 425:60-425:61 List ImageSemantics 2053testdata/Builtins.lc 426:20-426:89 Type->Type
2035testdata/Builtins.lc 425:66-425:77 Nat -> List ImageSemantics -> Type 2054testdata/Builtins.lc 426:61-426:72 Nat -> List ImageSemantics -> Type
2036testdata/Builtins.lc 425:66-425:79 List ImageSemantics -> Type 2055testdata/Builtins.lc 426:61-426:75 List ImageSemantics -> Type
2037testdata/Builtins.lc 425:66-425:81 Type 2056testdata/Builtins.lc 426:61-426:89 ImageSemantics->Type | Nat -> ImageSemantics->Type | Type | Type -> Type -> Type->Type | Type -> Type->Type | Type->Type
2038testdata/Builtins.lc 425:66-425:100 Type 2057testdata/Builtins.lc 426:73-426:75 Nat
2039testdata/Builtins.lc 425:78-425:79 Nat 2058testdata/Builtins.lc 426:76-426:89 List ImageSemantics
2040testdata/Builtins.lc 425:80-425:81 List ImageSemantics 2059testdata/Builtins.lc 426:78-426:80 ImageSemantics
2041testdata/Builtins.lc 425:85-425:96 Nat -> List ImageSemantics -> Type 2060testdata/Builtins.lc 426:82-426:84 ImageSemantics
2042testdata/Builtins.lc 425:85-425:98 List ImageSemantics -> Type 2061testdata/Builtins.lc 426:82-426:88 List ImageSemantics
2043testdata/Builtins.lc 425:85-425:100 Type 2062testdata/Builtins.lc 426:86-426:88 ImageSemantics | List ImageSemantics
2044testdata/Builtins.lc 425:97-425:98 Nat 2063testdata/Builtins.lc 428:7-428:23 List ImageSemantics -> Type
2045testdata/Builtins.lc 425:99-425:100 List ImageSemantics 2064testdata/Builtins.lc 428:31-428:45 Type
2046testdata/Builtins.lc 428:5-428:18 Type->Type 2065testdata/Builtins.lc 431:1-431:12 {a : List ImageSemantics} -> {b} -> {c:Nat} -> {d : ValidFrameBuffer a} -> {e : SameLayerCounts b} -> {f : FrameBuffer c a ~ TFFrameBuffer b} -> b -> FrameBuffer c a
2047testdata/Builtins.lc 428:26-428:31 Type 2066testdata/Builtins.lc 431:17-431:115 Type
2048testdata/Builtins.lc 428:26-428:55 Type->Type 2067testdata/Builtins.lc 431:18-431:34 List ImageSemantics -> Type
2049testdata/Builtins.lc 428:26-430:89 Type | Type->Type 2068testdata/Builtins.lc 431:18-431:36 Type
2050testdata/Builtins.lc 428:35-428:46 Nat -> List ImageSemantics -> Type 2069testdata/Builtins.lc 431:35-431:36 V5
2051testdata/Builtins.lc 428:35-428:49 List ImageSemantics -> Type 2070testdata/Builtins.lc 431:38-431:53 Type->Type
2052testdata/Builtins.lc 428:35-428:55 ImageSemantics->Type | Nat -> ImageSemantics->Type | Type 2071testdata/Builtins.lc 431:38-431:55 Type
2053testdata/Builtins.lc 428:47-428:49 Nat 2072testdata/Builtins.lc 431:38-431:115 Type
2054testdata/Builtins.lc 428:50-428:55 List ImageSemantics 2073testdata/Builtins.lc 431:54-431:55 V4
2055testdata/Builtins.lc 428:52-428:54 ImageSemantics 2074testdata/Builtins.lc 431:57-431:68 Nat -> List ImageSemantics -> Type
2056testdata/Builtins.lc 429:20-429:44 Type 2075testdata/Builtins.lc 431:57-431:70 List ImageSemantics -> Type
2057testdata/Builtins.lc 429:20-429:72 Type->Type 2076testdata/Builtins.lc 431:57-431:72 Type
2058testdata/Builtins.lc 429:20-430:89 Type 2077testdata/Builtins.lc 431:57-431:74 Type->Type
2059testdata/Builtins.lc 429:48-429:59 Nat -> List ImageSemantics -> Type 2078testdata/Builtins.lc 431:57-431:90 Type
2060testdata/Builtins.lc 429:48-429:62 List ImageSemantics -> Type 2079testdata/Builtins.lc 431:57-431:115 Type
2061testdata/Builtins.lc 429:48-429:72 ImageSemantics->Type | Nat -> ImageSemantics->Type | Type | Type -> Type->Type | Type->Type 2080testdata/Builtins.lc 431:69-431:70 V4
2062testdata/Builtins.lc 429:60-429:62 Nat 2081testdata/Builtins.lc 431:71-431:72 List ImageSemantics
2063testdata/Builtins.lc 429:63-429:72 List ImageSemantics 2082testdata/Builtins.lc 431:73-431:74 {a} -> a -> a->Type
2064testdata/Builtins.lc 429:65-429:67 ImageSemantics 2083testdata/Builtins.lc 431:75-431:88 Type->Type
2065testdata/Builtins.lc 429:69-429:71 ImageSemantics | List ImageSemantics 2084testdata/Builtins.lc 431:75-431:90 Type
2066testdata/Builtins.lc 430:20-430:57 Type 2085testdata/Builtins.lc 431:89-431:90 Type
2067testdata/Builtins.lc 430:20-430:89 Type->Type 2086testdata/Builtins.lc 431:95-431:96 Type
2068testdata/Builtins.lc 430:61-430:72 Nat -> List ImageSemantics -> Type 2087testdata/Builtins.lc 431:95-431:115 Type
2069testdata/Builtins.lc 430:61-430:75 List ImageSemantics -> Type 2088testdata/Builtins.lc 431:100-431:111 Nat -> List ImageSemantics -> Type
2070testdata/Builtins.lc 430:61-430:89 ImageSemantics->Type | Nat -> ImageSemantics->Type | Type | Type -> Type -> Type->Type | Type -> Type->Type | Type->Type 2089testdata/Builtins.lc 431:100-431:113 List ImageSemantics -> Type
2071testdata/Builtins.lc 430:73-430:75 Nat 2090testdata/Builtins.lc 431:100-431:115 Type
2072testdata/Builtins.lc 430:76-430:89 List ImageSemantics 2091testdata/Builtins.lc 431:112-431:113 Nat
2073testdata/Builtins.lc 430:78-430:80 ImageSemantics 2092testdata/Builtins.lc 431:114-431:115 List ImageSemantics
2074testdata/Builtins.lc 430:82-430:84 ImageSemantics 2093testdata/Builtins.lc 433:1-433:11 {a : List ImageSemantics} -> {b:Nat} -> {c} -> FragOps a -> (c -> 'remSemantics' a) -> List (Vector b (Maybe (SimpleFragment c))) -> FrameBuffer b a -> FrameBuffer b a
2075testdata/Builtins.lc 430:82-430:88 List ImageSemantics 2094testdata/Builtins.lc 433:34-433:44 {a : List ImageSemantics} -> {b:Nat} -> FragOps a -> FragmentStream b ('remSemantics' a) -> FrameBuffer b a -> FrameBuffer b a
2076testdata/Builtins.lc 430:86-430:88 ImageSemantics | List ImageSemantics 2095testdata/Builtins.lc 433:34-433:48 FragmentStream V0 ('remSemantics' V1) -> FrameBuffer V1 V2 -> FrameBuffer V2 V3
2077testdata/Builtins.lc 432:7-432:23 List ImageSemantics -> Type 2096testdata/Builtins.lc 433:34-433:76 FrameBuffer V1 V2 -> FrameBuffer V2 V3
2078testdata/Builtins.lc 432:31-432:45 Type 2097testdata/Builtins.lc 433:34-433:79 FrameBuffer V1 V2
2079testdata/Builtins.lc 435:1-435:12 {a : List ImageSemantics} -> {b} -> {c:Nat} -> {d : ValidFrameBuffer a} -> {e : SameLayerCounts b} -> {f : FrameBuffer c a ~ TFFrameBuffer b} -> b -> FrameBuffer c a 2098testdata/Builtins.lc 433:45-433:48 V9
2080testdata/Builtins.lc 435:17-435:115 Type 2099testdata/Builtins.lc 433:49-433:76 List (Vector V1 (Maybe (SimpleFragment ('remSemantics' V2))))
2081testdata/Builtins.lc 435:18-435:34 List ImageSemantics -> Type 2100testdata/Builtins.lc 433:50-433:62 {a} -> {b} -> {c:Nat} -> a->b -> List (Vector c (Maybe (SimpleFragment a))) -> List (Vector c (Maybe (SimpleFragment b)))
2082testdata/Builtins.lc 435:18-435:36 Type 2101testdata/Builtins.lc 433:50-433:70 List (Vector V0 (Maybe (SimpleFragment V2))) -> List (Vector V1 (Maybe (SimpleFragment V2)))
2083testdata/Builtins.lc 435:35-435:36 V5 2102testdata/Builtins.lc 433:63-433:70 V10
2084testdata/Builtins.lc 435:38-435:53 Type->Type 2103testdata/Builtins.lc 433:71-433:75 V6
2085testdata/Builtins.lc 435:38-435:55 Type 2104testdata/Builtins.lc 433:77-433:79 V4
2086testdata/Builtins.lc 435:38-435:115 Type 2105testdata/Builtins.lc 435:1-435:20 {a} -> a->a
2087testdata/Builtins.lc 435:54-435:55 V4 2106testdata/Builtins.lc 435:25-435:26 V1
2088testdata/Builtins.lc 435:57-435:68 Nat -> List ImageSemantics -> Type 2107testdata/Builtins.lc 438:1-438:9 {a:ImageSemantics} -> FrameBuffer 1 ('Cons a 'Nil) -> Image 1 a
2089testdata/Builtins.lc 435:57-435:70 List ImageSemantics -> Type 2108testdata/Builtins.lc 438:24-438:35 Nat -> List ImageSemantics -> Type
2090testdata/Builtins.lc 435:57-435:72 Type 2109testdata/Builtins.lc 438:24-438:37 List ImageSemantics -> Type
2091testdata/Builtins.lc 435:57-435:74 Type->Type 2110testdata/Builtins.lc 438:24-438:42 Type
2092testdata/Builtins.lc 435:57-435:90 Type 2111testdata/Builtins.lc 438:24-438:55 Type
2093testdata/Builtins.lc 435:57-435:115 Type 2112testdata/Builtins.lc 438:36-438:37 V1
2094testdata/Builtins.lc 435:69-435:70 V4 2113testdata/Builtins.lc 438:38-438:42 List ImageSemantics
2095testdata/Builtins.lc 435:71-435:72 List ImageSemantics 2114testdata/Builtins.lc 438:40-438:41 V2
2096testdata/Builtins.lc 435:73-435:74 {a} -> a -> a->Type 2115testdata/Builtins.lc 438:46-438:51 Nat -> ImageSemantics->Type
2097testdata/Builtins.lc 435:75-435:88 Type->Type 2116testdata/Builtins.lc 438:46-438:53 ImageSemantics->Type
2098testdata/Builtins.lc 435:75-435:90 Type 2117testdata/Builtins.lc 438:46-438:55 Type
2099testdata/Builtins.lc 435:89-435:90 Type 2118testdata/Builtins.lc 438:52-438:53 V1
2100testdata/Builtins.lc 435:95-435:96 Type 2119testdata/Builtins.lc 438:54-438:55 ImageSemantics
2101testdata/Builtins.lc 435:95-435:115 Type 2120testdata/Builtins.lc 439:1-439:14 FrameBuffer 1 ('Cons ('Depth Float) ('Cons ('Color (Vec 4 Float)) 'Nil)) -> Image 1 ('Color (Vec 4 Float))
2102testdata/Builtins.lc 435:100-435:111 Nat -> List ImageSemantics -> Type 2121testdata/Builtins.lc 439:24-439:35 Nat -> List ImageSemantics -> Type
2103testdata/Builtins.lc 435:100-435:113 List ImageSemantics -> Type 2122testdata/Builtins.lc 439:24-439:37 List ImageSemantics -> Type
2104testdata/Builtins.lc 435:100-435:115 Type 2123testdata/Builtins.lc 439:24-439:75 Type
2105testdata/Builtins.lc 435:112-435:113 Nat 2124testdata/Builtins.lc 439:36-439:37 V1
2106testdata/Builtins.lc 435:114-435:115 List ImageSemantics 2125testdata/Builtins.lc 439:38-439:75 List ImageSemantics
2107testdata/Builtins.lc 437:1-437:11 {a : List ImageSemantics} -> {b:Nat} -> {c} -> FragOps a -> (c -> 'remSemantics' a) -> List (Vector b (Maybe (SimpleFragment c))) -> FrameBuffer b a -> FrameBuffer b a 2126testdata/Builtins.lc 439:40-439:45 Type->ImageSemantics
2108testdata/Builtins.lc 437:34-437:44 {a : List ImageSemantics} -> {b:Nat} -> FragOps a -> FragmentStream b ('remSemantics' a) -> FrameBuffer b a -> FrameBuffer b a 2127testdata/Builtins.lc 439:40-439:52 ImageSemantics
2109testdata/Builtins.lc 437:34-437:48 FragmentStream V0 ('remSemantics' V1) -> FrameBuffer V1 V2 -> FrameBuffer V2 V3 2128testdata/Builtins.lc 439:46-439:52 Type
2110testdata/Builtins.lc 437:34-437:76 FrameBuffer V1 V2 -> FrameBuffer V2 V3 2129testdata/Builtins.lc 439:54-439:59 Type->ImageSemantics
2111testdata/Builtins.lc 437:34-437:79 FrameBuffer V1 V2 2130testdata/Builtins.lc 439:54-439:74 ImageSemantics | List ImageSemantics
2112testdata/Builtins.lc 437:45-437:48 V9 2131testdata/Builtins.lc 439:60-439:74 Type
2113testdata/Builtins.lc 437:49-437:76 List (Vector V1 (Maybe (SimpleFragment ('remSemantics' V2)))) 2132testdata/Builtins.lc 439:62-439:65 Nat -> Type->Type
2114testdata/Builtins.lc 437:50-437:62 {a} -> {b} -> {c:Nat} -> a->b -> List (Vector c (Maybe (SimpleFragment a))) -> List (Vector c (Maybe (SimpleFragment b))) 2133testdata/Builtins.lc 439:62-439:67 Type->Type
2115testdata/Builtins.lc 437:50-437:70 List (Vector V0 (Maybe (SimpleFragment V2))) -> List (Vector V1 (Maybe (SimpleFragment V2))) 2134testdata/Builtins.lc 439:66-439:67 V1
2116testdata/Builtins.lc 437:63-437:70 V10 2135testdata/Builtins.lc 439:68-439:73 Type
2117testdata/Builtins.lc 437:71-437:75 V6 2136testdata/Builtins.lc 439:79-439:84 Nat -> ImageSemantics->Type
2118testdata/Builtins.lc 437:77-437:79 V4 2137testdata/Builtins.lc 439:79-439:86 ImageSemantics->Type
2119testdata/Builtins.lc 439:1-439:20 {a} -> a->a 2138testdata/Builtins.lc 439:79-439:108 Type
2120testdata/Builtins.lc 439:25-439:26 V1 2139testdata/Builtins.lc 439:85-439:86 V1
2121testdata/Builtins.lc 442:1-442:9 {a:ImageSemantics} -> FrameBuffer 1 ('Cons a 'Nil) -> Image 1 a 2140testdata/Builtins.lc 439:87-439:108 ImageSemantics
2122testdata/Builtins.lc 442:24-442:35 Nat -> List ImageSemantics -> Type 2141testdata/Builtins.lc 439:88-439:93 Type->ImageSemantics
2123testdata/Builtins.lc 442:24-442:37 List ImageSemantics -> Type 2142testdata/Builtins.lc 439:94-439:107 Type
2124testdata/Builtins.lc 442:24-442:42 Type 2143testdata/Builtins.lc 439:95-439:98 Nat -> Type->Type
2125testdata/Builtins.lc 442:24-442:55 Type 2144testdata/Builtins.lc 439:95-439:100 Type->Type
2126testdata/Builtins.lc 442:36-442:37 V1 2145testdata/Builtins.lc 439:99-439:100 V1
2127testdata/Builtins.lc 442:38-442:42 List ImageSemantics 2146testdata/Builtins.lc 439:101-439:106 Type
2128testdata/Builtins.lc 442:40-442:41 V2 2147testdata/Builtins.lc 441:6-441:12 Type
2129testdata/Builtins.lc 442:46-442:51 Nat -> ImageSemantics->Type 2148testdata/Builtins.lc 441:6-442:12 Type
2130testdata/Builtins.lc 442:46-442:53 ImageSemantics->Type 2149testdata/Builtins.lc 442:3-442:12 Output | Type | {a:Nat} -> {b : List ImageSemantics} -> FrameBuffer a b -> Output
2131testdata/Builtins.lc 442:46-442:55 Type 2150testdata/Builtins.lc 442:26-442:37 Nat -> List ImageSemantics -> Type
2132testdata/Builtins.lc 442:52-442:53 V1 2151testdata/Builtins.lc 442:26-442:39 List ImageSemantics -> Type
2133testdata/Builtins.lc 442:54-442:55 ImageSemantics 2152testdata/Builtins.lc 442:26-442:41 Type
2134testdata/Builtins.lc 443:1-443:14 FrameBuffer 1 ('Cons ('Depth Float) ('Cons ('Color (Vec 4 Float)) 'Nil)) -> Image 1 ('Color (Vec 4 Float)) 2153testdata/Builtins.lc 442:26-442:51 Type
2135testdata/Builtins.lc 443:24-443:35 Nat -> List ImageSemantics -> Type 2154testdata/Builtins.lc 442:38-442:39 V3
2136testdata/Builtins.lc 443:24-443:37 List ImageSemantics -> Type 2155testdata/Builtins.lc 442:40-442:41 V1
2137testdata/Builtins.lc 443:24-443:75 Type 2156testdata/Builtins.lc 442:45-442:51 Type
2138testdata/Builtins.lc 443:36-443:37 V1 2157testdata/Builtins.lc 448:1-448:8 {a} -> {b : Num (MatVecScalarElem a)} -> a -> a->a
2139testdata/Builtins.lc 443:38-443:75 List ImageSemantics 2158testdata/Builtins.lc 448:10-448:17 {a} -> {b : Num (MatVecScalarElem a)} -> a -> a->a
2140testdata/Builtins.lc 443:40-443:45 Type->ImageSemantics 2159testdata/Builtins.lc 448:19-448:26 {a} -> {b : Num (MatVecScalarElem a)} -> a -> a->a
2141testdata/Builtins.lc 443:40-443:52 ImageSemantics 2160testdata/Builtins.lc 448:34-448:37 Type->Type
2142testdata/Builtins.lc 443:46-443:52 Type 2161testdata/Builtins.lc 448:34-448:58 Type
2143testdata/Builtins.lc 443:54-443:59 Type->ImageSemantics 2162testdata/Builtins.lc 448:34-448:73 Type
2144testdata/Builtins.lc 443:54-443:74 ImageSemantics | List ImageSemantics 2163testdata/Builtins.lc 448:38-448:58 Type
2145testdata/Builtins.lc 443:60-443:74 Type 2164testdata/Builtins.lc 448:39-448:55 Type->Type
2146testdata/Builtins.lc 443:62-443:65 Nat -> Type->Type 2165testdata/Builtins.lc 448:56-448:57 V1
2147testdata/Builtins.lc 443:62-443:67 Type->Type 2166testdata/Builtins.lc 448:62-448:63 Type
2148testdata/Builtins.lc 443:66-443:67 V1 2167testdata/Builtins.lc 448:62-448:73 Type
2149testdata/Builtins.lc 443:68-443:73 Type 2168testdata/Builtins.lc 448:67-448:68 Type
2150testdata/Builtins.lc 443:79-443:84 Nat -> ImageSemantics->Type 2169testdata/Builtins.lc 448:67-448:73 Type
2151testdata/Builtins.lc 443:79-443:86 ImageSemantics->Type 2170testdata/Builtins.lc 448:72-448:73 Type
2152testdata/Builtins.lc 443:79-443:108 Type 2171testdata/Builtins.lc 449:1-449:9 {a} -> {b} -> {c : a ~ MatVecScalarElem b} -> {d : Num a} -> b -> a->b
2153testdata/Builtins.lc 443:85-443:86 V1 2172testdata/Builtins.lc 449:11-449:19 {a} -> {b} -> {c : a ~ MatVecScalarElem b} -> {d : Num a} -> b -> a->b
2154testdata/Builtins.lc 443:87-443:108 ImageSemantics 2173testdata/Builtins.lc 449:21-449:29 {a} -> {b} -> {c : a ~ MatVecScalarElem b} -> {d : Num a} -> b -> a->b
2155testdata/Builtins.lc 443:88-443:93 Type->ImageSemantics 2174testdata/Builtins.lc 449:34-449:80 Type
2156testdata/Builtins.lc 443:94-443:107 Type 2175testdata/Builtins.lc 449:35-449:36 V4
2157testdata/Builtins.lc 443:95-443:98 Nat -> Type->Type 2176testdata/Builtins.lc 449:35-449:38 V3->Type
2158testdata/Builtins.lc 443:95-443:100 Type->Type 2177testdata/Builtins.lc 449:35-449:57 Type
2159testdata/Builtins.lc 443:99-443:100 V1 2178testdata/Builtins.lc 449:37-449:38 {a} -> a -> a->Type
2160testdata/Builtins.lc 443:101-443:106 Type 2179testdata/Builtins.lc 449:39-449:55 Type->Type
2161testdata/Builtins.lc 445:6-445:12 Type 2180testdata/Builtins.lc 449:39-449:57 Type
2162testdata/Builtins.lc 445:6-446:12 Type 2181testdata/Builtins.lc 449:56-449:57 V1
2163testdata/Builtins.lc 446:3-446:12 Output | Type | {a:Nat} -> {b : List ImageSemantics} -> FrameBuffer a b -> Output 2182testdata/Builtins.lc 449:59-449:62 Type->Type
2164testdata/Builtins.lc 446:26-446:37 Nat -> List ImageSemantics -> Type 2183testdata/Builtins.lc 449:59-449:64 Type
2165testdata/Builtins.lc 446:26-446:39 List ImageSemantics -> Type 2184testdata/Builtins.lc 449:59-449:80 Type
2166testdata/Builtins.lc 446:26-446:41 Type 2185testdata/Builtins.lc 449:63-449:64 Type
2167testdata/Builtins.lc 446:26-446:51 Type 2186testdata/Builtins.lc 449:69-449:70 Type
2168testdata/Builtins.lc 446:38-446:39 V3 2187testdata/Builtins.lc 449:69-449:80 Type
2169testdata/Builtins.lc 446:40-446:41 V1 2188testdata/Builtins.lc 449:74-449:75 Type
2170testdata/Builtins.lc 446:45-446:51 Type 2189testdata/Builtins.lc 449:74-449:80 Type
2171testdata/Builtins.lc 452:1-452:8 {a} -> {b : Num (MatVecScalarElem a)} -> a -> a->a 2190testdata/Builtins.lc 449:79-449:80 Type
2172testdata/Builtins.lc 452:10-452:17 {a} -> {b : Num (MatVecScalarElem a)} -> a -> a->a 2191testdata/Builtins.lc 450:1-450:8 {a} -> {b} -> {c:Nat} -> {d : Num a} -> {e : b ~ VecScalar c a} -> b -> b->b
2173testdata/Builtins.lc 452:19-452:26 {a} -> {b : Num (MatVecScalarElem a)} -> a -> a->a 2192testdata/Builtins.lc 450:10-450:17 {a} -> {b} -> {c:Nat} -> {d : Num a} -> {e : b ~ VecScalar c a} -> b -> b->b
2174testdata/Builtins.lc 452:34-452:37 Type->Type 2193testdata/Builtins.lc 450:34-450:75 Type
2175testdata/Builtins.lc 452:34-452:58 Type 2194testdata/Builtins.lc 450:35-450:38 Type->Type
2176testdata/Builtins.lc 452:34-452:73 Type 2195testdata/Builtins.lc 450:35-450:40 Type
2177testdata/Builtins.lc 452:38-452:58 Type 2196testdata/Builtins.lc 450:39-450:40 V5
2178testdata/Builtins.lc 452:39-452:55 Type->Type 2197testdata/Builtins.lc 450:42-450:43 V5
2179testdata/Builtins.lc 452:56-452:57 V1 2198testdata/Builtins.lc 450:42-450:45 V4->Type
2180testdata/Builtins.lc 452:62-452:63 Type 2199testdata/Builtins.lc 450:42-450:59 Type
2181testdata/Builtins.lc 452:62-452:73 Type 2200testdata/Builtins.lc 450:42-450:75 Type
2182testdata/Builtins.lc 452:67-452:68 Type 2201testdata/Builtins.lc 450:44-450:45 {a} -> a -> a->Type
2183testdata/Builtins.lc 452:67-452:73 Type 2202testdata/Builtins.lc 450:46-450:55 Nat -> Type->Type
2184testdata/Builtins.lc 452:72-452:73 Type 2203testdata/Builtins.lc 450:46-450:57 Type->Type
2185testdata/Builtins.lc 453:1-453:9 {a} -> {b} -> {c : a ~ MatVecScalarElem b} -> {d : Num a} -> b -> a->b 2204testdata/Builtins.lc 450:46-450:59 Type
2186testdata/Builtins.lc 453:11-453:19 {a} -> {b} -> {c : a ~ MatVecScalarElem b} -> {d : Num a} -> b -> a->b 2205testdata/Builtins.lc 450:56-450:57 V2
2187testdata/Builtins.lc 453:21-453:29 {a} -> {b} -> {c : a ~ MatVecScalarElem b} -> {d : Num a} -> b -> a->b 2206testdata/Builtins.lc 450:58-450:59 Type
2188testdata/Builtins.lc 453:34-453:80 Type 2207testdata/Builtins.lc 450:64-450:65 Type
2189testdata/Builtins.lc 453:35-453:36 V4 2208testdata/Builtins.lc 450:64-450:75 Type
2190testdata/Builtins.lc 453:35-453:38 V3->Type 2209testdata/Builtins.lc 450:69-450:70 Type
2191testdata/Builtins.lc 453:35-453:57 Type 2210testdata/Builtins.lc 450:69-450:75 Type
2192testdata/Builtins.lc 453:37-453:38 {a} -> a -> a->Type 2211testdata/Builtins.lc 450:74-450:75 Type
2193testdata/Builtins.lc 453:39-453:55 Type->Type 2212testdata/Builtins.lc 451:1-451:9 {a} -> {b} -> {c:Nat} -> {d : Num a} -> {e : b ~ VecScalar c a} -> b -> a->b
2194testdata/Builtins.lc 453:39-453:57 Type 2213testdata/Builtins.lc 451:11-451:19 {a} -> {b} -> {c:Nat} -> {d : Num a} -> {e : b ~ VecScalar c a} -> b -> a->b
2195testdata/Builtins.lc 453:56-453:57 V1 2214testdata/Builtins.lc 451:34-451:75 Type
2196testdata/Builtins.lc 453:59-453:62 Type->Type 2215testdata/Builtins.lc 451:35-451:38 Type->Type
2197testdata/Builtins.lc 453:59-453:64 Type 2216testdata/Builtins.lc 451:35-451:40 Type
2198testdata/Builtins.lc 453:59-453:80 Type 2217testdata/Builtins.lc 451:39-451:40 V5
2199testdata/Builtins.lc 453:63-453:64 Type 2218testdata/Builtins.lc 451:42-451:43 V5
2200testdata/Builtins.lc 453:69-453:70 Type 2219testdata/Builtins.lc 451:42-451:45 V4->Type
2201testdata/Builtins.lc 453:69-453:80 Type 2220testdata/Builtins.lc 451:42-451:59 Type
2202testdata/Builtins.lc 453:74-453:75 Type 2221testdata/Builtins.lc 451:42-451:75 Type
2203testdata/Builtins.lc 453:74-453:80 Type 2222testdata/Builtins.lc 451:44-451:45 {a} -> a -> a->Type
2204testdata/Builtins.lc 453:79-453:80 Type 2223testdata/Builtins.lc 451:46-451:55 Nat -> Type->Type
2205testdata/Builtins.lc 454:1-454:8 {a} -> {b} -> {c:Nat} -> {d : Num a} -> {e : b ~ VecScalar c a} -> b -> b->b 2224testdata/Builtins.lc 451:46-451:57 Type->Type
2206testdata/Builtins.lc 454:10-454:17 {a} -> {b} -> {c:Nat} -> {d : Num a} -> {e : b ~ VecScalar c a} -> b -> b->b 2225testdata/Builtins.lc 451:46-451:59 Type
2207testdata/Builtins.lc 454:34-454:75 Type 2226testdata/Builtins.lc 451:56-451:57 V2
2208testdata/Builtins.lc 454:35-454:38 Type->Type 2227testdata/Builtins.lc 451:58-451:59 Type
2209testdata/Builtins.lc 454:35-454:40 Type 2228testdata/Builtins.lc 451:64-451:65 Type
2210testdata/Builtins.lc 454:39-454:40 V5 2229testdata/Builtins.lc 451:64-451:75 Type
2211testdata/Builtins.lc 454:42-454:43 V5 2230testdata/Builtins.lc 451:69-451:70 Type
2212testdata/Builtins.lc 454:42-454:45 V4->Type 2231testdata/Builtins.lc 451:69-451:75 Type
2213testdata/Builtins.lc 454:42-454:59 Type 2232testdata/Builtins.lc 451:74-451:75 Type
2214testdata/Builtins.lc 454:42-454:75 Type 2233testdata/Builtins.lc 452:1-452:8 {a} -> {b : Signed (MatVecScalarElem a)} -> a->a
2215testdata/Builtins.lc 454:44-454:45 {a} -> a -> a->Type 2234testdata/Builtins.lc 452:34-452:40 Type->Type
2216testdata/Builtins.lc 454:46-454:55 Nat -> Type->Type 2235testdata/Builtins.lc 452:34-452:61 Type
2217testdata/Builtins.lc 454:46-454:57 Type->Type 2236testdata/Builtins.lc 452:34-452:71 Type
2218testdata/Builtins.lc 454:46-454:59 Type 2237testdata/Builtins.lc 452:41-452:61 Type
2219testdata/Builtins.lc 454:56-454:57 V2 2238testdata/Builtins.lc 452:42-452:58 Type->Type
2220testdata/Builtins.lc 454:58-454:59 Type 2239testdata/Builtins.lc 452:59-452:60 V1
2221testdata/Builtins.lc 454:64-454:65 Type 2240testdata/Builtins.lc 452:65-452:66 Type
2222testdata/Builtins.lc 454:64-454:75 Type 2241testdata/Builtins.lc 452:65-452:71 Type
2242testdata/Builtins.lc 452:70-452:71 Type
2243testdata/Builtins.lc 454:1-454:9 {a} -> {b} -> {c:Nat} -> {d : Integral a} -> {e : b ~ VecScalar c a} -> b -> b->b
2244testdata/Builtins.lc 454:11-454:18 {a} -> {b} -> {c:Nat} -> {d : Integral a} -> {e : b ~ VecScalar c a} -> b -> b->b
2245testdata/Builtins.lc 454:20-454:28 {a} -> {b} -> {c:Nat} -> {d : Integral a} -> {e : b ~ VecScalar c a} -> b -> b->b
2246testdata/Builtins.lc 454:34-454:80 Type
2247testdata/Builtins.lc 454:35-454:43 Type->Type
2248testdata/Builtins.lc 454:35-454:45 Type
2249testdata/Builtins.lc 454:44-454:45 V5
2250testdata/Builtins.lc 454:47-454:48 V5
2251testdata/Builtins.lc 454:47-454:50 V4->Type
2252testdata/Builtins.lc 454:47-454:64 Type
2253testdata/Builtins.lc 454:47-454:80 Type
2254testdata/Builtins.lc 454:49-454:50 {a} -> a -> a->Type
2255testdata/Builtins.lc 454:51-454:60 Nat -> Type->Type
2256testdata/Builtins.lc 454:51-454:62 Type->Type
2257testdata/Builtins.lc 454:51-454:64 Type
2258testdata/Builtins.lc 454:61-454:62 V2
2259testdata/Builtins.lc 454:63-454:64 Type
2223testdata/Builtins.lc 454:69-454:70 Type 2260testdata/Builtins.lc 454:69-454:70 Type
2224testdata/Builtins.lc 454:69-454:75 Type 2261testdata/Builtins.lc 454:69-454:80 Type
2225testdata/Builtins.lc 454:74-454:75 Type 2262testdata/Builtins.lc 454:74-454:75 Type
2226testdata/Builtins.lc 455:1-455:9 {a} -> {b} -> {c:Nat} -> {d : Num a} -> {e : b ~ VecScalar c a} -> b -> a->b 2263testdata/Builtins.lc 454:74-454:80 Type
2227testdata/Builtins.lc 455:11-455:19 {a} -> {b} -> {c:Nat} -> {d : Num a} -> {e : b ~ VecScalar c a} -> b -> a->b 2264testdata/Builtins.lc 454:79-454:80 Type
2228testdata/Builtins.lc 455:34-455:75 Type 2265testdata/Builtins.lc 455:1-455:10 {a} -> {b} -> {c:Nat} -> {d : Integral a} -> {e : b ~ VecScalar c a} -> b -> a->b
2229testdata/Builtins.lc 455:35-455:38 Type->Type 2266testdata/Builtins.lc 455:12-455:20 {a} -> {b} -> {c:Nat} -> {d : Integral a} -> {e : b ~ VecScalar c a} -> b -> a->b
2230testdata/Builtins.lc 455:35-455:40 Type 2267testdata/Builtins.lc 455:22-455:31 {a} -> {b} -> {c:Nat} -> {d : Integral a} -> {e : b ~ VecScalar c a} -> b -> a->b
2231testdata/Builtins.lc 455:39-455:40 V5 2268testdata/Builtins.lc 455:34-455:80 Type
2232testdata/Builtins.lc 455:42-455:43 V5 2269testdata/Builtins.lc 455:35-455:43 Type->Type
2233testdata/Builtins.lc 455:42-455:45 V4->Type 2270testdata/Builtins.lc 455:35-455:45 Type
2234testdata/Builtins.lc 455:42-455:59 Type 2271testdata/Builtins.lc 455:44-455:45 V5
2235testdata/Builtins.lc 455:42-455:75 Type 2272testdata/Builtins.lc 455:47-455:48 V5
2236testdata/Builtins.lc 455:44-455:45 {a} -> a -> a->Type 2273testdata/Builtins.lc 455:47-455:50 V4->Type
2237testdata/Builtins.lc 455:46-455:55 Nat -> Type->Type 2274testdata/Builtins.lc 455:47-455:64 Type
2238testdata/Builtins.lc 455:46-455:57 Type->Type 2275testdata/Builtins.lc 455:47-455:80 Type
2239testdata/Builtins.lc 455:46-455:59 Type 2276testdata/Builtins.lc 455:49-455:50 {a} -> a -> a->Type
2240testdata/Builtins.lc 455:56-455:57 V2 2277testdata/Builtins.lc 455:51-455:60 Nat -> Type->Type
2241testdata/Builtins.lc 455:58-455:59 Type 2278testdata/Builtins.lc 455:51-455:62 Type->Type
2242testdata/Builtins.lc 455:64-455:65 Type 2279testdata/Builtins.lc 455:51-455:64 Type
2243testdata/Builtins.lc 455:64-455:75 Type 2280testdata/Builtins.lc 455:61-455:62 V2
2281testdata/Builtins.lc 455:63-455:64 Type
2244testdata/Builtins.lc 455:69-455:70 Type 2282testdata/Builtins.lc 455:69-455:70 Type
2245testdata/Builtins.lc 455:69-455:75 Type 2283testdata/Builtins.lc 455:69-455:80 Type
2246testdata/Builtins.lc 455:74-455:75 Type 2284testdata/Builtins.lc 455:74-455:75 Type
2247testdata/Builtins.lc 456:1-456:8 {a} -> {b : Signed (MatVecScalarElem a)} -> a->a 2285testdata/Builtins.lc 455:74-455:80 Type
2248testdata/Builtins.lc 456:34-456:40 Type->Type 2286testdata/Builtins.lc 455:79-455:80 Type
2249testdata/Builtins.lc 456:34-456:61 Type 2287testdata/Builtins.lc 456:1-456:9 {a} -> {b} -> {c:Nat} -> {d : Integral a} -> {e : b ~ VecScalar c a} -> b->b
2250testdata/Builtins.lc 456:34-456:71 Type 2288testdata/Builtins.lc 456:34-456:75 Type
2251testdata/Builtins.lc 456:41-456:61 Type 2289testdata/Builtins.lc 456:35-456:43 Type->Type
2252testdata/Builtins.lc 456:42-456:58 Type->Type 2290testdata/Builtins.lc 456:35-456:45 Type
2253testdata/Builtins.lc 456:59-456:60 V1 2291testdata/Builtins.lc 456:44-456:45 V5
2254testdata/Builtins.lc 456:65-456:66 Type 2292testdata/Builtins.lc 456:47-456:48 V5
2255testdata/Builtins.lc 456:65-456:71 Type 2293testdata/Builtins.lc 456:47-456:50 V4->Type
2256testdata/Builtins.lc 456:70-456:71 Type 2294testdata/Builtins.lc 456:47-456:64 Type
2257testdata/Builtins.lc 458:1-458:9 {a} -> {b} -> {c:Nat} -> {d : Integral a} -> {e : b ~ VecScalar c a} -> b -> b->b 2295testdata/Builtins.lc 456:47-456:75 Type
2258testdata/Builtins.lc 458:11-458:18 {a} -> {b} -> {c:Nat} -> {d : Integral a} -> {e : b ~ VecScalar c a} -> b -> b->b 2296testdata/Builtins.lc 456:49-456:50 {a} -> a -> a->Type
2259testdata/Builtins.lc 458:20-458:28 {a} -> {b} -> {c:Nat} -> {d : Integral a} -> {e : b ~ VecScalar c a} -> b -> b->b 2297testdata/Builtins.lc 456:51-456:60 Nat -> Type->Type
2260testdata/Builtins.lc 458:34-458:80 Type 2298testdata/Builtins.lc 456:51-456:62 Type->Type
2299testdata/Builtins.lc 456:51-456:64 Type
2300testdata/Builtins.lc 456:61-456:62 V2
2301testdata/Builtins.lc 456:63-456:64 Type
2302testdata/Builtins.lc 456:69-456:70 Type
2303testdata/Builtins.lc 456:69-456:75 Type
2304testdata/Builtins.lc 456:74-456:75 Type
2305testdata/Builtins.lc 457:1-457:12 {a} -> {b} -> {c:Nat} -> {d} -> {e : Integral a} -> {f : b ~ VecScalar c a} -> {g : d ~ VecScalar c Word} -> b -> d->b
2306testdata/Builtins.lc 457:14-457:25 {a} -> {b} -> {c:Nat} -> {d} -> {e : Integral a} -> {f : b ~ VecScalar c a} -> {g : d ~ VecScalar c Word} -> b -> d->b
2307testdata/Builtins.lc 457:34-457:102 Type
2308testdata/Builtins.lc 457:35-457:43 Type->Type
2309testdata/Builtins.lc 457:35-457:45 Type
2310testdata/Builtins.lc 457:44-457:45 V7
2311testdata/Builtins.lc 457:47-457:48 V7
2312testdata/Builtins.lc 457:47-457:50 V6->Type
2313testdata/Builtins.lc 457:47-457:64 Type
2314testdata/Builtins.lc 457:47-457:102 Type
2315testdata/Builtins.lc 457:49-457:50 {a} -> a -> a->Type
2316testdata/Builtins.lc 457:51-457:60 Nat -> Type->Type
2317testdata/Builtins.lc 457:51-457:62 Type->Type
2318testdata/Builtins.lc 457:51-457:64 Type
2319testdata/Builtins.lc 457:61-457:62 V4
2320testdata/Builtins.lc 457:63-457:64 Type
2321testdata/Builtins.lc 457:66-457:67 V4
2322testdata/Builtins.lc 457:66-457:69 V3->Type
2323testdata/Builtins.lc 457:66-457:86 Type
2324testdata/Builtins.lc 457:66-457:102 Type
2325testdata/Builtins.lc 457:68-457:69 {a} -> a -> a->Type
2326testdata/Builtins.lc 457:70-457:79 Nat -> Type->Type
2327testdata/Builtins.lc 457:70-457:81 Type->Type
2328testdata/Builtins.lc 457:70-457:86 Type
2329testdata/Builtins.lc 457:80-457:81 Nat
2330testdata/Builtins.lc 457:82-457:86 Type
2331testdata/Builtins.lc 457:91-457:92 Type
2332testdata/Builtins.lc 457:91-457:102 Type
2333testdata/Builtins.lc 457:96-457:97 Type
2334testdata/Builtins.lc 457:96-457:102 Type
2335testdata/Builtins.lc 457:101-457:102 Type
2336testdata/Builtins.lc 458:1-458:13 {a} -> {b} -> {c:Nat} -> {d : Integral a} -> {e : b ~ VecScalar c a} -> b -> Word->b
2337testdata/Builtins.lc 458:15-458:27 {a} -> {b} -> {c:Nat} -> {d : Integral a} -> {e : b ~ VecScalar c a} -> b -> Word->b
2338testdata/Builtins.lc 458:34-458:83 Type
2261testdata/Builtins.lc 458:35-458:43 Type->Type 2339testdata/Builtins.lc 458:35-458:43 Type->Type
2262testdata/Builtins.lc 458:35-458:45 Type 2340testdata/Builtins.lc 458:35-458:45 Type
2263testdata/Builtins.lc 458:44-458:45 V5 2341testdata/Builtins.lc 458:44-458:45 V5
2264testdata/Builtins.lc 458:47-458:48 V5 2342testdata/Builtins.lc 458:47-458:48 V5
2265testdata/Builtins.lc 458:47-458:50 V4->Type 2343testdata/Builtins.lc 458:47-458:50 V4->Type
2266testdata/Builtins.lc 458:47-458:64 Type 2344testdata/Builtins.lc 458:47-458:64 Type
2267testdata/Builtins.lc 458:47-458:80 Type 2345testdata/Builtins.lc 458:47-458:83 Type
2268testdata/Builtins.lc 458:49-458:50 {a} -> a -> a->Type 2346testdata/Builtins.lc 458:49-458:50 {a} -> a -> a->Type
2269testdata/Builtins.lc 458:51-458:60 Nat -> Type->Type 2347testdata/Builtins.lc 458:51-458:60 Nat -> Type->Type
2270testdata/Builtins.lc 458:51-458:62 Type->Type 2348testdata/Builtins.lc 458:51-458:62 Type->Type
@@ -2272,152 +2350,96 @@ testdata/Builtins.lc 458:51-458:64 Type
2272testdata/Builtins.lc 458:61-458:62 V2 2350testdata/Builtins.lc 458:61-458:62 V2
2273testdata/Builtins.lc 458:63-458:64 Type 2351testdata/Builtins.lc 458:63-458:64 Type
2274testdata/Builtins.lc 458:69-458:70 Type 2352testdata/Builtins.lc 458:69-458:70 Type
2275testdata/Builtins.lc 458:69-458:80 Type 2353testdata/Builtins.lc 458:69-458:83 Type
2276testdata/Builtins.lc 458:74-458:75 Type 2354testdata/Builtins.lc 458:74-458:78 Type
2277testdata/Builtins.lc 458:74-458:80 Type 2355testdata/Builtins.lc 458:74-458:83 Type
2278testdata/Builtins.lc 458:79-458:80 Type 2356testdata/Builtins.lc 458:82-458:83 Type
2279testdata/Builtins.lc 459:1-459:10 {a} -> {b} -> {c:Nat} -> {d : Integral a} -> {e : b ~ VecScalar c a} -> b -> a->b 2357testdata/Builtins.lc 460:1-460:8 Bool -> Bool->Bool
2280testdata/Builtins.lc 459:12-459:20 {a} -> {b} -> {c:Nat} -> {d : Integral a} -> {e : b ~ VecScalar c a} -> b -> a->b 2358testdata/Builtins.lc 460:10-460:16 Bool -> Bool->Bool
2281testdata/Builtins.lc 459:22-459:31 {a} -> {b} -> {c:Nat} -> {d : Integral a} -> {e : b ~ VecScalar c a} -> b -> a->b 2359testdata/Builtins.lc 460:18-460:25 Bool -> Bool->Bool
2282testdata/Builtins.lc 459:34-459:80 Type 2360testdata/Builtins.lc 460:34-460:38 Type
2283testdata/Builtins.lc 459:35-459:43 Type->Type 2361testdata/Builtins.lc 460:42-460:46 Type
2284testdata/Builtins.lc 459:35-459:45 Type 2362testdata/Builtins.lc 460:42-460:54 Type
2285testdata/Builtins.lc 459:44-459:45 V5 2363testdata/Builtins.lc 460:50-460:54 Type
2286testdata/Builtins.lc 459:47-459:48 V5 2364testdata/Builtins.lc 461:1-461:8 {a} -> {b:Nat} -> {c : a ~ VecScalar b Bool} -> a->a
2287testdata/Builtins.lc 459:47-459:50 V4->Type 2365testdata/Builtins.lc 461:47-461:69 Type
2288testdata/Builtins.lc 459:47-459:64 Type 2366testdata/Builtins.lc 461:47-461:79 Type
2289testdata/Builtins.lc 459:47-459:80 Type 2367testdata/Builtins.lc 461:48-461:49 V4
2290testdata/Builtins.lc 459:49-459:50 {a} -> a -> a->Type 2368testdata/Builtins.lc 461:48-461:51 V3->Type
2291testdata/Builtins.lc 459:51-459:60 Nat -> Type->Type 2369testdata/Builtins.lc 461:50-461:51 {a} -> a -> a->Type
2292testdata/Builtins.lc 459:51-459:62 Type->Type 2370testdata/Builtins.lc 461:52-461:61 Nat -> Type->Type
2293testdata/Builtins.lc 459:51-459:64 Type 2371testdata/Builtins.lc 461:52-461:63 Type->Type
2294testdata/Builtins.lc 459:61-459:62 V2 2372testdata/Builtins.lc 461:52-461:68 Type
2295testdata/Builtins.lc 459:63-459:64 Type 2373testdata/Builtins.lc 461:62-461:63 V1
2296testdata/Builtins.lc 459:69-459:70 Type 2374testdata/Builtins.lc 461:64-461:68 Type
2297testdata/Builtins.lc 459:69-459:80 Type 2375testdata/Builtins.lc 461:73-461:74 Type
2298testdata/Builtins.lc 459:74-459:75 Type 2376testdata/Builtins.lc 461:73-461:79 Type
2299testdata/Builtins.lc 459:74-459:80 Type 2377testdata/Builtins.lc 461:78-461:79 Type
2300testdata/Builtins.lc 459:79-459:80 Type 2378testdata/Builtins.lc 462:1-462:8 {a:Nat} -> VecScalar a Bool -> Bool
2301testdata/Builtins.lc 460:1-460:9 {a} -> {b} -> {c:Nat} -> {d : Integral a} -> {e : b ~ VecScalar c a} -> b->b 2379testdata/Builtins.lc 462:10-462:17 {a:Nat} -> VecScalar a Bool -> Bool
2302testdata/Builtins.lc 460:34-460:75 Type 2380testdata/Builtins.lc 462:34-462:43 Nat -> Type->Type
2303testdata/Builtins.lc 460:35-460:43 Type->Type 2381testdata/Builtins.lc 462:34-462:45 Type->Type
2304testdata/Builtins.lc 460:35-460:45 Type 2382testdata/Builtins.lc 462:34-462:50 Type
2305testdata/Builtins.lc 460:44-460:45 V5 2383testdata/Builtins.lc 462:34-462:58 Type
2306testdata/Builtins.lc 460:47-460:48 V5 2384testdata/Builtins.lc 462:44-462:45 V1
2307testdata/Builtins.lc 460:47-460:50 V4->Type 2385testdata/Builtins.lc 462:46-462:50 Type
2308testdata/Builtins.lc 460:47-460:64 Type 2386testdata/Builtins.lc 462:54-462:58 Type
2309testdata/Builtins.lc 460:47-460:75 Type 2387testdata/Builtins.lc 465:1-465:9 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a
2310testdata/Builtins.lc 460:49-460:50 {a} -> a -> a->Type 2388testdata/Builtins.lc 465:11-465:20 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a
2311testdata/Builtins.lc 460:51-460:60 Nat -> Type->Type 2389testdata/Builtins.lc 465:22-465:30 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a
2312testdata/Builtins.lc 460:51-460:62 Type->Type 2390testdata/Builtins.lc 465:32-465:41 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a
2313testdata/Builtins.lc 460:51-460:64 Type 2391testdata/Builtins.lc 465:43-465:51 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a
2314testdata/Builtins.lc 460:61-460:62 V2 2392testdata/Builtins.lc 465:53-465:62 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a
2315testdata/Builtins.lc 460:63-460:64 Type 2393testdata/Builtins.lc 465:64-465:71 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a
2316testdata/Builtins.lc 460:69-460:70 Type 2394testdata/Builtins.lc 465:73-465:81 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a
2317testdata/Builtins.lc 460:69-460:75 Type 2395testdata/Builtins.lc 465:83-465:94 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a
2318testdata/Builtins.lc 460:74-460:75 Type 2396testdata/Builtins.lc 465:96-465:107 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a
2319testdata/Builtins.lc 461:1-461:12 {a} -> {b} -> {c:Nat} -> {d} -> {e : Integral a} -> {f : b ~ VecScalar c a} -> {g : d ~ VecScalar c Word} -> b -> d->b 2397testdata/Builtins.lc 465:109-465:116 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a
2320testdata/Builtins.lc 461:14-461:25 {a} -> {b} -> {c:Nat} -> {d} -> {e : Integral a} -> {f : b ~ VecScalar c a} -> {g : d ~ VecScalar c Word} -> b -> d->b 2398testdata/Builtins.lc 465:118-465:126 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a
2321testdata/Builtins.lc 461:34-461:102 Type 2399testdata/Builtins.lc 465:128-465:135 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a
2322testdata/Builtins.lc 461:35-461:43 Type->Type 2400testdata/Builtins.lc 465:137-465:145 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a
2323testdata/Builtins.lc 461:35-461:45 Type 2401testdata/Builtins.lc 465:147-465:154 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a
2324testdata/Builtins.lc 461:44-461:45 V7 2402testdata/Builtins.lc 465:156-465:163 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a
2325testdata/Builtins.lc 461:47-461:48 V7 2403testdata/Builtins.lc 465:165-465:173 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a
2326testdata/Builtins.lc 461:47-461:50 V6->Type 2404testdata/Builtins.lc 465:175-465:183 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a
2327testdata/Builtins.lc 461:47-461:64 Type 2405testdata/Builtins.lc 465:185-465:193 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a
2328testdata/Builtins.lc 461:47-461:102 Type 2406testdata/Builtins.lc 465:195-465:206 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a
2329testdata/Builtins.lc 461:49-461:50 {a} -> a -> a->Type 2407testdata/Builtins.lc 466:34-466:57 Type
2330testdata/Builtins.lc 461:51-461:60 Nat -> Type->Type 2408testdata/Builtins.lc 466:34-466:67 Type
2331testdata/Builtins.lc 461:51-461:62 Type->Type 2409testdata/Builtins.lc 466:35-466:36 V4
2332testdata/Builtins.lc 461:51-461:64 Type 2410testdata/Builtins.lc 466:35-466:38 V3->Type
2333testdata/Builtins.lc 461:61-461:62 V4 2411testdata/Builtins.lc 466:37-466:38 {a} -> a -> a->Type
2334testdata/Builtins.lc 461:63-461:64 Type 2412testdata/Builtins.lc 466:39-466:48 Nat -> Type->Type
2335testdata/Builtins.lc 461:66-461:67 V4 2413testdata/Builtins.lc 466:39-466:50 Type->Type
2336testdata/Builtins.lc 461:66-461:69 V3->Type 2414testdata/Builtins.lc 466:39-466:56 Type
2337testdata/Builtins.lc 461:66-461:86 Type 2415testdata/Builtins.lc 466:49-466:50 V1
2338testdata/Builtins.lc 461:66-461:102 Type 2416testdata/Builtins.lc 466:51-466:56 Type
2339testdata/Builtins.lc 461:68-461:69 {a} -> a -> a->Type 2417testdata/Builtins.lc 466:61-466:62 Type
2340testdata/Builtins.lc 461:70-461:79 Nat -> Type->Type 2418testdata/Builtins.lc 466:61-466:67 Type
2341testdata/Builtins.lc 461:70-461:81 Type->Type 2419testdata/Builtins.lc 466:66-466:67 Type
2342testdata/Builtins.lc 461:70-461:86 Type 2420testdata/Builtins.lc 467:1-467:8 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a -> a->a
2343testdata/Builtins.lc 461:80-461:81 Nat 2421testdata/Builtins.lc 467:10-467:19 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a -> a->a
2344testdata/Builtins.lc 461:82-461:86 Type 2422testdata/Builtins.lc 467:34-467:57 Type
2345testdata/Builtins.lc 461:91-461:92 Type 2423testdata/Builtins.lc 467:34-467:72 Type
2346testdata/Builtins.lc 461:91-461:102 Type 2424testdata/Builtins.lc 467:35-467:36 V4
2347testdata/Builtins.lc 461:96-461:97 Type 2425testdata/Builtins.lc 467:35-467:38 V3->Type
2348testdata/Builtins.lc 461:96-461:102 Type 2426testdata/Builtins.lc 467:37-467:38 {a} -> a -> a->Type
2349testdata/Builtins.lc 461:101-461:102 Type 2427testdata/Builtins.lc 467:39-467:48 Nat -> Type->Type
2350testdata/Builtins.lc 462:1-462:13 {a} -> {b} -> {c:Nat} -> {d : Integral a} -> {e : b ~ VecScalar c a} -> b -> Word->b 2428testdata/Builtins.lc 467:39-467:50 Type->Type
2351testdata/Builtins.lc 462:15-462:27 {a} -> {b} -> {c:Nat} -> {d : Integral a} -> {e : b ~ VecScalar c a} -> b -> Word->b 2429testdata/Builtins.lc 467:39-467:56 Type
2352testdata/Builtins.lc 462:34-462:83 Type 2430testdata/Builtins.lc 467:49-467:50 V1
2353testdata/Builtins.lc 462:35-462:43 Type->Type 2431testdata/Builtins.lc 467:51-467:56 Type
2354testdata/Builtins.lc 462:35-462:45 Type 2432testdata/Builtins.lc 467:61-467:62 Type
2355testdata/Builtins.lc 462:44-462:45 V5 2433testdata/Builtins.lc 467:61-467:72 Type
2356testdata/Builtins.lc 462:47-462:48 V5 2434testdata/Builtins.lc 467:66-467:67 Type
2357testdata/Builtins.lc 462:47-462:50 V4->Type 2435testdata/Builtins.lc 467:66-467:72 Type
2358testdata/Builtins.lc 462:47-462:64 Type 2436testdata/Builtins.lc 467:71-467:72 Type
2359testdata/Builtins.lc 462:47-462:83 Type 2437testdata/Builtins.lc 469:1-469:10 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a
2360testdata/Builtins.lc 462:49-462:50 {a} -> a -> a->Type 2438testdata/Builtins.lc 469:12-469:21 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a
2361testdata/Builtins.lc 462:51-462:60 Nat -> Type->Type 2439testdata/Builtins.lc 469:23-469:32 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a
2362testdata/Builtins.lc 462:51-462:62 Type->Type 2440testdata/Builtins.lc 469:34-469:47 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a
2363testdata/Builtins.lc 462:51-462:64 Type 2441testdata/Builtins.lc 469:49-469:57 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a
2364testdata/Builtins.lc 462:61-462:62 V2 2442testdata/Builtins.lc 469:59-469:68 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a
2365testdata/Builtins.lc 462:63-462:64 Type
2366testdata/Builtins.lc 462:69-462:70 Type
2367testdata/Builtins.lc 462:69-462:83 Type
2368testdata/Builtins.lc 462:74-462:78 Type
2369testdata/Builtins.lc 462:74-462:83 Type
2370testdata/Builtins.lc 462:82-462:83 Type
2371testdata/Builtins.lc 464:1-464:8 Bool -> Bool->Bool
2372testdata/Builtins.lc 464:10-464:16 Bool -> Bool->Bool
2373testdata/Builtins.lc 464:18-464:25 Bool -> Bool->Bool
2374testdata/Builtins.lc 464:34-464:38 Type
2375testdata/Builtins.lc 464:42-464:46 Type
2376testdata/Builtins.lc 464:42-464:54 Type
2377testdata/Builtins.lc 464:50-464:54 Type
2378testdata/Builtins.lc 465:1-465:8 {a} -> {b:Nat} -> {c : a ~ VecScalar b Bool} -> a->a
2379testdata/Builtins.lc 465:47-465:69 Type
2380testdata/Builtins.lc 465:47-465:79 Type
2381testdata/Builtins.lc 465:48-465:49 V4
2382testdata/Builtins.lc 465:48-465:51 V3->Type
2383testdata/Builtins.lc 465:50-465:51 {a} -> a -> a->Type
2384testdata/Builtins.lc 465:52-465:61 Nat -> Type->Type
2385testdata/Builtins.lc 465:52-465:63 Type->Type
2386testdata/Builtins.lc 465:52-465:68 Type
2387testdata/Builtins.lc 465:62-465:63 V1
2388testdata/Builtins.lc 465:64-465:68 Type
2389testdata/Builtins.lc 465:73-465:74 Type
2390testdata/Builtins.lc 465:73-465:79 Type
2391testdata/Builtins.lc 465:78-465:79 Type
2392testdata/Builtins.lc 466:1-466:8 {a:Nat} -> VecScalar a Bool -> Bool
2393testdata/Builtins.lc 466:10-466:17 {a:Nat} -> VecScalar a Bool -> Bool
2394testdata/Builtins.lc 466:34-466:43 Nat -> Type->Type
2395testdata/Builtins.lc 466:34-466:45 Type->Type
2396testdata/Builtins.lc 466:34-466:50 Type
2397testdata/Builtins.lc 466:34-466:58 Type
2398testdata/Builtins.lc 466:44-466:45 V1
2399testdata/Builtins.lc 466:46-466:50 Type
2400testdata/Builtins.lc 466:54-466:58 Type
2401testdata/Builtins.lc 469:1-469:9 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a
2402testdata/Builtins.lc 469:11-469:20 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a
2403testdata/Builtins.lc 469:22-469:30 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a
2404testdata/Builtins.lc 469:32-469:41 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a
2405testdata/Builtins.lc 469:43-469:51 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a
2406testdata/Builtins.lc 469:53-469:62 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a
2407testdata/Builtins.lc 469:64-469:71 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a
2408testdata/Builtins.lc 469:73-469:81 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a
2409testdata/Builtins.lc 469:83-469:94 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a
2410testdata/Builtins.lc 469:96-469:107 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a
2411testdata/Builtins.lc 469:109-469:116 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a
2412testdata/Builtins.lc 469:118-469:126 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a
2413testdata/Builtins.lc 469:128-469:135 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a
2414testdata/Builtins.lc 469:137-469:145 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a
2415testdata/Builtins.lc 469:147-469:154 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a
2416testdata/Builtins.lc 469:156-469:163 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a
2417testdata/Builtins.lc 469:165-469:173 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a
2418testdata/Builtins.lc 469:175-469:183 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a
2419testdata/Builtins.lc 469:185-469:193 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a
2420testdata/Builtins.lc 469:195-469:206 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a
2421testdata/Builtins.lc 470:34-470:57 Type 2443testdata/Builtins.lc 470:34-470:57 Type
2422testdata/Builtins.lc 470:34-470:67 Type 2444testdata/Builtins.lc 470:34-470:67 Type
2423testdata/Builtins.lc 470:35-470:36 V4 2445testdata/Builtins.lc 470:35-470:36 V4
@@ -2431,73 +2453,117 @@ testdata/Builtins.lc 470:51-470:56 Type
2431testdata/Builtins.lc 470:61-470:62 Type 2453testdata/Builtins.lc 470:61-470:62 Type
2432testdata/Builtins.lc 470:61-470:67 Type 2454testdata/Builtins.lc 470:61-470:67 Type
2433testdata/Builtins.lc 470:66-470:67 Type 2455testdata/Builtins.lc 470:66-470:67 Type
2434testdata/Builtins.lc 471:1-471:8 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a -> a->a 2456testdata/Builtins.lc 471:1-471:8 {a} -> {b} -> {c:Nat} -> {d : Num a} -> {e : b ~ VecScalar c a} -> b -> b->b
2435testdata/Builtins.lc 471:10-471:19 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a -> a->a 2457testdata/Builtins.lc 471:10-471:17 {a} -> {b} -> {c:Nat} -> {d : Num a} -> {e : b ~ VecScalar c a} -> b -> b->b
2436testdata/Builtins.lc 471:34-471:57 Type 2458testdata/Builtins.lc 471:34-471:75 Type
2437testdata/Builtins.lc 471:34-471:72 Type 2459testdata/Builtins.lc 471:35-471:38 Type->Type
2438testdata/Builtins.lc 471:35-471:36 V4 2460testdata/Builtins.lc 471:35-471:40 Type
2439testdata/Builtins.lc 471:35-471:38 V3->Type 2461testdata/Builtins.lc 471:39-471:40 V5
2440testdata/Builtins.lc 471:37-471:38 {a} -> a -> a->Type 2462testdata/Builtins.lc 471:42-471:43 V5
2441testdata/Builtins.lc 471:39-471:48 Nat -> Type->Type 2463testdata/Builtins.lc 471:42-471:45 V4->Type
2442testdata/Builtins.lc 471:39-471:50 Type->Type 2464testdata/Builtins.lc 471:42-471:59 Type
2443testdata/Builtins.lc 471:39-471:56 Type 2465testdata/Builtins.lc 471:42-471:75 Type
2444testdata/Builtins.lc 471:49-471:50 V1 2466testdata/Builtins.lc 471:44-471:45 {a} -> a -> a->Type
2445testdata/Builtins.lc 471:51-471:56 Type 2467testdata/Builtins.lc 471:46-471:55 Nat -> Type->Type
2446testdata/Builtins.lc 471:61-471:62 Type 2468testdata/Builtins.lc 471:46-471:57 Type->Type
2447testdata/Builtins.lc 471:61-471:72 Type 2469testdata/Builtins.lc 471:46-471:59 Type
2448testdata/Builtins.lc 471:66-471:67 Type 2470testdata/Builtins.lc 471:56-471:57 V2
2449testdata/Builtins.lc 471:66-471:72 Type 2471testdata/Builtins.lc 471:58-471:59 Type
2450testdata/Builtins.lc 471:71-471:72 Type 2472testdata/Builtins.lc 471:64-471:65 Type
2451testdata/Builtins.lc 473:1-473:10 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a 2473testdata/Builtins.lc 471:64-471:75 Type
2452testdata/Builtins.lc 473:12-473:21 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a 2474testdata/Builtins.lc 471:69-471:70 Type
2453testdata/Builtins.lc 473:23-473:32 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a 2475testdata/Builtins.lc 471:69-471:75 Type
2454testdata/Builtins.lc 473:34-473:47 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a 2476testdata/Builtins.lc 471:74-471:75 Type
2455testdata/Builtins.lc 473:49-473:57 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a 2477testdata/Builtins.lc 472:1-472:9 {a} -> {b} -> {c:Nat} -> {d : Num a} -> {e : b ~ VecScalar c a} -> b -> a->b
2456testdata/Builtins.lc 473:59-473:68 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a 2478testdata/Builtins.lc 472:11-472:19 {a} -> {b} -> {c:Nat} -> {d : Num a} -> {e : b ~ VecScalar c a} -> b -> a->b
2457testdata/Builtins.lc 474:34-474:57 Type 2479testdata/Builtins.lc 472:34-472:75 Type
2458testdata/Builtins.lc 474:34-474:67 Type 2480testdata/Builtins.lc 472:35-472:38 Type->Type
2459testdata/Builtins.lc 474:35-474:36 V4 2481testdata/Builtins.lc 472:35-472:40 Type
2460testdata/Builtins.lc 474:35-474:38 V3->Type 2482testdata/Builtins.lc 472:39-472:40 V5
2461testdata/Builtins.lc 474:37-474:38 {a} -> a -> a->Type 2483testdata/Builtins.lc 472:42-472:43 V5
2462testdata/Builtins.lc 474:39-474:48 Nat -> Type->Type 2484testdata/Builtins.lc 472:42-472:45 V4->Type
2463testdata/Builtins.lc 474:39-474:50 Type->Type 2485testdata/Builtins.lc 472:42-472:59 Type
2464testdata/Builtins.lc 474:39-474:56 Type 2486testdata/Builtins.lc 472:42-472:75 Type
2465testdata/Builtins.lc 474:49-474:50 V1 2487testdata/Builtins.lc 472:44-472:45 {a} -> a -> a->Type
2466testdata/Builtins.lc 474:51-474:56 Type 2488testdata/Builtins.lc 472:46-472:55 Nat -> Type->Type
2489testdata/Builtins.lc 472:46-472:57 Type->Type
2490testdata/Builtins.lc 472:46-472:59 Type
2491testdata/Builtins.lc 472:56-472:57 V2
2492testdata/Builtins.lc 472:58-472:59 Type
2493testdata/Builtins.lc 472:64-472:65 Type
2494testdata/Builtins.lc 472:64-472:75 Type
2495testdata/Builtins.lc 472:69-472:70 Type
2496testdata/Builtins.lc 472:69-472:75 Type
2497testdata/Builtins.lc 472:74-472:75 Type
2498testdata/Builtins.lc 473:1-473:10 {a} -> {b:Nat} -> {c} -> {d : a ~ VecScalar b Float} -> {e : c ~ VecScalar b Bool} -> a->c
2499testdata/Builtins.lc 473:12-473:21 {a} -> {b:Nat} -> {c} -> {d : a ~ VecScalar b Float} -> {e : c ~ VecScalar b Bool} -> a->c
2500testdata/Builtins.lc 473:34-473:89 Type
2501testdata/Builtins.lc 473:35-473:36 V6
2502testdata/Builtins.lc 473:35-473:38 V5->Type
2503testdata/Builtins.lc 473:35-473:56 Type
2504testdata/Builtins.lc 473:37-473:38 {a} -> a -> a->Type
2505testdata/Builtins.lc 473:39-473:48 Nat -> Type->Type
2506testdata/Builtins.lc 473:39-473:50 Type->Type
2507testdata/Builtins.lc 473:39-473:56 Type
2508testdata/Builtins.lc 473:49-473:50 V3
2509testdata/Builtins.lc 473:51-473:56 Type
2510testdata/Builtins.lc 473:58-473:59 V3
2511testdata/Builtins.lc 473:58-473:61 V2->Type
2512testdata/Builtins.lc 473:58-473:78 Type
2513testdata/Builtins.lc 473:58-473:89 Type
2514testdata/Builtins.lc 473:60-473:61 {a} -> a -> a->Type
2515testdata/Builtins.lc 473:62-473:71 Nat -> Type->Type
2516testdata/Builtins.lc 473:62-473:73 Type->Type
2517testdata/Builtins.lc 473:62-473:78 Type
2518testdata/Builtins.lc 473:72-473:73 Nat
2519testdata/Builtins.lc 473:74-473:78 Type
2520testdata/Builtins.lc 473:83-473:84 Type
2521testdata/Builtins.lc 473:83-473:89 Type
2522testdata/Builtins.lc 473:88-473:89 Type
2523testdata/Builtins.lc 474:1-474:8 {a} -> {b} -> {c:Nat} -> {d : Signed a} -> {e : b ~ VecScalar c a} -> b->b
2524testdata/Builtins.lc 474:10-474:18 {a} -> {b} -> {c:Nat} -> {d : Signed a} -> {e : b ~ VecScalar c a} -> b->b
2525testdata/Builtins.lc 474:34-474:73 Type
2526testdata/Builtins.lc 474:35-474:41 Type->Type
2527testdata/Builtins.lc 474:35-474:43 Type
2528testdata/Builtins.lc 474:42-474:43 V5
2529testdata/Builtins.lc 474:45-474:46 V5
2530testdata/Builtins.lc 474:45-474:48 V4->Type
2531testdata/Builtins.lc 474:45-474:62 Type
2532testdata/Builtins.lc 474:45-474:73 Type
2533testdata/Builtins.lc 474:47-474:48 {a} -> a -> a->Type
2534testdata/Builtins.lc 474:49-474:58 Nat -> Type->Type
2535testdata/Builtins.lc 474:49-474:60 Type->Type
2536testdata/Builtins.lc 474:49-474:62 Type
2537testdata/Builtins.lc 474:59-474:60 V2
2467testdata/Builtins.lc 474:61-474:62 Type 2538testdata/Builtins.lc 474:61-474:62 Type
2468testdata/Builtins.lc 474:61-474:67 Type 2539testdata/Builtins.lc 474:67-474:68 Type
2469testdata/Builtins.lc 474:66-474:67 Type 2540testdata/Builtins.lc 474:67-474:73 Type
2470testdata/Builtins.lc 475:1-475:8 {a} -> {b} -> {c:Nat} -> {d : Num a} -> {e : b ~ VecScalar c a} -> b -> b->b 2541testdata/Builtins.lc 474:72-474:73 Type
2471testdata/Builtins.lc 475:10-475:17 {a} -> {b} -> {c:Nat} -> {d : Num a} -> {e : b ~ VecScalar c a} -> b -> b->b 2542testdata/Builtins.lc 475:1-475:9 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a -> Tuple2 a a
2472testdata/Builtins.lc 475:34-475:75 Type 2543testdata/Builtins.lc 475:34-475:57 Type
2473testdata/Builtins.lc 475:35-475:38 Type->Type 2544testdata/Builtins.lc 475:34-475:72 Type
2474testdata/Builtins.lc 475:35-475:40 Type 2545testdata/Builtins.lc 475:35-475:36 V4
2475testdata/Builtins.lc 475:39-475:40 V5 2546testdata/Builtins.lc 475:35-475:38 V3->Type
2476testdata/Builtins.lc 475:42-475:43 V5 2547testdata/Builtins.lc 475:37-475:38 {a} -> a -> a->Type
2477testdata/Builtins.lc 475:42-475:45 V4->Type 2548testdata/Builtins.lc 475:39-475:48 Nat -> Type->Type
2478testdata/Builtins.lc 475:42-475:59 Type 2549testdata/Builtins.lc 475:39-475:50 Type->Type
2479testdata/Builtins.lc 475:42-475:75 Type 2550testdata/Builtins.lc 475:39-475:56 Type
2480testdata/Builtins.lc 475:44-475:45 {a} -> a -> a->Type 2551testdata/Builtins.lc 475:49-475:50 V1
2481testdata/Builtins.lc 475:46-475:55 Nat -> Type->Type 2552testdata/Builtins.lc 475:51-475:56 Type
2482testdata/Builtins.lc 475:46-475:57 Type->Type 2553testdata/Builtins.lc 475:61-475:62 Type
2483testdata/Builtins.lc 475:46-475:59 Type 2554testdata/Builtins.lc 475:61-475:72 Type
2484testdata/Builtins.lc 475:56-475:57 V2 2555testdata/Builtins.lc 475:66-475:72 Type
2485testdata/Builtins.lc 475:58-475:59 Type 2556testdata/Builtins.lc 475:67-475:68 Type
2486testdata/Builtins.lc 475:64-475:65 Type 2557testdata/Builtins.lc 475:70-475:71 Type
2487testdata/Builtins.lc 475:64-475:75 Type 2558testdata/Builtins.lc 476:1-476:10 {a} -> {b} -> {c:Nat} -> {d : Num a} -> {e : b ~ VecScalar c a} -> b -> b -> b->b
2488testdata/Builtins.lc 475:69-475:70 Type 2559testdata/Builtins.lc 476:34-476:80 Type
2489testdata/Builtins.lc 475:69-475:75 Type
2490testdata/Builtins.lc 475:74-475:75 Type
2491testdata/Builtins.lc 476:1-476:9 {a} -> {b} -> {c:Nat} -> {d : Num a} -> {e : b ~ VecScalar c a} -> b -> a->b
2492testdata/Builtins.lc 476:11-476:19 {a} -> {b} -> {c:Nat} -> {d : Num a} -> {e : b ~ VecScalar c a} -> b -> a->b
2493testdata/Builtins.lc 476:34-476:75 Type
2494testdata/Builtins.lc 476:35-476:38 Type->Type 2560testdata/Builtins.lc 476:35-476:38 Type->Type
2495testdata/Builtins.lc 476:35-476:40 Type 2561testdata/Builtins.lc 476:35-476:40 Type
2496testdata/Builtins.lc 476:39-476:40 V5 2562testdata/Builtins.lc 476:39-476:40 V5
2497testdata/Builtins.lc 476:42-476:43 V5 2563testdata/Builtins.lc 476:42-476:43 V5
2498testdata/Builtins.lc 476:42-476:45 V4->Type 2564testdata/Builtins.lc 476:42-476:45 V4->Type
2499testdata/Builtins.lc 476:42-476:59 Type 2565testdata/Builtins.lc 476:42-476:59 Type
2500testdata/Builtins.lc 476:42-476:75 Type 2566testdata/Builtins.lc 476:42-476:80 Type
2501testdata/Builtins.lc 476:44-476:45 {a} -> a -> a->Type 2567testdata/Builtins.lc 476:44-476:45 {a} -> a -> a->Type
2502testdata/Builtins.lc 476:46-476:55 Nat -> Type->Type 2568testdata/Builtins.lc 476:46-476:55 Nat -> Type->Type
2503testdata/Builtins.lc 476:46-476:57 Type->Type 2569testdata/Builtins.lc 476:46-476:57 Type->Type
@@ -2505,57 +2571,55 @@ testdata/Builtins.lc 476:46-476:59 Type
2505testdata/Builtins.lc 476:56-476:57 V2 2571testdata/Builtins.lc 476:56-476:57 V2
2506testdata/Builtins.lc 476:58-476:59 Type 2572testdata/Builtins.lc 476:58-476:59 Type
2507testdata/Builtins.lc 476:64-476:65 Type 2573testdata/Builtins.lc 476:64-476:65 Type
2508testdata/Builtins.lc 476:64-476:75 Type 2574testdata/Builtins.lc 476:64-476:80 Type
2509testdata/Builtins.lc 476:69-476:70 Type 2575testdata/Builtins.lc 476:69-476:70 Type
2510testdata/Builtins.lc 476:69-476:75 Type 2576testdata/Builtins.lc 476:69-476:80 Type
2511testdata/Builtins.lc 476:74-476:75 Type 2577testdata/Builtins.lc 476:74-476:75 Type
2512testdata/Builtins.lc 477:1-477:10 {a} -> {b:Nat} -> {c} -> {d : a ~ VecScalar b Float} -> {e : c ~ VecScalar b Bool} -> a->c 2578testdata/Builtins.lc 476:74-476:80 Type
2513testdata/Builtins.lc 477:12-477:21 {a} -> {b:Nat} -> {c} -> {d : a ~ VecScalar b Float} -> {e : c ~ VecScalar b Bool} -> a->c 2579testdata/Builtins.lc 476:79-476:80 Type
2514testdata/Builtins.lc 477:34-477:89 Type 2580testdata/Builtins.lc 477:1-477:11 {a} -> {b} -> {c:Nat} -> {d : Num a} -> {e : b ~ VecScalar c a} -> b -> a -> a->b
2515testdata/Builtins.lc 477:35-477:36 V6 2581testdata/Builtins.lc 477:34-477:80 Type
2516testdata/Builtins.lc 477:35-477:38 V5->Type 2582testdata/Builtins.lc 477:35-477:38 Type->Type
2517testdata/Builtins.lc 477:35-477:56 Type 2583testdata/Builtins.lc 477:35-477:40 Type
2518testdata/Builtins.lc 477:37-477:38 {a} -> a -> a->Type 2584testdata/Builtins.lc 477:39-477:40 V5
2519testdata/Builtins.lc 477:39-477:48 Nat -> Type->Type 2585testdata/Builtins.lc 477:42-477:43 V5
2520testdata/Builtins.lc 477:39-477:50 Type->Type 2586testdata/Builtins.lc 477:42-477:45 V4->Type
2521testdata/Builtins.lc 477:39-477:56 Type 2587testdata/Builtins.lc 477:42-477:59 Type
2522testdata/Builtins.lc 477:49-477:50 V3 2588testdata/Builtins.lc 477:42-477:80 Type
2523testdata/Builtins.lc 477:51-477:56 Type 2589testdata/Builtins.lc 477:44-477:45 {a} -> a -> a->Type
2524testdata/Builtins.lc 477:58-477:59 V3 2590testdata/Builtins.lc 477:46-477:55 Nat -> Type->Type
2525testdata/Builtins.lc 477:58-477:61 V2->Type 2591testdata/Builtins.lc 477:46-477:57 Type->Type
2526testdata/Builtins.lc 477:58-477:78 Type 2592testdata/Builtins.lc 477:46-477:59 Type
2527testdata/Builtins.lc 477:58-477:89 Type 2593testdata/Builtins.lc 477:56-477:57 V2
2528testdata/Builtins.lc 477:60-477:61 {a} -> a -> a->Type 2594testdata/Builtins.lc 477:58-477:59 Type
2529testdata/Builtins.lc 477:62-477:71 Nat -> Type->Type 2595testdata/Builtins.lc 477:64-477:65 Type
2530testdata/Builtins.lc 477:62-477:73 Type->Type 2596testdata/Builtins.lc 477:64-477:80 Type
2531testdata/Builtins.lc 477:62-477:78 Type 2597testdata/Builtins.lc 477:69-477:70 Type
2532testdata/Builtins.lc 477:72-477:73 Nat 2598testdata/Builtins.lc 477:69-477:80 Type
2533testdata/Builtins.lc 477:74-477:78 Type 2599testdata/Builtins.lc 477:74-477:75 Type
2534testdata/Builtins.lc 477:83-477:84 Type 2600testdata/Builtins.lc 477:74-477:80 Type
2535testdata/Builtins.lc 477:83-477:89 Type 2601testdata/Builtins.lc 477:79-477:80 Type
2536testdata/Builtins.lc 477:88-477:89 Type 2602testdata/Builtins.lc 478:1-478:8 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a -> a -> a->a
2537testdata/Builtins.lc 478:1-478:8 {a} -> {b} -> {c:Nat} -> {d : Signed a} -> {e : b ~ VecScalar c a} -> b->b 2603testdata/Builtins.lc 478:34-478:57 Type
2538testdata/Builtins.lc 478:10-478:18 {a} -> {b} -> {c:Nat} -> {d : Signed a} -> {e : b ~ VecScalar c a} -> b->b 2604testdata/Builtins.lc 478:34-478:77 Type
2539testdata/Builtins.lc 478:34-478:73 Type 2605testdata/Builtins.lc 478:35-478:36 V4
2540testdata/Builtins.lc 478:35-478:41 Type->Type 2606testdata/Builtins.lc 478:35-478:38 V3->Type
2541testdata/Builtins.lc 478:35-478:43 Type 2607testdata/Builtins.lc 478:37-478:38 {a} -> a -> a->Type
2542testdata/Builtins.lc 478:42-478:43 V5 2608testdata/Builtins.lc 478:39-478:48 Nat -> Type->Type
2543testdata/Builtins.lc 478:45-478:46 V5 2609testdata/Builtins.lc 478:39-478:50 Type->Type
2544testdata/Builtins.lc 478:45-478:48 V4->Type 2610testdata/Builtins.lc 478:39-478:56 Type
2545testdata/Builtins.lc 478:45-478:62 Type 2611testdata/Builtins.lc 478:49-478:50 V1
2546testdata/Builtins.lc 478:45-478:73 Type 2612testdata/Builtins.lc 478:51-478:56 Type
2547testdata/Builtins.lc 478:47-478:48 {a} -> a -> a->Type
2548testdata/Builtins.lc 478:49-478:58 Nat -> Type->Type
2549testdata/Builtins.lc 478:49-478:60 Type->Type
2550testdata/Builtins.lc 478:49-478:62 Type
2551testdata/Builtins.lc 478:59-478:60 V2
2552testdata/Builtins.lc 478:61-478:62 Type 2613testdata/Builtins.lc 478:61-478:62 Type
2553testdata/Builtins.lc 478:67-478:68 Type 2614testdata/Builtins.lc 478:61-478:77 Type
2554testdata/Builtins.lc 478:67-478:73 Type 2615testdata/Builtins.lc 478:66-478:67 Type
2555testdata/Builtins.lc 478:72-478:73 Type 2616testdata/Builtins.lc 478:66-478:77 Type
2556testdata/Builtins.lc 479:1-479:9 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a -> Tuple2 a a 2617testdata/Builtins.lc 478:71-478:72 Type
2618testdata/Builtins.lc 478:71-478:77 Type
2619testdata/Builtins.lc 478:76-478:77 Type
2620testdata/Builtins.lc 479:1-479:9 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a -> a -> Float->a
2557testdata/Builtins.lc 479:34-479:57 Type 2621testdata/Builtins.lc 479:34-479:57 Type
2558testdata/Builtins.lc 479:34-479:72 Type 2622testdata/Builtins.lc 479:34-479:81 Type
2559testdata/Builtins.lc 479:35-479:36 V4 2623testdata/Builtins.lc 479:35-479:36 V4
2560testdata/Builtins.lc 479:35-479:38 V3->Type 2624testdata/Builtins.lc 479:35-479:38 V3->Type
2561testdata/Builtins.lc 479:37-479:38 {a} -> a -> a->Type 2625testdata/Builtins.lc 479:37-479:38 {a} -> a -> a->Type
@@ -2565,57 +2629,59 @@ testdata/Builtins.lc 479:39-479:56 Type
2565testdata/Builtins.lc 479:49-479:50 V1 2629testdata/Builtins.lc 479:49-479:50 V1
2566testdata/Builtins.lc 479:51-479:56 Type 2630testdata/Builtins.lc 479:51-479:56 Type
2567testdata/Builtins.lc 479:61-479:62 Type 2631testdata/Builtins.lc 479:61-479:62 Type
2568testdata/Builtins.lc 479:61-479:72 Type 2632testdata/Builtins.lc 479:61-479:81 Type
2569testdata/Builtins.lc 479:66-479:72 Type 2633testdata/Builtins.lc 479:66-479:67 Type
2570testdata/Builtins.lc 479:67-479:68 Type 2634testdata/Builtins.lc 479:66-479:81 Type
2571testdata/Builtins.lc 479:70-479:71 Type 2635testdata/Builtins.lc 479:71-479:76 Type
2572testdata/Builtins.lc 480:1-480:10 {a} -> {b} -> {c:Nat} -> {d : Num a} -> {e : b ~ VecScalar c a} -> b -> b -> b->b 2636testdata/Builtins.lc 479:71-479:81 Type
2573testdata/Builtins.lc 480:34-480:80 Type 2637testdata/Builtins.lc 479:80-479:81 Type
2574testdata/Builtins.lc 480:35-480:38 Type->Type 2638testdata/Builtins.lc 480:1-480:9 {a} -> {b:Nat} -> {c} -> {d : a ~ VecScalar b Float} -> {e : c ~ VecScalar b Bool} -> a -> a -> c->a
2575testdata/Builtins.lc 480:35-480:40 Type 2639testdata/Builtins.lc 480:34-480:99 Type
2576testdata/Builtins.lc 480:39-480:40 V5 2640testdata/Builtins.lc 480:35-480:36 V6
2577testdata/Builtins.lc 480:42-480:43 V5 2641testdata/Builtins.lc 480:35-480:38 V5->Type
2578testdata/Builtins.lc 480:42-480:45 V4->Type 2642testdata/Builtins.lc 480:35-480:56 Type
2579testdata/Builtins.lc 480:42-480:59 Type 2643testdata/Builtins.lc 480:37-480:38 {a} -> a -> a->Type
2580testdata/Builtins.lc 480:42-480:80 Type 2644testdata/Builtins.lc 480:39-480:48 Nat -> Type->Type
2581testdata/Builtins.lc 480:44-480:45 {a} -> a -> a->Type 2645testdata/Builtins.lc 480:39-480:50 Type->Type
2582testdata/Builtins.lc 480:46-480:55 Nat -> Type->Type 2646testdata/Builtins.lc 480:39-480:56 Type
2583testdata/Builtins.lc 480:46-480:57 Type->Type 2647testdata/Builtins.lc 480:49-480:50 V3
2584testdata/Builtins.lc 480:46-480:59 Type 2648testdata/Builtins.lc 480:51-480:56 Type
2585testdata/Builtins.lc 480:56-480:57 V2 2649testdata/Builtins.lc 480:58-480:59 V3
2586testdata/Builtins.lc 480:58-480:59 Type 2650testdata/Builtins.lc 480:58-480:61 V2->Type
2587testdata/Builtins.lc 480:64-480:65 Type 2651testdata/Builtins.lc 480:58-480:78 Type
2588testdata/Builtins.lc 480:64-480:80 Type 2652testdata/Builtins.lc 480:58-480:99 Type
2589testdata/Builtins.lc 480:69-480:70 Type 2653testdata/Builtins.lc 480:60-480:61 {a} -> a -> a->Type
2590testdata/Builtins.lc 480:69-480:80 Type 2654testdata/Builtins.lc 480:62-480:71 Nat -> Type->Type
2591testdata/Builtins.lc 480:74-480:75 Type 2655testdata/Builtins.lc 480:62-480:73 Type->Type
2592testdata/Builtins.lc 480:74-480:80 Type 2656testdata/Builtins.lc 480:62-480:78 Type
2593testdata/Builtins.lc 480:79-480:80 Type 2657testdata/Builtins.lc 480:72-480:73 Nat
2594testdata/Builtins.lc 481:1-481:11 {a} -> {b} -> {c:Nat} -> {d : Num a} -> {e : b ~ VecScalar c a} -> b -> a -> a->b 2658testdata/Builtins.lc 480:74-480:78 Type
2595testdata/Builtins.lc 481:34-481:80 Type 2659testdata/Builtins.lc 480:83-480:84 Type
2596testdata/Builtins.lc 481:35-481:38 Type->Type 2660testdata/Builtins.lc 480:83-480:99 Type
2597testdata/Builtins.lc 481:35-481:40 Type 2661testdata/Builtins.lc 480:88-480:89 Type
2598testdata/Builtins.lc 481:39-481:40 V5 2662testdata/Builtins.lc 480:88-480:99 Type
2599testdata/Builtins.lc 481:42-481:43 V5 2663testdata/Builtins.lc 480:93-480:94 Type
2600testdata/Builtins.lc 481:42-481:45 V4->Type 2664testdata/Builtins.lc 480:93-480:99 Type
2601testdata/Builtins.lc 481:42-481:59 Type 2665testdata/Builtins.lc 480:98-480:99 Type
2602testdata/Builtins.lc 481:42-481:80 Type 2666testdata/Builtins.lc 481:1-481:9 {a} -> {b:Nat} -> {c : a ~ VecS Float b} -> a -> a->a
2603testdata/Builtins.lc 481:44-481:45 {a} -> a -> a->Type 2667testdata/Builtins.lc 481:34-481:53 Type
2604testdata/Builtins.lc 481:46-481:55 Nat -> Type->Type 2668testdata/Builtins.lc 481:34-481:68 Type
2605testdata/Builtins.lc 481:46-481:57 Type->Type 2669testdata/Builtins.lc 481:35-481:36 V4
2606testdata/Builtins.lc 481:46-481:59 Type 2670testdata/Builtins.lc 481:35-481:38 V3->Type
2607testdata/Builtins.lc 481:56-481:57 V2 2671testdata/Builtins.lc 481:37-481:38 {a} -> a -> a->Type
2608testdata/Builtins.lc 481:58-481:59 Type 2672testdata/Builtins.lc 481:39-481:44 Nat -> Type->Type
2609testdata/Builtins.lc 481:64-481:65 Type 2673testdata/Builtins.lc 481:39-481:46 Type->Type
2610testdata/Builtins.lc 481:64-481:80 Type 2674testdata/Builtins.lc 481:39-481:52 Type
2611testdata/Builtins.lc 481:69-481:70 Type 2675testdata/Builtins.lc 481:45-481:46 V1
2612testdata/Builtins.lc 481:69-481:80 Type 2676testdata/Builtins.lc 481:47-481:52 Type
2613testdata/Builtins.lc 481:74-481:75 Type 2677testdata/Builtins.lc 481:57-481:58 Type
2614testdata/Builtins.lc 481:74-481:80 Type 2678testdata/Builtins.lc 481:57-481:68 Type
2615testdata/Builtins.lc 481:79-481:80 Type 2679testdata/Builtins.lc 481:62-481:63 Type
2616testdata/Builtins.lc 482:1-482:8 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a -> a -> a->a 2680testdata/Builtins.lc 481:62-481:68 Type
2681testdata/Builtins.lc 481:67-481:68 Type
2682testdata/Builtins.lc 482:1-482:10 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> Float -> a->a
2617testdata/Builtins.lc 482:34-482:57 Type 2683testdata/Builtins.lc 482:34-482:57 Type
2618testdata/Builtins.lc 482:34-482:77 Type 2684testdata/Builtins.lc 482:34-482:76 Type
2619testdata/Builtins.lc 482:35-482:36 V4 2685testdata/Builtins.lc 482:35-482:36 V4
2620testdata/Builtins.lc 482:35-482:38 V3->Type 2686testdata/Builtins.lc 482:35-482:38 V3->Type
2621testdata/Builtins.lc 482:37-482:38 {a} -> a -> a->Type 2687testdata/Builtins.lc 482:37-482:38 {a} -> a -> a->Type
@@ -2624,178 +2690,160 @@ testdata/Builtins.lc 482:39-482:50 Type->Type
2624testdata/Builtins.lc 482:39-482:56 Type 2690testdata/Builtins.lc 482:39-482:56 Type
2625testdata/Builtins.lc 482:49-482:50 V1 2691testdata/Builtins.lc 482:49-482:50 V1
2626testdata/Builtins.lc 482:51-482:56 Type 2692testdata/Builtins.lc 482:51-482:56 Type
2627testdata/Builtins.lc 482:61-482:62 Type 2693testdata/Builtins.lc 482:61-482:66 Type
2628testdata/Builtins.lc 482:61-482:77 Type 2694testdata/Builtins.lc 482:61-482:76 Type
2629testdata/Builtins.lc 482:66-482:67 Type 2695testdata/Builtins.lc 482:70-482:71 Type
2630testdata/Builtins.lc 482:66-482:77 Type 2696testdata/Builtins.lc 482:70-482:76 Type
2631testdata/Builtins.lc 482:71-482:72 Type 2697testdata/Builtins.lc 482:75-482:76 Type
2632testdata/Builtins.lc 482:71-482:77 Type 2698testdata/Builtins.lc 483:1-483:15 {a} -> {b:Nat} -> {c : a ~ VecS Float b} -> a -> a -> a->a
2633testdata/Builtins.lc 482:76-482:77 Type 2699testdata/Builtins.lc 483:34-483:53 Type
2634testdata/Builtins.lc 483:1-483:9 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a -> a -> Float->a 2700testdata/Builtins.lc 483:34-483:73 Type
2635testdata/Builtins.lc 483:34-483:57 Type
2636testdata/Builtins.lc 483:34-483:81 Type
2637testdata/Builtins.lc 483:35-483:36 V4 2701testdata/Builtins.lc 483:35-483:36 V4
2638testdata/Builtins.lc 483:35-483:38 V3->Type 2702testdata/Builtins.lc 483:35-483:38 V3->Type
2639testdata/Builtins.lc 483:37-483:38 {a} -> a -> a->Type 2703testdata/Builtins.lc 483:37-483:38 {a} -> a -> a->Type
2640testdata/Builtins.lc 483:39-483:48 Nat -> Type->Type 2704testdata/Builtins.lc 483:39-483:44 Nat -> Type->Type
2641testdata/Builtins.lc 483:39-483:50 Type->Type 2705testdata/Builtins.lc 483:39-483:46 Type->Type
2642testdata/Builtins.lc 483:39-483:56 Type 2706testdata/Builtins.lc 483:39-483:52 Type
2643testdata/Builtins.lc 483:49-483:50 V1 2707testdata/Builtins.lc 483:45-483:46 V1
2644testdata/Builtins.lc 483:51-483:56 Type 2708testdata/Builtins.lc 483:47-483:52 Type
2645testdata/Builtins.lc 483:61-483:62 Type 2709testdata/Builtins.lc 483:57-483:58 Type
2646testdata/Builtins.lc 483:61-483:81 Type 2710testdata/Builtins.lc 483:57-483:73 Type
2647testdata/Builtins.lc 483:66-483:67 Type 2711testdata/Builtins.lc 483:62-483:63 Type
2648testdata/Builtins.lc 483:66-483:81 Type 2712testdata/Builtins.lc 483:62-483:73 Type
2649testdata/Builtins.lc 483:71-483:76 Type 2713testdata/Builtins.lc 483:67-483:68 Type
2650testdata/Builtins.lc 483:71-483:81 Type 2714testdata/Builtins.lc 483:67-483:73 Type
2651testdata/Builtins.lc 483:80-483:81 Type 2715testdata/Builtins.lc 483:72-483:73 Type
2652testdata/Builtins.lc 484:1-484:9 {a} -> {b:Nat} -> {c} -> {d : a ~ VecScalar b Float} -> {e : c ~ VecScalar b Bool} -> a -> a -> c->a 2716testdata/Builtins.lc 484:1-484:16 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> Float -> Float -> a->a
2653testdata/Builtins.lc 484:34-484:99 Type 2717testdata/Builtins.lc 484:34-484:57 Type
2654testdata/Builtins.lc 484:35-484:36 V6 2718testdata/Builtins.lc 484:34-484:85 Type
2655testdata/Builtins.lc 484:35-484:38 V5->Type 2719testdata/Builtins.lc 484:35-484:36 V4
2656testdata/Builtins.lc 484:35-484:56 Type 2720testdata/Builtins.lc 484:35-484:38 V3->Type
2657testdata/Builtins.lc 484:37-484:38 {a} -> a -> a->Type 2721testdata/Builtins.lc 484:37-484:38 {a} -> a -> a->Type
2658testdata/Builtins.lc 484:39-484:48 Nat -> Type->Type 2722testdata/Builtins.lc 484:39-484:48 Nat -> Type->Type
2659testdata/Builtins.lc 484:39-484:50 Type->Type 2723testdata/Builtins.lc 484:39-484:50 Type->Type
2660testdata/Builtins.lc 484:39-484:56 Type 2724testdata/Builtins.lc 484:39-484:56 Type
2661testdata/Builtins.lc 484:49-484:50 V3 2725testdata/Builtins.lc 484:49-484:50 V1
2662testdata/Builtins.lc 484:51-484:56 Type 2726testdata/Builtins.lc 484:51-484:56 Type
2663testdata/Builtins.lc 484:58-484:59 V3 2727testdata/Builtins.lc 484:61-484:66 Type
2664testdata/Builtins.lc 484:58-484:61 V2->Type 2728testdata/Builtins.lc 484:61-484:85 Type
2665testdata/Builtins.lc 484:58-484:78 Type 2729testdata/Builtins.lc 484:70-484:75 Type
2666testdata/Builtins.lc 484:58-484:99 Type 2730testdata/Builtins.lc 484:70-484:85 Type
2667testdata/Builtins.lc 484:60-484:61 {a} -> a -> a->Type 2731testdata/Builtins.lc 484:79-484:80 Type
2668testdata/Builtins.lc 484:62-484:71 Nat -> Type->Type 2732testdata/Builtins.lc 484:79-484:85 Type
2669testdata/Builtins.lc 484:62-484:73 Type->Type 2733testdata/Builtins.lc 484:84-484:85 Type
2670testdata/Builtins.lc 484:62-484:78 Type 2734testdata/Builtins.lc 487:1-487:19 {a:Nat} -> VecScalar a Float -> VecScalar a Int
2671testdata/Builtins.lc 484:72-484:73 Nat 2735testdata/Builtins.lc 487:34-487:43 Nat -> Type->Type
2672testdata/Builtins.lc 484:74-484:78 Type 2736testdata/Builtins.lc 487:34-487:45 Type->Type
2673testdata/Builtins.lc 484:83-484:84 Type 2737testdata/Builtins.lc 487:34-487:51 Type
2674testdata/Builtins.lc 484:83-484:99 Type 2738testdata/Builtins.lc 487:34-487:70 Type
2675testdata/Builtins.lc 484:88-484:89 Type 2739testdata/Builtins.lc 487:44-487:45 V1
2676testdata/Builtins.lc 484:88-484:99 Type 2740testdata/Builtins.lc 487:46-487:51 Type
2677testdata/Builtins.lc 484:93-484:94 Type 2741testdata/Builtins.lc 487:55-487:64 Nat -> Type->Type
2678testdata/Builtins.lc 484:93-484:99 Type 2742testdata/Builtins.lc 487:55-487:66 Type->Type
2679testdata/Builtins.lc 484:98-484:99 Type 2743testdata/Builtins.lc 487:55-487:70 Type
2680testdata/Builtins.lc 485:1-485:9 {a} -> {b:Nat} -> {c : a ~ VecS Float b} -> a -> a->a 2744testdata/Builtins.lc 487:65-487:66 Nat
2681testdata/Builtins.lc 485:34-485:53 Type 2745testdata/Builtins.lc 487:67-487:70 Type
2682testdata/Builtins.lc 485:34-485:68 Type 2746testdata/Builtins.lc 488:1-488:20 {a:Nat} -> VecScalar a Float -> VecScalar a Word
2683testdata/Builtins.lc 485:35-485:36 V4 2747testdata/Builtins.lc 488:34-488:43 Nat -> Type->Type
2684testdata/Builtins.lc 485:35-485:38 V3->Type 2748testdata/Builtins.lc 488:34-488:45 Type->Type
2685testdata/Builtins.lc 485:37-485:38 {a} -> a -> a->Type 2749testdata/Builtins.lc 488:34-488:51 Type
2686testdata/Builtins.lc 485:39-485:44 Nat -> Type->Type 2750testdata/Builtins.lc 488:34-488:71 Type
2687testdata/Builtins.lc 485:39-485:46 Type->Type 2751testdata/Builtins.lc 488:44-488:45 V1
2688testdata/Builtins.lc 485:39-485:52 Type 2752testdata/Builtins.lc 488:46-488:51 Type
2689testdata/Builtins.lc 485:45-485:46 V1 2753testdata/Builtins.lc 488:55-488:64 Nat -> Type->Type
2690testdata/Builtins.lc 485:47-485:52 Type 2754testdata/Builtins.lc 488:55-488:66 Type->Type
2691testdata/Builtins.lc 485:57-485:58 Type 2755testdata/Builtins.lc 488:55-488:71 Type
2692testdata/Builtins.lc 485:57-485:68 Type 2756testdata/Builtins.lc 488:65-488:66 Nat
2693testdata/Builtins.lc 485:62-485:63 Type 2757testdata/Builtins.lc 488:67-488:71 Type
2694testdata/Builtins.lc 485:62-485:68 Type 2758testdata/Builtins.lc 489:1-489:19 {a:Nat} -> VecScalar a Int -> VecScalar a Float
2695testdata/Builtins.lc 485:67-485:68 Type 2759testdata/Builtins.lc 489:34-489:43 Nat -> Type->Type
2696testdata/Builtins.lc 486:1-486:10 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> Float -> a->a 2760testdata/Builtins.lc 489:34-489:45 Type->Type
2697testdata/Builtins.lc 486:34-486:57 Type 2761testdata/Builtins.lc 489:34-489:49 Type
2698testdata/Builtins.lc 486:34-486:76 Type 2762testdata/Builtins.lc 489:34-489:72 Type
2699testdata/Builtins.lc 486:35-486:36 V4 2763testdata/Builtins.lc 489:44-489:45 V1
2700testdata/Builtins.lc 486:35-486:38 V3->Type 2764testdata/Builtins.lc 489:46-489:49 Type
2701testdata/Builtins.lc 486:37-486:38 {a} -> a -> a->Type 2765testdata/Builtins.lc 489:55-489:64 Nat -> Type->Type
2702testdata/Builtins.lc 486:39-486:48 Nat -> Type->Type 2766testdata/Builtins.lc 489:55-489:66 Type->Type
2703testdata/Builtins.lc 486:39-486:50 Type->Type 2767testdata/Builtins.lc 489:55-489:72 Type
2704testdata/Builtins.lc 486:39-486:56 Type 2768testdata/Builtins.lc 489:65-489:66 Nat
2705testdata/Builtins.lc 486:49-486:50 V1 2769testdata/Builtins.lc 489:67-489:72 Type
2706testdata/Builtins.lc 486:51-486:56 Type 2770testdata/Builtins.lc 490:1-490:20 {a:Nat} -> VecScalar a Word -> VecScalar a Float
2707testdata/Builtins.lc 486:61-486:66 Type 2771testdata/Builtins.lc 490:34-490:43 Nat -> Type->Type
2708testdata/Builtins.lc 486:61-486:76 Type 2772testdata/Builtins.lc 490:34-490:45 Type->Type
2709testdata/Builtins.lc 486:70-486:71 Type 2773testdata/Builtins.lc 490:34-490:50 Type
2710testdata/Builtins.lc 486:70-486:76 Type 2774testdata/Builtins.lc 490:34-490:72 Type
2711testdata/Builtins.lc 486:75-486:76 Type 2775testdata/Builtins.lc 490:44-490:45 V1
2712testdata/Builtins.lc 487:1-487:15 {a} -> {b:Nat} -> {c : a ~ VecS Float b} -> a -> a -> a->a 2776testdata/Builtins.lc 490:46-490:50 Type
2713testdata/Builtins.lc 487:34-487:53 Type 2777testdata/Builtins.lc 490:55-490:64 Nat -> Type->Type
2714testdata/Builtins.lc 487:34-487:73 Type 2778testdata/Builtins.lc 490:55-490:66 Type->Type
2715testdata/Builtins.lc 487:35-487:36 V4 2779testdata/Builtins.lc 490:55-490:72 Type
2716testdata/Builtins.lc 487:35-487:38 V3->Type 2780testdata/Builtins.lc 490:65-490:66 Nat
2717testdata/Builtins.lc 487:37-487:38 {a} -> a -> a->Type 2781testdata/Builtins.lc 490:67-490:72 Type
2718testdata/Builtins.lc 487:39-487:44 Nat -> Type->Type 2782testdata/Builtins.lc 492:1-492:11 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->Float
2719testdata/Builtins.lc 487:39-487:46 Type->Type 2783testdata/Builtins.lc 492:34-492:57 Type
2720testdata/Builtins.lc 487:39-487:52 Type
2721testdata/Builtins.lc 487:45-487:46 V1
2722testdata/Builtins.lc 487:47-487:52 Type
2723testdata/Builtins.lc 487:57-487:58 Type
2724testdata/Builtins.lc 487:57-487:73 Type
2725testdata/Builtins.lc 487:62-487:63 Type
2726testdata/Builtins.lc 487:62-487:73 Type
2727testdata/Builtins.lc 487:67-487:68 Type
2728testdata/Builtins.lc 487:67-487:73 Type
2729testdata/Builtins.lc 487:72-487:73 Type
2730testdata/Builtins.lc 488:1-488:16 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> Float -> Float -> a->a
2731testdata/Builtins.lc 488:34-488:57 Type
2732testdata/Builtins.lc 488:34-488:85 Type
2733testdata/Builtins.lc 488:35-488:36 V4
2734testdata/Builtins.lc 488:35-488:38 V3->Type
2735testdata/Builtins.lc 488:37-488:38 {a} -> a -> a->Type
2736testdata/Builtins.lc 488:39-488:48 Nat -> Type->Type
2737testdata/Builtins.lc 488:39-488:50 Type->Type
2738testdata/Builtins.lc 488:39-488:56 Type
2739testdata/Builtins.lc 488:49-488:50 V1
2740testdata/Builtins.lc 488:51-488:56 Type
2741testdata/Builtins.lc 488:61-488:66 Type
2742testdata/Builtins.lc 488:61-488:85 Type
2743testdata/Builtins.lc 488:70-488:75 Type
2744testdata/Builtins.lc 488:70-488:85 Type
2745testdata/Builtins.lc 488:79-488:80 Type
2746testdata/Builtins.lc 488:79-488:85 Type
2747testdata/Builtins.lc 488:84-488:85 Type
2748testdata/Builtins.lc 491:1-491:19 {a:Nat} -> VecScalar a Float -> VecScalar a Int
2749testdata/Builtins.lc 491:34-491:43 Nat -> Type->Type
2750testdata/Builtins.lc 491:34-491:45 Type->Type
2751testdata/Builtins.lc 491:34-491:51 Type
2752testdata/Builtins.lc 491:34-491:70 Type
2753testdata/Builtins.lc 491:44-491:45 V1
2754testdata/Builtins.lc 491:46-491:51 Type
2755testdata/Builtins.lc 491:55-491:64 Nat -> Type->Type
2756testdata/Builtins.lc 491:55-491:66 Type->Type
2757testdata/Builtins.lc 491:55-491:70 Type
2758testdata/Builtins.lc 491:65-491:66 Nat
2759testdata/Builtins.lc 491:67-491:70 Type
2760testdata/Builtins.lc 492:1-492:20 {a:Nat} -> VecScalar a Float -> VecScalar a Word
2761testdata/Builtins.lc 492:34-492:43 Nat -> Type->Type
2762testdata/Builtins.lc 492:34-492:45 Type->Type
2763testdata/Builtins.lc 492:34-492:51 Type
2764testdata/Builtins.lc 492:34-492:71 Type 2784testdata/Builtins.lc 492:34-492:71 Type
2765testdata/Builtins.lc 492:44-492:45 V1 2785testdata/Builtins.lc 492:35-492:36 V4
2766testdata/Builtins.lc 492:46-492:51 Type 2786testdata/Builtins.lc 492:35-492:38 V3->Type
2767testdata/Builtins.lc 492:55-492:64 Nat -> Type->Type 2787testdata/Builtins.lc 492:37-492:38 {a} -> a -> a->Type
2768testdata/Builtins.lc 492:55-492:66 Type->Type 2788testdata/Builtins.lc 492:39-492:48 Nat -> Type->Type
2769testdata/Builtins.lc 492:55-492:71 Type 2789testdata/Builtins.lc 492:39-492:50 Type->Type
2770testdata/Builtins.lc 492:65-492:66 Nat 2790testdata/Builtins.lc 492:39-492:56 Type
2771testdata/Builtins.lc 492:67-492:71 Type 2791testdata/Builtins.lc 492:49-492:50 V1
2772testdata/Builtins.lc 493:1-493:19 {a:Nat} -> VecScalar a Int -> VecScalar a Float 2792testdata/Builtins.lc 492:51-492:56 Type
2773testdata/Builtins.lc 493:34-493:43 Nat -> Type->Type 2793testdata/Builtins.lc 492:61-492:62 Type
2774testdata/Builtins.lc 493:34-493:45 Type->Type 2794testdata/Builtins.lc 492:61-492:71 Type
2775testdata/Builtins.lc 493:34-493:49 Type 2795testdata/Builtins.lc 492:66-492:71 Type
2776testdata/Builtins.lc 493:34-493:72 Type 2796testdata/Builtins.lc 493:1-493:13 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a -> a->Float
2777testdata/Builtins.lc 493:44-493:45 V1 2797testdata/Builtins.lc 493:15-493:22 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a -> a->Float
2778testdata/Builtins.lc 493:46-493:49 Type 2798testdata/Builtins.lc 493:34-493:57 Type
2779testdata/Builtins.lc 493:55-493:64 Nat -> Type->Type 2799testdata/Builtins.lc 493:34-493:76 Type
2780testdata/Builtins.lc 493:55-493:66 Type->Type 2800testdata/Builtins.lc 493:35-493:36 V4
2781testdata/Builtins.lc 493:55-493:72 Type 2801testdata/Builtins.lc 493:35-493:38 V3->Type
2782testdata/Builtins.lc 493:65-493:66 Nat 2802testdata/Builtins.lc 493:37-493:38 {a} -> a -> a->Type
2783testdata/Builtins.lc 493:67-493:72 Type 2803testdata/Builtins.lc 493:39-493:48 Nat -> Type->Type
2784testdata/Builtins.lc 494:1-494:20 {a:Nat} -> VecScalar a Word -> VecScalar a Float 2804testdata/Builtins.lc 493:39-493:50 Type->Type
2785testdata/Builtins.lc 494:34-494:43 Nat -> Type->Type 2805testdata/Builtins.lc 493:39-493:56 Type
2786testdata/Builtins.lc 494:34-494:45 Type->Type 2806testdata/Builtins.lc 493:49-493:50 V1
2787testdata/Builtins.lc 494:34-494:50 Type 2807testdata/Builtins.lc 493:51-493:56 Type
2808testdata/Builtins.lc 493:61-493:62 Type
2809testdata/Builtins.lc 493:61-493:76 Type
2810testdata/Builtins.lc 493:66-493:67 Type
2811testdata/Builtins.lc 493:66-493:76 Type
2812testdata/Builtins.lc 493:71-493:76 Type
2813testdata/Builtins.lc 494:1-494:10 {a} -> {b : a ~ VecS Float 3} -> a -> a->a
2814testdata/Builtins.lc 494:34-494:57 Type
2788testdata/Builtins.lc 494:34-494:72 Type 2815testdata/Builtins.lc 494:34-494:72 Type
2789testdata/Builtins.lc 494:44-494:45 V1 2816testdata/Builtins.lc 494:35-494:36 V2
2790testdata/Builtins.lc 494:46-494:50 Type 2817testdata/Builtins.lc 494:35-494:38 V1->Type
2791testdata/Builtins.lc 494:55-494:64 Nat -> Type->Type 2818testdata/Builtins.lc 494:37-494:38 {a} -> a -> a->Type
2792testdata/Builtins.lc 494:55-494:66 Type->Type 2819testdata/Builtins.lc 494:39-494:48 Nat -> Type->Type
2793testdata/Builtins.lc 494:55-494:72 Type 2820testdata/Builtins.lc 494:39-494:50 Type->Type
2794testdata/Builtins.lc 494:65-494:66 Nat 2821testdata/Builtins.lc 494:39-494:56 Type
2795testdata/Builtins.lc 494:67-494:72 Type 2822testdata/Builtins.lc 494:49-494:50 V1
2796testdata/Builtins.lc 496:1-496:11 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->Float 2823testdata/Builtins.lc 494:51-494:56 Type
2824testdata/Builtins.lc 494:61-494:62 Type
2825testdata/Builtins.lc 494:61-494:72 Type
2826testdata/Builtins.lc 494:66-494:67 Type
2827testdata/Builtins.lc 494:66-494:72 Type
2828testdata/Builtins.lc 494:71-494:72 Type
2829testdata/Builtins.lc 495:1-495:14 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a
2830testdata/Builtins.lc 495:34-495:57 Type
2831testdata/Builtins.lc 495:34-495:67 Type
2832testdata/Builtins.lc 495:35-495:36 V4
2833testdata/Builtins.lc 495:35-495:38 V3->Type
2834testdata/Builtins.lc 495:37-495:38 {a} -> a -> a->Type
2835testdata/Builtins.lc 495:39-495:48 Nat -> Type->Type
2836testdata/Builtins.lc 495:39-495:50 Type->Type
2837testdata/Builtins.lc 495:39-495:56 Type
2838testdata/Builtins.lc 495:49-495:50 V1
2839testdata/Builtins.lc 495:51-495:56 Type
2840testdata/Builtins.lc 495:61-495:62 Type
2841testdata/Builtins.lc 495:61-495:67 Type
2842testdata/Builtins.lc 495:66-495:67 Type
2843testdata/Builtins.lc 496:1-496:16 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a -> a -> a->a
2844testdata/Builtins.lc 496:18-496:29 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a -> a -> a->a
2797testdata/Builtins.lc 496:34-496:57 Type 2845testdata/Builtins.lc 496:34-496:57 Type
2798testdata/Builtins.lc 496:34-496:71 Type 2846testdata/Builtins.lc 496:34-496:77 Type
2799testdata/Builtins.lc 496:35-496:36 V4 2847testdata/Builtins.lc 496:35-496:36 V4
2800testdata/Builtins.lc 496:35-496:38 V3->Type 2848testdata/Builtins.lc 496:35-496:38 V3->Type
2801testdata/Builtins.lc 496:37-496:38 {a} -> a -> a->Type 2849testdata/Builtins.lc 496:37-496:38 {a} -> a -> a->Type
@@ -2805,12 +2853,15 @@ testdata/Builtins.lc 496:39-496:56 Type
2805testdata/Builtins.lc 496:49-496:50 V1 2853testdata/Builtins.lc 496:49-496:50 V1
2806testdata/Builtins.lc 496:51-496:56 Type 2854testdata/Builtins.lc 496:51-496:56 Type
2807testdata/Builtins.lc 496:61-496:62 Type 2855testdata/Builtins.lc 496:61-496:62 Type
2808testdata/Builtins.lc 496:61-496:71 Type 2856testdata/Builtins.lc 496:61-496:77 Type
2809testdata/Builtins.lc 496:66-496:71 Type 2857testdata/Builtins.lc 496:66-496:67 Type
2810testdata/Builtins.lc 497:1-497:13 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a -> a->Float 2858testdata/Builtins.lc 496:66-496:77 Type
2811testdata/Builtins.lc 497:15-497:22 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a -> a->Float 2859testdata/Builtins.lc 496:71-496:72 Type
2860testdata/Builtins.lc 496:71-496:77 Type
2861testdata/Builtins.lc 496:76-496:77 Type
2862testdata/Builtins.lc 497:1-497:12 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a -> a->a
2812testdata/Builtins.lc 497:34-497:57 Type 2863testdata/Builtins.lc 497:34-497:57 Type
2813testdata/Builtins.lc 497:34-497:76 Type 2864testdata/Builtins.lc 497:34-497:72 Type
2814testdata/Builtins.lc 497:35-497:36 V4 2865testdata/Builtins.lc 497:35-497:36 V4
2815testdata/Builtins.lc 497:35-497:38 V3->Type 2866testdata/Builtins.lc 497:35-497:38 V3->Type
2816testdata/Builtins.lc 497:37-497:38 {a} -> a -> a->Type 2867testdata/Builtins.lc 497:37-497:38 {a} -> a -> a->Type
@@ -2820,387 +2871,322 @@ testdata/Builtins.lc 497:39-497:56 Type
2820testdata/Builtins.lc 497:49-497:50 V1 2871testdata/Builtins.lc 497:49-497:50 V1
2821testdata/Builtins.lc 497:51-497:56 Type 2872testdata/Builtins.lc 497:51-497:56 Type
2822testdata/Builtins.lc 497:61-497:62 Type 2873testdata/Builtins.lc 497:61-497:62 Type
2823testdata/Builtins.lc 497:61-497:76 Type 2874testdata/Builtins.lc 497:61-497:72 Type
2824testdata/Builtins.lc 497:66-497:67 Type 2875testdata/Builtins.lc 497:66-497:67 Type
2825testdata/Builtins.lc 497:66-497:76 Type 2876testdata/Builtins.lc 497:66-497:72 Type
2826testdata/Builtins.lc 497:71-497:76 Type 2877testdata/Builtins.lc 497:71-497:72 Type
2827testdata/Builtins.lc 498:1-498:10 {a} -> {b : a ~ VecS Float 3} -> a -> a->a 2878testdata/Builtins.lc 499:1-499:14 {a:Nat} -> {b:Nat} -> {c} -> Mat a b c -> Mat b a c
2828testdata/Builtins.lc 498:34-498:57 Type 2879testdata/Builtins.lc 499:34-499:37 Nat -> Nat -> Type->Type
2829testdata/Builtins.lc 498:34-498:72 Type 2880testdata/Builtins.lc 499:34-499:39 Nat -> Type->Type
2830testdata/Builtins.lc 498:35-498:36 V2 2881testdata/Builtins.lc 499:34-499:41 Type->Type
2831testdata/Builtins.lc 498:35-498:38 V1->Type 2882testdata/Builtins.lc 499:34-499:43 Type
2832testdata/Builtins.lc 498:37-498:38 {a} -> a -> a->Type 2883testdata/Builtins.lc 499:34-499:56 Type
2833testdata/Builtins.lc 498:39-498:48 Nat -> Type->Type 2884testdata/Builtins.lc 499:38-499:39 V5
2834testdata/Builtins.lc 498:39-498:50 Type->Type 2885testdata/Builtins.lc 499:40-499:41 V3
2835testdata/Builtins.lc 498:39-498:56 Type 2886testdata/Builtins.lc 499:42-499:43 V1
2836testdata/Builtins.lc 498:49-498:50 V1 2887testdata/Builtins.lc 499:47-499:50 Nat -> Nat -> Type->Type
2837testdata/Builtins.lc 498:51-498:56 Type 2888testdata/Builtins.lc 499:47-499:52 Nat -> Type->Type
2838testdata/Builtins.lc 498:61-498:62 Type 2889testdata/Builtins.lc 499:47-499:54 Type->Type
2839testdata/Builtins.lc 498:61-498:72 Type 2890testdata/Builtins.lc 499:47-499:56 Type
2840testdata/Builtins.lc 498:66-498:67 Type 2891testdata/Builtins.lc 499:51-499:52 Nat
2841testdata/Builtins.lc 498:66-498:72 Type 2892testdata/Builtins.lc 499:53-499:54 Nat
2842testdata/Builtins.lc 498:71-498:72 Type 2893testdata/Builtins.lc 499:55-499:56 Type
2843testdata/Builtins.lc 499:1-499:14 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a 2894testdata/Builtins.lc 500:1-500:16 {a:Nat} -> {b} -> Mat a a b -> Float
2844testdata/Builtins.lc 499:34-499:57 Type 2895testdata/Builtins.lc 500:34-500:37 Nat -> Nat -> Type->Type
2845testdata/Builtins.lc 499:34-499:67 Type 2896testdata/Builtins.lc 500:34-500:39 Nat -> Type->Type
2846testdata/Builtins.lc 499:35-499:36 V4 2897testdata/Builtins.lc 500:34-500:41 Type->Type
2847testdata/Builtins.lc 499:35-499:38 V3->Type 2898testdata/Builtins.lc 500:34-500:43 Type
2848testdata/Builtins.lc 499:37-499:38 {a} -> a -> a->Type 2899testdata/Builtins.lc 500:34-500:52 Type
2849testdata/Builtins.lc 499:39-499:48 Nat -> Type->Type 2900testdata/Builtins.lc 500:38-500:39 V3
2850testdata/Builtins.lc 499:39-499:50 Type->Type 2901testdata/Builtins.lc 500:40-500:41 Nat
2851testdata/Builtins.lc 499:39-499:56 Type 2902testdata/Builtins.lc 500:42-500:43 V1
2852testdata/Builtins.lc 499:49-499:50 V1 2903testdata/Builtins.lc 500:47-500:52 Type
2853testdata/Builtins.lc 499:51-499:56 Type 2904testdata/Builtins.lc 501:1-501:12 {a:Nat} -> {b} -> Mat a a b -> Mat a a b
2854testdata/Builtins.lc 499:61-499:62 Type 2905testdata/Builtins.lc 501:34-501:37 Nat -> Nat -> Type->Type
2855testdata/Builtins.lc 499:61-499:67 Type 2906testdata/Builtins.lc 501:34-501:39 Nat -> Type->Type
2856testdata/Builtins.lc 499:66-499:67 Type 2907testdata/Builtins.lc 501:34-501:41 Type->Type
2857testdata/Builtins.lc 500:1-500:16 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a -> a -> a->a 2908testdata/Builtins.lc 501:34-501:43 Type
2858testdata/Builtins.lc 500:18-500:29 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a -> a -> a->a 2909testdata/Builtins.lc 501:34-501:56 Type
2859testdata/Builtins.lc 500:34-500:57 Type 2910testdata/Builtins.lc 501:38-501:39 V3
2860testdata/Builtins.lc 500:34-500:77 Type 2911testdata/Builtins.lc 501:40-501:41 Nat
2861testdata/Builtins.lc 500:35-500:36 V4 2912testdata/Builtins.lc 501:42-501:43 V1
2862testdata/Builtins.lc 500:35-500:38 V3->Type 2913testdata/Builtins.lc 501:47-501:50 Nat -> Nat -> Type->Type
2863testdata/Builtins.lc 500:37-500:38 {a} -> a -> a->Type 2914testdata/Builtins.lc 501:47-501:52 Nat -> Type->Type
2864testdata/Builtins.lc 500:39-500:48 Nat -> Type->Type 2915testdata/Builtins.lc 501:47-501:54 Type->Type
2865testdata/Builtins.lc 500:39-500:50 Type->Type 2916testdata/Builtins.lc 501:47-501:56 Type
2866testdata/Builtins.lc 500:39-500:56 Type 2917testdata/Builtins.lc 501:51-501:52 Nat
2867testdata/Builtins.lc 500:49-500:50 V1 2918testdata/Builtins.lc 501:53-501:54 Nat
2868testdata/Builtins.lc 500:51-500:56 Type 2919testdata/Builtins.lc 501:55-501:56 Type
2869testdata/Builtins.lc 500:61-500:62 Type 2920testdata/Builtins.lc 502:1-502:17 {a:Nat} -> {b} -> {c:Nat} -> Vec a b -> Vec c b -> Mat c a b
2870testdata/Builtins.lc 500:61-500:77 Type 2921testdata/Builtins.lc 502:34-502:37 Nat -> Type->Type
2871testdata/Builtins.lc 500:66-500:67 Type 2922testdata/Builtins.lc 502:34-502:39 Type->Type
2872testdata/Builtins.lc 500:66-500:77 Type 2923testdata/Builtins.lc 502:34-502:41 Type
2873testdata/Builtins.lc 500:71-500:72 Type 2924testdata/Builtins.lc 502:34-502:69 Type
2874testdata/Builtins.lc 500:71-500:77 Type 2925testdata/Builtins.lc 502:38-502:39 V5
2875testdata/Builtins.lc 500:76-500:77 Type 2926testdata/Builtins.lc 502:40-502:41 V3
2876testdata/Builtins.lc 501:1-501:12 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a -> a->a 2927testdata/Builtins.lc 502:47-502:50 Nat -> Type->Type
2877testdata/Builtins.lc 501:34-501:57 Type 2928testdata/Builtins.lc 502:47-502:52 Type->Type
2878testdata/Builtins.lc 501:34-501:72 Type 2929testdata/Builtins.lc 502:47-502:54 Type
2879testdata/Builtins.lc 501:35-501:36 V4 2930testdata/Builtins.lc 502:47-502:69 Type
2880testdata/Builtins.lc 501:35-501:38 V3->Type 2931testdata/Builtins.lc 502:51-502:52 V2
2881testdata/Builtins.lc 501:37-501:38 {a} -> a -> a->Type 2932testdata/Builtins.lc 502:53-502:54 Type
2882testdata/Builtins.lc 501:39-501:48 Nat -> Type->Type 2933testdata/Builtins.lc 502:60-502:63 Nat -> Nat -> Type->Type
2883testdata/Builtins.lc 501:39-501:50 Type->Type 2934testdata/Builtins.lc 502:60-502:65 Nat -> Type->Type
2884testdata/Builtins.lc 501:39-501:56 Type 2935testdata/Builtins.lc 502:60-502:67 Type->Type
2885testdata/Builtins.lc 501:49-501:50 V1 2936testdata/Builtins.lc 502:60-502:69 Type
2886testdata/Builtins.lc 501:51-501:56 Type 2937testdata/Builtins.lc 502:64-502:65 Nat
2887testdata/Builtins.lc 501:61-501:62 Type 2938testdata/Builtins.lc 502:66-502:67 Nat
2888testdata/Builtins.lc 501:61-501:72 Type 2939testdata/Builtins.lc 502:68-502:69 Type
2889testdata/Builtins.lc 501:66-501:67 Type 2940testdata/Builtins.lc 503:1-503:14 {a:Nat} -> {b:Nat} -> {c} -> Mat a b c -> Vec b c -> Vec a c
2890testdata/Builtins.lc 501:66-501:72 Type
2891testdata/Builtins.lc 501:71-501:72 Type
2892testdata/Builtins.lc 503:1-503:14 {a:Nat} -> {b:Nat} -> {c} -> Mat a b c -> Mat b a c
2893testdata/Builtins.lc 503:34-503:37 Nat -> Nat -> Type->Type 2941testdata/Builtins.lc 503:34-503:37 Nat -> Nat -> Type->Type
2894testdata/Builtins.lc 503:34-503:39 Nat -> Type->Type 2942testdata/Builtins.lc 503:34-503:39 Nat -> Type->Type
2895testdata/Builtins.lc 503:34-503:41 Type->Type 2943testdata/Builtins.lc 503:34-503:41 Type->Type
2896testdata/Builtins.lc 503:34-503:43 Type 2944testdata/Builtins.lc 503:34-503:43 Type
2897testdata/Builtins.lc 503:34-503:56 Type 2945testdata/Builtins.lc 503:34-503:67 Type
2898testdata/Builtins.lc 503:38-503:39 V5 2946testdata/Builtins.lc 503:38-503:39 V5
2899testdata/Builtins.lc 503:40-503:41 V3 2947testdata/Builtins.lc 503:40-503:41 V3
2900testdata/Builtins.lc 503:42-503:43 V1 2948testdata/Builtins.lc 503:42-503:43 V1
2901testdata/Builtins.lc 503:47-503:50 Nat -> Nat -> Type->Type 2949testdata/Builtins.lc 503:47-503:50 Nat -> Type->Type
2902testdata/Builtins.lc 503:47-503:52 Nat -> Type->Type 2950testdata/Builtins.lc 503:47-503:52 Type->Type
2903testdata/Builtins.lc 503:47-503:54 Type->Type 2951testdata/Builtins.lc 503:47-503:54 Type
2904testdata/Builtins.lc 503:47-503:56 Type 2952testdata/Builtins.lc 503:47-503:67 Type
2905testdata/Builtins.lc 503:51-503:52 Nat 2953testdata/Builtins.lc 503:51-503:52 Nat
2906testdata/Builtins.lc 503:53-503:54 Nat 2954testdata/Builtins.lc 503:53-503:54 Type
2907testdata/Builtins.lc 503:55-503:56 Type 2955testdata/Builtins.lc 503:60-503:63 Nat -> Type->Type
2908testdata/Builtins.lc 504:1-504:16 {a:Nat} -> {b} -> Mat a a b -> Float 2956testdata/Builtins.lc 503:60-503:65 Type->Type
2909testdata/Builtins.lc 504:34-504:37 Nat -> Nat -> Type->Type 2957testdata/Builtins.lc 503:60-503:67 Type
2910testdata/Builtins.lc 504:34-504:39 Nat -> Type->Type 2958testdata/Builtins.lc 503:64-503:65 Nat
2911testdata/Builtins.lc 504:34-504:41 Type->Type 2959testdata/Builtins.lc 503:66-503:67 Type
2912testdata/Builtins.lc 504:34-504:43 Type 2960testdata/Builtins.lc 504:1-504:14 {a:Nat} -> {b} -> {c:Nat} -> Vec a b -> Mat a c b -> Vec c b
2913testdata/Builtins.lc 504:34-504:52 Type 2961testdata/Builtins.lc 504:34-504:37 Nat -> Type->Type
2914testdata/Builtins.lc 504:38-504:39 V3 2962testdata/Builtins.lc 504:34-504:39 Type->Type
2915testdata/Builtins.lc 504:40-504:41 Nat 2963testdata/Builtins.lc 504:34-504:41 Type
2916testdata/Builtins.lc 504:42-504:43 V1 2964testdata/Builtins.lc 504:34-504:67 Type
2917testdata/Builtins.lc 504:47-504:52 Type 2965testdata/Builtins.lc 504:38-504:39 V5
2918testdata/Builtins.lc 505:1-505:12 {a:Nat} -> {b} -> Mat a a b -> Mat a a b 2966testdata/Builtins.lc 504:40-504:41 V3
2967testdata/Builtins.lc 504:47-504:50 Nat -> Nat -> Type->Type
2968testdata/Builtins.lc 504:47-504:52 Nat -> Type->Type
2969testdata/Builtins.lc 504:47-504:54 Type->Type
2970testdata/Builtins.lc 504:47-504:56 Type
2971testdata/Builtins.lc 504:47-504:67 Type
2972testdata/Builtins.lc 504:51-504:52 Nat
2973testdata/Builtins.lc 504:53-504:54 V2
2974testdata/Builtins.lc 504:55-504:56 Type
2975testdata/Builtins.lc 504:60-504:63 Nat -> Type->Type
2976testdata/Builtins.lc 504:60-504:65 Type->Type
2977testdata/Builtins.lc 504:60-504:67 Type
2978testdata/Builtins.lc 504:64-504:65 Nat
2979testdata/Builtins.lc 504:66-504:67 Type
2980testdata/Builtins.lc 505:1-505:14 {a:Nat} -> {b:Nat} -> {c} -> {d:Nat} -> Mat a b c -> Mat b d c -> Mat a d c
2919testdata/Builtins.lc 505:34-505:37 Nat -> Nat -> Type->Type 2981testdata/Builtins.lc 505:34-505:37 Nat -> Nat -> Type->Type
2920testdata/Builtins.lc 505:34-505:39 Nat -> Type->Type 2982testdata/Builtins.lc 505:34-505:39 Nat -> Type->Type
2921testdata/Builtins.lc 505:34-505:41 Type->Type 2983testdata/Builtins.lc 505:34-505:41 Type->Type
2922testdata/Builtins.lc 505:34-505:43 Type 2984testdata/Builtins.lc 505:34-505:43 Type
2923testdata/Builtins.lc 505:34-505:56 Type 2985testdata/Builtins.lc 505:34-505:69 Type
2924testdata/Builtins.lc 505:38-505:39 V3 2986testdata/Builtins.lc 505:38-505:39 V7
2925testdata/Builtins.lc 505:40-505:41 Nat 2987testdata/Builtins.lc 505:40-505:41 V5
2926testdata/Builtins.lc 505:42-505:43 V1 2988testdata/Builtins.lc 505:42-505:43 V3
2927testdata/Builtins.lc 505:47-505:50 Nat -> Nat -> Type->Type 2989testdata/Builtins.lc 505:47-505:50 Nat -> Nat -> Type->Type
2928testdata/Builtins.lc 505:47-505:52 Nat -> Type->Type 2990testdata/Builtins.lc 505:47-505:52 Nat -> Type->Type
2929testdata/Builtins.lc 505:47-505:54 Type->Type 2991testdata/Builtins.lc 505:47-505:54 Type->Type
2930testdata/Builtins.lc 505:47-505:56 Type 2992testdata/Builtins.lc 505:47-505:56 Type
2993testdata/Builtins.lc 505:47-505:69 Type
2931testdata/Builtins.lc 505:51-505:52 Nat 2994testdata/Builtins.lc 505:51-505:52 Nat
2932testdata/Builtins.lc 505:53-505:54 Nat 2995testdata/Builtins.lc 505:53-505:54 V2
2933testdata/Builtins.lc 505:55-505:56 Type 2996testdata/Builtins.lc 505:55-505:56 Type
2934testdata/Builtins.lc 506:1-506:17 {a:Nat} -> {b} -> {c:Nat} -> Vec a b -> Vec c b -> Mat c a b 2997testdata/Builtins.lc 505:60-505:63 Nat -> Nat -> Type->Type
2935testdata/Builtins.lc 506:34-506:37 Nat -> Type->Type 2998testdata/Builtins.lc 505:60-505:65 Nat -> Type->Type
2936testdata/Builtins.lc 506:34-506:39 Type->Type 2999testdata/Builtins.lc 505:60-505:67 Type->Type
2937testdata/Builtins.lc 506:34-506:41 Type 3000testdata/Builtins.lc 505:60-505:69 Type
2938testdata/Builtins.lc 506:34-506:69 Type 3001testdata/Builtins.lc 505:64-505:65 Nat
2939testdata/Builtins.lc 506:38-506:39 V5 3002testdata/Builtins.lc 505:66-505:67 Nat
2940testdata/Builtins.lc 506:40-506:41 V3 3003testdata/Builtins.lc 505:68-505:69 Type
2941testdata/Builtins.lc 506:47-506:50 Nat -> Type->Type 3004testdata/Builtins.lc 507:1-507:13 {a} -> {b:Nat} -> {c} -> {d} -> {e : Num c} -> {f : a ~ VecScalar b c} -> {g : d ~ VecScalar b Bool} -> a -> a->d
2942testdata/Builtins.lc 506:47-506:52 Type->Type 3005testdata/Builtins.lc 507:15-507:32 {a} -> {b:Nat} -> {c} -> {d} -> {e : Num c} -> {f : a ~ VecScalar b c} -> {g : d ~ VecScalar b Bool} -> a -> a->d
2943testdata/Builtins.lc 506:47-506:54 Type 3006testdata/Builtins.lc 507:34-507:49 {a} -> {b:Nat} -> {c} -> {d} -> {e : Num c} -> {f : a ~ VecScalar b c} -> {g : d ~ VecScalar b Bool} -> a -> a->d
2944testdata/Builtins.lc 506:47-506:69 Type 3007testdata/Builtins.lc 507:51-507:71 {a} -> {b:Nat} -> {c} -> {d} -> {e : Num c} -> {f : a ~ VecScalar b c} -> {g : d ~ VecScalar b Bool} -> a -> a->d
2945testdata/Builtins.lc 506:51-506:52 V2 3008testdata/Builtins.lc 507:73-507:83 {a} -> {b:Nat} -> {c} -> {d} -> {e : Num c} -> {f : a ~ VecScalar b c} -> {g : d ~ VecScalar b Bool} -> a -> a->d
2946testdata/Builtins.lc 506:53-506:54 Type 3009testdata/Builtins.lc 507:85-507:98 {a} -> {b:Nat} -> {c} -> {d} -> {e : Num c} -> {f : a ~ VecScalar b c} -> {g : d ~ VecScalar b Bool} -> a -> a->d
2947testdata/Builtins.lc 506:60-506:63 Nat -> Nat -> Type->Type 3010testdata/Builtins.lc 508:51-508:114 Type
2948testdata/Builtins.lc 506:60-506:65 Nat -> Type->Type 3011testdata/Builtins.lc 508:52-508:55 Type->Type
2949testdata/Builtins.lc 506:60-506:67 Type->Type 3012testdata/Builtins.lc 508:52-508:57 Type
2950testdata/Builtins.lc 506:60-506:69 Type 3013testdata/Builtins.lc 508:56-508:57 V3
2951testdata/Builtins.lc 506:64-506:65 Nat 3014testdata/Builtins.lc 508:59-508:60 V8
2952testdata/Builtins.lc 506:66-506:67 Nat 3015testdata/Builtins.lc 508:59-508:62 V7->Type
2953testdata/Builtins.lc 506:68-506:69 Type 3016testdata/Builtins.lc 508:59-508:76 Type
2954testdata/Builtins.lc 507:1-507:14 {a:Nat} -> {b:Nat} -> {c} -> Mat a b c -> Vec b c -> Vec a c 3017testdata/Builtins.lc 508:59-508:114 Type
2955testdata/Builtins.lc 507:34-507:37 Nat -> Nat -> Type->Type 3018testdata/Builtins.lc 508:61-508:62 {a} -> a -> a->Type
2956testdata/Builtins.lc 507:34-507:39 Nat -> Type->Type 3019testdata/Builtins.lc 508:63-508:72 Nat -> Type->Type
2957testdata/Builtins.lc 507:34-507:41 Type->Type 3020testdata/Builtins.lc 508:63-508:74 Type->Type
2958testdata/Builtins.lc 507:34-507:43 Type 3021testdata/Builtins.lc 508:63-508:76 Type
2959testdata/Builtins.lc 507:34-507:67 Type 3022testdata/Builtins.lc 508:73-508:74 V5
2960testdata/Builtins.lc 507:38-507:39 V5 3023testdata/Builtins.lc 508:75-508:76 Type
2961testdata/Builtins.lc 507:40-507:41 V3 3024testdata/Builtins.lc 508:78-508:79 V4
2962testdata/Builtins.lc 507:42-507:43 V1 3025testdata/Builtins.lc 508:78-508:81 V3->Type
2963testdata/Builtins.lc 507:47-507:50 Nat -> Type->Type 3026testdata/Builtins.lc 508:78-508:98 Type
2964testdata/Builtins.lc 507:47-507:52 Type->Type 3027testdata/Builtins.lc 508:78-508:114 Type
2965testdata/Builtins.lc 507:47-507:54 Type 3028testdata/Builtins.lc 508:80-508:81 {a} -> a -> a->Type
2966testdata/Builtins.lc 507:47-507:67 Type 3029testdata/Builtins.lc 508:82-508:91 Nat -> Type->Type
2967testdata/Builtins.lc 507:51-507:52 Nat 3030testdata/Builtins.lc 508:82-508:93 Type->Type
2968testdata/Builtins.lc 507:53-507:54 Type 3031testdata/Builtins.lc 508:82-508:98 Type
2969testdata/Builtins.lc 507:60-507:63 Nat -> Type->Type 3032testdata/Builtins.lc 508:92-508:93 Nat
2970testdata/Builtins.lc 507:60-507:65 Type->Type 3033testdata/Builtins.lc 508:94-508:98 Type
2971testdata/Builtins.lc 507:60-507:67 Type 3034testdata/Builtins.lc 508:103-508:104 Type
2972testdata/Builtins.lc 507:64-507:65 Nat 3035testdata/Builtins.lc 508:103-508:114 Type
2973testdata/Builtins.lc 507:66-507:67 Type 3036testdata/Builtins.lc 508:108-508:109 Type
2974testdata/Builtins.lc 508:1-508:14 {a:Nat} -> {b} -> {c:Nat} -> Vec a b -> Mat a c b -> Vec c b 3037testdata/Builtins.lc 508:108-508:114 Type
2975testdata/Builtins.lc 508:34-508:37 Nat -> Type->Type 3038testdata/Builtins.lc 508:113-508:114 Type
2976testdata/Builtins.lc 508:34-508:39 Type->Type 3039testdata/Builtins.lc 509:1-509:10 {a} -> {b} -> {c : b ~ MatVecScalarElem a} -> a -> a->Bool
2977testdata/Builtins.lc 508:34-508:41 Type 3040testdata/Builtins.lc 509:12-509:24 {a} -> {b} -> {c : b ~ MatVecScalarElem a} -> a -> a->Bool
2978testdata/Builtins.lc 508:34-508:67 Type 3041testdata/Builtins.lc 509:47-509:71 Type
2979testdata/Builtins.lc 508:38-508:39 V5 3042testdata/Builtins.lc 509:47-509:89 Type
2980testdata/Builtins.lc 508:40-508:41 V3 3043testdata/Builtins.lc 509:48-509:49 V2
2981testdata/Builtins.lc 508:47-508:50 Nat -> Nat -> Type->Type 3044testdata/Builtins.lc 509:48-509:51 V1->Type
2982testdata/Builtins.lc 508:47-508:52 Nat -> Type->Type 3045testdata/Builtins.lc 509:50-509:51 {a} -> a -> a->Type
2983testdata/Builtins.lc 508:47-508:54 Type->Type 3046testdata/Builtins.lc 509:52-509:68 Type->Type
2984testdata/Builtins.lc 508:47-508:56 Type 3047testdata/Builtins.lc 509:52-509:70 Type
2985testdata/Builtins.lc 508:47-508:67 Type 3048testdata/Builtins.lc 509:69-509:70 V2
2986testdata/Builtins.lc 508:51-508:52 Nat 3049testdata/Builtins.lc 509:75-509:76 Type
2987testdata/Builtins.lc 508:53-508:54 V2 3050testdata/Builtins.lc 509:75-509:89 Type
2988testdata/Builtins.lc 508:55-508:56 Type 3051testdata/Builtins.lc 509:80-509:81 Type
2989testdata/Builtins.lc 508:60-508:63 Nat -> Type->Type 3052testdata/Builtins.lc 509:80-509:89 Type
2990testdata/Builtins.lc 508:60-508:65 Type->Type 3053testdata/Builtins.lc 509:85-509:89 Type
2991testdata/Builtins.lc 508:60-508:67 Type 3054testdata/Builtins.lc 511:1-511:9 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a
2992testdata/Builtins.lc 508:64-508:65 Nat 3055testdata/Builtins.lc 511:11-511:19 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a
2993testdata/Builtins.lc 508:66-508:67 Type 3056testdata/Builtins.lc 511:21-511:31 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a
2994testdata/Builtins.lc 509:1-509:14 {a:Nat} -> {b:Nat} -> {c} -> {d:Nat} -> Mat a b c -> Mat b d c -> Mat a d c 3057testdata/Builtins.lc 512:34-512:57 Type
2995testdata/Builtins.lc 509:34-509:37 Nat -> Nat -> Type->Type 3058testdata/Builtins.lc 512:34-512:67 Type
2996testdata/Builtins.lc 509:34-509:39 Nat -> Type->Type 3059testdata/Builtins.lc 512:35-512:36 V4
2997testdata/Builtins.lc 509:34-509:41 Type->Type 3060testdata/Builtins.lc 512:35-512:38 V3->Type
2998testdata/Builtins.lc 509:34-509:43 Type 3061testdata/Builtins.lc 512:37-512:38 {a} -> a -> a->Type
2999testdata/Builtins.lc 509:34-509:69 Type 3062testdata/Builtins.lc 512:39-512:48 Nat -> Type->Type
3000testdata/Builtins.lc 509:38-509:39 V7 3063testdata/Builtins.lc 512:39-512:50 Type->Type
3001testdata/Builtins.lc 509:40-509:41 V5 3064testdata/Builtins.lc 512:39-512:56 Type
3002testdata/Builtins.lc 509:42-509:43 V3 3065testdata/Builtins.lc 512:49-512:50 V1
3003testdata/Builtins.lc 509:47-509:50 Nat -> Nat -> Type->Type 3066testdata/Builtins.lc 512:51-512:56 Type
3004testdata/Builtins.lc 509:47-509:52 Nat -> Type->Type 3067testdata/Builtins.lc 512:61-512:62 Type
3005testdata/Builtins.lc 509:47-509:54 Type->Type 3068testdata/Builtins.lc 512:61-512:67 Type
3006testdata/Builtins.lc 509:47-509:56 Type 3069testdata/Builtins.lc 512:66-512:67 Type
3007testdata/Builtins.lc 509:47-509:69 Type 3070testdata/Builtins.lc 514:1-514:11 {a:Nat} -> VecScalar a Float -> Float
3008testdata/Builtins.lc 509:51-509:52 Nat 3071testdata/Builtins.lc 514:34-514:43 Nat -> Type->Type
3009testdata/Builtins.lc 509:53-509:54 V2 3072testdata/Builtins.lc 514:34-514:45 Type->Type
3010testdata/Builtins.lc 509:55-509:56 Type 3073testdata/Builtins.lc 514:34-514:51 Type
3011testdata/Builtins.lc 509:60-509:63 Nat -> Nat -> Type->Type 3074testdata/Builtins.lc 514:34-514:60 Type
3012testdata/Builtins.lc 509:60-509:65 Nat -> Type->Type 3075testdata/Builtins.lc 514:44-514:45 V1
3013testdata/Builtins.lc 509:60-509:67 Type->Type 3076testdata/Builtins.lc 514:46-514:51 Type
3014testdata/Builtins.lc 509:60-509:69 Type 3077testdata/Builtins.lc 514:55-514:60 Type
3015testdata/Builtins.lc 509:64-509:65 Nat 3078testdata/Builtins.lc 515:1-515:11 {a:Nat} -> VecScalar a Float -> Vec 2 Float
3016testdata/Builtins.lc 509:66-509:67 Nat 3079testdata/Builtins.lc 515:34-515:43 Nat -> Type->Type
3017testdata/Builtins.lc 509:68-509:69 Type 3080testdata/Builtins.lc 515:34-515:45 Type->Type
3018testdata/Builtins.lc 511:1-511:13 {a} -> {b:Nat} -> {c} -> {d} -> {e : Num c} -> {f : a ~ VecScalar b c} -> {g : d ~ VecScalar b Bool} -> a -> a->d 3081testdata/Builtins.lc 515:34-515:51 Type
3019testdata/Builtins.lc 511:15-511:32 {a} -> {b:Nat} -> {c} -> {d} -> {e : Num c} -> {f : a ~ VecScalar b c} -> {g : d ~ VecScalar b Bool} -> a -> a->d 3082testdata/Builtins.lc 515:34-515:66 Type
3020testdata/Builtins.lc 511:34-511:49 {a} -> {b:Nat} -> {c} -> {d} -> {e : Num c} -> {f : a ~ VecScalar b c} -> {g : d ~ VecScalar b Bool} -> a -> a->d 3083testdata/Builtins.lc 515:44-515:45 V1
3021testdata/Builtins.lc 511:51-511:71 {a} -> {b:Nat} -> {c} -> {d} -> {e : Num c} -> {f : a ~ VecScalar b c} -> {g : d ~ VecScalar b Bool} -> a -> a->d 3084testdata/Builtins.lc 515:46-515:51 Type
3022testdata/Builtins.lc 511:73-511:83 {a} -> {b:Nat} -> {c} -> {d} -> {e : Num c} -> {f : a ~ VecScalar b c} -> {g : d ~ VecScalar b Bool} -> a -> a->d 3085testdata/Builtins.lc 515:55-515:58 Nat -> Type->Type
3023testdata/Builtins.lc 511:85-511:98 {a} -> {b:Nat} -> {c} -> {d} -> {e : Num c} -> {f : a ~ VecScalar b c} -> {g : d ~ VecScalar b Bool} -> a -> a->d 3086testdata/Builtins.lc 515:55-515:60 Type->Type
3024testdata/Builtins.lc 512:51-512:114 Type 3087testdata/Builtins.lc 515:55-515:66 Type
3025testdata/Builtins.lc 512:52-512:55 Type->Type 3088testdata/Builtins.lc 515:59-515:60 V1
3026testdata/Builtins.lc 512:52-512:57 Type 3089testdata/Builtins.lc 515:61-515:66 Type
3027testdata/Builtins.lc 512:56-512:57 V3 3090testdata/Builtins.lc 516:1-516:11 {a:Nat} -> VecScalar a Float -> Vec 3 Float
3028testdata/Builtins.lc 512:59-512:60 V8 3091testdata/Builtins.lc 516:34-516:43 Nat -> Type->Type
3029testdata/Builtins.lc 512:59-512:62 V7->Type 3092testdata/Builtins.lc 516:34-516:45 Type->Type
3030testdata/Builtins.lc 512:59-512:76 Type 3093testdata/Builtins.lc 516:34-516:51 Type
3031testdata/Builtins.lc 512:59-512:114 Type 3094testdata/Builtins.lc 516:34-516:66 Type
3032testdata/Builtins.lc 512:61-512:62 {a} -> a -> a->Type 3095testdata/Builtins.lc 516:44-516:45 V1
3033testdata/Builtins.lc 512:63-512:72 Nat -> Type->Type 3096testdata/Builtins.lc 516:46-516:51 Type
3034testdata/Builtins.lc 512:63-512:74 Type->Type 3097testdata/Builtins.lc 516:55-516:58 Nat -> Type->Type
3035testdata/Builtins.lc 512:63-512:76 Type 3098testdata/Builtins.lc 516:55-516:60 Type->Type
3036testdata/Builtins.lc 512:73-512:74 V5 3099testdata/Builtins.lc 516:55-516:66 Type
3037testdata/Builtins.lc 512:75-512:76 Type 3100testdata/Builtins.lc 516:59-516:60 V1
3038testdata/Builtins.lc 512:78-512:79 V4 3101testdata/Builtins.lc 516:61-516:66 Type
3039testdata/Builtins.lc 512:78-512:81 V3->Type 3102testdata/Builtins.lc 517:1-517:11 {a:Nat} -> VecScalar a Float -> Vec 4 Float
3040testdata/Builtins.lc 512:78-512:98 Type 3103testdata/Builtins.lc 517:34-517:43 Nat -> Type->Type
3041testdata/Builtins.lc 512:78-512:114 Type 3104testdata/Builtins.lc 517:34-517:45 Type->Type
3042testdata/Builtins.lc 512:80-512:81 {a} -> a -> a->Type 3105testdata/Builtins.lc 517:34-517:51 Type
3043testdata/Builtins.lc 512:82-512:91 Nat -> Type->Type 3106testdata/Builtins.lc 517:34-517:66 Type
3044testdata/Builtins.lc 512:82-512:93 Type->Type 3107testdata/Builtins.lc 517:44-517:45 V1
3045testdata/Builtins.lc 512:82-512:98 Type 3108testdata/Builtins.lc 517:46-517:51 Type
3046testdata/Builtins.lc 512:92-512:93 Nat 3109testdata/Builtins.lc 517:55-517:58 Nat -> Type->Type
3047testdata/Builtins.lc 512:94-512:98 Type 3110testdata/Builtins.lc 517:55-517:60 Type->Type
3048testdata/Builtins.lc 512:103-512:104 Type 3111testdata/Builtins.lc 517:55-517:66 Type
3049testdata/Builtins.lc 512:103-512:114 Type 3112testdata/Builtins.lc 517:59-517:60 V1
3050testdata/Builtins.lc 512:108-512:109 Type 3113testdata/Builtins.lc 517:61-517:66 Type
3051testdata/Builtins.lc 512:108-512:114 Type 3114testdata/Builtins.lc 533:6-533:13 Type
3052testdata/Builtins.lc 512:113-512:114 Type 3115testdata/Builtins.lc 533:6-537:12 Type
3053testdata/Builtins.lc 513:1-513:10 {a} -> {b} -> {c : b ~ MatVecScalarElem a} -> a -> a->Bool 3116testdata/Builtins.lc 534:3-534:16 String->Texture | Texture | Type
3054testdata/Builtins.lc 513:12-513:24 {a} -> {b} -> {c : b ~ MatVecScalarElem a} -> a -> a->Bool 3117testdata/Builtins.lc 534:20-534:26 Type
3055testdata/Builtins.lc 513:47-513:71 Type 3118testdata/Builtins.lc 535:20-535:27 Type
3056testdata/Builtins.lc 513:47-513:89 Type 3119testdata/Builtins.lc 537:3-537:12 Texture | Type | Vec 2 Int -> Image 1 ('Color (Vec 4 Float)) -> Texture
3057testdata/Builtins.lc 513:48-513:49 V2 3120testdata/Builtins.lc 537:20-537:23 Nat -> Type->Type
3058testdata/Builtins.lc 513:48-513:51 V1->Type 3121testdata/Builtins.lc 537:20-537:25 Type->Type
3059testdata/Builtins.lc 513:50-513:51 {a} -> a -> a->Type 3122testdata/Builtins.lc 537:20-537:29 Type
3060testdata/Builtins.lc 513:52-513:68 Type->Type 3123testdata/Builtins.lc 537:24-537:25 V1
3061testdata/Builtins.lc 513:52-513:70 Type 3124testdata/Builtins.lc 537:26-537:29 Type
3062testdata/Builtins.lc 513:69-513:70 V2 3125testdata/Builtins.lc 538:20-538:25 Nat -> ImageSemantics->Type
3063testdata/Builtins.lc 513:75-513:76 Type 3126testdata/Builtins.lc 538:20-538:27 ImageSemantics->Type
3064testdata/Builtins.lc 513:75-513:89 Type 3127testdata/Builtins.lc 538:20-538:49 Type
3065testdata/Builtins.lc 513:80-513:81 Type 3128testdata/Builtins.lc 538:20-539:27 Type
3066testdata/Builtins.lc 513:80-513:89 Type 3129testdata/Builtins.lc 538:26-538:27 V1
3067testdata/Builtins.lc 513:85-513:89 Type 3130testdata/Builtins.lc 538:28-538:49 ImageSemantics
3068testdata/Builtins.lc 515:1-515:9 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a 3131testdata/Builtins.lc 538:29-538:34 Type->ImageSemantics
3069testdata/Builtins.lc 515:11-515:19 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a 3132testdata/Builtins.lc 538:35-538:48 Type
3070testdata/Builtins.lc 515:21-515:31 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a 3133testdata/Builtins.lc 538:36-538:39 Nat -> Type->Type
3071testdata/Builtins.lc 516:34-516:57 Type 3134testdata/Builtins.lc 538:36-538:41 Type->Type
3072testdata/Builtins.lc 516:34-516:67 Type 3135testdata/Builtins.lc 538:40-538:41 V1
3073testdata/Builtins.lc 516:35-516:36 V4 3136testdata/Builtins.lc 538:42-538:47 Type
3074testdata/Builtins.lc 516:35-516:38 V3->Type
3075testdata/Builtins.lc 516:37-516:38 {a} -> a -> a->Type
3076testdata/Builtins.lc 516:39-516:48 Nat -> Type->Type
3077testdata/Builtins.lc 516:39-516:50 Type->Type
3078testdata/Builtins.lc 516:39-516:56 Type
3079testdata/Builtins.lc 516:49-516:50 V1
3080testdata/Builtins.lc 516:51-516:56 Type
3081testdata/Builtins.lc 516:61-516:62 Type
3082testdata/Builtins.lc 516:61-516:67 Type
3083testdata/Builtins.lc 516:66-516:67 Type
3084testdata/Builtins.lc 518:1-518:11 {a:Nat} -> VecScalar a Float -> Float
3085testdata/Builtins.lc 518:34-518:43 Nat -> Type->Type
3086testdata/Builtins.lc 518:34-518:45 Type->Type
3087testdata/Builtins.lc 518:34-518:51 Type
3088testdata/Builtins.lc 518:34-518:60 Type
3089testdata/Builtins.lc 518:44-518:45 V1
3090testdata/Builtins.lc 518:46-518:51 Type
3091testdata/Builtins.lc 518:55-518:60 Type
3092testdata/Builtins.lc 519:1-519:11 {a:Nat} -> VecScalar a Float -> Vec 2 Float
3093testdata/Builtins.lc 519:34-519:43 Nat -> Type->Type
3094testdata/Builtins.lc 519:34-519:45 Type->Type
3095testdata/Builtins.lc 519:34-519:51 Type
3096testdata/Builtins.lc 519:34-519:66 Type
3097testdata/Builtins.lc 519:44-519:45 V1
3098testdata/Builtins.lc 519:46-519:51 Type
3099testdata/Builtins.lc 519:55-519:58 Nat -> Type->Type
3100testdata/Builtins.lc 519:55-519:60 Type->Type
3101testdata/Builtins.lc 519:55-519:66 Type
3102testdata/Builtins.lc 519:59-519:60 V1
3103testdata/Builtins.lc 519:61-519:66 Type
3104testdata/Builtins.lc 520:1-520:11 {a:Nat} -> VecScalar a Float -> Vec 3 Float
3105testdata/Builtins.lc 520:34-520:43 Nat -> Type->Type
3106testdata/Builtins.lc 520:34-520:45 Type->Type
3107testdata/Builtins.lc 520:34-520:51 Type
3108testdata/Builtins.lc 520:34-520:66 Type
3109testdata/Builtins.lc 520:44-520:45 V1
3110testdata/Builtins.lc 520:46-520:51 Type
3111testdata/Builtins.lc 520:55-520:58 Nat -> Type->Type
3112testdata/Builtins.lc 520:55-520:60 Type->Type
3113testdata/Builtins.lc 520:55-520:66 Type
3114testdata/Builtins.lc 520:59-520:60 V1
3115testdata/Builtins.lc 520:61-520:66 Type
3116testdata/Builtins.lc 521:1-521:11 {a:Nat} -> VecScalar a Float -> Vec 4 Float
3117testdata/Builtins.lc 521:34-521:43 Nat -> Type->Type
3118testdata/Builtins.lc 521:34-521:45 Type->Type
3119testdata/Builtins.lc 521:34-521:51 Type
3120testdata/Builtins.lc 521:34-521:66 Type
3121testdata/Builtins.lc 521:44-521:45 V1
3122testdata/Builtins.lc 521:46-521:51 Type
3123testdata/Builtins.lc 521:55-521:58 Nat -> Type->Type
3124testdata/Builtins.lc 521:55-521:60 Type->Type
3125testdata/Builtins.lc 521:55-521:66 Type
3126testdata/Builtins.lc 521:59-521:60 V1
3127testdata/Builtins.lc 521:61-521:66 Type
3128testdata/Builtins.lc 537:6-537:13 Type
3129testdata/Builtins.lc 537:6-541:12 Type
3130testdata/Builtins.lc 538:3-538:16 String->Texture | Texture | Type
3131testdata/Builtins.lc 538:20-538:26 Type
3132testdata/Builtins.lc 539:20-539:27 Type 3137testdata/Builtins.lc 539:20-539:27 Type
3133testdata/Builtins.lc 541:3-541:12 Texture | Type | Vec 2 Int -> Image 1 ('Color (Vec 4 Float)) -> Texture 3138testdata/Builtins.lc 541:6-541:12 Type
3134testdata/Builtins.lc 541:20-541:23 Nat -> Type->Type 3139testdata/Builtins.lc 541:6-543:17 Type
3135testdata/Builtins.lc 541:20-541:25 Type->Type 3140testdata/Builtins.lc 542:5-542:16 Filter
3136testdata/Builtins.lc 541:20-541:29 Type 3141testdata/Builtins.lc 543:5-543:17 Filter
3137testdata/Builtins.lc 541:24-541:25 V1 3142testdata/Builtins.lc 545:6-545:14 Type
3138testdata/Builtins.lc 541:26-541:29 Type 3143testdata/Builtins.lc 545:6-548:16 Type
3139testdata/Builtins.lc 542:20-542:25 Nat -> ImageSemantics->Type 3144testdata/Builtins.lc 546:5-546:11 EdgeMode
3140testdata/Builtins.lc 542:20-542:27 ImageSemantics->Type 3145testdata/Builtins.lc 547:5-547:19 EdgeMode
3141testdata/Builtins.lc 542:20-542:49 Type 3146testdata/Builtins.lc 548:5-548:16 EdgeMode
3142testdata/Builtins.lc 542:20-543:27 Type 3147testdata/Builtins.lc 550:6-550:13 Type
3143testdata/Builtins.lc 542:26-542:27 V1 3148testdata/Builtins.lc 550:6-550:23 Type
3144testdata/Builtins.lc 542:28-542:49 ImageSemantics 3149testdata/Builtins.lc 550:6-550:47 Type
3145testdata/Builtins.lc 542:29-542:34 Type->ImageSemantics 3150testdata/Builtins.lc 550:16-550:23 Filter -> EdgeMode -> Texture->Sampler | Sampler | Type
3146testdata/Builtins.lc 542:35-542:48 Type 3151testdata/Builtins.lc 550:24-550:30 Type
3147testdata/Builtins.lc 542:36-542:39 Nat -> Type->Type 3152testdata/Builtins.lc 550:31-550:39 Type
3148testdata/Builtins.lc 542:36-542:41 Type->Type 3153testdata/Builtins.lc 550:40-550:47 Type
3149testdata/Builtins.lc 542:40-542:41 V1 3154testdata/Builtins.lc 553:1-553:10 Sampler -> Vec 2 Float -> Vec 4 Float
3150testdata/Builtins.lc 542:42-542:47 Type 3155testdata/Builtins.lc 553:14-553:21 Type
3151testdata/Builtins.lc 543:20-543:27 Type 3156testdata/Builtins.lc 553:25-553:28 Nat -> Type->Type
3152testdata/Builtins.lc 545:6-545:12 Type 3157testdata/Builtins.lc 553:25-553:30 Type->Type
3153testdata/Builtins.lc 545:6-547:17 Type 3158testdata/Builtins.lc 553:25-553:36 Type
3154testdata/Builtins.lc 546:5-546:16 Filter 3159testdata/Builtins.lc 553:25-553:51 Type
3155testdata/Builtins.lc 547:5-547:17 Filter 3160testdata/Builtins.lc 553:29-553:30 V1
3156testdata/Builtins.lc 549:6-549:14 Type 3161testdata/Builtins.lc 553:31-553:36 Type
3157testdata/Builtins.lc 549:6-552:16 Type 3162testdata/Builtins.lc 553:40-553:43 Nat -> Type->Type
3158testdata/Builtins.lc 550:5-550:11 EdgeMode 3163testdata/Builtins.lc 553:40-553:45 Type->Type
3159testdata/Builtins.lc 551:5-551:19 EdgeMode 3164testdata/Builtins.lc 553:40-553:51 Type
3160testdata/Builtins.lc 552:5-552:16 EdgeMode 3165testdata/Builtins.lc 553:44-553:45 V1
3161testdata/Builtins.lc 554:6-554:13 Type 3166testdata/Builtins.lc 553:46-553:51 Type
3162testdata/Builtins.lc 554:6-554:23 Type 3167testdata/Builtins.lc 556:1-556:15 {a} -> {b} -> a -> b -> Tuple2 a b
3163testdata/Builtins.lc 554:6-554:47 Type 3168testdata/Builtins.lc 556:24-556:32 Tuple2 V3 V1
3164testdata/Builtins.lc 554:16-554:23 Filter -> EdgeMode -> Texture->Sampler | Sampler | Type 3169testdata/Builtins.lc 556:25-556:28 V5
3165testdata/Builtins.lc 554:24-554:30 Type 3170testdata/Builtins.lc 556:30-556:31 V2
3166testdata/Builtins.lc 554:31-554:39 Type 3171testdata/Builtins.lc 557:1-557:8 {a : List ImageSemantics} -> {b:Nat} -> FrameBuffer b a -> Tuple2 (FragOps a) (List (Fragment b ('remSemantics' a))) -> FrameBuffer b a
3167testdata/Builtins.lc 554:40-554:47 Type 3172testdata/Builtins.lc 557:13-557:21 V3
3168testdata/Builtins.lc 557:1-557:10 Sampler -> Vec 2 Float -> Vec 4 Float 3173testdata/Builtins.lc 557:13-557:46 FrameBuffer V0 V1
3169testdata/Builtins.lc 557:14-557:21 Type 3174testdata/Builtins.lc 557:25-557:35 {a : List ImageSemantics} -> {b:Nat} -> FragOps a -> FragmentStream b ('remSemantics' a) -> FrameBuffer b a -> FrameBuffer b a
3170testdata/Builtins.lc 557:25-557:28 Nat -> Type->Type 3175testdata/Builtins.lc 557:25-557:39 FragmentStream V0 ('remSemantics' V1) -> FrameBuffer V1 V2 -> FrameBuffer V2 V3
3171testdata/Builtins.lc 557:25-557:30 Type->Type 3176testdata/Builtins.lc 557:25-557:43 FrameBuffer V0 V1 -> FrameBuffer V1 V2
3172testdata/Builtins.lc 557:25-557:36 Type 3177testdata/Builtins.lc 557:25-557:46 FrameBuffer V0 V1 | V2 -> V2->V2 | V2->V2
3173testdata/Builtins.lc 557:25-557:51 Type 3178testdata/Builtins.lc 557:36-557:39 V6
3174testdata/Builtins.lc 557:29-557:30 V1 3179testdata/Builtins.lc 557:40-557:43 V5
3175testdata/Builtins.lc 557:31-557:36 Type 3180testdata/Builtins.lc 557:44-557:46 V7
3176testdata/Builtins.lc 557:40-557:43 Nat -> Type->Type 3181testdata/Builtins.lc 558:1-558:12 {a:Nat} -> {b : List ImageSemantics} -> FrameBuffer a b -> Output
3177testdata/Builtins.lc 557:40-557:45 Type->Type 3182testdata/Builtins.lc 558:15-558:24 {a:Nat} -> {b : List ImageSemantics} -> FrameBuffer a b -> Output
3178testdata/Builtins.lc 557:40-557:51 Type 3183testdata/Builtins.lc 559:1-559:11 {a : List ImageSemantics} -> {b} -> {c:Nat} -> {d : ValidFrameBuffer a} -> {e : SameLayerCounts b} -> {f : FrameBuffer c a ~ TFFrameBuffer b} -> b -> FrameBuffer c a
3179testdata/Builtins.lc 557:44-557:45 V1 3184testdata/Builtins.lc 559:14-559:25 {a : List ImageSemantics} -> {b} -> {c:Nat} -> {d : ValidFrameBuffer a} -> {e : SameLayerCounts b} -> {f : FrameBuffer c a ~ TFFrameBuffer b} -> b -> FrameBuffer c a
3180testdata/Builtins.lc 557:46-557:51 Type 3185testdata/Builtins.lc 560:1-560:16 Float -> Image 1 ('Depth Float)
3181testdata/Builtins.lc 560:1-560:15 {a} -> {b} -> a -> b -> Tuple2 a b 3186testdata/Builtins.lc 560:19-560:29 {a:Nat} -> Float -> Image a ('Depth Float)
3182testdata/Builtins.lc 560:24-560:32 Tuple2 V3 V1 3187testdata/Builtins.lc 560:19-560:32 Float -> Image 1 ('Depth Float)
3183testdata/Builtins.lc 560:25-560:28 V5 3188testdata/Builtins.lc 560:31-560:32 V1
3184testdata/Builtins.lc 560:30-560:31 V2 3189testdata/Builtins.lc 561:1-561:16 {a:Nat} -> {b} -> {c} -> {d : Num b} -> {e : c ~ VecScalar a b} -> c -> Image 1 ('Color c)
3185testdata/Builtins.lc 561:1-561:8 {a : List ImageSemantics} -> {b:Nat} -> FrameBuffer b a -> Tuple2 (FragOps a) (List (Fragment b ('remSemantics' a))) -> FrameBuffer b a 3190testdata/Builtins.lc 561:19-561:29 {a:Nat} -> {b:Nat} -> {c} -> {d} -> {e : Num c} -> {f : d ~ VecScalar b c} -> d -> Image a ('Color d)
3186testdata/Builtins.lc 561:13-561:21 V3 3191testdata/Builtins.lc 561:19-561:32 {a:Nat} -> {b} -> {c} -> {d : Num b} -> {e : c ~ VecScalar a b} -> c -> Image 1 ('Color c)
3187testdata/Builtins.lc 561:13-561:46 FrameBuffer V0 V1 3192testdata/Builtins.lc 561:31-561:32 V1
3188testdata/Builtins.lc 561:25-561:35 {a : List ImageSemantics} -> {b:Nat} -> FragOps a -> FragmentStream b ('remSemantics' a) -> FrameBuffer b a -> FrameBuffer b a
3189testdata/Builtins.lc 561:25-561:39 FragmentStream V0 ('remSemantics' V1) -> FrameBuffer V1 V2 -> FrameBuffer V2 V3
3190testdata/Builtins.lc 561:25-561:43 FrameBuffer V0 V1 -> FrameBuffer V1 V2
3191testdata/Builtins.lc 561:25-561:46 FrameBuffer V0 V1 | V2 -> V2->V2 | V2->V2
3192testdata/Builtins.lc 561:36-561:39 V6
3193testdata/Builtins.lc 561:40-561:43 V5
3194testdata/Builtins.lc 561:44-561:46 V7
3195testdata/Builtins.lc 562:1-562:12 {a:Nat} -> {b : List ImageSemantics} -> FrameBuffer a b -> Output
3196testdata/Builtins.lc 562:15-562:24 {a:Nat} -> {b : List ImageSemantics} -> FrameBuffer a b -> Output
3197testdata/Builtins.lc 563:1-563:11 {a : List ImageSemantics} -> {b} -> {c:Nat} -> {d : ValidFrameBuffer a} -> {e : SameLayerCounts b} -> {f : FrameBuffer c a ~ TFFrameBuffer b} -> b -> FrameBuffer c a
3198testdata/Builtins.lc 563:14-563:25 {a : List ImageSemantics} -> {b} -> {c:Nat} -> {d : ValidFrameBuffer a} -> {e : SameLayerCounts b} -> {f : FrameBuffer c a ~ TFFrameBuffer b} -> b -> FrameBuffer c a
3199testdata/Builtins.lc 564:1-564:16 Float -> Image 1 ('Depth Float)
3200testdata/Builtins.lc 564:19-564:29 {a:Nat} -> Float -> Image a ('Depth Float)
3201testdata/Builtins.lc 564:19-564:32 Float -> Image 1 ('Depth Float)
3202testdata/Builtins.lc 564:31-564:32 V1
3203testdata/Builtins.lc 565:1-565:16 {a:Nat} -> {b} -> {c} -> {d : Num b} -> {e : c ~ VecScalar a b} -> c -> Image 1 ('Color c)
3204testdata/Builtins.lc 565:19-565:29 {a:Nat} -> {b:Nat} -> {c} -> {d} -> {e : Num c} -> {f : d ~ VecScalar b c} -> d -> Image a ('Color d)
3205testdata/Builtins.lc 565:19-565:32 {a:Nat} -> {b} -> {c} -> {d : Num b} -> {e : c ~ VecScalar a b} -> c -> Image 1 ('Color c)
3206testdata/Builtins.lc 565:31-565:32 V1
diff --git a/testdata/Graphics.out b/testdata/Graphics.out
index 7ca71e40..c147f362 100644
--- a/testdata/Graphics.out
+++ b/testdata/Graphics.out
@@ -35,9 +35,11 @@ Pipeline
35 in vec3 vi1; 35 in vec3 vi1;
36 in vec4 vi2; 36 in vec4 vi2;
37 smooth out vec4 vo1; 37 smooth out vec4 vo1;
38 vec4 snoc(vec3 z0,float z1) {
39 return vec4 ((z0).x,(z0).y,(z0).z,z1);
40 }
38 void main() { 41 void main() {
39 gl_Position = (viewProj) * ((worldMat) * (vec4 42 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0)));
40 ((vi1).x,(vi1).y,(vi1).z,1.0)));
41 vo1 = vi2; 43 vo1 = vi2;
42 } 44 }
43 """ 45 """
@@ -77,9 +79,11 @@ Pipeline
77 in vec3 vi1; 79 in vec3 vi1;
78 in vec4 vi2; 80 in vec4 vi2;
79 smooth out vec4 vo1; 81 smooth out vec4 vo1;
82 vec4 snoc(vec3 z0,float z1) {
83 return vec4 ((z0).x,(z0).y,(z0).z,z1);
84 }
80 void main() { 85 void main() {
81 gl_Position = (viewProj) * ((worldMat) * (vec4 86 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0)));
82 ((vi1).x,(vi1).y,(vi1).z,1.0)));
83 vo1 = vec4 ((vi2).x,(vi2).y,(vi2).z,0.5); 87 vo1 = vec4 ((vi2).x,(vi2).y,(vi2).z,0.5);
84 } 88 }
85 """ 89 """
@@ -129,9 +133,11 @@ Pipeline
129 in vec4 vi5; 133 in vec4 vi5;
130 smooth out vec2 vo1; 134 smooth out vec2 vo1;
131 smooth out vec4 vo2; 135 smooth out vec4 vo2;
136 vec4 snoc(vec3 z0,float z1) {
137 return vec4 ((z0).x,(z0).y,(z0).z,z1);
138 }
132 void main() { 139 void main() {
133 gl_Position = (viewProj) * ((worldMat) * (vec4 140 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0)));
134 ((vi1).x,(vi1).y,(vi1).z,1.0)));
135 vo1 = vi4; 141 vo1 = vi4;
136 vo2 = vec4 (1.0,1.0,1.0,1.0); 142 vo2 = vec4 (1.0,1.0,1.0,1.0);
137 } 143 }
@@ -185,9 +191,11 @@ Pipeline
185 in vec4 vi5; 191 in vec4 vi5;
186 smooth out vec2 vo1; 192 smooth out vec2 vo1;
187 smooth out vec4 vo2; 193 smooth out vec4 vo2;
194 vec4 snoc(vec3 z0,float z1) {
195 return vec4 ((z0).x,(z0).y,(z0).z,z1);
196 }
188 void main() { 197 void main() {
189 gl_Position = (viewProj) * ((worldMat) * (vec4 198 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0)));
190 ((vi1).x,(vi1).y,(vi1).z,1.0)));
191 vo1 = vi3; 199 vo1 = vi3;
192 vo2 = vec4 (1.0,1.0,1.0,1.0); 200 vo2 = vec4 (1.0,1.0,1.0,1.0);
193 } 201 }
@@ -242,9 +250,11 @@ Pipeline
242 in vec4 vi5; 250 in vec4 vi5;
243 smooth out vec2 vo1; 251 smooth out vec2 vo1;
244 smooth out vec4 vo2; 252 smooth out vec4 vo2;
253 vec4 snoc(vec3 z0,float z1) {
254 return vec4 ((z0).x,(z0).y,(z0).z,z1);
255 }
245 void main() { 256 void main() {
246 gl_Position = (viewProj) * ((worldMat) * (vec4 257 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0)));
247 ((vi1).x,(vi1).y,(vi1).z,1.0)));
248 vo1 = (((vi3) + ((vec2 (0.0,1.0)) * (time))) + ((sin (vec2 258 vo1 = (((vi3) + ((vec2 (0.0,1.0)) * (time))) + ((sin (vec2
249 ((6.28) * (((((vi1).x) + ((vi1).z)) * (9.765625e-4)) + ((0.0) + ((time) * (1.6)))) 259 ((6.28) * (((((vi1).x) + ((vi1).z)) * (9.765625e-4)) + ((0.0) + ((time) * (1.6))))
250 ,(6.28) * ((((vi1).y) * (9.765625e-4)) + ((0.0) + ((time) * (1.6))))))) * (0.25))) * (vec2 260 ,(6.28) * ((((vi1).y) * (9.765625e-4)) + ((0.0) + ((time) * (1.6))))))) * (0.25))) * (vec2
@@ -301,9 +311,11 @@ Pipeline
301 in vec4 vi5; 311 in vec4 vi5;
302 smooth out vec2 vo1; 312 smooth out vec2 vo1;
303 smooth out vec4 vo2; 313 smooth out vec4 vo2;
314 vec4 snoc(vec3 z0,float z1) {
315 return vec4 ((z0).x,(z0).y,(z0).z,z1);
316 }
304 void main() { 317 void main() {
305 gl_Position = (viewProj) * ((worldMat) * (vec4 318 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0)));
306 ((vi1).x,(vi1).y,(vi1).z,1.0)));
307 vo1 = vi3; 319 vo1 = vi3;
308 vo2 = vec4 (1.0,1.0,1.0,1.0); 320 vo2 = vec4 (1.0,1.0,1.0,1.0);
309 } 321 }
@@ -356,9 +368,11 @@ Pipeline
356 in vec4 vi5; 368 in vec4 vi5;
357 smooth out vec2 vo1; 369 smooth out vec2 vo1;
358 smooth out vec4 vo2; 370 smooth out vec4 vo2;
371 vec4 snoc(vec3 z0,float z1) {
372 return vec4 ((z0).x,(z0).y,(z0).z,z1);
373 }
359 void main() { 374 void main() {
360 gl_Position = (viewProj) * ((worldMat) * (vec4 375 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0)));
361 ((vi1).x,(vi1).y,(vi1).z,1.0)));
362 vo1 = vi4; 376 vo1 = vi4;
363 vo2 = vec4 (1.0,1.0,1.0,1.0); 377 vo2 = vec4 (1.0,1.0,1.0,1.0);
364 } 378 }
@@ -411,9 +425,11 @@ Pipeline
411 in vec4 vi5; 425 in vec4 vi5;
412 smooth out vec2 vo1; 426 smooth out vec2 vo1;
413 smooth out vec4 vo2; 427 smooth out vec4 vo2;
428 vec4 snoc(vec3 z0,float z1) {
429 return vec4 ((z0).x,(z0).y,(z0).z,z1);
430 }
414 void main() { 431 void main() {
415 gl_Position = (viewProj) * ((worldMat) * (vec4 432 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0)));
416 ((vi1).x,(vi1).y,(vi1).z,1.0)));
417 vo1 = vi4; 433 vo1 = vi4;
418 vo2 = vec4 (1.0,1.0,1.0,1.0); 434 vo2 = vec4 (1.0,1.0,1.0,1.0);
419 } 435 }
@@ -467,9 +483,11 @@ Pipeline
467 in vec4 vi5; 483 in vec4 vi5;
468 smooth out vec2 vo1; 484 smooth out vec2 vo1;
469 smooth out vec4 vo2; 485 smooth out vec4 vo2;
486 vec4 snoc(vec3 z0,float z1) {
487 return vec4 ((z0).x,(z0).y,(z0).z,z1);
488 }
470 void main() { 489 void main() {
471 gl_Position = (viewProj) * ((worldMat) * (vec4 490 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0)));
472 ((vi1).x,(vi1).y,(vi1).z,1.0)));
473 vo1 = vi3; 491 vo1 = vi3;
474 vo2 = vec4 (1.0,1.0,1.0,1.0); 492 vo2 = vec4 (1.0,1.0,1.0,1.0);
475 } 493 }
@@ -525,9 +543,11 @@ Pipeline
525 in vec4 vi5; 543 in vec4 vi5;
526 smooth out vec2 vo1; 544 smooth out vec2 vo1;
527 smooth out vec4 vo2; 545 smooth out vec4 vo2;
546 vec4 snoc(vec3 z0,float z1) {
547 return vec4 ((z0).x,(z0).y,(z0).z,z1);
548 }
528 void main() { 549 void main() {
529 gl_Position = (viewProj) * ((worldMat) * (vec4 550 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0)));
530 ((vi1).x,(vi1).y,(vi1).z,1.0)));
531 vo1 = (((vi3) + ((vec2 (0.0,1.0)) * (time))) + ((sin (vec2 551 vo1 = (((vi3) + ((vec2 (0.0,1.0)) * (time))) + ((sin (vec2
532 ((6.28) * (((((vi1).x) + ((vi1).z)) * (9.765625e-4)) + ((0.0) + ((time) * (5.6)))) 552 ((6.28) * (((((vi1).x) + ((vi1).z)) * (9.765625e-4)) + ((0.0) + ((time) * (5.6))))
533 ,(6.28) * ((((vi1).y) * (9.765625e-4)) + ((0.0) + ((time) * (5.6))))))) * (0.25))) * (vec2 553 ,(6.28) * ((((vi1).y) * (9.765625e-4)) + ((0.0) + ((time) * (5.6))))))) * (0.25))) * (vec2
@@ -585,9 +605,11 @@ Pipeline
585 in vec4 vi5; 605 in vec4 vi5;
586 smooth out vec2 vo1; 606 smooth out vec2 vo1;
587 smooth out vec4 vo2; 607 smooth out vec4 vo2;
608 vec4 snoc(vec3 z0,float z1) {
609 return vec4 ((z0).x,(z0).y,(z0).z,z1);
610 }
588 void main() { 611 void main() {
589 gl_Position = (viewProj) * ((worldMat) * (vec4 612 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0)));
590 ((vi1).x,(vi1).y,(vi1).z,1.0)));
591 vo1 = vi4; 613 vo1 = vi4;
592 vo2 = vec4 (identityLight,identityLight,identityLight,1.0); 614 vo2 = vec4 (identityLight,identityLight,identityLight,1.0);
593 } 615 }
@@ -643,9 +665,11 @@ Pipeline
643 in vec4 vi5; 665 in vec4 vi5;
644 smooth out vec2 vo1; 666 smooth out vec2 vo1;
645 smooth out vec4 vo2; 667 smooth out vec4 vo2;
668 vec4 snoc(vec3 z0,float z1) {
669 return vec4 ((z0).x,(z0).y,(z0).z,z1);
670 }
646 void main() { 671 void main() {
647 gl_Position = (viewProj) * ((worldMat) * (vec4 672 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0)));
648 ((vi1).x,(vi1).y,(vi1).z,1.0)));
649 vo1 = vi3; 673 vo1 = vi3;
650 vo2 = vec4 (identityLight,identityLight,identityLight,1.0); 674 vo2 = vec4 (identityLight,identityLight,identityLight,1.0);
651 } 675 }
@@ -700,9 +724,11 @@ Pipeline
700 in vec4 vi5; 724 in vec4 vi5;
701 smooth out vec2 vo1; 725 smooth out vec2 vo1;
702 smooth out vec4 vo2; 726 smooth out vec4 vo2;
727 vec4 snoc(vec3 z0,float z1) {
728 return vec4 ((z0).x,(z0).y,(z0).z,z1);
729 }
703 void main() { 730 void main() {
704 gl_Position = (viewProj) * ((worldMat) * (vec4 731 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0)));
705 ((vi1).x,(vi1).y,(vi1).z,1.0)));
706 vo1 = vi4; 732 vo1 = vi4;
707 vo2 = vec4 (identityLight,identityLight,identityLight,1.0); 733 vo2 = vec4 (identityLight,identityLight,identityLight,1.0);
708 } 734 }
@@ -758,9 +784,11 @@ Pipeline
758 in vec4 vi5; 784 in vec4 vi5;
759 smooth out vec2 vo1; 785 smooth out vec2 vo1;
760 smooth out vec4 vo2; 786 smooth out vec4 vo2;
787 vec4 snoc(vec3 z0,float z1) {
788 return vec4 ((z0).x,(z0).y,(z0).z,z1);
789 }
761 void main() { 790 void main() {
762 gl_Position = (viewProj) * ((worldMat) * (vec4 791 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0)));
763 ((vi1).x,(vi1).y,(vi1).z,1.0)));
764 vo1 = vi3; 792 vo1 = vi3;
765 vo2 = vec4 (identityLight,identityLight,identityLight,1.0); 793 vo2 = vec4 (identityLight,identityLight,identityLight,1.0);
766 } 794 }
@@ -815,9 +843,11 @@ Pipeline
815 in vec4 vi5; 843 in vec4 vi5;
816 smooth out vec2 vo1; 844 smooth out vec2 vo1;
817 smooth out vec4 vo2; 845 smooth out vec4 vo2;
846 vec4 snoc(vec3 z0,float z1) {
847 return vec4 ((z0).x,(z0).y,(z0).z,z1);
848 }
818 void main() { 849 void main() {
819 gl_Position = (viewProj) * ((worldMat) * (vec4 850 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0)));
820 ((vi1).x,(vi1).y,(vi1).z,1.0)));
821 vo1 = vi4; 851 vo1 = vi4;
822 vo2 = vec4 (identityLight,identityLight,identityLight,1.0); 852 vo2 = vec4 (identityLight,identityLight,identityLight,1.0);
823 } 853 }
@@ -873,9 +903,11 @@ Pipeline
873 in vec4 vi5; 903 in vec4 vi5;
874 smooth out vec2 vo1; 904 smooth out vec2 vo1;
875 smooth out vec4 vo2; 905 smooth out vec4 vo2;
906 vec4 snoc(vec3 z0,float z1) {
907 return vec4 ((z0).x,(z0).y,(z0).z,z1);
908 }
876 void main() { 909 void main() {
877 gl_Position = (viewProj) * ((worldMat) * (vec4 910 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0)));
878 ((vi1).x,(vi1).y,(vi1).z,1.0)));
879 vo1 = vi3; 911 vo1 = vi3;
880 vo2 = vec4 (identityLight,identityLight,identityLight,1.0); 912 vo2 = vec4 (identityLight,identityLight,identityLight,1.0);
881 } 913 }
@@ -930,9 +962,11 @@ Pipeline
930 in vec4 vi5; 962 in vec4 vi5;
931 smooth out vec2 vo1; 963 smooth out vec2 vo1;
932 smooth out vec4 vo2; 964 smooth out vec4 vo2;
965 vec4 snoc(vec3 z0,float z1) {
966 return vec4 ((z0).x,(z0).y,(z0).z,z1);
967 }
933 void main() { 968 void main() {
934 gl_Position = (viewProj) * ((worldMat) * (vec4 969 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0)));
935 ((vi1).x,(vi1).y,(vi1).z,1.0)));
936 vo1 = vi4; 970 vo1 = vi4;
937 vo2 = vec4 (identityLight,identityLight,identityLight,1.0); 971 vo2 = vec4 (identityLight,identityLight,identityLight,1.0);
938 } 972 }
@@ -987,9 +1021,11 @@ Pipeline
987 in vec4 vi5; 1021 in vec4 vi5;
988 smooth out vec2 vo1; 1022 smooth out vec2 vo1;
989 smooth out vec4 vo2; 1023 smooth out vec4 vo2;
1024 vec4 snoc(vec3 z0,float z1) {
1025 return vec4 ((z0).x,(z0).y,(z0).z,z1);
1026 }
990 void main() { 1027 void main() {
991 gl_Position = (viewProj) * ((worldMat) * (vec4 1028 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0)));
992 ((vi1).x,(vi1).y,(vi1).z,1.0)));
993 vo1 = vi3; 1029 vo1 = vi3;
994 vo2 = vec4 (identityLight,identityLight,identityLight,1.0); 1030 vo2 = vec4 (identityLight,identityLight,identityLight,1.0);
995 } 1031 }
@@ -1044,9 +1080,11 @@ Pipeline
1044 in vec4 vi5; 1080 in vec4 vi5;
1045 smooth out vec2 vo1; 1081 smooth out vec2 vo1;
1046 smooth out vec4 vo2; 1082 smooth out vec4 vo2;
1083 vec4 snoc(vec3 z0,float z1) {
1084 return vec4 ((z0).x,(z0).y,(z0).z,z1);
1085 }
1047 void main() { 1086 void main() {
1048 gl_Position = (viewProj) * ((worldMat) * (vec4 1087 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0)));
1049 ((vi1).x,(vi1).y,(vi1).z,1.0)));
1050 vo1 = vi4; 1088 vo1 = vi4;
1051 vo2 = vec4 (identityLight,identityLight,identityLight,1.0); 1089 vo2 = vec4 (identityLight,identityLight,identityLight,1.0);
1052 } 1090 }
@@ -1102,9 +1140,11 @@ Pipeline
1102 in vec4 vi5; 1140 in vec4 vi5;
1103 smooth out vec2 vo1; 1141 smooth out vec2 vo1;
1104 smooth out vec4 vo2; 1142 smooth out vec4 vo2;
1143 vec4 snoc(vec3 z0,float z1) {
1144 return vec4 ((z0).x,(z0).y,(z0).z,z1);
1145 }
1105 void main() { 1146 void main() {
1106 gl_Position = (viewProj) * ((worldMat) * (vec4 1147 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0)));
1107 ((vi1).x,(vi1).y,(vi1).z,1.0)));
1108 vo1 = vi3; 1148 vo1 = vi3;
1109 vo2 = vec4 (identityLight,identityLight,identityLight,1.0); 1149 vo2 = vec4 (identityLight,identityLight,identityLight,1.0);
1110 } 1150 }
@@ -1159,9 +1199,11 @@ Pipeline
1159 in vec4 vi5; 1199 in vec4 vi5;
1160 smooth out vec2 vo1; 1200 smooth out vec2 vo1;
1161 smooth out vec4 vo2; 1201 smooth out vec4 vo2;
1202 vec4 snoc(vec3 z0,float z1) {
1203 return vec4 ((z0).x,(z0).y,(z0).z,z1);
1204 }
1162 void main() { 1205 void main() {
1163 gl_Position = (viewProj) * ((worldMat) * (vec4 1206 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0)));
1164 ((vi1).x,(vi1).y,(vi1).z,1.0)));
1165 vo1 = vi4; 1207 vo1 = vi4;
1166 vo2 = vec4 (identityLight,identityLight,identityLight,1.0); 1208 vo2 = vec4 (identityLight,identityLight,identityLight,1.0);
1167 } 1209 }
@@ -1217,9 +1259,11 @@ Pipeline
1217 in vec4 vi5; 1259 in vec4 vi5;
1218 smooth out vec2 vo1; 1260 smooth out vec2 vo1;
1219 smooth out vec4 vo2; 1261 smooth out vec4 vo2;
1262 vec4 snoc(vec3 z0,float z1) {
1263 return vec4 ((z0).x,(z0).y,(z0).z,z1);
1264 }
1220 void main() { 1265 void main() {
1221 gl_Position = (viewProj) * ((worldMat) * (vec4 1266 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0)));
1222 ((vi1).x,(vi1).y,(vi1).z,1.0)));
1223 vo1 = vi3; 1267 vo1 = vi3;
1224 vo2 = vec4 (identityLight,identityLight,identityLight,1.0); 1268 vo2 = vec4 (identityLight,identityLight,identityLight,1.0);
1225 } 1269 }
@@ -1274,9 +1318,11 @@ Pipeline
1274 in vec4 vi5; 1318 in vec4 vi5;
1275 smooth out vec2 vo1; 1319 smooth out vec2 vo1;
1276 smooth out vec4 vo2; 1320 smooth out vec4 vo2;
1321 vec4 snoc(vec3 z0,float z1) {
1322 return vec4 ((z0).x,(z0).y,(z0).z,z1);
1323 }
1277 void main() { 1324 void main() {
1278 gl_Position = (viewProj) * ((worldMat) * (vec4 1325 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0)));
1279 ((vi1).x,(vi1).y,(vi1).z,1.0)));
1280 vo1 = vi4; 1326 vo1 = vi4;
1281 vo2 = vec4 (identityLight,identityLight,identityLight,1.0); 1327 vo2 = vec4 (identityLight,identityLight,identityLight,1.0);
1282 } 1328 }
@@ -1332,9 +1378,11 @@ Pipeline
1332 in vec4 vi5; 1378 in vec4 vi5;
1333 smooth out vec2 vo1; 1379 smooth out vec2 vo1;
1334 smooth out vec4 vo2; 1380 smooth out vec4 vo2;
1381 vec4 snoc(vec3 z0,float z1) {
1382 return vec4 ((z0).x,(z0).y,(z0).z,z1);
1383 }
1335 void main() { 1384 void main() {
1336 gl_Position = (viewProj) * ((worldMat) * (vec4 1385 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0)));
1337 ((vi1).x,(vi1).y,(vi1).z,1.0)));
1338 vo1 = vi3; 1386 vo1 = vi3;
1339 vo2 = vec4 (identityLight,identityLight,identityLight,1.0); 1387 vo2 = vec4 (identityLight,identityLight,identityLight,1.0);
1340 } 1388 }
@@ -1389,9 +1437,11 @@ Pipeline
1389 in vec4 vi5; 1437 in vec4 vi5;
1390 smooth out vec2 vo1; 1438 smooth out vec2 vo1;
1391 smooth out vec4 vo2; 1439 smooth out vec4 vo2;
1440 vec4 snoc(vec3 z0,float z1) {
1441 return vec4 ((z0).x,(z0).y,(z0).z,z1);
1442 }
1392 void main() { 1443 void main() {
1393 gl_Position = (viewProj) * ((worldMat) * (vec4 1444 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0)));
1394 ((vi1).x,(vi1).y,(vi1).z,1.0)));
1395 vo1 = vi4; 1445 vo1 = vi4;
1396 vo2 = vec4 (identityLight,identityLight,identityLight,1.0); 1446 vo2 = vec4 (identityLight,identityLight,identityLight,1.0);
1397 } 1447 }
@@ -1447,9 +1497,11 @@ Pipeline
1447 in vec4 vi5; 1497 in vec4 vi5;
1448 smooth out vec2 vo1; 1498 smooth out vec2 vo1;
1449 smooth out vec4 vo2; 1499 smooth out vec4 vo2;
1500 vec4 snoc(vec3 z0,float z1) {
1501 return vec4 ((z0).x,(z0).y,(z0).z,z1);
1502 }
1450 void main() { 1503 void main() {
1451 gl_Position = (viewProj) * ((worldMat) * (vec4 1504 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0)));
1452 ((vi1).x,(vi1).y,(vi1).z,1.0)));
1453 vo1 = vi3; 1505 vo1 = vi3;
1454 vo2 = vec4 (identityLight,identityLight,identityLight,1.0); 1506 vo2 = vec4 (identityLight,identityLight,identityLight,1.0);
1455 } 1507 }
@@ -1504,9 +1556,11 @@ Pipeline
1504 in vec4 vi5; 1556 in vec4 vi5;
1505 smooth out vec2 vo1; 1557 smooth out vec2 vo1;
1506 smooth out vec4 vo2; 1558 smooth out vec4 vo2;
1559 vec4 snoc(vec3 z0,float z1) {
1560 return vec4 ((z0).x,(z0).y,(z0).z,z1);
1561 }
1507 void main() { 1562 void main() {
1508 gl_Position = (viewProj) * ((worldMat) * (vec4 1563 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0)));
1509 ((vi1).x,(vi1).y,(vi1).z,1.0)));
1510 vo1 = vi4; 1564 vo1 = vi4;
1511 vo2 = vec4 (identityLight,identityLight,identityLight,1.0); 1565 vo2 = vec4 (identityLight,identityLight,identityLight,1.0);
1512 } 1566 }
@@ -1562,9 +1616,11 @@ Pipeline
1562 in vec4 vi5; 1616 in vec4 vi5;
1563 smooth out vec2 vo1; 1617 smooth out vec2 vo1;
1564 smooth out vec4 vo2; 1618 smooth out vec4 vo2;
1619 vec4 snoc(vec3 z0,float z1) {
1620 return vec4 ((z0).x,(z0).y,(z0).z,z1);
1621 }
1565 void main() { 1622 void main() {
1566 gl_Position = (viewProj) * ((worldMat) * (vec4 1623 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0)));
1567 ((vi1).x,(vi1).y,(vi1).z,1.0)));
1568 vo1 = vi3; 1624 vo1 = vi3;
1569 vo2 = vec4 (identityLight,identityLight,identityLight,1.0); 1625 vo2 = vec4 (identityLight,identityLight,identityLight,1.0);
1570 } 1626 }
@@ -1619,9 +1675,11 @@ Pipeline
1619 in vec4 vi5; 1675 in vec4 vi5;
1620 smooth out vec2 vo1; 1676 smooth out vec2 vo1;
1621 smooth out vec4 vo2; 1677 smooth out vec4 vo2;
1678 vec4 snoc(vec3 z0,float z1) {
1679 return vec4 ((z0).x,(z0).y,(z0).z,z1);
1680 }
1622 void main() { 1681 void main() {
1623 gl_Position = (viewProj) * ((worldMat) * (vec4 1682 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0)));
1624 ((vi1).x,(vi1).y,(vi1).z,1.0)));
1625 vo1 = vi4; 1683 vo1 = vi4;
1626 vo2 = vec4 (identityLight,identityLight,identityLight,1.0); 1684 vo2 = vec4 (identityLight,identityLight,identityLight,1.0);
1627 } 1685 }
@@ -1677,9 +1735,11 @@ Pipeline
1677 in vec4 vi5; 1735 in vec4 vi5;
1678 smooth out vec2 vo1; 1736 smooth out vec2 vo1;
1679 smooth out vec4 vo2; 1737 smooth out vec4 vo2;
1738 vec4 snoc(vec3 z0,float z1) {
1739 return vec4 ((z0).x,(z0).y,(z0).z,z1);
1740 }
1680 void main() { 1741 void main() {
1681 gl_Position = (viewProj) * ((worldMat) * (vec4 1742 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0)));
1682 ((vi1).x,(vi1).y,(vi1).z,1.0)));
1683 vo1 = vi3; 1743 vo1 = vi3;
1684 vo2 = vec4 (identityLight,identityLight,identityLight,1.0); 1744 vo2 = vec4 (identityLight,identityLight,identityLight,1.0);
1685 } 1745 }
@@ -1734,9 +1794,11 @@ Pipeline
1734 in vec4 vi5; 1794 in vec4 vi5;
1735 smooth out vec2 vo1; 1795 smooth out vec2 vo1;
1736 smooth out vec4 vo2; 1796 smooth out vec4 vo2;
1797 vec4 snoc(vec3 z0,float z1) {
1798 return vec4 ((z0).x,(z0).y,(z0).z,z1);
1799 }
1737 void main() { 1800 void main() {
1738 gl_Position = (viewProj) * ((worldMat) * (vec4 1801 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0)));
1739 ((vi1).x,(vi1).y,(vi1).z,1.0)));
1740 vo1 = vi4; 1802 vo1 = vi4;
1741 vo2 = vec4 (identityLight,identityLight,identityLight,1.0); 1803 vo2 = vec4 (identityLight,identityLight,identityLight,1.0);
1742 } 1804 }
@@ -1792,9 +1854,11 @@ Pipeline
1792 in vec4 vi5; 1854 in vec4 vi5;
1793 smooth out vec2 vo1; 1855 smooth out vec2 vo1;
1794 smooth out vec4 vo2; 1856 smooth out vec4 vo2;
1857 vec4 snoc(vec3 z0,float z1) {
1858 return vec4 ((z0).x,(z0).y,(z0).z,z1);
1859 }
1795 void main() { 1860 void main() {
1796 gl_Position = (viewProj) * ((worldMat) * (vec4 1861 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0)));
1797 ((vi1).x,(vi1).y,(vi1).z,1.0)));
1798 vo1 = vi3; 1862 vo1 = vi3;
1799 vo2 = vec4 (identityLight,identityLight,identityLight,1.0); 1863 vo2 = vec4 (identityLight,identityLight,identityLight,1.0);
1800 } 1864 }
@@ -1849,9 +1913,11 @@ Pipeline
1849 in vec4 vi5; 1913 in vec4 vi5;
1850 smooth out vec2 vo1; 1914 smooth out vec2 vo1;
1851 smooth out vec4 vo2; 1915 smooth out vec4 vo2;
1916 vec4 snoc(vec3 z0,float z1) {
1917 return vec4 ((z0).x,(z0).y,(z0).z,z1);
1918 }
1852 void main() { 1919 void main() {
1853 gl_Position = (viewProj) * ((worldMat) * (vec4 1920 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0)));
1854 ((vi1).x,(vi1).y,(vi1).z,1.0)));
1855 vo1 = vi4; 1921 vo1 = vi4;
1856 vo2 = vec4 (identityLight,identityLight,identityLight,1.0); 1922 vo2 = vec4 (identityLight,identityLight,identityLight,1.0);
1857 } 1923 }
@@ -1907,9 +1973,11 @@ Pipeline
1907 in vec4 vi5; 1973 in vec4 vi5;
1908 smooth out vec2 vo1; 1974 smooth out vec2 vo1;
1909 smooth out vec4 vo2; 1975 smooth out vec4 vo2;
1976 vec4 snoc(vec3 z0,float z1) {
1977 return vec4 ((z0).x,(z0).y,(z0).z,z1);
1978 }
1910 void main() { 1979 void main() {
1911 gl_Position = (viewProj) * ((worldMat) * (vec4 1980 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0)));
1912 ((vi1).x,(vi1).y,(vi1).z,1.0)));
1913 vo1 = vi3; 1981 vo1 = vi3;
1914 vo2 = vec4 (identityLight,identityLight,identityLight,1.0); 1982 vo2 = vec4 (identityLight,identityLight,identityLight,1.0);
1915 } 1983 }
@@ -1964,9 +2032,11 @@ Pipeline
1964 in vec4 vi5; 2032 in vec4 vi5;
1965 smooth out vec2 vo1; 2033 smooth out vec2 vo1;
1966 smooth out vec4 vo2; 2034 smooth out vec4 vo2;
2035 vec4 snoc(vec3 z0,float z1) {
2036 return vec4 ((z0).x,(z0).y,(z0).z,z1);
2037 }
1967 void main() { 2038 void main() {
1968 gl_Position = (viewProj) * ((worldMat) * (vec4 2039 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0)));
1969 ((vi1).x,(vi1).y,(vi1).z,1.0)));
1970 vo1 = vi4; 2040 vo1 = vi4;
1971 vo2 = vec4 (identityLight,identityLight,identityLight,1.0); 2041 vo2 = vec4 (identityLight,identityLight,identityLight,1.0);
1972 } 2042 }
@@ -2022,9 +2092,11 @@ Pipeline
2022 in vec4 vi5; 2092 in vec4 vi5;
2023 smooth out vec2 vo1; 2093 smooth out vec2 vo1;
2024 smooth out vec4 vo2; 2094 smooth out vec4 vo2;
2095 vec4 snoc(vec3 z0,float z1) {
2096 return vec4 ((z0).x,(z0).y,(z0).z,z1);
2097 }
2025 void main() { 2098 void main() {
2026 gl_Position = (viewProj) * ((worldMat) * (vec4 2099 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0)));
2027 ((vi1).x,(vi1).y,(vi1).z,1.0)));
2028 vo1 = vi3; 2100 vo1 = vi3;
2029 vo2 = vec4 (identityLight,identityLight,identityLight,1.0); 2101 vo2 = vec4 (identityLight,identityLight,identityLight,1.0);
2030 } 2102 }
@@ -2079,9 +2151,11 @@ Pipeline
2079 in vec4 vi5; 2151 in vec4 vi5;
2080 smooth out vec2 vo1; 2152 smooth out vec2 vo1;
2081 smooth out vec4 vo2; 2153 smooth out vec4 vo2;
2154 vec4 snoc(vec3 z0,float z1) {
2155 return vec4 ((z0).x,(z0).y,(z0).z,z1);
2156 }
2082 void main() { 2157 void main() {
2083 gl_Position = (viewProj) * ((worldMat) * (vec4 2158 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0)));
2084 ((vi1).x,(vi1).y,(vi1).z,1.0)));
2085 vo1 = vi4; 2159 vo1 = vi4;
2086 vo2 = vec4 (identityLight,identityLight,identityLight,1.0); 2160 vo2 = vec4 (identityLight,identityLight,identityLight,1.0);
2087 } 2161 }
@@ -2137,9 +2211,11 @@ Pipeline
2137 in vec4 vi5; 2211 in vec4 vi5;
2138 smooth out vec2 vo1; 2212 smooth out vec2 vo1;
2139 smooth out vec4 vo2; 2213 smooth out vec4 vo2;
2214 vec4 snoc(vec3 z0,float z1) {
2215 return vec4 ((z0).x,(z0).y,(z0).z,z1);
2216 }
2140 void main() { 2217 void main() {
2141 gl_Position = (viewProj) * ((worldMat) * (vec4 2218 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0)));
2142 ((vi1).x,(vi1).y,(vi1).z,1.0)));
2143 vo1 = vi3; 2219 vo1 = vi3;
2144 vo2 = vec4 (identityLight,identityLight,identityLight,1.0); 2220 vo2 = vec4 (identityLight,identityLight,identityLight,1.0);
2145 } 2221 }
@@ -2194,9 +2270,11 @@ Pipeline
2194 in vec4 vi5; 2270 in vec4 vi5;
2195 smooth out vec2 vo1; 2271 smooth out vec2 vo1;
2196 smooth out vec4 vo2; 2272 smooth out vec4 vo2;
2273 vec4 snoc(vec3 z0,float z1) {
2274 return vec4 ((z0).x,(z0).y,(z0).z,z1);
2275 }
2197 void main() { 2276 void main() {
2198 gl_Position = (viewProj) * ((worldMat) * (vec4 2277 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0)));
2199 ((vi1).x,(vi1).y,(vi1).z,1.0)));
2200 vo1 = vi4; 2278 vo1 = vi4;
2201 vo2 = vec4 (identityLight,identityLight,identityLight,1.0); 2279 vo2 = vec4 (identityLight,identityLight,identityLight,1.0);
2202 } 2280 }
@@ -2252,9 +2330,11 @@ Pipeline
2252 in vec4 vi5; 2330 in vec4 vi5;
2253 smooth out vec2 vo1; 2331 smooth out vec2 vo1;
2254 smooth out vec4 vo2; 2332 smooth out vec4 vo2;
2333 vec4 snoc(vec3 z0,float z1) {
2334 return vec4 ((z0).x,(z0).y,(z0).z,z1);
2335 }
2255 void main() { 2336 void main() {
2256 gl_Position = (viewProj) * ((worldMat) * (vec4 2337 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0)));
2257 ((vi1).x,(vi1).y,(vi1).z,1.0)));
2258 vo1 = vi3; 2338 vo1 = vi3;
2259 vo2 = vec4 (identityLight,identityLight,identityLight,1.0); 2339 vo2 = vec4 (identityLight,identityLight,identityLight,1.0);
2260 } 2340 }
@@ -2309,9 +2389,11 @@ Pipeline
2309 in vec4 vi5; 2389 in vec4 vi5;
2310 smooth out vec2 vo1; 2390 smooth out vec2 vo1;
2311 smooth out vec4 vo2; 2391 smooth out vec4 vo2;
2392 vec4 snoc(vec3 z0,float z1) {
2393 return vec4 ((z0).x,(z0).y,(z0).z,z1);
2394 }
2312 void main() { 2395 void main() {
2313 gl_Position = (viewProj) * ((worldMat) * (vec4 2396 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0)));
2314 ((vi1).x,(vi1).y,(vi1).z,1.0)));
2315 vo1 = vi4; 2397 vo1 = vi4;
2316 vo2 = vec4 (identityLight,identityLight,identityLight,1.0); 2398 vo2 = vec4 (identityLight,identityLight,identityLight,1.0);
2317 } 2399 }
@@ -2367,9 +2449,11 @@ Pipeline
2367 in vec4 vi5; 2449 in vec4 vi5;
2368 smooth out vec2 vo1; 2450 smooth out vec2 vo1;
2369 smooth out vec4 vo2; 2451 smooth out vec4 vo2;
2452 vec4 snoc(vec3 z0,float z1) {
2453 return vec4 ((z0).x,(z0).y,(z0).z,z1);
2454 }
2370 void main() { 2455 void main() {
2371 gl_Position = (viewProj) * ((worldMat) * (vec4 2456 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0)));
2372 ((vi1).x,(vi1).y,(vi1).z,1.0)));
2373 vo1 = vi3; 2457 vo1 = vi3;
2374 vo2 = vec4 (identityLight,identityLight,identityLight,1.0); 2458 vo2 = vec4 (identityLight,identityLight,identityLight,1.0);
2375 } 2459 }
@@ -2424,9 +2508,11 @@ Pipeline
2424 in vec4 vi5; 2508 in vec4 vi5;
2425 smooth out vec2 vo1; 2509 smooth out vec2 vo1;
2426 smooth out vec4 vo2; 2510 smooth out vec4 vo2;
2511 vec4 snoc(vec3 z0,float z1) {
2512 return vec4 ((z0).x,(z0).y,(z0).z,z1);
2513 }
2427 void main() { 2514 void main() {
2428 gl_Position = (viewProj) * ((worldMat) * (vec4 2515 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0)));
2429 ((vi1).x,(vi1).y,(vi1).z,1.0)));
2430 vo1 = vi4; 2516 vo1 = vi4;
2431 vo2 = vec4 (identityLight,identityLight,identityLight,1.0); 2517 vo2 = vec4 (identityLight,identityLight,identityLight,1.0);
2432 } 2518 }
@@ -2482,9 +2568,11 @@ Pipeline
2482 in vec4 vi5; 2568 in vec4 vi5;
2483 smooth out vec2 vo1; 2569 smooth out vec2 vo1;
2484 smooth out vec4 vo2; 2570 smooth out vec4 vo2;
2571 vec4 snoc(vec3 z0,float z1) {
2572 return vec4 ((z0).x,(z0).y,(z0).z,z1);
2573 }
2485 void main() { 2574 void main() {
2486 gl_Position = (viewProj) * ((worldMat) * (vec4 2575 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0)));
2487 ((vi1).x,(vi1).y,(vi1).z,1.0)));
2488 vo1 = vi3; 2576 vo1 = vi3;
2489 vo2 = vec4 (identityLight,identityLight,identityLight,1.0); 2577 vo2 = vec4 (identityLight,identityLight,identityLight,1.0);
2490 } 2578 }
@@ -2539,9 +2627,11 @@ Pipeline
2539 in vec4 vi5; 2627 in vec4 vi5;
2540 smooth out vec2 vo1; 2628 smooth out vec2 vo1;
2541 smooth out vec4 vo2; 2629 smooth out vec4 vo2;
2630 vec4 snoc(vec3 z0,float z1) {
2631 return vec4 ((z0).x,(z0).y,(z0).z,z1);
2632 }
2542 void main() { 2633 void main() {
2543 gl_Position = (viewProj) * ((worldMat) * (vec4 2634 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0)));
2544 ((vi1).x,(vi1).y,(vi1).z,1.0)));
2545 vo1 = vi4; 2635 vo1 = vi4;
2546 vo2 = vec4 (identityLight,identityLight,identityLight,1.0); 2636 vo2 = vec4 (identityLight,identityLight,identityLight,1.0);
2547 } 2637 }
@@ -2597,9 +2687,11 @@ Pipeline
2597 in vec4 vi5; 2687 in vec4 vi5;
2598 smooth out vec2 vo1; 2688 smooth out vec2 vo1;
2599 smooth out vec4 vo2; 2689 smooth out vec4 vo2;
2690 vec4 snoc(vec3 z0,float z1) {
2691 return vec4 ((z0).x,(z0).y,(z0).z,z1);
2692 }
2600 void main() { 2693 void main() {
2601 gl_Position = (viewProj) * ((worldMat) * (vec4 2694 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0)));
2602 ((vi1).x,(vi1).y,(vi1).z,1.0)));
2603 vo1 = vi3; 2695 vo1 = vi3;
2604 vo2 = vec4 (identityLight,identityLight,identityLight,1.0); 2696 vo2 = vec4 (identityLight,identityLight,identityLight,1.0);
2605 } 2697 }
@@ -2654,9 +2746,11 @@ Pipeline
2654 in vec4 vi5; 2746 in vec4 vi5;
2655 smooth out vec2 vo1; 2747 smooth out vec2 vo1;
2656 smooth out vec4 vo2; 2748 smooth out vec4 vo2;
2749 vec4 snoc(vec3 z0,float z1) {
2750 return vec4 ((z0).x,(z0).y,(z0).z,z1);
2751 }
2657 void main() { 2752 void main() {
2658 gl_Position = (viewProj) * ((worldMat) * (vec4 2753 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0)));
2659 ((vi1).x,(vi1).y,(vi1).z,1.0)));
2660 vo1 = vi4; 2754 vo1 = vi4;
2661 vo2 = vec4 (identityLight,identityLight,identityLight,1.0); 2755 vo2 = vec4 (identityLight,identityLight,identityLight,1.0);
2662 } 2756 }
@@ -2711,9 +2805,11 @@ Pipeline
2711 in vec4 vi5; 2805 in vec4 vi5;
2712 smooth out vec2 vo1; 2806 smooth out vec2 vo1;
2713 smooth out vec4 vo2; 2807 smooth out vec4 vo2;
2808 vec4 snoc(vec3 z0,float z1) {
2809 return vec4 ((z0).x,(z0).y,(z0).z,z1);
2810 }
2714 void main() { 2811 void main() {
2715 gl_Position = (viewProj) * ((worldMat) * (vec4 2812 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0)));
2716 ((vi1).x,(vi1).y,(vi1).z,1.0)));
2717 vo1 = vi3; 2813 vo1 = vi3;
2718 vo2 = vec4 (identityLight,identityLight,identityLight,1.0); 2814 vo2 = vec4 (identityLight,identityLight,identityLight,1.0);
2719 } 2815 }
@@ -2768,9 +2864,11 @@ Pipeline
2768 in vec4 vi5; 2864 in vec4 vi5;
2769 smooth out vec2 vo1; 2865 smooth out vec2 vo1;
2770 smooth out vec4 vo2; 2866 smooth out vec4 vo2;
2867 vec4 snoc(vec3 z0,float z1) {
2868 return vec4 ((z0).x,(z0).y,(z0).z,z1);
2869 }
2771 void main() { 2870 void main() {
2772 gl_Position = (viewProj) * ((worldMat) * (vec4 2871 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0)));
2773 ((vi1).x,(vi1).y,(vi1).z,1.0)));
2774 vo1 = vi4; 2872 vo1 = vi4;
2775 vo2 = vec4 (identityLight,identityLight,identityLight,1.0); 2873 vo2 = vec4 (identityLight,identityLight,identityLight,1.0);
2776 } 2874 }
@@ -2826,9 +2924,11 @@ Pipeline
2826 in vec4 vi5; 2924 in vec4 vi5;
2827 smooth out vec2 vo1; 2925 smooth out vec2 vo1;
2828 smooth out vec4 vo2; 2926 smooth out vec4 vo2;
2927 vec4 snoc(vec3 z0,float z1) {
2928 return vec4 ((z0).x,(z0).y,(z0).z,z1);
2929 }
2829 void main() { 2930 void main() {
2830 gl_Position = (viewProj) * ((worldMat) * (vec4 2931 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0)));
2831 ((vi1).x,(vi1).y,(vi1).z,1.0)));
2832 vo1 = vi3; 2932 vo1 = vi3;
2833 vo2 = vec4 (identityLight,identityLight,identityLight,1.0); 2933 vo2 = vec4 (identityLight,identityLight,identityLight,1.0);
2834 } 2934 }
@@ -2883,9 +2983,11 @@ Pipeline
2883 in vec4 vi5; 2983 in vec4 vi5;
2884 smooth out vec2 vo1; 2984 smooth out vec2 vo1;
2885 smooth out vec4 vo2; 2985 smooth out vec4 vo2;
2986 vec4 snoc(vec3 z0,float z1) {
2987 return vec4 ((z0).x,(z0).y,(z0).z,z1);
2988 }
2886 void main() { 2989 void main() {
2887 gl_Position = (viewProj) * ((worldMat) * (vec4 2990 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0)));
2888 ((vi1).x,(vi1).y,(vi1).z,1.0)));
2889 vo1 = vi4; 2991 vo1 = vi4;
2890 vo2 = vec4 (identityLight,identityLight,identityLight,1.0); 2992 vo2 = vec4 (identityLight,identityLight,identityLight,1.0);
2891 } 2993 }
@@ -2941,9 +3043,11 @@ Pipeline
2941 in vec4 vi5; 3043 in vec4 vi5;
2942 smooth out vec2 vo1; 3044 smooth out vec2 vo1;
2943 smooth out vec4 vo2; 3045 smooth out vec4 vo2;
3046 vec4 snoc(vec3 z0,float z1) {
3047 return vec4 ((z0).x,(z0).y,(z0).z,z1);
3048 }
2944 void main() { 3049 void main() {
2945 gl_Position = (viewProj) * ((worldMat) * (vec4 3050 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0)));
2946 ((vi1).x,(vi1).y,(vi1).z,1.0)));
2947 vo1 = vi3; 3051 vo1 = vi3;
2948 vo2 = vec4 (identityLight,identityLight,identityLight,1.0); 3052 vo2 = vec4 (identityLight,identityLight,identityLight,1.0);
2949 } 3053 }
@@ -2998,9 +3102,11 @@ Pipeline
2998 in vec4 vi5; 3102 in vec4 vi5;
2999 smooth out vec2 vo1; 3103 smooth out vec2 vo1;
3000 smooth out vec4 vo2; 3104 smooth out vec4 vo2;
3105 vec4 snoc(vec3 z0,float z1) {
3106 return vec4 ((z0).x,(z0).y,(z0).z,z1);
3107 }
3001 void main() { 3108 void main() {
3002 gl_Position = (viewProj) * ((worldMat) * (vec4 3109 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0)));
3003 ((vi1).x,(vi1).y,(vi1).z,1.0)));
3004 vo1 = vi4; 3110 vo1 = vi4;
3005 vo2 = vec4 (identityLight,identityLight,identityLight,1.0); 3111 vo2 = vec4 (identityLight,identityLight,identityLight,1.0);
3006 } 3112 }
@@ -3056,9 +3162,11 @@ Pipeline
3056 in vec4 vi5; 3162 in vec4 vi5;
3057 smooth out vec2 vo1; 3163 smooth out vec2 vo1;
3058 smooth out vec4 vo2; 3164 smooth out vec4 vo2;
3165 vec4 snoc(vec3 z0,float z1) {
3166 return vec4 ((z0).x,(z0).y,(z0).z,z1);
3167 }
3059 void main() { 3168 void main() {
3060 gl_Position = (viewProj) * ((worldMat) * (vec4 3169 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0)));
3061 ((vi1).x,(vi1).y,(vi1).z,1.0)));
3062 vo1 = vi3; 3170 vo1 = vi3;
3063 vo2 = vec4 (identityLight,identityLight,identityLight,1.0); 3171 vo2 = vec4 (identityLight,identityLight,identityLight,1.0);
3064 } 3172 }
@@ -3113,9 +3221,11 @@ Pipeline
3113 in vec4 vi5; 3221 in vec4 vi5;
3114 smooth out vec2 vo1; 3222 smooth out vec2 vo1;
3115 smooth out vec4 vo2; 3223 smooth out vec4 vo2;
3224 vec4 snoc(vec3 z0,float z1) {
3225 return vec4 ((z0).x,(z0).y,(z0).z,z1);
3226 }
3116 void main() { 3227 void main() {
3117 gl_Position = (viewProj) * ((worldMat) * (vec4 3228 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0)));
3118 ((vi1).x,(vi1).y,(vi1).z,1.0)));
3119 vo1 = vi4; 3229 vo1 = vi4;
3120 vo2 = vec4 (identityLight,identityLight,identityLight,1.0); 3230 vo2 = vec4 (identityLight,identityLight,identityLight,1.0);
3121 } 3231 }
@@ -3171,9 +3281,11 @@ Pipeline
3171 in vec4 vi5; 3281 in vec4 vi5;
3172 smooth out vec2 vo1; 3282 smooth out vec2 vo1;
3173 smooth out vec4 vo2; 3283 smooth out vec4 vo2;
3284 vec4 snoc(vec3 z0,float z1) {
3285 return vec4 ((z0).x,(z0).y,(z0).z,z1);
3286 }
3174 void main() { 3287 void main() {
3175 gl_Position = (viewProj) * ((worldMat) * (vec4 3288 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0)));
3176 ((vi1).x,(vi1).y,(vi1).z,1.0)));
3177 vo1 = vi3; 3289 vo1 = vi3;
3178 vo2 = vec4 (identityLight,identityLight,identityLight,1.0); 3290 vo2 = vec4 (identityLight,identityLight,identityLight,1.0);
3179 } 3291 }
@@ -3228,9 +3340,11 @@ Pipeline
3228 in vec4 vi5; 3340 in vec4 vi5;
3229 smooth out vec2 vo1; 3341 smooth out vec2 vo1;
3230 smooth out vec4 vo2; 3342 smooth out vec4 vo2;
3343 vec4 snoc(vec3 z0,float z1) {
3344 return vec4 ((z0).x,(z0).y,(z0).z,z1);
3345 }
3231 void main() { 3346 void main() {
3232 gl_Position = (viewProj) * ((worldMat) * (vec4 3347 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0)));
3233 ((vi1).x,(vi1).y,(vi1).z,1.0)));
3234 vo1 = vi4; 3348 vo1 = vi4;
3235 vo2 = vec4 (identityLight,identityLight,identityLight,1.0); 3349 vo2 = vec4 (identityLight,identityLight,identityLight,1.0);
3236 } 3350 }
@@ -3286,9 +3400,11 @@ Pipeline
3286 in vec4 vi5; 3400 in vec4 vi5;
3287 smooth out vec2 vo1; 3401 smooth out vec2 vo1;
3288 smooth out vec4 vo2; 3402 smooth out vec4 vo2;
3403 vec4 snoc(vec3 z0,float z1) {
3404 return vec4 ((z0).x,(z0).y,(z0).z,z1);
3405 }
3289 void main() { 3406 void main() {
3290 gl_Position = (viewProj) * ((worldMat) * (vec4 3407 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0)));
3291 ((vi1).x,(vi1).y,(vi1).z,1.0)));
3292 vo1 = vi3; 3408 vo1 = vi3;
3293 vo2 = vec4 (identityLight,identityLight,identityLight,1.0); 3409 vo2 = vec4 (identityLight,identityLight,identityLight,1.0);
3294 } 3410 }
@@ -3343,9 +3459,11 @@ Pipeline
3343 in vec4 vi5; 3459 in vec4 vi5;
3344 smooth out vec2 vo1; 3460 smooth out vec2 vo1;
3345 smooth out vec4 vo2; 3461 smooth out vec4 vo2;
3462 vec4 snoc(vec3 z0,float z1) {
3463 return vec4 ((z0).x,(z0).y,(z0).z,z1);
3464 }
3346 void main() { 3465 void main() {
3347 gl_Position = (viewProj) * ((worldMat) * (vec4 3466 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0)));
3348 ((vi1).x,(vi1).y,(vi1).z,1.0)));
3349 vo1 = vi4; 3467 vo1 = vi4;
3350 vo2 = vec4 (identityLight,identityLight,identityLight,1.0); 3468 vo2 = vec4 (identityLight,identityLight,identityLight,1.0);
3351 } 3469 }
@@ -3401,9 +3519,11 @@ Pipeline
3401 in vec4 vi5; 3519 in vec4 vi5;
3402 smooth out vec2 vo1; 3520 smooth out vec2 vo1;
3403 smooth out vec4 vo2; 3521 smooth out vec4 vo2;
3522 vec4 snoc(vec3 z0,float z1) {
3523 return vec4 ((z0).x,(z0).y,(z0).z,z1);
3524 }
3404 void main() { 3525 void main() {
3405 gl_Position = (viewProj) * ((worldMat) * (vec4 3526 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0)));
3406 ((vi1).x,(vi1).y,(vi1).z,1.0)));
3407 vo1 = vi3; 3527 vo1 = vi3;
3408 vo2 = vec4 (identityLight,identityLight,identityLight,1.0); 3528 vo2 = vec4 (identityLight,identityLight,identityLight,1.0);
3409 } 3529 }
@@ -3458,9 +3578,11 @@ Pipeline
3458 in vec4 vi5; 3578 in vec4 vi5;
3459 smooth out vec2 vo1; 3579 smooth out vec2 vo1;
3460 smooth out vec4 vo2; 3580 smooth out vec4 vo2;
3581 vec4 snoc(vec3 z0,float z1) {
3582 return vec4 ((z0).x,(z0).y,(z0).z,z1);
3583 }
3461 void main() { 3584 void main() {
3462 gl_Position = (viewProj) * ((worldMat) * (vec4 3585 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0)));
3463 ((vi1).x,(vi1).y,(vi1).z,1.0)));
3464 vo1 = vi4; 3586 vo1 = vi4;
3465 vo2 = vec4 (identityLight,identityLight,identityLight,1.0); 3587 vo2 = vec4 (identityLight,identityLight,identityLight,1.0);
3466 } 3588 }
@@ -3516,9 +3638,11 @@ Pipeline
3516 in vec4 vi5; 3638 in vec4 vi5;
3517 smooth out vec2 vo1; 3639 smooth out vec2 vo1;
3518 smooth out vec4 vo2; 3640 smooth out vec4 vo2;
3641 vec4 snoc(vec3 z0,float z1) {
3642 return vec4 ((z0).x,(z0).y,(z0).z,z1);
3643 }
3519 void main() { 3644 void main() {
3520 gl_Position = (viewProj) * ((worldMat) * (vec4 3645 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0)));
3521 ((vi1).x,(vi1).y,(vi1).z,1.0)));
3522 vo1 = vi3; 3646 vo1 = vi3;
3523 vo2 = vec4 (identityLight,identityLight,identityLight,1.0); 3647 vo2 = vec4 (identityLight,identityLight,identityLight,1.0);
3524 } 3648 }
@@ -3573,9 +3697,11 @@ Pipeline
3573 in vec4 vi5; 3697 in vec4 vi5;
3574 smooth out vec2 vo1; 3698 smooth out vec2 vo1;
3575 smooth out vec4 vo2; 3699 smooth out vec4 vo2;
3700 vec4 snoc(vec3 z0,float z1) {
3701 return vec4 ((z0).x,(z0).y,(z0).z,z1);
3702 }
3576 void main() { 3703 void main() {
3577 gl_Position = (viewProj) * ((worldMat) * (vec4 3704 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0)));
3578 ((vi1).x,(vi1).y,(vi1).z,1.0)));
3579 vo1 = vi4; 3705 vo1 = vi4;
3580 vo2 = vec4 (identityLight,identityLight,identityLight,1.0); 3706 vo2 = vec4 (identityLight,identityLight,identityLight,1.0);
3581 } 3707 }
@@ -3631,9 +3757,11 @@ Pipeline
3631 in vec4 vi5; 3757 in vec4 vi5;
3632 smooth out vec2 vo1; 3758 smooth out vec2 vo1;
3633 smooth out vec4 vo2; 3759 smooth out vec4 vo2;
3760 vec4 snoc(vec3 z0,float z1) {
3761 return vec4 ((z0).x,(z0).y,(z0).z,z1);
3762 }
3634 void main() { 3763 void main() {
3635 gl_Position = (viewProj) * ((worldMat) * (vec4 3764 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0)));
3636 ((vi1).x,(vi1).y,(vi1).z,1.0)));
3637 vo1 = vi3; 3765 vo1 = vi3;
3638 vo2 = vec4 (identityLight,identityLight,identityLight,1.0); 3766 vo2 = vec4 (identityLight,identityLight,identityLight,1.0);
3639 } 3767 }
@@ -3688,9 +3816,11 @@ Pipeline
3688 in vec4 vi5; 3816 in vec4 vi5;
3689 smooth out vec2 vo1; 3817 smooth out vec2 vo1;
3690 smooth out vec4 vo2; 3818 smooth out vec4 vo2;
3819 vec4 snoc(vec3 z0,float z1) {
3820 return vec4 ((z0).x,(z0).y,(z0).z,z1);
3821 }
3691 void main() { 3822 void main() {
3692 gl_Position = (viewProj) * ((worldMat) * (vec4 3823 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0)));
3693 ((vi1).x,(vi1).y,(vi1).z,1.0)));
3694 vo1 = vi4; 3824 vo1 = vi4;
3695 vo2 = vec4 (identityLight,identityLight,identityLight,1.0); 3825 vo2 = vec4 (identityLight,identityLight,identityLight,1.0);
3696 } 3826 }
@@ -3746,9 +3876,11 @@ Pipeline
3746 in vec4 vi5; 3876 in vec4 vi5;
3747 smooth out vec2 vo1; 3877 smooth out vec2 vo1;
3748 smooth out vec4 vo2; 3878 smooth out vec4 vo2;
3879 vec4 snoc(vec3 z0,float z1) {
3880 return vec4 ((z0).x,(z0).y,(z0).z,z1);
3881 }
3749 void main() { 3882 void main() {
3750 gl_Position = (viewProj) * ((worldMat) * (vec4 3883 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0)));
3751 ((vi1).x,(vi1).y,(vi1).z,1.0)));
3752 vo1 = vi3; 3884 vo1 = vi3;
3753 vo2 = vec4 (identityLight,identityLight,identityLight,1.0); 3885 vo2 = vec4 (identityLight,identityLight,identityLight,1.0);
3754 } 3886 }
@@ -3803,9 +3935,11 @@ Pipeline
3803 in vec4 vi5; 3935 in vec4 vi5;
3804 smooth out vec2 vo1; 3936 smooth out vec2 vo1;
3805 smooth out vec4 vo2; 3937 smooth out vec4 vo2;
3938 vec4 snoc(vec3 z0,float z1) {
3939 return vec4 ((z0).x,(z0).y,(z0).z,z1);
3940 }
3806 void main() { 3941 void main() {
3807 gl_Position = (viewProj) * ((worldMat) * (vec4 3942 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0)));
3808 ((vi1).x,(vi1).y,(vi1).z,1.0)));
3809 vo1 = vi4; 3943 vo1 = vi4;
3810 vo2 = vec4 (identityLight,identityLight,identityLight,1.0); 3944 vo2 = vec4 (identityLight,identityLight,identityLight,1.0);
3811 } 3945 }
@@ -3861,9 +3995,11 @@ Pipeline
3861 in vec4 vi5; 3995 in vec4 vi5;
3862 smooth out vec2 vo1; 3996 smooth out vec2 vo1;
3863 smooth out vec4 vo2; 3997 smooth out vec4 vo2;
3998 vec4 snoc(vec3 z0,float z1) {
3999 return vec4 ((z0).x,(z0).y,(z0).z,z1);
4000 }
3864 void main() { 4001 void main() {
3865 gl_Position = (viewProj) * ((worldMat) * (vec4 4002 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0)));
3866 ((vi1).x,(vi1).y,(vi1).z,1.0)));
3867 vo1 = vi3; 4003 vo1 = vi3;
3868 vo2 = vec4 (identityLight,identityLight,identityLight,1.0); 4004 vo2 = vec4 (identityLight,identityLight,identityLight,1.0);
3869 } 4005 }
@@ -3918,9 +4054,11 @@ Pipeline
3918 in vec4 vi5; 4054 in vec4 vi5;
3919 smooth out vec2 vo1; 4055 smooth out vec2 vo1;
3920 smooth out vec4 vo2; 4056 smooth out vec4 vo2;
4057 vec4 snoc(vec3 z0,float z1) {
4058 return vec4 ((z0).x,(z0).y,(z0).z,z1);
4059 }
3921 void main() { 4060 void main() {
3922 gl_Position = (viewProj) * ((worldMat) * (vec4 4061 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0)));
3923 ((vi1).x,(vi1).y,(vi1).z,1.0)));
3924 vo1 = vi4; 4062 vo1 = vi4;
3925 vo2 = vec4 (identityLight,identityLight,identityLight,1.0); 4063 vo2 = vec4 (identityLight,identityLight,identityLight,1.0);
3926 } 4064 }
@@ -3976,9 +4114,11 @@ Pipeline
3976 in vec4 vi5; 4114 in vec4 vi5;
3977 smooth out vec2 vo1; 4115 smooth out vec2 vo1;
3978 smooth out vec4 vo2; 4116 smooth out vec4 vo2;
4117 vec4 snoc(vec3 z0,float z1) {
4118 return vec4 ((z0).x,(z0).y,(z0).z,z1);
4119 }
3979 void main() { 4120 void main() {
3980 gl_Position = (viewProj) * ((worldMat) * (vec4 4121 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0)));
3981 ((vi1).x,(vi1).y,(vi1).z,1.0)));
3982 vo1 = vi3; 4122 vo1 = vi3;
3983 vo2 = vec4 (identityLight,identityLight,identityLight,1.0); 4123 vo2 = vec4 (identityLight,identityLight,identityLight,1.0);
3984 } 4124 }
@@ -4033,9 +4173,11 @@ Pipeline
4033 in vec4 vi5; 4173 in vec4 vi5;
4034 smooth out vec2 vo1; 4174 smooth out vec2 vo1;
4035 smooth out vec4 vo2; 4175 smooth out vec4 vo2;
4176 vec4 snoc(vec3 z0,float z1) {
4177 return vec4 ((z0).x,(z0).y,(z0).z,z1);
4178 }
4036 void main() { 4179 void main() {
4037 gl_Position = (viewProj) * ((worldMat) * (vec4 4180 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0)));
4038 ((vi1).x,(vi1).y,(vi1).z,1.0)));
4039 vo1 = vi4; 4181 vo1 = vi4;
4040 vo2 = vec4 (identityLight,identityLight,identityLight,1.0); 4182 vo2 = vec4 (identityLight,identityLight,identityLight,1.0);
4041 } 4183 }
@@ -4091,9 +4233,11 @@ Pipeline
4091 in vec4 vi5; 4233 in vec4 vi5;
4092 smooth out vec2 vo1; 4234 smooth out vec2 vo1;
4093 smooth out vec4 vo2; 4235 smooth out vec4 vo2;
4236 vec4 snoc(vec3 z0,float z1) {
4237 return vec4 ((z0).x,(z0).y,(z0).z,z1);
4238 }
4094 void main() { 4239 void main() {
4095 gl_Position = (viewProj) * ((worldMat) * (vec4 4240 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0)));
4096 ((vi1).x,(vi1).y,(vi1).z,1.0)));
4097 vo1 = vi3; 4241 vo1 = vi3;
4098 vo2 = vec4 (identityLight,identityLight,identityLight,1.0); 4242 vo2 = vec4 (identityLight,identityLight,identityLight,1.0);
4099 } 4243 }
@@ -4148,9 +4292,11 @@ Pipeline
4148 in vec4 vi5; 4292 in vec4 vi5;
4149 smooth out vec2 vo1; 4293 smooth out vec2 vo1;
4150 smooth out vec4 vo2; 4294 smooth out vec4 vo2;
4295 vec4 snoc(vec3 z0,float z1) {
4296 return vec4 ((z0).x,(z0).y,(z0).z,z1);
4297 }
4151 void main() { 4298 void main() {
4152 gl_Position = (viewProj) * ((worldMat) * (vec4 4299 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0)));
4153 ((vi1).x,(vi1).y,(vi1).z,1.0)));
4154 vo1 = vi4; 4300 vo1 = vi4;
4155 vo2 = vec4 (identityLight,identityLight,identityLight,1.0); 4301 vo2 = vec4 (identityLight,identityLight,identityLight,1.0);
4156 } 4302 }
@@ -4206,9 +4352,11 @@ Pipeline
4206 in vec4 vi5; 4352 in vec4 vi5;
4207 smooth out vec2 vo1; 4353 smooth out vec2 vo1;
4208 smooth out vec4 vo2; 4354 smooth out vec4 vo2;
4355 vec4 snoc(vec3 z0,float z1) {
4356 return vec4 ((z0).x,(z0).y,(z0).z,z1);
4357 }
4209 void main() { 4358 void main() {
4210 gl_Position = (viewProj) * ((worldMat) * (vec4 4359 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0)));
4211 ((vi1).x,(vi1).y,(vi1).z,1.0)));
4212 vo1 = vi3; 4360 vo1 = vi3;
4213 vo2 = vec4 (identityLight,identityLight,identityLight,1.0); 4361 vo2 = vec4 (identityLight,identityLight,identityLight,1.0);
4214 } 4362 }
@@ -4263,9 +4411,11 @@ Pipeline
4263 in vec4 vi5; 4411 in vec4 vi5;
4264 smooth out vec2 vo1; 4412 smooth out vec2 vo1;
4265 smooth out vec4 vo2; 4413 smooth out vec4 vo2;
4414 vec4 snoc(vec3 z0,float z1) {
4415 return vec4 ((z0).x,(z0).y,(z0).z,z1);
4416 }
4266 void main() { 4417 void main() {
4267 gl_Position = (viewProj) * ((worldMat) * (vec4 4418 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0)));
4268 ((vi1).x,(vi1).y,(vi1).z,1.0)));
4269 vo1 = vi4; 4419 vo1 = vi4;
4270 vo2 = vec4 (identityLight,identityLight,identityLight,1.0); 4420 vo2 = vec4 (identityLight,identityLight,identityLight,1.0);
4271 } 4421 }
@@ -4321,9 +4471,11 @@ Pipeline
4321 in vec4 vi5; 4471 in vec4 vi5;
4322 smooth out vec2 vo1; 4472 smooth out vec2 vo1;
4323 smooth out vec4 vo2; 4473 smooth out vec4 vo2;
4474 vec4 snoc(vec3 z0,float z1) {
4475 return vec4 ((z0).x,(z0).y,(z0).z,z1);
4476 }
4324 void main() { 4477 void main() {
4325 gl_Position = (viewProj) * ((worldMat) * (vec4 4478 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0)));
4326 ((vi1).x,(vi1).y,(vi1).z,1.0)));
4327 vo1 = vi3; 4479 vo1 = vi3;
4328 vo2 = vec4 (identityLight,identityLight,identityLight,1.0); 4480 vo2 = vec4 (identityLight,identityLight,identityLight,1.0);
4329 } 4481 }
@@ -4378,9 +4530,11 @@ Pipeline
4378 in vec4 vi5; 4530 in vec4 vi5;
4379 smooth out vec2 vo1; 4531 smooth out vec2 vo1;
4380 smooth out vec4 vo2; 4532 smooth out vec4 vo2;
4533 vec4 snoc(vec3 z0,float z1) {
4534 return vec4 ((z0).x,(z0).y,(z0).z,z1);
4535 }
4381 void main() { 4536 void main() {
4382 gl_Position = (viewProj) * ((worldMat) * (vec4 4537 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0)));
4383 ((vi1).x,(vi1).y,(vi1).z,1.0)));
4384 vo1 = vi4; 4538 vo1 = vi4;
4385 vo2 = vec4 (identityLight,identityLight,identityLight,1.0); 4539 vo2 = vec4 (identityLight,identityLight,identityLight,1.0);
4386 } 4540 }
@@ -4436,9 +4590,11 @@ Pipeline
4436 in vec4 vi5; 4590 in vec4 vi5;
4437 smooth out vec2 vo1; 4591 smooth out vec2 vo1;
4438 smooth out vec4 vo2; 4592 smooth out vec4 vo2;
4593 vec4 snoc(vec3 z0,float z1) {
4594 return vec4 ((z0).x,(z0).y,(z0).z,z1);
4595 }
4439 void main() { 4596 void main() {
4440 gl_Position = (viewProj) * ((worldMat) * (vec4 4597 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0)));
4441 ((vi1).x,(vi1).y,(vi1).z,1.0)));
4442 vo1 = vi3; 4598 vo1 = vi3;
4443 vo2 = vec4 (identityLight,identityLight,identityLight,1.0); 4599 vo2 = vec4 (identityLight,identityLight,identityLight,1.0);
4444 } 4600 }
@@ -4493,9 +4649,11 @@ Pipeline
4493 in vec4 vi5; 4649 in vec4 vi5;
4494 smooth out vec2 vo1; 4650 smooth out vec2 vo1;
4495 smooth out vec4 vo2; 4651 smooth out vec4 vo2;
4652 vec4 snoc(vec3 z0,float z1) {
4653 return vec4 ((z0).x,(z0).y,(z0).z,z1);
4654 }
4496 void main() { 4655 void main() {
4497 gl_Position = (viewProj) * ((worldMat) * (vec4 4656 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0)));
4498 ((vi1).x,(vi1).y,(vi1).z,1.0)));
4499 vo1 = vi4; 4657 vo1 = vi4;
4500 vo2 = vec4 (identityLight,identityLight,identityLight,1.0); 4658 vo2 = vec4 (identityLight,identityLight,identityLight,1.0);
4501 } 4659 }
@@ -4550,9 +4708,11 @@ Pipeline
4550 in vec4 vi5; 4708 in vec4 vi5;
4551 smooth out vec2 vo1; 4709 smooth out vec2 vo1;
4552 smooth out vec4 vo2; 4710 smooth out vec4 vo2;
4711 vec4 snoc(vec3 z0,float z1) {
4712 return vec4 ((z0).x,(z0).y,(z0).z,z1);
4713 }
4553 void main() { 4714 void main() {
4554 gl_Position = (viewProj) * ((worldMat) * (vec4 4715 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0)));
4555 ((vi1).x,(vi1).y,(vi1).z,1.0)));
4556 vo1 = vi3; 4716 vo1 = vi3;
4557 vo2 = vec4 (identityLight,identityLight,identityLight,1.0); 4717 vo2 = vec4 (identityLight,identityLight,identityLight,1.0);
4558 } 4718 }
@@ -4607,9 +4767,11 @@ Pipeline
4607 in vec4 vi5; 4767 in vec4 vi5;
4608 smooth out vec2 vo1; 4768 smooth out vec2 vo1;
4609 smooth out vec4 vo2; 4769 smooth out vec4 vo2;
4770 vec4 snoc(vec3 z0,float z1) {
4771 return vec4 ((z0).x,(z0).y,(z0).z,z1);
4772 }
4610 void main() { 4773 void main() {
4611 gl_Position = (viewProj) * ((worldMat) * (vec4 4774 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0)));
4612 ((vi1).x,(vi1).y,(vi1).z,1.0)));
4613 vo1 = vi4; 4775 vo1 = vi4;
4614 vo2 = vec4 (identityLight,identityLight,identityLight,1.0); 4776 vo2 = vec4 (identityLight,identityLight,identityLight,1.0);
4615 } 4777 }
@@ -4665,9 +4827,11 @@ Pipeline
4665 in vec4 vi5; 4827 in vec4 vi5;
4666 smooth out vec2 vo1; 4828 smooth out vec2 vo1;
4667 smooth out vec4 vo2; 4829 smooth out vec4 vo2;
4830 vec4 snoc(vec3 z0,float z1) {
4831 return vec4 ((z0).x,(z0).y,(z0).z,z1);
4832 }
4668 void main() { 4833 void main() {
4669 gl_Position = (viewProj) * ((worldMat) * (vec4 4834 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0)));
4670 ((vi1).x,(vi1).y,(vi1).z,1.0)));
4671 vo1 = vi3; 4835 vo1 = vi3;
4672 vo2 = vec4 (identityLight,identityLight,identityLight,1.0); 4836 vo2 = vec4 (identityLight,identityLight,identityLight,1.0);
4673 } 4837 }
@@ -4722,9 +4886,11 @@ Pipeline
4722 in vec4 vi5; 4886 in vec4 vi5;
4723 smooth out vec2 vo1; 4887 smooth out vec2 vo1;
4724 smooth out vec4 vo2; 4888 smooth out vec4 vo2;
4889 vec4 snoc(vec3 z0,float z1) {
4890 return vec4 ((z0).x,(z0).y,(z0).z,z1);
4891 }
4725 void main() { 4892 void main() {
4726 gl_Position = (viewProj) * ((worldMat) * (vec4 4893 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0)));
4727 ((vi1).x,(vi1).y,(vi1).z,1.0)));
4728 vo1 = vi4; 4894 vo1 = vi4;
4729 vo2 = vec4 (identityLight,identityLight,identityLight,1.0); 4895 vo2 = vec4 (identityLight,identityLight,identityLight,1.0);
4730 } 4896 }
@@ -4780,9 +4946,11 @@ Pipeline
4780 in vec4 vi5; 4946 in vec4 vi5;
4781 smooth out vec2 vo1; 4947 smooth out vec2 vo1;
4782 smooth out vec4 vo2; 4948 smooth out vec4 vo2;
4949 vec4 snoc(vec3 z0,float z1) {
4950 return vec4 ((z0).x,(z0).y,(z0).z,z1);
4951 }
4783 void main() { 4952 void main() {
4784 gl_Position = (viewProj) * ((worldMat) * (vec4 4953 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0)));
4785 ((vi1).x,(vi1).y,(vi1).z,1.0)));
4786 vo1 = vi3; 4954 vo1 = vi3;
4787 vo2 = vec4 (identityLight,identityLight,identityLight,1.0); 4955 vo2 = vec4 (identityLight,identityLight,identityLight,1.0);
4788 } 4956 }
@@ -4837,9 +5005,11 @@ Pipeline
4837 in vec4 vi5; 5005 in vec4 vi5;
4838 smooth out vec2 vo1; 5006 smooth out vec2 vo1;
4839 smooth out vec4 vo2; 5007 smooth out vec4 vo2;
5008 vec4 snoc(vec3 z0,float z1) {
5009 return vec4 ((z0).x,(z0).y,(z0).z,z1);
5010 }
4840 void main() { 5011 void main() {
4841 gl_Position = (viewProj) * ((worldMat) * (vec4 5012 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0)));
4842 ((vi1).x,(vi1).y,(vi1).z,1.0)));
4843 vo1 = vi4; 5013 vo1 = vi4;
4844 vo2 = vec4 (identityLight,identityLight,identityLight,1.0); 5014 vo2 = vec4 (identityLight,identityLight,identityLight,1.0);
4845 } 5015 }
@@ -4895,9 +5065,11 @@ Pipeline
4895 in vec4 vi5; 5065 in vec4 vi5;
4896 smooth out vec2 vo1; 5066 smooth out vec2 vo1;
4897 smooth out vec4 vo2; 5067 smooth out vec4 vo2;
5068 vec4 snoc(vec3 z0,float z1) {
5069 return vec4 ((z0).x,(z0).y,(z0).z,z1);
5070 }
4898 void main() { 5071 void main() {
4899 gl_Position = (viewProj) * ((worldMat) * (vec4 5072 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0)));
4900 ((vi1).x,(vi1).y,(vi1).z,1.0)));
4901 vo1 = vi3; 5073 vo1 = vi3;
4902 vo2 = vec4 (identityLight,identityLight,identityLight,1.0); 5074 vo2 = vec4 (identityLight,identityLight,identityLight,1.0);
4903 } 5075 }
@@ -4952,9 +5124,11 @@ Pipeline
4952 in vec4 vi5; 5124 in vec4 vi5;
4953 smooth out vec2 vo1; 5125 smooth out vec2 vo1;
4954 smooth out vec4 vo2; 5126 smooth out vec4 vo2;
5127 vec4 snoc(vec3 z0,float z1) {
5128 return vec4 ((z0).x,(z0).y,(z0).z,z1);
5129 }
4955 void main() { 5130 void main() {
4956 gl_Position = (viewProj) * ((worldMat) * (vec4 5131 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0)));
4957 ((vi1).x,(vi1).y,(vi1).z,1.0)));
4958 vo1 = vi4; 5132 vo1 = vi4;
4959 vo2 = vec4 (identityLight,identityLight,identityLight,1.0); 5133 vo2 = vec4 (identityLight,identityLight,identityLight,1.0);
4960 } 5134 }
@@ -5010,9 +5184,11 @@ Pipeline
5010 in vec4 vi5; 5184 in vec4 vi5;
5011 smooth out vec2 vo1; 5185 smooth out vec2 vo1;
5012 smooth out vec4 vo2; 5186 smooth out vec4 vo2;
5187 vec4 snoc(vec3 z0,float z1) {
5188 return vec4 ((z0).x,(z0).y,(z0).z,z1);
5189 }
5013 void main() { 5190 void main() {
5014 gl_Position = (viewProj) * ((worldMat) * (vec4 5191 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0)));
5015 ((vi1).x,(vi1).y,(vi1).z,1.0)));
5016 vo1 = vi3; 5192 vo1 = vi3;
5017 vo2 = vec4 (identityLight,identityLight,identityLight,1.0); 5193 vo2 = vec4 (identityLight,identityLight,identityLight,1.0);
5018 } 5194 }
@@ -5067,9 +5243,11 @@ Pipeline
5067 in vec4 vi5; 5243 in vec4 vi5;
5068 smooth out vec2 vo1; 5244 smooth out vec2 vo1;
5069 smooth out vec4 vo2; 5245 smooth out vec4 vo2;
5246 vec4 snoc(vec3 z0,float z1) {
5247 return vec4 ((z0).x,(z0).y,(z0).z,z1);
5248 }
5070 void main() { 5249 void main() {
5071 gl_Position = (viewProj) * ((worldMat) * (vec4 5250 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0)));
5072 ((vi1).x,(vi1).y,(vi1).z,1.0)));
5073 vo1 = vi4; 5251 vo1 = vi4;
5074 vo2 = vec4 (identityLight,identityLight,identityLight,1.0); 5252 vo2 = vec4 (identityLight,identityLight,identityLight,1.0);
5075 } 5253 }
@@ -5125,9 +5303,11 @@ Pipeline
5125 in vec4 vi5; 5303 in vec4 vi5;
5126 smooth out vec2 vo1; 5304 smooth out vec2 vo1;
5127 smooth out vec4 vo2; 5305 smooth out vec4 vo2;
5306 vec4 snoc(vec3 z0,float z1) {
5307 return vec4 ((z0).x,(z0).y,(z0).z,z1);
5308 }
5128 void main() { 5309 void main() {
5129 gl_Position = (viewProj) * ((worldMat) * (vec4 5310 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0)));
5130 ((vi1).x,(vi1).y,(vi1).z,1.0)));
5131 vo1 = vi3; 5311 vo1 = vi3;
5132 vo2 = vec4 (identityLight,identityLight,identityLight,1.0); 5312 vo2 = vec4 (identityLight,identityLight,identityLight,1.0);
5133 } 5313 }
@@ -5182,9 +5362,11 @@ Pipeline
5182 in vec4 vi5; 5362 in vec4 vi5;
5183 smooth out vec2 vo1; 5363 smooth out vec2 vo1;
5184 smooth out vec4 vo2; 5364 smooth out vec4 vo2;
5365 vec4 snoc(vec3 z0,float z1) {
5366 return vec4 ((z0).x,(z0).y,(z0).z,z1);
5367 }
5185 void main() { 5368 void main() {
5186 gl_Position = (viewProj) * ((worldMat) * (vec4 5369 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0)));
5187 ((vi1).x,(vi1).y,(vi1).z,1.0)));
5188 vo1 = vi4; 5370 vo1 = vi4;
5189 vo2 = vec4 (identityLight,identityLight,identityLight,1.0); 5371 vo2 = vec4 (identityLight,identityLight,identityLight,1.0);
5190 } 5372 }
@@ -5240,9 +5422,11 @@ Pipeline
5240 in vec4 vi5; 5422 in vec4 vi5;
5241 smooth out vec2 vo1; 5423 smooth out vec2 vo1;
5242 smooth out vec4 vo2; 5424 smooth out vec4 vo2;
5425 vec4 snoc(vec3 z0,float z1) {
5426 return vec4 ((z0).x,(z0).y,(z0).z,z1);
5427 }
5243 void main() { 5428 void main() {
5244 gl_Position = (viewProj) * ((worldMat) * (vec4 5429 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0)));
5245 ((vi1).x,(vi1).y,(vi1).z,1.0)));
5246 vo1 = vi3; 5430 vo1 = vi3;
5247 vo2 = vec4 (identityLight,identityLight,identityLight,1.0); 5431 vo2 = vec4 (identityLight,identityLight,identityLight,1.0);
5248 } 5432 }
@@ -5297,9 +5481,11 @@ Pipeline
5297 in vec4 vi5; 5481 in vec4 vi5;
5298 smooth out vec2 vo1; 5482 smooth out vec2 vo1;
5299 smooth out vec4 vo2; 5483 smooth out vec4 vo2;
5484 vec4 snoc(vec3 z0,float z1) {
5485 return vec4 ((z0).x,(z0).y,(z0).z,z1);
5486 }
5300 void main() { 5487 void main() {
5301 gl_Position = (viewProj) * ((worldMat) * (vec4 5488 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0)));
5302 ((vi1).x,(vi1).y,(vi1).z,1.0)));
5303 vo1 = vi4; 5489 vo1 = vi4;
5304 vo2 = vec4 (identityLight,identityLight,identityLight,1.0); 5490 vo2 = vec4 (identityLight,identityLight,identityLight,1.0);
5305 } 5491 }
@@ -5355,9 +5541,11 @@ Pipeline
5355 in vec4 vi5; 5541 in vec4 vi5;
5356 smooth out vec2 vo1; 5542 smooth out vec2 vo1;
5357 smooth out vec4 vo2; 5543 smooth out vec4 vo2;
5544 vec4 snoc(vec3 z0,float z1) {
5545 return vec4 ((z0).x,(z0).y,(z0).z,z1);
5546 }
5358 void main() { 5547 void main() {
5359 gl_Position = (viewProj) * ((worldMat) * (vec4 5548 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0)));
5360 ((vi1).x,(vi1).y,(vi1).z,1.0)));
5361 vo1 = vi3; 5549 vo1 = vi3;
5362 vo2 = vec4 (identityLight,identityLight,identityLight,1.0); 5550 vo2 = vec4 (identityLight,identityLight,identityLight,1.0);
5363 } 5551 }
@@ -5412,9 +5600,11 @@ Pipeline
5412 in vec4 vi5; 5600 in vec4 vi5;
5413 smooth out vec2 vo1; 5601 smooth out vec2 vo1;
5414 smooth out vec4 vo2; 5602 smooth out vec4 vo2;
5603 vec4 snoc(vec3 z0,float z1) {
5604 return vec4 ((z0).x,(z0).y,(z0).z,z1);
5605 }
5415 void main() { 5606 void main() {
5416 gl_Position = (viewProj) * ((worldMat) * (vec4 5607 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0)));
5417 ((vi1).x,(vi1).y,(vi1).z,1.0)));
5418 vo1 = vi4; 5608 vo1 = vi4;
5419 vo2 = vec4 (identityLight,identityLight,identityLight,1.0); 5609 vo2 = vec4 (identityLight,identityLight,identityLight,1.0);
5420 } 5610 }
@@ -5470,9 +5660,11 @@ Pipeline
5470 in vec4 vi5; 5660 in vec4 vi5;
5471 smooth out vec2 vo1; 5661 smooth out vec2 vo1;
5472 smooth out vec4 vo2; 5662 smooth out vec4 vo2;
5663 vec4 snoc(vec3 z0,float z1) {
5664 return vec4 ((z0).x,(z0).y,(z0).z,z1);
5665 }
5473 void main() { 5666 void main() {
5474 gl_Position = (viewProj) * ((worldMat) * (vec4 5667 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0)));
5475 ((vi1).x,(vi1).y,(vi1).z,1.0)));
5476 vo1 = vi3; 5668 vo1 = vi3;
5477 vo2 = vec4 (identityLight,identityLight,identityLight,1.0); 5669 vo2 = vec4 (identityLight,identityLight,identityLight,1.0);
5478 } 5670 }
@@ -5527,9 +5719,11 @@ Pipeline
5527 in vec4 vi5; 5719 in vec4 vi5;
5528 smooth out vec2 vo1; 5720 smooth out vec2 vo1;
5529 smooth out vec4 vo2; 5721 smooth out vec4 vo2;
5722 vec4 snoc(vec3 z0,float z1) {
5723 return vec4 ((z0).x,(z0).y,(z0).z,z1);
5724 }
5530 void main() { 5725 void main() {
5531 gl_Position = (viewProj) * ((worldMat) * (vec4 5726 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0)));
5532 ((vi1).x,(vi1).y,(vi1).z,1.0)));
5533 vo1 = vi4; 5727 vo1 = vi4;
5534 vo2 = vec4 (identityLight,identityLight,identityLight,1.0); 5728 vo2 = vec4 (identityLight,identityLight,identityLight,1.0);
5535 } 5729 }
@@ -5585,9 +5779,11 @@ Pipeline
5585 in vec4 vi5; 5779 in vec4 vi5;
5586 smooth out vec2 vo1; 5780 smooth out vec2 vo1;
5587 smooth out vec4 vo2; 5781 smooth out vec4 vo2;
5782 vec4 snoc(vec3 z0,float z1) {
5783 return vec4 ((z0).x,(z0).y,(z0).z,z1);
5784 }
5588 void main() { 5785 void main() {
5589 gl_Position = (viewProj) * ((worldMat) * (vec4 5786 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0)));
5590 ((vi1).x,(vi1).y,(vi1).z,1.0)));
5591 vo1 = vi3; 5787 vo1 = vi3;
5592 vo2 = vec4 (identityLight,identityLight,identityLight,1.0); 5788 vo2 = vec4 (identityLight,identityLight,identityLight,1.0);
5593 } 5789 }
@@ -5642,9 +5838,11 @@ Pipeline
5642 in vec4 vi5; 5838 in vec4 vi5;
5643 smooth out vec2 vo1; 5839 smooth out vec2 vo1;
5644 smooth out vec4 vo2; 5840 smooth out vec4 vo2;
5841 vec4 snoc(vec3 z0,float z1) {
5842 return vec4 ((z0).x,(z0).y,(z0).z,z1);
5843 }
5645 void main() { 5844 void main() {
5646 gl_Position = (viewProj) * ((worldMat) * (vec4 5845 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0)));
5647 ((vi1).x,(vi1).y,(vi1).z,1.0)));
5648 vo1 = vi4; 5846 vo1 = vi4;
5649 vo2 = vec4 (identityLight,identityLight,identityLight,1.0); 5847 vo2 = vec4 (identityLight,identityLight,identityLight,1.0);
5650 } 5848 }
@@ -5700,9 +5898,11 @@ Pipeline
5700 in vec4 vi5; 5898 in vec4 vi5;
5701 smooth out vec2 vo1; 5899 smooth out vec2 vo1;
5702 smooth out vec4 vo2; 5900 smooth out vec4 vo2;
5901 vec4 snoc(vec3 z0,float z1) {
5902 return vec4 ((z0).x,(z0).y,(z0).z,z1);
5903 }
5703 void main() { 5904 void main() {
5704 gl_Position = (viewProj) * ((worldMat) * (vec4 5905 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0)));
5705 ((vi1).x,(vi1).y,(vi1).z,1.0)));
5706 vo1 = vi3; 5906 vo1 = vi3;
5707 vo2 = vec4 (identityLight,identityLight,identityLight,1.0); 5907 vo2 = vec4 (identityLight,identityLight,identityLight,1.0);
5708 } 5908 }
@@ -5757,9 +5957,11 @@ Pipeline
5757 in vec4 vi5; 5957 in vec4 vi5;
5758 smooth out vec2 vo1; 5958 smooth out vec2 vo1;
5759 smooth out vec4 vo2; 5959 smooth out vec4 vo2;
5960 vec4 snoc(vec3 z0,float z1) {
5961 return vec4 ((z0).x,(z0).y,(z0).z,z1);
5962 }
5760 void main() { 5963 void main() {
5761 gl_Position = (viewProj) * ((worldMat) * (vec4 5964 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0)));
5762 ((vi1).x,(vi1).y,(vi1).z,1.0)));
5763 vo1 = vi4; 5965 vo1 = vi4;
5764 vo2 = vec4 (identityLight,identityLight,identityLight,1.0); 5966 vo2 = vec4 (identityLight,identityLight,identityLight,1.0);
5765 } 5967 }
@@ -5815,9 +6017,11 @@ Pipeline
5815 in vec4 vi5; 6017 in vec4 vi5;
5816 smooth out vec2 vo1; 6018 smooth out vec2 vo1;
5817 smooth out vec4 vo2; 6019 smooth out vec4 vo2;
6020 vec4 snoc(vec3 z0,float z1) {
6021 return vec4 ((z0).x,(z0).y,(z0).z,z1);
6022 }
5818 void main() { 6023 void main() {
5819 gl_Position = (viewProj) * ((worldMat) * (vec4 6024 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0)));
5820 ((vi1).x,(vi1).y,(vi1).z,1.0)));
5821 vo1 = vi3; 6025 vo1 = vi3;
5822 vo2 = vec4 (identityLight,identityLight,identityLight,1.0); 6026 vo2 = vec4 (identityLight,identityLight,identityLight,1.0);
5823 } 6027 }
@@ -5872,9 +6076,11 @@ Pipeline
5872 in vec4 vi5; 6076 in vec4 vi5;
5873 smooth out vec2 vo1; 6077 smooth out vec2 vo1;
5874 smooth out vec4 vo2; 6078 smooth out vec4 vo2;
6079 vec4 snoc(vec3 z0,float z1) {
6080 return vec4 ((z0).x,(z0).y,(z0).z,z1);
6081 }
5875 void main() { 6082 void main() {
5876 gl_Position = (viewProj) * ((worldMat) * (vec4 6083 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0)));
5877 ((vi1).x,(vi1).y,(vi1).z,1.0)));
5878 vo1 = vi4; 6084 vo1 = vi4;
5879 vo2 = vec4 (identityLight,identityLight,identityLight,1.0); 6085 vo2 = vec4 (identityLight,identityLight,identityLight,1.0);
5880 } 6086 }
@@ -5930,9 +6136,11 @@ Pipeline
5930 in vec4 vi5; 6136 in vec4 vi5;
5931 smooth out vec2 vo1; 6137 smooth out vec2 vo1;
5932 smooth out vec4 vo2; 6138 smooth out vec4 vo2;
6139 vec4 snoc(vec3 z0,float z1) {
6140 return vec4 ((z0).x,(z0).y,(z0).z,z1);
6141 }
5933 void main() { 6142 void main() {
5934 gl_Position = (viewProj) * ((worldMat) * (vec4 6143 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0)));
5935 ((vi1).x,(vi1).y,(vi1).z,1.0)));
5936 vo1 = vi3; 6144 vo1 = vi3;
5937 vo2 = vec4 (identityLight,identityLight,identityLight,1.0); 6145 vo2 = vec4 (identityLight,identityLight,identityLight,1.0);
5938 } 6146 }
diff --git a/testdata/hlist.ignore/Builtins.lc b/testdata/HList/Builtins.lc
index 190bc6eb..a1d5c291 100644
--- a/testdata/hlist.ignore/Builtins.lc
+++ b/testdata/HList/Builtins.lc
@@ -1,11 +1,11 @@
1{-# LANGUAGE NoImplicitPrelude #-} 1{-# LANGUAGE NoImplicitPrelude #-}
2 2
3module Builtins 3module HList.Builtins
4 ( module Internals 4 ( module HList.Internals
5 , module Builtins 5 , module HList.Builtins
6 ) where 6 ) where
7 7
8import Internals 8import HList.Internals
9 9
10id x = x 10id x = x
11 11
@@ -54,14 +54,10 @@ type family MatVecScalarElem a where
54 54
55data Swizz = Sx | Sy | Sz | Sw 55data Swizz = Sx | Sy | Sz | Sw
56 56
57-- todo: use pattern matching 57mapVec :: (a -> b) -> VecS a n -> VecS b n
58mapVec :: forall a b m . (a -> b) -> Vec m a -> Vec m b 58mapVec f (V2 x y) = V2 (f x) (f y)
59mapVec @a @b @m f v = 'VecSCase (\m _ -> 'Vec m b) 59mapVec f (V3 x y z) = V3 (f x) (f y) (f z)
60 (\x y -> V2 (f x) (f y)) 60mapVec f (V4 x y z w) = V4 (f x) (f y) (f z) (f w)
61 (\x y z -> V3 (f x) (f y) (f z))
62 (\x y z w -> V4 (f x) (f y) (f z) (f w))
63 @m
64 v
65 61
66-- todo: make it more type safe 62-- todo: make it more type safe
67swizzscalar :: forall n . Vec n a -> Swizz -> a 63swizzscalar :: forall n . Vec n a -> Swizz -> a
@@ -413,9 +409,9 @@ type family SameLayerCounts a where
413-} 409-}
414 410
415{- 411{-
416class DefaultFragOp a where defaultFragOp :: FragmentOperation a 412defaultFragOp :: forall (a :: ImageSemantics) -> FragmentOperation a
417instance DefaultFragOp (Color (VecS Float 4)) where defaultFragOp = ColorOp NoBlending (V4 True True True True) 413defaultFragOp (Color '(VecS Float 4)) = ColorOp NoBlending (V4 True True True True)
418instance DefaultFragOp (Depth Float) where defaultFragOp = DepthOp Less True 414defaultFragOp (Depth 'Float) = DepthOp Less True
419 415
420class DefaultFragOps a where defaultFragOps :: a 416class DefaultFragOps a where defaultFragOps :: a
421instance (DefaultFragOp a, DefaultFragOp b) => DefaultFragOps (FragmentOperation a, FragmentOperation b) where 417instance (DefaultFragOp a, DefaultFragOp b) => DefaultFragOps (FragmentOperation a, FragmentOperation b) where
diff --git a/testdata/hlist.ignore/Internals.lc b/testdata/HList/Internals.lc
index 245a29d3..f1a40e78 100644
--- a/testdata/hlist.ignore/Internals.lc
+++ b/testdata/HList/Internals.lc
@@ -1,6 +1,6 @@
1{-# LANGUAGE NoImplicitPrelude #-} 1{-# LANGUAGE NoImplicitPrelude #-}
2-- declarations of builtin functions and data types used by the compiler 2-- declarations of builtin functions and data types used by the compiler
3module Internals where 3module HList.Internals where
4 4
5-- used for type annotations 5-- used for type annotations
6typeAnn x = x 6typeAnn x = x
@@ -140,13 +140,5 @@ data Tuple5 a b c d e = Tuple5 a b c d e
140--type instance EqCT Type = \'Type 'Type -> 'Unit 140--type instance EqCT Type = \'Type 'Type -> 'Unit
141--type instance EqCT Type = \'(a, b) '(JoinTupleType a' b') -> '(T2 (EqCT Type a a') (EqCT Type b b')) 141--type instance EqCT Type = \'(a, b) '(JoinTupleType a' b') -> '(T2 (EqCT Type a a') (EqCT Type b b'))
142 142
143type family JoinTupleType t1 t2 where
144 -- TODO
145 JoinTupleType a () = a
146 JoinTupleType a (b, c) = (a, b, c)
147 JoinTupleType a (b, c, d) = (a, b, c, d)
148 JoinTupleType a (b, c, d, e) = (a, b, c, d, e)
149 JoinTupleType a b = (a, b)
150
151joinTupleType = HCons 143joinTupleType = HCons
152 144
diff --git a/testdata/hlist.ignore/Prelude.lc b/testdata/HList/Prelude.lc
index 69ba3348..abda14a0 100644
--- a/testdata/hlist.ignore/Prelude.lc
+++ b/testdata/HList/Prelude.lc
@@ -1,10 +1,10 @@
1{-# LANGUAGE NoImplicitPrelude #-} 1{-# LANGUAGE NoImplicitPrelude #-}
2module Prelude 2module HList.Prelude
3 ( module Prelude 3 ( module HList.Prelude
4 , module Builtins 4 , module HList.Builtins
5 ) where 5 ) where
6 6
7import Builtins 7import HList.Builtins
8 8
9infixr 9 . 9infixr 9 .
10infixl 7 `PrimMulMatVec`, `PrimDot` 10infixl 7 `PrimMulMatVec`, `PrimDot`
diff --git a/testdata/HyperbolicParaboloic.out b/testdata/HyperbolicParaboloic.out
index 3697902a..28548feb 100644
--- a/testdata/HyperbolicParaboloic.out
+++ b/testdata/HyperbolicParaboloic.out
@@ -32,13 +32,21 @@ Pipeline
32 uniform vec2 Mouse; 32 uniform vec2 Mouse;
33 in vec3 vi1; 33 in vec3 vi1;
34 smooth out vec4 vo1; 34 smooth out vec4 vo1;
35 vec2 m = Mouse;
36 vec4 scale(float z0,vec4 z1) {
37 return (z1) * (vec4 (z0,z0,z0,1.0));
38 }
39 vec4 v3FToV4F(vec3 z0) {
40 return vec4 ((z0).x,(z0).y,(z0).z,1.0);
41 }
35 void main() { 42 void main() {
36 gl_Position = ((MVP) * (vec4 43 gl_Position = scale
37 (((Mouse).y) * ((vi1).x) 44 (0.1
38 ,(((0.5) * ((Mouse).x)) * ((vi1).x)) * ((vi1).y) 45 ,(MVP) * (vec4 (((m).y) * ((vi1).x)
39 ,((Mouse).y) * ((vi1).y) 46 ,(((0.5) * ((m).x)) * ((vi1).x)) * ((vi1).y)
40 ,1.0))) * (vec4 (0.1,0.1,0.1,1.0)); 47 ,((m).y) * ((vi1).y)
41 vo1 = vec4 ((vi1).x,(vi1).y,(vi1).z,1.0); 48 ,1.0)));
49 vo1 = v3FToV4F (vi1);
42 } 50 }
43 """ 51 """
44 , geometryShader = Nothing 52 , geometryShader = Nothing
diff --git a/testdata/Hyperboloid.out b/testdata/Hyperboloid.out
index ec08e25e..3eea868f 100644
--- a/testdata/Hyperboloid.out
+++ b/testdata/Hyperboloid.out
@@ -32,15 +32,23 @@ Pipeline
32 uniform vec2 Mouse; 32 uniform vec2 Mouse;
33 in vec3 vi1; 33 in vec3 vi1;
34 smooth out vec4 vo1; 34 smooth out vec4 vo1;
35 vec2 m = Mouse;
36 vec4 scale(float z0,vec4 z1) {
37 return (z1) * (vec4 (z0,z0,z0,1.0));
38 }
39 vec4 v3FToV4F(vec3 z0) {
40 return vec4 ((z0).x,(z0).y,(z0).z,1.0);
41 }
35 void main() { 42 void main() {
36 gl_Position = ((MVP) * (vec4 43 gl_Position = scale
37 (((2.0) * ((Mouse).y)) * (sin 44 (0.1
38 (((0.7) * ((vi1).x)) + (((Mouse).x) * ((vi1).y)))) 45 ,(MVP) * (vec4 (((2.0) * ((m).y)) * (sin
39 ,(vi1).y 46 (((0.7) * ((vi1).x)) + (((m).x) * ((vi1).y))))
40 ,((2.0) * ((Mouse).y)) * (cos 47 ,(vi1).y
41 (((0.7) * ((vi1).x)) + (((Mouse).x) * ((vi1).y)))) 48 ,((2.0) * ((m).y)) * (cos
42 ,1.0))) * (vec4 (0.1,0.1,0.1,1.0)); 49 (((0.7) * ((vi1).x)) + (((m).x) * ((vi1).y))))
43 vo1 = vec4 ((vi1).x,(vi1).y,(vi1).z,1.0); 50 ,1.0)));
51 vo1 = v3FToV4F (vi1);
44 } 52 }
45 """ 53 """
46 , geometryShader = Nothing 54 , geometryShader = Nothing
diff --git a/testdata/Internals.out b/testdata/Internals.out
index 6ee539b7..24ef594c 100644
--- a/testdata/Internals.out
+++ b/testdata/Internals.out
@@ -404,8 +404,8 @@ testdata/Internals.lc 120:14-121:25 Int->V2 -> Int->V3
404testdata/Internals.lc 120:14-122:22 (V1 -> V2->Ordering) -> V2 -> V3->Ordering 404testdata/Internals.lc 120:14-122:22 (V1 -> V2->Ordering) -> V2 -> V3->Ordering
405testdata/Internals.lc 120:14-123:22 V1->V2 -> V2->V3 405testdata/Internals.lc 120:14-123:22 V1->V2 -> V2->V3
406testdata/Internals.lc 121:13-121:25 Int->Nat 406testdata/Internals.lc 121:13-121:25 Int->Nat
407testdata/Internals.lc 122:13-122:22 Nat -> Nat->Ordering 407testdata/Internals.lc 122:13-122:22 {a}->a
408testdata/Internals.lc 123:13-123:22 Nat->Nat 408testdata/Internals.lc 123:13-123:22 {a}->a
409testdata/Internals.lc 125:7-125:9 Type->Type 409testdata/Internals.lc 125:7-125:9 Type->Type
410testdata/Internals.lc 125:7-126:27 Type 410testdata/Internals.lc 125:7-126:27 Type
411testdata/Internals.lc 125:7-141:29 V0->V1 | {a} -> {b : Eq a} -> a -> a->Bool 411testdata/Internals.lc 125:7-141:29 V0->V1 | {a} -> {b : Eq a} -> a -> a->Bool
diff --git a/testdata/NewStyle.out b/testdata/NewStyle.out
index 34940a54..d9ceac58 100644
--- a/testdata/NewStyle.out
+++ b/testdata/NewStyle.out
@@ -30,8 +30,11 @@ Pipeline
30 uniform mat4 MVP; 30 uniform mat4 MVP;
31 in vec4 vi1; 31 in vec4 vi1;
32 smooth out vec4 vo1; 32 smooth out vec4 vo1;
33 vec4 scale(float z0,vec4 z1) {
34 return (z1) * (vec4 (z0,z0,z0,1.0));
35 }
33 void main() { 36 void main() {
34 gl_Position = ((MVP) * (vi1)) * (vec4 (0.5,0.5,0.5,1.0)); 37 gl_Position = scale (0.5,(MVP) * (vi1));
35 vo1 = vi1; 38 vo1 = vi1;
36 } 39 }
37 """ 40 """
diff --git a/testdata/PrimReduce.out b/testdata/PrimReduce.out
index e984694d..cb9c7767 100644
--- a/testdata/PrimReduce.out
+++ b/testdata/PrimReduce.out
@@ -26,12 +26,17 @@ Pipeline
26 return texture(s,uv); 26 return texture(s,uv);
27 } 27 }
28 in vec4 vi1; 28 in vec4 vi1;
29 vec4 rotate(float z0,vec4 z1) {
30 return (mat4 (vec4 (cos (z0),(0.0) - (sin (z0)),0.0,0.0)
31 ,vec4 (sin (z0),cos (z0),0.0,0.0)
32 ,vec4 (0.0,0.0,1.0,0.0)
33 ,vec4 (0.0,0.0,0.0,1.0))) * (z1);
34 }
35 vec4 scale(float z0,vec4 z1) {
36 return (z1) * (vec4 (z0,z0,z0,1.0));
37 }
29 void main() { 38 void main() {
30 gl_Position = ((mat4 39 gl_Position = scale (0.1,rotate (3.0,vi1));
31 (vec4 (cos (3.0),(0.0) - (sin (3.0)),0.0,0.0)
32 ,vec4 (sin (3.0),cos (3.0),0.0,0.0)
33 ,vec4 (0.0,0.0,1.0,0.0)
34 ,vec4 (0.0,0.0,0.0,1.0))) * (vi1)) * (vec4 (0.1,0.1,0.1,1.0));
35 } 40 }
36 """ 41 """
37 , geometryShader = Nothing 42 , geometryShader = Nothing
diff --git a/testdata/Spiral.out b/testdata/Spiral.out
index 8bf07994..0364685f 100644
--- a/testdata/Spiral.out
+++ b/testdata/Spiral.out
@@ -32,15 +32,23 @@ Pipeline
32 uniform vec2 Mouse; 32 uniform vec2 Mouse;
33 in vec3 vi1; 33 in vec3 vi1;
34 smooth out vec4 vo1; 34 smooth out vec4 vo1;
35 vec2 m = Mouse;
36 vec4 scale(float z0,vec4 z1) {
37 return (z1) * (vec4 (z0,z0,z0,1.0));
38 }
39 vec4 v3FToV4F(vec3 z0) {
40 return vec4 ((z0).x,(z0).y,(z0).z,1.0);
41 }
35 void main() { 42 void main() {
36 gl_Position = ((MVP) * (vec4 43 gl_Position = scale
37 ((exp ((((Mouse).x) - (0.5)) * ((vi1).x))) * (sin 44 (0.5
38 ((0.9) * ((vi1).x))) 45 ,(MVP) * (vec4 ((exp ((((m).x) - (0.5)) * ((vi1).x))) * (sin
39 ,(exp ((((Mouse).x) - (0.5)) * ((vi1).x))) * (cos 46 ((0.9) * ((vi1).x)))
40 ((0.9) * ((vi1).x))) 47 ,(exp ((((m).x) - (0.5)) * ((vi1).x))) * (cos
41 ,((Mouse).y) * ((0.9) * ((vi1).x)) 48 ((0.9) * ((vi1).x)))
42 ,1.0))) * (vec4 (0.5,0.5,0.5,1.0)); 49 ,((m).y) * ((0.9) * ((vi1).x))
43 vo1 = vec4 ((vi1).x,(vi1).y,(vi1).z,1.0); 50 ,1.0)));
51 vo1 = v3FToV4F (vi1);
44 } 52 }
45 """ 53 """
46 , geometryShader = Nothing 54 , geometryShader = Nothing
diff --git a/testdata/complex.out b/testdata/complex.out
index b5a13515..67553969 100644
--- a/testdata/complex.out
+++ b/testdata/complex.out
@@ -238,7 +238,7 @@ testdata/complex.lc 28:47-28:51 VecScalar 1 Float -> VecScalar 1 Float
238testdata/complex.lc 28:47-28:55 VecScalar 1 Float 238testdata/complex.lc 28:47-28:55 VecScalar 1 Float
239testdata/complex.lc 28:50-28:51 {a} -> {b:Nat} -> {c : Num a} -> VecScalar b a -> VecScalar b a -> VecScalar b a 239testdata/complex.lc 28:50-28:51 {a} -> {b:Nat} -> {c : Num a} -> VecScalar b a -> VecScalar b a -> VecScalar b a
240testdata/complex.lc 28:52-28:55 Float 240testdata/complex.lc 28:52-28:55 Float
241testdata/complex.lc 29:8-29:17 Complex 'Polar 241testdata/complex.lc 29:8-29:17 {a}->a
242testdata/complex.lc 31:9-31:13 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a 242testdata/complex.lc 31:9-31:13 {a} -> {b:Nat} -> {c : a ~ VecScalar b Float} -> a->a
243testdata/complex.lc 31:9-31:25 VecScalar 1 Float 243testdata/complex.lc 31:9-31:25 VecScalar 1 Float
244testdata/complex.lc 31:14-31:25 Float 244testdata/complex.lc 31:14-31:25 Float
diff --git a/testdata/editor-examples/Cube.out b/testdata/editor-examples/Cube.out
index a0fb077f..50d41569 100644
--- a/testdata/editor-examples/Cube.out
+++ b/testdata/editor-examples/Cube.out
@@ -30,8 +30,11 @@ Pipeline
30 uniform mat4 MVP; 30 uniform mat4 MVP;
31 in vec4 vi1; 31 in vec4 vi1;
32 smooth out vec4 vo1; 32 smooth out vec4 vo1;
33 vec4 scale(float z0,vec4 z1) {
34 return (z1) * (vec4 (z0,z0,z0,1.0));
35 }
33 void main() { 36 void main() {
34 gl_Position = ((MVP) * (vi1)) * (vec4 (0.5,0.5,0.5,1.0)); 37 gl_Position = scale (0.5,(MVP) * (vi1));
35 vo1 = vi1; 38 vo1 = vi1;
36 } 39 }
37 """ 40 """
diff --git a/testdata/editor-examples/Heartbeat.out b/testdata/editor-examples/Heartbeat.out
index 99d469b1..81eec655 100644
--- a/testdata/editor-examples/Heartbeat.out
+++ b/testdata/editor-examples/Heartbeat.out
@@ -85,8 +85,11 @@ Pipeline
85 in vec4 vi1; 85 in vec4 vi1;
86 in vec2 vi2; 86 in vec2 vi2;
87 smooth out vec2 vo1; 87 smooth out vec2 vo1;
88 vec4 scale(float z0,vec4 z1) {
89 return (z1) * (vec4 (z0,z0,z0,1.0));
90 }
88 void main() { 91 void main() {
89 gl_Position = (vi1) * (vec4 (1.0,1.0,1.0,1.0)); 92 gl_Position = scale (1.0,vi1);
90 vo1 = vec2 ((vi2).x,(1.0) - ((vi2).y)); 93 vo1 = vec2 ((vi2).x,(1.0) - ((vi2).y));
91 } 94 }
92 """ 95 """
@@ -100,30 +103,31 @@ Pipeline
100 uniform float Time; 103 uniform float Time;
101 smooth in vec2 vo1; 104 smooth in vec2 vo1;
102 out vec4 f0; 105 out vec4 f0;
106 vec4 rgb(float z0,float z1,float z2) {
107 return vec4 (z0,z1,z2,1.0);
108 }
109 vec4 blue = rgb (0.0,0.0,1.0);
110 vec4 navy = rgb (0.0,0.0,0.5);
111 float time = Time;
112 vec4 white = rgb (1.0,1.0,1.0);
113 vec4 yellow = rgb (1.0,1.0,0.0);
103 void main() { 114 void main() {
104 f0 = 115 f0 =
105 ((((((vo1).x) - (0.85)) * (((vo1).x) - (0.85))) + ((((vo1).y) - (0.85)) * (((vo1).y) - (0.85)))) + ((5.0e-4) * (sin 116 ((((((vo1).x) - (0.85)) * (((vo1).x) - (0.85))) + ((((vo1).y) - (0.85)) * (((vo1).y) - (0.85)))) + ((5.0e-4) * (sin
106 (((3.0) * (atan 117 (((3.0) * (atan
107 (((vo1).x) - (0.85) 118 (((vo1).x) - (0.85)
108 ,((vo1).y) - (0.85)))) + ((15.0) * (Time)))))) < ((5.0e-3) * (abs 119 ,((vo1).y) - (0.85)))) + ((15.0) * (time)))))) < ((5.0e-3) * (abs
109 ((sin ((Time) * (4.0))) - (0.37)))) ? vec4 120 ((sin
110 (0.0 121 ((time) * (4.0))) - (0.37)))) ? navy : ((((((vo1).x) - (0.85)) * (((vo1).x) - (0.85))) + ((((vo1).y) - (0.85)) * (((vo1).y) - (0.85)))) + ((2.0e-3) * (sin
111 ,0.0
112 ,0.5
113 ,1.0) : ((((((vo1).x) - (0.85)) * (((vo1).x) - (0.85))) + ((((vo1).y) - (0.85)) * (((vo1).y) - (0.85)))) + ((2.0e-3) * (sin
114 (((5.0) * (atan 122 (((5.0) * (atan
115 (((vo1).x) - (0.85) 123 (((vo1).x) - (0.85)
116 ,((vo1).y) - (0.85)))) - ((5.0) * (Time)))))) < ((2.0e-2) * (abs 124 ,((vo1).y) - (0.85)))) - ((5.0) * (time)))))) < ((2.0e-2) * (abs
117 ((sin ((Time) * (4.0))) - (0.37)))) ? vec4 125 ((sin
118 (0.0 126 ((time) * (4.0))) - (0.37)))) ? blue : ((((((vo1).x) - (0.85)) * (((vo1).x) - (0.85))) + ((((vo1).y) - (0.85)) * (((vo1).y) - (0.85)))) + ((2.0e-3) * (sin
119 ,0.0
120 ,1.0
121 ,1.0) : ((((((vo1).x) - (0.85)) * (((vo1).x) - (0.85))) + ((((vo1).y) - (0.85)) * (((vo1).y) - (0.85)))) + ((2.0e-3) * (sin
122 (((7.0) * (atan 127 (((7.0) * (atan
123 (((vo1).x) - (0.85) 128 (((vo1).x) - (0.85)
124 ,((vo1).y) - (0.85)))) + ((3.0) * (Time)))))) < ((5.0e-2) * (abs 129 ,((vo1).y) - (0.85)))) + ((3.0) * (time)))))) < ((5.0e-2) * (abs
125 ((sin ((Time) * (4.0))) - (0.37)))) ? vec4 130 ((sin ((time) * (4.0))) - (0.37)))) ? white : yellow;
126 (1.0,1.0,1.0,1.0) : vec4 (1.0,1.0,0.0,1.0);
127 } 131 }
128 """ 132 """
129 } 133 }
@@ -146,8 +150,11 @@ Pipeline
146 in vec4 vi1; 150 in vec4 vi1;
147 in vec2 vi2; 151 in vec2 vi2;
148 smooth out vec2 vo1; 152 smooth out vec2 vo1;
153 vec4 scale(float z0,vec4 z1) {
154 return (z1) * (vec4 (z0,z0,z0,1.0));
155 }
149 void main() { 156 void main() {
150 gl_Position = ((MVP) * (vi1)) * (vec4 (0.5,0.5,0.5,1.0)); 157 gl_Position = scale (0.5,(MVP) * (vi1));
151 vo1 = vi2; 158 vo1 = vi2;
152 } 159 }
153 """ 160 """
diff --git a/testdata/editor-examples/LambdaCube.out b/testdata/editor-examples/LambdaCube.out
index 1e68a1ea..f46f8645 100644
--- a/testdata/editor-examples/LambdaCube.out
+++ b/testdata/editor-examples/LambdaCube.out
@@ -30,41 +30,31 @@ Pipeline
30 uniform float Time; 30 uniform float Time;
31 in vec4 vi1; 31 in vec4 vi1;
32 smooth out vec4 vo1; 32 smooth out vec4 vo1;
33 float time = Time;
34 float phase = fract ((time) * (0.2));
35 mat4 rotMatrixY(float z0) {
36 return mat4 (vec4 (cos (z0),0.0,(0.0) - (sin (z0)),0.0)
37 ,vec4 (0.0,1.0,0.0,0.0)
38 ,vec4 (sin (z0),0.0,cos (z0),0.0)
39 ,vec4 (0.0,0.0,0.0,1.0));
40 }
41 mat4 rotMatrixZ(float z0) {
42 return mat4 (vec4 (cos (z0),sin (z0),0.0,0.0)
43 ,vec4 ((0.0) - (sin (z0)),cos (z0),0.0,0.0)
44 ,vec4 (0.0,0.0,1.0,0.0)
45 ,vec4 (0.0,0.0,0.0,1.0));
46 }
47 vec4 scale(float z0,vec4 z1) {
48 return (z1) * (vec4 (z0,z0,z0,1.0));
49 }
50 float smoothPhase =
51 ((phase) * (phase)) * ((3.0) - ((2.0) * (phase)));
33 void main() { 52 void main() {
34 gl_Position = ((mat4 53 gl_Position = scale
35 (vec4 (cos ((4.1) + ((((fract ((Time) * (0.2))) * (fract 54 ((0.2) + ((abs ((0.5) - (smoothPhase))) * (0.6))
36 ((Time) * (0.2)))) * ((3.0) - ((2.0) * (fract 55 ,(rotMatrixY
37 ((Time) * (0.2)))))) * (6.28318530718))) 56 ((4.1) + ((smoothPhase) * (6.28318530718)))) * ((rotMatrixZ
38 ,0.0 57 (2.35619449017)) * (vi1)));
39 ,(0.0) - (sin ((4.1) + ((((fract ((Time) * (0.2))) * (fract
40 ((Time) * (0.2)))) * ((3.0) - ((2.0) * (fract
41 ((Time) * (0.2)))))) * (6.28318530718))))
42 ,0.0)
43 ,vec4 (0.0,1.0,0.0,0.0)
44 ,vec4 (sin ((4.1) + ((((fract ((Time) * (0.2))) * (fract
45 ((Time) * (0.2)))) * ((3.0) - ((2.0) * (fract
46 ((Time) * (0.2)))))) * (6.28318530718)))
47 ,0.0
48 ,cos ((4.1) + ((((fract ((Time) * (0.2))) * (fract
49 ((Time) * (0.2)))) * ((3.0) - ((2.0) * (fract
50 ((Time) * (0.2)))))) * (6.28318530718)))
51 ,0.0)
52 ,vec4 (0.0,0.0,0.0,1.0))) * ((mat4
53 (vec4 (cos (2.35619449017),sin (2.35619449017),0.0,0.0)
54 ,vec4
55 ((0.0) - (sin (2.35619449017)),cos (2.35619449017),0.0,0.0)
56 ,vec4 (0.0,0.0,1.0,0.0)
57 ,vec4 (0.0,0.0,0.0,1.0))) * (vi1))) * (vec4
58 ((0.2) + ((abs ((0.5) - (((fract ((Time) * (0.2))) * (fract
59 ((Time) * (0.2)))) * ((3.0) - ((2.0) * (fract
60 ((Time) * (0.2)))))))) * (0.6))
61 ,(0.2) + ((abs ((0.5) - (((fract ((Time) * (0.2))) * (fract
62 ((Time) * (0.2)))) * ((3.0) - ((2.0) * (fract
63 ((Time) * (0.2)))))))) * (0.6))
64 ,(0.2) + ((abs ((0.5) - (((fract ((Time) * (0.2))) * (fract
65 ((Time) * (0.2)))) * ((3.0) - ((2.0) * (fract
66 ((Time) * (0.2)))))))) * (0.6))
67 ,1.0));
68 vo1 = vi1; 58 vo1 = vi1;
69 } 59 }
70 """ 60 """
@@ -77,34 +67,36 @@ Pipeline
77 } 67 }
78 smooth in vec4 vo1; 68 smooth in vec4 vo1;
79 out vec4 f0; 69 out vec4 f0;
70 vec4 rgb(float z0,float z1,float z2) {
71 return vec4 (z0,z1,z2,1.0);
72 }
73 vec4 black = rgb (0.0,0.0,0.0);
74 vec4 leftSide(vec2 z0) {
75 return vec4 (0.0
76 ,1.0
77 ,(dot (z0,vec2 (0.5,-0.5))) + (0.4)
78 ,((z0).y) > (0.75) ? 0.0 : 1.0);
79 }
80 vec4 rightSide(vec2 z0) {
81 return vec4 (((z0).x) * ((z0).x)
82 ,1.0
83 ,((1.0) - ((z0).x)) * ((1.0) - ((z0).x))
84 ,((z0).y) > (0.75) ? 0.0 : 1.0);
85 }
86 vec4 topSide(vec2 z0) {
87 return vec4 ((dot (z0,vec2 (-0.5,0.5))) + (0.4)
88 ,1.0
89 ,0.0
90 ,((dot (z0,vec2 (1.0,-1.0))) > (-0.25)) && ((dot
91 (z0,vec2 (1.0,-1.0))) < (0.0)) ? 0.0 : 1.0);
92 }
80 void main() { 93 void main() {
81 f0 = (abs ((vo1).x)) > (0.99999) ? vec4 94 f0 = (abs ((vo1).x)) > (0.99999) ? rightSide
82 (((((((vo1).yz) * (sign 95 (((((vo1).yz) * (sign ((vo1).x))) * (0.5)) + (0.5)) : (abs
83 ((vo1).x))) * (0.5)) + (0.5)).x) * ((((((vo1).yz) * (sign 96 ((vo1).y)) > (0.99999) ? topSide (((((vo1).zx) * (sign
84 ((vo1).x))) * (0.5)) + (0.5)).x) 97 ((vo1).y))) * (0.5)) + (0.5)) : (abs
85 ,1.0 98 ((vo1).z)) > (0.99999) ? leftSide (((((vo1).xy) * (sign
86 ,((1.0) - ((((((vo1).yz) * (sign 99 ((vo1).z))) * (0.5)) + (0.5)) : black;
87 ((vo1).x))) * (0.5)) + (0.5)).x)) * ((1.0) - ((((((vo1).yz) * (sign
88 ((vo1).x))) * (0.5)) + (0.5)).x))
89 ,((((((vo1).yz) * (sign
90 ((vo1).x))) * (0.5)) + (0.5)).y) > (0.75) ? 0.0 : 1.0) : (abs
91 ((vo1).y)) > (0.99999) ? vec4
92 ((dot (((((vo1).zx) * (sign ((vo1).y))) * (0.5)) + (0.5)
93 ,vec2 (-0.5,0.5))) + (0.4)
94 ,1.0
95 ,0.0
96 ,((dot (((((vo1).zx) * (sign ((vo1).y))) * (0.5)) + (0.5)
97 ,vec2 (1.0,-1.0))) > (-0.25)) && ((dot
98 (((((vo1).zx) * (sign ((vo1).y))) * (0.5)) + (0.5)
99 ,vec2 (1.0,-1.0))) < (0.0)) ? 0.0 : 1.0) : (abs
100 ((vo1).z)) > (0.99999) ? vec4
101 (0.0
102 ,1.0
103 ,(dot (((((vo1).xy) * (sign ((vo1).z))) * (0.5)) + (0.5)
104 ,vec2 (0.5,-0.5))) + (0.4)
105 ,((((((vo1).xy) * (sign
106 ((vo1).z))) * (0.5)) + (0.5)).y) > (0.75) ? 0.0 : 1.0) : vec4
107 (0.0,0.0,0.0,1.0);
108 } 100 }
109 """ 101 """
110 } 102 }
diff --git a/testdata/editor-examples/LambdaCube2.out b/testdata/editor-examples/LambdaCube2.out
index ca24e47c..22c41e7e 100644
--- a/testdata/editor-examples/LambdaCube2.out
+++ b/testdata/editor-examples/LambdaCube2.out
@@ -31,8 +31,11 @@ Pipeline
31 uniform mat4 MVP; 31 uniform mat4 MVP;
32 in vec4 vi1; 32 in vec4 vi1;
33 smooth out vec4 vo1; 33 smooth out vec4 vo1;
34 vec4 scale(float z0,vec4 z1) {
35 return (z1) * (vec4 (z0,z0,z0,1.0));
36 }
34 void main() { 37 void main() {
35 gl_Position = ((MVP) * (vi1)) * (vec4 (0.5,0.5,0.5,1.0)); 38 gl_Position = scale (0.5,(MVP) * (vi1));
36 vo1 = vi1; 39 vo1 = vi1;
37 } 40 }
38 """ 41 """
@@ -46,16 +49,17 @@ Pipeline
46 uniform float Time; 49 uniform float Time;
47 smooth in vec4 vo1; 50 smooth in vec4 vo1;
48 out vec4 f0; 51 out vec4 f0;
52 float len2(vec4 z0) {
53 return ((((z0).x) * ((z0).x)) + (((z0).y) * ((z0).y))) + (((z0).z) * ((z0).z));
54 }
49 void main() { 55 void main() {
50 if (!(((((((vo1).y) + ((vo1).x)) + ((vo1).z)) > (1.0)) || ((abs 56 if (!(((((((vo1).y) + ((vo1).x)) + ((vo1).z)) > (1.0)) || ((abs
51 (((((vo1).y) - ((vo1).x)) + ((vo1).z)) - (1.0))) > (0.25))) && (((((((vo1).y) + ((vo1).x)) - ((vo1).z)) > (1.0)) || ((abs 57 (((((vo1).y) - ((vo1).x)) + ((vo1).z)) - (1.0))) > (0.25))) && (((((((vo1).y) + ((vo1).x)) - ((vo1).z)) > (1.0)) || ((abs
52 (((((vo1).y) + ((vo1).x)) + ((vo1).z)) - (1.0))) > (0.25))) && (((((((vo1).y) - ((vo1).x)) - ((vo1).z)) > (1.0)) || ((abs 58 (((((vo1).y) + ((vo1).x)) + ((vo1).z)) - (1.0))) > (0.25))) && (((((((vo1).y) - ((vo1).x)) - ((vo1).z)) > (1.0)) || ((abs
53 (((((vo1).y) + ((vo1).x)) - ((vo1).z)) - (1.0))) > (0.25))) && (((((((vo1).y) - ((vo1).x)) + ((vo1).z)) > (1.0)) || ((abs 59 (((((vo1).y) + ((vo1).x)) - ((vo1).z)) - (1.0))) > (0.25))) && (((((((vo1).y) - ((vo1).x)) + ((vo1).z)) > (1.0)) || ((abs
54 (((((vo1).y) - ((vo1).x)) - ((vo1).z)) - (1.0))) > (0.25))) && ((((((sin 60 (((((vo1).y) - ((vo1).x)) - ((vo1).z)) - (1.0))) > (0.25))) && ((len2
55 ((vo1) * (20.0))).x) * ((sin ((vo1) * (20.0))).x)) + (((sin 61 (sin ((vo1) * (20.0)))) > (abs ((3.0) * (sin
56 ((vo1) * (20.0))).y) * ((sin ((vo1) * (20.0))).y))) + (((sin 62 ((1.0) * (Time))))))))))) discard;
57 ((vo1) * (20.0))).z) * ((sin ((vo1) * (20.0))).z))) > (abs
58 ((3.0) * (sin ((1.0) * (Time))))))))))) discard;
59 f0 = vo1; 63 f0 = vo1;
60 } 64 }
61 """ 65 """
diff --git a/testdata/editor-examples/MagicCube.out b/testdata/editor-examples/MagicCube.out
index 5c7d127a..dc91cd89 100644
--- a/testdata/editor-examples/MagicCube.out
+++ b/testdata/editor-examples/MagicCube.out
@@ -31,8 +31,11 @@ Pipeline
31 uniform mat4 MVP; 31 uniform mat4 MVP;
32 in vec4 vi1; 32 in vec4 vi1;
33 smooth out vec4 vo1; 33 smooth out vec4 vo1;
34 vec4 scale(float z0,vec4 z1) {
35 return (z1) * (vec4 (z0,z0,z0,1.0));
36 }
34 void main() { 37 void main() {
35 gl_Position = ((MVP) * (vi1)) * (vec4 (0.5,0.5,0.5,1.0)); 38 gl_Position = scale (0.5,(MVP) * (vi1));
36 vo1 = vi1; 39 vo1 = vi1;
37 } 40 }
38 """ 41 """
@@ -46,204 +49,88 @@ Pipeline
46 uniform float Time; 49 uniform float Time;
47 smooth in vec4 vo1; 50 smooth in vec4 vo1;
48 out vec4 f0; 51 out vec4 f0;
52 float f(float z0) {
53 return (mod
54 (((z0) + (sin (z0))) + (sin ((1.1) * (z0))),4.0)) * (2.0);
55 }
56 mat4 rotMatrixX(float z0) {
57 return mat4 (vec4 (1.0,0.0,0.0,0.0)
58 ,vec4 (0.0,cos (z0),sin (z0),0.0)
59 ,vec4 (0.0,(0.0) - (sin (z0)),cos (z0),0.0)
60 ,vec4 (0.0,0.0,0.0,1.0));
61 }
62 mat4 rotMatrixY(float z0) {
63 return mat4 (vec4 (cos (z0),0.0,(0.0) - (sin (z0)),0.0)
64 ,vec4 (0.0,1.0,0.0,0.0)
65 ,vec4 (sin (z0),0.0,cos (z0),0.0)
66 ,vec4 (0.0,0.0,0.0,1.0));
67 }
68 mat4 rotMatrixZ(float z0) {
69 return mat4 (vec4 (cos (z0),sin (z0),0.0,0.0)
70 ,vec4 ((0.0) - (sin (z0)),cos (z0),0.0,0.0)
71 ,vec4 (0.0,0.0,1.0,0.0)
72 ,vec4 (0.0,0.0,0.0,1.0));
73 }
49 void main() { 74 void main() {
50 if (!((((((vo1).y) * ((vo1).y)) + (((vo1).x) * ((vo1).x))) + (((vo1).z) * ((vo1).z))) > (1.5))) discard; 75 if (!((((((vo1).y) * ((vo1).y)) + (((vo1).x) * ((vo1).x))) + (((vo1).z) * ((vo1).z))) > (1.5))) discard;
51 f0 = (vec4 (((vec3 (0.5,0.5,0.5)) + ((cos (((((mat4 76 f0 = (vec4 (((vec3 (0.5,0.5,0.5)) + ((cos (((((rotMatrixZ
52 (vec4 (cos (Time),sin (Time),0.0,0.0) 77 (Time)) * ((rotMatrixY (Time)) * ((vec4
53 ,vec4 ((0.0) - (sin (Time)),cos (Time),0.0,0.0) 78 (((vec3 (0.5,0.5,0.5)) + ((cos (((((rotMatrixX
54 ,vec4 (0.0,0.0,1.0,0.0) 79 (Time)) * ((rotMatrixY (Time)) * (vo1))).xyz) + (vec3
55 ,vec4 (0.0,0.0,0.0,1.0))) * ((mat4
56 (vec4 (cos (Time),0.0,(0.0) - (sin (Time)),0.0)
57 ,vec4 (0.0,1.0,0.0,0.0)
58 ,vec4 (sin (Time),0.0,cos (Time),0.0)
59 ,vec4 (0.0,0.0,0.0,1.0))) * ((vec4
60 (((vec3 (0.5,0.5,0.5)) + ((cos (((((mat4
61 (vec4 (1.0,0.0,0.0,0.0)
62 ,vec4 (0.0,cos (Time),sin (Time),0.0)
63 ,vec4 (0.0,(0.0) - (sin (Time)),cos (Time),0.0)
64 ,vec4 (0.0,0.0,0.0,1.0))) * ((mat4
65 (vec4 (cos (Time),0.0,(0.0) - (sin (Time)),0.0)
66 ,vec4 (0.0,1.0,0.0,0.0)
67 ,vec4 (sin (Time),0.0,cos (Time),0.0)
68 ,vec4 (0.0,0.0,0.0,1.0))) * (vo1))).xyz) + (vec3
69 (0.0,0.1,0.2))) * (6.28318))) * (0.5))).x 80 (0.0,0.1,0.2))) * (6.28318))) * (0.5))).x
70 ,((vec3 (0.5,0.5,0.5)) + ((cos (((((mat4 81 ,((vec3 (0.5,0.5,0.5)) + ((cos (((((rotMatrixX
71 (vec4 (1.0,0.0,0.0,0.0) 82 (Time)) * ((rotMatrixY (Time)) * (vo1))).xyz) + (vec3
72 ,vec4 (0.0,cos (Time),sin (Time),0.0)
73 ,vec4 (0.0,(0.0) - (sin (Time)),cos (Time),0.0)
74 ,vec4 (0.0,0.0,0.0,1.0))) * ((mat4
75 (vec4 (cos (Time),0.0,(0.0) - (sin (Time)),0.0)
76 ,vec4 (0.0,1.0,0.0,0.0)
77 ,vec4 (sin (Time),0.0,cos (Time),0.0)
78 ,vec4 (0.0,0.0,0.0,1.0))) * (vo1))).xyz) + (vec3
79 (0.0,0.1,0.2))) * (6.28318))) * (0.5))).y 83 (0.0,0.1,0.2))) * (6.28318))) * (0.5))).y
80 ,((vec3 (0.5,0.5,0.5)) + ((cos (((((mat4 84 ,((vec3 (0.5,0.5,0.5)) + ((cos (((((rotMatrixX
81 (vec4 (1.0,0.0,0.0,0.0) 85 (Time)) * ((rotMatrixY (Time)) * (vo1))).xyz) + (vec3
82 ,vec4 (0.0,cos (Time),sin (Time),0.0)
83 ,vec4 (0.0,(0.0) - (sin (Time)),cos (Time),0.0)
84 ,vec4 (0.0,0.0,0.0,1.0))) * ((mat4
85 (vec4 (cos (Time),0.0,(0.0) - (sin (Time)),0.0)
86 ,vec4 (0.0,1.0,0.0,0.0)
87 ,vec4 (sin (Time),0.0,cos (Time),0.0)
88 ,vec4 (0.0,0.0,0.0,1.0))) * (vo1))).xyz) + (vec3
89 (0.0,0.1,0.2))) * (6.28318))) * (0.5))).z 86 (0.0,0.1,0.2))) * (6.28318))) * (0.5))).z
90 ,((mat4 (vec4 (1.0,0.0,0.0,0.0) 87 ,((rotMatrixX (Time)) * ((rotMatrixY
91 ,vec4 (0.0,cos (Time),sin (Time),0.0) 88 (Time)) * (vo1))).w)) * ((1.0) + ((0.5) * (sin
92 ,vec4 (0.0,(0.0) - (sin (Time)),cos (Time),0.0)
93 ,vec4 (0.0,0.0,0.0,1.0))) * ((mat4
94 (vec4 (cos (Time),0.0,(0.0) - (sin (Time)),0.0)
95 ,vec4 (0.0,1.0,0.0,0.0)
96 ,vec4 (sin (Time),0.0,cos (Time),0.0)
97 ,vec4 (0.0,0.0,0.0,1.0))) * (vo1))).w)) * ((1.0) + ((0.5) * (sin
98 (Time))))))).xyz) + (vec3 89 (Time))))))).xyz) + (vec3
99 (0.0,0.1,0.2))) * (6.28318))) * (0.5))).x 90 (0.0,0.1,0.2))) * (6.28318))) * (0.5))).x
100 ,((vec3 (0.5,0.5,0.5)) + ((cos (((((mat4 91 ,((vec3 (0.5,0.5,0.5)) + ((cos (((((rotMatrixZ
101 (vec4 (cos (Time),sin (Time),0.0,0.0) 92 (Time)) * ((rotMatrixY (Time)) * ((vec4
102 ,vec4 ((0.0) - (sin (Time)),cos (Time),0.0,0.0) 93 (((vec3 (0.5,0.5,0.5)) + ((cos (((((rotMatrixX
103 ,vec4 (0.0,0.0,1.0,0.0) 94 (Time)) * ((rotMatrixY (Time)) * (vo1))).xyz) + (vec3
104 ,vec4 (0.0,0.0,0.0,1.0))) * ((mat4
105 (vec4 (cos (Time),0.0,(0.0) - (sin (Time)),0.0)
106 ,vec4 (0.0,1.0,0.0,0.0)
107 ,vec4 (sin (Time),0.0,cos (Time),0.0)
108 ,vec4 (0.0,0.0,0.0,1.0))) * ((vec4
109 (((vec3 (0.5,0.5,0.5)) + ((cos (((((mat4
110 (vec4 (1.0,0.0,0.0,0.0)
111 ,vec4 (0.0,cos (Time),sin (Time),0.0)
112 ,vec4 (0.0,(0.0) - (sin (Time)),cos (Time),0.0)
113 ,vec4 (0.0,0.0,0.0,1.0))) * ((mat4
114 (vec4 (cos (Time),0.0,(0.0) - (sin (Time)),0.0)
115 ,vec4 (0.0,1.0,0.0,0.0)
116 ,vec4 (sin (Time),0.0,cos (Time),0.0)
117 ,vec4 (0.0,0.0,0.0,1.0))) * (vo1))).xyz) + (vec3
118 (0.0,0.1,0.2))) * (6.28318))) * (0.5))).x 95 (0.0,0.1,0.2))) * (6.28318))) * (0.5))).x
119 ,((vec3 (0.5,0.5,0.5)) + ((cos (((((mat4 96 ,((vec3 (0.5,0.5,0.5)) + ((cos (((((rotMatrixX
120 (vec4 (1.0,0.0,0.0,0.0) 97 (Time)) * ((rotMatrixY (Time)) * (vo1))).xyz) + (vec3
121 ,vec4 (0.0,cos (Time),sin (Time),0.0)
122 ,vec4 (0.0,(0.0) - (sin (Time)),cos (Time),0.0)
123 ,vec4 (0.0,0.0,0.0,1.0))) * ((mat4
124 (vec4 (cos (Time),0.0,(0.0) - (sin (Time)),0.0)
125 ,vec4 (0.0,1.0,0.0,0.0)
126 ,vec4 (sin (Time),0.0,cos (Time),0.0)
127 ,vec4 (0.0,0.0,0.0,1.0))) * (vo1))).xyz) + (vec3
128 (0.0,0.1,0.2))) * (6.28318))) * (0.5))).y 98 (0.0,0.1,0.2))) * (6.28318))) * (0.5))).y
129 ,((vec3 (0.5,0.5,0.5)) + ((cos (((((mat4 99 ,((vec3 (0.5,0.5,0.5)) + ((cos (((((rotMatrixX
130 (vec4 (1.0,0.0,0.0,0.0) 100 (Time)) * ((rotMatrixY (Time)) * (vo1))).xyz) + (vec3
131 ,vec4 (0.0,cos (Time),sin (Time),0.0)
132 ,vec4 (0.0,(0.0) - (sin (Time)),cos (Time),0.0)
133 ,vec4 (0.0,0.0,0.0,1.0))) * ((mat4
134 (vec4 (cos (Time),0.0,(0.0) - (sin (Time)),0.0)
135 ,vec4 (0.0,1.0,0.0,0.0)
136 ,vec4 (sin (Time),0.0,cos (Time),0.0)
137 ,vec4 (0.0,0.0,0.0,1.0))) * (vo1))).xyz) + (vec3
138 (0.0,0.1,0.2))) * (6.28318))) * (0.5))).z 101 (0.0,0.1,0.2))) * (6.28318))) * (0.5))).z
139 ,((mat4 (vec4 (1.0,0.0,0.0,0.0) 102 ,((rotMatrixX (Time)) * ((rotMatrixY
140 ,vec4 (0.0,cos (Time),sin (Time),0.0) 103 (Time)) * (vo1))).w)) * ((1.0) + ((0.5) * (sin
141 ,vec4 (0.0,(0.0) - (sin (Time)),cos (Time),0.0)
142 ,vec4 (0.0,0.0,0.0,1.0))) * ((mat4
143 (vec4 (cos (Time),0.0,(0.0) - (sin (Time)),0.0)
144 ,vec4 (0.0,1.0,0.0,0.0)
145 ,vec4 (sin (Time),0.0,cos (Time),0.0)
146 ,vec4 (0.0,0.0,0.0,1.0))) * (vo1))).w)) * ((1.0) + ((0.5) * (sin
147 (Time))))))).xyz) + (vec3 104 (Time))))))).xyz) + (vec3
148 (0.0,0.1,0.2))) * (6.28318))) * (0.5))).y 105 (0.0,0.1,0.2))) * (6.28318))) * (0.5))).y
149 ,((vec3 (0.5,0.5,0.5)) + ((cos (((((mat4 106 ,((vec3 (0.5,0.5,0.5)) + ((cos (((((rotMatrixZ
150 (vec4 (cos (Time),sin (Time),0.0,0.0) 107 (Time)) * ((rotMatrixY (Time)) * ((vec4
151 ,vec4 ((0.0) - (sin (Time)),cos (Time),0.0,0.0) 108 (((vec3 (0.5,0.5,0.5)) + ((cos (((((rotMatrixX
152 ,vec4 (0.0,0.0,1.0,0.0) 109 (Time)) * ((rotMatrixY (Time)) * (vo1))).xyz) + (vec3
153 ,vec4 (0.0,0.0,0.0,1.0))) * ((mat4
154 (vec4 (cos (Time),0.0,(0.0) - (sin (Time)),0.0)
155 ,vec4 (0.0,1.0,0.0,0.0)
156 ,vec4 (sin (Time),0.0,cos (Time),0.0)
157 ,vec4 (0.0,0.0,0.0,1.0))) * ((vec4
158 (((vec3 (0.5,0.5,0.5)) + ((cos (((((mat4
159 (vec4 (1.0,0.0,0.0,0.0)
160 ,vec4 (0.0,cos (Time),sin (Time),0.0)
161 ,vec4 (0.0,(0.0) - (sin (Time)),cos (Time),0.0)
162 ,vec4 (0.0,0.0,0.0,1.0))) * ((mat4
163 (vec4 (cos (Time),0.0,(0.0) - (sin (Time)),0.0)
164 ,vec4 (0.0,1.0,0.0,0.0)
165 ,vec4 (sin (Time),0.0,cos (Time),0.0)
166 ,vec4 (0.0,0.0,0.0,1.0))) * (vo1))).xyz) + (vec3
167 (0.0,0.1,0.2))) * (6.28318))) * (0.5))).x 110 (0.0,0.1,0.2))) * (6.28318))) * (0.5))).x
168 ,((vec3 (0.5,0.5,0.5)) + ((cos (((((mat4 111 ,((vec3 (0.5,0.5,0.5)) + ((cos (((((rotMatrixX
169 (vec4 (1.0,0.0,0.0,0.0) 112 (Time)) * ((rotMatrixY (Time)) * (vo1))).xyz) + (vec3
170 ,vec4 (0.0,cos (Time),sin (Time),0.0)
171 ,vec4 (0.0,(0.0) - (sin (Time)),cos (Time),0.0)
172 ,vec4 (0.0,0.0,0.0,1.0))) * ((mat4
173 (vec4 (cos (Time),0.0,(0.0) - (sin (Time)),0.0)
174 ,vec4 (0.0,1.0,0.0,0.0)
175 ,vec4 (sin (Time),0.0,cos (Time),0.0)
176 ,vec4 (0.0,0.0,0.0,1.0))) * (vo1))).xyz) + (vec3
177 (0.0,0.1,0.2))) * (6.28318))) * (0.5))).y 113 (0.0,0.1,0.2))) * (6.28318))) * (0.5))).y
178 ,((vec3 (0.5,0.5,0.5)) + ((cos (((((mat4 114 ,((vec3 (0.5,0.5,0.5)) + ((cos (((((rotMatrixX
179 (vec4 (1.0,0.0,0.0,0.0) 115 (Time)) * ((rotMatrixY (Time)) * (vo1))).xyz) + (vec3
180 ,vec4 (0.0,cos (Time),sin (Time),0.0)
181 ,vec4 (0.0,(0.0) - (sin (Time)),cos (Time),0.0)
182 ,vec4 (0.0,0.0,0.0,1.0))) * ((mat4
183 (vec4 (cos (Time),0.0,(0.0) - (sin (Time)),0.0)
184 ,vec4 (0.0,1.0,0.0,0.0)
185 ,vec4 (sin (Time),0.0,cos (Time),0.0)
186 ,vec4 (0.0,0.0,0.0,1.0))) * (vo1))).xyz) + (vec3
187 (0.0,0.1,0.2))) * (6.28318))) * (0.5))).z 116 (0.0,0.1,0.2))) * (6.28318))) * (0.5))).z
188 ,((mat4 (vec4 (1.0,0.0,0.0,0.0) 117 ,((rotMatrixX (Time)) * ((rotMatrixY
189 ,vec4 (0.0,cos (Time),sin (Time),0.0) 118 (Time)) * (vo1))).w)) * ((1.0) + ((0.5) * (sin
190 ,vec4 (0.0,(0.0) - (sin (Time)),cos (Time),0.0)
191 ,vec4 (0.0,0.0,0.0,1.0))) * ((mat4
192 (vec4 (cos (Time),0.0,(0.0) - (sin (Time)),0.0)
193 ,vec4 (0.0,1.0,0.0,0.0)
194 ,vec4 (sin (Time),0.0,cos (Time),0.0)
195 ,vec4 (0.0,0.0,0.0,1.0))) * (vo1))).w)) * ((1.0) + ((0.5) * (sin
196 (Time))))))).xyz) + (vec3 119 (Time))))))).xyz) + (vec3
197 (0.0,0.1,0.2))) * (6.28318))) * (0.5))).z 120 (0.0,0.1,0.2))) * (6.28318))) * (0.5))).z
198 ,((mat4 (vec4 (cos (Time),sin (Time),0.0,0.0) 121 ,((rotMatrixZ (Time)) * ((rotMatrixY (Time)) * ((vec4
199 ,vec4 ((0.0) - (sin (Time)),cos (Time),0.0,0.0) 122 (((vec3 (0.5,0.5,0.5)) + ((cos (((((rotMatrixX
200 ,vec4 (0.0,0.0,1.0,0.0) 123 (Time)) * ((rotMatrixY (Time)) * (vo1))).xyz) + (vec3
201 ,vec4 (0.0,0.0,0.0,1.0))) * ((mat4
202 (vec4 (cos (Time),0.0,(0.0) - (sin (Time)),0.0)
203 ,vec4 (0.0,1.0,0.0,0.0)
204 ,vec4 (sin (Time),0.0,cos (Time),0.0)
205 ,vec4 (0.0,0.0,0.0,1.0))) * ((vec4
206 (((vec3 (0.5,0.5,0.5)) + ((cos (((((mat4
207 (vec4 (1.0,0.0,0.0,0.0)
208 ,vec4 (0.0,cos (Time),sin (Time),0.0)
209 ,vec4 (0.0,(0.0) - (sin (Time)),cos (Time),0.0)
210 ,vec4 (0.0,0.0,0.0,1.0))) * ((mat4
211 (vec4 (cos (Time),0.0,(0.0) - (sin (Time)),0.0)
212 ,vec4 (0.0,1.0,0.0,0.0)
213 ,vec4 (sin (Time),0.0,cos (Time),0.0)
214 ,vec4 (0.0,0.0,0.0,1.0))) * (vo1))).xyz) + (vec3
215 (0.0,0.1,0.2))) * (6.28318))) * (0.5))).x 124 (0.0,0.1,0.2))) * (6.28318))) * (0.5))).x
216 ,((vec3 (0.5,0.5,0.5)) + ((cos (((((mat4 125 ,((vec3 (0.5,0.5,0.5)) + ((cos (((((rotMatrixX
217 (vec4 (1.0,0.0,0.0,0.0) 126 (Time)) * ((rotMatrixY (Time)) * (vo1))).xyz) + (vec3
218 ,vec4 (0.0,cos (Time),sin (Time),0.0)
219 ,vec4 (0.0,(0.0) - (sin (Time)),cos (Time),0.0)
220 ,vec4 (0.0,0.0,0.0,1.0))) * ((mat4
221 (vec4 (cos (Time),0.0,(0.0) - (sin (Time)),0.0)
222 ,vec4 (0.0,1.0,0.0,0.0)
223 ,vec4 (sin (Time),0.0,cos (Time),0.0)
224 ,vec4 (0.0,0.0,0.0,1.0))) * (vo1))).xyz) + (vec3
225 (0.0,0.1,0.2))) * (6.28318))) * (0.5))).y 127 (0.0,0.1,0.2))) * (6.28318))) * (0.5))).y
226 ,((vec3 (0.5,0.5,0.5)) + ((cos (((((mat4 128 ,((vec3 (0.5,0.5,0.5)) + ((cos (((((rotMatrixX
227 (vec4 (1.0,0.0,0.0,0.0) 129 (Time)) * ((rotMatrixY (Time)) * (vo1))).xyz) + (vec3
228 ,vec4 (0.0,cos (Time),sin (Time),0.0)
229 ,vec4 (0.0,(0.0) - (sin (Time)),cos (Time),0.0)
230 ,vec4 (0.0,0.0,0.0,1.0))) * ((mat4
231 (vec4 (cos (Time),0.0,(0.0) - (sin (Time)),0.0)
232 ,vec4 (0.0,1.0,0.0,0.0)
233 ,vec4 (sin (Time),0.0,cos (Time),0.0)
234 ,vec4 (0.0,0.0,0.0,1.0))) * (vo1))).xyz) + (vec3
235 (0.0,0.1,0.2))) * (6.28318))) * (0.5))).z 130 (0.0,0.1,0.2))) * (6.28318))) * (0.5))).z
236 ,((mat4 (vec4 (1.0,0.0,0.0,0.0) 131 ,((rotMatrixX (Time)) * ((rotMatrixY
237 ,vec4 (0.0,cos (Time),sin (Time),0.0) 132 (Time)) * (vo1))).w)) * ((1.0) + ((0.5) * (sin
238 ,vec4 (0.0,(0.0) - (sin (Time)),cos (Time),0.0) 133 (Time))))))).w)) * (f (Time));
239 ,vec4 (0.0,0.0,0.0,1.0))) * ((mat4
240 (vec4 (cos (Time),0.0,(0.0) - (sin (Time)),0.0)
241 ,vec4 (0.0,1.0,0.0,0.0)
242 ,vec4 (sin (Time),0.0,cos (Time),0.0)
243 ,vec4 (0.0,0.0,0.0,1.0))) * (vo1))).w)) * ((1.0) + ((0.5) * (sin
244 (Time))))))).w)) * ((mod
245 (((Time) + (sin (Time))) + (sin ((1.1) * (Time)))
246 ,4.0)) * (2.0));
247 } 134 }
248 """ 135 """
249 } 136 }
diff --git a/testdata/editor-examples/RecLC.out b/testdata/editor-examples/RecLC.out
index 72fa337a..4dc75416 100644
--- a/testdata/editor-examples/RecLC.out
+++ b/testdata/editor-examples/RecLC.out
@@ -136,8 +136,11 @@ Pipeline
136 uniform mat4 MVP; 136 uniform mat4 MVP;
137 in vec4 vi1; 137 in vec4 vi1;
138 smooth out vec4 vo1; 138 smooth out vec4 vo1;
139 vec4 scale(float z0,vec4 z1) {
140 return (z1) * (vec4 (z0,z0,z0,1.0));
141 }
139 void main() { 142 void main() {
140 gl_Position = ((MVP) * (vi1)) * (vec4 (0.5,0.5,0.5,1.0)); 143 gl_Position = scale (0.5,(MVP) * (vi1));
141 vo1 = vi1; 144 vo1 = vi1;
142 } 145 }
143 """ 146 """
@@ -151,16 +154,17 @@ Pipeline
151 uniform float Time; 154 uniform float Time;
152 smooth in vec4 vo1; 155 smooth in vec4 vo1;
153 out vec4 f0; 156 out vec4 f0;
157 float len2(vec4 z0) {
158 return ((((z0).x) * ((z0).x)) + (((z0).y) * ((z0).y))) + (((z0).z) * ((z0).z));
159 }
154 void main() { 160 void main() {
155 if (!(((((((vo1).y) + ((vo1).x)) + ((vo1).z)) > (1.0)) || ((abs 161 if (!(((((((vo1).y) + ((vo1).x)) + ((vo1).z)) > (1.0)) || ((abs
156 (((((vo1).y) - ((vo1).x)) + ((vo1).z)) - (1.0))) > (0.25))) && (((((((vo1).y) + ((vo1).x)) - ((vo1).z)) > (1.0)) || ((abs 162 (((((vo1).y) - ((vo1).x)) + ((vo1).z)) - (1.0))) > (0.25))) && (((((((vo1).y) + ((vo1).x)) - ((vo1).z)) > (1.0)) || ((abs
157 (((((vo1).y) + ((vo1).x)) + ((vo1).z)) - (1.0))) > (0.25))) && (((((((vo1).y) - ((vo1).x)) - ((vo1).z)) > (1.0)) || ((abs 163 (((((vo1).y) + ((vo1).x)) + ((vo1).z)) - (1.0))) > (0.25))) && (((((((vo1).y) - ((vo1).x)) - ((vo1).z)) > (1.0)) || ((abs
158 (((((vo1).y) + ((vo1).x)) - ((vo1).z)) - (1.0))) > (0.25))) && (((((((vo1).y) - ((vo1).x)) + ((vo1).z)) > (1.0)) || ((abs 164 (((((vo1).y) + ((vo1).x)) - ((vo1).z)) - (1.0))) > (0.25))) && (((((((vo1).y) - ((vo1).x)) + ((vo1).z)) > (1.0)) || ((abs
159 (((((vo1).y) - ((vo1).x)) - ((vo1).z)) - (1.0))) > (0.25))) && ((((((sin 165 (((((vo1).y) - ((vo1).x)) - ((vo1).z)) - (1.0))) > (0.25))) && ((len2
160 ((vo1) * (20.0))).x) * ((sin ((vo1) * (20.0))).x)) + (((sin 166 (sin ((vo1) * (20.0)))) > (abs ((3.0) * (sin
161 ((vo1) * (20.0))).y) * ((sin ((vo1) * (20.0))).y))) + (((sin 167 ((1.0) * (Time))))))))))) discard;
162 ((vo1) * (20.0))).z) * ((sin ((vo1) * (20.0))).z))) > (abs
163 ((3.0) * (sin ((1.0) * (Time))))))))))) discard;
164 f0 = vo1; 168 f0 = vo1;
165 } 169 }
166 """ 170 """
@@ -184,12 +188,19 @@ Pipeline
184 in vec4 vi1; 188 in vec4 vi1;
185 in vec2 vi2; 189 in vec2 vi2;
186 smooth out vec2 vo1; 190 smooth out vec2 vo1;
191 mat4 rotMatrix = MVP;
192 mat4 rotMatrixX(float z0) {
193 return mat4 (vec4 (1.0,0.0,0.0,0.0)
194 ,vec4 (0.0,cos (z0),sin (z0),0.0)
195 ,vec4 (0.0,(0.0) - (sin (z0)),cos (z0),0.0)
196 ,vec4 (0.0,0.0,0.0,1.0));
197 }
198 vec4 scale(float z0,vec4 z1) {
199 return (z1) * (vec4 (z0,z0,z0,1.0));
200 }
187 void main() { 201 void main() {
188 gl_Position = (MVP) * (((mat4 (vec4 (1.0,0.0,0.0,0.0) 202 gl_Position = (rotMatrix) * (scale
189 ,vec4 (0.0,cos (0.0),sin (0.0),0.0) 203 (0.4,(rotMatrixX (0.0)) * (vi1)));
190 ,vec4 (0.0,(0.0) - (sin (0.0)),cos (0.0),0.0)
191 ,vec4 (0.0,0.0,0.0,1.0))) * (vi1)) * (vec4
192 (0.4,0.4,0.4,1.0)));
193 vo1 = vi2; 204 vo1 = vi2;
194 } 205 }
195 """ 206 """
@@ -203,11 +214,14 @@ Pipeline
203 uniform sampler2D s0; 214 uniform sampler2D s0;
204 smooth in vec2 vo1; 215 smooth in vec2 vo1;
205 out vec4 f0; 216 out vec4 f0;
206 void main() { 217 vec4 setAlpha(vec4 z0) {
207 f0 = ((((((vo1).yyyx) * (0.5)) + (texture2D 218 return ((z0) * (vec4 (1.0,1.0,1.0,0.0))) + (vec4
208 (s0,vo1))) * (0.7)) * (vec4 (1.0,1.0,1.0,0.0))) + (vec4
209 (0.0,0.0,0.0,1.0)); 219 (0.0,0.0,0.0,1.0));
210 } 220 }
221 void main() {
222 f0 = setAlpha (((((vo1).yyyx) * (0.5)) + (texture2D
223 (s0,vo1))) * (0.7));
224 }
211 """ 225 """
212 } 226 }
213 , Program 227 , Program
@@ -229,12 +243,19 @@ Pipeline
229 in vec4 vi1; 243 in vec4 vi1;
230 in vec2 vi2; 244 in vec2 vi2;
231 smooth out vec2 vo1; 245 smooth out vec2 vo1;
246 mat4 rotMatrix = MVP;
247 mat4 rotMatrixX(float z0) {
248 return mat4 (vec4 (1.0,0.0,0.0,0.0)
249 ,vec4 (0.0,cos (z0),sin (z0),0.0)
250 ,vec4 (0.0,(0.0) - (sin (z0)),cos (z0),0.0)
251 ,vec4 (0.0,0.0,0.0,1.0));
252 }
253 vec4 scale(float z0,vec4 z1) {
254 return (z1) * (vec4 (z0,z0,z0,1.0));
255 }
232 void main() { 256 void main() {
233 gl_Position = (MVP) * (((mat4 (vec4 (1.0,0.0,0.0,0.0) 257 gl_Position = (rotMatrix) * (scale
234 ,vec4 (0.0,cos (0.1),sin (0.1),0.0) 258 (0.4,(rotMatrixX (0.1)) * (vi1)));
235 ,vec4 (0.0,(0.0) - (sin (0.1)),cos (0.1),0.0)
236 ,vec4 (0.0,0.0,0.0,1.0))) * (vi1)) * (vec4
237 (0.4,0.4,0.4,1.0)));
238 vo1 = vi2; 259 vo1 = vi2;
239 } 260 }
240 """ 261 """
@@ -248,11 +269,14 @@ Pipeline
248 uniform sampler2D s0; 269 uniform sampler2D s0;
249 smooth in vec2 vo1; 270 smooth in vec2 vo1;
250 out vec4 f0; 271 out vec4 f0;
251 void main() { 272 vec4 setAlpha(vec4 z0) {
252 f0 = ((((((vo1).yyyx) * (0.5)) + (texture2D 273 return ((z0) * (vec4 (1.0,1.0,1.0,0.0))) + (vec4
253 (s0,vo1))) * (0.7)) * (vec4 (1.0,1.0,1.0,0.0))) + (vec4
254 (0.0,0.0,0.0,1.0)); 274 (0.0,0.0,0.0,1.0));
255 } 275 }
276 void main() {
277 f0 = setAlpha (((((vo1).yyyx) * (0.5)) + (texture2D
278 (s0,vo1))) * (0.7));
279 }
256 """ 280 """
257 } 281 }
258 ] 282 ]
diff --git a/testdata/editor-examples/RecursiveTexture.out b/testdata/editor-examples/RecursiveTexture.out
index 48558ce6..4a693a78 100644
--- a/testdata/editor-examples/RecursiveTexture.out
+++ b/testdata/editor-examples/RecursiveTexture.out
@@ -814,12 +814,19 @@ Pipeline
814 in vec4 vi1; 814 in vec4 vi1;
815 in vec2 vi2; 815 in vec2 vi2;
816 smooth out vec2 vo1; 816 smooth out vec2 vo1;
817 mat4 rotMatrix = MVP;
818 mat4 rotMatrixX(float z0) {
819 return mat4 (vec4 (1.0,0.0,0.0,0.0)
820 ,vec4 (0.0,cos (z0),sin (z0),0.0)
821 ,vec4 (0.0,(0.0) - (sin (z0)),cos (z0),0.0)
822 ,vec4 (0.0,0.0,0.0,1.0));
823 }
824 vec4 scale(float z0,vec4 z1) {
825 return (z1) * (vec4 (z0,z0,z0,1.0));
826 }
817 void main() { 827 void main() {
818 gl_Position = (MVP) * (((mat4 (vec4 (1.0,0.0,0.0,0.0) 828 gl_Position = (rotMatrix) * (scale
819 ,vec4 (0.0,cos (0.0),sin (0.0),0.0) 829 (0.4,(rotMatrixX (0.0)) * (vi1)));
820 ,vec4 (0.0,(0.0) - (sin (0.0)),cos (0.0),0.0)
821 ,vec4 (0.0,0.0,0.0,1.0))) * (vi1)) * (vec4
822 (0.4,0.4,0.4,1.0)));
823 vo1 = vi2; 830 vo1 = vi2;
824 } 831 }
825 """ 832 """
@@ -833,11 +840,14 @@ Pipeline
833 uniform sampler2D s0; 840 uniform sampler2D s0;
834 smooth in vec2 vo1; 841 smooth in vec2 vo1;
835 out vec4 f0; 842 out vec4 f0;
836 void main() { 843 vec4 setAlpha(vec4 z0) {
837 f0 = ((((((vo1).yyyx) * (0.5)) + (texture2D 844 return ((z0) * (vec4 (1.0,1.0,1.0,0.0))) + (vec4
838 (s0,vo1))) * (0.7)) * (vec4 (1.0,1.0,1.0,0.0))) + (vec4
839 (0.0,0.0,0.0,1.0)); 845 (0.0,0.0,0.0,1.0));
840 } 846 }
847 void main() {
848 f0 = setAlpha (((((vo1).yyyx) * (0.5)) + (texture2D
849 (s0,vo1))) * (0.7));
850 }
841 """ 851 """
842 } 852 }
843 , Program 853 , Program
@@ -859,12 +869,19 @@ Pipeline
859 in vec4 vi1; 869 in vec4 vi1;
860 in vec2 vi2; 870 in vec2 vi2;
861 smooth out vec2 vo1; 871 smooth out vec2 vo1;
872 mat4 rotMatrix = MVP;
873 mat4 rotMatrixX(float z0) {
874 return mat4 (vec4 (1.0,0.0,0.0,0.0)
875 ,vec4 (0.0,cos (z0),sin (z0),0.0)
876 ,vec4 (0.0,(0.0) - (sin (z0)),cos (z0),0.0)
877 ,vec4 (0.0,0.0,0.0,1.0));
878 }
879 vec4 scale(float z0,vec4 z1) {
880 return (z1) * (vec4 (z0,z0,z0,1.0));
881 }
862 void main() { 882 void main() {
863 gl_Position = (MVP) * (((mat4 (vec4 (1.0,0.0,0.0,0.0) 883 gl_Position = (rotMatrix) * (scale
864 ,vec4 (0.0,cos (0.1),sin (0.1),0.0) 884 (0.4,(rotMatrixX (0.1)) * (vi1)));
865 ,vec4 (0.0,(0.0) - (sin (0.1)),cos (0.1),0.0)
866 ,vec4 (0.0,0.0,0.0,1.0))) * (vi1)) * (vec4
867 (0.4,0.4,0.4,1.0)));
868 vo1 = vi2; 885 vo1 = vi2;
869 } 886 }
870 """ 887 """
@@ -878,11 +895,14 @@ Pipeline
878 uniform sampler2D s0; 895 uniform sampler2D s0;
879 smooth in vec2 vo1; 896 smooth in vec2 vo1;
880 out vec4 f0; 897 out vec4 f0;
881 void main() { 898 vec4 setAlpha(vec4 z0) {
882 f0 = ((((((vo1).yyyx) * (0.5)) + (texture2D 899 return ((z0) * (vec4 (1.0,1.0,1.0,0.0))) + (vec4
883 (s0,vo1))) * (0.7)) * (vec4 (1.0,1.0,1.0,0.0))) + (vec4
884 (0.0,0.0,0.0,1.0)); 900 (0.0,0.0,0.0,1.0));
885 } 901 }
902 void main() {
903 f0 = setAlpha (((((vo1).yyyx) * (0.5)) + (texture2D
904 (s0,vo1))) * (0.7));
905 }
886 """ 906 """
887 } 907 }
888 , Program 908 , Program
@@ -904,12 +924,19 @@ Pipeline
904 in vec4 vi1; 924 in vec4 vi1;
905 in vec2 vi2; 925 in vec2 vi2;
906 smooth out vec2 vo1; 926 smooth out vec2 vo1;
927 mat4 rotMatrix = MVP;
928 mat4 rotMatrixX(float z0) {
929 return mat4 (vec4 (1.0,0.0,0.0,0.0)
930 ,vec4 (0.0,cos (z0),sin (z0),0.0)
931 ,vec4 (0.0,(0.0) - (sin (z0)),cos (z0),0.0)
932 ,vec4 (0.0,0.0,0.0,1.0));
933 }
934 vec4 scale(float z0,vec4 z1) {
935 return (z1) * (vec4 (z0,z0,z0,1.0));
936 }
907 void main() { 937 void main() {
908 gl_Position = (MVP) * (((mat4 (vec4 (1.0,0.0,0.0,0.0) 938 gl_Position = (rotMatrix) * (scale
909 ,vec4 (0.0,cos (0.2),sin (0.2),0.0) 939 (0.4,(rotMatrixX (0.2)) * (vi1)));
910 ,vec4 (0.0,(0.0) - (sin (0.2)),cos (0.2),0.0)
911 ,vec4 (0.0,0.0,0.0,1.0))) * (vi1)) * (vec4
912 (0.4,0.4,0.4,1.0)));
913 vo1 = vi2; 940 vo1 = vi2;
914 } 941 }
915 """ 942 """
@@ -923,11 +950,14 @@ Pipeline
923 uniform sampler2D s0; 950 uniform sampler2D s0;
924 smooth in vec2 vo1; 951 smooth in vec2 vo1;
925 out vec4 f0; 952 out vec4 f0;
926 void main() { 953 vec4 setAlpha(vec4 z0) {
927 f0 = ((((((vo1).yyyx) * (0.5)) + (texture2D 954 return ((z0) * (vec4 (1.0,1.0,1.0,0.0))) + (vec4
928 (s0,vo1))) * (0.7)) * (vec4 (1.0,1.0,1.0,0.0))) + (vec4
929 (0.0,0.0,0.0,1.0)); 955 (0.0,0.0,0.0,1.0));
930 } 956 }
957 void main() {
958 f0 = setAlpha (((((vo1).yyyx) * (0.5)) + (texture2D
959 (s0,vo1))) * (0.7));
960 }
931 """ 961 """
932 } 962 }
933 , Program 963 , Program
@@ -949,12 +979,19 @@ Pipeline
949 in vec4 vi1; 979 in vec4 vi1;
950 in vec2 vi2; 980 in vec2 vi2;
951 smooth out vec2 vo1; 981 smooth out vec2 vo1;
982 mat4 rotMatrix = MVP;
983 mat4 rotMatrixX(float z0) {
984 return mat4 (vec4 (1.0,0.0,0.0,0.0)
985 ,vec4 (0.0,cos (z0),sin (z0),0.0)
986 ,vec4 (0.0,(0.0) - (sin (z0)),cos (z0),0.0)
987 ,vec4 (0.0,0.0,0.0,1.0));
988 }
989 vec4 scale(float z0,vec4 z1) {
990 return (z1) * (vec4 (z0,z0,z0,1.0));
991 }
952 void main() { 992 void main() {
953 gl_Position = (MVP) * (((mat4 (vec4 (1.0,0.0,0.0,0.0) 993 gl_Position = (rotMatrix) * (scale
954 ,vec4 (0.0,cos (0.3),sin (0.3),0.0) 994 (0.4,(rotMatrixX (0.3)) * (vi1)));
955 ,vec4 (0.0,(0.0) - (sin (0.3)),cos (0.3),0.0)
956 ,vec4 (0.0,0.0,0.0,1.0))) * (vi1)) * (vec4
957 (0.4,0.4,0.4,1.0)));
958 vo1 = vi2; 995 vo1 = vi2;
959 } 996 }
960 """ 997 """
@@ -968,11 +1005,14 @@ Pipeline
968 uniform sampler2D s0; 1005 uniform sampler2D s0;
969 smooth in vec2 vo1; 1006 smooth in vec2 vo1;
970 out vec4 f0; 1007 out vec4 f0;
971 void main() { 1008 vec4 setAlpha(vec4 z0) {
972 f0 = ((((((vo1).yyyx) * (0.5)) + (texture2D 1009 return ((z0) * (vec4 (1.0,1.0,1.0,0.0))) + (vec4
973 (s0,vo1))) * (0.7)) * (vec4 (1.0,1.0,1.0,0.0))) + (vec4
974 (0.0,0.0,0.0,1.0)); 1010 (0.0,0.0,0.0,1.0));
975 } 1011 }
1012 void main() {
1013 f0 = setAlpha (((((vo1).yyyx) * (0.5)) + (texture2D
1014 (s0,vo1))) * (0.7));
1015 }
976 """ 1016 """
977 } 1017 }
978 , Program 1018 , Program
@@ -994,12 +1034,19 @@ Pipeline
994 in vec4 vi1; 1034 in vec4 vi1;
995 in vec2 vi2; 1035 in vec2 vi2;
996 smooth out vec2 vo1; 1036 smooth out vec2 vo1;
1037 mat4 rotMatrix = MVP;
1038 mat4 rotMatrixX(float z0) {
1039 return mat4 (vec4 (1.0,0.0,0.0,0.0)
1040 ,vec4 (0.0,cos (z0),sin (z0),0.0)
1041 ,vec4 (0.0,(0.0) - (sin (z0)),cos (z0),0.0)
1042 ,vec4 (0.0,0.0,0.0,1.0));
1043 }
1044 vec4 scale(float z0,vec4 z1) {
1045 return (z1) * (vec4 (z0,z0,z0,1.0));
1046 }
997 void main() { 1047 void main() {
998 gl_Position = (MVP) * (((mat4 (vec4 (1.0,0.0,0.0,0.0) 1048 gl_Position = (rotMatrix) * (scale
999 ,vec4 (0.0,cos (0.4),sin (0.4),0.0) 1049 (0.4,(rotMatrixX (0.4)) * (vi1)));
1000 ,vec4 (0.0,(0.0) - (sin (0.4)),cos (0.4),0.0)
1001 ,vec4 (0.0,0.0,0.0,1.0))) * (vi1)) * (vec4
1002 (0.4,0.4,0.4,1.0)));
1003 vo1 = vi2; 1050 vo1 = vi2;
1004 } 1051 }
1005 """ 1052 """
@@ -1013,11 +1060,14 @@ Pipeline
1013 uniform sampler2D s0; 1060 uniform sampler2D s0;
1014 smooth in vec2 vo1; 1061 smooth in vec2 vo1;
1015 out vec4 f0; 1062 out vec4 f0;
1016 void main() { 1063 vec4 setAlpha(vec4 z0) {
1017 f0 = ((((((vo1).yyyx) * (0.5)) + (texture2D 1064 return ((z0) * (vec4 (1.0,1.0,1.0,0.0))) + (vec4
1018 (s0,vo1))) * (0.7)) * (vec4 (1.0,1.0,1.0,0.0))) + (vec4
1019 (0.0,0.0,0.0,1.0)); 1065 (0.0,0.0,0.0,1.0));
1020 } 1066 }
1067 void main() {
1068 f0 = setAlpha (((((vo1).yyyx) * (0.5)) + (texture2D
1069 (s0,vo1))) * (0.7));
1070 }
1021 """ 1071 """
1022 } 1072 }
1023 , Program 1073 , Program
@@ -1039,12 +1089,19 @@ Pipeline
1039 in vec4 vi1; 1089 in vec4 vi1;
1040 in vec2 vi2; 1090 in vec2 vi2;
1041 smooth out vec2 vo1; 1091 smooth out vec2 vo1;
1092 mat4 rotMatrix = MVP;
1093 mat4 rotMatrixX(float z0) {
1094 return mat4 (vec4 (1.0,0.0,0.0,0.0)
1095 ,vec4 (0.0,cos (z0),sin (z0),0.0)
1096 ,vec4 (0.0,(0.0) - (sin (z0)),cos (z0),0.0)
1097 ,vec4 (0.0,0.0,0.0,1.0));
1098 }
1099 vec4 scale(float z0,vec4 z1) {
1100 return (z1) * (vec4 (z0,z0,z0,1.0));
1101 }
1042 void main() { 1102 void main() {
1043 gl_Position = (MVP) * (((mat4 (vec4 (1.0,0.0,0.0,0.0) 1103 gl_Position = (rotMatrix) * (scale
1044 ,vec4 (0.0,cos (0.5),sin (0.5),0.0) 1104 (0.4,(rotMatrixX (0.5)) * (vi1)));
1045 ,vec4 (0.0,(0.0) - (sin (0.5)),cos (0.5),0.0)
1046 ,vec4 (0.0,0.0,0.0,1.0))) * (vi1)) * (vec4
1047 (0.4,0.4,0.4,1.0)));
1048 vo1 = vi2; 1105 vo1 = vi2;
1049 } 1106 }
1050 """ 1107 """
@@ -1058,11 +1115,14 @@ Pipeline
1058 uniform sampler2D s0; 1115 uniform sampler2D s0;
1059 smooth in vec2 vo1; 1116 smooth in vec2 vo1;
1060 out vec4 f0; 1117 out vec4 f0;
1061 void main() { 1118 vec4 setAlpha(vec4 z0) {
1062 f0 = ((((((vo1).yyyx) * (0.5)) + (texture2D 1119 return ((z0) * (vec4 (1.0,1.0,1.0,0.0))) + (vec4
1063 (s0,vo1))) * (0.7)) * (vec4 (1.0,1.0,1.0,0.0))) + (vec4
1064 (0.0,0.0,0.0,1.0)); 1120 (0.0,0.0,0.0,1.0));
1065 } 1121 }
1122 void main() {
1123 f0 = setAlpha (((((vo1).yyyx) * (0.5)) + (texture2D
1124 (s0,vo1))) * (0.7));
1125 }
1066 """ 1126 """
1067 } 1127 }
1068 , Program 1128 , Program
@@ -1084,12 +1144,19 @@ Pipeline
1084 in vec4 vi1; 1144 in vec4 vi1;
1085 in vec2 vi2; 1145 in vec2 vi2;
1086 smooth out vec2 vo1; 1146 smooth out vec2 vo1;
1147 mat4 rotMatrix = MVP;
1148 mat4 rotMatrixX(float z0) {
1149 return mat4 (vec4 (1.0,0.0,0.0,0.0)
1150 ,vec4 (0.0,cos (z0),sin (z0),0.0)
1151 ,vec4 (0.0,(0.0) - (sin (z0)),cos (z0),0.0)
1152 ,vec4 (0.0,0.0,0.0,1.0));
1153 }
1154 vec4 scale(float z0,vec4 z1) {
1155 return (z1) * (vec4 (z0,z0,z0,1.0));
1156 }
1087 void main() { 1157 void main() {
1088 gl_Position = (MVP) * (((mat4 (vec4 (1.0,0.0,0.0,0.0) 1158 gl_Position = (rotMatrix) * (scale
1089 ,vec4 (0.0,cos (0.6),sin (0.6),0.0) 1159 (0.4,(rotMatrixX (0.6)) * (vi1)));
1090 ,vec4 (0.0,(0.0) - (sin (0.6)),cos (0.6),0.0)
1091 ,vec4 (0.0,0.0,0.0,1.0))) * (vi1)) * (vec4
1092 (0.4,0.4,0.4,1.0)));
1093 vo1 = vi2; 1160 vo1 = vi2;
1094 } 1161 }
1095 """ 1162 """
@@ -1103,11 +1170,14 @@ Pipeline
1103 uniform sampler2D s0; 1170 uniform sampler2D s0;
1104 smooth in vec2 vo1; 1171 smooth in vec2 vo1;
1105 out vec4 f0; 1172 out vec4 f0;
1106 void main() { 1173 vec4 setAlpha(vec4 z0) {
1107 f0 = ((((((vo1).yyyx) * (0.5)) + (texture2D 1174 return ((z0) * (vec4 (1.0,1.0,1.0,0.0))) + (vec4
1108 (s0,vo1))) * (0.7)) * (vec4 (1.0,1.0,1.0,0.0))) + (vec4
1109 (0.0,0.0,0.0,1.0)); 1175 (0.0,0.0,0.0,1.0));
1110 } 1176 }
1177 void main() {
1178 f0 = setAlpha (((((vo1).yyyx) * (0.5)) + (texture2D
1179 (s0,vo1))) * (0.7));
1180 }
1111 """ 1181 """
1112 } 1182 }
1113 , Program 1183 , Program
@@ -1129,12 +1199,19 @@ Pipeline
1129 in vec4 vi1; 1199 in vec4 vi1;
1130 in vec2 vi2; 1200 in vec2 vi2;
1131 smooth out vec2 vo1; 1201 smooth out vec2 vo1;
1202 mat4 rotMatrix = MVP;
1203 mat4 rotMatrixX(float z0) {
1204 return mat4 (vec4 (1.0,0.0,0.0,0.0)
1205 ,vec4 (0.0,cos (z0),sin (z0),0.0)
1206 ,vec4 (0.0,(0.0) - (sin (z0)),cos (z0),0.0)
1207 ,vec4 (0.0,0.0,0.0,1.0));
1208 }
1209 vec4 scale(float z0,vec4 z1) {
1210 return (z1) * (vec4 (z0,z0,z0,1.0));
1211 }
1132 void main() { 1212 void main() {
1133 gl_Position = (MVP) * (((mat4 (vec4 (1.0,0.0,0.0,0.0) 1213 gl_Position = (rotMatrix) * (scale
1134 ,vec4 (0.0,cos (0.7),sin (0.7),0.0) 1214 (0.4,(rotMatrixX (0.7)) * (vi1)));
1135 ,vec4 (0.0,(0.0) - (sin (0.7)),cos (0.7),0.0)
1136 ,vec4 (0.0,0.0,0.0,1.0))) * (vi1)) * (vec4
1137 (0.4,0.4,0.4,1.0)));
1138 vo1 = vi2; 1215 vo1 = vi2;
1139 } 1216 }
1140 """ 1217 """
@@ -1148,11 +1225,14 @@ Pipeline
1148 uniform sampler2D s0; 1225 uniform sampler2D s0;
1149 smooth in vec2 vo1; 1226 smooth in vec2 vo1;
1150 out vec4 f0; 1227 out vec4 f0;
1151 void main() { 1228 vec4 setAlpha(vec4 z0) {
1152 f0 = ((((((vo1).yyyx) * (0.5)) + (texture2D 1229 return ((z0) * (vec4 (1.0,1.0,1.0,0.0))) + (vec4
1153 (s0,vo1))) * (0.7)) * (vec4 (1.0,1.0,1.0,0.0))) + (vec4
1154 (0.0,0.0,0.0,1.0)); 1230 (0.0,0.0,0.0,1.0));
1155 } 1231 }
1232 void main() {
1233 f0 = setAlpha (((((vo1).yyyx) * (0.5)) + (texture2D
1234 (s0,vo1))) * (0.7));
1235 }
1156 """ 1236 """
1157 } 1237 }
1158 , Program 1238 , Program
@@ -1174,12 +1254,19 @@ Pipeline
1174 in vec4 vi1; 1254 in vec4 vi1;
1175 in vec2 vi2; 1255 in vec2 vi2;
1176 smooth out vec2 vo1; 1256 smooth out vec2 vo1;
1257 mat4 rotMatrix = MVP;
1258 mat4 rotMatrixX(float z0) {
1259 return mat4 (vec4 (1.0,0.0,0.0,0.0)
1260 ,vec4 (0.0,cos (z0),sin (z0),0.0)
1261 ,vec4 (0.0,(0.0) - (sin (z0)),cos (z0),0.0)
1262 ,vec4 (0.0,0.0,0.0,1.0));
1263 }
1264 vec4 scale(float z0,vec4 z1) {
1265 return (z1) * (vec4 (z0,z0,z0,1.0));
1266 }
1177 void main() { 1267 void main() {
1178 gl_Position = (MVP) * (((mat4 (vec4 (1.0,0.0,0.0,0.0) 1268 gl_Position = (rotMatrix) * (scale
1179 ,vec4 (0.0,cos (0.8),sin (0.8),0.0) 1269 (0.4,(rotMatrixX (0.8)) * (vi1)));
1180 ,vec4 (0.0,(0.0) - (sin (0.8)),cos (0.8),0.0)
1181 ,vec4 (0.0,0.0,0.0,1.0))) * (vi1)) * (vec4
1182 (0.4,0.4,0.4,1.0)));
1183 vo1 = vi2; 1270 vo1 = vi2;
1184 } 1271 }
1185 """ 1272 """
@@ -1193,11 +1280,14 @@ Pipeline
1193 uniform sampler2D s0; 1280 uniform sampler2D s0;
1194 smooth in vec2 vo1; 1281 smooth in vec2 vo1;
1195 out vec4 f0; 1282 out vec4 f0;
1196 void main() { 1283 vec4 setAlpha(vec4 z0) {
1197 f0 = ((((((vo1).yyyx) * (0.5)) + (texture2D 1284 return ((z0) * (vec4 (1.0,1.0,1.0,0.0))) + (vec4
1198 (s0,vo1))) * (0.7)) * (vec4 (1.0,1.0,1.0,0.0))) + (vec4
1199 (0.0,0.0,0.0,1.0)); 1285 (0.0,0.0,0.0,1.0));
1200 } 1286 }
1287 void main() {
1288 f0 = setAlpha (((((vo1).yyyx) * (0.5)) + (texture2D
1289 (s0,vo1))) * (0.7));
1290 }
1201 """ 1291 """
1202 } 1292 }
1203 , Program 1293 , Program
@@ -1219,12 +1309,19 @@ Pipeline
1219 in vec4 vi1; 1309 in vec4 vi1;
1220 in vec2 vi2; 1310 in vec2 vi2;
1221 smooth out vec2 vo1; 1311 smooth out vec2 vo1;
1312 mat4 rotMatrix = MVP;
1313 mat4 rotMatrixX(float z0) {
1314 return mat4 (vec4 (1.0,0.0,0.0,0.0)
1315 ,vec4 (0.0,cos (z0),sin (z0),0.0)
1316 ,vec4 (0.0,(0.0) - (sin (z0)),cos (z0),0.0)
1317 ,vec4 (0.0,0.0,0.0,1.0));
1318 }
1319 vec4 scale(float z0,vec4 z1) {
1320 return (z1) * (vec4 (z0,z0,z0,1.0));
1321 }
1222 void main() { 1322 void main() {
1223 gl_Position = (MVP) * (((mat4 (vec4 (1.0,0.0,0.0,0.0) 1323 gl_Position = (rotMatrix) * (scale
1224 ,vec4 (0.0,cos (0.9),sin (0.9),0.0) 1324 (0.4,(rotMatrixX (0.9)) * (vi1)));
1225 ,vec4 (0.0,(0.0) - (sin (0.9)),cos (0.9),0.0)
1226 ,vec4 (0.0,0.0,0.0,1.0))) * (vi1)) * (vec4
1227 (0.4,0.4,0.4,1.0)));
1228 vo1 = vi2; 1325 vo1 = vi2;
1229 } 1326 }
1230 """ 1327 """
@@ -1238,11 +1335,14 @@ Pipeline
1238 uniform sampler2D s0; 1335 uniform sampler2D s0;
1239 smooth in vec2 vo1; 1336 smooth in vec2 vo1;
1240 out vec4 f0; 1337 out vec4 f0;
1241 void main() { 1338 vec4 setAlpha(vec4 z0) {
1242 f0 = ((((((vo1).yyyx) * (0.5)) + (texture2D 1339 return ((z0) * (vec4 (1.0,1.0,1.0,0.0))) + (vec4
1243 (s0,vo1))) * (0.7)) * (vec4 (1.0,1.0,1.0,0.0))) + (vec4
1244 (0.0,0.0,0.0,1.0)); 1340 (0.0,0.0,0.0,1.0));
1245 } 1341 }
1342 void main() {
1343 f0 = setAlpha (((((vo1).yyyx) * (0.5)) + (texture2D
1344 (s0,vo1))) * (0.7));
1345 }
1246 """ 1346 """
1247 } 1347 }
1248 , Program 1348 , Program
@@ -1264,12 +1364,19 @@ Pipeline
1264 in vec4 vi1; 1364 in vec4 vi1;
1265 in vec2 vi2; 1365 in vec2 vi2;
1266 smooth out vec2 vo1; 1366 smooth out vec2 vo1;
1367 mat4 rotMatrix = MVP;
1368 mat4 rotMatrixX(float z0) {
1369 return mat4 (vec4 (1.0,0.0,0.0,0.0)
1370 ,vec4 (0.0,cos (z0),sin (z0),0.0)
1371 ,vec4 (0.0,(0.0) - (sin (z0)),cos (z0),0.0)
1372 ,vec4 (0.0,0.0,0.0,1.0));
1373 }
1374 vec4 scale(float z0,vec4 z1) {
1375 return (z1) * (vec4 (z0,z0,z0,1.0));
1376 }
1267 void main() { 1377 void main() {
1268 gl_Position = (MVP) * (((mat4 (vec4 (1.0,0.0,0.0,0.0) 1378 gl_Position = (rotMatrix) * (scale
1269 ,vec4 (0.0,cos (1.0),sin (1.0),0.0) 1379 (0.4,(rotMatrixX (1.0)) * (vi1)));
1270 ,vec4 (0.0,(0.0) - (sin (1.0)),cos (1.0),0.0)
1271 ,vec4 (0.0,0.0,0.0,1.0))) * (vi1)) * (vec4
1272 (0.4,0.4,0.4,1.0)));
1273 vo1 = vi2; 1380 vo1 = vi2;
1274 } 1381 }
1275 """ 1382 """
@@ -1283,11 +1390,14 @@ Pipeline
1283 uniform sampler2D s0; 1390 uniform sampler2D s0;
1284 smooth in vec2 vo1; 1391 smooth in vec2 vo1;
1285 out vec4 f0; 1392 out vec4 f0;
1286 void main() { 1393 vec4 setAlpha(vec4 z0) {
1287 f0 = ((((((vo1).yyyx) * (0.5)) + (texture2D 1394 return ((z0) * (vec4 (1.0,1.0,1.0,0.0))) + (vec4
1288 (s0,vo1))) * (0.7)) * (vec4 (1.0,1.0,1.0,0.0))) + (vec4
1289 (0.0,0.0,0.0,1.0)); 1395 (0.0,0.0,0.0,1.0));
1290 } 1396 }
1397 void main() {
1398 f0 = setAlpha (((((vo1).yyyx) * (0.5)) + (texture2D
1399 (s0,vo1))) * (0.7));
1400 }
1291 """ 1401 """
1292 } 1402 }
1293 , Program 1403 , Program
@@ -1309,12 +1419,19 @@ Pipeline
1309 in vec4 vi1; 1419 in vec4 vi1;
1310 in vec2 vi2; 1420 in vec2 vi2;
1311 smooth out vec2 vo1; 1421 smooth out vec2 vo1;
1422 mat4 rotMatrix = MVP;
1423 mat4 rotMatrixX(float z0) {
1424 return mat4 (vec4 (1.0,0.0,0.0,0.0)
1425 ,vec4 (0.0,cos (z0),sin (z0),0.0)
1426 ,vec4 (0.0,(0.0) - (sin (z0)),cos (z0),0.0)
1427 ,vec4 (0.0,0.0,0.0,1.0));
1428 }
1429 vec4 scale(float z0,vec4 z1) {
1430 return (z1) * (vec4 (z0,z0,z0,1.0));
1431 }
1312 void main() { 1432 void main() {
1313 gl_Position = (MVP) * (((mat4 (vec4 (1.0,0.0,0.0,0.0) 1433 gl_Position = (rotMatrix) * (scale
1314 ,vec4 (0.0,cos (1.1),sin (1.1),0.0) 1434 (0.4,(rotMatrixX (1.1)) * (vi1)));
1315 ,vec4 (0.0,(0.0) - (sin (1.1)),cos (1.1),0.0)
1316 ,vec4 (0.0,0.0,0.0,1.0))) * (vi1)) * (vec4
1317 (0.4,0.4,0.4,1.0)));
1318 vo1 = vi2; 1435 vo1 = vi2;
1319 } 1436 }
1320 """ 1437 """
@@ -1328,11 +1445,14 @@ Pipeline
1328 uniform sampler2D s0; 1445 uniform sampler2D s0;
1329 smooth in vec2 vo1; 1446 smooth in vec2 vo1;
1330 out vec4 f0; 1447 out vec4 f0;
1331 void main() { 1448 vec4 setAlpha(vec4 z0) {
1332 f0 = ((((((vo1).yyyx) * (0.5)) + (texture2D 1449 return ((z0) * (vec4 (1.0,1.0,1.0,0.0))) + (vec4
1333 (s0,vo1))) * (0.7)) * (vec4 (1.0,1.0,1.0,0.0))) + (vec4
1334 (0.0,0.0,0.0,1.0)); 1450 (0.0,0.0,0.0,1.0));
1335 } 1451 }
1452 void main() {
1453 f0 = setAlpha (((((vo1).yyyx) * (0.5)) + (texture2D
1454 (s0,vo1))) * (0.7));
1455 }
1336 """ 1456 """
1337 } 1457 }
1338 , Program 1458 , Program
@@ -1354,12 +1474,19 @@ Pipeline
1354 in vec4 vi1; 1474 in vec4 vi1;
1355 in vec2 vi2; 1475 in vec2 vi2;
1356 smooth out vec2 vo1; 1476 smooth out vec2 vo1;
1477 mat4 rotMatrix = MVP;
1478 mat4 rotMatrixX(float z0) {
1479 return mat4 (vec4 (1.0,0.0,0.0,0.0)
1480 ,vec4 (0.0,cos (z0),sin (z0),0.0)
1481 ,vec4 (0.0,(0.0) - (sin (z0)),cos (z0),0.0)
1482 ,vec4 (0.0,0.0,0.0,1.0));
1483 }
1484 vec4 scale(float z0,vec4 z1) {
1485 return (z1) * (vec4 (z0,z0,z0,1.0));
1486 }
1357 void main() { 1487 void main() {
1358 gl_Position = (MVP) * (((mat4 (vec4 (1.0,0.0,0.0,0.0) 1488 gl_Position = (rotMatrix) * (scale
1359 ,vec4 (0.0,cos (1.2),sin (1.2),0.0) 1489 (0.4,(rotMatrixX (1.2)) * (vi1)));
1360 ,vec4 (0.0,(0.0) - (sin (1.2)),cos (1.2),0.0)
1361 ,vec4 (0.0,0.0,0.0,1.0))) * (vi1)) * (vec4
1362 (0.4,0.4,0.4,1.0)));
1363 vo1 = vi2; 1490 vo1 = vi2;
1364 } 1491 }
1365 """ 1492 """
@@ -1373,11 +1500,14 @@ Pipeline
1373 uniform sampler2D s0; 1500 uniform sampler2D s0;
1374 smooth in vec2 vo1; 1501 smooth in vec2 vo1;
1375 out vec4 f0; 1502 out vec4 f0;
1376 void main() { 1503 vec4 setAlpha(vec4 z0) {
1377 f0 = ((((((vo1).yyyx) * (0.5)) + (texture2D 1504 return ((z0) * (vec4 (1.0,1.0,1.0,0.0))) + (vec4
1378 (s0,vo1))) * (0.7)) * (vec4 (1.0,1.0,1.0,0.0))) + (vec4
1379 (0.0,0.0,0.0,1.0)); 1505 (0.0,0.0,0.0,1.0));
1380 } 1506 }
1507 void main() {
1508 f0 = setAlpha (((((vo1).yyyx) * (0.5)) + (texture2D
1509 (s0,vo1))) * (0.7));
1510 }
1381 """ 1511 """
1382 } 1512 }
1383 , Program 1513 , Program
@@ -1399,12 +1529,19 @@ Pipeline
1399 in vec4 vi1; 1529 in vec4 vi1;
1400 in vec2 vi2; 1530 in vec2 vi2;
1401 smooth out vec2 vo1; 1531 smooth out vec2 vo1;
1532 mat4 rotMatrix = MVP;
1533 mat4 rotMatrixX(float z0) {
1534 return mat4 (vec4 (1.0,0.0,0.0,0.0)
1535 ,vec4 (0.0,cos (z0),sin (z0),0.0)
1536 ,vec4 (0.0,(0.0) - (sin (z0)),cos (z0),0.0)
1537 ,vec4 (0.0,0.0,0.0,1.0));
1538 }
1539 vec4 scale(float z0,vec4 z1) {
1540 return (z1) * (vec4 (z0,z0,z0,1.0));
1541 }
1402 void main() { 1542 void main() {
1403 gl_Position = (MVP) * (((mat4 (vec4 (1.0,0.0,0.0,0.0) 1543 gl_Position = (rotMatrix) * (scale
1404 ,vec4 (0.0,cos (1.3),sin (1.3),0.0) 1544 (0.4,(rotMatrixX (1.3)) * (vi1)));
1405 ,vec4 (0.0,(0.0) - (sin (1.3)),cos (1.3),0.0)
1406 ,vec4 (0.0,0.0,0.0,1.0))) * (vi1)) * (vec4
1407 (0.4,0.4,0.4,1.0)));
1408 vo1 = vi2; 1545 vo1 = vi2;
1409 } 1546 }
1410 """ 1547 """
@@ -1418,11 +1555,14 @@ Pipeline
1418 uniform sampler2D s0; 1555 uniform sampler2D s0;
1419 smooth in vec2 vo1; 1556 smooth in vec2 vo1;
1420 out vec4 f0; 1557 out vec4 f0;
1421 void main() { 1558 vec4 setAlpha(vec4 z0) {
1422 f0 = ((((((vo1).yyyx) * (0.5)) + (texture2D 1559 return ((z0) * (vec4 (1.0,1.0,1.0,0.0))) + (vec4
1423 (s0,vo1))) * (0.7)) * (vec4 (1.0,1.0,1.0,0.0))) + (vec4
1424 (0.0,0.0,0.0,1.0)); 1560 (0.0,0.0,0.0,1.0));
1425 } 1561 }
1562 void main() {
1563 f0 = setAlpha (((((vo1).yyyx) * (0.5)) + (texture2D
1564 (s0,vo1))) * (0.7));
1565 }
1426 """ 1566 """
1427 } 1567 }
1428 , Program 1568 , Program
@@ -1444,12 +1584,19 @@ Pipeline
1444 in vec4 vi1; 1584 in vec4 vi1;
1445 in vec2 vi2; 1585 in vec2 vi2;
1446 smooth out vec2 vo1; 1586 smooth out vec2 vo1;
1587 mat4 rotMatrix = MVP;
1588 mat4 rotMatrixX(float z0) {
1589 return mat4 (vec4 (1.0,0.0,0.0,0.0)
1590 ,vec4 (0.0,cos (z0),sin (z0),0.0)
1591 ,vec4 (0.0,(0.0) - (sin (z0)),cos (z0),0.0)
1592 ,vec4 (0.0,0.0,0.0,1.0));
1593 }
1594 vec4 scale(float z0,vec4 z1) {
1595 return (z1) * (vec4 (z0,z0,z0,1.0));
1596 }
1447 void main() { 1597 void main() {
1448 gl_Position = (MVP) * (((mat4 (vec4 (1.0,0.0,0.0,0.0) 1598 gl_Position = (rotMatrix) * (scale
1449 ,vec4 (0.0,cos (1.4),sin (1.4),0.0) 1599 (0.4,(rotMatrixX (1.4)) * (vi1)));
1450 ,vec4 (0.0,(0.0) - (sin (1.4)),cos (1.4),0.0)
1451 ,vec4 (0.0,0.0,0.0,1.0))) * (vi1)) * (vec4
1452 (0.4,0.4,0.4,1.0)));
1453 vo1 = vi2; 1600 vo1 = vi2;
1454 } 1601 }
1455 """ 1602 """
@@ -1463,11 +1610,14 @@ Pipeline
1463 uniform sampler2D s0; 1610 uniform sampler2D s0;
1464 smooth in vec2 vo1; 1611 smooth in vec2 vo1;
1465 out vec4 f0; 1612 out vec4 f0;
1466 void main() { 1613 vec4 setAlpha(vec4 z0) {
1467 f0 = ((((((vo1).yyyx) * (0.5)) + (texture2D 1614 return ((z0) * (vec4 (1.0,1.0,1.0,0.0))) + (vec4
1468 (s0,vo1))) * (0.7)) * (vec4 (1.0,1.0,1.0,0.0))) + (vec4
1469 (0.0,0.0,0.0,1.0)); 1615 (0.0,0.0,0.0,1.0));
1470 } 1616 }
1617 void main() {
1618 f0 = setAlpha (((((vo1).yyyx) * (0.5)) + (texture2D
1619 (s0,vo1))) * (0.7));
1620 }
1471 """ 1621 """
1472 } 1622 }
1473 ] 1623 ]
diff --git a/testdata/editor-examples/Stripes.out b/testdata/editor-examples/Stripes.out
index b3e3724a..60662a5b 100644
--- a/testdata/editor-examples/Stripes.out
+++ b/testdata/editor-examples/Stripes.out
@@ -29,8 +29,11 @@ Pipeline
29 } 29 }
30 in vec4 vi1; 30 in vec4 vi1;
31 smooth out vec4 vo1; 31 smooth out vec4 vo1;
32 vec4 scale(float z0,vec4 z1) {
33 return (z1) * (vec4 (z0,z0,z0,1.0));
34 }
32 void main() { 35 void main() {
33 gl_Position = (vi1) * (vec4 (1.0,1.0,1.0,1.0)); 36 gl_Position = scale (1.0,vi1);
34 vo1 = vi1; 37 vo1 = vi1;
35 } 38 }
36 """ 39 """
@@ -44,17 +47,21 @@ Pipeline
44 uniform float Time; 47 uniform float Time;
45 smooth in vec4 vo1; 48 smooth in vec4 vo1;
46 out vec4 f0; 49 out vec4 f0;
50 mat4 rotMatrixY(float z0) {
51 return mat4 (vec4 (cos (z0),0.0,(0.0) - (sin (z0)),0.0)
52 ,vec4 (0.0,1.0,0.0,0.0)
53 ,vec4 (sin (z0),0.0,cos (z0),0.0)
54 ,vec4 (0.0,0.0,0.0,1.0));
55 }
56 mat4 rotMatrixZ(float z0) {
57 return mat4 (vec4 (cos (z0),sin (z0),0.0,0.0)
58 ,vec4 ((0.0) - (sin (z0)),cos (z0),0.0,0.0)
59 ,vec4 (0.0,0.0,1.0,0.0)
60 ,vec4 (0.0,0.0,0.0,1.0));
61 }
47 void main() { 62 void main() {
48 if (!((sin ((10.0) * (((mat4 63 if (!((sin ((10.0) * (((rotMatrixY (Time)) * ((rotMatrixZ
49 (vec4 (cos (Time),0.0,(0.0) - (sin (Time)),0.0) 64 ((Time) * (1.0))) * (vo1))).x))) > (0.5))) discard;
50 ,vec4 (0.0,1.0,0.0,0.0)
51 ,vec4 (sin (Time),0.0,cos (Time),0.0)
52 ,vec4 (0.0,0.0,0.0,1.0))) * ((mat4
53 (vec4 (cos ((Time) * (1.0)),sin ((Time) * (1.0)),0.0,0.0)
54 ,vec4
55 ((0.0) - (sin ((Time) * (1.0))),cos ((Time) * (1.0)),0.0,0.0)
56 ,vec4 (0.0,0.0,1.0,0.0)
57 ,vec4 (0.0,0.0,0.0,1.0))) * (vo1))).x))) > (0.5))) discard;
58 f0 = vec4 (0.0,0.0,0.0,1.0); 65 f0 = vec4 (0.0,0.0,0.0,1.0);
59 } 66 }
60 """ 67 """
@@ -74,8 +81,11 @@ Pipeline
74 } 81 }
75 in vec4 vi1; 82 in vec4 vi1;
76 smooth out vec4 vo1; 83 smooth out vec4 vo1;
84 vec4 scale(float z0,vec4 z1) {
85 return (z1) * (vec4 (z0,z0,z0,1.0));
86 }
77 void main() { 87 void main() {
78 gl_Position = (vi1) * (vec4 (0.9,0.9,0.9,1.0)); 88 gl_Position = scale (0.9,vi1);
79 vo1 = vi1; 89 vo1 = vi1;
80 } 90 }
81 """ 91 """
@@ -89,17 +99,21 @@ Pipeline
89 uniform float Time; 99 uniform float Time;
90 smooth in vec4 vo1; 100 smooth in vec4 vo1;
91 out vec4 f0; 101 out vec4 f0;
102 mat4 rotMatrixY(float z0) {
103 return mat4 (vec4 (cos (z0),0.0,(0.0) - (sin (z0)),0.0)
104 ,vec4 (0.0,1.0,0.0,0.0)
105 ,vec4 (sin (z0),0.0,cos (z0),0.0)
106 ,vec4 (0.0,0.0,0.0,1.0));
107 }
108 mat4 rotMatrixZ(float z0) {
109 return mat4 (vec4 (cos (z0),sin (z0),0.0,0.0)
110 ,vec4 ((0.0) - (sin (z0)),cos (z0),0.0,0.0)
111 ,vec4 (0.0,0.0,1.0,0.0)
112 ,vec4 (0.0,0.0,0.0,1.0));
113 }
92 void main() { 114 void main() {
93 if (!((sin ((10.0) * (((mat4 115 if (!((sin ((10.0) * (((rotMatrixY (Time)) * ((rotMatrixZ
94 (vec4 (cos (Time),0.0,(0.0) - (sin (Time)),0.0) 116 ((Time) * (0.9))) * (vo1))).x))) > (0.5))) discard;
95 ,vec4 (0.0,1.0,0.0,0.0)
96 ,vec4 (sin (Time),0.0,cos (Time),0.0)
97 ,vec4 (0.0,0.0,0.0,1.0))) * ((mat4
98 (vec4 (cos ((Time) * (0.9)),sin ((Time) * (0.9)),0.0,0.0)
99 ,vec4
100 ((0.0) - (sin ((Time) * (0.9))),cos ((Time) * (0.9)),0.0,0.0)
101 ,vec4 (0.0,0.0,1.0,0.0)
102 ,vec4 (0.0,0.0,0.0,1.0))) * (vo1))).x))) > (0.5))) discard;
103 f0 = vec4 (9.999999999999998e-2 117 f0 = vec4 (9.999999999999998e-2
104 ,9.999999999999998e-2 118 ,9.999999999999998e-2
105 ,9.999999999999998e-2 119 ,9.999999999999998e-2
@@ -122,8 +136,11 @@ Pipeline
122 } 136 }
123 in vec4 vi1; 137 in vec4 vi1;
124 smooth out vec4 vo1; 138 smooth out vec4 vo1;
139 vec4 scale(float z0,vec4 z1) {
140 return (z1) * (vec4 (z0,z0,z0,1.0));
141 }
125 void main() { 142 void main() {
126 gl_Position = (vi1) * (vec4 (0.8,0.8,0.8,1.0)); 143 gl_Position = scale (0.8,vi1);
127 vo1 = vi1; 144 vo1 = vi1;
128 } 145 }
129 """ 146 """
@@ -137,17 +154,21 @@ Pipeline
137 uniform float Time; 154 uniform float Time;
138 smooth in vec4 vo1; 155 smooth in vec4 vo1;
139 out vec4 f0; 156 out vec4 f0;
157 mat4 rotMatrixY(float z0) {
158 return mat4 (vec4 (cos (z0),0.0,(0.0) - (sin (z0)),0.0)
159 ,vec4 (0.0,1.0,0.0,0.0)
160 ,vec4 (sin (z0),0.0,cos (z0),0.0)
161 ,vec4 (0.0,0.0,0.0,1.0));
162 }
163 mat4 rotMatrixZ(float z0) {
164 return mat4 (vec4 (cos (z0),sin (z0),0.0,0.0)
165 ,vec4 ((0.0) - (sin (z0)),cos (z0),0.0,0.0)
166 ,vec4 (0.0,0.0,1.0,0.0)
167 ,vec4 (0.0,0.0,0.0,1.0));
168 }
140 void main() { 169 void main() {
141 if (!((sin ((10.0) * (((mat4 170 if (!((sin ((10.0) * (((rotMatrixY (Time)) * ((rotMatrixZ
142 (vec4 (cos (Time),0.0,(0.0) - (sin (Time)),0.0) 171 ((Time) * (0.8))) * (vo1))).x))) > (0.5))) discard;
143 ,vec4 (0.0,1.0,0.0,0.0)
144 ,vec4 (sin (Time),0.0,cos (Time),0.0)
145 ,vec4 (0.0,0.0,0.0,1.0))) * ((mat4
146 (vec4 (cos ((Time) * (0.8)),sin ((Time) * (0.8)),0.0,0.0)
147 ,vec4
148 ((0.0) - (sin ((Time) * (0.8))),cos ((Time) * (0.8)),0.0,0.0)
149 ,vec4 (0.0,0.0,1.0,0.0)
150 ,vec4 (0.0,0.0,0.0,1.0))) * (vo1))).x))) > (0.5))) discard;
151 f0 = vec4 (0.19999999999999996 172 f0 = vec4 (0.19999999999999996
152 ,0.19999999999999996 173 ,0.19999999999999996
153 ,0.19999999999999996 174 ,0.19999999999999996
@@ -170,8 +191,11 @@ Pipeline
170 } 191 }
171 in vec4 vi1; 192 in vec4 vi1;
172 smooth out vec4 vo1; 193 smooth out vec4 vo1;
194 vec4 scale(float z0,vec4 z1) {
195 return (z1) * (vec4 (z0,z0,z0,1.0));
196 }
173 void main() { 197 void main() {
174 gl_Position = (vi1) * (vec4 (0.7,0.7,0.7,1.0)); 198 gl_Position = scale (0.7,vi1);
175 vo1 = vi1; 199 vo1 = vi1;
176 } 200 }
177 """ 201 """
@@ -185,17 +209,21 @@ Pipeline
185 uniform float Time; 209 uniform float Time;
186 smooth in vec4 vo1; 210 smooth in vec4 vo1;
187 out vec4 f0; 211 out vec4 f0;
212 mat4 rotMatrixY(float z0) {
213 return mat4 (vec4 (cos (z0),0.0,(0.0) - (sin (z0)),0.0)
214 ,vec4 (0.0,1.0,0.0,0.0)
215 ,vec4 (sin (z0),0.0,cos (z0),0.0)
216 ,vec4 (0.0,0.0,0.0,1.0));
217 }
218 mat4 rotMatrixZ(float z0) {
219 return mat4 (vec4 (cos (z0),sin (z0),0.0,0.0)
220 ,vec4 ((0.0) - (sin (z0)),cos (z0),0.0,0.0)
221 ,vec4 (0.0,0.0,1.0,0.0)
222 ,vec4 (0.0,0.0,0.0,1.0));
223 }
188 void main() { 224 void main() {
189 if (!((sin ((10.0) * (((mat4 225 if (!((sin ((10.0) * (((rotMatrixY (Time)) * ((rotMatrixZ
190 (vec4 (cos (Time),0.0,(0.0) - (sin (Time)),0.0) 226 ((Time) * (0.7))) * (vo1))).x))) > (0.5))) discard;
191 ,vec4 (0.0,1.0,0.0,0.0)
192 ,vec4 (sin (Time),0.0,cos (Time),0.0)
193 ,vec4 (0.0,0.0,0.0,1.0))) * ((mat4
194 (vec4 (cos ((Time) * (0.7)),sin ((Time) * (0.7)),0.0,0.0)
195 ,vec4
196 ((0.0) - (sin ((Time) * (0.7))),cos ((Time) * (0.7)),0.0,0.0)
197 ,vec4 (0.0,0.0,1.0,0.0)
198 ,vec4 (0.0,0.0,0.0,1.0))) * (vo1))).x))) > (0.5))) discard;
199 f0 = vec4 (0.30000000000000004 227 f0 = vec4 (0.30000000000000004
200 ,0.30000000000000004 228 ,0.30000000000000004
201 ,0.30000000000000004 229 ,0.30000000000000004
@@ -218,8 +246,11 @@ Pipeline
218 } 246 }
219 in vec4 vi1; 247 in vec4 vi1;
220 smooth out vec4 vo1; 248 smooth out vec4 vo1;
249 vec4 scale(float z0,vec4 z1) {
250 return (z1) * (vec4 (z0,z0,z0,1.0));
251 }
221 void main() { 252 void main() {
222 gl_Position = (vi1) * (vec4 (0.6,0.6,0.6,1.0)); 253 gl_Position = scale (0.6,vi1);
223 vo1 = vi1; 254 vo1 = vi1;
224 } 255 }
225 """ 256 """
@@ -233,17 +264,21 @@ Pipeline
233 uniform float Time; 264 uniform float Time;
234 smooth in vec4 vo1; 265 smooth in vec4 vo1;
235 out vec4 f0; 266 out vec4 f0;
267 mat4 rotMatrixY(float z0) {
268 return mat4 (vec4 (cos (z0),0.0,(0.0) - (sin (z0)),0.0)
269 ,vec4 (0.0,1.0,0.0,0.0)
270 ,vec4 (sin (z0),0.0,cos (z0),0.0)
271 ,vec4 (0.0,0.0,0.0,1.0));
272 }
273 mat4 rotMatrixZ(float z0) {
274 return mat4 (vec4 (cos (z0),sin (z0),0.0,0.0)
275 ,vec4 ((0.0) - (sin (z0)),cos (z0),0.0,0.0)
276 ,vec4 (0.0,0.0,1.0,0.0)
277 ,vec4 (0.0,0.0,0.0,1.0));
278 }
236 void main() { 279 void main() {
237 if (!((sin ((10.0) * (((mat4 280 if (!((sin ((10.0) * (((rotMatrixY (Time)) * ((rotMatrixZ
238 (vec4 (cos (Time),0.0,(0.0) - (sin (Time)),0.0) 281 ((Time) * (0.6))) * (vo1))).x))) > (0.5))) discard;
239 ,vec4 (0.0,1.0,0.0,0.0)
240 ,vec4 (sin (Time),0.0,cos (Time),0.0)
241 ,vec4 (0.0,0.0,0.0,1.0))) * ((mat4
242 (vec4 (cos ((Time) * (0.6)),sin ((Time) * (0.6)),0.0,0.0)
243 ,vec4
244 ((0.0) - (sin ((Time) * (0.6))),cos ((Time) * (0.6)),0.0,0.0)
245 ,vec4 (0.0,0.0,1.0,0.0)
246 ,vec4 (0.0,0.0,0.0,1.0))) * (vo1))).x))) > (0.5))) discard;
247 f0 = vec4 (0.4,0.4,0.4,1.0); 282 f0 = vec4 (0.4,0.4,0.4,1.0);
248 } 283 }
249 """ 284 """
@@ -263,8 +298,11 @@ Pipeline
263 } 298 }
264 in vec4 vi1; 299 in vec4 vi1;
265 smooth out vec4 vo1; 300 smooth out vec4 vo1;
301 vec4 scale(float z0,vec4 z1) {
302 return (z1) * (vec4 (z0,z0,z0,1.0));
303 }
266 void main() { 304 void main() {
267 gl_Position = (vi1) * (vec4 (0.5,0.5,0.5,1.0)); 305 gl_Position = scale (0.5,vi1);
268 vo1 = vi1; 306 vo1 = vi1;
269 } 307 }
270 """ 308 """
@@ -278,17 +316,21 @@ Pipeline
278 uniform float Time; 316 uniform float Time;
279 smooth in vec4 vo1; 317 smooth in vec4 vo1;
280 out vec4 f0; 318 out vec4 f0;
319 mat4 rotMatrixY(float z0) {
320 return mat4 (vec4 (cos (z0),0.0,(0.0) - (sin (z0)),0.0)
321 ,vec4 (0.0,1.0,0.0,0.0)
322 ,vec4 (sin (z0),0.0,cos (z0),0.0)
323 ,vec4 (0.0,0.0,0.0,1.0));
324 }
325 mat4 rotMatrixZ(float z0) {
326 return mat4 (vec4 (cos (z0),sin (z0),0.0,0.0)
327 ,vec4 ((0.0) - (sin (z0)),cos (z0),0.0,0.0)
328 ,vec4 (0.0,0.0,1.0,0.0)
329 ,vec4 (0.0,0.0,0.0,1.0));
330 }
281 void main() { 331 void main() {
282 if (!((sin ((10.0) * (((mat4 332 if (!((sin ((10.0) * (((rotMatrixY (Time)) * ((rotMatrixZ
283 (vec4 (cos (Time),0.0,(0.0) - (sin (Time)),0.0) 333 ((Time) * (0.5))) * (vo1))).x))) > (0.5))) discard;
284 ,vec4 (0.0,1.0,0.0,0.0)
285 ,vec4 (sin (Time),0.0,cos (Time),0.0)
286 ,vec4 (0.0,0.0,0.0,1.0))) * ((mat4
287 (vec4 (cos ((Time) * (0.5)),sin ((Time) * (0.5)),0.0,0.0)
288 ,vec4
289 ((0.0) - (sin ((Time) * (0.5))),cos ((Time) * (0.5)),0.0,0.0)
290 ,vec4 (0.0,0.0,1.0,0.0)
291 ,vec4 (0.0,0.0,0.0,1.0))) * (vo1))).x))) > (0.5))) discard;
292 f0 = vec4 (0.5,0.5,0.5,1.0); 334 f0 = vec4 (0.5,0.5,0.5,1.0);
293 } 335 }
294 """ 336 """
@@ -308,8 +350,11 @@ Pipeline
308 } 350 }
309 in vec4 vi1; 351 in vec4 vi1;
310 smooth out vec4 vo1; 352 smooth out vec4 vo1;
353 vec4 scale(float z0,vec4 z1) {
354 return (z1) * (vec4 (z0,z0,z0,1.0));
355 }
311 void main() { 356 void main() {
312 gl_Position = (vi1) * (vec4 (0.4,0.4,0.4,1.0)); 357 gl_Position = scale (0.4,vi1);
313 vo1 = vi1; 358 vo1 = vi1;
314 } 359 }
315 """ 360 """
@@ -323,17 +368,21 @@ Pipeline
323 uniform float Time; 368 uniform float Time;
324 smooth in vec4 vo1; 369 smooth in vec4 vo1;
325 out vec4 f0; 370 out vec4 f0;
371 mat4 rotMatrixY(float z0) {
372 return mat4 (vec4 (cos (z0),0.0,(0.0) - (sin (z0)),0.0)
373 ,vec4 (0.0,1.0,0.0,0.0)
374 ,vec4 (sin (z0),0.0,cos (z0),0.0)
375 ,vec4 (0.0,0.0,0.0,1.0));
376 }
377 mat4 rotMatrixZ(float z0) {
378 return mat4 (vec4 (cos (z0),sin (z0),0.0,0.0)
379 ,vec4 ((0.0) - (sin (z0)),cos (z0),0.0,0.0)
380 ,vec4 (0.0,0.0,1.0,0.0)
381 ,vec4 (0.0,0.0,0.0,1.0));
382 }
326 void main() { 383 void main() {
327 if (!((sin ((10.0) * (((mat4 384 if (!((sin ((10.0) * (((rotMatrixY (Time)) * ((rotMatrixZ
328 (vec4 (cos (Time),0.0,(0.0) - (sin (Time)),0.0) 385 ((Time) * (0.4))) * (vo1))).x))) > (0.5))) discard;
329 ,vec4 (0.0,1.0,0.0,0.0)
330 ,vec4 (sin (Time),0.0,cos (Time),0.0)
331 ,vec4 (0.0,0.0,0.0,1.0))) * ((mat4
332 (vec4 (cos ((Time) * (0.4)),sin ((Time) * (0.4)),0.0,0.0)
333 ,vec4
334 ((0.0) - (sin ((Time) * (0.4))),cos ((Time) * (0.4)),0.0,0.0)
335 ,vec4 (0.0,0.0,1.0,0.0)
336 ,vec4 (0.0,0.0,0.0,1.0))) * (vo1))).x))) > (0.5))) discard;
337 f0 = vec4 (0.6,0.6,0.6,1.0); 386 f0 = vec4 (0.6,0.6,0.6,1.0);
338 } 387 }
339 """ 388 """
@@ -353,8 +402,11 @@ Pipeline
353 } 402 }
354 in vec4 vi1; 403 in vec4 vi1;
355 smooth out vec4 vo1; 404 smooth out vec4 vo1;
405 vec4 scale(float z0,vec4 z1) {
406 return (z1) * (vec4 (z0,z0,z0,1.0));
407 }
356 void main() { 408 void main() {
357 gl_Position = (vi1) * (vec4 (0.3,0.3,0.3,1.0)); 409 gl_Position = scale (0.3,vi1);
358 vo1 = vi1; 410 vo1 = vi1;
359 } 411 }
360 """ 412 """
@@ -368,17 +420,21 @@ Pipeline
368 uniform float Time; 420 uniform float Time;
369 smooth in vec4 vo1; 421 smooth in vec4 vo1;
370 out vec4 f0; 422 out vec4 f0;
423 mat4 rotMatrixY(float z0) {
424 return mat4 (vec4 (cos (z0),0.0,(0.0) - (sin (z0)),0.0)
425 ,vec4 (0.0,1.0,0.0,0.0)
426 ,vec4 (sin (z0),0.0,cos (z0),0.0)
427 ,vec4 (0.0,0.0,0.0,1.0));
428 }
429 mat4 rotMatrixZ(float z0) {
430 return mat4 (vec4 (cos (z0),sin (z0),0.0,0.0)
431 ,vec4 ((0.0) - (sin (z0)),cos (z0),0.0,0.0)
432 ,vec4 (0.0,0.0,1.0,0.0)
433 ,vec4 (0.0,0.0,0.0,1.0));
434 }
371 void main() { 435 void main() {
372 if (!((sin ((10.0) * (((mat4 436 if (!((sin ((10.0) * (((rotMatrixY (Time)) * ((rotMatrixZ
373 (vec4 (cos (Time),0.0,(0.0) - (sin (Time)),0.0) 437 ((Time) * (0.3))) * (vo1))).x))) > (0.5))) discard;
374 ,vec4 (0.0,1.0,0.0,0.0)
375 ,vec4 (sin (Time),0.0,cos (Time),0.0)
376 ,vec4 (0.0,0.0,0.0,1.0))) * ((mat4
377 (vec4 (cos ((Time) * (0.3)),sin ((Time) * (0.3)),0.0,0.0)
378 ,vec4
379 ((0.0) - (sin ((Time) * (0.3))),cos ((Time) * (0.3)),0.0,0.0)
380 ,vec4 (0.0,0.0,1.0,0.0)
381 ,vec4 (0.0,0.0,0.0,1.0))) * (vo1))).x))) > (0.5))) discard;
382 f0 = vec4 (0.7,0.7,0.7,1.0); 438 f0 = vec4 (0.7,0.7,0.7,1.0);
383 } 439 }
384 """ 440 """
@@ -398,8 +454,11 @@ Pipeline
398 } 454 }
399 in vec4 vi1; 455 in vec4 vi1;
400 smooth out vec4 vo1; 456 smooth out vec4 vo1;
457 vec4 scale(float z0,vec4 z1) {
458 return (z1) * (vec4 (z0,z0,z0,1.0));
459 }
401 void main() { 460 void main() {
402 gl_Position = (vi1) * (vec4 (0.2,0.2,0.2,1.0)); 461 gl_Position = scale (0.2,vi1);
403 vo1 = vi1; 462 vo1 = vi1;
404 } 463 }
405 """ 464 """
@@ -413,17 +472,21 @@ Pipeline
413 uniform float Time; 472 uniform float Time;
414 smooth in vec4 vo1; 473 smooth in vec4 vo1;
415 out vec4 f0; 474 out vec4 f0;
475 mat4 rotMatrixY(float z0) {
476 return mat4 (vec4 (cos (z0),0.0,(0.0) - (sin (z0)),0.0)
477 ,vec4 (0.0,1.0,0.0,0.0)
478 ,vec4 (sin (z0),0.0,cos (z0),0.0)
479 ,vec4 (0.0,0.0,0.0,1.0));
480 }
481 mat4 rotMatrixZ(float z0) {
482 return mat4 (vec4 (cos (z0),sin (z0),0.0,0.0)
483 ,vec4 ((0.0) - (sin (z0)),cos (z0),0.0,0.0)
484 ,vec4 (0.0,0.0,1.0,0.0)
485 ,vec4 (0.0,0.0,0.0,1.0));
486 }
416 void main() { 487 void main() {
417 if (!((sin ((10.0) * (((mat4 488 if (!((sin ((10.0) * (((rotMatrixY (Time)) * ((rotMatrixZ
418 (vec4 (cos (Time),0.0,(0.0) - (sin (Time)),0.0) 489 ((Time) * (0.2))) * (vo1))).x))) > (0.5))) discard;
419 ,vec4 (0.0,1.0,0.0,0.0)
420 ,vec4 (sin (Time),0.0,cos (Time),0.0)
421 ,vec4 (0.0,0.0,0.0,1.0))) * ((mat4
422 (vec4 (cos ((Time) * (0.2)),sin ((Time) * (0.2)),0.0,0.0)
423 ,vec4
424 ((0.0) - (sin ((Time) * (0.2))),cos ((Time) * (0.2)),0.0,0.0)
425 ,vec4 (0.0,0.0,1.0,0.0)
426 ,vec4 (0.0,0.0,0.0,1.0))) * (vo1))).x))) > (0.5))) discard;
427 f0 = vec4 (0.8,0.8,0.8,1.0); 490 f0 = vec4 (0.8,0.8,0.8,1.0);
428 } 491 }
429 """ 492 """
@@ -443,8 +506,11 @@ Pipeline
443 } 506 }
444 in vec4 vi1; 507 in vec4 vi1;
445 smooth out vec4 vo1; 508 smooth out vec4 vo1;
509 vec4 scale(float z0,vec4 z1) {
510 return (z1) * (vec4 (z0,z0,z0,1.0));
511 }
446 void main() { 512 void main() {
447 gl_Position = (vi1) * (vec4 (0.1,0.1,0.1,1.0)); 513 gl_Position = scale (0.1,vi1);
448 vo1 = vi1; 514 vo1 = vi1;
449 } 515 }
450 """ 516 """
@@ -458,17 +524,21 @@ Pipeline
458 uniform float Time; 524 uniform float Time;
459 smooth in vec4 vo1; 525 smooth in vec4 vo1;
460 out vec4 f0; 526 out vec4 f0;
527 mat4 rotMatrixY(float z0) {
528 return mat4 (vec4 (cos (z0),0.0,(0.0) - (sin (z0)),0.0)
529 ,vec4 (0.0,1.0,0.0,0.0)
530 ,vec4 (sin (z0),0.0,cos (z0),0.0)
531 ,vec4 (0.0,0.0,0.0,1.0));
532 }
533 mat4 rotMatrixZ(float z0) {
534 return mat4 (vec4 (cos (z0),sin (z0),0.0,0.0)
535 ,vec4 ((0.0) - (sin (z0)),cos (z0),0.0,0.0)
536 ,vec4 (0.0,0.0,1.0,0.0)
537 ,vec4 (0.0,0.0,0.0,1.0));
538 }
461 void main() { 539 void main() {
462 if (!((sin ((10.0) * (((mat4 540 if (!((sin ((10.0) * (((rotMatrixY (Time)) * ((rotMatrixZ
463 (vec4 (cos (Time),0.0,(0.0) - (sin (Time)),0.0) 541 ((Time) * (0.1))) * (vo1))).x))) > (0.5))) discard;
464 ,vec4 (0.0,1.0,0.0,0.0)
465 ,vec4 (sin (Time),0.0,cos (Time),0.0)
466 ,vec4 (0.0,0.0,0.0,1.0))) * ((mat4
467 (vec4 (cos ((Time) * (0.1)),sin ((Time) * (0.1)),0.0,0.0)
468 ,vec4
469 ((0.0) - (sin ((Time) * (0.1))),cos ((Time) * (0.1)),0.0,0.0)
470 ,vec4 (0.0,0.0,1.0,0.0)
471 ,vec4 (0.0,0.0,0.0,1.0))) * (vo1))).x))) > (0.5))) discard;
472 f0 = vec4 (0.9,0.9,0.9,1.0); 542 f0 = vec4 (0.9,0.9,0.9,1.0);
473 } 543 }
474 """ 544 """
diff --git a/testdata/editor-examples/Tetrahedron.out b/testdata/editor-examples/Tetrahedron.out
index 77fe2a7e..f81fb7a4 100644
--- a/testdata/editor-examples/Tetrahedron.out
+++ b/testdata/editor-examples/Tetrahedron.out
@@ -31,8 +31,11 @@ Pipeline
31 uniform mat4 MVP; 31 uniform mat4 MVP;
32 in vec4 vi1; 32 in vec4 vi1;
33 smooth out vec4 vo1; 33 smooth out vec4 vo1;
34 vec4 scale(float z0,vec4 z1) {
35 return (z1) * (vec4 (z0,z0,z0,1.0));
36 }
34 void main() { 37 void main() {
35 gl_Position = ((MVP) * (vi1)) * (vec4 (0.5,0.5,0.5,1.0)); 38 gl_Position = scale (0.5,(MVP) * (vi1));
36 vo1 = vi1; 39 vo1 = vi1;
37 } 40 }
38 """ 41 """
@@ -46,18 +49,26 @@ Pipeline
46 uniform float Time; 49 uniform float Time;
47 smooth in vec4 vo1; 50 smooth in vec4 vo1;
48 out vec4 f0; 51 out vec4 f0;
52 float f(float z0) {
53 return (mod
54 (((z0) + (sin (z0))) + (sin ((1.1) * (z0))),4.0)) * (2.0);
55 }
56 mat4 rotMatrixY(float z0) {
57 return mat4 (vec4 (cos (z0),0.0,(0.0) - (sin (z0)),0.0)
58 ,vec4 (0.0,1.0,0.0,0.0)
59 ,vec4 (sin (z0),0.0,cos (z0),0.0)
60 ,vec4 (0.0,0.0,0.0,1.0));
61 }
62 mat4 rotMatrixZ(float z0) {
63 return mat4 (vec4 (cos (z0),sin (z0),0.0,0.0)
64 ,vec4 ((0.0) - (sin (z0)),cos (z0),0.0,0.0)
65 ,vec4 (0.0,0.0,1.0,0.0)
66 ,vec4 (0.0,0.0,0.0,1.0));
67 }
49 void main() { 68 void main() {
50 if (!(true)) discard; 69 if (!(true)) discard;
51 f0 = ((mat4 (vec4 (cos (Time),sin (Time),0.0,0.0) 70 f0 = ((rotMatrixZ (Time)) * ((rotMatrixY (Time)) * (vo1))) * (f
52 ,vec4 ((0.0) - (sin (Time)),cos (Time),0.0,0.0) 71 (Time));
53 ,vec4 (0.0,0.0,1.0,0.0)
54 ,vec4 (0.0,0.0,0.0,1.0))) * ((mat4
55 (vec4 (cos (Time),0.0,(0.0) - (sin (Time)),0.0)
56 ,vec4 (0.0,1.0,0.0,0.0)
57 ,vec4 (sin (Time),0.0,cos (Time),0.0)
58 ,vec4 (0.0,0.0,0.0,1.0))) * (vo1))) * ((mod
59 (((Time) + (sin (Time))) + (sin ((1.1) * (Time)))
60 ,4.0)) * (2.0));
61 } 72 }
62 """ 73 """
63 } 74 }
diff --git a/testdata/editor-examples/Texturing.out b/testdata/editor-examples/Texturing.out
index 776af2b9..7381e74c 100644
--- a/testdata/editor-examples/Texturing.out
+++ b/testdata/editor-examples/Texturing.out
@@ -34,8 +34,11 @@ Pipeline
34 in vec4 vi1; 34 in vec4 vi1;
35 in vec2 vi2; 35 in vec2 vi2;
36 smooth out vec2 vo1; 36 smooth out vec2 vo1;
37 vec4 scale(float z0,vec4 z1) {
38 return (z1) * (vec4 (z0,z0,z0,1.0));
39 }
37 void main() { 40 void main() {
38 gl_Position = ((MVP) * (vi1)) * (vec4 (0.5,0.5,0.5,1.0)); 41 gl_Position = scale (0.5,(MVP) * (vi1));
39 vo1 = vi2; 42 vo1 = vi2;
40 } 43 }
41 """ 44 """
diff --git a/testdata/example06.out b/testdata/example06.out
index c75cf074..d9285bb7 100644
--- a/testdata/example06.out
+++ b/testdata/example06.out
@@ -30,8 +30,11 @@ Pipeline
30 uniform mat4 MVP; 30 uniform mat4 MVP;
31 in vec4 vi1; 31 in vec4 vi1;
32 smooth out vec4 vo1; 32 smooth out vec4 vo1;
33 vec4 scale(float z0,vec4 z1) {
34 return (z1) * (vec4 (z0,z0,z0,1.0));
35 }
33 void main() { 36 void main() {
34 gl_Position = ((MVP) * (vi1)) * (vec4 (0.5,0.5,0.5,1.0)); 37 gl_Position = scale (0.5,(MVP) * (vi1));
35 vo1 = vi1; 38 vo1 = vi1;
36 } 39 }
37 """ 40 """
diff --git a/testdata/example07.out b/testdata/example07.out
index 0b0b1166..23bac40e 100644
--- a/testdata/example07.out
+++ b/testdata/example07.out
@@ -30,8 +30,11 @@ Pipeline
30 uniform mat4 MVP; 30 uniform mat4 MVP;
31 in vec4 vi1; 31 in vec4 vi1;
32 smooth out vec4 vo1; 32 smooth out vec4 vo1;
33 vec4 scale(float z0,vec4 z1) {
34 return (z1) * (vec4 (z0,z0,z0,1.0));
35 }
33 void main() { 36 void main() {
34 gl_Position = ((MVP) * (vi1)) * (vec4 (0.5,0.5,0.5,1.0)); 37 gl_Position = scale (0.5,(MVP) * (vi1));
35 vo1 = vi1; 38 vo1 = vi1;
36 } 39 }
37 """ 40 """
@@ -44,9 +47,13 @@ Pipeline
44 } 47 }
45 smooth in vec4 vo1; 48 smooth in vec4 vo1;
46 out vec4 f0; 49 out vec4 f0;
50 vec4 rgb(float z0,float z1,float z2) {
51 return vec4 (z0,z1,z2,1.0);
52 }
53 vec4 blue = rgb (0.0,0.0,1.0);
54 vec4 red = rgb (1.0,0.0,0.0);
47 void main() { 55 void main() {
48 f0 = ((vo1).x) < (0.5) ? vec4 (0.0,0.0,1.0,1.0) : vec4 56 f0 = ((vo1).x) < (0.5) ? blue : red;
49 (1.0,0.0,0.0,1.0);
50 } 57 }
51 """ 58 """
52 } 59 }
diff --git a/testdata/example08.out b/testdata/example08.out
index 2b9339c8..45486ff0 100644
--- a/testdata/example08.out
+++ b/testdata/example08.out
@@ -32,25 +32,35 @@ Pipeline
32 uniform float Time; 32 uniform float Time;
33 in vec4 vi1; 33 in vec4 vi1;
34 smooth out vec4 vo1; 34 smooth out vec4 vo1;
35 mat4 rotMatrixX(float z0) {
36 return mat4 (vec4 (1.0,0.0,0.0,0.0)
37 ,vec4 (0.0,cos (z0),sin (z0),0.0)
38 ,vec4 (0.0,(0.0) - (sin (z0)),cos (z0),0.0)
39 ,vec4 (0.0,0.0,0.0,1.0));
40 }
41 mat4 rotMatrixZ(float z0) {
42 return mat4 (vec4 (cos (z0),sin (z0),0.0,0.0)
43 ,vec4 ((0.0) - (sin (z0)),cos (z0),0.0,0.0)
44 ,vec4 (0.0,0.0,1.0,0.0)
45 ,vec4 (0.0,0.0,0.0,1.0));
46 }
47 vec4 scale(float z0,vec4 z1) {
48 return (z1) * (vec4 (z0,z0,z0,1.0));
49 }
50 float time = Time;
51 vec4 trMat(mat4 z0,vec4 z1) {
52 return (z0) * (z1);
53 }
54 vec4 trX(float z0,vec4 z1) {
55 return (vec4 (z0,0.0,0.0,0.0)) + (z1);
56 }
35 void main() { 57 void main() {
36 gl_Position = (mat4 58 gl_Position = trMat
37 (vec4 (cos ((Time) * (2.0)),sin ((Time) * (2.0)),0.0,0.0) 59 (rotMatrixZ ((time) * (2.0))
38 ,vec4 60 ,(MVP) * (trX
39 ((0.0) - (sin ((Time) * (2.0))),cos ((Time) * (2.0)),0.0,0.0) 61 ((1.0) + ((sin (time)) * (0.1))
40 ,vec4 (0.0,0.0,1.0,0.0) 62 ,scale
41 ,vec4 (0.0,0.0,0.0,1.0))) * ((MVP) * ((vec4 63 (4.0e-2,trMat (rotMatrixX (((time) * (2.0)) * (2.0)),vi1)))));
42 ((1.0) + ((sin (Time)) * (0.1)),0.0,0.0,0.0)) + (((mat4
43 (vec4 (1.0,0.0,0.0,0.0)
44 ,vec4 (0.0
45 ,cos (((Time) * (2.0)) * (2.0))
46 ,sin (((Time) * (2.0)) * (2.0))
47 ,0.0)
48 ,vec4 (0.0
49 ,(0.0) - (sin (((Time) * (2.0)) * (2.0)))
50 ,cos (((Time) * (2.0)) * (2.0))
51 ,0.0)
52 ,vec4 (0.0,0.0,0.0,1.0))) * (vi1)) * (vec4
53 (4.0e-2,4.0e-2,4.0e-2,1.0)))));
54 vo1 = vi1; 64 vo1 = vi1;
55 } 65 }
56 """ 66 """
@@ -86,25 +96,35 @@ Pipeline
86 uniform float Time; 96 uniform float Time;
87 in vec4 vi1; 97 in vec4 vi1;
88 smooth out vec4 vo1; 98 smooth out vec4 vo1;
99 mat4 rotMatrixX(float z0) {
100 return mat4 (vec4 (1.0,0.0,0.0,0.0)
101 ,vec4 (0.0,cos (z0),sin (z0),0.0)
102 ,vec4 (0.0,(0.0) - (sin (z0)),cos (z0),0.0)
103 ,vec4 (0.0,0.0,0.0,1.0));
104 }
105 mat4 rotMatrixZ(float z0) {
106 return mat4 (vec4 (cos (z0),sin (z0),0.0,0.0)
107 ,vec4 ((0.0) - (sin (z0)),cos (z0),0.0,0.0)
108 ,vec4 (0.0,0.0,1.0,0.0)
109 ,vec4 (0.0,0.0,0.0,1.0));
110 }
111 vec4 scale(float z0,vec4 z1) {
112 return (z1) * (vec4 (z0,z0,z0,1.0));
113 }
114 float time = Time;
115 vec4 trMat(mat4 z0,vec4 z1) {
116 return (z0) * (z1);
117 }
118 vec4 trX(float z0,vec4 z1) {
119 return (vec4 (z0,0.0,0.0,0.0)) + (z1);
120 }
89 void main() { 121 void main() {
90 gl_Position = (mat4 122 gl_Position = trMat
91 (vec4 (cos ((Time) * (1.0)),sin ((Time) * (1.0)),0.0,0.0) 123 (rotMatrixZ ((time) * (1.0))
92 ,vec4 124 ,(MVP) * (trX
93 ((0.0) - (sin ((Time) * (1.0))),cos ((Time) * (1.0)),0.0,0.0) 125 ((0.5) + ((sin (time)) * (0.1))
94 ,vec4 (0.0,0.0,1.0,0.0) 126 ,scale
95 ,vec4 (0.0,0.0,0.0,1.0))) * ((MVP) * ((vec4 127 (4.0e-2,trMat (rotMatrixX (((time) * (2.0)) * (1.0)),vi1)))));
96 ((0.5) + ((sin (Time)) * (0.1)),0.0,0.0,0.0)) + (((mat4
97 (vec4 (1.0,0.0,0.0,0.0)
98 ,vec4 (0.0
99 ,cos (((Time) * (2.0)) * (1.0))
100 ,sin (((Time) * (2.0)) * (1.0))
101 ,0.0)
102 ,vec4 (0.0
103 ,(0.0) - (sin (((Time) * (2.0)) * (1.0)))
104 ,cos (((Time) * (2.0)) * (1.0))
105 ,0.0)
106 ,vec4 (0.0,0.0,0.0,1.0))) * (vi1)) * (vec4
107 (4.0e-2,4.0e-2,4.0e-2,1.0)))));
108 vo1 = vi1; 128 vo1 = vi1;
109 } 129 }
110 """ 130 """
@@ -140,25 +160,35 @@ Pipeline
140 uniform float Time; 160 uniform float Time;
141 in vec4 vi1; 161 in vec4 vi1;
142 smooth out vec4 vo1; 162 smooth out vec4 vo1;
163 mat4 rotMatrixX(float z0) {
164 return mat4 (vec4 (1.0,0.0,0.0,0.0)
165 ,vec4 (0.0,cos (z0),sin (z0),0.0)
166 ,vec4 (0.0,(0.0) - (sin (z0)),cos (z0),0.0)
167 ,vec4 (0.0,0.0,0.0,1.0));
168 }
169 mat4 rotMatrixZ(float z0) {
170 return mat4 (vec4 (cos (z0),sin (z0),0.0,0.0)
171 ,vec4 ((0.0) - (sin (z0)),cos (z0),0.0,0.0)
172 ,vec4 (0.0,0.0,1.0,0.0)
173 ,vec4 (0.0,0.0,0.0,1.0));
174 }
175 vec4 scale(float z0,vec4 z1) {
176 return (z1) * (vec4 (z0,z0,z0,1.0));
177 }
178 float time = Time;
179 vec4 trMat(mat4 z0,vec4 z1) {
180 return (z0) * (z1);
181 }
182 vec4 trX(float z0,vec4 z1) {
183 return (vec4 (z0,0.0,0.0,0.0)) + (z1);
184 }
143 void main() { 185 void main() {
144 gl_Position = (mat4 186 gl_Position = trMat
145 (vec4 (cos ((Time) * (0.0)),sin ((Time) * (0.0)),0.0,0.0) 187 (rotMatrixZ ((time) * (0.0))
146 ,vec4 188 ,(MVP) * (trX
147 ((0.0) - (sin ((Time) * (0.0))),cos ((Time) * (0.0)),0.0,0.0) 189 ((0.0) + ((sin (time)) * (0.1))
148 ,vec4 (0.0,0.0,1.0,0.0) 190 ,scale
149 ,vec4 (0.0,0.0,0.0,1.0))) * ((MVP) * ((vec4 191 (4.0e-2,trMat (rotMatrixX (((time) * (2.0)) * (0.0)),vi1)))));
150 ((0.0) + ((sin (Time)) * (0.1)),0.0,0.0,0.0)) + (((mat4
151 (vec4 (1.0,0.0,0.0,0.0)
152 ,vec4 (0.0
153 ,cos (((Time) * (2.0)) * (0.0))
154 ,sin (((Time) * (2.0)) * (0.0))
155 ,0.0)
156 ,vec4 (0.0
157 ,(0.0) - (sin (((Time) * (2.0)) * (0.0)))
158 ,cos (((Time) * (2.0)) * (0.0))
159 ,0.0)
160 ,vec4 (0.0,0.0,0.0,1.0))) * (vi1)) * (vec4
161 (4.0e-2,4.0e-2,4.0e-2,1.0)))));
162 vo1 = vi1; 192 vo1 = vi1;
163 } 193 }
164 """ 194 """
@@ -194,25 +224,35 @@ Pipeline
194 uniform float Time; 224 uniform float Time;
195 in vec4 vi1; 225 in vec4 vi1;
196 smooth out vec4 vo1; 226 smooth out vec4 vo1;
227 mat4 rotMatrixX(float z0) {
228 return mat4 (vec4 (1.0,0.0,0.0,0.0)
229 ,vec4 (0.0,cos (z0),sin (z0),0.0)
230 ,vec4 (0.0,(0.0) - (sin (z0)),cos (z0),0.0)
231 ,vec4 (0.0,0.0,0.0,1.0));
232 }
233 mat4 rotMatrixZ(float z0) {
234 return mat4 (vec4 (cos (z0),sin (z0),0.0,0.0)
235 ,vec4 ((0.0) - (sin (z0)),cos (z0),0.0,0.0)
236 ,vec4 (0.0,0.0,1.0,0.0)
237 ,vec4 (0.0,0.0,0.0,1.0));
238 }
239 vec4 scale(float z0,vec4 z1) {
240 return (z1) * (vec4 (z0,z0,z0,1.0));
241 }
242 float time = Time;
243 vec4 trMat(mat4 z0,vec4 z1) {
244 return (z0) * (z1);
245 }
246 vec4 trX(float z0,vec4 z1) {
247 return (vec4 (z0,0.0,0.0,0.0)) + (z1);
248 }
197 void main() { 249 void main() {
198 gl_Position = (mat4 250 gl_Position = trMat
199 (vec4 (cos ((Time) * (-1.0)),sin ((Time) * (-1.0)),0.0,0.0) 251 (rotMatrixZ ((time) * (-1.0))
200 ,vec4 252 ,(MVP) * (trX
201 ((0.0) - (sin ((Time) * (-1.0))),cos ((Time) * (-1.0)),0.0,0.0) 253 ((-0.5) + ((sin (time)) * (0.1))
202 ,vec4 (0.0,0.0,1.0,0.0) 254 ,scale
203 ,vec4 (0.0,0.0,0.0,1.0))) * ((MVP) * ((vec4 255 (4.0e-2,trMat (rotMatrixX (((time) * (2.0)) * (-1.0)),vi1)))));
204 ((-0.5) + ((sin (Time)) * (0.1)),0.0,0.0,0.0)) + (((mat4
205 (vec4 (1.0,0.0,0.0,0.0)
206 ,vec4 (0.0
207 ,cos (((Time) * (2.0)) * (-1.0))
208 ,sin (((Time) * (2.0)) * (-1.0))
209 ,0.0)
210 ,vec4 (0.0
211 ,(0.0) - (sin (((Time) * (2.0)) * (-1.0)))
212 ,cos (((Time) * (2.0)) * (-1.0))
213 ,0.0)
214 ,vec4 (0.0,0.0,0.0,1.0))) * (vi1)) * (vec4
215 (4.0e-2,4.0e-2,4.0e-2,1.0)))));
216 vo1 = vi1; 256 vo1 = vi1;
217 } 257 }
218 """ 258 """
@@ -248,25 +288,35 @@ Pipeline
248 uniform float Time; 288 uniform float Time;
249 in vec4 vi1; 289 in vec4 vi1;
250 smooth out vec4 vo1; 290 smooth out vec4 vo1;
291 mat4 rotMatrixX(float z0) {
292 return mat4 (vec4 (1.0,0.0,0.0,0.0)
293 ,vec4 (0.0,cos (z0),sin (z0),0.0)
294 ,vec4 (0.0,(0.0) - (sin (z0)),cos (z0),0.0)
295 ,vec4 (0.0,0.0,0.0,1.0));
296 }
297 mat4 rotMatrixZ(float z0) {
298 return mat4 (vec4 (cos (z0),sin (z0),0.0,0.0)
299 ,vec4 ((0.0) - (sin (z0)),cos (z0),0.0,0.0)
300 ,vec4 (0.0,0.0,1.0,0.0)
301 ,vec4 (0.0,0.0,0.0,1.0));
302 }
303 vec4 scale(float z0,vec4 z1) {
304 return (z1) * (vec4 (z0,z0,z0,1.0));
305 }
306 float time = Time;
307 vec4 trMat(mat4 z0,vec4 z1) {
308 return (z0) * (z1);
309 }
310 vec4 trX(float z0,vec4 z1) {
311 return (vec4 (z0,0.0,0.0,0.0)) + (z1);
312 }
251 void main() { 313 void main() {
252 gl_Position = (mat4 314 gl_Position = trMat
253 (vec4 (cos ((Time) * (0.75)),sin ((Time) * (0.75)),0.0,0.0) 315 (rotMatrixZ ((time) * (0.75))
254 ,vec4 316 ,(MVP) * (trX
255 ((0.0) - (sin ((Time) * (0.75))),cos ((Time) * (0.75)),0.0,0.0) 317 ((0.375) + ((sin (time)) * (0.1))
256 ,vec4 (0.0,0.0,1.0,0.0) 318 ,scale
257 ,vec4 (0.0,0.0,0.0,1.0))) * ((MVP) * ((vec4 319 (4.0e-2,trMat (rotMatrixX (((time) * (2.0)) * (0.75)),vi1)))));
258 ((0.375) + ((sin (Time)) * (0.1)),0.0,0.0,0.0)) + (((mat4
259 (vec4 (1.0,0.0,0.0,0.0)
260 ,vec4 (0.0
261 ,cos (((Time) * (2.0)) * (0.75))
262 ,sin (((Time) * (2.0)) * (0.75))
263 ,0.0)
264 ,vec4 (0.0
265 ,(0.0) - (sin (((Time) * (2.0)) * (0.75)))
266 ,cos (((Time) * (2.0)) * (0.75))
267 ,0.0)
268 ,vec4 (0.0,0.0,0.0,1.0))) * (vi1)) * (vec4
269 (4.0e-2,4.0e-2,4.0e-2,1.0)))));
270 vo1 = vi1; 320 vo1 = vi1;
271 } 321 }
272 """ 322 """
@@ -302,25 +352,35 @@ Pipeline
302 uniform float Time; 352 uniform float Time;
303 in vec4 vi1; 353 in vec4 vi1;
304 smooth out vec4 vo1; 354 smooth out vec4 vo1;
355 mat4 rotMatrixX(float z0) {
356 return mat4 (vec4 (1.0,0.0,0.0,0.0)
357 ,vec4 (0.0,cos (z0),sin (z0),0.0)
358 ,vec4 (0.0,(0.0) - (sin (z0)),cos (z0),0.0)
359 ,vec4 (0.0,0.0,0.0,1.0));
360 }
361 mat4 rotMatrixZ(float z0) {
362 return mat4 (vec4 (cos (z0),sin (z0),0.0,0.0)
363 ,vec4 ((0.0) - (sin (z0)),cos (z0),0.0,0.0)
364 ,vec4 (0.0,0.0,1.0,0.0)
365 ,vec4 (0.0,0.0,0.0,1.0));
366 }
367 vec4 scale(float z0,vec4 z1) {
368 return (z1) * (vec4 (z0,z0,z0,1.0));
369 }
370 float time = Time;
371 vec4 trMat(mat4 z0,vec4 z1) {
372 return (z0) * (z1);
373 }
374 vec4 trX(float z0,vec4 z1) {
375 return (vec4 (z0,0.0,0.0,0.0)) + (z1);
376 }
305 void main() { 377 void main() {
306 gl_Position = (mat4 378 gl_Position = trMat
307 (vec4 (cos ((Time) * (0.3)),sin ((Time) * (0.3)),0.0,0.0) 379 (rotMatrixZ ((time) * (0.3))
308 ,vec4 380 ,(MVP) * (trX
309 ((0.0) - (sin ((Time) * (0.3))),cos ((Time) * (0.3)),0.0,0.0) 381 ((0.15) + ((sin (time)) * (0.1))
310 ,vec4 (0.0,0.0,1.0,0.0) 382 ,scale
311 ,vec4 (0.0,0.0,0.0,1.0))) * ((MVP) * ((vec4 383 (4.0e-2,trMat (rotMatrixX (((time) * (2.0)) * (0.3)),vi1)))));
312 ((0.15) + ((sin (Time)) * (0.1)),0.0,0.0,0.0)) + (((mat4
313 (vec4 (1.0,0.0,0.0,0.0)
314 ,vec4 (0.0
315 ,cos (((Time) * (2.0)) * (0.3))
316 ,sin (((Time) * (2.0)) * (0.3))
317 ,0.0)
318 ,vec4 (0.0
319 ,(0.0) - (sin (((Time) * (2.0)) * (0.3)))
320 ,cos (((Time) * (2.0)) * (0.3))
321 ,0.0)
322 ,vec4 (0.0,0.0,0.0,1.0))) * (vi1)) * (vec4
323 (4.0e-2,4.0e-2,4.0e-2,1.0)))));
324 vo1 = vi1; 384 vo1 = vi1;
325 } 385 }
326 """ 386 """
@@ -356,25 +416,35 @@ Pipeline
356 uniform float Time; 416 uniform float Time;
357 in vec4 vi1; 417 in vec4 vi1;
358 smooth out vec4 vo1; 418 smooth out vec4 vo1;
419 mat4 rotMatrixX(float z0) {
420 return mat4 (vec4 (1.0,0.0,0.0,0.0)
421 ,vec4 (0.0,cos (z0),sin (z0),0.0)
422 ,vec4 (0.0,(0.0) - (sin (z0)),cos (z0),0.0)
423 ,vec4 (0.0,0.0,0.0,1.0));
424 }
425 mat4 rotMatrixZ(float z0) {
426 return mat4 (vec4 (cos (z0),sin (z0),0.0,0.0)
427 ,vec4 ((0.0) - (sin (z0)),cos (z0),0.0,0.0)
428 ,vec4 (0.0,0.0,1.0,0.0)
429 ,vec4 (0.0,0.0,0.0,1.0));
430 }
431 vec4 scale(float z0,vec4 z1) {
432 return (z1) * (vec4 (z0,z0,z0,1.0));
433 }
434 float time = Time;
435 vec4 trMat(mat4 z0,vec4 z1) {
436 return (z0) * (z1);
437 }
438 vec4 trX(float z0,vec4 z1) {
439 return (vec4 (z0,0.0,0.0,0.0)) + (z1);
440 }
359 void main() { 441 void main() {
360 gl_Position = (mat4 442 gl_Position = trMat
361 (vec4 (cos ((Time) * (0.5)),sin ((Time) * (0.5)),0.0,0.0) 443 (rotMatrixZ ((time) * (0.5))
362 ,vec4 444 ,(MVP) * (trX
363 ((0.0) - (sin ((Time) * (0.5))),cos ((Time) * (0.5)),0.0,0.0) 445 ((0.25) + ((sin (time)) * (0.1))
364 ,vec4 (0.0,0.0,1.0,0.0) 446 ,scale
365 ,vec4 (0.0,0.0,0.0,1.0))) * ((MVP) * ((vec4 447 (4.0e-2,trMat (rotMatrixX (((time) * (2.0)) * (0.5)),vi1)))));
366 ((0.25) + ((sin (Time)) * (0.1)),0.0,0.0,0.0)) + (((mat4
367 (vec4 (1.0,0.0,0.0,0.0)
368 ,vec4 (0.0
369 ,cos (((Time) * (2.0)) * (0.5))
370 ,sin (((Time) * (2.0)) * (0.5))
371 ,0.0)
372 ,vec4 (0.0
373 ,(0.0) - (sin (((Time) * (2.0)) * (0.5)))
374 ,cos (((Time) * (2.0)) * (0.5))
375 ,0.0)
376 ,vec4 (0.0,0.0,0.0,1.0))) * (vi1)) * (vec4
377 (4.0e-2,4.0e-2,4.0e-2,1.0)))));
378 vo1 = vi1; 448 vo1 = vi1;
379 } 449 }
380 """ 450 """
@@ -410,25 +480,35 @@ Pipeline
410 uniform float Time; 480 uniform float Time;
411 in vec4 vi1; 481 in vec4 vi1;
412 smooth out vec4 vo1; 482 smooth out vec4 vo1;
483 mat4 rotMatrixX(float z0) {
484 return mat4 (vec4 (1.0,0.0,0.0,0.0)
485 ,vec4 (0.0,cos (z0),sin (z0),0.0)
486 ,vec4 (0.0,(0.0) - (sin (z0)),cos (z0),0.0)
487 ,vec4 (0.0,0.0,0.0,1.0));
488 }
489 mat4 rotMatrixZ(float z0) {
490 return mat4 (vec4 (cos (z0),sin (z0),0.0,0.0)
491 ,vec4 ((0.0) - (sin (z0)),cos (z0),0.0,0.0)
492 ,vec4 (0.0,0.0,1.0,0.0)
493 ,vec4 (0.0,0.0,0.0,1.0));
494 }
495 vec4 scale(float z0,vec4 z1) {
496 return (z1) * (vec4 (z0,z0,z0,1.0));
497 }
498 float time = Time;
499 vec4 trMat(mat4 z0,vec4 z1) {
500 return (z0) * (z1);
501 }
502 vec4 trX(float z0,vec4 z1) {
503 return (vec4 (z0,0.0,0.0,0.0)) + (z1);
504 }
413 void main() { 505 void main() {
414 gl_Position = (mat4 506 gl_Position = trMat
415 (vec4 (cos ((Time) * (0.0)),sin ((Time) * (0.0)),0.0,0.0) 507 (rotMatrixZ ((time) * (0.0))
416 ,vec4 508 ,(MVP) * (trX
417 ((0.0) - (sin ((Time) * (0.0))),cos ((Time) * (0.0)),0.0,0.0) 509 ((0.0) + ((sin (time)) * (0.1))
418 ,vec4 (0.0,0.0,1.0,0.0) 510 ,scale
419 ,vec4 (0.0,0.0,0.0,1.0))) * ((MVP) * ((vec4 511 (4.0e-2,trMat (rotMatrixX (((time) * (2.0)) * (0.0)),vi1)))));
420 ((0.0) + ((sin (Time)) * (0.1)),0.0,0.0,0.0)) + (((mat4
421 (vec4 (1.0,0.0,0.0,0.0)
422 ,vec4 (0.0
423 ,cos (((Time) * (2.0)) * (0.0))
424 ,sin (((Time) * (2.0)) * (0.0))
425 ,0.0)
426 ,vec4 (0.0
427 ,(0.0) - (sin (((Time) * (2.0)) * (0.0)))
428 ,cos (((Time) * (2.0)) * (0.0))
429 ,0.0)
430 ,vec4 (0.0,0.0,0.0,1.0))) * (vi1)) * (vec4
431 (4.0e-2,4.0e-2,4.0e-2,1.0)))));
432 vo1 = vi1; 512 vo1 = vi1;
433 } 513 }
434 """ 514 """
@@ -464,25 +544,35 @@ Pipeline
464 uniform float Time; 544 uniform float Time;
465 in vec4 vi1; 545 in vec4 vi1;
466 smooth out vec4 vo1; 546 smooth out vec4 vo1;
547 mat4 rotMatrixX(float z0) {
548 return mat4 (vec4 (1.0,0.0,0.0,0.0)
549 ,vec4 (0.0,cos (z0),sin (z0),0.0)
550 ,vec4 (0.0,(0.0) - (sin (z0)),cos (z0),0.0)
551 ,vec4 (0.0,0.0,0.0,1.0));
552 }
553 mat4 rotMatrixZ(float z0) {
554 return mat4 (vec4 (cos (z0),sin (z0),0.0,0.0)
555 ,vec4 ((0.0) - (sin (z0)),cos (z0),0.0,0.0)
556 ,vec4 (0.0,0.0,1.0,0.0)
557 ,vec4 (0.0,0.0,0.0,1.0));
558 }
559 vec4 scale(float z0,vec4 z1) {
560 return (z1) * (vec4 (z0,z0,z0,1.0));
561 }
562 float time = Time;
563 vec4 trMat(mat4 z0,vec4 z1) {
564 return (z0) * (z1);
565 }
566 vec4 trX(float z0,vec4 z1) {
567 return (vec4 (z0,0.0,0.0,0.0)) + (z1);
568 }
467 void main() { 569 void main() {
468 gl_Position = (mat4 570 gl_Position = trMat
469 (vec4 (cos ((Time) * (-0.5)),sin ((Time) * (-0.5)),0.0,0.0) 571 (rotMatrixZ ((time) * (-0.5))
470 ,vec4 572 ,(MVP) * (trX
471 ((0.0) - (sin ((Time) * (-0.5))),cos ((Time) * (-0.5)),0.0,0.0) 573 ((-0.25) + ((sin (time)) * (0.1))
472 ,vec4 (0.0,0.0,1.0,0.0) 574 ,scale
473 ,vec4 (0.0,0.0,0.0,1.0))) * ((MVP) * ((vec4 575 (4.0e-2,trMat (rotMatrixX (((time) * (2.0)) * (-0.5)),vi1)))));
474 ((-0.25) + ((sin (Time)) * (0.1)),0.0,0.0,0.0)) + (((mat4
475 (vec4 (1.0,0.0,0.0,0.0)
476 ,vec4 (0.0
477 ,cos (((Time) * (2.0)) * (-0.5))
478 ,sin (((Time) * (2.0)) * (-0.5))
479 ,0.0)
480 ,vec4 (0.0
481 ,(0.0) - (sin (((Time) * (2.0)) * (-0.5)))
482 ,cos (((Time) * (2.0)) * (-0.5))
483 ,0.0)
484 ,vec4 (0.0,0.0,0.0,1.0))) * (vi1)) * (vec4
485 (4.0e-2,4.0e-2,4.0e-2,1.0)))));
486 vo1 = vi1; 576 vo1 = vi1;
487 } 577 }
488 """ 578 """
diff --git a/testdata/fetcharrays01.out b/testdata/fetcharrays01.out
index e3fcfa14..aa49e5fd 100644
--- a/testdata/fetcharrays01.out
+++ b/testdata/fetcharrays01.out
@@ -33,10 +33,15 @@ Pipeline
33 in vec3 vi1; 33 in vec3 vi1;
34 in vec3 vi2; 34 in vec3 vi2;
35 smooth out vec4 vo1; 35 smooth out vec4 vo1;
36 vec4 scale(float z0,vec4 z1) {
37 return (z1) * (vec4 (z0,z0,z0,1.0));
38 }
39 vec4 v3FToV4F(vec3 z0) {
40 return vec4 ((z0).x,(z0).y,(z0).z,1.0);
41 }
36 void main() { 42 void main() {
37 gl_Position = ((MVP) * (vec4 43 gl_Position = scale (0.5,(MVP) * (v3FToV4F (vi1)));
38 ((vi1).x,(vi1).y,(vi1).z,1.0))) * (vec4 (0.5,0.5,0.5,1.0)); 44 vo1 = v3FToV4F (vi1);
39 vo1 = vec4 ((vi1).x,(vi1).y,(vi1).z,1.0);
40 } 45 }
41 """ 46 """
42 , geometryShader = Nothing 47 , geometryShader = Nothing
diff --git a/testdata/fragment04ifthenelse.out b/testdata/fragment04ifthenelse.out
index 3bc71b70..1d3fd074 100644
--- a/testdata/fragment04ifthenelse.out
+++ b/testdata/fragment04ifthenelse.out
@@ -41,8 +41,13 @@ Pipeline
41 uniform float Time; 41 uniform float Time;
42 smooth in vec4 vo1; 42 smooth in vec4 vo1;
43 out vec4 f0; 43 out vec4 f0;
44 vec4 rgb(float z0,float z1,float z2) {
45 return vec4 (z0,z1,z2,1.0);
46 }
47 vec4 blue = rgb (0.0,0.0,1.0);
48 float time = Time;
44 void main() { 49 void main() {
45 f0 = (Time) < (0.5) ? vo1 : vec4 (0.0,0.0,1.0,1.0); 50 f0 = (time) < (0.5) ? vo1 : blue;
46 } 51 }
47 """ 52 """
48 } 53 }
diff --git a/testdata/gfx03.out b/testdata/gfx03.out
index 3ea828c2..b3c238b4 100644
--- a/testdata/gfx03.out
+++ b/testdata/gfx03.out
@@ -28,8 +28,11 @@ Pipeline
28 } 28 }
29 uniform mat4 MVP2; 29 uniform mat4 MVP2;
30 in vec3 vi1; 30 in vec3 vi1;
31 vec4 v3FToV4F(vec3 z0) {
32 return vec4 ((z0).x,(z0).y,(z0).z,1.0);
33 }
31 void main() { 34 void main() {
32 gl_Position = (MVP2) * (vec4 ((vi1).x,(vi1).y,(vi1).z,1.0)); 35 gl_Position = (MVP2) * (v3FToV4F (vi1));
33 } 36 }
34 """ 37 """
35 , geometryShader = Nothing 38 , geometryShader = Nothing
@@ -60,9 +63,12 @@ Pipeline
60 uniform mat4 MVP2; 63 uniform mat4 MVP2;
61 in vec3 vi1; 64 in vec3 vi1;
62 smooth out vec4 vo1; 65 smooth out vec4 vo1;
66 vec4 v3FToV4F(vec3 z0) {
67 return vec4 ((z0).x,(z0).y,(z0).z,1.0);
68 }
63 void main() { 69 void main() {
64 gl_Position = (MVP2) * (vec4 ((vi1).x,(vi1).y,(vi1).z,1.0)); 70 gl_Position = (MVP2) * (v3FToV4F (vi1));
65 vo1 = vec4 ((vi1).x,(vi1).y,(vi1).z,1.0); 71 vo1 = v3FToV4F (vi1);
66 } 72 }
67 """ 73 """
68 , geometryShader = Nothing 74 , geometryShader = Nothing
diff --git a/testdata/gfx04.out b/testdata/gfx04.out
index 68bb0e52..b39f1a1c 100644
--- a/testdata/gfx04.out
+++ b/testdata/gfx04.out
@@ -33,9 +33,12 @@ Pipeline
33 in vec3 vi1; 33 in vec3 vi1;
34 in vec3 vi2; 34 in vec3 vi2;
35 smooth out vec4 vo1; 35 smooth out vec4 vo1;
36 vec4 v3FToV4F(vec3 z0) {
37 return vec4 ((z0).x,(z0).y,(z0).z,1.0);
38 }
36 void main() { 39 void main() {
37 gl_Position = (MVP) * (vec4 ((vi1).x,(vi1).y,(vi1).z,1.0)); 40 gl_Position = (MVP) * (v3FToV4F (vi1));
38 vo1 = vec4 ((vi2).x,(vi2).y,(vi2).z,1.0); 41 vo1 = v3FToV4F (vi2);
39 } 42 }
40 """ 43 """
41 , geometryShader = Nothing 44 , geometryShader = Nothing
diff --git a/testdata/gfx05.out b/testdata/gfx05.out
index b7ce4002..94db3f33 100644
--- a/testdata/gfx05.out
+++ b/testdata/gfx05.out
@@ -81,8 +81,11 @@ Pipeline
81 } 81 }
82 uniform mat4 MVP2; 82 uniform mat4 MVP2;
83 in vec3 vi1; 83 in vec3 vi1;
84 vec4 v3FToV4F(vec3 z0) {
85 return vec4 ((z0).x,(z0).y,(z0).z,1.0);
86 }
84 void main() { 87 void main() {
85 gl_Position = (MVP2) * (vec4 ((vi1).x,(vi1).y,(vi1).z,1.0)); 88 gl_Position = (MVP2) * (v3FToV4F (vi1));
86 } 89 }
87 """ 90 """
88 , geometryShader = Nothing 91 , geometryShader = Nothing
@@ -113,9 +116,12 @@ Pipeline
113 uniform mat4 MVP2; 116 uniform mat4 MVP2;
114 in vec3 vi1; 117 in vec3 vi1;
115 smooth out vec4 vo1; 118 smooth out vec4 vo1;
119 vec4 v3FToV4F(vec3 z0) {
120 return vec4 ((z0).x,(z0).y,(z0).z,1.0);
121 }
116 void main() { 122 void main() {
117 gl_Position = (MVP2) * (vec4 ((vi1).x,(vi1).y,(vi1).z,1.0)); 123 gl_Position = (MVP2) * (v3FToV4F (vi1));
118 vo1 = vec4 ((vi1).x,(vi1).y,(vi1).z,1.0); 124 vo1 = v3FToV4F (vi1);
119 } 125 }
120 """ 126 """
121 , geometryShader = Nothing 127 , geometryShader = Nothing
@@ -146,8 +152,11 @@ Pipeline
146 } 152 }
147 uniform mat4 MVP2; 153 uniform mat4 MVP2;
148 in vec3 vi1; 154 in vec3 vi1;
155 vec4 v3FToV4F(vec3 z0) {
156 return vec4 ((z0).x,(z0).y,(z0).z,1.0);
157 }
149 void main() { 158 void main() {
150 gl_Position = (MVP2) * (vec4 ((vi1).x,(vi1).y,(vi1).z,1.0)); 159 gl_Position = (MVP2) * (v3FToV4F (vi1));
151 } 160 }
152 """ 161 """
153 , geometryShader = Nothing 162 , geometryShader = Nothing
diff --git a/testdata/heartbeat01.out b/testdata/heartbeat01.out
index 64a3d97b..70857c9b 100644
--- a/testdata/heartbeat01.out
+++ b/testdata/heartbeat01.out
@@ -85,8 +85,11 @@ Pipeline
85 in vec4 vi1; 85 in vec4 vi1;
86 in vec2 vi2; 86 in vec2 vi2;
87 smooth out vec2 vo1; 87 smooth out vec2 vo1;
88 vec4 scale(float z0,vec4 z1) {
89 return (z1) * (vec4 (z0,z0,z0,1.0));
90 }
88 void main() { 91 void main() {
89 gl_Position = (vi1) * (vec4 (1.0,1.0,1.0,1.0)); 92 gl_Position = scale (1.0,vi1);
90 vo1 = vi2; 93 vo1 = vi2;
91 } 94 }
92 """ 95 """
@@ -100,30 +103,31 @@ Pipeline
100 uniform float Time; 103 uniform float Time;
101 smooth in vec2 vo1; 104 smooth in vec2 vo1;
102 out vec4 f0; 105 out vec4 f0;
106 vec4 rgb(float z0,float z1,float z2) {
107 return vec4 (z0,z1,z2,1.0);
108 }
109 vec4 blue = rgb (0.0,0.0,1.0);
110 vec4 navy = rgb (0.0,0.0,0.5);
111 float time = Time;
112 vec4 white = rgb (1.0,1.0,1.0);
113 vec4 yellow = rgb (1.0,1.0,0.0);
103 void main() { 114 void main() {
104 f0 = 115 f0 =
105 ((((((vo1).x) - (0.85)) * (((vo1).x) - (0.85))) + ((((vo1).y) - (0.85)) * (((vo1).y) - (0.85)))) + ((5.0e-4) * (sin 116 ((((((vo1).x) - (0.85)) * (((vo1).x) - (0.85))) + ((((vo1).y) - (0.85)) * (((vo1).y) - (0.85)))) + ((5.0e-4) * (sin
106 (((3.0) * (atan 117 (((3.0) * (atan
107 (((vo1).x) - (0.85) 118 (((vo1).x) - (0.85)
108 ,((vo1).y) - (0.85)))) + ((15.0) * (Time)))))) < ((5.0e-3) * (abs 119 ,((vo1).y) - (0.85)))) + ((15.0) * (time)))))) < ((5.0e-3) * (abs
109 ((sin ((Time) * (4.0))) - (0.37)))) ? vec4 120 ((sin
110 (0.0 121 ((time) * (4.0))) - (0.37)))) ? navy : ((((((vo1).x) - (0.85)) * (((vo1).x) - (0.85))) + ((((vo1).y) - (0.85)) * (((vo1).y) - (0.85)))) + ((2.0e-3) * (sin
111 ,0.0
112 ,0.5
113 ,1.0) : ((((((vo1).x) - (0.85)) * (((vo1).x) - (0.85))) + ((((vo1).y) - (0.85)) * (((vo1).y) - (0.85)))) + ((2.0e-3) * (sin
114 (((5.0) * (atan 122 (((5.0) * (atan
115 (((vo1).x) - (0.85) 123 (((vo1).x) - (0.85)
116 ,((vo1).y) - (0.85)))) - ((5.0) * (Time)))))) < ((2.0e-2) * (abs 124 ,((vo1).y) - (0.85)))) - ((5.0) * (time)))))) < ((2.0e-2) * (abs
117 ((sin ((Time) * (4.0))) - (0.37)))) ? vec4 125 ((sin
118 (0.0 126 ((time) * (4.0))) - (0.37)))) ? blue : ((((((vo1).x) - (0.85)) * (((vo1).x) - (0.85))) + ((((vo1).y) - (0.85)) * (((vo1).y) - (0.85)))) + ((2.0e-3) * (sin
119 ,0.0
120 ,1.0
121 ,1.0) : ((((((vo1).x) - (0.85)) * (((vo1).x) - (0.85))) + ((((vo1).y) - (0.85)) * (((vo1).y) - (0.85)))) + ((2.0e-3) * (sin
122 (((7.0) * (atan 127 (((7.0) * (atan
123 (((vo1).x) - (0.85) 128 (((vo1).x) - (0.85)
124 ,((vo1).y) - (0.85)))) + ((3.0) * (Time)))))) < ((5.0e-2) * (abs 129 ,((vo1).y) - (0.85)))) + ((3.0) * (time)))))) < ((5.0e-2) * (abs
125 ((sin ((Time) * (4.0))) - (0.37)))) ? vec4 130 ((sin ((time) * (4.0))) - (0.37)))) ? white : yellow;
126 (1.0,1.0,1.0,1.0) : vec4 (1.0,1.0,0.0,1.0);
127 } 131 }
128 """ 132 """
129 } 133 }
@@ -146,8 +150,11 @@ Pipeline
146 in vec4 vi1; 150 in vec4 vi1;
147 in vec2 vi2; 151 in vec2 vi2;
148 smooth out vec2 vo1; 152 smooth out vec2 vo1;
153 vec4 scale(float z0,vec4 z1) {
154 return (z1) * (vec4 (z0,z0,z0,1.0));
155 }
149 void main() { 156 void main() {
150 gl_Position = ((MVP) * (vi1)) * (vec4 (0.5,0.5,0.5,1.0)); 157 gl_Position = scale (0.5,(MVP) * (vi1));
151 vo1 = vi2; 158 vo1 = vi2;
152 } 159 }
153 """ 160 """
diff --git a/testdata/helloWorld.out b/testdata/helloWorld.out
index 13e7377a..7a632a5a 100644
--- a/testdata/helloWorld.out
+++ b/testdata/helloWorld.out
@@ -30,8 +30,11 @@ Pipeline
30 uniform mat4 MVP; 30 uniform mat4 MVP;
31 in vec4 vi1; 31 in vec4 vi1;
32 smooth out vec4 vo1; 32 smooth out vec4 vo1;
33 vec4 scale(float z0,vec4 z1) {
34 return (z1) * (vec4 (z0,z0,z0,1.0));
35 }
33 void main() { 36 void main() {
34 gl_Position = ((MVP) * (vi1)) * (vec4 (0.5,0.5,0.5,1.0)); 37 gl_Position = scale (0.5,(MVP) * (vi1));
35 vo1 = vi1; 38 vo1 = vi1;
36 } 39 }
37 """ 40 """
diff --git a/testdata/line01.out b/testdata/line01.out
index 6ea03c7f..67124a52 100644
--- a/testdata/line01.out
+++ b/testdata/line01.out
@@ -30,10 +30,15 @@ Pipeline
30 uniform mat4 MVP; 30 uniform mat4 MVP;
31 in vec3 vi1; 31 in vec3 vi1;
32 smooth out vec4 vo1; 32 smooth out vec4 vo1;
33 vec4 scale(float z0,vec4 z1) {
34 return (z1) * (vec4 (z0,z0,z0,1.0));
35 }
36 vec4 v3FToV4F(vec3 z0) {
37 return vec4 ((z0).x,(z0).y,(z0).z,1.0);
38 }
33 void main() { 39 void main() {
34 gl_Position = ((MVP) * (vec4 40 gl_Position = scale (0.5,(MVP) * (v3FToV4F (vi1)));
35 ((vi1).x,(vi1).y,(vi1).z,1.0))) * (vec4 (0.5,0.5,0.5,1.0)); 41 vo1 = v3FToV4F (vi1);
36 vo1 = vec4 ((vi1).x,(vi1).y,(vi1).z,1.0);
37 } 42 }
38 """ 43 """
39 , geometryShader = Nothing 44 , geometryShader = Nothing
diff --git a/testdata/point01.out b/testdata/point01.out
index 7eddbc45..cbde6788 100644
--- a/testdata/point01.out
+++ b/testdata/point01.out
@@ -33,9 +33,14 @@ Pipeline
33 in vec3 vi1; 33 in vec3 vi1;
34 in vec4 vi2; 34 in vec4 vi2;
35 smooth out vec4 vo1; 35 smooth out vec4 vo1;
36 vec4 scale(float z0,vec4 z1) {
37 return (z1) * (vec4 (z0,z0,z0,1.0));
38 }
39 vec4 v3FToV4F(vec3 z0) {
40 return vec4 ((z0).x,(z0).y,(z0).z,1.0);
41 }
36 void main() { 42 void main() {
37 gl_Position = ((MVP) * (vec4 43 gl_Position = scale (0.5,(MVP) * (v3FToV4F (vi1)));
38 ((vi1).x,(vi1).y,(vi1).z,1.0))) * (vec4 (0.5,0.5,0.5,1.0));
39 vo1 = vi2; 44 vo1 = vi2;
40 gl_PointSize = 30.0; 45 gl_PointSize = 30.0;
41 } 46 }
diff --git a/testdata/recursivetexture01.out b/testdata/recursivetexture01.out
index 9f102486..4ba1d95a 100644
--- a/testdata/recursivetexture01.out
+++ b/testdata/recursivetexture01.out
@@ -814,12 +814,17 @@ Pipeline
814 in vec4 vi1; 814 in vec4 vi1;
815 in vec2 vi2; 815 in vec2 vi2;
816 smooth out vec2 vo1; 816 smooth out vec2 vo1;
817 mat4 rotMatrixX(float z0) {
818 return mat4 (vec4 (1.0,0.0,0.0,0.0)
819 ,vec4 (0.0,cos (z0),sin (z0),0.0)
820 ,vec4 (0.0,(0.0) - (sin (z0)),cos (z0),0.0)
821 ,vec4 (0.0,0.0,0.0,1.0));
822 }
823 vec4 scale(float z0,vec4 z1) {
824 return (z1) * (vec4 (z0,z0,z0,1.0));
825 }
817 void main() { 826 void main() {
818 gl_Position = (MVP) * (((mat4 (vec4 (1.0,0.0,0.0,0.0) 827 gl_Position = (MVP) * (scale (0.5,(rotMatrixX (0.0)) * (vi1)));
819 ,vec4 (0.0,cos (0.0),sin (0.0),0.0)
820 ,vec4 (0.0,(0.0) - (sin (0.0)),cos (0.0),0.0)
821 ,vec4 (0.0,0.0,0.0,1.0))) * (vi1)) * (vec4
822 (0.5,0.5,0.5,1.0)));
823 vo1 = vi2; 828 vo1 = vi2;
824 } 829 }
825 """ 830 """
@@ -833,11 +838,14 @@ Pipeline
833 uniform sampler2D s0; 838 uniform sampler2D s0;
834 smooth in vec2 vo1; 839 smooth in vec2 vo1;
835 out vec4 f0; 840 out vec4 f0;
836 void main() { 841 vec4 setAlpha(vec4 z0) {
837 f0 = ((((((vo1).xyxx) * (0.7)) + (texture2D 842 return ((z0) * (vec4 (1.0,1.0,1.0,0.0))) + (vec4
838 (s0,vo1))) * (0.7)) * (vec4 (1.0,1.0,1.0,0.0))) + (vec4
839 (0.0,0.0,0.0,1.0)); 843 (0.0,0.0,0.0,1.0));
840 } 844 }
845 void main() {
846 f0 = setAlpha (((((vo1).xyxx) * (0.7)) + (texture2D
847 (s0,vo1))) * (0.7));
848 }
841 """ 849 """
842 } 850 }
843 , Program 851 , Program
@@ -859,12 +867,17 @@ Pipeline
859 in vec4 vi1; 867 in vec4 vi1;
860 in vec2 vi2; 868 in vec2 vi2;
861 smooth out vec2 vo1; 869 smooth out vec2 vo1;
870 mat4 rotMatrixX(float z0) {
871 return mat4 (vec4 (1.0,0.0,0.0,0.0)
872 ,vec4 (0.0,cos (z0),sin (z0),0.0)
873 ,vec4 (0.0,(0.0) - (sin (z0)),cos (z0),0.0)
874 ,vec4 (0.0,0.0,0.0,1.0));
875 }
876 vec4 scale(float z0,vec4 z1) {
877 return (z1) * (vec4 (z0,z0,z0,1.0));
878 }
862 void main() { 879 void main() {
863 gl_Position = (MVP) * (((mat4 (vec4 (1.0,0.0,0.0,0.0) 880 gl_Position = (MVP) * (scale (0.5,(rotMatrixX (0.1)) * (vi1)));
864 ,vec4 (0.0,cos (0.1),sin (0.1),0.0)
865 ,vec4 (0.0,(0.0) - (sin (0.1)),cos (0.1),0.0)
866 ,vec4 (0.0,0.0,0.0,1.0))) * (vi1)) * (vec4
867 (0.5,0.5,0.5,1.0)));
868 vo1 = vi2; 881 vo1 = vi2;
869 } 882 }
870 """ 883 """
@@ -878,11 +891,14 @@ Pipeline
878 uniform sampler2D s0; 891 uniform sampler2D s0;
879 smooth in vec2 vo1; 892 smooth in vec2 vo1;
880 out vec4 f0; 893 out vec4 f0;
881 void main() { 894 vec4 setAlpha(vec4 z0) {
882 f0 = ((((((vo1).xyxx) * (0.7)) + (texture2D 895 return ((z0) * (vec4 (1.0,1.0,1.0,0.0))) + (vec4
883 (s0,vo1))) * (0.7)) * (vec4 (1.0,1.0,1.0,0.0))) + (vec4
884 (0.0,0.0,0.0,1.0)); 896 (0.0,0.0,0.0,1.0));
885 } 897 }
898 void main() {
899 f0 = setAlpha (((((vo1).xyxx) * (0.7)) + (texture2D
900 (s0,vo1))) * (0.7));
901 }
886 """ 902 """
887 } 903 }
888 , Program 904 , Program
@@ -904,12 +920,17 @@ Pipeline
904 in vec4 vi1; 920 in vec4 vi1;
905 in vec2 vi2; 921 in vec2 vi2;
906 smooth out vec2 vo1; 922 smooth out vec2 vo1;
923 mat4 rotMatrixX(float z0) {
924 return mat4 (vec4 (1.0,0.0,0.0,0.0)
925 ,vec4 (0.0,cos (z0),sin (z0),0.0)
926 ,vec4 (0.0,(0.0) - (sin (z0)),cos (z0),0.0)
927 ,vec4 (0.0,0.0,0.0,1.0));
928 }
929 vec4 scale(float z0,vec4 z1) {
930 return (z1) * (vec4 (z0,z0,z0,1.0));
931 }
907 void main() { 932 void main() {
908 gl_Position = (MVP) * (((mat4 (vec4 (1.0,0.0,0.0,0.0) 933 gl_Position = (MVP) * (scale (0.5,(rotMatrixX (0.2)) * (vi1)));
909 ,vec4 (0.0,cos (0.2),sin (0.2),0.0)
910 ,vec4 (0.0,(0.0) - (sin (0.2)),cos (0.2),0.0)
911 ,vec4 (0.0,0.0,0.0,1.0))) * (vi1)) * (vec4
912 (0.5,0.5,0.5,1.0)));
913 vo1 = vi2; 934 vo1 = vi2;
914 } 935 }
915 """ 936 """
@@ -923,11 +944,14 @@ Pipeline
923 uniform sampler2D s0; 944 uniform sampler2D s0;
924 smooth in vec2 vo1; 945 smooth in vec2 vo1;
925 out vec4 f0; 946 out vec4 f0;
926 void main() { 947 vec4 setAlpha(vec4 z0) {
927 f0 = ((((((vo1).xyxx) * (0.7)) + (texture2D 948 return ((z0) * (vec4 (1.0,1.0,1.0,0.0))) + (vec4
928 (s0,vo1))) * (0.7)) * (vec4 (1.0,1.0,1.0,0.0))) + (vec4
929 (0.0,0.0,0.0,1.0)); 949 (0.0,0.0,0.0,1.0));
930 } 950 }
951 void main() {
952 f0 = setAlpha (((((vo1).xyxx) * (0.7)) + (texture2D
953 (s0,vo1))) * (0.7));
954 }
931 """ 955 """
932 } 956 }
933 , Program 957 , Program
@@ -949,12 +973,17 @@ Pipeline
949 in vec4 vi1; 973 in vec4 vi1;
950 in vec2 vi2; 974 in vec2 vi2;
951 smooth out vec2 vo1; 975 smooth out vec2 vo1;
976 mat4 rotMatrixX(float z0) {
977 return mat4 (vec4 (1.0,0.0,0.0,0.0)
978 ,vec4 (0.0,cos (z0),sin (z0),0.0)
979 ,vec4 (0.0,(0.0) - (sin (z0)),cos (z0),0.0)
980 ,vec4 (0.0,0.0,0.0,1.0));
981 }
982 vec4 scale(float z0,vec4 z1) {
983 return (z1) * (vec4 (z0,z0,z0,1.0));
984 }
952 void main() { 985 void main() {
953 gl_Position = (MVP) * (((mat4 (vec4 (1.0,0.0,0.0,0.0) 986 gl_Position = (MVP) * (scale (0.5,(rotMatrixX (0.3)) * (vi1)));
954 ,vec4 (0.0,cos (0.3),sin (0.3),0.0)
955 ,vec4 (0.0,(0.0) - (sin (0.3)),cos (0.3),0.0)
956 ,vec4 (0.0,0.0,0.0,1.0))) * (vi1)) * (vec4
957 (0.5,0.5,0.5,1.0)));
958 vo1 = vi2; 987 vo1 = vi2;
959 } 988 }
960 """ 989 """
@@ -968,11 +997,14 @@ Pipeline
968 uniform sampler2D s0; 997 uniform sampler2D s0;
969 smooth in vec2 vo1; 998 smooth in vec2 vo1;
970 out vec4 f0; 999 out vec4 f0;
971 void main() { 1000 vec4 setAlpha(vec4 z0) {
972 f0 = ((((((vo1).xyxx) * (0.7)) + (texture2D 1001 return ((z0) * (vec4 (1.0,1.0,1.0,0.0))) + (vec4
973 (s0,vo1))) * (0.7)) * (vec4 (1.0,1.0,1.0,0.0))) + (vec4
974 (0.0,0.0,0.0,1.0)); 1002 (0.0,0.0,0.0,1.0));
975 } 1003 }
1004 void main() {
1005 f0 = setAlpha (((((vo1).xyxx) * (0.7)) + (texture2D
1006 (s0,vo1))) * (0.7));
1007 }
976 """ 1008 """
977 } 1009 }
978 , Program 1010 , Program
@@ -994,12 +1026,17 @@ Pipeline
994 in vec4 vi1; 1026 in vec4 vi1;
995 in vec2 vi2; 1027 in vec2 vi2;
996 smooth out vec2 vo1; 1028 smooth out vec2 vo1;
1029 mat4 rotMatrixX(float z0) {
1030 return mat4 (vec4 (1.0,0.0,0.0,0.0)
1031 ,vec4 (0.0,cos (z0),sin (z0),0.0)
1032 ,vec4 (0.0,(0.0) - (sin (z0)),cos (z0),0.0)
1033 ,vec4 (0.0,0.0,0.0,1.0));
1034 }
1035 vec4 scale(float z0,vec4 z1) {
1036 return (z1) * (vec4 (z0,z0,z0,1.0));
1037 }
997 void main() { 1038 void main() {
998 gl_Position = (MVP) * (((mat4 (vec4 (1.0,0.0,0.0,0.0) 1039 gl_Position = (MVP) * (scale (0.5,(rotMatrixX (0.4)) * (vi1)));
999 ,vec4 (0.0,cos (0.4),sin (0.4),0.0)
1000 ,vec4 (0.0,(0.0) - (sin (0.4)),cos (0.4),0.0)
1001 ,vec4 (0.0,0.0,0.0,1.0))) * (vi1)) * (vec4
1002 (0.5,0.5,0.5,1.0)));
1003 vo1 = vi2; 1040 vo1 = vi2;
1004 } 1041 }
1005 """ 1042 """
@@ -1013,11 +1050,14 @@ Pipeline
1013 uniform sampler2D s0; 1050 uniform sampler2D s0;
1014 smooth in vec2 vo1; 1051 smooth in vec2 vo1;
1015 out vec4 f0; 1052 out vec4 f0;
1016 void main() { 1053 vec4 setAlpha(vec4 z0) {
1017 f0 = ((((((vo1).xyxx) * (0.7)) + (texture2D 1054 return ((z0) * (vec4 (1.0,1.0,1.0,0.0))) + (vec4
1018 (s0,vo1))) * (0.7)) * (vec4 (1.0,1.0,1.0,0.0))) + (vec4
1019 (0.0,0.0,0.0,1.0)); 1055 (0.0,0.0,0.0,1.0));
1020 } 1056 }
1057 void main() {
1058 f0 = setAlpha (((((vo1).xyxx) * (0.7)) + (texture2D
1059 (s0,vo1))) * (0.7));
1060 }
1021 """ 1061 """
1022 } 1062 }
1023 , Program 1063 , Program
@@ -1039,12 +1079,17 @@ Pipeline
1039 in vec4 vi1; 1079 in vec4 vi1;
1040 in vec2 vi2; 1080 in vec2 vi2;
1041 smooth out vec2 vo1; 1081 smooth out vec2 vo1;
1082 mat4 rotMatrixX(float z0) {
1083 return mat4 (vec4 (1.0,0.0,0.0,0.0)
1084 ,vec4 (0.0,cos (z0),sin (z0),0.0)
1085 ,vec4 (0.0,(0.0) - (sin (z0)),cos (z0),0.0)
1086 ,vec4 (0.0,0.0,0.0,1.0));
1087 }
1088 vec4 scale(float z0,vec4 z1) {
1089 return (z1) * (vec4 (z0,z0,z0,1.0));
1090 }
1042 void main() { 1091 void main() {
1043 gl_Position = (MVP) * (((mat4 (vec4 (1.0,0.0,0.0,0.0) 1092 gl_Position = (MVP) * (scale (0.5,(rotMatrixX (0.5)) * (vi1)));
1044 ,vec4 (0.0,cos (0.5),sin (0.5),0.0)
1045 ,vec4 (0.0,(0.0) - (sin (0.5)),cos (0.5),0.0)
1046 ,vec4 (0.0,0.0,0.0,1.0))) * (vi1)) * (vec4
1047 (0.5,0.5,0.5,1.0)));
1048 vo1 = vi2; 1093 vo1 = vi2;
1049 } 1094 }
1050 """ 1095 """
@@ -1058,11 +1103,14 @@ Pipeline
1058 uniform sampler2D s0; 1103 uniform sampler2D s0;
1059 smooth in vec2 vo1; 1104 smooth in vec2 vo1;
1060 out vec4 f0; 1105 out vec4 f0;
1061 void main() { 1106 vec4 setAlpha(vec4 z0) {
1062 f0 = ((((((vo1).xyxx) * (0.7)) + (texture2D 1107 return ((z0) * (vec4 (1.0,1.0,1.0,0.0))) + (vec4
1063 (s0,vo1))) * (0.7)) * (vec4 (1.0,1.0,1.0,0.0))) + (vec4
1064 (0.0,0.0,0.0,1.0)); 1108 (0.0,0.0,0.0,1.0));
1065 } 1109 }
1110 void main() {
1111 f0 = setAlpha (((((vo1).xyxx) * (0.7)) + (texture2D
1112 (s0,vo1))) * (0.7));
1113 }
1066 """ 1114 """
1067 } 1115 }
1068 , Program 1116 , Program
@@ -1084,12 +1132,17 @@ Pipeline
1084 in vec4 vi1; 1132 in vec4 vi1;
1085 in vec2 vi2; 1133 in vec2 vi2;
1086 smooth out vec2 vo1; 1134 smooth out vec2 vo1;
1135 mat4 rotMatrixX(float z0) {
1136 return mat4 (vec4 (1.0,0.0,0.0,0.0)
1137 ,vec4 (0.0,cos (z0),sin (z0),0.0)
1138 ,vec4 (0.0,(0.0) - (sin (z0)),cos (z0),0.0)
1139 ,vec4 (0.0,0.0,0.0,1.0));
1140 }
1141 vec4 scale(float z0,vec4 z1) {
1142 return (z1) * (vec4 (z0,z0,z0,1.0));
1143 }
1087 void main() { 1144 void main() {
1088 gl_Position = (MVP) * (((mat4 (vec4 (1.0,0.0,0.0,0.0) 1145 gl_Position = (MVP) * (scale (0.5,(rotMatrixX (0.6)) * (vi1)));
1089 ,vec4 (0.0,cos (0.6),sin (0.6),0.0)
1090 ,vec4 (0.0,(0.0) - (sin (0.6)),cos (0.6),0.0)
1091 ,vec4 (0.0,0.0,0.0,1.0))) * (vi1)) * (vec4
1092 (0.5,0.5,0.5,1.0)));
1093 vo1 = vi2; 1146 vo1 = vi2;
1094 } 1147 }
1095 """ 1148 """
@@ -1103,11 +1156,14 @@ Pipeline
1103 uniform sampler2D s0; 1156 uniform sampler2D s0;
1104 smooth in vec2 vo1; 1157 smooth in vec2 vo1;
1105 out vec4 f0; 1158 out vec4 f0;
1106 void main() { 1159 vec4 setAlpha(vec4 z0) {
1107 f0 = ((((((vo1).xyxx) * (0.7)) + (texture2D 1160 return ((z0) * (vec4 (1.0,1.0,1.0,0.0))) + (vec4
1108 (s0,vo1))) * (0.7)) * (vec4 (1.0,1.0,1.0,0.0))) + (vec4
1109 (0.0,0.0,0.0,1.0)); 1161 (0.0,0.0,0.0,1.0));
1110 } 1162 }
1163 void main() {
1164 f0 = setAlpha (((((vo1).xyxx) * (0.7)) + (texture2D
1165 (s0,vo1))) * (0.7));
1166 }
1111 """ 1167 """
1112 } 1168 }
1113 , Program 1169 , Program
@@ -1129,12 +1185,17 @@ Pipeline
1129 in vec4 vi1; 1185 in vec4 vi1;
1130 in vec2 vi2; 1186 in vec2 vi2;
1131 smooth out vec2 vo1; 1187 smooth out vec2 vo1;
1188 mat4 rotMatrixX(float z0) {
1189 return mat4 (vec4 (1.0,0.0,0.0,0.0)
1190 ,vec4 (0.0,cos (z0),sin (z0),0.0)
1191 ,vec4 (0.0,(0.0) - (sin (z0)),cos (z0),0.0)
1192 ,vec4 (0.0,0.0,0.0,1.0));
1193 }
1194 vec4 scale(float z0,vec4 z1) {
1195 return (z1) * (vec4 (z0,z0,z0,1.0));
1196 }
1132 void main() { 1197 void main() {
1133 gl_Position = (MVP) * (((mat4 (vec4 (1.0,0.0,0.0,0.0) 1198 gl_Position = (MVP) * (scale (0.5,(rotMatrixX (0.7)) * (vi1)));
1134 ,vec4 (0.0,cos (0.7),sin (0.7),0.0)
1135 ,vec4 (0.0,(0.0) - (sin (0.7)),cos (0.7),0.0)
1136 ,vec4 (0.0,0.0,0.0,1.0))) * (vi1)) * (vec4
1137 (0.5,0.5,0.5,1.0)));
1138 vo1 = vi2; 1199 vo1 = vi2;
1139 } 1200 }
1140 """ 1201 """
@@ -1148,11 +1209,14 @@ Pipeline
1148 uniform sampler2D s0; 1209 uniform sampler2D s0;
1149 smooth in vec2 vo1; 1210 smooth in vec2 vo1;
1150 out vec4 f0; 1211 out vec4 f0;
1151 void main() { 1212 vec4 setAlpha(vec4 z0) {
1152 f0 = ((((((vo1).xyxx) * (0.7)) + (texture2D 1213 return ((z0) * (vec4 (1.0,1.0,1.0,0.0))) + (vec4
1153 (s0,vo1))) * (0.7)) * (vec4 (1.0,1.0,1.0,0.0))) + (vec4
1154 (0.0,0.0,0.0,1.0)); 1214 (0.0,0.0,0.0,1.0));
1155 } 1215 }
1216 void main() {
1217 f0 = setAlpha (((((vo1).xyxx) * (0.7)) + (texture2D
1218 (s0,vo1))) * (0.7));
1219 }
1156 """ 1220 """
1157 } 1221 }
1158 , Program 1222 , Program
@@ -1174,12 +1238,17 @@ Pipeline
1174 in vec4 vi1; 1238 in vec4 vi1;
1175 in vec2 vi2; 1239 in vec2 vi2;
1176 smooth out vec2 vo1; 1240 smooth out vec2 vo1;
1241 mat4 rotMatrixX(float z0) {
1242 return mat4 (vec4 (1.0,0.0,0.0,0.0)
1243 ,vec4 (0.0,cos (z0),sin (z0),0.0)
1244 ,vec4 (0.0,(0.0) - (sin (z0)),cos (z0),0.0)
1245 ,vec4 (0.0,0.0,0.0,1.0));
1246 }
1247 vec4 scale(float z0,vec4 z1) {
1248 return (z1) * (vec4 (z0,z0,z0,1.0));
1249 }
1177 void main() { 1250 void main() {
1178 gl_Position = (MVP) * (((mat4 (vec4 (1.0,0.0,0.0,0.0) 1251 gl_Position = (MVP) * (scale (0.5,(rotMatrixX (0.8)) * (vi1)));
1179 ,vec4 (0.0,cos (0.8),sin (0.8),0.0)
1180 ,vec4 (0.0,(0.0) - (sin (0.8)),cos (0.8),0.0)
1181 ,vec4 (0.0,0.0,0.0,1.0))) * (vi1)) * (vec4
1182 (0.5,0.5,0.5,1.0)));
1183 vo1 = vi2; 1252 vo1 = vi2;
1184 } 1253 }
1185 """ 1254 """
@@ -1193,11 +1262,14 @@ Pipeline
1193 uniform sampler2D s0; 1262 uniform sampler2D s0;
1194 smooth in vec2 vo1; 1263 smooth in vec2 vo1;
1195 out vec4 f0; 1264 out vec4 f0;
1196 void main() { 1265 vec4 setAlpha(vec4 z0) {
1197 f0 = ((((((vo1).xyxx) * (0.7)) + (texture2D 1266 return ((z0) * (vec4 (1.0,1.0,1.0,0.0))) + (vec4
1198 (s0,vo1))) * (0.7)) * (vec4 (1.0,1.0,1.0,0.0))) + (vec4
1199 (0.0,0.0,0.0,1.0)); 1267 (0.0,0.0,0.0,1.0));
1200 } 1268 }
1269 void main() {
1270 f0 = setAlpha (((((vo1).xyxx) * (0.7)) + (texture2D
1271 (s0,vo1))) * (0.7));
1272 }
1201 """ 1273 """
1202 } 1274 }
1203 , Program 1275 , Program
@@ -1219,12 +1291,17 @@ Pipeline
1219 in vec4 vi1; 1291 in vec4 vi1;
1220 in vec2 vi2; 1292 in vec2 vi2;
1221 smooth out vec2 vo1; 1293 smooth out vec2 vo1;
1294 mat4 rotMatrixX(float z0) {
1295 return mat4 (vec4 (1.0,0.0,0.0,0.0)
1296 ,vec4 (0.0,cos (z0),sin (z0),0.0)
1297 ,vec4 (0.0,(0.0) - (sin (z0)),cos (z0),0.0)
1298 ,vec4 (0.0,0.0,0.0,1.0));
1299 }
1300 vec4 scale(float z0,vec4 z1) {
1301 return (z1) * (vec4 (z0,z0,z0,1.0));
1302 }
1222 void main() { 1303 void main() {
1223 gl_Position = (MVP) * (((mat4 (vec4 (1.0,0.0,0.0,0.0) 1304 gl_Position = (MVP) * (scale (0.5,(rotMatrixX (0.9)) * (vi1)));
1224 ,vec4 (0.0,cos (0.9),sin (0.9),0.0)
1225 ,vec4 (0.0,(0.0) - (sin (0.9)),cos (0.9),0.0)
1226 ,vec4 (0.0,0.0,0.0,1.0))) * (vi1)) * (vec4
1227 (0.5,0.5,0.5,1.0)));
1228 vo1 = vi2; 1305 vo1 = vi2;
1229 } 1306 }
1230 """ 1307 """
@@ -1238,11 +1315,14 @@ Pipeline
1238 uniform sampler2D s0; 1315 uniform sampler2D s0;
1239 smooth in vec2 vo1; 1316 smooth in vec2 vo1;
1240 out vec4 f0; 1317 out vec4 f0;
1241 void main() { 1318 vec4 setAlpha(vec4 z0) {
1242 f0 = ((((((vo1).xyxx) * (0.7)) + (texture2D 1319 return ((z0) * (vec4 (1.0,1.0,1.0,0.0))) + (vec4
1243 (s0,vo1))) * (0.7)) * (vec4 (1.0,1.0,1.0,0.0))) + (vec4
1244 (0.0,0.0,0.0,1.0)); 1320 (0.0,0.0,0.0,1.0));
1245 } 1321 }
1322 void main() {
1323 f0 = setAlpha (((((vo1).xyxx) * (0.7)) + (texture2D
1324 (s0,vo1))) * (0.7));
1325 }
1246 """ 1326 """
1247 } 1327 }
1248 , Program 1328 , Program
@@ -1264,12 +1344,17 @@ Pipeline
1264 in vec4 vi1; 1344 in vec4 vi1;
1265 in vec2 vi2; 1345 in vec2 vi2;
1266 smooth out vec2 vo1; 1346 smooth out vec2 vo1;
1347 mat4 rotMatrixX(float z0) {
1348 return mat4 (vec4 (1.0,0.0,0.0,0.0)
1349 ,vec4 (0.0,cos (z0),sin (z0),0.0)
1350 ,vec4 (0.0,(0.0) - (sin (z0)),cos (z0),0.0)
1351 ,vec4 (0.0,0.0,0.0,1.0));
1352 }
1353 vec4 scale(float z0,vec4 z1) {
1354 return (z1) * (vec4 (z0,z0,z0,1.0));
1355 }
1267 void main() { 1356 void main() {
1268 gl_Position = (MVP) * (((mat4 (vec4 (1.0,0.0,0.0,0.0) 1357 gl_Position = (MVP) * (scale (0.5,(rotMatrixX (1.0)) * (vi1)));
1269 ,vec4 (0.0,cos (1.0),sin (1.0),0.0)
1270 ,vec4 (0.0,(0.0) - (sin (1.0)),cos (1.0),0.0)
1271 ,vec4 (0.0,0.0,0.0,1.0))) * (vi1)) * (vec4
1272 (0.5,0.5,0.5,1.0)));
1273 vo1 = vi2; 1358 vo1 = vi2;
1274 } 1359 }
1275 """ 1360 """
@@ -1283,11 +1368,14 @@ Pipeline
1283 uniform sampler2D s0; 1368 uniform sampler2D s0;
1284 smooth in vec2 vo1; 1369 smooth in vec2 vo1;
1285 out vec4 f0; 1370 out vec4 f0;
1286 void main() { 1371 vec4 setAlpha(vec4 z0) {
1287 f0 = ((((((vo1).xyxx) * (0.7)) + (texture2D 1372 return ((z0) * (vec4 (1.0,1.0,1.0,0.0))) + (vec4
1288 (s0,vo1))) * (0.7)) * (vec4 (1.0,1.0,1.0,0.0))) + (vec4
1289 (0.0,0.0,0.0,1.0)); 1373 (0.0,0.0,0.0,1.0));
1290 } 1374 }
1375 void main() {
1376 f0 = setAlpha (((((vo1).xyxx) * (0.7)) + (texture2D
1377 (s0,vo1))) * (0.7));
1378 }
1291 """ 1379 """
1292 } 1380 }
1293 , Program 1381 , Program
@@ -1309,12 +1397,17 @@ Pipeline
1309 in vec4 vi1; 1397 in vec4 vi1;
1310 in vec2 vi2; 1398 in vec2 vi2;
1311 smooth out vec2 vo1; 1399 smooth out vec2 vo1;
1400 mat4 rotMatrixX(float z0) {
1401 return mat4 (vec4 (1.0,0.0,0.0,0.0)
1402 ,vec4 (0.0,cos (z0),sin (z0),0.0)
1403 ,vec4 (0.0,(0.0) - (sin (z0)),cos (z0),0.0)
1404 ,vec4 (0.0,0.0,0.0,1.0));
1405 }
1406 vec4 scale(float z0,vec4 z1) {
1407 return (z1) * (vec4 (z0,z0,z0,1.0));
1408 }
1312 void main() { 1409 void main() {
1313 gl_Position = (MVP) * (((mat4 (vec4 (1.0,0.0,0.0,0.0) 1410 gl_Position = (MVP) * (scale (0.5,(rotMatrixX (1.1)) * (vi1)));
1314 ,vec4 (0.0,cos (1.1),sin (1.1),0.0)
1315 ,vec4 (0.0,(0.0) - (sin (1.1)),cos (1.1),0.0)
1316 ,vec4 (0.0,0.0,0.0,1.0))) * (vi1)) * (vec4
1317 (0.5,0.5,0.5,1.0)));
1318 vo1 = vi2; 1411 vo1 = vi2;
1319 } 1412 }
1320 """ 1413 """
@@ -1328,11 +1421,14 @@ Pipeline
1328 uniform sampler2D s0; 1421 uniform sampler2D s0;
1329 smooth in vec2 vo1; 1422 smooth in vec2 vo1;
1330 out vec4 f0; 1423 out vec4 f0;
1331 void main() { 1424 vec4 setAlpha(vec4 z0) {
1332 f0 = ((((((vo1).xyxx) * (0.7)) + (texture2D 1425 return ((z0) * (vec4 (1.0,1.0,1.0,0.0))) + (vec4
1333 (s0,vo1))) * (0.7)) * (vec4 (1.0,1.0,1.0,0.0))) + (vec4
1334 (0.0,0.0,0.0,1.0)); 1426 (0.0,0.0,0.0,1.0));
1335 } 1427 }
1428 void main() {
1429 f0 = setAlpha (((((vo1).xyxx) * (0.7)) + (texture2D
1430 (s0,vo1))) * (0.7));
1431 }
1336 """ 1432 """
1337 } 1433 }
1338 , Program 1434 , Program
@@ -1354,12 +1450,17 @@ Pipeline
1354 in vec4 vi1; 1450 in vec4 vi1;
1355 in vec2 vi2; 1451 in vec2 vi2;
1356 smooth out vec2 vo1; 1452 smooth out vec2 vo1;
1453 mat4 rotMatrixX(float z0) {
1454 return mat4 (vec4 (1.0,0.0,0.0,0.0)
1455 ,vec4 (0.0,cos (z0),sin (z0),0.0)
1456 ,vec4 (0.0,(0.0) - (sin (z0)),cos (z0),0.0)
1457 ,vec4 (0.0,0.0,0.0,1.0));
1458 }
1459 vec4 scale(float z0,vec4 z1) {
1460 return (z1) * (vec4 (z0,z0,z0,1.0));
1461 }
1357 void main() { 1462 void main() {
1358 gl_Position = (MVP) * (((mat4 (vec4 (1.0,0.0,0.0,0.0) 1463 gl_Position = (MVP) * (scale (0.5,(rotMatrixX (1.2)) * (vi1)));
1359 ,vec4 (0.0,cos (1.2),sin (1.2),0.0)
1360 ,vec4 (0.0,(0.0) - (sin (1.2)),cos (1.2),0.0)
1361 ,vec4 (0.0,0.0,0.0,1.0))) * (vi1)) * (vec4
1362 (0.5,0.5,0.5,1.0)));
1363 vo1 = vi2; 1464 vo1 = vi2;
1364 } 1465 }
1365 """ 1466 """
@@ -1373,11 +1474,14 @@ Pipeline
1373 uniform sampler2D s0; 1474 uniform sampler2D s0;
1374 smooth in vec2 vo1; 1475 smooth in vec2 vo1;
1375 out vec4 f0; 1476 out vec4 f0;
1376 void main() { 1477 vec4 setAlpha(vec4 z0) {
1377 f0 = ((((((vo1).xyxx) * (0.7)) + (texture2D 1478 return ((z0) * (vec4 (1.0,1.0,1.0,0.0))) + (vec4
1378 (s0,vo1))) * (0.7)) * (vec4 (1.0,1.0,1.0,0.0))) + (vec4
1379 (0.0,0.0,0.0,1.0)); 1479 (0.0,0.0,0.0,1.0));
1380 } 1480 }
1481 void main() {
1482 f0 = setAlpha (((((vo1).xyxx) * (0.7)) + (texture2D
1483 (s0,vo1))) * (0.7));
1484 }
1381 """ 1485 """
1382 } 1486 }
1383 , Program 1487 , Program
@@ -1399,12 +1503,17 @@ Pipeline
1399 in vec4 vi1; 1503 in vec4 vi1;
1400 in vec2 vi2; 1504 in vec2 vi2;
1401 smooth out vec2 vo1; 1505 smooth out vec2 vo1;
1506 mat4 rotMatrixX(float z0) {
1507 return mat4 (vec4 (1.0,0.0,0.0,0.0)
1508 ,vec4 (0.0,cos (z0),sin (z0),0.0)
1509 ,vec4 (0.0,(0.0) - (sin (z0)),cos (z0),0.0)
1510 ,vec4 (0.0,0.0,0.0,1.0));
1511 }
1512 vec4 scale(float z0,vec4 z1) {
1513 return (z1) * (vec4 (z0,z0,z0,1.0));
1514 }
1402 void main() { 1515 void main() {
1403 gl_Position = (MVP) * (((mat4 (vec4 (1.0,0.0,0.0,0.0) 1516 gl_Position = (MVP) * (scale (0.5,(rotMatrixX (1.3)) * (vi1)));
1404 ,vec4 (0.0,cos (1.3),sin (1.3),0.0)
1405 ,vec4 (0.0,(0.0) - (sin (1.3)),cos (1.3),0.0)
1406 ,vec4 (0.0,0.0,0.0,1.0))) * (vi1)) * (vec4
1407 (0.5,0.5,0.5,1.0)));
1408 vo1 = vi2; 1517 vo1 = vi2;
1409 } 1518 }
1410 """ 1519 """
@@ -1418,11 +1527,14 @@ Pipeline
1418 uniform sampler2D s0; 1527 uniform sampler2D s0;
1419 smooth in vec2 vo1; 1528 smooth in vec2 vo1;
1420 out vec4 f0; 1529 out vec4 f0;
1421 void main() { 1530 vec4 setAlpha(vec4 z0) {
1422 f0 = ((((((vo1).xyxx) * (0.7)) + (texture2D 1531 return ((z0) * (vec4 (1.0,1.0,1.0,0.0))) + (vec4
1423 (s0,vo1))) * (0.7)) * (vec4 (1.0,1.0,1.0,0.0))) + (vec4
1424 (0.0,0.0,0.0,1.0)); 1532 (0.0,0.0,0.0,1.0));
1425 } 1533 }
1534 void main() {
1535 f0 = setAlpha (((((vo1).xyxx) * (0.7)) + (texture2D
1536 (s0,vo1))) * (0.7));
1537 }
1426 """ 1538 """
1427 } 1539 }
1428 , Program 1540 , Program
@@ -1444,12 +1556,17 @@ Pipeline
1444 in vec4 vi1; 1556 in vec4 vi1;
1445 in vec2 vi2; 1557 in vec2 vi2;
1446 smooth out vec2 vo1; 1558 smooth out vec2 vo1;
1559 mat4 rotMatrixX(float z0) {
1560 return mat4 (vec4 (1.0,0.0,0.0,0.0)
1561 ,vec4 (0.0,cos (z0),sin (z0),0.0)
1562 ,vec4 (0.0,(0.0) - (sin (z0)),cos (z0),0.0)
1563 ,vec4 (0.0,0.0,0.0,1.0));
1564 }
1565 vec4 scale(float z0,vec4 z1) {
1566 return (z1) * (vec4 (z0,z0,z0,1.0));
1567 }
1447 void main() { 1568 void main() {
1448 gl_Position = (MVP) * (((mat4 (vec4 (1.0,0.0,0.0,0.0) 1569 gl_Position = (MVP) * (scale (0.5,(rotMatrixX (1.4)) * (vi1)));
1449 ,vec4 (0.0,cos (1.4),sin (1.4),0.0)
1450 ,vec4 (0.0,(0.0) - (sin (1.4)),cos (1.4),0.0)
1451 ,vec4 (0.0,0.0,0.0,1.0))) * (vi1)) * (vec4
1452 (0.5,0.5,0.5,1.0)));
1453 vo1 = vi2; 1570 vo1 = vi2;
1454 } 1571 }
1455 """ 1572 """
@@ -1463,11 +1580,14 @@ Pipeline
1463 uniform sampler2D s0; 1580 uniform sampler2D s0;
1464 smooth in vec2 vo1; 1581 smooth in vec2 vo1;
1465 out vec4 f0; 1582 out vec4 f0;
1466 void main() { 1583 vec4 setAlpha(vec4 z0) {
1467 f0 = ((((((vo1).xyxx) * (0.7)) + (texture2D 1584 return ((z0) * (vec4 (1.0,1.0,1.0,0.0))) + (vec4
1468 (s0,vo1))) * (0.7)) * (vec4 (1.0,1.0,1.0,0.0))) + (vec4
1469 (0.0,0.0,0.0,1.0)); 1585 (0.0,0.0,0.0,1.0));
1470 } 1586 }
1587 void main() {
1588 f0 = setAlpha (((((vo1).xyxx) * (0.7)) + (texture2D
1589 (s0,vo1))) * (0.7));
1590 }
1471 """ 1591 """
1472 } 1592 }
1473 ] 1593 ]
diff --git a/testdata/recursivetexture02.out b/testdata/recursivetexture02.out
index 0dc86bbb..b2870eeb 100644
--- a/testdata/recursivetexture02.out
+++ b/testdata/recursivetexture02.out
@@ -294,8 +294,11 @@ Pipeline
294 in vec4 vi1; 294 in vec4 vi1;
295 in vec2 vi2; 295 in vec2 vi2;
296 smooth out vec2 vo1; 296 smooth out vec2 vo1;
297 vec4 scale(float z0,vec4 z1) {
298 return (z1) * (vec4 (z0,z0,z0,1.0));
299 }
297 void main() { 300 void main() {
298 gl_Position = ((MVP) * (vi1)) * (vec4 (0.5,0.5,0.5,1.0)); 301 gl_Position = scale (0.5,(MVP) * (vi1));
299 vo1 = vi2; 302 vo1 = vi2;
300 } 303 }
301 """ 304 """
@@ -332,8 +335,11 @@ Pipeline
332 in vec4 vi1; 335 in vec4 vi1;
333 in vec2 vi2; 336 in vec2 vi2;
334 smooth out vec2 vo1; 337 smooth out vec2 vo1;
338 vec4 scale(float z0,vec4 z1) {
339 return (z1) * (vec4 (z0,z0,z0,1.0));
340 }
335 void main() { 341 void main() {
336 gl_Position = ((MVP) * (vi1)) * (vec4 (1.0,1.0,1.0,1.0)); 342 gl_Position = scale (1.0,(MVP) * (vi1));
337 vo1 = vi2; 343 vo1 = vi2;
338 } 344 }
339 """ 345 """
@@ -371,8 +377,11 @@ Pipeline
371 in vec4 vi1; 377 in vec4 vi1;
372 in vec2 vi2; 378 in vec2 vi2;
373 smooth out vec2 vo1; 379 smooth out vec2 vo1;
380 vec4 scale(float z0,vec4 z1) {
381 return (z1) * (vec4 (z0,z0,z0,1.0));
382 }
374 void main() { 383 void main() {
375 gl_Position = ((MVP) * (vi1)) * (vec4 (1.0,1.0,1.0,1.0)); 384 gl_Position = scale (1.0,(MVP) * (vi1));
376 vo1 = vi2; 385 vo1 = vi2;
377 } 386 }
378 """ 387 """
@@ -410,8 +419,11 @@ Pipeline
410 in vec4 vi1; 419 in vec4 vi1;
411 in vec2 vi2; 420 in vec2 vi2;
412 smooth out vec2 vo1; 421 smooth out vec2 vo1;
422 vec4 scale(float z0,vec4 z1) {
423 return (z1) * (vec4 (z0,z0,z0,1.0));
424 }
413 void main() { 425 void main() {
414 gl_Position = ((MVP) * (vi1)) * (vec4 (1.0,1.0,1.0,1.0)); 426 gl_Position = scale (1.0,(MVP) * (vi1));
415 vo1 = vi2; 427 vo1 = vi2;
416 } 428 }
417 """ 429 """
@@ -449,8 +461,11 @@ Pipeline
449 in vec4 vi1; 461 in vec4 vi1;
450 in vec2 vi2; 462 in vec2 vi2;
451 smooth out vec2 vo1; 463 smooth out vec2 vo1;
464 vec4 scale(float z0,vec4 z1) {
465 return (z1) * (vec4 (z0,z0,z0,1.0));
466 }
452 void main() { 467 void main() {
453 gl_Position = ((MVP) * (vi1)) * (vec4 (1.0,1.0,1.0,1.0)); 468 gl_Position = scale (1.0,(MVP) * (vi1));
454 vo1 = vi2; 469 vo1 = vi2;
455 } 470 }
456 """ 471 """
@@ -488,8 +503,11 @@ Pipeline
488 in vec4 vi1; 503 in vec4 vi1;
489 in vec2 vi2; 504 in vec2 vi2;
490 smooth out vec2 vo1; 505 smooth out vec2 vo1;
506 vec4 scale(float z0,vec4 z1) {
507 return (z1) * (vec4 (z0,z0,z0,1.0));
508 }
491 void main() { 509 void main() {
492 gl_Position = ((MVP) * (vi1)) * (vec4 (1.0,1.0,1.0,1.0)); 510 gl_Position = scale (1.0,(MVP) * (vi1));
493 vo1 = vi2; 511 vo1 = vi2;
494 } 512 }
495 """ 513 """
diff --git a/testdata/simple03.out b/testdata/simple03.out
index 6e02ebbd..dc2dcca3 100644
--- a/testdata/simple03.out
+++ b/testdata/simple03.out
@@ -33,9 +33,12 @@ Pipeline
33 in vec3 vi1; 33 in vec3 vi1;
34 in vec3 vi2; 34 in vec3 vi2;
35 smooth out vec4 vo1; 35 smooth out vec4 vo1;
36 vec4 v3FToV4F(vec3 z0) {
37 return vec4 ((z0).x,(z0).y,(z0).z,1.0);
38 }
36 void main() { 39 void main() {
37 gl_Position = (viewProj) * (vec4 ((vi1).x,(vi1).y,(vi1).z,1.0)); 40 gl_Position = (viewProj) * (v3FToV4F (vi1));
38 vo1 = vec4 ((vi2).x,(vi2).y,(vi2).z,1.0); 41 vo1 = v3FToV4F (vi2);
39 } 42 }
40 """ 43 """
41 , geometryShader = Nothing 44 , geometryShader = Nothing
@@ -71,9 +74,12 @@ Pipeline
71 in vec3 vi1; 74 in vec3 vi1;
72 in vec3 vi2; 75 in vec3 vi2;
73 smooth out vec4 vo1; 76 smooth out vec4 vo1;
77 vec4 v3FToV4F(vec3 z0) {
78 return vec4 ((z0).x,(z0).y,(z0).z,1.0);
79 }
74 void main() { 80 void main() {
75 gl_Position = (viewProj) * (vec4 ((vi1).x,(vi1).y,(vi1).z,1.0)); 81 gl_Position = (viewProj) * (v3FToV4F (vi1));
76 vo1 = vec4 ((vi2).x,(vi2).y,(vi2).z,1.0); 82 vo1 = v3FToV4F (vi2);
77 } 83 }
78 """ 84 """
79 , geometryShader = Nothing 85 , geometryShader = Nothing
diff --git a/testdata/texture01.out b/testdata/texture01.out
index eea2d8ff..f4e20137 100644
--- a/testdata/texture01.out
+++ b/testdata/texture01.out
@@ -34,8 +34,11 @@ Pipeline
34 in vec4 vi1; 34 in vec4 vi1;
35 in vec2 vi2; 35 in vec2 vi2;
36 smooth out vec2 vo1; 36 smooth out vec2 vo1;
37 vec4 scale(float z0,vec4 z1) {
38 return (z1) * (vec4 (z0,z0,z0,1.0));
39 }
37 void main() { 40 void main() {
38 gl_Position = ((MVP) * (vi1)) * (vec4 (0.5,0.5,0.5,1.0)); 41 gl_Position = scale (0.5,(MVP) * (vi1));
39 vo1 = vi2; 42 vo1 = vi2;
40 } 43 }
41 """ 44 """
diff --git a/testdata/texture02.out b/testdata/texture02.out
index 0f94c705..3ecb149f 100644
--- a/testdata/texture02.out
+++ b/testdata/texture02.out
@@ -86,8 +86,11 @@ Pipeline
86 in vec4 vi1; 86 in vec4 vi1;
87 in vec2 vi2; 87 in vec2 vi2;
88 smooth out vec2 vo1; 88 smooth out vec2 vo1;
89 vec4 scale(float z0,vec4 z1) {
90 return (z1) * (vec4 (z0,z0,z0,1.0));
91 }
89 void main() { 92 void main() {
90 gl_Position = ((MVP) * (vi1)) * (vec4 (0.5,0.5,0.5,1.0)); 93 gl_Position = scale (0.5,(MVP) * (vi1));
91 vo1 = vi2; 94 vo1 = vi2;
92 } 95 }
93 """ 96 """
diff --git a/testdata/traceTest.out b/testdata/traceTest.out
index 71cf92a7..1f89a166 100644
--- a/testdata/traceTest.out
+++ b/testdata/traceTest.out
@@ -17,4 +17,4 @@ testdata/traceTest.lc 10:17-10:24 Type
17testdata/traceTest.lc 10:19-10:20 V3 17testdata/traceTest.lc 10:19-10:20 V3
18testdata/traceTest.lc 10:22-10:23 V1 18testdata/traceTest.lc 10:22-10:23 V1
19testdata/traceTest.lc 11:1-11:2 X (Type -> Type->Type) (\c:Type d:Type -> Tuple2 c d) 19testdata/traceTest.lc 11:1-11:2 X (Type -> Type->Type) (\c:Type d:Type -> Tuple2 c d)
20testdata/traceTest.lc 11:5-11:14 X (Type -> Type->Type) (\c:Type d:Type -> Tuple2 c d) 20testdata/traceTest.lc 11:5-11:14 {a}->a