summaryrefslogtreecommitdiff
path: root/testdata
diff options
context:
space:
mode:
Diffstat (limited to 'testdata')
-rw-r--r--testdata/Builtins.out182
-rw-r--r--testdata/Internals.out70
-rw-r--r--testdata/Material.out60
-rw-r--r--testdata/Prelude.out26
-rw-r--r--testdata/adhoc.reject.out4
-rw-r--r--testdata/complex.out8
-rw-r--r--testdata/data.out16
-rw-r--r--testdata/empty.out4
-rw-r--r--testdata/language-features/adt/adt02.reject.out4
-rw-r--r--testdata/language-features/adt/gadt03.reject.out4
-rw-r--r--testdata/language-features/adt/gadt04.reject.out4
-rw-r--r--testdata/language-features/basic-values/data01.out12
-rw-r--r--testdata/language-features/basic-values/infix03.out4
-rw-r--r--testdata/performance/Material.out60
-rw-r--r--testdata/traceTest.out8
-rw-r--r--testdata/typesig.reject.out8
-rw-r--r--testdata/typesigctx.reject.out4
17 files changed, 239 insertions, 239 deletions
diff --git a/testdata/Builtins.out b/testdata/Builtins.out
index 31c370e3..9eff75a3 100644
--- a/testdata/Builtins.out
+++ b/testdata/Builtins.out
@@ -5,8 +5,8 @@ id :: forall a . a -> a
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 . (b :: (c :: 'Nat) -> 'VecS a c -> Type) -> ((d :: a) -> (e :: a) -> b 2 (V2 d e)) -> ((f :: a) -> (g :: a) -> (h :: a) -> b 3 (V3 f g h)) -> ((i :: a) -> (j :: a) -> (k :: a) -> (l :: a) -> b 4 (V4 i j k l)) -> forall (m :: 'Nat) . (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 :: (a :: Type -> Type) -> ((b :: Type) -> (c :: 'Nat) -> a ('VecS b c)) -> (d :: Type) -> 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
@@ -20,8 +20,8 @@ M43F :: 'Vec 4 'Float -> 'Vec [32
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 :: (a :: (b :: 'Nat) -> (c :: 'Nat) -> (d :: Type) -> 'Mat b c d -> Type) -> ((e :: 'Vec 2 'Float) -> (f :: 'Vec 2 'Float) -> a 2 2 'Float (M22F e f)) -> ((g :: 'Vec 3 'Float) -> (h :: 'Vec 3 'Float) -> a 3 2 'Float (M32F g h)) -> ((i :: 'Vec 4 'Float) -> (j :: 'Vec 4 'Float) -> a 4 2 'Float (M42F i j)) -> ((k :: 'Vec 2 'Float) -> (l :: 'Vec 2 'Float) -> (m :: 'Vec 2 'Float) -> a 2 3 'Float (M23F k l m)) -> ((n :: 'Vec 3 'Float) -> (o :: 'Vec 3 'Float) -> (p :: 'Vec 3 'Float) -> a 3 3 'Float (M33F n o p)) -> ((q :: 'Vec 4 'Float) -> (r :: 'Vec 4 'Float) -> (s :: 'Vec 4 'Float) -> a 4 3 'Float (M43F q r s)) -> ((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)) -> ((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')) -> ((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' . (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 :: (a :: Type -> Type) -> ((b :: 'Nat) -> (c :: 'Nat) -> (d :: Type) -> a ('Mat b c d)) -> (e :: Type) -> 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
@@ -147,25 +147,25 @@ len :: 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 . (b :: 'Maybe a -> Type) -> b Nothing -> ((c :: a) -> b (Just c)) -> (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 :: (a :: Type -> Type) -> ((b :: Type) -> a ('Maybe b)) -> (c :: Type) -> 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 . (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 :: (a :: Type -> Type) -> ((b :: 'Nat) -> (c :: Type) -> a ('Vector b c)) -> (d :: Type) -> 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 :: (a :: 'PrimitiveType -> Type) -> a Triangle -> a Line -> a Point -> a TriangleAdjacency -> a LineAdjacency -> (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 :: (a :: Type -> Type) -> a 'PrimitiveType -> (b :: Type) -> 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 . (b :: (c :: 'PrimitiveType) -> 'Primitive a c -> Type) -> ((d :: a) -> b Point (PrimPoint d)) -> ((e :: a) -> (f :: a) -> b Line (PrimLine e f)) -> ((g :: a) -> (h :: a) -> (i :: a) -> b Triangle (PrimTriangle g h i)) -> forall (j :: 'PrimitiveType) . (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 :: (a :: Type -> Type) -> ((b :: Type) -> (c :: 'PrimitiveType) -> a ('Primitive b c)) -> (d :: Type) -> 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)
@@ -173,11 +173,11 @@ mapPrimitives :: forall a b (c :: 'PrimitiveType) . (a -> 
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 -> (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 . (b :: 'SimpleFragment a -> Type) -> ((c :: 'Vec 3 'Float) -> (d :: a) -> b (SimpleFragment c d)) -> (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 :: (a :: Type -> Type) -> ((b :: Type) -> a ('SimpleFragment b)) -> (c :: Type) -> 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
@@ -192,12 +192,12 @@ mapFragments :: forall a b (c :: 'Nat) . (a -> b) -
192Color :: Type -> 'ImageKind 192Color :: Type -> 'ImageKind
193Depth :: 'ImageKind 193Depth :: 'ImageKind
194Stencil :: 'ImageKind 194Stencil :: 'ImageKind
195'ImageKindCase :: (a :: 'ImageKind -> Type) -> ((b :: Type) -> a (Color b)) -> a Depth -> a Stencil -> (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 :: (a :: Type -> Type) -> a 'ImageKind -> (b :: Type) -> 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) . (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 :: (a :: Type -> Type) -> ((b :: 'Nat) -> (c :: 'ImageKind) -> a ('Image b c)) -> (d :: Type) -> 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
@@ -208,8 +208,8 @@ Sx :: 'Swizz
208Sy :: 'Swizz 208Sy :: 'Swizz
209Sz :: 'Swizz 209Sz :: 'Swizz
210Sw :: 'Swizz 210Sw :: 'Swizz
211'SwizzCase :: (a :: 'Swizz -> Type) -> a Sx -> a Sy -> a Sz -> a Sw -> (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 :: (a :: Type -> Type) -> a 'Swizz -> (b :: Type) -> 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
@@ -229,16 +229,16 @@ OneMinusConstantColor :: 'BlendingFactor
229ConstantAlpha :: 'BlendingFactor 229ConstantAlpha :: 'BlendingFactor
230OneMinusConstantAlpha :: 'BlendingFactor 230OneMinusConstantAlpha :: 'BlendingFactor
231SrcAlphaSaturate :: 'BlendingFactor 231SrcAlphaSaturate :: 'BlendingFactor
232'BlendingFactorCase :: (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 -> (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 :: (a :: Type -> Type) -> a 'BlendingFactor -> (b :: Type) -> 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 :: (a :: 'BlendEquation -> Type) -> a FuncAdd -> a FuncSubtract -> a FuncReverseSubtract -> a Min -> a Max -> (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 :: (a :: Type -> Type) -> a 'BlendEquation -> (b :: Type) -> 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
@@ -256,8 +256,8 @@ CopyInverted :: 'LogicOperation
256OrInverted :: 'LogicOperation 256OrInverted :: 'LogicOperation
257Nand :: 'LogicOperation 257Nand :: 'LogicOperation
258Set :: 'LogicOperation 258Set :: 'LogicOperation
259'LogicOperationCase :: (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 -> (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 :: (a :: Type -> Type) -> a 'LogicOperation -> (b :: Type) -> 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
@@ -267,8 +267,8 @@ OpIncrWrap :: 'StencilOperation
267OpDecr :: 'StencilOperation 267OpDecr :: 'StencilOperation
268OpDecrWrap :: 'StencilOperation 268OpDecrWrap :: 'StencilOperation
269OpInvert :: 'StencilOperation 269OpInvert :: 'StencilOperation
270'StencilOperationCase :: (a :: 'StencilOperation -> Type) -> a OpZero -> a OpKeep -> a OpReplace -> a OpIncr -> a OpIncrWrap -> a OpDecr -> a OpDecrWrap -> a OpInvert -> (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 :: (a :: Type -> Type) -> a 'StencilOperation -> (b :: Type) -> 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
@@ -278,80 +278,80 @@ Greater :: 'ComparisonFunction
278Notequal :: 'ComparisonFunction 278Notequal :: 'ComparisonFunction
279Gequal :: 'ComparisonFunction 279Gequal :: 'ComparisonFunction
280Always :: 'ComparisonFunction 280Always :: 'ComparisonFunction
281'ComparisonFunctionCase :: (a :: 'ComparisonFunction -> Type) -> a Never -> a Less -> a Equal -> a Lequal -> a Greater -> a Notequal -> a Gequal -> a Always -> (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 :: (a :: Type -> Type) -> a 'ComparisonFunction -> (b :: Type) -> 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 :: (a :: 'ProvokingVertex -> Type) -> a LastVertex -> a FirstVertex -> (b :: 'ProvokingVertex) -> a b 286'ProvokingVertexCase :: forall (a :: 'ProvokingVertex -> Type) -> a LastVertex -> a FirstVertex -> forall (b :: 'ProvokingVertex) -> a b
287match'ProvokingVertex :: (a :: Type -> Type) -> a 'ProvokingVertex -> (b :: Type) -> 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 :: (a :: 'CullMode -> Type) -> a CullFront -> a CullBack -> a CullNone -> (b :: 'CullMode) -> a b 292'CullModeCase :: forall (a :: 'CullMode -> Type) -> a CullFront -> a CullBack -> a CullNone -> forall (b :: 'CullMode) -> a b
293match'CullMode :: (a :: Type -> Type) -> a 'CullMode -> (b :: Type) -> 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 . (b :: 'PointSize a -> Type) -> ((c :: 'Float) -> b (PointSize c)) -> ((d :: a -> 'Float) -> b (ProgramPointSize d)) -> (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 :: (a :: Type -> Type) -> ((b :: Type) -> a ('PointSize b)) -> (c :: Type) -> 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 . (b :: 'PolygonMode a -> Type) -> b PolygonFill -> ((c :: 'PointSize a) -> b (PolygonPoint c)) -> ((d :: 'Float) -> b (PolygonLine d)) -> (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 :: (a :: Type -> Type) -> ((b :: Type) -> a ('PolygonMode b)) -> (c :: Type) -> 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 :: (a :: 'PolygonOffset -> Type) -> a NoOffset -> ((b :: 'Float) -> (c :: 'Float) -> a (Offset b c)) -> (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 :: (a :: Type -> Type) -> a 'PolygonOffset -> (b :: Type) -> 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 :: (a :: 'PointSpriteCoordOrigin -> Type) -> a LowerLeft -> a UpperLeft -> (b :: 'PointSpriteCoordOrigin) -> a b 313'PointSpriteCoordOriginCase :: forall (a :: 'PointSpriteCoordOrigin -> Type) -> a LowerLeft -> a UpperLeft -> forall (b :: 'PointSpriteCoordOrigin) -> a b
314match'PointSpriteCoordOrigin :: (a :: Type -> Type) -> a 'PointSpriteCoordOrigin -> (b :: Type) -> 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 . (b :: (c :: 'PrimitiveType) -> 'RasterContext a c -> Type) -> ((d :: 'CullMode) -> (e :: 'PolygonMode a) -> (f :: 'PolygonOffset) -> (g :: 'ProvokingVertex) -> b Triangle (TriangleCtx d e f g)) -> ((h :: 'PointSize a) -> (i :: 'Float) -> (j :: 'PointSpriteCoordOrigin) -> b Point (PointCtx h i j)) -> ((k :: 'Float) -> (l :: 'ProvokingVertex) -> b Line (LineCtx k l)) -> forall (m :: 'PrimitiveType) . (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 :: (a :: Type -> Type) -> ((b :: Type) -> (c :: 'PrimitiveType) -> a ('RasterContext b c)) -> (d :: Type) -> 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 :: (a :: (b :: Type) -> 'Blending b -> Type) -> (forall c . a c (NoBlending c)) -> (forall d (e :: 'Integral d) . (f :: 'LogicOperation) -> a d (BlendLogicOp d e f)) -> ((g :: ('BlendEquation, 'BlendEquation)) -> (h :: (('BlendingFactor, 'BlendingFactor), ('BlendingFactor, 'BlendingFactor))) -> (i :: 'Vec 4 'Float) -> a 'Float (Blend g h i)) -> forall j . (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 :: (a :: Type -> Type) -> ((b :: Type) -> a ('Blending b)) -> (c :: Type) -> 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 :: (a :: 'StencilTests -> Type) -> (b :: 'StencilTests) -> a b 330'StencilTestsCase :: forall (a :: 'StencilTests -> Type) (b :: 'StencilTests) -> a b
331match'StencilTests :: (a :: Type -> Type) -> a 'StencilTests -> (b :: Type) -> 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 :: (a :: 'StencilOps -> Type) -> (b :: 'StencilOps) -> a b 333'StencilOpsCase :: forall (a :: 'StencilOps -> Type) (b :: 'StencilOps) -> a b
334match'StencilOps :: (a :: Type -> Type) -> a 'StencilOps -> (b :: Type) -> 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 :: (a :: (b :: 'ImageKind) -> 'FragmentOperation b -> Type) -> (forall c (d :: 'Nat) (e :: 'Num c) . (f :: 'Blending c) -> (g :: 'VecScalar d 'Bool) -> a (Color ('VecScalar d c)) (ColorOp c d e f g)) -> ((h :: 'ComparisonFunction) -> (i :: 'Bool) -> a Depth (DepthOp h i)) -> ((j :: 'StencilTests) -> (k :: 'StencilOps) -> (l :: 'StencilOps) -> a Stencil (StencilOp j k l)) -> forall (m :: 'ImageKind) . (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 :: (a :: Type -> Type) -> ((b :: 'ImageKind) -> a ('FragmentOperation b)) -> (c :: Type) -> 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 . (b :: 'Interpolated a -> Type) -> (forall (c :: 'Floating a) . b (Smooth c)) -> (forall (d :: 'Floating a) . b (NoPerspective d)) -> b Flat -> (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 :: (a :: Type -> Type) -> ((b :: Type) -> a ('Interpolated b)) -> (c :: Type) -> 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) . (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 :: (a :: Type -> Type) -> ((b :: 'Nat) -> (c :: 'List 'ImageKind) -> a ('FrameBuffer b c)) -> (d :: Type) -> 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
@@ -365,29 +365,29 @@ PrjImage :: forall (a :: 'ImageKind) . 'FrameBuffer 1 (Cons a N
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 :: (a :: 'Output -> Type) -> (forall (b :: 'Nat) (c :: 'List 'ImageKind) . (d :: 'FrameBuffer b c) -> a (ScreenOut b c d)) -> (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 :: (a :: Type -> Type) -> a 'Output -> (b :: Type) -> 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 :: (a :: 'Texture -> Type) -> ((b :: 'String) -> a (Texture2DSlot b)) -> ((c :: 'Vec 2 'Int) -> (d :: 'Image 1 (Color ('Vec 4 'Float))) -> a (Texture2D c d)) -> (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 :: (a :: Type -> Type) -> a 'Texture -> (b :: Type) -> 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 :: (a :: 'Filter -> Type) -> a PointFilter -> a LinearFilter -> (b :: 'Filter) -> a b 379'FilterCase :: forall (a :: 'Filter -> Type) -> a PointFilter -> a LinearFilter -> forall (b :: 'Filter) -> a b
380match'Filter :: (a :: Type -> Type) -> a 'Filter -> (b :: Type) -> 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 :: (a :: 'EdgeMode -> Type) -> a Repeat -> a MirroredRepeat -> a ClampToEdge -> (b :: 'EdgeMode) -> a b 385'EdgeModeCase :: forall (a :: 'EdgeMode -> Type) -> a Repeat -> a MirroredRepeat -> a ClampToEdge -> forall (b :: 'EdgeMode) -> a b
386match'EdgeMode :: (a :: Type -> Type) -> a 'EdgeMode -> (b :: Type) -> 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 :: (a :: 'Sampler -> Type) -> ((b :: 'Filter) -> (c :: 'EdgeMode) -> (d :: 'Texture) -> a (Sampler b c d)) -> (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 :: (a :: Type -> Type) -> a 'Sampler -> (b :: Type) -> 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
@@ -540,7 +540,7 @@ testdata/Builtins.lc 33:41-33:46 Nat -> Type -> Type
540testdata/Builtins.lc 33:41-33:48 Type -> Type 540testdata/Builtins.lc 33:41-33:48 Type -> Type
541testdata/Builtins.lc 33:41-33:54 Type 541testdata/Builtins.lc 33:41-33:54 Type
542testdata/Builtins.lc 33:45-33:46 _b 542testdata/Builtins.lc 33:45-33:46 _b
543testdata/Builtins.lc 33:45-33:48 (a :: Type) -> Mat 2 2 a -> Type 543testdata/Builtins.lc 33:45-33:48 forall a -> Mat 2 2 a -> Type
544testdata/Builtins.lc 33:45-33:54 Mat 2 2 Float -> Type 544testdata/Builtins.lc 33:45-33:54 Mat 2 2 Float -> Type
545testdata/Builtins.lc 33:47-33:48 _b 545testdata/Builtins.lc 33:47-33:48 _b
546testdata/Builtins.lc 33:49-33:54 Type 546testdata/Builtins.lc 33:49-33:54 Type
@@ -562,7 +562,7 @@ testdata/Builtins.lc 34:41-34:46 Nat -> Type -> Type
562testdata/Builtins.lc 34:41-34:48 Type -> Type 562testdata/Builtins.lc 34:41-34:48 Type -> Type
563testdata/Builtins.lc 34:41-34:54 Type 563testdata/Builtins.lc 34:41-34:54 Type
564testdata/Builtins.lc 34:45-34:46 _b 564testdata/Builtins.lc 34:45-34:46 _b
565testdata/Builtins.lc 34:45-34:48 (a :: Type) -> Mat 3 2 a -> Type 565testdata/Builtins.lc 34:45-34:48 forall a -> Mat 3 2 a -> Type
566testdata/Builtins.lc 34:45-34:54 Mat 3 2 Float -> Type 566testdata/Builtins.lc 34:45-34:54 Mat 3 2 Float -> Type
567testdata/Builtins.lc 34:47-34:48 _b 567testdata/Builtins.lc 34:47-34:48 _b
568testdata/Builtins.lc 34:49-34:54 Type 568testdata/Builtins.lc 34:49-34:54 Type
@@ -584,7 +584,7 @@ testdata/Builtins.lc 35:41-35:46 Nat -> Type -> Type
584testdata/Builtins.lc 35:41-35:48 Type -> Type 584testdata/Builtins.lc 35:41-35:48 Type -> Type
585testdata/Builtins.lc 35:41-35:54 Type 585testdata/Builtins.lc 35:41-35:54 Type
586testdata/Builtins.lc 35:45-35:46 _b 586testdata/Builtins.lc 35:45-35:46 _b
587testdata/Builtins.lc 35:45-35:48 (a :: Type) -> Mat 4 2 a -> Type 587testdata/Builtins.lc 35:45-35:48 forall a -> Mat 4 2 a -> Type
588testdata/Builtins.lc 35:45-35:54 Mat 4 2 Float -> Type 588testdata/Builtins.lc 35:45-35:54 Mat 4 2 Float -> Type
589testdata/Builtins.lc 35:47-35:48 _b 589testdata/Builtins.lc 35:47-35:48 _b
590testdata/Builtins.lc 35:49-35:54 Type 590testdata/Builtins.lc 35:49-35:54 Type
@@ -612,7 +612,7 @@ testdata/Builtins.lc 36:56-36:61 Nat -> Type -> Type
612testdata/Builtins.lc 36:56-36:63 Type -> Type 612testdata/Builtins.lc 36:56-36:63 Type -> Type
613testdata/Builtins.lc 36:56-36:69 Type 613testdata/Builtins.lc 36:56-36:69 Type
614testdata/Builtins.lc 36:60-36:61 _b 614testdata/Builtins.lc 36:60-36:61 _b
615testdata/Builtins.lc 36:60-36:63 (a :: Type) -> Mat 2 3 a -> Type 615testdata/Builtins.lc 36:60-36:63 forall a -> Mat 2 3 a -> Type
616testdata/Builtins.lc 36:60-36:69 Mat 2 3 Float -> Type 616testdata/Builtins.lc 36:60-36:69 Mat 2 3 Float -> Type
617testdata/Builtins.lc 36:62-36:63 _b 617testdata/Builtins.lc 36:62-36:63 _b
618testdata/Builtins.lc 36:64-36:69 Type 618testdata/Builtins.lc 36:64-36:69 Type
@@ -640,7 +640,7 @@ testdata/Builtins.lc 37:56-37:61 Nat -> Type -> Type
640testdata/Builtins.lc 37:56-37:63 Type -> Type 640testdata/Builtins.lc 37:56-37:63 Type -> Type
641testdata/Builtins.lc 37:56-37:69 Type 641testdata/Builtins.lc 37:56-37:69 Type
642testdata/Builtins.lc 37:60-37:61 _b 642testdata/Builtins.lc 37:60-37:61 _b
643testdata/Builtins.lc 37:60-37:63 (a :: Type) -> Mat 3 3 a -> Type 643testdata/Builtins.lc 37:60-37:63 forall a -> Mat 3 3 a -> Type
644testdata/Builtins.lc 37:60-37:69 Mat 3 3 Float -> Type 644testdata/Builtins.lc 37:60-37:69 Mat 3 3 Float -> Type
645testdata/Builtins.lc 37:62-37:63 _b 645testdata/Builtins.lc 37:62-37:63 _b
646testdata/Builtins.lc 37:64-37:69 Type 646testdata/Builtins.lc 37:64-37:69 Type
@@ -668,7 +668,7 @@ testdata/Builtins.lc 38:56-38:61 Nat -> Type -> Type
668testdata/Builtins.lc 38:56-38:63 Type -> Type 668testdata/Builtins.lc 38:56-38:63 Type -> Type
669testdata/Builtins.lc 38:56-38:69 Type 669testdata/Builtins.lc 38:56-38:69 Type
670testdata/Builtins.lc 38:60-38:61 _b 670testdata/Builtins.lc 38:60-38:61 _b
671testdata/Builtins.lc 38:60-38:63 (a :: Type) -> Mat 4 3 a -> Type 671testdata/Builtins.lc 38:60-38:63 forall a -> Mat 4 3 a -> Type
672testdata/Builtins.lc 38:60-38:69 Mat 4 3 Float -> Type 672testdata/Builtins.lc 38:60-38:69 Mat 4 3 Float -> Type
673testdata/Builtins.lc 38:62-38:63 _b 673testdata/Builtins.lc 38:62-38:63 _b
674testdata/Builtins.lc 38:64-38:69 Type 674testdata/Builtins.lc 38:64-38:69 Type
@@ -702,7 +702,7 @@ testdata/Builtins.lc 39:71-39:76 Nat -> Type -> Type
702testdata/Builtins.lc 39:71-39:78 Type -> Type 702testdata/Builtins.lc 39:71-39:78 Type -> Type
703testdata/Builtins.lc 39:71-39:84 Type 703testdata/Builtins.lc 39:71-39:84 Type
704testdata/Builtins.lc 39:75-39:76 _b 704testdata/Builtins.lc 39:75-39:76 _b
705testdata/Builtins.lc 39:75-39:78 (a :: Type) -> Mat 2 4 a -> Type 705testdata/Builtins.lc 39:75-39:78 forall a -> Mat 2 4 a -> Type
706testdata/Builtins.lc 39:75-39:84 Mat 2 4 Float -> Type 706testdata/Builtins.lc 39:75-39:84 Mat 2 4 Float -> Type
707testdata/Builtins.lc 39:77-39:78 _b 707testdata/Builtins.lc 39:77-39:78 _b
708testdata/Builtins.lc 39:79-39:84 Type 708testdata/Builtins.lc 39:79-39:84 Type
@@ -736,7 +736,7 @@ testdata/Builtins.lc 40:71-40:76 Nat -> Type -> Type
736testdata/Builtins.lc 40:71-40:78 Type -> Type 736testdata/Builtins.lc 40:71-40:78 Type -> Type
737testdata/Builtins.lc 40:71-40:84 Type 737testdata/Builtins.lc 40:71-40:84 Type
738testdata/Builtins.lc 40:75-40:76 _b 738testdata/Builtins.lc 40:75-40:76 _b
739testdata/Builtins.lc 40:75-40:78 (a :: Type) -> Mat 3 4 a -> Type 739testdata/Builtins.lc 40:75-40:78 forall a -> Mat 3 4 a -> Type
740testdata/Builtins.lc 40:75-40:84 Mat 3 4 Float -> Type 740testdata/Builtins.lc 40:75-40:84 Mat 3 4 Float -> Type
741testdata/Builtins.lc 40:77-40:78 _b 741testdata/Builtins.lc 40:77-40:78 _b
742testdata/Builtins.lc 40:79-40:84 Type 742testdata/Builtins.lc 40:79-40:84 Type
@@ -770,7 +770,7 @@ testdata/Builtins.lc 41:71-41:76 Nat -> Type -> Type
770testdata/Builtins.lc 41:71-41:78 Type -> Type 770testdata/Builtins.lc 41:71-41:78 Type -> Type
771testdata/Builtins.lc 41:71-41:84 Type 771testdata/Builtins.lc 41:71-41:84 Type
772testdata/Builtins.lc 41:75-41:76 _b 772testdata/Builtins.lc 41:75-41:76 _b
773testdata/Builtins.lc 41:75-41:78 (a :: Type) -> Mat 4 4 a -> Type 773testdata/Builtins.lc 41:75-41:78 forall a -> Mat 4 4 a -> Type
774testdata/Builtins.lc 41:75-41:84 Mat 4 4 Float -> Type 774testdata/Builtins.lc 41:75-41:84 Mat 4 4 Float -> Type
775testdata/Builtins.lc 41:77-41:78 _b 775testdata/Builtins.lc 41:77-41:78 _b
776testdata/Builtins.lc 41:79-41:84 Type 776testdata/Builtins.lc 41:79-41:84 Type
@@ -811,22 +811,22 @@ testdata/Builtins.lc 69:9-90:31 _b
811testdata/Builtins.lc 71:10-71:12 forall a . a -> a -> VecS a 2 811testdata/Builtins.lc 71:10-71:12 forall a . a -> a -> VecS a 2
812testdata/Builtins.lc 71:10-71:16 Float -> VecS Float 2 812testdata/Builtins.lc 71:10-71:16 Float -> VecS Float 2
813testdata/Builtins.lc 71:10-71:20 VecS Float 2 813testdata/Builtins.lc 71:10-71:20 VecS Float 2
814testdata/Builtins.lc 71:10-77:28 (a :: Nat) -> VecS Float ('Succ ('Succ a)) | (a :: Nat) -> VecS Float ('Succ a) 814testdata/Builtins.lc 71:10-77:28 forall (a :: Nat) -> VecS Float ('Succ ('Succ a)) | forall (a :: Nat) -> VecS Float ('Succ a)
815testdata/Builtins.lc 71:10-89:36 (a :: Nat) -> VecS _a a | (a :: Type) -> (b :: Nat) -> VecS a b | VecS _b _a 815testdata/Builtins.lc 71:10-89:36 VecS _b _a | forall (a :: Nat) -> VecS _a a | forall a (b :: Nat) -> VecS a b
816testdata/Builtins.lc 71:13-71:16 Float 816testdata/Builtins.lc 71:13-71:16 Float
817testdata/Builtins.lc 71:17-71:20 Float 817testdata/Builtins.lc 71:17-71:20 Float
818testdata/Builtins.lc 72:9-72:11 forall a . a -> a -> VecS a 2 818testdata/Builtins.lc 72:9-72:11 forall a . a -> a -> VecS a 2
819testdata/Builtins.lc 72:9-72:15 Float -> VecS Float 2 819testdata/Builtins.lc 72:9-72:15 Float -> VecS Float 2
820testdata/Builtins.lc 72:9-72:19 VecS Float 2 820testdata/Builtins.lc 72:9-72:19 VecS Float 2
821testdata/Builtins.lc 72:9-78:27 (a :: Nat) -> VecS Float ('Succ ('Succ a)) | (a :: Nat) -> VecS Float ('Succ a) 821testdata/Builtins.lc 72:9-78:27 forall (a :: Nat) -> VecS Float ('Succ ('Succ a)) | forall (a :: Nat) -> VecS Float ('Succ a)
822testdata/Builtins.lc 72:9-90:31 (a :: Nat) -> VecS _a a | (a :: Type) -> (b :: Nat) -> VecS a b | VecS _b _a 822testdata/Builtins.lc 72:9-90:31 VecS _b _a | forall (a :: Nat) -> VecS _a a | forall a (b :: Nat) -> VecS a b
823testdata/Builtins.lc 72:12-72:15 Float 823testdata/Builtins.lc 72:12-72:15 Float
824testdata/Builtins.lc 72:16-72:19 Float 824testdata/Builtins.lc 72:16-72:19 Float
825testdata/Builtins.lc 74:10-74:12 forall a . a -> a -> a -> VecS a 3 825testdata/Builtins.lc 74:10-74:12 forall a . a -> a -> a -> VecS a 3
826testdata/Builtins.lc 74:10-74:16 Float -> Float -> VecS Float 3 826testdata/Builtins.lc 74:10-74:16 Float -> Float -> VecS Float 3
827testdata/Builtins.lc 74:10-74:20 Float -> VecS Float 3 827testdata/Builtins.lc 74:10-74:20 Float -> VecS Float 3
828testdata/Builtins.lc 74:10-74:24 VecS Float 3 828testdata/Builtins.lc 74:10-74:24 VecS Float 3
829testdata/Builtins.lc 74:10-77:28 (a :: Nat) -> VecS Float ('Succ ('Succ ('Succ a))) 829testdata/Builtins.lc 74:10-77:28 forall (a :: Nat) -> VecS Float ('Succ ('Succ ('Succ a)))
830testdata/Builtins.lc 74:13-74:16 Float 830testdata/Builtins.lc 74:13-74:16 Float
831testdata/Builtins.lc 74:17-74:20 Float 831testdata/Builtins.lc 74:17-74:20 Float
832testdata/Builtins.lc 74:21-74:24 Float 832testdata/Builtins.lc 74:21-74:24 Float
@@ -834,7 +834,7 @@ testdata/Builtins.lc 75:9-75:11 forall a . a -> a -> a -> VecS a 3
834testdata/Builtins.lc 75:9-75:15 Float -> Float -> VecS Float 3 834testdata/Builtins.lc 75:9-75:15 Float -> Float -> VecS Float 3
835testdata/Builtins.lc 75:9-75:19 Float -> VecS Float 3 835testdata/Builtins.lc 75:9-75:19 Float -> VecS Float 3
836testdata/Builtins.lc 75:9-75:23 VecS Float 3 836testdata/Builtins.lc 75:9-75:23 VecS Float 3
837testdata/Builtins.lc 75:9-78:27 (a :: Nat) -> VecS Float ('Succ ('Succ ('Succ a))) 837testdata/Builtins.lc 75:9-78:27 forall (a :: Nat) -> VecS Float ('Succ ('Succ ('Succ a)))
838testdata/Builtins.lc 75:12-75:15 Float 838testdata/Builtins.lc 75:12-75:15 Float
839testdata/Builtins.lc 75:16-75:19 Float 839testdata/Builtins.lc 75:16-75:19 Float
840testdata/Builtins.lc 75:20-75:23 Float 840testdata/Builtins.lc 75:20-75:23 Float
@@ -842,7 +842,7 @@ testdata/Builtins.lc 77:10-77:12 forall a . a -> a -> a -> a -> VecS a 4
842testdata/Builtins.lc 77:10-77:16 Float -> Float -> Float -> VecS Float 4 842testdata/Builtins.lc 77:10-77:16 Float -> Float -> Float -> VecS Float 4
843testdata/Builtins.lc 77:10-77:20 Float -> Float -> VecS Float 4 843testdata/Builtins.lc 77:10-77:20 Float -> Float -> VecS Float 4
844testdata/Builtins.lc 77:10-77:24 Float -> VecS Float 4 844testdata/Builtins.lc 77:10-77:24 Float -> VecS Float 4
845testdata/Builtins.lc 77:10-77:28 (a :: Nat) -> VecS Float ('Succ ('Succ ('Succ ('Succ a)))) | VecS Float 4 845testdata/Builtins.lc 77:10-77:28 VecS Float 4 | forall (a :: Nat) -> VecS Float ('Succ ('Succ ('Succ ('Succ a))))
846testdata/Builtins.lc 77:13-77:16 Float 846testdata/Builtins.lc 77:13-77:16 Float
847testdata/Builtins.lc 77:17-77:20 Float 847testdata/Builtins.lc 77:17-77:20 Float
848testdata/Builtins.lc 77:21-77:24 Float 848testdata/Builtins.lc 77:21-77:24 Float
@@ -851,7 +851,7 @@ testdata/Builtins.lc 78:9-78:11 forall a . a -> a -> a -> a -> VecS a 4
851testdata/Builtins.lc 78:9-78:15 Float -> Float -> Float -> VecS Float 4 851testdata/Builtins.lc 78:9-78:15 Float -> Float -> Float -> VecS Float 4
852testdata/Builtins.lc 78:9-78:19 Float -> Float -> VecS Float 4 852testdata/Builtins.lc 78:9-78:19 Float -> Float -> VecS Float 4
853testdata/Builtins.lc 78:9-78:23 Float -> VecS Float 4 853testdata/Builtins.lc 78:9-78:23 Float -> VecS Float 4
854testdata/Builtins.lc 78:9-78:27 (a :: Nat) -> VecS Float ('Succ ('Succ ('Succ ('Succ a)))) | VecS Float 4 854testdata/Builtins.lc 78:9-78:27 VecS Float 4 | forall (a :: Nat) -> VecS Float ('Succ ('Succ ('Succ ('Succ a))))
855testdata/Builtins.lc 78:12-78:15 Float 855testdata/Builtins.lc 78:12-78:15 Float
856testdata/Builtins.lc 78:16-78:19 Float 856testdata/Builtins.lc 78:16-78:19 Float
857testdata/Builtins.lc 78:20-78:23 Float 857testdata/Builtins.lc 78:20-78:23 Float
@@ -861,20 +861,20 @@ testdata/Builtins.lc 81:9-81:13 Bool
861testdata/Builtins.lc 83:10-83:12 forall a . a -> a -> VecS a 2 861testdata/Builtins.lc 83:10-83:12 forall a . a -> a -> VecS a 2
862testdata/Builtins.lc 83:10-83:18 Bool -> VecS Bool 2 862testdata/Builtins.lc 83:10-83:18 Bool -> VecS Bool 2
863testdata/Builtins.lc 83:10-83:24 VecS Bool 2 863testdata/Builtins.lc 83:10-83:24 VecS Bool 2
864testdata/Builtins.lc 83:10-89:36 (a :: Nat) -> VecS Bool ('Succ ('Succ a)) | (a :: Nat) -> VecS Bool ('Succ a) 864testdata/Builtins.lc 83:10-89:36 forall (a :: Nat) -> VecS Bool ('Succ ('Succ a)) | forall (a :: Nat) -> VecS Bool ('Succ a)
865testdata/Builtins.lc 83:13-83:18 Bool 865testdata/Builtins.lc 83:13-83:18 Bool
866testdata/Builtins.lc 83:19-83:24 Bool 866testdata/Builtins.lc 83:19-83:24 Bool
867testdata/Builtins.lc 84:9-84:11 forall a . a -> a -> VecS a 2 867testdata/Builtins.lc 84:9-84:11 forall a . a -> a -> VecS a 2
868testdata/Builtins.lc 84:9-84:16 Bool -> VecS Bool 2 868testdata/Builtins.lc 84:9-84:16 Bool -> VecS Bool 2
869testdata/Builtins.lc 84:9-84:21 VecS Bool 2 869testdata/Builtins.lc 84:9-84:21 VecS Bool 2
870testdata/Builtins.lc 84:9-90:31 (a :: Nat) -> VecS Bool ('Succ ('Succ a)) | (a :: Nat) -> VecS Bool ('Succ a) 870testdata/Builtins.lc 84:9-90:31 forall (a :: Nat) -> VecS Bool ('Succ ('Succ a)) | forall (a :: Nat) -> VecS Bool ('Succ a)
871testdata/Builtins.lc 84:12-84:16 Bool 871testdata/Builtins.lc 84:12-84:16 Bool
872testdata/Builtins.lc 84:17-84:21 Bool 872testdata/Builtins.lc 84:17-84:21 Bool
873testdata/Builtins.lc 86:10-86:12 forall a . a -> a -> a -> VecS a 3 873testdata/Builtins.lc 86:10-86:12 forall a . a -> a -> a -> VecS a 3
874testdata/Builtins.lc 86:10-86:18 Bool -> Bool -> VecS Bool 3 874testdata/Builtins.lc 86:10-86:18 Bool -> Bool -> VecS Bool 3
875testdata/Builtins.lc 86:10-86:24 Bool -> VecS Bool 3 875testdata/Builtins.lc 86:10-86:24 Bool -> VecS Bool 3
876testdata/Builtins.lc 86:10-86:30 VecS Bool 3 876testdata/Builtins.lc 86:10-86:30 VecS Bool 3
877testdata/Builtins.lc 86:10-89:36 (a :: Nat) -> VecS Bool ('Succ ('Succ ('Succ a))) 877testdata/Builtins.lc 86:10-89:36 forall (a :: Nat) -> VecS Bool ('Succ ('Succ ('Succ a)))
878testdata/Builtins.lc 86:13-86:18 Bool 878testdata/Builtins.lc 86:13-86:18 Bool
879testdata/Builtins.lc 86:19-86:24 Bool 879testdata/Builtins.lc 86:19-86:24 Bool
880testdata/Builtins.lc 86:25-86:30 Bool 880testdata/Builtins.lc 86:25-86:30 Bool
@@ -882,7 +882,7 @@ testdata/Builtins.lc 87:9-87:11 forall a . a -> a -> a -> VecS a 3
882testdata/Builtins.lc 87:9-87:16 Bool -> Bool -> VecS Bool 3 882testdata/Builtins.lc 87:9-87:16 Bool -> Bool -> VecS Bool 3
883testdata/Builtins.lc 87:9-87:21 Bool -> VecS Bool 3 883testdata/Builtins.lc 87:9-87:21 Bool -> VecS Bool 3
884testdata/Builtins.lc 87:9-87:26 VecS Bool 3 884testdata/Builtins.lc 87:9-87:26 VecS Bool 3
885testdata/Builtins.lc 87:9-90:31 (a :: Nat) -> VecS Bool ('Succ ('Succ ('Succ a))) 885testdata/Builtins.lc 87:9-90:31 forall (a :: Nat) -> VecS Bool ('Succ ('Succ ('Succ a)))
886testdata/Builtins.lc 87:12-87:16 Bool 886testdata/Builtins.lc 87:12-87:16 Bool
887testdata/Builtins.lc 87:17-87:21 Bool 887testdata/Builtins.lc 87:17-87:21 Bool
888testdata/Builtins.lc 87:22-87:26 Bool 888testdata/Builtins.lc 87:22-87:26 Bool
@@ -890,7 +890,7 @@ testdata/Builtins.lc 89:10-89:12 forall a . a -> a -> a -> a -> VecS a 4
890testdata/Builtins.lc 89:10-89:18 Bool -> Bool -> Bool -> VecS Bool 4 890testdata/Builtins.lc 89:10-89:18 Bool -> Bool -> Bool -> VecS Bool 4
891testdata/Builtins.lc 89:10-89:24 Bool -> Bool -> VecS Bool 4 891testdata/Builtins.lc 89:10-89:24 Bool -> Bool -> VecS Bool 4
892testdata/Builtins.lc 89:10-89:30 Bool -> VecS Bool 4 892testdata/Builtins.lc 89:10-89:30 Bool -> VecS Bool 4
893testdata/Builtins.lc 89:10-89:36 (a :: Nat) -> VecS Bool ('Succ ('Succ ('Succ ('Succ a)))) | VecS Bool 4 893testdata/Builtins.lc 89:10-89:36 VecS Bool 4 | forall (a :: Nat) -> VecS Bool ('Succ ('Succ ('Succ ('Succ a))))
894testdata/Builtins.lc 89:13-89:18 Bool 894testdata/Builtins.lc 89:13-89:18 Bool
895testdata/Builtins.lc 89:19-89:24 Bool 895testdata/Builtins.lc 89:19-89:24 Bool
896testdata/Builtins.lc 89:25-89:30 Bool 896testdata/Builtins.lc 89:25-89:30 Bool
@@ -899,7 +899,7 @@ testdata/Builtins.lc 90:9-90:11 forall a . a -> a -> a -> a -> VecS a 4
899testdata/Builtins.lc 90:9-90:16 Bool -> Bool -> Bool -> VecS Bool 4 899testdata/Builtins.lc 90:9-90:16 Bool -> Bool -> Bool -> VecS Bool 4
900testdata/Builtins.lc 90:9-90:21 Bool -> Bool -> VecS Bool 4 900testdata/Builtins.lc 90:9-90:21 Bool -> Bool -> VecS Bool 4
901testdata/Builtins.lc 90:9-90:26 Bool -> VecS Bool 4 901testdata/Builtins.lc 90:9-90:26 Bool -> VecS Bool 4
902testdata/Builtins.lc 90:9-90:31 (a :: Nat) -> VecS Bool ('Succ ('Succ ('Succ ('Succ a)))) | VecS Bool 4 902testdata/Builtins.lc 90:9-90:31 VecS Bool 4 | forall (a :: Nat) -> VecS Bool ('Succ ('Succ ('Succ ('Succ a))))
903testdata/Builtins.lc 90:12-90:16 Bool 903testdata/Builtins.lc 90:12-90:16 Bool
904testdata/Builtins.lc 90:17-90:21 Bool 904testdata/Builtins.lc 90:17-90:21 Bool
905testdata/Builtins.lc 90:22-90:26 Bool 905testdata/Builtins.lc 90:22-90:26 Bool
@@ -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 -> (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
diff --git a/testdata/Internals.out b/testdata/Internals.out
index 6eb77da3..06c09de3 100644
--- a/testdata/Internals.out
+++ b/testdata/Internals.out
@@ -6,49 +6,49 @@ undefined :: 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 :: (a :: 'Unit -> Type) -> a TT -> (b :: 'Unit) -> a b 9'UnitCase :: forall (a :: 'Unit -> Type) -> a TT -> forall (b :: 'Unit) -> a b
10match'Unit :: (a :: Type -> Type) -> a 'Unit -> (b :: Type) -> 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 :: (a :: 'String -> Type) -> (b :: 'String) -> a b 12'StringCase :: forall (a :: 'String -> Type) (b :: 'String) -> a b
13match'String :: (a :: Type -> Type) -> a 'String -> (b :: Type) -> 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) . (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 :: (a :: Type -> Type) -> ((b :: 'String) -> a ('Empty b)) -> (c :: Type) -> 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 :: (a :: Type) -> a -> a -> Type 18'EqCT :: forall a -> a -> a -> Type
19parEval :: (a :: Type) -> a -> a -> a 19parEval :: forall a -> a -> a -> a
20'T2 :: Type -> Type -> Type 20'T2 :: Type -> Type -> Type
21match'Type :: (a :: Type -> Type) -> a Type -> (b :: Type) -> 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 :: (a :: 'Int -> Type) -> (b :: 'Int) -> a b 25'IntCase :: forall (a :: 'Int -> Type) (b :: 'Int) -> a b
26match'Int :: (a :: Type -> Type) -> a 'Int -> (b :: Type) -> 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 :: (a :: 'Word -> Type) -> (b :: 'Word) -> a b 28'WordCase :: forall (a :: 'Word -> Type) (b :: 'Word) -> a b
29match'Word :: (a :: Type -> Type) -> a 'Word -> (b :: Type) -> 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 :: (a :: 'Float -> Type) -> (b :: 'Float) -> a b 31'FloatCase :: forall (a :: 'Float -> Type) (b :: 'Float) -> a b
32match'Float :: (a :: Type -> Type) -> a 'Float -> (b :: Type) -> 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 :: (a :: 'Char -> Type) -> (b :: 'Char) -> a b 34'CharCase :: forall (a :: 'Char -> Type) (b :: 'Char) -> a b
35match'Char :: (a :: Type -> Type) -> a 'Char -> (b :: Type) -> 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 :: (a :: 'Bool -> Type) -> a False -> a True -> (b :: 'Bool) -> a b 39'BoolCase :: forall (a :: 'Bool -> Type) -> a False -> a True -> forall (b :: 'Bool) -> a b
40match'Bool :: (a :: Type -> Type) -> a 'Bool -> (b :: Type) -> 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 :: (a :: 'Ordering -> Type) -> a LT -> a EQ -> a GT -> (b :: 'Ordering) -> a b 45'OrderingCase :: forall (a :: 'Ordering -> Type) -> a LT -> a EQ -> a GT -> forall (b :: 'Ordering) -> a b
46match'Ordering :: (a :: Type -> Type) -> a 'Ordering -> (b :: Type) -> 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 :: (a :: 'Nat -> Type) -> a 0 -> ((b :: 'Nat) -> a (Succ b)) -> (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 :: (a :: Type -> Type) -> a 'Nat -> (b :: Type) -> 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
@@ -76,15 +76,15 @@ negate :: forall a . 'Num a => a[
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 . (b :: 'List a -> Type) -> b Nil -> ((c :: a) -> (d :: 'List a) -> b (Cons c d)) -> (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 :: (a :: Type -> Type) -> ((b :: Type) -> a ('List b)) -> (c :: Type) -> 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 :: (a :: (b :: 'List Type) -> 'HList b -> Type) -> a Nil () -> (forall c (d :: 'List Type) . (e :: c) -> (f :: 'HList d) -> a (Cons c d) (HCons c d e f)) -> forall (g :: 'List Type) . (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 :: (a :: Type -> Type) -> ((b :: 'List Type) -> a ('HList b)) -> (c :: Type) -> a c -> a c 85match'HList :: forall (a :: Type -> Type) -> (forall (b :: 'List Type) -> a ('HList b)) -> forall c -> a c -> a c
86hlistNilCase :: (a :: Type) -> a -> () -> a 86hlistNilCase :: forall a -> a -> () -> a
87hlistConsCase :: forall a (b :: 'List Type) . (c :: Type) -> (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
@@ -109,19 +109,19 @@ testdata/Internals.lc 19:1-19:13 forall a b . a -> b
109testdata/Internals.lc 19:30-19:31 _d 109testdata/Internals.lc 19:30-19:31 _d
110testdata/Internals.lc 19:30-19:36 Type 110testdata/Internals.lc 19:30-19:36 Type
111testdata/Internals.lc 19:35-19:36 Type | _c 111testdata/Internals.lc 19:35-19:36 Type | _c
112testdata/Internals.lc 22:13-22:17 (a :: Type) -> a -> a -> Type 112testdata/Internals.lc 22:13-22:17 forall a -> a -> a -> Type
113testdata/Internals.lc 22:24-22:28 Type 113testdata/Internals.lc 22:24-22:28 Type
114testdata/Internals.lc 22:36-22:37 Type 114testdata/Internals.lc 22:36-22:37 Type
115testdata/Internals.lc 22:36-22:46 Type 115testdata/Internals.lc 22:36-22:46 Type
116testdata/Internals.lc 22:45-22:46 Type 116testdata/Internals.lc 22:45-22:46 Type
117testdata/Internals.lc 31:1-31:8 (a :: Type) -> a -> a -> a 117testdata/Internals.lc 31:1-31:8 forall a -> a -> a -> a
118testdata/Internals.lc 31:24-31:25 _b 118testdata/Internals.lc 31:24-31:25 _b
119testdata/Internals.lc 31:24-31:35 Type 119testdata/Internals.lc 31:24-31:35 Type
120testdata/Internals.lc 31:29-31:30 Type 120testdata/Internals.lc 31:29-31:30 Type
121testdata/Internals.lc 31:29-31:35 Type 121testdata/Internals.lc 31:29-31:35 Type
122testdata/Internals.lc 31:34-31:35 Type 122testdata/Internals.lc 31:34-31:35 Type
123testdata/Internals.lc 34:13-34:15 Type -> Type -> Type 123testdata/Internals.lc 34:13-34:15 Type -> Type -> Type
124testdata/Internals.lc 36:1-36:11 (a :: Type -> Type) -> a Type -> (b :: Type) -> a b -> a b 124testdata/Internals.lc 36:1-36:11 forall (a :: Type -> Type) -> a Type -> forall b -> a b -> a b
125testdata/Internals.lc 36:28-36:32 Type 125testdata/Internals.lc 36:28-36:32 Type
126testdata/Internals.lc 36:36-36:40 Type 126testdata/Internals.lc 36:36-36:40 Type
127testdata/Internals.lc 36:45-36:46 Type -> Type 127testdata/Internals.lc 36:45-36:46 Type -> Type
@@ -138,7 +138,7 @@ testdata/Internals.lc 36:84-36:85 Type -> Type
138testdata/Internals.lc 36:84-36:87 Type 138testdata/Internals.lc 36:84-36:87 Type
139testdata/Internals.lc 36:86-36:87 Type 139testdata/Internals.lc 36:86-36:87 Type
140testdata/Internals.lc 38:6-38:11 forall a . a -> a -> Type 140testdata/Internals.lc 38:6-38:11 forall a . a -> a -> Type
141testdata/Internals.lc 38:14-38:18 (a :: Type) -> a -> a -> Type 141testdata/Internals.lc 38:14-38:18 forall a -> a -> a -> Type
142testdata/Internals.lc 38:14-38:20 _a -> _a -> Type 142testdata/Internals.lc 38:14-38:20 _a -> _a -> Type
143testdata/Internals.lc 41:1-41:4 Unit -> Unit -> Unit 143testdata/Internals.lc 41:1-41:4 Unit -> Unit -> Unit
144testdata/Internals.lc 41:8-41:12 Type 144testdata/Internals.lc 41:8-41:12 Type
@@ -373,7 +373,7 @@ testdata/Internals.lc 128:39-128:41 List Type -> List Type
373testdata/Internals.lc 128:39-128:44 List Type 373testdata/Internals.lc 128:39-128:44 List Type
374testdata/Internals.lc 128:40-128:41 forall a . a -> List a -> List a 374testdata/Internals.lc 128:40-128:41 forall a . a -> List a -> List a
375testdata/Internals.lc 128:42-128:44 List Type 375testdata/Internals.lc 128:42-128:44 List Type
376testdata/Internals.lc 130:1-130:13 (a :: Type) -> a -> () -> a 376testdata/Internals.lc 130:1-130:13 forall a -> a -> () -> a
377testdata/Internals.lc 130:29-130:30 _b 377testdata/Internals.lc 130:29-130:30 _b
378testdata/Internals.lc 130:29-130:48 Type 378testdata/Internals.lc 130:29-130:48 Type
379testdata/Internals.lc 130:34-130:39 List Type -> Type 379testdata/Internals.lc 130:34-130:39 List Type -> Type
@@ -381,7 +381,7 @@ testdata/Internals.lc 130:34-130:43 Type
381testdata/Internals.lc 130:34-130:48 Type 381testdata/Internals.lc 130:34-130:48 Type
382testdata/Internals.lc 130:40-130:43 forall a . List a 382testdata/Internals.lc 130:40-130:43 forall a . List a
383testdata/Internals.lc 130:47-130:48 Type 383testdata/Internals.lc 130:47-130:48 Type
384testdata/Internals.lc 131:1-131:14 forall a (b :: List Type) . (c :: Type) -> (a -> HList b -> c) -> HList ('Cons a b) -> c 384testdata/Internals.lc 131:1-131:14 forall a (b :: List Type) . forall c -> (a -> HList b -> c) -> HList ('Cons a b) -> c
385testdata/Internals.lc 132:21-132:25 Type 385testdata/Internals.lc 132:21-132:25 Type
386testdata/Internals.lc 132:33-132:37 Type -> Type 386testdata/Internals.lc 132:33-132:37 Type -> Type
387testdata/Internals.lc 132:33-132:42 Type 387testdata/Internals.lc 132:33-132:42 Type
diff --git a/testdata/Material.out b/testdata/Material.out
index 1112eb52..c819ce60 100644
--- a/testdata/Material.out
+++ b/testdata/Material.out
@@ -3,8 +3,8 @@ main is not found
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 :: (a :: 'Entity -> Type) -> ((b :: 'Vec 4 'Float) -> (c :: 'Vec 4 'Float) -> (d :: 'Vec 3 'Float) -> (e :: 'Vec 4 'Float) -> a (Entity b c d e)) -> (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 :: (a :: Type -> Type) -> a 'Entity -> (b :: Type) -> 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
@@ -16,12 +16,12 @@ WT_Square :: 'WaveType
16WT_Sawtooth :: 'WaveType 16WT_Sawtooth :: 'WaveType
17WT_InverseSawtooth :: 'WaveType 17WT_InverseSawtooth :: 'WaveType
18WT_Noise :: 'WaveType 18WT_Noise :: 'WaveType
19'WaveTypeCase :: (a :: 'WaveType -> Type) -> a WT_Sin -> a WT_Triangle -> a WT_Square -> a WT_Sawtooth -> a WT_InverseSawtooth -> a WT_Noise -> (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 :: (a :: Type -> Type) -> a 'WaveType -> (b :: Type) -> 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 :: (a :: 'Wave -> Type) -> ((b :: 'WaveType) -> (c :: 'Float) -> (d :: 'Float) -> (e :: 'Float) -> (f :: 'Float) -> a (Wave b c d e f)) -> (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 :: (a :: Type -> Type) -> a 'Wave -> (b :: Type) -> 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
@@ -38,14 +38,14 @@ D_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 :: (a :: 'Deform -> Type) -> a D_AutoSprite -> a D_AutoSprite2 -> ((b :: 'Float) -> (c :: 'Float) -> (d :: 'Float) -> a (D_Bulge b c d)) -> ((e :: 'Vec 3 'Float) -> (f :: 'Wave) -> a (D_Move e f)) -> ((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 -> ((i :: 'Float) -> (j :: 'Wave) -> a (D_Wave i j)) -> (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 :: (a :: Type -> Type) -> a 'Deform -> (b :: Type) -> 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 :: (a :: 'CullType -> Type) -> a CT_FrontSided -> a CT_BackSided -> a CT_TwoSided -> (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 :: (a :: Type -> Type) -> a 'CullType -> (b :: Type) -> 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'
@@ -58,8 +58,8 @@ B_SrcAlpha :: 'Blending'
58B_SrcAlphaSaturate :: 'Blending' 58B_SrcAlphaSaturate :: 'Blending'
59B_SrcColor :: 'Blending' 59B_SrcColor :: 'Blending'
60B_Zero :: 'Blending' 60B_Zero :: 'Blending'
61'Blending'Case :: (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 -> (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' :: (a :: Type -> Type) -> a 'Blending' -> (b :: Type) -> 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
@@ -72,8 +72,8 @@ RGB_Vertex :: 'RGBGen
72RGB_LightingDiffuse :: 'RGBGen 72RGB_LightingDiffuse :: 'RGBGen
73RGB_OneMinusVertex :: 'RGBGen 73RGB_OneMinusVertex :: 'RGBGen
74RGB_Undefined :: 'RGBGen 74RGB_Undefined :: 'RGBGen
75'RGBGenCase :: (a :: 'RGBGen -> Type) -> ((b :: 'Wave) -> a (RGB_Wave b)) -> ((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 -> (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 :: (a :: Type -> Type) -> a 'RGBGen -> (b :: Type) -> 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
@@ -84,16 +84,16 @@ A_OneMinusEntity :: 'AlphaGen
84A_Vertex :: 'AlphaGen 84A_Vertex :: 'AlphaGen
85A_LightingSpecular :: 'AlphaGen 85A_LightingSpecular :: 'AlphaGen
86A_OneMinusVertex :: 'AlphaGen 86A_OneMinusVertex :: 'AlphaGen
87'AlphaGenCase :: (a :: 'AlphaGen -> Type) -> ((b :: 'Wave) -> a (A_Wave b)) -> ((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 -> (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 :: (a :: Type -> Type) -> a 'AlphaGen -> (b :: Type) -> 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 :: (a :: 'TCGen -> Type) -> a TG_Base -> a TG_Lightmap -> a TG_Environment -> ((b :: 'Vec 3 'Float) -> (c :: 'Vec 3 'Float) -> a (TG_Vector b c)) -> a TG_Undefined -> (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 :: (a :: Type -> Type) -> a 'TCGen -> (b :: Type) -> 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
@@ -102,31 +102,31 @@ TM_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 :: (a :: 'TCMod -> Type) -> a TM_EntityTranslate -> ((b :: 'Float) -> a (TM_Rotate b)) -> ((c :: 'Float) -> (d :: 'Float) -> a (TM_Scroll c d)) -> ((e :: 'Float) -> (f :: 'Float) -> a (TM_Scale e f)) -> ((g :: 'Wave) -> a (TM_Stretch g)) -> ((h :: 'Float) -> (i :: 'Float) -> (j :: 'Float) -> (k :: 'Float) -> (l :: 'Float) -> (m :: 'Float) -> a (TM_Transform h i j k l m)) -> ((n :: 'Float) -> (o :: 'Float) -> (p :: 'Float) -> (q :: 'Float) -> a (TM_Turb n o p q)) -> (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 :: (a :: Type -> Type) -> a 'TCMod -> (b :: Type) -> 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 :: (a :: 'StageTexture -> Type) -> ((b :: 'String) -> a (ST_Map b)) -> ((c :: 'String) -> a (ST_ClampMap c)) -> ((d :: 'Float) -> (e :: 'List 'String) -> a (ST_AnimMap d e)) -> a ST_Lightmap -> a ST_WhiteImage -> (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 :: (a :: Type -> Type) -> a 'StageTexture -> (b :: Type) -> 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 :: (a :: 'AlphaFunction -> Type) -> a A_Gt0 -> a A_Lt128 -> a A_Ge128 -> (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 :: (a :: Type -> Type) -> a 'AlphaFunction -> (b :: Type) -> 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 :: (a :: 'DepthFunction -> Type) -> a D_Equal -> a D_Lequal -> (b :: 'DepthFunction) -> a b 124'DepthFunctionCase :: forall (a :: 'DepthFunction -> Type) -> a D_Equal -> a D_Lequal -> forall (b :: 'DepthFunction) -> a b
125match'DepthFunction :: (a :: Type -> Type) -> a 'DepthFunction -> (b :: Type) -> 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 :: (a :: 'StageAttrs -> Type) -> ((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)) -> (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 :: (a :: Type -> Type) -> a 'StageAttrs -> (b :: Type) -> 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
@@ -141,8 +141,8 @@ saTextureUniform :: '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 :: (a :: 'CommonAttrs -> Type) -> ((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)) -> (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 :: (a :: Type -> Type) -> a 'CommonAttrs -> (b :: Type) -> 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
diff --git a/testdata/Prelude.out b/testdata/Prelude.out
index 23dd4a4a..287c9734 100644
--- a/testdata/Prelude.out
+++ b/testdata/Prelude.out
@@ -25,17 +25,17 @@ snd :: forall a b . (a, b) -> b
25&&& :: 'Bool -> 'Bool -> 'Bool 25&&& :: 'Bool -> 'Bool -> 'Bool
26'RecItem :: Type 26'RecItem :: Type
27RecItem :: 'String -> Type -> 'RecItem 27RecItem :: 'String -> Type -> 'RecItem
28'RecItemCase :: (a :: 'RecItem -> Type) -> ((b :: 'String) -> (c :: Type) -> a (RecItem b c)) -> (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 :: (a :: Type -> Type) -> a 'RecItem -> (b :: Type) -> 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) . (b :: 'RecordC a -> Type) -> ((c :: 'HList (map 'RecItem Type recItemType a)) -> b (RecordCons c)) -> (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 :: (a :: Type -> Type) -> ((b :: 'List 'RecItem) -> a ('RecordC b)) -> (c :: Type) -> 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) . (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
@@ -479,18 +479,18 @@ testdata/Prelude.lc 130:69-130:70 String
479testdata/Prelude.lc 130:71-130:72 Type 479testdata/Prelude.lc 130:71-130:72 Type
480testdata/Prelude.lc 130:73-130:75 List _i 480testdata/Prelude.lc 130:73-130:75 List _i
481testdata/Prelude.lc 132:1-132:7 forall a (b :: List Type) . HList ('Cons a b) -> a 481testdata/Prelude.lc 132:1-132:7 forall a (b :: List Type) . HList ('Cons a b) -> a
482testdata/Prelude.lc 132:10-132:23 forall a (b :: List Type) . (c :: Type) -> (a -> HList b -> c) -> HList ('Cons a b) -> c 482testdata/Prelude.lc 132:10-132:23 forall a (b :: List Type) . forall c -> (a -> HList b -> c) -> HList ('Cons a b) -> c
483testdata/Prelude.lc 132:10-132:25 (_c -> HList _b -> _a) -> HList ('Cons _c _b) -> _a 483testdata/Prelude.lc 132:10-132:25 (_c -> HList _b -> _a) -> HList ('Cons _c _b) -> _a
484testdata/Prelude.lc 132:10-132:37 HList ('Cons _b _a) -> _b 484testdata/Prelude.lc 132:10-132:37 HList ('Cons _b _a) -> _b
485testdata/Prelude.lc 132:27-132:36 _c -> HList _b -> _a 485testdata/Prelude.lc 132:27-132:36 _c -> HList _b -> _a
486testdata/Prelude.lc 132:35-132:36 HList _c -> _b | _e 486testdata/Prelude.lc 132:35-132:36 HList _c -> _b | _e
487testdata/Prelude.lc 133:1-133:7 forall a (b :: List Type) . HList ('Cons a b) -> HList b 487testdata/Prelude.lc 133:1-133:7 forall a (b :: List Type) . HList ('Cons a b) -> HList b
488testdata/Prelude.lc 133:10-133:23 forall a (b :: List Type) . (c :: Type) -> (a -> HList b -> c) -> HList ('Cons a b) -> c 488testdata/Prelude.lc 133:10-133:23 forall a (b :: List Type) . forall c -> (a -> HList b -> c) -> HList ('Cons a b) -> c
489testdata/Prelude.lc 133:10-133:25 (_c -> HList _b -> _a) -> HList ('Cons _c _b) -> _a 489testdata/Prelude.lc 133:10-133:25 (_c -> HList _b -> _a) -> HList ('Cons _c _b) -> _a
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) . (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) . (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 | (a :: String) -> 'isKeyC a _b _a => RecordC _a -> _b | 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) . (b :: String) -> 'isKeyC b _a a => RecordC a -> _a | forall a (b :: List RecItem) . (c :: String) -> 'isKeyC c a b => RecordC b -> a 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
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
@@ -535,9 +535,9 @@ testdata/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) . (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) . (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 (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
diff --git a/testdata/adhoc.reject.out b/testdata/adhoc.reject.out
index 511e62b1..6099ecf1 100644
--- a/testdata/adhoc.reject.out
+++ b/testdata/adhoc.reject.out
@@ -5,8 +5,8 @@ x = one :: Vec 4 A
5------------ trace 5------------ trace
6'A :: Type 6'A :: Type
7A :: 'A 7A :: 'A
8'ACase :: (a :: 'A -> Type) -> a A -> (b :: 'A) -> a b 8'ACase :: forall (a :: 'A -> Type) -> a A -> forall (b :: 'A) -> a b
9match'A :: (a :: Type -> Type) -> a 'A -> (b :: Type) -> 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 43a60b85..99b0a0fd 100644
--- a/testdata/complex.out
+++ b/testdata/complex.out
@@ -3,12 +3,12 @@ main is not found
3'Repr :: Type 3'Repr :: Type
4Normal :: 'Repr 4Normal :: 'Repr
5Polar :: 'Repr 5Polar :: 'Repr
6'ReprCase :: (a :: 'Repr -> Type) -> a Normal -> a Polar -> (b :: 'Repr) -> a b 6'ReprCase :: forall (a :: 'Repr -> Type) -> a Normal -> a Polar -> forall (b :: 'Repr) -> a b
7match'Repr :: (a :: Type -> Type) -> a 'Repr -> (b :: Type) -> 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 :: (a :: (b :: 'Repr) -> 'Complex b -> Type) -> (forall (c :: 'Repr) . (d :: 'Float) -> (e :: 'Float) -> a c (Complex c d e)) -> forall (f :: 'Repr) . (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 :: (a :: Type -> Type) -> ((b :: 'Repr) -> a ('Complex b)) -> (c :: Type) -> 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
diff --git a/testdata/data.out b/testdata/data.out
index ac7874a8..3a093bbe 100644
--- a/testdata/data.out
+++ b/testdata/data.out
@@ -2,27 +2,27 @@ main is not found
2------------ trace 2------------ trace
3'Data0 :: Type 3'Data0 :: Type
4Data0 :: 'Data0 4Data0 :: 'Data0
5'Data0Case :: (a :: 'Data0 -> Type) -> a Data0 -> (b :: 'Data0) -> a b 5'Data0Case :: forall (a :: 'Data0 -> Type) -> a Data0 -> forall (b :: 'Data0) -> a b
6match'Data0 :: (a :: Type -> Type) -> a 'Data0 -> (b :: Type) -> 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 . (d :: 'Data1 a b c -> Type) -> ((e :: a) -> (f :: b) -> (g :: c) -> d (Data1 e f g)) -> (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 :: (a :: Type -> Type) -> ((b :: Type) -> (c :: Type) -> (d :: Type) -> a ('Data1 b c d)) -> (e :: Type) -> 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 :: (a :: 'Data2 -> Type) -> ((b :: 'Int) -> a (Data21 b)) -> ((c :: 'Int) -> (d :: 'Int) -> a (Data22 c d)) -> ((e :: 'Int) -> a (Data23 e)) -> a Data24 -> (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 :: (a :: Type -> Type) -> a 'Data2 -> (b :: Type) -> 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 . (d :: 'Data5 a b c -> Type) -> ((e :: a) -> d (Data51 e)) -> ((f :: a) -> (g :: b) -> (h :: c) -> d (Data52 f g h)) -> ((i :: 'Int) -> (j :: a) -> (k :: 'Float) -> (l :: b) -> (m :: c) -> d (Data53 i j k l m)) -> (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 :: (a :: Type -> Type) -> ((b :: Type) -> (c :: Type) -> (d :: Type) -> a ('Data5 b c d)) -> (e :: Type) -> 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
diff --git a/testdata/empty.out b/testdata/empty.out
index f1588695..d7443922 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 :: (a :: 'Empty -> Type) -> (b :: 'Empty) -> a b 4'EmptyCase :: forall (a :: 'Empty -> Type) (b :: 'Empty) -> a b
5match'Empty :: (a :: Type -> Type) -> a 'Empty -> (b :: Type) -> 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/language-features/adt/adt02.reject.out b/testdata/language-features/adt/adt02.reject.out
index 44db093f..6be18ea8 100644
--- a/testdata/language-features/adt/adt02.reject.out
+++ b/testdata/language-features/adt/adt02.reject.out
@@ -8,8 +8,8 @@ in proj
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 :: (a :: 'Data3 -> Type) -> ((b :: 'Bool) -> (c :: 'Char) -> (d :: 'Bool) -> a (Data3 b c d)) -> ((e :: 'Int) -> (f :: 'String) -> (g :: 'Int) -> a (Data31 e f g)) -> (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 :: (a :: Type -> Type) -> a 'Data3 -> (b :: Type) -> 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/gadt03.reject.out b/testdata/language-features/adt/gadt03.reject.out
index 9d9361c0..8aad9b35 100644
--- a/testdata/language-features/adt/gadt03.reject.out
+++ b/testdata/language-features/adt/gadt03.reject.out
@@ -2,8 +2,8 @@ illegal 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 . (b :: (c :: 'String) -> 'M2 a c -> Type) -> ((d :: a) -> forall (e :: 'String) . b e (Value2 d e)) -> forall (f :: 'String) . (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 :: (a :: Type -> Type) -> ((b :: Type) -> (c :: 'String) -> a ('M2 b c)) -> (d :: Type) -> 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
diff --git a/testdata/language-features/adt/gadt04.reject.out b/testdata/language-features/adt/gadt04.reject.out
index fc2b7c30..4efb2a15 100644
--- a/testdata/language-features/adt/gadt04.reject.out
+++ b/testdata/language-features/adt/gadt04.reject.out
@@ -7,8 +7,8 @@ and at testdata/language-features/adt/gadt04.reject.lc:3:3:
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 :: (a :: (b :: Type) -> (c :: 'String) -> 'M b c -> Type) -> (forall d . (e :: d) -> forall (f :: 'String) . a d f (Value d e f)) -> forall g (h :: 'String) . (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 :: (a :: Type -> Type) -> ((b :: Type) -> (c :: 'String) -> a ('M b c)) -> (d :: Type) -> 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:
diff --git a/testdata/language-features/basic-values/data01.out b/testdata/language-features/basic-values/data01.out
index affad824..b429a33b 100644
--- a/testdata/language-features/basic-values/data01.out
+++ b/testdata/language-features/basic-values/data01.out
@@ -4,20 +4,20 @@ main is not found
4B :: 'A 4B :: 'A
5C :: 'A 5C :: 'A
6D :: 'A 6D :: 'A
7'ACase :: (a :: 'A -> Type) -> a B -> a C -> a D -> (b :: 'A) -> a b 7'ACase :: forall (a :: 'A -> Type) -> a B -> a C -> a D -> forall (b :: 'A) -> a b
8match'A :: (a :: Type -> Type) -> a 'A -> (b :: Type) -> 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 :: (a :: 'E -> Type) -> a F -> ((b :: ()) -> a (G b)) -> a H -> (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 :: (a :: Type -> Type) -> a 'E -> (b :: Type) -> 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 :: (a :: 'D1 -> Type) -> a C1 -> ((b :: ()) -> a (C2 b)) -> a C3 -> (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 :: (a :: Type -> Type) -> a 'D1 -> (b :: Type) -> 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/infix03.out b/testdata/language-features/basic-values/infix03.out
index dcab8247..3420e35e 100644
--- a/testdata/language-features/basic-values/infix03.out
+++ b/testdata/language-features/basic-values/infix03.out
@@ -3,8 +3,8 @@ main is not found
3'D :: Type 3'D :: Type
4D2 :: () -> () -> 'D 4D2 :: () -> () -> 'D
5D3 :: () -> () -> () -> 'D 5D3 :: () -> () -> () -> 'D
6'DCase :: (a :: 'D -> Type) -> ((b :: ()) -> (c :: ()) -> a (D2 b c)) -> ((d :: ()) -> (e :: ()) -> (f :: ()) -> a (D3 d e f)) -> (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 :: (a :: Type -> Type) -> a 'D -> (b :: Type) -> 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
diff --git a/testdata/performance/Material.out b/testdata/performance/Material.out
index d35f582a..958efb6f 100644
--- a/testdata/performance/Material.out
+++ b/testdata/performance/Material.out
@@ -3,8 +3,8 @@ main is not found
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 :: (a :: 'Entity -> Type) -> ((b :: 'Vec 4 'Float) -> (c :: 'Vec 4 'Float) -> (d :: 'Vec 3 'Float) -> (e :: 'Vec 4 'Float) -> a (Entity b c d e)) -> (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 :: (a :: Type -> Type) -> a 'Entity -> (b :: Type) -> 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
@@ -16,12 +16,12 @@ WT_Square :: 'WaveType
16WT_Sawtooth :: 'WaveType 16WT_Sawtooth :: 'WaveType
17WT_InverseSawtooth :: 'WaveType 17WT_InverseSawtooth :: 'WaveType
18WT_Noise :: 'WaveType 18WT_Noise :: 'WaveType
19'WaveTypeCase :: (a :: 'WaveType -> Type) -> a WT_Sin -> a WT_Triangle -> a WT_Square -> a WT_Sawtooth -> a WT_InverseSawtooth -> a WT_Noise -> (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 :: (a :: Type -> Type) -> a 'WaveType -> (b :: Type) -> 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 :: (a :: 'Wave -> Type) -> ((b :: 'WaveType) -> (c :: 'Float) -> (d :: 'Float) -> (e :: 'Float) -> (f :: 'Float) -> a (Wave b c d e f)) -> (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 :: (a :: Type -> Type) -> a 'Wave -> (b :: Type) -> 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
@@ -38,14 +38,14 @@ D_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 :: (a :: 'Deform -> Type) -> a D_AutoSprite -> a D_AutoSprite2 -> ((b :: 'Float) -> (c :: 'Float) -> (d :: 'Float) -> a (D_Bulge b c d)) -> ((e :: 'Vec 3 'Float) -> (f :: 'Wave) -> a (D_Move e f)) -> ((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 -> ((i :: 'Float) -> (j :: 'Wave) -> a (D_Wave i j)) -> (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 :: (a :: Type -> Type) -> a 'Deform -> (b :: Type) -> 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 :: (a :: 'CullType -> Type) -> a CT_FrontSided -> a CT_BackSided -> a CT_TwoSided -> (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 :: (a :: Type -> Type) -> a 'CullType -> (b :: Type) -> 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'
@@ -58,8 +58,8 @@ B_SrcAlpha :: 'Blending'
58B_SrcAlphaSaturate :: 'Blending' 58B_SrcAlphaSaturate :: 'Blending'
59B_SrcColor :: 'Blending' 59B_SrcColor :: 'Blending'
60B_Zero :: 'Blending' 60B_Zero :: 'Blending'
61'Blending'Case :: (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 -> (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' :: (a :: Type -> Type) -> a 'Blending' -> (b :: Type) -> 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
@@ -72,8 +72,8 @@ RGB_Vertex :: 'RGBGen
72RGB_LightingDiffuse :: 'RGBGen 72RGB_LightingDiffuse :: 'RGBGen
73RGB_OneMinusVertex :: 'RGBGen 73RGB_OneMinusVertex :: 'RGBGen
74RGB_Undefined :: 'RGBGen 74RGB_Undefined :: 'RGBGen
75'RGBGenCase :: (a :: 'RGBGen -> Type) -> ((b :: 'Wave) -> a (RGB_Wave b)) -> ((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 -> (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 :: (a :: Type -> Type) -> a 'RGBGen -> (b :: Type) -> 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
@@ -84,16 +84,16 @@ A_OneMinusEntity :: 'AlphaGen
84A_Vertex :: 'AlphaGen 84A_Vertex :: 'AlphaGen
85A_LightingSpecular :: 'AlphaGen 85A_LightingSpecular :: 'AlphaGen
86A_OneMinusVertex :: 'AlphaGen 86A_OneMinusVertex :: 'AlphaGen
87'AlphaGenCase :: (a :: 'AlphaGen -> Type) -> ((b :: 'Wave) -> a (A_Wave b)) -> ((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 -> (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 :: (a :: Type -> Type) -> a 'AlphaGen -> (b :: Type) -> 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 :: (a :: 'TCGen -> Type) -> a TG_Base -> a TG_Lightmap -> a TG_Environment -> ((b :: 'Vec 3 'Float) -> (c :: 'Vec 3 'Float) -> a (TG_Vector b c)) -> a TG_Undefined -> (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 :: (a :: Type -> Type) -> a 'TCGen -> (b :: Type) -> 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
@@ -102,31 +102,31 @@ TM_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 :: (a :: 'TCMod -> Type) -> a TM_EntityTranslate -> ((b :: 'Float) -> a (TM_Rotate b)) -> ((c :: 'Float) -> (d :: 'Float) -> a (TM_Scroll c d)) -> ((e :: 'Float) -> (f :: 'Float) -> a (TM_Scale e f)) -> ((g :: 'Wave) -> a (TM_Stretch g)) -> ((h :: 'Float) -> (i :: 'Float) -> (j :: 'Float) -> (k :: 'Float) -> (l :: 'Float) -> (m :: 'Float) -> a (TM_Transform h i j k l m)) -> ((n :: 'Float) -> (o :: 'Float) -> (p :: 'Float) -> (q :: 'Float) -> a (TM_Turb n o p q)) -> (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 :: (a :: Type -> Type) -> a 'TCMod -> (b :: Type) -> 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 :: (a :: 'StageTexture -> Type) -> ((b :: 'String) -> a (ST_Map b)) -> ((c :: 'String) -> a (ST_ClampMap c)) -> ((d :: 'Float) -> (e :: 'List 'String) -> a (ST_AnimMap d e)) -> a ST_Lightmap -> a ST_WhiteImage -> (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 :: (a :: Type -> Type) -> a 'StageTexture -> (b :: Type) -> 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 :: (a :: 'AlphaFunction -> Type) -> a A_Gt0 -> a A_Lt128 -> a A_Ge128 -> (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 :: (a :: Type -> Type) -> a 'AlphaFunction -> (b :: Type) -> 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 :: (a :: 'DepthFunction -> Type) -> a D_Equal -> a D_Lequal -> (b :: 'DepthFunction) -> a b 124'DepthFunctionCase :: forall (a :: 'DepthFunction -> Type) -> a D_Equal -> a D_Lequal -> forall (b :: 'DepthFunction) -> a b
125match'DepthFunction :: (a :: Type -> Type) -> a 'DepthFunction -> (b :: Type) -> 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 :: (a :: 'StageAttrs -> Type) -> ((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)) -> (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 :: (a :: Type -> Type) -> a 'StageAttrs -> (b :: Type) -> 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
@@ -141,8 +141,8 @@ saTextureUniform :: '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 :: (a :: 'CommonAttrs -> Type) -> ((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)) -> (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 :: (a :: Type -> Type) -> a 'CommonAttrs -> (b :: Type) -> 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
diff --git a/testdata/traceTest.out b/testdata/traceTest.out
index 4d11599e..93ec5169 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) . (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 :: (a :: Type -> Type) -> (forall b . (c :: b) -> a ('X b c)) -> (d :: Type) -> 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 :: Type) (b :: Type) -> (a, b)) 7x :: 'X (Type -> Type -> Type) (\a b -> (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 :: Type) (b :: Type) -> (a, b)) 20testdata/traceTest.lc 11:1-11:2 X (Type -> Type -> Type) (\a b -> (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/typesig.reject.out b/testdata/typesig.reject.out
index cc45ae6e..e3dc50d4 100644
--- a/testdata/typesig.reject.out
+++ b/testdata/typesig.reject.out
@@ -1,11 +1,11 @@
1focus checkMetas: \a -> (\(b :: Type) -> primFix a b) (\(a := Type) -> \(c :: Type) -> <<HERE>>) 1focus checkMetas: \a -> (\b -> primFix a b) (\(a := Type) -> \c -> <<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 :: (a :: 'X -> Type) -> a X -> (b :: 'X) -> a b 6'XCase :: forall (a :: 'X -> Type) -> a X -> forall (b :: 'X) -> a b
7match'X :: (a :: Type -> Type) -> a 'X -> (b :: Type) -> a b -> a b 7match'X :: forall (a :: Type -> Type) -> a 'X -> forall b -> a b -> a b
8!focus checkMetas: \a -> (\(b :: Type) -> primFix a b) (\(a := Type) -> \(c :: Type) -> <<HERE>>) 8!focus checkMetas: \a -> (\b -> primFix a b) (\(a := Type) -> \c -> <<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
diff --git a/testdata/typesigctx.reject.out b/testdata/typesigctx.reject.out
index a1052bcd..53748e22 100644
--- a/testdata/typesigctx.reject.out
+++ b/testdata/typesigctx.reject.out
@@ -3,8 +3,8 @@ in Wildcard2 builtin 'Type
3------------ trace 3------------ trace
4'X :: Type 4'X :: Type
5X :: 'X 5X :: 'X
6'XCase :: (a :: 'X -> Type) -> a X -> (b :: 'X) -> a b 6'XCase :: forall (a :: 'X -> Type) -> a X -> forall (b :: 'X) -> a b
7match'X :: (a :: Type -> Type) -> a 'X -> (b :: Type) -> 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 ???