summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPéter Diviánszky <divipp@gmail.com>2016-01-27 11:03:00 +0100
committerPéter Diviánszky <divipp@gmail.com>2016-01-27 11:03:19 +0100
commit2092ca9e3d9482d939d61ebaf10d71578169e0ec (patch)
tree5ca52fb0275749d563c4ef18788ea9382609dbde
parent22d39bea7e429c8f25d1d283636165afae642a4e (diff)
refactoring: use less STyped
-rw-r--r--lc/Internals.lc3
-rw-r--r--src/LambdaCube/Compiler/Infer.hs93
-rw-r--r--testdata/Internals.out394
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
3module Internals where 3module Internals where
4 4
5-- used for type annotations
6typeAnn x = x
7
5undefined :: forall (a :: Type) . a 8undefined :: forall (a :: Type) . a
6 9
7primFix :: forall (a :: Type) . (a -> a) -> a 10primFix :: 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 #-}
16module LambdaCube.Compiler.Infer 17module 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 #-}
98lexer :: Pa.GenTokenParser (IndentStream (CharIndentStream String)) SourcePos InnerP 100lexer :: Pa.GenTokenParser (IndentStream (CharIndentStream String)) SourcePos InnerP
99lexer = makeTokenParser lexeme $ makeIndentLanguageDef style 101lexer = makeTokenParser lexeme $ makeIndentLanguageDef style
100 where 102 where
@@ -394,20 +396,18 @@ data Visibility = Hidden | Visible
394 396
395sLit a = STyped mempty (ELit a, litType a) 397sLit a = STyped mempty (ELit a, litType a)
396pattern 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" 398pattern 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"
397pattern SType <- STyped _ (TType, TType) where SType = STyped (debugSI "pattern SType") (TType, TType) 399pattern SType = SBuiltin "'Type"
398pattern 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 400pattern 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
399pattern 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 401pattern 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
400pattern 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) 402pattern 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)
401pattern Wildcard_ si t <- SBind _ BMeta _ t (SVar (si, _) 0) 403pattern Wildcard_ si t <- SBind _ BMeta _ t (SVar (si, _) 0)
402pattern SAppH a b <- SApp _ Hidden a b where SAppH a b = sApp Hidden a b 404pattern SApp' h a b <- SApp _ h a b where SApp' h a b = sApp h a b
403pattern SAppV a b <- SApp _ Visible a b where SAppV a b = sApp Visible a b 405pattern SAppH a b = SApp' Hidden a b
406pattern SAppV a b = SApp' Visible a b
404pattern SAppV2 f a b = f `SAppV` a `SAppV` b 407pattern SAppV2 f a b = f `SAppV` a `SAppV` b
405pattern SLamV a = SLam Visible (Wildcard SType) a 408pattern SLamV a = SLam Visible (Wildcard SType) a
406pattern 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 409pattern 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 410pattern TyType a = SAnn a SType
408pattern 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
411pattern SLabelEnd a = SBuiltin "labelend" `SAppV` a 411pattern SLabelEnd a = SBuiltin "labelend" `SAppV` a
412 412
413pattern SBuiltin s <- SGlobal (_, s) where SBuiltin s = SGlobal (debugSI $ "builtin " ++ s, s) 413pattern 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)
607addForalls :: Extensions -> [SName] -> SExp -> SExp 607addForalls :: Extensions -> [SName] -> SExp -> SExp
608addForalls exs defined x = foldl f x [v | v@(vh:_) <- reverse $ freeS x, v `notElem'` defined, isLower vh || NoConstructorNamespace `elem` exs] 608addForalls 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{-
612defined defs = ("'Type":) $ flip foldMap defs $ \case 612defined defs = ("'Type":) $ flip foldMap defs $ \case
613 TypeAnn (_, x) _ -> [x] 613 TypeAnn (_, x) _ -> [x]
@@ -958,9 +958,9 @@ valueDef = do
958mkLets :: Bool -> DesugarInfo -> [Stmt]{-where block-} -> SExp{-main expression-} -> SExp{-big let with lambdas; replaces global names with de bruijn indices-} 958mkLets :: Bool -> DesugarInfo -> [Stmt]{-where block-} -> SExp{-main expression-} -> SExp{-big let with lambdas; replaces global names with de bruijn indices-}
959mkLets _ _ [] e = e 959mkLets _ _ [] e = e
960mkLets False ge (Let n _ mt ar (downS 0 -> Just x): ds) e 960mkLets 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)
962mkLets True ge (Let n _ mt ar (downS 0 -> Just x): ds) e 962mkLets 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)
964mkLets 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 964mkLets 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
965mkLets _ _ (x: ds) e = error $ "mkLets: " ++ show x 965mkLets _ _ (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
1789mapS = mapS_ (\si _ x -> SGlobal (si, x)) 1789mapS' = mapS__ (const . SGlobal)
1790mapS_ 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
1793mapS__ gg f1 f2 h = g where 1790mapS__ 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
1802rearrangeS :: (Int -> Int) -> SExp -> SExp 1799rearrangeS :: (Int -> Int) -> SExp -> SExp
1803rearrangeS 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 1800rearrangeS f = mapS' (const id){-todo-} (\sn j i -> SVar sn $ if j < i then j else i + f (j - i)) (+1) 0
1804 1801
1805upS__ i n = mapS (`upE` n) (+1) i 1802upS__ i n = mapS' (`upE` n) (\sn j i -> SVar sn $ if j < i then j else j+n) (+1) i
1806upS = upS__ 0 1 1803upS = upS__ 0 1
1807 1804
1805-- todo: review
1806substS 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
1812substSG j = mapS__ (\sn x -> if sn == j then SVar sn x else SGlobal sn) (const id) (\sn j -> const $ SVar sn j) (+1)
1813substSG0 n = substSG n 0 . upS
1814
1808up1E i e | isClosed e = e 1815up1E i e | isClosed e = e
1809up1E i e = case e of 1816up1E 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
1826upE i n = iterateN n (up1E i) 1833upE i n = iterateN n (up1E i)
1827 1834
1828substSS :: Int -> SExp -> SExp -> SExp
1829substSS 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)
1834substS j x = mapS (uncurry $ substE "substS") ((+1) *** up1E 0) (j, x)
1835substSG :: SName -> (SI -> SExp) -> SExp -> SExp
1836substSG j = mapS_ (\si x i -> if i == j then x si else SGlobal (si, i)) (const id) (fmap upS)
1837substSG0 n e = substSG n (\si -> SVar (si, n) 0) $ upS e
1838
1839dbf' = dbf_ 0 1835dbf' = dbf_ 0
1840dbf_ j xs e = foldl (\e (i, (si, n)) -> substSG n (\si -> SVar (si, n) i) e) e $ zip [j..] xs 1836dbf_ j xs e = foldl (\e (i, sn) -> substSG sn i e) e $ zip [j..] xs
1841 1837
1842dbff :: DBNames -> SExp -> SExp 1838dbff :: DBNames -> SExp -> SExp
1843dbff ns e = foldr (substSG0 . snd) e ns 1839dbff ns e = foldr substSG0 e ns
1844 1840
1845substE err = substE_ (error $ "substE: todo: environment required in " ++ err) -- todo: remove 1841substE 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
1849substE_ te i x e = case e of 1845substE_ 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 @@
1main is not found 1main is not found
2tooltips: 2tooltips:
3testdata/Internals.lc 5:1-5:10 {a}->a 3testdata/Internals.lc 6:1-6:8 {a} -> a->a
4testdata/Internals.lc 5:27-5:31 Type 4testdata/Internals.lc 6:13-6:14 V1
5testdata/Internals.lc 5:35-5:36 Type 5testdata/Internals.lc 8:1-8:10 {a}->a
6testdata/Internals.lc 7:1-7:8 {a} -> a->a -> a 6testdata/Internals.lc 8:27-8:31 Type
7testdata/Internals.lc 7:25-7:29 Type 7testdata/Internals.lc 8:35-8:36 Type
8testdata/Internals.lc 7:33-7:46 Type 8testdata/Internals.lc 10:1-10:8 {a} -> a->a -> a
9testdata/Internals.lc 7:34-7:35 Type 9testdata/Internals.lc 10:25-10:29 Type
10testdata/Internals.lc 7:39-7:40 Type 10testdata/Internals.lc 10:33-10:46 Type
11testdata/Internals.lc 7:45-7:46 Type 11testdata/Internals.lc 10:34-10:35 Type
12testdata/Internals.lc 9:6-9:10 Type 12testdata/Internals.lc 10:39-10:40 Type
13testdata/Internals.lc 9:6-9:15 Type 13testdata/Internals.lc 10:45-10:46 Type
14testdata/Internals.lc 9:13-9:15 Unit 14testdata/Internals.lc 12:6-12:10 Type
15testdata/Internals.lc 10:6-10:12 Type 15testdata/Internals.lc 12:6-12:15 Type
16testdata/Internals.lc 11:6-11:11 String->Type | Type 16testdata/Internals.lc 12:13-12:15 Unit
17testdata/Internals.lc 11:18-11:24 Type 17testdata/Internals.lc 13:6-13:12 Type
18testdata/Internals.lc 14:6-14:12 Type 18testdata/Internals.lc 14:6-14:11 String->Type | Type
19testdata/Internals.lc 14:6-14:21 Type 19testdata/Internals.lc 14:18-14:24 Type
20testdata/Internals.lc 14:15-14:21 Tuple0 20testdata/Internals.lc 17:6-17:12 Type
21testdata/Internals.lc 15:6-15:12 Type | Type->Type 21testdata/Internals.lc 17:6-17:21 Type
22testdata/Internals.lc 15:6-15:23 Type 22testdata/Internals.lc 17:15-17:21 Tuple0
23testdata/Internals.lc 15:6-15:25 Type 23testdata/Internals.lc 18:6-18:12 Type | Type->Type
24testdata/Internals.lc 15:17-15:23 Tuple1 V2 | Type | {a} -> a -> Tuple1 a 24testdata/Internals.lc 18:6-18:23 Type
25testdata/Internals.lc 15:24-15:25 Type 25testdata/Internals.lc 18:6-18:25 Type
26testdata/Internals.lc 16:6-16:12 Type | Type -> Type->Type 26testdata/Internals.lc 18:17-18:23 Tuple1 V2 | Type | {a} -> a -> Tuple1 a
27testdata/Internals.lc 16:6-16:25 Type 27testdata/Internals.lc 18:24-18:25 Type
28testdata/Internals.lc 16:6-16:29 Type 28testdata/Internals.lc 19:6-19:12 Type | Type -> Type->Type
29testdata/Internals.lc 16:19-16:25 Tuple2 V4 V3 | Type | {a} -> {b} -> a -> b -> Tuple2 a b 29testdata/Internals.lc 19:6-19:25 Type
30testdata/Internals.lc 16:26-16:27 Type 30testdata/Internals.lc 19:6-19:29 Type
31testdata/Internals.lc 16:28-16:29 Type 31testdata/Internals.lc 19:19-19:25 Tuple2 V4 V3 | Type | {a} -> {b} -> a -> b -> Tuple2 a b
32testdata/Internals.lc 17:6-17:12 Type | Type -> Type -> Type->Type 32testdata/Internals.lc 19:26-19:27 Type
33testdata/Internals.lc 17:6-17:27 Type 33testdata/Internals.lc 19:28-19:29 Type
34testdata/Internals.lc 17:6-17:33 Type 34testdata/Internals.lc 20:6-20:12 Type | Type -> Type -> Type->Type
35testdata/Internals.lc 17:21-17:27 Tuple3 V6 V5 V4 | Type | {a} -> {b} -> {c} -> a -> b -> c -> Tuple3 a b c 35testdata/Internals.lc 20:6-20:27 Type
36testdata/Internals.lc 17:28-17:29 Type 36testdata/Internals.lc 20:6-20:33 Type
37testdata/Internals.lc 17:30-17:31 Type 37testdata/Internals.lc 20:21-20:27 Tuple3 V6 V5 V4 | Type | {a} -> {b} -> {c} -> a -> b -> c -> Tuple3 a b c
38testdata/Internals.lc 17:32-17:33 Type 38testdata/Internals.lc 20:28-20:29 Type
39testdata/Internals.lc 18:6-18:12 Type | Type -> Type -> Type -> Type->Type 39testdata/Internals.lc 20:30-20:31 Type
40testdata/Internals.lc 18:6-18:29 Type 40testdata/Internals.lc 20:32-20:33 Type
41testdata/Internals.lc 18:6-18:37 Type 41testdata/Internals.lc 21:6-21:12 Type | Type -> Type -> Type -> Type->Type
42testdata/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 42testdata/Internals.lc 21:6-21:29 Type
43testdata/Internals.lc 18:30-18:31 Type 43testdata/Internals.lc 21:6-21:37 Type
44testdata/Internals.lc 18:32-18:33 Type 44testdata/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
45testdata/Internals.lc 18:34-18:35 Type 45testdata/Internals.lc 21:30-21:31 Type
46testdata/Internals.lc 18:36-18:37 Type 46testdata/Internals.lc 21:32-21:33 Type
47testdata/Internals.lc 19:6-19:12 Type | Type -> Type -> Type -> Type -> Type->Type 47testdata/Internals.lc 21:34-21:35 Type
48testdata/Internals.lc 19:6-19:31 Type 48testdata/Internals.lc 21:36-21:37 Type
49testdata/Internals.lc 19:6-19:41 Type 49testdata/Internals.lc 22:6-22:12 Type | Type -> Type -> Type -> Type -> Type->Type
50testdata/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 50testdata/Internals.lc 22:6-22:31 Type
51testdata/Internals.lc 19:32-19:33 Type 51testdata/Internals.lc 22:6-22:41 Type
52testdata/Internals.lc 19:34-19:35 Type 52testdata/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
53testdata/Internals.lc 19:36-19:37 Type 53testdata/Internals.lc 22:32-22:33 Type
54testdata/Internals.lc 19:38-19:39 Type 54testdata/Internals.lc 22:34-22:35 Type
55testdata/Internals.lc 19:40-19:41 Type 55testdata/Internals.lc 22:36-22:37 Type
56testdata/Internals.lc 25:1-25:8 a:Type -> a -> a->a 56testdata/Internals.lc 22:38-22:39 Type
57testdata/Internals.lc 25:24-25:25 V1 57testdata/Internals.lc 22:40-22:41 Type
58testdata/Internals.lc 25:24-25:35 Type 58testdata/Internals.lc 28:1-28:8 a:Type -> a -> a->a
59testdata/Internals.lc 25:29-25:30 Type 59testdata/Internals.lc 28:24-28:25 V1
60testdata/Internals.lc 25:29-25:35 Type 60testdata/Internals.lc 28:24-28:35 Type
61testdata/Internals.lc 25:34-25:35 Type 61testdata/Internals.lc 28:29-28:30 Type
62testdata/Internals.lc 27:13-27:17 a:Type -> a -> a->Type 62testdata/Internals.lc 28:29-28:35 Type
63testdata/Internals.lc 27:24-27:28 Type 63testdata/Internals.lc 28:34-28:35 Type
64testdata/Internals.lc 27:36-27:37 Type 64testdata/Internals.lc 30:13-30:17 a:Type -> a -> a->Type
65testdata/Internals.lc 27:36-27:46 Type 65testdata/Internals.lc 30:24-30:28 Type
66testdata/Internals.lc 27:45-27:46 Type 66testdata/Internals.lc 30:36-30:37 Type
67testdata/Internals.lc 28:13-28:15 Type -> Type->Type 67testdata/Internals.lc 30:36-30:46 Type
68testdata/Internals.lc 31:1-31:4 Unit -> Unit->Unit 68testdata/Internals.lc 30:45-30:46 Type
69testdata/Internals.lc 31:8-31:12 Type 69testdata/Internals.lc 31:13-31:15 Type -> Type->Type
70testdata/Internals.lc 31:16-31:20 Type 70testdata/Internals.lc 34:1-34:4 Unit -> Unit->Unit
71testdata/Internals.lc 31:16-31:28 Type 71testdata/Internals.lc 34:8-34:12 Type
72testdata/Internals.lc 31:24-31:28 Type 72testdata/Internals.lc 34:16-34:20 Type
73testdata/Internals.lc 34:6-34:9 Type 73testdata/Internals.lc 34:16-34:28 Type
74testdata/Internals.lc 35:6-35:10 Type 74testdata/Internals.lc 34:24-34:28 Type
75testdata/Internals.lc 36:6-36:11 Type 75testdata/Internals.lc 37:6-37:9 Type
76testdata/Internals.lc 37:6-37:10 Type 76testdata/Internals.lc 38:6-38:10 Type
77testdata/Internals.lc 39:6-39:10 Type 77testdata/Internals.lc 39:6-39:11 Type
78testdata/Internals.lc 39:6-39:25 Type 78testdata/Internals.lc 40:6-40:10 Type
79testdata/Internals.lc 39:13-39:18 Bool 79testdata/Internals.lc 42:6-42:10 Type
80testdata/Internals.lc 39:21-39:25 Bool 80testdata/Internals.lc 42:6-42:25 Type
81testdata/Internals.lc 41:6-41:14 Type 81testdata/Internals.lc 42:13-42:18 Bool
82testdata/Internals.lc 41:6-41:29 Type 82testdata/Internals.lc 42:21-42:25 Bool
83testdata/Internals.lc 41:17-41:19 Ordering 83testdata/Internals.lc 44:6-44:14 Type
84testdata/Internals.lc 41:22-41:24 Ordering 84testdata/Internals.lc 44:6-44:29 Type
85testdata/Internals.lc 41:27-41:29 Ordering 85testdata/Internals.lc 44:17-44:19 Ordering
86testdata/Internals.lc 44:1-44:14 Int->Word 86testdata/Internals.lc 44:22-44:24 Ordering
87testdata/Internals.lc 44:24-44:27 Type 87testdata/Internals.lc 44:27-44:29 Ordering
88testdata/Internals.lc 44:33-44:37 Type 88testdata/Internals.lc 47:1-47:14 Int->Word
89testdata/Internals.lc 45:1-45:15 Int->Float 89testdata/Internals.lc 47:24-47:27 Type
90testdata/Internals.lc 45:24-45:27 Type
91testdata/Internals.lc 45:33-45:38 Type
92testdata/Internals.lc 46:1-46:15 Int -> Int->Ordering
93testdata/Internals.lc 46:24-46:27 Type
94testdata/Internals.lc 46:33-46:36 Type
95testdata/Internals.lc 46:33-46:50 Type
96testdata/Internals.lc 46:42-46:50 Type
97testdata/Internals.lc 47:1-47:16 Word -> Word->Ordering
98testdata/Internals.lc 47:24-47:28 Type
99testdata/Internals.lc 47:33-47:37 Type 90testdata/Internals.lc 47:33-47:37 Type
100testdata/Internals.lc 47:33-47:50 Type 91testdata/Internals.lc 48:1-48:15 Int->Float
101testdata/Internals.lc 47:42-47:50 Type 92testdata/Internals.lc 48:24-48:27 Type
102testdata/Internals.lc 48:1-48:17 Float -> Float->Ordering
103testdata/Internals.lc 48:24-48:29 Type
104testdata/Internals.lc 48:33-48:38 Type 93testdata/Internals.lc 48:33-48:38 Type
105testdata/Internals.lc 48:33-48:50 Type 94testdata/Internals.lc 49:1-49:15 Int -> Int->Ordering
106testdata/Internals.lc 48:42-48:50 Type 95testdata/Internals.lc 49:24-49:27 Type
107testdata/Internals.lc 49:1-49:16 Char -> Char->Ordering 96testdata/Internals.lc 49:33-49:36 Type
108testdata/Internals.lc 49:24-49:28 Type
109testdata/Internals.lc 49:33-49:37 Type
110testdata/Internals.lc 49:33-49:50 Type 97testdata/Internals.lc 49:33-49:50 Type
111testdata/Internals.lc 49:42-49:50 Type 98testdata/Internals.lc 49:42-49:50 Type
112testdata/Internals.lc 50:1-50:18 String -> String->Ordering 99testdata/Internals.lc 50:1-50:16 Word -> Word->Ordering
113testdata/Internals.lc 50:24-50:30 Type 100testdata/Internals.lc 50:24-50:28 Type
114testdata/Internals.lc 50:34-50:40 Type 101testdata/Internals.lc 50:33-50:37 Type
115testdata/Internals.lc 50:34-50:52 Type 102testdata/Internals.lc 50:33-50:50 Type
116testdata/Internals.lc 50:44-50:52 Type 103testdata/Internals.lc 50:42-50:50 Type
117testdata/Internals.lc 51:1-51:14 Int->Int 104testdata/Internals.lc 51:1-51:17 Float -> Float->Ordering
118testdata/Internals.lc 51:24-51:27 Type 105testdata/Internals.lc 51:24-51:29 Type
119testdata/Internals.lc 51:33-51:36 Type 106testdata/Internals.lc 51:33-51:38 Type
120testdata/Internals.lc 52:1-52:15 Word->Word 107testdata/Internals.lc 51:33-51:50 Type
108testdata/Internals.lc 51:42-51:50 Type
109testdata/Internals.lc 52:1-52:16 Char -> Char->Ordering
121testdata/Internals.lc 52:24-52:28 Type 110testdata/Internals.lc 52:24-52:28 Type
122testdata/Internals.lc 52:33-52:37 Type 111testdata/Internals.lc 52:33-52:37 Type
123testdata/Internals.lc 53:1-53:16 Float->Float 112testdata/Internals.lc 52:33-52:50 Type
124testdata/Internals.lc 53:24-53:29 Type 113testdata/Internals.lc 52:42-52:50 Type
125testdata/Internals.lc 53:33-53:38 Type 114testdata/Internals.lc 53:1-53:18 String -> String->Ordering
126testdata/Internals.lc 54:1-54:11 Int -> Int->Int 115testdata/Internals.lc 53:24-53:30 Type
116testdata/Internals.lc 53:34-53:40 Type
117testdata/Internals.lc 53:34-53:52 Type
118testdata/Internals.lc 53:44-53:52 Type
119testdata/Internals.lc 54:1-54:14 Int->Int
127testdata/Internals.lc 54:24-54:27 Type 120testdata/Internals.lc 54:24-54:27 Type
128testdata/Internals.lc 54:33-54:36 Type 121testdata/Internals.lc 54:33-54:36 Type
129testdata/Internals.lc 54:33-54:45 Type 122testdata/Internals.lc 55:1-55:15 Word->Word
130testdata/Internals.lc 54:42-54:45 Type 123testdata/Internals.lc 55:24-55:28 Type
131testdata/Internals.lc 55:1-55:11 Int -> Int->Int 124testdata/Internals.lc 55:33-55:37 Type
132testdata/Internals.lc 55:24-55:27 Type 125testdata/Internals.lc 56:1-56:16 Float->Float
133testdata/Internals.lc 55:33-55:36 Type 126testdata/Internals.lc 56:24-56:29 Type
134testdata/Internals.lc 55:33-55:45 Type 127testdata/Internals.lc 56:33-56:38 Type
135testdata/Internals.lc 55:42-55:45 Type 128testdata/Internals.lc 57:1-57:11 Int -> Int->Int
136testdata/Internals.lc 56:1-56:11 Int -> Int->Int 129testdata/Internals.lc 57:24-57:27 Type
137testdata/Internals.lc 56:24-56:27 Type 130testdata/Internals.lc 57:33-57:36 Type
138testdata/Internals.lc 56:33-56:36 Type 131testdata/Internals.lc 57:33-57:45 Type
139testdata/Internals.lc 56:33-56:45 Type 132testdata/Internals.lc 57:42-57:45 Type
140testdata/Internals.lc 56:42-56:45 Type 133testdata/Internals.lc 58:1-58:11 Int -> Int->Int
141testdata/Internals.lc 57:1-57:14 Float->Float 134testdata/Internals.lc 58:24-58:27 Type
142testdata/Internals.lc 57:24-57:29 Type
143testdata/Internals.lc 57:33-57:38 Type
144testdata/Internals.lc 58:1-58:10 Float->Int
145testdata/Internals.lc 58:24-58:29 Type
146testdata/Internals.lc 58:33-58:36 Type 135testdata/Internals.lc 58:33-58:36 Type
147testdata/Internals.lc 61:19-61:23 Type 136testdata/Internals.lc 58:33-58:45 Type
148testdata/Internals.lc 61:19-61:38 Type 137testdata/Internals.lc 58:42-58:45 Type
149testdata/Internals.lc 61:27-61:28 V2 138testdata/Internals.lc 59:1-59:11 Int -> Int->Int
150testdata/Internals.lc 61:27-61:38 Type 139testdata/Internals.lc 59:24-59:27 Type
151testdata/Internals.lc 61:32-61:33 Type 140testdata/Internals.lc 59:33-59:36 Type
152testdata/Internals.lc 61:32-61:38 Type 141testdata/Internals.lc 59:33-59:45 Type
153testdata/Internals.lc 61:37-61:38 Type 142testdata/Internals.lc 59:42-59:45 Type
154testdata/Internals.lc 62:1-62:15 {a} -> Bool -> a -> a->a 143testdata/Internals.lc 60:1-60:14 Float->Float
155testdata/Internals.lc 62:16-62:20 Bool 144testdata/Internals.lc 60:24-60:29 Type
156testdata/Internals.lc 62:16-63:29 Bool -> V1 -> V2->V3 | V1 -> V2->V3 | V2->V3 | V3 145testdata/Internals.lc 60:33-60:38 Type
157testdata/Internals.lc 62:28-62:29 V3 146testdata/Internals.lc 61:1-61:10 Float->Int
158testdata/Internals.lc 62:28-63:29 Bool->V4 147testdata/Internals.lc 61:24-61:29 Type
159testdata/Internals.lc 63:28-63:29 V4 148testdata/Internals.lc 61:33-61:36 Type
160testdata/Internals.lc 66:7-66:10 Type->Type 149testdata/Internals.lc 64:19-64:23 Type
161testdata/Internals.lc 66:7-67:22 Type 150testdata/Internals.lc 64:19-64:38 Type
162testdata/Internals.lc 66:7-68:32 Type 151testdata/Internals.lc 64:27-64:28 V2
163testdata/Internals.lc 66:7-69:19 Type 152testdata/Internals.lc 64:27-64:38 Type
164testdata/Internals.lc 67:3-67:10 {a} -> {b : Num a} -> Int->a 153testdata/Internals.lc 64:32-64:33 Type
165testdata/Internals.lc 67:14-67:17 Type 154testdata/Internals.lc 64:32-64:38 Type
166testdata/Internals.lc 67:14-67:22 Type 155testdata/Internals.lc 64:37-64:38 Type
167testdata/Internals.lc 67:21-67:22 Type 156testdata/Internals.lc 65:1-65:15 {a} -> Bool -> a -> a->a
168testdata/Internals.lc 68:3-68:10 {a} -> {b : Num a} -> a -> a->Ordering 157testdata/Internals.lc 65:16-65:20 Bool
169testdata/Internals.lc 68:14-68:15 Type 158testdata/Internals.lc 65:16-66:29 Bool -> V1 -> V2->V3 | V1 -> V2->V3 | V2->V3 | V3
170testdata/Internals.lc 68:14-68:32 Type 159testdata/Internals.lc 65:28-65:29 V3
171testdata/Internals.lc 68:19-68:20 Type 160testdata/Internals.lc 65:28-66:29 Bool->V4
172testdata/Internals.lc 68:19-68:32 Type 161testdata/Internals.lc 66:28-66:29 V4
173testdata/Internals.lc 68:24-68:32 Type 162testdata/Internals.lc 69:7-69:10 Type->Type
174testdata/Internals.lc 69:3-69:9 {a} -> {b : Num a} -> a->a 163testdata/Internals.lc 69:7-70:22 Type
175testdata/Internals.lc 69:13-69:14 Type 164testdata/Internals.lc 69:7-71:32 Type
176testdata/Internals.lc 69:13-69:19 Type 165testdata/Internals.lc 69:7-72:19 Type
177testdata/Internals.lc 69:18-69:19 Type 166testdata/Internals.lc 70:3-70:10 {a} -> {b : Num a} -> Int->a
178testdata/Internals.lc 71:14-71:17 Type 167testdata/Internals.lc 70:14-70:17 Type
179testdata/Internals.lc 71:14-72:20 ({a : Num V0} -> Int->V2) -> {d : Num V1} -> Int->V3 168testdata/Internals.lc 70:14-70:22 Type
180testdata/Internals.lc 71:14-73:27 ({a : Num V0} -> V1 -> V2->Ordering) -> {e : Num V1} -> V2 -> V3->Ordering 169testdata/Internals.lc 70:21-70:22 Type
181testdata/Internals.lc 71:14-74:26 ({a : Num V0} -> V1->V2) -> {d : Num V1} -> V2->V3 170testdata/Internals.lc 71:3-71:10 {a} -> {b : Num a} -> a -> a->Ordering
182testdata/Internals.lc 71:14-79:19 Type | Type->Type 171testdata/Internals.lc 71:14-71:15 Type
183testdata/Internals.lc 71:14-80:27 {a : Num V0} -> Int->V2 | {a} -> {b : Num a} -> Int->a 172testdata/Internals.lc 71:14-71:32 Type
184testdata/Internals.lc 71:14-81:29 {a : Num V0} -> V1 -> V2->Ordering | {a} -> {b : Num a} -> a -> a->Ordering 173testdata/Internals.lc 71:19-71:20 Type
185testdata/Internals.lc 71:14-82:28 {a : Num V0} -> V1->V2 | {a} -> {b : Num a} -> a->a 174testdata/Internals.lc 71:19-71:32 Type
186testdata/Internals.lc 72:13-72:20 Int->Int 175testdata/Internals.lc 71:24-71:32 Type
187testdata/Internals.lc 72:19-72:20 Int 176testdata/Internals.lc 72:3-72:9 {a} -> {b : Num a} -> a->a
188testdata/Internals.lc 73:13-73:27 Int -> Int->Ordering 177testdata/Internals.lc 72:13-72:14 Type
189testdata/Internals.lc 74:13-74:26 Int->Int 178testdata/Internals.lc 72:13-72:19 Type
190testdata/Internals.lc 75:14-75:18 Type 179testdata/Internals.lc 72:18-72:19 Type
191testdata/Internals.lc 75:14-76:26 ({a : Num V0} -> Int->V2) -> {d : Num V1} -> Int->V3 180testdata/Internals.lc 74:14-74:17 Type
192testdata/Internals.lc 75:14-77:28 ({a : Num V0} -> V1 -> V2->Ordering) -> {e : Num V1} -> V2 -> V3->Ordering 181testdata/Internals.lc 74:14-75:20 ({a : Num V0} -> Int->V2) -> {d : Num V1} -> Int->V3
193testdata/Internals.lc 75:14-78:27 ({a : Num V0} -> V1->V2) -> {d : Num V1} -> V2->V3 182testdata/Internals.lc 74:14-76:27 ({a : Num V0} -> V1 -> V2->Ordering) -> {e : Num V1} -> V2 -> V3->Ordering
194testdata/Internals.lc 75:14-79:19 Type 183testdata/Internals.lc 74:14-77:26 ({a : Num V0} -> V1->V2) -> {d : Num V1} -> V2->V3
195testdata/Internals.lc 75:14-80:27 {a : Num V0} -> Int->V2 184testdata/Internals.lc 74:14-82:19 Type | Type->Type
196testdata/Internals.lc 75:14-81:29 {a : Num V0} -> V1 -> V2->Ordering 185testdata/Internals.lc 74:14-83:27 {a : Num V0} -> Int->V2 | {a} -> {b : Num a} -> Int->a
197testdata/Internals.lc 75:14-82:28 {a : Num V0} -> V1->V2 186testdata/Internals.lc 74:14-84:29 {a : Num V0} -> V1 -> V2->Ordering | {a} -> {b : Num a} -> a -> a->Ordering
198testdata/Internals.lc 76:13-76:26 Int->Word 187testdata/Internals.lc 74:14-85:28 {a : Num V0} -> V1->V2 | {a} -> {b : Num a} -> a->a
199testdata/Internals.lc 77:13-77:28 Word -> Word->Ordering 188testdata/Internals.lc 75:13-75:20 Int->Int
200testdata/Internals.lc 78:13-78:27 Word->Word 189testdata/Internals.lc 75:19-75:20 Int
201testdata/Internals.lc 79:14-79:19 Type 190testdata/Internals.lc 76:13-76:27 Int -> Int->Ordering
202testdata/Internals.lc 79:14-80:27 ({a : Num V0} -> Int->V2) -> {d : Num V1} -> Int->V3 191testdata/Internals.lc 77:13-77:26 Int->Int
203testdata/Internals.lc 79:14-81:29 ({a : Num V0} -> V1 -> V2->Ordering) -> {e : Num V1} -> V2 -> V3->Ordering 192testdata/Internals.lc 78:14-78:18 Type
204testdata/Internals.lc 79:14-82:28 ({a : Num V0} -> V1->V2) -> {d : Num V1} -> V2->V3 193testdata/Internals.lc 78:14-79:26 ({a : Num V0} -> Int->V2) -> {d : Num V1} -> Int->V3
205testdata/Internals.lc 80:13-80:27 Int->Float 194testdata/Internals.lc 78:14-80:28 ({a : Num V0} -> V1 -> V2->Ordering) -> {e : Num V1} -> V2 -> V3->Ordering
206testdata/Internals.lc 81:13-81:29 Float -> Float->Ordering 195testdata/Internals.lc 78:14-81:27 ({a : Num V0} -> V1->V2) -> {d : Num V1} -> V2->V3
207testdata/Internals.lc 82:13-82:28 Float->Float 196testdata/Internals.lc 78:14-82:19 Type
197testdata/Internals.lc 78:14-83:27 {a : Num V0} -> Int->V2
198testdata/Internals.lc 78:14-84:29 {a : Num V0} -> V1 -> V2->Ordering
199testdata/Internals.lc 78:14-85:28 {a : Num V0} -> V1->V2
200testdata/Internals.lc 79:13-79:26 Int->Word
201testdata/Internals.lc 80:13-80:28 Word -> Word->Ordering
202testdata/Internals.lc 81:13-81:27 Word->Word
203testdata/Internals.lc 82:14-82:19 Type
204testdata/Internals.lc 82:14-83:27 ({a : Num V0} -> Int->V2) -> {d : Num V1} -> Int->V3
205testdata/Internals.lc 82:14-84:29 ({a : Num V0} -> V1 -> V2->Ordering) -> {e : Num V1} -> V2 -> V3->Ordering
206testdata/Internals.lc 82:14-85:28 ({a : Num V0} -> V1->V2) -> {d : Num V1} -> V2->V3
207testdata/Internals.lc 83:13-83:27 Int->Float
208testdata/Internals.lc 84:13-84:29 Float -> Float->Ordering
209testdata/Internals.lc 85:13-85:28 Float->Float