summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/LambdaCube/Compiler/DesugaredSource.hs26
-rw-r--r--src/LambdaCube/Compiler/Infer.hs61
-rw-r--r--src/LambdaCube/Compiler/Pretty.hs40
-rw-r--r--test/runTests.hs2
-rw-r--r--testdata/Builtins.out752
-rw-r--r--testdata/Internals.out122
-rw-r--r--testdata/Material.out282
-rw-r--r--testdata/Prelude.out358
-rw-r--r--testdata/SampleMaterial.out2
-rw-r--r--testdata/adhoc.reject.out6
-rw-r--r--testdata/complex.out42
-rw-r--r--testdata/data.out44
-rw-r--r--testdata/empty.out4
-rw-r--r--testdata/framebuffer02.reject.out4
-rw-r--r--testdata/id.out2
-rw-r--r--testdata/instantiate.out2
-rw-r--r--testdata/language-features/adt/adt02.reject.out8
-rw-r--r--testdata/language-features/adt/gadt01.reject.out2
-rw-r--r--testdata/language-features/adt/gadt03.reject.out10
-rw-r--r--testdata/language-features/adt/gadt04.reject.out12
-rw-r--r--testdata/language-features/basic-list/list01.out6
-rw-r--r--testdata/language-features/basic-list/list02.out6
-rw-r--r--testdata/language-features/basic-list/list08.out2
-rw-r--r--testdata/language-features/basic-list/list09.out2
-rw-r--r--testdata/language-features/basic-list/list11.out2
-rw-r--r--testdata/language-features/basic-list/list12.out2
-rw-r--r--testdata/language-features/basic-list/list13.out2
-rw-r--r--testdata/language-features/basic-list/listcomp01.out2
-rw-r--r--testdata/language-features/basic-list/listcomp02.out4
-rw-r--r--testdata/language-features/basic-list/listcomp03.out2
-rw-r--r--testdata/language-features/basic-list/listcomp04.out4
-rw-r--r--testdata/language-features/basic-list/listcomp05.out2
-rw-r--r--testdata/language-features/basic-list/listcomp06.out4
-rw-r--r--testdata/language-features/basic-list/listcomp07.out6
-rw-r--r--testdata/language-features/basic-list/listcomp09.out2
-rw-r--r--testdata/language-features/basic-values/bool01.out4
-rw-r--r--testdata/language-features/basic-values/case02.out4
-rw-r--r--testdata/language-features/basic-values/case05.out2
-rw-r--r--testdata/language-features/basic-values/case06.out2
-rw-r--r--testdata/language-features/basic-values/data01.out30
-rw-r--r--testdata/language-features/basic-values/def01.out4
-rw-r--r--testdata/language-features/basic-values/def03.out2
-rw-r--r--testdata/language-features/basic-values/def04.out4
-rw-r--r--testdata/language-features/basic-values/def07.reject.out6
-rw-r--r--testdata/language-features/basic-values/deforder01.out4
-rw-r--r--testdata/language-features/basic-values/deforder02.out4
-rw-r--r--testdata/language-features/basic-values/deforder03.out2
-rw-r--r--testdata/language-features/basic-values/deforder04.out2
-rw-r--r--testdata/language-features/basic-values/deforder05.out2
-rw-r--r--testdata/language-features/basic-values/deforder06.out2
-rw-r--r--testdata/language-features/basic-values/fixity02.out28
-rw-r--r--testdata/language-features/basic-values/if01.out2
-rw-r--r--testdata/language-features/basic-values/infix03.out12
-rw-r--r--testdata/language-features/basic-values/let01.out10
-rw-r--r--testdata/language-features/basic-values/literal01.out16
-rw-r--r--testdata/language-features/basic-values/shadowing01.out2
-rw-r--r--testdata/language-features/basic-values/shadowing02.out6
-rw-r--r--testdata/language-features/basic-values/tuple02.out4
-rw-r--r--testdata/language-features/basic-values/typesig01.out4
-rw-r--r--testdata/language-features/basic-values/typesig02.out4
-rw-r--r--testdata/language-features/basic-values/typesig05.out8
-rw-r--r--testdata/language-features/basic-values/typesig06.out4
-rw-r--r--testdata/language-features/basic-values/typesig07.out6
-rw-r--r--testdata/language-features/basic-values/where05.out8
-rw-r--r--testdata/language-features/guard/guard03.out2
-rw-r--r--testdata/language-features/guard/guard04.out2
-rw-r--r--testdata/language-features/guard/guard07.out2
-rw-r--r--testdata/language-features/guard/guard08.out2
-rw-r--r--testdata/language-features/guard/guard09.out2
-rw-r--r--testdata/language-features/guard/guard11.out2
-rw-r--r--testdata/language-features/guard/guard13.out2
-rw-r--r--testdata/language-features/guard/guard16.out2
-rw-r--r--testdata/language-features/module/Hello01.out4
-rw-r--r--testdata/language-features/module/Hello02.out4
-rw-r--r--testdata/language-features/module/Hello03.out4
-rw-r--r--testdata/language-features/module/ModulePackage/SubModule01.out2
-rw-r--r--testdata/language-features/module/Moduledef06.out2
-rw-r--r--testdata/language-features/module/Moduledef07.out2
-rw-r--r--testdata/language-features/module/Moduledef08.out2
-rw-r--r--testdata/language-features/module/Moduledef09.out4
-rw-r--r--testdata/language-features/module/Moduledef10.out4
-rw-r--r--testdata/language-features/module/Moduledef13.out2
-rw-r--r--testdata/language-features/module/import01.out2
-rw-r--r--testdata/language-features/module/import04.reject.out2
-rw-r--r--testdata/language-features/module/import05.out2
-rw-r--r--testdata/language-features/module/import06.out2
-rw-r--r--testdata/language-features/module/import07.out2
-rw-r--r--testdata/language-features/module/import08.out6
-rw-r--r--testdata/language-features/module/import12.out2
-rw-r--r--testdata/language-features/module/import13.out2
-rw-r--r--testdata/language-features/module/import14.out2
-rw-r--r--testdata/language-features/module/import15.out2
-rw-r--r--testdata/language-features/pattern/pattern01.out8
-rw-r--r--testdata/language-features/pattern/uncovered.out2
-rw-r--r--testdata/language-features/pattern/unreachable.out2
-rw-r--r--testdata/language-features/recursion/simplerec01.out2
-rw-r--r--testdata/performance/Material.out282
-rw-r--r--testdata/performance/SampleMaterial.out2
-rw-r--r--testdata/record01.reject.out32
-rw-r--r--testdata/traceTest.out8
-rw-r--r--testdata/typeclass.out10
-rw-r--r--testdata/typesig.reject.out14
-rw-r--r--testdata/typesigctx.reject.out8
-rw-r--r--testdata/where.out2
-rw-r--r--testdata/zip01.out2
105 files changed, 1235 insertions, 1226 deletions
diff --git a/src/LambdaCube/Compiler/DesugaredSource.hs b/src/LambdaCube/Compiler/DesugaredSource.hs
index 8f92f18a..75244d14 100644
--- a/src/LambdaCube/Compiler/DesugaredSource.hs
+++ b/src/LambdaCube/Compiler/DesugaredSource.hs
@@ -242,7 +242,7 @@ infixl 2 `SAppV`, `SAppH`
242pattern SBuiltin s <- SGlobal (SIName _ s) 242pattern SBuiltin s <- SGlobal (SIName _ s)
243 where SBuiltin s = SGlobal (SIName (debugSI $ "builtin " ++ s) s) 243 where SBuiltin s = SGlobal (SIName (debugSI $ "builtin " ++ s) s)
244 244
245pattern SRHS a = SBuiltin "^rhs" `SAppV` a 245pattern SRHS a = SBuiltin "_rhs" `SAppV` a
246pattern Section e = SBuiltin "^section" `SAppV` e 246pattern Section e = SBuiltin "^section" `SAppV` e
247pattern SType = SBuiltin "'Type" 247pattern SType = SBuiltin "'Type"
248pattern Parens e = SBuiltin "parens" `SAppV` e 248pattern Parens e = SBuiltin "parens" `SAppV` e
@@ -381,11 +381,13 @@ instance (Up a, PShow a) => PShow (SExp' a) where
381 pShow = \case 381 pShow = \case
382 SGlobal op | Just p <- getFixity op -> DOp0 (sName op) p 382 SGlobal op | Just p <- getFixity op -> DOp0 (sName op) p
383 SGlobal ns -> pShow ns 383 SGlobal ns -> pShow ns
384 SAnn a b -> shAnn False (pShow a) (pShow b) 384 SAnn a b -> shAnn (pShow a) (pShow b)
385 TyType a -> text "tyType" `dApp` pShow a 385 TyType a -> text "tyType" `dApp` pShow a
386 SAppV a b -> pShow a `dApp` pShow b 386 SAppV a b -> pShow a `dApp` pShow b
387 SApp h a b -> shApp h (pShow a) (pShow b) 387 SApp h a b -> shApp h (pShow a) (pShow b)
388 Wildcard t -> shAnn True (text "_") (pShow t) 388 Wildcard SType -> text "_"
389 Wildcard t -> shAnn (text "_") (pShow t)
390 SBind_ _ h _ SType b -> shLam_ (usedVar 0 b) h Nothing (pShow b)
389 SBind_ _ h _ a b -> shLam (usedVar 0 b) h (pShow a) (pShow b) 391 SBind_ _ h _ a b -> shLam (usedVar 0 b) h (pShow a) (pShow b)
390 SLet _ a b -> shLet_ (pShow a) (pShow b) 392 SLet _ a b -> shLet_ (pShow a) (pShow b)
391 STyped a -> pShow a 393 STyped a -> pShow a
@@ -395,7 +397,9 @@ instance (Up a, PShow a) => PShow (SExp' a) where
395shApp Visible a b = DApp a b 397shApp Visible a b = DApp a b
396shApp Hidden a b = DApp a (DAt b) 398shApp Hidden a b = DApp a (DAt b)
397 399
398shLam usedVar h a b = DFreshName usedVar $ lam (p $ DUp 0 a) b 400shLam usedVar h a b = shLam_ usedVar h (Just a) b
401
402shLam_ usedVar h a b = DFreshName usedVar $ lam (p $ DUp 0 <$> a) b
399 where 403 where
400 lam = case h of 404 lam = case h of
401 BPi Visible 405 BPi Visible
@@ -406,13 +410,15 @@ shLam usedVar h a b = DFreshName usedVar $ lam (p $ DUp 0 a) b
406 | otherwise -> showContext 410 | otherwise -> showContext
407 _ -> showLam 411 _ -> showLam
408 412
413 shAnn' a = maybe a (shAnn a)
414
409 p = case h of 415 p = case h of
410 BMeta -> shAnn True (blue $ DVar 0) 416 BMeta -> shAnn' (blue $ DVar 0)
411 BLam Hidden -> DAt . ann 417 BLam Hidden -> DAt . ann
412 _ -> ann 418 _ -> ann
413 419
414 ann | usedVar = shAnn True (DVar 0) 420 ann | usedVar = shAnn' (DVar 0)
415 | otherwise = id 421 | otherwise = fromMaybe (text "Type")
416 422
417 showForall s x (DFreshName u d) = DFreshName u $ showForall s (DUp 0 x) d 423 showForall s x (DFreshName u d) = DFreshName u $ showForall s (DUp 0 x) d
418 showForall s x (DForall s' xs y) | s == s' = DForall s (DSep (InfixR 11) x xs) y 424 showForall s x (DForall s' xs y) | s == s' = DForall s (DSep (InfixR 11) x xs) y
@@ -441,9 +447,9 @@ pattern Primitive n t = Let n (Just t) (SBuiltin "undefined")
441 447
442instance PShow Stmt where 448instance PShow Stmt where
443 pShow = \case 449 pShow = \case
444 Primitive n t -> shAnn False (pShow n) (pShow t) 450 Primitive n t -> shAnn (pShow n) (pShow t)
445 Let n ty e -> DLet "=" (pShow n) $ maybe (pShow e) (\ty -> shAnn False (pShow e) (pShow ty)) ty 451 Let n ty e -> DLet "=" (pShow n) $ maybe (pShow e) (\ty -> shAnn (pShow e) (pShow ty)) ty
446 Data n ps ty cs -> "data" <+> text (sName n) 452 Data n ps ty cs -> "data" <+> shAnn (foldl dApp (pShow n) [shAnn (text "_") (pShow t) | (v, t) <- ps]) (pShow ty) <+> "where"
447 PrecDef n i -> pShow i <+> DOp0 (sName n) i 453 PrecDef n i -> pShow i <+> DOp0 (sName n) i
448 454
449instance DeBruijnify SIName Stmt where 455instance DeBruijnify SIName Stmt where
diff --git a/src/LambdaCube/Compiler/Infer.hs b/src/LambdaCube/Compiler/Infer.hs
index 88860d62..61a50814 100644
--- a/src/LambdaCube/Compiler/Infer.hs
+++ b/src/LambdaCube/Compiler/Infer.hs
@@ -1280,7 +1280,7 @@ instance NFData Info where rnf = rnf . ppShow
1280instance PShow Info where 1280instance PShow Info where
1281 pShow = \case 1281 pShow = \case
1282 Info r s -> shortForm (pShow r) <+> "" <+> text s 1282 Info r s -> shortForm (pShow r) <+> "" <+> text s
1283 IType a b -> shAnn False (pShow a) (pShow b) 1283 IType a b -> shAnn (pShow a) (pShow b)
1284 ITrace i s -> text i <> ": " <+> text s 1284 ITrace i s -> text i <> ": " <+> text s
1285 IError e -> "!" <> pShow e 1285 IError e -> "!" <> pShow e
1286 ParseWarning w -> pShow w 1286 ParseWarning w -> pShow w
@@ -1451,100 +1451,95 @@ joinEnv e1 e2 = do
1451 1451
1452downTo n m = map Var [n+m-1, n+m-2..n] 1452downTo n m = map Var [n+m-1, n+m-2..n]
1453 1453
1454tellType si t = tell $ mkInfoItem (sourceInfo si) $ plainShow $ mkDoc False True (t, TType) 1454tellType si t = tell $ mkInfoItem (sourceInfo si) $ plainShow $ DTypeNamespace True $ mkDoc False (t, TType)
1455 1455
1456 1456
1457-------------------------------------------------------------------------------- pretty print 1457-------------------------------------------------------------------------------- pretty print
1458-- todo: do this via conversion to SExp? 1458-- todo: do this via conversion to SExp?
1459 1459
1460instance PShow Exp where 1460instance PShow Exp where
1461 pShow = mkDoc False False 1461 pShow = mkDoc False
1462 1462
1463instance PShow (CEnv Exp) where 1463instance PShow (CEnv Exp) where
1464 pShow = mkDoc False False 1464 pShow = mkDoc False
1465 1465
1466instance PShow Env where 1466instance PShow Env where
1467 pShow e = envDoc e $ underline $ text "<<HERE>>" 1467 pShow e = envDoc e $ underline $ text "<<HERE>>"
1468 1468
1469showEnvExp :: Env -> ExpType -> String 1469showEnvExp :: Env -> ExpType -> String
1470showEnvExp e c = show $ envDoc e $ underline $ mkDoc False False c 1470showEnvExp e c = show $ envDoc e $ underline $ mkDoc False c
1471 1471
1472showEnvSExp :: (PShow a, Up a) => Env -> SExp' a -> String 1472showEnvSExp :: (PShow a, Up a) => Env -> SExp' a -> String
1473showEnvSExp e c = show $ envDoc e $ underline $ pShow c 1473showEnvSExp e c = show $ envDoc e $ underline $ pShow c
1474 1474
1475showEnvSExpType :: (PShow a, Up a) => Env -> SExp' a -> Exp -> String 1475showEnvSExpType :: (PShow a, Up a) => Env -> SExp' a -> Exp -> String
1476showEnvSExpType e c t = show $ envDoc e $ underline $ (shAnn False (pShow c) (mkDoc False False (t, TType))) 1476showEnvSExpType e c t = show $ envDoc e $ underline $ (shAnn (pShow c) (mkDoc False (t, TType)))
1477 1477
1478envDoc :: Env -> Doc -> Doc 1478envDoc :: Env -> Doc -> Doc
1479envDoc x m = case x of 1479envDoc x m = case x of
1480 EGlobal{} -> m 1480 EGlobal{} -> m
1481 EBind1 _ h ts b -> envDoc ts $ shLam (usedVar 0 b) h m (pShow b) 1481 EBind1 _ h ts b -> envDoc ts $ shLam (usedVar 0 b) h m (pShow b)
1482 EBind2 h a ts -> envDoc ts $ shLam True h (mkDoc False ts' (a, TType)) m 1482 EBind2 h a ts -> envDoc ts $ shLam True h (mkDoc False (a, TType)) m
1483 EApp1 _ h ts b -> envDoc ts $ shApp h m (pShow b) 1483 EApp1 _ h ts b -> envDoc ts $ shApp h m (pShow b)
1484 EApp2 _ h (Lam (Var 0), Pi Visible TType _) ts -> envDoc ts $ shApp h (text "tyType") m 1484 EApp2 _ h (Lam (Var 0), Pi Visible TType _) ts -> envDoc ts $ shApp h (text "tyType") m
1485 EApp2 _ h a ts -> envDoc ts $ shApp h (mkDoc False ts' a) m 1485 EApp2 _ h a ts -> envDoc ts $ shApp h (mkDoc False a) m
1486 ELet1 _ ts b -> envDoc ts $ shLet_ m (pShow b) 1486 ELet1 _ ts b -> envDoc ts $ shLet_ m (pShow b)
1487 ELet2 _ x ts -> envDoc ts $ shLet_ (mkDoc False ts' x) m 1487 ELet2 _ x ts -> envDoc ts $ shLet_ (mkDoc False x) m
1488 EAssign i x ts -> envDoc ts $ shLet i (mkDoc False ts' x) m 1488 EAssign i x ts -> envDoc ts $ shLet i (mkDoc False x) m
1489 CheckType t ts -> envDoc ts $ shAnn False m $ mkDoc False ts' (t, TType) 1489 CheckType t ts -> envDoc ts $ shAnn m $ mkDoc False (t, TType)
1490 CheckIType t ts -> envDoc ts $ shAnn False m (text "??") -- mkDoc ts' t 1490 CheckIType t ts -> envDoc ts $ shAnn m (text "??") -- mkDoc ts' t
1491-- CheckSame t ts -> envDoc ts $ shCstr <$> m <*> mkDoc ts' t 1491-- CheckSame t ts -> envDoc ts $ shCstr <$> m <*> mkDoc ts' t
1492 CheckAppType si h t te b -> envDoc (EApp1 si h (CheckType_ (sourceInfo b) t te) b) m 1492 CheckAppType si h t te b -> envDoc (EApp1 si h (CheckType_ (sourceInfo b) t te) b) m
1493 ELabelEnd ts -> envDoc ts $ shApp Visible (text "labEnd") m 1493 ELabelEnd ts -> envDoc ts $ shApp Visible (text "labEnd") m
1494 x -> error $ "envDoc: " ++ ppShow x 1494 x -> error $ "envDoc: " ++ ppShow x
1495 where
1496 ts' = False
1497 1495
1498class MkDoc a where 1496class MkDoc a where
1499 mkDoc :: Bool {-print reduced-} -> Bool -> a -> Doc 1497 mkDoc :: Bool {-print reduced-} -> a -> Doc
1500 1498
1501instance MkDoc ExpType where 1499instance MkDoc ExpType where
1502 mkDoc pr ts e = mkDoc pr ts $ fst e 1500 mkDoc pr e = mkDoc pr $ fst e
1503 1501
1504instance MkDoc Exp where 1502instance MkDoc Exp where
1505 mkDoc pr ts e = green $ f e 1503 mkDoc pr e = green $ f e
1506 where 1504 where
1507 f = \case 1505 f = \case
1508-- Lam h a b -> join $ shLam (usedVar 0 b) (BLam h) <$> f a <*> pure (f b) 1506-- Lam h a b -> join $ shLam (usedVar 0 b) (BLam h) <$> f a <*> pure (f b)
1509 Lam b -> shLam True (BLam Visible) (f TType{-todo!-}) (f b) 1507 Lam b -> shLam True (BLam Visible) (f TType{-todo!-}) (f b)
1508 Pi h TType b -> shLam_ (usedVar 0 b) (BPi h) Nothing (f b)
1510 Pi h a b -> shLam (usedVar 0 b) (BPi h) (f a) (f b) 1509 Pi h a b -> shLam (usedVar 0 b) (BPi h) (f a) (f b)
1511 ENat' n -> text $ ppShow n 1510 ENat' n -> text $ ppShow n
1512 (getTTup -> Just xs) -> shTuple $ f <$> xs 1511 (getTTup -> Just xs) -> shTuple $ f <$> xs
1513 (getTup -> Just xs) -> shTuple $ f <$> xs 1512 (getTup -> Just xs) -> shTuple $ f <$> xs
1514 Con s _ xs -> foldl (shApp Visible) (text_ $ ppShow s) (f <$> xs) 1513 Con s _ xs -> foldl (shApp Visible) (pShow s) (f <$> xs)
1515 TyConN s xs -> foldl (shApp Visible) (text_ $ ppShow s) (f <$> xs) 1514 TyConN s xs -> foldl (shApp Visible) (pShow s) (f <$> xs)
1516 TType -> text "Type" 1515 TType -> text "Type"
1517 ELit l -> pShow l 1516 ELit l -> pShow l
1518 Neut x -> mkDoc pr ts x 1517 Neut x -> mkDoc pr x
1519
1520 text_ = text . if ts then switchTick else id
1521 1518
1522instance MkDoc Neutral where 1519instance MkDoc Neutral where
1523 mkDoc pr ts e = green $ f e 1520 mkDoc pr e = green $ f e
1524 where 1521 where
1525 g = mkDoc pr ts 1522 g = mkDoc pr
1526 f = \case 1523 f = \case
1527 CstrT' t a b -> shCstr (g (a, t)) (g (b, t)) 1524 CstrT' t a b -> shCstr (g (a, t)) (g (b, t))
1528 FL' a | pr -> g a 1525 FL' a | pr -> g a
1529 Fun' s vs i (mkExpTypes (nType s) . reverse -> xs) _ -> foldl (shApp Visible) (text_ $ ppShow s) (g <$> xs) 1526 Fun' s vs i (mkExpTypes (nType s) . reverse -> xs) _ -> foldl (shApp Visible) (pShow s) (g <$> xs)
1530 Var_ k -> shVar k 1527 Var_ k -> shVar k
1531 App_ a b -> shApp Visible (g a) (g b) 1528 App_ a b -> shApp Visible (g a) (g b)
1532 CaseFun_ s xs n -> foldl (shApp Visible) (text_ $ ppShow s) (map g $ {-mkExpTypes (nType s) $ makeCaseFunPars te n ++ -} xs ++ [Neut n]) 1529 CaseFun_ s xs n -> foldl (shApp Visible) (pShow s) (map g $ {-mkExpTypes (nType s) $ makeCaseFunPars te n ++ -} xs ++ [Neut n])
1533 TyCaseFun_ s [m, t, f] n -> foldl (shApp Visible) (text_ $ ppShow s) (g <$> mkExpTypes (nType s) [m, t, Neut n, f]) 1530 TyCaseFun_ s [m, t, f] n -> foldl (shApp Visible) (pShow s) (g <$> mkExpTypes (nType s) [m, t, Neut n, f])
1534 TyCaseFun_ s _ n -> error $ "mkDoc TyCaseFun" 1531 TyCaseFun_ s _ n -> error $ "mkDoc TyCaseFun"
1535 LabelEnd_ x -> shApp Visible (text "labend") (g x) 1532 LabelEnd_ x -> shApp Visible (text "labend") (g x)
1536 Delta{} -> text "^delta" 1533 Delta{} -> text "^delta"
1537 1534
1538 text_ = text . if ts then switchTick else id
1539
1540instance MkDoc (CEnv Exp) where 1535instance MkDoc (CEnv Exp) where
1541 mkDoc pr ts e = green $ f e 1536 mkDoc pr e = green $ f e
1542 where 1537 where
1543 f :: CEnv Exp -> Doc 1538 f :: CEnv Exp -> Doc
1544 f = \case 1539 f = \case
1545 MEnd a -> mkDoc pr ts a 1540 MEnd a -> mkDoc pr a
1546 Meta a b -> shLam True BMeta (mkDoc pr ts a) (f b) 1541 Meta a b -> shLam True BMeta (mkDoc pr a) (f b)
1547 Assign i (x, _) e -> shLet i (mkDoc pr ts x) (f e) 1542 Assign i (x, _) e -> shLet i (mkDoc pr x) (f e)
1548 1543
1549getTup (unfixlabel -> ConN FHCons [_, _, x, xs]) = (x:) <$> getTup xs 1544getTup (unfixlabel -> ConN FHCons [_, _, x, xs]) = (x:) <$> getTup xs
1550getTup (unfixlabel -> ConN FHNil []) = Just [] 1545getTup (unfixlabel -> ConN FHNil []) = Just []
diff --git a/src/LambdaCube/Compiler/Pretty.hs b/src/LambdaCube/Compiler/Pretty.hs
index fb6cfb22..911290db 100644
--- a/src/LambdaCube/Compiler/Pretty.hs
+++ b/src/LambdaCube/Compiler/Pretty.hs
@@ -61,6 +61,7 @@ rightPrecedence f = precedence f + 1
61data Doc 61data Doc
62 = forall f . Traversable f => DDocOp (f P.Doc -> P.Doc) (f Doc) 62 = forall f . Traversable f => DDocOp (f P.Doc -> P.Doc) (f Doc)
63 | DFormat (P.Doc -> P.Doc) Doc 63 | DFormat (P.Doc -> P.Doc) Doc
64 | DTypeNamespace Bool Doc
64 65
65 | DAtom DocAtom 66 | DAtom DocAtom
66 | DInfix Fixity Doc DocAtom Doc 67 | DInfix Fixity Doc DocAtom Doc
@@ -91,14 +92,14 @@ instance Monoid Doc where
91 92
92instance NFData Doc where 93instance NFData Doc where
93 rnf x = rnf $ show x -- TODO 94 rnf x = rnf $ show x -- TODO
94 95{-
95strip :: Doc -> Doc 96strip :: Doc -> Doc
96strip = \case 97strip = \case
97 DFormat _ x -> strip x 98 DFormat _ x -> strip x
98 DUp _ x -> strip x 99 DUp _ x -> strip x
99 DFreshName _ x -> strip x 100 DFreshName _ x -> strip x
100 x -> x 101 x -> x
101 102-}
102instance Show Doc where 103instance Show Doc where
103 show = show . renderDoc 104 show = show . renderDoc
104 105
@@ -108,7 +109,7 @@ plainShow = show . P.plain . renderDoc . pShow
108renderDoc :: Doc -> P.Doc 109renderDoc :: Doc -> P.Doc
109renderDoc 110renderDoc
110 = render 111 = render
111 . addPar (Infix (-10)) 112 . addPar False (Infix (-10))
112 . flip runReader ((\s n -> '_': n: s) <$> iterate ('\'':) "" <*> ['a'..'z']) 113 . flip runReader ((\s n -> '_': n: s) <$> iterate ('\'':) "" <*> ['a'..'z'])
113 . flip evalStateT (flip (:) <$> iterate ('\'':) "" <*> ['a'..'z']) 114 . flip evalStateT (flip (:) <$> iterate ('\'':) "" <*> ['a'..'z'])
114 . showVars 115 . showVars
@@ -118,6 +119,7 @@ renderDoc
118 expand full = \case 119 expand full = \case
119 DExpand short long -> expand full $ if full then long else short 120 DExpand short long -> expand full $ if full then long else short
120 DFormat c x -> DFormat c $ expand full x 121 DFormat c x -> DFormat c $ expand full x
122 DTypeNamespace c x -> DTypeNamespace c $ expand full x
121 DDocOp x d -> DDocOp x $ expand full <$> d 123 DDocOp x d -> DDocOp x $ expand full <$> d
122 DAtom s -> DAtom $ mapDocAtom (\_ _ -> noexpand) s 124 DAtom s -> DAtom $ mapDocAtom (\_ _ -> noexpand) s
123 DInfix pr x op y -> DInfix pr (noexpand x) (mapDocAtom (\_ _ -> noexpand) op) (noexpand y) 125 DInfix pr x op y -> DInfix pr (noexpand x) (mapDocAtom (\_ _ -> noexpand) op) (noexpand y)
@@ -129,6 +131,7 @@ renderDoc
129 showVars = \case 131 showVars = \case
130 DAtom s -> DAtom <$> showVarA s 132 DAtom s -> DAtom <$> showVarA s
131 DFormat c x -> DFormat c <$> showVars x 133 DFormat c x -> DFormat c <$> showVars x
134 DTypeNamespace c x -> DTypeNamespace c <$> showVars x
132 DDocOp x d -> DDocOp x <$> traverse showVars d 135 DDocOp x d -> DDocOp x <$> traverse showVars d
133 DInfix pr x op y -> DInfix pr <$> showVars x <*> showVarA op <*> showVars y 136 DInfix pr x op y -> DInfix pr <$> showVars x <*> showVarA op <*> showVars y
134 DPreOp pr op y -> DPreOp pr <$> showVarA op <*> showVars y 137 DPreOp pr op y -> DPreOp pr <$> showVarA op <*> showVars y
@@ -140,20 +143,27 @@ renderDoc
140 showVarA (SimpleAtom s) = pure $ SimpleAtom s 143 showVarA (SimpleAtom s) = pure $ SimpleAtom s
141 showVarA (ComplexAtom s i d a) = ComplexAtom s i <$> showVars d <*> showVarA a 144 showVarA (ComplexAtom s i d a) = ComplexAtom s i <$> showVars d <*> showVarA a
142 145
143 addPar :: Fixity -> Doc -> Doc 146 addPar :: Bool -> Fixity -> Doc -> Doc
144 addPar pr x = case x of 147 addPar tn pr x = case x of
145 DAtom x -> DAtom $ addParA x 148 DAtom x -> DAtom $ addParA x
146 DOp0 s f -> DParen $ DOp0 s f 149 DOp0 s f -> DParen $ DOp0 s f
147 DOpL s f x -> DParen $ DOpL s f $ addPar (InfixL $ leftPrecedence f) x 150 DOpL s f x -> DParen $ DOpL s f $ addPar tn (InfixL $ leftPrecedence f) x
148 DOpR s f x -> DParen $ DOpR s f $ addPar (InfixR $ rightPrecedence f) x 151 DOpR s f x -> DParen $ DOpR s f $ addPar tn (InfixR $ rightPrecedence f) x
149 DInfix pr' x op y -> (if protect then DParen else id) 152 DInfix pr' x op y -> (if protect then DParen else id)
150 $ DInfix pr' (addPar (InfixL $ leftPrecedence pr') x) (addParA op) (addPar (InfixR $ rightPrecedence pr') y) 153 $ DInfix pr' (addPar tn (InfixL $ leftPrecedence pr') x) (addParA op) (addPar tn (InfixR $ rightPrecedence pr') y)
151 DPreOp pr' op y -> (if protect then DParen else id) 154 DPreOp pr' op y -> (if protect then DParen else id)
152 $ DPreOp pr' (addParA op) (addPar (Infix pr') y) 155 $ DPreOp pr' (addParA op) (addPar tn (Infix pr') y)
153 DFormat c x -> DFormat c $ addPar pr x 156 DFormat c x -> DFormat c $ addPar tn pr x
154 DDocOp x d -> DDocOp x $ addPar (Infix (-10)) <$> d 157 DTypeNamespace c x -> addPar c pr x
158 DDocOp x d -> DDocOp x $ addPar tn (Infix (-10)) <$> d
155 where 159 where
156 addParA = mapDocAtom (\_ -> addPar . Infix) 160 addParA (SimpleAtom s) = SimpleAtom $ switch tn s
161 addParA (ComplexAtom s i d a) = ComplexAtom s i (addPar tn (Infix i) d) $ addParA a
162
163 switch True ('\'': cs@(c: _)) | isUpper c {- && last cs /= '\'' -} = cs
164 switch True "Type" = "Type" -- TODO: remove
165 switch True cs@(c:_) | isUpper c = '\'': cs
166 switch _ x = x
157 167
158 protect = case x of 168 protect = case x of
159 DInfix f _ _ _ -> precedence f < precedence pr 169 DInfix f _ _ _ -> precedence f < precedence pr
@@ -236,7 +246,7 @@ pattern DAt x = DGlue (InfixR 20) (DText "@") x
236pattern DApp x y = DSep (InfixL 10) x y 246pattern DApp x y = DSep (InfixL 10) x y
237pattern DArr_ s x y = DOp s (InfixR (-1)) x y -- -> => . 247pattern DArr_ s x y = DOp s (InfixR (-1)) x y -- -> => .
238pattern DCstr x y = DOp "~" (Infix (-2)) x y 248pattern DCstr x y = DOp "~" (Infix (-2)) x y
239pattern DAnn x y = DOp "::" (Infix (-3)) x y 249pattern DAnn x y = DOp "::" (Infix (-3)) x (DTypeNamespace True y)
240pattern DLet s x y = DOp s (Infix (-4)) x y -- := = 250pattern DLet s x y = DOp s (Infix (-4)) x y -- := =
241pattern DComma a b = DOp "," (InfixR (-20)) a b 251pattern DComma a b = DOp "," (InfixR (-20)) a b
242pattern DPar l d r = DAtom (ComplexAtom l (-20) d (SimpleAtom r)) 252pattern DPar l d r = DAtom (ComplexAtom l (-20) d (SimpleAtom r))
@@ -265,9 +275,7 @@ shTuple [] = "()"
265shTuple [x] = DParen $ DParen x 275shTuple [x] = DParen $ DParen x
266shTuple xs = DParen $ foldr1 DComma xs 276shTuple xs = DParen $ foldr1 DComma xs
267 277
268shAnn True x (strip -> DText "Type") = x 278shAnn = DAnn
269shAnn True x (strip -> DText "'Type") = x
270shAnn _ x y = DAnn x y
271 279
272shArr = DArr 280shArr = DArr
273 281
diff --git a/test/runTests.hs b/test/runTests.hs
index 96ea6383..2375befd 100644
--- a/test/runTests.hs
+++ b/test/runTests.hs
@@ -207,7 +207,7 @@ doTest Config{..} (i, fn) = do
207 Left (show -> e) -> Left (unlines $ tab "!Failed" e: listTraceInfos i, Failed) 207 Left (show -> e) -> Left (unlines $ tab "!Failed" e: listTraceInfos i, Failed)
208 Right (fname, Left (show -> e)) 208 Right (fname, Left (show -> e))
209 -> Right ("typechecked module" 209 -> Right ("typechecked module"
210 , unlines $ --"------------ desugared source code": map ppShow desug ++ 210 , unlines $ -- "------------ desugared source code": map ppShow desug ++
211 e: listAllInfos i) 211 e: listAllInfos i)
212 Right (fname, Right (e, te)) 212 Right (fname, Right (e, te))
213 | te == outputType -> Right ("compiled pipeline", prettyShowUnlines $ compilePipeline OpenGL33 (e, te)) 213 | te == outputType -> Right ("compiled pipeline", prettyShowUnlines $ compilePipeline OpenGL33 (e, te))
diff --git a/testdata/Builtins.out b/testdata/Builtins.out
index 9eff75a3..cf554d40 100644
--- a/testdata/Builtins.out
+++ b/testdata/Builtins.out
@@ -1,394 +1,394 @@
1main is not found 1main is not found
2------------ trace 2------------ trace
3id :: forall a . a -> a 3id :: forall a . a -> a
4'VecS :: Type -> 'Nat -> Type 4'VecS :: Type -> Nat -> Type
5V2 :: forall a . a -> a -> 'VecS a 2 5V2 :: forall a . a -> a -> VecS a 2
6V3 :: forall a . a -> a -> a -> 'VecS a 3 6V3 :: forall a . a -> a -> a -> VecS a 3
7V4 :: forall a . a -> a -> a -> a -> 'VecS a 4 7V4 :: forall a . a -> a -> a -> a -> VecS a 4
8'VecSCase :: forall a . forall (b :: forall (c :: 'Nat) -> 'VecS a c -> Type) -> (forall (d :: a) (e :: a) -> b 2 (V2 d e)) -> (forall (f :: a) (g :: a) (h :: a) -> b 3 (V3 f g h)) -> (forall (i :: a) (j :: a) (k :: a) (l :: a) -> b 4 (V4 i j k l)) -> forall (m :: 'Nat) . forall (n :: 'VecS a m) -> b m n 8'VecSCase :: forall a . forall (b :: forall (c :: Nat) -> VecS a c -> Type) -> (forall (d :: a) (e :: a) -> b 2 ('V2 d e)) -> (forall (f :: a) (g :: a) (h :: a) -> b 3 ('V3 f g h)) -> (forall (i :: a) (j :: a) (k :: a) (l :: a) -> b 4 ('V4 i j k l)) -> forall (m :: Nat) . forall (n :: VecS a m) -> b m n
9match'VecS :: forall (a :: Type -> Type) -> (forall b (c :: 'Nat) -> a ('VecS b c)) -> forall d -> a d -> a d 9match'VecS :: forall (a :: Type -> Type) -> (forall b (c :: Nat) -> a (VecS b c)) -> forall d -> a d -> a d
10mapVec :: forall a b (c :: 'Nat) . (a -> b) -> 'VecS a c -> 'VecS b c 10mapVec :: forall a b (c :: Nat) . (a -> b) -> VecS a c -> VecS b c
11'Vec :: 'Nat -> Type -> Type 11'Vec :: Nat -> Type -> Type
12'VecScalar :: 'Nat -> Type -> Type 12'VecScalar :: Nat -> Type -> Type
13'Mat :: 'Nat -> 'Nat -> Type -> Type 13'Mat :: Nat -> Nat -> Type -> Type
14M22F :: 'Vec 2 'Float -> 'Vec 2 'Float -> 'Mat 2 2 'Float 14M22F :: Vec 2 Float -> Vec 2 Float -> Mat 2 2 Float
15M32F :: 'Vec 3 'Float -> 'Vec 3 'Float -> 'Mat 3 2 'Float 15M32F :: Vec 3 Float -> Vec 3 Float -> Mat 3 2 Float
16M42F :: 'Vec 4 'Float -> 'Vec 4 'Float -> 'Mat 4 2 'Float 16M42F :: Vec 4 Float -> Vec 4 Float -> Mat 4 2 Float
17M23F :: 'Vec 2 'Float -> 'Vec 2 'Float -> 'Vec 2 'Float -> 'Mat 2 3 'Float 17M23F :: Vec 2 Float -> Vec 2 Float -> Vec 2 Float -> Mat 2 3 Float
18M33F :: 'Vec 3 'Float -> 'Vec 3 'Float -> 'Vec 3 'Float -> 'Mat 3 3 'Float 18M33F :: Vec 3 Float -> Vec 3 Float -> Vec 3 Float -> Mat 3 3 Float
19M43F :: 'Vec 4 'Float -> 'Vec 4 'Float -> 'Vec 4 'Float -> 'Mat 4 3 'Float 19M43F :: Vec 4 Float -> Vec 4 Float -> Vec 4 Float -> Mat 4 3 Float
20M24F :: 'Vec 2 'Float -> 'Vec 2 'Float -> 'Vec 2 'Float -> 'Vec 2 'Float -> 'Mat 2 4 'Float 20M24F :: Vec 2 Float -> Vec 2 Float -> Vec 2 Float -> Vec 2 Float -> Mat 2 4 Float
21M34F :: 'Vec 3 'Float -> 'Vec 3 'Float -> 'Vec 3 'Float -> 'Vec 3 'Float -> 'Mat 3 4 'Float 21M34F :: Vec 3 Float -> Vec 3 Float -> Vec 3 Float -> Vec 3 Float -> Mat 3 4 Float
22M44F :: 'Vec 4 'Float -> 'Vec 4 'Float -> 'Vec 4 'Float -> 'Vec 4 'Float -> 'Mat 4 4 'Float 22M44F :: Vec 4 Float -> Vec 4 Float -> Vec 4 Float -> Vec 4 Float -> Mat 4 4 Float
23'MatCase :: forall (a :: forall (b :: 'Nat) (c :: 'Nat) d -> 'Mat b c d -> Type) -> (forall (e :: 'Vec 2 'Float) (f :: 'Vec 2 'Float) -> a 2 2 'Float (M22F e f)) -> (forall (g :: 'Vec 3 'Float) (h :: 'Vec 3 'Float) -> a 3 2 'Float (M32F g h)) -> (forall (i :: 'Vec 4 'Float) (j :: 'Vec 4 'Float) -> a 4 2 'Float (M42F i j)) -> (forall (k :: 'Vec 2 'Float) (l :: 'Vec 2 'Float) (m :: 'Vec 2 'Float) -> a 2 3 'Float (M23F k l m)) -> (forall (n :: 'Vec 3 'Float) (o :: 'Vec 3 'Float) (p :: 'Vec 3 'Float) -> a 3 3 'Float (M33F n o p)) -> (forall (q :: 'Vec 4 'Float) (r :: 'Vec 4 'Float) (s :: 'Vec 4 'Float) -> a 4 3 'Float (M43F q r s)) -> (forall (t :: 'Vec 2 'Float) (u :: 'Vec 2 'Float) (v :: 'Vec 2 'Float) (w :: 'Vec 2 'Float) -> a 2 4 'Float (M24F t u v w)) -> (forall (x :: 'Vec 3 'Float) (y :: 'Vec 3 'Float) (z :: 'Vec 3 'Float) (a' :: 'Vec 3 'Float) -> a 3 4 'Float (M34F x y z a')) -> (forall (b' :: 'Vec 4 'Float) (c' :: 'Vec 4 'Float) (d' :: 'Vec 4 'Float) (e' :: 'Vec 4 'Float) -> a 4 4 'Float (M44F b' c' d' e')) -> forall (f' :: 'Nat) (g' :: 'Nat) h' . forall (i' :: 'Mat f' g' h') -> a f' g' h' i' 23'MatCase :: forall (a :: forall (b :: Nat) (c :: Nat) d -> Mat b c d -> Type) -> (forall (e :: Vec 2 Float) (f :: Vec 2 Float) -> a 2 2 Float ('M22F e f)) -> (forall (g :: Vec 3 Float) (h :: Vec 3 Float) -> a 3 2 Float ('M32F g h)) -> (forall (i :: Vec 4 Float) (j :: Vec 4 Float) -> a 4 2 Float ('M42F i j)) -> (forall (k :: Vec 2 Float) (l :: Vec 2 Float) (m :: Vec 2 Float) -> a 2 3 Float ('M23F k l m)) -> (forall (n :: Vec 3 Float) (o :: Vec 3 Float) (p :: Vec 3 Float) -> a 3 3 Float ('M33F n o p)) -> (forall (q :: Vec 4 Float) (r :: Vec 4 Float) (s :: Vec 4 Float) -> a 4 3 Float ('M43F q r s)) -> (forall (t :: Vec 2 Float) (u :: Vec 2 Float) (v :: Vec 2 Float) (w :: Vec 2 Float) -> a 2 4 Float ('M24F t u v w)) -> (forall (x :: Vec 3 Float) (y :: Vec 3 Float) (z :: Vec 3 Float) (a' :: Vec 3 Float) -> a 3 4 Float ('M34F x y z a')) -> (forall (b' :: Vec 4 Float) (c' :: Vec 4 Float) (d' :: Vec 4 Float) (e' :: Vec 4 Float) -> a 4 4 Float ('M44F b' c' d' e')) -> forall (f' :: Nat) (g' :: Nat) h' . forall (i' :: Mat f' g' h') -> a f' g' h' i'
24match'Mat :: forall (a :: Type -> Type) -> (forall (b :: 'Nat) (c :: 'Nat) d -> a ('Mat b c d)) -> forall e -> a e -> a e 24match'Mat :: forall (a :: Type -> Type) -> (forall (b :: Nat) (c :: Nat) d -> a (Mat b c d)) -> forall e -> a e -> a e
25'MatVecScalarElem :: Type -> Type 25'MatVecScalarElem :: Type -> Type
26'Signed :: Type -> Type 26'Signed :: Type -> Type
27'Component :: Type -> Type 27'Component :: Type -> Type
28zero :: forall a . 'Component a => a 28zero :: forall a . Component a => a
29one :: forall a . 'Component a => a 29one :: forall a . Component a => a
30'Integral :: Type -> Type 30'Integral :: Type -> Type
31'Floating :: Type -> Type 31'Floating :: Type -> Type
32PrimAdd :: forall a . 'Num ('MatVecScalarElem a) => a -> a -> a 32PrimAdd :: forall a . Num (MatVecScalarElem a) => a -> a -> a
33PrimSub :: forall a . 'Num ('MatVecScalarElem a) => a -> a -> a 33PrimSub :: forall a . Num (MatVecScalarElem a) => a -> a -> a
34PrimMul :: forall a . 'Num ('MatVecScalarElem a) => a -> a -> a 34PrimMul :: forall a . Num (MatVecScalarElem a) => a -> a -> a
35PrimAddS :: forall a b . (a ~ 'MatVecScalarElem b, 'Num a) => b -> a -> b 35PrimAddS :: forall a b . (a ~ MatVecScalarElem b, Num a) => b -> a -> b
36PrimSubS :: forall a b . (a ~ 'MatVecScalarElem b, 'Num a) => b -> a -> b 36PrimSubS :: forall a b . (a ~ MatVecScalarElem b, Num a) => b -> a -> b
37PrimMulS :: forall a b . (a ~ 'MatVecScalarElem b, 'Num a) => b -> a -> b 37PrimMulS :: forall a b . (a ~ MatVecScalarElem b, Num a) => b -> a -> b
38PrimDiv :: forall a b (c :: 'Nat) . ('Num a, b ~ 'VecScalar c a) => b -> b -> b 38PrimDiv :: forall a b (c :: Nat) . (Num a, b ~ VecScalar c a) => b -> b -> b
39PrimMod :: forall a b (c :: 'Nat) . ('Num a, b ~ 'VecScalar c a) => b -> b -> b 39PrimMod :: forall a b (c :: Nat) . (Num a, b ~ VecScalar c a) => b -> b -> b
40PrimDivS :: forall a b (c :: 'Nat) . ('Num a, b ~ 'VecScalar c a) => b -> a -> b 40PrimDivS :: forall a b (c :: Nat) . (Num a, b ~ VecScalar c a) => b -> a -> b
41PrimModS :: forall a b (c :: 'Nat) . ('Num a, b ~ 'VecScalar c a) => b -> a -> b 41PrimModS :: forall a b (c :: Nat) . (Num a, b ~ VecScalar c a) => b -> a -> b
42PrimNeg :: forall a . 'Signed ('MatVecScalarElem a) => a -> a 42PrimNeg :: forall a . Signed (MatVecScalarElem a) => a -> a
43PrimBAnd :: forall a b (c :: 'Nat) . ('Integral a, b ~ 'VecScalar c a) => b -> b -> b 43PrimBAnd :: forall a b (c :: Nat) . (Integral a, b ~ VecScalar c a) => b -> b -> b
44PrimBOr :: forall a b (c :: 'Nat) . ('Integral a, b ~ 'VecScalar c a) => b -> b -> b 44PrimBOr :: forall a b (c :: Nat) . (Integral a, b ~ VecScalar c a) => b -> b -> b
45PrimBXor :: forall a b (c :: 'Nat) . ('Integral a, b ~ 'VecScalar c a) => b -> b -> b 45PrimBXor :: forall a b (c :: Nat) . (Integral a, b ~ VecScalar c a) => b -> b -> b
46PrimBAndS :: forall a b (c :: 'Nat) . ('Integral a, b ~ 'VecScalar c a) => b -> a -> b 46PrimBAndS :: forall a b (c :: Nat) . (Integral a, b ~ VecScalar c a) => b -> a -> b
47PrimBOrS :: forall a b (c :: 'Nat) . ('Integral a, b ~ 'VecScalar c a) => b -> a -> b 47PrimBOrS :: forall a b (c :: Nat) . (Integral a, b ~ VecScalar c a) => b -> a -> b
48PrimBXorS :: forall a b (c :: 'Nat) . ('Integral a, b ~ 'VecScalar c a) => b -> a -> b 48PrimBXorS :: forall a b (c :: Nat) . (Integral a, b ~ VecScalar c a) => b -> a -> b
49PrimBNot :: forall a b (c :: 'Nat) . ('Integral a, b ~ 'VecScalar c a) => b -> b 49PrimBNot :: forall a b (c :: Nat) . (Integral a, b ~ VecScalar c a) => b -> b
50PrimBShiftL :: forall a b (c :: 'Nat) d . ('Integral a, b ~ 'VecScalar c a, d ~ 'VecScalar c 'Word) => b -> d -> b 50PrimBShiftL :: forall a b (c :: Nat) d . (Integral a, b ~ VecScalar c a, d ~ VecScalar c Word) => b -> d -> b
51PrimBShiftR :: forall a b (c :: 'Nat) d . ('Integral a, b ~ 'VecScalar c a, d ~ 'VecScalar c 'Word) => b -> d -> b 51PrimBShiftR :: forall a b (c :: Nat) d . (Integral a, b ~ VecScalar c a, d ~ VecScalar c Word) => b -> d -> b
52PrimBShiftLS :: forall a b (c :: 'Nat) . ('Integral a, b ~ 'VecScalar c a) => b -> 'Word -> b 52PrimBShiftLS :: forall a b (c :: Nat) . (Integral a, b ~ VecScalar c a) => b -> Word -> b
53PrimBShiftRS :: forall a b (c :: 'Nat) . ('Integral a, b ~ 'VecScalar c a) => b -> 'Word -> b 53PrimBShiftRS :: forall a b (c :: Nat) . (Integral a, b ~ VecScalar c a) => b -> Word -> b
54PrimAnd :: 'Bool -> 'Bool -> 'Bool 54PrimAnd :: Bool -> Bool -> Bool
55PrimOr :: 'Bool -> 'Bool -> 'Bool 55PrimOr :: Bool -> Bool -> Bool
56PrimXor :: 'Bool -> 'Bool -> 'Bool 56PrimXor :: Bool -> Bool -> Bool
57PrimNot :: forall a (b :: 'Nat) . (a ~ 'VecScalar b 'Bool) => a -> a 57PrimNot :: forall a (b :: Nat) . (a ~ VecScalar b Bool) => a -> a
58PrimAny :: forall (a :: 'Nat) . 'VecScalar a 'Bool -> 'Bool 58PrimAny :: forall (a :: Nat) . VecScalar a Bool -> Bool
59PrimAll :: forall (a :: 'Nat) . 'VecScalar a 'Bool -> 'Bool 59PrimAll :: forall (a :: Nat) . VecScalar a Bool -> Bool
60PrimACos :: forall a (b :: 'Nat) . (a ~ 'VecScalar b 'Float) => a -> a 60PrimACos :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a
61PrimACosH :: forall a (b :: 'Nat) . (a ~ 'VecScalar b 'Float) => a -> a 61PrimACosH :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a
62PrimASin :: forall a (b :: 'Nat) . (a ~ 'VecScalar b 'Float) => a -> a 62PrimASin :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a
63PrimASinH :: forall a (b :: 'Nat) . (a ~ 'VecScalar b 'Float) => a -> a 63PrimASinH :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a
64PrimATan :: forall a (b :: 'Nat) . (a ~ 'VecScalar b 'Float) => a -> a 64PrimATan :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a
65PrimATanH :: forall a (b :: 'Nat) . (a ~ 'VecScalar b 'Float) => a -> a 65PrimATanH :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a
66PrimCos :: forall a (b :: 'Nat) . (a ~ 'VecScalar b 'Float) => a -> a 66PrimCos :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a
67PrimCosH :: forall a (b :: 'Nat) . (a ~ 'VecScalar b 'Float) => a -> a 67PrimCosH :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a
68PrimDegrees :: forall a (b :: 'Nat) . (a ~ 'VecScalar b 'Float) => a -> a 68PrimDegrees :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a
69PrimRadians :: forall a (b :: 'Nat) . (a ~ 'VecScalar b 'Float) => a -> a 69PrimRadians :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a
70PrimSin :: forall a (b :: 'Nat) . (a ~ 'VecScalar b 'Float) => a -> a 70PrimSin :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a
71PrimSinH :: forall a (b :: 'Nat) . (a ~ 'VecScalar b 'Float) => a -> a 71PrimSinH :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a
72PrimTan :: forall a (b :: 'Nat) . (a ~ 'VecScalar b 'Float) => a -> a 72PrimTan :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a
73PrimTanH :: forall a (b :: 'Nat) . (a ~ 'VecScalar b 'Float) => a -> a 73PrimTanH :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a
74PrimExp :: forall a (b :: 'Nat) . (a ~ 'VecScalar b 'Float) => a -> a 74PrimExp :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a
75PrimLog :: forall a (b :: 'Nat) . (a ~ 'VecScalar b 'Float) => a -> a 75PrimLog :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a
76PrimExp2 :: forall a (b :: 'Nat) . (a ~ 'VecScalar b 'Float) => a -> a 76PrimExp2 :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a
77PrimLog2 :: forall a (b :: 'Nat) . (a ~ 'VecScalar b 'Float) => a -> a 77PrimLog2 :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a
78PrimSqrt :: forall a (b :: 'Nat) . (a ~ 'VecScalar b 'Float) => a -> a 78PrimSqrt :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a
79PrimInvSqrt :: forall a (b :: 'Nat) . (a ~ 'VecScalar b 'Float) => a -> a 79PrimInvSqrt :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a
80PrimPow :: forall a (b :: 'Nat) . (a ~ 'VecScalar b 'Float) => a -> a -> a 80PrimPow :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a -> a
81PrimATan2 :: forall a (b :: 'Nat) . (a ~ 'VecScalar b 'Float) => a -> a -> a 81PrimATan2 :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a -> a
82PrimFloor :: forall a (b :: 'Nat) . (a ~ 'VecScalar b 'Float) => a -> a 82PrimFloor :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a
83PrimTrunc :: forall a (b :: 'Nat) . (a ~ 'VecScalar b 'Float) => a -> a 83PrimTrunc :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a
84PrimRound :: forall a (b :: 'Nat) . (a ~ 'VecScalar b 'Float) => a -> a 84PrimRound :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a
85PrimRoundEven :: forall a (b :: 'Nat) . (a ~ 'VecScalar b 'Float) => a -> a 85PrimRoundEven :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a
86PrimCeil :: forall a (b :: 'Nat) . (a ~ 'VecScalar b 'Float) => a -> a 86PrimCeil :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a
87PrimFract :: forall a (b :: 'Nat) . (a ~ 'VecScalar b 'Float) => a -> a 87PrimFract :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a
88PrimMin :: forall a b (c :: 'Nat) . ('Num a, b ~ 'VecScalar c a) => b -> b -> b 88PrimMin :: forall a b (c :: Nat) . (Num a, b ~ VecScalar c a) => b -> b -> b
89PrimMax :: forall a b (c :: 'Nat) . ('Num a, b ~ 'VecScalar c a) => b -> b -> b 89PrimMax :: forall a b (c :: Nat) . (Num a, b ~ VecScalar c a) => b -> b -> b
90PrimMinS :: forall a b (c :: 'Nat) . ('Num a, b ~ 'VecScalar c a) => b -> a -> b 90PrimMinS :: forall a b (c :: Nat) . (Num a, b ~ VecScalar c a) => b -> a -> b
91PrimMaxS :: forall a b (c :: 'Nat) . ('Num a, b ~ 'VecScalar c a) => b -> a -> b 91PrimMaxS :: forall a b (c :: Nat) . (Num a, b ~ VecScalar c a) => b -> a -> b
92PrimIsNan :: forall a (b :: 'Nat) c . (a ~ 'VecScalar b 'Float, c ~ 'VecScalar b 'Bool) => a -> c 92PrimIsNan :: forall a (b :: Nat) c . (a ~ VecScalar b Float, c ~ VecScalar b Bool) => a -> c
93PrimIsInf :: forall a (b :: 'Nat) c . (a ~ 'VecScalar b 'Float, c ~ 'VecScalar b 'Bool) => a -> c 93PrimIsInf :: forall a (b :: Nat) c . (a ~ VecScalar b Float, c ~ VecScalar b Bool) => a -> c
94PrimAbs :: forall a b (c :: 'Nat) . ('Signed a, b ~ 'VecScalar c a) => b -> b 94PrimAbs :: forall a b (c :: Nat) . (Signed a, b ~ VecScalar c a) => b -> b
95PrimSign :: forall a b (c :: 'Nat) . ('Signed a, b ~ 'VecScalar c a) => b -> b 95PrimSign :: forall a b (c :: Nat) . (Signed a, b ~ VecScalar c a) => b -> b
96PrimModF :: forall a (b :: 'Nat) . (a ~ 'VecScalar b 'Float) => a -> (a, a) 96PrimModF :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> (a, a)
97PrimClamp :: forall a b (c :: 'Nat) . ('Num a, b ~ 'VecScalar c a) => b -> b -> b -> b 97PrimClamp :: forall a b (c :: Nat) . (Num a, b ~ VecScalar c a) => b -> b -> b -> b
98PrimClampS :: forall a b (c :: 'Nat) . ('Num a, b ~ 'VecScalar c a) => b -> a -> a -> b 98PrimClampS :: forall a b (c :: Nat) . (Num a, b ~ VecScalar c a) => b -> a -> a -> b
99PrimMix :: forall a (b :: 'Nat) . (a ~ 'VecScalar b 'Float) => a -> a -> a -> a 99PrimMix :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a -> a -> a
100PrimMixS :: forall a (b :: 'Nat) . (a ~ 'VecScalar b 'Float) => a -> a -> 'Float -> a 100PrimMixS :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a -> Float -> a
101PrimMixB :: forall a (b :: 'Nat) c . (a ~ 'VecScalar b 'Float, c ~ 'VecScalar b 'Bool) => a -> a -> c -> a 101PrimMixB :: forall a (b :: Nat) c . (a ~ VecScalar b Float, c ~ VecScalar b Bool) => a -> a -> c -> a
102PrimStep :: forall a (b :: 'Nat) . (a ~ 'VecS 'Float b) => a -> a -> a 102PrimStep :: forall a (b :: Nat) . (a ~ VecS Float b) => a -> a -> a
103PrimStepS :: forall a (b :: 'Nat) . (a ~ 'VecScalar b 'Float) => 'Float -> a -> a 103PrimStepS :: forall a (b :: Nat) . (a ~ VecScalar b Float) => Float -> a -> a
104PrimSmoothStep :: forall a (b :: 'Nat) . (a ~ 'VecS 'Float b) => a -> a -> a -> a 104PrimSmoothStep :: forall a (b :: Nat) . (a ~ VecS Float b) => a -> a -> a -> a
105PrimSmoothStepS :: forall a (b :: 'Nat) . (a ~ 'VecScalar b 'Float) => 'Float -> 'Float -> a -> a 105PrimSmoothStepS :: forall a (b :: Nat) . (a ~ VecScalar b Float) => Float -> Float -> a -> a
106PrimFloatBitsToInt :: forall (a :: 'Nat) . 'VecScalar a 'Float -> 'VecScalar a 'Int 106PrimFloatBitsToInt :: forall (a :: Nat) . VecScalar a Float -> VecScalar a Int
107PrimFloatBitsToUInt :: forall (a :: 'Nat) . 'VecScalar a 'Float -> 'VecScalar a 'Word 107PrimFloatBitsToUInt :: forall (a :: Nat) . VecScalar a Float -> VecScalar a Word
108PrimIntBitsToFloat :: forall (a :: 'Nat) . 'VecScalar a 'Int -> 'VecScalar a 'Float 108PrimIntBitsToFloat :: forall (a :: Nat) . VecScalar a Int -> VecScalar a Float
109PrimUIntBitsToFloat :: forall (a :: 'Nat) . 'VecScalar a 'Word -> 'VecScalar a 'Float 109PrimUIntBitsToFloat :: forall (a :: Nat) . VecScalar a Word -> VecScalar a Float
110PrimLength :: forall a (b :: 'Nat) . (a ~ 'VecScalar b 'Float) => a -> 'Float 110PrimLength :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> Float
111PrimDistance :: forall a (b :: 'Nat) . (a ~ 'VecScalar b 'Float) => a -> a -> 'Float 111PrimDistance :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a -> Float
112PrimDot :: forall a (b :: 'Nat) . (a ~ 'VecScalar b 'Float) => a -> a -> 'Float 112PrimDot :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a -> Float
113PrimCross :: forall a . (a ~ 'VecS 'Float 3) => a -> a -> a 113PrimCross :: forall a . (a ~ VecS Float 3) => a -> a -> a
114PrimNormalize :: forall a (b :: 'Nat) . (a ~ 'VecScalar b 'Float) => a -> a 114PrimNormalize :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a
115PrimFaceForward :: forall a (b :: 'Nat) . (a ~ 'VecScalar b 'Float) => a -> a -> a -> a 115PrimFaceForward :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a -> a -> a
116PrimRefract :: forall a (b :: 'Nat) . (a ~ 'VecScalar b 'Float) => a -> a -> a -> a 116PrimRefract :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a -> a -> a
117PrimReflect :: forall a (b :: 'Nat) . (a ~ 'VecScalar b 'Float) => a -> a -> a 117PrimReflect :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a -> a
118PrimTranspose :: forall (a :: 'Nat) (b :: 'Nat) c . 'Mat a b c -> 'Mat b a c 118PrimTranspose :: forall (a :: Nat) (b :: Nat) c . Mat a b c -> Mat b a c
119PrimDeterminant :: forall (a :: 'Nat) b . 'Mat a a b -> 'Float 119PrimDeterminant :: forall (a :: Nat) b . Mat a a b -> Float
120PrimInverse :: forall (a :: 'Nat) b . 'Mat a a b -> 'Mat a a b 120PrimInverse :: forall (a :: Nat) b . Mat a a b -> Mat a a b
121PrimOuterProduct :: forall (a :: 'Nat) b (c :: 'Nat) . 'Vec a b -> 'Vec c b -> 'Mat c a b 121PrimOuterProduct :: forall (a :: Nat) b (c :: Nat) . Vec a b -> Vec c b -> Mat c a b
122PrimMulMatVec :: forall (a :: 'Nat) (b :: 'Nat) c . 'Mat a b c -> 'Vec b c -> 'Vec a c 122PrimMulMatVec :: forall (a :: Nat) (b :: Nat) c . Mat a b c -> Vec b c -> Vec a c
123PrimMulVecMat :: forall (a :: 'Nat) b (c :: 'Nat) . 'Vec a b -> 'Mat a c b -> 'Vec c b 123PrimMulVecMat :: forall (a :: Nat) b (c :: Nat) . Vec a b -> Mat a c b -> Vec c b
124PrimMulMatMat :: forall (a :: 'Nat) (b :: 'Nat) c (d :: 'Nat) . 'Mat a b c -> 'Mat b d c -> 'Mat a d c 124PrimMulMatMat :: forall (a :: Nat) (b :: Nat) c (d :: Nat) . Mat a b c -> Mat b d c -> Mat a d c
125PrimLessThan :: forall a (b :: 'Nat) c d . ('Num c, a ~ 'VecScalar b c, d ~ 'VecScalar b 'Bool) => a -> a -> d 125PrimLessThan :: forall a (b :: Nat) c d . (Num c, a ~ VecScalar b c, d ~ VecScalar b Bool) => a -> a -> d
126PrimLessThanEqual :: forall a (b :: 'Nat) c d . ('Num c, a ~ 'VecScalar b c, d ~ 'VecScalar b 'Bool) => a -> a -> d 126PrimLessThanEqual :: forall a (b :: Nat) c d . (Num c, a ~ VecScalar b c, d ~ VecScalar b Bool) => a -> a -> d
127PrimGreaterThan :: forall a (b :: 'Nat) c d . ('Num c, a ~ 'VecScalar b c, d ~ 'VecScalar b 'Bool) => a -> a -> d 127PrimGreaterThan :: forall a (b :: Nat) c d . (Num c, a ~ VecScalar b c, d ~ VecScalar b Bool) => a -> a -> d
128PrimGreaterThanEqual :: forall a (b :: 'Nat) c d . ('Num c, a ~ 'VecScalar b c, d ~ 'VecScalar b 'Bool) => a -> a -> d 128PrimGreaterThanEqual :: forall a (b :: Nat) c d . (Num c, a ~ VecScalar b c, d ~ VecScalar b Bool) => a -> a -> d
129PrimEqualV :: forall a (b :: 'Nat) c d . ('Num c, a ~ 'VecScalar b c, d ~ 'VecScalar b 'Bool) => a -> a -> d 129PrimEqualV :: forall a (b :: Nat) c d . (Num c, a ~ VecScalar b c, d ~ VecScalar b Bool) => a -> a -> d
130PrimNotEqualV :: forall a (b :: 'Nat) c d . ('Num c, a ~ 'VecScalar b c, d ~ 'VecScalar b 'Bool) => a -> a -> d 130PrimNotEqualV :: forall a (b :: Nat) c d . (Num c, a ~ VecScalar b c, d ~ VecScalar b Bool) => a -> a -> d
131PrimEqual :: forall a b . (b ~ 'MatVecScalarElem a) => a -> a -> 'Bool 131PrimEqual :: forall a b . (b ~ MatVecScalarElem a) => a -> a -> Bool
132PrimNotEqual :: forall a b . (b ~ 'MatVecScalarElem a) => a -> a -> 'Bool 132PrimNotEqual :: forall a b . (b ~ MatVecScalarElem a) => a -> a -> Bool
133PrimDFdx :: forall a (b :: 'Nat) . (a ~ 'VecScalar b 'Float) => a -> a 133PrimDFdx :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a
134PrimDFdy :: forall a (b :: 'Nat) . (a ~ 'VecScalar b 'Float) => a -> a 134PrimDFdy :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a
135PrimFWidth :: forall a (b :: 'Nat) . (a ~ 'VecScalar b 'Float) => a -> a 135PrimFWidth :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a
136PrimNoise1 :: forall (a :: 'Nat) . 'VecScalar a 'Float -> 'Float 136PrimNoise1 :: forall (a :: Nat) . VecScalar a Float -> Float
137PrimNoise2 :: forall (a :: 'Nat) . 'VecScalar a 'Float -> 'Vec 2 'Float 137PrimNoise2 :: forall (a :: Nat) . VecScalar a Float -> Vec 2 Float
138PrimNoise3 :: forall (a :: 'Nat) . 'VecScalar a 'Float -> 'Vec 3 'Float 138PrimNoise3 :: forall (a :: Nat) . VecScalar a Float -> Vec 3 Float
139PrimNoise4 :: forall (a :: 'Nat) . 'VecScalar a 'Float -> 'Vec 4 'Float 139PrimNoise4 :: forall (a :: Nat) . VecScalar a Float -> Vec 4 Float
140head :: forall a . 'List a -> a 140head :: forall a . List a -> a
141++ :: forall a . 'List a -> 'List a -> 'List a 141++ :: forall a . List a -> List a -> List a
142foldr :: forall a b . (b -> a -> a) -> a -> 'List b -> a 142foldr :: forall a b . (b -> a -> a) -> a -> List b -> a
143concat :: forall a . 'List ('List a) -> 'List a 143concat :: forall a . List (List a) -> List a
144map :: forall a b . (a -> b) -> 'List a -> 'List b 144map :: forall a b . (a -> b) -> List a -> List b
145concatMap :: forall a b . (a -> 'List b) -> 'List a -> 'List b 145concatMap :: forall a b . (a -> List b) -> List a -> List b
146len :: forall a . 'List a -> 'Int 146len :: forall a . List a -> Int
147'Maybe :: Type -> Type 147'Maybe :: Type -> Type
148Nothing :: forall a . 'Maybe a 148Nothing :: forall a . Maybe a
149Just :: forall a . a -> 'Maybe a 149Just :: forall a . a -> Maybe a
150'MaybeCase :: forall a . forall (b :: 'Maybe a -> Type) -> b Nothing -> (forall (c :: a) -> b (Just c)) -> forall (d :: 'Maybe a) -> b d 150'MaybeCase :: forall a . forall (b :: Maybe a -> Type) -> b 'Nothing -> (forall (c :: a) -> b ('Just c)) -> forall (d :: Maybe a) -> b d
151match'Maybe :: forall (a :: Type -> Type) -> (forall b -> a ('Maybe b)) -> forall c -> a c -> a c 151match'Maybe :: forall (a :: Type -> Type) -> (forall b -> a (Maybe b)) -> forall c -> a c -> a c
152'Vector :: 'Nat -> Type -> Type 152'Vector :: Nat -> Type -> Type
153'VectorCase :: forall (a :: 'Nat) b . forall (c :: 'Vector a b -> Type) (d :: 'Vector a b) -> c d 153'VectorCase :: forall (a :: Nat) b . forall (c :: Vector a b -> Type) (d :: Vector a b) -> c d
154match'Vector :: forall (a :: Type -> Type) -> (forall (b :: 'Nat) c -> a ('Vector b c)) -> forall d -> a d -> a d 154match'Vector :: forall (a :: Type -> Type) -> (forall (b :: Nat) c -> a (Vector b c)) -> forall d -> a d -> a d
155'PrimitiveType :: Type 155'PrimitiveType :: Type
156Triangle :: 'PrimitiveType 156Triangle :: PrimitiveType
157Line :: 'PrimitiveType 157Line :: PrimitiveType
158Point :: 'PrimitiveType 158Point :: PrimitiveType
159TriangleAdjacency :: 'PrimitiveType 159TriangleAdjacency :: PrimitiveType
160LineAdjacency :: 'PrimitiveType 160LineAdjacency :: PrimitiveType
161'PrimitiveTypeCase :: forall (a :: 'PrimitiveType -> Type) -> a Triangle -> a Line -> a Point -> a TriangleAdjacency -> a LineAdjacency -> forall (b :: 'PrimitiveType) -> a b 161'PrimitiveTypeCase :: forall (a :: PrimitiveType -> Type) -> a 'Triangle -> a 'Line -> a 'Point -> a 'TriangleAdjacency -> a 'LineAdjacency -> forall (b :: PrimitiveType) -> a b
162match'PrimitiveType :: forall (a :: Type -> Type) -> a 'PrimitiveType -> forall b -> a b -> a b 162match'PrimitiveType :: forall (a :: Type -> Type) -> a PrimitiveType -> forall b -> a b -> a b
163'Primitive :: Type -> 'PrimitiveType -> Type 163'Primitive :: Type -> PrimitiveType -> Type
164PrimPoint :: forall a . a -> 'Primitive a Point 164PrimPoint :: forall a . a -> Primitive a 'Point
165PrimLine :: forall a . a -> a -> 'Primitive a Line 165PrimLine :: forall a . a -> a -> Primitive a 'Line
166PrimTriangle :: forall a . a -> a -> a -> 'Primitive a Triangle 166PrimTriangle :: forall a . a -> a -> a -> Primitive a 'Triangle
167'PrimitiveCase :: forall a . forall (b :: forall (c :: 'PrimitiveType) -> 'Primitive a c -> Type) -> (forall (d :: a) -> b Point (PrimPoint d)) -> (forall (e :: a) (f :: a) -> b Line (PrimLine e f)) -> (forall (g :: a) (h :: a) (i :: a) -> b Triangle (PrimTriangle g h i)) -> forall (j :: 'PrimitiveType) . forall (k :: 'Primitive a j) -> b j k 167'PrimitiveCase :: forall a . forall (b :: forall (c :: PrimitiveType) -> Primitive a c -> Type) -> (forall (d :: a) -> b 'Point ('PrimPoint d)) -> (forall (e :: a) (f :: a) -> b 'Line ('PrimLine e f)) -> (forall (g :: a) (h :: a) (i :: a) -> b 'Triangle ('PrimTriangle g h i)) -> forall (j :: PrimitiveType) . forall (k :: Primitive a j) -> b j k
168match'Primitive :: forall (a :: Type -> Type) -> (forall b (c :: 'PrimitiveType) -> a ('Primitive b c)) -> forall d -> a d -> a d 168match'Primitive :: forall (a :: Type -> Type) -> (forall b (c :: PrimitiveType) -> a (Primitive b c)) -> forall d -> a d -> a d
169mapPrimitive :: forall a b (c :: 'PrimitiveType) . (a -> b) -> 'Primitive a c -> 'Primitive b c 169mapPrimitive :: forall a b (c :: PrimitiveType) . (a -> b) -> Primitive a c -> Primitive b c
170'PrimitiveStream :: 'PrimitiveType -> Type -> Type 170'PrimitiveStream :: PrimitiveType -> Type -> Type
171mapPrimitives :: forall a b (c :: 'PrimitiveType) . (a -> b) -> 'List ('Primitive a c) -> 'List ('Primitive b c) 171mapPrimitives :: forall a b (c :: PrimitiveType) . (a -> b) -> List (Primitive a c) -> List (Primitive b c)
172'ListElem :: Type -> Type 172'ListElem :: Type -> Type
173fetchArrays :: forall (a :: 'PrimitiveType) (b :: 'List Type) (c :: 'List Type) . (b ~ map Type Type 'ListElem c) => 'HList c -> 'PrimitiveStream a ('HList b) 173fetchArrays :: forall (a :: PrimitiveType) (b :: List Type) (c :: List Type) . (b ~ map Type Type ListElem c) => HList c -> PrimitiveStream a (HList b)
174fetch :: forall (a :: 'PrimitiveType) (b :: 'List Type) . 'String -> 'HList b -> 'PrimitiveStream a ('HList b) 174fetch :: forall (a :: PrimitiveType) (b :: List Type) . String -> HList b -> PrimitiveStream a (HList b)
175Attribute :: forall a . 'String -> a 175Attribute :: forall a . String -> a
176fetchStream :: forall (a :: 'PrimitiveType) (b :: 'List Type) . 'String -> forall (c :: 'List 'String) -> (len 'String c ~ len Type b) => 'PrimitiveStream a ('HList b) 176fetchStream :: forall (a :: PrimitiveType) (b :: List Type) . String -> forall (c :: List String) -> (len String c ~ len Type b) => PrimitiveStream a (HList b)
177'SimpleFragment :: Type -> Type 177'SimpleFragment :: Type -> Type
178SimpleFragment :: forall a . 'Vec 3 'Float -> a -> 'SimpleFragment a 178SimpleFragment :: forall a . Vec 3 Float -> a -> SimpleFragment a
179'SimpleFragmentCase :: forall a . forall (b :: 'SimpleFragment a -> Type) -> (forall (c :: 'Vec 3 'Float) (d :: a) -> b (SimpleFragment c d)) -> forall (e :: 'SimpleFragment a) -> b e 179'SimpleFragmentCase :: forall a . forall (b :: SimpleFragment a -> Type) -> (forall (c :: Vec 3 Float) (d :: a) -> b ('SimpleFragment c d)) -> forall (e :: SimpleFragment a) -> b e
180match'SimpleFragment :: forall (a :: Type -> Type) -> (forall b -> a ('SimpleFragment b)) -> forall c -> a c -> a c 180match'SimpleFragment :: forall (a :: Type -> Type) -> (forall b -> a (SimpleFragment b)) -> forall c -> a c -> a c
181'Fragment :: 'Nat -> Type -> Type 181'Fragment :: Nat -> Type -> Type
182sFragmentCoords :: forall a . 'SimpleFragment a -> 'VecS 'Float 3 182sFragmentCoords :: forall a . SimpleFragment a -> VecS Float 3
183sFragmentValue :: forall a . 'SimpleFragment a -> a 183sFragmentValue :: forall a . SimpleFragment a -> a
184'FragmentStream :: 'Nat -> Type -> Type 184'FragmentStream :: Nat -> Type -> Type
185customizeDepth :: forall a (b :: 'Nat) . (a -> 'Float) -> 'Fragment b a -> 'Fragment b a 185customizeDepth :: forall a (b :: Nat) . (a -> Float) -> Fragment b a -> Fragment b a
186customizeDepths :: forall a (b :: 'Nat) . (a -> 'Float) -> 'List ('Vector b ('Maybe ('SimpleFragment a))) -> 'List ('Vector b ('Maybe ('SimpleFragment a))) 186customizeDepths :: forall a (b :: Nat) . (a -> Float) -> List (Vector b (Maybe (SimpleFragment a))) -> List (Vector b (Maybe (SimpleFragment a)))
187filterFragment :: forall a (b :: 'Nat) . (a -> 'Bool) -> 'Fragment b a -> 'Fragment b a 187filterFragment :: forall a (b :: Nat) . (a -> Bool) -> Fragment b a -> Fragment b a
188filterFragments :: forall a (b :: 'Nat) . (a -> 'Bool) -> 'List ('Vector b ('Maybe ('SimpleFragment a))) -> 'List ('Vector b ('Maybe ('SimpleFragment a))) 188filterFragments :: forall a (b :: Nat) . (a -> Bool) -> List (Vector b (Maybe (SimpleFragment a))) -> List (Vector b (Maybe (SimpleFragment a)))
189mapFragment :: forall a b (c :: 'Nat) . (a -> b) -> 'Fragment c a -> 'Fragment c b 189mapFragment :: forall a b (c :: Nat) . (a -> b) -> Fragment c a -> Fragment c b
190mapFragments :: forall a b (c :: 'Nat) . (a -> b) -> 'List ('Vector c ('Maybe ('SimpleFragment a))) -> 'List ('Vector c ('Maybe ('SimpleFragment b))) 190mapFragments :: forall a b (c :: Nat) . (a -> b) -> List (Vector c (Maybe (SimpleFragment a))) -> List (Vector c (Maybe (SimpleFragment b)))
191'ImageKind :: Type 191'ImageKind :: Type
192Color :: Type -> 'ImageKind 192Color :: Type -> ImageKind
193Depth :: 'ImageKind 193Depth :: ImageKind
194Stencil :: 'ImageKind 194Stencil :: ImageKind
195'ImageKindCase :: forall (a :: 'ImageKind -> Type) -> (forall b -> a (Color b)) -> a Depth -> a Stencil -> forall (c :: 'ImageKind) -> a c 195'ImageKindCase :: forall (a :: ImageKind -> Type) -> (forall b -> a ('Color b)) -> a 'Depth -> a 'Stencil -> forall (c :: ImageKind) -> a c
196match'ImageKind :: forall (a :: Type -> Type) -> a 'ImageKind -> forall b -> a b -> a b 196match'ImageKind :: forall (a :: Type -> Type) -> a ImageKind -> forall b -> a b -> a b
197imageType :: 'ImageKind -> Type 197imageType :: ImageKind -> Type
198'Image :: 'Nat -> 'ImageKind -> Type 198'Image :: Nat -> ImageKind -> Type
199'ImageCase :: forall (a :: 'Nat) (b :: 'ImageKind) . forall (c :: 'Image a b -> Type) (d :: 'Image a b) -> c d 199'ImageCase :: forall (a :: Nat) (b :: ImageKind) . forall (c :: Image a b -> Type) (d :: Image a b) -> c d
200match'Image :: forall (a :: Type -> Type) -> (forall (b :: 'Nat) (c :: 'ImageKind) -> a ('Image b c)) -> forall d -> a d -> a d 200match'Image :: forall (a :: Type -> Type) -> (forall (b :: Nat) (c :: ImageKind) -> a (Image b c)) -> forall d -> a d -> a d
201ColorImage :: forall (a :: 'Nat) (b :: 'Nat) c d . ('Num c, d ~ 'VecScalar b c) => d -> 'Image a (Color d) 201ColorImage :: forall (a :: Nat) (b :: Nat) c d . (Num c, d ~ VecScalar b c) => d -> Image a ('Color d)
202DepthImage :: forall (a :: 'Nat) . 'Float -> 'Image a Depth 202DepthImage :: forall (a :: Nat) . Float -> Image a 'Depth
203StencilImage :: forall (a :: 'Nat) . 'Int -> 'Image a Stencil 203StencilImage :: forall (a :: Nat) . Int -> Image a 'Stencil
204emptyDepthImage :: 'Float -> 'Image 1 Depth 204emptyDepthImage :: Float -> Image 1 'Depth
205emptyColorImage :: forall (a :: 'Nat) b c . ('Num b, c ~ 'VecScalar a b) => c -> 'Image 1 (Color c) 205emptyColorImage :: forall (a :: Nat) b c . (Num b, c ~ VecScalar a b) => c -> Image 1 ('Color c)
206'Swizz :: Type 206'Swizz :: Type
207Sx :: 'Swizz 207Sx :: Swizz
208Sy :: 'Swizz 208Sy :: Swizz
209Sz :: 'Swizz 209Sz :: Swizz
210Sw :: 'Swizz 210Sw :: Swizz
211'SwizzCase :: forall (a :: 'Swizz -> Type) -> a Sx -> a Sy -> a Sz -> a Sw -> forall (b :: 'Swizz) -> a b 211'SwizzCase :: forall (a :: Swizz -> Type) -> a 'Sx -> a 'Sy -> a 'Sz -> a 'Sw -> forall (b :: Swizz) -> a b
212match'Swizz :: forall (a :: Type -> Type) -> a 'Swizz -> forall b -> a b -> a b 212match'Swizz :: forall (a :: Type -> Type) -> a Swizz -> forall b -> a b -> a b
213swizzscalar :: forall a (b :: 'Nat) . 'Vec b a -> 'Swizz -> a 213swizzscalar :: forall a (b :: Nat) . Vec b a -> Swizz -> a
214definedVec :: forall a (b :: 'Nat) . 'Vec b a -> 'Bool 214definedVec :: forall a (b :: Nat) . Vec b a -> Bool
215swizzvector :: forall a (b :: 'Nat) (c :: 'Nat) . 'Vec b a -> 'Vec c 'Swizz -> 'VecS a c 215swizzvector :: forall a (b :: Nat) (c :: Nat) . Vec b a -> Vec c Swizz -> VecS a c
216'BlendingFactor :: Type 216'BlendingFactor :: Type
217ZeroBF :: 'BlendingFactor 217ZeroBF :: BlendingFactor
218OneBF :: 'BlendingFactor 218OneBF :: BlendingFactor
219SrcColor :: 'BlendingFactor 219SrcColor :: BlendingFactor
220OneMinusSrcColor :: 'BlendingFactor 220OneMinusSrcColor :: BlendingFactor
221DstColor :: 'BlendingFactor 221DstColor :: BlendingFactor
222OneMinusDstColor :: 'BlendingFactor 222OneMinusDstColor :: BlendingFactor
223SrcAlpha :: 'BlendingFactor 223SrcAlpha :: BlendingFactor
224OneMinusSrcAlpha :: 'BlendingFactor 224OneMinusSrcAlpha :: BlendingFactor
225DstAlpha :: 'BlendingFactor 225DstAlpha :: BlendingFactor
226OneMinusDstAlpha :: 'BlendingFactor 226OneMinusDstAlpha :: BlendingFactor
227ConstantColor :: 'BlendingFactor 227ConstantColor :: BlendingFactor
228OneMinusConstantColor :: 'BlendingFactor 228OneMinusConstantColor :: BlendingFactor
229ConstantAlpha :: 'BlendingFactor 229ConstantAlpha :: BlendingFactor
230OneMinusConstantAlpha :: 'BlendingFactor 230OneMinusConstantAlpha :: BlendingFactor
231SrcAlphaSaturate :: 'BlendingFactor 231SrcAlphaSaturate :: BlendingFactor
232'BlendingFactorCase :: forall (a :: 'BlendingFactor -> Type) -> a ZeroBF -> a OneBF -> a SrcColor -> a OneMinusSrcColor -> a DstColor -> a OneMinusDstColor -> a SrcAlpha -> a OneMinusSrcAlpha -> a DstAlpha -> a OneMinusDstAlpha -> a ConstantColor -> a OneMinusConstantColor -> a ConstantAlpha -> a OneMinusConstantAlpha -> a SrcAlphaSaturate -> forall (b :: 'BlendingFactor) -> a b 232'BlendingFactorCase :: forall (a :: BlendingFactor -> Type) -> a 'ZeroBF -> a 'OneBF -> a 'SrcColor -> a 'OneMinusSrcColor -> a 'DstColor -> a 'OneMinusDstColor -> a 'SrcAlpha -> a 'OneMinusSrcAlpha -> a 'DstAlpha -> a 'OneMinusDstAlpha -> a 'ConstantColor -> a 'OneMinusConstantColor -> a 'ConstantAlpha -> a 'OneMinusConstantAlpha -> a 'SrcAlphaSaturate -> forall (b :: BlendingFactor) -> a b
233match'BlendingFactor :: forall (a :: Type -> Type) -> a 'BlendingFactor -> forall b -> a b -> a b 233match'BlendingFactor :: forall (a :: Type -> Type) -> a BlendingFactor -> forall b -> a b -> a b
234'BlendEquation :: Type 234'BlendEquation :: Type
235FuncAdd :: 'BlendEquation 235FuncAdd :: BlendEquation
236FuncSubtract :: 'BlendEquation 236FuncSubtract :: BlendEquation
237FuncReverseSubtract :: 'BlendEquation 237FuncReverseSubtract :: BlendEquation
238Min :: 'BlendEquation 238Min :: BlendEquation
239Max :: 'BlendEquation 239Max :: BlendEquation
240'BlendEquationCase :: forall (a :: 'BlendEquation -> Type) -> a FuncAdd -> a FuncSubtract -> a FuncReverseSubtract -> a Min -> a Max -> forall (b :: 'BlendEquation) -> a b 240'BlendEquationCase :: forall (a :: BlendEquation -> Type) -> a 'FuncAdd -> a 'FuncSubtract -> a 'FuncReverseSubtract -> a 'Min -> a 'Max -> forall (b :: BlendEquation) -> a b
241match'BlendEquation :: forall (a :: Type -> Type) -> a 'BlendEquation -> forall b -> a b -> a b 241match'BlendEquation :: forall (a :: Type -> Type) -> a BlendEquation -> forall b -> a b -> a b
242'LogicOperation :: Type 242'LogicOperation :: Type
243Clear :: 'LogicOperation 243Clear :: LogicOperation
244And :: 'LogicOperation 244And :: LogicOperation
245AndReverse :: 'LogicOperation 245AndReverse :: LogicOperation
246Copy :: 'LogicOperation 246Copy :: LogicOperation
247AndInverted :: 'LogicOperation 247AndInverted :: LogicOperation
248Noop :: 'LogicOperation 248Noop :: LogicOperation
249Xor :: 'LogicOperation 249Xor :: LogicOperation
250Or :: 'LogicOperation 250Or :: LogicOperation
251Nor :: 'LogicOperation 251Nor :: LogicOperation
252Equiv :: 'LogicOperation 252Equiv :: LogicOperation
253Invert :: 'LogicOperation 253Invert :: LogicOperation
254OrReverse :: 'LogicOperation 254OrReverse :: LogicOperation
255CopyInverted :: 'LogicOperation 255CopyInverted :: LogicOperation
256OrInverted :: 'LogicOperation 256OrInverted :: LogicOperation
257Nand :: 'LogicOperation 257Nand :: LogicOperation
258Set :: 'LogicOperation 258Set :: LogicOperation
259'LogicOperationCase :: forall (a :: 'LogicOperation -> Type) -> a Clear -> a And -> a AndReverse -> a Copy -> a AndInverted -> a Noop -> a Xor -> a Or -> a Nor -> a Equiv -> a Invert -> a OrReverse -> a CopyInverted -> a OrInverted -> a Nand -> a Set -> forall (b :: 'LogicOperation) -> a b 259'LogicOperationCase :: forall (a :: LogicOperation -> Type) -> a 'Clear -> a 'And -> a 'AndReverse -> a 'Copy -> a 'AndInverted -> a 'Noop -> a 'Xor -> a 'Or -> a 'Nor -> a 'Equiv -> a 'Invert -> a 'OrReverse -> a 'CopyInverted -> a 'OrInverted -> a 'Nand -> a 'Set -> forall (b :: LogicOperation) -> a b
260match'LogicOperation :: forall (a :: Type -> Type) -> a 'LogicOperation -> forall b -> a b -> a b 260match'LogicOperation :: forall (a :: Type -> Type) -> a LogicOperation -> forall b -> a b -> a b
261'StencilOperation :: Type 261'StencilOperation :: Type
262OpZero :: 'StencilOperation 262OpZero :: StencilOperation
263OpKeep :: 'StencilOperation 263OpKeep :: StencilOperation
264OpReplace :: 'StencilOperation 264OpReplace :: StencilOperation
265OpIncr :: 'StencilOperation 265OpIncr :: StencilOperation
266OpIncrWrap :: 'StencilOperation 266OpIncrWrap :: StencilOperation
267OpDecr :: 'StencilOperation 267OpDecr :: StencilOperation
268OpDecrWrap :: 'StencilOperation 268OpDecrWrap :: StencilOperation
269OpInvert :: 'StencilOperation 269OpInvert :: StencilOperation
270'StencilOperationCase :: forall (a :: 'StencilOperation -> Type) -> a OpZero -> a OpKeep -> a OpReplace -> a OpIncr -> a OpIncrWrap -> a OpDecr -> a OpDecrWrap -> a OpInvert -> forall (b :: 'StencilOperation) -> a b 270'StencilOperationCase :: forall (a :: StencilOperation -> Type) -> a 'OpZero -> a 'OpKeep -> a 'OpReplace -> a 'OpIncr -> a 'OpIncrWrap -> a 'OpDecr -> a 'OpDecrWrap -> a 'OpInvert -> forall (b :: StencilOperation) -> a b
271match'StencilOperation :: forall (a :: Type -> Type) -> a 'StencilOperation -> forall b -> a b -> a b 271match'StencilOperation :: forall (a :: Type -> Type) -> a StencilOperation -> forall b -> a b -> a b
272'ComparisonFunction :: Type 272'ComparisonFunction :: Type
273Never :: 'ComparisonFunction 273Never :: ComparisonFunction
274Less :: 'ComparisonFunction 274Less :: ComparisonFunction
275Equal :: 'ComparisonFunction 275Equal :: ComparisonFunction
276Lequal :: 'ComparisonFunction 276Lequal :: ComparisonFunction
277Greater :: 'ComparisonFunction 277Greater :: ComparisonFunction
278Notequal :: 'ComparisonFunction 278Notequal :: ComparisonFunction
279Gequal :: 'ComparisonFunction 279Gequal :: ComparisonFunction
280Always :: 'ComparisonFunction 280Always :: ComparisonFunction
281'ComparisonFunctionCase :: forall (a :: 'ComparisonFunction -> Type) -> a Never -> a Less -> a Equal -> a Lequal -> a Greater -> a Notequal -> a Gequal -> a Always -> forall (b :: 'ComparisonFunction) -> a b 281'ComparisonFunctionCase :: forall (a :: ComparisonFunction -> Type) -> a 'Never -> a 'Less -> a 'Equal -> a 'Lequal -> a 'Greater -> a 'Notequal -> a 'Gequal -> a 'Always -> forall (b :: ComparisonFunction) -> a b
282match'ComparisonFunction :: forall (a :: Type -> Type) -> a 'ComparisonFunction -> forall b -> a b -> a b 282match'ComparisonFunction :: forall (a :: Type -> Type) -> a ComparisonFunction -> forall b -> a b -> a b
283'ProvokingVertex :: Type 283'ProvokingVertex :: Type
284LastVertex :: 'ProvokingVertex 284LastVertex :: ProvokingVertex
285FirstVertex :: 'ProvokingVertex 285FirstVertex :: ProvokingVertex
286'ProvokingVertexCase :: forall (a :: 'ProvokingVertex -> Type) -> a LastVertex -> a FirstVertex -> forall (b :: 'ProvokingVertex) -> a b 286'ProvokingVertexCase :: forall (a :: ProvokingVertex -> Type) -> a 'LastVertex -> a 'FirstVertex -> forall (b :: ProvokingVertex) -> a b
287match'ProvokingVertex :: forall (a :: Type -> Type) -> a 'ProvokingVertex -> forall b -> a b -> a b 287match'ProvokingVertex :: forall (a :: Type -> Type) -> a ProvokingVertex -> forall b -> a b -> a b
288'CullMode :: Type 288'CullMode :: Type
289CullFront :: 'CullMode 289CullFront :: CullMode
290CullBack :: 'CullMode 290CullBack :: CullMode
291CullNone :: 'CullMode 291CullNone :: CullMode
292'CullModeCase :: forall (a :: 'CullMode -> Type) -> a CullFront -> a CullBack -> a CullNone -> forall (b :: 'CullMode) -> a b 292'CullModeCase :: forall (a :: CullMode -> Type) -> a 'CullFront -> a 'CullBack -> a 'CullNone -> forall (b :: CullMode) -> a b
293match'CullMode :: forall (a :: Type -> Type) -> a 'CullMode -> forall b -> a b -> a b 293match'CullMode :: forall (a :: Type -> Type) -> a CullMode -> forall b -> a b -> a b
294'PointSize :: Type -> Type 294'PointSize :: Type -> Type
295PointSize :: forall a . 'Float -> 'PointSize a 295PointSize :: forall a . Float -> PointSize a
296ProgramPointSize :: forall a . (a -> 'Float) -> 'PointSize a 296ProgramPointSize :: forall a . (a -> Float) -> PointSize a
297'PointSizeCase :: forall a . forall (b :: 'PointSize a -> Type) -> (forall (c :: 'Float) -> b (PointSize c)) -> (forall (d :: a -> 'Float) -> b (ProgramPointSize d)) -> forall (e :: 'PointSize a) -> b e 297'PointSizeCase :: forall a . forall (b :: PointSize a -> Type) -> (forall (c :: Float) -> b ('PointSize c)) -> (forall (d :: a -> Float) -> b ('ProgramPointSize d)) -> forall (e :: PointSize a) -> b e
298match'PointSize :: forall (a :: Type -> Type) -> (forall b -> a ('PointSize b)) -> forall c -> a c -> a c 298match'PointSize :: forall (a :: Type -> Type) -> (forall b -> a (PointSize b)) -> forall c -> a c -> a c
299'PolygonMode :: Type -> Type 299'PolygonMode :: Type -> Type
300PolygonFill :: forall a . 'PolygonMode a 300PolygonFill :: forall a . PolygonMode a
301PolygonPoint :: forall a . 'PointSize a -> 'PolygonMode a 301PolygonPoint :: forall a . PointSize a -> PolygonMode a
302PolygonLine :: forall a . 'Float -> 'PolygonMode a 302PolygonLine :: forall a . Float -> PolygonMode a
303'PolygonModeCase :: forall a . forall (b :: 'PolygonMode a -> Type) -> b PolygonFill -> (forall (c :: 'PointSize a) -> b (PolygonPoint c)) -> (forall (d :: 'Float) -> b (PolygonLine d)) -> forall (e :: 'PolygonMode a) -> b e 303'PolygonModeCase :: forall a . forall (b :: PolygonMode a -> Type) -> b 'PolygonFill -> (forall (c :: PointSize a) -> b ('PolygonPoint c)) -> (forall (d :: Float) -> b ('PolygonLine d)) -> forall (e :: PolygonMode a) -> b e
304match'PolygonMode :: forall (a :: Type -> Type) -> (forall b -> a ('PolygonMode b)) -> forall c -> a c -> a c 304match'PolygonMode :: forall (a :: Type -> Type) -> (forall b -> a (PolygonMode b)) -> forall c -> a c -> a c
305'PolygonOffset :: Type 305'PolygonOffset :: Type
306NoOffset :: 'PolygonOffset 306NoOffset :: PolygonOffset
307Offset :: 'Float -> 'Float -> 'PolygonOffset 307Offset :: Float -> Float -> PolygonOffset
308'PolygonOffsetCase :: forall (a :: 'PolygonOffset -> Type) -> a NoOffset -> (forall (b :: 'Float) (c :: 'Float) -> a (Offset b c)) -> forall (d :: 'PolygonOffset) -> a d 308'PolygonOffsetCase :: forall (a :: PolygonOffset -> Type) -> a 'NoOffset -> (forall (b :: Float) (c :: Float) -> a ('Offset b c)) -> forall (d :: PolygonOffset) -> a d
309match'PolygonOffset :: forall (a :: Type -> Type) -> a 'PolygonOffset -> forall b -> a b -> a b 309match'PolygonOffset :: forall (a :: Type -> Type) -> a PolygonOffset -> forall b -> a b -> a b
310'PointSpriteCoordOrigin :: Type 310'PointSpriteCoordOrigin :: Type
311LowerLeft :: 'PointSpriteCoordOrigin 311LowerLeft :: PointSpriteCoordOrigin
312UpperLeft :: 'PointSpriteCoordOrigin 312UpperLeft :: PointSpriteCoordOrigin
313'PointSpriteCoordOriginCase :: forall (a :: 'PointSpriteCoordOrigin -> Type) -> a LowerLeft -> a UpperLeft -> forall (b :: 'PointSpriteCoordOrigin) -> a b 313'PointSpriteCoordOriginCase :: forall (a :: PointSpriteCoordOrigin -> Type) -> a 'LowerLeft -> a 'UpperLeft -> forall (b :: PointSpriteCoordOrigin) -> a b
314match'PointSpriteCoordOrigin :: forall (a :: Type -> Type) -> a 'PointSpriteCoordOrigin -> forall b -> a b -> a b 314match'PointSpriteCoordOrigin :: forall (a :: Type -> Type) -> a PointSpriteCoordOrigin -> forall b -> a b -> a b
315primTexture :: () -> 'Vec 2 'Float -> 'Vec 4 'Float 315primTexture :: () -> Vec 2 Float -> Vec 4 Float
316Uniform :: forall a . 'String -> a 316Uniform :: forall a . String -> a
317'RasterContext :: Type -> 'PrimitiveType -> Type 317'RasterContext :: Type -> PrimitiveType -> Type
318TriangleCtx :: forall a . 'CullMode -> 'PolygonMode a -> 'PolygonOffset -> 'ProvokingVertex -> 'RasterContext a Triangle 318TriangleCtx :: forall a . CullMode -> PolygonMode a -> PolygonOffset -> ProvokingVertex -> RasterContext a 'Triangle
319PointCtx :: forall a . 'PointSize a -> 'Float -> 'PointSpriteCoordOrigin -> 'RasterContext a Point 319PointCtx :: forall a . PointSize a -> Float -> PointSpriteCoordOrigin -> RasterContext a 'Point
320LineCtx :: forall a . 'Float -> 'ProvokingVertex -> 'RasterContext a Line 320LineCtx :: forall a . Float -> ProvokingVertex -> RasterContext a 'Line
321'RasterContextCase :: forall a . forall (b :: forall (c :: 'PrimitiveType) -> 'RasterContext a c -> Type) -> (forall (d :: 'CullMode) (e :: 'PolygonMode a) (f :: 'PolygonOffset) (g :: 'ProvokingVertex) -> b Triangle (TriangleCtx d e f g)) -> (forall (h :: 'PointSize a) (i :: 'Float) (j :: 'PointSpriteCoordOrigin) -> b Point (PointCtx h i j)) -> (forall (k :: 'Float) (l :: 'ProvokingVertex) -> b Line (LineCtx k l)) -> forall (m :: 'PrimitiveType) . forall (n :: 'RasterContext a m) -> b m n 321'RasterContextCase :: forall a . forall (b :: forall (c :: PrimitiveType) -> RasterContext a c -> Type) -> (forall (d :: CullMode) (e :: PolygonMode a) (f :: PolygonOffset) (g :: ProvokingVertex) -> b 'Triangle ('TriangleCtx d e f g)) -> (forall (h :: PointSize a) (i :: Float) (j :: PointSpriteCoordOrigin) -> b 'Point ('PointCtx h i j)) -> (forall (k :: Float) (l :: ProvokingVertex) -> b 'Line ('LineCtx k l)) -> forall (m :: PrimitiveType) . forall (n :: RasterContext a m) -> b m n
322match'RasterContext :: forall (a :: Type -> Type) -> (forall b (c :: 'PrimitiveType) -> a ('RasterContext b c)) -> forall d -> a d -> a d 322match'RasterContext :: forall (a :: Type -> Type) -> (forall b (c :: PrimitiveType) -> a (RasterContext b c)) -> forall d -> a d -> a d
323'Blending :: Type -> Type 323'Blending :: Type -> Type
324NoBlending :: forall a . 'Blending a 324NoBlending :: forall a . Blending a
325BlendLogicOp :: forall a . 'Integral a => 'LogicOperation -> 'Blending a 325BlendLogicOp :: forall a . Integral a => LogicOperation -> Blending a
326Blend :: ('BlendEquation, 'BlendEquation) -> (('BlendingFactor, 'BlendingFactor), ('BlendingFactor, 'BlendingFactor)) -> 'Vec 4 'Float -> 'Blending 'Float 326Blend :: (BlendEquation, BlendEquation) -> ((BlendingFactor, BlendingFactor), (BlendingFactor, BlendingFactor)) -> Vec 4 Float -> Blending Float
327'BlendingCase :: forall (a :: forall b -> 'Blending b -> Type) -> (forall c . a c (NoBlending c)) -> (forall d (e :: 'Integral d) . forall (f :: 'LogicOperation) -> a d (BlendLogicOp d e f)) -> (forall (g :: ('BlendEquation, 'BlendEquation)) (h :: (('BlendingFactor, 'BlendingFactor), ('BlendingFactor, 'BlendingFactor))) (i :: 'Vec 4 'Float) -> a 'Float (Blend g h i)) -> forall j . forall (k :: 'Blending j) -> a j k 327'BlendingCase :: forall (a :: forall b -> Blending b -> Type) -> (forall c . a c ('NoBlending c)) -> (forall d (e :: Integral d) . forall (f :: LogicOperation) -> a d ('BlendLogicOp d e f)) -> (forall (g :: (BlendEquation, BlendEquation)) (h :: ((BlendingFactor, BlendingFactor), (BlendingFactor, BlendingFactor))) (i :: Vec 4 Float) -> a Float ('Blend g h i)) -> forall j . forall (k :: Blending j) -> a j k
328match'Blending :: forall (a :: Type -> Type) -> (forall b -> a ('Blending b)) -> forall c -> a c -> a c 328match'Blending :: forall (a :: Type -> Type) -> (forall b -> a (Blending b)) -> forall c -> a c -> a c
329'StencilTests :: Type 329'StencilTests :: Type
330'StencilTestsCase :: forall (a :: 'StencilTests -> Type) (b :: 'StencilTests) -> a b 330'StencilTestsCase :: forall (a :: StencilTests -> Type) (b :: StencilTests) -> a b
331match'StencilTests :: forall (a :: Type -> Type) -> a 'StencilTests -> forall b -> a b -> a b 331match'StencilTests :: forall (a :: Type -> Type) -> a StencilTests -> forall b -> a b -> a b
332'StencilOps :: Type 332'StencilOps :: Type
333'StencilOpsCase :: forall (a :: 'StencilOps -> Type) (b :: 'StencilOps) -> a b 333'StencilOpsCase :: forall (a :: StencilOps -> Type) (b :: StencilOps) -> a b
334match'StencilOps :: forall (a :: Type -> Type) -> a 'StencilOps -> forall b -> a b -> a b 334match'StencilOps :: forall (a :: Type -> Type) -> a StencilOps -> forall b -> a b -> a b
335'FragmentOperation :: 'ImageKind -> Type 335'FragmentOperation :: ImageKind -> Type
336ColorOp :: forall a (b :: 'Nat) . 'Num a => 'Blending a -> 'VecScalar b 'Bool -> 'FragmentOperation (Color ('VecScalar b a)) 336ColorOp :: forall a (b :: Nat) . Num a => Blending a -> VecScalar b Bool -> FragmentOperation ('Color (VecScalar b a))
337DepthOp :: 'ComparisonFunction -> 'Bool -> 'FragmentOperation Depth 337DepthOp :: ComparisonFunction -> Bool -> FragmentOperation 'Depth
338StencilOp :: 'StencilTests -> 'StencilOps -> 'StencilOps -> 'FragmentOperation Stencil 338StencilOp :: StencilTests -> StencilOps -> StencilOps -> FragmentOperation 'Stencil
339'FragmentOperationCase :: forall (a :: forall (b :: 'ImageKind) -> 'FragmentOperation b -> Type) -> (forall c (d :: 'Nat) (e :: 'Num c) . forall (f :: 'Blending c) (g :: 'VecScalar d 'Bool) -> a (Color ('VecScalar d c)) (ColorOp c d e f g)) -> (forall (h :: 'ComparisonFunction) (i :: 'Bool) -> a Depth (DepthOp h i)) -> (forall (j :: 'StencilTests) (k :: 'StencilOps) (l :: 'StencilOps) -> a Stencil (StencilOp j k l)) -> forall (m :: 'ImageKind) . forall (n :: 'FragmentOperation m) -> a m n 339'FragmentOperationCase :: forall (a :: forall (b :: ImageKind) -> FragmentOperation b -> Type) -> (forall c (d :: Nat) (e :: Num c) . forall (f :: Blending c) (g :: VecScalar d Bool) -> a ('Color (VecScalar d c)) ('ColorOp c d e f g)) -> (forall (h :: ComparisonFunction) (i :: Bool) -> a 'Depth ('DepthOp h i)) -> (forall (j :: StencilTests) (k :: StencilOps) (l :: StencilOps) -> a 'Stencil ('StencilOp j k l)) -> forall (m :: ImageKind) . forall (n :: FragmentOperation m) -> a m n
340match'FragmentOperation :: forall (a :: Type -> Type) -> (forall (b :: 'ImageKind) -> a ('FragmentOperation b)) -> forall c -> a c -> a c 340match'FragmentOperation :: forall (a :: Type -> Type) -> (forall (b :: ImageKind) -> a (FragmentOperation b)) -> forall c -> a c -> a c
341'Interpolated :: Type -> Type 341'Interpolated :: Type -> Type
342Smooth :: forall a . 'Floating a => 'Interpolated a 342Smooth :: forall a . Floating a => Interpolated a
343NoPerspective :: forall a . 'Floating a => 'Interpolated a 343NoPerspective :: forall a . Floating a => Interpolated a
344Flat :: forall a . 'Interpolated a 344Flat :: forall a . Interpolated a
345'InterpolatedCase :: forall a . forall (b :: 'Interpolated a -> Type) -> (forall (c :: 'Floating a) . b (Smooth c)) -> (forall (d :: 'Floating a) . b (NoPerspective d)) -> b Flat -> forall (e :: 'Interpolated a) -> b e 345'InterpolatedCase :: forall a . forall (b :: Interpolated a -> Type) -> (forall (c :: Floating a) . b ('Smooth c)) -> (forall (d :: Floating a) . b ('NoPerspective d)) -> b 'Flat -> forall (e :: Interpolated a) -> b e
346match'Interpolated :: forall (a :: Type -> Type) -> (forall b -> a ('Interpolated b)) -> forall c -> a c -> a c 346match'Interpolated :: forall (a :: Type -> Type) -> (forall b -> a (Interpolated b)) -> forall c -> a c -> a c
347rasterizePrimitive :: forall (a :: 'List Type) (b :: 'List Type) (c :: 'List Type) (d :: 'PrimitiveType) . (map Type Type 'Interpolated a ~ b, c ~ Cons ('Vec 4 'Float) a) => 'HList b -> 'RasterContext ('HList c) d -> 'Primitive ('HList c) d -> 'FragmentStream 1 ('HList a) 347rasterizePrimitive :: forall (a :: List Type) (b :: List Type) (c :: List Type) (d :: PrimitiveType) . (map Type Type Interpolated a ~ b, c ~ 'Cons (Vec 4 Float) a) => HList b -> RasterContext (HList c) d -> Primitive (HList c) d -> FragmentStream 1 (HList a)
348rasterizePrimitives :: forall (a :: 'List Type) (b :: 'PrimitiveType) . 'RasterContext ('HList (Cons ('Vec 4 'Float) a)) b -> 'HList (map Type Type 'Interpolated a) -> 'List ('Primitive ('HList (Cons ('Vec 4 'Float) a)) b) -> 'List ('Vector 1 ('Maybe ('SimpleFragment ('HList a)))) 348rasterizePrimitives :: forall (a :: List Type) (b :: PrimitiveType) . RasterContext (HList ('Cons (Vec 4 Float) a)) b -> HList (map Type Type Interpolated a) -> List (Primitive (HList ('Cons (Vec 4 Float) a)) b) -> List (Vector 1 (Maybe (SimpleFragment (HList a))))
349'ImageLC :: Type -> 'Nat 349'ImageLC :: Type -> Nat
350allSame :: forall a . 'List a -> Type 350allSame :: forall a . List a -> Type
351sameLayerCounts :: 'List Type -> Type 351sameLayerCounts :: List Type -> Type
352'FrameBuffer :: 'Nat -> 'List 'ImageKind -> Type 352'FrameBuffer :: Nat -> List ImageKind -> Type
353'FrameBufferCase :: forall (a :: 'Nat) (b :: 'List 'ImageKind) . forall (c :: 'FrameBuffer a b -> Type) (d :: 'FrameBuffer a b) -> c d 353'FrameBufferCase :: forall (a :: Nat) (b :: List ImageKind) . forall (c :: FrameBuffer a b -> Type) (d :: FrameBuffer a b) -> c d
354match'FrameBuffer :: forall (a :: Type -> Type) -> (forall (b :: 'Nat) (c :: 'List 'ImageKind) -> a ('FrameBuffer b c)) -> forall d -> a d -> a d 354match'FrameBuffer :: forall (a :: Type -> Type) -> (forall (b :: Nat) (c :: List ImageKind) -> a (FrameBuffer b c)) -> forall d -> a d -> a d
355imageType' :: 'List 'ImageKind -> 'List Type 355imageType' :: List ImageKind -> List Type
356'FragmentOperationKind :: Type -> 'ImageKind 356'FragmentOperationKind :: Type -> ImageKind
357Accumulate :: forall (a :: 'List 'ImageKind) (b :: 'Nat) (c :: 'List Type) . (a ~ map Type 'ImageKind 'FragmentOperationKind c) => 'HList c -> 'FragmentStream b ('HList (imageType' a)) -> 'FrameBuffer b a -> 'FrameBuffer b a 357Accumulate :: forall (a :: List ImageKind) (b :: Nat) (c :: List Type) . (a ~ map Type ImageKind FragmentOperationKind c) => HList c -> FragmentStream b (HList (imageType' a)) -> FrameBuffer b a -> FrameBuffer b a
358accumulateWith :: forall a b . a -> b -> (a, b) 358accumulateWith :: forall a b . a -> b -> (a, b)
359overlay :: forall (a :: 'Nat) (b :: 'List Type) . 'FrameBuffer a (map Type 'ImageKind 'FragmentOperationKind b) -> ('HList b, 'List ('Fragment a ('HList (imageType' (map Type 'ImageKind 'FragmentOperationKind b))))) -> 'FrameBuffer a (map Type 'ImageKind 'FragmentOperationKind b) 359overlay :: forall (a :: Nat) (b :: List Type) . FrameBuffer a (map Type ImageKind FragmentOperationKind b) -> (HList b, List (Fragment a (HList (imageType' (map Type ImageKind FragmentOperationKind b))))) -> FrameBuffer a (map Type ImageKind FragmentOperationKind b)
360'GetImageKind :: Type -> 'ImageKind 360'GetImageKind :: Type -> ImageKind
361FrameBuffer :: forall (a :: 'List Type) . sameLayerCounts a => 'HList a -> 'FrameBuffer ('ImageLC (head Type a)) (map Type 'ImageKind 'GetImageKind a) 361FrameBuffer :: forall (a :: List Type) . sameLayerCounts a => HList a -> FrameBuffer (ImageLC (head Type a)) (map Type ImageKind GetImageKind a)
362imageFrame :: forall (a :: 'List Type) . sameLayerCounts a => 'HList a -> 'FrameBuffer ('ImageLC (head Type a)) (map Type 'ImageKind 'GetImageKind a) 362imageFrame :: forall (a :: List Type) . sameLayerCounts a => HList a -> FrameBuffer (ImageLC (head Type a)) (map Type ImageKind GetImageKind a)
363accumulate :: forall (a :: 'Nat) (b :: 'List Type) c . 'HList b -> (c -> 'HList (imageType' (map Type 'ImageKind 'FragmentOperationKind b))) -> 'List ('Vector a ('Maybe ('SimpleFragment c))) -> 'FrameBuffer a (map Type 'ImageKind 'FragmentOperationKind b) -> 'FrameBuffer a (map Type 'ImageKind 'FragmentOperationKind b) 363accumulate :: forall (a :: Nat) (b :: List Type) c . HList b -> (c -> HList (imageType' (map Type ImageKind FragmentOperationKind b))) -> List (Vector a (Maybe (SimpleFragment c))) -> FrameBuffer a (map Type ImageKind FragmentOperationKind b) -> FrameBuffer a (map Type ImageKind FragmentOperationKind b)
364PrjImage :: forall (a :: 'ImageKind) . 'FrameBuffer 1 (Cons a Nil) -> 'Image 1 a 364PrjImage :: forall (a :: ImageKind) . FrameBuffer 1 ('Cons a 'Nil) -> Image 1 a
365PrjImageColor :: 'FrameBuffer 1 (Cons Depth (Cons (Color ('Vec 4 'Float)) Nil)) -> 'Image 1 (Color ('Vec 4 'Float)) 365PrjImageColor :: FrameBuffer 1 ('Cons 'Depth ('Cons ('Color (Vec 4 Float)) 'Nil)) -> Image 1 ('Color (Vec 4 Float))
366'Output :: Type 366'Output :: Type
367ScreenOut :: forall (a :: 'Nat) (b :: 'List 'ImageKind) . 'FrameBuffer a b -> 'Output 367ScreenOut :: forall (a :: Nat) (b :: List ImageKind) . FrameBuffer a b -> Output
368'OutputCase :: forall (a :: 'Output -> Type) -> (forall (b :: 'Nat) (c :: 'List 'ImageKind) . forall (d :: 'FrameBuffer b c) -> a (ScreenOut b c d)) -> forall (e :: 'Output) -> a e 368'OutputCase :: forall (a :: Output -> Type) -> (forall (b :: Nat) (c :: List ImageKind) . forall (d :: FrameBuffer b c) -> a ('ScreenOut b c d)) -> forall (e :: Output) -> a e
369match'Output :: forall (a :: Type -> Type) -> a 'Output -> forall b -> a b -> a b 369match'Output :: forall (a :: Type -> Type) -> a Output -> forall b -> a b -> a b
370renderFrame :: forall (a :: 'Nat) (b :: 'List 'ImageKind) . 'FrameBuffer a b -> 'Output 370renderFrame :: forall (a :: Nat) (b :: List ImageKind) . FrameBuffer a b -> Output
371'Texture :: Type 371'Texture :: Type
372Texture2DSlot :: 'String -> 'Texture 372Texture2DSlot :: String -> Texture
373Texture2D :: 'Vec 2 'Int -> 'Image 1 (Color ('Vec 4 'Float)) -> 'Texture 373Texture2D :: Vec 2 Int -> Image 1 ('Color (Vec 4 Float)) -> Texture
374'TextureCase :: forall (a :: 'Texture -> Type) -> (forall (b :: 'String) -> a (Texture2DSlot b)) -> (forall (c :: 'Vec 2 'Int) (d :: 'Image 1 (Color ('Vec 4 'Float))) -> a (Texture2D c d)) -> forall (e :: 'Texture) -> a e 374'TextureCase :: forall (a :: Texture -> Type) -> (forall (b :: String) -> a ('Texture2DSlot b)) -> (forall (c :: Vec 2 Int) (d :: Image 1 ('Color (Vec 4 Float))) -> a ('Texture2D c d)) -> forall (e :: Texture) -> a e
375match'Texture :: forall (a :: Type -> Type) -> a 'Texture -> forall b -> a b -> a b 375match'Texture :: forall (a :: Type -> Type) -> a Texture -> forall b -> a b -> a b
376'Filter :: Type 376'Filter :: Type
377PointFilter :: 'Filter 377PointFilter :: Filter
378LinearFilter :: 'Filter 378LinearFilter :: Filter
379'FilterCase :: forall (a :: 'Filter -> Type) -> a PointFilter -> a LinearFilter -> forall (b :: 'Filter) -> a b 379'FilterCase :: forall (a :: Filter -> Type) -> a 'PointFilter -> a 'LinearFilter -> forall (b :: Filter) -> a b
380match'Filter :: forall (a :: Type -> Type) -> a 'Filter -> forall b -> a b -> a b 380match'Filter :: forall (a :: Type -> Type) -> a Filter -> forall b -> a b -> a b
381'EdgeMode :: Type 381'EdgeMode :: Type
382Repeat :: 'EdgeMode 382Repeat :: EdgeMode
383MirroredRepeat :: 'EdgeMode 383MirroredRepeat :: EdgeMode
384ClampToEdge :: 'EdgeMode 384ClampToEdge :: EdgeMode
385'EdgeModeCase :: forall (a :: 'EdgeMode -> Type) -> a Repeat -> a MirroredRepeat -> a ClampToEdge -> forall (b :: 'EdgeMode) -> a b 385'EdgeModeCase :: forall (a :: EdgeMode -> Type) -> a 'Repeat -> a 'MirroredRepeat -> a 'ClampToEdge -> forall (b :: EdgeMode) -> a b
386match'EdgeMode :: forall (a :: Type -> Type) -> a 'EdgeMode -> forall b -> a b -> a b 386match'EdgeMode :: forall (a :: Type -> Type) -> a EdgeMode -> forall b -> a b -> a b
387'Sampler :: Type 387'Sampler :: Type
388Sampler :: 'Filter -> 'EdgeMode -> 'Texture -> 'Sampler 388Sampler :: Filter -> EdgeMode -> Texture -> Sampler
389'SamplerCase :: forall (a :: 'Sampler -> Type) -> (forall (b :: 'Filter) (c :: 'EdgeMode) (d :: 'Texture) -> a (Sampler b c d)) -> forall (e :: 'Sampler) -> a e 389'SamplerCase :: forall (a :: Sampler -> Type) -> (forall (b :: Filter) (c :: EdgeMode) (d :: Texture) -> a ('Sampler b c d)) -> forall (e :: Sampler) -> a e
390match'Sampler :: forall (a :: Type -> Type) -> a 'Sampler -> forall b -> a b -> a b 390match'Sampler :: forall (a :: Type -> Type) -> a Sampler -> forall b -> a b -> a b
391texture2D :: 'Sampler -> 'Vec 2 'Float -> 'Vec 4 'Float 391texture2D :: Sampler -> Vec 2 Float -> Vec 4 Float
392accumulationContext :: forall a . a -> a 392accumulationContext :: forall a . a -> a
393------------ tooltips 393------------ tooltips
394testdata/Builtins.lc 10:1-10:3 forall a . a -> a 394testdata/Builtins.lc 10:1-10:3 forall a . a -> a
@@ -2028,7 +2028,7 @@ testdata/Builtins.lc 253:24-253:38 Primitive _g _a -> Primitive _f _a
2028testdata/Builtins.lc 253:37-253:38 _i -> _h 2028testdata/Builtins.lc 253:37-253:38 _i -> _h
2029testdata/Builtins.lc 255:30-255:38 Type -> Type 2029testdata/Builtins.lc 255:30-255:38 Type -> Type
2030testdata/Builtins.lc 255:45-255:46 Type | Type -> Type 2030testdata/Builtins.lc 255:45-255:46 Type | Type -> Type
2031testdata/Builtins.lc 260:1-260:12 forall (a :: PrimitiveType) (b :: List Type) (c :: List Type) . (b ~ 'map Type Type ListElem c) => HList c -> PrimitiveStream a (HList b) 2031testdata/Builtins.lc 260:1-260:12 forall (a :: PrimitiveType) (b :: List Type) (c :: List Type) . (b ~ map Type Type ListElem c) => HList c -> PrimitiveStream a (HList b)
2032testdata/Builtins.lc 260:32-260:119 Type 2032testdata/Builtins.lc 260:32-260:119 Type
2033testdata/Builtins.lc 260:56-260:57 _e 2033testdata/Builtins.lc 260:56-260:57 _e
2034testdata/Builtins.lc 260:56-260:59 _d -> Type 2034testdata/Builtins.lc 260:56-260:59 _d -> Type
@@ -2068,7 +2068,7 @@ testdata/Builtins.lc 264:1-264:10 forall a . String -> a
2068testdata/Builtins.lc 264:14-264:20 Type 2068testdata/Builtins.lc 264:14-264:20 Type
2069testdata/Builtins.lc 264:14-264:25 Type 2069testdata/Builtins.lc 264:14-264:25 Type
2070testdata/Builtins.lc 264:24-264:25 Type | _c 2070testdata/Builtins.lc 264:24-264:25 Type | _c
2071testdata/Builtins.lc 266:1-266:12 forall (a :: PrimitiveType) (b :: List Type) . String -> forall (c :: List String) -> ('len String c ~ 'len Type b) => PrimitiveStream a (HList b) 2071testdata/Builtins.lc 266:1-266:12 forall (a :: PrimitiveType) (b :: List Type) . String -> forall (c :: List String) -> (len String c ~ len Type b) => PrimitiveStream a (HList b)
2072testdata/Builtins.lc 266:31-266:37 Type 2072testdata/Builtins.lc 266:31-266:37 Type
2073testdata/Builtins.lc 266:31-266:123 Type 2073testdata/Builtins.lc 266:31-266:123 Type
2074testdata/Builtins.lc 266:32-266:36 Type 2074testdata/Builtins.lc 266:32-266:36 Type
@@ -2655,7 +2655,7 @@ testdata/Builtins.lc 478:3-478:7 Interpolated _d | forall a . Interpolated a
2655testdata/Builtins.lc 478:42-478:54 Type -> Type 2655testdata/Builtins.lc 478:42-478:54 Type -> Type
2656testdata/Builtins.lc 478:42-478:56 Type 2656testdata/Builtins.lc 478:42-478:56 Type
2657testdata/Builtins.lc 478:55-478:56 Type 2657testdata/Builtins.lc 478:55-478:56 Type
2658testdata/Builtins.lc 480:1-480:19 forall (a :: List Type) (b :: List Type) (c :: List Type) (d :: PrimitiveType) . ('map Type Type Interpolated a ~ b, c ~ 'Cons (Vec 4 Float) a) => HList b -> RasterContext (HList c) d -> Primitive (HList c) d -> FragmentStream 1 (HList a) 2658testdata/Builtins.lc 480:1-480:19 forall (a :: List Type) (b :: List Type) (c :: List Type) (d :: PrimitiveType) . (map Type Type Interpolated a ~ b, c ~ 'Cons (Vec 4 Float) a) => HList b -> RasterContext (HList c) d -> Primitive (HList c) d -> FragmentStream 1 (HList a)
2659testdata/Builtins.lc 481:8-486:34 Type 2659testdata/Builtins.lc 481:8-486:34 Type
2660testdata/Builtins.lc 481:10-481:13 forall a b . (a -> b) -> List a -> List b 2660testdata/Builtins.lc 481:10-481:13 forall a b . (a -> b) -> List a -> List b
2661testdata/Builtins.lc 481:10-481:26 List Type -> List Type 2661testdata/Builtins.lc 481:10-481:26 List Type -> List Type
@@ -2707,13 +2707,13 @@ testdata/Builtins.lc 486:23-486:24 _b
2707testdata/Builtins.lc 486:26-486:31 List Type -> Type 2707testdata/Builtins.lc 486:26-486:31 List Type -> Type
2708testdata/Builtins.lc 486:26-486:33 Type 2708testdata/Builtins.lc 486:26-486:33 Type
2709testdata/Builtins.lc 486:32-486:33 List Type 2709testdata/Builtins.lc 486:32-486:33 List Type
2710testdata/Builtins.lc 488:1-488:20 forall (a :: List Type) (b :: PrimitiveType) . RasterContext (HList ('Cons (Vec 4 Float) a)) b -> HList ('map Type Type Interpolated a) -> List (Primitive (HList ('Cons (Vec 4 Float) a)) b) -> List (Vector 1 (Maybe (SimpleFragment (HList a)))) 2710testdata/Builtins.lc 488:1-488:20 forall (a :: List Type) (b :: PrimitiveType) . RasterContext (HList ('Cons (Vec 4 Float) a)) b -> HList (map Type Type Interpolated a) -> List (Primitive (HList ('Cons (Vec 4 Float) a)) b) -> List (Vector 1 (Maybe (SimpleFragment (HList a))))
2711testdata/Builtins.lc 488:32-488:38 forall a . List (List a) -> List a 2711testdata/Builtins.lc 488:32-488:38 forall a . List (List a) -> List a
2712testdata/Builtins.lc 488:32-488:74 List (Vector 1 (Maybe (SimpleFragment (HList _b)))) 2712testdata/Builtins.lc 488:32-488:74 List (Vector 1 (Maybe (SimpleFragment (HList _b))))
2713testdata/Builtins.lc 488:40-488:43 forall a b . (a -> b) -> List a -> List b 2713testdata/Builtins.lc 488:40-488:43 forall a b . (a -> b) -> List a -> List b
2714testdata/Builtins.lc 488:40-488:71 List (Primitive (HList ('Cons (Vec 4 Float) _b)) _a) -> List (List (Fragment 1 (HList _b))) 2714testdata/Builtins.lc 488:40-488:71 List (Primitive (HList ('Cons (Vec 4 Float) _b)) _a) -> List (List (Fragment 1 (HList _b)))
2715testdata/Builtins.lc 488:40-488:73 List (List (Fragment 1 (HList _b))) 2715testdata/Builtins.lc 488:40-488:73 List (List (Fragment 1 (HList _b)))
2716testdata/Builtins.lc 488:45-488:63 forall (a :: List Type) (b :: List Type) (c :: List Type) (d :: PrimitiveType) . ('map Type Type Interpolated a ~ b, c ~ 'Cons (Vec 4 Float) a) => HList b -> RasterContext (HList c) d -> Primitive (HList c) d -> FragmentStream 1 (HList a) 2716testdata/Builtins.lc 488:45-488:63 forall (a :: List Type) (b :: List Type) (c :: List Type) (d :: PrimitiveType) . (map Type Type Interpolated a ~ b, c ~ 'Cons (Vec 4 Float) a) => HList b -> RasterContext (HList c) d -> Primitive (HList c) d -> FragmentStream 1 (HList a)
2717testdata/Builtins.lc 488:45-488:66 RasterContext (HList ('Cons (Vec 4 Float) _b)) _a -> Primitive (HList ('Cons (Vec 4 Float) _b)) _a -> FragmentStream 1 (HList _b) 2717testdata/Builtins.lc 488:45-488:66 RasterContext (HList ('Cons (Vec 4 Float) _b)) _a -> Primitive (HList ('Cons (Vec 4 Float) _b)) _a -> FragmentStream 1 (HList _b)
2718testdata/Builtins.lc 488:45-488:70 Primitive (HList ('Cons (Vec 4 Float) _b)) _a -> FragmentStream 1 (HList _b) 2718testdata/Builtins.lc 488:45-488:70 Primitive (HList ('Cons (Vec 4 Float) _b)) _a -> FragmentStream 1 (HList _b)
2719testdata/Builtins.lc 488:64-488:66 _i 2719testdata/Builtins.lc 488:64-488:66 _i
@@ -2779,7 +2779,7 @@ testdata/Builtins.lc 513:30-513:31 List ImageKind
2779testdata/Builtins.lc 515:40-515:49 Type 2779testdata/Builtins.lc 515:40-515:49 Type
2780testdata/Builtins.lc 515:56-515:77 Type -> ImageKind 2780testdata/Builtins.lc 515:56-515:77 Type -> ImageKind
2781testdata/Builtins.lc 515:102-515:103 ImageKind | ImageKind -> ImageKind | Type -> ImageKind 2781testdata/Builtins.lc 515:102-515:103 ImageKind | ImageKind -> ImageKind | Type -> ImageKind
2782testdata/Builtins.lc 517:1-517:11 forall (a :: List ImageKind) (b :: Nat) (c :: List Type) . (a ~ 'map Type ImageKind FragmentOperationKind c) => HList c -> FragmentStream b (HList ('imageType' a)) -> FrameBuffer b a -> FrameBuffer b a 2782testdata/Builtins.lc 517:1-517:11 forall (a :: List ImageKind) (b :: Nat) (c :: List Type) . (a ~ map Type ImageKind FragmentOperationKind c) => HList c -> FragmentStream b (HList (imageType' a)) -> FrameBuffer b a -> FrameBuffer b a
2783testdata/Builtins.lc 517:15-517:174 Type 2783testdata/Builtins.lc 517:15-517:174 Type
2784testdata/Builtins.lc 517:28-517:31 Type 2784testdata/Builtins.lc 517:28-517:31 Type
2785testdata/Builtins.lc 517:39-517:45 Type 2785testdata/Builtins.lc 517:39-517:45 Type
@@ -2824,18 +2824,18 @@ testdata/Builtins.lc 519:1-519:15 forall a b . a -> b -> (a, b)
2824testdata/Builtins.lc 519:24-519:32 (_d, _b) 2824testdata/Builtins.lc 519:24-519:32 (_d, _b)
2825testdata/Builtins.lc 519:25-519:28 _f 2825testdata/Builtins.lc 519:25-519:28 _f
2826testdata/Builtins.lc 519:30-519:31 ((_b)) | _e 2826testdata/Builtins.lc 519:30-519:31 ((_b)) | _e
2827testdata/Builtins.lc 520:1-520:8 forall (a :: Nat) (b :: List Type) . FrameBuffer a ('map Type ImageKind FragmentOperationKind b) -> (HList b, List (Fragment a (HList ('imageType' ('map Type ImageKind FragmentOperationKind b))))) -> FrameBuffer a ('map Type ImageKind FragmentOperationKind b) 2827testdata/Builtins.lc 520:1-520:8 forall (a :: Nat) (b :: List Type) . FrameBuffer a (map Type ImageKind FragmentOperationKind b) -> (HList b, List (Fragment a (HList (imageType' (map Type ImageKind FragmentOperationKind b))))) -> FrameBuffer a (map Type ImageKind FragmentOperationKind b)
2828testdata/Builtins.lc 520:25-520:35 forall (a :: List ImageKind) (b :: Nat) (c :: List Type) . (a ~ 'map Type ImageKind FragmentOperationKind c) => HList c -> FragmentStream b (HList ('imageType' a)) -> FrameBuffer b a -> FrameBuffer b a 2828testdata/Builtins.lc 520:25-520:35 forall (a :: List ImageKind) (b :: Nat) (c :: List Type) . (a ~ map Type ImageKind FragmentOperationKind c) => HList c -> FragmentStream b (HList (imageType' a)) -> FrameBuffer b a -> FrameBuffer b a
2829testdata/Builtins.lc 520:25-520:39 FragmentStream _b (HList ('imageType' ('map Type ImageKind FragmentOperationKind _a))) -> FrameBuffer _b ('map Type ImageKind FragmentOperationKind _a) -> FrameBuffer _b ('map Type ImageKind FragmentOperationKind _a) 2829testdata/Builtins.lc 520:25-520:39 FragmentStream _b (HList (imageType' (map Type ImageKind FragmentOperationKind _a))) -> FrameBuffer _b (map Type ImageKind FragmentOperationKind _a) -> FrameBuffer _b (map Type ImageKind FragmentOperationKind _a)
2830testdata/Builtins.lc 520:25-520:43 FrameBuffer _b ('map Type ImageKind FragmentOperationKind _a) -> FrameBuffer _b ('map Type ImageKind FragmentOperationKind _a) 2830testdata/Builtins.lc 520:25-520:43 FrameBuffer _b (map Type ImageKind FragmentOperationKind _a) -> FrameBuffer _b (map Type ImageKind FragmentOperationKind _a)
2831testdata/Builtins.lc 520:25-520:46 FrameBuffer _b ('map Type ImageKind FragmentOperationKind _a) | HList _c -> _b | _c -> HList _b -> _a 2831testdata/Builtins.lc 520:25-520:46 FrameBuffer _b (map Type ImageKind FragmentOperationKind _a) | HList _c -> _b | _c -> HList _b -> _a
2832testdata/Builtins.lc 520:36-520:39 _m 2832testdata/Builtins.lc 520:36-520:39 _m
2833testdata/Builtins.lc 520:40-520:43 _h 2833testdata/Builtins.lc 520:40-520:43 _h
2834testdata/Builtins.lc 520:44-520:46 _n 2834testdata/Builtins.lc 520:44-520:46 _n
2835testdata/Builtins.lc 524:31-524:40 Type 2835testdata/Builtins.lc 524:31-524:40 Type
2836testdata/Builtins.lc 524:47-524:59 Type -> ImageKind 2836testdata/Builtins.lc 524:47-524:59 Type -> ImageKind
2837testdata/Builtins.lc 524:74-524:75 ImageKind | ImageKind -> ImageKind | Nat -> ImageKind -> ImageKind | Type -> ImageKind 2837testdata/Builtins.lc 524:74-524:75 ImageKind | ImageKind -> ImageKind | Nat -> ImageKind -> ImageKind | Type -> ImageKind
2838testdata/Builtins.lc 530:1-530:12 forall (a :: List Type) . 'sameLayerCounts a => HList a -> FrameBuffer (ImageLC ('head Type a)) ('map Type ImageKind GetImageKind a) 2838testdata/Builtins.lc 530:1-530:12 forall (a :: List Type) . sameLayerCounts a => HList a -> FrameBuffer (ImageLC (head Type a)) (map Type ImageKind GetImageKind a)
2839testdata/Builtins.lc 530:30-530:36 Type 2839testdata/Builtins.lc 530:30-530:36 Type
2840testdata/Builtins.lc 530:31-530:35 Type 2840testdata/Builtins.lc 530:31-530:35 Type
2841testdata/Builtins.lc 530:40-530:125 Type 2841testdata/Builtins.lc 530:40-530:125 Type
@@ -2859,17 +2859,17 @@ testdata/Builtins.lc 530:106-530:122 List Type -> List ImageKind
2859testdata/Builtins.lc 530:106-530:124 List ImageKind 2859testdata/Builtins.lc 530:106-530:124 List ImageKind
2860testdata/Builtins.lc 530:110-530:122 Type -> ImageKind 2860testdata/Builtins.lc 530:110-530:122 Type -> ImageKind
2861testdata/Builtins.lc 530:123-530:124 List Type 2861testdata/Builtins.lc 530:123-530:124 List Type
2862testdata/Builtins.lc 532:1-532:11 forall (a :: List Type) . 'sameLayerCounts a => HList a -> FrameBuffer (ImageLC ('head Type a)) ('map Type ImageKind GetImageKind a) 2862testdata/Builtins.lc 532:1-532:11 forall (a :: List Type) . sameLayerCounts a => HList a -> FrameBuffer (ImageLC (head Type a)) (map Type ImageKind GetImageKind a)
2863testdata/Builtins.lc 532:14-532:25 forall (a :: List Type) . 'sameLayerCounts a => HList a -> FrameBuffer (ImageLC ('head Type a)) ('map Type ImageKind GetImageKind a) 2863testdata/Builtins.lc 532:14-532:25 forall (a :: List Type) . sameLayerCounts a => HList a -> FrameBuffer (ImageLC (head Type a)) (map Type ImageKind GetImageKind a)
2864testdata/Builtins.lc 534:1-534:11 forall (a :: Nat) (b :: List Type) c . HList b -> (c -> HList ('imageType' ('map Type ImageKind FragmentOperationKind b))) -> List (Vector a (Maybe (SimpleFragment c))) -> FrameBuffer a ('map Type ImageKind FragmentOperationKind b) -> FrameBuffer a ('map Type ImageKind FragmentOperationKind b) 2864testdata/Builtins.lc 534:1-534:11 forall (a :: Nat) (b :: List Type) c . HList b -> (c -> HList (imageType' (map Type ImageKind FragmentOperationKind b))) -> List (Vector a (Maybe (SimpleFragment c))) -> FrameBuffer a (map Type ImageKind FragmentOperationKind b) -> FrameBuffer a (map Type ImageKind FragmentOperationKind b)
2865testdata/Builtins.lc 534:34-534:44 forall (a :: List ImageKind) (b :: Nat) (c :: List Type) . (a ~ 'map Type ImageKind FragmentOperationKind c) => HList c -> FragmentStream b (HList ('imageType' a)) -> FrameBuffer b a -> FrameBuffer b a 2865testdata/Builtins.lc 534:34-534:44 forall (a :: List ImageKind) (b :: Nat) (c :: List Type) . (a ~ map Type ImageKind FragmentOperationKind c) => HList c -> FragmentStream b (HList (imageType' a)) -> FrameBuffer b a -> FrameBuffer b a
2866testdata/Builtins.lc 534:34-534:48 FragmentStream _b (HList ('imageType' ('map Type ImageKind FragmentOperationKind _a))) -> FrameBuffer _b ('map Type ImageKind FragmentOperationKind _a) -> FrameBuffer _b ('map Type ImageKind FragmentOperationKind _a) 2866testdata/Builtins.lc 534:34-534:48 FragmentStream _b (HList (imageType' (map Type ImageKind FragmentOperationKind _a))) -> FrameBuffer _b (map Type ImageKind FragmentOperationKind _a) -> FrameBuffer _b (map Type ImageKind FragmentOperationKind _a)
2867testdata/Builtins.lc 534:34-534:76 FrameBuffer _c ('map Type ImageKind FragmentOperationKind _b) -> FrameBuffer _c ('map Type ImageKind FragmentOperationKind _b) 2867testdata/Builtins.lc 534:34-534:76 FrameBuffer _c (map Type ImageKind FragmentOperationKind _b) -> FrameBuffer _c (map Type ImageKind FragmentOperationKind _b)
2868testdata/Builtins.lc 534:34-534:79 FrameBuffer _c ('map Type ImageKind FragmentOperationKind _b) 2868testdata/Builtins.lc 534:34-534:79 FrameBuffer _c (map Type ImageKind FragmentOperationKind _b)
2869testdata/Builtins.lc 534:45-534:48 _j 2869testdata/Builtins.lc 534:45-534:48 _j
2870testdata/Builtins.lc 534:50-534:62 forall a b (c :: Nat) . (a -> b) -> List (Vector c (Maybe (SimpleFragment a))) -> List (Vector c (Maybe (SimpleFragment b))) 2870testdata/Builtins.lc 534:50-534:62 forall a b (c :: Nat) . (a -> b) -> List (Vector c (Maybe (SimpleFragment a))) -> List (Vector c (Maybe (SimpleFragment b)))
2871testdata/Builtins.lc 534:50-534:70 List (Vector _a (Maybe (SimpleFragment _c))) -> List (Vector _a (Maybe (SimpleFragment _b))) 2871testdata/Builtins.lc 534:50-534:70 List (Vector _a (Maybe (SimpleFragment _c))) -> List (Vector _a (Maybe (SimpleFragment _b)))
2872testdata/Builtins.lc 534:50-534:75 List (Vector _c (Maybe (SimpleFragment (HList ('imageType' ('map Type ImageKind FragmentOperationKind _b)))))) 2872testdata/Builtins.lc 534:50-534:75 List (Vector _c (Maybe (SimpleFragment (HList (imageType' (map Type ImageKind FragmentOperationKind _b))))))
2873testdata/Builtins.lc 534:63-534:70 _k 2873testdata/Builtins.lc 534:63-534:70 _k
2874testdata/Builtins.lc 534:71-534:75 _g 2874testdata/Builtins.lc 534:71-534:75 _g
2875testdata/Builtins.lc 534:77-534:79 _e 2875testdata/Builtins.lc 534:77-534:79 _e
diff --git a/testdata/Internals.out b/testdata/Internals.out
index 06c09de3..af664ddd 100644
--- a/testdata/Internals.out
+++ b/testdata/Internals.out
@@ -5,86 +5,86 @@ parens :: forall a . a -> a
5undefined :: forall a . a 5undefined :: forall a . a
6primFix :: forall a . (a -> a) -> a 6primFix :: forall a . (a -> a) -> a
7'Unit :: Type 7'Unit :: Type
8TT :: 'Unit 8TT :: Unit
9'UnitCase :: forall (a :: 'Unit -> Type) -> a TT -> forall (b :: 'Unit) -> a b 9'UnitCase :: forall (a :: Unit -> Type) -> a 'TT -> forall (b :: Unit) -> a b
10match'Unit :: forall (a :: Type -> Type) -> a 'Unit -> forall b -> a b -> a b 10match'Unit :: forall (a :: Type -> Type) -> a Unit -> forall b -> a b -> a b
11'String :: Type 11'String :: Type
12'StringCase :: forall (a :: 'String -> Type) (b :: 'String) -> a b 12'StringCase :: forall (a :: String -> Type) (b :: String) -> a b
13match'String :: forall (a :: Type -> Type) -> a 'String -> forall b -> a b -> a b 13match'String :: forall (a :: Type -> Type) -> a String -> forall b -> a b -> a b
14'Empty :: 'String -> Type 14'Empty :: String -> Type
15'EmptyCase :: forall (a :: 'String) . forall (b :: 'Empty a -> Type) (c :: 'Empty a) -> b c 15'EmptyCase :: forall (a :: String) . forall (b :: Empty a -> Type) (c :: Empty a) -> b c
16match'Empty :: forall (a :: Type -> Type) -> (forall (b :: 'String) -> a ('Empty b)) -> forall c -> a c -> a c 16match'Empty :: forall (a :: Type -> Type) -> (forall (b :: String) -> a (Empty b)) -> forall c -> a c -> a c
17unsafeCoerce :: forall a b . a -> b 17unsafeCoerce :: forall a b . a -> b
18'EqCT :: forall a -> a -> a -> Type 18'EqCT :: forall a -> a -> a -> Type
19parEval :: forall a -> a -> a -> a 19parEval :: forall a -> a -> a -> a
20'T2 :: Type -> Type -> Type 20'T2 :: Type -> Type -> Type
21match'Type :: forall (a :: Type -> Type) -> a Type -> forall b -> a b -> a b 21match'Type :: forall (a :: Type -> Type) -> a Type -> forall b -> a b -> a b
22'EqCTt :: forall a . a -> a -> Type 22'EqCTt :: forall a . a -> a -> Type
23t2C :: 'Unit -> 'Unit -> 'Unit 23t2C :: Unit -> Unit -> Unit
24'Int :: Type 24'Int :: Type
25'IntCase :: forall (a :: 'Int -> Type) (b :: 'Int) -> a b 25'IntCase :: forall (a :: Int -> Type) (b :: Int) -> a b
26match'Int :: forall (a :: Type -> Type) -> a 'Int -> forall b -> a b -> a b 26match'Int :: forall (a :: Type -> Type) -> a Int -> forall b -> a b -> a b
27'Word :: Type 27'Word :: Type
28'WordCase :: forall (a :: 'Word -> Type) (b :: 'Word) -> a b 28'WordCase :: forall (a :: Word -> Type) (b :: Word) -> a b
29match'Word :: forall (a :: Type -> Type) -> a 'Word -> forall b -> a b -> a b 29match'Word :: forall (a :: Type -> Type) -> a Word -> forall b -> a b -> a b
30'Float :: Type 30'Float :: Type
31'FloatCase :: forall (a :: 'Float -> Type) (b :: 'Float) -> a b 31'FloatCase :: forall (a :: Float -> Type) (b :: Float) -> a b
32match'Float :: forall (a :: Type -> Type) -> a 'Float -> forall b -> a b -> a b 32match'Float :: forall (a :: Type -> Type) -> a Float -> forall b -> a b -> a b
33'Char :: Type 33'Char :: Type
34'CharCase :: forall (a :: 'Char -> Type) (b :: 'Char) -> a b 34'CharCase :: forall (a :: Char -> Type) (b :: Char) -> a b
35match'Char :: forall (a :: Type -> Type) -> a 'Char -> forall b -> a b -> a b 35match'Char :: forall (a :: Type -> Type) -> a Char -> forall b -> a b -> a b
36'Bool :: Type 36'Bool :: Type
37False :: 'Bool 37False :: Bool
38True :: 'Bool 38True :: Bool
39'BoolCase :: forall (a :: 'Bool -> Type) -> a False -> a True -> forall (b :: 'Bool) -> a b 39'BoolCase :: forall (a :: Bool -> Type) -> a 'False -> a 'True -> forall (b :: Bool) -> a b
40match'Bool :: forall (a :: Type -> Type) -> a 'Bool -> forall b -> a b -> a b 40match'Bool :: forall (a :: Type -> Type) -> a Bool -> forall b -> a b -> a b
41'Ordering :: Type 41'Ordering :: Type
42LT :: 'Ordering 42LT :: Ordering
43EQ :: 'Ordering 43EQ :: Ordering
44GT :: 'Ordering 44GT :: Ordering
45'OrderingCase :: forall (a :: 'Ordering -> Type) -> a LT -> a EQ -> a GT -> forall (b :: 'Ordering) -> a b 45'OrderingCase :: forall (a :: Ordering -> Type) -> a 'LT -> a 'EQ -> a 'GT -> forall (b :: Ordering) -> a b
46match'Ordering :: forall (a :: Type -> Type) -> a 'Ordering -> forall b -> a b -> a b 46match'Ordering :: forall (a :: Type -> Type) -> a Ordering -> forall b -> a b -> a b
47'Nat :: Type 47'Nat :: Type
48Zero :: 'Nat 48Zero :: Nat
49Succ :: 'Nat -> 'Nat 49Succ :: Nat -> Nat
50'NatCase :: forall (a :: 'Nat -> Type) -> a 0 -> (forall (b :: 'Nat) -> a (Succ b)) -> forall (c :: 'Nat) -> a c 50'NatCase :: forall (a :: Nat -> Type) -> a 0 -> (forall (b :: Nat) -> a ('Succ b)) -> forall (c :: Nat) -> a c
51match'Nat :: forall (a :: Type -> Type) -> a 'Nat -> forall b -> a b -> a b 51match'Nat :: forall (a :: Type -> Type) -> a Nat -> forall b -> a b -> a b
52primIntToWord :: 'Int -> 'Word 52primIntToWord :: Int -> Word
53primIntToFloat :: 'Int -> 'Float 53primIntToFloat :: Int -> Float
54primIntToNat :: 'Int -> 'Nat 54primIntToNat :: Int -> Nat
55primCompareInt :: 'Int -> 'Int -> 'Ordering 55primCompareInt :: Int -> Int -> Ordering
56primCompareWord :: 'Word -> 'Word -> 'Ordering 56primCompareWord :: Word -> Word -> Ordering
57primCompareFloat :: 'Float -> 'Float -> 'Ordering 57primCompareFloat :: Float -> Float -> Ordering
58primCompareChar :: 'Char -> 'Char -> 'Ordering 58primCompareChar :: Char -> Char -> Ordering
59primCompareString :: 'String -> 'String -> 'Ordering 59primCompareString :: String -> String -> Ordering
60primNegateInt :: 'Int -> 'Int 60primNegateInt :: Int -> Int
61primNegateWord :: 'Word -> 'Word 61primNegateWord :: Word -> Word
62primNegateFloat :: 'Float -> 'Float 62primNegateFloat :: Float -> Float
63primAddInt :: 'Int -> 'Int -> 'Int 63primAddInt :: Int -> Int -> Int
64primSubInt :: 'Int -> 'Int -> 'Int 64primSubInt :: Int -> Int -> Int
65primModInt :: 'Int -> 'Int -> 'Int 65primModInt :: Int -> Int -> Int
66primSqrtFloat :: 'Float -> 'Float 66primSqrtFloat :: Float -> Float
67primRound :: 'Float -> 'Int 67primRound :: Float -> Int
68primIfThenElse :: forall a . 'Bool -> a -> a -> a 68primIfThenElse :: forall a . Bool -> a -> a -> a
69isEQ :: 'Ordering -> 'Bool 69isEQ :: Ordering -> Bool
70'Num :: Type -> Type 70'Num :: Type -> Type
71fromInt :: forall a . 'Num a => 'Int -> a 71fromInt :: forall a . Num a => Int -> a
72compare :: forall a . 'Num a => a -> a -> 'Ordering 72compare :: forall a . Num a => a -> a -> Ordering
73negate :: forall a . 'Num a => a -> a 73negate :: forall a . Num a => a -> a
74'Eq :: Type -> Type 74'Eq :: Type -> Type
75== :: forall a . 'Eq a => a -> a -> 'Bool 75== :: forall a . Eq a => a -> a -> Bool
76'List :: Type -> Type 76'List :: Type -> Type
77Nil :: forall a . 'List a 77Nil :: forall a . List a
78Cons :: forall a . a -> 'List a -> 'List a 78Cons :: forall a . a -> List a -> List a
79'ListCase :: forall a . forall (b :: 'List a -> Type) -> b Nil -> (forall (c :: a) (d :: 'List a) -> b (Cons c d)) -> forall (e :: 'List a) -> b e 79'ListCase :: forall a . forall (b :: List a -> Type) -> b 'Nil -> (forall (c :: a) (d :: List a) -> b ('Cons c d)) -> forall (e :: List a) -> b e
80match'List :: forall (a :: Type -> Type) -> (forall b -> a ('List b)) -> forall c -> a c -> a c 80match'List :: forall (a :: Type -> Type) -> (forall b -> a (List b)) -> forall c -> a c -> a c
81'HList :: 'List Type -> Type 81'HList :: List Type -> Type
82HNil :: () 82HNil :: ()
83HCons :: forall a (b :: 'List Type) . a -> 'HList b -> 'HList (Cons a b) 83HCons :: forall a (b :: List Type) . a -> HList b -> HList ('Cons a b)
84'HListCase :: forall (a :: forall (b :: 'List Type) -> 'HList b -> Type) -> a Nil () -> (forall c (d :: 'List Type) . forall (e :: c) (f :: 'HList d) -> a (Cons c d) (HCons c d e f)) -> forall (g :: 'List Type) . forall (h :: 'HList g) -> a g h 84'HListCase :: forall (a :: forall (b :: List Type) -> HList b -> Type) -> a 'Nil () -> (forall c (d :: List Type) . forall (e :: c) (f :: HList d) -> a ('Cons c d) ('HCons c d e f)) -> forall (g :: List Type) . forall (h :: HList g) -> a g h
85match'HList :: forall (a :: Type -> Type) -> (forall (b :: 'List Type) -> a ('HList b)) -> forall c -> a c -> a c 85match'HList :: forall (a :: Type -> Type) -> (forall (b :: List Type) -> a (HList b)) -> forall c -> a c -> a c
86hlistNilCase :: forall a -> a -> () -> a 86hlistNilCase :: forall a -> a -> () -> a
87hlistConsCase :: forall a (b :: 'List Type) . forall c -> (a -> 'HList b -> c) -> 'HList (Cons a b) -> c 87hlistConsCase :: forall a (b :: List Type) . forall c -> (a -> HList b -> c) -> HList ('Cons a b) -> c
88------------ tooltips 88------------ tooltips
89testdata/Internals.lc 6:1-6:8 forall a . a -> a 89testdata/Internals.lc 6:1-6:8 forall a . a -> a
90testdata/Internals.lc 6:13-6:14 _b 90testdata/Internals.lc 6:13-6:14 _b
diff --git a/testdata/Material.out b/testdata/Material.out
index c819ce60..28b5cfa3 100644
--- a/testdata/Material.out
+++ b/testdata/Material.out
@@ -1,161 +1,161 @@
1main is not found 1main is not found
2------------ trace 2------------ trace
3identityLight :: 'Float 3identityLight :: Float
4'Entity :: Type 4'Entity :: Type
5Entity :: 'Vec 4 'Float -> 'Vec 4 'Float -> 'Vec 3 'Float -> 'Vec 4 'Float -> 'Entity 5Entity :: Vec 4 Float -> Vec 4 Float -> Vec 3 Float -> Vec 4 Float -> Entity
6'EntityCase :: forall (a :: 'Entity -> Type) -> (forall (b :: 'Vec 4 'Float) (c :: 'Vec 4 'Float) (d :: 'Vec 3 'Float) (e :: 'Vec 4 'Float) -> a (Entity b c d e)) -> forall (f :: 'Entity) -> a f 6'EntityCase :: forall (a :: Entity -> Type) -> (forall (b :: Vec 4 Float) (c :: Vec 4 Float) (d :: Vec 3 Float) (e :: Vec 4 Float) -> a ('Entity b c d e)) -> forall (f :: Entity) -> a f
7match'Entity :: forall (a :: Type -> Type) -> a 'Entity -> forall b -> a b -> a b 7match'Entity :: forall (a :: Type -> Type) -> a Entity -> forall b -> a b -> a b
8eAmbientLight :: 'Entity -> 'VecS 'Float 4 8eAmbientLight :: Entity -> VecS Float 4
9eDirectedLight :: 'Entity -> 'VecS 'Float 4 9eDirectedLight :: Entity -> VecS Float 4
10eLightDir :: 'Entity -> 'VecS 'Float 3 10eLightDir :: Entity -> VecS Float 3
11eShaderRGBA :: 'Entity -> 'VecS 'Float 4 11eShaderRGBA :: Entity -> VecS Float 4
12'WaveType :: Type 12'WaveType :: Type
13WT_Sin :: 'WaveType 13WT_Sin :: WaveType
14WT_Triangle :: 'WaveType 14WT_Triangle :: WaveType
15WT_Square :: 'WaveType 15WT_Square :: WaveType
16WT_Sawtooth :: 'WaveType 16WT_Sawtooth :: WaveType
17WT_InverseSawtooth :: 'WaveType 17WT_InverseSawtooth :: WaveType
18WT_Noise :: 'WaveType 18WT_Noise :: WaveType
19'WaveTypeCase :: forall (a :: 'WaveType -> Type) -> a WT_Sin -> a WT_Triangle -> a WT_Square -> a WT_Sawtooth -> a WT_InverseSawtooth -> a WT_Noise -> forall (b :: 'WaveType) -> a b 19'WaveTypeCase :: forall (a :: WaveType -> Type) -> a 'WT_Sin -> a 'WT_Triangle -> a 'WT_Square -> a 'WT_Sawtooth -> a 'WT_InverseSawtooth -> a 'WT_Noise -> forall (b :: WaveType) -> a b
20match'WaveType :: forall (a :: Type -> Type) -> a 'WaveType -> forall b -> a b -> a b 20match'WaveType :: forall (a :: Type -> Type) -> a WaveType -> forall b -> a b -> a b
21'Wave :: Type 21'Wave :: Type
22Wave :: 'WaveType -> 'Float -> 'Float -> 'Float -> 'Float -> 'Wave 22Wave :: WaveType -> Float -> Float -> Float -> Float -> Wave
23'WaveCase :: forall (a :: 'Wave -> Type) -> (forall (b :: 'WaveType) (c :: 'Float) (d :: 'Float) (e :: 'Float) (f :: 'Float) -> a (Wave b c d e f)) -> forall (g :: 'Wave) -> a g 23'WaveCase :: forall (a :: Wave -> Type) -> (forall (b :: WaveType) (c :: Float) (d :: Float) (e :: Float) (f :: Float) -> a ('Wave b c d e f)) -> forall (g :: Wave) -> a g
24match'Wave :: forall (a :: Type -> Type) -> a 'Wave -> forall b -> a b -> a b 24match'Wave :: forall (a :: Type -> Type) -> a Wave -> forall b -> a b -> a b
25'Deform :: Type 25'Deform :: Type
26D_AutoSprite :: 'Deform 26D_AutoSprite :: Deform
27D_AutoSprite2 :: 'Deform 27D_AutoSprite2 :: Deform
28D_Bulge :: 'Float -> 'Float -> 'Float -> 'Deform 28D_Bulge :: Float -> Float -> Float -> Deform
29D_Move :: 'Vec 3 'Float -> 'Wave -> 'Deform 29D_Move :: Vec 3 Float -> Wave -> Deform
30D_Normal :: 'Float -> 'Float -> 'Deform 30D_Normal :: Float -> Float -> Deform
31D_ProjectionShadow :: 'Deform 31D_ProjectionShadow :: Deform
32D_Text0 :: 'Deform 32D_Text0 :: Deform
33D_Text1 :: 'Deform 33D_Text1 :: Deform
34D_Text2 :: 'Deform 34D_Text2 :: Deform
35D_Text3 :: 'Deform 35D_Text3 :: Deform
36D_Text4 :: 'Deform 36D_Text4 :: Deform
37D_Text5 :: 'Deform 37D_Text5 :: Deform
38D_Text6 :: 'Deform 38D_Text6 :: Deform
39D_Text7 :: 'Deform 39D_Text7 :: Deform
40D_Wave :: 'Float -> 'Wave -> 'Deform 40D_Wave :: Float -> Wave -> Deform
41'DeformCase :: forall (a :: 'Deform -> Type) -> a D_AutoSprite -> a D_AutoSprite2 -> (forall (b :: 'Float) (c :: 'Float) (d :: 'Float) -> a (D_Bulge b c d)) -> (forall (e :: 'Vec 3 'Float) (f :: 'Wave) -> a (D_Move e f)) -> (forall (g :: 'Float) (h :: 'Float) -> a (D_Normal g h)) -> a D_ProjectionShadow -> a D_Text0 -> a D_Text1 -> a D_Text2 -> a D_Text3 -> a D_Text4 -> a D_Text5 -> a D_Text6 -> a D_Text7 -> (forall (i :: 'Float) (j :: 'Wave) -> a (D_Wave i j)) -> forall (k :: 'Deform) -> a k 41'DeformCase :: forall (a :: Deform -> Type) -> a 'D_AutoSprite -> a 'D_AutoSprite2 -> (forall (b :: Float) (c :: Float) (d :: Float) -> a ('D_Bulge b c d)) -> (forall (e :: Vec 3 Float) (f :: Wave) -> a ('D_Move e f)) -> (forall (g :: Float) (h :: Float) -> a ('D_Normal g h)) -> a 'D_ProjectionShadow -> a 'D_Text0 -> a 'D_Text1 -> a 'D_Text2 -> a 'D_Text3 -> a 'D_Text4 -> a 'D_Text5 -> a 'D_Text6 -> a 'D_Text7 -> (forall (i :: Float) (j :: Wave) -> a ('D_Wave i j)) -> forall (k :: Deform) -> a k
42match'Deform :: forall (a :: Type -> Type) -> a 'Deform -> forall b -> a b -> a b 42match'Deform :: forall (a :: Type -> Type) -> a Deform -> forall b -> a b -> a b
43'CullType :: Type 43'CullType :: Type
44CT_FrontSided :: 'CullType 44CT_FrontSided :: CullType
45CT_BackSided :: 'CullType 45CT_BackSided :: CullType
46CT_TwoSided :: 'CullType 46CT_TwoSided :: CullType
47'CullTypeCase :: forall (a :: 'CullType -> Type) -> a CT_FrontSided -> a CT_BackSided -> a CT_TwoSided -> forall (b :: 'CullType) -> a b 47'CullTypeCase :: forall (a :: CullType -> Type) -> a 'CT_FrontSided -> a 'CT_BackSided -> a 'CT_TwoSided -> forall (b :: CullType) -> a b
48match'CullType :: forall (a :: Type -> Type) -> a 'CullType -> forall b -> a b -> a b 48match'CullType :: forall (a :: Type -> Type) -> a CullType -> forall b -> a b -> a b
49'Blending' :: Type 49'Blending' :: Type
50B_DstAlpha :: 'Blending' 50B_DstAlpha :: Blending'
51B_DstColor :: 'Blending' 51B_DstColor :: Blending'
52B_One :: 'Blending' 52B_One :: Blending'
53B_OneMinusDstAlpha :: 'Blending' 53B_OneMinusDstAlpha :: Blending'
54B_OneMinusDstColor :: 'Blending' 54B_OneMinusDstColor :: Blending'
55B_OneMinusSrcAlpha :: 'Blending' 55B_OneMinusSrcAlpha :: Blending'
56B_OneMinusSrcColor :: 'Blending' 56B_OneMinusSrcColor :: Blending'
57B_SrcAlpha :: 'Blending' 57B_SrcAlpha :: Blending'
58B_SrcAlphaSaturate :: 'Blending' 58B_SrcAlphaSaturate :: Blending'
59B_SrcColor :: 'Blending' 59B_SrcColor :: Blending'
60B_Zero :: 'Blending' 60B_Zero :: Blending'
61'Blending'Case :: forall (a :: 'Blending' -> Type) -> a B_DstAlpha -> a B_DstColor -> a B_One -> a B_OneMinusDstAlpha -> a B_OneMinusDstColor -> a B_OneMinusSrcAlpha -> a B_OneMinusSrcColor -> a B_SrcAlpha -> a B_SrcAlphaSaturate -> a B_SrcColor -> a B_Zero -> forall (b :: 'Blending') -> a b 61'Blending'Case :: forall (a :: Blending' -> Type) -> a 'B_DstAlpha -> a 'B_DstColor -> a 'B_One -> a 'B_OneMinusDstAlpha -> a 'B_OneMinusDstColor -> a 'B_OneMinusSrcAlpha -> a 'B_OneMinusSrcColor -> a 'B_SrcAlpha -> a 'B_SrcAlphaSaturate -> a 'B_SrcColor -> a 'B_Zero -> forall (b :: Blending') -> a b
62match'Blending' :: forall (a :: Type -> Type) -> a 'Blending' -> forall b -> a b -> a b 62match'Blending' :: forall (a :: Type -> Type) -> a Blending' -> forall b -> a b -> a b
63'RGBGen :: Type 63'RGBGen :: Type
64RGB_Wave :: 'Wave -> 'RGBGen 64RGB_Wave :: Wave -> RGBGen
65RGB_Const :: 'Float -> 'Float -> 'Float -> 'RGBGen 65RGB_Const :: Float -> Float -> Float -> RGBGen
66RGB_Identity :: 'RGBGen 66RGB_Identity :: RGBGen
67RGB_IdentityLighting :: 'RGBGen 67RGB_IdentityLighting :: RGBGen
68RGB_Entity :: 'RGBGen 68RGB_Entity :: RGBGen
69RGB_OneMinusEntity :: 'RGBGen 69RGB_OneMinusEntity :: RGBGen
70RGB_ExactVertex :: 'RGBGen 70RGB_ExactVertex :: RGBGen
71RGB_Vertex :: 'RGBGen 71RGB_Vertex :: RGBGen
72RGB_LightingDiffuse :: 'RGBGen 72RGB_LightingDiffuse :: RGBGen
73RGB_OneMinusVertex :: 'RGBGen 73RGB_OneMinusVertex :: RGBGen
74RGB_Undefined :: 'RGBGen 74RGB_Undefined :: RGBGen
75'RGBGenCase :: forall (a :: 'RGBGen -> Type) -> (forall (b :: 'Wave) -> a (RGB_Wave b)) -> (forall (c :: 'Float) (d :: 'Float) (e :: 'Float) -> a (RGB_Const c d e)) -> a RGB_Identity -> a RGB_IdentityLighting -> a RGB_Entity -> a RGB_OneMinusEntity -> a RGB_ExactVertex -> a RGB_Vertex -> a RGB_LightingDiffuse -> a RGB_OneMinusVertex -> a RGB_Undefined -> forall (f :: 'RGBGen) -> a f 75'RGBGenCase :: forall (a :: RGBGen -> Type) -> (forall (b :: Wave) -> a ('RGB_Wave b)) -> (forall (c :: Float) (d :: Float) (e :: Float) -> a ('RGB_Const c d e)) -> a 'RGB_Identity -> a 'RGB_IdentityLighting -> a 'RGB_Entity -> a 'RGB_OneMinusEntity -> a 'RGB_ExactVertex -> a 'RGB_Vertex -> a 'RGB_LightingDiffuse -> a 'RGB_OneMinusVertex -> a 'RGB_Undefined -> forall (f :: RGBGen) -> a f
76match'RGBGen :: forall (a :: Type -> Type) -> a 'RGBGen -> forall b -> a b -> a b 76match'RGBGen :: forall (a :: Type -> Type) -> a RGBGen -> forall b -> a b -> a b
77'AlphaGen :: Type 77'AlphaGen :: Type
78A_Wave :: 'Wave -> 'AlphaGen 78A_Wave :: Wave -> AlphaGen
79A_Const :: 'Float -> 'AlphaGen 79A_Const :: Float -> AlphaGen
80A_Portal :: 'AlphaGen 80A_Portal :: AlphaGen
81A_Identity :: 'AlphaGen 81A_Identity :: AlphaGen
82A_Entity :: 'AlphaGen 82A_Entity :: AlphaGen
83A_OneMinusEntity :: 'AlphaGen 83A_OneMinusEntity :: AlphaGen
84A_Vertex :: 'AlphaGen 84A_Vertex :: AlphaGen
85A_LightingSpecular :: 'AlphaGen 85A_LightingSpecular :: AlphaGen
86A_OneMinusVertex :: 'AlphaGen 86A_OneMinusVertex :: AlphaGen
87'AlphaGenCase :: forall (a :: 'AlphaGen -> Type) -> (forall (b :: 'Wave) -> a (A_Wave b)) -> (forall (c :: 'Float) -> a (A_Const c)) -> a A_Portal -> a A_Identity -> a A_Entity -> a A_OneMinusEntity -> a A_Vertex -> a A_LightingSpecular -> a A_OneMinusVertex -> forall (d :: 'AlphaGen) -> a d 87'AlphaGenCase :: forall (a :: AlphaGen -> Type) -> (forall (b :: Wave) -> a ('A_Wave b)) -> (forall (c :: Float) -> a ('A_Const c)) -> a 'A_Portal -> a 'A_Identity -> a 'A_Entity -> a 'A_OneMinusEntity -> a 'A_Vertex -> a 'A_LightingSpecular -> a 'A_OneMinusVertex -> forall (d :: AlphaGen) -> a d
88match'AlphaGen :: forall (a :: Type -> Type) -> a 'AlphaGen -> forall b -> a b -> a b 88match'AlphaGen :: forall (a :: Type -> Type) -> a AlphaGen -> forall b -> a b -> a b
89'TCGen :: Type 89'TCGen :: Type
90TG_Base :: 'TCGen 90TG_Base :: TCGen
91TG_Lightmap :: 'TCGen 91TG_Lightmap :: TCGen
92TG_Environment :: 'TCGen 92TG_Environment :: TCGen
93TG_Vector :: 'Vec 3 'Float -> 'Vec 3 'Float -> 'TCGen 93TG_Vector :: Vec 3 Float -> Vec 3 Float -> TCGen
94TG_Undefined :: 'TCGen 94TG_Undefined :: TCGen
95'TCGenCase :: forall (a :: 'TCGen -> Type) -> a TG_Base -> a TG_Lightmap -> a TG_Environment -> (forall (b :: 'Vec 3 'Float) (c :: 'Vec 3 'Float) -> a (TG_Vector b c)) -> a TG_Undefined -> forall (d :: 'TCGen) -> a d 95'TCGenCase :: forall (a :: TCGen -> Type) -> a 'TG_Base -> a 'TG_Lightmap -> a 'TG_Environment -> (forall (b :: Vec 3 Float) (c :: Vec 3 Float) -> a ('TG_Vector b c)) -> a 'TG_Undefined -> forall (d :: TCGen) -> a d
96match'TCGen :: forall (a :: Type -> Type) -> a 'TCGen -> forall b -> a b -> a b 96match'TCGen :: forall (a :: Type -> Type) -> a TCGen -> forall b -> a b -> a b
97'TCMod :: Type 97'TCMod :: Type
98TM_EntityTranslate :: 'TCMod 98TM_EntityTranslate :: TCMod
99TM_Rotate :: 'Float -> 'TCMod 99TM_Rotate :: Float -> TCMod
100TM_Scroll :: 'Float -> 'Float -> 'TCMod 100TM_Scroll :: Float -> Float -> TCMod
101TM_Scale :: 'Float -> 'Float -> 'TCMod 101TM_Scale :: Float -> Float -> TCMod
102TM_Stretch :: 'Wave -> 'TCMod 102TM_Stretch :: Wave -> TCMod
103TM_Transform :: 'Float -> 'Float -> 'Float -> 'Float -> 'Float -> 'Float -> 'TCMod 103TM_Transform :: Float -> Float -> Float -> Float -> Float -> Float -> TCMod
104TM_Turb :: 'Float -> 'Float -> 'Float -> 'Float -> 'TCMod 104TM_Turb :: Float -> Float -> Float -> Float -> TCMod
105'TCModCase :: forall (a :: 'TCMod -> Type) -> a TM_EntityTranslate -> (forall (b :: 'Float) -> a (TM_Rotate b)) -> (forall (c :: 'Float) (d :: 'Float) -> a (TM_Scroll c d)) -> (forall (e :: 'Float) (f :: 'Float) -> a (TM_Scale e f)) -> (forall (g :: 'Wave) -> a (TM_Stretch g)) -> (forall (h :: 'Float) (i :: 'Float) (j :: 'Float) (k :: 'Float) (l :: 'Float) (m :: 'Float) -> a (TM_Transform h i j k l m)) -> (forall (n :: 'Float) (o :: 'Float) (p :: 'Float) (q :: 'Float) -> a (TM_Turb n o p q)) -> forall (r :: 'TCMod) -> a r 105'TCModCase :: forall (a :: TCMod -> Type) -> a 'TM_EntityTranslate -> (forall (b :: Float) -> a ('TM_Rotate b)) -> (forall (c :: Float) (d :: Float) -> a ('TM_Scroll c d)) -> (forall (e :: Float) (f :: Float) -> a ('TM_Scale e f)) -> (forall (g :: Wave) -> a ('TM_Stretch g)) -> (forall (h :: Float) (i :: Float) (j :: Float) (k :: Float) (l :: Float) (m :: Float) -> a ('TM_Transform h i j k l m)) -> (forall (n :: Float) (o :: Float) (p :: Float) (q :: Float) -> a ('TM_Turb n o p q)) -> forall (r :: TCMod) -> a r
106match'TCMod :: forall (a :: Type -> Type) -> a 'TCMod -> forall b -> a b -> a b 106match'TCMod :: forall (a :: Type -> Type) -> a TCMod -> forall b -> a b -> a b
107'StageTexture :: Type 107'StageTexture :: Type
108ST_Map :: 'String -> 'StageTexture 108ST_Map :: String -> StageTexture
109ST_ClampMap :: 'String -> 'StageTexture 109ST_ClampMap :: String -> StageTexture
110ST_AnimMap :: 'Float -> 'List 'String -> 'StageTexture 110ST_AnimMap :: Float -> List String -> StageTexture
111ST_Lightmap :: 'StageTexture 111ST_Lightmap :: StageTexture
112ST_WhiteImage :: 'StageTexture 112ST_WhiteImage :: StageTexture
113'StageTextureCase :: forall (a :: 'StageTexture -> Type) -> (forall (b :: 'String) -> a (ST_Map b)) -> (forall (c :: 'String) -> a (ST_ClampMap c)) -> (forall (d :: 'Float) (e :: 'List 'String) -> a (ST_AnimMap d e)) -> a ST_Lightmap -> a ST_WhiteImage -> forall (f :: 'StageTexture) -> a f 113'StageTextureCase :: forall (a :: StageTexture -> Type) -> (forall (b :: String) -> a ('ST_Map b)) -> (forall (c :: String) -> a ('ST_ClampMap c)) -> (forall (d :: Float) (e :: List String) -> a ('ST_AnimMap d e)) -> a 'ST_Lightmap -> a 'ST_WhiteImage -> forall (f :: StageTexture) -> a f
114match'StageTexture :: forall (a :: Type -> Type) -> a 'StageTexture -> forall b -> a b -> a b 114match'StageTexture :: forall (a :: Type -> Type) -> a StageTexture -> forall b -> a b -> a b
115'AlphaFunction :: Type 115'AlphaFunction :: Type
116A_Gt0 :: 'AlphaFunction 116A_Gt0 :: AlphaFunction
117A_Lt128 :: 'AlphaFunction 117A_Lt128 :: AlphaFunction
118A_Ge128 :: 'AlphaFunction 118A_Ge128 :: AlphaFunction
119'AlphaFunctionCase :: forall (a :: 'AlphaFunction -> Type) -> a A_Gt0 -> a A_Lt128 -> a A_Ge128 -> forall (b :: 'AlphaFunction) -> a b 119'AlphaFunctionCase :: forall (a :: AlphaFunction -> Type) -> a 'A_Gt0 -> a 'A_Lt128 -> a 'A_Ge128 -> forall (b :: AlphaFunction) -> a b
120match'AlphaFunction :: forall (a :: Type -> Type) -> a 'AlphaFunction -> forall b -> a b -> a b 120match'AlphaFunction :: forall (a :: Type -> Type) -> a AlphaFunction -> forall b -> a b -> a b
121'DepthFunction :: Type 121'DepthFunction :: Type
122D_Equal :: 'DepthFunction 122D_Equal :: DepthFunction
123D_Lequal :: 'DepthFunction 123D_Lequal :: DepthFunction
124'DepthFunctionCase :: forall (a :: 'DepthFunction -> Type) -> a D_Equal -> a D_Lequal -> forall (b :: 'DepthFunction) -> a b 124'DepthFunctionCase :: forall (a :: DepthFunction -> Type) -> a 'D_Equal -> a 'D_Lequal -> forall (b :: DepthFunction) -> a b
125match'DepthFunction :: forall (a :: Type -> Type) -> a 'DepthFunction -> forall b -> a b -> a b 125match'DepthFunction :: forall (a :: Type -> Type) -> a DepthFunction -> forall b -> a b -> a b
126'StageAttrs :: Type 126'StageAttrs :: Type
127StageAttrs :: 'Maybe ('Blending', 'Blending') -> 'RGBGen -> 'AlphaGen -> 'TCGen -> 'List 'TCMod -> 'StageTexture -> 'Bool -> 'DepthFunction -> 'Maybe 'AlphaFunction -> 'Bool -> 'String -> 'StageAttrs 127StageAttrs :: Maybe (Blending', Blending') -> RGBGen -> AlphaGen -> TCGen -> List TCMod -> StageTexture -> Bool -> DepthFunction -> Maybe AlphaFunction -> Bool -> String -> StageAttrs
128'StageAttrsCase :: forall (a :: 'StageAttrs -> Type) -> (forall (b :: 'Maybe ('Blending', 'Blending')) (c :: 'RGBGen) (d :: 'AlphaGen) (e :: 'TCGen) (f :: 'List 'TCMod) (g :: 'StageTexture) (h :: 'Bool) (i :: 'DepthFunction) (j :: 'Maybe 'AlphaFunction) (k :: 'Bool) (l :: 'String) -> a (StageAttrs b c d e f g h i j k l)) -> forall (m :: 'StageAttrs) -> a m 128'StageAttrsCase :: forall (a :: StageAttrs -> Type) -> (forall (b :: Maybe (Blending', Blending')) (c :: RGBGen) (d :: AlphaGen) (e :: TCGen) (f :: List TCMod) (g :: StageTexture) (h :: Bool) (i :: DepthFunction) (j :: Maybe AlphaFunction) (k :: Bool) (l :: String) -> a ('StageAttrs b c d e f g h i j k l)) -> forall (m :: StageAttrs) -> a m
129match'StageAttrs :: forall (a :: Type -> Type) -> a 'StageAttrs -> forall b -> a b -> a b 129match'StageAttrs :: forall (a :: Type -> Type) -> a StageAttrs -> forall b -> a b -> a b
130saBlend :: 'StageAttrs -> 'Maybe ('Blending', 'Blending') 130saBlend :: StageAttrs -> Maybe (Blending', Blending')
131saRGBGen :: 'StageAttrs -> 'RGBGen 131saRGBGen :: StageAttrs -> RGBGen
132saAlphaGen :: 'StageAttrs -> 'AlphaGen 132saAlphaGen :: StageAttrs -> AlphaGen
133saTCGen :: 'StageAttrs -> 'TCGen 133saTCGen :: StageAttrs -> TCGen
134saTCMod :: 'StageAttrs -> 'List 'TCMod 134saTCMod :: StageAttrs -> List TCMod
135saTexture :: 'StageAttrs -> 'StageTexture 135saTexture :: StageAttrs -> StageTexture
136saDepthWrite :: 'StageAttrs -> 'Bool 136saDepthWrite :: StageAttrs -> Bool
137saDepthFunc :: 'StageAttrs -> 'DepthFunction 137saDepthFunc :: StageAttrs -> DepthFunction
138saAlphaFunc :: 'StageAttrs -> 'Maybe 'AlphaFunction 138saAlphaFunc :: StageAttrs -> Maybe AlphaFunction
139saDepthMaskExplicit :: 'StageAttrs -> 'Bool 139saDepthMaskExplicit :: StageAttrs -> Bool
140saTextureUniform :: 'StageAttrs -> 'String 140saTextureUniform :: StageAttrs -> String
141defaultStageAttrs :: 'StageAttrs 141defaultStageAttrs :: StageAttrs
142'CommonAttrs :: Type 142'CommonAttrs :: Type
143CommonAttrs :: () -> () -> 'Bool -> 'Float -> 'Bool -> 'Bool -> 'CullType -> 'List 'Deform -> 'Bool -> 'Bool -> 'List 'StageAttrs -> 'Bool -> 'CommonAttrs 143CommonAttrs :: () -> () -> Bool -> Float -> Bool -> Bool -> CullType -> List Deform -> Bool -> Bool -> List StageAttrs -> Bool -> CommonAttrs
144'CommonAttrsCase :: forall (a :: 'CommonAttrs -> Type) -> (forall (b :: ()) (c :: ()) (d :: 'Bool) (e :: 'Float) (f :: 'Bool) (g :: 'Bool) (h :: 'CullType) (i :: 'List 'Deform) (j :: 'Bool) (k :: 'Bool) (l :: 'List 'StageAttrs) (m :: 'Bool) -> a (CommonAttrs b c d e f g h i j k l m)) -> forall (n :: 'CommonAttrs) -> a n 144'CommonAttrsCase :: forall (a :: CommonAttrs -> Type) -> (forall (b :: ()) (c :: ()) (d :: Bool) (e :: Float) (f :: Bool) (g :: Bool) (h :: CullType) (i :: List Deform) (j :: Bool) (k :: Bool) (l :: List StageAttrs) (m :: Bool) -> a ('CommonAttrs b c d e f g h i j k l m)) -> forall (n :: CommonAttrs) -> a n
145match'CommonAttrs :: forall (a :: Type -> Type) -> a 'CommonAttrs -> forall b -> a b -> a b 145match'CommonAttrs :: forall (a :: Type -> Type) -> a CommonAttrs -> forall b -> a b -> a b
146caSkyParms :: 'CommonAttrs -> () 146caSkyParms :: CommonAttrs -> ()
147caFogParms :: 'CommonAttrs -> () 147caFogParms :: CommonAttrs -> ()
148caPortal :: 'CommonAttrs -> 'Bool 148caPortal :: CommonAttrs -> Bool
149caSort :: 'CommonAttrs -> 'Float 149caSort :: CommonAttrs -> Float
150caEntityMergable :: 'CommonAttrs -> 'Bool 150caEntityMergable :: CommonAttrs -> Bool
151caFogOnly :: 'CommonAttrs -> 'Bool 151caFogOnly :: CommonAttrs -> Bool
152caCull :: 'CommonAttrs -> 'CullType 152caCull :: CommonAttrs -> CullType
153caDeformVertexes :: 'CommonAttrs -> 'List 'Deform 153caDeformVertexes :: CommonAttrs -> List Deform
154caNoMipMaps :: 'CommonAttrs -> 'Bool 154caNoMipMaps :: CommonAttrs -> Bool
155caPolygonOffset :: 'CommonAttrs -> 'Bool 155caPolygonOffset :: CommonAttrs -> Bool
156caStages :: 'CommonAttrs -> 'List 'StageAttrs 156caStages :: CommonAttrs -> List StageAttrs
157caIsSky :: 'CommonAttrs -> 'Bool 157caIsSky :: CommonAttrs -> Bool
158defaultCommonAttrs :: 'CommonAttrs 158defaultCommonAttrs :: CommonAttrs
159------------ tooltips 159------------ tooltips
160testdata/Material.lc 7:18-7:23 Type 160testdata/Material.lc 7:18-7:23 Type
161testdata/Material.lc 8:1-8:14 Float 161testdata/Material.lc 8:1-8:14 Float
diff --git a/testdata/Prelude.out b/testdata/Prelude.out
index 287c9734..dac505a0 100644
--- a/testdata/Prelude.out
+++ b/testdata/Prelude.out
@@ -1,176 +1,176 @@
1main is not found 1main is not found
2------------ trace 2------------ trace
3const :: forall a b . a -> b -> a 3const :: forall a b . a -> b -> a
4otherwise :: 'Bool 4otherwise :: Bool
5& :: forall a b . a -> (a -> b) -> b 5& :: forall a b . a -> (a -> b) -> b
6$ :: forall a b . (a -> b) -> a -> b 6$ :: forall a b . (a -> b) -> a -> b
7. :: forall a b c . (b -> c) -> (a -> b) -> a -> c 7. :: forall a b c . (b -> c) -> (a -> b) -> a -> c
8uncurry :: forall a b c . (a -> c -> b) -> (a, c) -> b 8uncurry :: forall a b c . (a -> c -> b) -> (a, c) -> b
9*** :: forall a b c d . (a -> c) -> (b -> d) -> (a, b) -> (c, d) 9*** :: forall a b c d . (a -> c) -> (b -> d) -> (a, b) -> (c, d)
10pi :: 'Float 10pi :: Float
11zip :: forall a b . 'List a -> 'List b -> 'List (a, b) 11zip :: forall a b . List a -> List b -> List (a, b)
12unzip :: forall a b . 'List (a, b) -> ('List a, 'List b) 12unzip :: forall a b . List (a, b) -> (List a, List b)
13filter :: forall a . (a -> 'Bool) -> 'List a -> 'List a 13filter :: forall a . (a -> Bool) -> List a -> List a
14tail :: forall a . 'List a -> 'List a 14tail :: forall a . List a -> List a
15pairs :: forall a . 'List a -> 'List (a, a) 15pairs :: forall a . List a -> List (a, a)
16foldl' :: forall a b . (a -> b -> a) -> a -> 'List b -> a 16foldl' :: forall a b . (a -> b -> a) -> a -> List b -> a
17foldr1 :: forall a . (a -> a -> a) -> 'List a -> a 17foldr1 :: forall a . (a -> a -> a) -> List a -> a
18split :: forall a . 'List a -> ('List a, 'List a) 18split :: forall a . List a -> (List a, List a)
19mergeBy :: forall a . (a -> a -> 'Ordering) -> 'List a -> 'List a -> 'List a 19mergeBy :: forall a . (a -> a -> Ordering) -> List a -> List a -> List a
20sortBy :: forall a . (a -> a -> 'Ordering) -> 'List a -> 'List a 20sortBy :: forall a . (a -> a -> Ordering) -> List a -> List a
21iterate :: forall a . (a -> a) -> a -> 'List a 21iterate :: forall a . (a -> a) -> a -> List a
22fst :: forall a b . (a, b) -> a 22fst :: forall a b . (a, b) -> a
23snd :: forall a b . (a, b) -> b 23snd :: forall a b . (a, b) -> b
24||| :: 'Bool -> 'Bool -> 'Bool 24||| :: Bool -> Bool -> Bool
25&&& :: 'Bool -> 'Bool -> 'Bool 25&&& :: Bool -> Bool -> Bool
26'RecItem :: Type 26'RecItem :: Type
27RecItem :: 'String -> Type -> 'RecItem 27RecItem :: String -> Type -> RecItem
28'RecItemCase :: forall (a :: 'RecItem -> Type) -> (forall (b :: 'String) c -> a (RecItem b c)) -> forall (d :: 'RecItem) -> a d 28'RecItemCase :: forall (a :: RecItem -> Type) -> (forall (b :: String) c -> a ('RecItem b c)) -> forall (d :: RecItem) -> a d
29match'RecItem :: forall (a :: Type -> Type) -> a 'RecItem -> forall b -> a b -> a b 29match'RecItem :: forall (a :: Type -> Type) -> a RecItem -> forall b -> a b -> a b
30recItemType :: 'RecItem -> Type 30recItemType :: RecItem -> Type
31'RecordC :: 'List 'RecItem -> Type 31'RecordC :: List RecItem -> Type
32RecordCons :: forall (a :: 'List 'RecItem) . 'HList (map 'RecItem Type recItemType a) -> 'RecordC a 32RecordCons :: forall (a :: List RecItem) . HList (map RecItem Type recItemType a) -> RecordC a
33'RecordCCase :: forall (a :: 'List 'RecItem) . forall (b :: 'RecordC a -> Type) -> (forall (c :: 'HList (map 'RecItem Type recItemType a)) -> b (RecordCons c)) -> forall (d :: 'RecordC a) -> b d 33'RecordCCase :: forall (a :: List RecItem) . forall (b :: RecordC a -> Type) -> (forall (c :: HList (map RecItem Type recItemType a)) -> b ('RecordCons c)) -> forall (d :: RecordC a) -> b d
34match'RecordC :: forall (a :: Type -> Type) -> (forall (b :: 'List 'RecItem) -> a ('RecordC b)) -> forall c -> a c -> a c 34match'RecordC :: forall (a :: Type -> Type) -> (forall (b :: List RecItem) -> a (RecordC b)) -> forall c -> a c -> a c
35isKeyC :: 'String -> Type -> 'List 'RecItem -> Type 35isKeyC :: String -> Type -> List RecItem -> Type
36fstTup :: forall a (b :: 'List Type) . 'HList (Cons a b) -> a 36fstTup :: forall a (b :: List Type) . HList ('Cons a b) -> a
37sndTup :: forall a (b :: 'List Type) . 'HList (Cons a b) -> 'HList b 37sndTup :: forall a (b :: List Type) . HList ('Cons a b) -> HList b
38project :: forall a (b :: 'List 'RecItem) . forall (c :: 'String) -> isKeyC c a b => 'RecordC b -> a 38project :: forall a (b :: List RecItem) . forall (c :: String) -> isKeyC c a b => RecordC b -> a
39rgb :: 'Float -> 'Float -> 'Float -> 'VecS 'Float 4 39rgb :: Float -> Float -> Float -> VecS Float 4
40black :: 'VecS 'Float 4 40black :: VecS Float 4
41gray :: 'VecS 'Float 4 41gray :: VecS Float 4
42silver :: 'VecS 'Float 4 42silver :: VecS Float 4
43white :: 'VecS 'Float 4 43white :: VecS Float 4
44maroon :: 'VecS 'Float 4 44maroon :: VecS Float 4
45red :: 'VecS 'Float 4 45red :: VecS Float 4
46olive :: 'VecS 'Float 4 46olive :: VecS Float 4
47yellow :: 'VecS 'Float 4 47yellow :: VecS Float 4
48green :: 'VecS 'Float 4 48green :: VecS Float 4
49lime :: 'VecS 'Float 4 49lime :: VecS Float 4
50teal :: 'VecS 'Float 4 50teal :: VecS Float 4
51aqua :: 'VecS 'Float 4 51aqua :: VecS Float 4
52navy :: 'VecS 'Float 4 52navy :: VecS Float 4
53blue :: 'VecS 'Float 4 53blue :: VecS Float 4
54purple :: 'VecS 'Float 4 54purple :: VecS Float 4
55fuchsia :: 'VecS 'Float 4 55fuchsia :: VecS Float 4
56colorImage1 :: forall (a :: 'Nat) b c . ('Num b, c ~ 'VecScalar a b) => c -> 'Image 1 (Color c) 56colorImage1 :: forall (a :: Nat) b c . (Num b, c ~ VecScalar a b) => c -> Image 1 ('Color c)
57colorImage2 :: forall (a :: 'Nat) b c . ('Num b, c ~ 'VecScalar a b) => c -> 'Image 2 (Color c) 57colorImage2 :: forall (a :: Nat) b c . (Num b, c ~ VecScalar a b) => c -> Image 2 ('Color c)
58depthImage1 :: 'Float -> 'Image 1 Depth 58depthImage1 :: Float -> Image 1 'Depth
59v3FToV4F :: 'Vec 3 'Float -> 'VecS 'Float 4 59v3FToV4F :: Vec 3 Float -> VecS Float 4
60radians :: forall a (b :: 'Nat) . (a ~ 'VecScalar b 'Float) => a -> a 60radians :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a
61degrees :: forall a (b :: 'Nat) . (a ~ 'VecScalar b 'Float) => a -> a 61degrees :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a
62sin :: forall a (b :: 'Nat) . (a ~ 'VecScalar b 'Float) => a -> a 62sin :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a
63cos :: forall a (b :: 'Nat) . (a ~ 'VecScalar b 'Float) => a -> a 63cos :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a
64tan :: forall a (b :: 'Nat) . (a ~ 'VecScalar b 'Float) => a -> a 64tan :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a
65sinh :: forall a (b :: 'Nat) . (a ~ 'VecScalar b 'Float) => a -> a 65sinh :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a
66cosh :: forall a (b :: 'Nat) . (a ~ 'VecScalar b 'Float) => a -> a 66cosh :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a
67tanh :: forall a (b :: 'Nat) . (a ~ 'VecScalar b 'Float) => a -> a 67tanh :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a
68asin :: forall a (b :: 'Nat) . (a ~ 'VecScalar b 'Float) => a -> a 68asin :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a
69asinh :: forall a (b :: 'Nat) . (a ~ 'VecScalar b 'Float) => a -> a 69asinh :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a
70acos :: forall a (b :: 'Nat) . (a ~ 'VecScalar b 'Float) => a -> a 70acos :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a
71acosh :: forall a (b :: 'Nat) . (a ~ 'VecScalar b 'Float) => a -> a 71acosh :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a
72atan :: forall a (b :: 'Nat) . (a ~ 'VecScalar b 'Float) => a -> a 72atan :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a
73atanh :: forall a (b :: 'Nat) . (a ~ 'VecScalar b 'Float) => a -> a 73atanh :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a
74atan2 :: forall a (b :: 'Nat) . (a ~ 'VecScalar b 'Float) => a -> a -> a 74atan2 :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a -> a
75pow :: forall a (b :: 'Nat) . (a ~ 'VecScalar b 'Float) => a -> a -> a 75pow :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a -> a
76exp :: forall a (b :: 'Nat) . (a ~ 'VecScalar b 'Float) => a -> a 76exp :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a
77log :: forall a (b :: 'Nat) . (a ~ 'VecScalar b 'Float) => a -> a 77log :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a
78exp2 :: forall a (b :: 'Nat) . (a ~ 'VecScalar b 'Float) => a -> a 78exp2 :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a
79log2 :: forall a (b :: 'Nat) . (a ~ 'VecScalar b 'Float) => a -> a 79log2 :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a
80sqrt :: forall a (b :: 'Nat) . (a ~ 'VecScalar b 'Float) => a -> a 80sqrt :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a
81inversesqrt :: forall a (b :: 'Nat) . (a ~ 'VecScalar b 'Float) => a -> a 81inversesqrt :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a
82abs :: forall a b (c :: 'Nat) . ('Signed a, b ~ 'VecScalar c a) => b -> b 82abs :: forall a b (c :: Nat) . (Signed a, b ~ VecScalar c a) => b -> b
83sign :: forall a b (c :: 'Nat) . ('Signed a, b ~ 'VecScalar c a) => b -> b 83sign :: forall a b (c :: Nat) . (Signed a, b ~ VecScalar c a) => b -> b
84floor :: forall a (b :: 'Nat) . (a ~ 'VecScalar b 'Float) => a -> a 84floor :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a
85trunc :: forall a (b :: 'Nat) . (a ~ 'VecScalar b 'Float) => a -> a 85trunc :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a
86round :: forall a (b :: 'Nat) . (a ~ 'VecScalar b 'Float) => a -> a 86round :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a
87roundEven :: forall a (b :: 'Nat) . (a ~ 'VecScalar b 'Float) => a -> a 87roundEven :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a
88ceil :: forall a (b :: 'Nat) . (a ~ 'VecScalar b 'Float) => a -> a 88ceil :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a
89fract :: forall a (b :: 'Nat) . (a ~ 'VecScalar b 'Float) => a -> a 89fract :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a
90mod :: forall a b (c :: 'Nat) . ('Num a, b ~ 'VecScalar c a) => b -> b -> b 90mod :: forall a b (c :: Nat) . (Num a, b ~ VecScalar c a) => b -> b -> b
91min :: forall a b (c :: 'Nat) . ('Num a, b ~ 'VecScalar c a) => b -> b -> b 91min :: forall a b (c :: Nat) . (Num a, b ~ VecScalar c a) => b -> b -> b
92max :: forall a b (c :: 'Nat) . ('Num a, b ~ 'VecScalar c a) => b -> b -> b 92max :: forall a b (c :: Nat) . (Num a, b ~ VecScalar c a) => b -> b -> b
93modF :: forall a (b :: 'Nat) . (a ~ 'VecScalar b 'Float) => a -> (a, a) 93modF :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> (a, a)
94clamp :: forall a b (c :: 'Nat) . ('Num a, b ~ 'VecScalar c a) => b -> b -> b -> b 94clamp :: forall a b (c :: Nat) . (Num a, b ~ VecScalar c a) => b -> b -> b -> b
95clampS :: forall a b (c :: 'Nat) . ('Num a, b ~ 'VecScalar c a) => b -> a -> a -> b 95clampS :: forall a b (c :: Nat) . (Num a, b ~ VecScalar c a) => b -> a -> a -> b
96mix :: forall a (b :: 'Nat) . (a ~ 'VecScalar b 'Float) => a -> a -> a -> a 96mix :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a -> a -> a
97mixS :: forall a (b :: 'Nat) . (a ~ 'VecScalar b 'Float) => a -> a -> 'Float -> a 97mixS :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a -> Float -> a
98mixB :: forall a (b :: 'Nat) c . (a ~ 'VecScalar b 'Float, c ~ 'VecScalar b 'Bool) => a -> a -> c -> a 98mixB :: forall a (b :: Nat) c . (a ~ VecScalar b Float, c ~ VecScalar b Bool) => a -> a -> c -> a
99step :: forall a (b :: 'Nat) . (a ~ 'VecS 'Float b) => a -> a -> a 99step :: forall a (b :: Nat) . (a ~ VecS Float b) => a -> a -> a
100stepS :: forall a (b :: 'Nat) . (a ~ 'VecScalar b 'Float) => 'Float -> a -> a 100stepS :: forall a (b :: Nat) . (a ~ VecScalar b Float) => Float -> a -> a
101smoothstep :: forall a (b :: 'Nat) . (a ~ 'VecS 'Float b) => a -> a -> a -> a 101smoothstep :: forall a (b :: Nat) . (a ~ VecS Float b) => a -> a -> a -> a
102smoothstepS :: forall a (b :: 'Nat) . (a ~ 'VecScalar b 'Float) => 'Float -> 'Float -> a -> a 102smoothstepS :: forall a (b :: Nat) . (a ~ VecScalar b Float) => Float -> Float -> a -> a
103isNan :: forall a (b :: 'Nat) c . (a ~ 'VecScalar b 'Float, c ~ 'VecScalar b 'Bool) => a -> c 103isNan :: forall a (b :: Nat) c . (a ~ VecScalar b Float, c ~ VecScalar b Bool) => a -> c
104isInf :: forall a (b :: 'Nat) c . (a ~ 'VecScalar b 'Float, c ~ 'VecScalar b 'Bool) => a -> c 104isInf :: forall a (b :: Nat) c . (a ~ VecScalar b Float, c ~ VecScalar b Bool) => a -> c
105dFdx :: forall a (b :: 'Nat) . (a ~ 'VecScalar b 'Float) => a -> a 105dFdx :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a
106dFdy :: forall a (b :: 'Nat) . (a ~ 'VecScalar b 'Float) => a -> a 106dFdy :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a
107fWidth :: forall a (b :: 'Nat) . (a ~ 'VecScalar b 'Float) => a -> a 107fWidth :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a
108noise1 :: forall (a :: 'Nat) . 'VecScalar a 'Float -> 'Float 108noise1 :: forall (a :: Nat) . VecScalar a Float -> Float
109noise2 :: forall (a :: 'Nat) . 'VecScalar a 'Float -> 'Vec 2 'Float 109noise2 :: forall (a :: Nat) . VecScalar a Float -> Vec 2 Float
110noise3 :: forall (a :: 'Nat) . 'VecScalar a 'Float -> 'Vec 3 'Float 110noise3 :: forall (a :: Nat) . VecScalar a Float -> Vec 3 Float
111noise4 :: forall (a :: 'Nat) . 'VecScalar a 'Float -> 'Vec 4 'Float 111noise4 :: forall (a :: Nat) . VecScalar a Float -> Vec 4 Float
112length :: forall a (b :: 'Nat) . (a ~ 'VecScalar b 'Float) => a -> 'Float 112length :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> Float
113distance :: forall a (b :: 'Nat) . (a ~ 'VecScalar b 'Float) => a -> a -> 'Float 113distance :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a -> Float
114dot :: forall a (b :: 'Nat) . (a ~ 'VecScalar b 'Float) => a -> a -> 'Float 114dot :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a -> Float
115cross :: forall a . (a ~ 'VecS 'Float 3) => a -> a -> a 115cross :: forall a . (a ~ VecS Float 3) => a -> a -> a
116normalize :: forall a (b :: 'Nat) . (a ~ 'VecScalar b 'Float) => a -> a 116normalize :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a
117faceforward :: forall a (b :: 'Nat) . (a ~ 'VecScalar b 'Float) => a -> a -> a -> a 117faceforward :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a -> a -> a
118reflect :: forall a (b :: 'Nat) . (a ~ 'VecScalar b 'Float) => a -> a -> a 118reflect :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a -> a
119refract :: forall a (b :: 'Nat) . (a ~ 'VecScalar b 'Float) => a -> a -> a -> a 119refract :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a -> a -> a
120transpose :: forall (a :: 'Nat) (b :: 'Nat) c . 'Mat a b c -> 'Mat b a c 120transpose :: forall (a :: Nat) (b :: Nat) c . Mat a b c -> Mat b a c
121det :: forall (a :: 'Nat) b . 'Mat a a b -> 'Float 121det :: forall (a :: Nat) b . Mat a a b -> Float
122inv :: forall (a :: 'Nat) b . 'Mat a a b -> 'Mat a a b 122inv :: forall (a :: Nat) b . Mat a a b -> Mat a a b
123outer :: forall (a :: 'Nat) b (c :: 'Nat) . 'Vec a b -> 'Vec c b -> 'Mat c a b 123outer :: forall (a :: Nat) b (c :: Nat) . Vec a b -> Vec c b -> Mat c a b
124bAnd :: forall a b (c :: 'Nat) . ('Integral a, b ~ 'VecScalar c a) => b -> b -> b 124bAnd :: forall a b (c :: Nat) . (Integral a, b ~ VecScalar c a) => b -> b -> b
125bOr :: forall a b (c :: 'Nat) . ('Integral a, b ~ 'VecScalar c a) => b -> b -> b 125bOr :: forall a b (c :: Nat) . (Integral a, b ~ VecScalar c a) => b -> b -> b
126bXor :: forall a b (c :: 'Nat) . ('Integral a, b ~ 'VecScalar c a) => b -> b -> b 126bXor :: forall a b (c :: Nat) . (Integral a, b ~ VecScalar c a) => b -> b -> b
127bNot :: forall a b (c :: 'Nat) . ('Integral a, b ~ 'VecScalar c a) => b -> b 127bNot :: forall a b (c :: Nat) . (Integral a, b ~ VecScalar c a) => b -> b
128bAndS :: forall a b (c :: 'Nat) . ('Integral a, b ~ 'VecScalar c a) => b -> a -> b 128bAndS :: forall a b (c :: Nat) . (Integral a, b ~ VecScalar c a) => b -> a -> b
129bOrS :: forall a b (c :: 'Nat) . ('Integral a, b ~ 'VecScalar c a) => b -> a -> b 129bOrS :: forall a b (c :: Nat) . (Integral a, b ~ VecScalar c a) => b -> a -> b
130bXorS :: forall a b (c :: 'Nat) . ('Integral a, b ~ 'VecScalar c a) => b -> a -> b 130bXorS :: forall a b (c :: Nat) . (Integral a, b ~ VecScalar c a) => b -> a -> b
131shiftL :: forall a b (c :: 'Nat) d . ('Integral a, b ~ 'VecScalar c a, d ~ 'VecScalar c 'Word) => b -> d -> b 131shiftL :: forall a b (c :: Nat) d . (Integral a, b ~ VecScalar c a, d ~ VecScalar c Word) => b -> d -> b
132shiftR :: forall a b (c :: 'Nat) d . ('Integral a, b ~ 'VecScalar c a, d ~ 'VecScalar c 'Word) => b -> d -> b 132shiftR :: forall a b (c :: Nat) d . (Integral a, b ~ VecScalar c a, d ~ VecScalar c Word) => b -> d -> b
133shiftLS :: forall a b (c :: 'Nat) . ('Integral a, b ~ 'VecScalar c a) => b -> 'Word -> b 133shiftLS :: forall a b (c :: Nat) . (Integral a, b ~ VecScalar c a) => b -> Word -> b
134shiftRS :: forall a b (c :: 'Nat) . ('Integral a, b ~ 'VecScalar c a) => b -> 'Word -> b 134shiftRS :: forall a b (c :: Nat) . (Integral a, b ~ VecScalar c a) => b -> Word -> b
135floatBitsToInt :: forall (a :: 'Nat) . 'VecScalar a 'Float -> 'VecScalar a 'Int 135floatBitsToInt :: forall (a :: Nat) . VecScalar a Float -> VecScalar a Int
136floatBitsToWord :: forall (a :: 'Nat) . 'VecScalar a 'Float -> 'VecScalar a 'Word 136floatBitsToWord :: forall (a :: Nat) . VecScalar a Float -> VecScalar a Word
137intBitsToFloat :: forall (a :: 'Nat) . 'VecScalar a 'Int -> 'VecScalar a 'Float 137intBitsToFloat :: forall (a :: Nat) . VecScalar a Int -> VecScalar a Float
138wordBitsToFloat :: forall (a :: 'Nat) . 'VecScalar a 'Word -> 'VecScalar a 'Float 138wordBitsToFloat :: forall (a :: Nat) . VecScalar a Word -> VecScalar a Float
139+ :: forall a . 'Num ('MatVecScalarElem a) => a -> a -> a 139+ :: forall a . Num (MatVecScalarElem a) => a -> a -> a
140- :: forall a . 'Num ('MatVecScalarElem a) => a -> a -> a 140- :: forall a . Num (MatVecScalarElem a) => a -> a -> a
141* :: forall a . 'Num ('MatVecScalarElem a) => a -> a -> a 141* :: forall a . Num (MatVecScalarElem a) => a -> a -> a
142/ :: forall a (b :: 'Nat) . 'Num a => 'VecScalar b a -> 'VecScalar b a -> 'VecScalar b a 142/ :: forall a (b :: Nat) . Num a => VecScalar b a -> VecScalar b a -> VecScalar b a
143% :: forall a (b :: 'Nat) . 'Num a => 'VecScalar b a -> 'VecScalar b a -> 'VecScalar b a 143% :: forall a (b :: Nat) . Num a => VecScalar b a -> VecScalar b a -> VecScalar b a
144neg :: forall a . 'Signed ('MatVecScalarElem a) => a -> a 144neg :: forall a . Signed (MatVecScalarElem a) => a -> a
145/= :: forall a . a -> a -> 'Bool 145/= :: forall a . a -> a -> Bool
146< :: forall (a :: 'Nat) b . 'Num b => 'VecScalar a b -> 'VecScalar a b -> 'VecScalar a 'Bool 146< :: forall (a :: Nat) b . Num b => VecScalar a b -> VecScalar a b -> VecScalar a Bool
147<= :: forall (a :: 'Nat) b . 'Num b => 'VecScalar a b -> 'VecScalar a b -> 'VecScalar a 'Bool 147<= :: forall (a :: Nat) b . Num b => VecScalar a b -> VecScalar a b -> VecScalar a Bool
148>= :: forall (a :: 'Nat) b . 'Num b => 'VecScalar a b -> 'VecScalar a b -> 'VecScalar a 'Bool 148>= :: forall (a :: Nat) b . Num b => VecScalar a b -> VecScalar a b -> VecScalar a Bool
149> :: forall (a :: 'Nat) b . 'Num b => 'VecScalar a b -> 'VecScalar a b -> 'VecScalar a 'Bool 149> :: forall (a :: Nat) b . Num b => VecScalar a b -> VecScalar a b -> VecScalar a Bool
150&& :: 'Bool -> 'Bool -> 'Bool 150&& :: Bool -> Bool -> Bool
151|| :: 'Bool -> 'Bool -> 'Bool 151|| :: Bool -> Bool -> Bool
152xor :: 'Bool -> 'Bool -> 'Bool 152xor :: Bool -> Bool -> Bool
153not :: forall (a :: 'Nat) . 'VecScalar a 'Bool -> 'VecScalar a 'Bool 153not :: forall (a :: Nat) . VecScalar a Bool -> VecScalar a Bool
154any :: forall (a :: 'Nat) . 'VecScalar a 'Bool -> 'Bool 154any :: forall (a :: Nat) . VecScalar a Bool -> Bool
155all :: forall (a :: 'Nat) . 'VecScalar a 'Bool -> 'Bool 155all :: forall (a :: Nat) . VecScalar a Bool -> Bool
156.*. :: forall (a :: 'Nat) (b :: 'Nat) c (d :: 'Nat) . 'Mat a b c -> 'Mat b d c -> 'Mat a d c 156.*. :: forall (a :: Nat) (b :: Nat) c (d :: Nat) . Mat a b c -> Mat b d c -> Mat a d c
157*. :: forall (a :: 'Nat) (b :: 'Nat) c . 'Mat a b c -> 'VecS c b -> 'Vec a c 157*. :: forall (a :: Nat) (b :: Nat) c . Mat a b c -> VecS c b -> Vec a c
158.* :: forall (a :: 'Nat) b (c :: 'Nat) . 'VecS b a -> 'Mat a c b -> 'Vec c b 158.* :: forall (a :: Nat) b (c :: Nat) . VecS b a -> Mat a c b -> Vec c b
159+! :: forall a . 'Num ('MatVecScalarElem a) => a -> 'MatVecScalarElem a -> a 159+! :: forall a . Num (MatVecScalarElem a) => a -> MatVecScalarElem a -> a
160-! :: forall a . 'Num ('MatVecScalarElem a) => a -> 'MatVecScalarElem a -> a 160-! :: forall a . Num (MatVecScalarElem a) => a -> MatVecScalarElem a -> a
161*! :: forall a . 'Num ('MatVecScalarElem a) => a -> 'MatVecScalarElem a -> a 161*! :: forall a . Num (MatVecScalarElem a) => a -> MatVecScalarElem a -> a
162/! :: forall a (b :: 'Nat) . 'Num a => 'VecScalar b a -> a -> 'VecScalar b a 162/! :: forall a (b :: Nat) . Num a => VecScalar b a -> a -> VecScalar b a
163%! :: forall a (b :: 'Nat) . 'Num a => 'VecScalar b a -> a -> 'VecScalar b a 163%! :: forall a (b :: Nat) . Num a => VecScalar b a -> a -> VecScalar b a
164perspective :: 'Float -> 'Float -> 'Float -> 'Float -> 'Mat 4 4 'Float 164perspective :: Float -> Float -> Float -> Float -> Mat 4 4 Float
165rotMatrixZ :: 'VecScalar 1 'Float -> 'Mat 4 4 'Float 165rotMatrixZ :: VecScalar 1 Float -> Mat 4 4 Float
166rotMatrixY :: 'VecScalar 1 'Float -> 'Mat 4 4 'Float 166rotMatrixY :: VecScalar 1 Float -> Mat 4 4 Float
167rotMatrixX :: 'VecScalar 1 'Float -> 'Mat 4 4 'Float 167rotMatrixX :: VecScalar 1 Float -> Mat 4 4 Float
168rotationEuler :: 'Float -> 'Float -> 'Float -> 'Mat 4 4 'Float 168rotationEuler :: Float -> Float -> Float -> Mat 4 4 Float
169translateBefore4 :: 'Vec 3 'Float -> 'Mat 4 4 'Float 169translateBefore4 :: Vec 3 Float -> Mat 4 4 Float
170lookat :: 'Vec 3 'Float -> 'Vec 3 'Float -> 'Vec 3 'Float -> 'Mat 4 4 'Float 170lookat :: Vec 3 Float -> Vec 3 Float -> Vec 3 Float -> Mat 4 4 Float
171scale :: 'Float -> 'VecS 'Float 4 -> 'VecS 'Float 4 171scale :: Float -> VecS Float 4 -> VecS Float 4
172fromTo :: 'Float -> 'Float -> 'List 'Float 172fromTo :: Float -> Float -> List Float
173!! :: forall a . 'List a -> 'Int -> a 173!! :: forall a . List a -> Int -> a
174------------ tooltips 174------------ tooltips
175testdata/Prelude.lc 16:1-16:6 forall a b . a -> b -> a 175testdata/Prelude.lc 16:1-16:6 forall a b . a -> b -> a
176testdata/Prelude.lc 16:13-16:14 _d 176testdata/Prelude.lc 16:13-16:14 _d
@@ -449,7 +449,7 @@ testdata/Prelude.lc 126:6-127:46 Type
449testdata/Prelude.lc 126:15-126:17 List RecItem 449testdata/Prelude.lc 126:15-126:17 List RecItem
450testdata/Prelude.lc 126:21-126:30 Type 450testdata/Prelude.lc 126:21-126:30 Type
451testdata/Prelude.lc 126:22-126:29 Type 451testdata/Prelude.lc 126:22-126:29 Type
452testdata/Prelude.lc 127:7-127:17 RecordC _c | Type | forall (a :: List RecItem) . HList ('map RecItem Type 'recItemType a) -> RecordC a 452testdata/Prelude.lc 127:7-127:17 RecordC _c | Type | forall (a :: List RecItem) . HList (map RecItem Type recItemType a) -> RecordC a
453testdata/Prelude.lc 127:19-127:24 List Type -> Type 453testdata/Prelude.lc 127:19-127:24 List Type -> Type
454testdata/Prelude.lc 127:19-127:45 Type 454testdata/Prelude.lc 127:19-127:45 Type
455testdata/Prelude.lc 127:26-127:29 forall a b . (a -> b) -> List a -> List b 455testdata/Prelude.lc 127:26-127:29 forall a b . (a -> b) -> List a -> List b
@@ -490,7 +490,7 @@ testdata/Prelude.lc 133:10-133:25 (_c -> HList _b -> _a) -> HList ('Cons _c _b)
490testdata/Prelude.lc 133:10-133:37 HList ('Cons _b _a) -> HList _a 490testdata/Prelude.lc 133:10-133:37 HList ('Cons _b _a) -> HList _a
491testdata/Prelude.lc 133:27-133:36 _c -> HList _b -> _a 491testdata/Prelude.lc 133:27-133:36 _c -> HList _b -> _a
492testdata/Prelude.lc 133:35-133:36 HList _c -> _b | HList _d 492testdata/Prelude.lc 133:35-133:36 HList _c -> _b | HList _d
493testdata/Prelude.lc 136:12-138:181 _a -> _a | forall a (b :: List RecItem) . forall (c :: String) -> 'isKeyC c a b => RecordC b -> a 493testdata/Prelude.lc 136:12-138:181 _a -> _a | forall a (b :: List RecItem) . forall (c :: String) -> isKeyC c a b => RecordC b -> a
494testdata/Prelude.lc 136:28-136:37 Type 494testdata/Prelude.lc 136:28-136:37 Type
495testdata/Prelude.lc 136:28-136:97 Type 495testdata/Prelude.lc 136:28-136:97 Type
496testdata/Prelude.lc 136:29-136:36 Type 496testdata/Prelude.lc 136:29-136:36 Type
@@ -509,11 +509,11 @@ testdata/Prelude.lc 136:82-136:92 Type
509testdata/Prelude.lc 136:82-136:97 Type 509testdata/Prelude.lc 136:82-136:97 Type
510testdata/Prelude.lc 136:90-136:92 List RecItem 510testdata/Prelude.lc 136:90-136:92 List RecItem
511testdata/Prelude.lc 136:96-136:97 Type 511testdata/Prelude.lc 136:96-136:97 Type
512testdata/Prelude.lc 137:1-137:8 forall a (b :: List RecItem) . forall (c :: String) -> 'isKeyC c a b => RecordC b -> a 512testdata/Prelude.lc 137:1-137:8 forall a (b :: List RecItem) . forall (c :: String) -> isKeyC c a b => RecordC b -> a
513testdata/Prelude.lc 137:57-137:58 String 513testdata/Prelude.lc 137:57-137:58 String
514testdata/Prelude.lc 137:57-137:61 String -> Bool 514testdata/Prelude.lc 137:57-137:61 String -> Bool
515testdata/Prelude.lc 137:57-137:64 Bool 515testdata/Prelude.lc 137:57-137:64 Bool
516testdata/Prelude.lc 137:57-138:181 'isKeyC _a _c _b => RecordC _b -> _c | HList ('map RecItem Type 'recItemType _b) -> _a | List _c -> _b | RecordC _c -> _d | String -> Type -> _a | Type -> _b | _b -> List _b -> _a | _e | _g | _j | _m | forall (a :: List RecItem) . forall (b :: String) -> 'isKeyC b _a a => RecordC a -> _a | forall (a :: String) -> 'isKeyC a _b _a => RecordC _a -> _b | forall a (b :: List RecItem) . forall (c :: String) -> 'isKeyC c a b => RecordC b -> a 516testdata/Prelude.lc 137:57-138:181 HList (map RecItem Type recItemType _b) -> _a | List _c -> _b | RecordC _c -> _d | String -> Type -> _a | Type -> _b | _b -> List _b -> _a | _e | _g | _j | _m | forall (a :: List RecItem) . forall (b :: String) -> isKeyC b _a a => RecordC a -> _a | forall (a :: String) -> isKeyC a _b _a => RecordC _a -> _b | forall a (b :: List RecItem) . forall (c :: String) -> isKeyC c a b => RecordC b -> a | isKeyC _a _c _b => RecordC _b -> _c
517testdata/Prelude.lc 137:59-137:61 forall a . Eq a => a -> a -> Bool 517testdata/Prelude.lc 137:59-137:61 forall a . Eq a => a -> a -> Bool
518testdata/Prelude.lc 137:62-137:64 String 518testdata/Prelude.lc 137:62-137:64 String
519testdata/Prelude.lc 137:67-137:73 forall a (b :: List Type) . HList ('Cons a b) -> a 519testdata/Prelude.lc 137:67-137:73 forall a (b :: List Type) . HList ('Cons a b) -> a
@@ -521,8 +521,8 @@ testdata/Prelude.lc 137:67-137:129 _n
521testdata/Prelude.lc 137:67-138:181 Bool -> _n 521testdata/Prelude.lc 137:67-138:181 Bool -> _n
522testdata/Prelude.lc 137:75-137:87 forall a b . a -> b 522testdata/Prelude.lc 137:75-137:87 forall a b . a -> b
523testdata/Prelude.lc 137:75-137:90 forall a . _a -> a 523testdata/Prelude.lc 137:75-137:90 forall a . _a -> a
524testdata/Prelude.lc 137:75-137:125 _a -> HList ('Cons _q ('map RecItem Type 'recItemType _j)) 524testdata/Prelude.lc 137:75-137:125 _a -> HList ('Cons _q (map RecItem Type recItemType _j))
525testdata/Prelude.lc 137:75-137:128 HList ('Cons _n ('map RecItem Type 'recItemType _g)) 525testdata/Prelude.lc 137:75-137:128 HList ('Cons _n (map RecItem Type recItemType _g))
526testdata/Prelude.lc 137:93-137:98 List Type -> Type 526testdata/Prelude.lc 137:93-137:98 List Type -> Type
527testdata/Prelude.lc 137:93-137:124 Type 527testdata/Prelude.lc 137:93-137:124 Type
528testdata/Prelude.lc 137:101-137:102 Type 528testdata/Prelude.lc 137:101-137:102 Type
@@ -534,18 +534,18 @@ testdata/Prelude.lc 137:105-137:120 List RecItem -> List Type
534testdata/Prelude.lc 137:105-137:123 List Type 534testdata/Prelude.lc 137:105-137:123 List Type
535testdata/Prelude.lc 137:109-137:120 RecItem -> Type 535testdata/Prelude.lc 137:109-137:120 RecItem -> Type
536testdata/Prelude.lc 137:121-137:123 List RecItem 536testdata/Prelude.lc 137:121-137:123 List RecItem
537testdata/Prelude.lc 137:126-137:128 HList ('map RecItem Type 'recItemType _d) 537testdata/Prelude.lc 137:126-137:128 HList (map RecItem Type recItemType _d)
538testdata/Prelude.lc 138:57-138:64 forall a (b :: List RecItem) . forall (c :: String) -> 'isKeyC c a b => RecordC b -> a 538testdata/Prelude.lc 138:57-138:64 forall a (b :: List RecItem) . forall (c :: String) -> isKeyC c a b => RecordC b -> a
539testdata/Prelude.lc 138:57-138:67 forall (a :: List RecItem) . forall (b :: String) -> 'isKeyC b _p a => RecordC a -> _p 539testdata/Prelude.lc 138:57-138:67 forall (a :: List RecItem) . forall (b :: String) -> isKeyC b _p a => RecordC a -> _p
540testdata/Prelude.lc 138:57-138:71 forall (a :: String) -> 'isKeyC a _o _h => RecordC _h -> _o 540testdata/Prelude.lc 138:57-138:71 forall (a :: String) -> isKeyC a _o _h => RecordC _h -> _o
541testdata/Prelude.lc 138:57-138:73 'isKeyC _m _o _h => RecordC _h -> _o 541testdata/Prelude.lc 138:57-138:73 isKeyC _m _o _h => RecordC _h -> _o
542testdata/Prelude.lc 138:57-138:103 RecordC _h -> _o 542testdata/Prelude.lc 138:57-138:103 RecordC _h -> _o
543testdata/Prelude.lc 138:57-138:181 _n 543testdata/Prelude.lc 138:57-138:181 _n
544testdata/Prelude.lc 138:66-138:67 Type 544testdata/Prelude.lc 138:66-138:67 Type
545testdata/Prelude.lc 138:69-138:71 List _k 545testdata/Prelude.lc 138:69-138:71 List _k
546testdata/Prelude.lc 138:72-138:73 String 546testdata/Prelude.lc 138:72-138:73 String
547testdata/Prelude.lc 138:76-138:85 forall a . a 547testdata/Prelude.lc 138:76-138:85 forall a . a
548testdata/Prelude.lc 138:76-138:102 'isKeyC _m _o _h 548testdata/Prelude.lc 138:76-138:102 isKeyC _m _o _h
549testdata/Prelude.lc 138:88-138:94 String -> Type -> List RecItem -> Type 549testdata/Prelude.lc 138:88-138:94 String -> Type -> List RecItem -> Type
550testdata/Prelude.lc 138:88-138:96 Type -> List RecItem -> Type 550testdata/Prelude.lc 138:88-138:96 Type -> List RecItem -> Type
551testdata/Prelude.lc 138:88-138:98 List RecItem -> Type 551testdata/Prelude.lc 138:88-138:98 List RecItem -> Type
@@ -553,14 +553,14 @@ testdata/Prelude.lc 138:88-138:101 Type
553testdata/Prelude.lc 138:95-138:96 String 553testdata/Prelude.lc 138:95-138:96 String
554testdata/Prelude.lc 138:97-138:98 Type 554testdata/Prelude.lc 138:97-138:98 Type
555testdata/Prelude.lc 138:99-138:101 List RecItem 555testdata/Prelude.lc 138:99-138:101 List RecItem
556testdata/Prelude.lc 138:105-138:115 forall (a :: List RecItem) . HList ('map RecItem Type 'recItemType a) -> RecordC a 556testdata/Prelude.lc 138:105-138:115 forall (a :: List RecItem) . HList (map RecItem Type recItemType a) -> RecordC a
557testdata/Prelude.lc 138:105-138:180 RecordC _b 557testdata/Prelude.lc 138:105-138:180 RecordC _b
558testdata/Prelude.lc 138:117-138:123 forall a (b :: List Type) . HList ('Cons a b) -> HList b 558testdata/Prelude.lc 138:117-138:123 forall a (b :: List Type) . HList ('Cons a b) -> HList b
559testdata/Prelude.lc 138:117-138:179 HList ('map RecItem Type 'recItemType _h) 559testdata/Prelude.lc 138:117-138:179 HList (map RecItem Type recItemType _h)
560testdata/Prelude.lc 138:125-138:137 forall a b . a -> b 560testdata/Prelude.lc 138:125-138:137 forall a b . a -> b
561testdata/Prelude.lc 138:125-138:140 forall a . _a -> a 561testdata/Prelude.lc 138:125-138:140 forall a . _a -> a
562testdata/Prelude.lc 138:125-138:175 _a -> HList ('Cons _r ('map RecItem Type 'recItemType _k)) 562testdata/Prelude.lc 138:125-138:175 _a -> HList ('Cons _r (map RecItem Type recItemType _k))
563testdata/Prelude.lc 138:125-138:178 HList ('Cons _o ('map RecItem Type 'recItemType _h)) 563testdata/Prelude.lc 138:125-138:178 HList ('Cons _o (map RecItem Type recItemType _h))
564testdata/Prelude.lc 138:143-138:148 List Type -> Type 564testdata/Prelude.lc 138:143-138:148 List Type -> Type
565testdata/Prelude.lc 138:143-138:174 Type 565testdata/Prelude.lc 138:143-138:174 Type
566testdata/Prelude.lc 138:151-138:152 Type 566testdata/Prelude.lc 138:151-138:152 Type
@@ -572,7 +572,7 @@ testdata/Prelude.lc 138:155-138:170 List RecItem -> List Type
572testdata/Prelude.lc 138:155-138:173 List Type 572testdata/Prelude.lc 138:155-138:173 List Type
573testdata/Prelude.lc 138:159-138:170 RecItem -> Type 573testdata/Prelude.lc 138:159-138:170 RecItem -> Type
574testdata/Prelude.lc 138:171-138:173 List RecItem 574testdata/Prelude.lc 138:171-138:173 List RecItem
575testdata/Prelude.lc 138:176-138:178 HList ('map RecItem Type 'recItemType _e) 575testdata/Prelude.lc 138:176-138:178 HList (map RecItem Type recItemType _e)
576testdata/Prelude.lc 142:1-142:4 Float -> Float -> Float -> VecS Float 4 576testdata/Prelude.lc 142:1-142:4 Float -> Float -> Float -> VecS Float 4
577testdata/Prelude.lc 142:13-142:15 forall a . a -> a -> a -> a -> VecS a 4 577testdata/Prelude.lc 142:13-142:15 forall a . a -> a -> a -> a -> VecS a 4
578testdata/Prelude.lc 142:13-142:17 _f -> _f -> _f -> VecS _f 4 578testdata/Prelude.lc 142:13-142:17 _f -> _f -> _f -> VecS _f 4
diff --git a/testdata/SampleMaterial.out b/testdata/SampleMaterial.out
index 04076a28..fd598d79 100644
--- a/testdata/SampleMaterial.out
+++ b/testdata/SampleMaterial.out
@@ -1,6 +1,6 @@
1main is not found 1main is not found
2------------ trace 2------------ trace
3sampleMaterial :: 'List ('String, 'CommonAttrs) 3sampleMaterial :: List (String, CommonAttrs)
4------------ tooltips 4------------ tooltips
5testdata/SampleMaterial.lc 3:1-3:15 List (String, CommonAttrs) 5testdata/SampleMaterial.lc 3:1-3:15 List (String, CommonAttrs)
6testdata/SampleMaterial.lc 4:3-2183:4 List (String, CommonAttrs) 6testdata/SampleMaterial.lc 4:3-2183:4 List (String, CommonAttrs)
diff --git a/testdata/adhoc.reject.out b/testdata/adhoc.reject.out
index 6099ecf1..8e226745 100644
--- a/testdata/adhoc.reject.out
+++ b/testdata/adhoc.reject.out
@@ -4,9 +4,9 @@ x = one :: Vec 4 A
4 ^^^ 4 ^^^
5------------ trace 5------------ trace
6'A :: Type 6'A :: Type
7A :: 'A 7A :: A
8'ACase :: forall (a :: 'A -> Type) -> a A -> forall (b :: 'A) -> a b 8'ACase :: forall (a :: A -> Type) -> a 'A -> forall (b :: A) -> a b
9match'A :: forall (a :: Type -> Type) -> a 'A -> forall b -> a b -> a b 9match'A :: forall (a :: Type -> Type) -> a A -> forall b -> a b -> a b
10!type error: no instance of 'Component on ??? 10!type error: no instance of 'Component on ???
11in testdata/adhoc.reject.lc:4:5: 11in testdata/adhoc.reject.lc:4:5:
12x = one :: Vec 4 A 12x = one :: Vec 4 A
diff --git a/testdata/complex.out b/testdata/complex.out
index 99b0a0fd..2a357e18 100644
--- a/testdata/complex.out
+++ b/testdata/complex.out
@@ -1,27 +1,27 @@
1main is not found 1main is not found
2------------ trace 2------------ trace
3'Repr :: Type 3'Repr :: Type
4Normal :: 'Repr 4Normal :: Repr
5Polar :: 'Repr 5Polar :: Repr
6'ReprCase :: forall (a :: 'Repr -> Type) -> a Normal -> a Polar -> forall (b :: 'Repr) -> a b 6'ReprCase :: forall (a :: Repr -> Type) -> a 'Normal -> a 'Polar -> forall (b :: Repr) -> a b
7match'Repr :: forall (a :: Type -> Type) -> a 'Repr -> forall b -> a b -> a b 7match'Repr :: forall (a :: Type -> Type) -> a Repr -> forall b -> a b -> a b
8'Complex :: 'Repr -> Type 8'Complex :: Repr -> Type
9Complex :: forall (a :: 'Repr) . 'Float -> 'Float -> 'Complex a 9Complex :: forall (a :: Repr) . Float -> Float -> Complex a
10'ComplexCase :: forall (a :: forall (b :: 'Repr) -> 'Complex b -> Type) -> (forall (c :: 'Repr) . forall (d :: 'Float) (e :: 'Float) -> a c (Complex c d e)) -> forall (f :: 'Repr) . forall (g :: 'Complex f) -> a f g 10'ComplexCase :: forall (a :: forall (b :: Repr) -> Complex b -> Type) -> (forall (c :: Repr) . forall (d :: Float) (e :: Float) -> a c ('Complex c d e)) -> forall (f :: Repr) . forall (g :: Complex f) -> a f g
11match'Complex :: forall (a :: Type -> Type) -> (forall (b :: 'Repr) -> a ('Complex b)) -> forall c -> a c -> a c 11match'Complex :: forall (a :: Type -> Type) -> (forall (b :: Repr) -> a (Complex b)) -> forall c -> a c -> a c
12repr :: forall (a :: 'Repr) . 'Complex a -> 'Repr 12repr :: forall (a :: Repr) . Complex a -> Repr
13normal :: 'Float -> 'Float -> 'Complex Normal 13normal :: Float -> Float -> Complex 'Normal
14polar :: 'Float -> 'Float -> 'Complex Polar 14polar :: Float -> Float -> Complex 'Polar
15cabs :: forall (a :: 'Repr) . 'Complex a -> 'Float 15cabs :: forall (a :: Repr) . Complex a -> Float
16toPolar :: 'Complex Normal -> 'Complex Polar 16toPolar :: Complex 'Normal -> Complex 'Polar
17toNormal :: 'Complex Polar -> 'Complex Normal 17toNormal :: Complex 'Polar -> Complex 'Normal
18it_should_fail :: forall (a :: 'Repr) . 'Complex a -> 'Float 18it_should_fail :: forall (a :: Repr) . Complex a -> Float
19add :: forall (a :: 'Repr) (b :: 'Repr) . 'Complex a -> 'Complex b -> 'Complex a 19add :: forall (a :: Repr) (b :: Repr) . Complex a -> Complex b -> Complex a
20mul :: forall (a :: 'Repr) (b :: 'Repr) . 'Complex a -> 'Complex b -> 'Complex a 20mul :: forall (a :: Repr) (b :: Repr) . Complex a -> Complex b -> Complex a
21s :: forall (a :: 'Repr) . 'Complex a -> 'Complex a 21s :: forall (a :: Repr) . Complex a -> Complex a
22s4 :: forall (a :: 'Repr) . 'Complex a -> 'Complex a 22s4 :: forall (a :: Repr) . Complex a -> Complex a
23iter :: forall (a :: 'Repr) . 'Complex a -> 'Complex a 23iter :: forall (a :: Repr) . Complex a -> Complex a
24mandel :: forall (a :: 'Repr) . 'Complex a -> 'VecScalar 1 'Bool 24mandel :: forall (a :: Repr) . Complex a -> VecScalar 1 Bool
25------------ tooltips 25------------ tooltips
26testdata/complex.lc 3:6-3:10 Type 26testdata/complex.lc 3:6-3:10 Type
27testdata/complex.lc 3:6-3:27 Type 27testdata/complex.lc 3:6-3:27 Type
diff --git a/testdata/data.out b/testdata/data.out
index 3a093bbe..bf9da023 100644
--- a/testdata/data.out
+++ b/testdata/data.out
@@ -1,31 +1,31 @@
1main is not found 1main is not found
2------------ trace 2------------ trace
3'Data0 :: Type 3'Data0 :: Type
4Data0 :: 'Data0 4Data0 :: Data0
5'Data0Case :: forall (a :: 'Data0 -> Type) -> a Data0 -> forall (b :: 'Data0) -> a b 5'Data0Case :: forall (a :: Data0 -> Type) -> a 'Data0 -> forall (b :: Data0) -> a b
6match'Data0 :: forall (a :: Type -> Type) -> a 'Data0 -> forall b -> a b -> a b 6match'Data0 :: forall (a :: Type -> Type) -> a Data0 -> forall b -> a b -> a b
7'Data1 :: Type -> Type -> Type -> Type 7'Data1 :: Type -> Type -> Type -> Type
8Data1 :: forall a b c . a -> b -> c -> 'Data1 a b c 8Data1 :: forall a b c . a -> b -> c -> Data1 a b c
9'Data1Case :: forall a b c . forall (d :: 'Data1 a b c -> Type) -> (forall (e :: a) (f :: b) (g :: c) -> d (Data1 e f g)) -> forall (h :: 'Data1 a b c) -> d h 9'Data1Case :: forall a b c . forall (d :: Data1 a b c -> Type) -> (forall (e :: a) (f :: b) (g :: c) -> d ('Data1 e f g)) -> forall (h :: Data1 a b c) -> d h
10match'Data1 :: forall (a :: Type -> Type) -> (forall b c d -> a ('Data1 b c d)) -> forall e -> a e -> a e 10match'Data1 :: forall (a :: Type -> Type) -> (forall b c d -> a (Data1 b c d)) -> forall e -> a e -> a e
11'Data2 :: Type 11'Data2 :: Type
12Data21 :: 'Int -> 'Data2 12Data21 :: Int -> Data2
13Data22 :: 'Int -> 'Int -> 'Data2 13Data22 :: Int -> Int -> Data2
14Data23 :: 'Int -> 'Data2 14Data23 :: Int -> Data2
15Data24 :: 'Data2 15Data24 :: Data2
16'Data2Case :: forall (a :: 'Data2 -> Type) -> (forall (b :: 'Int) -> a (Data21 b)) -> (forall (c :: 'Int) (d :: 'Int) -> a (Data22 c d)) -> (forall (e :: 'Int) -> a (Data23 e)) -> a Data24 -> forall (f :: 'Data2) -> a f 16'Data2Case :: forall (a :: Data2 -> Type) -> (forall (b :: Int) -> a ('Data21 b)) -> (forall (c :: Int) (d :: Int) -> a ('Data22 c d)) -> (forall (e :: Int) -> a ('Data23 e)) -> a 'Data24 -> forall (f :: Data2) -> a f
17match'Data2 :: forall (a :: Type -> Type) -> a 'Data2 -> forall b -> a b -> a b 17match'Data2 :: forall (a :: Type -> Type) -> a Data2 -> forall b -> a b -> a b
18x :: 'Data2 -> 'Int 18x :: Data2 -> Int
19y :: 'Data2 -> 'Int 19y :: Data2 -> Int
20'Data5 :: Type -> Type -> Type -> Type 20'Data5 :: Type -> Type -> Type -> Type
21Data51 :: forall a b c . a -> 'Data5 a b c 21Data51 :: forall a b c . a -> Data5 a b c
22Data52 :: forall a b c . a -> b -> c -> 'Data5 a b c 22Data52 :: forall a b c . a -> b -> c -> Data5 a b c
23Data53 :: forall a b c . 'Int -> a -> 'Float -> b -> c -> 'Data5 a b c 23Data53 :: forall a b c . Int -> a -> Float -> b -> c -> Data5 a b c
24'Data5Case :: forall a b c . forall (d :: 'Data5 a b c -> Type) -> (forall (e :: a) -> d (Data51 e)) -> (forall (f :: a) (g :: b) (h :: c) -> d (Data52 f g h)) -> (forall (i :: 'Int) (j :: a) (k :: 'Float) (l :: b) (m :: c) -> d (Data53 i j k l m)) -> forall (n :: 'Data5 a b c) -> d n 24'Data5Case :: forall a b c . forall (d :: Data5 a b c -> Type) -> (forall (e :: a) -> d ('Data51 e)) -> (forall (f :: a) (g :: b) (h :: c) -> d ('Data52 f g h)) -> (forall (i :: Int) (j :: a) (k :: Float) (l :: b) (m :: c) -> d ('Data53 i j k l m)) -> forall (n :: Data5 a b c) -> d n
25match'Data5 :: forall (a :: Type -> Type) -> (forall b c d -> a ('Data5 b c d)) -> forall e -> a e -> a e 25match'Data5 :: forall (a :: Type -> Type) -> (forall b c d -> a (Data5 b c d)) -> forall e -> a e -> a e
26a5 :: forall a b c . 'Data5 a b c -> a 26a5 :: forall a b c . Data5 a b c -> a
27b5 :: forall a b c . 'Data5 a b c -> b 27b5 :: forall a b c . Data5 a b c -> b
28c5 :: forall a b c . 'Data5 a b c -> c 28c5 :: forall a b c . Data5 a b c -> c
29------------ tooltips 29------------ tooltips
30testdata/data.lc 1:6-1:11 Type 30testdata/data.lc 1:6-1:11 Type
31testdata/data.lc 1:6-1:19 Type 31testdata/data.lc 1:6-1:19 Type
diff --git a/testdata/empty.out b/testdata/empty.out
index d7443922..a5a55263 100644
--- a/testdata/empty.out
+++ b/testdata/empty.out
@@ -1,7 +1,7 @@
1main is not found 1main is not found
2------------ trace 2------------ trace
3'Empty :: Type 3'Empty :: Type
4'EmptyCase :: forall (a :: 'Empty -> Type) (b :: 'Empty) -> a b 4'EmptyCase :: forall (a :: Empty -> Type) (b :: Empty) -> a b
5match'Empty :: forall (a :: Type -> Type) -> a 'Empty -> forall b -> a b -> a b 5match'Empty :: forall (a :: Type -> Type) -> a Empty -> forall b -> a b -> a b
6------------ tooltips 6------------ tooltips
7testdata/empty.lc 3:6-3:11 Type 7testdata/empty.lc 3:6-3:11 Type
diff --git a/testdata/framebuffer02.reject.out b/testdata/framebuffer02.reject.out
index f9650704..5740a835 100644
--- a/testdata/framebuffer02.reject.out
+++ b/testdata/framebuffer02.reject.out
@@ -20,8 +20,8 @@ in testdata/framebuffer02.reject.lc:2:17:
20 ,colorImage1 1.0 20 ,colorImage1 1.0
21 ) 21 )
22------------ tooltips 22------------ tooltips
23testdata/framebuffer02.reject.lc 2:17-2:28 forall (a :: List Type) . 'sameLayerCounts a => HList a -> FrameBuffer (ImageLC ('head Type a)) ('map Type ImageKind GetImageKind a) 23testdata/framebuffer02.reject.lc 2:17-2:28 forall (a :: List Type) . sameLayerCounts a => HList a -> FrameBuffer (ImageLC (head Type a)) (map Type ImageKind GetImageKind a)
24testdata/framebuffer02.reject.lc 2:17-5:30 FrameBuffer 1 ('map Type ImageKind GetImageKind ('Cons (Image 1 ('Color (VecScalar 4 Float))) ('Cons (Image 2 ('Color (VecScalar 4 Float))) ('Cons (Image 1 ('Color (VecScalar 1 Float))) 'Nil)))) 24testdata/framebuffer02.reject.lc 2:17-5:30 FrameBuffer 1 (map Type ImageKind GetImageKind ('Cons (Image 1 ('Color (VecScalar 4 Float))) ('Cons (Image 2 ('Color (VecScalar 4 Float))) ('Cons (Image 1 ('Color (VecScalar 1 Float))) 'Nil))))
25testdata/framebuffer02.reject.lc 2:29-5:30 (Image 1 ('Color (VecScalar 4 Float)), Image 2 ('Color (VecScalar 4 Float)), Image 1 ('Color (VecScalar 1 Float))) 25testdata/framebuffer02.reject.lc 2:29-5:30 (Image 1 ('Color (VecScalar 4 Float)), Image 2 ('Color (VecScalar 4 Float)), Image 1 ('Color (VecScalar 1 Float)))
26testdata/framebuffer02.reject.lc 2:30-2:41 forall (a :: Nat) b c . (Num b, c ~ VecScalar a b) => c -> Image 1 ('Color c) 26testdata/framebuffer02.reject.lc 2:30-2:41 forall (a :: Nat) b c . (Num b, c ~ VecScalar a b) => c -> Image 1 ('Color c)
27testdata/framebuffer02.reject.lc 2:30-2:62 Image 1 ('Color (VecScalar 4 Float)) 27testdata/framebuffer02.reject.lc 2:30-2:62 Image 1 ('Color (VecScalar 4 Float))
diff --git a/testdata/id.out b/testdata/id.out
index 611e06a6..5e63f9d1 100644
--- a/testdata/id.out
+++ b/testdata/id.out
@@ -1,6 +1,6 @@
1main is not found 1main is not found
2------------ trace 2------------ trace
3main' :: ('Float, 'Bool) 3main' :: (Float, Bool)
4------------ tooltips 4------------ tooltips
5testdata/id.lc 1:1-1:6 (Float, Bool) 5testdata/id.lc 1:1-1:6 (Float, Bool)
6testdata/id.lc 3:19-3:20 _b 6testdata/id.lc 3:19-3:20 _b
diff --git a/testdata/instantiate.out b/testdata/instantiate.out
index bfe23a03..4c233f52 100644
--- a/testdata/instantiate.out
+++ b/testdata/instantiate.out
@@ -1,6 +1,6 @@
1main is not found 1main is not found
2------------ trace 2------------ trace
3main' :: 'VecS 'Float 2 3main' :: VecS Float 2
4------------ tooltips 4------------ tooltips
5testdata/instantiate.lc 1:1-1:6 VecS Float 2 5testdata/instantiate.lc 1:1-1:6 VecS Float 2
6testdata/instantiate.lc 2:13-2:20 forall a . Num (MatVecScalarElem a) => a -> a -> a 6testdata/instantiate.lc 2:13-2:20 forall a . Num (MatVecScalarElem a) => a -> a -> a
diff --git a/testdata/language-features/adt/adt02.reject.out b/testdata/language-features/adt/adt02.reject.out
index 6be18ea8..29f62600 100644
--- a/testdata/language-features/adt/adt02.reject.out
+++ b/testdata/language-features/adt/adt02.reject.out
@@ -6,10 +6,10 @@ with
6in proj 6in proj
7------------ trace 7------------ trace
8'Data3 :: Type 8'Data3 :: Type
9Data3 :: 'Bool -> 'Char -> 'Bool -> 'Data3 9Data3 :: Bool -> Char -> Bool -> Data3
10Data31 :: 'Int -> 'String -> 'Int -> 'Data3 10Data31 :: Int -> String -> Int -> Data3
11'Data3Case :: forall (a :: 'Data3 -> Type) -> (forall (b :: 'Bool) (c :: 'Char) (d :: 'Bool) -> a (Data3 b c d)) -> (forall (e :: 'Int) (f :: 'String) (g :: 'Int) -> a (Data31 e f g)) -> forall (h :: 'Data3) -> a h 11'Data3Case :: forall (a :: Data3 -> Type) -> (forall (b :: Bool) (c :: Char) (d :: Bool) -> a ('Data3 b c d)) -> (forall (e :: Int) (f :: String) (g :: Int) -> a ('Data31 e f g)) -> forall (h :: Data3) -> a h
12match'Data3 :: forall (a :: Type -> Type) -> a 'Data3 -> forall b -> a b -> a b 12match'Data3 :: forall (a :: Type -> Type) -> a Data3 -> forall b -> a b -> a b
13!type error: can not unify 13!type error: can not unify
14'Bool 14'Bool
15with 15with
diff --git a/testdata/language-features/adt/gadt01.reject.out b/testdata/language-features/adt/gadt01.reject.out
index 5d7c98fd..48732b7d 100644
--- a/testdata/language-features/adt/gadt01.reject.out
+++ b/testdata/language-features/adt/gadt01.reject.out
@@ -1,6 +1,6 @@
1illegal data definition (parameters are not uniform) 1illegal data definition (parameters are not uniform)
2------------ trace 2------------ trace
3'M3 :: Type -> 'String -> Type 3'M3 :: Type -> String -> Type
4!illegal data definition (parameters are not uniform) 4!illegal data definition (parameters are not uniform)
5------------ tooltips 5------------ tooltips
6testdata/language-features/adt/gadt01.reject.lc 5:6-5:8 Type -> String -> Type 6testdata/language-features/adt/gadt01.reject.lc 5:6-5:8 Type -> String -> Type
diff --git a/testdata/language-features/adt/gadt03.reject.out b/testdata/language-features/adt/gadt03.reject.out
index 8aad9b35..39016938 100644
--- a/testdata/language-features/adt/gadt03.reject.out
+++ b/testdata/language-features/adt/gadt03.reject.out
@@ -1,10 +1,10 @@
1illegal data definition (parameters are not uniform) 1illegal data definition (parameters are not uniform)
2------------ trace 2------------ trace
3'M2 :: Type -> 'String -> Type 3'M2 :: Type -> String -> Type
4Value2 :: forall a . a -> forall (b :: 'String) . 'M2 a b 4Value2 :: forall a . a -> forall (b :: String) . M2 a b
5'M2Case :: forall a . forall (b :: forall (c :: 'String) -> 'M2 a c -> Type) -> (forall (d :: a) -> forall (e :: 'String) . b e (Value2 d e)) -> forall (f :: 'String) . forall (g :: 'M2 a f) -> b f g 5'M2Case :: forall a . forall (b :: forall (c :: String) -> M2 a c -> Type) -> (forall (d :: a) -> forall (e :: String) . b e ('Value2 d e)) -> forall (f :: String) . forall (g :: M2 a f) -> b f g
6match'M2 :: forall (a :: Type -> Type) -> (forall b (c :: 'String) -> a ('M2 b c)) -> forall d -> a d -> a d 6match'M2 :: forall (a :: Type -> Type) -> (forall b (c :: String) -> a (M2 b c)) -> forall d -> a d -> a d
7'M3 :: Type -> 'String -> Type 7'M3 :: Type -> String -> Type
8!illegal data definition (parameters are not uniform) 8!illegal data definition (parameters are not uniform)
9------------ tooltips 9------------ tooltips
10testdata/language-features/adt/gadt03.reject.lc 2:6-2:8 Type | Type -> String -> Type 10testdata/language-features/adt/gadt03.reject.lc 2:6-2:8 Type | Type -> String -> Type
diff --git a/testdata/language-features/adt/gadt04.reject.out b/testdata/language-features/adt/gadt04.reject.out
index 4efb2a15..70903666 100644
--- a/testdata/language-features/adt/gadt04.reject.out
+++ b/testdata/language-features/adt/gadt04.reject.out
@@ -5,12 +5,12 @@ and at testdata/language-features/adt/gadt04.reject.lc:3:3:
5 Value :: a -> forall m . M a m 5 Value :: a -> forall m . M a m
6 ^^^^^ 6 ^^^^^
7------------ trace 7------------ trace
8'M :: Type -> 'String -> Type 8'M :: Type -> String -> Type
9Value :: forall a . a -> forall (b :: 'String) . 'M a b 9Value :: forall a . a -> forall (b :: String) . M a b
10'MCase :: forall (a :: forall b (c :: 'String) -> 'M b c -> Type) -> (forall d . forall (e :: d) -> forall (f :: 'String) . a d f (Value d e f)) -> forall g (h :: 'String) . forall (i :: 'M g h) -> a g h i 10'MCase :: forall (a :: forall b (c :: String) -> M b c -> Type) -> (forall d . forall (e :: d) -> forall (f :: String) . a d f ('Value d e f)) -> forall g (h :: String) . forall (i :: M g h) -> a g h i
11match'M :: forall (a :: Type -> Type) -> (forall b (c :: 'String) -> a ('M b c)) -> forall d -> a d -> a d 11match'M :: forall (a :: Type -> Type) -> (forall b (c :: String) -> a (M b c)) -> forall d -> a d -> a d
12'M2 :: Type -> 'String -> Type 12'M2 :: Type -> String -> Type
13Value :: forall a . a -> forall (b :: 'String) . 'M2 a b 13Value :: forall a . a -> forall (b :: String) . M2 a b
14!already defined Value at testdata/language-features/adt/gadt04.reject.lc:6:3: 14!already defined Value at testdata/language-features/adt/gadt04.reject.lc:6:3:
15 Value :: a -> forall m . M2 a m 15 Value :: a -> forall m . M2 a m
16 ^^^^^ 16 ^^^^^
diff --git a/testdata/language-features/basic-list/list01.out b/testdata/language-features/basic-list/list01.out
index 3f0fb720..25208099 100644
--- a/testdata/language-features/basic-list/list01.out
+++ b/testdata/language-features/basic-list/list01.out
@@ -1,8 +1,8 @@
1main is not found 1main is not found
2------------ trace 2------------ trace
3value1 :: forall a . 'List a 3value1 :: forall a . List a
4value2 :: forall a . 'Num a => 'List a 4value2 :: forall a . Num a => List a
5value3 :: 'List 'Char 5value3 :: List Char
6------------ tooltips 6------------ tooltips
7testdata/language-features/basic-list/list01.lc 1:1-1:7 forall a . List a 7testdata/language-features/basic-list/list01.lc 1:1-1:7 forall a . List a
8testdata/language-features/basic-list/list01.lc 1:10-1:12 forall a . List a 8testdata/language-features/basic-list/list01.lc 1:10-1:12 forall a . List a
diff --git a/testdata/language-features/basic-list/list02.out b/testdata/language-features/basic-list/list02.out
index ff742fb8..b95d51c9 100644
--- a/testdata/language-features/basic-list/list02.out
+++ b/testdata/language-features/basic-list/list02.out
@@ -1,8 +1,8 @@
1main is not found 1main is not found
2------------ trace 2------------ trace
3value1 :: forall a . 'List a 3value1 :: forall a . List a
4value2 :: forall a . 'Num a => 'List a 4value2 :: forall a . Num a => List a
5value3 :: 'List 'Char 5value3 :: List Char
6------------ tooltips 6------------ tooltips
7testdata/language-features/basic-list/list02.lc 1:1-1:7 forall a . List a 7testdata/language-features/basic-list/list02.lc 1:1-1:7 forall a . List a
8testdata/language-features/basic-list/list02.lc 1:10-2:4 forall a . List a 8testdata/language-features/basic-list/list02.lc 1:10-2:4 forall a . List a
diff --git a/testdata/language-features/basic-list/list08.out b/testdata/language-features/basic-list/list08.out
index 1ac19568..724faf89 100644
--- a/testdata/language-features/basic-list/list08.out
+++ b/testdata/language-features/basic-list/list08.out
@@ -1,6 +1,6 @@
1main is not found 1main is not found
2------------ trace 2------------ trace
3value :: 'List 'Float 3value :: List Float
4------------ tooltips 4------------ tooltips
5testdata/language-features/basic-list/list08.lc 1:1-1:6 List Float 5testdata/language-features/basic-list/list08.lc 1:1-1:6 List Float
6testdata/language-features/basic-list/list08.lc 1:9-1:16 List Float 6testdata/language-features/basic-list/list08.lc 1:9-1:16 List Float
diff --git a/testdata/language-features/basic-list/list09.out b/testdata/language-features/basic-list/list09.out
index 492d3138..d25415c0 100644
--- a/testdata/language-features/basic-list/list09.out
+++ b/testdata/language-features/basic-list/list09.out
@@ -1,6 +1,6 @@
1main is not found 1main is not found
2------------ trace 2------------ trace
3value :: 'List 'Float 3value :: List Float
4------------ tooltips 4------------ tooltips
5testdata/language-features/basic-list/list09.lc 1:1-1:6 List Float 5testdata/language-features/basic-list/list09.lc 1:1-1:6 List Float
6testdata/language-features/basic-list/list09.lc 1:9-1:16 List Float 6testdata/language-features/basic-list/list09.lc 1:9-1:16 List Float
diff --git a/testdata/language-features/basic-list/list11.out b/testdata/language-features/basic-list/list11.out
index cb6df6d3..b3285136 100644
--- a/testdata/language-features/basic-list/list11.out
+++ b/testdata/language-features/basic-list/list11.out
@@ -1,6 +1,6 @@
1main is not found 1main is not found
2------------ trace 2------------ trace
3value :: forall a . 'Num a => 'List a 3value :: forall a . Num a => List a
4------------ tooltips 4------------ tooltips
5testdata/language-features/basic-list/list11.lc 1:1-1:6 forall a . Num a => List a 5testdata/language-features/basic-list/list11.lc 1:1-1:6 forall a . Num a => List a
6testdata/language-features/basic-list/list11.lc 1:9-1:10 _b 6testdata/language-features/basic-list/list11.lc 1:9-1:10 _b
diff --git a/testdata/language-features/basic-list/list12.out b/testdata/language-features/basic-list/list12.out
index 44f3d7fb..59378f6a 100644
--- a/testdata/language-features/basic-list/list12.out
+++ b/testdata/language-features/basic-list/list12.out
@@ -1,6 +1,6 @@
1main is not found 1main is not found
2------------ trace 2------------ trace
3value :: forall a . 'Num a => 'List a 3value :: forall a . Num a => List a
4------------ tooltips 4------------ tooltips
5testdata/language-features/basic-list/list12.lc 1:1-1:6 forall a . Num a => List a 5testdata/language-features/basic-list/list12.lc 1:1-1:6 forall a . Num a => List a
6testdata/language-features/basic-list/list12.lc 1:9-1:10 _b 6testdata/language-features/basic-list/list12.lc 1:9-1:10 _b
diff --git a/testdata/language-features/basic-list/list13.out b/testdata/language-features/basic-list/list13.out
index 65791b40..59395fa3 100644
--- a/testdata/language-features/basic-list/list13.out
+++ b/testdata/language-features/basic-list/list13.out
@@ -1,6 +1,6 @@
1main is not found 1main is not found
2------------ trace 2------------ trace
3value :: 'List 'Char 3value :: List Char
4------------ tooltips 4------------ tooltips
5testdata/language-features/basic-list/list13.lc 1:1-1:6 List Char 5testdata/language-features/basic-list/list13.lc 1:1-1:6 List Char
6testdata/language-features/basic-list/list13.lc 1:9-1:12 Char 6testdata/language-features/basic-list/list13.lc 1:9-1:12 Char
diff --git a/testdata/language-features/basic-list/listcomp01.out b/testdata/language-features/basic-list/listcomp01.out
index 432c6b31..2e52e998 100644
--- a/testdata/language-features/basic-list/listcomp01.out
+++ b/testdata/language-features/basic-list/listcomp01.out
@@ -1,6 +1,6 @@
1main is not found 1main is not found
2------------ trace 2------------ trace
3value :: 'List () 3value :: List ()
4------------ tooltips 4------------ tooltips
5testdata/language-features/basic-list/listcomp01.lc 1:1-1:6 List () 5testdata/language-features/basic-list/listcomp01.lc 1:1-1:6 List ()
6testdata/language-features/basic-list/listcomp01.lc 1:9-1:34 List () 6testdata/language-features/basic-list/listcomp01.lc 1:9-1:34 List ()
diff --git a/testdata/language-features/basic-list/listcomp02.out b/testdata/language-features/basic-list/listcomp02.out
index febc25b8..3421166e 100644
--- a/testdata/language-features/basic-list/listcomp02.out
+++ b/testdata/language-features/basic-list/listcomp02.out
@@ -1,7 +1,7 @@
1main is not found 1main is not found
2------------ trace 2------------ trace
3l :: 'List () 3l :: List ()
4value :: 'List () 4value :: List ()
5------------ tooltips 5------------ tooltips
6testdata/language-features/basic-list/listcomp02.lc 1:1-1:2 List () 6testdata/language-features/basic-list/listcomp02.lc 1:1-1:2 List ()
7testdata/language-features/basic-list/listcomp02.lc 1:5-1:18 List () 7testdata/language-features/basic-list/listcomp02.lc 1:5-1:18 List ()
diff --git a/testdata/language-features/basic-list/listcomp03.out b/testdata/language-features/basic-list/listcomp03.out
index 44bfd033..d8cb4fbb 100644
--- a/testdata/language-features/basic-list/listcomp03.out
+++ b/testdata/language-features/basic-list/listcomp03.out
@@ -1,6 +1,6 @@
1main is not found 1main is not found
2------------ trace 2------------ trace
3value :: 'List () 3value :: List ()
4------------ tooltips 4------------ tooltips
5testdata/language-features/basic-list/listcomp03.lc 1:1-1:6 List () 5testdata/language-features/basic-list/listcomp03.lc 1:1-1:6 List ()
6testdata/language-features/basic-list/listcomp03.lc 1:9-1:41 List () 6testdata/language-features/basic-list/listcomp03.lc 1:9-1:41 List ()
diff --git a/testdata/language-features/basic-list/listcomp04.out b/testdata/language-features/basic-list/listcomp04.out
index d126e288..3ad41bba 100644
--- a/testdata/language-features/basic-list/listcomp04.out
+++ b/testdata/language-features/basic-list/listcomp04.out
@@ -1,7 +1,7 @@
1main is not found 1main is not found
2------------ trace 2------------ trace
3l :: 'List () 3l :: List ()
4value :: 'List () 4value :: List ()
5------------ tooltips 5------------ tooltips
6testdata/language-features/basic-list/listcomp04.lc 1:1-1:2 List () 6testdata/language-features/basic-list/listcomp04.lc 1:1-1:2 List ()
7testdata/language-features/basic-list/listcomp04.lc 1:5-1:18 List () 7testdata/language-features/basic-list/listcomp04.lc 1:5-1:18 List ()
diff --git a/testdata/language-features/basic-list/listcomp05.out b/testdata/language-features/basic-list/listcomp05.out
index 54650e0b..562bf9ca 100644
--- a/testdata/language-features/basic-list/listcomp05.out
+++ b/testdata/language-features/basic-list/listcomp05.out
@@ -1,6 +1,6 @@
1main is not found 1main is not found
2------------ trace 2------------ trace
3value :: 'List () 3value :: List ()
4------------ tooltips 4------------ tooltips
5testdata/language-features/basic-list/listcomp05.lc 1:1-1:6 List () 5testdata/language-features/basic-list/listcomp05.lc 1:1-1:6 List ()
6testdata/language-features/basic-list/listcomp05.lc 1:9-1:39 List () 6testdata/language-features/basic-list/listcomp05.lc 1:9-1:39 List ()
diff --git a/testdata/language-features/basic-list/listcomp06.out b/testdata/language-features/basic-list/listcomp06.out
index aef51c74..45071292 100644
--- a/testdata/language-features/basic-list/listcomp06.out
+++ b/testdata/language-features/basic-list/listcomp06.out
@@ -1,7 +1,7 @@
1main is not found 1main is not found
2------------ trace 2------------ trace
3value1 :: 'List () 3value1 :: List ()
4value2 :: 'List () 4value2 :: List ()
5------------ tooltips 5------------ tooltips
6testdata/language-features/basic-list/listcomp06.lc 1:1-1:7 List () 6testdata/language-features/basic-list/listcomp06.lc 1:1-1:7 List ()
7testdata/language-features/basic-list/listcomp06.lc 1:10-1:46 List () 7testdata/language-features/basic-list/listcomp06.lc 1:10-1:46 List ()
diff --git a/testdata/language-features/basic-list/listcomp07.out b/testdata/language-features/basic-list/listcomp07.out
index 4b7b54ef..3fc2fb5c 100644
--- a/testdata/language-features/basic-list/listcomp07.out
+++ b/testdata/language-features/basic-list/listcomp07.out
@@ -1,8 +1,8 @@
1main is not found 1main is not found
2------------ trace 2------------ trace
3value1 :: 'List () 3value1 :: List ()
4value2 :: 'List () 4value2 :: List ()
5value3 :: 'List () 5value3 :: List ()
6------------ tooltips 6------------ tooltips
7testdata/language-features/basic-list/listcomp07.lc 1:1-1:7 List () 7testdata/language-features/basic-list/listcomp07.lc 1:1-1:7 List ()
8testdata/language-features/basic-list/listcomp07.lc 1:10-6:11 List () 8testdata/language-features/basic-list/listcomp07.lc 1:10-6:11 List ()
diff --git a/testdata/language-features/basic-list/listcomp09.out b/testdata/language-features/basic-list/listcomp09.out
index bebcfae6..2e6ce09f 100644
--- a/testdata/language-features/basic-list/listcomp09.out
+++ b/testdata/language-features/basic-list/listcomp09.out
@@ -1,6 +1,6 @@
1main is not found 1main is not found
2------------ trace 2------------ trace
3value1 :: Type => 'List (() -> 'String) 3value1 :: Type => List (() -> String)
4------------ tooltips 4------------ tooltips
5testdata/language-features/basic-list/listcomp09.lc 1:1-1:7 Type => List (() -> String) 5testdata/language-features/basic-list/listcomp09.lc 1:1-1:7 Type => List (() -> String)
6testdata/language-features/basic-list/listcomp09.lc 1:10-1:36 List (() -> String) 6testdata/language-features/basic-list/listcomp09.lc 1:10-1:36 List (() -> String)
diff --git a/testdata/language-features/basic-values/bool01.out b/testdata/language-features/basic-values/bool01.out
index a78cfe8f..3fd03cdf 100644
--- a/testdata/language-features/basic-values/bool01.out
+++ b/testdata/language-features/basic-values/bool01.out
@@ -1,7 +1,7 @@
1main is not found 1main is not found
2------------ trace 2------------ trace
3value1 :: 'Bool 3value1 :: Bool
4value2 :: 'Bool 4value2 :: Bool
5------------ tooltips 5------------ tooltips
6testdata/language-features/basic-values/bool01.lc 1:1-1:7 Bool 6testdata/language-features/basic-values/bool01.lc 1:1-1:7 Bool
7testdata/language-features/basic-values/bool01.lc 1:10-1:14 Bool 7testdata/language-features/basic-values/bool01.lc 1:10-1:14 Bool
diff --git a/testdata/language-features/basic-values/case02.out b/testdata/language-features/basic-values/case02.out
index e1b5a2e5..974b56da 100644
--- a/testdata/language-features/basic-values/case02.out
+++ b/testdata/language-features/basic-values/case02.out
@@ -1,7 +1,7 @@
1main is not found 1main is not found
2------------ trace 2------------ trace
3value1 :: forall a . ('Eq a, 'Num a) => () 3value1 :: forall a . (Eq a, Num a) => ()
4value2 :: forall a . ('Eq a, 'Num a, 'Eq a, 'Num a) => 'String 4value2 :: forall a . (Eq a, Num a, Eq a, Num a) => String
5------------ tooltips 5------------ tooltips
6testdata/language-features/basic-values/case02.lc 1:1-1:7 forall a . (Eq a, Num a) => () 6testdata/language-features/basic-values/case02.lc 1:1-1:7 forall a . (Eq a, Num a) => ()
7testdata/language-features/basic-values/case02.lc 1:10-3:10 () 7testdata/language-features/basic-values/case02.lc 1:10-3:10 ()
diff --git a/testdata/language-features/basic-values/case05.out b/testdata/language-features/basic-values/case05.out
index 717b0920..e77a1024 100644
--- a/testdata/language-features/basic-values/case05.out
+++ b/testdata/language-features/basic-values/case05.out
@@ -1,6 +1,6 @@
1main is not found 1main is not found
2------------ trace 2------------ trace
3value :: forall a . ('Eq a, 'Num a) => a -> 'Char 3value :: forall a . (Eq a, Num a) => a -> Char
4------------ tooltips 4------------ tooltips
5testdata/language-features/basic-values/case05.lc 1:1-1:6 forall a . (Eq a, Num a) => a -> Char 5testdata/language-features/basic-values/case05.lc 1:1-1:6 forall a . (Eq a, Num a) => a -> Char
6testdata/language-features/basic-values/case05.lc 1:11-2:11 Char 6testdata/language-features/basic-values/case05.lc 1:11-2:11 Char
diff --git a/testdata/language-features/basic-values/case06.out b/testdata/language-features/basic-values/case06.out
index 40e7db3b..d2524007 100644
--- a/testdata/language-features/basic-values/case06.out
+++ b/testdata/language-features/basic-values/case06.out
@@ -1,6 +1,6 @@
1main is not found 1main is not found
2------------ trace 2------------ trace
3value :: forall a . ('Eq a, 'Num a) => a -> 'Char 3value :: forall a . (Eq a, Num a) => a -> Char
4------------ tooltips 4------------ tooltips
5testdata/language-features/basic-values/case06.lc 1:1-1:6 forall a . (Eq a, Num a) => a -> Char 5testdata/language-features/basic-values/case06.lc 1:1-1:6 forall a . (Eq a, Num a) => a -> Char
6testdata/language-features/basic-values/case06.lc 1:11-3:11 Char 6testdata/language-features/basic-values/case06.lc 1:11-3:11 Char
diff --git a/testdata/language-features/basic-values/data01.out b/testdata/language-features/basic-values/data01.out
index b429a33b..294c3b86 100644
--- a/testdata/language-features/basic-values/data01.out
+++ b/testdata/language-features/basic-values/data01.out
@@ -1,23 +1,23 @@
1main is not found 1main is not found
2------------ trace 2------------ trace
3'A :: Type 3'A :: Type
4B :: 'A 4B :: A
5C :: 'A 5C :: A
6D :: 'A 6D :: A
7'ACase :: forall (a :: 'A -> Type) -> a B -> a C -> a D -> forall (b :: 'A) -> a b 7'ACase :: forall (a :: A -> Type) -> a 'B -> a 'C -> a 'D -> forall (b :: A) -> a b
8match'A :: forall (a :: Type -> Type) -> a 'A -> forall b -> a b -> a b 8match'A :: forall (a :: Type -> Type) -> a A -> forall b -> a b -> a b
9'E :: Type 9'E :: Type
10F :: 'E 10F :: E
11G :: () -> 'E 11G :: () -> E
12H :: 'E 12H :: E
13'ECase :: forall (a :: 'E -> Type) -> a F -> (forall (b :: ()) -> a (G b)) -> a H -> forall (c :: 'E) -> a c 13'ECase :: forall (a :: E -> Type) -> a 'F -> (forall (b :: ()) -> a ('G b)) -> a 'H -> forall (c :: E) -> a c
14match'E :: forall (a :: Type -> Type) -> a 'E -> forall b -> a b -> a b 14match'E :: forall (a :: Type -> Type) -> a E -> forall b -> a b -> a b
15'D1 :: Type 15'D1 :: Type
16C1 :: 'D1 16C1 :: D1
17C2 :: () -> 'D1 17C2 :: () -> D1
18C3 :: 'D1 18C3 :: D1
19'D1Case :: forall (a :: 'D1 -> Type) -> a C1 -> (forall (b :: ()) -> a (C2 b)) -> a C3 -> forall (c :: 'D1) -> a c 19'D1Case :: forall (a :: D1 -> Type) -> a 'C1 -> (forall (b :: ()) -> a ('C2 b)) -> a 'C3 -> forall (c :: D1) -> a c
20match'D1 :: forall (a :: Type -> Type) -> a 'D1 -> forall b -> a b -> a b 20match'D1 :: forall (a :: Type -> Type) -> a D1 -> forall b -> a b -> a b
21------------ tooltips 21------------ tooltips
22testdata/language-features/basic-values/data01.lc 1:6-1:7 Type 22testdata/language-features/basic-values/data01.lc 1:6-1:7 Type
23testdata/language-features/basic-values/data01.lc 1:6-1:13 Type 23testdata/language-features/basic-values/data01.lc 1:6-1:13 Type
diff --git a/testdata/language-features/basic-values/def01.out b/testdata/language-features/basic-values/def01.out
index 6c174057..712cd657 100644
--- a/testdata/language-features/basic-values/def01.out
+++ b/testdata/language-features/basic-values/def01.out
@@ -1,8 +1,8 @@
1main is not found 1main is not found
2------------ trace 2------------ trace
3unit :: () 3unit :: ()
4fun1 :: forall a b . 'Num b => a -> b 4fun1 :: forall a b . Num b => a -> b
5fun2 :: forall a b c d e . a -> b -> c -> d -> e -> 'Char 5fun2 :: forall a b c d e . a -> b -> c -> d -> e -> Char
6------------ tooltips 6------------ tooltips
7testdata/language-features/basic-values/def01.lc 1:1-1:5 () 7testdata/language-features/basic-values/def01.lc 1:1-1:5 ()
8testdata/language-features/basic-values/def01.lc 1:8-1:10 () 8testdata/language-features/basic-values/def01.lc 1:8-1:10 ()
diff --git a/testdata/language-features/basic-values/def03.out b/testdata/language-features/basic-values/def03.out
index bd9e7133..38bae81f 100644
--- a/testdata/language-features/basic-values/def03.out
+++ b/testdata/language-features/basic-values/def03.out
@@ -1,6 +1,6 @@
1main is not found 1main is not found
2------------ trace 2------------ trace
3fun :: forall a . ('Eq a, 'Num a, 'Eq a, 'Num a) => a -> 'Char 3fun :: forall a . (Eq a, Num a, Eq a, Num a) => a -> Char
4------------ tooltips 4------------ tooltips
5testdata/language-features/basic-values/def03.lc 1:1-1:4 forall a . (Eq a, Num a, Eq a, Num a) => a -> Char 5testdata/language-features/basic-values/def03.lc 1:1-1:4 forall a . (Eq a, Num a, Eq a, Num a) => a -> Char
6testdata/language-features/basic-values/def03.lc 1:9-1:12 Char 6testdata/language-features/basic-values/def03.lc 1:9-1:12 Char
diff --git a/testdata/language-features/basic-values/def04.out b/testdata/language-features/basic-values/def04.out
index 1f3fbeb7..977601b2 100644
--- a/testdata/language-features/basic-values/def04.out
+++ b/testdata/language-features/basic-values/def04.out
@@ -1,7 +1,7 @@
1main is not found 1main is not found
2------------ trace 2------------ trace
3fun :: forall a . ('Eq a, 'Num a, 'Eq a, 'Num a) => a -> 'Char 3fun :: forall a . (Eq a, Num a, Eq a, Num a) => a -> Char
4fun2 :: forall a b . ('Eq a, 'Num a, 'Eq a, 'Num a) => a -> b -> 'Char 4fun2 :: forall a b . (Eq a, Num a, Eq a, Num a) => a -> b -> Char
5------------ tooltips 5------------ tooltips
6testdata/language-features/basic-values/def04.lc 1:1-1:4 forall a . (Eq a, Num a, Eq a, Num a) => a -> Char 6testdata/language-features/basic-values/def04.lc 1:1-1:4 forall a . (Eq a, Num a, Eq a, Num a) => a -> Char
7testdata/language-features/basic-values/def04.lc 1:9-1:12 Char 7testdata/language-features/basic-values/def04.lc 1:9-1:12 Char
diff --git a/testdata/language-features/basic-values/def07.reject.out b/testdata/language-features/basic-values/def07.reject.out
index c52ecc70..8cb5a1a4 100644
--- a/testdata/language-features/basic-values/def07.reject.out
+++ b/testdata/language-features/basic-values/def07.reject.out
@@ -5,9 +5,9 @@ and at testdata/language-features/basic-values/def07.reject.lc:1:1:
5fun 1 = '1' 5fun 1 = '1'
6^^^ 6^^^
7------------ trace 7------------ trace
8fun :: forall a . ('Eq a, 'Num a, 'Eq a, 'Num a) => a -> 'Char 8fun :: forall a . (Eq a, Num a, Eq a, Num a) => a -> Char
9fun2 :: forall a b . ('Eq a, 'Num a) => a -> b -> 'Char 9fun2 :: forall a b . (Eq a, Num a) => a -> b -> Char
10fun :: forall a . a -> 'Char 10fun :: forall a . a -> Char
11!already defined fun at testdata/language-features/basic-values/def07.reject.lc:4:1: 11!already defined fun at testdata/language-features/basic-values/def07.reject.lc:4:1:
12fun _ = '_' 12fun _ = '_'
13^^^ 13^^^
diff --git a/testdata/language-features/basic-values/deforder01.out b/testdata/language-features/basic-values/deforder01.out
index 5dd94137..325f4361 100644
--- a/testdata/language-features/basic-values/deforder01.out
+++ b/testdata/language-features/basic-values/deforder01.out
@@ -1,7 +1,7 @@
1main is not found 1main is not found
2------------ trace 2------------ trace
3x :: 'Char 3x :: Char
4y :: 'Char 4y :: Char
5------------ tooltips 5------------ tooltips
6testdata/language-features/basic-values/deforder01.lc 1:1-1:2 Char 6testdata/language-features/basic-values/deforder01.lc 1:1-1:2 Char
7testdata/language-features/basic-values/deforder01.lc 1:5-1:8 Char 7testdata/language-features/basic-values/deforder01.lc 1:5-1:8 Char
diff --git a/testdata/language-features/basic-values/deforder02.out b/testdata/language-features/basic-values/deforder02.out
index 473b93ff..9f79a9bd 100644
--- a/testdata/language-features/basic-values/deforder02.out
+++ b/testdata/language-features/basic-values/deforder02.out
@@ -1,7 +1,7 @@
1main is not found 1main is not found
2------------ trace 2------------ trace
3x :: 'Char 3x :: Char
4y :: 'Char 4y :: Char
5------------ tooltips 5------------ tooltips
6testdata/language-features/basic-values/deforder02.lc 1:1-1:2 Char 6testdata/language-features/basic-values/deforder02.lc 1:1-1:2 Char
7testdata/language-features/basic-values/deforder02.lc 1:5-1:6 Char 7testdata/language-features/basic-values/deforder02.lc 1:5-1:6 Char
diff --git a/testdata/language-features/basic-values/deforder03.out b/testdata/language-features/basic-values/deforder03.out
index f7c5fa08..d98597f6 100644
--- a/testdata/language-features/basic-values/deforder03.out
+++ b/testdata/language-features/basic-values/deforder03.out
@@ -1,6 +1,6 @@
1main is not found 1main is not found
2------------ trace 2------------ trace
3value :: 'Char 3value :: Char
4------------ tooltips 4------------ tooltips
5testdata/language-features/basic-values/deforder03.lc 1:1-1:6 Char 5testdata/language-features/basic-values/deforder03.lc 1:1-1:6 Char
6testdata/language-features/basic-values/deforder03.lc 1:17-1:19 () 6testdata/language-features/basic-values/deforder03.lc 1:17-1:19 ()
diff --git a/testdata/language-features/basic-values/deforder04.out b/testdata/language-features/basic-values/deforder04.out
index 430a18c3..5d6e1d80 100644
--- a/testdata/language-features/basic-values/deforder04.out
+++ b/testdata/language-features/basic-values/deforder04.out
@@ -1,6 +1,6 @@
1main is not found 1main is not found
2------------ trace 2------------ trace
3value :: 'Char 3value :: Char
4------------ tooltips 4------------ tooltips
5testdata/language-features/basic-values/deforder04.lc 1:1-1:6 Char 5testdata/language-features/basic-values/deforder04.lc 1:1-1:6 Char
6testdata/language-features/basic-values/deforder04.lc 1:17-1:18 () 6testdata/language-features/basic-values/deforder04.lc 1:17-1:18 ()
diff --git a/testdata/language-features/basic-values/deforder05.out b/testdata/language-features/basic-values/deforder05.out
index 59230da2..73897e36 100644
--- a/testdata/language-features/basic-values/deforder05.out
+++ b/testdata/language-features/basic-values/deforder05.out
@@ -1,6 +1,6 @@
1main is not found 1main is not found
2------------ trace 2------------ trace
3value :: 'Char 3value :: Char
4------------ tooltips 4------------ tooltips
5testdata/language-features/basic-values/deforder05.lc 1:1-1:6 Char 5testdata/language-features/basic-values/deforder05.lc 1:1-1:6 Char
6testdata/language-features/basic-values/deforder05.lc 1:9-1:12 Char 6testdata/language-features/basic-values/deforder05.lc 1:9-1:12 Char
diff --git a/testdata/language-features/basic-values/deforder06.out b/testdata/language-features/basic-values/deforder06.out
index 55bffe51..794432d6 100644
--- a/testdata/language-features/basic-values/deforder06.out
+++ b/testdata/language-features/basic-values/deforder06.out
@@ -1,6 +1,6 @@
1main is not found 1main is not found
2------------ trace 2------------ trace
3value :: 'Char 3value :: Char
4------------ tooltips 4------------ tooltips
5testdata/language-features/basic-values/deforder06.lc 1:1-1:6 Char 5testdata/language-features/basic-values/deforder06.lc 1:1-1:6 Char
6testdata/language-features/basic-values/deforder06.lc 1:9-1:12 Char 6testdata/language-features/basic-values/deforder06.lc 1:9-1:12 Char
diff --git a/testdata/language-features/basic-values/fixity02.out b/testdata/language-features/basic-values/fixity02.out
index 2f87c92d..e16184f0 100644
--- a/testdata/language-features/basic-values/fixity02.out
+++ b/testdata/language-features/basic-values/fixity02.out
@@ -4,21 +4,21 @@ funL :: forall a b . a -> b -> a
4funR :: forall a b . a -> b -> b 4funR :: forall a b . a -> b -> b
5<@ :: forall a b . a -> b -> a 5<@ :: forall a b . a -> b -> a
6@> :: forall a b . a -> b -> b 6@> :: forall a b . a -> b -> b
7value1 :: 'Float 7value1 :: Float
8value2 :: 'Float 8value2 :: Float
9value3 :: 'Float 9value3 :: Float
10value4 :: 'Float 10value4 :: Float
11value5 :: 'String 11value5 :: String
12value6 :: 'Char 12value6 :: Char
13value7 :: 'String 13value7 :: String
14value8 :: () 14value8 :: ()
15funValue1 :: 'Float 15funValue1 :: Float
16funValue2 :: 'Float 16funValue2 :: Float
17funValue3 :: 'Float 17funValue3 :: Float
18funValue4 :: 'Float 18funValue4 :: Float
19funValue5 :: 'String 19funValue5 :: String
20funValue6 :: 'Char 20funValue6 :: Char
21funValue7 :: 'String 21funValue7 :: String
22funValue8 :: () 22funValue8 :: ()
23------------ tooltips 23------------ tooltips
24testdata/language-features/basic-values/fixity02.lc 1:1-1:5 forall a b . a -> b -> a 24testdata/language-features/basic-values/fixity02.lc 1:1-1:5 forall a b . a -> b -> a
diff --git a/testdata/language-features/basic-values/if01.out b/testdata/language-features/basic-values/if01.out
index 991efd46..b68d03e3 100644
--- a/testdata/language-features/basic-values/if01.out
+++ b/testdata/language-features/basic-values/if01.out
@@ -1,7 +1,7 @@
1main is not found 1main is not found
2------------ trace 2------------ trace
3value1 :: () 3value1 :: ()
4value2 :: 'Float 4value2 :: Float
5------------ tooltips 5------------ tooltips
6testdata/language-features/basic-values/if01.lc 1:1-1:7 () 6testdata/language-features/basic-values/if01.lc 1:1-1:7 ()
7testdata/language-features/basic-values/if01.lc 1:10-1:33 () 7testdata/language-features/basic-values/if01.lc 1:10-1:33 ()
diff --git a/testdata/language-features/basic-values/infix03.out b/testdata/language-features/basic-values/infix03.out
index 3420e35e..213d9e06 100644
--- a/testdata/language-features/basic-values/infix03.out
+++ b/testdata/language-features/basic-values/infix03.out
@@ -1,12 +1,12 @@
1main is not found 1main is not found
2------------ trace 2------------ trace
3'D :: Type 3'D :: Type
4D2 :: () -> () -> 'D 4D2 :: () -> () -> D
5D3 :: () -> () -> () -> 'D 5D3 :: () -> () -> () -> D
6'DCase :: forall (a :: 'D -> Type) -> (forall (b :: ()) (c :: ()) -> a (D2 b c)) -> (forall (d :: ()) (e :: ()) (f :: ()) -> a (D3 d e f)) -> forall (g :: 'D) -> a g 6'DCase :: forall (a :: D -> Type) -> (forall (b :: ()) (c :: ()) -> a ('D2 b c)) -> (forall (d :: ()) (e :: ()) (f :: ()) -> a ('D3 d e f)) -> forall (g :: D) -> a g
7match'D :: forall (a :: Type -> Type) -> a 'D -> forall b -> a b -> a b 7match'D :: forall (a :: Type -> Type) -> a D -> forall b -> a b -> a b
8d2 :: () -> () -> 'D 8d2 :: () -> () -> D
9d3 :: () -> () -> () -> 'D 9d3 :: () -> () -> () -> D
10------------ tooltips 10------------ tooltips
11testdata/language-features/basic-values/infix03.lc 1:6-1:7 Type 11testdata/language-features/basic-values/infix03.lc 1:6-1:7 Type
12testdata/language-features/basic-values/infix03.lc 1:6-1:18 Type 12testdata/language-features/basic-values/infix03.lc 1:6-1:18 Type
diff --git a/testdata/language-features/basic-values/let01.out b/testdata/language-features/basic-values/let01.out
index 8ab8c8e0..36ecf369 100644
--- a/testdata/language-features/basic-values/let01.out
+++ b/testdata/language-features/basic-values/let01.out
@@ -1,10 +1,10 @@
1main is not found 1main is not found
2------------ trace 2------------ trace
3value1 :: forall a . 'Num a => a 3value1 :: forall a . Num a => a
4value2 :: forall a . 'Num a => a 4value2 :: forall a . Num a => a
5value3 :: forall a . 'Num a => a 5value3 :: forall a . Num a => a
6value4 :: forall a . 'Num a => a 6value4 :: forall a . Num a => a
7value5 :: forall a . 'Num a => a 7value5 :: forall a . Num a => a
8------------ tooltips 8------------ tooltips
9testdata/language-features/basic-values/let01.lc 1:1-1:7 forall a . Num a => a 9testdata/language-features/basic-values/let01.lc 1:1-1:7 forall a . Num a => a
10testdata/language-features/basic-values/let01.lc 1:18-1:19 _b 10testdata/language-features/basic-values/let01.lc 1:18-1:19 _b
diff --git a/testdata/language-features/basic-values/literal01.out b/testdata/language-features/basic-values/literal01.out
index 0f7b3dbf..abaca3a7 100644
--- a/testdata/language-features/basic-values/literal01.out
+++ b/testdata/language-features/basic-values/literal01.out
@@ -1,13 +1,13 @@
1main is not found 1main is not found
2------------ trace 2------------ trace
3intValue1 :: forall a . 'Num a => a 3intValue1 :: forall a . Num a => a
4intValue2 :: forall a . 'Num a => a 4intValue2 :: forall a . Num a => a
5intValue3 :: forall a . 'Num a => a 5intValue3 :: forall a . Num a => a
6floatValue1 :: 'Float 6floatValue1 :: Float
7floatValue2 :: 'Float 7floatValue2 :: Float
8charValue :: 'Char 8charValue :: Char
9stringValue1 :: 'String 9stringValue1 :: String
10stringValue2 :: 'String 10stringValue2 :: String
11------------ tooltips 11------------ tooltips
12testdata/language-features/basic-values/literal01.lc 1:1-1:10 forall a . Num a => a 12testdata/language-features/basic-values/literal01.lc 1:1-1:10 forall a . Num a => a
13testdata/language-features/basic-values/literal01.lc 1:13-1:14 _b 13testdata/language-features/basic-values/literal01.lc 1:13-1:14 _b
diff --git a/testdata/language-features/basic-values/shadowing01.out b/testdata/language-features/basic-values/shadowing01.out
index 8956a8a3..9a8f5f22 100644
--- a/testdata/language-features/basic-values/shadowing01.out
+++ b/testdata/language-features/basic-values/shadowing01.out
@@ -1,6 +1,6 @@
1main is not found 1main is not found
2------------ trace 2------------ trace
3value :: 'Char 3value :: Char
4------------ tooltips 4------------ tooltips
5testdata/language-features/basic-values/shadowing01.lc 1:1-1:6 Char 5testdata/language-features/basic-values/shadowing01.lc 1:1-1:6 Char
6testdata/language-features/basic-values/shadowing01.lc 2:11-2:14 Char 6testdata/language-features/basic-values/shadowing01.lc 2:11-2:14 Char
diff --git a/testdata/language-features/basic-values/shadowing02.out b/testdata/language-features/basic-values/shadowing02.out
index 201f5f75..d4d4373b 100644
--- a/testdata/language-features/basic-values/shadowing02.out
+++ b/testdata/language-features/basic-values/shadowing02.out
@@ -1,8 +1,8 @@
1main is not found 1main is not found
2------------ trace 2------------ trace
3c :: forall a . 'Num a => a 3c :: forall a . Num a => a
4world :: 'String 4world :: String
5value2 :: 'Char 5value2 :: Char
6------------ tooltips 6------------ tooltips
7testdata/language-features/basic-values/shadowing02.lc 1:1-1:2 forall a . Num a => a 7testdata/language-features/basic-values/shadowing02.lc 1:1-1:2 forall a . Num a => a
8testdata/language-features/basic-values/shadowing02.lc 1:5-1:6 _b 8testdata/language-features/basic-values/shadowing02.lc 1:5-1:6 _b
diff --git a/testdata/language-features/basic-values/tuple02.out b/testdata/language-features/basic-values/tuple02.out
index 649fc85f..4e15f913 100644
--- a/testdata/language-features/basic-values/tuple02.out
+++ b/testdata/language-features/basic-values/tuple02.out
@@ -1,8 +1,8 @@
1main is not found 1main is not found
2------------ trace 2------------ trace
3tuple1 :: forall a . 'Num a => (a, 'Float, 'Char, 'String, ()) 3tuple1 :: forall a . Num a => (a, Float, Char, String, ())
4tuple2 :: ((), ()) 4tuple2 :: ((), ())
5tuple3 :: (('String, 'Char), ()) 5tuple3 :: ((String, Char), ())
6------------ tooltips 6------------ tooltips
7testdata/language-features/basic-values/tuple02.lc 1:1-1:7 forall a . Num a => (a, Float, Char, String, ()) 7testdata/language-features/basic-values/tuple02.lc 1:1-1:7 forall a . Num a => (a, Float, Char, String, ())
8testdata/language-features/basic-values/tuple02.lc 1:10-1:33 (_b, Float, Char, String, ()) 8testdata/language-features/basic-values/tuple02.lc 1:10-1:33 (_b, Float, Char, String, ())
diff --git a/testdata/language-features/basic-values/typesig01.out b/testdata/language-features/basic-values/typesig01.out
index cd018c6f..c473b40c 100644
--- a/testdata/language-features/basic-values/typesig01.out
+++ b/testdata/language-features/basic-values/typesig01.out
@@ -1,7 +1,7 @@
1main is not found 1main is not found
2------------ trace 2------------ trace
3value1 :: 'Char 3value1 :: Char
4value2 :: 'Char 4value2 :: Char
5------------ tooltips 5------------ tooltips
6testdata/language-features/basic-values/typesig01.lc 1:11-1:15 Type 6testdata/language-features/basic-values/typesig01.lc 1:11-1:15 Type
7testdata/language-features/basic-values/typesig01.lc 2:1-2:7 Char 7testdata/language-features/basic-values/typesig01.lc 2:1-2:7 Char
diff --git a/testdata/language-features/basic-values/typesig02.out b/testdata/language-features/basic-values/typesig02.out
index bbaa5075..c1e6361e 100644
--- a/testdata/language-features/basic-values/typesig02.out
+++ b/testdata/language-features/basic-values/typesig02.out
@@ -1,7 +1,7 @@
1main is not found 1main is not found
2------------ trace 2------------ trace
3value1 :: 'Char 3value1 :: Char
4value2 :: 'Char 4value2 :: Char
5------------ tooltips 5------------ tooltips
6testdata/language-features/basic-values/typesig02.lc 1:1-1:7 Char 6testdata/language-features/basic-values/typesig02.lc 1:1-1:7 Char
7testdata/language-features/basic-values/typesig02.lc 1:10-1:13 Char 7testdata/language-features/basic-values/typesig02.lc 1:10-1:13 Char
diff --git a/testdata/language-features/basic-values/typesig05.out b/testdata/language-features/basic-values/typesig05.out
index 1e8fa0f6..d107f4eb 100644
--- a/testdata/language-features/basic-values/typesig05.out
+++ b/testdata/language-features/basic-values/typesig05.out
@@ -2,10 +2,10 @@ main is not found
2------------ trace 2------------ trace
3funL :: forall a b . a -> b -> a 3funL :: forall a b . a -> b -> a
4funR :: forall a b . a -> b -> b 4funR :: forall a b . a -> b -> b
5value1 :: 'Char 5value1 :: Char
6value2 :: 'String 6value2 :: String
7value3 :: 'Char 7value3 :: Char
8value4 :: 'String 8value4 :: String
9------------ tooltips 9------------ tooltips
10testdata/language-features/basic-values/typesig05.lc 1:1-1:5 forall a b . a -> b -> a 10testdata/language-features/basic-values/typesig05.lc 1:1-1:5 forall a b . a -> b -> a
11testdata/language-features/basic-values/typesig05.lc 1:12-1:13 _d 11testdata/language-features/basic-values/typesig05.lc 1:12-1:13 _d
diff --git a/testdata/language-features/basic-values/typesig06.out b/testdata/language-features/basic-values/typesig06.out
index a5bcd427..c249026f 100644
--- a/testdata/language-features/basic-values/typesig06.out
+++ b/testdata/language-features/basic-values/typesig06.out
@@ -2,8 +2,8 @@ main is not found
2------------ trace 2------------ trace
3funL :: forall a b . a -> b -> a 3funL :: forall a b . a -> b -> a
4<@ :: forall a b . a -> b -> a 4<@ :: forall a b . a -> b -> a
5value1 :: 'String 5value1 :: String
6value2 :: 'String 6value2 :: String
7------------ tooltips 7------------ tooltips
8testdata/language-features/basic-values/typesig06.lc 1:1-1:5 forall a b . a -> b -> a 8testdata/language-features/basic-values/typesig06.lc 1:1-1:5 forall a b . a -> b -> a
9testdata/language-features/basic-values/typesig06.lc 1:12-1:13 _d 9testdata/language-features/basic-values/typesig06.lc 1:12-1:13 _d
diff --git a/testdata/language-features/basic-values/typesig07.out b/testdata/language-features/basic-values/typesig07.out
index d8beb681..65ce8df7 100644
--- a/testdata/language-features/basic-values/typesig07.out
+++ b/testdata/language-features/basic-values/typesig07.out
@@ -1,8 +1,8 @@
1main is not found 1main is not found
2------------ trace 2------------ trace
3value1 :: 'Int 3value1 :: Int
4value2 :: 'Int 4value2 :: Int
5value3 :: 'Int 5value3 :: Int
6value4 :: () -> () -> () 6value4 :: () -> () -> ()
7@@@ :: () -> () -> () 7@@@ :: () -> () -> ()
8value6 :: () -> () -> () 8value6 :: () -> () -> ()
diff --git a/testdata/language-features/basic-values/where05.out b/testdata/language-features/basic-values/where05.out
index a0785fa9..11743f93 100644
--- a/testdata/language-features/basic-values/where05.out
+++ b/testdata/language-features/basic-values/where05.out
@@ -1,9 +1,9 @@
1main is not found 1main is not found
2------------ trace 2------------ trace
3value1 :: forall a . ('Eq a, 'Num a) => () 3value1 :: forall a . (Eq a, Num a) => ()
4value2 :: forall a . ('Eq a, 'Num a) => () 4value2 :: forall a . (Eq a, Num a) => ()
5value3 :: forall a . ('Eq a, 'Num a) => () 5value3 :: forall a . (Eq a, Num a) => ()
6value4 :: forall a . ('Eq a, 'Num a) => () 6value4 :: forall a . (Eq a, Num a) => ()
7------------ tooltips 7------------ tooltips
8testdata/language-features/basic-values/where05.lc 1:1-1:7 forall a . (Eq a, Num a) => () 8testdata/language-features/basic-values/where05.lc 1:1-1:7 forall a . (Eq a, Num a) => ()
9testdata/language-features/basic-values/where05.lc 1:10-3:10 () 9testdata/language-features/basic-values/where05.lc 1:10-3:10 ()
diff --git a/testdata/language-features/guard/guard03.out b/testdata/language-features/guard/guard03.out
index 2af70393..7090e22b 100644
--- a/testdata/language-features/guard/guard03.out
+++ b/testdata/language-features/guard/guard03.out
@@ -1,6 +1,6 @@
1main is not found 1main is not found
2------------ trace 2------------ trace
3value :: 'String 3value :: String
4------------ tooltips 4------------ tooltips
5testdata/language-features/guard/guard03.lc 1:1-1:6 String 5testdata/language-features/guard/guard03.lc 1:1-1:6 String
6testdata/language-features/guard/guard03.lc 2:5-2:9 Bool 6testdata/language-features/guard/guard03.lc 2:5-2:9 Bool
diff --git a/testdata/language-features/guard/guard04.out b/testdata/language-features/guard/guard04.out
index bf31f3ec..3f34c61b 100644
--- a/testdata/language-features/guard/guard04.out
+++ b/testdata/language-features/guard/guard04.out
@@ -1,6 +1,6 @@
1main is not found 1main is not found
2------------ trace 2------------ trace
3value :: 'String 3value :: String
4------------ tooltips 4------------ tooltips
5testdata/language-features/guard/guard04.lc 1:1-1:6 String 5testdata/language-features/guard/guard04.lc 1:1-1:6 String
6testdata/language-features/guard/guard04.lc 2:5-2:9 Bool 6testdata/language-features/guard/guard04.lc 2:5-2:9 Bool
diff --git a/testdata/language-features/guard/guard07.out b/testdata/language-features/guard/guard07.out
index f4e69791..38e182d2 100644
--- a/testdata/language-features/guard/guard07.out
+++ b/testdata/language-features/guard/guard07.out
@@ -1,6 +1,6 @@
1main is not found 1main is not found
2------------ trace 2------------ trace
3value :: 'String 3value :: String
4------------ tooltips 4------------ tooltips
5testdata/language-features/guard/guard07.lc 1:1-1:6 String 5testdata/language-features/guard/guard07.lc 1:1-1:6 String
6testdata/language-features/guard/guard07.lc 1:7-1:11 Bool 6testdata/language-features/guard/guard07.lc 1:7-1:11 Bool
diff --git a/testdata/language-features/guard/guard08.out b/testdata/language-features/guard/guard08.out
index 5c9c1111..075a074b 100644
--- a/testdata/language-features/guard/guard08.out
+++ b/testdata/language-features/guard/guard08.out
@@ -1,6 +1,6 @@
1main is not found 1main is not found
2------------ trace 2------------ trace
3value :: 'String 3value :: String
4------------ tooltips 4------------ tooltips
5testdata/language-features/guard/guard08.lc 1:1-1:6 String 5testdata/language-features/guard/guard08.lc 1:1-1:6 String
6testdata/language-features/guard/guard08.lc 1:7-1:11 Bool 6testdata/language-features/guard/guard08.lc 1:7-1:11 Bool
diff --git a/testdata/language-features/guard/guard09.out b/testdata/language-features/guard/guard09.out
index e0b89ef8..694aaa0a 100644
--- a/testdata/language-features/guard/guard09.out
+++ b/testdata/language-features/guard/guard09.out
@@ -1,6 +1,6 @@
1main is not found 1main is not found
2------------ trace 2------------ trace
3value :: 'String 3value :: String
4------------ tooltips 4------------ tooltips
5testdata/language-features/guard/guard09.lc 1:1-1:6 String 5testdata/language-features/guard/guard09.lc 1:1-1:6 String
6testdata/language-features/guard/guard09.lc 1:7-1:11 Bool 6testdata/language-features/guard/guard09.lc 1:7-1:11 Bool
diff --git a/testdata/language-features/guard/guard11.out b/testdata/language-features/guard/guard11.out
index abf02c69..08498e54 100644
--- a/testdata/language-features/guard/guard11.out
+++ b/testdata/language-features/guard/guard11.out
@@ -1,6 +1,6 @@
1main is not found 1main is not found
2------------ trace 2------------ trace
3fun :: 'Bool -> 'String 3fun :: Bool -> String
4------------ tooltips 4------------ tooltips
5testdata/language-features/guard/guard11.lc 1:1-1:4 Bool -> String 5testdata/language-features/guard/guard11.lc 1:1-1:4 Bool -> String
6testdata/language-features/guard/guard11.lc 2:5-2:6 _b 6testdata/language-features/guard/guard11.lc 2:5-2:6 _b
diff --git a/testdata/language-features/guard/guard13.out b/testdata/language-features/guard/guard13.out
index 06e22436..2ab6fd64 100644
--- a/testdata/language-features/guard/guard13.out
+++ b/testdata/language-features/guard/guard13.out
@@ -1,6 +1,6 @@
1main is not found 1main is not found
2------------ trace 2------------ trace
3fun :: 'Bool -> () 3fun :: Bool -> ()
4------------ tooltips 4------------ tooltips
5testdata/language-features/guard/guard13.lc 1:1-1:4 Bool -> () 5testdata/language-features/guard/guard13.lc 1:1-1:4 Bool -> ()
6testdata/language-features/guard/guard13.lc 1:7-1:8 _b 6testdata/language-features/guard/guard13.lc 1:7-1:8 _b
diff --git a/testdata/language-features/guard/guard16.out b/testdata/language-features/guard/guard16.out
index d2bec88d..1c3bd27d 100644
--- a/testdata/language-features/guard/guard16.out
+++ b/testdata/language-features/guard/guard16.out
@@ -1,6 +1,6 @@
1main is not found 1main is not found
2------------ trace 2------------ trace
3value :: forall a . ('Eq a, 'Num a) => () 3value :: forall a . (Eq a, Num a) => ()
4------------ tooltips 4------------ tooltips
5testdata/language-features/guard/guard16.lc 1:1-1:6 forall a . (Eq a, Num a) => () 5testdata/language-features/guard/guard16.lc 1:1-1:6 forall a . (Eq a, Num a) => ()
6testdata/language-features/guard/guard16.lc 1:9-3:10 () 6testdata/language-features/guard/guard16.lc 1:9-3:10 ()
diff --git a/testdata/language-features/module/Hello01.out b/testdata/language-features/module/Hello01.out
index 08a387f1..1092217c 100644
--- a/testdata/language-features/module/Hello01.out
+++ b/testdata/language-features/module/Hello01.out
@@ -1,7 +1,7 @@
1main is not found 1main is not found
2------------ trace 2------------ trace
3hello :: 'String 3hello :: String
4world :: 'String 4world :: String
5------------ tooltips 5------------ tooltips
6testdata/language-features/module/Hello01.lc 3:1-3:6 String 6testdata/language-features/module/Hello01.lc 3:1-3:6 String
7testdata/language-features/module/Hello01.lc 3:9-3:16 String 7testdata/language-features/module/Hello01.lc 3:9-3:16 String
diff --git a/testdata/language-features/module/Hello02.out b/testdata/language-features/module/Hello02.out
index 17b419db..5add282c 100644
--- a/testdata/language-features/module/Hello02.out
+++ b/testdata/language-features/module/Hello02.out
@@ -1,7 +1,7 @@
1main is not found 1main is not found
2------------ trace 2------------ trace
3hello :: 'String 3hello :: String
4world :: 'String 4world :: String
5------------ tooltips 5------------ tooltips
6testdata/language-features/module/Hello02.lc 3:1-3:6 String 6testdata/language-features/module/Hello02.lc 3:1-3:6 String
7testdata/language-features/module/Hello02.lc 3:9-3:16 String 7testdata/language-features/module/Hello02.lc 3:9-3:16 String
diff --git a/testdata/language-features/module/Hello03.out b/testdata/language-features/module/Hello03.out
index 4d5deb19..12f70b11 100644
--- a/testdata/language-features/module/Hello03.out
+++ b/testdata/language-features/module/Hello03.out
@@ -1,7 +1,7 @@
1main is not found 1main is not found
2------------ trace 2------------ trace
3greeting :: 'Char 3greeting :: Char
4value :: 'Float 4value :: Float
5------------ tooltips 5------------ tooltips
6testdata/language-features/module/Hello03.lc 7:1-7:9 Char 6testdata/language-features/module/Hello03.lc 7:1-7:9 Char
7testdata/language-features/module/Hello03.lc 7:12-7:15 Char 7testdata/language-features/module/Hello03.lc 7:12-7:15 Char
diff --git a/testdata/language-features/module/ModulePackage/SubModule01.out b/testdata/language-features/module/ModulePackage/SubModule01.out
index 347da0c0..513c363e 100644
--- a/testdata/language-features/module/ModulePackage/SubModule01.out
+++ b/testdata/language-features/module/ModulePackage/SubModule01.out
@@ -1,6 +1,6 @@
1main is not found 1main is not found
2------------ trace 2------------ trace
3hello :: 'String 3hello :: String
4------------ tooltips 4------------ tooltips
5testdata/language-features/module/ModulePackage/SubModule01.lc 3:1-3:6 String 5testdata/language-features/module/ModulePackage/SubModule01.lc 3:1-3:6 String
6testdata/language-features/module/ModulePackage/SubModule01.lc 3:9-3:16 String 6testdata/language-features/module/ModulePackage/SubModule01.lc 3:9-3:16 String
diff --git a/testdata/language-features/module/Moduledef06.out b/testdata/language-features/module/Moduledef06.out
index 39b689da..0d6e7543 100644
--- a/testdata/language-features/module/Moduledef06.out
+++ b/testdata/language-features/module/Moduledef06.out
@@ -1,6 +1,6 @@
1main is not found 1main is not found
2------------ trace 2------------ trace
3hello :: 'String 3hello :: String
4------------ tooltips 4------------ tooltips
5testdata/language-features/module/Moduledef06.lc 3:1-3:6 String 5testdata/language-features/module/Moduledef06.lc 3:1-3:6 String
6testdata/language-features/module/Moduledef06.lc 3:9-3:16 String 6testdata/language-features/module/Moduledef06.lc 3:9-3:16 String
diff --git a/testdata/language-features/module/Moduledef07.out b/testdata/language-features/module/Moduledef07.out
index c465589a..abacda06 100644
--- a/testdata/language-features/module/Moduledef07.out
+++ b/testdata/language-features/module/Moduledef07.out
@@ -1,6 +1,6 @@
1main is not found 1main is not found
2------------ trace 2------------ trace
3hello :: 'String 3hello :: String
4------------ tooltips 4------------ tooltips
5testdata/language-features/module/Moduledef07.lc 5:1-5:6 String 5testdata/language-features/module/Moduledef07.lc 5:1-5:6 String
6testdata/language-features/module/Moduledef07.lc 5:9-5:16 String 6testdata/language-features/module/Moduledef07.lc 5:9-5:16 String
diff --git a/testdata/language-features/module/Moduledef08.out b/testdata/language-features/module/Moduledef08.out
index e6100f0d..873b2467 100644
--- a/testdata/language-features/module/Moduledef08.out
+++ b/testdata/language-features/module/Moduledef08.out
@@ -1,6 +1,6 @@
1main is not found 1main is not found
2------------ trace 2------------ trace
3hello :: 'String 3hello :: String
4------------ tooltips 4------------ tooltips
5testdata/language-features/module/Moduledef08.lc 5:1-5:6 String 5testdata/language-features/module/Moduledef08.lc 5:1-5:6 String
6testdata/language-features/module/Moduledef08.lc 5:9-5:16 String 6testdata/language-features/module/Moduledef08.lc 5:9-5:16 String
diff --git a/testdata/language-features/module/Moduledef09.out b/testdata/language-features/module/Moduledef09.out
index 76e2a240..f8d17e75 100644
--- a/testdata/language-features/module/Moduledef09.out
+++ b/testdata/language-features/module/Moduledef09.out
@@ -1,7 +1,7 @@
1main is not found 1main is not found
2------------ trace 2------------ trace
3hello :: 'String 3hello :: String
4world :: 'String 4world :: String
5------------ tooltips 5------------ tooltips
6testdata/language-features/module/Moduledef09.lc 5:1-5:6 String 6testdata/language-features/module/Moduledef09.lc 5:1-5:6 String
7testdata/language-features/module/Moduledef09.lc 5:9-5:16 String 7testdata/language-features/module/Moduledef09.lc 5:9-5:16 String
diff --git a/testdata/language-features/module/Moduledef10.out b/testdata/language-features/module/Moduledef10.out
index 69ce937f..6064ace1 100644
--- a/testdata/language-features/module/Moduledef10.out
+++ b/testdata/language-features/module/Moduledef10.out
@@ -1,7 +1,7 @@
1main is not found 1main is not found
2------------ trace 2------------ trace
3hello :: 'String 3hello :: String
4world :: 'String 4world :: String
5value :: () 5value :: ()
6------------ tooltips 6------------ tooltips
7testdata/language-features/module/Moduledef10.lc 6:1-6:6 String 7testdata/language-features/module/Moduledef10.lc 6:1-6:6 String
diff --git a/testdata/language-features/module/Moduledef13.out b/testdata/language-features/module/Moduledef13.out
index a5f17505..01a5781b 100644
--- a/testdata/language-features/module/Moduledef13.out
+++ b/testdata/language-features/module/Moduledef13.out
@@ -1,6 +1,6 @@
1main is not found 1main is not found
2------------ trace 2------------ trace
3hello :: 'String 3hello :: String
4------------ tooltips 4------------ tooltips
5testdata/language-features/module/Moduledef13.lc 3:1-3:6 String 5testdata/language-features/module/Moduledef13.lc 3:1-3:6 String
6testdata/language-features/module/Moduledef13.lc 3:9-3:16 String 6testdata/language-features/module/Moduledef13.lc 3:9-3:16 String
diff --git a/testdata/language-features/module/import01.out b/testdata/language-features/module/import01.out
index f22bf842..fbf732d3 100644
--- a/testdata/language-features/module/import01.out
+++ b/testdata/language-features/module/import01.out
@@ -1,6 +1,6 @@
1main is not found 1main is not found
2------------ trace 2------------ trace
3x :: 'String 3x :: String
4------------ tooltips 4------------ tooltips
5testdata/language-features/module/import01.lc 3:1-3:2 String 5testdata/language-features/module/import01.lc 3:1-3:2 String
6testdata/language-features/module/import01.lc 3:5-3:10 String 6testdata/language-features/module/import01.lc 3:5-3:10 String
diff --git a/testdata/language-features/module/import04.reject.out b/testdata/language-features/module/import04.reject.out
index 85752b47..da33fb8b 100644
--- a/testdata/language-features/module/import04.reject.out
+++ b/testdata/language-features/module/import04.reject.out
@@ -5,7 +5,7 @@ and at testdata/language-features/module/Hello01.lc:3:1:
5hello = "hello" 5hello = "hello"
6^^^^^ 6^^^^^
7------------ trace 7------------ trace
8hello :: 'String 8hello :: String
9!already defined hello at testdata/language-features/module/import04.reject.lc:4:1: 9!already defined hello at testdata/language-features/module/import04.reject.lc:4:1:
10hello = "hello" 10hello = "hello"
11^^^^^ 11^^^^^
diff --git a/testdata/language-features/module/import05.out b/testdata/language-features/module/import05.out
index 2d8e2a30..3ed4aafc 100644
--- a/testdata/language-features/module/import05.out
+++ b/testdata/language-features/module/import05.out
@@ -1,6 +1,6 @@
1main is not found 1main is not found
2------------ trace 2------------ trace
3x :: 'String 3x :: String
4------------ tooltips 4------------ tooltips
5testdata/language-features/module/import05.lc 3:6-3:12 Type 5testdata/language-features/module/import05.lc 3:6-3:12 Type
6testdata/language-features/module/import05.lc 4:1-4:2 String 6testdata/language-features/module/import05.lc 4:1-4:2 String
diff --git a/testdata/language-features/module/import06.out b/testdata/language-features/module/import06.out
index 7a77815a..b9ec1f0f 100644
--- a/testdata/language-features/module/import06.out
+++ b/testdata/language-features/module/import06.out
@@ -1,7 +1,7 @@
1main is not found 1main is not found
2------------ trace 2------------ trace
3hello :: () 3hello :: ()
4x :: 'String 4x :: String
5------------ tooltips 5------------ tooltips
6testdata/language-features/module/import06.lc 3:1-3:6 () 6testdata/language-features/module/import06.lc 3:1-3:6 ()
7testdata/language-features/module/import06.lc 3:9-3:11 () 7testdata/language-features/module/import06.lc 3:9-3:11 ()
diff --git a/testdata/language-features/module/import07.out b/testdata/language-features/module/import07.out
index 818bcafb..10ec3003 100644
--- a/testdata/language-features/module/import07.out
+++ b/testdata/language-features/module/import07.out
@@ -1,7 +1,7 @@
1main is not found 1main is not found
2------------ trace 2------------ trace
3hello :: () 3hello :: ()
4x :: 'String 4x :: String
5------------ tooltips 5------------ tooltips
6testdata/language-features/module/import07.lc 3:1-3:6 () 6testdata/language-features/module/import07.lc 3:1-3:6 ()
7testdata/language-features/module/import07.lc 3:9-3:11 () 7testdata/language-features/module/import07.lc 3:9-3:11 ()
diff --git a/testdata/language-features/module/import08.out b/testdata/language-features/module/import08.out
index 6d053bdf..ea29a899 100644
--- a/testdata/language-features/module/import08.out
+++ b/testdata/language-features/module/import08.out
@@ -1,9 +1,9 @@
1main is not found 1main is not found
2------------ trace 2------------ trace
3value :: () 3value :: ()
4g :: 'Char 4g :: Char
5h :: 'String 5h :: String
6w :: 'String 6w :: String
7------------ tooltips 7------------ tooltips
8testdata/language-features/module/import08.lc 3:1-3:6 () 8testdata/language-features/module/import08.lc 3:1-3:6 ()
9testdata/language-features/module/import08.lc 3:9-3:11 () 9testdata/language-features/module/import08.lc 3:9-3:11 ()
diff --git a/testdata/language-features/module/import12.out b/testdata/language-features/module/import12.out
index 6f4ea030..fb54d02c 100644
--- a/testdata/language-features/module/import12.out
+++ b/testdata/language-features/module/import12.out
@@ -1,6 +1,6 @@
1main is not found 1main is not found
2------------ trace 2------------ trace
3fun :: 'String 3fun :: String
4------------ tooltips 4------------ tooltips
5testdata/language-features/module/import12.lc 4:1-4:4 String 5testdata/language-features/module/import12.lc 4:1-4:4 String
6testdata/language-features/module/import12.lc 4:7-4:12 String 6testdata/language-features/module/import12.lc 4:7-4:12 String
diff --git a/testdata/language-features/module/import13.out b/testdata/language-features/module/import13.out
index bb815c78..9a46cd6d 100644
--- a/testdata/language-features/module/import13.out
+++ b/testdata/language-features/module/import13.out
@@ -1,6 +1,6 @@
1main is not found 1main is not found
2------------ trace 2------------ trace
3fun :: 'String 3fun :: String
4------------ tooltips 4------------ tooltips
5testdata/language-features/module/import13.lc 4:1-4:4 String 5testdata/language-features/module/import13.lc 4:1-4:4 String
6testdata/language-features/module/import13.lc 4:7-4:12 String 6testdata/language-features/module/import13.lc 4:7-4:12 String
diff --git a/testdata/language-features/module/import14.out b/testdata/language-features/module/import14.out
index cdfebd2b..114303dd 100644
--- a/testdata/language-features/module/import14.out
+++ b/testdata/language-features/module/import14.out
@@ -1,6 +1,6 @@
1main is not found 1main is not found
2------------ trace 2------------ trace
3fun :: 'String 3fun :: String
4------------ tooltips 4------------ tooltips
5testdata/language-features/module/import14.lc 4:1-4:4 String 5testdata/language-features/module/import14.lc 4:1-4:4 String
6testdata/language-features/module/import14.lc 4:7-4:12 String 6testdata/language-features/module/import14.lc 4:7-4:12 String
diff --git a/testdata/language-features/module/import15.out b/testdata/language-features/module/import15.out
index 5217f2c1..b4d11105 100644
--- a/testdata/language-features/module/import15.out
+++ b/testdata/language-features/module/import15.out
@@ -1,6 +1,6 @@
1main is not found 1main is not found
2------------ trace 2------------ trace
3fun :: 'String 3fun :: String
4------------ tooltips 4------------ tooltips
5testdata/language-features/module/import15.lc 3:1-3:4 String 5testdata/language-features/module/import15.lc 3:1-3:4 String
6testdata/language-features/module/import15.lc 3:7-3:12 String 6testdata/language-features/module/import15.lc 3:7-3:12 String
diff --git a/testdata/language-features/pattern/pattern01.out b/testdata/language-features/pattern/pattern01.out
index 2d8ea959..8e753e7d 100644
--- a/testdata/language-features/pattern/pattern01.out
+++ b/testdata/language-features/pattern/pattern01.out
@@ -1,9 +1,9 @@
1main is not found 1main is not found
2------------ trace 2------------ trace
3fun1 :: forall a . ('Eq a, 'Num a) => a -> 'Char 3fun1 :: forall a . (Eq a, Num a) => a -> Char
4fun2 :: 'String -> 'Char 4fun2 :: String -> Char
5fun3 :: 'Char -> 'Char 5fun3 :: Char -> Char
6fun4 :: () -> 'Char 6fun4 :: () -> Char
7------------ tooltips 7------------ tooltips
8testdata/language-features/pattern/pattern01.lc 1:1-1:5 forall a . (Eq a, Num a) => a -> Char 8testdata/language-features/pattern/pattern01.lc 1:1-1:5 forall a . (Eq a, Num a) => a -> Char
9testdata/language-features/pattern/pattern01.lc 1:10-1:13 Char 9testdata/language-features/pattern/pattern01.lc 1:10-1:13 Char
diff --git a/testdata/language-features/pattern/uncovered.out b/testdata/language-features/pattern/uncovered.out
index f51d2e84..2ff30ef1 100644
--- a/testdata/language-features/pattern/uncovered.out
+++ b/testdata/language-features/pattern/uncovered.out
@@ -1,6 +1,6 @@
1main is not found 1main is not found
2------------ trace 2------------ trace
3f :: forall a . 'Num a => 'Bool -> 'Bool -> 'Bool -> a 3f :: forall a . Num a => Bool -> Bool -> Bool -> a
4------------ tooltips 4------------ tooltips
5testdata/language-features/pattern/uncovered.lc 4:1-4:2 forall a . Num a => Bool -> Bool -> Bool -> a 5testdata/language-features/pattern/uncovered.lc 4:1-4:2 forall a . Num a => Bool -> Bool -> Bool -> a
6testdata/language-features/pattern/uncovered.lc 4:18-4:19 _b 6testdata/language-features/pattern/uncovered.lc 4:18-4:19 _b
diff --git a/testdata/language-features/pattern/unreachable.out b/testdata/language-features/pattern/unreachable.out
index 4a899374..6c6f0a82 100644
--- a/testdata/language-features/pattern/unreachable.out
+++ b/testdata/language-features/pattern/unreachable.out
@@ -1,6 +1,6 @@
1main is not found 1main is not found
2------------ trace 2------------ trace
3f :: forall a . a -> 'String 3f :: forall a . a -> String
4------------ tooltips 4------------ tooltips
5testdata/language-features/pattern/unreachable.lc 4:1-4:2 forall a . a -> String 5testdata/language-features/pattern/unreachable.lc 4:1-4:2 forall a . a -> String
6testdata/language-features/pattern/unreachable.lc 4:7-4:14 String 6testdata/language-features/pattern/unreachable.lc 4:7-4:14 String
diff --git a/testdata/language-features/recursion/simplerec01.out b/testdata/language-features/recursion/simplerec01.out
index 42a0f078..f3c0147f 100644
--- a/testdata/language-features/recursion/simplerec01.out
+++ b/testdata/language-features/recursion/simplerec01.out
@@ -1,6 +1,6 @@
1main is not found 1main is not found
2------------ trace 2------------ trace
3fun :: forall a . ('Num a, 'Eq a, 'Num a) => a -> 'Char 3fun :: forall a . (Num a, Eq a, Num a) => a -> Char
4------------ tooltips 4------------ tooltips
5testdata/language-features/recursion/simplerec01.lc 1:1-1:4 forall a . (Num a, Eq a, Num a) => a -> Char 5testdata/language-features/recursion/simplerec01.lc 1:1-1:4 forall a . (Num a, Eq a, Num a) => a -> Char
6testdata/language-features/recursion/simplerec01.lc 1:9-1:12 Char 6testdata/language-features/recursion/simplerec01.lc 1:9-1:12 Char
diff --git a/testdata/performance/Material.out b/testdata/performance/Material.out
index 958efb6f..d31c4191 100644
--- a/testdata/performance/Material.out
+++ b/testdata/performance/Material.out
@@ -1,161 +1,161 @@
1main is not found 1main is not found
2------------ trace 2------------ trace
3identityLight :: 'Float 3identityLight :: Float
4'Entity :: Type 4'Entity :: Type
5Entity :: 'Vec 4 'Float -> 'Vec 4 'Float -> 'Vec 3 'Float -> 'Vec 4 'Float -> 'Entity 5Entity :: Vec 4 Float -> Vec 4 Float -> Vec 3 Float -> Vec 4 Float -> Entity
6'EntityCase :: forall (a :: 'Entity -> Type) -> (forall (b :: 'Vec 4 'Float) (c :: 'Vec 4 'Float) (d :: 'Vec 3 'Float) (e :: 'Vec 4 'Float) -> a (Entity b c d e)) -> forall (f :: 'Entity) -> a f 6'EntityCase :: forall (a :: Entity -> Type) -> (forall (b :: Vec 4 Float) (c :: Vec 4 Float) (d :: Vec 3 Float) (e :: Vec 4 Float) -> a ('Entity b c d e)) -> forall (f :: Entity) -> a f
7match'Entity :: forall (a :: Type -> Type) -> a 'Entity -> forall b -> a b -> a b 7match'Entity :: forall (a :: Type -> Type) -> a Entity -> forall b -> a b -> a b
8eAmbientLight :: 'Entity -> 'VecS 'Float 4 8eAmbientLight :: Entity -> VecS Float 4
9eDirectedLight :: 'Entity -> 'VecS 'Float 4 9eDirectedLight :: Entity -> VecS Float 4
10eLightDir :: 'Entity -> 'VecS 'Float 3 10eLightDir :: Entity -> VecS Float 3
11eShaderRGBA :: 'Entity -> 'VecS 'Float 4 11eShaderRGBA :: Entity -> VecS Float 4
12'WaveType :: Type 12'WaveType :: Type
13WT_Sin :: 'WaveType 13WT_Sin :: WaveType
14WT_Triangle :: 'WaveType 14WT_Triangle :: WaveType
15WT_Square :: 'WaveType 15WT_Square :: WaveType
16WT_Sawtooth :: 'WaveType 16WT_Sawtooth :: WaveType
17WT_InverseSawtooth :: 'WaveType 17WT_InverseSawtooth :: WaveType
18WT_Noise :: 'WaveType 18WT_Noise :: WaveType
19'WaveTypeCase :: forall (a :: 'WaveType -> Type) -> a WT_Sin -> a WT_Triangle -> a WT_Square -> a WT_Sawtooth -> a WT_InverseSawtooth -> a WT_Noise -> forall (b :: 'WaveType) -> a b 19'WaveTypeCase :: forall (a :: WaveType -> Type) -> a 'WT_Sin -> a 'WT_Triangle -> a 'WT_Square -> a 'WT_Sawtooth -> a 'WT_InverseSawtooth -> a 'WT_Noise -> forall (b :: WaveType) -> a b
20match'WaveType :: forall (a :: Type -> Type) -> a 'WaveType -> forall b -> a b -> a b 20match'WaveType :: forall (a :: Type -> Type) -> a WaveType -> forall b -> a b -> a b
21'Wave :: Type 21'Wave :: Type
22Wave :: 'WaveType -> 'Float -> 'Float -> 'Float -> 'Float -> 'Wave 22Wave :: WaveType -> Float -> Float -> Float -> Float -> Wave
23'WaveCase :: forall (a :: 'Wave -> Type) -> (forall (b :: 'WaveType) (c :: 'Float) (d :: 'Float) (e :: 'Float) (f :: 'Float) -> a (Wave b c d e f)) -> forall (g :: 'Wave) -> a g 23'WaveCase :: forall (a :: Wave -> Type) -> (forall (b :: WaveType) (c :: Float) (d :: Float) (e :: Float) (f :: Float) -> a ('Wave b c d e f)) -> forall (g :: Wave) -> a g
24match'Wave :: forall (a :: Type -> Type) -> a 'Wave -> forall b -> a b -> a b 24match'Wave :: forall (a :: Type -> Type) -> a Wave -> forall b -> a b -> a b
25'Deform :: Type 25'Deform :: Type
26D_AutoSprite :: 'Deform 26D_AutoSprite :: Deform
27D_AutoSprite2 :: 'Deform 27D_AutoSprite2 :: Deform
28D_Bulge :: 'Float -> 'Float -> 'Float -> 'Deform 28D_Bulge :: Float -> Float -> Float -> Deform
29D_Move :: 'Vec 3 'Float -> 'Wave -> 'Deform 29D_Move :: Vec 3 Float -> Wave -> Deform
30D_Normal :: 'Float -> 'Float -> 'Deform 30D_Normal :: Float -> Float -> Deform
31D_ProjectionShadow :: 'Deform 31D_ProjectionShadow :: Deform
32D_Text0 :: 'Deform 32D_Text0 :: Deform
33D_Text1 :: 'Deform 33D_Text1 :: Deform
34D_Text2 :: 'Deform 34D_Text2 :: Deform
35D_Text3 :: 'Deform 35D_Text3 :: Deform
36D_Text4 :: 'Deform 36D_Text4 :: Deform
37D_Text5 :: 'Deform 37D_Text5 :: Deform
38D_Text6 :: 'Deform 38D_Text6 :: Deform
39D_Text7 :: 'Deform 39D_Text7 :: Deform
40D_Wave :: 'Float -> 'Wave -> 'Deform 40D_Wave :: Float -> Wave -> Deform
41'DeformCase :: forall (a :: 'Deform -> Type) -> a D_AutoSprite -> a D_AutoSprite2 -> (forall (b :: 'Float) (c :: 'Float) (d :: 'Float) -> a (D_Bulge b c d)) -> (forall (e :: 'Vec 3 'Float) (f :: 'Wave) -> a (D_Move e f)) -> (forall (g :: 'Float) (h :: 'Float) -> a (D_Normal g h)) -> a D_ProjectionShadow -> a D_Text0 -> a D_Text1 -> a D_Text2 -> a D_Text3 -> a D_Text4 -> a D_Text5 -> a D_Text6 -> a D_Text7 -> (forall (i :: 'Float) (j :: 'Wave) -> a (D_Wave i j)) -> forall (k :: 'Deform) -> a k 41'DeformCase :: forall (a :: Deform -> Type) -> a 'D_AutoSprite -> a 'D_AutoSprite2 -> (forall (b :: Float) (c :: Float) (d :: Float) -> a ('D_Bulge b c d)) -> (forall (e :: Vec 3 Float) (f :: Wave) -> a ('D_Move e f)) -> (forall (g :: Float) (h :: Float) -> a ('D_Normal g h)) -> a 'D_ProjectionShadow -> a 'D_Text0 -> a 'D_Text1 -> a 'D_Text2 -> a 'D_Text3 -> a 'D_Text4 -> a 'D_Text5 -> a 'D_Text6 -> a 'D_Text7 -> (forall (i :: Float) (j :: Wave) -> a ('D_Wave i j)) -> forall (k :: Deform) -> a k
42match'Deform :: forall (a :: Type -> Type) -> a 'Deform -> forall b -> a b -> a b 42match'Deform :: forall (a :: Type -> Type) -> a Deform -> forall b -> a b -> a b
43'CullType :: Type 43'CullType :: Type
44CT_FrontSided :: 'CullType 44CT_FrontSided :: CullType
45CT_BackSided :: 'CullType 45CT_BackSided :: CullType
46CT_TwoSided :: 'CullType 46CT_TwoSided :: CullType
47'CullTypeCase :: forall (a :: 'CullType -> Type) -> a CT_FrontSided -> a CT_BackSided -> a CT_TwoSided -> forall (b :: 'CullType) -> a b 47'CullTypeCase :: forall (a :: CullType -> Type) -> a 'CT_FrontSided -> a 'CT_BackSided -> a 'CT_TwoSided -> forall (b :: CullType) -> a b
48match'CullType :: forall (a :: Type -> Type) -> a 'CullType -> forall b -> a b -> a b 48match'CullType :: forall (a :: Type -> Type) -> a CullType -> forall b -> a b -> a b
49'Blending' :: Type 49'Blending' :: Type
50B_DstAlpha :: 'Blending' 50B_DstAlpha :: Blending'
51B_DstColor :: 'Blending' 51B_DstColor :: Blending'
52B_One :: 'Blending' 52B_One :: Blending'
53B_OneMinusDstAlpha :: 'Blending' 53B_OneMinusDstAlpha :: Blending'
54B_OneMinusDstColor :: 'Blending' 54B_OneMinusDstColor :: Blending'
55B_OneMinusSrcAlpha :: 'Blending' 55B_OneMinusSrcAlpha :: Blending'
56B_OneMinusSrcColor :: 'Blending' 56B_OneMinusSrcColor :: Blending'
57B_SrcAlpha :: 'Blending' 57B_SrcAlpha :: Blending'
58B_SrcAlphaSaturate :: 'Blending' 58B_SrcAlphaSaturate :: Blending'
59B_SrcColor :: 'Blending' 59B_SrcColor :: Blending'
60B_Zero :: 'Blending' 60B_Zero :: Blending'
61'Blending'Case :: forall (a :: 'Blending' -> Type) -> a B_DstAlpha -> a B_DstColor -> a B_One -> a B_OneMinusDstAlpha -> a B_OneMinusDstColor -> a B_OneMinusSrcAlpha -> a B_OneMinusSrcColor -> a B_SrcAlpha -> a B_SrcAlphaSaturate -> a B_SrcColor -> a B_Zero -> forall (b :: 'Blending') -> a b 61'Blending'Case :: forall (a :: Blending' -> Type) -> a 'B_DstAlpha -> a 'B_DstColor -> a 'B_One -> a 'B_OneMinusDstAlpha -> a 'B_OneMinusDstColor -> a 'B_OneMinusSrcAlpha -> a 'B_OneMinusSrcColor -> a 'B_SrcAlpha -> a 'B_SrcAlphaSaturate -> a 'B_SrcColor -> a 'B_Zero -> forall (b :: Blending') -> a b
62match'Blending' :: forall (a :: Type -> Type) -> a 'Blending' -> forall b -> a b -> a b 62match'Blending' :: forall (a :: Type -> Type) -> a Blending' -> forall b -> a b -> a b
63'RGBGen :: Type 63'RGBGen :: Type
64RGB_Wave :: 'Wave -> 'RGBGen 64RGB_Wave :: Wave -> RGBGen
65RGB_Const :: 'Float -> 'Float -> 'Float -> 'RGBGen 65RGB_Const :: Float -> Float -> Float -> RGBGen
66RGB_Identity :: 'RGBGen 66RGB_Identity :: RGBGen
67RGB_IdentityLighting :: 'RGBGen 67RGB_IdentityLighting :: RGBGen
68RGB_Entity :: 'RGBGen 68RGB_Entity :: RGBGen
69RGB_OneMinusEntity :: 'RGBGen 69RGB_OneMinusEntity :: RGBGen
70RGB_ExactVertex :: 'RGBGen 70RGB_ExactVertex :: RGBGen
71RGB_Vertex :: 'RGBGen 71RGB_Vertex :: RGBGen
72RGB_LightingDiffuse :: 'RGBGen 72RGB_LightingDiffuse :: RGBGen
73RGB_OneMinusVertex :: 'RGBGen 73RGB_OneMinusVertex :: RGBGen
74RGB_Undefined :: 'RGBGen 74RGB_Undefined :: RGBGen
75'RGBGenCase :: forall (a :: 'RGBGen -> Type) -> (forall (b :: 'Wave) -> a (RGB_Wave b)) -> (forall (c :: 'Float) (d :: 'Float) (e :: 'Float) -> a (RGB_Const c d e)) -> a RGB_Identity -> a RGB_IdentityLighting -> a RGB_Entity -> a RGB_OneMinusEntity -> a RGB_ExactVertex -> a RGB_Vertex -> a RGB_LightingDiffuse -> a RGB_OneMinusVertex -> a RGB_Undefined -> forall (f :: 'RGBGen) -> a f 75'RGBGenCase :: forall (a :: RGBGen -> Type) -> (forall (b :: Wave) -> a ('RGB_Wave b)) -> (forall (c :: Float) (d :: Float) (e :: Float) -> a ('RGB_Const c d e)) -> a 'RGB_Identity -> a 'RGB_IdentityLighting -> a 'RGB_Entity -> a 'RGB_OneMinusEntity -> a 'RGB_ExactVertex -> a 'RGB_Vertex -> a 'RGB_LightingDiffuse -> a 'RGB_OneMinusVertex -> a 'RGB_Undefined -> forall (f :: RGBGen) -> a f
76match'RGBGen :: forall (a :: Type -> Type) -> a 'RGBGen -> forall b -> a b -> a b 76match'RGBGen :: forall (a :: Type -> Type) -> a RGBGen -> forall b -> a b -> a b
77'AlphaGen :: Type 77'AlphaGen :: Type
78A_Wave :: 'Wave -> 'AlphaGen 78A_Wave :: Wave -> AlphaGen
79A_Const :: 'Float -> 'AlphaGen 79A_Const :: Float -> AlphaGen
80A_Portal :: 'AlphaGen 80A_Portal :: AlphaGen
81A_Identity :: 'AlphaGen 81A_Identity :: AlphaGen
82A_Entity :: 'AlphaGen 82A_Entity :: AlphaGen
83A_OneMinusEntity :: 'AlphaGen 83A_OneMinusEntity :: AlphaGen
84A_Vertex :: 'AlphaGen 84A_Vertex :: AlphaGen
85A_LightingSpecular :: 'AlphaGen 85A_LightingSpecular :: AlphaGen
86A_OneMinusVertex :: 'AlphaGen 86A_OneMinusVertex :: AlphaGen
87'AlphaGenCase :: forall (a :: 'AlphaGen -> Type) -> (forall (b :: 'Wave) -> a (A_Wave b)) -> (forall (c :: 'Float) -> a (A_Const c)) -> a A_Portal -> a A_Identity -> a A_Entity -> a A_OneMinusEntity -> a A_Vertex -> a A_LightingSpecular -> a A_OneMinusVertex -> forall (d :: 'AlphaGen) -> a d 87'AlphaGenCase :: forall (a :: AlphaGen -> Type) -> (forall (b :: Wave) -> a ('A_Wave b)) -> (forall (c :: Float) -> a ('A_Const c)) -> a 'A_Portal -> a 'A_Identity -> a 'A_Entity -> a 'A_OneMinusEntity -> a 'A_Vertex -> a 'A_LightingSpecular -> a 'A_OneMinusVertex -> forall (d :: AlphaGen) -> a d
88match'AlphaGen :: forall (a :: Type -> Type) -> a 'AlphaGen -> forall b -> a b -> a b 88match'AlphaGen :: forall (a :: Type -> Type) -> a AlphaGen -> forall b -> a b -> a b
89'TCGen :: Type 89'TCGen :: Type
90TG_Base :: 'TCGen 90TG_Base :: TCGen
91TG_Lightmap :: 'TCGen 91TG_Lightmap :: TCGen
92TG_Environment :: 'TCGen 92TG_Environment :: TCGen
93TG_Vector :: 'Vec 3 'Float -> 'Vec 3 'Float -> 'TCGen 93TG_Vector :: Vec 3 Float -> Vec 3 Float -> TCGen
94TG_Undefined :: 'TCGen 94TG_Undefined :: TCGen
95'TCGenCase :: forall (a :: 'TCGen -> Type) -> a TG_Base -> a TG_Lightmap -> a TG_Environment -> (forall (b :: 'Vec 3 'Float) (c :: 'Vec 3 'Float) -> a (TG_Vector b c)) -> a TG_Undefined -> forall (d :: 'TCGen) -> a d 95'TCGenCase :: forall (a :: TCGen -> Type) -> a 'TG_Base -> a 'TG_Lightmap -> a 'TG_Environment -> (forall (b :: Vec 3 Float) (c :: Vec 3 Float) -> a ('TG_Vector b c)) -> a 'TG_Undefined -> forall (d :: TCGen) -> a d
96match'TCGen :: forall (a :: Type -> Type) -> a 'TCGen -> forall b -> a b -> a b 96match'TCGen :: forall (a :: Type -> Type) -> a TCGen -> forall b -> a b -> a b
97'TCMod :: Type 97'TCMod :: Type
98TM_EntityTranslate :: 'TCMod 98TM_EntityTranslate :: TCMod
99TM_Rotate :: 'Float -> 'TCMod 99TM_Rotate :: Float -> TCMod
100TM_Scroll :: 'Float -> 'Float -> 'TCMod 100TM_Scroll :: Float -> Float -> TCMod
101TM_Scale :: 'Float -> 'Float -> 'TCMod 101TM_Scale :: Float -> Float -> TCMod
102TM_Stretch :: 'Wave -> 'TCMod 102TM_Stretch :: Wave -> TCMod
103TM_Transform :: 'Float -> 'Float -> 'Float -> 'Float -> 'Float -> 'Float -> 'TCMod 103TM_Transform :: Float -> Float -> Float -> Float -> Float -> Float -> TCMod
104TM_Turb :: 'Float -> 'Float -> 'Float -> 'Float -> 'TCMod 104TM_Turb :: Float -> Float -> Float -> Float -> TCMod
105'TCModCase :: forall (a :: 'TCMod -> Type) -> a TM_EntityTranslate -> (forall (b :: 'Float) -> a (TM_Rotate b)) -> (forall (c :: 'Float) (d :: 'Float) -> a (TM_Scroll c d)) -> (forall (e :: 'Float) (f :: 'Float) -> a (TM_Scale e f)) -> (forall (g :: 'Wave) -> a (TM_Stretch g)) -> (forall (h :: 'Float) (i :: 'Float) (j :: 'Float) (k :: 'Float) (l :: 'Float) (m :: 'Float) -> a (TM_Transform h i j k l m)) -> (forall (n :: 'Float) (o :: 'Float) (p :: 'Float) (q :: 'Float) -> a (TM_Turb n o p q)) -> forall (r :: 'TCMod) -> a r 105'TCModCase :: forall (a :: TCMod -> Type) -> a 'TM_EntityTranslate -> (forall (b :: Float) -> a ('TM_Rotate b)) -> (forall (c :: Float) (d :: Float) -> a ('TM_Scroll c d)) -> (forall (e :: Float) (f :: Float) -> a ('TM_Scale e f)) -> (forall (g :: Wave) -> a ('TM_Stretch g)) -> (forall (h :: Float) (i :: Float) (j :: Float) (k :: Float) (l :: Float) (m :: Float) -> a ('TM_Transform h i j k l m)) -> (forall (n :: Float) (o :: Float) (p :: Float) (q :: Float) -> a ('TM_Turb n o p q)) -> forall (r :: TCMod) -> a r
106match'TCMod :: forall (a :: Type -> Type) -> a 'TCMod -> forall b -> a b -> a b 106match'TCMod :: forall (a :: Type -> Type) -> a TCMod -> forall b -> a b -> a b
107'StageTexture :: Type 107'StageTexture :: Type
108ST_Map :: 'String -> 'StageTexture 108ST_Map :: String -> StageTexture
109ST_ClampMap :: 'String -> 'StageTexture 109ST_ClampMap :: String -> StageTexture
110ST_AnimMap :: 'Float -> 'List 'String -> 'StageTexture 110ST_AnimMap :: Float -> List String -> StageTexture
111ST_Lightmap :: 'StageTexture 111ST_Lightmap :: StageTexture
112ST_WhiteImage :: 'StageTexture 112ST_WhiteImage :: StageTexture
113'StageTextureCase :: forall (a :: 'StageTexture -> Type) -> (forall (b :: 'String) -> a (ST_Map b)) -> (forall (c :: 'String) -> a (ST_ClampMap c)) -> (forall (d :: 'Float) (e :: 'List 'String) -> a (ST_AnimMap d e)) -> a ST_Lightmap -> a ST_WhiteImage -> forall (f :: 'StageTexture) -> a f 113'StageTextureCase :: forall (a :: StageTexture -> Type) -> (forall (b :: String) -> a ('ST_Map b)) -> (forall (c :: String) -> a ('ST_ClampMap c)) -> (forall (d :: Float) (e :: List String) -> a ('ST_AnimMap d e)) -> a 'ST_Lightmap -> a 'ST_WhiteImage -> forall (f :: StageTexture) -> a f
114match'StageTexture :: forall (a :: Type -> Type) -> a 'StageTexture -> forall b -> a b -> a b 114match'StageTexture :: forall (a :: Type -> Type) -> a StageTexture -> forall b -> a b -> a b
115'AlphaFunction :: Type 115'AlphaFunction :: Type
116A_Gt0 :: 'AlphaFunction 116A_Gt0 :: AlphaFunction
117A_Lt128 :: 'AlphaFunction 117A_Lt128 :: AlphaFunction
118A_Ge128 :: 'AlphaFunction 118A_Ge128 :: AlphaFunction
119'AlphaFunctionCase :: forall (a :: 'AlphaFunction -> Type) -> a A_Gt0 -> a A_Lt128 -> a A_Ge128 -> forall (b :: 'AlphaFunction) -> a b 119'AlphaFunctionCase :: forall (a :: AlphaFunction -> Type) -> a 'A_Gt0 -> a 'A_Lt128 -> a 'A_Ge128 -> forall (b :: AlphaFunction) -> a b
120match'AlphaFunction :: forall (a :: Type -> Type) -> a 'AlphaFunction -> forall b -> a b -> a b 120match'AlphaFunction :: forall (a :: Type -> Type) -> a AlphaFunction -> forall b -> a b -> a b
121'DepthFunction :: Type 121'DepthFunction :: Type
122D_Equal :: 'DepthFunction 122D_Equal :: DepthFunction
123D_Lequal :: 'DepthFunction 123D_Lequal :: DepthFunction
124'DepthFunctionCase :: forall (a :: 'DepthFunction -> Type) -> a D_Equal -> a D_Lequal -> forall (b :: 'DepthFunction) -> a b 124'DepthFunctionCase :: forall (a :: DepthFunction -> Type) -> a 'D_Equal -> a 'D_Lequal -> forall (b :: DepthFunction) -> a b
125match'DepthFunction :: forall (a :: Type -> Type) -> a 'DepthFunction -> forall b -> a b -> a b 125match'DepthFunction :: forall (a :: Type -> Type) -> a DepthFunction -> forall b -> a b -> a b
126'StageAttrs :: Type 126'StageAttrs :: Type
127StageAttrs :: 'Maybe ('Blending', 'Blending') -> 'RGBGen -> 'AlphaGen -> 'TCGen -> 'List 'TCMod -> 'StageTexture -> 'Bool -> 'DepthFunction -> 'Maybe 'AlphaFunction -> 'Bool -> 'String -> 'StageAttrs 127StageAttrs :: Maybe (Blending', Blending') -> RGBGen -> AlphaGen -> TCGen -> List TCMod -> StageTexture -> Bool -> DepthFunction -> Maybe AlphaFunction -> Bool -> String -> StageAttrs
128'StageAttrsCase :: forall (a :: 'StageAttrs -> Type) -> (forall (b :: 'Maybe ('Blending', 'Blending')) (c :: 'RGBGen) (d :: 'AlphaGen) (e :: 'TCGen) (f :: 'List 'TCMod) (g :: 'StageTexture) (h :: 'Bool) (i :: 'DepthFunction) (j :: 'Maybe 'AlphaFunction) (k :: 'Bool) (l :: 'String) -> a (StageAttrs b c d e f g h i j k l)) -> forall (m :: 'StageAttrs) -> a m 128'StageAttrsCase :: forall (a :: StageAttrs -> Type) -> (forall (b :: Maybe (Blending', Blending')) (c :: RGBGen) (d :: AlphaGen) (e :: TCGen) (f :: List TCMod) (g :: StageTexture) (h :: Bool) (i :: DepthFunction) (j :: Maybe AlphaFunction) (k :: Bool) (l :: String) -> a ('StageAttrs b c d e f g h i j k l)) -> forall (m :: StageAttrs) -> a m
129match'StageAttrs :: forall (a :: Type -> Type) -> a 'StageAttrs -> forall b -> a b -> a b 129match'StageAttrs :: forall (a :: Type -> Type) -> a StageAttrs -> forall b -> a b -> a b
130saBlend :: 'StageAttrs -> 'Maybe ('Blending', 'Blending') 130saBlend :: StageAttrs -> Maybe (Blending', Blending')
131saRGBGen :: 'StageAttrs -> 'RGBGen 131saRGBGen :: StageAttrs -> RGBGen
132saAlphaGen :: 'StageAttrs -> 'AlphaGen 132saAlphaGen :: StageAttrs -> AlphaGen
133saTCGen :: 'StageAttrs -> 'TCGen 133saTCGen :: StageAttrs -> TCGen
134saTCMod :: 'StageAttrs -> 'List 'TCMod 134saTCMod :: StageAttrs -> List TCMod
135saTexture :: 'StageAttrs -> 'StageTexture 135saTexture :: StageAttrs -> StageTexture
136saDepthWrite :: 'StageAttrs -> 'Bool 136saDepthWrite :: StageAttrs -> Bool
137saDepthFunc :: 'StageAttrs -> 'DepthFunction 137saDepthFunc :: StageAttrs -> DepthFunction
138saAlphaFunc :: 'StageAttrs -> 'Maybe 'AlphaFunction 138saAlphaFunc :: StageAttrs -> Maybe AlphaFunction
139saDepthMaskExplicit :: 'StageAttrs -> 'Bool 139saDepthMaskExplicit :: StageAttrs -> Bool
140saTextureUniform :: 'StageAttrs -> 'String 140saTextureUniform :: StageAttrs -> String
141defaultStageAttrs :: 'StageAttrs 141defaultStageAttrs :: StageAttrs
142'CommonAttrs :: Type 142'CommonAttrs :: Type
143CommonAttrs :: () -> () -> 'Bool -> 'Float -> 'Bool -> 'Bool -> 'CullType -> 'List 'Deform -> 'Bool -> 'Bool -> 'List 'StageAttrs -> 'Bool -> 'CommonAttrs 143CommonAttrs :: () -> () -> Bool -> Float -> Bool -> Bool -> CullType -> List Deform -> Bool -> Bool -> List StageAttrs -> Bool -> CommonAttrs
144'CommonAttrsCase :: forall (a :: 'CommonAttrs -> Type) -> (forall (b :: ()) (c :: ()) (d :: 'Bool) (e :: 'Float) (f :: 'Bool) (g :: 'Bool) (h :: 'CullType) (i :: 'List 'Deform) (j :: 'Bool) (k :: 'Bool) (l :: 'List 'StageAttrs) (m :: 'Bool) -> a (CommonAttrs b c d e f g h i j k l m)) -> forall (n :: 'CommonAttrs) -> a n 144'CommonAttrsCase :: forall (a :: CommonAttrs -> Type) -> (forall (b :: ()) (c :: ()) (d :: Bool) (e :: Float) (f :: Bool) (g :: Bool) (h :: CullType) (i :: List Deform) (j :: Bool) (k :: Bool) (l :: List StageAttrs) (m :: Bool) -> a ('CommonAttrs b c d e f g h i j k l m)) -> forall (n :: CommonAttrs) -> a n
145match'CommonAttrs :: forall (a :: Type -> Type) -> a 'CommonAttrs -> forall b -> a b -> a b 145match'CommonAttrs :: forall (a :: Type -> Type) -> a CommonAttrs -> forall b -> a b -> a b
146caSkyParms :: 'CommonAttrs -> () 146caSkyParms :: CommonAttrs -> ()
147caFogParms :: 'CommonAttrs -> () 147caFogParms :: CommonAttrs -> ()
148caPortal :: 'CommonAttrs -> 'Bool 148caPortal :: CommonAttrs -> Bool
149caSort :: 'CommonAttrs -> 'Float 149caSort :: CommonAttrs -> Float
150caEntityMergable :: 'CommonAttrs -> 'Bool 150caEntityMergable :: CommonAttrs -> Bool
151caFogOnly :: 'CommonAttrs -> 'Bool 151caFogOnly :: CommonAttrs -> Bool
152caCull :: 'CommonAttrs -> 'CullType 152caCull :: CommonAttrs -> CullType
153caDeformVertexes :: 'CommonAttrs -> 'List 'Deform 153caDeformVertexes :: CommonAttrs -> List Deform
154caNoMipMaps :: 'CommonAttrs -> 'Bool 154caNoMipMaps :: CommonAttrs -> Bool
155caPolygonOffset :: 'CommonAttrs -> 'Bool 155caPolygonOffset :: CommonAttrs -> Bool
156caStages :: 'CommonAttrs -> 'List 'StageAttrs 156caStages :: CommonAttrs -> List StageAttrs
157caIsSky :: 'CommonAttrs -> 'Bool 157caIsSky :: CommonAttrs -> Bool
158defaultCommonAttrs :: 'CommonAttrs 158defaultCommonAttrs :: CommonAttrs
159------------ tooltips 159------------ tooltips
160testdata/performance/Material.lc 7:18-7:23 Type 160testdata/performance/Material.lc 7:18-7:23 Type
161testdata/performance/Material.lc 8:1-8:14 Float 161testdata/performance/Material.lc 8:1-8:14 Float
diff --git a/testdata/performance/SampleMaterial.out b/testdata/performance/SampleMaterial.out
index 7776af0c..3f722498 100644
--- a/testdata/performance/SampleMaterial.out
+++ b/testdata/performance/SampleMaterial.out
@@ -1,6 +1,6 @@
1main is not found 1main is not found
2------------ trace 2------------ trace
3sampleMaterial :: 'List ('String, 'CommonAttrs) 3sampleMaterial :: List (String, CommonAttrs)
4------------ tooltips 4------------ tooltips
5testdata/performance/SampleMaterial.lc 3:1-3:15 List (String, CommonAttrs) 5testdata/performance/SampleMaterial.lc 3:1-3:15 List (String, CommonAttrs)
6testdata/performance/SampleMaterial.lc 4:3-2183:4 List (String, CommonAttrs) 6testdata/performance/SampleMaterial.lc 4:3-2183:4 List (String, CommonAttrs)
diff --git a/testdata/record01.reject.out b/testdata/record01.reject.out
index b03f9397..ab3d7153 100644
--- a/testdata/record01.reject.out
+++ b/testdata/record01.reject.out
@@ -84,8 +84,8 @@ testdata/record01.reject.lc 7:17-7:20 Float
84testdata/record01.reject.lc 7:21-7:24 Float 84testdata/record01.reject.lc 7:21-7:24 Float
85testdata/record01.reject.lc 7:25-7:28 Float 85testdata/record01.reject.lc 7:25-7:28 Float
86testdata/record01.reject.lc 7:29-7:32 Float 86testdata/record01.reject.lc 7:29-7:32 Float
87testdata/record01.reject.lc 8:23-8:34 forall (a :: List Type) . 'sameLayerCounts a => HList a -> FrameBuffer (ImageLC ('head Type a)) ('map Type ImageKind GetImageKind a) 87testdata/record01.reject.lc 8:23-8:34 forall (a :: List Type) . sameLayerCounts a => HList a -> FrameBuffer (ImageLC (head Type a)) (map Type ImageKind GetImageKind a)
88testdata/record01.reject.lc 8:23-8:75 FrameBuffer 1 ('map Type ImageKind GetImageKind ('Cons (Image 1 'Depth) ('Cons (Image 1 ('Color (VecScalar 4 Float))) 'Nil))) 88testdata/record01.reject.lc 8:23-8:75 FrameBuffer 1 (map Type ImageKind GetImageKind ('Cons (Image 1 'Depth) ('Cons (Image 1 ('Color (VecScalar 4 Float))) 'Nil)))
89testdata/record01.reject.lc 8:35-8:75 (Image 1 'Depth, Image 1 ('Color (VecScalar 4 Float))) 89testdata/record01.reject.lc 8:35-8:75 (Image 1 'Depth, Image 1 ('Color (VecScalar 4 Float)))
90testdata/record01.reject.lc 8:36-8:47 Float -> Image 1 'Depth 90testdata/record01.reject.lc 8:36-8:47 Float -> Image 1 'Depth
91testdata/record01.reject.lc 8:36-8:54 Image 1 'Depth 91testdata/record01.reject.lc 8:36-8:54 Image 1 'Depth
@@ -170,8 +170,8 @@ testdata/record01.reject.lc 19:23-19:49 List (Primitive ((VecS Float 4)) _a) ->
170testdata/record01.reject.lc 19:23-19:62 List (Primitive (VecS Float 4, VecS Float 4) _a) 170testdata/record01.reject.lc 19:23-19:62 List (Primitive (VecS Float 4, VecS Float 4) _a)
171testdata/record01.reject.lc 19:37-19:49 ((VecS Float 4)) -> (VecS Float 4, VecS Float 4) 171testdata/record01.reject.lc 19:37-19:49 ((VecS Float 4)) -> (VecS Float 4, VecS Float 4)
172testdata/record01.reject.lc 19:50-19:62 forall (a :: PrimitiveType) . PrimitiveStream a ((Vec 4 Float)) 172testdata/record01.reject.lc 19:50-19:62 forall (a :: PrimitiveType) . PrimitiveStream a ((Vec 4 Float))
173testdata/record01.reject.lc 20:23-20:42 forall (a :: List Type) (b :: PrimitiveType) . RasterContext (HList ('Cons (Vec 4 Float) a)) b -> HList ('map Type Type Interpolated a) -> List (Primitive (HList ('Cons (Vec 4 Float) a)) b) -> List (Vector 1 (Maybe (SimpleFragment (HList a)))) 173testdata/record01.reject.lc 20:23-20:42 forall (a :: List Type) (b :: PrimitiveType) . RasterContext (HList ('Cons (Vec 4 Float) a)) b -> HList (map Type Type Interpolated a) -> List (Primitive (HList ('Cons (Vec 4 Float) a)) b) -> List (Vector 1 (Maybe (SimpleFragment (HList a))))
174testdata/record01.reject.lc 20:23-20:52 HList ('map Type Type Interpolated _a) -> List (Primitive (HList ('Cons (Vec 4 Float) _a)) 'Triangle) -> List (Vector 1 (Maybe (SimpleFragment (HList _a)))) 174testdata/record01.reject.lc 20:23-20:52 HList (map Type Type Interpolated _a) -> List (Primitive (HList ('Cons (Vec 4 Float) _a)) 'Triangle) -> List (Vector 1 (Maybe (SimpleFragment (HList _a))))
175testdata/record01.reject.lc 20:23-20:63 List (Primitive (HList ('Cons (Vec 4 Float) _d)) 'Triangle) -> List (Vector 1 (Maybe (SimpleFragment (HList _d)))) 175testdata/record01.reject.lc 20:23-20:63 List (Primitive (HList ('Cons (Vec 4 Float) _d)) 'Triangle) -> List (Vector 1 (Maybe (SimpleFragment (HList _d))))
176testdata/record01.reject.lc 20:23-20:79 List (Vector 1 (Maybe (SimpleFragment ((VecS Float 4))))) 176testdata/record01.reject.lc 20:23-20:79 List (Vector 1 (Maybe (SimpleFragment ((VecS Float 4)))))
177testdata/record01.reject.lc 20:43-20:52 forall a . RasterContext a 'Triangle 177testdata/record01.reject.lc 20:43-20:52 forall a . RasterContext a 'Triangle
@@ -202,30 +202,30 @@ testdata/record01.reject.lc 22:49-22:52 Float
202testdata/record01.reject.lc 22:53-22:56 Float 202testdata/record01.reject.lc 22:53-22:56 Float
203testdata/record01.reject.lc 22:57-22:60 Float 203testdata/record01.reject.lc 22:57-22:60 Float
204testdata/record01.reject.lc 22:61-22:64 Float 204testdata/record01.reject.lc 22:61-22:64 Float
205testdata/record01.reject.lc 23:23-23:33 forall (a :: Nat) (b :: List Type) c . HList b -> (c -> HList ('imageType' ('map Type ImageKind FragmentOperationKind b))) -> List (Vector a (Maybe (SimpleFragment c))) -> FrameBuffer a ('map Type ImageKind FragmentOperationKind b) -> FrameBuffer a ('map Type ImageKind FragmentOperationKind b) 205testdata/record01.reject.lc 23:23-23:33 forall (a :: Nat) (b :: List Type) c . HList b -> (c -> HList (imageType' (map Type ImageKind FragmentOperationKind b))) -> List (Vector a (Maybe (SimpleFragment c))) -> FrameBuffer a (map Type ImageKind FragmentOperationKind b) -> FrameBuffer a (map Type ImageKind FragmentOperationKind b)
206testdata/record01.reject.lc 23:23-23:45 (_a -> (('imageType (FragmentOperationKind (FragmentOperation ('Color (VecScalar 4 Float))))))) -> List (Vector _b (Maybe (SimpleFragment _a))) -> FrameBuffer _b ('map Type ImageKind FragmentOperationKind ('Cons (FragmentOperation 'Depth) ('Cons (FragmentOperation ('Color (VecScalar 4 Float))) 'Nil))) -> FrameBuffer _b ('map Type ImageKind FragmentOperationKind ('Cons (FragmentOperation 'Depth) ('Cons (FragmentOperation ('Color (VecScalar 4 Float))) 'Nil))) 206testdata/record01.reject.lc 23:23-23:45 (_a -> ((imageType (FragmentOperationKind (FragmentOperation ('Color (VecScalar 4 Float))))))) -> List (Vector _b (Maybe (SimpleFragment _a))) -> FrameBuffer _b (map Type ImageKind FragmentOperationKind ('Cons (FragmentOperation 'Depth) ('Cons (FragmentOperation ('Color (VecScalar 4 Float))) 'Nil))) -> FrameBuffer _b (map Type ImageKind FragmentOperationKind ('Cons (FragmentOperation 'Depth) ('Cons (FragmentOperation ('Color (VecScalar 4 Float))) 'Nil)))
207testdata/record01.reject.lc 23:23-23:60 List (Vector _a (Maybe (SimpleFragment ((VecS Float 4))))) -> FrameBuffer _a ('map Type ImageKind FragmentOperationKind ('Cons (FragmentOperation 'Depth) ('Cons (FragmentOperation ('Color (VecScalar 4 Float))) 'Nil))) -> FrameBuffer _a ('map Type ImageKind FragmentOperationKind ('Cons (FragmentOperation 'Depth) ('Cons (FragmentOperation ('Color (VecScalar 4 Float))) 'Nil))) 207testdata/record01.reject.lc 23:23-23:60 List (Vector _a (Maybe (SimpleFragment ((VecS Float 4))))) -> FrameBuffer _a (map Type ImageKind FragmentOperationKind ('Cons (FragmentOperation 'Depth) ('Cons (FragmentOperation ('Color (VecScalar 4 Float))) 'Nil))) -> FrameBuffer _a (map Type ImageKind FragmentOperationKind ('Cons (FragmentOperation 'Depth) ('Cons (FragmentOperation ('Color (VecScalar 4 Float))) 'Nil)))
208testdata/record01.reject.lc 23:23-23:75 FrameBuffer 1 ('map Type ImageKind FragmentOperationKind ('Cons (FragmentOperation 'Depth) ('Cons (FragmentOperation ('Color (VecScalar 4 Float))) 'Nil))) -> FrameBuffer 1 ('map Type ImageKind FragmentOperationKind ('Cons (FragmentOperation 'Depth) ('Cons (FragmentOperation ('Color (VecScalar 4 Float))) 'Nil))) 208testdata/record01.reject.lc 23:23-23:75 FrameBuffer 1 (map Type ImageKind FragmentOperationKind ('Cons (FragmentOperation 'Depth) ('Cons (FragmentOperation ('Color (VecScalar 4 Float))) 'Nil))) -> FrameBuffer 1 (map Type ImageKind FragmentOperationKind ('Cons (FragmentOperation 'Depth) ('Cons (FragmentOperation ('Color (VecScalar 4 Float))) 'Nil)))
209testdata/record01.reject.lc 23:23-23:83 FrameBuffer 1 ('map Type ImageKind FragmentOperationKind ('Cons (FragmentOperation 'Depth) ('Cons (FragmentOperation ('Color (VecScalar 4 Float))) 'Nil))) 209testdata/record01.reject.lc 23:23-23:83 FrameBuffer 1 (map Type ImageKind FragmentOperationKind ('Cons (FragmentOperation 'Depth) ('Cons (FragmentOperation ('Color (VecScalar 4 Float))) 'Nil)))
210testdata/record01.reject.lc 23:34-23:45 (FragmentOperation 'Depth, FragmentOperation ('Color (VecScalar 4 Float))) 210testdata/record01.reject.lc 23:34-23:45 (FragmentOperation 'Depth, FragmentOperation ('Color (VecScalar 4 Float)))
211testdata/record01.reject.lc 23:46-23:60 ((VecS Float 4)) -> ((VecS Float 4)) 211testdata/record01.reject.lc 23:46-23:60 ((VecS Float 4)) -> ((VecS Float 4))
212testdata/record01.reject.lc 23:61-23:75 List (Vector 1 (Maybe (SimpleFragment ((VecS Float 4))))) 212testdata/record01.reject.lc 23:61-23:75 List (Vector 1 (Maybe (SimpleFragment ((VecS Float 4)))))
213testdata/record01.reject.lc 23:76-23:83 FrameBuffer 1 ('map Type ImageKind GetImageKind ('Cons (Image 1 'Depth) ('Cons (Image 1 ('Color (VecScalar 4 Float))) 'Nil))) 213testdata/record01.reject.lc 23:76-23:83 FrameBuffer 1 (map Type ImageKind GetImageKind ('Cons (Image 1 'Depth) ('Cons (Image 1 ('Color (VecScalar 4 Float))) 'Nil)))
214testdata/record01.reject.lc 24:12-24:58 RecordC ('Cons ('RecItem "fieldA" Float) ('Cons ('RecItem "fieldB" (FrameBuffer 1 ('map Type ImageKind FragmentOperationKind ('Cons (FragmentOperation 'Depth) ('Cons (FragmentOperation ('Color (VecScalar 4 Float))) 'Nil))))) ('Cons ('RecItem "fieldC" ((BlendEquation, BlendEquation) -> Blending Float)) 'Nil))) 214testdata/record01.reject.lc 24:12-24:58 RecordC ('Cons ('RecItem "fieldA" Float) ('Cons ('RecItem "fieldB" (FrameBuffer 1 (map Type ImageKind FragmentOperationKind ('Cons (FragmentOperation 'Depth) ('Cons (FragmentOperation ('Color (VecScalar 4 Float))) 'Nil))))) ('Cons ('RecItem "fieldC" ((BlendEquation, BlendEquation) -> Blending Float)) 'Nil)))
215testdata/record01.reject.lc 24:13-24:19 RecItem | String 215testdata/record01.reject.lc 24:13-24:19 RecItem | String
216testdata/record01.reject.lc 24:13-24:47 List RecItem 216testdata/record01.reject.lc 24:13-24:47 List RecItem
217testdata/record01.reject.lc 24:21-24:24 Float 217testdata/record01.reject.lc 24:21-24:24 Float
218testdata/record01.reject.lc 24:21-24:57 (Float, 'recItemType ('RecItem "fieldB" (FrameBuffer 1 ('map Type ImageKind FragmentOperationKind ('Cons (FragmentOperation 'Depth) ('Cons (FragmentOperation ('Color (VecScalar 4 Float))) 'Nil))))), 'recItemType ('RecItem "fieldC" ((BlendEquation, BlendEquation) -> Blending Float))) 218testdata/record01.reject.lc 24:21-24:57 (Float, recItemType ('RecItem "fieldB" (FrameBuffer 1 (map Type ImageKind FragmentOperationKind ('Cons (FragmentOperation 'Depth) ('Cons (FragmentOperation ('Color (VecScalar 4 Float))) 'Nil))))), recItemType ('RecItem "fieldC" ((BlendEquation, BlendEquation) -> Blending Float)))
219testdata/record01.reject.lc 24:26-24:32 RecItem | String 219testdata/record01.reject.lc 24:26-24:32 RecItem | String
220testdata/record01.reject.lc 24:26-24:47 List RecItem 220testdata/record01.reject.lc 24:26-24:47 List RecItem
221testdata/record01.reject.lc 24:34-24:39 FrameBuffer 1 ('map Type ImageKind FragmentOperationKind ('Cons (FragmentOperation 'Depth) ('Cons (FragmentOperation ('Color (VecScalar 4 Float))) 'Nil))) 221testdata/record01.reject.lc 24:34-24:39 FrameBuffer 1 (map Type ImageKind FragmentOperationKind ('Cons (FragmentOperation 'Depth) ('Cons (FragmentOperation ('Color (VecScalar 4 Float))) 'Nil)))
222testdata/record01.reject.lc 24:34-24:57 (FrameBuffer 1 ('map Type ImageKind FragmentOperationKind ('Cons (FragmentOperation 'Depth) ('Cons (FragmentOperation ('Color (VecScalar 4 Float))) 'Nil))), 'recItemType ('RecItem "fieldC" ((BlendEquation, BlendEquation) -> Blending Float))) 222testdata/record01.reject.lc 24:34-24:57 (FrameBuffer 1 (map Type ImageKind FragmentOperationKind ('Cons (FragmentOperation 'Depth) ('Cons (FragmentOperation ('Color (VecScalar 4 Float))) 'Nil))), recItemType ('RecItem "fieldC" ((BlendEquation, BlendEquation) -> Blending Float)))
223testdata/record01.reject.lc 24:41-24:47 List RecItem | RecItem | String 223testdata/record01.reject.lc 24:41-24:47 List RecItem | RecItem | String
224testdata/record01.reject.lc 24:49-24:57 (((BlendEquation, BlendEquation) -> Blending Float)) | (BlendEquation, BlendEquation) -> Blending Float 224testdata/record01.reject.lc 24:49-24:57 (((BlendEquation, BlendEquation) -> Blending Float)) | (BlendEquation, BlendEquation) -> Blending Float
225testdata/record01.reject.lc 25:11-25:17 RecordC ('Cons ('RecItem "fieldA" Float) ('Cons ('RecItem "fieldB" (FrameBuffer 1 ('map Type ImageKind FragmentOperationKind ('Cons (FragmentOperation 'Depth) ('Cons (FragmentOperation ('Color (VecScalar 4 Float))) 'Nil))))) ('Cons ('RecItem "fieldC" ((BlendEquation, BlendEquation) -> Blending Float)) 'Nil))) 225testdata/record01.reject.lc 25:11-25:17 RecordC ('Cons ('RecItem "fieldA" Float) ('Cons ('RecItem "fieldB" (FrameBuffer 1 (map Type ImageKind FragmentOperationKind ('Cons (FragmentOperation 'Depth) ('Cons (FragmentOperation ('Color (VecScalar 4 Float))) 'Nil))))) ('Cons ('RecItem "fieldC" ((BlendEquation, BlendEquation) -> Blending Float)) 'Nil)))
226testdata/record01.reject.lc 25:11-25:24 _b 226testdata/record01.reject.lc 25:11-25:24 _b
227testdata/record01.reject.lc 25:18-25:24 String 227testdata/record01.reject.lc 25:18-25:24 String
228testdata/record01.reject.lc 26:5-26:14 forall (a :: Nat) (b :: List ImageKind) . FrameBuffer a b -> Output 228testdata/record01.reject.lc 26:5-26:14 forall (a :: Nat) (b :: List ImageKind) . FrameBuffer a b -> Output
229testdata/record01.reject.lc 26:15-26:21 RecordC ('Cons ('RecItem "fieldA" Float) ('Cons ('RecItem "fieldB" (FrameBuffer 1 ('map Type ImageKind FragmentOperationKind ('Cons (FragmentOperation 'Depth) ('Cons (FragmentOperation ('Color (VecScalar 4 Float))) 'Nil))))) ('Cons ('RecItem "fieldC" ((BlendEquation, BlendEquation) -> Blending Float)) 'Nil))) 229testdata/record01.reject.lc 26:15-26:21 RecordC ('Cons ('RecItem "fieldA" Float) ('Cons ('RecItem "fieldB" (FrameBuffer 1 (map Type ImageKind FragmentOperationKind ('Cons (FragmentOperation 'Depth) ('Cons (FragmentOperation ('Color (VecScalar 4 Float))) 'Nil))))) ('Cons ('RecItem "fieldC" ((BlendEquation, BlendEquation) -> Blending Float)) 'Nil)))
230testdata/record01.reject.lc 26:15-26:28 _b 230testdata/record01.reject.lc 26:15-26:28 _b
231testdata/record01.reject.lc 26:22-26:28 String 231testdata/record01.reject.lc 26:22-26:28 String
diff --git a/testdata/traceTest.out b/testdata/traceTest.out
index 6c7bea5a..ba76748f 100644
--- a/testdata/traceTest.out
+++ b/testdata/traceTest.out
@@ -2,9 +2,9 @@ main is not found
2------------ trace 2------------ trace
3id :: forall a . a -> a 3id :: forall a . a -> a
4'X :: forall a . a -> Type 4'X :: forall a . a -> Type
5'XCase :: forall a (b :: a) . forall (c :: 'X a b -> Type) (d :: 'X a b) -> c d 5'XCase :: forall a (b :: a) . forall (c :: X a b -> Type) (d :: X a b) -> c d
6match'X :: forall (a :: Type -> Type) -> (forall b . forall (c :: b) -> a ('X b c)) -> forall d -> a d -> a d 6match'X :: forall (a :: Type -> Type) -> (forall b . forall (c :: b) -> a (X b c)) -> forall d -> a d -> a d
7x :: 'X (Type -> Type -> Type) \a b -> (a, b) 7x :: X (Type -> Type -> Type) \(a :: Type) (b :: Type) -> (a, b)
8------------ tooltips 8------------ tooltips
9testdata/traceTest.lc 6:1-6:3 forall a . a -> a 9testdata/traceTest.lc 6:1-6:3 forall a . a -> a
10testdata/traceTest.lc 6:8-6:9 _b 10testdata/traceTest.lc 6:8-6:9 _b
@@ -17,5 +17,5 @@ testdata/traceTest.lc 10:17-10:24 Type
17testdata/traceTest.lc 10:19-10:20 _e 17testdata/traceTest.lc 10:19-10:20 _e
18testdata/traceTest.lc 10:19-10:23 List Type 18testdata/traceTest.lc 10:19-10:23 List Type
19testdata/traceTest.lc 10:22-10:23 List Type | _c 19testdata/traceTest.lc 10:22-10:23 List Type | _c
20testdata/traceTest.lc 11:1-11:2 X (Type -> Type -> Type) \a b -> (a, b) 20testdata/traceTest.lc 11:1-11:2 X (Type -> Type -> Type) \(a :: Type) (b :: Type) -> (a, b)
21testdata/traceTest.lc 11:5-11:14 forall a . a 21testdata/traceTest.lc 11:5-11:14 forall a . a
diff --git a/testdata/typeclass.out b/testdata/typeclass.out
index 1d5b48d0..3f5e3629 100644
--- a/testdata/typeclass.out
+++ b/testdata/typeclass.out
@@ -1,11 +1,11 @@
1main is not found 1main is not found
2------------ trace 2------------ trace
3not :: 'Bool -> 'Bool 3not :: Bool -> Bool
4&& :: 'Bool -> 'Bool -> 'Bool 4&& :: Bool -> Bool -> Bool
5|| :: 'Bool -> 'Bool -> 'Bool 5|| :: Bool -> Bool -> Bool
6'Eq :: Type -> Type 6'Eq :: Type -> Type
7== :: forall a . 'Eq a => a -> a -> 'Bool 7== :: forall a . Eq a => a -> a -> Bool
8/= :: forall a . 'Eq a => a -> a -> 'Bool 8/= :: forall a . Eq a => a -> a -> Bool
9------------ tooltips 9------------ tooltips
10testdata/typeclass.lc 8:1-8:4 Bool -> Bool 10testdata/typeclass.lc 8:1-8:4 Bool -> Bool
11testdata/typeclass.lc 8:12-8:17 Bool 11testdata/typeclass.lc 8:12-8:17 Bool
diff --git a/testdata/typesig.reject.out b/testdata/typesig.reject.out
index 63d24e57..909ee06d 100644
--- a/testdata/typesig.reject.out
+++ b/testdata/typesig.reject.out
@@ -1,12 +1,12 @@
1focus checkMetas: \a -> (\b -> primFix a b) \(a := Type) -> \c -> <<HERE>> 1focus checkMetas: \(a :: Type) -> (\(b :: Type) -> primFix a b) \(a := Type) -> \(c :: Type) -> <<HERE>>
2\(d :: Type ~ _a) (e :: _a ~ 'X) -> typeAnn _a (labend X) 2\(d :: Type ~ _a) (e :: _a ~ X) -> typeAnn _a (labend X)
3------------ trace 3------------ trace
4'X :: Type 4'X :: Type
5X :: 'X 5X :: X
6'XCase :: forall (a :: 'X -> Type) -> a X -> forall (b :: 'X) -> a b 6'XCase :: forall (a :: X -> Type) -> a 'X -> forall (b :: X) -> a b
7match'X :: forall (a :: Type -> Type) -> a 'X -> forall b -> a b -> a b 7match'X :: forall (a :: Type -> Type) -> a X -> forall b -> a b -> a b
8!focus checkMetas: \a -> (\b -> primFix a b) \(a := Type) -> \c -> <<HERE>> 8!focus checkMetas: \(a :: Type) -> (\(b :: Type) -> primFix a b) \(a := Type) -> \(c :: Type) -> <<HERE>>
9\(d :: Type ~ _a) (e :: _a ~ 'X) -> typeAnn _a (labend X) 9\(d :: Type ~ _a) (e :: _a ~ X) -> typeAnn _a (labend X)
10------------ tooltips 10------------ tooltips
11testdata/typesig.reject.lc 4:6-4:7 Type 11testdata/typesig.reject.lc 4:6-4:7 Type
12testdata/typesig.reject.lc 4:6-4:11 Type 12testdata/typesig.reject.lc 4:6-4:11 Type
diff --git a/testdata/typesigctx.reject.out b/testdata/typesigctx.reject.out
index 53748e22..c3055e27 100644
--- a/testdata/typesigctx.reject.out
+++ b/testdata/typesigctx.reject.out
@@ -2,11 +2,11 @@ type error: no instance of 'Show' on ???
2in Wildcard2 builtin 'Type 2in Wildcard2 builtin 'Type
3------------ trace 3------------ trace
4'X :: Type 4'X :: Type
5X :: 'X 5X :: X
6'XCase :: forall (a :: 'X -> Type) -> a X -> forall (b :: 'X) -> a b 6'XCase :: forall (a :: X -> Type) -> a 'X -> forall (b :: X) -> a b
7match'X :: forall (a :: Type -> Type) -> a 'X -> forall b -> a b -> a b 7match'X :: forall (a :: Type -> Type) -> a X -> forall b -> a b -> a b
8'Show' :: Type -> Type 8'Show' :: Type -> Type
9show' :: forall a . 'Show' a => a -> 'X 9show' :: forall a . Show' a => a -> X
10!type error: no instance of 'Show' on ??? 10!type error: no instance of 'Show' on ???
11in Wildcard2 builtin 'Type 11in Wildcard2 builtin 'Type
12------------ tooltips 12------------ tooltips
diff --git a/testdata/where.out b/testdata/where.out
index 2b62fedf..d106b8f0 100644
--- a/testdata/where.out
+++ b/testdata/where.out
@@ -1,6 +1,6 @@
1main is not found 1main is not found
2------------ trace 2------------ trace
3f :: 'Float 3f :: Float
4------------ tooltips 4------------ tooltips
5testdata/where.lc 3:1-3:2 Float 5testdata/where.lc 3:1-3:2 Float
6testdata/where.lc 3:5-3:6 Float 6testdata/where.lc 3:5-3:6 Float
diff --git a/testdata/zip01.out b/testdata/zip01.out
index eb0911c5..cd811cda 100644
--- a/testdata/zip01.out
+++ b/testdata/zip01.out
@@ -1,6 +1,6 @@
1main is not found 1main is not found
2------------ trace 2------------ trace
3zip2 :: forall a b . 'List a -> 'List b -> 'List (a, b) 3zip2 :: forall a b . List a -> List b -> List (a, b)
4------------ tooltips 4------------ tooltips
5testdata/zip01.lc 1:9-1:12 Type 5testdata/zip01.lc 1:9-1:12 Type
6testdata/zip01.lc 1:9-1:30 Type 6testdata/zip01.lc 1:9-1:30 Type