diff options
author | Péter Diviánszky <divipp@gmail.com> | 2016-01-27 11:03:00 +0100 |
---|---|---|
committer | Péter Diviánszky <divipp@gmail.com> | 2016-01-27 11:03:19 +0100 |
commit | 2092ca9e3d9482d939d61ebaf10d71578169e0ec (patch) | |
tree | 5ca52fb0275749d563c4ef18788ea9382609dbde | |
parent | 22d39bea7e429c8f25d1d283636165afae642a4e (diff) |
refactoring: use less STyped
-rw-r--r-- | lc/Internals.lc | 3 | ||||
-rw-r--r-- | src/LambdaCube/Compiler/Infer.hs | 93 | ||||
-rw-r--r-- | testdata/Internals.out | 394 |
3 files changed, 241 insertions, 249 deletions
diff --git a/lc/Internals.lc b/lc/Internals.lc index 5c359e0a..aedb62fc 100644 --- a/lc/Internals.lc +++ b/lc/Internals.lc | |||
@@ -2,6 +2,9 @@ | |||
2 | -- declarations of builtin functions and data types used by the compiler | 2 | -- declarations of builtin functions and data types used by the compiler |
3 | module Internals where | 3 | module Internals where |
4 | 4 | ||
5 | -- used for type annotations | ||
6 | typeAnn x = x | ||
7 | |||
5 | undefined :: forall (a :: Type) . a | 8 | undefined :: forall (a :: Type) . a |
6 | 9 | ||
7 | primFix :: forall (a :: Type) . (a -> a) -> a | 10 | primFix :: forall (a :: Type) . (a -> a) -> a |
diff --git a/src/LambdaCube/Compiler/Infer.hs b/src/LambdaCube/Compiler/Infer.hs index 60ac7819..90b0d34f 100644 --- a/src/LambdaCube/Compiler/Infer.hs +++ b/src/LambdaCube/Compiler/Infer.hs | |||
@@ -13,6 +13,7 @@ | |||
13 | {-# OPTIONS_GHC -fno-warn-overlapping-patterns #-} -- TODO: remove | 13 | {-# OPTIONS_GHC -fno-warn-overlapping-patterns #-} -- TODO: remove |
14 | {-# OPTIONS_GHC -fno-warn-unused-binds #-} -- TODO: remove | 14 | {-# OPTIONS_GHC -fno-warn-unused-binds #-} -- TODO: remove |
15 | {-# OPTIONS_GHC -fno-warn-orphans #-} -- instance NFData SourcePos | 15 | {-# OPTIONS_GHC -fno-warn-orphans #-} -- instance NFData SourcePos |
16 | -- {-# OPTIONS_GHC -O0 #-} | ||
16 | module LambdaCube.Compiler.Infer | 17 | module LambdaCube.Compiler.Infer |
17 | ( Binder (..), SName, Lit(..), Visibility(..), FunName(..), CaseFunName(..), ConName(..), TyConName(..), Export(..), ModuleR(..) | 18 | ( Binder (..), SName, Lit(..), Visibility(..), FunName(..), CaseFunName(..), ConName(..), TyConName(..), Export(..), ModuleR(..) |
18 | , Exp (..), GlobalEnv | 19 | , Exp (..), GlobalEnv |
@@ -95,6 +96,7 @@ dsInfo = asks fst | |||
95 | 96 | ||
96 | -------------------------------------------------------------------------------- lexing | 97 | -------------------------------------------------------------------------------- lexing |
97 | 98 | ||
99 | {-# NOINLINE lexer #-} | ||
98 | lexer :: Pa.GenTokenParser (IndentStream (CharIndentStream String)) SourcePos InnerP | 100 | lexer :: Pa.GenTokenParser (IndentStream (CharIndentStream String)) SourcePos InnerP |
99 | lexer = makeTokenParser lexeme $ makeIndentLanguageDef style | 101 | lexer = makeTokenParser lexeme $ makeIndentLanguageDef style |
100 | where | 102 | where |
@@ -394,20 +396,18 @@ data Visibility = Hidden | Visible | |||
394 | 396 | ||
395 | sLit a = STyped mempty (ELit a, litType a) | 397 | sLit a = STyped mempty (ELit a, litType a) |
396 | pattern Primitive n mf t <- Let n mf (Just t) _ (SBuiltin "undefined") where Primitive n mf t = Let n mf (Just t) (map fst $ fst $ getParamsS t) $ SBuiltin "undefined" | 398 | pattern Primitive n mf t <- Let n mf (Just t) _ (SBuiltin "undefined") where Primitive n mf t = Let n mf (Just t) (map fst $ fst $ getParamsS t) $ SBuiltin "undefined" |
397 | pattern SType <- STyped _ (TType, TType) where SType = STyped (debugSI "pattern SType") (TType, TType) | 399 | pattern SType = SBuiltin "'Type" |
398 | pattern SPi h a b <- SBind _ (BPi h) _ a b where SPi h a b = sBind (BPi h) (SData (debugSI "patternSPi2", "pattern_spi_name")) a b | 400 | pattern SPi h a b <- SBind _ (BPi h) _ a b where SPi h a b = sBind (BPi h) (SData (debugSI "patternSPi2", "pattern_spi_name")) a b |
399 | pattern SLam h a b <- SBind _ (BLam h) _ a b where SLam h a b = sBind (BLam h) (SData (debugSI "patternSLam2", "pattern_slam_name")) a b | 401 | pattern SLam h a b <- SBind _ (BLam h) _ a b where SLam h a b = sBind (BLam h) (SData (debugSI "patternSLam2", "pattern_slam_name")) a b |
400 | pattern Wildcard t <- SBind _ BMeta _ t (SVar _ 0) where Wildcard t = sBind BMeta (SData (debugSI "pattern Wildcard2", "pattern_wildcard_name")) t (SVar (debugSI "pattern Wildcard2", ".wc") 0) | 402 | pattern Wildcard t <- SBind _ BMeta _ t (SVar _ 0) where Wildcard t = sBind BMeta (SData (debugSI "pattern Wildcard2", "pattern_wildcard_name")) t (SVar (debugSI "pattern Wildcard2", ".wc") 0) |
401 | pattern Wildcard_ si t <- SBind _ BMeta _ t (SVar (si, _) 0) | 403 | pattern Wildcard_ si t <- SBind _ BMeta _ t (SVar (si, _) 0) |
402 | pattern SAppH a b <- SApp _ Hidden a b where SAppH a b = sApp Hidden a b | 404 | pattern SApp' h a b <- SApp _ h a b where SApp' h a b = sApp h a b |
403 | pattern SAppV a b <- SApp _ Visible a b where SAppV a b = sApp Visible a b | 405 | pattern SAppH a b = SApp' Hidden a b |
406 | pattern SAppV a b = SApp' Visible a b | ||
404 | pattern SAppV2 f a b = f `SAppV` a `SAppV` b | 407 | pattern SAppV2 f a b = f `SAppV` a `SAppV` b |
405 | pattern SLamV a = SLam Visible (Wildcard SType) a | 408 | pattern SLamV a = SLam Visible (Wildcard SType) a |
406 | pattern SAnn a t <- STyped _ (Lam Visible TType (Lam Visible (Var 0) (Var 0)), TType :~> Var 0 :~> Var 1) `SAppV` t `SAppV` a -- a :: t ~~> id t a | 409 | pattern SAnn a t = SBuiltin "typeAnn" `SAppH` t `SAppV` a |
407 | where SAnn a t = STyped (debugSI "pattern SAnn") (Lam Visible TType (Lam Visible (Var 0) (Var 0)), TType :~> Var 0 :~> Var 1) `SAppV` t `SAppV` a | 410 | pattern TyType a = SAnn a SType |
408 | pattern TyType a <- STyped _ (Lam Visible TType (Var 0), TType :~> TType) `SAppV` a | ||
409 | where TyType a = STyped mempty (Lam Visible TType (Var 0), TType :~> TType) `SAppV` a | ||
410 | -- same as (a :: TType) -- a :: TType ~~> (\(x :: TType) -> x) a | ||
411 | pattern SLabelEnd a = SBuiltin "labelend" `SAppV` a | 411 | pattern SLabelEnd a = SBuiltin "labelend" `SAppV` a |
412 | 412 | ||
413 | pattern SBuiltin s <- SGlobal (_, s) where SBuiltin s = SGlobal (debugSI $ "builtin " ++ s, s) | 413 | pattern SBuiltin s <- SGlobal (_, s) where SBuiltin s = SGlobal (debugSI $ "builtin " ++ s, s) |
@@ -607,7 +607,7 @@ toNat n | n > 0 = SAppV (SBuiltin "Succ") $ toNat (n-1) | |||
607 | addForalls :: Extensions -> [SName] -> SExp -> SExp | 607 | addForalls :: Extensions -> [SName] -> SExp -> SExp |
608 | addForalls exs defined x = foldl f x [v | v@(vh:_) <- reverse $ freeS x, v `notElem'` defined, isLower vh || NoConstructorNamespace `elem` exs] | 608 | addForalls exs defined x = foldl f x [v | v@(vh:_) <- reverse $ freeS x, v `notElem'` defined, isLower vh || NoConstructorNamespace `elem` exs] |
609 | where | 609 | where |
610 | f e v = SPi Hidden (Wildcard SType) $ substSG0 v e | 610 | f e v = SPi Hidden (Wildcard SType) $ substSG0 (mempty, v) e |
611 | {- | 611 | {- |
612 | defined defs = ("'Type":) $ flip foldMap defs $ \case | 612 | defined defs = ("'Type":) $ flip foldMap defs $ \case |
613 | TypeAnn (_, x) _ -> [x] | 613 | TypeAnn (_, x) _ -> [x] |
@@ -958,9 +958,9 @@ valueDef = do | |||
958 | mkLets :: Bool -> DesugarInfo -> [Stmt]{-where block-} -> SExp{-main expression-} -> SExp{-big let with lambdas; replaces global names with de bruijn indices-} | 958 | mkLets :: Bool -> DesugarInfo -> [Stmt]{-where block-} -> SExp{-main expression-} -> SExp{-big let with lambdas; replaces global names with de bruijn indices-} |
959 | mkLets _ _ [] e = e | 959 | mkLets _ _ [] e = e |
960 | mkLets False ge (Let n _ mt ar (downS 0 -> Just x): ds) e | 960 | mkLets False ge (Let n _ mt ar (downS 0 -> Just x): ds) e |
961 | = SLet (False, n, SData Nothing, ar) (maybe id (flip SAnn . addForalls {-todo-}[] []) mt x) (substSG0 (snd n) $ mkLets False ge ds e) | 961 | = SLet (False, n, SData Nothing, ar) (maybe id (flip SAnn . addForalls {-todo-}[] []) mt x) (substSG0 n $ mkLets False ge ds e) |
962 | mkLets True ge (Let n _ mt ar (downS 0 -> Just x): ds) e | 962 | mkLets True ge (Let n _ mt ar (downS 0 -> Just x): ds) e |
963 | = SLet (False, n, SData Nothing, ar) (maybe id (flip SAnn . addForalls {-todo-}[] []) mt x) (substSG0 (snd n) $ mkLets True ge ds e) | 963 | = SLet (False, n, SData Nothing, ar) (maybe id (flip SAnn . addForalls {-todo-}[] []) mt x) (substSG0 n $ mkLets True ge ds e) |
964 | mkLets le ge (ValueDef p x: ds) e = patLam id ge p (dbff (getPVars p) $ mkLets le ge ds e) `SAppV` x -- (p = e; f) --> (\p -> f) e | 964 | mkLets le ge (ValueDef p x: ds) e = patLam id ge p (dbff (getPVars p) $ mkLets le ge ds e) `SAppV` x -- (p = e; f) --> (\p -> f) e |
965 | mkLets _ _ (x: ds) e = error $ "mkLets: " ++ show x | 965 | mkLets _ _ (x: ds) e = error $ "mkLets: " ++ show x |
966 | 966 | ||
@@ -1786,25 +1786,32 @@ usedE i e | |||
1786 | | i >= maxDB e = False | 1786 | | i >= maxDB e = False |
1787 | | otherwise = ((getAny .) . foldE ((Any .) . (==))) i e | 1787 | | otherwise = ((getAny .) . foldE ((Any .) . (==))) i e |
1788 | 1788 | ||
1789 | mapS = mapS_ (\si _ x -> SGlobal (si, x)) | 1789 | mapS' = mapS__ (const . SGlobal) |
1790 | mapS_ gg ff = mapS__ gg ff $ \sn i j -> case ff i $ Var j of | ||
1791 | Var k -> SVar sn k | ||
1792 | -- x -> STyped x -- todo | ||
1793 | mapS__ gg f1 f2 h = g where | 1790 | mapS__ gg f1 f2 h = g where |
1794 | g i = \case | 1791 | g i = \case |
1795 | SApp si v a b -> SApp si v (g i a) (g i b) | 1792 | SApp si v a b -> SApp si v (g i a) (g i b) |
1796 | SLet x a b -> SLet x (g i a) (g (h i) b) | 1793 | SLet x a b -> SLet x (g i a) (g (h i) b) |
1797 | SBind si k si' a b -> SBind si k si' (g i a) (g (h i) b) | 1794 | SBind si k si' a b -> SBind si k si' (g i a) (g (h i) b) |
1798 | STyped si (x, t) -> STyped si (f1 i x, f1 i t) | 1795 | STyped si (x, t) -> STyped si (f1 i x, f1 i t) |
1799 | SVar sn j -> f2 sn i j | 1796 | SVar sn j -> f2 sn j i |
1800 | SGlobal (si, x) -> gg si i x | 1797 | SGlobal sn -> gg sn i |
1801 | 1798 | ||
1802 | rearrangeS :: (Int -> Int) -> SExp -> SExp | 1799 | rearrangeS :: (Int -> Int) -> SExp -> SExp |
1803 | rearrangeS f = mapS__ (\si _ x -> SGlobal (si,x)) (const id) (\sn i j -> SVar sn $ if j < i then j else i + f (j - i)) (+1) 0 | 1800 | rearrangeS f = mapS' (const id){-todo-} (\sn j i -> SVar sn $ if j < i then j else i + f (j - i)) (+1) 0 |
1804 | 1801 | ||
1805 | upS__ i n = mapS (`upE` n) (+1) i | 1802 | upS__ i n = mapS' (`upE` n) (\sn j i -> SVar sn $ if j < i then j else j+n) (+1) i |
1806 | upS = upS__ 0 1 | 1803 | upS = upS__ 0 1 |
1807 | 1804 | ||
1805 | -- todo: review | ||
1806 | substS j x = mapS' (uncurry $ substE "substS") f2 ((+1) *** up1E 0) (j, x) | ||
1807 | where | ||
1808 | f2 sn j i = case uncurry (substE "substS'") i $ Var j of | ||
1809 | Var k -> SVar sn k | ||
1810 | x -> STyped (fst sn) (x, error "type of x"{-todo-}) | ||
1811 | |||
1812 | substSG j = mapS__ (\sn x -> if sn == j then SVar sn x else SGlobal sn) (const id) (\sn j -> const $ SVar sn j) (+1) | ||
1813 | substSG0 n = substSG n 0 . upS | ||
1814 | |||
1808 | up1E i e | isClosed e = e | 1815 | up1E i e | isClosed e = e |
1809 | up1E i e = case e of | 1816 | up1E i e = case e of |
1810 | Var k -> Var $ if k >= i then k+1 else k | 1817 | Var k -> Var $ if k >= i then k+1 else k |
@@ -1825,22 +1832,11 @@ up1E i e = case e of | |||
1825 | 1832 | ||
1826 | upE i n = iterateN n (up1E i) | 1833 | upE i n = iterateN n (up1E i) |
1827 | 1834 | ||
1828 | substSS :: Int -> SExp -> SExp -> SExp | ||
1829 | substSS k x = mapS__ (\si _ x -> SGlobal (si, x)) (error "substSS") (\sn (i, x) j -> case compare j i of | ||
1830 | EQ -> x | ||
1831 | GT -> SVar sn $ j - 1 | ||
1832 | LT -> SVar sn j | ||
1833 | ) ((+1) *** upS) (k, x) | ||
1834 | substS j x = mapS (uncurry $ substE "substS") ((+1) *** up1E 0) (j, x) | ||
1835 | substSG :: SName -> (SI -> SExp) -> SExp -> SExp | ||
1836 | substSG j = mapS_ (\si x i -> if i == j then x si else SGlobal (si, i)) (const id) (fmap upS) | ||
1837 | substSG0 n e = substSG n (\si -> SVar (si, n) 0) $ upS e | ||
1838 | |||
1839 | dbf' = dbf_ 0 | 1835 | dbf' = dbf_ 0 |
1840 | dbf_ j xs e = foldl (\e (i, (si, n)) -> substSG n (\si -> SVar (si, n) i) e) e $ zip [j..] xs | 1836 | dbf_ j xs e = foldl (\e (i, sn) -> substSG sn i e) e $ zip [j..] xs |
1841 | 1837 | ||
1842 | dbff :: DBNames -> SExp -> SExp | 1838 | dbff :: DBNames -> SExp -> SExp |
1843 | dbff ns e = foldr (substSG0 . snd) e ns | 1839 | dbff ns e = foldr substSG0 e ns |
1844 | 1840 | ||
1845 | substE err = substE_ (error $ "substE: todo: environment required in " ++ err) -- todo: remove | 1841 | substE err = substE_ (error $ "substE: todo: environment required in " ++ err) -- todo: remove |
1846 | 1842 | ||
@@ -1849,23 +1845,14 @@ substE_ te i x e | {-i >= maxDB e-} isClosed e = e | |||
1849 | substE_ te i x e = case e of | 1845 | substE_ te i x e = case e of |
1850 | Label lk z v -> label lk (substE "slab" i x z) $ substE_ te{-todo: label env?-} i x v | 1846 | Label lk z v -> label lk (substE "slab" i x z) $ substE_ te{-todo: label env?-} i x v |
1851 | Var k -> case compare k i of GT -> Var $ k - 1; LT -> Var k; EQ -> x | 1847 | Var k -> case compare k i of GT -> Var $ k - 1; LT -> Var k; EQ -> x |
1852 | Lam h a b -> let -- question: is mutual recursion good here? | 1848 | Lam h a b -> Lam h (substE_ te i x a) (substE_ te (i+1) (up1E 0 x) b) |
1853 | a' = substE_ te i x a | 1849 | Meta a b -> Meta (substE_ te i x a) (substE_ te (i+1) (up1E 0 x) b) |
1854 | b' = substE_ (EBind2 (BLam h) a' te) (i+1) (up1E 0 x) b | 1850 | Pi h a b -> Pi h (substE_ te i x a) (substE_ te (i+1) (up1E 0 x) b) |
1855 | in Lam h a' b' | 1851 | Fun s as -> eval te $ Fun s $ substE_ te i x <$> as |
1856 | Meta a b -> let -- question: is mutual recursion good here? | 1852 | CaseFun s as -> eval te $ CaseFun s $ substE_ te i x <$> as |
1857 | a' = substE_ te i x a | 1853 | TyCaseFun s as -> eval te $ TyCaseFun s $ substE_ te i x <$> as |
1858 | b' = substE_ (EBind2 BMeta a' te) (i+1) (up1E 0 x) b | 1854 | Con s as -> Con s $ substE_ te i x <$> as |
1859 | in Meta a' b' | 1855 | TyCon s as -> TyCon s $ substE_ te i x <$> as |
1860 | Pi h a b -> let -- question: is mutual recursion good here? | ||
1861 | a' = substE_ te i x a | ||
1862 | b' = substE_ (EBind2 (BPi h) a' te) (i+1) (up1E 0 x) b | ||
1863 | in Pi h a' b' | ||
1864 | Fun s as -> eval te $ Fun s [substE_ te{-todo: precise env?-} i x a | a <- as] | ||
1865 | CaseFun s as -> eval te $ CaseFun s [substE_ te{-todo: precise env?-} i x a | a <- as] | ||
1866 | TyCaseFun s as -> eval te $ TyCaseFun s [substE_ te{-todo: precise env?-} i x a | a <- as] | ||
1867 | Con s as -> Con s [substE_ te{-todo-} i x a | a <- as] | ||
1868 | TyCon s as -> TyCon s [substE_ te{-todo-} i x a | a <- as] | ||
1869 | TType -> TType | 1856 | TType -> TType |
1870 | ELit l -> ELit l | 1857 | ELit l -> ELit l |
1871 | App a b -> app_ (substE_ te i x a) (substE_ te i x b) -- todo: precise env? | 1858 | App a b -> app_ (substE_ te i x a) (substE_ te i x b) -- todo: precise env? |
@@ -1981,10 +1968,10 @@ eval te = \case | |||
1981 | 1968 | ||
1982 | Fun n@(FunName "natElim" _ _) [a, z, s, Succ x] -> let -- todo: replace let with better abstraction | 1969 | Fun n@(FunName "natElim" _ _) [a, z, s, Succ x] -> let -- todo: replace let with better abstraction |
1983 | sx = s `app_` x | 1970 | sx = s `app_` x |
1984 | in sx `app_` eval (EApp2 mempty Visible sx te) (Fun n [a, z, s, x]) | 1971 | in sx `app_` eval te (Fun n [a, z, s, x]) |
1985 | FunN "natElim" [_, z, s, Zero] -> z | 1972 | FunN "natElim" [_, z, s, Zero] -> z |
1986 | Fun na@(FunName "finElim" _ _) [m, z, s, n, ConN "FSucc" [i, x]] -> let six = s `app_` i `app_` x-- todo: replace let with better abstraction | 1973 | Fun na@(FunName "finElim" _ _) [m, z, s, n, ConN "FSucc" [i, x]] -> let six = s `app_` i `app_` x-- todo: replace let with better abstraction |
1987 | in six `app_` eval (EApp2 mempty Visible six te) (Fun na [m, z, s, i, x]) | 1974 | in six `app_` eval te (Fun na [m, z, s, i, x]) |
1988 | FunN "finElim" [m, z, s, n, ConN "FZero" [i]] -> z `app_` i | 1975 | FunN "finElim" [m, z, s, n, ConN "FZero" [i]] -> z `app_` i |
1989 | 1976 | ||
1990 | FunN "'TFFrameBuffer" [TyConN "'Image" [n, t]] -> TFrameBuffer n t | 1977 | FunN "'TFFrameBuffer" [TyConN "'Image" [n, t]] -> TFrameBuffer n t |
@@ -2192,7 +2179,7 @@ inferN tracelevel = infer where | |||
2192 | checkN_ te e t | 2179 | checkN_ te e t |
2193 | -- temporal hack | 2180 | -- temporal hack |
2194 | | x@(SGlobal (si, MatchName n)) `SAppV` SLamV (Wildcard_ siw _) `SAppV` a `SAppV` SVar siv v `SAppV` b <- e | 2181 | | x@(SGlobal (si, MatchName n)) `SAppV` SLamV (Wildcard_ siw _) `SAppV` a `SAppV` SVar siv v `SAppV` b <- e |
2195 | = infer te $ x `SAppV` STyped mempty (Lam Visible TType $ substE "checkN" (v+1) (Var 0) $ up1E 0 t, TType :~> TType) `SAppV` a `SAppV` SVar siv v `SAppV` b | 2182 | = infer te $ x `SAppV` SLam Visible SType (STyped mempty (substE "checkN" (v+1) (Var 0) $ up1E 0 t, TType)) `SAppV` a `SAppV` SVar siv v `SAppV` b |
2196 | -- temporal hack | 2183 | -- temporal hack |
2197 | | x@(SGlobal (si, "'NatCase")) `SAppV` SLamV (Wildcard_ siw _) `SAppV` a `SAppV` b `SAppV` SVar siv v <- e | 2184 | | x@(SGlobal (si, "'NatCase")) `SAppV` SLamV (Wildcard_ siw _) `SAppV` a `SAppV` b `SAppV` SVar siv v <- e |
2198 | = infer te $ x `SAppV` STyped mempty (Lam Visible TNat $ substE "checkN" (v+1) (Var 0) $ up1E 0 t, TNat :~> TType) `SAppV` a `SAppV` b `SAppV` SVar siv v | 2185 | = infer te $ x `SAppV` STyped mempty (Lam Visible TNat $ substE "checkN" (v+1) (Var 0) $ up1E 0 t, TNat :~> TType) `SAppV` a `SAppV` b `SAppV` SVar siv v |
@@ -2228,7 +2215,7 @@ inferN tracelevel = infer where | |||
2228 | -} | 2215 | -} |
2229 | checkSame te (Wildcard _) a = True | 2216 | checkSame te (Wildcard _) a = True |
2230 | checkSame te (SGlobal (_,"'Type")) TType = True | 2217 | checkSame te (SGlobal (_,"'Type")) TType = True |
2231 | checkSame te (STyped _ (TType, TType)) TType = True | 2218 | checkSame te SType TType = True |
2232 | checkSame te (SBind _ BMeta _ SType (STyped _ (Var 0, _))) a = True | 2219 | checkSame te (SBind _ BMeta _ SType (STyped _ (Var 0, _))) a = True |
2233 | checkSame te a b = error $ "checkSame: " ++ show (a, b) | 2220 | checkSame te a b = error $ "checkSame: " ++ show (a, b) |
2234 | 2221 | ||
diff --git a/testdata/Internals.out b/testdata/Internals.out index dc29d25e..9aea069f 100644 --- a/testdata/Internals.out +++ b/testdata/Internals.out | |||
@@ -1,207 +1,209 @@ | |||
1 | main is not found | 1 | main is not found |
2 | tooltips: | 2 | tooltips: |
3 | testdata/Internals.lc 5:1-5:10 {a}->a | 3 | testdata/Internals.lc 6:1-6:8 {a} -> a->a |
4 | testdata/Internals.lc 5:27-5:31 Type | 4 | testdata/Internals.lc 6:13-6:14 V1 |
5 | testdata/Internals.lc 5:35-5:36 Type | 5 | testdata/Internals.lc 8:1-8:10 {a}->a |
6 | testdata/Internals.lc 7:1-7:8 {a} -> a->a -> a | 6 | testdata/Internals.lc 8:27-8:31 Type |
7 | testdata/Internals.lc 7:25-7:29 Type | 7 | testdata/Internals.lc 8:35-8:36 Type |
8 | testdata/Internals.lc 7:33-7:46 Type | 8 | testdata/Internals.lc 10:1-10:8 {a} -> a->a -> a |
9 | testdata/Internals.lc 7:34-7:35 Type | 9 | testdata/Internals.lc 10:25-10:29 Type |
10 | testdata/Internals.lc 7:39-7:40 Type | 10 | testdata/Internals.lc 10:33-10:46 Type |
11 | testdata/Internals.lc 7:45-7:46 Type | 11 | testdata/Internals.lc 10:34-10:35 Type |
12 | testdata/Internals.lc 9:6-9:10 Type | 12 | testdata/Internals.lc 10:39-10:40 Type |
13 | testdata/Internals.lc 9:6-9:15 Type | 13 | testdata/Internals.lc 10:45-10:46 Type |
14 | testdata/Internals.lc 9:13-9:15 Unit | 14 | testdata/Internals.lc 12:6-12:10 Type |
15 | testdata/Internals.lc 10:6-10:12 Type | 15 | testdata/Internals.lc 12:6-12:15 Type |
16 | testdata/Internals.lc 11:6-11:11 String->Type | Type | 16 | testdata/Internals.lc 12:13-12:15 Unit |
17 | testdata/Internals.lc 11:18-11:24 Type | 17 | testdata/Internals.lc 13:6-13:12 Type |
18 | testdata/Internals.lc 14:6-14:12 Type | 18 | testdata/Internals.lc 14:6-14:11 String->Type | Type |
19 | testdata/Internals.lc 14:6-14:21 Type | 19 | testdata/Internals.lc 14:18-14:24 Type |
20 | testdata/Internals.lc 14:15-14:21 Tuple0 | 20 | testdata/Internals.lc 17:6-17:12 Type |
21 | testdata/Internals.lc 15:6-15:12 Type | Type->Type | 21 | testdata/Internals.lc 17:6-17:21 Type |
22 | testdata/Internals.lc 15:6-15:23 Type | 22 | testdata/Internals.lc 17:15-17:21 Tuple0 |
23 | testdata/Internals.lc 15:6-15:25 Type | 23 | testdata/Internals.lc 18:6-18:12 Type | Type->Type |
24 | testdata/Internals.lc 15:17-15:23 Tuple1 V2 | Type | {a} -> a -> Tuple1 a | 24 | testdata/Internals.lc 18:6-18:23 Type |
25 | testdata/Internals.lc 15:24-15:25 Type | 25 | testdata/Internals.lc 18:6-18:25 Type |
26 | testdata/Internals.lc 16:6-16:12 Type | Type -> Type->Type | 26 | testdata/Internals.lc 18:17-18:23 Tuple1 V2 | Type | {a} -> a -> Tuple1 a |
27 | testdata/Internals.lc 16:6-16:25 Type | 27 | testdata/Internals.lc 18:24-18:25 Type |
28 | testdata/Internals.lc 16:6-16:29 Type | 28 | testdata/Internals.lc 19:6-19:12 Type | Type -> Type->Type |
29 | testdata/Internals.lc 16:19-16:25 Tuple2 V4 V3 | Type | {a} -> {b} -> a -> b -> Tuple2 a b | 29 | testdata/Internals.lc 19:6-19:25 Type |
30 | testdata/Internals.lc 16:26-16:27 Type | 30 | testdata/Internals.lc 19:6-19:29 Type |
31 | testdata/Internals.lc 16:28-16:29 Type | 31 | testdata/Internals.lc 19:19-19:25 Tuple2 V4 V3 | Type | {a} -> {b} -> a -> b -> Tuple2 a b |
32 | testdata/Internals.lc 17:6-17:12 Type | Type -> Type -> Type->Type | 32 | testdata/Internals.lc 19:26-19:27 Type |
33 | testdata/Internals.lc 17:6-17:27 Type | 33 | testdata/Internals.lc 19:28-19:29 Type |
34 | testdata/Internals.lc 17:6-17:33 Type | 34 | testdata/Internals.lc 20:6-20:12 Type | Type -> Type -> Type->Type |
35 | testdata/Internals.lc 17:21-17:27 Tuple3 V6 V5 V4 | Type | {a} -> {b} -> {c} -> a -> b -> c -> Tuple3 a b c | 35 | testdata/Internals.lc 20:6-20:27 Type |
36 | testdata/Internals.lc 17:28-17:29 Type | 36 | testdata/Internals.lc 20:6-20:33 Type |
37 | testdata/Internals.lc 17:30-17:31 Type | 37 | testdata/Internals.lc 20:21-20:27 Tuple3 V6 V5 V4 | Type | {a} -> {b} -> {c} -> a -> b -> c -> Tuple3 a b c |
38 | testdata/Internals.lc 17:32-17:33 Type | 38 | testdata/Internals.lc 20:28-20:29 Type |
39 | testdata/Internals.lc 18:6-18:12 Type | Type -> Type -> Type -> Type->Type | 39 | testdata/Internals.lc 20:30-20:31 Type |
40 | testdata/Internals.lc 18:6-18:29 Type | 40 | testdata/Internals.lc 20:32-20:33 Type |
41 | testdata/Internals.lc 18:6-18:37 Type | 41 | testdata/Internals.lc 21:6-21:12 Type | Type -> Type -> Type -> Type->Type |
42 | testdata/Internals.lc 18:23-18:29 Tuple4 V8 V7 V6 V5 | Type | {a} -> {b} -> {c} -> {d} -> a -> b -> c -> d -> Tuple4 a b c d | 42 | testdata/Internals.lc 21:6-21:29 Type |
43 | testdata/Internals.lc 18:30-18:31 Type | 43 | testdata/Internals.lc 21:6-21:37 Type |
44 | testdata/Internals.lc 18:32-18:33 Type | 44 | testdata/Internals.lc 21:23-21:29 Tuple4 V8 V7 V6 V5 | Type | {a} -> {b} -> {c} -> {d} -> a -> b -> c -> d -> Tuple4 a b c d |
45 | testdata/Internals.lc 18:34-18:35 Type | 45 | testdata/Internals.lc 21:30-21:31 Type |
46 | testdata/Internals.lc 18:36-18:37 Type | 46 | testdata/Internals.lc 21:32-21:33 Type |
47 | testdata/Internals.lc 19:6-19:12 Type | Type -> Type -> Type -> Type -> Type->Type | 47 | testdata/Internals.lc 21:34-21:35 Type |
48 | testdata/Internals.lc 19:6-19:31 Type | 48 | testdata/Internals.lc 21:36-21:37 Type |
49 | testdata/Internals.lc 19:6-19:41 Type | 49 | testdata/Internals.lc 22:6-22:12 Type | Type -> Type -> Type -> Type -> Type->Type |
50 | testdata/Internals.lc 19:25-19:31 Tuple5 V10 V9 V8 V7 V6 | Type | {a} -> {b} -> {c} -> {d} -> {e} -> a -> b -> c -> d -> e -> Tuple5 a b c d e | 50 | testdata/Internals.lc 22:6-22:31 Type |
51 | testdata/Internals.lc 19:32-19:33 Type | 51 | testdata/Internals.lc 22:6-22:41 Type |
52 | testdata/Internals.lc 19:34-19:35 Type | 52 | testdata/Internals.lc 22:25-22:31 Tuple5 V10 V9 V8 V7 V6 | Type | {a} -> {b} -> {c} -> {d} -> {e} -> a -> b -> c -> d -> e -> Tuple5 a b c d e |
53 | testdata/Internals.lc 19:36-19:37 Type | 53 | testdata/Internals.lc 22:32-22:33 Type |
54 | testdata/Internals.lc 19:38-19:39 Type | 54 | testdata/Internals.lc 22:34-22:35 Type |
55 | testdata/Internals.lc 19:40-19:41 Type | 55 | testdata/Internals.lc 22:36-22:37 Type |
56 | testdata/Internals.lc 25:1-25:8 a:Type -> a -> a->a | 56 | testdata/Internals.lc 22:38-22:39 Type |
57 | testdata/Internals.lc 25:24-25:25 V1 | 57 | testdata/Internals.lc 22:40-22:41 Type |
58 | testdata/Internals.lc 25:24-25:35 Type | 58 | testdata/Internals.lc 28:1-28:8 a:Type -> a -> a->a |
59 | testdata/Internals.lc 25:29-25:30 Type | 59 | testdata/Internals.lc 28:24-28:25 V1 |
60 | testdata/Internals.lc 25:29-25:35 Type | 60 | testdata/Internals.lc 28:24-28:35 Type |
61 | testdata/Internals.lc 25:34-25:35 Type | 61 | testdata/Internals.lc 28:29-28:30 Type |
62 | testdata/Internals.lc 27:13-27:17 a:Type -> a -> a->Type | 62 | testdata/Internals.lc 28:29-28:35 Type |
63 | testdata/Internals.lc 27:24-27:28 Type | 63 | testdata/Internals.lc 28:34-28:35 Type |
64 | testdata/Internals.lc 27:36-27:37 Type | 64 | testdata/Internals.lc 30:13-30:17 a:Type -> a -> a->Type |
65 | testdata/Internals.lc 27:36-27:46 Type | 65 | testdata/Internals.lc 30:24-30:28 Type |
66 | testdata/Internals.lc 27:45-27:46 Type | 66 | testdata/Internals.lc 30:36-30:37 Type |
67 | testdata/Internals.lc 28:13-28:15 Type -> Type->Type | 67 | testdata/Internals.lc 30:36-30:46 Type |
68 | testdata/Internals.lc 31:1-31:4 Unit -> Unit->Unit | 68 | testdata/Internals.lc 30:45-30:46 Type |
69 | testdata/Internals.lc 31:8-31:12 Type | 69 | testdata/Internals.lc 31:13-31:15 Type -> Type->Type |
70 | testdata/Internals.lc 31:16-31:20 Type | 70 | testdata/Internals.lc 34:1-34:4 Unit -> Unit->Unit |
71 | testdata/Internals.lc 31:16-31:28 Type | 71 | testdata/Internals.lc 34:8-34:12 Type |
72 | testdata/Internals.lc 31:24-31:28 Type | 72 | testdata/Internals.lc 34:16-34:20 Type |
73 | testdata/Internals.lc 34:6-34:9 Type | 73 | testdata/Internals.lc 34:16-34:28 Type |
74 | testdata/Internals.lc 35:6-35:10 Type | 74 | testdata/Internals.lc 34:24-34:28 Type |
75 | testdata/Internals.lc 36:6-36:11 Type | 75 | testdata/Internals.lc 37:6-37:9 Type |
76 | testdata/Internals.lc 37:6-37:10 Type | 76 | testdata/Internals.lc 38:6-38:10 Type |
77 | testdata/Internals.lc 39:6-39:10 Type | 77 | testdata/Internals.lc 39:6-39:11 Type |
78 | testdata/Internals.lc 39:6-39:25 Type | 78 | testdata/Internals.lc 40:6-40:10 Type |
79 | testdata/Internals.lc 39:13-39:18 Bool | 79 | testdata/Internals.lc 42:6-42:10 Type |
80 | testdata/Internals.lc 39:21-39:25 Bool | 80 | testdata/Internals.lc 42:6-42:25 Type |
81 | testdata/Internals.lc 41:6-41:14 Type | 81 | testdata/Internals.lc 42:13-42:18 Bool |
82 | testdata/Internals.lc 41:6-41:29 Type | 82 | testdata/Internals.lc 42:21-42:25 Bool |
83 | testdata/Internals.lc 41:17-41:19 Ordering | 83 | testdata/Internals.lc 44:6-44:14 Type |
84 | testdata/Internals.lc 41:22-41:24 Ordering | 84 | testdata/Internals.lc 44:6-44:29 Type |
85 | testdata/Internals.lc 41:27-41:29 Ordering | 85 | testdata/Internals.lc 44:17-44:19 Ordering |
86 | testdata/Internals.lc 44:1-44:14 Int->Word | 86 | testdata/Internals.lc 44:22-44:24 Ordering |
87 | testdata/Internals.lc 44:24-44:27 Type | 87 | testdata/Internals.lc 44:27-44:29 Ordering |
88 | testdata/Internals.lc 44:33-44:37 Type | 88 | testdata/Internals.lc 47:1-47:14 Int->Word |
89 | testdata/Internals.lc 45:1-45:15 Int->Float | 89 | testdata/Internals.lc 47:24-47:27 Type |
90 | testdata/Internals.lc 45:24-45:27 Type | ||
91 | testdata/Internals.lc 45:33-45:38 Type | ||
92 | testdata/Internals.lc 46:1-46:15 Int -> Int->Ordering | ||
93 | testdata/Internals.lc 46:24-46:27 Type | ||
94 | testdata/Internals.lc 46:33-46:36 Type | ||
95 | testdata/Internals.lc 46:33-46:50 Type | ||
96 | testdata/Internals.lc 46:42-46:50 Type | ||
97 | testdata/Internals.lc 47:1-47:16 Word -> Word->Ordering | ||
98 | testdata/Internals.lc 47:24-47:28 Type | ||
99 | testdata/Internals.lc 47:33-47:37 Type | 90 | testdata/Internals.lc 47:33-47:37 Type |
100 | testdata/Internals.lc 47:33-47:50 Type | 91 | testdata/Internals.lc 48:1-48:15 Int->Float |
101 | testdata/Internals.lc 47:42-47:50 Type | 92 | testdata/Internals.lc 48:24-48:27 Type |
102 | testdata/Internals.lc 48:1-48:17 Float -> Float->Ordering | ||
103 | testdata/Internals.lc 48:24-48:29 Type | ||
104 | testdata/Internals.lc 48:33-48:38 Type | 93 | testdata/Internals.lc 48:33-48:38 Type |
105 | testdata/Internals.lc 48:33-48:50 Type | 94 | testdata/Internals.lc 49:1-49:15 Int -> Int->Ordering |
106 | testdata/Internals.lc 48:42-48:50 Type | 95 | testdata/Internals.lc 49:24-49:27 Type |
107 | testdata/Internals.lc 49:1-49:16 Char -> Char->Ordering | 96 | testdata/Internals.lc 49:33-49:36 Type |
108 | testdata/Internals.lc 49:24-49:28 Type | ||
109 | testdata/Internals.lc 49:33-49:37 Type | ||
110 | testdata/Internals.lc 49:33-49:50 Type | 97 | testdata/Internals.lc 49:33-49:50 Type |
111 | testdata/Internals.lc 49:42-49:50 Type | 98 | testdata/Internals.lc 49:42-49:50 Type |
112 | testdata/Internals.lc 50:1-50:18 String -> String->Ordering | 99 | testdata/Internals.lc 50:1-50:16 Word -> Word->Ordering |
113 | testdata/Internals.lc 50:24-50:30 Type | 100 | testdata/Internals.lc 50:24-50:28 Type |
114 | testdata/Internals.lc 50:34-50:40 Type | 101 | testdata/Internals.lc 50:33-50:37 Type |
115 | testdata/Internals.lc 50:34-50:52 Type | 102 | testdata/Internals.lc 50:33-50:50 Type |
116 | testdata/Internals.lc 50:44-50:52 Type | 103 | testdata/Internals.lc 50:42-50:50 Type |
117 | testdata/Internals.lc 51:1-51:14 Int->Int | 104 | testdata/Internals.lc 51:1-51:17 Float -> Float->Ordering |
118 | testdata/Internals.lc 51:24-51:27 Type | 105 | testdata/Internals.lc 51:24-51:29 Type |
119 | testdata/Internals.lc 51:33-51:36 Type | 106 | testdata/Internals.lc 51:33-51:38 Type |
120 | testdata/Internals.lc 52:1-52:15 Word->Word | 107 | testdata/Internals.lc 51:33-51:50 Type |
108 | testdata/Internals.lc 51:42-51:50 Type | ||
109 | testdata/Internals.lc 52:1-52:16 Char -> Char->Ordering | ||
121 | testdata/Internals.lc 52:24-52:28 Type | 110 | testdata/Internals.lc 52:24-52:28 Type |
122 | testdata/Internals.lc 52:33-52:37 Type | 111 | testdata/Internals.lc 52:33-52:37 Type |
123 | testdata/Internals.lc 53:1-53:16 Float->Float | 112 | testdata/Internals.lc 52:33-52:50 Type |
124 | testdata/Internals.lc 53:24-53:29 Type | 113 | testdata/Internals.lc 52:42-52:50 Type |
125 | testdata/Internals.lc 53:33-53:38 Type | 114 | testdata/Internals.lc 53:1-53:18 String -> String->Ordering |
126 | testdata/Internals.lc 54:1-54:11 Int -> Int->Int | 115 | testdata/Internals.lc 53:24-53:30 Type |
116 | testdata/Internals.lc 53:34-53:40 Type | ||
117 | testdata/Internals.lc 53:34-53:52 Type | ||
118 | testdata/Internals.lc 53:44-53:52 Type | ||
119 | testdata/Internals.lc 54:1-54:14 Int->Int | ||
127 | testdata/Internals.lc 54:24-54:27 Type | 120 | testdata/Internals.lc 54:24-54:27 Type |
128 | testdata/Internals.lc 54:33-54:36 Type | 121 | testdata/Internals.lc 54:33-54:36 Type |
129 | testdata/Internals.lc 54:33-54:45 Type | 122 | testdata/Internals.lc 55:1-55:15 Word->Word |
130 | testdata/Internals.lc 54:42-54:45 Type | 123 | testdata/Internals.lc 55:24-55:28 Type |
131 | testdata/Internals.lc 55:1-55:11 Int -> Int->Int | 124 | testdata/Internals.lc 55:33-55:37 Type |
132 | testdata/Internals.lc 55:24-55:27 Type | 125 | testdata/Internals.lc 56:1-56:16 Float->Float |
133 | testdata/Internals.lc 55:33-55:36 Type | 126 | testdata/Internals.lc 56:24-56:29 Type |
134 | testdata/Internals.lc 55:33-55:45 Type | 127 | testdata/Internals.lc 56:33-56:38 Type |
135 | testdata/Internals.lc 55:42-55:45 Type | 128 | testdata/Internals.lc 57:1-57:11 Int -> Int->Int |
136 | testdata/Internals.lc 56:1-56:11 Int -> Int->Int | 129 | testdata/Internals.lc 57:24-57:27 Type |
137 | testdata/Internals.lc 56:24-56:27 Type | 130 | testdata/Internals.lc 57:33-57:36 Type |
138 | testdata/Internals.lc 56:33-56:36 Type | 131 | testdata/Internals.lc 57:33-57:45 Type |
139 | testdata/Internals.lc 56:33-56:45 Type | 132 | testdata/Internals.lc 57:42-57:45 Type |
140 | testdata/Internals.lc 56:42-56:45 Type | 133 | testdata/Internals.lc 58:1-58:11 Int -> Int->Int |
141 | testdata/Internals.lc 57:1-57:14 Float->Float | 134 | testdata/Internals.lc 58:24-58:27 Type |
142 | testdata/Internals.lc 57:24-57:29 Type | ||
143 | testdata/Internals.lc 57:33-57:38 Type | ||
144 | testdata/Internals.lc 58:1-58:10 Float->Int | ||
145 | testdata/Internals.lc 58:24-58:29 Type | ||
146 | testdata/Internals.lc 58:33-58:36 Type | 135 | testdata/Internals.lc 58:33-58:36 Type |
147 | testdata/Internals.lc 61:19-61:23 Type | 136 | testdata/Internals.lc 58:33-58:45 Type |
148 | testdata/Internals.lc 61:19-61:38 Type | 137 | testdata/Internals.lc 58:42-58:45 Type |
149 | testdata/Internals.lc 61:27-61:28 V2 | 138 | testdata/Internals.lc 59:1-59:11 Int -> Int->Int |
150 | testdata/Internals.lc 61:27-61:38 Type | 139 | testdata/Internals.lc 59:24-59:27 Type |
151 | testdata/Internals.lc 61:32-61:33 Type | 140 | testdata/Internals.lc 59:33-59:36 Type |
152 | testdata/Internals.lc 61:32-61:38 Type | 141 | testdata/Internals.lc 59:33-59:45 Type |
153 | testdata/Internals.lc 61:37-61:38 Type | 142 | testdata/Internals.lc 59:42-59:45 Type |
154 | testdata/Internals.lc 62:1-62:15 {a} -> Bool -> a -> a->a | 143 | testdata/Internals.lc 60:1-60:14 Float->Float |
155 | testdata/Internals.lc 62:16-62:20 Bool | 144 | testdata/Internals.lc 60:24-60:29 Type |
156 | testdata/Internals.lc 62:16-63:29 Bool -> V1 -> V2->V3 | V1 -> V2->V3 | V2->V3 | V3 | 145 | testdata/Internals.lc 60:33-60:38 Type |
157 | testdata/Internals.lc 62:28-62:29 V3 | 146 | testdata/Internals.lc 61:1-61:10 Float->Int |
158 | testdata/Internals.lc 62:28-63:29 Bool->V4 | 147 | testdata/Internals.lc 61:24-61:29 Type |
159 | testdata/Internals.lc 63:28-63:29 V4 | 148 | testdata/Internals.lc 61:33-61:36 Type |
160 | testdata/Internals.lc 66:7-66:10 Type->Type | 149 | testdata/Internals.lc 64:19-64:23 Type |
161 | testdata/Internals.lc 66:7-67:22 Type | 150 | testdata/Internals.lc 64:19-64:38 Type |
162 | testdata/Internals.lc 66:7-68:32 Type | 151 | testdata/Internals.lc 64:27-64:28 V2 |
163 | testdata/Internals.lc 66:7-69:19 Type | 152 | testdata/Internals.lc 64:27-64:38 Type |
164 | testdata/Internals.lc 67:3-67:10 {a} -> {b : Num a} -> Int->a | 153 | testdata/Internals.lc 64:32-64:33 Type |
165 | testdata/Internals.lc 67:14-67:17 Type | 154 | testdata/Internals.lc 64:32-64:38 Type |
166 | testdata/Internals.lc 67:14-67:22 Type | 155 | testdata/Internals.lc 64:37-64:38 Type |
167 | testdata/Internals.lc 67:21-67:22 Type | 156 | testdata/Internals.lc 65:1-65:15 {a} -> Bool -> a -> a->a |
168 | testdata/Internals.lc 68:3-68:10 {a} -> {b : Num a} -> a -> a->Ordering | 157 | testdata/Internals.lc 65:16-65:20 Bool |
169 | testdata/Internals.lc 68:14-68:15 Type | 158 | testdata/Internals.lc 65:16-66:29 Bool -> V1 -> V2->V3 | V1 -> V2->V3 | V2->V3 | V3 |
170 | testdata/Internals.lc 68:14-68:32 Type | 159 | testdata/Internals.lc 65:28-65:29 V3 |
171 | testdata/Internals.lc 68:19-68:20 Type | 160 | testdata/Internals.lc 65:28-66:29 Bool->V4 |
172 | testdata/Internals.lc 68:19-68:32 Type | 161 | testdata/Internals.lc 66:28-66:29 V4 |
173 | testdata/Internals.lc 68:24-68:32 Type | 162 | testdata/Internals.lc 69:7-69:10 Type->Type |
174 | testdata/Internals.lc 69:3-69:9 {a} -> {b : Num a} -> a->a | 163 | testdata/Internals.lc 69:7-70:22 Type |
175 | testdata/Internals.lc 69:13-69:14 Type | 164 | testdata/Internals.lc 69:7-71:32 Type |
176 | testdata/Internals.lc 69:13-69:19 Type | 165 | testdata/Internals.lc 69:7-72:19 Type |
177 | testdata/Internals.lc 69:18-69:19 Type | 166 | testdata/Internals.lc 70:3-70:10 {a} -> {b : Num a} -> Int->a |
178 | testdata/Internals.lc 71:14-71:17 Type | 167 | testdata/Internals.lc 70:14-70:17 Type |
179 | testdata/Internals.lc 71:14-72:20 ({a : Num V0} -> Int->V2) -> {d : Num V1} -> Int->V3 | 168 | testdata/Internals.lc 70:14-70:22 Type |
180 | testdata/Internals.lc 71:14-73:27 ({a : Num V0} -> V1 -> V2->Ordering) -> {e : Num V1} -> V2 -> V3->Ordering | 169 | testdata/Internals.lc 70:21-70:22 Type |
181 | testdata/Internals.lc 71:14-74:26 ({a : Num V0} -> V1->V2) -> {d : Num V1} -> V2->V3 | 170 | testdata/Internals.lc 71:3-71:10 {a} -> {b : Num a} -> a -> a->Ordering |
182 | testdata/Internals.lc 71:14-79:19 Type | Type->Type | 171 | testdata/Internals.lc 71:14-71:15 Type |
183 | testdata/Internals.lc 71:14-80:27 {a : Num V0} -> Int->V2 | {a} -> {b : Num a} -> Int->a | 172 | testdata/Internals.lc 71:14-71:32 Type |
184 | testdata/Internals.lc 71:14-81:29 {a : Num V0} -> V1 -> V2->Ordering | {a} -> {b : Num a} -> a -> a->Ordering | 173 | testdata/Internals.lc 71:19-71:20 Type |
185 | testdata/Internals.lc 71:14-82:28 {a : Num V0} -> V1->V2 | {a} -> {b : Num a} -> a->a | 174 | testdata/Internals.lc 71:19-71:32 Type |
186 | testdata/Internals.lc 72:13-72:20 Int->Int | 175 | testdata/Internals.lc 71:24-71:32 Type |
187 | testdata/Internals.lc 72:19-72:20 Int | 176 | testdata/Internals.lc 72:3-72:9 {a} -> {b : Num a} -> a->a |
188 | testdata/Internals.lc 73:13-73:27 Int -> Int->Ordering | 177 | testdata/Internals.lc 72:13-72:14 Type |
189 | testdata/Internals.lc 74:13-74:26 Int->Int | 178 | testdata/Internals.lc 72:13-72:19 Type |
190 | testdata/Internals.lc 75:14-75:18 Type | 179 | testdata/Internals.lc 72:18-72:19 Type |
191 | testdata/Internals.lc 75:14-76:26 ({a : Num V0} -> Int->V2) -> {d : Num V1} -> Int->V3 | 180 | testdata/Internals.lc 74:14-74:17 Type |
192 | testdata/Internals.lc 75:14-77:28 ({a : Num V0} -> V1 -> V2->Ordering) -> {e : Num V1} -> V2 -> V3->Ordering | 181 | testdata/Internals.lc 74:14-75:20 ({a : Num V0} -> Int->V2) -> {d : Num V1} -> Int->V3 |
193 | testdata/Internals.lc 75:14-78:27 ({a : Num V0} -> V1->V2) -> {d : Num V1} -> V2->V3 | 182 | testdata/Internals.lc 74:14-76:27 ({a : Num V0} -> V1 -> V2->Ordering) -> {e : Num V1} -> V2 -> V3->Ordering |
194 | testdata/Internals.lc 75:14-79:19 Type | 183 | testdata/Internals.lc 74:14-77:26 ({a : Num V0} -> V1->V2) -> {d : Num V1} -> V2->V3 |
195 | testdata/Internals.lc 75:14-80:27 {a : Num V0} -> Int->V2 | 184 | testdata/Internals.lc 74:14-82:19 Type | Type->Type |
196 | testdata/Internals.lc 75:14-81:29 {a : Num V0} -> V1 -> V2->Ordering | 185 | testdata/Internals.lc 74:14-83:27 {a : Num V0} -> Int->V2 | {a} -> {b : Num a} -> Int->a |
197 | testdata/Internals.lc 75:14-82:28 {a : Num V0} -> V1->V2 | 186 | testdata/Internals.lc 74:14-84:29 {a : Num V0} -> V1 -> V2->Ordering | {a} -> {b : Num a} -> a -> a->Ordering |
198 | testdata/Internals.lc 76:13-76:26 Int->Word | 187 | testdata/Internals.lc 74:14-85:28 {a : Num V0} -> V1->V2 | {a} -> {b : Num a} -> a->a |
199 | testdata/Internals.lc 77:13-77:28 Word -> Word->Ordering | 188 | testdata/Internals.lc 75:13-75:20 Int->Int |
200 | testdata/Internals.lc 78:13-78:27 Word->Word | 189 | testdata/Internals.lc 75:19-75:20 Int |
201 | testdata/Internals.lc 79:14-79:19 Type | 190 | testdata/Internals.lc 76:13-76:27 Int -> Int->Ordering |
202 | testdata/Internals.lc 79:14-80:27 ({a : Num V0} -> Int->V2) -> {d : Num V1} -> Int->V3 | 191 | testdata/Internals.lc 77:13-77:26 Int->Int |
203 | testdata/Internals.lc 79:14-81:29 ({a : Num V0} -> V1 -> V2->Ordering) -> {e : Num V1} -> V2 -> V3->Ordering | 192 | testdata/Internals.lc 78:14-78:18 Type |
204 | testdata/Internals.lc 79:14-82:28 ({a : Num V0} -> V1->V2) -> {d : Num V1} -> V2->V3 | 193 | testdata/Internals.lc 78:14-79:26 ({a : Num V0} -> Int->V2) -> {d : Num V1} -> Int->V3 |
205 | testdata/Internals.lc 80:13-80:27 Int->Float | 194 | testdata/Internals.lc 78:14-80:28 ({a : Num V0} -> V1 -> V2->Ordering) -> {e : Num V1} -> V2 -> V3->Ordering |
206 | testdata/Internals.lc 81:13-81:29 Float -> Float->Ordering | 195 | testdata/Internals.lc 78:14-81:27 ({a : Num V0} -> V1->V2) -> {d : Num V1} -> V2->V3 |
207 | testdata/Internals.lc 82:13-82:28 Float->Float | 196 | testdata/Internals.lc 78:14-82:19 Type |
197 | testdata/Internals.lc 78:14-83:27 {a : Num V0} -> Int->V2 | ||
198 | testdata/Internals.lc 78:14-84:29 {a : Num V0} -> V1 -> V2->Ordering | ||
199 | testdata/Internals.lc 78:14-85:28 {a : Num V0} -> V1->V2 | ||
200 | testdata/Internals.lc 79:13-79:26 Int->Word | ||
201 | testdata/Internals.lc 80:13-80:28 Word -> Word->Ordering | ||
202 | testdata/Internals.lc 81:13-81:27 Word->Word | ||
203 | testdata/Internals.lc 82:14-82:19 Type | ||
204 | testdata/Internals.lc 82:14-83:27 ({a : Num V0} -> Int->V2) -> {d : Num V1} -> Int->V3 | ||
205 | testdata/Internals.lc 82:14-84:29 ({a : Num V0} -> V1 -> V2->Ordering) -> {e : Num V1} -> V2 -> V3->Ordering | ||
206 | testdata/Internals.lc 82:14-85:28 ({a : Num V0} -> V1->V2) -> {d : Num V1} -> V2->V3 | ||
207 | testdata/Internals.lc 83:13-83:27 Int->Float | ||
208 | testdata/Internals.lc 84:13-84:29 Float -> Float->Ordering | ||
209 | testdata/Internals.lc 85:13-85:28 Float->Float | ||