From 199773cce8f76db2b5bfcd9a2d5564f9e00b116e Mon Sep 17 00:00:00 2001 From: Péter Diviánszky Date: Thu, 21 Jan 2016 16:38:52 +0100 Subject: wip refactoring (results better error ranges as a side effect) --- src/LambdaCube/Compiler/Infer.hs | 26 +- testdata/Builtins.out | 1277 +++++++++++++++----- testdata/Internals.out | 19 +- testdata/Prelude.out | 695 ++++++++--- testdata/accumulate01.reject.out | 6 +- testdata/ambig.out | 9 +- testdata/complex.out | 301 +++-- testdata/id.out | 7 +- testdata/instantiate.out | 2 +- testdata/language-features/basic-values/case05.out | 2 + testdata/language-features/basic-values/case06.out | 2 + .../language-features/basic-values/deforder03.out | 2 +- .../language-features/basic-values/deforder06.out | 2 +- .../language-features/basic-values/lambda03.out | 1 + .../language-features/basic-values/shadowing02.out | 2 +- .../language-features/basic-values/typesig03.out | 16 +- testdata/let.out | 2 + testdata/letIndent.out | 1 + testdata/record01.reject.out | 4 +- testdata/traceTest.out | 1 + testdata/typeclass.out | 31 +- testdata/zip01.out | 40 +- 22 files changed, 1847 insertions(+), 601 deletions(-) diff --git a/src/LambdaCube/Compiler/Infer.hs b/src/LambdaCube/Compiler/Infer.hs index 83111855..71ef1958 100644 --- a/src/LambdaCube/Compiler/Infer.hs +++ b/src/LambdaCube/Compiler/Infer.hs @@ -566,8 +566,9 @@ substSS k x = mapS__ (\si _ x -> SGlobal (si, x)) (error "substSS") (\sn (i, x) LT -> SVar sn j ) ((+1) *** upS) (k, x) substS j x = mapS (uncurry $ substE "substS") ((+1) *** up1E 0) (j, x) -substSG j x = mapS_ (\si x i -> if i == j then x else SGlobal (si, i)) (const id) upS x -substSG0 n e = substSG n (SVar (sexpSI e, n) 0) $ upS e +substSG :: SName -> (SI -> SExp) -> SExp -> SExp +substSG j x = mapS_ (\si x i -> if i == j then x si else SGlobal (si, i)) (const id) (fmap upS) x +substSG0 n e = substSG n (\si -> (SVar (si, n) 0)) $ upS e substE err = substE_ (error $ "substE: todo: environment required in " ++ err) -- todo: remove @@ -1833,17 +1834,20 @@ parseDef ns e = (id *** (vt:)) <$> (comma *> telescopeDataFields ns (x: vs) <|> pure (vs, [])) funAltDef parseName ns e = do -- todo: use ns to determine parseName - (n, (fe@(DBNamesC fe_), ts)) <- + (n, (fee, tss)) <- do try' "operator definition" $ do - (e', a1) <- patternAtom ns (addDBName "" e) + (e', a1) <- patternAtom ns e localIndentation Gt $ do - (si,n) <- siName $ operatorT - (e'', a2) <- patternAtom ns $ addDBNames (init (diffDBNames e' e) ++ [n]) e + n <- siName operatorT + (e'', a2) <- patternAtom ns e' lookAhead $ reservedOp "=" <|> reservedOp "|" - return ((si, n), (e'', (,) (Visible, Wildcard SType) <$> [a1, a2])) + return (n, (e'', (,) (Visible, Wildcard SType) <$> [a1, a2])) <|> do try $ do - (si,n) <- siName $ parseName - localIndentation Gt $ (,) (si, n) <$> telescope' ns (addDBName n e) <* (lookAhead $ reservedOp "=" <|> reservedOp "|") + n <- siName parseName + localIndentation Gt $ (,) n <$> telescope' ns e <* (lookAhead $ reservedOp "=" <|> reservedOp "|") + let fe@(DBNamesC fe_) = addDBNames (diffDBNames fee e) $ addDBName (snd n) e + ts = map (id *** upP 0 1{-todo: replace n with Var 0-}) tss + ni = length $ diffDBNames fee e localIndentation Gt $ do gu <- option Nothing $ do reservedOp "|" @@ -1909,7 +1913,7 @@ parseTerm ns PrecLam e = option t $ mkPi <$> (Visible <$ reservedOp "->" <|> Hidden <$ reservedOp "=>") <*> pure t <*> parseTTerm ns PrecLam e parseTerm ns PrecEq e = parseTerm ns PrecAnn e >>= \t -> option t $ SCstr t <$ reservedOp "~" <*> parseTTerm ns PrecAnn e parseTerm ns PrecAnn e = parseTerm ns PrecOp e >>= \t -> option t $ SAnn t <$> parseType ns Nothing e -parseTerm ns PrecOp e = (asks $ \dcls -> calculatePrecs dcls) <*> p' where +parseTerm ns PrecOp e = asks calculatePrecs <*> p' where p' = ((\si (t, xs) -> (mkNat ns si 0, (sVar e (debugSI "12") "-", t): xs)) `withRange` (reservedOp "-" *> p_)) <|> p_ p_ = (,) <$> parseTerm ns PrecApp e <*> (option [] $ (sVar e (debugSI "12b") <$> operatorT) >>= p) @@ -2044,7 +2048,7 @@ listCompr ns dbs = (\e (dbs', fs) -> foldr ($) (deBruinify (diffDBNames dbs' dbs -- todo: make it more efficient diffDBNames' xs ys = take (length xs - length ys) xs -deBruinify' xs e = foldl (\e (i, n) -> substSG n (SVar (debugSI "26", n) i) e) e $ zip [0..] xs +deBruinify' xs e = foldl (\e (i, n) -> substSG n (\si -> SVar (si, n) i) e) e $ zip [0..] xs deBruinify :: [String] -> SExp -> SExp deBruinify [] e = e diff --git a/testdata/Builtins.out b/testdata/Builtins.out index 38e5aa91..f84e8d03 100644 --- a/testdata/Builtins.out +++ b/testdata/Builtins.out @@ -1,5 +1,6 @@ main is not found tooltips: +testdata/Builtins.lc 9:8-9:9 V1 testdata/Builtins.lc 9:1-9:3 {a} -> a->a testdata/Builtins.lc 13:6-13:9 Type testdata/Builtins.lc 13:12-13:16 'Nat @@ -13,13 +14,18 @@ testdata/Builtins.lc 15:26-15:27 Type testdata/Builtins.lc 15:29-15:33 Type->Type testdata/Builtins.lc 15:34-15:35 Type testdata/Builtins.lc 15:21-15:25 {a} -> a -> 'List a -> 'List a -testdata/Builtins.lc 20:22-23:31 Type -> Type->Type -testdata/Builtins.lc 20:22-23:31 Type->Type +testdata/Builtins.lc 19:26-23:31 Type -> Type->Type +testdata/Builtins.lc 19:26-23:31 Type->Type +testdata/Builtins.lc 19:26-23:31 Type +testdata/Builtins.lc 19:26-19:27 Type testdata/Builtins.lc 20:22-23:31 Type testdata/Builtins.lc 20:30-20:39 Type -> Type->Type testdata/Builtins.lc 20:30-20:39 Type->Type testdata/Builtins.lc 20:30-20:39 Type testdata/Builtins.lc 20:30-20:39 Type -> Type -> Type->Type +testdata/Builtins.lc 20:31-20:32 Type +testdata/Builtins.lc 20:34-20:35 Type +testdata/Builtins.lc 20:37-20:38 Type testdata/Builtins.lc 20:22-20:26 Type testdata/Builtins.lc 21:22-23:31 Type testdata/Builtins.lc 21:33-21:45 Type -> Type -> Type->Type @@ -27,6 +33,10 @@ testdata/Builtins.lc 21:33-21:45 Type -> Type->Type testdata/Builtins.lc 21:33-21:45 Type->Type testdata/Builtins.lc 21:33-21:45 Type testdata/Builtins.lc 21:33-21:45 Type -> Type -> Type -> Type->Type +testdata/Builtins.lc 21:34-21:35 Type +testdata/Builtins.lc 21:37-21:38 Type +testdata/Builtins.lc 21:40-21:41 Type +testdata/Builtins.lc 21:43-21:44 Type testdata/Builtins.lc 21:22-21:29 Type testdata/Builtins.lc 22:22-23:31 Type testdata/Builtins.lc 22:36-22:51 Type -> Type -> Type -> Type->Type @@ -35,9 +45,16 @@ testdata/Builtins.lc 22:36-22:51 Type -> Type->Type testdata/Builtins.lc 22:36-22:51 Type->Type testdata/Builtins.lc 22:36-22:51 Type testdata/Builtins.lc 22:36-22:51 Type -> Type -> Type -> Type -> Type->Type +testdata/Builtins.lc 22:37-22:38 Type +testdata/Builtins.lc 22:40-22:41 Type +testdata/Builtins.lc 22:43-22:44 Type +testdata/Builtins.lc 22:46-22:47 Type +testdata/Builtins.lc 22:49-22:50 Type testdata/Builtins.lc 22:22-22:32 Type testdata/Builtins.lc 23:25-23:31 Type testdata/Builtins.lc 23:25-23:31 Type -> Type->Type +testdata/Builtins.lc 23:26-23:27 Type +testdata/Builtins.lc 23:29-23:30 Type testdata/Builtins.lc 19:5-19:18 Type -> Type->Type testdata/Builtins.lc 26:10-26:24 Type->Type testdata/Builtins.lc 26:10-26:24 Type @@ -84,28 +101,38 @@ testdata/Builtins.lc 35:29-35:33 Type -> 'Nat->Type testdata/Builtins.lc 35:34-35:35 Type testdata/Builtins.lc 35:3-35:5 {a} -> a -> a -> a -> a -> 'VecS a (Succ (Succ (Succ (Succ Zero)))) testdata/Builtins.lc 37:23-37:26 Type -testdata/Builtins.lc 37:47-37:51 'Nat -> Type->Type -testdata/Builtins.lc 37:47-37:51 Type->Type -testdata/Builtins.lc 37:47-37:51 Type +testdata/Builtins.lc 37:47-37:55 'Nat -> Type->Type +testdata/Builtins.lc 37:47-37:55 Type->Type +testdata/Builtins.lc 37:47-37:55 Type testdata/Builtins.lc 37:47-37:51 Type -> 'Nat->Type +testdata/Builtins.lc 37:52-37:53 Type +testdata/Builtins.lc 37:54-37:55 'Nat testdata/Builtins.lc 37:37-37:40 'Nat -> Type->Type testdata/Builtins.lc 39:29-39:32 Type -testdata/Builtins.lc 40:15-41:54 'Nat -> Type->Type -testdata/Builtins.lc 40:15-41:54 Type->Type -testdata/Builtins.lc 40:15-41:54 Type -testdata/Builtins.lc 41:37-41:54 'Nat->Type -testdata/Builtins.lc 41:37-41:54 Type +testdata/Builtins.lc 40:15-41:60 'Nat -> Type->Type +testdata/Builtins.lc 40:15-41:60 Type->Type +testdata/Builtins.lc 40:15-41:60 Type +testdata/Builtins.lc 40:21-41:60 'Nat->Type +testdata/Builtins.lc 40:21-41:60 Type +testdata/Builtins.lc 40:21-40:22 Type +testdata/Builtins.lc 41:37-41:60 'Nat->Type +testdata/Builtins.lc 41:37-41:60 Type testdata/Builtins.lc 41:37-41:40 'Nat -> Type->Type -testdata/Builtins.lc 41:43-41:54 'Nat +testdata/Builtins.lc 41:43-41:56 'Nat testdata/Builtins.lc 41:43-41:47 'Nat->'Nat -testdata/Builtins.lc 41:50-41:54 'Nat +testdata/Builtins.lc 41:50-41:56 'Nat testdata/Builtins.lc 41:50-41:54 'Nat->'Nat +testdata/Builtins.lc 41:55-41:56 'Nat +testdata/Builtins.lc 41:59-41:60 Type testdata/Builtins.lc 40:15-40:16 'Nat testdata/Builtins.lc 40:5-40:14 'Nat -> Type->Type testdata/Builtins.lc 44:25-44:28 Type +testdata/Builtins.lc 45:17-45:24 'Nat -> Type->Type +testdata/Builtins.lc 45:17-45:24 Type->Type +testdata/Builtins.lc 45:17-45:24 Type testdata/Builtins.lc 45:17-45:20 'Nat -> Type->Type -testdata/Builtins.lc 45:17-45:20 Type->Type -testdata/Builtins.lc 45:17-45:20 Type +testdata/Builtins.lc 45:21-45:22 'Nat +testdata/Builtins.lc 45:23-45:24 Type testdata/Builtins.lc 45:5-45:10 'Nat -> Type->Type testdata/Builtins.lc 48:13-48:16 Type testdata/Builtins.lc 48:20-48:39 Type @@ -230,18 +257,26 @@ testdata/Builtins.lc 53:64-57:84 Type testdata/Builtins.lc 54:64-57:84 Type testdata/Builtins.lc 55:79-57:84 Type testdata/Builtins.lc 56:79-57:84 Type -testdata/Builtins.lc 60:22-64:32 Type->Type -testdata/Builtins.lc 60:22-64:32 Type +testdata/Builtins.lc 60:22-64:37 Type->Type +testdata/Builtins.lc 60:22-64:37 Type testdata/Builtins.lc 60:30-60:35 Type testdata/Builtins.lc 60:22-60:27 Type -testdata/Builtins.lc 61:22-64:32 Type +testdata/Builtins.lc 61:22-64:37 Type testdata/Builtins.lc 61:29-61:33 Type testdata/Builtins.lc 61:22-61:26 Type -testdata/Builtins.lc 62:22-64:32 Type +testdata/Builtins.lc 62:22-64:37 Type testdata/Builtins.lc 62:28-62:31 Type testdata/Builtins.lc 62:22-62:25 Type -testdata/Builtins.lc 63:28-64:32 Type +testdata/Builtins.lc 63:28-64:37 Type +testdata/Builtins.lc 63:35-63:36 Type -> 'Nat->Type +testdata/Builtins.lc 63:35-63:36 'Nat->Type +testdata/Builtins.lc 63:35-63:36 Type testdata/Builtins.lc 63:28-63:31 Type +testdata/Builtins.lc 64:27-64:37 Type +testdata/Builtins.lc 64:36-64:37 'Nat -> 'Nat -> Type->Type +testdata/Builtins.lc 64:36-64:37 'Nat -> Type->Type +testdata/Builtins.lc 64:36-64:37 Type->Type +testdata/Builtins.lc 64:36-64:37 Type testdata/Builtins.lc 64:27-64:32 Type testdata/Builtins.lc 60:5-60:21 Type->Type testdata/Builtins.lc 68:6-68:11 Type @@ -262,37 +297,43 @@ testdata/Builtins.lc 71:49-71:56 Type testdata/Builtins.lc 71:49-71:52 'Nat -> Type->Type testdata/Builtins.lc 71:53-71:54 'Nat testdata/Builtins.lc 71:55-71:56 Type -testdata/Builtins.lc 72:24-75:44 {a} -> {b} -> {c:'Nat} -> a->b -> 'VecS a c -> 'VecS b c -testdata/Builtins.lc 72:24-75:44 {a} -> {b:'Nat} -> V2->a -> 'VecS V3 b -> 'VecS a b -testdata/Builtins.lc 72:24-75:44 {a:'Nat} -> V2->V2 -> 'VecS V3 a -> 'VecS V3 a -testdata/Builtins.lc 72:24-75:44 V2->V2 -> 'VecS V3 V1 -> 'VecS V3 V2 -testdata/Builtins.lc 72:24-75:44 'VecS V3 V1 -> 'VecS V3 V2 -testdata/Builtins.lc 72:24-75:44 'VecS V3 V2 +testdata/Builtins.lc 72:24-77:6 {a} -> {b} -> {c:'Nat} -> a->b -> 'VecS a c -> 'VecS b c +testdata/Builtins.lc 72:24-77:6 {a} -> {b:'Nat} -> V2->a -> 'VecS V3 b -> 'VecS a b +testdata/Builtins.lc 72:24-77:6 {a:'Nat} -> V2->V2 -> 'VecS V3 a -> 'VecS V3 a +testdata/Builtins.lc 72:24-77:6 V2->V2 -> 'VecS V3 V1 -> 'VecS V3 V2 +testdata/Builtins.lc 72:24-77:6 'VecS V3 V1 -> 'VecS V3 V2 +testdata/Builtins.lc 72:24-77:6 'VecS V3 V2 testdata/Builtins.lc 72:24-72:32 {a} -> (d : b:'Nat -> 'VecS a b -> Type) -> (e:a -> f:a -> d (Succ (Succ Zero)) (V2 a e f)) -> (h:a -> i:a -> j:a -> d (Succ (Succ (Succ Zero))) (V3 a h i j)) -> (l:a -> m:a -> n:a -> o:a -> d (Succ (Succ (Succ (Succ Zero)))) (V4 a l m n o)) -> {q:'Nat} -> (r : 'VecS a q) -> d q r testdata/Builtins.lc 72:34-72:50 a:'Nat -> 'VecS V1 a -> Type testdata/Builtins.lc 72:34-72:50 'VecS V1 V0 -> Type -testdata/Builtins.lc 72:43-72:48 Type +testdata/Builtins.lc 72:43-72:50 Type testdata/Builtins.lc 72:43-72:46 'Nat -> Type->Type testdata/Builtins.lc 72:47-72:48 'Nat +testdata/Builtins.lc 72:49-72:50 Type testdata/Builtins.lc 73:6-73:28 V0 -> V1 -> 'VecS V6 (Succ (Succ Zero)) testdata/Builtins.lc 73:6-73:28 V1 -> 'VecS V6 (Succ (Succ Zero)) testdata/Builtins.lc 73:14-73:27 'VecS V6 (Succ (Succ Zero)) testdata/Builtins.lc 73:14-73:16 {a} -> a -> a -> 'VecS a (Succ (Succ Zero)) -testdata/Builtins.lc 73:20-73:21 V0 +testdata/Builtins.lc 73:18-73:21 V0 +testdata/Builtins.lc 73:18-73:19 V8->V8 testdata/Builtins.lc 73:20-73:21 V7 testdata/Builtins.lc 73:20-73:21 V2 -testdata/Builtins.lc 73:26-73:27 V5 +testdata/Builtins.lc 73:24-73:27 V5 +testdata/Builtins.lc 73:24-73:25 V6->V6 testdata/Builtins.lc 73:26-73:27 V6 testdata/Builtins.lc 74:6-74:36 V4 -> V5 -> V6 -> 'VecS V6 (Succ (Succ (Succ Zero))) testdata/Builtins.lc 74:6-74:36 V5 -> V6 -> 'VecS V6 (Succ (Succ (Succ Zero))) testdata/Builtins.lc 74:6-74:36 V6 -> 'VecS V6 (Succ (Succ (Succ Zero))) testdata/Builtins.lc 74:16-74:35 'VecS V6 (Succ (Succ (Succ Zero))) testdata/Builtins.lc 74:16-74:18 {a} -> a -> a -> a -> 'VecS a (Succ (Succ (Succ Zero))) -testdata/Builtins.lc 74:22-74:23 V0 +testdata/Builtins.lc 74:20-74:23 V0 +testdata/Builtins.lc 74:20-74:21 V8->V8 testdata/Builtins.lc 74:22-74:23 V7 -testdata/Builtins.lc 74:28-74:29 V6 +testdata/Builtins.lc 74:26-74:29 V6 +testdata/Builtins.lc 74:26-74:27 V7->V7 testdata/Builtins.lc 74:28-74:29 V7 -testdata/Builtins.lc 74:34-74:35 V6 +testdata/Builtins.lc 74:32-74:35 V6 +testdata/Builtins.lc 74:32-74:33 V7->V7 testdata/Builtins.lc 74:34-74:35 V7 testdata/Builtins.lc 75:6-75:44 V4 -> V5 -> V6 -> V7 -> 'VecS V7 (Succ (Succ (Succ (Succ Zero)))) testdata/Builtins.lc 75:6-75:44 V5 -> V6 -> V7 -> 'VecS V7 (Succ (Succ (Succ (Succ Zero)))) @@ -300,40 +341,61 @@ testdata/Builtins.lc 75:6-75:44 V6 -> V7 -> 'VecS V7 (Succ (Succ (Succ (Succ Ze testdata/Builtins.lc 75:6-75:44 V7 -> 'VecS V7 (Succ (Succ (Succ (Succ Zero)))) testdata/Builtins.lc 75:18-75:43 'VecS V7 (Succ (Succ (Succ (Succ Zero)))) testdata/Builtins.lc 75:18-75:20 {a} -> a -> a -> a -> a -> 'VecS a (Succ (Succ (Succ (Succ Zero)))) -testdata/Builtins.lc 75:24-75:25 V0 +testdata/Builtins.lc 75:22-75:25 V0 +testdata/Builtins.lc 75:22-75:23 V9->V9 testdata/Builtins.lc 75:24-75:25 V8 -testdata/Builtins.lc 75:30-75:31 V7 +testdata/Builtins.lc 75:28-75:31 V7 +testdata/Builtins.lc 75:28-75:29 V8->V8 testdata/Builtins.lc 75:30-75:31 V8 -testdata/Builtins.lc 75:36-75:37 V7 +testdata/Builtins.lc 75:34-75:37 V7 +testdata/Builtins.lc 75:34-75:35 V8->V8 testdata/Builtins.lc 75:36-75:37 V8 -testdata/Builtins.lc 75:42-75:43 V7 +testdata/Builtins.lc 75:40-75:43 V7 +testdata/Builtins.lc 75:40-75:41 V8->V8 testdata/Builtins.lc 75:42-75:43 V8 +testdata/Builtins.lc 76:6-76:7 'Nat +testdata/Builtins.lc 77:5-77:6 'VecS V4 V2 testdata/Builtins.lc 72:1-72:7 {a} -> {b} -> {c:'Nat} -> a->b -> 'VecS a c -> 'VecS b c testdata/Builtins.lc 80:27-80:48 Type testdata/Builtins.lc 80:27-80:30 'Nat -> Type->Type testdata/Builtins.lc 80:31-80:32 'Nat testdata/Builtins.lc 80:31-80:32 V1 -testdata/Builtins.lc 80:27-80:48 V2 +testdata/Builtins.lc 80:33-80:34 Type +testdata/Builtins.lc 80:33-80:34 V2 +testdata/Builtins.lc 80:38-80:48 Type testdata/Builtins.lc 80:38-80:43 Type -testdata/Builtins.lc 81:17-86:28 {a} -> {b:'Nat} -> 'VecS a b -> 'Swizz->a -testdata/Builtins.lc 81:17-86:28 {a:'Nat} -> 'VecS V1 a -> 'Swizz->V3 -testdata/Builtins.lc 81:17-86:28 'VecS V1 V0 -> 'Swizz->V3 -testdata/Builtins.lc 81:17-86:28 'Swizz->V3 -testdata/Builtins.lc 81:17-86:28 V3 -testdata/Builtins.lc 81:22-81:24 V1 -> V2->V2 -testdata/Builtins.lc 81:22-81:24 V2->V2 -testdata/Builtins.lc 81:22-81:24 V2 +testdata/Builtins.lc 80:47-80:48 Type +testdata/Builtins.lc 81:17-89:32 {a} -> {b:'Nat} -> 'VecS a b -> 'Swizz->a +testdata/Builtins.lc 81:17-89:32 {a:'Nat} -> 'VecS V1 a -> 'Swizz->V3 +testdata/Builtins.lc 81:17-89:32 'VecS V1 V0 -> 'Swizz->V3 +testdata/Builtins.lc 81:17-89:32 'Swizz->V3 +testdata/Builtins.lc 81:17-89:32 V3 +testdata/Builtins.lc 81:22-82:28 V1 -> V2->V2 +testdata/Builtins.lc 81:22-82:28 V2->V2 +testdata/Builtins.lc 81:22-82:28 V2 +testdata/Builtins.lc 81:27-81:28 V0 +testdata/Builtins.lc 81:27-81:28 V4 +testdata/Builtins.lc 82:27-82:28 V3 testdata/Builtins.lc 81:22-81:24 'Swizz -testdata/Builtins.lc 83:24-83:26 V0 -> V1 -> V2->V3 -testdata/Builtins.lc 83:24-83:26 V1 -> V2->V3 -testdata/Builtins.lc 83:24-83:26 V2->V3 -testdata/Builtins.lc 83:24-83:26 V3 +testdata/Builtins.lc 83:24-85:30 V0 -> V1 -> V2->V3 +testdata/Builtins.lc 83:24-85:30 V1 -> V2->V3 +testdata/Builtins.lc 83:24-85:30 V2->V3 +testdata/Builtins.lc 83:24-85:30 V3 +testdata/Builtins.lc 83:29-83:30 V0 +testdata/Builtins.lc 83:29-83:30 V4 +testdata/Builtins.lc 84:29-84:30 V3 +testdata/Builtins.lc 85:29-85:30 V3 testdata/Builtins.lc 83:24-83:26 'Swizz -testdata/Builtins.lc 86:26-86:28 V0 -> V1 -> V2 -> V3->V4 -testdata/Builtins.lc 86:26-86:28 V1 -> V2 -> V3->V4 -testdata/Builtins.lc 86:26-86:28 V2 -> V3->V4 -testdata/Builtins.lc 86:26-86:28 V3->V4 -testdata/Builtins.lc 86:26-86:28 V4 +testdata/Builtins.lc 86:26-89:32 V0 -> V1 -> V2 -> V3->V4 +testdata/Builtins.lc 86:26-89:32 V1 -> V2 -> V3->V4 +testdata/Builtins.lc 86:26-89:32 V2 -> V3->V4 +testdata/Builtins.lc 86:26-89:32 V3->V4 +testdata/Builtins.lc 86:26-89:32 V4 +testdata/Builtins.lc 86:31-86:32 V0 +testdata/Builtins.lc 86:31-86:32 V5 +testdata/Builtins.lc 87:31-87:32 V4 +testdata/Builtins.lc 88:31-88:32 V4 +testdata/Builtins.lc 89:31-89:32 V4 testdata/Builtins.lc 86:26-86:28 'Swizz testdata/Builtins.lc 81:17-81:20 'VecS V1 V0 testdata/Builtins.lc 81:17-81:20 'VecS V5 V4 @@ -369,23 +431,31 @@ testdata/Builtins.lc 97:38-97:71 Type testdata/Builtins.lc 97:38-97:41 'Nat -> Type->Type testdata/Builtins.lc 97:42-97:43 'Nat testdata/Builtins.lc 97:42-97:43 V3 -testdata/Builtins.lc 97:38-97:71 V4 +testdata/Builtins.lc 97:44-97:45 Type +testdata/Builtins.lc 97:44-97:45 V4 +testdata/Builtins.lc 97:49-97:71 Type testdata/Builtins.lc 97:49-97:52 'Nat -> Type->Type testdata/Builtins.lc 97:53-97:54 'Nat testdata/Builtins.lc 97:53-97:54 V2 testdata/Builtins.lc 97:55-97:60 Type +testdata/Builtins.lc 97:64-97:71 Type testdata/Builtins.lc 97:64-97:67 'Nat -> Type->Type testdata/Builtins.lc 97:68-97:69 'Nat -testdata/Builtins.lc 98:19-98:53 {a} -> {b:'Nat} -> {c:'Nat} -> 'VecS a b -> 'VecS 'Swizz c -> 'VecS a c -testdata/Builtins.lc 98:19-98:53 {a:'Nat} -> {b:'Nat} -> 'VecS V2 a -> 'VecS 'Swizz b -> 'VecS V4 b -testdata/Builtins.lc 98:19-98:53 {a:'Nat} -> 'VecS V2 V1 -> 'VecS 'Swizz a -> 'VecS V4 a -testdata/Builtins.lc 98:19-98:53 'VecS V2 V1 -> 'VecS 'Swizz V1 -> 'VecS V4 V2 -testdata/Builtins.lc 98:19-98:53 'VecS 'Swizz V1 -> 'VecS V4 V2 -testdata/Builtins.lc 98:19-98:53 'VecS V4 V2 -testdata/Builtins.lc 98:34-98:53 V0 +testdata/Builtins.lc 97:70-97:71 Type +testdata/Builtins.lc 98:19-98:58 {a} -> {b:'Nat} -> {c:'Nat} -> 'VecS a b -> 'VecS 'Swizz c -> 'VecS a c +testdata/Builtins.lc 98:19-98:58 {a:'Nat} -> {b:'Nat} -> 'VecS V2 a -> 'VecS 'Swizz b -> 'VecS V4 b +testdata/Builtins.lc 98:19-98:58 {a:'Nat} -> 'VecS V2 V1 -> 'VecS 'Swizz a -> 'VecS V4 a +testdata/Builtins.lc 98:19-98:58 'VecS V2 V1 -> 'VecS 'Swizz V1 -> 'VecS V4 V2 +testdata/Builtins.lc 98:19-98:58 'VecS 'Swizz V1 -> 'VecS V4 V2 +testdata/Builtins.lc 98:19-98:58 'VecS V4 V2 +testdata/Builtins.lc 98:34-98:58 V0 testdata/Builtins.lc 98:34-98:40 {a} -> {b} -> {c:'Nat} -> a->b -> 'VecS a c -> 'VecS b c -testdata/Builtins.lc 98:42-98:53 V2->V2 +testdata/Builtins.lc 98:42-98:55 V2->V2 testdata/Builtins.lc 98:42-98:53 {a} -> {b:'Nat} -> 'VecS a b -> 'Swizz->a +testdata/Builtins.lc 98:54-98:55 'VecS V1 V0 +testdata/Builtins.lc 98:54-98:55 'VecS V10 V9 +testdata/Builtins.lc 98:57-98:58 'VecS 'Swizz V0 +testdata/Builtins.lc 98:57-98:58 'VecS 'Swizz V3 testdata/Builtins.lc 98:19-98:31 'Bool testdata/Builtins.lc 98:19-98:29 {a} -> {b:'Nat} -> 'VecS a b -> 'Bool testdata/Builtins.lc 98:30-98:31 'VecS V1 V0 @@ -914,11 +984,13 @@ testdata/Builtins.lc 291:43-291:48 Type testdata/Builtins.lc 291:1-291:12 'Tuple0 -> 'VecS 'Float (Succ (Succ Zero)) -> 'VecS 'Float (Succ (Succ (Succ (Succ Zero)))) testdata/Builtins.lc 294:14-294:25 Type testdata/Builtins.lc 294:14-294:20 Type -testdata/Builtins.lc 294:14-294:25 V2 +testdata/Builtins.lc 294:24-294:25 Type +testdata/Builtins.lc 294:24-294:25 V2 testdata/Builtins.lc 294:1-294:8 {a} -> 'String->a testdata/Builtins.lc 295:14-295:25 Type testdata/Builtins.lc 295:14-295:20 Type -testdata/Builtins.lc 295:14-295:25 V2 +testdata/Builtins.lc 295:24-295:25 Type +testdata/Builtins.lc 295:24-295:25 V2 testdata/Builtins.lc 295:1-295:10 {a} -> 'String->a testdata/Builtins.lc 297:23-297:36 Type testdata/Builtins.lc 297:40-297:44 Type @@ -970,28 +1042,39 @@ testdata/Builtins.lc 305:55-305:56 Type testdata/Builtins.lc 305:3-305:7 {a} -> 'Interpolated a testdata/Builtins.lc 309:14-310:32 Type->Type testdata/Builtins.lc 309:14-310:32 Type +testdata/Builtins.lc 309:19-309:20 Type->Type +testdata/Builtins.lc 309:19-309:20 Type testdata/Builtins.lc 309:14-309:15 Type testdata/Builtins.lc 310:15-310:32 Type testdata/Builtins.lc 310:26-310:32 Type -> Type->Type testdata/Builtins.lc 310:26-310:32 Type->Type testdata/Builtins.lc 310:26-310:32 Type +testdata/Builtins.lc 310:27-310:28 Type +testdata/Builtins.lc 310:30-310:31 Type testdata/Builtins.lc 310:15-310:21 Type testdata/Builtins.lc 309:5-309:12 Type->Type testdata/Builtins.lc 313:27-316:82 Type->Type testdata/Builtins.lc 313:27-316:82 Type testdata/Builtins.lc 313:27-313:29 Type testdata/Builtins.lc 314:36-316:82 Type +testdata/Builtins.lc 314:41-314:42 Type->Type +testdata/Builtins.lc 314:41-314:42 Type testdata/Builtins.lc 314:36-314:37 Type testdata/Builtins.lc 315:23-316:82 Type testdata/Builtins.lc 315:57-315:63 Type -> Type->Type testdata/Builtins.lc 315:57-315:63 Type->Type testdata/Builtins.lc 315:57-315:63 Type +testdata/Builtins.lc 315:58-315:59 Type +testdata/Builtins.lc 315:61-315:62 Type testdata/Builtins.lc 315:23-315:53 Type testdata/Builtins.lc 316:23-316:82 Type testdata/Builtins.lc 316:73-316:82 Type -> Type -> Type->Type testdata/Builtins.lc 316:73-316:82 Type -> Type->Type testdata/Builtins.lc 316:73-316:82 Type->Type testdata/Builtins.lc 316:73-316:82 Type +testdata/Builtins.lc 316:74-316:75 Type +testdata/Builtins.lc 316:77-316:78 Type +testdata/Builtins.lc 316:80-316:81 Type testdata/Builtins.lc 316:23-316:69 Type testdata/Builtins.lc 313:5-313:21 Type->Type testdata/Builtins.lc 318:18-318:22 Type @@ -999,13 +1082,18 @@ testdata/Builtins.lc 318:26-318:30 Type testdata/Builtins.lc 318:6-318:14 Type->Type testdata/Builtins.lc 319:60-319:70 Type testdata/Builtins.lc 319:60-319:68 Type->Type -testdata/Builtins.lc 319:60-319:70 V1 +testdata/Builtins.lc 319:69-319:70 Type +testdata/Builtins.lc 319:69-319:70 V1 testdata/Builtins.lc 319:3-319:13 {a} -> 'Blending a testdata/Builtins.lc 320:27-320:70 Type testdata/Builtins.lc 320:27-320:35 Type->Type -testdata/Builtins.lc 320:27-320:70 V1 +testdata/Builtins.lc 320:36-320:37 Type +testdata/Builtins.lc 320:36-320:37 V1 +testdata/Builtins.lc 320:42-320:70 Type testdata/Builtins.lc 320:42-320:56 Type +testdata/Builtins.lc 320:60-320:70 Type testdata/Builtins.lc 320:60-320:68 Type->Type +testdata/Builtins.lc 320:69-320:70 Type testdata/Builtins.lc 320:3-320:15 {a} -> {b : 'Integral a} -> 'LogicOperation -> 'Blending a testdata/Builtins.lc 321:26-321:56 Type -> Type->Type testdata/Builtins.lc 321:27-321:40 Type @@ -1027,8 +1115,8 @@ testdata/Builtins.lc 323:60-323:74 Type testdata/Builtins.lc 323:60-323:68 Type->Type testdata/Builtins.lc 323:69-323:74 Type testdata/Builtins.lc 321:3-321:8 'Tuple2 'BlendEquation 'BlendEquation -> 'Tuple2 ('Tuple2 'BlendingFactor 'BlendingFactor) ('Tuple2 'BlendingFactor 'BlendingFactor) -> 'VecS 'Float (Succ (Succ (Succ (Succ Zero)))) -> 'Blending 'Float -testdata/Builtins.lc 319:60-323:74 Type -testdata/Builtins.lc 320:27-323:74 Type +testdata/Builtins.lc 319:69-323:74 Type +testdata/Builtins.lc 320:69-323:74 Type testdata/Builtins.lc 330:6-330:18 Type testdata/Builtins.lc 331:6-331:16 Type testdata/Builtins.lc 332:6-332:11 Type @@ -1036,18 +1124,34 @@ testdata/Builtins.lc 334:27-334:31 Type testdata/Builtins.lc 334:35-334:39 Type testdata/Builtins.lc 334:6-334:23 Type->Type testdata/Builtins.lc 335:27-336:101 Type -testdata/Builtins.lc 335:27-336:101 V7 +testdata/Builtins.lc 335:27-335:31 Type +testdata/Builtins.lc 335:27-335:31 V7 +testdata/Builtins.lc 335:34-335:50 Type testdata/Builtins.lc 335:34-335:43 'Nat -> Type->Type -testdata/Builtins.lc 335:27-336:101 'Nat -testdata/Builtins.lc 335:27-336:101 V5 +testdata/Builtins.lc 335:44-335:45 'Nat +testdata/Builtins.lc 335:44-335:45 V5 testdata/Builtins.lc 335:46-335:50 Type -testdata/Builtins.lc 335:27-336:101 V4 +testdata/Builtins.lc 335:52-336:101 Type +testdata/Builtins.lc 335:52-335:57 Type +testdata/Builtins.lc 335:52-335:57 V4 +testdata/Builtins.lc 335:60-335:73 Type testdata/Builtins.lc 335:60-335:69 'Nat -> Type->Type -testdata/Builtins.lc 335:27-336:101 V2 +testdata/Builtins.lc 335:70-335:71 'Nat +testdata/Builtins.lc 335:72-335:73 Type +testdata/Builtins.lc 335:72-335:73 V2 +testdata/Builtins.lc 335:75-336:101 Type testdata/Builtins.lc 335:75-335:78 Type->Type +testdata/Builtins.lc 335:79-335:80 Type +testdata/Builtins.lc 335:85-336:101 Type testdata/Builtins.lc 335:85-335:93 Type->Type +testdata/Builtins.lc 335:94-335:95 Type +testdata/Builtins.lc 335:99-336:101 Type +testdata/Builtins.lc 335:99-335:103 Type +testdata/Builtins.lc 336:71-336:101 Type testdata/Builtins.lc 336:71-336:88 Type->Type +testdata/Builtins.lc 336:90-336:101 Type testdata/Builtins.lc 336:90-336:95 Type->Type +testdata/Builtins.lc 336:96-336:101 Type testdata/Builtins.lc 335:3-335:10 {a} -> {b:'Nat} -> {c} -> {d} -> {e : a ~ 'VecScalar b 'Bool} -> {f : c ~ 'VecScalar b d} -> {g : 'Num d} -> 'Blending d -> a -> 'FragmentOperation ('Color c) testdata/Builtins.lc 337:26-337:44 Type testdata/Builtins.lc 337:48-337:101 Type @@ -1069,21 +1173,28 @@ testdata/Builtins.lc 338:90-338:103 Type testdata/Builtins.lc 338:90-338:97 Type->Type testdata/Builtins.lc 338:98-338:103 Type testdata/Builtins.lc 338:3-338:12 'StencilTests -> 'StencilOps -> 'StencilOps -> 'FragmentOperation ('Stencil 'Int32) -testdata/Builtins.lc 335:27-338:103 Type +testdata/Builtins.lc 336:90-338:103 Type testdata/Builtins.lc 337:90-338:103 Type testdata/Builtins.lc 341:32-345:146 Type->Type testdata/Builtins.lc 341:32-345:146 Type +testdata/Builtins.lc 341:37-341:38 Type->Type +testdata/Builtins.lc 341:37-341:38 Type testdata/Builtins.lc 341:32-341:33 Type testdata/Builtins.lc 342:14-345:146 Type testdata/Builtins.lc 342:60-342:68 Type -> Type->Type testdata/Builtins.lc 342:60-342:68 Type->Type testdata/Builtins.lc 342:60-342:68 Type +testdata/Builtins.lc 342:61-342:63 Type +testdata/Builtins.lc 342:65-342:67 Type testdata/Builtins.lc 342:14-342:56 Type testdata/Builtins.lc 343:14-345:146 Type testdata/Builtins.lc 343:82-343:94 Type -> Type -> Type->Type testdata/Builtins.lc 343:82-343:94 Type -> Type->Type testdata/Builtins.lc 343:82-343:94 Type->Type testdata/Builtins.lc 343:82-343:94 Type +testdata/Builtins.lc 343:83-343:85 Type +testdata/Builtins.lc 343:87-343:89 Type +testdata/Builtins.lc 343:91-343:93 Type testdata/Builtins.lc 343:14-343:78 Type testdata/Builtins.lc 344:14-345:146 Type testdata/Builtins.lc 344:104-344:120 Type -> Type -> Type -> Type->Type @@ -1091,6 +1202,10 @@ testdata/Builtins.lc 344:104-344:120 Type -> Type -> Type->Type testdata/Builtins.lc 344:104-344:120 Type -> Type->Type testdata/Builtins.lc 344:104-344:120 Type->Type testdata/Builtins.lc 344:104-344:120 Type +testdata/Builtins.lc 344:105-344:107 Type +testdata/Builtins.lc 344:109-344:111 Type +testdata/Builtins.lc 344:113-344:115 Type +testdata/Builtins.lc 344:117-344:119 Type testdata/Builtins.lc 344:14-344:100 Type testdata/Builtins.lc 345:14-345:146 Type testdata/Builtins.lc 345:126-345:146 Type -> Type -> Type -> Type -> Type->Type @@ -1099,85 +1214,120 @@ testdata/Builtins.lc 345:126-345:146 Type -> Type -> Type->Type testdata/Builtins.lc 345:126-345:146 Type -> Type->Type testdata/Builtins.lc 345:126-345:146 Type->Type testdata/Builtins.lc 345:126-345:146 Type +testdata/Builtins.lc 345:127-345:129 Type +testdata/Builtins.lc 345:131-345:133 Type +testdata/Builtins.lc 345:135-345:137 Type +testdata/Builtins.lc 345:139-345:141 Type +testdata/Builtins.lc 345:143-345:145 Type testdata/Builtins.lc 345:14-345:122 Type testdata/Builtins.lc 341:5-341:12 Type->Type -testdata/Builtins.lc 348:15-352:36 Type->Type -testdata/Builtins.lc 348:15-352:36 Type +testdata/Builtins.lc 348:15-352:38 Type->Type +testdata/Builtins.lc 348:15-352:38 Type testdata/Builtins.lc 348:25-348:69 Type -> Type->Type testdata/Builtins.lc 348:25-348:69 Type->Type testdata/Builtins.lc 348:25-348:69 Type -testdata/Builtins.lc 348:26-348:43 Type +testdata/Builtins.lc 348:26-348:46 Type testdata/Builtins.lc 348:26-348:43 Type->Type -testdata/Builtins.lc 348:48-348:65 Type +testdata/Builtins.lc 348:44-348:46 Type +testdata/Builtins.lc 348:48-348:68 Type testdata/Builtins.lc 348:48-348:65 Type->Type +testdata/Builtins.lc 348:66-348:68 Type testdata/Builtins.lc 348:15-348:21 Type -testdata/Builtins.lc 349:15-352:36 Type +testdata/Builtins.lc 349:15-352:38 Type testdata/Builtins.lc 349:29-349:95 Type -> Type -> Type->Type testdata/Builtins.lc 349:29-349:95 Type -> Type->Type testdata/Builtins.lc 349:29-349:95 Type->Type testdata/Builtins.lc 349:29-349:95 Type -testdata/Builtins.lc 349:30-349:47 Type +testdata/Builtins.lc 349:30-349:50 Type testdata/Builtins.lc 349:30-349:47 Type->Type -testdata/Builtins.lc 349:52-349:69 Type +testdata/Builtins.lc 349:48-349:50 Type +testdata/Builtins.lc 349:52-349:72 Type testdata/Builtins.lc 349:52-349:69 Type->Type -testdata/Builtins.lc 349:74-349:91 Type +testdata/Builtins.lc 349:70-349:72 Type +testdata/Builtins.lc 349:74-349:94 Type testdata/Builtins.lc 349:74-349:91 Type->Type +testdata/Builtins.lc 349:92-349:94 Type testdata/Builtins.lc 349:15-349:25 Type -testdata/Builtins.lc 350:15-352:36 Type +testdata/Builtins.lc 350:15-352:38 Type testdata/Builtins.lc 350:34-350:122 Type -> Type -> Type -> Type->Type testdata/Builtins.lc 350:34-350:122 Type -> Type -> Type->Type testdata/Builtins.lc 350:34-350:122 Type -> Type->Type testdata/Builtins.lc 350:34-350:122 Type->Type testdata/Builtins.lc 350:34-350:122 Type -testdata/Builtins.lc 350:35-350:52 Type +testdata/Builtins.lc 350:35-350:55 Type testdata/Builtins.lc 350:35-350:52 Type->Type -testdata/Builtins.lc 350:57-350:74 Type +testdata/Builtins.lc 350:53-350:55 Type +testdata/Builtins.lc 350:57-350:77 Type testdata/Builtins.lc 350:57-350:74 Type->Type -testdata/Builtins.lc 350:79-350:96 Type +testdata/Builtins.lc 350:75-350:77 Type +testdata/Builtins.lc 350:79-350:99 Type testdata/Builtins.lc 350:79-350:96 Type->Type -testdata/Builtins.lc 350:101-350:118 Type +testdata/Builtins.lc 350:97-350:99 Type +testdata/Builtins.lc 350:101-350:121 Type testdata/Builtins.lc 350:101-350:118 Type->Type +testdata/Builtins.lc 350:119-350:121 Type testdata/Builtins.lc 350:15-350:29 Type -testdata/Builtins.lc 351:15-352:36 Type +testdata/Builtins.lc 351:15-352:38 Type testdata/Builtins.lc 351:38-351:148 Type -> Type -> Type -> Type -> Type->Type testdata/Builtins.lc 351:38-351:148 Type -> Type -> Type -> Type->Type testdata/Builtins.lc 351:38-351:148 Type -> Type -> Type->Type testdata/Builtins.lc 351:38-351:148 Type -> Type->Type testdata/Builtins.lc 351:38-351:148 Type->Type testdata/Builtins.lc 351:38-351:148 Type -testdata/Builtins.lc 351:39-351:56 Type +testdata/Builtins.lc 351:39-351:59 Type testdata/Builtins.lc 351:39-351:56 Type->Type -testdata/Builtins.lc 351:61-351:78 Type +testdata/Builtins.lc 351:57-351:59 Type +testdata/Builtins.lc 351:61-351:81 Type testdata/Builtins.lc 351:61-351:78 Type->Type -testdata/Builtins.lc 351:83-351:100 Type +testdata/Builtins.lc 351:79-351:81 Type +testdata/Builtins.lc 351:83-351:103 Type testdata/Builtins.lc 351:83-351:100 Type->Type -testdata/Builtins.lc 351:105-351:122 Type +testdata/Builtins.lc 351:101-351:103 Type +testdata/Builtins.lc 351:105-351:125 Type testdata/Builtins.lc 351:105-351:122 Type->Type -testdata/Builtins.lc 351:127-351:144 Type +testdata/Builtins.lc 351:123-351:125 Type +testdata/Builtins.lc 351:127-351:147 Type testdata/Builtins.lc 351:127-351:144 Type->Type +testdata/Builtins.lc 351:145-351:147 Type testdata/Builtins.lc 351:15-351:33 Type -testdata/Builtins.lc 352:19-352:36 Type +testdata/Builtins.lc 352:19-352:38 Type testdata/Builtins.lc 352:19-352:36 Type->Type +testdata/Builtins.lc 352:37-352:38 Type testdata/Builtins.lc 348:5-348:13 Type->Type testdata/Builtins.lc 354:6-354:12 Type->Type testdata/Builtins.lc 356:15-356:46 Type -testdata/Builtins.lc 356:15-356:46 V3 -testdata/Builtins.lc 356:15-356:46 V2 +testdata/Builtins.lc 356:15-356:16 V3 +testdata/Builtins.lc 356:20-356:21 Type +testdata/Builtins.lc 356:20-356:21 V2 +testdata/Builtins.lc 356:26-356:46 Type testdata/Builtins.lc 356:26-356:32 Type->Type +testdata/Builtins.lc 356:33-356:34 Type +testdata/Builtins.lc 356:38-356:46 Type testdata/Builtins.lc 356:38-356:44 Type->Type +testdata/Builtins.lc 356:45-356:46 Type testdata/Builtins.lc 356:1-356:10 {a} -> {b} -> a->b -> 'Stream a -> 'Stream b testdata/Builtins.lc 357:21-357:59 Type -testdata/Builtins.lc 357:21-357:59 V3 +testdata/Builtins.lc 357:21-357:22 V3 +testdata/Builtins.lc 357:26-357:34 Type testdata/Builtins.lc 357:26-357:32 Type->Type -testdata/Builtins.lc 357:21-357:59 V2 +testdata/Builtins.lc 357:33-357:34 Type +testdata/Builtins.lc 357:33-357:34 V2 +testdata/Builtins.lc 357:39-357:59 Type testdata/Builtins.lc 357:39-357:45 Type->Type +testdata/Builtins.lc 357:46-357:47 Type +testdata/Builtins.lc 357:51-357:59 Type testdata/Builtins.lc 357:51-357:57 Type->Type +testdata/Builtins.lc 357:58-357:59 Type testdata/Builtins.lc 357:1-357:16 {a} -> {b} -> (a -> 'Stream b) -> 'Stream a -> 'Stream b testdata/Builtins.lc 358:18-358:52 Type -testdata/Builtins.lc 358:18-358:52 V1 +testdata/Builtins.lc 358:18-358:19 V1 testdata/Builtins.lc 358:23-358:27 Type +testdata/Builtins.lc 358:32-358:52 Type testdata/Builtins.lc 358:32-358:38 Type->Type +testdata/Builtins.lc 358:39-358:40 Type +testdata/Builtins.lc 358:44-358:52 Type testdata/Builtins.lc 358:44-358:50 Type->Type +testdata/Builtins.lc 358:51-358:52 Type testdata/Builtins.lc 358:1-358:13 {a} -> a->'Bool -> 'Stream a -> 'Stream a testdata/Builtins.lc 360:22-360:35 Type testdata/Builtins.lc 360:6-360:15 'PrimitiveType -> Type->Type @@ -1190,12 +1340,18 @@ testdata/Builtins.lc 362:48-362:49 Type testdata/Builtins.lc 362:48-362:49 V1 testdata/Builtins.lc 362:6-362:21 'PrimitiveType -> Type->Type testdata/Builtins.lc 364:18-364:59 Type -testdata/Builtins.lc 364:18-364:59 V5 -testdata/Builtins.lc 364:18-364:59 V4 +testdata/Builtins.lc 364:18-364:19 V5 +testdata/Builtins.lc 364:23-364:24 Type +testdata/Builtins.lc 364:23-364:24 V4 +testdata/Builtins.lc 364:29-364:59 Type testdata/Builtins.lc 364:29-364:38 'PrimitiveType -> Type->Type -testdata/Builtins.lc 364:18-364:59 'PrimitiveType -testdata/Builtins.lc 364:18-364:59 V2 +testdata/Builtins.lc 364:39-364:40 'PrimitiveType +testdata/Builtins.lc 364:39-364:40 V2 +testdata/Builtins.lc 364:41-364:42 Type +testdata/Builtins.lc 364:46-364:59 Type testdata/Builtins.lc 364:46-364:55 'PrimitiveType -> Type->Type +testdata/Builtins.lc 364:56-364:57 'PrimitiveType +testdata/Builtins.lc 364:58-364:59 Type testdata/Builtins.lc 364:1-364:13 {a} -> {b} -> {c:'PrimitiveType} -> a->b -> 'Primitive c a -> 'Primitive c b testdata/Builtins.lc 366:39-366:94 Type testdata/Builtins.lc 366:39-366:53 Type->Type @@ -1230,34 +1386,61 @@ testdata/Builtins.lc 367:101-367:102 V6 testdata/Builtins.lc 367:103-367:104 Type testdata/Builtins.lc 367:1-367:13 {a:'PrimitiveType} -> {b} -> {c} -> {d:'Unit} -> {e : b ~ 'FTRepr' c} -> c -> 'Stream ('Primitive a b) testdata/Builtins.lc 369:19-369:74 Type -testdata/Builtins.lc 369:19-369:74 V5 -testdata/Builtins.lc 369:19-369:74 V4 +testdata/Builtins.lc 369:19-369:21 V5 +testdata/Builtins.lc 369:25-369:26 Type +testdata/Builtins.lc 369:25-369:26 V4 +testdata/Builtins.lc 369:31-369:74 Type testdata/Builtins.lc 369:31-369:46 'PrimitiveType -> Type->Type -testdata/Builtins.lc 369:19-369:74 'PrimitiveType -testdata/Builtins.lc 369:19-369:74 V2 +testdata/Builtins.lc 369:47-369:48 'PrimitiveType +testdata/Builtins.lc 369:47-369:48 V2 +testdata/Builtins.lc 369:49-369:51 Type +testdata/Builtins.lc 369:55-369:74 Type testdata/Builtins.lc 369:55-369:70 'PrimitiveType -> Type->Type -testdata/Builtins.lc 370:19-370:42 {a} -> {b} -> {c:'PrimitiveType} -> a->b -> 'Stream ('Primitive c a) -> 'Stream ('Primitive c b) -testdata/Builtins.lc 370:19-370:42 {a} -> {b:'PrimitiveType} -> V2->a -> 'Stream ('Primitive b V3) -> 'Stream ('Primitive b a) -testdata/Builtins.lc 370:19-370:42 {a:'PrimitiveType} -> V2->V2 -> 'Stream ('Primitive a V3) -> 'Stream ('Primitive a V3) -testdata/Builtins.lc 370:19-370:42 V2->V2 -> 'Stream ('Primitive V1 V3) -> 'Stream ('Primitive V2 V3) -testdata/Builtins.lc 370:19-370:42 'Stream ('Primitive V1 V3) -> 'Stream ('Primitive V2 V3) +testdata/Builtins.lc 369:71-369:72 'PrimitiveType +testdata/Builtins.lc 369:73-369:74 Type +testdata/Builtins.lc 370:19-370:44 {a} -> {b} -> {c:'PrimitiveType} -> a->b -> 'Stream ('Primitive c a) -> 'Stream ('Primitive c b) +testdata/Builtins.lc 370:19-370:44 {a} -> {b:'PrimitiveType} -> V2->a -> 'Stream ('Primitive b V3) -> 'Stream ('Primitive b a) +testdata/Builtins.lc 370:19-370:44 {a:'PrimitiveType} -> V2->V2 -> 'Stream ('Primitive a V3) -> 'Stream ('Primitive a V3) +testdata/Builtins.lc 370:19-370:44 V2->V2 -> 'Stream ('Primitive V1 V3) -> 'Stream ('Primitive V2 V3) +testdata/Builtins.lc 370:19-370:44 'Stream ('Primitive V1 V3) -> 'Stream ('Primitive V2 V3) testdata/Builtins.lc 370:19-370:28 {a} -> {b} -> a->b -> 'Stream a -> 'Stream b -testdata/Builtins.lc 370:30-370:42 V1->V1 +testdata/Builtins.lc 370:30-370:44 V1->V1 testdata/Builtins.lc 370:30-370:42 {a} -> {b} -> {c:'PrimitiveType} -> a->b -> 'Primitive c a -> 'Primitive c b +testdata/Builtins.lc 370:43-370:44 V2->V2 +testdata/Builtins.lc 370:43-370:44 V8->V8 testdata/Builtins.lc 370:1-370:14 {a} -> {b} -> {c:'PrimitiveType} -> a->b -> 'Stream ('Primitive c a) -> 'Stream ('Primitive c b) testdata/Builtins.lc 372:15-372:21 {a:'PrimitiveType} -> {b} -> {c:'Unit} -> 'String -> b -> 'Stream ('Primitive a b) +testdata/Builtins.lc 372:23-372:24 'PrimitiveType +testdata/Builtins.lc 372:23-372:24 V3 +testdata/Builtins.lc 372:25-372:26 'String +testdata/Builtins.lc 372:25-372:26 V5 +testdata/Builtins.lc 372:27-372:28 V0 +testdata/Builtins.lc 372:27-372:28 V2 testdata/Builtins.lc 372:1-372:6 {a} -> 'String -> c:'PrimitiveType -> a -> 'Stream ('Primitive c a) testdata/Builtins.lc 373:19-373:31 {a:'PrimitiveType} -> {b} -> {c} -> {d:'Unit} -> {e : b ~ 'FTRepr' c} -> c -> 'Stream ('Primitive a b) +testdata/Builtins.lc 373:33-373:34 'PrimitiveType +testdata/Builtins.lc 373:33-373:34 V3 +testdata/Builtins.lc 373:35-373:36 V0 +testdata/Builtins.lc 373:35-373:36 V2 testdata/Builtins.lc 373:1-373:12 {a} -> b:'PrimitiveType -> a -> 'Stream ('Primitive b ('FTRepr' a)) testdata/Builtins.lc 376:23-386:82 Type->Type testdata/Builtins.lc 376:23-386:82 Type testdata/Builtins.lc 376:23-376:25 Type testdata/Builtins.lc 377:25-386:82 Type +testdata/Builtins.lc 377:30-377:31 Type->Type +testdata/Builtins.lc 377:30-377:31 Type testdata/Builtins.lc 377:25-377:26 Type testdata/Builtins.lc 378:19-386:82 Type -testdata/Builtins.lc 378:39-378:45 Type -> Type->Type +testdata/Builtins.lc 378:39-383:44 Type -> Type->Type +testdata/Builtins.lc 378:39-383:44 Type->Type +testdata/Builtins.lc 378:39-383:44 Type testdata/Builtins.lc 378:39-378:45 Type->Type testdata/Builtins.lc 378:39-378:45 Type +testdata/Builtins.lc 378:39-378:45 Type -> Type->Type +testdata/Builtins.lc 378:40-378:41 Type +testdata/Builtins.lc 378:43-378:44 Type +testdata/Builtins.lc 383:43-383:44 Type +testdata/Builtins.lc 383:43-383:44 Type->Type testdata/Builtins.lc 378:19-378:35 Type testdata/Builtins.lc 379:19-386:82 Type testdata/Builtins.lc 379:48-384:58 Type -> Type -> Type->Type @@ -1267,9 +1450,14 @@ testdata/Builtins.lc 379:48-384:58 Type testdata/Builtins.lc 379:48-379:57 Type->Type testdata/Builtins.lc 379:48-379:57 Type testdata/Builtins.lc 379:48-379:57 Type -> Type -> Type->Type +testdata/Builtins.lc 379:49-379:50 Type +testdata/Builtins.lc 379:52-379:53 Type +testdata/Builtins.lc 379:55-379:56 Type testdata/Builtins.lc 384:52-384:58 Type testdata/Builtins.lc 384:52-384:58 Type->Type testdata/Builtins.lc 384:52-384:58 Type -> Type->Type +testdata/Builtins.lc 384:53-384:54 Type +testdata/Builtins.lc 384:56-384:57 Type testdata/Builtins.lc 379:19-379:44 Type testdata/Builtins.lc 380:19-386:82 Type testdata/Builtins.lc 380:57-385:70 Type -> Type -> Type -> Type->Type @@ -1280,9 +1468,16 @@ testdata/Builtins.lc 380:57-385:70 Type testdata/Builtins.lc 380:57-380:69 Type->Type testdata/Builtins.lc 380:57-380:69 Type testdata/Builtins.lc 380:57-380:69 Type -> Type -> Type -> Type->Type +testdata/Builtins.lc 380:58-380:59 Type +testdata/Builtins.lc 380:61-380:62 Type +testdata/Builtins.lc 380:64-380:65 Type +testdata/Builtins.lc 380:67-380:68 Type testdata/Builtins.lc 385:61-385:70 Type testdata/Builtins.lc 385:61-385:70 Type->Type testdata/Builtins.lc 385:61-385:70 Type -> Type -> Type->Type +testdata/Builtins.lc 385:62-385:63 Type +testdata/Builtins.lc 385:65-385:66 Type +testdata/Builtins.lc 385:68-385:69 Type testdata/Builtins.lc 380:19-380:53 Type testdata/Builtins.lc 381:19-386:82 Type testdata/Builtins.lc 381:66-386:82 Type -> Type -> Type -> Type -> Type->Type @@ -1294,9 +1489,18 @@ testdata/Builtins.lc 381:66-386:82 Type testdata/Builtins.lc 381:66-381:81 Type->Type testdata/Builtins.lc 381:66-381:81 Type testdata/Builtins.lc 381:66-381:81 Type -> Type -> Type -> Type -> Type->Type +testdata/Builtins.lc 381:67-381:68 Type +testdata/Builtins.lc 381:70-381:71 Type +testdata/Builtins.lc 381:73-381:74 Type +testdata/Builtins.lc 381:76-381:77 Type +testdata/Builtins.lc 381:79-381:80 Type testdata/Builtins.lc 386:70-386:82 Type testdata/Builtins.lc 386:70-386:82 Type->Type testdata/Builtins.lc 386:70-386:82 Type -> Type -> Type -> Type->Type +testdata/Builtins.lc 386:71-386:72 Type +testdata/Builtins.lc 386:74-386:75 Type +testdata/Builtins.lc 386:77-386:78 Type +testdata/Builtins.lc 386:80-386:81 Type testdata/Builtins.lc 381:19-381:62 Type testdata/Builtins.lc 382:25-382:36 Type testdata/Builtins.lc 382:34-382:36 Type->Type @@ -1317,66 +1521,108 @@ testdata/Builtins.lc 391:46-391:47 Type testdata/Builtins.lc 391:46-391:47 V1 testdata/Builtins.lc 391:6-391:20 'Nat -> Type->Type testdata/Builtins.lc 393:20-393:63 Type -testdata/Builtins.lc 393:20-393:63 V3 +testdata/Builtins.lc 393:20-393:21 V3 testdata/Builtins.lc 393:25-393:30 Type +testdata/Builtins.lc 393:35-393:63 Type testdata/Builtins.lc 393:35-393:43 'Nat -> Type->Type -testdata/Builtins.lc 393:20-393:63 'Nat -testdata/Builtins.lc 393:20-393:63 V2 +testdata/Builtins.lc 393:44-393:45 'Nat +testdata/Builtins.lc 393:44-393:45 V2 +testdata/Builtins.lc 393:46-393:47 Type +testdata/Builtins.lc 393:51-393:63 Type testdata/Builtins.lc 393:51-393:59 'Nat -> Type->Type +testdata/Builtins.lc 393:60-393:61 'Nat +testdata/Builtins.lc 393:62-393:63 Type testdata/Builtins.lc 393:1-393:15 {a} -> {b:'Nat} -> a->'Float -> 'Fragment b a -> 'Fragment b a testdata/Builtins.lc 395:21-395:30 {a} -> {b} -> a->b -> 'Stream a -> 'Stream b -testdata/Builtins.lc 395:32-395:46 V1->V1 +testdata/Builtins.lc 395:32-395:48 V1->V1 testdata/Builtins.lc 395:32-395:46 {a} -> {b:'Nat} -> a->'Float -> 'Fragment b a -> 'Fragment b a +testdata/Builtins.lc 395:47-395:48 V1->'Float +testdata/Builtins.lc 395:47-395:48 V5 testdata/Builtins.lc 395:1-395:16 {a} -> {b:'Nat} -> a->'Float -> 'Stream ('Fragment b a) -> 'Stream ('Fragment b a) testdata/Builtins.lc 397:21-401:55 Type -testdata/Builtins.lc 397:21-401:55 V7 +testdata/Builtins.lc 397:21-397:22 Type +testdata/Builtins.lc 397:21-397:22 V7 +testdata/Builtins.lc 397:25-397:43 Type testdata/Builtins.lc 397:25-397:41 Type->Type -testdata/Builtins.lc 397:21-401:55 V5 -testdata/Builtins.lc 397:21-401:55 V4 +testdata/Builtins.lc 397:42-397:43 Type +testdata/Builtins.lc 397:42-397:43 V5 +testdata/Builtins.lc 397:45-401:55 Type +testdata/Builtins.lc 397:45-397:46 Type +testdata/Builtins.lc 397:45-397:46 V4 +testdata/Builtins.lc 397:49-397:78 Type testdata/Builtins.lc 397:49-397:62 Type -> Type->Type testdata/Builtins.lc 397:64-397:75 Type testdata/Builtins.lc 397:64-397:67 'Nat -> Type->Type testdata/Builtins.lc 397:70-397:75 Type +testdata/Builtins.lc 397:77-397:78 Type +testdata/Builtins.lc 398:21-401:55 Type +testdata/Builtins.lc 398:21-398:22 Type testdata/Builtins.lc 398:26-398:31 Type +testdata/Builtins.lc 399:20-401:55 Type +testdata/Builtins.lc 399:20-399:21 Type +testdata/Builtins.lc 400:20-401:55 Type testdata/Builtins.lc 400:20-400:33 'PrimitiveType->Type -testdata/Builtins.lc 397:21-401:55 'PrimitiveType +testdata/Builtins.lc 400:34-400:35 'PrimitiveType +testdata/Builtins.lc 400:34-400:35 V5 +testdata/Builtins.lc 401:20-401:55 Type testdata/Builtins.lc 401:20-401:29 'PrimitiveType -> Type->Type +testdata/Builtins.lc 401:30-401:31 'PrimitiveType +testdata/Builtins.lc 401:32-401:33 Type +testdata/Builtins.lc 401:37-401:55 Type testdata/Builtins.lc 401:37-401:51 'Nat -> Type->Type +testdata/Builtins.lc 401:54-401:55 Type testdata/Builtins.lc 397:1-397:11 {a} -> {b} -> {c} -> {d:'PrimitiveType} -> {e : a ~ 'InterpolatedType b} -> {f : c ~ 'JoinTupleType ('VecS 'Float (Succ (Succ (Succ (Succ Zero))))) a} -> c->'Float -> b -> 'RasterContext d -> 'Primitive d c -> 'Stream ('Fragment (Succ Zero) a) testdata/Builtins.lc 403:20-403:54 Type -testdata/Builtins.lc 403:20-403:54 V3 +testdata/Builtins.lc 403:20-403:21 V3 testdata/Builtins.lc 403:25-403:29 Type +testdata/Builtins.lc 403:34-403:54 Type testdata/Builtins.lc 403:34-403:42 'Nat -> Type->Type -testdata/Builtins.lc 403:20-403:54 'Nat -testdata/Builtins.lc 403:20-403:54 V2 +testdata/Builtins.lc 403:43-403:44 'Nat +testdata/Builtins.lc 403:43-403:44 V2 +testdata/Builtins.lc 403:45-403:46 Type testdata/Builtins.lc 403:50-403:54 Type testdata/Builtins.lc 403:1-403:15 {a} -> {b:'Nat} -> a->'Bool -> 'Fragment b a -> 'Bool testdata/Builtins.lc 405:21-405:78 Type -testdata/Builtins.lc 405:21-405:78 V3 +testdata/Builtins.lc 405:21-405:22 V3 testdata/Builtins.lc 405:26-405:30 Type +testdata/Builtins.lc 405:36-405:78 Type testdata/Builtins.lc 405:36-405:50 'Nat -> Type->Type -testdata/Builtins.lc 405:21-405:78 'Nat -testdata/Builtins.lc 405:21-405:78 V2 +testdata/Builtins.lc 405:51-405:52 'Nat +testdata/Builtins.lc 405:51-405:52 V2 +testdata/Builtins.lc 405:53-405:54 Type +testdata/Builtins.lc 405:60-405:78 Type testdata/Builtins.lc 405:60-405:74 'Nat -> Type->Type -testdata/Builtins.lc 406:21-406:49 {a} -> {b:'Nat} -> a->'Bool -> 'Stream ('Fragment b a) -> 'Stream ('Fragment b a) -testdata/Builtins.lc 406:21-406:49 {a:'Nat} -> V1->'Bool -> 'Stream ('Fragment a V2) -> 'Stream ('Fragment a V3) -testdata/Builtins.lc 406:21-406:49 V1->'Bool -> 'Stream ('Fragment V1 V2) -> 'Stream ('Fragment V2 V3) -testdata/Builtins.lc 406:21-406:49 'Stream ('Fragment V1 V2) -> 'Stream ('Fragment V2 V3) +testdata/Builtins.lc 405:75-405:76 'Nat +testdata/Builtins.lc 405:77-405:78 Type +testdata/Builtins.lc 406:21-406:51 {a} -> {b:'Nat} -> a->'Bool -> 'Stream ('Fragment b a) -> 'Stream ('Fragment b a) +testdata/Builtins.lc 406:21-406:51 {a:'Nat} -> V1->'Bool -> 'Stream ('Fragment a V2) -> 'Stream ('Fragment a V3) +testdata/Builtins.lc 406:21-406:51 V1->'Bool -> 'Stream ('Fragment V1 V2) -> 'Stream ('Fragment V2 V3) +testdata/Builtins.lc 406:21-406:51 'Stream ('Fragment V1 V2) -> 'Stream ('Fragment V2 V3) testdata/Builtins.lc 406:21-406:33 {a} -> a->'Bool -> 'Stream a -> 'Stream a -testdata/Builtins.lc 406:35-406:49 V0->'Bool +testdata/Builtins.lc 406:35-406:51 V0->'Bool testdata/Builtins.lc 406:35-406:49 {a} -> {b:'Nat} -> a->'Bool -> 'Fragment b a -> 'Bool +testdata/Builtins.lc 406:50-406:51 V1->'Bool +testdata/Builtins.lc 406:50-406:51 V5->'Bool testdata/Builtins.lc 406:1-406:16 {a} -> {b:'Nat} -> a->'Bool -> 'Stream ('Fragment b a) -> 'Stream ('Fragment b a) testdata/Builtins.lc 408:17-408:56 Type -testdata/Builtins.lc 408:17-408:56 V5 -testdata/Builtins.lc 408:17-408:56 V4 +testdata/Builtins.lc 408:17-408:18 V5 +testdata/Builtins.lc 408:22-408:23 Type +testdata/Builtins.lc 408:22-408:23 V4 +testdata/Builtins.lc 408:28-408:56 Type testdata/Builtins.lc 408:28-408:36 'Nat -> Type->Type -testdata/Builtins.lc 408:17-408:56 'Nat -testdata/Builtins.lc 408:17-408:56 V2 +testdata/Builtins.lc 408:37-408:38 'Nat +testdata/Builtins.lc 408:37-408:38 V2 +testdata/Builtins.lc 408:39-408:40 Type +testdata/Builtins.lc 408:44-408:56 Type testdata/Builtins.lc 408:44-408:52 'Nat -> Type->Type +testdata/Builtins.lc 408:53-408:54 'Nat +testdata/Builtins.lc 408:55-408:56 Type testdata/Builtins.lc 408:1-408:12 {a} -> {b} -> {c:'Nat} -> a->b -> 'Fragment c a -> 'Fragment c b testdata/Builtins.lc 410:18-410:27 {a} -> {b} -> a->b -> 'Stream a -> 'Stream b -testdata/Builtins.lc 410:29-410:40 V1->V1 +testdata/Builtins.lc 410:29-410:42 V1->V1 testdata/Builtins.lc 410:29-410:40 {a} -> {b} -> {c:'Nat} -> a->b -> 'Fragment c a -> 'Fragment c b +testdata/Builtins.lc 410:41-410:42 V2->V2 +testdata/Builtins.lc 410:41-410:42 V6 testdata/Builtins.lc 410:1-410:13 {a} -> {b} -> {c:'Nat} -> a->b -> 'Stream ('Fragment c a) -> 'Stream ('Fragment c b) testdata/Builtins.lc 415:13-415:26 Type->Type testdata/Builtins.lc 420:13-420:28 Type->Type @@ -1454,22 +1700,38 @@ testdata/Builtins.lc 432:3-432:13 {a:'Nat} -> {b} -> 'FragOps' b -> 'Stream ('F testdata/Builtins.lc 433:20-433:117 Type testdata/Builtins.lc 433:20-433:36 Type->Type testdata/Builtins.lc 433:37-433:38 Type +testdata/Builtins.lc 433:40-433:117 Type testdata/Builtins.lc 433:40-433:55 Type->Type -testdata/Builtins.lc 433:20-433:117 V2 +testdata/Builtins.lc 433:56-433:57 Type +testdata/Builtins.lc 433:56-433:57 V2 +testdata/Builtins.lc 433:59-433:117 Type testdata/Builtins.lc 433:59-433:74 Type testdata/Builtins.lc 433:59-433:70 'Nat -> Type->Type testdata/Builtins.lc 433:71-433:72 'Nat testdata/Builtins.lc 433:73-433:74 Type +testdata/Builtins.lc 433:77-433:92 Type testdata/Builtins.lc 433:77-433:90 Type->Type +testdata/Builtins.lc 433:91-433:92 Type +testdata/Builtins.lc 433:97-433:117 Type +testdata/Builtins.lc 433:97-433:98 Type testdata/Builtins.lc 433:102-433:117 Type testdata/Builtins.lc 433:102-433:113 'Nat -> Type->Type testdata/Builtins.lc 433:114-433:115 'Nat testdata/Builtins.lc 433:116-433:117 Type testdata/Builtins.lc 433:3-433:14 {a:'Nat} -> {b} -> {c} -> {d : 'SameLayerCounts c} -> {e : 'FrameBuffer a b ~ 'TFFrameBuffer c} -> c -> 'FrameBuffer a b testdata/Builtins.lc 435:34-435:44 {a:'Nat} -> {b} -> 'FragOps' b -> 'Stream ('Fragment a ('RemSemantics b)) -> 'FrameBuffer a b -> 'FrameBuffer a b -testdata/Builtins.lc 435:50-435:62 'Stream ('Fragment V1 ('RemSemantics V0)) +testdata/Builtins.lc 435:45-435:48 'FragOps' V0 +testdata/Builtins.lc 435:45-435:48 V9 +testdata/Builtins.lc 435:50-435:75 'Stream ('Fragment V1 ('RemSemantics V0)) testdata/Builtins.lc 435:50-435:62 {a} -> {b} -> {c:'Nat} -> a->b -> 'Stream ('Fragment c a) -> 'Stream ('Fragment c b) +testdata/Builtins.lc 435:63-435:70 V2->V2 +testdata/Builtins.lc 435:63-435:70 V10 +testdata/Builtins.lc 435:71-435:75 'Stream ('Fragment V2 V0) +testdata/Builtins.lc 435:71-435:75 V6 +testdata/Builtins.lc 435:77-435:79 'FrameBuffer V2 V1 +testdata/Builtins.lc 435:77-435:79 V4 testdata/Builtins.lc 435:1-435:11 {a:'Nat} -> {b} -> {c} -> 'FragOps' b -> (c -> 'RemSemantics b) -> 'Stream ('Fragment a c) -> 'FrameBuffer a b -> 'FrameBuffer a b +testdata/Builtins.lc 437:25-437:26 V1 testdata/Builtins.lc 437:1-437:20 {a} -> a->a testdata/Builtins.lc 439:15-439:18 Type testdata/Builtins.lc 439:22-439:34 Type @@ -1520,8 +1782,11 @@ testdata/Builtins.lc 443:64-443:67 Type testdata/Builtins.lc 443:3-443:15 {a:'Nat} -> 'Int -> 'Image a ('Stencil 'Int) testdata/Builtins.lc 446:26-446:54 Type testdata/Builtins.lc 446:26-446:37 'Nat -> Type->Type -testdata/Builtins.lc 446:26-446:54 V1 +testdata/Builtins.lc 446:40-446:41 Type +testdata/Builtins.lc 446:40-446:41 V1 +testdata/Builtins.lc 446:45-446:54 Type testdata/Builtins.lc 446:45-446:50 'Nat -> Type->Type +testdata/Builtins.lc 446:53-446:54 Type testdata/Builtins.lc 446:3-446:11 {a} -> 'FrameBuffer (Succ Zero) a -> 'Image (Succ Zero) a testdata/Builtins.lc 447:26-447:37 'Nat -> Type->Type testdata/Builtins.lc 447:40-447:74 Type @@ -1548,101 +1813,195 @@ testdata/Builtins.lc 442:53-447:105 Type testdata/Builtins.lc 442:53-442:67 Type testdata/Builtins.lc 443:53-447:105 Type testdata/Builtins.lc 443:53-443:67 Type -testdata/Builtins.lc 446:26-447:105 Type +testdata/Builtins.lc 446:53-447:105 Type testdata/Builtins.lc 449:6-449:12 Type testdata/Builtins.lc 450:26-450:51 Type testdata/Builtins.lc 450:26-450:37 'Nat -> Type->Type -testdata/Builtins.lc 450:26-450:51 'Nat -testdata/Builtins.lc 450:26-450:51 V3 -testdata/Builtins.lc 450:26-450:51 V1 +testdata/Builtins.lc 450:38-450:39 'Nat +testdata/Builtins.lc 450:38-450:39 V3 +testdata/Builtins.lc 450:40-450:41 Type +testdata/Builtins.lc 450:40-450:41 V1 testdata/Builtins.lc 450:45-450:51 Type testdata/Builtins.lc 450:3-450:12 {a:'Nat} -> {b} -> 'FrameBuffer a b -> 'Output testdata/Builtins.lc 456:34-456:73 Type testdata/Builtins.lc 456:34-456:37 Type->Type +testdata/Builtins.lc 456:39-456:57 Type testdata/Builtins.lc 456:39-456:55 Type->Type -testdata/Builtins.lc 456:34-456:73 V1 +testdata/Builtins.lc 456:56-456:57 Type +testdata/Builtins.lc 456:56-456:57 V1 +testdata/Builtins.lc 456:62-456:73 Type +testdata/Builtins.lc 456:62-456:63 Type +testdata/Builtins.lc 456:67-456:73 Type +testdata/Builtins.lc 456:67-456:68 Type +testdata/Builtins.lc 456:72-456:73 Type testdata/Builtins.lc 456:1-456:8 {a} -> {b : 'Num ('MatVecScalarElem a)} -> a -> a->a testdata/Builtins.lc 456:10-456:17 {a} -> {b : 'Num ('MatVecScalarElem a)} -> a -> a->a testdata/Builtins.lc 456:19-456:26 {a} -> {b : 'Num ('MatVecScalarElem a)} -> a -> a->a testdata/Builtins.lc 457:35-457:80 Type -testdata/Builtins.lc 457:35-457:80 V3 +testdata/Builtins.lc 457:35-457:36 Type +testdata/Builtins.lc 457:35-457:36 V3 +testdata/Builtins.lc 457:39-457:57 Type testdata/Builtins.lc 457:39-457:55 Type->Type -testdata/Builtins.lc 457:35-457:80 V1 +testdata/Builtins.lc 457:56-457:57 Type +testdata/Builtins.lc 457:56-457:57 V1 +testdata/Builtins.lc 457:59-457:80 Type testdata/Builtins.lc 457:59-457:62 Type->Type +testdata/Builtins.lc 457:63-457:64 Type +testdata/Builtins.lc 457:69-457:80 Type +testdata/Builtins.lc 457:69-457:70 Type +testdata/Builtins.lc 457:74-457:80 Type +testdata/Builtins.lc 457:74-457:75 Type +testdata/Builtins.lc 457:79-457:80 Type testdata/Builtins.lc 457:1-457:9 {a} -> {b} -> {c : a ~ 'MatVecScalarElem b} -> {d : 'Num a} -> b -> a->b testdata/Builtins.lc 457:11-457:19 {a} -> {b} -> {c : a ~ 'MatVecScalarElem b} -> {d : 'Num a} -> b -> a->b testdata/Builtins.lc 457:21-457:29 {a} -> {b} -> {c : a ~ 'MatVecScalarElem b} -> {d : 'Num a} -> b -> a->b testdata/Builtins.lc 458:35-458:75 Type testdata/Builtins.lc 458:35-458:38 Type->Type -testdata/Builtins.lc 458:35-458:75 V5 -testdata/Builtins.lc 458:35-458:75 V4 +testdata/Builtins.lc 458:39-458:40 Type +testdata/Builtins.lc 458:39-458:40 V5 +testdata/Builtins.lc 458:42-458:75 Type +testdata/Builtins.lc 458:42-458:43 Type +testdata/Builtins.lc 458:42-458:43 V4 +testdata/Builtins.lc 458:46-458:59 Type testdata/Builtins.lc 458:46-458:55 'Nat -> Type->Type -testdata/Builtins.lc 458:35-458:75 'Nat -testdata/Builtins.lc 458:35-458:75 V2 +testdata/Builtins.lc 458:56-458:57 'Nat +testdata/Builtins.lc 458:56-458:57 V2 +testdata/Builtins.lc 458:58-458:59 Type +testdata/Builtins.lc 458:64-458:75 Type +testdata/Builtins.lc 458:64-458:65 Type +testdata/Builtins.lc 458:69-458:75 Type +testdata/Builtins.lc 458:69-458:70 Type +testdata/Builtins.lc 458:74-458:75 Type testdata/Builtins.lc 458:1-458:8 {a} -> {b} -> {c:'Nat} -> {d : 'Num a} -> {e : b ~ 'VecScalar c a} -> b -> b->b testdata/Builtins.lc 458:10-458:17 {a} -> {b} -> {c:'Nat} -> {d : 'Num a} -> {e : b ~ 'VecScalar c a} -> b -> b->b testdata/Builtins.lc 459:35-459:75 Type testdata/Builtins.lc 459:35-459:38 Type->Type -testdata/Builtins.lc 459:35-459:75 V5 -testdata/Builtins.lc 459:35-459:75 V4 +testdata/Builtins.lc 459:39-459:40 Type +testdata/Builtins.lc 459:39-459:40 V5 +testdata/Builtins.lc 459:42-459:75 Type +testdata/Builtins.lc 459:42-459:43 Type +testdata/Builtins.lc 459:42-459:43 V4 +testdata/Builtins.lc 459:46-459:59 Type testdata/Builtins.lc 459:46-459:55 'Nat -> Type->Type -testdata/Builtins.lc 459:35-459:75 'Nat -testdata/Builtins.lc 459:35-459:75 V2 +testdata/Builtins.lc 459:56-459:57 'Nat +testdata/Builtins.lc 459:56-459:57 V2 +testdata/Builtins.lc 459:58-459:59 Type +testdata/Builtins.lc 459:64-459:75 Type +testdata/Builtins.lc 459:64-459:65 Type +testdata/Builtins.lc 459:69-459:75 Type +testdata/Builtins.lc 459:69-459:70 Type +testdata/Builtins.lc 459:74-459:75 Type testdata/Builtins.lc 459:1-459:9 {a} -> {b} -> {c:'Nat} -> {d : 'Num a} -> {e : b ~ 'VecScalar c a} -> b -> a->b testdata/Builtins.lc 459:11-459:19 {a} -> {b} -> {c:'Nat} -> {d : 'Num a} -> {e : b ~ 'VecScalar c a} -> b -> a->b testdata/Builtins.lc 460:34-460:71 Type testdata/Builtins.lc 460:34-460:40 Type->Type +testdata/Builtins.lc 460:42-460:60 Type testdata/Builtins.lc 460:42-460:58 Type->Type -testdata/Builtins.lc 460:34-460:71 V1 +testdata/Builtins.lc 460:59-460:60 Type +testdata/Builtins.lc 460:59-460:60 V1 +testdata/Builtins.lc 460:65-460:71 Type +testdata/Builtins.lc 460:65-460:66 Type +testdata/Builtins.lc 460:70-460:71 Type testdata/Builtins.lc 460:1-460:8 {a} -> {b : 'Signed ('MatVecScalarElem a)} -> a->a testdata/Builtins.lc 462:35-462:80 Type testdata/Builtins.lc 462:35-462:43 Type->Type -testdata/Builtins.lc 462:35-462:80 V5 -testdata/Builtins.lc 462:35-462:80 V4 +testdata/Builtins.lc 462:44-462:45 Type +testdata/Builtins.lc 462:44-462:45 V5 +testdata/Builtins.lc 462:47-462:80 Type +testdata/Builtins.lc 462:47-462:48 Type +testdata/Builtins.lc 462:47-462:48 V4 +testdata/Builtins.lc 462:51-462:64 Type testdata/Builtins.lc 462:51-462:60 'Nat -> Type->Type -testdata/Builtins.lc 462:35-462:80 'Nat -testdata/Builtins.lc 462:35-462:80 V2 +testdata/Builtins.lc 462:61-462:62 'Nat +testdata/Builtins.lc 462:61-462:62 V2 +testdata/Builtins.lc 462:63-462:64 Type +testdata/Builtins.lc 462:69-462:80 Type +testdata/Builtins.lc 462:69-462:70 Type +testdata/Builtins.lc 462:74-462:80 Type +testdata/Builtins.lc 462:74-462:75 Type +testdata/Builtins.lc 462:79-462:80 Type testdata/Builtins.lc 462:1-462:9 {a} -> {b} -> {c:'Nat} -> {d : 'Integral a} -> {e : b ~ 'VecScalar c a} -> b -> b->b testdata/Builtins.lc 462:11-462:18 {a} -> {b} -> {c:'Nat} -> {d : 'Integral a} -> {e : b ~ 'VecScalar c a} -> b -> b->b testdata/Builtins.lc 462:20-462:28 {a} -> {b} -> {c:'Nat} -> {d : 'Integral a} -> {e : b ~ 'VecScalar c a} -> b -> b->b testdata/Builtins.lc 463:35-463:80 Type testdata/Builtins.lc 463:35-463:43 Type->Type -testdata/Builtins.lc 463:35-463:80 V5 -testdata/Builtins.lc 463:35-463:80 V4 +testdata/Builtins.lc 463:44-463:45 Type +testdata/Builtins.lc 463:44-463:45 V5 +testdata/Builtins.lc 463:47-463:80 Type +testdata/Builtins.lc 463:47-463:48 Type +testdata/Builtins.lc 463:47-463:48 V4 +testdata/Builtins.lc 463:51-463:64 Type testdata/Builtins.lc 463:51-463:60 'Nat -> Type->Type -testdata/Builtins.lc 463:35-463:80 'Nat -testdata/Builtins.lc 463:35-463:80 V2 +testdata/Builtins.lc 463:61-463:62 'Nat +testdata/Builtins.lc 463:61-463:62 V2 +testdata/Builtins.lc 463:63-463:64 Type +testdata/Builtins.lc 463:69-463:80 Type +testdata/Builtins.lc 463:69-463:70 Type +testdata/Builtins.lc 463:74-463:80 Type +testdata/Builtins.lc 463:74-463:75 Type +testdata/Builtins.lc 463:79-463:80 Type testdata/Builtins.lc 463:1-463:10 {a} -> {b} -> {c:'Nat} -> {d : 'Integral a} -> {e : b ~ 'VecScalar c a} -> b -> a->b testdata/Builtins.lc 463:12-463:20 {a} -> {b} -> {c:'Nat} -> {d : 'Integral a} -> {e : b ~ 'VecScalar c a} -> b -> a->b testdata/Builtins.lc 463:22-463:31 {a} -> {b} -> {c:'Nat} -> {d : 'Integral a} -> {e : b ~ 'VecScalar c a} -> b -> a->b testdata/Builtins.lc 464:35-464:75 Type testdata/Builtins.lc 464:35-464:43 Type->Type -testdata/Builtins.lc 464:35-464:75 V5 -testdata/Builtins.lc 464:35-464:75 V4 +testdata/Builtins.lc 464:44-464:45 Type +testdata/Builtins.lc 464:44-464:45 V5 +testdata/Builtins.lc 464:47-464:75 Type +testdata/Builtins.lc 464:47-464:48 Type +testdata/Builtins.lc 464:47-464:48 V4 +testdata/Builtins.lc 464:51-464:64 Type testdata/Builtins.lc 464:51-464:60 'Nat -> Type->Type -testdata/Builtins.lc 464:35-464:75 'Nat -testdata/Builtins.lc 464:35-464:75 V2 +testdata/Builtins.lc 464:61-464:62 'Nat +testdata/Builtins.lc 464:61-464:62 V2 +testdata/Builtins.lc 464:63-464:64 Type +testdata/Builtins.lc 464:69-464:75 Type +testdata/Builtins.lc 464:69-464:70 Type +testdata/Builtins.lc 464:74-464:75 Type testdata/Builtins.lc 464:1-464:9 {a} -> {b} -> {c:'Nat} -> {d : 'Integral a} -> {e : b ~ 'VecScalar c a} -> b->b testdata/Builtins.lc 465:35-465:102 Type testdata/Builtins.lc 465:35-465:43 Type->Type -testdata/Builtins.lc 465:35-465:102 V7 -testdata/Builtins.lc 465:35-465:102 V6 +testdata/Builtins.lc 465:44-465:45 Type +testdata/Builtins.lc 465:44-465:45 V7 +testdata/Builtins.lc 465:47-465:102 Type +testdata/Builtins.lc 465:47-465:48 Type +testdata/Builtins.lc 465:47-465:48 V6 +testdata/Builtins.lc 465:51-465:64 Type testdata/Builtins.lc 465:51-465:60 'Nat -> Type->Type -testdata/Builtins.lc 465:35-465:102 'Nat -testdata/Builtins.lc 465:35-465:102 V4 -testdata/Builtins.lc 465:35-465:102 V3 +testdata/Builtins.lc 465:61-465:62 'Nat +testdata/Builtins.lc 465:61-465:62 V4 +testdata/Builtins.lc 465:63-465:64 Type +testdata/Builtins.lc 465:66-465:102 Type +testdata/Builtins.lc 465:66-465:67 Type +testdata/Builtins.lc 465:66-465:67 V3 +testdata/Builtins.lc 465:70-465:86 Type testdata/Builtins.lc 465:70-465:79 'Nat -> Type->Type +testdata/Builtins.lc 465:80-465:81 'Nat testdata/Builtins.lc 465:82-465:86 Type +testdata/Builtins.lc 465:91-465:102 Type +testdata/Builtins.lc 465:91-465:92 Type +testdata/Builtins.lc 465:96-465:102 Type +testdata/Builtins.lc 465:96-465:97 Type +testdata/Builtins.lc 465:101-465:102 Type testdata/Builtins.lc 465:1-465:12 {a} -> {b} -> {c:'Nat} -> {d} -> {e : 'Integral a} -> {f : b ~ 'VecScalar c a} -> {g : d ~ 'VecScalar c 'Word} -> b -> d->b testdata/Builtins.lc 465:14-465:25 {a} -> {b} -> {c:'Nat} -> {d} -> {e : 'Integral a} -> {f : b ~ 'VecScalar c a} -> {g : d ~ 'VecScalar c 'Word} -> b -> d->b testdata/Builtins.lc 466:35-466:83 Type testdata/Builtins.lc 466:35-466:43 Type->Type -testdata/Builtins.lc 466:35-466:83 V5 -testdata/Builtins.lc 466:35-466:83 V4 +testdata/Builtins.lc 466:44-466:45 Type +testdata/Builtins.lc 466:44-466:45 V5 +testdata/Builtins.lc 466:47-466:83 Type +testdata/Builtins.lc 466:47-466:48 Type +testdata/Builtins.lc 466:47-466:48 V4 +testdata/Builtins.lc 466:51-466:64 Type testdata/Builtins.lc 466:51-466:60 'Nat -> Type->Type -testdata/Builtins.lc 466:35-466:83 'Nat -testdata/Builtins.lc 466:35-466:83 V2 +testdata/Builtins.lc 466:61-466:62 'Nat +testdata/Builtins.lc 466:61-466:62 V2 +testdata/Builtins.lc 466:63-466:64 Type +testdata/Builtins.lc 466:69-466:83 Type +testdata/Builtins.lc 466:69-466:70 Type +testdata/Builtins.lc 466:74-466:83 Type testdata/Builtins.lc 466:74-466:78 Type +testdata/Builtins.lc 466:82-466:83 Type testdata/Builtins.lc 466:1-466:13 {a} -> {b} -> {c:'Nat} -> {d : 'Integral a} -> {e : b ~ 'VecScalar c a} -> b -> 'Word->b testdata/Builtins.lc 466:15-466:27 {a} -> {b} -> {c:'Nat} -> {d : 'Integral a} -> {e : b ~ 'VecScalar c a} -> b -> 'Word->b testdata/Builtins.lc 468:34-468:38 Type @@ -1653,26 +2012,36 @@ testdata/Builtins.lc 468:1-468:8 'Bool -> 'Bool->'Bool testdata/Builtins.lc 468:10-468:16 'Bool -> 'Bool->'Bool testdata/Builtins.lc 468:18-468:25 'Bool -> 'Bool->'Bool testdata/Builtins.lc 469:35-469:66 Type -testdata/Builtins.lc 469:35-469:66 V3 +testdata/Builtins.lc 469:35-469:36 Type +testdata/Builtins.lc 469:35-469:36 V3 +testdata/Builtins.lc 469:39-469:55 Type testdata/Builtins.lc 469:39-469:48 'Nat -> Type->Type -testdata/Builtins.lc 469:35-469:66 'Nat -testdata/Builtins.lc 469:35-469:66 V1 +testdata/Builtins.lc 469:49-469:50 'Nat +testdata/Builtins.lc 469:49-469:50 V1 testdata/Builtins.lc 469:51-469:55 Type +testdata/Builtins.lc 469:60-469:66 Type +testdata/Builtins.lc 469:60-469:61 Type +testdata/Builtins.lc 469:65-469:66 Type testdata/Builtins.lc 469:1-469:8 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Bool} -> a->a testdata/Builtins.lc 470:34-470:58 Type testdata/Builtins.lc 470:34-470:43 'Nat -> Type->Type -testdata/Builtins.lc 470:34-470:58 'Nat -testdata/Builtins.lc 470:34-470:58 V1 +testdata/Builtins.lc 470:44-470:45 'Nat +testdata/Builtins.lc 470:44-470:45 V1 testdata/Builtins.lc 470:46-470:50 Type testdata/Builtins.lc 470:54-470:58 Type testdata/Builtins.lc 470:1-470:8 {a:'Nat} -> 'VecScalar a 'Bool -> 'Bool testdata/Builtins.lc 470:10-470:17 {a:'Nat} -> 'VecScalar a 'Bool -> 'Bool testdata/Builtins.lc 474:35-474:67 Type -testdata/Builtins.lc 474:35-474:67 V3 +testdata/Builtins.lc 474:35-474:36 Type +testdata/Builtins.lc 474:35-474:36 V3 +testdata/Builtins.lc 474:39-474:56 Type testdata/Builtins.lc 474:39-474:48 'Nat -> Type->Type -testdata/Builtins.lc 474:35-474:67 'Nat -testdata/Builtins.lc 474:35-474:67 V1 +testdata/Builtins.lc 474:49-474:50 'Nat +testdata/Builtins.lc 474:49-474:50 V1 testdata/Builtins.lc 474:51-474:56 Type +testdata/Builtins.lc 474:61-474:67 Type +testdata/Builtins.lc 474:61-474:62 Type +testdata/Builtins.lc 474:66-474:67 Type testdata/Builtins.lc 473:1-473:9 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> a->a testdata/Builtins.lc 473:11-473:20 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> a->a testdata/Builtins.lc 473:22-473:30 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> a->a @@ -1694,19 +2063,31 @@ testdata/Builtins.lc 473:175-473:183 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b ' testdata/Builtins.lc 473:185-473:193 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> a->a testdata/Builtins.lc 473:195-473:206 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> a->a testdata/Builtins.lc 475:35-475:72 Type -testdata/Builtins.lc 475:35-475:72 V3 +testdata/Builtins.lc 475:35-475:36 Type +testdata/Builtins.lc 475:35-475:36 V3 +testdata/Builtins.lc 475:39-475:56 Type testdata/Builtins.lc 475:39-475:48 'Nat -> Type->Type -testdata/Builtins.lc 475:35-475:72 'Nat -testdata/Builtins.lc 475:35-475:72 V1 +testdata/Builtins.lc 475:49-475:50 'Nat +testdata/Builtins.lc 475:49-475:50 V1 testdata/Builtins.lc 475:51-475:56 Type +testdata/Builtins.lc 475:61-475:72 Type +testdata/Builtins.lc 475:61-475:62 Type +testdata/Builtins.lc 475:66-475:72 Type +testdata/Builtins.lc 475:66-475:67 Type +testdata/Builtins.lc 475:71-475:72 Type testdata/Builtins.lc 475:1-475:8 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> a -> a->a testdata/Builtins.lc 475:10-475:19 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> a -> a->a testdata/Builtins.lc 478:35-478:67 Type -testdata/Builtins.lc 478:35-478:67 V3 +testdata/Builtins.lc 478:35-478:36 Type +testdata/Builtins.lc 478:35-478:36 V3 +testdata/Builtins.lc 478:39-478:56 Type testdata/Builtins.lc 478:39-478:48 'Nat -> Type->Type -testdata/Builtins.lc 478:35-478:67 'Nat -testdata/Builtins.lc 478:35-478:67 V1 +testdata/Builtins.lc 478:49-478:50 'Nat +testdata/Builtins.lc 478:49-478:50 V1 testdata/Builtins.lc 478:51-478:56 Type +testdata/Builtins.lc 478:61-478:67 Type +testdata/Builtins.lc 478:61-478:62 Type +testdata/Builtins.lc 478:66-478:67 Type testdata/Builtins.lc 477:1-477:10 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> a->a testdata/Builtins.lc 477:12-477:21 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> a->a testdata/Builtins.lc 477:23-477:32 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> a->a @@ -1715,268 +2096,502 @@ testdata/Builtins.lc 477:49-477:57 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Fl testdata/Builtins.lc 477:59-477:68 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> a->a testdata/Builtins.lc 479:35-479:75 Type testdata/Builtins.lc 479:35-479:38 Type->Type -testdata/Builtins.lc 479:35-479:75 V5 -testdata/Builtins.lc 479:35-479:75 V4 +testdata/Builtins.lc 479:39-479:40 Type +testdata/Builtins.lc 479:39-479:40 V5 +testdata/Builtins.lc 479:42-479:75 Type +testdata/Builtins.lc 479:42-479:43 Type +testdata/Builtins.lc 479:42-479:43 V4 +testdata/Builtins.lc 479:46-479:59 Type testdata/Builtins.lc 479:46-479:55 'Nat -> Type->Type -testdata/Builtins.lc 479:35-479:75 'Nat -testdata/Builtins.lc 479:35-479:75 V2 +testdata/Builtins.lc 479:56-479:57 'Nat +testdata/Builtins.lc 479:56-479:57 V2 +testdata/Builtins.lc 479:58-479:59 Type +testdata/Builtins.lc 479:64-479:75 Type +testdata/Builtins.lc 479:64-479:65 Type +testdata/Builtins.lc 479:69-479:75 Type +testdata/Builtins.lc 479:69-479:70 Type +testdata/Builtins.lc 479:74-479:75 Type testdata/Builtins.lc 479:1-479:8 {a} -> {b} -> {c:'Nat} -> {d : 'Num a} -> {e : b ~ 'VecScalar c a} -> b -> b->b testdata/Builtins.lc 479:10-479:17 {a} -> {b} -> {c:'Nat} -> {d : 'Num a} -> {e : b ~ 'VecScalar c a} -> b -> b->b testdata/Builtins.lc 480:35-480:75 Type testdata/Builtins.lc 480:35-480:38 Type->Type -testdata/Builtins.lc 480:35-480:75 V5 -testdata/Builtins.lc 480:35-480:75 V4 +testdata/Builtins.lc 480:39-480:40 Type +testdata/Builtins.lc 480:39-480:40 V5 +testdata/Builtins.lc 480:42-480:75 Type +testdata/Builtins.lc 480:42-480:43 Type +testdata/Builtins.lc 480:42-480:43 V4 +testdata/Builtins.lc 480:46-480:59 Type testdata/Builtins.lc 480:46-480:55 'Nat -> Type->Type -testdata/Builtins.lc 480:35-480:75 'Nat -testdata/Builtins.lc 480:35-480:75 V2 +testdata/Builtins.lc 480:56-480:57 'Nat +testdata/Builtins.lc 480:56-480:57 V2 +testdata/Builtins.lc 480:58-480:59 Type +testdata/Builtins.lc 480:64-480:75 Type +testdata/Builtins.lc 480:64-480:65 Type +testdata/Builtins.lc 480:69-480:75 Type +testdata/Builtins.lc 480:69-480:70 Type +testdata/Builtins.lc 480:74-480:75 Type testdata/Builtins.lc 480:1-480:9 {a} -> {b} -> {c:'Nat} -> {d : 'Num a} -> {e : b ~ 'VecScalar c a} -> b -> a->b testdata/Builtins.lc 480:11-480:19 {a} -> {b} -> {c:'Nat} -> {d : 'Num a} -> {e : b ~ 'VecScalar c a} -> b -> a->b testdata/Builtins.lc 481:35-481:89 Type -testdata/Builtins.lc 481:35-481:89 V5 +testdata/Builtins.lc 481:35-481:36 Type +testdata/Builtins.lc 481:35-481:36 V5 +testdata/Builtins.lc 481:39-481:56 Type testdata/Builtins.lc 481:39-481:48 'Nat -> Type->Type -testdata/Builtins.lc 481:35-481:89 'Nat -testdata/Builtins.lc 481:35-481:89 V3 +testdata/Builtins.lc 481:49-481:50 'Nat +testdata/Builtins.lc 481:49-481:50 V3 testdata/Builtins.lc 481:51-481:56 Type -testdata/Builtins.lc 481:35-481:89 V2 +testdata/Builtins.lc 481:58-481:89 Type +testdata/Builtins.lc 481:58-481:59 Type +testdata/Builtins.lc 481:58-481:59 V2 +testdata/Builtins.lc 481:62-481:78 Type testdata/Builtins.lc 481:62-481:71 'Nat -> Type->Type +testdata/Builtins.lc 481:72-481:73 'Nat testdata/Builtins.lc 481:74-481:78 Type +testdata/Builtins.lc 481:83-481:89 Type +testdata/Builtins.lc 481:83-481:84 Type +testdata/Builtins.lc 481:88-481:89 Type testdata/Builtins.lc 481:1-481:10 {a} -> {b:'Nat} -> {c} -> {d : a ~ 'VecScalar b 'Float} -> {e : c ~ 'VecScalar b 'Bool} -> a->c testdata/Builtins.lc 481:12-481:21 {a} -> {b:'Nat} -> {c} -> {d : a ~ 'VecScalar b 'Float} -> {e : c ~ 'VecScalar b 'Bool} -> a->c testdata/Builtins.lc 482:35-482:73 Type testdata/Builtins.lc 482:35-482:41 Type->Type -testdata/Builtins.lc 482:35-482:73 V5 -testdata/Builtins.lc 482:35-482:73 V4 +testdata/Builtins.lc 482:42-482:43 Type +testdata/Builtins.lc 482:42-482:43 V5 +testdata/Builtins.lc 482:45-482:73 Type +testdata/Builtins.lc 482:45-482:46 Type +testdata/Builtins.lc 482:45-482:46 V4 +testdata/Builtins.lc 482:49-482:62 Type testdata/Builtins.lc 482:49-482:58 'Nat -> Type->Type -testdata/Builtins.lc 482:35-482:73 'Nat -testdata/Builtins.lc 482:35-482:73 V2 +testdata/Builtins.lc 482:59-482:60 'Nat +testdata/Builtins.lc 482:59-482:60 V2 +testdata/Builtins.lc 482:61-482:62 Type +testdata/Builtins.lc 482:67-482:73 Type +testdata/Builtins.lc 482:67-482:68 Type +testdata/Builtins.lc 482:72-482:73 Type testdata/Builtins.lc 482:1-482:8 {a} -> {b} -> {c:'Nat} -> {d : 'Signed a} -> {e : b ~ 'VecScalar c a} -> b->b testdata/Builtins.lc 482:10-482:18 {a} -> {b} -> {c:'Nat} -> {d : 'Signed a} -> {e : b ~ 'VecScalar c a} -> b->b testdata/Builtins.lc 483:35-483:72 Type -testdata/Builtins.lc 483:35-483:72 V3 +testdata/Builtins.lc 483:35-483:36 Type +testdata/Builtins.lc 483:35-483:36 V3 +testdata/Builtins.lc 483:39-483:56 Type testdata/Builtins.lc 483:39-483:48 'Nat -> Type->Type -testdata/Builtins.lc 483:35-483:72 'Nat -testdata/Builtins.lc 483:35-483:72 V1 +testdata/Builtins.lc 483:49-483:50 'Nat +testdata/Builtins.lc 483:49-483:50 V1 testdata/Builtins.lc 483:51-483:56 Type +testdata/Builtins.lc 483:61-483:72 Type +testdata/Builtins.lc 483:61-483:62 Type +testdata/Builtins.lc 483:66-483:72 Type testdata/Builtins.lc 483:66-483:72 Type -> Type->Type +testdata/Builtins.lc 483:67-483:68 Type +testdata/Builtins.lc 483:70-483:71 Type testdata/Builtins.lc 483:1-483:9 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> a -> 'Tuple2 a a testdata/Builtins.lc 484:35-484:80 Type testdata/Builtins.lc 484:35-484:38 Type->Type -testdata/Builtins.lc 484:35-484:80 V5 -testdata/Builtins.lc 484:35-484:80 V4 +testdata/Builtins.lc 484:39-484:40 Type +testdata/Builtins.lc 484:39-484:40 V5 +testdata/Builtins.lc 484:42-484:80 Type +testdata/Builtins.lc 484:42-484:43 Type +testdata/Builtins.lc 484:42-484:43 V4 +testdata/Builtins.lc 484:46-484:59 Type testdata/Builtins.lc 484:46-484:55 'Nat -> Type->Type -testdata/Builtins.lc 484:35-484:80 'Nat -testdata/Builtins.lc 484:35-484:80 V2 +testdata/Builtins.lc 484:56-484:57 'Nat +testdata/Builtins.lc 484:56-484:57 V2 +testdata/Builtins.lc 484:58-484:59 Type +testdata/Builtins.lc 484:64-484:80 Type +testdata/Builtins.lc 484:64-484:65 Type +testdata/Builtins.lc 484:69-484:80 Type +testdata/Builtins.lc 484:69-484:70 Type +testdata/Builtins.lc 484:74-484:80 Type +testdata/Builtins.lc 484:74-484:75 Type +testdata/Builtins.lc 484:79-484:80 Type testdata/Builtins.lc 484:1-484:10 {a} -> {b} -> {c:'Nat} -> {d : 'Num a} -> {e : b ~ 'VecScalar c a} -> b -> b -> b->b testdata/Builtins.lc 485:35-485:80 Type testdata/Builtins.lc 485:35-485:38 Type->Type -testdata/Builtins.lc 485:35-485:80 V5 -testdata/Builtins.lc 485:35-485:80 V4 +testdata/Builtins.lc 485:39-485:40 Type +testdata/Builtins.lc 485:39-485:40 V5 +testdata/Builtins.lc 485:42-485:80 Type +testdata/Builtins.lc 485:42-485:43 Type +testdata/Builtins.lc 485:42-485:43 V4 +testdata/Builtins.lc 485:46-485:59 Type testdata/Builtins.lc 485:46-485:55 'Nat -> Type->Type -testdata/Builtins.lc 485:35-485:80 'Nat -testdata/Builtins.lc 485:35-485:80 V2 +testdata/Builtins.lc 485:56-485:57 'Nat +testdata/Builtins.lc 485:56-485:57 V2 +testdata/Builtins.lc 485:58-485:59 Type +testdata/Builtins.lc 485:64-485:80 Type +testdata/Builtins.lc 485:64-485:65 Type +testdata/Builtins.lc 485:69-485:80 Type +testdata/Builtins.lc 485:69-485:70 Type +testdata/Builtins.lc 485:74-485:80 Type +testdata/Builtins.lc 485:74-485:75 Type +testdata/Builtins.lc 485:79-485:80 Type testdata/Builtins.lc 485:1-485:11 {a} -> {b} -> {c:'Nat} -> {d : 'Num a} -> {e : b ~ 'VecScalar c a} -> b -> a -> a->b testdata/Builtins.lc 486:35-486:77 Type -testdata/Builtins.lc 486:35-486:77 V3 +testdata/Builtins.lc 486:35-486:36 Type +testdata/Builtins.lc 486:35-486:36 V3 +testdata/Builtins.lc 486:39-486:56 Type testdata/Builtins.lc 486:39-486:48 'Nat -> Type->Type -testdata/Builtins.lc 486:35-486:77 'Nat -testdata/Builtins.lc 486:35-486:77 V1 +testdata/Builtins.lc 486:49-486:50 'Nat +testdata/Builtins.lc 486:49-486:50 V1 testdata/Builtins.lc 486:51-486:56 Type +testdata/Builtins.lc 486:61-486:77 Type +testdata/Builtins.lc 486:61-486:62 Type +testdata/Builtins.lc 486:66-486:77 Type +testdata/Builtins.lc 486:66-486:67 Type +testdata/Builtins.lc 486:71-486:77 Type +testdata/Builtins.lc 486:71-486:72 Type +testdata/Builtins.lc 486:76-486:77 Type testdata/Builtins.lc 486:1-486:8 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> a -> a -> a->a testdata/Builtins.lc 487:35-487:81 Type -testdata/Builtins.lc 487:35-487:81 V3 +testdata/Builtins.lc 487:35-487:36 Type +testdata/Builtins.lc 487:35-487:36 V3 +testdata/Builtins.lc 487:39-487:56 Type testdata/Builtins.lc 487:39-487:48 'Nat -> Type->Type -testdata/Builtins.lc 487:35-487:81 'Nat -testdata/Builtins.lc 487:35-487:81 V1 +testdata/Builtins.lc 487:49-487:50 'Nat +testdata/Builtins.lc 487:49-487:50 V1 testdata/Builtins.lc 487:51-487:56 Type +testdata/Builtins.lc 487:61-487:81 Type +testdata/Builtins.lc 487:61-487:62 Type +testdata/Builtins.lc 487:66-487:81 Type +testdata/Builtins.lc 487:66-487:67 Type +testdata/Builtins.lc 487:71-487:81 Type testdata/Builtins.lc 487:71-487:76 Type +testdata/Builtins.lc 487:80-487:81 Type testdata/Builtins.lc 487:1-487:9 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> a -> a -> 'Float->a testdata/Builtins.lc 488:35-488:99 Type -testdata/Builtins.lc 488:35-488:99 V5 +testdata/Builtins.lc 488:35-488:36 Type +testdata/Builtins.lc 488:35-488:36 V5 +testdata/Builtins.lc 488:39-488:56 Type testdata/Builtins.lc 488:39-488:48 'Nat -> Type->Type -testdata/Builtins.lc 488:35-488:99 'Nat -testdata/Builtins.lc 488:35-488:99 V3 +testdata/Builtins.lc 488:49-488:50 'Nat +testdata/Builtins.lc 488:49-488:50 V3 testdata/Builtins.lc 488:51-488:56 Type -testdata/Builtins.lc 488:35-488:99 V2 +testdata/Builtins.lc 488:58-488:99 Type +testdata/Builtins.lc 488:58-488:59 Type +testdata/Builtins.lc 488:58-488:59 V2 +testdata/Builtins.lc 488:62-488:78 Type testdata/Builtins.lc 488:62-488:71 'Nat -> Type->Type +testdata/Builtins.lc 488:72-488:73 'Nat testdata/Builtins.lc 488:74-488:78 Type +testdata/Builtins.lc 488:83-488:99 Type +testdata/Builtins.lc 488:83-488:84 Type +testdata/Builtins.lc 488:88-488:99 Type +testdata/Builtins.lc 488:88-488:89 Type +testdata/Builtins.lc 488:93-488:99 Type +testdata/Builtins.lc 488:93-488:94 Type +testdata/Builtins.lc 488:98-488:99 Type testdata/Builtins.lc 488:1-488:9 {a} -> {b:'Nat} -> {c} -> {d : a ~ 'VecScalar b 'Float} -> {e : c ~ 'VecScalar b 'Bool} -> a -> a -> c->a testdata/Builtins.lc 489:35-489:68 Type -testdata/Builtins.lc 489:35-489:68 V3 +testdata/Builtins.lc 489:35-489:36 Type +testdata/Builtins.lc 489:35-489:36 V3 +testdata/Builtins.lc 489:39-489:52 Type testdata/Builtins.lc 489:39-489:44 'Nat -> Type->Type -testdata/Builtins.lc 489:35-489:68 'Nat -testdata/Builtins.lc 489:35-489:68 V1 +testdata/Builtins.lc 489:45-489:46 'Nat +testdata/Builtins.lc 489:45-489:46 V1 testdata/Builtins.lc 489:47-489:52 Type +testdata/Builtins.lc 489:57-489:68 Type +testdata/Builtins.lc 489:57-489:58 Type +testdata/Builtins.lc 489:62-489:68 Type +testdata/Builtins.lc 489:62-489:63 Type +testdata/Builtins.lc 489:67-489:68 Type testdata/Builtins.lc 489:1-489:9 {a} -> {b:'Nat} -> {c : a ~ 'VecS 'Float b} -> a -> a->a testdata/Builtins.lc 490:35-490:76 Type -testdata/Builtins.lc 490:35-490:76 V3 +testdata/Builtins.lc 490:35-490:36 Type +testdata/Builtins.lc 490:35-490:36 V3 +testdata/Builtins.lc 490:39-490:56 Type testdata/Builtins.lc 490:39-490:48 'Nat -> Type->Type -testdata/Builtins.lc 490:35-490:76 'Nat -testdata/Builtins.lc 490:35-490:76 V1 +testdata/Builtins.lc 490:49-490:50 'Nat +testdata/Builtins.lc 490:49-490:50 V1 testdata/Builtins.lc 490:51-490:56 Type +testdata/Builtins.lc 490:61-490:76 Type testdata/Builtins.lc 490:61-490:66 Type +testdata/Builtins.lc 490:70-490:76 Type +testdata/Builtins.lc 490:70-490:71 Type +testdata/Builtins.lc 490:75-490:76 Type testdata/Builtins.lc 490:1-490:10 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> 'Float -> a->a testdata/Builtins.lc 491:35-491:73 Type -testdata/Builtins.lc 491:35-491:73 V3 +testdata/Builtins.lc 491:35-491:36 Type +testdata/Builtins.lc 491:35-491:36 V3 +testdata/Builtins.lc 491:39-491:52 Type testdata/Builtins.lc 491:39-491:44 'Nat -> Type->Type -testdata/Builtins.lc 491:35-491:73 'Nat -testdata/Builtins.lc 491:35-491:73 V1 +testdata/Builtins.lc 491:45-491:46 'Nat +testdata/Builtins.lc 491:45-491:46 V1 testdata/Builtins.lc 491:47-491:52 Type +testdata/Builtins.lc 491:57-491:73 Type +testdata/Builtins.lc 491:57-491:58 Type +testdata/Builtins.lc 491:62-491:73 Type +testdata/Builtins.lc 491:62-491:63 Type +testdata/Builtins.lc 491:67-491:73 Type +testdata/Builtins.lc 491:67-491:68 Type +testdata/Builtins.lc 491:72-491:73 Type testdata/Builtins.lc 491:1-491:15 {a} -> {b:'Nat} -> {c : a ~ 'VecS 'Float b} -> a -> a -> a->a testdata/Builtins.lc 492:35-492:85 Type -testdata/Builtins.lc 492:35-492:85 V3 +testdata/Builtins.lc 492:35-492:36 Type +testdata/Builtins.lc 492:35-492:36 V3 +testdata/Builtins.lc 492:39-492:56 Type testdata/Builtins.lc 492:39-492:48 'Nat -> Type->Type -testdata/Builtins.lc 492:35-492:85 'Nat -testdata/Builtins.lc 492:35-492:85 V1 +testdata/Builtins.lc 492:49-492:50 'Nat +testdata/Builtins.lc 492:49-492:50 V1 testdata/Builtins.lc 492:51-492:56 Type +testdata/Builtins.lc 492:61-492:85 Type testdata/Builtins.lc 492:61-492:66 Type +testdata/Builtins.lc 492:70-492:85 Type testdata/Builtins.lc 492:70-492:75 Type +testdata/Builtins.lc 492:79-492:85 Type +testdata/Builtins.lc 492:79-492:80 Type +testdata/Builtins.lc 492:84-492:85 Type testdata/Builtins.lc 492:1-492:16 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> 'Float -> 'Float -> a->a testdata/Builtins.lc 495:34-495:70 Type testdata/Builtins.lc 495:34-495:43 'Nat -> Type->Type -testdata/Builtins.lc 495:34-495:70 'Nat -testdata/Builtins.lc 495:34-495:70 V1 +testdata/Builtins.lc 495:44-495:45 'Nat +testdata/Builtins.lc 495:44-495:45 V1 testdata/Builtins.lc 495:46-495:51 Type +testdata/Builtins.lc 495:55-495:70 Type testdata/Builtins.lc 495:55-495:64 'Nat -> Type->Type +testdata/Builtins.lc 495:65-495:66 'Nat testdata/Builtins.lc 495:67-495:70 Type testdata/Builtins.lc 495:1-495:19 {a:'Nat} -> 'VecScalar a 'Float -> 'VecScalar a 'Int testdata/Builtins.lc 496:34-496:71 Type testdata/Builtins.lc 496:34-496:43 'Nat -> Type->Type -testdata/Builtins.lc 496:34-496:71 'Nat -testdata/Builtins.lc 496:34-496:71 V1 +testdata/Builtins.lc 496:44-496:45 'Nat +testdata/Builtins.lc 496:44-496:45 V1 testdata/Builtins.lc 496:46-496:51 Type +testdata/Builtins.lc 496:55-496:71 Type testdata/Builtins.lc 496:55-496:64 'Nat -> Type->Type +testdata/Builtins.lc 496:65-496:66 'Nat testdata/Builtins.lc 496:67-496:71 Type testdata/Builtins.lc 496:1-496:20 {a:'Nat} -> 'VecScalar a 'Float -> 'VecScalar a 'Word testdata/Builtins.lc 497:34-497:72 Type testdata/Builtins.lc 497:34-497:43 'Nat -> Type->Type -testdata/Builtins.lc 497:34-497:72 'Nat -testdata/Builtins.lc 497:34-497:72 V1 +testdata/Builtins.lc 497:44-497:45 'Nat +testdata/Builtins.lc 497:44-497:45 V1 testdata/Builtins.lc 497:46-497:49 Type +testdata/Builtins.lc 497:55-497:72 Type testdata/Builtins.lc 497:55-497:64 'Nat -> Type->Type +testdata/Builtins.lc 497:65-497:66 'Nat testdata/Builtins.lc 497:67-497:72 Type testdata/Builtins.lc 497:1-497:19 {a:'Nat} -> 'VecScalar a 'Int -> 'VecScalar a 'Float testdata/Builtins.lc 498:34-498:72 Type testdata/Builtins.lc 498:34-498:43 'Nat -> Type->Type -testdata/Builtins.lc 498:34-498:72 'Nat -testdata/Builtins.lc 498:34-498:72 V1 +testdata/Builtins.lc 498:44-498:45 'Nat +testdata/Builtins.lc 498:44-498:45 V1 testdata/Builtins.lc 498:46-498:50 Type +testdata/Builtins.lc 498:55-498:72 Type testdata/Builtins.lc 498:55-498:64 'Nat -> Type->Type +testdata/Builtins.lc 498:65-498:66 'Nat testdata/Builtins.lc 498:67-498:72 Type testdata/Builtins.lc 498:1-498:20 {a:'Nat} -> 'VecScalar a 'Word -> 'VecScalar a 'Float testdata/Builtins.lc 500:35-500:71 Type -testdata/Builtins.lc 500:35-500:71 V3 +testdata/Builtins.lc 500:35-500:36 Type +testdata/Builtins.lc 500:35-500:36 V3 +testdata/Builtins.lc 500:39-500:56 Type testdata/Builtins.lc 500:39-500:48 'Nat -> Type->Type -testdata/Builtins.lc 500:35-500:71 'Nat -testdata/Builtins.lc 500:35-500:71 V1 +testdata/Builtins.lc 500:49-500:50 'Nat +testdata/Builtins.lc 500:49-500:50 V1 testdata/Builtins.lc 500:51-500:56 Type +testdata/Builtins.lc 500:61-500:71 Type +testdata/Builtins.lc 500:61-500:62 Type testdata/Builtins.lc 500:66-500:71 Type testdata/Builtins.lc 500:1-500:11 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> a->'Float testdata/Builtins.lc 501:35-501:76 Type -testdata/Builtins.lc 501:35-501:76 V3 +testdata/Builtins.lc 501:35-501:36 Type +testdata/Builtins.lc 501:35-501:36 V3 +testdata/Builtins.lc 501:39-501:56 Type testdata/Builtins.lc 501:39-501:48 'Nat -> Type->Type -testdata/Builtins.lc 501:35-501:76 'Nat -testdata/Builtins.lc 501:35-501:76 V1 +testdata/Builtins.lc 501:49-501:50 'Nat +testdata/Builtins.lc 501:49-501:50 V1 testdata/Builtins.lc 501:51-501:56 Type +testdata/Builtins.lc 501:61-501:76 Type +testdata/Builtins.lc 501:61-501:62 Type +testdata/Builtins.lc 501:66-501:76 Type +testdata/Builtins.lc 501:66-501:67 Type testdata/Builtins.lc 501:71-501:76 Type testdata/Builtins.lc 501:1-501:13 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> a -> a->'Float testdata/Builtins.lc 501:15-501:22 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> a -> a->'Float testdata/Builtins.lc 502:35-502:72 Type -testdata/Builtins.lc 502:35-502:72 V1 +testdata/Builtins.lc 502:35-502:36 Type +testdata/Builtins.lc 502:35-502:36 V1 testdata/Builtins.lc 502:39-502:56 Type testdata/Builtins.lc 502:39-502:48 'Nat -> Type->Type testdata/Builtins.lc 502:51-502:56 Type +testdata/Builtins.lc 502:61-502:72 Type +testdata/Builtins.lc 502:61-502:62 Type +testdata/Builtins.lc 502:66-502:72 Type +testdata/Builtins.lc 502:66-502:67 Type +testdata/Builtins.lc 502:71-502:72 Type testdata/Builtins.lc 502:1-502:10 {a} -> {b : a ~ 'VecS 'Float (Succ (Succ (Succ Zero)))} -> a -> a->a testdata/Builtins.lc 503:35-503:67 Type -testdata/Builtins.lc 503:35-503:67 V3 +testdata/Builtins.lc 503:35-503:36 Type +testdata/Builtins.lc 503:35-503:36 V3 +testdata/Builtins.lc 503:39-503:56 Type testdata/Builtins.lc 503:39-503:48 'Nat -> Type->Type -testdata/Builtins.lc 503:35-503:67 'Nat -testdata/Builtins.lc 503:35-503:67 V1 +testdata/Builtins.lc 503:49-503:50 'Nat +testdata/Builtins.lc 503:49-503:50 V1 testdata/Builtins.lc 503:51-503:56 Type +testdata/Builtins.lc 503:61-503:67 Type +testdata/Builtins.lc 503:61-503:62 Type +testdata/Builtins.lc 503:66-503:67 Type testdata/Builtins.lc 503:1-503:14 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> a->a testdata/Builtins.lc 504:35-504:77 Type -testdata/Builtins.lc 504:35-504:77 V3 +testdata/Builtins.lc 504:35-504:36 Type +testdata/Builtins.lc 504:35-504:36 V3 +testdata/Builtins.lc 504:39-504:56 Type testdata/Builtins.lc 504:39-504:48 'Nat -> Type->Type -testdata/Builtins.lc 504:35-504:77 'Nat -testdata/Builtins.lc 504:35-504:77 V1 +testdata/Builtins.lc 504:49-504:50 'Nat +testdata/Builtins.lc 504:49-504:50 V1 testdata/Builtins.lc 504:51-504:56 Type +testdata/Builtins.lc 504:61-504:77 Type +testdata/Builtins.lc 504:61-504:62 Type +testdata/Builtins.lc 504:66-504:77 Type +testdata/Builtins.lc 504:66-504:67 Type +testdata/Builtins.lc 504:71-504:77 Type +testdata/Builtins.lc 504:71-504:72 Type +testdata/Builtins.lc 504:76-504:77 Type testdata/Builtins.lc 504:1-504:16 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> a -> a -> a->a testdata/Builtins.lc 504:18-504:29 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> a -> a -> a->a testdata/Builtins.lc 505:35-505:72 Type -testdata/Builtins.lc 505:35-505:72 V3 +testdata/Builtins.lc 505:35-505:36 Type +testdata/Builtins.lc 505:35-505:36 V3 +testdata/Builtins.lc 505:39-505:56 Type testdata/Builtins.lc 505:39-505:48 'Nat -> Type->Type -testdata/Builtins.lc 505:35-505:72 'Nat -testdata/Builtins.lc 505:35-505:72 V1 +testdata/Builtins.lc 505:49-505:50 'Nat +testdata/Builtins.lc 505:49-505:50 V1 testdata/Builtins.lc 505:51-505:56 Type +testdata/Builtins.lc 505:61-505:72 Type +testdata/Builtins.lc 505:61-505:62 Type +testdata/Builtins.lc 505:66-505:72 Type +testdata/Builtins.lc 505:66-505:67 Type +testdata/Builtins.lc 505:71-505:72 Type testdata/Builtins.lc 505:1-505:12 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> a -> a->a testdata/Builtins.lc 507:34-507:56 Type testdata/Builtins.lc 507:34-507:37 'Nat -> 'Nat -> Type->Type -testdata/Builtins.lc 507:34-507:56 'Nat -testdata/Builtins.lc 507:34-507:56 V5 -testdata/Builtins.lc 507:34-507:56 V3 -testdata/Builtins.lc 507:34-507:56 V1 +testdata/Builtins.lc 507:38-507:39 'Nat +testdata/Builtins.lc 507:38-507:39 V5 +testdata/Builtins.lc 507:40-507:41 'Nat +testdata/Builtins.lc 507:40-507:41 V3 +testdata/Builtins.lc 507:42-507:43 Type +testdata/Builtins.lc 507:42-507:43 V1 +testdata/Builtins.lc 507:47-507:56 Type testdata/Builtins.lc 507:47-507:50 'Nat -> 'Nat -> Type->Type +testdata/Builtins.lc 507:51-507:52 'Nat +testdata/Builtins.lc 507:53-507:54 'Nat +testdata/Builtins.lc 507:55-507:56 Type testdata/Builtins.lc 507:1-507:14 {a:'Nat} -> {b:'Nat} -> {c} -> 'Mat a b c -> 'Mat b a c testdata/Builtins.lc 508:34-508:52 Type testdata/Builtins.lc 508:34-508:37 'Nat -> 'Nat -> Type->Type -testdata/Builtins.lc 508:34-508:52 'Nat -testdata/Builtins.lc 508:34-508:52 V3 -testdata/Builtins.lc 508:34-508:52 V1 +testdata/Builtins.lc 508:38-508:39 'Nat +testdata/Builtins.lc 508:38-508:39 V3 +testdata/Builtins.lc 508:40-508:41 'Nat +testdata/Builtins.lc 508:42-508:43 Type +testdata/Builtins.lc 508:42-508:43 V1 testdata/Builtins.lc 508:47-508:52 Type testdata/Builtins.lc 508:1-508:16 {a:'Nat} -> {b} -> 'Mat a a b -> 'Float testdata/Builtins.lc 509:34-509:56 Type testdata/Builtins.lc 509:34-509:37 'Nat -> 'Nat -> Type->Type -testdata/Builtins.lc 509:34-509:56 'Nat -testdata/Builtins.lc 509:34-509:56 V3 -testdata/Builtins.lc 509:34-509:56 V1 +testdata/Builtins.lc 509:38-509:39 'Nat +testdata/Builtins.lc 509:38-509:39 V3 +testdata/Builtins.lc 509:40-509:41 'Nat +testdata/Builtins.lc 509:42-509:43 Type +testdata/Builtins.lc 509:42-509:43 V1 +testdata/Builtins.lc 509:47-509:56 Type testdata/Builtins.lc 509:47-509:50 'Nat -> 'Nat -> Type->Type +testdata/Builtins.lc 509:51-509:52 'Nat +testdata/Builtins.lc 509:53-509:54 'Nat +testdata/Builtins.lc 509:55-509:56 Type testdata/Builtins.lc 509:1-509:12 {a:'Nat} -> {b} -> 'Mat a a b -> 'Mat a a b testdata/Builtins.lc 510:34-510:69 Type testdata/Builtins.lc 510:34-510:37 'Nat -> Type->Type -testdata/Builtins.lc 510:34-510:69 'Nat -testdata/Builtins.lc 510:34-510:69 V5 -testdata/Builtins.lc 510:34-510:69 V3 +testdata/Builtins.lc 510:38-510:39 'Nat +testdata/Builtins.lc 510:38-510:39 V5 +testdata/Builtins.lc 510:40-510:41 Type +testdata/Builtins.lc 510:40-510:41 V3 +testdata/Builtins.lc 510:47-510:69 Type testdata/Builtins.lc 510:47-510:50 'Nat -> Type->Type -testdata/Builtins.lc 510:34-510:69 V2 +testdata/Builtins.lc 510:51-510:52 'Nat +testdata/Builtins.lc 510:51-510:52 V2 +testdata/Builtins.lc 510:53-510:54 Type +testdata/Builtins.lc 510:60-510:69 Type testdata/Builtins.lc 510:60-510:63 'Nat -> 'Nat -> Type->Type +testdata/Builtins.lc 510:64-510:65 'Nat +testdata/Builtins.lc 510:66-510:67 'Nat +testdata/Builtins.lc 510:68-510:69 Type testdata/Builtins.lc 510:1-510:17 {a:'Nat} -> {b} -> {c:'Nat} -> 'VecS b a -> 'VecS b c -> 'Mat c a b testdata/Builtins.lc 511:34-511:67 Type testdata/Builtins.lc 511:34-511:37 'Nat -> 'Nat -> Type->Type -testdata/Builtins.lc 511:34-511:67 'Nat -testdata/Builtins.lc 511:34-511:67 V5 -testdata/Builtins.lc 511:34-511:67 V3 -testdata/Builtins.lc 511:34-511:67 V1 +testdata/Builtins.lc 511:38-511:39 'Nat +testdata/Builtins.lc 511:38-511:39 V5 +testdata/Builtins.lc 511:40-511:41 'Nat +testdata/Builtins.lc 511:40-511:41 V3 +testdata/Builtins.lc 511:42-511:43 Type +testdata/Builtins.lc 511:42-511:43 V1 +testdata/Builtins.lc 511:47-511:67 Type testdata/Builtins.lc 511:47-511:50 'Nat -> Type->Type +testdata/Builtins.lc 511:51-511:52 'Nat +testdata/Builtins.lc 511:53-511:54 Type +testdata/Builtins.lc 511:60-511:67 Type testdata/Builtins.lc 511:60-511:63 'Nat -> Type->Type +testdata/Builtins.lc 511:64-511:65 'Nat +testdata/Builtins.lc 511:66-511:67 Type testdata/Builtins.lc 511:1-511:14 {a:'Nat} -> {b:'Nat} -> {c} -> 'Mat a b c -> 'VecS c b -> 'VecS c a testdata/Builtins.lc 512:34-512:67 Type testdata/Builtins.lc 512:34-512:37 'Nat -> Type->Type -testdata/Builtins.lc 512:34-512:67 'Nat -testdata/Builtins.lc 512:34-512:67 V5 -testdata/Builtins.lc 512:34-512:67 V3 +testdata/Builtins.lc 512:38-512:39 'Nat +testdata/Builtins.lc 512:38-512:39 V5 +testdata/Builtins.lc 512:40-512:41 Type +testdata/Builtins.lc 512:40-512:41 V3 +testdata/Builtins.lc 512:47-512:67 Type testdata/Builtins.lc 512:47-512:50 'Nat -> 'Nat -> Type->Type -testdata/Builtins.lc 512:34-512:67 V2 +testdata/Builtins.lc 512:51-512:52 'Nat +testdata/Builtins.lc 512:53-512:54 'Nat +testdata/Builtins.lc 512:53-512:54 V2 +testdata/Builtins.lc 512:55-512:56 Type +testdata/Builtins.lc 512:60-512:67 Type testdata/Builtins.lc 512:60-512:63 'Nat -> Type->Type +testdata/Builtins.lc 512:64-512:65 'Nat +testdata/Builtins.lc 512:66-512:67 Type testdata/Builtins.lc 512:1-512:14 {a:'Nat} -> {b} -> {c:'Nat} -> 'VecS b a -> 'Mat a c b -> 'VecS b c testdata/Builtins.lc 513:34-513:69 Type testdata/Builtins.lc 513:34-513:37 'Nat -> 'Nat -> Type->Type -testdata/Builtins.lc 513:34-513:69 'Nat -testdata/Builtins.lc 513:34-513:69 V7 -testdata/Builtins.lc 513:34-513:69 V5 -testdata/Builtins.lc 513:34-513:69 V3 +testdata/Builtins.lc 513:38-513:39 'Nat +testdata/Builtins.lc 513:38-513:39 V7 +testdata/Builtins.lc 513:40-513:41 'Nat +testdata/Builtins.lc 513:40-513:41 V5 +testdata/Builtins.lc 513:42-513:43 Type +testdata/Builtins.lc 513:42-513:43 V3 +testdata/Builtins.lc 513:47-513:69 Type testdata/Builtins.lc 513:47-513:50 'Nat -> 'Nat -> Type->Type -testdata/Builtins.lc 513:34-513:69 V2 +testdata/Builtins.lc 513:51-513:52 'Nat +testdata/Builtins.lc 513:53-513:54 'Nat +testdata/Builtins.lc 513:53-513:54 V2 +testdata/Builtins.lc 513:55-513:56 Type +testdata/Builtins.lc 513:60-513:69 Type testdata/Builtins.lc 513:60-513:63 'Nat -> 'Nat -> Type->Type +testdata/Builtins.lc 513:64-513:65 'Nat +testdata/Builtins.lc 513:66-513:67 'Nat +testdata/Builtins.lc 513:68-513:69 Type testdata/Builtins.lc 513:1-513:14 {a:'Nat} -> {b:'Nat} -> {c} -> {d:'Nat} -> 'Mat a b c -> 'Mat b d c -> 'Mat a d c testdata/Builtins.lc 516:35-516:97 Type testdata/Builtins.lc 516:35-516:38 Type->Type -testdata/Builtins.lc 516:35-516:97 V7 -testdata/Builtins.lc 516:35-516:97 V6 +testdata/Builtins.lc 516:39-516:40 Type +testdata/Builtins.lc 516:39-516:40 V7 +testdata/Builtins.lc 516:42-516:97 Type +testdata/Builtins.lc 516:42-516:43 Type +testdata/Builtins.lc 516:42-516:43 V6 +testdata/Builtins.lc 516:46-516:59 Type testdata/Builtins.lc 516:46-516:55 'Nat -> Type->Type -testdata/Builtins.lc 516:35-516:97 'Nat -testdata/Builtins.lc 516:35-516:97 V4 -testdata/Builtins.lc 516:35-516:97 V3 +testdata/Builtins.lc 516:56-516:57 'Nat +testdata/Builtins.lc 516:56-516:57 V4 +testdata/Builtins.lc 516:58-516:59 Type +testdata/Builtins.lc 516:61-516:97 Type +testdata/Builtins.lc 516:61-516:62 Type +testdata/Builtins.lc 516:61-516:62 V3 +testdata/Builtins.lc 516:65-516:81 Type testdata/Builtins.lc 516:65-516:74 'Nat -> Type->Type +testdata/Builtins.lc 516:75-516:76 'Nat testdata/Builtins.lc 516:77-516:81 Type +testdata/Builtins.lc 516:86-516:97 Type +testdata/Builtins.lc 516:86-516:87 Type +testdata/Builtins.lc 516:91-516:97 Type +testdata/Builtins.lc 516:91-516:92 Type +testdata/Builtins.lc 516:96-516:97 Type testdata/Builtins.lc 515:1-515:13 {a} -> {b} -> {c:'Nat} -> {d} -> {e : 'Num a} -> {f : b ~ 'VecScalar c a} -> {g : d ~ 'VecScalar c 'Bool} -> b -> b->d testdata/Builtins.lc 515:15-515:32 {a} -> {b} -> {c:'Nat} -> {d} -> {e : 'Num a} -> {f : b ~ 'VecScalar c a} -> {g : d ~ 'VecScalar c 'Bool} -> b -> b->d testdata/Builtins.lc 515:34-515:49 {a} -> {b} -> {c:'Nat} -> {d} -> {e : 'Num a} -> {f : b ~ 'VecScalar c a} -> {g : d ~ 'VecScalar c 'Bool} -> b -> b->d @@ -1984,32 +2599,44 @@ testdata/Builtins.lc 515:51-515:71 {a} -> {b} -> {c:'Nat} -> {d} -> {e : 'Num a testdata/Builtins.lc 515:73-515:83 {a} -> {b} -> {c:'Nat} -> {d} -> {e : 'Num a} -> {f : b ~ 'VecScalar c a} -> {g : d ~ 'VecScalar c 'Bool} -> b -> b->d testdata/Builtins.lc 515:85-515:98 {a} -> {b} -> {c:'Nat} -> {d} -> {e : 'Num a} -> {f : b ~ 'VecScalar c a} -> {g : d ~ 'VecScalar c 'Bool} -> b -> b->d testdata/Builtins.lc 517:35-517:76 Type -testdata/Builtins.lc 517:35-517:76 V3 +testdata/Builtins.lc 517:35-517:36 Type +testdata/Builtins.lc 517:35-517:36 V3 +testdata/Builtins.lc 517:39-517:57 Type testdata/Builtins.lc 517:39-517:55 Type->Type -testdata/Builtins.lc 517:35-517:76 V1 +testdata/Builtins.lc 517:56-517:57 Type +testdata/Builtins.lc 517:56-517:57 V1 +testdata/Builtins.lc 517:62-517:76 Type +testdata/Builtins.lc 517:62-517:63 Type +testdata/Builtins.lc 517:67-517:76 Type +testdata/Builtins.lc 517:67-517:68 Type testdata/Builtins.lc 517:72-517:76 Type testdata/Builtins.lc 517:1-517:10 {a} -> {b} -> {c : a ~ 'MatVecScalarElem b} -> b -> b->'Bool testdata/Builtins.lc 517:12-517:24 {a} -> {b} -> {c : a ~ 'MatVecScalarElem b} -> b -> b->'Bool testdata/Builtins.lc 520:35-520:67 Type -testdata/Builtins.lc 520:35-520:67 V3 +testdata/Builtins.lc 520:35-520:36 Type +testdata/Builtins.lc 520:35-520:36 V3 +testdata/Builtins.lc 520:39-520:56 Type testdata/Builtins.lc 520:39-520:48 'Nat -> Type->Type -testdata/Builtins.lc 520:35-520:67 'Nat -testdata/Builtins.lc 520:35-520:67 V1 +testdata/Builtins.lc 520:49-520:50 'Nat +testdata/Builtins.lc 520:49-520:50 V1 testdata/Builtins.lc 520:51-520:56 Type +testdata/Builtins.lc 520:61-520:67 Type +testdata/Builtins.lc 520:61-520:62 Type +testdata/Builtins.lc 520:66-520:67 Type testdata/Builtins.lc 519:1-519:9 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> a->a testdata/Builtins.lc 519:11-519:19 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> a->a testdata/Builtins.lc 519:21-519:31 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> a->a testdata/Builtins.lc 522:34-522:60 Type testdata/Builtins.lc 522:34-522:43 'Nat -> Type->Type -testdata/Builtins.lc 522:34-522:60 'Nat -testdata/Builtins.lc 522:34-522:60 V1 +testdata/Builtins.lc 522:44-522:45 'Nat +testdata/Builtins.lc 522:44-522:45 V1 testdata/Builtins.lc 522:46-522:51 Type testdata/Builtins.lc 522:55-522:60 Type testdata/Builtins.lc 522:1-522:11 {a:'Nat} -> 'VecScalar a 'Float -> 'Float testdata/Builtins.lc 523:34-523:66 Type testdata/Builtins.lc 523:34-523:43 'Nat -> Type->Type -testdata/Builtins.lc 523:34-523:66 'Nat -testdata/Builtins.lc 523:34-523:66 V1 +testdata/Builtins.lc 523:44-523:45 'Nat +testdata/Builtins.lc 523:44-523:45 V1 testdata/Builtins.lc 523:46-523:51 Type testdata/Builtins.lc 523:55-523:66 Type testdata/Builtins.lc 523:55-523:58 'Nat -> Type->Type @@ -2017,8 +2644,8 @@ testdata/Builtins.lc 523:61-523:66 Type testdata/Builtins.lc 523:1-523:11 {a:'Nat} -> 'VecScalar a 'Float -> 'VecS 'Float (Succ (Succ Zero)) testdata/Builtins.lc 524:34-524:66 Type testdata/Builtins.lc 524:34-524:43 'Nat -> Type->Type -testdata/Builtins.lc 524:34-524:66 'Nat -testdata/Builtins.lc 524:34-524:66 V1 +testdata/Builtins.lc 524:44-524:45 'Nat +testdata/Builtins.lc 524:44-524:45 V1 testdata/Builtins.lc 524:46-524:51 Type testdata/Builtins.lc 524:55-524:66 Type testdata/Builtins.lc 524:55-524:58 'Nat -> Type->Type @@ -2026,8 +2653,8 @@ testdata/Builtins.lc 524:61-524:66 Type testdata/Builtins.lc 524:1-524:11 {a:'Nat} -> 'VecScalar a 'Float -> 'VecS 'Float (Succ (Succ (Succ Zero))) testdata/Builtins.lc 525:34-525:66 Type testdata/Builtins.lc 525:34-525:43 'Nat -> Type->Type -testdata/Builtins.lc 525:34-525:66 'Nat -testdata/Builtins.lc 525:34-525:66 V1 +testdata/Builtins.lc 525:44-525:45 'Nat +testdata/Builtins.lc 525:44-525:45 V1 testdata/Builtins.lc 525:46-525:51 Type testdata/Builtins.lc 525:55-525:66 Type testdata/Builtins.lc 525:55-525:58 'Nat -> Type->Type @@ -2070,22 +2697,42 @@ testdata/Builtins.lc 561:40-561:43 'Nat -> Type->Type testdata/Builtins.lc 561:46-561:51 Type testdata/Builtins.lc 561:1-561:10 'Sampler -> 'VecS 'Float (Succ (Succ Zero)) -> 'VecS 'Float (Succ (Succ (Succ (Succ Zero)))) testdata/Builtins.lc 564:30-564:45 {a} -> {b} -> (a -> 'Stream b) -> 'Stream a -> 'Stream b -testdata/Builtins.lc 564:47-564:66 V1 -> 'Stream V1 +testdata/Builtins.lc 564:47-564:74 V1 -> 'Stream V1 testdata/Builtins.lc 564:47-564:57 {a} -> {b} -> {c} -> {d:'PrimitiveType} -> {e : a ~ 'InterpolatedType b} -> {f : c ~ 'JoinTupleType ('VecS 'Float (Succ (Succ (Succ (Succ Zero))))) a} -> c->'Float -> b -> 'RasterContext d -> 'Primitive d c -> 'Stream ('Fragment (Succ Zero) a) testdata/Builtins.lc 564:59-564:66 'JoinTupleType ('VecS 'Float (Succ (Succ (Succ (Succ Zero))))) ('InterpolatedType V1) -> 'Float testdata/Builtins.lc 564:65-564:66 'Float testdata/Builtins.lc 564:65-564:66 'Int +testdata/Builtins.lc 564:68-564:70 V1 +testdata/Builtins.lc 564:68-564:70 V5 +testdata/Builtins.lc 564:71-564:74 'RasterContext V0 +testdata/Builtins.lc 564:71-564:74 V4 testdata/Builtins.lc 564:1-564:20 {a} -> {b:'PrimitiveType} -> 'RasterContext b -> a -> 'Stream ('Primitive b ('JoinTupleType ('VecS 'Float (Succ (Succ (Succ (Succ Zero))))) ('InterpolatedType a))) -> 'Stream ('Fragment (Succ Zero) ('InterpolatedType a)) testdata/Builtins.lc 565:46-565:61 {a} -> {b} -> (a -> 'Stream b) -> 'Stream a -> 'Stream b -testdata/Builtins.lc 565:63-565:73 V1 -> 'Stream V1 +testdata/Builtins.lc 565:63-565:83 V1 -> 'Stream V1 testdata/Builtins.lc 565:63-565:73 {a} -> {b} -> {c} -> {d:'PrimitiveType} -> {e : a ~ 'InterpolatedType b} -> {f : c ~ 'JoinTupleType ('VecS 'Float (Succ (Succ (Succ (Succ Zero))))) a} -> c->'Float -> b -> 'RasterContext d -> 'Primitive d c -> 'Stream ('Fragment (Succ Zero) a) +testdata/Builtins.lc 565:74-565:76 'JoinTupleType ('VecS 'Float (Succ (Succ (Succ (Succ Zero))))) ('InterpolatedType V1) -> 'Float +testdata/Builtins.lc 565:74-565:76 V7 +testdata/Builtins.lc 565:77-565:79 V1 +testdata/Builtins.lc 565:77-565:79 V5 +testdata/Builtins.lc 565:80-565:83 'RasterContext V0 +testdata/Builtins.lc 565:80-565:83 V5 testdata/Builtins.lc 565:1-565:33 {a} -> {b:'PrimitiveType} -> 'RasterContext b -> ('JoinTupleType ('VecS 'Float (Succ (Succ (Succ (Succ Zero))))) ('InterpolatedType a) -> 'Float) -> a -> 'Stream ('Primitive b ('JoinTupleType ('VecS 'Float (Succ (Succ (Succ (Succ Zero))))) ('InterpolatedType a))) -> 'Stream ('Fragment (Succ Zero) ('InterpolatedType a)) testdata/Builtins.lc 566:24-566:32 {a} -> {b} -> a -> b -> 'Tuple2 a b +testdata/Builtins.lc 566:25-566:28 V1 +testdata/Builtins.lc 566:25-566:28 V5 +testdata/Builtins.lc 566:30-566:31 V0 +testdata/Builtins.lc 566:30-566:31 V2 testdata/Builtins.lc 566:1-566:15 {a} -> {b} -> a -> b -> 'Tuple2 a b -testdata/Builtins.lc 567:25-567:35 V2 -> V2->V2 -testdata/Builtins.lc 567:25-567:35 V2->V2 -testdata/Builtins.lc 567:25-567:35 V2 +testdata/Builtins.lc 567:25-567:46 V2 -> V2->V2 +testdata/Builtins.lc 567:25-567:46 V2->V2 +testdata/Builtins.lc 567:25-567:46 V2 testdata/Builtins.lc 567:25-567:35 {a:'Nat} -> {b} -> 'FragOps' b -> 'Stream ('Fragment a ('RemSemantics b)) -> 'FrameBuffer a b -> 'FrameBuffer a b +testdata/Builtins.lc 567:36-567:39 'FragOps' V0 +testdata/Builtins.lc 567:36-567:39 V6 +testdata/Builtins.lc 567:40-567:43 'Stream ('Fragment V1 ('RemSemantics V0)) +testdata/Builtins.lc 567:40-567:43 V5 +testdata/Builtins.lc 567:44-567:46 'FrameBuffer V1 V0 +testdata/Builtins.lc 567:44-567:46 V7 testdata/Builtins.lc 567:13-567:21 'Tuple2 ('FragOps' V0) ('Stream ('Fragment V1 ('RemSemantics V0))) testdata/Builtins.lc 567:13-567:21 V3 testdata/Builtins.lc 567:1-567:8 {a:'Nat} -> {b} -> 'FrameBuffer a b -> 'Tuple2 ('FragOps' b) ('Stream ('Fragment a ('RemSemantics b))) -> 'FrameBuffer a b diff --git a/testdata/Internals.out b/testdata/Internals.out index 5f6cd3ab..06279002 100644 --- a/testdata/Internals.out +++ b/testdata/Internals.out @@ -137,12 +137,19 @@ testdata/Internals.lc 57:33-57:36 Type testdata/Internals.lc 57:1-57:10 'Float->'Int testdata/Internals.lc 60:19-60:38 Type testdata/Internals.lc 60:19-60:23 Type -testdata/Internals.lc 60:19-60:38 V2 -testdata/Internals.lc 61:16-61:20 {a} -> 'Bool -> a -> a->a -testdata/Internals.lc 61:16-61:20 'Bool -> V1 -> V2->V3 -testdata/Internals.lc 61:16-61:20 V1 -> V2->V3 -testdata/Internals.lc 61:16-61:20 V2->V3 -testdata/Internals.lc 61:16-61:20 V3 +testdata/Internals.lc 60:27-60:38 Type +testdata/Internals.lc 60:27-60:28 V2 +testdata/Internals.lc 60:32-60:38 Type +testdata/Internals.lc 60:32-60:33 Type +testdata/Internals.lc 60:37-60:38 Type +testdata/Internals.lc 61:16-62:29 {a} -> 'Bool -> a -> a->a +testdata/Internals.lc 61:16-62:29 'Bool -> V1 -> V2->V3 +testdata/Internals.lc 61:16-62:29 V1 -> V2->V3 +testdata/Internals.lc 61:16-62:29 V2->V3 +testdata/Internals.lc 61:16-62:29 V3 +testdata/Internals.lc 62:28-62:29 V0 +testdata/Internals.lc 62:28-62:29 V4 +testdata/Internals.lc 61:28-61:29 V3 testdata/Internals.lc 61:16-61:20 'Bool testdata/Internals.lc 61:1-61:15 {a} -> 'Bool -> a -> a->a testdata/Internals.lc 70:10-78:19 Type->Type diff --git a/testdata/Prelude.out b/testdata/Prelude.out index 1bd76ab0..ed18d218 100644 --- a/testdata/Prelude.out +++ b/testdata/Prelude.out @@ -1,8 +1,11 @@ main is not found tooltips: +testdata/Prelude.lc 16:13-16:14 V3 testdata/Prelude.lc 16:1-16:6 {a} -> {b} -> a -> b->a testdata/Prelude.lc 18:13-18:17 'Bool testdata/Prelude.lc 18:1-18:10 'Bool +testdata/Prelude.lc 20:9-20:10 V1 +testdata/Prelude.lc 20:11-20:12 V6 testdata/Prelude.lc 20:3-20:4 {a} -> {b} -> a -> a->b -> b testdata/Prelude.lc 22:15-22:16 V3 testdata/Prelude.lc 22:17-22:18 V4 @@ -11,6 +14,12 @@ testdata/Prelude.lc 23:17-23:18 V5 testdata/Prelude.lc 23:20-23:21 V6 testdata/Prelude.lc 23:22-23:23 V7 testdata/Prelude.lc 23:1-23:4 {a} -> {b} -> {c} -> b->c -> a->b -> a->c +testdata/Prelude.lc 25:20-25:25 V2 -> V2->V2 +testdata/Prelude.lc 25:20-25:25 V2->V2 +testdata/Prelude.lc 25:20-25:25 V2 +testdata/Prelude.lc 25:20-25:21 V8 +testdata/Prelude.lc 25:22-25:23 V7 +testdata/Prelude.lc 25:24-25:25 V7 testdata/Prelude.lc 25:12-25:16 'Tuple2 V2 V1 testdata/Prelude.lc 25:12-25:16 V4 testdata/Prelude.lc 25:1-25:8 {a} -> {b} -> {c} -> (a -> b->c) -> 'Tuple2 a b -> c @@ -18,37 +27,67 @@ testdata/Prelude.lc 27:20-27:30 V2 -> V2->V2 testdata/Prelude.lc 27:20-27:30 V2->V2 testdata/Prelude.lc 27:20-27:30 V2 testdata/Prelude.lc 27:20-27:30 {a} -> {b} -> a -> b -> 'Tuple2 a b +testdata/Prelude.lc 27:21-27:24 V1 +testdata/Prelude.lc 27:21-27:22 V12 +testdata/Prelude.lc 27:23-27:24 V9 +testdata/Prelude.lc 27:26-27:29 V0 +testdata/Prelude.lc 27:26-27:27 V9 +testdata/Prelude.lc 27:28-27:29 V7 testdata/Prelude.lc 27:12-27:16 'Tuple2 V3 V2 testdata/Prelude.lc 27:12-27:16 V5 testdata/Prelude.lc 27:1-27:6 {a} -> {b} -> {c} -> {d} -> a->c -> b->d -> 'Tuple2 a b -> 'Tuple2 c d testdata/Prelude.lc 29:6-29:10 'Float testdata/Prelude.lc 29:1-29:3 'Float testdata/Prelude.lc 32:1-32:4 {a} -> a->a -> a -testdata/Prelude.lc 31:8-34:28 V0->V1 -testdata/Prelude.lc 31:8-34:28 V1 +testdata/Prelude.lc 31:8-34:39 V0->V1 +testdata/Prelude.lc 31:8-34:39 V1 testdata/Prelude.lc 31:8-31:29 Type -testdata/Prelude.lc 31:8-31:29 V3 -testdata/Prelude.lc 31:8-31:29 V2 +testdata/Prelude.lc 31:9-31:10 Type +testdata/Prelude.lc 31:9-31:10 V3 +testdata/Prelude.lc 31:15-31:29 Type +testdata/Prelude.lc 31:16-31:17 Type +testdata/Prelude.lc 31:16-31:17 V2 +testdata/Prelude.lc 31:22-31:29 Type +testdata/Prelude.lc 31:23-31:28 Type testdata/Prelude.lc 31:23-31:28 Type -> Type->Type -testdata/Prelude.lc 34:23-34:28 {a} -> {b} -> 'List a -> 'List b -> 'List ('Tuple2 a b) -testdata/Prelude.lc 34:23-34:28 {a} -> 'List V1 -> 'List a -> 'List ('Tuple2 V3 a) -testdata/Prelude.lc 34:23-34:28 'List V1 -> 'List V1 -> 'List ('Tuple2 V3 V2) -testdata/Prelude.lc 34:23-34:28 'List V1 -> 'List ('Tuple2 V3 V2) -testdata/Prelude.lc 34:23-34:28 'List ('Tuple2 V3 V2) -testdata/Prelude.lc 34:23-34:28 V1 -> 'List V2 -> 'List V2 -testdata/Prelude.lc 34:23-34:28 'List V2 -> 'List V2 -testdata/Prelude.lc 34:23-34:28 'List V2 +testdata/Prelude.lc 31:24-31:25 Type +testdata/Prelude.lc 31:26-31:27 Type +testdata/Prelude.lc 34:23-34:39 {a} -> {b} -> 'List a -> 'List b -> 'List ('Tuple2 a b) +testdata/Prelude.lc 34:23-34:39 {a} -> 'List V1 -> 'List a -> 'List ('Tuple2 V3 a) +testdata/Prelude.lc 34:23-34:39 'List V1 -> 'List V1 -> 'List ('Tuple2 V3 V2) +testdata/Prelude.lc 34:23-34:39 'List V1 -> 'List ('Tuple2 V3 V2) +testdata/Prelude.lc 34:23-34:39 'List ('Tuple2 V3 V2) +testdata/Prelude.lc 34:23-34:39 V1 -> 'List V2 -> 'List V2 +testdata/Prelude.lc 34:23-34:39 'List V2 -> 'List V2 +testdata/Prelude.lc 34:23-34:39 'List V2 testdata/Prelude.lc 34:23-34:28 V0 testdata/Prelude.lc 34:23-34:28 {a} -> {b} -> a -> b -> 'Tuple2 a b +testdata/Prelude.lc 34:24-34:25 V1 +testdata/Prelude.lc 34:24-34:25 V10 +testdata/Prelude.lc 34:26-34:27 V0 +testdata/Prelude.lc 34:26-34:27 V4 +testdata/Prelude.lc 34:30-34:39 'List ('Tuple2 V6 V2) +testdata/Prelude.lc 34:30-34:33 {a} -> {b} -> 'List a -> 'List b -> 'List ('Tuple2 a b) +testdata/Prelude.lc 34:34-34:36 'List V1 +testdata/Prelude.lc 34:34-34:36 'List V8 +testdata/Prelude.lc 34:37-34:39 'List V2 testdata/Prelude.lc 32:1-32:4 {a} -> {b} -> 'List a -> 'List b -> 'List ('Tuple2 a b) testdata/Prelude.lc 37:1-37:6 {a} -> a->a -> a testdata/Prelude.lc 36:10-39:27 V0->V1 testdata/Prelude.lc 36:10-39:27 V1 testdata/Prelude.lc 36:10-36:30 Type +testdata/Prelude.lc 36:11-36:16 Type testdata/Prelude.lc 36:11-36:16 Type -> Type->Type -testdata/Prelude.lc 36:10-36:30 V3 -testdata/Prelude.lc 36:10-36:30 V1 +testdata/Prelude.lc 36:12-36:13 Type +testdata/Prelude.lc 36:12-36:13 V3 +testdata/Prelude.lc 36:14-36:15 Type +testdata/Prelude.lc 36:14-36:15 V1 +testdata/Prelude.lc 36:21-36:30 Type testdata/Prelude.lc 36:21-36:30 Type -> Type->Type +testdata/Prelude.lc 36:22-36:25 Type +testdata/Prelude.lc 36:23-36:24 Type +testdata/Prelude.lc 36:26-36:29 Type +testdata/Prelude.lc 36:27-36:28 Type testdata/Prelude.lc 37:12-39:27 {a} -> {b} -> 'List ('Tuple2 a b) -> 'Tuple2 ('List a) ('List b) testdata/Prelude.lc 37:12-39:27 {a} -> 'List ('Tuple2 V1 a) -> 'Tuple2 ('List V2) ('List a) testdata/Prelude.lc 37:12-39:27 'List ('Tuple2 V1 V0) -> 'Tuple2 ('List V2) ('List V1) @@ -65,11 +104,16 @@ testdata/Prelude.lc 38:20-38:31 V2 -> V2->V2 testdata/Prelude.lc 38:20-38:31 V2->V2 testdata/Prelude.lc 38:20-38:31 V2 testdata/Prelude.lc 38:20-38:31 {a} -> {b} -> a -> b -> 'Tuple2 a b -testdata/Prelude.lc 38:20-38:31 V1 -testdata/Prelude.lc 38:20-38:31 'List V12 -testdata/Prelude.lc 38:20-38:31 V5 -testdata/Prelude.lc 38:20-38:31 V0 -testdata/Prelude.lc 38:20-38:31 'List V8 +testdata/Prelude.lc 38:21-38:25 V1 +testdata/Prelude.lc 38:21-38:22 V0 +testdata/Prelude.lc 38:21-38:22 V14 +testdata/Prelude.lc 38:23-38:25 'List V12 +testdata/Prelude.lc 38:23-38:25 V5 +testdata/Prelude.lc 38:26-38:30 V0 +testdata/Prelude.lc 38:26-38:27 V0 +testdata/Prelude.lc 38:26-38:27 V10 +testdata/Prelude.lc 38:28-38:30 'List V8 +testdata/Prelude.lc 38:28-38:30 V2 testdata/Prelude.lc 39:10-39:15 'Tuple2 ('List V6) ('List V5) testdata/Prelude.lc 39:10-39:15 V1 testdata/Prelude.lc 39:19-39:27 'Tuple2 ('List V3) ('List V2) @@ -78,58 +122,145 @@ testdata/Prelude.lc 39:25-39:27 'List ('Tuple2 V1 V0) testdata/Prelude.lc 39:25-39:27 'List V10 testdata/Prelude.lc 37:1-37:6 {a} -> {b} -> 'List ('Tuple2 a b) -> 'Tuple2 ('List a) ('List b) testdata/Prelude.lc 41:1-41:7 {a} -> a->a -> a -testdata/Prelude.lc 43:24-43:28 V0->V1 -testdata/Prelude.lc 43:24-43:28 V1 -testdata/Prelude.lc 43:24-43:28 V1 -> 'List V2 -> 'List V2 -testdata/Prelude.lc 43:24-43:28 'List V2 -> 'List V2 -testdata/Prelude.lc 43:24-43:28 'List V2 +testdata/Prelude.lc 42:27-44:48 V0->V1 +testdata/Prelude.lc 42:27-44:48 V1 +testdata/Prelude.lc 42:27-44:48 V1 -> 'List V2 -> 'List V2 +testdata/Prelude.lc 42:27-44:48 'List V2 -> 'List V2 +testdata/Prelude.lc 42:27-44:48 'List V2 +testdata/Prelude.lc 44:34-44:48 V0 +testdata/Prelude.lc 44:34-44:40 V12 +testdata/Prelude.lc 44:41-44:45 V13 +testdata/Prelude.lc 44:46-44:48 'List V10 +testdata/Prelude.lc 43:33-43:51 V0 +testdata/Prelude.lc 43:33-43:34 V0 +testdata/Prelude.lc 43:33-43:34 V7 +testdata/Prelude.lc 43:37-43:51 'List V5 +testdata/Prelude.lc 43:37-43:43 V9 -> 'List V6 -> 'List V7 +testdata/Prelude.lc 43:44-43:48 V9 +testdata/Prelude.lc 43:49-43:51 'List V5 testdata/Prelude.lc 43:24-43:28 'Bool +testdata/Prelude.lc 43:24-43:28 V1 +testdata/Prelude.lc 42:27-42:33 'Bool +testdata/Prelude.lc 42:27-42:31 V6 +testdata/Prelude.lc 42:32-42:33 V5 testdata/Prelude.lc 41:1-41:7 {a} -> a->'Bool -> 'List a -> 'List a testdata/Prelude.lc 46:9-46:17 Type -testdata/Prelude.lc 46:9-46:17 V1 -testdata/Prelude.lc 47:7-47:11 {a} -> 'List a -> a -testdata/Prelude.lc 47:7-47:11 'List V0 -> V1 -testdata/Prelude.lc 47:7-47:11 V1 +testdata/Prelude.lc 46:10-46:11 Type +testdata/Prelude.lc 46:10-46:11 V1 +testdata/Prelude.lc 46:16-46:17 Type +testdata/Prelude.lc 47:7-47:16 {a} -> 'List a -> a +testdata/Prelude.lc 47:7-47:16 'List V0 -> V1 +testdata/Prelude.lc 47:7-47:16 V1 +testdata/Prelude.lc 47:15-47:16 V1 -> 'List V2 -> V2 +testdata/Prelude.lc 47:15-47:16 'List V2 -> V2 +testdata/Prelude.lc 47:15-47:16 V2 +testdata/Prelude.lc 47:15-47:16 V3 testdata/Prelude.lc 47:7-47:11 'List V1 testdata/Prelude.lc 47:1-47:5 {a} -> 'List a -> a testdata/Prelude.lc 49:9-49:19 Type -testdata/Prelude.lc 49:9-49:19 V1 -testdata/Prelude.lc 50:7-50:12 {a} -> 'List a -> 'List a -testdata/Prelude.lc 50:7-50:12 'List V0 -> 'List V1 +testdata/Prelude.lc 49:10-49:11 Type +testdata/Prelude.lc 49:10-49:11 V1 +testdata/Prelude.lc 49:16-49:19 Type +testdata/Prelude.lc 49:17-49:18 Type +testdata/Prelude.lc 50:7-50:18 {a} -> 'List a -> 'List a +testdata/Prelude.lc 50:7-50:18 'List V0 -> 'List V1 +testdata/Prelude.lc 50:7-50:18 'List V1 +testdata/Prelude.lc 50:16-50:18 V1 -> 'List V2 -> V2 +testdata/Prelude.lc 50:16-50:18 'List V2 -> V2 +testdata/Prelude.lc 50:16-50:18 V2 +testdata/Prelude.lc 50:16-50:18 'List V3 testdata/Prelude.lc 50:7-50:12 'List V1 testdata/Prelude.lc 50:1-50:5 {a} -> 'List a -> 'List a testdata/Prelude.lc 52:10-52:25 Type -testdata/Prelude.lc 52:10-52:25 V1 +testdata/Prelude.lc 52:11-52:12 Type +testdata/Prelude.lc 52:11-52:12 V1 +testdata/Prelude.lc 52:17-52:25 Type +testdata/Prelude.lc 52:18-52:24 Type testdata/Prelude.lc 52:18-52:24 Type -> Type->Type -testdata/Prelude.lc 53:11-53:22 {a} -> 'List a -> 'List ('Tuple2 a a) -testdata/Prelude.lc 53:11-53:22 'List V0 -> 'List ('Tuple2 V1 V1) -testdata/Prelude.lc 53:11-53:22 'List ('Tuple2 V1 V1) +testdata/Prelude.lc 52:19-52:20 Type +testdata/Prelude.lc 52:22-52:23 Type +testdata/Prelude.lc 53:11-53:24 {a} -> 'List a -> 'List ('Tuple2 a a) +testdata/Prelude.lc 53:11-53:24 'List V0 -> 'List ('Tuple2 V1 V1) +testdata/Prelude.lc 53:11-53:24 'List ('Tuple2 V1 V1) testdata/Prelude.lc 53:11-53:14 {a} -> {b} -> 'List a -> 'List b -> 'List ('Tuple2 a b) -testdata/Prelude.lc 53:18-53:22 'List V1 +testdata/Prelude.lc 53:15-53:16 'List V1 +testdata/Prelude.lc 53:15-53:16 'List V3 +testdata/Prelude.lc 53:18-53:24 'List V1 testdata/Prelude.lc 53:18-53:22 {a} -> 'List a -> 'List a +testdata/Prelude.lc 53:23-53:24 'List V0 +testdata/Prelude.lc 53:23-53:24 'List V2 testdata/Prelude.lc 53:1-53:6 {a} -> 'List a -> 'List ('Tuple2 a a) testdata/Prelude.lc 55:1-55:7 {a} -> a->a -> a +testdata/Prelude.lc 55:17-56:41 V0->V1 +testdata/Prelude.lc 55:17-56:41 V1 +testdata/Prelude.lc 55:17-55:18 V0 +testdata/Prelude.lc 55:17-55:18 V5 +testdata/Prelude.lc 56:22-56:41 V0 -> 'List V1 -> V6 +testdata/Prelude.lc 56:22-56:41 'List V1 -> V6 +testdata/Prelude.lc 56:22-56:41 V6 +testdata/Prelude.lc 56:22-56:28 V10 +testdata/Prelude.lc 56:29-56:30 V11 +testdata/Prelude.lc 56:32-56:33 V12 +testdata/Prelude.lc 56:34-56:35 V13 +testdata/Prelude.lc 56:36-56:37 V10 +testdata/Prelude.lc 56:39-56:41 'List V7 testdata/Prelude.lc 55:1-55:7 {a} -> {b} -> (a -> b->a) -> a -> 'List b -> a +testdata/Prelude.lc 58:16-58:17 V0 +testdata/Prelude.lc 58:16-58:17 V2 testdata/Prelude.lc 58:1-58:10 {a} -> a -> 'List a testdata/Prelude.lc 60:1-60:7 {a} -> a->a -> a +testdata/Prelude.lc 60:20-61:36 V0->V1 +testdata/Prelude.lc 60:20-61:36 V1 +testdata/Prelude.lc 60:20-60:22 V0 +testdata/Prelude.lc 60:20-60:22 V3 +testdata/Prelude.lc 61:20-61:36 V0 -> 'List V1 -> V4 +testdata/Prelude.lc 61:20-61:36 'List V1 -> V4 +testdata/Prelude.lc 61:20-61:36 V4 +testdata/Prelude.lc 61:20-61:21 V0 +testdata/Prelude.lc 61:20-61:21 V3 +testdata/Prelude.lc 61:24-61:36 'List V2 +testdata/Prelude.lc 61:24-61:30 V7 +testdata/Prelude.lc 61:31-61:33 'List V5 +testdata/Prelude.lc 61:34-61:36 'List V6 testdata/Prelude.lc 60:1-60:7 {a} -> 'List a -> 'List a -> 'List a testdata/Prelude.lc 63:10-63:16 {a} -> {b} -> (a -> b->a) -> a -> 'List b -> a testdata/Prelude.lc 63:17-63:23 V1 -> V1->V3 testdata/Prelude.lc 63:17-63:23 {a} -> 'List a -> 'List a -> 'List a testdata/Prelude.lc 63:1-63:7 {a} -> 'List ('List a) -> 'List a testdata/Prelude.lc 65:1-65:4 {a} -> a->a -> a +testdata/Prelude.lc 66:16-66:30 V0->V1 +testdata/Prelude.lc 66:16-66:30 V1 +testdata/Prelude.lc 66:16-66:30 V1 -> 'List V2 -> 'List V2 +testdata/Prelude.lc 66:16-66:30 'List V2 -> 'List V2 +testdata/Prelude.lc 66:16-66:30 'List V2 +testdata/Prelude.lc 66:16-66:19 V0 +testdata/Prelude.lc 66:16-66:17 V8 +testdata/Prelude.lc 66:18-66:19 V7 +testdata/Prelude.lc 66:22-66:30 'List V2 +testdata/Prelude.lc 66:22-66:25 V8 +testdata/Prelude.lc 66:26-66:27 V6->V6 +testdata/Prelude.lc 66:28-66:30 'List V7 testdata/Prelude.lc 65:1-65:4 {a} -> {b} -> a->b -> 'List a -> 'List b testdata/Prelude.lc 68:15-68:38 Type -testdata/Prelude.lc 68:15-68:38 V3 -testdata/Prelude.lc 68:15-68:38 V2 -testdata/Prelude.lc 69:17-69:28 {a} -> {b} -> (a -> 'List b) -> 'List a -> 'List b -testdata/Prelude.lc 69:17-69:28 {a} -> (V1 -> 'List a) -> 'List V2 -> 'List a -testdata/Prelude.lc 69:17-69:28 (V1 -> 'List V1) -> 'List V2 -> 'List V2 -testdata/Prelude.lc 69:17-69:28 'List V2 -> 'List V2 -testdata/Prelude.lc 69:17-69:28 'List V2 +testdata/Prelude.lc 68:15-68:16 V3 +testdata/Prelude.lc 68:20-68:23 Type +testdata/Prelude.lc 68:21-68:22 Type +testdata/Prelude.lc 68:21-68:22 V2 +testdata/Prelude.lc 68:28-68:38 Type +testdata/Prelude.lc 68:29-68:30 Type +testdata/Prelude.lc 68:35-68:38 Type +testdata/Prelude.lc 68:36-68:37 Type +testdata/Prelude.lc 69:17-69:32 {a} -> {b} -> (a -> 'List b) -> 'List a -> 'List b +testdata/Prelude.lc 69:17-69:32 {a} -> (V1 -> 'List a) -> 'List V2 -> 'List a +testdata/Prelude.lc 69:17-69:32 (V1 -> 'List V1) -> 'List V2 -> 'List V2 +testdata/Prelude.lc 69:17-69:32 'List V2 -> 'List V2 +testdata/Prelude.lc 69:17-69:32 'List V2 testdata/Prelude.lc 69:17-69:23 {a} -> 'List ('List a) -> 'List a -testdata/Prelude.lc 69:25-69:28 'List ('List V0) +testdata/Prelude.lc 69:25-69:32 'List ('List V0) testdata/Prelude.lc 69:25-69:28 {a} -> {b} -> a->b -> 'List a -> 'List b +testdata/Prelude.lc 69:29-69:30 V1->V1 +testdata/Prelude.lc 69:29-69:30 V6 -> 'List V6 +testdata/Prelude.lc 69:31-69:32 'List V3 testdata/Prelude.lc 69:1-69:10 {a} -> {b} -> (a -> 'List b) -> 'List a -> 'List b testdata/Prelude.lc 71:1-71:6 {a} -> a->a -> a testdata/Prelude.lc 71:12-72:55 V0->V1 @@ -143,11 +274,13 @@ testdata/Prelude.lc 72:17-72:28 V2 -> V2->V2 testdata/Prelude.lc 72:17-72:28 V2->V2 testdata/Prelude.lc 72:17-72:28 V2 testdata/Prelude.lc 72:17-72:28 {a} -> {b} -> a -> b -> 'Tuple2 a b -testdata/Prelude.lc 72:17-72:28 V1 -testdata/Prelude.lc 72:17-72:28 'List V12 -testdata/Prelude.lc 72:17-72:28 V4 -testdata/Prelude.lc 72:17-72:28 V0 -testdata/Prelude.lc 72:17-72:28 V3 +testdata/Prelude.lc 72:18-72:23 V1 +testdata/Prelude.lc 72:18-72:19 V0 +testdata/Prelude.lc 72:18-72:19 V14 +testdata/Prelude.lc 72:21-72:23 'List V12 +testdata/Prelude.lc 72:21-72:23 V4 +testdata/Prelude.lc 72:25-72:27 V0 +testdata/Prelude.lc 72:25-72:27 V3 testdata/Prelude.lc 72:37-72:43 'Tuple2 V0 ('List V7) testdata/Prelude.lc 72:37-72:43 V2 testdata/Prelude.lc 72:47-72:55 'Tuple2 ('List V2) ('List V3) @@ -155,42 +288,104 @@ testdata/Prelude.lc 72:47-72:52 V7 testdata/Prelude.lc 72:53-72:55 'List V6 testdata/Prelude.lc 71:1-71:6 {a} -> 'List a -> 'Tuple2 ('List a) ('List a) testdata/Prelude.lc 74:1-74:8 {a} -> a->a -> a -testdata/Prelude.lc 74:12-75:7 V0->V1 -testdata/Prelude.lc 74:12-75:7 V1 -testdata/Prelude.lc 74:19-75:7 V0 -> 'List V1 -> V4 -testdata/Prelude.lc 74:19-75:7 'List V1 -> V4 -testdata/Prelude.lc 74:19-75:7 V4 -testdata/Prelude.lc 75:5-75:7 V0 -> 'List V1 -> V9 -testdata/Prelude.lc 75:5-75:7 'List V1 -> V9 -testdata/Prelude.lc 75:5-75:7 V9 +testdata/Prelude.lc 74:12-78:21 V0->V1 +testdata/Prelude.lc 74:12-78:21 V1 +testdata/Prelude.lc 77:19-77:21 V0 +testdata/Prelude.lc 77:19-77:21 V3 +testdata/Prelude.lc 74:19-78:21 V0 -> 'List V1 -> V4 +testdata/Prelude.lc 74:19-78:21 'List V1 -> V4 +testdata/Prelude.lc 74:19-78:21 V4 +testdata/Prelude.lc 78:19-78:21 V0 +testdata/Prelude.lc 78:19-78:21 V8 +testdata/Prelude.lc 74:32-76:32 V0 -> 'List V1 -> V9 +testdata/Prelude.lc 74:32-76:32 'List V1 -> V9 +testdata/Prelude.lc 74:32-76:32 V9 +testdata/Prelude.lc 75:11-75:32 V0 +testdata/Prelude.lc 75:11-75:12 V0 +testdata/Prelude.lc 75:11-75:12 V9 +testdata/Prelude.lc 75:14-75:32 'List V7 +testdata/Prelude.lc 75:14-75:21 V15 +testdata/Prelude.lc 75:22-75:23 V16 +testdata/Prelude.lc 75:24-75:26 'List V11 +testdata/Prelude.lc 75:28-75:29 V0 +testdata/Prelude.lc 75:28-75:29 V9 +testdata/Prelude.lc 75:30-75:32 'List V8 +testdata/Prelude.lc 76:10-76:32 'List V7 +testdata/Prelude.lc 76:10-76:11 V0 +testdata/Prelude.lc 76:10-76:11 V5 +testdata/Prelude.lc 76:13-76:32 'List V6 +testdata/Prelude.lc 76:13-76:20 V12 -> 'List V7 -> 'List V8 -> 'List V9 +testdata/Prelude.lc 76:21-76:22 V12 +testdata/Prelude.lc 76:24-76:28 'List V6 +testdata/Prelude.lc 76:24-76:25 V0 +testdata/Prelude.lc 76:24-76:25 V7 +testdata/Prelude.lc 76:26-76:28 'List V6 +testdata/Prelude.lc 76:30-76:32 'List V6 +testdata/Prelude.lc 76:10-76:32 'List V6 +testdata/Prelude.lc 76:10-76:11 V7 testdata/Prelude.lc 75:5-75:7 'Ordering testdata/Prelude.lc 75:5-75:7 V1 +testdata/Prelude.lc 74:32-74:37 'Ordering +testdata/Prelude.lc 74:32-74:33 V9 +testdata/Prelude.lc 74:34-74:35 V7 +testdata/Prelude.lc 74:36-74:37 V8 testdata/Prelude.lc 74:19-74:23 'List V2 testdata/Prelude.lc 74:12-74:16 'List V0 testdata/Prelude.lc 74:1-74:8 {a} -> (a -> a->'Ordering) -> 'List a -> 'List a -> 'List a testdata/Prelude.lc 80:1-80:7 {a} -> a->a -> a -testdata/Prelude.lc 81:16-82:66 V0->V1 -testdata/Prelude.lc 81:16-82:66 V1 -testdata/Prelude.lc 81:16-82:66 V1 -> 'List V2 -> 'List V2 -testdata/Prelude.lc 81:16-82:66 'List V2 -> 'List V2 -testdata/Prelude.lc 81:16-82:66 'List V2 +testdata/Prelude.lc 81:16-82:69 V0->V1 +testdata/Prelude.lc 81:16-82:69 V1 +testdata/Prelude.lc 81:16-82:69 V1 -> 'List V2 -> 'List V2 +testdata/Prelude.lc 81:16-82:69 'List V2 -> 'List V2 +testdata/Prelude.lc 81:16-82:69 'List V2 testdata/Prelude.lc 81:16-81:19 V0 -testdata/Prelude.lc 82:15-82:66 V0 -> 'List V1 -> 'List V6 -testdata/Prelude.lc 82:15-82:66 'List V1 -> 'List V6 -testdata/Prelude.lc 82:15-82:66 'List V6 +testdata/Prelude.lc 81:17-81:18 V0 +testdata/Prelude.lc 81:17-81:18 V6 +testdata/Prelude.lc 82:15-82:69 V0 -> 'List V1 -> 'List V6 +testdata/Prelude.lc 82:15-82:69 'List V1 -> 'List V6 +testdata/Prelude.lc 82:15-82:69 'List V6 testdata/Prelude.lc 82:15-82:22 {a} -> {b} -> {c} -> (a -> b->c) -> 'Tuple2 a b -> c -testdata/Prelude.lc 82:24-82:31 V2 -> V2->V2 +testdata/Prelude.lc 82:24-82:33 V2 -> V2->V2 testdata/Prelude.lc 82:24-82:31 {a} -> (a -> a->'Ordering) -> 'List a -> 'List a -> 'List a -testdata/Prelude.lc 82:61-82:66 'Tuple2 ('List V6) ('List V6) -testdata/Prelude.lc 82:61-82:66 'Tuple2 V0 V0 +testdata/Prelude.lc 82:32-82:33 V0 -> V1->'Ordering +testdata/Prelude.lc 82:32-82:33 V14 +testdata/Prelude.lc 82:37-82:69 'Tuple2 ('List V6) ('List V6) +testdata/Prelude.lc 82:37-82:45 V3->V2 +testdata/Prelude.lc 82:37-82:43 V15 +testdata/Prelude.lc 82:44-82:45 V13 -> V14->'Ordering +testdata/Prelude.lc 82:50-82:58 V2->V1 +testdata/Prelude.lc 82:50-82:56 (V10 -> V11->'Ordering) -> V4->V3 +testdata/Prelude.lc 82:57-82:58 V8 -> V9->'Ordering +testdata/Prelude.lc 82:61-82:69 'Tuple2 V0 V0 testdata/Prelude.lc 82:61-82:66 {a} -> 'List a -> 'Tuple2 ('List a) ('List a) +testdata/Prelude.lc 82:67-82:69 'List V0 +testdata/Prelude.lc 82:67-82:69 V10 testdata/Prelude.lc 80:1-80:7 {a} -> (a -> a->'Ordering) -> 'List a -> 'List a testdata/Prelude.lc 84:8-84:14 {a} -> 'List a -> 'List a -> 'List a testdata/Prelude.lc 84:1-84:5 {a} -> 'List a -> 'List a -> 'List a testdata/Prelude.lc 88:1-88:8 {a} -> a->a -> a -testdata/Prelude.lc 87:13-87:32 V0->V1 -testdata/Prelude.lc 87:13-87:32 V1 +testdata/Prelude.lc 87:13-88:34 V0->V1 +testdata/Prelude.lc 87:13-88:34 V1 testdata/Prelude.lc 87:13-87:32 Type +testdata/Prelude.lc 87:13-87:14 V1 +testdata/Prelude.lc 87:18-87:19 Type +testdata/Prelude.lc 87:24-87:32 Type +testdata/Prelude.lc 87:24-87:25 Type +testdata/Prelude.lc 87:29-87:32 Type +testdata/Prelude.lc 87:30-87:31 Type +testdata/Prelude.lc 88:16-88:34 {a} -> a->a -> a -> 'List a +testdata/Prelude.lc 88:16-88:34 V0->V1 -> V1 -> 'List V2 +testdata/Prelude.lc 88:16-88:34 V1 -> 'List V2 +testdata/Prelude.lc 88:16-88:34 'List V2 +testdata/Prelude.lc 88:16-88:17 V0 +testdata/Prelude.lc 88:16-88:17 V3 +testdata/Prelude.lc 88:20-88:34 'List V2 +testdata/Prelude.lc 88:20-88:27 {a} -> a->a -> a -> 'List a +testdata/Prelude.lc 88:28-88:29 V0->V1 +testdata/Prelude.lc 88:28-88:29 V3->V4 +testdata/Prelude.lc 88:31-88:34 V2 +testdata/Prelude.lc 88:31-88:32 V2->V3 +testdata/Prelude.lc 88:33-88:34 V2 testdata/Prelude.lc 88:1-88:8 {a} -> a->a -> a -> 'List a testdata/Prelude.lc 90:6-90:11 Type->Type testdata/Prelude.lc 90:6-90:11 Type @@ -198,9 +393,17 @@ testdata/Prelude.lc 91:7-91:14 {a} -> 'Maybe a testdata/Prelude.lc 90:6-92:13 Type testdata/Prelude.lc 92:12-92:13 Type testdata/Prelude.lc 92:7-92:11 {a} -> a -> 'Maybe a +testdata/Prelude.lc 96:14-96:15 V2 -> V2->V2 +testdata/Prelude.lc 96:14-96:15 V2->V2 +testdata/Prelude.lc 96:14-96:15 V2 +testdata/Prelude.lc 96:14-96:15 V4 testdata/Prelude.lc 96:6-96:10 'Tuple2 V1 V0 testdata/Prelude.lc 96:6-96:10 V3 testdata/Prelude.lc 96:1-96:4 {a} -> {b} -> 'Tuple2 a b -> a +testdata/Prelude.lc 97:14-97:15 V2 -> V2->V2 +testdata/Prelude.lc 97:14-97:15 V2->V2 +testdata/Prelude.lc 97:14-97:15 V2 +testdata/Prelude.lc 97:14-97:15 V3 testdata/Prelude.lc 97:6-97:10 'Tuple2 V1 V0 testdata/Prelude.lc 97:6-97:10 V3 testdata/Prelude.lc 97:1-97:4 {a} -> {b} -> 'Tuple2 a b -> b @@ -218,6 +421,11 @@ testdata/Prelude.lc 101:19-101:34 V0 -> 'List V1 -> Type testdata/Prelude.lc 101:19-101:34 'List V1 -> Type testdata/Prelude.lc 101:19-101:34 Type testdata/Prelude.lc 101:19-101:34 Type -> Type->Type +testdata/Prelude.lc 101:20-101:21 Type +testdata/Prelude.lc 101:20-101:21 V2 +testdata/Prelude.lc 101:23-101:33 Type +testdata/Prelude.lc 101:23-101:30 'List Type -> Type +testdata/Prelude.lc 101:31-101:33 'List Type testdata/Prelude.lc 100:1-100:8 'List Type -> Type testdata/Prelude.lc 103:22-103:36 Type testdata/Prelude.lc 103:22-103:36 Type -> Type->Type @@ -235,8 +443,21 @@ testdata/Prelude.lc 104:36-104:38 'List ('Tuple2 'String Type) testdata/Prelude.lc 103:6-103:13 Type testdata/Prelude.lc 104:7-104:17 {a : 'List ('Tuple2 'String Type)} -> tuptype (map ('Tuple2 'String Type) Type (\(b : 'Tuple2 'String Type) -> snd 'String Type b) a) -> 'RecordC a testdata/Prelude.lc 106:1-106:7 {a} -> a->a -> a -testdata/Prelude.lc 106:11-106:12 V0->V1 -testdata/Prelude.lc 106:11-106:12 V1 +testdata/Prelude.lc 106:11-107:36 V0->V1 +testdata/Prelude.lc 106:11-107:36 V1 +testdata/Prelude.lc 106:16-107:36 V1 -> 'List V2 -> V2 +testdata/Prelude.lc 106:16-107:36 'List V2 -> V2 +testdata/Prelude.lc 106:16-107:36 V2 +testdata/Prelude.lc 106:16-106:17 V0 +testdata/Prelude.lc 106:16-106:17 V5 +testdata/Prelude.lc 107:20-107:36 V0 -> 'List V1 -> V6 +testdata/Prelude.lc 107:20-107:36 'List V1 -> V6 +testdata/Prelude.lc 107:20-107:36 V6 +testdata/Prelude.lc 107:20-107:21 V10 +testdata/Prelude.lc 107:22-107:23 V9 +testdata/Prelude.lc 107:25-107:31 V15 +testdata/Prelude.lc 107:32-107:33 V13->V7 +testdata/Prelude.lc 107:34-107:36 'List V14 testdata/Prelude.lc 106:11-106:12 'List V1 testdata/Prelude.lc 106:11-106:12 V3 testdata/Prelude.lc 106:1-106:7 {a} -> (a -> a->a) -> 'List a -> a @@ -246,6 +467,8 @@ testdata/Prelude.lc 109:11-109:15 'Bool testdata/Prelude.lc 109:6-109:8 'Ordering testdata/Prelude.lc 109:6-109:8 V1 testdata/Prelude.lc 109:1-109:5 'Ordering->'Bool +testdata/Prelude.lc 112:15-112:16 V0 +testdata/Prelude.lc 112:15-112:16 V2 testdata/Prelude.lc 113:14-113:18 V1 testdata/Prelude.lc 113:14-113:18 'Bool testdata/Prelude.lc 112:1-112:6 'Bool @@ -253,6 +476,8 @@ testdata/Prelude.lc 112:1-112:6 V2 testdata/Prelude.lc 112:7-112:10 'Bool -> 'Bool->'Bool testdata/Prelude.lc 118:15-118:20 V0 testdata/Prelude.lc 118:15-118:20 'Bool +testdata/Prelude.lc 117:14-117:15 'Bool +testdata/Prelude.lc 117:14-117:15 V1 testdata/Prelude.lc 117:1-117:5 'Bool testdata/Prelude.lc 117:1-117:5 V2 testdata/Prelude.lc 117:6-117:9 'Bool -> 'Bool->'Bool @@ -267,15 +492,17 @@ testdata/Prelude.lc 123:14-123:15 Type testdata/Prelude.lc 123:19-123:28 Type testdata/Prelude.lc 123:19-123:20 Type testdata/Prelude.lc 123:24-123:28 Type -testdata/Prelude.lc 127:13-128:38 {a} -> {b : 'Eq a} -> a -> a->'Bool -testdata/Prelude.lc 127:13-128:38 {a : 'Eq V0} -> V1 -> V2->'Bool -testdata/Prelude.lc 128:15-128:38 {a:'Unit} -> 'String -> 'String->'Bool -testdata/Prelude.lc 128:15-128:38 'String -> 'String->'Bool -testdata/Prelude.lc 128:15-128:38 'String->'Bool -testdata/Prelude.lc 128:15-128:38 'Bool +testdata/Prelude.lc 127:13-128:42 {a} -> {b : 'Eq a} -> a -> a->'Bool +testdata/Prelude.lc 127:13-128:42 {a : 'Eq V0} -> V1 -> V2->'Bool +testdata/Prelude.lc 128:15-128:42 {a:'Unit} -> 'String -> 'String->'Bool +testdata/Prelude.lc 128:15-128:42 'String -> 'String->'Bool +testdata/Prelude.lc 128:15-128:42 'String->'Bool +testdata/Prelude.lc 128:15-128:42 'Bool testdata/Prelude.lc 128:15-128:19 'Ordering->'Bool -testdata/Prelude.lc 128:21-128:38 'Ordering +testdata/Prelude.lc 128:21-128:42 'Ordering testdata/Prelude.lc 128:21-128:38 'String -> 'String->'Ordering +testdata/Prelude.lc 128:39-128:40 'String +testdata/Prelude.lc 128:41-128:42 'String testdata/Prelude.lc 123:5-123:10 {a} -> {b : 'Eq a} -> a -> a->'Bool testdata/Prelude.lc 163:30-163:36 Type testdata/Prelude.lc 163:30-163:31 V3 @@ -295,10 +522,25 @@ testdata/Prelude.lc 166:29-166:71 V2 -> V2->V2 testdata/Prelude.lc 166:29-166:71 V2->V2 testdata/Prelude.lc 166:29-166:71 V2 testdata/Prelude.lc 166:29-166:71 {a} -> 'Bool -> a -> a->a +testdata/Prelude.lc 166:32-166:40 'Bool +testdata/Prelude.lc 166:32-166:33 V1 +testdata/Prelude.lc 166:32-166:33 V16 +testdata/Prelude.lc 166:38-166:40 V15 +testdata/Prelude.lc 166:38-166:40 V6 +testdata/Prelude.lc 166:46-166:52 V1 +testdata/Prelude.lc 166:46-166:47 Type +testdata/Prelude.lc 166:46-166:47 V12 +testdata/Prelude.lc 166:50-166:52 Type +testdata/Prelude.lc 166:50-166:52 V4 +testdata/Prelude.lc 166:58-166:71 Type +testdata/Prelude.lc 166:58-166:64 V12 +testdata/Prelude.lc 166:65-166:66 V13 +testdata/Prelude.lc 166:67-166:68 Type +testdata/Prelude.lc 166:69-166:71 'List V9 testdata/Prelude.lc 165:1-165:7 {a} -> {b : 'Eq a} -> a -> Type -> 'List ('Tuple2 a Type) -> Type testdata/Prelude.lc 170:1-170:8 {a} -> a->a -> a -testdata/Prelude.lc 169:28-171:158 V0->V1 -testdata/Prelude.lc 169:28-171:158 V1 +testdata/Prelude.lc 169:28-171:161 V0->V1 +testdata/Prelude.lc 169:28-171:161 V1 testdata/Prelude.lc 169:28-169:105 Type testdata/Prelude.lc 169:29-169:43 Type testdata/Prelude.lc 169:29-169:43 Type -> Type->Type @@ -317,50 +559,69 @@ testdata/Prelude.lc 169:90-169:105 Type testdata/Prelude.lc 169:90-169:97 'List ('Tuple2 'String Type) -> Type testdata/Prelude.lc 169:98-169:100 'List ('Tuple2 'String Type) testdata/Prelude.lc 169:104-169:105 Type -testdata/Prelude.lc 170:15-171:158 {a} -> {b : 'List ('Tuple2 'String Type)} -> c:'String -> {d : isKeyC 'String TT c a b} -> 'RecordC b -> a -testdata/Prelude.lc 170:15-171:158 {a : 'List ('Tuple2 'String Type)} -> b:'String -> {c : isKeyC 'String TT b V2 a} -> 'RecordC a -> V4 -testdata/Prelude.lc 170:15-171:158 a:'String -> {b : isKeyC 'String TT a V2 V1} -> 'RecordC V2 -> V4 -testdata/Prelude.lc 170:15-171:158 {a : isKeyC 'String TT V0 V2 V1} -> 'RecordC V2 -> V4 -testdata/Prelude.lc 170:15-171:158 'RecordC V2 -> V4 -testdata/Prelude.lc 170:15-171:158 V4 -testdata/Prelude.lc 170:45-171:158 V1 -> 'List V2 -> V2 -testdata/Prelude.lc 170:45-171:158 'List V2 -> V2 -testdata/Prelude.lc 170:45-171:158 V2 -testdata/Prelude.lc 170:45-171:158 V2 -> V2->V2 -testdata/Prelude.lc 170:45-171:158 V2->V2 -testdata/Prelude.lc 170:51-171:158 tuptype (map ('Tuple2 'String Type) Type (\(a : 'Tuple2 'String Type) -> snd 'String Type a) V1) -> V1 -testdata/Prelude.lc 170:51-171:158 V1 -testdata/Prelude.lc 171:70-171:158 V0 -testdata/Prelude.lc 171:70-171:88 isKeyC 'String TT V14 V16 V9 +testdata/Prelude.lc 170:15-171:161 {a} -> {b : 'List ('Tuple2 'String Type)} -> c:'String -> {d : isKeyC 'String TT c a b} -> 'RecordC b -> a +testdata/Prelude.lc 170:15-171:161 {a : 'List ('Tuple2 'String Type)} -> b:'String -> {c : isKeyC 'String TT b V2 a} -> 'RecordC a -> V4 +testdata/Prelude.lc 170:15-171:161 a:'String -> {b : isKeyC 'String TT a V2 V1} -> 'RecordC V2 -> V4 +testdata/Prelude.lc 170:15-171:161 {a : isKeyC 'String TT V0 V2 V1} -> 'RecordC V2 -> V4 +testdata/Prelude.lc 170:15-171:161 'RecordC V2 -> V4 +testdata/Prelude.lc 170:15-171:161 V4 +testdata/Prelude.lc 170:45-171:161 V1 -> 'List V2 -> V2 +testdata/Prelude.lc 170:45-171:161 'List V2 -> V2 +testdata/Prelude.lc 170:45-171:161 V2 +testdata/Prelude.lc 170:45-171:161 V2 -> V2->V2 +testdata/Prelude.lc 170:45-171:161 V2->V2 +testdata/Prelude.lc 170:51-171:161 tuptype (map ('Tuple2 'String Type) Type (\(a : 'Tuple2 'String Type) -> snd 'String Type a) V1) -> V1 +testdata/Prelude.lc 170:51-171:161 V1 +testdata/Prelude.lc 171:51-171:161 V0 +testdata/Prelude.lc 171:51-171:58 {a} -> {b : 'List ('Tuple2 'String Type)} -> c:'String -> {d : isKeyC 'String TT c a b} -> 'RecordC b -> a +testdata/Prelude.lc 171:60-171:61 Type +testdata/Prelude.lc 171:63-171:65 'List ('Tuple2 'String Type) +testdata/Prelude.lc 171:63-171:65 'List V12 +testdata/Prelude.lc 171:66-171:67 'String +testdata/Prelude.lc 171:70-171:95 isKeyC 'String TT V14 V16 V9 testdata/Prelude.lc 171:70-171:79 {a}->a -testdata/Prelude.lc 171:82-171:88 Type +testdata/Prelude.lc 171:82-171:95 Type testdata/Prelude.lc 171:82-171:88 {a} -> {b : 'Eq a} -> a -> Type -> 'List ('Tuple2 a Type) -> Type -testdata/Prelude.lc 171:99-171:158 'RecordC V8 +testdata/Prelude.lc 171:89-171:90 V1 +testdata/Prelude.lc 171:89-171:90 'String +testdata/Prelude.lc 171:91-171:92 Type +testdata/Prelude.lc 171:93-171:95 'List ('Tuple2 'String Type) +testdata/Prelude.lc 171:99-171:161 'RecordC V8 testdata/Prelude.lc 171:99-171:109 {a : 'List ('Tuple2 'String Type)} -> tuptype (map ('Tuple2 'String Type) Type (\(b : 'Tuple2 'String Type) -> snd 'String Type b) a) -> 'RecordC a -testdata/Prelude.lc 171:111-171:158 tuptype (map ('Tuple2 'String Type) Type (\(a : 'Tuple2 'String Type) -> snd 'String Type a) V0) +testdata/Prelude.lc 171:111-171:161 tuptype (map ('Tuple2 'String Type) Type (\(a : 'Tuple2 'String Type) -> snd 'String Type a) V0) testdata/Prelude.lc 171:111-171:114 {a} -> {b} -> 'Tuple2 a b -> b -testdata/Prelude.lc 171:116-171:158 'Tuple2 V1 V0 +testdata/Prelude.lc 171:116-171:161 'Tuple2 V1 V0 testdata/Prelude.lc 171:116-171:128 {a} -> {b} -> a->b testdata/Prelude.lc 171:133-171:158 Type testdata/Prelude.lc 171:133-171:158 Type -> Type->Type -testdata/Prelude.lc 171:137-171:153 Type +testdata/Prelude.lc 171:134-171:135 Type +testdata/Prelude.lc 171:137-171:156 Type testdata/Prelude.lc 171:137-171:144 'List Type -> Type -testdata/Prelude.lc 171:146-171:153 'List Type +testdata/Prelude.lc 171:146-171:156 'List Type testdata/Prelude.lc 171:146-171:149 {a} -> {b} -> a->b -> 'List a -> 'List b testdata/Prelude.lc 171:150-171:153 V1->V1 testdata/Prelude.lc 171:150-171:153 {a} -> {b} -> 'Tuple2 a b -> b -testdata/Prelude.lc 170:62-170:109 V15 +testdata/Prelude.lc 171:154-171:156 'List ('Tuple2 V0 Type) +testdata/Prelude.lc 171:154-171:156 'List ('Tuple2 'String Type) +testdata/Prelude.lc 171:159-171:161 V0 +testdata/Prelude.lc 171:159-171:161 tuptype (map ('Tuple2 'String Type) Type (\(a : 'Tuple2 'String Type) -> snd 'String Type a) V4) +testdata/Prelude.lc 170:62-170:112 V15 testdata/Prelude.lc 170:62-170:65 {a} -> {b} -> 'Tuple2 a b -> a -testdata/Prelude.lc 170:67-170:109 'Tuple2 V1 V0 +testdata/Prelude.lc 170:67-170:112 'Tuple2 V1 V0 testdata/Prelude.lc 170:67-170:79 {a} -> {b} -> a->b testdata/Prelude.lc 170:84-170:109 Type testdata/Prelude.lc 170:84-170:109 Type -> Type->Type -testdata/Prelude.lc 170:88-170:104 Type +testdata/Prelude.lc 170:85-170:86 Type +testdata/Prelude.lc 170:88-170:107 Type testdata/Prelude.lc 170:88-170:95 'List Type -> Type -testdata/Prelude.lc 170:97-170:104 'List Type +testdata/Prelude.lc 170:97-170:107 'List Type testdata/Prelude.lc 170:97-170:100 {a} -> {b} -> a->b -> 'List a -> 'List b testdata/Prelude.lc 170:101-170:104 V1->V1 testdata/Prelude.lc 170:101-170:104 {a} -> {b} -> 'Tuple2 a b -> b +testdata/Prelude.lc 170:105-170:107 'List ('Tuple2 V0 Type) +testdata/Prelude.lc 170:105-170:107 'List ('Tuple2 'String Type) +testdata/Prelude.lc 170:110-170:112 V0 +testdata/Prelude.lc 170:110-170:112 tuptype (map ('Tuple2 'String Type) Type (\(a : 'Tuple2 'String Type) -> snd 'String Type a) V3) testdata/Prelude.lc 170:51-170:59 'Bool testdata/Prelude.lc 170:51-170:52 V1 testdata/Prelude.lc 170:51-170:52 'String @@ -371,6 +632,12 @@ testdata/Prelude.lc 170:45-170:47 'RecordC V10 testdata/Prelude.lc 170:15-170:26 'List ('Tuple2 'String Type) testdata/Prelude.lc 170:1-170:8 {a} -> {b : 'List ('Tuple2 'String Type)} -> c:'String -> {d : isKeyC 'String TT c a b} -> 'RecordC b -> a testdata/Prelude.lc 175:13-175:15 {a} -> a -> a -> a -> a -> 'VecS a (Succ (Succ (Succ (Succ Zero)))) +testdata/Prelude.lc 175:16-175:17 V0 +testdata/Prelude.lc 175:16-175:17 V6 +testdata/Prelude.lc 175:18-175:19 V5 +testdata/Prelude.lc 175:18-175:19 V3 +testdata/Prelude.lc 175:20-175:21 V4 +testdata/Prelude.lc 175:20-175:21 V1 testdata/Prelude.lc 175:22-175:25 V3 testdata/Prelude.lc 175:22-175:25 'Float testdata/Prelude.lc 175:1-175:4 'Float -> 'Float -> 'Float -> 'VecS 'Float (Succ (Succ (Succ (Succ Zero)))) @@ -469,14 +736,20 @@ testdata/Prelude.lc 199:34-199:39 Type testdata/Prelude.lc 200:14-200:30 'VecS 'Float (Succ (Succ (Succ Zero))) -> 'VecS 'Float (Succ (Succ (Succ (Succ Zero)))) testdata/Prelude.lc 200:14-200:30 'VecS 'Float (Succ (Succ (Succ (Succ Zero)))) testdata/Prelude.lc 200:14-200:16 {a} -> a -> a -> a -> a -> 'VecS a (Succ (Succ (Succ (Succ Zero)))) -testdata/Prelude.lc 200:18-200:18 V0 +testdata/Prelude.lc 200:17-200:18 V0 testdata/Prelude.lc 200:18-200:18 {a} -> {b:'Nat} -> 'VecS a b -> 'Swizz->a +testdata/Prelude.lc 200:17-200:18 'VecS V1 V0 +testdata/Prelude.lc 200:17-200:18 'VecS 'Float (Succ (Succ (Succ Zero))) testdata/Prelude.lc 200:18-200:18 'Swizz -testdata/Prelude.lc 200:22-200:22 'Float +testdata/Prelude.lc 200:21-200:22 'Float testdata/Prelude.lc 200:22-200:22 {a} -> {b:'Nat} -> 'VecS a b -> 'Swizz->a +testdata/Prelude.lc 200:21-200:22 'VecS V1 V0 +testdata/Prelude.lc 200:21-200:22 'VecS 'Float (Succ (Succ (Succ Zero))) testdata/Prelude.lc 200:22-200:22 'Swizz -testdata/Prelude.lc 200:26-200:26 'Float +testdata/Prelude.lc 200:25-200:26 'Float testdata/Prelude.lc 200:26-200:26 {a} -> {b:'Nat} -> 'VecS a b -> 'Swizz->a +testdata/Prelude.lc 200:25-200:26 'VecS V1 V0 +testdata/Prelude.lc 200:25-200:26 'VecS 'Float (Succ (Succ (Succ Zero))) testdata/Prelude.lc 200:26-200:26 'Swizz testdata/Prelude.lc 200:29-200:30 'Float testdata/Prelude.lc 200:29-200:30 'Int @@ -556,44 +829,116 @@ testdata/Prelude.lc 248:1-248:8 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float testdata/Prelude.lc 249:11-249:22 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> a -> a -> a->a testdata/Prelude.lc 249:1-249:8 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> a -> a -> a->a testdata/Prelude.lc 267:9-267:16 {a} -> {b : 'Num ('MatVecScalarElem a)} -> a -> a->a +testdata/Prelude.lc 267:17-267:18 V1 +testdata/Prelude.lc 267:17-267:18 V5 +testdata/Prelude.lc 267:19-267:20 V4 +testdata/Prelude.lc 267:19-267:20 V2 testdata/Prelude.lc 267:3-267:4 {a} -> {b : 'Num ('MatVecScalarElem a)} -> a -> a->a testdata/Prelude.lc 268:9-268:16 {a} -> {b : 'Num ('MatVecScalarElem a)} -> a -> a->a +testdata/Prelude.lc 268:17-268:18 V1 +testdata/Prelude.lc 268:17-268:18 V5 +testdata/Prelude.lc 268:19-268:20 V4 +testdata/Prelude.lc 268:19-268:20 V2 testdata/Prelude.lc 268:3-268:4 {a} -> {b : 'Num ('MatVecScalarElem a)} -> a -> a->a testdata/Prelude.lc 269:9-269:16 {a} -> {b : 'Num ('MatVecScalarElem a)} -> a -> a->a +testdata/Prelude.lc 269:17-269:18 V1 +testdata/Prelude.lc 269:17-269:18 V5 +testdata/Prelude.lc 269:19-269:20 V4 +testdata/Prelude.lc 269:19-269:20 V2 testdata/Prelude.lc 269:3-269:4 {a} -> {b : 'Num ('MatVecScalarElem a)} -> a -> a->a testdata/Prelude.lc 270:9-270:16 {a} -> {b} -> {c:'Nat} -> {d : 'Num a} -> {e : b ~ 'VecScalar c a} -> b -> b->b +testdata/Prelude.lc 270:17-270:18 'VecScalar V1 V2 +testdata/Prelude.lc 270:17-270:18 V6 +testdata/Prelude.lc 270:19-270:20 'VecScalar V1 V2 +testdata/Prelude.lc 270:19-270:20 V4 testdata/Prelude.lc 270:3-270:4 {a} -> {b:'Nat} -> {c : 'Num a} -> 'VecScalar b a -> 'VecScalar b a -> 'VecScalar b a testdata/Prelude.lc 271:9-271:16 {a} -> {b} -> {c:'Nat} -> {d : 'Num a} -> {e : b ~ 'VecScalar c a} -> b -> b->b +testdata/Prelude.lc 271:17-271:18 'VecScalar V1 V2 +testdata/Prelude.lc 271:17-271:18 V6 +testdata/Prelude.lc 271:19-271:20 'VecScalar V1 V2 +testdata/Prelude.lc 271:19-271:20 V4 testdata/Prelude.lc 271:3-271:4 {a} -> {b:'Nat} -> {c : 'Num a} -> 'VecScalar b a -> 'VecScalar b a -> 'VecScalar b a testdata/Prelude.lc 273:9-273:16 {a} -> {b : 'Signed ('MatVecScalarElem a)} -> a->a +testdata/Prelude.lc 273:17-273:18 V1 +testdata/Prelude.lc 273:17-273:18 V3 testdata/Prelude.lc 273:1-273:4 {a} -> {b : 'Signed ('MatVecScalarElem a)} -> a->a testdata/Prelude.lc 276:10-276:19 {a} -> {b} -> {c : a ~ 'MatVecScalarElem b} -> b -> b->'Bool +testdata/Prelude.lc 276:20-276:21 V0 +testdata/Prelude.lc 276:20-276:21 V4 +testdata/Prelude.lc 276:22-276:23 V3 +testdata/Prelude.lc 276:22-276:23 V1 testdata/Prelude.lc 276:3-276:5 {a} -> a -> a->'Bool testdata/Prelude.lc 277:10-277:22 {a} -> {b} -> {c : a ~ 'MatVecScalarElem b} -> b -> b->'Bool +testdata/Prelude.lc 277:23-277:24 V0 +testdata/Prelude.lc 277:23-277:24 V4 +testdata/Prelude.lc 277:25-277:26 V3 +testdata/Prelude.lc 277:25-277:26 V1 testdata/Prelude.lc 277:3-277:5 {a} -> a -> a->'Bool testdata/Prelude.lc 278:9-278:21 {a} -> {b} -> {c:'Nat} -> {d} -> {e : 'Num a} -> {f : b ~ 'VecScalar c a} -> {g : d ~ 'VecScalar c 'Bool} -> b -> b->d +testdata/Prelude.lc 278:22-278:23 'VecScalar V1 V2 +testdata/Prelude.lc 278:22-278:23 V6 +testdata/Prelude.lc 278:24-278:25 'VecScalar V1 V2 +testdata/Prelude.lc 278:24-278:25 V4 testdata/Prelude.lc 278:3-278:4 {a} -> {b:'Nat} -> {c : 'Num a} -> 'VecScalar b a -> 'VecScalar b a -> 'VecScalar b 'Bool testdata/Prelude.lc 279:10-279:27 {a} -> {b} -> {c:'Nat} -> {d} -> {e : 'Num a} -> {f : b ~ 'VecScalar c a} -> {g : d ~ 'VecScalar c 'Bool} -> b -> b->d +testdata/Prelude.lc 279:28-279:29 'VecScalar V1 V2 +testdata/Prelude.lc 279:28-279:29 V6 +testdata/Prelude.lc 279:30-279:31 'VecScalar V1 V2 +testdata/Prelude.lc 279:30-279:31 V4 testdata/Prelude.lc 279:3-279:5 {a} -> {b:'Nat} -> {c : 'Num a} -> 'VecScalar b a -> 'VecScalar b a -> 'VecScalar b 'Bool testdata/Prelude.lc 280:10-280:30 {a} -> {b} -> {c:'Nat} -> {d} -> {e : 'Num a} -> {f : b ~ 'VecScalar c a} -> {g : d ~ 'VecScalar c 'Bool} -> b -> b->d +testdata/Prelude.lc 280:31-280:32 'VecScalar V1 V2 +testdata/Prelude.lc 280:31-280:32 V6 +testdata/Prelude.lc 280:33-280:34 'VecScalar V1 V2 +testdata/Prelude.lc 280:33-280:34 V4 testdata/Prelude.lc 280:3-280:5 {a} -> {b:'Nat} -> {c : 'Num a} -> 'VecScalar b a -> 'VecScalar b a -> 'VecScalar b 'Bool testdata/Prelude.lc 281:9-281:24 {a} -> {b} -> {c:'Nat} -> {d} -> {e : 'Num a} -> {f : b ~ 'VecScalar c a} -> {g : d ~ 'VecScalar c 'Bool} -> b -> b->d +testdata/Prelude.lc 281:25-281:26 'VecScalar V1 V2 +testdata/Prelude.lc 281:25-281:26 V6 +testdata/Prelude.lc 281:27-281:28 'VecScalar V1 V2 +testdata/Prelude.lc 281:27-281:28 V4 testdata/Prelude.lc 281:3-281:4 {a} -> {b:'Nat} -> {c : 'Num a} -> 'VecScalar b a -> 'VecScalar b a -> 'VecScalar b 'Bool testdata/Prelude.lc 284:10-284:17 'Bool -> 'Bool->'Bool +testdata/Prelude.lc 284:18-284:19 'Bool +testdata/Prelude.lc 284:18-284:19 V3 +testdata/Prelude.lc 284:20-284:21 'Bool +testdata/Prelude.lc 284:20-284:21 V1 testdata/Prelude.lc 284:3-284:5 'Bool -> 'Bool->'Bool testdata/Prelude.lc 285:10-285:16 'Bool -> 'Bool->'Bool +testdata/Prelude.lc 285:17-285:18 'Bool +testdata/Prelude.lc 285:17-285:18 V3 +testdata/Prelude.lc 285:19-285:20 'Bool +testdata/Prelude.lc 285:19-285:20 V1 testdata/Prelude.lc 285:3-285:5 'Bool -> 'Bool->'Bool testdata/Prelude.lc 286:9-286:16 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Bool} -> a->a +testdata/Prelude.lc 286:17-286:18 'VecScalar V0 'Bool +testdata/Prelude.lc 286:17-286:18 V2 testdata/Prelude.lc 286:1-286:4 {a:'Nat} -> 'VecScalar a 'Bool -> 'VecScalar a 'Bool testdata/Prelude.lc 287:9-287:16 {a:'Nat} -> 'VecScalar a 'Bool -> 'Bool +testdata/Prelude.lc 287:17-287:18 'VecScalar V0 'Bool +testdata/Prelude.lc 287:17-287:18 V2 testdata/Prelude.lc 287:1-287:4 {a:'Nat} -> 'VecScalar a 'Bool -> 'Bool testdata/Prelude.lc 288:9-288:16 {a:'Nat} -> 'VecScalar a 'Bool -> 'Bool +testdata/Prelude.lc 288:17-288:18 'VecScalar V0 'Bool +testdata/Prelude.lc 288:17-288:18 V2 testdata/Prelude.lc 288:1-288:4 {a:'Nat} -> 'VecScalar a 'Bool -> 'Bool testdata/Prelude.lc 291:11-291:24 {a:'Nat} -> {b:'Nat} -> {c} -> {d:'Nat} -> 'Mat a b c -> 'Mat b d c -> 'Mat a d c +testdata/Prelude.lc 291:25-291:26 'Mat V3 V2 V1 +testdata/Prelude.lc 291:25-291:26 V7 +testdata/Prelude.lc 291:27-291:28 'Mat V2 V0 V1 +testdata/Prelude.lc 291:27-291:28 V5 testdata/Prelude.lc 291:3-291:6 {a:'Nat} -> {b:'Nat} -> {c} -> {d:'Nat} -> 'Mat a b c -> 'Mat b d c -> 'Mat a d c testdata/Prelude.lc 292:10-292:23 {a:'Nat} -> {b:'Nat} -> {c} -> 'Mat a b c -> 'VecS c b -> 'VecS c a +testdata/Prelude.lc 292:24-292:25 'Mat V2 V1 V0 +testdata/Prelude.lc 292:24-292:25 V6 +testdata/Prelude.lc 292:26-292:27 'VecS V0 V1 +testdata/Prelude.lc 292:26-292:27 V4 testdata/Prelude.lc 292:3-292:5 {a:'Nat} -> {b:'Nat} -> {c} -> 'Mat a b c -> 'VecS c b -> 'VecS c a testdata/Prelude.lc 293:10-293:23 {a:'Nat} -> {b} -> {c:'Nat} -> 'VecS b a -> 'Mat a c b -> 'VecS b c +testdata/Prelude.lc 293:24-293:25 'VecS V1 V2 +testdata/Prelude.lc 293:24-293:25 V6 +testdata/Prelude.lc 293:26-293:27 'Mat V2 V0 V1 +testdata/Prelude.lc 293:26-293:27 V4 testdata/Prelude.lc 293:3-293:5 {a:'Nat} -> {b} -> {c:'Nat} -> 'VecS b a -> 'Mat a c b -> 'VecS b c testdata/Prelude.lc 295:8-295:16 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> a->a testdata/Prelude.lc 295:1-295:5 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> a->a @@ -602,34 +947,59 @@ testdata/Prelude.lc 296:1-296:5 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float testdata/Prelude.lc 299:9-299:18 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> a->a testdata/Prelude.lc 299:1-299:6 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> a->a testdata/Prelude.lc 307:10-307:18 {a} -> {b} -> {c : a ~ 'MatVecScalarElem b} -> {d : 'Num a} -> b -> a->b +testdata/Prelude.lc 307:19-307:20 V1 +testdata/Prelude.lc 307:19-307:20 V5 +testdata/Prelude.lc 307:21-307:22 'MatVecScalarElem V4 +testdata/Prelude.lc 307:21-307:22 V2 testdata/Prelude.lc 307:3-307:5 {a} -> {b : 'Num ('MatVecScalarElem a)} -> a -> 'MatVecScalarElem a -> a testdata/Prelude.lc 308:10-308:18 {a} -> {b} -> {c : a ~ 'MatVecScalarElem b} -> {d : 'Num a} -> b -> a->b +testdata/Prelude.lc 308:19-308:20 V1 +testdata/Prelude.lc 308:19-308:20 V5 +testdata/Prelude.lc 308:21-308:22 'MatVecScalarElem V4 +testdata/Prelude.lc 308:21-308:22 V2 testdata/Prelude.lc 308:3-308:5 {a} -> {b : 'Num ('MatVecScalarElem a)} -> a -> 'MatVecScalarElem a -> a testdata/Prelude.lc 309:10-309:18 {a} -> {b} -> {c : a ~ 'MatVecScalarElem b} -> {d : 'Num a} -> b -> a->b +testdata/Prelude.lc 309:19-309:20 V1 +testdata/Prelude.lc 309:19-309:20 V5 +testdata/Prelude.lc 309:21-309:22 'MatVecScalarElem V4 +testdata/Prelude.lc 309:21-309:22 V2 testdata/Prelude.lc 309:3-309:5 {a} -> {b : 'Num ('MatVecScalarElem a)} -> a -> 'MatVecScalarElem a -> a testdata/Prelude.lc 310:10-310:18 {a} -> {b} -> {c:'Nat} -> {d : 'Num a} -> {e : b ~ 'VecScalar c a} -> b -> a->b +testdata/Prelude.lc 310:19-310:20 'VecScalar V1 V2 +testdata/Prelude.lc 310:19-310:20 V6 +testdata/Prelude.lc 310:21-310:22 V2 +testdata/Prelude.lc 310:21-310:22 V4 testdata/Prelude.lc 310:3-310:5 {a} -> {b:'Nat} -> {c : 'Num a} -> 'VecScalar b a -> a -> 'VecScalar b a testdata/Prelude.lc 311:10-311:18 {a} -> {b} -> {c:'Nat} -> {d : 'Num a} -> {e : b ~ 'VecScalar c a} -> b -> a->b +testdata/Prelude.lc 311:19-311:20 'VecScalar V1 V2 +testdata/Prelude.lc 311:19-311:20 V6 +testdata/Prelude.lc 311:21-311:22 V2 +testdata/Prelude.lc 311:21-311:22 V4 testdata/Prelude.lc 311:3-311:5 {a} -> {b:'Nat} -> {c : 'Num a} -> 'VecScalar b a -> a -> 'VecScalar b a testdata/Prelude.lc 336:9-336:12 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> a->a +testdata/Prelude.lc 336:13-336:14 'VecScalar V0 'Float +testdata/Prelude.lc 336:13-336:14 V2 testdata/Prelude.lc 337:9-337:12 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> a->a +testdata/Prelude.lc 337:13-337:14 'VecScalar V0 'Float +testdata/Prelude.lc 337:13-337:14 'VecScalar V2 'Float testdata/Prelude.lc 334:16-334:20 'VecS 'Float (Succ (Succ (Succ (Succ Zero)))) -> 'VecS 'Float (Succ (Succ (Succ (Succ Zero)))) -> 'VecS 'Float (Succ (Succ (Succ (Succ Zero)))) -> 'VecS 'Float (Succ (Succ (Succ (Succ Zero)))) -> 'Mat (Succ (Succ (Succ (Succ Zero)))) (Succ (Succ (Succ (Succ Zero)))) 'Float -testdata/Prelude.lc 334:16-337:12 'VecS 'Float (Succ (Succ (Succ (Succ Zero)))) +testdata/Prelude.lc 334:22-334:32 'VecS 'Float (Succ (Succ (Succ (Succ Zero)))) testdata/Prelude.lc 334:22-334:24 {a} -> a -> a -> a -> a -> 'VecS a (Succ (Succ (Succ (Succ Zero)))) -testdata/Prelude.lc 334:16-337:12 V0 -testdata/Prelude.lc 334:16-337:12 'VecScalar V3 'Float -testdata/Prelude.lc 334:16-334:74 'VecScalar V2 'Float +testdata/Prelude.lc 334:25-334:26 V0 +testdata/Prelude.lc 334:25-334:26 'VecScalar V3 'Float +testdata/Prelude.lc 334:27-334:28 'VecScalar V2 'Float testdata/Prelude.lc 334:29-334:30 'VecScalar V2 'Float testdata/Prelude.lc 334:29-334:30 'Int testdata/Prelude.lc 334:31-334:32 'Float testdata/Prelude.lc 334:31-334:32 'Int +testdata/Prelude.lc 334:35-334:48 'VecS 'Float (Succ (Succ (Succ (Succ Zero)))) testdata/Prelude.lc 334:35-334:37 {a} -> a -> a -> a -> a -> 'VecS a (Succ (Succ (Succ (Succ Zero)))) -testdata/Prelude.lc 334:16-334:74 V0 +testdata/Prelude.lc 334:39-334:41 V0 testdata/Prelude.lc 334:39-334:41 V1 testdata/Prelude.lc 334:39-334:41 'Int -testdata/Prelude.lc 334:16-334:74 V2 -testdata/Prelude.lc 334:16-334:74 'Float -testdata/Prelude.lc 334:16-337:12 'Float +testdata/Prelude.lc 334:40-334:41 V2 +testdata/Prelude.lc 334:40-334:41 'Float +testdata/Prelude.lc 334:43-334:44 'Float testdata/Prelude.lc 334:45-334:46 'Float testdata/Prelude.lc 334:45-334:46 'Int testdata/Prelude.lc 334:47-334:48 'Float @@ -656,18 +1026,22 @@ testdata/Prelude.lc 334:73-334:74 'Float testdata/Prelude.lc 334:73-334:74 'Int testdata/Prelude.lc 334:1-334:11 'Float -> 'Mat (Succ (Succ (Succ (Succ Zero)))) (Succ (Succ (Succ (Succ Zero)))) 'Float testdata/Prelude.lc 341:9-341:12 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> a->a +testdata/Prelude.lc 341:13-341:14 'VecScalar V0 'Float +testdata/Prelude.lc 341:13-341:14 V2 testdata/Prelude.lc 342:9-342:12 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> a->a +testdata/Prelude.lc 342:13-342:14 'VecScalar V0 'Float +testdata/Prelude.lc 342:13-342:14 'VecScalar V2 'Float testdata/Prelude.lc 339:16-339:20 'VecS 'Float (Succ (Succ (Succ (Succ Zero)))) -> 'VecS 'Float (Succ (Succ (Succ (Succ Zero)))) -> 'VecS 'Float (Succ (Succ (Succ (Succ Zero)))) -> 'VecS 'Float (Succ (Succ (Succ (Succ Zero)))) -> 'Mat (Succ (Succ (Succ (Succ Zero)))) (Succ (Succ (Succ (Succ Zero)))) 'Float -testdata/Prelude.lc 339:16-342:12 'VecS 'Float (Succ (Succ (Succ (Succ Zero)))) +testdata/Prelude.lc 339:22-339:35 'VecS 'Float (Succ (Succ (Succ (Succ Zero)))) testdata/Prelude.lc 339:22-339:24 {a} -> a -> a -> a -> a -> 'VecS a (Succ (Succ (Succ (Succ Zero)))) -testdata/Prelude.lc 339:16-342:12 V0 -testdata/Prelude.lc 339:16-342:12 'VecScalar V3 'Float +testdata/Prelude.lc 339:25-339:26 V0 +testdata/Prelude.lc 339:25-339:26 'VecScalar V3 'Float testdata/Prelude.lc 339:27-339:28 'VecScalar V2 'Float testdata/Prelude.lc 339:27-339:28 'Int -testdata/Prelude.lc 339:16-339:74 'VecScalar V3 'Float +testdata/Prelude.lc 339:30-339:32 'VecScalar V3 'Float testdata/Prelude.lc 339:30-339:32 V1 testdata/Prelude.lc 339:30-339:32 'Int -testdata/Prelude.lc 339:16-339:74 'VecScalar V5 'Float +testdata/Prelude.lc 339:31-339:32 'VecScalar V5 'Float testdata/Prelude.lc 339:34-339:35 'Float testdata/Prelude.lc 339:34-339:35 'Int testdata/Prelude.lc 339:38-339:48 'VecS 'Float (Succ (Succ (Succ (Succ Zero)))) @@ -680,12 +1054,13 @@ testdata/Prelude.lc 339:45-339:46 V1 testdata/Prelude.lc 339:45-339:46 'Int testdata/Prelude.lc 339:47-339:48 'Float testdata/Prelude.lc 339:47-339:48 'Int +testdata/Prelude.lc 339:51-339:61 'VecS 'Float (Succ (Succ (Succ (Succ Zero)))) testdata/Prelude.lc 339:51-339:53 {a} -> a -> a -> a -> a -> 'VecS a (Succ (Succ (Succ (Succ Zero)))) -testdata/Prelude.lc 339:16-339:74 V0 -testdata/Prelude.lc 339:16-339:74 'Float +testdata/Prelude.lc 339:54-339:55 V0 +testdata/Prelude.lc 339:54-339:55 'Float testdata/Prelude.lc 339:56-339:57 'Float testdata/Prelude.lc 339:56-339:57 'Int -testdata/Prelude.lc 339:16-342:12 'Float +testdata/Prelude.lc 339:58-339:59 'Float testdata/Prelude.lc 339:60-339:61 'Float testdata/Prelude.lc 339:60-339:61 'Int testdata/Prelude.lc 339:64-339:74 'VecS 'Float (Succ (Succ (Succ (Succ Zero)))) @@ -700,7 +1075,11 @@ testdata/Prelude.lc 339:73-339:74 'Float testdata/Prelude.lc 339:73-339:74 'Int testdata/Prelude.lc 339:1-339:11 'Float -> 'Mat (Succ (Succ (Succ (Succ Zero)))) (Succ (Succ (Succ (Succ Zero)))) 'Float testdata/Prelude.lc 346:9-346:12 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> a->a +testdata/Prelude.lc 346:13-346:14 'VecScalar V0 'Float +testdata/Prelude.lc 346:13-346:14 V2 testdata/Prelude.lc 347:9-347:12 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> a->a +testdata/Prelude.lc 347:13-347:14 'VecScalar V0 'Float +testdata/Prelude.lc 347:13-347:14 'VecScalar V2 'Float testdata/Prelude.lc 344:16-344:20 'VecS 'Float (Succ (Succ (Succ (Succ Zero)))) -> 'VecS 'Float (Succ (Succ (Succ (Succ Zero)))) -> 'VecS 'Float (Succ (Succ (Succ (Succ Zero)))) -> 'VecS 'Float (Succ (Succ (Succ (Succ Zero)))) -> 'Mat (Succ (Succ (Succ (Succ Zero)))) (Succ (Succ (Succ (Succ Zero)))) 'Float testdata/Prelude.lc 344:22-344:32 'VecS 'Float (Succ (Succ (Succ (Succ Zero)))) testdata/Prelude.lc 344:22-344:24 {a} -> a -> a -> a -> a -> 'VecS a (Succ (Succ (Succ (Succ Zero)))) @@ -712,24 +1091,24 @@ testdata/Prelude.lc 344:29-344:30 V1 testdata/Prelude.lc 344:29-344:30 'Int testdata/Prelude.lc 344:31-344:32 'Float testdata/Prelude.lc 344:31-344:32 'Int -testdata/Prelude.lc 344:16-347:12 'VecS 'Float (Succ (Succ (Succ (Succ Zero)))) +testdata/Prelude.lc 344:35-344:45 'VecS 'Float (Succ (Succ (Succ (Succ Zero)))) testdata/Prelude.lc 344:35-344:37 {a} -> a -> a -> a -> a -> 'VecS a (Succ (Succ (Succ (Succ Zero)))) testdata/Prelude.lc 344:38-344:39 V0 testdata/Prelude.lc 344:38-344:39 'Int -testdata/Prelude.lc 344:16-347:12 V1 -testdata/Prelude.lc 344:16-347:12 'VecScalar V4 'Float -testdata/Prelude.lc 344:16-344:74 'VecScalar V3 'Float +testdata/Prelude.lc 344:40-344:41 V1 +testdata/Prelude.lc 344:40-344:41 'VecScalar V4 'Float +testdata/Prelude.lc 344:42-344:43 'VecScalar V3 'Float testdata/Prelude.lc 344:44-344:45 'Float testdata/Prelude.lc 344:44-344:45 'Int +testdata/Prelude.lc 344:48-344:61 'VecS 'Float (Succ (Succ (Succ (Succ Zero)))) testdata/Prelude.lc 344:48-344:50 {a} -> a -> a -> a -> a -> 'VecS a (Succ (Succ (Succ (Succ Zero)))) testdata/Prelude.lc 344:51-344:52 V0 testdata/Prelude.lc 344:51-344:52 'Int -testdata/Prelude.lc 344:16-344:74 V1 testdata/Prelude.lc 344:54-344:56 V1 testdata/Prelude.lc 344:54-344:56 'Int -testdata/Prelude.lc 344:16-344:74 V3 -testdata/Prelude.lc 344:16-344:74 'Float -testdata/Prelude.lc 344:16-347:12 'Float +testdata/Prelude.lc 344:55-344:56 V3 +testdata/Prelude.lc 344:55-344:56 'Float +testdata/Prelude.lc 344:58-344:59 'Float testdata/Prelude.lc 344:60-344:61 'Float testdata/Prelude.lc 344:60-344:61 'Int testdata/Prelude.lc 344:64-344:74 'VecS 'Float (Succ (Succ (Succ (Succ Zero)))) @@ -743,16 +1122,28 @@ testdata/Prelude.lc 344:71-344:72 'Int testdata/Prelude.lc 344:73-344:74 'Float testdata/Prelude.lc 344:73-344:74 'Int testdata/Prelude.lc 344:1-344:11 'Float -> 'Mat (Succ (Succ (Succ (Succ Zero)))) (Succ (Succ (Succ (Succ Zero)))) 'Float -testdata/Prelude.lc 349:23-349:50 'Mat V3 V2 V1 -testdata/Prelude.lc 349:23-349:33 'Mat V3 V2 V1 +testdata/Prelude.lc 349:23-349:52 'Mat V3 V2 V1 +testdata/Prelude.lc 349:23-349:35 'Mat V3 V2 V1 testdata/Prelude.lc 349:23-349:33 'Float -> 'Mat (Succ (Succ (Succ (Succ Zero)))) (Succ (Succ (Succ (Succ Zero)))) 'Float -testdata/Prelude.lc 349:40-349:50 'Mat (Succ (Succ (Succ (Succ Zero)))) V1 'Float +testdata/Prelude.lc 349:34-349:35 'Float +testdata/Prelude.lc 349:34-349:35 V10 +testdata/Prelude.lc 349:40-349:52 'Mat (Succ (Succ (Succ (Succ Zero)))) V1 'Float testdata/Prelude.lc 349:40-349:50 'Float -> 'Mat (Succ (Succ (Succ (Succ Zero)))) (Succ (Succ (Succ (Succ Zero)))) 'Float -testdata/Prelude.lc 349:57-349:67 'Mat (Succ (Succ (Succ (Succ Zero)))) V0 'Float +testdata/Prelude.lc 349:51-349:52 'Float +testdata/Prelude.lc 349:51-349:52 V4 +testdata/Prelude.lc 349:57-349:69 'Mat (Succ (Succ (Succ (Succ Zero)))) V0 'Float testdata/Prelude.lc 349:57-349:67 'Float -> 'Mat (Succ (Succ (Succ (Succ Zero)))) (Succ (Succ (Succ (Succ Zero)))) 'Float +testdata/Prelude.lc 349:68-349:69 'Float +testdata/Prelude.lc 349:68-349:69 V1 testdata/Prelude.lc 349:1-349:14 'Float -> 'Float -> 'Float -> 'Mat (Succ (Succ (Succ (Succ Zero)))) (Succ (Succ (Succ (Succ Zero)))) 'Float +testdata/Prelude.lc 365:13-365:14 V1 +testdata/Prelude.lc 365:13-365:14 V3 testdata/Prelude.lc 365:17-365:29 V2 testdata/Prelude.lc 365:17-365:19 {a} -> a -> a -> a -> a -> 'VecS a (Succ (Succ (Succ (Succ Zero)))) +testdata/Prelude.lc 365:20-365:21 V0 +testdata/Prelude.lc 365:20-365:21 V5 +testdata/Prelude.lc 365:22-365:23 V4 +testdata/Prelude.lc 365:24-365:25 V4 testdata/Prelude.lc 365:26-365:29 V3 testdata/Prelude.lc 365:26-365:29 'Float testdata/Prelude.lc 365:1-365:6 'Float -> 'VecS 'Float (Succ (Succ (Succ (Succ Zero)))) -> 'VecS 'Float (Succ (Succ (Succ (Succ Zero)))) @@ -769,15 +1160,30 @@ testdata/Prelude.lc 368:14-368:58 'Float -> 'Float -> 'List 'Float testdata/Prelude.lc 368:14-368:58 'Float -> 'List 'Float testdata/Prelude.lc 368:14-368:58 'List 'Float testdata/Prelude.lc 368:14-368:58 {a} -> 'Bool -> a -> a->a -testdata/Prelude.lc 368:52-368:55 'List 'Float +testdata/Prelude.lc 368:17-368:22 'Bool +testdata/Prelude.lc 368:17-368:18 'VecScalar V1 V2 +testdata/Prelude.lc 368:17-368:18 'Float +testdata/Prelude.lc 368:21-368:22 'Float +testdata/Prelude.lc 368:36-368:58 'List 'Float +testdata/Prelude.lc 368:36-368:37 V0 +testdata/Prelude.lc 368:36-368:37 'Float +testdata/Prelude.lc 368:39-368:58 'List 'Float +testdata/Prelude.lc 368:39-368:45 'Float -> 'Float -> 'List 'Float +testdata/Prelude.lc 368:47-368:55 'Float +testdata/Prelude.lc 368:47-368:48 V1 +testdata/Prelude.lc 368:47-368:48 'Float testdata/Prelude.lc 368:52-368:55 'Float +testdata/Prelude.lc 368:57-368:58 'Float testdata/Prelude.lc 368:1-368:7 'Float -> 'Float -> 'List 'Float testdata/Prelude.lc 371:10-371:12 {a} -> a->a -> a testdata/Prelude.lc 370:9-372:29 V0->V1 testdata/Prelude.lc 370:9-372:29 V1 testdata/Prelude.lc 370:9-370:24 Type -testdata/Prelude.lc 370:9-370:24 V1 +testdata/Prelude.lc 370:10-370:11 Type +testdata/Prelude.lc 370:10-370:11 V1 +testdata/Prelude.lc 370:16-370:24 Type testdata/Prelude.lc 370:16-370:19 Type +testdata/Prelude.lc 370:23-370:24 Type testdata/Prelude.lc 371:2-372:29 {a} -> 'List a -> 'Int->a testdata/Prelude.lc 371:2-372:29 'List V0 -> 'Int->V2 testdata/Prelude.lc 371:2-372:29 'Int->V2 @@ -785,9 +1191,16 @@ testdata/Prelude.lc 371:2-372:29 V2 testdata/Prelude.lc 371:13-372:29 V1 -> 'List V2 -> V2 testdata/Prelude.lc 371:13-372:29 'List V2 -> V2 testdata/Prelude.lc 371:13-372:29 V2 -testdata/Prelude.lc 372:28-372:29 V0 +testdata/Prelude.lc 372:19-372:29 V0 +testdata/Prelude.lc 372:19-372:21 'List V0 +testdata/Prelude.lc 372:19-372:21 'List V5 +testdata/Prelude.lc 372:26-372:29 'Int +testdata/Prelude.lc 372:26-372:27 V1 +testdata/Prelude.lc 372:26-372:27 'Int testdata/Prelude.lc 372:28-372:29 'Int -testdata/Prelude.lc 372:28-372:29 V3 +testdata/Prelude.lc 371:19-371:20 V3 +testdata/Prelude.lc 372:19-372:29 V3 +testdata/Prelude.lc 372:19-372:21 'List V4 testdata/Prelude.lc 371:13-371:14 'Ordering testdata/Prelude.lc 371:13-371:14 'Int testdata/Prelude.lc 371:2-371:7 'List V2 diff --git a/testdata/accumulate01.reject.out b/testdata/accumulate01.reject.out index 247c14f6..bafc2ed1 100644 --- a/testdata/accumulate01.reject.out +++ b/testdata/accumulate01.reject.out @@ -3,8 +3,6 @@ type error: can not unify with Zero -in "testdata/accumulate01.reject.lc" (line 9, column 23): +in "testdata/accumulate01.reject.lc" (line 9, column 60): fragmentStream = rasterizePrimitives rasterCtx Smooth primitiveStream - fragmentShader = \v -> (V4 1.0 0.0 0.0 1.0) - frame = accumulate fragmentCtx fragmentShader fragmentStream emptyFB - in ScreenOut frame + ^^^^^^^^^^^^^^^ diff --git a/testdata/ambig.out b/testdata/ambig.out index 0f31c90a..6c9fb611 100644 --- a/testdata/ambig.out +++ b/testdata/ambig.out @@ -6,12 +6,15 @@ testdata/ambig.lc 3:26-3:27 Type testdata/ambig.lc 3:28-3:29 Type testdata/ambig.lc 3:6-3:12 Type testdata/ambig.lc 3:19-3:25 {a} -> {b} -> a -> b -> 'Tuple2 a b -testdata/ambig.lc 8:23-8:26 V2 -> V2->V2 -testdata/ambig.lc 8:23-8:26 V2->V2 -testdata/ambig.lc 8:23-8:26 V2 +testdata/ambig.lc 8:21-8:26 V2 -> V2->V2 +testdata/ambig.lc 8:21-8:26 V2->V2 +testdata/ambig.lc 8:21-8:26 V2 +testdata/ambig.lc 8:21-8:22 V12 testdata/ambig.lc 8:23-8:24 V7 testdata/ambig.lc 8:25-8:26 V7 testdata/ambig.lc 8:12-8:16 'Tuple2 V2 V1 testdata/ambig.lc 8:12-8:16 V4 +testdata/ambig.lc 8:28-8:29 'Tuple2 V2 V1 +testdata/ambig.lc 8:28-8:29 V6 testdata/ambig.lc 5:11-5:12 V1 testdata/ambig.lc 5:1-5:2 {a} -> {b} -> {c} -> {d} -> (b -> c->d) -> 'Tuple2 b c -> a->d diff --git a/testdata/complex.out b/testdata/complex.out index 3a7358bd..8fa16de5 100644 --- a/testdata/complex.out +++ b/testdata/complex.out @@ -21,6 +21,9 @@ testdata/complex.lc 8:20-8:27 'Repr->Type testdata/complex.lc 8:28-8:29 'Repr testdata/complex.lc 8:28-8:29 V1 testdata/complex.lc 8:33-8:37 Type +testdata/complex.lc 9:13-9:14 {a:'Repr} -> 'Complex a -> 'Repr +testdata/complex.lc 9:13-9:14 'Complex V0 -> 'Repr +testdata/complex.lc 9:13-9:14 'Repr testdata/complex.lc 9:1-9:5 {a:'Repr} -> 'Complex a -> 'Repr testdata/complex.lc 11:11-11:43 Type testdata/complex.lc 11:11-11:16 Type @@ -29,10 +32,12 @@ testdata/complex.lc 11:20-11:25 Type testdata/complex.lc 11:29-11:43 Type testdata/complex.lc 11:29-11:36 'Repr->Type testdata/complex.lc 11:37-11:43 'Repr -testdata/complex.lc 12:14-12:21 'Float -> 'Float -> 'Complex Normal -testdata/complex.lc 12:14-12:21 'Float -> 'Complex Normal -testdata/complex.lc 12:14-12:21 'Complex Normal +testdata/complex.lc 12:14-12:25 'Float -> 'Float -> 'Complex Normal +testdata/complex.lc 12:14-12:25 'Float -> 'Complex Normal +testdata/complex.lc 12:14-12:25 'Complex Normal testdata/complex.lc 12:14-12:21 {a:'Repr} -> 'Float -> 'Float -> 'Complex a +testdata/complex.lc 12:22-12:23 'Float +testdata/complex.lc 12:24-12:25 'Float testdata/complex.lc 12:1-12:7 'Float -> 'Float -> 'Complex Normal testdata/complex.lc 14:10-14:41 Type testdata/complex.lc 14:10-14:15 Type @@ -41,28 +46,44 @@ testdata/complex.lc 14:19-14:24 Type testdata/complex.lc 14:28-14:41 Type testdata/complex.lc 14:28-14:35 'Repr->Type testdata/complex.lc 14:36-14:41 'Repr -testdata/complex.lc 15:13-15:20 'Float -> 'Float -> 'Complex Polar -testdata/complex.lc 15:13-15:20 'Float -> 'Complex Polar -testdata/complex.lc 15:13-15:20 'Complex Polar +testdata/complex.lc 15:13-15:24 'Float -> 'Float -> 'Complex Polar +testdata/complex.lc 15:13-15:24 'Float -> 'Complex Polar +testdata/complex.lc 15:13-15:24 'Complex Polar testdata/complex.lc 15:13-15:20 {a:'Repr} -> 'Float -> 'Float -> 'Complex a +testdata/complex.lc 15:21-15:22 'Float +testdata/complex.lc 15:23-15:24 'Float testdata/complex.lc 15:1-15:6 'Float -> 'Float -> 'Complex Polar testdata/complex.lc 18:20-18:38 Type testdata/complex.lc 18:20-18:27 'Repr->Type testdata/complex.lc 18:28-18:29 'Repr testdata/complex.lc 18:28-18:29 V1 testdata/complex.lc 18:33-18:38 Type -testdata/complex.lc 19:7-20:29 {a:'Repr} -> 'Complex a -> 'Float -testdata/complex.lc 19:7-20:29 'Complex V0 -> 'Float -testdata/complex.lc 19:7-20:29 'Float -testdata/complex.lc 19:23-19:37 V0 -testdata/complex.lc 19:33-19:37 {a:'Repr} -> 'Float -> 'Float->V3 -testdata/complex.lc 19:33-19:37 'Float -> 'Float->V3 -testdata/complex.lc 19:33-19:37 'Float->V3 -testdata/complex.lc 19:33-19:37 V3 +testdata/complex.lc 19:7-20:34 {a:'Repr} -> 'Complex a -> 'Float +testdata/complex.lc 19:7-20:34 'Complex V0 -> 'Float +testdata/complex.lc 19:7-20:34 'Float +testdata/complex.lc 19:23-19:48 V0 +testdata/complex.lc 19:33-19:48 {a:'Repr} -> 'Float -> 'Float->V3 +testdata/complex.lc 19:33-19:48 'Float -> 'Float->V3 +testdata/complex.lc 19:33-19:48 'Float->V3 +testdata/complex.lc 19:33-19:48 V3 testdata/complex.lc 19:33-19:37 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> a->a +testdata/complex.lc 19:39-19:48 'VecScalar V0 'Float +testdata/complex.lc 19:39-19:42 V1 +testdata/complex.lc 19:39-19:40 V1 +testdata/complex.lc 19:39-19:40 'Float +testdata/complex.lc 19:41-19:42 'Float +testdata/complex.lc 19:45-19:48 'Float +testdata/complex.lc 19:45-19:46 V1 +testdata/complex.lc 19:45-19:46 'Float +testdata/complex.lc 19:47-19:48 'Float testdata/complex.lc 19:23-19:26 'Complex V0 testdata/complex.lc 19:23-19:26 'Complex V3 -testdata/complex.lc 20:23-20:29 'Float +testdata/complex.lc 20:23-20:34 'Float +testdata/complex.lc 20:33-20:34 {a:'Repr} -> 'Float -> 'Float->V3 +testdata/complex.lc 20:33-20:34 'Float -> 'Float->V3 +testdata/complex.lc 20:33-20:34 'Float->V3 +testdata/complex.lc 20:33-20:34 V3 +testdata/complex.lc 20:33-20:34 'Float testdata/complex.lc 20:23-20:29 'Complex V0 testdata/complex.lc 20:23-20:29 'Complex V2 testdata/complex.lc 19:7-19:13 'Repr @@ -73,62 +94,112 @@ testdata/complex.lc 22:20-22:26 'Repr testdata/complex.lc 22:30-22:43 Type testdata/complex.lc 22:30-22:37 'Repr->Type testdata/complex.lc 22:38-22:43 'Repr -testdata/complex.lc 23:18-31:13 'Complex Normal -> 'Complex Polar -testdata/complex.lc 23:18-31:13 'Complex Polar -testdata/complex.lc 24:8-31:13 {a:'Repr} -> 'Float -> 'Float->V3 -testdata/complex.lc 24:8-31:13 'Float -> 'Float->V3 -testdata/complex.lc 24:8-31:13 'Float->V3 -testdata/complex.lc 24:8-31:13 V3 +testdata/complex.lc 23:18-31:24 'Complex Normal -> 'Complex Polar +testdata/complex.lc 23:18-31:24 'Complex Polar +testdata/complex.lc 24:8-31:24 {a:'Repr} -> 'Float -> 'Float->V3 +testdata/complex.lc 24:8-31:24 'Float -> 'Float->V3 +testdata/complex.lc 24:8-31:24 'Float->V3 +testdata/complex.lc 24:8-31:24 V3 testdata/complex.lc 31:9-31:13 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> a->a +testdata/complex.lc 31:15-31:24 'VecScalar V0 'Float +testdata/complex.lc 31:15-31:18 V1 +testdata/complex.lc 31:15-31:16 V1 +testdata/complex.lc 31:15-31:16 'Float +testdata/complex.lc 31:17-31:18 'Float +testdata/complex.lc 31:21-31:24 'Float +testdata/complex.lc 31:21-31:22 V1 +testdata/complex.lc 31:21-31:22 'Float +testdata/complex.lc 31:23-31:24 'Float testdata/complex.lc 24:8-29:17 {a} -> 'Bool -> a -> a->a -testdata/complex.lc 24:16-24:19 'Bool +testdata/complex.lc 24:11-24:19 'Bool +testdata/complex.lc 24:11-24:12 'VecScalar V1 V2 +testdata/complex.lc 24:11-24:12 'Float testdata/complex.lc 24:16-24:19 'Float -testdata/complex.lc 24:8-29:17 V0 +testdata/complex.lc 24:37-24:57 V0 testdata/complex.lc 24:37-24:42 'Float -> 'Float -> 'Complex Polar -testdata/complex.lc 24:8-29:17 'Float -testdata/complex.lc 24:46-24:50 'Float +testdata/complex.lc 24:43-24:44 'Float +testdata/complex.lc 24:46-24:57 'Float testdata/complex.lc 24:46-24:50 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> a->a -testdata/complex.lc 24:8-29:17 'Complex Polar +testdata/complex.lc 24:52-24:57 'VecScalar V0 'Float +testdata/complex.lc 24:52-24:53 'VecScalar V1 V2 +testdata/complex.lc 24:52-24:53 'Float +testdata/complex.lc 24:56-24:57 'Float +testdata/complex.lc 25:8-29:17 'Complex Polar testdata/complex.lc 25:8-29:17 {a} -> 'Bool -> a -> a->a -testdata/complex.lc 25:16-25:31 'Bool -testdata/complex.lc 25:16-25:19 'Bool +testdata/complex.lc 25:11-25:31 'Bool +testdata/complex.lc 25:11-25:19 'Bool +testdata/complex.lc 25:11-25:12 'VecScalar V1 V2 +testdata/complex.lc 25:11-25:12 'Float testdata/complex.lc 25:16-25:19 'Float -testdata/complex.lc 25:28-25:31 'Bool +testdata/complex.lc 25:23-25:31 'Bool +testdata/complex.lc 25:23-25:24 'VecScalar V1 V2 +testdata/complex.lc 25:23-25:24 'Float testdata/complex.lc 25:28-25:31 'Float +testdata/complex.lc 25:37-25:63 V0 testdata/complex.lc 25:37-25:42 'Float -> 'Float -> 'Complex Polar +testdata/complex.lc 25:43-25:44 'Float testdata/complex.lc 25:46-25:63 'Float -testdata/complex.lc 25:46-25:50 V1 +testdata/complex.lc 25:46-25:57 V1 testdata/complex.lc 25:46-25:50 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> a->a +testdata/complex.lc 25:52-25:57 'VecScalar V0 'Float +testdata/complex.lc 25:52-25:53 'VecScalar V1 V2 +testdata/complex.lc 25:52-25:53 'Float +testdata/complex.lc 25:56-25:57 'Float testdata/complex.lc 25:61-25:63 'Float +testdata/complex.lc 26:8-29:17 'Complex Polar testdata/complex.lc 26:8-29:17 {a} -> 'Bool -> a -> a->a -testdata/complex.lc 26:16-26:31 'Bool -testdata/complex.lc 26:16-26:19 'Bool +testdata/complex.lc 26:11-26:31 'Bool +testdata/complex.lc 26:11-26:19 'Bool +testdata/complex.lc 26:11-26:12 'VecScalar V1 V2 +testdata/complex.lc 26:11-26:12 'Float testdata/complex.lc 26:16-26:19 'Float -testdata/complex.lc 26:28-26:31 'Bool +testdata/complex.lc 26:23-26:31 'Bool +testdata/complex.lc 26:23-26:24 'VecScalar V1 V2 +testdata/complex.lc 26:23-26:24 'Float testdata/complex.lc 26:28-26:31 'Float +testdata/complex.lc 26:37-26:63 V0 testdata/complex.lc 26:37-26:42 'Float -> 'Float -> 'Complex Polar +testdata/complex.lc 26:43-26:44 'Float testdata/complex.lc 26:46-26:63 'Float -testdata/complex.lc 26:46-26:50 V1 +testdata/complex.lc 26:46-26:57 V1 testdata/complex.lc 26:46-26:50 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> a->a +testdata/complex.lc 26:52-26:57 'VecScalar V0 'Float +testdata/complex.lc 26:52-26:53 'VecScalar V1 V2 +testdata/complex.lc 26:52-26:53 'Float +testdata/complex.lc 26:56-26:57 'Float testdata/complex.lc 26:61-26:63 'Float +testdata/complex.lc 27:8-29:17 'Complex Polar testdata/complex.lc 27:8-29:17 {a} -> 'Bool -> a -> a->a -testdata/complex.lc 27:16-27:31 'Bool -testdata/complex.lc 27:16-27:19 'Bool +testdata/complex.lc 27:11-27:31 'Bool +testdata/complex.lc 27:11-27:19 'Bool +testdata/complex.lc 27:11-27:12 V0 +testdata/complex.lc 27:11-27:12 'Float testdata/complex.lc 27:16-27:19 'Float -testdata/complex.lc 27:28-27:31 'Bool +testdata/complex.lc 27:23-27:31 'Bool +testdata/complex.lc 27:23-27:24 'VecScalar V1 V2 +testdata/complex.lc 27:23-27:24 'Float testdata/complex.lc 27:28-27:31 'Float +testdata/complex.lc 27:37-27:55 V0 testdata/complex.lc 27:37-27:42 'Float -> 'Float -> 'Complex Polar +testdata/complex.lc 27:43-27:44 'Float testdata/complex.lc 27:47-27:55 'Float testdata/complex.lc 27:47-27:49 'VecScalar V1 V2 testdata/complex.lc 27:47-27:49 'Float testdata/complex.lc 27:52-27:55 'Float +testdata/complex.lc 28:8-29:17 'Complex Polar testdata/complex.lc 28:8-29:17 {a} -> 'Bool -> a -> a->a -testdata/complex.lc 28:16-28:31 'Bool -testdata/complex.lc 28:16-28:19 'Bool +testdata/complex.lc 28:11-28:31 'Bool +testdata/complex.lc 28:11-28:19 'Bool +testdata/complex.lc 28:11-28:12 V0 +testdata/complex.lc 28:11-28:12 'Float testdata/complex.lc 28:16-28:19 'Float -testdata/complex.lc 28:28-28:31 'Bool +testdata/complex.lc 28:23-28:31 'Bool +testdata/complex.lc 28:23-28:24 'VecScalar V1 V2 +testdata/complex.lc 28:23-28:24 'Float testdata/complex.lc 28:28-28:31 'Float +testdata/complex.lc 28:37-28:55 V0 testdata/complex.lc 28:37-28:42 'Float -> 'Float -> 'Complex Polar +testdata/complex.lc 28:43-28:44 'Float testdata/complex.lc 28:46-28:55 'Float testdata/complex.lc 28:46-28:55 V1 testdata/complex.lc 28:46-28:55 'Int @@ -146,20 +217,35 @@ testdata/complex.lc 64:21-64:26 'Repr testdata/complex.lc 64:30-64:44 Type testdata/complex.lc 64:30-64:37 'Repr->Type testdata/complex.lc 64:38-64:44 'Repr -testdata/complex.lc 65:19-65:58 'Complex Polar -> 'Complex Normal -testdata/complex.lc 65:19-65:58 'Complex Normal -testdata/complex.lc 65:28-65:58 {a:'Repr} -> 'Float -> 'Float->V3 -testdata/complex.lc 65:28-65:58 'Float -> 'Float->V3 -testdata/complex.lc 65:28-65:58 'Float->V3 -testdata/complex.lc 65:28-65:58 V3 +testdata/complex.lc 65:19-65:62 'Complex Polar -> 'Complex Normal +testdata/complex.lc 65:19-65:62 'Complex Normal +testdata/complex.lc 65:28-65:62 {a:'Repr} -> 'Float -> 'Float->V3 +testdata/complex.lc 65:28-65:62 'Float -> 'Float->V3 +testdata/complex.lc 65:28-65:62 'Float->V3 +testdata/complex.lc 65:28-65:62 V3 testdata/complex.lc 65:28-65:35 {a:'Repr} -> 'Float -> 'Float -> 'Complex a -testdata/complex.lc 65:41-65:44 'Float +testdata/complex.lc 65:37-65:48 'Float +testdata/complex.lc 65:37-65:38 V1 +testdata/complex.lc 65:37-65:38 'Float +testdata/complex.lc 65:41-65:48 'Float testdata/complex.lc 65:41-65:44 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> a->a -testdata/complex.lc 65:55-65:58 'Float +testdata/complex.lc 65:45-65:48 'VecScalar V0 'Float +testdata/complex.lc 65:45-65:48 'Float +testdata/complex.lc 65:51-65:62 'Float +testdata/complex.lc 65:51-65:52 V1 +testdata/complex.lc 65:51-65:52 'Float +testdata/complex.lc 65:55-65:62 'Float testdata/complex.lc 65:55-65:58 {a} -> {b:'Nat} -> {c : a ~ 'VecScalar b 'Float} -> a->a +testdata/complex.lc 65:59-65:62 'VecScalar V0 'Float +testdata/complex.lc 65:59-65:62 'Float testdata/complex.lc 65:19-65:24 'Complex V0 testdata/complex.lc 65:19-65:24 'Complex Polar testdata/complex.lc 65:1-65:9 'Complex Polar -> 'Complex Normal +testdata/complex.lc 111:38-111:39 {a:'Repr} -> 'Float -> 'Float->V3 +testdata/complex.lc 111:38-111:39 'Float -> 'Float->V3 +testdata/complex.lc 111:38-111:39 'Float->V3 +testdata/complex.lc 111:38-111:39 V3 +testdata/complex.lc 111:38-111:39 'Float testdata/complex.lc 111:25-111:34 'Complex V0 testdata/complex.lc 111:25-111:34 V2 testdata/complex.lc 111:1-111:15 {a:'Repr} -> 'Complex a -> 'Float @@ -174,22 +260,30 @@ testdata/complex.lc 113:54-113:56 V2 testdata/complex.lc 113:60-113:70 Type testdata/complex.lc 113:60-113:67 'Repr->Type testdata/complex.lc 113:68-113:70 'Repr -testdata/complex.lc 114:6-114:58 {a:'Repr} -> {b:'Repr} -> 'Complex a -> 'Complex b -> 'Complex a -testdata/complex.lc 114:6-114:58 {a:'Repr} -> 'Complex V1 -> 'Complex a -> 'Complex V3 -testdata/complex.lc 114:6-114:58 'Complex V1 -> 'Complex V1 -> 'Complex V3 -testdata/complex.lc 114:6-114:58 'Complex V1 -> 'Complex V3 -testdata/complex.lc 114:6-114:58 'Complex V3 -testdata/complex.lc 114:14-114:58 V0 -testdata/complex.lc 114:30-114:58 V0 -testdata/complex.lc 114:44-114:58 {a:'Repr} -> 'Float -> 'Float->V3 -testdata/complex.lc 114:44-114:58 'Float -> 'Float->V3 -testdata/complex.lc 114:44-114:58 'Float->V3 -testdata/complex.lc 114:44-114:58 V3 -testdata/complex.lc 114:51-114:58 {a:'Repr} -> 'Float -> 'Float->V3 -testdata/complex.lc 114:51-114:58 'Float -> 'Float->V3 -testdata/complex.lc 114:51-114:58 'Float->V3 -testdata/complex.lc 114:51-114:58 V3 +testdata/complex.lc 114:6-114:73 {a:'Repr} -> {b:'Repr} -> 'Complex a -> 'Complex b -> 'Complex a +testdata/complex.lc 114:6-114:73 {a:'Repr} -> 'Complex V1 -> 'Complex a -> 'Complex V3 +testdata/complex.lc 114:6-114:73 'Complex V1 -> 'Complex V1 -> 'Complex V3 +testdata/complex.lc 114:6-114:73 'Complex V1 -> 'Complex V3 +testdata/complex.lc 114:6-114:73 'Complex V3 +testdata/complex.lc 114:14-114:73 V0 +testdata/complex.lc 114:30-114:73 V0 +testdata/complex.lc 114:44-114:73 {a:'Repr} -> 'Float -> 'Float->V3 +testdata/complex.lc 114:44-114:73 'Float -> 'Float->V3 +testdata/complex.lc 114:44-114:73 'Float->V3 +testdata/complex.lc 114:44-114:73 V3 +testdata/complex.lc 114:51-114:73 {a:'Repr} -> 'Float -> 'Float->V3 +testdata/complex.lc 114:51-114:73 'Float -> 'Float->V3 +testdata/complex.lc 114:51-114:73 'Float->V3 +testdata/complex.lc 114:51-114:73 V3 testdata/complex.lc 114:51-114:58 {a:'Repr} -> 'Float -> 'Float -> 'Complex a +testdata/complex.lc 114:60-114:65 'Float +testdata/complex.lc 114:60-114:61 V1 +testdata/complex.lc 114:60-114:61 'Float +testdata/complex.lc 114:64-114:65 'Float +testdata/complex.lc 114:68-114:73 'Float +testdata/complex.lc 114:68-114:69 V1 +testdata/complex.lc 114:68-114:69 'Float +testdata/complex.lc 114:72-114:73 'Float testdata/complex.lc 114:44-114:47 'Complex V0 testdata/complex.lc 114:44-114:47 'Complex V10 testdata/complex.lc 114:30-114:33 'Complex V0 @@ -208,22 +302,40 @@ testdata/complex.lc 128:45-128:47 V2 testdata/complex.lc 128:51-128:61 Type testdata/complex.lc 128:51-128:58 'Repr->Type testdata/complex.lc 128:59-128:61 'Repr -testdata/complex.lc 129:6-129:58 {a:'Repr} -> {b:'Repr} -> 'Complex a -> 'Complex b -> 'Complex a -testdata/complex.lc 129:6-129:58 {a:'Repr} -> 'Complex V1 -> 'Complex a -> 'Complex V3 -testdata/complex.lc 129:6-129:58 'Complex V1 -> 'Complex V1 -> 'Complex V3 -testdata/complex.lc 129:6-129:58 'Complex V1 -> 'Complex V3 -testdata/complex.lc 129:6-129:58 'Complex V3 -testdata/complex.lc 129:14-129:58 V0 -testdata/complex.lc 129:30-129:58 V0 -testdata/complex.lc 129:44-129:58 {a:'Repr} -> 'Float -> 'Float->V3 -testdata/complex.lc 129:44-129:58 'Float -> 'Float->V3 -testdata/complex.lc 129:44-129:58 'Float->V3 -testdata/complex.lc 129:44-129:58 V3 -testdata/complex.lc 129:51-129:58 {a:'Repr} -> 'Float -> 'Float->V3 -testdata/complex.lc 129:51-129:58 'Float -> 'Float->V3 -testdata/complex.lc 129:51-129:58 'Float->V3 -testdata/complex.lc 129:51-129:58 V3 +testdata/complex.lc 129:6-129:81 {a:'Repr} -> {b:'Repr} -> 'Complex a -> 'Complex b -> 'Complex a +testdata/complex.lc 129:6-129:81 {a:'Repr} -> 'Complex V1 -> 'Complex a -> 'Complex V3 +testdata/complex.lc 129:6-129:81 'Complex V1 -> 'Complex V1 -> 'Complex V3 +testdata/complex.lc 129:6-129:81 'Complex V1 -> 'Complex V3 +testdata/complex.lc 129:6-129:81 'Complex V3 +testdata/complex.lc 129:14-129:81 V0 +testdata/complex.lc 129:30-129:81 V0 +testdata/complex.lc 129:44-129:81 {a:'Repr} -> 'Float -> 'Float->V3 +testdata/complex.lc 129:44-129:81 'Float -> 'Float->V3 +testdata/complex.lc 129:44-129:81 'Float->V3 +testdata/complex.lc 129:44-129:81 V3 +testdata/complex.lc 129:51-129:81 {a:'Repr} -> 'Float -> 'Float->V3 +testdata/complex.lc 129:51-129:81 'Float -> 'Float->V3 +testdata/complex.lc 129:51-129:81 'Float->V3 +testdata/complex.lc 129:51-129:81 V3 testdata/complex.lc 129:51-129:58 {a:'Repr} -> 'Float -> 'Float -> 'Complex a +testdata/complex.lc 129:60-129:69 'Float +testdata/complex.lc 129:60-129:63 V1 +testdata/complex.lc 129:60-129:61 V1 +testdata/complex.lc 129:60-129:61 'Float +testdata/complex.lc 129:62-129:63 'Float +testdata/complex.lc 129:66-129:69 'Float +testdata/complex.lc 129:66-129:67 V1 +testdata/complex.lc 129:66-129:67 'Float +testdata/complex.lc 129:68-129:69 'Float +testdata/complex.lc 129:72-129:81 'Float +testdata/complex.lc 129:72-129:75 V1 +testdata/complex.lc 129:72-129:73 V1 +testdata/complex.lc 129:72-129:73 'Float +testdata/complex.lc 129:74-129:75 'Float +testdata/complex.lc 129:78-129:81 'Float +testdata/complex.lc 129:78-129:79 V1 +testdata/complex.lc 129:78-129:79 'Float +testdata/complex.lc 129:80-129:81 'Float testdata/complex.lc 129:44-129:47 'Complex V0 testdata/complex.lc 129:44-129:47 'Complex V10 testdata/complex.lc 129:30-129:33 'Complex V0 @@ -233,27 +345,40 @@ testdata/complex.lc 129:6-129:12 'Repr testdata/complex.lc 129:1-129:4 {a:'Repr} -> {b:'Repr} -> 'Complex a -> 'Complex b -> 'Complex a testdata/complex.lc 137:6-137:28 Type testdata/complex.lc 137:6-137:13 'Repr->Type -testdata/complex.lc 137:6-137:28 'Repr -testdata/complex.lc 137:6-137:28 V1 +testdata/complex.lc 137:14-137:15 'Repr +testdata/complex.lc 137:14-137:15 V1 +testdata/complex.lc 137:19-137:28 Type testdata/complex.lc 137:19-137:26 'Repr->Type -testdata/complex.lc 138:8-138:11 {a:'Repr} -> 'Complex a -> 'Complex a -testdata/complex.lc 138:8-138:11 'Complex V0 -> 'Complex V1 -testdata/complex.lc 138:8-138:11 'Complex V1 +testdata/complex.lc 137:27-137:28 'Repr +testdata/complex.lc 138:8-138:24 {a:'Repr} -> 'Complex a -> 'Complex a +testdata/complex.lc 138:8-138:24 'Complex V0 -> 'Complex V1 +testdata/complex.lc 138:8-138:24 'Complex V1 +testdata/complex.lc 138:8-138:15 'Complex V1 testdata/complex.lc 138:8-138:11 {a:'Repr} -> {b:'Repr} -> 'Complex a -> 'Complex b -> 'Complex a +testdata/complex.lc 138:12-138:13 'Complex V1 +testdata/complex.lc 138:12-138:13 'Complex V5 +testdata/complex.lc 138:14-138:15 'Complex V0 +testdata/complex.lc 138:14-138:15 'Complex V3 +testdata/complex.lc 138:23-138:24 'Complex V0 +testdata/complex.lc 138:23-138:24 'Complex V2 testdata/complex.lc 138:1-138:2 {a:'Repr} -> 'Complex a -> 'Complex a testdata/complex.lc 141:8-141:9 {a:'Repr} -> 'Complex a -> 'Complex a -testdata/complex.lc 141:11-141:18 'Complex V0 +testdata/complex.lc 141:11-141:20 'Complex V0 testdata/complex.lc 141:11-141:12 {a:'Repr} -> 'Complex a -> 'Complex a -testdata/complex.lc 141:14-141:18 'Complex V0 +testdata/complex.lc 141:14-141:20 'Complex V0 testdata/complex.lc 141:14-141:15 {a:'Repr} -> 'Complex a -> 'Complex a -testdata/complex.lc 141:17-141:18 'Complex V0 +testdata/complex.lc 141:17-141:20 'Complex V0 testdata/complex.lc 141:17-141:18 {a:'Repr} -> 'Complex a -> 'Complex a +testdata/complex.lc 141:19-141:20 'Complex V0 +testdata/complex.lc 141:19-141:20 V5 testdata/complex.lc 141:1-141:3 {a:'Repr} -> 'Complex a -> 'Complex a testdata/complex.lc 143:8-143:10 {a:'Repr} -> 'Complex a -> 'Complex a testdata/complex.lc 143:1-143:5 {a:'Repr} -> 'Complex a -> 'Complex a -testdata/complex.lc 145:12-145:22 'VecScalar V1 V2 +testdata/complex.lc 145:12-145:24 'VecScalar V1 V2 testdata/complex.lc 145:12-145:16 {a:'Repr} -> 'Complex a -> 'Float -testdata/complex.lc 145:18-145:22 'Complex V0 +testdata/complex.lc 145:18-145:24 'Complex V0 testdata/complex.lc 145:18-145:22 {a:'Repr} -> 'Complex a -> 'Complex a +testdata/complex.lc 145:23-145:24 'Complex V0 +testdata/complex.lc 145:23-145:24 V6 testdata/complex.lc 145:28-145:31 'Float testdata/complex.lc 145:1-145:7 {a:'Repr} -> 'Complex a -> 'Bool diff --git a/testdata/id.out b/testdata/id.out index 444b7deb..cc5dda6b 100644 --- a/testdata/id.out +++ b/testdata/id.out @@ -2,10 +2,11 @@ main is not found tooltips: testdata/id.lc 3:19-3:20 V1 testdata/id.lc 4:8-4:27 {a} -> {b} -> a -> b -> 'Tuple2 a b -testdata/id.lc 4:8-4:27 V1 -testdata/id.lc 4:8-4:27 {a} -> a->a +testdata/id.lc 4:9-4:16 V1 +testdata/id.lc 4:9-4:12 {a} -> a->a testdata/id.lc 4:13-4:16 V0 testdata/id.lc 4:13-4:16 'Float -testdata/id.lc 4:8-4:27 V0 +testdata/id.lc 4:18-4:26 V0 +testdata/id.lc 4:18-4:21 {a} -> a->a testdata/id.lc 4:22-4:26 V0 testdata/id.lc 4:22-4:26 'Bool diff --git a/testdata/instantiate.out b/testdata/instantiate.out index ccebbfb4..c2d33b93 100644 --- a/testdata/instantiate.out +++ b/testdata/instantiate.out @@ -1,7 +1,7 @@ main is not found tooltips: testdata/instantiate.lc 2:13-2:20 {a} -> {b : 'Num ('MatVecScalarElem a)} -> a -> a->a -testdata/instantiate.lc 2:24-2:50 {a} -> {b : 'Num ('MatVecScalarElem a)} -> a -> a->a +testdata/instantiate.lc 2:24-2:25 {a} -> {b : 'Num ('MatVecScalarElem a)} -> a -> a->a testdata/instantiate.lc 2:27-2:37 V1 testdata/instantiate.lc 2:27-2:29 {a} -> a -> a -> 'VecS a (Succ (Succ Zero)) testdata/instantiate.lc 2:30-2:33 V0 diff --git a/testdata/language-features/basic-values/case05.out b/testdata/language-features/basic-values/case05.out index d9414dfb..52e0011c 100644 --- a/testdata/language-features/basic-values/case05.out +++ b/testdata/language-features/basic-values/case05.out @@ -4,3 +4,5 @@ testdata/language-features/basic-values/case05.lc 2:8-2:11 V0 testdata/language-features/basic-values/case05.lc 2:8-2:11 'Char testdata/language-features/basic-values/case05.lc 2:3-2:4 'Ordering testdata/language-features/basic-values/case05.lc 2:3-2:4 'Int +testdata/language-features/basic-values/case05.lc 1:16-1:17 'Int +testdata/language-features/basic-values/case05.lc 1:16-1:17 V1 diff --git a/testdata/language-features/basic-values/case06.out b/testdata/language-features/basic-values/case06.out index 23ab9c12..bea9e236 100644 --- a/testdata/language-features/basic-values/case06.out +++ b/testdata/language-features/basic-values/case06.out @@ -5,3 +5,5 @@ testdata/language-features/basic-values/case06.lc 3:8-3:11 'Char testdata/language-features/basic-values/case06.lc 2:8-2:11 'Char testdata/language-features/basic-values/case06.lc 2:3-2:4 'Ordering testdata/language-features/basic-values/case06.lc 2:3-2:4 'Int +testdata/language-features/basic-values/case06.lc 1:16-1:17 'Int +testdata/language-features/basic-values/case06.lc 1:16-1:17 V1 diff --git a/testdata/language-features/basic-values/deforder03.out b/testdata/language-features/basic-values/deforder03.out index f13b51ff..dd51c6dd 100644 --- a/testdata/language-features/basic-values/deforder03.out +++ b/testdata/language-features/basic-values/deforder03.out @@ -1,5 +1,5 @@ main is not found tooltips: testdata/language-features/basic-values/deforder03.lc 1:17-1:19 'Tuple0 -testdata/language-features/basic-values/deforder03.lc 2:17-3:15 'Tuple0 +testdata/language-features/basic-values/deforder03.lc 2:17-2:18 'Tuple0 testdata/language-features/basic-values/deforder03.lc 3:12-3:15 'Char diff --git a/testdata/language-features/basic-values/deforder06.out b/testdata/language-features/basic-values/deforder06.out index 3570e85e..8883f385 100644 --- a/testdata/language-features/basic-values/deforder06.out +++ b/testdata/language-features/basic-values/deforder06.out @@ -1,5 +1,5 @@ main is not found tooltips: testdata/language-features/basic-values/deforder06.lc 1:23-1:25 'Tuple0 -testdata/language-features/basic-values/deforder06.lc 1:9-2:24 'Tuple0 +testdata/language-features/basic-values/deforder06.lc 2:23-2:24 'Tuple0 testdata/language-features/basic-values/deforder06.lc 1:9-1:12 'Char diff --git a/testdata/language-features/basic-values/lambda03.out b/testdata/language-features/basic-values/lambda03.out index 05a2b356..8ebe69ef 100644 --- a/testdata/language-features/basic-values/lambda03.out +++ b/testdata/language-features/basic-values/lambda03.out @@ -1,4 +1,5 @@ main is not found tooltips: testdata/language-features/basic-values/lambda03.lc 1:22-1:23 V3 +testdata/language-features/basic-values/lambda03.lc 2:25-2:26 V7 testdata/language-features/basic-values/lambda03.lc 2:1-2:5 {a} -> {b} -> {c} -> {d} -> a -> b -> c -> d->a diff --git a/testdata/language-features/basic-values/shadowing02.out b/testdata/language-features/basic-values/shadowing02.out index c21bfda2..71b65252 100644 --- a/testdata/language-features/basic-values/shadowing02.out +++ b/testdata/language-features/basic-values/shadowing02.out @@ -11,7 +11,7 @@ testdata/language-features/basic-values/shadowing02.lc 9:17-9:21 'Float testdata/language-features/basic-values/shadowing02.lc 10:25-10:27 'Tuple0 testdata/language-features/basic-values/shadowing02.lc 11:25-11:28 'Char testdata/language-features/basic-values/shadowing02.lc 12:25-12:29 'Float -testdata/language-features/basic-values/shadowing02.lc 8:17-16:9 {a} -> {b : 'Num a}->a +testdata/language-features/basic-values/shadowing02.lc 13:25-13:26 {a} -> {b : 'Num a}->a testdata/language-features/basic-values/shadowing02.lc 14:20-14:25 'String testdata/language-features/basic-values/shadowing02.lc 15:14-15:16 'Tuple0 testdata/language-features/basic-values/shadowing02.lc 16:6-16:9 'Char diff --git a/testdata/language-features/basic-values/typesig03.out b/testdata/language-features/basic-values/typesig03.out index f540fdbe..0b1228aa 100644 --- a/testdata/language-features/basic-values/typesig03.out +++ b/testdata/language-features/basic-values/typesig03.out @@ -1,9 +1,11 @@ main is not found tooltips: testdata/language-features/basic-values/typesig03.lc 1:9-1:26 Type -testdata/language-features/basic-values/typesig03.lc 1:9-1:26 V5 -testdata/language-features/basic-values/typesig03.lc 1:9-1:26 V4 -testdata/language-features/basic-values/typesig03.lc 1:9-1:26 V3 +testdata/language-features/basic-values/typesig03.lc 1:9-1:10 V5 +testdata/language-features/basic-values/typesig03.lc 1:14-1:26 Type +testdata/language-features/basic-values/typesig03.lc 1:14-1:15 V4 +testdata/language-features/basic-values/typesig03.lc 1:19-1:26 Type +testdata/language-features/basic-values/typesig03.lc 1:19-1:20 V3 testdata/language-features/basic-values/typesig03.lc 1:24-1:26 Type testdata/language-features/basic-values/typesig03.lc 2:14-2:16 {a} -> {b} -> {c} -> a -> b -> c->'Tuple0 testdata/language-features/basic-values/typesig03.lc 2:14-2:16 {a} -> {b} -> V2 -> a -> b->'Tuple0 @@ -14,9 +16,11 @@ testdata/language-features/basic-values/typesig03.lc 2:14-2:16 V2->'Tuple0 testdata/language-features/basic-values/typesig03.lc 2:14-2:16 'Tuple0 testdata/language-features/basic-values/typesig03.lc 2:1-2:5 {a} -> {b} -> {c} -> a -> b -> c->'Tuple0 testdata/language-features/basic-values/typesig03.lc 4:7-4:18 Type -testdata/language-features/basic-values/typesig03.lc 4:7-4:18 V5 -testdata/language-features/basic-values/typesig03.lc 4:7-4:18 V4 -testdata/language-features/basic-values/typesig03.lc 4:7-4:18 V3 +testdata/language-features/basic-values/typesig03.lc 4:7-4:8 V5 +testdata/language-features/basic-values/typesig03.lc 4:10-4:18 Type +testdata/language-features/basic-values/typesig03.lc 4:10-4:11 V4 +testdata/language-features/basic-values/typesig03.lc 4:13-4:18 Type +testdata/language-features/basic-values/typesig03.lc 4:13-4:14 V3 testdata/language-features/basic-values/typesig03.lc 4:16-4:18 Type testdata/language-features/basic-values/typesig03.lc 5:14-5:16 {a} -> {b} -> {c} -> a -> b -> c->'Tuple0 testdata/language-features/basic-values/typesig03.lc 5:14-5:16 {a} -> {b} -> V2 -> a -> b->'Tuple0 diff --git a/testdata/let.out b/testdata/let.out index 19ee9846..250bb863 100644 --- a/testdata/let.out +++ b/testdata/let.out @@ -1,5 +1,7 @@ main is not found tooltips: testdata/let.lc 2:15-2:17 {a} -> a->a +testdata/let.lc 2:18-2:19 V0 +testdata/let.lc 2:18-2:19 V2 testdata/let.lc 2:23-2:24 V2 testdata/let.lc 2:1-2:2 {a} -> a->a diff --git a/testdata/letIndent.out b/testdata/letIndent.out index 347bfbb8..f99ad84d 100644 --- a/testdata/letIndent.out +++ b/testdata/letIndent.out @@ -2,4 +2,5 @@ main is not found tooltips: testdata/letIndent.lc 3:10-3:11 'Int testdata/letIndent.lc 4:10-4:11 'Int +testdata/letIndent.lc 5:7-5:8 V3 testdata/letIndent.lc 2:1-2:4 {a} -> a->a diff --git a/testdata/record01.reject.out b/testdata/record01.reject.out index 6328d97a..84a36049 100644 --- a/testdata/record01.reject.out +++ b/testdata/record01.reject.out @@ -3,6 +3,6 @@ type error: can not unify with 'Float -in "testdata/record01.reject.lc" (line 25, column 11): - field = record.fieldA +in "testdata/record01.reject.lc" (line 26, column 15): in ScreenOut record.fieldA + ^^^^^^ diff --git a/testdata/traceTest.out b/testdata/traceTest.out index 5512d82b..adbb4fa4 100644 --- a/testdata/traceTest.out +++ b/testdata/traceTest.out @@ -1,5 +1,6 @@ main is not found tooltips: +testdata/traceTest.lc 6:8-6:9 V1 testdata/traceTest.lc 6:1-6:3 {a} -> a->a testdata/traceTest.lc 8:17-8:18 Type testdata/traceTest.lc 8:6-8:7 {a} -> a->Type diff --git a/testdata/typeclass.out b/testdata/typeclass.out index 02b9ed55..4f6c9ccc 100644 --- a/testdata/typeclass.out +++ b/testdata/typeclass.out @@ -16,9 +16,13 @@ testdata/typeclass.lc 10:5-10:9 V1 testdata/typeclass.lc 10:1-10:4 'Bool->'Bool testdata/typeclass.lc 14:14-14:19 V0 testdata/typeclass.lc 14:14-14:19 'Bool +testdata/typeclass.lc 13:13-13:14 'Bool +testdata/typeclass.lc 13:13-13:14 V1 testdata/typeclass.lc 13:1-13:5 'Bool testdata/typeclass.lc 13:1-13:5 V2 testdata/typeclass.lc 13:6-13:8 'Bool -> 'Bool->'Bool +testdata/typeclass.lc 16:14-16:15 V0 +testdata/typeclass.lc 16:14-16:15 V2 testdata/typeclass.lc 17:13-17:17 V1 testdata/typeclass.lc 17:13-17:17 'Bool testdata/typeclass.lc 16:1-16:6 'Bool @@ -35,7 +39,8 @@ testdata/typeclass.lc 28:10-28:23 Type testdata/typeclass.lc 28:10-28:20 Type->Type testdata/typeclass.lc 28:10-28:20 Type testdata/typeclass.lc 28:10-28:14 Type -testdata/typeclass.lc 28:10-28:14 Type->Type +testdata/typeclass.lc 28:10-28:12 Type->Type +testdata/typeclass.lc 28:13-28:14 Type testdata/typeclass.lc 28:18-28:20 Type testdata/typeclass.lc 28:22-28:23 Type testdata/typeclass.lc 19:7-19:9 Type->Type @@ -50,12 +55,14 @@ testdata/typeclass.lc 20:18-20:19 Type testdata/typeclass.lc 20:23-20:27 Type testdata/typeclass.lc 24:13-32:25 {a} -> {b : 'Eq a} -> a -> a->'Bool testdata/typeclass.lc 24:13-32:25 {a : 'Eq V0} -> V1 -> V2->'Bool -testdata/typeclass.lc 25:5-26:21 {a:'Unit} -> 'Bool -> 'Bool->'Bool -testdata/typeclass.lc 25:5-26:21 'Bool -> 'Bool->'Bool -testdata/typeclass.lc 25:5-26:21 'Bool->'Bool -testdata/typeclass.lc 25:5-26:21 'Bool -testdata/typeclass.lc 26:18-26:21 V0 +testdata/typeclass.lc 25:5-26:23 {a:'Unit} -> 'Bool -> 'Bool->'Bool +testdata/typeclass.lc 25:5-26:23 'Bool -> 'Bool->'Bool +testdata/typeclass.lc 25:5-26:23 'Bool->'Bool +testdata/typeclass.lc 25:5-26:23 'Bool +testdata/typeclass.lc 26:18-26:23 V0 testdata/typeclass.lc 26:18-26:21 'Bool->'Bool +testdata/typeclass.lc 26:22-26:23 'Bool +testdata/typeclass.lc 25:17-25:18 'Bool testdata/typeclass.lc 25:5-25:9 'Bool testdata/typeclass.lc 28:22-32:25 {a : 'Eq V0} -> V1 -> V2->'Bool testdata/typeclass.lc 29:20-32:25 a:Type -> {b : 'Eq a} -> 'List a -> 'List a -> 'Bool @@ -73,8 +80,20 @@ testdata/typeclass.lc 30:18-32:25 V0 -> 'List V1 -> 'Bool testdata/typeclass.lc 30:18-32:25 'List V1 -> 'Bool testdata/typeclass.lc 30:18-32:25 'Bool testdata/typeclass.lc 32:20-32:25 V0 +testdata/typeclass.lc 30:26-30:32 V0 -> 'List V1 -> 'Bool +testdata/typeclass.lc 30:26-30:32 'List V1 -> 'Bool +testdata/typeclass.lc 30:26-30:32 'Bool +testdata/typeclass.lc 30:26-30:27 V1 +testdata/typeclass.lc 30:26-30:27 V7 +testdata/typeclass.lc 30:31-30:32 V6 +testdata/typeclass.lc 30:31-30:32 V3 testdata/typeclass.lc 30:18-30:22 'List V3 testdata/typeclass.lc 30:18-30:22 'List V7 testdata/typeclass.lc 20:5-20:9 {a} -> {b : 'Eq a} -> a -> a->'Bool testdata/typeclass.lc 22:10-22:13 'Bool->'Bool +testdata/typeclass.lc 22:15-22:21 'Bool +testdata/typeclass.lc 22:15-22:16 V1 +testdata/typeclass.lc 22:15-22:16 V5 +testdata/typeclass.lc 22:20-22:21 V4 +testdata/typeclass.lc 22:20-22:21 V2 testdata/typeclass.lc 22:3-22:5 {a} -> {b : 'Eq a} -> a -> a->'Bool diff --git a/testdata/zip01.out b/testdata/zip01.out index a3c1bbcd..50befb68 100644 --- a/testdata/zip01.out +++ b/testdata/zip01.out @@ -1,20 +1,36 @@ main is not found tooltips: testdata/zip01.lc 2:1-2:5 {a} -> a->a -> a -testdata/zip01.lc 1:9-4:27 V0->V1 -testdata/zip01.lc 1:9-4:27 V1 +testdata/zip01.lc 1:9-4:40 V0->V1 +testdata/zip01.lc 1:9-4:40 V1 testdata/zip01.lc 1:9-1:30 Type -testdata/zip01.lc 1:9-1:30 V3 -testdata/zip01.lc 1:9-1:30 V2 +testdata/zip01.lc 1:10-1:11 Type +testdata/zip01.lc 1:10-1:11 V3 +testdata/zip01.lc 1:16-1:30 Type +testdata/zip01.lc 1:17-1:18 Type +testdata/zip01.lc 1:17-1:18 V2 +testdata/zip01.lc 1:23-1:30 Type +testdata/zip01.lc 1:24-1:29 Type testdata/zip01.lc 1:24-1:29 Type -> Type->Type -testdata/zip01.lc 4:22-4:27 {a} -> {b} -> 'List a -> 'List b -> 'List ('Tuple2 a b) -testdata/zip01.lc 4:22-4:27 {a} -> 'List V1 -> 'List a -> 'List ('Tuple2 V3 a) -testdata/zip01.lc 4:22-4:27 'List V1 -> 'List V1 -> 'List ('Tuple2 V3 V2) -testdata/zip01.lc 4:22-4:27 'List V1 -> 'List ('Tuple2 V3 V2) -testdata/zip01.lc 4:22-4:27 'List ('Tuple2 V3 V2) -testdata/zip01.lc 4:22-4:27 V1 -> 'List V2 -> 'List V2 -testdata/zip01.lc 4:22-4:27 'List V2 -> 'List V2 -testdata/zip01.lc 4:22-4:27 'List V2 +testdata/zip01.lc 1:25-1:26 Type +testdata/zip01.lc 1:27-1:28 Type +testdata/zip01.lc 4:22-4:40 {a} -> {b} -> 'List a -> 'List b -> 'List ('Tuple2 a b) +testdata/zip01.lc 4:22-4:40 {a} -> 'List V1 -> 'List a -> 'List ('Tuple2 V3 a) +testdata/zip01.lc 4:22-4:40 'List V1 -> 'List V1 -> 'List ('Tuple2 V3 V2) +testdata/zip01.lc 4:22-4:40 'List V1 -> 'List ('Tuple2 V3 V2) +testdata/zip01.lc 4:22-4:40 'List ('Tuple2 V3 V2) +testdata/zip01.lc 4:22-4:40 V1 -> 'List V2 -> 'List V2 +testdata/zip01.lc 4:22-4:40 'List V2 -> 'List V2 +testdata/zip01.lc 4:22-4:40 'List V2 testdata/zip01.lc 4:22-4:27 V0 testdata/zip01.lc 4:22-4:27 {a} -> {b} -> a -> b -> 'Tuple2 a b +testdata/zip01.lc 4:23-4:24 V1 +testdata/zip01.lc 4:23-4:24 V10 +testdata/zip01.lc 4:25-4:26 V0 +testdata/zip01.lc 4:25-4:26 V4 +testdata/zip01.lc 4:30-4:40 'List ('Tuple2 V6 V2) +testdata/zip01.lc 4:30-4:34 {a} -> {b} -> 'List a -> 'List b -> 'List ('Tuple2 a b) +testdata/zip01.lc 4:35-4:37 'List V1 +testdata/zip01.lc 4:35-4:37 'List V8 +testdata/zip01.lc 4:38-4:40 'List V2 testdata/zip01.lc 2:1-2:5 {a} -> {b} -> 'List a -> 'List b -> 'List ('Tuple2 a b) -- cgit v1.2.3