summaryrefslogtreecommitdiff
path: root/testdata
diff options
context:
space:
mode:
authorPéter Diviánszky <divipp@gmail.com>2016-05-06 12:29:36 +0200
committerPéter Diviánszky <divipp@gmail.com>2016-05-06 12:29:36 +0200
commitd353a29bb93d3105a763465300b28250117c3f40 (patch)
tree1517e23109d5e3c266b634b3c7af4dd4ca29e4d7 /testdata
parent3430070058610b6aeab2543bc050bb1cf2e95d0c (diff)
show typechecked source code in .out files & fix local function handling (again)
Diffstat (limited to 'testdata')
-rw-r--r--testdata/Builtins.out2880
-rw-r--r--testdata/Internals.out602
-rw-r--r--testdata/Material.out1016
-rw-r--r--testdata/Prelude.out1402
-rw-r--r--testdata/SampleMaterial.out1878
-rw-r--r--testdata/ambig.out12
-rw-r--r--testdata/complex.out401
-rw-r--r--testdata/data.out165
-rw-r--r--testdata/empty.out7
-rw-r--r--testdata/id.out3
-rw-r--r--testdata/instantiate.out3
-rw-r--r--testdata/language-features/basic-list/list01.out8
-rw-r--r--testdata/language-features/basic-list/list02.out8
-rw-r--r--testdata/language-features/basic-list/list08.out3
-rw-r--r--testdata/language-features/basic-list/list09.out3
-rw-r--r--testdata/language-features/basic-list/list11.out3
-rw-r--r--testdata/language-features/basic-list/list12.out5
-rw-r--r--testdata/language-features/basic-list/list13.out3
-rw-r--r--testdata/language-features/basic-list/listcomp01.out5
-rw-r--r--testdata/language-features/basic-list/listcomp02.out5
-rw-r--r--testdata/language-features/basic-list/listcomp03.out6
-rw-r--r--testdata/language-features/basic-list/listcomp04.out7
-rw-r--r--testdata/language-features/basic-list/listcomp05.out5
-rw-r--r--testdata/language-features/basic-list/listcomp06.out9
-rw-r--r--testdata/language-features/basic-list/listcomp07.out13
-rw-r--r--testdata/language-features/basic-list/listcomp09.out6
-rw-r--r--testdata/language-features/basic-values/bool01.out5
-rw-r--r--testdata/language-features/basic-values/case01.out15
-rw-r--r--testdata/language-features/basic-values/case02.out20
-rw-r--r--testdata/language-features/basic-values/case05.out7
-rw-r--r--testdata/language-features/basic-values/case06.out7
-rw-r--r--testdata/language-features/basic-values/data01.out61
-rw-r--r--testdata/language-features/basic-values/def01.out13
-rw-r--r--testdata/language-features/basic-values/def03.out16
-rw-r--r--testdata/language-features/basic-values/def04.out25
-rw-r--r--testdata/language-features/basic-values/deforder01.out5
-rw-r--r--testdata/language-features/basic-values/deforder02.out5
-rw-r--r--testdata/language-features/basic-values/deforder03.out3
-rw-r--r--testdata/language-features/basic-values/deforder04.out3
-rw-r--r--testdata/language-features/basic-values/deforder05.out3
-rw-r--r--testdata/language-features/basic-values/deforder06.out3
-rw-r--r--testdata/language-features/basic-values/fixity01.out21
-rw-r--r--testdata/language-features/basic-values/fixity02.out69
-rw-r--r--testdata/language-features/basic-values/if01.out5
-rw-r--r--testdata/language-features/basic-values/indentation01.out5
-rw-r--r--testdata/language-features/basic-values/indentation02.out5
-rw-r--r--testdata/language-features/basic-values/infix01.out7
-rw-r--r--testdata/language-features/basic-values/infix02.out7
-rw-r--r--testdata/language-features/basic-values/infix03.out17
-rw-r--r--testdata/language-features/basic-values/lambda01.out21
-rw-r--r--testdata/language-features/basic-values/lambda03.out9
-rw-r--r--testdata/language-features/basic-values/let01.out11
-rw-r--r--testdata/language-features/basic-values/let02.out3
-rw-r--r--testdata/language-features/basic-values/literal01.out23
-rw-r--r--testdata/language-features/basic-values/operator01.out25
-rw-r--r--testdata/language-features/basic-values/operator05.out5
-rw-r--r--testdata/language-features/basic-values/operator06.out5
-rw-r--r--testdata/language-features/basic-values/shadowing01.out3
-rw-r--r--testdata/language-features/basic-values/shadowing02.out9
-rw-r--r--testdata/language-features/basic-values/shadowing03.out5
-rw-r--r--testdata/language-features/basic-values/shadowing04.out5
-rw-r--r--testdata/language-features/basic-values/tuple01.out3
-rw-r--r--testdata/language-features/basic-values/tuple02.out7
-rw-r--r--testdata/language-features/basic-values/typesig01.out5
-rw-r--r--testdata/language-features/basic-values/typesig02.out5
-rw-r--r--testdata/language-features/basic-values/typesig03.out9
-rw-r--r--testdata/language-features/basic-values/typesig04.out9
-rw-r--r--testdata/language-features/basic-values/typesig05.out17
-rw-r--r--testdata/language-features/basic-values/typesig06.out15
-rw-r--r--testdata/language-features/basic-values/typesig07.out21
-rw-r--r--testdata/language-features/basic-values/typesyn01.out3
-rw-r--r--testdata/language-features/basic-values/typesyn02.out7
-rw-r--r--testdata/language-features/basic-values/where01.out27
-rw-r--r--testdata/language-features/basic-values/where04.out7
-rw-r--r--testdata/language-features/basic-values/where05.out41
-rw-r--r--testdata/language-features/basic-values/wildcard01.out5
-rw-r--r--testdata/language-features/comment/comment01.out3
-rw-r--r--testdata/language-features/comment/comment02.out3
-rw-r--r--testdata/language-features/comment/comment03.out3
-rw-r--r--testdata/language-features/comment/comment04.out3
-rw-r--r--testdata/language-features/emptysource.out3
-rw-r--r--testdata/language-features/guard/guard01.out5
-rw-r--r--testdata/language-features/guard/guard03.out7
-rw-r--r--testdata/language-features/guard/guard04.out5
-rw-r--r--testdata/language-features/guard/guard06.out3
-rw-r--r--testdata/language-features/guard/guard07.out7
-rw-r--r--testdata/language-features/guard/guard08.out7
-rw-r--r--testdata/language-features/guard/guard09.out7
-rw-r--r--testdata/language-features/guard/guard11.out5
-rw-r--r--testdata/language-features/guard/guard13.out5
-rw-r--r--testdata/language-features/guard/guard14.out5
-rw-r--r--testdata/language-features/guard/guard15.out5
-rw-r--r--testdata/language-features/guard/guard16.out9
-rw-r--r--testdata/language-features/module/Hello01.out5
-rw-r--r--testdata/language-features/module/Hello02.out4
-rw-r--r--testdata/language-features/module/Hello03.out4
-rw-r--r--testdata/language-features/module/ModulePackage/SubModule01.out3
-rw-r--r--testdata/language-features/module/Moduledef01.out3
-rw-r--r--testdata/language-features/module/Moduledef06.out3
-rw-r--r--testdata/language-features/module/Moduledef07.out3
-rw-r--r--testdata/language-features/module/Moduledef08.out3
-rw-r--r--testdata/language-features/module/Moduledef09.out4
-rw-r--r--testdata/language-features/module/Moduledef10.out6
-rw-r--r--testdata/language-features/module/Moduledef13.out3
-rw-r--r--testdata/language-features/module/TypeSyn01Mod.out3
-rw-r--r--testdata/language-features/module/import01.out3
-rw-r--r--testdata/language-features/module/import05.out3
-rw-r--r--testdata/language-features/module/import06.out5
-rw-r--r--testdata/language-features/module/import07.out5
-rw-r--r--testdata/language-features/module/import08.out11
-rw-r--r--testdata/language-features/module/import09.out5
-rw-r--r--testdata/language-features/module/import12.out3
-rw-r--r--testdata/language-features/module/import13.out3
-rw-r--r--testdata/language-features/module/import14.out3
-rw-r--r--testdata/language-features/module/import15.out3
-rw-r--r--testdata/language-features/pattern/pattern01.out31
-rw-r--r--testdata/language-features/pattern/uncovered.out132
-rw-r--r--testdata/language-features/pattern/unreachable.out5
-rw-r--r--testdata/language-features/pragma/pragma01.out3
-rw-r--r--testdata/language-features/pragma/pragma02.out3
-rw-r--r--testdata/language-features/pragma/pragma03.out3
-rw-r--r--testdata/language-features/pragma/pragma04.out3
-rw-r--r--testdata/language-features/recursion/simplerec01.out12
-rw-r--r--testdata/language-features/recursion/simplerec02.out5
-rw-r--r--testdata/language-features/recursion/simplerec03.out5
-rw-r--r--testdata/language-features/section/section01.out11
-rw-r--r--testdata/let.lc5
-rw-r--r--testdata/let.out22
-rw-r--r--testdata/letIndent.out3
-rw-r--r--testdata/localfun2.lc11
-rw-r--r--testdata/localfun2.out89
-rw-r--r--testdata/performance/Material.out1016
-rw-r--r--testdata/performance/SampleMaterial.out1878
-rw-r--r--testdata/qualified.out3
-rw-r--r--testdata/traceTest.out13
-rw-r--r--testdata/typeclass.out68
-rw-r--r--testdata/where.out3
-rw-r--r--testdata/zip01.out18
138 files changed, 10597 insertions, 2008 deletions
diff --git a/testdata/Builtins.out b/testdata/Builtins.out
index 2c4b1a46..e5a33d12 100644
--- a/testdata/Builtins.out
+++ b/testdata/Builtins.out
@@ -10,7 +10,7 @@ data VecS (_ :: Type) :: Nat -> Type where
10mapVec :: forall (a :: _) (b :: _) (c :: _) . (a -> b) -> VecS a c -> VecS b c 10mapVec :: forall (a :: _) (b :: _) (c :: _) . (a -> b) -> VecS a c -> VecS b c
11mapVec 11mapVec
12 = \(a :: _) (b :: _) -> case'VecS 12 = \(a :: _) (b :: _) -> case'VecS
13 (\_ _ -> _) 13 (\(_ :: _) (_ :: _) -> _)
14 (\(c :: _) (d :: _) -> _rhs (V2 (a c) (a d))) 14 (\(c :: _) (d :: _) -> _rhs (V2 (a c) (a d)))
15 (\(e :: _) (f :: _) (g :: _) -> _rhs (V3 (a e) (a f) (a g))) 15 (\(e :: _) (f :: _) (g :: _) -> _rhs (V3 (a e) (a f) (a g)))
16 (\(h :: _) (i :: _) (j :: _) (k :: _) -> _rhs (V4 (a h) (a i) (a j) (a k))) 16 (\(h :: _) (i :: _) (j :: _) (k :: _) -> _rhs (V4 (a h) (a i) (a j) (a k)))
@@ -22,10 +22,10 @@ mapVec
22'VecScalar :: Nat -> Type -> Type 22'VecScalar :: Nat -> Type -> Type
23'VecScalar 23'VecScalar
24 = \(a :: _) (b :: _) -> case'Nat 24 = \(a :: _) (b :: _) -> case'Nat
25 (\_ -> _) 25 (\(_ :: _) -> _)
26 undefined 26 undefined
27 (\(c :: _) -> case'Nat 27 (\(c :: _) -> case'Nat
28 (\_ -> _) 28 (\(_ :: _) -> _)
29 (_rhs b) 29 (_rhs b)
30 (\(d :: _) -> _rhs ('Vec (Succ (Succ d)) b)) 30 (\(d :: _) -> _rhs ('Vec (Succ (Succ d)) b))
31 c) 31 c)
@@ -72,31 +72,35 @@ data Mat :: Nat -> Nat -> Type -> Type where
72'MatVecScalarElem :: Type -> Type 72'MatVecScalarElem :: Type -> Type
73'MatVecScalarElem 73'MatVecScalarElem
74 = \(a :: _) -> match'Float 74 = \(a :: _) -> match'Float
75 (\_ -> _) 75 (\(_ :: _) -> _)
76 (_rhs 'Float) 76 (_rhs 'Float)
77 a 77 a
78 (match'Bool 78 (match'Bool
79 (\_ -> _) 79 (\(_ :: _) -> _)
80 (_rhs 'Bool) 80 (_rhs 'Bool)
81 a 81 a
82 (match'Int 82 (match'Int
83 (\_ -> _) 83 (\(_ :: _) -> _)
84 (_rhs 'Int) 84 (_rhs 'Int)
85 a 85 a
86 (match'VecS 86 (match'VecS
87 (\_ -> _) 87 (\(_ :: _) -> _)
88 (\(b :: _) _ -> _rhs b) 88 (\(b :: _) (_ :: _) -> _rhs b)
89 a 89 a
90 (match'Mat (\_ -> _) (\_ _ (c :: _) -> _rhs c) a undefined)))) 90 (match'Mat
91 (\(_ :: _) -> _)
92 (\(_ :: _) (_ :: _) (c :: _) -> _rhs c)
93 a
94 undefined))))
91 95
92'Signed :: Type -> Constraint 96'Signed :: Type -> Constraint
93'Signed 97'Signed
94 = \(a :: _) -> match'Int 98 = \(a :: _) -> match'Int
95 (\_ -> _) 99 (\(_ :: _) -> _)
96 (_rhs 'CUnit) 100 (_rhs 'CUnit)
97 a 101 a
98 (match'Float 102 (match'Float
99 (\_ -> _) 103 (\(_ :: _) -> _)
100 (_rhs 'CUnit) 104 (_rhs 'CUnit)
101 a 105 a
102 (_rhs ('CEmpty "no instance of 'Signed on ???"))) 106 (_rhs ('CEmpty "no instance of 'Signed on ???")))
@@ -104,37 +108,37 @@ data Mat :: Nat -> Nat -> Type -> Type where
104'Component :: Type -> Constraint 108'Component :: Type -> Constraint
105'Component 109'Component
106 = \(a :: _) -> match'Int 110 = \(a :: _) -> match'Int
107 (\_ -> _) 111 (\(_ :: _) -> _)
108 (_rhs 'CUnit) 112 (_rhs 'CUnit)
109 a 113 a
110 (match'Word 114 (match'Word
111 (\_ -> _) 115 (\(_ :: _) -> _)
112 (_rhs 'CUnit) 116 (_rhs 'CUnit)
113 a 117 a
114 (match'Float 118 (match'Float
115 (\_ -> _) 119 (\(_ :: _) -> _)
116 (_rhs 'CUnit) 120 (_rhs 'CUnit)
117 a 121 a
118 (match'VecS 122 (match'VecS
119 (\_ -> _) 123 (\(_ :: _) -> _)
120 (\(b :: _) (c :: _) -> match'Float 124 (\(b :: _) (c :: _) -> match'Float
121 (\_ -> _) 125 (\(_ :: _) -> _)
122 (case'Nat 126 (case'Nat
123 (\_ -> _) 127 (\(_ :: _) -> _)
124 (_rhs ('CEmpty "no instance of 'Component on ???")) 128 (_rhs ('CEmpty "no instance of 'Component on ???"))
125 (\(d :: _) -> case'Nat 129 (\(d :: _) -> case'Nat
126 (\_ -> _) 130 (\(_ :: _) -> _)
127 (_rhs ('CEmpty "no instance of 'Component on ???")) 131 (_rhs ('CEmpty "no instance of 'Component on ???"))
128 (\(e :: _) -> case'Nat 132 (\(e :: _) -> case'Nat
129 (\_ -> _) 133 (\(_ :: _) -> _)
130 (_rhs 'CUnit) 134 (_rhs 'CUnit)
131 (\(f :: _) -> case'Nat 135 (\(f :: _) -> case'Nat
132 (\_ -> _) 136 (\(_ :: _) -> _)
133 (_rhs 'CUnit) 137 (_rhs 'CUnit)
134 (\(g :: _) -> case'Nat 138 (\(g :: _) -> case'Nat
135 (\_ -> _) 139 (\(_ :: _) -> _)
136 (_rhs 'CUnit) 140 (_rhs 'CUnit)
137 (\_ -> _rhs ('CEmpty "no instance of 'Component on ???")) 141 (\(_ :: _) -> _rhs ('CEmpty "no instance of 'Component on ???"))
138 g) 142 g)
139 f) 143 f)
140 e) 144 e)
@@ -142,23 +146,23 @@ data Mat :: Nat -> Nat -> Type -> Type where
142 c) 146 c)
143 b 147 b
144 (match'Bool 148 (match'Bool
145 (\_ -> _) 149 (\(_ :: _) -> _)
146 (case'Nat 150 (case'Nat
147 (\_ -> _) 151 (\(_ :: _) -> _)
148 (_rhs ('CEmpty "no instance of 'Component on ???")) 152 (_rhs ('CEmpty "no instance of 'Component on ???"))
149 (\(h :: _) -> case'Nat 153 (\(h :: _) -> case'Nat
150 (\_ -> _) 154 (\(_ :: _) -> _)
151 (_rhs ('CEmpty "no instance of 'Component on ???")) 155 (_rhs ('CEmpty "no instance of 'Component on ???"))
152 (\(i :: _) -> case'Nat 156 (\(i :: _) -> case'Nat
153 (\_ -> _) 157 (\(_ :: _) -> _)
154 (_rhs 'CUnit) 158 (_rhs 'CUnit)
155 (\(j :: _) -> case'Nat 159 (\(j :: _) -> case'Nat
156 (\_ -> _) 160 (\(_ :: _) -> _)
157 (_rhs 'CUnit) 161 (_rhs 'CUnit)
158 (\(k :: _) -> case'Nat 162 (\(k :: _) -> case'Nat
159 (\_ -> _) 163 (\(_ :: _) -> _)
160 (_rhs 'CUnit) 164 (_rhs 'CUnit)
161 (\_ -> _rhs ('CEmpty "no instance of 'Component on ???")) 165 (\(_ :: _) -> _rhs ('CEmpty "no instance of 'Component on ???"))
162 k) 166 k)
163 j) 167 j)
164 i) 168 i)
@@ -168,45 +172,45 @@ data Mat :: Nat -> Nat -> Type -> Type where
168 (_rhs ('CEmpty "no instance of 'Component on ???")))) 172 (_rhs ('CEmpty "no instance of 'Component on ???"))))
169 a 173 a
170 (match'Bool 174 (match'Bool
171 (\_ -> _) 175 (\(_ :: _) -> _)
172 (_rhs 'CUnit) 176 (_rhs 'CUnit)
173 a 177 a
174 (_rhs ('CEmpty "no instance of 'Component on ???")))))) 178 (_rhs ('CEmpty "no instance of 'Component on ???"))))))
175 179
176zero :: forall a . Component a => a 180zero :: forall a . Component a => a
177zero 181zero
178 = \ @a @_ -> match'Int 182 = \ @a @(_ :: _) -> match'Int
179 (\_ -> _) 183 (\(_ :: _) -> _)
180 (_rhs let b = _rhs (fromInt 0 :: Int) in b) 184 (_rhs let b = _rhs (fromInt 0 :: Int) in b)
181 a 185 a
182 (match'Word 186 (match'Word
183 (\_ -> _) 187 (\(_ :: _) -> _)
184 (_rhs let c = _rhs (fromInt 0 :: Word) in c) 188 (_rhs let c = _rhs (fromInt 0 :: Word) in c)
185 a 189 a
186 (match'Float 190 (match'Float
187 (\_ -> _) 191 (\(_ :: _) -> _)
188 (_rhs let d = _rhs 0.0 in d) 192 (_rhs let d = _rhs 0.0 in d)
189 a 193 a
190 (match'VecS 194 (match'VecS
191 (\_ -> _) 195 (\(_ :: _) -> _)
192 (\(e :: _) (f :: _) -> match'Float 196 (\(e :: _) (f :: _) -> match'Float
193 (\_ -> _) 197 (\(_ :: _) -> _)
194 (case'Nat 198 (case'Nat
195 (\_ -> _) 199 (\(_ :: _) -> _)
196 (_rhs undefined) 200 (_rhs undefined)
197 (\(g :: _) -> case'Nat 201 (\(g :: _) -> case'Nat
198 (\_ -> _) 202 (\(_ :: _) -> _)
199 (_rhs undefined) 203 (_rhs undefined)
200 (\(h :: _) -> case'Nat 204 (\(h :: _) -> case'Nat
201 (\_ -> _) 205 (\(_ :: _) -> _)
202 (_rhs let i = _rhs (V2 0.0 0.0) in i) 206 (_rhs let i = _rhs (V2 0.0 0.0) in i)
203 (\(j :: _) -> case'Nat 207 (\(j :: _) -> case'Nat
204 (\_ -> _) 208 (\(_ :: _) -> _)
205 (_rhs let k = _rhs (V3 0.0 0.0 0.0) in k) 209 (_rhs let k = _rhs (V3 0.0 0.0 0.0) in k)
206 (\(l :: _) -> case'Nat 210 (\(l :: _) -> case'Nat
207 (\_ -> _) 211 (\(_ :: _) -> _)
208 (_rhs let m = _rhs (V4 0.0 0.0 0.0 0.0) in m) 212 (_rhs let m = _rhs (V4 0.0 0.0 0.0 0.0) in m)
209 (\_ -> _rhs undefined) 213 (\(_ :: _) -> _rhs undefined)
210 l) 214 l)
211 j) 215 j)
212 h) 216 h)
@@ -214,23 +218,23 @@ zero
214 f) 218 f)
215 e 219 e
216 (match'Bool 220 (match'Bool
217 (\_ -> _) 221 (\(_ :: _) -> _)
218 (case'Nat 222 (case'Nat
219 (\_ -> _) 223 (\(_ :: _) -> _)
220 (_rhs undefined) 224 (_rhs undefined)
221 (\(n :: _) -> case'Nat 225 (\(n :: _) -> case'Nat
222 (\_ -> _) 226 (\(_ :: _) -> _)
223 (_rhs undefined) 227 (_rhs undefined)
224 (\(o :: _) -> case'Nat 228 (\(o :: _) -> case'Nat
225 (\_ -> _) 229 (\(_ :: _) -> _)
226 (_rhs let p = _rhs (V2 False False) in p) 230 (_rhs let p = _rhs (V2 False False) in p)
227 (\(q :: _) -> case'Nat 231 (\(q :: _) -> case'Nat
228 (\_ -> _) 232 (\(_ :: _) -> _)
229 (_rhs let r = _rhs (V3 False False False) in r) 233 (_rhs let r = _rhs (V3 False False False) in r)
230 (\(s :: _) -> case'Nat 234 (\(s :: _) -> case'Nat
231 (\_ -> _) 235 (\(_ :: _) -> _)
232 (_rhs let t = _rhs (V4 False False False False) in t) 236 (_rhs let t = _rhs (V4 False False False False) in t)
233 (\_ -> _rhs undefined) 237 (\(_ :: _) -> _rhs undefined)
234 s) 238 s)
235 q) 239 q)
236 o) 240 o)
@@ -239,42 +243,46 @@ zero
239 e 243 e
240 (_rhs undefined))) 244 (_rhs undefined)))
241 a 245 a
242 (match'Bool (\_ -> _) (_rhs let u = _rhs False in u) a (_rhs undefined))))) 246 (match'Bool
247 (\(_ :: _) -> _)
248 (_rhs let u = _rhs False in u)
249 a
250 (_rhs undefined)))))
243 251
244one :: forall a . Component a => a 252one :: forall a . Component a => a
245one 253one
246 = \ @a @_ -> match'Int 254 = \ @a @(_ :: _) -> match'Int
247 (\_ -> _) 255 (\(_ :: _) -> _)
248 (_rhs let b = _rhs (fromInt 1 :: Int) in b) 256 (_rhs let b = _rhs (fromInt 1 :: Int) in b)
249 a 257 a
250 (match'Word 258 (match'Word
251 (\_ -> _) 259 (\(_ :: _) -> _)
252 (_rhs let c = _rhs (fromInt 1 :: Word) in c) 260 (_rhs let c = _rhs (fromInt 1 :: Word) in c)
253 a 261 a
254 (match'Float 262 (match'Float
255 (\_ -> _) 263 (\(_ :: _) -> _)
256 (_rhs let d = _rhs 1.0 in d) 264 (_rhs let d = _rhs 1.0 in d)
257 a 265 a
258 (match'VecS 266 (match'VecS
259 (\_ -> _) 267 (\(_ :: _) -> _)
260 (\(e :: _) (f :: _) -> match'Float 268 (\(e :: _) (f :: _) -> match'Float
261 (\_ -> _) 269 (\(_ :: _) -> _)
262 (case'Nat 270 (case'Nat
263 (\_ -> _) 271 (\(_ :: _) -> _)
264 (_rhs undefined) 272 (_rhs undefined)
265 (\(g :: _) -> case'Nat 273 (\(g :: _) -> case'Nat
266 (\_ -> _) 274 (\(_ :: _) -> _)
267 (_rhs undefined) 275 (_rhs undefined)
268 (\(h :: _) -> case'Nat 276 (\(h :: _) -> case'Nat
269 (\_ -> _) 277 (\(_ :: _) -> _)
270 (_rhs let i = _rhs (V2 1.0 1.0) in i) 278 (_rhs let i = _rhs (V2 1.0 1.0) in i)
271 (\(j :: _) -> case'Nat 279 (\(j :: _) -> case'Nat
272 (\_ -> _) 280 (\(_ :: _) -> _)
273 (_rhs let k = _rhs (V3 1.0 1.0 1.0) in k) 281 (_rhs let k = _rhs (V3 1.0 1.0 1.0) in k)
274 (\(l :: _) -> case'Nat 282 (\(l :: _) -> case'Nat
275 (\_ -> _) 283 (\(_ :: _) -> _)
276 (_rhs let m = _rhs (V4 1.0 1.0 1.0 1.0) in m) 284 (_rhs let m = _rhs (V4 1.0 1.0 1.0 1.0) in m)
277 (\_ -> _rhs undefined) 285 (\(_ :: _) -> _rhs undefined)
278 l) 286 l)
279 j) 287 j)
280 h) 288 h)
@@ -282,23 +290,23 @@ one
282 f) 290 f)
283 e 291 e
284 (match'Bool 292 (match'Bool
285 (\_ -> _) 293 (\(_ :: _) -> _)
286 (case'Nat 294 (case'Nat
287 (\_ -> _) 295 (\(_ :: _) -> _)
288 (_rhs undefined) 296 (_rhs undefined)
289 (\(n :: _) -> case'Nat 297 (\(n :: _) -> case'Nat
290 (\_ -> _) 298 (\(_ :: _) -> _)
291 (_rhs undefined) 299 (_rhs undefined)
292 (\(o :: _) -> case'Nat 300 (\(o :: _) -> case'Nat
293 (\_ -> _) 301 (\(_ :: _) -> _)
294 (_rhs let p = _rhs (V2 True True) in p) 302 (_rhs let p = _rhs (V2 True True) in p)
295 (\(q :: _) -> case'Nat 303 (\(q :: _) -> case'Nat
296 (\_ -> _) 304 (\(_ :: _) -> _)
297 (_rhs let r = _rhs (V3 True True True) in r) 305 (_rhs let r = _rhs (V3 True True True) in r)
298 (\(s :: _) -> case'Nat 306 (\(s :: _) -> case'Nat
299 (\_ -> _) 307 (\(_ :: _) -> _)
300 (_rhs let t = _rhs (V4 True True True True) in t) 308 (_rhs let t = _rhs (V4 True True True True) in t)
301 (\_ -> _rhs undefined) 309 (\(_ :: _) -> _rhs undefined)
302 s) 310 s)
303 q) 311 q)
304 o) 312 o)
@@ -307,16 +315,20 @@ one
307 e 315 e
308 (_rhs undefined))) 316 (_rhs undefined)))
309 a 317 a
310 (match'Bool (\_ -> _) (_rhs let u = _rhs True in u) a (_rhs undefined))))) 318 (match'Bool
319 (\(_ :: _) -> _)
320 (_rhs let u = _rhs True in u)
321 a
322 (_rhs undefined)))))
311 323
312'Integral :: Type -> Constraint 324'Integral :: Type -> Constraint
313'Integral 325'Integral
314 = \(a :: _) -> match'Int 326 = \(a :: _) -> match'Int
315 (\_ -> _) 327 (\(_ :: _) -> _)
316 (_rhs 'CUnit) 328 (_rhs 'CUnit)
317 a 329 a
318 (match'Word 330 (match'Word
319 (\_ -> _) 331 (\(_ :: _) -> _)
320 (_rhs 'CUnit) 332 (_rhs 'CUnit)
321 a 333 a
322 (_rhs ('CEmpty "no instance of 'Integral on ???"))) 334 (_rhs ('CEmpty "no instance of 'Integral on ???")))
@@ -324,29 +336,29 @@ one
324'Floating :: Type -> Constraint 336'Floating :: Type -> Constraint
325'Floating 337'Floating
326 = \(a :: _) -> match'Float 338 = \(a :: _) -> match'Float
327 (\_ -> _) 339 (\(_ :: _) -> _)
328 (_rhs 'CUnit) 340 (_rhs 'CUnit)
329 a 341 a
330 (match'VecS 342 (match'VecS
331 (\_ -> _) 343 (\(_ :: _) -> _)
332 (\(b :: _) (c :: _) -> match'Float 344 (\(b :: _) (c :: _) -> match'Float
333 (\_ -> _) 345 (\(_ :: _) -> _)
334 (case'Nat 346 (case'Nat
335 (\_ -> _) 347 (\(_ :: _) -> _)
336 (_rhs ('CEmpty "no instance of 'Floating on ???")) 348 (_rhs ('CEmpty "no instance of 'Floating on ???"))
337 (\(d :: _) -> case'Nat 349 (\(d :: _) -> case'Nat
338 (\_ -> _) 350 (\(_ :: _) -> _)
339 (_rhs ('CEmpty "no instance of 'Floating on ???")) 351 (_rhs ('CEmpty "no instance of 'Floating on ???"))
340 (\(e :: _) -> case'Nat 352 (\(e :: _) -> case'Nat
341 (\_ -> _) 353 (\(_ :: _) -> _)
342 (_rhs 'CUnit) 354 (_rhs 'CUnit)
343 (\(f :: _) -> case'Nat 355 (\(f :: _) -> case'Nat
344 (\_ -> _) 356 (\(_ :: _) -> _)
345 (_rhs 'CUnit) 357 (_rhs 'CUnit)
346 (\(g :: _) -> case'Nat 358 (\(g :: _) -> case'Nat
347 (\_ -> _) 359 (\(_ :: _) -> _)
348 (_rhs 'CUnit) 360 (_rhs 'CUnit)
349 (\_ -> _rhs ('CEmpty "no instance of 'Floating on ???")) 361 (\(_ :: _) -> _rhs ('CEmpty "no instance of 'Floating on ???"))
350 g) 362 g)
351 f) 363 f)
352 e) 364 e)
@@ -356,119 +368,119 @@ one
356 (_rhs ('CEmpty "no instance of 'Floating on ???"))) 368 (_rhs ('CEmpty "no instance of 'Floating on ???")))
357 a 369 a
358 (match'Mat 370 (match'Mat
359 (\_ -> _) 371 (\(_ :: _) -> _)
360 (\(h :: _) (i :: _) (j :: _) -> case'Nat 372 (\(h :: _) (i :: _) (j :: _) -> case'Nat
361 (\_ -> _) 373 (\(_ :: _) -> _)
362 (_rhs ('CEmpty "no instance of 'Floating on ???")) 374 (_rhs ('CEmpty "no instance of 'Floating on ???"))
363 (\(k :: _) -> case'Nat 375 (\(k :: _) -> case'Nat
364 (\_ -> _) 376 (\(_ :: _) -> _)
365 (_rhs ('CEmpty "no instance of 'Floating on ???")) 377 (_rhs ('CEmpty "no instance of 'Floating on ???"))
366 (\(l :: _) -> case'Nat 378 (\(l :: _) -> case'Nat
367 (\_ -> _) 379 (\(_ :: _) -> _)
368 (case'Nat 380 (case'Nat
369 (\_ -> _) 381 (\(_ :: _) -> _)
370 (_rhs ('CEmpty "no instance of 'Floating on ???")) 382 (_rhs ('CEmpty "no instance of 'Floating on ???"))
371 (\(m :: _) -> case'Nat 383 (\(m :: _) -> case'Nat
372 (\_ -> _) 384 (\(_ :: _) -> _)
373 (_rhs ('CEmpty "no instance of 'Floating on ???")) 385 (_rhs ('CEmpty "no instance of 'Floating on ???"))
374 (\(n :: _) -> case'Nat 386 (\(n :: _) -> case'Nat
375 (\_ -> _) 387 (\(_ :: _) -> _)
376 (match'Float 388 (match'Float
377 (\_ -> _) 389 (\(_ :: _) -> _)
378 (_rhs 'CUnit) 390 (_rhs 'CUnit)
379 j 391 j
380 (_rhs ('CEmpty "no instance of 'Floating on ???"))) 392 (_rhs ('CEmpty "no instance of 'Floating on ???")))
381 (\(o :: _) -> case'Nat 393 (\(o :: _) -> case'Nat
382 (\_ -> _) 394 (\(_ :: _) -> _)
383 (match'Float 395 (match'Float
384 (\_ -> _) 396 (\(_ :: _) -> _)
385 (_rhs 'CUnit) 397 (_rhs 'CUnit)
386 j 398 j
387 (_rhs ('CEmpty "no instance of 'Floating on ???"))) 399 (_rhs ('CEmpty "no instance of 'Floating on ???")))
388 (\(p :: _) -> case'Nat 400 (\(p :: _) -> case'Nat
389 (\_ -> _) 401 (\(_ :: _) -> _)
390 (match'Float 402 (match'Float
391 (\_ -> _) 403 (\(_ :: _) -> _)
392 (_rhs 'CUnit) 404 (_rhs 'CUnit)
393 j 405 j
394 (_rhs ('CEmpty "no instance of 'Floating on ???"))) 406 (_rhs ('CEmpty "no instance of 'Floating on ???")))
395 (\_ -> _rhs ('CEmpty "no instance of 'Floating on ???")) 407 (\(_ :: _) -> _rhs ('CEmpty "no instance of 'Floating on ???"))
396 p) 408 p)
397 o) 409 o)
398 n) 410 n)
399 m) 411 m)
400 i) 412 i)
401 (\(q :: _) -> case'Nat 413 (\(q :: _) -> case'Nat
402 (\_ -> _) 414 (\(_ :: _) -> _)
403 (case'Nat 415 (case'Nat
404 (\_ -> _) 416 (\(_ :: _) -> _)
405 (_rhs ('CEmpty "no instance of 'Floating on ???")) 417 (_rhs ('CEmpty "no instance of 'Floating on ???"))
406 (\(r :: _) -> case'Nat 418 (\(r :: _) -> case'Nat
407 (\_ -> _) 419 (\(_ :: _) -> _)
408 (_rhs ('CEmpty "no instance of 'Floating on ???")) 420 (_rhs ('CEmpty "no instance of 'Floating on ???"))
409 (\(s :: _) -> case'Nat 421 (\(s :: _) -> case'Nat
410 (\_ -> _) 422 (\(_ :: _) -> _)
411 (match'Float 423 (match'Float
412 (\_ -> _) 424 (\(_ :: _) -> _)
413 (_rhs 'CUnit) 425 (_rhs 'CUnit)
414 j 426 j
415 (_rhs ('CEmpty "no instance of 'Floating on ???"))) 427 (_rhs ('CEmpty "no instance of 'Floating on ???")))
416 (\(t :: _) -> case'Nat 428 (\(t :: _) -> case'Nat
417 (\_ -> _) 429 (\(_ :: _) -> _)
418 (match'Float 430 (match'Float
419 (\_ -> _) 431 (\(_ :: _) -> _)
420 (_rhs 'CUnit) 432 (_rhs 'CUnit)
421 j 433 j
422 (_rhs ('CEmpty "no instance of 'Floating on ???"))) 434 (_rhs ('CEmpty "no instance of 'Floating on ???")))
423 (\(u :: _) -> case'Nat 435 (\(u :: _) -> case'Nat
424 (\_ -> _) 436 (\(_ :: _) -> _)
425 (match'Float 437 (match'Float
426 (\_ -> _) 438 (\(_ :: _) -> _)
427 (_rhs 'CUnit) 439 (_rhs 'CUnit)
428 j 440 j
429 (_rhs ('CEmpty "no instance of 'Floating on ???"))) 441 (_rhs ('CEmpty "no instance of 'Floating on ???")))
430 (\_ -> _rhs ('CEmpty "no instance of 'Floating on ???")) 442 (\(_ :: _) -> _rhs ('CEmpty "no instance of 'Floating on ???"))
431 u) 443 u)
432 t) 444 t)
433 s) 445 s)
434 r) 446 r)
435 i) 447 i)
436 (\(v :: _) -> case'Nat 448 (\(v :: _) -> case'Nat
437 (\_ -> _) 449 (\(_ :: _) -> _)
438 (case'Nat 450 (case'Nat
439 (\_ -> _) 451 (\(_ :: _) -> _)
440 (_rhs ('CEmpty "no instance of 'Floating on ???")) 452 (_rhs ('CEmpty "no instance of 'Floating on ???"))
441 (\(w :: _) -> case'Nat 453 (\(w :: _) -> case'Nat
442 (\_ -> _) 454 (\(_ :: _) -> _)
443 (_rhs ('CEmpty "no instance of 'Floating on ???")) 455 (_rhs ('CEmpty "no instance of 'Floating on ???"))
444 (\(x :: _) -> case'Nat 456 (\(x :: _) -> case'Nat
445 (\_ -> _) 457 (\(_ :: _) -> _)
446 (match'Float 458 (match'Float
447 (\_ -> _) 459 (\(_ :: _) -> _)
448 (_rhs 'CUnit) 460 (_rhs 'CUnit)
449 j 461 j
450 (_rhs ('CEmpty "no instance of 'Floating on ???"))) 462 (_rhs ('CEmpty "no instance of 'Floating on ???")))
451 (\(y :: _) -> case'Nat 463 (\(y :: _) -> case'Nat
452 (\_ -> _) 464 (\(_ :: _) -> _)
453 (match'Float 465 (match'Float
454 (\_ -> _) 466 (\(_ :: _) -> _)
455 (_rhs 'CUnit) 467 (_rhs 'CUnit)
456 j 468 j
457 (_rhs ('CEmpty "no instance of 'Floating on ???"))) 469 (_rhs ('CEmpty "no instance of 'Floating on ???")))
458 (\(z :: _) -> case'Nat 470 (\(z :: _) -> case'Nat
459 (\_ -> _) 471 (\(_ :: _) -> _)
460 (match'Float 472 (match'Float
461 (\_ -> _) 473 (\(_ :: _) -> _)
462 (_rhs 'CUnit) 474 (_rhs 'CUnit)
463 j 475 j
464 (_rhs ('CEmpty "no instance of 'Floating on ???"))) 476 (_rhs ('CEmpty "no instance of 'Floating on ???")))
465 (\_ -> _rhs ('CEmpty "no instance of 'Floating on ???")) 477 (\(_ :: _) -> _rhs ('CEmpty "no instance of 'Floating on ???"))
466 z) 478 z)
467 y) 479 y)
468 x) 480 x)
469 w) 481 w)
470 i) 482 i)
471 (\_ -> _rhs ('CEmpty "no instance of 'Floating on ???")) 483 (\(_ :: _) -> _rhs ('CEmpty "no instance of 'Floating on ???"))
472 v) 484 v)
473 q) 485 q)
474 l) 486 l)
@@ -766,18 +778,22 @@ PrimNoise3 :: forall (a :: _) . VecScalar a Float -> Vec (fromInt 3) Float
766PrimNoise4 :: forall (a :: _) . VecScalar a Float -> Vec (fromInt 4) Float 778PrimNoise4 :: forall (a :: _) . VecScalar a Float -> Vec (fromInt 4) Float
767 779
768head 780head
769 = \(a :: _) -> case'List (\_ -> _) (_rhs undefined) (\(b :: _) _ -> _rhs b) a 781 = \(a :: _) -> case'List
782 (\(_ :: _) -> _)
783 (_rhs undefined)
784 (\(b :: _) (_ :: _) -> _rhs b)
785 a
770 786
771(++) 787(++)
772 = \(a :: _) (b :: _) -> case'List 788 = \(a :: _) (b :: _) -> case'List
773 (\_ -> _) 789 (\(_ :: _) -> _)
774 (_rhs b) 790 (_rhs b)
775 (\(c :: _) (d :: _) -> _rhs (c : d ++ b)) 791 (\(c :: _) (d :: _) -> _rhs (c : d ++ b))
776 a 792 a
777 793
778foldr 794foldr
779 = \(a :: _) (b :: _) (c :: _) -> case'List 795 = \(a :: _) (b :: _) (c :: _) -> case'List
780 (\_ -> _) 796 (\(_ :: _) -> _)
781 (_rhs b) 797 (_rhs b)
782 (\(d :: _) (e :: _) -> _rhs (a d (foldr a b e))) 798 (\(d :: _) (e :: _) -> _rhs (a d (foldr a b e)))
783 c 799 c
@@ -786,7 +802,7 @@ concat = _rhs (foldr (++) [])
786 802
787map 803map
788 = \(a :: _) (b :: _) -> case'List 804 = \(a :: _) (b :: _) -> case'List
789 (\_ -> _) 805 (\(_ :: _) -> _)
790 (_rhs []) 806 (_rhs [])
791 (\(c :: _) (d :: _) -> _rhs (a c : map a d)) 807 (\(c :: _) (d :: _) -> _rhs (a c : map a d))
792 b 808 b
@@ -796,9 +812,9 @@ concatMap = \(a :: _) (b :: _) -> _rhs (concat (map a b))
796 812
797len 813len
798 = \(a :: _) -> case'List 814 = \(a :: _) -> case'List
799 (\_ -> _) 815 (\(_ :: _) -> _)
800 (_rhs (fromInt 0)) 816 (_rhs (fromInt 0))
801 (\_ (b :: _) -> _rhs (fromInt 1 `primAddInt` len b)) 817 (\(_ :: _) (b :: _) -> _rhs (fromInt 1 `primAddInt` len b))
802 a 818 a
803 819
804data Maybe (_ :: Type) :: Type where 820data Maybe (_ :: Type) :: Type where
@@ -832,7 +848,8 @@ mapPrimitives
832mapPrimitives = \(a :: _) -> _rhs (map (mapPrimitive a)) 848mapPrimitives = \(a :: _) -> _rhs (map (mapPrimitive a))
833 849
834'ListElem :: Type -> Type 850'ListElem :: Type -> Type
835'ListElem = \(a :: _) -> match'List (\_ -> _) (\(b :: _) -> _rhs b) a undefined 851'ListElem
852 = \(a :: _) -> match'List (\(_ :: _) -> _) (\(b :: _) -> _rhs b) a undefined
836 853
837fetchArrays 854fetchArrays
838 :: forall (a :: _) (b :: _) (c :: _) 855 :: forall (a :: _) (b :: _) (c :: _)
@@ -854,10 +871,16 @@ data SimpleFragment (_ :: Type) :: Type where
854'Fragment = \(a :: _) (b :: _) -> _rhs ('Vector a ('Maybe ('SimpleFragment b))) 871'Fragment = \(a :: _) (b :: _) -> _rhs ('Vector a ('Maybe ('SimpleFragment b)))
855 872
856sFragmentCoords 873sFragmentCoords
857 = \(a :: _) -> case'SimpleFragment (\_ -> _) (\(b :: _) _ -> _rhs b) a 874 = \(a :: _) -> case'SimpleFragment
875 (\(_ :: _) -> _)
876 (\(b :: _) (_ :: _) -> _rhs b)
877 a
858 878
859sFragmentValue 879sFragmentValue
860 = \(a :: _) -> case'SimpleFragment (\_ -> _) (\_ (b :: _) -> _rhs b) a 880 = \(a :: _) -> case'SimpleFragment
881 (\(_ :: _) -> _)
882 (\(_ :: _) (b :: _) -> _rhs b)
883 a
861 884
862'FragmentStream = \(a :: _) (b :: _) -> _rhs ['Fragment a b] 885'FragmentStream = \(a :: _) (b :: _) -> _rhs ['Fragment a b]
863 886
@@ -893,7 +916,7 @@ data ImageKind :: Type where
893imageType :: ImageKind -> Type 916imageType :: ImageKind -> Type
894imageType 917imageType
895 = \(a :: _) -> case'ImageKind 918 = \(a :: _) -> case'ImageKind
896 (\_ -> _) 919 (\(_ :: _) -> _)
897 (\(b :: _) -> _rhs b) 920 (\(b :: _) -> _rhs b)
898 (_rhs 'Float) 921 (_rhs 'Float)
899 (_rhs 'Int) 922 (_rhs 'Int)
@@ -923,23 +946,23 @@ data Swizz :: Type where
923swizzscalar :: forall (a :: _) (b :: _) . Vec b a -> Swizz -> a 946swizzscalar :: forall (a :: _) (b :: _) . Vec b a -> Swizz -> a
924swizzscalar 947swizzscalar
925 = \(a :: _) (b :: _) -> case'VecS 948 = \(a :: _) (b :: _) -> case'VecS
926 (\_ _ -> _) 949 (\(_ :: _) (_ :: _) -> _)
927 (\(c :: _) (d :: _) -> case'Swizz 950 (\(c :: _) (d :: _) -> case'Swizz
928 (\_ -> _) 951 (\(_ :: _) -> _)
929 (_rhs c) 952 (_rhs c)
930 (_rhs d) 953 (_rhs d)
931 (_rhs undefined) 954 (_rhs undefined)
932 (_rhs undefined) 955 (_rhs undefined)
933 b) 956 b)
934 (\(e :: _) (f :: _) (g :: _) -> case'Swizz 957 (\(e :: _) (f :: _) (g :: _) -> case'Swizz
935 (\_ -> _) 958 (\(_ :: _) -> _)
936 (_rhs e) 959 (_rhs e)
937 (_rhs f) 960 (_rhs f)
938 (_rhs g) 961 (_rhs g)
939 (_rhs undefined) 962 (_rhs undefined)
940 b) 963 b)
941 (\(h :: _) (i :: _) (j :: _) (k :: _) -> case'Swizz 964 (\(h :: _) (i :: _) (j :: _) (k :: _) -> case'Swizz
942 (\_ -> _) 965 (\(_ :: _) -> _)
943 (_rhs h) 966 (_rhs h)
944 (_rhs i) 967 (_rhs i)
945 (_rhs j) 968 (_rhs j)
@@ -950,17 +973,17 @@ swizzscalar
950definedVec :: forall (a :: _) (b :: _) . Vec b a -> Bool 973definedVec :: forall (a :: _) (b :: _) . Vec b a -> Bool
951definedVec 974definedVec
952 = \(a :: _) -> case'VecS 975 = \(a :: _) -> case'VecS
953 (\_ _ -> _) 976 (\(_ :: _) (_ :: _) -> _)
954 (\_ _ -> _rhs True) 977 (\(_ :: _) (_ :: _) -> _rhs True)
955 (\_ _ _ -> _rhs True) 978 (\(_ :: _) (_ :: _) (_ :: _) -> _rhs True)
956 (\_ _ _ _ -> _rhs True) 979 (\(_ :: _) (_ :: _) (_ :: _) (_ :: _) -> _rhs True)
957 a 980 a
958 981
959swizzvector 982swizzvector
960 :: forall (a :: _) (b :: _) (c :: _) . Vec b a -> Vec c Swizz -> Vec c a 983 :: forall (a :: _) (b :: _) (c :: _) . Vec b a -> Vec c Swizz -> Vec c a
961swizzvector 984swizzvector
962 = \(a :: _) (b :: _) -> case'Bool 985 = \(a :: _) (b :: _) -> case'Bool
963 (\_ -> _) 986 (\(_ :: _) -> _)
964 (_rhs undefined) 987 (_rhs undefined)
965 (_rhs (mapVec (swizzscalar a) b)) 988 (_rhs (mapVec (swizzscalar a) b))
966 (definedVec a) 989 (definedVec a)
@@ -1107,15 +1130,19 @@ rasterizePrimitives
1107 1130
1108'ImageLC :: Type -> Nat 1131'ImageLC :: Type -> Nat
1109'ImageLC 1132'ImageLC
1110 = \(a :: _) -> match'Image (\_ -> _) (\(b :: _) _ -> _rhs b) a undefined 1133 = \(a :: _) -> match'Image
1134 (\(_ :: _) -> _)
1135 (\(b :: _) (_ :: _) -> _rhs b)
1136 a
1137 undefined
1111 1138
1112allSame :: forall (a :: _) . [a] -> Constraint 1139allSame :: forall (a :: _) . [a] -> Constraint
1113allSame 1140allSame
1114 = \(a :: _) -> case'List 1141 = \(a :: _) -> case'List
1115 (\_ -> _) 1142 (\(_ :: _) -> _)
1116 (_rhs 'CUnit) 1143 (_rhs 'CUnit)
1117 (\(b :: _) (c :: _) -> case'List 1144 (\(b :: _) (c :: _) -> case'List
1118 (\_ -> _) 1145 (\(_ :: _) -> _)
1119 (_rhs 'CUnit) 1146 (_rhs 'CUnit)
1120 (\(d :: _) (e :: _) -> _rhs ('T2 (b `'EqCTt` d) (allSame (d : e)))) 1147 (\(d :: _) (e :: _) -> _rhs ('T2 (b `'EqCTt` d) (allSame (d : e))))
1121 c) 1148 c)
@@ -1129,11 +1156,11 @@ data FrameBuffer (_ :: Nat) (_ :: [ImageKind]) :: Type where
1129imageType' :: [ImageKind] -> [Type] 1156imageType' :: [ImageKind] -> [Type]
1130imageType' 1157imageType'
1131 = \(a :: _) -> case'List 1158 = \(a :: _) -> case'List
1132 (\_ -> _) 1159 (\(_ :: _) -> _)
1133 (_rhs (map imageType a)) 1160 (_rhs (map imageType a))
1134 (\(b :: _) (c :: _) -> case'ImageKind 1161 (\(b :: _) (c :: _) -> case'ImageKind
1135 (\_ -> _) 1162 (\(_ :: _) -> _)
1136 (\_ -> _rhs (map imageType a)) 1163 (\(_ :: _) -> _rhs (map imageType a))
1137 (_rhs (map imageType c)) 1164 (_rhs (map imageType c))
1138 (_rhs (map imageType a)) 1165 (_rhs (map imageType a))
1139 b) 1166 b)
@@ -1142,7 +1169,7 @@ imageType'
1142'FragmentOperationKind :: Type -> ImageKind 1169'FragmentOperationKind :: Type -> ImageKind
1143'FragmentOperationKind 1170'FragmentOperationKind
1144 = \(a :: _) -> match'FragmentOperation 1171 = \(a :: _) -> match'FragmentOperation
1145 (\_ -> _) 1172 (\(_ :: _) -> _)
1146 (\(b :: _) -> _rhs b) 1173 (\(b :: _) -> _rhs b)
1147 a 1174 a
1148 undefined 1175 undefined
@@ -1168,7 +1195,11 @@ infixl 0 overlay
1168 1195
1169'GetImageKind :: Type -> ImageKind 1196'GetImageKind :: Type -> ImageKind
1170'GetImageKind 1197'GetImageKind
1171 = \(a :: _) -> match'Image (\_ -> _) (\_ (b :: _) -> _rhs b) a undefined 1198 = \(a :: _) -> match'Image
1199 (\(_ :: _) -> _)
1200 (\(_ :: _) (b :: _) -> _rhs b)
1201 a
1202 undefined
1172 1203
1173FrameBuffer 1204FrameBuffer
1174 :: forall (a :: [Type]) 1205 :: forall (a :: [Type])
@@ -1214,383 +1245,1287 @@ data Sampler :: Type where
1214texture2D :: Sampler -> Vec (fromInt 2) Float -> Vec (fromInt 4) Float 1245texture2D :: Sampler -> Vec (fromInt 2) Float -> Vec (fromInt 4) Float
1215 1246
1216accumulationContext = \(a :: _) -> _rhs a 1247accumulationContext = \(a :: _) -> _rhs a
1217------------ trace 1248------------ core code
1218id :: forall a . a -> a 1249'BlendEquation :: Type
1219'VecS :: Type -> Nat -> Type 1250'BlendEquation
1220V2 :: forall a . a -> a -> VecS a 2 1251 = <<type constructor with 0 indices; constructors: FuncAdd, FuncSubtract, FuncReverseSubtract, Min, Max>>
1221V3 :: forall a . a -> a -> a -> VecS a 3 1252
1222V4 :: forall a . a -> a -> a -> a -> VecS a 4 1253'Blending :: Type -> Type
1223case'VecS 1254'Blending
1224 :: forall a 1255 = <<type constructor with 1 indices; constructors: NoBlending, BlendLogicOp, Blend>>
1225 . forall (b :: forall (c :: Nat) -> VecS a c -> Type) 1256
1226 -> (forall (d :: a) (e :: a) -> b 2 ('V2 d e)) 1257'BlendingFactor :: Type
1227 -> (forall (f :: a) (g :: a) (h :: a) -> b 3 ('V3 f g h)) 1258'BlendingFactor
1228 -> (forall (i :: a) (j :: a) (k :: a) (l :: a) -> b 4 ('V4 i j k l)) 1259 = <<type constructor with 0 indices; constructors: ZeroBF, OneBF, SrcColor, OneMinusSrcColor, DstColor, OneMinusDstColor, SrcAlpha, OneMinusSrcAlpha, DstAlpha, OneMinusDstAlpha, ConstantColor, OneMinusConstantColor, ConstantAlpha, OneMinusConstantAlpha, SrcAlphaSaturate>>
1229 -> forall (m :: Nat) . forall (n :: VecS a m) -> b m n 1260
1230match'VecS 1261'ComparisonFunction :: Type
1231 :: forall (a :: Type -> Type) 1262'ComparisonFunction
1232 -> (forall b (c :: Nat) -> a (VecS b c)) -> forall d -> a d -> a d 1263 = <<type constructor with 0 indices; constructors: Never, Less, Equal, Lequal, Greater, Notequal, Gequal, Always>>
1233mapVec :: forall a b (c :: Nat) . (a -> b) -> VecS a c -> VecS b c 1264
1265'Component :: Type -> Constraint
1266'Component
1267 = \a -> match'Int
1268 (\_ -> 'Constraint)
1269 (_rhs CUnit)
1270 a
1271 (match'Word
1272 (\_ -> 'Constraint)
1273 (_rhs CUnit)
1274 a
1275 (match'Float
1276 (\_ -> 'Constraint)
1277 (_rhs CUnit)
1278 a
1279 (match'VecS
1280 (\_ -> 'Constraint)
1281 (\b c -> match'Float
1282 (\_ -> 'Constraint)
1283 (case'Nat
1284 (\_ -> 'Constraint)
1285 (_rhs (CEmpty "no instance of 'Component on ???"))
1286 (\d -> case'Nat
1287 (\_ -> 'Constraint)
1288 (_rhs (CEmpty "no instance of 'Component on ???"))
1289 (\e -> case'Nat
1290 (\_ -> 'Constraint)
1291 (_rhs CUnit)
1292 (\f -> case'Nat
1293 (\_ -> 'Constraint)
1294 (_rhs CUnit)
1295 (\g -> case'Nat
1296 (\_ -> 'Constraint)
1297 (_rhs CUnit)
1298 (\_ -> _rhs (CEmpty "no instance of 'Component on ???"))
1299 g)
1300 f)
1301 e)
1302 d)
1303 c)
1304 b
1305 (match'Bool
1306 (\_ -> 'Constraint)
1307 (case'Nat
1308 (\_ -> 'Constraint)
1309 (_rhs (CEmpty "no instance of 'Component on ???"))
1310 (\h -> case'Nat
1311 (\_ -> 'Constraint)
1312 (_rhs (CEmpty "no instance of 'Component on ???"))
1313 (\i -> case'Nat
1314 (\_ -> 'Constraint)
1315 (_rhs CUnit)
1316 (\j -> case'Nat
1317 (\_ -> 'Constraint)
1318 (_rhs CUnit)
1319 (\k -> case'Nat
1320 (\_ -> 'Constraint)
1321 (_rhs CUnit)
1322 (\_ -> _rhs (CEmpty "no instance of 'Component on ???"))
1323 k)
1324 j)
1325 i)
1326 h)
1327 c)
1328 b
1329 (_rhs (CEmpty "no instance of 'Component on ???"))))
1330 a
1331 (match'Bool
1332 (\_ -> 'Constraint)
1333 (_rhs CUnit)
1334 a
1335 (_rhs (CEmpty "no instance of 'Component on ???"))))))
1336
1337'CullMode :: Type
1338'CullMode
1339 = <<type constructor with 0 indices; constructors: CullFront, CullBack, CullNone>>
1340
1341'EdgeMode :: Type
1342'EdgeMode
1343 = <<type constructor with 0 indices; constructors: Repeat, MirroredRepeat, ClampToEdge>>
1344
1345'Filter :: Type
1346'Filter
1347 = <<type constructor with 0 indices; constructors: PointFilter, LinearFilter>>
1348
1349'Floating :: Type -> Constraint
1350'Floating
1351 = \a -> match'Float
1352 (\_ -> 'Constraint)
1353 (_rhs CUnit)
1354 a
1355 (match'VecS
1356 (\_ -> 'Constraint)
1357 (\b c -> match'Float
1358 (\_ -> 'Constraint)
1359 (case'Nat
1360 (\_ -> 'Constraint)
1361 (_rhs (CEmpty "no instance of 'Floating on ???"))
1362 (\d -> case'Nat
1363 (\_ -> 'Constraint)
1364 (_rhs (CEmpty "no instance of 'Floating on ???"))
1365 (\e -> case'Nat
1366 (\_ -> 'Constraint)
1367 (_rhs CUnit)
1368 (\f -> case'Nat
1369 (\_ -> 'Constraint)
1370 (_rhs CUnit)
1371 (\g -> case'Nat
1372 (\_ -> 'Constraint)
1373 (_rhs CUnit)
1374 (\_ -> _rhs (CEmpty "no instance of 'Floating on ???"))
1375 g)
1376 f)
1377 e)
1378 d)
1379 c)
1380 b
1381 (_rhs (CEmpty "no instance of 'Floating on ???")))
1382 a
1383 (match'Mat
1384 (\_ -> 'Constraint)
1385 (\h i j -> case'Nat
1386 (\_ -> 'Constraint)
1387 (_rhs (CEmpty "no instance of 'Floating on ???"))
1388 (\k -> case'Nat
1389 (\_ -> 'Constraint)
1390 (_rhs (CEmpty "no instance of 'Floating on ???"))
1391 (\l -> case'Nat
1392 (\_ -> 'Constraint)
1393 (case'Nat
1394 (\_ -> 'Constraint)
1395 (_rhs (CEmpty "no instance of 'Floating on ???"))
1396 (\m -> case'Nat
1397 (\_ -> 'Constraint)
1398 (_rhs (CEmpty "no instance of 'Floating on ???"))
1399 (\n -> case'Nat
1400 (\_ -> 'Constraint)
1401 (match'Float
1402 (\_ -> 'Constraint)
1403 (_rhs CUnit)
1404 j
1405 (_rhs (CEmpty "no instance of 'Floating on ???")))
1406 (\o -> case'Nat
1407 (\_ -> 'Constraint)
1408 (match'Float
1409 (\_ -> 'Constraint)
1410 (_rhs CUnit)
1411 j
1412 (_rhs (CEmpty "no instance of 'Floating on ???")))
1413 (\p -> case'Nat
1414 (\_ -> 'Constraint)
1415 (match'Float
1416 (\_ -> 'Constraint)
1417 (_rhs CUnit)
1418 j
1419 (_rhs (CEmpty "no instance of 'Floating on ???")))
1420 (\_ -> _rhs (CEmpty "no instance of 'Floating on ???"))
1421 p)
1422 o)
1423 n)
1424 m)
1425 i)
1426 (\q -> case'Nat
1427 (\_ -> 'Constraint)
1428 (case'Nat
1429 (\_ -> 'Constraint)
1430 (_rhs (CEmpty "no instance of 'Floating on ???"))
1431 (\r -> case'Nat
1432 (\_ -> 'Constraint)
1433 (_rhs (CEmpty "no instance of 'Floating on ???"))
1434 (\s -> case'Nat
1435 (\_ -> 'Constraint)
1436 (match'Float
1437 (\_ -> 'Constraint)
1438 (_rhs CUnit)
1439 j
1440 (_rhs (CEmpty "no instance of 'Floating on ???")))
1441 (\t -> case'Nat
1442 (\_ -> 'Constraint)
1443 (match'Float
1444 (\_ -> 'Constraint)
1445 (_rhs CUnit)
1446 j
1447 (_rhs (CEmpty "no instance of 'Floating on ???")))
1448 (\u -> case'Nat
1449 (\_ -> 'Constraint)
1450 (match'Float
1451 (\_ -> 'Constraint)
1452 (_rhs CUnit)
1453 j
1454 (_rhs (CEmpty "no instance of 'Floating on ???")))
1455 (\_ -> _rhs (CEmpty "no instance of 'Floating on ???"))
1456 u)
1457 t)
1458 s)
1459 r)
1460 i)
1461 (\v -> case'Nat
1462 (\_ -> 'Constraint)
1463 (case'Nat
1464 (\_ -> 'Constraint)
1465 (_rhs (CEmpty "no instance of 'Floating on ???"))
1466 (\w -> case'Nat
1467 (\_ -> 'Constraint)
1468 (_rhs (CEmpty "no instance of 'Floating on ???"))
1469 (\x -> case'Nat
1470 (\_ -> 'Constraint)
1471 (match'Float
1472 (\_ -> 'Constraint)
1473 (_rhs CUnit)
1474 j
1475 (_rhs (CEmpty "no instance of 'Floating on ???")))
1476 (\y -> case'Nat
1477 (\_ -> 'Constraint)
1478 (match'Float
1479 (\_ -> 'Constraint)
1480 (_rhs CUnit)
1481 j
1482 (_rhs (CEmpty "no instance of 'Floating on ???")))
1483 (\z -> case'Nat
1484 (\_ -> 'Constraint)
1485 (match'Float
1486 (\_ -> 'Constraint)
1487 (_rhs CUnit)
1488 j
1489 (_rhs (CEmpty "no instance of 'Floating on ???")))
1490 (\_ -> _rhs (CEmpty "no instance of 'Floating on ???"))
1491 z)
1492 y)
1493 x)
1494 w)
1495 i)
1496 (\_ -> _rhs (CEmpty "no instance of 'Floating on ???"))
1497 v)
1498 q)
1499 l)
1500 k)
1501 h)
1502 a
1503 (_rhs (CEmpty "no instance of 'Floating on ???"))))
1504
1505'Fragment :: Nat -> Type -> Type
1506'Fragment = \a b -> _rhs ('Vector a ('Maybe ('SimpleFragment b)))
1507
1508'FragmentOperation :: ImageKind -> Type
1509'FragmentOperation
1510 = <<type constructor with 1 indices; constructors: ColorOp, DepthOp, StencilOp>>
1511
1512'FragmentOperationKind :: Type -> ImageKind
1513'FragmentOperationKind
1514 = \a -> match'FragmentOperation
1515 (\_ -> 'ImageKind)
1516 (\b -> _rhs b)
1517 a
1518 (undefined 'ImageKind)
1519
1520'FragmentStream :: Nat -> Type -> Type
1521'FragmentStream = \a b -> _rhs ['Vector a ('Maybe ('SimpleFragment b))]
1522
1523'FrameBuffer :: Nat -> [ImageKind] -> Type
1524'FrameBuffer = <<type constructor with 0 indices; constructors: >>
1525
1526'GetImageKind :: Type -> ImageKind
1527'GetImageKind
1528 = \a -> match'Image (\_ -> 'ImageKind) (\_ b -> _rhs b) a (undefined 'ImageKind)
1529
1530'Image :: Nat -> ImageKind -> Type
1531'Image = <<type constructor with 0 indices; constructors: >>
1532
1533'ImageKind :: Type
1534'ImageKind
1535 = <<type constructor with 0 indices; constructors: Color, Depth, Stencil>>
1536
1537'ImageLC :: Type -> Nat
1538'ImageLC = \a -> match'Image (\_ -> 'Nat) (\b _ -> _rhs b) a (undefined 'Nat)
1539
1540'Integral :: Type -> Constraint
1541'Integral
1542 = \a -> match'Int
1543 (\_ -> 'Constraint)
1544 (_rhs CUnit)
1545 a
1546 (match'Word
1547 (\_ -> 'Constraint)
1548 (_rhs CUnit)
1549 a
1550 (_rhs (CEmpty "no instance of 'Integral on ???")))
1551
1552'Interpolated :: Type -> Type
1553'Interpolated
1554 = <<type constructor with 0 indices; constructors: Smooth, NoPerspective, Flat>>
1555
1556'ListElem :: Type -> Type
1557'ListElem = \a -> match'List (\_ -> Type) (\b -> _rhs b) a (undefined Type)
1558
1559'LogicOperation :: Type
1560'LogicOperation
1561 = <<type constructor with 0 indices; constructors: Clear, And, AndReverse, Copy, AndInverted, Noop, Xor, Or, Nor, Equiv, Invert, OrReverse, CopyInverted, OrInverted, Nand, Set>>
1562
1563'Mat :: Nat -> Nat -> Type -> Type
1564'Mat
1565 = <<type constructor with 3 indices; constructors: M22F, M32F, M42F, M23F, M33F, M43F, M24F, M34F, M44F>>
1566
1567'MatVecScalarElem :: Type -> Type
1568'MatVecScalarElem
1569 = \a -> match'Float
1570 (\_ -> Type)
1571 (_rhs 'Float)
1572 a
1573 (match'Bool
1574 (\_ -> Type)
1575 (_rhs 'Bool)
1576 a
1577 (match'Int
1578 (\_ -> Type)
1579 (_rhs 'Int)
1580 a
1581 (match'VecS
1582 (\_ -> Type)
1583 (\b _ -> _rhs b)
1584 a
1585 (match'Mat (\_ -> Type) (\_ _ c -> _rhs c) a (undefined Type)))))
1586
1587'Maybe :: Type -> Type
1588'Maybe = <<type constructor with 0 indices; constructors: Nothing, Just>>
1589
1590'Output :: Type
1591'Output = <<type constructor with 0 indices; constructors: ScreenOut>>
1592
1593'PointSize :: Type -> Type
1594'PointSize
1595 = <<type constructor with 0 indices; constructors: PointSize, ProgramPointSize>>
1596
1597'PointSpriteCoordOrigin :: Type
1598'PointSpriteCoordOrigin
1599 = <<type constructor with 0 indices; constructors: LowerLeft, UpperLeft>>
1600
1601'PolygonMode :: Type -> Type
1602'PolygonMode
1603 = <<type constructor with 0 indices; constructors: PolygonFill, PolygonPoint, PolygonLine>>
1604
1605'PolygonOffset :: Type
1606'PolygonOffset
1607 = <<type constructor with 0 indices; constructors: NoOffset, Offset>>
1608
1609'Primitive :: Type -> PrimitiveType -> Type
1610'Primitive
1611 = <<type constructor with 1 indices; constructors: PrimPoint, PrimLine, PrimTriangle>>
1612
1613'PrimitiveStream :: PrimitiveType -> Type -> Type
1614'PrimitiveStream = \a b -> _rhs ['Primitive b a]
1615
1616'PrimitiveType :: Type
1617'PrimitiveType
1618 = <<type constructor with 0 indices; constructors: Triangle, Line, Point, TriangleAdjacency, LineAdjacency>>
1619
1620'ProvokingVertex :: Type
1621'ProvokingVertex
1622 = <<type constructor with 0 indices; constructors: LastVertex, FirstVertex>>
1623
1624'RasterContext :: Type -> PrimitiveType -> Type
1625'RasterContext
1626 = <<type constructor with 1 indices; constructors: TriangleCtx, PointCtx, LineCtx>>
1627
1628'Sampler :: Type
1629'Sampler = <<type constructor with 0 indices; constructors: Sampler>>
1630
1631'Signed :: Type -> Constraint
1632'Signed
1633 = \a -> match'Int
1634 (\_ -> 'Constraint)
1635 (_rhs CUnit)
1636 a
1637 (match'Float
1638 (\_ -> 'Constraint)
1639 (_rhs CUnit)
1640 a
1641 (_rhs (CEmpty "no instance of 'Signed on ???")))
1642
1643'SimpleFragment :: Type -> Type
1644'SimpleFragment
1645 = <<type constructor with 0 indices; constructors: SimpleFragment>>
1646
1647'StencilOperation :: Type
1648'StencilOperation
1649 = <<type constructor with 0 indices; constructors: OpZero, OpKeep, OpReplace, OpIncr, OpIncrWrap, OpDecr, OpDecrWrap, OpInvert>>
1650
1651'StencilOps :: Type
1652'StencilOps = <<type constructor with 0 indices; constructors: >>
1653
1654'StencilTests :: Type
1655'StencilTests = <<type constructor with 0 indices; constructors: >>
1656
1657'Swizz :: Type
1658'Swizz = <<type constructor with 0 indices; constructors: Sx, Sy, Sz, Sw>>
1659
1660'Texture :: Type
1661'Texture
1662 = <<type constructor with 0 indices; constructors: Texture2DSlot, Texture2D>>
1663
1234'Vec :: Nat -> Type -> Type 1664'Vec :: Nat -> Type -> Type
1665'Vec = \a b -> _rhs ('VecS b a)
1666
1667'VecS :: Type -> Nat -> Type
1668'VecS = <<type constructor with 1 indices; constructors: V2, V3, V4>>
1669
1235'VecScalar :: Nat -> Type -> Type 1670'VecScalar :: Nat -> Type -> Type
1236'Mat :: Nat -> Nat -> Type -> Type 1671'VecScalar
1672 = \a b -> case'Nat
1673 (\_ -> Type)
1674 (undefined Type)
1675 (\c -> case'Nat (\_ -> Type) (_rhs b) (\d -> _rhs ('VecS b (Succ (Succ d)))) c)
1676 a
1677
1678'Vector :: Nat -> Type -> Type
1679'Vector = <<type constructor with 0 indices; constructors: >>
1680
1681++ :: forall a . [a] -> [a] -> [a]
1682++
1683 = \a -> primFix
1684 ([a] -> [a] -> [a])
1685 \b c d -> case'List (\_ -> [a]) (_rhs d) (\e f -> _rhs (e : b f d)) c
1686
1687Accumulate
1688 :: forall (a :: [ImageKind]) (b :: Nat) (c :: [Type])
1689 . (a ~ (map Type ImageKind FragmentOperationKind c :: [ImageKind]))
1690 => HList c
1691 -> FragmentStream b (HList (imageType' a)) -> FrameBuffer b a -> FrameBuffer b a
1692Accumulate = \a b c d e f g -> <<builtin>>
1693
1694Always :: ComparisonFunction
1695Always = <<7th constructor of 'ComparisonFunction>>
1696
1697And :: LogicOperation
1698And = <<1st constructor of 'LogicOperation>>
1699
1700AndInverted :: LogicOperation
1701AndInverted = <<4th constructor of 'LogicOperation>>
1702
1703AndReverse :: LogicOperation
1704AndReverse = <<2nd constructor of 'LogicOperation>>
1705
1706Attribute :: forall a . String -> a
1707Attribute = \a b -> <<builtin>>
1708
1709Blend
1710 :: (BlendEquation, BlendEquation)
1711 -> ((BlendingFactor, BlendingFactor), (BlendingFactor, BlendingFactor))
1712 -> Vec 4 Float -> Blending Float
1713Blend = <<2nd constructor of 'Blending>>
1714
1715BlendLogicOp :: forall a . Integral a => LogicOperation -> Blending a
1716BlendLogicOp = <<1st constructor of 'Blending>>
1717
1718ClampToEdge :: EdgeMode
1719ClampToEdge = <<2nd constructor of 'EdgeMode>>
1720
1721Clear :: LogicOperation
1722Clear = <<0th constructor of 'LogicOperation>>
1723
1724Color :: Type -> ImageKind
1725Color = <<0th constructor of 'ImageKind>>
1726
1727ColorImage
1728 :: forall (a :: Nat) (b :: Nat) c d
1729 . (Num c, d ~ VecScalar b c) => d -> Image a ('Color d)
1730ColorImage = \a b c d e f g -> <<builtin>>
1731
1732ColorOp
1733 :: forall a (b :: Nat)
1734 . Num a
1735 => Blending a -> VecScalar b Bool -> FragmentOperation ('Color (VecScalar b a))
1736ColorOp = <<0th constructor of 'FragmentOperation>>
1737
1738ConstantAlpha :: BlendingFactor
1739ConstantAlpha = <<12th constructor of 'BlendingFactor>>
1740
1741ConstantColor :: BlendingFactor
1742ConstantColor = <<10th constructor of 'BlendingFactor>>
1743
1744Copy :: LogicOperation
1745Copy = <<3rd constructor of 'LogicOperation>>
1746
1747CopyInverted :: LogicOperation
1748CopyInverted = <<12th constructor of 'LogicOperation>>
1749
1750CullBack :: CullMode
1751CullBack = <<1st constructor of 'CullMode>>
1752
1753CullFront :: CullMode
1754CullFront = <<0th constructor of 'CullMode>>
1755
1756CullNone :: CullMode
1757CullNone = <<2nd constructor of 'CullMode>>
1758
1759Depth :: ImageKind
1760Depth = <<1st constructor of 'ImageKind>>
1761
1762DepthImage :: forall (a :: Nat) . Float -> Image a 'Depth
1763DepthImage = \a b -> <<builtin>>
1764
1765DepthOp :: ComparisonFunction -> Bool -> FragmentOperation 'Depth
1766DepthOp = <<1st constructor of 'FragmentOperation>>
1767
1768DstAlpha :: BlendingFactor
1769DstAlpha = <<8th constructor of 'BlendingFactor>>
1770
1771DstColor :: BlendingFactor
1772DstColor = <<4th constructor of 'BlendingFactor>>
1773
1774Equal :: ComparisonFunction
1775Equal = <<2nd constructor of 'ComparisonFunction>>
1776
1777Equiv :: LogicOperation
1778Equiv = <<9th constructor of 'LogicOperation>>
1779
1780FirstVertex :: ProvokingVertex
1781FirstVertex = <<1st constructor of 'ProvokingVertex>>
1782
1783Flat :: forall a . Interpolated a
1784Flat = <<2nd constructor of 'Interpolated>>
1785
1786FrameBuffer
1787 :: forall (a :: [Type])
1788 . sameLayerCounts a
1789 => HList a
1790 -> FrameBuffer (ImageLC (head Type a)) (map Type ImageKind GetImageKind a)
1791FrameBuffer = \a b c -> <<builtin>>
1792
1793FuncAdd :: BlendEquation
1794FuncAdd = <<0th constructor of 'BlendEquation>>
1795
1796FuncReverseSubtract :: BlendEquation
1797FuncReverseSubtract = <<2nd constructor of 'BlendEquation>>
1798
1799FuncSubtract :: BlendEquation
1800FuncSubtract = <<1st constructor of 'BlendEquation>>
1801
1802Gequal :: ComparisonFunction
1803Gequal = <<6th constructor of 'ComparisonFunction>>
1804
1805Greater :: ComparisonFunction
1806Greater = <<4th constructor of 'ComparisonFunction>>
1807
1808Invert :: LogicOperation
1809Invert = <<10th constructor of 'LogicOperation>>
1810
1811Just :: forall a . a -> Maybe a
1812Just = <<1st constructor of 'Maybe>>
1813
1814LastVertex :: ProvokingVertex
1815LastVertex = <<0th constructor of 'ProvokingVertex>>
1816
1817Lequal :: ComparisonFunction
1818Lequal = <<3rd constructor of 'ComparisonFunction>>
1819
1820Less :: ComparisonFunction
1821Less = <<1st constructor of 'ComparisonFunction>>
1822
1823Line :: PrimitiveType
1824Line = <<1st constructor of 'PrimitiveType>>
1825
1826LineAdjacency :: PrimitiveType
1827LineAdjacency = <<4th constructor of 'PrimitiveType>>
1828
1829LineCtx :: forall a . Float -> ProvokingVertex -> RasterContext a 'Line
1830LineCtx = <<2nd constructor of 'RasterContext>>
1831
1832LinearFilter :: Filter
1833LinearFilter = <<1st constructor of 'Filter>>
1834
1835LowerLeft :: PointSpriteCoordOrigin
1836LowerLeft = <<0th constructor of 'PointSpriteCoordOrigin>>
1837
1237M22F :: Vec 2 Float -> Vec 2 Float -> Mat 2 2 Float 1838M22F :: Vec 2 Float -> Vec 2 Float -> Mat 2 2 Float
1238M32F :: Vec 3 Float -> Vec 3 Float -> Mat 3 2 Float 1839M22F = <<0th constructor of 'Mat>>
1239M42F :: Vec 4 Float -> Vec 4 Float -> Mat 4 2 Float 1840
1240M23F :: Vec 2 Float -> Vec 2 Float -> Vec 2 Float -> Mat 2 3 Float 1841M23F :: Vec 2 Float -> Vec 2 Float -> Vec 2 Float -> Mat 2 3 Float
1241M33F :: Vec 3 Float -> Vec 3 Float -> Vec 3 Float -> Mat 3 3 Float 1842M23F = <<3rd constructor of 'Mat>>
1242M43F :: Vec 4 Float -> Vec 4 Float -> Vec 4 Float -> Mat 4 3 Float 1843
1243M24F 1844M24F
1244 :: Vec 2 Float -> Vec 2 Float -> Vec 2 Float -> Vec 2 Float -> Mat 2 4 Float 1845 :: Vec 2 Float -> Vec 2 Float -> Vec 2 Float -> Vec 2 Float -> Mat 2 4 Float
1846M24F = <<6th constructor of 'Mat>>
1847
1848M32F :: Vec 3 Float -> Vec 3 Float -> Mat 3 2 Float
1849M32F = <<1st constructor of 'Mat>>
1850
1851M33F :: Vec 3 Float -> Vec 3 Float -> Vec 3 Float -> Mat 3 3 Float
1852M33F = <<4th constructor of 'Mat>>
1853
1245M34F 1854M34F
1246 :: Vec 3 Float -> Vec 3 Float -> Vec 3 Float -> Vec 3 Float -> Mat 3 4 Float 1855 :: Vec 3 Float -> Vec 3 Float -> Vec 3 Float -> Vec 3 Float -> Mat 3 4 Float
1856M34F = <<7th constructor of 'Mat>>
1857
1858M42F :: Vec 4 Float -> Vec 4 Float -> Mat 4 2 Float
1859M42F = <<2nd constructor of 'Mat>>
1860
1861M43F :: Vec 4 Float -> Vec 4 Float -> Vec 4 Float -> Mat 4 3 Float
1862M43F = <<5th constructor of 'Mat>>
1863
1247M44F 1864M44F
1248 :: Vec 4 Float -> Vec 4 Float -> Vec 4 Float -> Vec 4 Float -> Mat 4 4 Float 1865 :: Vec 4 Float -> Vec 4 Float -> Vec 4 Float -> Vec 4 Float -> Mat 4 4 Float
1249case'Mat 1866M44F = <<8th constructor of 'Mat>>
1250 :: forall (a :: forall (b :: Nat) (c :: Nat) d -> Mat b c d -> Type) 1867
1251 -> (forall (e :: Vec 2 Float) (f :: Vec 2 Float) -> a 2 2 Float ('M22F e f)) 1868Max :: BlendEquation
1252 -> (forall (g :: Vec 3 Float) (h :: Vec 3 Float) -> a 3 2 Float ('M32F g h)) 1869Max = <<4th constructor of 'BlendEquation>>
1253 -> (forall (i :: Vec 4 Float) (j :: Vec 4 Float) -> a 4 2 Float ('M42F i j)) 1870
1254 -> (forall (k :: Vec 2 Float) (l :: Vec 2 Float) (m :: Vec 2 Float) 1871Min :: BlendEquation
1255 -> a 2 3 Float ('M23F k l m)) 1872Min = <<3rd constructor of 'BlendEquation>>
1256 -> (forall (n :: Vec 3 Float) (o :: Vec 3 Float) (p :: Vec 3 Float) 1873
1257 -> a 3 3 Float ('M33F n o p)) 1874MirroredRepeat :: EdgeMode
1258 -> (forall (q :: Vec 4 Float) (r :: Vec 4 Float) (s :: Vec 4 Float) 1875MirroredRepeat = <<1st constructor of 'EdgeMode>>
1259 -> a 4 3 Float ('M43F q r s)) 1876
1260 -> (forall (t :: Vec 2 Float) 1877Nand :: LogicOperation
1261 (u :: Vec 2 Float) (v :: Vec 2 Float) (w :: Vec 2 Float) 1878Nand = <<14th constructor of 'LogicOperation>>
1262 -> a 2 4 Float ('M24F t u v w)) 1879
1263 -> (forall (x :: Vec 3 Float) 1880Never :: ComparisonFunction
1264 (y :: Vec 3 Float) (z :: Vec 3 Float) (a' :: Vec 3 Float) 1881Never = <<0th constructor of 'ComparisonFunction>>
1265 -> a 3 4 Float ('M34F x y z a')) 1882
1266 -> (forall (b' :: Vec 4 Float) 1883NoBlending :: forall a . Blending a
1267 (c' :: Vec 4 Float) (d' :: Vec 4 Float) (e' :: Vec 4 Float) 1884NoBlending = <<0th constructor of 'Blending>>
1268 -> a 4 4 Float ('M44F b' c' d' e')) 1885
1269 -> forall (f' :: Nat) (g' :: Nat) h' 1886NoOffset :: PolygonOffset
1270 . forall (i' :: Mat f' g' h') -> a f' g' h' i' 1887NoOffset = <<0th constructor of 'PolygonOffset>>
1271match'Mat 1888
1272 :: forall (a :: Type -> Type) 1889NoPerspective :: forall a . Floating a => Interpolated a
1273 -> (forall (b :: Nat) (c :: Nat) d -> a (Mat b c d)) -> forall e -> a e -> a e 1890NoPerspective = <<1st constructor of 'Interpolated>>
1274'MatVecScalarElem :: Type -> Type 1891
1275'Signed :: Type -> Constraint 1892Noop :: LogicOperation
1276'Component :: Type -> Constraint 1893Noop = <<5th constructor of 'LogicOperation>>
1277zero :: forall a . Component a => a 1894
1278one :: forall a . Component a => a 1895Nor :: LogicOperation
1279'Integral :: Type -> Constraint 1896Nor = <<8th constructor of 'LogicOperation>>
1280'Floating :: Type -> Constraint 1897
1898Notequal :: ComparisonFunction
1899Notequal = <<5th constructor of 'ComparisonFunction>>
1900
1901Nothing :: forall a . Maybe a
1902Nothing = <<0th constructor of 'Maybe>>
1903
1904Offset :: Float -> Float -> PolygonOffset
1905Offset = <<1st constructor of 'PolygonOffset>>
1906
1907OneBF :: BlendingFactor
1908OneBF = <<1st constructor of 'BlendingFactor>>
1909
1910OneMinusConstantAlpha :: BlendingFactor
1911OneMinusConstantAlpha = <<13th constructor of 'BlendingFactor>>
1912
1913OneMinusConstantColor :: BlendingFactor
1914OneMinusConstantColor = <<11th constructor of 'BlendingFactor>>
1915
1916OneMinusDstAlpha :: BlendingFactor
1917OneMinusDstAlpha = <<9th constructor of 'BlendingFactor>>
1918
1919OneMinusDstColor :: BlendingFactor
1920OneMinusDstColor = <<5th constructor of 'BlendingFactor>>
1921
1922OneMinusSrcAlpha :: BlendingFactor
1923OneMinusSrcAlpha = <<7th constructor of 'BlendingFactor>>
1924
1925OneMinusSrcColor :: BlendingFactor
1926OneMinusSrcColor = <<3rd constructor of 'BlendingFactor>>
1927
1928OpDecr :: StencilOperation
1929OpDecr = <<5th constructor of 'StencilOperation>>
1930
1931OpDecrWrap :: StencilOperation
1932OpDecrWrap = <<6th constructor of 'StencilOperation>>
1933
1934OpIncr :: StencilOperation
1935OpIncr = <<3rd constructor of 'StencilOperation>>
1936
1937OpIncrWrap :: StencilOperation
1938OpIncrWrap = <<4th constructor of 'StencilOperation>>
1939
1940OpInvert :: StencilOperation
1941OpInvert = <<7th constructor of 'StencilOperation>>
1942
1943OpKeep :: StencilOperation
1944OpKeep = <<1st constructor of 'StencilOperation>>
1945
1946OpReplace :: StencilOperation
1947OpReplace = <<2nd constructor of 'StencilOperation>>
1948
1949OpZero :: StencilOperation
1950OpZero = <<0th constructor of 'StencilOperation>>
1951
1952Or :: LogicOperation
1953Or = <<7th constructor of 'LogicOperation>>
1954
1955OrInverted :: LogicOperation
1956OrInverted = <<13th constructor of 'LogicOperation>>
1957
1958OrReverse :: LogicOperation
1959OrReverse = <<11th constructor of 'LogicOperation>>
1960
1961Point :: PrimitiveType
1962Point = <<2nd constructor of 'PrimitiveType>>
1963
1964PointCtx
1965 :: forall a
1966 . PointSize a -> Float -> PointSpriteCoordOrigin -> RasterContext a 'Point
1967PointCtx = <<1st constructor of 'RasterContext>>
1968
1969PointFilter :: Filter
1970PointFilter = <<0th constructor of 'Filter>>
1971
1972PointSize :: forall a . Float -> PointSize a
1973PointSize = <<0th constructor of 'PointSize>>
1974
1975PolygonFill :: forall a . PolygonMode a
1976PolygonFill = <<0th constructor of 'PolygonMode>>
1977
1978PolygonLine :: forall a . Float -> PolygonMode a
1979PolygonLine = <<2nd constructor of 'PolygonMode>>
1980
1981PolygonPoint :: forall a . PointSize a -> PolygonMode a
1982PolygonPoint = <<1st constructor of 'PolygonMode>>
1983
1984PrimACos :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a
1985PrimACos = \a b c d -> <<builtin>>
1986
1987PrimACosH :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a
1988PrimACosH = \a b c d -> <<builtin>>
1989
1990PrimASin :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a
1991PrimASin = \a b c d -> <<builtin>>
1992
1993PrimASinH :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a
1994PrimASinH = \a b c d -> <<builtin>>
1995
1996PrimATan :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a
1997PrimATan = \a b c d -> <<builtin>>
1998
1999PrimATan2 :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a -> a
2000PrimATan2 = \a b c d e -> <<builtin>>
2001
2002PrimATanH :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a
2003PrimATanH = \a b c d -> <<builtin>>
2004
2005PrimAbs :: forall a b (c :: Nat) . (Signed a, b ~ VecScalar c a) => b -> b
2006PrimAbs = \a b c d e f -> <<builtin>>
2007
1281PrimAdd :: forall a . Num (MatVecScalarElem a) => a -> a -> a 2008PrimAdd :: forall a . Num (MatVecScalarElem a) => a -> a -> a
1282PrimSub :: forall a . Num (MatVecScalarElem a) => a -> a -> a 2009PrimAdd = \a b c d -> <<builtin>>
1283PrimMul :: forall a . Num (MatVecScalarElem a) => a -> a -> a 2010
1284PrimAddS :: forall a b . (a ~ MatVecScalarElem b, Num a) => b -> a -> b 2011PrimAddS :: forall a b . (a ~ MatVecScalarElem b, Num a) => b -> a -> b
1285PrimSubS :: forall a b . (a ~ MatVecScalarElem b, Num a) => b -> a -> b 2012PrimAddS = \a b c d e f -> <<builtin>>
1286PrimMulS :: forall a b . (a ~ MatVecScalarElem b, Num a) => b -> a -> b 2013
1287PrimDiv :: forall a b (c :: Nat) . (Num a, b ~ VecScalar c a) => b -> b -> b 2014PrimAll :: forall (a :: Nat) . VecScalar a Bool -> Bool
1288PrimMod :: forall a b (c :: Nat) . (Num a, b ~ VecScalar c a) => b -> b -> b 2015PrimAll = \a b -> <<builtin>>
1289PrimDivS :: forall a b (c :: Nat) . (Num a, b ~ VecScalar c a) => b -> a -> b 2016
1290PrimModS :: forall a b (c :: Nat) . (Num a, b ~ VecScalar c a) => b -> a -> b 2017PrimAnd :: Bool -> Bool -> Bool
1291PrimNeg :: forall a . Signed (MatVecScalarElem a) => a -> a 2018PrimAnd = \a b -> <<builtin>>
2019
2020PrimAny :: forall (a :: Nat) . VecScalar a Bool -> Bool
2021PrimAny = \a b -> <<builtin>>
2022
1292PrimBAnd 2023PrimBAnd
1293 :: forall a b (c :: Nat) . (Integral a, b ~ VecScalar c a) => b -> b -> b 2024 :: forall a b (c :: Nat) . (Integral a, b ~ VecScalar c a) => b -> b -> b
1294PrimBOr 2025PrimBAnd = \a b c d e f g -> <<builtin>>
1295 :: forall a b (c :: Nat) . (Integral a, b ~ VecScalar c a) => b -> b -> b 2026
1296PrimBXor
1297 :: forall a b (c :: Nat) . (Integral a, b ~ VecScalar c a) => b -> b -> b
1298PrimBAndS 2027PrimBAndS
1299 :: forall a b (c :: Nat) . (Integral a, b ~ VecScalar c a) => b -> a -> b 2028 :: forall a b (c :: Nat) . (Integral a, b ~ VecScalar c a) => b -> a -> b
2029PrimBAndS = \a b c d e f g -> <<builtin>>
2030
2031PrimBNot :: forall a b (c :: Nat) . (Integral a, b ~ VecScalar c a) => b -> b
2032PrimBNot = \a b c d e f -> <<builtin>>
2033
2034PrimBOr
2035 :: forall a b (c :: Nat) . (Integral a, b ~ VecScalar c a) => b -> b -> b
2036PrimBOr = \a b c d e f g -> <<builtin>>
2037
1300PrimBOrS 2038PrimBOrS
1301 :: forall a b (c :: Nat) . (Integral a, b ~ VecScalar c a) => b -> a -> b 2039 :: forall a b (c :: Nat) . (Integral a, b ~ VecScalar c a) => b -> a -> b
1302PrimBXorS 2040PrimBOrS = \a b c d e f g -> <<builtin>>
1303 :: forall a b (c :: Nat) . (Integral a, b ~ VecScalar c a) => b -> a -> b 2041
1304PrimBNot :: forall a b (c :: Nat) . (Integral a, b ~ VecScalar c a) => b -> b
1305PrimBShiftL 2042PrimBShiftL
1306 :: forall a b (c :: Nat) d 2043 :: forall a b (c :: Nat) d
1307 . (Integral a, b ~ VecScalar c a, d ~ VecScalar c Word) => b -> d -> b 2044 . (Integral a, b ~ VecScalar c a, d ~ VecScalar c Word) => b -> d -> b
2045PrimBShiftL = \a b c d e f g h i -> <<builtin>>
2046
2047PrimBShiftLS
2048 :: forall a b (c :: Nat) . (Integral a, b ~ VecScalar c a) => b -> Word -> b
2049PrimBShiftLS = \a b c d e f g -> <<builtin>>
2050
1308PrimBShiftR 2051PrimBShiftR
1309 :: forall a b (c :: Nat) d 2052 :: forall a b (c :: Nat) d
1310 . (Integral a, b ~ VecScalar c a, d ~ VecScalar c Word) => b -> d -> b 2053 . (Integral a, b ~ VecScalar c a, d ~ VecScalar c Word) => b -> d -> b
1311PrimBShiftLS 2054PrimBShiftR = \a b c d e f g h i -> <<builtin>>
1312 :: forall a b (c :: Nat) . (Integral a, b ~ VecScalar c a) => b -> Word -> b 2055
1313PrimBShiftRS 2056PrimBShiftRS
1314 :: forall a b (c :: Nat) . (Integral a, b ~ VecScalar c a) => b -> Word -> b 2057 :: forall a b (c :: Nat) . (Integral a, b ~ VecScalar c a) => b -> Word -> b
1315PrimAnd :: Bool -> Bool -> Bool 2058PrimBShiftRS = \a b c d e f g -> <<builtin>>
1316PrimOr :: Bool -> Bool -> Bool 2059
1317PrimXor :: Bool -> Bool -> Bool 2060PrimBXor
1318PrimNot :: forall a (b :: Nat) . (a ~ VecScalar b Bool) => a -> a 2061 :: forall a b (c :: Nat) . (Integral a, b ~ VecScalar c a) => b -> b -> b
1319PrimAny :: forall (a :: Nat) . VecScalar a Bool -> Bool 2062PrimBXor = \a b c d e f g -> <<builtin>>
1320PrimAll :: forall (a :: Nat) . VecScalar a Bool -> Bool 2063
1321PrimACos :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a 2064PrimBXorS
1322PrimACosH :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a 2065 :: forall a b (c :: Nat) . (Integral a, b ~ VecScalar c a) => b -> a -> b
1323PrimASin :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a 2066PrimBXorS = \a b c d e f g -> <<builtin>>
1324PrimASinH :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a 2067
1325PrimATan :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a
1326PrimATanH :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a
1327PrimCos :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a
1328PrimCosH :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a
1329PrimDegrees :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a
1330PrimRadians :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a
1331PrimSin :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a
1332PrimSinH :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a
1333PrimTan :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a
1334PrimTanH :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a
1335PrimExp :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a
1336PrimLog :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a
1337PrimExp2 :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a
1338PrimLog2 :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a
1339PrimSqrt :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a
1340PrimInvSqrt :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a
1341PrimPow :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a -> a
1342PrimATan2 :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a -> a
1343PrimFloor :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a
1344PrimTrunc :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a
1345PrimRound :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a
1346PrimRoundEven :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a
1347PrimCeil :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a 2068PrimCeil :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a
1348PrimFract :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a 2069PrimCeil = \a b c d -> <<builtin>>
1349PrimMin :: forall a b (c :: Nat) . (Num a, b ~ VecScalar c a) => b -> b -> b 2070
1350PrimMax :: forall a b (c :: Nat) . (Num a, b ~ VecScalar c a) => b -> b -> b
1351PrimMinS :: forall a b (c :: Nat) . (Num a, b ~ VecScalar c a) => b -> a -> b
1352PrimMaxS :: forall a b (c :: Nat) . (Num a, b ~ VecScalar c a) => b -> a -> b
1353PrimIsNan
1354 :: forall a (b :: Nat) c
1355 . (a ~ VecScalar b Float, c ~ VecScalar b Bool) => a -> c
1356PrimIsInf
1357 :: forall a (b :: Nat) c
1358 . (a ~ VecScalar b Float, c ~ VecScalar b Bool) => a -> c
1359PrimAbs :: forall a b (c :: Nat) . (Signed a, b ~ VecScalar c a) => b -> b
1360PrimSign :: forall a b (c :: Nat) . (Signed a, b ~ VecScalar c a) => b -> b
1361PrimModF :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> (a, a)
1362PrimClamp 2071PrimClamp
1363 :: forall a b (c :: Nat) . (Num a, b ~ VecScalar c a) => b -> b -> b -> b 2072 :: forall a b (c :: Nat) . (Num a, b ~ VecScalar c a) => b -> b -> b -> b
2073PrimClamp = \a b c d e f g h -> <<builtin>>
2074
1364PrimClampS 2075PrimClampS
1365 :: forall a b (c :: Nat) . (Num a, b ~ VecScalar c a) => b -> a -> a -> b 2076 :: forall a b (c :: Nat) . (Num a, b ~ VecScalar c a) => b -> a -> a -> b
1366PrimMix :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a -> a -> a 2077PrimClampS = \a b c d e f g h -> <<builtin>>
1367PrimMixS 2078
1368 :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a -> Float -> a 2079PrimCos :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a
1369PrimMixB 2080PrimCos = \a b c d -> <<builtin>>
1370 :: forall a (b :: Nat) c 2081
1371 . (a ~ VecScalar b Float, c ~ VecScalar b Bool) => a -> a -> c -> a 2082PrimCosH :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a
1372PrimStep :: forall a (b :: Nat) . (a ~ VecS Float b) => a -> a -> a 2083PrimCosH = \a b c d -> <<builtin>>
1373PrimStepS :: forall a (b :: Nat) . (a ~ VecScalar b Float) => Float -> a -> a 2084
1374PrimSmoothStep :: forall a (b :: Nat) . (a ~ VecS Float b) => a -> a -> a -> a
1375PrimSmoothStepS
1376 :: forall a (b :: Nat) . (a ~ VecScalar b Float) => Float -> Float -> a -> a
1377PrimFloatBitsToInt :: forall (a :: Nat) . VecScalar a Float -> VecScalar a Int
1378PrimFloatBitsToUInt :: forall (a :: Nat) . VecScalar a Float -> VecScalar a Word
1379PrimIntBitsToFloat :: forall (a :: Nat) . VecScalar a Int -> VecScalar a Float
1380PrimUIntBitsToFloat :: forall (a :: Nat) . VecScalar a Word -> VecScalar a Float
1381PrimLength :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> Float
1382PrimDistance :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a -> Float
1383PrimDot :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a -> Float
1384PrimCross :: forall a . (a ~ VecS Float 3) => a -> a -> a 2085PrimCross :: forall a . (a ~ VecS Float 3) => a -> a -> a
1385PrimNormalize :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a 2086PrimCross = \a b c d -> <<builtin>>
1386PrimFaceForward 2087
1387 :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a -> a -> a 2088PrimDFdx :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a
1388PrimRefract :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a -> a -> a 2089PrimDFdx = \a b c d -> <<builtin>>
1389PrimReflect :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a -> a 2090
1390PrimTranspose :: forall (a :: Nat) (b :: Nat) c . Mat a b c -> Mat b a c 2091PrimDFdy :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a
2092PrimDFdy = \a b c d -> <<builtin>>
2093
2094PrimDegrees :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a
2095PrimDegrees = \a b c d -> <<builtin>>
2096
1391PrimDeterminant :: forall (a :: Nat) b . Mat a a b -> Float 2097PrimDeterminant :: forall (a :: Nat) b . Mat a a b -> Float
1392PrimInverse :: forall (a :: Nat) b . Mat a a b -> Mat a a b 2098PrimDeterminant = \a b c -> <<builtin>>
1393PrimOuterProduct 2099
1394 :: forall (a :: Nat) b (c :: Nat) . Vec a b -> Vec c b -> Mat c a b 2100PrimDistance :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a -> Float
1395PrimMulMatVec 2101PrimDistance = \a b c d e -> <<builtin>>
1396 :: forall (a :: Nat) (b :: Nat) c . Mat a b c -> Vec b c -> Vec a c 2102
1397PrimMulVecMat 2103PrimDiv :: forall a b (c :: Nat) . (Num a, b ~ VecScalar c a) => b -> b -> b
1398 :: forall (a :: Nat) b (c :: Nat) . Vec a b -> Mat a c b -> Vec c b 2104PrimDiv = \a b c d e f g -> <<builtin>>
1399PrimMulMatMat 2105
1400 :: forall (a :: Nat) (b :: Nat) c (d :: Nat) 2106PrimDivS :: forall a b (c :: Nat) . (Num a, b ~ VecScalar c a) => b -> a -> b
1401 . Mat a b c -> Mat b d c -> Mat a d c 2107PrimDivS = \a b c d e f g -> <<builtin>>
1402PrimLessThan 2108
1403 :: forall a (b :: Nat) c d 2109PrimDot :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a -> Float
1404 . (Num c, a ~ VecScalar b c, d ~ VecScalar b Bool) => a -> a -> d 2110PrimDot = \a b c d e -> <<builtin>>
1405PrimLessThanEqual 2111
2112PrimEqual :: forall a b . (b ~ MatVecScalarElem a) => a -> a -> Bool
2113PrimEqual = \a b c d e -> <<builtin>>
2114
2115PrimEqualV
1406 :: forall a (b :: Nat) c d 2116 :: forall a (b :: Nat) c d
1407 . (Num c, a ~ VecScalar b c, d ~ VecScalar b Bool) => a -> a -> d 2117 . (Num c, a ~ VecScalar b c, d ~ VecScalar b Bool) => a -> a -> d
2118PrimEqualV = \a b c d e f g h i -> <<builtin>>
2119
2120PrimExp :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a
2121PrimExp = \a b c d -> <<builtin>>
2122
2123PrimExp2 :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a
2124PrimExp2 = \a b c d -> <<builtin>>
2125
2126PrimFWidth :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a
2127PrimFWidth = \a b c d -> <<builtin>>
2128
2129PrimFaceForward
2130 :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a -> a -> a
2131PrimFaceForward = \a b c d e f -> <<builtin>>
2132
2133PrimFloatBitsToInt :: forall (a :: Nat) . VecScalar a Float -> VecScalar a Int
2134PrimFloatBitsToInt = \a b -> <<builtin>>
2135
2136PrimFloatBitsToUInt :: forall (a :: Nat) . VecScalar a Float -> VecScalar a Word
2137PrimFloatBitsToUInt = \a b -> <<builtin>>
2138
2139PrimFloor :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a
2140PrimFloor = \a b c d -> <<builtin>>
2141
2142PrimFract :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a
2143PrimFract = \a b c d -> <<builtin>>
2144
1408PrimGreaterThan 2145PrimGreaterThan
1409 :: forall a (b :: Nat) c d 2146 :: forall a (b :: Nat) c d
1410 . (Num c, a ~ VecScalar b c, d ~ VecScalar b Bool) => a -> a -> d 2147 . (Num c, a ~ VecScalar b c, d ~ VecScalar b Bool) => a -> a -> d
2148PrimGreaterThan = \a b c d e f g h i -> <<builtin>>
2149
1411PrimGreaterThanEqual 2150PrimGreaterThanEqual
1412 :: forall a (b :: Nat) c d 2151 :: forall a (b :: Nat) c d
1413 . (Num c, a ~ VecScalar b c, d ~ VecScalar b Bool) => a -> a -> d 2152 . (Num c, a ~ VecScalar b c, d ~ VecScalar b Bool) => a -> a -> d
1414PrimEqualV 2153PrimGreaterThanEqual = \a b c d e f g h i -> <<builtin>>
2154
2155PrimIntBitsToFloat :: forall (a :: Nat) . VecScalar a Int -> VecScalar a Float
2156PrimIntBitsToFloat = \a b -> <<builtin>>
2157
2158PrimInvSqrt :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a
2159PrimInvSqrt = \a b c d -> <<builtin>>
2160
2161PrimInverse :: forall (a :: Nat) b . Mat a a b -> Mat a a b
2162PrimInverse = \a b c -> <<builtin>>
2163
2164PrimIsInf
2165 :: forall a (b :: Nat) c
2166 . (a ~ VecScalar b Float, c ~ VecScalar b Bool) => a -> c
2167PrimIsInf = \a b c d e f -> <<builtin>>
2168
2169PrimIsNan
2170 :: forall a (b :: Nat) c
2171 . (a ~ VecScalar b Float, c ~ VecScalar b Bool) => a -> c
2172PrimIsNan = \a b c d e f -> <<builtin>>
2173
2174PrimLength :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> Float
2175PrimLength = \a b c d -> <<builtin>>
2176
2177PrimLessThan
1415 :: forall a (b :: Nat) c d 2178 :: forall a (b :: Nat) c d
1416 . (Num c, a ~ VecScalar b c, d ~ VecScalar b Bool) => a -> a -> d 2179 . (Num c, a ~ VecScalar b c, d ~ VecScalar b Bool) => a -> a -> d
1417PrimNotEqualV 2180PrimLessThan = \a b c d e f g h i -> <<builtin>>
2181
2182PrimLessThanEqual
1418 :: forall a (b :: Nat) c d 2183 :: forall a (b :: Nat) c d
1419 . (Num c, a ~ VecScalar b c, d ~ VecScalar b Bool) => a -> a -> d 2184 . (Num c, a ~ VecScalar b c, d ~ VecScalar b Bool) => a -> a -> d
1420PrimEqual :: forall a b . (b ~ MatVecScalarElem a) => a -> a -> Bool 2185PrimLessThanEqual = \a b c d e f g h i -> <<builtin>>
1421PrimNotEqual :: forall a b . (b ~ MatVecScalarElem a) => a -> a -> Bool 2186
1422PrimDFdx :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a 2187PrimLine :: forall a . a -> a -> Primitive a 'Line
1423PrimDFdy :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a 2188PrimLine = <<1st constructor of 'Primitive>>
1424PrimFWidth :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a 2189
2190PrimLog :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a
2191PrimLog = \a b c d -> <<builtin>>
2192
2193PrimLog2 :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a
2194PrimLog2 = \a b c d -> <<builtin>>
2195
2196PrimMax :: forall a b (c :: Nat) . (Num a, b ~ VecScalar c a) => b -> b -> b
2197PrimMax = \a b c d e f g -> <<builtin>>
2198
2199PrimMaxS :: forall a b (c :: Nat) . (Num a, b ~ VecScalar c a) => b -> a -> b
2200PrimMaxS = \a b c d e f g -> <<builtin>>
2201
2202PrimMin :: forall a b (c :: Nat) . (Num a, b ~ VecScalar c a) => b -> b -> b
2203PrimMin = \a b c d e f g -> <<builtin>>
2204
2205PrimMinS :: forall a b (c :: Nat) . (Num a, b ~ VecScalar c a) => b -> a -> b
2206PrimMinS = \a b c d e f g -> <<builtin>>
2207
2208PrimMix :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a -> a -> a
2209PrimMix = \a b c d e f -> <<builtin>>
2210
2211PrimMixB
2212 :: forall a (b :: Nat) c
2213 . (a ~ VecScalar b Float, c ~ VecScalar b Bool) => a -> a -> c -> a
2214PrimMixB = \a b c d e f g h -> <<builtin>>
2215
2216PrimMixS
2217 :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a -> Float -> a
2218PrimMixS = \a b c d e f -> <<builtin>>
2219
2220PrimMod :: forall a b (c :: Nat) . (Num a, b ~ VecScalar c a) => b -> b -> b
2221PrimMod = \a b c d e f g -> <<builtin>>
2222
2223PrimModF :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> (a, a)
2224PrimModF = \a b c d -> <<builtin>>
2225
2226PrimModS :: forall a b (c :: Nat) . (Num a, b ~ VecScalar c a) => b -> a -> b
2227PrimModS = \a b c d e f g -> <<builtin>>
2228
2229PrimMul :: forall a . Num (MatVecScalarElem a) => a -> a -> a
2230PrimMul = \a b c d -> <<builtin>>
2231
2232PrimMulMatMat
2233 :: forall (a :: Nat) (b :: Nat) c (d :: Nat)
2234 . Mat a b c -> Mat b d c -> Mat a d c
2235PrimMulMatMat = \a b c d e f -> <<builtin>>
2236
2237PrimMulMatVec
2238 :: forall (a :: Nat) (b :: Nat) c . Mat a b c -> Vec b c -> Vec a c
2239PrimMulMatVec = \a b c d e -> <<builtin>>
2240
2241PrimMulS :: forall a b . (a ~ MatVecScalarElem b, Num a) => b -> a -> b
2242PrimMulS = \a b c d e f -> <<builtin>>
2243
2244PrimMulVecMat
2245 :: forall (a :: Nat) b (c :: Nat) . Vec a b -> Mat a c b -> Vec c b
2246PrimMulVecMat = \a b c d e -> <<builtin>>
2247
2248PrimNeg :: forall a . Signed (MatVecScalarElem a) => a -> a
2249PrimNeg = \a b c -> <<builtin>>
2250
1425PrimNoise1 :: forall (a :: Nat) . VecScalar a Float -> Float 2251PrimNoise1 :: forall (a :: Nat) . VecScalar a Float -> Float
2252PrimNoise1 = \a b -> <<builtin>>
2253
1426PrimNoise2 :: forall (a :: Nat) . VecScalar a Float -> Vec 2 Float 2254PrimNoise2 :: forall (a :: Nat) . VecScalar a Float -> Vec 2 Float
2255PrimNoise2 = \a b -> <<builtin>>
2256
1427PrimNoise3 :: forall (a :: Nat) . VecScalar a Float -> Vec 3 Float 2257PrimNoise3 :: forall (a :: Nat) . VecScalar a Float -> Vec 3 Float
2258PrimNoise3 = \a b -> <<builtin>>
2259
1428PrimNoise4 :: forall (a :: Nat) . VecScalar a Float -> Vec 4 Float 2260PrimNoise4 :: forall (a :: Nat) . VecScalar a Float -> Vec 4 Float
1429head :: forall a . [a] -> a 2261PrimNoise4 = \a b -> <<builtin>>
1430(++) :: forall a . [a] -> [a] -> [a] 2262
1431foldr :: forall a b . (b -> a -> a) -> a -> [b] -> a 2263PrimNormalize :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a
1432concat :: forall a . [[a]] -> [a] 2264PrimNormalize = \a b c d -> <<builtin>>
1433map :: forall a b . (a -> b) -> [a] -> [b] 2265
1434concatMap :: forall a b . (a -> [b]) -> [a] -> [b] 2266PrimNot :: forall a (b :: Nat) . (a ~ VecScalar b Bool) => a -> a
1435len :: forall a . [a] -> Int 2267PrimNot = \a b c d -> <<builtin>>
1436'Maybe :: Type -> Type 2268
1437Nothing :: forall a . Maybe a 2269PrimNotEqual :: forall a b . (b ~ MatVecScalarElem a) => a -> a -> Bool
1438Just :: forall a . a -> Maybe a 2270PrimNotEqual = \a b c d e -> <<builtin>>
1439case'Maybe 2271
1440 :: forall a 2272PrimNotEqualV
1441 . forall (b :: Maybe a -> Type) 2273 :: forall a (b :: Nat) c d
1442 -> b 'Nothing 2274 . (Num c, a ~ VecScalar b c, d ~ VecScalar b Bool) => a -> a -> d
1443 -> (forall (c :: a) -> b ('Just c)) -> forall (d :: Maybe a) -> b d 2275PrimNotEqualV = \a b c d e f g h i -> <<builtin>>
1444match'Maybe 2276
1445 :: forall (a :: Type -> Type) 2277PrimOr :: Bool -> Bool -> Bool
1446 -> (forall b -> a (Maybe b)) -> forall c -> a c -> a c 2278PrimOr = \a b -> <<builtin>>
1447'Vector :: Nat -> Type -> Type 2279
1448case'Vector 2280PrimOuterProduct
1449 :: forall (a :: Nat) b 2281 :: forall (a :: Nat) b (c :: Nat) . Vec a b -> Vec c b -> Mat c a b
1450 . forall (c :: Vector a b -> Type) (d :: Vector a b) -> c d 2282PrimOuterProduct = \a b c d e -> <<builtin>>
1451match'Vector 2283
1452 :: forall (a :: Type -> Type)
1453 -> (forall (b :: Nat) c -> a (Vector b c)) -> forall d -> a d -> a d
1454'PrimitiveType :: Type
1455Triangle :: PrimitiveType
1456Line :: PrimitiveType
1457Point :: PrimitiveType
1458TriangleAdjacency :: PrimitiveType
1459LineAdjacency :: PrimitiveType
1460case'PrimitiveType
1461 :: forall (a :: PrimitiveType -> Type)
1462 -> a 'Triangle
1463 -> a 'Line
1464 -> a 'Point
1465 -> a 'TriangleAdjacency
1466 -> a 'LineAdjacency -> forall (b :: PrimitiveType) -> a b
1467match'PrimitiveType
1468 :: forall (a :: Type -> Type) -> a PrimitiveType -> forall b -> a b -> a b
1469'Primitive :: Type -> PrimitiveType -> Type
1470PrimPoint :: forall a . a -> Primitive a 'Point 2284PrimPoint :: forall a . a -> Primitive a 'Point
1471PrimLine :: forall a . a -> a -> Primitive a 'Line 2285PrimPoint = <<0th constructor of 'Primitive>>
2286
2287PrimPow :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a -> a
2288PrimPow = \a b c d e -> <<builtin>>
2289
2290PrimRadians :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a
2291PrimRadians = \a b c d -> <<builtin>>
2292
2293PrimReflect :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a -> a
2294PrimReflect = \a b c d e -> <<builtin>>
2295
2296PrimRefract :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a -> a -> a
2297PrimRefract = \a b c d e f -> <<builtin>>
2298
2299PrimRound :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a
2300PrimRound = \a b c d -> <<builtin>>
2301
2302PrimRoundEven :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a
2303PrimRoundEven = \a b c d -> <<builtin>>
2304
2305PrimSign :: forall a b (c :: Nat) . (Signed a, b ~ VecScalar c a) => b -> b
2306PrimSign = \a b c d e f -> <<builtin>>
2307
2308PrimSin :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a
2309PrimSin = \a b c d -> <<builtin>>
2310
2311PrimSinH :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a
2312PrimSinH = \a b c d -> <<builtin>>
2313
2314PrimSmoothStep :: forall a (b :: Nat) . (a ~ VecS Float b) => a -> a -> a -> a
2315PrimSmoothStep = \a b c d e f -> <<builtin>>
2316
2317PrimSmoothStepS
2318 :: forall a (b :: Nat) . (a ~ VecScalar b Float) => Float -> Float -> a -> a
2319PrimSmoothStepS = \a b c d e f -> <<builtin>>
2320
2321PrimSqrt :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a
2322PrimSqrt = \a b c d -> <<builtin>>
2323
2324PrimStep :: forall a (b :: Nat) . (a ~ VecS Float b) => a -> a -> a
2325PrimStep = \a b c d e -> <<builtin>>
2326
2327PrimStepS :: forall a (b :: Nat) . (a ~ VecScalar b Float) => Float -> a -> a
2328PrimStepS = \a b c d e -> <<builtin>>
2329
2330PrimSub :: forall a . Num (MatVecScalarElem a) => a -> a -> a
2331PrimSub = \a b c d -> <<builtin>>
2332
2333PrimSubS :: forall a b . (a ~ MatVecScalarElem b, Num a) => b -> a -> b
2334PrimSubS = \a b c d e f -> <<builtin>>
2335
2336PrimTan :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a
2337PrimTan = \a b c d -> <<builtin>>
2338
2339PrimTanH :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a
2340PrimTanH = \a b c d -> <<builtin>>
2341
2342PrimTranspose :: forall (a :: Nat) (b :: Nat) c . Mat a b c -> Mat b a c
2343PrimTranspose = \a b c d -> <<builtin>>
2344
1472PrimTriangle :: forall a . a -> a -> a -> Primitive a 'Triangle 2345PrimTriangle :: forall a . a -> a -> a -> Primitive a 'Triangle
1473case'Primitive 2346PrimTriangle = <<2nd constructor of 'Primitive>>
1474 :: forall a 2347
1475 . forall (b :: forall (c :: PrimitiveType) -> Primitive a c -> Type) 2348PrimTrunc :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a
1476 -> (forall (d :: a) -> b 'Point ('PrimPoint d)) 2349PrimTrunc = \a b c d -> <<builtin>>
1477 -> (forall (e :: a) (f :: a) -> b 'Line ('PrimLine e f)) 2350
1478 -> (forall (g :: a) (h :: a) (i :: a) -> b 'Triangle ('PrimTriangle g h i)) 2351PrimUIntBitsToFloat :: forall (a :: Nat) . VecScalar a Word -> VecScalar a Float
1479 -> forall (j :: PrimitiveType) . forall (k :: Primitive a j) -> b j k 2352PrimUIntBitsToFloat = \a b -> <<builtin>>
1480match'Primitive 2353
1481 :: forall (a :: Type -> Type) 2354PrimXor :: Bool -> Bool -> Bool
1482 -> (forall b (c :: PrimitiveType) -> a (Primitive b c)) 2355PrimXor = \a b -> <<builtin>>
1483 -> forall d -> a d -> a d 2356
1484mapPrimitive 2357PrjImage :: forall (a :: ImageKind) . FrameBuffer 1 ' [a] -> Image 1 a
1485 :: forall a b (c :: PrimitiveType) . (a -> b) -> Primitive a c -> Primitive b c 2358PrjImage = \a b -> <<builtin>>
1486'PrimitiveStream :: PrimitiveType -> Type -> Type 2359
1487mapPrimitives 2360PrjImageColor
1488 :: forall a b (c :: PrimitiveType) 2361 :: FrameBuffer 1 ' ['Depth, 'Color (Vec 4 Float)]
1489 . (a -> b) -> [Primitive a c] -> [Primitive b c] 2362 -> Image 1 ('Color (Vec 4 Float))
1490'ListElem :: Type -> Type 2363PrjImageColor = \a -> <<builtin>>
1491fetchArrays 2364
1492 :: forall (a :: PrimitiveType) (b :: [Type]) (c :: [Type]) 2365ProgramPointSize :: forall a . (a -> Float) -> PointSize a
1493 . (b ~ (map Type Type ListElem c :: [Type])) 2366ProgramPointSize = <<1st constructor of 'PointSize>>
1494 => HList c -> PrimitiveStream a (HList b) 2367
1495fetch 2368Repeat :: EdgeMode
1496 :: forall (a :: PrimitiveType) (b :: [Type]) 2369Repeat = <<0th constructor of 'EdgeMode>>
1497 . String -> HList b -> PrimitiveStream a (HList b) 2370
1498Attribute :: forall a . String -> a 2371Sampler :: Filter -> EdgeMode -> Texture -> Sampler
1499fetchStream 2372Sampler = <<0th constructor of 'Sampler>>
1500 :: forall (a :: PrimitiveType) (b :: [Type]) 2373
1501 . String 2374ScreenOut :: forall (a :: Nat) (b :: [ImageKind]) . FrameBuffer a b -> Output
1502 -> forall (c :: [String]) 2375ScreenOut = <<0th constructor of 'Output>>
1503 -> (len String c ~ (len Type b :: Int)) => PrimitiveStream a (HList b) 2376
1504'SimpleFragment :: Type -> Type 2377Set :: LogicOperation
2378Set = <<15th constructor of 'LogicOperation>>
2379
1505SimpleFragment :: forall a . Vec 3 Float -> a -> SimpleFragment a 2380SimpleFragment :: forall a . Vec 3 Float -> a -> SimpleFragment a
1506case'SimpleFragment 2381SimpleFragment = <<0th constructor of 'SimpleFragment>>
1507 :: forall a 2382
1508 . forall (b :: SimpleFragment a -> Type) 2383Smooth :: forall a . Floating a => Interpolated a
1509 -> (forall (c :: Vec 3 Float) (d :: a) -> b ('SimpleFragment c d)) 2384Smooth = <<0th constructor of 'Interpolated>>
1510 -> forall (e :: SimpleFragment a) -> b e 2385
1511match'SimpleFragment 2386SrcAlpha :: BlendingFactor
1512 :: forall (a :: Type -> Type) 2387SrcAlpha = <<6th constructor of 'BlendingFactor>>
1513 -> (forall b -> a (SimpleFragment b)) -> forall c -> a c -> a c 2388
1514'Fragment :: Nat -> Type -> Type 2389SrcAlphaSaturate :: BlendingFactor
1515sFragmentCoords :: forall a . SimpleFragment a -> VecS Float 3 2390SrcAlphaSaturate = <<14th constructor of 'BlendingFactor>>
1516sFragmentValue :: forall a . SimpleFragment a -> a 2391
1517'FragmentStream :: Nat -> Type -> Type 2392SrcColor :: BlendingFactor
1518customizeDepth 2393SrcColor = <<2nd constructor of 'BlendingFactor>>
1519 :: forall a (b :: Nat) . (a -> Float) -> Fragment b a -> Fragment b a 2394
1520customizeDepths
1521 :: forall a (b :: Nat)
1522 . (a -> Float)
1523 -> [Vector b (Maybe (SimpleFragment a))]
1524 -> [Vector b (Maybe (SimpleFragment a))]
1525filterFragment
1526 :: forall a (b :: Nat) . (a -> Bool) -> Fragment b a -> Fragment b a
1527filterFragments
1528 :: forall a (b :: Nat)
1529 . (a -> Bool)
1530 -> [Vector b (Maybe (SimpleFragment a))]
1531 -> [Vector b (Maybe (SimpleFragment a))]
1532mapFragment :: forall a b (c :: Nat) . (a -> b) -> Fragment c a -> Fragment c b
1533mapFragments
1534 :: forall a b (c :: Nat)
1535 . (a -> b)
1536 -> [Vector c (Maybe (SimpleFragment a))]
1537 -> [Vector c (Maybe (SimpleFragment b))]
1538'ImageKind :: Type
1539Color :: Type -> ImageKind
1540Depth :: ImageKind
1541Stencil :: ImageKind 2395Stencil :: ImageKind
1542case'ImageKind 2396Stencil = <<2nd constructor of 'ImageKind>>
1543 :: forall (a :: ImageKind -> Type) 2397
1544 -> (forall b -> a ('Color b))
1545 -> a 'Depth -> a 'Stencil -> forall (c :: ImageKind) -> a c
1546match'ImageKind
1547 :: forall (a :: Type -> Type) -> a ImageKind -> forall b -> a b -> a b
1548imageType :: ImageKind -> Type
1549'Image :: Nat -> ImageKind -> Type
1550case'Image
1551 :: forall (a :: Nat) (b :: ImageKind)
1552 . forall (c :: Image a b -> Type) (d :: Image a b) -> c d
1553match'Image
1554 :: forall (a :: Type -> Type)
1555 -> (forall (b :: Nat) (c :: ImageKind) -> a (Image b c))
1556 -> forall d -> a d -> a d
1557ColorImage
1558 :: forall (a :: Nat) (b :: Nat) c d
1559 . (Num c, d ~ VecScalar b c) => d -> Image a ('Color d)
1560DepthImage :: forall (a :: Nat) . Float -> Image a 'Depth
1561StencilImage :: forall (a :: Nat) . Int -> Image a 'Stencil 2398StencilImage :: forall (a :: Nat) . Int -> Image a 'Stencil
1562emptyDepthImage :: Float -> Image 1 'Depth 2399StencilImage = \a b -> <<builtin>>
1563emptyColorImage 2400
1564 :: forall (a :: Nat) b c . (Num b, c ~ VecScalar a b) => c -> Image 1 ('Color c) 2401StencilOp
1565'Swizz :: Type 2402 :: StencilTests -> StencilOps -> StencilOps -> FragmentOperation 'Stencil
2403StencilOp = <<2nd constructor of 'FragmentOperation>>
2404
2405Sw :: Swizz
2406Sw = <<3rd constructor of 'Swizz>>
2407
1566Sx :: Swizz 2408Sx :: Swizz
2409Sx = <<0th constructor of 'Swizz>>
2410
1567Sy :: Swizz 2411Sy :: Swizz
2412Sy = <<1st constructor of 'Swizz>>
2413
1568Sz :: Swizz 2414Sz :: Swizz
1569Sw :: Swizz 2415Sz = <<2nd constructor of 'Swizz>>
1570case'Swizz 2416
1571 :: forall (a :: Swizz -> Type) 2417Texture2D :: Vec 2 Int -> Image 1 ('Color (Vec 4 Float)) -> Texture
1572 -> a 'Sx -> a 'Sy -> a 'Sz -> a 'Sw -> forall (b :: Swizz) -> a b 2418Texture2D = <<1st constructor of 'Texture>>
1573match'Swizz :: forall (a :: Type -> Type) -> a Swizz -> forall b -> a b -> a b 2419
1574swizzscalar :: forall a (b :: Nat) . Vec b a -> Swizz -> a 2420Texture2DSlot :: String -> Texture
1575definedVec :: forall a (b :: Nat) . Vec b a -> Bool 2421Texture2DSlot = <<0th constructor of 'Texture>>
1576swizzvector 2422
1577 :: forall a (b :: Nat) (c :: Nat) . Vec b a -> Vec c Swizz -> VecS a c 2423Triangle :: PrimitiveType
1578'BlendingFactor :: Type 2424Triangle = <<0th constructor of 'PrimitiveType>>
2425
2426TriangleAdjacency :: PrimitiveType
2427TriangleAdjacency = <<3rd constructor of 'PrimitiveType>>
2428
2429TriangleCtx
2430 :: forall a
2431 . CullMode
2432 -> PolygonMode a
2433 -> PolygonOffset -> ProvokingVertex -> RasterContext a 'Triangle
2434TriangleCtx = <<0th constructor of 'RasterContext>>
2435
2436Uniform :: forall a . String -> a
2437Uniform = \a b -> <<builtin>>
2438
2439UpperLeft :: PointSpriteCoordOrigin
2440UpperLeft = <<1st constructor of 'PointSpriteCoordOrigin>>
2441
2442V2 :: forall a . a -> a -> VecS a 2
2443V2 = <<0th constructor of 'VecS>>
2444
2445V3 :: forall a . a -> a -> a -> VecS a 3
2446V3 = <<1st constructor of 'VecS>>
2447
2448V4 :: forall a . a -> a -> a -> a -> VecS a 4
2449V4 = <<2nd constructor of 'VecS>>
2450
2451Xor :: LogicOperation
2452Xor = <<6th constructor of 'LogicOperation>>
2453
1579ZeroBF :: BlendingFactor 2454ZeroBF :: BlendingFactor
1580OneBF :: BlendingFactor 2455ZeroBF = <<0th constructor of 'BlendingFactor>>
1581SrcColor :: BlendingFactor 2456
1582OneMinusSrcColor :: BlendingFactor 2457accumulate
1583DstColor :: BlendingFactor 2458 :: forall (a :: Nat) (b :: [Type]) c
1584OneMinusDstColor :: BlendingFactor 2459 . HList b
1585SrcAlpha :: BlendingFactor 2460 -> (c -> HList (imageType' (map Type ImageKind FragmentOperationKind b)))
1586OneMinusSrcAlpha :: BlendingFactor 2461 -> [Vector a (Maybe (SimpleFragment c))]
1587DstAlpha :: BlendingFactor 2462 -> FrameBuffer a (map Type ImageKind FragmentOperationKind b)
1588OneMinusDstAlpha :: BlendingFactor 2463 -> FrameBuffer a (map Type ImageKind FragmentOperationKind b)
1589ConstantColor :: BlendingFactor 2464accumulate
1590OneMinusConstantColor :: BlendingFactor 2465 = \a b c d e f g -> _rhs
1591ConstantAlpha :: BlendingFactor 2466 (Accumulate
1592OneMinusConstantAlpha :: BlendingFactor 2467 (map Type 'ImageKind 'FragmentOperationKind b)
1593SrcAlphaSaturate :: BlendingFactor 2468 a
2469 b
2470 TT
2471 d
2472 (map
2473 ('Vector a ('Maybe ('SimpleFragment c)))
2474 ('Vector
2475 a
2476 ('Maybe
2477 ('SimpleFragment
2478 ('HList (imageType' (map Type 'ImageKind 'FragmentOperationKind b))))))
2479 (\h -> mapFragment
2480 c
2481 ('HList (imageType' (map Type 'ImageKind 'FragmentOperationKind b)))
2482 a
2483 e
2484 h)
2485 f)
2486 g)
2487
2488accumulateWith :: forall a b . a -> b -> (a, b)
2489accumulateWith = \a b c d -> _rhs (c, d)
2490
2491accumulationContext :: forall a . a -> a
2492accumulationContext = \_ a -> _rhs a
2493
2494allSame :: forall a . [a] -> Constraint
2495allSame
2496 = primFix
2497 (forall a . [a] -> 'Constraint)
2498 \b c d -> case'List
2499 (\_ -> 'Constraint)
2500 (_rhs CUnit)
2501 (\e f -> case'List
2502 (\_ -> 'Constraint)
2503 (_rhs CUnit)
2504 (\g h -> _rhs ('T2 (e ~ (g :: c)) (b c (g : h))))
2505 f)
2506 d
2507
2508case'BlendEquation
2509 :: forall (a :: BlendEquation -> Type)
2510 -> a 'FuncAdd
2511 -> a 'FuncSubtract
2512 -> a 'FuncReverseSubtract
2513 -> a 'Min -> a 'Max -> forall (b :: BlendEquation) -> a b
2514case'BlendEquation
2515 = \a b c d e f g -> <<case function of a type with 0 parameters>>
2516
2517case'Blending
2518 :: forall (a :: forall b -> Blending b -> Type)
2519 -> (forall c . a c ('NoBlending c))
2520 -> (forall d (e :: CW (Integral d))
2521 . forall (f :: LogicOperation) -> a d ('BlendLogicOp d e f))
2522 -> (forall (g :: (BlendEquation, BlendEquation))
2523 (h :: ((BlendingFactor, BlendingFactor), (BlendingFactor, BlendingFactor)))
2524 (i :: Vec 4 Float)
2525 -> a Float ('Blend g h i))
2526 -> forall j . forall (k :: Blending j) -> a j k
2527case'Blending = \a b c d e f -> <<case function of a type with 0 parameters>>
2528
1594case'BlendingFactor 2529case'BlendingFactor
1595 :: forall (a :: BlendingFactor -> Type) 2530 :: forall (a :: BlendingFactor -> Type)
1596 -> a 'ZeroBF 2531 -> a 'ZeroBF
@@ -1608,39 +2543,75 @@ case'BlendingFactor
1608 -> a 'ConstantAlpha 2543 -> a 'ConstantAlpha
1609 -> a 'OneMinusConstantAlpha 2544 -> a 'OneMinusConstantAlpha
1610 -> a 'SrcAlphaSaturate -> forall (b :: BlendingFactor) -> a b 2545 -> a 'SrcAlphaSaturate -> forall (b :: BlendingFactor) -> a b
1611match'BlendingFactor 2546case'BlendingFactor
1612 :: forall (a :: Type -> Type) -> a BlendingFactor -> forall b -> a b -> a b 2547 = \a b c d e f g h i j k l m n o p q
1613'BlendEquation :: Type 2548 -> <<case function of a type with 0 parameters>>
1614FuncAdd :: BlendEquation 2549
1615FuncSubtract :: BlendEquation 2550case'ComparisonFunction
1616FuncReverseSubtract :: BlendEquation 2551 :: forall (a :: ComparisonFunction -> Type)
1617Min :: BlendEquation 2552 -> a 'Never
1618Max :: BlendEquation 2553 -> a 'Less
1619case'BlendEquation 2554 -> a 'Equal
1620 :: forall (a :: BlendEquation -> Type) 2555 -> a 'Lequal
1621 -> a 'FuncAdd 2556 -> a 'Greater
1622 -> a 'FuncSubtract 2557 -> a 'Notequal
1623 -> a 'FuncReverseSubtract 2558 -> a 'Gequal -> a 'Always -> forall (b :: ComparisonFunction) -> a b
1624 -> a 'Min -> a 'Max -> forall (b :: BlendEquation) -> a b 2559case'ComparisonFunction
1625match'BlendEquation 2560 = \a b c d e f g h i j -> <<case function of a type with 0 parameters>>
1626 :: forall (a :: Type -> Type) -> a BlendEquation -> forall b -> a b -> a b 2561
1627'LogicOperation :: Type 2562case'CullMode
1628Clear :: LogicOperation 2563 :: forall (a :: CullMode -> Type)
1629And :: LogicOperation 2564 -> a 'CullFront -> a 'CullBack -> a 'CullNone -> forall (b :: CullMode) -> a b
1630AndReverse :: LogicOperation 2565case'CullMode = \a b c d e -> <<case function of a type with 0 parameters>>
1631Copy :: LogicOperation 2566
1632AndInverted :: LogicOperation 2567case'EdgeMode
1633Noop :: LogicOperation 2568 :: forall (a :: EdgeMode -> Type)
1634Xor :: LogicOperation 2569 -> a 'Repeat
1635Or :: LogicOperation 2570 -> a 'MirroredRepeat -> a 'ClampToEdge -> forall (b :: EdgeMode) -> a b
1636Nor :: LogicOperation 2571case'EdgeMode = \a b c d e -> <<case function of a type with 0 parameters>>
1637Equiv :: LogicOperation 2572
1638Invert :: LogicOperation 2573case'Filter
1639OrReverse :: LogicOperation 2574 :: forall (a :: Filter -> Type)
1640CopyInverted :: LogicOperation 2575 -> a 'PointFilter -> a 'LinearFilter -> forall (b :: Filter) -> a b
1641OrInverted :: LogicOperation 2576case'Filter = \a b c d -> <<case function of a type with 0 parameters>>
1642Nand :: LogicOperation 2577
1643Set :: LogicOperation 2578case'FragmentOperation
2579 :: forall (a :: forall (b :: ImageKind) -> FragmentOperation b -> Type)
2580 -> (forall c (d :: Nat) (e :: CW (Num c))
2581 . forall (f :: Blending c) (g :: VecScalar d Bool)
2582 -> a ('Color (VecScalar d c)) ('ColorOp c d e f g))
2583 -> (forall (h :: ComparisonFunction) (i :: Bool) -> a 'Depth ('DepthOp h i))
2584 -> (forall (j :: StencilTests) (k :: StencilOps) (l :: StencilOps)
2585 -> a 'Stencil ('StencilOp j k l))
2586 -> forall (m :: ImageKind) . forall (n :: FragmentOperation m) -> a m n
2587case'FragmentOperation
2588 = \a b c d e f -> <<case function of a type with 0 parameters>>
2589
2590case'FrameBuffer
2591 :: forall (a :: Nat) (b :: [ImageKind])
2592 . forall (c :: FrameBuffer a b -> Type) (d :: FrameBuffer a b) -> c d
2593case'FrameBuffer = \_ _ a b -> <<case function of a type with 2 parameters>>
2594
2595case'Image
2596 :: forall (a :: Nat) (b :: ImageKind)
2597 . forall (c :: Image a b -> Type) (d :: Image a b) -> c d
2598case'Image = \_ _ a b -> <<case function of a type with 2 parameters>>
2599
2600case'ImageKind
2601 :: forall (a :: ImageKind -> Type)
2602 -> (forall b -> a ('Color b))
2603 -> a 'Depth -> a 'Stencil -> forall (c :: ImageKind) -> a c
2604case'ImageKind = \a b c d e -> <<case function of a type with 0 parameters>>
2605
2606case'Interpolated
2607 :: forall a
2608 . forall (b :: Interpolated a -> Type)
2609 -> (forall (c :: CW (Floating a)) . b ('Smooth c))
2610 -> (forall (d :: CW (Floating a)) . b ('NoPerspective d))
2611 -> b 'Flat -> forall (e :: Interpolated a) -> b e
2612case'Interpolated
2613 = \_ a b c d e -> <<case function of a type with 1 parameters>>
2614
1644case'LogicOperation 2615case'LogicOperation
1645 :: forall (a :: LogicOperation -> Type) 2616 :: forall (a :: LogicOperation -> Type)
1646 -> a 'Clear 2617 -> a 'Clear
@@ -1657,81 +2628,63 @@ case'LogicOperation
1657 -> a 'OrReverse 2628 -> a 'OrReverse
1658 -> a 'CopyInverted 2629 -> a 'CopyInverted
1659 -> a 'OrInverted -> a 'Nand -> a 'Set -> forall (b :: LogicOperation) -> a b 2630 -> a 'OrInverted -> a 'Nand -> a 'Set -> forall (b :: LogicOperation) -> a b
1660match'LogicOperation 2631case'LogicOperation
1661 :: forall (a :: Type -> Type) -> a LogicOperation -> forall b -> a b -> a b 2632 = \a b c d e f g h i j k l m n o p q r
1662'StencilOperation :: Type 2633 -> <<case function of a type with 0 parameters>>
1663OpZero :: StencilOperation 2634
1664OpKeep :: StencilOperation 2635case'Mat
1665OpReplace :: StencilOperation 2636 :: forall (a :: forall (b :: Nat) (c :: Nat) d -> Mat b c d -> Type)
1666OpIncr :: StencilOperation 2637 -> (forall (e :: Vec 2 Float) (f :: Vec 2 Float) -> a 2 2 Float ('M22F e f))
1667OpIncrWrap :: StencilOperation 2638 -> (forall (g :: Vec 3 Float) (h :: Vec 3 Float) -> a 3 2 Float ('M32F g h))
1668OpDecr :: StencilOperation 2639 -> (forall (i :: Vec 4 Float) (j :: Vec 4 Float) -> a 4 2 Float ('M42F i j))
1669OpDecrWrap :: StencilOperation 2640 -> (forall (k :: Vec 2 Float) (l :: Vec 2 Float) (m :: Vec 2 Float)
1670OpInvert :: StencilOperation 2641 -> a 2 3 Float ('M23F k l m))
1671case'StencilOperation 2642 -> (forall (n :: Vec 3 Float) (o :: Vec 3 Float) (p :: Vec 3 Float)
1672 :: forall (a :: StencilOperation -> Type) 2643 -> a 3 3 Float ('M33F n o p))
1673 -> a 'OpZero 2644 -> (forall (q :: Vec 4 Float) (r :: Vec 4 Float) (s :: Vec 4 Float)
1674 -> a 'OpKeep 2645 -> a 4 3 Float ('M43F q r s))
1675 -> a 'OpReplace 2646 -> (forall (t :: Vec 2 Float)
1676 -> a 'OpIncr 2647 (u :: Vec 2 Float) (v :: Vec 2 Float) (w :: Vec 2 Float)
1677 -> a 'OpIncrWrap 2648 -> a 2 4 Float ('M24F t u v w))
1678 -> a 'OpDecr 2649 -> (forall (x :: Vec 3 Float)
1679 -> a 'OpDecrWrap -> a 'OpInvert -> forall (b :: StencilOperation) -> a b 2650 (y :: Vec 3 Float) (z :: Vec 3 Float) (a' :: Vec 3 Float)
1680match'StencilOperation 2651 -> a 3 4 Float ('M34F x y z a'))
1681 :: forall (a :: Type -> Type) -> a StencilOperation -> forall b -> a b -> a b 2652 -> (forall (b' :: Vec 4 Float)
1682'ComparisonFunction :: Type 2653 (c' :: Vec 4 Float) (d' :: Vec 4 Float) (e' :: Vec 4 Float)
1683Never :: ComparisonFunction 2654 -> a 4 4 Float ('M44F b' c' d' e'))
1684Less :: ComparisonFunction 2655 -> forall (f' :: Nat) (g' :: Nat) h'
1685Equal :: ComparisonFunction 2656 . forall (i' :: Mat f' g' h') -> a f' g' h' i'
1686Lequal :: ComparisonFunction 2657case'Mat
1687Greater :: ComparisonFunction 2658 = \a b c d e f g h i j k l m n -> <<case function of a type with 0 parameters>>
1688Notequal :: ComparisonFunction 2659
1689Gequal :: ComparisonFunction 2660case'Maybe
1690Always :: ComparisonFunction 2661 :: forall a
1691case'ComparisonFunction 2662 . forall (b :: Maybe a -> Type)
1692 :: forall (a :: ComparisonFunction -> Type) 2663 -> b 'Nothing
1693 -> a 'Never 2664 -> (forall (c :: a) -> b ('Just c)) -> forall (d :: Maybe a) -> b d
1694 -> a 'Less 2665case'Maybe = \_ a b c d -> <<case function of a type with 1 parameters>>
1695 -> a 'Equal 2666
1696 -> a 'Lequal 2667case'Output
1697 -> a 'Greater 2668 :: forall (a :: Output -> Type)
1698 -> a 'Notequal 2669 -> (forall (b :: Nat) (c :: [ImageKind])
1699 -> a 'Gequal -> a 'Always -> forall (b :: ComparisonFunction) -> a b 2670 . forall (d :: FrameBuffer b c) -> a ('ScreenOut b c d))
1700match'ComparisonFunction 2671 -> forall (e :: Output) -> a e
1701 :: forall (a :: Type -> Type) -> a ComparisonFunction -> forall b -> a b -> a b 2672case'Output = \a b c -> <<case function of a type with 0 parameters>>
1702'ProvokingVertex :: Type 2673
1703LastVertex :: ProvokingVertex
1704FirstVertex :: ProvokingVertex
1705case'ProvokingVertex
1706 :: forall (a :: ProvokingVertex -> Type)
1707 -> a 'LastVertex -> a 'FirstVertex -> forall (b :: ProvokingVertex) -> a b
1708match'ProvokingVertex
1709 :: forall (a :: Type -> Type) -> a ProvokingVertex -> forall b -> a b -> a b
1710'CullMode :: Type
1711CullFront :: CullMode
1712CullBack :: CullMode
1713CullNone :: CullMode
1714case'CullMode
1715 :: forall (a :: CullMode -> Type)
1716 -> a 'CullFront -> a 'CullBack -> a 'CullNone -> forall (b :: CullMode) -> a b
1717match'CullMode
1718 :: forall (a :: Type -> Type) -> a CullMode -> forall b -> a b -> a b
1719'PointSize :: Type -> Type
1720PointSize :: forall a . Float -> PointSize a
1721ProgramPointSize :: forall a . (a -> Float) -> PointSize a
1722case'PointSize 2674case'PointSize
1723 :: forall a 2675 :: forall a
1724 . forall (b :: PointSize a -> Type) 2676 . forall (b :: PointSize a -> Type)
1725 -> (forall (c :: Float) -> b ('PointSize c)) 2677 -> (forall (c :: Float) -> b ('PointSize c))
1726 -> (forall (d :: a -> Float) -> b ('ProgramPointSize d)) 2678 -> (forall (d :: a -> Float) -> b ('ProgramPointSize d))
1727 -> forall (e :: PointSize a) -> b e 2679 -> forall (e :: PointSize a) -> b e
1728match'PointSize 2680case'PointSize = \_ a b c d -> <<case function of a type with 1 parameters>>
1729 :: forall (a :: Type -> Type) 2681
1730 -> (forall b -> a (PointSize b)) -> forall c -> a c -> a c 2682case'PointSpriteCoordOrigin
1731'PolygonMode :: Type -> Type 2683 :: forall (a :: PointSpriteCoordOrigin -> Type)
1732PolygonFill :: forall a . PolygonMode a 2684 -> a 'LowerLeft -> a 'UpperLeft -> forall (b :: PointSpriteCoordOrigin) -> a b
1733PolygonPoint :: forall a . PointSize a -> PolygonMode a 2685case'PointSpriteCoordOrigin
1734PolygonLine :: forall a . Float -> PolygonMode a 2686 = \a b c d -> <<case function of a type with 0 parameters>>
2687
1735case'PolygonMode 2688case'PolygonMode
1736 :: forall a 2689 :: forall a
1737 . forall (b :: PolygonMode a -> Type) 2690 . forall (b :: PolygonMode a -> Type)
@@ -1739,40 +2692,39 @@ case'PolygonMode
1739 -> (forall (c :: PointSize a) -> b ('PolygonPoint c)) 2692 -> (forall (c :: PointSize a) -> b ('PolygonPoint c))
1740 -> (forall (d :: Float) -> b ('PolygonLine d)) 2693 -> (forall (d :: Float) -> b ('PolygonLine d))
1741 -> forall (e :: PolygonMode a) -> b e 2694 -> forall (e :: PolygonMode a) -> b e
1742match'PolygonMode 2695case'PolygonMode = \_ a b c d e -> <<case function of a type with 1 parameters>>
1743 :: forall (a :: Type -> Type) 2696
1744 -> (forall b -> a (PolygonMode b)) -> forall c -> a c -> a c
1745'PolygonOffset :: Type
1746NoOffset :: PolygonOffset
1747Offset :: Float -> Float -> PolygonOffset
1748case'PolygonOffset 2697case'PolygonOffset
1749 :: forall (a :: PolygonOffset -> Type) 2698 :: forall (a :: PolygonOffset -> Type)
1750 -> a 'NoOffset 2699 -> a 'NoOffset
1751 -> (forall (b :: Float) (c :: Float) -> a ('Offset b c)) 2700 -> (forall (b :: Float) (c :: Float) -> a ('Offset b c))
1752 -> forall (d :: PolygonOffset) -> a d 2701 -> forall (d :: PolygonOffset) -> a d
1753match'PolygonOffset 2702case'PolygonOffset = \a b c d -> <<case function of a type with 0 parameters>>
1754 :: forall (a :: Type -> Type) -> a PolygonOffset -> forall b -> a b -> a b 2703
1755'PointSpriteCoordOrigin :: Type 2704case'Primitive
1756LowerLeft :: PointSpriteCoordOrigin
1757UpperLeft :: PointSpriteCoordOrigin
1758case'PointSpriteCoordOrigin
1759 :: forall (a :: PointSpriteCoordOrigin -> Type)
1760 -> a 'LowerLeft -> a 'UpperLeft -> forall (b :: PointSpriteCoordOrigin) -> a b
1761match'PointSpriteCoordOrigin
1762 :: forall (a :: Type -> Type)
1763 -> a PointSpriteCoordOrigin -> forall b -> a b -> a b
1764primTexture :: () -> Vec 2 Float -> Vec 4 Float
1765Uniform :: forall a . String -> a
1766'RasterContext :: Type -> PrimitiveType -> Type
1767TriangleCtx
1768 :: forall a
1769 . CullMode
1770 -> PolygonMode a
1771 -> PolygonOffset -> ProvokingVertex -> RasterContext a 'Triangle
1772PointCtx
1773 :: forall a 2705 :: forall a
1774 . PointSize a -> Float -> PointSpriteCoordOrigin -> RasterContext a 'Point 2706 . forall (b :: forall (c :: PrimitiveType) -> Primitive a c -> Type)
1775LineCtx :: forall a . Float -> ProvokingVertex -> RasterContext a 'Line 2707 -> (forall (d :: a) -> b 'Point ('PrimPoint d))
2708 -> (forall (e :: a) (f :: a) -> b 'Line ('PrimLine e f))
2709 -> (forall (g :: a) (h :: a) (i :: a) -> b 'Triangle ('PrimTriangle g h i))
2710 -> forall (j :: PrimitiveType) . forall (k :: Primitive a j) -> b j k
2711case'Primitive = \_ a b c d e f -> <<case function of a type with 1 parameters>>
2712
2713case'PrimitiveType
2714 :: forall (a :: PrimitiveType -> Type)
2715 -> a 'Triangle
2716 -> a 'Line
2717 -> a 'Point
2718 -> a 'TriangleAdjacency
2719 -> a 'LineAdjacency -> forall (b :: PrimitiveType) -> a b
2720case'PrimitiveType
2721 = \a b c d e f g -> <<case function of a type with 0 parameters>>
2722
2723case'ProvokingVertex
2724 :: forall (a :: ProvokingVertex -> Type)
2725 -> a 'LastVertex -> a 'FirstVertex -> forall (b :: ProvokingVertex) -> a b
2726case'ProvokingVertex = \a b c d -> <<case function of a type with 0 parameters>>
2727
1776case'RasterContext 2728case'RasterContext
1777 :: forall a 2729 :: forall a
1778 . forall (b :: forall (c :: PrimitiveType) -> RasterContext a c -> Type) 2730 . forall (b :: forall (c :: PrimitiveType) -> RasterContext a c -> Type)
@@ -1783,73 +2735,477 @@ case'RasterContext
1783 -> b 'Point ('PointCtx h i j)) 2735 -> b 'Point ('PointCtx h i j))
1784 -> (forall (k :: Float) (l :: ProvokingVertex) -> b 'Line ('LineCtx k l)) 2736 -> (forall (k :: Float) (l :: ProvokingVertex) -> b 'Line ('LineCtx k l))
1785 -> forall (m :: PrimitiveType) . forall (n :: RasterContext a m) -> b m n 2737 -> forall (m :: PrimitiveType) . forall (n :: RasterContext a m) -> b m n
1786match'RasterContext 2738case'RasterContext
1787 :: forall (a :: Type -> Type) 2739 = \_ a b c d e f -> <<case function of a type with 1 parameters>>
1788 -> (forall b (c :: PrimitiveType) -> a (RasterContext b c)) 2740
1789 -> forall d -> a d -> a d 2741case'Sampler
1790'Blending :: Type -> Type 2742 :: forall (a :: Sampler -> Type)
1791NoBlending :: forall a . Blending a 2743 -> (forall (b :: Filter) (c :: EdgeMode) (d :: Texture) -> a ('Sampler b c d))
1792BlendLogicOp :: forall a . Integral a => LogicOperation -> Blending a 2744 -> forall (e :: Sampler) -> a e
1793Blend 2745case'Sampler = \a b c -> <<case function of a type with 0 parameters>>
1794 :: (BlendEquation, BlendEquation) 2746
1795 -> ((BlendingFactor, BlendingFactor), (BlendingFactor, BlendingFactor)) 2747case'SimpleFragment
1796 -> Vec 4 Float -> Blending Float 2748 :: forall a
1797case'Blending 2749 . forall (b :: SimpleFragment a -> Type)
1798 :: forall (a :: forall b -> Blending b -> Type) 2750 -> (forall (c :: Vec 3 Float) (d :: a) -> b ('SimpleFragment c d))
1799 -> (forall c . a c ('NoBlending c)) 2751 -> forall (e :: SimpleFragment a) -> b e
1800 -> (forall d (e :: CW (Integral d)) 2752case'SimpleFragment = \_ a b c -> <<case function of a type with 1 parameters>>
1801 . forall (f :: LogicOperation) -> a d ('BlendLogicOp d e f)) 2753
1802 -> (forall (g :: (BlendEquation, BlendEquation)) 2754case'StencilOperation
1803 (h :: ((BlendingFactor, BlendingFactor), (BlendingFactor, BlendingFactor))) 2755 :: forall (a :: StencilOperation -> Type)
1804 (i :: Vec 4 Float) 2756 -> a 'OpZero
1805 -> a Float ('Blend g h i)) 2757 -> a 'OpKeep
1806 -> forall j . forall (k :: Blending j) -> a j k 2758 -> a 'OpReplace
1807match'Blending 2759 -> a 'OpIncr
1808 :: forall (a :: Type -> Type) 2760 -> a 'OpIncrWrap
1809 -> (forall b -> a (Blending b)) -> forall c -> a c -> a c 2761 -> a 'OpDecr
1810'StencilTests :: Type 2762 -> a 'OpDecrWrap -> a 'OpInvert -> forall (b :: StencilOperation) -> a b
2763case'StencilOperation
2764 = \a b c d e f g h i j -> <<case function of a type with 0 parameters>>
2765
2766case'StencilOps :: forall (a :: StencilOps -> Type) (b :: StencilOps) -> a b
2767case'StencilOps = \a b -> <<case function of a type with 0 parameters>>
2768
1811case'StencilTests 2769case'StencilTests
1812 :: forall (a :: StencilTests -> Type) (b :: StencilTests) -> a b 2770 :: forall (a :: StencilTests -> Type) (b :: StencilTests) -> a b
1813match'StencilTests 2771case'StencilTests = \a b -> <<case function of a type with 0 parameters>>
1814 :: forall (a :: Type -> Type) -> a StencilTests -> forall b -> a b -> a b 2772
1815'StencilOps :: Type 2773case'Swizz
1816case'StencilOps :: forall (a :: StencilOps -> Type) (b :: StencilOps) -> a b 2774 :: forall (a :: Swizz -> Type)
1817match'StencilOps 2775 -> a 'Sx -> a 'Sy -> a 'Sz -> a 'Sw -> forall (b :: Swizz) -> a b
1818 :: forall (a :: Type -> Type) -> a StencilOps -> forall b -> a b -> a b 2776case'Swizz = \a b c d e f -> <<case function of a type with 0 parameters>>
1819'FragmentOperation :: ImageKind -> Type 2777
1820ColorOp 2778case'Texture
2779 :: forall (a :: Texture -> Type)
2780 -> (forall (b :: String) -> a ('Texture2DSlot b))
2781 -> (forall (c :: Vec 2 Int) (d :: Image 1 ('Color (Vec 4 Float)))
2782 -> a ('Texture2D c d))
2783 -> forall (e :: Texture) -> a e
2784case'Texture = \a b c d -> <<case function of a type with 0 parameters>>
2785
2786case'VecS
2787 :: forall a
2788 . forall (b :: forall (c :: Nat) -> VecS a c -> Type)
2789 -> (forall (d :: a) (e :: a) -> b 2 ('V2 d e))
2790 -> (forall (f :: a) (g :: a) (h :: a) -> b 3 ('V3 f g h))
2791 -> (forall (i :: a) (j :: a) (k :: a) (l :: a) -> b 4 ('V4 i j k l))
2792 -> forall (m :: Nat) . forall (n :: VecS a m) -> b m n
2793case'VecS = \_ a b c d e f -> <<case function of a type with 1 parameters>>
2794
2795case'Vector
2796 :: forall (a :: Nat) b
2797 . forall (c :: Vector a b -> Type) (d :: Vector a b) -> c d
2798case'Vector = \_ _ a b -> <<case function of a type with 2 parameters>>
2799
2800concat :: forall a . [[a]] -> [a]
2801concat = \a -> _rhs (foldr [a] [a] ((++) a) [])
2802
2803concatMap :: forall a b . (a -> [b]) -> [a] -> [b]
2804concatMap = \a b c d -> _rhs (foldr [b] [b] ((++) b) [] (map a [b] c d))
2805
2806customizeDepth
2807 :: forall a (b :: Nat) . (a -> Float) -> Fragment b a -> Fragment b a
2808customizeDepth = \a b c d -> <<builtin>>
2809
2810customizeDepths
1821 :: forall a (b :: Nat) 2811 :: forall a (b :: Nat)
1822 . Num a 2812 . (a -> Float)
1823 => Blending a -> VecScalar b Bool -> FragmentOperation ('Color (VecScalar b a)) 2813 -> [Vector b (Maybe (SimpleFragment a))]
1824DepthOp :: ComparisonFunction -> Bool -> FragmentOperation 'Depth 2814 -> [Vector b (Maybe (SimpleFragment a))]
1825StencilOp 2815customizeDepths
1826 :: StencilTests -> StencilOps -> StencilOps -> FragmentOperation 'Stencil 2816 = \a b c -> _rhs
1827case'FragmentOperation 2817 (map
1828 :: forall (a :: forall (b :: ImageKind) -> FragmentOperation b -> Type) 2818 ('Vector b ('Maybe ('SimpleFragment a)))
1829 -> (forall c (d :: Nat) (e :: CW (Num c)) 2819 ('Vector b ('Maybe ('SimpleFragment a)))
1830 . forall (f :: Blending c) (g :: VecScalar d Bool) 2820 \d -> customizeDepth a b c d)
1831 -> a ('Color (VecScalar d c)) ('ColorOp c d e f g)) 2821
1832 -> (forall (h :: ComparisonFunction) (i :: Bool) -> a 'Depth ('DepthOp h i)) 2822definedVec :: forall a (b :: Nat) . Vec b a -> Bool
1833 -> (forall (j :: StencilTests) (k :: StencilOps) (l :: StencilOps) 2823definedVec
1834 -> a 'Stencil ('StencilOp j k l)) 2824 = \_ a b -> case'VecS
1835 -> forall (m :: ImageKind) . forall (n :: FragmentOperation m) -> a m n 2825 (\_ _ -> 'Bool)
2826 (\_ _ -> _rhs True)
2827 (\_ _ _ -> _rhs True)
2828 (\_ _ _ _ -> _rhs True)
2829 a
2830 b
2831
2832emptyColorImage
2833 :: forall (a :: Nat) b c . (Num b, c ~ VecScalar a b) => c -> Image 1 ('Color c)
2834emptyColorImage = _rhs \a b c d e f -> ColorImage 1 a b c d e f
2835
2836emptyDepthImage :: Float -> Image 1 'Depth
2837emptyDepthImage = _rhs \a -> DepthImage 1 a
2838
2839fetch
2840 :: forall (a :: PrimitiveType) (b :: [Type])
2841 . String -> HList b -> PrimitiveStream a (HList b)
2842fetch = \a b c d -> <<builtin>>
2843
2844fetchArrays
2845 :: forall (a :: PrimitiveType) (b :: [Type]) (c :: [Type])
2846 . (b ~ (map Type Type ListElem c :: [Type]))
2847 => HList c -> PrimitiveStream a (HList b)
2848fetchArrays = \a b c d e -> <<builtin>>
2849
2850fetchStream
2851 :: forall (a :: PrimitiveType) (b :: [Type])
2852 . String
2853 -> forall (c :: [String])
2854 -> (len String c ~ (len Type b :: Int)) => PrimitiveStream a (HList b)
2855fetchStream = \a b c d e -> <<builtin>>
2856
2857filterFragment
2858 :: forall a (b :: Nat) . (a -> Bool) -> Fragment b a -> Fragment b a
2859filterFragment = \a b c d -> <<builtin>>
2860
2861filterFragments
2862 :: forall a (b :: Nat)
2863 . (a -> Bool)
2864 -> [Vector b (Maybe (SimpleFragment a))]
2865 -> [Vector b (Maybe (SimpleFragment a))]
2866filterFragments
2867 = \a b c -> _rhs
2868 (map
2869 ('Vector b ('Maybe ('SimpleFragment a)))
2870 ('Vector b ('Maybe ('SimpleFragment a)))
2871 \d -> filterFragment a b c d)
2872
2873foldr :: forall a b . (b -> a -> a) -> a -> [b] -> a
2874foldr
2875 = \a b -> primFix
2876 ((b -> a -> a) -> a -> [b] -> a)
2877 \c d e f -> case'List (\_ -> a) (_rhs e) (\g h -> _rhs (d g (c d e h))) f
2878
2879head :: forall a . [a] -> a
2880head = \a b -> case'List (\_ -> a) (_rhs (undefined a)) (\c _ -> _rhs c) b
2881
2882id :: forall a . a -> a
2883id = \_ a -> _rhs a
2884
2885imageFrame
2886 :: forall (a :: [Type])
2887 . sameLayerCounts a
2888 => HList a
2889 -> FrameBuffer (ImageLC (head Type a)) (map Type ImageKind GetImageKind a)
2890imageFrame = _rhs \a b c -> FrameBuffer a b c
2891
2892imageType :: ImageKind -> Type
2893imageType
2894 = \a -> case'ImageKind (\_ -> Type) (\b -> _rhs b) (_rhs 'Float) (_rhs 'Int) a
2895
2896imageType' :: [ImageKind] -> [Type]
2897imageType'
2898 = \a -> case'List
2899 (\_ -> [Type])
2900 (_rhs (map 'ImageKind Type imageType a))
2901 (\b c -> case'ImageKind
2902 (\_ -> [Type])
2903 (\_ -> _rhs (map 'ImageKind Type imageType a))
2904 (_rhs (map 'ImageKind Type imageType c))
2905 (_rhs (map 'ImageKind Type imageType a))
2906 b)
2907 a
2908
2909len :: forall a . [a] -> Int
2910len
2911 = \a -> primFix
2912 ([a] -> 'Int)
2913 \b c -> case'List (\_ -> 'Int) (_rhs 0) (\_ d -> _rhs (primAddInt 1 (b d))) c
2914
2915map :: forall a b . (a -> b) -> [a] -> [b]
2916map
2917 = \a b -> primFix
2918 ((a -> b) -> [a] -> [b])
2919 \c d e -> case'List (\_ -> [b]) (_rhs []) (\f g -> _rhs (d f : c d g)) e
2920
2921mapFragment :: forall a b (c :: Nat) . (a -> b) -> Fragment c a -> Fragment c b
2922mapFragment = \a b c d e -> <<builtin>>
2923
2924mapFragments
2925 :: forall a b (c :: Nat)
2926 . (a -> b)
2927 -> [Vector c (Maybe (SimpleFragment a))]
2928 -> [Vector c (Maybe (SimpleFragment b))]
2929mapFragments
2930 = \a b c d -> _rhs
2931 (map
2932 ('Vector c ('Maybe ('SimpleFragment a)))
2933 ('Vector c ('Maybe ('SimpleFragment b)))
2934 \e -> mapFragment a b c d e)
2935
2936mapPrimitive
2937 :: forall a b (c :: PrimitiveType) . (a -> b) -> Primitive a c -> Primitive b c
2938mapPrimitive = \a b c d e -> <<builtin>>
2939
2940mapPrimitives
2941 :: forall a b (c :: PrimitiveType)
2942 . (a -> b) -> [Primitive a c] -> [Primitive b c]
2943mapPrimitives
2944 = \a b c d -> _rhs
2945 (map ('Primitive a c) ('Primitive b c) \e -> mapPrimitive a b c d e)
2946
2947mapVec :: forall a b (c :: Nat) . (a -> b) -> VecS a c -> VecS b c
2948mapVec
2949 = \_ a b c d -> case'VecS
2950 (\e _ -> 'VecS a e)
2951 (\f g -> _rhs (V2 (c f) (c g)))
2952 (\h i j -> _rhs (V3 (c h) (c i) (c j)))
2953 (\k l m n -> _rhs (V4 (c k) (c l) (c m) (c n)))
2954 b
2955 d
2956
2957match'BlendEquation
2958 :: forall (a :: Type -> Type) -> a BlendEquation -> forall b -> a b -> a b
2959match'BlendEquation = \a b c d -> <<type case function>>
2960
2961match'Blending
2962 :: forall (a :: Type -> Type)
2963 -> (forall b -> a (Blending b)) -> forall c -> a c -> a c
2964match'Blending = \a b c d -> <<type case function>>
2965
2966match'BlendingFactor
2967 :: forall (a :: Type -> Type) -> a BlendingFactor -> forall b -> a b -> a b
2968match'BlendingFactor = \a b c d -> <<type case function>>
2969
2970match'ComparisonFunction
2971 :: forall (a :: Type -> Type) -> a ComparisonFunction -> forall b -> a b -> a b
2972match'ComparisonFunction = \a b c d -> <<type case function>>
2973
2974match'CullMode
2975 :: forall (a :: Type -> Type) -> a CullMode -> forall b -> a b -> a b
2976match'CullMode = \a b c d -> <<type case function>>
2977
2978match'EdgeMode
2979 :: forall (a :: Type -> Type) -> a EdgeMode -> forall b -> a b -> a b
2980match'EdgeMode = \a b c d -> <<type case function>>
2981
2982match'Filter :: forall (a :: Type -> Type) -> a Filter -> forall b -> a b -> a b
2983match'Filter = \a b c d -> <<type case function>>
2984
1836match'FragmentOperation 2985match'FragmentOperation
1837 :: forall (a :: Type -> Type) 2986 :: forall (a :: Type -> Type)
1838 -> (forall (b :: ImageKind) -> a (FragmentOperation b)) 2987 -> (forall (b :: ImageKind) -> a (FragmentOperation b))
1839 -> forall c -> a c -> a c 2988 -> forall c -> a c -> a c
1840'Interpolated :: Type -> Type 2989match'FragmentOperation = \a b c d -> <<type case function>>
1841Smooth :: forall a . Floating a => Interpolated a 2990
1842NoPerspective :: forall a . Floating a => Interpolated a 2991match'FrameBuffer
1843Flat :: forall a . Interpolated a 2992 :: forall (a :: Type -> Type)
1844case'Interpolated 2993 -> (forall (b :: Nat) (c :: [ImageKind]) -> a (FrameBuffer b c))
1845 :: forall a 2994 -> forall d -> a d -> a d
1846 . forall (b :: Interpolated a -> Type) 2995match'FrameBuffer = \a b c d -> <<type case function>>
1847 -> (forall (c :: CW (Floating a)) . b ('Smooth c)) 2996
1848 -> (forall (d :: CW (Floating a)) . b ('NoPerspective d)) 2997match'Image
1849 -> b 'Flat -> forall (e :: Interpolated a) -> b e 2998 :: forall (a :: Type -> Type)
2999 -> (forall (b :: Nat) (c :: ImageKind) -> a (Image b c))
3000 -> forall d -> a d -> a d
3001match'Image = \a b c d -> <<type case function>>
3002
3003match'ImageKind
3004 :: forall (a :: Type -> Type) -> a ImageKind -> forall b -> a b -> a b
3005match'ImageKind = \a b c d -> <<type case function>>
3006
1850match'Interpolated 3007match'Interpolated
1851 :: forall (a :: Type -> Type) 3008 :: forall (a :: Type -> Type)
1852 -> (forall b -> a (Interpolated b)) -> forall c -> a c -> a c 3009 -> (forall b -> a (Interpolated b)) -> forall c -> a c -> a c
3010match'Interpolated = \a b c d -> <<type case function>>
3011
3012match'LogicOperation
3013 :: forall (a :: Type -> Type) -> a LogicOperation -> forall b -> a b -> a b
3014match'LogicOperation = \a b c d -> <<type case function>>
3015
3016match'Mat
3017 :: forall (a :: Type -> Type)
3018 -> (forall (b :: Nat) (c :: Nat) d -> a (Mat b c d)) -> forall e -> a e -> a e
3019match'Mat = \a b c d -> <<type case function>>
3020
3021match'Maybe
3022 :: forall (a :: Type -> Type)
3023 -> (forall b -> a (Maybe b)) -> forall c -> a c -> a c
3024match'Maybe = \a b c d -> <<type case function>>
3025
3026match'Output :: forall (a :: Type -> Type) -> a Output -> forall b -> a b -> a b
3027match'Output = \a b c d -> <<type case function>>
3028
3029match'PointSize
3030 :: forall (a :: Type -> Type)
3031 -> (forall b -> a (PointSize b)) -> forall c -> a c -> a c
3032match'PointSize = \a b c d -> <<type case function>>
3033
3034match'PointSpriteCoordOrigin
3035 :: forall (a :: Type -> Type)
3036 -> a PointSpriteCoordOrigin -> forall b -> a b -> a b
3037match'PointSpriteCoordOrigin = \a b c d -> <<type case function>>
3038
3039match'PolygonMode
3040 :: forall (a :: Type -> Type)
3041 -> (forall b -> a (PolygonMode b)) -> forall c -> a c -> a c
3042match'PolygonMode = \a b c d -> <<type case function>>
3043
3044match'PolygonOffset
3045 :: forall (a :: Type -> Type) -> a PolygonOffset -> forall b -> a b -> a b
3046match'PolygonOffset = \a b c d -> <<type case function>>
3047
3048match'Primitive
3049 :: forall (a :: Type -> Type)
3050 -> (forall b (c :: PrimitiveType) -> a (Primitive b c))
3051 -> forall d -> a d -> a d
3052match'Primitive = \a b c d -> <<type case function>>
3053
3054match'PrimitiveType
3055 :: forall (a :: Type -> Type) -> a PrimitiveType -> forall b -> a b -> a b
3056match'PrimitiveType = \a b c d -> <<type case function>>
3057
3058match'ProvokingVertex
3059 :: forall (a :: Type -> Type) -> a ProvokingVertex -> forall b -> a b -> a b
3060match'ProvokingVertex = \a b c d -> <<type case function>>
3061
3062match'RasterContext
3063 :: forall (a :: Type -> Type)
3064 -> (forall b (c :: PrimitiveType) -> a (RasterContext b c))
3065 -> forall d -> a d -> a d
3066match'RasterContext = \a b c d -> <<type case function>>
3067
3068match'Sampler
3069 :: forall (a :: Type -> Type) -> a Sampler -> forall b -> a b -> a b
3070match'Sampler = \a b c d -> <<type case function>>
3071
3072match'SimpleFragment
3073 :: forall (a :: Type -> Type)
3074 -> (forall b -> a (SimpleFragment b)) -> forall c -> a c -> a c
3075match'SimpleFragment = \a b c d -> <<type case function>>
3076
3077match'StencilOperation
3078 :: forall (a :: Type -> Type) -> a StencilOperation -> forall b -> a b -> a b
3079match'StencilOperation = \a b c d -> <<type case function>>
3080
3081match'StencilOps
3082 :: forall (a :: Type -> Type) -> a StencilOps -> forall b -> a b -> a b
3083match'StencilOps = \a b c d -> <<type case function>>
3084
3085match'StencilTests
3086 :: forall (a :: Type -> Type) -> a StencilTests -> forall b -> a b -> a b
3087match'StencilTests = \a b c d -> <<type case function>>
3088
3089match'Swizz :: forall (a :: Type -> Type) -> a Swizz -> forall b -> a b -> a b
3090match'Swizz = \a b c d -> <<type case function>>
3091
3092match'Texture
3093 :: forall (a :: Type -> Type) -> a Texture -> forall b -> a b -> a b
3094match'Texture = \a b c d -> <<type case function>>
3095
3096match'VecS
3097 :: forall (a :: Type -> Type)
3098 -> (forall b (c :: Nat) -> a (VecS b c)) -> forall d -> a d -> a d
3099match'VecS = \a b c d -> <<type case function>>
3100
3101match'Vector
3102 :: forall (a :: Type -> Type)
3103 -> (forall (b :: Nat) c -> a (Vector b c)) -> forall d -> a d -> a d
3104match'Vector = \a b c d -> <<type case function>>
3105
3106one :: forall a . Component a => a
3107one
3108 = \a _ -> match'Int
3109 (\b -> b)
3110 (_rhs 1)
3111 a
3112 (match'Word
3113 (\c -> c)
3114 (_rhs (primIntToWord 1))
3115 a
3116 (match'Float
3117 (\d -> d)
3118 (_rhs 1.0)
3119 a
3120 (match'VecS
3121 (\e -> e)
3122 (\f g -> match'Float
3123 (\h -> 'VecS h g)
3124 (case'Nat
3125 (\i -> 'VecS 'Float i)
3126 (_rhs (undefined ('VecS 'Float 0)))
3127 (\j -> case'Nat
3128 (\k -> 'VecS 'Float (Succ k))
3129 (_rhs (undefined ('VecS 'Float 1)))
3130 (\l -> case'Nat
3131 (\m -> 'VecS 'Float (Succ (Succ m)))
3132 (_rhs (V2 1.0 1.0))
3133 (\n -> case'Nat
3134 (\o -> 'VecS 'Float (Succ (Succ (Succ o))))
3135 (_rhs (V3 1.0 1.0 1.0))
3136 (\p -> case'Nat
3137 (\q -> 'VecS 'Float (Succ (Succ (Succ (Succ q)))))
3138 (_rhs (V4 1.0 1.0 1.0 1.0))
3139 (\r -> _rhs (undefined ('VecS 'Float (Succ (Succ (Succ (Succ (Succ r))))))))
3140 p)
3141 n)
3142 l)
3143 j)
3144 g)
3145 f
3146 (match'Bool
3147 (\s -> 'VecS s g)
3148 (case'Nat
3149 (\t -> 'VecS 'Bool t)
3150 (_rhs (undefined ('VecS 'Bool 0)))
3151 (\u -> case'Nat
3152 (\v -> 'VecS 'Bool (Succ v))
3153 (_rhs (undefined ('VecS 'Bool 1)))
3154 (\w -> case'Nat
3155 (\x -> 'VecS 'Bool (Succ (Succ x)))
3156 (_rhs (V2 True True))
3157 (\y -> case'Nat
3158 (\z -> 'VecS 'Bool (Succ (Succ (Succ z))))
3159 (_rhs (V3 True True True))
3160 (\a' -> case'Nat
3161 (\b' -> 'VecS 'Bool (Succ (Succ (Succ (Succ b')))))
3162 (_rhs (V4 True True True True))
3163 (\c' -> _rhs (undefined ('VecS 'Bool (Succ (Succ (Succ (Succ (Succ c'))))))))
3164 a')
3165 y)
3166 w)
3167 u)
3168 g)
3169 f
3170 (_rhs (undefined ('VecS f g)))))
3171 a
3172 (match'Bool (\d' -> d') (_rhs True) a (_rhs (undefined a))))))
3173
3174overlay
3175 :: forall (a :: Nat) (b :: [Type])
3176 . FrameBuffer a (map Type ImageKind FragmentOperationKind b)
3177 -> (HList b
3178 , [Fragment
3179 a
3180 (HList (imageType' (map Type ImageKind FragmentOperationKind b)))])
3181 -> FrameBuffer a (map Type ImageKind FragmentOperationKind b)
3182overlay
3183 = \a b c d -> hlistConsCase
3184 ('HList b)
3185 [['Vector
3186 a
3187 ('Maybe
3188 ('SimpleFragment
3189 ('HList (imageType' (map Type 'ImageKind 'FragmentOperationKind b)))))]]
3190 ('FrameBuffer a (map Type 'ImageKind 'FragmentOperationKind b))
3191 (\e f -> hlistConsCase
3192 ['Vector
3193 a
3194 ('Maybe
3195 ('SimpleFragment
3196 ('HList (imageType' (map Type 'ImageKind 'FragmentOperationKind b)))))]
3197 []
3198 ('FrameBuffer a (map Type 'ImageKind 'FragmentOperationKind b))
3199 (\g h -> hlistNilCase
3200 ('FrameBuffer a (map Type 'ImageKind 'FragmentOperationKind b))
3201 (_rhs (Accumulate (map Type 'ImageKind 'FragmentOperationKind b) a b TT e g c))
3202 h)
3203 f)
3204 d
3205
3206primTexture :: () -> Vec 2 Float -> Vec 4 Float
3207primTexture = \a b -> <<builtin>>
3208
1853rasterizePrimitive 3209rasterizePrimitive
1854 :: forall (a :: [Type]) (b :: [Type]) (c :: [Type]) (d :: PrimitiveType) 3210 :: forall (a :: [Type]) (b :: [Type]) (c :: [Type]) (d :: PrimitiveType)
1855 . (map Type Type Interpolated a ~ (b :: [Type]) 3211 . (map Type Type Interpolated a ~ (b :: [Type])
@@ -1857,108 +3213,150 @@ rasterizePrimitive
1857 => HList b 3213 => HList b
1858 -> RasterContext (HList c) d 3214 -> RasterContext (HList c) d
1859 -> Primitive (HList c) d -> FragmentStream 1 (HList a) 3215 -> Primitive (HList c) d -> FragmentStream 1 (HList a)
3216rasterizePrimitive = \a b c d e f g h i -> <<builtin>>
3217
1860rasterizePrimitives 3218rasterizePrimitives
1861 :: forall (a :: [Type]) (b :: PrimitiveType) 3219 :: forall (a :: [Type]) (b :: PrimitiveType)
1862 . RasterContext (HList (Vec 4 Float : a)) b 3220 . RasterContext (HList (Vec 4 Float : a)) b
1863 -> HList (map Type Type Interpolated a) 3221 -> HList (map Type Type Interpolated a)
1864 -> [Primitive (HList (Vec 4 Float : a)) b] 3222 -> [Primitive (HList (Vec 4 Float : a)) b]
1865 -> [Vector 1 (Maybe (SimpleFragment (HList a)))] 3223 -> [Vector 1 (Maybe (SimpleFragment (HList a)))]
1866'ImageLC :: Type -> Nat 3224rasterizePrimitives
1867allSame :: forall a . [a] -> Constraint 3225 = \a b c d e -> _rhs
1868sameLayerCounts :: [Type] -> Constraint 3226 (foldr
1869'FrameBuffer :: Nat -> [ImageKind] -> Type 3227 ['Vector 1 ('Maybe ('SimpleFragment ('HList a)))]
1870case'FrameBuffer 3228 ['Vector 1 ('Maybe ('SimpleFragment ('HList a)))]
1871 :: forall (a :: Nat) (b :: [ImageKind]) 3229 ((++) ('Vector 1 ('Maybe ('SimpleFragment ('HList a)))))
1872 . forall (c :: FrameBuffer a b -> Type) (d :: FrameBuffer a b) -> c d 3230 []
1873match'FrameBuffer 3231 (map
1874 :: forall (a :: Type -> Type) 3232 ('Primitive ('HList ('VecS 'Float 4 : a)) b)
1875 -> (forall (b :: Nat) (c :: [ImageKind]) -> a (FrameBuffer b c)) 3233 ['Vector 1 ('Maybe ('SimpleFragment ('HList a)))]
1876 -> forall d -> a d -> a d 3234 (\f -> rasterizePrimitive
1877imageType' :: [ImageKind] -> [Type]
1878'FragmentOperationKind :: Type -> ImageKind
1879Accumulate
1880 :: forall (a :: [ImageKind]) (b :: Nat) (c :: [Type])
1881 . (a ~ (map Type ImageKind FragmentOperationKind c :: [ImageKind]))
1882 => HList c
1883 -> FragmentStream b (HList (imageType' a)) -> FrameBuffer b a -> FrameBuffer b a
1884accumulateWith :: forall a b . a -> b -> (a, b)
1885overlay
1886 :: forall (a :: Nat) (b :: [Type])
1887 . FrameBuffer a (map Type ImageKind FragmentOperationKind b)
1888 -> (HList b
1889 , [Fragment
1890 a 3235 a
1891 (HList (imageType' (map Type ImageKind FragmentOperationKind b)))]) 3236 (map Type Type 'Interpolated a)
1892 -> FrameBuffer a (map Type ImageKind FragmentOperationKind b) 3237 ('VecS 'Float 4 : a)
1893'GetImageKind :: Type -> ImageKind 3238 b
1894FrameBuffer 3239 TT
1895 :: forall (a :: [Type]) 3240 TT
1896 . sameLayerCounts a 3241 d
1897 => HList a 3242 c
1898 -> FrameBuffer (ImageLC (head Type a)) (map Type ImageKind GetImageKind a) 3243 f)
1899imageFrame 3244 e))
1900 :: forall (a :: [Type]) 3245
1901 . sameLayerCounts a
1902 => HList a
1903 -> FrameBuffer (ImageLC (head Type a)) (map Type ImageKind GetImageKind a)
1904accumulate
1905 :: forall (a :: Nat) (b :: [Type]) c
1906 . HList b
1907 -> (c -> HList (imageType' (map Type ImageKind FragmentOperationKind b)))
1908 -> [Vector a (Maybe (SimpleFragment c))]
1909 -> FrameBuffer a (map Type ImageKind FragmentOperationKind b)
1910 -> FrameBuffer a (map Type ImageKind FragmentOperationKind b)
1911PrjImage :: forall (a :: ImageKind) . FrameBuffer 1 ' [a] -> Image 1 a
1912PrjImageColor
1913 :: FrameBuffer 1 ' ['Depth, 'Color (Vec 4 Float)]
1914 -> Image 1 ('Color (Vec 4 Float))
1915'Output :: Type
1916ScreenOut :: forall (a :: Nat) (b :: [ImageKind]) . FrameBuffer a b -> Output
1917case'Output
1918 :: forall (a :: Output -> Type)
1919 -> (forall (b :: Nat) (c :: [ImageKind])
1920 . forall (d :: FrameBuffer b c) -> a ('ScreenOut b c d))
1921 -> forall (e :: Output) -> a e
1922match'Output :: forall (a :: Type -> Type) -> a Output -> forall b -> a b -> a b
1923renderFrame :: forall (a :: Nat) (b :: [ImageKind]) . FrameBuffer a b -> Output 3246renderFrame :: forall (a :: Nat) (b :: [ImageKind]) . FrameBuffer a b -> Output
1924'Texture :: Type 3247renderFrame = _rhs ScreenOut
1925Texture2DSlot :: String -> Texture 3248
1926Texture2D :: Vec 2 Int -> Image 1 ('Color (Vec 4 Float)) -> Texture 3249sFragmentCoords :: forall a . SimpleFragment a -> VecS Float 3
1927case'Texture 3250sFragmentCoords
1928 :: forall (a :: Texture -> Type) 3251 = \_ a -> case'SimpleFragment (\_ -> 'VecS 'Float 3) (\b _ -> _rhs b) a
1929 -> (forall (b :: String) -> a ('Texture2DSlot b)) 3252
1930 -> (forall (c :: Vec 2 Int) (d :: Image 1 ('Color (Vec 4 Float))) 3253sFragmentValue :: forall a . SimpleFragment a -> a
1931 -> a ('Texture2D c d)) 3254sFragmentValue = \a b -> case'SimpleFragment (\_ -> a) (\_ c -> _rhs c) b
1932 -> forall (e :: Texture) -> a e 3255
1933match'Texture 3256sameLayerCounts :: [Type] -> Constraint
1934 :: forall (a :: Type -> Type) -> a Texture -> forall b -> a b -> a b 3257sameLayerCounts = \a -> _rhs (allSame 'Nat (map Type 'Nat 'ImageLC a))
1935'Filter :: Type 3258
1936PointFilter :: Filter 3259swizzscalar :: forall a (b :: Nat) . Vec b a -> Swizz -> a
1937LinearFilter :: Filter 3260swizzscalar
1938case'Filter 3261 = \a b c d -> case'VecS
1939 :: forall (a :: Filter -> Type) 3262 (\_ _ -> a)
1940 -> a 'PointFilter -> a 'LinearFilter -> forall (b :: Filter) -> a b 3263 (\e f -> case'Swizz
1941match'Filter :: forall (a :: Type -> Type) -> a Filter -> forall b -> a b -> a b 3264 (\_ -> a)
1942'EdgeMode :: Type 3265 (_rhs e)
1943Repeat :: EdgeMode 3266 (_rhs f)
1944MirroredRepeat :: EdgeMode 3267 (_rhs (undefined a))
1945ClampToEdge :: EdgeMode 3268 (_rhs (undefined a))
1946case'EdgeMode 3269 d)
1947 :: forall (a :: EdgeMode -> Type) 3270 (\g h i -> case'Swizz
1948 -> a 'Repeat 3271 (\_ -> a)
1949 -> a 'MirroredRepeat -> a 'ClampToEdge -> forall (b :: EdgeMode) -> a b 3272 (_rhs g)
1950match'EdgeMode 3273 (_rhs h)
1951 :: forall (a :: Type -> Type) -> a EdgeMode -> forall b -> a b -> a b 3274 (_rhs i)
1952'Sampler :: Type 3275 (_rhs (undefined a))
1953Sampler :: Filter -> EdgeMode -> Texture -> Sampler 3276 d)
1954case'Sampler 3277 (\j k l m -> case'Swizz (\_ -> a) (_rhs j) (_rhs k) (_rhs l) (_rhs m) d)
1955 :: forall (a :: Sampler -> Type) 3278 b
1956 -> (forall (b :: Filter) (c :: EdgeMode) (d :: Texture) -> a ('Sampler b c d)) 3279 c
1957 -> forall (e :: Sampler) -> a e 3280
1958match'Sampler 3281swizzvector
1959 :: forall (a :: Type -> Type) -> a Sampler -> forall b -> a b -> a b 3282 :: forall a (b :: Nat) (c :: Nat) . Vec b a -> Vec c Swizz -> VecS a c
3283swizzvector
3284 = \a b c d e -> case'Bool
3285 (\_ -> 'VecS a c)
3286 (_rhs (undefined ('VecS a c)))
3287 (_rhs (mapVec 'Swizz a c (swizzscalar a b d) e))
3288 (definedVec a b d)
3289
1960texture2D :: Sampler -> Vec 2 Float -> Vec 4 Float 3290texture2D :: Sampler -> Vec 2 Float -> Vec 4 Float
1961accumulationContext :: forall a . a -> a 3291texture2D = \a b -> <<builtin>>
3292
3293zero :: forall a . Component a => a
3294zero
3295 = \a _ -> match'Int
3296 (\b -> b)
3297 (_rhs 0)
3298 a
3299 (match'Word
3300 (\c -> c)
3301 (_rhs (primIntToWord 0))
3302 a
3303 (match'Float
3304 (\d -> d)
3305 (_rhs 0.0)
3306 a
3307 (match'VecS
3308 (\e -> e)
3309 (\f g -> match'Float
3310 (\h -> 'VecS h g)
3311 (case'Nat
3312 (\i -> 'VecS 'Float i)
3313 (_rhs (undefined ('VecS 'Float 0)))
3314 (\j -> case'Nat
3315 (\k -> 'VecS 'Float (Succ k))
3316 (_rhs (undefined ('VecS 'Float 1)))
3317 (\l -> case'Nat
3318 (\m -> 'VecS 'Float (Succ (Succ m)))
3319 (_rhs (V2 0.0 0.0))
3320 (\n -> case'Nat
3321 (\o -> 'VecS 'Float (Succ (Succ (Succ o))))
3322 (_rhs (V3 0.0 0.0 0.0))
3323 (\p -> case'Nat
3324 (\q -> 'VecS 'Float (Succ (Succ (Succ (Succ q)))))
3325 (_rhs (V4 0.0 0.0 0.0 0.0))
3326 (\r -> _rhs (undefined ('VecS 'Float (Succ (Succ (Succ (Succ (Succ r))))))))
3327 p)
3328 n)
3329 l)
3330 j)
3331 g)
3332 f
3333 (match'Bool
3334 (\s -> 'VecS s g)
3335 (case'Nat
3336 (\t -> 'VecS 'Bool t)
3337 (_rhs (undefined ('VecS 'Bool 0)))
3338 (\u -> case'Nat
3339 (\v -> 'VecS 'Bool (Succ v))
3340 (_rhs (undefined ('VecS 'Bool 1)))
3341 (\w -> case'Nat
3342 (\x -> 'VecS 'Bool (Succ (Succ x)))
3343 (_rhs (V2 False False))
3344 (\y -> case'Nat
3345 (\z -> 'VecS 'Bool (Succ (Succ (Succ z))))
3346 (_rhs (V3 False False False))
3347 (\a' -> case'Nat
3348 (\b' -> 'VecS 'Bool (Succ (Succ (Succ (Succ b')))))
3349 (_rhs (V4 False False False False))
3350 (\c' -> _rhs (undefined ('VecS 'Bool (Succ (Succ (Succ (Succ (Succ c'))))))))
3351 a')
3352 y)
3353 w)
3354 u)
3355 g)
3356 f
3357 (_rhs (undefined ('VecS f g)))))
3358 a
3359 (match'Bool (\d' -> d') (_rhs False) a (_rhs (undefined a))))))
1962------------ tooltips 3360------------ tooltips
1963testdata/Builtins.lc 10:1-10:3 3361testdata/Builtins.lc 10:1-10:3
1964 forall a . a -> a 3362 forall a . a -> a
diff --git a/testdata/Internals.out b/testdata/Internals.out
index eabd6286..a66b70d3 100644
--- a/testdata/Internals.out
+++ b/testdata/Internals.out
@@ -96,146 +96,167 @@ primRound :: Float -> Int
96 96
97primIfThenElse :: forall (a :: _) . Bool -> a -> a -> a 97primIfThenElse :: forall (a :: _) . Bool -> a -> a -> a
98primIfThenElse 98primIfThenElse
99 = \(a :: _) (b :: _) (c :: _) -> case'Bool (\_ -> _) (_rhs c) (_rhs b) a 99 = \(a :: _) (b :: _) (c :: _) -> case'Bool (\(_ :: _) -> _) (_rhs c) (_rhs b) a
100 100
101isEQ 101isEQ
102 = \(a :: _) -> case'Ordering (\_ -> _) (_rhs False) (_rhs True) (_rhs False) a 102 = \(a :: _) -> case'Ordering
103 (\(_ :: _) -> _)
104 (_rhs False)
105 (_rhs True)
106 (_rhs False)
107 a
103 108
104'Num :: Type -> Constraint 109'Num :: Type -> Constraint
105'Num 110'Num
106 = \(a :: _) -> match'Int 111 = \(a :: _) -> match'Int
107 (\_ -> _) 112 (\(_ :: _) -> _)
108 (_rhs 'CUnit) 113 (_rhs 'CUnit)
109 a 114 a
110 (match'Word 115 (match'Word
111 (\_ -> _) 116 (\(_ :: _) -> _)
112 (_rhs 'CUnit) 117 (_rhs 'CUnit)
113 a 118 a
114 (match'Float 119 (match'Float
115 (\_ -> _) 120 (\(_ :: _) -> _)
116 (_rhs 'CUnit) 121 (_rhs 'CUnit)
117 a 122 a
118 (match'Nat 123 (match'Nat
119 (\_ -> _) 124 (\(_ :: _) -> _)
120 (_rhs 'CUnit) 125 (_rhs 'CUnit)
121 a 126 a
122 (_rhs ('CEmpty "no instance of 'Num on ???"))))) 127 (_rhs ('CEmpty "no instance of 'Num on ???")))))
123 128
124fromInt :: forall a . Num a => Int -> a 129fromInt :: forall a . Num a => Int -> a
125fromInt 130fromInt
126 = \ @a @_ -> match'Int 131 = \ @a @(_ :: _) -> match'Int
127 (\_ -> _) 132 (\(_ :: _) -> _)
128 (_rhs let b = _rhs \(c :: _) -> c in b) 133 (_rhs let b = _rhs \(c :: _) -> c in b)
129 a 134 a
130 (match'Word 135 (match'Word
131 (\_ -> _) 136 (\(_ :: _) -> _)
132 (_rhs let d = _rhs primIntToWord in d) 137 (_rhs let d = _rhs primIntToWord in d)
133 a 138 a
134 (match'Float 139 (match'Float
135 (\_ -> _) 140 (\(_ :: _) -> _)
136 (_rhs let e = _rhs primIntToFloat in e) 141 (_rhs let e = _rhs primIntToFloat in e)
137 a 142 a
138 (match'Nat (\_ -> _) (_rhs let f = _rhs primIntToNat in f) a (_rhs undefined)))) 143 (match'Nat
144 (\(_ :: _) -> _)
145 (_rhs let f = _rhs primIntToNat in f)
146 a
147 (_rhs undefined))))
139 148
140compare :: forall a . Num a => a -> a -> Ordering 149compare :: forall a . Num a => a -> a -> Ordering
141compare 150compare
142 = \ @a @_ -> match'Int 151 = \ @a @(_ :: _) -> match'Int
143 (\_ -> _) 152 (\(_ :: _) -> _)
144 (_rhs let b = _rhs primCompareInt in b) 153 (_rhs let b = _rhs primCompareInt in b)
145 a 154 a
146 (match'Word 155 (match'Word
147 (\_ -> _) 156 (\(_ :: _) -> _)
148 (_rhs let c = _rhs primCompareWord in c) 157 (_rhs let c = _rhs primCompareWord in c)
149 a 158 a
150 (match'Float 159 (match'Float
151 (\_ -> _) 160 (\(_ :: _) -> _)
152 (_rhs let d = _rhs primCompareFloat in d) 161 (_rhs let d = _rhs primCompareFloat in d)
153 a 162 a
154 (match'Nat (\_ -> _) (_rhs let e = _rhs undefined in e) a (_rhs undefined)))) 163 (match'Nat
164 (\(_ :: _) -> _)
165 (_rhs let e = _rhs undefined in e)
166 a
167 (_rhs undefined))))
155 168
156negate :: forall a . Num a => a -> a 169negate :: forall a . Num a => a -> a
157negate 170negate
158 = \ @a @_ -> match'Int 171 = \ @a @(_ :: _) -> match'Int
159 (\_ -> _) 172 (\(_ :: _) -> _)
160 (_rhs let b = _rhs primNegateInt in b) 173 (_rhs let b = _rhs primNegateInt in b)
161 a 174 a
162 (match'Word 175 (match'Word
163 (\_ -> _) 176 (\(_ :: _) -> _)
164 (_rhs let c = _rhs primNegateWord in c) 177 (_rhs let c = _rhs primNegateWord in c)
165 a 178 a
166 (match'Float 179 (match'Float
167 (\_ -> _) 180 (\(_ :: _) -> _)
168 (_rhs let d = _rhs primNegateFloat in d) 181 (_rhs let d = _rhs primNegateFloat in d)
169 a 182 a
170 (match'Nat (\_ -> _) (_rhs let e = _rhs undefined in e) a (_rhs undefined)))) 183 (match'Nat
184 (\(_ :: _) -> _)
185 (_rhs let e = _rhs undefined in e)
186 a
187 (_rhs undefined))))
171 188
172'Eq :: Type -> Constraint 189'Eq :: Type -> Constraint
173'Eq 190'Eq
174 = \(a :: _) -> match'String 191 = \(a :: _) -> match'String
175 (\_ -> _) 192 (\(_ :: _) -> _)
176 (_rhs 'CUnit) 193 (_rhs 'CUnit)
177 a 194 a
178 (match'Char 195 (match'Char
179 (\_ -> _) 196 (\(_ :: _) -> _)
180 (_rhs 'CUnit) 197 (_rhs 'CUnit)
181 a 198 a
182 (match'Int 199 (match'Int
183 (\_ -> _) 200 (\(_ :: _) -> _)
184 (_rhs 'CUnit) 201 (_rhs 'CUnit)
185 a 202 a
186 (match'Float 203 (match'Float
187 (\_ -> _) 204 (\(_ :: _) -> _)
188 (_rhs 'CUnit) 205 (_rhs 'CUnit)
189 a 206 a
190 (match'Bool 207 (match'Bool
191 (\_ -> _) 208 (\(_ :: _) -> _)
192 (_rhs 'CUnit) 209 (_rhs 'CUnit)
193 a 210 a
194 (match'Nat 211 (match'Nat
195 (\_ -> _) 212 (\(_ :: _) -> _)
196 (_rhs 'CUnit) 213 (_rhs 'CUnit)
197 a 214 a
198 (_rhs ('CEmpty "no instance of 'Eq on ???"))))))) 215 (_rhs ('CEmpty "no instance of 'Eq on ???")))))))
199 216
200(==) :: forall a . Eq a => a -> a -> Bool 217(==) :: forall a . Eq a => a -> a -> Bool
201(==) 218(==)
202 = \ @a @_ -> match'String 219 = \ @a @(_ :: _) -> match'String
203 (\_ -> _) 220 (\(_ :: _) -> _)
204 (_rhs let b = \(c :: _) (d :: _) -> _rhs (isEQ (primCompareString c d)) in b) 221 (_rhs let b = \(c :: _) (d :: _) -> _rhs (isEQ (primCompareString c d)) in b)
205 a 222 a
206 (match'Char 223 (match'Char
207 (\_ -> _) 224 (\(_ :: _) -> _)
208 (_rhs let e = \(f :: _) (g :: _) -> _rhs (isEQ (primCompareChar f g)) in e) 225 (_rhs let e = \(f :: _) (g :: _) -> _rhs (isEQ (primCompareChar f g)) in e)
209 a 226 a
210 (match'Int 227 (match'Int
211 (\_ -> _) 228 (\(_ :: _) -> _)
212 (_rhs let h = \(i :: _) (j :: _) -> _rhs (isEQ (primCompareInt i j)) in h) 229 (_rhs let h = \(i :: _) (j :: _) -> _rhs (isEQ (primCompareInt i j)) in h)
213 a 230 a
214 (match'Float 231 (match'Float
215 (\_ -> _) 232 (\(_ :: _) -> _)
216 (_rhs let k = \(l :: _) (m :: _) -> _rhs (isEQ (primCompareFloat l m)) in k) 233 (_rhs let k = \(l :: _) (m :: _) -> _rhs (isEQ (primCompareFloat l m)) in k)
217 a 234 a
218 (match'Bool 235 (match'Bool
219 (\_ -> _) 236 (\(_ :: _) -> _)
220 (_rhs 237 (_rhs
221 let 238 let
222 n 239 n
223 = \(o :: _) (p :: _) -> case'Bool 240 = \(o :: _) (p :: _) -> case'Bool
224 (\_ -> _) 241 (\(_ :: _) -> _)
225 (case'Bool (\_ -> _) (_rhs True) (_rhs False) p) 242 (case'Bool (\(_ :: _) -> _) (_rhs True) (_rhs False) p)
226 (case'Bool (\_ -> _) (_rhs False) (_rhs True) p) 243 (case'Bool (\(_ :: _) -> _) (_rhs False) (_rhs True) p)
227 o 244 o
228 in n) 245 in n)
229 a 246 a
230 (match'Nat 247 (match'Nat
231 (\_ -> _) 248 (\(_ :: _) -> _)
232 (_rhs 249 (_rhs
233 let 250 let
234 q 251 q
235 = \(r :: _) (s :: _) -> case'Nat 252 = \(r :: _) (s :: _) -> case'Nat
236 (\_ -> _) 253 (\(_ :: _) -> _)
237 (case'Nat (\_ -> _) (_rhs True) (\_ -> _rhs False) s) 254 (case'Nat (\(_ :: _) -> _) (_rhs True) (\(_ :: _) -> _rhs False) s)
238 (\(t :: _) -> case'Nat (\_ -> _) (_rhs False) (\(u :: _) -> _rhs (t == u)) s) 255 (\(t :: _) -> case'Nat
256 (\(_ :: _) -> _)
257 (_rhs False)
258 (\(u :: _) -> _rhs (t == u))
259 s)
239 r 260 r
240 in q) 261 in q)
241 a 262 a
@@ -258,126 +279,427 @@ hlistNilCase :: forall (a :: _) -> a -> HList Nil -> a
258hlistConsCase 279hlistConsCase
259 :: forall a (b :: [Type]) 280 :: forall a (b :: [Type])
260 . forall (c :: _) -> (a -> HList b -> c) -> HList (a : b) -> c 281 . forall (c :: _) -> (a -> HList b -> c) -> HList (a : b) -> c
261------------ trace 282------------ core code
262typeAnn :: forall a . a -> a 283'Bool :: Type
263parens :: forall a . a -> a 284'Bool = <<type constructor with 0 indices; constructors: False, True>>
264undefined :: forall a . a 285
265primFix :: forall a . (a -> a) -> a
266'Unit :: Type
267TT :: Unit
268case'Unit :: forall (a :: Unit -> Type) -> a 'TT -> forall (b :: Unit) -> a b
269match'Unit :: forall (a :: Type -> Type) -> a Unit -> forall b -> a b -> a b
270'String :: Type
271case'String :: forall (a :: String -> Type) (b :: String) -> a b
272match'String :: forall (a :: Type -> Type) -> a String -> forall b -> a b -> a b
273'Empty :: String -> Type
274case'Empty
275 :: forall (a :: String) . forall (b :: Empty a -> Type) (c :: Empty a) -> b c
276match'Empty
277 :: forall (a :: Type -> Type)
278 -> (forall (b :: String) -> a (Empty b)) -> forall c -> a c -> a c
279unsafeCoerce :: forall a b . a -> b
280'Constraint :: Type
281CUnit :: Constraint
282CEmpty :: String -> Constraint
283case'Constraint
284 :: forall (a :: Constraint -> Type)
285 -> a 'CUnit
286 -> (forall (b :: String) -> a ('CEmpty b)) -> forall (c :: Constraint) -> a c
287match'Constraint
288 :: forall (a :: Type -> Type) -> a Constraint -> forall b -> a b -> a b
289'CW :: Constraint -> Type 286'CW :: Constraint -> Type
287'CW = \a -> <<builtin>>
288
289'Char :: Type
290'Char = <<type constructor with 0 indices; constructors: >>
291
292'Constraint :: Type
293'Constraint = <<type constructor with 0 indices; constructors: CUnit, CEmpty>>
294
295'Empty :: String -> Type
296'Empty = <<type constructor with 0 indices; constructors: >>
297
298'Eq :: Type -> Constraint
299'Eq
300 = \a -> match'String
301 (\_ -> 'Constraint)
302 (_rhs CUnit)
303 a
304 (match'Char
305 (\_ -> 'Constraint)
306 (_rhs CUnit)
307 a
308 (match'Int
309 (\_ -> 'Constraint)
310 (_rhs CUnit)
311 a
312 (match'Float
313 (\_ -> 'Constraint)
314 (_rhs CUnit)
315 a
316 (match'Bool
317 (\_ -> 'Constraint)
318 (_rhs CUnit)
319 a
320 (match'Nat
321 (\_ -> 'Constraint)
322 (_rhs CUnit)
323 a
324 (_rhs (CEmpty "no instance of 'Eq on ???")))))))
325
290'EqCT :: forall a -> a -> a -> Constraint 326'EqCT :: forall a -> a -> a -> Constraint
291parEval :: forall a -> a -> a -> a 327'EqCT = \a b c -> b ~ (c :: a)
292'T2 :: Constraint -> Constraint -> Constraint 328
293match'Type :: forall (a :: Type -> Type) -> a Type -> forall b -> a b -> a b
294'EqCTt :: forall a . a -> a -> Constraint 329'EqCTt :: forall a . a -> a -> Constraint
295t2C :: Unit -> Unit -> Unit 330'EqCTt = \a -> _rhs \b c -> b ~ (c :: a)
331
332'Float :: Type
333'Float = <<type constructor with 0 indices; constructors: >>
334
335'HList :: [Type] -> Type
336'HList = <<type constructor with 1 indices; constructors: HNil, HCons>>
337
296'Int :: Type 338'Int :: Type
297case'Int :: forall (a :: Int -> Type) (b :: Int) -> a b 339'Int = <<type constructor with 0 indices; constructors: >>
298match'Int :: forall (a :: Type -> Type) -> a Int -> forall b -> a b -> a b 340
341'List :: Type -> Type
342'List = <<type constructor with 0 indices; constructors: Nil, :>>
343
344'Nat :: Type
345'Nat = <<type constructor with 0 indices; constructors: Zero, Succ>>
346
347'Num :: Type -> Constraint
348'Num
349 = \a -> match'Int
350 (\_ -> 'Constraint)
351 (_rhs CUnit)
352 a
353 (match'Word
354 (\_ -> 'Constraint)
355 (_rhs CUnit)
356 a
357 (match'Float
358 (\_ -> 'Constraint)
359 (_rhs CUnit)
360 a
361 (match'Nat
362 (\_ -> 'Constraint)
363 (_rhs CUnit)
364 a
365 (_rhs (CEmpty "no instance of 'Num on ???")))))
366
367'Ordering :: Type
368'Ordering = <<type constructor with 0 indices; constructors: LT, EQ, GT>>
369
370'String :: Type
371'String = <<type constructor with 0 indices; constructors: >>
372
373'T2 :: Constraint -> Constraint -> Constraint
374'T2 = \a b -> <<builtin>>
375
376'Unit :: Type
377'Unit = <<type constructor with 0 indices; constructors: TT>>
378
299'Word :: Type 379'Word :: Type
300case'Word :: forall (a :: Word -> Type) (b :: Word) -> a b 380'Word = <<type constructor with 0 indices; constructors: >>
301match'Word :: forall (a :: Type -> Type) -> a Word -> forall b -> a b -> a b 381
302'Float :: Type 382: :: forall a . a -> [a] -> [a]
303case'Float :: forall (a :: Float -> Type) (b :: Float) -> a b 383: = <<1st constructor of 'List>>
304match'Float :: forall (a :: Type -> Type) -> a Float -> forall b -> a b -> a b 384
305'Char :: Type 385== :: forall a . Eq a => a -> a -> Bool
306case'Char :: forall (a :: Char -> Type) (b :: Char) -> a b 386==
307match'Char :: forall (a :: Type -> Type) -> a Char -> forall b -> a b -> a b 387 = primFix
308'Bool :: Type 388 (forall a . 'Eq a => a -> a -> 'Bool)
389 \b c _ -> match'String
390 (\d -> d -> d -> 'Bool)
391 (_rhs (==))
392 c
393 (match'Char
394 (\e -> e -> e -> 'Bool)
395 (_rhs (==))
396 c
397 (match'Int
398 (\f -> f -> f -> 'Bool)
399 (_rhs (==))
400 c
401 (match'Float
402 (\g -> g -> g -> 'Bool)
403 (_rhs (==))
404 c
405 (match'Bool
406 (\h -> h -> h -> 'Bool)
407 (_rhs (==))
408 c
409 (match'Nat
410 (\i -> i -> i -> 'Bool)
411 (_rhs ((==) b))
412 c
413 (_rhs (undefined (c -> c -> 'Bool))))))))
414
415CEmpty :: String -> Constraint
416CEmpty = <<1st constructor of 'Constraint>>
417
418CUnit :: Constraint
419CUnit = <<0th constructor of 'Constraint>>
420
421EQ :: Ordering
422EQ = <<1st constructor of 'Ordering>>
423
309False :: Bool 424False :: Bool
425False = <<0th constructor of 'Bool>>
426
427GT :: Ordering
428GT = <<2nd constructor of 'Ordering>>
429
430HCons :: forall a (b :: [Type]) . a -> HList b -> HList (a : b)
431HCons = <<1st constructor of 'HList>>
432
433() :: ()
434() = <<0th constructor of 'HList>>
435
436LT :: Ordering
437LT = <<0th constructor of 'Ordering>>
438
439[] :: forall a . [a]
440[] = <<0th constructor of 'List>>
441
442Succ :: Nat -> Nat
443Succ = <<1st constructor of 'Nat>>
444
445TT :: Unit
446TT = <<0th constructor of 'Unit>>
447
310True :: Bool 448True :: Bool
449True = <<1st constructor of 'Bool>>
450
451Zero :: Nat
452Zero = 0
453
311case'Bool 454case'Bool
312 :: forall (a :: Bool -> Type) 455 :: forall (a :: Bool -> Type)
313 -> a 'False -> a 'True -> forall (b :: Bool) -> a b 456 -> a 'False -> a 'True -> forall (b :: Bool) -> a b
314match'Bool :: forall (a :: Type -> Type) -> a Bool -> forall b -> a b -> a b 457case'Bool = \a b c d -> <<case function of a type with 0 parameters>>
315'Ordering :: Type 458
316LT :: Ordering 459case'Char :: forall (a :: Char -> Type) (b :: Char) -> a b
317EQ :: Ordering 460case'Char = \a b -> <<case function of a type with 0 parameters>>
318GT :: Ordering 461
462case'Constraint
463 :: forall (a :: Constraint -> Type)
464 -> a 'CUnit
465 -> (forall (b :: String) -> a ('CEmpty b)) -> forall (c :: Constraint) -> a c
466case'Constraint = \a b c d -> <<case function of a type with 0 parameters>>
467
468case'Empty
469 :: forall (a :: String) . forall (b :: Empty a -> Type) (c :: Empty a) -> b c
470case'Empty = \_ a b -> <<case function of a type with 1 parameters>>
471
472case'Float :: forall (a :: Float -> Type) (b :: Float) -> a b
473case'Float = \a b -> <<case function of a type with 0 parameters>>
474
475case'HList
476 :: forall (a :: forall (b :: [Type]) -> HList b -> Type)
477 -> a ' [] ' ()
478 -> (forall c (d :: [Type])
479 . forall (e :: c) (f :: HList d) -> a (c : d) ('HCons e f))
480 -> forall (g :: [Type]) . forall (h :: HList g) -> a g h
481case'HList = \a b c d e -> <<case function of a type with 0 parameters>>
482
483case'Int :: forall (a :: Int -> Type) (b :: Int) -> a b
484case'Int = \a b -> <<case function of a type with 0 parameters>>
485
486case'List
487 :: forall a
488 . forall (b :: [a] -> Type)
489 -> b ' []
490 -> (forall (c :: a) (d :: [a]) -> b (c : d)) -> forall (e :: [a]) -> b e
491case'List = \_ a b c d -> <<case function of a type with 1 parameters>>
492
493case'Nat
494 :: forall (a :: Nat -> Type)
495 -> a 0 -> (forall (b :: Nat) -> a ('Succ b)) -> forall (c :: Nat) -> a c
496case'Nat = \a b c d -> <<case function of a type with 0 parameters>>
497
319case'Ordering 498case'Ordering
320 :: forall (a :: Ordering -> Type) 499 :: forall (a :: Ordering -> Type)
321 -> a 'LT -> a 'EQ -> a 'GT -> forall (b :: Ordering) -> a b 500 -> a 'LT -> a 'EQ -> a 'GT -> forall (b :: Ordering) -> a b
501case'Ordering = \a b c d e -> <<case function of a type with 0 parameters>>
502
503case'String :: forall (a :: String -> Type) (b :: String) -> a b
504case'String = \a b -> <<case function of a type with 0 parameters>>
505
506case'Unit :: forall (a :: Unit -> Type) -> a 'TT -> forall (b :: Unit) -> a b
507case'Unit = \a b c -> <<case function of a type with 0 parameters>>
508
509case'Word :: forall (a :: Word -> Type) (b :: Word) -> a b
510case'Word = \a b -> <<case function of a type with 0 parameters>>
511
512compare :: forall a . Num a => a -> a -> Ordering
513compare
514 = \a _ -> match'Int
515 (\b -> b -> b -> 'Ordering)
516 (_rhs \c d -> primCompareInt c d)
517 a
518 (match'Word
519 (\e -> e -> e -> 'Ordering)
520 (_rhs \f g -> primCompareWord f g)
521 a
522 (match'Float
523 (\h -> h -> h -> 'Ordering)
524 (_rhs \i j -> primCompareFloat i j)
525 a
526 (match'Nat
527 (\k -> k -> k -> 'Ordering)
528 (_rhs (undefined ('Nat -> 'Nat -> 'Ordering)))
529 a
530 (_rhs (undefined (a -> a -> 'Ordering))))))
531
532fromInt :: forall a . Num a => Int -> a
533fromInt
534 = \a _ -> match'Int
535 (\b -> 'Int -> b)
536 (_rhs \c -> c)
537 a
538 (match'Word
539 (\d -> 'Int -> d)
540 (_rhs \e -> primIntToWord e)
541 a
542 (match'Float
543 (\f -> 'Int -> f)
544 (_rhs \g -> primIntToFloat g)
545 a
546 (match'Nat
547 (\h -> 'Int -> h)
548 (_rhs \i -> primIntToNat i)
549 a
550 (_rhs (undefined ('Int -> a))))))
551
552hlistConsCase
553 :: forall a (b :: [Type])
554 . forall c -> (a -> HList b -> c) -> HList (a : b) -> c
555hlistConsCase = \a b c d e -> <<builtin>>
556
557hlistNilCase :: forall a -> a -> () -> a
558hlistNilCase = \a b c -> <<builtin>>
559
560isEQ :: Ordering -> Bool
561isEQ = \a -> case'Ordering (\_ -> 'Bool) (_rhs False) (_rhs True) (_rhs False) a
562
563match'Bool :: forall (a :: Type -> Type) -> a Bool -> forall b -> a b -> a b
564match'Bool = \a b c d -> <<type case function>>
565
566match'Char :: forall (a :: Type -> Type) -> a Char -> forall b -> a b -> a b
567match'Char = \a b c d -> <<type case function>>
568
569match'Constraint
570 :: forall (a :: Type -> Type) -> a Constraint -> forall b -> a b -> a b
571match'Constraint = \a b c d -> <<type case function>>
572
573match'Empty
574 :: forall (a :: Type -> Type)
575 -> (forall (b :: String) -> a (Empty b)) -> forall c -> a c -> a c
576match'Empty = \a b c d -> <<type case function>>
577
578match'Float :: forall (a :: Type -> Type) -> a Float -> forall b -> a b -> a b
579match'Float = \a b c d -> <<type case function>>
580
581match'HList
582 :: forall (a :: Type -> Type)
583 -> (forall (b :: [Type]) -> a (HList b)) -> forall c -> a c -> a c
584match'HList = \a b c d -> <<type case function>>
585
586match'Int :: forall (a :: Type -> Type) -> a Int -> forall b -> a b -> a b
587match'Int = \a b c d -> <<type case function>>
588
589match'List
590 :: forall (a :: Type -> Type) -> (forall b -> a [b]) -> forall c -> a c -> a c
591match'List = \a b c d -> <<type case function>>
592
593match'Nat :: forall (a :: Type -> Type) -> a Nat -> forall b -> a b -> a b
594match'Nat = \a b c d -> <<type case function>>
595
322match'Ordering 596match'Ordering
323 :: forall (a :: Type -> Type) -> a Ordering -> forall b -> a b -> a b 597 :: forall (a :: Type -> Type) -> a Ordering -> forall b -> a b -> a b
324'Nat :: Type 598match'Ordering = \a b c d -> <<type case function>>
325Zero :: Nat 599
326Succ :: Nat -> Nat 600match'String :: forall (a :: Type -> Type) -> a String -> forall b -> a b -> a b
327case'Nat 601match'String = \a b c d -> <<type case function>>
328 :: forall (a :: Nat -> Type) 602
329 -> a 0 -> (forall (b :: Nat) -> a ('Succ b)) -> forall (c :: Nat) -> a c 603match'Type :: forall (a :: Type -> Type) -> a Type -> forall b -> a b -> a b
330match'Nat :: forall (a :: Type -> Type) -> a Nat -> forall b -> a b -> a b 604match'Type = \a b c d -> <<builtin>>
331primIntToWord :: Int -> Word 605
332primIntToFloat :: Int -> Float 606match'Unit :: forall (a :: Type -> Type) -> a Unit -> forall b -> a b -> a b
333primIntToNat :: Int -> Nat 607match'Unit = \a b c d -> <<type case function>>
334primCompareInt :: Int -> Int -> Ordering 608
335primCompareWord :: Word -> Word -> Ordering 609match'Word :: forall (a :: Type -> Type) -> a Word -> forall b -> a b -> a b
336primCompareFloat :: Float -> Float -> Ordering 610match'Word = \a b c d -> <<type case function>>
611
612negate :: forall a . Num a => a -> a
613negate
614 = \a _ -> match'Int
615 (\b -> b -> b)
616 (_rhs \c -> primNegateInt c)
617 a
618 (match'Word
619 (\d -> d -> d)
620 (_rhs \e -> primNegateWord e)
621 a
622 (match'Float
623 (\f -> f -> f)
624 (_rhs \g -> primNegateFloat g)
625 a
626 (match'Nat
627 (\h -> h -> h)
628 (_rhs (undefined ('Nat -> 'Nat)))
629 a
630 (_rhs (undefined (a -> a))))))
631
632parEval :: forall a -> a -> a -> a
633parEval = \a b c -> <<builtin>>
634
635parens :: forall a . a -> a
636parens = \_ a -> _rhs a
637
638primAddInt :: Int -> Int -> Int
639primAddInt = \a b -> <<builtin>>
640
337primCompareChar :: Char -> Char -> Ordering 641primCompareChar :: Char -> Char -> Ordering
642primCompareChar = \a b -> <<builtin>>
643
644primCompareFloat :: Float -> Float -> Ordering
645primCompareFloat = \a b -> <<builtin>>
646
647primCompareInt :: Int -> Int -> Ordering
648primCompareInt = \a b -> <<builtin>>
649
338primCompareString :: String -> String -> Ordering 650primCompareString :: String -> String -> Ordering
651primCompareString = \a b -> <<builtin>>
652
653primCompareWord :: Word -> Word -> Ordering
654primCompareWord = \a b -> <<builtin>>
655
656primFix :: forall a . (a -> a) -> a
657primFix = \a b -> <<builtin>>
658
659primIfThenElse :: forall a . Bool -> a -> a -> a
660primIfThenElse = \a b c d -> case'Bool (\_ -> a) (_rhs d) (_rhs c) b
661
662primIntToFloat :: Int -> Float
663primIntToFloat = \a -> <<builtin>>
664
665primIntToNat :: Int -> Nat
666primIntToNat = \a -> <<builtin>>
667
668primIntToWord :: Int -> Word
669primIntToWord = \a -> <<builtin>>
670
671primModInt :: Int -> Int -> Int
672primModInt = \a b -> <<builtin>>
673
674primNegateFloat :: Float -> Float
675primNegateFloat = \a -> <<builtin>>
676
339primNegateInt :: Int -> Int 677primNegateInt :: Int -> Int
678primNegateInt = \a -> <<builtin>>
679
340primNegateWord :: Word -> Word 680primNegateWord :: Word -> Word
341primNegateFloat :: Float -> Float 681primNegateWord = \a -> <<builtin>>
342primAddInt :: Int -> Int -> Int 682
343primSubInt :: Int -> Int -> Int
344primModInt :: Int -> Int -> Int
345primSqrtFloat :: Float -> Float
346primRound :: Float -> Int 683primRound :: Float -> Int
347primIfThenElse :: forall a . Bool -> a -> a -> a 684primRound = \a -> <<builtin>>
348isEQ :: Ordering -> Bool 685
349'Num :: Type -> Constraint 686primSqrtFloat :: Float -> Float
350fromInt :: forall a . Num a => Int -> a 687primSqrtFloat = \a -> <<builtin>>
351compare :: forall a . Num a => a -> a -> Ordering 688
352negate :: forall a . Num a => a -> a 689primSubInt :: Int -> Int -> Int
353'Eq :: Type -> Constraint 690primSubInt = \a b -> <<builtin>>
354(==) :: forall a . Eq a => a -> a -> Bool 691
355'List :: Type -> Type 692t2C :: Unit -> Unit -> Unit
356[] :: forall a . [a] 693t2C = \a b -> <<builtin>>
357(:) :: forall a . a -> [a] -> [a] 694
358case'List 695typeAnn :: forall a . a -> a
359 :: forall a 696typeAnn = \_ a -> _rhs a
360 . forall (b :: [a] -> Type) 697
361 -> b ' [] 698undefined :: forall a . a
362 -> (forall (c :: a) (d :: [a]) -> b (c : d)) -> forall (e :: [a]) -> b e 699undefined = \a -> <<builtin>>
363match'List 700
364 :: forall (a :: Type -> Type) -> (forall b -> a [b]) -> forall c -> a c -> a c 701unsafeCoerce :: forall a b . a -> b
365'HList :: [Type] -> Type 702unsafeCoerce = \a b c -> <<builtin>>
366() :: ()
367HCons :: forall a (b :: [Type]) . a -> HList b -> HList (a : b)
368case'HList
369 :: forall (a :: forall (b :: [Type]) -> HList b -> Type)
370 -> a ' [] ' ()
371 -> (forall c (d :: [Type])
372 . forall (e :: c) (f :: HList d) -> a (c : d) ('HCons e f))
373 -> forall (g :: [Type]) . forall (h :: HList g) -> a g h
374match'HList
375 :: forall (a :: Type -> Type)
376 -> (forall (b :: [Type]) -> a (HList b)) -> forall c -> a c -> a c
377hlistNilCase :: forall a -> a -> () -> a
378hlistConsCase
379 :: forall a (b :: [Type])
380 . forall c -> (a -> HList b -> c) -> HList (a : b) -> c
381------------ tooltips 703------------ tooltips
382testdata/Internals.lc 6:1-6:8 704testdata/Internals.lc 6:1-6:8
383 forall a . a -> a 705 forall a . a -> a
diff --git a/testdata/Material.out b/testdata/Material.out
index 8ae91b82..c64db179 100644
--- a/testdata/Material.out
+++ b/testdata/Material.out
@@ -9,14 +9,29 @@ data Entity :: Type where
9 -> Vec (fromInt 4) Float 9 -> Vec (fromInt 4) Float
10 -> Vec (fromInt 3) Float -> Vec (fromInt 4) Float -> Entity 10 -> Vec (fromInt 3) Float -> Vec (fromInt 4) Float -> Entity
11 11
12eAmbientLight = \(a :: _) -> case'Entity (\_ -> _) (\(b :: _) _ _ _ -> _rhs b) a 12eAmbientLight
13 = \(a :: _) -> case'Entity
14 (\(_ :: _) -> _)
15 (\(b :: _) (_ :: _) (_ :: _) (_ :: _) -> _rhs b)
16 a
13 17
14eDirectedLight 18eDirectedLight
15 = \(a :: _) -> case'Entity (\_ -> _) (\_ (b :: _) _ _ -> _rhs b) a 19 = \(a :: _) -> case'Entity
20 (\(_ :: _) -> _)
21 (\(_ :: _) (b :: _) (_ :: _) (_ :: _) -> _rhs b)
22 a
16 23
17eLightDir = \(a :: _) -> case'Entity (\_ -> _) (\_ _ (b :: _) _ -> _rhs b) a 24eLightDir
25 = \(a :: _) -> case'Entity
26 (\(_ :: _) -> _)
27 (\(_ :: _) (_ :: _) (b :: _) (_ :: _) -> _rhs b)
28 a
18 29
19eShaderRGBA = \(a :: _) -> case'Entity (\_ -> _) (\_ _ _ (b :: _) -> _rhs b) a 30eShaderRGBA
31 = \(a :: _) -> case'Entity
32 (\(_ :: _) -> _)
33 (\(_ :: _) (_ :: _) (_ :: _) (b :: _) -> _rhs b)
34 a
20 35
21data WaveType :: Type where 36data WaveType :: Type where
22 WT_Sin :: WaveType 37 WT_Sin :: WaveType
@@ -132,68 +147,101 @@ data StageAttrs :: Type where
132 147
133saBlend 148saBlend
134 = \(a :: _) -> case'StageAttrs 149 = \(a :: _) -> case'StageAttrs
135 (\_ -> _) 150 (\(_ :: _) -> _)
136 (\(b :: _) _ _ _ _ _ _ _ _ _ _ -> _rhs b) 151 (\(b :: _)
152 (_ :: _)
153 (_ :: _) (_ :: _) (_ :: _) (_ :: _) (_ :: _) (_ :: _) (_ :: _) (_ :: _) (_ :: _)
154 -> _rhs b)
137 a 155 a
138 156
139saRGBGen 157saRGBGen
140 = \(a :: _) -> case'StageAttrs 158 = \(a :: _) -> case'StageAttrs
141 (\_ -> _) 159 (\(_ :: _) -> _)
142 (\_ (b :: _) _ _ _ _ _ _ _ _ _ -> _rhs b) 160 (\(_ :: _)
161 (b :: _)
162 (_ :: _) (_ :: _) (_ :: _) (_ :: _) (_ :: _) (_ :: _) (_ :: _) (_ :: _) (_ :: _)
163 -> _rhs b)
143 a 164 a
144 165
145saAlphaGen 166saAlphaGen
146 = \(a :: _) -> case'StageAttrs 167 = \(a :: _) -> case'StageAttrs
147 (\_ -> _) 168 (\(_ :: _) -> _)
148 (\_ _ (b :: _) _ _ _ _ _ _ _ _ -> _rhs b) 169 (\(_ :: _)
170 (_ :: _)
171 (b :: _) (_ :: _) (_ :: _) (_ :: _) (_ :: _) (_ :: _) (_ :: _) (_ :: _) (_ :: _)
172 -> _rhs b)
149 a 173 a
150 174
151saTCGen 175saTCGen
152 = \(a :: _) -> case'StageAttrs 176 = \(a :: _) -> case'StageAttrs
153 (\_ -> _) 177 (\(_ :: _) -> _)
154 (\_ _ _ (b :: _) _ _ _ _ _ _ _ -> _rhs b) 178 (\(_ :: _)
179 (_ :: _)
180 (_ :: _) (b :: _) (_ :: _) (_ :: _) (_ :: _) (_ :: _) (_ :: _) (_ :: _) (_ :: _)
181 -> _rhs b)
155 a 182 a
156 183
157saTCMod 184saTCMod
158 = \(a :: _) -> case'StageAttrs 185 = \(a :: _) -> case'StageAttrs
159 (\_ -> _) 186 (\(_ :: _) -> _)
160 (\_ _ _ _ (b :: _) _ _ _ _ _ _ -> _rhs b) 187 (\(_ :: _)
188 (_ :: _)
189 (_ :: _) (_ :: _) (b :: _) (_ :: _) (_ :: _) (_ :: _) (_ :: _) (_ :: _) (_ :: _)
190 -> _rhs b)
161 a 191 a
162 192
163saTexture 193saTexture
164 = \(a :: _) -> case'StageAttrs 194 = \(a :: _) -> case'StageAttrs
165 (\_ -> _) 195 (\(_ :: _) -> _)
166 (\_ _ _ _ _ (b :: _) _ _ _ _ _ -> _rhs b) 196 (\(_ :: _)
197 (_ :: _)
198 (_ :: _) (_ :: _) (_ :: _) (b :: _) (_ :: _) (_ :: _) (_ :: _) (_ :: _) (_ :: _)
199 -> _rhs b)
167 a 200 a
168 201
169saDepthWrite 202saDepthWrite
170 = \(a :: _) -> case'StageAttrs 203 = \(a :: _) -> case'StageAttrs
171 (\_ -> _) 204 (\(_ :: _) -> _)
172 (\_ _ _ _ _ _ (b :: _) _ _ _ _ -> _rhs b) 205 (\(_ :: _)
206 (_ :: _)
207 (_ :: _) (_ :: _) (_ :: _) (_ :: _) (b :: _) (_ :: _) (_ :: _) (_ :: _) (_ :: _)
208 -> _rhs b)
173 a 209 a
174 210
175saDepthFunc 211saDepthFunc
176 = \(a :: _) -> case'StageAttrs 212 = \(a :: _) -> case'StageAttrs
177 (\_ -> _) 213 (\(_ :: _) -> _)
178 (\_ _ _ _ _ _ _ (b :: _) _ _ _ -> _rhs b) 214 (\(_ :: _)
215 (_ :: _)
216 (_ :: _) (_ :: _) (_ :: _) (_ :: _) (_ :: _) (b :: _) (_ :: _) (_ :: _) (_ :: _)
217 -> _rhs b)
179 a 218 a
180 219
181saAlphaFunc 220saAlphaFunc
182 = \(a :: _) -> case'StageAttrs 221 = \(a :: _) -> case'StageAttrs
183 (\_ -> _) 222 (\(_ :: _) -> _)
184 (\_ _ _ _ _ _ _ _ (b :: _) _ _ -> _rhs b) 223 (\(_ :: _)
224 (_ :: _)
225 (_ :: _) (_ :: _) (_ :: _) (_ :: _) (_ :: _) (_ :: _) (b :: _) (_ :: _) (_ :: _)
226 -> _rhs b)
185 a 227 a
186 228
187saDepthMaskExplicit 229saDepthMaskExplicit
188 = \(a :: _) -> case'StageAttrs 230 = \(a :: _) -> case'StageAttrs
189 (\_ -> _) 231 (\(_ :: _) -> _)
190 (\_ _ _ _ _ _ _ _ _ (b :: _) _ -> _rhs b) 232 (\(_ :: _)
233 (_ :: _)
234 (_ :: _) (_ :: _) (_ :: _) (_ :: _) (_ :: _) (_ :: _) (_ :: _) (b :: _) (_ :: _)
235 -> _rhs b)
191 a 236 a
192 237
193saTextureUniform 238saTextureUniform
194 = \(a :: _) -> case'StageAttrs 239 = \(a :: _) -> case'StageAttrs
195 (\_ -> _) 240 (\(_ :: _) -> _)
196 (\_ _ _ _ _ _ _ _ _ _ (b :: _) -> _rhs b) 241 (\(_ :: _)
242 (_ :: _)
243 (_ :: _) (_ :: _) (_ :: _) (_ :: _) (_ :: _) (_ :: _) (_ :: _) (_ :: _) (b :: _)
244 -> _rhs b)
197 a 245 a
198 246
199defaultStageAttrs :: StageAttrs 247defaultStageAttrs :: StageAttrs
@@ -224,74 +272,122 @@ data CommonAttrs :: Type where
224 272
225caSkyParms 273caSkyParms
226 = \(a :: _) -> case'CommonAttrs 274 = \(a :: _) -> case'CommonAttrs
227 (\_ -> _) 275 (\(_ :: _) -> _)
228 (\(b :: _) _ _ _ _ _ _ _ _ _ _ _ -> _rhs b) 276 (\(b :: _)
277 (_ :: _)
278 (_ :: _)
279 (_ :: _) (_ :: _) (_ :: _) (_ :: _) (_ :: _) (_ :: _) (_ :: _) (_ :: _) (_ :: _)
280 -> _rhs b)
229 a 281 a
230 282
231caFogParms 283caFogParms
232 = \(a :: _) -> case'CommonAttrs 284 = \(a :: _) -> case'CommonAttrs
233 (\_ -> _) 285 (\(_ :: _) -> _)
234 (\_ (b :: _) _ _ _ _ _ _ _ _ _ _ -> _rhs b) 286 (\(_ :: _)
287 (b :: _)
288 (_ :: _)
289 (_ :: _) (_ :: _) (_ :: _) (_ :: _) (_ :: _) (_ :: _) (_ :: _) (_ :: _) (_ :: _)
290 -> _rhs b)
235 a 291 a
236 292
237caPortal 293caPortal
238 = \(a :: _) -> case'CommonAttrs 294 = \(a :: _) -> case'CommonAttrs
239 (\_ -> _) 295 (\(_ :: _) -> _)
240 (\_ _ (b :: _) _ _ _ _ _ _ _ _ _ -> _rhs b) 296 (\(_ :: _)
297 (_ :: _)
298 (b :: _)
299 (_ :: _) (_ :: _) (_ :: _) (_ :: _) (_ :: _) (_ :: _) (_ :: _) (_ :: _) (_ :: _)
300 -> _rhs b)
241 a 301 a
242 302
243caSort 303caSort
244 = \(a :: _) -> case'CommonAttrs 304 = \(a :: _) -> case'CommonAttrs
245 (\_ -> _) 305 (\(_ :: _) -> _)
246 (\_ _ _ (b :: _) _ _ _ _ _ _ _ _ -> _rhs b) 306 (\(_ :: _)
307 (_ :: _)
308 (_ :: _)
309 (b :: _) (_ :: _) (_ :: _) (_ :: _) (_ :: _) (_ :: _) (_ :: _) (_ :: _) (_ :: _)
310 -> _rhs b)
247 a 311 a
248 312
249caEntityMergable 313caEntityMergable
250 = \(a :: _) -> case'CommonAttrs 314 = \(a :: _) -> case'CommonAttrs
251 (\_ -> _) 315 (\(_ :: _) -> _)
252 (\_ _ _ _ (b :: _) _ _ _ _ _ _ _ -> _rhs b) 316 (\(_ :: _)
317 (_ :: _)
318 (_ :: _)
319 (_ :: _) (b :: _) (_ :: _) (_ :: _) (_ :: _) (_ :: _) (_ :: _) (_ :: _) (_ :: _)
320 -> _rhs b)
253 a 321 a
254 322
255caFogOnly 323caFogOnly
256 = \(a :: _) -> case'CommonAttrs 324 = \(a :: _) -> case'CommonAttrs
257 (\_ -> _) 325 (\(_ :: _) -> _)
258 (\_ _ _ _ _ (b :: _) _ _ _ _ _ _ -> _rhs b) 326 (\(_ :: _)
327 (_ :: _)
328 (_ :: _)
329 (_ :: _) (_ :: _) (b :: _) (_ :: _) (_ :: _) (_ :: _) (_ :: _) (_ :: _) (_ :: _)
330 -> _rhs b)
259 a 331 a
260 332
261caCull 333caCull
262 = \(a :: _) -> case'CommonAttrs 334 = \(a :: _) -> case'CommonAttrs
263 (\_ -> _) 335 (\(_ :: _) -> _)
264 (\_ _ _ _ _ _ (b :: _) _ _ _ _ _ -> _rhs b) 336 (\(_ :: _)
337 (_ :: _)
338 (_ :: _)
339 (_ :: _) (_ :: _) (_ :: _) (b :: _) (_ :: _) (_ :: _) (_ :: _) (_ :: _) (_ :: _)
340 -> _rhs b)
265 a 341 a
266 342
267caDeformVertexes 343caDeformVertexes
268 = \(a :: _) -> case'CommonAttrs 344 = \(a :: _) -> case'CommonAttrs
269 (\_ -> _) 345 (\(_ :: _) -> _)
270 (\_ _ _ _ _ _ _ (b :: _) _ _ _ _ -> _rhs b) 346 (\(_ :: _)
347 (_ :: _)
348 (_ :: _)
349 (_ :: _) (_ :: _) (_ :: _) (_ :: _) (b :: _) (_ :: _) (_ :: _) (_ :: _) (_ :: _)
350 -> _rhs b)
271 a 351 a
272 352
273caNoMipMaps 353caNoMipMaps
274 = \(a :: _) -> case'CommonAttrs 354 = \(a :: _) -> case'CommonAttrs
275 (\_ -> _) 355 (\(_ :: _) -> _)
276 (\_ _ _ _ _ _ _ _ (b :: _) _ _ _ -> _rhs b) 356 (\(_ :: _)
357 (_ :: _)
358 (_ :: _)
359 (_ :: _) (_ :: _) (_ :: _) (_ :: _) (_ :: _) (b :: _) (_ :: _) (_ :: _) (_ :: _)
360 -> _rhs b)
277 a 361 a
278 362
279caPolygonOffset 363caPolygonOffset
280 = \(a :: _) -> case'CommonAttrs 364 = \(a :: _) -> case'CommonAttrs
281 (\_ -> _) 365 (\(_ :: _) -> _)
282 (\_ _ _ _ _ _ _ _ _ (b :: _) _ _ -> _rhs b) 366 (\(_ :: _)
367 (_ :: _)
368 (_ :: _)
369 (_ :: _) (_ :: _) (_ :: _) (_ :: _) (_ :: _) (_ :: _) (b :: _) (_ :: _) (_ :: _)
370 -> _rhs b)
283 a 371 a
284 372
285caStages 373caStages
286 = \(a :: _) -> case'CommonAttrs 374 = \(a :: _) -> case'CommonAttrs
287 (\_ -> _) 375 (\(_ :: _) -> _)
288 (\_ _ _ _ _ _ _ _ _ _ (b :: _) _ -> _rhs b) 376 (\(_ :: _)
377 (_ :: _)
378 (_ :: _)
379 (_ :: _) (_ :: _) (_ :: _) (_ :: _) (_ :: _) (_ :: _) (_ :: _) (b :: _) (_ :: _)
380 -> _rhs b)
289 a 381 a
290 382
291caIsSky 383caIsSky
292 = \(a :: _) -> case'CommonAttrs 384 = \(a :: _) -> case'CommonAttrs
293 (\_ -> _) 385 (\(_ :: _) -> _)
294 (\_ _ _ _ _ _ _ _ _ _ _ (b :: _) -> _rhs b) 386 (\(_ :: _)
387 (_ :: _)
388 (_ :: _)
389 (_ :: _) (_ :: _) (_ :: _) (_ :: _) (_ :: _) (_ :: _) (_ :: _) (_ :: _) (b :: _)
390 -> _rhs b)
295 a 391 a
296 392
297defaultCommonAttrs :: CommonAttrs 393defaultCommonAttrs :: CommonAttrs
@@ -310,61 +406,430 @@ defaultCommonAttrs
310 False 406 False
311 [] 407 []
312 False) 408 False)
313------------ trace 409------------ core code
314identityLight :: Float 410'AlphaFunction :: Type
411'AlphaFunction
412 = <<type constructor with 0 indices; constructors: A_Gt0, A_Lt128, A_Ge128>>
413
414'AlphaGen :: Type
415'AlphaGen
416 = <<type constructor with 0 indices; constructors: A_Wave, A_Const, A_Portal, A_Identity, A_Entity, A_OneMinusEntity, A_Vertex, A_LightingSpecular, A_OneMinusVertex>>
417
418'Blending' :: Type
419'Blending'
420 = <<type constructor with 0 indices; constructors: B_DstAlpha, B_DstColor, B_One, B_OneMinusDstAlpha, B_OneMinusDstColor, B_OneMinusSrcAlpha, B_OneMinusSrcColor, B_SrcAlpha, B_SrcAlphaSaturate, B_SrcColor, B_Zero>>
421
422'CommonAttrs :: Type
423'CommonAttrs = <<type constructor with 0 indices; constructors: CommonAttrs>>
424
425'CullType :: Type
426'CullType
427 = <<type constructor with 0 indices; constructors: CT_FrontSided, CT_BackSided, CT_TwoSided>>
428
429'Deform :: Type
430'Deform
431 = <<type constructor with 0 indices; constructors: D_AutoSprite, D_AutoSprite2, D_Bulge, D_Move, D_Normal, D_ProjectionShadow, D_Text0, D_Text1, D_Text2, D_Text3, D_Text4, D_Text5, D_Text6, D_Text7, D_Wave>>
432
433'DepthFunction :: Type
434'DepthFunction
435 = <<type constructor with 0 indices; constructors: D_Equal, D_Lequal>>
436
315'Entity :: Type 437'Entity :: Type
316Entity :: Vec 4 Float -> Vec 4 Float -> Vec 3 Float -> Vec 4 Float -> Entity 438'Entity = <<type constructor with 0 indices; constructors: Entity>>
317case'Entity 439
318 :: forall (a :: Entity -> Type) 440'RGBGen :: Type
319 -> (forall (b :: Vec 4 Float) 441'RGBGen
320 (c :: Vec 4 Float) (d :: Vec 3 Float) (e :: Vec 4 Float) 442 = <<type constructor with 0 indices; constructors: RGB_Wave, RGB_Const, RGB_Identity, RGB_IdentityLighting, RGB_Entity, RGB_OneMinusEntity, RGB_ExactVertex, RGB_Vertex, RGB_LightingDiffuse, RGB_OneMinusVertex, RGB_Undefined>>
321 -> a ('Entity b c d e)) 443
322 -> forall (f :: Entity) -> a f 444'StageAttrs :: Type
323match'Entity :: forall (a :: Type -> Type) -> a Entity -> forall b -> a b -> a b 445'StageAttrs = <<type constructor with 0 indices; constructors: StageAttrs>>
324eAmbientLight :: Entity -> VecS Float 4 446
325eDirectedLight :: Entity -> VecS Float 4 447'StageTexture :: Type
326eLightDir :: Entity -> VecS Float 3 448'StageTexture
327eShaderRGBA :: Entity -> VecS Float 4 449 = <<type constructor with 0 indices; constructors: ST_Map, ST_ClampMap, ST_AnimMap, ST_Lightmap, ST_WhiteImage>>
328'WaveType :: Type 450
329WT_Sin :: WaveType 451'TCGen :: Type
330WT_Triangle :: WaveType 452'TCGen
331WT_Square :: WaveType 453 = <<type constructor with 0 indices; constructors: TG_Base, TG_Lightmap, TG_Environment, TG_Vector, TG_Undefined>>
332WT_Sawtooth :: WaveType 454
333WT_InverseSawtooth :: WaveType 455'TCMod :: Type
334WT_Noise :: WaveType 456'TCMod
335case'WaveType 457 = <<type constructor with 0 indices; constructors: TM_EntityTranslate, TM_Rotate, TM_Scroll, TM_Scale, TM_Stretch, TM_Transform, TM_Turb>>
336 :: forall (a :: WaveType -> Type) 458
337 -> a 'WT_Sin
338 -> a 'WT_Triangle
339 -> a 'WT_Square
340 -> a 'WT_Sawtooth
341 -> a 'WT_InverseSawtooth -> a 'WT_Noise -> forall (b :: WaveType) -> a b
342match'WaveType
343 :: forall (a :: Type -> Type) -> a WaveType -> forall b -> a b -> a b
344'Wave :: Type 459'Wave :: Type
345Wave :: WaveType -> Float -> Float -> Float -> Float -> Wave 460'Wave = <<type constructor with 0 indices; constructors: Wave>>
346case'Wave 461
347 :: forall (a :: Wave -> Type) 462'WaveType :: Type
348 -> (forall (b :: WaveType) (c :: Float) (d :: Float) (e :: Float) (f :: Float) 463'WaveType
349 -> a ('Wave b c d e f)) 464 = <<type constructor with 0 indices; constructors: WT_Sin, WT_Triangle, WT_Square, WT_Sawtooth, WT_InverseSawtooth, WT_Noise>>
350 -> forall (g :: Wave) -> a g 465
351match'Wave :: forall (a :: Type -> Type) -> a Wave -> forall b -> a b -> a b 466A_Const :: Float -> AlphaGen
352'Deform :: Type 467A_Const = <<1st constructor of 'AlphaGen>>
468
469A_Entity :: AlphaGen
470A_Entity = <<4th constructor of 'AlphaGen>>
471
472A_Ge128 :: AlphaFunction
473A_Ge128 = <<2nd constructor of 'AlphaFunction>>
474
475A_Gt0 :: AlphaFunction
476A_Gt0 = <<0th constructor of 'AlphaFunction>>
477
478A_Identity :: AlphaGen
479A_Identity = <<3rd constructor of 'AlphaGen>>
480
481A_LightingSpecular :: AlphaGen
482A_LightingSpecular = <<7th constructor of 'AlphaGen>>
483
484A_Lt128 :: AlphaFunction
485A_Lt128 = <<1st constructor of 'AlphaFunction>>
486
487A_OneMinusEntity :: AlphaGen
488A_OneMinusEntity = <<5th constructor of 'AlphaGen>>
489
490A_OneMinusVertex :: AlphaGen
491A_OneMinusVertex = <<8th constructor of 'AlphaGen>>
492
493A_Portal :: AlphaGen
494A_Portal = <<2nd constructor of 'AlphaGen>>
495
496A_Vertex :: AlphaGen
497A_Vertex = <<6th constructor of 'AlphaGen>>
498
499A_Wave :: Wave -> AlphaGen
500A_Wave = <<0th constructor of 'AlphaGen>>
501
502B_DstAlpha :: Blending'
503B_DstAlpha = <<0th constructor of 'Blending'>>
504
505B_DstColor :: Blending'
506B_DstColor = <<1st constructor of 'Blending'>>
507
508B_One :: Blending'
509B_One = <<2nd constructor of 'Blending'>>
510
511B_OneMinusDstAlpha :: Blending'
512B_OneMinusDstAlpha = <<3rd constructor of 'Blending'>>
513
514B_OneMinusDstColor :: Blending'
515B_OneMinusDstColor = <<4th constructor of 'Blending'>>
516
517B_OneMinusSrcAlpha :: Blending'
518B_OneMinusSrcAlpha = <<5th constructor of 'Blending'>>
519
520B_OneMinusSrcColor :: Blending'
521B_OneMinusSrcColor = <<6th constructor of 'Blending'>>
522
523B_SrcAlpha :: Blending'
524B_SrcAlpha = <<7th constructor of 'Blending'>>
525
526B_SrcAlphaSaturate :: Blending'
527B_SrcAlphaSaturate = <<8th constructor of 'Blending'>>
528
529B_SrcColor :: Blending'
530B_SrcColor = <<9th constructor of 'Blending'>>
531
532B_Zero :: Blending'
533B_Zero = <<10th constructor of 'Blending'>>
534
535CT_BackSided :: CullType
536CT_BackSided = <<1st constructor of 'CullType>>
537
538CT_FrontSided :: CullType
539CT_FrontSided = <<0th constructor of 'CullType>>
540
541CT_TwoSided :: CullType
542CT_TwoSided = <<2nd constructor of 'CullType>>
543
544CommonAttrs
545 :: ()
546 -> ()
547 -> Bool
548 -> Float
549 -> Bool
550 -> Bool
551 -> CullType -> [Deform] -> Bool -> Bool -> [StageAttrs] -> Bool -> CommonAttrs
552CommonAttrs = <<0th constructor of 'CommonAttrs>>
553
353D_AutoSprite :: Deform 554D_AutoSprite :: Deform
555D_AutoSprite = <<0th constructor of 'Deform>>
556
354D_AutoSprite2 :: Deform 557D_AutoSprite2 :: Deform
558D_AutoSprite2 = <<1st constructor of 'Deform>>
559
355D_Bulge :: Float -> Float -> Float -> Deform 560D_Bulge :: Float -> Float -> Float -> Deform
561D_Bulge = <<2nd constructor of 'Deform>>
562
563D_Equal :: DepthFunction
564D_Equal = <<0th constructor of 'DepthFunction>>
565
566D_Lequal :: DepthFunction
567D_Lequal = <<1st constructor of 'DepthFunction>>
568
356D_Move :: Vec 3 Float -> Wave -> Deform 569D_Move :: Vec 3 Float -> Wave -> Deform
570D_Move = <<3rd constructor of 'Deform>>
571
357D_Normal :: Float -> Float -> Deform 572D_Normal :: Float -> Float -> Deform
573D_Normal = <<4th constructor of 'Deform>>
574
358D_ProjectionShadow :: Deform 575D_ProjectionShadow :: Deform
576D_ProjectionShadow = <<5th constructor of 'Deform>>
577
359D_Text0 :: Deform 578D_Text0 :: Deform
579D_Text0 = <<6th constructor of 'Deform>>
580
360D_Text1 :: Deform 581D_Text1 :: Deform
582D_Text1 = <<7th constructor of 'Deform>>
583
361D_Text2 :: Deform 584D_Text2 :: Deform
585D_Text2 = <<8th constructor of 'Deform>>
586
362D_Text3 :: Deform 587D_Text3 :: Deform
588D_Text3 = <<9th constructor of 'Deform>>
589
363D_Text4 :: Deform 590D_Text4 :: Deform
591D_Text4 = <<10th constructor of 'Deform>>
592
364D_Text5 :: Deform 593D_Text5 :: Deform
594D_Text5 = <<11th constructor of 'Deform>>
595
365D_Text6 :: Deform 596D_Text6 :: Deform
597D_Text6 = <<12th constructor of 'Deform>>
598
366D_Text7 :: Deform 599D_Text7 :: Deform
600D_Text7 = <<13th constructor of 'Deform>>
601
367D_Wave :: Float -> Wave -> Deform 602D_Wave :: Float -> Wave -> Deform
603D_Wave = <<14th constructor of 'Deform>>
604
605Entity :: Vec 4 Float -> Vec 4 Float -> Vec 3 Float -> Vec 4 Float -> Entity
606Entity = <<0th constructor of 'Entity>>
607
608RGB_Const :: Float -> Float -> Float -> RGBGen
609RGB_Const = <<1st constructor of 'RGBGen>>
610
611RGB_Entity :: RGBGen
612RGB_Entity = <<4th constructor of 'RGBGen>>
613
614RGB_ExactVertex :: RGBGen
615RGB_ExactVertex = <<6th constructor of 'RGBGen>>
616
617RGB_Identity :: RGBGen
618RGB_Identity = <<2nd constructor of 'RGBGen>>
619
620RGB_IdentityLighting :: RGBGen
621RGB_IdentityLighting = <<3rd constructor of 'RGBGen>>
622
623RGB_LightingDiffuse :: RGBGen
624RGB_LightingDiffuse = <<8th constructor of 'RGBGen>>
625
626RGB_OneMinusEntity :: RGBGen
627RGB_OneMinusEntity = <<5th constructor of 'RGBGen>>
628
629RGB_OneMinusVertex :: RGBGen
630RGB_OneMinusVertex = <<9th constructor of 'RGBGen>>
631
632RGB_Undefined :: RGBGen
633RGB_Undefined = <<10th constructor of 'RGBGen>>
634
635RGB_Vertex :: RGBGen
636RGB_Vertex = <<7th constructor of 'RGBGen>>
637
638RGB_Wave :: Wave -> RGBGen
639RGB_Wave = <<0th constructor of 'RGBGen>>
640
641ST_AnimMap :: Float -> [String] -> StageTexture
642ST_AnimMap = <<2nd constructor of 'StageTexture>>
643
644ST_ClampMap :: String -> StageTexture
645ST_ClampMap = <<1st constructor of 'StageTexture>>
646
647ST_Lightmap :: StageTexture
648ST_Lightmap = <<3rd constructor of 'StageTexture>>
649
650ST_Map :: String -> StageTexture
651ST_Map = <<0th constructor of 'StageTexture>>
652
653ST_WhiteImage :: StageTexture
654ST_WhiteImage = <<4th constructor of 'StageTexture>>
655
656StageAttrs
657 :: Maybe (Blending', Blending')
658 -> RGBGen
659 -> AlphaGen
660 -> TCGen
661 -> [TCMod]
662 -> StageTexture
663 -> Bool -> DepthFunction -> Maybe AlphaFunction -> Bool -> String -> StageAttrs
664StageAttrs = <<0th constructor of 'StageAttrs>>
665
666TG_Base :: TCGen
667TG_Base = <<0th constructor of 'TCGen>>
668
669TG_Environment :: TCGen
670TG_Environment = <<2nd constructor of 'TCGen>>
671
672TG_Lightmap :: TCGen
673TG_Lightmap = <<1st constructor of 'TCGen>>
674
675TG_Undefined :: TCGen
676TG_Undefined = <<4th constructor of 'TCGen>>
677
678TG_Vector :: Vec 3 Float -> Vec 3 Float -> TCGen
679TG_Vector = <<3rd constructor of 'TCGen>>
680
681TM_EntityTranslate :: TCMod
682TM_EntityTranslate = <<0th constructor of 'TCMod>>
683
684TM_Rotate :: Float -> TCMod
685TM_Rotate = <<1st constructor of 'TCMod>>
686
687TM_Scale :: Float -> Float -> TCMod
688TM_Scale = <<3rd constructor of 'TCMod>>
689
690TM_Scroll :: Float -> Float -> TCMod
691TM_Scroll = <<2nd constructor of 'TCMod>>
692
693TM_Stretch :: Wave -> TCMod
694TM_Stretch = <<4th constructor of 'TCMod>>
695
696TM_Transform :: Float -> Float -> Float -> Float -> Float -> Float -> TCMod
697TM_Transform = <<5th constructor of 'TCMod>>
698
699TM_Turb :: Float -> Float -> Float -> Float -> TCMod
700TM_Turb = <<6th constructor of 'TCMod>>
701
702WT_InverseSawtooth :: WaveType
703WT_InverseSawtooth = <<4th constructor of 'WaveType>>
704
705WT_Noise :: WaveType
706WT_Noise = <<5th constructor of 'WaveType>>
707
708WT_Sawtooth :: WaveType
709WT_Sawtooth = <<3rd constructor of 'WaveType>>
710
711WT_Sin :: WaveType
712WT_Sin = <<0th constructor of 'WaveType>>
713
714WT_Square :: WaveType
715WT_Square = <<2nd constructor of 'WaveType>>
716
717WT_Triangle :: WaveType
718WT_Triangle = <<1st constructor of 'WaveType>>
719
720Wave :: WaveType -> Float -> Float -> Float -> Float -> Wave
721Wave = <<0th constructor of 'Wave>>
722
723caCull :: CommonAttrs -> CullType
724caCull
725 = \a -> case'CommonAttrs
726 (\_ -> 'CullType)
727 (\_ _ _ _ _ _ b _ _ _ _ _ -> _rhs b)
728 a
729
730caDeformVertexes :: CommonAttrs -> [Deform]
731caDeformVertexes
732 = \a -> case'CommonAttrs
733 (\_ -> ['Deform])
734 (\_ _ _ _ _ _ _ b _ _ _ _ -> _rhs b)
735 a
736
737caEntityMergable :: CommonAttrs -> Bool
738caEntityMergable
739 = \a -> case'CommonAttrs (\_ -> 'Bool) (\_ _ _ _ b _ _ _ _ _ _ _ -> _rhs b) a
740
741caFogOnly :: CommonAttrs -> Bool
742caFogOnly
743 = \a -> case'CommonAttrs (\_ -> 'Bool) (\_ _ _ _ _ b _ _ _ _ _ _ -> _rhs b) a
744
745caFogParms :: CommonAttrs -> ()
746caFogParms
747 = \a -> case'CommonAttrs (\_ -> ' ()) (\_ b _ _ _ _ _ _ _ _ _ _ -> _rhs b) a
748
749caIsSky :: CommonAttrs -> Bool
750caIsSky
751 = \a -> case'CommonAttrs (\_ -> 'Bool) (\_ _ _ _ _ _ _ _ _ _ _ b -> _rhs b) a
752
753caNoMipMaps :: CommonAttrs -> Bool
754caNoMipMaps
755 = \a -> case'CommonAttrs (\_ -> 'Bool) (\_ _ _ _ _ _ _ _ b _ _ _ -> _rhs b) a
756
757caPolygonOffset :: CommonAttrs -> Bool
758caPolygonOffset
759 = \a -> case'CommonAttrs (\_ -> 'Bool) (\_ _ _ _ _ _ _ _ _ b _ _ -> _rhs b) a
760
761caPortal :: CommonAttrs -> Bool
762caPortal
763 = \a -> case'CommonAttrs (\_ -> 'Bool) (\_ _ b _ _ _ _ _ _ _ _ _ -> _rhs b) a
764
765caSkyParms :: CommonAttrs -> ()
766caSkyParms
767 = \a -> case'CommonAttrs (\_ -> ' ()) (\b _ _ _ _ _ _ _ _ _ _ _ -> _rhs b) a
768
769caSort :: CommonAttrs -> Float
770caSort
771 = \a -> case'CommonAttrs (\_ -> 'Float) (\_ _ _ b _ _ _ _ _ _ _ _ -> _rhs b) a
772
773caStages :: CommonAttrs -> [StageAttrs]
774caStages
775 = \a -> case'CommonAttrs
776 (\_ -> ['StageAttrs])
777 (\_ _ _ _ _ _ _ _ _ _ b _ -> _rhs b)
778 a
779
780case'AlphaFunction
781 :: forall (a :: AlphaFunction -> Type)
782 -> a 'A_Gt0 -> a 'A_Lt128 -> a 'A_Ge128 -> forall (b :: AlphaFunction) -> a b
783case'AlphaFunction = \a b c d e -> <<case function of a type with 0 parameters>>
784
785case'AlphaGen
786 :: forall (a :: AlphaGen -> Type)
787 -> (forall (b :: Wave) -> a ('A_Wave b))
788 -> (forall (c :: Float) -> a ('A_Const c))
789 -> a 'A_Portal
790 -> a 'A_Identity
791 -> a 'A_Entity
792 -> a 'A_OneMinusEntity
793 -> a 'A_Vertex
794 -> a 'A_LightingSpecular -> a 'A_OneMinusVertex -> forall (d :: AlphaGen) -> a d
795case'AlphaGen
796 = \a b c d e f g h i j k -> <<case function of a type with 0 parameters>>
797
798case'Blending'
799 :: forall (a :: Blending' -> Type)
800 -> a 'B_DstAlpha
801 -> a 'B_DstColor
802 -> a 'B_One
803 -> a 'B_OneMinusDstAlpha
804 -> a 'B_OneMinusDstColor
805 -> a 'B_OneMinusSrcAlpha
806 -> a 'B_OneMinusSrcColor
807 -> a 'B_SrcAlpha
808 -> a 'B_SrcAlphaSaturate
809 -> a 'B_SrcColor -> a 'B_Zero -> forall (b :: Blending') -> a b
810case'Blending'
811 = \a b c d e f g h i j k l m -> <<case function of a type with 0 parameters>>
812
813case'CommonAttrs
814 :: forall (a :: CommonAttrs -> Type)
815 -> (forall (b :: ())
816 (c :: ())
817 (d :: Bool)
818 (e :: Float)
819 (f :: Bool)
820 (g :: Bool)
821 (h :: CullType)
822 (i :: [Deform]) (j :: Bool) (k :: Bool) (l :: [StageAttrs]) (m :: Bool)
823 -> a ('CommonAttrs b c d e f g h i j k l m))
824 -> forall (n :: CommonAttrs) -> a n
825case'CommonAttrs = \a b c -> <<case function of a type with 0 parameters>>
826
827case'CullType
828 :: forall (a :: CullType -> Type)
829 -> a 'CT_FrontSided
830 -> a 'CT_BackSided -> a 'CT_TwoSided -> forall (b :: CullType) -> a b
831case'CullType = \a b c d e -> <<case function of a type with 0 parameters>>
832
368case'Deform 833case'Deform
369 :: forall (a :: Deform -> Type) 834 :: forall (a :: Deform -> Type)
370 -> a 'D_AutoSprite 835 -> a 'D_AutoSprite
@@ -383,55 +848,23 @@ case'Deform
383 -> a 'D_Text7 848 -> a 'D_Text7
384 -> (forall (i :: Float) (j :: Wave) -> a ('D_Wave i j)) 849 -> (forall (i :: Float) (j :: Wave) -> a ('D_Wave i j))
385 -> forall (k :: Deform) -> a k 850 -> forall (k :: Deform) -> a k
386match'Deform :: forall (a :: Type -> Type) -> a Deform -> forall b -> a b -> a b 851case'Deform
387'CullType :: Type 852 = \a b c d e f g h i j k l m n o p q
388CT_FrontSided :: CullType 853 -> <<case function of a type with 0 parameters>>
389CT_BackSided :: CullType 854
390CT_TwoSided :: CullType 855case'DepthFunction
391case'CullType 856 :: forall (a :: DepthFunction -> Type)
392 :: forall (a :: CullType -> Type) 857 -> a 'D_Equal -> a 'D_Lequal -> forall (b :: DepthFunction) -> a b
393 -> a 'CT_FrontSided 858case'DepthFunction = \a b c d -> <<case function of a type with 0 parameters>>
394 -> a 'CT_BackSided -> a 'CT_TwoSided -> forall (b :: CullType) -> a b 859
395match'CullType 860case'Entity
396 :: forall (a :: Type -> Type) -> a CullType -> forall b -> a b -> a b 861 :: forall (a :: Entity -> Type)
397'Blending' :: Type 862 -> (forall (b :: Vec 4 Float)
398B_DstAlpha :: Blending' 863 (c :: Vec 4 Float) (d :: Vec 3 Float) (e :: Vec 4 Float)
399B_DstColor :: Blending' 864 -> a ('Entity b c d e))
400B_One :: Blending' 865 -> forall (f :: Entity) -> a f
401B_OneMinusDstAlpha :: Blending' 866case'Entity = \a b c -> <<case function of a type with 0 parameters>>
402B_OneMinusDstColor :: Blending' 867
403B_OneMinusSrcAlpha :: Blending'
404B_OneMinusSrcColor :: Blending'
405B_SrcAlpha :: Blending'
406B_SrcAlphaSaturate :: Blending'
407B_SrcColor :: Blending'
408B_Zero :: Blending'
409case'Blending'
410 :: forall (a :: Blending' -> Type)
411 -> a 'B_DstAlpha
412 -> a 'B_DstColor
413 -> a 'B_One
414 -> a 'B_OneMinusDstAlpha
415 -> a 'B_OneMinusDstColor
416 -> a 'B_OneMinusSrcAlpha
417 -> a 'B_OneMinusSrcColor
418 -> a 'B_SrcAlpha
419 -> a 'B_SrcAlphaSaturate
420 -> a 'B_SrcColor -> a 'B_Zero -> forall (b :: Blending') -> a b
421match'Blending'
422 :: forall (a :: Type -> Type) -> a Blending' -> forall b -> a b -> a b
423'RGBGen :: Type
424RGB_Wave :: Wave -> RGBGen
425RGB_Const :: Float -> Float -> Float -> RGBGen
426RGB_Identity :: RGBGen
427RGB_IdentityLighting :: RGBGen
428RGB_Entity :: RGBGen
429RGB_OneMinusEntity :: RGBGen
430RGB_ExactVertex :: RGBGen
431RGB_Vertex :: RGBGen
432RGB_LightingDiffuse :: RGBGen
433RGB_OneMinusVertex :: RGBGen
434RGB_Undefined :: RGBGen
435case'RGBGen 868case'RGBGen
436 :: forall (a :: RGBGen -> Type) 869 :: forall (a :: RGBGen -> Type)
437 -> (forall (b :: Wave) -> a ('RGB_Wave b)) 870 -> (forall (b :: Wave) -> a ('RGB_Wave b))
@@ -444,35 +877,32 @@ case'RGBGen
444 -> a 'RGB_Vertex 877 -> a 'RGB_Vertex
445 -> a 'RGB_LightingDiffuse 878 -> a 'RGB_LightingDiffuse
446 -> a 'RGB_OneMinusVertex -> a 'RGB_Undefined -> forall (f :: RGBGen) -> a f 879 -> a 'RGB_OneMinusVertex -> a 'RGB_Undefined -> forall (f :: RGBGen) -> a f
447match'RGBGen :: forall (a :: Type -> Type) -> a RGBGen -> forall b -> a b -> a b 880case'RGBGen
448'AlphaGen :: Type 881 = \a b c d e f g h i j k l m -> <<case function of a type with 0 parameters>>
449A_Wave :: Wave -> AlphaGen 882
450A_Const :: Float -> AlphaGen 883case'StageAttrs
451A_Portal :: AlphaGen 884 :: forall (a :: StageAttrs -> Type)
452A_Identity :: AlphaGen 885 -> (forall (b :: Maybe (Blending', Blending'))
453A_Entity :: AlphaGen 886 (c :: RGBGen)
454A_OneMinusEntity :: AlphaGen 887 (d :: AlphaGen)
455A_Vertex :: AlphaGen 888 (e :: TCGen)
456A_LightingSpecular :: AlphaGen 889 (f :: [TCMod])
457A_OneMinusVertex :: AlphaGen 890 (g :: StageTexture)
458case'AlphaGen 891 (h :: Bool)
459 :: forall (a :: AlphaGen -> Type) 892 (i :: DepthFunction) (j :: Maybe AlphaFunction) (k :: Bool) (l :: String)
460 -> (forall (b :: Wave) -> a ('A_Wave b)) 893 -> a ('StageAttrs b c d e f g h i j k l))
461 -> (forall (c :: Float) -> a ('A_Const c)) 894 -> forall (m :: StageAttrs) -> a m
462 -> a 'A_Portal 895case'StageAttrs = \a b c -> <<case function of a type with 0 parameters>>
463 -> a 'A_Identity 896
464 -> a 'A_Entity 897case'StageTexture
465 -> a 'A_OneMinusEntity 898 :: forall (a :: StageTexture -> Type)
466 -> a 'A_Vertex 899 -> (forall (b :: String) -> a ('ST_Map b))
467 -> a 'A_LightingSpecular -> a 'A_OneMinusVertex -> forall (d :: AlphaGen) -> a d 900 -> (forall (c :: String) -> a ('ST_ClampMap c))
468match'AlphaGen 901 -> (forall (d :: Float) (e :: [String]) -> a ('ST_AnimMap d e))
469 :: forall (a :: Type -> Type) -> a AlphaGen -> forall b -> a b -> a b 902 -> a 'ST_Lightmap -> a 'ST_WhiteImage -> forall (f :: StageTexture) -> a f
470'TCGen :: Type 903case'StageTexture
471TG_Base :: TCGen 904 = \a b c d e f g -> <<case function of a type with 0 parameters>>
472TG_Lightmap :: TCGen 905
473TG_Environment :: TCGen
474TG_Vector :: Vec 3 Float -> Vec 3 Float -> TCGen
475TG_Undefined :: TCGen
476case'TCGen 906case'TCGen
477 :: forall (a :: TCGen -> Type) 907 :: forall (a :: TCGen -> Type)
478 -> a 'TG_Base 908 -> a 'TG_Base
@@ -480,15 +910,8 @@ case'TCGen
480 -> a 'TG_Environment 910 -> a 'TG_Environment
481 -> (forall (b :: Vec 3 Float) (c :: Vec 3 Float) -> a ('TG_Vector b c)) 911 -> (forall (b :: Vec 3 Float) (c :: Vec 3 Float) -> a ('TG_Vector b c))
482 -> a 'TG_Undefined -> forall (d :: TCGen) -> a d 912 -> a 'TG_Undefined -> forall (d :: TCGen) -> a d
483match'TCGen :: forall (a :: Type -> Type) -> a TCGen -> forall b -> a b -> a b 913case'TCGen = \a b c d e f g -> <<case function of a type with 0 parameters>>
484'TCMod :: Type 914
485TM_EntityTranslate :: TCMod
486TM_Rotate :: Float -> TCMod
487TM_Scroll :: Float -> Float -> TCMod
488TM_Scale :: Float -> Float -> TCMod
489TM_Stretch :: Wave -> TCMod
490TM_Transform :: Float -> Float -> Float -> Float -> Float -> Float -> TCMod
491TM_Turb :: Float -> Float -> Float -> Float -> TCMod
492case'TCMod 915case'TCMod
493 :: forall (a :: TCMod -> Type) 916 :: forall (a :: TCMod -> Type)
494 -> a 'TM_EntityTranslate 917 -> a 'TM_EntityTranslate
@@ -502,109 +925,170 @@ case'TCMod
502 -> (forall (n :: Float) (o :: Float) (p :: Float) (q :: Float) 925 -> (forall (n :: Float) (o :: Float) (p :: Float) (q :: Float)
503 -> a ('TM_Turb n o p q)) 926 -> a ('TM_Turb n o p q))
504 -> forall (r :: TCMod) -> a r 927 -> forall (r :: TCMod) -> a r
505match'TCMod :: forall (a :: Type -> Type) -> a TCMod -> forall b -> a b -> a b 928case'TCMod = \a b c d e f g h i -> <<case function of a type with 0 parameters>>
506'StageTexture :: Type 929
507ST_Map :: String -> StageTexture 930case'Wave
508ST_ClampMap :: String -> StageTexture 931 :: forall (a :: Wave -> Type)
509ST_AnimMap :: Float -> [String] -> StageTexture 932 -> (forall (b :: WaveType) (c :: Float) (d :: Float) (e :: Float) (f :: Float)
510ST_Lightmap :: StageTexture 933 -> a ('Wave b c d e f))
511ST_WhiteImage :: StageTexture 934 -> forall (g :: Wave) -> a g
512case'StageTexture 935case'Wave = \a b c -> <<case function of a type with 0 parameters>>
513 :: forall (a :: StageTexture -> Type) 936
514 -> (forall (b :: String) -> a ('ST_Map b)) 937case'WaveType
515 -> (forall (c :: String) -> a ('ST_ClampMap c)) 938 :: forall (a :: WaveType -> Type)
516 -> (forall (d :: Float) (e :: [String]) -> a ('ST_AnimMap d e)) 939 -> a 'WT_Sin
517 -> a 'ST_Lightmap -> a 'ST_WhiteImage -> forall (f :: StageTexture) -> a f 940 -> a 'WT_Triangle
518match'StageTexture 941 -> a 'WT_Square
519 :: forall (a :: Type -> Type) -> a StageTexture -> forall b -> a b -> a b 942 -> a 'WT_Sawtooth
520'AlphaFunction :: Type 943 -> a 'WT_InverseSawtooth -> a 'WT_Noise -> forall (b :: WaveType) -> a b
521A_Gt0 :: AlphaFunction 944case'WaveType
522A_Lt128 :: AlphaFunction 945 = \a b c d e f g h -> <<case function of a type with 0 parameters>>
523A_Ge128 :: AlphaFunction 946
524case'AlphaFunction 947defaultCommonAttrs :: CommonAttrs
525 :: forall (a :: AlphaFunction -> Type) 948defaultCommonAttrs
526 -> a 'A_Gt0 -> a 'A_Lt128 -> a 'A_Ge128 -> forall (b :: AlphaFunction) -> a b 949 = _rhs
950 (CommonAttrs () () False 0.0 False False CT_FrontSided [] False False [] False)
951
952defaultStageAttrs :: StageAttrs
953defaultStageAttrs
954 = _rhs
955 (StageAttrs
956 Nothing
957 RGB_Undefined
958 A_Identity
959 TG_Undefined
960 []
961 ST_WhiteImage
962 True
963 D_Lequal
964 Nothing
965 False
966 "")
967
968eAmbientLight :: Entity -> VecS Float 4
969eAmbientLight = \a -> case'Entity (\_ -> 'VecS 'Float 4) (\b _ _ _ -> _rhs b) a
970
971eDirectedLight :: Entity -> VecS Float 4
972eDirectedLight = \a -> case'Entity (\_ -> 'VecS 'Float 4) (\_ b _ _ -> _rhs b) a
973
974eLightDir :: Entity -> VecS Float 3
975eLightDir = \a -> case'Entity (\_ -> 'VecS 'Float 3) (\_ _ b _ -> _rhs b) a
976
977eShaderRGBA :: Entity -> VecS Float 4
978eShaderRGBA = \a -> case'Entity (\_ -> 'VecS 'Float 4) (\_ _ _ b -> _rhs b) a
979
980identityLight :: Float
981identityLight = _rhs 1.0
982
527match'AlphaFunction 983match'AlphaFunction
528 :: forall (a :: Type -> Type) -> a AlphaFunction -> forall b -> a b -> a b 984 :: forall (a :: Type -> Type) -> a AlphaFunction -> forall b -> a b -> a b
529'DepthFunction :: Type 985match'AlphaFunction = \a b c d -> <<type case function>>
530D_Equal :: DepthFunction 986
531D_Lequal :: DepthFunction 987match'AlphaGen
532case'DepthFunction 988 :: forall (a :: Type -> Type) -> a AlphaGen -> forall b -> a b -> a b
533 :: forall (a :: DepthFunction -> Type) 989match'AlphaGen = \a b c d -> <<type case function>>
534 -> a 'D_Equal -> a 'D_Lequal -> forall (b :: DepthFunction) -> a b 990
991match'Blending'
992 :: forall (a :: Type -> Type) -> a Blending' -> forall b -> a b -> a b
993match'Blending' = \a b c d -> <<type case function>>
994
995match'CommonAttrs
996 :: forall (a :: Type -> Type) -> a CommonAttrs -> forall b -> a b -> a b
997match'CommonAttrs = \a b c d -> <<type case function>>
998
999match'CullType
1000 :: forall (a :: Type -> Type) -> a CullType -> forall b -> a b -> a b
1001match'CullType = \a b c d -> <<type case function>>
1002
1003match'Deform :: forall (a :: Type -> Type) -> a Deform -> forall b -> a b -> a b
1004match'Deform = \a b c d -> <<type case function>>
1005
535match'DepthFunction 1006match'DepthFunction
536 :: forall (a :: Type -> Type) -> a DepthFunction -> forall b -> a b -> a b 1007 :: forall (a :: Type -> Type) -> a DepthFunction -> forall b -> a b -> a b
537'StageAttrs :: Type 1008match'DepthFunction = \a b c d -> <<type case function>>
538StageAttrs 1009
539 :: Maybe (Blending', Blending') 1010match'Entity :: forall (a :: Type -> Type) -> a Entity -> forall b -> a b -> a b
540 -> RGBGen 1011match'Entity = \a b c d -> <<type case function>>
541 -> AlphaGen 1012
542 -> TCGen 1013match'RGBGen :: forall (a :: Type -> Type) -> a RGBGen -> forall b -> a b -> a b
543 -> [TCMod] 1014match'RGBGen = \a b c d -> <<type case function>>
544 -> StageTexture 1015
545 -> Bool -> DepthFunction -> Maybe AlphaFunction -> Bool -> String -> StageAttrs
546case'StageAttrs
547 :: forall (a :: StageAttrs -> Type)
548 -> (forall (b :: Maybe (Blending', Blending'))
549 (c :: RGBGen)
550 (d :: AlphaGen)
551 (e :: TCGen)
552 (f :: [TCMod])
553 (g :: StageTexture)
554 (h :: Bool)
555 (i :: DepthFunction) (j :: Maybe AlphaFunction) (k :: Bool) (l :: String)
556 -> a ('StageAttrs b c d e f g h i j k l))
557 -> forall (m :: StageAttrs) -> a m
558match'StageAttrs 1016match'StageAttrs
559 :: forall (a :: Type -> Type) -> a StageAttrs -> forall b -> a b -> a b 1017 :: forall (a :: Type -> Type) -> a StageAttrs -> forall b -> a b -> a b
1018match'StageAttrs = \a b c d -> <<type case function>>
1019
1020match'StageTexture
1021 :: forall (a :: Type -> Type) -> a StageTexture -> forall b -> a b -> a b
1022match'StageTexture = \a b c d -> <<type case function>>
1023
1024match'TCGen :: forall (a :: Type -> Type) -> a TCGen -> forall b -> a b -> a b
1025match'TCGen = \a b c d -> <<type case function>>
1026
1027match'TCMod :: forall (a :: Type -> Type) -> a TCMod -> forall b -> a b -> a b
1028match'TCMod = \a b c d -> <<type case function>>
1029
1030match'Wave :: forall (a :: Type -> Type) -> a Wave -> forall b -> a b -> a b
1031match'Wave = \a b c d -> <<type case function>>
1032
1033match'WaveType
1034 :: forall (a :: Type -> Type) -> a WaveType -> forall b -> a b -> a b
1035match'WaveType = \a b c d -> <<type case function>>
1036
1037saAlphaFunc :: StageAttrs -> Maybe AlphaFunction
1038saAlphaFunc
1039 = \a -> case'StageAttrs
1040 (\_ -> 'Maybe 'AlphaFunction)
1041 (\_ _ _ _ _ _ _ _ b _ _ -> _rhs b)
1042 a
1043
1044saAlphaGen :: StageAttrs -> AlphaGen
1045saAlphaGen
1046 = \a -> case'StageAttrs (\_ -> 'AlphaGen) (\_ _ b _ _ _ _ _ _ _ _ -> _rhs b) a
1047
560saBlend :: StageAttrs -> Maybe (Blending', Blending') 1048saBlend :: StageAttrs -> Maybe (Blending', Blending')
1049saBlend
1050 = \a -> case'StageAttrs
1051 (\_ -> 'Maybe ' ('Blending', 'Blending'))
1052 (\b _ _ _ _ _ _ _ _ _ _ -> _rhs b)
1053 a
1054
1055saDepthFunc :: StageAttrs -> DepthFunction
1056saDepthFunc
1057 = \a -> case'StageAttrs
1058 (\_ -> 'DepthFunction)
1059 (\_ _ _ _ _ _ _ b _ _ _ -> _rhs b)
1060 a
1061
1062saDepthMaskExplicit :: StageAttrs -> Bool
1063saDepthMaskExplicit
1064 = \a -> case'StageAttrs (\_ -> 'Bool) (\_ _ _ _ _ _ _ _ _ b _ -> _rhs b) a
1065
1066saDepthWrite :: StageAttrs -> Bool
1067saDepthWrite
1068 = \a -> case'StageAttrs (\_ -> 'Bool) (\_ _ _ _ _ _ b _ _ _ _ -> _rhs b) a
1069
561saRGBGen :: StageAttrs -> RGBGen 1070saRGBGen :: StageAttrs -> RGBGen
562saAlphaGen :: StageAttrs -> AlphaGen 1071saRGBGen
1072 = \a -> case'StageAttrs (\_ -> 'RGBGen) (\_ b _ _ _ _ _ _ _ _ _ -> _rhs b) a
1073
563saTCGen :: StageAttrs -> TCGen 1074saTCGen :: StageAttrs -> TCGen
1075saTCGen
1076 = \a -> case'StageAttrs (\_ -> 'TCGen) (\_ _ _ b _ _ _ _ _ _ _ -> _rhs b) a
1077
564saTCMod :: StageAttrs -> [TCMod] 1078saTCMod :: StageAttrs -> [TCMod]
1079saTCMod
1080 = \a -> case'StageAttrs (\_ -> ['TCMod]) (\_ _ _ _ b _ _ _ _ _ _ -> _rhs b) a
1081
565saTexture :: StageAttrs -> StageTexture 1082saTexture :: StageAttrs -> StageTexture
566saDepthWrite :: StageAttrs -> Bool 1083saTexture
567saDepthFunc :: StageAttrs -> DepthFunction 1084 = \a -> case'StageAttrs
568saAlphaFunc :: StageAttrs -> Maybe AlphaFunction 1085 (\_ -> 'StageTexture)
569saDepthMaskExplicit :: StageAttrs -> Bool 1086 (\_ _ _ _ _ b _ _ _ _ _ -> _rhs b)
1087 a
1088
570saTextureUniform :: StageAttrs -> String 1089saTextureUniform :: StageAttrs -> String
571defaultStageAttrs :: StageAttrs 1090saTextureUniform
572'CommonAttrs :: Type 1091 = \a -> case'StageAttrs (\_ -> 'String) (\_ _ _ _ _ _ _ _ _ _ b -> _rhs b) a
573CommonAttrs
574 :: ()
575 -> ()
576 -> Bool
577 -> Float
578 -> Bool
579 -> Bool
580 -> CullType -> [Deform] -> Bool -> Bool -> [StageAttrs] -> Bool -> CommonAttrs
581case'CommonAttrs
582 :: forall (a :: CommonAttrs -> Type)
583 -> (forall (b :: ())
584 (c :: ())
585 (d :: Bool)
586 (e :: Float)
587 (f :: Bool)
588 (g :: Bool)
589 (h :: CullType)
590 (i :: [Deform]) (j :: Bool) (k :: Bool) (l :: [StageAttrs]) (m :: Bool)
591 -> a ('CommonAttrs b c d e f g h i j k l m))
592 -> forall (n :: CommonAttrs) -> a n
593match'CommonAttrs
594 :: forall (a :: Type -> Type) -> a CommonAttrs -> forall b -> a b -> a b
595caSkyParms :: CommonAttrs -> ()
596caFogParms :: CommonAttrs -> ()
597caPortal :: CommonAttrs -> Bool
598caSort :: CommonAttrs -> Float
599caEntityMergable :: CommonAttrs -> Bool
600caFogOnly :: CommonAttrs -> Bool
601caCull :: CommonAttrs -> CullType
602caDeformVertexes :: CommonAttrs -> [Deform]
603caNoMipMaps :: CommonAttrs -> Bool
604caPolygonOffset :: CommonAttrs -> Bool
605caStages :: CommonAttrs -> [StageAttrs]
606caIsSky :: CommonAttrs -> Bool
607defaultCommonAttrs :: CommonAttrs
608------------ tooltips 1092------------ tooltips
609testdata/Material.lc 7:18-7:23 1093testdata/Material.lc 7:18-7:23
610 Type 1094 Type
diff --git a/testdata/Prelude.out b/testdata/Prelude.out
index 90f52a55..556b39e2 100644
--- a/testdata/Prelude.out
+++ b/testdata/Prelude.out
@@ -12,7 +12,7 @@ infixr 3 ***
12 12
13infixr 0 $ 13infixr 0 $
14 14
15const = \(a :: _) _ -> _rhs a 15const = \(a :: _) (_ :: _) -> _rhs a
16 16
17otherwise = _rhs True 17otherwise = _rhs True
18 18
@@ -45,10 +45,10 @@ pi = _rhs 3.141592653589793
45zip :: forall (a :: _) (b :: _) . [a] -> [b] -> [(a, b)] 45zip :: forall (a :: _) (b :: _) . [a] -> [b] -> [(a, b)]
46zip 46zip
47 = \(a :: _) (b :: _) -> case'List 47 = \(a :: _) (b :: _) -> case'List
48 (\_ -> _) 48 (\(_ :: _) -> _)
49 (_rhs []) 49 (_rhs [])
50 (\(c :: _) (d :: _) -> case'List 50 (\(c :: _) (d :: _) -> case'List
51 (\_ -> _) 51 (\(_ :: _) -> _)
52 (_rhs []) 52 (_rhs [])
53 (\(e :: _) (f :: _) -> _rhs ((c, e) : zip d f)) 53 (\(e :: _) (f :: _) -> _rhs ((c, e) : zip d f))
54 b) 54 b)
@@ -57,7 +57,7 @@ zip
57unzip :: forall (a :: _) (b :: _) . [(a, b)] -> ([a], [b]) 57unzip :: forall (a :: _) (b :: _) . [(a, b)] -> ([a], [b])
58unzip 58unzip
59 = \(a :: _) -> case'List 59 = \(a :: _) -> case'List
60 (\_ -> _) 60 (\(_ :: _) -> _)
61 (_rhs ([], [])) 61 (_rhs ([], []))
62 (\(b :: _) (c :: _) -> hlistConsCase 62 (\(b :: _) (c :: _) -> hlistConsCase
63 _ 63 _
@@ -72,14 +72,20 @@ unzip
72 = _rhs 72 = _rhs
73 ((\(k :: _) -> hlistConsCase 73 ((\(k :: _) -> hlistConsCase
74 _ 74 _
75 (\_ (l :: _) -> hlistConsCase _ (\(m :: _) (n :: _) -> hlistNilCase _ m n) l) 75 (\(_ :: _) (l :: _) -> hlistConsCase
76 _
77 (\(m :: _) (n :: _) -> hlistNilCase _ m n)
78 l)
76 k) 79 k)
77 h); 80 h);
78 j 81 j
79 = _rhs 82 = _rhs
80 ((\(o :: _) -> hlistConsCase 83 ((\(o :: _) -> hlistConsCase
81 _ 84 _
82 (\(p :: _) (q :: _) -> hlistConsCase _ (\_ (r :: _) -> hlistNilCase _ p r) q) 85 (\(p :: _) (q :: _) -> hlistConsCase
86 _
87 (\(_ :: _) (r :: _) -> hlistNilCase _ p r)
88 q)
83 o) 89 o)
84 h) 90 h)
85 in (d : j, f : i)) 91 in (d : j, f : i))
@@ -90,36 +96,41 @@ unzip
90 96
91filter 97filter
92 = \(a :: _) (b :: _) -> case'List 98 = \(a :: _) (b :: _) -> case'List
93 (\_ -> _) 99 (\(_ :: _) -> _)
94 (_rhs []) 100 (_rhs [])
95 (\(c :: _) (d :: _) -> _rhs 101 (\(c :: _) (d :: _) -> _rhs
96 ((\(e :: _) -> case'Bool (\_ -> _) (filter a d) (c : filter a d) e) (a c))) 102 ((\(e :: _) -> case'Bool (\(_ :: _) -> _) (filter a d) (c : filter a d) e)
103 (a c)))
97 b 104 b
98 105
99tail :: forall (a :: _) . [a] -> [a] 106tail :: forall (a :: _) . [a] -> [a]
100tail 107tail
101 = \(a :: _) -> case'List (\_ -> _) (_rhs undefined) (\_ (b :: _) -> _rhs b) a 108 = \(a :: _) -> case'List
109 (\(_ :: _) -> _)
110 (_rhs undefined)
111 (\(_ :: _) (b :: _) -> _rhs b)
112 a
102 113
103pairs :: forall (a :: _) . [a] -> [(a, a)] 114pairs :: forall (a :: _) . [a] -> [(a, a)]
104pairs = \(a :: _) -> _rhs (zip a (tail a)) 115pairs = \(a :: _) -> _rhs (zip a (tail a))
105 116
106foldl' 117foldl'
107 = \(a :: _) (b :: _) (c :: _) -> case'List 118 = \(a :: _) (b :: _) (c :: _) -> case'List
108 (\_ -> _) 119 (\(_ :: _) -> _)
109 (_rhs b) 120 (_rhs b)
110 (\(d :: _) (e :: _) -> _rhs (foldl' a (a b d) e)) 121 (\(d :: _) (e :: _) -> _rhs (foldl' a (a b d) e))
111 c 122 c
112 123
113foldr1 124foldr1
114 = \(a :: _) (b :: _) -> case'List 125 = \(a :: _) (b :: _) -> case'List
115 (\_ -> _) 126 (\(_ :: _) -> _)
116 (_rhs undefined) 127 (_rhs undefined)
117 (\(c :: _) (d :: _) -> _rhs (foldr a c d)) 128 (\(c :: _) (d :: _) -> _rhs (foldr a c d))
118 b 129 b
119 130
120split 131split
121 = \(a :: _) -> case'List 132 = \(a :: _) -> case'List
122 (\_ -> _) 133 (\(_ :: _) -> _)
123 (_rhs ([], [])) 134 (_rhs ([], []))
124 (\(b :: _) (c :: _) -> _rhs 135 (\(b :: _) (c :: _) -> _rhs
125 let 136 let
@@ -128,14 +139,20 @@ split
128 = _rhs 139 = _rhs
129 ((\(g :: _) -> hlistConsCase 140 ((\(g :: _) -> hlistConsCase
130 _ 141 _
131 (\_ (h :: _) -> hlistConsCase _ (\(i :: _) (j :: _) -> hlistNilCase _ i j) h) 142 (\(_ :: _) (h :: _) -> hlistConsCase
143 _
144 (\(i :: _) (j :: _) -> hlistNilCase _ i j)
145 h)
132 g) 146 g)
133 d); 147 d);
134 f 148 f
135 = _rhs 149 = _rhs
136 ((\(k :: _) -> hlistConsCase 150 ((\(k :: _) -> hlistConsCase
137 _ 151 _
138 (\(l :: _) (m :: _) -> hlistConsCase _ (\_ (n :: _) -> hlistNilCase _ l n) m) 152 (\(l :: _) (m :: _) -> hlistConsCase
153 _
154 (\(_ :: _) (n :: _) -> hlistNilCase _ l n)
155 m)
139 k) 156 k)
140 d) 157 d)
141 in (b : e, f)) 158 in (b : e, f))
@@ -143,14 +160,14 @@ split
143 160
144mergeBy 161mergeBy
145 = \(a :: _) (b :: _) (c :: _) -> case'List 162 = \(a :: _) (b :: _) (c :: _) -> case'List
146 (\_ -> _) 163 (\(_ :: _) -> _)
147 (_rhs c) 164 (_rhs c)
148 (\(d :: _) (e :: _) -> case'List 165 (\(d :: _) (e :: _) -> case'List
149 (\_ -> _) 166 (\(_ :: _) -> _)
150 (_rhs b) 167 (_rhs b)
151 (\(f :: _) (g :: _) -> _rhs 168 (\(f :: _) (g :: _) -> _rhs
152 ((\(h :: _) -> case'Ordering 169 ((\(h :: _) -> case'Ordering
153 (\_ -> _) 170 (\(_ :: _) -> _)
154 (d : mergeBy a e (f : g)) 171 (d : mergeBy a e (f : g))
155 (f : mergeBy a (d : e) g) 172 (f : mergeBy a (d : e) g)
156 (f : mergeBy a (d : e) g) 173 (f : mergeBy a (d : e) g)
@@ -161,12 +178,13 @@ mergeBy
161 178
162sortBy 179sortBy
163 = \(a :: _) (b :: _) -> case'List 180 = \(a :: _) (b :: _) -> case'List
164 (\_ -> _) 181 (\(_ :: _) -> _)
165 (_rhs []) 182 (_rhs [])
166 (\(c :: _) (d :: _) -> case'List 183 (\(c :: _) (d :: _) -> case'List
167 (\_ -> _) 184 (\(_ :: _) -> _)
168 (_rhs [c]) 185 (_rhs [c])
169 (\_ _ -> _rhs (uncurry (mergeBy a) ((sortBy a *** sortBy a) (split b)))) 186 (\(_ :: _) (_ :: _) -> _rhs
187 (uncurry (mergeBy a) ((sortBy a *** sortBy a) (split b))))
170 d) 188 d)
171 b 189 b
172 190
@@ -178,63 +196,64 @@ fst
178 _ 196 _
179 (\(b :: _) (c :: _) -> hlistConsCase 197 (\(b :: _) (c :: _) -> hlistConsCase
180 _ 198 _
181 (\_ (d :: _) -> hlistNilCase _ (_rhs b) d) 199 (\(_ :: _) (d :: _) -> hlistNilCase _ (_rhs b) d)
182 c) 200 c)
183 a 201 a
184 202
185snd 203snd
186 = \(a :: _) -> hlistConsCase 204 = \(a :: _) -> hlistConsCase
187 _ 205 _
188 (\_ (b :: _) -> hlistConsCase 206 (\(_ :: _) (b :: _) -> hlistConsCase
189 _ 207 _
190 (\(c :: _) (d :: _) -> hlistNilCase _ (_rhs c) d) 208 (\(c :: _) (d :: _) -> hlistNilCase _ (_rhs c) d)
191 b) 209 b)
192 a 210 a
193 211
194(|||) = \(a :: _) (b :: _) -> case'Bool (\_ -> _) (_rhs b) (_rhs True) a 212(|||) = \(a :: _) (b :: _) -> case'Bool (\(_ :: _) -> _) (_rhs b) (_rhs True) a
195 213
196infixr 2 ||| 214infixr 2 |||
197 215
198(&&&) = \(a :: _) (b :: _) -> case'Bool (\_ -> _) (_rhs False) (_rhs b) a 216(&&&) = \(a :: _) (b :: _) -> case'Bool (\(_ :: _) -> _) (_rhs False) (_rhs b) a
199 217
200infixr 3 &&& 218infixr 3 &&&
201 219
202data RecItem :: Type where 220data RecItem :: Type where
203 RecItem :: String -> Type -> RecItem 221 RecItem :: String -> Type -> RecItem
204 222
205recItemType = \(a :: _) -> case'RecItem (\_ -> _) (\_ (b :: _) -> _rhs b) a 223recItemType
224 = \(a :: _) -> case'RecItem (\(_ :: _) -> _) (\(_ :: _) (b :: _) -> _rhs b) a
206 225
207data RecordC (_ :: [RecItem]) :: Type where 226data RecordC (_ :: [RecItem]) :: Type where
208 RecordCons :: forall (a :: [RecItem]) . HList (map recItemType a) -> RecordC a 227 RecordCons :: forall (a :: [RecItem]) . HList (map recItemType a) -> RecordC a
209 228
210isKeyC 229isKeyC
211 = \(a :: _) (b :: _) (c :: _) -> case'List 230 = \(a :: _) (b :: _) (c :: _) -> case'List
212 (\_ -> _) 231 (\(_ :: _) -> _)
213 (_rhs ('CEmpty "")) 232 (_rhs ('CEmpty ""))
214 (\(d :: _) (e :: _) -> case'RecItem 233 (\(d :: _) (e :: _) -> case'RecItem
215 (\_ -> _) 234 (\(_ :: _) -> _)
216 (\(f :: _) (g :: _) -> _rhs 235 (\(f :: _) (g :: _) -> _rhs
217 (primIfThenElse (a == f) (b `'EqCTt` g) (isKeyC a b e))) 236 (primIfThenElse (a == f) (b `'EqCTt` g) (isKeyC a b e)))
218 d) 237 d)
219 c 238 c
220 239
221fstTup = _rhs (hlistConsCase (_ :: _) \(a :: _) _ -> a) 240fstTup = _rhs (hlistConsCase (_ :: _) \(a :: _) (_ :: _) -> a)
222 241
223sndTup = _rhs (hlistConsCase (_ :: _) \_ (a :: _) -> a) 242sndTup = _rhs (hlistConsCase (_ :: _) \(_ :: _) (a :: _) -> a)
224 243
225project 244project
226 :: forall (a :: _) (b :: [RecItem]) 245 :: forall (a :: _) (b :: [RecItem])
227 . forall (c :: String) -> isKeyC c a b => RecordC b -> a 246 . forall (c :: String) -> isKeyC c a b => RecordC b -> a
228project 247project
229 = \ @(a :: _) @(b :: _) (c :: _) @_ (d :: _) -> case'List 248 = \ @(a :: _) @(b :: _) (c :: _) @(_ :: _) (d :: _) -> case'List
230 (\_ -> _) 249 (\(_ :: _) -> _)
231 (_rhs undefined) 250 (_rhs undefined)
232 (\(e :: _) (f :: _) -> case'RecItem 251 (\(e :: _) (f :: _) -> case'RecItem
233 (\_ -> _) 252 (\(_ :: _) -> _)
234 (\(g :: _) _ -> case'RecordC 253 (\(g :: _) (_ :: _) -> case'RecordC
235 (\_ -> _) 254 (\(_ :: _) -> _)
236 (\(h :: _) -> case'Bool 255 (\(h :: _) -> case'Bool
237 (\_ -> _) 256 (\(_ :: _) -> _)
238 (_rhs 257 (_rhs
239 (project 258 (project
240 @a 259 @a
@@ -632,7 +651,7 @@ scale = \(a :: _) (b :: _) -> _rhs (b * V4 a a a 1.0)
632fromTo :: Float -> Float -> [Float] 651fromTo :: Float -> Float -> [Float]
633fromTo 652fromTo
634 = \(a :: _) (b :: _) -> case'Bool 653 = \(a :: _) (b :: _) -> case'Bool
635 (\_ -> _) 654 (\(_ :: _) -> _)
636 (_rhs (a : fromTo (a + fromInt 1) b)) 655 (_rhs (a : fromTo (a + fromInt 1) b))
637 (_rhs []) 656 (_rhs [])
638 (a > b) 657 (a > b)
@@ -640,227 +659,1192 @@ fromTo
640(!!) :: forall (a :: _) . [a] -> Int -> a 659(!!) :: forall (a :: _) . [a] -> Int -> a
641(!!) 660(!!)
642 = \(a :: _) (b :: _) -> case'List 661 = \(a :: _) (b :: _) -> case'List
643 (\_ -> _) 662 (\(_ :: _) -> _)
644 (_rhs undefined) 663 (_rhs undefined)
645 (\(c :: _) (d :: _) -> case'Bool 664 (\(c :: _) (d :: _) -> case'Bool
646 (\_ -> _) 665 (\(_ :: _) -> _)
647 (_rhs (d !! (b - fromInt 1))) 666 (_rhs (d !! (b - fromInt 1)))
648 (_rhs c) 667 (_rhs c)
649 (fromInt 0 == b)) 668 (fromInt 0 == b))
650 a 669 a
651------------ trace 670------------ core code
652const :: forall a b . a -> b -> a 671!! :: forall a . [a] -> Int -> a
653otherwise :: Bool 672!!
654(&) :: forall a b . a -> (a -> b) -> b 673 = primFix
655($) :: forall a b . (a -> b) -> a -> b 674 (forall a . [a] -> 'Int -> a)
656(.) :: forall a b c . (b -> c) -> (a -> b) -> a -> c 675 \b c d e -> case'List
657uncurry :: forall a b c . (a -> c -> b) -> (a, c) -> b 676 (\_ -> c)
658(***) :: forall a b c d . (a -> c) -> (b -> d) -> (a, b) -> (c, d) 677 (_rhs (undefined c))
659pi :: Float 678 (\f g -> case'Bool
660zip :: forall a b . [a] -> [b] -> [(a, b)] 679 (\_ -> c)
661unzip :: forall a b . [(a, b)] -> ([a], [b]) 680 (_rhs (b c g (PrimSub 'Int TT e 1)))
662filter :: forall a . (a -> Bool) -> [a] -> [a] 681 (_rhs f)
663tail :: forall a . [a] -> [a] 682 (isEQ (primCompareInt 0 e)))
664pairs :: forall a . [a] -> [(a, a)] 683 d
665foldl' :: forall a b . (a -> b -> a) -> a -> [b] -> a 684
666foldr1 :: forall a . (a -> a -> a) -> [a] -> a 685$ :: forall a b . (a -> b) -> a -> b
667split :: forall a . [a] -> ([a], [a]) 686$ = \_ _ -> _rhs \a b -> a b
668mergeBy :: forall a . (a -> a -> Ordering) -> [a] -> [a] -> [a] 687
669sortBy :: forall a . (a -> a -> Ordering) -> [a] -> [a] 688%
670iterate :: forall a . (a -> a) -> a -> [a] 689 :: forall a (b :: Nat)
671fst :: forall a b . (a, b) -> a 690 . Num a => VecScalar b a -> VecScalar b a -> VecScalar b a
672snd :: forall a b . (a, b) -> b 691% = \a b c d e -> _rhs (PrimMod a ('VecScalar b a) b c TT d e)
673(|||) :: Bool -> Bool -> Bool 692
674(&&&) :: Bool -> Bool -> Bool 693%! :: forall a (b :: Nat) . Num a => VecScalar b a -> a -> VecScalar b a
694%! = \a b c d e -> _rhs (PrimModS a ('VecScalar b a) b c TT d e)
695
696& :: forall a b . a -> (a -> b) -> b
697& = \_ _ a b -> _rhs (b a)
698
699&& :: Bool -> Bool -> Bool
700&& = \a b -> _rhs (PrimAnd a b)
701
702&&& :: Bool -> Bool -> Bool
703&&& = \a b -> case'Bool (\_ -> 'Bool) (_rhs False) (_rhs b) a
704
675'RecItem :: Type 705'RecItem :: Type
706'RecItem = <<type constructor with 0 indices; constructors: RecItem>>
707
708'RecordC :: [RecItem] -> Type
709'RecordC = <<type constructor with 0 indices; constructors: RecordCons>>
710
711* :: forall a . Num (MatVecScalarElem a) => a -> a -> a
712* = \a b c d -> _rhs (PrimMul a b c d)
713
714*! :: forall a . Num (MatVecScalarElem a) => a -> MatVecScalarElem a -> a
715*! = \a b c d -> _rhs (PrimMulS ('MatVecScalarElem a) a TT b c d)
716
717*** :: forall a b c d . (a -> c) -> (b -> d) -> (a, b) -> (c, d)
718***
719 = \a b c d e f g -> hlistConsCase
720 a
721 [b]
722 ' (c, d)
723 (\h i -> hlistConsCase
724 b
725 []
726 ' (c, d)
727 (\j k -> hlistNilCase ' (c, d) (_rhs (e h, f j)) k)
728 i)
729 g
730
731*. :: forall (a :: Nat) (b :: Nat) c . Mat a b c -> VecS c b -> Vec a c
732*. = \a b c d e -> _rhs (PrimMulMatVec a b c d e)
733
734+ :: forall a . Num (MatVecScalarElem a) => a -> a -> a
735+ = \a b c d -> _rhs (PrimAdd a b c d)
736
737+! :: forall a . Num (MatVecScalarElem a) => a -> MatVecScalarElem a -> a
738+! = \a b c d -> _rhs (PrimAddS ('MatVecScalarElem a) a TT b c d)
739
740- :: forall a . Num (MatVecScalarElem a) => a -> a -> a
741- = \a b c d -> _rhs (PrimSub a b c d)
742
743-! :: forall a . Num (MatVecScalarElem a) => a -> MatVecScalarElem a -> a
744-! = \a b c d -> _rhs (PrimSubS ('MatVecScalarElem a) a TT b c d)
745
746. :: forall a b c . (b -> c) -> (a -> b) -> a -> c
747. = \_ _ _ -> _rhs \a b c -> a (b c)
748
749.* :: forall (a :: Nat) b (c :: Nat) . VecS b a -> Mat a c b -> Vec c b
750.* = \a b c d e -> _rhs (PrimMulVecMat a b c d e)
751
752.*.
753 :: forall (a :: Nat) (b :: Nat) c (d :: Nat)
754 . Mat a b c -> Mat b d c -> Mat a d c
755.*. = \a b c d e f -> _rhs (PrimMulMatMat a b c d e f)
756
757/
758 :: forall a (b :: Nat)
759 . Num a => VecScalar b a -> VecScalar b a -> VecScalar b a
760/ = \a b c d e -> _rhs (PrimDiv a ('VecScalar b a) b c TT d e)
761
762/! :: forall a (b :: Nat) . Num a => VecScalar b a -> a -> VecScalar b a
763/! = \a b c d e -> _rhs (PrimDivS a ('VecScalar b a) b c TT d e)
764
765/= :: forall a . a -> a -> Bool
766/= = \a b c -> _rhs (PrimNotEqual a ('MatVecScalarElem a) TT b c)
767
768<
769 :: forall (a :: Nat) b
770 . Num b => VecScalar a b -> VecScalar a b -> VecScalar a Bool
771<
772 = \a b c d e -> _rhs
773 (PrimLessThan ('VecScalar a b) a b ('VecScalar a 'Bool) c TT TT d e)
774
775<=
776 :: forall (a :: Nat) b
777 . Num b => VecScalar a b -> VecScalar a b -> VecScalar a Bool
778<=
779 = \a b c d e -> _rhs
780 (PrimLessThanEqual ('VecScalar a b) a b ('VecScalar a 'Bool) c TT TT d e)
781
782>
783 :: forall (a :: Nat) b
784 . Num b => VecScalar a b -> VecScalar a b -> VecScalar a Bool
785>
786 = \a b c d e -> _rhs
787 (PrimGreaterThan ('VecScalar a b) a b ('VecScalar a 'Bool) c TT TT d e)
788
789>=
790 :: forall (a :: Nat) b
791 . Num b => VecScalar a b -> VecScalar a b -> VecScalar a Bool
792>=
793 = \a b c d e -> _rhs
794 (PrimGreaterThanEqual ('VecScalar a b) a b ('VecScalar a 'Bool) c TT TT d e)
795
676RecItem :: String -> Type -> RecItem 796RecItem :: String -> Type -> RecItem
797RecItem = <<0th constructor of 'RecItem>>
798
799RecordCons
800 :: forall (a :: [RecItem]) . HList (map RecItem Type recItemType a) -> RecordC a
801RecordCons = <<0th constructor of 'RecordC>>
802
803abs :: forall a b (c :: Nat) . (Signed a, b ~ VecScalar c a) => b -> b
804abs = _rhs \a b c d e f -> PrimAbs a b c d e f
805
806acos :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a
807acos = _rhs \a b c d -> PrimACos a b c d
808
809acosh :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a
810acosh = _rhs \a b c d -> PrimACosH a b c d
811
812all :: forall (a :: Nat) . VecScalar a Bool -> Bool
813all = \a b -> _rhs (PrimAll a b)
814
815any :: forall (a :: Nat) . VecScalar a Bool -> Bool
816any = \a b -> _rhs (PrimAny a b)
817
818aqua :: VecS Float 4
819aqua = _rhs (V4 0.0 1.0 1.0 1.0)
820
821asin :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a
822asin = _rhs \a b c d -> PrimASin a b c d
823
824asinh :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a
825asinh = _rhs \a b c d -> PrimASinH a b c d
826
827atan :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a
828atan = _rhs \a b c d -> PrimATan a b c d
829
830atan2 :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a -> a
831atan2 = _rhs \a b c d e -> PrimATan2 a b c d e
832
833atanh :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a
834atanh = _rhs \a b c d -> PrimATanH a b c d
835
836bAnd :: forall a b (c :: Nat) . (Integral a, b ~ VecScalar c a) => b -> b -> b
837bAnd = _rhs \a b c d e f g -> PrimBAnd a b c d e f g
838
839bAndS :: forall a b (c :: Nat) . (Integral a, b ~ VecScalar c a) => b -> a -> b
840bAndS = _rhs \a b c d e f g -> PrimBAndS a b c d e f g
841
842bNot :: forall a b (c :: Nat) . (Integral a, b ~ VecScalar c a) => b -> b
843bNot = _rhs \a b c d e f -> PrimBNot a b c d e f
844
845bOr :: forall a b (c :: Nat) . (Integral a, b ~ VecScalar c a) => b -> b -> b
846bOr = _rhs \a b c d e f g -> PrimBOr a b c d e f g
847
848bOrS :: forall a b (c :: Nat) . (Integral a, b ~ VecScalar c a) => b -> a -> b
849bOrS = _rhs \a b c d e f g -> PrimBOrS a b c d e f g
850
851bXor :: forall a b (c :: Nat) . (Integral a, b ~ VecScalar c a) => b -> b -> b
852bXor = _rhs \a b c d e f g -> PrimBXor a b c d e f g
853
854bXorS :: forall a b (c :: Nat) . (Integral a, b ~ VecScalar c a) => b -> a -> b
855bXorS = _rhs \a b c d e f g -> PrimBXorS a b c d e f g
856
857black :: VecS Float 4
858black = _rhs (V4 0.0 0.0 0.0 1.0)
859
860blue :: VecS Float 4
861blue = _rhs (V4 0.0 0.0 1.0 1.0)
862
677case'RecItem 863case'RecItem
678 :: forall (a :: RecItem -> Type) 864 :: forall (a :: RecItem -> Type)
679 -> (forall (b :: String) c -> a ('RecItem b c)) -> forall (d :: RecItem) -> a d 865 -> (forall (b :: String) c -> a ('RecItem b c)) -> forall (d :: RecItem) -> a d
680match'RecItem 866case'RecItem = \a b c -> <<case function of a type with 0 parameters>>
681 :: forall (a :: Type -> Type) -> a RecItem -> forall b -> a b -> a b 867
682recItemType :: RecItem -> Type
683'RecordC :: [RecItem] -> Type
684RecordCons
685 :: forall (a :: [RecItem]) . HList (map RecItem Type recItemType a) -> RecordC a
686case'RecordC 868case'RecordC
687 :: forall (a :: [RecItem]) 869 :: forall (a :: [RecItem])
688 . forall (b :: RecordC a -> Type) 870 . forall (b :: RecordC a -> Type)
689 -> (forall (c :: HList (map RecItem Type recItemType a)) -> b ('RecordCons c)) 871 -> (forall (c :: HList (map RecItem Type recItemType a)) -> b ('RecordCons c))
690 -> forall (d :: RecordC a) -> b d 872 -> forall (d :: RecordC a) -> b d
691match'RecordC 873case'RecordC = \_ a b c -> <<case function of a type with 1 parameters>>
692 :: forall (a :: Type -> Type) 874
693 -> (forall (b :: [RecItem]) -> a (RecordC b)) -> forall c -> a c -> a c 875ceil :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a
694isKeyC :: String -> Type -> [RecItem] -> Constraint 876ceil = _rhs \a b c d -> PrimCeil a b c d
695fstTup :: forall a (b :: [Type]) . HList (a : b) -> a 877
696sndTup :: forall a (b :: [Type]) . HList (a : b) -> HList b 878clamp :: forall a b (c :: Nat) . (Num a, b ~ VecScalar c a) => b -> b -> b -> b
697project 879clamp = _rhs \a b c d e f g h -> PrimClamp a b c d e f g h
698 :: forall a (b :: [RecItem]) 880
699 . forall (c :: String) -> isKeyC c a b => RecordC b -> a 881clampS :: forall a b (c :: Nat) . (Num a, b ~ VecScalar c a) => b -> a -> a -> b
700rgb :: Float -> Float -> Float -> VecS Float 4 882clampS = _rhs \a b c d e f g h -> PrimClampS a b c d e f g h
701black :: VecS Float 4 883
702gray :: VecS Float 4
703silver :: VecS Float 4
704white :: VecS Float 4
705maroon :: VecS Float 4
706red :: VecS Float 4
707olive :: VecS Float 4
708yellow :: VecS Float 4
709green :: VecS Float 4
710lime :: VecS Float 4
711teal :: VecS Float 4
712aqua :: VecS Float 4
713navy :: VecS Float 4
714blue :: VecS Float 4
715purple :: VecS Float 4
716fuchsia :: VecS Float 4
717colorImage1 884colorImage1
718 :: forall (a :: Nat) b c . (Num b, c ~ VecScalar a b) => c -> Image 1 ('Color c) 885 :: forall (a :: Nat) b c . (Num b, c ~ VecScalar a b) => c -> Image 1 ('Color c)
886colorImage1 = _rhs \a b c d e f -> ColorImage 1 a b c d e f
887
719colorImage2 888colorImage2
720 :: forall (a :: Nat) b c . (Num b, c ~ VecScalar a b) => c -> Image 2 ('Color c) 889 :: forall (a :: Nat) b c . (Num b, c ~ VecScalar a b) => c -> Image 2 ('Color c)
721depthImage1 :: Float -> Image 1 'Depth 890colorImage2 = _rhs \a b c d e f -> ColorImage 2 a b c d e f
722v3FToV4F :: Vec 3 Float -> VecS Float 4 891
723radians :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a 892const :: forall a b . a -> b -> a
724degrees :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a 893const = \_ _ a _ -> _rhs a
725sin :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a 894
726cos :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a 895cos :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a
727tan :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a 896cos = _rhs \a b c d -> PrimCos a b c d
728sinh :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a 897
729cosh :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a 898cosh :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a
730tanh :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a 899cosh = _rhs \a b c d -> PrimCosH a b c d
731asin :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a 900
732asinh :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a 901cross :: forall a . (a ~ VecS Float 3) => a -> a -> a
733acos :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a 902cross = _rhs \a b c d -> PrimCross a b c d
734acosh :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a 903
735atan :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a 904dFdx :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a
736atanh :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a 905dFdx = _rhs \a b c d -> PrimDFdx a b c d
737atan2 :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a -> a 906
738pow :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a -> a 907dFdy :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a
908dFdy = _rhs \a b c d -> PrimDFdy a b c d
909
910degrees :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a
911degrees = _rhs \a b c d -> PrimDegrees a b c d
912
913depthImage1 :: Float -> Image 1 'Depth
914depthImage1 = _rhs \a -> DepthImage 1 a
915
916det :: forall (a :: Nat) b . Mat a a b -> Float
917det = _rhs \a b c -> PrimDeterminant a b c
918
919distance :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a -> Float
920distance = _rhs \a b c d e -> PrimDistance a b c d e
921
922dot :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a -> Float
923dot = _rhs \a b c d e -> PrimDot a b c d e
924
739exp :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a 925exp :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a
740log :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a 926exp = _rhs \a b c d -> PrimExp a b c d
927
741exp2 :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a 928exp2 :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a
742log2 :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a 929exp2 = _rhs \a b c d -> PrimExp2 a b c d
743sqrt :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a 930
744inversesqrt :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a 931fWidth :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a
745abs :: forall a b (c :: Nat) . (Signed a, b ~ VecScalar c a) => b -> b 932fWidth = _rhs \a b c d -> PrimFWidth a b c d
746sign :: forall a b (c :: Nat) . (Signed a, b ~ VecScalar c a) => b -> b 933
934faceforward :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a -> a -> a
935faceforward = _rhs \a b c d e f -> PrimFaceForward a b c d e f
936
937filter :: forall a . (a -> Bool) -> [a] -> [a]
938filter
939 = \a -> primFix
940 ((a -> 'Bool) -> [a] -> [a])
941 \b c d -> case'List
942 (\_ -> [a])
943 (_rhs [])
944 (\e f -> _rhs (case'Bool (\_ -> [a]) (b c f) (e : b c f) (c e)))
945 d
946
947floatBitsToInt :: forall (a :: Nat) . VecScalar a Float -> VecScalar a Int
948floatBitsToInt = _rhs \a b -> PrimFloatBitsToInt a b
949
950floatBitsToWord :: forall (a :: Nat) . VecScalar a Float -> VecScalar a Word
951floatBitsToWord = _rhs \a b -> PrimFloatBitsToUInt a b
952
747floor :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a 953floor :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a
748trunc :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a 954floor = _rhs \a b c d -> PrimFloor a b c d
749round :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a 955
750roundEven :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a 956foldl' :: forall a b . (a -> b -> a) -> a -> [b] -> a
751ceil :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a 957foldl'
958 = \a b -> primFix
959 ((a -> b -> a) -> a -> [b] -> a)
960 \c d e f -> case'List (\_ -> a) (_rhs e) (\g h -> _rhs (c d (d e g) h)) f
961
962foldr1 :: forall a . (a -> a -> a) -> [a] -> a
963foldr1
964 = \a b c -> case'List
965 (\_ -> a)
966 (_rhs (undefined a))
967 (\d e -> _rhs (foldr a a b d e))
968 c
969
752fract :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a 970fract :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a
753mod :: forall a b (c :: Nat) . (Num a, b ~ VecScalar c a) => b -> b -> b 971fract = _rhs \a b c d -> PrimFract a b c d
754min :: forall a b (c :: Nat) . (Num a, b ~ VecScalar c a) => b -> b -> b 972
755max :: forall a b (c :: Nat) . (Num a, b ~ VecScalar c a) => b -> b -> b 973fromTo :: Float -> Float -> [Float]
756modF :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> (a, a) 974fromTo
757clamp :: forall a b (c :: Nat) . (Num a, b ~ VecScalar c a) => b -> b -> b -> b 975 = primFix
758clampS :: forall a b (c :: Nat) . (Num a, b ~ VecScalar c a) => b -> a -> a -> b 976 ('Float -> 'Float -> ['Float])
759mix :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a -> a -> a 977 \a b c -> case'Bool
760mixS :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a -> Float -> a 978 (\_ -> ['Float])
761mixB 979 (_rhs (b : a (PrimAdd 'Float TT b 1.0) c))
980 (_rhs [])
981 (PrimGreaterThan 'Float 1 'Float 'Bool TT TT TT b c)
982
983fst :: forall a b . (a, b) -> a
984fst
985 = \a b c -> hlistConsCase
986 a
987 [b]
988 a
989 (\d e -> hlistConsCase b [] a (\_ f -> hlistNilCase a (_rhs d) f) e)
990 c
991
992fstTup :: forall a (b :: [Type]) . HList (a : b) -> a
993fstTup = \a b -> _rhs \c -> hlistConsCase a b a (\d _ -> d) c
994
995fuchsia :: VecS Float 4
996fuchsia = _rhs (V4 1.0 0.0 1.0 1.0)
997
998gray :: VecS Float 4
999gray = _rhs (V4 0.5 0.5 0.5 1.0)
1000
1001green :: VecS Float 4
1002green = _rhs (V4 0.0 0.5 0.0 1.0)
1003
1004intBitsToFloat :: forall (a :: Nat) . VecScalar a Int -> VecScalar a Float
1005intBitsToFloat = _rhs \a b -> PrimIntBitsToFloat a b
1006
1007inv :: forall (a :: Nat) b . Mat a a b -> Mat a a b
1008inv = _rhs \a b c -> PrimInverse a b c
1009
1010inversesqrt :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a
1011inversesqrt = _rhs \a b c d -> PrimInvSqrt a b c d
1012
1013isInf
762 :: forall a (b :: Nat) c 1014 :: forall a (b :: Nat) c
763 . (a ~ VecScalar b Float, c ~ VecScalar b Bool) => a -> a -> c -> a 1015 . (a ~ VecScalar b Float, c ~ VecScalar b Bool) => a -> c
764step :: forall a (b :: Nat) . (a ~ VecS Float b) => a -> a -> a 1016isInf = _rhs \a b c d e f -> PrimIsInf a b c d e f
765stepS :: forall a (b :: Nat) . (a ~ VecScalar b Float) => Float -> a -> a 1017
766smoothstep :: forall a (b :: Nat) . (a ~ VecS Float b) => a -> a -> a -> a 1018isKeyC :: String -> Type -> [RecItem] -> Constraint
767smoothstepS 1019isKeyC
768 :: forall a (b :: Nat) . (a ~ VecScalar b Float) => Float -> Float -> a -> a 1020 = primFix
1021 ('String -> Type -> ['RecItem] -> 'Constraint)
1022 \a b c d -> case'List
1023 (\_ -> 'Constraint)
1024 (_rhs (CEmpty ""))
1025 (\e f -> case'RecItem
1026 (\_ -> 'Constraint)
1027 (\g h -> _rhs
1028 (primIfThenElse 'Constraint (isEQ (primCompareString b g)) (c ~ h) (a b c f)))
1029 e)
1030 d
1031
769isNan 1032isNan
770 :: forall a (b :: Nat) c 1033 :: forall a (b :: Nat) c
771 . (a ~ VecScalar b Float, c ~ VecScalar b Bool) => a -> c 1034 . (a ~ VecScalar b Float, c ~ VecScalar b Bool) => a -> c
772isInf 1035isNan = _rhs \a b c d e f -> PrimIsNan a b c d e f
1036
1037iterate :: forall a . (a -> a) -> a -> [a]
1038iterate
1039 = primFix (forall a . (a -> a) -> a -> [a]) \b c d e -> _rhs (e : b c d (d e))
1040
1041length :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> Float
1042length = _rhs \a b c d -> PrimLength a b c d
1043
1044lime :: VecS Float 4
1045lime = _rhs (V4 0.0 1.0 0.0 1.0)
1046
1047log :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a
1048log = _rhs \a b c d -> PrimLog a b c d
1049
1050log2 :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a
1051log2 = _rhs \a b c d -> PrimLog2 a b c d
1052
1053lookat :: Vec 3 Float -> Vec 3 Float -> Vec 3 Float -> Mat 4 4 Float
1054lookat
1055 = \a b c -> _rhs
1056 (PrimMulMatMat
1057 4
1058 4
1059 'Float
1060 4
1061 (PrimTranspose
1062 4
1063 4
1064 'Float
1065 (M44F
1066 (V4
1067 (swizzscalar
1068 'Float
1069 3
1070 (PrimNormalize
1071 ('VecS 'Float 3)
1072 3
1073 TT
1074 (PrimCross
1075 ('VecS 'Float 3)
1076 TT
1077 c
1078 (PrimNormalize ('VecS 'Float 3) 3 TT (PrimSub ('VecS 'Float 3) TT a b))))
1079 Sx)
1080 (swizzscalar
1081 'Float
1082 3
1083 (PrimNormalize
1084 ('VecS 'Float 3)
1085 3
1086 TT
1087 (PrimCross
1088 ('VecS 'Float 3)
1089 TT
1090 c
1091 (PrimNormalize ('VecS 'Float 3) 3 TT (PrimSub ('VecS 'Float 3) TT a b))))
1092 Sy)
1093 (swizzscalar
1094 'Float
1095 3
1096 (PrimNormalize
1097 ('VecS 'Float 3)
1098 3
1099 TT
1100 (PrimCross
1101 ('VecS 'Float 3)
1102 TT
1103 c
1104 (PrimNormalize ('VecS 'Float 3) 3 TT (PrimSub ('VecS 'Float 3) TT a b))))
1105 Sz)
1106 0.0)
1107 (V4
1108 (swizzscalar
1109 'Float
1110 3
1111 (PrimCross
1112 ('VecS 'Float 3)
1113 TT
1114 (PrimNormalize ('VecS 'Float 3) 3 TT (PrimSub ('VecS 'Float 3) TT a b))
1115 (PrimNormalize
1116 ('VecS 'Float 3)
1117 3
1118 TT
1119 (PrimCross
1120 ('VecS 'Float 3)
1121 TT
1122 c
1123 (PrimNormalize ('VecS 'Float 3) 3 TT (PrimSub ('VecS 'Float 3) TT a b)))))
1124 Sx)
1125 (swizzscalar
1126 'Float
1127 3
1128 (PrimCross
1129 ('VecS 'Float 3)
1130 TT
1131 (PrimNormalize ('VecS 'Float 3) 3 TT (PrimSub ('VecS 'Float 3) TT a b))
1132 (PrimNormalize
1133 ('VecS 'Float 3)
1134 3
1135 TT
1136 (PrimCross
1137 ('VecS 'Float 3)
1138 TT
1139 c
1140 (PrimNormalize ('VecS 'Float 3) 3 TT (PrimSub ('VecS 'Float 3) TT a b)))))
1141 Sy)
1142 (swizzscalar
1143 'Float
1144 3
1145 (PrimCross
1146 ('VecS 'Float 3)
1147 TT
1148 (PrimNormalize ('VecS 'Float 3) 3 TT (PrimSub ('VecS 'Float 3) TT a b))
1149 (PrimNormalize
1150 ('VecS 'Float 3)
1151 3
1152 TT
1153 (PrimCross
1154 ('VecS 'Float 3)
1155 TT
1156 c
1157 (PrimNormalize ('VecS 'Float 3) 3 TT (PrimSub ('VecS 'Float 3) TT a b)))))
1158 Sz)
1159 0.0)
1160 (V4
1161 (swizzscalar
1162 'Float
1163 3
1164 (PrimNormalize ('VecS 'Float 3) 3 TT (PrimSub ('VecS 'Float 3) TT a b))
1165 Sx)
1166 (swizzscalar
1167 'Float
1168 3
1169 (PrimNormalize ('VecS 'Float 3) 3 TT (PrimSub ('VecS 'Float 3) TT a b))
1170 Sy)
1171 (swizzscalar
1172 'Float
1173 3
1174 (PrimNormalize ('VecS 'Float 3) 3 TT (PrimSub ('VecS 'Float 3) TT a b))
1175 Sz)
1176 0.0)
1177 (V4 0.0 0.0 0.0 1.0)))
1178 (M44F
1179 (V4 1.0 0.0 0.0 0.0)
1180 (V4 0.0 1.0 0.0 0.0)
1181 (V4 0.0 0.0 1.0 0.0)
1182 (V4
1183 (swizzscalar 'Float 3 (PrimNeg ('VecS 'Float 3) TT a) Sx)
1184 (swizzscalar 'Float 3 (PrimNeg ('VecS 'Float 3) TT a) Sy)
1185 (swizzscalar 'Float 3 (PrimNeg ('VecS 'Float 3) TT a) Sz)
1186 1.0)))
1187
1188maroon :: VecS Float 4
1189maroon = _rhs (V4 0.5 0.0 0.0 1.0)
1190
1191match'RecItem
1192 :: forall (a :: Type -> Type) -> a RecItem -> forall b -> a b -> a b
1193match'RecItem = \a b c d -> <<type case function>>
1194
1195match'RecordC
1196 :: forall (a :: Type -> Type)
1197 -> (forall (b :: [RecItem]) -> a (RecordC b)) -> forall c -> a c -> a c
1198match'RecordC = \a b c d -> <<type case function>>
1199
1200max :: forall a b (c :: Nat) . (Num a, b ~ VecScalar c a) => b -> b -> b
1201max = _rhs \a b c d e f g -> PrimMax a b c d e f g
1202
1203mergeBy :: forall a . (a -> a -> Ordering) -> [a] -> [a] -> [a]
1204mergeBy
1205 = \a -> primFix
1206 ((a -> a -> 'Ordering) -> [a] -> [a] -> [a])
1207 \b c d e -> case'List
1208 (\_ -> [a])
1209 (_rhs e)
1210 (\f g -> case'List
1211 (\_ -> [a])
1212 (_rhs d)
1213 (\h i -> _rhs
1214 (case'Ordering
1215 (\_ -> [a])
1216 (f : b c g (h : i))
1217 (h : b c (f : g) i)
1218 (h : b c (f : g) i)
1219 (c f h)))
1220 e)
1221 d
1222
1223min :: forall a b (c :: Nat) . (Num a, b ~ VecScalar c a) => b -> b -> b
1224min = _rhs \a b c d e f g -> PrimMin a b c d e f g
1225
1226mix :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a -> a -> a
1227mix = _rhs \a b c d e f -> PrimMix a b c d e f
1228
1229mixB
773 :: forall a (b :: Nat) c 1230 :: forall a (b :: Nat) c
774 . (a ~ VecScalar b Float, c ~ VecScalar b Bool) => a -> c 1231 . (a ~ VecScalar b Float, c ~ VecScalar b Bool) => a -> a -> c -> a
775dFdx :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a 1232mixB = _rhs \a b c d e f g h -> PrimMixB a b c d e f g h
776dFdy :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a 1233
777fWidth :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a 1234mixS :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a -> Float -> a
1235mixS = _rhs \a b c d e f -> PrimMixS a b c d e f
1236
1237mod :: forall a b (c :: Nat) . (Num a, b ~ VecScalar c a) => b -> b -> b
1238mod = _rhs \a b c d e f g -> PrimMod a b c d e f g
1239
1240modF :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> (a, a)
1241modF = _rhs \a b c d -> PrimModF a b c d
1242
1243navy :: VecS Float 4
1244navy = _rhs (V4 0.0 0.0 0.5 1.0)
1245
1246neg :: forall a . Signed (MatVecScalarElem a) => a -> a
1247neg = \a b c -> _rhs (PrimNeg a b c)
1248
778noise1 :: forall (a :: Nat) . VecScalar a Float -> Float 1249noise1 :: forall (a :: Nat) . VecScalar a Float -> Float
1250noise1 = _rhs \a b -> PrimNoise1 a b
1251
779noise2 :: forall (a :: Nat) . VecScalar a Float -> Vec 2 Float 1252noise2 :: forall (a :: Nat) . VecScalar a Float -> Vec 2 Float
1253noise2 = _rhs \a b -> PrimNoise2 a b
1254
780noise3 :: forall (a :: Nat) . VecScalar a Float -> Vec 3 Float 1255noise3 :: forall (a :: Nat) . VecScalar a Float -> Vec 3 Float
1256noise3 = _rhs \a b -> PrimNoise3 a b
1257
781noise4 :: forall (a :: Nat) . VecScalar a Float -> Vec 4 Float 1258noise4 :: forall (a :: Nat) . VecScalar a Float -> Vec 4 Float
782length :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> Float 1259noise4 = _rhs \a b -> PrimNoise4 a b
783distance :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a -> Float 1260
784dot :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a -> Float
785cross :: forall a . (a ~ VecS Float 3) => a -> a -> a
786normalize :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a 1261normalize :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a
787faceforward :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a -> a -> a 1262normalize = _rhs \a b c d -> PrimNormalize a b c d
1263
1264not :: forall (a :: Nat) . VecScalar a Bool -> VecScalar a Bool
1265not = \a b -> _rhs (PrimNot ('VecScalar a 'Bool) a TT b)
1266
1267olive :: VecS Float 4
1268olive = _rhs (V4 0.5 0.5 0.0 1.0)
1269
1270otherwise :: Bool
1271otherwise = _rhs True
1272
1273outer :: forall (a :: Nat) b (c :: Nat) . Vec a b -> Vec c b -> Mat c a b
1274outer = _rhs \a b c d e -> PrimOuterProduct a b c d e
1275
1276pairs :: forall a . [a] -> [(a, a)]
1277pairs = \a b -> _rhs (zip a a b (tail a b))
1278
1279perspective :: Float -> Float -> Float -> Float -> Mat 4 4 Float
1280perspective
1281 = \a b c d -> _rhs
1282 (M44F
1283 (V4
1284 (PrimDiv
1285 'Float
1286 'Float
1287 1
1288 TT
1289 TT
1290 (PrimMul 'Float TT 2.0 a)
1291 (PrimSub
1292 'Float
1293 TT
1294 (PrimMul
1295 'Float
1296 TT
1297 d
1298 (PrimMul
1299 'Float
1300 TT
1301 a
1302 (PrimTan 'Float 1 TT (PrimDiv 'Float 'Float 1 TT TT c 2.0))))
1303 (PrimSub
1304 'Float
1305 TT
1306 0.0
1307 (PrimMul
1308 'Float
1309 TT
1310 d
1311 (PrimMul
1312 'Float
1313 TT
1314 a
1315 (PrimTan 'Float 1 TT (PrimDiv 'Float 'Float 1 TT TT c 2.0)))))))
1316 0.0
1317 0.0
1318 0.0)
1319 (V4
1320 0.0
1321 (PrimDiv
1322 'Float
1323 'Float
1324 1
1325 TT
1326 TT
1327 (PrimMul 'Float TT 2.0 a)
1328 (PrimSub
1329 'Float
1330 TT
1331 (PrimMul
1332 'Float
1333 TT
1334 a
1335 (PrimTan 'Float 1 TT (PrimDiv 'Float 'Float 1 TT TT c 2.0)))
1336 (PrimSub
1337 'Float
1338 TT
1339 0.0
1340 (PrimMul
1341 'Float
1342 TT
1343 a
1344 (PrimTan 'Float 1 TT (PrimDiv 'Float 'Float 1 TT TT c 2.0))))))
1345 0.0
1346 0.0)
1347 (V4
1348 (PrimDiv
1349 'Float
1350 'Float
1351 1
1352 TT
1353 TT
1354 (PrimAdd
1355 'Float
1356 TT
1357 (PrimMul
1358 'Float
1359 TT
1360 d
1361 (PrimMul
1362 'Float
1363 TT
1364 a
1365 (PrimTan 'Float 1 TT (PrimDiv 'Float 'Float 1 TT TT c 2.0))))
1366 (PrimSub
1367 'Float
1368 TT
1369 0.0
1370 (PrimMul
1371 'Float
1372 TT
1373 d
1374 (PrimMul
1375 'Float
1376 TT
1377 a
1378 (PrimTan 'Float 1 TT (PrimDiv 'Float 'Float 1 TT TT c 2.0))))))
1379 (PrimSub
1380 'Float
1381 TT
1382 (PrimMul
1383 'Float
1384 TT
1385 d
1386 (PrimMul
1387 'Float
1388 TT
1389 a
1390 (PrimTan 'Float 1 TT (PrimDiv 'Float 'Float 1 TT TT c 2.0))))
1391 (PrimSub
1392 'Float
1393 TT
1394 0.0
1395 (PrimMul
1396 'Float
1397 TT
1398 d
1399 (PrimMul
1400 'Float
1401 TT
1402 a
1403 (PrimTan 'Float 1 TT (PrimDiv 'Float 'Float 1 TT TT c 2.0)))))))
1404 (PrimDiv
1405 'Float
1406 'Float
1407 1
1408 TT
1409 TT
1410 (PrimAdd
1411 'Float
1412 TT
1413 (PrimMul
1414 'Float
1415 TT
1416 a
1417 (PrimTan 'Float 1 TT (PrimDiv 'Float 'Float 1 TT TT c 2.0)))
1418 (PrimSub
1419 'Float
1420 TT
1421 0.0
1422 (PrimMul
1423 'Float
1424 TT
1425 a
1426 (PrimTan 'Float 1 TT (PrimDiv 'Float 'Float 1 TT TT c 2.0)))))
1427 (PrimSub
1428 'Float
1429 TT
1430 (PrimMul
1431 'Float
1432 TT
1433 a
1434 (PrimTan 'Float 1 TT (PrimDiv 'Float 'Float 1 TT TT c 2.0)))
1435 (PrimSub
1436 'Float
1437 TT
1438 0.0
1439 (PrimMul
1440 'Float
1441 TT
1442 a
1443 (PrimTan 'Float 1 TT (PrimDiv 'Float 'Float 1 TT TT c 2.0))))))
1444 (PrimSub
1445 'Float
1446 TT
1447 0.0
1448 (PrimDiv 'Float 'Float 1 TT TT (PrimAdd 'Float TT b a) (PrimSub 'Float TT b a)))
1449 -1.0)
1450 (V4
1451 0.0
1452 0.0
1453 (PrimSub
1454 'Float
1455 TT
1456 0.0
1457 (PrimDiv
1458 'Float
1459 'Float
1460 1
1461 TT
1462 TT
1463 (PrimMul 'Float TT (PrimMul 'Float TT 2.0 b) a)
1464 (PrimSub 'Float TT b a)))
1465 0.0))
1466
1467pi :: Float
1468pi = _rhs 3.141592653589793
1469
1470pow :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a -> a
1471pow = _rhs \a b c d e -> PrimPow a b c d e
1472
1473project
1474 :: forall a (b :: [RecItem])
1475 . forall (c :: String) -> isKeyC c a b => RecordC b -> a
1476project
1477 = primFix
1478 (forall a (b :: [RecItem])
1479 . forall (c :: String) -> isKeyC c a b => 'RecordC b -> a)
1480 \d e f g _ h -> case'List
1481 (\_ -> e)
1482 (_rhs (undefined e))
1483 (\i j -> case'RecItem
1484 (\_ -> e)
1485 (\k _ -> case'RecordC
1486 (\_ -> e)
1487 (\l -> case'Bool
1488 (\_ -> e)
1489 (_rhs
1490 (d
1491 e
1492 j
1493 g
1494 (undefined ('CW (isKeyC g e j)))
1495 (RecordCons
1496 (hlistConsCase
1497 e
1498 (map 'RecItem Type recItemType j)
1499 ('HList (map 'RecItem Type recItemType j))
1500 (\_ m -> m)
1501 (unsafeCoerce
1502 ('HList (map 'RecItem Type recItemType f))
1503 ('HList (e : map 'RecItem Type recItemType j))
1504 l)))))
1505 (_rhs
1506 (hlistConsCase
1507 e
1508 (map 'RecItem Type recItemType j)
1509 e
1510 (\n _ -> n)
1511 (unsafeCoerce
1512 ('HList (map 'RecItem Type recItemType f))
1513 ('HList (e : map 'RecItem Type recItemType j))
1514 l)))
1515 (isEQ (primCompareString g k)))
1516 h)
1517 i)
1518 f
1519
1520purple :: VecS Float 4
1521purple = _rhs (V4 0.5 0.0 0.5 1.0)
1522
1523radians :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a
1524radians = _rhs \a b c d -> PrimRadians a b c d
1525
1526recItemType :: RecItem -> Type
1527recItemType = \a -> case'RecItem (\_ -> Type) (\_ b -> _rhs b) a
1528
1529red :: VecS Float 4
1530red = _rhs (V4 1.0 0.0 0.0 1.0)
1531
788reflect :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a -> a 1532reflect :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a -> a
1533reflect = _rhs \a b c d e -> PrimReflect a b c d e
1534
789refract :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a -> a -> a 1535refract :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a -> a -> a
790transpose :: forall (a :: Nat) (b :: Nat) c . Mat a b c -> Mat b a c 1536refract = _rhs \a b c d e f -> PrimRefract a b c d e f
791det :: forall (a :: Nat) b . Mat a a b -> Float 1537
792inv :: forall (a :: Nat) b . Mat a a b -> Mat a a b 1538rgb :: Float -> Float -> Float -> VecS Float 4
793outer :: forall (a :: Nat) b (c :: Nat) . Vec a b -> Vec c b -> Mat c a b 1539rgb = \a b c -> _rhs (V4 a b c 1.0)
794bAnd :: forall a b (c :: Nat) . (Integral a, b ~ VecScalar c a) => b -> b -> b 1540
795bOr :: forall a b (c :: Nat) . (Integral a, b ~ VecScalar c a) => b -> b -> b 1541rotMatrixX :: VecScalar 1 Float -> Mat 4 4 Float
796bXor :: forall a b (c :: Nat) . (Integral a, b ~ VecScalar c a) => b -> b -> b 1542rotMatrixX
797bNot :: forall a b (c :: Nat) . (Integral a, b ~ VecScalar c a) => b -> b 1543 = \a -> _rhs
798bAndS :: forall a b (c :: Nat) . (Integral a, b ~ VecScalar c a) => b -> a -> b 1544 (M44F
799bOrS :: forall a b (c :: Nat) . (Integral a, b ~ VecScalar c a) => b -> a -> b 1545 (V4 1.0 0.0 0.0 0.0)
800bXorS :: forall a b (c :: Nat) . (Integral a, b ~ VecScalar c a) => b -> a -> b 1546 (V4 0.0 (PrimCos 'Float 1 TT a) (PrimSin 'Float 1 TT a) 0.0)
1547 (V4
1548 0.0
1549 (PrimSub 'Float TT 0.0 (PrimSin 'Float 1 TT a))
1550 (PrimCos 'Float 1 TT a)
1551 0.0)
1552 (V4 0.0 0.0 0.0 1.0))
1553
1554rotMatrixY :: VecScalar 1 Float -> Mat 4 4 Float
1555rotMatrixY
1556 = \a -> _rhs
1557 (M44F
1558 (V4
1559 (PrimCos 'Float 1 TT a)
1560 0.0
1561 (PrimSub 'Float TT 0.0 (PrimSin 'Float 1 TT a))
1562 0.0)
1563 (V4 0.0 1.0 0.0 0.0)
1564 (V4 (PrimSin 'Float 1 TT a) 0.0 (PrimCos 'Float 1 TT a) 0.0)
1565 (V4 0.0 0.0 0.0 1.0))
1566
1567rotMatrixZ :: VecScalar 1 Float -> Mat 4 4 Float
1568rotMatrixZ
1569 = \a -> _rhs
1570 (M44F
1571 (V4 (PrimCos 'Float 1 TT a) (PrimSin 'Float 1 TT a) 0.0 0.0)
1572 (V4
1573 (PrimSub 'Float TT 0.0 (PrimSin 'Float 1 TT a))
1574 (PrimCos 'Float 1 TT a)
1575 0.0
1576 0.0)
1577 (V4 0.0 0.0 1.0 0.0)
1578 (V4 0.0 0.0 0.0 1.0))
1579
1580rotationEuler :: Float -> Float -> Float -> Mat 4 4 Float
1581rotationEuler
1582 = \a b c -> _rhs
1583 (PrimMulMatMat
1584 4
1585 4
1586 'Float
1587 4
1588 (PrimMulMatMat
1589 4
1590 4
1591 'Float
1592 4
1593 (M44F
1594 (V4
1595 (PrimCos 'Float 1 TT a)
1596 0.0
1597 (PrimSub 'Float TT 0.0 (PrimSin 'Float 1 TT a))
1598 0.0)
1599 (V4 0.0 1.0 0.0 0.0)
1600 (V4 (PrimSin 'Float 1 TT a) 0.0 (PrimCos 'Float 1 TT a) 0.0)
1601 (V4 0.0 0.0 0.0 1.0))
1602 (M44F
1603 (V4 1.0 0.0 0.0 0.0)
1604 (V4 0.0 (PrimCos 'Float 1 TT b) (PrimSin 'Float 1 TT b) 0.0)
1605 (V4
1606 0.0
1607 (PrimSub 'Float TT 0.0 (PrimSin 'Float 1 TT b))
1608 (PrimCos 'Float 1 TT b)
1609 0.0)
1610 (V4 0.0 0.0 0.0 1.0)))
1611 (M44F
1612 (V4 (PrimCos 'Float 1 TT c) (PrimSin 'Float 1 TT c) 0.0 0.0)
1613 (V4
1614 (PrimSub 'Float TT 0.0 (PrimSin 'Float 1 TT c))
1615 (PrimCos 'Float 1 TT c)
1616 0.0
1617 0.0)
1618 (V4 0.0 0.0 1.0 0.0)
1619 (V4 0.0 0.0 0.0 1.0)))
1620
1621round :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a
1622round = _rhs \a b c d -> PrimRound a b c d
1623
1624roundEven :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a
1625roundEven = _rhs \a b c d -> PrimRoundEven a b c d
1626
1627scale :: Float -> VecS Float 4 -> VecS Float 4
1628scale = \a b -> _rhs (PrimMul ('VecS 'Float 4) TT b (V4 a a a 1.0))
1629
801shiftL 1630shiftL
802 :: forall a b (c :: Nat) d 1631 :: forall a b (c :: Nat) d
803 . (Integral a, b ~ VecScalar c a, d ~ VecScalar c Word) => b -> d -> b 1632 . (Integral a, b ~ VecScalar c a, d ~ VecScalar c Word) => b -> d -> b
1633shiftL = _rhs \a b c d e f g h i -> PrimBShiftL a b c d e f g h i
1634
1635shiftLS
1636 :: forall a b (c :: Nat) . (Integral a, b ~ VecScalar c a) => b -> Word -> b
1637shiftLS = _rhs \a b c d e f g -> PrimBShiftLS a b c d e f g
1638
804shiftR 1639shiftR
805 :: forall a b (c :: Nat) d 1640 :: forall a b (c :: Nat) d
806 . (Integral a, b ~ VecScalar c a, d ~ VecScalar c Word) => b -> d -> b 1641 . (Integral a, b ~ VecScalar c a, d ~ VecScalar c Word) => b -> d -> b
807shiftLS 1642shiftR = _rhs \a b c d e f g h i -> PrimBShiftR a b c d e f g h i
808 :: forall a b (c :: Nat) . (Integral a, b ~ VecScalar c a) => b -> Word -> b 1643
809shiftRS 1644shiftRS
810 :: forall a b (c :: Nat) . (Integral a, b ~ VecScalar c a) => b -> Word -> b 1645 :: forall a b (c :: Nat) . (Integral a, b ~ VecScalar c a) => b -> Word -> b
811floatBitsToInt :: forall (a :: Nat) . VecScalar a Float -> VecScalar a Int 1646shiftRS = _rhs \a b c d e f g -> PrimBShiftRS a b c d e f g
812floatBitsToWord :: forall (a :: Nat) . VecScalar a Float -> VecScalar a Word 1647
813intBitsToFloat :: forall (a :: Nat) . VecScalar a Int -> VecScalar a Float 1648sign :: forall a b (c :: Nat) . (Signed a, b ~ VecScalar c a) => b -> b
1649sign = _rhs \a b c d e f -> PrimSign a b c d e f
1650
1651silver :: VecS Float 4
1652silver = _rhs (V4 0.75 0.75 0.75 1.0)
1653
1654sin :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a
1655sin = _rhs \a b c d -> PrimSin a b c d
1656
1657sinh :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a
1658sinh = _rhs \a b c d -> PrimSinH a b c d
1659
1660smoothstep :: forall a (b :: Nat) . (a ~ VecS Float b) => a -> a -> a -> a
1661smoothstep = _rhs \a b c d e f -> PrimSmoothStep a b c d e f
1662
1663smoothstepS
1664 :: forall a (b :: Nat) . (a ~ VecScalar b Float) => Float -> Float -> a -> a
1665smoothstepS = _rhs \a b c d e f -> PrimSmoothStepS a b c d e f
1666
1667snd :: forall a b . (a, b) -> b
1668snd
1669 = \a b c -> hlistConsCase
1670 a
1671 [b]
1672 b
1673 (\_ d -> hlistConsCase b [] b (\e f -> hlistNilCase b (_rhs e) f) d)
1674 c
1675
1676sndTup :: forall a (b :: [Type]) . HList (a : b) -> HList b
1677sndTup = \a b -> _rhs \c -> hlistConsCase a b ('HList b) (\_ d -> d) c
1678
1679sortBy :: forall a . (a -> a -> Ordering) -> [a] -> [a]
1680sortBy
1681 = \a -> primFix
1682 ((a -> a -> 'Ordering) -> [a] -> [a])
1683 \b c d -> case'List
1684 (\_ -> [a])
1685 (_rhs [])
1686 (\e f -> case'List
1687 (\_ -> [a])
1688 (_rhs [e])
1689 (\_ _ -> _rhs
1690 (uncurry
1691 [a]
1692 [a]
1693 [a]
1694 (mergeBy a c)
1695 (([a] *** [a]) [a] [a] (b c) (b c) (split a d))))
1696 f)
1697 d
1698
1699split :: forall a . [a] -> ([a], [a])
1700split
1701 = \a -> primFix
1702 ([a] -> ' ([a], [a]))
1703 \b c -> case'List
1704 (\_ -> ' ([a], [a]))
1705 (_rhs ([], []))
1706 (\d e -> _rhs
1707 (d
1708 : hlistConsCase
1709 [a]
1710 [[a]]
1711 [a]
1712 (\_ f -> hlistConsCase [a] [] [a] (\g h -> hlistNilCase [a] g h) f)
1713 (b e)
1714 , hlistConsCase
1715 [a]
1716 [[a]]
1717 [a]
1718 (\i j -> hlistConsCase [a] [] [a] (\_ k -> hlistNilCase [a] i k) j)
1719 (b e)))
1720 c
1721
1722sqrt :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a
1723sqrt = _rhs \a b c d -> PrimSqrt a b c d
1724
1725step :: forall a (b :: Nat) . (a ~ VecS Float b) => a -> a -> a
1726step = _rhs \a b c d e -> PrimStep a b c d e
1727
1728stepS :: forall a (b :: Nat) . (a ~ VecScalar b Float) => Float -> a -> a
1729stepS = _rhs \a b c d e -> PrimStepS a b c d e
1730
1731tail :: forall a . [a] -> [a]
1732tail = \a b -> case'List (\_ -> [a]) (_rhs (undefined [a])) (\_ c -> _rhs c) b
1733
1734tan :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a
1735tan = _rhs \a b c d -> PrimTan a b c d
1736
1737tanh :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a
1738tanh = _rhs \a b c d -> PrimTanH a b c d
1739
1740teal :: VecS Float 4
1741teal = _rhs (V4 0.0 0.5 0.5 1.0)
1742
1743translateBefore4 :: Vec 3 Float -> Mat 4 4 Float
1744translateBefore4
1745 = \a -> _rhs
1746 (M44F
1747 (V4 1.0 0.0 0.0 0.0)
1748 (V4 0.0 1.0 0.0 0.0)
1749 (V4 0.0 0.0 1.0 0.0)
1750 (V4
1751 (swizzscalar 'Float 3 a Sx)
1752 (swizzscalar 'Float 3 a Sy)
1753 (swizzscalar 'Float 3 a Sz)
1754 1.0))
1755
1756transpose :: forall (a :: Nat) (b :: Nat) c . Mat a b c -> Mat b a c
1757transpose = _rhs \a b c d -> PrimTranspose a b c d
1758
1759trunc :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a
1760trunc = _rhs \a b c d -> PrimTrunc a b c d
1761
1762uncurry :: forall a b c . (a -> c -> b) -> (a, c) -> b
1763uncurry
1764 = \a b c d e -> hlistConsCase
1765 a
1766 [c]
1767 b
1768 (\f g -> hlistConsCase c [] b (\h i -> hlistNilCase b (_rhs (d f h)) i) g)
1769 e
1770
1771unzip :: forall a b . [(a, b)] -> ([a], [b])
1772unzip
1773 = primFix
1774 (forall a b . [' (a, b)] -> ' ([a], [b]))
1775 \c d e f -> case'List
1776 (\_ -> ' ([d], [e]))
1777 (_rhs ([], []))
1778 (\g h -> hlistConsCase
1779 d
1780 [e]
1781 ' ([d], [e])
1782 (\i j -> hlistConsCase
1783 e
1784 []
1785 ' ([d], [e])
1786 (\k l -> hlistNilCase
1787 ' ([d], [e])
1788 (_rhs
1789 (i
1790 : hlistConsCase
1791 [d]
1792 [[e]]
1793 [d]
1794 (\m n -> hlistConsCase [e] [] [d] (\_ o -> hlistNilCase [d] m o) n)
1795 (c d e h)
1796 , k
1797 : hlistConsCase
1798 [d]
1799 [[e]]
1800 [e]
1801 (\_ p -> hlistConsCase [e] [] [e] (\q r -> hlistNilCase [e] q r) p)
1802 (c d e h)))
1803 l)
1804 j)
1805 g)
1806 f
1807
1808v3FToV4F :: Vec 3 Float -> VecS Float 4
1809v3FToV4F
1810 = \a -> _rhs
1811 (V4
1812 (swizzscalar 'Float 3 a Sx)
1813 (swizzscalar 'Float 3 a Sy)
1814 (swizzscalar 'Float 3 a Sz)
1815 1.0)
1816
1817white :: VecS Float 4
1818white = _rhs (V4 1.0 1.0 1.0 1.0)
1819
814wordBitsToFloat :: forall (a :: Nat) . VecScalar a Word -> VecScalar a Float 1820wordBitsToFloat :: forall (a :: Nat) . VecScalar a Word -> VecScalar a Float
815(+) :: forall a . Num (MatVecScalarElem a) => a -> a -> a 1821wordBitsToFloat = _rhs \a b -> PrimUIntBitsToFloat a b
816(-) :: forall a . Num (MatVecScalarElem a) => a -> a -> a 1822
817(*) :: forall a . Num (MatVecScalarElem a) => a -> a -> a
818(/)
819 :: forall a (b :: Nat)
820 . Num a => VecScalar b a -> VecScalar b a -> VecScalar b a
821(%)
822 :: forall a (b :: Nat)
823 . Num a => VecScalar b a -> VecScalar b a -> VecScalar b a
824neg :: forall a . Signed (MatVecScalarElem a) => a -> a
825(/=) :: forall a . a -> a -> Bool
826(<)
827 :: forall (a :: Nat) b
828 . Num b => VecScalar a b -> VecScalar a b -> VecScalar a Bool
829(<=)
830 :: forall (a :: Nat) b
831 . Num b => VecScalar a b -> VecScalar a b -> VecScalar a Bool
832(>=)
833 :: forall (a :: Nat) b
834 . Num b => VecScalar a b -> VecScalar a b -> VecScalar a Bool
835(>)
836 :: forall (a :: Nat) b
837 . Num b => VecScalar a b -> VecScalar a b -> VecScalar a Bool
838(&&) :: Bool -> Bool -> Bool
839(||) :: Bool -> Bool -> Bool
840xor :: Bool -> Bool -> Bool 1823xor :: Bool -> Bool -> Bool
841not :: forall (a :: Nat) . VecScalar a Bool -> VecScalar a Bool 1824xor = _rhs \a b -> PrimXor a b
842any :: forall (a :: Nat) . VecScalar a Bool -> Bool 1825
843all :: forall (a :: Nat) . VecScalar a Bool -> Bool 1826yellow :: VecS Float 4
844(.*.) 1827yellow = _rhs (V4 1.0 1.0 0.0 1.0)
845 :: forall (a :: Nat) (b :: Nat) c (d :: Nat) 1828
846 . Mat a b c -> Mat b d c -> Mat a d c 1829zip :: forall a b . [a] -> [b] -> [(a, b)]
847(*.) :: forall (a :: Nat) (b :: Nat) c . Mat a b c -> VecS c b -> Vec a c 1830zip
848(.*) :: forall (a :: Nat) b (c :: Nat) . VecS b a -> Mat a c b -> Vec c b 1831 = primFix
849(+!) :: forall a . Num (MatVecScalarElem a) => a -> MatVecScalarElem a -> a 1832 (forall a b . [a] -> [b] -> [' (a, b)])
850(-!) :: forall a . Num (MatVecScalarElem a) => a -> MatVecScalarElem a -> a 1833 \c d e f g -> case'List
851(*!) :: forall a . Num (MatVecScalarElem a) => a -> MatVecScalarElem a -> a 1834 (\_ -> [' (d, e)])
852(/!) :: forall a (b :: Nat) . Num a => VecScalar b a -> a -> VecScalar b a 1835 (_rhs [])
853(%!) :: forall a (b :: Nat) . Num a => VecScalar b a -> a -> VecScalar b a 1836 (\h i -> case'List
854perspective :: Float -> Float -> Float -> Float -> Mat 4 4 Float 1837 (\_ -> [' (d, e)])
855rotMatrixZ :: VecScalar 1 Float -> Mat 4 4 Float 1838 (_rhs [])
856rotMatrixY :: VecScalar 1 Float -> Mat 4 4 Float 1839 (\j k -> _rhs ((h, j) : c d e i k))
857rotMatrixX :: VecScalar 1 Float -> Mat 4 4 Float 1840 g)
858rotationEuler :: Float -> Float -> Float -> Mat 4 4 Float 1841 f
859translateBefore4 :: Vec 3 Float -> Mat 4 4 Float 1842
860lookat :: Vec 3 Float -> Vec 3 Float -> Vec 3 Float -> Mat 4 4 Float 1843|| :: Bool -> Bool -> Bool
861scale :: Float -> VecS Float 4 -> VecS Float 4 1844|| = \a b -> _rhs (PrimOr a b)
862fromTo :: Float -> Float -> [Float] 1845
863(!!) :: forall a . [a] -> Int -> a 1846||| :: Bool -> Bool -> Bool
1847||| = \a b -> case'Bool (\_ -> 'Bool) (_rhs b) (_rhs True) a
864------------ tooltips 1848------------ tooltips
865testdata/Prelude.lc 16:1-16:6 1849testdata/Prelude.lc 16:1-16:6
866 forall a b . a -> b -> a 1850 forall a b . a -> b -> a
diff --git a/testdata/SampleMaterial.out b/testdata/SampleMaterial.out
index f3c00e80..70bcb06a 100644
--- a/testdata/SampleMaterial.out
+++ b/testdata/SampleMaterial.out
@@ -1876,8 +1876,1884 @@ sampleMaterial
1876 False 1876 False
1877 "Tex_3226210144"] 1877 "Tex_3226210144"]
1878 False)] 1878 False)]
1879------------ trace 1879------------ core code
1880sampleMaterial :: [(String, CommonAttrs)] 1880sampleMaterial :: [(String, CommonAttrs)]
1881sampleMaterial
1882 = _rhs
1883 [("textures/gothic_block/blocks11b"
1884 , CommonAttrs
1885 ()
1886 ()
1887 False
1888 0.0
1889 False
1890 False
1891 CT_FrontSided
1892 []
1893 False
1894 False
1895 [StageAttrs
1896 Nothing
1897 RGB_IdentityLighting
1898 A_Identity
1899 TG_Base
1900 []
1901 (ST_Map "textures/gothic_block/blocks11b")
1902 True
1903 D_Lequal
1904 Nothing
1905 False
1906 "Tex_4288602201"
1907 , StageAttrs
1908 (Just (B_DstColor, B_Zero))
1909 RGB_IdentityLighting
1910 A_Identity
1911 TG_Lightmap
1912 []
1913 ST_Lightmap
1914 True
1915 D_Lequal
1916 Nothing
1917 False
1918 "Tex_3226210144"]
1919 False)
1920 , ("textures/gothic_block/blocks15"
1921 , CommonAttrs
1922 ()
1923 ()
1924 False
1925 0.0
1926 False
1927 False
1928 CT_FrontSided
1929 []
1930 False
1931 False
1932 [StageAttrs
1933 Nothing
1934 RGB_IdentityLighting
1935 A_Identity
1936 TG_Base
1937 []
1938 (ST_Map "textures/gothic_block/blocks15")
1939 True
1940 D_Lequal
1941 Nothing
1942 False
1943 "Tex_2523116863"
1944 , StageAttrs
1945 (Just (B_DstColor, B_Zero))
1946 RGB_IdentityLighting
1947 A_Identity
1948 TG_Lightmap
1949 []
1950 ST_Lightmap
1951 True
1952 D_Lequal
1953 Nothing
1954 False
1955 "Tex_3226210144"]
1956 False)
1957 , ("textures/gothic_block/blocks18b"
1958 , CommonAttrs
1959 ()
1960 ()
1961 False
1962 0.0
1963 False
1964 False
1965 CT_FrontSided
1966 []
1967 False
1968 False
1969 [StageAttrs
1970 Nothing
1971 RGB_IdentityLighting
1972 A_Identity
1973 TG_Base
1974 []
1975 (ST_Map "textures/gothic_block/blocks18b")
1976 True
1977 D_Lequal
1978 Nothing
1979 False
1980 "Tex_2639119078"
1981 , StageAttrs
1982 (Just (B_DstColor, B_Zero))
1983 RGB_IdentityLighting
1984 A_Identity
1985 TG_Lightmap
1986 []
1987 ST_Lightmap
1988 True
1989 D_Lequal
1990 Nothing
1991 False
1992 "Tex_3226210144"]
1993 False)
1994 , ("textures/gothic_block/blocks18c_3"
1995 , CommonAttrs
1996 ()
1997 ()
1998 False
1999 0.0
2000 False
2001 False
2002 CT_FrontSided
2003 []
2004 False
2005 False
2006 [StageAttrs
2007 Nothing
2008 RGB_IdentityLighting
2009 A_Identity
2010 TG_Base
2011 []
2012 (ST_Map "textures/gothic_block/blocks18c_3")
2013 True
2014 D_Lequal
2015 Nothing
2016 False
2017 "Tex_3939430064"
2018 , StageAttrs
2019 (Just (B_DstColor, B_Zero))
2020 RGB_IdentityLighting
2021 A_Identity
2022 TG_Lightmap
2023 []
2024 ST_Lightmap
2025 True
2026 D_Lequal
2027 Nothing
2028 False
2029 "Tex_3226210144"]
2030 False)
2031 , ("textures/gothic_block/demon_block15fx"
2032 , CommonAttrs
2033 ()
2034 ()
2035 False
2036 3.0
2037 False
2038 False
2039 CT_FrontSided
2040 []
2041 False
2042 False
2043 [StageAttrs
2044 Nothing
2045 RGB_Identity
2046 A_Identity
2047 TG_Base
2048 [TM_Scroll 0.0 1.0, TM_Turb 0.0 0.25 0.0 1.6, TM_Scale 4.0 4.0]
2049 (ST_Map "textures/sfx/firegorre.tga")
2050 True
2051 D_Lequal
2052 Nothing
2053 False
2054 "Tex_47037129"
2055 , StageAttrs
2056 (Just (B_SrcAlpha, B_OneMinusSrcAlpha))
2057 RGB_Identity
2058 A_Identity
2059 TG_Base
2060 []
2061 (ST_Map "textures/gothic_block/demon_block15fx.tga")
2062 False
2063 D_Lequal
2064 Nothing
2065 False
2066 "Tex_3562558025"
2067 , StageAttrs
2068 (Just (B_DstColor, B_OneMinusDstAlpha))
2069 RGB_Identity
2070 A_Identity
2071 TG_Lightmap
2072 []
2073 ST_Lightmap
2074 False
2075 D_Lequal
2076 Nothing
2077 False
2078 "Tex_2065974340"]
2079 False)
2080 , ("textures/gothic_block/killblock"
2081 , CommonAttrs
2082 ()
2083 ()
2084 False
2085 0.0
2086 False
2087 False
2088 CT_FrontSided
2089 []
2090 False
2091 False
2092 [StageAttrs
2093 Nothing
2094 RGB_IdentityLighting
2095 A_Identity
2096 TG_Base
2097 []
2098 (ST_Map "textures/gothic_block/killblock")
2099 True
2100 D_Lequal
2101 Nothing
2102 False
2103 "Tex_3647563961"
2104 , StageAttrs
2105 (Just (B_DstColor, B_Zero))
2106 RGB_IdentityLighting
2107 A_Identity
2108 TG_Lightmap
2109 []
2110 ST_Lightmap
2111 True
2112 D_Lequal
2113 Nothing
2114 False
2115 "Tex_3226210144"]
2116 False)
2117 , ("textures/gothic_block/killblock_i"
2118 , CommonAttrs
2119 ()
2120 ()
2121 False
2122 0.0
2123 False
2124 False
2125 CT_FrontSided
2126 []
2127 False
2128 False
2129 [StageAttrs
2130 Nothing
2131 RGB_IdentityLighting
2132 A_Identity
2133 TG_Base
2134 []
2135 (ST_Map "textures/gothic_block/killblock_i")
2136 True
2137 D_Lequal
2138 Nothing
2139 False
2140 "Tex_209322640"
2141 , StageAttrs
2142 (Just (B_DstColor, B_Zero))
2143 RGB_IdentityLighting
2144 A_Identity
2145 TG_Lightmap
2146 []
2147 ST_Lightmap
2148 True
2149 D_Lequal
2150 Nothing
2151 False
2152 "Tex_3226210144"]
2153 False)
2154 , ("textures/gothic_block/killblock_i4"
2155 , CommonAttrs
2156 ()
2157 ()
2158 False
2159 0.0
2160 False
2161 False
2162 CT_FrontSided
2163 []
2164 False
2165 False
2166 [StageAttrs
2167 Nothing
2168 RGB_IdentityLighting
2169 A_Identity
2170 TG_Base
2171 []
2172 (ST_Map "textures/gothic_block/killblock_i4")
2173 True
2174 D_Lequal
2175 Nothing
2176 False
2177 "Tex_3617993418"
2178 , StageAttrs
2179 (Just (B_DstColor, B_Zero))
2180 RGB_IdentityLighting
2181 A_Identity
2182 TG_Lightmap
2183 []
2184 ST_Lightmap
2185 True
2186 D_Lequal
2187 Nothing
2188 False
2189 "Tex_3226210144"]
2190 False)
2191 , ("textures/gothic_door/km_arena1archfinalc_mid"
2192 , CommonAttrs
2193 ()
2194 ()
2195 False
2196 0.0
2197 False
2198 False
2199 CT_FrontSided
2200 []
2201 False
2202 False
2203 [StageAttrs
2204 Nothing
2205 RGB_IdentityLighting
2206 A_Identity
2207 TG_Base
2208 []
2209 (ST_Map "textures/gothic_door/km_arena1archfinalc_mid")
2210 True
2211 D_Lequal
2212 Nothing
2213 False
2214 "Tex_2073154888"
2215 , StageAttrs
2216 (Just (B_DstColor, B_Zero))
2217 RGB_IdentityLighting
2218 A_Identity
2219 TG_Lightmap
2220 []
2221 ST_Lightmap
2222 True
2223 D_Lequal
2224 Nothing
2225 False
2226 "Tex_3226210144"]
2227 False)
2228 , ("textures/gothic_door/km_arena1archfinalc_top"
2229 , CommonAttrs
2230 ()
2231 ()
2232 False
2233 0.0
2234 False
2235 False
2236 CT_FrontSided
2237 []
2238 False
2239 False
2240 [StageAttrs
2241 Nothing
2242 RGB_IdentityLighting
2243 A_Identity
2244 TG_Base
2245 []
2246 (ST_Map "textures/gothic_door/km_arena1archfinalc_top")
2247 True
2248 D_Lequal
2249 Nothing
2250 False
2251 "Tex_3071107621"
2252 , StageAttrs
2253 (Just (B_DstColor, B_Zero))
2254 RGB_IdentityLighting
2255 A_Identity
2256 TG_Lightmap
2257 []
2258 ST_Lightmap
2259 True
2260 D_Lequal
2261 Nothing
2262 False
2263 "Tex_3226210144"]
2264 False)
2265 , ("textures/gothic_door/km_arena1archfinald_bot"
2266 , CommonAttrs
2267 ()
2268 ()
2269 False
2270 0.0
2271 False
2272 False
2273 CT_FrontSided
2274 []
2275 False
2276 False
2277 [StageAttrs
2278 Nothing
2279 RGB_IdentityLighting
2280 A_Identity
2281 TG_Base
2282 []
2283 (ST_Map "textures/gothic_door/km_arena1archfinald_bot")
2284 True
2285 D_Lequal
2286 Nothing
2287 False
2288 "Tex_1201212243"
2289 , StageAttrs
2290 (Just (B_DstColor, B_Zero))
2291 RGB_IdentityLighting
2292 A_Identity
2293 TG_Lightmap
2294 []
2295 ST_Lightmap
2296 True
2297 D_Lequal
2298 Nothing
2299 False
2300 "Tex_3226210144"]
2301 False)
2302 , ("textures/gothic_door/km_arena1archfinald_mid"
2303 , CommonAttrs
2304 ()
2305 ()
2306 False
2307 0.0
2308 False
2309 False
2310 CT_FrontSided
2311 []
2312 False
2313 False
2314 [StageAttrs
2315 Nothing
2316 RGB_IdentityLighting
2317 A_Identity
2318 TG_Base
2319 []
2320 (ST_Map "textures/gothic_door/km_arena1archfinald_mid")
2321 True
2322 D_Lequal
2323 Nothing
2324 False
2325 "Tex_3768122504"
2326 , StageAttrs
2327 (Just (B_DstColor, B_Zero))
2328 RGB_IdentityLighting
2329 A_Identity
2330 TG_Lightmap
2331 []
2332 ST_Lightmap
2333 True
2334 D_Lequal
2335 Nothing
2336 False
2337 "Tex_3226210144"]
2338 False)
2339 , ("textures/gothic_door/skull_door_a"
2340 , CommonAttrs
2341 ()
2342 ()
2343 False
2344 0.0
2345 False
2346 False
2347 CT_FrontSided
2348 []
2349 False
2350 False
2351 [StageAttrs
2352 Nothing
2353 RGB_IdentityLighting
2354 A_Identity
2355 TG_Base
2356 []
2357 (ST_Map "textures/gothic_door/skull_door_a")
2358 True
2359 D_Lequal
2360 Nothing
2361 False
2362 "Tex_1284708166"
2363 , StageAttrs
2364 (Just (B_DstColor, B_Zero))
2365 RGB_IdentityLighting
2366 A_Identity
2367 TG_Lightmap
2368 []
2369 ST_Lightmap
2370 True
2371 D_Lequal
2372 Nothing
2373 False
2374 "Tex_3226210144"]
2375 False)
2376 , ("textures/gothic_door/skull_door_b"
2377 , CommonAttrs
2378 ()
2379 ()
2380 False
2381 0.0
2382 False
2383 False
2384 CT_FrontSided
2385 []
2386 False
2387 False
2388 [StageAttrs
2389 Nothing
2390 RGB_IdentityLighting
2391 A_Identity
2392 TG_Base
2393 []
2394 (ST_Map "textures/gothic_door/skull_door_b")
2395 True
2396 D_Lequal
2397 Nothing
2398 False
2399 "Tex_1318715778"
2400 , StageAttrs
2401 (Just (B_DstColor, B_Zero))
2402 RGB_IdentityLighting
2403 A_Identity
2404 TG_Lightmap
2405 []
2406 ST_Lightmap
2407 True
2408 D_Lequal
2409 Nothing
2410 False
2411 "Tex_3226210144"]
2412 False)
2413 , ("textures/gothic_door/skull_door_c"
2414 , CommonAttrs
2415 ()
2416 ()
2417 False
2418 0.0
2419 False
2420 False
2421 CT_FrontSided
2422 []
2423 False
2424 False
2425 [StageAttrs
2426 Nothing
2427 RGB_IdentityLighting
2428 A_Identity
2429 TG_Base
2430 []
2431 (ST_Map "textures/gothic_door/skull_door_c")
2432 True
2433 D_Lequal
2434 Nothing
2435 False
2436 "Tex_4189195777"
2437 , StageAttrs
2438 (Just (B_DstColor, B_Zero))
2439 RGB_IdentityLighting
2440 A_Identity
2441 TG_Lightmap
2442 []
2443 ST_Lightmap
2444 True
2445 D_Lequal
2446 Nothing
2447 False
2448 "Tex_3226210144"]
2449 False)
2450 , ("textures/gothic_door/skull_door_d"
2451 , CommonAttrs
2452 ()
2453 ()
2454 False
2455 0.0
2456 False
2457 False
2458 CT_FrontSided
2459 []
2460 False
2461 False
2462 [StageAttrs
2463 Nothing
2464 RGB_IdentityLighting
2465 A_Identity
2466 TG_Base
2467 []
2468 (ST_Map "textures/gothic_door/skull_door_d")
2469 True
2470 D_Lequal
2471 Nothing
2472 False
2473 "Tex_1250438154"
2474 , StageAttrs
2475 (Just (B_DstColor, B_Zero))
2476 RGB_IdentityLighting
2477 A_Identity
2478 TG_Lightmap
2479 []
2480 ST_Lightmap
2481 True
2482 D_Lequal
2483 Nothing
2484 False
2485 "Tex_3226210144"]
2486 False)
2487 , ("textures/gothic_door/skull_door_e"
2488 , CommonAttrs
2489 ()
2490 ()
2491 False
2492 0.0
2493 False
2494 False
2495 CT_FrontSided
2496 []
2497 False
2498 False
2499 [StageAttrs
2500 Nothing
2501 RGB_IdentityLighting
2502 A_Identity
2503 TG_Base
2504 []
2505 (ST_Map "textures/gothic_door/skull_door_e")
2506 True
2507 D_Lequal
2508 Nothing
2509 False
2510 "Tex_4255130505"
2511 , StageAttrs
2512 (Just (B_DstColor, B_Zero))
2513 RGB_IdentityLighting
2514 A_Identity
2515 TG_Lightmap
2516 []
2517 ST_Lightmap
2518 True
2519 D_Lequal
2520 Nothing
2521 False
2522 "Tex_3226210144"]
2523 False)
2524 , ("textures/gothic_door/skull_door_f"
2525 , CommonAttrs
2526 ()
2527 ()
2528 False
2529 0.0
2530 False
2531 False
2532 CT_FrontSided
2533 []
2534 False
2535 False
2536 [StageAttrs
2537 Nothing
2538 RGB_IdentityLighting
2539 A_Identity
2540 TG_Base
2541 []
2542 (ST_Map "textures/gothic_door/skull_door_f")
2543 True
2544 D_Lequal
2545 Nothing
2546 False
2547 "Tex_4289279309"
2548 , StageAttrs
2549 (Just (B_DstColor, B_Zero))
2550 RGB_IdentityLighting
2551 A_Identity
2552 TG_Lightmap
2553 []
2554 ST_Lightmap
2555 True
2556 D_Lequal
2557 Nothing
2558 False
2559 "Tex_3226210144"]
2560 False)
2561 , ("textures/gothic_door/skullarch_a"
2562 , CommonAttrs
2563 ()
2564 ()
2565 False
2566 0.0
2567 False
2568 False
2569 CT_FrontSided
2570 []
2571 False
2572 False
2573 [StageAttrs
2574 Nothing
2575 RGB_IdentityLighting
2576 A_Identity
2577 TG_Base
2578 []
2579 (ST_Map "textures/gothic_door/skullarch_a")
2580 True
2581 D_Lequal
2582 Nothing
2583 False
2584 "Tex_3448884269"
2585 , StageAttrs
2586 (Just (B_DstColor, B_Zero))
2587 RGB_IdentityLighting
2588 A_Identity
2589 TG_Lightmap
2590 []
2591 ST_Lightmap
2592 True
2593 D_Lequal
2594 Nothing
2595 False
2596 "Tex_3226210144"]
2597 False)
2598 , ("textures/gothic_door/skullarch_b"
2599 , CommonAttrs
2600 ()
2601 ()
2602 False
2603 3.0
2604 False
2605 False
2606 CT_FrontSided
2607 []
2608 False
2609 False
2610 [StageAttrs
2611 Nothing
2612 RGB_Identity
2613 A_Identity
2614 TG_Base
2615 [TM_Scroll 0.0 1.0, TM_Turb 0.0 0.25 0.0 5.6, TM_Scale 1.5 1.5]
2616 (ST_Map "textures/sfx/firegorre.tga")
2617 True
2618 D_Lequal
2619 Nothing
2620 False
2621 "Tex_3416962274"
2622 , StageAttrs
2623 (Just (B_SrcAlpha, B_OneMinusSrcAlpha))
2624 RGB_Identity
2625 A_Identity
2626 TG_Base
2627 []
2628 (ST_Map "textures/gothic_door/skullarch_b.tga")
2629 False
2630 D_Lequal
2631 Nothing
2632 False
2633 "Tex_4077187607"
2634 , StageAttrs
2635 (Just (B_DstColor, B_Zero))
2636 RGB_Identity
2637 A_Identity
2638 TG_Lightmap
2639 []
2640 ST_Lightmap
2641 False
2642 D_Lequal
2643 Nothing
2644 False
2645 "Tex_1196599720"]
2646 False)
2647 , ("textures/gothic_door/skullarch_c"
2648 , CommonAttrs
2649 ()
2650 ()
2651 False
2652 0.0
2653 False
2654 False
2655 CT_FrontSided
2656 []
2657 False
2658 False
2659 [StageAttrs
2660 Nothing
2661 RGB_IdentityLighting
2662 A_Identity
2663 TG_Base
2664 []
2665 (ST_Map "textures/gothic_door/skullarch_c")
2666 True
2667 D_Lequal
2668 Nothing
2669 False
2670 "Tex_2024854890"
2671 , StageAttrs
2672 (Just (B_DstColor, B_Zero))
2673 RGB_IdentityLighting
2674 A_Identity
2675 TG_Lightmap
2676 []
2677 ST_Lightmap
2678 True
2679 D_Lequal
2680 Nothing
2681 False
2682 "Tex_3226210144"]
2683 False)
2684 , ("textures/gothic_door/xian_tourneyarch_inside2"
2685 , CommonAttrs
2686 ()
2687 ()
2688 False
2689 0.0
2690 False
2691 False
2692 CT_FrontSided
2693 []
2694 False
2695 False
2696 [StageAttrs
2697 Nothing
2698 RGB_IdentityLighting
2699 A_Identity
2700 TG_Base
2701 []
2702 (ST_Map "textures/gothic_door/xian_tourneyarch_inside2")
2703 True
2704 D_Lequal
2705 Nothing
2706 False
2707 "Tex_1435187472"
2708 , StageAttrs
2709 (Just (B_DstColor, B_Zero))
2710 RGB_IdentityLighting
2711 A_Identity
2712 TG_Lightmap
2713 []
2714 ST_Lightmap
2715 True
2716 D_Lequal
2717 Nothing
2718 False
2719 "Tex_3226210144"]
2720 False)
2721 , ("textures/gothic_floor/blocks17floor2"
2722 , CommonAttrs
2723 ()
2724 ()
2725 False
2726 0.0
2727 False
2728 False
2729 CT_FrontSided
2730 []
2731 False
2732 False
2733 [StageAttrs
2734 Nothing
2735 RGB_IdentityLighting
2736 A_Identity
2737 TG_Base
2738 []
2739 (ST_Map "textures/gothic_floor/blocks17floor2")
2740 True
2741 D_Lequal
2742 Nothing
2743 False
2744 "Tex_3814342582"
2745 , StageAttrs
2746 (Just (B_DstColor, B_Zero))
2747 RGB_IdentityLighting
2748 A_Identity
2749 TG_Lightmap
2750 []
2751 ST_Lightmap
2752 True
2753 D_Lequal
2754 Nothing
2755 False
2756 "Tex_3226210144"]
2757 False)
2758 , ("textures/gothic_floor/largerblock3b"
2759 , CommonAttrs
2760 ()
2761 ()
2762 False
2763 0.0
2764 False
2765 False
2766 CT_FrontSided
2767 []
2768 False
2769 False
2770 [StageAttrs
2771 Nothing
2772 RGB_IdentityLighting
2773 A_Identity
2774 TG_Base
2775 []
2776 (ST_Map "textures/gothic_floor/largerblock3b")
2777 True
2778 D_Lequal
2779 Nothing
2780 False
2781 "Tex_2966885788"
2782 , StageAttrs
2783 (Just (B_DstColor, B_Zero))
2784 RGB_IdentityLighting
2785 A_Identity
2786 TG_Lightmap
2787 []
2788 ST_Lightmap
2789 True
2790 D_Lequal
2791 Nothing
2792 False
2793 "Tex_3226210144"]
2794 False)
2795 , ("textures/gothic_floor/metalbridge06"
2796 , CommonAttrs
2797 ()
2798 ()
2799 False
2800 0.0
2801 False
2802 False
2803 CT_FrontSided
2804 []
2805 False
2806 False
2807 [StageAttrs
2808 Nothing
2809 RGB_IdentityLighting
2810 A_Identity
2811 TG_Base
2812 []
2813 (ST_Map "textures/gothic_floor/metalbridge06")
2814 True
2815 D_Lequal
2816 Nothing
2817 False
2818 "Tex_1581337759"
2819 , StageAttrs
2820 (Just (B_DstColor, B_Zero))
2821 RGB_IdentityLighting
2822 A_Identity
2823 TG_Lightmap
2824 []
2825 ST_Lightmap
2826 True
2827 D_Lequal
2828 Nothing
2829 False
2830 "Tex_3226210144"]
2831 False)
2832 , ("textures/gothic_floor/metalbridge06broke"
2833 , CommonAttrs
2834 ()
2835 ()
2836 False
2837 0.0
2838 False
2839 False
2840 CT_FrontSided
2841 []
2842 False
2843 False
2844 [StageAttrs
2845 Nothing
2846 RGB_IdentityLighting
2847 A_Identity
2848 TG_Base
2849 []
2850 (ST_Map "textures/gothic_floor/metalbridge06broke")
2851 True
2852 D_Lequal
2853 Nothing
2854 False
2855 "Tex_3921745736"
2856 , StageAttrs
2857 (Just (B_DstColor, B_Zero))
2858 RGB_IdentityLighting
2859 A_Identity
2860 TG_Lightmap
2861 []
2862 ST_Lightmap
2863 True
2864 D_Lequal
2865 Nothing
2866 False
2867 "Tex_3226210144"]
2868 False)
2869 , ("textures/gothic_floor/xstairtop4"
2870 , CommonAttrs
2871 ()
2872 ()
2873 False
2874 0.0
2875 False
2876 False
2877 CT_FrontSided
2878 []
2879 False
2880 False
2881 [StageAttrs
2882 Nothing
2883 RGB_IdentityLighting
2884 A_Identity
2885 TG_Base
2886 []
2887 (ST_Map "textures/gothic_floor/xstairtop4")
2888 True
2889 D_Lequal
2890 Nothing
2891 False
2892 "Tex_3836020895"
2893 , StageAttrs
2894 (Just (B_DstColor, B_Zero))
2895 RGB_IdentityLighting
2896 A_Identity
2897 TG_Lightmap
2898 []
2899 ST_Lightmap
2900 True
2901 D_Lequal
2902 Nothing
2903 False
2904 "Tex_3226210144"]
2905 False)
2906 , ("textures/gothic_floor/xstepborder3"
2907 , CommonAttrs
2908 ()
2909 ()
2910 False
2911 0.0
2912 False
2913 False
2914 CT_FrontSided
2915 []
2916 False
2917 False
2918 [StageAttrs
2919 Nothing
2920 RGB_IdentityLighting
2921 A_Identity
2922 TG_Base
2923 []
2924 (ST_Map "textures/gothic_floor/xstepborder3")
2925 True
2926 D_Lequal
2927 Nothing
2928 False
2929 "Tex_3269743316"
2930 , StageAttrs
2931 (Just (B_DstColor, B_Zero))
2932 RGB_IdentityLighting
2933 A_Identity
2934 TG_Lightmap
2935 []
2936 ST_Lightmap
2937 True
2938 D_Lequal
2939 Nothing
2940 False
2941 "Tex_3226210144"]
2942 False)
2943 , ("textures/gothic_trim/baseboard04"
2944 , CommonAttrs
2945 ()
2946 ()
2947 False
2948 0.0
2949 False
2950 False
2951 CT_FrontSided
2952 []
2953 False
2954 False
2955 [StageAttrs
2956 Nothing
2957 RGB_IdentityLighting
2958 A_Identity
2959 TG_Base
2960 []
2961 (ST_Map "textures/gothic_trim/baseboard04")
2962 True
2963 D_Lequal
2964 Nothing
2965 False
2966 "Tex_1002517541"
2967 , StageAttrs
2968 (Just (B_DstColor, B_Zero))
2969 RGB_IdentityLighting
2970 A_Identity
2971 TG_Lightmap
2972 []
2973 ST_Lightmap
2974 True
2975 D_Lequal
2976 Nothing
2977 False
2978 "Tex_3226210144"]
2979 False)
2980 , ("textures/gothic_trim/baseboard09_c3"
2981 , CommonAttrs
2982 ()
2983 ()
2984 False
2985 0.0
2986 False
2987 False
2988 CT_FrontSided
2989 []
2990 False
2991 False
2992 [StageAttrs
2993 Nothing
2994 RGB_IdentityLighting
2995 A_Identity
2996 TG_Base
2997 []
2998 (ST_Map "textures/gothic_trim/baseboard09_c3")
2999 True
3000 D_Lequal
3001 Nothing
3002 False
3003 "Tex_2289735512"
3004 , StageAttrs
3005 (Just (B_DstColor, B_Zero))
3006 RGB_IdentityLighting
3007 A_Identity
3008 TG_Lightmap
3009 []
3010 ST_Lightmap
3011 True
3012 D_Lequal
3013 Nothing
3014 False
3015 "Tex_3226210144"]
3016 False)
3017 , ("textures/gothic_trim/baseboard09_e"
3018 , CommonAttrs
3019 ()
3020 ()
3021 False
3022 0.0
3023 False
3024 False
3025 CT_FrontSided
3026 []
3027 False
3028 False
3029 [StageAttrs
3030 Nothing
3031 RGB_IdentityLighting
3032 A_Identity
3033 TG_Base
3034 []
3035 (ST_Map "textures/gothic_trim/baseboard09_e")
3036 True
3037 D_Lequal
3038 Nothing
3039 False
3040 "Tex_2367525081"
3041 , StageAttrs
3042 (Just (B_DstColor, B_Zero))
3043 RGB_IdentityLighting
3044 A_Identity
3045 TG_Lightmap
3046 []
3047 ST_Lightmap
3048 True
3049 D_Lequal
3050 Nothing
3051 False
3052 "Tex_3226210144"]
3053 False)
3054 , ("textures/gothic_trim/baseboard09_e2"
3055 , CommonAttrs
3056 ()
3057 ()
3058 False
3059 0.0
3060 False
3061 False
3062 CT_FrontSided
3063 []
3064 False
3065 False
3066 [StageAttrs
3067 Nothing
3068 RGB_IdentityLighting
3069 A_Identity
3070 TG_Base
3071 []
3072 (ST_Map "textures/gothic_trim/baseboard09_e2")
3073 True
3074 D_Lequal
3075 Nothing
3076 False
3077 "Tex_3694494180"
3078 , StageAttrs
3079 (Just (B_DstColor, B_Zero))
3080 RGB_IdentityLighting
3081 A_Identity
3082 TG_Lightmap
3083 []
3084 ST_Lightmap
3085 True
3086 D_Lequal
3087 Nothing
3088 False
3089 "Tex_3226210144"]
3090 False)
3091 , ("textures/gothic_trim/baseboard09_l2"
3092 , CommonAttrs
3093 ()
3094 ()
3095 False
3096 0.0
3097 False
3098 False
3099 CT_FrontSided
3100 []
3101 False
3102 False
3103 [StageAttrs
3104 Nothing
3105 RGB_IdentityLighting
3106 A_Identity
3107 TG_Base
3108 []
3109 (ST_Map "textures/gothic_trim/baseboard09_l2")
3110 True
3111 D_Lequal
3112 Nothing
3113 False
3114 "Tex_3202786139"
3115 , StageAttrs
3116 (Just (B_DstColor, B_Zero))
3117 RGB_IdentityLighting
3118 A_Identity
3119 TG_Lightmap
3120 []
3121 ST_Lightmap
3122 True
3123 D_Lequal
3124 Nothing
3125 False
3126 "Tex_3226210144"]
3127 False)
3128 , ("textures/gothic_trim/baseboard09_o3"
3129 , CommonAttrs
3130 ()
3131 ()
3132 False
3133 0.0
3134 False
3135 False
3136 CT_FrontSided
3137 []
3138 False
3139 False
3140 [StageAttrs
3141 Nothing
3142 RGB_IdentityLighting
3143 A_Identity
3144 TG_Base
3145 []
3146 (ST_Map "textures/gothic_trim/baseboard09_o3")
3147 True
3148 D_Lequal
3149 Nothing
3150 False
3151 "Tex_2512757607"
3152 , StageAttrs
3153 (Just (B_DstColor, B_Zero))
3154 RGB_IdentityLighting
3155 A_Identity
3156 TG_Lightmap
3157 []
3158 ST_Lightmap
3159 True
3160 D_Lequal
3161 Nothing
3162 False
3163 "Tex_3226210144"]
3164 False)
3165 , ("textures/gothic_trim/km_arena1tower4"
3166 , CommonAttrs
3167 ()
3168 ()
3169 False
3170 0.0
3171 False
3172 False
3173 CT_FrontSided
3174 []
3175 False
3176 False
3177 [StageAttrs
3178 Nothing
3179 RGB_IdentityLighting
3180 A_Identity
3181 TG_Base
3182 []
3183 (ST_Map "textures/gothic_trim/km_arena1tower4")
3184 True
3185 D_Lequal
3186 Nothing
3187 False
3188 "Tex_3479185666"
3189 , StageAttrs
3190 (Just (B_DstColor, B_Zero))
3191 RGB_IdentityLighting
3192 A_Identity
3193 TG_Lightmap
3194 []
3195 ST_Lightmap
3196 True
3197 D_Lequal
3198 Nothing
3199 False
3200 "Tex_3226210144"]
3201 False)
3202 , ("textures/gothic_trim/km_arena1tower4_a"
3203 , CommonAttrs
3204 ()
3205 ()
3206 False
3207 0.0
3208 False
3209 False
3210 CT_FrontSided
3211 []
3212 False
3213 False
3214 [StageAttrs
3215 Nothing
3216 RGB_IdentityLighting
3217 A_Identity
3218 TG_Base
3219 []
3220 (ST_Map "textures/gothic_trim/km_arena1tower4_a")
3221 True
3222 D_Lequal
3223 Nothing
3224 False
3225 "Tex_3012001075"
3226 , StageAttrs
3227 (Just (B_DstColor, B_Zero))
3228 RGB_IdentityLighting
3229 A_Identity
3230 TG_Lightmap
3231 []
3232 ST_Lightmap
3233 True
3234 D_Lequal
3235 Nothing
3236 False
3237 "Tex_3226210144"]
3238 False)
3239 , ("textures/gothic_trim/metaldemonkillblock"
3240 , CommonAttrs
3241 ()
3242 ()
3243 False
3244 0.0
3245 False
3246 False
3247 CT_FrontSided
3248 []
3249 False
3250 False
3251 [StageAttrs
3252 Nothing
3253 RGB_IdentityLighting
3254 A_Identity
3255 TG_Base
3256 []
3257 (ST_Map "textures/gothic_trim/metaldemonkillblock")
3258 True
3259 D_Lequal
3260 Nothing
3261 False
3262 "Tex_1062467595"
3263 , StageAttrs
3264 (Just (B_DstColor, B_Zero))
3265 RGB_IdentityLighting
3266 A_Identity
3267 TG_Lightmap
3268 []
3269 ST_Lightmap
3270 True
3271 D_Lequal
3272 Nothing
3273 False
3274 "Tex_3226210144"]
3275 False)
3276 , ("textures/gothic_trim/metalsupport4b"
3277 , CommonAttrs
3278 ()
3279 ()
3280 False
3281 0.0
3282 False
3283 False
3284 CT_FrontSided
3285 []
3286 False
3287 False
3288 [StageAttrs
3289 Nothing
3290 RGB_IdentityLighting
3291 A_Identity
3292 TG_Base
3293 []
3294 (ST_Map "textures/gothic_trim/metalsupport4b")
3295 True
3296 D_Lequal
3297 Nothing
3298 False
3299 "Tex_3593923076"
3300 , StageAttrs
3301 (Just (B_DstColor, B_Zero))
3302 RGB_IdentityLighting
3303 A_Identity
3304 TG_Lightmap
3305 []
3306 ST_Lightmap
3307 True
3308 D_Lequal
3309 Nothing
3310 False
3311 "Tex_3226210144"]
3312 False)
3313 , ("textures/gothic_trim/metalsupsolid"
3314 , CommonAttrs
3315 ()
3316 ()
3317 False
3318 0.0
3319 False
3320 False
3321 CT_FrontSided
3322 []
3323 False
3324 False
3325 [StageAttrs
3326 Nothing
3327 RGB_IdentityLighting
3328 A_Identity
3329 TG_Base
3330 []
3331 (ST_Map "textures/gothic_trim/metalsupsolid")
3332 True
3333 D_Lequal
3334 Nothing
3335 False
3336 "Tex_2893650486"
3337 , StageAttrs
3338 (Just (B_DstColor, B_Zero))
3339 RGB_IdentityLighting
3340 A_Identity
3341 TG_Lightmap
3342 []
3343 ST_Lightmap
3344 True
3345 D_Lequal
3346 Nothing
3347 False
3348 "Tex_3226210144"]
3349 False)
3350 , ("textures/gothic_trim/pitted_rust"
3351 , CommonAttrs
3352 ()
3353 ()
3354 False
3355 0.0
3356 False
3357 False
3358 CT_FrontSided
3359 []
3360 False
3361 False
3362 [StageAttrs
3363 Nothing
3364 RGB_IdentityLighting
3365 A_Identity
3366 TG_Base
3367 []
3368 (ST_Map "textures/gothic_trim/pitted_rust")
3369 True
3370 D_Lequal
3371 Nothing
3372 False
3373 "Tex_1243894392"
3374 , StageAttrs
3375 (Just (B_DstColor, B_Zero))
3376 RGB_IdentityLighting
3377 A_Identity
3378 TG_Lightmap
3379 []
3380 ST_Lightmap
3381 True
3382 D_Lequal
3383 Nothing
3384 False
3385 "Tex_3226210144"]
3386 False)
3387 , ("textures/gothic_trim/pitted_rust2"
3388 , CommonAttrs
3389 ()
3390 ()
3391 False
3392 0.0
3393 False
3394 False
3395 CT_FrontSided
3396 []
3397 False
3398 False
3399 [StageAttrs
3400 Nothing
3401 RGB_IdentityLighting
3402 A_Identity
3403 TG_Base
3404 []
3405 (ST_Map "textures/gothic_trim/pitted_rust2")
3406 True
3407 D_Lequal
3408 Nothing
3409 False
3410 "Tex_2099456856"
3411 , StageAttrs
3412 (Just (B_DstColor, B_Zero))
3413 RGB_IdentityLighting
3414 A_Identity
3415 TG_Lightmap
3416 []
3417 ST_Lightmap
3418 True
3419 D_Lequal
3420 Nothing
3421 False
3422 "Tex_3226210144"]
3423 False)
3424 , ("textures/gothic_trim/pitted_rust2_trans"
3425 , CommonAttrs
3426 ()
3427 ()
3428 False
3429 3.0
3430 False
3431 False
3432 CT_FrontSided
3433 []
3434 False
3435 False
3436 [StageAttrs
3437 Nothing
3438 RGB_Identity
3439 A_Identity
3440 TG_Lightmap
3441 []
3442 ST_Lightmap
3443 True
3444 D_Lequal
3445 Nothing
3446 False
3447 "Tex_511571587"
3448 , StageAttrs
3449 (Just (B_DstColor, B_Zero))
3450 RGB_Identity
3451 A_Identity
3452 TG_Base
3453 []
3454 (ST_Map "textures/gothic_trim/pitted_rust2.tga")
3455 False
3456 D_Lequal
3457 Nothing
3458 False
3459 "Tex_1910997598"]
3460 False)
3461 , ("textures/gothic_trim/pitted_rust3"
3462 , CommonAttrs
3463 ()
3464 ()
3465 False
3466 0.0
3467 False
3468 False
3469 CT_FrontSided
3470 []
3471 False
3472 False
3473 [StageAttrs
3474 Nothing
3475 RGB_IdentityLighting
3476 A_Identity
3477 TG_Base
3478 []
3479 (ST_Map "textures/gothic_trim/pitted_rust3")
3480 True
3481 D_Lequal
3482 Nothing
3483 False
3484 "Tex_3389727963"
3485 , StageAttrs
3486 (Just (B_DstColor, B_Zero))
3487 RGB_IdentityLighting
3488 A_Identity
3489 TG_Lightmap
3490 []
3491 ST_Lightmap
3492 True
3493 D_Lequal
3494 Nothing
3495 False
3496 "Tex_3226210144"]
3497 False)
3498 , ("textures/gothic_trim/skullsvertgray02b"
3499 , CommonAttrs
3500 ()
3501 ()
3502 False
3503 0.0
3504 False
3505 False
3506 CT_FrontSided
3507 []
3508 False
3509 False
3510 [StageAttrs
3511 Nothing
3512 RGB_IdentityLighting
3513 A_Identity
3514 TG_Base
3515 []
3516 (ST_Map "textures/gothic_trim/skullsvertgray02b")
3517 True
3518 D_Lequal
3519 Nothing
3520 False
3521 "Tex_2634868983"
3522 , StageAttrs
3523 (Just (B_DstColor, B_Zero))
3524 RGB_IdentityLighting
3525 A_Identity
3526 TG_Lightmap
3527 []
3528 ST_Lightmap
3529 True
3530 D_Lequal
3531 Nothing
3532 False
3533 "Tex_3226210144"]
3534 False)
3535 , ("textures/gothic_wall/iron01_e"
3536 , CommonAttrs
3537 ()
3538 ()
3539 False
3540 0.0
3541 False
3542 False
3543 CT_FrontSided
3544 []
3545 False
3546 False
3547 [StageAttrs
3548 Nothing
3549 RGB_IdentityLighting
3550 A_Identity
3551 TG_Base
3552 []
3553 (ST_Map "textures/gothic_wall/iron01_e")
3554 True
3555 D_Lequal
3556 Nothing
3557 False
3558 "Tex_2432583247"
3559 , StageAttrs
3560 (Just (B_DstColor, B_Zero))
3561 RGB_IdentityLighting
3562 A_Identity
3563 TG_Lightmap
3564 []
3565 ST_Lightmap
3566 True
3567 D_Lequal
3568 Nothing
3569 False
3570 "Tex_3226210144"]
3571 False)
3572 , ("textures/gothic_wall/iron01_ntech3"
3573 , CommonAttrs
3574 ()
3575 ()
3576 False
3577 0.0
3578 False
3579 False
3580 CT_FrontSided
3581 []
3582 False
3583 False
3584 [StageAttrs
3585 Nothing
3586 RGB_IdentityLighting
3587 A_Identity
3588 TG_Base
3589 []
3590 (ST_Map "textures/gothic_wall/iron01_ntech3")
3591 True
3592 D_Lequal
3593 Nothing
3594 False
3595 "Tex_442868841"
3596 , StageAttrs
3597 (Just (B_DstColor, B_Zero))
3598 RGB_IdentityLighting
3599 A_Identity
3600 TG_Lightmap
3601 []
3602 ST_Lightmap
3603 True
3604 D_Lequal
3605 Nothing
3606 False
3607 "Tex_3226210144"]
3608 False)
3609 , ("textures/gothic_wall/skull4"
3610 , CommonAttrs
3611 ()
3612 ()
3613 False
3614 0.0
3615 False
3616 False
3617 CT_FrontSided
3618 []
3619 False
3620 False
3621 [StageAttrs
3622 Nothing
3623 RGB_IdentityLighting
3624 A_Identity
3625 TG_Base
3626 []
3627 (ST_Map "textures/gothic_wall/skull4")
3628 True
3629 D_Lequal
3630 Nothing
3631 False
3632 "Tex_2239853403"
3633 , StageAttrs
3634 (Just (B_DstColor, B_Zero))
3635 RGB_IdentityLighting
3636 A_Identity
3637 TG_Lightmap
3638 []
3639 ST_Lightmap
3640 True
3641 D_Lequal
3642 Nothing
3643 False
3644 "Tex_3226210144"]
3645 False)
3646 , ("textures/gothic_wall/slateroofc"
3647 , CommonAttrs
3648 ()
3649 ()
3650 False
3651 0.0
3652 False
3653 False
3654 CT_FrontSided
3655 []
3656 False
3657 False
3658 [StageAttrs
3659 Nothing
3660 RGB_IdentityLighting
3661 A_Identity
3662 TG_Base
3663 []
3664 (ST_Map "textures/gothic_wall/slateroofc")
3665 True
3666 D_Lequal
3667 Nothing
3668 False
3669 "Tex_2490648334"
3670 , StageAttrs
3671 (Just (B_DstColor, B_Zero))
3672 RGB_IdentityLighting
3673 A_Identity
3674 TG_Lightmap
3675 []
3676 ST_Lightmap
3677 True
3678 D_Lequal
3679 Nothing
3680 False
3681 "Tex_3226210144"]
3682 False)
3683 , ("textures/gothic_wall/supportborder_blue_b"
3684 , CommonAttrs
3685 ()
3686 ()
3687 False
3688 0.0
3689 False
3690 False
3691 CT_FrontSided
3692 []
3693 False
3694 False
3695 [StageAttrs
3696 Nothing
3697 RGB_IdentityLighting
3698 A_Identity
3699 TG_Base
3700 []
3701 (ST_Map "textures/gothic_wall/supportborder_blue_b")
3702 True
3703 D_Lequal
3704 Nothing
3705 False
3706 "Tex_564811775"
3707 , StageAttrs
3708 (Just (B_DstColor, B_Zero))
3709 RGB_IdentityLighting
3710 A_Identity
3711 TG_Lightmap
3712 []
3713 ST_Lightmap
3714 True
3715 D_Lequal
3716 Nothing
3717 False
3718 "Tex_3226210144"]
3719 False)
3720 , ("textures/gothic_wall/supportborder_blue_c"
3721 , CommonAttrs
3722 ()
3723 ()
3724 False
3725 0.0
3726 False
3727 False
3728 CT_FrontSided
3729 []
3730 False
3731 False
3732 [StageAttrs
3733 Nothing
3734 RGB_IdentityLighting
3735 A_Identity
3736 TG_Base
3737 []
3738 (ST_Map "textures/gothic_wall/supportborder_blue_c")
3739 True
3740 D_Lequal
3741 Nothing
3742 False
3743 "Tex_2525124732"
3744 , StageAttrs
3745 (Just (B_DstColor, B_Zero))
3746 RGB_IdentityLighting
3747 A_Identity
3748 TG_Lightmap
3749 []
3750 ST_Lightmap
3751 True
3752 D_Lequal
3753 Nothing
3754 False
3755 "Tex_3226210144"]
3756 False)]
1881------------ tooltips 3757------------ tooltips
1882testdata/SampleMaterial.lc 3:1-3:15 3758testdata/SampleMaterial.lc 3:1-3:15
1883 [(String, CommonAttrs)] 3759 [(String, CommonAttrs)]
diff --git a/testdata/ambig.out b/testdata/ambig.out
index ae29a38e..dd058a85 100644
--- a/testdata/ambig.out
+++ b/testdata/ambig.out
@@ -1,7 +1,7 @@
1main is not found 1main is not found
2------------ desugared source code 2------------ desugared source code
3h 3h
4 = \(a :: _) (b :: _) _ -> _rhs 4 = \(a :: _) (b :: _) (_ :: _) -> _rhs
5 let 5 let
6 c 6 c
7 = _rhs 7 = _rhs
@@ -14,8 +14,16 @@ h
14 d) 14 d)
15 b) 15 b)
16 in c 16 in c
17------------ trace 17------------ core code
18h :: forall a b c d . (b -> d -> c) -> (b, d) -> a -> c 18h :: forall a b c d . (b -> d -> c) -> (b, d) -> a -> c
19h
20 = \_ a b c d e _ -> _rhs
21 (hlistConsCase
22 a
23 [c]
24 b
25 (\f g -> hlistConsCase c [] b (\h i -> hlistNilCase b (d f h) i) g)
26 e)
19------------ tooltips 27------------ tooltips
20testdata/ambig.lc 4:1-4:2 28testdata/ambig.lc 4:1-4:2
21 forall a b c d . (b -> d -> c) -> (b, d) -> a -> c 29 forall a b c d . (b -> d -> c) -> (b, d) -> a -> c
diff --git a/testdata/complex.out b/testdata/complex.out
index a040aee0..913661e9 100644
--- a/testdata/complex.out
+++ b/testdata/complex.out
@@ -8,7 +8,7 @@ data Complex :: Repr -> Type where
8 Complex :: forall (a :: _) . Float -> Float -> Complex a 8 Complex :: forall (a :: _) . Float -> Float -> Complex a
9 9
10repr :: forall (a :: _) . Complex a -> Repr 10repr :: forall (a :: _) . Complex a -> Repr
11repr = \ @(a :: _) _ -> _rhs a 11repr = \ @(a :: _) (_ :: _) -> _rhs a
12 12
13normal :: Float -> Float -> Complex Normal 13normal :: Float -> Float -> Complex Normal
14normal = \(a :: _) (b :: _) -> _rhs (Complex a b) 14normal = \(a :: _) (b :: _) -> _rhs (Complex a b)
@@ -19,15 +19,18 @@ polar = \(a :: _) (b :: _) -> _rhs (Complex a b)
19cabs :: forall (a :: _) . Complex a -> Float 19cabs :: forall (a :: _) . Complex a -> Float
20cabs 20cabs
21 = \ @(a :: _) (b :: _) -> case'Repr 21 = \ @(a :: _) (b :: _) -> case'Repr
22 (\_ -> _) 22 (\(_ :: _) -> _)
23 (case'Complex (\_ _ -> _) (\(c :: _) (d :: _) -> _rhs (sqrt (c * c + d * d))) b) 23 (case'Complex
24 (case'Complex (\_ _ -> _) (\(e :: _) _ -> _rhs e) b) 24 (\(_ :: _) (_ :: _) -> _)
25 (\(c :: _) (d :: _) -> _rhs (sqrt (c * c + d * d)))
26 b)
27 (case'Complex (\(_ :: _) (_ :: _) -> _) (\(e :: _) (_ :: _) -> _rhs e) b)
25 a 28 a
26 29
27toPolar :: Complex Normal -> Complex Polar 30toPolar :: Complex Normal -> Complex Polar
28toPolar 31toPolar
29 = \(a :: _) -> case'Complex 32 = \(a :: _) -> case'Complex
30 (\_ _ -> _) 33 (\(_ :: _) (_ :: _) -> _)
31 (\(b :: _) (c :: _) -> _rhs 34 (\(b :: _) (c :: _) -> _rhs
32 let d = _rhs (sqrt (b * b + c * c)) in primIfThenElse 35 let d = _rhs (sqrt (b * b + c * c)) in primIfThenElse
33 (b > 0.0) 36 (b > 0.0)
@@ -50,22 +53,26 @@ toPolar
50toNormal :: Complex Polar -> Complex Normal 53toNormal :: Complex Polar -> Complex Normal
51toNormal 54toNormal
52 = \(a :: _) -> case'Complex 55 = \(a :: _) -> case'Complex
53 (\_ _ -> _) 56 (\(_ :: _) (_ :: _) -> _)
54 (\(b :: _) (c :: _) -> _rhs (Complex (b * cos c) (b * sin c))) 57 (\(b :: _) (c :: _) -> _rhs (Complex (b * cos c) (b * sin c)))
55 a 58 a
56 59
57it_should_fail = \(a :: _) -> case'Complex (\_ _ -> _) (\(b :: _) _ -> _rhs b) a 60it_should_fail
61 = \(a :: _) -> case'Complex
62 (\(_ :: _) (_ :: _) -> _)
63 (\(b :: _) (_ :: _) -> _rhs b)
64 a
58 65
59add :: forall (a :: _) (b :: _) . Complex a -> Complex b -> Complex a 66add :: forall (a :: _) (b :: _) . Complex a -> Complex b -> Complex a
60add 67add
61 = \ @(a :: _) @(b :: _) (c :: _) (d :: _) -> case'Repr 68 = \ @(a :: _) @(b :: _) (c :: _) (d :: _) -> case'Repr
62 (\_ -> _) 69 (\(_ :: _) -> _)
63 (case'Repr 70 (case'Repr
64 (\_ -> _) 71 (\(_ :: _) -> _)
65 (case'Complex 72 (case'Complex
66 (\_ _ -> _) 73 (\(_ :: _) (_ :: _) -> _)
67 (\(e :: _) (f :: _) -> case'Complex 74 (\(e :: _) (f :: _) -> case'Complex
68 (\_ _ -> _) 75 (\(_ :: _) (_ :: _) -> _)
69 (\(g :: _) (h :: _) -> _rhs (Complex (e + g) (f + h))) 76 (\(g :: _) (h :: _) -> _rhs (Complex (e + g) (f + h)))
70 d) 77 d)
71 c) 78 c)
@@ -77,13 +84,13 @@ add
77mul :: forall (a :: _) (b :: _) . Complex a -> Complex b -> Complex a 84mul :: forall (a :: _) (b :: _) . Complex a -> Complex b -> Complex a
78mul 85mul
79 = \ @(a :: _) @(b :: _) (c :: _) (d :: _) -> case'Repr 86 = \ @(a :: _) @(b :: _) (c :: _) (d :: _) -> case'Repr
80 (\_ -> _) 87 (\(_ :: _) -> _)
81 (case'Repr 88 (case'Repr
82 (\_ -> _) 89 (\(_ :: _) -> _)
83 (case'Complex 90 (case'Complex
84 (\_ _ -> _) 91 (\(_ :: _) (_ :: _) -> _)
85 (\(e :: _) (f :: _) -> case'Complex 92 (\(e :: _) (f :: _) -> case'Complex
86 (\_ _ -> _) 93 (\(_ :: _) (_ :: _) -> _)
87 (\(g :: _) (h :: _) -> _rhs (Complex (e * g - f * h) (f * g + e * h))) 94 (\(g :: _) (h :: _) -> _rhs (Complex (e * g - f * h) (f * g + e * h)))
88 d) 95 d)
89 c) 96 c)
@@ -100,37 +107,369 @@ s4 = \(a :: _) -> _rhs (s (s (s (s a))))
100iter = _rhs s4 107iter = _rhs s4
101 108
102mandel = \(a :: _) -> _rhs (cabs (iter a) < 2.0) 109mandel = \(a :: _) -> _rhs (cabs (iter a) < 2.0)
103------------ trace 110------------ core code
111'Complex :: Repr -> Type
112'Complex = <<type constructor with 1 indices; constructors: Complex>>
113
104'Repr :: Type 114'Repr :: Type
115'Repr = <<type constructor with 0 indices; constructors: Normal, Polar>>
116
117Complex :: forall (a :: Repr) . Float -> Float -> Complex a
118Complex = <<0th constructor of 'Complex>>
119
105Normal :: Repr 120Normal :: Repr
121Normal = <<0th constructor of 'Repr>>
122
106Polar :: Repr 123Polar :: Repr
107case'Repr 124Polar = <<1st constructor of 'Repr>>
108 :: forall (a :: Repr -> Type) 125
109 -> a 'Normal -> a 'Polar -> forall (b :: Repr) -> a b 126add :: forall (a :: Repr) (b :: Repr) . Complex a -> Complex b -> Complex a
110match'Repr :: forall (a :: Type -> Type) -> a Repr -> forall b -> a b -> a b 127add
111'Complex :: Repr -> Type 128 = \a b c d -> case'Repr
112Complex :: forall (a :: Repr) . Float -> Float -> Complex a 129 (\_ -> 'Complex a)
130 (case'Repr
131 (\_ -> 'Complex a)
132 (case'Complex
133 (\_ _ -> 'Complex a)
134 (\_ e f -> case'Complex
135 (\_ _ -> 'Complex a)
136 (\_ g h -> _rhs (Complex a (PrimAdd 'Float TT e g) (PrimAdd 'Float TT f h)))
137 b
138 d)
139 a
140 c)
141 (_rhs (undefined ('Complex a)))
142 b)
143 (_rhs (undefined ('Complex a)))
144 a
145
146cabs :: forall (a :: Repr) . Complex a -> Float
147cabs
148 = \a b -> case'Repr
149 (\_ -> 'Float)
150 (case'Complex
151 (\_ _ -> 'Float)
152 (\_ c d -> _rhs
153 (PrimSqrt
154 'Float
155 1
156 TT
157 (PrimAdd 'Float TT (PrimMul 'Float TT c c) (PrimMul 'Float TT d d))))
158 a
159 b)
160 (case'Complex (\_ _ -> 'Float) (\_ e _ -> _rhs e) a b)
161 a
162
113case'Complex 163case'Complex
114 :: forall (a :: forall (b :: Repr) -> Complex b -> Type) 164 :: forall (a :: forall (b :: Repr) -> Complex b -> Type)
115 -> (forall (c :: Repr) 165 -> (forall (c :: Repr)
116 . forall (d :: Float) (e :: Float) -> a c ('Complex c d e)) 166 . forall (d :: Float) (e :: Float) -> a c ('Complex c d e))
117 -> forall (f :: Repr) . forall (g :: Complex f) -> a f g 167 -> forall (f :: Repr) . forall (g :: Complex f) -> a f g
168case'Complex = \a b c d -> <<case function of a type with 0 parameters>>
169
170case'Repr
171 :: forall (a :: Repr -> Type)
172 -> a 'Normal -> a 'Polar -> forall (b :: Repr) -> a b
173case'Repr = \a b c d -> <<case function of a type with 0 parameters>>
174
175it_should_fail :: forall (a :: Repr) . Complex a -> Float
176it_should_fail = \a b -> case'Complex (\_ _ -> 'Float) (\_ c _ -> _rhs c) a b
177
178iter :: forall (a :: Repr) . Complex a -> Complex a
179iter = _rhs s4
180
181mandel :: forall (a :: Repr) . Complex a -> VecScalar 1 Bool
182mandel
183 = \a b -> _rhs
184 (PrimLessThan
185 'Float
186 1
187 'Float
188 'Bool
189 TT
190 TT
191 TT
192 (cabs
193 a
194 (add
195 a
196 a
197 (mul
198 a
199 a
200 (add
201 a
202 a
203 (mul
204 a
205 a
206 (add
207 a
208 a
209 (mul a a (add a a (mul a a b b) b) (add a a (mul a a b b) b))
210 (add a a (mul a a b b) b))
211 (add
212 a
213 a
214 (mul a a (add a a (mul a a b b) b) (add a a (mul a a b b) b))
215 (add a a (mul a a b b) b)))
216 (add
217 a
218 a
219 (mul a a (add a a (mul a a b b) b) (add a a (mul a a b b) b))
220 (add a a (mul a a b b) b)))
221 (add
222 a
223 a
224 (mul
225 a
226 a
227 (add
228 a
229 a
230 (mul a a (add a a (mul a a b b) b) (add a a (mul a a b b) b))
231 (add a a (mul a a b b) b))
232 (add
233 a
234 a
235 (mul a a (add a a (mul a a b b) b) (add a a (mul a a b b) b))
236 (add a a (mul a a b b) b)))
237 (add
238 a
239 a
240 (mul a a (add a a (mul a a b b) b) (add a a (mul a a b b) b))
241 (add a a (mul a a b b) b))))
242 (add
243 a
244 a
245 (mul
246 a
247 a
248 (add
249 a
250 a
251 (mul a a (add a a (mul a a b b) b) (add a a (mul a a b b) b))
252 (add a a (mul a a b b) b))
253 (add
254 a
255 a
256 (mul a a (add a a (mul a a b b) b) (add a a (mul a a b b) b))
257 (add a a (mul a a b b) b)))
258 (add
259 a
260 a
261 (mul a a (add a a (mul a a b b) b) (add a a (mul a a b b) b))
262 (add a a (mul a a b b) b)))))
263 2.0)
264
118match'Complex 265match'Complex
119 :: forall (a :: Type -> Type) 266 :: forall (a :: Type -> Type)
120 -> (forall (b :: Repr) -> a (Complex b)) -> forall c -> a c -> a c 267 -> (forall (b :: Repr) -> a (Complex b)) -> forall c -> a c -> a c
121repr :: forall (a :: Repr) . Complex a -> Repr 268match'Complex = \a b c d -> <<type case function>>
269
270match'Repr :: forall (a :: Type -> Type) -> a Repr -> forall b -> a b -> a b
271match'Repr = \a b c d -> <<type case function>>
272
273mul :: forall (a :: Repr) (b :: Repr) . Complex a -> Complex b -> Complex a
274mul
275 = \a b c d -> case'Repr
276 (\_ -> 'Complex a)
277 (case'Repr
278 (\_ -> 'Complex a)
279 (case'Complex
280 (\_ _ -> 'Complex a)
281 (\_ e f -> case'Complex
282 (\_ _ -> 'Complex a)
283 (\_ g h -> _rhs
284 (Complex
285 a
286 (PrimSub 'Float TT (PrimMul 'Float TT e g) (PrimMul 'Float TT f h))
287 (PrimAdd 'Float TT (PrimMul 'Float TT f g) (PrimMul 'Float TT e h))))
288 b
289 d)
290 a
291 c)
292 (_rhs (undefined ('Complex a)))
293 b)
294 (_rhs (undefined ('Complex a)))
295 a
296
122normal :: Float -> Float -> Complex 'Normal 297normal :: Float -> Float -> Complex 'Normal
298normal = \a b -> _rhs (Complex Normal a b)
299
123polar :: Float -> Float -> Complex 'Polar 300polar :: Float -> Float -> Complex 'Polar
124cabs :: forall (a :: Repr) . Complex a -> Float 301polar = \a b -> _rhs (Complex Polar a b)
125toPolar :: Complex 'Normal -> Complex 'Polar 302
126toNormal :: Complex 'Polar -> Complex 'Normal 303repr :: forall (a :: Repr) . Complex a -> Repr
127it_should_fail :: forall (a :: Repr) . Complex a -> Float 304repr = \a _ -> _rhs a
128add :: forall (a :: Repr) (b :: Repr) . Complex a -> Complex b -> Complex a 305
129mul :: forall (a :: Repr) (b :: Repr) . Complex a -> Complex b -> Complex a
130s :: forall (a :: Repr) . Complex a -> Complex a 306s :: forall (a :: Repr) . Complex a -> Complex a
307s = \a b -> _rhs (add a a (mul a a b b) b)
308
131s4 :: forall (a :: Repr) . Complex a -> Complex a 309s4 :: forall (a :: Repr) . Complex a -> Complex a
132iter :: forall (a :: Repr) . Complex a -> Complex a 310s4
133mandel :: forall (a :: Repr) . Complex a -> VecScalar 1 Bool 311 = \a b -> _rhs
312 (add
313 a
314 a
315 (mul
316 a
317 a
318 (add
319 a
320 a
321 (mul
322 a
323 a
324 (add
325 a
326 a
327 (mul a a (add a a (mul a a b b) b) (add a a (mul a a b b) b))
328 (add a a (mul a a b b) b))
329 (add
330 a
331 a
332 (mul a a (add a a (mul a a b b) b) (add a a (mul a a b b) b))
333 (add a a (mul a a b b) b)))
334 (add
335 a
336 a
337 (mul a a (add a a (mul a a b b) b) (add a a (mul a a b b) b))
338 (add a a (mul a a b b) b)))
339 (add
340 a
341 a
342 (mul
343 a
344 a
345 (add
346 a
347 a
348 (mul a a (add a a (mul a a b b) b) (add a a (mul a a b b) b))
349 (add a a (mul a a b b) b))
350 (add
351 a
352 a
353 (mul a a (add a a (mul a a b b) b) (add a a (mul a a b b) b))
354 (add a a (mul a a b b) b)))
355 (add
356 a
357 a
358 (mul a a (add a a (mul a a b b) b) (add a a (mul a a b b) b))
359 (add a a (mul a a b b) b))))
360 (add
361 a
362 a
363 (mul
364 a
365 a
366 (add
367 a
368 a
369 (mul a a (add a a (mul a a b b) b) (add a a (mul a a b b) b))
370 (add a a (mul a a b b) b))
371 (add
372 a
373 a
374 (mul a a (add a a (mul a a b b) b) (add a a (mul a a b b) b))
375 (add a a (mul a a b b) b)))
376 (add
377 a
378 a
379 (mul a a (add a a (mul a a b b) b) (add a a (mul a a b b) b))
380 (add a a (mul a a b b) b))))
381
382toNormal :: Complex 'Polar -> Complex 'Normal
383toNormal
384 = \a -> case'Complex
385 (\_ _ -> 'Complex Normal)
386 (\_ b c -> _rhs
387 (Complex
388 Normal
389 (PrimMul 'Float TT b (PrimCos 'Float 1 TT c))
390 (PrimMul 'Float TT b (PrimSin 'Float 1 TT c))))
391 Polar
392 a
393
394toPolar :: Complex 'Normal -> Complex 'Polar
395toPolar
396 = \a -> case'Complex
397 (\_ _ -> 'Complex Polar)
398 (\_ b c -> _rhs
399 (primIfThenElse
400 ('Complex Polar)
401 (PrimGreaterThan 'Float 1 'Float 'Bool TT TT TT b 0.0)
402 (Complex
403 Polar
404 (PrimSqrt
405 'Float
406 1
407 TT
408 (PrimAdd 'Float TT (PrimMul 'Float TT b b) (PrimMul 'Float TT c c)))
409 (PrimATan 'Float 1 TT (PrimDiv 'Float 'Float 1 TT TT c b)))
410 (primIfThenElse
411 ('Complex Polar)
412 (PrimAnd
413 (PrimLessThan 'Float 1 'Float 'Bool TT TT TT b 0.0)
414 (PrimGreaterThanEqual 'Float 1 'Float 'Bool TT TT TT c 0.0))
415 (Complex
416 Polar
417 (PrimSqrt
418 'Float
419 1
420 TT
421 (PrimAdd 'Float TT (PrimMul 'Float TT b b) (PrimMul 'Float TT c c)))
422 (PrimAdd
423 'Float
424 TT
425 (PrimATan 'Float 1 TT (PrimDiv 'Float 'Float 1 TT TT c b))
426 3.141592653589793))
427 (primIfThenElse
428 ('Complex Polar)
429 (PrimAnd
430 (PrimLessThan 'Float 1 'Float 'Bool TT TT TT b 0.0)
431 (PrimLessThan 'Float 1 'Float 'Bool TT TT TT c 0.0))
432 (Complex
433 Polar
434 (PrimSqrt
435 'Float
436 1
437 TT
438 (PrimAdd 'Float TT (PrimMul 'Float TT b b) (PrimMul 'Float TT c c)))
439 (PrimSub
440 'Float
441 TT
442 (PrimATan 'Float 1 TT (PrimDiv 'Float 'Float 1 TT TT c b))
443 3.141592653589793))
444 (primIfThenElse
445 ('Complex Polar)
446 (PrimAnd
447 (isEQ (primCompareFloat b 0.0))
448 (PrimGreaterThanEqual 'Float 1 'Float 'Bool TT TT TT c 0.0))
449 (Complex
450 Polar
451 (PrimSqrt
452 'Float
453 1
454 TT
455 (PrimAdd 'Float TT (PrimMul 'Float TT b b) (PrimMul 'Float TT c c)))
456 1.5707963267948966)
457 (primIfThenElse
458 ('Complex Polar)
459 (PrimAnd
460 (isEQ (primCompareFloat b 0.0))
461 (PrimLessThan 'Float 1 'Float 'Bool TT TT TT c 0.0))
462 (Complex
463 Polar
464 (PrimSqrt
465 'Float
466 1
467 TT
468 (PrimAdd 'Float TT (PrimMul 'Float TT b b) (PrimMul 'Float TT c c)))
469 -1.5707963267948966)
470 (undefined ('Complex Polar))))))))
471 Normal
472 a
134------------ tooltips 473------------ tooltips
135testdata/complex.lc 3:6-3:10 474testdata/complex.lc 3:6-3:10
136 Type | Type | Type | Type | Type | Type 475 Type | Type | Type | Type | Type | Type
diff --git a/testdata/data.out b/testdata/data.out
index 1f6a592f..1d441619 100644
--- a/testdata/data.out
+++ b/testdata/data.out
@@ -14,19 +14,19 @@ data Data2 :: Type where
14 14
15x 15x
16 = \(a :: _) -> case'Data2 16 = \(a :: _) -> case'Data2
17 (\_ -> _) 17 (\(_ :: _) -> _)
18 (\_ -> _rhs undefined) 18 (\(_ :: _) -> _rhs undefined)
19 (\(b :: _) _ -> _rhs b) 19 (\(b :: _) (_ :: _) -> _rhs b)
20 (\(c :: _) -> _rhs c) 20 (\(c :: _) -> _rhs c)
21 (_rhs undefined) 21 (_rhs undefined)
22 a 22 a
23 23
24y 24y
25 = \(a :: _) -> case'Data2 25 = \(a :: _) -> case'Data2
26 (\_ -> _) 26 (\(_ :: _) -> _)
27 (\_ -> _rhs undefined) 27 (\(_ :: _) -> _rhs undefined)
28 (\_ (b :: _) -> _rhs b) 28 (\(_ :: _) (b :: _) -> _rhs b)
29 (\_ -> _rhs undefined) 29 (\(_ :: _) -> _rhs undefined)
30 (_rhs undefined) 30 (_rhs undefined)
31 a 31 a
32 32
@@ -37,61 +37,115 @@ data Data5 (_ :: Type) (_ :: Type) (_ :: Type) :: Type where
37 37
38a5 38a5
39 = \(a :: _) -> case'Data5 39 = \(a :: _) -> case'Data5
40 (\_ -> _) 40 (\(_ :: _) -> _)
41 (\(b :: _) -> _rhs b) 41 (\(b :: _) -> _rhs b)
42 (\(c :: _) _ _ -> _rhs c) 42 (\(c :: _) (_ :: _) (_ :: _) -> _rhs c)
43 (\_ _ _ _ _ -> _rhs undefined) 43 (\(_ :: _) (_ :: _) (_ :: _) (_ :: _) (_ :: _) -> _rhs undefined)
44 a 44 a
45 45
46b5 46b5
47 = \(a :: _) -> case'Data5 47 = \(a :: _) -> case'Data5
48 (\_ -> _) 48 (\(_ :: _) -> _)
49 (\_ -> _rhs undefined) 49 (\(_ :: _) -> _rhs undefined)
50 (\_ (b :: _) _ -> _rhs b) 50 (\(_ :: _) (b :: _) (_ :: _) -> _rhs b)
51 (\_ _ _ _ _ -> _rhs undefined) 51 (\(_ :: _) (_ :: _) (_ :: _) (_ :: _) (_ :: _) -> _rhs undefined)
52 a 52 a
53 53
54c5 54c5
55 = \(a :: _) -> case'Data5 55 = \(a :: _) -> case'Data5
56 (\_ -> _) 56 (\(_ :: _) -> _)
57 (\_ -> _rhs undefined) 57 (\(_ :: _) -> _rhs undefined)
58 (\_ _ (b :: _) -> _rhs b) 58 (\(_ :: _) (_ :: _) (b :: _) -> _rhs b)
59 (\_ _ _ _ _ -> _rhs undefined) 59 (\(_ :: _) (_ :: _) (_ :: _) (_ :: _) (_ :: _) -> _rhs undefined)
60 a 60 a
61------------ trace 61------------ core code
62'Data0 :: Type 62'Data0 :: Type
63'Data0 = <<type constructor with 0 indices; constructors: Data0>>
64
65'Data1 :: Type -> Type -> Type -> Type
66'Data1 = <<type constructor with 0 indices; constructors: Data1>>
67
68'Data2 :: Type
69'Data2
70 = <<type constructor with 0 indices; constructors: Data21, Data22, Data23, Data24>>
71
72'Data5 :: Type -> Type -> Type -> Type
73'Data5
74 = <<type constructor with 0 indices; constructors: Data51, Data52, Data53>>
75
63Data0 :: Data0 76Data0 :: Data0
77Data0 = <<0th constructor of 'Data0>>
78
79Data1 :: forall a b c . a -> b -> c -> Data1 a b c
80Data1 = <<0th constructor of 'Data1>>
81
82Data21 :: Int -> Data2
83Data21 = <<0th constructor of 'Data2>>
84
85Data22 :: Int -> Int -> Data2
86Data22 = <<1st constructor of 'Data2>>
87
88Data23 :: Int -> Data2
89Data23 = <<2nd constructor of 'Data2>>
90
91Data24 :: Data2
92Data24 = <<3rd constructor of 'Data2>>
93
94Data51 :: forall a b c . a -> Data5 a b c
95Data51 = <<0th constructor of 'Data5>>
96
97Data52 :: forall a b c . a -> b -> c -> Data5 a b c
98Data52 = <<1st constructor of 'Data5>>
99
100Data53 :: forall a b c . Int -> a -> Float -> b -> c -> Data5 a b c
101Data53 = <<2nd constructor of 'Data5>>
102
103a5 :: forall a b c . Data5 a b c -> a
104a5
105 = \a _ _ b -> case'Data5
106 (\_ -> a)
107 (\c -> _rhs c)
108 (\d _ _ -> _rhs d)
109 (\_ _ _ _ _ -> _rhs (undefined a))
110 b
111
112b5 :: forall a b c . Data5 a b c -> b
113b5
114 = \_ a _ b -> case'Data5
115 (\_ -> a)
116 (\_ -> _rhs (undefined a))
117 (\_ c _ -> _rhs c)
118 (\_ _ _ _ _ -> _rhs (undefined a))
119 b
120
121c5 :: forall a b c . Data5 a b c -> c
122c5
123 = \_ _ a b -> case'Data5
124 (\_ -> a)
125 (\_ -> _rhs (undefined a))
126 (\_ _ c -> _rhs c)
127 (\_ _ _ _ _ -> _rhs (undefined a))
128 b
129
64case'Data0 130case'Data0
65 :: forall (a :: Data0 -> Type) -> a 'Data0 -> forall (b :: Data0) -> a b 131 :: forall (a :: Data0 -> Type) -> a 'Data0 -> forall (b :: Data0) -> a b
66match'Data0 :: forall (a :: Type -> Type) -> a Data0 -> forall b -> a b -> a b 132case'Data0 = \a b c -> <<case function of a type with 0 parameters>>
67'Data1 :: Type -> Type -> Type -> Type 133
68Data1 :: forall a b c . a -> b -> c -> Data1 a b c
69case'Data1 134case'Data1
70 :: forall a b c 135 :: forall a b c
71 . forall (d :: Data1 a b c -> Type) 136 . forall (d :: Data1 a b c -> Type)
72 -> (forall (e :: a) (f :: b) (g :: c) -> d ('Data1 e f g)) 137 -> (forall (e :: a) (f :: b) (g :: c) -> d ('Data1 e f g))
73 -> forall (h :: Data1 a b c) -> d h 138 -> forall (h :: Data1 a b c) -> d h
74match'Data1 139case'Data1 = \_ _ _ a b c -> <<case function of a type with 3 parameters>>
75 :: forall (a :: Type -> Type) 140
76 -> (forall b c d -> a (Data1 b c d)) -> forall e -> a e -> a e
77'Data2 :: Type
78Data21 :: Int -> Data2
79Data22 :: Int -> Int -> Data2
80Data23 :: Int -> Data2
81Data24 :: Data2
82case'Data2 141case'Data2
83 :: forall (a :: Data2 -> Type) 142 :: forall (a :: Data2 -> Type)
84 -> (forall (b :: Int) -> a ('Data21 b)) 143 -> (forall (b :: Int) -> a ('Data21 b))
85 -> (forall (c :: Int) (d :: Int) -> a ('Data22 c d)) 144 -> (forall (c :: Int) (d :: Int) -> a ('Data22 c d))
86 -> (forall (e :: Int) -> a ('Data23 e)) 145 -> (forall (e :: Int) -> a ('Data23 e))
87 -> a 'Data24 -> forall (f :: Data2) -> a f 146 -> a 'Data24 -> forall (f :: Data2) -> a f
88match'Data2 :: forall (a :: Type -> Type) -> a Data2 -> forall b -> a b -> a b 147case'Data2 = \a b c d e f -> <<case function of a type with 0 parameters>>
89x :: Data2 -> Int 148
90y :: Data2 -> Int
91'Data5 :: Type -> Type -> Type -> Type
92Data51 :: forall a b c . a -> Data5 a b c
93Data52 :: forall a b c . a -> b -> c -> Data5 a b c
94Data53 :: forall a b c . Int -> a -> Float -> b -> c -> Data5 a b c
95case'Data5 149case'Data5
96 :: forall a b c 150 :: forall a b c
97 . forall (d :: Data5 a b c -> Type) 151 . forall (d :: Data5 a b c -> Type)
@@ -100,12 +154,43 @@ case'Data5
100 -> (forall (i :: Int) (j :: a) (k :: Float) (l :: b) (m :: c) 154 -> (forall (i :: Int) (j :: a) (k :: Float) (l :: b) (m :: c)
101 -> d ('Data53 i j k l m)) 155 -> d ('Data53 i j k l m))
102 -> forall (n :: Data5 a b c) -> d n 156 -> forall (n :: Data5 a b c) -> d n
157case'Data5 = \_ _ _ a b c d e -> <<case function of a type with 3 parameters>>
158
159match'Data0 :: forall (a :: Type -> Type) -> a Data0 -> forall b -> a b -> a b
160match'Data0 = \a b c d -> <<type case function>>
161
162match'Data1
163 :: forall (a :: Type -> Type)
164 -> (forall b c d -> a (Data1 b c d)) -> forall e -> a e -> a e
165match'Data1 = \a b c d -> <<type case function>>
166
167match'Data2 :: forall (a :: Type -> Type) -> a Data2 -> forall b -> a b -> a b
168match'Data2 = \a b c d -> <<type case function>>
169
103match'Data5 170match'Data5
104 :: forall (a :: Type -> Type) 171 :: forall (a :: Type -> Type)
105 -> (forall b c d -> a (Data5 b c d)) -> forall e -> a e -> a e 172 -> (forall b c d -> a (Data5 b c d)) -> forall e -> a e -> a e
106a5 :: forall a b c . Data5 a b c -> a 173match'Data5 = \a b c d -> <<type case function>>
107b5 :: forall a b c . Data5 a b c -> b 174
108c5 :: forall a b c . Data5 a b c -> c 175x :: Data2 -> Int
176x
177 = \a -> case'Data2
178 (\_ -> 'Int)
179 (\_ -> _rhs (undefined 'Int))
180 (\b _ -> _rhs b)
181 (\c -> _rhs c)
182 (_rhs (undefined 'Int))
183 a
184
185y :: Data2 -> Int
186y
187 = \a -> case'Data2
188 (\_ -> 'Int)
189 (\_ -> _rhs (undefined 'Int))
190 (\_ b -> _rhs b)
191 (\_ -> _rhs (undefined 'Int))
192 (_rhs (undefined 'Int))
193 a
109------------ tooltips 194------------ tooltips
110testdata/data.lc 1:6-1:11 195testdata/data.lc 1:6-1:11
111 Type | Type | Type | Type | Type 196 Type | Type | Type | Type | Type
diff --git a/testdata/empty.out b/testdata/empty.out
index 4cf07220..b764cc62 100644
--- a/testdata/empty.out
+++ b/testdata/empty.out
@@ -2,10 +2,15 @@ main is not found
2------------ desugared source code 2------------ desugared source code
3data Empty :: Type where 3data Empty :: Type where
4 4
5------------ trace 5------------ core code
6'Empty :: Type 6'Empty :: Type
7'Empty = <<type constructor with 0 indices; constructors: >>
8
7case'Empty :: forall (a :: Empty -> Type) (b :: Empty) -> a b 9case'Empty :: forall (a :: Empty -> Type) (b :: Empty) -> a b
10case'Empty = \a b -> <<case function of a type with 0 parameters>>
11
8match'Empty :: forall (a :: Type -> Type) -> a Empty -> forall b -> a b -> a b 12match'Empty :: forall (a :: Type -> Type) -> a Empty -> forall b -> a b -> a b
13match'Empty = \a b c d -> <<type case function>>
9------------ tooltips 14------------ tooltips
10testdata/empty.lc 3:6-3:11 15testdata/empty.lc 3:6-3:11
11 Type | Type | Type | Type \ No newline at end of file 16 Type | Type | Type | Type \ No newline at end of file
diff --git a/testdata/id.out b/testdata/id.out
index a7e45fe7..c05db920 100644
--- a/testdata/id.out
+++ b/testdata/id.out
@@ -1,8 +1,9 @@
1main is not found 1main is not found
2------------ desugared source code 2------------ desugared source code
3main' = _rhs let a = _rhs \(b :: _) -> b in (a 4.0, a True) 3main' = _rhs let a = _rhs \(b :: _) -> b in (a 4.0, a True)
4------------ trace 4------------ core code
5main' :: (Float, Bool) 5main' :: (Float, Bool)
6main' = _rhs (4.0, True)
6------------ tooltips 7------------ tooltips
7testdata/id.lc 1:1-1:6 8testdata/id.lc 1:1-1:6
8 (Float, Bool) 9 (Float, Bool)
diff --git a/testdata/instantiate.out b/testdata/instantiate.out
index bda35a20..f1310ba2 100644
--- a/testdata/instantiate.out
+++ b/testdata/instantiate.out
@@ -1,8 +1,9 @@
1main is not found 1main is not found
2------------ desugared source code 2------------ desugared source code
3main' = _rhs let a = _rhs PrimAdd in a (V2 1.0 2.0) (V2 1.0 2.0) 3main' = _rhs let a = _rhs PrimAdd in a (V2 1.0 2.0) (V2 1.0 2.0)
4------------ trace 4------------ core code
5main' :: VecS Float 2 5main' :: VecS Float 2
6main' = _rhs (PrimAdd ('VecS 'Float 2) TT (V2 1.0 2.0) (V2 1.0 2.0))
6------------ tooltips 7------------ tooltips
7testdata/instantiate.lc 1:1-1:6 8testdata/instantiate.lc 1:1-1:6
8 VecS Float 2 9 VecS Float 2
diff --git a/testdata/language-features/basic-list/list01.out b/testdata/language-features/basic-list/list01.out
index c4a54c52..14eb5c08 100644
--- a/testdata/language-features/basic-list/list01.out
+++ b/testdata/language-features/basic-list/list01.out
@@ -5,10 +5,16 @@ value1 = _rhs []
5value2 = _rhs [fromInt 1, fromInt 2, fromInt 3, fromInt 4] 5value2 = _rhs [fromInt 1, fromInt 2, fromInt 3, fromInt 4]
6 6
7value3 = _rhs ['h', 'e', 'l', 'l', 'o'] 7value3 = _rhs ['h', 'e', 'l', 'l', 'o']
8------------ trace 8------------ core code
9value1 :: forall a . [a] 9value1 :: forall a . [a]
10value1 = _rhs []
11
10value2 :: forall a . Num a => [a] 12value2 :: forall a . Num a => [a]
13value2
14 = \a b -> _rhs [fromInt a b 1, fromInt a b 2, fromInt a b 3, fromInt a b 4]
15
11value3 :: [Char] 16value3 :: [Char]
17value3 = _rhs ['h', 'e', 'l', 'l', 'o']
12------------ tooltips 18------------ tooltips
13testdata/language-features/basic-list/list01.lc 1:1-1:7 19testdata/language-features/basic-list/list01.lc 1:1-1:7
14 forall a . [a] 20 forall a . [a]
diff --git a/testdata/language-features/basic-list/list02.out b/testdata/language-features/basic-list/list02.out
index 049f23d2..8710b507 100644
--- a/testdata/language-features/basic-list/list02.out
+++ b/testdata/language-features/basic-list/list02.out
@@ -5,10 +5,16 @@ value1 = _rhs []
5value2 = _rhs [fromInt 1, fromInt 2, fromInt 3, fromInt 4] 5value2 = _rhs [fromInt 1, fromInt 2, fromInt 3, fromInt 4]
6 6
7value3 = _rhs ['h', 'e', 'l', 'l', 'o'] 7value3 = _rhs ['h', 'e', 'l', 'l', 'o']
8------------ trace 8------------ core code
9value1 :: forall a . [a] 9value1 :: forall a . [a]
10value1 = _rhs []
11
10value2 :: forall a . Num a => [a] 12value2 :: forall a . Num a => [a]
13value2
14 = \a b -> _rhs [fromInt a b 1, fromInt a b 2, fromInt a b 3, fromInt a b 4]
15
11value3 :: [Char] 16value3 :: [Char]
17value3 = _rhs ['h', 'e', 'l', 'l', 'o']
12------------ tooltips 18------------ tooltips
13testdata/language-features/basic-list/list02.lc 1:1-1:7 19testdata/language-features/basic-list/list02.lc 1:1-1:7
14 forall a . [a] 20 forall a . [a]
diff --git a/testdata/language-features/basic-list/list08.out b/testdata/language-features/basic-list/list08.out
index 22e97544..e92d9b36 100644
--- a/testdata/language-features/basic-list/list08.out
+++ b/testdata/language-features/basic-list/list08.out
@@ -1,8 +1,9 @@
1main is not found 1main is not found
2------------ desugared source code 2------------ desugared source code
3value = _rhs [fromInt 1, 1.2] 3value = _rhs [fromInt 1, 1.2]
4------------ trace 4------------ core code
5value :: [Float] 5value :: [Float]
6value = _rhs [1.0, 1.2]
6------------ tooltips 7------------ tooltips
7testdata/language-features/basic-list/list08.lc 1:1-1:6 8testdata/language-features/basic-list/list08.lc 1:1-1:6
8 [Float] 9 [Float]
diff --git a/testdata/language-features/basic-list/list09.out b/testdata/language-features/basic-list/list09.out
index 1b80e97a..676c1ed6 100644
--- a/testdata/language-features/basic-list/list09.out
+++ b/testdata/language-features/basic-list/list09.out
@@ -1,8 +1,9 @@
1main is not found 1main is not found
2------------ desugared source code 2------------ desugared source code
3value = _rhs ([fromInt 1, 1.2] :: [Float]) 3value = _rhs ([fromInt 1, 1.2] :: [Float])
4------------ trace 4------------ core code
5value :: [Float] 5value :: [Float]
6value = _rhs [1.0, 1.2]
6------------ tooltips 7------------ tooltips
7testdata/language-features/basic-list/list09.lc 1:1-1:6 8testdata/language-features/basic-list/list09.lc 1:1-1:6
8 [Float] 9 [Float]
diff --git a/testdata/language-features/basic-list/list11.out b/testdata/language-features/basic-list/list11.out
index 74537514..00b52310 100644
--- a/testdata/language-features/basic-list/list11.out
+++ b/testdata/language-features/basic-list/list11.out
@@ -1,8 +1,9 @@
1main is not found 1main is not found
2------------ desugared source code 2------------ desugared source code
3value = _rhs [fromInt 1] 3value = _rhs [fromInt 1]
4------------ trace 4------------ core code
5value :: forall a . Num a => [a] 5value :: forall a . Num a => [a]
6value = \a b -> _rhs [fromInt a b 1]
6------------ tooltips 7------------ tooltips
7testdata/language-features/basic-list/list11.lc 1:1-1:6 8testdata/language-features/basic-list/list11.lc 1:1-1:6
8 forall a . Num a => [a] 9 forall a . Num a => [a]
diff --git a/testdata/language-features/basic-list/list12.out b/testdata/language-features/basic-list/list12.out
index 043d44a7..9e289ae6 100644
--- a/testdata/language-features/basic-list/list12.out
+++ b/testdata/language-features/basic-list/list12.out
@@ -1,8 +1,11 @@
1main is not found 1main is not found
2------------ desugared source code 2------------ desugared source code
3value = _rhs [fromInt 1, fromInt 2, fromInt 3, fromInt 4, fromInt 5] 3value = _rhs [fromInt 1, fromInt 2, fromInt 3, fromInt 4, fromInt 5]
4------------ trace 4------------ core code
5value :: forall a . Num a => [a] 5value :: forall a . Num a => [a]
6value
7 = \a b -> _rhs
8 [fromInt a b 1, fromInt a b 2, fromInt a b 3, fromInt a b 4, fromInt a b 5]
6------------ tooltips 9------------ tooltips
7testdata/language-features/basic-list/list12.lc 1:1-1:6 10testdata/language-features/basic-list/list12.lc 1:1-1:6
8 forall a . Num a => [a] 11 forall a . Num a => [a]
diff --git a/testdata/language-features/basic-list/list13.out b/testdata/language-features/basic-list/list13.out
index 42a750fc..bb27f13d 100644
--- a/testdata/language-features/basic-list/list13.out
+++ b/testdata/language-features/basic-list/list13.out
@@ -1,8 +1,9 @@
1main is not found 1main is not found
2------------ desugared source code 2------------ desugared source code
3value = _rhs ['h', 'e', 'l', 'l', 'o'] 3value = _rhs ['h', 'e', 'l', 'l', 'o']
4------------ trace 4------------ core code
5value :: [Char] 5value :: [Char]
6value = _rhs ['h', 'e', 'l', 'l', 'o']
6------------ tooltips 7------------ tooltips
7testdata/language-features/basic-list/list13.lc 1:1-1:6 8testdata/language-features/basic-list/list13.lc 1:1-1:6
8 [Char] 9 [Char]
diff --git a/testdata/language-features/basic-list/listcomp01.out b/testdata/language-features/basic-list/listcomp01.out
index bcfa6659..e02d3045 100644
--- a/testdata/language-features/basic-list/listcomp01.out
+++ b/testdata/language-features/basic-list/listcomp01.out
@@ -1,8 +1,9 @@
1main is not found 1main is not found
2------------ desugared source code 2------------ desugared source code
3value = _rhs (concatMap (\_ -> [()]) [(), (), (), ()]) 3value = _rhs (concatMap (\(_ :: _) -> [()]) [(), (), (), ()])
4------------ trace 4------------ core code
5value :: [()] 5value :: [()]
6value = _rhs [(), (), (), ()]
6------------ tooltips 7------------ tooltips
7testdata/language-features/basic-list/listcomp01.lc 1:1-1:6 8testdata/language-features/basic-list/listcomp01.lc 1:1-1:6
8 [()] 9 [()]
diff --git a/testdata/language-features/basic-list/listcomp02.out b/testdata/language-features/basic-list/listcomp02.out
index a7287a6f..aa811e16 100644
--- a/testdata/language-features/basic-list/listcomp02.out
+++ b/testdata/language-features/basic-list/listcomp02.out
@@ -3,9 +3,12 @@ main is not found
3l = _rhs [(), (), (), ()] 3l = _rhs [(), (), (), ()]
4 4
5value = _rhs (concatMap (\(a :: _) -> [a]) l) 5value = _rhs (concatMap (\(a :: _) -> [a]) l)
6------------ trace 6------------ core code
7l :: [()] 7l :: [()]
8l = _rhs [(), (), (), ()]
9
8value :: [()] 10value :: [()]
11value = _rhs [(), (), (), ()]
9------------ tooltips 12------------ tooltips
10testdata/language-features/basic-list/listcomp02.lc 1:1-1:2 13testdata/language-features/basic-list/listcomp02.lc 1:1-1:2
11 [()] 14 [()]
diff --git a/testdata/language-features/basic-list/listcomp03.out b/testdata/language-features/basic-list/listcomp03.out
index 36571c98..e3192970 100644
--- a/testdata/language-features/basic-list/listcomp03.out
+++ b/testdata/language-features/basic-list/listcomp03.out
@@ -1,8 +1,10 @@
1main is not found 1main is not found
2------------ desugared source code 2------------ desugared source code
3value = _rhs (concatMap (\_ -> primIfThenElse False [()] []) [(), (), (), ()]) 3value
4------------ trace 4 = _rhs (concatMap (\(_ :: _) -> primIfThenElse False [()] []) [(), (), (), ()])
5------------ core code
5value :: [()] 6value :: [()]
7value = _rhs []
6------------ tooltips 8------------ tooltips
7testdata/language-features/basic-list/listcomp03.lc 1:1-1:6 9testdata/language-features/basic-list/listcomp03.lc 1:1-1:6
8 [()] 10 [()]
diff --git a/testdata/language-features/basic-list/listcomp04.out b/testdata/language-features/basic-list/listcomp04.out
index 6f615c06..9352d6ae 100644
--- a/testdata/language-features/basic-list/listcomp04.out
+++ b/testdata/language-features/basic-list/listcomp04.out
@@ -2,10 +2,13 @@ main is not found
2------------ desugared source code 2------------ desugared source code
3l = _rhs [(), (), (), ()] 3l = _rhs [(), (), (), ()]
4 4
5value = _rhs (concatMap (\_ -> concatMap (\_ -> [()]) l) l) 5value = _rhs (concatMap (\(_ :: _) -> concatMap (\(_ :: _) -> [()]) l) l)
6------------ trace 6------------ core code
7l :: [()] 7l :: [()]
8l = _rhs [(), (), (), ()]
9
8value :: [()] 10value :: [()]
11value = _rhs [(), (), (), (), (), (), (), (), (), (), (), (), (), (), (), ()]
9------------ tooltips 12------------ tooltips
10testdata/language-features/basic-list/listcomp04.lc 1:1-1:2 13testdata/language-features/basic-list/listcomp04.lc 1:1-1:2
11 [()] 14 [()]
diff --git a/testdata/language-features/basic-list/listcomp05.out b/testdata/language-features/basic-list/listcomp05.out
index b5790541..c3984bc7 100644
--- a/testdata/language-features/basic-list/listcomp05.out
+++ b/testdata/language-features/basic-list/listcomp05.out
@@ -3,10 +3,11 @@ main is not found
3value 3value
4 = _rhs 4 = _rhs
5 (concatMap 5 (concatMap
6 (\_ -> let a = _rhs (); b = _rhs ((\(c :: _) -> c) a) in [b]) 6 (\(_ :: _) -> let a = _rhs (); b = _rhs ((\(c :: _) -> c) a) in [b])
7 [(), ()]) 7 [(), ()])
8------------ trace 8------------ core code
9value :: [()] 9value :: [()]
10value = _rhs [(), ()]
10------------ tooltips 11------------ tooltips
11testdata/language-features/basic-list/listcomp05.lc 1:1-1:6 12testdata/language-features/basic-list/listcomp05.lc 1:1-1:6
12 [()] 13 [()]
diff --git a/testdata/language-features/basic-list/listcomp06.out b/testdata/language-features/basic-list/listcomp06.out
index 7209b42a..3fc12622 100644
--- a/testdata/language-features/basic-list/listcomp06.out
+++ b/testdata/language-features/basic-list/listcomp06.out
@@ -3,7 +3,7 @@ main is not found
3value1 3value1
4 = _rhs 4 = _rhs
5 (concatMap 5 (concatMap
6 (\_ -> let a = _rhs (); b = _rhs ((\(c :: _) -> c) a) in primIfThenElse 6 (\(_ :: _) -> let a = _rhs (); b = _rhs ((\(c :: _) -> c) a) in primIfThenElse
7 True 7 True
8 [b] 8 [b]
9 []) 9 [])
@@ -12,14 +12,17 @@ value1
12value2 12value2
13 = _rhs 13 = _rhs
14 (concatMap 14 (concatMap
15 (\_ -> primIfThenElse 15 (\(_ :: _) -> primIfThenElse
16 True 16 True
17 (let a = _rhs (); b = _rhs ((\(c :: _) -> c) a) in [b]) 17 (let a = _rhs (); b = _rhs ((\(c :: _) -> c) a) in [b])
18 []) 18 [])
19 [(), ()]) 19 [(), ()])
20------------ trace 20------------ core code
21value1 :: [()] 21value1 :: [()]
22value1 = _rhs [(), ()]
23
22value2 :: [()] 24value2 :: [()]
25value2 = _rhs [(), ()]
23------------ tooltips 26------------ tooltips
24testdata/language-features/basic-list/listcomp06.lc 1:1-1:7 27testdata/language-features/basic-list/listcomp06.lc 1:1-1:7
25 [()] 28 [()]
diff --git a/testdata/language-features/basic-list/listcomp07.out b/testdata/language-features/basic-list/listcomp07.out
index eeaa1292..1923e806 100644
--- a/testdata/language-features/basic-list/listcomp07.out
+++ b/testdata/language-features/basic-list/listcomp07.out
@@ -3,7 +3,7 @@ main is not found
3value1 3value1
4 = _rhs 4 = _rhs
5 (concatMap 5 (concatMap
6 (\_ -> let a = _rhs (); b = _rhs ((\(c :: _) -> c) a) in primIfThenElse 6 (\(_ :: _) -> let a = _rhs (); b = _rhs ((\(c :: _) -> c) a) in primIfThenElse
7 True 7 True
8 (let d = _rhs b; e = _rhs ((\(f :: _) -> f) d) in [b]) 8 (let d = _rhs b; e = _rhs ((\(f :: _) -> f) d) in [b])
9 []) 9 [])
@@ -12,7 +12,7 @@ value1
12value2 12value2
13 = _rhs 13 = _rhs
14 (concatMap 14 (concatMap
15 (\_ -> let a = _rhs (); b = _rhs ((\(c :: _) -> c) a) in primIfThenElse 15 (\(_ :: _) -> let a = _rhs (); b = _rhs ((\(c :: _) -> c) a) in primIfThenElse
16 True 16 True
17 (let d = _rhs b; e = _rhs ((\(f :: _) -> f) d) in [b]) 17 (let d = _rhs b; e = _rhs ((\(f :: _) -> f) d) in [b])
18 []) 18 [])
@@ -21,15 +21,20 @@ value2
21value3 21value3
22 = _rhs 22 = _rhs
23 (concatMap 23 (concatMap
24 (\_ -> let a = _rhs (); b = _rhs ((\(c :: _) -> c) a) in primIfThenElse 24 (\(_ :: _) -> let a = _rhs (); b = _rhs ((\(c :: _) -> c) a) in primIfThenElse
25 True 25 True
26 (let d = _rhs b; e = _rhs ((\(f :: _) -> f) d) in [b]) 26 (let d = _rhs b; e = _rhs ((\(f :: _) -> f) d) in [b])
27 []) 27 [])
28 [(), ()]) 28 [(), ()])
29------------ trace 29------------ core code
30value1 :: [()] 30value1 :: [()]
31value1 = _rhs [(), ()]
32
31value2 :: [()] 33value2 :: [()]
34value2 = _rhs [(), ()]
35
32value3 :: [()] 36value3 :: [()]
37value3 = _rhs [(), ()]
33------------ tooltips 38------------ tooltips
34testdata/language-features/basic-list/listcomp07.lc 1:1-1:7 39testdata/language-features/basic-list/listcomp07.lc 1:1-1:7
35 [()] 40 [()]
diff --git a/testdata/language-features/basic-list/listcomp09.out b/testdata/language-features/basic-list/listcomp09.out
index 502a9258..536f024a 100644
--- a/testdata/language-features/basic-list/listcomp09.out
+++ b/testdata/language-features/basic-list/listcomp09.out
@@ -1,8 +1,10 @@
1main is not found 1main is not found
2------------ desugared source code 2------------ desugared source code
3value1 = _rhs (concatMap (\_ -> [\(a :: _) -> hlistNilCase _ "Hello" a]) []) 3value1
4------------ trace 4 = _rhs (concatMap (\(_ :: _) -> [\(a :: _) -> hlistNilCase _ "Hello" a]) [])
5------------ core code
5value1 :: @Type -> [() -> String] 6value1 :: @Type -> [() -> String]
7value1 = \a -> _rhs []
6------------ tooltips 8------------ tooltips
7testdata/language-features/basic-list/listcomp09.lc 1:1-1:7 9testdata/language-features/basic-list/listcomp09.lc 1:1-1:7
8 @Type -> [() -> String] 10 @Type -> [() -> String]
diff --git a/testdata/language-features/basic-values/bool01.out b/testdata/language-features/basic-values/bool01.out
index 339dbe3a..ee5e9859 100644
--- a/testdata/language-features/basic-values/bool01.out
+++ b/testdata/language-features/basic-values/bool01.out
@@ -3,9 +3,12 @@ main is not found
3value1 = _rhs True 3value1 = _rhs True
4 4
5value2 = _rhs False 5value2 = _rhs False
6------------ trace 6------------ core code
7value1 :: Bool 7value1 :: Bool
8value1 = _rhs True
9
8value2 :: Bool 10value2 :: Bool
11value2 = _rhs False
9------------ tooltips 12------------ tooltips
10testdata/language-features/basic-values/bool01.lc 1:1-1:7 13testdata/language-features/basic-values/bool01.lc 1:1-1:7
11 Bool 14 Bool
diff --git a/testdata/language-features/basic-values/case01.out b/testdata/language-features/basic-values/case01.out
index 7d617350..ee13f28e 100644
--- a/testdata/language-features/basic-values/case01.out
+++ b/testdata/language-features/basic-values/case01.out
@@ -10,14 +10,25 @@ value4 = _rhs ((\(a :: _) -> hlistNilCase _ () a) ())
10 10
11value5 = _rhs ((\(a :: _) -> hlistNilCase _ () a) ()) 11value5 = _rhs ((\(a :: _) -> hlistNilCase _ () a) ())
12 12
13value6 = _rhs ((\_ -> ()) ()) 13value6 = _rhs ((\(_ :: _) -> ()) ())
14------------ trace 14------------ core code
15value1 :: () 15value1 :: ()
16value1 = _rhs ()
17
16value2 :: () 18value2 :: ()
19value2 = _rhs ()
20
17value3 :: () 21value3 :: ()
22value3 = _rhs ()
23
18value4 :: () 24value4 :: ()
25value4 = _rhs ()
26
19value5 :: () 27value5 :: ()
28value5 = _rhs ()
29
20value6 :: () 30value6 :: ()
31value6 = _rhs ()
21------------ tooltips 32------------ tooltips
22testdata/language-features/basic-values/case01.lc 1:1-1:7 33testdata/language-features/basic-values/case01.lc 1:1-1:7
23 () 34 ()
diff --git a/testdata/language-features/basic-values/case02.out b/testdata/language-features/basic-values/case02.out
index 44fd204e..9d1dd476 100644
--- a/testdata/language-features/basic-values/case02.out
+++ b/testdata/language-features/basic-values/case02.out
@@ -1,19 +1,31 @@
1main is not found 1main is not found
2------------ desugared source code 2------------ desugared source code
3value1 3value1
4 = _rhs ((\(a :: _) -> case'Bool (\_ -> _) () () (fromInt 1 == a)) (fromInt 1)) 4 = _rhs
5 ((\(a :: _) -> case'Bool (\(_ :: _) -> _) () () (fromInt 1 == a)) (fromInt 1))
5 6
6value2 7value2
7 = _rhs 8 = _rhs
8 ((\(a :: _) -> case'Bool 9 ((\(a :: _) -> case'Bool
9 (\_ -> _) 10 (\(_ :: _) -> _)
10 (case'Bool (\_ -> _) "_" "2" (fromInt 2 == a)) 11 (case'Bool (\(_ :: _) -> _) "_" "2" (fromInt 2 == a))
11 "1" 12 "1"
12 (fromInt 1 == a)) 13 (fromInt 1 == a))
13 (fromInt 2)) 14 (fromInt 2))
14------------ trace 15------------ core code
15value1 :: forall a . (Eq a, Num a) => () 16value1 :: forall a . (Eq a, Num a) => ()
17value1
18 = \a b c -> _rhs
19 (case'Bool (\_ -> ' ()) () () ((a == b) (fromInt a c 1) (fromInt a c 1)))
20
16value2 :: forall a . (Eq a, Num a, Eq a, Num a) => String 21value2 :: forall a . (Eq a, Num a, Eq a, Num a) => String
22value2
23 = \a b c d e -> _rhs
24 (case'Bool
25 (\_ -> 'String)
26 (case'Bool (\_ -> 'String) "_" "2" ((a == b) (fromInt a c 2) (fromInt a e 2)))
27 "1"
28 ((a == d) (fromInt a e 1) (fromInt a e 2)))
17------------ tooltips 29------------ tooltips
18testdata/language-features/basic-values/case02.lc 1:1-1:7 30testdata/language-features/basic-values/case02.lc 1:1-1:7
19 forall a . (Eq a, Num a) => () 31 forall a . (Eq a, Num a) => ()
diff --git a/testdata/language-features/basic-values/case05.out b/testdata/language-features/basic-values/case05.out
index 2c1ab232..51e7f245 100644
--- a/testdata/language-features/basic-values/case05.out
+++ b/testdata/language-features/basic-values/case05.out
@@ -2,9 +2,12 @@ main is not found
2------------ desugared source code 2------------ desugared source code
3value 3value
4 = \(a :: _) -> _rhs 4 = \(a :: _) -> _rhs
5 ((\(b :: _) -> case'Bool (\_ -> _) undefined '1' (fromInt 1 == b)) a) 5 ((\(b :: _) -> case'Bool (\(_ :: _) -> _) undefined '1' (fromInt 1 == b)) a)
6------------ trace 6------------ core code
7value :: forall a . (Eq a, Num a) => a -> Char 7value :: forall a . (Eq a, Num a) => a -> Char
8value
9 = \a b c d -> _rhs
10 (case'Bool (\_ -> 'Char) (undefined 'Char) '1' ((a == b) (fromInt a c 1) d))
8------------ tooltips 11------------ tooltips
9testdata/language-features/basic-values/case05.lc 1:1-1:6 12testdata/language-features/basic-values/case05.lc 1:1-1:6
10 forall a . (Eq a, Num a) => a -> Char 13 forall a . (Eq a, Num a) => a -> Char
diff --git a/testdata/language-features/basic-values/case06.out b/testdata/language-features/basic-values/case06.out
index 65999ca4..0191877b 100644
--- a/testdata/language-features/basic-values/case06.out
+++ b/testdata/language-features/basic-values/case06.out
@@ -2,9 +2,12 @@ main is not found
2------------ desugared source code 2------------ desugared source code
3value 3value
4 = \(a :: _) -> _rhs 4 = \(a :: _) -> _rhs
5 ((\(b :: _) -> case'Bool (\_ -> _) '_' '1' (fromInt 1 == b)) a) 5 ((\(b :: _) -> case'Bool (\(_ :: _) -> _) '_' '1' (fromInt 1 == b)) a)
6------------ trace 6------------ core code
7value :: forall a . (Eq a, Num a) => a -> Char 7value :: forall a . (Eq a, Num a) => a -> Char
8value
9 = \a b c d -> _rhs
10 (case'Bool (\_ -> 'Char) '_' '1' ((a == b) (fromInt a c 1) d))
8------------ tooltips 11------------ tooltips
9testdata/language-features/basic-values/case06.lc 1:1-1:6 12testdata/language-features/basic-values/case06.lc 1:1-1:6
10 forall a . (Eq a, Num a) => a -> Char 13 forall a . (Eq a, Num a) => a -> Char
diff --git a/testdata/language-features/basic-values/data01.out b/testdata/language-features/basic-values/data01.out
index b350dc21..0bad6ca1 100644
--- a/testdata/language-features/basic-values/data01.out
+++ b/testdata/language-features/basic-values/data01.out
@@ -14,30 +14,65 @@ data D1 :: Type where
14 C1 :: D1 14 C1 :: D1
15 C2 :: () -> D1 15 C2 :: () -> D1
16 C3 :: D1 16 C3 :: D1
17------------ trace 17------------ core code
18'A :: Type 18'A :: Type
19'A = <<type constructor with 0 indices; constructors: B, C, D>>
20
21'D1 :: Type
22'D1 = <<type constructor with 0 indices; constructors: C1, C2, C3>>
23
24'E :: Type
25'E = <<type constructor with 0 indices; constructors: F, G, H>>
26
19B :: A 27B :: A
28B = <<0th constructor of 'A>>
29
20C :: A 30C :: A
31C = <<1st constructor of 'A>>
32
33C1 :: D1
34C1 = <<0th constructor of 'D1>>
35
36C2 :: () -> D1
37C2 = <<1st constructor of 'D1>>
38
39C3 :: D1
40C3 = <<2nd constructor of 'D1>>
41
21D :: A 42D :: A
22case'A 43D = <<2nd constructor of 'A>>
23 :: forall (a :: A -> Type) -> a 'B -> a 'C -> a 'D -> forall (b :: A) -> a b 44
24match'A :: forall (a :: Type -> Type) -> a A -> forall b -> a b -> a b
25'E :: Type
26F :: E 45F :: E
46F = <<0th constructor of 'E>>
47
27G :: () -> E 48G :: () -> E
49G = <<1st constructor of 'E>>
50
28H :: E 51H :: E
29case'E 52H = <<2nd constructor of 'E>>
30 :: forall (a :: E -> Type) 53
31 -> a 'F -> (forall (b :: ()) -> a ('G b)) -> a 'H -> forall (c :: E) -> a c 54case'A
32match'E :: forall (a :: Type -> Type) -> a E -> forall b -> a b -> a b 55 :: forall (a :: A -> Type) -> a 'B -> a 'C -> a 'D -> forall (b :: A) -> a b
33'D1 :: Type 56case'A = \a b c d e -> <<case function of a type with 0 parameters>>
34C1 :: D1 57
35C2 :: () -> D1
36C3 :: D1
37case'D1 58case'D1
38 :: forall (a :: D1 -> Type) 59 :: forall (a :: D1 -> Type)
39 -> a 'C1 -> (forall (b :: ()) -> a ('C2 b)) -> a 'C3 -> forall (c :: D1) -> a c 60 -> a 'C1 -> (forall (b :: ()) -> a ('C2 b)) -> a 'C3 -> forall (c :: D1) -> a c
61case'D1 = \a b c d e -> <<case function of a type with 0 parameters>>
62
63case'E
64 :: forall (a :: E -> Type)
65 -> a 'F -> (forall (b :: ()) -> a ('G b)) -> a 'H -> forall (c :: E) -> a c
66case'E = \a b c d e -> <<case function of a type with 0 parameters>>
67
68match'A :: forall (a :: Type -> Type) -> a A -> forall b -> a b -> a b
69match'A = \a b c d -> <<type case function>>
70
40match'D1 :: forall (a :: Type -> Type) -> a D1 -> forall b -> a b -> a b 71match'D1 :: forall (a :: Type -> Type) -> a D1 -> forall b -> a b -> a b
72match'D1 = \a b c d -> <<type case function>>
73
74match'E :: forall (a :: Type -> Type) -> a E -> forall b -> a b -> a b
75match'E = \a b c d -> <<type case function>>
41------------ tooltips 76------------ tooltips
42testdata/language-features/basic-values/data01.lc 1:6-1:7 77testdata/language-features/basic-values/data01.lc 1:6-1:7
43 Type | Type | Type | Type | Type | Type | Type 78 Type | Type | Type | Type | Type | Type | Type
diff --git a/testdata/language-features/basic-values/def01.out b/testdata/language-features/basic-values/def01.out
index 56283e44..3ada4423 100644
--- a/testdata/language-features/basic-values/def01.out
+++ b/testdata/language-features/basic-values/def01.out
@@ -2,13 +2,18 @@ main is not found
2------------ desugared source code 2------------ desugared source code
3unit = _rhs () 3unit = _rhs ()
4 4
5fun1 = \_ -> _rhs (fromInt 1) 5fun1 = \(_ :: _) -> _rhs (fromInt 1)
6 6
7fun2 = \_ _ _ _ _ -> _rhs 'c' 7fun2 = \(_ :: _) (_ :: _) (_ :: _) (_ :: _) (_ :: _) -> _rhs 'c'
8------------ trace 8------------ core code
9unit :: ()
10fun1 :: forall a b . Num b => a -> b 9fun1 :: forall a b . Num b => a -> b
10fun1 = \_ a b _ -> _rhs (fromInt a b 1)
11
11fun2 :: forall a b c d e . a -> b -> c -> d -> e -> Char 12fun2 :: forall a b c d e . a -> b -> c -> d -> e -> Char
13fun2 = \_ _ _ _ _ _ _ _ _ _ -> _rhs 'c'
14
15unit :: ()
16unit = _rhs ()
12------------ tooltips 17------------ tooltips
13testdata/language-features/basic-values/def01.lc 1:1-1:5 18testdata/language-features/basic-values/def01.lc 1:1-1:5
14 () 19 ()
diff --git a/testdata/language-features/basic-values/def03.out b/testdata/language-features/basic-values/def03.out
index c4bed094..e803c077 100644
--- a/testdata/language-features/basic-values/def03.out
+++ b/testdata/language-features/basic-values/def03.out
@@ -2,12 +2,22 @@ main is not found
2------------ desugared source code 2------------ desugared source code
3fun 3fun
4 = \(a :: _) -> case'Bool 4 = \(a :: _) -> case'Bool
5 (\_ -> _) 5 (\(_ :: _) -> _)
6 (case'Bool (\_ -> _) (_rhs undefined) (_rhs '2') (fromInt 2 == a)) 6 (case'Bool (\(_ :: _) -> _) (_rhs undefined) (_rhs '2') (fromInt 2 == a))
7 (_rhs '1') 7 (_rhs '1')
8 (fromInt 1 == a) 8 (fromInt 1 == a)
9------------ trace 9------------ core code
10fun :: forall a . (Eq a, Num a, Eq a, Num a) => a -> Char 10fun :: forall a . (Eq a, Num a, Eq a, Num a) => a -> Char
11fun
12 = \a b c d e f -> case'Bool
13 (\_ -> 'Char)
14 (case'Bool
15 (\_ -> 'Char)
16 (_rhs (undefined 'Char))
17 (_rhs '2')
18 ((a == b) (fromInt a c 2) f))
19 (_rhs '1')
20 ((a == d) (fromInt a e 1) f)
11------------ tooltips 21------------ tooltips
12testdata/language-features/basic-values/def03.lc 1:1-1:4 22testdata/language-features/basic-values/def03.lc 1:1-1:4
13 forall a . (Eq a, Num a, Eq a, Num a) => a -> Char 23 forall a . (Eq a, Num a, Eq a, Num a) => a -> Char
diff --git a/testdata/language-features/basic-values/def04.out b/testdata/language-features/basic-values/def04.out
index e6dfbba7..de250fdb 100644
--- a/testdata/language-features/basic-values/def04.out
+++ b/testdata/language-features/basic-values/def04.out
@@ -2,20 +2,33 @@ main is not found
2------------ desugared source code 2------------ desugared source code
3fun 3fun
4 = \(a :: _) -> case'Bool 4 = \(a :: _) -> case'Bool
5 (\_ -> _) 5 (\(_ :: _) -> _)
6 (case'Bool (\_ -> _) (_rhs '_') (_rhs '2') (fromInt 2 == a)) 6 (case'Bool (\(_ :: _) -> _) (_rhs '_') (_rhs '2') (fromInt 2 == a))
7 (_rhs '1') 7 (_rhs '1')
8 (fromInt 1 == a) 8 (fromInt 1 == a)
9 9
10fun2 10fun2
11 = \(a :: _) _ -> case'Bool 11 = \(a :: _) (_ :: _) -> case'Bool
12 (\_ -> _) 12 (\(_ :: _) -> _)
13 (case'Bool (\_ -> _) (_rhs '_') (_rhs '2') (fromInt 2 == a)) 13 (case'Bool (\(_ :: _) -> _) (_rhs '_') (_rhs '2') (fromInt 2 == a))
14 (_rhs '1') 14 (_rhs '1')
15 (fromInt 1 == a) 15 (fromInt 1 == a)
16------------ trace 16------------ core code
17fun :: forall a . (Eq a, Num a, Eq a, Num a) => a -> Char 17fun :: forall a . (Eq a, Num a, Eq a, Num a) => a -> Char
18fun
19 = \a b c d e f -> case'Bool
20 (\_ -> 'Char)
21 (case'Bool (\_ -> 'Char) (_rhs '_') (_rhs '2') ((a == b) (fromInt a c 2) f))
22 (_rhs '1')
23 ((a == d) (fromInt a e 1) f)
24
18fun2 :: forall a b . (Eq a, Num a, Eq a, Num a) => a -> b -> Char 25fun2 :: forall a b . (Eq a, Num a, Eq a, Num a) => a -> b -> Char
26fun2
27 = \a _ b c d e f _ -> case'Bool
28 (\_ -> 'Char)
29 (case'Bool (\_ -> 'Char) (_rhs '_') (_rhs '2') ((a == b) (fromInt a c 2) f))
30 (_rhs '1')
31 ((a == d) (fromInt a e 1) f)
19------------ tooltips 32------------ tooltips
20testdata/language-features/basic-values/def04.lc 1:1-1:4 33testdata/language-features/basic-values/def04.lc 1:1-1:4
21 forall a . (Eq a, Num a, Eq a, Num a) => a -> Char 34 forall a . (Eq a, Num a, Eq a, Num a) => a -> Char
diff --git a/testdata/language-features/basic-values/deforder01.out b/testdata/language-features/basic-values/deforder01.out
index 14117b02..65ee8408 100644
--- a/testdata/language-features/basic-values/deforder01.out
+++ b/testdata/language-features/basic-values/deforder01.out
@@ -3,9 +3,12 @@ main is not found
3x = _rhs '1' 3x = _rhs '1'
4 4
5y = _rhs x 5y = _rhs x
6------------ trace 6------------ core code
7x :: Char 7x :: Char
8x = _rhs '1'
9
8y :: Char 10y :: Char
11y = _rhs '1'
9------------ tooltips 12------------ tooltips
10testdata/language-features/basic-values/deforder01.lc 1:1-1:2 13testdata/language-features/basic-values/deforder01.lc 1:1-1:2
11 Char 14 Char
diff --git a/testdata/language-features/basic-values/deforder02.out b/testdata/language-features/basic-values/deforder02.out
index 23d62c33..bc81cbfd 100644
--- a/testdata/language-features/basic-values/deforder02.out
+++ b/testdata/language-features/basic-values/deforder02.out
@@ -3,9 +3,12 @@ main is not found
3x = _rhs '1' 3x = _rhs '1'
4 4
5y = _rhs x 5y = _rhs x
6------------ trace 6------------ core code
7x :: Char 7x :: Char
8x = _rhs '1'
9
8y :: Char 10y :: Char
11y = _rhs '1'
9------------ tooltips 12------------ tooltips
10testdata/language-features/basic-values/deforder02.lc 1:1-1:2 13testdata/language-features/basic-values/deforder02.lc 1:1-1:2
11 Char 14 Char
diff --git a/testdata/language-features/basic-values/deforder03.out b/testdata/language-features/basic-values/deforder03.out
index 4903f7cc..6dd09a14 100644
--- a/testdata/language-features/basic-values/deforder03.out
+++ b/testdata/language-features/basic-values/deforder03.out
@@ -1,8 +1,9 @@
1main is not found 1main is not found
2------------ desugared source code 2------------ desugared source code
3value = _rhs let a = _rhs (); b = _rhs a in '1' 3value = _rhs let a = _rhs (); b = _rhs a in '1'
4------------ trace 4------------ core code
5value :: Char 5value :: Char
6value = _rhs '1'
6------------ tooltips 7------------ tooltips
7testdata/language-features/basic-values/deforder03.lc 1:1-1:6 8testdata/language-features/basic-values/deforder03.lc 1:1-1:6
8 Char 9 Char
diff --git a/testdata/language-features/basic-values/deforder04.out b/testdata/language-features/basic-values/deforder04.out
index ffe0fb17..34f04f22 100644
--- a/testdata/language-features/basic-values/deforder04.out
+++ b/testdata/language-features/basic-values/deforder04.out
@@ -1,8 +1,9 @@
1main is not found 1main is not found
2------------ desugared source code 2------------ desugared source code
3value = _rhs let a = _rhs (); b = _rhs a in '1' 3value = _rhs let a = _rhs (); b = _rhs a in '1'
4------------ trace 4------------ core code
5value :: Char 5value :: Char
6value = _rhs '1'
6------------ tooltips 7------------ tooltips
7testdata/language-features/basic-values/deforder04.lc 1:1-1:6 8testdata/language-features/basic-values/deforder04.lc 1:1-1:6
8 Char 9 Char
diff --git a/testdata/language-features/basic-values/deforder05.out b/testdata/language-features/basic-values/deforder05.out
index f07ef3ee..c4c4eda5 100644
--- a/testdata/language-features/basic-values/deforder05.out
+++ b/testdata/language-features/basic-values/deforder05.out
@@ -1,8 +1,9 @@
1main is not found 1main is not found
2------------ desugared source code 2------------ desugared source code
3value = _rhs let a = _rhs (); b = _rhs a in '1' 3value = _rhs let a = _rhs (); b = _rhs a in '1'
4------------ trace 4------------ core code
5value :: Char 5value :: Char
6value = _rhs '1'
6------------ tooltips 7------------ tooltips
7testdata/language-features/basic-values/deforder05.lc 1:1-1:6 8testdata/language-features/basic-values/deforder05.lc 1:1-1:6
8 Char 9 Char
diff --git a/testdata/language-features/basic-values/deforder06.out b/testdata/language-features/basic-values/deforder06.out
index db561937..6228b957 100644
--- a/testdata/language-features/basic-values/deforder06.out
+++ b/testdata/language-features/basic-values/deforder06.out
@@ -1,8 +1,9 @@
1main is not found 1main is not found
2------------ desugared source code 2------------ desugared source code
3value = _rhs let a = _rhs (); b = _rhs a in '1' 3value = _rhs let a = _rhs (); b = _rhs a in '1'
4------------ trace 4------------ core code
5value :: Char 5value :: Char
6value = _rhs '1'
6------------ tooltips 7------------ tooltips
7testdata/language-features/basic-values/deforder06.lc 1:1-1:6 8testdata/language-features/basic-values/deforder06.lc 1:1-1:6
8 Char 9 Char
diff --git a/testdata/language-features/basic-values/fixity01.out b/testdata/language-features/basic-values/fixity01.out
index 22e2ae45..8f75a8f2 100644
--- a/testdata/language-features/basic-values/fixity01.out
+++ b/testdata/language-features/basic-values/fixity01.out
@@ -1,12 +1,12 @@
1main is not found 1main is not found
2------------ desugared source code 2------------ desugared source code
3funL = \(a :: _) _ -> _rhs a 3funL = \(a :: _) (_ :: _) -> _rhs a
4 4
5funR = \(a :: _) _ -> _rhs a 5funR = \(a :: _) (_ :: _) -> _rhs a
6 6
7(<<<<) = \(a :: _) _ -> _rhs a 7(<<<<) = \(a :: _) (_ :: _) -> _rhs a
8 8
9(>>>>) = \_ (a :: _) -> _rhs a 9(>>>>) = \(_ :: _) (a :: _) -> _rhs a
10 10
11infixr 7 funL 11infixr 7 funL
12 12
@@ -15,11 +15,18 @@ infixr 7 <<<<
15infixr 6 >>>> 15infixr 6 >>>>
16 16
17infixr 6 funR 17infixr 6 funR
18------------ trace 18------------ core code
19<<<< :: forall a b . a -> b -> a
20<<<< = \_ _ a _ -> _rhs a
21
22>>>> :: forall a b . a -> b -> b
23>>>> = \_ _ _ a -> _rhs a
24
19funL :: forall a b . a -> b -> a 25funL :: forall a b . a -> b -> a
26funL = \_ _ a _ -> _rhs a
27
20funR :: forall a b . a -> b -> a 28funR :: forall a b . a -> b -> a
21(<<<<) :: forall a b . a -> b -> a 29funR = \_ _ a _ -> _rhs a
22(>>>>) :: forall a b . a -> b -> b
23------------ tooltips 30------------ tooltips
24testdata/language-features/basic-values/fixity01.lc 1:1-1:5 31testdata/language-features/basic-values/fixity01.lc 1:1-1:5
25 forall a b . a -> b -> a 32 forall a b . a -> b -> a
diff --git a/testdata/language-features/basic-values/fixity02.out b/testdata/language-features/basic-values/fixity02.out
index 973e69be..e018eb76 100644
--- a/testdata/language-features/basic-values/fixity02.out
+++ b/testdata/language-features/basic-values/fixity02.out
@@ -1,12 +1,12 @@
1main is not found 1main is not found
2------------ desugared source code 2------------ desugared source code
3funL = \(a :: _) _ -> _rhs a 3funL = \(a :: _) (_ :: _) -> _rhs a
4 4
5funR = \_ (a :: _) -> _rhs a 5funR = \(_ :: _) (a :: _) -> _rhs a
6 6
7(<@) = \(a :: _) _ -> _rhs a 7(<@) = \(a :: _) (_ :: _) -> _rhs a
8 8
9(@>) = \_ (a :: _) -> _rhs a 9(@>) = \(_ :: _) (a :: _) -> _rhs a
10 10
11infixr 7 funL 11infixr 7 funL
12 12
@@ -47,27 +47,66 @@ funValue6 = _rhs (() `funR` 'c' `funL` "hi" `funL` 1.2 :: Char)
47funValue7 = _rhs (() `funL` 'c' `funR` "hi" `funL` 1.2 :: String) 47funValue7 = _rhs (() `funL` 'c' `funR` "hi" `funL` 1.2 :: String)
48 48
49funValue8 = _rhs (() `funL` 'c' `funL` "hi" `funL` 1.2 :: ()) 49funValue8 = _rhs (() `funL` 'c' `funL` "hi" `funL` 1.2 :: ())
50------------ trace 50------------ core code
51<@ :: forall a b . a -> b -> a
52<@ = \_ _ a _ -> _rhs a
53
54@> :: forall a b . a -> b -> b
55@> = \_ _ _ a -> _rhs a
56
51funL :: forall a b . a -> b -> a 57funL :: forall a b . a -> b -> a
58funL = \_ _ a _ -> _rhs a
59
52funR :: forall a b . a -> b -> b 60funR :: forall a b . a -> b -> b
53(<@) :: forall a b . a -> b -> a 61funR = \_ _ _ a -> _rhs a
54(@>) :: forall a b . a -> b -> b 62
55value1 :: Float
56value2 :: Float
57value3 :: Float
58value4 :: Float
59value5 :: String
60value6 :: Char
61value7 :: String
62value8 :: ()
63funValue1 :: Float 63funValue1 :: Float
64funValue1 = _rhs 1.2
65
64funValue2 :: Float 66funValue2 :: Float
67funValue2 = _rhs 1.2
68
65funValue3 :: Float 69funValue3 :: Float
70funValue3 = _rhs 1.2
71
66funValue4 :: Float 72funValue4 :: Float
73funValue4 = _rhs 1.2
74
67funValue5 :: String 75funValue5 :: String
76funValue5 = _rhs "hi"
77
68funValue6 :: Char 78funValue6 :: Char
79funValue6 = _rhs 'c'
80
69funValue7 :: String 81funValue7 :: String
82funValue7 = _rhs "hi"
83
70funValue8 :: () 84funValue8 :: ()
85funValue8 = _rhs ()
86
87value1 :: Float
88value1 = _rhs 1.2
89
90value2 :: Float
91value2 = _rhs 1.2
92
93value3 :: Float
94value3 = _rhs 1.2
95
96value4 :: Float
97value4 = _rhs 1.2
98
99value5 :: String
100value5 = _rhs "hi"
101
102value6 :: Char
103value6 = _rhs 'c'
104
105value7 :: String
106value7 = _rhs "hi"
107
108value8 :: ()
109value8 = _rhs ()
71------------ tooltips 110------------ tooltips
72testdata/language-features/basic-values/fixity02.lc 1:1-1:5 111testdata/language-features/basic-values/fixity02.lc 1:1-1:5
73 forall a b . a -> b -> a 112 forall a b . a -> b -> a
diff --git a/testdata/language-features/basic-values/if01.out b/testdata/language-features/basic-values/if01.out
index 68ae2364..cfac15fd 100644
--- a/testdata/language-features/basic-values/if01.out
+++ b/testdata/language-features/basic-values/if01.out
@@ -3,9 +3,12 @@ main is not found
3value1 = _rhs (primIfThenElse True () ()) 3value1 = _rhs (primIfThenElse True () ())
4 4
5value2 = _rhs (primIfThenElse False 1.0 2.0) 5value2 = _rhs (primIfThenElse False 1.0 2.0)
6------------ trace 6------------ core code
7value1 :: () 7value1 :: ()
8value1 = _rhs ()
9
8value2 :: Float 10value2 :: Float
11value2 = _rhs 2.0
9------------ tooltips 12------------ tooltips
10testdata/language-features/basic-values/if01.lc 1:1-1:7 13testdata/language-features/basic-values/if01.lc 1:1-1:7
11 () 14 ()
diff --git a/testdata/language-features/basic-values/indentation01.out b/testdata/language-features/basic-values/indentation01.out
index 9579e866..737c8ecd 100644
--- a/testdata/language-features/basic-values/indentation01.out
+++ b/testdata/language-features/basic-values/indentation01.out
@@ -3,9 +3,12 @@ main is not found
3tuple1 = _rhs () 3tuple1 = _rhs ()
4 4
5tuple2 = _rhs () 5tuple2 = _rhs ()
6------------ trace 6------------ core code
7tuple1 :: () 7tuple1 :: ()
8tuple1 = _rhs ()
9
8tuple2 :: () 10tuple2 :: ()
11tuple2 = _rhs ()
9------------ tooltips 12------------ tooltips
10testdata/language-features/basic-values/indentation01.lc 1:1-1:7 13testdata/language-features/basic-values/indentation01.lc 1:1-1:7
11 () 14 ()
diff --git a/testdata/language-features/basic-values/indentation02.out b/testdata/language-features/basic-values/indentation02.out
index ddb90a56..33b04d5e 100644
--- a/testdata/language-features/basic-values/indentation02.out
+++ b/testdata/language-features/basic-values/indentation02.out
@@ -3,9 +3,12 @@ main is not found
3tuple1 = _rhs () 3tuple1 = _rhs ()
4 4
5tuple2 = _rhs () 5tuple2 = _rhs ()
6------------ trace 6------------ core code
7tuple1 :: () 7tuple1 :: ()
8tuple1 = _rhs ()
9
8tuple2 :: () 10tuple2 :: ()
11tuple2 = _rhs ()
9------------ tooltips 12------------ tooltips
10testdata/language-features/basic-values/indentation02.lc 1:3-1:9 13testdata/language-features/basic-values/indentation02.lc 1:3-1:9
11 () 14 ()
diff --git a/testdata/language-features/basic-values/infix01.out b/testdata/language-features/basic-values/infix01.out
index 61491fb2..cee5de49 100644
--- a/testdata/language-features/basic-values/infix01.out
+++ b/testdata/language-features/basic-values/infix01.out
@@ -1,11 +1,14 @@
1main is not found 1main is not found
2------------ desugared source code 2------------ desugared source code
3fun = \_ _ -> _rhs () 3fun = \(_ :: _) (_ :: _) -> _rhs ()
4 4
5value = \(a :: _) (b :: _) -> _rhs (a `fun` b) 5value = \(a :: _) (b :: _) -> _rhs (a `fun` b)
6------------ trace 6------------ core code
7fun :: forall a b . a -> b -> () 7fun :: forall a b . a -> b -> ()
8fun = \_ _ _ _ -> _rhs ()
9
8value :: forall a b . a -> b -> () 10value :: forall a b . a -> b -> ()
11value = \a b c d -> _rhs ()
9------------ tooltips 12------------ tooltips
10testdata/language-features/basic-values/infix01.lc 1:1-1:4 13testdata/language-features/basic-values/infix01.lc 1:1-1:4
11 forall a b . a -> b -> () 14 forall a b . a -> b -> ()
diff --git a/testdata/language-features/basic-values/infix02.out b/testdata/language-features/basic-values/infix02.out
index 341b4acd..8f743998 100644
--- a/testdata/language-features/basic-values/infix02.out
+++ b/testdata/language-features/basic-values/infix02.out
@@ -1,11 +1,14 @@
1main is not found 1main is not found
2------------ desugared source code 2------------ desugared source code
3fun = \_ _ _ -> _rhs () 3fun = \(_ :: _) (_ :: _) (_ :: _) -> _rhs ()
4 4
5value = \(a :: _) (b :: _) -> _rhs (a `fun` b) 5value = \(a :: _) (b :: _) -> _rhs (a `fun` b)
6------------ trace 6------------ core code
7fun :: forall a b c . a -> b -> c -> () 7fun :: forall a b c . a -> b -> c -> ()
8fun = \_ _ _ _ _ _ -> _rhs ()
9
8value :: forall a b c . a -> b -> c -> () 10value :: forall a b c . a -> b -> c -> ()
11value = \a b c d e -> _rhs (fun a b c d e)
9------------ tooltips 12------------ tooltips
10testdata/language-features/basic-values/infix02.lc 1:1-1:4 13testdata/language-features/basic-values/infix02.lc 1:1-1:4
11 forall a b c . a -> b -> c -> () 14 forall a b c . a -> b -> c -> ()
diff --git a/testdata/language-features/basic-values/infix03.out b/testdata/language-features/basic-values/infix03.out
index 7b501216..4b6af910 100644
--- a/testdata/language-features/basic-values/infix03.out
+++ b/testdata/language-features/basic-values/infix03.out
@@ -7,18 +7,31 @@ data D :: Type where
7d2 = \(a :: _) (b :: _) -> _rhs (a `D2` b) 7d2 = \(a :: _) (b :: _) -> _rhs (a `D2` b)
8 8
9d3 = \(a :: _) (b :: _) -> _rhs (a `D3` b) 9d3 = \(a :: _) (b :: _) -> _rhs (a `D3` b)
10------------ trace 10------------ core code
11'D :: Type 11'D :: Type
12'D = <<type constructor with 0 indices; constructors: D2, D3>>
13
12D2 :: () -> () -> D 14D2 :: () -> () -> D
15D2 = <<0th constructor of 'D>>
16
13D3 :: () -> () -> () -> D 17D3 :: () -> () -> () -> D
18D3 = <<1st constructor of 'D>>
19
14case'D 20case'D
15 :: forall (a :: D -> Type) 21 :: forall (a :: D -> Type)
16 -> (forall (b :: ()) (c :: ()) -> a ('D2 b c)) 22 -> (forall (b :: ()) (c :: ()) -> a ('D2 b c))
17 -> (forall (d :: ()) (e :: ()) (f :: ()) -> a ('D3 d e f)) 23 -> (forall (d :: ()) (e :: ()) (f :: ()) -> a ('D3 d e f))
18 -> forall (g :: D) -> a g 24 -> forall (g :: D) -> a g
19match'D :: forall (a :: Type -> Type) -> a D -> forall b -> a b -> a b 25case'D = \a b c d -> <<case function of a type with 0 parameters>>
26
20d2 :: () -> () -> D 27d2 :: () -> () -> D
28d2 = \a b -> _rhs (D2 a b)
29
21d3 :: () -> () -> () -> D 30d3 :: () -> () -> () -> D
31d3 = \a b -> _rhs (D3 a b)
32
33match'D :: forall (a :: Type -> Type) -> a D -> forall b -> a b -> a b
34match'D = \a b c d -> <<type case function>>
22------------ tooltips 35------------ tooltips
23testdata/language-features/basic-values/infix03.lc 1:6-1:7 36testdata/language-features/basic-values/infix03.lc 1:6-1:7
24 Type | Type | Type | Type | Type | Type | Type | Type 37 Type | Type | Type | Type | Type | Type | Type | Type
diff --git a/testdata/language-features/basic-values/lambda01.out b/testdata/language-features/basic-values/lambda01.out
index 678f21c0..591970d1 100644
--- a/testdata/language-features/basic-values/lambda01.out
+++ b/testdata/language-features/basic-values/lambda01.out
@@ -1,18 +1,29 @@
1main is not found 1main is not found
2------------ desugared source code 2------------ desugared source code
3fun1 = _rhs \_ -> () 3fun1 = _rhs \(_ :: _) -> ()
4 4
5fun2 = _rhs \_ -> () 5fun2 = _rhs \(_ :: _) -> ()
6 6
7fun3 = _rhs \_ -> () 7fun3 = _rhs \(_ :: _) -> ()
8 8
9fun4 = _rhs \_ _ _ _ _ _ _ _ _ -> () 9fun4
10------------ trace 10 = _rhs
11 \(_ :: _)
12 (_ :: _) (_ :: _) (_ :: _) (_ :: _) (_ :: _) (_ :: _) (_ :: _) (_ :: _)
13 -> ()
14------------ core code
11fun1 :: forall a . a -> () 15fun1 :: forall a . a -> ()
16fun1 = \_ -> _rhs \_ -> ()
17
12fun2 :: forall a . a -> () 18fun2 :: forall a . a -> ()
19fun2 = \_ -> _rhs \_ -> ()
20
13fun3 :: forall a . a -> () 21fun3 :: forall a . a -> ()
22fun3 = \_ -> _rhs \_ -> ()
23
14fun4 24fun4
15 :: forall a b c d e f g h i . a -> b -> c -> d -> e -> f -> g -> h -> i -> () 25 :: forall a b c d e f g h i . a -> b -> c -> d -> e -> f -> g -> h -> i -> ()
26fun4 = \_ _ _ _ _ _ _ _ _ -> _rhs \_ _ _ _ _ _ _ _ _ -> ()
16------------ tooltips 27------------ tooltips
17testdata/language-features/basic-values/lambda01.lc 1:1-1:5 28testdata/language-features/basic-values/lambda01.lc 1:1-1:5
18 forall a . a -> () 29 forall a . a -> ()
diff --git a/testdata/language-features/basic-values/lambda03.out b/testdata/language-features/basic-values/lambda03.out
index 97ee5c15..69e50ccf 100644
--- a/testdata/language-features/basic-values/lambda03.out
+++ b/testdata/language-features/basic-values/lambda03.out
@@ -1,11 +1,14 @@
1main is not found 1main is not found
2------------ desugared source code 2------------ desugared source code
3fun1 = _rhs \_ (a :: _) _ -> a 3fun1 = _rhs \(_ :: _) (a :: _) (_ :: _) -> a
4 4
5fun2 = \(a :: _) -> _rhs \_ _ _ -> a 5fun2 = \(a :: _) -> _rhs \(_ :: _) (_ :: _) (_ :: _) -> a
6------------ trace 6------------ core code
7fun1 :: forall a b c . a -> b -> c -> b 7fun1 :: forall a b c . a -> b -> c -> b
8fun1 = \_ _ _ -> _rhs \_ a _ -> a
9
8fun2 :: forall a b c d . a -> b -> c -> d -> a 10fun2 :: forall a b c d . a -> b -> c -> d -> a
11fun2 = \_ _ _ _ a -> _rhs \_ _ _ -> a
9------------ tooltips 12------------ tooltips
10testdata/language-features/basic-values/lambda03.lc 1:1-1:5 13testdata/language-features/basic-values/lambda03.lc 1:1-1:5
11 forall a b c . a -> b -> c -> b 14 forall a b c . a -> b -> c -> b
diff --git a/testdata/language-features/basic-values/let01.out b/testdata/language-features/basic-values/let01.out
index b1389aae..3c1f5fa4 100644
--- a/testdata/language-features/basic-values/let01.out
+++ b/testdata/language-features/basic-values/let01.out
@@ -9,12 +9,21 @@ value3 = _rhs let a = _rhs (fromInt 1); b = _rhs 'c' in fromInt 1
9value4 = _rhs let a = _rhs (fromInt 1) in fromInt 1 9value4 = _rhs let a = _rhs (fromInt 1) in fromInt 1
10 10
11value5 = _rhs let a = _rhs (fromInt 1); b = _rhs (fromInt 2) in fromInt 1 11value5 = _rhs let a = _rhs (fromInt 1); b = _rhs (fromInt 2) in fromInt 1
12------------ trace 12------------ core code
13value1 :: forall a . Num a => a 13value1 :: forall a . Num a => a
14value1 = \a b -> _rhs (fromInt a b 1)
15
14value2 :: forall a . Num a => a 16value2 :: forall a . Num a => a
17value2 = \a b -> _rhs (fromInt a b 1)
18
15value3 :: forall a . Num a => a 19value3 :: forall a . Num a => a
20value3 = \a b -> _rhs (fromInt a b 1)
21
16value4 :: forall a . Num a => a 22value4 :: forall a . Num a => a
23value4 = \a b -> _rhs (fromInt a b 1)
24
17value5 :: forall a . Num a => a 25value5 :: forall a . Num a => a
26value5 = \a b -> _rhs (fromInt a b 1)
18------------ tooltips 27------------ tooltips
19testdata/language-features/basic-values/let01.lc 1:1-1:7 28testdata/language-features/basic-values/let01.lc 1:1-1:7
20 forall a . Num a => a 29 forall a . Num a => a
diff --git a/testdata/language-features/basic-values/let02.out b/testdata/language-features/basic-values/let02.out
index 6624f824..4ca11163 100644
--- a/testdata/language-features/basic-values/let02.out
+++ b/testdata/language-features/basic-values/let02.out
@@ -7,8 +7,9 @@ value
7 b = _rhs let d = _rhs 'A' in (); 7 b = _rhs let d = _rhs 'A' in ();
8 c = _rhs let e = _rhs (); f = _rhs (fromInt 1); g = _rhs "hello" in 'B' 8 c = _rhs let e = _rhs (); f = _rhs (fromInt 1); g = _rhs "hello" in 'B'
9 in () 9 in ()
10------------ trace 10------------ core code
11value :: () 11value :: ()
12value = _rhs ()
12------------ tooltips 13------------ tooltips
13testdata/language-features/basic-values/let02.lc 1:1-1:6 14testdata/language-features/basic-values/let02.lc 1:1-1:6
14 () 15 ()
diff --git a/testdata/language-features/basic-values/literal01.out b/testdata/language-features/basic-values/literal01.out
index ec3b6908..4619304a 100644
--- a/testdata/language-features/basic-values/literal01.out
+++ b/testdata/language-features/basic-values/literal01.out
@@ -15,15 +15,30 @@ charValue = _rhs 'A'
15stringValue1 = _rhs "Hello World" 15stringValue1 = _rhs "Hello World"
16 16
17stringValue2 = _rhs "\nHello World\tagain!\r\n" 17stringValue2 = _rhs "\nHello World\tagain!\r\n"
18------------ trace 18------------ core code
19charValue :: Char
20charValue = _rhs 'A'
21
22floatValue1 :: Float
23floatValue1 = _rhs 2.0
24
25floatValue2 :: Float
26floatValue2 = _rhs 123400.0
27
19intValue1 :: forall a . Num a => a 28intValue1 :: forall a . Num a => a
29intValue1 = \a b -> _rhs (fromInt a b 0)
30
20intValue2 :: forall a . Num a => a 31intValue2 :: forall a . Num a => a
32intValue2 = \a b -> _rhs (fromInt a b 1)
33
21intValue3 :: forall a . Num a => a 34intValue3 :: forall a . Num a => a
22floatValue1 :: Float 35intValue3 = \a b -> _rhs (fromInt a b 12345)
23floatValue2 :: Float 36
24charValue :: Char
25stringValue1 :: String 37stringValue1 :: String
38stringValue1 = _rhs "Hello World"
39
26stringValue2 :: String 40stringValue2 :: String
41stringValue2 = _rhs "\nHello World\tagain!\r\n"
27------------ tooltips 42------------ tooltips
28testdata/language-features/basic-values/literal01.lc 1:1-1:10 43testdata/language-features/basic-values/literal01.lc 1:1-1:10
29 forall a . Num a => a 44 forall a . Num a => a
diff --git a/testdata/language-features/basic-values/operator01.out b/testdata/language-features/basic-values/operator01.out
index 8596dd0d..f239d6b3 100644
--- a/testdata/language-features/basic-values/operator01.out
+++ b/testdata/language-features/basic-values/operator01.out
@@ -1,17 +1,24 @@
1main is not found 1main is not found
2------------ desugared source code 2------------ desugared source code
3(#$#) = \_ _ -> _rhs () 3(#$#) = \(_ :: _) (_ :: _) -> _rhs ()
4 4
5($$#) = \_ _ -> _rhs () 5($$#) = \(_ :: _) (_ :: _) -> _rhs ()
6 6
7($$$#) = \_ _ -> _rhs () 7($$$#) = \(_ :: _) (_ :: _) -> _rhs ()
8 8
9($$$) = \_ _ -> _rhs () 9($$$) = \(_ :: _) (_ :: _) -> _rhs ()
10------------ trace 10------------ core code
11(#$#) :: forall a b . a -> b -> () 11#$# :: forall a b . a -> b -> ()
12($$#) :: forall a b . a -> b -> () 12#$# = \_ _ _ _ -> _rhs ()
13($$$#) :: forall a b . a -> b -> () 13
14($$$) :: forall a b . a -> b -> () 14$$# :: forall a b . a -> b -> ()
15$$# = \_ _ _ _ -> _rhs ()
16
17$$$ :: forall a b . a -> b -> ()
18$$$ = \_ _ _ _ -> _rhs ()
19
20$$$# :: forall a b . a -> b -> ()
21$$$# = \_ _ _ _ -> _rhs ()
15------------ tooltips 22------------ tooltips
16testdata/language-features/basic-values/operator01.lc 1:3-1:6 23testdata/language-features/basic-values/operator01.lc 1:3-1:6
17 forall a b . a -> b -> () 24 forall a b . a -> b -> ()
diff --git a/testdata/language-features/basic-values/operator05.out b/testdata/language-features/basic-values/operator05.out
index 26a9c706..6a12b629 100644
--- a/testdata/language-features/basic-values/operator05.out
+++ b/testdata/language-features/basic-values/operator05.out
@@ -1,8 +1,9 @@
1main is not found 1main is not found
2------------ desugared source code 2------------ desugared source code
3value1 = _rhs let a = \_ _ -> _rhs () in a () () 3value1 = _rhs let a = \(_ :: _) (_ :: _) -> _rhs () in a () ()
4------------ trace 4------------ core code
5value1 :: () 5value1 :: ()
6value1 = _rhs ()
6------------ tooltips 7------------ tooltips
7testdata/language-features/basic-values/operator05.lc 1:1-1:7 8testdata/language-features/basic-values/operator05.lc 1:1-1:7
8 () 9 ()
diff --git a/testdata/language-features/basic-values/operator06.out b/testdata/language-features/basic-values/operator06.out
index c2aa64bd..31724acd 100644
--- a/testdata/language-features/basic-values/operator06.out
+++ b/testdata/language-features/basic-values/operator06.out
@@ -1,8 +1,9 @@
1main is not found 1main is not found
2------------ desugared source code 2------------ desugared source code
3value1 = _rhs let a = \_ _ -> _rhs () in a () () 3value1 = _rhs let a = \(_ :: _) (_ :: _) -> _rhs () in a () ()
4------------ trace 4------------ core code
5value1 :: () 5value1 :: ()
6value1 = _rhs ()
6------------ tooltips 7------------ tooltips
7testdata/language-features/basic-values/operator06.lc 1:1-1:7 8testdata/language-features/basic-values/operator06.lc 1:1-1:7
8 () 9 ()
diff --git a/testdata/language-features/basic-values/shadowing01.out b/testdata/language-features/basic-values/shadowing01.out
index a57dc95d..5233865a 100644
--- a/testdata/language-features/basic-values/shadowing01.out
+++ b/testdata/language-features/basic-values/shadowing01.out
@@ -13,8 +13,9 @@ value
13 f = _rhs let g = _rhs (); h = _rhs 'C'; i = _rhs 3.12 in "world" 13 f = _rhs let g = _rhs (); h = _rhs 'C'; i = _rhs 3.12 in "world"
14 in () 14 in ()
15 in '7' 15 in '7'
16------------ trace 16------------ core code
17value :: Char 17value :: Char
18value = _rhs '7'
18------------ tooltips 19------------ tooltips
19testdata/language-features/basic-values/shadowing01.lc 1:1-1:6 20testdata/language-features/basic-values/shadowing01.lc 1:1-1:6
20 Char 21 Char
diff --git a/testdata/language-features/basic-values/shadowing02.out b/testdata/language-features/basic-values/shadowing02.out
index 44db12ab..19a72446 100644
--- a/testdata/language-features/basic-values/shadowing02.out
+++ b/testdata/language-features/basic-values/shadowing02.out
@@ -18,10 +18,15 @@ value2
18 g = _rhs let h = _rhs (); i = _rhs 'C'; j = _rhs 3.12; k = _rhs c in world 18 g = _rhs let h = _rhs (); i = _rhs 'C'; j = _rhs 3.12; k = _rhs c in world
19 in () 19 in ()
20 in '7' 20 in '7'
21------------ trace 21------------ core code
22c :: forall a . Num a => a 22c :: forall a . Num a => a
23world :: String 23c = \a b -> _rhs (fromInt a b 7)
24
24value2 :: Char 25value2 :: Char
26value2 = _rhs '7'
27
28world :: String
29world = _rhs "world"
25------------ tooltips 30------------ tooltips
26testdata/language-features/basic-values/shadowing02.lc 1:1-1:2 31testdata/language-features/basic-values/shadowing02.lc 1:1-1:2
27 forall a . Num a => a 32 forall a . Num a => a
diff --git a/testdata/language-features/basic-values/shadowing03.out b/testdata/language-features/basic-values/shadowing03.out
index 66839639..0ee5fa0e 100644
--- a/testdata/language-features/basic-values/shadowing03.out
+++ b/testdata/language-features/basic-values/shadowing03.out
@@ -1,8 +1,9 @@
1main is not found 1main is not found
2------------ desugared source code 2------------ desugared source code
3x = \_ _ -> _rhs () 3x = \(_ :: _) (_ :: _) -> _rhs ()
4------------ trace 4------------ core code
5x :: forall a b . a -> b -> () 5x :: forall a b . a -> b -> ()
6x = \_ _ _ _ -> _rhs ()
6------------ tooltips 7------------ tooltips
7testdata/language-features/basic-values/shadowing03.lc 1:1-1:2 8testdata/language-features/basic-values/shadowing03.lc 1:1-1:2
8 forall a b . a -> b -> () 9 forall a b . a -> b -> ()
diff --git a/testdata/language-features/basic-values/shadowing04.out b/testdata/language-features/basic-values/shadowing04.out
index cd79b079..c55d2dfe 100644
--- a/testdata/language-features/basic-values/shadowing04.out
+++ b/testdata/language-features/basic-values/shadowing04.out
@@ -1,8 +1,9 @@
1main is not found 1main is not found
2------------ desugared source code 2------------ desugared source code
3__ = \_ _ -> _rhs () 3__ = \(_ :: _) (_ :: _) -> _rhs ()
4------------ trace 4------------ core code
5__ :: forall a b . a -> b -> () 5__ :: forall a b . a -> b -> ()
6__ = \_ _ _ _ -> _rhs ()
6------------ tooltips 7------------ tooltips
7testdata/language-features/basic-values/shadowing04.lc 1:1-1:3 8testdata/language-features/basic-values/shadowing04.lc 1:1-1:3
8 forall a b . a -> b -> () 9 forall a b . a -> b -> ()
diff --git a/testdata/language-features/basic-values/tuple01.out b/testdata/language-features/basic-values/tuple01.out
index c3862fc1..fbe79611 100644
--- a/testdata/language-features/basic-values/tuple01.out
+++ b/testdata/language-features/basic-values/tuple01.out
@@ -1,8 +1,9 @@
1main is not found 1main is not found
2------------ desugared source code 2------------ desugared source code
3unit = _rhs () 3unit = _rhs ()
4------------ trace 4------------ core code
5unit :: () 5unit :: ()
6unit = _rhs ()
6------------ tooltips 7------------ tooltips
7testdata/language-features/basic-values/tuple01.lc 1:1-1:5 8testdata/language-features/basic-values/tuple01.lc 1:1-1:5
8 () 9 ()
diff --git a/testdata/language-features/basic-values/tuple02.out b/testdata/language-features/basic-values/tuple02.out
index 7a8df18f..3b6e4410 100644
--- a/testdata/language-features/basic-values/tuple02.out
+++ b/testdata/language-features/basic-values/tuple02.out
@@ -5,10 +5,15 @@ tuple1 = _rhs (fromInt 1, 2.3, 'D', "string", ())
5tuple2 = _rhs ((), ()) 5tuple2 = _rhs ((), ())
6 6
7tuple3 = _rhs (("name", 'c'), ()) 7tuple3 = _rhs (("name", 'c'), ())
8------------ trace 8------------ core code
9tuple1 :: forall a . Num a => (a, Float, Char, String, ()) 9tuple1 :: forall a . Num a => (a, Float, Char, String, ())
10tuple1 = \a b -> _rhs (fromInt a b 1, 2.3, 'D', "string", ())
11
10tuple2 :: ((), ()) 12tuple2 :: ((), ())
13tuple2 = _rhs ((), ())
14
11tuple3 :: ((String, Char), ()) 15tuple3 :: ((String, Char), ())
16tuple3 = _rhs (("name", 'c'), ())
12------------ tooltips 17------------ tooltips
13testdata/language-features/basic-values/tuple02.lc 1:1-1:7 18testdata/language-features/basic-values/tuple02.lc 1:1-1:7
14 forall a . Num a => (a, Float, Char, String, ()) 19 forall a . Num a => (a, Float, Char, String, ())
diff --git a/testdata/language-features/basic-values/typesig01.out b/testdata/language-features/basic-values/typesig01.out
index 4b710886..c36d5cf2 100644
--- a/testdata/language-features/basic-values/typesig01.out
+++ b/testdata/language-features/basic-values/typesig01.out
@@ -5,9 +5,12 @@ value1 = _rhs 'a'
5 5
6value2 :: Char 6value2 :: Char
7value2 = _rhs 'a' 7value2 = _rhs 'a'
8------------ trace 8------------ core code
9value1 :: Char 9value1 :: Char
10value1 = _rhs 'a'
11
10value2 :: Char 12value2 :: Char
13value2 = _rhs 'a'
11------------ tooltips 14------------ tooltips
12testdata/language-features/basic-values/typesig01.lc 1:11-1:15 15testdata/language-features/basic-values/typesig01.lc 1:11-1:15
13 Type 16 Type
diff --git a/testdata/language-features/basic-values/typesig02.out b/testdata/language-features/basic-values/typesig02.out
index a685db82..415f46d9 100644
--- a/testdata/language-features/basic-values/typesig02.out
+++ b/testdata/language-features/basic-values/typesig02.out
@@ -3,9 +3,12 @@ main is not found
3value1 = _rhs ('a' :: Char) 3value1 = _rhs ('a' :: Char)
4 4
5value2 = _rhs ('a' :: Char) 5value2 = _rhs ('a' :: Char)
6------------ trace 6------------ core code
7value1 :: Char 7value1 :: Char
8value1 = _rhs 'a'
9
8value2 :: Char 10value2 :: Char
11value2 = _rhs 'a'
9------------ tooltips 12------------ tooltips
10testdata/language-features/basic-values/typesig02.lc 1:1-1:7 13testdata/language-features/basic-values/typesig02.lc 1:1-1:7
11 Char 14 Char
diff --git a/testdata/language-features/basic-values/typesig03.out b/testdata/language-features/basic-values/typesig03.out
index dce9b02b..738ddca8 100644
--- a/testdata/language-features/basic-values/typesig03.out
+++ b/testdata/language-features/basic-values/typesig03.out
@@ -1,13 +1,16 @@
1main is not found 1main is not found
2------------ desugared source code 2------------ desugared source code
3fun1 :: forall (a :: _) (b :: _) (c :: _) . a -> b -> c -> () 3fun1 :: forall (a :: _) (b :: _) (c :: _) . a -> b -> c -> ()
4fun1 = \_ _ _ -> _rhs () 4fun1 = \(_ :: _) (_ :: _) (_ :: _) -> _rhs ()
5 5
6fun2 :: forall (a :: _) (b :: _) (c :: _) . a -> b -> c -> () 6fun2 :: forall (a :: _) (b :: _) (c :: _) . a -> b -> c -> ()
7fun2 = \_ _ _ -> _rhs () 7fun2 = \(_ :: _) (_ :: _) (_ :: _) -> _rhs ()
8------------ trace 8------------ core code
9fun1 :: forall a b c . a -> b -> c -> () 9fun1 :: forall a b c . a -> b -> c -> ()
10fun1 = \_ _ _ _ _ _ -> _rhs ()
11
10fun2 :: forall a b c . a -> b -> c -> () 12fun2 :: forall a b c . a -> b -> c -> ()
13fun2 = \_ _ _ _ _ _ -> _rhs ()
11------------ tooltips 14------------ tooltips
12testdata/language-features/basic-values/typesig03.lc 1:9-1:10 15testdata/language-features/basic-values/typesig03.lc 1:9-1:10
13 _f 16 _f
diff --git a/testdata/language-features/basic-values/typesig04.out b/testdata/language-features/basic-values/typesig04.out
index e85b6781..0df6fc91 100644
--- a/testdata/language-features/basic-values/typesig04.out
+++ b/testdata/language-features/basic-values/typesig04.out
@@ -1,13 +1,16 @@
1main is not found 1main is not found
2------------ desugared source code 2------------ desugared source code
3fun1 :: forall (a :: _) (b :: _) (c :: _) . a -> (b -> c) -> () 3fun1 :: forall (a :: _) (b :: _) (c :: _) . a -> (b -> c) -> ()
4fun1 = \_ _ -> _rhs () 4fun1 = \(_ :: _) (_ :: _) -> _rhs ()
5 5
6fun2 :: forall (a :: _) (b :: _) (c :: _) . a -> (b -> c) -> () 6fun2 :: forall (a :: _) (b :: _) (c :: _) . a -> (b -> c) -> ()
7fun2 = \_ _ -> _rhs () 7fun2 = \(_ :: _) (_ :: _) -> _rhs ()
8------------ trace 8------------ core code
9fun1 :: forall a b c . a -> (b -> c) -> () 9fun1 :: forall a b c . a -> (b -> c) -> ()
10fun1 = \_ _ _ _ _ -> _rhs ()
11
10fun2 :: forall a b c . a -> (b -> c) -> () 12fun2 :: forall a b c . a -> (b -> c) -> ()
13fun2 = \_ _ _ _ _ -> _rhs ()
11------------ tooltips 14------------ tooltips
12testdata/language-features/basic-values/typesig04.lc 1:9-1:10 15testdata/language-features/basic-values/typesig04.lc 1:9-1:10
13 _f 16 _f
diff --git a/testdata/language-features/basic-values/typesig05.out b/testdata/language-features/basic-values/typesig05.out
index 0f4f157e..b5fdd7ec 100644
--- a/testdata/language-features/basic-values/typesig05.out
+++ b/testdata/language-features/basic-values/typesig05.out
@@ -1,8 +1,8 @@
1main is not found 1main is not found
2------------ desugared source code 2------------ desugared source code
3funL = \(a :: _) _ -> _rhs a 3funL = \(a :: _) (_ :: _) -> _rhs a
4 4
5funR = \_ (a :: _) -> _rhs a 5funR = \(_ :: _) (a :: _) -> _rhs a
6 6
7value1 = _rhs (funL 'a' "b" :: Char) 7value1 = _rhs (funL 'a' "b" :: Char)
8 8
@@ -13,13 +13,24 @@ value3 = _rhs (funL 'a' "b")
13 13
14value4 :: String 14value4 :: String
15value4 = _rhs (funR 'a' "b") 15value4 = _rhs (funR 'a' "b")
16------------ trace 16------------ core code
17funL :: forall a b . a -> b -> a 17funL :: forall a b . a -> b -> a
18funL = \_ _ a _ -> _rhs a
19
18funR :: forall a b . a -> b -> b 20funR :: forall a b . a -> b -> b
21funR = \_ _ _ a -> _rhs a
22
19value1 :: Char 23value1 :: Char
24value1 = _rhs 'a'
25
20value2 :: String 26value2 :: String
27value2 = _rhs "b"
28
21value3 :: Char 29value3 :: Char
30value3 = _rhs 'a'
31
22value4 :: String 32value4 :: String
33value4 = _rhs "b"
23------------ tooltips 34------------ tooltips
24testdata/language-features/basic-values/typesig05.lc 1:1-1:5 35testdata/language-features/basic-values/typesig05.lc 1:1-1:5
25 forall a b . a -> b -> a 36 forall a b . a -> b -> a
diff --git a/testdata/language-features/basic-values/typesig06.out b/testdata/language-features/basic-values/typesig06.out
index b933dda4..5b74205a 100644
--- a/testdata/language-features/basic-values/typesig06.out
+++ b/testdata/language-features/basic-values/typesig06.out
@@ -1,17 +1,24 @@
1main is not found 1main is not found
2------------ desugared source code 2------------ desugared source code
3funL = \(a :: _) _ -> _rhs a 3funL = \(a :: _) (_ :: _) -> _rhs a
4 4
5(<@) = \(a :: _) _ -> _rhs a 5(<@) = \(a :: _) (_ :: _) -> _rhs a
6 6
7value1 = _rhs ("hi" <@ 1.2 :: String) 7value1 = _rhs ("hi" <@ 1.2 :: String)
8 8
9value2 = _rhs ("hi" `funL` 1.2 :: String) 9value2 = _rhs ("hi" `funL` 1.2 :: String)
10------------ trace 10------------ core code
11<@ :: forall a b . a -> b -> a
12<@ = \_ _ a _ -> _rhs a
13
11funL :: forall a b . a -> b -> a 14funL :: forall a b . a -> b -> a
12(<@) :: forall a b . a -> b -> a 15funL = \_ _ a _ -> _rhs a
16
13value1 :: String 17value1 :: String
18value1 = _rhs "hi"
19
14value2 :: String 20value2 :: String
21value2 = _rhs "hi"
15------------ tooltips 22------------ tooltips
16testdata/language-features/basic-values/typesig06.lc 1:1-1:5 23testdata/language-features/basic-values/typesig06.lc 1:1-1:5
17 forall a b . a -> b -> a 24 forall a b . a -> b -> a
diff --git a/testdata/language-features/basic-values/typesig07.out b/testdata/language-features/basic-values/typesig07.out
index dfad6a8c..a374ab2a 100644
--- a/testdata/language-features/basic-values/typesig07.out
+++ b/testdata/language-features/basic-values/typesig07.out
@@ -10,20 +10,31 @@ value3 :: Int
10value3 = _rhs (fromInt 3) 10value3 = _rhs (fromInt 3)
11 11
12value4 :: () -> () -> () 12value4 :: () -> () -> ()
13value4 = \_ _ -> _rhs () 13value4 = \(_ :: _) (_ :: _) -> _rhs ()
14 14
15(@@@) :: () -> () -> () 15(@@@) :: () -> () -> ()
16(@@@) = \_ _ -> _rhs () 16(@@@) = \(_ :: _) (_ :: _) -> _rhs ()
17 17
18value6 :: () -> () -> () 18value6 :: () -> () -> ()
19value6 = \_ _ -> _rhs () 19value6 = \(_ :: _) (_ :: _) -> _rhs ()
20------------ trace 20------------ core code
21@@@ :: () -> () -> ()
22@@@ = \_ _ -> _rhs ()
23
21value1 :: Int 24value1 :: Int
25value1 = _rhs 1
26
22value2 :: Int 27value2 :: Int
28value2 = _rhs 2
29
23value3 :: Int 30value3 :: Int
31value3 = _rhs 3
32
24value4 :: () -> () -> () 33value4 :: () -> () -> ()
25(@@@) :: () -> () -> () 34value4 = \_ _ -> _rhs ()
35
26value6 :: () -> () -> () 36value6 :: () -> () -> ()
37value6 = \_ _ -> _rhs ()
27------------ tooltips 38------------ tooltips
28testdata/language-features/basic-values/typesig07.lc 1:27-1:30 39testdata/language-features/basic-values/typesig07.lc 1:27-1:30
29 Type | Type | Type 40 Type | Type | Type
diff --git a/testdata/language-features/basic-values/typesyn01.out b/testdata/language-features/basic-values/typesyn01.out
index 2d858ff5..442aeac3 100644
--- a/testdata/language-features/basic-values/typesyn01.out
+++ b/testdata/language-features/basic-values/typesyn01.out
@@ -1,8 +1,9 @@
1main is not found 1main is not found
2------------ desugared source code 2------------ desugared source code
3'MyUnit = _rhs ' () 3'MyUnit = _rhs ' ()
4------------ trace 4------------ core code
5'MyUnit :: Type 5'MyUnit :: Type
6'MyUnit = _rhs ' ()
6------------ tooltips 7------------ tooltips
7testdata/language-features/basic-values/typesyn01.lc 1:6-1:12 8testdata/language-features/basic-values/typesyn01.lc 1:6-1:12
8 Type 9 Type
diff --git a/testdata/language-features/basic-values/typesyn02.out b/testdata/language-features/basic-values/typesyn02.out
index 5381b04b..fa019006 100644
--- a/testdata/language-features/basic-values/typesyn02.out
+++ b/testdata/language-features/basic-values/typesyn02.out
@@ -3,10 +3,13 @@ main is not found
3'MyUnit = _rhs ' () 3'MyUnit = _rhs ' ()
4 4
5fun :: forall (a :: _) . a -> MyUnit -> MyUnit 5fun :: forall (a :: _) . a -> MyUnit -> MyUnit
6fun = \_ (a :: _) -> hlistNilCase _ (_rhs ()) a 6fun = \(_ :: _) (a :: _) -> hlistNilCase _ (_rhs ()) a
7------------ trace 7------------ core code
8'MyUnit :: Type 8'MyUnit :: Type
9'MyUnit = _rhs ' ()
10
9fun :: forall a . a -> MyUnit -> () 11fun :: forall a . a -> MyUnit -> ()
12fun = \_ _ a -> hlistNilCase ' () (_rhs ()) a
10------------ tooltips 13------------ tooltips
11testdata/language-features/basic-values/typesyn02.lc 1:6-1:12 14testdata/language-features/basic-values/typesyn02.lc 1:6-1:12
12 Type 15 Type
diff --git a/testdata/language-features/basic-values/where01.out b/testdata/language-features/basic-values/where01.out
index 82492897..843b762e 100644
--- a/testdata/language-features/basic-values/where01.out
+++ b/testdata/language-features/basic-values/where01.out
@@ -21,18 +21,39 @@ value9 = _rhs let a = _rhs (); b = _rhs () in a
21value10 = _rhs let a = _rhs (); b = _rhs () in a 21value10 = _rhs let a = _rhs (); b = _rhs () in a
22 22
23value11 = _rhs let a = _rhs (); b = _rhs () in a 23value11 = _rhs let a = _rhs (); b = _rhs () in a
24------------ trace 24------------ core code
25value1 :: () 25value1 :: ()
26value1 = _rhs ()
27
28value10 :: ()
29value10 = _rhs ()
30
31value11 :: ()
32value11 = _rhs ()
33
26value2 :: () 34value2 :: ()
35value2 = _rhs ()
36
27value3 :: () 37value3 :: ()
38value3 = _rhs ()
39
28value4 :: () 40value4 :: ()
41value4 = _rhs ()
42
29value5 :: () 43value5 :: ()
44value5 = _rhs ()
45
30value6 :: () 46value6 :: ()
47value6 = _rhs ()
48
31value7 :: () 49value7 :: ()
50value7 = _rhs ()
51
32value8 :: () 52value8 :: ()
53value8 = _rhs ()
54
33value9 :: () 55value9 :: ()
34value10 :: () 56value9 = _rhs ()
35value11 :: ()
36------------ tooltips 57------------ tooltips
37testdata/language-features/basic-values/where01.lc 1:1-1:7 58testdata/language-features/basic-values/where01.lc 1:1-1:7
38 () 59 ()
diff --git a/testdata/language-features/basic-values/where04.out b/testdata/language-features/basic-values/where04.out
index 911c7e1a..9eb5f765 100644
--- a/testdata/language-features/basic-values/where04.out
+++ b/testdata/language-features/basic-values/where04.out
@@ -5,10 +5,15 @@ value1 = _rhs let a = _rhs let b = _rhs () in b in a
5value2 = _rhs let a = _rhs let b = _rhs () in b in a 5value2 = _rhs let a = _rhs let b = _rhs () in b in a
6 6
7value3 = _rhs let a = _rhs let b = _rhs () in b in a 7value3 = _rhs let a = _rhs let b = _rhs () in b in a
8------------ trace 8------------ core code
9value1 :: () 9value1 :: ()
10value1 = _rhs ()
11
10value2 :: () 12value2 :: ()
13value2 = _rhs ()
14
11value3 :: () 15value3 :: ()
16value3 = _rhs ()
12------------ tooltips 17------------ tooltips
13testdata/language-features/basic-values/where04.lc 1:1-1:7 18testdata/language-features/basic-values/where04.lc 1:1-1:7
14 () 19 ()
diff --git a/testdata/language-features/basic-values/where05.out b/testdata/language-features/basic-values/where05.out
index cbfce0ea..55c7a06d 100644
--- a/testdata/language-features/basic-values/where05.out
+++ b/testdata/language-features/basic-values/where05.out
@@ -2,28 +2,59 @@ main is not found
2------------ desugared source code 2------------ desugared source code
3value1 3value1
4 = _rhs 4 = _rhs
5 ((\(a :: _) -> case'Bool (\_ -> _) () (let b = _rhs () in b) (fromInt 1 == a)) 5 ((\(a :: _) -> case'Bool
6 (\(_ :: _) -> _)
7 ()
8 (let b = _rhs () in b)
9 (fromInt 1 == a))
6 (fromInt 1)) 10 (fromInt 1))
7 11
8value2 12value2
9 = _rhs 13 = _rhs
10 ((\(a :: _) -> case'Bool (\_ -> _) () (let b = _rhs () in b) (fromInt 1 == a)) 14 ((\(a :: _) -> case'Bool
15 (\(_ :: _) -> _)
16 ()
17 (let b = _rhs () in b)
18 (fromInt 1 == a))
11 (fromInt 1)) 19 (fromInt 1))
12 20
13value3 21value3
14 = _rhs 22 = _rhs
15 ((\(a :: _) -> case'Bool (\_ -> _) () (let b = _rhs () in b) (fromInt 1 == a)) 23 ((\(a :: _) -> case'Bool
24 (\(_ :: _) -> _)
25 ()
26 (let b = _rhs () in b)
27 (fromInt 1 == a))
16 (fromInt 1)) 28 (fromInt 1))
17 29
18value4 30value4
19 = _rhs 31 = _rhs
20 let a = _rhs () in (\(b :: _) -> case'Bool (\_ -> _) () a (fromInt 1 == b)) 32 let a = _rhs () in (\(b :: _) -> case'Bool
33 (\(_ :: _) -> _)
34 ()
35 a
36 (fromInt 1 == b))
21 (fromInt 1) 37 (fromInt 1)
22------------ trace 38------------ core code
23value1 :: forall a . (Eq a, Num a) => () 39value1 :: forall a . (Eq a, Num a) => ()
40value1
41 = \a b c -> _rhs
42 (case'Bool (\_ -> ' ()) () () ((a == b) (fromInt a c 1) (fromInt a c 1)))
43
24value2 :: forall a . (Eq a, Num a) => () 44value2 :: forall a . (Eq a, Num a) => ()
45value2
46 = \a b c -> _rhs
47 (case'Bool (\_ -> ' ()) () () ((a == b) (fromInt a c 1) (fromInt a c 1)))
48
25value3 :: forall a . (Eq a, Num a) => () 49value3 :: forall a . (Eq a, Num a) => ()
50value3
51 = \a b c -> _rhs
52 (case'Bool (\_ -> ' ()) () () ((a == b) (fromInt a c 1) (fromInt a c 1)))
53
26value4 :: forall a . (Eq a, Num a) => () 54value4 :: forall a . (Eq a, Num a) => ()
55value4
56 = \a b c -> _rhs
57 (case'Bool (\_ -> ' ()) () () ((a == b) (fromInt a c 1) (fromInt a c 1)))
27------------ tooltips 58------------ tooltips
28testdata/language-features/basic-values/where05.lc 1:1-1:7 59testdata/language-features/basic-values/where05.lc 1:1-1:7
29 forall a . (Eq a, Num a) => () 60 forall a . (Eq a, Num a) => ()
diff --git a/testdata/language-features/basic-values/wildcard01.out b/testdata/language-features/basic-values/wildcard01.out
index f13dd4d2..9fa1c034 100644
--- a/testdata/language-features/basic-values/wildcard01.out
+++ b/testdata/language-features/basic-values/wildcard01.out
@@ -1,8 +1,9 @@
1main is not found 1main is not found
2------------ desugared source code 2------------ desugared source code
3funUnit = \_ -> _rhs () 3funUnit = \(_ :: _) -> _rhs ()
4------------ trace 4------------ core code
5funUnit :: forall a . a -> () 5funUnit :: forall a . a -> ()
6funUnit = \_ _ -> _rhs ()
6------------ tooltips 7------------ tooltips
7testdata/language-features/basic-values/wildcard01.lc 1:1-1:8 8testdata/language-features/basic-values/wildcard01.lc 1:1-1:8
8 forall a . a -> () 9 forall a . a -> ()
diff --git a/testdata/language-features/comment/comment01.out b/testdata/language-features/comment/comment01.out
index 521dcdfe..790653d7 100644
--- a/testdata/language-features/comment/comment01.out
+++ b/testdata/language-features/comment/comment01.out
@@ -1,2 +1,3 @@
1main is not found 1main is not found
2------------ desugared source code \ No newline at end of file 2------------ desugared source code
3------------ core code \ No newline at end of file
diff --git a/testdata/language-features/comment/comment02.out b/testdata/language-features/comment/comment02.out
index 521dcdfe..790653d7 100644
--- a/testdata/language-features/comment/comment02.out
+++ b/testdata/language-features/comment/comment02.out
@@ -1,2 +1,3 @@
1main is not found 1main is not found
2------------ desugared source code \ No newline at end of file 2------------ desugared source code
3------------ core code \ No newline at end of file
diff --git a/testdata/language-features/comment/comment03.out b/testdata/language-features/comment/comment03.out
index 521dcdfe..790653d7 100644
--- a/testdata/language-features/comment/comment03.out
+++ b/testdata/language-features/comment/comment03.out
@@ -1,2 +1,3 @@
1main is not found 1main is not found
2------------ desugared source code \ No newline at end of file 2------------ desugared source code
3------------ core code \ No newline at end of file
diff --git a/testdata/language-features/comment/comment04.out b/testdata/language-features/comment/comment04.out
index 521dcdfe..790653d7 100644
--- a/testdata/language-features/comment/comment04.out
+++ b/testdata/language-features/comment/comment04.out
@@ -1,2 +1,3 @@
1main is not found 1main is not found
2------------ desugared source code \ No newline at end of file 2------------ desugared source code
3------------ core code \ No newline at end of file
diff --git a/testdata/language-features/emptysource.out b/testdata/language-features/emptysource.out
index 521dcdfe..790653d7 100644
--- a/testdata/language-features/emptysource.out
+++ b/testdata/language-features/emptysource.out
@@ -1,2 +1,3 @@
1main is not found 1main is not found
2------------ desugared source code \ No newline at end of file 2------------ desugared source code
3------------ core code \ No newline at end of file
diff --git a/testdata/language-features/guard/guard01.out b/testdata/language-features/guard/guard01.out
index a4d1b1be..3e232549 100644
--- a/testdata/language-features/guard/guard01.out
+++ b/testdata/language-features/guard/guard01.out
@@ -1,8 +1,9 @@
1main is not found 1main is not found
2------------ desugared source code 2------------ desugared source code
3value = case'Bool (\_ -> _) (_rhs undefined) (_rhs ()) True 3value = case'Bool (\(_ :: _) -> _) (_rhs undefined) (_rhs ()) True
4------------ trace 4------------ core code
5value :: () 5value :: ()
6value = _rhs ()
6------------ tooltips 7------------ tooltips
7testdata/language-features/guard/guard01.lc 1:1-1:6 8testdata/language-features/guard/guard01.lc 1:1-1:6
8 () 9 ()
diff --git a/testdata/language-features/guard/guard03.out b/testdata/language-features/guard/guard03.out
index 6540522a..3e44257a 100644
--- a/testdata/language-features/guard/guard03.out
+++ b/testdata/language-features/guard/guard03.out
@@ -2,12 +2,13 @@ main is not found
2------------ desugared source code 2------------ desugared source code
3value 3value
4 = case'Bool 4 = case'Bool
5 (\_ -> _) 5 (\(_ :: _) -> _)
6 (case'Bool (\_ -> _) (_rhs undefined) (_rhs "False") False) 6 (case'Bool (\(_ :: _) -> _) (_rhs undefined) (_rhs "False") False)
7 (_rhs "True") 7 (_rhs "True")
8 True 8 True
9------------ trace 9------------ core code
10value :: String 10value :: String
11value = _rhs "True"
11------------ tooltips 12------------ tooltips
12testdata/language-features/guard/guard03.lc 1:1-1:6 13testdata/language-features/guard/guard03.lc 1:1-1:6
13 String 14 String
diff --git a/testdata/language-features/guard/guard04.out b/testdata/language-features/guard/guard04.out
index 5b55275b..3becb569 100644
--- a/testdata/language-features/guard/guard04.out
+++ b/testdata/language-features/guard/guard04.out
@@ -1,8 +1,9 @@
1main is not found 1main is not found
2------------ desugared source code 2------------ desugared source code
3value = case'Bool (\_ -> _) (_rhs "False") (_rhs "True") True 3value = case'Bool (\(_ :: _) -> _) (_rhs "False") (_rhs "True") True
4------------ trace 4------------ core code
5value :: String 5value :: String
6value = _rhs "True"
6------------ tooltips 7------------ tooltips
7testdata/language-features/guard/guard04.lc 1:1-1:6 8testdata/language-features/guard/guard04.lc 1:1-1:6
8 String 9 String
diff --git a/testdata/language-features/guard/guard06.out b/testdata/language-features/guard/guard06.out
index e4a81609..aa385877 100644
--- a/testdata/language-features/guard/guard06.out
+++ b/testdata/language-features/guard/guard06.out
@@ -1,8 +1,9 @@
1main is not found 1main is not found
2------------ desugared source code 2------------ desugared source code
3value = _rhs () 3value = _rhs ()
4------------ trace 4------------ core code
5value :: () 5value :: ()
6value = _rhs ()
6------------ tooltips 7------------ tooltips
7testdata/language-features/guard/guard06.lc 1:1-1:6 8testdata/language-features/guard/guard06.lc 1:1-1:6
8 () 9 ()
diff --git a/testdata/language-features/guard/guard07.out b/testdata/language-features/guard/guard07.out
index acd4ea18..81726eed 100644
--- a/testdata/language-features/guard/guard07.out
+++ b/testdata/language-features/guard/guard07.out
@@ -2,12 +2,13 @@ main is not found
2------------ desugared source code 2------------ desugared source code
3value 3value
4 = case'Bool 4 = case'Bool
5 (\_ -> _) 5 (\(_ :: _) -> _)
6 (case'Bool (\_ -> _) (_rhs undefined) (_rhs "False") False) 6 (case'Bool (\(_ :: _) -> _) (_rhs undefined) (_rhs "False") False)
7 (_rhs "True") 7 (_rhs "True")
8 True 8 True
9------------ trace 9------------ core code
10value :: String 10value :: String
11value = _rhs "True"
11------------ tooltips 12------------ tooltips
12testdata/language-features/guard/guard07.lc 1:1-1:6 13testdata/language-features/guard/guard07.lc 1:1-1:6
13 String 14 String
diff --git a/testdata/language-features/guard/guard08.out b/testdata/language-features/guard/guard08.out
index 1f5e5ab3..5d6e6bdc 100644
--- a/testdata/language-features/guard/guard08.out
+++ b/testdata/language-features/guard/guard08.out
@@ -2,12 +2,13 @@ main is not found
2------------ desugared source code 2------------ desugared source code
3value 3value
4 = case'Bool 4 = case'Bool
5 (\_ -> _) 5 (\(_ :: _) -> _)
6 (case'Bool (\_ -> _) (_rhs undefined) (_rhs "False") False) 6 (case'Bool (\(_ :: _) -> _) (_rhs undefined) (_rhs "False") False)
7 (_rhs "True") 7 (_rhs "True")
8 True 8 True
9------------ trace 9------------ core code
10value :: String 10value :: String
11value = _rhs "True"
11------------ tooltips 12------------ tooltips
12testdata/language-features/guard/guard08.lc 1:1-1:6 13testdata/language-features/guard/guard08.lc 1:1-1:6
13 String 14 String
diff --git a/testdata/language-features/guard/guard09.out b/testdata/language-features/guard/guard09.out
index 1aa3c7a2..4b580469 100644
--- a/testdata/language-features/guard/guard09.out
+++ b/testdata/language-features/guard/guard09.out
@@ -2,12 +2,13 @@ main is not found
2------------ desugared source code 2------------ desugared source code
3value 3value
4 = case'Bool 4 = case'Bool
5 (\_ -> _) 5 (\(_ :: _) -> _)
6 (case'Bool (\_ -> _) (_rhs undefined) (_rhs "False") False) 6 (case'Bool (\(_ :: _) -> _) (_rhs undefined) (_rhs "False") False)
7 (_rhs "True") 7 (_rhs "True")
8 True 8 True
9------------ trace 9------------ core code
10value :: String 10value :: String
11value = _rhs "True"
11------------ tooltips 12------------ tooltips
12testdata/language-features/guard/guard09.lc 1:1-1:6 13testdata/language-features/guard/guard09.lc 1:1-1:6
13 String 14 String
diff --git a/testdata/language-features/guard/guard11.out b/testdata/language-features/guard/guard11.out
index b8449128..a08332c1 100644
--- a/testdata/language-features/guard/guard11.out
+++ b/testdata/language-features/guard/guard11.out
@@ -1,8 +1,9 @@
1main is not found 1main is not found
2------------ desugared source code 2------------ desugared source code
3fun = \(a :: _) -> case'Bool (\_ -> _) (_rhs "False") (_rhs "True") a 3fun = \(a :: _) -> case'Bool (\(_ :: _) -> _) (_rhs "False") (_rhs "True") a
4------------ trace 4------------ core code
5fun :: Bool -> String 5fun :: Bool -> String
6fun = \a -> case'Bool (\_ -> 'String) (_rhs "False") (_rhs "True") a
6------------ tooltips 7------------ tooltips
7testdata/language-features/guard/guard11.lc 1:1-1:4 8testdata/language-features/guard/guard11.lc 1:1-1:4
8 Bool -> String 9 Bool -> String
diff --git a/testdata/language-features/guard/guard13.out b/testdata/language-features/guard/guard13.out
index 56ac235a..5498c290 100644
--- a/testdata/language-features/guard/guard13.out
+++ b/testdata/language-features/guard/guard13.out
@@ -1,8 +1,9 @@
1main is not found 1main is not found
2------------ desugared source code 2------------ desugared source code
3fun = \(a :: _) -> case'Bool (\_ -> _) (_rhs ()) (_rhs ()) a 3fun = \(a :: _) -> case'Bool (\(_ :: _) -> _) (_rhs ()) (_rhs ()) a
4------------ trace 4------------ core code
5fun :: Bool -> () 5fun :: Bool -> ()
6fun = \a -> case'Bool (\_ -> ' ()) (_rhs ()) (_rhs ()) a
6------------ tooltips 7------------ tooltips
7testdata/language-features/guard/guard13.lc 1:1-1:4 8testdata/language-features/guard/guard13.lc 1:1-1:4
8 Bool -> () 9 Bool -> ()
diff --git a/testdata/language-features/guard/guard14.out b/testdata/language-features/guard/guard14.out
index aabcc1c6..6e6f225c 100644
--- a/testdata/language-features/guard/guard14.out
+++ b/testdata/language-features/guard/guard14.out
@@ -1,8 +1,9 @@
1main is not found 1main is not found
2------------ desugared source code 2------------ desugared source code
3value = _rhs let a = case'Bool (\_ -> _) (_rhs ()) (_rhs ()) True in () 3value = _rhs let a = case'Bool (\(_ :: _) -> _) (_rhs ()) (_rhs ()) True in ()
4------------ trace 4------------ core code
5value :: () 5value :: ()
6value = _rhs ()
6------------ tooltips 7------------ tooltips
7testdata/language-features/guard/guard14.lc 1:1-1:6 8testdata/language-features/guard/guard14.lc 1:1-1:6
8 () 9 ()
diff --git a/testdata/language-features/guard/guard15.out b/testdata/language-features/guard/guard15.out
index 68d58632..3d01ff73 100644
--- a/testdata/language-features/guard/guard15.out
+++ b/testdata/language-features/guard/guard15.out
@@ -1,8 +1,9 @@
1main is not found 1main is not found
2------------ desugared source code 2------------ desugared source code
3value = _rhs let a = case'Bool (\_ -> _) (_rhs ()) (_rhs ()) True in () 3value = _rhs let a = case'Bool (\(_ :: _) -> _) (_rhs ()) (_rhs ()) True in ()
4------------ trace 4------------ core code
5value :: () 5value :: ()
6value = _rhs ()
6------------ tooltips 7------------ tooltips
7testdata/language-features/guard/guard15.lc 1:1-1:6 8testdata/language-features/guard/guard15.lc 1:1-1:6
8 () 9 ()
diff --git a/testdata/language-features/guard/guard16.out b/testdata/language-features/guard/guard16.out
index 99d1d9b9..1a574cf7 100644
--- a/testdata/language-features/guard/guard16.out
+++ b/testdata/language-features/guard/guard16.out
@@ -3,13 +3,16 @@ main is not found
3value 3value
4 = _rhs 4 = _rhs
5 ((\(a :: _) -> case'Bool 5 ((\(a :: _) -> case'Bool
6 (\_ -> _) 6 (\(_ :: _) -> _)
7 () 7 ()
8 (case'Bool (\_ -> _) () () True) 8 (case'Bool (\(_ :: _) -> _) () () True)
9 (fromInt 1 == a)) 9 (fromInt 1 == a))
10 (fromInt 1)) 10 (fromInt 1))
11------------ trace 11------------ core code
12value :: forall a . (Eq a, Num a) => () 12value :: forall a . (Eq a, Num a) => ()
13value
14 = \a b c -> _rhs
15 (case'Bool (\_ -> ' ()) () () ((a == b) (fromInt a c 1) (fromInt a c 1)))
13------------ tooltips 16------------ tooltips
14testdata/language-features/guard/guard16.lc 1:1-1:6 17testdata/language-features/guard/guard16.lc 1:1-1:6
15 forall a . (Eq a, Num a) => () 18 forall a . (Eq a, Num a) => ()
diff --git a/testdata/language-features/module/Hello01.out b/testdata/language-features/module/Hello01.out
index 34f3f918..0c553aa4 100644
--- a/testdata/language-features/module/Hello01.out
+++ b/testdata/language-features/module/Hello01.out
@@ -3,9 +3,12 @@ main is not found
3hello = _rhs "hello" 3hello = _rhs "hello"
4 4
5world = _rhs "world" 5world = _rhs "world"
6------------ trace 6------------ core code
7hello :: String 7hello :: String
8hello = _rhs "hello"
9
8world :: String 10world :: String
11world = _rhs "world"
9------------ tooltips 12------------ tooltips
10testdata/language-features/module/Hello01.lc 3:1-3:6 13testdata/language-features/module/Hello01.lc 3:1-3:6
11 String 14 String
diff --git a/testdata/language-features/module/Hello02.out b/testdata/language-features/module/Hello02.out
index fc3a7be7..86d52127 100644
--- a/testdata/language-features/module/Hello02.out
+++ b/testdata/language-features/module/Hello02.out
@@ -3,9 +3,9 @@ main is not found
3hello = _rhs "hello" 3hello = _rhs "hello"
4 4
5world = _rhs "world" 5world = _rhs "world"
6------------ trace 6------------ core code
7hello :: String 7hello :: String
8world :: String 8hello = _rhs "hello"
9------------ tooltips 9------------ tooltips
10testdata/language-features/module/Hello02.lc 3:1-3:6 10testdata/language-features/module/Hello02.lc 3:1-3:6
11 String 11 String
diff --git a/testdata/language-features/module/Hello03.out b/testdata/language-features/module/Hello03.out
index 8a645fda..66b7e036 100644
--- a/testdata/language-features/module/Hello03.out
+++ b/testdata/language-features/module/Hello03.out
@@ -3,9 +3,9 @@ main is not found
3greeting = _rhs 'G' 3greeting = _rhs 'G'
4 4
5value = _rhs 12.2 5value = _rhs 12.2
6------------ trace 6------------ core code
7greeting :: Char 7greeting :: Char
8value :: Float 8greeting = _rhs 'G'
9------------ tooltips 9------------ tooltips
10testdata/language-features/module/Hello03.lc 7:1-7:9 10testdata/language-features/module/Hello03.lc 7:1-7:9
11 Char 11 Char
diff --git a/testdata/language-features/module/ModulePackage/SubModule01.out b/testdata/language-features/module/ModulePackage/SubModule01.out
index 119eaeac..71c67233 100644
--- a/testdata/language-features/module/ModulePackage/SubModule01.out
+++ b/testdata/language-features/module/ModulePackage/SubModule01.out
@@ -1,8 +1,9 @@
1main is not found 1main is not found
2------------ desugared source code 2------------ desugared source code
3hello = _rhs "Hello" 3hello = _rhs "Hello"
4------------ trace 4------------ core code
5hello :: String 5hello :: String
6hello = _rhs "Hello"
6------------ tooltips 7------------ tooltips
7testdata/language-features/module/ModulePackage/SubModule01.lc 3:1-3:6 8testdata/language-features/module/ModulePackage/SubModule01.lc 3:1-3:6
8 String 9 String
diff --git a/testdata/language-features/module/Moduledef01.out b/testdata/language-features/module/Moduledef01.out
index 521dcdfe..790653d7 100644
--- a/testdata/language-features/module/Moduledef01.out
+++ b/testdata/language-features/module/Moduledef01.out
@@ -1,2 +1,3 @@
1main is not found 1main is not found
2------------ desugared source code \ No newline at end of file 2------------ desugared source code
3------------ core code \ No newline at end of file
diff --git a/testdata/language-features/module/Moduledef06.out b/testdata/language-features/module/Moduledef06.out
index ef523d5a..5036cb7f 100644
--- a/testdata/language-features/module/Moduledef06.out
+++ b/testdata/language-features/module/Moduledef06.out
@@ -1,8 +1,9 @@
1main is not found 1main is not found
2------------ desugared source code 2------------ desugared source code
3hello = _rhs "hello" 3hello = _rhs "hello"
4------------ trace 4------------ core code
5hello :: String 5hello :: String
6hello = _rhs "hello"
6------------ tooltips 7------------ tooltips
7testdata/language-features/module/Moduledef06.lc 3:1-3:6 8testdata/language-features/module/Moduledef06.lc 3:1-3:6
8 String 9 String
diff --git a/testdata/language-features/module/Moduledef07.out b/testdata/language-features/module/Moduledef07.out
index ac2aa83e..b75130a3 100644
--- a/testdata/language-features/module/Moduledef07.out
+++ b/testdata/language-features/module/Moduledef07.out
@@ -1,8 +1,9 @@
1main is not found 1main is not found
2------------ desugared source code 2------------ desugared source code
3hello = _rhs "hello" 3hello = _rhs "hello"
4------------ trace 4------------ core code
5hello :: String 5hello :: String
6hello = _rhs "hello"
6------------ tooltips 7------------ tooltips
7testdata/language-features/module/Moduledef07.lc 5:1-5:6 8testdata/language-features/module/Moduledef07.lc 5:1-5:6
8 String 9 String
diff --git a/testdata/language-features/module/Moduledef08.out b/testdata/language-features/module/Moduledef08.out
index e2b3e946..4b1c55aa 100644
--- a/testdata/language-features/module/Moduledef08.out
+++ b/testdata/language-features/module/Moduledef08.out
@@ -1,8 +1,7 @@
1main is not found 1main is not found
2------------ desugared source code 2------------ desugared source code
3hello = _rhs "hello" 3hello = _rhs "hello"
4------------ trace 4------------ core code
5hello :: String
6------------ tooltips 5------------ tooltips
7testdata/language-features/module/Moduledef08.lc 5:1-5:6 6testdata/language-features/module/Moduledef08.lc 5:1-5:6
8 String 7 String
diff --git a/testdata/language-features/module/Moduledef09.out b/testdata/language-features/module/Moduledef09.out
index 503326bb..0aea411c 100644
--- a/testdata/language-features/module/Moduledef09.out
+++ b/testdata/language-features/module/Moduledef09.out
@@ -3,9 +3,9 @@ main is not found
3hello = _rhs "hello" 3hello = _rhs "hello"
4 4
5world = _rhs "world" 5world = _rhs "world"
6------------ trace 6------------ core code
7hello :: String 7hello :: String
8world :: String 8hello = _rhs "hello"
9------------ tooltips 9------------ tooltips
10testdata/language-features/module/Moduledef09.lc 5:1-5:6 10testdata/language-features/module/Moduledef09.lc 5:1-5:6
11 String 11 String
diff --git a/testdata/language-features/module/Moduledef10.out b/testdata/language-features/module/Moduledef10.out
index 70a9525c..ec9a574e 100644
--- a/testdata/language-features/module/Moduledef10.out
+++ b/testdata/language-features/module/Moduledef10.out
@@ -5,10 +5,12 @@ hello = _rhs "hello"
5world = _rhs "world" 5world = _rhs "world"
6 6
7value = _rhs () 7value = _rhs ()
8------------ trace 8------------ core code
9hello :: String 9hello :: String
10hello = _rhs "hello"
11
10world :: String 12world :: String
11value :: () 13world = _rhs "world"
12------------ tooltips 14------------ tooltips
13testdata/language-features/module/Moduledef10.lc 6:1-6:6 15testdata/language-features/module/Moduledef10.lc 6:1-6:6
14 String 16 String
diff --git a/testdata/language-features/module/Moduledef13.out b/testdata/language-features/module/Moduledef13.out
index 90ae50c7..f1cf03de 100644
--- a/testdata/language-features/module/Moduledef13.out
+++ b/testdata/language-features/module/Moduledef13.out
@@ -1,8 +1,9 @@
1main is not found 1main is not found
2------------ desugared source code 2------------ desugared source code
3hello = _rhs "hello" 3hello = _rhs "hello"
4------------ trace 4------------ core code
5hello :: String 5hello :: String
6hello = _rhs "hello"
6------------ tooltips 7------------ tooltips
7testdata/language-features/module/Moduledef13.lc 3:1-3:6 8testdata/language-features/module/Moduledef13.lc 3:1-3:6
8 String 9 String
diff --git a/testdata/language-features/module/TypeSyn01Mod.out b/testdata/language-features/module/TypeSyn01Mod.out
index 796185a0..109f5ee9 100644
--- a/testdata/language-features/module/TypeSyn01Mod.out
+++ b/testdata/language-features/module/TypeSyn01Mod.out
@@ -1,8 +1,9 @@
1main is not found 1main is not found
2------------ desugared source code 2------------ desugared source code
3'MyUnit = _rhs ' () 3'MyUnit = _rhs ' ()
4------------ trace 4------------ core code
5'MyUnit :: Type 5'MyUnit :: Type
6'MyUnit = _rhs ' ()
6------------ tooltips 7------------ tooltips
7testdata/language-features/module/TypeSyn01Mod.lc 2:6-2:12 8testdata/language-features/module/TypeSyn01Mod.lc 2:6-2:12
8 Type 9 Type
diff --git a/testdata/language-features/module/import01.out b/testdata/language-features/module/import01.out
index 531eae39..6ccf9702 100644
--- a/testdata/language-features/module/import01.out
+++ b/testdata/language-features/module/import01.out
@@ -1,8 +1,9 @@
1main is not found 1main is not found
2------------ desugared source code 2------------ desugared source code
3x = _rhs hello 3x = _rhs hello
4------------ trace 4------------ core code
5x :: String 5x :: String
6x = _rhs "hello"
6------------ tooltips 7------------ tooltips
7testdata/language-features/module/import01.lc 3:1-3:2 8testdata/language-features/module/import01.lc 3:1-3:2
8 String 9 String
diff --git a/testdata/language-features/module/import05.out b/testdata/language-features/module/import05.out
index 9dfe0dba..3d820de9 100644
--- a/testdata/language-features/module/import05.out
+++ b/testdata/language-features/module/import05.out
@@ -2,8 +2,9 @@ main is not found
2------------ desugared source code 2------------ desugared source code
3x :: String 3x :: String
4x = _rhs hello 4x = _rhs hello
5------------ trace 5------------ core code
6x :: String 6x :: String
7x = _rhs "hello"
7------------ tooltips 8------------ tooltips
8testdata/language-features/module/import05.lc 3:6-3:12 9testdata/language-features/module/import05.lc 3:6-3:12
9 Type 10 Type
diff --git a/testdata/language-features/module/import06.out b/testdata/language-features/module/import06.out
index 735c1544..ae0e10e5 100644
--- a/testdata/language-features/module/import06.out
+++ b/testdata/language-features/module/import06.out
@@ -3,9 +3,12 @@ main is not found
3hello = _rhs () 3hello = _rhs ()
4 4
5x = _rhs world 5x = _rhs world
6------------ trace 6------------ core code
7hello :: () 7hello :: ()
8hello = _rhs ()
9
8x :: String 10x :: String
11x = _rhs "world"
9------------ tooltips 12------------ tooltips
10testdata/language-features/module/import06.lc 3:1-3:6 13testdata/language-features/module/import06.lc 3:1-3:6
11 () 14 ()
diff --git a/testdata/language-features/module/import07.out b/testdata/language-features/module/import07.out
index bcbe4e32..31cb267f 100644
--- a/testdata/language-features/module/import07.out
+++ b/testdata/language-features/module/import07.out
@@ -3,9 +3,12 @@ main is not found
3hello = _rhs () 3hello = _rhs ()
4 4
5x = _rhs world 5x = _rhs world
6------------ trace 6------------ core code
7hello :: () 7hello :: ()
8hello = _rhs ()
9
8x :: String 10x :: String
11x = _rhs "world"
9------------ tooltips 12------------ tooltips
10testdata/language-features/module/import07.lc 3:1-3:6 13testdata/language-features/module/import07.lc 3:1-3:6
11 () 14 ()
diff --git a/testdata/language-features/module/import08.out b/testdata/language-features/module/import08.out
index 4d9e057c..e68b7bcd 100644
--- a/testdata/language-features/module/import08.out
+++ b/testdata/language-features/module/import08.out
@@ -10,11 +10,18 @@ h = _rhs hello
10 10
11w :: String 11w :: String
12w = _rhs world 12w = _rhs world
13------------ trace 13------------ core code
14value :: ()
15g :: Char 14g :: Char
15g = _rhs 'G'
16
16h :: String 17h :: String
18h = _rhs "hello"
19
20value :: ()
21value = _rhs ()
22
17w :: String 23w :: String
24w = _rhs "world"
18------------ tooltips 25------------ tooltips
19testdata/language-features/module/import08.lc 3:1-3:6 26testdata/language-features/module/import08.lc 3:1-3:6
20 () 27 ()
diff --git a/testdata/language-features/module/import09.out b/testdata/language-features/module/import09.out
index 58440063..c8e689e5 100644
--- a/testdata/language-features/module/import09.out
+++ b/testdata/language-features/module/import09.out
@@ -1,9 +1,10 @@
1main is not found 1main is not found
2------------ desugared source code 2------------ desugared source code
3fun :: forall (a :: _) . a -> MyUnit -> MyUnit 3fun :: forall (a :: _) . a -> MyUnit -> MyUnit
4fun = \_ (a :: _) -> hlistNilCase _ (_rhs ()) a 4fun = \(_ :: _) (a :: _) -> hlistNilCase _ (_rhs ()) a
5------------ trace 5------------ core code
6fun :: forall a . a -> MyUnit -> () 6fun :: forall a . a -> MyUnit -> ()
7fun = \_ _ a -> hlistNilCase ' () (_rhs ()) a
7------------ tooltips 8------------ tooltips
8testdata/language-features/module/import09.lc 3:8-3:9 9testdata/language-features/module/import09.lc 3:8-3:9
9 _b 10 _b
diff --git a/testdata/language-features/module/import12.out b/testdata/language-features/module/import12.out
index df4d894b..26a58bd3 100644
--- a/testdata/language-features/module/import12.out
+++ b/testdata/language-features/module/import12.out
@@ -1,8 +1,9 @@
1main is not found 1main is not found
2------------ desugared source code 2------------ desugared source code
3fun = _rhs hello 3fun = _rhs hello
4------------ trace 4------------ core code
5fun :: String 5fun :: String
6fun = _rhs "hello"
6------------ tooltips 7------------ tooltips
7testdata/language-features/module/import12.lc 4:1-4:4 8testdata/language-features/module/import12.lc 4:1-4:4
8 String 9 String
diff --git a/testdata/language-features/module/import13.out b/testdata/language-features/module/import13.out
index 68ed44d8..5a9791da 100644
--- a/testdata/language-features/module/import13.out
+++ b/testdata/language-features/module/import13.out
@@ -1,8 +1,9 @@
1main is not found 1main is not found
2------------ desugared source code 2------------ desugared source code
3fun = _rhs hello 3fun = _rhs hello
4------------ trace 4------------ core code
5fun :: String 5fun :: String
6fun = _rhs "hello"
6------------ tooltips 7------------ tooltips
7testdata/language-features/module/import13.lc 4:1-4:4 8testdata/language-features/module/import13.lc 4:1-4:4
8 String 9 String
diff --git a/testdata/language-features/module/import14.out b/testdata/language-features/module/import14.out
index 958207ba..a2feaea6 100644
--- a/testdata/language-features/module/import14.out
+++ b/testdata/language-features/module/import14.out
@@ -1,8 +1,9 @@
1main is not found 1main is not found
2------------ desugared source code 2------------ desugared source code
3fun = _rhs hello 3fun = _rhs hello
4------------ trace 4------------ core code
5fun :: String 5fun :: String
6fun = _rhs "hello"
6------------ tooltips 7------------ tooltips
7testdata/language-features/module/import14.lc 4:1-4:4 8testdata/language-features/module/import14.lc 4:1-4:4
8 String 9 String
diff --git a/testdata/language-features/module/import15.out b/testdata/language-features/module/import15.out
index 8727ac08..7e58a5c7 100644
--- a/testdata/language-features/module/import15.out
+++ b/testdata/language-features/module/import15.out
@@ -1,8 +1,9 @@
1main is not found 1main is not found
2------------ desugared source code 2------------ desugared source code
3fun = _rhs hello 3fun = _rhs hello
4------------ trace 4------------ core code
5fun :: String 5fun :: String
6fun = _rhs "Hello"
6------------ tooltips 7------------ tooltips
7testdata/language-features/module/import15.lc 3:1-3:4 8testdata/language-features/module/import15.lc 3:1-3:4
8 String 9 String
diff --git a/testdata/language-features/pattern/pattern01.out b/testdata/language-features/pattern/pattern01.out
index eeda616d..b01ea25b 100644
--- a/testdata/language-features/pattern/pattern01.out
+++ b/testdata/language-features/pattern/pattern01.out
@@ -1,17 +1,40 @@
1main is not found 1main is not found
2------------ desugared source code 2------------ desugared source code
3fun1 = \(a :: _) -> case'Bool (\_ -> _) (_rhs '_') (_rhs '0') (fromInt 0 == a) 3fun1
4 = \(a :: _) -> case'Bool (\(_ :: _) -> _) (_rhs '_') (_rhs '0') (fromInt 0 == a)
4 5
5fun2 = \(a :: _) -> case'Bool (\_ -> _) (_rhs '_') (_rhs '0') ("0" == a) 6fun2 = \(a :: _) -> case'Bool (\(_ :: _) -> _) (_rhs '_') (_rhs '0') ("0" == a)
6 7
7fun3 = \(a :: _) -> case'Bool (\_ -> _) (_rhs '_') (_rhs '0') ('0' == a) 8fun3 = \(a :: _) -> case'Bool (\(_ :: _) -> _) (_rhs '_') (_rhs '0') ('0' == a)
8 9
9fun4 = \(a :: _) -> hlistNilCase _ (_rhs '0') a 10fun4 = \(a :: _) -> hlistNilCase _ (_rhs '0') a
10------------ trace 11------------ core code
11fun1 :: forall a . (Eq a, Num a) => a -> Char 12fun1 :: forall a . (Eq a, Num a) => a -> Char
13fun1
14 = \a b c d -> case'Bool
15 (\_ -> 'Char)
16 (_rhs '_')
17 (_rhs '0')
18 ((a == b) (fromInt a c 0) d)
19
12fun2 :: String -> Char 20fun2 :: String -> Char
21fun2
22 = \a -> case'Bool
23 (\_ -> 'Char)
24 (_rhs '_')
25 (_rhs '0')
26 (isEQ (primCompareString "0" a))
27
13fun3 :: Char -> Char 28fun3 :: Char -> Char
29fun3
30 = \a -> case'Bool
31 (\_ -> 'Char)
32 (_rhs '_')
33 (_rhs '0')
34 (isEQ (primCompareChar '0' a))
35
14fun4 :: () -> Char 36fun4 :: () -> Char
37fun4 = \a -> hlistNilCase 'Char (_rhs '0') a
15------------ tooltips 38------------ tooltips
16testdata/language-features/pattern/pattern01.lc 1:1-1:5 39testdata/language-features/pattern/pattern01.lc 1:1-1:5
17 forall a . (Eq a, Num a) => a -> Char 40 forall a . (Eq a, Num a) => a -> Char
diff --git a/testdata/language-features/pattern/uncovered.out b/testdata/language-features/pattern/uncovered.out
index ab9ba45e..b461ff6e 100644
--- a/testdata/language-features/pattern/uncovered.out
+++ b/testdata/language-features/pattern/uncovered.out
@@ -2,38 +2,42 @@ main is not found
2------------ desugared source code 2------------ desugared source code
3f 3f
4 = \(a :: _) (b :: _) (c :: _) -> case'Bool 4 = \(a :: _) (b :: _) (c :: _) -> case'Bool
5 (\_ -> _) 5 (\(_ :: _) -> _)
6 (case'Bool 6 (case'Bool
7 (\_ -> _) 7 (\(_ :: _) -> _)
8 (case'Bool (\_ -> _) (_rhs undefined) (_rhs (fromInt 1)) c) 8 (case'Bool (\(_ :: _) -> _) (_rhs undefined) (_rhs (fromInt 1)) c)
9 (_rhs (fromInt 2)) 9 (_rhs (fromInt 2))
10 a) 10 a)
11 (case'Bool 11 (case'Bool
12 (\_ -> _) 12 (\(_ :: _) -> _)
13 (_rhs (fromInt 0)) 13 (_rhs (fromInt 0))
14 (case'Bool (\_ -> _) (_rhs (fromInt 1)) (_rhs undefined) a) 14 (case'Bool (\(_ :: _) -> _) (_rhs (fromInt 1)) (_rhs undefined) a)
15 c) 15 c)
16 b 16 b
17 17
18g 18g
19 = \(a :: _) -> case'List 19 = \(a :: _) -> case'List
20 (\_ -> _) 20 (\(_ :: _) -> _)
21 (_rhs undefined) 21 (_rhs undefined)
22 (\(b :: _) (c :: _) -> case'Bool 22 (\(b :: _) (c :: _) -> case'Bool
23 (\_ -> _) 23 (\(_ :: _) -> _)
24 (_rhs undefined) 24 (_rhs undefined)
25 (case'List 25 (case'List
26 (\_ -> _) 26 (\(_ :: _) -> _)
27 (_rhs undefined) 27 (_rhs undefined)
28 (\(d :: _) (e :: _) -> case'Bool 28 (\(d :: _) (e :: _) -> case'Bool
29 (\_ -> _) 29 (\(_ :: _) -> _)
30 (case'List 30 (case'List
31 (\_ -> _) 31 (\(_ :: _) -> _)
32 (_rhs undefined) 32 (_rhs undefined)
33 (\(f :: _) (g :: _) -> case'Bool 33 (\(f :: _) (g :: _) -> case'Bool
34 (\_ -> _) 34 (\(_ :: _) -> _)
35 (_rhs undefined) 35 (_rhs undefined)
36 (case'List (\_ -> _) (_rhs False) (\_ _ -> _rhs undefined) g) 36 (case'List
37 (\(_ :: _) -> _)
38 (_rhs False)
39 (\(_ :: _) (_ :: _) -> _rhs undefined)
40 g)
37 f) 41 f)
38 e) 42 e)
39 (_rhs undefined) 43 (_rhs undefined)
@@ -44,42 +48,122 @@ g
44 48
45h 49h
46 = \(a :: _) -> case'List 50 = \(a :: _) -> case'List
47 (\_ -> _) 51 (\(_ :: _) -> _)
48 (_rhs undefined) 52 (_rhs undefined)
49 (\(b :: _) (c :: _) -> case'List 53 (\(b :: _) (c :: _) -> case'List
50 (\_ -> _) 54 (\(_ :: _) -> _)
51 (_rhs undefined) 55 (_rhs undefined)
52 (\(d :: _) (e :: _) -> case'Bool 56 (\(d :: _) (e :: _) -> case'Bool
53 (\_ -> _) 57 (\(_ :: _) -> _)
54 (_rhs undefined) 58 (_rhs undefined)
55 (case'List 59 (case'List
56 (\_ -> _) 60 (\(_ :: _) -> _)
57 (case'List 61 (case'List
58 (\_ -> _) 62 (\(_ :: _) -> _)
59 (_rhs undefined) 63 (_rhs undefined)
60 (\(f :: _) (g :: _) -> case'List 64 (\(f :: _) (g :: _) -> case'List
61 (\_ -> _) 65 (\(_ :: _) -> _)
62 (_rhs undefined) 66 (_rhs undefined)
63 (\(h :: _) (i :: _) -> case'Bool 67 (\(h :: _) (i :: _) -> case'Bool
64 (\_ -> _) 68 (\(_ :: _) -> _)
65 (case'List 69 (case'List
66 (\_ -> _) 70 (\(_ :: _) -> _)
67 (case'List (\_ -> _) (_rhs True) (\_ _ -> _rhs undefined) g) 71 (case'List
68 (\_ _ -> _rhs undefined) 72 (\(_ :: _) -> _)
73 (_rhs True)
74 (\(_ :: _) (_ :: _) -> _rhs undefined)
75 g)
76 (\(_ :: _) (_ :: _) -> _rhs undefined)
69 i) 77 i)
70 (_rhs undefined) 78 (_rhs undefined)
71 h) 79 h)
72 f) 80 f)
73 c) 81 c)
74 (\_ _ -> _rhs undefined) 82 (\(_ :: _) (_ :: _) -> _rhs undefined)
75 e) 83 e)
76 d) 84 d)
77 b) 85 b)
78 a 86 a
79------------ trace 87------------ core code
80f :: forall a . Num a => Bool -> Bool -> Bool -> a 88f :: forall a . Num a => Bool -> Bool -> Bool -> a
89f
90 = \a b c d e -> case'Bool
91 (\_ -> a)
92 (case'Bool
93 (\_ -> a)
94 (case'Bool (\_ -> a) (_rhs (undefined a)) (_rhs (fromInt a b 1)) e)
95 (_rhs (fromInt a b 2))
96 c)
97 (case'Bool
98 (\_ -> a)
99 (_rhs (fromInt a b 0))
100 (case'Bool (\_ -> a) (_rhs (fromInt a b 1)) (_rhs (undefined a)) c)
101 e)
102 d
103
81g :: [Bool] -> Bool 104g :: [Bool] -> Bool
105g
106 = \a -> case'List
107 (\_ -> 'Bool)
108 (_rhs (undefined 'Bool))
109 (\b c -> case'Bool
110 (\_ -> 'Bool)
111 (_rhs (undefined 'Bool))
112 (case'List
113 (\_ -> 'Bool)
114 (_rhs (undefined 'Bool))
115 (\d e -> case'Bool
116 (\_ -> 'Bool)
117 (case'List
118 (\_ -> 'Bool)
119 (_rhs (undefined 'Bool))
120 (\f g -> case'Bool
121 (\_ -> 'Bool)
122 (_rhs (undefined 'Bool))
123 (case'List (\_ -> 'Bool) (_rhs False) (\_ _ -> _rhs (undefined 'Bool)) g)
124 f)
125 e)
126 (_rhs (undefined 'Bool))
127 d)
128 c)
129 b)
130 a
131
82h :: [[Bool]] -> Bool 132h :: [[Bool]] -> Bool
133h
134 = \a -> case'List
135 (\_ -> 'Bool)
136 (_rhs (undefined 'Bool))
137 (\b c -> case'List
138 (\_ -> 'Bool)
139 (_rhs (undefined 'Bool))
140 (\d e -> case'Bool
141 (\_ -> 'Bool)
142 (_rhs (undefined 'Bool))
143 (case'List
144 (\_ -> 'Bool)
145 (case'List
146 (\_ -> 'Bool)
147 (_rhs (undefined 'Bool))
148 (\f g -> case'List
149 (\_ -> 'Bool)
150 (_rhs (undefined 'Bool))
151 (\h i -> case'Bool
152 (\_ -> 'Bool)
153 (case'List
154 (\_ -> 'Bool)
155 (case'List (\_ -> 'Bool) (_rhs True) (\_ _ -> _rhs (undefined 'Bool)) g)
156 (\_ _ -> _rhs (undefined 'Bool))
157 i)
158 (_rhs (undefined 'Bool))
159 h)
160 f)
161 c)
162 (\_ _ -> _rhs (undefined 'Bool))
163 e)
164 d)
165 b)
166 a
83------------ tooltips 167------------ tooltips
84testdata/language-features/pattern/uncovered.lc 2:1-2:2 168testdata/language-features/pattern/uncovered.lc 2:1-2:2
85 forall a . Num a => Bool -> Bool -> Bool -> a 169 forall a . Num a => Bool -> Bool -> Bool -> a
diff --git a/testdata/language-features/pattern/unreachable.out b/testdata/language-features/pattern/unreachable.out
index f7961855..e8991ac1 100644
--- a/testdata/language-features/pattern/unreachable.out
+++ b/testdata/language-features/pattern/unreachable.out
@@ -1,8 +1,9 @@
1main is not found 1main is not found
2------------ desugared source code 2------------ desugared source code
3f = \_ -> _rhs "hello" 3f = \(_ :: _) -> _rhs "hello"
4------------ trace 4------------ core code
5f :: forall a . a -> String 5f :: forall a . a -> String
6f = \_ _ -> _rhs "hello"
6------------ tooltips 7------------ tooltips
7testdata/language-features/pattern/unreachable.lc 4:1-4:2 8testdata/language-features/pattern/unreachable.lc 4:1-4:2
8 forall a . a -> String 9 forall a . a -> String
diff --git a/testdata/language-features/pragma/pragma01.out b/testdata/language-features/pragma/pragma01.out
index 521dcdfe..790653d7 100644
--- a/testdata/language-features/pragma/pragma01.out
+++ b/testdata/language-features/pragma/pragma01.out
@@ -1,2 +1,3 @@
1main is not found 1main is not found
2------------ desugared source code \ No newline at end of file 2------------ desugared source code
3------------ core code \ No newline at end of file
diff --git a/testdata/language-features/pragma/pragma02.out b/testdata/language-features/pragma/pragma02.out
index 521dcdfe..790653d7 100644
--- a/testdata/language-features/pragma/pragma02.out
+++ b/testdata/language-features/pragma/pragma02.out
@@ -1,2 +1,3 @@
1main is not found 1main is not found
2------------ desugared source code \ No newline at end of file 2------------ desugared source code
3------------ core code \ No newline at end of file
diff --git a/testdata/language-features/pragma/pragma03.out b/testdata/language-features/pragma/pragma03.out
index 521dcdfe..790653d7 100644
--- a/testdata/language-features/pragma/pragma03.out
+++ b/testdata/language-features/pragma/pragma03.out
@@ -1,2 +1,3 @@
1main is not found 1main is not found
2------------ desugared source code \ No newline at end of file 2------------ desugared source code
3------------ core code \ No newline at end of file
diff --git a/testdata/language-features/pragma/pragma04.out b/testdata/language-features/pragma/pragma04.out
index 521dcdfe..790653d7 100644
--- a/testdata/language-features/pragma/pragma04.out
+++ b/testdata/language-features/pragma/pragma04.out
@@ -1,2 +1,3 @@
1main is not found 1main is not found
2------------ desugared source code \ No newline at end of file 2------------ desugared source code
3------------ core code \ No newline at end of file
diff --git a/testdata/language-features/recursion/simplerec01.out b/testdata/language-features/recursion/simplerec01.out
index 656adc64..f6732e0f 100644
--- a/testdata/language-features/recursion/simplerec01.out
+++ b/testdata/language-features/recursion/simplerec01.out
@@ -2,12 +2,20 @@ main is not found
2------------ desugared source code 2------------ desugared source code
3fun 3fun
4 = \(a :: _) -> case'Bool 4 = \(a :: _) -> case'Bool
5 (\_ -> _) 5 (\(_ :: _) -> _)
6 (_rhs (fun (fromInt 0))) 6 (_rhs (fun (fromInt 0)))
7 (_rhs 'a') 7 (_rhs 'a')
8 (fromInt 0 == a) 8 (fromInt 0 == a)
9------------ trace 9------------ core code
10fun :: forall a . (Num a, Eq a, Num a) => a -> Char 10fun :: forall a . (Num a, Eq a, Num a) => a -> Char
11fun
12 = \a b c d -> primFix
13 (a -> 'Char)
14 \e f -> case'Bool
15 (\_ -> 'Char)
16 (_rhs (e (fromInt a b 0)))
17 (_rhs 'a')
18 ((a == c) (fromInt a d 0) f)
11------------ tooltips 19------------ tooltips
12testdata/language-features/recursion/simplerec01.lc 1:1-1:4 20testdata/language-features/recursion/simplerec01.lc 1:1-1:4
13 forall a . (Num a, Eq a, Num a) => a -> Char 21 forall a . (Num a, Eq a, Num a) => a -> Char
diff --git a/testdata/language-features/recursion/simplerec02.out b/testdata/language-features/recursion/simplerec02.out
index 3155a2a2..39e52ba0 100644
--- a/testdata/language-features/recursion/simplerec02.out
+++ b/testdata/language-features/recursion/simplerec02.out
@@ -6,13 +6,14 @@ value
6 a 6 a
7 = primFix 7 = primFix
8 \(b :: _) (c :: _) -> case'Bool 8 \(b :: _) (c :: _) -> case'Bool
9 (\_ -> _) 9 (\(_ :: _) -> _)
10 (_rhs (b (fromInt 0))) 10 (_rhs (b (fromInt 0)))
11 (_rhs 'a') 11 (_rhs 'a')
12 (fromInt 0 == c) 12 (fromInt 0 == c)
13 in () 13 in ()
14------------ trace 14------------ core code
15value :: () 15value :: ()
16value = _rhs ()
16------------ tooltips 17------------ tooltips
17testdata/language-features/recursion/simplerec02.lc 1:1-1:6 18testdata/language-features/recursion/simplerec02.lc 1:1-1:6
18 () 19 ()
diff --git a/testdata/language-features/recursion/simplerec03.out b/testdata/language-features/recursion/simplerec03.out
index 0b36d193..32df69c1 100644
--- a/testdata/language-features/recursion/simplerec03.out
+++ b/testdata/language-features/recursion/simplerec03.out
@@ -6,13 +6,14 @@ value
6 a 6 a
7 = primFix 7 = primFix
8 \(b :: _) (c :: _) -> case'Bool 8 \(b :: _) (c :: _) -> case'Bool
9 (\_ -> _) 9 (\(_ :: _) -> _)
10 (_rhs (b (fromInt 0))) 10 (_rhs (b (fromInt 0)))
11 (_rhs 'a') 11 (_rhs 'a')
12 (fromInt 0 == c) 12 (fromInt 0 == c)
13 in () 13 in ()
14------------ trace 14------------ core code
15value :: () 15value :: ()
16value = _rhs ()
16------------ tooltips 17------------ tooltips
17testdata/language-features/recursion/simplerec03.lc 1:1-1:6 18testdata/language-features/recursion/simplerec03.lc 1:1-1:6
18 () 19 ()
diff --git a/testdata/language-features/section/section01.out b/testdata/language-features/section/section01.out
index f8f8b791..d99e803e 100644
--- a/testdata/language-features/section/section01.out
+++ b/testdata/language-features/section/section01.out
@@ -1,14 +1,19 @@
1main is not found 1main is not found
2------------ desugared source code 2------------ desugared source code
3(!@!) = \_ _ -> _rhs () 3(!@!) = \(_ :: _) (_ :: _) -> _rhs ()
4 4
5value1 = \(a :: _) -> _rhs \(b :: _) -> a !@! b 5value1 = \(a :: _) -> _rhs \(b :: _) -> a !@! b
6 6
7value2 = \(a :: _) -> _rhs \(b :: _) -> b !@! a 7value2 = \(a :: _) -> _rhs \(b :: _) -> b !@! a
8------------ trace 8------------ core code
9(!@!) :: forall a b . a -> b -> () 9!@! :: forall a b . a -> b -> ()
10!@! = \_ _ _ _ -> _rhs ()
11
10value1 :: forall a b . a -> b -> () 12value1 :: forall a b . a -> b -> ()
13value1 = \a b c -> _rhs \d -> ()
14
11value2 :: forall a b . a -> b -> () 15value2 :: forall a b . a -> b -> ()
16value2 = \a b c -> _rhs \d -> ()
12------------ tooltips 17------------ tooltips
13testdata/language-features/section/section01.lc 1:3-1:6 18testdata/language-features/section/section01.lc 1:3-1:6
14 forall a b . a -> b -> () 19 forall a b . a -> b -> ()
diff --git a/testdata/let.lc b/testdata/let.lc
index 2ba0749e..c2896c80 100644
--- a/testdata/let.lc
+++ b/testdata/let.lc
@@ -1,4 +1,7 @@
1{-# LANGUAGE NoImplicitPrelude #-}
2import Internals
3
4id x = x
1 5
2f x = let y = id x in y 6f x = let y = id x in y
3--f x = (\y -> y) (id x)
4 7
diff --git a/testdata/let.out b/testdata/let.out
index b9caae94..538f8977 100644
--- a/testdata/let.out
+++ b/testdata/let.out
@@ -1,16 +1,26 @@
1main is not found 1main is not found
2------------ desugared source code 2------------ desugared source code
3id = \(a :: _) -> _rhs a
4
3f = \(a :: _) -> _rhs let b = _rhs (id a) in b 5f = \(a :: _) -> _rhs let b = _rhs (id a) in b
4------------ trace 6------------ core code
5f :: forall a . a -> a 7f :: forall a . a -> a
8f = \a b -> _rhs b
9
10id :: forall a . a -> a
11id = \_ a -> _rhs a
6------------ tooltips 12------------ tooltips
7testdata/let.lc 2:1-2:2 13testdata/let.lc 4:1-4:3
8 forall a . a -> a 14 forall a . a -> a
9testdata/let.lc 2:15-2:17 15testdata/let.lc 4:8-4:9
16 _b
17testdata/let.lc 6:1-6:2
18 forall a . a -> a
19testdata/let.lc 6:15-6:17
10 forall a . a -> a 20 forall a . a -> a
11testdata/let.lc 2:15-2:19 21testdata/let.lc 6:15-6:19
12 _b 22 _b
13testdata/let.lc 2:18-2:19 23testdata/let.lc 6:18-6:19
14 _c 24 _c
15testdata/let.lc 2:23-2:24 25testdata/let.lc 6:23-6:24
16 _c \ No newline at end of file 26 _c \ No newline at end of file
diff --git a/testdata/letIndent.out b/testdata/letIndent.out
index 8818ab73..3d5160fb 100644
--- a/testdata/letIndent.out
+++ b/testdata/letIndent.out
@@ -1,8 +1,9 @@
1main is not found 1main is not found
2------------ desugared source code 2------------ desugared source code
3fun = \(a :: _) -> _rhs let b = _rhs (fromInt 1); c = _rhs (fromInt 2) in a 3fun = \(a :: _) -> _rhs let b = _rhs (fromInt 1); c = _rhs (fromInt 2) in a
4------------ trace 4------------ core code
5fun :: forall a . a -> a 5fun :: forall a . a -> a
6fun = \_ a -> _rhs a
6------------ tooltips 7------------ tooltips
7testdata/letIndent.lc 2:1-2:4 8testdata/letIndent.lc 2:1-2:4
8 forall a . a -> a 9 forall a . a -> a
diff --git a/testdata/localfun2.lc b/testdata/localfun2.lc
new file mode 100644
index 00000000..70055b0b
--- /dev/null
+++ b/testdata/localfun2.lc
@@ -0,0 +1,11 @@
1{-# LANGUAGE NoImplicitPrelude #-}
2import Internals
3
4split [] = ([], [])
5split (x: xs) = (x: bs, as) where (as, bs) = split xs
6
7{-
8main = case split [True, True] of
9 ([True], [True]) -> True
10-}
11
diff --git a/testdata/localfun2.out b/testdata/localfun2.out
new file mode 100644
index 00000000..e4d0cd45
--- /dev/null
+++ b/testdata/localfun2.out
@@ -0,0 +1,89 @@
1main is not found
2------------ desugared source code
3split
4 = \(a :: _) -> case'List
5 (\(_ :: _) -> _)
6 (_rhs ([], []))
7 (\(b :: _) (c :: _) -> _rhs
8 let
9 d = _rhs (split c);
10 e
11 = _rhs
12 ((\(g :: _) -> hlistConsCase
13 _
14 (\(_ :: _) (h :: _) -> hlistConsCase
15 _
16 (\(i :: _) (j :: _) -> hlistNilCase _ i j)
17 h)
18 g)
19 d);
20 f
21 = _rhs
22 ((\(k :: _) -> hlistConsCase
23 _
24 (\(l :: _) (m :: _) -> hlistConsCase
25 _
26 (\(_ :: _) (n :: _) -> hlistNilCase _ l n)
27 m)
28 k)
29 d)
30 in (b : e, f))
31 a
32------------ core code
33split :: forall a . [a] -> ([a], [a])
34split
35 = \a -> primFix
36 ([a] -> ' ([a], [a]))
37 \b c -> case'List
38 (\_ -> ' ([a], [a]))
39 (_rhs ([], []))
40 (\d e -> _rhs
41 (d
42 : hlistConsCase
43 [a]
44 [[a]]
45 [a]
46 (\_ f -> hlistConsCase [a] [] [a] (\g h -> hlistNilCase [a] g h) f)
47 (b e)
48 , hlistConsCase
49 [a]
50 [[a]]
51 [a]
52 (\i j -> hlistConsCase [a] [] [a] (\_ k -> hlistNilCase [a] i k) j)
53 (b e)))
54 c
55------------ tooltips
56testdata/localfun2.lc 4:1-4:6
57 forall a . [a] -> ([a], [a])
58testdata/localfun2.lc 4:12-4:20
59 ([_b], [_a])
60testdata/localfun2.lc 4:12-5:55
61 [_b] -> ([_b], [_a])
62testdata/localfun2.lc 4:13-4:15
63 forall a . [a]
64testdata/localfun2.lc 4:17-4:19
65 forall a . [a] | (([_a]))
66testdata/localfun2.lc 5:17-5:28
67 ([_i], _c)
68testdata/localfun2.lc 5:18-5:19
69 _m
70testdata/localfun2.lc 5:18-5:20
71 [_l] -> [_l]
72testdata/localfun2.lc 5:18-5:23
73 [_j]
74testdata/localfun2.lc 5:19-5:20
75 forall a . a -> [a] -> [a]
76testdata/localfun2.lc 5:21-5:23
77 _d
78testdata/localfun2.lc 5:25-5:27
79 _f | ((_c))
80testdata/localfun2.lc 5:37-5:39
81 _k | _h | _d
82testdata/localfun2.lc 5:37-5:43
83 _d | (_e, _d)
84testdata/localfun2.lc 5:41-5:43
85 _f | _c | _c
86testdata/localfun2.lc 5:47-5:52
87 _i
88testdata/localfun2.lc 5:53-5:55
89 [_h] \ No newline at end of file
diff --git a/testdata/performance/Material.out b/testdata/performance/Material.out
index 1a615e54..a88e95ca 100644
--- a/testdata/performance/Material.out
+++ b/testdata/performance/Material.out
@@ -9,14 +9,29 @@ data Entity :: Type where
9 -> Vec (fromInt 4) Float 9 -> Vec (fromInt 4) Float
10 -> Vec (fromInt 3) Float -> Vec (fromInt 4) Float -> Entity 10 -> Vec (fromInt 3) Float -> Vec (fromInt 4) Float -> Entity
11 11
12eAmbientLight = \(a :: _) -> case'Entity (\_ -> _) (\(b :: _) _ _ _ -> _rhs b) a 12eAmbientLight
13 = \(a :: _) -> case'Entity
14 (\(_ :: _) -> _)
15 (\(b :: _) (_ :: _) (_ :: _) (_ :: _) -> _rhs b)
16 a
13 17
14eDirectedLight 18eDirectedLight
15 = \(a :: _) -> case'Entity (\_ -> _) (\_ (b :: _) _ _ -> _rhs b) a 19 = \(a :: _) -> case'Entity
20 (\(_ :: _) -> _)
21 (\(_ :: _) (b :: _) (_ :: _) (_ :: _) -> _rhs b)
22 a
16 23
17eLightDir = \(a :: _) -> case'Entity (\_ -> _) (\_ _ (b :: _) _ -> _rhs b) a 24eLightDir
25 = \(a :: _) -> case'Entity
26 (\(_ :: _) -> _)
27 (\(_ :: _) (_ :: _) (b :: _) (_ :: _) -> _rhs b)
28 a
18 29
19eShaderRGBA = \(a :: _) -> case'Entity (\_ -> _) (\_ _ _ (b :: _) -> _rhs b) a 30eShaderRGBA
31 = \(a :: _) -> case'Entity
32 (\(_ :: _) -> _)
33 (\(_ :: _) (_ :: _) (_ :: _) (b :: _) -> _rhs b)
34 a
20 35
21data WaveType :: Type where 36data WaveType :: Type where
22 WT_Sin :: WaveType 37 WT_Sin :: WaveType
@@ -132,68 +147,101 @@ data StageAttrs :: Type where
132 147
133saBlend 148saBlend
134 = \(a :: _) -> case'StageAttrs 149 = \(a :: _) -> case'StageAttrs
135 (\_ -> _) 150 (\(_ :: _) -> _)
136 (\(b :: _) _ _ _ _ _ _ _ _ _ _ -> _rhs b) 151 (\(b :: _)
152 (_ :: _)
153 (_ :: _) (_ :: _) (_ :: _) (_ :: _) (_ :: _) (_ :: _) (_ :: _) (_ :: _) (_ :: _)
154 -> _rhs b)
137 a 155 a
138 156
139saRGBGen 157saRGBGen
140 = \(a :: _) -> case'StageAttrs 158 = \(a :: _) -> case'StageAttrs
141 (\_ -> _) 159 (\(_ :: _) -> _)
142 (\_ (b :: _) _ _ _ _ _ _ _ _ _ -> _rhs b) 160 (\(_ :: _)
161 (b :: _)
162 (_ :: _) (_ :: _) (_ :: _) (_ :: _) (_ :: _) (_ :: _) (_ :: _) (_ :: _) (_ :: _)
163 -> _rhs b)
143 a 164 a
144 165
145saAlphaGen 166saAlphaGen
146 = \(a :: _) -> case'StageAttrs 167 = \(a :: _) -> case'StageAttrs
147 (\_ -> _) 168 (\(_ :: _) -> _)
148 (\_ _ (b :: _) _ _ _ _ _ _ _ _ -> _rhs b) 169 (\(_ :: _)
170 (_ :: _)
171 (b :: _) (_ :: _) (_ :: _) (_ :: _) (_ :: _) (_ :: _) (_ :: _) (_ :: _) (_ :: _)
172 -> _rhs b)
149 a 173 a
150 174
151saTCGen 175saTCGen
152 = \(a :: _) -> case'StageAttrs 176 = \(a :: _) -> case'StageAttrs
153 (\_ -> _) 177 (\(_ :: _) -> _)
154 (\_ _ _ (b :: _) _ _ _ _ _ _ _ -> _rhs b) 178 (\(_ :: _)
179 (_ :: _)
180 (_ :: _) (b :: _) (_ :: _) (_ :: _) (_ :: _) (_ :: _) (_ :: _) (_ :: _) (_ :: _)
181 -> _rhs b)
155 a 182 a
156 183
157saTCMod 184saTCMod
158 = \(a :: _) -> case'StageAttrs 185 = \(a :: _) -> case'StageAttrs
159 (\_ -> _) 186 (\(_ :: _) -> _)
160 (\_ _ _ _ (b :: _) _ _ _ _ _ _ -> _rhs b) 187 (\(_ :: _)
188 (_ :: _)
189 (_ :: _) (_ :: _) (b :: _) (_ :: _) (_ :: _) (_ :: _) (_ :: _) (_ :: _) (_ :: _)
190 -> _rhs b)
161 a 191 a
162 192
163saTexture 193saTexture
164 = \(a :: _) -> case'StageAttrs 194 = \(a :: _) -> case'StageAttrs
165 (\_ -> _) 195 (\(_ :: _) -> _)
166 (\_ _ _ _ _ (b :: _) _ _ _ _ _ -> _rhs b) 196 (\(_ :: _)
197 (_ :: _)
198 (_ :: _) (_ :: _) (_ :: _) (b :: _) (_ :: _) (_ :: _) (_ :: _) (_ :: _) (_ :: _)
199 -> _rhs b)
167 a 200 a
168 201
169saDepthWrite 202saDepthWrite
170 = \(a :: _) -> case'StageAttrs 203 = \(a :: _) -> case'StageAttrs
171 (\_ -> _) 204 (\(_ :: _) -> _)
172 (\_ _ _ _ _ _ (b :: _) _ _ _ _ -> _rhs b) 205 (\(_ :: _)
206 (_ :: _)
207 (_ :: _) (_ :: _) (_ :: _) (_ :: _) (b :: _) (_ :: _) (_ :: _) (_ :: _) (_ :: _)
208 -> _rhs b)
173 a 209 a
174 210
175saDepthFunc 211saDepthFunc
176 = \(a :: _) -> case'StageAttrs 212 = \(a :: _) -> case'StageAttrs
177 (\_ -> _) 213 (\(_ :: _) -> _)
178 (\_ _ _ _ _ _ _ (b :: _) _ _ _ -> _rhs b) 214 (\(_ :: _)
215 (_ :: _)
216 (_ :: _) (_ :: _) (_ :: _) (_ :: _) (_ :: _) (b :: _) (_ :: _) (_ :: _) (_ :: _)
217 -> _rhs b)
179 a 218 a
180 219
181saAlphaFunc 220saAlphaFunc
182 = \(a :: _) -> case'StageAttrs 221 = \(a :: _) -> case'StageAttrs
183 (\_ -> _) 222 (\(_ :: _) -> _)
184 (\_ _ _ _ _ _ _ _ (b :: _) _ _ -> _rhs b) 223 (\(_ :: _)
224 (_ :: _)
225 (_ :: _) (_ :: _) (_ :: _) (_ :: _) (_ :: _) (_ :: _) (b :: _) (_ :: _) (_ :: _)
226 -> _rhs b)
185 a 227 a
186 228
187saDepthMaskExplicit 229saDepthMaskExplicit
188 = \(a :: _) -> case'StageAttrs 230 = \(a :: _) -> case'StageAttrs
189 (\_ -> _) 231 (\(_ :: _) -> _)
190 (\_ _ _ _ _ _ _ _ _ (b :: _) _ -> _rhs b) 232 (\(_ :: _)
233 (_ :: _)
234 (_ :: _) (_ :: _) (_ :: _) (_ :: _) (_ :: _) (_ :: _) (_ :: _) (b :: _) (_ :: _)
235 -> _rhs b)
191 a 236 a
192 237
193saTextureUniform 238saTextureUniform
194 = \(a :: _) -> case'StageAttrs 239 = \(a :: _) -> case'StageAttrs
195 (\_ -> _) 240 (\(_ :: _) -> _)
196 (\_ _ _ _ _ _ _ _ _ _ (b :: _) -> _rhs b) 241 (\(_ :: _)
242 (_ :: _)
243 (_ :: _) (_ :: _) (_ :: _) (_ :: _) (_ :: _) (_ :: _) (_ :: _) (_ :: _) (b :: _)
244 -> _rhs b)
197 a 245 a
198 246
199defaultStageAttrs :: StageAttrs 247defaultStageAttrs :: StageAttrs
@@ -224,74 +272,122 @@ data CommonAttrs :: Type where
224 272
225caSkyParms 273caSkyParms
226 = \(a :: _) -> case'CommonAttrs 274 = \(a :: _) -> case'CommonAttrs
227 (\_ -> _) 275 (\(_ :: _) -> _)
228 (\(b :: _) _ _ _ _ _ _ _ _ _ _ _ -> _rhs b) 276 (\(b :: _)
277 (_ :: _)
278 (_ :: _)
279 (_ :: _) (_ :: _) (_ :: _) (_ :: _) (_ :: _) (_ :: _) (_ :: _) (_ :: _) (_ :: _)
280 -> _rhs b)
229 a 281 a
230 282
231caFogParms 283caFogParms
232 = \(a :: _) -> case'CommonAttrs 284 = \(a :: _) -> case'CommonAttrs
233 (\_ -> _) 285 (\(_ :: _) -> _)
234 (\_ (b :: _) _ _ _ _ _ _ _ _ _ _ -> _rhs b) 286 (\(_ :: _)
287 (b :: _)
288 (_ :: _)
289 (_ :: _) (_ :: _) (_ :: _) (_ :: _) (_ :: _) (_ :: _) (_ :: _) (_ :: _) (_ :: _)
290 -> _rhs b)
235 a 291 a
236 292
237caPortal 293caPortal
238 = \(a :: _) -> case'CommonAttrs 294 = \(a :: _) -> case'CommonAttrs
239 (\_ -> _) 295 (\(_ :: _) -> _)
240 (\_ _ (b :: _) _ _ _ _ _ _ _ _ _ -> _rhs b) 296 (\(_ :: _)
297 (_ :: _)
298 (b :: _)
299 (_ :: _) (_ :: _) (_ :: _) (_ :: _) (_ :: _) (_ :: _) (_ :: _) (_ :: _) (_ :: _)
300 -> _rhs b)
241 a 301 a
242 302
243caSort 303caSort
244 = \(a :: _) -> case'CommonAttrs 304 = \(a :: _) -> case'CommonAttrs
245 (\_ -> _) 305 (\(_ :: _) -> _)
246 (\_ _ _ (b :: _) _ _ _ _ _ _ _ _ -> _rhs b) 306 (\(_ :: _)
307 (_ :: _)
308 (_ :: _)
309 (b :: _) (_ :: _) (_ :: _) (_ :: _) (_ :: _) (_ :: _) (_ :: _) (_ :: _) (_ :: _)
310 -> _rhs b)
247 a 311 a
248 312
249caEntityMergable 313caEntityMergable
250 = \(a :: _) -> case'CommonAttrs 314 = \(a :: _) -> case'CommonAttrs
251 (\_ -> _) 315 (\(_ :: _) -> _)
252 (\_ _ _ _ (b :: _) _ _ _ _ _ _ _ -> _rhs b) 316 (\(_ :: _)
317 (_ :: _)
318 (_ :: _)
319 (_ :: _) (b :: _) (_ :: _) (_ :: _) (_ :: _) (_ :: _) (_ :: _) (_ :: _) (_ :: _)
320 -> _rhs b)
253 a 321 a
254 322
255caFogOnly 323caFogOnly
256 = \(a :: _) -> case'CommonAttrs 324 = \(a :: _) -> case'CommonAttrs
257 (\_ -> _) 325 (\(_ :: _) -> _)
258 (\_ _ _ _ _ (b :: _) _ _ _ _ _ _ -> _rhs b) 326 (\(_ :: _)
327 (_ :: _)
328 (_ :: _)
329 (_ :: _) (_ :: _) (b :: _) (_ :: _) (_ :: _) (_ :: _) (_ :: _) (_ :: _) (_ :: _)
330 -> _rhs b)
259 a 331 a
260 332
261caCull 333caCull
262 = \(a :: _) -> case'CommonAttrs 334 = \(a :: _) -> case'CommonAttrs
263 (\_ -> _) 335 (\(_ :: _) -> _)
264 (\_ _ _ _ _ _ (b :: _) _ _ _ _ _ -> _rhs b) 336 (\(_ :: _)
337 (_ :: _)
338 (_ :: _)
339 (_ :: _) (_ :: _) (_ :: _) (b :: _) (_ :: _) (_ :: _) (_ :: _) (_ :: _) (_ :: _)
340 -> _rhs b)
265 a 341 a
266 342
267caDeformVertexes 343caDeformVertexes
268 = \(a :: _) -> case'CommonAttrs 344 = \(a :: _) -> case'CommonAttrs
269 (\_ -> _) 345 (\(_ :: _) -> _)
270 (\_ _ _ _ _ _ _ (b :: _) _ _ _ _ -> _rhs b) 346 (\(_ :: _)
347 (_ :: _)
348 (_ :: _)
349 (_ :: _) (_ :: _) (_ :: _) (_ :: _) (b :: _) (_ :: _) (_ :: _) (_ :: _) (_ :: _)
350 -> _rhs b)
271 a 351 a
272 352
273caNoMipMaps 353caNoMipMaps
274 = \(a :: _) -> case'CommonAttrs 354 = \(a :: _) -> case'CommonAttrs
275 (\_ -> _) 355 (\(_ :: _) -> _)
276 (\_ _ _ _ _ _ _ _ (b :: _) _ _ _ -> _rhs b) 356 (\(_ :: _)
357 (_ :: _)
358 (_ :: _)
359 (_ :: _) (_ :: _) (_ :: _) (_ :: _) (_ :: _) (b :: _) (_ :: _) (_ :: _) (_ :: _)
360 -> _rhs b)
277 a 361 a
278 362
279caPolygonOffset 363caPolygonOffset
280 = \(a :: _) -> case'CommonAttrs 364 = \(a :: _) -> case'CommonAttrs
281 (\_ -> _) 365 (\(_ :: _) -> _)
282 (\_ _ _ _ _ _ _ _ _ (b :: _) _ _ -> _rhs b) 366 (\(_ :: _)
367 (_ :: _)
368 (_ :: _)
369 (_ :: _) (_ :: _) (_ :: _) (_ :: _) (_ :: _) (_ :: _) (b :: _) (_ :: _) (_ :: _)
370 -> _rhs b)
283 a 371 a
284 372
285caStages 373caStages
286 = \(a :: _) -> case'CommonAttrs 374 = \(a :: _) -> case'CommonAttrs
287 (\_ -> _) 375 (\(_ :: _) -> _)
288 (\_ _ _ _ _ _ _ _ _ _ (b :: _) _ -> _rhs b) 376 (\(_ :: _)
377 (_ :: _)
378 (_ :: _)
379 (_ :: _) (_ :: _) (_ :: _) (_ :: _) (_ :: _) (_ :: _) (_ :: _) (b :: _) (_ :: _)
380 -> _rhs b)
289 a 381 a
290 382
291caIsSky 383caIsSky
292 = \(a :: _) -> case'CommonAttrs 384 = \(a :: _) -> case'CommonAttrs
293 (\_ -> _) 385 (\(_ :: _) -> _)
294 (\_ _ _ _ _ _ _ _ _ _ _ (b :: _) -> _rhs b) 386 (\(_ :: _)
387 (_ :: _)
388 (_ :: _)
389 (_ :: _) (_ :: _) (_ :: _) (_ :: _) (_ :: _) (_ :: _) (_ :: _) (_ :: _) (b :: _)
390 -> _rhs b)
295 a 391 a
296 392
297defaultCommonAttrs :: CommonAttrs 393defaultCommonAttrs :: CommonAttrs
@@ -310,61 +406,430 @@ defaultCommonAttrs
310 False 406 False
311 [] 407 []
312 False) 408 False)
313------------ trace 409------------ core code
314identityLight :: Float 410'AlphaFunction :: Type
411'AlphaFunction
412 = <<type constructor with 0 indices; constructors: A_Gt0, A_Lt128, A_Ge128>>
413
414'AlphaGen :: Type
415'AlphaGen
416 = <<type constructor with 0 indices; constructors: A_Wave, A_Const, A_Portal, A_Identity, A_Entity, A_OneMinusEntity, A_Vertex, A_LightingSpecular, A_OneMinusVertex>>
417
418'Blending' :: Type
419'Blending'
420 = <<type constructor with 0 indices; constructors: B_DstAlpha, B_DstColor, B_One, B_OneMinusDstAlpha, B_OneMinusDstColor, B_OneMinusSrcAlpha, B_OneMinusSrcColor, B_SrcAlpha, B_SrcAlphaSaturate, B_SrcColor, B_Zero>>
421
422'CommonAttrs :: Type
423'CommonAttrs = <<type constructor with 0 indices; constructors: CommonAttrs>>
424
425'CullType :: Type
426'CullType
427 = <<type constructor with 0 indices; constructors: CT_FrontSided, CT_BackSided, CT_TwoSided>>
428
429'Deform :: Type
430'Deform
431 = <<type constructor with 0 indices; constructors: D_AutoSprite, D_AutoSprite2, D_Bulge, D_Move, D_Normal, D_ProjectionShadow, D_Text0, D_Text1, D_Text2, D_Text3, D_Text4, D_Text5, D_Text6, D_Text7, D_Wave>>
432
433'DepthFunction :: Type
434'DepthFunction
435 = <<type constructor with 0 indices; constructors: D_Equal, D_Lequal>>
436
315'Entity :: Type 437'Entity :: Type
316Entity :: Vec 4 Float -> Vec 4 Float -> Vec 3 Float -> Vec 4 Float -> Entity 438'Entity = <<type constructor with 0 indices; constructors: Entity>>
317case'Entity 439
318 :: forall (a :: Entity -> Type) 440'RGBGen :: Type
319 -> (forall (b :: Vec 4 Float) 441'RGBGen
320 (c :: Vec 4 Float) (d :: Vec 3 Float) (e :: Vec 4 Float) 442 = <<type constructor with 0 indices; constructors: RGB_Wave, RGB_Const, RGB_Identity, RGB_IdentityLighting, RGB_Entity, RGB_OneMinusEntity, RGB_ExactVertex, RGB_Vertex, RGB_LightingDiffuse, RGB_OneMinusVertex, RGB_Undefined>>
321 -> a ('Entity b c d e)) 443
322 -> forall (f :: Entity) -> a f 444'StageAttrs :: Type
323match'Entity :: forall (a :: Type -> Type) -> a Entity -> forall b -> a b -> a b 445'StageAttrs = <<type constructor with 0 indices; constructors: StageAttrs>>
324eAmbientLight :: Entity -> VecS Float 4 446
325eDirectedLight :: Entity -> VecS Float 4 447'StageTexture :: Type
326eLightDir :: Entity -> VecS Float 3 448'StageTexture
327eShaderRGBA :: Entity -> VecS Float 4 449 = <<type constructor with 0 indices; constructors: ST_Map, ST_ClampMap, ST_AnimMap, ST_Lightmap, ST_WhiteImage>>
328'WaveType :: Type 450
329WT_Sin :: WaveType 451'TCGen :: Type
330WT_Triangle :: WaveType 452'TCGen
331WT_Square :: WaveType 453 = <<type constructor with 0 indices; constructors: TG_Base, TG_Lightmap, TG_Environment, TG_Vector, TG_Undefined>>
332WT_Sawtooth :: WaveType 454
333WT_InverseSawtooth :: WaveType 455'TCMod :: Type
334WT_Noise :: WaveType 456'TCMod
335case'WaveType 457 = <<type constructor with 0 indices; constructors: TM_EntityTranslate, TM_Rotate, TM_Scroll, TM_Scale, TM_Stretch, TM_Transform, TM_Turb>>
336 :: forall (a :: WaveType -> Type) 458
337 -> a 'WT_Sin
338 -> a 'WT_Triangle
339 -> a 'WT_Square
340 -> a 'WT_Sawtooth
341 -> a 'WT_InverseSawtooth -> a 'WT_Noise -> forall (b :: WaveType) -> a b
342match'WaveType
343 :: forall (a :: Type -> Type) -> a WaveType -> forall b -> a b -> a b
344'Wave :: Type 459'Wave :: Type
345Wave :: WaveType -> Float -> Float -> Float -> Float -> Wave 460'Wave = <<type constructor with 0 indices; constructors: Wave>>
346case'Wave 461
347 :: forall (a :: Wave -> Type) 462'WaveType :: Type
348 -> (forall (b :: WaveType) (c :: Float) (d :: Float) (e :: Float) (f :: Float) 463'WaveType
349 -> a ('Wave b c d e f)) 464 = <<type constructor with 0 indices; constructors: WT_Sin, WT_Triangle, WT_Square, WT_Sawtooth, WT_InverseSawtooth, WT_Noise>>
350 -> forall (g :: Wave) -> a g 465
351match'Wave :: forall (a :: Type -> Type) -> a Wave -> forall b -> a b -> a b 466A_Const :: Float -> AlphaGen
352'Deform :: Type 467A_Const = <<1st constructor of 'AlphaGen>>
468
469A_Entity :: AlphaGen
470A_Entity = <<4th constructor of 'AlphaGen>>
471
472A_Ge128 :: AlphaFunction
473A_Ge128 = <<2nd constructor of 'AlphaFunction>>
474
475A_Gt0 :: AlphaFunction
476A_Gt0 = <<0th constructor of 'AlphaFunction>>
477
478A_Identity :: AlphaGen
479A_Identity = <<3rd constructor of 'AlphaGen>>
480
481A_LightingSpecular :: AlphaGen
482A_LightingSpecular = <<7th constructor of 'AlphaGen>>
483
484A_Lt128 :: AlphaFunction
485A_Lt128 = <<1st constructor of 'AlphaFunction>>
486
487A_OneMinusEntity :: AlphaGen
488A_OneMinusEntity = <<5th constructor of 'AlphaGen>>
489
490A_OneMinusVertex :: AlphaGen
491A_OneMinusVertex = <<8th constructor of 'AlphaGen>>
492
493A_Portal :: AlphaGen
494A_Portal = <<2nd constructor of 'AlphaGen>>
495
496A_Vertex :: AlphaGen
497A_Vertex = <<6th constructor of 'AlphaGen>>
498
499A_Wave :: Wave -> AlphaGen
500A_Wave = <<0th constructor of 'AlphaGen>>
501
502B_DstAlpha :: Blending'
503B_DstAlpha = <<0th constructor of 'Blending'>>
504
505B_DstColor :: Blending'
506B_DstColor = <<1st constructor of 'Blending'>>
507
508B_One :: Blending'
509B_One = <<2nd constructor of 'Blending'>>
510
511B_OneMinusDstAlpha :: Blending'
512B_OneMinusDstAlpha = <<3rd constructor of 'Blending'>>
513
514B_OneMinusDstColor :: Blending'
515B_OneMinusDstColor = <<4th constructor of 'Blending'>>
516
517B_OneMinusSrcAlpha :: Blending'
518B_OneMinusSrcAlpha = <<5th constructor of 'Blending'>>
519
520B_OneMinusSrcColor :: Blending'
521B_OneMinusSrcColor = <<6th constructor of 'Blending'>>
522
523B_SrcAlpha :: Blending'
524B_SrcAlpha = <<7th constructor of 'Blending'>>
525
526B_SrcAlphaSaturate :: Blending'
527B_SrcAlphaSaturate = <<8th constructor of 'Blending'>>
528
529B_SrcColor :: Blending'
530B_SrcColor = <<9th constructor of 'Blending'>>
531
532B_Zero :: Blending'
533B_Zero = <<10th constructor of 'Blending'>>
534
535CT_BackSided :: CullType
536CT_BackSided = <<1st constructor of 'CullType>>
537
538CT_FrontSided :: CullType
539CT_FrontSided = <<0th constructor of 'CullType>>
540
541CT_TwoSided :: CullType
542CT_TwoSided = <<2nd constructor of 'CullType>>
543
544CommonAttrs
545 :: ()
546 -> ()
547 -> Bool
548 -> Float
549 -> Bool
550 -> Bool
551 -> CullType -> [Deform] -> Bool -> Bool -> [StageAttrs] -> Bool -> CommonAttrs
552CommonAttrs = <<0th constructor of 'CommonAttrs>>
553
353D_AutoSprite :: Deform 554D_AutoSprite :: Deform
555D_AutoSprite = <<0th constructor of 'Deform>>
556
354D_AutoSprite2 :: Deform 557D_AutoSprite2 :: Deform
558D_AutoSprite2 = <<1st constructor of 'Deform>>
559
355D_Bulge :: Float -> Float -> Float -> Deform 560D_Bulge :: Float -> Float -> Float -> Deform
561D_Bulge = <<2nd constructor of 'Deform>>
562
563D_Equal :: DepthFunction
564D_Equal = <<0th constructor of 'DepthFunction>>
565
566D_Lequal :: DepthFunction
567D_Lequal = <<1st constructor of 'DepthFunction>>
568
356D_Move :: Vec 3 Float -> Wave -> Deform 569D_Move :: Vec 3 Float -> Wave -> Deform
570D_Move = <<3rd constructor of 'Deform>>
571
357D_Normal :: Float -> Float -> Deform 572D_Normal :: Float -> Float -> Deform
573D_Normal = <<4th constructor of 'Deform>>
574
358D_ProjectionShadow :: Deform 575D_ProjectionShadow :: Deform
576D_ProjectionShadow = <<5th constructor of 'Deform>>
577
359D_Text0 :: Deform 578D_Text0 :: Deform
579D_Text0 = <<6th constructor of 'Deform>>
580
360D_Text1 :: Deform 581D_Text1 :: Deform
582D_Text1 = <<7th constructor of 'Deform>>
583
361D_Text2 :: Deform 584D_Text2 :: Deform
585D_Text2 = <<8th constructor of 'Deform>>
586
362D_Text3 :: Deform 587D_Text3 :: Deform
588D_Text3 = <<9th constructor of 'Deform>>
589
363D_Text4 :: Deform 590D_Text4 :: Deform
591D_Text4 = <<10th constructor of 'Deform>>
592
364D_Text5 :: Deform 593D_Text5 :: Deform
594D_Text5 = <<11th constructor of 'Deform>>
595
365D_Text6 :: Deform 596D_Text6 :: Deform
597D_Text6 = <<12th constructor of 'Deform>>
598
366D_Text7 :: Deform 599D_Text7 :: Deform
600D_Text7 = <<13th constructor of 'Deform>>
601
367D_Wave :: Float -> Wave -> Deform 602D_Wave :: Float -> Wave -> Deform
603D_Wave = <<14th constructor of 'Deform>>
604
605Entity :: Vec 4 Float -> Vec 4 Float -> Vec 3 Float -> Vec 4 Float -> Entity
606Entity = <<0th constructor of 'Entity>>
607
608RGB_Const :: Float -> Float -> Float -> RGBGen
609RGB_Const = <<1st constructor of 'RGBGen>>
610
611RGB_Entity :: RGBGen
612RGB_Entity = <<4th constructor of 'RGBGen>>
613
614RGB_ExactVertex :: RGBGen
615RGB_ExactVertex = <<6th constructor of 'RGBGen>>
616
617RGB_Identity :: RGBGen
618RGB_Identity = <<2nd constructor of 'RGBGen>>
619
620RGB_IdentityLighting :: RGBGen
621RGB_IdentityLighting = <<3rd constructor of 'RGBGen>>
622
623RGB_LightingDiffuse :: RGBGen
624RGB_LightingDiffuse = <<8th constructor of 'RGBGen>>
625
626RGB_OneMinusEntity :: RGBGen
627RGB_OneMinusEntity = <<5th constructor of 'RGBGen>>
628
629RGB_OneMinusVertex :: RGBGen
630RGB_OneMinusVertex = <<9th constructor of 'RGBGen>>
631
632RGB_Undefined :: RGBGen
633RGB_Undefined = <<10th constructor of 'RGBGen>>
634
635RGB_Vertex :: RGBGen
636RGB_Vertex = <<7th constructor of 'RGBGen>>
637
638RGB_Wave :: Wave -> RGBGen
639RGB_Wave = <<0th constructor of 'RGBGen>>
640
641ST_AnimMap :: Float -> [String] -> StageTexture
642ST_AnimMap = <<2nd constructor of 'StageTexture>>
643
644ST_ClampMap :: String -> StageTexture
645ST_ClampMap = <<1st constructor of 'StageTexture>>
646
647ST_Lightmap :: StageTexture
648ST_Lightmap = <<3rd constructor of 'StageTexture>>
649
650ST_Map :: String -> StageTexture
651ST_Map = <<0th constructor of 'StageTexture>>
652
653ST_WhiteImage :: StageTexture
654ST_WhiteImage = <<4th constructor of 'StageTexture>>
655
656StageAttrs
657 :: Maybe (Blending', Blending')
658 -> RGBGen
659 -> AlphaGen
660 -> TCGen
661 -> [TCMod]
662 -> StageTexture
663 -> Bool -> DepthFunction -> Maybe AlphaFunction -> Bool -> String -> StageAttrs
664StageAttrs = <<0th constructor of 'StageAttrs>>
665
666TG_Base :: TCGen
667TG_Base = <<0th constructor of 'TCGen>>
668
669TG_Environment :: TCGen
670TG_Environment = <<2nd constructor of 'TCGen>>
671
672TG_Lightmap :: TCGen
673TG_Lightmap = <<1st constructor of 'TCGen>>
674
675TG_Undefined :: TCGen
676TG_Undefined = <<4th constructor of 'TCGen>>
677
678TG_Vector :: Vec 3 Float -> Vec 3 Float -> TCGen
679TG_Vector = <<3rd constructor of 'TCGen>>
680
681TM_EntityTranslate :: TCMod
682TM_EntityTranslate = <<0th constructor of 'TCMod>>
683
684TM_Rotate :: Float -> TCMod
685TM_Rotate = <<1st constructor of 'TCMod>>
686
687TM_Scale :: Float -> Float -> TCMod
688TM_Scale = <<3rd constructor of 'TCMod>>
689
690TM_Scroll :: Float -> Float -> TCMod
691TM_Scroll = <<2nd constructor of 'TCMod>>
692
693TM_Stretch :: Wave -> TCMod
694TM_Stretch = <<4th constructor of 'TCMod>>
695
696TM_Transform :: Float -> Float -> Float -> Float -> Float -> Float -> TCMod
697TM_Transform = <<5th constructor of 'TCMod>>
698
699TM_Turb :: Float -> Float -> Float -> Float -> TCMod
700TM_Turb = <<6th constructor of 'TCMod>>
701
702WT_InverseSawtooth :: WaveType
703WT_InverseSawtooth = <<4th constructor of 'WaveType>>
704
705WT_Noise :: WaveType
706WT_Noise = <<5th constructor of 'WaveType>>
707
708WT_Sawtooth :: WaveType
709WT_Sawtooth = <<3rd constructor of 'WaveType>>
710
711WT_Sin :: WaveType
712WT_Sin = <<0th constructor of 'WaveType>>
713
714WT_Square :: WaveType
715WT_Square = <<2nd constructor of 'WaveType>>
716
717WT_Triangle :: WaveType
718WT_Triangle = <<1st constructor of 'WaveType>>
719
720Wave :: WaveType -> Float -> Float -> Float -> Float -> Wave
721Wave = <<0th constructor of 'Wave>>
722
723caCull :: CommonAttrs -> CullType
724caCull
725 = \a -> case'CommonAttrs
726 (\_ -> 'CullType)
727 (\_ _ _ _ _ _ b _ _ _ _ _ -> _rhs b)
728 a
729
730caDeformVertexes :: CommonAttrs -> [Deform]
731caDeformVertexes
732 = \a -> case'CommonAttrs
733 (\_ -> ['Deform])
734 (\_ _ _ _ _ _ _ b _ _ _ _ -> _rhs b)
735 a
736
737caEntityMergable :: CommonAttrs -> Bool
738caEntityMergable
739 = \a -> case'CommonAttrs (\_ -> 'Bool) (\_ _ _ _ b _ _ _ _ _ _ _ -> _rhs b) a
740
741caFogOnly :: CommonAttrs -> Bool
742caFogOnly
743 = \a -> case'CommonAttrs (\_ -> 'Bool) (\_ _ _ _ _ b _ _ _ _ _ _ -> _rhs b) a
744
745caFogParms :: CommonAttrs -> ()
746caFogParms
747 = \a -> case'CommonAttrs (\_ -> ' ()) (\_ b _ _ _ _ _ _ _ _ _ _ -> _rhs b) a
748
749caIsSky :: CommonAttrs -> Bool
750caIsSky
751 = \a -> case'CommonAttrs (\_ -> 'Bool) (\_ _ _ _ _ _ _ _ _ _ _ b -> _rhs b) a
752
753caNoMipMaps :: CommonAttrs -> Bool
754caNoMipMaps
755 = \a -> case'CommonAttrs (\_ -> 'Bool) (\_ _ _ _ _ _ _ _ b _ _ _ -> _rhs b) a
756
757caPolygonOffset :: CommonAttrs -> Bool
758caPolygonOffset
759 = \a -> case'CommonAttrs (\_ -> 'Bool) (\_ _ _ _ _ _ _ _ _ b _ _ -> _rhs b) a
760
761caPortal :: CommonAttrs -> Bool
762caPortal
763 = \a -> case'CommonAttrs (\_ -> 'Bool) (\_ _ b _ _ _ _ _ _ _ _ _ -> _rhs b) a
764
765caSkyParms :: CommonAttrs -> ()
766caSkyParms
767 = \a -> case'CommonAttrs (\_ -> ' ()) (\b _ _ _ _ _ _ _ _ _ _ _ -> _rhs b) a
768
769caSort :: CommonAttrs -> Float
770caSort
771 = \a -> case'CommonAttrs (\_ -> 'Float) (\_ _ _ b _ _ _ _ _ _ _ _ -> _rhs b) a
772
773caStages :: CommonAttrs -> [StageAttrs]
774caStages
775 = \a -> case'CommonAttrs
776 (\_ -> ['StageAttrs])
777 (\_ _ _ _ _ _ _ _ _ _ b _ -> _rhs b)
778 a
779
780case'AlphaFunction
781 :: forall (a :: AlphaFunction -> Type)
782 -> a 'A_Gt0 -> a 'A_Lt128 -> a 'A_Ge128 -> forall (b :: AlphaFunction) -> a b
783case'AlphaFunction = \a b c d e -> <<case function of a type with 0 parameters>>
784
785case'AlphaGen
786 :: forall (a :: AlphaGen -> Type)
787 -> (forall (b :: Wave) -> a ('A_Wave b))
788 -> (forall (c :: Float) -> a ('A_Const c))
789 -> a 'A_Portal
790 -> a 'A_Identity
791 -> a 'A_Entity
792 -> a 'A_OneMinusEntity
793 -> a 'A_Vertex
794 -> a 'A_LightingSpecular -> a 'A_OneMinusVertex -> forall (d :: AlphaGen) -> a d
795case'AlphaGen
796 = \a b c d e f g h i j k -> <<case function of a type with 0 parameters>>
797
798case'Blending'
799 :: forall (a :: Blending' -> Type)
800 -> a 'B_DstAlpha
801 -> a 'B_DstColor
802 -> a 'B_One
803 -> a 'B_OneMinusDstAlpha
804 -> a 'B_OneMinusDstColor
805 -> a 'B_OneMinusSrcAlpha
806 -> a 'B_OneMinusSrcColor
807 -> a 'B_SrcAlpha
808 -> a 'B_SrcAlphaSaturate
809 -> a 'B_SrcColor -> a 'B_Zero -> forall (b :: Blending') -> a b
810case'Blending'
811 = \a b c d e f g h i j k l m -> <<case function of a type with 0 parameters>>
812
813case'CommonAttrs
814 :: forall (a :: CommonAttrs -> Type)
815 -> (forall (b :: ())
816 (c :: ())
817 (d :: Bool)
818 (e :: Float)
819 (f :: Bool)
820 (g :: Bool)
821 (h :: CullType)
822 (i :: [Deform]) (j :: Bool) (k :: Bool) (l :: [StageAttrs]) (m :: Bool)
823 -> a ('CommonAttrs b c d e f g h i j k l m))
824 -> forall (n :: CommonAttrs) -> a n
825case'CommonAttrs = \a b c -> <<case function of a type with 0 parameters>>
826
827case'CullType
828 :: forall (a :: CullType -> Type)
829 -> a 'CT_FrontSided
830 -> a 'CT_BackSided -> a 'CT_TwoSided -> forall (b :: CullType) -> a b
831case'CullType = \a b c d e -> <<case function of a type with 0 parameters>>
832
368case'Deform 833case'Deform
369 :: forall (a :: Deform -> Type) 834 :: forall (a :: Deform -> Type)
370 -> a 'D_AutoSprite 835 -> a 'D_AutoSprite
@@ -383,55 +848,23 @@ case'Deform
383 -> a 'D_Text7 848 -> a 'D_Text7
384 -> (forall (i :: Float) (j :: Wave) -> a ('D_Wave i j)) 849 -> (forall (i :: Float) (j :: Wave) -> a ('D_Wave i j))
385 -> forall (k :: Deform) -> a k 850 -> forall (k :: Deform) -> a k
386match'Deform :: forall (a :: Type -> Type) -> a Deform -> forall b -> a b -> a b 851case'Deform
387'CullType :: Type 852 = \a b c d e f g h i j k l m n o p q
388CT_FrontSided :: CullType 853 -> <<case function of a type with 0 parameters>>
389CT_BackSided :: CullType 854
390CT_TwoSided :: CullType 855case'DepthFunction
391case'CullType 856 :: forall (a :: DepthFunction -> Type)
392 :: forall (a :: CullType -> Type) 857 -> a 'D_Equal -> a 'D_Lequal -> forall (b :: DepthFunction) -> a b
393 -> a 'CT_FrontSided 858case'DepthFunction = \a b c d -> <<case function of a type with 0 parameters>>
394 -> a 'CT_BackSided -> a 'CT_TwoSided -> forall (b :: CullType) -> a b 859
395match'CullType 860case'Entity
396 :: forall (a :: Type -> Type) -> a CullType -> forall b -> a b -> a b 861 :: forall (a :: Entity -> Type)
397'Blending' :: Type 862 -> (forall (b :: Vec 4 Float)
398B_DstAlpha :: Blending' 863 (c :: Vec 4 Float) (d :: Vec 3 Float) (e :: Vec 4 Float)
399B_DstColor :: Blending' 864 -> a ('Entity b c d e))
400B_One :: Blending' 865 -> forall (f :: Entity) -> a f
401B_OneMinusDstAlpha :: Blending' 866case'Entity = \a b c -> <<case function of a type with 0 parameters>>
402B_OneMinusDstColor :: Blending' 867
403B_OneMinusSrcAlpha :: Blending'
404B_OneMinusSrcColor :: Blending'
405B_SrcAlpha :: Blending'
406B_SrcAlphaSaturate :: Blending'
407B_SrcColor :: Blending'
408B_Zero :: Blending'
409case'Blending'
410 :: forall (a :: Blending' -> Type)
411 -> a 'B_DstAlpha
412 -> a 'B_DstColor
413 -> a 'B_One
414 -> a 'B_OneMinusDstAlpha
415 -> a 'B_OneMinusDstColor
416 -> a 'B_OneMinusSrcAlpha
417 -> a 'B_OneMinusSrcColor
418 -> a 'B_SrcAlpha
419 -> a 'B_SrcAlphaSaturate
420 -> a 'B_SrcColor -> a 'B_Zero -> forall (b :: Blending') -> a b
421match'Blending'
422 :: forall (a :: Type -> Type) -> a Blending' -> forall b -> a b -> a b
423'RGBGen :: Type
424RGB_Wave :: Wave -> RGBGen
425RGB_Const :: Float -> Float -> Float -> RGBGen
426RGB_Identity :: RGBGen
427RGB_IdentityLighting :: RGBGen
428RGB_Entity :: RGBGen
429RGB_OneMinusEntity :: RGBGen
430RGB_ExactVertex :: RGBGen
431RGB_Vertex :: RGBGen
432RGB_LightingDiffuse :: RGBGen
433RGB_OneMinusVertex :: RGBGen
434RGB_Undefined :: RGBGen
435case'RGBGen 868case'RGBGen
436 :: forall (a :: RGBGen -> Type) 869 :: forall (a :: RGBGen -> Type)
437 -> (forall (b :: Wave) -> a ('RGB_Wave b)) 870 -> (forall (b :: Wave) -> a ('RGB_Wave b))
@@ -444,35 +877,32 @@ case'RGBGen
444 -> a 'RGB_Vertex 877 -> a 'RGB_Vertex
445 -> a 'RGB_LightingDiffuse 878 -> a 'RGB_LightingDiffuse
446 -> a 'RGB_OneMinusVertex -> a 'RGB_Undefined -> forall (f :: RGBGen) -> a f 879 -> a 'RGB_OneMinusVertex -> a 'RGB_Undefined -> forall (f :: RGBGen) -> a f
447match'RGBGen :: forall (a :: Type -> Type) -> a RGBGen -> forall b -> a b -> a b 880case'RGBGen
448'AlphaGen :: Type 881 = \a b c d e f g h i j k l m -> <<case function of a type with 0 parameters>>
449A_Wave :: Wave -> AlphaGen 882
450A_Const :: Float -> AlphaGen 883case'StageAttrs
451A_Portal :: AlphaGen 884 :: forall (a :: StageAttrs -> Type)
452A_Identity :: AlphaGen 885 -> (forall (b :: Maybe (Blending', Blending'))
453A_Entity :: AlphaGen 886 (c :: RGBGen)
454A_OneMinusEntity :: AlphaGen 887 (d :: AlphaGen)
455A_Vertex :: AlphaGen 888 (e :: TCGen)
456A_LightingSpecular :: AlphaGen 889 (f :: [TCMod])
457A_OneMinusVertex :: AlphaGen 890 (g :: StageTexture)
458case'AlphaGen 891 (h :: Bool)
459 :: forall (a :: AlphaGen -> Type) 892 (i :: DepthFunction) (j :: Maybe AlphaFunction) (k :: Bool) (l :: String)
460 -> (forall (b :: Wave) -> a ('A_Wave b)) 893 -> a ('StageAttrs b c d e f g h i j k l))
461 -> (forall (c :: Float) -> a ('A_Const c)) 894 -> forall (m :: StageAttrs) -> a m
462 -> a 'A_Portal 895case'StageAttrs = \a b c -> <<case function of a type with 0 parameters>>
463 -> a 'A_Identity 896
464 -> a 'A_Entity 897case'StageTexture
465 -> a 'A_OneMinusEntity 898 :: forall (a :: StageTexture -> Type)
466 -> a 'A_Vertex 899 -> (forall (b :: String) -> a ('ST_Map b))
467 -> a 'A_LightingSpecular -> a 'A_OneMinusVertex -> forall (d :: AlphaGen) -> a d 900 -> (forall (c :: String) -> a ('ST_ClampMap c))
468match'AlphaGen 901 -> (forall (d :: Float) (e :: [String]) -> a ('ST_AnimMap d e))
469 :: forall (a :: Type -> Type) -> a AlphaGen -> forall b -> a b -> a b 902 -> a 'ST_Lightmap -> a 'ST_WhiteImage -> forall (f :: StageTexture) -> a f
470'TCGen :: Type 903case'StageTexture
471TG_Base :: TCGen 904 = \a b c d e f g -> <<case function of a type with 0 parameters>>
472TG_Lightmap :: TCGen 905
473TG_Environment :: TCGen
474TG_Vector :: Vec 3 Float -> Vec 3 Float -> TCGen
475TG_Undefined :: TCGen
476case'TCGen 906case'TCGen
477 :: forall (a :: TCGen -> Type) 907 :: forall (a :: TCGen -> Type)
478 -> a 'TG_Base 908 -> a 'TG_Base
@@ -480,15 +910,8 @@ case'TCGen
480 -> a 'TG_Environment 910 -> a 'TG_Environment
481 -> (forall (b :: Vec 3 Float) (c :: Vec 3 Float) -> a ('TG_Vector b c)) 911 -> (forall (b :: Vec 3 Float) (c :: Vec 3 Float) -> a ('TG_Vector b c))
482 -> a 'TG_Undefined -> forall (d :: TCGen) -> a d 912 -> a 'TG_Undefined -> forall (d :: TCGen) -> a d
483match'TCGen :: forall (a :: Type -> Type) -> a TCGen -> forall b -> a b -> a b 913case'TCGen = \a b c d e f g -> <<case function of a type with 0 parameters>>
484'TCMod :: Type 914
485TM_EntityTranslate :: TCMod
486TM_Rotate :: Float -> TCMod
487TM_Scroll :: Float -> Float -> TCMod
488TM_Scale :: Float -> Float -> TCMod
489TM_Stretch :: Wave -> TCMod
490TM_Transform :: Float -> Float -> Float -> Float -> Float -> Float -> TCMod
491TM_Turb :: Float -> Float -> Float -> Float -> TCMod
492case'TCMod 915case'TCMod
493 :: forall (a :: TCMod -> Type) 916 :: forall (a :: TCMod -> Type)
494 -> a 'TM_EntityTranslate 917 -> a 'TM_EntityTranslate
@@ -502,109 +925,170 @@ case'TCMod
502 -> (forall (n :: Float) (o :: Float) (p :: Float) (q :: Float) 925 -> (forall (n :: Float) (o :: Float) (p :: Float) (q :: Float)
503 -> a ('TM_Turb n o p q)) 926 -> a ('TM_Turb n o p q))
504 -> forall (r :: TCMod) -> a r 927 -> forall (r :: TCMod) -> a r
505match'TCMod :: forall (a :: Type -> Type) -> a TCMod -> forall b -> a b -> a b 928case'TCMod = \a b c d e f g h i -> <<case function of a type with 0 parameters>>
506'StageTexture :: Type 929
507ST_Map :: String -> StageTexture 930case'Wave
508ST_ClampMap :: String -> StageTexture 931 :: forall (a :: Wave -> Type)
509ST_AnimMap :: Float -> [String] -> StageTexture 932 -> (forall (b :: WaveType) (c :: Float) (d :: Float) (e :: Float) (f :: Float)
510ST_Lightmap :: StageTexture 933 -> a ('Wave b c d e f))
511ST_WhiteImage :: StageTexture 934 -> forall (g :: Wave) -> a g
512case'StageTexture 935case'Wave = \a b c -> <<case function of a type with 0 parameters>>
513 :: forall (a :: StageTexture -> Type) 936
514 -> (forall (b :: String) -> a ('ST_Map b)) 937case'WaveType
515 -> (forall (c :: String) -> a ('ST_ClampMap c)) 938 :: forall (a :: WaveType -> Type)
516 -> (forall (d :: Float) (e :: [String]) -> a ('ST_AnimMap d e)) 939 -> a 'WT_Sin
517 -> a 'ST_Lightmap -> a 'ST_WhiteImage -> forall (f :: StageTexture) -> a f 940 -> a 'WT_Triangle
518match'StageTexture 941 -> a 'WT_Square
519 :: forall (a :: Type -> Type) -> a StageTexture -> forall b -> a b -> a b 942 -> a 'WT_Sawtooth
520'AlphaFunction :: Type 943 -> a 'WT_InverseSawtooth -> a 'WT_Noise -> forall (b :: WaveType) -> a b
521A_Gt0 :: AlphaFunction 944case'WaveType
522A_Lt128 :: AlphaFunction 945 = \a b c d e f g h -> <<case function of a type with 0 parameters>>
523A_Ge128 :: AlphaFunction 946
524case'AlphaFunction 947defaultCommonAttrs :: CommonAttrs
525 :: forall (a :: AlphaFunction -> Type) 948defaultCommonAttrs
526 -> a 'A_Gt0 -> a 'A_Lt128 -> a 'A_Ge128 -> forall (b :: AlphaFunction) -> a b 949 = _rhs
950 (CommonAttrs () () False 0.0 False False CT_FrontSided [] False False [] False)
951
952defaultStageAttrs :: StageAttrs
953defaultStageAttrs
954 = _rhs
955 (StageAttrs
956 Nothing
957 RGB_Undefined
958 A_Identity
959 TG_Undefined
960 []
961 ST_WhiteImage
962 True
963 D_Lequal
964 Nothing
965 False
966 "")
967
968eAmbientLight :: Entity -> VecS Float 4
969eAmbientLight = \a -> case'Entity (\_ -> 'VecS 'Float 4) (\b _ _ _ -> _rhs b) a
970
971eDirectedLight :: Entity -> VecS Float 4
972eDirectedLight = \a -> case'Entity (\_ -> 'VecS 'Float 4) (\_ b _ _ -> _rhs b) a
973
974eLightDir :: Entity -> VecS Float 3
975eLightDir = \a -> case'Entity (\_ -> 'VecS 'Float 3) (\_ _ b _ -> _rhs b) a
976
977eShaderRGBA :: Entity -> VecS Float 4
978eShaderRGBA = \a -> case'Entity (\_ -> 'VecS 'Float 4) (\_ _ _ b -> _rhs b) a
979
980identityLight :: Float
981identityLight = _rhs 1.0
982
527match'AlphaFunction 983match'AlphaFunction
528 :: forall (a :: Type -> Type) -> a AlphaFunction -> forall b -> a b -> a b 984 :: forall (a :: Type -> Type) -> a AlphaFunction -> forall b -> a b -> a b
529'DepthFunction :: Type 985match'AlphaFunction = \a b c d -> <<type case function>>
530D_Equal :: DepthFunction 986
531D_Lequal :: DepthFunction 987match'AlphaGen
532case'DepthFunction 988 :: forall (a :: Type -> Type) -> a AlphaGen -> forall b -> a b -> a b
533 :: forall (a :: DepthFunction -> Type) 989match'AlphaGen = \a b c d -> <<type case function>>
534 -> a 'D_Equal -> a 'D_Lequal -> forall (b :: DepthFunction) -> a b 990
991match'Blending'
992 :: forall (a :: Type -> Type) -> a Blending' -> forall b -> a b -> a b
993match'Blending' = \a b c d -> <<type case function>>
994
995match'CommonAttrs
996 :: forall (a :: Type -> Type) -> a CommonAttrs -> forall b -> a b -> a b
997match'CommonAttrs = \a b c d -> <<type case function>>
998
999match'CullType
1000 :: forall (a :: Type -> Type) -> a CullType -> forall b -> a b -> a b
1001match'CullType = \a b c d -> <<type case function>>
1002
1003match'Deform :: forall (a :: Type -> Type) -> a Deform -> forall b -> a b -> a b
1004match'Deform = \a b c d -> <<type case function>>
1005
535match'DepthFunction 1006match'DepthFunction
536 :: forall (a :: Type -> Type) -> a DepthFunction -> forall b -> a b -> a b 1007 :: forall (a :: Type -> Type) -> a DepthFunction -> forall b -> a b -> a b
537'StageAttrs :: Type 1008match'DepthFunction = \a b c d -> <<type case function>>
538StageAttrs 1009
539 :: Maybe (Blending', Blending') 1010match'Entity :: forall (a :: Type -> Type) -> a Entity -> forall b -> a b -> a b
540 -> RGBGen 1011match'Entity = \a b c d -> <<type case function>>
541 -> AlphaGen 1012
542 -> TCGen 1013match'RGBGen :: forall (a :: Type -> Type) -> a RGBGen -> forall b -> a b -> a b
543 -> [TCMod] 1014match'RGBGen = \a b c d -> <<type case function>>
544 -> StageTexture 1015
545 -> Bool -> DepthFunction -> Maybe AlphaFunction -> Bool -> String -> StageAttrs
546case'StageAttrs
547 :: forall (a :: StageAttrs -> Type)
548 -> (forall (b :: Maybe (Blending', Blending'))
549 (c :: RGBGen)
550 (d :: AlphaGen)
551 (e :: TCGen)
552 (f :: [TCMod])
553 (g :: StageTexture)
554 (h :: Bool)
555 (i :: DepthFunction) (j :: Maybe AlphaFunction) (k :: Bool) (l :: String)
556 -> a ('StageAttrs b c d e f g h i j k l))
557 -> forall (m :: StageAttrs) -> a m
558match'StageAttrs 1016match'StageAttrs
559 :: forall (a :: Type -> Type) -> a StageAttrs -> forall b -> a b -> a b 1017 :: forall (a :: Type -> Type) -> a StageAttrs -> forall b -> a b -> a b
1018match'StageAttrs = \a b c d -> <<type case function>>
1019
1020match'StageTexture
1021 :: forall (a :: Type -> Type) -> a StageTexture -> forall b -> a b -> a b
1022match'StageTexture = \a b c d -> <<type case function>>
1023
1024match'TCGen :: forall (a :: Type -> Type) -> a TCGen -> forall b -> a b -> a b
1025match'TCGen = \a b c d -> <<type case function>>
1026
1027match'TCMod :: forall (a :: Type -> Type) -> a TCMod -> forall b -> a b -> a b
1028match'TCMod = \a b c d -> <<type case function>>
1029
1030match'Wave :: forall (a :: Type -> Type) -> a Wave -> forall b -> a b -> a b
1031match'Wave = \a b c d -> <<type case function>>
1032
1033match'WaveType
1034 :: forall (a :: Type -> Type) -> a WaveType -> forall b -> a b -> a b
1035match'WaveType = \a b c d -> <<type case function>>
1036
1037saAlphaFunc :: StageAttrs -> Maybe AlphaFunction
1038saAlphaFunc
1039 = \a -> case'StageAttrs
1040 (\_ -> 'Maybe 'AlphaFunction)
1041 (\_ _ _ _ _ _ _ _ b _ _ -> _rhs b)
1042 a
1043
1044saAlphaGen :: StageAttrs -> AlphaGen
1045saAlphaGen
1046 = \a -> case'StageAttrs (\_ -> 'AlphaGen) (\_ _ b _ _ _ _ _ _ _ _ -> _rhs b) a
1047
560saBlend :: StageAttrs -> Maybe (Blending', Blending') 1048saBlend :: StageAttrs -> Maybe (Blending', Blending')
1049saBlend
1050 = \a -> case'StageAttrs
1051 (\_ -> 'Maybe ' ('Blending', 'Blending'))
1052 (\b _ _ _ _ _ _ _ _ _ _ -> _rhs b)
1053 a
1054
1055saDepthFunc :: StageAttrs -> DepthFunction
1056saDepthFunc
1057 = \a -> case'StageAttrs
1058 (\_ -> 'DepthFunction)
1059 (\_ _ _ _ _ _ _ b _ _ _ -> _rhs b)
1060 a
1061
1062saDepthMaskExplicit :: StageAttrs -> Bool
1063saDepthMaskExplicit
1064 = \a -> case'StageAttrs (\_ -> 'Bool) (\_ _ _ _ _ _ _ _ _ b _ -> _rhs b) a
1065
1066saDepthWrite :: StageAttrs -> Bool
1067saDepthWrite
1068 = \a -> case'StageAttrs (\_ -> 'Bool) (\_ _ _ _ _ _ b _ _ _ _ -> _rhs b) a
1069
561saRGBGen :: StageAttrs -> RGBGen 1070saRGBGen :: StageAttrs -> RGBGen
562saAlphaGen :: StageAttrs -> AlphaGen 1071saRGBGen
1072 = \a -> case'StageAttrs (\_ -> 'RGBGen) (\_ b _ _ _ _ _ _ _ _ _ -> _rhs b) a
1073
563saTCGen :: StageAttrs -> TCGen 1074saTCGen :: StageAttrs -> TCGen
1075saTCGen
1076 = \a -> case'StageAttrs (\_ -> 'TCGen) (\_ _ _ b _ _ _ _ _ _ _ -> _rhs b) a
1077
564saTCMod :: StageAttrs -> [TCMod] 1078saTCMod :: StageAttrs -> [TCMod]
1079saTCMod
1080 = \a -> case'StageAttrs (\_ -> ['TCMod]) (\_ _ _ _ b _ _ _ _ _ _ -> _rhs b) a
1081
565saTexture :: StageAttrs -> StageTexture 1082saTexture :: StageAttrs -> StageTexture
566saDepthWrite :: StageAttrs -> Bool 1083saTexture
567saDepthFunc :: StageAttrs -> DepthFunction 1084 = \a -> case'StageAttrs
568saAlphaFunc :: StageAttrs -> Maybe AlphaFunction 1085 (\_ -> 'StageTexture)
569saDepthMaskExplicit :: StageAttrs -> Bool 1086 (\_ _ _ _ _ b _ _ _ _ _ -> _rhs b)
1087 a
1088
570saTextureUniform :: StageAttrs -> String 1089saTextureUniform :: StageAttrs -> String
571defaultStageAttrs :: StageAttrs 1090saTextureUniform
572'CommonAttrs :: Type 1091 = \a -> case'StageAttrs (\_ -> 'String) (\_ _ _ _ _ _ _ _ _ _ b -> _rhs b) a
573CommonAttrs
574 :: ()
575 -> ()
576 -> Bool
577 -> Float
578 -> Bool
579 -> Bool
580 -> CullType -> [Deform] -> Bool -> Bool -> [StageAttrs] -> Bool -> CommonAttrs
581case'CommonAttrs
582 :: forall (a :: CommonAttrs -> Type)
583 -> (forall (b :: ())
584 (c :: ())
585 (d :: Bool)
586 (e :: Float)
587 (f :: Bool)
588 (g :: Bool)
589 (h :: CullType)
590 (i :: [Deform]) (j :: Bool) (k :: Bool) (l :: [StageAttrs]) (m :: Bool)
591 -> a ('CommonAttrs b c d e f g h i j k l m))
592 -> forall (n :: CommonAttrs) -> a n
593match'CommonAttrs
594 :: forall (a :: Type -> Type) -> a CommonAttrs -> forall b -> a b -> a b
595caSkyParms :: CommonAttrs -> ()
596caFogParms :: CommonAttrs -> ()
597caPortal :: CommonAttrs -> Bool
598caSort :: CommonAttrs -> Float
599caEntityMergable :: CommonAttrs -> Bool
600caFogOnly :: CommonAttrs -> Bool
601caCull :: CommonAttrs -> CullType
602caDeformVertexes :: CommonAttrs -> [Deform]
603caNoMipMaps :: CommonAttrs -> Bool
604caPolygonOffset :: CommonAttrs -> Bool
605caStages :: CommonAttrs -> [StageAttrs]
606caIsSky :: CommonAttrs -> Bool
607defaultCommonAttrs :: CommonAttrs
608------------ tooltips 1092------------ tooltips
609testdata/performance/Material.lc 7:18-7:23 1093testdata/performance/Material.lc 7:18-7:23
610 Type 1094 Type
diff --git a/testdata/performance/SampleMaterial.out b/testdata/performance/SampleMaterial.out
index 5d70651e..6a2d1969 100644
--- a/testdata/performance/SampleMaterial.out
+++ b/testdata/performance/SampleMaterial.out
@@ -1876,8 +1876,1884 @@ sampleMaterial
1876 False 1876 False
1877 "Tex_3226210144"] 1877 "Tex_3226210144"]
1878 False)] 1878 False)]
1879------------ trace 1879------------ core code
1880sampleMaterial :: [(String, CommonAttrs)] 1880sampleMaterial :: [(String, CommonAttrs)]
1881sampleMaterial
1882 = _rhs
1883 [("textures/gothic_block/blocks11b"
1884 , CommonAttrs
1885 ()
1886 ()
1887 False
1888 0.0
1889 False
1890 False
1891 CT_FrontSided
1892 []
1893 False
1894 False
1895 [StageAttrs
1896 Nothing
1897 RGB_IdentityLighting
1898 A_Identity
1899 TG_Base
1900 []
1901 (ST_Map "textures/gothic_block/blocks11b")
1902 True
1903 D_Lequal
1904 Nothing
1905 False
1906 "Tex_4288602201"
1907 , StageAttrs
1908 (Just (B_DstColor, B_Zero))
1909 RGB_IdentityLighting
1910 A_Identity
1911 TG_Lightmap
1912 []
1913 ST_Lightmap
1914 True
1915 D_Lequal
1916 Nothing
1917 False
1918 "Tex_3226210144"]
1919 False)
1920 , ("textures/gothic_block/blocks15"
1921 , CommonAttrs
1922 ()
1923 ()
1924 False
1925 0.0
1926 False
1927 False
1928 CT_FrontSided
1929 []
1930 False
1931 False
1932 [StageAttrs
1933 Nothing
1934 RGB_IdentityLighting
1935 A_Identity
1936 TG_Base
1937 []
1938 (ST_Map "textures/gothic_block/blocks15")
1939 True
1940 D_Lequal
1941 Nothing
1942 False
1943 "Tex_2523116863"
1944 , StageAttrs
1945 (Just (B_DstColor, B_Zero))
1946 RGB_IdentityLighting
1947 A_Identity
1948 TG_Lightmap
1949 []
1950 ST_Lightmap
1951 True
1952 D_Lequal
1953 Nothing
1954 False
1955 "Tex_3226210144"]
1956 False)
1957 , ("textures/gothic_block/blocks18b"
1958 , CommonAttrs
1959 ()
1960 ()
1961 False
1962 0.0
1963 False
1964 False
1965 CT_FrontSided
1966 []
1967 False
1968 False
1969 [StageAttrs
1970 Nothing
1971 RGB_IdentityLighting
1972 A_Identity
1973 TG_Base
1974 []
1975 (ST_Map "textures/gothic_block/blocks18b")
1976 True
1977 D_Lequal
1978 Nothing
1979 False
1980 "Tex_2639119078"
1981 , StageAttrs
1982 (Just (B_DstColor, B_Zero))
1983 RGB_IdentityLighting
1984 A_Identity
1985 TG_Lightmap
1986 []
1987 ST_Lightmap
1988 True
1989 D_Lequal
1990 Nothing
1991 False
1992 "Tex_3226210144"]
1993 False)
1994 , ("textures/gothic_block/blocks18c_3"
1995 , CommonAttrs
1996 ()
1997 ()
1998 False
1999 0.0
2000 False
2001 False
2002 CT_FrontSided
2003 []
2004 False
2005 False
2006 [StageAttrs
2007 Nothing
2008 RGB_IdentityLighting
2009 A_Identity
2010 TG_Base
2011 []
2012 (ST_Map "textures/gothic_block/blocks18c_3")
2013 True
2014 D_Lequal
2015 Nothing
2016 False
2017 "Tex_3939430064"
2018 , StageAttrs
2019 (Just (B_DstColor, B_Zero))
2020 RGB_IdentityLighting
2021 A_Identity
2022 TG_Lightmap
2023 []
2024 ST_Lightmap
2025 True
2026 D_Lequal
2027 Nothing
2028 False
2029 "Tex_3226210144"]
2030 False)
2031 , ("textures/gothic_block/demon_block15fx"
2032 , CommonAttrs
2033 ()
2034 ()
2035 False
2036 3.0
2037 False
2038 False
2039 CT_FrontSided
2040 []
2041 False
2042 False
2043 [StageAttrs
2044 Nothing
2045 RGB_Identity
2046 A_Identity
2047 TG_Base
2048 [TM_Scroll 0.0 1.0, TM_Turb 0.0 0.25 0.0 1.6, TM_Scale 4.0 4.0]
2049 (ST_Map "textures/sfx/firegorre.tga")
2050 True
2051 D_Lequal
2052 Nothing
2053 False
2054 "Tex_47037129"
2055 , StageAttrs
2056 (Just (B_SrcAlpha, B_OneMinusSrcAlpha))
2057 RGB_Identity
2058 A_Identity
2059 TG_Base
2060 []
2061 (ST_Map "textures/gothic_block/demon_block15fx.tga")
2062 False
2063 D_Lequal
2064 Nothing
2065 False
2066 "Tex_3562558025"
2067 , StageAttrs
2068 (Just (B_DstColor, B_OneMinusDstAlpha))
2069 RGB_Identity
2070 A_Identity
2071 TG_Lightmap
2072 []
2073 ST_Lightmap
2074 False
2075 D_Lequal
2076 Nothing
2077 False
2078 "Tex_2065974340"]
2079 False)
2080 , ("textures/gothic_block/killblock"
2081 , CommonAttrs
2082 ()
2083 ()
2084 False
2085 0.0
2086 False
2087 False
2088 CT_FrontSided
2089 []
2090 False
2091 False
2092 [StageAttrs
2093 Nothing
2094 RGB_IdentityLighting
2095 A_Identity
2096 TG_Base
2097 []
2098 (ST_Map "textures/gothic_block/killblock")
2099 True
2100 D_Lequal
2101 Nothing
2102 False
2103 "Tex_3647563961"
2104 , StageAttrs
2105 (Just (B_DstColor, B_Zero))
2106 RGB_IdentityLighting
2107 A_Identity
2108 TG_Lightmap
2109 []
2110 ST_Lightmap
2111 True
2112 D_Lequal
2113 Nothing
2114 False
2115 "Tex_3226210144"]
2116 False)
2117 , ("textures/gothic_block/killblock_i"
2118 , CommonAttrs
2119 ()
2120 ()
2121 False
2122 0.0
2123 False
2124 False
2125 CT_FrontSided
2126 []
2127 False
2128 False
2129 [StageAttrs
2130 Nothing
2131 RGB_IdentityLighting
2132 A_Identity
2133 TG_Base
2134 []
2135 (ST_Map "textures/gothic_block/killblock_i")
2136 True
2137 D_Lequal
2138 Nothing
2139 False
2140 "Tex_209322640"
2141 , StageAttrs
2142 (Just (B_DstColor, B_Zero))
2143 RGB_IdentityLighting
2144 A_Identity
2145 TG_Lightmap
2146 []
2147 ST_Lightmap
2148 True
2149 D_Lequal
2150 Nothing
2151 False
2152 "Tex_3226210144"]
2153 False)
2154 , ("textures/gothic_block/killblock_i4"
2155 , CommonAttrs
2156 ()
2157 ()
2158 False
2159 0.0
2160 False
2161 False
2162 CT_FrontSided
2163 []
2164 False
2165 False
2166 [StageAttrs
2167 Nothing
2168 RGB_IdentityLighting
2169 A_Identity
2170 TG_Base
2171 []
2172 (ST_Map "textures/gothic_block/killblock_i4")
2173 True
2174 D_Lequal
2175 Nothing
2176 False
2177 "Tex_3617993418"
2178 , StageAttrs
2179 (Just (B_DstColor, B_Zero))
2180 RGB_IdentityLighting
2181 A_Identity
2182 TG_Lightmap
2183 []
2184 ST_Lightmap
2185 True
2186 D_Lequal
2187 Nothing
2188 False
2189 "Tex_3226210144"]
2190 False)
2191 , ("textures/gothic_door/km_arena1archfinalc_mid"
2192 , CommonAttrs
2193 ()
2194 ()
2195 False
2196 0.0
2197 False
2198 False
2199 CT_FrontSided
2200 []
2201 False
2202 False
2203 [StageAttrs
2204 Nothing
2205 RGB_IdentityLighting
2206 A_Identity
2207 TG_Base
2208 []
2209 (ST_Map "textures/gothic_door/km_arena1archfinalc_mid")
2210 True
2211 D_Lequal
2212 Nothing
2213 False
2214 "Tex_2073154888"
2215 , StageAttrs
2216 (Just (B_DstColor, B_Zero))
2217 RGB_IdentityLighting
2218 A_Identity
2219 TG_Lightmap
2220 []
2221 ST_Lightmap
2222 True
2223 D_Lequal
2224 Nothing
2225 False
2226 "Tex_3226210144"]
2227 False)
2228 , ("textures/gothic_door/km_arena1archfinalc_top"
2229 , CommonAttrs
2230 ()
2231 ()
2232 False
2233 0.0
2234 False
2235 False
2236 CT_FrontSided
2237 []
2238 False
2239 False
2240 [StageAttrs
2241 Nothing
2242 RGB_IdentityLighting
2243 A_Identity
2244 TG_Base
2245 []
2246 (ST_Map "textures/gothic_door/km_arena1archfinalc_top")
2247 True
2248 D_Lequal
2249 Nothing
2250 False
2251 "Tex_3071107621"
2252 , StageAttrs
2253 (Just (B_DstColor, B_Zero))
2254 RGB_IdentityLighting
2255 A_Identity
2256 TG_Lightmap
2257 []
2258 ST_Lightmap
2259 True
2260 D_Lequal
2261 Nothing
2262 False
2263 "Tex_3226210144"]
2264 False)
2265 , ("textures/gothic_door/km_arena1archfinald_bot"
2266 , CommonAttrs
2267 ()
2268 ()
2269 False
2270 0.0
2271 False
2272 False
2273 CT_FrontSided
2274 []
2275 False
2276 False
2277 [StageAttrs
2278 Nothing
2279 RGB_IdentityLighting
2280 A_Identity
2281 TG_Base
2282 []
2283 (ST_Map "textures/gothic_door/km_arena1archfinald_bot")
2284 True
2285 D_Lequal
2286 Nothing
2287 False
2288 "Tex_1201212243"
2289 , StageAttrs
2290 (Just (B_DstColor, B_Zero))
2291 RGB_IdentityLighting
2292 A_Identity
2293 TG_Lightmap
2294 []
2295 ST_Lightmap
2296 True
2297 D_Lequal
2298 Nothing
2299 False
2300 "Tex_3226210144"]
2301 False)
2302 , ("textures/gothic_door/km_arena1archfinald_mid"
2303 , CommonAttrs
2304 ()
2305 ()
2306 False
2307 0.0
2308 False
2309 False
2310 CT_FrontSided
2311 []
2312 False
2313 False
2314 [StageAttrs
2315 Nothing
2316 RGB_IdentityLighting
2317 A_Identity
2318 TG_Base
2319 []
2320 (ST_Map "textures/gothic_door/km_arena1archfinald_mid")
2321 True
2322 D_Lequal
2323 Nothing
2324 False
2325 "Tex_3768122504"
2326 , StageAttrs
2327 (Just (B_DstColor, B_Zero))
2328 RGB_IdentityLighting
2329 A_Identity
2330 TG_Lightmap
2331 []
2332 ST_Lightmap
2333 True
2334 D_Lequal
2335 Nothing
2336 False
2337 "Tex_3226210144"]
2338 False)
2339 , ("textures/gothic_door/skull_door_a"
2340 , CommonAttrs
2341 ()
2342 ()
2343 False
2344 0.0
2345 False
2346 False
2347 CT_FrontSided
2348 []
2349 False
2350 False
2351 [StageAttrs
2352 Nothing
2353 RGB_IdentityLighting
2354 A_Identity
2355 TG_Base
2356 []
2357 (ST_Map "textures/gothic_door/skull_door_a")
2358 True
2359 D_Lequal
2360 Nothing
2361 False
2362 "Tex_1284708166"
2363 , StageAttrs
2364 (Just (B_DstColor, B_Zero))
2365 RGB_IdentityLighting
2366 A_Identity
2367 TG_Lightmap
2368 []
2369 ST_Lightmap
2370 True
2371 D_Lequal
2372 Nothing
2373 False
2374 "Tex_3226210144"]
2375 False)
2376 , ("textures/gothic_door/skull_door_b"
2377 , CommonAttrs
2378 ()
2379 ()
2380 False
2381 0.0
2382 False
2383 False
2384 CT_FrontSided
2385 []
2386 False
2387 False
2388 [StageAttrs
2389 Nothing
2390 RGB_IdentityLighting
2391 A_Identity
2392 TG_Base
2393 []
2394 (ST_Map "textures/gothic_door/skull_door_b")
2395 True
2396 D_Lequal
2397 Nothing
2398 False
2399 "Tex_1318715778"
2400 , StageAttrs
2401 (Just (B_DstColor, B_Zero))
2402 RGB_IdentityLighting
2403 A_Identity
2404 TG_Lightmap
2405 []
2406 ST_Lightmap
2407 True
2408 D_Lequal
2409 Nothing
2410 False
2411 "Tex_3226210144"]
2412 False)
2413 , ("textures/gothic_door/skull_door_c"
2414 , CommonAttrs
2415 ()
2416 ()
2417 False
2418 0.0
2419 False
2420 False
2421 CT_FrontSided
2422 []
2423 False
2424 False
2425 [StageAttrs
2426 Nothing
2427 RGB_IdentityLighting
2428 A_Identity
2429 TG_Base
2430 []
2431 (ST_Map "textures/gothic_door/skull_door_c")
2432 True
2433 D_Lequal
2434 Nothing
2435 False
2436 "Tex_4189195777"
2437 , StageAttrs
2438 (Just (B_DstColor, B_Zero))
2439 RGB_IdentityLighting
2440 A_Identity
2441 TG_Lightmap
2442 []
2443 ST_Lightmap
2444 True
2445 D_Lequal
2446 Nothing
2447 False
2448 "Tex_3226210144"]
2449 False)
2450 , ("textures/gothic_door/skull_door_d"
2451 , CommonAttrs
2452 ()
2453 ()
2454 False
2455 0.0
2456 False
2457 False
2458 CT_FrontSided
2459 []
2460 False
2461 False
2462 [StageAttrs
2463 Nothing
2464 RGB_IdentityLighting
2465 A_Identity
2466 TG_Base
2467 []
2468 (ST_Map "textures/gothic_door/skull_door_d")
2469 True
2470 D_Lequal
2471 Nothing
2472 False
2473 "Tex_1250438154"
2474 , StageAttrs
2475 (Just (B_DstColor, B_Zero))
2476 RGB_IdentityLighting
2477 A_Identity
2478 TG_Lightmap
2479 []
2480 ST_Lightmap
2481 True
2482 D_Lequal
2483 Nothing
2484 False
2485 "Tex_3226210144"]
2486 False)
2487 , ("textures/gothic_door/skull_door_e"
2488 , CommonAttrs
2489 ()
2490 ()
2491 False
2492 0.0
2493 False
2494 False
2495 CT_FrontSided
2496 []
2497 False
2498 False
2499 [StageAttrs
2500 Nothing
2501 RGB_IdentityLighting
2502 A_Identity
2503 TG_Base
2504 []
2505 (ST_Map "textures/gothic_door/skull_door_e")
2506 True
2507 D_Lequal
2508 Nothing
2509 False
2510 "Tex_4255130505"
2511 , StageAttrs
2512 (Just (B_DstColor, B_Zero))
2513 RGB_IdentityLighting
2514 A_Identity
2515 TG_Lightmap
2516 []
2517 ST_Lightmap
2518 True
2519 D_Lequal
2520 Nothing
2521 False
2522 "Tex_3226210144"]
2523 False)
2524 , ("textures/gothic_door/skull_door_f"
2525 , CommonAttrs
2526 ()
2527 ()
2528 False
2529 0.0
2530 False
2531 False
2532 CT_FrontSided
2533 []
2534 False
2535 False
2536 [StageAttrs
2537 Nothing
2538 RGB_IdentityLighting
2539 A_Identity
2540 TG_Base
2541 []
2542 (ST_Map "textures/gothic_door/skull_door_f")
2543 True
2544 D_Lequal
2545 Nothing
2546 False
2547 "Tex_4289279309"
2548 , StageAttrs
2549 (Just (B_DstColor, B_Zero))
2550 RGB_IdentityLighting
2551 A_Identity
2552 TG_Lightmap
2553 []
2554 ST_Lightmap
2555 True
2556 D_Lequal
2557 Nothing
2558 False
2559 "Tex_3226210144"]
2560 False)
2561 , ("textures/gothic_door/skullarch_a"
2562 , CommonAttrs
2563 ()
2564 ()
2565 False
2566 0.0
2567 False
2568 False
2569 CT_FrontSided
2570 []
2571 False
2572 False
2573 [StageAttrs
2574 Nothing
2575 RGB_IdentityLighting
2576 A_Identity
2577 TG_Base
2578 []
2579 (ST_Map "textures/gothic_door/skullarch_a")
2580 True
2581 D_Lequal
2582 Nothing
2583 False
2584 "Tex_3448884269"
2585 , StageAttrs
2586 (Just (B_DstColor, B_Zero))
2587 RGB_IdentityLighting
2588 A_Identity
2589 TG_Lightmap
2590 []
2591 ST_Lightmap
2592 True
2593 D_Lequal
2594 Nothing
2595 False
2596 "Tex_3226210144"]
2597 False)
2598 , ("textures/gothic_door/skullarch_b"
2599 , CommonAttrs
2600 ()
2601 ()
2602 False
2603 3.0
2604 False
2605 False
2606 CT_FrontSided
2607 []
2608 False
2609 False
2610 [StageAttrs
2611 Nothing
2612 RGB_Identity
2613 A_Identity
2614 TG_Base
2615 [TM_Scroll 0.0 1.0, TM_Turb 0.0 0.25 0.0 5.6, TM_Scale 1.5 1.5]
2616 (ST_Map "textures/sfx/firegorre.tga")
2617 True
2618 D_Lequal
2619 Nothing
2620 False
2621 "Tex_3416962274"
2622 , StageAttrs
2623 (Just (B_SrcAlpha, B_OneMinusSrcAlpha))
2624 RGB_Identity
2625 A_Identity
2626 TG_Base
2627 []
2628 (ST_Map "textures/gothic_door/skullarch_b.tga")
2629 False
2630 D_Lequal
2631 Nothing
2632 False
2633 "Tex_4077187607"
2634 , StageAttrs
2635 (Just (B_DstColor, B_Zero))
2636 RGB_Identity
2637 A_Identity
2638 TG_Lightmap
2639 []
2640 ST_Lightmap
2641 False
2642 D_Lequal
2643 Nothing
2644 False
2645 "Tex_1196599720"]
2646 False)
2647 , ("textures/gothic_door/skullarch_c"
2648 , CommonAttrs
2649 ()
2650 ()
2651 False
2652 0.0
2653 False
2654 False
2655 CT_FrontSided
2656 []
2657 False
2658 False
2659 [StageAttrs
2660 Nothing
2661 RGB_IdentityLighting
2662 A_Identity
2663 TG_Base
2664 []
2665 (ST_Map "textures/gothic_door/skullarch_c")
2666 True
2667 D_Lequal
2668 Nothing
2669 False
2670 "Tex_2024854890"
2671 , StageAttrs
2672 (Just (B_DstColor, B_Zero))
2673 RGB_IdentityLighting
2674 A_Identity
2675 TG_Lightmap
2676 []
2677 ST_Lightmap
2678 True
2679 D_Lequal
2680 Nothing
2681 False
2682 "Tex_3226210144"]
2683 False)
2684 , ("textures/gothic_door/xian_tourneyarch_inside2"
2685 , CommonAttrs
2686 ()
2687 ()
2688 False
2689 0.0
2690 False
2691 False
2692 CT_FrontSided
2693 []
2694 False
2695 False
2696 [StageAttrs
2697 Nothing
2698 RGB_IdentityLighting
2699 A_Identity
2700 TG_Base
2701 []
2702 (ST_Map "textures/gothic_door/xian_tourneyarch_inside2")
2703 True
2704 D_Lequal
2705 Nothing
2706 False
2707 "Tex_1435187472"
2708 , StageAttrs
2709 (Just (B_DstColor, B_Zero))
2710 RGB_IdentityLighting
2711 A_Identity
2712 TG_Lightmap
2713 []
2714 ST_Lightmap
2715 True
2716 D_Lequal
2717 Nothing
2718 False
2719 "Tex_3226210144"]
2720 False)
2721 , ("textures/gothic_floor/blocks17floor2"
2722 , CommonAttrs
2723 ()
2724 ()
2725 False
2726 0.0
2727 False
2728 False
2729 CT_FrontSided
2730 []
2731 False
2732 False
2733 [StageAttrs
2734 Nothing
2735 RGB_IdentityLighting
2736 A_Identity
2737 TG_Base
2738 []
2739 (ST_Map "textures/gothic_floor/blocks17floor2")
2740 True
2741 D_Lequal
2742 Nothing
2743 False
2744 "Tex_3814342582"
2745 , StageAttrs
2746 (Just (B_DstColor, B_Zero))
2747 RGB_IdentityLighting
2748 A_Identity
2749 TG_Lightmap
2750 []
2751 ST_Lightmap
2752 True
2753 D_Lequal
2754 Nothing
2755 False
2756 "Tex_3226210144"]
2757 False)
2758 , ("textures/gothic_floor/largerblock3b"
2759 , CommonAttrs
2760 ()
2761 ()
2762 False
2763 0.0
2764 False
2765 False
2766 CT_FrontSided
2767 []
2768 False
2769 False
2770 [StageAttrs
2771 Nothing
2772 RGB_IdentityLighting
2773 A_Identity
2774 TG_Base
2775 []
2776 (ST_Map "textures/gothic_floor/largerblock3b")
2777 True
2778 D_Lequal
2779 Nothing
2780 False
2781 "Tex_2966885788"
2782 , StageAttrs
2783 (Just (B_DstColor, B_Zero))
2784 RGB_IdentityLighting
2785 A_Identity
2786 TG_Lightmap
2787 []
2788 ST_Lightmap
2789 True
2790 D_Lequal
2791 Nothing
2792 False
2793 "Tex_3226210144"]
2794 False)
2795 , ("textures/gothic_floor/metalbridge06"
2796 , CommonAttrs
2797 ()
2798 ()
2799 False
2800 0.0
2801 False
2802 False
2803 CT_FrontSided
2804 []
2805 False
2806 False
2807 [StageAttrs
2808 Nothing
2809 RGB_IdentityLighting
2810 A_Identity
2811 TG_Base
2812 []
2813 (ST_Map "textures/gothic_floor/metalbridge06")
2814 True
2815 D_Lequal
2816 Nothing
2817 False
2818 "Tex_1581337759"
2819 , StageAttrs
2820 (Just (B_DstColor, B_Zero))
2821 RGB_IdentityLighting
2822 A_Identity
2823 TG_Lightmap
2824 []
2825 ST_Lightmap
2826 True
2827 D_Lequal
2828 Nothing
2829 False
2830 "Tex_3226210144"]
2831 False)
2832 , ("textures/gothic_floor/metalbridge06broke"
2833 , CommonAttrs
2834 ()
2835 ()
2836 False
2837 0.0
2838 False
2839 False
2840 CT_FrontSided
2841 []
2842 False
2843 False
2844 [StageAttrs
2845 Nothing
2846 RGB_IdentityLighting
2847 A_Identity
2848 TG_Base
2849 []
2850 (ST_Map "textures/gothic_floor/metalbridge06broke")
2851 True
2852 D_Lequal
2853 Nothing
2854 False
2855 "Tex_3921745736"
2856 , StageAttrs
2857 (Just (B_DstColor, B_Zero))
2858 RGB_IdentityLighting
2859 A_Identity
2860 TG_Lightmap
2861 []
2862 ST_Lightmap
2863 True
2864 D_Lequal
2865 Nothing
2866 False
2867 "Tex_3226210144"]
2868 False)
2869 , ("textures/gothic_floor/xstairtop4"
2870 , CommonAttrs
2871 ()
2872 ()
2873 False
2874 0.0
2875 False
2876 False
2877 CT_FrontSided
2878 []
2879 False
2880 False
2881 [StageAttrs
2882 Nothing
2883 RGB_IdentityLighting
2884 A_Identity
2885 TG_Base
2886 []
2887 (ST_Map "textures/gothic_floor/xstairtop4")
2888 True
2889 D_Lequal
2890 Nothing
2891 False
2892 "Tex_3836020895"
2893 , StageAttrs
2894 (Just (B_DstColor, B_Zero))
2895 RGB_IdentityLighting
2896 A_Identity
2897 TG_Lightmap
2898 []
2899 ST_Lightmap
2900 True
2901 D_Lequal
2902 Nothing
2903 False
2904 "Tex_3226210144"]
2905 False)
2906 , ("textures/gothic_floor/xstepborder3"
2907 , CommonAttrs
2908 ()
2909 ()
2910 False
2911 0.0
2912 False
2913 False
2914 CT_FrontSided
2915 []
2916 False
2917 False
2918 [StageAttrs
2919 Nothing
2920 RGB_IdentityLighting
2921 A_Identity
2922 TG_Base
2923 []
2924 (ST_Map "textures/gothic_floor/xstepborder3")
2925 True
2926 D_Lequal
2927 Nothing
2928 False
2929 "Tex_3269743316"
2930 , StageAttrs
2931 (Just (B_DstColor, B_Zero))
2932 RGB_IdentityLighting
2933 A_Identity
2934 TG_Lightmap
2935 []
2936 ST_Lightmap
2937 True
2938 D_Lequal
2939 Nothing
2940 False
2941 "Tex_3226210144"]
2942 False)
2943 , ("textures/gothic_trim/baseboard04"
2944 , CommonAttrs
2945 ()
2946 ()
2947 False
2948 0.0
2949 False
2950 False
2951 CT_FrontSided
2952 []
2953 False
2954 False
2955 [StageAttrs
2956 Nothing
2957 RGB_IdentityLighting
2958 A_Identity
2959 TG_Base
2960 []
2961 (ST_Map "textures/gothic_trim/baseboard04")
2962 True
2963 D_Lequal
2964 Nothing
2965 False
2966 "Tex_1002517541"
2967 , StageAttrs
2968 (Just (B_DstColor, B_Zero))
2969 RGB_IdentityLighting
2970 A_Identity
2971 TG_Lightmap
2972 []
2973 ST_Lightmap
2974 True
2975 D_Lequal
2976 Nothing
2977 False
2978 "Tex_3226210144"]
2979 False)
2980 , ("textures/gothic_trim/baseboard09_c3"
2981 , CommonAttrs
2982 ()
2983 ()
2984 False
2985 0.0
2986 False
2987 False
2988 CT_FrontSided
2989 []
2990 False
2991 False
2992 [StageAttrs
2993 Nothing
2994 RGB_IdentityLighting
2995 A_Identity
2996 TG_Base
2997 []
2998 (ST_Map "textures/gothic_trim/baseboard09_c3")
2999 True
3000 D_Lequal
3001 Nothing
3002 False
3003 "Tex_2289735512"
3004 , StageAttrs
3005 (Just (B_DstColor, B_Zero))
3006 RGB_IdentityLighting
3007 A_Identity
3008 TG_Lightmap
3009 []
3010 ST_Lightmap
3011 True
3012 D_Lequal
3013 Nothing
3014 False
3015 "Tex_3226210144"]
3016 False)
3017 , ("textures/gothic_trim/baseboard09_e"
3018 , CommonAttrs
3019 ()
3020 ()
3021 False
3022 0.0
3023 False
3024 False
3025 CT_FrontSided
3026 []
3027 False
3028 False
3029 [StageAttrs
3030 Nothing
3031 RGB_IdentityLighting
3032 A_Identity
3033 TG_Base
3034 []
3035 (ST_Map "textures/gothic_trim/baseboard09_e")
3036 True
3037 D_Lequal
3038 Nothing
3039 False
3040 "Tex_2367525081"
3041 , StageAttrs
3042 (Just (B_DstColor, B_Zero))
3043 RGB_IdentityLighting
3044 A_Identity
3045 TG_Lightmap
3046 []
3047 ST_Lightmap
3048 True
3049 D_Lequal
3050 Nothing
3051 False
3052 "Tex_3226210144"]
3053 False)
3054 , ("textures/gothic_trim/baseboard09_e2"
3055 , CommonAttrs
3056 ()
3057 ()
3058 False
3059 0.0
3060 False
3061 False
3062 CT_FrontSided
3063 []
3064 False
3065 False
3066 [StageAttrs
3067 Nothing
3068 RGB_IdentityLighting
3069 A_Identity
3070 TG_Base
3071 []
3072 (ST_Map "textures/gothic_trim/baseboard09_e2")
3073 True
3074 D_Lequal
3075 Nothing
3076 False
3077 "Tex_3694494180"
3078 , StageAttrs
3079 (Just (B_DstColor, B_Zero))
3080 RGB_IdentityLighting
3081 A_Identity
3082 TG_Lightmap
3083 []
3084 ST_Lightmap
3085 True
3086 D_Lequal
3087 Nothing
3088 False
3089 "Tex_3226210144"]
3090 False)
3091 , ("textures/gothic_trim/baseboard09_l2"
3092 , CommonAttrs
3093 ()
3094 ()
3095 False
3096 0.0
3097 False
3098 False
3099 CT_FrontSided
3100 []
3101 False
3102 False
3103 [StageAttrs
3104 Nothing
3105 RGB_IdentityLighting
3106 A_Identity
3107 TG_Base
3108 []
3109 (ST_Map "textures/gothic_trim/baseboard09_l2")
3110 True
3111 D_Lequal
3112 Nothing
3113 False
3114 "Tex_3202786139"
3115 , StageAttrs
3116 (Just (B_DstColor, B_Zero))
3117 RGB_IdentityLighting
3118 A_Identity
3119 TG_Lightmap
3120 []
3121 ST_Lightmap
3122 True
3123 D_Lequal
3124 Nothing
3125 False
3126 "Tex_3226210144"]
3127 False)
3128 , ("textures/gothic_trim/baseboard09_o3"
3129 , CommonAttrs
3130 ()
3131 ()
3132 False
3133 0.0
3134 False
3135 False
3136 CT_FrontSided
3137 []
3138 False
3139 False
3140 [StageAttrs
3141 Nothing
3142 RGB_IdentityLighting
3143 A_Identity
3144 TG_Base
3145 []
3146 (ST_Map "textures/gothic_trim/baseboard09_o3")
3147 True
3148 D_Lequal
3149 Nothing
3150 False
3151 "Tex_2512757607"
3152 , StageAttrs
3153 (Just (B_DstColor, B_Zero))
3154 RGB_IdentityLighting
3155 A_Identity
3156 TG_Lightmap
3157 []
3158 ST_Lightmap
3159 True
3160 D_Lequal
3161 Nothing
3162 False
3163 "Tex_3226210144"]
3164 False)
3165 , ("textures/gothic_trim/km_arena1tower4"
3166 , CommonAttrs
3167 ()
3168 ()
3169 False
3170 0.0
3171 False
3172 False
3173 CT_FrontSided
3174 []
3175 False
3176 False
3177 [StageAttrs
3178 Nothing
3179 RGB_IdentityLighting
3180 A_Identity
3181 TG_Base
3182 []
3183 (ST_Map "textures/gothic_trim/km_arena1tower4")
3184 True
3185 D_Lequal
3186 Nothing
3187 False
3188 "Tex_3479185666"
3189 , StageAttrs
3190 (Just (B_DstColor, B_Zero))
3191 RGB_IdentityLighting
3192 A_Identity
3193 TG_Lightmap
3194 []
3195 ST_Lightmap
3196 True
3197 D_Lequal
3198 Nothing
3199 False
3200 "Tex_3226210144"]
3201 False)
3202 , ("textures/gothic_trim/km_arena1tower4_a"
3203 , CommonAttrs
3204 ()
3205 ()
3206 False
3207 0.0
3208 False
3209 False
3210 CT_FrontSided
3211 []
3212 False
3213 False
3214 [StageAttrs
3215 Nothing
3216 RGB_IdentityLighting
3217 A_Identity
3218 TG_Base
3219 []
3220 (ST_Map "textures/gothic_trim/km_arena1tower4_a")
3221 True
3222 D_Lequal
3223 Nothing
3224 False
3225 "Tex_3012001075"
3226 , StageAttrs
3227 (Just (B_DstColor, B_Zero))
3228 RGB_IdentityLighting
3229 A_Identity
3230 TG_Lightmap
3231 []
3232 ST_Lightmap
3233 True
3234 D_Lequal
3235 Nothing
3236 False
3237 "Tex_3226210144"]
3238 False)
3239 , ("textures/gothic_trim/metaldemonkillblock"
3240 , CommonAttrs
3241 ()
3242 ()
3243 False
3244 0.0
3245 False
3246 False
3247 CT_FrontSided
3248 []
3249 False
3250 False
3251 [StageAttrs
3252 Nothing
3253 RGB_IdentityLighting
3254 A_Identity
3255 TG_Base
3256 []
3257 (ST_Map "textures/gothic_trim/metaldemonkillblock")
3258 True
3259 D_Lequal
3260 Nothing
3261 False
3262 "Tex_1062467595"
3263 , StageAttrs
3264 (Just (B_DstColor, B_Zero))
3265 RGB_IdentityLighting
3266 A_Identity
3267 TG_Lightmap
3268 []
3269 ST_Lightmap
3270 True
3271 D_Lequal
3272 Nothing
3273 False
3274 "Tex_3226210144"]
3275 False)
3276 , ("textures/gothic_trim/metalsupport4b"
3277 , CommonAttrs
3278 ()
3279 ()
3280 False
3281 0.0
3282 False
3283 False
3284 CT_FrontSided
3285 []
3286 False
3287 False
3288 [StageAttrs
3289 Nothing
3290 RGB_IdentityLighting
3291 A_Identity
3292 TG_Base
3293 []
3294 (ST_Map "textures/gothic_trim/metalsupport4b")
3295 True
3296 D_Lequal
3297 Nothing
3298 False
3299 "Tex_3593923076"
3300 , StageAttrs
3301 (Just (B_DstColor, B_Zero))
3302 RGB_IdentityLighting
3303 A_Identity
3304 TG_Lightmap
3305 []
3306 ST_Lightmap
3307 True
3308 D_Lequal
3309 Nothing
3310 False
3311 "Tex_3226210144"]
3312 False)
3313 , ("textures/gothic_trim/metalsupsolid"
3314 , CommonAttrs
3315 ()
3316 ()
3317 False
3318 0.0
3319 False
3320 False
3321 CT_FrontSided
3322 []
3323 False
3324 False
3325 [StageAttrs
3326 Nothing
3327 RGB_IdentityLighting
3328 A_Identity
3329 TG_Base
3330 []
3331 (ST_Map "textures/gothic_trim/metalsupsolid")
3332 True
3333 D_Lequal
3334 Nothing
3335 False
3336 "Tex_2893650486"
3337 , StageAttrs
3338 (Just (B_DstColor, B_Zero))
3339 RGB_IdentityLighting
3340 A_Identity
3341 TG_Lightmap
3342 []
3343 ST_Lightmap
3344 True
3345 D_Lequal
3346 Nothing
3347 False
3348 "Tex_3226210144"]
3349 False)
3350 , ("textures/gothic_trim/pitted_rust"
3351 , CommonAttrs
3352 ()
3353 ()
3354 False
3355 0.0
3356 False
3357 False
3358 CT_FrontSided
3359 []
3360 False
3361 False
3362 [StageAttrs
3363 Nothing
3364 RGB_IdentityLighting
3365 A_Identity
3366 TG_Base
3367 []
3368 (ST_Map "textures/gothic_trim/pitted_rust")
3369 True
3370 D_Lequal
3371 Nothing
3372 False
3373 "Tex_1243894392"
3374 , StageAttrs
3375 (Just (B_DstColor, B_Zero))
3376 RGB_IdentityLighting
3377 A_Identity
3378 TG_Lightmap
3379 []
3380 ST_Lightmap
3381 True
3382 D_Lequal
3383 Nothing
3384 False
3385 "Tex_3226210144"]
3386 False)
3387 , ("textures/gothic_trim/pitted_rust2"
3388 , CommonAttrs
3389 ()
3390 ()
3391 False
3392 0.0
3393 False
3394 False
3395 CT_FrontSided
3396 []
3397 False
3398 False
3399 [StageAttrs
3400 Nothing
3401 RGB_IdentityLighting
3402 A_Identity
3403 TG_Base
3404 []
3405 (ST_Map "textures/gothic_trim/pitted_rust2")
3406 True
3407 D_Lequal
3408 Nothing
3409 False
3410 "Tex_2099456856"
3411 , StageAttrs
3412 (Just (B_DstColor, B_Zero))
3413 RGB_IdentityLighting
3414 A_Identity
3415 TG_Lightmap
3416 []
3417 ST_Lightmap
3418 True
3419 D_Lequal
3420 Nothing
3421 False
3422 "Tex_3226210144"]
3423 False)
3424 , ("textures/gothic_trim/pitted_rust2_trans"
3425 , CommonAttrs
3426 ()
3427 ()
3428 False
3429 3.0
3430 False
3431 False
3432 CT_FrontSided
3433 []
3434 False
3435 False
3436 [StageAttrs
3437 Nothing
3438 RGB_Identity
3439 A_Identity
3440 TG_Lightmap
3441 []
3442 ST_Lightmap
3443 True
3444 D_Lequal
3445 Nothing
3446 False
3447 "Tex_511571587"
3448 , StageAttrs
3449 (Just (B_DstColor, B_Zero))
3450 RGB_Identity
3451 A_Identity
3452 TG_Base
3453 []
3454 (ST_Map "textures/gothic_trim/pitted_rust2.tga")
3455 False
3456 D_Lequal
3457 Nothing
3458 False
3459 "Tex_1910997598"]
3460 False)
3461 , ("textures/gothic_trim/pitted_rust3"
3462 , CommonAttrs
3463 ()
3464 ()
3465 False
3466 0.0
3467 False
3468 False
3469 CT_FrontSided
3470 []
3471 False
3472 False
3473 [StageAttrs
3474 Nothing
3475 RGB_IdentityLighting
3476 A_Identity
3477 TG_Base
3478 []
3479 (ST_Map "textures/gothic_trim/pitted_rust3")
3480 True
3481 D_Lequal
3482 Nothing
3483 False
3484 "Tex_3389727963"
3485 , StageAttrs
3486 (Just (B_DstColor, B_Zero))
3487 RGB_IdentityLighting
3488 A_Identity
3489 TG_Lightmap
3490 []
3491 ST_Lightmap
3492 True
3493 D_Lequal
3494 Nothing
3495 False
3496 "Tex_3226210144"]
3497 False)
3498 , ("textures/gothic_trim/skullsvertgray02b"
3499 , CommonAttrs
3500 ()
3501 ()
3502 False
3503 0.0
3504 False
3505 False
3506 CT_FrontSided
3507 []
3508 False
3509 False
3510 [StageAttrs
3511 Nothing
3512 RGB_IdentityLighting
3513 A_Identity
3514 TG_Base
3515 []
3516 (ST_Map "textures/gothic_trim/skullsvertgray02b")
3517 True
3518 D_Lequal
3519 Nothing
3520 False
3521 "Tex_2634868983"
3522 , StageAttrs
3523 (Just (B_DstColor, B_Zero))
3524 RGB_IdentityLighting
3525 A_Identity
3526 TG_Lightmap
3527 []
3528 ST_Lightmap
3529 True
3530 D_Lequal
3531 Nothing
3532 False
3533 "Tex_3226210144"]
3534 False)
3535 , ("textures/gothic_wall/iron01_e"
3536 , CommonAttrs
3537 ()
3538 ()
3539 False
3540 0.0
3541 False
3542 False
3543 CT_FrontSided
3544 []
3545 False
3546 False
3547 [StageAttrs
3548 Nothing
3549 RGB_IdentityLighting
3550 A_Identity
3551 TG_Base
3552 []
3553 (ST_Map "textures/gothic_wall/iron01_e")
3554 True
3555 D_Lequal
3556 Nothing
3557 False
3558 "Tex_2432583247"
3559 , StageAttrs
3560 (Just (B_DstColor, B_Zero))
3561 RGB_IdentityLighting
3562 A_Identity
3563 TG_Lightmap
3564 []
3565 ST_Lightmap
3566 True
3567 D_Lequal
3568 Nothing
3569 False
3570 "Tex_3226210144"]
3571 False)
3572 , ("textures/gothic_wall/iron01_ntech3"
3573 , CommonAttrs
3574 ()
3575 ()
3576 False
3577 0.0
3578 False
3579 False
3580 CT_FrontSided
3581 []
3582 False
3583 False
3584 [StageAttrs
3585 Nothing
3586 RGB_IdentityLighting
3587 A_Identity
3588 TG_Base
3589 []
3590 (ST_Map "textures/gothic_wall/iron01_ntech3")
3591 True
3592 D_Lequal
3593 Nothing
3594 False
3595 "Tex_442868841"
3596 , StageAttrs
3597 (Just (B_DstColor, B_Zero))
3598 RGB_IdentityLighting
3599 A_Identity
3600 TG_Lightmap
3601 []
3602 ST_Lightmap
3603 True
3604 D_Lequal
3605 Nothing
3606 False
3607 "Tex_3226210144"]
3608 False)
3609 , ("textures/gothic_wall/skull4"
3610 , CommonAttrs
3611 ()
3612 ()
3613 False
3614 0.0
3615 False
3616 False
3617 CT_FrontSided
3618 []
3619 False
3620 False
3621 [StageAttrs
3622 Nothing
3623 RGB_IdentityLighting
3624 A_Identity
3625 TG_Base
3626 []
3627 (ST_Map "textures/gothic_wall/skull4")
3628 True
3629 D_Lequal
3630 Nothing
3631 False
3632 "Tex_2239853403"
3633 , StageAttrs
3634 (Just (B_DstColor, B_Zero))
3635 RGB_IdentityLighting
3636 A_Identity
3637 TG_Lightmap
3638 []
3639 ST_Lightmap
3640 True
3641 D_Lequal
3642 Nothing
3643 False
3644 "Tex_3226210144"]
3645 False)
3646 , ("textures/gothic_wall/slateroofc"
3647 , CommonAttrs
3648 ()
3649 ()
3650 False
3651 0.0
3652 False
3653 False
3654 CT_FrontSided
3655 []
3656 False
3657 False
3658 [StageAttrs
3659 Nothing
3660 RGB_IdentityLighting
3661 A_Identity
3662 TG_Base
3663 []
3664 (ST_Map "textures/gothic_wall/slateroofc")
3665 True
3666 D_Lequal
3667 Nothing
3668 False
3669 "Tex_2490648334"
3670 , StageAttrs
3671 (Just (B_DstColor, B_Zero))
3672 RGB_IdentityLighting
3673 A_Identity
3674 TG_Lightmap
3675 []
3676 ST_Lightmap
3677 True
3678 D_Lequal
3679 Nothing
3680 False
3681 "Tex_3226210144"]
3682 False)
3683 , ("textures/gothic_wall/supportborder_blue_b"
3684 , CommonAttrs
3685 ()
3686 ()
3687 False
3688 0.0
3689 False
3690 False
3691 CT_FrontSided
3692 []
3693 False
3694 False
3695 [StageAttrs
3696 Nothing
3697 RGB_IdentityLighting
3698 A_Identity
3699 TG_Base
3700 []
3701 (ST_Map "textures/gothic_wall/supportborder_blue_b")
3702 True
3703 D_Lequal
3704 Nothing
3705 False
3706 "Tex_564811775"
3707 , StageAttrs
3708 (Just (B_DstColor, B_Zero))
3709 RGB_IdentityLighting
3710 A_Identity
3711 TG_Lightmap
3712 []
3713 ST_Lightmap
3714 True
3715 D_Lequal
3716 Nothing
3717 False
3718 "Tex_3226210144"]
3719 False)
3720 , ("textures/gothic_wall/supportborder_blue_c"
3721 , CommonAttrs
3722 ()
3723 ()
3724 False
3725 0.0
3726 False
3727 False
3728 CT_FrontSided
3729 []
3730 False
3731 False
3732 [StageAttrs
3733 Nothing
3734 RGB_IdentityLighting
3735 A_Identity
3736 TG_Base
3737 []
3738 (ST_Map "textures/gothic_wall/supportborder_blue_c")
3739 True
3740 D_Lequal
3741 Nothing
3742 False
3743 "Tex_2525124732"
3744 , StageAttrs
3745 (Just (B_DstColor, B_Zero))
3746 RGB_IdentityLighting
3747 A_Identity
3748 TG_Lightmap
3749 []
3750 ST_Lightmap
3751 True
3752 D_Lequal
3753 Nothing
3754 False
3755 "Tex_3226210144"]
3756 False)]
1881------------ tooltips 3757------------ tooltips
1882testdata/performance/SampleMaterial.lc 3:1-3:15 3758testdata/performance/SampleMaterial.lc 3:1-3:15
1883 [(String, CommonAttrs)] 3759 [(String, CommonAttrs)]
diff --git a/testdata/qualified.out b/testdata/qualified.out
index 521dcdfe..790653d7 100644
--- a/testdata/qualified.out
+++ b/testdata/qualified.out
@@ -1,2 +1,3 @@
1main is not found 1main is not found
2------------ desugared source code \ No newline at end of file 2------------ desugared source code
3------------ core code \ No newline at end of file
diff --git a/testdata/traceTest.out b/testdata/traceTest.out
index ff73ee7b..1284a26e 100644
--- a/testdata/traceTest.out
+++ b/testdata/traceTest.out
@@ -7,14 +7,23 @@ data X (_ :: Type) (_ :: _a) :: Type where
7 7
8x :: X \(a :: _) (b :: _) -> (a, b) 8x :: X \(a :: _) (b :: _) -> (a, b)
9x = _rhs undefined 9x = _rhs undefined
10------------ trace 10------------ core code
11id :: forall a . a -> a
12'X :: forall a . a -> Type 11'X :: forall a . a -> Type
12'X = <<type constructor with 0 indices; constructors: >>
13
13case'X :: forall a (b :: a) . forall (c :: X a b -> Type) (d :: X a b) -> c d 14case'X :: forall a (b :: a) . forall (c :: X a b -> Type) (d :: X a b) -> c d
15case'X = \_ _ a b -> <<case function of a type with 2 parameters>>
16
17id :: forall a . a -> a
18id = \_ a -> _rhs a
19
14match'X 20match'X
15 :: forall (a :: Type -> Type) 21 :: forall (a :: Type -> Type)
16 -> (forall b . forall (c :: b) -> a (X b c)) -> forall d -> a d -> a d 22 -> (forall b . forall (c :: b) -> a (X b c)) -> forall d -> a d -> a d
23match'X = \a b c d -> <<type case function>>
24
17x :: X (Type -> Type -> Type) \a b -> (a, b) 25x :: X (Type -> Type -> Type) \a b -> (a, b)
26x = _rhs (undefined ('X (Type -> Type -> Type) \a b -> ' (a, b)))
18------------ tooltips 27------------ tooltips
19testdata/traceTest.lc 6:1-6:3 28testdata/traceTest.lc 6:1-6:3
20 forall a . a -> a 29 forall a . a -> a
diff --git a/testdata/typeclass.out b/testdata/typeclass.out
index 36287148..7d3b916a 100644
--- a/testdata/typeclass.out
+++ b/testdata/typeclass.out
@@ -10,27 +10,27 @@ infixr 3 &&
10 10
11infixr 2 || 11infixr 2 ||
12 12
13not = \(a :: _) -> case'Bool (\_ -> _) (_rhs True) (_rhs False) a 13not = \(a :: _) -> case'Bool (\(_ :: _) -> _) (_rhs True) (_rhs False) a
14 14
15(&&) = \(a :: _) (b :: _) -> case'Bool (\_ -> _) (_rhs False) (_rhs b) a 15(&&) = \(a :: _) (b :: _) -> case'Bool (\(_ :: _) -> _) (_rhs False) (_rhs b) a
16 16
17(||) = \(a :: _) (b :: _) -> case'Bool (\_ -> _) (_rhs b) (_rhs True) a 17(||) = \(a :: _) (b :: _) -> case'Bool (\(_ :: _) -> _) (_rhs b) (_rhs True) a
18 18
19'Eq :: Type -> Constraint 19'Eq :: Type -> Constraint
20'Eq 20'Eq
21 = \(a :: _) -> match'Bool 21 = \(a :: _) -> match'Bool
22 (\_ -> _) 22 (\(_ :: _) -> _)
23 (_rhs 'CUnit) 23 (_rhs 'CUnit)
24 a 24 a
25 (_rhs ('CEmpty "no instance of 'Eq on ???")) 25 (_rhs ('CEmpty "no instance of 'Eq on ???"))
26 26
27(==) :: forall a . Eq a => a -> a -> Bool 27(==) :: forall a . Eq a => a -> a -> Bool
28(==) 28(==)
29 = \ @a @_ -> match'Bool 29 = \ @a @(_ :: _) -> match'Bool
30 (\_ -> _) 30 (\(_ :: _) -> _)
31 (_rhs 31 (_rhs
32 let 32 let
33 b = \(c :: _) (d :: _) -> case'Bool (\_ -> _) (_rhs (not d)) (_rhs d) c 33 b = \(c :: _) (d :: _) -> case'Bool (\(_ :: _) -> _) (_rhs (not d)) (_rhs d) c
34 in b) 34 in b)
35 a 35 a
36 (_rhs undefined) 36 (_rhs undefined)
@@ -39,22 +39,52 @@ not = \(a :: _) -> case'Bool (\_ -> _) (_rhs True) (_rhs False) a
39 39
40(==.) 40(==.)
41 = \(a :: _) (b :: _) -> case'List 41 = \(a :: _) (b :: _) -> case'List
42 (\_ -> _) 42 (\(_ :: _) -> _)
43 (case'List (\_ -> _) (_rhs True) (\_ _ -> _rhs False) b) 43 (case'List (\(_ :: _) -> _) (_rhs True) (\(_ :: _) (_ :: _) -> _rhs False) b)
44 (\_ (c :: _) -> case'List 44 (\(_ :: _) (c :: _) -> case'List
45 (\_ -> _) 45 (\(_ :: _) -> _)
46 (_rhs False) 46 (_rhs False)
47 (\_ (d :: _) -> _rhs (c ==. d)) 47 (\(_ :: _) (d :: _) -> _rhs (c ==. d))
48 b) 48 b)
49 a 49 a
50------------ trace 50------------ core code
51not :: Bool -> Bool 51&& :: Bool -> Bool -> Bool
52(&&) :: Bool -> Bool -> Bool 52&& = \a b -> case'Bool (\_ -> 'Bool) (_rhs False) (_rhs b) a
53(||) :: Bool -> Bool -> Bool 53
54'Eq :: Type -> Constraint 54'Eq :: Type -> Constraint
55(==) :: forall a . Eq a => a -> a -> Bool 55'Eq
56(/=) :: forall a . Eq a => a -> a -> Bool 56 = \a -> match'Bool
57(==.) :: forall a b . [a] -> [b] -> Bool 57 (\_ -> 'Constraint)
58 (_rhs CUnit)
59 a
60 (_rhs (CEmpty "no instance of 'Eq on ???"))
61
62/= :: forall a . Eq a => a -> a -> Bool
63/= = \a b c d -> _rhs (not ((a == b) c d))
64
65== :: forall a . Eq a => a -> a -> Bool
66==
67 = \a _ -> match'Bool
68 (\b -> b -> b -> 'Bool)
69 (_rhs (==))
70 a
71 (_rhs (undefined (a -> a -> 'Bool)))
72
73==. :: forall a b . [a] -> [b] -> Bool
74==.
75 = \a b -> primFix
76 ([a] -> [b] -> 'Bool)
77 \c d e -> case'List
78 (\_ -> 'Bool)
79 (case'List (\_ -> 'Bool) (_rhs True) (\_ _ -> _rhs False) e)
80 (\_ f -> case'List (\_ -> 'Bool) (_rhs False) (\_ g -> _rhs (c f g)) e)
81 d
82
83not :: Bool -> Bool
84not = \a -> case'Bool (\_ -> 'Bool) (_rhs True) (_rhs False) a
85
86|| :: Bool -> Bool -> Bool
87|| = \a b -> case'Bool (\_ -> 'Bool) (_rhs b) (_rhs True) a
58------------ tooltips 88------------ tooltips
59testdata/typeclass.lc 8:1-8:4 89testdata/typeclass.lc 8:1-8:4
60 Bool -> Bool 90 Bool -> Bool
diff --git a/testdata/where.out b/testdata/where.out
index 35e08403..1c329429 100644
--- a/testdata/where.out
+++ b/testdata/where.out
@@ -1,8 +1,9 @@
1main is not found 1main is not found
2------------ desugared source code 2------------ desugared source code
3f = _rhs let a = _rhs let c = _rhs 1.0 in c; b = _rhs 1.0 in b 3f = _rhs let a = _rhs let c = _rhs 1.0 in c; b = _rhs 1.0 in b
4------------ trace 4------------ core code
5f :: Float 5f :: Float
6f = _rhs 1.0
6------------ tooltips 7------------ tooltips
7testdata/where.lc 3:1-3:2 8testdata/where.lc 3:1-3:2
8 Float 9 Float
diff --git a/testdata/zip01.out b/testdata/zip01.out
index 06e95e78..e6f51391 100644
--- a/testdata/zip01.out
+++ b/testdata/zip01.out
@@ -3,16 +3,28 @@ main is not found
3zip2 :: forall (a :: _) (b :: _) . [a] -> [b] -> [(a, b)] 3zip2 :: forall (a :: _) (b :: _) . [a] -> [b] -> [(a, b)]
4zip2 4zip2
5 = \(a :: _) (b :: _) -> case'List 5 = \(a :: _) (b :: _) -> case'List
6 (\_ -> _) 6 (\(_ :: _) -> _)
7 (_rhs []) 7 (_rhs [])
8 (\(c :: _) (d :: _) -> case'List 8 (\(c :: _) (d :: _) -> case'List
9 (\_ -> _) 9 (\(_ :: _) -> _)
10 (_rhs []) 10 (_rhs [])
11 (\(e :: _) (f :: _) -> _rhs ((c, e) : zip2 d f)) 11 (\(e :: _) (f :: _) -> _rhs ((c, e) : zip2 d f))
12 b) 12 b)
13 a 13 a
14------------ trace 14------------ core code
15zip2 :: forall a b . [a] -> [b] -> [(a, b)] 15zip2 :: forall a b . [a] -> [b] -> [(a, b)]
16zip2
17 = primFix
18 (forall a b . [a] -> [b] -> [' (a, b)])
19 \c d e f g -> case'List
20 (\_ -> [' (d, e)])
21 (_rhs [])
22 (\h i -> case'List
23 (\_ -> [' (d, e)])
24 (_rhs [])
25 (\j k -> _rhs ((h, j) : c d e i k))
26 g)
27 f
16------------ tooltips 28------------ tooltips
17testdata/zip01.lc 1:9-1:12 29testdata/zip01.lc 1:9-1:12
18 Type 30 Type